diff --git a/.cfnlintrc.yaml b/.cfnlintrc.yaml index 158cb0893..d76dfbc52 100644 --- a/.cfnlintrc.yaml +++ b/.cfnlintrc.yaml @@ -57,6 +57,7 @@ ignore_templates: - tests/translator/output/**/connector_sfn_to_function.json - tests/translator/output/**/connector_sns_to_function.json - tests/translator/output/**/connector_table_to_function.json + - tests/translator/output/**/documentdb_with_intrinsics.json # TODO: remove once DocumentDDB is available - tests/translator/output/**/eventbridgerule_with_dlq.json - tests/translator/output/**/function_event_conditions.json - tests/translator/output/**/function_with_alias_and_code_sha256.json @@ -77,6 +78,8 @@ ignore_templates: - tests/translator/output/**/function_with_deployment_preference_multiple_combinations_conditions_without_passthrough.json - tests/translator/output/**/function_with_deployment_preference_passthrough_condition_with_supported_intrinsics.json - tests/translator/output/**/function_with_dlq.json + - tests/translator/output/**/function_with_documentdb_with_kms.json # TODO: remove once DocumentDDB is available + - tests/translator/output/**/function_with_documentdb.json # TODO: remove once DocumentDDB is available - tests/translator/output/**/function_with_event_dest.json - tests/translator/output/**/function_with_event_dest_basic.json - tests/translator/output/**/function_with_event_dest_conditional.json diff --git a/.github/workflows/check_compatibility.yml b/.github/workflows/check_compatibility.yml new file mode 100644 index 000000000..bc6821ae9 --- /dev/null +++ b/.github/workflows/check_compatibility.yml @@ -0,0 +1,44 @@ +name: Check compatibility + +on: + pull_request: + +jobs: + check-compatibility: + runs-on: ubuntu-latest + + steps: + - name: Checkout the PR + uses: actions/checkout@v3 + + - uses: actions/setup-python@v4 + with: + python-version: "3.10" + + - name: Extract PR public interfaces + run: | + make init + bin/public_interface.py extract > "${{ runner.temp }}"/interfaces.new.json + + - name: Backup PR bin/public_interface.py + run: | + # Keep a copy of bin/public_interface.py + # So we are using the same bin/public_interface.py to process old/new codebase. + cp bin/public_interface.py "${{ runner.temp }}"/public_interface.py + + - name: Checkout the base + uses: actions/checkout@v3 + with: + ref: "${{ github.base_ref }}" + + - name: Extract original public interfaces + run: | + make init + # Recover bin/public_interface.py + cp "${{ runner.temp }}"/public_interface.py bin/public_interface.py + bin/public_interface.py extract > "${{ runner.temp }}"/interfaces.original.json + + - name: Detect compatibility breaking changes + id: detect + run: | + bin/public_interface.py check "${{ runner.temp }}"/interfaces.original.json "${{ runner.temp }}"/interfaces.new.json diff --git a/.github/workflows/schema.yml b/.github/workflows/schema.yml new file mode 100644 index 000000000..ffebbf084 --- /dev/null +++ b/.github/workflows/schema.yml @@ -0,0 +1,45 @@ +name: Update schema + +on: + workflow_dispatch: + schedule: + - cron: "0 0 * * 1-5" # Weekdays + +jobs: + update: + if: github.repository == 'aws/serverless-application-model' + runs-on: ubuntu-latest + + permissions: + contents: write + pull-requests: write + + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: "3.10" + + - name: Update schema + id: schema + run: | + make init + make schema-all + # Sets condition steps.schema.outputs.changed to true if anything changed + git diff --exit-code || echo "changed=true" >> $GITHUB_OUTPUT + + - name: Push change to temporary branch + if: steps.schema.outputs.changed + run: | + git config user.name github-actions + git config user.email github-actions@github.com + git checkout -b tmp/schema/$GITHUB_RUN_ID/$GITHUB_RUN_ATTEMPT + git add -u + git commit -m "chore(schema): update" + git push --set-upstream origin tmp/schema/$GITHUB_RUN_ID/$GITHUB_RUN_ATTEMPT + + - name: Create PR + if: steps.schema.outputs.changed + run: printf '> **Note**\n> If checks do not start, close then reopen this pull request.\n\nCreated by the [`schema.yml`](https://github.com/aws/serverless-application-model/blob/develop/.github/workflows/schema.yml) workflow.\n' | gh pr create --fill --base develop --body-file - + env: + GH_TOKEN: ${{ github.token }} diff --git a/.pylintrc b/.pylintrc deleted file mode 100644 index 230785756..000000000 --- a/.pylintrc +++ /dev/null @@ -1,361 +0,0 @@ -[MASTER] - -# Specify a configuration file. -#rcfile= - -# Python code to execute, usually for sys.path manipulation such as -# pygtk.require(). -#init-hook= - -# Add files or directories to the ignore list. They should be base names, not -# paths. -ignore=compat.py, __main__.py - -# Pickle collected data for later comparisons. -persistent=yes - -# List of plugins (as comma separated values of python modules names) to load, -# usually to register additional checkers. -load-plugins= - pylint.extensions.check_elif, # Else If Used checker - pylint.extensions.emptystring, # compare to empty string - pylint.extensions.comparetozero, # compare to 0 - pylint.extensions.docparams, # Parameter documentation checker - -# Use multiple processes to speed up Pylint. -# Pylint has a bug on multitread, turn it off. -jobs=1 - -# Allow loading of arbitrary C extensions. Extensions are imported into the -# active Python interpreter and may run arbitrary code. -unsafe-load-any-extension=no - -# A comma-separated list of package or module names from where C extensions may -# be loaded. Extensions are loading into the active Python interpreter and may -# run arbitrary code -extension-pkg-whitelist= - - -[MESSAGES CONTROL] - -# Only show warnings with the listed confidence levels. Leave empty to show -# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED -confidence= - -# Enable the message, report, category or checker with the given id(s). You can -# either give multiple identifier separated by comma (,) or put this option -# multiple time. See also the "--disable" option for examples. -#enable= - -# Disable the message, report, category or checker with the given id(s). You -# can either give multiple identifiers separated by comma (,) or put this -# option multiple times (only on the command line, not in the configuration -# file where it should appear only once).You can also use "--disable=all" to -# disable everything first and then reenable specific checks. For example, if -# you want to run only the similarities checker, you can use "--disable=all -# --enable=similarities". If you want to run only the classes checker, but have -# no Warning level messages displayed, use"--disable=all --enable=classes -# --disable=W" -disable= - C0209, # consider-using-f-string. There are too many of them - W0613, # Unused argument %r - W0640, # Cell variable %s defined in loop A variable used in a closure is defined in a loop - R0902, # Too many instance attributes (%s/%s) - R0913, # Too many arguments (%s/%s) - W0703, # Catching too general exception %s - R0904, # Too many public methods (%s/%s) - R0914, # Too many local variables (%s/%s) - R0915, # Too many statements - C0415, # Import outside toplevel (%s) Used when an import statement is used anywhere other than the module toplevel. Move this import to the top of the file. - C0115, # missing-class-docstring - W9006, # "%s" not documented as being raised - W9011, # Missing return documentation - W9012, # Missing return type documentation - W9016, # "%s" missing in parameter type documentation - C0103, # Class constant name "%s" doesn't conform to UPPER_CASE naming style ('([^\\W\\da-z][^\\Wa-z]*|__.*__)$' pattern) (invalid-name) - R0401, # Cyclic import - C0411, # import ordering - W9015, # missing parameter in doc strings - C0301, # line to long - C0114, # missing-module-docstring - W1202, # Use lazy % formatting in logging functions (logging-format-interpolation) - E1101, # No member - W0212, # protected-access - W0201, # attribute-defined-outside-init - C2001, # Avoid comparisons to zero (compare-to-zero) - R0912, # too many branches - C0412, # Imports from package samtranslator are not grouped (ungrouped-imports) - E0203, # access-member-before-definition - W0221, # arguments-differ - R1702, # too-many-nested-blocks - W0105, # String statement has no effect (pointless-string-statement) - C0112, # empty-docstring - C0116, # missing-function-docstring - W9017, # differing-param-doc - W9018, # differing-type-doc - W0511, # fixme - C0302, # too-many-lines - W9013, # missing-yield-doc - W9014, # missing-yield-type-doc - - -[REPORTS] - -# Set the output format. Available formats are text, parseable, colorized, msvs -# (visual studio) and html. You can also give a reporter class, eg -# mypackage.mymodule.MyReporterClass. -output-format=text - -# Tells whether to display a full report or only the messages -reports=no - -# Python expression which should return a note less than 10 (10 is the highest -# note). You have access to the variables errors warning, statement which -# respectively contain the number of errors / warnings messages and the total -# number of statements analyzed. This is used by the global evaluation report -# (RP0004). -evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) - -# Template used to display messages. This is a python new-style format string -# used to format the message information. See doc for all details -#msg-template= - - -[BASIC] - -# Good variable names which should always be accepted, separated by a comma -good-names=e,i,j,k,n,ex,Run,_ - -# Bad variable names which should always be refused, separated by a comma -bad-names=foo,bar,baz,toto,tutu,tata - -# Colon-delimited sets of names that determine each other's naming style when -# the name regexes allow several styles. -name-group= - -# Include a hint for the correct naming format with invalid-name -include-naming-hint=yes - -# Regular expression matching correct function names -function-rgx=[a-z_][a-z0-9_]{2,50}$ - -# Regular expression matching correct variable names -variable-rgx=[a-z_][a-z0-9_]{0,50}$ - -# Regular expression matching correct constant names -const-rgx=(([a-zA-Z_][a-zA-Z0-9_]*)|(__.*__))$ - -# Regular expression matching correct attribute names -attr-rgx=[a-z_][a-z0-9_]{1,50}$ - -# Regular expression matching correct argument names -argument-rgx=[a-z_][a-z0-9_]{0,50}$ - -# Regular expression matching correct class attribute names -class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$ - -# Regular expression matching correct inline iteration names -inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ - -# Regular expression matching correct class names -class-rgx=[A-Z_][a-zA-Z0-9]+$ - -# Regular expression matching correct module names -module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ - -# Regular expression matching correct method names -method-rgx=[a-z_][a-z0-9_]{2,50}$ - -# Regular expression which should only match function or class names that do -# not require a docstring. -no-docstring-rgx=^_ - -# Minimum line length for functions/classes that require docstrings, shorter -# ones are exempt. -# To improve our docstring without spending too much effort at a time, -# here set it to 30 and decrease it gradually in the future. -docstring-min-length=30 - - -[FORMAT] - -# Maximum number of characters on a single line. -max-line-length=120 - -# Regexp for a line that is allowed to be longer than the limit. -ignore-long-lines=^\s*(# )??$ - -# Allow the body of an if to be on the same line as the test if there is no -# else. -single-line-if-stmt=no - -# Maximum number of lines in a module -max-module-lines=1000 - -# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 -# tab). -indent-string=' ' - -# Number of spaces of indent required inside a hanging or continued line. -indent-after-paren=4 - -# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. -expected-line-ending-format= - - -[LOGGING] - -# Logging modules to check that the string format arguments are in logging -# function parameter format -logging-modules=logging - - -[MISCELLANEOUS] - -# List of note tags to take in consideration, separated by a comma. -notes=FIXME,XXX - - -[SIMILARITIES] - -# Minimum lines number of a similarity. -min-similarity-lines=12 - -# Ignore comments when computing similarities. -ignore-comments=yes - -# Ignore docstrings when computing similarities. -ignore-docstrings=yes - -# Ignore imports when computing similarities. -ignore-imports=yes - - -[SPELLING] - -# Spelling dictionary name. Available dictionaries: none. To make it working -# install python-enchant package. -spelling-dict= - -# List of comma separated words that should not be checked. -spelling-ignore-words= - -# A path to a file that contains private dictionary; one word per line. -spelling-private-dict-file= - -# Tells whether to store unknown words to indicated private dictionary in -# --spelling-private-dict-file option instead of raising a message. -spelling-store-unknown-words=no - - -[TYPECHECK] - -# Tells whether missing members accessed in mixin class should be ignored. A -# mixin class is detected if its name ends with "mixin" (case insensitive). -ignore-mixin-members=yes - -# List of module names for which member attributes should not be checked -# (useful for modules/projects where namespaces are manipulated during runtime -# and thus existing member attributes cannot be deduced by static analysis -ignored-modules= - -# List of classes names for which member attributes should not be checked -# (useful for classes with attributes dynamically set). -ignored-classes=SQLObject - -# List of members which are set dynamically and missed by pylint inference -# system, and so shouldn't trigger E0201 when accessed. Python regular -# expressions are accepted. -generated-members=REQUEST,acl_users,aq_parent,objects,DoesNotExist,md5,sha1,sha224,sha256,sha384,sha512 - - -[VARIABLES] - -# Tells whether we should check for unused import in __init__ files. -init-import=no - -# A regular expression matching the name of dummy variables (i.e. expectedly -# not used). -dummy-variables-rgx=_|dummy|ignore - -# List of additional names supposed to be defined in builtins. Remember that -# you should avoid to define new builtins when possible. -additional-builtins= - -# List of strings which can identify a callback function by name. A callback -# name must start or end with one of those strings. -callbacks=cb_,_cb - - -[CLASSES] - -# List of method names used to declare (i.e. assign) instance attributes. -defining-attr-methods=__init__,__new__,setUp - -# List of valid names for the first argument in a class method. -valid-classmethod-first-arg=cls - -# List of valid names for the first argument in a metaclass class method. -valid-metaclass-classmethod-first-arg=mcs - -# List of member names, which should be excluded from the protected access -# warning. -exclude-protected=_asdict,_fields,_replace,_source,_make - - -[DESIGN] - -# Maximum number of arguments for function / method -max-args=5 - -# Argument names that match this expression will be ignored. Default to name -# with leading underscore -ignored-argument-names=_.* - -# Maximum number of locals for function / method body -max-locals=17 - -# Maximum number of return / yield for function / method body -max-returns=6 - -# Maximum number of branch for function / method body -max-branches=12 - -# Maximum number of statements in function / method body -max-statements=30 - -# Maximum number of parents for a class (see R0901). -max-parents=6 - -# Maximum number of attributes for a class (see R0902). -max-attributes=7 - -# Minimum number of public methods for a class (see R0903). -min-public-methods=0 - -# Maximum number of public methods for a class (see R0904). -max-public-methods=20 - - -[IMPORTS] - -# Deprecated modules which should not be used, separated by a comma -deprecated-modules=regsub,string,TERMIOS,Bastion,rexec,UserDict - -# Create a graph of every (i.e. internal and external) dependencies in the -# given file (report RP0402 must not be disabled) -import-graph= - -# Create a graph of external dependencies in the given file (report RP0402 must -# not be disabled) -ext-import-graph= - -# Create a graph of internal dependencies in the given file (report RP0402 must -# not be disabled) -int-import-graph= - -[EXCEPTIONS] - -# Exceptions that will emit a warning when being caught. Defaults to -# "Exception" -overgeneral-exceptions=Exception diff --git a/DEVELOPMENT_GUIDE.md b/DEVELOPMENT_GUIDE.md index c6ffbf043..7cdf01328 100644 --- a/DEVELOPMENT_GUIDE.md +++ b/DEVELOPMENT_GUIDE.md @@ -197,13 +197,7 @@ The AWS SAM specification includes a JSON schema (see https://github.com/aws/ser To add new properties, do the following: 1. Add the property to the relevant resource schema under [`samtranslator/schema`](https://github.com/aws/serverless-application-model/tree/develop/samtranslator/schema) (e.g. [`samtranslator/schema/aws_serverless_function.py`](https://github.com/aws/serverless-application-model/blob/develop/samtranslator/schema/aws_serverless_function.py) for `AWS::Serverless::Function`). -2. You can leave out the assignement part; it adds documentation to the schema properties. The team will take care of documentation updates. Typically we update documentation by running: - - ```bash - git clone https://github.com/awsdocs/aws-sam-developer-guide.git - bin/parse_docs.py aws-sam-developer-guide/doc_source > samtranslator/schema/docs.json - ``` - +2. You can leave out the assignement part; it adds documentation to the schema properties. The team will take care of documentation updates once code changes are merged. Typically we update documentation by running `make update-schema-data`. 3. Run `make schema`. Profiling diff --git a/LICENSE b/LICENSE index 6474801f6..3b36c69bb 100644 --- a/LICENSE +++ b/LICENSE @@ -178,7 +178,7 @@ APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" + boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a diff --git a/MANIFEST.in b/MANIFEST.in index 4e2a9eba8..5c30c46f6 100755 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,3 +1,6 @@ +# https://packaging.python.org/en/latest/guides/using-manifest-in/ +# Only include files that are required in pypi source distribution. + include LICENSE include requirements/base.txt include requirements/dev.txt @@ -5,10 +8,6 @@ recursive-include samtranslator/validator/sam_schema *.json include samtranslator/policy_templates_data/policy_templates.json 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 e9bb8b513..6e0a8db32 100755 --- a/Makefile +++ b/Makefile @@ -6,19 +6,19 @@ init: pip install -e '.[dev]' test: - AWS_DEFAULT_REGION=us-east-1 pytest --cov samtranslator --cov-report term-missing --cov-fail-under 95 -n auto tests/* + AWS_DEFAULT_REGION=us-east-1 pytest --cov samtranslator --cov-report term-missing --cov-fail-under 95 -n auto tests/ test-fast: - pytest -x --cov samtranslator --cov-report term-missing --cov-fail-under 95 -n auto tests/* + pytest -x --cov samtranslator --cov-report term-missing --cov-fail-under 95 -n auto tests/ test-cov-report: - pytest --cov samtranslator --cov-report term-missing --cov-report html --cov-fail-under 95 tests/* + pytest --cov samtranslator --cov-report term-missing --cov-report html --cov-fail-under 95 tests/ integ-test: - pytest --no-cov integration/* + pytest --no-cov integration/ black: - black setup.py samtranslator/* tests/* integration/* bin/*.py + black setup.py samtranslator tests integration bin schema_source bin/json-format.py --write tests integration samtranslator/policy_templates_data bin/yaml-format.py --write tests bin/yaml-format.py --write integration --add-test-metadata @@ -26,30 +26,51 @@ 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/schema.json - diff -u samtranslator/schema/sam.schema.json .tmp/sam.schema.json + python -m schema_source.schema --sam-schema .tmp/sam.schema.json --cfn-schema schema_source/cloudformation.schema.json --unified-schema .tmp/schema.json + diff -u schema_source/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 + black --check setup.py samtranslator tests integration bin schema_source bin/json-format.py --check tests integration samtranslator/policy_templates_data bin/yaml-format.py --check tests bin/yaml-format.py --check integration --add-test-metadata lint: + ruff samtranslator bin schema_source integration tests # mypy performs type check - mypy --strict samtranslator bin - # Linter performs static analysis to catch latent bugs - pylint --rcfile .pylintrc samtranslator + mypy --strict samtranslator bin schema_source # cfn-lint to make sure generated CloudFormation makes sense bin/run_cfn_lint.sh +lint-fix: + ruff --fix samtranslator bin schema_source integration tests + prepare-companion-stack: pytest -v --no-cov integration/setup -m setup -update-cfn-schema: - curl -o samtranslator/schema/cloudformation.schema.json https://raw.githubusercontent.com/awslabs/goformation/master/schema/cloudformation.schema.json +fetch-schema-data: + mkdir -p .tmp + + rm -rf .tmp/aws-sam-developer-guide + git clone --depth 1 https://github.com/awsdocs/aws-sam-developer-guide.git .tmp/aws-sam-developer-guide + + rm -rf .tmp/aws-cloudformation-user-guide + git clone --depth 1 https://github.com/awsdocs/aws-cloudformation-user-guide.git .tmp/aws-cloudformation-user-guide + + curl -o .tmp/cloudformation.schema.json https://raw.githubusercontent.com/awslabs/goformation/master/schema/cloudformation.schema.json + +update-schema-data: + # Parse docs + bin/parse_docs.py .tmp/aws-sam-developer-guide/doc_source > schema_source/docs.json + bin/parse_docs.py --cfn .tmp/aws-cloudformation-user-guide/doc_source > schema_source/cloudformation-docs.json + + # Add CloudFormation docs to CloudFormation schema + python bin/add_docs_cfn_schema.py --schema .tmp/cloudformation.schema.json --docs schema_source/cloudformation-docs.json > schema_source/cloudformation.schema.json schema: - 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 + python -m schema_source.schema --sam-schema schema_source/sam.schema.json --cfn-schema schema_source/cloudformation.schema.json --unified-schema samtranslator/schema/schema.json + +# Update all schema data and schemas +schema-all: fetch-schema-data update-schema-data schema # Command to run everytime you make changes to verify everything works dev: test @@ -58,7 +79,7 @@ dev: test pr: black-check lint init dev clean: - rm -r .tmp + rm -rf .tmp define HELP_MESSAGE diff --git a/README.md b/README.md index 09bde6061..cebaee851 100644 --- a/README.md +++ b/README.md @@ -115,9 +115,15 @@ You can also join the [`#samdev` channel](https://join.slack.com/t/awsdevelopers ## Learn more +### Workshops and tutorials + - [The Complete AWS SAM Workshop](https://catalog.workshops.aws/complete-aws-sam) +- [AWS Serverless Developer Experience Workshop](https://catalog.us-east-1.prod.workshops.aws/workshops/9a27e484-7336-4ed0-8f90-f2747e4ac65c/en-US) - [Deploying a "Hello, World!" application](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-getting-started-hello-world.html) - [Testing in the cloud using the SAM CLI](https://aws.amazon.com/blogs/compute/accelerating-serverless-development-with-aws-sam-accelerate/) + +### Documentation + - [SAM Developer Guide](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html) - [SAM template specification](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification.html) - [SAM connectors](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/managing-permissions-connectors.html) diff --git a/bin/_file_formatter.py b/bin/_file_formatter.py index fb1d29682..04615e875 100644 --- a/bin/_file_formatter.py +++ b/bin/_file_formatter.py @@ -27,7 +27,7 @@ def description() -> str: return "JSON file formatter" @abstractmethod - def format(self, input_str: str) -> str: + def format_str(self, input_str: str) -> str: """Format method to formatted file content.""" @staticmethod @@ -41,15 +41,14 @@ def file_extension() -> str: """Return file extension of files to format.""" @classmethod - def config_additional_args(cls) -> None: + def config_additional_args(cls) -> None: # noqa: empty-method-without-abstract-decorator """Optionally configure additional args to arg parser.""" - pass def process_file(self, file_path: str) -> None: with open(file_path, "r", encoding="utf-8") as f: file_str = f.read() try: - formatted_file_str = self.format(file_str) + formatted_file_str = self.format_str(file_str) except self.decode_exception() as error: raise ValueError(f"{file_path}: Cannot decode the file content") from error except Exception as error: @@ -65,7 +64,7 @@ def process_file(self, file_path: str) -> None: self.scanned_file_found += 1 def process_directory(self, directory_path: str) -> None: - for root, dirs, files in os.walk(directory_path): + for root, _dirs, files in os.walk(directory_path): for file in files: file_path = os.path.join(root, file) _, extension = os.path.splitext(file_path) diff --git a/bin/add_docs_cfn_schema.py b/bin/add_docs_cfn_schema.py new file mode 100644 index 000000000..958768717 --- /dev/null +++ b/bin/add_docs_cfn_schema.py @@ -0,0 +1,66 @@ +""" +Script to augment CloudFormation JSON schema with Markdown documentation. +""" + +import argparse +import json +import re +import sys +from pathlib import Path + + +def log(s: str) -> None: + print(s, file=sys.stderr) + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "--schema", + help="CloudFormation JSON schema", + type=Path, + required=True, + ) + parser.add_argument( + "--docs", + help="CloudFormation documentation (as generated by parse_docs.py)", + type=Path, + required=True, + ) + args = parser.parse_args() + + schema = json.loads(args.schema.read_text()) + docs = json.loads(args.docs.read_text())["properties"] + + # Assumes schema is from GoFormation and has consistent structure + # TODO: Use a more generic walk + for def_name, def_schema in schema["definitions"].items(): + if not re.match(r"^\w+::\w+::\w+(.\w+)?$", def_name): + log(f"Skipping {def_name}: not expected format") + continue + # If e.g. AWS::S3::Bucket, we only look under Properties + # TODO: Support resource attributes et al. + props = def_schema["properties"] if "." in def_name else def_schema["properties"]["Properties"]["properties"] + page = def_name.replace(".", " ") + if page not in docs: + log(f"Skipping {def_name}: {page} not in docs") + continue + for prop_name, prop_schema in props.items(): + if prop_name not in docs[page]: + log(f"Skipping {def_name}: {prop_name} not in {page} docs") + continue + prop_schema["markdownDescription"] = docs[page][prop_name] + # GoFormation schema doesn't include it, so VS Code defaults to something unrelated (e.g. "Resources") + prop_schema["title"] = prop_name + + print( + json.dumps( + schema, + indent=2, + sort_keys=True, + ) + ) + + +if __name__ == "__main__": + main() diff --git a/bin/add_transform_test.py b/bin/add_transform_test.py index 2f77901d9..bae5ecf7c 100755 --- a/bin/add_transform_test.py +++ b/bin/add_transform_test.py @@ -1,29 +1,36 @@ #!/usr/bin/env python -"""Automatically create transform tests input and output files given an input template. - -Usage: - add_transform_test.py --template-file=sam-template.yaml [--disable-api-configuration] - add_transform_test.py --template-file=sam-template.yaml - add_transform_test.py --template-file=sam-template.yaml [--disable-update-partition] - -Options: - --template-file= Location of SAM template to transform [default: template.yaml]. - --disable-api-configuration Disable adding REGIONAL configuration to AWS::ApiGateway::RestApi - --disable-update-partition Disable updating the partition of arn to aws-cn/aws-us-gov -""" +"""Automatically create transform tests input and output files given an input template.""" +import argparse import json -import subprocess import os import shutil +import subprocess import sys import tempfile -from docopt import docopt # type: ignore from pathlib import Path from typing import Any, Dict SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) TRANSFORM_TEST_DIR = os.path.join(SCRIPT_DIR, "..", "tests", "translator") -CLI_OPTIONS = docopt(__doc__) + +parser = argparse.ArgumentParser(description=__doc__) +parser.add_argument( + "--template-file", + help="Location of SAM template to transform [default: template.yaml].", + type=Path, + default=Path("template.yaml"), +) +parser.add_argument( + "--disable-api-configuration", + help="Disable adding REGIONAL configuration to AWS::ApiGateway::RestApi", + action="store_true", +) +parser.add_argument( + "--disable-update-partition", + help="Disable updating the partition of arn to aws-cn/aws-us-gov", + action="store_true", +) +CLI_OPTIONS = parser.parse_args() def read_json_file(file_path: str) -> Dict[str, Any]: @@ -82,19 +89,19 @@ def generate_transform_test_output_files(input_file_path: str, file_basename: st "aws-us-gov": os.path.join(TRANSFORM_TEST_DIR, "output/aws-us-gov/", output_file_option), } - if not CLI_OPTIONS.get("--disable-api-configuration"): + if not CLI_OPTIONS.disable_api_configuration: template = read_json_file(temp_output_file.name) template = add_regional_endpoint_configuration_if_needed(template) write_json_file(template, temp_output_file.name) for partition, output_path in regional_transform_test_output_paths.items(): shutil.copyfile(temp_output_file.name, output_path) - if not CLI_OPTIONS.get("--disable-update-partition"): + if not CLI_OPTIONS.disable_update_partition: replace_aws_partition(partition, output_path) def get_input_file_path() -> str: - input_file_option = CLI_OPTIONS.get("--template-file") + input_file_option = str(CLI_OPTIONS.template_file) return os.path.join(os.getcwd(), input_file_option) diff --git a/bin/json-format.py b/bin/json-format.py index 6948f5226..5a2f6d578 100755 --- a/bin/json-format.py +++ b/bin/json-format.py @@ -17,7 +17,7 @@ class JSONFormatter(FileFormatter): def description() -> str: return "JSON file formatter" - def format(self, input_str: str) -> str: + def format_str(self, input_str: str) -> str: """Opinionated format JSON file.""" obj = json.loads(input_str) return json.dumps(obj, indent=2, sort_keys=True) + "\n" diff --git a/bin/parse_docs.py b/bin/parse_docs.py index 2af960651..8621f534d 100755 --- a/bin/parse_docs.py +++ b/bin/parse_docs.py @@ -14,16 +14,20 @@ import json import re from pathlib import Path -from typing import Iterator, Tuple, Dict +from typing import Dict, Iterator, Tuple def parse(s: str) -> Iterator[Tuple[str, str]]: - """Parse an AWS SAM docs page in Markdown format, yielding each property.""" + """Parse an AWS docs page in Markdown format, yielding each property.""" + # Prevent from parsing return values accidentally + s = stringbetween(s, "#\s+Properties", "#\s+Return values") + if not s: + return parts = s.split("\n\n") for part in parts: - if part.startswith(" `"): - name = part.split("`")[1] - yield name, part.strip() + match = re.match(r"^\s*`(\w+)`\s+ str: def remove_first_line(s: str) -> str: - return s.split("\n", 1)[1] + try: + return s.split("\n", 1)[1] + except IndexError: + return "" -def convert_to_full_path(description: str) -> str: +def convert_to_full_path(description: str, prefix: str) -> str: pattern = re.compile("\(([#\.a-zA-Z0-9_-]+)\)") matched_content = pattern.findall(description) @@ -45,26 +52,58 @@ def convert_to_full_path(description: str) -> str: url = path.split(".")[0] + ".html" if "#" in path: url += "#" + path.split("#")[1] - description = description.replace( - path, f"https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/{url}" - ) + description = description.replace(path, prefix + url) return description +def stringbetween(s: str, sep1: str, sep2: str) -> str: + """ + Return string between regexes. Case-insensitive. If sep2 doesn't match, + returns to end of string. + """ + start = re.search(sep1, s, re.IGNORECASE) + if not start: + return "" + s = s[start.end() :] + end = re.search(sep2, s, re.IGNORECASE) + if not end: + return s + return s[: end.start()] + + def main() -> None: parser = argparse.ArgumentParser() parser.add_argument("dir", type=Path) + parser.add_argument("--cfn", action="store_true") args = parser.parse_args() props: Dict[str, Dict[str, str]] = {} for path in args.dir.glob("*.md"): - for name, description in parse(path.read_text()): - if path.stem not in props: - props[path.stem] = {} + text = path.read_text() + title = stringbetween(text, r"#\s+", r" None: + self.signatures: Dict[str, Union[inspect.Signature]] = {} + self.variables: Set[str] = set() + + def scan_interfaces_recursively(self, module_name: str) -> None: + self._scan_interfaces_in_module(module_name) + for submodule in pkgutil.iter_modules([module_name.replace(".", os.path.sep)]): + submodule_name = module_name + "." + submodule.name + self.scan_interfaces_recursively(submodule_name) + + def _scan_interfaces_in_module(self, module_name: str) -> None: + self._scan_functions_in_module(module_name) + self._scan_classes_in_module(module_name) + self._scan_variables_in_module(module_name) + + def _scan_functions_in_module(self, module_name: str) -> None: + for function_name, function in inspect.getmembers( + importlib.import_module(module_name), lambda obj: inspect.ismethod(obj) or inspect.isfunction(obj) + ): + # Skip imported functions and ones starting with "_" + if function.__module__ != module_name or function_name.startswith("_"): + continue + full_path = f"{module_name}.{function_name}" + self.signatures[full_path] = inspect.signature(function) + + def _scan_variables_in_module(self, module_name: str) -> None: + """ + There is no method to verify if a module attribute is a constant, + After some experiment, here we assume if an attribute is a value + (without `__module__`) and not a module itself is a constant. + + Note: Class (and other types) should be treated as a variable too + """ + for constant_name, _ in inspect.getmembers( + importlib.import_module(module_name), + lambda obj: not hasattr(obj, "__module__") and not inspect.ismodule(obj), + ): + if constant_name.startswith("_"): + continue + full_path = f"{module_name}.{constant_name}" + self.variables.add(full_path) + + for class_name, _class in inspect.getmembers(importlib.import_module(module_name), inspect.isclass): + # Skip imported and ones starting with "_" + if _class.__module__ != module_name or class_name.startswith("_"): + continue + full_path = f"{module_name}.{class_name}" + self.variables.add(full_path) + + def _scan_classes_in_module(self, module_name: str) -> None: + for class_name, _class in inspect.getmembers(importlib.import_module(module_name), inspect.isclass): + # Skip imported and ones starting with "_" + if _class.__module__ != module_name or class_name.startswith("_"): + continue + self._scan_methods_in_class(class_name, _class) + + def _scan_methods_in_class(self, class_name: str, _class: Any) -> None: + for method_name, method in inspect.getmembers( + _class, lambda obj: inspect.ismethod(obj) or inspect.isfunction(obj) + ): + if method_name.startswith("_"): + continue + full_path = f"{_class.__module__}.{class_name}.{method_name}" + self.signatures[full_path] = inspect.signature(method) + + +def _print(signature: Dict[str, inspect.Signature], variables: Set[str]) -> None: + result: Dict[str, Any] = {"routines": {}, "variables": sorted(variables)} + for key, value in signature.items(): + result["routines"][key] = [ + { + "name": parameter.name, + "kind": parameter.kind.name, + "default": parameter.default, + } + if parameter.default != inspect.Parameter.empty + else {"name": parameter.name, "kind": parameter.kind.name} + for parameter in value.parameters.values() + ] + print(json.dumps(result, indent=2, sort_keys=True)) + + +class _BreakingChanges(NamedTuple): + deleted_variables: List[str] + deleted_routines: List[str] + incompatible_routines: List[str] + + def is_empty(self) -> bool: + return not any([self.deleted_variables, self.deleted_routines, self.incompatible_routines]) + + @staticmethod + def _argument_to_str(argument: Dict[str, Any]) -> str: + if "default" in argument: + return f'{argument["name"]}={argument["default"]}' + return str(argument["name"]) + + def print_markdown( + self, + original_routines: Dict[str, List[Dict[str, Any]]], + routines: Dict[str, List[Dict[str, Any]]], + ) -> None: + """Print all breaking changes in markdown.""" + print("\n# Compatibility breaking changes:") + print("**These changes are considered breaking changes and may break packages consuming") + print("the PyPI package [aws-sam-translator](https://pypi.org/project/aws-sam-translator/).") + print("Please consider revisiting these changes to make sure they are intentional:**") + if self.deleted_variables: + print("\n## Deleted module level variables") + for name in self.deleted_variables: + print(f"- {name}") + if self.deleted_routines: + print("\n## Deleted routines") + for name in self.deleted_routines: + print(f"- {name}") + if self.incompatible_routines: + print("\n## Incompatible routines") + for name in self.incompatible_routines: + before = f"({', '.join(self._argument_to_str(arg) for arg in original_routines[name])})" + after = f"({', '.join(self._argument_to_str(arg) for arg in routines[name])})" + print(f"- {name}: `{before}` -> `{after}`") + + +def _only_new_optional_arguments_or_existing_arguments_optionalized_or_var_arguments( + original_arguments: List[Dict[str, Any]], arguments: List[Dict[str, Any]] +) -> bool: + if len(original_arguments) > len(arguments): + return False + for i, original_argument in enumerate(original_arguments): + if original_argument == arguments[i]: + continue + if ( + original_argument["name"] == arguments[i]["name"] + and original_argument["kind"] == arguments[i]["kind"] + and "default" not in original_argument + and "default" in arguments[i] + ): + continue + return False + # it is an optional argument when it has a default value: + return all( + [ + "default" in argument or argument["kind"] in ("VAR_KEYWORD", "VAR_POSITIONAL") + for argument in arguments[len(original_arguments) :] + ] + ) + + +def _is_compatible(original_arguments: List[Dict[str, Any]], arguments: List[Dict[str, Any]]) -> bool: + """ + If there is an argument change, it is compatible only when + - new optional arguments are added or existing arguments become optional. + - var arguments (*args, **kwargs) are added + - self is removed (method -> staticmethod). + - combination of above + """ + if ( + original_arguments == arguments + or _only_new_optional_arguments_or_existing_arguments_optionalized_or_var_arguments( + original_arguments, arguments + ) + ): + return True + if original_arguments and original_arguments[0] == _ARGUMENT_SELF: + original_arguments_without_self = original_arguments[1:] + if _is_compatible(original_arguments_without_self, arguments): + return True + return False + + +def _detect_breaking_changes( + original_routines: Dict[str, List[Dict[str, Any]]], + original_variables: Set[str], + routines: Dict[str, List[Dict[str, Any]]], + variables: Set[str], +) -> _BreakingChanges: + deleted_routines: List[str] = [] + incompatible_routines: List[str] = [] + for routine_path, arguments in original_routines.items(): + if routine_path not in routines: + deleted_routines.append(routine_path) + elif not _is_compatible(arguments, routines[routine_path]): + incompatible_routines.append(routine_path) + return _BreakingChanges( + sorted(set(original_variables) - set(variables)), sorted(deleted_routines), sorted(incompatible_routines) + ) + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + + subparsers = parser.add_subparsers(dest="command") + extract = subparsers.add_parser("extract", help="Extract public interfaces") + extract.add_argument("--module", help="The module to extract public interfaces", type=str, default="samtranslator") + check = subparsers.add_parser("check", help="Check public interface changes") + check.add_argument("original_json", help="The original public interface JSON file", type=Path) + check.add_argument("new_json", help="The new public interface JSON file", type=Path) + args = parser.parse_args() + + if args.command == "extract": + scanner = InterfaceScanner() + scanner.scan_interfaces_recursively(args.module) + _print(scanner.signatures, scanner.variables) + elif args.command == "check": + original_json = json.loads(args.original_json.read_text()) + new_json = json.loads(args.new_json.read_text()) + breaking_changes = _detect_breaking_changes( + original_json["routines"], original_json["variables"], new_json["routines"], new_json["variables"] + ) + if breaking_changes.is_empty(): + sys.stderr.write("No compatibility breaking changes detected.\n") + else: + sys.stderr.write("Compatibility breaking changes detected!!!\n") + breaking_changes.print_markdown(original_json["routines"], new_json["routines"]) + sys.exit(1) + else: + parser.print_help() + sys.exit(1) + + +if __name__ == "__main__": + main() diff --git a/bin/sam-translate.py b/bin/sam-translate.py index 2b532047a..9ce8e6c60 100755 --- a/bin/sam-translate.py +++ b/bin/sam-translate.py @@ -3,47 +3,65 @@ """Convert SAM templates to CloudFormation templates. Known limitations: cannot transform CodeUri pointing at local directory. - -Usage: - sam-translate.py --template-file=sam-template.yaml [--verbose] [--output-template=] - sam-translate.py package --template-file=sam-template.yaml --s3-bucket=my-bucket [--verbose] [--output-template=] - sam-translate.py deploy --template-file=sam-template.yaml --s3-bucket=my-bucket --capabilities=CAPABILITY_NAMED_IAM --stack-name=my-stack [--verbose] [--output-template=] - -Options: - --template-file= Location of SAM template to transform [default: template.yaml]. - --output-template= Location to store resulting CloudFormation template [default: transformed-template.json]. - --s3-bucket= S3 bucket to use for SAM artifacts when using the `package` command - --capabilities= Capabilities - --stack-name= Unique name for your CloudFormation Stack - --verbose Enables verbose logging - """ +import argparse import json import logging import os import platform import subprocess import sys +from functools import reduce +from pathlib import Path import boto3 -from docopt import docopt # type: ignore[import] -from functools import reduce - +# To allow this script to be executed from other directories my_path = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, my_path + "/..") +from samtranslator.model.exceptions import InvalidDocumentException from samtranslator.public.translator import ManagedPolicyLoader from samtranslator.translator.transform import transform from samtranslator.yaml_helper import yaml_parse -from samtranslator.model.exceptions import InvalidDocumentException LOG = logging.getLogger(__name__) -cli_options = docopt(__doc__) iam_client = boto3.client("iam") -cwd = os.getcwd() -if cli_options.get("--verbose"): +parser = argparse.ArgumentParser(description=__doc__) +parser.add_argument("command", nargs="?") +parser.add_argument( + "--template-file", + help="Location of SAM template to transform [default: template.yaml].", + type=Path, + default=Path("template.yaml"), +) +parser.add_argument( + "--output-template", + help="Location to store resulting CloudFormation template [default: transformed-template.json].", + type=Path, + default=Path("transformed-template.yaml"), +) +parser.add_argument( + "--s3-bucket", + help="S3 bucket to use for SAM artifacts when using the `package` command", +) +parser.add_argument( + "--capabilities", + help="Capabilities", +) +parser.add_argument( + "--stack-name", + help="Unique name for your CloudFormation Stack", +) +parser.add_argument( + "--verbose", + help="Enables verbose logging", + action="store_true", +) +cli_options = parser.parse_args() + +if cli_options.verbose: logging.basicConfig(level=logging.DEBUG) else: logging.basicConfig() @@ -52,7 +70,7 @@ def execute_command(command, args): # type: ignore[no-untyped-def] try: aws_cmd = "aws" if platform.system().lower() != "windows" else "aws.cmd" - command_with_args = [aws_cmd, "cloudformation", command] + list(args) + command_with_args = [aws_cmd, "cloudformation", command, *list(args)] LOG.debug("Executing command: %s", command_with_args) @@ -65,19 +83,10 @@ def execute_command(command, args): # type: ignore[no-untyped-def] sys.exit(e.returncode) -def get_input_output_file_paths(): # type: ignore[no-untyped-def] - input_file_option = cli_options.get("--template-file") - output_file_option = cli_options.get("--output-template") - input_file_path = os.path.join(cwd, input_file_option) - output_file_path = os.path.join(cwd, output_file_option) - - return input_file_path, output_file_path - - def package(input_file_path, output_file_path): # type: ignore[no-untyped-def] template_file = input_file_path package_output_template_file = input_file_path + "._sam_packaged_.yaml" - s3_bucket = cli_options.get("--s3-bucket") + s3_bucket = cli_options.s3_bucket args = [ "--template-file", template_file, @@ -112,8 +121,8 @@ def transform_template(input_file_path, output_file_path): # type: ignore[no-un def deploy(template_file): # type: ignore[no-untyped-def] - capabilities = cli_options.get("--capabilities") - stack_name = cli_options.get("--stack-name") + capabilities = cli_options.capabilities + stack_name = cli_options.stack_name args = ["--template-file", template_file, "--capabilities", capabilities, "--stack-name", stack_name] execute_command("deploy", args) # type: ignore[no-untyped-call] @@ -122,12 +131,13 @@ def deploy(template_file): # type: ignore[no-untyped-def] if __name__ == "__main__": - input_file_path, output_file_path = get_input_output_file_paths() # type: ignore[no-untyped-call] + input_file_path = str(cli_options.template_file) + output_file_path = str(cli_options.output_template) - if cli_options.get("package"): + if cli_options.command == "package": package_output_template_file = package(input_file_path, output_file_path) # type: ignore[no-untyped-call] transform_template(package_output_template_file, output_file_path) # type: ignore[no-untyped-call] - elif cli_options.get("deploy"): + elif cli_options.command == "deploy": package_output_template_file = package(input_file_path, output_file_path) # type: ignore[no-untyped-call] transform_template(package_output_template_file, output_file_path) # type: ignore[no-untyped-call] deploy(output_file_path) # type: ignore[no-untyped-call] diff --git a/bin/yaml-format.py b/bin/yaml-format.py index dbea33e60..12b42ba66 100755 --- a/bin/yaml-format.py +++ b/bin/yaml-format.py @@ -31,7 +31,7 @@ class YAMLFormatter(FileFormatter): def description() -> str: return "YAML file formatter" - def format(self, input_str: str) -> str: + def format_str(self, input_str: str) -> str: """Opinionated format YAML file.""" obj = yaml.load(input_str) if self.args.add_test_metadata: @@ -48,7 +48,7 @@ def format(self, input_str: str) -> str: # and we don't really want those, so if no yaml version # is specified in the original file, remove it from the output file. if not re.match(YAML_VERSION_COMMENT_REGEX, input_str): - formatted = re.sub(YAML_VERSION_COMMENT_REGEX, "", formatted) + return re.sub(YAML_VERSION_COMMENT_REGEX, "", formatted) return formatted diff --git a/docs/schema.md b/docs/schema.md new file mode 100644 index 000000000..ba41190c2 --- /dev/null +++ b/docs/schema.md @@ -0,0 +1,38 @@ +# AWS SAM JSON schema + +## Context + +The [AWS SAM specification](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification.html) is defined by a [JSON schema](https://github.com/aws/serverless-application-model/discussions/2645). + +## Schema generation + +At a high level, the final [`schema.json`](https://github.com/aws/serverless-application-model/blob/develop/samtranslator/schema/schema.json) is generated as such: + +```mermaid +flowchart TD + subgraph repogoformation["awslabs/goformation"] + cfnschema(["CloudFormation schema"]) + end + + subgraph repocfndocs["awsdocs/aws-cloudformation-user-guide"] + cfndocs(["CloudFormation documentation"]) + end + + subgraph reposamdocs["awsdocs/aws-sam-developer-guide"] + samdocs(["SAM documentation"]) + end + + samschema(["SAM schema"]) + cfnschemadocs(["CloudFormation schema with documentation"]) + samschemadocs(["SAM schema with documentation"]) + final(["SAM and CloudFormation schema with documentation"]) + + cfnschema --> cfnschemadocs + cfndocs --> cfnschemadocs + samschema --> samschemadocs + samdocs --> samschemadocs + cfnschemadocs --> final + samschemadocs --> final +``` + +The schema is [automatically updated](https://github.com/aws/serverless-application-model/blob/develop/.github/workflows/schema.yml) at regular intervals. diff --git a/integration/combination/test_api_settings.py b/integration/combination/test_api_settings.py index c78948074..abf57f24a 100644 --- a/integration/combination/test_api_settings.py +++ b/integration/combination/test_api_settings.py @@ -1,8 +1,8 @@ import hashlib from unittest.case import skipIf -from integration.helpers.resource import current_region_does_not_support from integration.config.service_names import REST_API +from integration.helpers.resource import current_region_does_not_support try: from pathlib import Path diff --git a/integration/combination/test_api_with_authorizer_apikey.py b/integration/combination/test_api_with_authorizer_apikey.py index cdbb2e4e0..e782877c6 100644 --- a/integration/combination/test_api_with_authorizer_apikey.py +++ b/integration/combination/test_api_with_authorizer_apikey.py @@ -1,12 +1,10 @@ from unittest.case import skipIf +from integration.config.service_names import API_KEY, REST_API from integration.helpers.base_test import BaseTest from integration.helpers.deployer.utils.retry import retry from integration.helpers.exception import StatusCodeError - - from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import REST_API, API_KEY @skipIf(current_region_does_not_support([REST_API, API_KEY]), "RestApi/ApiKey is not supported in this testing region") diff --git a/integration/combination/test_api_with_authorizers.py b/integration/combination/test_api_with_authorizers.py index b0188a359..e68c54053 100644 --- a/integration/combination/test_api_with_authorizers.py +++ b/integration/combination/test_api_with_authorizers.py @@ -1,10 +1,10 @@ from unittest.case import skipIf +from integration.config.service_names import API_KEY, COGNITO, REST_API from integration.helpers.base_test import BaseTest from integration.helpers.deployer.utils.retry import retry from integration.helpers.exception import StatusCodeError from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import API_KEY, COGNITO, REST_API @skipIf( diff --git a/integration/combination/test_api_with_cors.py b/integration/combination/test_api_with_cors.py index 414ed5d75..55fab2777 100644 --- a/integration/combination/test_api_with_cors.py +++ b/integration/combination/test_api_with_cors.py @@ -1,12 +1,10 @@ -from integration.helpers.base_test import BaseTest -import requests from unittest.case import skipIf +from parameterized import parameterized + +from integration.config.service_names import REST_API from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import REST_API -from integration.helpers.deployer.utils.retry import retry -from parameterized import parameterized ALL_METHODS = "DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT" diff --git a/integration/combination/test_api_with_disable_execute_api_endpoint.py b/integration/combination/test_api_with_disable_execute_api_endpoint.py index 9be2c7988..35d926fdb 100644 --- a/integration/combination/test_api_with_disable_execute_api_endpoint.py +++ b/integration/combination/test_api_with_disable_execute_api_endpoint.py @@ -1,11 +1,10 @@ from unittest.case import skipIf + from parameterized import parameterized +from integration.config.service_names import REST_API from integration.helpers.base_test import BaseTest - - from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import REST_API @skipIf(current_region_does_not_support([REST_API]), "RestApi is not supported in this testing region") @@ -41,7 +40,7 @@ def test_end_point_configuration(self, file_name, disable_value): ("combination/api_with_disable_execute_api_endpoint_openapi_3", False), ] ) - def test_end_point_configuration(self, file_name, disable_value): + def test_end_point_configuration_openapi(self, file_name, disable_value): parameters = [ { "ParameterKey": "DisableExecuteApiEndpointValue", diff --git a/integration/combination/test_api_with_fail_on_warnings.py b/integration/combination/test_api_with_fail_on_warnings.py index 96c70fcc8..a9b5c4365 100644 --- a/integration/combination/test_api_with_fail_on_warnings.py +++ b/integration/combination/test_api_with_fail_on_warnings.py @@ -1,9 +1,10 @@ from unittest.case import skipIf + from parameterized import parameterized +from integration.config.service_names import REST_API from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import REST_API @skipIf(current_region_does_not_support([REST_API]), "RestApi is not supported in this testing region") diff --git a/integration/combination/test_api_with_gateway_responses.py b/integration/combination/test_api_with_gateway_responses.py index 2554cbb34..bc6679d71 100644 --- a/integration/combination/test_api_with_gateway_responses.py +++ b/integration/combination/test_api_with_gateway_responses.py @@ -1,11 +1,11 @@ import logging from unittest.case import skipIf -from tenacity import stop_after_attempt, retry_if_exception_type, after_log, wait_exponential, retry, wait_random +from tenacity import after_log, retry, retry_if_exception_type, stop_after_attempt, wait_exponential, wait_random +from integration.config.service_names import GATEWAY_RESPONSES, REST_API from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import GATEWAY_RESPONSES, REST_API LOG = logging.getLogger(__name__) diff --git a/integration/combination/test_api_with_resource_policies.py b/integration/combination/test_api_with_resource_policies.py index 366892e08..00b026c0c 100644 --- a/integration/combination/test_api_with_resource_policies.py +++ b/integration/combination/test_api_with_resource_policies.py @@ -1,9 +1,9 @@ import json from unittest.case import skipIf +from integration.config.service_names import REST_API from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import REST_API @skipIf(current_region_does_not_support([REST_API]), "Rest API is not supported in this testing region") diff --git a/integration/combination/test_api_with_usage_plan.py b/integration/combination/test_api_with_usage_plan.py index 50b699482..b1d6cd688 100644 --- a/integration/combination/test_api_with_usage_plan.py +++ b/integration/combination/test_api_with_usage_plan.py @@ -1,8 +1,8 @@ from unittest.case import skipIf +from integration.config.service_names import REST_API, USAGE_PLANS from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import USAGE_PLANS, REST_API @skipIf(current_region_does_not_support([USAGE_PLANS, REST_API]), "UsagePlans is not supported in this testing region") diff --git a/integration/combination/test_connectors.py b/integration/combination/test_connectors.py index 18ae75f70..fc9480f53 100644 --- a/integration/combination/test_connectors.py +++ b/integration/combination/test_connectors.py @@ -1,7 +1,9 @@ from time import sleep from unittest import SkipTest + from parameterized import parameterized -from tenacity import retry, stop_after_attempt, retry_if_exception +from tenacity import retry, retry_if_exception, stop_after_attempt + from integration.conftest import clean_bucket from integration.helpers.base_test import S3_BUCKET_PREFIX, BaseTest from integration.helpers.resource import generate_suffix @@ -28,6 +30,7 @@ def tearDown(self): ("combination/connector_restapi_to_function",), ("combination/connector_httpapi_to_function",), ("combination/connector_function_to_bucket_read",), + ("combination/connector_function_to_bucket_read_multiple",), ("combination/connector_function_to_bucket_write",), ("combination/connector_function_to_table_read",), ("combination/connector_function_to_table_write",), @@ -44,6 +47,9 @@ def tearDown(self): ("combination/connector_event_rule_to_eb_default_write",), ("combination/connector_event_rule_to_eb_custom_write",), ("combination/connector_event_rule_to_lambda_write",), + ("combination/connector_event_rule_to_lambda_write_multiple",), + ("combination/connector_function_to_location_place_index",), + ("combination/connector_mix_destination",), ("combination/connector_sqs_to_function",), ("combination/connector_sns_to_function_write",), ("combination/connector_table_to_function_read",), @@ -57,7 +63,6 @@ def test_connector_by_invoking_a_function(self, template_file_path): lambda_function_name = self.get_physical_id_by_logical_id("TriggerFunction") lambda_client = self.client_provider.lambda_client - s3_client = self.client_provider.s3_client request_params = { "FunctionName": lambda_function_name, @@ -90,7 +95,6 @@ def test_connector_by_sync_execute_an_state_machine(self, template_file_path): state_machine_arn = self.get_physical_id_by_logical_id("TriggerStateMachine") sfn_client = self.client_provider.sfn_client - s3_client = self.client_provider.s3_client response = sfn_client.start_sync_execution( stateMachineArn=state_machine_arn, @@ -146,7 +150,6 @@ def test_connector_by_execute_a_s3_bucket(self, template_file_path): lambda_function_name = self.get_physical_id_by_logical_id("TriggerFunction") lambda_client = self.client_provider.lambda_client - s3_client = self.client_provider.s3_client request_params = { "FunctionName": lambda_function_name, diff --git a/integration/combination/test_function_with_alias.py b/integration/combination/test_function_with_alias.py index e890e90a6..d2f6c572e 100644 --- a/integration/combination/test_function_with_alias.py +++ b/integration/combination/test_function_with_alias.py @@ -2,10 +2,11 @@ from unittest.case import skipIf from botocore.exceptions import ClientError -from integration.helpers.base_test import BaseTest, LOG + +from integration.config.service_names import REST_API +from integration.helpers.base_test import LOG, BaseTest from integration.helpers.common_api import get_function_versions from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import REST_API class TestFunctionWithAlias(BaseTest): @@ -35,9 +36,44 @@ def test_updating_version_by_changing_property_value(self): self.assertEqual(len(alias), 1) self.assertEqual(len(versions), 1) + def test_updating_version_by_changing_property_value_additional_properties(self): + self.create_and_verify_stack("combination/function_with_alias_and_all_properties_property") + alias_name = "Live" + function_name = self.get_physical_id_by_type("AWS::Lambda::Function") + version_ids = self.get_function_version_by_name(function_name) + self.assertEqual(["1"], version_ids) + + alias = self.get_alias(function_name, alias_name) + self.assertEqual("1", alias["FunctionVersion"]) + + # Changing Handler should create a new version, and leave the existing version intact + self.set_template_resource_property("MyLambdaFunction", "Handler", "not_index.handler") + self.update_stack() + + version_ids = self.get_function_version_by_name(function_name) + self.assertEqual(["1", "2"], version_ids) + + alias = self.get_alias(function_name, alias_name) + self.assertEqual("2", alias["FunctionVersion"]) + + # Changing Description should create a new version, and leave the existing version intact + self.set_template_resource_property("MyLambdaFunction", "Description", "bar") + self.update_stack() + + version_ids = self.get_function_version_by_name(function_name) + self.assertEqual(["1", "2", "3"], version_ids) + + alias = self.get_alias(function_name, alias_name) + self.assertEqual("3", alias["FunctionVersion"]) + + # Make sure the stack has only One Version & One Alias resource + alias = self.get_stack_resources("AWS::Lambda::Alias") + versions = self.get_stack_resources("AWS::Lambda::Version") + self.assertEqual(len(alias), 1) + self.assertEqual(len(versions), 1) + def test_alias_deletion_must_retain_version(self): self.create_and_verify_stack("combination/function_with_alias") - alias_name = "Live" function_name = self.get_physical_id_by_type("AWS::Lambda::Function") version_ids = self.get_function_version_by_name(function_name) self.assertEqual(["1"], version_ids) diff --git a/integration/combination/test_function_with_all_event_types.py b/integration/combination/test_function_with_all_event_types.py index a29c0bd1e..1a2913bff 100644 --- a/integration/combination/test_function_with_all_event_types.py +++ b/integration/combination/test_function_with_all_event_types.py @@ -1,8 +1,8 @@ from unittest.case import skipIf +from integration.config.service_names import IOT, SCHEDULE_EVENT from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support, generate_suffix -from integration.config.service_names import IOT, SCHEDULE_EVENT @skipIf( diff --git a/integration/combination/test_function_with_api.py b/integration/combination/test_function_with_api.py index 4ba22e46a..23f21ab48 100644 --- a/integration/combination/test_function_with_api.py +++ b/integration/combination/test_function_with_api.py @@ -1,8 +1,8 @@ from unittest.case import skipIf +from integration.config.service_names import REST_API from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import REST_API @skipIf(current_region_does_not_support([REST_API]), "Rest API is not supported in this testing region") diff --git a/integration/combination/test_function_with_application.py b/integration/combination/test_function_with_application.py index 1e238d457..468f81f95 100644 --- a/integration/combination/test_function_with_application.py +++ b/integration/combination/test_function_with_application.py @@ -2,11 +2,11 @@ from botocore.exceptions import ClientError +from integration.config.service_names import SERVERLESS_REPO from integration.helpers.base_test import BaseTest from integration.helpers.deployer.exceptions.exceptions import ThrottlingError from integration.helpers.deployer.utils.retry import retry_with_exponential_backoff_and_jitter from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import SERVERLESS_REPO class TestFunctionWithApplication(BaseTest): diff --git a/integration/combination/test_function_with_cwe_dlq_and_retry_policy.py b/integration/combination/test_function_with_cwe_dlq_and_retry_policy.py index 220d8963d..741bd9dd7 100644 --- a/integration/combination/test_function_with_cwe_dlq_and_retry_policy.py +++ b/integration/combination/test_function_with_cwe_dlq_and_retry_policy.py @@ -1,8 +1,8 @@ from unittest.case import skipIf +from integration.config.service_names import CWE_CWS_DLQ from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import CWE_CWS_DLQ @skipIf(current_region_does_not_support([CWE_CWS_DLQ]), "CweCwsDlq is not supported in this testing region") diff --git a/integration/combination/test_function_with_cwe_dlq_generated.py b/integration/combination/test_function_with_cwe_dlq_generated.py index de05fbd00..52975df02 100644 --- a/integration/combination/test_function_with_cwe_dlq_generated.py +++ b/integration/combination/test_function_with_cwe_dlq_generated.py @@ -1,10 +1,9 @@ -import json from unittest.case import skipIf +from integration.config.service_names import CWE_CWS_DLQ from integration.helpers.base_test import BaseTest from integration.helpers.common_api import get_queue_policy -from integration.helpers.resource import first_item_in_dict, current_region_does_not_support -from integration.config.service_names import CWE_CWS_DLQ +from integration.helpers.resource import current_region_does_not_support, first_item_in_dict @skipIf(current_region_does_not_support([CWE_CWS_DLQ]), "CweCwsDlq is not supported in this testing region") diff --git a/integration/combination/test_function_with_deployment_preference.py b/integration/combination/test_function_with_deployment_preference.py index d69e44d56..9de467c70 100644 --- a/integration/combination/test_function_with_deployment_preference.py +++ b/integration/combination/test_function_with_deployment_preference.py @@ -1,8 +1,8 @@ from unittest.case import skipIf +from integration.config.service_names import CODE_DEPLOY from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support, generate_suffix -from integration.config.service_names import CODE_DEPLOY CODEDEPLOY_APPLICATION_LOGICAL_ID = "ServerlessDeploymentApplication" LAMBDA_FUNCTION_NAME = "MyLambdaFunction" diff --git a/integration/combination/test_function_with_dynamoDB.py b/integration/combination/test_function_with_dynamoDB.py index adf725b9b..44cd3c17b 100644 --- a/integration/combination/test_function_with_dynamoDB.py +++ b/integration/combination/test_function_with_dynamoDB.py @@ -1,8 +1,8 @@ from unittest.case import skipIf +from integration.config.service_names import DYNAMO_DB from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import DYNAMO_DB @skipIf(current_region_does_not_support([DYNAMO_DB]), "DynamoDB is not supported in this testing region") diff --git a/integration/combination/test_function_with_file_system_config.py b/integration/combination/test_function_with_file_system_config.py index e10cbbd1c..ed84f5ce9 100644 --- a/integration/combination/test_function_with_file_system_config.py +++ b/integration/combination/test_function_with_file_system_config.py @@ -1,4 +1,5 @@ from unittest.case import skipIf + import pytest from integration.config.service_names import EFS diff --git a/integration/combination/test_function_with_http_api.py b/integration/combination/test_function_with_http_api.py index 12c98301d..db0bd4a89 100644 --- a/integration/combination/test_function_with_http_api.py +++ b/integration/combination/test_function_with_http_api.py @@ -3,9 +3,9 @@ import pytest +from integration.config.service_names import HTTP_API from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import HTTP_API LOG = logging.getLogger(__name__) diff --git a/integration/combination/test_function_with_implicit_api_and_conditions.py b/integration/combination/test_function_with_implicit_api_and_conditions.py index c6fd02768..4c1e672c3 100644 --- a/integration/combination/test_function_with_implicit_api_and_conditions.py +++ b/integration/combination/test_function_with_implicit_api_and_conditions.py @@ -1,8 +1,8 @@ from unittest.case import skipIf +from integration.config.service_names import REST_API from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import REST_API @skipIf(current_region_does_not_support([REST_API]), "Rest API is not supported in this testing region") diff --git a/integration/combination/test_function_with_implicit_http_api.py b/integration/combination/test_function_with_implicit_http_api.py index 5803bc9e6..6ccec0c09 100644 --- a/integration/combination/test_function_with_implicit_http_api.py +++ b/integration/combination/test_function_with_implicit_http_api.py @@ -1,8 +1,8 @@ from unittest.case import skipIf +from integration.config.service_names import HTTP_API from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import HTTP_API @skipIf(current_region_does_not_support([HTTP_API]), "HttpApi is not supported in this testing region") diff --git a/integration/combination/test_function_with_kinesis.py b/integration/combination/test_function_with_kinesis.py index ab59238f3..3773c955c 100644 --- a/integration/combination/test_function_with_kinesis.py +++ b/integration/combination/test_function_with_kinesis.py @@ -1,8 +1,8 @@ from unittest.case import skipIf -from parameterized import parameterized + +from integration.config.service_names import KINESIS from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import KINESIS @skipIf(current_region_does_not_support([KINESIS]), "Kinesis is not supported in this testing region") diff --git a/integration/combination/test_function_with_layers.py b/integration/combination/test_function_with_layers.py index ee12fc7ea..be1d20fac 100644 --- a/integration/combination/test_function_with_layers.py +++ b/integration/combination/test_function_with_layers.py @@ -1,8 +1,8 @@ from unittest.case import skipIf +from integration.config.service_names import LAYERS from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import LAYERS @skipIf(current_region_does_not_support([LAYERS]), "Layers is not supported in this testing region") diff --git a/integration/combination/test_function_with_mq.py b/integration/combination/test_function_with_mq.py index d63f5c1b7..0f60cf545 100644 --- a/integration/combination/test_function_with_mq.py +++ b/integration/combination/test_function_with_mq.py @@ -3,9 +3,9 @@ import pytest from parameterized import parameterized +from integration.config.service_names import MQ from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support, generate_suffix -from integration.config.service_names import MQ @skipIf(current_region_does_not_support([MQ]), "MQ is not supported in this testing region") diff --git a/integration/combination/test_function_with_msk.py b/integration/combination/test_function_with_msk.py index 8935a4a33..0d4a77392 100644 --- a/integration/combination/test_function_with_msk.py +++ b/integration/combination/test_function_with_msk.py @@ -2,9 +2,9 @@ import pytest +from integration.config.service_names import MSK from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support, generate_suffix -from integration.config.service_names import MSK @skipIf(current_region_does_not_support([MSK]), "MSK is not supported in this testing region") diff --git a/integration/combination/test_function_with_s3_bucket.py b/integration/combination/test_function_with_s3_bucket.py index 574ee7bc8..cc718d16d 100644 --- a/integration/combination/test_function_with_s3_bucket.py +++ b/integration/combination/test_function_with_s3_bucket.py @@ -1,8 +1,8 @@ from unittest.case import skipIf +from integration.config.service_names import S3_EVENTS from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import S3_EVENTS @skipIf(current_region_does_not_support([S3_EVENTS]), "S3 Events feature is not supported in this testing region") diff --git a/integration/combination/test_function_with_schedule.py b/integration/combination/test_function_with_schedule.py index 304f923a1..2a1ab89c8 100644 --- a/integration/combination/test_function_with_schedule.py +++ b/integration/combination/test_function_with_schedule.py @@ -1,8 +1,8 @@ from unittest.case import skipIf +from integration.config.service_names import SCHEDULE_EVENT from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support, generate_suffix -from integration.config.service_names import SCHEDULE_EVENT @skipIf(current_region_does_not_support([SCHEDULE_EVENT]), "ScheduleEvent is not supported in this testing region") diff --git a/integration/combination/test_function_with_schedule_dlq_and_retry_policy.py b/integration/combination/test_function_with_schedule_dlq_and_retry_policy.py index 7079ad02b..3898e88af 100644 --- a/integration/combination/test_function_with_schedule_dlq_and_retry_policy.py +++ b/integration/combination/test_function_with_schedule_dlq_and_retry_policy.py @@ -1,8 +1,8 @@ from unittest.case import skipIf +from integration.config.service_names import CWE_CWS_DLQ from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import CWE_CWS_DLQ @skipIf(current_region_does_not_support([CWE_CWS_DLQ]), "CweCwsDlq is not supported in this testing region") diff --git a/integration/combination/test_function_with_schedule_dlq_generated.py b/integration/combination/test_function_with_schedule_dlq_generated.py index 0d815e860..1402ab790 100644 --- a/integration/combination/test_function_with_schedule_dlq_generated.py +++ b/integration/combination/test_function_with_schedule_dlq_generated.py @@ -1,9 +1,9 @@ from unittest.case import skipIf +from integration.config.service_names import CWE_CWS_DLQ from integration.helpers.base_test import BaseTest from integration.helpers.common_api import get_queue_policy from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import CWE_CWS_DLQ @skipIf(current_region_does_not_support([CWE_CWS_DLQ]), "CweCwsDlq is not supported in this testing region") diff --git a/integration/combination/test_function_with_self_managed_kafka.py b/integration/combination/test_function_with_self_managed_kafka.py index 9a8ad13a4..ef97d3d25 100644 --- a/integration/combination/test_function_with_self_managed_kafka.py +++ b/integration/combination/test_function_with_self_managed_kafka.py @@ -1,12 +1,12 @@ from unittest.case import skipIf + import pytest +from parameterized import parameterized +from integration.config.service_names import SELF_MANAGED_KAFKA from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_not_included -from integration.config.service_names import SELF_MANAGED_KAFKA -from parameterized import parameterized - @skipIf( current_region_not_included([SELF_MANAGED_KAFKA]), diff --git a/integration/combination/test_function_with_signing_profile.py b/integration/combination/test_function_with_signing_profile.py index 0bcd37353..9d4ca034c 100644 --- a/integration/combination/test_function_with_signing_profile.py +++ b/integration/combination/test_function_with_signing_profile.py @@ -1,8 +1,8 @@ from unittest.case import skipIf +from integration.config.service_names import CODE_SIGN from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import CODE_SIGN class TestFunctionWithSigningProfile(BaseTest): diff --git a/integration/combination/test_function_with_sns.py b/integration/combination/test_function_with_sns.py index 2562099af..6cc46186f 100644 --- a/integration/combination/test_function_with_sns.py +++ b/integration/combination/test_function_with_sns.py @@ -1,8 +1,8 @@ from unittest.case import skipIf +from integration.config.service_names import SNS from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import SNS @skipIf(current_region_does_not_support([SNS]), "SNS is not supported in this testing region") diff --git a/integration/combination/test_function_with_sqs.py b/integration/combination/test_function_with_sqs.py index 022b65a3d..58492a8b9 100644 --- a/integration/combination/test_function_with_sqs.py +++ b/integration/combination/test_function_with_sqs.py @@ -1,8 +1,8 @@ from unittest.case import skipIf +from integration.config.service_names import SQS from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import SQS @skipIf(current_region_does_not_support([SQS]), "SQS is not supported in this testing region") diff --git a/integration/combination/test_function_with_user_pool_event.py b/integration/combination/test_function_with_user_pool_event.py index df73bb0e7..f9ea0b800 100644 --- a/integration/combination/test_function_with_user_pool_event.py +++ b/integration/combination/test_function_with_user_pool_event.py @@ -1,8 +1,8 @@ from unittest.case import skipIf +from integration.config.service_names import COGNITO from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import COGNITO @skipIf(current_region_does_not_support([COGNITO]), "Cognito is not supported in this testing region") diff --git a/integration/combination/test_http_api_with_auth.py b/integration/combination/test_http_api_with_auth.py index 57e76ec66..2ada7be35 100644 --- a/integration/combination/test_http_api_with_auth.py +++ b/integration/combination/test_http_api_with_auth.py @@ -1,8 +1,8 @@ from unittest.case import skipIf +from integration.config.service_names import HTTP_API from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import HTTP_API @skipIf(current_region_does_not_support([HTTP_API]), "HttpApi is not supported in this testing region") diff --git a/integration/combination/test_http_api_with_cors.py b/integration/combination/test_http_api_with_cors.py index e884e82ef..8afeb2ec4 100644 --- a/integration/combination/test_http_api_with_cors.py +++ b/integration/combination/test_http_api_with_cors.py @@ -1,8 +1,8 @@ from unittest.case import skipIf +from integration.config.service_names import HTTP_API from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import HTTP_API @skipIf(current_region_does_not_support([HTTP_API]), "HttpApi is not supported in this testing region") diff --git a/integration/combination/test_http_api_with_disable_execute_api_endpoint.py b/integration/combination/test_http_api_with_disable_execute_api_endpoint.py index 5e3bc0221..b30b0dda7 100644 --- a/integration/combination/test_http_api_with_disable_execute_api_endpoint.py +++ b/integration/combination/test_http_api_with_disable_execute_api_endpoint.py @@ -2,9 +2,9 @@ from parameterized import parameterized +from integration.config.service_names import CUSTOM_DOMAIN from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_not_included -from integration.config.service_names import CUSTOM_DOMAIN @skipIf(current_region_not_included([CUSTOM_DOMAIN]), "CustomDomain is not supported in this testing region") diff --git a/integration/combination/test_http_api_with_fail_on_warnings.py b/integration/combination/test_http_api_with_fail_on_warnings.py index 7c82224e0..e4f9f8881 100644 --- a/integration/combination/test_http_api_with_fail_on_warnings.py +++ b/integration/combination/test_http_api_with_fail_on_warnings.py @@ -1,9 +1,10 @@ from unittest.case import skipIf + from parameterized import parameterized +from integration.config.service_names import HTTP_API from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import HTTP_API @skipIf(current_region_does_not_support([HTTP_API]), "HttpApi is not supported in this testing region") diff --git a/integration/combination/test_intrinsic_function_support.py b/integration/combination/test_intrinsic_function_support.py index 5b3460503..61c03419c 100644 --- a/integration/combination/test_intrinsic_function_support.py +++ b/integration/combination/test_intrinsic_function_support.py @@ -1,9 +1,10 @@ from unittest.case import skipIf + import pytest +from integration.config.service_names import REST_API from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import REST_API @skipIf(current_region_does_not_support([REST_API]), "Rest API is not supported in this testing region") diff --git a/integration/combination/test_resource_references.py b/integration/combination/test_resource_references.py index 1d3de57b7..300ae5d42 100644 --- a/integration/combination/test_resource_references.py +++ b/integration/combination/test_resource_references.py @@ -1,9 +1,9 @@ from unittest.case import skipIf +from integration.config.service_names import REST_API from integration.helpers.base_test import BaseTest from integration.helpers.common_api import get_function_versions from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import REST_API # Tests resource references support of SAM Function resource diff --git a/integration/combination/test_state_machine_with_api.py b/integration/combination/test_state_machine_with_api.py index 20deaad43..c75cf5646 100644 --- a/integration/combination/test_state_machine_with_api.py +++ b/integration/combination/test_state_machine_with_api.py @@ -1,10 +1,9 @@ from unittest.case import skipIf + +from integration.config.service_names import STATE_MACHINE_WITH_APIS from integration.helpers.base_test import BaseTest from integration.helpers.common_api import get_policy_statements - - from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import STATE_MACHINE_WITH_APIS @skipIf( diff --git a/integration/combination/test_state_machine_with_cwe.py b/integration/combination/test_state_machine_with_cwe.py index 0f03b7f2c..84e166381 100644 --- a/integration/combination/test_state_machine_with_cwe.py +++ b/integration/combination/test_state_machine_with_cwe.py @@ -1,9 +1,9 @@ from unittest.case import skipIf + +from integration.config.service_names import STATE_MACHINE_CWE_CWS from integration.helpers.base_test import BaseTest from integration.helpers.common_api import get_policy_statements - from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import STATE_MACHINE_CWE_CWS @skipIf( diff --git a/integration/combination/test_state_machine_with_cwe_dlq_and_retry_policy.py b/integration/combination/test_state_machine_with_cwe_dlq_and_retry_policy.py index 94962026d..337483aa2 100644 --- a/integration/combination/test_state_machine_with_cwe_dlq_and_retry_policy.py +++ b/integration/combination/test_state_machine_with_cwe_dlq_and_retry_policy.py @@ -1,8 +1,8 @@ from unittest.case import skipIf +from integration.config.service_names import CWE_CWS_DLQ, STATE_MACHINE_CWE_CWS from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import CWE_CWS_DLQ, STATE_MACHINE_CWE_CWS @skipIf( diff --git a/integration/combination/test_state_machine_with_cwe_dlq_generated.py b/integration/combination/test_state_machine_with_cwe_dlq_generated.py index 410eb7cf1..e07a9a79e 100644 --- a/integration/combination/test_state_machine_with_cwe_dlq_generated.py +++ b/integration/combination/test_state_machine_with_cwe_dlq_generated.py @@ -1,9 +1,9 @@ from unittest.case import skipIf +from integration.config.service_names import CWE_CWS_DLQ, STATE_MACHINE_CWE_CWS from integration.helpers.base_test import BaseTest from integration.helpers.common_api import get_policy_statements, get_queue_policy from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import CWE_CWS_DLQ, STATE_MACHINE_CWE_CWS @skipIf( diff --git a/integration/combination/test_state_machine_with_policy_templates.py b/integration/combination/test_state_machine_with_policy_templates.py index f887af6bb..7864f6d7f 100644 --- a/integration/combination/test_state_machine_with_policy_templates.py +++ b/integration/combination/test_state_machine_with_policy_templates.py @@ -1,9 +1,9 @@ from unittest.case import skipIf +from integration.config.service_names import SQS from integration.helpers.base_test import BaseTest from integration.helpers.common_api import get_policy_statements from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import SQS @skipIf(current_region_does_not_support([SQS]), "SQS is not supported in this testing region") diff --git a/integration/combination/test_state_machine_with_schedule.py b/integration/combination/test_state_machine_with_schedule.py index f046da15f..d89b5ce79 100644 --- a/integration/combination/test_state_machine_with_schedule.py +++ b/integration/combination/test_state_machine_with_schedule.py @@ -1,11 +1,11 @@ from unittest.case import skipIf + from parameterized import parameterized + +from integration.config.service_names import STATE_MACHINE_CWE_CWS from integration.helpers.base_test import BaseTest from integration.helpers.common_api import get_policy_statements - - from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import STATE_MACHINE_CWE_CWS @skipIf( diff --git a/integration/combination/test_state_machine_with_schedule_dlq_and_retry_policy.py b/integration/combination/test_state_machine_with_schedule_dlq_and_retry_policy.py index 522377112..5cc1a190c 100644 --- a/integration/combination/test_state_machine_with_schedule_dlq_and_retry_policy.py +++ b/integration/combination/test_state_machine_with_schedule_dlq_and_retry_policy.py @@ -1,9 +1,9 @@ from unittest.case import skipIf +from integration.config.service_names import CWE_CWS_DLQ from integration.helpers.base_test import BaseTest from integration.helpers.common_api import get_policy_statements from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import CWE_CWS_DLQ @skipIf(current_region_does_not_support([CWE_CWS_DLQ]), "CweCwsDlq is not supported in this testing region") diff --git a/integration/combination/test_state_machine_with_schedule_dlq_generated.py b/integration/combination/test_state_machine_with_schedule_dlq_generated.py index 557faf162..7a0b93772 100644 --- a/integration/combination/test_state_machine_with_schedule_dlq_generated.py +++ b/integration/combination/test_state_machine_with_schedule_dlq_generated.py @@ -1,9 +1,9 @@ from unittest.case import skipIf +from integration.config.service_names import CWE_CWS_DLQ from integration.helpers.base_test import BaseTest from integration.helpers.common_api import get_queue_policy from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import CWE_CWS_DLQ @skipIf(current_region_does_not_support([CWE_CWS_DLQ]), "CweCwsDlq is not supported in this testing region") diff --git a/integration/config/service_names.py b/integration/config/service_names.py index f26da0930..3d6bf1953 100644 --- a/integration/config/service_names.py +++ b/integration/config/service_names.py @@ -7,6 +7,7 @@ REST_API = "RestApi" IOT = "IoT" CODE_DEPLOY = "CodeDeploy" +LOCATION = "Location" ARM = "ARM" GATEWAY_RESPONSES = "GatewayResponses" MSK = "MSK" diff --git a/integration/conftest.py b/integration/conftest.py index c78661f78..882ca57d8 100644 --- a/integration/conftest.py +++ b/integration/conftest.py @@ -1,21 +1,22 @@ +import logging import time + import boto3 import botocore import pytest from botocore.exceptions import ClientError -import logging from integration.helpers.base_test import S3_BUCKET_PREFIX from integration.helpers.client_provider import ClientProvider from integration.helpers.deployer.exceptions.exceptions import S3DoesNotExistException, ThrottlingError from integration.helpers.deployer.utils.retry import retry_with_exponential_backoff_and_jitter -from integration.helpers.stack import Stack -from integration.helpers.yaml_utils import load_yaml from integration.helpers.resource import ( + current_region_does_not_support, read_test_config_file, write_test_config_file_to_json, - current_region_does_not_support, ) +from integration.helpers.stack import Stack +from integration.helpers.yaml_utils import load_yaml try: from pathlib import Path @@ -110,7 +111,7 @@ def get_serverless_application_repository_app(): """Create or re-use a simple SAR app""" if current_region_does_not_support(["ServerlessRepo"]): LOG.info("Creating SAR application is skipped since SAR tests are not supported in this region.") - return + return None sar_client = ClientProvider().sar_client sar_apps = sar_client.list_applications().get("Applications", []) diff --git a/integration/helpers/base_test.py b/integration/helpers/base_test.py index aaa4bc0b1..5394f8790 100644 --- a/integration/helpers/base_test.py +++ b/integration/helpers/base_test.py @@ -1,11 +1,22 @@ import json import logging import os -import requests import shutil import botocore import pytest +import requests +from samtranslator.translator.arn_generator import ArnGenerator +from samtranslator.yaml_helper import yaml_parse +from tenacity import ( + after_log, + retry, + retry_if_exception_type, + stop_after_attempt, + wait_exponential, + wait_fixed, + wait_random, +) from integration.config.logger_configurations import LoggingConfiguration from integration.helpers.client_provider import ClientProvider @@ -17,22 +28,11 @@ current_region_does_not_support, detect_services, generate_suffix, + read_test_config_file, verify_stack_resources, ) from integration.helpers.s3_uploader import S3Uploader from integration.helpers.yaml_utils import dump_yaml, load_yaml -from integration.helpers.resource import read_test_config_file -from samtranslator.yaml_helper import yaml_parse - -from tenacity import ( - retry, - stop_after_attempt, - wait_exponential, - wait_fixed, - retry_if_exception_type, - after_log, - wait_random, -) try: from pathlib import Path @@ -41,10 +41,10 @@ from unittest.case import TestCase import boto3 + from integration.helpers.deployer.deployer import Deployer from integration.helpers.template import transform_template - LOG = logging.getLogger(__name__) REQUEST_LOGGER = logging.getLogger(f"{__name__}.requests") @@ -96,7 +96,7 @@ def setUpClass(cls): cls.code_dir = Path(cls.resources_dir, "code") cls.session = boto3.session.Session() cls.my_region = cls.session.region_name - cls.partition = cls.session.get_partition_for_region(cls.my_region) + cls.partition = ArnGenerator.get_partition_name(cls.my_region) cls.client_provider = ClientProvider() cls.file_to_s3_uri_map = read_test_config_file("file_to_s3_map_modified.json") cls.code_key_to_file = read_test_config_file("code_key_to_file_map.json") @@ -118,7 +118,7 @@ def setUp(self): @retry( stop=stop_after_attempt(5), - wait=wait_fixed(30), + wait=wait_fixed(30) + wait_random(0, 15), retry=retry_if_exception_type(Exception), ) def tearDown(self): diff --git a/integration/helpers/client_provider.py b/integration/helpers/client_provider.py index cee437823..73027520c 100644 --- a/integration/helpers/client_provider.py +++ b/integration/helpers/client_provider.py @@ -1,6 +1,7 @@ +from threading import Lock + import boto3 from botocore.config import Config -from threading import Lock class ClientProvider: diff --git a/integration/helpers/common_api.py b/integration/helpers/common_api.py index d418f6472..c61d848c8 100644 --- a/integration/helpers/common_api.py +++ b/integration/helpers/common_api.py @@ -2,11 +2,11 @@ import logging from tenacity import ( + after_log, retry, + retry_if_exception_type, stop_after_attempt, wait_exponential, - retry_if_exception_type, - after_log, wait_random, ) diff --git a/integration/helpers/deployer/deployer.py b/integration/helpers/deployer/deployer.py index 985e385a5..2f444659e 100644 --- a/integration/helpers/deployer/deployer.py +++ b/integration/helpers/deployer/deployer.py @@ -25,27 +25,26 @@ # - Moved UserException to exceptions.py # - Moved DeployColor to colors.py # - Removed unnecessary functions from artifact_exporter -import sys -from collections import OrderedDict import logging +import sys import time +from collections import OrderedDict from datetime import datetime -from integration.helpers.resource import generate_suffix - import botocore -from integration.helpers.deployer.utils.colors import DeployColor from integration.helpers.deployer.exceptions import exceptions as deploy_exceptions +from integration.helpers.deployer.utils.artifact_exporter import mktempfile +from integration.helpers.deployer.utils.colors import DeployColor from integration.helpers.deployer.utils.retry import retry_with_exponential_backoff_and_jitter from integration.helpers.deployer.utils.table_print import ( + MIN_OFFSET, + newline_per_item, pprint_column_names, pprint_columns, - newline_per_item, - MIN_OFFSET, ) -from integration.helpers.deployer.utils.artifact_exporter import mktempfile, parse_s3_url from integration.helpers.deployer.utils.time_util import utc_to_timestamp +from integration.helpers.resource import generate_suffix LOG = logging.getLogger(__name__) @@ -265,7 +264,6 @@ def wait_for_changeset(self, changeset_id, stack_name): try: waiter.wait(ChangeSetName=changeset_id, StackName=stack_name, WaiterConfig=waiter_config) except botocore.exceptions.WaiterError as ex: - LOG.error("Waiter exception waiting for changeset", exc_info=ex) resp = ex.last_response @@ -374,7 +372,7 @@ def create_and_wait_for_changeset( self.wait_for_changeset(result["Id"], stack_name) self.describe_changeset(result["Id"], stack_name) return result - except deploy_exceptions.ChangeEmptyError as ex: + except deploy_exceptions.ChangeEmptyError: return {} except botocore.exceptions.ClientError as ex: raise deploy_exceptions.DeployFailedError(stack_name=stack_name, msg=str(ex)) diff --git a/integration/helpers/deployer/exceptions/exceptions.py b/integration/helpers/deployer/exceptions/exceptions.py index 6522a1fa4..c5e2adaa3 100644 --- a/integration/helpers/deployer/exceptions/exceptions.py +++ b/integration/helpers/deployer/exceptions/exceptions.py @@ -2,28 +2,22 @@ Exceptions that are raised by sam deploy This was ported over from the sam-cli repo """ -import click -class UserException(click.ClickException): +class UserException(Exception): """ Base class for all exceptions that need to be surfaced to the user. Typically, we will display the exception message to user and return the error code from CLI process """ - exit_code = 1 - - def __init__(self, message, wrapped_from=None): - self.wrapped_from = wrapped_from - - click.ClickException.__init__(self, message) + def __init__(self, message: str) -> None: + super().__init__(message) class ChangeEmptyError(UserException): - def __init__(self, stack_name): - self.stack_name = stack_name + def __init__(self, stack_name: str) -> None: message_fmt = "No changes to deploy. Stack {stack_name} is up to date" - super(ChangeEmptyError, self).__init__(message=message_fmt.format(stack_name=self.stack_name)) + super().__init__(message=message_fmt.format(stack_name=stack_name)) class ChangeSetError(UserException): @@ -31,7 +25,7 @@ def __init__(self, stack_name, msg): self.stack_name = stack_name self.msg = msg message_fmt = "Failed to create changeset for the stack: {stack_name}, {msg}" - super(ChangeSetError, self).__init__(message=message_fmt.format(stack_name=self.stack_name, msg=self.msg)) + super().__init__(message=message_fmt.format(stack_name=self.stack_name, msg=self.msg)) class DeployFailedError(UserException): @@ -41,7 +35,7 @@ def __init__(self, stack_name, msg): message_fmt = "Failed to create/update the stack: {stack_name}, {msg}" - super(DeployFailedError, self).__init__(message=message_fmt.format(stack_name=self.stack_name, msg=msg)) + super().__init__(message=message_fmt.format(stack_name=self.stack_name, msg=msg)) class DeployStackOutPutFailedError(UserException): @@ -51,9 +45,7 @@ def __init__(self, stack_name, msg): message_fmt = "Failed to get outputs from stack: {stack_name}, {msg}" - super(DeployStackOutPutFailedError, self).__init__( - message=message_fmt.format(stack_name=self.stack_name, msg=msg) - ) + super().__init__(message=message_fmt.format(stack_name=self.stack_name, msg=msg)) class DeployBucketInDifferentRegionError(UserException): @@ -62,7 +54,7 @@ def __init__(self, msg): message_fmt = "{msg} : deployment s3 bucket is in a different region, try sam deploy --guided" - super(DeployBucketInDifferentRegionError, self).__init__(message=message_fmt.format(msg=self.msg)) + super().__init__(message=message_fmt.format(msg=self.msg)) class ThrottlingError(UserException): @@ -72,7 +64,7 @@ def __init__(self, stack_name, msg): message_fmt = "Throttling issue occurred: {stack_name}, {msg}" - super(ThrottlingError, self).__init__(message=message_fmt.format(stack_name=self.stack_name, msg=msg)) + super().__init__(message=message_fmt.format(stack_name=self.stack_name, msg=msg)) class S3DoesNotExistException(UserException): @@ -82,4 +74,4 @@ def __init__(self, bucket_name, msg): message_fmt = "Companion S3 bucket used for resource upload does not exist: {bucket_name}, {msg}" - super(S3DoesNotExistException, self).__init__(message=message_fmt.format(bucket_name=self.bucket_name, msg=msg)) + super().__init__(message=message_fmt.format(bucket_name=self.bucket_name, msg=msg)) diff --git a/integration/helpers/deployer/utils/artifact_exporter.py b/integration/helpers/deployer/utils/artifact_exporter.py index 3003bb906..38dab5fba 100644 --- a/integration/helpers/deployer/utils/artifact_exporter.py +++ b/integration/helpers/deployer/utils/artifact_exporter.py @@ -19,20 +19,13 @@ import os import tempfile -import contextlib -from contextlib import contextmanager - -try: - from urllib.parse import urlparse, parse_qs -except ImportError: # py2 - from urlparse import urlparse, parse_qs import uuid +from contextlib import contextmanager +from urllib.parse import parse_qs, urlparse def parse_s3_url(url, bucket_name_property="Bucket", object_key_property="Key", version_property=None): - if isinstance(url, str) and url.startswith("s3://"): - parsed = urlparse(url) query = parse_qs(parsed.query) diff --git a/integration/helpers/deployer/utils/colors.py b/integration/helpers/deployer/utils/colors.py index a653e2253..792cb4996 100644 --- a/integration/helpers/deployer/utils/colors.py +++ b/integration/helpers/deployer/utils/colors.py @@ -2,74 +2,28 @@ Wrapper to generated colored messages for printing in Terminal This was ported over from the sam-cli repo """ +from typing import Dict -import click +from typing_extensions import Literal +SupportedColor = Literal["red", "green", "yellow"] -class Colored: - """ - Helper class to add ANSI colors and decorations to text. Given a string, ANSI colors are added with special prefix - and suffix characters that are specially interpreted by Terminals to display colors. +COLOR_CODES = { + "red": "\33[31m", + "green": "\33[32m", + "yellow": "\33[33m", +} +CEND = "\033[0m" - Ex: "message" -> add red color -> \x1b[31mmessage\x1b[0m - This class serves two purposes: - - Hide the underlying library used to provide colors: In this case, we use ``click`` library which is usually - used to build a CLI interface. We use ``click`` just to minimize the number of dependencies we add to this - project. This class allows us to replace click with any other color library like ``pygments`` without - changing callers. - - - Transparently turn off colors: In cases when the string is not written to Terminal (ex: log file) the ANSI - color codes should not be written. This class supports the scenario by allowing you to turn off colors. - Calls to methods like `red()` will simply return the input string. - """ - - def __init__(self, colorize=True): - """ - Initialize the object - - Parameters - ---------- - colorize : bool - Optional. Set this to True to turn on coloring. False will turn off coloring - """ - self.colorize = colorize - - def red(self, msg): - """Color the input red""" - return self._color(msg, "red") - - def green(self, msg): - """Color the input green""" - return self._color(msg, "green") - - def cyan(self, msg): - """Color the input cyan""" - return self._color(msg, "cyan") - - def white(self, msg): - """Color the input white""" - return self._color(msg, "white") - - def yellow(self, msg): - """Color the input yellow""" - return self._color(msg, "yellow") - - def underline(self, msg): - """Underline the input""" - return click.style(msg, underline=True) if self.colorize else msg - - def _color(self, msg, color): - """Internal helper method to add colors to input""" - kwargs = {"fg": color} - return click.style(msg, **kwargs) if self.colorize else msg +def cprint(text: str, color: SupportedColor) -> None: + print(COLOR_CODES[color] + text + CEND) class DeployColor: def __init__(self): - self._color = Colored() - self.changeset_color_map = {"Add": "green", "Modify": "yellow", "Remove": "red"} - self.status_color_map = { + self.changeset_color_map: Dict[str, SupportedColor] = {"Add": "green", "Modify": "yellow", "Remove": "red"} + self.status_color_map: Dict[str, SupportedColor] = { "CREATE_COMPLETE": "green", "CREATE_FAILED": "red", "CREATE_IN_PROGRESS": "yellow", diff --git a/integration/helpers/deployer/utils/retry.py b/integration/helpers/deployer/utils/retry.py index 1875ebb40..6e3fe357c 100644 --- a/integration/helpers/deployer/utils/retry.py +++ b/integration/helpers/deployer/utils/retry.py @@ -4,7 +4,6 @@ import math import random import time - from functools import wraps diff --git a/integration/helpers/deployer/utils/table_print.py b/integration/helpers/deployer/utils/table_print.py index 5ab1ac262..23644592b 100644 --- a/integration/helpers/deployer/utils/table_print.py +++ b/integration/helpers/deployer/utils/table_print.py @@ -1,18 +1,13 @@ """ -Utilities for table pretty printing using click +Utilities for table pretty printing This was ported over from the sam-cli repo """ import shutil -from itertools import count - -try: - from itertools import zip_longest -except ImportError: # py2 - from itertools import izip_longest as zip_longest import textwrap from functools import wraps +from itertools import count, zip_longest -import click +from integration.helpers.deployer.utils.colors import cprint MIN_OFFSET = 20 @@ -83,10 +78,10 @@ def pprint_wrap(func): def wrap(*args, **kwargs): # The table is setup with the column names, format_string contains the column names. if table_header: - click.secho("\n" + table_header) - click.secho("-" * usable_width, fg=color) - click.secho(format_string.format(*format_args, **format_kwargs), fg=color) - click.secho("-" * usable_width, fg=color) + print("\n" + table_header) + cprint("-" * usable_width, color) + cprint(format_string.format(*format_args, **format_kwargs), color) + cprint("-" * usable_width, color) # format_args which have the minimumwidth set per {} in the format_string is passed to the function # which this decorator wraps, so that the function has access to the correct format_args kwargs["format_args"] = format_args @@ -94,7 +89,7 @@ def wrap(*args, **kwargs): kwargs["margin"] = margin if margin else min_margin result = func(*args, **kwargs) # Complete the table - click.secho("-" * usable_width, fg=color) + cprint("-" * usable_width, color) return result return wrap @@ -151,7 +146,7 @@ def pprint_columns(columns, width, margin, format_string, format_args, columns_d for k, _ in columns_dict.items(): columns_dict[k] = columns_text[next(counter)] - click.secho(format_string.format(*format_args, **columns_dict), fg=color) + cprint(format_string.format(*format_args, **columns_dict), color) def newline_per_item(iterable, counter): @@ -166,4 +161,4 @@ def newline_per_item(iterable, counter): Current index within the iterable """ if counter < len(iterable) - 1: - click.echo(message="", nl=True) + print("") diff --git a/integration/helpers/deployer/utils/time_util.py b/integration/helpers/deployer/utils/time_util.py index 6a5706aae..5e1638ed7 100644 --- a/integration/helpers/deployer/utils/time_util.py +++ b/integration/helpers/deployer/utils/time_util.py @@ -4,8 +4,8 @@ """ import datetime -import dateparser +import dateparser from dateutil.tz import tzutc diff --git a/integration/helpers/exception.py b/integration/helpers/exception.py index d2a87e9a7..de0d45936 100644 --- a/integration/helpers/exception.py +++ b/integration/helpers/exception.py @@ -3,5 +3,3 @@ class StatusCodeError(Error): """raise when the return status code is not match the expected one""" - - pass diff --git a/integration/helpers/resource.py b/integration/helpers/resource.py index 42077063a..c045bea61 100644 --- a/integration/helpers/resource.py +++ b/integration/helpers/resource.py @@ -1,16 +1,17 @@ import json -import re import random +import re import string # pylint: disable=deprecated-module -from typing import Any, Callable, Dict, List, Set +from typing import Any, Callable, Dict, Set from integration.config.service_names import ( DYNAMO_DB, HTTP_API, + LOCATION, REST_API, S3_EVENTS, - SQS, SCHEDULE_EVENT, + SQS, STATE_MACHINE_INLINE_DEFINITION, ) from integration.helpers.yaml_utils import load_yaml @@ -21,8 +22,7 @@ from pathlib2 import Path import boto3 -from botocore.exceptions import ClientError, NoRegionError - +from botocore.exceptions import NoRegionError from samtranslator.translator.logical_id_generator import LogicalIdGenerator # Length of the random suffix added at the end of the resources we create @@ -222,6 +222,7 @@ def _resource_using_s3_events(resource: Dict[str, Any]) -> bool: S3_EVENTS: lambda template_dict, cfn_resource_types: any( _resource_using_s3_events(resource) for resource in template_dict.get("Resources", {}).values() ), + LOCATION: lambda template_dict, cfn_resource_types: "AWS::Location::PlaceIndex" in cfn_resource_types, } diff --git a/integration/helpers/s3_uploader.py b/integration/helpers/s3_uploader.py index 2afe6f047..e46536088 100644 --- a/integration/helpers/s3_uploader.py +++ b/integration/helpers/s3_uploader.py @@ -1,10 +1,10 @@ """ Client for uploading files to s3 """ +import logging from typing import Any from botocore.exceptions import ClientError -import logging LOG = logging.getLogger(__name__) diff --git a/integration/helpers/template.py b/integration/helpers/template.py index f75bc4c56..65052ce25 100644 --- a/integration/helpers/template.py +++ b/integration/helpers/template.py @@ -3,7 +3,6 @@ from functools import reduce import boto3 - from samtranslator.model.exceptions import InvalidDocumentException from samtranslator.translator.managed_policy_translator import ManagedPolicyLoader from samtranslator.translator.transform import transform diff --git a/integration/helpers/yaml_utils.py b/integration/helpers/yaml_utils.py index 3fe52c824..0bd964c48 100644 --- a/integration/helpers/yaml_utils.py +++ b/integration/helpers/yaml_utils.py @@ -1,5 +1,4 @@ import yaml - from samtranslator.yaml_helper import yaml_parse diff --git a/integration/metrics/test_metrics_integration.py b/integration/metrics/test_metrics_integration.py index 1fc89d718..44d212ed6 100644 --- a/integration/metrics/test_metrics_integration.py +++ b/integration/metrics/test_metrics_integration.py @@ -1,11 +1,12 @@ -import boto3 import time import uuid from datetime import datetime, timedelta from unittest import TestCase + +import boto3 from samtranslator.metrics.metrics import ( - Metrics, CWMetricsPublisher, + Metrics, ) diff --git a/integration/resources/expected/combination/connector_event_rule_to_lambda_write_multiple.json b/integration/resources/expected/combination/connector_event_rule_to_lambda_write_multiple.json new file mode 100644 index 000000000..7e50bf655 --- /dev/null +++ b/integration/resources/expected/combination/connector_event_rule_to_lambda_write_multiple.json @@ -0,0 +1,42 @@ +[ + { + "LogicalResourceId": "EventRule", + "ResourceType": "AWS::Events::Rule" + }, + { + "LogicalResourceId": "Function", + "ResourceType": "AWS::Lambda::Function" + }, + { + "LogicalResourceId": "FunctionRole", + "ResourceType": "AWS::IAM::Role" + }, + { + "LogicalResourceId": "Function2", + "ResourceType": "AWS::Lambda::Function" + }, + { + "LogicalResourceId": "Function2Role", + "ResourceType": "AWS::IAM::Role" + }, + { + "LogicalResourceId": "MyConnectorWriteLambdaPermissionDestination0", + "ResourceType": "AWS::Lambda::Permission" + }, + { + "LogicalResourceId": "MyConnectorWriteLambdaPermissionDestination1", + "ResourceType": "AWS::Lambda::Permission" + }, + { + "LogicalResourceId": "TriggerFunction", + "ResourceType": "AWS::Lambda::Function" + }, + { + "LogicalResourceId": "TriggerFunctionRole", + "ResourceType": "AWS::IAM::Role" + }, + { + "LogicalResourceId": "VerificationQueue", + "ResourceType": "AWS::SQS::Queue" + } +] diff --git a/integration/resources/expected/combination/connector_function_to_bucket_read_multiple.json b/integration/resources/expected/combination/connector_function_to_bucket_read_multiple.json new file mode 100644 index 000000000..a47f90e35 --- /dev/null +++ b/integration/resources/expected/combination/connector_function_to_bucket_read_multiple.json @@ -0,0 +1,26 @@ +[ + { + "LogicalResourceId": "LambdaRole", + "ResourceType": "AWS::IAM::Role" + }, + { + "LogicalResourceId": "TriggerFunction", + "ResourceType": "AWS::Lambda::Function" + }, + { + "LogicalResourceId": "Bucket", + "ResourceType": "AWS::S3::Bucket" + }, + { + "LogicalResourceId": "Bucket2", + "ResourceType": "AWS::S3::Bucket" + }, + { + "LogicalResourceId": "ConnectorPolicyDestination0", + "ResourceType": "AWS::IAM::ManagedPolicy" + }, + { + "LogicalResourceId": "ConnectorPolicyDestination1", + "ResourceType": "AWS::IAM::ManagedPolicy" + } +] diff --git a/integration/resources/expected/combination/connector_function_to_location_place_index.json b/integration/resources/expected/combination/connector_function_to_location_place_index.json new file mode 100644 index 000000000..c0126116d --- /dev/null +++ b/integration/resources/expected/combination/connector_function_to_location_place_index.json @@ -0,0 +1,18 @@ +[ + { + "LogicalResourceId": "TriggerFunctionRole", + "ResourceType": "AWS::IAM::Role" + }, + { + "LogicalResourceId": "TriggerFunction", + "ResourceType": "AWS::Lambda::Function" + }, + { + "LogicalResourceId": "MyPlace", + "ResourceType": "AWS::Location::PlaceIndex" + }, + { + "LogicalResourceId": "MyConnectorPolicy", + "ResourceType": "AWS::IAM::ManagedPolicy" + } +] diff --git a/integration/resources/expected/combination/connector_mix_destination.json b/integration/resources/expected/combination/connector_mix_destination.json new file mode 100644 index 000000000..1a6626a23 --- /dev/null +++ b/integration/resources/expected/combination/connector_mix_destination.json @@ -0,0 +1,34 @@ +[ + { + "LogicalResourceId": "EventRule", + "ResourceType": "AWS::Events::Rule" + }, + { + "LogicalResourceId": "Function", + "ResourceType": "AWS::Lambda::Function" + }, + { + "LogicalResourceId": "FunctionRole", + "ResourceType": "AWS::IAM::Role" + }, + { + "LogicalResourceId": "MyConnectorWriteLambdaPermissionDestination0", + "ResourceType": "AWS::Lambda::Permission" + }, + { + "LogicalResourceId": "TriggerFunction", + "ResourceType": "AWS::Lambda::Function" + }, + { + "LogicalResourceId": "TriggerFunctionRole", + "ResourceType": "AWS::IAM::Role" + }, + { + "LogicalResourceId": "VerificationQueue", + "ResourceType": "AWS::SQS::Queue" + }, + { + "LogicalResourceId": "MyConnectorQueuePolicyDestination1", + "ResourceType": "AWS::SQS::QueuePolicy" + } +] diff --git a/integration/resources/expected/combination/function_with_alias_and_all_properties_property.json b/integration/resources/expected/combination/function_with_alias_and_all_properties_property.json new file mode 100644 index 000000000..af92023eb --- /dev/null +++ b/integration/resources/expected/combination/function_with_alias_and_all_properties_property.json @@ -0,0 +1,18 @@ +[ + { + "LogicalResourceId": "MyLambdaFunction", + "ResourceType": "AWS::Lambda::Function" + }, + { + "LogicalResourceId": "MyLambdaFunctionRole", + "ResourceType": "AWS::IAM::Role" + }, + { + "LogicalResourceId": "MyLambdaFunctionAliasLive", + "ResourceType": "AWS::Lambda::Alias" + }, + { + "LogicalResourceId": "MyLambdaFunctionVersion", + "ResourceType": "AWS::Lambda::Version" + } +] diff --git a/integration/resources/templates/combination/connector_event_rule_to_lambda_write_multiple.yaml b/integration/resources/templates/combination/connector_event_rule_to_lambda_write_multiple.yaml new file mode 100644 index 000000000..e2e7ea16e --- /dev/null +++ b/integration/resources/templates/combination/connector_event_rule_to_lambda_write_multiple.yaml @@ -0,0 +1,112 @@ +Resources: + TriggerFunction: + Type: AWS::Serverless::Function + Properties: + Runtime: nodejs14.x + Handler: index.handler + Timeout: 10 # in case eb has delay + InlineCode: | + const AWS = require('aws-sdk'); + + exports.handler = async (event) => { + const eb = new AWS.EventBridge(); + const response = await eb.putEvents({ + Entries: [{ + Source: process.env.EVENT_SOURCE, + Detail: "{}", + DetailType: "Test", + }] + }).promise(); + + const sqs = new AWS.SQS(); + const data = await sqs.receiveMessage({ + QueueUrl: process.env.QUEUE_URL, + WaitTimeSeconds: 5, + }).promise(); + + if (data.Messages.length == 0) { + throw 'No messages in the queue!'; + } + }; + Environment: + Variables: + QUEUE_URL: !Ref VerificationQueue + EVENT_SOURCE: !Sub '${AWS::StackName}-test-event' + Policies: + - EventBridgePutEventsPolicy: + EventBusName: default + - SQSPollerPolicy: + QueueName: !GetAtt VerificationQueue.QueueName + + EventRule: + Type: AWS::Events::Rule + Properties: + Description: !Sub 'EventRule-${AWS::StackName}' + EventPattern: + source: + - !Sub '${AWS::StackName}-test-event' + Targets: + - Arn: !GetAtt Function.Arn + Id: Target + - Arn: !GetAtt Function2.Arn + Id: Target2 + + Function: + Type: AWS::Serverless::Function + Properties: + Runtime: nodejs14.x + Handler: index.handler + InlineCode: | + const AWS = require('aws-sdk'); + + exports.handler = async (event) => { + const sqs = new AWS.SQS(); + await sqs.sendMessage({ + QueueUrl: process.env.QUEUE_URL, + MessageBody: "test" + }).promise(); + }; + Environment: + Variables: + QUEUE_URL: !Ref VerificationQueue + Policies: + - SQSSendMessagePolicy: + QueueName: !GetAtt VerificationQueue.QueueName + + Function2: + Type: AWS::Serverless::Function + Properties: + Runtime: nodejs14.x + Handler: index.handler + InlineCode: | + const AWS = require('aws-sdk'); + + exports.handler = async (event) => { + const sqs = new AWS.SQS(); + await sqs.sendMessage({ + QueueUrl: process.env.QUEUE_URL, + MessageBody: "test" + }).promise(); + }; + Environment: + Variables: + QUEUE_URL: !Ref VerificationQueue + Policies: + - SQSSendMessagePolicy: + QueueName: !GetAtt VerificationQueue.QueueName + + VerificationQueue: + Type: AWS::SQS::Queue + + MyConnector: + Type: AWS::Serverless::Connector + Properties: + Source: + Id: EventRule + Destination: + - Id: Function + - Id: Function2 + Permissions: + - Write +Metadata: + SamTransformTest: true diff --git a/integration/resources/templates/combination/connector_function_to_bucket_read_multiple.yaml b/integration/resources/templates/combination/connector_function_to_bucket_read_multiple.yaml new file mode 100644 index 000000000..57d68eb9e --- /dev/null +++ b/integration/resources/templates/combination/connector_function_to_bucket_read_multiple.yaml @@ -0,0 +1,57 @@ +Resources: + LambdaRole: + 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 + Properties: + Role: !GetAtt LambdaRole.Arn + Runtime: nodejs14.x + Handler: index.handler + Code: + ZipFile: | + const AWS = require('aws-sdk'); + var head_params = { + Bucket: process.env.BUCKET, + }; + var head_params_2 = { + Bucket: process.env.BUCKET2, + } + exports.handler = async (event) => { + console.log('REQUEST RECEIVED:', JSON.stringify(event)); + var s3 = new AWS.S3(); + await s3.headBucket(head_params).promise(); + await s3.headBucket(head_params_2).promise(); + }; + Environment: + Variables: + BUCKET: !Ref Bucket + BUCKET2: !Ref Bucket2 + + Bucket: + Type: AWS::S3::Bucket + + Bucket2: + Type: AWS::S3::Bucket + + Connector: + Type: AWS::Serverless::Connector + Properties: + Source: + Id: TriggerFunction + Destination: + - Id: Bucket + - Id: Bucket2 + Permissions: + - Read +Metadata: + SamTransformTest: true diff --git a/integration/resources/templates/combination/connector_function_to_eventbus_write.yaml b/integration/resources/templates/combination/connector_function_to_eventbus_write.yaml index cad10c8e0..5dcb0d653 100644 --- a/integration/resources/templates/combination/connector_function_to_eventbus_write.yaml +++ b/integration/resources/templates/combination/connector_function_to_eventbus_write.yaml @@ -46,7 +46,7 @@ Resources: EventBus: Type: AWS::Events::EventBus Properties: - Name: TestEventBus + Name: !Sub "${AWS::StackName}-EventBus" Connector: Type: AWS::Serverless::Connector diff --git a/integration/resources/templates/combination/connector_function_to_location_place_index.yaml b/integration/resources/templates/combination/connector_function_to_location_place_index.yaml new file mode 100644 index 000000000..abba5d9bf --- /dev/null +++ b/integration/resources/templates/combination/connector_function_to_location_place_index.yaml @@ -0,0 +1,57 @@ +Transform: AWS::Serverless-2016-10-31-test + +Resources: + TriggerFunction: + Type: AWS::Serverless::Function + Properties: + Runtime: python3.8 + Handler: index.handler + InlineCode: | + import boto3 + import os + client = boto3.client('location') + + def handler(event, context): + indexName = os.environ['LOCATION_INDEX'] + response = client.describe_place_index( + IndexName=indexName + ) + response = client.search_place_index_for_position( + IndexName=indexName, + MaxResults=10, + Language='en', + Position=[ + -123.12, + 49.28 + ] + ) + response = client.search_place_index_for_text( + IndexName=indexName, + Text="effiel tow" + ) + response = client.search_place_index_for_suggestions( + IndexName=indexName, + Text="effiel tow" + ) + Environment: + Variables: + LOCATION_INDEX: !Sub ${AWS::StackName}-PI + + + MyPlace: + Type: AWS::Location::PlaceIndex + Properties: + DataSource: Here + IndexName: !Sub ${AWS::StackName}-PI + + MyConnector: + Type: AWS::Serverless::Connector + Properties: + Source: + Id: TriggerFunction + Destination: + Id: MyPlace + Permissions: + - Read +Metadata: + SamTransformTest: true diff --git a/integration/resources/templates/combination/connector_mix_destination.yaml b/integration/resources/templates/combination/connector_mix_destination.yaml new file mode 100644 index 000000000..ab372d83e --- /dev/null +++ b/integration/resources/templates/combination/connector_mix_destination.yaml @@ -0,0 +1,90 @@ +Resources: + TriggerFunction: + Type: AWS::Serverless::Function + Properties: + Runtime: nodejs14.x + Handler: index.handler + Timeout: 10 # in case eb has delay + InlineCode: | + const AWS = require('aws-sdk'); + + exports.handler = async (event) => { + const eb = new AWS.EventBridge(); + const response = await eb.putEvents({ + Entries: [{ + Source: process.env.EVENT_SOURCE, + Detail: "{}", + DetailType: "Test", + }] + }).promise(); + await new Promise(resolve => setTimeout(resolve, 5000)); + const sqs = new AWS.SQS(); + const data = await sqs.getQueueAttributes({ + QueueUrl: process.env.QUEUE_URL, + AttributeNames: ['ApproximateNumberOfMessages'] + }).promise(); + + if (data.Attributes.ApproximateNumberOfMessages < 2) { + throw 'Not enough messages in the queue!'; + } + }; + Environment: + Variables: + QUEUE_URL: !Ref VerificationQueue + EVENT_SOURCE: !Sub '${AWS::StackName}-test-event' + Policies: + - EventBridgePutEventsPolicy: + EventBusName: default + - SQSPollerPolicy: + QueueName: !GetAtt VerificationQueue.QueueName + + EventRule: + Type: AWS::Events::Rule + Properties: + Description: !Sub 'EventRule-${AWS::StackName}' + EventPattern: + source: + - !Sub '${AWS::StackName}-test-event' + Targets: + - Arn: !GetAtt Function.Arn + Id: Target + - Arn: !GetAtt VerificationQueue.Arn + Id: Target2 + + Function: + Type: AWS::Serverless::Function + Properties: + Runtime: nodejs14.x + Handler: index.handler + InlineCode: | + const AWS = require('aws-sdk'); + + exports.handler = async (event) => { + const sqs = new AWS.SQS(); + await sqs.sendMessage({ + QueueUrl: process.env.QUEUE_URL, + MessageBody: "test" + }).promise(); + }; + Environment: + Variables: + QUEUE_URL: !Ref VerificationQueue + Policies: + - SQSSendMessagePolicy: + QueueName: !GetAtt VerificationQueue.QueueName + + VerificationQueue: + Type: AWS::SQS::Queue + + MyConnector: + Type: AWS::Serverless::Connector + Properties: + Source: + Id: EventRule + Destination: + - Id: Function + - Id: VerificationQueue + Permissions: + - Write +Metadata: + SamTransformTest: true diff --git a/integration/resources/templates/combination/function_with_alias_and_all_properties_property.yaml b/integration/resources/templates/combination/function_with_alias_and_all_properties_property.yaml new file mode 100644 index 000000000..efdc0cb4c --- /dev/null +++ b/integration/resources/templates/combination/function_with_alias_and_all_properties_property.yaml @@ -0,0 +1,12 @@ +Resources: + MyLambdaFunction: + Type: AWS::Serverless::Function + Properties: + Handler: index.handler + Runtime: nodejs14.x + CodeUri: ${codeuri} + AutoPublishAlias: Live + AutoPublishAliasAllProperties: true + Description: foo +Metadata: + SamTransformTest: true diff --git a/integration/ruff.toml b/integration/ruff.toml new file mode 100644 index 000000000..7a81d8467 --- /dev/null +++ b/integration/ruff.toml @@ -0,0 +1,23 @@ +# black formatter takes care of the line length +line-length = 999 + +# The code quality of tests can be a bit lower compared to samtranslator +select = [ + "E", # Pyflakes + "F", # Pyflakes + "PL", # pylint + "I", # isort + "ICN", # flake8-import-conventions + "PIE", # flake8-pie + "Q", # flake8-quotes + "TID", # flake8-tidy-imports + "RUF", # Ruff-specific rules +] + +[per-file-ignores] + +# The code quality of tests can be a bit lower: +"**/*.py" = [ + "S101", # Use of `assert` detected + "PLR", # pylint-refactor +] diff --git a/integration/setup/test_setup_teardown.py b/integration/setup/test_setup_teardown.py index e81800eab..2e5a7bdaf 100644 --- a/integration/setup/test_setup_teardown.py +++ b/integration/setup/test_setup_teardown.py @@ -1,4 +1,5 @@ import pytest + from integration.helpers.resource import read_test_config_file @@ -14,7 +15,4 @@ def test_teardown(delete_companion_stack_once): def s3_upload_successful(): modified_map = read_test_config_file("file_to_s3_map_modified.json") - for _, file_info in modified_map.items(): - if not file_info["uri"]: - return False - return True + return all(file_info["uri"] for _, file_info in modified_map.items()) diff --git a/integration/single/test_basic_api.py b/integration/single/test_basic_api.py index 1700ec3ab..6dc5c3c83 100644 --- a/integration/single/test_basic_api.py +++ b/integration/single/test_basic_api.py @@ -2,14 +2,12 @@ import logging from unittest.case import skipIf -import requests -from tenacity import stop_after_attempt, wait_exponential, retry_if_exception_type, after_log, wait_random +from tenacity import after_log, retry_if_exception_type, stop_after_attempt, wait_exponential, wait_random +from integration.config.service_names import MODE, REST_API from integration.helpers.base_test import BaseTest from integration.helpers.exception import StatusCodeError - from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import MODE, REST_API LOG = logging.getLogger(__name__) diff --git a/integration/single/test_basic_function.py b/integration/single/test_basic_function.py index d625a4000..174a332a9 100644 --- a/integration/single/test_basic_function.py +++ b/integration/single/test_basic_function.py @@ -2,20 +2,20 @@ from unittest.case import skipIf import pytest +from parameterized import parameterized from integration.config.service_names import ( + ARM, + CODE_DEPLOY, + EPHEMERAL_STORAGE, EVENT_INVOKE_CONFIG, + HTTP_API, KMS, LAMBDA_URL, XRAY, - ARM, - CODE_DEPLOY, - HTTP_API, - EPHEMERAL_STORAGE, ) -from integration.helpers.resource import current_region_does_not_support -from parameterized import parameterized from integration.helpers.base_test import BaseTest +from integration.helpers.resource import current_region_does_not_support LOG = logging.getLogger(__name__) diff --git a/integration/single/test_basic_layer_version.py b/integration/single/test_basic_layer_version.py index cdba80ffd..a3e1cf894 100644 --- a/integration/single/test_basic_layer_version.py +++ b/integration/single/test_basic_layer_version.py @@ -1,6 +1,6 @@ from unittest.case import skipIf -from integration.config.service_names import LAYERS, ARM +from integration.config.service_names import ARM, LAYERS from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support diff --git a/integration/single/test_basic_state_machine.py b/integration/single/test_basic_state_machine.py index c62751e5e..5f58abe55 100644 --- a/integration/single/test_basic_state_machine.py +++ b/integration/single/test_basic_state_machine.py @@ -1,8 +1,8 @@ from unittest.case import skipIf +from integration.config.service_names import STATE_MACHINE_INLINE_DEFINITION, XRAY from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import XRAY, STATE_MACHINE_INLINE_DEFINITION class TestBasicLayerVersion(BaseTest): diff --git a/integration/single/test_function_with_http_api_and_auth.py b/integration/single/test_function_with_http_api_and_auth.py index 2dc8c7bb3..3b9a4e891 100644 --- a/integration/single/test_function_with_http_api_and_auth.py +++ b/integration/single/test_function_with_http_api_and_auth.py @@ -1,11 +1,11 @@ +import time from unittest.case import skipIf import pytest -import time +from integration.config.service_names import HTTP_API from integration.helpers.base_test import BaseTest from integration.helpers.resource import current_region_does_not_support -from integration.config.service_names import HTTP_API @skipIf(current_region_does_not_support([HTTP_API]), "HttpApi is not supported in this testing region") diff --git a/requirements/base.txt b/requirements/base.txt index d9c5e4ed2..7471ec36c 100755 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,4 +1,3 @@ boto3>=1.19.5,==1.* jsonschema<5,>=3.2 # TODO: evaluate risk of removing jsonschema 3.x support -pydantic~=1.8 typing_extensions~=4.4.0 # 3.7 doesn't have Literal diff --git a/requirements/dev.txt b/requirements/dev.txt index 1678ca28c..bcdd33903 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,19 +1,16 @@ coverage~=5.3 -flake8~=3.8.4 -tox~=3.24 pytest-cov~=2.10.1 pytest-xdist~=2.5 pytest-env~=0.6.2 pytest-rerunfailures~=9.1.1 -pylint~=2.15.0 pyyaml~=5.4 +ruff==0.0.244 # loose the requirement once it is more stable # Test requirements pytest~=6.2.5 parameterized~=0.7.4 # Integration tests -click~=7.1 dateparser~=0.7 boto3>=1.23,<2 tenacity~=7.0.0 @@ -21,17 +18,17 @@ tenacity~=7.0.0 # Requirements for examples requests~=2.25.0 -# CLI requirements -docopt~=0.6.2 - # formatter -black==20.8b1 +black==23.1.0 ruamel.yaml==0.17.21 # It can parse yaml while perserving comments # type check -mypy==0.971 +mypy~=1.0.0 # types boto3-stubs[appconfig,serverlessrepo]>=1.19.5,==1.* types-PyYAML~=5.4 types-jsonschema~=3.2 + +# schema generation, requiring features in >=1.10 +pydantic~=1.10 diff --git a/ruff.toml b/ruff.toml new file mode 100644 index 000000000..8532591fd --- /dev/null +++ b/ruff.toml @@ -0,0 +1,30 @@ +# black formatter takes care of the line length +line-length = 999 + +select = [ + "E", # Pyflakes + "F", # Pyflakes + "PL", # pylint + "I", # isort + "B", # flake8-bugbear + "A", # flake8-builtins + "S", # flake8-bandit + "ISC", # flake8-implicit-str-concat + "ICN", # flake8-import-conventions + "PIE", # flake8-pie + "Q", # flake8-quotes + "RET", # flake8-return + "SIM", # flake8-simplify + "TID", # flake8-tidy-imports + "RUF", # Ruff-specific rules +] + +# Mininal python version we support is 3.7 +target-version = "py37" + +[per-file-ignores] +# python scripts in bin/ needs some python path configurations before import +"bin/*.py" = ["E402"] # E402: module-import-not-at-top-of-file + +[pylint] +max-args = 6 # We have many functions reaching 6 args diff --git a/samtranslator/__init__.py b/samtranslator/__init__.py index 6cda2cfef..2b8306d9e 100644 --- a/samtranslator/__init__.py +++ b/samtranslator/__init__.py @@ -1 +1 @@ -__version__ = "1.59.0" +__version__ = "1.60.0" diff --git a/samtranslator/feature_toggle/feature_toggle.py b/samtranslator/feature_toggle/feature_toggle.py index 2a63ff57b..8973dd3a1 100644 --- a/samtranslator/feature_toggle/feature_toggle.py +++ b/samtranslator/feature_toggle/feature_toggle.py @@ -1,15 +1,15 @@ import json +import logging from abc import ABC, abstractmethod from typing import Any, Dict, cast import boto3 -import logging - from botocore.config import Config + from samtranslator.feature_toggle.dialup import ( DisabledDialup, - ToggleDialup, SimpleAccountPercentileDialup, + ToggleDialup, ) from samtranslator.metrics.method_decorator import cw_timer from samtranslator.utils.constants import BOTO3_CONNECT_TIMEOUT @@ -93,9 +93,6 @@ def is_enabled(self, feature_name: str) -> bool: class FeatureToggleConfigProvider(ABC): """Interface for all FeatureToggle config providers""" - def __init__(self) -> None: - pass - @property @abstractmethod def config(self) -> Dict[str, Any]: @@ -130,7 +127,7 @@ def config(self) -> Dict[str, Any]: class FeatureToggleAppConfigConfigProvider(FeatureToggleConfigProvider): """Feature toggle config provider which loads config from AppConfig.""" - @cw_timer(prefix="External", name="AppConfig") # type: ignore[misc] + @cw_timer(prefix="External", name="AppConfig") def __init__(self, application_id, environment_id, configuration_profile_id, app_config_client=None): # type: ignore[no-untyped-def] FeatureToggleConfigProvider.__init__(self) try: @@ -142,7 +139,7 @@ def __init__(self, application_id, environment_id, configuration_profile_id, app connect_timeout=BOTO3_CONNECT_TIMEOUT, read_timeout=5, retries={"total_max_attempts": 2} ) self.app_config_client = ( - boto3.client("appconfig", config=client_config) if not app_config_client else app_config_client + app_config_client if app_config_client else boto3.client("appconfig", config=client_config) ) response = self.app_config_client.get_configuration( Application=application_id, diff --git a/samtranslator/internal/__init__.py b/samtranslator/internal/__init__.py new file mode 100644 index 000000000..c1f1239df --- /dev/null +++ b/samtranslator/internal/__init__.py @@ -0,0 +1,6 @@ +""" +The module for samtranslator internal implementations. + +External packages should not import anything from it +as all interfaces are subject to change without warning. +""" diff --git a/samtranslator/internal/deprecation_control.py b/samtranslator/internal/deprecation_control.py new file mode 100644 index 000000000..ee83694fd --- /dev/null +++ b/samtranslator/internal/deprecation_control.py @@ -0,0 +1,47 @@ +""" +Utils for deprecating our code using warning.warn(). +The warning message is written to stderr when shown. + +For the difference between DeprecationWarning +and other deprecation warning classes, refer to +https://peps.python.org/pep-0565/#additional-use-case-for-futurewarning + +If external packages import deprecated interfaces, +it is their responsibility to detect and remove them. +""" +import warnings +from functools import wraps +from typing import Callable, Optional, TypeVar + +from typing_extensions import ParamSpec + +PT = ParamSpec("PT") # parameters +RT = TypeVar("RT") # return type + + +def _make_message(message: str, replacement: Optional[str]) -> str: + return f"{message}, please use {replacement}" if replacement else message + + +def deprecated(replacement: Optional[str]) -> Callable[[Callable[PT, RT]], Callable[PT, RT]]: + """ + Mark a function/method as deprecated. + + The warning is shown by default when triggered directly + by code in __main__. + """ + + def decorator(func: Callable[PT, RT]) -> Callable[PT, RT]: + @wraps(func) + def wrapper(*args, **kwargs) -> RT: # type: ignore + warning_message = _make_message( + f"{func.__name__} is deprecated and will be removed in a future release", replacement + ) + # Setting stacklevel=2 to let Python print the line that calls + # this wrapper, not the line below. + warnings.warn(warning_message, DeprecationWarning, stacklevel=2) + return func(*args, **kwargs) + + return wrapper + + return decorator diff --git a/samtranslator/intrinsics/actions.py b/samtranslator/intrinsics/actions.py index df61ef43e..8e3effd3a 100644 --- a/samtranslator/intrinsics/actions.py +++ b/samtranslator/intrinsics/actions.py @@ -1,8 +1,8 @@ import re from abc import ABC -from typing import Any, Dict, Optional, Tuple, Callable, List +from typing import Any, Callable, Dict, List, Optional, Tuple -from samtranslator.model.exceptions import InvalidTemplateException, InvalidDocumentException +from samtranslator.model.exceptions import InvalidDocumentException, InvalidTemplateException class Action(ABC): @@ -17,25 +17,27 @@ class Action(ABC): _resource_ref_separator = "." intrinsic_name: str - def resolve_parameter_refs(self, input_dict: Optional[Any], parameters: Dict[str, Any]) -> Optional[Any]: + def resolve_parameter_refs( # noqa: empty-method-without-abstract-decorator + self, input_dict: Optional[Any], parameters: Dict[str, Any] + ) -> Optional[Any]: """ - Subclass must implement this method to resolve the intrinsic function + Subclass optionally implement this method to resolve the intrinsic function TODO: input_dict should not be None. """ - def resolve_resource_refs( + def resolve_resource_refs( # noqa: empty-method-without-abstract-decorator self, input_dict: Optional[Any], supported_resource_refs: Dict[str, Any] ) -> Optional[Any]: """ - Subclass must implement this method to resolve resource references + Subclass optionally implement this method to resolve resource references TODO: input_dict should not be None. """ - def resolve_resource_id_refs( + def resolve_resource_id_refs( # noqa: empty-method-without-abstract-decorator self, input_dict: Optional[Any], supported_resource_id_refs: Dict[str, Any] ) -> Optional[Any]: """ - Subclass must implement this method to resolve resource references + Subclass optionally implement this method to resolve resource references TODO: input_dict should not be None. """ @@ -68,10 +70,15 @@ def _parse_resource_reference(cls, ref_value: Any) -> Tuple[Optional[str], Optio splits = ref_value.split(cls._resource_ref_separator, 1) # Either there is no 'dot' (or) one of the values is empty string (Ex: when you split "LogicalId.") - if len(splits) != 2 or not all(splits): + try: + logical_id, property_name = splits + except ValueError: + return no_result + + if not logical_id or not property_name: return no_result - return splits[0], splits[1] + return logical_id, property_name class RefAction(Action): @@ -233,11 +240,11 @@ def do_replacement(full_ref: str, ref_value: str) -> str: splits = ref_value.split(self._resource_ref_separator) # If we don't find at least two parts, there is nothing to resolve - if len(splits) < 2: + try: + logical_id, property_name = splits[:2] + except ValueError: return full_ref - logical_id = splits[0] - property_name = splits[1] resolved_value = supported_resource_refs.get(logical_id, property_name) if not resolved_value: # This ID/property combination is not in the supported references @@ -400,6 +407,8 @@ def handler_method(full_ref, ref_value): class GetAttAction(Action): intrinsic_name = "Fn::GetAtt" + _MIN_NUM_ARGUMENTS = 2 + def resolve_parameter_refs(self, input_dict: Optional[Any], parameters: Dict[str, Any]) -> Optional[Any]: # Parameters can never be referenced within GetAtt value return input_dict @@ -503,18 +512,14 @@ def resolve_resource_id_refs( return self._get_resolved_dictionary(input_dict, key, resolved_value, remaining) def _check_input_value(self, value: Any) -> bool: - # Value must be an array with *at least* two elements. If not, this is invalid GetAtt syntax. We just pass along + # Value must be an array with enough elements. If not, this is invalid GetAtt syntax. We just pass along # the input to CFN for it to do the "official" validation. - if not isinstance(value, list) or len(value) < 2: + if not isinstance(value, list) or len(value) < self._MIN_NUM_ARGUMENTS: return False # If items in value array is not a string, then following join line will fail. So if any element is not a string # we just pass along the input to CFN for doing the validation - for item in value: - if not isinstance(item, str): - return False - - return True + return all(isinstance(item, str) for item in value) def _get_resolved_dictionary( self, input_dict: Optional[Dict[str, Any]], key: str, resolved_value: Optional[str], remaining: List[str] @@ -530,7 +535,7 @@ def _get_resolved_dictionary( if input_dict and resolved_value: # We resolved to a new resource logicalId. Use this as the first element and keep remaining elements intact # This is the new value of Fn::GetAtt - input_dict[key] = [resolved_value] + remaining + input_dict[key] = [resolved_value, *remaining] return input_dict @@ -542,6 +547,8 @@ class FindInMapAction(Action): intrinsic_name = "Fn::FindInMap" + _NUM_ARGUMENTS = 3 + def resolve_parameter_refs(self, input_dict: Optional[Any], parameters: Dict[str, Any]) -> Optional[Any]: """ Recursively resolves "Fn::FindInMap"references that are present in the mappings and returns the value. @@ -558,11 +565,11 @@ def resolve_parameter_refs(self, input_dict: Optional[Any], parameters: Dict[str value = input_dict[self.intrinsic_name] # FindInMap expects an array with 3 values - if not isinstance(value, list) or len(value) != 3: + if not isinstance(value, list) or len(value) != self._NUM_ARGUMENTS: raise InvalidDocumentException( [ InvalidTemplateException( - f"Invalid FindInMap value {value}. FindInMap expects an array with 3 values." + f"Invalid FindInMap value {value}. FindInMap expects an array with {self._NUM_ARGUMENTS} values." ) ] ) diff --git a/samtranslator/intrinsics/resolver.py b/samtranslator/intrinsics/resolver.py index 8bd2097cb..e0f892d07 100644 --- a/samtranslator/intrinsics/resolver.py +++ b/samtranslator/intrinsics/resolver.py @@ -1,9 +1,9 @@ # Help resolve intrinsic functions -from typing import Any, Dict, Optional, Callable, List, Union +from typing import Any, Callable, Dict, List, Optional, Union -from samtranslator.intrinsics.actions import Action, SubAction, RefAction, GetAttAction -from samtranslator.model.exceptions import InvalidTemplateException, InvalidDocumentException +from samtranslator.intrinsics.actions import Action, GetAttAction, RefAction, SubAction from samtranslator.intrinsics.resource_refs import SupportedResourceReferences +from samtranslator.model.exceptions import InvalidDocumentException, InvalidTemplateException # All intrinsics are supported by default DEFAULT_SUPPORTED_INTRINSICS = {action.intrinsic_name: action() for action in [RefAction, SubAction, GetAttAction]} diff --git a/samtranslator/intrinsics/resource_refs.py b/samtranslator/intrinsics/resource_refs.py index 7a8c45db2..59b42f51c 100644 --- a/samtranslator/intrinsics/resource_refs.py +++ b/samtranslator/intrinsics/resource_refs.py @@ -9,7 +9,6 @@ class SupportedResourceReferences: """ def __init__(self) -> None: - # This is a two level map like: # { "LogicalId": {"Property": "Value"} } self._refs: Dict[str, Dict[str, Any]] = {} diff --git a/samtranslator/metrics/method_decorator.py b/samtranslator/metrics/method_decorator.py index c92dd442b..802e7169f 100644 --- a/samtranslator/metrics/method_decorator.py +++ b/samtranslator/metrics/method_decorator.py @@ -2,14 +2,20 @@ Method decorator for execution latency collection """ import functools +import logging from datetime import datetime +from typing import Callable, Optional, TypeVar, Union, overload + +from typing_extensions import ParamSpec + from samtranslator.metrics.metrics import DummyMetricsPublisher, Metrics from samtranslator.model import Resource -import logging -from typing import Any, Callable, Optional, Union LOG = logging.getLogger(__name__) +_PT = ParamSpec("_PT") # parameters +_RT = TypeVar("_RT") # return value + class MetricsMethodWrapperSingleton: """ @@ -75,9 +81,21 @@ def _send_cw_metric(prefix, name, execution_time_ms, func, args): # type: ignor LOG.warning("Failed to add metrics", exc_info=e) +@overload +def cw_timer( + *, name: Optional[str] = None, prefix: Optional[str] = None +) -> Callable[[Callable[_PT, _RT]], Callable[_PT, _RT]]: + ... + + +@overload +def cw_timer(_func: Callable[_PT, _RT], name: Optional[str] = None, prefix: Optional[str] = None) -> Callable[_PT, _RT]: + ... + + def cw_timer( - _func: Optional[Callable[..., Any]] = None, name: Optional[str] = None, prefix: Optional[str] = None -) -> Union[Callable[..., Any], Callable[[Callable[..., Any]], Callable[..., Any]]]: + _func: Optional[Callable[_PT, _RT]] = None, name: Optional[str] = None, prefix: Optional[str] = None +) -> Union[Callable[_PT, _RT], Callable[[Callable[_PT, _RT]], Callable[_PT, _RT]]]: """ A method decorator, that will calculate execution time of the decorated method, and store this information as a metric in CloudWatch by calling the metrics singleton instance. @@ -90,9 +108,9 @@ def cw_timer( If prefix is defined, it will be added in the beginning of what is been generated above """ - def cw_timer_decorator(func: Callable[..., Any]) -> Callable[..., Any]: + def cw_timer_decorator(func: Callable[_PT, _RT]) -> Callable[_PT, _RT]: @functools.wraps(func) - def wrapper_cw_timer(*args, **kwargs): # type: ignore[no-untyped-def] + def wrapper_cw_timer(*args, **kwargs) -> _RT: # type: ignore[no-untyped-def] start_time = datetime.now() exec_result = func(*args, **kwargs) diff --git a/samtranslator/metrics/metrics.py b/samtranslator/metrics/metrics.py index 34c7537d2..c228f8f26 100644 --- a/samtranslator/metrics/metrics.py +++ b/samtranslator/metrics/metrics.py @@ -2,9 +2,9 @@ Helper classes to publish metrics """ import logging +from abc import ABC, abstractmethod from datetime import datetime from typing import Any, Dict -from abc import ABC, abstractmethod LOG = logging.getLogger(__name__) @@ -12,9 +12,6 @@ class MetricsPublisher(ABC): """Interface for all MetricPublishers""" - def __init__(self) -> None: - pass - @abstractmethod def publish(self, namespace, metrics): # type: ignore[no-untyped-def] """ diff --git a/samtranslator/model/__init__.py b/samtranslator/model/__init__.py index 12a387870..28781593b 100644 --- a/samtranslator/model/__init__.py +++ b/samtranslator/model/__init__.py @@ -1,14 +1,14 @@ """ CloudFormation Resource serialization, deserialization, and validation """ -import re import inspect -from abc import ABC +import re +from abc import ABC, ABCMeta, abstractmethod from typing import Any, Callable, Dict, List, Optional, Tuple, Union -from abc import ABCMeta + from samtranslator.intrinsics.resolver import IntrinsicsResolver from samtranslator.model.exceptions import ExpectedType, InvalidResourceException, InvalidResourcePropertyTypeException +from samtranslator.model.tags.resource_tagging import get_tag_list from samtranslator.model.types import IS_DICT, IS_STR, Validator, any_type, is_type from samtranslator.plugins import LifeCycleEvents -from samtranslator.model.tags.resource_tagging import get_tag_list class PropertyType: @@ -274,7 +274,7 @@ def _generate_resource_dict(self) -> Dict[str, Any]: resource_dict.update(self.resource_attributes) properties_dict = {} - for name in self.property_types.keys(): + for name in self.property_types: value = getattr(self, name) if value is not None: properties_dict[name] = value @@ -291,7 +291,7 @@ def __setattr__(self, name, value): # type: ignore[no-untyped-def] :param value: the value of the attribute to be set :raises InvalidResourceException: if an invalid property is provided """ - if name in self._keywords or name in self.property_types.keys(): + if name in self._keywords or name in self.property_types: return super().__setattr__(name, value) raise InvalidResourceException( @@ -409,6 +409,7 @@ def resources_to_link(self, resources): # type: ignore[no-untyped-def] """ return {} + @abstractmethod def to_cloudformation(self, **kwargs: Any) -> List[Any]: """Returns a list of Resource instances, representing vanilla CloudFormation resources, to which this macro expands. The caller should be able to update their template with the expanded resources by calling @@ -534,7 +535,7 @@ def __init__(self, *modules: Any): for _, resource_class in inspect.getmembers( module, lambda cls: inspect.isclass(cls) - and cls.__module__ == module.__name__ + and cls.__module__ == module.__name__ # noqa: function-uses-loop-variable and hasattr(cls, "resource_type"), ): self.resource_types[resource_class.resource_type] = resource_class @@ -592,3 +593,20 @@ def get_resource_by_logical_id(self, _input: str) -> Dict[str, Any]: raise TypeError("Invalid logical ID '{}'. Expected a string.".format(_input)) return self.resources.get(_input, None) + + +__all__: List[str] = [ + "IS_DICT", + "IS_STR", + "Validator", + "any_type", + "is_type", + "PropertyType", + "Property", + "PassThroughProperty", + "Resource", + "ResourceMacro", + "SamResourceMacro", + "ResourceTypeResolver", + "ResourceResolver", +] diff --git a/samtranslator/model/api/api_generator.py b/samtranslator/model/api/api_generator.py index 4c825cd05..fc9d70a48 100644 --- a/samtranslator/model/api/api_generator.py +++ b/samtranslator/model/api/api_generator.py @@ -1,39 +1,38 @@ import logging from collections import namedtuple -from typing import List, Optional, Set, Dict, Any, cast, Union, Tuple +from typing import Any, Dict, List, Optional, Set, Tuple, Union, cast from samtranslator.metrics.method_decorator import cw_timer -from samtranslator.model.intrinsics import ref, fnGetAtt, make_or_condition from samtranslator.model.apigateway import ( + ApiGatewayApiKey, + ApiGatewayAuthorizer, + ApiGatewayBasePathMapping, ApiGatewayDeployment, + ApiGatewayDomainName, + ApiGatewayResponse, ApiGatewayRestApi, ApiGatewayStage, - ApiGatewayAuthorizer, - ApiGatewayResponse, - ApiGatewayDomainName, - ApiGatewayBasePathMapping, ApiGatewayUsagePlan, ApiGatewayUsagePlanKey, - ApiGatewayApiKey, ) -from samtranslator.model.route53 import Route53RecordSetGroup from samtranslator.model.exceptions import ( ExpectedType, InvalidDocumentException, InvalidResourceException, InvalidTemplateException, ) +from samtranslator.model.intrinsics import fnGetAtt, fnSub, is_intrinsic, make_or_condition, ref +from samtranslator.model.lambda_ import LambdaPermission +from samtranslator.model.route53 import Route53RecordSetGroup from samtranslator.model.s3_utils.uri_parser import parse_s3_uri +from samtranslator.model.tags.resource_tagging import get_tag_list +from samtranslator.model.types import PassThrough from samtranslator.region_configuration import RegionConfiguration -from samtranslator.schema.common import PassThrough from samtranslator.swagger.swagger import SwaggerEditor -from samtranslator.model.intrinsics import is_intrinsic, fnSub -from samtranslator.model.lambda_ import LambdaPermission -from samtranslator.translator.logical_id_generator import LogicalIdGenerator from samtranslator.translator.arn_generator import ArnGenerator -from samtranslator.utils.types import Intrinsicable -from samtranslator.model.tags.resource_tagging import get_tag_list +from samtranslator.translator.logical_id_generator import LogicalIdGenerator from samtranslator.utils.py27hash_fix import Py27Dict, Py27UniStr +from samtranslator.utils.types import Intrinsicable from samtranslator.utils.utils import InvalidValueType, dict_deep_get from samtranslator.validator.value_validator import sam_expect @@ -141,7 +140,6 @@ def _set_condition(self, condition, template_conditions): # type: ignore[no-unt return if condition and condition not in self.conditions: - if template_conditions is None: raise InvalidTemplateException( "Can't have condition without having 'Conditions' section in the template" @@ -161,7 +159,7 @@ def _set_condition(self, condition, template_conditions): # type: ignore[no-unt class ApiGenerator: - def __init__( + def __init__( # noqa: too-many-arguments self, logical_id: str, cache_cluster_enabled: Optional[Intrinsicable[bool]], @@ -275,13 +273,10 @@ def _construct_rest_api(self) -> ApiGatewayRestApi: self.logical_id, "Specify either 'DefinitionUri' or 'DefinitionBody' property and not both." ) - if self.open_api_version: - if not SwaggerEditor.safe_compare_regex_with_string( - SwaggerEditor.get_openapi_versions_supported_regex(), self.open_api_version - ): - raise InvalidResourceException( - self.logical_id, "The OpenApiVersion value must be of the format '3.0.0'." - ) + if self.open_api_version and not SwaggerEditor.safe_compare_regex_with_string( + SwaggerEditor.get_openapi_versions_supported_regex(), self.open_api_version + ): + raise InvalidResourceException(self.logical_id, "The OpenApiVersion value must be of the format '3.0.0'.") self._add_cors() self._add_auth() @@ -429,10 +424,9 @@ def _construct_stage( return stage - def _construct_api_domain( + def _construct_api_domain( # noqa: too-many-branches self, rest_api: ApiGatewayRestApi, route53_record_set_groups: Any ) -> Tuple[Optional[ApiGatewayDomainName], Optional[List[ApiGatewayBasePathMapping]], Any]: - # pylint: disable=duplicate-code """ Constructs and returns the ApiGateway Domain and BasepathMapping """ @@ -476,8 +470,8 @@ def _construct_api_domain( sam_expect(mutual_tls_auth, self.logical_id, "Domain.MutualTlsAuthentication").to_be_a_map() if not set(mutual_tls_auth.keys()).issubset({"TruststoreUri", "TruststoreVersion"}): invalid_keys = [] - for key in mutual_tls_auth.keys(): - if not key in {"TruststoreUri", "TruststoreVersion"}: + for key in mutual_tls_auth: + if key not in {"TruststoreUri", "TruststoreVersion"}: invalid_keys.append(key) invalid_keys.sort() raise InvalidResourceException( @@ -589,7 +583,6 @@ def _construct_record_sets_for_domain( return recordset_list def _construct_alias_target(self, domain: Dict[str, Any], api_domain_name: str, route53: Any) -> Dict[str, Any]: - # pylint: disable=duplicate-code alias_target = {} target_health = route53.get("EvaluateTargetHealth") @@ -647,9 +640,8 @@ def _add_cors(self) -> None: # Just set Origin property. Others will be defaults properties = CorsProperties(AllowOrigin=self.cors) # type: ignore[call-arg] elif isinstance(self.cors, dict): - # Make sure keys in the dict are recognized - if not all(key in CorsProperties._fields for key in self.cors.keys()): + if not all(key in CorsProperties._fields for key in self.cors): raise InvalidResourceException(self.logical_id, INVALID_ERROR) properties = CorsProperties(**self.cors) @@ -721,7 +713,7 @@ def _add_auth(self) -> None: ) # Make sure keys in the dict are recognized - if not all(key in AuthProperties._fields for key in self.auth.keys()): + if not all(key in AuthProperties._fields for key in self.auth): raise InvalidResourceException(self.logical_id, "Invalid value for 'Auth' property") if not SwaggerEditor.is_valid(self.definition_body): @@ -758,7 +750,7 @@ def _add_auth(self) -> None: self.definition_body = self._openapi_postprocess(swagger_editor.swagger) - def _construct_usage_plan(self, rest_api_stage: Optional[ApiGatewayStage] = None) -> Any: + def _construct_usage_plan(self, rest_api_stage: Optional[ApiGatewayStage] = None) -> Any: # noqa: too-many-branches """Constructs and returns the ApiGateway UsagePlan, ApiGateway UsagePlanKey, ApiGateway ApiKey for Auth. :param model.apigateway.ApiGatewayStage stage: the stage of rest api @@ -777,7 +769,7 @@ def _construct_usage_plan(self, rest_api_stage: Optional[ApiGatewayStage] = None if not isinstance(usage_plan_properties, dict): raise InvalidResourceException(self.logical_id, "'UsagePlan' must be a dictionary") # throws error if the property invalid/ unsupported for UsagePlan - if not all(key in UsagePlanProperties._fields for key in usage_plan_properties.keys()): + if not all(key in UsagePlanProperties._fields for key in usage_plan_properties): raise InvalidResourceException(self.logical_id, "Invalid property for 'UsagePlan'") create_usage_plan = usage_plan_properties.get("CreateUsagePlan") @@ -949,7 +941,7 @@ def _add_gateway_responses(self) -> None: "Invalid property type '{}' for GatewayResponses. " "Expected an object of type 'GatewayResponse'.".format(type(responses_value).__name__), ) - for response_key in responses_value.keys(): + for response_key in responses_value: if response_key not in GatewayResponseProperties: raise InvalidResourceException( self.logical_id, @@ -1021,7 +1013,7 @@ def _add_models(self) -> None: self.definition_body = self._openapi_postprocess(swagger_editor.swagger) - def _openapi_postprocess(self, definition_body: Dict[str, Any]) -> Dict[str, Any]: + def _openapi_postprocess(self, definition_body: Dict[str, Any]) -> Dict[str, Any]: # noqa: too-many-branches """ Convert definitions to openapi 3 in definition body if OpenApiVersion flag is specified. @@ -1229,7 +1221,7 @@ def _set_endpoint_configuration(self, rest_api: ApiGatewayRestApi, value: Union[ if isinstance(value, dict) and value.get("Type"): rest_api.Parameters = {"endpointConfigurationTypes": value.get("Type")} rest_api.EndpointConfiguration = {"Types": [value.get("Type")]} - if "VPCEndpointIds" in value.keys(): + if "VPCEndpointIds" in value: rest_api.EndpointConfiguration["VpcEndpointIds"] = value.get("VPCEndpointIds") else: rest_api.EndpointConfiguration = {"Types": [value]} diff --git a/samtranslator/model/api/http_api_generator.py b/samtranslator/model/api/http_api_generator.py index ff98adb7c..2e2e6a045 100644 --- a/samtranslator/model/api/http_api_generator.py +++ b/samtranslator/model/api/http_api_generator.py @@ -3,20 +3,19 @@ from typing import Any, Dict, List, Optional, Tuple, Union, cast from samtranslator.metrics.method_decorator import cw_timer -from samtranslator.model.intrinsics import ref, fnGetAtt from samtranslator.model.apigatewayv2 import ( - ApiGatewayV2HttpApi, - ApiGatewayV2Stage, + ApiGatewayV2ApiMapping, ApiGatewayV2Authorizer, ApiGatewayV2DomainName, - ApiGatewayV2ApiMapping, + ApiGatewayV2HttpApi, + ApiGatewayV2Stage, ) from samtranslator.model.exceptions import InvalidResourceException +from samtranslator.model.intrinsics import fnGetAtt, is_intrinsic, is_intrinsic_no_value, ref +from samtranslator.model.route53 import Route53RecordSetGroup from samtranslator.model.s3_utils.uri_parser import parse_s3_uri from samtranslator.open_api.open_api import OpenApiEditor from samtranslator.translator.logical_id_generator import LogicalIdGenerator -from samtranslator.model.intrinsics import is_intrinsic, is_intrinsic_no_value -from samtranslator.model.route53 import Route53RecordSetGroup from samtranslator.utils.types import Intrinsicable from samtranslator.utils.utils import InvalidValueType, dict_deep_get from samtranslator.validator.value_validator import sam_expect @@ -34,7 +33,7 @@ class HttpApiGenerator: - def __init__( + def __init__( # noqa: too-many-arguments self, logical_id: str, stage_variables: Optional[Dict[str, Intrinsicable[str]]], @@ -186,7 +185,7 @@ def _add_cors(self) -> None: elif isinstance(self.cors_configuration, dict): # Make sure keys in the dict are recognized - if not all(key in CorsProperties._fields for key in self.cors_configuration.keys()): + if not all(key in CorsProperties._fields for key in self.cors_configuration): raise InvalidResourceException(self.logical_id, "Invalid value for 'Cors' property.") properties = CorsProperties(**self.cors_configuration) @@ -238,7 +237,7 @@ def _update_default_path(self) -> None: if DefaultStageName in paths: paths[f"/{DefaultStageName}"] = paths.pop(DefaultStageName) - def _construct_api_domain( + def _construct_api_domain( # noqa: too-many-branches self, http_api: ApiGatewayV2HttpApi, route53_record_set_groups: Dict[str, Route53RecordSetGroup] ) -> Tuple[ Optional[ApiGatewayV2DomainName], @@ -297,7 +296,7 @@ def _construct_api_domain( if isinstance(mutual_tls_auth, dict): if not set(mutual_tls_auth.keys()).issubset({"TruststoreUri", "TruststoreVersion"}): invalid_keys = [] - for key in mutual_tls_auth.keys(): + for key in mutual_tls_auth: if key not in {"TruststoreUri", "TruststoreVersion"}: invalid_keys.append(key) invalid_keys.sort() @@ -467,7 +466,7 @@ def _add_auth(self) -> None: ) # Make sure keys in the dict are recognized - if not all(key in AuthProperties._fields for key in self.auth.keys()): + if not all(key in AuthProperties._fields for key in self.auth): raise InvalidResourceException(self.logical_id, "Invalid value for 'Auth' property") if not OpenApiEditor.is_valid(self.definition_body): @@ -713,7 +712,7 @@ def _add_title(self) -> None: open_api_editor.add_title(self.name) self.definition_body = open_api_editor.openapi - @cw_timer(prefix="Generator", name="HttpApi") # type: ignore[misc] + @cw_timer(prefix="Generator", name="HttpApi") def to_cloudformation( self, route53_record_set_groups: Dict[str, Route53RecordSetGroup] ) -> Tuple[ diff --git a/samtranslator/model/apigateway.py b/samtranslator/model/apigateway.py index e8d7d10a4..26195cc9e 100644 --- a/samtranslator/model/apigateway.py +++ b/samtranslator/model/apigateway.py @@ -5,8 +5,7 @@ from samtranslator.model import PropertyType, Resource from samtranslator.model.exceptions import InvalidResourceException from samtranslator.model.intrinsics import fnSub, ref -from samtranslator.model.types import IS_DICT, IS_STR, is_type, list_of, one_of -from samtranslator.schema.common import PassThrough +from samtranslator.model.types import IS_DICT, IS_STR, PassThrough, is_type, list_of, one_of from samtranslator.translator import logical_id_generator from samtranslator.translator.arn_generator import ArnGenerator from samtranslator.utils.py27hash_fix import Py27Dict, Py27UniStr @@ -114,10 +113,7 @@ def make_auto_deployable( # type: ignore[no-untyped-def] hash_input.append(str(openapi_version)) if domain: hash_input.append(json.dumps(domain)) - if redeploy_restapi_parameters: - function_names = redeploy_restapi_parameters.get("function_names") - else: - function_names = None + function_names = redeploy_restapi_parameters.get("function_names") if redeploy_restapi_parameters else None # The deployment logical id is + "Deployment" # The keyword "Deployment" is removed and all the function names associated with api is obtained if function_names and function_names.get(self.logical_id[:-10], None): @@ -142,7 +138,7 @@ def __init__( ) -> None: if response_parameters: # response_parameters has been validated in ApiGenerator._add_gateway_responses() - for response_parameter_key in response_parameters.keys(): + for response_parameter_key in response_parameters: if response_parameter_key not in ApiGatewayResponse.ResponseParameterProperties: raise InvalidResourceException( api_logical_id, "Invalid gateway response parameter '{}'".format(response_parameter_key) @@ -266,7 +262,7 @@ class ApiGatewayApiKey(Resource): class ApiGatewayAuthorizer: _VALID_FUNCTION_PAYLOAD_TYPES = [None, "TOKEN", "REQUEST"] - def __init__( # type: ignore[no-untyped-def] + def __init__( # type: ignore[no-untyped-def]# noqa: too-many-arguments self, api_logical_id=None, name=None, @@ -392,7 +388,7 @@ def _get_identity_validation_expression(self) -> Optional[PassThrough]: def _build_identity_source_item(item_prefix: str, prop_value: str) -> str: item = item_prefix + prop_value if isinstance(prop_value, Py27UniStr): - item = Py27UniStr(item) + return Py27UniStr(item) return item def _build_identity_source_item_array(self, prop_key: str, item_prefix: str) -> List[str]: @@ -421,7 +417,7 @@ def _get_identity_source(self) -> str: identity_source = ", ".join(identity_source_array) if any(isinstance(i, Py27UniStr) for i in identity_source_array): # Convert identity_source to Py27UniStr if any part of it is Py27UniStr - identity_source = Py27UniStr(identity_source) + return Py27UniStr(identity_source) return identity_source diff --git a/samtranslator/model/apigatewayv2.py b/samtranslator/model/apigatewayv2.py index 7d9471311..e6cd6f41a 100644 --- a/samtranslator/model/apigatewayv2.py +++ b/samtranslator/model/apigatewayv2.py @@ -1,10 +1,9 @@ from typing import Any, Dict, List, Optional, Union from samtranslator.model import PropertyType, Resource -from samtranslator.model.types import IS_DICT, is_type, one_of, IS_STR, list_of -from samtranslator.model.intrinsics import ref, fnSub from samtranslator.model.exceptions import ExpectedType, InvalidResourceException -from samtranslator.schema.common import PassThrough +from samtranslator.model.intrinsics import fnSub, ref +from samtranslator.model.types import IS_DICT, IS_STR, PassThrough, is_type, list_of, one_of from samtranslator.translator.arn_generator import ArnGenerator from samtranslator.utils.types import Intrinsicable from samtranslator.validator.value_validator import sam_expect @@ -76,7 +75,7 @@ class ApiGatewayV2ApiMapping(Resource): class ApiGatewayV2Authorizer: - def __init__( # type: ignore[no-untyped-def] + def __init__( # type: ignore[no-untyped-def] # noqa: too-many-arguments self, api_logical_id=None, name=None, diff --git a/samtranslator/model/cloudformation.py b/samtranslator/model/cloudformation.py index 149ce6c61..129345b28 100644 --- a/samtranslator/model/cloudformation.py +++ b/samtranslator/model/cloudformation.py @@ -1,6 +1,6 @@ from samtranslator.model import PropertyType, Resource -from samtranslator.model.types import IS_DICT, is_type, IS_STR, list_of, one_of from samtranslator.model.intrinsics import ref +from samtranslator.model.types import IS_DICT, IS_STR, is_type, list_of, one_of class NestedStack(Resource): diff --git a/samtranslator/model/codedeploy.py b/samtranslator/model/codedeploy.py index 8bfca87ad..69f281959 100644 --- a/samtranslator/model/codedeploy.py +++ b/samtranslator/model/codedeploy.py @@ -1,6 +1,6 @@ from samtranslator.model import PropertyType, Resource from samtranslator.model.intrinsics import ref -from samtranslator.model.types import IS_DICT, is_type, one_of, IS_STR +from samtranslator.model.types import IS_DICT, IS_STR, is_type, one_of class CodeDeployApplication(Resource): diff --git a/samtranslator/model/cognito.py b/samtranslator/model/cognito.py index eed9d5434..348d0e358 100644 --- a/samtranslator/model/cognito.py +++ b/samtranslator/model/cognito.py @@ -1,6 +1,6 @@ from samtranslator.model import PropertyType, Resource -from samtranslator.model.types import IS_DICT, list_of, IS_STR from samtranslator.model.intrinsics import fnGetAtt, ref +from samtranslator.model.types import IS_DICT, IS_STR, list_of class CognitoUserPool(Resource): diff --git a/samtranslator/model/connector/connector.py b/samtranslator/model/connector/connector.py index fcca66ce8..329e0c4a9 100644 --- a/samtranslator/model/connector/connector.py +++ b/samtranslator/model/connector/connector.py @@ -1,11 +1,10 @@ from collections import namedtuple -from typing import Any, Dict, List, Optional, Iterable +from typing import Any, Dict, Iterable, List, Optional from samtranslator.model import ResourceResolver -from samtranslator.model.intrinsics import get_logical_id_from_intrinsic, ref, fnGetAtt +from samtranslator.model.intrinsics import fnGetAtt, get_logical_id_from_intrinsic, ref from samtranslator.utils.utils import as_array, insert_unique - # TODO: Switch to dataclass ConnectorResourceReference = namedtuple( "ConnectorResourceReference", @@ -21,6 +20,8 @@ ], ) +UNSUPPORTED_CONNECTOR_PROFILE_TYPE = "UNSUPPORTED_CONNECTOR_PROFILE_TYPE" + class ConnectorResourceError(Exception): """ @@ -83,7 +84,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 + non_id_provided = len([k for k in obj 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/model/connector_profiles/profiles.json b/samtranslator/model/connector_profiles/profiles.json index dc6247a72..8071d63fd 100644 --- a/samtranslator/model/connector_profiles/profiles.json +++ b/samtranslator/model/connector_profiles/profiles.json @@ -352,6 +352,29 @@ } } } + }, + "AWS::Location::PlaceIndex": { + "Type": "AWS_IAM_ROLE_MANAGED_POLICY", + "Properties": { + "SourcePolicy": true, + "AccessCategories": { + "Read": { + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "geo:DescribePlaceIndex", + "geo:GetPlace", + "geo:SearchPlaceIndexForPosition", + "geo:SearchPlaceIndexForSuggestions", + "geo:SearchPlaceIndexForText" + ], + "Resource": ["%{Destination.Arn}"] + } + ] + } + } + } } }, "AWS::ApiGatewayV2::Api": { diff --git a/samtranslator/model/dynamodb.py b/samtranslator/model/dynamodb.py index a7037e935..ed33a11e3 100644 --- a/samtranslator/model/dynamodb.py +++ b/samtranslator/model/dynamodb.py @@ -1,6 +1,6 @@ from samtranslator.model import PropertyType, Resource -from samtranslator.model.types import IS_DICT, is_type, dict_of, list_of, IS_STR, one_of from samtranslator.model.intrinsics import fnGetAtt, ref +from samtranslator.model.types import IS_DICT, IS_STR, dict_of, is_type, list_of, one_of class DynamoDBTable(Resource): diff --git a/samtranslator/model/eventbridge_utils.py b/samtranslator/model/eventbridge_utils.py index 2fc2790d9..07b5ec5f7 100644 --- a/samtranslator/model/eventbridge_utils.py +++ b/samtranslator/model/eventbridge_utils.py @@ -1,5 +1,5 @@ -from samtranslator.model.sqs import SQSQueue, SQSQueuePolicy, SQSQueuePolicies from samtranslator.model.exceptions import InvalidEventException +from samtranslator.model.sqs import SQSQueue, SQSQueuePolicies, SQSQueuePolicy class EventBridgeRuleUtils: diff --git a/samtranslator/model/events.py b/samtranslator/model/events.py index 1be29c52c..80ff1a859 100644 --- a/samtranslator/model/events.py +++ b/samtranslator/model/events.py @@ -1,6 +1,6 @@ from samtranslator.model import PropertyType, Resource -from samtranslator.model.types import IS_DICT, list_of, IS_STR from samtranslator.model.intrinsics import fnGetAtt, ref +from samtranslator.model.types import IS_DICT, IS_STR, list_of class EventsRule(Resource): diff --git a/samtranslator/model/eventsources/cloudwatchlogs.py b/samtranslator/model/eventsources/cloudwatchlogs.py index 743dc1c45..939cf34a4 100644 --- a/samtranslator/model/eventsources/cloudwatchlogs.py +++ b/samtranslator/model/eventsources/cloudwatchlogs.py @@ -6,6 +6,7 @@ from samtranslator.model.log import SubscriptionFilter from samtranslator.model.types import IS_STR from samtranslator.translator.arn_generator import ArnGenerator + from . import FUNCTION_EVETSOURCE_METRIC_PREFIX from .push import PushEventSource @@ -37,9 +38,7 @@ def to_cloudformation(self, **kwargs): # type: ignore[no-untyped-def] source_arn = self.get_source_arn() permission = self._construct_permission(function, source_arn=source_arn) # type: ignore[no-untyped-call] subscription_filter = self.get_subscription_filter(function, permission) # type: ignore[no-untyped-call] - resources = [permission, subscription_filter] - - return resources + return [permission, subscription_filter] def get_source_arn(self) -> Dict[str, Any]: resource = "log-group:${__LogGroupName__}:*" diff --git a/samtranslator/model/eventsources/pull.py b/samtranslator/model/eventsources/pull.py index 330a0c8e0..379d66247 100644 --- a/samtranslator/model/eventsources/pull.py +++ b/samtranslator/model/eventsources/pull.py @@ -1,17 +1,16 @@ from abc import ABCMeta, abstractmethod from typing import Any, Dict, List, Optional +from samtranslator.internal.deprecation_control import deprecated from samtranslator.metrics.method_decorator import cw_timer -from samtranslator.model import ResourceMacro, PropertyType, PassThroughProperty +from samtranslator.model import PassThroughProperty, PropertyType, ResourceMacro from samtranslator.model.eventsources import FUNCTION_EVETSOURCE_METRIC_PREFIX -from samtranslator.model.types import IS_DICT, is_type, IS_STR -from samtranslator.schema.common import PassThrough +from samtranslator.model.exceptions import InvalidEventException +from samtranslator.model.iam import IAMRolePolicies from samtranslator.model.intrinsics import is_intrinsic - from samtranslator.model.lambda_ import LambdaEventSourceMapping +from samtranslator.model.types import IS_DICT, IS_STR, PassThrough, is_type from samtranslator.translator.arn_generator import ArnGenerator -from samtranslator.model.exceptions import InvalidEventException -from samtranslator.model.iam import IAMRolePolicies from samtranslator.utils.types import Intrinsicable from samtranslator.validator.value_validator import sam_expect @@ -19,7 +18,7 @@ class PullEventSource(ResourceMacro, metaclass=ABCMeta): """Base class for pull event sources for SAM Functions. - The pull events are Kinesis Streams, DynamoDB Streams, Kafka Topics, Amazon MQ Queues and SQS Queues. All of these correspond to an + The pull events are Kinesis Streams, DynamoDB Streams, Kafka Topics, Amazon MQ Queues, SQS Queues, and DocumentDB Clusters. All of these correspond to an EventSourceMapping in Lambda, and require that the execution role be given to Kinesis Streams, DynamoDB Streams, or SQS Queues, respectively. @@ -27,7 +26,7 @@ class PullEventSource(ResourceMacro, metaclass=ABCMeta): """ # Event types that support `FilterCriteria`, stored as a list to keep the alphabetical order - RESOURCE_TYPES_WITH_EVENT_FILTERING = ["DynamoDB", "Kinesis", "MQ", "MSK", "SelfManagedKafka", "SQS"] + RESOURCE_TYPES_WITH_EVENT_FILTERING = ["DocumentDB", "DynamoDB", "Kinesis", "MQ", "MSK", "SelfManagedKafka", "SQS"] # Note(xinhol): `PullEventSource` should have been an abstract class. Disabling the type check for the next # line to avoid any potential behavior change. @@ -90,8 +89,16 @@ def get_policy_statements(self) -> Optional[List[Dict[str, Any]]]: def get_event_source_arn(self) -> Optional[PassThrough]: """Return the value to assign to lambda event source mapping's EventSourceArn.""" + def add_extra_eventsourcemapping_fields(self, _lambda_eventsourcemapping: LambdaEventSourceMapping) -> None: + """Adds extra fields to the CloudFormation ESM resource. + This method can be overriden by a subclass if it has extra fields specific to that subclass. + + :param LambdaEventSourceMapping lambda_eventsourcemapping: the Event source mapping resource to add the fields to. + """ + return + @cw_timer(prefix=FUNCTION_EVETSOURCE_METRIC_PREFIX) - def to_cloudformation(self, **kwargs): # type: ignore[no-untyped-def] + def to_cloudformation(self, **kwargs): # type: ignore[no-untyped-def] # noqa: too-many-branches """Returns the Lambda EventSourceMapping to which this pull event corresponds. Adds the appropriate managed policy to the function's execution role, if such a role is provided. @@ -185,6 +192,8 @@ def to_cloudformation(self, **kwargs): # type: ignore[no-untyped-def] lambda_eventsourcemapping.DestinationConfig = self.DestinationConfig + self.add_extra_eventsourcemapping_fields(lambda_eventsourcemapping) + if "role" in kwargs: self._link_policy(kwargs["role"], destination_config_policy) # type: ignore[no-untyped-call] @@ -205,17 +214,19 @@ def _link_policy(self, role, destination_config_policy=None): # type: ignore[no if role.Policies is None: role.Policies = [] for policy in policy_statements: - if policy not in role.Policies: - if not policy.get("PolicyDocument") in [d["PolicyDocument"] for d in role.Policies]: - role.Policies.append(policy) + if policy not in role.Policies and policy.get("PolicyDocument") not in [ + d["PolicyDocument"] for d in role.Policies + ]: + role.Policies.append(policy) # add SQS or SNS policy only if role is present in kwargs if role is not None and destination_config_policy is not None and destination_config_policy: if role.Policies is None: role.Policies = [] role.Policies.append(destination_config_policy) if role.Policies and destination_config_policy not in role.Policies: - # do not add the policy if the same policy document is already present - if not destination_config_policy.get("PolicyDocument") in [d["PolicyDocument"] for d in role.Policies]: + policy_document = destination_config_policy.get("PolicyDocument") + # do not add the policy if the same policy document is already present + if policy_document not in [d["PolicyDocument"] for d in role.Policies]: role.Policies.append(destination_config_policy) def _validate_filter_criteria(self) -> None: @@ -232,13 +243,71 @@ def _validate_filter_criteria(self) -> None: if list(self.FilterCriteria.keys()) not in [[], ["Filters"]]: raise InvalidEventException(self.relative_id, "FilterCriteria field has a wrong format") - def validate_secrets_manager_kms_key_id(self): # type: ignore[no-untyped-def] - if self.SecretsManagerKmsKeyId and not isinstance(self.SecretsManagerKmsKeyId, str): + def validate_secrets_manager_kms_key_id(self) -> None: + if self.SecretsManagerKmsKeyId: + sam_expect( + self.SecretsManagerKmsKeyId, self.relative_id, "SecretsManagerKmsKeyId", is_sam_event=True + ).to_be_a_string() + + def _validate_source_access_configurations(self, supported_types: List[str], required_type: str) -> str: + """ + Validate the SourceAccessConfigurations parameter and return the URI to + be used for policy statement creation. + """ + + if not self.SourceAccessConfigurations: raise InvalidEventException( self.relative_id, - "Provided SecretsManagerKmsKeyId should be of type str.", + f"No SourceAccessConfigurations for Amazon {self.resource_type} event provided.", + ) + if not isinstance(self.SourceAccessConfigurations, list): + raise InvalidEventException( + self.relative_id, + "Provided SourceAccessConfigurations cannot be parsed into a list.", ) + required_type_uri: Optional[str] = None + for index, conf in enumerate(self.SourceAccessConfigurations): + sam_expect(conf, self.relative_id, f"SourceAccessConfigurations[{index}]", is_sam_event=True).to_be_a_map() + event_type: str = sam_expect( + conf.get("Type"), self.relative_id, f"SourceAccessConfigurations[{index}].Type", is_sam_event=True + ).to_be_a_string() + if event_type not in supported_types: + raise InvalidEventException( + self.relative_id, + f"Invalid property Type specified in SourceAccessConfigurations. The supported values are: {supported_types}.", + ) + if event_type == required_type: + if required_type_uri: + raise InvalidEventException( + self.relative_id, + f"Multiple {required_type} properties specified in SourceAccessConfigurations.", + ) + required_type_uri = conf.get("URI") + if not required_type_uri: + raise InvalidEventException( + self.relative_id, + f"No {required_type} URI property specified in SourceAccessConfigurations.", + ) + + if not required_type_uri: + raise InvalidEventException( + self.relative_id, + f"No {required_type} property specified in SourceAccessConfigurations.", + ) + return required_type_uri + + @staticmethod + def _get_kms_decrypt_policy(secrets_manager_kms_key_id: str) -> Dict[str, Any]: + return { + "Action": ["kms:Decrypt"], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:kms:${AWS::Region}:${AWS::AccountId}:key/" + + secrets_manager_kms_key_id + }, + } + class Kinesis(PullEventSource): """Kinesis event source.""" @@ -366,45 +435,8 @@ def get_policy_arn(self) -> Optional[str]: return None def get_policy_statements(self) -> Optional[List[Dict[str, Any]]]: - if not self.SourceAccessConfigurations: - raise InvalidEventException( - self.relative_id, - "No SourceAccessConfigurations for Amazon MQ event provided.", - ) - if not isinstance(self.SourceAccessConfigurations, list): - raise InvalidEventException( - self.relative_id, - "Provided SourceAccessConfigurations cannot be parsed into a list.", - ) - basic_auth_uri = None - for index, conf in enumerate(self.SourceAccessConfigurations): - sam_expect(conf, self.relative_id, f"SourceAccessConfigurations[{index}]", is_sam_event=True).to_be_a_map() - event_type: str = sam_expect( - conf.get("Type"), self.relative_id, f"SourceAccessConfigurations[{index}].Type", is_sam_event=True - ).to_be_a_string() - if event_type not in ("BASIC_AUTH", "VIRTUAL_HOST"): - raise InvalidEventException( - self.relative_id, - "Invalid property specified in SourceAccessConfigurations for Amazon MQ event.", - ) - if event_type == "BASIC_AUTH": - if basic_auth_uri: - raise InvalidEventException( - self.relative_id, - "Multiple BASIC_AUTH properties specified in SourceAccessConfigurations for Amazon MQ event.", - ) - basic_auth_uri = conf.get("URI") - if not basic_auth_uri: - raise InvalidEventException( - self.relative_id, - "No BASIC_AUTH URI property specified in SourceAccessConfigurations for Amazon MQ event.", - ) + basic_auth_uri = self._validate_source_access_configurations(["BASIC_AUTH", "VIRTUAL_HOST"], "BASIC_AUTH") - if not basic_auth_uri: - raise InvalidEventException( - self.relative_id, - "No BASIC_AUTH property specified in SourceAccessConfigurations for Amazon MQ event.", - ) document = { "PolicyName": "SamAutoGeneratedAMQPolicy", "PolicyDocument": { @@ -427,7 +459,7 @@ def get_policy_statements(self) -> Optional[List[Dict[str, Any]]]: }, } if self.SecretsManagerKmsKeyId: - self.validate_secrets_manager_kms_key_id() # type: ignore[no-untyped-call] + self.validate_secrets_manager_kms_key_id() kms_policy = { "Action": "kms:Decrypt", "Effect": "Allow", @@ -499,11 +531,11 @@ def generate_policy_document(self, source_access_configurations: List[Any]): # statements.append(vpc_permissions) if self.SecretsManagerKmsKeyId: - self.validate_secrets_manager_kms_key_id() # type: ignore[no-untyped-call] - kms_policy = self.get_kms_policy(self.SecretsManagerKmsKeyId) + self.validate_secrets_manager_kms_key_id() + kms_policy = self._get_kms_decrypt_policy(self.SecretsManagerKmsKeyId) statements.append(kms_policy) - document = { + return { "PolicyDocument": { "Statement": statements, "Version": "2012-10-17", @@ -511,8 +543,6 @@ def generate_policy_document(self, source_access_configurations: List[Any]): # "PolicyName": "SelfManagedKafkaExecutionRolePolicy", } - return document - def get_secret_key(self, source_access_configurations: List[Any]): # type: ignore[no-untyped-def] authentication_uri = None has_vpc_subnet = False @@ -592,6 +622,7 @@ def get_vpc_permission(self) -> Dict[str, Any]: } @staticmethod + @deprecated(None) def get_kms_policy(secrets_manager_kms_key_id: str) -> Dict[str, Any]: return { "Action": ["kms:Decrypt"], @@ -601,3 +632,94 @@ def get_kms_policy(secrets_manager_kms_key_id: str) -> Dict[str, Any]: + secrets_manager_kms_key_id }, } + + +class DocumentDB(PullEventSource): + """DocumentDB event source.""" + + resource_type = "DocumentDB" + property_types: Dict[str, PropertyType] = { + **PullEventSource.property_types, + "Cluster": PassThroughProperty(True), + "DatabaseName": PassThroughProperty(True), + "CollectionName": PassThroughProperty(False), + "FullDocument": PassThroughProperty(False), + } + + Cluster: PassThrough + DatabaseName: PassThrough + CollectionName: Optional[PassThrough] + FullDocument: Optional[PassThrough] + + def add_extra_eventsourcemapping_fields(self, lambda_eventsourcemapping: LambdaEventSourceMapping) -> None: + lambda_eventsourcemapping.DocumentDBEventSourceConfig = { + "DatabaseName": self.DatabaseName, + } + if self.CollectionName: + lambda_eventsourcemapping.DocumentDBEventSourceConfig["CollectionName"] = self.CollectionName # type: ignore[attr-defined] + if self.FullDocument: + lambda_eventsourcemapping.DocumentDBEventSourceConfig["FullDocument"] = self.FullDocument # type: ignore[attr-defined] + + def get_event_source_arn(self) -> Optional[PassThrough]: + return self.Cluster + + def get_policy_arn(self) -> Optional[str]: + return None + + def get_policy_statements(self) -> List[Dict[str, Any]]: + basic_auth_uri = self._validate_source_access_configurations(["BASIC_AUTH"], "BASIC_AUTH") + + statements = [ + { + "Action": [ + "secretsmanager:GetSecretValue", + ], + "Effect": "Allow", + "Resource": basic_auth_uri, + }, + { + "Action": [ + "rds:DescribeDBClusterParameters", + ], + "Effect": "Allow", + "Resource": {"Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:cluster-pg:*"}, + }, + { + "Action": [ + "rds:DescribeDBSubnetGroups", + ], + "Effect": "Allow", + "Resource": {"Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:subgrp:*"}, + }, + { + "Action": [ + "rds:DescribeDBClusters", + ], + "Effect": "Allow", + "Resource": self.Cluster, + }, + { + "Action": [ + "ec2:CreateNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DeleteNetworkInterface", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups", + ], + "Effect": "Allow", + "Resource": "*", + }, + ] + + if self.SecretsManagerKmsKeyId: + self.validate_secrets_manager_kms_key_id() + kms_policy = self._get_kms_decrypt_policy(self.SecretsManagerKmsKeyId) + statements.append(kms_policy) + + document = { + "PolicyName": "SamAutoGeneratedDocumentDBPolicy", + "PolicyDocument": {"Statement": statements}, + } + + return [document] diff --git a/samtranslator/model/eventsources/push.py b/samtranslator/model/eventsources/push.py index c80a48ac7..89345d234 100644 --- a/samtranslator/model/eventsources/push.py +++ b/samtranslator/model/eventsources/push.py @@ -5,27 +5,25 @@ from samtranslator.intrinsics.resolver import IntrinsicsResolver from samtranslator.metrics.method_decorator import cw_timer -from samtranslator.model import ResourceMacro, PropertyType -from samtranslator.model.eventsources import FUNCTION_EVETSOURCE_METRIC_PREFIX -from samtranslator.model.types import IS_DICT, is_type, list_of, dict_of, one_of, IS_STR -from samtranslator.model.intrinsics import is_intrinsic, ref, fnGetAtt, fnSub, make_shorthand, make_conditional -from samtranslator.model.tags.resource_tagging import get_tag_list - -from samtranslator.model.s3 import S3Bucket -from samtranslator.model.sns import SNSSubscription -from samtranslator.model.lambda_ import LambdaPermission +from samtranslator.model import PropertyType, ResourceMacro +from samtranslator.model.cognito import CognitoUserPool +from samtranslator.model.eventbridge_utils import EventBridgeRuleUtils from samtranslator.model.events import EventsRule +from samtranslator.model.eventsources import FUNCTION_EVETSOURCE_METRIC_PREFIX from samtranslator.model.eventsources.pull import SQS -from samtranslator.model.sqs import SQSQueue, SQSQueuePolicy, SQSQueuePolicies -from samtranslator.model.eventbridge_utils import EventBridgeRuleUtils +from samtranslator.model.exceptions import InvalidDocumentException, InvalidEventException, InvalidResourceException +from samtranslator.model.intrinsics import fnGetAtt, fnSub, is_intrinsic, make_conditional, make_shorthand, ref from samtranslator.model.iot import IotTopicRule -from samtranslator.model.cognito import CognitoUserPool -from samtranslator.schema.common import PassThrough +from samtranslator.model.lambda_ import LambdaPermission +from samtranslator.model.s3 import S3Bucket +from samtranslator.model.sns import SNSSubscription +from samtranslator.model.sqs import SQSQueue, SQSQueuePolicies, SQSQueuePolicy +from samtranslator.model.tags.resource_tagging import get_tag_list +from samtranslator.model.types import IS_DICT, IS_STR, PassThrough, dict_of, is_type, list_of, one_of +from samtranslator.open_api.open_api import OpenApiEditor +from samtranslator.swagger.swagger import SwaggerEditor from samtranslator.translator import logical_id_generator from samtranslator.translator.arn_generator import ArnGenerator -from samtranslator.model.exceptions import InvalidEventException, InvalidResourceException, InvalidDocumentException -from samtranslator.swagger.swagger import SwaggerEditor -from samtranslator.open_api.open_api import OpenApiEditor from samtranslator.utils.py27hash_fix import Py27Dict, Py27UniStr from samtranslator.validator.value_validator import sam_expect @@ -61,7 +59,7 @@ class PushEventSource(ResourceMacro, metaclass=ABCMeta): principal: str = None # type: ignore relative_id: str # overriding the Optional[str]: for event, relative id is not None - def _construct_permission( # type: ignore[no-untyped-def] + def _construct_permission( # type: ignore[no-untyped-def] # noqa: too-many-arguments self, function, source_arn=None, source_account=None, suffix="", event_source_token=None, prefix=None ): """Constructs the Lambda Permission resource allowing the source service to invoke the function this event @@ -441,7 +439,6 @@ def _inject_notification_configuration(self, function, bucket, bucket_id): # ty event_mappings = [] for event_type in event_types: - lambda_event = copy.deepcopy(base_event_mapping) lambda_event["Event"] = event_type if CONDITION in function.resource_attributes: @@ -565,7 +562,7 @@ def to_cloudformation(self, **kwargs): # type: ignore[no-untyped-def] resources.append(subscription) return resources - def _inject_subscription( + def _inject_subscription( # noqa: too-many-arguments self, protocol: str, endpoint: str, @@ -600,7 +597,7 @@ def _inject_sqs_event_source_mapping(self, function, role, queue_arn, batch_size ) event_source.Queue = queue_arn event_source.BatchSize = batch_size or 10 - event_source.Enabled = enabled or True + event_source.Enabled = True return event_source.to_cloudformation(function=function, role=role) def _inject_sqs_queue_policy(self, topic_arn, queue_arn, queue_url, function, logical_id=None): # type: ignore[no-untyped-def] @@ -654,13 +651,11 @@ def resources_to_link(self, resources): # type: ignore[no-untyped-def] explicit_api = None rest_api_id = self.get_rest_api_id_string(self.RestApiId) if isinstance(rest_api_id, str): - if ( rest_api_id in resources and "Properties" in resources[rest_api_id] and "StageName" in resources[rest_api_id]["Properties"] ): - explicit_api = resources[rest_api_id]["Properties"] permitted_stage = explicit_api["StageName"] @@ -743,7 +738,7 @@ def _get_permission(self, resources_to_link, stage, suffix): # type: ignore[no- api_id = self.RestApiId # RestApiId can be a simple string or intrinsic function like !Ref. Using Fn::Sub will handle both cases - resource = "${__ApiId__}/" + "${__Stage__}/" + method + path + resource = f"${{__ApiId__}}/${{__Stage__}}/{method}{path}" partition = ArnGenerator.get_partition_name() source_arn = fnSub( ArnGenerator.generate_arn(partition=partition, service="execute-api", resource=resource), # type: ignore[no-untyped-call] @@ -752,8 +747,9 @@ def _get_permission(self, resources_to_link, stage, suffix): # type: ignore[no- return self._construct_permission(resources_to_link["function"], source_arn=source_arn, suffix=suffix) # type: ignore[no-untyped-call] - def _add_swagger_integration(self, api, api_id, function, intrinsics_resolver): # type: ignore[no-untyped-def] - # pylint: disable=duplicate-code + def _add_swagger_integration( # type: ignore[no-untyped-def] # noqa: too-many-statements + self, api, api_id, function, intrinsics_resolver + ): """Adds the path and method for this Api event source to the Swagger body for the provided RestApi. :param model.apigateway.ApiGatewayRestApi rest_api: the RestApi to which the path and method should be added. @@ -845,7 +841,6 @@ def _add_swagger_integration(self, api, api_id, function, intrinsics_resolver): # Checking if any of the fields are defined as it can be false we are checking if the field are not None if validate_body is not None or validate_parameters is not None: - # as we are setting two different fields we are here setting as default False # In case one of them are not defined validate_body = False if validate_body is None else validate_body @@ -870,14 +865,11 @@ def _add_swagger_integration(self, api, api_id, function, intrinsics_resolver): ) if self.RequestParameters: - default_value = {"Required": False, "Caching": False} parameters = [] for parameter in self.RequestParameters: - if isinstance(parameter, dict): - parameter_name, parameter_value = next(iter(parameter.items())) if not re.match(r"method\.request\.(querystring|path|header)\.", parameter_name): @@ -889,7 +881,7 @@ def _add_swagger_integration(self, api, api_id, function, intrinsics_resolver): ) if not isinstance(parameter_value, dict) or not all( - key in REQUEST_PARAMETER_PROPERTIES for key in parameter_value.keys() + key in REQUEST_PARAMETER_PROPERTIES for key in parameter_value ): raise InvalidEventException( self.relative_id, @@ -941,7 +933,7 @@ def get_rest_api_id_string(rest_api_id: Any) -> Any: return rest_api_id["Ref"] if isinstance(rest_api_id, dict) and "Ref" in rest_api_id else rest_api_id @staticmethod - def add_auth_to_swagger( + def add_auth_to_swagger( # noqa: too-many-arguments event_auth: Dict[str, Any], api: Dict[str, Any], api_id: str, @@ -1290,14 +1282,14 @@ def _get_permission(self, resources_to_link, stage): # type: ignore[no-untyped- # Case where default exists for this function, and so the permissions for that will apply here as well # This can save us several CFN resources (not duplicating permissions) return None - else: - path = OpenApiEditor.get_path_without_trailing_slash(path) # type: ignore[no-untyped-call] + path = OpenApiEditor.get_path_without_trailing_slash(path) # type: ignore[no-untyped-call] # Handle case where Method is already the ANY ApiGateway extension - if self._method.lower() == "any" or self._method.lower() == OpenApiEditor._X_ANY_METHOD: - method = "*" - else: - method = self._method.upper() + method = ( + "*" + if self._method.lower() == "any" or self._method.lower() == OpenApiEditor._X_ANY_METHOD + else self._method.upper() + ) api_id = self.ApiId diff --git a/samtranslator/model/eventsources/scheduler.py b/samtranslator/model/eventsources/scheduler.py index 8dcb3a7ab..422f8f678 100644 --- a/samtranslator/model/eventsources/scheduler.py +++ b/samtranslator/model/eventsources/scheduler.py @@ -3,14 +3,13 @@ from samtranslator.metrics.method_decorator import cw_timer from samtranslator.model import PropertyType, Resource, ResourceMacro -from samtranslator.model.iam import IAMRole -from samtranslator.model.sqs import SQSQueue -from samtranslator.model.types import IS_DICT, IS_STR -from samtranslator.model.eventsources import FUNCTION_EVETSOURCE_METRIC_PREFIX from samtranslator.model.eventbridge_utils import EventBridgeRuleUtils +from samtranslator.model.eventsources import FUNCTION_EVETSOURCE_METRIC_PREFIX from samtranslator.model.exceptions import InvalidEventException -from samtranslator.model.iam import IAMRolePolicies +from samtranslator.model.iam import IAMRole, IAMRolePolicies from samtranslator.model.scheduler import SchedulerSchedule +from samtranslator.model.sqs import SQSQueue +from samtranslator.model.types import IS_DICT, IS_STR from samtranslator.translator.logical_id_generator import LogicalIdGenerator @@ -74,7 +73,7 @@ class SchedulerEventSource(ResourceMacro): DEFAULT_FLEXIBLE_TIME_WINDOW = {"Mode": "OFF"} - @cw_timer(prefix=FUNCTION_EVETSOURCE_METRIC_PREFIX) # type: ignore + @cw_timer(prefix=FUNCTION_EVETSOURCE_METRIC_PREFIX) def to_cloudformation(self, **kwargs: Dict[str, Any]) -> List[Resource]: """Returns the Scheduler Schedule and an IAM role. diff --git a/samtranslator/model/exceptions.py b/samtranslator/model/exceptions.py index a0d563e7e..2d9b1cbf8 100644 --- a/samtranslator/model/exceptions.py +++ b/samtranslator/model/exceptions.py @@ -1,6 +1,7 @@ from abc import ABC, abstractmethod +from collections import defaultdict from enum import Enum -from typing import List, Optional, Sequence, Union +from typing import Any, Dict, List, Optional, Sequence, Union class ExpectedType(Enum): @@ -16,12 +17,17 @@ class ExceptionWithMessage(ABC, Exception): def message(self) -> str: """Return the exception message.""" + @property + def metadata(self) -> Optional[Dict[str, Any]]: + """Return the exception metadata.""" + class InvalidDocumentException(ExceptionWithMessage): """Exception raised when the given document is invalid and cannot be transformed. Attributes: message -- explanation of the error + metadata -- a dictionary of metadata (key, value pair) causes -- list of errors which caused this document to be invalid """ @@ -37,6 +43,17 @@ def message(self) -> str: len(self.causes) ) + @property + def metadata(self) -> Dict[str, List[Any]]: + # Merge metadata in each exception to one single metadata dictionary + metadata_dict = defaultdict(list) + for cause in self.causes: + if not cause.metadata: + continue + for k, v in cause.metadata.items(): + metadata_dict[k].append(v) + return metadata_dict + @property def causes(self) -> Sequence[ExceptionWithMessage]: return self._causes @@ -86,9 +103,12 @@ class InvalidResourceException(ExceptionWithMessage): message -- explanation of the error """ - def __init__(self, logical_id: Union[str, List[str]], message: str) -> None: + def __init__( + self, logical_id: Union[str, List[str]], message: str, metadata: Optional[Dict[str, Any]] = None + ) -> None: self._logical_id = logical_id self._message = message + self._metadata = metadata def __lt__(self, other): # type: ignore[no-untyped-def] return self._logical_id < other._logical_id @@ -97,6 +117,10 @@ def __lt__(self, other): # type: ignore[no-untyped-def] def message(self) -> str: return "Resource with id [{}] is invalid. {}".format(self._logical_id, self._message) + @property + def metadata(self) -> Optional[Dict[str, Any]]: + return self._metadata + class InvalidResourcePropertyTypeException(InvalidResourceException): def __init__( diff --git a/samtranslator/model/iam.py b/samtranslator/model/iam.py index 5a7231d06..9727e3ee5 100644 --- a/samtranslator/model/iam.py +++ b/samtranslator/model/iam.py @@ -1,8 +1,8 @@ from typing import Any, Dict from samtranslator.model import PropertyType, Resource -from samtranslator.model.types import IS_DICT, is_type, IS_STR, list_of -from samtranslator.model.intrinsics import ref, fnGetAtt +from samtranslator.model.intrinsics import fnGetAtt, ref +from samtranslator.model.types import IS_DICT, IS_STR, is_type, list_of class IAMRole(Resource): @@ -35,7 +35,7 @@ class IAMManagedPolicy(Resource): class IAMRolePolicies: @classmethod def construct_assume_role_policy_for_service_principal(cls, service_principal): # type: ignore[no-untyped-def] - document = { + return { "Version": "2012-10-17", "Statement": [ { @@ -45,21 +45,19 @@ def construct_assume_role_policy_for_service_principal(cls, service_principal): } ], } - return document @classmethod def step_functions_start_execution_role_policy(cls, state_machine_arn, logical_id): # type: ignore[no-untyped-def] - document = { + return { "PolicyName": logical_id + "StartExecutionPolicy", "PolicyDocument": { "Statement": [{"Action": "states:StartExecution", "Effect": "Allow", "Resource": state_machine_arn}] }, } - return document @classmethod def stepfunctions_assume_role_policy(cls) -> Dict[str, Any]: - document = { + return { "Version": "2012-10-17", "Statement": [ { @@ -69,11 +67,10 @@ def stepfunctions_assume_role_policy(cls) -> Dict[str, Any]: } ], } - return document @classmethod def cloud_watch_log_assume_role_policy(cls) -> Dict[str, Any]: - document = { + return { "Version": "2012-10-17", "Statement": [ { @@ -83,27 +80,24 @@ def cloud_watch_log_assume_role_policy(cls) -> Dict[str, Any]: } ], } - return document @classmethod def scheduler_assume_role_policy(cls) -> Dict[str, Any]: - document = { + return { "Version": "2012-10-17", "Statement": [ {"Action": ["sts:AssumeRole"], "Effect": "Allow", "Principal": {"Service": ["scheduler.amazonaws.com"]}} ], } - return document @classmethod def lambda_assume_role_policy(cls) -> Dict[str, Any]: - document = { + return { "Version": "2012-10-17", "Statement": [ {"Action": ["sts:AssumeRole"], "Effect": "Allow", "Principal": {"Service": ["lambda.amazonaws.com"]}} ], } - return document @classmethod def dead_letter_queue_policy(cls, action: Any, resource: Any) -> Dict[str, Any]: @@ -121,36 +115,32 @@ def dead_letter_queue_policy(cls, action: Any, resource: Any) -> Dict[str, Any]: @classmethod def sqs_send_message_role_policy(cls, queue_arn: Any, logical_id: str) -> Dict[str, Any]: - document = { + return { "PolicyName": logical_id + "SQSPolicy", "PolicyDocument": {"Statement": [{"Action": "sqs:SendMessage", "Effect": "Allow", "Resource": queue_arn}]}, } - return document @classmethod def sns_publish_role_policy(cls, topic_arn: Any, logical_id: str) -> Dict[str, Any]: - document = { + return { "PolicyName": logical_id + "SNSPolicy", "PolicyDocument": {"Statement": [{"Action": "sns:publish", "Effect": "Allow", "Resource": topic_arn}]}, } - return document @classmethod def event_bus_put_events_role_policy(cls, event_bus_arn: Any, logical_id: str) -> Dict[str, Any]: - document = { + return { "PolicyName": logical_id + "EventBridgePolicy", "PolicyDocument": { "Statement": [{"Action": "events:PutEvents", "Effect": "Allow", "Resource": event_bus_arn}] }, } - return document @classmethod def lambda_invoke_function_role_policy(cls, function_arn: Any, logical_id: str) -> Dict[str, Any]: - document = { + return { "PolicyName": logical_id + "LambdaPolicy", "PolicyDocument": { "Statement": [{"Action": "lambda:InvokeFunction", "Effect": "Allow", "Resource": function_arn}] }, } - return document diff --git a/samtranslator/model/intrinsics.py b/samtranslator/model/intrinsics.py index 343c6a237..0ef886dad 100644 --- a/samtranslator/model/intrinsics.py +++ b/samtranslator/model/intrinsics.py @@ -1,4 +1,8 @@ -from typing import Any, Dict, Iterable, List, Union, Optional +from typing import Any, Dict, Iterable, List, Optional, Union + +MIN_NUM_CONDITIONS_TO_COMBINE = 2 +_NUM_ARGUMENTS_REQUIRED_IN_IF = 3 +_NUM_ARGUMENTS_REQUIRED_IN_GETATT = 2 def fnGetAtt(logical_name: str, attribute_name: str) -> Dict[str, List[str]]: @@ -47,14 +51,12 @@ def make_condition_or_list(conditions_list: Iterable[Any]) -> List[Dict[str, Any def make_or_condition(conditions_list: Iterable[Any]) -> Dict[str, List[Dict[str, Any]]]: or_list = make_condition_or_list(conditions_list) - condition = fnOr(or_list) - return condition + return fnOr(or_list) def make_and_condition(conditions_list: Iterable[Any]) -> Dict[str, List[Dict[str, Any]]]: and_list = make_condition_or_list(conditions_list) - condition = fnAnd(and_list) - return condition + return fnAnd(and_list) def calculate_number_of_conditions(conditions_length: int, max_conditions: int) -> int: @@ -72,8 +74,7 @@ def calculate_number_of_conditions(conditions_length: int, max_conditions: int) :param int max_conditions: maximum number of conditions that can be put in an Fn::Or statement :return: the number (int) of necessary additional conditions. """ - num_conditions = 1 + (conditions_length - 2) // (max_conditions - 1) - return num_conditions + return 1 + (conditions_length - 2) // (max_conditions - 1) def make_combined_condition( @@ -88,8 +89,8 @@ def make_combined_condition( :param string condition_name: base name desired for new condition :return: dictionary of condition_name: condition_value """ - if len(conditions_list) < 2: - # Can't make a condition if <2 conditions provided. + if len(conditions_list) < MIN_NUM_CONDITIONS_TO_COMBINE: + # Can't make a condition not enough conditions are provided. return None # Total number of conditions allows in an Fn::Or statement. See docs: @@ -145,7 +146,6 @@ def is_intrinsic(_input: Any) -> bool: """ if _input is not None and isinstance(_input, dict) and len(_input) == 1: - key: str = list(_input.keys())[0] return key == "Ref" or key == "Condition" or key.startswith("Fn::") @@ -182,8 +182,8 @@ def validate_intrinsic_if_items(items: Any) -> None: ValueError If the items are invalid """ - if not isinstance(items, list) or len(items) != 3: - raise ValueError("Fn::If requires 3 arguments") + if not isinstance(items, list) or len(items) != _NUM_ARGUMENTS_REQUIRED_IN_IF: + raise ValueError(f"Fn::If requires {_NUM_ARGUMENTS_REQUIRED_IN_IF} arguments") def is_intrinsic_no_value(_input: Any) -> bool: @@ -219,13 +219,13 @@ def get_logical_id_from_intrinsic(_input: Any) -> Optional[str]: # Fn::GetAtt: [, ] v = _input.get("Fn::GetAtt") - if isinstance(v, list) and len(v) == 2 and isinstance(v[0], str): + if isinstance(v, list) and len(v) == _NUM_ARGUMENTS_REQUIRED_IN_GETATT and isinstance(v[0], str): return v[0] # Fn::GetAtt: . if isinstance(v, str): tokens = v.split(".") - if len(tokens) == 2: + if len(tokens) == _NUM_ARGUMENTS_REQUIRED_IN_GETATT: return tokens[0] return None diff --git a/samtranslator/model/iot.py b/samtranslator/model/iot.py index 55fea051c..7aa8b1ac8 100644 --- a/samtranslator/model/iot.py +++ b/samtranslator/model/iot.py @@ -1,6 +1,6 @@ from samtranslator.model import PropertyType, Resource +from samtranslator.model.intrinsics import fnGetAtt, ref from samtranslator.model.types import IS_DICT -from samtranslator.model.intrinsics import ref, fnGetAtt class IotTopicRule(Resource): diff --git a/samtranslator/model/lambda_.py b/samtranslator/model/lambda_.py index 6929e43b0..cd46940db 100644 --- a/samtranslator/model/lambda_.py +++ b/samtranslator/model/lambda_.py @@ -1,7 +1,8 @@ -from typing import Optional, Dict, Any, List, Union -from samtranslator.model import PropertyType, Resource, PassThroughProperty -from samtranslator.model.types import IS_DICT, is_type, one_of, IS_STR, list_of, any_type +from typing import Any, Dict, List, Optional, Union + +from samtranslator.model import PassThroughProperty, PropertyType, Resource from samtranslator.model.intrinsics import fnGetAtt, ref +from samtranslator.model.types import IS_DICT, IS_STR, any_type, is_type, list_of, one_of from samtranslator.utils.types import Intrinsicable @@ -94,6 +95,7 @@ class LambdaEventSourceMapping(Resource): resource_type = "AWS::Lambda::EventSourceMapping" property_types = { "BatchSize": PropertyType(False, is_type(int)), + "DocumentDBEventSourceConfig": PropertyType(False, IS_DICT), "Enabled": PropertyType(False, is_type(bool)), "EventSourceArn": PropertyType(False, IS_STR), "FunctionName": PropertyType(True, IS_STR), diff --git a/samtranslator/model/log.py b/samtranslator/model/log.py index 45c045bc5..42615587d 100644 --- a/samtranslator/model/log.py +++ b/samtranslator/model/log.py @@ -1,6 +1,6 @@ from samtranslator.model import PropertyType, Resource -from samtranslator.model.types import IS_STR from samtranslator.model.intrinsics import fnGetAtt, ref +from samtranslator.model.types import IS_STR class SubscriptionFilter(Resource): diff --git a/samtranslator/model/preferences/deployment_preference_collection.py b/samtranslator/model/preferences/deployment_preference_collection.py index de2c6f560..8c517d337 100644 --- a/samtranslator/model/preferences/deployment_preference_collection.py +++ b/samtranslator/model/preferences/deployment_preference_collection.py @@ -1,23 +1,23 @@ -from typing import Any, Dict, Optional, cast, List, Union +import copy +from typing import Any, Dict, List, Optional, Union, cast -from .deployment_preference import DeploymentPreference -from samtranslator.model.codedeploy import CodeDeployApplication -from samtranslator.model.codedeploy import CodeDeployDeploymentGroup +from samtranslator.model.codedeploy import CodeDeployApplication, CodeDeployDeploymentGroup from samtranslator.model.exceptions import InvalidResourceException from samtranslator.model.iam import IAMRole from samtranslator.model.intrinsics import ( + fnGetAtt, fnSub, is_intrinsic, is_intrinsic_if, is_intrinsic_no_value, - validate_intrinsic_if_items, make_combined_condition, ref, - fnGetAtt, + validate_intrinsic_if_items, ) from samtranslator.model.update_policy import UpdatePolicy from samtranslator.translator.arn_generator import ArnGenerator -import copy + +from .deployment_preference import DeploymentPreference CODE_DEPLOY_SERVICE_ROLE_LOGICAL_ID = "CodeDeployServiceRole" CODEDEPLOY_APPLICATION_LOGICAL_ID = "ServerlessDeploymentApplication" @@ -278,7 +278,7 @@ def _replace_deployment_types(self, value, key=None): # type: ignore[no-untyped value[i] = self._replace_deployment_types(v) # type: ignore[no-untyped-call] return value if is_intrinsic(value): - for (k, v) in value.items(): + for k, v in value.items(): value[k] = self._replace_deployment_types(v, k) # type: ignore[no-untyped-call] return value if value in CODEDEPLOY_PREDEFINED_CONFIGURATIONS_LIST: diff --git a/samtranslator/model/resource_policies.py b/samtranslator/model/resource_policies.py index 492dafe2c..39af92577 100644 --- a/samtranslator/model/resource_policies.py +++ b/samtranslator/model/resource_policies.py @@ -1,14 +1,14 @@ -from enum import Enum from collections import namedtuple -from typing import Dict, Any, List +from enum import Enum +from typing import Any, Dict, List +from samtranslator.model.exceptions import InvalidTemplateException from samtranslator.model.intrinsics import ( is_intrinsic, is_intrinsic_if, is_intrinsic_no_value, validate_intrinsic_if_items, ) -from samtranslator.model.exceptions import InvalidTemplateException PolicyEntry = namedtuple("PolicyEntry", "data type") diff --git a/samtranslator/model/role_utils/role_constructor.py b/samtranslator/model/role_utils/role_constructor.py index ff92f44a5..d86eccf61 100644 --- a/samtranslator/model/role_utils/role_constructor.py +++ b/samtranslator/model/role_utils/role_constructor.py @@ -1,10 +1,10 @@ +from samtranslator.model.exceptions import InvalidResourceException from samtranslator.model.iam import IAMRole -from samtranslator.model.resource_policies import PolicyTypes from samtranslator.model.intrinsics import is_intrinsic_if, is_intrinsic_no_value -from samtranslator.model.exceptions import InvalidResourceException +from samtranslator.model.resource_policies import PolicyTypes -def construct_role_for_resource( # type: ignore[no-untyped-def] +def construct_role_for_resource( # type: ignore[no-untyped-def] # noqa: too-many-arguments resource_logical_id, attributes, managed_policy_map, @@ -44,9 +44,7 @@ def construct_role_for_resource( # type: ignore[no-untyped-def] for index, policy_entry in enumerate(resource_policies.get()): if policy_entry.type is PolicyTypes.POLICY_STATEMENT: - if is_intrinsic_if(policy_entry.data): - intrinsic_if = policy_entry.data then_statement = intrinsic_if["Fn::If"][1] else_statement = intrinsic_if["Fn::If"][2] @@ -76,7 +74,6 @@ def construct_role_for_resource( # type: ignore[no-untyped-def] ) elif policy_entry.type is PolicyTypes.MANAGED_POLICY: - # There are three options: # Managed Policy Name (string): Try to convert to Managed Policy ARN # Managed Policy Arn (string): Insert it directly into the list diff --git a/samtranslator/model/route53.py b/samtranslator/model/route53.py index 1dba60a55..36dc12a6f 100644 --- a/samtranslator/model/route53.py +++ b/samtranslator/model/route53.py @@ -1,7 +1,7 @@ from typing import Any, List, Optional from samtranslator.model import PropertyType, Resource -from samtranslator.model.types import is_type, IS_STR +from samtranslator.model.types import IS_STR, is_type from samtranslator.utils.types import Intrinsicable diff --git a/samtranslator/model/s3.py b/samtranslator/model/s3.py index bdbd9feb9..147f4dcda 100644 --- a/samtranslator/model/s3.py +++ b/samtranslator/model/s3.py @@ -1,6 +1,6 @@ from samtranslator.model import PropertyType, Resource -from samtranslator.model.types import IS_DICT, is_type, IS_STR, any_type -from samtranslator.model.intrinsics import ref, fnGetAtt +from samtranslator.model.intrinsics import fnGetAtt, ref +from samtranslator.model.types import IS_DICT, IS_STR, any_type, is_type class S3Bucket(Resource): diff --git a/samtranslator/model/s3_utils/uri_parser.py b/samtranslator/model/s3_utils/uri_parser.py index c8e0f1c4a..63ce19f26 100644 --- a/samtranslator/model/s3_utils/uri_parser.py +++ b/samtranslator/model/s3_utils/uri_parser.py @@ -1,5 +1,6 @@ from typing import Any, Dict, Optional, Union -from urllib.parse import urlparse, parse_qs +from urllib.parse import parse_qs, urlparse + from samtranslator.model.exceptions import InvalidResourceException diff --git a/samtranslator/model/sam_resources.py b/samtranslator/model/sam_resources.py index 6c771fd04..1c7b26602 100644 --- a/samtranslator/model/sam_resources.py +++ b/samtranslator/model/sam_resources.py @@ -1,88 +1,93 @@ """ SAM macro definitions """ import copy -from typing import Any, cast, Dict, List, Optional, Tuple, Union, Callable -from samtranslator.intrinsics.resolver import IntrinsicsResolver -from samtranslator.feature_toggle.feature_toggle import FeatureToggle -from samtranslator.model.connector.connector import ( - ConnectorResourceReference, - ConnectorResourceError, - add_depends_on, - replace_depends_on_logical_id, - get_event_source_mappings, - get_resource_reference, -) -from samtranslator.model.connector_profiles.profile import ( - ConnectorProfile, - profile_replace, - get_profile, - verify_profile_variables_replaced, -) +from contextlib import suppress +from typing import Any, Callable, Dict, List, Optional, Tuple, Union, cast import samtranslator.model.eventsources +import samtranslator.model.eventsources.cloudwatchlogs import samtranslator.model.eventsources.pull import samtranslator.model.eventsources.push -import samtranslator.model.eventsources.cloudwatchlogs import samtranslator.model.eventsources.scheduler -from .api.api_generator import ApiGenerator -from .api.http_api_generator import HttpApiGenerator -from .packagetype import ZIP, IMAGE -from .s3_utils.uri_parser import construct_s3_location_object, construct_image_code_object -from .tags.resource_tagging import get_tag_list +from samtranslator.feature_toggle.feature_toggle import FeatureToggle +from samtranslator.intrinsics.resolver import IntrinsicsResolver from samtranslator.metrics.method_decorator import cw_timer from samtranslator.model import ( - ResourceResolver, PassThroughProperty, + Property, PropertyType, - SamResourceMacro, Resource, + ResourceResolver, ResourceTypeResolver, + SamResourceMacro, ) from samtranslator.model.apigateway import ( + ApiGatewayApiKey, ApiGatewayDeployment, - ApiGatewayStage, ApiGatewayDomainName, + ApiGatewayStage, ApiGatewayUsagePlan, ApiGatewayUsagePlanKey, - ApiGatewayApiKey, ) -from samtranslator.model.apigatewayv2 import ApiGatewayV2Stage, ApiGatewayV2DomainName +from samtranslator.model.apigatewayv2 import ApiGatewayV2DomainName, ApiGatewayV2Stage from samtranslator.model.architecture import ARM64, X86_64 from samtranslator.model.cloudformation import NestedStack +from samtranslator.model.connector.connector import ( + UNSUPPORTED_CONNECTOR_PROFILE_TYPE, + ConnectorResourceError, + ConnectorResourceReference, + add_depends_on, + get_event_source_mappings, + get_resource_reference, + replace_depends_on_logical_id, +) +from samtranslator.model.connector_profiles.profile import ( + ConnectorProfile, + get_profile, + profile_replace, + verify_profile_variables_replaced, +) from samtranslator.model.dynamodb import DynamoDBTable from samtranslator.model.exceptions import InvalidEventException, InvalidResourceException -from samtranslator.model.preferences.deployment_preference_collection import DeploymentPreferenceCollection -from samtranslator.model.resource_policies import ResourcePolicies -from samtranslator.model.iam import IAMManagedPolicy, IAMRolePolicies, IAMRole -from samtranslator.model.lambda_ import ( - LambdaFunction, - LambdaVersion, - LambdaAlias, - LambdaLayerVersion, - LambdaEventInvokeConfig, - LambdaUrl, - LambdaPermission, -) -from samtranslator.model.types import dict_of, IS_STR, is_type, IS_DICT, list_of, one_of, any_type -from samtranslator.translator import logical_id_generator -from samtranslator.translator.arn_generator import ArnGenerator +from samtranslator.model.iam import IAMManagedPolicy, IAMRole, IAMRolePolicies from samtranslator.model.intrinsics import ( is_intrinsic, is_intrinsic_if, is_intrinsic_no_value, - ref, - make_not_conditional, - make_conditional, make_and_condition, + make_conditional, + make_not_conditional, + ref, ) -from samtranslator.model.sqs import SQSQueue, SQSQueuePolicy +from samtranslator.model.lambda_ import ( + LambdaAlias, + LambdaEventInvokeConfig, + LambdaFunction, + LambdaLayerVersion, + LambdaPermission, + LambdaUrl, + LambdaVersion, +) +from samtranslator.model.preferences.deployment_preference_collection import DeploymentPreferenceCollection +from samtranslator.model.resource_policies import ResourcePolicies +from samtranslator.model.role_utils import construct_role_for_resource from samtranslator.model.sns import SNSTopic, SNSTopicPolicy +from samtranslator.model.sqs import SQSQueue, SQSQueuePolicy from samtranslator.model.stepfunctions import StateMachineGenerator -from samtranslator.model.role_utils import construct_role_for_resource +from samtranslator.model.types import IS_DICT, IS_STR, PassThrough, any_type, dict_of, is_type, list_of, one_of from samtranslator.model.xray_utils import get_xray_managed_policy_name +from samtranslator.translator import logical_id_generator +from samtranslator.translator.arn_generator import ArnGenerator from samtranslator.utils.types import Intrinsicable -from samtranslator.schema.common import PassThrough from samtranslator.validator.value_validator import sam_expect +from .api.api_generator import ApiGenerator +from .api.http_api_generator import HttpApiGenerator +from .packagetype import IMAGE, ZIP +from .s3_utils.uri_parser import construct_image_code_object, construct_s3_location_object +from .tags.resource_tagging import get_tag_list + +_CONDITION_CHAR_LIMIT = 255 + class SamFunction(SamResourceMacro): """SAM function macro.""" @@ -119,6 +124,7 @@ class SamFunction(SamResourceMacro): # Intrinsic functions in value of Alias property are not supported, yet "AutoPublishAlias": PropertyType(False, one_of(IS_STR)), "AutoPublishCodeSha256": PropertyType(False, one_of(IS_STR)), + "AutoPublishAliasAllProperties": Property(False, is_type(bool)), "VersionDescription": PropertyType(False, IS_STR), "ProvisionedConcurrencyConfig": PropertyType(False, IS_DICT), "FileSystemConfigs": PropertyType(False, list_of(IS_DICT)), @@ -159,6 +165,7 @@ class SamFunction(SamResourceMacro): EphemeralStorage: Optional[Dict[str, Any]] AutoPublishAlias: Optional[Intrinsicable[str]] AutoPublishCodeSha256: Optional[Intrinsicable[str]] + AutoPublishAliasAllProperties: Optional[bool] VersionDescription: Optional[Intrinsicable[str]] ProvisionedConcurrencyConfig: Optional[Dict[str, Any]] FileSystemConfigs: Optional[Dict[str, Any]] @@ -219,12 +226,11 @@ def to_cloudformation(self, **kwargs): # type: ignore[no-untyped-def] lambda_function = self._construct_lambda_function() resources.append(lambda_function) - if self.ProvisionedConcurrencyConfig: - if not self.AutoPublishAlias: - raise InvalidResourceException( - self.logical_id, - "To set ProvisionedConcurrencyConfig AutoPublishALias must be defined on the function", - ) + if self.ProvisionedConcurrencyConfig and not self.AutoPublishAlias: + raise InvalidResourceException( + self.logical_id, + "To set ProvisionedConcurrencyConfig AutoPublishALias must be defined on the function", + ) lambda_alias: Optional[LambdaAlias] = None alias_name = "" @@ -292,7 +298,7 @@ def to_cloudformation(self, **kwargs): # type: ignore[no-untyped-def] return resources - def _construct_event_invoke_config( + def _construct_event_invoke_config( # noqa: too-many-arguments self, function_name: str, alias_name: str, @@ -311,14 +317,13 @@ def _construct_event_invoke_config( resolved_event_invoke_config = intrinsics_resolver.resolve_parameter_refs(self.EventInvokeConfig) logical_id = "{id}EventInvokeConfig".format(id=function_name) - if lambda_alias: - lambda_event_invoke_config = LambdaEventInvokeConfig( + lambda_event_invoke_config = ( + LambdaEventInvokeConfig( logical_id=logical_id, depends_on=[lambda_alias.logical_id], attributes=self.resource_attributes ) - else: - lambda_event_invoke_config = LambdaEventInvokeConfig( - logical_id=logical_id, attributes=self.resource_attributes - ) + if lambda_alias + else LambdaEventInvokeConfig(logical_id=logical_id, attributes=self.resource_attributes) + ) dest_config = {} input_dest_config = resolved_event_invoke_config.get("DestinationConfig") @@ -395,10 +400,11 @@ def _validate_and_inject_resource( if resource: if combined_condition: resource.set_resource_attribute("Condition", combined_condition) - if property_condition: - destination = make_conditional(property_condition, resource.get_runtime_attr("arn"), dest_arn) - else: - destination = resource.get_runtime_attr("arn") + destination = ( + make_conditional(property_condition, resource.get_runtime_attr("arn"), dest_arn) + if property_condition + else resource.get_runtime_attr("arn") + ) policy = self._add_event_invoke_managed_policy(dest_config, resource_logical_id, destination) else: raise InvalidResourceException( @@ -454,11 +460,11 @@ def _get_or_make_condition(self, destination: Any, logical_id: str, conditions: return None, None def _make_gen_condition_name(self, name: str, hash_input: str) -> str: - # Make sure the property name is not over 255 characters (CFN limit) + # Make sure the property name is not over CFN limit (currently 255) hash_digest = logical_id_generator.LogicalIdGenerator("", hash_input).gen() condition_name: str = name + hash_digest - if len(condition_name) > 255: - return input(condition_name)[:255] + if len(condition_name) > _CONDITION_CHAR_LIMIT: + return input(condition_name)[:_CONDITION_CHAR_LIMIT] return condition_name def _get_resolved_alias_name( @@ -539,18 +545,18 @@ def _construct_lambda_function(self) -> LambdaFunction: def _add_event_invoke_managed_policy( self, dest_config: Dict[str, Any], logical_id: str, dest_arn: Any ) -> Dict[str, Any]: - policy = {} if dest_config and dest_config.get("Type"): - if dest_config.get("Type") == "SQS": - policy = IAMRolePolicies.sqs_send_message_role_policy(dest_arn, logical_id) - if dest_config.get("Type") == "SNS": - policy = IAMRolePolicies.sns_publish_role_policy(dest_arn, logical_id) + _type = dest_config.get("Type") + if _type == "SQS": + return IAMRolePolicies.sqs_send_message_role_policy(dest_arn, logical_id) + if _type == "SNS": + return IAMRolePolicies.sns_publish_role_policy(dest_arn, logical_id) # Event Bridge and Lambda Arns are passthrough. - if dest_config.get("Type") == "EventBridge": - policy = IAMRolePolicies.event_bus_put_events_role_policy(dest_arn, logical_id) - if dest_config.get("Type") == "Lambda": - policy = IAMRolePolicies.lambda_invoke_function_role_policy(dest_arn, logical_id) - return policy + if _type == "EventBridge": + return IAMRolePolicies.event_bus_put_events_role_policy(dest_arn, logical_id) + if _type == "Lambda": + return IAMRolePolicies.lambda_invoke_function_role_policy(dest_arn, logical_id) + return {} def _construct_role( self, managed_policy_map: Dict[str, Any], event_invoke_policies: List[Dict[str, Any]] @@ -562,10 +568,11 @@ def _construct_role( """ role_attributes = self.get_passthrough_resource_attributes() - if self.AssumeRolePolicyDocument is not None: - assume_role_policy_document = self.AssumeRolePolicyDocument - else: - assume_role_policy_document = IAMRolePolicies.lambda_assume_role_policy() + assume_role_policy_document = ( + self.AssumeRolePolicyDocument + if self.AssumeRolePolicyDocument is not None + else IAMRolePolicies.lambda_assume_role_policy() + ) managed_policy_arns = [ArnGenerator.generate_aws_managed_policy_arn("service-role/AWSLambdaBasicExecutionRole")] if self.Tracing: @@ -591,11 +598,10 @@ def _construct_role( ) ) - if self.EventInvokeConfig: - if event_invoke_policies is not None: - policy_documents.extend(event_invoke_policies) + if self.EventInvokeConfig and event_invoke_policies is not None: + policy_documents.extend(event_invoke_policies) - execution_role = construct_role_for_resource( + return construct_role_for_resource( resource_logical_id=self.logical_id, attributes=role_attributes, managed_policy_map=managed_policy_map, @@ -607,7 +613,6 @@ def _construct_role( permissions_boundary=self.PermissionsBoundary, tags=self._construct_tag_list(self.Tags), ) - return execution_role def _validate_package_type(self, lambda_function: LambdaFunction) -> None: """ @@ -699,7 +704,7 @@ def _validate_dlq(self, dead_letter_queue: Dict[str, Any]) -> None: sam_expect(dlq_type, self.logical_id, "DeadLetterQueue.Type").to_be_a_string() # Validate required Types - if not dlq_type in self.dead_letter_queue_policy_actions: + if dlq_type not in self.dead_letter_queue_policy_actions: raise InvalidResourceException( self.logical_id, "'DeadLetterQueue' requires Type of {}".format(valid_dlq_types) ) @@ -874,11 +879,14 @@ def _construct_version( # and next hashes. The chances that two subsequent hashes collide is fairly low. prefix = "{id}Version".format(id=self.logical_id) logical_dict = {} - try: - logical_dict = code_dict.copy() - except (AttributeError, UnboundLocalError): - pass + # We can't directly change AutoPublishAlias as that would be a breaking change, so we have to add this opt-in + # property that when set to true would change the lambda version whenever a property in the lambda function changes + if self.AutoPublishAliasAllProperties: + properties = function._generate_resource_dict().get("Properties", {}) + logical_dict = properties else: + with suppress(AttributeError, UnboundLocalError): + logical_dict = code_dict.copy() if function.Environment: logical_dict.update(function.Environment) if function.MemorySize: @@ -923,7 +931,7 @@ def _construct_alias(self, name: str, function: LambdaFunction, version: LambdaV return alias - def _validate_deployment_preference_and_add_update_policy( + def _validate_deployment_preference_and_add_update_policy( # noqa: too-many-arguments self, deployment_preference_collection: DeploymentPreferenceCollection, lambda_alias: Optional[LambdaAlias], @@ -1358,7 +1366,7 @@ def to_cloudformation(self, **kwargs): # type: ignore[no-untyped-def] :returns: a list of vanilla CloudFormation Resources, to which this Function expands :rtype: list """ - resources = [] + resources: List[Resource] = [] intrinsics_resolver = kwargs["intrinsics_resolver"] self.CorsConfiguration = intrinsics_resolver.resolve_parameter_refs(self.CorsConfiguration) self.Domain = intrinsics_resolver.resolve_parameter_refs(self.Domain) @@ -1526,12 +1534,9 @@ def _get_application_tags(self) -> Dict[str, str]: """Adds tags to the stack if this resource is using the serverless app repo""" application_tags = {} if isinstance(self.Location, dict): - if self.APPLICATION_ID_KEY in self.Location.keys() and self.Location[self.APPLICATION_ID_KEY] is not None: + if self.APPLICATION_ID_KEY in self.Location and self.Location[self.APPLICATION_ID_KEY] is not None: application_tags[self._SAR_APP_KEY] = self.Location[self.APPLICATION_ID_KEY] - if ( - self.SEMANTIC_VERSION_KEY in self.Location.keys() - and self.Location[self.SEMANTIC_VERSION_KEY] is not None - ): + if self.SEMANTIC_VERSION_KEY in self.Location and self.Location[self.SEMANTIC_VERSION_KEY] is not None: application_tags[self._SAR_SEMVER_KEY] = self.Location[self.SEMANTIC_VERSION_KEY] return application_tags @@ -1694,7 +1699,7 @@ def _validate_architectures(self, lambda_layer: LambdaLayerVersion) -> None: return for arq in architectures: # We validate the values only if we they're not intrinsics - if not is_intrinsic(arq) and not arq in [ARM64, X86_64]: + if not is_intrinsic(arq) and arq not in [ARM64, X86_64]: raise InvalidResourceException( lambda_layer.logical_id, "CompatibleArchitectures needs to be a list of '{}' or '{}'".format(X86_64, ARM64), @@ -1770,8 +1775,7 @@ def to_cloudformation(self, **kwargs): # type: ignore[no-untyped-def] passthrough_resource_attributes=self.get_passthrough_resource_attributes(), ) - resources = state_machine_generator.to_cloudformation() - return resources + return state_machine_generator.to_cloudformation() def resources_to_link(self, resources: Dict[str, Any]) -> Dict[str, Any]: try: @@ -1801,32 +1805,64 @@ class SamConnector(SamResourceMacro): """ Source: Dict[str, Any] - Destination: Dict[str, Any] + Destination: Union[Dict[str, Any], List[Dict[str, Any]]] Permissions: List[str] resource_type = "AWS::Serverless::Connector" property_types = { "Source": PropertyType(True, dict_of(IS_STR, any_type())), - "Destination": PropertyType(True, dict_of(IS_STR, any_type())), + "Destination": PropertyType(True, one_of(dict_of(IS_STR, any_type()), list_of(dict_of(IS_STR, any_type())))), "Permissions": PropertyType(True, list_of(IS_STR)), } @cw_timer - def to_cloudformation(self, **kwargs: Any) -> List[Resource]: # type: ignore + def to_cloudformation(self, **kwargs: Any) -> List[Resource]: resource_resolver: ResourceResolver = kwargs["resource_resolver"] original_template = kwargs["original_template"] - try: - destination = get_resource_reference(self.Destination, resource_resolver, self.Source) - source = get_resource_reference(self.Source, resource_resolver, self.Destination) - except ConnectorResourceError as e: - raise InvalidResourceException(self.logical_id, str(e)) from e + multi_dest = True + if isinstance(self.Destination, dict): + multi_dest = False + self.Destination = [self.Destination] + list_generated_resources: List[Resource] = [] + + for dest_index, dest in enumerate(self.Destination): + try: + destination = get_resource_reference(dest, resource_resolver, self.Source) + source = get_resource_reference(self.Source, resource_resolver, dest) + except ConnectorResourceError as e: + raise InvalidResourceException(self.logical_id, str(e)) from e + + generated_resources = self.generate_resources( + source, destination, dest_index, multi_dest, resource_resolver + ) + + self._add_connector_metadata(generated_resources, original_template, source, destination) + list_generated_resources.extend(generated_resources) + + generated_logical_ids = [resource.logical_id for resource in list_generated_resources] + replace_depends_on_logical_id(self.logical_id, generated_logical_ids, resource_resolver) + + if list_generated_resources: + return list_generated_resources + + raise InvalidResourceException(self.logical_id, "'Destination' is an empty list") + + def generate_resources( # noqa: too-many-branches + self, + source: ConnectorResourceReference, + destination: ConnectorResourceReference, + dest_index: int, + multi_dest: bool, + resource_resolver: ResourceResolver, + ) -> List[Resource]: profile = get_profile(source.resource_type, destination.resource_type) if not profile: raise InvalidResourceException( self.logical_id, f"Unable to create connector from {source.resource_type} to {destination.resource_type}; it's not supported or the template is invalid.", + {UNSUPPORTED_CONNECTOR_PROFILE_TYPE: {source.resource_type: destination.resource_type}}, ) # removing duplicate permissions @@ -1836,7 +1872,6 @@ def to_cloudformation(self, **kwargs: Any) -> List[Resource]: # type: ignore valid_permissions_combinations = profile_properties.get("ValidAccessCategories") valid_permissions_str = ", ".join(profile_permissions) - if not self.Permissions: raise InvalidResourceException( self.logical_id, @@ -1847,7 +1882,7 @@ def to_cloudformation(self, **kwargs: Any) -> List[Resource]: # type: ignore if permission not in profile_permissions: raise InvalidResourceException( self.logical_id, - f"Unsupported 'Permissions' provided; valid values are: {valid_permissions_str}.", + f"Unsupported 'Permissions' provided for connector from {source.resource_type} to {destination.resource_type}; valid values are: {valid_permissions_str}.", ) if valid_permissions_combinations: @@ -1858,7 +1893,7 @@ def to_cloudformation(self, **kwargs: Any) -> List[Resource]: # type: ignore ) raise InvalidResourceException( self.logical_id, - f"Unsupported 'Permissions' provided; valid combinations are: {valid_permissions_combination_str}.", + f"Unsupported 'Permissions' provided for connector from {source.resource_type} to {destination.resource_type}; valid combinations are: {valid_permissions_combination_str}.", ) replacement = { @@ -1881,26 +1916,27 @@ def to_cloudformation(self, **kwargs: Any) -> List[Resource]: # type: ignore generated_resources: List[Resource] = [] if profile_type == "AWS_IAM_ROLE_MANAGED_POLICY": generated_resources.append( - self._construct_iam_policy(source, destination, profile_properties, resource_resolver) + self._construct_iam_policy( + source, destination, profile_properties, resource_resolver, dest_index, multi_dest + ) + ) + elif profile_type == "AWS_SQS_QUEUE_POLICY": + generated_resources.append( + self._construct_sqs_queue_policy(source, destination, profile_properties, dest_index, multi_dest) + ) + elif profile_type == "AWS_SNS_TOPIC_POLICY": + generated_resources.append( + self._construct_sns_topic_policy(source, destination, profile_properties, dest_index, multi_dest) ) - if profile_type == "AWS_SQS_QUEUE_POLICY": - generated_resources.append(self._construct_sqs_queue_policy(source, destination, profile_properties)) - if profile_type == "AWS_SNS_TOPIC_POLICY": - generated_resources.append(self._construct_sns_topic_policy(source, destination, profile_properties)) - if profile_type == "AWS_LAMBDA_PERMISSION": + elif profile_type == "AWS_LAMBDA_PERMISSION": generated_resources.extend( - self._construct_lambda_permission_policy(source, destination, profile_properties) + self._construct_lambda_permission_policy( + source, destination, profile_properties, dest_index, multi_dest + ) ) - - generated_logical_ids = [resource.logical_id for resource in generated_resources] - replace_depends_on_logical_id(self.logical_id, generated_logical_ids, resource_resolver) - - self._add_connector_metadata(generated_resources, original_template, source, destination) - if generated_resources: - return generated_resources - - # Should support all profile types - raise TypeError(f"Unknown profile policy type '{profile_type}'") + else: + raise TypeError(f"Profile type {profile_type} is not supported") + return generated_resources def _get_policy_statements(self, profile: ConnectorProfile) -> Dict[str, Any]: policy_statements = [] @@ -1913,12 +1949,14 @@ def _get_policy_statements(self, profile: ConnectorProfile) -> Dict[str, Any]: "Statement": policy_statements, } - def _construct_iam_policy( + def _construct_iam_policy( # noqa: too-many-arguments self, source: ConnectorResourceReference, destination: ConnectorResourceReference, profile: ConnectorProfile, resource_resolver: ResourceResolver, + dest_index: int, + multi_dest: bool, ) -> IAMManagedPolicy: source_policy = profile["SourcePolicy"] resource = source if source_policy else destination @@ -1931,21 +1969,24 @@ def _construct_iam_policy( ) policy_document = self._get_policy_statements(profile) - policy = IAMManagedPolicy(f"{self.logical_id}Policy") + + policy_name = f"{self.logical_id}PolicyDestination{dest_index}" if multi_dest else f"{self.logical_id}Policy" + policy = IAMManagedPolicy( + logical_id=policy_name, depends_on=self.depends_on, attributes=self.resource_attributes + ) + policy.PolicyDocument = policy_document policy.Roles = [role_name] depended_by = profile.get("DependedBy") - if depended_by == "DESTINATION_EVENT_SOURCE_MAPPING": - if source.logical_id and destination.logical_id: - # The dependency type assumes Destination is a AWS::Lambda::Function - esm_ids = list(get_event_source_mappings(source.logical_id, destination.logical_id, resource_resolver)) - # There can only be a single ESM from a resource to function, otherwise deployment fails - if len(esm_ids) == 1: - add_depends_on(esm_ids[0], policy.logical_id, resource_resolver) - if depended_by == "SOURCE": - if source.logical_id: - add_depends_on(source.logical_id, policy.logical_id, resource_resolver) + if depended_by == "DESTINATION_EVENT_SOURCE_MAPPING" and source.logical_id and destination.logical_id: + # The dependency type assumes Destination is a AWS::Lambda::Function + esm_ids = list(get_event_source_mappings(source.logical_id, destination.logical_id, resource_resolver)) + # There can only be a single ESM from a resource to function, otherwise deployment fails + if len(esm_ids) == 1: + add_depends_on(esm_ids[0], policy.logical_id, resource_resolver) + if depended_by == "SOURCE" and source.logical_id: + add_depends_on(source.logical_id, policy.logical_id, resource_resolver) return policy @@ -1954,6 +1995,8 @@ def _construct_lambda_permission_policy( source: ConnectorResourceReference, destination: ConnectorResourceReference, profile: ConnectorProfile, + dest_index: int, + multi_dest: bool, ) -> List[LambdaPermission]: source_policy = profile["SourcePolicy"] lambda_function = source if source_policy else destination @@ -1966,9 +2009,19 @@ def _construct_lambda_permission_policy( ) lambda_permissions = [] - for name in profile["AccessCategories"].keys(): + for name in profile["AccessCategories"]: if name in self.Permissions: - permission = LambdaPermission(f"{self.logical_id}{name}LambdaPermission") + permission_name = ( + f"{self.logical_id}{name}LambdaPermissionDestination{dest_index}" + if multi_dest + else f"{self.logical_id}{name}LambdaPermission" + ) + permission = LambdaPermission( + logical_id=permission_name, + depends_on=self.depends_on, + attributes=self.resource_attributes, + ) + permissions = profile["AccessCategories"][name] permission.Action = permissions["Action"] permission.FunctionName = function_arn @@ -1984,6 +2037,8 @@ def _construct_sns_topic_policy( source: ConnectorResourceReference, destination: ConnectorResourceReference, profile: ConnectorProfile, + dest_index: int, + multi_dest: bool, ) -> SNSTopicPolicy: source_policy = profile["SourcePolicy"] sns_topic = source if source_policy else destination @@ -1995,7 +2050,13 @@ def _construct_sns_topic_policy( self.logical_id, f"Unable to get SNS topic ARN from '{property_name}' resource." ) - topic_policy = SNSTopicPolicy(f"{self.logical_id}TopicPolicy") + topic_policy_name = ( + f"{self.logical_id}TopicPolicyDestination{dest_index}" if multi_dest else f"{self.logical_id}TopicPolicy" + ) + topic_policy = SNSTopicPolicy( + logical_id=topic_policy_name, depends_on=self.depends_on, attributes=self.resource_attributes + ) + topic_policy.Topics = [topic_arn] topic_policy.PolicyDocument = self._get_policy_statements(profile) @@ -2006,6 +2067,8 @@ def _construct_sqs_queue_policy( source: ConnectorResourceReference, destination: ConnectorResourceReference, profile: ConnectorProfile, + dest_index: int, + multi_dest: bool, ) -> SQSQueuePolicy: source_policy = profile["SourcePolicy"] sqs_queue = source if source_policy else destination @@ -2017,7 +2080,13 @@ def _construct_sqs_queue_policy( self.logical_id, f"Unable to get SQS queue URL from '{property_name}' resource." ) - queue_policy = SQSQueuePolicy(f"{self.logical_id}QueuePolicy") + queue_policy_name = ( + f"{self.logical_id}QueuePolicyDestination{dest_index}" if multi_dest else f"{self.logical_id}QueuePolicy" + ) + queue_policy = SQSQueuePolicy( + logical_id=queue_policy_name, depends_on=self.depends_on, attributes=self.resource_attributes + ) + queue_policy.PolicyDocument = self._get_policy_statements(profile) queue_policy.Queues = [queue_url] diff --git a/samtranslator/model/scheduler.py b/samtranslator/model/scheduler.py index 5126f9bc0..19d30d5f3 100644 --- a/samtranslator/model/scheduler.py +++ b/samtranslator/model/scheduler.py @@ -1,8 +1,8 @@ from typing import Any, Dict, Optional from samtranslator.model import PropertyType, Resource -from samtranslator.model.types import IS_DICT, IS_STR from samtranslator.model.intrinsics import fnGetAtt +from samtranslator.model.types import IS_DICT, IS_STR class SchedulerSchedule(Resource): diff --git a/samtranslator/model/sns.py b/samtranslator/model/sns.py index 7e55c7a1e..2d3b6f3ea 100644 --- a/samtranslator/model/sns.py +++ b/samtranslator/model/sns.py @@ -1,6 +1,6 @@ from samtranslator.model import PropertyType, Resource -from samtranslator.model.types import IS_DICT, IS_STR, list_of from samtranslator.model.intrinsics import ref +from samtranslator.model.types import IS_DICT, IS_STR, list_of class SNSSubscription(Resource): diff --git a/samtranslator/model/sqs.py b/samtranslator/model/sqs.py index 9fcab6389..fdfcfe5b4 100644 --- a/samtranslator/model/sqs.py +++ b/samtranslator/model/sqs.py @@ -1,8 +1,8 @@ from typing import Dict from samtranslator.model import PropertyType, Resource -from samtranslator.model.types import IS_DICT, list_of from samtranslator.model.intrinsics import fnGetAtt, ref +from samtranslator.model.types import IS_DICT, list_of class SQSQueue(Resource): @@ -23,7 +23,7 @@ class SQSQueuePolicy(Resource): class SQSQueuePolicies: @staticmethod def sns_topic_send_message_role_policy(topic_arn, queue_arn): # type: ignore[no-untyped-def] - document = { + return { "Version": "2012-10-17", "Statement": [ { @@ -35,11 +35,10 @@ def sns_topic_send_message_role_policy(topic_arn, queue_arn): # type: ignore[no } ], } - return document @staticmethod def eventbridge_dlq_send_message_resource_based_policy(rule_arn, queue_arn): # type: ignore[no-untyped-def] - document = { + return { "Version": "2012-10-17", "Statement": [ { @@ -51,4 +50,3 @@ def eventbridge_dlq_send_message_resource_based_policy(rule_arn, queue_arn): # } ], } - return document diff --git a/samtranslator/model/stepfunctions/__init__.py b/samtranslator/model/stepfunctions/__init__.py index 35c5ed4dc..351faa72a 100644 --- a/samtranslator/model/stepfunctions/__init__.py +++ b/samtranslator/model/stepfunctions/__init__.py @@ -1,5 +1,5 @@ __all__ = ["StepFunctionsStateMachine", "StateMachineGenerator", "events"] -from .resources import StepFunctionsStateMachine -from .generators import StateMachineGenerator from . import events +from .generators import StateMachineGenerator +from .resources import StepFunctionsStateMachine diff --git a/samtranslator/model/stepfunctions/events.py b/samtranslator/model/stepfunctions/events.py index 68cabef1e..b77693ae6 100644 --- a/samtranslator/model/stepfunctions/events.py +++ b/samtranslator/model/stepfunctions/events.py @@ -3,17 +3,16 @@ from typing import Any, Dict, Optional, cast from samtranslator.metrics.method_decorator import cw_timer -from samtranslator.model import Property, PropertyType, ResourceMacro, Resource +from samtranslator.model import Property, PropertyType, Resource, ResourceMacro +from samtranslator.model.eventbridge_utils import EventBridgeRuleUtils from samtranslator.model.events import EventsRule +from samtranslator.model.eventsources.push import Api as PushApi +from samtranslator.model.exceptions import InvalidEventException from samtranslator.model.iam import IAMRole, IAMRolePolicies -from samtranslator.model.types import IS_DICT, IS_STR, is_type from samtranslator.model.intrinsics import fnSub -from samtranslator.schema.common import PassThrough -from samtranslator.translator import logical_id_generator -from samtranslator.model.exceptions import InvalidEventException -from samtranslator.model.eventbridge_utils import EventBridgeRuleUtils -from samtranslator.model.eventsources.push import Api as PushApi +from samtranslator.model.types import IS_DICT, IS_STR, PassThrough, is_type from samtranslator.swagger.swagger import SwaggerEditor +from samtranslator.translator import logical_id_generator CONDITION = "Condition" SFN_EVETSOURCE_METRIC_PREFIX = "SFNEventSource" @@ -46,11 +45,9 @@ def _generate_logical_id(self, prefix, suffix, resource_type): # type: ignore[n if prefix is None: prefix = self.logical_id if suffix.isalnum(): - logical_id = prefix + resource_type + suffix - else: - generator = logical_id_generator.LogicalIdGenerator(prefix + resource_type, suffix) - logical_id = generator.gen() - return logical_id + return prefix + resource_type + suffix + generator = logical_id_generator.LogicalIdGenerator(prefix + resource_type, suffix) + return generator.gen() def _construct_role(self, resource, permissions_boundary=None, prefix=None, suffix=""): # type: ignore[no-untyped-def] """Constructs the IAM Role resource allowing the event service to invoke @@ -319,21 +316,16 @@ def resources_to_link(self, resources): # type: ignore[no-untyped-def] explicit_api = None rest_api_id = PushApi.get_rest_api_id_string(self.RestApiId) if isinstance(rest_api_id, str): - if ( rest_api_id in resources and "Properties" in resources[rest_api_id] and "StageName" in resources[rest_api_id]["Properties"] ): - explicit_api = resources[rest_api_id]["Properties"] permitted_stage = explicit_api["StageName"] # Stage could be a intrinsic, in which case leave the suffix to default value - if isinstance(permitted_stage, str): - stage_suffix = permitted_stage - else: - stage_suffix = "Stage" # type: ignore[unreachable] + stage_suffix = permitted_stage if isinstance(permitted_stage, str) else "Stage" else: # RestApiId is a string, not an intrinsic, but we did not find a valid API resource for this ID @@ -441,7 +433,7 @@ def _generate_request_template(self, resource: Resource) -> Dict[str, Any]: :returns: a body mapping request which passes the Api input to the state machine execution :rtype: dict """ - request_templates = { + return { "application/json": fnSub( json.dumps( { @@ -451,7 +443,6 @@ def _generate_request_template(self, resource: Resource) -> Dict[str, Any]: ) ) } - return request_templates def _generate_request_template_unescaped(self, resource: Resource) -> Dict[str, Any]: """Generates the Body mapping request template for the Api. This allows for the input @@ -465,7 +456,7 @@ def _generate_request_template_unescaped(self, resource: Resource) -> Dict[str, :returns: a body mapping request which passes the Api input to the state machine execution :rtype: dict """ - request_templates = { + return { "application/json": fnSub( # Need to unescape single quotes escaped by escapeJavaScript. # Also the mapping template isn't valid JSON, so can't use json.dumps(). @@ -475,4 +466,3 @@ def _generate_request_template_unescaped(self, resource: Resource) -> Dict[str, + """}"}""" ) } - return request_templates diff --git a/samtranslator/model/stepfunctions/generators.py b/samtranslator/model/stepfunctions/generators.py index 1ebff3c41..19c9cf621 100644 --- a/samtranslator/model/stepfunctions/generators.py +++ b/samtranslator/model/stepfunctions/generators.py @@ -5,14 +5,12 @@ from samtranslator.metrics.method_decorator import cw_timer from samtranslator.model.exceptions import InvalidEventException, InvalidResourceException from samtranslator.model.iam import IAMRole, IAMRolePolicies +from samtranslator.model.intrinsics import fnJoin, is_intrinsic from samtranslator.model.resource_policies import ResourcePolicies from samtranslator.model.role_utils import construct_role_for_resource from samtranslator.model.s3_utils.uri_parser import parse_s3_uri -from samtranslator.model.stepfunctions import StepFunctionsStateMachine -from samtranslator.model.intrinsics import fnJoin +from samtranslator.model.stepfunctions.resources import StepFunctionsStateMachine from samtranslator.model.tags.resource_tagging import get_tag_list - -from samtranslator.model.intrinsics import is_intrinsic from samtranslator.model.xray_utils import get_xray_managed_policy_name from samtranslator.utils.cfn_dynamic_references import is_dynamic_reference @@ -26,7 +24,7 @@ class StateMachineGenerator: "Specify either 'Role' or 'Policies' (but not both at the same time) or neither of them" ) - def __init__( # type: ignore[no-untyped-def] + def __init__( # type: ignore[no-untyped-def] # noqa: too-many-arguments self, logical_id, depends_on, @@ -202,8 +200,7 @@ def _build_definition_string(self, definition_dict): # type: ignore[no-untyped- # Indenting and then splitting the JSON-encoded string for readability of the state machine definition in the CloudFormation translated resource. # Separators are passed explicitly to maintain trailing whitespace consistency across Py2 and Py3 definition_lines = json.dumps(definition_dict, sort_keys=True, indent=4, separators=(",", ": ")).split("\n") - definition_string = fnJoin("\n", definition_lines) - return definition_string + return fnJoin("\n", definition_lines) def _construct_role(self) -> IAMRole: """ @@ -222,7 +219,7 @@ def _construct_role(self) -> IAMRole: policy_template_processor=None, ) - execution_role = construct_role_for_resource( + return construct_role_for_resource( resource_logical_id=self.logical_id, role_path=self.role_path, attributes=self.passthrough_resource_attributes, @@ -232,7 +229,6 @@ def _construct_role(self) -> IAMRole: tags=self._construct_tag_list(), permissions_boundary=self.permissions_boundary, ) - return execution_role def _construct_tag_list(self) -> List[Dict[str, Any]]: """ @@ -308,9 +304,9 @@ def _get_paths_to_intrinsics(self, _input, path=None): # type: ignore[no-untype for key, value in sorted(iterator, key=lambda item: item[0]): # type: ignore[no-any-return] if is_intrinsic(value) or is_dynamic_reference(value): - dynamic_value_paths.append(path + [key]) + dynamic_value_paths.append([*path, key]) elif isinstance(value, (dict, list)): - dynamic_value_paths.extend(self._get_paths_to_intrinsics(value, path + [key])) # type: ignore[no-untyped-call] + dynamic_value_paths.extend(self._get_paths_to_intrinsics(value, [*path, key])) # type: ignore[no-untyped-call] return dynamic_value_paths diff --git a/samtranslator/model/stepfunctions/resources.py b/samtranslator/model/stepfunctions/resources.py index b35ef7cee..c0e6a6ea9 100644 --- a/samtranslator/model/stepfunctions/resources.py +++ b/samtranslator/model/stepfunctions/resources.py @@ -1,8 +1,8 @@ from typing import Any, Dict, List, Optional from samtranslator.model import PropertyType, Resource -from samtranslator.model.types import IS_DICT, list_of, IS_STR from samtranslator.model.intrinsics import fnGetAtt, ref +from samtranslator.model.types import IS_DICT, IS_STR, list_of class StepFunctionsStateMachine(Resource): diff --git a/samtranslator/model/tags/resource_tagging.py b/samtranslator/model/tags/resource_tagging.py index 614ca2d97..8a216d593 100644 --- a/samtranslator/model/tags/resource_tagging.py +++ b/samtranslator/model/tags/resource_tagging.py @@ -30,7 +30,6 @@ def get_tag_list(resource_tag_dict: Optional[Dict[str, Any]]) -> List[Dict[str, return tag_list for tag_key, tag_value in resource_tag_dict.items(): - tag = {_KEY: tag_key, _VALUE: tag_value if tag_value else ""} tag_list.append(tag) diff --git a/samtranslator/model/types.py b/samtranslator/model/types.py index 0d27b4b14..f9e4cb1e0 100644 --- a/samtranslator/model/types.py +++ b/samtranslator/model/types.py @@ -11,6 +11,7 @@ from typing import Any, Callable, Type, Union import samtranslator.model.exceptions +from samtranslator.internal.deprecation_control import deprecated # Validator always looks like def ...(value: Any, should_raise: bool = True) -> bool, # However, Python type hint doesn't support functions with optional keyword argument @@ -137,6 +138,7 @@ def validate(value: Any, should_raise: bool = False) -> bool: return validate +@deprecated(replacement="IS_STR") def is_str() -> Validator: """ For compatibility reason, we need this `is_str()` as it @@ -147,3 +149,7 @@ def is_str() -> Validator: https://github.com/aws/aws-sam-cli/commit/d18f57c5f39273a04fb582f90e6c5817a4651912 """ return IS_STR + + +# Value passed directly to CloudFormation; not used by SAM +PassThrough = Any # TODO: Make it behave like typescript's unknown diff --git a/samtranslator/open_api/base_editor.py b/samtranslator/open_api/base_editor.py index c1c806969..bfc47d033 100644 --- a/samtranslator/open_api/base_editor.py +++ b/samtranslator/open_api/base_editor.py @@ -42,7 +42,7 @@ def get_conditional_contents(item: Any) -> List[Any]: [InvalidTemplateException(f"Value of {BaseEditor._CONDITIONAL_IF} must be a list.")] ) contents = if_parameters[1:] - contents = [content for content in contents if not is_intrinsic_no_value(content)] + return [content for content in contents if not is_intrinsic_no_value(content)] return contents @staticmethod diff --git a/samtranslator/open_api/open_api.py b/samtranslator/open_api/open_api.py index 1210d6f39..ab2584f03 100644 --- a/samtranslator/open_api/open_api.py +++ b/samtranslator/open_api/open_api.py @@ -1,17 +1,16 @@ import copy +import json import re -from typing import Callable, Any, Dict, Optional, TypeVar +from typing import Any, Callable, Dict, Optional, TypeVar from samtranslator.metrics.method_decorator import cw_timer from samtranslator.model.apigatewayv2 import ApiGatewayV2Authorizer -from samtranslator.model.intrinsics import ref, make_conditional, is_intrinsic from samtranslator.model.exceptions import InvalidDocumentException, InvalidTemplateException +from samtranslator.model.intrinsics import is_intrinsic, make_conditional, ref from samtranslator.open_api.base_editor import BaseEditor from samtranslator.utils.py27hash_fix import Py27Dict, Py27UniStr from samtranslator.utils.types import Intrinsicable -from samtranslator.utils.utils import dict_deep_get, InvalidValueType -import json - +from samtranslator.utils.utils import InvalidValueType, dict_deep_get T = TypeVar("T") @@ -114,7 +113,7 @@ def is_integration_function_logical_id_match(self, path_name, method_name, logic return True - def add_lambda_integration( # type: ignore[no-untyped-def] + def add_lambda_integration( # type: ignore[no-untyped-def] # noqa: too-many-arguments self, path, method, integration_uri, method_auth_config=None, api_auth_config=None, condition=None ): """ @@ -337,7 +336,6 @@ def _set_method_authorizer(self, path, method_name, authorizer_name, authorizers authorization_scopes = [] for method_definition in self.iter_on_method_definitions_for_path_at_method(path, method_name): - security_dict = {} # type: ignore[var-annotated] security_dict[authorizer_name] = [] @@ -423,7 +421,7 @@ def add_endpoint_config(self, disable_execute_api_endpoint: Optional[Intrinsicab self._doc[self._SERVERS] = servers_configurations - def add_cors( # type: ignore[no-untyped-def] + def add_cors( # type: ignore[no-untyped-def] # noqa: too-many-arguments self, allow_origins, allow_headers=None, @@ -549,11 +547,8 @@ def is_valid(data: Any) -> bool: :return: True, if data is valid OpenApi """ - if bool(data) and isinstance(data, dict) and isinstance(data.get("paths"), dict): - if bool(data.get("openapi")): - return OpenApiEditor.safe_compare_regex_with_string( - OpenApiEditor._OPENAPI_VERSION_3_REGEX, data["openapi"] - ) + if bool(data) and isinstance(data, dict) and isinstance(data.get("paths"), dict) and bool(data.get("openapi")): + return OpenApiEditor.safe_compare_regex_with_string(OpenApiEditor._OPENAPI_VERSION_3_REGEX, data["openapi"]) return False @staticmethod diff --git a/samtranslator/parser/parser.py b/samtranslator/parser/parser.py index 43fcadeb6..f1562f7bf 100644 --- a/samtranslator/parser/parser.py +++ b/samtranslator/parser/parser.py @@ -2,12 +2,12 @@ from samtranslator.model.exceptions import ( InvalidDocumentException, - InvalidTemplateException, InvalidResourceAttributeTypeException, + InvalidTemplateException, ) -from samtranslator.validator.validator import SamTemplateValidator from samtranslator.plugins import LifeCycleEvents from samtranslator.public.sdk.template import SamTemplate +from samtranslator.validator.validator import SamTemplateValidator from samtranslator.validator.value_validator import sam_expect LOG = logging.getLogger(__name__) diff --git a/samtranslator/plugins/__init__.py b/samtranslator/plugins/__init__.py index 096caa479..558fd6097 100644 --- a/samtranslator/plugins/__init__.py +++ b/samtranslator/plugins/__init__.py @@ -1,6 +1,5 @@ import logging from abc import ABC - from enum import Enum from typing import Optional @@ -44,7 +43,9 @@ def name(self) -> str: return self._custom_name return self._class_name() - def on_before_transform_resource(self, logical_id, resource_type, resource_properties): # type: ignore[no-untyped-def] + # Plugins can choose to skip implementing certain hook methods. In which case we will default to a + # NoOp implementation + def on_before_transform_resource(self, logical_id, resource_type, resource_properties): # type: ignore[no-untyped-def] # noqa: empty-method-without-abstract-decorator """ Hook method to execute on `before_transform_resource` life cycle event. Plugins are free to modify the whole template or properties of the resource. @@ -65,10 +66,9 @@ def on_before_transform_resource(self, logical_id, resource_type, resource_prope :raises InvalidResourceException: If the hook decides throw this exception on validation failures """ - # Plugins can choose to skip implementing certain hook methods. In which case we will default to a - # NoOp implementation - - def on_before_transform_template(self, template_dict): # type: ignore[no-untyped-def] + # Plugins can choose to skip implementing certain hook methods. In which case we will default to a + # NoOp implementation + def on_before_transform_template(self, template_dict): # type: ignore[no-untyped-def] # noqa: empty-method-without-abstract-decorator """ Hook method to execute on "before_transform_template" life cycle event. Plugins are free to modify the whole template, inject new resources, or modify certain sections of the template. @@ -85,7 +85,9 @@ def on_before_transform_template(self, template_dict): # type: ignore[no-untype :raises InvalidDocumentException: If the hook decides that the SAM template is invalid. """ - def on_after_transform_template(self, template): # type: ignore[no-untyped-def] + # Plugins can choose to skip implementing certain hook methods. In which case we will default to a + # NoOp implementation + def on_after_transform_template(self, template): # type: ignore[no-untyped-def] # noqa: empty-method-without-abstract-decorator """ Hook method to execute on "after_transform_template" life cycle event. Plugins may further modify the template. Warning: any changes made in this lifecycle action by a plugin will not be diff --git a/samtranslator/plugins/api/default_definition_body_plugin.py b/samtranslator/plugins/api/default_definition_body_plugin.py index 47be9eeb2..f053db76b 100644 --- a/samtranslator/plugins/api/default_definition_body_plugin.py +++ b/samtranslator/plugins/api/default_definition_body_plugin.py @@ -1,9 +1,9 @@ from samtranslator.metrics.method_decorator import cw_timer -from samtranslator.plugins import BasePlugin -from samtranslator.swagger.swagger import SwaggerEditor from samtranslator.open_api.open_api import OpenApiEditor +from samtranslator.plugins import BasePlugin from samtranslator.public.sdk.resource import SamResourceType from samtranslator.public.sdk.template import SamTemplate +from samtranslator.swagger.swagger import SwaggerEditor class DefaultDefinitionBodyPlugin(BasePlugin): diff --git a/samtranslator/plugins/api/implicit_api_plugin.py b/samtranslator/plugins/api/implicit_api_plugin.py index fb8b1fa3d..d3a77618d 100644 --- a/samtranslator/plugins/api/implicit_api_plugin.py +++ b/samtranslator/plugins/api/implicit_api_plugin.py @@ -1,21 +1,19 @@ import copy - from abc import ABCMeta, abstractmethod from typing import Any, Dict, Generic, Optional, Tuple, Type, TypeVar, Union from samtranslator.metrics.method_decorator import cw_timer -from samtranslator.model.intrinsics import make_combined_condition from samtranslator.model.eventsources.push import Api +from samtranslator.model.intrinsics import MIN_NUM_CONDITIONS_TO_COMBINE, make_combined_condition from samtranslator.open_api.open_api import OpenApiEditor +from samtranslator.public.exceptions import InvalidDocumentException, InvalidEventException, InvalidResourceException from samtranslator.public.plugins import BasePlugin -from samtranslator.public.exceptions import InvalidDocumentException, InvalidResourceException, InvalidEventException from samtranslator.public.sdk.resource import SamResource, SamResourceType from samtranslator.public.sdk.template import SamTemplate from samtranslator.swagger.swagger import SwaggerEditor from samtranslator.utils.py27hash_fix import Py27Dict from samtranslator.validator.value_validator import sam_expect - T = TypeVar("T", bound=Union[Type[OpenApiEditor], Type[SwaggerEditor]]) @@ -64,7 +62,7 @@ def __init__(self) -> None: self.api_update_replace_policies: Dict[str, Any] = {} @abstractmethod - def _process_api_events( + def _process_api_events( # noqa: too-many-arguments self, function: SamResource, api_events: Dict[str, Dict[str, Any]], @@ -121,7 +119,6 @@ def on_before_transform_template(self, template_dict): # type: ignore[no-untype for logicalId, resource in template.iterate( {SamResourceType.Function.value, SamResourceType.StateMachine.value} ): - api_events = self._get_api_events(resource) # type: ignore[no-untyped-call] condition = resource.condition deletion_policy = resource.deletion_policy @@ -181,7 +178,6 @@ def _get_api_events(self, resource): # type: ignore[no-untyped-def] api_events = Py27Dict() for event_id, event in resource.properties["Events"].items(): - if event and isinstance(event, dict) and event.get("Type") == self.API_EVENT_TYPE: api_events[event_id] = event @@ -208,7 +204,7 @@ def _add_api_to_swagger(self, event_id, event_properties, template): # type: ig is_referencing_http_from_api_event = ( not template.get(api_id) or template.get(api_id).type == "AWS::Serverless::HttpApi" - and not template.get(api_id).type == self.SERVERLESS_API_RESOURCE_TYPE + and template.get(api_id).type != self.SERVERLESS_API_RESOURCE_TYPE ) # RestApiId is not pointing to a valid API resource @@ -371,7 +367,7 @@ def _add_combined_condition_to_template(self, template_dict, condition_name, con top-level condition. """ # defensive precondition check - if not conditions_to_combine or len(conditions_to_combine) < 2: + if not conditions_to_combine or len(conditions_to_combine) < MIN_NUM_CONDITIONS_TO_COMBINE: raise ValueError("conditions_to_combine must have at least 2 conditions") template_conditions = template_dict.setdefault("Conditions", {}) @@ -464,7 +460,7 @@ def _validate_api_event(self, event_id: str, event_properties: Dict[str, Any]) - sam_expect(method, event_id, "Method", is_sam_event=True).to_be_a_string(), ) - def _update_resource_attributes_from_api_event( + def _update_resource_attributes_from_api_event( # noqa: too-many-arguments self, api_id: str, path: str, diff --git a/samtranslator/plugins/api/implicit_http_api_plugin.py b/samtranslator/plugins/api/implicit_http_api_plugin.py index 095997b66..2081d3ce3 100644 --- a/samtranslator/plugins/api/implicit_http_api_plugin.py +++ b/samtranslator/plugins/api/implicit_http_api_plugin.py @@ -3,7 +3,7 @@ from samtranslator.model.intrinsics import make_conditional from samtranslator.plugins.api.implicit_api_plugin import ImplicitApiPlugin from samtranslator.public.open_api import OpenApiEditor -from samtranslator.public.sdk.resource import SamResourceType, SamResource +from samtranslator.public.sdk.resource import SamResource, SamResourceType from samtranslator.sdk.template import SamTemplate from samtranslator.validator.value_validator import sam_expect @@ -33,7 +33,7 @@ class ImplicitHttpApiPlugin(ImplicitApiPlugin[Type[OpenApiEditor]]): SERVERLESS_API_RESOURCE_TYPE = SamResourceType.HttpApi.value EDITOR_CLASS = OpenApiEditor - def _process_api_events( + def _process_api_events( # noqa: too-many-arguments self, function: SamResource, api_events: Dict[str, Dict[str, Any]], diff --git a/samtranslator/plugins/api/implicit_rest_api_plugin.py b/samtranslator/plugins/api/implicit_rest_api_plugin.py index e8962b027..0ef05478d 100644 --- a/samtranslator/plugins/api/implicit_rest_api_plugin.py +++ b/samtranslator/plugins/api/implicit_rest_api_plugin.py @@ -1,8 +1,8 @@ from typing import Any, Dict, Optional, Type from samtranslator.plugins.api.implicit_api_plugin import ImplicitApiPlugin +from samtranslator.public.sdk.resource import SamResource, SamResourceType from samtranslator.public.swagger import SwaggerEditor -from samtranslator.public.sdk.resource import SamResourceType, SamResource from samtranslator.sdk.template import SamTemplate from samtranslator.validator.value_validator import sam_expect @@ -35,7 +35,7 @@ class ImplicitRestApiPlugin(ImplicitApiPlugin[Type[SwaggerEditor]]): SERVERLESS_API_RESOURCE_TYPE = SamResourceType.Api.value EDITOR_CLASS = SwaggerEditor - def _process_api_events( + def _process_api_events( # noqa: too-many-arguments self, function: SamResource, api_events: Dict[str, Dict[str, Any]], @@ -55,7 +55,6 @@ def _process_api_events( """ for event_id, event in api_events.items(): - event_properties = event.get("Properties", {}) if not event_properties: continue diff --git a/samtranslator/plugins/application/serverless_app_plugin.py b/samtranslator/plugins/application/serverless_app_plugin.py index 4a6fb07fb..095c19940 100644 --- a/samtranslator/plugins/application/serverless_app_plugin.py +++ b/samtranslator/plugins/application/serverless_app_plugin.py @@ -1,21 +1,21 @@ +import copy +import json +import logging +from time import sleep from typing import Any, Dict, Tuple import boto3 -import json from botocore.config import Config from botocore.exceptions import ClientError, EndpointConnectionError -import logging -from time import sleep -import copy +from samtranslator.intrinsics.actions import FindInMapAction +from samtranslator.intrinsics.resolver import IntrinsicsResolver from samtranslator.metrics.method_decorator import cw_timer from samtranslator.model.exceptions import InvalidResourceException from samtranslator.plugins import BasePlugin from samtranslator.plugins.exceptions import InvalidPluginException from samtranslator.public.sdk.resource import SamResourceType from samtranslator.public.sdk.template import SamTemplate -from samtranslator.intrinsics.resolver import IntrinsicsResolver -from samtranslator.intrinsics.actions import FindInMapAction from samtranslator.region_configuration import RegionConfiguration from samtranslator.utils.constants import BOTO3_CONNECT_TIMEOUT from samtranslator.validator.value_validator import sam_expect @@ -95,10 +95,9 @@ def on_before_transform_template(self, template_dict): # type: ignore[no-untype intrinsic_resolvers = self._get_intrinsic_resolvers(template_dict.get("Mappings", {})) # type: ignore[no-untyped-call] service_call = None - if self._validate_only: - service_call = self._handle_get_application_request - else: - service_call = self._handle_create_cfn_template_request + service_call = ( + self._handle_get_application_request if self._validate_only else self._handle_create_cfn_template_request + ) for logical_id, app in template.iterate({SamResourceType.Application.value}): if not self._can_process_application(app): # type: ignore[no-untyped-call] # Handle these cases in the on_before_transform_resource event diff --git a/samtranslator/plugins/globals/globals.py b/samtranslator/plugins/globals/globals.py index 4b96caf98..40fd168d5 100644 --- a/samtranslator/plugins/globals/globals.py +++ b/samtranslator/plugins/globals/globals.py @@ -1,8 +1,8 @@ -from typing import Any, Dict, List +from typing import Any, Dict, List from samtranslator.model.exceptions import ExceptionWithMessage -from samtranslator.public.sdk.resource import SamResourceType from samtranslator.public.intrinsics import is_intrinsics +from samtranslator.public.sdk.resource import SamResourceType from samtranslator.swagger.swagger import SwaggerEditor @@ -35,6 +35,7 @@ class Globals: "Tracing", "KmsKeyArn", "AutoPublishAlias", + "AutoPublishAliasAllProperties", "Layers", "DeploymentPreference", "RolePath", @@ -408,8 +409,7 @@ def _merge_dict(self, global_dict, local_dict): # type: ignore[no-untyped-def] # Local has higher priority than global. So iterate over local dict and merge into global if keys are overridden global_dict = global_dict.copy() - for key in local_dict.keys(): - + for key in local_dict: if key in global_dict: # Both local & global contains the same key. Let's do a merge. global_dict[key] = self._do_merge(global_dict[key], local_dict[key]) # type: ignore[no-untyped-call] @@ -440,7 +440,6 @@ def _token_of(self, _input: Any) -> str: """ if isinstance(_input, dict): - # Intrinsic functions are always dicts if is_intrinsics(_input): # Intrinsic functions are handled *exactly* like a primitive type because diff --git a/samtranslator/plugins/globals/globals_plugin.py b/samtranslator/plugins/globals/globals_plugin.py index 8c86c866b..160a89e8d 100644 --- a/samtranslator/plugins/globals/globals_plugin.py +++ b/samtranslator/plugins/globals/globals_plugin.py @@ -1,9 +1,8 @@ from samtranslator.metrics.method_decorator import cw_timer -from samtranslator.public.sdk.template import SamTemplate -from samtranslator.public.plugins import BasePlugin -from samtranslator.public.exceptions import InvalidDocumentException - from samtranslator.plugins.globals.globals import Globals, InvalidGlobalsSectionException +from samtranslator.public.exceptions import InvalidDocumentException +from samtranslator.public.plugins import BasePlugin +from samtranslator.public.sdk.template import SamTemplate _API_RESOURCE = "AWS::Serverless::Api" diff --git a/samtranslator/plugins/policies/policy_templates_plugin.py b/samtranslator/plugins/policies/policy_templates_plugin.py index 0e96fe67c..5bf2eeb46 100644 --- a/samtranslator/plugins/policies/policy_templates_plugin.py +++ b/samtranslator/plugins/policies/policy_templates_plugin.py @@ -1,9 +1,9 @@ from samtranslator.metrics.method_decorator import cw_timer -from samtranslator.plugins import BasePlugin -from samtranslator.model.resource_policies import ResourcePolicies, PolicyTypes from samtranslator.model.exceptions import InvalidResourceException -from samtranslator.policy_template_processor.exceptions import InsufficientParameterValues, InvalidParameterValues from samtranslator.model.intrinsics import is_intrinsic_if, is_intrinsic_no_value +from samtranslator.model.resource_policies import PolicyTypes, ResourcePolicies +from samtranslator.plugins import BasePlugin +from samtranslator.policy_template_processor.exceptions import InsufficientParameterValues, InvalidParameterValues class PolicyTemplatesForResourcePlugin(BasePlugin): @@ -49,7 +49,6 @@ def on_before_transform_resource(self, logical_id, resource_type, resource_prope result = [] for policy_entry in function_policies.get(): # type: ignore[no-untyped-call] - if policy_entry.type is not PolicyTypes.POLICY_TEMPLATE: # If we don't know the type, skip processing and pass to result as is. result.append(policy_entry.data) @@ -84,20 +83,14 @@ def _process_intrinsic_if_policy_template(self, logical_id, policy_entry): # ty else self._process_policy_template(logical_id, else_statement) # type: ignore[no-untyped-call] ) - processed_intrinsic_if = { - "Fn::If": [policy_entry.data["Fn::If"][0], processed_then_statement, processed_else_statement] - } - - return processed_intrinsic_if + return {"Fn::If": [policy_entry.data["Fn::If"][0], processed_then_statement, processed_else_statement]} def _process_policy_template(self, logical_id, template_data): # type: ignore[no-untyped-def] - # We are processing policy templates. We know they have a particular structure: # {"templateName": { parameter_values_dict }} template_name = list(template_data.keys())[0] template_parameters = list(template_data.values())[0] try: - # 'convert' will return a list of policy statements return self._policy_template_processor.convert(template_name, template_parameters) diff --git a/samtranslator/plugins/sam_plugins.py b/samtranslator/plugins/sam_plugins.py index 18226daf8..27a256c8b 100644 --- a/samtranslator/plugins/sam_plugins.py +++ b/samtranslator/plugins/sam_plugins.py @@ -1,6 +1,7 @@ import logging -from typing import Optional, Any, List, Union -from samtranslator.model.exceptions import InvalidResourceException, InvalidDocumentException, InvalidTemplateException +from typing import Any, List, Optional, Union + +from samtranslator.model.exceptions import InvalidDocumentException, InvalidResourceException, InvalidTemplateException from samtranslator.plugins import BasePlugin, LifeCycleEvents LOG = logging.getLogger(__name__) @@ -122,7 +123,6 @@ def act(self, event: LifeCycleEvents, *args: Any, **kwargs: Any) -> None: method_name = "on_" + event.name for plugin in self._plugins: - if not hasattr(plugin, method_name): raise NameError( "'{}' method is not found in the plugin with name '{}'".format(method_name, plugin.name) diff --git a/samtranslator/policy_template_processor/processor.py b/samtranslator/policy_template_processor/processor.py index b8bef2f5a..05cd659fc 100644 --- a/samtranslator/policy_template_processor/processor.py +++ b/samtranslator/policy_template_processor/processor.py @@ -1,10 +1,12 @@ import json +from typing import Any, Dict, Optional + import jsonschema -from samtranslator import policy_templates_data -from typing import Dict, Any, Optional from jsonschema.exceptions import ValidationError -from samtranslator.policy_template_processor.template import Template + +from samtranslator import policy_templates_data from samtranslator.policy_template_processor.exceptions import TemplateNotFoundException +from samtranslator.policy_template_processor.template import Template class PolicyTemplatesProcessor: diff --git a/samtranslator/policy_template_processor/template.py b/samtranslator/policy_template_processor/template.py index a035c3391..7c4c78075 100644 --- a/samtranslator/policy_template_processor/template.py +++ b/samtranslator/policy_template_processor/template.py @@ -1,10 +1,9 @@ from typing import Any -from samtranslator.intrinsics.resolver import IntrinsicsResolver from samtranslator.intrinsics.actions import RefAction +from samtranslator.intrinsics.resolver import IntrinsicsResolver from samtranslator.policy_template_processor.exceptions import InsufficientParameterValues, InvalidParameterValues - POLICY_PARAMETER_DISAMBIGUATE_PREFIX = "___SAM_POLICY_PARAMETER_" diff --git a/samtranslator/policy_templates_data/policy_templates.json b/samtranslator/policy_templates_data/policy_templates.json index 8385fd975..3299c1edd 100644 --- a/samtranslator/policy_templates_data/policy_templates.json +++ b/samtranslator/policy_templates_data/policy_templates.json @@ -2153,7 +2153,44 @@ "Description": "Gives access to a parameter to load secrets in this account. If not using default key, KMSDecryptPolicy will also be needed.", "Parameters": { "ParameterName": { - "Description": "The name of the secret stored in SSM in your account." + "Description": "The name of the secret stored in SSM in your account. Name shouldn't contain a leading slash." + } + } + }, + "SSMParameterWithSlashPrefixReadPolicy": { + "Definition": { + "Statement": [ + { + "Action": [ + "ssm:DescribeParameters" + ], + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "ssm:GetParameters", + "ssm:GetParameter", + "ssm:GetParametersByPath" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:ssm:${AWS::Region}:${AWS::AccountId}:parameter${parameterName}", + { + "parameterName": { + "Ref": "ParameterName" + } + } + ] + } + } + ] + }, + "Description": "Gives access to a parameter to load secrets in this account. If not using default key, KMSDecryptPolicy will also be needed.", + "Parameters": { + "ParameterName": { + "Description": "The name of the secret stored in SSM in your account. Name should contain a leading slash." } } }, diff --git a/samtranslator/public/exceptions.py b/samtranslator/public/exceptions.py index 3d03b3f02..54a870b1d 100644 --- a/samtranslator/public/exceptions.py +++ b/samtranslator/public/exceptions.py @@ -1,3 +1,3 @@ __all__ = ["InvalidResourceException", "InvalidDocumentException", "InvalidEventException"] -from samtranslator.model.exceptions import InvalidResourceException, InvalidDocumentException, InvalidEventException +from samtranslator.model.exceptions import InvalidDocumentException, InvalidEventException, InvalidResourceException diff --git a/samtranslator/public/intrinsics.py b/samtranslator/public/intrinsics.py index 490430088..27baa7721 100644 --- a/samtranslator/public/intrinsics.py +++ b/samtranslator/public/intrinsics.py @@ -1,5 +1,4 @@ __all__ = ["IntrinsicsResolver", "is_intrinsics"] from samtranslator.intrinsics.resolver import IntrinsicsResolver - from samtranslator.model.intrinsics import is_intrinsic as is_intrinsics diff --git a/samtranslator/public/models.py b/samtranslator/public/models.py index 41b1f2f0f..7553aa01e 100644 --- a/samtranslator/public/models.py +++ b/samtranslator/public/models.py @@ -1,3 +1,5 @@ -# flake8: noqa -# pylint: disable=W0611 -from samtranslator.model.resource_policies import ResourcePolicies, PolicyTypes +from typing import List + +from samtranslator.model.resource_policies import PolicyTypes, ResourcePolicies + +__all__: List[str] = ["PolicyTypes", "ResourcePolicies"] diff --git a/samtranslator/public/parser.py b/samtranslator/public/parser.py index 16486767d..dbb8c1004 100644 --- a/samtranslator/public/parser.py +++ b/samtranslator/public/parser.py @@ -1,3 +1,5 @@ -# flake8: noqa -# pylint: disable=W0611 +from typing import List + from samtranslator.parser.parser import Parser + +__all__: List[str] = ["Parser"] diff --git a/samtranslator/public/sdk/parameter.py b/samtranslator/public/sdk/parameter.py index 6f091916e..8f397a222 100644 --- a/samtranslator/public/sdk/parameter.py +++ b/samtranslator/public/sdk/parameter.py @@ -1,3 +1,5 @@ -# flake8: noqa -# pylint: disable=W0611 +from typing import List + from samtranslator.sdk.parameter import SamParameterValues + +__all__: List[str] = ["SamParameterValues"] diff --git a/samtranslator/public/translator.py b/samtranslator/public/translator.py index 4b90576f5..1e9851198 100644 --- a/samtranslator/public/translator.py +++ b/samtranslator/public/translator.py @@ -4,5 +4,5 @@ __all__ = ["Translator", "ManagedPolicyLoader"] -from samtranslator.translator.translator import Translator from samtranslator.translator.managed_policy_translator import ManagedPolicyLoader +from samtranslator.translator.translator import Translator diff --git a/samtranslator/region_configuration.py b/samtranslator/region_configuration.py index 2b38e7763..f8ba03e4b 100644 --- a/samtranslator/region_configuration.py +++ b/samtranslator/region_configuration.py @@ -52,6 +52,6 @@ def is_service_supported(cls, service, region=None): # type: ignore[no-untyped- raise NoRegionFound("AWS Region cannot be found") # check if the service is available in region - partition = session.get_partition_for_region(region) + partition = ArnGenerator.get_partition_name(region) available_regions = session.get_available_regions(service, partition_name=partition) return region in available_regions diff --git a/samtranslator/schema/cloudformation.schema.json b/samtranslator/schema/cloudformation.schema.json deleted file mode 100644 index 33d9d0a16..000000000 --- a/samtranslator/schema/cloudformation.schema.json +++ /dev/null @@ -1,156627 +0,0 @@ -{ - "$id": "http://json-schema.org/draft-04/schema#", - "additionalProperties": false, - "definitions": { - "AWS::ACMPCA::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": { - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ACMPCA::Certificate" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ACMPCA::Certificate.ApiPassthrough": { - "additionalProperties": false, - "properties": { - "Extensions": { - "$ref": "#/definitions/AWS::ACMPCA::Certificate.Extensions" - }, - "Subject": { - "$ref": "#/definitions/AWS::ACMPCA::Certificate.Subject" - } - }, - "type": "object" - }, - "AWS::ACMPCA::Certificate.CustomAttribute": { - "additionalProperties": false, - "properties": { - "ObjectIdentifier": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "AWS::ACMPCA::Certificate.CustomExtension": { - "additionalProperties": false, - "properties": { - "Critical": { - "type": "boolean" - }, - "ObjectIdentifier": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "AWS::ACMPCA::Certificate.EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "NameAssigner", - "PartyName" - ], - "type": "object" - }, - "AWS::ACMPCA::Certificate.ExtendedKeyUsage": { - "additionalProperties": false, - "properties": { - "ExtendedKeyUsageObjectIdentifier": { - "type": "string" - }, - "ExtendedKeyUsageType": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ACMPCA::Certificate.Extensions": { - "additionalProperties": false, - "properties": { - "CertificatePolicies": { - "items": { - "$ref": "#/definitions/AWS::ACMPCA::Certificate.PolicyInformation" - }, - "type": "array" - }, - "CustomExtensions": { - "items": { - "$ref": "#/definitions/AWS::ACMPCA::Certificate.CustomExtension" - }, - "type": "array" - }, - "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" - } - }, - "type": "object" - }, - "AWS::ACMPCA::Certificate.GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/AWS::ACMPCA::Certificate.Subject" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "$ref": "#/definitions/AWS::ACMPCA::Certificate.EdiPartyName" - }, - "IpAddress": { - "type": "string" - }, - "OtherName": { - "$ref": "#/definitions/AWS::ACMPCA::Certificate.OtherName" - }, - "RegisteredId": { - "type": "string" - }, - "Rfc822Name": { - "type": "string" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ACMPCA::Certificate.KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "type": "boolean" - }, - "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": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "AWS::ACMPCA::Certificate.PolicyInformation": { - "additionalProperties": false, - "properties": { - "CertPolicyId": { - "type": "string" - }, - "PolicyQualifiers": { - "items": { - "$ref": "#/definitions/AWS::ACMPCA::Certificate.PolicyQualifierInfo" - }, - "type": "array" - } - }, - "required": [ - "CertPolicyId" - ], - "type": "object" - }, - "AWS::ACMPCA::Certificate.PolicyQualifierInfo": { - "additionalProperties": false, - "properties": { - "PolicyQualifierId": { - "type": "string" - }, - "Qualifier": { - "$ref": "#/definitions/AWS::ACMPCA::Certificate.Qualifier" - } - }, - "required": [ - "PolicyQualifierId", - "Qualifier" - ], - "type": "object" - }, - "AWS::ACMPCA::Certificate.Qualifier": { - "additionalProperties": false, - "properties": { - "CpsUri": { - "type": "string" - } - }, - "required": [ - "CpsUri" - ], - "type": "object" - }, - "AWS::ACMPCA::Certificate.Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "Country": { - "type": "string" - }, - "CustomAttributes": { - "items": { - "$ref": "#/definitions/AWS::ACMPCA::Certificate.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" - } - }, - "type": "object" - }, - "AWS::ACMPCA::Certificate.Validity": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "required": [ - "Type", - "Value" - ], - "type": "object" - }, - "AWS::ACMPCA::CertificateAuthority": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "CsrExtensions": { - "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.CsrExtensions" - }, - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ACMPCA::CertificateAuthority" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ACMPCA::CertificateAuthority.AccessDescription": { - "additionalProperties": false, - "properties": { - "AccessLocation": { - "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.GeneralName" - }, - "AccessMethod": { - "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.AccessMethod" - } - }, - "required": [ - "AccessLocation", - "AccessMethod" - ], - "type": "object" - }, - "AWS::ACMPCA::CertificateAuthority.AccessMethod": { - "additionalProperties": false, - "properties": { - "AccessMethodType": { - "type": "string" - }, - "CustomObjectIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ACMPCA::CertificateAuthority.CrlConfiguration": { - "additionalProperties": false, - "properties": { - "CustomCname": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "ExpirationInDays": { - "type": "number" - }, - "S3BucketName": { - "type": "string" - }, - "S3ObjectAcl": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ACMPCA::CertificateAuthority.CsrExtensions": { - "additionalProperties": false, - "properties": { - "KeyUsage": { - "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.KeyUsage" - }, - "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": [ - "ObjectIdentifier", - "Value" - ], - "type": "object" - }, - "AWS::ACMPCA::CertificateAuthority.EdiPartyName": { - "additionalProperties": false, - "properties": { - "NameAssigner": { - "type": "string" - }, - "PartyName": { - "type": "string" - } - }, - "required": [ - "NameAssigner", - "PartyName" - ], - "type": "object" - }, - "AWS::ACMPCA::CertificateAuthority.GeneralName": { - "additionalProperties": false, - "properties": { - "DirectoryName": { - "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.Subject" - }, - "DnsName": { - "type": "string" - }, - "EdiPartyName": { - "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.EdiPartyName" - }, - "IpAddress": { - "type": "string" - }, - "OtherName": { - "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.OtherName" - }, - "RegisteredId": { - "type": "string" - }, - "Rfc822Name": { - "type": "string" - }, - "UniformResourceIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ACMPCA::CertificateAuthority.KeyUsage": { - "additionalProperties": false, - "properties": { - "CRLSign": { - "type": "boolean" - }, - "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::CertificateAuthority.OcspConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "OcspCustomCname": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ACMPCA::CertificateAuthority.OtherName": { - "additionalProperties": false, - "properties": { - "TypeId": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "TypeId", - "Value" - ], - "type": "object" - }, - "AWS::ACMPCA::CertificateAuthority.RevocationConfiguration": { - "additionalProperties": false, - "properties": { - "CrlConfiguration": { - "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.CrlConfiguration" - }, - "OcspConfiguration": { - "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.OcspConfiguration" - } - }, - "type": "object" - }, - "AWS::ACMPCA::CertificateAuthority.Subject": { - "additionalProperties": false, - "properties": { - "CommonName": { - "type": "string" - }, - "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" - } - }, - "type": "object" - }, - "AWS::ACMPCA::CertificateAuthorityActivation": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ACMPCA::CertificateAuthorityActivation" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ACMPCA::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": { - "Actions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "CertificateAuthorityArn": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "SourceAccount": { - "type": "string" - } - }, - "required": [ - "Actions", - "CertificateAuthorityArn", - "Principal" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ACMPCA::Permission" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::APS::RuleGroupsNamespace": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::APS::RuleGroupsNamespace" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::APS::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": { - "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" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::APS::Workspace.LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AccessAnalyzer::Analyzer": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::AccessAnalyzer::Analyzer" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::AccessAnalyzer::Analyzer.ArchiveRule": { - "additionalProperties": false, - "properties": { - "Filter": { - "items": { - "$ref": "#/definitions/AWS::AccessAnalyzer::Analyzer.Filter" - }, - "type": "array" - }, - "RuleName": { - "type": "string" - } - }, - "required": [ - "Filter", - "RuleName" - ], - "type": "object" - }, - "AWS::AccessAnalyzer::Analyzer.Filter": { - "additionalProperties": false, - "properties": { - "Contains": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Eq": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Exists": { - "type": "boolean" - }, - "Neq": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Property": { - "type": "string" - } - }, - "required": [ - "Property" - ], - "type": "object" - }, - "AWS::AmazonMQ::Broker": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "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" - }, - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::AmazonMQ::Broker" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::AmazonMQ::Broker.ConfigurationId": { - "additionalProperties": false, - "properties": { - "Id": { - "type": "string" - }, - "Revision": { - "type": "number" - } - }, - "required": [ - "Id", - "Revision" - ], - "type": "object" - }, - "AWS::AmazonMQ::Broker.EncryptionOptions": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "type": "string" - }, - "UseAwsOwnedKey": { - "type": "boolean" - } - }, - "required": [ - "UseAwsOwnedKey" - ], - "type": "object" - }, - "AWS::AmazonMQ::Broker.LdapServerMetadata": { - "additionalProperties": false, - "properties": { - "Hosts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "RoleBase": { - "type": "string" - }, - "RoleName": { - "type": "string" - }, - "RoleSearchMatching": { - "type": "string" - }, - "RoleSearchSubtree": { - "type": "boolean" - }, - "ServiceAccountPassword": { - "type": "string" - }, - "ServiceAccountUsername": { - "type": "string" - }, - "UserBase": { - "type": "string" - }, - "UserRoleName": { - "type": "string" - }, - "UserSearchMatching": { - "type": "string" - }, - "UserSearchSubtree": { - "type": "boolean" - } - }, - "required": [ - "Hosts", - "RoleBase", - "RoleSearchMatching", - "ServiceAccountPassword", - "ServiceAccountUsername", - "UserBase", - "UserSearchMatching" - ], - "type": "object" - }, - "AWS::AmazonMQ::Broker.LogList": { - "additionalProperties": false, - "properties": { - "Audit": { - "type": "boolean" - }, - "General": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::AmazonMQ::Broker.MaintenanceWindow": { - "additionalProperties": false, - "properties": { - "DayOfWeek": { - "type": "string" - }, - "TimeOfDay": { - "type": "string" - }, - "TimeZone": { - "type": "string" - } - }, - "required": [ - "DayOfWeek", - "TimeOfDay", - "TimeZone" - ], - "type": "object" - }, - "AWS::AmazonMQ::Broker.TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "AWS::AmazonMQ::Broker.User": { - "additionalProperties": false, - "properties": { - "ConsoleAccess": { - "type": "boolean" - }, - "Groups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Password": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "required": [ - "Password", - "Username" - ], - "type": "object" - }, - "AWS::AmazonMQ::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": { - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::AmazonMQ::Configuration" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::AmazonMQ::Configuration.TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "AWS::AmazonMQ::ConfigurationAssociation": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::AmazonMQ::ConfigurationAssociation" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::AmazonMQ::ConfigurationAssociation.ConfigurationId": { - "additionalProperties": false, - "properties": { - "Id": { - "type": "string" - }, - "Revision": { - "type": "number" - } - }, - "required": [ - "Id", - "Revision" - ], - "type": "object" - }, - "AWS::Amplify::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": { - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Amplify::App" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::Amplify::App.AutoBranchCreationConfig": { - "additionalProperties": false, - "properties": { - "AutoBranchCreationPatterns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "BasicAuthConfig": { - "$ref": "#/definitions/AWS::Amplify::App.BasicAuthConfig" - }, - "BuildSpec": { - "type": "string" - }, - "EnableAutoBranchCreation": { - "type": "boolean" - }, - "EnableAutoBuild": { - "type": "boolean" - }, - "EnablePerformanceMode": { - "type": "boolean" - }, - "EnablePullRequestPreview": { - "type": "boolean" - }, - "EnvironmentVariables": { - "items": { - "$ref": "#/definitions/AWS::Amplify::App.EnvironmentVariable" - }, - "type": "array" - }, - "Framework": { - "type": "string" - }, - "PullRequestEnvironmentName": { - "type": "string" - }, - "Stage": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Amplify::App.BasicAuthConfig": { - "additionalProperties": false, - "properties": { - "EnableBasicAuth": { - "type": "boolean" - }, - "Password": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Amplify::App.CustomRule": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "Source": { - "type": "string" - }, - "Status": { - "type": "string" - }, - "Target": { - "type": "string" - } - }, - "required": [ - "Source", - "Target" - ], - "type": "object" - }, - "AWS::Amplify::App.EnvironmentVariable": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Name", - "Value" - ], - "type": "object" - }, - "AWS::Amplify::Branch": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Amplify::Branch" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::Amplify::Branch.BasicAuthConfig": { - "additionalProperties": false, - "properties": { - "EnableBasicAuth": { - "type": "boolean" - }, - "Password": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "required": [ - "Password", - "Username" - ], - "type": "object" - }, - "AWS::Amplify::Branch.EnvironmentVariable": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Name", - "Value" - ], - "type": "object" - }, - "AWS::Amplify::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": { - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Amplify::Domain" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::Amplify::Domain.SubDomainSetting": { - "additionalProperties": false, - "properties": { - "BranchName": { - "type": "string" - }, - "Prefix": { - "type": "string" - } - }, - "required": [ - "BranchName", - "Prefix" - ], - "type": "object" - }, - "AWS::AmplifyUIBuilder::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": { - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::AmplifyUIBuilder::Component" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::AmplifyUIBuilder::Component.ActionParameters": { - "additionalProperties": false, - "properties": { - "Anchor": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" - }, - "Fields": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" - } - }, - "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": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AmplifyUIBuilder::Component.ComponentBindingPropertiesValueProperties": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "DefaultValue": { - "type": "string" - }, - "Field": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Model": { - "type": "string" - }, - "Predicates": { - "items": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.Predicate" - }, - "type": "array" - }, - "UserAttribute": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AmplifyUIBuilder::Component.ComponentChild": { - "additionalProperties": false, - "properties": { - "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" - } - }, - "type": "object" - }, - "Name": { - "type": "string" - }, - "Properties": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" - } - }, - "type": "object" - } - }, - "required": [ - "ComponentType", - "Name", - "Properties" - ], - "type": "object" - }, - "AWS::AmplifyUIBuilder::Component.ComponentConditionProperty": { - "additionalProperties": false, - "properties": { - "Else": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" - }, - "Field": { - "type": "string" - }, - "Operand": { - "type": "string" - }, - "OperandType": { - "type": "string" - }, - "Operator": { - "type": "string" - }, - "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": [ - "Model" - ], - "type": "object" - }, - "AWS::AmplifyUIBuilder::Component.ComponentEvent": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "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" - } - }, - "type": "object" - }, - "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" - }, - "DefaultValue": { - "type": "string" - }, - "Event": { - "type": "string" - }, - "ImportedValue": { - "type": "string" - }, - "Model": { - "type": "string" - }, - "Property": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "UserAttribute": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AmplifyUIBuilder::Component.ComponentPropertyBindingProperties": { - "additionalProperties": false, - "properties": { - "Field": { - "type": "string" - }, - "Property": { - "type": "string" - } - }, - "required": [ - "Property" - ], - "type": "object" - }, - "AWS::AmplifyUIBuilder::Component.ComponentVariant": { - "additionalProperties": false, - "properties": { - "Overrides": { - "type": "object" - }, - "VariantValues": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "AWS::AmplifyUIBuilder::Component.FormBindingElement": { - "additionalProperties": false, - "properties": { - "Element": { - "type": "string" - }, - "Property": { - "type": "string" - } - }, - "required": [ - "Element", - "Property" - ], - "type": "object" - }, - "AWS::AmplifyUIBuilder::Component.MutationActionSetStateParameter": { - "additionalProperties": false, - "properties": { - "ComponentName": { - "type": "string" - }, - "Property": { - "type": "string" - }, - "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" - }, - "Field": { - "type": "string" - }, - "Operand": { - "type": "string" - }, - "Operator": { - "type": "string" - }, - "Or": { - "items": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.Predicate" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::AmplifyUIBuilder::Component.SortProperty": { - "additionalProperties": false, - "properties": { - "Direction": { - "type": "string" - }, - "Field": { - "type": "string" - } - }, - "required": [ - "Direction", - "Field" - ], - "type": "object" - }, - "AWS::AmplifyUIBuilder::Form": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "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" - }, - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::AmplifyUIBuilder::Form" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::AmplifyUIBuilder::Form.FieldConfig": { - "additionalProperties": false, - "properties": { - "Excluded": { - "type": "boolean" - }, - "InputType": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FieldInputConfig" - }, - "Label": { - "type": "string" - }, - "Position": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FieldPosition" - }, - "Validations": { - "items": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FieldValidationConfiguration" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::AmplifyUIBuilder::Form.FieldInputConfig": { - "additionalProperties": false, - "properties": { - "DefaultChecked": { - "type": "boolean" - }, - "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": [ - "Type" - ], - "type": "object" - }, - "AWS::AmplifyUIBuilder::Form.FieldPosition": { - "additionalProperties": false, - "properties": { - "Below": { - "type": "string" - }, - "Fixed": { - "type": "string" - }, - "RightOf": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AmplifyUIBuilder::Form.FieldValidationConfiguration": { - "additionalProperties": false, - "properties": { - "NumValues": { - "items": { - "type": "number" - }, - "type": "array" - }, - "StrValues": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Type": { - "type": "string" - }, - "ValidationMessage": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::AmplifyUIBuilder::Form.FormButton": { - "additionalProperties": false, - "properties": { - "Children": { - "type": "string" - }, - "Excluded": { - "type": "boolean" - }, - "Position": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FieldPosition" - } - }, - "type": "object" - }, - "AWS::AmplifyUIBuilder::Form.FormCTA": { - "additionalProperties": false, - "properties": { - "Cancel": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormButton" - }, - "Clear": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormButton" - }, - "Position": { - "type": "string" - }, - "Submit": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormButton" - } - }, - "type": "object" - }, - "AWS::AmplifyUIBuilder::Form.FormDataTypeConfig": { - "additionalProperties": false, - "properties": { - "DataSourceType": { - "type": "string" - }, - "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" - }, - "OuterPadding": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormStyleConfig" - }, - "VerticalGap": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormStyleConfig" - } - }, - "type": "object" - }, - "AWS::AmplifyUIBuilder::Form.FormStyleConfig": { - "additionalProperties": false, - "properties": { - "TokenReference": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AmplifyUIBuilder::Form.SectionalElement": { - "additionalProperties": false, - "properties": { - "Level": { - "type": "number" - }, - "Orientation": { - "type": "string" - }, - "Position": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FieldPosition" - }, - "Text": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::AmplifyUIBuilder::Form.ValueMapping": { - "additionalProperties": false, - "properties": { - "DisplayValue": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormInputValueProperty" - }, - "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" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "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" - }, - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::AmplifyUIBuilder::Theme" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::AmplifyUIBuilder::Theme.ThemeValue": { - "additionalProperties": false, - "properties": { - "Children": { - "items": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Theme.ThemeValues" - }, - "type": "array" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AmplifyUIBuilder::Theme.ThemeValues": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Theme.ThemeValue" - } - }, - "type": "object" - }, - "AWS::ApiGateway::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": { - "CloudWatchRoleArn": { - "type": "string" - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGateway::Account" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::ApiGateway::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": { - "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" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::ApiGateway::ApiKey.StageKey": { - "additionalProperties": false, - "properties": { - "RestApiId": { - "type": "string" - }, - "StageName": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ApiGateway::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": { - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGateway::Authorizer" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGateway::BasePathMapping": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "BasePath": { - "type": "string" - }, - "DomainName": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "RestApiId": { - "type": "string" - }, - "Stage": { - "type": "string" - } - }, - "required": [ - "DomainName" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGateway::BasePathMapping" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGateway::ClientCertificate": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "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::ApiGateway::ClientCertificate" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::ApiGateway::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": { - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGateway::Deployment" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGateway::Deployment.AccessLogSetting": { - "additionalProperties": false, - "properties": { - "DestinationArn": { - "type": "string" - }, - "Format": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ApiGateway::Deployment.CanarySetting": { - "additionalProperties": false, - "properties": { - "PercentTraffic": { - "type": "number" - }, - "StageVariableOverrides": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "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" - } - }, - "type": "object" - }, - "UseStageCache": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::ApiGateway::Deployment.MethodSetting": { - "additionalProperties": false, - "properties": { - "CacheDataEncrypted": { - "type": "boolean" - }, - "CacheTtlInSeconds": { - "type": "number" - }, - "CachingEnabled": { - "type": "boolean" - }, - "DataTraceEnabled": { - "type": "boolean" - }, - "HttpMethod": { - "type": "string" - }, - "LoggingLevel": { - "type": "string" - }, - "MetricsEnabled": { - "type": "boolean" - }, - "ResourcePath": { - "type": "string" - }, - "ThrottlingBurstLimit": { - "type": "number" - }, - "ThrottlingRateLimit": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ApiGateway::Deployment.StageDescription": { - "additionalProperties": false, - "properties": { - "AccessLogSetting": { - "$ref": "#/definitions/AWS::ApiGateway::Deployment.AccessLogSetting" - }, - "CacheClusterEnabled": { - "type": "boolean" - }, - "CacheClusterSize": { - "type": "string" - }, - "CacheDataEncrypted": { - "type": "boolean" - }, - "CacheTtlInSeconds": { - "type": "number" - }, - "CachingEnabled": { - "type": "boolean" - }, - "CanarySetting": { - "$ref": "#/definitions/AWS::ApiGateway::Deployment.CanarySetting" - }, - "ClientCertificateId": { - "type": "string" - }, - "DataTraceEnabled": { - "type": "boolean" - }, - "Description": { - "type": "string" - }, - "DocumentationVersion": { - "type": "string" - }, - "LoggingLevel": { - "type": "string" - }, - "MethodSettings": { - "items": { - "$ref": "#/definitions/AWS::ApiGateway::Deployment.MethodSetting" - }, - "type": "array" - }, - "MetricsEnabled": { - "type": "boolean" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "ThrottlingBurstLimit": { - "type": "number" - }, - "ThrottlingRateLimit": { - "type": "number" - }, - "TracingEnabled": { - "type": "boolean" - }, - "Variables": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "AWS::ApiGateway::DocumentationPart": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "Location": { - "$ref": "#/definitions/AWS::ApiGateway::DocumentationPart.Location" - }, - "Properties": { - "type": "string" - }, - "RestApiId": { - "type": "string" - } - }, - "required": [ - "Location", - "Properties", - "RestApiId" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGateway::DocumentationPart" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGateway::DocumentationPart.Location": { - "additionalProperties": false, - "properties": { - "Method": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Path": { - "type": "string" - }, - "StatusCode": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ApiGateway::DocumentationVersion": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "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" - }, - "DocumentationVersion": { - "type": "string" - }, - "RestApiId": { - "type": "string" - } - }, - "required": [ - "DocumentationVersion", - "RestApiId" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGateway::DocumentationVersion" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGateway::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" - }, - "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" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::ApiGateway::DomainName.EndpointConfiguration": { - "additionalProperties": false, - "properties": { - "Types": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::ApiGateway::DomainName.MutualTlsAuthentication": { - "additionalProperties": false, - "properties": { - "TruststoreUri": { - "type": "string" - }, - "TruststoreVersion": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ApiGateway::GatewayResponse": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGateway::GatewayResponse" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGateway::Method": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "ApiKeyRequired": { - "type": "boolean" - }, - "AuthorizationScopes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AuthorizationType": { - "type": "string" - }, - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGateway::Method" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGateway::Method.Integration": { - "additionalProperties": false, - "properties": { - "CacheKeyParameters": { - "items": { - "type": "string" - }, - "type": "array" - }, - "CacheNamespace": { - "type": "string" - }, - "ConnectionId": { - "type": "string" - }, - "ConnectionType": { - "type": "string" - }, - "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" - } - }, - "type": "object" - }, - "RequestTemplates": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "TimeoutInMillis": { - "type": "number" - }, - "Type": { - "type": "string" - }, - "Uri": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ApiGateway::Method.IntegrationResponse": { - "additionalProperties": false, - "properties": { - "ContentHandling": { - "type": "string" - }, - "ResponseParameters": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "ResponseTemplates": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "SelectionPattern": { - "type": "string" - }, - "StatusCode": { - "type": "string" - } - }, - "required": [ - "StatusCode" - ], - "type": "object" - }, - "AWS::ApiGateway::Method.MethodResponse": { - "additionalProperties": false, - "properties": { - "ResponseModels": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "ResponseParameters": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "boolean" - } - }, - "type": "object" - }, - "StatusCode": { - "type": "string" - } - }, - "required": [ - "StatusCode" - ], - "type": "object" - }, - "AWS::ApiGateway::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": { - "ContentType": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "RestApiId": { - "type": "string" - }, - "Schema": { - "type": "object" - } - }, - "required": [ - "RestApiId" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGateway::Model" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGateway::RequestValidator": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "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" - }, - "RestApiId": { - "type": "string" - }, - "ValidateRequestBody": { - "type": "boolean" - }, - "ValidateRequestParameters": { - "type": "boolean" - } - }, - "required": [ - "RestApiId" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGateway::RequestValidator" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGateway::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": { - "ParentId": { - "type": "string" - }, - "PathPart": { - "type": "string" - }, - "RestApiId": { - "type": "string" - } - }, - "required": [ - "ParentId", - "PathPart", - "RestApiId" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGateway::Resource" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGateway::RestApi": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "ApiKeySourceType": { - "type": "string" - }, - "BinaryMediaTypes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Body": { - "type": "object" - }, - "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" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::ApiGateway::RestApi.EndpointConfiguration": { - "additionalProperties": false, - "properties": { - "Types": { - "items": { - "type": "string" - }, - "type": "array" - }, - "VpcEndpointIds": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::ApiGateway::RestApi.S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "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" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "AccessLogSetting": { - "$ref": "#/definitions/AWS::ApiGateway::Stage.AccessLogSetting" - }, - "CacheClusterEnabled": { - "type": "boolean" - }, - "CacheClusterSize": { - "type": "string" - }, - "CanarySetting": { - "$ref": "#/definitions/AWS::ApiGateway::Stage.CanarySetting" - }, - "ClientCertificateId": { - "type": "string" - }, - "DeploymentId": { - "type": "string" - }, - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGateway::Stage" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGateway::Stage.AccessLogSetting": { - "additionalProperties": false, - "properties": { - "DestinationArn": { - "type": "string" - }, - "Format": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ApiGateway::Stage.CanarySetting": { - "additionalProperties": false, - "properties": { - "DeploymentId": { - "type": "string" - }, - "PercentTraffic": { - "type": "number" - }, - "StageVariableOverrides": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "UseStageCache": { - "type": "boolean" - } - }, - "type": "object" - }, - "AWS::ApiGateway::Stage.MethodSetting": { - "additionalProperties": false, - "properties": { - "CacheDataEncrypted": { - "type": "boolean" - }, - "CacheTtlInSeconds": { - "type": "number" - }, - "CachingEnabled": { - "type": "boolean" - }, - "DataTraceEnabled": { - "type": "boolean" - }, - "HttpMethod": { - "type": "string" - }, - "LoggingLevel": { - "type": "string" - }, - "MetricsEnabled": { - "type": "boolean" - }, - "ResourcePath": { - "type": "string" - }, - "ThrottlingBurstLimit": { - "type": "number" - }, - "ThrottlingRateLimit": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ApiGateway::UsagePlan": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "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" - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGateway::UsagePlan" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::ApiGateway::UsagePlan.ApiStage": { - "additionalProperties": false, - "properties": { - "ApiId": { - "type": "string" - }, - "Stage": { - "type": "string" - }, - "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" - }, - "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" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGateway::UsagePlanKey" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGateway::VpcLink": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "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" - }, - "TargetArns": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "Name", - "TargetArns" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGateway::VpcLink" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGatewayV2::Api": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "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" - }, - "Target": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGatewayV2::Api" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::ApiGatewayV2::Api.BodyS3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Etag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ApiGatewayV2::Api.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::ApiGatewayV2::ApiGatewayManagedOverrides": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGatewayV2::ApiGatewayManagedOverrides" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.AccessLogSettings": { - "additionalProperties": false, - "properties": { - "DestinationArn": { - "type": "string" - }, - "Format": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.IntegrationOverrides": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IntegrationMethod": { - "type": "string" - }, - "PayloadFormatVersion": { - "type": "string" - }, - "TimeoutInMillis": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteOverrides": { - "additionalProperties": false, - "properties": { - "AuthorizationScopes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AuthorizationType": { - "type": "string" - }, - "AuthorizerId": { - "type": "string" - }, - "OperationName": { - "type": "string" - }, - "Target": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteSettings": { - "additionalProperties": false, - "properties": { - "DataTraceEnabled": { - "type": "boolean" - }, - "DetailedMetricsEnabled": { - "type": "boolean" - }, - "LoggingLevel": { - "type": "string" - }, - "ThrottlingBurstLimit": { - "type": "number" - }, - "ThrottlingRateLimit": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.StageOverrides": { - "additionalProperties": false, - "properties": { - "AccessLogSettings": { - "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.AccessLogSettings" - }, - "AutoDeploy": { - "type": "boolean" - }, - "DefaultRouteSettings": { - "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteSettings" - }, - "Description": { - "type": "string" - }, - "RouteSettings": { - "type": "object" - }, - "StageVariables": { - "type": "object" - } - }, - "type": "object" - }, - "AWS::ApiGatewayV2::ApiMapping": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "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" - }, - "ApiMappingKey": { - "type": "string" - }, - "DomainName": { - "type": "string" - }, - "Stage": { - "type": "string" - } - }, - "required": [ - "ApiId", - "DomainName", - "Stage" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGatewayV2::ApiMapping" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGatewayV2::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": { - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGatewayV2::Authorizer" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGatewayV2::Authorizer.JWTConfiguration": { - "additionalProperties": false, - "properties": { - "Audience": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Issuer": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ApiGatewayV2::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": { - "ApiId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "StageName": { - "type": "string" - } - }, - "required": [ - "ApiId" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGatewayV2::Deployment" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGatewayV2::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": { - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGatewayV2::DomainName" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGatewayV2::DomainName.DomainNameConfiguration": { - "additionalProperties": false, - "properties": { - "CertificateArn": { - "type": "string" - }, - "CertificateName": { - "type": "string" - }, - "EndpointType": { - "type": "string" - }, - "OwnershipVerificationCertificateArn": { - "type": "string" - }, - "SecurityPolicy": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ApiGatewayV2::DomainName.MutualTlsAuthentication": { - "additionalProperties": false, - "properties": { - "TruststoreUri": { - "type": "string" - }, - "TruststoreVersion": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ApiGatewayV2::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": { - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGatewayV2::Integration" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGatewayV2::Integration.ResponseParameter": { - "additionalProperties": false, - "properties": { - "Destination": { - "type": "string" - }, - "Source": { - "type": "string" - } - }, - "required": [ - "Destination", - "Source" - ], - "type": "object" - }, - "AWS::ApiGatewayV2::Integration.ResponseParameterList": { - "additionalProperties": false, - "properties": { - "ResponseParameters": { - "items": { - "$ref": "#/definitions/AWS::ApiGatewayV2::Integration.ResponseParameter" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::ApiGatewayV2::Integration.TlsConfig": { - "additionalProperties": false, - "properties": { - "ServerNameToVerify": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ApiGatewayV2::IntegrationResponse": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "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" - }, - "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::ApiGatewayV2::IntegrationResponse" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGatewayV2::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": { - "ApiId": { - "type": "string" - }, - "ContentType": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Schema": { - "type": "object" - } - }, - "required": [ - "ApiId", - "Name", - "Schema" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGatewayV2::Model" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGatewayV2::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": { - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGatewayV2::Route" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGatewayV2::Route.ParameterConstraints": { - "additionalProperties": false, - "properties": { - "Required": { - "type": "boolean" - } - }, - "required": [ - "Required" - ], - "type": "object" - }, - "AWS::ApiGatewayV2::RouteResponse": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGatewayV2::RouteResponse" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGatewayV2::RouteResponse.ParameterConstraints": { - "additionalProperties": false, - "properties": { - "Required": { - "type": "boolean" - } - }, - "required": [ - "Required" - ], - "type": "object" - }, - "AWS::ApiGatewayV2::Stage": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGatewayV2::Stage" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::ApiGatewayV2::Stage.AccessLogSettings": { - "additionalProperties": false, - "properties": { - "DestinationArn": { - "type": "string" - }, - "Format": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::ApiGatewayV2::Stage.RouteSettings": { - "additionalProperties": false, - "properties": { - "DataTraceEnabled": { - "type": "boolean" - }, - "DetailedMetricsEnabled": { - "type": "boolean" - }, - "LoggingLevel": { - "type": "string" - }, - "ThrottlingBurstLimit": { - "type": "number" - }, - "ThrottlingRateLimit": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ApiGatewayV2::VpcLink": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "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" - }, - "Tags": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "Name", - "SubnetIds" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::ApiGatewayV2::VpcLink" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::AppConfig::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": { - "items": { - "$ref": "#/definitions/AWS::AppConfig::Application.Tags" - }, - "type": "array" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::AppConfig::Application" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::AppConfig::Application.Tags": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AppConfig::ConfigurationProfile": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "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" - }, - "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::AppConfig::ConfigurationProfile" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::AppConfig::ConfigurationProfile.Tags": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AppConfig::ConfigurationProfile.Validators": { - "additionalProperties": false, - "properties": { - "Content": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AppConfig::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": { - "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": "array" - } - }, - "required": [ - "ApplicationId", - "ConfigurationProfileId", - "ConfigurationVersion", - "DeploymentStrategyId", - "EnvironmentId" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::AppConfig::Deployment" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::AppConfig::Deployment.Tags": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::AppConfig::DeploymentStrategy": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::AppConfig::DeploymentStrategy" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::AppConfig::DeploymentStrategy.Tags": { - "additionalProperties": false, - "properties": { - "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": [ - { - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::AppConfig::Environment" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::AppConfig::Environment.Monitors": { - "additionalProperties": false, - "properties": { - "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" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "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" - }, - "ConfigurationProfileId": { - "type": "string" - }, - "Content": { - "type": "string" - }, - "ContentType": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "LatestVersionNumber": { - "type": "number" - } - }, - "required": [ - "ApplicationId", - "ConfigurationProfileId", - "Content", - "ContentType" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::AppConfig::HostedConfigurationVersion" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::AppFlow::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": { - "ConnectorLabel": { - "type": "string" - }, - "ConnectorProvisioningConfig": { - "$ref": "#/definitions/AWS::AppFlow::Connector.ConnectorProvisioningConfig" - }, - "ConnectorProvisioningType": { - "type": "string" - }, - "Description": { - "type": "string" - } - }, - "required": [ - "ConnectorProvisioningConfig", - "ConnectorProvisioningType" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::AppFlow::Connector" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "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" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "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" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::AppFlow::ConnectorProfile" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "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" - }, - "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" - }, - "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\u003cNumber\u003e", - "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\u003cAWS::EC2::AvailabilityZone::Name\u003e", - "List\u003cAWS::EC2::Image::Id\u003e", - "List\u003cAWS::EC2::Instance::Id\u003e", - "List\u003cAWS::EC2::SecurityGroup::GroupName\u003e", - "List\u003cAWS::EC2::SecurityGroup::Id\u003e", - "List\u003cAWS::EC2::Subnet::Id\u003e", - "List\u003cAWS::EC2::Volume::Id\u003e", - "List\u003cAWS::EC2::VPC::Id\u003e", - "List\u003cAWS::Route53::HostedZone::Id\u003e", - "List\u003cString\u003e", - "AWS::SSM::Parameter::Name", - "AWS::SSM::Parameter::Value\u003cString\u003e", - "AWS::SSM::Parameter::Value\u003cList\u003cString\u003e\u003e", - "AWS::SSM::Parameter::Value\u003cCommaDelimitedList\u003e", - "AWS::SSM::Parameter::Value\u003cAWS::EC2::AvailabilityZone::Name\u003e", - "AWS::SSM::Parameter::Value\u003cAWS::EC2::Image::Id\u003e", - "AWS::SSM::Parameter::Value\u003cAWS::EC2::Instance::Id\u003e", - "AWS::SSM::Parameter::Value\u003cAWS::EC2::SecurityGroup::GroupName\u003e", - "AWS::SSM::Parameter::Value\u003cAWS::EC2::SecurityGroup::Id\u003e", - "AWS::SSM::Parameter::Value\u003cAWS::EC2::Subnet::Id\u003e", - "AWS::SSM::Parameter::Value\u003cAWS::EC2::Volume::Id\u003e", - "AWS::SSM::Parameter::Value\u003cAWS::EC2::VPC::Id\u003e", - "AWS::SSM::Parameter::Value\u003cAWS::Route53::HostedZone::Id\u003e", - "AWS::SSM::Parameter::Value\u003cList\u003cAWS::EC2::AvailabilityZone::Name\u003e\u003e", - "AWS::SSM::Parameter::Value\u003cList\u003cAWS::EC2::Image::Id\u003e\u003e", - "AWS::SSM::Parameter::Value\u003cList\u003cAWS::EC2::Instance::Id\u003e\u003e", - "AWS::SSM::Parameter::Value\u003cList\u003cAWS::EC2::SecurityGroup::GroupName\u003e\u003e", - "AWS::SSM::Parameter::Value\u003cList\u003cAWS::EC2::SecurityGroup::Id\u003e\u003e", - "AWS::SSM::Parameter::Value\u003cList\u003cAWS::EC2::Subnet::Id\u003e\u003e", - "AWS::SSM::Parameter::Value\u003cList\u003cAWS::EC2::Volume::Id\u003e\u003e", - "AWS::SSM::Parameter::Value\u003cList\u003cAWS::EC2::VPC::Id\u003e\u003e", - "AWS::SSM::Parameter::Value\u003cList\u003cAWS::Route53::HostedZone::Id\u003e\u003e" - ], - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "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" - }, - "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": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "anyOf": [ - { - "$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/AWS::Pinpoint::APNSVoipChannel" - }, - { - "$ref": "#/definitions/AWS::Pinpoint::APNSVoipSandboxChannel" - }, - { - "$ref": "#/definitions/AWS::Pinpoint::App" - }, - { - "$ref": "#/definitions/AWS::Pinpoint::ApplicationSettings" - }, - { - "$ref": "#/definitions/AWS::Pinpoint::BaiduChannel" - }, - { - "$ref": "#/definitions/AWS::Pinpoint::Campaign" - }, - { - "$ref": "#/definitions/AWS::Pinpoint::EmailChannel" - }, - { - "$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/CustomResource" - } - ] - } - }, - "type": "object" - }, - "Transform": { - "oneOf": [ - { - "type": [ - "string" - ] - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ] - } - }, - "required": [ - "Resources" - ], - "type": "object" -} \ No newline at end of file diff --git a/samtranslator/schema/schema.json b/samtranslator/schema/schema.json index c2a7d19b4..7fd717604 100644 --- a/samtranslator/schema/schema.json +++ b/samtranslator/schema/schema.json @@ -38,25 +38,39 @@ "additionalProperties": false, "properties": { "ApiPassthrough": { - "$ref": "#/definitions/AWS::ACMPCA::Certificate.ApiPassthrough" + "$ref": "#/definitions/AWS::ACMPCA::Certificate.ApiPassthrough", + "markdownDescription": "Specifies X\\.509 certificate information to be included in the issued certificate\\. An `APIPassthrough` or `APICSRPassthrough` template variant must be selected, or else this parameter is ignored\\. \n*Required*: No \n*Type*: [ApiPassthrough](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-apipassthrough.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiPassthrough" }, "CertificateAuthorityArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the private CA issues the certificate\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateAuthorityArn", "type": "string" }, "CertificateSigningRequest": { + "markdownDescription": "The certificate signing request \\(CSR\\) for the certificate\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateSigningRequest", "type": "string" }, "SigningAlgorithm": { + "markdownDescription": "The name of the algorithm that will be used to sign the certificate to be issued\\. \nThis parameter should not be confused with the `SigningAlgorithm` parameter used to sign a CSR in the `CreateCertificateAuthority` action\\. \nThe specified signing algorithm family \\(RSA or ECDSA\\) must match the algorithm family of the CA's secret key\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `SHA256WITHECDSA | SHA256WITHRSA | SHA384WITHECDSA | SHA384WITHRSA | SHA512WITHECDSA | SHA512WITHRSA` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SigningAlgorithm", "type": "string" }, "TemplateArn": { + "markdownDescription": "Specifies a custom configuration template to use when issuing a certificate\\. If this parameter is not provided, ACM Private CA defaults to the `EndEntityCertificate/V1` template\\. For more information about ACM Private CA templates, see [Using Templates](https://docs.aws.amazon.com/acm-pca/latest/userguide/UsingTemplates.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TemplateArn", "type": "string" }, "Validity": { - "$ref": "#/definitions/AWS::ACMPCA::Certificate.Validity" + "$ref": "#/definitions/AWS::ACMPCA::Certificate.Validity", + "markdownDescription": "The period of time during which the certificate will be valid\\. \n*Required*: Yes \n*Type*: [Validity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-validity.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Validity" }, "ValidityNotBefore": { - "$ref": "#/definitions/AWS::ACMPCA::Certificate.Validity" + "$ref": "#/definitions/AWS::ACMPCA::Certificate.Validity", + "markdownDescription": "Information describing the start of the validity period of the certificate\\. This parameter sets the \u201cNot Before\" date for the certificate\\. \nBy default, when issuing a certificate, ACM Private CA sets the \"Not Before\" date to the issuance time minus 60 minutes\\. This compensates for clock inconsistencies across computer systems\\. The `ValidityNotBefore` parameter can be used to customize the \u201cNot Before\u201d value\\. \nUnlike the `Validity` parameter, the `ValidityNotBefore` parameter is optional\\. \nThe `ValidityNotBefore` value is expressed as an explicit date and time, using the `Validity` type value `ABSOLUTE`\\. \n*Required*: No \n*Type*: [Validity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-validity.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ValidityNotBefore" } }, "required": [ @@ -92,10 +106,14 @@ "additionalProperties": false, "properties": { "Extensions": { - "$ref": "#/definitions/AWS::ACMPCA::Certificate.Extensions" + "$ref": "#/definitions/AWS::ACMPCA::Certificate.Extensions", + "markdownDescription": "Specifies X\\.509 extension information for a certificate\\. \n*Required*: No \n*Type*: [Extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-extensions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Extensions" }, "Subject": { - "$ref": "#/definitions/AWS::ACMPCA::Certificate.Subject" + "$ref": "#/definitions/AWS::ACMPCA::Certificate.Subject", + "markdownDescription": "Contains information about the certificate subject\\. The Subject field in the certificate identifies the entity that owns or controls the public key in the certificate\\. The entity can be a user, computer, device, or service\\. The Subject must contain an X\\.500 distinguished name \\(DN\\)\\. A DN is a sequence of relative distinguished names \\(RDNs\\)\\. The RDNs are separated by commas in the certificate\\. \n*Required*: No \n*Type*: [Subject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-subject.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subject" } }, "type": "object" @@ -139,9 +157,13 @@ "additionalProperties": false, "properties": { "NameAssigner": { + "markdownDescription": "Specifies the name assigner\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NameAssigner", "type": "string" }, "PartyName": { + "markdownDescription": "Specifies the party name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PartyName", "type": "string" } }, @@ -155,9 +177,13 @@ "additionalProperties": false, "properties": { "ExtendedKeyUsageObjectIdentifier": { + "markdownDescription": "Specifies a custom `ExtendedKeyUsage` with an object identifier \\(OID\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `^([0-2])\\.([0-9]|([0-3][0-9]))((\\.([0-9]+)){0,126})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExtendedKeyUsageObjectIdentifier", "type": "string" }, "ExtendedKeyUsageType": { + "markdownDescription": "Specifies a standard `ExtendedKeyUsage` as defined as in [RFC 5280](https://tools.ietf.org/html/rfc5280#section-4.2.1.12)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CERTIFICATE_TRANSPARENCY | CLIENT_AUTH | CODE_SIGNING | DOCUMENT_SIGNING | EMAIL_PROTECTION | OCSP_SIGNING | SERVER_AUTH | SMART_CARD_LOGIN | TIME_STAMPING` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExtendedKeyUsageType", "type": "string" } }, @@ -170,6 +196,8 @@ "items": { "$ref": "#/definitions/AWS::ACMPCA::Certificate.PolicyInformation" }, + "markdownDescription": "Contains a sequence of one or more policy information terms, each of which consists of an object identifier \\(OID\\) and optional qualifiers\\. For more information, see NIST's definition of [Object Identifier \\(OID\\)](https://csrc.nist.gov/glossary/term/Object_Identifier)\\. \nIn an end\\-entity certificate, these terms indicate the policy under which the certificate was issued and the purposes for which it may be used\\. In a CA certificate, these terms limit the set of policies for certification paths that include this certificate\\. \n*Required*: No \n*Type*: List of [PolicyInformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-policyinformation.html) \n*Maximum*: `20` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificatePolicies", "type": "array" }, "CustomExtensions": { @@ -182,15 +210,21 @@ "items": { "$ref": "#/definitions/AWS::ACMPCA::Certificate.ExtendedKeyUsage" }, + "markdownDescription": "Specifies additional purposes for which the certified public key may be used other than basic purposes indicated in the `KeyUsage` extension\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-extendedkeyusage.html) of [ExtendedKeyUsage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-extendedkeyusage.html) \n*Maximum*: `20` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExtendedKeyUsage", "type": "array" }, "KeyUsage": { - "$ref": "#/definitions/AWS::ACMPCA::Certificate.KeyUsage" + "$ref": "#/definitions/AWS::ACMPCA::Certificate.KeyUsage", + "markdownDescription": "Defines one or more purposes for which the key contained in the certificate can be used\\. Default value for each option is false\\. \n*Required*: No \n*Type*: [KeyUsage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-keyusage.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyUsage" }, "SubjectAlternativeNames": { "items": { "$ref": "#/definitions/AWS::ACMPCA::Certificate.GeneralName" }, + "markdownDescription": "The subject alternative name extension allows identities to be bound to the subject of the certificate\\. These identities may be included in addition to or in place of the identity in the subject field of the certificate\\. \n*Required*: No \n*Type*: List of [GeneralName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-generalname.html) \n*Maximum*: `20` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubjectAlternativeNames", "type": "array" } }, @@ -200,27 +234,43 @@ "additionalProperties": false, "properties": { "DirectoryName": { - "$ref": "#/definitions/AWS::ACMPCA::Certificate.Subject" + "$ref": "#/definitions/AWS::ACMPCA::Certificate.Subject", + "markdownDescription": "Contains information about the certificate subject\\. The certificate can be one issued by your private certificate authority \\(CA\\) or it can be your private CA certificate\\. The Subject field in the certificate identifies the entity that owns or controls the public key in the certificate\\. The entity can be a user, computer, device, or service\\. The Subject must contain an X\\.500 distinguished name \\(DN\\)\\. A DN is a sequence of relative distinguished names \\(RDNs\\)\\. The RDNs are separated by commas in the certificate\\. The DN must be unique for each entity, but your private CA can issue more than one certificate with the same DN to the same entity\\. \n*Required*: No \n*Type*: [Subject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-subject.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DirectoryName" }, "DnsName": { + "markdownDescription": "Represents `GeneralName` as a DNS name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `253` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DnsName", "type": "string" }, "EdiPartyName": { - "$ref": "#/definitions/AWS::ACMPCA::Certificate.EdiPartyName" + "$ref": "#/definitions/AWS::ACMPCA::Certificate.EdiPartyName", + "markdownDescription": "Represents `GeneralName` as an `EdiPartyName` object\\. \n*Required*: No \n*Type*: [EdiPartyName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-edipartyname.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EdiPartyName" }, "IpAddress": { + "markdownDescription": "Represents `GeneralName` as an IPv4 or IPv6 address\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `39` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpAddress", "type": "string" }, "OtherName": { - "$ref": "#/definitions/AWS::ACMPCA::Certificate.OtherName" + "$ref": "#/definitions/AWS::ACMPCA::Certificate.OtherName", + "markdownDescription": "Represents `GeneralName` using an `OtherName` object\\. \n*Required*: No \n*Type*: [OtherName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-othername.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OtherName" }, "RegisteredId": { + "markdownDescription": "Represents `GeneralName` as an object identifier \\(OID\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `^([0-2])\\.([0-9]|([0-3][0-9]))((\\.([0-9]+)){0,126})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RegisteredId", "type": "string" }, "Rfc822Name": { + "markdownDescription": "Represents `GeneralName` as an [RFC 822](https://tools.ietf.org/html/rfc822) email address\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Rfc822Name", "type": "string" }, "UniformResourceIdentifier": { + "markdownDescription": "Represents `GeneralName` as a URI\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `253` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UniformResourceIdentifier", "type": "string" } }, @@ -230,30 +280,48 @@ "additionalProperties": false, "properties": { "CRLSign": { + "markdownDescription": "Key can be used to sign CRLs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CRLSign", "type": "boolean" }, "DataEncipherment": { + "markdownDescription": "Key can be used to decipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataEncipherment", "type": "boolean" }, "DecipherOnly": { + "markdownDescription": "Key can be used only to decipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DecipherOnly", "type": "boolean" }, "DigitalSignature": { + "markdownDescription": "Key can be used for digital signing\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DigitalSignature", "type": "boolean" }, "EncipherOnly": { + "markdownDescription": "Key can be used only to encipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncipherOnly", "type": "boolean" }, "KeyAgreement": { + "markdownDescription": "Key can be used in a key\\-agreement protocol\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyAgreement", "type": "boolean" }, "KeyCertSign": { + "markdownDescription": "Key can be used to sign certificates\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyCertSign", "type": "boolean" }, "KeyEncipherment": { + "markdownDescription": "Key can be used to encipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyEncipherment", "type": "boolean" }, "NonRepudiation": { + "markdownDescription": "Key can be used for non\\-repudiation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NonRepudiation", "type": "boolean" } }, @@ -263,9 +331,13 @@ "additionalProperties": false, "properties": { "TypeId": { + "markdownDescription": "Specifies an OID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `^([0-2])\\.([0-9]|([0-3][0-9]))((\\.([0-9]+)){0,126})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TypeId", "type": "string" }, "Value": { + "markdownDescription": "Specifies an OID value\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", "type": "string" } }, @@ -279,12 +351,16 @@ "additionalProperties": false, "properties": { "CertPolicyId": { + "markdownDescription": "Specifies the object identifier \\(OID\\) of the certificate policy under which the certificate was issued\\. For more information, see NIST's definition of [Object Identifier \\(OID\\)](https://csrc.nist.gov/glossary/term/Object_Identifier)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `^([0-2])\\.([0-9]|([0-3][0-9]))((\\.([0-9]+)){0,126})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertPolicyId", "type": "string" }, "PolicyQualifiers": { "items": { "$ref": "#/definitions/AWS::ACMPCA::Certificate.PolicyQualifierInfo" }, + "markdownDescription": "Modifies the given `CertPolicyId` with a qualifier\\. ACM Private CA supports the certification practice statement \\(CPS\\) qualifier\\. \n*Required*: No \n*Type*: List of [PolicyQualifierInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-policyqualifierinfo.html) \n*Maximum*: `20` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PolicyQualifiers", "type": "array" } }, @@ -297,10 +373,14 @@ "additionalProperties": false, "properties": { "PolicyQualifierId": { + "markdownDescription": "Identifies the qualifier modifying a `CertPolicyId`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CPS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PolicyQualifierId", "type": "string" }, "Qualifier": { - "$ref": "#/definitions/AWS::ACMPCA::Certificate.Qualifier" + "$ref": "#/definitions/AWS::ACMPCA::Certificate.Qualifier", + "markdownDescription": "Defines the qualifier type\\. ACM Private CA supports the use of a URI for a CPS qualifier in this field\\. \n*Required*: Yes \n*Type*: [Qualifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-qualifier.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Qualifier" } }, "required": [ @@ -313,6 +393,8 @@ "additionalProperties": false, "properties": { "CpsUri": { + "markdownDescription": "Contains a pointer to a certification practice statement \\(CPS\\) published by the CA\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CpsUri", "type": "string" } }, @@ -325,9 +407,13 @@ "additionalProperties": false, "properties": { "CommonName": { + "markdownDescription": "For CA and end\\-entity certificates in a private PKI, the common name \\(CN\\) can be any string within the length limit\\. \nNote: In publicly trusted certificates, the common name must be a fully qualified domain name \\(FQDN\\) associated with the certificate subject\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CommonName", "type": "string" }, "Country": { + "markdownDescription": "Two\\-digit code that specifies the country in which the certificate subject located\\. \n*Required*: No \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `2` \n*Pattern*: `[A-Za-z]{2}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Country", "type": "string" }, "CustomAttributes": { @@ -337,39 +423,63 @@ "type": "array" }, "DistinguishedNameQualifier": { + "markdownDescription": "Disambiguating information for the certificate subject\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `[a-zA-Z0-9'()+-.?:/= ]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DistinguishedNameQualifier", "type": "string" }, "GenerationQualifier": { + "markdownDescription": "Typically a qualifier appended to the name of an individual\\. Examples include Jr\\. for junior, Sr\\. for senior, and III for third\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `3` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GenerationQualifier", "type": "string" }, "GivenName": { + "markdownDescription": "First name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `16` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GivenName", "type": "string" }, "Initials": { + "markdownDescription": "Concatenation that typically contains the first letter of the **GivenName**, the first letter of the middle name if one exists, and the first letter of the **Surname**\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `5` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Initials", "type": "string" }, "Locality": { + "markdownDescription": "The locality \\(such as a city or town\\) in which the certificate subject is located\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Locality", "type": "string" }, "Organization": { + "markdownDescription": "Legal name of the organization with which the certificate subject is affiliated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Organization", "type": "string" }, "OrganizationalUnit": { + "markdownDescription": "A subdivision or unit of the organization \\(such as sales or finance\\) with which the certificate subject is affiliated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OrganizationalUnit", "type": "string" }, "Pseudonym": { + "markdownDescription": "Typically a shortened version of a longer **GivenName**\\. For example, Jonathan is often shortened to John\\. Elizabeth is often shortened to Beth, Liz, or Eliza\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Pseudonym", "type": "string" }, "SerialNumber": { + "markdownDescription": "The certificate serial number\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `[a-zA-Z0-9'()+-.?:/= ]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SerialNumber", "type": "string" }, "State": { + "markdownDescription": "State in which the subject of the certificate is located\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "State", "type": "string" }, "Surname": { + "markdownDescription": "Family name\\. In the US and the UK, for example, the surname of an individual is ordered last\\. In Asian cultures the surname is typically ordered first\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `40` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Surname", "type": "string" }, "Title": { + "markdownDescription": "A title such as Mr\\. or Ms\\., which is pre\\-pended to the name to refer formally to the certificate subject\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Title", "type": "string" } }, @@ -379,9 +489,13 @@ "additionalProperties": false, "properties": { "Type": { + "markdownDescription": "Specifies whether the `Value` parameter represents days, months, or years\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ABSOLUTE | DAYS | END_DATE | MONTHS | YEARS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" }, "Value": { + "markdownDescription": "A long integer interpreted according to the value of `Type`, below\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", "type": "number" } }, @@ -427,30 +541,46 @@ "additionalProperties": false, "properties": { "CsrExtensions": { - "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.CsrExtensions" + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.CsrExtensions", + "markdownDescription": "Specifies information to be added to the extension section of the certificate signing request \\(CSR\\)\\. \n*Required*: No \n*Type*: [CsrExtensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-csrextensions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CsrExtensions" }, "KeyAlgorithm": { + "markdownDescription": "Type of the public key algorithm and size, in bits, of the key pair that your CA creates when it issues a certificate\\. When you create a subordinate CA, you must use a key algorithm supported by the parent CA\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EC_prime256v1 | EC_secp384r1 | RSA_2048 | RSA_4096` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyAlgorithm", "type": "string" }, "KeyStorageSecurityStandard": { + "markdownDescription": "Specifies a cryptographic key management compliance standard used for handling CA keys\\. \nDefault: FIPS\\_140\\_2\\_LEVEL\\_3\\_OR\\_HIGHER \nNote: `FIPS_140_2_LEVEL_3_OR_HIGHER` is not supported in Region ap\\-northeast\\-3\\. When creating a CA in the ap\\-northeast\\-3, you must provide `FIPS_140_2_LEVEL_2_OR_HIGHER` as the argument for `KeyStorageSecurityStandard`\\. Failure to do this results in an `InvalidArgsException` with the message, \"A certificate authority cannot be created in this region with the specified security standard\\.\" \n*Required*: No \n*Type*: String \n*Allowed values*: `FIPS_140_2_LEVEL_2_OR_HIGHER | FIPS_140_2_LEVEL_3_OR_HIGHER` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyStorageSecurityStandard", "type": "string" }, "RevocationConfiguration": { - "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.RevocationConfiguration" + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.RevocationConfiguration", + "markdownDescription": "Information about the certificate revocation list \\(CRL\\) created and maintained by your private CA\\. Certificate revocation information used by the CreateCertificateAuthority and UpdateCertificateAuthority actions\\. Your certificate authority can create and maintain a certificate revocation list \\(CRL\\)\\. A CRL contains information about certificates that have been revoked\\. \n*Required*: No \n*Type*: [RevocationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-revocationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RevocationConfiguration" }, "SigningAlgorithm": { + "markdownDescription": "Name of the algorithm your private CA uses to sign certificate requests\\. \nThis parameter should not be confused with the `SigningAlgorithm` parameter used to sign certificates when they are issued\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SHA256WITHECDSA | SHA256WITHRSA | SHA384WITHECDSA | SHA384WITHRSA | SHA512WITHECDSA | SHA512WITHRSA` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SigningAlgorithm", "type": "string" }, "Subject": { - "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.Subject" + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.Subject", + "markdownDescription": "Structure that contains X\\.500 distinguished name information for your private CA\\. \n*Required*: Yes \n*Type*: [Subject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-subject.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subject" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Key\\-value pairs that will be attached to the new private CA\\. You can associate up to 50 tags with a private CA\\. For information using tags with IAM to manage permissions, see [Controlling Access Using IAM Tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Type": { + "markdownDescription": "Type of your private CA\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ROOT | SUBORDINATE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" }, "UsageMode": { @@ -490,10 +620,14 @@ "additionalProperties": false, "properties": { "AccessLocation": { - "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.GeneralName" + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.GeneralName", + "markdownDescription": "The location of `AccessDescription` information\\. \n*Required*: Yes \n*Type*: [GeneralName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-generalname.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccessLocation" }, "AccessMethod": { - "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.AccessMethod" + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.AccessMethod", + "markdownDescription": "The type and format of `AccessDescription` information\\. \n*Required*: Yes \n*Type*: [AccessMethod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-accessmethod.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccessMethod" } }, "required": [ @@ -506,9 +640,13 @@ "additionalProperties": false, "properties": { "AccessMethodType": { + "markdownDescription": "Specifies the `AccessMethod`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CA_REPOSITORY | RESOURCE_PKI_MANIFEST | RESOURCE_PKI_NOTIFY` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccessMethodType", "type": "string" }, "CustomObjectIdentifier": { + "markdownDescription": "An object identifier \\(OID\\) specifying the `AccessMethod`\\. The OID must satisfy the regular expression shown below\\. For more information, see NIST's definition of [Object Identifier \\(OID\\)](https://csrc.nist.gov/glossary/term/Object_Identifier)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `^([0-2])\\.([0-9]|([0-3][0-9]))((\\.([0-9]+)){0,126})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomObjectIdentifier", "type": "string" } }, @@ -518,18 +656,28 @@ "additionalProperties": false, "properties": { "CustomCname": { + "markdownDescription": "Name inserted into the certificate **CRL Distribution Points** extension that enables the use of an alias for the CRL distribution point\\. Use this value if you don't want the name of your S3 bucket to be public\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `253` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomCname", "type": "string" }, "Enabled": { + "markdownDescription": "Boolean value that specifies whether certificate revocation lists \\(CRLs\\) are enabled\\. You can use this value to enable certificate revocation for a new CA when you call the `CreateCertificateAuthority` operation or for an existing CA when you call the `UpdateCertificateAuthority` operation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "ExpirationInDays": { + "markdownDescription": "Validity period of the CRL in days\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `5000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExpirationInDays", "type": "number" }, "S3BucketName": { + "markdownDescription": "Name of the S3 bucket that contains the CRL\\. If you do not provide a value for the **CustomCname** argument, the name of your S3 bucket is placed into the **CRL Distribution Points** extension of the issued certificate\\. You can change the name of your bucket by calling the [UpdateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html) operation\\. You must specify a [bucket policy](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#s3-policies) that allows ACM Private CA to write the CRL to your bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketName", "type": "string" }, "S3ObjectAcl": { + "markdownDescription": "Determines whether the CRL will be publicly readable or privately held in the CRL Amazon S3 bucket\\. If you choose PUBLIC\\_READ, the CRL will be accessible over the public internet\\. If you choose BUCKET\\_OWNER\\_FULL\\_CONTROL, only the owner of the CRL S3 bucket can access the CRL, and your PKI clients may need an alternative method of access\\. \nIf no value is specified, the default is PUBLIC\\_READ\\. \nThis default can cause CA creation to fail in some circumstances\\. If you have enabled the Block Public Access \\(BPA\\) feature in your S3 account, then you must specify the value of this parameter as `BUCKET_OWNER_FULL_CONTROL`, and not doing so results in an error\\. If you have disabled BPA in S3, then you can specify either `BUCKET_OWNER_FULL_CONTROL` or `PUBLIC_READ` as the value\\.\nFor more information, see [Blocking public access to the S3 bucket](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#s3-bpa)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3ObjectAcl", "type": "string" } }, @@ -539,12 +687,16 @@ "additionalProperties": false, "properties": { "KeyUsage": { - "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.KeyUsage" + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.KeyUsage", + "markdownDescription": "Indicates the purpose of the certificate and of the key contained in the certificate\\. \n*Required*: No \n*Type*: [KeyUsage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-keyusage.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyUsage" }, "SubjectInformationAccess": { "items": { "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.AccessDescription" }, + "markdownDescription": "For CA certificates, provides a path to additional information pertaining to the CA, such as revocation and policy\\. For more information, see [Subject Information Access](https://tools.ietf.org/html/rfc5280#section-4.2.2.2) in RFC 5280\\. \n*Required*: No \n*Type*: List of [AccessDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-accessdescription.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubjectInformationAccess", "type": "array" } }, @@ -570,9 +722,13 @@ "additionalProperties": false, "properties": { "NameAssigner": { + "markdownDescription": "Specifies the name assigner\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NameAssigner", "type": "string" }, "PartyName": { + "markdownDescription": "Specifies the party name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PartyName", "type": "string" } }, @@ -586,27 +742,43 @@ "additionalProperties": false, "properties": { "DirectoryName": { - "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.Subject" + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.Subject", + "markdownDescription": "Contains information about the certificate subject\\. The certificate can be one issued by your private certificate authority \\(CA\\) or it can be your private CA certificate\\. The Subject field in the certificate identifies the entity that owns or controls the public key in the certificate\\. The entity can be a user, computer, device, or service\\. The Subject must contain an X\\.500 distinguished name \\(DN\\)\\. A DN is a sequence of relative distinguished names \\(RDNs\\)\\. The RDNs are separated by commas in the certificate\\. The DN must be unique for each entity, but your private CA can issue more than one certificate with the same DN to the same entity\\. \n*Required*: No \n*Type*: [Subject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-subject.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DirectoryName" }, "DnsName": { + "markdownDescription": "Represents `GeneralName` as a DNS name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `253` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DnsName", "type": "string" }, "EdiPartyName": { - "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.EdiPartyName" + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.EdiPartyName", + "markdownDescription": "Represents `GeneralName` as an `EdiPartyName` object\\. \n*Required*: No \n*Type*: [EdiPartyName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-edipartyname.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EdiPartyName" }, "IpAddress": { + "markdownDescription": "Represents `GeneralName` as an IPv4 or IPv6 address\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `39` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpAddress", "type": "string" }, "OtherName": { - "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.OtherName" + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.OtherName", + "markdownDescription": "Represents `GeneralName` using an `OtherName` object\\. \n*Required*: No \n*Type*: [OtherName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-othername.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OtherName" }, "RegisteredId": { + "markdownDescription": "Represents `GeneralName` as an object identifier \\(OID\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `^([0-2])\\.([0-9]|([0-3][0-9]))((\\.([0-9]+)){0,126})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RegisteredId", "type": "string" }, "Rfc822Name": { + "markdownDescription": "Represents `GeneralName` as an [RFC 822](https://tools.ietf.org/html/rfc822) email address\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Rfc822Name", "type": "string" }, "UniformResourceIdentifier": { + "markdownDescription": "Represents `GeneralName` as a URI\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `253` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UniformResourceIdentifier", "type": "string" } }, @@ -616,30 +788,48 @@ "additionalProperties": false, "properties": { "CRLSign": { + "markdownDescription": "Key can be used to sign CRLs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CRLSign", "type": "boolean" }, "DataEncipherment": { + "markdownDescription": "Key can be used to decipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataEncipherment", "type": "boolean" }, "DecipherOnly": { + "markdownDescription": "Key can be used only to decipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DecipherOnly", "type": "boolean" }, "DigitalSignature": { + "markdownDescription": "Key can be used for digital signing\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DigitalSignature", "type": "boolean" }, "EncipherOnly": { + "markdownDescription": "Key can be used only to encipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncipherOnly", "type": "boolean" }, "KeyAgreement": { + "markdownDescription": "Key can be used in a key\\-agreement protocol\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyAgreement", "type": "boolean" }, "KeyCertSign": { + "markdownDescription": "Key can be used to sign certificates\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyCertSign", "type": "boolean" }, "KeyEncipherment": { + "markdownDescription": "Key can be used to encipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyEncipherment", "type": "boolean" }, "NonRepudiation": { + "markdownDescription": "Key can be used for non\\-repudiation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NonRepudiation", "type": "boolean" } }, @@ -649,9 +839,13 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Flag enabling use of the Online Certificate Status Protocol \\(OCSP\\) for validating certificate revocation status\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "OcspCustomCname": { + "markdownDescription": "By default, ACM Private CA injects an Amazon domain into certificates being validated by the Online Certificate Status Protocol \\(OCSP\\)\\. A customer can alternatively use this object to define a CNAME specifying a customized OCSP domain\\. \nNote: The value of the CNAME must not include a protocol prefix such as \"http://\" or \"https://\"\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `253` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OcspCustomCname", "type": "string" } }, @@ -661,9 +855,13 @@ "additionalProperties": false, "properties": { "TypeId": { + "markdownDescription": "Specifies an OID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `^([0-2])\\.([0-9]|([0-3][0-9]))((\\.([0-9]+)){0,126})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TypeId", "type": "string" }, "Value": { + "markdownDescription": "Specifies an OID value\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", "type": "string" } }, @@ -677,10 +875,14 @@ "additionalProperties": false, "properties": { "CrlConfiguration": { - "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.CrlConfiguration" + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.CrlConfiguration", + "markdownDescription": "Configuration of the certificate revocation list \\(CRL\\), if any, maintained by your private CA\\. \n*Required*: No \n*Type*: [CrlConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-crlconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CrlConfiguration" }, "OcspConfiguration": { - "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.OcspConfiguration" + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.OcspConfiguration", + "markdownDescription": "Configuration of Online Certificate Status Protocol \\(OCSP\\) support, if any, maintained by your private CA\\. \n*Required*: No \n*Type*: [OcspConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-ocspconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OcspConfiguration" } }, "type": "object" @@ -689,9 +891,13 @@ "additionalProperties": false, "properties": { "CommonName": { + "markdownDescription": "Fully qualified domain name \\(FQDN\\) associated with the certificate subject\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CommonName", "type": "string" }, "Country": { + "markdownDescription": "Two\\-digit code that specifies the country in which the certificate subject located\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Country", "type": "string" }, "CustomAttributes": { @@ -701,39 +907,63 @@ "type": "array" }, "DistinguishedNameQualifier": { + "markdownDescription": "Disambiguating information for the certificate subject\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DistinguishedNameQualifier", "type": "string" }, "GenerationQualifier": { + "markdownDescription": "Typically a qualifier appended to the name of an individual\\. Examples include Jr\\. for junior, Sr\\. for senior, and III for third\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GenerationQualifier", "type": "string" }, "GivenName": { + "markdownDescription": "First name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GivenName", "type": "string" }, "Initials": { + "markdownDescription": "Concatenation that typically contains the first letter of the GivenName, the first letter of the middle name if one exists, and the first letter of the SurName\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Initials", "type": "string" }, "Locality": { + "markdownDescription": "The locality \\(such as a city or town\\) in which the certificate subject is located\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Locality", "type": "string" }, "Organization": { + "markdownDescription": "Legal name of the organization with which the certificate subject is affiliated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Organization", "type": "string" }, "OrganizationalUnit": { + "markdownDescription": "A subdivision or unit of the organization \\(such as sales or finance\\) with which the certificate subject is affiliated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OrganizationalUnit", "type": "string" }, "Pseudonym": { + "markdownDescription": "Typically a shortened version of a longer GivenName\\. For example, Jonathan is often shortened to John\\. Elizabeth is often shortened to Beth, Liz, or Eliza\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Pseudonym", "type": "string" }, "SerialNumber": { + "markdownDescription": "The certificate serial number\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SerialNumber", "type": "string" }, "State": { + "markdownDescription": "State in which the subject of the certificate is located\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "State", "type": "string" }, "Surname": { + "markdownDescription": "Family name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Surname", "type": "string" }, "Title": { + "markdownDescription": "A personal title such as Mr\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Title", "type": "string" } }, @@ -775,15 +1005,23 @@ "additionalProperties": false, "properties": { "Certificate": { + "markdownDescription": "The Base64 PEM\\-encoded certificate authority certificate\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate", "type": "string" }, "CertificateAuthorityArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of your private CA\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateAuthorityArn", "type": "string" }, "CertificateChain": { + "markdownDescription": "The Base64 PEM\\-encoded certificate chain that chains up to the root CA certificate that you used to sign your private CA certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateChain", "type": "string" }, "Status": { + "markdownDescription": "Status of your private CA\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" } }, @@ -853,15 +1091,23 @@ "items": { "type": "string" }, + "markdownDescription": "The private CA actions that can be performed by the designated AWS service\\. Supported actions are `IssueCertificate`, `GetCertificate`, and `ListPermissions`\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Actions", "type": "array" }, "CertificateAuthorityArn": { + "markdownDescription": "The Amazon Resource Number \\(ARN\\) of the private CA from which the permission was issued\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `5` \n*Maximum*: `200` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:[\\w+=/,.@-]*:[0-9]*:[\\w+=,.@-]+(/[\\w+=,.@-]+)*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateAuthorityArn", "type": "string" }, "Principal": { + "markdownDescription": "The AWS service or entity that holds the permission\\. At this time, the only valid principal is `acm.amazonaws.com`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^[^*]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Principal", "type": "string" }, "SourceAccount": { + "markdownDescription": "The ID of the account that assigned the permission\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `[0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceAccount", "type": "string" } }, @@ -929,18 +1175,26 @@ "additionalProperties": false, "properties": { "Data": { + "markdownDescription": "The rules definition file for this namespace\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Data", "type": "string" }, "Name": { + "markdownDescription": "The name of the rule groups namespace\\. This property is required\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of key and value pairs for the workspace resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Workspace": { + "markdownDescription": "The ARN of the workspace that contains this rule groups namespace\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Workspace", "type": "string" } }, @@ -1008,9 +1262,13 @@ "additionalProperties": false, "properties": { "AlertManagerDefinition": { + "markdownDescription": "The alert manager definition for the workspace, as a string\\. For more information, see [ Alert manager and templating](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-alert-manager.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlertManagerDefinition", "type": "string" }, "Alias": { + "markdownDescription": "An alias that you assign to this workspace to help you identify it\\. It does not need to be unique\\. \n The alias can be as many as 100 characters and can include any type of characters\\. Amazon Managed Service for Prometheus automatically strips any blank spaces from the beginning and end of the alias that you specify\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alias", "type": "string" }, "LoggingConfiguration": { @@ -1020,6 +1278,8 @@ "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of tag keys and values to associate with the workspace\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -1090,21 +1350,29 @@ "additionalProperties": false, "properties": { "AnalyzerName": { + "markdownDescription": "The name of the analyzer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AnalyzerName", "type": "string" }, "ArchiveRules": { "items": { "$ref": "#/definitions/AWS::AccessAnalyzer::Analyzer.ArchiveRule" }, + "markdownDescription": "Specifies the archive rules to add for the analyzer\\. \n*Required*: No \n*Type*: List of [ArchiveRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-archiverule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArchiveRules", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to apply to the analyzer\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Type": { + "markdownDescription": "The type represents the zone of trust for the analyzer\\. \n*Allowed Values*: ACCOUNT \\| ORGANIZATION \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -1141,9 +1409,13 @@ "items": { "$ref": "#/definitions/AWS::AccessAnalyzer::Analyzer.Filter" }, + "markdownDescription": "The criteria for the rule\\. \n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-filter.html) of [Filter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-filter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filter", "type": "array" }, "RuleName": { + "markdownDescription": "The name of the archive rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleName", "type": "string" } }, @@ -1160,24 +1432,34 @@ "items": { "type": "string" }, + "markdownDescription": "A \"contains\" condition to match for the rule\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Contains", "type": "array" }, "Eq": { "items": { "type": "string" }, + "markdownDescription": "An \"equals\" condition to match for the rule\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Eq", "type": "array" }, "Exists": { + "markdownDescription": "An \"exists\" condition to match for the rule\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exists", "type": "boolean" }, "Neq": { "items": { "type": "string" }, + "markdownDescription": "A \"not equal\" condition to match for the rule\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Neq", "type": "array" }, "Property": { + "markdownDescription": "The property used to define the criteria in the filter for the rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Property", "type": "string" } }, @@ -1222,69 +1504,105 @@ "additionalProperties": false, "properties": { "AuthenticationStrategy": { + "markdownDescription": "Optional\\. The authentication strategy used to secure the broker\\. The default is `SIMPLE`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthenticationStrategy", "type": "string" }, "AutoMinorVersionUpgrade": { + "markdownDescription": "Enables automatic upgrades to new minor versions for brokers, as new broker engine versions are released and supported by Amazon MQ\\. Automatic upgrades occur during the scheduled maintenance window of the broker or after a manual broker reboot\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoMinorVersionUpgrade", "type": "boolean" }, "BrokerName": { + "markdownDescription": "The name of the broker\\. This value must be unique in your AWS account, 1\\-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain white spaces, brackets, wildcard characters, or special characters\\. \n Do not add personally identifiable information \\(PII\\) or other confidential or sensitive information in broker names\\. Broker names are accessible to other AWS services, including CCloudWatch Logs\\. Broker names are not intended to be used for private or sensitive data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BrokerName", "type": "string" }, "Configuration": { - "$ref": "#/definitions/AWS::AmazonMQ::Broker.ConfigurationId" + "$ref": "#/definitions/AWS::AmazonMQ::Broker.ConfigurationId", + "markdownDescription": "A list of information about the configuration\\. Does not apply to RabbitMQ brokers\\. \n*Required*: No \n*Type*: [ConfigurationId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-configurationid.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Configuration" }, "DeploymentMode": { + "markdownDescription": "The deployment mode of the broker\\. Available values: \n+ `SINGLE_INSTANCE`\n+ `ACTIVE_STANDBY_MULTI_AZ`\n+ `CLUSTER_MULTI_AZ`\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeploymentMode", "type": "string" }, "EncryptionOptions": { - "$ref": "#/definitions/AWS::AmazonMQ::Broker.EncryptionOptions" + "$ref": "#/definitions/AWS::AmazonMQ::Broker.EncryptionOptions", + "markdownDescription": "Encryption options for the broker\\. Does not apply to RabbitMQ brokers\\. \n*Required*: No \n*Type*: [EncryptionOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-encryptionoptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncryptionOptions" }, "EngineType": { + "markdownDescription": "The type of broker engine\\. Currently, Amazon MQ supports `ACTIVEMQ` and `RABBITMQ`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineType", "type": "string" }, "EngineVersion": { + "markdownDescription": "The version of the broker engine\\. For a list of supported engine versions, see [Engine](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/broker-engine.html) in the *Amazon MQ Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EngineVersion", "type": "string" }, "HostInstanceType": { + "markdownDescription": "The broker's instance type\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "HostInstanceType", "type": "string" }, "LdapServerMetadata": { - "$ref": "#/definitions/AWS::AmazonMQ::Broker.LdapServerMetadata" + "$ref": "#/definitions/AWS::AmazonMQ::Broker.LdapServerMetadata", + "markdownDescription": "Optional\\. The metadata of the LDAP server used to authenticate and authorize connections to the broker\\. Does not apply to RabbitMQ brokers\\. \n*Required*: No \n*Type*: [LdapServerMetadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LdapServerMetadata" }, "Logs": { - "$ref": "#/definitions/AWS::AmazonMQ::Broker.LogList" + "$ref": "#/definitions/AWS::AmazonMQ::Broker.LogList", + "markdownDescription": "Enables Amazon CloudWatch logging for brokers\\. \n*Required*: No \n*Type*: [LogList](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-loglist.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Logs" }, "MaintenanceWindowStartTime": { - "$ref": "#/definitions/AWS::AmazonMQ::Broker.MaintenanceWindow" + "$ref": "#/definitions/AWS::AmazonMQ::Broker.MaintenanceWindow", + "markdownDescription": "The scheduled time period relative to UTC during which Amazon MQ begins to apply pending updates or patches to the broker\\. \n*Required*: No \n*Type*: [MaintenanceWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-maintenancewindow.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaintenanceWindowStartTime" }, "PubliclyAccessible": { + "markdownDescription": "Enables connections from applications outside of the VPC that hosts the broker's subnets\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PubliclyAccessible", "type": "boolean" }, "SecurityGroups": { "items": { "type": "string" }, + "markdownDescription": "The list of rules \\(1 minimum, 125 maximum\\) that authorize connections to brokers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroups", "type": "array" }, "StorageType": { + "markdownDescription": "The broker's storage type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StorageType", "type": "string" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "The list of groups that define which subnets and IP ranges the broker can use from different Availability Zones\\. If you specify more than one subnet, the subnets must be in different Availability Zones\\. Amazon MQ will not be able to create VPC endpoints for your broker with multiple subnets in the same Availability Zone\\. A SINGLE\\_INSTANCE deployment requires one subnet \\(for example, the default subnet\\)\\. An ACTIVE\\_STANDBY\\_MULTI\\_AZ deployment \\(ACTIVEMQ\\) requires two subnets\\. A CLUSTER\\_MULTI\\_AZ deployment \\(RABBITMQ\\) has no subnet requirements when deployed with public accessibility, deployment without public accessibility requires at least one subnet\\. \n If you specify subnets in a shared VPC for a RabbitMQ broker, the associated VPC to which the specified subnets belong must be owned by your AWS account\\. Amazon MQ will not be able to create VPC enpoints in VPCs that are not owned by your AWS account\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetIds", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/AWS::AmazonMQ::Broker.TagsEntry" }, + "markdownDescription": "An array of key\\-value pairs\\. For more information, see [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) in the *Billing and Cost Management User Guide*\\. \n*Required*: No \n*Type*: List of [TagsEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-tagsentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Users": { "items": { "$ref": "#/definitions/AWS::AmazonMQ::Broker.User" }, + "markdownDescription": "The list of broker users \\(persons or applications\\) who can access queues and topics\\. For Amazon MQ for RabbitMQ brokers, one and only one administrative user is accepted and created when a broker is first provisioned\\. All subsequent RabbitMQ users are created by via the RabbitMQ web console or by using the RabbitMQ management API\\. \n*Required*: Yes \n*Type*: List of [User](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-user.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Users", "type": "array" } }, @@ -1325,9 +1643,13 @@ "additionalProperties": false, "properties": { "Id": { + "markdownDescription": "The unique ID that Amazon MQ generates for the configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "Revision": { + "markdownDescription": "The revision number of the configuration\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Revision", "type": "number" } }, @@ -1341,9 +1663,13 @@ "additionalProperties": false, "properties": { "KmsKeyId": { + "markdownDescription": "The customer master key \\(CMK\\) to use for the A AWS KMS \\(KMS\\)\\. This key is used to encrypt your data at rest\\. If not provided, Amazon MQ will use a default CMK to encrypt your data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", "type": "string" }, "UseAwsOwnedKey": { + "markdownDescription": "Enables the use of an AWS owned CMK using AWS KMS \\(KMS\\)\\. Set to `true` by default, if no value is provided, for example, for RabbitMQ brokers\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseAwsOwnedKey", "type": "boolean" } }, @@ -1359,36 +1685,58 @@ "items": { "type": "string" }, + "markdownDescription": "Specifies the location of the LDAP server such as AWS Directory Service for Microsoft Active Directory\\. Optional failover server\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Hosts", "type": "array" }, "RoleBase": { + "markdownDescription": "The distinguished name of the node in the directory information tree \\(DIT\\) to search for roles or groups\\. For example, `ou=group`, `ou=corp`, `dc=corp`, `dc=example`, `dc=com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleBase", "type": "string" }, "RoleName": { + "markdownDescription": "The group name attribute in a role entry whose value is the name of that role\\. For example, you can specify `cn` for a group entry's common name\\. If authentication succeeds, then the user is assigned the the value of the `cn` attribute for each role entry that they are a member of\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleName", "type": "string" }, "RoleSearchMatching": { + "markdownDescription": "The LDAP search filter used to find roles within the roleBase\\. The distinguished name of the user matched by userSearchMatching is substituted into the `{0}` placeholder in the search filter\\. The client's username is substituted into the `{1}` placeholder\\. For example, if you set this option to `(member=uid={1})` for the user janedoe, the search filter becomes `(member=uid=janedoe)` after string substitution\\. It matches all role entries that have a member attribute equal to `uid=janedoe` under the subtree selected by the `RoleBases`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleSearchMatching", "type": "string" }, "RoleSearchSubtree": { + "markdownDescription": "The directory search scope for the role\\. If set to true, scope is to search the entire subtree\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleSearchSubtree", "type": "boolean" }, "ServiceAccountPassword": { + "markdownDescription": "Service account password\\. A service account is an account in your LDAP server that has access to initiate a connection\\. For example, `cn=admin`,`dc=corp`, `dc=example`, `dc=com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceAccountPassword", "type": "string" }, "ServiceAccountUsername": { + "markdownDescription": "Service account username\\. A service account is an account in your LDAP server that has access to initiate a connection\\. For example, `cn=admin`, `ou=corp`, `dc=corp`, `dc=example`, `dc=com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceAccountUsername", "type": "string" }, "UserBase": { + "markdownDescription": "Select a particular subtree of the directory information tree \\(DIT\\) to search for user entries\\. The subtree is specified by a DN, which specifies the base node of the subtree\\. For example, by setting this option to `ou=Users`,`ou=corp`, `dc=corp`, `dc=example`, `dc=com`, the search for user entries is restricted to the subtree beneath `ou=Users`,`ou=corp`, `dc=corp`, `dc=example`, `dc=com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserBase", "type": "string" }, "UserRoleName": { + "markdownDescription": "The name of the LDAP attribute in the user's directory entry for the user's group membership\\. In some cases, user roles may be identified by the value of an attribute in the user's directory entry\\. The `UserRoleName` option allows you to provide the name of this attribute\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserRoleName", "type": "string" }, "UserSearchMatching": { + "markdownDescription": "The LDAP search filter used to find users within the `userBase`\\. The client's username is substituted into the `{0}` placeholder in the search filter\\. For example, if this option is set to `(uid={0})` and the received username is `janedoe`, the search filter becomes `(uid=janedoe)` after string substitution\\. It will result in matching an entry like `uid=janedoe`, `ou=Users`, `ou=corp`, `dc=corp`, `dc=example`, `dc=com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserSearchMatching", "type": "string" }, "UserSearchSubtree": { + "markdownDescription": "The directory search scope for the user\\. If set to true, scope is to search the entire subtree\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserSearchSubtree", "type": "boolean" } }, @@ -1407,9 +1755,13 @@ "additionalProperties": false, "properties": { "Audit": { + "markdownDescription": "Enables audit logging\\. Every user management action made using JMX or the ActiveMQ Web Console is logged\\. Does not apply to RabbitMQ brokers\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Audit", "type": "boolean" }, "General": { + "markdownDescription": "Enables general logging\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "General", "type": "boolean" } }, @@ -1419,12 +1771,18 @@ "additionalProperties": false, "properties": { "DayOfWeek": { + "markdownDescription": "The day of the week\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DayOfWeek", "type": "string" }, "TimeOfDay": { + "markdownDescription": "The time, in 24\\-hour format\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeOfDay", "type": "string" }, "TimeZone": { + "markdownDescription": "The time zone, UTC by default, in either the Country/City format, or the UTC offset format\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeZone", "type": "string" } }, @@ -1439,9 +1797,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The key in a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The value in a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -1455,18 +1817,26 @@ "additionalProperties": false, "properties": { "ConsoleAccess": { + "markdownDescription": "Enables access to the ActiveMQ web console for the ActiveMQ user\\. Does not apply to RabbitMQ brokers\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConsoleAccess", "type": "boolean" }, "Groups": { "items": { "type": "string" }, + "markdownDescription": "The list of groups \\(20 maximum\\) to which the ActiveMQ user belongs\\. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes \\(\\- \\. \\_ \\~\\)\\. This value must be 2\\-100 characters long\\. Does not apply to RabbitMQ brokers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Groups", "type": "array" }, "Password": { + "markdownDescription": "The password of the user\\. This value must be at least 12 characters long, must contain at least 4 unique characters, and must not contain commas, colons, or equal signs \\(,:=\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", "type": "string" }, "Username": { + "markdownDescription": "The username of the broker user\\. For Amazon MQ for ActiveMQ brokers, this value can contain only alphanumeric characters, dashes, periods, underscores, and tildes \\(\\- \\. \\_ \\~\\)\\. For Amazon MQ for RabbitMQ brokers, this value can contain only alphanumeric characters, dashes, periods, underscores \\(\\- \\. \\_\\)\\. This value must not contain a tilde \\(\\~\\) character\\. Amazon MQ prohibts using guest as a valid usename\\. This value must be 2\\-100 characters long\\. \n Do not add personally identifiable information \\(PII\\) or other confidential or sensitive information in broker usernames\\. Broker usernames are accessible to other AWS services, including CloudWatch Logs\\. Broker usernames are not intended to be used for private or sensitive data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", "type": "string" } }, @@ -1512,27 +1882,41 @@ "additionalProperties": false, "properties": { "AuthenticationStrategy": { + "markdownDescription": "Optional\\. The authentication strategy associated with the configuration\\. The default is `SIMPLE`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthenticationStrategy", "type": "string" }, "Data": { + "markdownDescription": "The base64\\-encoded XML configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Data", "type": "string" }, "Description": { + "markdownDescription": "The description of the configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "EngineType": { + "markdownDescription": "The type of broker engine\\. Note: Currently, Amazon MQ only supports ACTIVEMQ for creating and editing broker configurations\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineType", "type": "string" }, "EngineVersion": { + "markdownDescription": "The version of the broker engine\\. For a list of supported engine versions, see [https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/broker-engine.html](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/broker-engine.html) \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineVersion", "type": "string" }, "Name": { + "markdownDescription": "The name of the configuration\\. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes \\(\\- \\. \\_ \\~\\)\\. This value must be 1\\-150 characters long\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/AWS::AmazonMQ::Configuration.TagsEntry" }, + "markdownDescription": "Create tags when creating the configuration\\. \n*Required*: No \n*Type*: List of [TagsEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-configuration-tagsentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -1569,9 +1953,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The key in a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The value in a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -1617,10 +2005,14 @@ "additionalProperties": false, "properties": { "Broker": { + "markdownDescription": "The broker to associate with a configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Broker", "type": "string" }, "Configuration": { - "$ref": "#/definitions/AWS::AmazonMQ::ConfigurationAssociation.ConfigurationId" + "$ref": "#/definitions/AWS::AmazonMQ::ConfigurationAssociation.ConfigurationId", + "markdownDescription": "The configuration to associate with a broker\\. \n*Required*: Yes \n*Type*: [ConfigurationId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-configurationassociation-configurationid.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configuration" } }, "required": [ @@ -1654,9 +2046,13 @@ "additionalProperties": false, "properties": { "Id": { + "markdownDescription": "The unique ID that Amazon MQ generates for the configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "Revision": { + "markdownDescription": "The revision number of the configuration\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Revision", "type": "number" } }, @@ -1702,57 +2098,85 @@ "additionalProperties": false, "properties": { "AccessToken": { + "markdownDescription": "Personal Access token for 3rd party source control system for an Amplify app, used to create webhook and read\\-only deploy key\\. Token is not stored\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessToken", "type": "string" }, "AutoBranchCreationConfig": { - "$ref": "#/definitions/AWS::Amplify::App.AutoBranchCreationConfig" + "$ref": "#/definitions/AWS::Amplify::App.AutoBranchCreationConfig", + "markdownDescription": "Sets the configuration for your automatic branch creation\\. \n*Required*: No \n*Type*: [AutoBranchCreationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoBranchCreationConfig" }, "BasicAuthConfig": { - "$ref": "#/definitions/AWS::Amplify::App.BasicAuthConfig" + "$ref": "#/definitions/AWS::Amplify::App.BasicAuthConfig", + "markdownDescription": "The credentials for basic authorization for an Amplify app\\. You must base64\\-encode the authorization credentials and provide them in the format `user:password`\\. \n*Required*: No \n*Type*: [BasicAuthConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-basicauthconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BasicAuthConfig" }, "BuildSpec": { + "markdownDescription": "The build specification \\(build spec\\) for an Amplify app\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 25000\\. \n*Pattern:* \\(?s\\)\\.\\+ \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BuildSpec", "type": "string" }, "CustomHeaders": { + "markdownDescription": "The custom HTTP headers for an Amplify app\\. \n*Length Constraints:* Minimum length of 0\\. Maximum length of 25000\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomHeaders", "type": "string" }, "CustomRules": { "items": { "$ref": "#/definitions/AWS::Amplify::App.CustomRule" }, + "markdownDescription": "The custom rewrite and redirect rules for an Amplify app\\. \n*Required*: No \n*Type*: List of [CustomRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-customrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomRules", "type": "array" }, "Description": { + "markdownDescription": "The description for an Amplify app\\. \n*Length Constraints:* Maximum length of 1000\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "EnableBranchAutoDeletion": { + "markdownDescription": "Automatically disconnect a branch in the Amplify Console when you delete a branch from your Git repository\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableBranchAutoDeletion", "type": "boolean" }, "EnvironmentVariables": { "items": { "$ref": "#/definitions/AWS::Amplify::App.EnvironmentVariable" }, + "markdownDescription": "The environment variables map for an Amplify app\\. \n*Required*: No \n*Type*: List of [EnvironmentVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-environmentvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnvironmentVariables", "type": "array" }, "IAMServiceRole": { + "markdownDescription": "The AWS Identity and Access Management \\(IAM\\) service role for the Amazon Resource Name \\(ARN\\) of the Amplify app\\. \n*Length Constraints:* Minimum length of 0\\. Maximum length of 1000\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IAMServiceRole", "type": "string" }, "Name": { + "markdownDescription": "The name for an Amplify app\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Pattern:* \\(?s\\)\\.\\+ \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "OauthToken": { + "markdownDescription": "The OAuth token for a third\\-party source control system for an Amplify app\\. The OAuth token is used to create a webhook and a read\\-only deploy key\\. The OAuth token is not stored\\. \n*Length Constraints:* Maximum length of 1000\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OauthToken", "type": "string" }, "Platform": { "type": "string" }, "Repository": { + "markdownDescription": "The repository for an Amplify app\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Repository", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tag for an Amplify app\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -1789,39 +2213,59 @@ "items": { "type": "string" }, + "markdownDescription": "Automated branch creation glob patterns for the Amplify app\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoBranchCreationPatterns", "type": "array" }, "BasicAuthConfig": { - "$ref": "#/definitions/AWS::Amplify::App.BasicAuthConfig" + "$ref": "#/definitions/AWS::Amplify::App.BasicAuthConfig", + "markdownDescription": "Sets password protection for your auto created branch\\. \n*Required*: No \n*Type*: [BasicAuthConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-basicauthconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BasicAuthConfig" }, "BuildSpec": { + "markdownDescription": "The build specification \\(build spec\\) for the autocreated branch\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 25000\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BuildSpec", "type": "string" }, "EnableAutoBranchCreation": { + "markdownDescription": "Enables automated branch creation for the Amplify app\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableAutoBranchCreation", "type": "boolean" }, "EnableAutoBuild": { + "markdownDescription": "Enables auto building for the auto created branch\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableAutoBuild", "type": "boolean" }, "EnablePerformanceMode": { + "markdownDescription": "Enables performance mode for the branch\\. \nPerformance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval\\. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnablePerformanceMode", "type": "boolean" }, "EnablePullRequestPreview": { + "markdownDescription": "Sets whether pull request previews are enabled for each branch that Amplify Console automatically creates for your app\\. Amplify Console creates previews by deploying your app to a unique URL whenever a pull request is opened for the branch\\. Development and QA teams can use this preview to test the pull request before it's merged into a production or integration branch\\. \nTo provide backend support for your preview, the Amplify Console automatically provisions a temporary backend environment that it deletes when the pull request is closed\\. If you want to specify a dedicated backend environment for your previews, use the `PullRequestEnvironmentName` property\\. \nFor more information, see [Web Previews](https://docs.aws.amazon.com/amplify/latest/userguide/pr-previews.html) in the *AWS Amplify Console User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnablePullRequestPreview", "type": "boolean" }, "EnvironmentVariables": { "items": { "$ref": "#/definitions/AWS::Amplify::App.EnvironmentVariable" }, + "markdownDescription": "Environment variables for the auto created branch\\. \n*Required*: No \n*Type*: List of [EnvironmentVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-environmentvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnvironmentVariables", "type": "array" }, "Framework": { "type": "string" }, "PullRequestEnvironmentName": { + "markdownDescription": "If pull request previews are enabled, you can use this property to specify a dedicated backend environment for your previews\\. For example, you could specify an environment named `prod`, `test`, or `dev` that you initialized with the Amplify CLI\\. \nTo enable pull request previews, set the `EnablePullRequestPreview` property to `true`\\. \nIf you don't specify an environment, the Amplify Console provides backend support for each preview by automatically provisioning a temporary backend environment\\. Amplify Console deletes this environment when the pull request is closed\\. \nFor more information about creating backend environments, see [Feature Branch Deployments and Team Workflows](https://docs.aws.amazon.com/amplify/latest/userguide/multi-environments.html) in the *AWS Amplify Console User Guide*\\. \n*Length Constraints:* Maximum length of 20\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PullRequestEnvironmentName", "type": "string" }, "Stage": { + "markdownDescription": "Stage for the auto created branch\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Stage", "type": "string" } }, @@ -1831,12 +2275,18 @@ "additionalProperties": false, "properties": { "EnableBasicAuth": { + "markdownDescription": "Enables basic authorization for the Amplify app's branches\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableBasicAuth", "type": "boolean" }, "Password": { + "markdownDescription": "The password for basic authorization\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", "type": "string" }, "Username": { + "markdownDescription": "The user name for basic authorization\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", "type": "string" } }, @@ -1846,15 +2296,23 @@ "additionalProperties": false, "properties": { "Condition": { + "markdownDescription": "The condition for a URL rewrite or redirect rule, such as a country code\\. \n*Length Constraints:* Minimum length of 0\\. Maximum length of 2048\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Condition", "type": "string" }, "Source": { + "markdownDescription": "The source pattern for a URL rewrite or redirect rule\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 2048\\. \n*Pattern:* \\(?s\\)\\.\\+ \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source", "type": "string" }, "Status": { + "markdownDescription": "The status code for a URL rewrite or redirect rule\\. \n200 \nRepresents a 200 rewrite rule\\. \n301 \nRepresents a 301 \\(moved pemanently\\) redirect rule\\. This and all future requests should be directed to the target URL\\. \n302 \nRepresents a 302 temporary redirect rule\\. \n404 \nRepresents a 404 redirect rule\\. \n404\\-200 \nRepresents a 404 rewrite rule\\.\n*Length Constraints:* Minimum length of 3\\. Maximum length of 7\\. \n*Pattern:* \\.\\{3,7\\} \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" }, "Target": { + "markdownDescription": "The target pattern for a URL rewrite or redirect rule\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 2048\\. \n*Pattern:* \\(?s\\)\\.\\+ \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target", "type": "string" } }, @@ -1868,9 +2326,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The environment variable name\\. \n*Length Constraints:* Maximum length of 255\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "The environment variable value\\. \n*Length Constraints:* Maximum length of 5500\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -1916,48 +2378,72 @@ "additionalProperties": false, "properties": { "AppId": { + "markdownDescription": "The unique ID for an Amplify app\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 20\\. \n*Pattern:* d\\[a\\-z0\\-9\\]\\+ \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AppId", "type": "string" }, "BasicAuthConfig": { - "$ref": "#/definitions/AWS::Amplify::Branch.BasicAuthConfig" + "$ref": "#/definitions/AWS::Amplify::Branch.BasicAuthConfig", + "markdownDescription": "The basic authorization credentials for a branch of an Amplify app\\. You must base64\\-encode the authorization credentials and provide them in the format `user:password`\\. \n*Required*: No \n*Type*: [BasicAuthConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-branch-basicauthconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BasicAuthConfig" }, "BranchName": { + "markdownDescription": "The name for the branch\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Pattern:* \\(?s\\)\\.\\+ \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BranchName", "type": "string" }, "BuildSpec": { + "markdownDescription": "The build specification \\(build spec\\) for the branch\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 25000\\. \n*Pattern:* \\(?s\\)\\.\\+ \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BuildSpec", "type": "string" }, "Description": { + "markdownDescription": "The description for the branch that is part of an Amplify app\\. \n*Length Constraints:* Maximum length of 1000\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "EnableAutoBuild": { + "markdownDescription": "Enables auto building for the branch\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableAutoBuild", "type": "boolean" }, "EnablePerformanceMode": { + "markdownDescription": "Enables performance mode for the branch\\. \nPerformance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval\\. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnablePerformanceMode", "type": "boolean" }, "EnablePullRequestPreview": { + "markdownDescription": "Sets whether the Amplify Console creates a preview for each pull request that is made for this branch\\. If this property is enabled, the Amplify Console deploys your app to a unique preview URL after each pull request is opened\\. Development and QA teams can use this preview to test the pull request before it's merged into a production or integration branch\\. \nTo provide backend support for your preview, the Amplify Console automatically provisions a temporary backend environment that it deletes when the pull request is closed\\. If you want to specify a dedicated backend environment for your previews, use the `PullRequestEnvironmentName` property\\. \nFor more information, see [Web Previews](https://docs.aws.amazon.com/amplify/latest/userguide/pr-previews.html) in the *AWS Amplify Console User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnablePullRequestPreview", "type": "boolean" }, "EnvironmentVariables": { "items": { "$ref": "#/definitions/AWS::Amplify::Branch.EnvironmentVariable" }, + "markdownDescription": "The environment variables for the branch\\. \n*Required*: No \n*Type*: List of [EnvironmentVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-branch-environmentvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnvironmentVariables", "type": "array" }, "Framework": { "type": "string" }, "PullRequestEnvironmentName": { + "markdownDescription": "If pull request previews are enabled for this branch, you can use this property to specify a dedicated backend environment for your previews\\. For example, you could specify an environment named `prod`, `test`, or `dev` that you initialized with the Amplify CLI and mapped to this branch\\. \nTo enable pull request previews, set the `EnablePullRequestPreview` property to `true`\\. \nIf you don't specify an environment, the Amplify Console provides backend support for each preview by automatically provisioning a temporary backend environment\\. Amplify Console deletes this environment when the pull request is closed\\. \nFor more information about creating backend environments, see [Feature Branch Deployments and Team Workflows](https://docs.aws.amazon.com/amplify/latest/userguide/multi-environments.html) in the *AWS Amplify Console User Guide*\\. \n*Length Constraints:* Maximum length of 20\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PullRequestEnvironmentName", "type": "string" }, "Stage": { + "markdownDescription": "Describes the current stage for the branch\\. \n*Valid Values:* PRODUCTION \\| BETA \\| DEVELOPMENT \\| EXPERIMENTAL \\| PULL\\_REQUEST \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Stage", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tag for the branch\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -1992,12 +2478,18 @@ "additionalProperties": false, "properties": { "EnableBasicAuth": { + "markdownDescription": "Enables basic authorization for the branch\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableBasicAuth", "type": "boolean" }, "Password": { + "markdownDescription": "The password for basic authorization\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", "type": "string" }, "Username": { + "markdownDescription": "The user name for basic authorization\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", "type": "string" } }, @@ -2011,9 +2503,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The environment variable name\\. \n*Length Constraints:* Maximum length of 255\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "The environment variable value\\. \n*Length Constraints:* Maximum length of 5500\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -2059,27 +2555,39 @@ "additionalProperties": false, "properties": { "AppId": { + "markdownDescription": "The unique ID for an Amplify app\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 20\\. \n*Pattern:* d\\[a\\-z0\\-9\\]\\+ \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AppId", "type": "string" }, "AutoSubDomainCreationPatterns": { "items": { "type": "string" }, + "markdownDescription": "Sets the branch patterns for automatic subdomain creation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoSubDomainCreationPatterns", "type": "array" }, "AutoSubDomainIAMRole": { + "markdownDescription": "The required AWS Identity and Access Management \\(IAM\\) service role for the Amazon Resource Name \\(ARN\\) for automatically creating subdomains\\. \n*Length Constraints:* Maximum length of 1000\\. \n*Pattern:* ^$\\|^arn:aws:iam::\\\\d\\{12\\}:role\\.\\+ \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoSubDomainIAMRole", "type": "string" }, "DomainName": { + "markdownDescription": "The domain name for the domain association\\. \n*Length Constraints:* Maximum length of 255\\. \n*Pattern:* ^\\(\\(\\(?\\!\\-\\)\\[A\\-Za\\-z0\\-9\\-\\]\\{0,62\\}\\[A\\-Za\\-z0\\-9\\]\\)\\\\\\.\\)\\+\\(\\(?\\!\\-\\)\\[A\\-Za\\-z0\\-9\\-\\]\\{1,62\\}\\[A\\-Za\\-z0\\-9\\]\\)\\(\\\\\\.\\)?$ \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", "type": "string" }, "EnableAutoSubDomain": { + "markdownDescription": "Enables the automated creation of subdomains for branches\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableAutoSubDomain", "type": "boolean" }, "SubDomainSettings": { "items": { "$ref": "#/definitions/AWS::Amplify::Domain.SubDomainSetting" }, + "markdownDescription": "The setting for the subdomain\\. \n*Required*: Yes \n*Type*: List of [SubDomainSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-domain-subdomainsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubDomainSettings", "type": "array" } }, @@ -2115,9 +2623,13 @@ "additionalProperties": false, "properties": { "BranchName": { + "markdownDescription": "The branch name setting for the subdomain\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Pattern:* \\(?s\\)\\.\\+ \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BranchName", "type": "string" }, "Prefix": { + "markdownDescription": "The prefix setting for the subdomain\\. \n*Length Constraints:* Maximum length of 255\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" } }, @@ -2162,76 +2674,106 @@ "Properties": { "additionalProperties": false, "properties": { + "AppId": { + "type": "string" + }, "BindingProperties": { "additionalProperties": false, + "markdownDescription": "The information to connect a component's properties to data at runtime\\. You can't specify `tags` as a valid property for `bindingProperties`\\. \n \n*Required*: Yes \n*Type*: Map of [ComponentBindingPropertiesValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentbindingpropertiesvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentBindingPropertiesValue" } }, + "title": "BindingProperties", "type": "object" }, "Children": { "items": { "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentChild" }, + "markdownDescription": "A list of the component's `ComponentChild` instances\\. \n*Required*: No \n*Type*: List of [ComponentChild](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentchild.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Children", "type": "array" }, "CollectionProperties": { "additionalProperties": false, + "markdownDescription": "The data binding configuration for the component's properties\\. Use this for a collection component\\. You can't specify `tags` as a valid property for `collectionProperties`\\. \n*Required*: No \n*Type*: Map of [ComponentDataConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentdataconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentDataConfiguration" } }, + "title": "CollectionProperties", "type": "object" }, "ComponentType": { + "markdownDescription": "The type of the component\\. This can be an Amplify custom UI component or another custom component\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentType", + "type": "string" + }, + "EnvironmentName": { "type": "string" }, "Events": { "additionalProperties": false, + "markdownDescription": "Describes the events that can be raised on the component\\. Use for the workflow feature in Amplify Studio that allows you to bind events and actions to components\\. \n*Required*: No \n*Type*: Map of [ComponentEvent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentevent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentEvent" } }, + "title": "Events", "type": "object" }, "Name": { + "markdownDescription": "The name of the component\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Overrides": { + "markdownDescription": "Describes the component's properties that can be overriden in a customized instance of the component\\. You can't specify `tags` as a valid property for `overrides`\\. \n*Required*: Yes \n*Type*: Map of [ComponentOverridesValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentoverridesvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Overrides", "type": "object" }, "Properties": { "additionalProperties": false, + "markdownDescription": "Describes the component's properties\\. You can't specify `tags` as a valid property for `properties`\\. \n*Required*: Yes \n*Type*: Map of [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" } }, + "title": "Properties", "type": "object" }, "SchemaVersion": { + "markdownDescription": "The schema version of the component when it was imported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaVersion", "type": "string" }, "SourceId": { + "markdownDescription": "The unique ID of the component in its original source system, such as Figma\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceId", "type": "string" }, "Tags": { "additionalProperties": true, + "markdownDescription": "One or more key\\-value pairs to use when tagging the component\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" }, "Variants": { "items": { "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentVariant" }, + "markdownDescription": "A list of the component's variants\\. A variant is a unique style configuration of a main component\\. \n*Required*: Yes \n*Type*: List of [ComponentVariant](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentvariant.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Variants", "type": "array" } }, @@ -2270,37 +2812,55 @@ "additionalProperties": false, "properties": { "Anchor": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty", + "markdownDescription": "The HTML anchor link to the location to open\\. Specify this value for a navigation action\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Anchor" }, "Fields": { "additionalProperties": false, + "markdownDescription": "A dictionary of key\\-value pairs mapping Amplify Studio properties to fields in a data model\\. Use when the action performs an operation on an Amplify DataStore model\\. \n*Required*: No \n*Type*: [ComponentProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" } }, + "title": "Fields", "type": "object" }, "Global": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty", + "markdownDescription": "Specifies whether the user should be signed out globally\\. Specify this value for an auth sign out action\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Global" }, "Id": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty", + "markdownDescription": "The unique ID of the component that the `ActionParameters` apply to\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id" }, "Model": { + "markdownDescription": "The name of the data model\\. Use when the action performs an operation on an Amplify DataStore model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Model", "type": "string" }, "State": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.MutationActionSetStateParameter" + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.MutationActionSetStateParameter", + "markdownDescription": "A key\\-value pair that specifies the state property name and its initial value\\. \n*Required*: No \n*Type*: [MutationActionSetStateParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-mutationactionsetstateparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State" }, "Target": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty", + "markdownDescription": "The element within the same component to modify when the action occurs\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target" }, "Type": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty", + "markdownDescription": "The type of navigation action\\. Valid values are `url` and `anchor`\\. This value is required for a navigation action\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type" }, "Url": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty", + "markdownDescription": "The URL to the location to open\\. Specify this value for a navigation action\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url" } }, "type": "object" @@ -2309,12 +2869,18 @@ "additionalProperties": false, "properties": { "BindingProperties": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentBindingPropertiesValueProperties" + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentBindingPropertiesValueProperties", + "markdownDescription": "Describes the properties to customize with data at runtime\\. \n*Required*: No \n*Type*: [ComponentBindingPropertiesValueProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentbindingpropertiesvalueproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BindingProperties" }, "DefaultValue": { + "markdownDescription": "The default value of the property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultValue", "type": "string" }, "Type": { + "markdownDescription": "The property type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -2324,27 +2890,41 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "An Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", "type": "string" }, "DefaultValue": { + "markdownDescription": "The default value to assign to the property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultValue", "type": "string" }, "Field": { + "markdownDescription": "The field to bind the data to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Field", "type": "string" }, "Key": { + "markdownDescription": "The storage key for an Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Model": { + "markdownDescription": "An Amplify DataStore model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Model", "type": "string" }, "Predicates": { "items": { "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.Predicate" }, + "markdownDescription": "A list of predicates for binding a component's properties to data\\. \n*Required*: No \n*Type*: List of [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-predicate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Predicates", "type": "array" }, "UserAttribute": { + "markdownDescription": "An authenticated user attribute\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserAttribute", "type": "string" } }, @@ -2357,30 +2937,40 @@ "items": { "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentChild" }, + "markdownDescription": "The list of `ComponentChild` instances for this component\\. \n*Required*: No \n*Type*: List of [ComponentChild](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-amplifyuibuilder-component-componentchild.html#aws-properties-amplifyuibuilder-component-componentchild) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Children", "type": "array" }, "ComponentType": { + "markdownDescription": "The type of the child component\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentType", "type": "string" }, "Events": { "additionalProperties": false, + "markdownDescription": "Describes the events that can be raised on the child component\\. Use for the workflow feature in Amplify Studio that allows you to bind events and actions to components\\. \n*Required*: No \n*Type*: [ComponentEvents](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentevents.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentEvent" } }, + "title": "Events", "type": "object" }, "Name": { + "markdownDescription": "The name of the child component\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Properties": { "additionalProperties": false, + "markdownDescription": "Describes the properties of the child component\\. You can't specify `tags` as a valid property for `properties`\\. \n*Required*: Yes \n*Type*: [ComponentProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" } }, + "title": "Properties", "type": "object" } }, @@ -2395,25 +2985,39 @@ "additionalProperties": false, "properties": { "Else": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty", + "markdownDescription": "The value to assign to the property if the condition is not met\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Else" }, "Field": { + "markdownDescription": "The name of a field\\. Specify this when the property is a data model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Field", "type": "string" }, "Operand": { + "markdownDescription": "The value of the property to evaluate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Operand", "type": "string" }, "OperandType": { + "markdownDescription": "The type of the property to evaluate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OperandType", "type": "string" }, "Operator": { + "markdownDescription": "The operator to use to perform the evaluation, such as `eq` to represent equals\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Operator", "type": "string" }, "Property": { + "markdownDescription": "The name of the conditional property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Property", "type": "string" }, "Then": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty", + "markdownDescription": "The value to assign to the property if the condition is met\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Then" } }, "type": "object" @@ -2425,18 +3029,26 @@ "items": { "type": "string" }, + "markdownDescription": "A list of IDs to use to bind data to a component\\. Use this property to bind specifically chosen data, rather than data retrieved from a query\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Identifiers", "type": "array" }, "Model": { + "markdownDescription": "The name of the data model to use to bind data to a component\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Model", "type": "string" }, "Predicate": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.Predicate" + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.Predicate", + "markdownDescription": "Represents the conditional logic to use when binding data to a component\\. Use this property to retrieve only a subset of the data in a collection\\. \n*Required*: No \n*Type*: [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-predicate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Predicate" }, "Sort": { "items": { "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.SortProperty" }, + "markdownDescription": "Describes how to sort the component's properties\\. \n*Required*: No \n*Type*: List of [SortProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-sortproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sort", "type": "array" } }, @@ -2449,10 +3061,14 @@ "additionalProperties": false, "properties": { "Action": { + "markdownDescription": "The action to perform when a specific event is raised\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", "type": "string" }, "Parameters": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ActionParameters" + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ActionParameters", + "markdownDescription": "Describes information about the action\\. \n*Required*: No \n*Type*: [ActionParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-actionparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters" } }, "type": "object" @@ -2461,57 +3077,87 @@ "additionalProperties": false, "properties": { "BindingProperties": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentPropertyBindingProperties" + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentPropertyBindingProperties", + "markdownDescription": "The information to bind the component property to data at runtime\\. \n*Required*: No \n*Type*: [ComponentPropertyBindingProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentpropertybindingproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BindingProperties" }, "Bindings": { "additionalProperties": false, + "markdownDescription": "The information to bind the component property to form data\\. \n*Required*: No \n*Type*: [FormBindings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-formbindings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.FormBindingElement" } }, + "title": "Bindings", "type": "object" }, "CollectionBindingProperties": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentPropertyBindingProperties" + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentPropertyBindingProperties", + "markdownDescription": "The information to bind the component property to data at runtime\\. Use this for collection components\\. \n*Required*: No \n*Type*: [ComponentPropertyBindingProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentpropertybindingproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CollectionBindingProperties" }, "ComponentName": { + "markdownDescription": "The name of the component that is affected by an event\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentName", "type": "string" }, "Concat": { "items": { "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" }, + "markdownDescription": "A list of component properties to concatenate to create the value to assign to this component property\\. \n*Required*: No \n*Type*: List of [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-amplifyuibuilder-component-componentproperty.html#aws-properties-amplifyuibuilder-component-componentproperty) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Concat", "type": "array" }, "Condition": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentConditionProperty" + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentConditionProperty", + "markdownDescription": "The conditional expression to use to assign a value to the component property\\. \n*Required*: No \n*Type*: [ComponentConditionProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentconditionproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Condition" }, "Configured": { + "markdownDescription": "Specifies whether the user configured the property in Amplify Studio after importing it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configured", "type": "boolean" }, "DefaultValue": { + "markdownDescription": "The default value to assign to the component property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultValue", "type": "string" }, "Event": { + "markdownDescription": "An event that occurs in your app\\. Use this for workflow data binding\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Event", "type": "string" }, "ImportedValue": { + "markdownDescription": "The default value assigned to the property when the component is imported into an app\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImportedValue", "type": "string" }, "Model": { + "markdownDescription": "The data model to use to assign a value to the component property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Model", "type": "string" }, "Property": { + "markdownDescription": "The name of the component's property that is affected by an event\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Property", "type": "string" }, "Type": { + "markdownDescription": "The component type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" }, "UserAttribute": { + "markdownDescription": "An authenticated user attribute to use to assign a value to the component property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserAttribute", "type": "string" }, "Value": { + "markdownDescription": "The value to assign to the component property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -2521,9 +3167,13 @@ "additionalProperties": false, "properties": { "Field": { + "markdownDescription": "The data field to bind the property to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Field", "type": "string" }, "Property": { + "markdownDescription": "The component property to bind to the data field\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Property", "type": "string" } }, @@ -2536,15 +3186,19 @@ "additionalProperties": false, "properties": { "Overrides": { + "markdownDescription": "The properties of the component variant that can be overriden when customizing an instance of the component\\. You can't specify `tags` as a valid property for `overrides`\\. \n*Required*: No \n*Type*: [ComponentOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentoverrides.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Overrides", "type": "object" }, "VariantValues": { "additionalProperties": true, + "markdownDescription": "The combination of variants that comprise this variant\\. \n*Required*: No \n*Type*: [ComponentVariantValues](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentvariantvalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "VariantValues", "type": "object" } }, @@ -2570,13 +3224,19 @@ "additionalProperties": false, "properties": { "ComponentName": { + "markdownDescription": "The name of the component that is being modified\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentName", "type": "string" }, "Property": { + "markdownDescription": "The name of the component property to apply the state configuration to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Property", "type": "string" }, "Set": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty", + "markdownDescription": "The state configuration to assign to the property\\. \n*Required*: Yes \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Set" } }, "required": [ @@ -2593,21 +3253,31 @@ "items": { "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.Predicate" }, + "markdownDescription": "A list of predicates to combine logically\\. \n*Required*: No \n*Type*: List of [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-amplifyuibuilder-component-predicate.html#aws-properties-amplifyuibuilder-component-predicate) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "And", "type": "array" }, "Field": { + "markdownDescription": "The field to query\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Field", "type": "string" }, "Operand": { + "markdownDescription": "The value to use when performing the evaluation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Operand", "type": "string" }, "Operator": { + "markdownDescription": "The operator to use to perform the evaluation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Operator", "type": "string" }, "Or": { "items": { "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.Predicate" }, + "markdownDescription": "A list of predicates to combine logically\\. \n*Required*: No \n*Type*: List of [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-amplifyuibuilder-component-predicate.html#aws-properties-amplifyuibuilder-component-predicate) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Or", "type": "array" } }, @@ -2617,9 +3287,13 @@ "additionalProperties": false, "properties": { "Direction": { + "markdownDescription": "The direction of the sort, either ascending or descending\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Direction", "type": "string" }, "Field": { + "markdownDescription": "The field to perform the sort on\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Field", "type": "string" } }, @@ -2787,6 +3461,9 @@ "DescriptiveText": { "type": "string" }, + "IsArray": { + "type": "boolean" + }, "MaxValue": { "type": "number" }, @@ -2953,6 +3630,9 @@ "AWS::AmplifyUIBuilder::Form.SectionalElement": { "additionalProperties": false, "properties": { + "Excluded": { + "type": "boolean" + }, "Level": { "type": "number" }, @@ -3039,28 +3719,42 @@ "Properties": { "additionalProperties": false, "properties": { + "AppId": { + "type": "string" + }, + "EnvironmentName": { + "type": "string" + }, "Name": { + "markdownDescription": "The name of the theme\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Overrides": { "items": { "$ref": "#/definitions/AWS::AmplifyUIBuilder::Theme.ThemeValues" }, + "markdownDescription": "Describes the properties that can be overriden to customize a theme\\. \n*Required*: No \n*Type*: List of [ThemeValues](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-theme-themevalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Overrides", "type": "array" }, "Tags": { "additionalProperties": true, + "markdownDescription": "One or more key\\-value pairs to use when tagging the theme\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" }, "Values": { "items": { "$ref": "#/definitions/AWS::AmplifyUIBuilder::Theme.ThemeValues" }, + "markdownDescription": "A list of key\\-value pairs that defines the properties of the theme\\. \n*Required*: Yes \n*Type*: List of [ThemeValues](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-theme-themevalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -3098,9 +3792,13 @@ "items": { "$ref": "#/definitions/AWS::AmplifyUIBuilder::Theme.ThemeValues" }, + "markdownDescription": "A list of key\\-value pairs that define the theme's properties\\. \n*Required*: No \n*Type*: List of [ThemeValues](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-theme-themevalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Children", "type": "array" }, "Value": { + "markdownDescription": "The value of a theme property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -3110,10 +3808,14 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The name of the property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { - "$ref": "#/definitions/AWS::AmplifyUIBuilder::Theme.ThemeValue" + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Theme.ThemeValue", + "markdownDescription": "The value of the property\\. \n*Required*: No \n*Type*: [ThemeValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-theme-themevalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value" } }, "type": "object" @@ -3154,6 +3856,8 @@ "additionalProperties": false, "properties": { "CloudWatchRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an IAM role that has write access to CloudWatch Logs in your account\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchRoleArn", "type": "string" } }, @@ -3215,33 +3919,49 @@ "additionalProperties": false, "properties": { "CustomerId": { + "markdownDescription": "An AWS Marketplace customer identifier to use when integrating with the AWS SaaS Marketplace\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomerId", "type": "string" }, "Description": { + "markdownDescription": "A description of the purpose of the API key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Enabled": { + "markdownDescription": "Indicates whether the API key can be used by clients\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "GenerateDistinctId": { + "markdownDescription": "Specifies whether the key identifier is distinct from the created API key value\\. This parameter is deprecated and should not be used\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GenerateDistinctId", "type": "boolean" }, "Name": { + "markdownDescription": "A name for the API key\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the API key name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "StageKeys": { "items": { "$ref": "#/definitions/AWS::ApiGateway::ApiKey.StageKey" }, + "markdownDescription": "A list of stages to associate with this API key\\. \n*Required*: No \n*Type*: List of [StageKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-apikey-stagekey.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StageKeys", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the API key\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Value": { + "markdownDescription": "The value of the API key\\. Must be at least 20 characters long\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", "type": "string" } }, @@ -3271,9 +3991,13 @@ "additionalProperties": false, "properties": { "RestApiId": { + "markdownDescription": "The ID of a `RestApi` resource that includes the stage with which you want to associate the API key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestApiId", "type": "string" }, "StageName": { + "markdownDescription": "The name of the stage with which to associate the API key\\. The stage must be included in the `RestApi` resource that you specified in the `RestApiId` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StageName", "type": "string" } }, @@ -3315,36 +4039,56 @@ "additionalProperties": false, "properties": { "AuthType": { + "markdownDescription": "An optional customer\\-defined field that's used in OpenApi imports and exports without functional impact\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthType", "type": "string" }, "AuthorizerCredentials": { + "markdownDescription": "The credentials that are required for the authorizer\\. To specify an IAM role that API Gateway assumes, specify the role's Amazon Resource Name \\(ARN\\)\\. To use resource\\-based permissions on the Lambda function, specify null\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerCredentials", "type": "string" }, "AuthorizerResultTtlInSeconds": { + "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*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerResultTtlInSeconds", "type": "number" }, "AuthorizerUri": { + "markdownDescription": "The authorizer's Uniform Resource Identifier \\(URI\\)\\. If you specify `TOKEN` for the authorizer's `Type` property, specify a Lambda function URI that has the form `arn:aws:apigateway:region:lambda:path/path`\\. The path usually has the form /2015\\-03\\-31/functions/*LambdaFunctionARN*/invocations\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerUri", "type": "string" }, "IdentitySource": { + "markdownDescription": "The source of the identity in an incoming request\\. \nIf you specify `TOKEN` or `COGNITO_USER_POOLS` for the `Type` property, this property is required\\. Specify a header mapping expression using the form `method.request.header.name`, where *name* is the name of a custom authorization header that clients submit as part of their requests\\. \nIf you specify `REQUEST` for the `Type` property, this property is required when authorization caching is enabled\\. Specify a comma\\-separated string of one or more mapping expressions of the specified request parameter using the form `method.request.parameter.name`\\. For supported parameter types, see [Configure Lambda Authorizer Using the API Gateway Console](https://docs.aws.amazon.com/apigateway/latest/developerguide/configure-api-gateway-lambda-authorization-with-console.html) in the *API Gateway Developer Guide*\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentitySource", "type": "string" }, "IdentityValidationExpression": { + "markdownDescription": "A validation expression for the incoming identity\\. If you specify `TOKEN` for the authorizer's `Type` property, specify a regular expression\\. API Gateway uses the expression to attempt to match the incoming client token, and proceeds if the token matches\\. If the token doesn't match, API Gateway responds with a 401 \\(unauthorized request\\) error code\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentityValidationExpression", "type": "string" }, "Name": { + "markdownDescription": "The name of the authorizer\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "ProviderARNs": { "items": { "type": "string" }, + "markdownDescription": "A list of the Amazon Cognito user pool Amazon Resource Names \\(ARNs\\) to associate with this authorizer\\. Required if you specify `COGNITO_USER_POOLS` as the authorizer `Type`\\. For more information, see [Use Amazon Cognito User Pools](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html#apigateway-enable-cognito-user-pool) in the *API Gateway Developer Guide*\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProviderARNs", "type": "array" }, "RestApiId": { + "markdownDescription": "The ID of the `RestApi` resource that API Gateway creates the authorizer in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestApiId", "type": "string" }, "Type": { + "markdownDescription": "The type of authorizer\\. Valid values include: \n+ `TOKEN`: A custom authorizer that uses a Lambda function\\.\n+ `COGNITO_USER_POOLS`: An authorizer that uses Amazon Cognito user pools\\.\n+ `REQUEST`: An authorizer that uses a Lambda function using incoming request parameters\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -3412,18 +4156,28 @@ "additionalProperties": false, "properties": { "BasePath": { + "markdownDescription": "The base path name that callers of the API must provide in the URL after the domain name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BasePath", "type": "string" }, "DomainName": { + "markdownDescription": "The `DomainName` of an [AWS::ApiGateway::DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html) resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", "type": "string" }, "Id": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "RestApiId": { + "markdownDescription": "The ID of the API\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestApiId", "type": "string" }, "Stage": { + "markdownDescription": "The name of the API's stage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Stage", "type": "string" } }, @@ -3489,12 +4243,16 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the client certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the client certificate\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -3556,18 +4314,28 @@ "additionalProperties": false, "properties": { "DeploymentCanarySettings": { - "$ref": "#/definitions/AWS::ApiGateway::Deployment.DeploymentCanarySettings" + "$ref": "#/definitions/AWS::ApiGateway::Deployment.DeploymentCanarySettings", + "markdownDescription": "Specifies settings for the canary deployment\\. \n*Required*: No \n*Type*: [DeploymentCanarySettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-deploymentcanarysettings.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeploymentCanarySettings" }, "Description": { + "markdownDescription": "A description of the purpose of the API Gateway deployment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "RestApiId": { + "markdownDescription": "The ID of the `RestApi` resource to deploy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestApiId", "type": "string" }, "StageDescription": { - "$ref": "#/definitions/AWS::ApiGateway::Deployment.StageDescription" + "$ref": "#/definitions/AWS::ApiGateway::Deployment.StageDescription", + "markdownDescription": "Configures the stage that API Gateway creates with this deployment\\. \n*Required*: No \n*Type*: [StageDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StageDescription" }, "StageName": { + "markdownDescription": "A name for the stage that API Gateway creates with this deployment\\. Use only alphanumeric characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StageName", "type": "string" } }, @@ -3601,9 +4369,13 @@ "additionalProperties": false, "properties": { "DestinationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs\\. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with `amazon-apigateway-`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationArn", "type": "string" }, "Format": { + "markdownDescription": "A single line format of the access logs of data, as specified by selected [$context variables](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference)\\. The format must include at least `$context.requestId`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", "type": "string" } }, @@ -3613,18 +4385,24 @@ "additionalProperties": false, "properties": { "PercentTraffic": { + "markdownDescription": "The percent \\(0\\-100\\) of traffic diverted to a canary deployment\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PercentTraffic", "type": "number" }, "StageVariableOverrides": { "additionalProperties": true, + "markdownDescription": "Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary\\. These stage variables are represented as a string\\-to\\-string map between stage variable names and their values\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "StageVariableOverrides", "type": "object" }, "UseStageCache": { + "markdownDescription": "Whether the canary deployment uses the stage cache or not\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseStageCache", "type": "boolean" } }, @@ -3634,18 +4412,24 @@ "additionalProperties": false, "properties": { "PercentTraffic": { + "markdownDescription": "The percentage \\(0\\-100\\) of traffic diverted to a canary deployment\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PercentTraffic", "type": "number" }, "StageVariableOverrides": { "additionalProperties": true, + "markdownDescription": "Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary\\. These stage variables are represented as a string\\-to\\-string map between stage variable names and their values\\. \nDuplicates are not allowed\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "StageVariableOverrides", "type": "object" }, "UseStageCache": { + "markdownDescription": "Whether the canary deployment uses the stage cache\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UseStageCache", "type": "boolean" } }, @@ -3655,33 +4439,53 @@ "additionalProperties": false, "properties": { "CacheDataEncrypted": { + "markdownDescription": "Indicates whether the cached responses are encrypted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheDataEncrypted", "type": "boolean" }, "CacheTtlInSeconds": { + "markdownDescription": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches responses\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheTtlInSeconds", "type": "number" }, "CachingEnabled": { + "markdownDescription": "Indicates whether responses are cached and returned for requests\\. You must enable a cache cluster on the stage to cache responses\\. For more information, see [Enable API Gateway Caching in a Stage to Enhance API Performance](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CachingEnabled", "type": "boolean" }, "DataTraceEnabled": { + "markdownDescription": "Indicates whether data trace logging is enabled for methods in the stage\\. API Gateway pushes these logs to Amazon CloudWatch Logs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataTraceEnabled", "type": "boolean" }, "HttpMethod": { + "markdownDescription": "The HTTP method\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpMethod", "type": "string" }, "LoggingLevel": { + "markdownDescription": "The logging level for this method\\. For valid values, see the `loggingLevel` property of the [Stage](https://docs.aws.amazon.com/apigateway/api-reference/resource/stage/#loggingLevel) resource in the *Amazon API Gateway API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingLevel", "type": "string" }, "MetricsEnabled": { + "markdownDescription": "Indicates whether Amazon CloudWatch metrics are enabled for methods in the stage\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricsEnabled", "type": "boolean" }, "ResourcePath": { + "markdownDescription": "The resource path for this method\\. Forward slashes \\(`/`\\) are encoded as `~1` and the initial slash must include a forward slash\\. For example, the path value `/resource/subresource` must be encoded as `/~1resource~1subresource`\\. To specify the root path, use only a slash \\(`/`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourcePath", "type": "string" }, "ThrottlingBurstLimit": { + "markdownDescription": "The number of burst requests per second that API Gateway permits across all APIs, stages, and methods in your AWS account\\. For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThrottlingBurstLimit", "type": "number" }, "ThrottlingRateLimit": { + "markdownDescription": "The number of steady\\-state requests per second that API Gateway permits across all APIs, stages, and methods in your AWS account\\. For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThrottlingRateLimit", "type": "number" } }, @@ -3691,72 +4495,110 @@ "additionalProperties": false, "properties": { "AccessLogSetting": { - "$ref": "#/definitions/AWS::ApiGateway::Deployment.AccessLogSetting" + "$ref": "#/definitions/AWS::ApiGateway::Deployment.AccessLogSetting", + "markdownDescription": "Specifies settings for logging access in this stage\\. \n*Required*: No \n*Type*: [AccessLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-accesslogsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessLogSetting" }, "CacheClusterEnabled": { + "markdownDescription": "Indicates whether cache clustering is enabled for the stage\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheClusterEnabled", "type": "boolean" }, "CacheClusterSize": { + "markdownDescription": "The size of the stage's cache cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheClusterSize", "type": "string" }, "CacheDataEncrypted": { + "markdownDescription": "Indicates whether the cached responses are encrypted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheDataEncrypted", "type": "boolean" }, "CacheTtlInSeconds": { + "markdownDescription": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches responses\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheTtlInSeconds", "type": "number" }, "CachingEnabled": { + "markdownDescription": "Indicates whether responses are cached and returned for requests\\. You must enable a cache cluster on the stage to cache responses\\. For more information, see [Enable API Gateway Caching in a Stage to Enhance API Performance](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CachingEnabled", "type": "boolean" }, "CanarySetting": { - "$ref": "#/definitions/AWS::ApiGateway::Deployment.CanarySetting" + "$ref": "#/definitions/AWS::ApiGateway::Deployment.CanarySetting", + "markdownDescription": "Specifies settings for the canary deployment in this stage\\. \n*Required*: No \n*Type*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-canarysetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CanarySetting" }, "ClientCertificateId": { + "markdownDescription": "The identifier of the client certificate that API Gateway uses to call your integration endpoints in the stage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientCertificateId", "type": "string" }, "DataTraceEnabled": { + "markdownDescription": "Indicates whether data trace logging is enabled for methods in the stage\\. API Gateway pushes these logs to Amazon CloudWatch Logs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataTraceEnabled", "type": "boolean" }, "Description": { + "markdownDescription": "A description of the purpose of the stage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DocumentationVersion": { + "markdownDescription": "The version identifier of the API documentation snapshot\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentationVersion", "type": "string" }, "LoggingLevel": { + "markdownDescription": "The logging level for this method\\. For valid values, see the `loggingLevel` property of the [Stage](https://docs.aws.amazon.com/apigateway/api-reference/resource/stage/#loggingLevel) resource in the *Amazon API Gateway API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingLevel", "type": "string" }, "MethodSettings": { "items": { "$ref": "#/definitions/AWS::ApiGateway::Deployment.MethodSetting" }, + "markdownDescription": "Configures settings for all of the stage's methods\\. \n*Required*: No \n*Type*: List of [MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-methodsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MethodSettings", "type": "array" }, "MetricsEnabled": { + "markdownDescription": "Indicates whether Amazon CloudWatch metrics are enabled for methods in the stage\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricsEnabled", "type": "boolean" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the stage\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "ThrottlingBurstLimit": { + "markdownDescription": "The target request burst rate limit\\. This allows more requests through for a period of time than the target rate limit\\. For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThrottlingBurstLimit", "type": "number" }, "ThrottlingRateLimit": { + "markdownDescription": "The target request steady\\-state rate limit\\. For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThrottlingRateLimit", "type": "number" }, "TracingEnabled": { + "markdownDescription": "Specifies whether active tracing with X\\-ray is enabled for this stage\\. \nFor more information, see [Trace API Gateway API Execution with AWS X\\-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TracingEnabled", "type": "boolean" }, "Variables": { "additionalProperties": true, + "markdownDescription": "A map that defines the stage variables\\. Variable names must consist of alphanumeric characters, and the values must match the following regular expression: `[A-Za-z0-9-._~:/?#&=,]+`\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Variables", "type": "object" } }, @@ -3798,12 +4640,18 @@ "additionalProperties": false, "properties": { "Location": { - "$ref": "#/definitions/AWS::ApiGateway::DocumentationPart.Location" + "$ref": "#/definitions/AWS::ApiGateway::DocumentationPart.Location", + "markdownDescription": "The location of the API entity that the documentation applies to\\. \n*Required*: Yes \n*Type*: [Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-documentationpart-location.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Location" }, "Properties": { + "markdownDescription": "The documentation content map of the targeted API entity\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Properties", "type": "string" }, "RestApiId": { + "markdownDescription": "The identifier of the targeted API entity\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestApiId", "type": "string" } }, @@ -3839,18 +4687,28 @@ "additionalProperties": false, "properties": { "Method": { + "markdownDescription": "The HTTP verb of a method\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Method", "type": "string" }, "Name": { + "markdownDescription": "The name of the targeted API entity\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Path": { + "markdownDescription": "The URL path of the target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Path", "type": "string" }, "StatusCode": { + "markdownDescription": "The HTTP status code of a response\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StatusCode", "type": "string" }, "Type": { + "markdownDescription": "The type of API entity that the documentation content applies to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -3892,12 +4750,18 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the API documentation snapshot\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DocumentationVersion": { + "markdownDescription": "The version identifier of the API documentation snapshot\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DocumentationVersion", "type": "string" }, "RestApiId": { + "markdownDescription": "The identifier of the API\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestApiId", "type": "string" } }, @@ -3964,30 +4828,46 @@ "additionalProperties": false, "properties": { "CertificateArn": { + "markdownDescription": "The reference to an AWS\\-managed certificate for use by the edge\\-optimized endpoint for this domain name\\. AWS Certificate Manager is the only supported source\\. For requirements and additional information about setting up certificates, see [Get Certificates Ready in AWS Certificate Manager](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html#how-to-custom-domains-prerequisites) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateArn", "type": "string" }, "DomainName": { + "markdownDescription": "The custom domain name for your API\\. Uppercase letters are not supported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", "type": "string" }, "EndpointConfiguration": { - "$ref": "#/definitions/AWS::ApiGateway::DomainName.EndpointConfiguration" + "$ref": "#/definitions/AWS::ApiGateway::DomainName.EndpointConfiguration", + "markdownDescription": "A list of the endpoint types of the domain name\\. \n*Required*: No \n*Type*: [EndpointConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-endpointconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointConfiguration" }, "MutualTlsAuthentication": { - "$ref": "#/definitions/AWS::ApiGateway::DomainName.MutualTlsAuthentication" + "$ref": "#/definitions/AWS::ApiGateway::DomainName.MutualTlsAuthentication", + "markdownDescription": "The mutual TLS authentication configuration for a custom domain name\\. \n*Required*: No \n*Type*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-mutualtlsauthentication.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MutualTlsAuthentication" }, "OwnershipVerificationCertificateArn": { + "markdownDescription": "The ARN of the public certificate issued by ACM to validate ownership of your custom domain\\. Only required when configuring mutual TLS and using an ACM imported or private CA certificate ARN as the RegionalCertificateArn\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OwnershipVerificationCertificateArn", "type": "string" }, "RegionalCertificateArn": { + "markdownDescription": "The reference to an AWS\\-managed certificate for use by the regional endpoint for the domain name\\. AWS Certificate Manager is the only supported source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegionalCertificateArn", "type": "string" }, "SecurityPolicy": { + "markdownDescription": "The Transport Layer Security \\(TLS\\) version \\+ cipher suite for this domain name\\. \nValid values include `TLS_1_0` and `TLS_1_2`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityPolicy", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the domain name\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -4020,6 +4900,8 @@ "items": { "type": "string" }, + "markdownDescription": "A list of endpoint types of an API or its custom domain name\\. For an edge\\-optimized API and its custom domain name, the endpoint type is `EDGE`\\. For a regional API and its custom domain name, the endpoint type is `REGIONAL`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Types", "type": "array" } }, @@ -4029,9 +4911,13 @@ "additionalProperties": false, "properties": { "TruststoreUri": { + "markdownDescription": "An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`\\. The truststore can contain certificates from public or private certificate authorities\\. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version\\. To update the truststore, you must have permissions to access the S3 object\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TruststoreUri", "type": "string" }, "TruststoreVersion": { + "markdownDescription": "The version of the S3 object that contains your truststore\\. To specify a version, you must have versioning enabled for the S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TruststoreVersion", "type": "string" } }, @@ -4074,29 +4960,39 @@ "properties": { "ResponseParameters": { "additionalProperties": true, + "markdownDescription": "The response parameters \\(paths, query strings, and headers\\) for the response\\. Duplicates not allowed\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "ResponseParameters", "type": "object" }, "ResponseTemplates": { "additionalProperties": true, + "markdownDescription": "The response templates for the response\\. Duplicates not allowed\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "ResponseTemplates", "type": "object" }, "ResponseType": { + "markdownDescription": "The response type\\. For valid values, see [GatewayResponse](https://docs.aws.amazon.com/apigateway/api-reference/resource/gateway-response/) in the *API Gateway API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResponseType", "type": "string" }, "RestApiId": { + "markdownDescription": "The identifier of the API\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestApiId", "type": "string" }, "StatusCode": { + "markdownDescription": "The HTTP status code for the response\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusCode", "type": "string" } }, @@ -4163,60 +5059,86 @@ "additionalProperties": false, "properties": { "ApiKeyRequired": { + "markdownDescription": "Indicates whether the method requires clients to submit a valid API key\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKeyRequired", "type": "boolean" }, "AuthorizationScopes": { "items": { "type": "string" }, + "markdownDescription": "A list of authorization scopes configured on the method\\. The scopes are used with a `COGNITO_USER_POOLS` authorizer to authorize the method invocation\\. The authorization works by matching the method scopes against the scopes parsed from the access token in the incoming request\\. The method invocation is authorized if any method scopes match a claimed scope in the access token\\. Otherwise, the invocation is not authorized\\. When the method scope is configured, the client must provide an access token instead of an identity token for authorization purposes\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationScopes", "type": "array" }, "AuthorizationType": { + "markdownDescription": "The method's authorization type\\. This parameter is required\\. For valid values, see [Method](https://docs.aws.amazon.com/apigateway/api-reference/resource/method/) in the *API Gateway API Reference*\\. \nIf you specify the `AuthorizerId` property, specify `CUSTOM` or `COGNITO_USER_POOLS` for this property\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationType", "type": "string" }, "AuthorizerId": { + "markdownDescription": "The identifier of the [authorizer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html) to use on this method\\. If you specify this property, specify `CUSTOM` or `COGNITO_USER_POOLS` for the `AuthorizationType` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerId", "type": "string" }, "HttpMethod": { + "markdownDescription": "The HTTP method that clients use to call this method\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpMethod", "type": "string" }, "Integration": { - "$ref": "#/definitions/AWS::ApiGateway::Method.Integration" + "$ref": "#/definitions/AWS::ApiGateway::Method.Integration", + "markdownDescription": "The backend system that the method calls when it receives a request\\. \n*Required*: No \n*Type*: [Integration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Integration" }, "MethodResponses": { "items": { "$ref": "#/definitions/AWS::ApiGateway::Method.MethodResponse" }, + "markdownDescription": "The responses that can be sent to the client who calls the method\\. \n*Required*: No \n*Type*: List of [MethodResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-methodresponse.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MethodResponses", "type": "array" }, "OperationName": { + "markdownDescription": "A friendly operation name for the method\\. For example, you can assign the `OperationName` of `ListPets` for the `GET /pets` method\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OperationName", "type": "string" }, "RequestModels": { "additionalProperties": true, + "markdownDescription": "The resources that are used for the request's content type\\. Specify request models as key\\-value pairs \\(string\\-to\\-string mapping\\), with a content type as the key and a `Model` resource name as the value\\. To use the same model regardless of the content type, specify `$default` as the key\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "RequestModels", "type": "object" }, "RequestParameters": { "additionalProperties": true, + "markdownDescription": "The request parameters that API Gateway accepts\\. Specify request parameters as key\\-value pairs \\(string\\-to\\-Boolean mapping\\), with a source as the key and a Boolean as the value\\. The Boolean specifies whether a parameter is required\\. A source must match the format `method.request.location.name`, where the location is querystring, path, or header, and *name* is a valid, unique parameter name\\. \n*Required*: No \n*Type*: Map of Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "boolean" } }, + "title": "RequestParameters", "type": "object" }, "RequestValidatorId": { + "markdownDescription": "The ID of the associated request validator\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestValidatorId", "type": "string" }, "ResourceId": { + "markdownDescription": "The ID of an API Gateway [resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html)\\. For root resource methods, specify the `RestApi` root resource ID, such as `{ \"Fn::GetAtt\": [\"MyRestApi\", \"RootResourceId\"] }`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceId", "type": "string" }, "RestApiId": { + "markdownDescription": "The ID of the [RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource in which API Gateway creates the method\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestApiId", "type": "string" } }, @@ -4255,60 +5177,88 @@ "items": { "type": "string" }, + "markdownDescription": "A list of request parameters whose values API Gateway caches\\. For cases where the integration type allows for RequestParameters to be set, these parameters must also be specified in [RequestParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-requestparameters) to be supported in `CacheKeyParameters`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheKeyParameters", "type": "array" }, "CacheNamespace": { + "markdownDescription": "An API\\-specific tag group of related cached parameters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheNamespace", "type": "string" }, "ConnectionId": { + "markdownDescription": "The ID of the `VpcLink` used for the integration when `connectionType=VPC_LINK`, otherwise undefined\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionId", "type": "string" }, "ConnectionType": { + "markdownDescription": "The type of the network connection to the integration endpoint\\. The valid value is `INTERNET` for connections through the public routable internet or `VPC_LINK` for private connections between API Gateway and a network load balancer in a VPC\\. The default value is `INTERNET`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionType", "type": "string" }, "ContentHandling": { + "markdownDescription": "Specifies how to handle request payload content type conversions\\. Valid values are: \n+ `CONVERT_TO_BINARY`: Converts a request payload from a base64\\-encoded string to a binary blob\\.\n+ `CONVERT_TO_TEXT`: Converts a request payload from a binary blob to a base64\\-encoded string\\.\nIf this property isn't defined, the request payload is passed through from the method request to the integration request without modification, provided that the `PassthroughBehaviors` property is configured to support payload pass\\-through\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentHandling", "type": "string" }, "Credentials": { + "markdownDescription": "The credentials that are required for the integration\\. To specify an AWS Identity and Access Management \\(IAM\\) role that API Gateway assumes, specify the role's Amazon Resource Name \\(ARN\\)\\. To require that the caller's identity be passed through from the request, specify arn:aws:iam::\\*:user/\\*\\. \nTo use resource\\-based permissions on the AWS Lambda \\(Lambda\\) function, don't specify this property\\. Use the [AWS::Lambda::Permission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html) resource to permit API Gateway to call the function\\. For more information, see [Allow Amazon API Gateway to Invoke a Lambda Function](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html#access-control-resource-based-example-apigateway-invoke-function) in the *AWS Lambda Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Credentials", "type": "string" }, "IntegrationHttpMethod": { + "markdownDescription": "The integration's HTTP method type\\. \nFor the `Type` property, if you specify `MOCK`, this property is optional\\. For all other types, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegrationHttpMethod", "type": "string" }, "IntegrationResponses": { "items": { "$ref": "#/definitions/AWS::ApiGateway::Method.IntegrationResponse" }, + "markdownDescription": "The response that API Gateway provides after a method's backend completes processing a request\\. API Gateway intercepts the response from the backend so that you can control how API Gateway surfaces backend responses\\. For example, you can map the backend status codes to codes that you define\\. \n*Required*: No \n*Type*: List of [IntegrationResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration-integrationresponse.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegrationResponses", "type": "array" }, "PassthroughBehavior": { + "markdownDescription": "Indicates when API Gateway passes requests to the targeted backend\\. This behavior depends on the request's `Content-Type` header and whether you defined a mapping template for it\\. \nFor more information and valid values, see the [passthroughBehavior](https://docs.aws.amazon.com/apigateway/api-reference/link-relation/integration-put/#passthroughBehavior) field in the *API Gateway API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PassthroughBehavior", "type": "string" }, "RequestParameters": { "additionalProperties": true, + "markdownDescription": "The request parameters that API Gateway sends with the backend request\\. Specify request parameters as key\\-value pairs \\(string\\-to\\-string mappings\\), with a destination as the key and a source as the value\\. \nSpecify the destination by using the following pattern `integration.request.location.name`, where *location* is query string, path, or header, and *name* is a valid, unique parameter name\\. \nThe source must be an existing method request parameter or a static value\\. You must enclose static values in single quotation marks and pre\\-encode these values based on their destination in the request\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "RequestParameters", "type": "object" }, "RequestTemplates": { "additionalProperties": true, + "markdownDescription": "A map of Apache Velocity templates that are applied on the request payload\\. The template that API Gateway uses is based on the value of the `Content-Type` header that's sent by the client\\. The content type value is the key, and the template is the value \\(specified as a string\\), such as the following snippet: \n`\"application/json\": \"{\\n \\\"statusCode\\\": 200\\n}\"` \nFor more information about templates, see [API Gateway Mapping Template and Access Logging Variable Reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "RequestTemplates", "type": "object" }, "TimeoutInMillis": { + "markdownDescription": "Custom timeout between 50 and 29,000 milliseconds\\. The default value is 29,000 milliseconds or 29 seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutInMillis", "type": "number" }, "Type": { + "markdownDescription": "The type of backend that your method is running, such as `HTTP` or `MOCK`\\. For all of the valid values, see the [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/#type) property for the `Integration` resource in the *Amazon API Gateway REST API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" }, "Uri": { + "markdownDescription": "The Uniform Resource Identifier \\(URI\\) for the integration\\. \nIf you specify `HTTP` for the `Type` property, specify the API endpoint URL\\. \nIf you specify `MOCK` for the `Type` property, don't specify this property\\. \nIf you specify `AWS` for the `Type` property, specify an AWS service that follows this form: arn:aws:apigateway:*region*:*subdomain*\\.*service\\|service*:*path\\|action*/*service\\_api*\\. For example, a Lambda function URI follows this form: arn:aws:apigateway:*region*:lambda:path/*path*\\. The path is usually in the form /2015\\-03\\-31/functions/*LambdaFunctionARN*/invocations\\. For more information, see the `uri` property of the [Integration](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/) resource in the Amazon API Gateway REST API Reference\\. \nIf you specified `HTTP` or `AWS` for the `Type` property, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Uri", "type": "string" } }, @@ -4318,30 +5268,40 @@ "additionalProperties": false, "properties": { "ContentHandling": { + "markdownDescription": "Specifies how to handle request payload content type conversions\\. Valid values are: \n+ `CONVERT_TO_BINARY`: Converts a request payload from a base64\\-encoded string to a binary blob\\.\n+ `CONVERT_TO_TEXT`: Converts a request payload from a binary blob to a base64\\-encoded string\\.\nIf this property isn't defined, the request payload is passed through from the method request to the integration request without modification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentHandling", "type": "string" }, "ResponseParameters": { "additionalProperties": true, + "markdownDescription": "The response parameters from the backend response that API Gateway sends to the method response\\. Specify response parameters as key\\-value pairs \\([string\\-to\\-string mappings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/mappings-section-structure.html)\\)\\. \nUse the destination as the key and the source as the value: \n+ The destination must be an existing response parameter in the [MethodResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-methodresponse.html) property\\.\n+ The source must be an existing method request parameter or a static value\\. You must enclose static values in single quotation marks and pre\\-encode these values based on the destination specified in the request\\.\nFor more information about templates, see [API Gateway Mapping Template and Access Logging Variable Reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "ResponseParameters", "type": "object" }, "ResponseTemplates": { "additionalProperties": true, + "markdownDescription": "The templates that are used to transform the integration response body\\. Specify templates as key\\-value pairs \\(string\\-to\\-string mappings\\), with a content type as the key and a template as the value\\. For more information, see [API Gateway Mapping Template and Access Logging Variable Reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "ResponseTemplates", "type": "object" }, "SelectionPattern": { + "markdownDescription": "A [regular expression](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-regexes.html) that specifies which error strings or status codes from the backend map to the integration response\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SelectionPattern", "type": "string" }, "StatusCode": { + "markdownDescription": "The status code that API Gateway uses to map the integration response to a [MethodResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-methodresponse.html) status code\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusCode", "type": "string" } }, @@ -4355,23 +5315,29 @@ "properties": { "ResponseModels": { "additionalProperties": true, + "markdownDescription": "The resources used for the response's content type\\. Specify response models as key\\-value pairs \\(string\\-to\\-string maps\\), with a content type as the key and a [Model](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html) resource name as the value\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "ResponseModels", "type": "object" }, "ResponseParameters": { "additionalProperties": true, + "markdownDescription": "Response parameters that API Gateway sends to the client that called a method\\. Specify response parameters as key\\-value pairs \\(string\\-to\\-Boolean maps\\), with a destination as the key and a Boolean as the value\\. Specify the destination using the following pattern: `method.response.header.name`, where *name* is a valid, unique header name\\. The Boolean specifies whether a parameter is required\\. \n*Required*: No \n*Type*: Map of Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "boolean" } }, + "title": "ResponseParameters", "type": "object" }, "StatusCode": { + "markdownDescription": "The method response's status code, which you map to an [IntegrationResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration-integrationresponse.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusCode", "type": "string" } }, @@ -4416,18 +5382,28 @@ "additionalProperties": false, "properties": { "ContentType": { + "markdownDescription": "The content type for the model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContentType", "type": "string" }, "Description": { + "markdownDescription": "A description that identifies this model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "A name for the model\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the model name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RestApiId": { + "markdownDescription": "The ID of a REST API with which to associate this model\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestApiId", "type": "string" }, "Schema": { + "markdownDescription": "The schema to use to transform data to one or more output formats\\. Specify null \\(`{}`\\) if you don't want to specify a schema\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schema", "type": "object" } }, @@ -4493,15 +5469,23 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of this request validator\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RestApiId": { + "markdownDescription": "The identifier of the targeted API entity\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestApiId", "type": "string" }, "ValidateRequestBody": { + "markdownDescription": "Indicates whether to validate the request body according to the configured schema for the targeted API and method\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValidateRequestBody", "type": "boolean" }, "ValidateRequestParameters": { + "markdownDescription": "Indicates whether to validate request parameters\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValidateRequestParameters", "type": "boolean" } }, @@ -4567,12 +5551,18 @@ "additionalProperties": false, "properties": { "ParentId": { + "markdownDescription": "If you want to create a child resource, the ID of the parent resource\\. For resources without a parent, specify the `RestApi` root resource ID, such as `{ \"Fn::GetAtt\": [\"MyRestApi\", \"RootResourceId\"] }`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ParentId", "type": "string" }, "PathPart": { + "markdownDescription": "A path name for the resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PathPart", "type": "string" }, "RestApiId": { + "markdownDescription": "The ID of the [RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource in which you want to create this resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestApiId", "type": "string" } }, @@ -4640,60 +5630,90 @@ "additionalProperties": false, "properties": { "ApiKeySourceType": { + "markdownDescription": "The source of the API key for metering requests according to a usage plan\\. Valid values are: \n+ `HEADER` to read the API key from the `X-API-Key` header of a request\\.\n+ `AUTHORIZER` to read the API key from the `UsageIdentifierKey` from a Lambda authorizer\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKeySourceType", "type": "string" }, "BinaryMediaTypes": { "items": { "type": "string" }, + "markdownDescription": "The list of binary media types that are supported by the `RestApi` resource\\. Use `~1` instead of `/` in the media types, for example `image~1png` or `application~1octet-stream`\\. By default, `RestApi` supports only UTF\\-8\\-encoded text payloads\\. Duplicates are not allowed\\. For more information, see [Enable Support for Binary Payloads in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-payload-encodings.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BinaryMediaTypes", "type": "array" }, "Body": { + "markdownDescription": "An OpenAPI specification that defines a set of RESTful APIs in JSON format\\. For YAML templates, you can also provide the specification in YAML format\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body", "type": "object" }, "BodyS3Location": { - "$ref": "#/definitions/AWS::ApiGateway::RestApi.S3Location" + "$ref": "#/definitions/AWS::ApiGateway::RestApi.S3Location", + "markdownDescription": "The Amazon Simple Storage Service \\(Amazon S3\\) location that points to an OpenAPI file, which defines a set of RESTful APIs in JSON or YAML format\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BodyS3Location" }, "CloneFrom": { + "markdownDescription": "The ID of the `RestApi` resource that you want to clone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloneFrom", "type": "string" }, "Description": { + "markdownDescription": "A description of the `RestApi` resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DisableExecuteApiEndpoint": { + "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 endpoint\\. To require that clients use a custom domain name to invoke your API, disable the default endpoint\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableExecuteApiEndpoint", "type": "boolean" }, "EndpointConfiguration": { - "$ref": "#/definitions/AWS::ApiGateway::RestApi.EndpointConfiguration" + "$ref": "#/definitions/AWS::ApiGateway::RestApi.EndpointConfiguration", + "markdownDescription": "A list of the endpoint types of the API\\. Use this property when creating an API\\. When importing an existing API, specify the endpoint configuration types using the `Parameters` property\\. \n*Required*: No \n*Type*: [EndpointConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointConfiguration" }, "FailOnWarnings": { + "markdownDescription": "Indicates whether to roll back the resource if a warning occurs while API Gateway is creating the `RestApi` resource\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailOnWarnings", "type": "boolean" }, "MinimumCompressionSize": { + "markdownDescription": "A nullable integer that is used to enable compression \\(with non\\-negative between 0 and 10485760 \\(10M\\) bytes, inclusive\\) or disable compression \\(with a null value\\) on an API\\. When compression is enabled, compression or decompression is not applied on the payload if the payload size is smaller than this value\\. Setting it to zero allows compression for any payload size\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinimumCompressionSize", "type": "number" }, "Mode": { + "markdownDescription": "This property applies only when you use OpenAPI to define your REST API\\. The `Mode` determines how API Gateway handles resource updates\\. \nValid values are `overwrite` or `merge`\\. \nFor `overwrite`, the new API definition replaces the existing one\\. The existing API identifier remains unchanged\\. \n For `merge`, the new API definition takes precedence, but any container types such as endpoint configurations and binary media types are merged with the existing API\\. Use `merge` to define top\\-level `RestApi` properties in addition to using OpenAPI\\. Generally, it's preferred to use API Gateway's OpenAPI extensions to model these properties\\. \nIf you don't specify this property, a default value is chosen\\. For REST APIs created before March 29, 2021, the default is `overwrite`\\. Otherwise, the default value is `merge`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", "type": "string" }, "Name": { + "markdownDescription": "A name for the `RestApi` resource\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Parameters": { "additionalProperties": true, + "markdownDescription": "Custom header parameters for the request\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Parameters", "type": "object" }, "Policy": { + "markdownDescription": "A policy document that contains the permissions for the `RestApi` resource\\. To set the ARN for the policy, use the `!Join` intrinsic function with `\"\"` as delimiter and values of `\"execute-api:/\"` and `\"*\"`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policy", "type": "object" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the API\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -4726,12 +5746,16 @@ "items": { "type": "string" }, + "markdownDescription": "A list of endpoint types of an API or its custom domain name\\. Valid values include: \n+ `EDGE`: For an edge\\-optimized API and its custom domain name\\.\n+ `REGIONAL`: For a regional API and its custom domain name\\.\n+ `PRIVATE`: For a private API\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Types", "type": "array" }, "VpcEndpointIds": { "items": { "type": "string" }, + "markdownDescription": "A list of VPC endpoint IDs of an API \\([AWS::ApiGateway::RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html)\\) against which to create Route53 ALIASes\\. It is only supported for `PRIVATE` endpoint type\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcEndpointIds", "type": "array" } }, @@ -4741,15 +5765,23 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The name of the S3 bucket where the OpenAPI file is stored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", "type": "string" }, "ETag": { + "markdownDescription": "The Amazon S3 ETag \\(a file checksum\\) of the OpenAPI file\\. If you don't specify a value, API Gateway skips ETag validation of your OpenAPI file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ETag", "type": "string" }, "Key": { + "markdownDescription": "The file name of the OpenAPI file \\(Amazon S3 object name\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Version": { + "markdownDescription": "For versioning\\-enabled buckets, a specific version of the OpenAPI file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -4791,57 +5823,85 @@ "additionalProperties": false, "properties": { "AccessLogSetting": { - "$ref": "#/definitions/AWS::ApiGateway::Stage.AccessLogSetting" + "$ref": "#/definitions/AWS::ApiGateway::Stage.AccessLogSetting", + "markdownDescription": "Specifies settings for logging access in this stage\\. \n*Required*: No \n*Type*: [AccessLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-accesslogsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessLogSetting" }, "CacheClusterEnabled": { + "markdownDescription": "Indicates whether cache clustering is enabled for the stage\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheClusterEnabled", "type": "boolean" }, "CacheClusterSize": { + "markdownDescription": "The stage's cache cluster size\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheClusterSize", "type": "string" }, "CanarySetting": { - "$ref": "#/definitions/AWS::ApiGateway::Stage.CanarySetting" + "$ref": "#/definitions/AWS::ApiGateway::Stage.CanarySetting", + "markdownDescription": "Specifies settings for the canary deployment in this stage\\. \n*Required*: No \n*Type*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CanarySetting" }, "ClientCertificateId": { + "markdownDescription": "The ID of the client certificate that API Gateway uses to call your integration endpoints in the stage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientCertificateId", "type": "string" }, "DeploymentId": { + "markdownDescription": "The ID of the deployment that the stage is associated with\\. This parameter is required to create a stage\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentId", "type": "string" }, "Description": { + "markdownDescription": "A description of the stage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DocumentationVersion": { + "markdownDescription": "The version ID of the API documentation snapshot\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentationVersion", "type": "string" }, "MethodSettings": { "items": { "$ref": "#/definitions/AWS::ApiGateway::Stage.MethodSetting" }, + "markdownDescription": "Settings for all methods in the stage\\. \n*Required*: No \n*Type*: List of [MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MethodSettings", "type": "array" }, "RestApiId": { + "markdownDescription": "The ID of the `RestApi` resource that you're deploying with this stage\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestApiId", "type": "string" }, "StageName": { + "markdownDescription": "The name of the stage, which API Gateway uses as the first path segment in the invoked Uniform Resource Identifier \\(URI\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StageName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the stage\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TracingEnabled": { + "markdownDescription": "Specifies whether active X\\-Ray tracing is enabled for this stage\\. \nFor more information, see [Trace API Gateway API Execution with AWS X\\-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TracingEnabled", "type": "boolean" }, "Variables": { "additionalProperties": true, + "markdownDescription": "A map \\(string\\-to\\-string map\\) 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*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Variables", "type": "object" } }, @@ -4875,9 +5935,13 @@ "additionalProperties": false, "properties": { "DestinationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs\\. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with `amazon-apigateway-`\\. This parameter is required to enable access logging\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationArn", "type": "string" }, "Format": { + "markdownDescription": "A single line format of the access logs of data, as specified by selected [$context variables](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference)\\. The format must include at least `$context.requestId`\\. This parameter is required to enable access logging\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", "type": "string" } }, @@ -4887,21 +5951,29 @@ "additionalProperties": false, "properties": { "DeploymentId": { + "markdownDescription": "The identifier of the deployment that the stage points to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentId", "type": "string" }, "PercentTraffic": { + "markdownDescription": "The percentage \\(0\\-100\\) of traffic diverted to a canary deployment\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PercentTraffic", "type": "number" }, "StageVariableOverrides": { "additionalProperties": true, + "markdownDescription": "Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary\\. These stage variables are represented as a string\\-to\\-string map between stage variable names and their values\\. \nDuplicates are not allowed\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "StageVariableOverrides", "type": "object" }, "UseStageCache": { + "markdownDescription": "Whether the canary deployment uses the stage cache or not\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseStageCache", "type": "boolean" } }, @@ -4911,33 +5983,53 @@ "additionalProperties": false, "properties": { "CacheDataEncrypted": { + "markdownDescription": "Indicates whether the cached responses are encrypted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheDataEncrypted", "type": "boolean" }, "CacheTtlInSeconds": { + "markdownDescription": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches responses\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheTtlInSeconds", "type": "number" }, "CachingEnabled": { + "markdownDescription": "Indicates whether responses are cached and returned for requests\\. You must enable a cache cluster on the stage to cache responses\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CachingEnabled", "type": "boolean" }, "DataTraceEnabled": { + "markdownDescription": "Indicates whether data trace logging is enabled for methods in the stage\\. API Gateway pushes these logs to Amazon CloudWatch Logs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataTraceEnabled", "type": "boolean" }, "HttpMethod": { + "markdownDescription": "The HTTP method\\. To apply settings to multiple resources and methods, specify an asterisk \\(`*`\\) for the `HttpMethod` and `/*` for the `ResourcePath`\\. This parameter is required when you specify a `MethodSetting`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpMethod", "type": "string" }, "LoggingLevel": { + "markdownDescription": "The logging level for this method\\. For valid values, see the `loggingLevel` property of the [Stage](https://docs.aws.amazon.com/apigateway/api-reference/resource/stage/#loggingLevel) resource in the *Amazon API Gateway API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingLevel", "type": "string" }, "MetricsEnabled": { + "markdownDescription": "Indicates whether Amazon CloudWatch metrics are enabled for methods in the stage\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricsEnabled", "type": "boolean" }, "ResourcePath": { + "markdownDescription": "The resource path for this method\\. Forward slashes \\(`/`\\) are encoded as `~1` and the initial slash must include a forward slash\\. For example, the path value `/resource/subresource` must be encoded as `/~1resource~1subresource`\\. To specify the root path, use only a slash \\(`/`\\)\\. To apply settings to multiple resources and methods, specify an asterisk \\(`*`\\) for the `HttpMethod` and `/*` for the `ResourcePath`\\. This parameter is required when you specify a `MethodSetting`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourcePath", "type": "string" }, "ThrottlingBurstLimit": { + "markdownDescription": "The number of burst requests per second that API Gateway permits across all APIs, stages, and methods in your AWS account\\. For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThrottlingBurstLimit", "type": "number" }, "ThrottlingRateLimit": { + "markdownDescription": "The number of steady\\-state requests per second that API Gateway permits across all APIs, stages, and methods in your AWS account\\. For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThrottlingRateLimit", "type": "number" } }, @@ -4982,24 +6074,36 @@ "items": { "$ref": "#/definitions/AWS::ApiGateway::UsagePlan.ApiStage" }, + "markdownDescription": "The API stages to associate with this usage plan\\. \n*Required*: No \n*Type*: List of [ApiStage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-apistage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiStages", "type": "array" }, "Description": { + "markdownDescription": "A description of the usage plan\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Quota": { - "$ref": "#/definitions/AWS::ApiGateway::UsagePlan.QuotaSettings" + "$ref": "#/definitions/AWS::ApiGateway::UsagePlan.QuotaSettings", + "markdownDescription": "Configures the number of requests that users can make within a given interval\\. \n*Required*: No \n*Type*: [QuotaSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-quotasettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Quota" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the usage plan\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Throttle": { - "$ref": "#/definitions/AWS::ApiGateway::UsagePlan.ThrottleSettings" + "$ref": "#/definitions/AWS::ApiGateway::UsagePlan.ThrottleSettings", + "markdownDescription": "Configures the overall request rate \\(average requests per second\\) and burst capacity\\. \n*Required*: No \n*Type*: [ThrottleSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-throttlesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Throttle" }, "UsagePlanName": { + "markdownDescription": "A name for the usage plan\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UsagePlanName", "type": "string" } }, @@ -5029,18 +6133,24 @@ "additionalProperties": false, "properties": { "ApiId": { + "markdownDescription": "The ID of an API that is in the specified `Stage` property that you want to associate with the usage plan\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiId", "type": "string" }, "Stage": { + "markdownDescription": "The name of the stage to associate with the usage plan\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Stage", "type": "string" }, "Throttle": { "additionalProperties": false, + "markdownDescription": "Map containing method\\-level throttling information for an API stage in a usage plan\\. The key for the map is the path and method for which to configure custom throttling, for example, \"/pets/GET\"\\. \nDuplicates are not allowed\\. \n*Required*: No \n*Type*: Map of [ThrottleSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-throttlesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::ApiGateway::UsagePlan.ThrottleSettings" } }, + "title": "Throttle", "type": "object" } }, @@ -5050,12 +6160,18 @@ "additionalProperties": false, "properties": { "Limit": { + "markdownDescription": "The target maximum number of requests that can be made in a given time period\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Limit", "type": "number" }, "Offset": { + "markdownDescription": "The day that a time period starts\\. For example, with a time period of `WEEK`, an offset of `0` starts on Sunday, and an offset of `1` starts on Monday\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Offset", "type": "number" }, "Period": { + "markdownDescription": "The time period for which the target maximum limit of requests applies, such as `DAY` or `WEEK`\\. For valid values, see the period property for the [UsagePlan](https://docs.aws.amazon.com/apigateway/api-reference/resource/usage-plan) resource in the *Amazon API Gateway REST API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Period", "type": "string" } }, @@ -5065,9 +6181,13 @@ "additionalProperties": false, "properties": { "BurstLimit": { + "markdownDescription": "The API target request burst rate limit\\. This allows more requests through for a period of time than the target rate limit\\. For more information about request throttling, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BurstLimit", "type": "number" }, "RateLimit": { + "markdownDescription": "The API target request steady\\-state rate limit\\. For more information about request throttling, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RateLimit", "type": "number" } }, @@ -5109,12 +6229,18 @@ "additionalProperties": false, "properties": { "KeyId": { + "markdownDescription": "The ID of the usage plan key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyId", "type": "string" }, "KeyType": { + "markdownDescription": "The type of usage plan key\\. Currently, the only valid key type is `API_KEY`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyType", "type": "string" }, "UsagePlanId": { + "markdownDescription": "The ID of the usage plan\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UsagePlanId", "type": "string" } }, @@ -5182,21 +6308,29 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the VPC link\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "A name for the VPC link\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the VPC link\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TargetArns": { "items": { "type": "string" }, + "markdownDescription": "The ARN of network load balancer of the VPC targeted by the VPC link\\. The network load balancer must be owned by the same AWS account of the API owner\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetArns", "type": "array" } }, @@ -5263,60 +6397,94 @@ "additionalProperties": false, "properties": { "ApiKeySelectionExpression": { + "markdownDescription": "An API key selection expression\\. Supported only for WebSocket APIs\\. See [API Key Selection Expressions](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKeySelectionExpression", "type": "string" }, "BasePath": { + "markdownDescription": "Specifies how to interpret the base path of the API during import\\. Valid values are `ignore`, `prepend`, and `split`\\. The default value is `ignore`\\. To learn more, see [Set the OpenAPI basePath Property](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api-basePath.html)\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BasePath", "type": "string" }, "Body": { + "markdownDescription": "The OpenAPI definition\\. Supported only for HTTP APIs\\. To import an HTTP API, you must specify a `Body` or `BodyS3Location`\\. If you specify a `Body` or `BodyS3Location`, don't specify CloudFormation resources such as `AWS::ApiGatewayV2::Authorizer` or `AWS::ApiGatewayV2::Route`\\. API Gateway doesn't support the combination of OpenAPI and CloudFormation resources\\. \n*Required*: Conditional \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body", "type": "object" }, "BodyS3Location": { - "$ref": "#/definitions/AWS::ApiGatewayV2::Api.BodyS3Location" + "$ref": "#/definitions/AWS::ApiGatewayV2::Api.BodyS3Location", + "markdownDescription": "The S3 location of an OpenAPI definition\\. Supported only for HTTP APIs\\. To import an HTTP API, you must specify a `Body` or `BodyS3Location`\\. If you specify a `Body` or `BodyS3Location`, don't specify CloudFormation resources such as `AWS::ApiGatewayV2::Authorizer` or `AWS::ApiGatewayV2::Route`\\. API Gateway doesn't support the combination of OpenAPI and CloudFormation resources\\. \n*Required*: Conditional \n*Type*: [BodyS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BodyS3Location" }, "CorsConfiguration": { - "$ref": "#/definitions/AWS::ApiGatewayV2::Api.Cors" + "$ref": "#/definitions/AWS::ApiGatewayV2::Api.Cors", + "markdownDescription": "A CORS configuration\\. Supported only for HTTP APIs\\. See [Configuring CORS](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) for more information\\. \n*Required*: No \n*Type*: [Cors](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-cors.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CorsConfiguration" }, "CredentialsArn": { + "markdownDescription": "This property is part of quick create\\. It specifies the credentials required for the integration, if any\\. For a Lambda integration, three options are available\\. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name \\(ARN\\)\\. To require that the caller's identity be passed through from the request, specify `arn:aws:iam::*:user/*`\\. To use resource\\-based permissions on supported AWS services, specify `null`\\. Currently, this property is not used for HTTP integrations\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CredentialsArn", "type": "string" }, "Description": { + "markdownDescription": "The description of the API\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DisableExecuteApiEndpoint": { + "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 endpoint\\. To require that clients use a custom domain name to invoke your API, disable the default endpoint\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableExecuteApiEndpoint", "type": "boolean" }, "DisableSchemaValidation": { + "markdownDescription": "Avoid validating models when creating a deployment\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableSchemaValidation", "type": "boolean" }, "FailOnWarnings": { + "markdownDescription": "Specifies whether to rollback the API creation when a warning is encountered\\. By default, API creation continues if a warning is encountered\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailOnWarnings", "type": "boolean" }, "Name": { + "markdownDescription": "The name of the API\\. Required unless you specify an OpenAPI definition for `Body` or `S3BodyLocation`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "ProtocolType": { + "markdownDescription": "The API protocol\\. Valid values are `WEBSOCKET` or `HTTP`\\. Required unless you specify an OpenAPI definition for `Body` or `S3BodyLocation`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProtocolType", "type": "string" }, "RouteKey": { + "markdownDescription": "This property is part of quick create\\. If you don't specify a `routeKey`, a default route of `$default` is created\\. The `$default` route acts as a catch\\-all for any request made to your API, for a particular stage\\. The `$default` route key can't be modified\\. You can add routes after creating the API, and you can update the route keys of additional routes\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteKey", "type": "string" }, "RouteSelectionExpression": { + "markdownDescription": "The route selection expression for the API\\. For HTTP APIs, the `routeSelectionExpression` must be `${request.method} ${request.path}`\\. If not provided, this will be the default for HTTP APIs\\. This property is required for WebSocket APIs\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteSelectionExpression", "type": "string" }, "Tags": { "additionalProperties": true, + "markdownDescription": "The collection of tags\\. Each tag element is associated with a given resource\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" }, "Target": { + "markdownDescription": "This property is part of quick create\\. Quick create produces an API with an integration, a default catch\\-all route, and a default stage which is configured to automatically deploy changes\\. For HTTP integrations, specify a fully qualified URL\\. For Lambda integrations, specify a function ARN\\. The type of the integration will be HTTP\\_PROXY or AWS\\_PROXY, respectively\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target", "type": "string" }, "Version": { + "markdownDescription": "A version identifier for the API\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -5346,15 +6514,23 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The S3 bucket that contains the OpenAPI definition to import\\. Required if you specify a `BodyS3Location` for an API\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", "type": "string" }, "Etag": { + "markdownDescription": "The Etag of the S3 object\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Etag", "type": "string" }, "Key": { + "markdownDescription": "The key of the S3 object\\. Required if you specify a `BodyS3Location` for an API\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Version": { + "markdownDescription": "The version of the S3 object\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -5364,33 +6540,45 @@ "additionalProperties": false, "properties": { "AllowCredentials": { + "markdownDescription": "Specifies whether credentials are included in the CORS request\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowCredentials", "type": "boolean" }, "AllowHeaders": { "items": { "type": "string" }, + "markdownDescription": "Represents a collection of allowed headers\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowHeaders", "type": "array" }, "AllowMethods": { "items": { "type": "string" }, + "markdownDescription": "Represents a collection of allowed HTTP methods\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowMethods", "type": "array" }, "AllowOrigins": { "items": { "type": "string" }, + "markdownDescription": "Represents a collection of allowed origins\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowOrigins", "type": "array" }, "ExposeHeaders": { "items": { "type": "string" }, + "markdownDescription": "Represents a collection of exposed headers\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExposeHeaders", "type": "array" }, "MaxAge": { + "markdownDescription": "The number of seconds that the browser should cache preflight request results\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxAge", "type": "number" } }, @@ -5432,16 +6620,24 @@ "additionalProperties": false, "properties": { "ApiId": { + "markdownDescription": "The ID of the API for which to override the configuration of API Gateway\\-managed resources\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", "type": "string" }, "Integration": { - "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.IntegrationOverrides" + "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.IntegrationOverrides", + "markdownDescription": "Overrides the integration configuration for an API Gateway\\-managed integration\\. \n*Required*: No \n*Type*: [IntegrationOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Integration" }, "Route": { - "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteOverrides" + "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteOverrides", + "markdownDescription": "Overrides the route configuration for an API Gateway\\-managed route\\. \n*Required*: No \n*Type*: [RouteOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routeoverrides.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Route" }, "Stage": { - "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.StageOverrides" + "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.StageOverrides", + "markdownDescription": "Overrides the stage configuration for an API Gateway\\-managed stage\\. \n*Required*: No \n*Type*: [StageOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Stage" } }, "required": [ @@ -5474,9 +6670,13 @@ "additionalProperties": false, "properties": { "DestinationArn": { + "markdownDescription": "The ARN of the CloudWatch Logs log group to receive access logs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationArn", "type": "string" }, "Format": { + "markdownDescription": "A single line format of the access logs of data, as specified by selected $context variables\\. The format must include at least $context\\.requestId\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", "type": "string" } }, @@ -5486,15 +6686,23 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the integration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "IntegrationMethod": { + "markdownDescription": "Specifies the integration's HTTP method type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegrationMethod", "type": "string" }, "PayloadFormatVersion": { + "markdownDescription": "Specifies the format of the payload sent to an integration\\. Required for HTTP APIs\\. For HTTP APIs, supported values for Lambda proxy integrations are `1.0` and `2.0`\\. For all other integrations, `1.0` is the only supported value\\. To learn more, see [Working with AWS Lambda proxy integrations for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PayloadFormatVersion", "type": "string" }, "TimeoutInMillis": { + "markdownDescription": "Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs\\. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutInMillis", "type": "number" } }, @@ -5507,18 +6715,28 @@ "items": { "type": "string" }, + "markdownDescription": "The authorization scopes supported by this route\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationScopes", "type": "array" }, "AuthorizationType": { + "markdownDescription": "The authorization type for the route\\. To learn more, see [AuthorizationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-authorizationtype)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationType", "type": "string" }, "AuthorizerId": { + "markdownDescription": "The identifier of the `Authorizer` resource to be associated with this route\\. The authorizer identifier is generated by API Gateway when you created the authorizer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerId", "type": "string" }, "OperationName": { + "markdownDescription": "The operation name for the route\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OperationName", "type": "string" }, "Target": { + "markdownDescription": "For HTTP integrations, specify a fully qualified URL\\. For Lambda integrations, specify a function ARN\\. The type of the integration will be HTTP\\_PROXY or AWS\\_PROXY, respectively\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target", "type": "string" } }, @@ -5528,18 +6746,28 @@ "additionalProperties": false, "properties": { "DataTraceEnabled": { + "markdownDescription": "Specifies whether \\(`true`\\) or not \\(`false`\\) data trace logging is enabled for this route\\. This property affects the log entries pushed to Amazon CloudWatch Logs\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataTraceEnabled", "type": "boolean" }, "DetailedMetricsEnabled": { + "markdownDescription": "Specifies whether detailed metrics are enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DetailedMetricsEnabled", "type": "boolean" }, "LoggingLevel": { + "markdownDescription": "Specifies the logging level for this route: `INFO`, `ERROR`, or `OFF`\\. This property affects the log entries pushed to Amazon CloudWatch Logs\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingLevel", "type": "string" }, "ThrottlingBurstLimit": { + "markdownDescription": "Specifies the throttling burst limit\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThrottlingBurstLimit", "type": "number" }, "ThrottlingRateLimit": { + "markdownDescription": "Specifies the throttling rate limit\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThrottlingRateLimit", "type": "number" } }, @@ -5549,21 +6777,33 @@ "additionalProperties": false, "properties": { "AccessLogSettings": { - "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.AccessLogSettings" + "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.AccessLogSettings", + "markdownDescription": "Settings for logging access in a stage\\. \n*Required*: No \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessLogSettings" }, "AutoDeploy": { + "markdownDescription": "Specifies whether updates to an API automatically trigger a new deployment\\. The default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoDeploy", "type": "boolean" }, "DefaultRouteSettings": { - "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteSettings" + "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteSettings", + "markdownDescription": "The default route settings for the stage\\. \n*Required*: No \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultRouteSettings" }, "Description": { + "markdownDescription": "The description for the API stage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "RouteSettings": { + "markdownDescription": "Route settings for the stage\\. \n*Required*: No \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteSettings", "type": "object" }, "StageVariables": { + "markdownDescription": "A map that defines the stage variables for a `Stage`\\. Variable names can have alphanumeric and underscore characters, and the values must match \\[A\\-Za\\-z0\\-9\\-\\.\\_\\~:/?\\#&=,\\]\\+\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StageVariables", "type": "object" } }, @@ -5605,15 +6845,23 @@ "additionalProperties": false, "properties": { "ApiId": { + "markdownDescription": "The identifier of the API\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", "type": "string" }, "ApiMappingKey": { + "markdownDescription": "The API mapping key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiMappingKey", "type": "string" }, "DomainName": { + "markdownDescription": "The domain name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", "type": "string" }, "Stage": { + "markdownDescription": "The API stage\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Stage", "type": "string" } }, @@ -5681,39 +6929,61 @@ "additionalProperties": false, "properties": { "ApiId": { + "markdownDescription": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", "type": "string" }, "AuthorizerCredentialsArn": { + "markdownDescription": "Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer\\. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name \\(ARN\\)\\. To use resource\\-based permissions on the Lambda function, specify null\\. Supported only for `REQUEST` authorizers\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerCredentialsArn", "type": "string" }, "AuthorizerPayloadFormatVersion": { + "markdownDescription": "Specifies the format of the payload sent to an HTTP API Lambda authorizer\\. Required for HTTP API Lambda authorizers\\. Supported values are `1.0` and `2.0`\\. To learn more, see [Working with AWS Lambda authorizers for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerPayloadFormatVersion", "type": "string" }, "AuthorizerResultTtlInSeconds": { + "markdownDescription": "The time to live \\(TTL\\) for cached authorizer results, in seconds\\. If it equals 0, authorization caching is disabled\\. If it is greater than 0, API Gateway caches authorizer responses\\. The maximum value is 3600, or 1 hour\\. Supported only for HTTP API Lambda authorizers\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerResultTtlInSeconds", "type": "number" }, "AuthorizerType": { + "markdownDescription": "The authorizer type\\. Specify `REQUEST` for a Lambda function using incoming request parameters\\. Specify `JWT` to use JSON Web Tokens \\(supported only for HTTP APIs\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerType", "type": "string" }, "AuthorizerUri": { + "markdownDescription": "The authorizer's Uniform Resource Identifier \\(URI\\)\\. For `REQUEST` authorizers, this must be a well\\-formed Lambda function URI, for example, `arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations`\\. In general, the URI has this form: `arn:aws:apigateway:{region}:lambda:path/{service_api} `, where *\\{region\\}* is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial `/`\\. For Lambda functions, this is usually of the form `/2015-03-31/functions/[FunctionARN]/invocations`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerUri", "type": "string" }, "EnableSimpleResponses": { + "markdownDescription": "Specifies whether a Lambda authorizer returns a response in a simple format\\. By default, a Lambda authorizer must return an IAM policy\\. If enabled, the Lambda authorizer can return a boolean value instead of an IAM policy\\. Supported only for HTTP APIs\\. To learn more, see [Working with AWS Lambda authorizers for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableSimpleResponses", "type": "boolean" }, "IdentitySource": { "items": { "type": "string" }, + "markdownDescription": "The identity source for which authorization is requested\\. \nFor a `REQUEST` authorizer, this is optional\\. The value is a set of one or more mapping expressions of the specified request parameters\\. The identity source can be headers, query string parameters, stage variables, and context parameters\\. For example, if an Auth header and a Name query string parameter are defined as identity sources, this value is route\\.request\\.header\\.Auth, route\\.request\\.querystring\\.Name for WebSocket APIs\\. For HTTP APIs, use selection expressions prefixed with `$`, for example, `$request.header.Auth`, `$request.querystring.Name`\\. These parameters are used to perform runtime validation for Lambda\\-based authorizers by verifying all of the identity\\-related request parameters are present in the request, not null, and non\\-empty\\. Only when this is true does the authorizer invoke the authorizer Lambda function\\. Otherwise, it returns a 401 Unauthorized response without calling the Lambda function\\. For HTTP APIs, identity sources are also used as the cache key when caching is enabled\\. To learn more, see [Working with AWS Lambda authorizers for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html)\\. \nFor `JWT`, a single entry that specifies where to extract the JSON Web Token \\(JWT\\) from inbound requests\\. Currently only header\\-based and query parameter\\-based selections are supported, for example `$request.header.Authorization`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentitySource", "type": "array" }, "IdentityValidationExpression": { + "markdownDescription": "This parameter is not used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentityValidationExpression", "type": "string" }, "JwtConfiguration": { - "$ref": "#/definitions/AWS::ApiGatewayV2::Authorizer.JWTConfiguration" + "$ref": "#/definitions/AWS::ApiGatewayV2::Authorizer.JWTConfiguration", + "markdownDescription": "The `JWTConfiguration` property specifies the configuration of a JWT authorizer\\. Required for the `JWT` authorizer type\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: [JWTConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-authorizer-jwtconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JwtConfiguration" }, "Name": { + "markdownDescription": "The name of the authorizer\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -5752,9 +7022,13 @@ "items": { "type": "string" }, + "markdownDescription": "A list of the intended recipients of the JWT\\. A valid JWT must provide an `aud` that matches at least one entry in this list\\. See [RFC 7519](https://tools.ietf.org/html/rfc7519#section-4.1.3)\\. Required for the `JWT` authorizer type\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Audience", "type": "array" }, "Issuer": { + "markdownDescription": "The base domain of the identity provider that issues JSON Web Tokens\\. For example, an Amazon Cognito user pool has the following format: `https://cognito-idp.{region}.amazonaws.com/{userPoolId} `\\. Required for the `JWT` authorizer type\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Issuer", "type": "string" } }, @@ -5796,12 +7070,18 @@ "additionalProperties": false, "properties": { "ApiId": { + "markdownDescription": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", "type": "string" }, "Description": { + "markdownDescription": "The description for the deployment resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "StageName": { + "markdownDescription": "The name of an existing stage to associate with the deployment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StageName", "type": "string" } }, @@ -5867,18 +7147,26 @@ "additionalProperties": false, "properties": { "DomainName": { + "markdownDescription": "The custom domain name for your API in Amazon API Gateway\\. Uppercase letters are not supported\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", "type": "string" }, "DomainNameConfigurations": { "items": { "$ref": "#/definitions/AWS::ApiGatewayV2::DomainName.DomainNameConfiguration" }, + "markdownDescription": "The domain name configurations\\. \n*Required*: No \n*Type*: List of [DomainNameConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainNameConfigurations", "type": "array" }, "MutualTlsAuthentication": { - "$ref": "#/definitions/AWS::ApiGatewayV2::DomainName.MutualTlsAuthentication" + "$ref": "#/definitions/AWS::ApiGatewayV2::DomainName.MutualTlsAuthentication", + "markdownDescription": "The mutual TLS authentication configuration for a custom domain name\\. \n*Required*: No \n*Type*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-mutualtlsauthentication.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MutualTlsAuthentication" }, "Tags": { + "markdownDescription": "The collection of tags associated with a domain name\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" } }, @@ -5912,18 +7200,28 @@ "additionalProperties": false, "properties": { "CertificateArn": { + "markdownDescription": "An AWS\\-managed certificate that will be used by the edge\\-optimized endpoint for this domain name\\. AWS Certificate Manager is the only supported source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateArn", "type": "string" }, "CertificateName": { + "markdownDescription": "The user\\-friendly name of the certificate that will be used by the edge\\-optimized endpoint for this domain name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateName", "type": "string" }, "EndpointType": { + "markdownDescription": "The endpoint type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointType", "type": "string" }, "OwnershipVerificationCertificateArn": { + "markdownDescription": "The ARN of the public certificate issued by ACM to validate ownership of your custom domain\\. Only required when configuring mutual TLS and using an ACM imported or private CA certificate ARN as the RegionalCertificateArn\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OwnershipVerificationCertificateArn", "type": "string" }, "SecurityPolicy": { + "markdownDescription": "The Transport Layer Security \\(TLS\\) version of the security policy for this domain name\\. The valid values are `TLS_1_0` and `TLS_1_2`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityPolicy", "type": "string" } }, @@ -5933,9 +7231,13 @@ "additionalProperties": false, "properties": { "TruststoreUri": { + "markdownDescription": "An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name `\\. The truststore can contain certificates from public or private certificate authorities\\. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version\\. To update the truststore, you must have permissions to access the S3 object\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TruststoreUri", "type": "string" }, "TruststoreVersion": { + "markdownDescription": "The version of the S3 object that contains your truststore\\. To specify a version, you must have versioning enabled for the S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TruststoreVersion", "type": "string" } }, @@ -5977,58 +7279,94 @@ "additionalProperties": false, "properties": { "ApiId": { + "markdownDescription": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", "type": "string" }, "ConnectionId": { + "markdownDescription": "The ID of the VPC link for a private integration\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionId", "type": "string" }, "ConnectionType": { + "markdownDescription": "The type of the network connection to the integration endpoint\\. Specify `INTERNET` for connections through the public routable internet or `VPC_LINK` for private connections between API Gateway and resources in a VPC\\. The default value is `INTERNET`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionType", "type": "string" }, "ContentHandlingStrategy": { + "markdownDescription": "Supported only for WebSocket APIs\\. Specifies how to handle response payload content type conversions\\. Supported values are `CONVERT_TO_BINARY` and `CONVERT_TO_TEXT`, with the following behaviors: \n `CONVERT_TO_BINARY`: Converts a response payload from a Base64\\-encoded string to the corresponding binary blob\\. \n `CONVERT_TO_TEXT`: Converts a response payload from a binary blob to a Base64\\-encoded string\\. \nIf this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentHandlingStrategy", "type": "string" }, "CredentialsArn": { + "markdownDescription": "Specifies the credentials required for the integration, if any\\. For AWS integrations, three options are available\\. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name \\(ARN\\)\\. To require that the caller's identity be passed through from the request, specify the string `arn:aws:iam::*:user/*`\\. To use resource\\-based permissions on supported AWS services, don't specify this parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CredentialsArn", "type": "string" }, "Description": { + "markdownDescription": "The description of the integration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "IntegrationMethod": { + "markdownDescription": "Specifies the integration's HTTP method type\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegrationMethod", "type": "string" }, "IntegrationSubtype": { + "markdownDescription": "Supported only for HTTP API `AWS_PROXY` integrations\\. Specifies the AWS service action to invoke\\. To learn more, see [Integration subtype reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegrationSubtype", "type": "string" }, "IntegrationType": { + "markdownDescription": "The integration type of an integration\\. One of the following: \n `AWS`: for integrating the route or method request with an AWS service action, including the Lambda function\\-invoking action\\. With the Lambda function\\-invoking action, this is referred to as the Lambda custom integration\\. With any other AWS service action, this is known as AWS integration\\. Supported only for WebSocket APIs\\. \n `AWS_PROXY`: for integrating the route or method request with a Lambda function or other AWS service action\\. This integration is also referred to as a Lambda proxy integration\\. \n `HTTP`: for integrating the route or method request with an HTTP endpoint\\. This integration is also referred to as the HTTP custom integration\\. Supported only for WebSocket APIs\\. \n `HTTP_PROXY`: for integrating the route or method request with an HTTP endpoint, with the client request passed through as\\-is\\. This is also referred to as HTTP proxy integration\\. For HTTP API private integrations, use an `HTTP_PROXY` integration\\. \n `MOCK`: for integrating the route or method request with API Gateway as a \"loopback\" endpoint without invoking any backend\\. Supported only for WebSocket APIs\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegrationType", "type": "string" }, "IntegrationUri": { + "markdownDescription": "For a Lambda integration, specify the URI of a Lambda function\\. \nFor an HTTP integration, specify a fully\\-qualified URL\\. \nFor an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service\\. If you specify the ARN of an AWS Cloud Map service, API Gateway uses `DiscoverInstances` to identify resources\\. You can use query parameters to target specific resources\\. To learn more, see [DiscoverInstances](https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html)\\. For private integrations, all resources must be owned by the same AWS account\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegrationUri", "type": "string" }, "PassthroughBehavior": { + "markdownDescription": "Specifies the pass\\-through behavior for incoming requests based on the `Content-Type` header in the request, and the available mapping templates specified as the `requestTemplates` property on the `Integration` resource\\. There are three valid values: `WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, and `NEVER`\\. Supported only for WebSocket APIs\\. \n `WHEN_NO_MATCH` passes the request body for unmapped content types through to the integration backend without transformation\\. \n `NEVER` rejects unmapped content types with an `HTTP 415 Unsupported Media Type` response\\. \n `WHEN_NO_TEMPLATES` allows pass\\-through when the integration has no content types mapped to templates\\. However, if there is at least one content type defined, unmapped content types will be rejected with the same `HTTP 415 Unsupported Media Type` response\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PassthroughBehavior", "type": "string" }, "PayloadFormatVersion": { + "markdownDescription": "Specifies the format of the payload sent to an integration\\. Required for HTTP APIs\\. For HTTP APIs, supported values for Lambda proxy integrations are `1.0` and `2.0`\\. For all other integrations, `1.0` is the only supported value\\. To learn more, see [Working with AWS Lambda proxy integrations for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html)\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PayloadFormatVersion", "type": "string" }, "RequestParameters": { + "markdownDescription": "For WebSocket APIs, a key\\-value map specifying request parameters that are passed from the method request to the backend\\. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre\\-encoded as required by the backend\\. The method request parameter value must match the pattern of `method.request.{location}.{name} `, where ` {location} ` is `querystring`, `path`, or `header`; and ` {name} ` must be a valid and unique method request parameter name\\. \nFor HTTP API integrations with a specified `integrationSubtype`, request parameters are a key\\-value map specifying parameters that are passed to `AWS_PROXY` integrations\\. You can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime\\. To learn more, see [Working with AWS service integrations for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html)\\. \nFor HTTP API integrations without a specified `integrationSubtype` request parameters are a key\\-value map specifying how to transform HTTP requests before sending them to the backend\\. The key should follow the pattern :\\. where action can be `append`, `overwrite` or` remove`\\. For values, you can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime\\. To learn more, see [Transforming API requests and responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestParameters", "type": "object" }, "RequestTemplates": { + "markdownDescription": "Represents a map of Velocity templates that are applied on the request payload based on the value of the Content\\-Type header sent by the client\\. The content type value is the key in this map, and the template \\(as a String\\) is the value\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestTemplates", "type": "object" }, "ResponseParameters": { + "markdownDescription": "Supported only for HTTP APIs\\. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients\\. Specify a key\\-value map from a selection key to response parameters\\. The selection key must be a valid HTTP status code within the range of 200\\-599\\. The value is of type [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-responseparameterlist.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-responseparameterlist.html)\\. To learn more, see [Transforming API requests and responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseParameters", "type": "object" }, "TemplateSelectionExpression": { + "markdownDescription": "The template selection expression for the integration\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateSelectionExpression", "type": "string" }, "TimeoutInMillis": { + "markdownDescription": "Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs\\. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutInMillis", "type": "number" }, "TlsConfig": { - "$ref": "#/definitions/AWS::ApiGatewayV2::Integration.TlsConfig" + "$ref": "#/definitions/AWS::ApiGatewayV2::Integration.TlsConfig", + "markdownDescription": "The TLS configuration for a private integration\\. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: [TlsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-tlsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TlsConfig" } }, "required": [ @@ -6062,9 +7400,13 @@ "additionalProperties": false, "properties": { "Destination": { + "markdownDescription": "Specifies the location of the response to modify, and how to modify it\\. To learn more, see [Transforming API requests and responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination", "type": "string" }, "Source": { + "markdownDescription": "Specifies the data to update the parameter with\\. To learn more, see [Transforming API requests and responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source", "type": "string" } }, @@ -6081,6 +7423,8 @@ "items": { "$ref": "#/definitions/AWS::ApiGatewayV2::Integration.ResponseParameter" }, + "markdownDescription": "Supported only for HTTP APIs\\. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients\\. Specify a key\\-value map from a selection key to response parameters\\. The selection key must be a valid HTTP status code within the range of 200\\-599\\. Response parameters are a key\\-value map\\. The key must match the pattern `:
.` or `overwrite.statuscode`\\. The action can be `append`, `overwrite` or `remove`\\. The value can be a static value, or map to response data, stage variables, or context variables that are evaluated at runtime\\. To learn more, see [Transforming API requests and responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html)\\. \n*Required*: No \n*Type*: List of [ResponseParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-responseparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseParameters", "type": "array" } }, @@ -6090,6 +7434,8 @@ "additionalProperties": false, "properties": { "ServerNameToVerify": { + "markdownDescription": "If you specify a server name, API Gateway uses it to verify the hostname on the integration's certificate\\. The server name is also included in the TLS handshake to support Server Name Indication \\(SNI\\) or virtual hosting\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerNameToVerify", "type": "string" } }, @@ -6131,24 +7477,38 @@ "additionalProperties": false, "properties": { "ApiId": { + "markdownDescription": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiId", "type": "string" }, "ContentHandlingStrategy": { + "markdownDescription": "Supported only for WebSocket APIs\\. Specifies how to handle response payload content type conversions\\. Supported values are `CONVERT_TO_BINARY` and `CONVERT_TO_TEXT`, with the following behaviors: \n `CONVERT_TO_BINARY`: Converts a response payload from a Base64\\-encoded string to the corresponding binary blob\\. \n `CONVERT_TO_TEXT`: Converts a response payload from a binary blob to a Base64\\-encoded string\\. \nIf this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentHandlingStrategy", "type": "string" }, "IntegrationId": { + "markdownDescription": "The integration ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegrationId", "type": "string" }, "IntegrationResponseKey": { + "markdownDescription": "The integration response key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegrationResponseKey", "type": "string" }, "ResponseParameters": { + "markdownDescription": "A key\\-value map specifying response parameters that are passed to the method response from the backend\\. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body\\. The mapping key must match the pattern of `method.response.header.{name} `, where name is a valid and unique header name\\. The mapped non\\-static value must match the pattern of `integration.response.header.{name} ` or `integration.response.body.{JSON-expression} `, where ` {name} ` is a valid and unique response header name and ` {JSON-expression} ` is a valid JSON expression without the `$` prefix\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseParameters", "type": "object" }, "ResponseTemplates": { + "markdownDescription": "The collection of response templates for the integration response as a string\\-to\\-string map of key\\-value pairs\\. Response templates are represented as a key/value map, with a content\\-type as the key and a template as the value\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseTemplates", "type": "object" }, "TemplateSelectionExpression": { + "markdownDescription": "The template selection expression for the integration response\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateSelectionExpression", "type": "string" } }, @@ -6216,18 +7576,28 @@ "additionalProperties": false, "properties": { "ApiId": { + "markdownDescription": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", "type": "string" }, "ContentType": { + "markdownDescription": "The content\\-type for the model, for example, \"application/json\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentType", "type": "string" }, "Description": { + "markdownDescription": "The description of the model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name of the model\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Schema": { + "markdownDescription": "The schema for the model\\. For application/json models, this should be JSON schema draft 4 model\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schema", "type": "object" } }, @@ -6295,42 +7665,66 @@ "additionalProperties": false, "properties": { "ApiId": { + "markdownDescription": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", "type": "string" }, "ApiKeyRequired": { + "markdownDescription": "Specifies whether an API key is required for the route\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKeyRequired", "type": "boolean" }, "AuthorizationScopes": { "items": { "type": "string" }, + "markdownDescription": "The authorization scopes supported by this route\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationScopes", "type": "array" }, "AuthorizationType": { + "markdownDescription": "The authorization type for the route\\. For WebSocket APIs, valid values are `NONE` for open access, `AWS_IAM` for using AWS IAM permissions, and `CUSTOM` for using a Lambda authorizer\\. For HTTP APIs, valid values are `NONE` for open access, `JWT` for using JSON Web Tokens, `AWS_IAM` for using AWS IAM permissions, and `CUSTOM` for using a Lambda authorizer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationType", "type": "string" }, "AuthorizerId": { + "markdownDescription": "The identifier of the `Authorizer` resource to be associated with this route\\. The authorizer identifier is generated by API Gateway when you created the authorizer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerId", "type": "string" }, "ModelSelectionExpression": { + "markdownDescription": "The model selection expression for the route\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ModelSelectionExpression", "type": "string" }, "OperationName": { + "markdownDescription": "The operation name for the route\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OperationName", "type": "string" }, "RequestModels": { + "markdownDescription": "The request models for the route\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestModels", "type": "object" }, "RequestParameters": { + "markdownDescription": "The request parameters for the route\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestParameters", "type": "object" }, "RouteKey": { + "markdownDescription": "The route key for the route\\. For HTTP APIs, the route key can be either `$default`, or a combination of an HTTP method and resource path, for example, `GET /pets`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteKey", "type": "string" }, "RouteResponseSelectionExpression": { + "markdownDescription": "The route response selection expression for the route\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteResponseSelectionExpression", "type": "string" }, "Target": { + "markdownDescription": "The target for the route\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target", "type": "string" } }, @@ -6365,6 +7759,8 @@ "additionalProperties": false, "properties": { "Required": { + "markdownDescription": "Specifies whether the parameter is required\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Required", "type": "boolean" } }, @@ -6409,21 +7805,33 @@ "additionalProperties": false, "properties": { "ApiId": { + "markdownDescription": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", "type": "string" }, "ModelSelectionExpression": { + "markdownDescription": "The model selection expression for the route response\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ModelSelectionExpression", "type": "string" }, "ResponseModels": { + "markdownDescription": "The response models for the route response\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseModels", "type": "object" }, "ResponseParameters": { + "markdownDescription": "The route response parameters\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseParameters", "type": "object" }, "RouteId": { + "markdownDescription": "The route ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RouteId", "type": "string" }, "RouteResponseKey": { + "markdownDescription": "The route response key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteResponseKey", "type": "string" } }, @@ -6459,6 +7867,8 @@ "additionalProperties": false, "properties": { "Required": { + "markdownDescription": "Specifies whether the parameter is required\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Required", "type": "boolean" } }, @@ -6503,39 +7913,63 @@ "additionalProperties": false, "properties": { "AccessLogSettings": { - "$ref": "#/definitions/AWS::ApiGatewayV2::Stage.AccessLogSettings" + "$ref": "#/definitions/AWS::ApiGatewayV2::Stage.AccessLogSettings", + "markdownDescription": "Settings for logging access in this stage\\. \n*Required*: No \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-accesslogsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessLogSettings" }, "AccessPolicyId": { + "markdownDescription": "This parameter is not currently supported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessPolicyId", "type": "string" }, "ApiId": { + "markdownDescription": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", "type": "string" }, "AutoDeploy": { + "markdownDescription": "Specifies whether updates to an API automatically trigger a new deployment\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoDeploy", "type": "boolean" }, "ClientCertificateId": { + "markdownDescription": "The identifier of a client certificate for a `Stage`\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientCertificateId", "type": "string" }, "DefaultRouteSettings": { - "$ref": "#/definitions/AWS::ApiGatewayV2::Stage.RouteSettings" + "$ref": "#/definitions/AWS::ApiGatewayV2::Stage.RouteSettings", + "markdownDescription": "The default route settings for the stage\\. \n*Required*: No \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultRouteSettings" }, "DeploymentId": { + "markdownDescription": "The deployment identifier for the API stage\\. Can't be updated if `autoDeploy` is enabled\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentId", "type": "string" }, "Description": { + "markdownDescription": "The description for the API stage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "RouteSettings": { + "markdownDescription": "Route settings for the stage\\. \n*Required*: No \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteSettings", "type": "object" }, "StageName": { + "markdownDescription": "The stage name\\. Stage names can contain only alphanumeric characters, hyphens, and underscores, or be `$default`\\. Maximum length is 128 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StageName", "type": "string" }, "StageVariables": { + "markdownDescription": "A map that defines the stage variables for a `Stage`\\. Variable names can have alphanumeric and underscore characters, and the values must match \\[A\\-Za\\-z0\\-9\\-\\.\\_\\~:/?\\#&=,\\]\\+\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StageVariables", "type": "object" }, "Tags": { + "markdownDescription": "The collection of tags\\. Each tag element is associated with a given resource\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" } }, @@ -6570,9 +8004,13 @@ "additionalProperties": false, "properties": { "DestinationArn": { + "markdownDescription": "The ARN of the CloudWatch Logs log group to receive access logs\\. This parameter is required to enable access logging\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationArn", "type": "string" }, "Format": { + "markdownDescription": "A single line format of the access logs of data, as specified by selected $context variables\\. The format must include at least $context\\.requestId\\. This parameter is required to enable access logging\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", "type": "string" } }, @@ -6582,18 +8020,28 @@ "additionalProperties": false, "properties": { "DataTraceEnabled": { + "markdownDescription": "Specifies whether \\(`true`\\) or not \\(`false`\\) data trace logging is enabled for this route\\. This property affects the log entries pushed to Amazon CloudWatch Logs\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataTraceEnabled", "type": "boolean" }, "DetailedMetricsEnabled": { + "markdownDescription": "Specifies whether detailed metrics are enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DetailedMetricsEnabled", "type": "boolean" }, "LoggingLevel": { + "markdownDescription": "Specifies the logging level for this route: `INFO`, `ERROR`, or `OFF`\\. This property affects the log entries pushed to Amazon CloudWatch Logs\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingLevel", "type": "string" }, "ThrottlingBurstLimit": { + "markdownDescription": "Specifies the throttling burst limit\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThrottlingBurstLimit", "type": "number" }, "ThrottlingRateLimit": { + "markdownDescription": "Specifies the throttling rate limit\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThrottlingRateLimit", "type": "number" } }, @@ -6635,27 +8083,35 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the VPC link\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "SecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "A list of security group IDs for the VPC link\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroupIds", "type": "array" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "A list of subnet IDs to include in the VPC link\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetIds", "type": "array" }, "Tags": { "additionalProperties": true, + "markdownDescription": "The collection of tags\\. Each tag element is associated with a given resource\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" } }, @@ -6722,15 +8178,21 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "A name for the application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/AWS::AppConfig::Application.Tags" }, + "markdownDescription": "Metadata to assign to the application\\. Tags help organize and categorize your AWS AppConfig resources\\. Each tag consists of a key and an optional value, both of which you define\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-application-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-application-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -6764,9 +8226,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The key\\-value string map\\. The valid character set is `[a-zA-Z+-=._:/]`\\. The tag key can be up to 128 characters and must not start with `aws:`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The tag value can be up to 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -6808,33 +8274,49 @@ "additionalProperties": false, "properties": { "ApplicationId": { + "markdownDescription": "The application ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", "type": "string" }, "Description": { + "markdownDescription": "A description of the configuration profile\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "LocationUri": { + "markdownDescription": "A URI to locate the configuration\\. You can specify the AWS AppConfig hosted configuration store, Systems Manager \\(SSM\\) document, an SSM Parameter Store parameter, or an Amazon S3 object\\. For the hosted configuration store and for feature flags, specify `hosted`\\. For an SSM document, specify either the document name in the format `ssm-document://` or the Amazon Resource Name \\(ARN\\)\\. For a parameter, specify either the parameter name in the format `ssm-parameter://` or the ARN\\. For an Amazon S3 object, specify the URI in the following format: `s3:/// `\\. Here is an example: `s3://my-bucket/my-app/us-east-1/my-config.json` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocationUri", "type": "string" }, "Name": { + "markdownDescription": "A name for the configuration profile\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "RetrievalRoleArn": { + "markdownDescription": "The ARN of an IAM role with permission to access the configuration at the specified `LocationUri`\\. \nA retrieval role ARN is not required for configurations stored in the AWS AppConfig hosted configuration store\\. It is required for all other sources that store your configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^((https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/arn.html):(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/iam.html)::\\d{12}:role[/].*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetrievalRoleArn", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/AWS::AppConfig::ConfigurationProfile.Tags" }, + "markdownDescription": "Metadata to assign to the configuration profile\\. Tags help organize and categorize your AWS AppConfig resources\\. Each tag consists of a key and an optional value, both of which you define\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-configurationprofile-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-configurationprofile-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Type": { + "markdownDescription": "The type of configurations contained in the profile\\. AWS AppConfig supports `feature flags` and `freeform` configurations\\. We recommend you create feature flag configurations to enable or disable new features and freeform configurations to distribute configurations to an application\\. When calling this API, enter one of the following values for `Type`: \n `AWS.AppConfig.FeatureFlags` \n `AWS.Freeform` \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z\\.]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" }, "Validators": { "items": { "$ref": "#/definitions/AWS::AppConfig::ConfigurationProfile.Validators" }, + "markdownDescription": "A list of methods for validating the configuration\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-configurationprofile-validators.html) of [Validators](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-configurationprofile-validators.html) \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Validators", "type": "array" } }, @@ -6870,9 +8352,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The key\\-value string map\\. The valid character set is `[a-zA-Z+-=._:/]`\\. The tag key can be up to 128 characters and must not start with `aws:`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The tag value can be up to 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -6882,9 +8368,13 @@ "additionalProperties": false, "properties": { "Content": { + "markdownDescription": "Either the JSON Schema content or the Amazon Resource Name \\(ARN\\) of an Lambda function\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `32768` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Content", "type": "string" }, "Type": { + "markdownDescription": "AWS AppConfig supports validators of type `JSON_SCHEMA` and `LAMBDA` \n*Required*: No \n*Type*: String \n*Allowed values*: `JSON_SCHEMA | LAMBDA` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -6926,27 +8416,44 @@ "additionalProperties": false, "properties": { "ApplicationId": { + "markdownDescription": "The application ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", "type": "string" }, "ConfigurationProfileId": { + "markdownDescription": "The configuration profile ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfigurationProfileId", "type": "string" }, "ConfigurationVersion": { + "markdownDescription": "The configuration version to deploy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfigurationVersion", "type": "string" }, "DeploymentStrategyId": { + "markdownDescription": "The deployment strategy ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeploymentStrategyId", "type": "string" }, "Description": { + "markdownDescription": "A description of the deployment\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "EnvironmentId": { + "markdownDescription": "The environment ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnvironmentId", + "type": "string" + }, + "KmsKeyIdentifier": { "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/AWS::AppConfig::Deployment.Tags" }, + "markdownDescription": "Metadata to assign to the deployment\\. Tags help organize and categorize your AWS AppConfig resources\\. Each tag consists of a key and an optional value, both of which you define\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deployment-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deployment-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -6984,9 +8491,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The key\\-value string map\\. The valid character set is `[a-zA-Z+-=._:/]`\\. The tag key can be up to 128 characters and must not start with `aws:`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The tag value can be up to 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -7028,30 +8539,46 @@ "additionalProperties": false, "properties": { "DeploymentDurationInMinutes": { + "markdownDescription": "Total amount of time for a deployment to last\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `0` \n*Maximum*: `1440` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentDurationInMinutes", "type": "number" }, "Description": { + "markdownDescription": "A description of the deployment strategy\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "FinalBakeTimeInMinutes": { + "markdownDescription": "The amount of time AWS AppConfig monitors for alarms before considering the deployment to be complete and no longer eligible for automatic roll back\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `0` \n*Maximum*: `1440` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FinalBakeTimeInMinutes", "type": "number" }, "GrowthFactor": { + "markdownDescription": "The percentage of targets to receive a deployed configuration during each interval\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GrowthFactor", "type": "number" }, "GrowthType": { + "markdownDescription": "The algorithm used to define how percentage grows over time\\. AWS AppConfig supports the following growth types: \n **Linear**: For this type, AWS AppConfig processes the deployment by dividing the total number of targets by the value specified for `Step percentage`\\. For example, a linear deployment that uses a `Step percentage` of 10 deploys the configuration to 10 percent of the hosts\\. After those deployments are complete, the system deploys the configuration to the next 10 percent\\. This continues until 100% of the targets have successfully received the configuration\\. \n **Exponential**: For this type, AWS AppConfig processes the deployment exponentially using the following formula: `G*(2^N)`\\. In this formula, `G` is the growth factor specified by the user and `N` is the number of steps until the configuration is deployed to all targets\\. For example, if you specify a growth factor of 2, then the system rolls out the configuration as follows: \n `2*(2^0)` \n `2*(2^1)` \n `2*(2^2)` \nExpressed numerically, the deployment rolls out as follows: 2% of the targets, 4% of the targets, 8% of the targets, and continues until the configuration has been deployed to all targets\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `EXPONENTIAL | LINEAR` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GrowthType", "type": "string" }, "Name": { + "markdownDescription": "A name for the deployment strategy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "ReplicateTo": { + "markdownDescription": "Save the deployment strategy to a Systems Manager \\(SSM\\) document\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `NONE | SSM_DOCUMENT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplicateTo", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/AWS::AppConfig::DeploymentStrategy.Tags" }, + "markdownDescription": "Assigns metadata to an AWS AppConfig resource\\. Tags help organize and categorize your AWS AppConfig resources\\. Each tag consists of a key and an optional value, both of which you define\\. You can specify a maximum of 50 tags for a resource\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deploymentstrategy-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deploymentstrategy-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -7088,9 +8615,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The key\\-value string map\\. The valid character set is `[a-zA-Z+-=._:/]`\\. The tag key can be up to 128 characters and must not start with `aws:`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The tag value can be up to 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -7132,24 +8663,34 @@ "additionalProperties": false, "properties": { "ApplicationId": { + "markdownDescription": "The application ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", "type": "string" }, "Description": { + "markdownDescription": "A description of the environment\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Monitors": { "items": { "$ref": "#/definitions/AWS::AppConfig::Environment.Monitors" }, + "markdownDescription": "Amazon CloudWatch alarms to monitor during the deployment process\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-environment-monitors.html) of [Monitors](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-environment-monitors.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Monitors", "type": "array" }, "Name": { + "markdownDescription": "A name for the environment\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/AWS::AppConfig::Environment.Tags" }, + "markdownDescription": "Metadata to assign to the environment\\. Tags help organize and categorize your AWS AppConfig resources\\. Each tag consists of a key and an optional value, both of which you define\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-environment-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-environment-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -7184,9 +8725,13 @@ "additionalProperties": false, "properties": { "AlarmArn": { + "markdownDescription": "Amazon Resource Name \\(ARN\\) of the Amazon CloudWatch alarm\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmArn", "type": "string" }, "AlarmRoleArn": { + "markdownDescription": "ARN of an AWS Identity and Access Management \\(IAM\\) role for AWS AppConfig to monitor `AlarmArn`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^((https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/arn.html):(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/iam.html)::\\d{12}:role[/].*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmRoleArn", "type": "string" } }, @@ -7196,9 +8741,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The key\\-value string map\\. The valid character set is `[a-zA-Z+-=._:/]`\\. The tag key can be up to 128 characters and must not start with `aws:`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The tag value can be up to 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -7240,21 +8789,33 @@ "additionalProperties": false, "properties": { "ApplicationId": { + "markdownDescription": "The application ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", "type": "string" }, "ConfigurationProfileId": { + "markdownDescription": "The configuration profile ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfigurationProfileId", "type": "string" }, "Content": { + "markdownDescription": "The content of the configuration or the configuration data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Content", "type": "string" }, "ContentType": { + "markdownDescription": "A standard MIME type describing the format of the configuration content\\. For more information, see [Content\\-Type](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContentType", "type": "string" }, "Description": { + "markdownDescription": "A description of the configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "LatestVersionNumber": { + "markdownDescription": "An optional locking token used to prevent race conditions from overwriting configuration updates when creating a new version\\. To ensure your data is not overwritten when creating multiple hosted configuration versions in rapid succession, specify the version number of the latest hosted configuration version\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LatestVersionNumber", "type": "number" } }, @@ -7419,21 +8980,31 @@ "additionalProperties": false, "properties": { "ConnectionMode": { + "markdownDescription": "Indicates the connection mode and if it is public or private\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Private | Public` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionMode", "type": "string" }, "ConnectorLabel": { "type": "string" }, "ConnectorProfileConfig": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorProfileConfig" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorProfileConfig", + "markdownDescription": "Defines the connector\\-specific configuration and credentials\\. \n*Required*: No \n*Type*: [ConnectorProfileConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorProfileConfig" }, "ConnectorProfileName": { + "markdownDescription": "The name of the connector profile\\. The name is unique for each `ConnectorProfile` in the AWS account\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `[\\w/!@#+=.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectorProfileName", "type": "string" }, "ConnectorType": { + "markdownDescription": "The type of connector, such as Salesforce, Amplitude, and so on\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Amplitude | CustomConnector | CustomerProfiles | Datadog | Dynatrace | EventBridge | Googleanalytics | Honeycode | Infornexus | LookoutMetrics | Marketo | Redshift | S3 | Salesforce | SAPOData | Servicenow | Singular | Slack | Snowflake | Trendmicro | Upsolver | Veeva | Zendesk` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectorType", "type": "string" }, "KMSArn": { + "markdownDescription": "The ARN \\(Amazon Resource Name\\) of the Key Management Service \\(KMS\\) key you provide for encryption\\. This is required if you do not want to use the Amazon AppFlow\\-managed KMS key\\. If you don't provide anything here, Amazon AppFlow uses the Amazon AppFlow\\-managed KMS key\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:aws:kms:.*:[0-9]+:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KMSArn", "type": "string" } }, @@ -7469,9 +9040,13 @@ "additionalProperties": false, "properties": { "ApiKey": { + "markdownDescription": "A unique alphanumeric identifier used to authenticate a user, developer, or calling program to your API\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKey", "type": "string" }, "SecretKey": { + "markdownDescription": "The Secret Access Key portion of the credentials\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretKey", "type": "string" } }, @@ -7516,9 +9091,13 @@ "additionalProperties": false, "properties": { "AuthCode": { + "markdownDescription": "The code provided by the connector when it has been authenticated via the connected app\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthCode", "type": "string" }, "RedirectUri": { + "markdownDescription": "The URL to which the authentication server redirects the browser after authorization has been granted\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedirectUri", "type": "string" } }, @@ -7528,10 +9107,14 @@ "additionalProperties": false, "properties": { "ConnectorProfileCredentials": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorProfileCredentials" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required by each connector\\. \n*Required*: Yes \n*Type*: [ConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorProfileCredentials" }, "ConnectorProfileProperties": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorProfileProperties" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties of the profile configuration\\. \n*Required*: No \n*Type*: [ConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorProfileProperties" } }, "type": "object" @@ -7540,55 +9123,90 @@ "additionalProperties": false, "properties": { "Amplitude": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.AmplitudeConnectorProfileCredentials" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.AmplitudeConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Amplitude\\. \n*Required*: No \n*Type*: [AmplitudeConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-amplitudeconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Amplitude" }, "CustomConnector": { "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.CustomConnectorProfileCredentials" }, "Datadog": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.DatadogConnectorProfileCredentials" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.DatadogConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Datadog\\. \n*Required*: No \n*Type*: [DatadogConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-datadogconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Datadog" }, "Dynatrace": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.DynatraceConnectorProfileCredentials" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.DynatraceConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Dynatrace\\. \n*Required*: No \n*Type*: [DynatraceConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-dynatraceconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dynatrace" }, "GoogleAnalytics": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.GoogleAnalyticsConnectorProfileCredentials" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.GoogleAnalyticsConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Google Analytics\\. \n*Required*: No \n*Type*: [GoogleAnalyticsConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GoogleAnalytics" }, "InforNexus": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.InforNexusConnectorProfileCredentials" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.InforNexusConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Infor Nexus\\. \n*Required*: No \n*Type*: [InforNexusConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-infornexusconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InforNexus" }, "Marketo": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.MarketoConnectorProfileCredentials" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.MarketoConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Marketo\\. \n*Required*: No \n*Type*: [MarketoConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-marketoconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Marketo" + }, + "Pardot": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.PardotConnectorProfileCredentials" }, "Redshift": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileCredentials" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Amazon Redshift\\. \n*Required*: No \n*Type*: [RedshiftConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Redshift" }, "SAPOData": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileCredentials" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileCredentials", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [SAPODataConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SAPOData" }, "Salesforce": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileCredentials" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Salesforce\\. \n*Required*: No \n*Type*: [SalesforceConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Salesforce" }, "ServiceNow": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ServiceNowConnectorProfileCredentials" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ServiceNowConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using ServiceNow\\. \n*Required*: No \n*Type*: [ServiceNowConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-servicenowconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceNow" }, "Singular": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SingularConnectorProfileCredentials" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SingularConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Singular\\. \n*Required*: No \n*Type*: [SingularConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-singularconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Singular" }, "Slack": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SlackConnectorProfileCredentials" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SlackConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Slack\\. \n*Required*: No \n*Type*: [SlackConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-slackconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Slack" }, "Snowflake": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SnowflakeConnectorProfileCredentials" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SnowflakeConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Snowflake\\. \n*Required*: No \n*Type*: [SnowflakeConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Snowflake" }, "Trendmicro": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.TrendmicroConnectorProfileCredentials" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.TrendmicroConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Trend Micro\\. \n*Required*: No \n*Type*: [TrendmicroConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-trendmicroconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Trendmicro" }, "Veeva": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.VeevaConnectorProfileCredentials" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.VeevaConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Veeva\\. \n*Required*: No \n*Type*: [VeevaConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-veevaconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Veeva" }, "Zendesk": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ZendeskConnectorProfileCredentials" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ZendeskConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Zendesk\\. \n*Required*: No \n*Type*: [ZendeskConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-zendeskconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Zendesk" } }, "type": "object" @@ -7600,40 +9218,67 @@ "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.CustomConnectorProfileProperties" }, "Datadog": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.DatadogConnectorProfileProperties" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.DatadogConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties required by Datadog\\. \n*Required*: No \n*Type*: [DatadogConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-datadogconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Datadog" }, "Dynatrace": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.DynatraceConnectorProfileProperties" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.DynatraceConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties required by Dynatrace\\. \n*Required*: No \n*Type*: [DynatraceConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-dynatraceconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dynatrace" }, "InforNexus": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.InforNexusConnectorProfileProperties" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.InforNexusConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties required by Infor Nexus\\. \n*Required*: No \n*Type*: [InforNexusConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-infornexusconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InforNexus" }, "Marketo": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.MarketoConnectorProfileProperties" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.MarketoConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties required by Marketo\\. \n*Required*: No \n*Type*: [MarketoConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-marketoconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Marketo" + }, + "Pardot": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.PardotConnectorProfileProperties" }, "Redshift": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileProperties" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties required by Amazon Redshift\\. \n*Required*: No \n*Type*: [RedshiftConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Redshift" }, "SAPOData": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileProperties" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [SAPODataConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SAPOData" }, "Salesforce": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileProperties" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties required by Salesforce\\. \n*Required*: No \n*Type*: [SalesforceConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Salesforce" }, "ServiceNow": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ServiceNowConnectorProfileProperties" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ServiceNowConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties required by serviceNow\\. \n*Required*: No \n*Type*: [ServiceNowConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-servicenowconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceNow" }, "Slack": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SlackConnectorProfileProperties" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SlackConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties required by Slack\\. \n*Required*: No \n*Type*: [SlackConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-slackconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Slack" }, "Snowflake": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SnowflakeConnectorProfileProperties" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SnowflakeConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties required by Snowflake\\. \n*Required*: No \n*Type*: [SnowflakeConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Snowflake" }, "Veeva": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.VeevaConnectorProfileProperties" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.VeevaConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties required by Veeva\\. \n*Required*: No \n*Type*: [VeevaConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-veevaconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Veeva" }, "Zendesk": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ZendeskConnectorProfileProperties" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ZendeskConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties required by Zendesk\\. \n*Required*: No \n*Type*: [ZendeskConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-zendeskconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Zendesk" } }, "type": "object" @@ -7705,9 +9350,13 @@ "additionalProperties": false, "properties": { "ApiKey": { + "markdownDescription": "A unique alphanumeric identifier used to authenticate a user, developer, or calling program to your API\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKey", "type": "string" }, "ApplicationKey": { + "markdownDescription": "Application keys, in conjunction with your API key, give you full access to Datadog\u2019s programmatic API\\. Application keys are associated with the user account that created them\\. The application key is used to log all requests made to the API\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationKey", "type": "string" } }, @@ -7721,6 +9370,8 @@ "additionalProperties": false, "properties": { "InstanceUrl": { + "markdownDescription": "The location of the Datadog resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceUrl", "type": "string" } }, @@ -7733,6 +9384,8 @@ "additionalProperties": false, "properties": { "ApiToken": { + "markdownDescription": "The API tokens used by Dynatrace API to authenticate various API calls\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiToken", "type": "string" } }, @@ -7745,6 +9398,8 @@ "additionalProperties": false, "properties": { "InstanceUrl": { + "markdownDescription": "The location of the Dynatrace resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceUrl", "type": "string" } }, @@ -7757,18 +9412,28 @@ "additionalProperties": false, "properties": { "AccessToken": { + "markdownDescription": "The credentials used to access protected Google Analytics resources\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessToken", "type": "string" }, "ClientId": { + "markdownDescription": "The identifier for the desired client\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientId", "type": "string" }, "ClientSecret": { + "markdownDescription": "The client secret used by the OAuth client to authenticate to the authorization server\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientSecret", "type": "string" }, "ConnectorOAuthRequest": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest", + "markdownDescription": "Used by select connectors for which the OAuth workflow is supported, such as Salesforce, Google Analytics, Marketo, Zendesk, and Slack\\. \n*Required*: No \n*Type*: [ConnectorOAuthRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectoroauthrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorOAuthRequest" }, "RefreshToken": { + "markdownDescription": "The credentials used to acquire new access tokens\\. This is required only for OAuth2 access tokens, and is not required for OAuth1 access tokens\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RefreshToken", "type": "string" } }, @@ -7782,15 +9447,23 @@ "additionalProperties": false, "properties": { "AccessKeyId": { + "markdownDescription": "The Access Key portion of the credentials\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessKeyId", "type": "string" }, "Datakey": { + "markdownDescription": "The encryption keys used to encrypt data\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Datakey", "type": "string" }, "SecretAccessKey": { + "markdownDescription": "The secret key used to sign requests\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretAccessKey", "type": "string" }, "UserId": { + "markdownDescription": "The identifier for the user\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserId", "type": "string" } }, @@ -7806,6 +9479,8 @@ "additionalProperties": false, "properties": { "InstanceUrl": { + "markdownDescription": "The location of the Infor Nexus resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceUrl", "type": "string" } }, @@ -7818,16 +9493,24 @@ "additionalProperties": false, "properties": { "AccessToken": { + "markdownDescription": "The credentials used to access protected Marketo resources\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessToken", "type": "string" }, "ClientId": { + "markdownDescription": "The identifier for the desired client\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientId", "type": "string" }, "ClientSecret": { + "markdownDescription": "The client secret used by the OAuth client to authenticate to the authorization server\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientSecret", "type": "string" }, "ConnectorOAuthRequest": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest", + "markdownDescription": "Used by select connectors for which the OAuth workflow is supported, such as Salesforce, Google Analytics, Marketo, Zendesk, and Slack\\. \n*Required*: No \n*Type*: [ConnectorOAuthRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectoroauthrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorOAuthRequest" } }, "required": [ @@ -7840,6 +9523,8 @@ "additionalProperties": false, "properties": { "InstanceUrl": { + "markdownDescription": "The location of the Marketo resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceUrl", "type": "string" } }, @@ -7915,27 +9600,73 @@ "additionalProperties": false, "properties": { "AuthCodeUrl": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthCodeUrl", "type": "string" }, "OAuthScopes": { "items": { "type": "string" }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OAuthScopes", "type": "array" }, "TokenUrl": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenUrl", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.PardotConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "AccessToken": { + "type": "string" + }, + "ClientCredentialsArn": { + "type": "string" + }, + "ConnectorOAuthRequest": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest" + }, + "RefreshToken": { "type": "string" } }, "type": "object" }, + "AWS::AppFlow::ConnectorProfile.PardotConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "BusinessUnitId": { + "type": "string" + }, + "InstanceUrl": { + "type": "string" + }, + "IsSandboxEnvironment": { + "type": "boolean" + } + }, + "required": [ + "BusinessUnitId" + ], + "type": "object" + }, "AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileCredentials": { "additionalProperties": false, "properties": { "Password": { + "markdownDescription": "The password that corresponds to the user name\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", "type": "string" }, "Username": { + "markdownDescription": "The name of the user\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", "type": "string" } }, @@ -7945,9 +9676,13 @@ "additionalProperties": false, "properties": { "BucketName": { + "markdownDescription": "A name for the associated Amazon S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", "type": "string" }, "BucketPrefix": { + "markdownDescription": "The object key for the destination bucket in which Amazon AppFlow places the files\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketPrefix", "type": "string" }, "ClusterIdentifier": { @@ -7960,12 +9695,16 @@ "type": "string" }, "DatabaseUrl": { + "markdownDescription": "The JDBC URL of the Amazon Redshift cluster\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseUrl", "type": "string" }, "IsRedshiftServerless": { "type": "boolean" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `arn:aws:iam:.*:[0-9]+:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "WorkgroupName": { @@ -7982,10 +9721,14 @@ "additionalProperties": false, "properties": { "BasicAuthCredentials": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.BasicAuthCredentials" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.BasicAuthCredentials", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BasicAuthCredentials" }, "OAuthCredentials": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.OAuthCredentials" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.OAuthCredentials", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OAuthCredentials" } }, "type": "object" @@ -7994,24 +9737,38 @@ "additionalProperties": false, "properties": { "ApplicationHostUrl": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationHostUrl", "type": "string" }, "ApplicationServicePath": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationServicePath", "type": "string" }, "ClientNumber": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientNumber", "type": "string" }, "LogonLanguage": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogonLanguage", "type": "string" }, "OAuthProperties": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.OAuthProperties" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.OAuthProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [OAuthProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauthproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OAuthProperties" }, "PortNumber": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortNumber", "type": "number" }, "PrivateLinkServiceName": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateLinkServiceName", "type": "string" } }, @@ -8021,15 +9778,23 @@ "additionalProperties": false, "properties": { "AccessToken": { + "markdownDescription": "The credentials used to access protected Salesforce resources\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessToken", "type": "string" }, "ClientCredentialsArn": { + "markdownDescription": "The secret manager ARN, which contains the client ID and client secret of the connected app\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:aws:secretsmanager:.*:[0-9]+:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientCredentialsArn", "type": "string" }, "ConnectorOAuthRequest": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest", + "markdownDescription": "Used by select connectors for which the OAuth workflow is supported, such as Salesforce, Google Analytics, Marketo, Zendesk, and Slack\\. \n*Required*: No \n*Type*: [ConnectorOAuthRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectoroauthrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorOAuthRequest" }, "RefreshToken": { + "markdownDescription": "The credentials used to acquire new access tokens\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RefreshToken", "type": "string" } }, @@ -8039,9 +9804,13 @@ "additionalProperties": false, "properties": { "InstanceUrl": { + "markdownDescription": "The location of the Salesforce resource\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceUrl", "type": "string" }, "isSandboxEnvironment": { + "markdownDescription": "Indicates whether the connector profile applies to a sandbox or production environment\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "isSandboxEnvironment", "type": "boolean" } }, @@ -8051,9 +9820,13 @@ "additionalProperties": false, "properties": { "Password": { + "markdownDescription": "The password that corresponds to the user name\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", "type": "string" }, "Username": { + "markdownDescription": "The name of the user\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", "type": "string" } }, @@ -8067,6 +9840,8 @@ "additionalProperties": false, "properties": { "InstanceUrl": { + "markdownDescription": "The location of the ServiceNow resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceUrl", "type": "string" } }, @@ -8079,6 +9854,8 @@ "additionalProperties": false, "properties": { "ApiKey": { + "markdownDescription": "A unique alphanumeric identifier used to authenticate a user, developer, or calling program to your API\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKey", "type": "string" } }, @@ -8091,16 +9868,24 @@ "additionalProperties": false, "properties": { "AccessToken": { + "markdownDescription": "The credentials used to access protected Slack resources\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessToken", "type": "string" }, "ClientId": { + "markdownDescription": "The identifier for the client\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientId", "type": "string" }, "ClientSecret": { + "markdownDescription": "The client secret used by the OAuth client to authenticate to the authorization server\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientSecret", "type": "string" }, "ConnectorOAuthRequest": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest", + "markdownDescription": "Used by select connectors for which the OAuth workflow is supported, such as Salesforce, Google Analytics, Marketo, Zendesk, and Slack\\. \n*Required*: No \n*Type*: [ConnectorOAuthRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectoroauthrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorOAuthRequest" } }, "required": [ @@ -8113,6 +9898,8 @@ "additionalProperties": false, "properties": { "InstanceUrl": { + "markdownDescription": "The location of the Slack resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceUrl", "type": "string" } }, @@ -8125,9 +9912,13 @@ "additionalProperties": false, "properties": { "Password": { + "markdownDescription": "The password that corresponds to the user name\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", "type": "string" }, "Username": { + "markdownDescription": "The name of the user\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", "type": "string" } }, @@ -8141,24 +9932,38 @@ "additionalProperties": false, "properties": { "AccountName": { + "markdownDescription": "The name of the account\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountName", "type": "string" }, "BucketName": { + "markdownDescription": "The name of the Amazon S3 bucket associated with Snowflake\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", "type": "string" }, "BucketPrefix": { + "markdownDescription": "The bucket path that refers to the Amazon S3 bucket associated with Snowflake\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketPrefix", "type": "string" }, "PrivateLinkServiceName": { + "markdownDescription": "The Snowflake Private Link service name to be used for private data transfers\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `^$|com.amazonaws.vpce.[\\w/!:@#.\\-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateLinkServiceName", "type": "string" }, "Region": { + "markdownDescription": "The AWS Region of the Snowflake account\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", "type": "string" }, "Stage": { + "markdownDescription": "The name of the Amazon S3 stage that was created while setting up an Amazon S3 stage in the Snowflake account\\. This is written in the following format: < Database>< Schema>\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Stage", "type": "string" }, "Warehouse": { + "markdownDescription": "The name of the Snowflake warehouse\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[\\s\\w/!@#+=.-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Warehouse", "type": "string" } }, @@ -8173,6 +9978,8 @@ "additionalProperties": false, "properties": { "ApiSecretKey": { + "markdownDescription": "The Secret Access Key portion of the credentials\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiSecretKey", "type": "string" } }, @@ -8185,9 +9992,13 @@ "additionalProperties": false, "properties": { "Password": { + "markdownDescription": "The password that corresponds to the user name\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", "type": "string" }, "Username": { + "markdownDescription": "The name of the user\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", "type": "string" } }, @@ -8201,6 +10012,8 @@ "additionalProperties": false, "properties": { "InstanceUrl": { + "markdownDescription": "The location of the Veeva resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceUrl", "type": "string" } }, @@ -8213,16 +10026,24 @@ "additionalProperties": false, "properties": { "AccessToken": { + "markdownDescription": "The credentials used to access protected Zendesk resources\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessToken", "type": "string" }, "ClientId": { + "markdownDescription": "The identifier for the desired client\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientId", "type": "string" }, "ClientSecret": { + "markdownDescription": "The client secret used by the OAuth client to authenticate to the authorization server\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientSecret", "type": "string" }, "ConnectorOAuthRequest": { - "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest" + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest", + "markdownDescription": "Used by select connectors for which the OAuth workflow is supported, such as Salesforce, Google Analytics, Marketo, Zendesk, and Slack\\. \n*Required*: No \n*Type*: [ConnectorOAuthRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectoroauthrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorOAuthRequest" } }, "required": [ @@ -8235,6 +10056,8 @@ "additionalProperties": false, "properties": { "InstanceUrl": { + "markdownDescription": "The location of the Zendesk resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceUrl", "type": "string" } }, @@ -8279,40 +10102,56 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A user\\-entered description of the flow\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `[\\w!@#\\-.?,\\s]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DestinationFlowConfigList": { "items": { "$ref": "#/definitions/AWS::AppFlow::Flow.DestinationFlowConfig" }, + "markdownDescription": "The configuration that controls how Amazon AppFlow places data in the destination connector\\. \n*Required*: Yes \n*Type*: List of [DestinationFlowConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationflowconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationFlowConfigList", "type": "array" }, "FlowName": { + "markdownDescription": "The specified name of the flow\\. Spaces are not allowed\\. Use underscores \\(\\_\\) or hyphens \\(\\-\\) only\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z0-9][\\w!@#.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FlowName", "type": "string" }, "KMSArn": { + "markdownDescription": "The ARN \\(Amazon Resource Name\\) of the Key Management Service \\(KMS\\) key you provide for encryption\\. This is required if you do not want to use the Amazon AppFlow\\-managed KMS key\\. If you don't provide anything here, Amazon AppFlow uses the Amazon AppFlow\\-managed KMS key\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:aws:kms:.*:[0-9]+:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KMSArn", "type": "string" }, "MetadataCatalogConfig": { "$ref": "#/definitions/AWS::AppFlow::Flow.MetadataCatalogConfig" }, "SourceFlowConfig": { - "$ref": "#/definitions/AWS::AppFlow::Flow.SourceFlowConfig" + "$ref": "#/definitions/AWS::AppFlow::Flow.SourceFlowConfig", + "markdownDescription": "Contains information about the configuration of the source connector used in the flow\\. \n*Required*: Yes \n*Type*: [SourceFlowConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceflowconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceFlowConfig" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags used to organize, track, or control access for your flow\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Tasks": { "items": { "$ref": "#/definitions/AWS::AppFlow::Flow.Task" }, + "markdownDescription": "A list of tasks that Amazon AppFlow performs while transferring the data in the flow run\\. \n*Required*: Yes \n*Type*: List of [Task](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-task.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tasks", "type": "array" }, "TriggerConfig": { - "$ref": "#/definitions/AWS::AppFlow::Flow.TriggerConfig" + "$ref": "#/definitions/AWS::AppFlow::Flow.TriggerConfig", + "markdownDescription": "The trigger settings that determine how and when Amazon AppFlow runs the specified flow\\. \n*Required*: Yes \n*Type*: [TriggerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-triggerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TriggerConfig" } }, "required": [ @@ -8349,6 +10188,8 @@ "additionalProperties": false, "properties": { "AggregationType": { + "markdownDescription": "Specifies whether Amazon AppFlow aggregates the flow records into a single file, or leave them unaggregated\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `None | SingleFile` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AggregationType", "type": "string" }, "TargetFileSize": { @@ -8361,6 +10202,8 @@ "additionalProperties": false, "properties": { "Object": { + "markdownDescription": "The object specified in the Amplitude flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" } }, @@ -8373,51 +10216,84 @@ "additionalProperties": false, "properties": { "Amplitude": { + "markdownDescription": "The operation to be performed on the provided Amplitude source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BETWEEN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Amplitude", "type": "string" }, "CustomConnector": { "type": "string" }, "Datadog": { + "markdownDescription": "The operation to be performed on the provided Datadog source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | DIVISION | EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Datadog", "type": "string" }, "Dynatrace": { + "markdownDescription": "The operation to be performed on the provided Dynatrace source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | DIVISION | EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dynatrace", "type": "string" }, "GoogleAnalytics": { + "markdownDescription": "The operation to be performed on the provided Google Analytics source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BETWEEN | PROJECTION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GoogleAnalytics", "type": "string" }, "InforNexus": { + "markdownDescription": "The operation to be performed on the provided Infor Nexus source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | DIVISION | EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InforNexus", "type": "string" }, "Marketo": { + "markdownDescription": "The operation to be performed on the provided Marketo source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | DIVISION | GREATER_THAN | LESS_THAN | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Marketo", + "type": "string" + }, + "Pardot": { "type": "string" }, "S3": { + "markdownDescription": "The operation to be performed on the provided Amazon S3 source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | DIVISION | EQUAL_TO | GREATER_THAN | GREATER_THAN_OR_EQUAL_TO | LESS_THAN | LESS_THAN_OR_EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | NOT_EQUAL_TO | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3", "type": "string" }, "SAPOData": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SAPOData", "type": "string" }, "Salesforce": { + "markdownDescription": "The operation to be performed on the provided Salesforce source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | CONTAINS | DIVISION | EQUAL_TO | GREATER_THAN | GREATER_THAN_OR_EQUAL_TO | LESS_THAN | LESS_THAN_OR_EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | NOT_EQUAL_TO | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Salesforce", "type": "string" }, "ServiceNow": { + "markdownDescription": "The operation to be performed on the provided ServiceNow source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | CONTAINS | DIVISION | EQUAL_TO | GREATER_THAN | GREATER_THAN_OR_EQUAL_TO | LESS_THAN | LESS_THAN_OR_EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | NOT_EQUAL_TO | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceNow", "type": "string" }, "Singular": { + "markdownDescription": "The operation to be performed on the provided Singular source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | DIVISION | EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Singular", "type": "string" }, "Slack": { + "markdownDescription": "The operation to be performed on the provided Slack source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | DIVISION | EQUAL_TO | GREATER_THAN | GREATER_THAN_OR_EQUAL_TO | LESS_THAN | LESS_THAN_OR_EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Slack", "type": "string" }, "Trendmicro": { + "markdownDescription": "The operation to be performed on the provided Trend Micro source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | DIVISION | EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Trendmicro", "type": "string" }, "Veeva": { + "markdownDescription": "The operation to be performed on the provided Veeva source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | CONTAINS | DIVISION | EQUAL_TO | GREATER_THAN | GREATER_THAN_OR_EQUAL_TO | LESS_THAN | LESS_THAN_OR_EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | NOT_EQUAL_TO | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Veeva", "type": "string" }, "Zendesk": { + "markdownDescription": "The operation to be performed on the provided Zendesk source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | DIVISION | GREATER_THAN | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Zendesk", "type": "string" } }, @@ -8481,6 +10357,8 @@ "additionalProperties": false, "properties": { "Object": { + "markdownDescription": "The object specified in the Datadog flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" } }, @@ -8496,34 +10374,54 @@ "$ref": "#/definitions/AWS::AppFlow::Flow.CustomConnectorDestinationProperties" }, "EventBridge": { - "$ref": "#/definitions/AWS::AppFlow::Flow.EventBridgeDestinationProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.EventBridgeDestinationProperties", + "markdownDescription": "The properties required to query Amazon EventBridge\\. \n*Required*: No \n*Type*: [EventBridgeDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-eventbridgedestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventBridge" }, "LookoutMetrics": { - "$ref": "#/definitions/AWS::AppFlow::Flow.LookoutMetricsDestinationProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.LookoutMetricsDestinationProperties", + "markdownDescription": "The properties required to query Amazon Lookout for Metrics\\. \n*Required*: No \n*Type*: [LookoutMetricsDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-lookoutmetricsdestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LookoutMetrics" }, "Marketo": { - "$ref": "#/definitions/AWS::AppFlow::Flow.MarketoDestinationProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.MarketoDestinationProperties", + "markdownDescription": "The properties required to query Marketo\\. \n*Required*: No \n*Type*: [MarketoDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-marketodestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Marketo" }, "Redshift": { - "$ref": "#/definitions/AWS::AppFlow::Flow.RedshiftDestinationProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.RedshiftDestinationProperties", + "markdownDescription": "The properties required to query Amazon Redshift\\. \n*Required*: No \n*Type*: [RedshiftDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-redshiftdestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Redshift" }, "S3": { - "$ref": "#/definitions/AWS::AppFlow::Flow.S3DestinationProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.S3DestinationProperties", + "markdownDescription": "The properties required to query Amazon S3\\. \n*Required*: No \n*Type*: [S3DestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3destinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3" }, "SAPOData": { - "$ref": "#/definitions/AWS::AppFlow::Flow.SAPODataDestinationProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.SAPODataDestinationProperties", + "markdownDescription": "The properties required to query SAPOData\\. \n*Required*: No \n*Type*: [SAPODataDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodatadestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SAPOData" }, "Salesforce": { - "$ref": "#/definitions/AWS::AppFlow::Flow.SalesforceDestinationProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.SalesforceDestinationProperties", + "markdownDescription": "The properties required to query Salesforce\\. \n*Required*: No \n*Type*: [SalesforceDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcedestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Salesforce" }, "Snowflake": { - "$ref": "#/definitions/AWS::AppFlow::Flow.SnowflakeDestinationProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.SnowflakeDestinationProperties", + "markdownDescription": "The properties required to query Snowflake\\. \n*Required*: No \n*Type*: [SnowflakeDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-snowflakedestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Snowflake" }, "Upsolver": { - "$ref": "#/definitions/AWS::AppFlow::Flow.UpsolverDestinationProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.UpsolverDestinationProperties", + "markdownDescription": "The properties required to query Upsolver\\. \n*Required*: No \n*Type*: [UpsolverDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-upsolverdestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Upsolver" }, "Zendesk": { - "$ref": "#/definitions/AWS::AppFlow::Flow.ZendeskDestinationProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.ZendeskDestinationProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ZendeskDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-zendeskdestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Zendesk" } }, "type": "object" @@ -8535,13 +10433,19 @@ "type": "string" }, "ConnectorProfileName": { + "markdownDescription": "The name of the connector profile\\. This name must be unique for each connector profile in the AWS account\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `[\\w/!@#+=.-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorProfileName", "type": "string" }, "ConnectorType": { + "markdownDescription": "The type of destination connector, such as Sales force, Amazon S3, and so on\\. \n*Allowed Values*: `EventBridge | Redshift | S3 | Salesforce | Snowflake` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorType", "type": "string" }, "DestinationConnectorProperties": { - "$ref": "#/definitions/AWS::AppFlow::Flow.DestinationConnectorProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.DestinationConnectorProperties", + "markdownDescription": "This stores the information that is required to query a particular connector\\. \n*Required*: Yes \n*Type*: [DestinationConnectorProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationConnectorProperties" } }, "required": [ @@ -8554,6 +10458,8 @@ "additionalProperties": false, "properties": { "Object": { + "markdownDescription": "The object specified in the Dynatrace flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" } }, @@ -8566,12 +10472,18 @@ "additionalProperties": false, "properties": { "BucketName": { + "markdownDescription": "Specifies the name of the Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", "type": "string" }, "BucketPrefix": { + "markdownDescription": "Specifies the Amazon S3 bucket prefix\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketPrefix", "type": "string" }, "FailOnFirstError": { + "markdownDescription": "Specifies if the flow should fail after the first instance of a failure when attempting to place data in the destination\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailOnFirstError", "type": "boolean" } }, @@ -8581,9 +10493,13 @@ "additionalProperties": false, "properties": { "ErrorHandlingConfig": { - "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig" + "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig", + "markdownDescription": "The object specified in the Amplitude flow source\\. \n*Required*: No \n*Type*: [ErrorHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html) \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorHandlingConfig" }, "Object": { + "markdownDescription": "The object specified in the Amazon EventBridge flow destination\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" } }, @@ -8616,6 +10532,8 @@ "additionalProperties": false, "properties": { "Object": { + "markdownDescription": "The object specified in the Google Analytics flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" } }, @@ -8628,6 +10546,8 @@ "additionalProperties": false, "properties": { "DatetimeTypeFieldName": { + "markdownDescription": "A field that specifies the date time or timestamp field as the criteria to use when importing incremental records from the source\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatetimeTypeFieldName", "type": "string" } }, @@ -8637,6 +10557,8 @@ "additionalProperties": false, "properties": { "Object": { + "markdownDescription": "The object specified in the Infor Nexus flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" } }, @@ -8649,6 +10571,8 @@ "additionalProperties": false, "properties": { "Object": { + "markdownDescription": "The object specified in the Amazon Lookout for Metrics flow destination\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" } }, @@ -8658,9 +10582,13 @@ "additionalProperties": false, "properties": { "ErrorHandlingConfig": { - "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig" + "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ErrorHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorHandlingConfig" }, "Object": { + "markdownDescription": "The object specified in the Marketo flow destination\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" } }, @@ -8673,6 +10601,8 @@ "additionalProperties": false, "properties": { "Object": { + "markdownDescription": "The object specified in the Marketo flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" } }, @@ -8690,6 +10620,18 @@ }, "type": "object" }, + "AWS::AppFlow::Flow.PardotSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, "AWS::AppFlow::Flow.PrefixConfig": { "additionalProperties": false, "properties": { @@ -8700,9 +10642,13 @@ "type": "array" }, "PrefixFormat": { + "markdownDescription": "Determines the level of granularity that's included in the prefix\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DAY | HOUR | MINUTE | MONTH | YEAR` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrefixFormat", "type": "string" }, "PrefixType": { + "markdownDescription": "Determines the format of the prefix, and whether it applies to the file name, file path, or both\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `FILENAME | PATH | PATH_AND_FILENAME` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrefixType", "type": "string" } }, @@ -8712,15 +10658,23 @@ "additionalProperties": false, "properties": { "BucketPrefix": { + "markdownDescription": "The object key for the bucket in which Amazon AppFlow places the destination files\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketPrefix", "type": "string" }, "ErrorHandlingConfig": { - "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig" + "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig", + "markdownDescription": "The settings that determine how Amazon AppFlow handles an error when placing data in the Amazon Redshift destination\\. For example, this setting would determine if the flow should fail after one insertion error, or continue and attempt to insert every record regardless of the initial failure\\. `ErrorHandlingConfig` is a part of the destination connector details\\. \n*Required*: No \n*Type*: [ErrorHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorHandlingConfig" }, "IntermediateBucketName": { + "markdownDescription": "The intermediate bucket that Amazon AppFlow uses when moving data into Amazon Redshift\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntermediateBucketName", "type": "string" }, "Object": { + "markdownDescription": "The object specified in the Amazon Redshift flow destination\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" } }, @@ -8734,13 +10688,19 @@ "additionalProperties": false, "properties": { "BucketName": { + "markdownDescription": "The Amazon S3 bucket name in which Amazon AppFlow places the transferred data\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", "type": "string" }, "BucketPrefix": { + "markdownDescription": "The object key for the destination bucket in which Amazon AppFlow places the files\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketPrefix", "type": "string" }, "S3OutputFormatConfig": { - "$ref": "#/definitions/AWS::AppFlow::Flow.S3OutputFormatConfig" + "$ref": "#/definitions/AWS::AppFlow::Flow.S3OutputFormatConfig", + "markdownDescription": "The configuration that determines how Amazon AppFlow should format the flow output data when Amazon S3 is used as the destination\\. \n*Required*: No \n*Type*: [S3OutputFormatConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3outputformatconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3OutputFormatConfig" } }, "required": [ @@ -8752,6 +10712,8 @@ "additionalProperties": false, "properties": { "S3InputFileType": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3InputFileType", "type": "string" } }, @@ -8761,13 +10723,19 @@ "additionalProperties": false, "properties": { "AggregationConfig": { - "$ref": "#/definitions/AWS::AppFlow::Flow.AggregationConfig" + "$ref": "#/definitions/AWS::AppFlow::Flow.AggregationConfig", + "markdownDescription": "The aggregation settings that you can use to customize the output format of your flow data\\. \n*Required*: No \n*Type*: [AggregationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-aggregationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AggregationConfig" }, "FileType": { + "markdownDescription": "Indicates the file type that Amazon AppFlow places in the Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CSV | JSON | PARQUET` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileType", "type": "string" }, "PrefixConfig": { - "$ref": "#/definitions/AWS::AppFlow::Flow.PrefixConfig" + "$ref": "#/definitions/AWS::AppFlow::Flow.PrefixConfig", + "markdownDescription": "Determines the prefix that Amazon AppFlow applies to the folder name in the Amazon S3 bucket\\. You can name folders according to the flow frequency and date\\. \n*Required*: No \n*Type*: [PrefixConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-prefixconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrefixConfig" }, "PreserveSourceDataTyping": { "type": "boolean" @@ -8779,13 +10747,19 @@ "additionalProperties": false, "properties": { "BucketName": { + "markdownDescription": "The Amazon S3 bucket name where the source files are stored\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", "type": "string" }, "BucketPrefix": { + "markdownDescription": "The object key for the Amazon S3 bucket in which the source files are stored\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketPrefix", "type": "string" }, "S3InputFormatConfig": { - "$ref": "#/definitions/AWS::AppFlow::Flow.S3InputFormatConfig" + "$ref": "#/definitions/AWS::AppFlow::Flow.S3InputFormatConfig", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [S3InputFormatConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3inputformatconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3InputFormatConfig" } }, "required": [ @@ -8798,21 +10772,31 @@ "additionalProperties": false, "properties": { "ErrorHandlingConfig": { - "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig" + "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ErrorHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorHandlingConfig" }, "IdFieldNames": { "items": { "type": "string" }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdFieldNames", "type": "array" }, "ObjectPath": { + "markdownDescription": "The object path specified in the SAPOData flow destination\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectPath", "type": "string" }, "SuccessResponseHandlingConfig": { - "$ref": "#/definitions/AWS::AppFlow::Flow.SuccessResponseHandlingConfig" + "$ref": "#/definitions/AWS::AppFlow::Flow.SuccessResponseHandlingConfig", + "markdownDescription": "Determines how Amazon AppFlow handles the success response that it gets from the connector after placing data\\. \nFor example, this setting would determine where to write the response from a destination connector upon a successful insert operation\\. \n*Required*: No \n*Type*: [SuccessResponseHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-successresponsehandlingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuccessResponseHandlingConfig" }, "WriteOperationType": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WriteOperationType", "type": "string" } }, @@ -8825,6 +10809,8 @@ "additionalProperties": false, "properties": { "ObjectPath": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectPath", "type": "string" } }, @@ -8840,18 +10826,26 @@ "type": "string" }, "ErrorHandlingConfig": { - "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig" + "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig", + "markdownDescription": "The settings that determine how Amazon AppFlow handles an error when placing data in the Salesforce destination\\. For example, this setting would determine if the flow should fail after one insertion error, or continue and attempt to insert every record regardless of the initial failure\\. `ErrorHandlingConfig` is a part of the destination connector details\\. \n*Required*: No \n*Type*: [ErrorHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorHandlingConfig" }, "IdFieldNames": { "items": { "type": "string" }, + "markdownDescription": "The name of the field that Amazon AppFlow uses as an ID when performing a write operation such as update or delete\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdFieldNames", "type": "array" }, "Object": { + "markdownDescription": "The object specified in the Salesforce flow destination\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" }, "WriteOperationType": { + "markdownDescription": "This specifies the type of write operation to be performed in Salesforce\\. When the value is `UPSERT`, then `idFieldNames` is required\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DELETE | INSERT | UPDATE | UPSERT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WriteOperationType", "type": "string" } }, @@ -8867,12 +10861,18 @@ "type": "string" }, "EnableDynamicFieldUpdate": { + "markdownDescription": "The flag that enables dynamic fetching of new \\(recently added\\) fields in the Salesforce objects while running a flow\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableDynamicFieldUpdate", "type": "boolean" }, "IncludeDeletedRecords": { + "markdownDescription": "Indicates whether Amazon AppFlow includes deleted files in the flow run\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeDeletedRecords", "type": "boolean" }, "Object": { + "markdownDescription": "The object specified in the Salesforce flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" } }, @@ -8885,6 +10885,8 @@ "additionalProperties": false, "properties": { "DataPullMode": { + "markdownDescription": "Specifies whether a scheduled flow has an incremental data transfer or a complete data transfer for each flow run\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Complete | Incremental` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataPullMode", "type": "string" }, "FirstExecutionFrom": { @@ -8894,18 +10896,28 @@ "type": "number" }, "ScheduleEndTime": { + "markdownDescription": "Specifies the scheduled end time for a schedule\\-triggered flow\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleEndTime", "type": "number" }, "ScheduleExpression": { + "markdownDescription": "The scheduling expression that determines the rate at which the scheduled flow will run, for example: `rate(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/5minutes.html)`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleExpression", "type": "string" }, "ScheduleOffset": { + "markdownDescription": "Specifies the optional offset that is added to the time interval for a schedule\\-triggered flow\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleOffset", "type": "number" }, "ScheduleStartTime": { + "markdownDescription": "Specifies the scheduled start time for a schedule\\-triggered flow\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleStartTime", "type": "number" }, "TimeZone": { + "markdownDescription": "Specifies the time zone used when referring to the date and time of a scheduled\\-triggered flow, such as `America/New_York`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeZone", "type": "string" } }, @@ -8918,6 +10930,8 @@ "additionalProperties": false, "properties": { "Object": { + "markdownDescription": "The object specified in the ServiceNow flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" } }, @@ -8930,6 +10944,8 @@ "additionalProperties": false, "properties": { "Object": { + "markdownDescription": "The object specified in the Singular flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" } }, @@ -8942,6 +10958,8 @@ "additionalProperties": false, "properties": { "Object": { + "markdownDescription": "The object specified in the Slack flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" } }, @@ -8954,15 +10972,23 @@ "additionalProperties": false, "properties": { "BucketPrefix": { + "markdownDescription": "The object key for the destination bucket in which Amazon AppFlow places the files\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketPrefix", "type": "string" }, "ErrorHandlingConfig": { - "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig" + "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig", + "markdownDescription": "The settings that determine how Amazon AppFlow handles an error when placing data in the Snowflake destination\\. For example, this setting would determine if the flow should fail after one insertion error, or continue and attempt to insert every record regardless of the initial failure\\. `ErrorHandlingConfig` is a part of the destination connector details\\. \n*Required*: No \n*Type*: [ErrorHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorHandlingConfig" }, "IntermediateBucketName": { + "markdownDescription": "The intermediate bucket that Amazon AppFlow uses when moving data into Snowflake\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntermediateBucketName", "type": "string" }, "Object": { + "markdownDescription": "The object specified in the Snowflake flow destination\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" } }, @@ -8976,52 +11002,85 @@ "additionalProperties": false, "properties": { "Amplitude": { - "$ref": "#/definitions/AWS::AppFlow::Flow.AmplitudeSourceProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.AmplitudeSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Amplitude\\. \n*Required*: No \n*Type*: [AmplitudeSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-amplitudesourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Amplitude" }, "CustomConnector": { "$ref": "#/definitions/AWS::AppFlow::Flow.CustomConnectorSourceProperties" }, "Datadog": { - "$ref": "#/definitions/AWS::AppFlow::Flow.DatadogSourceProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.DatadogSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Datadog\\. \n*Required*: No \n*Type*: [DatadogSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-datadogsourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Datadog" }, "Dynatrace": { - "$ref": "#/definitions/AWS::AppFlow::Flow.DynatraceSourceProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.DynatraceSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Dynatrace\\. \n*Required*: No \n*Type*: [DynatraceSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-dynatracesourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dynatrace" }, "GoogleAnalytics": { - "$ref": "#/definitions/AWS::AppFlow::Flow.GoogleAnalyticsSourceProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.GoogleAnalyticsSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Google Analytics\\. \n*Required*: No \n*Type*: [GoogleAnalyticsSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-googleanalyticssourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GoogleAnalytics" }, "InforNexus": { - "$ref": "#/definitions/AWS::AppFlow::Flow.InforNexusSourceProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.InforNexusSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Infor Nexus\\. \n*Required*: No \n*Type*: [InforNexusSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-infornexussourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InforNexus" }, "Marketo": { - "$ref": "#/definitions/AWS::AppFlow::Flow.MarketoSourceProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.MarketoSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Marketo\\. \n*Required*: No \n*Type*: [MarketoSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-marketosourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Marketo" + }, + "Pardot": { + "$ref": "#/definitions/AWS::AppFlow::Flow.PardotSourceProperties" }, "S3": { - "$ref": "#/definitions/AWS::AppFlow::Flow.S3SourceProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.S3SourceProperties", + "markdownDescription": "Specifies the information that is required for querying Amazon S3\\. \n*Required*: No \n*Type*: [S3SourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3sourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3" }, "SAPOData": { - "$ref": "#/definitions/AWS::AppFlow::Flow.SAPODataSourceProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.SAPODataSourceProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [SAPODataSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodatasourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SAPOData" }, "Salesforce": { - "$ref": "#/definitions/AWS::AppFlow::Flow.SalesforceSourceProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.SalesforceSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Salesforce\\. \n*Required*: No \n*Type*: [SalesforceSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcesourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Salesforce" }, "ServiceNow": { - "$ref": "#/definitions/AWS::AppFlow::Flow.ServiceNowSourceProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.ServiceNowSourceProperties", + "markdownDescription": "Specifies the information that is required for querying ServiceNow\\. \n*Required*: No \n*Type*: [ServiceNowSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-servicenowsourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceNow" }, "Singular": { - "$ref": "#/definitions/AWS::AppFlow::Flow.SingularSourceProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.SingularSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Singular\\. \n*Required*: No \n*Type*: [SingularSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-singularsourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Singular" }, "Slack": { - "$ref": "#/definitions/AWS::AppFlow::Flow.SlackSourceProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.SlackSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Slack\\. \n*Required*: No \n*Type*: [SlackSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-slacksourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Slack" }, "Trendmicro": { - "$ref": "#/definitions/AWS::AppFlow::Flow.TrendmicroSourceProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.TrendmicroSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Trend Micro\\. \n*Required*: No \n*Type*: [TrendmicroSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-trendmicrosourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Trendmicro" }, "Veeva": { - "$ref": "#/definitions/AWS::AppFlow::Flow.VeevaSourceProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.VeevaSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Veeva\\. \n*Required*: No \n*Type*: [VeevaSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-veevasourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Veeva" }, "Zendesk": { - "$ref": "#/definitions/AWS::AppFlow::Flow.ZendeskSourceProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.ZendeskSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Zendesk\\. \n*Required*: No \n*Type*: [ZendeskSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-zendesksourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Zendesk" } }, "type": "object" @@ -9033,16 +11092,24 @@ "type": "string" }, "ConnectorProfileName": { + "markdownDescription": "The name of the connector profile\\. This name must be unique for each connector profile in the AWS account\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `[\\w/!@#+=.-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorProfileName", "type": "string" }, "ConnectorType": { + "markdownDescription": "The type of source connector, such as Salesforce, Amplitude, and so on\\. \n*Allowed Values*: S3 \\| Amplitude \\| Datadog \\| Dynatrace \\| Googleanalytics \\| Infornexus \\| Salesforce \\| Servicenow \\| Singular \\| Slack \\| Trendmicro \\| Veeva \\| Zendesk \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorType", "type": "string" }, "IncrementalPullConfig": { - "$ref": "#/definitions/AWS::AppFlow::Flow.IncrementalPullConfig" + "$ref": "#/definitions/AWS::AppFlow::Flow.IncrementalPullConfig", + "markdownDescription": "Defines the configuration for a scheduled incremental data pull\\. If a valid configuration is provided, the fields specified in the configuration are used when querying for the incremental data pull\\. \n*Required*: No \n*Type*: [IncrementalPullConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-incrementalpullconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncrementalPullConfig" }, "SourceConnectorProperties": { - "$ref": "#/definitions/AWS::AppFlow::Flow.SourceConnectorProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.SourceConnectorProperties", + "markdownDescription": "Specifies the information that is required to query a particular source connector\\. \n*Required*: Yes \n*Type*: [SourceConnectorProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceConnectorProperties" } }, "required": [ @@ -9055,9 +11122,13 @@ "additionalProperties": false, "properties": { "BucketName": { + "markdownDescription": "The name of the Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", "type": "string" }, "BucketPrefix": { + "markdownDescription": "The Amazon S3 bucket prefix\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketPrefix", "type": "string" } }, @@ -9067,24 +11138,34 @@ "additionalProperties": false, "properties": { "ConnectorOperator": { - "$ref": "#/definitions/AWS::AppFlow::Flow.ConnectorOperator" + "$ref": "#/definitions/AWS::AppFlow::Flow.ConnectorOperator", + "markdownDescription": "The operation to be performed on the provided source fields\\. \n*Required*: No \n*Type*: [ConnectorOperator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorOperator" }, "DestinationField": { + "markdownDescription": "A field in a destination connector, or a field value against which Amazon AppFlow validates a source field\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationField", "type": "string" }, "SourceFields": { "items": { "type": "string" }, + "markdownDescription": "The source fields to which a particular task is applied\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceFields", "type": "array" }, "TaskProperties": { "items": { "$ref": "#/definitions/AWS::AppFlow::Flow.TaskPropertiesObject" }, + "markdownDescription": "A map used to store task\\-related information\\. The execution service looks for particular information based on the `TaskType`\\. \n*Required*: No \n*Type*: List of [TaskPropertiesObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-taskpropertiesobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskProperties", "type": "array" }, "TaskType": { + "markdownDescription": "Specifies the particular task implementation that Amazon AppFlow performs\\. \n*Allowed values*: `Arithmetic` \\| `Filter` \\| `Map` \\| `Map_all` \\| `Mask` \\| `Merge` \\| `Truncate` \\| `Validate` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskType", "type": "string" } }, @@ -9098,9 +11179,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The task property key\\. \n*Allowed Values*: `VALUE | VALUES | DATA_TYPE | UPPER_BOUND | LOWER_BOUND | SOURCE_DATA_TYPE | DESTINATION_DATA_TYPE | VALIDATION_ACTION | MASK_VALUE | MASK_LENGTH | TRUNCATE_LENGTH | MATH_OPERATION_FIELDS_ORDER | CONCAT_FORMAT | SUBFIELD_CATEGORY_MAP` \\| `EXCLUDE_SOURCE_FIELDS_LIST` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The task property value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -9114,6 +11199,8 @@ "additionalProperties": false, "properties": { "Object": { + "markdownDescription": "The object specified in the Trend Micro flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" } }, @@ -9126,9 +11213,13 @@ "additionalProperties": false, "properties": { "TriggerProperties": { - "$ref": "#/definitions/AWS::AppFlow::Flow.ScheduledTriggerProperties" + "$ref": "#/definitions/AWS::AppFlow::Flow.ScheduledTriggerProperties", + "markdownDescription": "Specifies the configuration details of a schedule\\-triggered flow as defined by the user\\. Currently, these settings only apply to the `Scheduled` trigger type\\. \n*Required*: No \n*Type*: [ScheduledTriggerProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-scheduledtriggerproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TriggerProperties" }, "TriggerType": { + "markdownDescription": "Specifies the type of flow trigger\\. This can be `OnDemand`, `Scheduled`, or `Event`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Event | OnDemand | Scheduled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TriggerType", "type": "string" } }, @@ -9141,13 +11232,19 @@ "additionalProperties": false, "properties": { "BucketName": { + "markdownDescription": "The Upsolver Amazon S3 bucket name in which Amazon AppFlow places the transferred data\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `16` \n*Maximum*: `63` \n*Pattern*: `^(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/upsolver-appflow.html)\\S*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", "type": "string" }, "BucketPrefix": { + "markdownDescription": "The object key for the destination Upsolver Amazon S3 bucket in which Amazon AppFlow places the files\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketPrefix", "type": "string" }, "S3OutputFormatConfig": { - "$ref": "#/definitions/AWS::AppFlow::Flow.UpsolverS3OutputFormatConfig" + "$ref": "#/definitions/AWS::AppFlow::Flow.UpsolverS3OutputFormatConfig", + "markdownDescription": "The configuration that determines how data is formatted when Upsolver is used as the flow destination\\. \n*Required*: Yes \n*Type*: [UpsolverS3OutputFormatConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-upsolvers3outputformatconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3OutputFormatConfig" } }, "required": [ @@ -9160,13 +11257,19 @@ "additionalProperties": false, "properties": { "AggregationConfig": { - "$ref": "#/definitions/AWS::AppFlow::Flow.AggregationConfig" + "$ref": "#/definitions/AWS::AppFlow::Flow.AggregationConfig", + "markdownDescription": "The aggregation settings that you can use to customize the output format of your flow data\\. \n*Required*: No \n*Type*: [AggregationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-aggregationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AggregationConfig" }, "FileType": { + "markdownDescription": "Indicates the file type that Amazon AppFlow places in the Upsolver Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CSV | JSON | PARQUET` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileType", "type": "string" }, "PrefixConfig": { - "$ref": "#/definitions/AWS::AppFlow::Flow.PrefixConfig" + "$ref": "#/definitions/AWS::AppFlow::Flow.PrefixConfig", + "markdownDescription": "Determines the prefix that Amazon AppFlow applies to the destination folder name\\. You can name your destination folders according to the flow frequency and date\\. \n*Required*: Yes \n*Type*: [PrefixConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-prefixconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrefixConfig" } }, "required": [ @@ -9178,18 +11281,28 @@ "additionalProperties": false, "properties": { "DocumentType": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentType", "type": "string" }, "IncludeAllVersions": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeAllVersions", "type": "boolean" }, "IncludeRenditions": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeRenditions", "type": "boolean" }, "IncludeSourceFiles": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeSourceFiles", "type": "boolean" }, "Object": { + "markdownDescription": "The object specified in the Veeva flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" } }, @@ -9202,18 +11315,26 @@ "additionalProperties": false, "properties": { "ErrorHandlingConfig": { - "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig" + "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ErrorHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorHandlingConfig" }, "IdFieldNames": { "items": { "type": "string" }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdFieldNames", "type": "array" }, "Object": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" }, "WriteOperationType": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WriteOperationType", "type": "string" } }, @@ -9226,6 +11347,8 @@ "additionalProperties": false, "properties": { "Object": { + "markdownDescription": "The object specified in the Zendesk flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" } }, @@ -9270,24 +11393,36 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the DataIntegration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "KmsKey": { + "markdownDescription": "The KMS key for the DataIntegration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKey", "type": "string" }, "Name": { + "markdownDescription": "The name of the DataIntegration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "ScheduleConfig": { - "$ref": "#/definitions/AWS::AppIntegrations::DataIntegration.ScheduleConfig" + "$ref": "#/definitions/AWS::AppIntegrations::DataIntegration.ScheduleConfig", + "markdownDescription": "The name of the data and how often it should be pulled from the source\\. \n*Required*: Yes \n*Type*: [ScheduleConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-dataintegration-scheduleconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScheduleConfig" }, "SourceURI": { + "markdownDescription": "The URI of the data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceURI", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -9324,12 +11459,18 @@ "additionalProperties": false, "properties": { "FirstExecutionFrom": { + "markdownDescription": "The start date for objects to import in the first flow run as an Unix/epoch timestamp in milliseconds or in ISO\\-8601 format\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FirstExecutionFrom", "type": "string" }, "Object": { + "markdownDescription": "The name of the object to pull from the data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Object", "type": "string" }, "ScheduleExpression": { + "markdownDescription": "How often the data should be pulled from data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScheduleExpression", "type": "string" } }, @@ -9376,21 +11517,31 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The event integration description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "EventBridgeBus": { + "markdownDescription": "The Amazon EventBridge bus for the event integration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EventBridgeBus", "type": "string" }, "EventFilter": { - "$ref": "#/definitions/AWS::AppIntegrations::EventIntegration.EventFilter" + "$ref": "#/definitions/AWS::AppIntegrations::EventIntegration.EventFilter", + "markdownDescription": "The event integration filter\\. \n*Required*: Yes \n*Type*: [EventFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-eventintegration-eventfilter.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EventFilter" }, "Name": { + "markdownDescription": "The name of the event integration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -9426,6 +11577,8 @@ "additionalProperties": false, "properties": { "Source": { + "markdownDescription": "The source of the events\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Source", "type": "string" } }, @@ -9441,18 +11594,28 @@ "items": { "$ref": "#/definitions/AWS::AppIntegrations::EventIntegration.Metadata" }, + "markdownDescription": "The metadata associated with the client\\. \n*Required*: No \n*Type*: List of [Metadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-eventintegration-metadata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientAssociationMetadata", "type": "array" }, "ClientId": { + "markdownDescription": "The identifier for the client that is associated with the event integration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientId", "type": "string" }, "EventBridgeRuleName": { + "markdownDescription": "The name of the EventBridge rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventBridgeRuleName", "type": "string" }, "EventIntegrationAssociationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the event integration association\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventIntegrationAssociationArn", "type": "string" }, "EventIntegrationAssociationId": { + "markdownDescription": "The identifier for the event integration association\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventIntegrationAssociationId", "type": "string" } }, @@ -9462,9 +11625,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The key name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -9510,24 +11677,36 @@ "additionalProperties": false, "properties": { "GatewayRouteName": { + "markdownDescription": "The name of the gateway route\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GatewayRouteName", "type": "string" }, "MeshName": { + "markdownDescription": "The name of the service mesh that the resource resides in\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshName", "type": "string" }, "MeshOwner": { + "markdownDescription": "The AWS IAM account ID of the service mesh owner\\. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account\\. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshOwner", "type": "string" }, "Spec": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteSpec" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteSpec", + "markdownDescription": "The specifications of the gateway route\\. \n*Required*: Yes \n*Type*: [GatewayRouteSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutespec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Spec" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Optional metadata that you can apply to the gateway route to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VirtualGatewayName": { + "markdownDescription": "The virtual gateway that the gateway route is associated with\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VirtualGatewayName", "type": "string" } }, @@ -9563,9 +11742,13 @@ "additionalProperties": false, "properties": { "Exact": { + "markdownDescription": "The exact host name to match on\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `253` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", "type": "string" }, "Suffix": { + "markdownDescription": "The specified ending characters of the host name to match on\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `253` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Suffix", "type": "string" } }, @@ -9575,6 +11758,8 @@ "additionalProperties": false, "properties": { "DefaultTargetHostname": { + "markdownDescription": "The default target host name to write to\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultTargetHostname", "type": "string" } }, @@ -9584,18 +11769,28 @@ "additionalProperties": false, "properties": { "Exact": { + "markdownDescription": "The exact method header to be matched on\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", "type": "string" }, "Prefix": { + "markdownDescription": "The specified beginning characters of the method header to be matched on\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" }, "Range": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteRangeMatch" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteRangeMatch", + "markdownDescription": "An object that represents the range of values to match on\\. \n*Required*: No \n*Type*: [GatewayRouteRangeMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayrouterangematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Range" }, "Regex": { + "markdownDescription": "The regex used to match the method header\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Regex", "type": "string" }, "Suffix": { + "markdownDescription": "The specified ending characters of the method header to match on\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Suffix", "type": "string" } }, @@ -9605,9 +11800,13 @@ "additionalProperties": false, "properties": { "End": { + "markdownDescription": "The end of the range\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "End", "type": "number" }, "Start": { + "markdownDescription": "The start of the range\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Start", "type": "number" } }, @@ -9621,15 +11820,23 @@ "additionalProperties": false, "properties": { "GrpcRoute": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRoute" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRoute", + "markdownDescription": "An object that represents the specification of a gRPC gateway route\\. \n*Required*: No \n*Type*: [GrpcGatewayRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GrpcRoute" }, "Http2Route": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoute" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoute", + "markdownDescription": "An object that represents the specification of an HTTP/2 gateway route\\. \n*Required*: No \n*Type*: [HttpGatewayRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Http2Route" }, "HttpRoute": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoute" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoute", + "markdownDescription": "An object that represents the specification of an HTTP gateway route\\. \n*Required*: No \n*Type*: [HttpGatewayRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpRoute" }, "Priority": { + "markdownDescription": "The ordering of the gateway routes spec\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" } }, @@ -9642,7 +11849,9 @@ "type": "number" }, "VirtualService": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteVirtualService" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteVirtualService", + "markdownDescription": "An object that represents a virtual service gateway route target\\. \n*Required*: Yes \n*Type*: [GatewayRouteVirtualService](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutevirtualservice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualService" } }, "required": [ @@ -9654,6 +11863,8 @@ "additionalProperties": false, "properties": { "VirtualServiceName": { + "markdownDescription": "The name of the virtual service that traffic is routed to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualServiceName", "type": "string" } }, @@ -9666,10 +11877,14 @@ "additionalProperties": false, "properties": { "Action": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRouteAction" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRouteAction", + "markdownDescription": "An object that represents the action to take if a match is determined\\. \n*Required*: Yes \n*Type*: [GrpcGatewayRouteAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayrouteaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" }, "Match": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRouteMatch" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRouteMatch", + "markdownDescription": "An object that represents the criteria for determining a request match\\. \n*Required*: Yes \n*Type*: [GrpcGatewayRouteMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroutematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" } }, "required": [ @@ -9682,10 +11897,14 @@ "additionalProperties": false, "properties": { "Rewrite": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRouteRewrite" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRouteRewrite", + "markdownDescription": "The gateway route action to rewrite\\. \n*Required*: No \n*Type*: [GrpcGatewayRouteRewrite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayrouterewrite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rewrite" }, "Target": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteTarget" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteTarget", + "markdownDescription": "An object that represents the target that traffic is routed to when a request matches the gateway route\\. \n*Required*: Yes \n*Type*: [GatewayRouteTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutetarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target" } }, "required": [ @@ -9697,18 +11916,24 @@ "additionalProperties": false, "properties": { "Hostname": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteHostnameMatch" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteHostnameMatch", + "markdownDescription": "The gateway route host name to be matched on\\. \n*Required*: No \n*Type*: [GatewayRouteHostnameMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutehostnamematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Hostname" }, "Metadata": { "items": { "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRouteMetadata" }, + "markdownDescription": "The gateway route metadata to be matched on\\. \n*Required*: No \n*Type*: List of [GrpcGatewayRouteMetadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroutemetadata.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metadata", "type": "array" }, "Port": { "type": "number" }, "ServiceName": { + "markdownDescription": "The fully qualified domain name for the service to match from the request\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceName", "type": "string" } }, @@ -9718,12 +11943,18 @@ "additionalProperties": false, "properties": { "Invert": { + "markdownDescription": "Specify `True` to match anything except the match criteria\\. The default value is `False`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Invert", "type": "boolean" }, "Match": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteMetadataMatch" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteMetadataMatch", + "markdownDescription": "The criteria for determining a metadata match\\. \n*Required*: No \n*Type*: [GatewayRouteMetadataMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutemetadatamatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" }, "Name": { + "markdownDescription": "A name for the gateway route metadata\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -9736,7 +11967,9 @@ "additionalProperties": false, "properties": { "Hostname": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteHostnameRewrite" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteHostnameRewrite", + "markdownDescription": "The host name of the gateway route to rewrite\\. \n*Required*: No \n*Type*: [GatewayRouteHostnameRewrite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutehostnamerewrite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Hostname" } }, "type": "object" @@ -9745,10 +11978,14 @@ "additionalProperties": false, "properties": { "Action": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteAction" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteAction", + "markdownDescription": "An object that represents the action to take if a match is determined\\. \n*Required*: Yes \n*Type*: [HttpGatewayRouteAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" }, "Match": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteMatch" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteMatch", + "markdownDescription": "An object that represents the criteria for determining a request match\\. \n*Required*: Yes \n*Type*: [HttpGatewayRouteMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroutematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" } }, "required": [ @@ -9761,10 +11998,14 @@ "additionalProperties": false, "properties": { "Rewrite": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteRewrite" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteRewrite", + "markdownDescription": "The gateway route action to rewrite\\. \n*Required*: No \n*Type*: [HttpGatewayRouteRewrite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouterewrite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rewrite" }, "Target": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteTarget" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteTarget", + "markdownDescription": "An object that represents the target that traffic is routed to when a request matches the gateway route\\. \n*Required*: Yes \n*Type*: [GatewayRouteTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutetarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target" } }, "required": [ @@ -9776,12 +12017,18 @@ "additionalProperties": false, "properties": { "Invert": { + "markdownDescription": "Specify `True` to match anything except the match criteria\\. The default value is `False`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Invert", "type": "boolean" }, "Match": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteHeaderMatch" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteHeaderMatch", + "markdownDescription": "An object that represents the method and value to match with the header value sent in a request\\. Specify one match method\\. \n*Required*: No \n*Type*: [HttpGatewayRouteHeaderMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteheadermatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" }, "Name": { + "markdownDescription": "A name for the HTTP header in the gateway route that will be matched on\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -9794,18 +12041,28 @@ "additionalProperties": false, "properties": { "Exact": { + "markdownDescription": "The value sent by the client must match the specified value exactly\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", "type": "string" }, "Prefix": { + "markdownDescription": "The value sent by the client must begin with the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" }, "Range": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteRangeMatch" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteRangeMatch", + "markdownDescription": "An object that represents the range of values to match on\\. \n*Required*: No \n*Type*: [GatewayRouteRangeMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayrouterangematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Range" }, "Regex": { + "markdownDescription": "The value sent by the client must include the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Regex", "type": "string" }, "Suffix": { + "markdownDescription": "The value sent by the client must end with the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Suffix", "type": "string" } }, @@ -9818,27 +12075,39 @@ "items": { "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteHeader" }, + "markdownDescription": "The client request headers to match on\\. \n*Required*: No \n*Type*: List of [HttpGatewayRouteHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteheader.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Headers", "type": "array" }, "Hostname": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteHostnameMatch" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteHostnameMatch", + "markdownDescription": "The host name to match on\\. \n*Required*: No \n*Type*: [GatewayRouteHostnameMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutehostnamematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Hostname" }, "Method": { + "markdownDescription": "The method to match on\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CONNECT | DELETE | GET | HEAD | OPTIONS | PATCH | POST | PUT | TRACE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Method", "type": "string" }, "Path": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpPathMatch" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpPathMatch", + "markdownDescription": "The path to match on\\. \n*Required*: No \n*Type*: [HttpPathMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httppathmatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path" }, "Port": { "type": "number" }, "Prefix": { + "markdownDescription": "Specifies the path to match requests with\\. This parameter must always start with `/`, which by itself matches all requests to the virtual service name\\. You can also match for path\\-based routing of requests\\. For example, if your virtual service name is `my-service.local` and you want the route to match requests to `my-service.local/metrics`, your prefix should be `/metrics`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" }, "QueryParameters": { "items": { "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.QueryParameter" }, + "markdownDescription": "The query parameter to match on\\. \n*Required*: No \n*Type*: List of [QueryParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-queryparameter.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryParameters", "type": "array" } }, @@ -9848,6 +12117,8 @@ "additionalProperties": false, "properties": { "Exact": { + "markdownDescription": "The exact path to rewrite\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", "type": "string" } }, @@ -9857,9 +12128,13 @@ "additionalProperties": false, "properties": { "DefaultPrefix": { + "markdownDescription": "The default prefix used to replace the incoming route prefix when rewritten\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultPrefix", "type": "string" }, "Value": { + "markdownDescription": "The value used to replace the incoming route prefix when rewritten\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -9869,13 +12144,19 @@ "additionalProperties": false, "properties": { "Hostname": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteHostnameRewrite" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteHostnameRewrite", + "markdownDescription": "The host name to rewrite\\. \n*Required*: No \n*Type*: [GatewayRouteHostnameRewrite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutehostnamerewrite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Hostname" }, "Path": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoutePathRewrite" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoutePathRewrite", + "markdownDescription": "The path to rewrite\\. \n*Required*: No \n*Type*: [HttpGatewayRoutePathRewrite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroutepathrewrite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path" }, "Prefix": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoutePrefixRewrite" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoutePrefixRewrite", + "markdownDescription": "The specified beginning characters to rewrite\\. \n*Required*: No \n*Type*: [HttpGatewayRoutePrefixRewrite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteprefixrewrite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix" } }, "type": "object" @@ -9884,9 +12165,13 @@ "additionalProperties": false, "properties": { "Exact": { + "markdownDescription": "The exact path to match on\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", "type": "string" }, "Regex": { + "markdownDescription": "The regex used to match the path\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Regex", "type": "string" } }, @@ -9896,6 +12181,8 @@ "additionalProperties": false, "properties": { "Exact": { + "markdownDescription": "The exact query parameter to match on\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", "type": "string" } }, @@ -9905,9 +12192,13 @@ "additionalProperties": false, "properties": { "Match": { - "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpQueryParameterMatch" + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpQueryParameterMatch", + "markdownDescription": "The query parameter to match on\\. \n*Required*: No \n*Type*: [HttpQueryParameterMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpqueryparametermatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" }, "Name": { + "markdownDescription": "A name for the query parameter that will be matched on\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -9952,15 +12243,21 @@ "additionalProperties": false, "properties": { "MeshName": { + "markdownDescription": "The name to use for the service mesh\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshName", "type": "string" }, "Spec": { - "$ref": "#/definitions/AWS::AppMesh::Mesh.MeshSpec" + "$ref": "#/definitions/AWS::AppMesh::Mesh.MeshSpec", + "markdownDescription": "The service mesh specification to apply\\. \n*Required*: No \n*Type*: [MeshSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-mesh-meshspec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Spec" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Optional metadata that you can apply to the service mesh to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -9990,6 +12287,8 @@ "additionalProperties": false, "properties": { "Type": { + "markdownDescription": "The egress filter type\\. By default, the type is `DROP_ALL`, which allows egress only from virtual nodes to other defined resources in the service mesh \\(and any traffic to `*.amazonaws.com` for AWS API calls\\)\\. You can set the egress filter type to `ALLOW_ALL` to allow egress to any endpoint inside or outside of the service mesh\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALLOW_ALL | DROP_ALL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -10011,7 +12310,9 @@ "additionalProperties": false, "properties": { "EgressFilter": { - "$ref": "#/definitions/AWS::AppMesh::Mesh.EgressFilter" + "$ref": "#/definitions/AWS::AppMesh::Mesh.EgressFilter", + "markdownDescription": "The egress filter rules for the service mesh\\. \n*Required*: No \n*Type*: [EgressFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-mesh-egressfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EgressFilter" }, "ServiceDiscovery": { "$ref": "#/definitions/AWS::AppMesh::Mesh.MeshServiceDiscovery" @@ -10055,24 +12356,36 @@ "additionalProperties": false, "properties": { "MeshName": { + "markdownDescription": "The name of the service mesh to create the route in\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshName", "type": "string" }, "MeshOwner": { + "markdownDescription": "The AWS IAM account ID of the service mesh owner\\. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh\\. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshOwner", "type": "string" }, "RouteName": { + "markdownDescription": "The name to use for the route\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RouteName", "type": "string" }, "Spec": { - "$ref": "#/definitions/AWS::AppMesh::Route.RouteSpec" + "$ref": "#/definitions/AWS::AppMesh::Route.RouteSpec", + "markdownDescription": "The route specification to apply\\. \n*Required*: Yes \n*Type*: [RouteSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-routespec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Spec" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Optional metadata that you can apply to the route to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VirtualRouterName": { + "markdownDescription": "The name of the virtual router in which to create the route\\. If the virtual router is in a shared mesh, then you must be the owner of the virtual router resource\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VirtualRouterName", "type": "string" } }, @@ -10108,9 +12421,13 @@ "additionalProperties": false, "properties": { "Unit": { + "markdownDescription": "A unit of time\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ms | s` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", "type": "string" }, "Value": { + "markdownDescription": "A number of time units\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "number" } }, @@ -10127,24 +12444,34 @@ "items": { "type": "string" }, + "markdownDescription": "Specify at least one of the valid values\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GrpcRetryEvents", "type": "array" }, "HttpRetryEvents": { "items": { "type": "string" }, + "markdownDescription": "Specify at least one of the following values\\. \n+ **server\\-error** \u2013 HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511\n+ **gateway\\-error** \u2013 HTTP status codes 502, 503, and 504\n+ **client\\-error** \u2013 HTTP status code 409\n+ **stream\\-error** \u2013 Retry on refused stream\n*Required*: No \n*Type*: List of String \n*Maximum*: `25` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpRetryEvents", "type": "array" }, "MaxRetries": { + "markdownDescription": "The maximum number of retry attempts\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxRetries", "type": "number" }, "PerRetryTimeout": { - "$ref": "#/definitions/AWS::AppMesh::Route.Duration" + "$ref": "#/definitions/AWS::AppMesh::Route.Duration", + "markdownDescription": "The timeout for each retry attempt\\. \n*Required*: Yes \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PerRetryTimeout" }, "TcpRetryEvents": { "items": { "type": "string" }, + "markdownDescription": "Specify a valid value\\. The event occurs before any processing of a request has started and is encountered when the upstream is temporarily or permanently unavailable\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TcpRetryEvents", "type": "array" } }, @@ -10158,16 +12485,24 @@ "additionalProperties": false, "properties": { "Action": { - "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRouteAction" + "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRouteAction", + "markdownDescription": "An object that represents the action to take if a match is determined\\. \n*Required*: Yes \n*Type*: [GrpcRouteAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcrouteaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" }, "Match": { - "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRouteMatch" + "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRouteMatch", + "markdownDescription": "An object that represents the criteria for determining a request match\\. \n*Required*: Yes \n*Type*: [GrpcRouteMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" }, "RetryPolicy": { - "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRetryPolicy" + "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRetryPolicy", + "markdownDescription": "An object that represents a retry policy\\. \n*Required*: No \n*Type*: [GrpcRetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcretrypolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryPolicy" }, "Timeout": { - "$ref": "#/definitions/AWS::AppMesh::Route.GrpcTimeout" + "$ref": "#/definitions/AWS::AppMesh::Route.GrpcTimeout", + "markdownDescription": "An object that represents types of timeouts\\. \n*Required*: No \n*Type*: [GrpcTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpctimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout" } }, "required": [ @@ -10183,6 +12518,8 @@ "items": { "$ref": "#/definitions/AWS::AppMesh::Route.WeightedTarget" }, + "markdownDescription": "An object that represents the targets that traffic is routed to when a request matches the route\\. \n*Required*: Yes \n*Type*: List of [WeightedTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-weightedtarget.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WeightedTargets", "type": "array" } }, @@ -10198,15 +12535,21 @@ "items": { "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRouteMetadata" }, + "markdownDescription": "An object that represents the data to match from the request\\. \n*Required*: No \n*Type*: List of [GrpcRouteMetadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutemetadata.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metadata", "type": "array" }, "MethodName": { + "markdownDescription": "The method name to match from the request\\. If you specify a name, you must also specify a `serviceName`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MethodName", "type": "string" }, "Port": { "type": "number" }, "ServiceName": { + "markdownDescription": "The fully qualified domain name for the service to match from the request\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceName", "type": "string" } }, @@ -10216,12 +12559,18 @@ "additionalProperties": false, "properties": { "Invert": { + "markdownDescription": "Specify `True` to match anything except the match criteria\\. The default value is `False`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Invert", "type": "boolean" }, "Match": { - "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRouteMetadataMatchMethod" + "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRouteMetadataMatchMethod", + "markdownDescription": "An object that represents the data to match from the request\\. \n*Required*: No \n*Type*: [GrpcRouteMetadataMatchMethod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutemetadatamatchmethod.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" }, "Name": { + "markdownDescription": "The name of the route\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -10234,18 +12583,28 @@ "additionalProperties": false, "properties": { "Exact": { + "markdownDescription": "The value sent by the client must match the specified value exactly\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", "type": "string" }, "Prefix": { + "markdownDescription": "The value sent by the client must begin with the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" }, "Range": { - "$ref": "#/definitions/AWS::AppMesh::Route.MatchRange" + "$ref": "#/definitions/AWS::AppMesh::Route.MatchRange", + "markdownDescription": "An object that represents the range of values to match on\\. \n*Required*: No \n*Type*: [MatchRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-matchrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Range" }, "Regex": { + "markdownDescription": "The value sent by the client must include the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Regex", "type": "string" }, "Suffix": { + "markdownDescription": "The value sent by the client must end with the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Suffix", "type": "string" } }, @@ -10255,10 +12614,14 @@ "additionalProperties": false, "properties": { "Idle": { - "$ref": "#/definitions/AWS::AppMesh::Route.Duration" + "$ref": "#/definitions/AWS::AppMesh::Route.Duration", + "markdownDescription": "An object that represents an idle timeout\\. An idle timeout bounds the amount of time that a connection may be idle\\. The default value is none\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Idle" }, "PerRequest": { - "$ref": "#/definitions/AWS::AppMesh::Route.Duration" + "$ref": "#/definitions/AWS::AppMesh::Route.Duration", + "markdownDescription": "An object that represents a per request timeout\\. The default value is 15 seconds\\. If you set a higher timeout, then make sure that the higher value is set for each App Mesh resource in a conversation\\. For example, if a virtual node backend uses a virtual router provider to route to another virtual node, then the timeout should be greater than 15 seconds for the source and destination virtual node and the route\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PerRequest" } }, "type": "object" @@ -10267,18 +12630,28 @@ "additionalProperties": false, "properties": { "Exact": { + "markdownDescription": "The value sent by the client must match the specified value exactly\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", "type": "string" }, "Prefix": { + "markdownDescription": "The value sent by the client must begin with the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" }, "Range": { - "$ref": "#/definitions/AWS::AppMesh::Route.MatchRange" + "$ref": "#/definitions/AWS::AppMesh::Route.MatchRange", + "markdownDescription": "An object that represents the range of values to match on\\. \n*Required*: No \n*Type*: [MatchRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-matchrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Range" }, "Regex": { + "markdownDescription": "The value sent by the client must include the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Regex", "type": "string" }, "Suffix": { + "markdownDescription": "The value sent by the client must end with the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Suffix", "type": "string" } }, @@ -10288,9 +12661,13 @@ "additionalProperties": false, "properties": { "Exact": { + "markdownDescription": "The exact path to match on\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", "type": "string" }, "Regex": { + "markdownDescription": "The regex used to match the path\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Regex", "type": "string" } }, @@ -10300,6 +12677,8 @@ "additionalProperties": false, "properties": { "Exact": { + "markdownDescription": "The exact query parameter to match on\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", "type": "string" } }, @@ -10312,18 +12691,26 @@ "items": { "type": "string" }, + "markdownDescription": "Specify at least one of the following values\\. \n+ **server\\-error** \u2013 HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511\n+ **gateway\\-error** \u2013 HTTP status codes 502, 503, and 504\n+ **client\\-error** \u2013 HTTP status code 409\n+ **stream\\-error** \u2013 Retry on refused stream\n*Required*: No \n*Type*: List of String \n*Maximum*: `25` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpRetryEvents", "type": "array" }, "MaxRetries": { + "markdownDescription": "The maximum number of retry attempts\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxRetries", "type": "number" }, "PerRetryTimeout": { - "$ref": "#/definitions/AWS::AppMesh::Route.Duration" + "$ref": "#/definitions/AWS::AppMesh::Route.Duration", + "markdownDescription": "The timeout for each retry attempt\\. \n*Required*: Yes \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PerRetryTimeout" }, "TcpRetryEvents": { "items": { "type": "string" }, + "markdownDescription": "Specify a valid value\\. The event occurs before any processing of a request has started and is encountered when the upstream is temporarily or permanently unavailable\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TcpRetryEvents", "type": "array" } }, @@ -10337,16 +12724,24 @@ "additionalProperties": false, "properties": { "Action": { - "$ref": "#/definitions/AWS::AppMesh::Route.HttpRouteAction" + "$ref": "#/definitions/AWS::AppMesh::Route.HttpRouteAction", + "markdownDescription": "An object that represents the action to take if a match is determined\\. \n*Required*: Yes \n*Type*: [HttpRouteAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httprouteaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" }, "Match": { - "$ref": "#/definitions/AWS::AppMesh::Route.HttpRouteMatch" + "$ref": "#/definitions/AWS::AppMesh::Route.HttpRouteMatch", + "markdownDescription": "An object that represents the criteria for determining a request match\\. \n*Required*: Yes \n*Type*: [HttpRouteMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproutematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" }, "RetryPolicy": { - "$ref": "#/definitions/AWS::AppMesh::Route.HttpRetryPolicy" + "$ref": "#/definitions/AWS::AppMesh::Route.HttpRetryPolicy", + "markdownDescription": "An object that represents a retry policy\\. \n*Required*: No \n*Type*: [HttpRetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httpretrypolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryPolicy" }, "Timeout": { - "$ref": "#/definitions/AWS::AppMesh::Route.HttpTimeout" + "$ref": "#/definitions/AWS::AppMesh::Route.HttpTimeout", + "markdownDescription": "An object that represents types of timeouts\\. \n*Required*: No \n*Type*: [HttpTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httptimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout" } }, "required": [ @@ -10362,6 +12757,8 @@ "items": { "$ref": "#/definitions/AWS::AppMesh::Route.WeightedTarget" }, + "markdownDescription": "An object that represents the targets that traffic is routed to when a request matches the route\\. \n*Required*: Yes \n*Type*: List of [WeightedTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-weightedtarget.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WeightedTargets", "type": "array" } }, @@ -10374,12 +12771,18 @@ "additionalProperties": false, "properties": { "Invert": { + "markdownDescription": "Specify `True` to match anything except the match criteria\\. The default value is `False`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Invert", "type": "boolean" }, "Match": { - "$ref": "#/definitions/AWS::AppMesh::Route.HeaderMatchMethod" + "$ref": "#/definitions/AWS::AppMesh::Route.HeaderMatchMethod", + "markdownDescription": "The `HeaderMatchMethod` object\\. \n*Required*: No \n*Type*: [HeaderMatchMethod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-headermatchmethod.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" }, "Name": { + "markdownDescription": "A name for the HTTP header in the client request that will be matched on\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -10395,27 +12798,39 @@ "items": { "$ref": "#/definitions/AWS::AppMesh::Route.HttpRouteHeader" }, + "markdownDescription": "The client request headers to match on\\. \n*Required*: No \n*Type*: List of [HttpRouteHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httprouteheader.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Headers", "type": "array" }, "Method": { + "markdownDescription": "The client request method to match on\\. Specify only one\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CONNECT | DELETE | GET | HEAD | OPTIONS | PATCH | POST | PUT | TRACE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Method", "type": "string" }, "Path": { - "$ref": "#/definitions/AWS::AppMesh::Route.HttpPathMatch" + "$ref": "#/definitions/AWS::AppMesh::Route.HttpPathMatch", + "markdownDescription": "The client request path to match on\\. \n*Required*: No \n*Type*: [HttpPathMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httppathmatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path" }, "Port": { "type": "number" }, "Prefix": { + "markdownDescription": "Specifies the path to match requests with\\. This parameter must always start with `/`, which by itself matches all requests to the virtual service name\\. You can also match for path\\-based routing of requests\\. For example, if your virtual service name is `my-service.local` and you want the route to match requests to `my-service.local/metrics`, your prefix should be `/metrics`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" }, "QueryParameters": { "items": { "$ref": "#/definitions/AWS::AppMesh::Route.QueryParameter" }, + "markdownDescription": "The client request query parameters to match on\\. \n*Required*: No \n*Type*: List of [QueryParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-queryparameter.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryParameters", "type": "array" }, "Scheme": { + "markdownDescription": "The client request scheme to match on\\. Specify only one\\. Applicable only for HTTP2 routes\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `http | https` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scheme", "type": "string" } }, @@ -10425,10 +12840,14 @@ "additionalProperties": false, "properties": { "Idle": { - "$ref": "#/definitions/AWS::AppMesh::Route.Duration" + "$ref": "#/definitions/AWS::AppMesh::Route.Duration", + "markdownDescription": "An object that represents an idle timeout\\. An idle timeout bounds the amount of time that a connection may be idle\\. The default value is none\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Idle" }, "PerRequest": { - "$ref": "#/definitions/AWS::AppMesh::Route.Duration" + "$ref": "#/definitions/AWS::AppMesh::Route.Duration", + "markdownDescription": "An object that represents a per request timeout\\. The default value is 15 seconds\\. If you set a higher timeout, then make sure that the higher value is set for each App Mesh resource in a conversation\\. For example, if a virtual node backend uses a virtual router provider to route to another virtual node, then the timeout should be greater than 15 seconds for the source and destination virtual node and the route\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PerRequest" } }, "type": "object" @@ -10437,9 +12856,13 @@ "additionalProperties": false, "properties": { "End": { + "markdownDescription": "The end of the range\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "End", "type": "number" }, "Start": { + "markdownDescription": "The start of the range\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Start", "type": "number" } }, @@ -10453,9 +12876,13 @@ "additionalProperties": false, "properties": { "Match": { - "$ref": "#/definitions/AWS::AppMesh::Route.HttpQueryParameterMatch" + "$ref": "#/definitions/AWS::AppMesh::Route.HttpQueryParameterMatch", + "markdownDescription": "The query parameter to match on\\. \n*Required*: No \n*Type*: [HttpQueryParameterMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httpqueryparametermatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" }, "Name": { + "markdownDescription": "A name for the query parameter that will be matched on\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -10468,19 +12895,29 @@ "additionalProperties": false, "properties": { "GrpcRoute": { - "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRoute" + "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRoute", + "markdownDescription": "An object that represents the specification of a gRPC route\\. \n*Required*: No \n*Type*: [GrpcRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GrpcRoute" }, "Http2Route": { - "$ref": "#/definitions/AWS::AppMesh::Route.HttpRoute" + "$ref": "#/definitions/AWS::AppMesh::Route.HttpRoute", + "markdownDescription": "An object that represents the specification of an HTTP/2 route\\. \n*Required*: No \n*Type*: [HttpRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Http2Route" }, "HttpRoute": { - "$ref": "#/definitions/AWS::AppMesh::Route.HttpRoute" + "$ref": "#/definitions/AWS::AppMesh::Route.HttpRoute", + "markdownDescription": "An object that represents the specification of an HTTP route\\. \n*Required*: No \n*Type*: [HttpRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpRoute" }, "Priority": { + "markdownDescription": "The priority for the route\\. Routes are matched based on the specified value, where 0 is the highest priority\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" }, "TcpRoute": { - "$ref": "#/definitions/AWS::AppMesh::Route.TcpRoute" + "$ref": "#/definitions/AWS::AppMesh::Route.TcpRoute", + "markdownDescription": "An object that represents the specification of a TCP route\\. \n*Required*: No \n*Type*: [TcpRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcproute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TcpRoute" } }, "type": "object" @@ -10489,13 +12926,17 @@ "additionalProperties": false, "properties": { "Action": { - "$ref": "#/definitions/AWS::AppMesh::Route.TcpRouteAction" + "$ref": "#/definitions/AWS::AppMesh::Route.TcpRouteAction", + "markdownDescription": "The action to take if a match is determined\\. \n*Required*: Yes \n*Type*: [TcpRouteAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcprouteaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" }, "Match": { "$ref": "#/definitions/AWS::AppMesh::Route.TcpRouteMatch" }, "Timeout": { - "$ref": "#/definitions/AWS::AppMesh::Route.TcpTimeout" + "$ref": "#/definitions/AWS::AppMesh::Route.TcpTimeout", + "markdownDescription": "An object that represents types of timeouts\\. \n*Required*: No \n*Type*: [TcpTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcptimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout" } }, "required": [ @@ -10510,6 +12951,8 @@ "items": { "$ref": "#/definitions/AWS::AppMesh::Route.WeightedTarget" }, + "markdownDescription": "An object that represents the targets that traffic is routed to when a request matches the route\\. \n*Required*: Yes \n*Type*: List of [WeightedTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-weightedtarget.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WeightedTargets", "type": "array" } }, @@ -10531,7 +12974,9 @@ "additionalProperties": false, "properties": { "Idle": { - "$ref": "#/definitions/AWS::AppMesh::Route.Duration" + "$ref": "#/definitions/AWS::AppMesh::Route.Duration", + "markdownDescription": "An object that represents an idle timeout\\. An idle timeout bounds the amount of time that a connection may be idle\\. The default value is none\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Idle" } }, "type": "object" @@ -10543,9 +12988,13 @@ "type": "number" }, "VirtualNode": { + "markdownDescription": "The virtual node to associate with the weighted target\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualNode", "type": "string" }, "Weight": { + "markdownDescription": "The relative weight of the weighted target\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Weight", "type": "number" } }, @@ -10591,21 +13040,31 @@ "additionalProperties": false, "properties": { "MeshName": { + "markdownDescription": "The name of the service mesh that the virtual gateway resides in\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshName", "type": "string" }, "MeshOwner": { + "markdownDescription": "The AWS IAM account ID of the service mesh owner\\. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account\\. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshOwner", "type": "string" }, "Spec": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewaySpec" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewaySpec", + "markdownDescription": "The specifications of the virtual gateway\\. \n*Required*: Yes \n*Type*: [VirtualGatewaySpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayspec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Spec" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Optional metadata that you can apply to the virtual gateway to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VirtualGatewayName": { + "markdownDescription": "The name of the virtual gateway\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VirtualGatewayName", "type": "string" } }, @@ -10674,6 +13133,8 @@ "items": { "type": "string" }, + "markdownDescription": "The values sent must match the specified values exactly\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", "type": "array" } }, @@ -10683,7 +13144,9 @@ "additionalProperties": false, "properties": { "Match": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.SubjectAlternativeNameMatchers" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.SubjectAlternativeNameMatchers", + "markdownDescription": "An object that represents the criteria for determining a SANs match\\. \n*Required*: Yes \n*Type*: [SubjectAlternativeNameMatchers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-subjectalternativenamematchers.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" } }, "required": [ @@ -10695,7 +13158,9 @@ "additionalProperties": false, "properties": { "File": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayFileAccessLog" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayFileAccessLog", + "markdownDescription": "The file object to send virtual gateway access logs to\\. \n*Required*: No \n*Type*: [VirtualGatewayFileAccessLog](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayfileaccesslog.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "File" } }, "type": "object" @@ -10704,7 +13169,9 @@ "additionalProperties": false, "properties": { "ClientPolicy": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayClientPolicy" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayClientPolicy", + "markdownDescription": "A reference to an object that represents a client policy\\. \n*Required*: No \n*Type*: [VirtualGatewayClientPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayclientpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientPolicy" } }, "type": "object" @@ -10713,7 +13180,9 @@ "additionalProperties": false, "properties": { "TLS": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayClientPolicyTls" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayClientPolicyTls", + "markdownDescription": "A reference to an object that represents a Transport Layer Security \\(TLS\\) client policy\\. \n*Required*: No \n*Type*: [VirtualGatewayClientPolicyTls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayclientpolicytls.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TLS" } }, "type": "object" @@ -10722,19 +13191,27 @@ "additionalProperties": false, "properties": { "Certificate": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayClientTlsCertificate" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayClientTlsCertificate", + "markdownDescription": "A reference to an object that represents a virtual gateway's client's Transport Layer Security \\(TLS\\) certificate\\. \n*Required*: No \n*Type*: [VirtualGatewayClientTlsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayclienttlscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate" }, "Enforce": { + "markdownDescription": "Whether the policy is enforced\\. The default is `True`, if a value isn't specified\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enforce", "type": "boolean" }, "Ports": { "items": { "type": "number" }, + "markdownDescription": "One or more ports that the policy is enforced for\\. \n*Required*: No \n*Type*: List of Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ports", "type": "array" }, "Validation": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContext" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContext", + "markdownDescription": "A reference to an object that represents a Transport Layer Security \\(TLS\\) validation context\\. \n*Required*: Yes \n*Type*: [VirtualGatewayTlsValidationContext](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontext.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Validation" } }, "required": [ @@ -10746,10 +13223,14 @@ "additionalProperties": false, "properties": { "File": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsFileCertificate" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsFileCertificate", + "markdownDescription": "An object that represents a local file certificate\\. The certificate must meet specific requirements and you must have proxy authorization enabled\\. For more information, see [ Transport Layer Security \\(TLS\\) ](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html)\\. \n*Required*: No \n*Type*: [VirtualGatewayListenerTlsFileCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsfilecertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "File" }, "SDS": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsSdsCertificate" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsSdsCertificate", + "markdownDescription": "A reference to an object that represents a virtual gateway's client's Secret Discovery Service certificate\\. \n*Required*: No \n*Type*: [VirtualGatewayListenerTlsSdsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlssdscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SDS" } }, "type": "object" @@ -10758,13 +13239,19 @@ "additionalProperties": false, "properties": { "GRPC": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayGrpcConnectionPool" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayGrpcConnectionPool", + "markdownDescription": "An object that represents a type of connection pool\\. \n*Required*: No \n*Type*: [VirtualGatewayGrpcConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaygrpcconnectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GRPC" }, "HTTP": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHttpConnectionPool" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHttpConnectionPool", + "markdownDescription": "An object that represents a type of connection pool\\. \n*Required*: No \n*Type*: [VirtualGatewayHttpConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhttpconnectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTP" }, "HTTP2": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHttp2ConnectionPool" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHttp2ConnectionPool", + "markdownDescription": "An object that represents a type of connection pool\\. \n*Required*: No \n*Type*: [VirtualGatewayHttp2ConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhttp2connectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTP2" } }, "type": "object" @@ -10776,6 +13263,8 @@ "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.LoggingFormat" }, "Path": { + "markdownDescription": "The file path to write access logs to\\. You can use `/dev/stdout` to send access logs to standard out and configure your Envoy container to use a log driver, such as `awslogs`, to export the access logs to a log storage service such as Amazon CloudWatch Logs\\. You can also specify a path in the Envoy container's file system to write the files to disk\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", "type": "string" } }, @@ -10788,6 +13277,8 @@ "additionalProperties": false, "properties": { "MaxRequests": { + "markdownDescription": "Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxRequests", "type": "number" } }, @@ -10800,24 +13291,38 @@ "additionalProperties": false, "properties": { "HealthyThreshold": { + "markdownDescription": "The number of consecutive successful health checks that must occur before declaring the listener healthy\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthyThreshold", "type": "number" }, "IntervalMillis": { + "markdownDescription": "The time period in milliseconds between each health check execution\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalMillis", "type": "number" }, "Path": { + "markdownDescription": "The destination path for the health check request\\. This value is only used if the specified protocol is HTTP or HTTP/2\\. For any other protocol, this value is ignored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", "type": "string" }, "Port": { + "markdownDescription": "The destination port for the health check request\\. This port must match the port defined in the [PortMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html#cfn-appmesh-virtualnode-listener-portmapping) for the listener\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" }, "Protocol": { + "markdownDescription": "The protocol for the health check request\\. If you specify `grpc`, then your service must conform to the [GRPC Health Checking Protocol](https://github.com/grpc/grpc/blob/master/doc/health-checking.md)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `grpc | http | http2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "string" }, "TimeoutMillis": { + "markdownDescription": "The amount of time to wait when receiving a response from the health check, in milliseconds\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutMillis", "type": "number" }, "UnhealthyThreshold": { + "markdownDescription": "The number of consecutive failed health checks that must occur before declaring a virtual gateway unhealthy\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnhealthyThreshold", "type": "number" } }, @@ -10834,6 +13339,8 @@ "additionalProperties": false, "properties": { "MaxRequests": { + "markdownDescription": "Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxRequests", "type": "number" } }, @@ -10846,9 +13353,13 @@ "additionalProperties": false, "properties": { "MaxConnections": { + "markdownDescription": "Maximum number of outbound TCP connections Envoy can establish concurrently with all hosts in upstream cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxConnections", "type": "number" }, "MaxPendingRequests": { + "markdownDescription": "Number of overflowing requests after `max_connections` Envoy will queue to upstream cluster\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxPendingRequests", "type": "number" } }, @@ -10861,16 +13372,24 @@ "additionalProperties": false, "properties": { "ConnectionPool": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayConnectionPool" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayConnectionPool", + "markdownDescription": "The connection pool information for the listener\\. \n*Required*: No \n*Type*: [VirtualGatewayConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayconnectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionPool" }, "HealthCheck": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHealthCheckPolicy" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHealthCheckPolicy", + "markdownDescription": "The health check information for the listener\\. \n*Required*: No \n*Type*: [VirtualGatewayHealthCheckPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheck" }, "PortMapping": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayPortMapping" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayPortMapping", + "markdownDescription": "The port mapping information for the listener\\. \n*Required*: Yes \n*Type*: [VirtualGatewayPortMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayportmapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortMapping" }, "TLS": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTls" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTls", + "markdownDescription": "A reference to an object that represents the Transport Layer Security \\(TLS\\) properties for the listener\\. \n*Required*: No \n*Type*: [VirtualGatewayListenerTls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertls.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TLS" } }, "required": [ @@ -10882,13 +13401,19 @@ "additionalProperties": false, "properties": { "Certificate": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsCertificate" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsCertificate", + "markdownDescription": "An object that represents a Transport Layer Security \\(TLS\\) certificate\\. \n*Required*: Yes \n*Type*: [VirtualGatewayListenerTlsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate" }, "Mode": { + "markdownDescription": "Specify one of the following modes\\. \n+ ****STRICT \u2013 Listener only accepts connections with TLS enabled\\. \n+ ****PERMISSIVE \u2013 Listener accepts connections with or without TLS enabled\\.\n+ ****DISABLED \u2013 Listener only accepts connections without TLS\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | PERMISSIVE | STRICT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", "type": "string" }, "Validation": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsValidationContext" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsValidationContext", + "markdownDescription": "A reference to an object that represents a virtual gateway's listener's Transport Layer Security \\(TLS\\) validation context\\. \n*Required*: No \n*Type*: [VirtualGatewayListenerTlsValidationContext](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsvalidationcontext.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Validation" } }, "required": [ @@ -10901,6 +13426,8 @@ "additionalProperties": false, "properties": { "CertificateArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the certificate\\. The certificate must meet specific requirements and you must have proxy authorization enabled\\. For more information, see [Transport Layer Security \\(TLS\\)](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#virtual-node-tls-prerequisites)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateArn", "type": "string" } }, @@ -10913,13 +13440,19 @@ "additionalProperties": false, "properties": { "ACM": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsAcmCertificate" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsAcmCertificate", + "markdownDescription": "A reference to an object that represents an AWS Certificate Manager certificate\\. \n*Required*: No \n*Type*: [VirtualGatewayListenerTlsAcmCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsacmcertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ACM" }, "File": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsFileCertificate" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsFileCertificate", + "markdownDescription": "A reference to an object that represents a local file certificate\\. \n*Required*: No \n*Type*: [VirtualGatewayListenerTlsFileCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsfilecertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "File" }, "SDS": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsSdsCertificate" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsSdsCertificate", + "markdownDescription": "A reference to an object that represents a virtual gateway's listener's Secret Discovery Service certificate\\. \n*Required*: No \n*Type*: [VirtualGatewayListenerTlsSdsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlssdscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SDS" } }, "type": "object" @@ -10928,9 +13461,13 @@ "additionalProperties": false, "properties": { "CertificateChain": { + "markdownDescription": "The certificate chain for the certificate\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateChain", "type": "string" }, "PrivateKey": { + "markdownDescription": "The private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateKey", "type": "string" } }, @@ -10944,6 +13481,8 @@ "additionalProperties": false, "properties": { "SecretName": { + "markdownDescription": "A reference to an object that represents the name of the secret secret requested from the Secret Discovery Service provider representing Transport Layer Security \\(TLS\\) materials like a certificate or certificate chain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretName", "type": "string" } }, @@ -10956,10 +13495,14 @@ "additionalProperties": false, "properties": { "SubjectAlternativeNames": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.SubjectAlternativeNames" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.SubjectAlternativeNames", + "markdownDescription": "A reference to an object that represents the SANs for a virtual gateway listener's Transport Layer Security \\(TLS\\) validation context\\. \n*Required*: No \n*Type*: [SubjectAlternativeNames](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-subjectalternativenames.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubjectAlternativeNames" }, "Trust": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsValidationContextTrust" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsValidationContextTrust", + "markdownDescription": "A reference to where to retrieve the trust chain when validating a peer\u2019s Transport Layer Security \\(TLS\\) certificate\\. \n*Required*: Yes \n*Type*: [VirtualGatewayListenerTlsValidationContextTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsvalidationcontexttrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Trust" } }, "required": [ @@ -10971,10 +13514,14 @@ "additionalProperties": false, "properties": { "File": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextFileTrust" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextFileTrust", + "markdownDescription": "An object that represents a Transport Layer Security \\(TLS\\) validation context trust for a local file\\. \n*Required*: No \n*Type*: [VirtualGatewayTlsValidationContextFileTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextfiletrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "File" }, "SDS": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextSdsTrust" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextSdsTrust", + "markdownDescription": "A reference to an object that represents a virtual gateway's listener's Transport Layer Security \\(TLS\\) Secret Discovery Service validation context trust\\. \n*Required*: No \n*Type*: [VirtualGatewayTlsValidationContextSdsTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextsdstrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SDS" } }, "type": "object" @@ -10983,7 +13530,9 @@ "additionalProperties": false, "properties": { "AccessLog": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayAccessLog" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayAccessLog", + "markdownDescription": "The access log configuration\\. \n*Required*: No \n*Type*: [VirtualGatewayAccessLog](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayaccesslog.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessLog" } }, "type": "object" @@ -10992,9 +13541,13 @@ "additionalProperties": false, "properties": { "Port": { + "markdownDescription": "The port used for the port mapping\\. Specify one protocol\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" }, "Protocol": { + "markdownDescription": "The protocol used for the port mapping\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `grpc | http | http2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "string" } }, @@ -11008,16 +13561,22 @@ "additionalProperties": false, "properties": { "BackendDefaults": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayBackendDefaults" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayBackendDefaults", + "markdownDescription": "A reference to an object that represents the defaults for backends\\. \n*Required*: No \n*Type*: [VirtualGatewayBackendDefaults](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaybackenddefaults.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackendDefaults" }, "Listeners": { "items": { "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListener" }, + "markdownDescription": "The listeners that the mesh endpoint is expected to receive inbound traffic from\\. You can specify one listener\\. \n*Required*: Yes \n*Type*: List of [VirtualGatewayListener](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistener.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Listeners", "type": "array" }, "Logging": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayLogging" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayLogging", + "markdownDescription": "An object that represents logging information\\. \n*Required*: No \n*Type*: [VirtualGatewayLogging](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylogging.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Logging" } }, "required": [ @@ -11029,10 +13588,14 @@ "additionalProperties": false, "properties": { "SubjectAlternativeNames": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.SubjectAlternativeNames" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.SubjectAlternativeNames", + "markdownDescription": "A reference to an object that represents the SANs for a virtual gateway's listener's Transport Layer Security \\(TLS\\) validation context\\. \n*Required*: No \n*Type*: [SubjectAlternativeNames](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-subjectalternativenames.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubjectAlternativeNames" }, "Trust": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextTrust" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextTrust", + "markdownDescription": "A reference to where to retrieve the trust chain when validating a peer\u2019s Transport Layer Security \\(TLS\\) certificate\\. \n*Required*: Yes \n*Type*: [VirtualGatewayTlsValidationContextTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontexttrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Trust" } }, "required": [ @@ -11047,6 +13610,8 @@ "items": { "type": "string" }, + "markdownDescription": "One or more ACM Amazon Resource Name \\(ARN\\)s\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateAuthorityArns", "type": "array" } }, @@ -11059,6 +13624,8 @@ "additionalProperties": false, "properties": { "CertificateChain": { + "markdownDescription": "The certificate trust chain for a certificate stored on the file system of the virtual node that the proxy is running on\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateChain", "type": "string" } }, @@ -11071,6 +13638,8 @@ "additionalProperties": false, "properties": { "SecretName": { + "markdownDescription": "A reference to an object that represents the name of the secret for a virtual gateway's Transport Layer Security \\(TLS\\) Secret Discovery Service validation context trust\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretName", "type": "string" } }, @@ -11083,13 +13652,19 @@ "additionalProperties": false, "properties": { "ACM": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextAcmTrust" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextAcmTrust", + "markdownDescription": "A reference to an object that represents a Transport Layer Security \\(TLS\\) validation context trust for an AWS Certificate Manager certificate\\. \n*Required*: No \n*Type*: [VirtualGatewayTlsValidationContextAcmTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextacmtrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ACM" }, "File": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextFileTrust" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextFileTrust", + "markdownDescription": "An object that represents a Transport Layer Security \\(TLS\\) validation context trust for a local file\\. \n*Required*: No \n*Type*: [VirtualGatewayTlsValidationContextFileTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextfiletrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "File" }, "SDS": { - "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextSdsTrust" + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextSdsTrust", + "markdownDescription": "A reference to an object that represents a virtual gateway's Transport Layer Security \\(TLS\\) Secret Discovery Service validation context trust\\. \n*Required*: No \n*Type*: [VirtualGatewayTlsValidationContextSdsTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextsdstrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SDS" } }, "type": "object" @@ -11130,21 +13705,31 @@ "additionalProperties": false, "properties": { "MeshName": { + "markdownDescription": "The name of the service mesh to create the virtual node in\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshName", "type": "string" }, "MeshOwner": { + "markdownDescription": "The AWS IAM account ID of the service mesh owner\\. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh\\. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshOwner", "type": "string" }, "Spec": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeSpec" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeSpec", + "markdownDescription": "The virtual node specification to apply\\. \n*Required*: Yes \n*Type*: [VirtualNodeSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodespec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Spec" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Optional metadata that you can apply to the virtual node to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VirtualNodeName": { + "markdownDescription": "The name to use for the virtual node\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VirtualNodeName", "type": "string" } }, @@ -11179,7 +13764,9 @@ "additionalProperties": false, "properties": { "File": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.FileAccessLog" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.FileAccessLog", + "markdownDescription": "The file object to send virtual node access logs to\\. \n*Required*: No \n*Type*: [FileAccessLog](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-fileaccesslog.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "File" } }, "type": "object" @@ -11188,9 +13775,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The name of an AWS Cloud Map service instance attribute key\\. Any AWS Cloud Map service instance that contains the specified key and value is returned\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9!-~]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The value of an AWS Cloud Map service instance attribute key\\. Any AWS Cloud Map service instance that contains the specified key and value is returned\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `^([a-zA-Z0-9!-~][ a-zA-Z0-9!-~]*){0,1}[a-zA-Z0-9!-~]{0,1}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -11207,15 +13798,21 @@ "items": { "$ref": "#/definitions/AWS::AppMesh::VirtualNode.AwsCloudMapInstanceAttribute" }, + "markdownDescription": "A string map that contains attributes with values that you can use to filter instances by any custom attribute that you specified when you registered the instance\\. Only instances that match all of the specified key/value pairs will be returned\\. \n*Required*: No \n*Type*: List of [AwsCloudMapInstanceAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-awscloudmapinstanceattribute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attributes", "type": "array" }, "IpPreference": { "type": "string" }, "NamespaceName": { + "markdownDescription": "The name of the AWS Cloud Map namespace to use\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NamespaceName", "type": "string" }, "ServiceName": { + "markdownDescription": "The name of the AWS Cloud Map service to use\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceName", "type": "string" } }, @@ -11229,7 +13826,9 @@ "additionalProperties": false, "properties": { "VirtualService": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualServiceBackend" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualServiceBackend", + "markdownDescription": "Specifies a virtual service to use as a backend\\. \n*Required*: No \n*Type*: [VirtualServiceBackend](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualservicebackend.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualService" } }, "type": "object" @@ -11238,7 +13837,9 @@ "additionalProperties": false, "properties": { "ClientPolicy": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ClientPolicy" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ClientPolicy", + "markdownDescription": "A reference to an object that represents a client policy\\. \n*Required*: No \n*Type*: [ClientPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clientpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientPolicy" } }, "type": "object" @@ -11247,7 +13848,9 @@ "additionalProperties": false, "properties": { "TLS": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ClientPolicyTls" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ClientPolicyTls", + "markdownDescription": "A reference to an object that represents a Transport Layer Security \\(TLS\\) client policy\\. \n*Required*: No \n*Type*: [ClientPolicyTls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clientpolicytls.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TLS" } }, "type": "object" @@ -11256,19 +13859,27 @@ "additionalProperties": false, "properties": { "Certificate": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ClientTlsCertificate" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ClientTlsCertificate", + "markdownDescription": "A reference to an object that represents a client's TLS certificate\\. \n*Required*: No \n*Type*: [ClientTlsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clienttlscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate" }, "Enforce": { + "markdownDescription": "Whether the policy is enforced\\. The default is `True`, if a value isn't specified\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enforce", "type": "boolean" }, "Ports": { "items": { "type": "number" }, + "markdownDescription": "One or more ports that the policy is enforced for\\. \n*Required*: No \n*Type*: List of Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ports", "type": "array" }, "Validation": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContext" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContext", + "markdownDescription": "A reference to an object that represents a TLS validation context\\. \n*Required*: Yes \n*Type*: [TlsValidationContext](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontext.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Validation" } }, "required": [ @@ -11280,10 +13891,14 @@ "additionalProperties": false, "properties": { "File": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsFileCertificate" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsFileCertificate", + "markdownDescription": "An object that represents a local file certificate\\. The certificate must meet specific requirements and you must have proxy authorization enabled\\. For more information, see [Transport Layer Security \\(TLS\\)](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html)\\. \n*Required*: No \n*Type*: [ListenerTlsFileCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsfilecertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "File" }, "SDS": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsSdsCertificate" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsSdsCertificate", + "markdownDescription": "A reference to an object that represents a client's TLS Secret Discovery Service certificate\\. \n*Required*: No \n*Type*: [ListenerTlsSdsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlssdscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SDS" } }, "type": "object" @@ -11292,12 +13907,16 @@ "additionalProperties": false, "properties": { "Hostname": { + "markdownDescription": "Specifies the DNS service discovery hostname for the virtual node\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Hostname", "type": "string" }, "IpPreference": { "type": "string" }, "ResponseType": { + "markdownDescription": "Specifies the DNS response type for the virtual node\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ENDPOINTS | LOADBALANCER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseType", "type": "string" } }, @@ -11310,9 +13929,13 @@ "additionalProperties": false, "properties": { "Unit": { + "markdownDescription": "A unit of time\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ms | s` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", "type": "string" }, "Value": { + "markdownDescription": "A number of time units\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "number" } }, @@ -11329,6 +13952,8 @@ "$ref": "#/definitions/AWS::AppMesh::VirtualNode.LoggingFormat" }, "Path": { + "markdownDescription": "The file path to write access logs to\\. You can use `/dev/stdout` to send access logs to standard out and configure your Envoy container to use a log driver, such as `awslogs`, to export the access logs to a log storage service such as Amazon CloudWatch Logs\\. You can also specify a path in the Envoy container's file system to write the files to disk\\. \nThe Envoy process must have write permissions to the path that you specify here\\. Otherwise, Envoy fails to bootstrap properly\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", "type": "string" } }, @@ -11341,10 +13966,14 @@ "additionalProperties": false, "properties": { "Idle": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration", + "markdownDescription": "An object that represents an idle timeout\\. An idle timeout bounds the amount of time that a connection may be idle\\. The default value is none\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Idle" }, "PerRequest": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration", + "markdownDescription": "An object that represents a per request timeout\\. The default value is 15 seconds\\. If you set a higher timeout, then make sure that the higher value is set for each App Mesh resource in a conversation\\. For example, if a virtual node backend uses a virtual router provider to route to another virtual node, then the timeout should be greater than 15 seconds for the source and destination virtual node and the route\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PerRequest" } }, "type": "object" @@ -11353,24 +13982,38 @@ "additionalProperties": false, "properties": { "HealthyThreshold": { + "markdownDescription": "The number of consecutive successful health checks that must occur before declaring listener healthy\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthyThreshold", "type": "number" }, "IntervalMillis": { + "markdownDescription": "The time period in milliseconds between each health check execution\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalMillis", "type": "number" }, "Path": { + "markdownDescription": "The destination path for the health check request\\. This value is only used if the specified protocol is HTTP or HTTP/2\\. For any other protocol, this value is ignored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", "type": "string" }, "Port": { + "markdownDescription": "The destination port for the health check request\\. This port must match the port defined in the [PortMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html#cfn-appmesh-virtualnode-listener-portmapping) for the listener\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" }, "Protocol": { + "markdownDescription": "The protocol for the health check request\\. If you specify `grpc`, then your service must conform to the [GRPC Health Checking Protocol](https://github.com/grpc/grpc/blob/master/doc/health-checking.md)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `grpc | http | http2 | tcp` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "string" }, "TimeoutMillis": { + "markdownDescription": "The amount of time to wait when receiving a response from the health check, in milliseconds\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutMillis", "type": "number" }, "UnhealthyThreshold": { + "markdownDescription": "The number of consecutive failed health checks that must occur before declaring a virtual node unhealthy\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnhealthyThreshold", "type": "number" } }, @@ -11387,10 +14030,14 @@ "additionalProperties": false, "properties": { "Idle": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration", + "markdownDescription": "An object that represents an idle timeout\\. An idle timeout bounds the amount of time that a connection may be idle\\. The default value is none\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Idle" }, "PerRequest": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration", + "markdownDescription": "An object that represents a per request timeout\\. The default value is 15 seconds\\. If you set a higher timeout, then make sure that the higher value is set for each App Mesh resource in a conversation\\. For example, if a virtual node backend uses a virtual router provider to route to another virtual node, then the timeout should be greater than 15 seconds for the source and destination virtual node and the route\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PerRequest" } }, "type": "object" @@ -11415,22 +14062,34 @@ "additionalProperties": false, "properties": { "ConnectionPool": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeConnectionPool" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeConnectionPool", + "markdownDescription": "The connection pool information for the listener\\. \n*Required*: No \n*Type*: [VirtualNodeConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodeconnectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionPool" }, "HealthCheck": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.HealthCheck" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.HealthCheck", + "markdownDescription": "The health check information for the listener\\. \n*Required*: No \n*Type*: [HealthCheck](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-healthcheck.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheck" }, "OutlierDetection": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.OutlierDetection" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.OutlierDetection", + "markdownDescription": "The outlier detection information for the listener\\. \n*Required*: No \n*Type*: [OutlierDetection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-outlierdetection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutlierDetection" }, "PortMapping": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.PortMapping" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.PortMapping", + "markdownDescription": "The port mapping information for the listener\\. \n*Required*: Yes \n*Type*: [PortMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-portmapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortMapping" }, "TLS": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTls" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTls", + "markdownDescription": "A reference to an object that represents the Transport Layer Security \\(TLS\\) properties for a listener\\. \n*Required*: No \n*Type*: [ListenerTls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertls.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TLS" }, "Timeout": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTimeout" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTimeout", + "markdownDescription": "An object that represents timeouts for different protocols\\. \n*Required*: No \n*Type*: [ListenerTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout" } }, "required": [ @@ -11442,16 +14101,24 @@ "additionalProperties": false, "properties": { "GRPC": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.GrpcTimeout" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.GrpcTimeout", + "markdownDescription": "An object that represents types of timeouts\\. \n*Required*: No \n*Type*: [GrpcTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-grpctimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GRPC" }, "HTTP": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.HttpTimeout" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.HttpTimeout", + "markdownDescription": "An object that represents types of timeouts\\. \n*Required*: No \n*Type*: [HttpTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-httptimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTP" }, "HTTP2": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.HttpTimeout" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.HttpTimeout", + "markdownDescription": "An object that represents types of timeouts\\. \n*Required*: No \n*Type*: [HttpTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-httptimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTP2" }, "TCP": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TcpTimeout" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TcpTimeout", + "markdownDescription": "An object that represents types of timeouts\\. \n*Required*: No \n*Type*: [TcpTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tcptimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TCP" } }, "type": "object" @@ -11460,13 +14127,19 @@ "additionalProperties": false, "properties": { "Certificate": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsCertificate" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsCertificate", + "markdownDescription": "A reference to an object that represents a listener's Transport Layer Security \\(TLS\\) certificate\\. \n*Required*: Yes \n*Type*: [ListenerTlsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate" }, "Mode": { + "markdownDescription": "Specify one of the following modes\\. \n+ ****STRICT \u2013 Listener only accepts connections with TLS enabled\\. \n+ ****PERMISSIVE \u2013 Listener accepts connections with or without TLS enabled\\.\n+ ****DISABLED \u2013 Listener only accepts connections without TLS\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | PERMISSIVE | STRICT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", "type": "string" }, "Validation": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsValidationContext" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsValidationContext", + "markdownDescription": "A reference to an object that represents a listener's Transport Layer Security \\(TLS\\) validation context\\. \n*Required*: No \n*Type*: [ListenerTlsValidationContext](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsvalidationcontext.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Validation" } }, "required": [ @@ -11479,6 +14152,8 @@ "additionalProperties": false, "properties": { "CertificateArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the certificate\\. The certificate must meet specific requirements and you must have proxy authorization enabled\\. For more information, see [Transport Layer Security \\(TLS\\)](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#virtual-node-tls-prerequisites)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateArn", "type": "string" } }, @@ -11491,13 +14166,19 @@ "additionalProperties": false, "properties": { "ACM": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsAcmCertificate" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsAcmCertificate", + "markdownDescription": "A reference to an object that represents an AWS Certificate Manager certificate\\. \n*Required*: No \n*Type*: [ListenerTlsAcmCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsacmcertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ACM" }, "File": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsFileCertificate" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsFileCertificate", + "markdownDescription": "A reference to an object that represents a local file certificate\\. \n*Required*: No \n*Type*: [ListenerTlsFileCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsfilecertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "File" }, "SDS": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsSdsCertificate" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsSdsCertificate", + "markdownDescription": "A reference to an object that represents a listener's Secret Discovery Service certificate\\. \n*Required*: No \n*Type*: [ListenerTlsSdsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlssdscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SDS" } }, "type": "object" @@ -11506,9 +14187,13 @@ "additionalProperties": false, "properties": { "CertificateChain": { + "markdownDescription": "The certificate chain for the certificate\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateChain", "type": "string" }, "PrivateKey": { + "markdownDescription": "The private key for a certificate stored on the file system of the virtual node that the proxy is running on\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateKey", "type": "string" } }, @@ -11522,6 +14207,8 @@ "additionalProperties": false, "properties": { "SecretName": { + "markdownDescription": "A reference to an object that represents the name of the secret requested from the Secret Discovery Service provider representing Transport Layer Security \\(TLS\\) materials like a certificate or certificate chain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretName", "type": "string" } }, @@ -11534,10 +14221,14 @@ "additionalProperties": false, "properties": { "SubjectAlternativeNames": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.SubjectAlternativeNames" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.SubjectAlternativeNames", + "markdownDescription": "A reference to an object that represents the SANs for a listener's Transport Layer Security \\(TLS\\) validation context\\. \n*Required*: No \n*Type*: [SubjectAlternativeNames](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-subjectalternativenames.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubjectAlternativeNames" }, "Trust": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsValidationContextTrust" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsValidationContextTrust", + "markdownDescription": "A reference to where to retrieve the trust chain when validating a peer\u2019s Transport Layer Security \\(TLS\\) certificate\\. \n*Required*: Yes \n*Type*: [ListenerTlsValidationContextTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsvalidationcontexttrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Trust" } }, "required": [ @@ -11549,10 +14240,14 @@ "additionalProperties": false, "properties": { "File": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextFileTrust" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextFileTrust", + "markdownDescription": "An object that represents a Transport Layer Security \\(TLS\\) validation context trust for a local file\\. \n*Required*: No \n*Type*: [TlsValidationContextFileTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextfiletrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "File" }, "SDS": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextSdsTrust" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextSdsTrust", + "markdownDescription": "A reference to an object that represents a listener's Transport Layer Security \\(TLS\\) Secret Discovery Service validation context trust\\. \n*Required*: No \n*Type*: [TlsValidationContextSdsTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextsdstrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SDS" } }, "type": "object" @@ -11561,7 +14256,9 @@ "additionalProperties": false, "properties": { "AccessLog": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.AccessLog" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.AccessLog", + "markdownDescription": "The access log configuration for a virtual node\\. \n*Required*: No \n*Type*: [AccessLog](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-accesslog.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessLog" } }, "type": "object" @@ -11585,15 +14282,23 @@ "additionalProperties": false, "properties": { "BaseEjectionDuration": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration", + "markdownDescription": "The base amount of time for which a host is ejected\\. \n*Required*: Yes \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaseEjectionDuration" }, "Interval": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration", + "markdownDescription": "The time interval between ejection sweep analysis\\. \n*Required*: Yes \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Interval" }, "MaxEjectionPercent": { + "markdownDescription": "Maximum percentage of hosts in load balancing pool for upstream service that can be ejected\\. Will eject at least one host regardless of the value\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxEjectionPercent", "type": "number" }, "MaxServerErrors": { + "markdownDescription": "Number of consecutive `5xx` errors required for ejection\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxServerErrors", "type": "number" } }, @@ -11609,9 +14314,13 @@ "additionalProperties": false, "properties": { "Port": { + "markdownDescription": "The port used for the port mapping\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" }, "Protocol": { + "markdownDescription": "The protocol used for the port mapping\\. Specify `http`, `http2`, `grpc`, or `tcp`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `grpc | http | http2 | tcp` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "string" } }, @@ -11625,10 +14334,14 @@ "additionalProperties": false, "properties": { "AWSCloudMap": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.AwsCloudMapServiceDiscovery" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.AwsCloudMapServiceDiscovery", + "markdownDescription": "Specifies any AWS Cloud Map information for the virtual node\\. \n*Required*: No \n*Type*: [AwsCloudMapServiceDiscovery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-awscloudmapservicediscovery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AWSCloudMap" }, "DNS": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.DnsServiceDiscovery" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.DnsServiceDiscovery", + "markdownDescription": "Specifies the DNS information for the virtual node\\. \n*Required*: No \n*Type*: [DnsServiceDiscovery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-dnsservicediscovery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DNS" } }, "type": "object" @@ -11640,6 +14353,8 @@ "items": { "type": "string" }, + "markdownDescription": "The values sent must match the specified values exactly\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", "type": "array" } }, @@ -11649,7 +14364,9 @@ "additionalProperties": false, "properties": { "Match": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.SubjectAlternativeNameMatchers" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.SubjectAlternativeNameMatchers", + "markdownDescription": "An object that represents the criteria for determining a SANs match\\. \n*Required*: Yes \n*Type*: [SubjectAlternativeNameMatchers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-subjectalternativenamematchers.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" } }, "required": [ @@ -11661,7 +14378,9 @@ "additionalProperties": false, "properties": { "Idle": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration", + "markdownDescription": "An object that represents an idle timeout\\. An idle timeout bounds the amount of time that a connection may be idle\\. The default value is none\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Idle" } }, "type": "object" @@ -11670,10 +14389,14 @@ "additionalProperties": false, "properties": { "SubjectAlternativeNames": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.SubjectAlternativeNames" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.SubjectAlternativeNames", + "markdownDescription": "A reference to an object that represents the SANs for a Transport Layer Security \\(TLS\\) validation context\\. \n*Required*: No \n*Type*: [SubjectAlternativeNames](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-subjectalternativenames.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubjectAlternativeNames" }, "Trust": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextTrust" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextTrust", + "markdownDescription": "A reference to where to retrieve the trust chain when validating a peer\u2019s Transport Layer Security \\(TLS\\) certificate\\. \n*Required*: Yes \n*Type*: [TlsValidationContextTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontexttrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Trust" } }, "required": [ @@ -11688,6 +14411,8 @@ "items": { "type": "string" }, + "markdownDescription": "One or more ACM Amazon Resource Name \\(ARN\\)s\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateAuthorityArns", "type": "array" } }, @@ -11700,6 +14425,8 @@ "additionalProperties": false, "properties": { "CertificateChain": { + "markdownDescription": "The certificate trust chain for a certificate stored on the file system of the virtual node that the proxy is running on\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateChain", "type": "string" } }, @@ -11712,6 +14439,8 @@ "additionalProperties": false, "properties": { "SecretName": { + "markdownDescription": "A reference to an object that represents the name of the secret for a Transport Layer Security \\(TLS\\) Secret Discovery Service validation context trust\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretName", "type": "string" } }, @@ -11724,13 +14453,19 @@ "additionalProperties": false, "properties": { "ACM": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextAcmTrust" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextAcmTrust", + "markdownDescription": "A reference to an object that represents a Transport Layer Security \\(TLS\\) validation context trust for an AWS Certificate Manager certificate\\. \n*Required*: No \n*Type*: [TlsValidationContextAcmTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextacmtrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ACM" }, "File": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextFileTrust" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextFileTrust", + "markdownDescription": "An object that represents a Transport Layer Security \\(TLS\\) validation context trust for a local file\\. \n*Required*: No \n*Type*: [TlsValidationContextFileTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextfiletrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "File" }, "SDS": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextSdsTrust" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextSdsTrust", + "markdownDescription": "A reference to an object that represents a Transport Layer Security \\(TLS\\) Secret Discovery Service validation context trust\\. \n*Required*: No \n*Type*: [TlsValidationContextSdsTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextsdstrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SDS" } }, "type": "object" @@ -11739,16 +14474,24 @@ "additionalProperties": false, "properties": { "GRPC": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeGrpcConnectionPool" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeGrpcConnectionPool", + "markdownDescription": "An object that represents a type of connection pool\\. \n*Required*: No \n*Type*: [VirtualNodeGrpcConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodegrpcconnectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GRPC" }, "HTTP": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeHttpConnectionPool" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeHttpConnectionPool", + "markdownDescription": "An object that represents a type of connection pool\\. \n*Required*: No \n*Type*: [VirtualNodeHttpConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodehttpconnectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTP" }, "HTTP2": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeHttp2ConnectionPool" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeHttp2ConnectionPool", + "markdownDescription": "An object that represents a type of connection pool\\. \n*Required*: No \n*Type*: [VirtualNodeHttp2ConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodehttp2connectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTP2" }, "TCP": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeTcpConnectionPool" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeTcpConnectionPool", + "markdownDescription": "An object that represents a type of connection pool\\. \n*Required*: No \n*Type*: [VirtualNodeTcpConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodetcpconnectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TCP" } }, "type": "object" @@ -11757,6 +14500,8 @@ "additionalProperties": false, "properties": { "MaxRequests": { + "markdownDescription": "Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxRequests", "type": "number" } }, @@ -11769,6 +14514,8 @@ "additionalProperties": false, "properties": { "MaxRequests": { + "markdownDescription": "Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxRequests", "type": "number" } }, @@ -11781,9 +14528,13 @@ "additionalProperties": false, "properties": { "MaxConnections": { + "markdownDescription": "Maximum number of outbound TCP connections Envoy can establish concurrently with all hosts in upstream cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxConnections", "type": "number" }, "MaxPendingRequests": { + "markdownDescription": "Number of overflowing requests after `max_connections` Envoy will queue to upstream cluster\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxPendingRequests", "type": "number" } }, @@ -11796,25 +14547,35 @@ "additionalProperties": false, "properties": { "BackendDefaults": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.BackendDefaults" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.BackendDefaults", + "markdownDescription": "A reference to an object that represents the defaults for backends\\. \n*Required*: No \n*Type*: [BackendDefaults](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-backenddefaults.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackendDefaults" }, "Backends": { "items": { "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Backend" }, + "markdownDescription": "The backends that the virtual node is expected to send outbound traffic to\\. \n*Required*: No \n*Type*: List of [Backend](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-backend.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Backends", "type": "array" }, "Listeners": { "items": { "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Listener" }, + "markdownDescription": "The listener that the virtual node is expected to receive inbound traffic from\\. You can specify one listener\\. \n*Required*: No \n*Type*: List of [Listener](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Listeners", "type": "array" }, "Logging": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Logging" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Logging", + "markdownDescription": "The inbound and outbound access logging information for the virtual node\\. \n*Required*: No \n*Type*: [Logging](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-logging.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Logging" }, "ServiceDiscovery": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ServiceDiscovery" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ServiceDiscovery", + "markdownDescription": "The service discovery information for the virtual node\\. If your virtual node does not expect ingress traffic, you can omit this parameter\\. If you specify a `listener`, then you must specify service discovery information\\. \n*Required*: No \n*Type*: [ServiceDiscovery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-servicediscovery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceDiscovery" } }, "type": "object" @@ -11823,6 +14584,8 @@ "additionalProperties": false, "properties": { "MaxConnections": { + "markdownDescription": "Maximum number of outbound TCP connections Envoy can establish concurrently with all hosts in upstream cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxConnections", "type": "number" } }, @@ -11835,9 +14598,13 @@ "additionalProperties": false, "properties": { "ClientPolicy": { - "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ClientPolicy" + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ClientPolicy", + "markdownDescription": "A reference to an object that represents the client policy for a backend\\. \n*Required*: No \n*Type*: [ClientPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clientpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientPolicy" }, "VirtualServiceName": { + "markdownDescription": "The name of the virtual service that is acting as a virtual node backend\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualServiceName", "type": "string" } }, @@ -11882,21 +14649,31 @@ "additionalProperties": false, "properties": { "MeshName": { + "markdownDescription": "The name of the service mesh to create the virtual router in\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshName", "type": "string" }, "MeshOwner": { + "markdownDescription": "The AWS IAM account ID of the service mesh owner\\. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh\\. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshOwner", "type": "string" }, "Spec": { - "$ref": "#/definitions/AWS::AppMesh::VirtualRouter.VirtualRouterSpec" + "$ref": "#/definitions/AWS::AppMesh::VirtualRouter.VirtualRouterSpec", + "markdownDescription": "The virtual router specification to apply\\. \n*Required*: Yes \n*Type*: [VirtualRouterSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-virtualrouterspec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Spec" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Optional metadata that you can apply to the virtual router to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VirtualRouterName": { + "markdownDescription": "The name to use for the virtual router\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VirtualRouterName", "type": "string" } }, @@ -11931,9 +14708,13 @@ "additionalProperties": false, "properties": { "Port": { + "markdownDescription": "The port used for the port mapping\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" }, "Protocol": { + "markdownDescription": "The protocol used for the port mapping\\. Specify one protocol\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `grpc | http | http2 | tcp` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "string" } }, @@ -11947,7 +14728,9 @@ "additionalProperties": false, "properties": { "PortMapping": { - "$ref": "#/definitions/AWS::AppMesh::VirtualRouter.PortMapping" + "$ref": "#/definitions/AWS::AppMesh::VirtualRouter.PortMapping", + "markdownDescription": "The port mapping information for the listener\\. \n*Required*: Yes \n*Type*: [PortMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-portmapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortMapping" } }, "required": [ @@ -11962,6 +14745,8 @@ "items": { "$ref": "#/definitions/AWS::AppMesh::VirtualRouter.VirtualRouterListener" }, + "markdownDescription": "The listeners that the virtual router is expected to receive inbound traffic from\\. You can specify one listener\\. \n*Required*: Yes \n*Type*: List of [VirtualRouterListener](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-virtualrouterlistener.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Listeners", "type": "array" } }, @@ -12006,21 +14791,31 @@ "additionalProperties": false, "properties": { "MeshName": { + "markdownDescription": "The name of the service mesh to create the virtual service in\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshName", "type": "string" }, "MeshOwner": { + "markdownDescription": "The AWS IAM account ID of the service mesh owner\\. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh\\. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshOwner", "type": "string" }, "Spec": { - "$ref": "#/definitions/AWS::AppMesh::VirtualService.VirtualServiceSpec" + "$ref": "#/definitions/AWS::AppMesh::VirtualService.VirtualServiceSpec", + "markdownDescription": "The virtual service specification to apply\\. \n*Required*: Yes \n*Type*: [VirtualServiceSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualservicespec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Spec" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Optional metadata that you can apply to the virtual service to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VirtualServiceName": { + "markdownDescription": "The name to use for the virtual service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VirtualServiceName", "type": "string" } }, @@ -12056,6 +14851,8 @@ "additionalProperties": false, "properties": { "VirtualNodeName": { + "markdownDescription": "The name of the virtual node that is acting as a service provider\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualNodeName", "type": "string" } }, @@ -12068,6 +14865,8 @@ "additionalProperties": false, "properties": { "VirtualRouterName": { + "markdownDescription": "The name of the virtual router that is acting as a service provider\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualRouterName", "type": "string" } }, @@ -12080,10 +14879,14 @@ "additionalProperties": false, "properties": { "VirtualNode": { - "$ref": "#/definitions/AWS::AppMesh::VirtualService.VirtualNodeServiceProvider" + "$ref": "#/definitions/AWS::AppMesh::VirtualService.VirtualNodeServiceProvider", + "markdownDescription": "The virtual node associated with a virtual service\\. \n*Required*: No \n*Type*: [VirtualNodeServiceProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualnodeserviceprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualNode" }, "VirtualRouter": { - "$ref": "#/definitions/AWS::AppMesh::VirtualService.VirtualRouterServiceProvider" + "$ref": "#/definitions/AWS::AppMesh::VirtualService.VirtualRouterServiceProvider", + "markdownDescription": "The virtual router associated with a virtual service\\. \n*Required*: No \n*Type*: [VirtualRouterServiceProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualrouterserviceprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualRouter" } }, "type": "object" @@ -12092,7 +14895,9 @@ "additionalProperties": false, "properties": { "Provider": { - "$ref": "#/definitions/AWS::AppMesh::VirtualService.VirtualServiceProvider" + "$ref": "#/definitions/AWS::AppMesh::VirtualService.VirtualServiceProvider", + "markdownDescription": "The App Mesh object that is acting as the provider for a virtual service\\. You can specify a single virtual node or virtual router\\. \n*Required*: No \n*Type*: [VirtualServiceProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualserviceprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Provider" } }, "type": "object" @@ -12215,33 +15020,49 @@ "additionalProperties": false, "properties": { "AutoScalingConfigurationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an App Runner automatic scaling configuration resource that you want to associate with the App Runner service\\. If not provided, App Runner associates the latest revision of a default auto scaling configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1011` \n*Pattern*: `arn:aws(-[\\w]+)*:[a-z0-9-\\\\.]{0,63}:[a-z0-9-\\\\.]{0,63}:[0-9]{12}:(\\w|\\/|-){1,1011}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoScalingConfigurationArn", "type": "string" }, "EncryptionConfiguration": { - "$ref": "#/definitions/AWS::AppRunner::Service.EncryptionConfiguration" + "$ref": "#/definitions/AWS::AppRunner::Service.EncryptionConfiguration", + "markdownDescription": "An optional custom encryption key that App Runner uses to encrypt the copy of your source repository that it maintains and your service logs\\. By default, App Runner uses an AWS managed key\\. \n*Required*: No \n*Type*: [EncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-encryptionconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncryptionConfiguration" }, "HealthCheckConfiguration": { - "$ref": "#/definitions/AWS::AppRunner::Service.HealthCheckConfiguration" + "$ref": "#/definitions/AWS::AppRunner::Service.HealthCheckConfiguration", + "markdownDescription": "The settings for the health check that AWS App Runner performs to monitor the health of the App Runner service\\. \n*Required*: No \n*Type*: [HealthCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-healthcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckConfiguration" }, "InstanceConfiguration": { - "$ref": "#/definitions/AWS::AppRunner::Service.InstanceConfiguration" + "$ref": "#/definitions/AWS::AppRunner::Service.InstanceConfiguration", + "markdownDescription": "The runtime configuration of instances \\(scaling units\\) of the App Runner service\\. \n*Required*: No \n*Type*: [InstanceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-instanceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceConfiguration" }, "NetworkConfiguration": { - "$ref": "#/definitions/AWS::AppRunner::Service.NetworkConfiguration" + "$ref": "#/definitions/AWS::AppRunner::Service.NetworkConfiguration", + "markdownDescription": "Configuration settings related to network traffic of the web application that the App Runner service runs\\. \n*Required*: No \n*Type*: [NetworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-networkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkConfiguration" }, "ObservabilityConfiguration": { "$ref": "#/definitions/AWS::AppRunner::Service.ServiceObservabilityConfiguration" }, "ServiceName": { + "markdownDescription": "A name for the App Runner service\\. It must be unique across all the running App Runner services in your AWS account in the AWS Region\\. \nIf you don't specify a name, AWS CloudFormation generates a name for your Service\\. \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `40` \n*Pattern*: `[A-Za-z0-9][A-Za-z0-9-_]{3,39}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceName", "type": "string" }, "SourceConfiguration": { - "$ref": "#/definitions/AWS::AppRunner::Service.SourceConfiguration" + "$ref": "#/definitions/AWS::AppRunner::Service.SourceConfiguration", + "markdownDescription": "The source to deploy to the App Runner service\\. It can be a code or an image repository\\. \n*Required*: Yes \n*Type*: [SourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-sourceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceConfiguration" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An optional list of metadata items that you can associate with the App Runner service resource\\. A tag is a key\\-value pair\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -12275,9 +15096,13 @@ "additionalProperties": false, "properties": { "AccessRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that grants the App Runner service access to a source repository\\. It's required for ECR image repositories \\(but not for ECR Public repositories\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `29` \n*Maximum*: `1024` \n*Pattern*: `arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):iam::[0-9]{12}:(role|role\\/service-role)\\/[\\w+=,.@\\-/]{1,1000}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessRoleArn", "type": "string" }, "ConnectionArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the App Runner connection that enables the App Runner service to connect to a source repository\\. It's required for GitHub code repositories\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1011` \n*Pattern*: `arn:aws(-[\\w]+)*:[a-z0-9-\\\\.]{0,63}:[a-z0-9-\\\\.]{0,63}:[0-9]{12}:(\\w|\\/|-){1,1011}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionArn", "type": "string" } }, @@ -12287,9 +15112,13 @@ "additionalProperties": false, "properties": { "CodeConfigurationValues": { - "$ref": "#/definitions/AWS::AppRunner::Service.CodeConfigurationValues" + "$ref": "#/definitions/AWS::AppRunner::Service.CodeConfigurationValues", + "markdownDescription": "The basic configuration for building and running the App Runner service\\. Use it to quickly launch an App Runner service without providing a `apprunner.yaml` file in the source code repository \\(or ignoring the file if it exists\\)\\. \n*Required*: No \n*Type*: [CodeConfigurationValues](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-codeconfigurationvalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodeConfigurationValues" }, "ConfigurationSource": { + "markdownDescription": "The source of the App Runner configuration\\. Values are interpreted as follows: \n+ `REPOSITORY` \u2013 App Runner reads configuration values from the `apprunner.yaml` file in the source code repository and ignores `CodeConfigurationValues`\\.\n+ `API` \u2013 App Runner uses configuration values provided in `CodeConfigurationValues` and ignores the `apprunner.yaml` file in the source code repository\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `API | REPOSITORY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfigurationSource", "type": "string" } }, @@ -12302,12 +15131,18 @@ "additionalProperties": false, "properties": { "BuildCommand": { + "markdownDescription": "The command App Runner runs to build your application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BuildCommand", "type": "string" }, "Port": { + "markdownDescription": "The port that your application listens to in the container\\. \nDefault: `8080` \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `51200` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "string" }, "Runtime": { + "markdownDescription": "A runtime environment type for building and running an App Runner service\\. It represents a programming language runtime\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CORRETTO_11 | CORRETTO_8 | NODEJS_12 | NODEJS_14 | PYTHON_3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Runtime", "type": "string" }, "RuntimeEnvironmentSecrets": { @@ -12320,9 +15155,13 @@ "items": { "$ref": "#/definitions/AWS::AppRunner::Service.KeyValuePair" }, + "markdownDescription": "The environment variables that are available to your running App Runner service\\. An array of key\\-value pairs\\. Keys with a prefix of `AWSAPPRUNNER` are reserved for system use and aren't valid\\. \n*Required*: No \n*Type*: List of [KeyValuePair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-keyvaluepair.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuntimeEnvironmentVariables", "type": "array" }, "StartCommand": { + "markdownDescription": "The command App Runner runs to start your application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartCommand", "type": "string" } }, @@ -12335,13 +15174,19 @@ "additionalProperties": false, "properties": { "CodeConfiguration": { - "$ref": "#/definitions/AWS::AppRunner::Service.CodeConfiguration" + "$ref": "#/definitions/AWS::AppRunner::Service.CodeConfiguration", + "markdownDescription": "Configuration for building and running the service from a source code repository\\. \n*Required*: No \n*Type*: [CodeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-codeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodeConfiguration" }, "RepositoryUrl": { + "markdownDescription": "The location of the repository that contains the source code\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `51200` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepositoryUrl", "type": "string" }, "SourceCodeVersion": { - "$ref": "#/definitions/AWS::AppRunner::Service.SourceCodeVersion" + "$ref": "#/definitions/AWS::AppRunner::Service.SourceCodeVersion", + "markdownDescription": "The version that should be used within the source code repository\\. \n*Required*: Yes \n*Type*: [SourceCodeVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-sourcecodeversion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceCodeVersion" } }, "required": [ @@ -12354,9 +15199,13 @@ "additionalProperties": false, "properties": { "EgressType": { + "markdownDescription": "The type of egress configuration\\. \nSet to `DEFAULT` for access to resources hosted on public networks\\. \nSet to `VPC` to associate your service to a custom VPC specified by `VpcConnectorArn`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DEFAULT | VPC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EgressType", "type": "string" }, "VpcConnectorArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the App Runner VPC connector that you want to associate with your App Runner service\\. Only valid when `EgressType = VPC`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1011` \n*Pattern*: `arn:aws(-[\\w]+)*:[a-z0-9-\\\\.]{0,63}:[a-z0-9-\\\\.]{0,63}:[0-9]{12}:(\\w|\\/|-){1,1011}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcConnectorArn", "type": "string" } }, @@ -12369,6 +15218,8 @@ "additionalProperties": false, "properties": { "KmsKey": { + "markdownDescription": "The ARN of the KMS key that's used for encryption\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `arn:aws(-[\\w]+)*:kms:[a-z\\-]+-[0-9]{1}:[0-9]{12}:key\\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKey", "type": "string" } }, @@ -12381,21 +15232,33 @@ "additionalProperties": false, "properties": { "HealthyThreshold": { + "markdownDescription": "The number of consecutive checks that must succeed before App Runner decides that the service is healthy\\. \nDefault: `1` \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthyThreshold", "type": "number" }, "Interval": { + "markdownDescription": "The time interval, in seconds, between health checks\\. \nDefault: `5` \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Interval", "type": "number" }, "Path": { + "markdownDescription": "The URL that health check requests are sent to\\. \n `Path` is only applicable when you set `Protocol` to `HTTP`\\. \nDefault: `\"/\"` \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", "type": "string" }, "Protocol": { + "markdownDescription": "The IP protocol that App Runner uses to perform health checks for your service\\. \nIf you set `Protocol` to `HTTP`, App Runner sends health check requests to the HTTP path specified by `Path`\\. \nDefault: `TCP` \n*Required*: No \n*Type*: String \n*Allowed values*: `HTTP | TCP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "string" }, "Timeout": { + "markdownDescription": "The time, in seconds, to wait for a health check response before deciding it failed\\. \nDefault: `2` \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout", "type": "number" }, "UnhealthyThreshold": { + "markdownDescription": "The number of consecutive checks that must fail before App Runner decides that the service is unhealthy\\. \nDefault: `5` \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnhealthyThreshold", "type": "number" } }, @@ -12405,6 +15268,8 @@ "additionalProperties": false, "properties": { "Port": { + "markdownDescription": "The port that your application listens to in the container\\. \nDefault: `8080` \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `51200` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "string" }, "RuntimeEnvironmentSecrets": { @@ -12417,9 +15282,13 @@ "items": { "$ref": "#/definitions/AWS::AppRunner::Service.KeyValuePair" }, + "markdownDescription": "Environment variables that are available to your running App Runner service\\. An array of key\\-value pairs\\. Keys with a prefix of `AWSAPPRUNNER` are reserved for system use and aren't valid\\. \n*Required*: No \n*Type*: List of [KeyValuePair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-keyvaluepair.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuntimeEnvironmentVariables", "type": "array" }, "StartCommand": { + "markdownDescription": "An optional command that App Runner runs to start the application in the source image\\. If specified, this command overrides the Docker image\u2019s default start command\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `51200` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartCommand", "type": "string" } }, @@ -12429,12 +15298,18 @@ "additionalProperties": false, "properties": { "ImageConfiguration": { - "$ref": "#/definitions/AWS::AppRunner::Service.ImageConfiguration" + "$ref": "#/definitions/AWS::AppRunner::Service.ImageConfiguration", + "markdownDescription": "Configuration for running the identified image\\. \n*Required*: No \n*Type*: [ImageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-imageconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageConfiguration" }, "ImageIdentifier": { + "markdownDescription": "The identifier of an image\\. \nFor an image in Amazon Elastic Container Registry \\(Amazon ECR\\), this is an image name\\. For the image name format, see [Pulling an image](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-pull-ecr-image.html) in the *Amazon ECR User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `([0-9]{12}.dkr.ecr.[a-z\\-]+-[0-9]{1}.amazonaws.com\\/((?:[a-z0-9]+(?:[._-][a-z0-9]+)*\\/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)(:([\\w\\d+\\-=._:\\/@])+|@([\\w\\d\\:]+))?)|(^public\\.ecr\\.aws\\/.+\\/((?:[a-z0-9]+(?:[._-][a-z0-9]+)*\\/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)(:([\\w\\d+\\-=._:\\/@])+|@([\\w\\d\\:]+))?)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageIdentifier", "type": "string" }, "ImageRepositoryType": { + "markdownDescription": "The type of the image repository\\. This reflects the repository provider and whether the repository is private or public\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ECR | ECR_PUBLIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageRepositoryType", "type": "string" } }, @@ -12460,12 +15335,18 @@ "additionalProperties": false, "properties": { "Cpu": { + "markdownDescription": "The number of CPU units reserved for each instance of your App Runner service\\. \nDefault: `1 vCPU` \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `6` \n*Pattern*: `1024|2048|(1|2) vCPU` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cpu", "type": "string" }, "InstanceRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an IAM role that provides permissions to your App Runner service\\. These are permissions that your code needs when it calls any AWS APIs\\. \n*Required*: No \n*Type*: String \n*Minimum*: `29` \n*Maximum*: `1024` \n*Pattern*: `arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):iam::[0-9]{12}:(role|role\\/service-role)\\/[\\w+=,.@\\-/]{1,1000}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceRoleArn", "type": "string" }, "Memory": { + "markdownDescription": "The amount of memory, in MB or GB, reserved for each instance of your App Runner service\\. \nDefault: `2 GB` \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `4` \n*Pattern*: `2048|3072|4096|(2|3|4) GB` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Memory", "type": "string" } }, @@ -12475,9 +15356,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The key name string to map to a value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "The value string to which the key name is mapped\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -12487,7 +15372,9 @@ "additionalProperties": false, "properties": { "EgressConfiguration": { - "$ref": "#/definitions/AWS::AppRunner::Service.EgressConfiguration" + "$ref": "#/definitions/AWS::AppRunner::Service.EgressConfiguration", + "markdownDescription": "Network configuration settings for outbound message traffic\\. \n*Required*: Yes \n*Type*: [EgressConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-egressconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EgressConfiguration" }, "IngressConfiguration": { "$ref": "#/definitions/AWS::AppRunner::Service.IngressConfiguration" @@ -12514,9 +15401,13 @@ "additionalProperties": false, "properties": { "Type": { + "markdownDescription": "The type of version identifier\\. \nFor a git\\-based repository, branches represent versions\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BRANCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" }, "Value": { + "markdownDescription": "A source code version\\. \nFor a git\\-based repository, a branch name maps to a specific version\\. App Runner uses the most recent commit to the branch\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `51200` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -12530,16 +15421,24 @@ "additionalProperties": false, "properties": { "AuthenticationConfiguration": { - "$ref": "#/definitions/AWS::AppRunner::Service.AuthenticationConfiguration" + "$ref": "#/definitions/AWS::AppRunner::Service.AuthenticationConfiguration", + "markdownDescription": "Describes the resources that are needed to authenticate access to some source repositories\\. \n*Required*: No \n*Type*: [AuthenticationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-authenticationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticationConfiguration" }, "AutoDeploymentsEnabled": { + "markdownDescription": "If `true`, continuous integration from the source repository is enabled for the App Runner service\\. Each repository change \\(including any source code commit or new image version\\) starts a deployment\\. \nDefault: App Runner sets to `false` for a source image that uses an ECR Public repository or an ECR repository that's in an AWS account other than the one that the service is in\\. App Runner sets to `true` in all other cases \\(which currently include a source code repository or a source image using a same\\-account ECR repository\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoDeploymentsEnabled", "type": "boolean" }, "CodeRepository": { - "$ref": "#/definitions/AWS::AppRunner::Service.CodeRepository" + "$ref": "#/definitions/AWS::AppRunner::Service.CodeRepository", + "markdownDescription": "The description of a source code repository\\. \nYou must provide either this member or `ImageRepository` \\(but not both\\)\\. \n*Required*: No \n*Type*: [CodeRepository](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-coderepository.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodeRepository" }, "ImageRepository": { - "$ref": "#/definitions/AWS::AppRunner::Service.ImageRepository" + "$ref": "#/definitions/AWS::AppRunner::Service.ImageRepository", + "markdownDescription": "The description of a source image repository\\. \nYou must provide either this member or `CodeRepository` \\(but not both\\)\\. \n*Required*: No \n*Type*: [ImageRepository](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-imagerepository.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageRepository" } }, "type": "object" @@ -12583,21 +15482,29 @@ "items": { "type": "string" }, + "markdownDescription": "A list of IDs of security groups that App Runner should use for access to AWS resources under the specified subnets\\. If not specified, App Runner uses the default security group of the Amazon VPC\\. The default security group allows all outbound traffic\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroups", "type": "array" }, "Subnets": { "items": { "type": "string" }, + "markdownDescription": "A list of IDs of subnets that App Runner should use when it associates your service with a custom Amazon VPC\\. Specify IDs of subnets of a single Amazon VPC\\. App Runner determines the Amazon VPC from the subnets you specify\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subnets", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of metadata items that you can associate with your VPC connector resource\\. A tag is a key\\-value pair\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" }, "VpcConnectorName": { + "markdownDescription": "A name for the VPC connector\\. \nIf you don't specify a name, AWS CloudFormation generates a name for your VPC connector\\. \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `40` \n*Pattern*: `[A-Za-z0-9][A-Za-z0-9\\-_]{3,39}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcConnectorName", "type": "string" } }, @@ -12757,24 +15664,36 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the app block\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "DisplayName": { + "markdownDescription": "The display name of the app block\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DisplayName", "type": "string" }, "Name": { + "markdownDescription": "The name of the app block\\. \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "SetupScriptDetails": { - "$ref": "#/definitions/AWS::AppStream::AppBlock.ScriptDetails" + "$ref": "#/definitions/AWS::AppStream::AppBlock.ScriptDetails", + "markdownDescription": "The setup script details of the app block\\. \n*Required*: Yes \n*Type*: [ScriptDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-appblock-scriptdetails.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SetupScriptDetails" }, "SourceS3Location": { - "$ref": "#/definitions/AWS::AppStream::AppBlock.S3Location" + "$ref": "#/definitions/AWS::AppStream::AppBlock.S3Location", + "markdownDescription": "The source S3 location of the app block\\. \n*Required*: Yes \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-appblock-s3location.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceS3Location" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags of the app block\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -12810,9 +15729,13 @@ "additionalProperties": false, "properties": { "S3Bucket": { + "markdownDescription": "The S3 bucket of the app block\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Bucket", "type": "string" }, "S3Key": { + "markdownDescription": "The S3 key of the S3 object of the virtual hard disk\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Key", "type": "string" } }, @@ -12826,15 +15749,23 @@ "additionalProperties": false, "properties": { "ExecutableParameters": { + "markdownDescription": "The parameters used in the run path for the script\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExecutableParameters", "type": "string" }, "ExecutablePath": { + "markdownDescription": "The run path for the script\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExecutablePath", "type": "string" }, "ScriptS3Location": { - "$ref": "#/definitions/AWS::AppStream::AppBlock.S3Location" + "$ref": "#/definitions/AWS::AppStream::AppBlock.S3Location", + "markdownDescription": "The S3 object location of the script\\. \n*Required*: Yes \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-appblock-s3location.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScriptS3Location" }, "TimeoutInSeconds": { + "markdownDescription": "The run timeout, in seconds, for the script\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TimeoutInSeconds", "type": "number" } }, @@ -12881,51 +15812,75 @@ "additionalProperties": false, "properties": { "AppBlockArn": { + "markdownDescription": "The app block ARN with which the application should be associated\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppBlockArn", "type": "string" }, "AttributesToDelete": { "items": { "type": "string" }, + "markdownDescription": "A list of attributes to delete from an application\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributesToDelete", "type": "array" }, "Description": { + "markdownDescription": "The description of the application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DisplayName": { + "markdownDescription": "The display name of the application\\. This name is visible to users in the application catalog\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", "type": "string" }, "IconS3Location": { - "$ref": "#/definitions/AWS::AppStream::Application.S3Location" + "$ref": "#/definitions/AWS::AppStream::Application.S3Location", + "markdownDescription": "The icon S3 location of the application\\. \n*Required*: Yes \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-application-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IconS3Location" }, "InstanceFamilies": { "items": { "type": "string" }, + "markdownDescription": "The instance families the application supports\\. \n*Allowed Values*: `GENERAL_PURPOSE` \\| `GRAPHICS_G4` \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceFamilies", "type": "array" }, "LaunchParameters": { + "markdownDescription": "The launch parameters of the application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchParameters", "type": "string" }, "LaunchPath": { + "markdownDescription": "The launch path of the application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchPath", "type": "string" }, "Name": { + "markdownDescription": "The name of the application\\. This name is visible to users when a name is not specified in the DisplayName property\\. \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Platforms": { "items": { "type": "string" }, + "markdownDescription": "The platforms the application supports\\. \n*Allowed Values*: `WINDOWS_SERVER_2019` \\| `AMAZON_LINUX2` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Platforms", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags of the application\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "WorkingDirectory": { + "markdownDescription": "The working directory of the application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WorkingDirectory", "type": "string" } }, @@ -12964,9 +15919,13 @@ "additionalProperties": false, "properties": { "S3Bucket": { + "markdownDescription": "The S3 bucket of the S3 object\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Bucket", "type": "string" }, "S3Key": { + "markdownDescription": "The S3 key of the S3 object\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Key", "type": "string" } }, @@ -13012,12 +15971,18 @@ "additionalProperties": false, "properties": { "ApplicationIdentifier": { + "markdownDescription": "The identifier of the application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationIdentifier", "type": "string" }, "EntitlementName": { + "markdownDescription": "The name of the entitlement\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EntitlementName", "type": "string" }, "StackName": { + "markdownDescription": "The name of the stack\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StackName", "type": "string" } }, @@ -13085,9 +16050,13 @@ "additionalProperties": false, "properties": { "ApplicationArn": { + "markdownDescription": "The ARN of the application\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationArn", "type": "string" }, "FleetName": { + "markdownDescription": "The name of the fleet\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FleetName", "type": "string" } }, @@ -13157,16 +16126,22 @@ "$ref": "#/definitions/AWS::AppStream::DirectoryConfig.CertificateBasedAuthProperties" }, "DirectoryName": { + "markdownDescription": "The fully qualified name of the directory \\(for example, corp\\.example\\.com\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DirectoryName", "type": "string" }, "OrganizationalUnitDistinguishedNames": { "items": { "type": "string" }, + "markdownDescription": "The distinguished names of the organizational units for computer accounts\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrganizationalUnitDistinguishedNames", "type": "array" }, "ServiceAccountCredentials": { - "$ref": "#/definitions/AWS::AppStream::DirectoryConfig.ServiceAccountCredentials" + "$ref": "#/definitions/AWS::AppStream::DirectoryConfig.ServiceAccountCredentials", + "markdownDescription": "The credentials for the service account used by the streaming instance to connect to the directory\\. Do not use this parameter directly\\. Use `ServiceAccountCredentials` as an input parameter with `noEcho` as shown in the [Parameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html)\\. For best practices information, see [Do Not Embed Credentials in Your Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#creds)\\. \n*Required*: Yes \n*Type*: [ServiceAccountCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-directoryconfig-serviceaccountcredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceAccountCredentials" } }, "required": [ @@ -13213,9 +16188,13 @@ "additionalProperties": false, "properties": { "AccountName": { + "markdownDescription": "The user name of the account\\. This account must have the following privileges: create computer objects, join computers to the domain, and change/reset the password on descendant computer objects for the organizational units specified\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountName", "type": "string" }, "AccountPassword": { + "markdownDescription": "The password for the account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `127` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountPassword", "type": "string" } }, @@ -13261,21 +16240,31 @@ "additionalProperties": false, "properties": { "AppVisibility": { + "markdownDescription": "Specifies whether to entitle all apps or only selected apps\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL | ASSOCIATED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppVisibility", "type": "string" }, "Attributes": { "items": { "$ref": "#/definitions/AWS::AppStream::Entitlement.Attribute" }, + "markdownDescription": "The attributes of the entitlement\\. \n*Required*: Yes \n*Type*: List of [Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-entitlement-attribute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attributes", "type": "array" }, "Description": { + "markdownDescription": "The description of the entitlement\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name of the entitlement\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "StackName": { + "markdownDescription": "The name of the stack\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StackName", "type": "string" } }, @@ -13312,9 +16301,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "A supported AWS IAM SAML PrincipalTag attribute that is matched to a value when a user identity federates to an AppStream 2\\.0 SAML application\\. \nThe following are supported values: \n+ roles \n+ department \n+ organization \n+ groups \n+ title \n+ costCenter \n+ userType\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "A value that is matched to a supported SAML attribute name when a user identity federates to an AppStream 2\\.0 SAML application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -13360,73 +16353,113 @@ "additionalProperties": false, "properties": { "ComputeCapacity": { - "$ref": "#/definitions/AWS::AppStream::Fleet.ComputeCapacity" + "$ref": "#/definitions/AWS::AppStream::Fleet.ComputeCapacity", + "markdownDescription": "The desired capacity for the fleet\\. This is not allowed for Elastic fleets\\. \n*Required*: No \n*Type*: [ComputeCapacity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-fleet-computecapacity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputeCapacity" }, "Description": { + "markdownDescription": "The description to display\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DisconnectTimeoutInSeconds": { + "markdownDescription": "The amount of time that a streaming session remains active after users disconnect\\. If users try to reconnect to the streaming session after a disconnection or network interruption within this time interval, they are connected to their previous session\\. Otherwise, they are connected to a new session with a new streaming instance\\. \nSpecify a value between 60 and 360000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisconnectTimeoutInSeconds", "type": "number" }, "DisplayName": { + "markdownDescription": "The fleet name to display\\. \n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", "type": "string" }, "DomainJoinInfo": { - "$ref": "#/definitions/AWS::AppStream::Fleet.DomainJoinInfo" + "$ref": "#/definitions/AWS::AppStream::Fleet.DomainJoinInfo", + "markdownDescription": "The name of the directory and organizational unit \\(OU\\) to use to join the fleet to a Microsoft Active Directory domain\\. This is not allowed for Elastic fleets\\. \n*Required*: No \n*Type*: [DomainJoinInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-fleet-domainjoininfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainJoinInfo" }, "EnableDefaultInternetAccess": { + "markdownDescription": "Enables or disables default internet access for the fleet\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableDefaultInternetAccess", "type": "boolean" }, "FleetType": { + "markdownDescription": "The fleet type\\. \nALWAYS\\_ON \nProvides users with instant\\-on access to their apps\\. You are charged for all running instances in your fleet, even if no users are streaming apps\\. \nON\\_DEMAND \nProvide users with access to applications after they connect, which takes one to two minutes\\. You are charged for instance streaming when users are connected and a small hourly fee for instances that are not streaming apps\\. \nELASTIC \nThe pool of streaming instances is managed by Amazon AppStream 2\\.0\\. When a user selects their application or desktop to launch, they will start streaming after the app block has been downloaded and mounted to a streaming instance\\.\n*Allowed Values*: `ALWAYS_ON` \\| `ELASTIC` \\| `ON_DEMAND` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FleetType", "type": "string" }, "IamRoleArn": { + "markdownDescription": "The ARN of the IAM role that is applied to the fleet\\. To assume a role, the fleet instance calls the AWS Security Token Service `AssumeRole` API operation and passes the ARN of the role to use\\. The operation creates a new session with temporary credentials\\. AppStream 2\\.0 retrieves the temporary credentials and creates the **appstream\\_machine\\_role** credential profile on the instance\\. \nFor more information, see [Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2\\.0 Streaming Instances](https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html) in the *Amazon AppStream 2\\.0 Administration Guide*\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamRoleArn", "type": "string" }, "IdleDisconnectTimeoutInSeconds": { + "markdownDescription": "The amount of time that users can be idle \\(inactive\\) before they are disconnected from their streaming session and the `DisconnectTimeoutInSeconds` time interval begins\\. Users are notified before they are disconnected due to inactivity\\. If they try to reconnect to the streaming session before the time interval specified in `DisconnectTimeoutInSeconds` elapses, they are connected to their previous session\\. Users are considered idle when they stop providing keyboard or mouse input during their streaming session\\. File uploads and downloads, audio in, audio out, and pixels changing do not qualify as user activity\\. If users continue to be idle after the time interval in `IdleDisconnectTimeoutInSeconds` elapses, they are disconnected\\. \nTo prevent users from being disconnected due to inactivity, specify a value of 0\\. Otherwise, specify a value between 60 and 3600\\. \nIf you enable this feature, we recommend that you specify a value that corresponds exactly to a whole number of minutes \\(for example, 60, 120, and 180\\)\\. If you don't do this, the value is rounded to the nearest minute\\. For example, if you specify a value of 70, users are disconnected after 1 minute of inactivity\\. If you specify a value that is at the midpoint between two different minutes, the value is rounded up\\. For example, if you specify a value of 90, users are disconnected after 2 minutes of inactivity\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdleDisconnectTimeoutInSeconds", "type": "number" }, "ImageArn": { + "markdownDescription": "The ARN of the public, private, or shared image to use\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageArn", "type": "string" }, "ImageName": { + "markdownDescription": "The name of the image used to create the fleet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageName", "type": "string" }, "InstanceType": { + "markdownDescription": "The instance type to use when launching fleet instances\\. The following instance types are available for non\\-Elastic fleets: \n+ stream\\.standard\\.small\n+ stream\\.standard\\.medium\n+ stream\\.standard\\.large\n+ stream\\.compute\\.large\n+ stream\\.compute\\.xlarge\n+ stream\\.compute\\.2xlarge\n+ stream\\.compute\\.4xlarge\n+ stream\\.compute\\.8xlarge\n+ stream\\.memory\\.large\n+ stream\\.memory\\.xlarge\n+ stream\\.memory\\.2xlarge\n+ stream\\.memory\\.4xlarge\n+ stream\\.memory\\.8xlarge\n+ stream\\.memory\\.z1d\\.large\n+ stream\\.memory\\.z1d\\.xlarge\n+ stream\\.memory\\.z1d\\.2xlarge\n+ stream\\.memory\\.z1d\\.3xlarge\n+ stream\\.memory\\.z1d\\.6xlarge\n+ stream\\.memory\\.z1d\\.12xlarge\n+ stream\\.graphics\\-design\\.large\n+ stream\\.graphics\\-design\\.xlarge\n+ stream\\.graphics\\-design\\.2xlarge\n+ stream\\.graphics\\-design\\.4xlarge\n+ stream\\.graphics\\-desktop\\.2xlarge\n+ stream\\.graphics\\.g4dn\\.xlarge\n+ stream\\.graphics\\.g4dn\\.2xlarge\n+ stream\\.graphics\\.g4dn\\.4xlarge\n+ stream\\.graphics\\.g4dn\\.8xlarge\n+ stream\\.graphics\\.g4dn\\.12xlarge\n+ stream\\.graphics\\.g4dn\\.16xlarge\n+ stream\\.graphics\\-pro\\.4xlarge\n+ stream\\.graphics\\-pro\\.8xlarge\n+ stream\\.graphics\\-pro\\.16xlarge\nThe following instance types are available for Elastic fleets: \n+ stream\\.standard\\.small\n+ stream\\.standard\\.medium\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", "type": "string" }, "MaxConcurrentSessions": { + "markdownDescription": "The maximum number of concurrent sessions that can be run on an Elastic fleet\\. This setting is required for Elastic fleets, but is not used for other fleet types\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxConcurrentSessions", "type": "number" }, "MaxUserDurationInSeconds": { + "markdownDescription": "The maximum amount of time that a streaming session can remain active, in seconds\\. If users are still connected to a streaming instance five minutes before this limit is reached, they are prompted to save any open documents before being disconnected\\. After this time elapses, the instance is terminated and replaced by a new instance\\. \nSpecify a value between 600 and 360000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxUserDurationInSeconds", "type": "number" }, "Name": { + "markdownDescription": "A unique name for the fleet\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Platform": { + "markdownDescription": "The platform of the fleet\\. Platform is a required setting for Elastic fleets, and is not used for other fleet types\\. \n*Allowed Values*: `WINDOWS_SERVER_2019` \\| `AMAZON_LINUX2` \n*Required*: No \n*Type*: String \n*Allowed values*: `AMAZON_LINUX2 | WINDOWS | WINDOWS_SERVER_2016 | WINDOWS_SERVER_2019` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Platform", "type": "string" }, "SessionScriptS3Location": { "$ref": "#/definitions/AWS::AppStream::Fleet.S3Location" }, "StreamView": { + "markdownDescription": "The AppStream 2\\.0 view that is displayed to your users when they stream from the fleet\\. When `APP` is specified, only the windows of applications opened by users display\\. When `DESKTOP` is specified, the standard desktop that is provided by the operating system displays\\. \nThe default value is `APP`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `APP | DESKTOP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamView", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "UsbDeviceFilterStrings": { "items": { "type": "string" }, + "markdownDescription": "The USB device filter strings that specify which USB devices a user can redirect to the fleet streaming session, when using the Windows native client\\. This is allowed but not required for Elastic fleets\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UsbDeviceFilterStrings", "type": "array" }, "VpcConfig": { - "$ref": "#/definitions/AWS::AppStream::Fleet.VpcConfig" + "$ref": "#/definitions/AWS::AppStream::Fleet.VpcConfig", + "markdownDescription": "The VPC configuration for the fleet\\. This is required for Elastic fleets, but not required for other fleet types\\. \n*Required*: No \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-fleet-vpcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcConfig" } }, "required": [ @@ -13460,6 +16493,8 @@ "additionalProperties": false, "properties": { "DesiredInstances": { + "markdownDescription": "The desired number of streaming instances\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DesiredInstances", "type": "number" } }, @@ -13472,9 +16507,13 @@ "additionalProperties": false, "properties": { "DirectoryName": { + "markdownDescription": "The fully qualified name of the directory \\(for example, corp\\.example\\.com\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DirectoryName", "type": "string" }, "OrganizationalUnitDistinguishedName": { + "markdownDescription": "The distinguished name of the organizational unit for computer accounts\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrganizationalUnitDistinguishedName", "type": "string" } }, @@ -13503,12 +16542,16 @@ "items": { "type": "string" }, + "markdownDescription": "The identifiers of the security groups for the fleet\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "The identifiers of the subnets to which a network interface is attached from the fleet instance\\. Fleet instances can use one or two subnets\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" } }, @@ -13553,46 +16596,72 @@ "items": { "$ref": "#/definitions/AWS::AppStream::ImageBuilder.AccessEndpoint" }, + "markdownDescription": "The list of virtual private cloud \\(VPC\\) interface endpoint objects\\. Administrators can connect to the image builder only through the specified endpoints\\. \n*Required*: No \n*Type*: List of [AccessEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-imagebuilder-accessendpoint.html) \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessEndpoints", "type": "array" }, "AppstreamAgentVersion": { + "markdownDescription": "The version of the AppStream 2\\.0 agent to use for this image builder\\. To use the latest version of the AppStream 2\\.0 agent, specify \\[LATEST\\]\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppstreamAgentVersion", "type": "string" }, "Description": { + "markdownDescription": "The description to display\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DisplayName": { + "markdownDescription": "The image builder name to display\\. \n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", "type": "string" }, "DomainJoinInfo": { - "$ref": "#/definitions/AWS::AppStream::ImageBuilder.DomainJoinInfo" + "$ref": "#/definitions/AWS::AppStream::ImageBuilder.DomainJoinInfo", + "markdownDescription": "The name of the directory and organizational unit \\(OU\\) to use to join the image builder to a Microsoft Active Directory domain\\. \n*Required*: No \n*Type*: [DomainJoinInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-imagebuilder-domainjoininfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainJoinInfo" }, "EnableDefaultInternetAccess": { + "markdownDescription": "Enables or disables default internet access for the image builder\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableDefaultInternetAccess", "type": "boolean" }, "IamRoleArn": { + "markdownDescription": "The ARN of the IAM role that is applied to the image builder\\. To assume a role, the image builder calls the AWS Security Token Service `AssumeRole` API operation and passes the ARN of the role to use\\. The operation creates a new session with temporary credentials\\. AppStream 2\\.0 retrieves the temporary credentials and creates the **appstream\\_machine\\_role** credential profile on the instance\\. \nFor more information, see [Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2\\.0 Streaming Instances](https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html) in the *Amazon AppStream 2\\.0 Administration Guide*\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamRoleArn", "type": "string" }, "ImageArn": { + "markdownDescription": "The ARN of the public, private, or shared image to use\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageArn", "type": "string" }, "ImageName": { + "markdownDescription": "The name of the image used to create the image builder\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageName", "type": "string" }, "InstanceType": { + "markdownDescription": "The instance type to use when launching the image builder\\. The following instance types are available: \n+ stream\\.standard\\.small\n+ stream\\.standard\\.medium\n+ stream\\.standard\\.large\n+ stream\\.compute\\.large\n+ stream\\.compute\\.xlarge\n+ stream\\.compute\\.2xlarge\n+ stream\\.compute\\.4xlarge\n+ stream\\.compute\\.8xlarge\n+ stream\\.memory\\.large\n+ stream\\.memory\\.xlarge\n+ stream\\.memory\\.2xlarge\n+ stream\\.memory\\.4xlarge\n+ stream\\.memory\\.8xlarge\n+ stream\\.memory\\.z1d\\.large\n+ stream\\.memory\\.z1d\\.xlarge\n+ stream\\.memory\\.z1d\\.2xlarge\n+ stream\\.memory\\.z1d\\.3xlarge\n+ stream\\.memory\\.z1d\\.6xlarge\n+ stream\\.memory\\.z1d\\.12xlarge\n+ stream\\.graphics\\-design\\.large\n+ stream\\.graphics\\-design\\.xlarge\n+ stream\\.graphics\\-design\\.2xlarge\n+ stream\\.graphics\\-design\\.4xlarge\n+ stream\\.graphics\\-desktop\\.2xlarge\n+ stream\\.graphics\\.g4dn\\.xlarge\n+ stream\\.graphics\\.g4dn\\.2xlarge\n+ stream\\.graphics\\.g4dn\\.4xlarge\n+ stream\\.graphics\\.g4dn\\.8xlarge\n+ stream\\.graphics\\.g4dn\\.12xlarge\n+ stream\\.graphics\\.g4dn\\.16xlarge\n+ stream\\.graphics\\-pro\\.4xlarge\n+ stream\\.graphics\\-pro\\.8xlarge\n+ stream\\.graphics\\-pro\\.16xlarge\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", "type": "string" }, "Name": { + "markdownDescription": "A unique name for the image builder\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VpcConfig": { - "$ref": "#/definitions/AWS::AppStream::ImageBuilder.VpcConfig" + "$ref": "#/definitions/AWS::AppStream::ImageBuilder.VpcConfig", + "markdownDescription": "The VPC configuration for the image builder\\. You can specify only one subnet\\. \n*Required*: No \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-imagebuilder-vpcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcConfig" } }, "required": [ @@ -13626,9 +16695,13 @@ "additionalProperties": false, "properties": { "EndpointType": { + "markdownDescription": "The type of interface endpoint\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `STREAMING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointType", "type": "string" }, "VpceId": { + "markdownDescription": "The identifier \\(ID\\) of the VPC in which the interface endpoint is used\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpceId", "type": "string" } }, @@ -13642,9 +16715,13 @@ "additionalProperties": false, "properties": { "DirectoryName": { + "markdownDescription": "The fully qualified name of the directory \\(for example, corp\\.example\\.com\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DirectoryName", "type": "string" }, "OrganizationalUnitDistinguishedName": { + "markdownDescription": "The distinguished name of the organizational unit for computer accounts\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrganizationalUnitDistinguishedName", "type": "string" } }, @@ -13657,12 +16734,16 @@ "items": { "type": "string" }, + "markdownDescription": "The identifiers of the security groups for the image builder\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "The identifier of the subnet to which a network interface is attached from the image builder instance\\. An image builder instance can use one subnet\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" } }, @@ -13707,45 +16788,67 @@ "items": { "$ref": "#/definitions/AWS::AppStream::Stack.AccessEndpoint" }, + "markdownDescription": "The list of virtual private cloud \\(VPC\\) interface endpoint objects\\. Users of the stack can connect to AppStream 2\\.0 only through the specified endpoints\\. \n*Required*: No \n*Type*: List of [AccessEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-accessendpoint.html) \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessEndpoints", "type": "array" }, "ApplicationSettings": { - "$ref": "#/definitions/AWS::AppStream::Stack.ApplicationSettings" + "$ref": "#/definitions/AWS::AppStream::Stack.ApplicationSettings", + "markdownDescription": "The persistent application settings for users of the stack\\. When these settings are enabled, changes that users make to applications and Windows settings are automatically saved after each session and applied to the next session\\. \n*Required*: No \n*Type*: [ApplicationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-applicationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationSettings" }, "AttributesToDelete": { "items": { "type": "string" }, + "markdownDescription": "The stack attributes to delete\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributesToDelete", "type": "array" }, "DeleteStorageConnectors": { + "markdownDescription": "*This parameter has been deprecated\\.* \nDeletes the storage connectors currently enabled for the stack\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteStorageConnectors", "type": "boolean" }, "Description": { + "markdownDescription": "The description to display\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DisplayName": { + "markdownDescription": "The stack name to display\\. \n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", "type": "string" }, "EmbedHostDomains": { "items": { "type": "string" }, + "markdownDescription": "The domains where AppStream 2\\.0 streaming sessions can be embedded in an iframe\\. You must approve the domains that you want to host embedded AppStream 2\\.0 streaming sessions\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmbedHostDomains", "type": "array" }, "FeedbackURL": { + "markdownDescription": "The URL that users are redirected to after they click the Send Feedback link\\. If no URL is specified, no Send Feedback link is displayed\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FeedbackURL", "type": "string" }, "Name": { + "markdownDescription": "The name of the stack\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RedirectURL": { + "markdownDescription": "The URL that users are redirected to after their streaming session ends\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedirectURL", "type": "string" }, "StorageConnectors": { "items": { "$ref": "#/definitions/AWS::AppStream::Stack.StorageConnector" }, + "markdownDescription": "The storage connectors to enable\\. \n*Required*: No \n*Type*: List of [StorageConnector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-storageconnector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageConnectors", "type": "array" }, "StreamingExperienceSettings": { @@ -13755,12 +16858,16 @@ "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "UserSettings": { "items": { "$ref": "#/definitions/AWS::AppStream::Stack.UserSetting" }, + "markdownDescription": "The actions that are enabled or disabled for users during their streaming sessions\\. By default, these actions are enabled\\. \n*Required*: No \n*Type*: List of [UserSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-usersetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserSettings", "type": "array" } }, @@ -13790,9 +16897,13 @@ "additionalProperties": false, "properties": { "EndpointType": { + "markdownDescription": "The type of interface endpoint\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `STREAMING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointType", "type": "string" }, "VpceId": { + "markdownDescription": "The identifier \\(ID\\) of the VPC in which the interface endpoint is used\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpceId", "type": "string" } }, @@ -13806,9 +16917,13 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Enables or disables persistent application settings for users during their streaming sessions\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "SettingsGroup": { + "markdownDescription": "The path prefix for the S3 bucket where users\u2019 persistent application settings are stored\\. You can allow the same persistent application settings to be used across multiple stacks by specifying the same settings group for each stack\\. \n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SettingsGroup", "type": "string" } }, @@ -13821,15 +16936,21 @@ "additionalProperties": false, "properties": { "ConnectorType": { + "markdownDescription": "The type of storage connector\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GOOGLE_DRIVE | HOMEFOLDERS | ONE_DRIVE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorType", "type": "string" }, "Domains": { "items": { "type": "string" }, + "markdownDescription": "The names of the domains for the account\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Domains", "type": "array" }, "ResourceIdentifier": { + "markdownDescription": "The ARN of the storage connector\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceIdentifier", "type": "string" } }, @@ -13851,9 +16972,13 @@ "additionalProperties": false, "properties": { "Action": { + "markdownDescription": "The action that is enabled or disabled\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CLIPBOARD_COPY_FROM_LOCAL_DEVICE | CLIPBOARD_COPY_TO_LOCAL_DEVICE | DOMAIN_PASSWORD_SIGNIN | DOMAIN_SMART_CARD_SIGNIN | FILE_DOWNLOAD | FILE_UPLOAD | PRINTING_TO_LOCAL_DEVICE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", "type": "string" }, "Permission": { + "markdownDescription": "Indicates whether the action is enabled or disabled\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Permission", "type": "string" } }, @@ -13899,9 +17024,13 @@ "additionalProperties": false, "properties": { "FleetName": { + "markdownDescription": "The name of the fleet\\. \nTo associate a fleet with a stack, you must specify a dependency on the fleet resource\\. For more information, see [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FleetName", "type": "string" }, "StackName": { + "markdownDescription": "The name of the stack\\. \nTo associate a fleet with a stack, you must specify a dependency on the stack resource\\. For more information, see [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StackName", "type": "string" } }, @@ -13968,15 +17097,23 @@ "additionalProperties": false, "properties": { "AuthenticationType": { + "markdownDescription": "The authentication type for the user who is associated with the stack\\. You must specify USERPOOL\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `API | SAML | USERPOOL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthenticationType", "type": "string" }, "SendEmailNotification": { + "markdownDescription": "Specifies whether a welcome email is sent to a user after the user is created in the user pool\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SendEmailNotification", "type": "boolean" }, "StackName": { + "markdownDescription": "The name of the stack that is associated with the user\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StackName", "type": "string" }, "UserName": { + "markdownDescription": "The email address of the user who is associated with the stack\\. \nUsers' email addresses are case\\-sensitive\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserName", "type": "string" } }, @@ -14044,18 +17181,28 @@ "additionalProperties": false, "properties": { "AuthenticationType": { + "markdownDescription": "The authentication type for the user\\. You must specify USERPOOL\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `API | SAML | USERPOOL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthenticationType", "type": "string" }, "FirstName": { + "markdownDescription": "The first name, or given name, of the user\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `^[A-Za-z0-9_\\-\\s]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FirstName", "type": "string" }, "LastName": { + "markdownDescription": "The last name, or surname, of the user\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `^[A-Za-z0-9_\\-\\s]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LastName", "type": "string" }, "MessageAction": { + "markdownDescription": "The action to take for the welcome email that is sent to a user after the user is created in the user pool\\. If you specify SUPPRESS, no email is sent\\. If you specify RESEND, do not specify the first name or last name of the user\\. If the value is null, the email is sent\\. \nThe temporary password in the welcome email is valid for only 7 days\\. If users don\u2019t set their passwords within 7 days, you must send them a new welcome email\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `RESEND | SUPPRESS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MessageAction", "type": "string" }, "UserName": { + "markdownDescription": "The email address of the user\\. \nUsers' email addresses are case\\-sensitive\\. During login, if they specify an email address that doesn't use the same capitalization as the email address specified when their user pool account was created, a \"user does not exist\" error message displays\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserName", "type": "string" } }, @@ -14122,21 +17269,33 @@ "additionalProperties": false, "properties": { "ApiCachingBehavior": { + "markdownDescription": "Caching behavior\\. \n+ **FULL\\_REQUEST\\_CACHING**: All requests are fully cached\\.\n+ **PER\\_RESOLVER\\_CACHING**: Individual resolvers that you specify are cached\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiCachingBehavior", "type": "string" }, "ApiId": { + "markdownDescription": "The GraphQL API ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", "type": "string" }, "AtRestEncryptionEnabled": { + "markdownDescription": "At\\-rest encryption flag for cache\\. You cannot update this setting after creation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AtRestEncryptionEnabled", "type": "boolean" }, "TransitEncryptionEnabled": { + "markdownDescription": "Transit encryption flag when connecting to cache\\. You cannot update this setting after creation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitEncryptionEnabled", "type": "boolean" }, "Ttl": { + "markdownDescription": "TTL in seconds for cache entries\\. \nValid values are 1\u20133,600 seconds\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ttl", "type": "number" }, "Type": { + "markdownDescription": "The cache instance type\\. Valid values are \n+ `SMALL` \n+ `MEDIUM` \n+ `LARGE` \n+ `XLARGE` \n+ `LARGE_2X` \n+ `LARGE_4X` \n+ `LARGE_8X` \\(not available in all regions\\)\n+ `LARGE_12X` \nHistorically, instance types were identified by an EC2\\-style value\\. As of July 2020, this is deprecated, and the generic identifiers above should be used\\. \nThe following legacy instance types are available, but their use is discouraged: \n+ **T2\\_SMALL**: A t2\\.small instance type\\.\n+ **T2\\_MEDIUM**: A t2\\.medium instance type\\.\n+ **R4\\_LARGE**: A r4\\.large instance type\\.\n+ **R4\\_XLARGE**: A r4\\.xlarge instance type\\.\n+ **R4\\_2XLARGE**: A r4\\.2xlarge instance type\\.\n+ **R4\\_4XLARGE**: A r4\\.4xlarge instance type\\.\n+ **R4\\_8XLARGE**: A r4\\.8xlarge instance type\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -14205,15 +17364,23 @@ "additionalProperties": false, "properties": { "ApiId": { + "markdownDescription": "Unique AWS AppSync GraphQL API ID for this API key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", "type": "string" }, "ApiKeyId": { + "markdownDescription": "The API key ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKeyId", "type": "string" }, "Description": { + "markdownDescription": "Unique description of your API key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Expires": { + "markdownDescription": "The time after which the API key expires\\. The date is represented as seconds since the epoch, rounded down to the nearest hour\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Expires", "type": "number" } }, @@ -14279,39 +17446,61 @@ "additionalProperties": false, "properties": { "ApiId": { + "markdownDescription": "Unique AWS AppSync GraphQL API identifier where this data source will be created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", "type": "string" }, "Description": { + "markdownDescription": "The description of the data source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DynamoDBConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.DynamoDBConfig" + "$ref": "#/definitions/AWS::AppSync::DataSource.DynamoDBConfig", + "markdownDescription": "AWS Region and TableName for an Amazon DynamoDB table in your account\\. \n*Required*: No \n*Type*: [DynamoDBConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DynamoDBConfig" }, "ElasticsearchConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.ElasticsearchConfig" + "$ref": "#/definitions/AWS::AppSync::DataSource.ElasticsearchConfig", + "markdownDescription": "AWS Region and Endpoints for an Amazon OpenSearch Service domain in your account\\. \nAs of September 2021, Amazon Elasticsearch Service is Amazon OpenSearch Service\\. This property is deprecated\\. For new data sources, use *OpenSearchServiceConfig* to specify an OpenSearch Service data source\\. \n*Required*: No \n*Type*: [ElasticsearchConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-elasticsearchconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticsearchConfig" }, "EventBridgeConfig": { "$ref": "#/definitions/AWS::AppSync::DataSource.EventBridgeConfig" }, "HttpConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.HttpConfig" + "$ref": "#/definitions/AWS::AppSync::DataSource.HttpConfig", + "markdownDescription": "Endpoints for an HTTP data source\\. \n*Required*: No \n*Type*: [HttpConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-httpconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpConfig" }, "LambdaConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.LambdaConfig" + "$ref": "#/definitions/AWS::AppSync::DataSource.LambdaConfig", + "markdownDescription": "An ARN of a Lambda function in valid ARN format\\. This can be the ARN of a Lambda function that exists in the current account or in another account\\. \n*Required*: No \n*Type*: [LambdaConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-lambdaconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaConfig" }, "Name": { + "markdownDescription": "Friendly name for you to identify your AppSync data source after creation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "OpenSearchServiceConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.OpenSearchServiceConfig" + "$ref": "#/definitions/AWS::AppSync::DataSource.OpenSearchServiceConfig", + "markdownDescription": "AWS Region and Endpoints for an Amazon OpenSearch Service domain in your account\\. \n*Required*: No \n*Type*: [OpenSearchServiceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-opensearchserviceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OpenSearchServiceConfig" }, "RelationalDatabaseConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.RelationalDatabaseConfig" + "$ref": "#/definitions/AWS::AppSync::DataSource.RelationalDatabaseConfig", + "markdownDescription": "Relational Database configuration of the relational database data source\\. \n*Required*: No \n*Type*: [RelationalDatabaseConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-relationaldatabaseconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RelationalDatabaseConfig" }, "ServiceRoleArn": { + "markdownDescription": "The AWS Identity and Access Management service role ARN for the data source\\. The system assumes this role when accessing the data source\\. \nRequired if `Type` is specified as `AWS_LAMBDA`, `AMAZON_DYNAMODB`, `AMAZON_ELASTICSEARCH`, or `AMAZON_OPENSEARCH_SERVICE`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceRoleArn", "type": "string" }, "Type": { + "markdownDescription": "The type of the data source\\. \n+ **AWS\\_LAMBDA**: The data source is an AWS Lambda function\\.\n+ **AMAZON\\_DYNAMODB**: The data source is an Amazon DynamoDB table\\.\n+ **AMAZON\\_ELASTICSEARCH**: The data source is an Amazon OpenSearch Service domain\\.\n+ **AMAZON\\_OPENSEARCH\\_SERVICE**: The data source is an Amazon OpenSearch Service domain\\.\n+ **NONE**: There is no data source\\. This type is used when you wish to invoke a GraphQL operation without connecting to a data source, such as performing data transformation with resolvers or triggering a subscription to be invoked from a mutation\\.\n+ **HTTP**: The data source is an HTTP endpoint\\.\n+ **RELATIONAL\\_DATABASE**: The data source is a relational database\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -14347,10 +17536,14 @@ "additionalProperties": false, "properties": { "AuthorizationType": { + "markdownDescription": "The authorization type that the HTTP endpoint requires\\. \n+ **AWS\\_IAM**: The authorization type is Signature Version 4 \\(SigV4\\)\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationType", "type": "string" }, "AwsIamConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.AwsIamConfig" + "$ref": "#/definitions/AWS::AppSync::DataSource.AwsIamConfig", + "markdownDescription": "The AWS Identity and Access Management settings\\. \n*Required*: No \n*Type*: [AwsIamConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-awsiamconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsIamConfig" } }, "required": [ @@ -14362,9 +17555,13 @@ "additionalProperties": false, "properties": { "SigningRegion": { + "markdownDescription": "The signing Region for AWS Identity and Access Management authorization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SigningRegion", "type": "string" }, "SigningServiceName": { + "markdownDescription": "The signing service name for AWS Identity and Access Management authorization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SigningServiceName", "type": "string" } }, @@ -14374,12 +17571,18 @@ "additionalProperties": false, "properties": { "BaseTableTTL": { + "markdownDescription": "The number of minutes that an Item is stored in the data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaseTableTTL", "type": "string" }, "DeltaSyncTableName": { + "markdownDescription": "The Delta Sync table name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeltaSyncTableName", "type": "string" }, "DeltaSyncTableTTL": { + "markdownDescription": "The number of minutes that a Delta Sync log entry is stored in the Delta Sync table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeltaSyncTableTTL", "type": "string" } }, @@ -14394,18 +17597,28 @@ "additionalProperties": false, "properties": { "AwsRegion": { + "markdownDescription": "The AWS Region\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsRegion", "type": "string" }, "DeltaSyncConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.DeltaSyncConfig" + "$ref": "#/definitions/AWS::AppSync::DataSource.DeltaSyncConfig", + "markdownDescription": "The `DeltaSyncConfig` for a versioned datasource\\. \n*Required*: No \n*Type*: [DeltaSyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-deltasyncconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeltaSyncConfig" }, "TableName": { + "markdownDescription": "The table name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", "type": "string" }, "UseCallerCredentials": { + "markdownDescription": "Set to `TRUE` to use AWS Identity and Access Management with this data source\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseCallerCredentials", "type": "boolean" }, "Versioned": { + "markdownDescription": "Set to TRUE to use Conflict Detection and Resolution with this data source\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Versioned", "type": "boolean" } }, @@ -14419,9 +17632,13 @@ "additionalProperties": false, "properties": { "AwsRegion": { + "markdownDescription": "The AWS Region\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsRegion", "type": "string" }, "Endpoint": { + "markdownDescription": "The endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Endpoint", "type": "string" } }, @@ -14447,9 +17664,13 @@ "additionalProperties": false, "properties": { "AuthorizationConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.AuthorizationConfig" + "$ref": "#/definitions/AWS::AppSync::DataSource.AuthorizationConfig", + "markdownDescription": "The authorization configuration\\. \n*Required*: No \n*Type*: [AuthorizationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-authorizationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationConfig" }, "Endpoint": { + "markdownDescription": "The endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Endpoint", "type": "string" } }, @@ -14462,6 +17683,8 @@ "additionalProperties": false, "properties": { "LambdaFunctionArn": { + "markdownDescription": "The ARN for the Lambda function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaFunctionArn", "type": "string" } }, @@ -14474,9 +17697,13 @@ "additionalProperties": false, "properties": { "AwsRegion": { + "markdownDescription": "The AWS Region\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsRegion", "type": "string" }, "Endpoint": { + "markdownDescription": "The endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Endpoint", "type": "string" } }, @@ -14490,18 +17717,28 @@ "additionalProperties": false, "properties": { "AwsRegion": { + "markdownDescription": "AWS Region for RDS HTTP endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsRegion", "type": "string" }, "AwsSecretStoreArn": { + "markdownDescription": "The ARN for database credentials stored in AWS Secrets Manager\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsSecretStoreArn", "type": "string" }, "DatabaseName": { + "markdownDescription": "Logical database name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", "type": "string" }, "DbClusterIdentifier": { + "markdownDescription": "Amazon RDS cluster Amazon Resource Name \\(ARN\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DbClusterIdentifier", "type": "string" }, "Schema": { + "markdownDescription": "Logical schema name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schema", "type": "string" } }, @@ -14516,9 +17753,13 @@ "additionalProperties": false, "properties": { "RdsHttpEndpointConfig": { - "$ref": "#/definitions/AWS::AppSync::DataSource.RdsHttpEndpointConfig" + "$ref": "#/definitions/AWS::AppSync::DataSource.RdsHttpEndpointConfig", + "markdownDescription": "Information about the Amazon RDS resource\\. \n*Required*: No \n*Type*: [RdsHttpEndpointConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-rdshttpendpointconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RdsHttpEndpointConfig" }, "RelationalDatabaseSourceType": { + "markdownDescription": "The type of relational data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RelationalDatabaseSourceType", "type": "string" } }, @@ -14563,12 +17804,18 @@ "additionalProperties": false, "properties": { "CertificateArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the certificate\\. This will be an AWS Certificate Manager certificate\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateArn", "type": "string" }, "Description": { + "markdownDescription": "The decription for your domain name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DomainName": { + "markdownDescription": "The domain name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", "type": "string" } }, @@ -14635,9 +17882,13 @@ "additionalProperties": false, "properties": { "ApiId": { + "markdownDescription": "The API ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiId", "type": "string" }, "DomainName": { + "markdownDescription": "The domain name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", "type": "string" } }, @@ -14704,6 +17955,8 @@ "additionalProperties": false, "properties": { "ApiId": { + "markdownDescription": "The AWS AppSync GraphQL API that you want to attach using this function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", "type": "string" }, "Code": { @@ -14713,37 +17966,57 @@ "type": "string" }, "DataSourceName": { + "markdownDescription": "The name of data source this function will attach\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSourceName", "type": "string" }, "Description": { + "markdownDescription": "The `Function` description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "FunctionVersion": { + "markdownDescription": "The version of the request mapping template\\. Currently, only the 2018\\-05\\-29 version of the template is supported\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FunctionVersion", "type": "string" }, "MaxBatchSize": { + "markdownDescription": "The maximum number of resolver request inputs that will be sent to a single AWS Lambda function in a `BatchInvoke` operation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxBatchSize", "type": "number" }, "Name": { + "markdownDescription": "The name of the function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "RequestMappingTemplate": { + "markdownDescription": "The `Function` request mapping template\\. Functions support only the 2018\\-05\\-29 version of the request mapping template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestMappingTemplate", "type": "string" }, "RequestMappingTemplateS3Location": { + "markdownDescription": "Describes a Sync configuration for a resolver\\. \nContains information on which Conflict Detection, as well as Resolution strategy, should be performed when the resolver is invoked\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestMappingTemplateS3Location", "type": "string" }, "ResponseMappingTemplate": { + "markdownDescription": "The `Function` response mapping template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseMappingTemplate", "type": "string" }, "ResponseMappingTemplateS3Location": { + "markdownDescription": "The location of a response mapping template in an Amazon S3 bucket\\. Use this if you want to provision with a template file in Amazon S3 rather than embedding it in your CloudFormation template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseMappingTemplateS3Location", "type": "string" }, "Runtime": { "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration.AppSyncRuntime" }, "SyncConfig": { - "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration.SyncConfig" + "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration.SyncConfig", + "markdownDescription": "Describes a Sync configuration for a resolver\\. \nSpecifies which Conflict Detection strategy and Resolution strategy to use when the resolver is invoked\\. \n*Required*: No \n*Type*: [SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-syncconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SyncConfig" } }, "required": [ @@ -14794,6 +18067,8 @@ "additionalProperties": false, "properties": { "LambdaConflictHandlerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the Lambda function to use as the Conflict Handler\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaConflictHandlerArn", "type": "string" } }, @@ -14803,13 +18078,19 @@ "additionalProperties": false, "properties": { "ConflictDetection": { + "markdownDescription": "The Conflict Detection strategy to use\\. \n+ **VERSION**: Detect conflicts based on object versions for this resolver\\.\n+ **NONE**: Do not detect conflicts when invoking this resolver\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConflictDetection", "type": "string" }, "ConflictHandler": { + "markdownDescription": "The Conflict Resolution strategy to perform in the event of a conflict\\. \n+ **OPTIMISTIC\\_CONCURRENCY**: Resolve conflicts by rejecting mutations when versions don't match the latest version at the server\\.\n+ **AUTOMERGE**: Resolve conflicts with the Automerge conflict resolution strategy\\.\n+ **LAMBDA**: Resolve conflicts with an AWS Lambda function supplied in the `LambdaConflictHandlerConfig`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConflictHandler", "type": "string" }, "LambdaConflictHandlerConfig": { - "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration.LambdaConflictHandlerConfig" + "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration.LambdaConflictHandlerConfig", + "markdownDescription": "The `LambdaConflictHandlerConfig` when configuring `LAMBDA` as the Conflict Handler\\. \n*Required*: No \n*Type*: [LambdaConflictHandlerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-lambdaconflicthandlerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaConflictHandlerConfig" } }, "required": [ @@ -14856,33 +18137,51 @@ "items": { "$ref": "#/definitions/AWS::AppSync::GraphQLApi.AdditionalAuthenticationProvider" }, + "markdownDescription": "A list of additional authentication providers for the `GraphqlApi` API\\. \n*Required*: No \n*Type*: [AdditionalAuthenticationProviders](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationproviders.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdditionalAuthenticationProviders", "type": "array" }, "AuthenticationType": { + "markdownDescription": "Security configuration for your GraphQL API\\. For allowed values \\(such as `API_KEY`, `AWS_IAM`, `AMAZON_COGNITO_USER_POOLS`, `OPENID_CONNECT`, or `AWS_LAMBDA`\\), see [Security](https://docs.aws.amazon.com/appsync/latest/devguide/security.html) in the *AWS AppSync Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticationType", "type": "string" }, "LambdaAuthorizerConfig": { - "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig" + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig", + "markdownDescription": "A `LambdaAuthorizerConfig` holds configuration on how to authorize AWS AppSync API access when using the `AWS_LAMBDA` authorizer mode\\. Be aware that an AWS AppSync API may have only one Lambda authorizer configured at a time\\. \n*Required*: No \n*Type*: [LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaAuthorizerConfig" }, "LogConfig": { - "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LogConfig" + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LogConfig", + "markdownDescription": "The Amazon CloudWatch Logs configuration\\. \n*Required*: No \n*Type*: [LogConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-logconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogConfig" }, "Name": { + "markdownDescription": "The API name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "OpenIDConnectConfig": { - "$ref": "#/definitions/AWS::AppSync::GraphQLApi.OpenIDConnectConfig" + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.OpenIDConnectConfig", + "markdownDescription": "The OpenID Connect configuration\\. \n*Required*: No \n*Type*: [OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OpenIDConnectConfig" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An arbitrary set of tags \\(key\\-value pairs\\) for this GraphQL API\\. \n*Required*: No \n*Type*: [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "UserPoolConfig": { - "$ref": "#/definitions/AWS::AppSync::GraphQLApi.UserPoolConfig" + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.UserPoolConfig", + "markdownDescription": "Optional authorization configuration for using Amazon Cognito user pools with your GraphQL endpoint\\. \n*Required*: No \n*Type*: [UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolConfig" }, "XrayEnabled": { + "markdownDescription": "A flag indicating whether to use AWS X\\-Ray tracing for this `GraphqlApi`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "XrayEnabled", "type": "boolean" } }, @@ -14917,16 +18216,24 @@ "additionalProperties": false, "properties": { "AuthenticationType": { + "markdownDescription": "The authentication type for API key, AWS Identity and Access Management, OIDC, Amazon Cognito user pools, or AWS Lambda\\. \nValid Values: `API_KEY` \\| `AWS_IAM` \\| `OPENID_CONNECT` \\| `AMAZON_COGNITO_USER_POOLS` \\| `AWS_LAMBDA` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticationType", "type": "string" }, "LambdaAuthorizerConfig": { - "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig" + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig", + "markdownDescription": "Configuration for AWS Lambda function authorization\\. \n*Required*: No \n*Type*: [LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaAuthorizerConfig" }, "OpenIDConnectConfig": { - "$ref": "#/definitions/AWS::AppSync::GraphQLApi.OpenIDConnectConfig" + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.OpenIDConnectConfig", + "markdownDescription": "The OIDC configuration\\. \n*Required*: No \n*Type*: [OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OpenIDConnectConfig" }, "UserPoolConfig": { - "$ref": "#/definitions/AWS::AppSync::GraphQLApi.CognitoUserPoolConfig" + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.CognitoUserPoolConfig", + "markdownDescription": "The Amazon Cognito user pool configuration\\. \n*Required*: No \n*Type*: [CognitoUserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-cognitouserpoolconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolConfig" } }, "required": [ @@ -14938,12 +18245,18 @@ "additionalProperties": false, "properties": { "AppIdClientRegex": { + "markdownDescription": "A regular expression for validating the incoming Amazon Cognito user pool app client ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppIdClientRegex", "type": "string" }, "AwsRegion": { + "markdownDescription": "The AWS Region in which the user pool was created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsRegion", "type": "string" }, "UserPoolId": { + "markdownDescription": "The user pool ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolId", "type": "string" } }, @@ -14953,12 +18266,18 @@ "additionalProperties": false, "properties": { "AuthorizerResultTtlInSeconds": { + "markdownDescription": "The number of seconds a response should be cached for\\. The default is 5 minutes \\(300 seconds\\)\\. The Lambda function can override this by returning a `ttlOverride` key in its response\\. A value of 0 disables caching of responses\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerResultTtlInSeconds", "type": "number" }, "AuthorizerUri": { + "markdownDescription": "The ARN of the Lambda function to be called for authorization\\. This may be a standard Lambda ARN, a version ARN \\(`.../v3`\\) or alias ARN\\. \n*Note*: This Lambda function must have the following resource\\-based policy assigned to it\\. When configuring Lambda authorizers in the console, this is done for you\\. To do so with the AWS CLI, run the following: \n`aws lambda add-permission --function-name \"arn:aws:lambda:us-east-2:111122223333:function:my-function\" --statement-id \"appsync\" --principal appsync.amazonaws.com --action lambda:InvokeFunction` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerUri", "type": "string" }, "IdentityValidationExpression": { + "markdownDescription": "A regular expression for validation of tokens before the Lambda function is called\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentityValidationExpression", "type": "string" } }, @@ -14968,12 +18287,18 @@ "additionalProperties": false, "properties": { "CloudWatchLogsRoleArn": { + "markdownDescription": "The service role that AWS AppSync will assume to publish to Amazon CloudWatch Logs in your account\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogsRoleArn", "type": "string" }, "ExcludeVerboseContent": { + "markdownDescription": "Set to TRUE to exclude sections that contain information such as headers, context, and evaluated mapping templates, regardless of logging level\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludeVerboseContent", "type": "boolean" }, "FieldLogLevel": { + "markdownDescription": "The field logging level\\. Values can be NONE, ERROR, or ALL\\. \n+ **NONE**: No field\\-level logs are captured\\.\n+ **ERROR**: Logs the following information only for the fields that are in error:\n + The error section in the server response\\.\n + Field\\-level errors\\.\n + The generated request/response functions that got resolved for error fields\\.\n+ **ALL**: The following information is logged for all fields in the query:\n + Field\\-level tracing information\\.\n + The generated request/response functions that got resolved for each field\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldLogLevel", "type": "string" } }, @@ -14983,15 +18308,23 @@ "additionalProperties": false, "properties": { "AuthTTL": { + "markdownDescription": "The number of milliseconds that a token is valid after being authenticated\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthTTL", "type": "number" }, "ClientId": { + "markdownDescription": "The client identifier of the Relying party at the OpenID identity provider\\. This identifier is typically obtained when the Relying party is registered with the OpenID identity provider\\. You can specify a regular expression so that AWS AppSync can validate against multiple client identifiers at a time\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientId", "type": "string" }, "IatTTL": { + "markdownDescription": "The number of milliseconds that a token is valid after it's issued to a user\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IatTTL", "type": "number" }, "Issuer": { + "markdownDescription": "The issuer for the OIDC configuration\\. The issuer returned by discovery must exactly match the value of `iss` in the ID token\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Issuer", "type": "string" } }, @@ -15001,15 +18334,23 @@ "additionalProperties": false, "properties": { "AppIdClientRegex": { + "markdownDescription": "A regular expression for validating the incoming Amazon Cognito user pool app client ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppIdClientRegex", "type": "string" }, "AwsRegion": { + "markdownDescription": "The AWS Region in which the user pool was created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsRegion", "type": "string" }, "DefaultAction": { + "markdownDescription": "The action that you want your GraphQL API to take when a request that uses Amazon Cognito user pool authentication doesn't match the Amazon Cognito user pool configuration\\. \nWhen specifying Amazon Cognito user pools as the default authentication, you must set the value for `DefaultAction` to `ALLOW` if specifying `AdditionalAuthenticationProviders`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultAction", "type": "string" }, "UserPoolId": { + "markdownDescription": "The user pool ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolId", "type": "string" } }, @@ -15051,12 +18392,18 @@ "additionalProperties": false, "properties": { "ApiId": { + "markdownDescription": "The AWS AppSync GraphQL API identifier to which you want to apply this schema\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", "type": "string" }, "Definition": { + "markdownDescription": "The text representation of a GraphQL schema in SDL format\\. \nFor more information about using the `Ref` function, see [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Definition", "type": "string" }, "DefinitionS3Location": { + "markdownDescription": "The location of a GraphQL schema file in an Amazon S3 bucket\\. Use this if you want to provision with the schema living in Amazon S3 rather than embedding it in your CloudFormation template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefinitionS3Location", "type": "string" } }, @@ -15122,10 +18469,14 @@ "additionalProperties": false, "properties": { "ApiId": { + "markdownDescription": "The AWS AppSync GraphQL API to which you want to attach this resolver\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", "type": "string" }, "CachingConfig": { - "$ref": "#/definitions/AWS::AppSync::Resolver.CachingConfig" + "$ref": "#/definitions/AWS::AppSync::Resolver.CachingConfig", + "markdownDescription": "The caching configuration for the resolver\\. \n*Required*: No \n*Type*: [CachingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-cachingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CachingConfig" }, "Code": { "type": "string" @@ -15134,39 +18485,61 @@ "type": "string" }, "DataSourceName": { + "markdownDescription": "The resolver data source name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSourceName", "type": "string" }, "FieldName": { + "markdownDescription": "The GraphQL field on a type that invokes the resolver\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FieldName", "type": "string" }, "Kind": { + "markdownDescription": "The resolver type\\. \n+ **UNIT**: A UNIT resolver type\\. A UNIT resolver is the default resolver type\\. You can use a UNIT resolver to run a GraphQL query against a single data source\\.\n+ **PIPELINE**: A PIPELINE resolver type\\. You can use a PIPELINE resolver to invoke a series of `Function` objects in a serial manner\\. You can use a pipeline resolver to run a GraphQL query against multiple data sources\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Kind", "type": "string" }, "MaxBatchSize": { + "markdownDescription": "The maximum number of resolver request inputs that will be sent to a single AWS Lambda function in a `BatchInvoke` operation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxBatchSize", "type": "number" }, "PipelineConfig": { - "$ref": "#/definitions/AWS::AppSync::Resolver.PipelineConfig" + "$ref": "#/definitions/AWS::AppSync::Resolver.PipelineConfig", + "markdownDescription": "Functions linked with the pipeline resolver\\. \n*Required*: No \n*Type*: [PipelineConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-pipelineconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PipelineConfig" }, "RequestMappingTemplate": { + "markdownDescription": "The request mapping template\\. \nRequest mapping templates are optional when using a Lambda data source\\. For all other data sources, a request mapping template is required\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestMappingTemplate", "type": "string" }, "RequestMappingTemplateS3Location": { + "markdownDescription": "The location of a request mapping template in an Amazon S3 bucket\\. Use this if you want to provision with a template file in Amazon S3 rather than embedding it in your CloudFormation template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestMappingTemplateS3Location", "type": "string" }, "ResponseMappingTemplate": { + "markdownDescription": "The response mapping template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseMappingTemplate", "type": "string" }, "ResponseMappingTemplateS3Location": { + "markdownDescription": "The location of a response mapping template in an Amazon S3 bucket\\. Use this if you want to provision with a template file in Amazon S3 rather than embedding it in your CloudFormation template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseMappingTemplateS3Location", "type": "string" }, "Runtime": { "$ref": "#/definitions/AWS::AppSync::Resolver.AppSyncRuntime" }, "SyncConfig": { - "$ref": "#/definitions/AWS::AppSync::Resolver.SyncConfig" + "$ref": "#/definitions/AWS::AppSync::Resolver.SyncConfig", + "markdownDescription": "The `SyncConfig` for a resolver attached to a versioned data source\\. \n*Required*: No \n*Type*: [SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-syncconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SyncConfig" }, "TypeName": { + "markdownDescription": "The GraphQL type that invokes this resolver\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TypeName", "type": "string" } }, @@ -15221,9 +18594,13 @@ "items": { "type": "string" }, + "markdownDescription": "The caching keys for a resolver that has caching activated\\. \nValid values are entries from the `$context.arguments`, `$context.source`, and `$context.identity` maps\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CachingKeys", "type": "array" }, "Ttl": { + "markdownDescription": "The TTL in seconds for a resolver that has caching activated\\. \nValid values are 1\u20133,600 seconds\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ttl", "type": "number" } }, @@ -15236,6 +18613,8 @@ "additionalProperties": false, "properties": { "LambdaConflictHandlerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the Lambda function to use as the Conflict Handler\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaConflictHandlerArn", "type": "string" } }, @@ -15248,6 +18627,8 @@ "items": { "type": "string" }, + "markdownDescription": "A list of `Function` objects\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Functions", "type": "array" } }, @@ -15257,13 +18638,19 @@ "additionalProperties": false, "properties": { "ConflictDetection": { + "markdownDescription": "The Conflict Detection strategy to use\\. \n+ **VERSION**: Detect conflicts based on object versions for this resolver\\.\n+ **NONE**: Do not detect conflicts when invoking this resolver\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConflictDetection", "type": "string" }, "ConflictHandler": { + "markdownDescription": "The Conflict Resolution strategy to perform in the event of a conflict\\. \n+ **OPTIMISTIC\\_CONCURRENCY**: Resolve conflicts by rejecting mutations when versions don't match the latest version at the server\\.\n+ **AUTOMERGE**: Resolve conflicts with the Automerge conflict resolution strategy\\.\n+ **LAMBDA**: Resolve conflicts with an AWS Lambda function supplied in the `LambdaConflictHandlerConfig`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConflictHandler", "type": "string" }, "LambdaConflictHandlerConfig": { - "$ref": "#/definitions/AWS::AppSync::Resolver.LambdaConflictHandlerConfig" + "$ref": "#/definitions/AWS::AppSync::Resolver.LambdaConflictHandlerConfig", + "markdownDescription": "The `LambdaConflictHandlerConfig` when configuring `LAMBDA` as the Conflict Handler\\. \n*Required*: No \n*Type*: [LambdaConflictHandlerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-lambdaconflicthandlerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaConflictHandlerConfig" } }, "required": [ @@ -15307,31 +18694,47 @@ "additionalProperties": false, "properties": { "MaxCapacity": { + "markdownDescription": "The maximum value that you plan to scale out to\\. When a scaling policy is in effect, Application Auto Scaling can scale out \\(expand\\) as needed to the maximum capacity limit in response to changing demand\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacity", "type": "number" }, "MinCapacity": { + "markdownDescription": "The minimum value that you plan to scale in to\\. When a scaling policy is in effect, Application Auto Scaling can scale in \\(contract\\) as needed to the minimum capacity limit in response to changing demand\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinCapacity", "type": "number" }, "ResourceId": { + "markdownDescription": "The identifier of the resource associated with the scalable target\\. This string consists of the resource type and unique identifier\\. \n+ ECS service \\- The resource type is `service` and the unique identifier is the cluster name and service name\\. Example: `service/default/sample-webapp`\\.\n+ Spot Fleet \\- The resource type is `spot-fleet-request` and the unique identifier is the Spot Fleet request ID\\. Example: `spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE`\\.\n+ EMR cluster \\- The resource type is `instancegroup` and the unique identifier is the cluster ID and instance group ID\\. Example: `instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0`\\.\n+ AppStream 2\\.0 fleet \\- The resource type is `fleet` and the unique identifier is the fleet name\\. Example: `fleet/sample-fleet`\\.\n+ DynamoDB table \\- The resource type is `table` and the unique identifier is the table name\\. Example: `table/my-table`\\.\n+ DynamoDB global secondary index \\- The resource type is `index` and the unique identifier is the index name\\. Example: `table/my-table/index/my-table-index`\\.\n+ Aurora DB cluster \\- The resource type is `cluster` and the unique identifier is the cluster name\\. Example: `cluster:my-db-cluster`\\.\n+ SageMaker endpoint variant \\- The resource type is `variant` and the unique identifier is the resource ID\\. Example: `endpoint/my-end-point/variant/KMeansClustering`\\.\n+ Custom resources are not supported with a resource type\\. This parameter must specify the `OutputValue` from the CloudFormation template stack used to access the resources\\. The unique identifier is defined by the service provider\\. More information is available in our [GitHub repository](https://github.com/aws/aws-auto-scaling-custom-resource)\\.\n+ Amazon Comprehend document classification endpoint \\- The resource type and unique identifier are specified using the endpoint ARN\\. Example: `arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE`\\.\n+ Amazon Comprehend entity recognizer endpoint \\- The resource type and unique identifier are specified using the endpoint ARN\\. Example: `arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE`\\.\n+ Lambda provisioned concurrency \\- The resource type is `function` and the unique identifier is the function name with a function version or alias name suffix that is not `$LATEST`\\. Example: `function:my-function:prod` or `function:my-function:1`\\.\n+ Amazon Keyspaces table \\- The resource type is `table` and the unique identifier is the table name\\. Example: `keyspace/mykeyspace/table/mytable`\\.\n+ Amazon MSK cluster \\- The resource type and unique identifier are specified using the cluster ARN\\. Example: `arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5`\\.\n+ Amazon ElastiCache replication group \\- The resource type is `replication-group` and the unique identifier is the replication group name\\. Example: `replication-group/mycluster`\\.\n+ Neptune cluster \\- The resource type is `cluster` and the unique identifier is the cluster name\\. Example: `cluster:mycluster`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceId", "type": "string" }, "RoleARN": { + "markdownDescription": "Specify the Amazon Resource Name \\(ARN\\) of an Identity and Access Management \\(IAM\\) role that allows Application Auto Scaling to modify the scalable target on your behalf\\. This can be either an IAM service role that Application Auto Scaling can assume to make calls to other AWS resources on your behalf, or a service\\-linked role for the specified service\\. For more information, see [How Application Auto Scaling works with IAM](https://docs.aws.amazon.com/autoscaling/application/userguide/security_iam_service-with-iam.html) in the *Application Auto Scaling User Guide*\\. \nTo automatically create a service\\-linked role \\(recommended\\), specify the full ARN of the service\\-linked role in your stack template\\. To find the exact ARN of the service\\-linked role for your AWS or custom resource, see the [Service\\-linked roles](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-service-linked-roles.html) topic in the *Application Auto Scaling User Guide*\\. Look for the ARN in the table at the bottom of the page\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleARN", "type": "string" }, "ScalableDimension": { + "markdownDescription": "The scalable dimension associated with the scalable target\\. This string consists of the service namespace, resource type, and scaling property\\. \n+ `ecs:service:DesiredCount` \\- The desired task count of an ECS service\\.\n+ `elasticmapreduce:instancegroup:InstanceCount` \\- The instance count of an EMR Instance Group\\.\n+ `ec2:spot-fleet-request:TargetCapacity` \\- The target capacity of a Spot Fleet\\.\n+ `appstream:fleet:DesiredCapacity` \\- The desired capacity of an AppStream 2\\.0 fleet\\.\n+ `dynamodb:table:ReadCapacityUnits` \\- The provisioned read capacity for a DynamoDB table\\.\n+ `dynamodb:table:WriteCapacityUnits` \\- The provisioned write capacity for a DynamoDB table\\.\n+ `dynamodb:index:ReadCapacityUnits` \\- The provisioned read capacity for a DynamoDB global secondary index\\.\n+ `dynamodb:index:WriteCapacityUnits` \\- The provisioned write capacity for a DynamoDB global secondary index\\.\n+ `rds:cluster:ReadReplicaCount` \\- The count of Aurora Replicas in an Aurora DB cluster\\. Available for Aurora MySQL\\-compatible edition and Aurora PostgreSQL\\-compatible edition\\.\n+ `sagemaker:variant:DesiredInstanceCount` \\- The number of EC2 instances for a SageMaker model endpoint variant\\.\n+ `custom-resource:ResourceType:Property` \\- The scalable dimension for a custom resource provided by your own application or service\\.\n+ `comprehend:document-classifier-endpoint:DesiredInferenceUnits` \\- The number of inference units for an Amazon Comprehend document classification endpoint\\.\n+ `comprehend:entity-recognizer-endpoint:DesiredInferenceUnits` \\- The number of inference units for an Amazon Comprehend entity recognizer endpoint\\.\n+ `lambda:function:ProvisionedConcurrency` \\- The provisioned concurrency for a Lambda function\\.\n+ `cassandra:table:ReadCapacityUnits` \\- The provisioned read capacity for an Amazon Keyspaces table\\.\n+ `cassandra:table:WriteCapacityUnits` \\- The provisioned write capacity for an Amazon Keyspaces table\\.\n+ `kafka:broker-storage:VolumeSize` \\- The provisioned volume size \\(in GiB\\) for brokers in an Amazon MSK cluster\\.\n+ `elasticache:replication-group:NodeGroups` \\- The number of node groups for an Amazon ElastiCache replication group\\.\n+ `elasticache:replication-group:Replicas` \\- The number of replicas per node group for an Amazon ElastiCache replication group\\.\n+ `neptune:cluster:ReadReplicaCount` \\- The count of read replicas in an Amazon Neptune DB cluster\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `appstream:fleet:DesiredCapacity | cassandra:table:ReadCapacityUnits | cassandra:table:WriteCapacityUnits | comprehend:document-classifier-endpoint:DesiredInferenceUnits | comprehend:entity-recognizer-endpoint:DesiredInferenceUnits | custom-resource:ResourceType:Property | dynamodb:index:ReadCapacityUnits | dynamodb:index:WriteCapacityUnits | dynamodb:table:ReadCapacityUnits | dynamodb:table:WriteCapacityUnits | ec2:spot-fleet-request:TargetCapacity | ecs:service:DesiredCount | elasticache:replication-group:NodeGroups | elasticache:replication-group:Replicas | elasticmapreduce:instancegroup:InstanceCount | kafka:broker-storage:VolumeSize | lambda:function:ProvisionedConcurrency | neptune:cluster:ReadReplicaCount | rds:cluster:ReadReplicaCount | sagemaker:variant:DesiredInstanceCount` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScalableDimension", "type": "string" }, "ScheduledActions": { "items": { "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction" }, + "markdownDescription": "The scheduled actions for the scalable target\\. Duplicates aren't allowed\\. \nFor more information about using scheduled scaling, see [Scheduled scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scheduled-scaling.html) in the *Application Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: List of [ScheduledAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduledActions", "type": "array" }, "ServiceNamespace": { + "markdownDescription": "The namespace of the AWS service that provides the resource, or a `custom-resource`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `appstream | cassandra | comprehend | custom-resource | dynamodb | ec2 | ecs | elasticache | elasticmapreduce | kafka | lambda | neptune | rds | sagemaker` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceNamespace", "type": "string" }, "SuspendedState": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.SuspendedState" + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.SuspendedState", + "markdownDescription": "An embedded object that contains attributes and attribute values that are used to suspend and resume automatic scaling\\. Setting the value of an attribute to `true` suspends the specified scaling activities\\. Setting it to `false` \\(default\\) resumes the specified scaling activities\\. \n**Suspension Outcomes** \n+ For `DynamicScalingInSuspended`, while a suspension is in effect, all scale\\-in activities that are triggered by a scaling policy are suspended\\.\n+ For `DynamicScalingOutSuspended`, while a suspension is in effect, all scale\\-out activities that are triggered by a scaling policy are suspended\\.\n+ For `ScheduledScalingSuspended`, while a suspension is in effect, all scaling activities that involve scheduled actions are suspended\\. \nFor more information, see [Suspending and resuming scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-suspend-resume-scaling.html) in the *Application Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: [SuspendedState](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-suspendedstate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuspendedState" } }, "required": [ @@ -15369,9 +18772,13 @@ "additionalProperties": false, "properties": { "MaxCapacity": { + "markdownDescription": "The maximum capacity\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacity", "type": "number" }, "MinCapacity": { + "markdownDescription": "The minimum capacity\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinCapacity", "type": "number" } }, @@ -15381,21 +18788,33 @@ "additionalProperties": false, "properties": { "EndTime": { + "markdownDescription": "The date and time that the action is scheduled to end, in UTC\\. \n*Required*: No \n*Type*: Timestamp \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndTime", "type": "string" }, "ScalableTargetAction": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction" + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction", + "markdownDescription": "The new minimum and maximum capacity\\. You can set both values or just one\\. At the scheduled time, if the current capacity is below the minimum capacity, Application Auto Scaling scales out to the minimum capacity\\. If the current capacity is above the maximum capacity, Application Auto Scaling scales in to the maximum capacity\\. \n*Required*: No \n*Type*: [ScalableTargetAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scalabletargetaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalableTargetAction" }, "Schedule": { + "markdownDescription": "The schedule for this action\\. The following formats are supported: \n+ At expressions \\- \"`at(yyyy-mm-ddThh:mm:ss)`\"\n+ Rate expressions \\- \"`rate(value unit)`\"\n+ Cron expressions \\- \"`cron(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/fields.html)`\"\nAt expressions are useful for one\\-time schedules\\. Cron expressions are useful for scheduled actions that run periodically at a specified date and time, and rate expressions are useful for scheduled actions that run at a regular interval\\. \nAt and cron expressions use Universal Coordinated Time \\(UTC\\) by default\\. \nThe cron format consists of six https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/fields.html separated by white spaces: \\[Minutes\\] \\[Hours\\] \\[Day\\_of\\_Month\\] \\[Month\\] \\[Day\\_of\\_Week\\] \\[Year\\]\\. \nFor rate expressions, *value* is a positive integer and *unit* is `minute` \\| `minutes` \\| `hour` \\| `hours` \\| `day` \\| `days`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule", "type": "string" }, "ScheduledActionName": { + "markdownDescription": "The name of the scheduled action\\. This name must be unique among all other scheduled actions on the specified scalable target\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `(?!((^[ ]+.*)|(.*([\\u0000-\\u001f]|[\\u007f-\\u009f]|[:/|])+.*)|(.*[ ]+$))).+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduledActionName", "type": "string" }, "StartTime": { + "markdownDescription": "The date and time that the action is scheduled to begin, in UTC\\. \n*Required*: No \n*Type*: Timestamp \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartTime", "type": "string" }, "Timezone": { + "markdownDescription": "The time zone used when referring to the date and time of a scheduled action, when the scheduled action uses an at or cron expression\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timezone", "type": "string" } }, @@ -15409,12 +18828,18 @@ "additionalProperties": false, "properties": { "DynamicScalingInSuspended": { + "markdownDescription": "Whether scale in by a target tracking scaling policy or a step scaling policy is suspended\\. Set the value to `true` if you don't want Application Auto Scaling to remove capacity when a scaling policy is triggered\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DynamicScalingInSuspended", "type": "boolean" }, "DynamicScalingOutSuspended": { + "markdownDescription": "Whether scale out by a target tracking scaling policy or a step scaling policy is suspended\\. Set the value to `true` if you don't want Application Auto Scaling to add capacity when a scaling policy is triggered\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DynamicScalingOutSuspended", "type": "boolean" }, "ScheduledScalingSuspended": { + "markdownDescription": "Whether scheduled scaling is suspended\\. Set the value to `true` if you don't want Application Auto Scaling to add or remove capacity by initiating scheduled actions\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduledScalingSuspended", "type": "boolean" } }, @@ -15456,28 +18881,44 @@ "additionalProperties": false, "properties": { "PolicyName": { + "markdownDescription": "The name of the scaling policy\\. \nUpdates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling\\. To change only a target tracking scaling policy's name, first delete the policy by removing the existing `AWS::ApplicationAutoScaling::ScalingPolicy` resource from the template and updating the stack\\. Then, recreate the resource with the same settings and a different name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `\\p{Print}+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PolicyName", "type": "string" }, "PolicyType": { + "markdownDescription": "The scaling policy type\\. \nThe following policy types are supported: \n `TargetTrackingScaling`\u2014Not supported for Amazon EMR \n `StepScaling`\u2014Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `StepScaling | TargetTrackingScaling` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyType", "type": "string" }, "ResourceId": { + "markdownDescription": "The identifier of the resource associated with the scaling policy\\. This string consists of the resource type and unique identifier\\. \n+ ECS service \\- The resource type is `service` and the unique identifier is the cluster name and service name\\. Example: `service/default/sample-webapp`\\.\n+ Spot Fleet \\- The resource type is `spot-fleet-request` and the unique identifier is the Spot Fleet request ID\\. Example: `spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE`\\.\n+ EMR cluster \\- The resource type is `instancegroup` and the unique identifier is the cluster ID and instance group ID\\. Example: `instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0`\\.\n+ AppStream 2\\.0 fleet \\- The resource type is `fleet` and the unique identifier is the fleet name\\. Example: `fleet/sample-fleet`\\.\n+ DynamoDB table \\- The resource type is `table` and the unique identifier is the table name\\. Example: `table/my-table`\\.\n+ DynamoDB global secondary index \\- The resource type is `index` and the unique identifier is the index name\\. Example: `table/my-table/index/my-table-index`\\.\n+ Aurora DB cluster \\- The resource type is `cluster` and the unique identifier is the cluster name\\. Example: `cluster:my-db-cluster`\\.\n+ SageMaker endpoint variant \\- The resource type is `variant` and the unique identifier is the resource ID\\. Example: `endpoint/my-end-point/variant/KMeansClustering`\\.\n+ Custom resources are not supported with a resource type\\. This parameter must specify the `OutputValue` from the CloudFormation template stack used to access the resources\\. The unique identifier is defined by the service provider\\. More information is available in our [GitHub repository](https://github.com/aws/aws-auto-scaling-custom-resource)\\.\n+ Amazon Comprehend document classification endpoint \\- The resource type and unique identifier are specified using the endpoint ARN\\. Example: `arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE`\\.\n+ Amazon Comprehend entity recognizer endpoint \\- The resource type and unique identifier are specified using the endpoint ARN\\. Example: `arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE`\\.\n+ Lambda provisioned concurrency \\- The resource type is `function` and the unique identifier is the function name with a function version or alias name suffix that is not `$LATEST`\\. Example: `function:my-function:prod` or `function:my-function:1`\\.\n+ Amazon Keyspaces table \\- The resource type is `table` and the unique identifier is the table name\\. Example: `keyspace/mykeyspace/table/mytable`\\.\n+ Amazon MSK cluster \\- The resource type and unique identifier are specified using the cluster ARN\\. Example: `arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5`\\.\n+ Amazon ElastiCache replication group \\- The resource type is `replication-group` and the unique identifier is the replication group name\\. Example: `replication-group/mycluster`\\.\n+ Neptune cluster \\- The resource type is `cluster` and the unique identifier is the cluster name\\. Example: `cluster:mycluster`\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceId", "type": "string" }, "ScalableDimension": { + "markdownDescription": "The scalable dimension\\. This string consists of the service namespace, resource type, and scaling property\\. \n+ `ecs:service:DesiredCount` \\- The desired task count of an ECS service\\.\n+ `elasticmapreduce:instancegroup:InstanceCount` \\- The instance count of an EMR Instance Group\\.\n+ `ec2:spot-fleet-request:TargetCapacity` \\- The target capacity of a Spot Fleet\\.\n+ `appstream:fleet:DesiredCapacity` \\- The desired capacity of an AppStream 2\\.0 fleet\\.\n+ `dynamodb:table:ReadCapacityUnits` \\- The provisioned read capacity for a DynamoDB table\\.\n+ `dynamodb:table:WriteCapacityUnits` \\- The provisioned write capacity for a DynamoDB table\\.\n+ `dynamodb:index:ReadCapacityUnits` \\- The provisioned read capacity for a DynamoDB global secondary index\\.\n+ `dynamodb:index:WriteCapacityUnits` \\- The provisioned write capacity for a DynamoDB global secondary index\\.\n+ `rds:cluster:ReadReplicaCount` \\- The count of Aurora Replicas in an Aurora DB cluster\\. Available for Aurora MySQL\\-compatible edition and Aurora PostgreSQL\\-compatible edition\\.\n+ `sagemaker:variant:DesiredInstanceCount` \\- The number of EC2 instances for a SageMaker model endpoint variant\\.\n+ `custom-resource:ResourceType:Property` \\- The scalable dimension for a custom resource provided by your own application or service\\.\n+ `comprehend:document-classifier-endpoint:DesiredInferenceUnits` \\- The number of inference units for an Amazon Comprehend document classification endpoint\\.\n+ `comprehend:entity-recognizer-endpoint:DesiredInferenceUnits` \\- The number of inference units for an Amazon Comprehend entity recognizer endpoint\\.\n+ `lambda:function:ProvisionedConcurrency` \\- The provisioned concurrency for a Lambda function\\.\n+ `cassandra:table:ReadCapacityUnits` \\- The provisioned read capacity for an Amazon Keyspaces table\\.\n+ `cassandra:table:WriteCapacityUnits` \\- The provisioned write capacity for an Amazon Keyspaces table\\.\n+ `kafka:broker-storage:VolumeSize` \\- The provisioned volume size \\(in GiB\\) for brokers in an Amazon MSK cluster\\.\n+ `elasticache:replication-group:NodeGroups` \\- The number of node groups for an Amazon ElastiCache replication group\\.\n+ `elasticache:replication-group:Replicas` \\- The number of replicas per node group for an Amazon ElastiCache replication group\\.\n+ `neptune:cluster:ReadReplicaCount` \\- The count of read replicas in an Amazon Neptune DB cluster\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `appstream:fleet:DesiredCapacity | cassandra:table:ReadCapacityUnits | cassandra:table:WriteCapacityUnits | comprehend:document-classifier-endpoint:DesiredInferenceUnits | comprehend:entity-recognizer-endpoint:DesiredInferenceUnits | custom-resource:ResourceType:Property | dynamodb:index:ReadCapacityUnits | dynamodb:index:WriteCapacityUnits | dynamodb:table:ReadCapacityUnits | dynamodb:table:WriteCapacityUnits | ec2:spot-fleet-request:TargetCapacity | ecs:service:DesiredCount | elasticache:replication-group:NodeGroups | elasticache:replication-group:Replicas | elasticmapreduce:instancegroup:InstanceCount | kafka:broker-storage:VolumeSize | lambda:function:ProvisionedConcurrency | neptune:cluster:ReadReplicaCount | rds:cluster:ReadReplicaCount | sagemaker:variant:DesiredInstanceCount` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScalableDimension", "type": "string" }, "ScalingTargetId": { + "markdownDescription": "The CloudFormation\\-generated ID of an Application Auto Scaling scalable target\\. For more information about the ID, see the Return Value section of the `AWS::ApplicationAutoScaling::ScalableTarget` resource\\. \nYou must specify either the `ScalingTargetId` property, or the `ResourceId`, `ScalableDimension`, and `ServiceNamespace` properties, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScalingTargetId", "type": "string" }, "ServiceNamespace": { + "markdownDescription": "The namespace of the AWS service that provides the resource, or a `custom-resource`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `appstream | cassandra | comprehend | custom-resource | dynamodb | ec2 | ecs | elasticache | elasticmapreduce | kafka | lambda | neptune | rds | sagemaker` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceNamespace", "type": "string" }, "StepScalingPolicyConfiguration": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration" + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration", + "markdownDescription": "A step scaling policy\\. \n*Required*: No \n*Type*: [StepScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StepScalingPolicyConfiguration" }, "TargetTrackingScalingPolicyConfiguration": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration" + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration", + "markdownDescription": "A target tracking scaling policy\\. \n*Required*: No \n*Type*: [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetTrackingScalingPolicyConfiguration" } }, "required": [ @@ -15514,18 +18955,28 @@ "items": { "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension" }, + "markdownDescription": "The dimensions of the metric\\. \nConditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy\\. \n*Required*: No \n*Type*: List of [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", "type": "array" }, "MetricName": { + "markdownDescription": "The name of the metric\\. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", "type": "string" }, "Namespace": { + "markdownDescription": "The namespace of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", "type": "string" }, "Statistic": { + "markdownDescription": "The statistic of the metric\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Average | Maximum | Minimum | SampleCount | Sum` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statistic", "type": "string" }, "Unit": { + "markdownDescription": "The unit of the metric\\. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", "type": "string" } }, @@ -15540,9 +18991,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "The value of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -15556,9 +19011,13 @@ "additionalProperties": false, "properties": { "PredefinedMetricType": { + "markdownDescription": "The metric type\\. The `ALBRequestCountPerTarget` metric type applies only to Spot fleet requests and ECS services\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALBRequestCountPerTarget | AppStreamAverageCapacityUtilization | CassandraReadCapacityUtilization | CassandraWriteCapacityUtilization | ComprehendInferenceUtilization | DynamoDBReadCapacityUtilization | DynamoDBWriteCapacityUtilization | EC2SpotFleetRequestAverageCPUUtilization | EC2SpotFleetRequestAverageNetworkIn | EC2SpotFleetRequestAverageNetworkOut | ECSServiceAverageCPUUtilization | ECSServiceAverageMemoryUtilization | ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage | ElastiCachePrimaryEngineCPUUtilization | ElastiCacheReplicaEngineCPUUtilization | KafkaBrokerStorageUtilization | LambdaProvisionedConcurrencyUtilization | NeptuneReaderAverageCPUUtilization | RDSReaderAverageCPUUtilization | RDSReaderAverageDatabaseConnections | SageMakerVariantInvocationsPerInstance` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedMetricType", "type": "string" }, "ResourceLabel": { + "markdownDescription": "Identifies the resource associated with the metric type\\. You can't specify a resource label unless the metric type is `ALBRequestCountPerTarget` and there is a target group attached to the Spot Fleet or ECS service\\. \nYou create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash \\(/\\)\\. The format of the resource label is: \n `app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff`\\. \nWhere: \n+ app// is the final portion of the load balancer ARN\n+ targetgroup// is the final portion of the target group ARN\\.\nTo find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation\\. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1023` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceLabel", "type": "string" } }, @@ -15571,12 +19030,18 @@ "additionalProperties": false, "properties": { "MetricIntervalLowerBound": { + "markdownDescription": "The lower bound for the difference between the alarm threshold and the CloudWatch metric\\. If the metric value is above the breach threshold, the lower bound is inclusive \\(the metric must be greater than or equal to the threshold plus the lower bound\\)\\. Otherwise, it is exclusive \\(the metric must be greater than the threshold plus the lower bound\\)\\. A null value indicates negative infinity\\. \nYou must specify at least one upper or lower bound\\. \n*Required*: Conditional \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricIntervalLowerBound", "type": "number" }, "MetricIntervalUpperBound": { + "markdownDescription": "The upper bound for the difference between the alarm threshold and the CloudWatch metric\\. If the metric value is above the breach threshold, the upper bound is exclusive \\(the metric must be less than the threshold plus the upper bound\\)\\. Otherwise, it is inclusive \\(the metric must be less than or equal to the threshold plus the upper bound\\)\\. A null value indicates positive infinity\\. \nYou must specify at least one upper or lower bound\\. \n*Required*: Conditional \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricIntervalUpperBound", "type": "number" }, "ScalingAdjustment": { + "markdownDescription": "The amount by which to scale\\. The adjustment is based on the value that you specified in the `AdjustmentType` property \\(either an absolute number or a percentage\\)\\. A positive value adds to the current capacity and a negative number subtracts from the current capacity\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalingAdjustment", "type": "number" } }, @@ -15589,21 +19054,31 @@ "additionalProperties": false, "properties": { "AdjustmentType": { + "markdownDescription": "Specifies whether the `ScalingAdjustment` value in the `StepAdjustment` property is an absolute number or a percentage of the current capacity\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ChangeInCapacity | ExactCapacity | PercentChangeInCapacity` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdjustmentType", "type": "string" }, "Cooldown": { + "markdownDescription": "The amount of time, in seconds, to wait for a previous scaling activity to take effect\\. \nWith scale\\-out policies, the intention is to continuously \\(but not excessively\\) scale out\\. After Application Auto Scaling successfully scales out using a step scaling policy, it starts to calculate the cooldown time\\. The scaling policy won't increase the desired capacity again unless either a larger scale out is triggered or the cooldown period ends\\. While the cooldown period is in effect, capacity added by the initiating scale\\-out activity is calculated as part of the desired capacity for the next scale\\-out activity\\. For example, when an alarm triggers a step scaling policy to increase the capacity by 2, the scaling activity completes successfully, and a cooldown period starts\\. If the alarm triggers again during the cooldown period but at a more aggressive step adjustment of 3, the previous increase of 2 is considered part of the current capacity\\. Therefore, only 1 is added to the capacity\\. \nWith scale\\-in policies, the intention is to scale in conservatively to protect your application\u2019s availability, so scale\\-in activities are blocked until the cooldown period has expired\\. However, if another alarm triggers a scale\\-out activity during the cooldown period after a scale\\-in activity, Application Auto Scaling scales out the target immediately\\. In this case, the cooldown period for the scale\\-in activity stops and doesn't complete\\. \nApplication Auto Scaling provides a default value of 600 for Amazon ElastiCache replication groups and a default value of 300 for the following scalable targets: \n+ AppStream 2\\.0 fleets\n+ Aurora DB clusters\n+ ECS services\n+ EMR clusters\n+ Neptune clusters\n+ SageMaker endpoint variants\n+ Spot Fleets\n+ Custom resources\nFor all other scalable targets, the default value is 0: \n+ Amazon Comprehend document classification and entity recognizer endpoints\n+ DynamoDB tables and global secondary indexes\n+ Amazon Keyspaces tables\n+ Lambda provisioned concurrency\n+ Amazon MSK broker storage\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cooldown", "type": "number" }, "MetricAggregationType": { + "markdownDescription": "The aggregation type for the CloudWatch metrics\\. Valid values are `Minimum`, `Maximum`, and `Average`\\. If the aggregation type is null, the value is treated as `Average`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Average | Maximum | Minimum` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricAggregationType", "type": "string" }, "MinAdjustmentMagnitude": { + "markdownDescription": "The minimum value to scale by when the adjustment type is `PercentChangeInCapacity`\\. For example, suppose that you create a step scaling policy to scale out an Amazon ECS service by 25 percent and you specify a `MinAdjustmentMagnitude` of 2\\. If the service has 4 tasks and the scaling policy is performed, 25 percent of 4 is 1\\. However, because you specified a `MinAdjustmentMagnitude` of 2, Application Auto Scaling scales out the service by 2 tasks\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinAdjustmentMagnitude", "type": "number" }, "StepAdjustments": { "items": { "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment" }, + "markdownDescription": "A set of adjustments that enable you to scale based on the size of the alarm breach\\. \nAt least one step adjustment is required if you are adding a new step scaling policy configuration\\. \n*Required*: No \n*Type*: List of [StepAdjustment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StepAdjustments", "type": "array" } }, @@ -15613,21 +19088,33 @@ "additionalProperties": false, "properties": { "CustomizedMetricSpecification": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification" + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification", + "markdownDescription": "A customized metric\\. You can specify either a predefined metric or a customized metric\\. \n*Required*: No \n*Type*: [CustomizedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomizedMetricSpecification" }, "DisableScaleIn": { + "markdownDescription": "Indicates whether scale in by the target tracking scaling policy is disabled\\. If the value is `true`, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target\\. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableScaleIn", "type": "boolean" }, "PredefinedMetricSpecification": { - "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification" + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification", + "markdownDescription": "A predefined metric\\. You can specify either a predefined metric or a customized metric\\. \n*Required*: No \n*Type*: [PredefinedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predefinedmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedMetricSpecification" }, "ScaleInCooldown": { + "markdownDescription": "The amount of time, in seconds, after a scale\\-in activity completes before another scale\\-in activity can start\\. \nWith the *scale\\-in cooldown period*, the intention is to scale in conservatively to protect your application\u2019s availability, so scale\\-in activities are blocked until the cooldown period has expired\\. However, if another alarm triggers a scale\\-out activity during the scale\\-in cooldown period, Application Auto Scaling scales out the target immediately\\. In this case, the scale\\-in cooldown period stops and doesn't complete\\. \nApplication Auto Scaling provides a default value of 600 for Amazon ElastiCache replication groups and a default value of 300 for the following scalable targets: \n+ AppStream 2\\.0 fleets\n+ Aurora DB clusters\n+ ECS services\n+ EMR clusters\n+ Neptune clusters\n+ SageMaker endpoint variants\n+ Spot Fleets\n+ Custom resources\nFor all other scalable targets, the default value is 0: \n+ Amazon Comprehend document classification and entity recognizer endpoints\n+ DynamoDB tables and global secondary indexes\n+ Amazon Keyspaces tables\n+ Lambda provisioned concurrency\n+ Amazon MSK broker storage\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScaleInCooldown", "type": "number" }, "ScaleOutCooldown": { + "markdownDescription": "The amount of time, in seconds, to wait for a previous scale\\-out activity to take effect\\. \nWith the *scale\\-out cooldown period*, the intention is to continuously \\(but not excessively\\) scale out\\. After Application Auto Scaling successfully scales out using a target tracking scaling policy, it starts to calculate the cooldown time\\. The scaling policy won't increase the desired capacity again unless either a larger scale out is triggered or the cooldown period ends\\. While the cooldown period is in effect, the capacity added by the initiating scale\\-out activity is calculated as part of the desired capacity for the next scale\\-out activity\\. \nApplication Auto Scaling provides a default value of 600 for Amazon ElastiCache replication groups and a default value of 300 for the following scalable targets: \n+ AppStream 2\\.0 fleets\n+ Aurora DB clusters\n+ ECS services\n+ EMR clusters\n+ Neptune clusters\n+ SageMaker endpoint variants\n+ Spot Fleets\n+ Custom resources\nFor all other scalable targets, the default value is 0: \n+ Amazon Comprehend document classification and entity recognizer endpoints\n+ DynamoDB tables and global secondary indexes\n+ Amazon Keyspaces tables\n+ Lambda provisioned concurrency\n+ Amazon MSK broker storage\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScaleOutCooldown", "type": "number" }, "TargetValue": { + "markdownDescription": "The target value for the metric\\. Although this property accepts numbers of type Double, it won't accept values that are either too small or too large\\. Values must be in the range of \\-2^360 to 2^360\\. The value must be a valid number based on the choice of metric\\. For example, if the metric is CPU utilization, then the target value is a percent value that represents how much of the CPU can be used before scaling out\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetValue", "type": "number" } }, @@ -15672,21 +19159,29 @@ "additionalProperties": false, "properties": { "AutoConfigurationEnabled": { + "markdownDescription": "If set to `true`, the application components will be configured with the monitoring configuration recommended by Application Insights\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoConfigurationEnabled", "type": "boolean" }, "CWEMonitorEnabled": { + "markdownDescription": "Indicates whether Application Insights can listen to CloudWatch events for the application resources, such as `instance terminated`, `failed deployment`, and others\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CWEMonitorEnabled", "type": "boolean" }, "ComponentMonitoringSettings": { "items": { "$ref": "#/definitions/AWS::ApplicationInsights::Application.ComponentMonitoringSetting" }, + "markdownDescription": "The monitoring settings of the components\\. \n*Required*: No \n*Type*: List of [ComponentMonitoringSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentMonitoringSettings", "type": "array" }, "CustomComponents": { "items": { "$ref": "#/definitions/AWS::ApplicationInsights::Application.CustomComponent" }, + "markdownDescription": "Describes a custom component by grouping similar standalone instances to monitor\\. \n*Required*: No \n*Type*: List of [CustomComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-customcomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomComponents", "type": "array" }, "GroupingType": { @@ -15696,21 +19191,31 @@ "items": { "$ref": "#/definitions/AWS::ApplicationInsights::Application.LogPatternSet" }, + "markdownDescription": "The log pattern sets\\. \n*Required*: No \n*Type*: List of [LogPatternSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-logpatternset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogPatternSets", "type": "array" }, "OpsCenterEnabled": { + "markdownDescription": "Indicates whether Application Insights will create OpsItems for any problem that is detected by Application Insights for an application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OpsCenterEnabled", "type": "boolean" }, "OpsItemSNSTopicArn": { + "markdownDescription": "The SNS topic provided to Application Insights that is associated with the created OpsItems to receive SNS notifications for opsItem updates\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `300` \n*Pattern*: `^arn:aws(-\\w+)*:[\\w\\d-]+:([\\w\\d-]*)?:[\\w\\d_-]*([:/].+)*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OpsItemSNSTopicArn", "type": "string" }, "ResourceGroupName": { + "markdownDescription": "The name of the resource group used for the application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z0-9\\.\\-_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceGroupName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of `Tags`\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -15744,9 +19249,13 @@ "additionalProperties": false, "properties": { "AlarmName": { + "markdownDescription": "The name of the CloudWatch alarm to be monitored for the component\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmName", "type": "string" }, "Severity": { + "markdownDescription": "Indicates the degree of outage when the alarm goes off\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Severity", "type": "string" } }, @@ -15759,6 +19268,8 @@ "additionalProperties": false, "properties": { "AlarmMetricName": { + "markdownDescription": "The name of the metric to be monitored for the component\\. For metrics supported by Application Insights, see [Logs and metrics supported by Amazon CloudWatch Application Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/appinsights-logs-and-metrics.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmMetricName", "type": "string" } }, @@ -15771,12 +19282,16 @@ "additionalProperties": false, "properties": { "ConfigurationDetails": { - "$ref": "#/definitions/AWS::ApplicationInsights::Application.ConfigurationDetails" + "$ref": "#/definitions/AWS::ApplicationInsights::Application.ConfigurationDetails", + "markdownDescription": "The configuration settings\\. \n*Required*: No \n*Type*: [ConfigurationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-configurationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfigurationDetails" }, "SubComponentTypeConfigurations": { "items": { "$ref": "#/definitions/AWS::ApplicationInsights::Application.SubComponentTypeConfiguration" }, + "markdownDescription": "Sub\\-component configurations of the component\\. \n*Required*: No \n*Type*: List of [SubComponentTypeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-subcomponenttypeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubComponentTypeConfigurations", "type": "array" } }, @@ -15786,21 +19301,33 @@ "additionalProperties": false, "properties": { "ComponentARN": { + "markdownDescription": "The ARN of the component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentARN", "type": "string" }, "ComponentConfigurationMode": { + "markdownDescription": "Component monitoring can be configured in one of the following three modes: \n+ `DEFAULT`: The component will be configured with the recommended default monitoring settings of the selected `Tier`\\.\n+ `CUSTOM`: The component will be configured with the customized monitoring settings that are specified in `CustomComponentConfiguration`\\. If used, `CustomComponentConfiguration` must be provided\\.\n+ `DEFAULT_WITH_OVERWRITE`: The component will be configured with the recommended default monitoring settings of the selected `Tier`, and merged with customized overwrite settings that are specified in `DefaultOverwriteComponentConfiguration`\\. If used, `DefaultOverwriteComponentConfiguration` must be provided\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentConfigurationMode", "type": "string" }, "ComponentName": { + "markdownDescription": "The name of the component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentName", "type": "string" }, "CustomComponentConfiguration": { - "$ref": "#/definitions/AWS::ApplicationInsights::Application.ComponentConfiguration" + "$ref": "#/definitions/AWS::ApplicationInsights::Application.ComponentConfiguration", + "markdownDescription": "Customized monitoring settings\\. Required if CUSTOM mode is configured in `ComponentConfigurationMode`\\. \n*Required*: No \n*Type*: [ComponentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomComponentConfiguration" }, "DefaultOverwriteComponentConfiguration": { - "$ref": "#/definitions/AWS::ApplicationInsights::Application.ComponentConfiguration" + "$ref": "#/definitions/AWS::ApplicationInsights::Application.ComponentConfiguration", + "markdownDescription": "Customized overwrite monitoring settings\\. Required if CUSTOM mode is configured in `ComponentConfigurationMode`\\. \n*Required*: No \n*Type*: [ComponentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultOverwriteComponentConfiguration" }, "Tier": { + "markdownDescription": "The tier of the application component\\. Supported tiers include `DOT_NET_CORE`, `DOT_NET_WORKER`, `DOT_NET_WEB`, `SQL_SERVER`, `SQL_SERVER_ALWAYSON_AVAILABILITY_GROUP`, `SQL_SERVER_FAILOVER_CLUSTER_INSTANCE`, `MYSQL`, `POSTGRESQL`, `JAVA_JMX`, `ORACLE`, `SAP_HANA_MULTI_NODE`, `SAP_HANA_SINGLE_NODE`, `SAP_HANA_HIGH_AVAILABILITY`, `SHAREPOINT`\\. `ACTIVE_DIRECTORY`, and `DEFAULT`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tier", "type": "string" } }, @@ -15817,33 +19344,47 @@ "items": { "$ref": "#/definitions/AWS::ApplicationInsights::Application.AlarmMetric" }, + "markdownDescription": "A list of metrics to monitor for the component\\. All component types can use `AlarmMetrics`\\. \n*Required*: No \n*Type*: List of [AlarmMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-alarmmetric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmMetrics", "type": "array" }, "Alarms": { "items": { "$ref": "#/definitions/AWS::ApplicationInsights::Application.Alarm" }, + "markdownDescription": "A list of alarms to monitor for the component\\. All component types can use `Alarm`\\. \n*Required*: No \n*Type*: List of [Alarm](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-alarm.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alarms", "type": "array" }, "HAClusterPrometheusExporter": { - "$ref": "#/definitions/AWS::ApplicationInsights::Application.HAClusterPrometheusExporter" + "$ref": "#/definitions/AWS::ApplicationInsights::Application.HAClusterPrometheusExporter", + "markdownDescription": "The HA cluster Prometheus Exporter settings\\. \n*Required*: No \n*Type*: [HAClusterPrometheusExporter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-haclusterprometheusexporter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HAClusterPrometheusExporter" }, "HANAPrometheusExporter": { - "$ref": "#/definitions/AWS::ApplicationInsights::Application.HANAPrometheusExporter" + "$ref": "#/definitions/AWS::ApplicationInsights::Application.HANAPrometheusExporter", + "markdownDescription": "The HANA DB Prometheus Exporter settings\\. \n*Required*: No \n*Type*: [HANAPrometheusExporter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-hanaprometheusexporter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HANAPrometheusExporter" }, "JMXPrometheusExporter": { - "$ref": "#/definitions/AWS::ApplicationInsights::Application.JMXPrometheusExporter" + "$ref": "#/definitions/AWS::ApplicationInsights::Application.JMXPrometheusExporter", + "markdownDescription": "A list of Java metrics to monitor for the component\\. \n*Required*: No \n*Type*: [JMXPrometheusExporter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-jmxprometheusexporter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JMXPrometheusExporter" }, "Logs": { "items": { "$ref": "#/definitions/AWS::ApplicationInsights::Application.Log" }, + "markdownDescription": "A list of logs to monitor for the component\\. Only Amazon EC2 instances can use `Logs`\\. \n*Required*: No \n*Type*: List of [Log](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-log.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Logs", "type": "array" }, "WindowsEvents": { "items": { "$ref": "#/definitions/AWS::ApplicationInsights::Application.WindowsEvent" }, + "markdownDescription": "A list of Windows Events to monitor for the component\\. Only Amazon EC2 instances running on Windows can use `WindowsEvents`\\. \n*Required*: No \n*Type*: List of [WindowsEvent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-windowsevent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WindowsEvents", "type": "array" } }, @@ -15853,12 +19394,16 @@ "additionalProperties": false, "properties": { "ComponentName": { + "markdownDescription": "The name of the component\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\d\\w\\-_\\.+]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentName", "type": "string" }, "ResourceList": { "items": { "type": "string" }, + "markdownDescription": "The list of resource ARNs that belong to the component\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceList", "type": "array" } }, @@ -15872,6 +19417,8 @@ "additionalProperties": false, "properties": { "PrometheusPort": { + "markdownDescription": "The target port to which Prometheus sends metrics\\. If not specified, the default port 9668 is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrometheusPort", "type": "string" } }, @@ -15881,18 +19428,28 @@ "additionalProperties": false, "properties": { "AgreeToInstallHANADBClient": { + "markdownDescription": "Designates whether you agree to install the HANA DB client\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AgreeToInstallHANADBClient", "type": "boolean" }, "HANAPort": { + "markdownDescription": "The HANA database port by which the exporter will query HANA metrics\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HANAPort", "type": "string" }, "HANASID": { + "markdownDescription": "The three\\-character SAP system ID \\(SID\\) of the SAP HANA system\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HANASID", "type": "string" }, "HANASecretName": { + "markdownDescription": "The AWS Secrets Manager secret that stores HANA monitoring user credentials\\. The HANA Prometheus exporter uses these credentials to connect to the database and query HANA metrics\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HANASecretName", "type": "string" }, "PrometheusPort": { + "markdownDescription": "The target port to which Prometheus sends metrics\\. If not specified, the default port 9668 is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrometheusPort", "type": "string" } }, @@ -15908,12 +19465,18 @@ "additionalProperties": false, "properties": { "HostPort": { + "markdownDescription": "The host and port to connect to through remote JMX\\. Only one of `jmxURL` and `hostPort` can be specified\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostPort", "type": "string" }, "JMXURL": { + "markdownDescription": "The complete JMX URL to connect to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JMXURL", "type": "string" }, "PrometheusPort": { + "markdownDescription": "The target port to send Prometheus metrics to\\. If not specified, the default port `9404` is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrometheusPort", "type": "string" } }, @@ -15923,18 +19486,28 @@ "additionalProperties": false, "properties": { "Encoding": { + "markdownDescription": "The type of encoding of the logs to be monitored\\. The specified encoding should be included in the list of CloudWatch agent supported encodings\\. If not provided, CloudWatch Application Insights uses the default encoding type for the log type: \n+ `APPLICATION/DEFAULT`: utf\\-8 encoding\n+ `SQL_SERVER`: utf\\-16 encoding\n+ `IIS`: ascii encoding\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encoding", "type": "string" }, "LogGroupName": { + "markdownDescription": "The CloudWatch log group name to be associated with the monitored log\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroupName", "type": "string" }, "LogPath": { + "markdownDescription": "The path of the logs to be monitored\\. The log path must be an absolute Windows or Linux system file path\\. For more information, see [CloudWatch Agent Configuration File: Logs Section](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html#CloudWatch-Agent-Configuration-File-Logssection)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogPath", "type": "string" }, "LogType": { + "markdownDescription": "The log type decides the log patterns against which Application Insights analyzes the log\\. The log type is selected from the following: `SQL_SERVER`, `MYSQL`, `MYSQL_SLOW_QUERY`, `POSTGRESQL`, `ORACLE_ALERT`, `ORACLE_LISTENER`, `IIS`, `APPLICATION`, `WINDOWS_EVENTS`, `WINDOWS_EVENTS_ACTIVE_DIRECTORY`, `WINDOWS_EVENTS_DNS `, `WINDOWS_EVENTS_IIS `, `WINDOWS_EVENTS_SHAREPOINT`, `SQL_SERVER_ALWAYSON_AVAILABILITY_GROUP`, `SQL_SERVER_FAILOVER_CLUSTER_INSTANCE`, `STEP_FUNCTION`, `API_GATEWAY_ACCESS`, `API_GATEWAY_EXECUTION`, `SAP_HANA_LOGS`, `SAP_HANA_TRACE`, `SAP_HANA_HIGH_AVAILABILITY`, and `DEFAULT`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogType", "type": "string" }, "PatternSet": { + "markdownDescription": "The log pattern set\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatternSet", "type": "string" } }, @@ -15947,12 +19520,18 @@ "additionalProperties": false, "properties": { "Pattern": { + "markdownDescription": "A regular expression that defines the log pattern\\. A log pattern can contain up to 50 characters, and it cannot be empty\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `[\\S\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Pattern", "type": "string" }, "PatternName": { + "markdownDescription": "The name of the log pattern\\. A log pattern name can contain up to 50 characters, and it cannot be empty\\. The characters can be Unicode letters, digits, or one of the following symbols: period, dash, underscore\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `[a-zA-Z0-9\\.\\-_]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatternName", "type": "string" }, "Rank": { + "markdownDescription": "The rank of the log pattern\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rank", "type": "number" } }, @@ -15970,9 +19549,13 @@ "items": { "$ref": "#/definitions/AWS::ApplicationInsights::Application.LogPattern" }, + "markdownDescription": "A list of objects that define the log patterns that belong to `LogPatternSet`\\. \n*Required*: Yes \n*Type*: List of [LogPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-logpattern.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogPatterns", "type": "array" }, "PatternSetName": { + "markdownDescription": "The name of the log pattern\\. A log pattern name can contain up to 30 characters, and it cannot be empty\\. The characters can be Unicode letters, digits, or one of the following symbols: period, dash, underscore\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `30` \n*Pattern*: `[a-zA-Z0-9\\.\\-_]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatternSetName", "type": "string" } }, @@ -15989,18 +19572,24 @@ "items": { "$ref": "#/definitions/AWS::ApplicationInsights::Application.AlarmMetric" }, + "markdownDescription": "A list of metrics to monitor for the component\\. All component types can use `AlarmMetrics`\\. \n*Required*: No \n*Type*: List of [AlarmMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-alarmmetric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmMetrics", "type": "array" }, "Logs": { "items": { "$ref": "#/definitions/AWS::ApplicationInsights::Application.Log" }, + "markdownDescription": "A list of logs to monitor for the component\\. Only Amazon EC2 instances can use `Logs`\\. \n*Required*: No \n*Type*: List of [Log](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-log.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Logs", "type": "array" }, "WindowsEvents": { "items": { "$ref": "#/definitions/AWS::ApplicationInsights::Application.WindowsEvent" }, + "markdownDescription": "A list of Windows Events to monitor for the component\\. Only Amazon EC2 instances running on Windows can use `WindowsEvents`\\. \n*Required*: No \n*Type*: List of [WindowsEvent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-windowsevent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WindowsEvents", "type": "array" } }, @@ -16010,9 +19599,13 @@ "additionalProperties": false, "properties": { "SubComponentConfigurationDetails": { - "$ref": "#/definitions/AWS::ApplicationInsights::Application.SubComponentConfigurationDetails" + "$ref": "#/definitions/AWS::ApplicationInsights::Application.SubComponentConfigurationDetails", + "markdownDescription": "The configuration settings of the sub\\-components\\. \n*Required*: Yes \n*Type*: [SubComponentConfigurationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-subcomponentconfigurationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubComponentConfigurationDetails" }, "SubComponentType": { + "markdownDescription": "The sub\\-component type\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubComponentType", "type": "string" } }, @@ -16029,15 +19622,23 @@ "items": { "type": "string" }, + "markdownDescription": "The levels of event to log\\. You must specify each level to log\\. Possible values include `INFORMATION`, `WARNING`, `ERROR`, `CRITICAL`, and `VERBOSE`\\. This field is required for each type of Windows Event to log\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventLevels", "type": "array" }, "EventName": { + "markdownDescription": "The type of Windows Events to log, equivalent to the Windows Event log channel name\\. For example, System, Security, CustomEventName, and so on\\. This field is required for each type of Windows event to log\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventName", "type": "string" }, "LogGroupName": { + "markdownDescription": "The CloudWatch log group name to be associated with the monitored log\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroupName", "type": "string" }, "PatternSet": { + "markdownDescription": "The log pattern set\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatternSet", "type": "string" } }, @@ -16084,27 +19685,37 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the data catalog\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name of the data catalog\\. The catalog name must be unique for the AWS account and can use a maximum of 128 alphanumeric, underscore, at sign, or hyphen characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Parameters": { "additionalProperties": true, + "markdownDescription": "Specifies the Lambda function or functions to use for the data catalog\\. The mapping used depends on the catalog type\\. \n+ The `HIVE` data catalog type uses the following syntax\\. The `metadata-function` parameter is required\\. `The sdk-version` parameter is optional and defaults to the currently supported version\\.", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Parameters", "type": "object" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags \\(key\\-value pairs\\) to associate with this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Type": { + "markdownDescription": "The type of data catalog: `LAMBDA` for a federated catalog, `GLUE` for AWS Glue Catalog, or `HIVE` for an external hive metastore\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -16171,18 +19782,28 @@ "additionalProperties": false, "properties": { "Database": { + "markdownDescription": "The database to which the query belongs\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Database", "type": "string" }, "Description": { + "markdownDescription": "The query description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The query name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "QueryString": { + "markdownDescription": "The SQL statements that make up the query\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `262144` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "QueryString", "type": "string" }, "WorkGroup": { + "markdownDescription": "The name of the workgroup that contains the named query\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[a-zA-Z0-9._-]{1,128}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WorkGroup", "type": "string" } }, @@ -16249,15 +19870,23 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the prepared statement\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "QueryStatement": { + "markdownDescription": "The query string for the prepared statement\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `262144` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryStatement", "type": "string" }, "StatementName": { + "markdownDescription": "The name of the prepared statement\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z_][a-zA-Z0-9_@:]{1,256}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StatementName", "type": "string" }, "WorkGroup": { + "markdownDescription": "The workgroup to which the prepared statement belongs\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WorkGroup", "type": "string" } }, @@ -16325,25 +19954,37 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The workgroup description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The workgroup name\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-zA-Z0-9._-]{1,128}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RecursiveDeleteOption": { + "markdownDescription": "The option to delete a workgroup and its contents even if the workgroup contains any named queries\\. The default is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecursiveDeleteOption", "type": "boolean" }, "State": { + "markdownDescription": "The state of the workgroup: ENABLED or DISABLED\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags \\(key\\-value pairs\\) to associate with this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "WorkGroupConfiguration": { - "$ref": "#/definitions/AWS::Athena::WorkGroup.WorkGroupConfiguration" + "$ref": "#/definitions/AWS::Athena::WorkGroup.WorkGroupConfiguration", + "markdownDescription": "The configuration of the workgroup, which includes the location in Amazon S3 where query results are stored, the encryption option, if any, used for query results, whether Amazon CloudWatch Metrics are enabled for the workgroup, and the limit for the amount of bytes scanned \\(cutoff\\) per query, if it is specified\\. The [EnforceWorkGroupConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-enforceworkgroupconfiguration) option determines whether workgroup settings override client\\-side query settings\\. \n*Required*: No \n*Type*: [WorkGroupConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WorkGroupConfiguration" } }, "required": [ @@ -16376,9 +20017,13 @@ "additionalProperties": false, "properties": { "EncryptionOption": { + "markdownDescription": "Indicates whether Amazon S3 server\\-side encryption with Amazon S3\\-managed keys \\(`SSE_S3`\\), server\\-side encryption with KMS\\-managed keys \\(`SSE_KMS`\\), or client\\-side encryption with KMS\\-managed keys \\(`CSE_KMS`\\) is used\\. \nIf a query runs in a workgroup and the workgroup overrides client\\-side settings, then the workgroup's setting for encryption is used\\. It specifies whether query results must be encrypted, for all queries that run in this workgroup\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CSE_KMS | SSE_KMS | SSE_S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionOption", "type": "string" }, "KmsKey": { + "markdownDescription": "For `SSE_KMS` and `CSE_KMS`, this is the KMS key ARN or ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKey", "type": "string" } }, @@ -16391,9 +20036,13 @@ "additionalProperties": false, "properties": { "EffectiveEngineVersion": { + "markdownDescription": "Read only\\. The engine version on which the query runs\\. If the user requests a valid engine version other than Auto, the effective engine version is the same as the engine version that the user requested\\. If the user requests Auto, the effective engine version is chosen by Athena\\. When a request to update the engine version is made by a `CreateWorkGroup` or `UpdateWorkGroup` operation, the `EffectiveEngineVersion` field is ignored\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EffectiveEngineVersion", "type": "string" }, "SelectedEngineVersion": { + "markdownDescription": "The engine version requested by the user\\. Possible values are determined by the output of `ListEngineVersions`, including Auto\\. The default is Auto\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SelectedEngineVersion", "type": "string" } }, @@ -16403,9 +20052,13 @@ "additionalProperties": false, "properties": { "EncryptionConfiguration": { - "$ref": "#/definitions/AWS::Athena::WorkGroup.EncryptionConfiguration" + "$ref": "#/definitions/AWS::Athena::WorkGroup.EncryptionConfiguration", + "markdownDescription": "If query results are encrypted in Amazon S3, indicates the encryption option used \\(for example, `SSE_KMS` or `CSE_KMS`\\) and key information\\. This is a client\\-side setting\\. If workgroup settings override client\\-side settings, then the query uses the encryption configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup\\. See [EnforceWorkGroupConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-enforceworkgroupconfiguration) and [Workgroup Settings Override Client\\-Side Settings](https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html)\\. \n*Required*: No \n*Type*: [EncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-encryptionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionConfiguration" }, "OutputLocation": { + "markdownDescription": "The location in Amazon S3 where your query results are stored, such as `s3://path/to/query/bucket/`\\. To run a query, you must specify the query results location using either a client\\-side setting for individual queries or a location specified by the workgroup\\. If workgroup settings override client\\-side settings, then the query uses the location specified for the workgroup\\. If no query location is set, Athena issues an error\\. For more information, see [Working with Query Results, Output Files, and Query History](https://docs.aws.amazon.com/athena/latest/ug/querying.html) and [EnforceWorkGroupConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-enforceworkgroupconfiguration)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputLocation", "type": "string" } }, @@ -16415,22 +20068,34 @@ "additionalProperties": false, "properties": { "BytesScannedCutoffPerQuery": { + "markdownDescription": "The upper limit \\(cutoff\\) for the amount of bytes a single query in a workgroup is allowed to scan\\. No default is defined\\. \nThis property currently supports integer types\\. Support for long values is planned\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BytesScannedCutoffPerQuery", "type": "number" }, "EnforceWorkGroupConfiguration": { + "markdownDescription": "If set to \"true\", the settings for the workgroup override client\\-side settings\\. If set to \"false\", client\\-side settings are used\\. For more information, see [Workgroup Settings Override Client\\-Side Settings](https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnforceWorkGroupConfiguration", "type": "boolean" }, "EngineVersion": { - "$ref": "#/definitions/AWS::Athena::WorkGroup.EngineVersion" + "$ref": "#/definitions/AWS::Athena::WorkGroup.EngineVersion", + "markdownDescription": "The engine version that all queries running on the workgroup use\\. Queries on the `AmazonAthenaPreviewFunctionality` workgroup run on the preview engine regardless of this setting\\. \n*Required*: No \n*Type*: [EngineVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-engineversion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EngineVersion" }, "PublishCloudWatchMetricsEnabled": { + "markdownDescription": "Indicates that the Amazon CloudWatch metrics are enabled for the workgroup\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublishCloudWatchMetricsEnabled", "type": "boolean" }, "RequesterPaysEnabled": { + "markdownDescription": "If set to `true`, allows members assigned to a workgroup to reference Amazon S3 Requester Pays buckets in queries\\. If set to `false`, workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error\\. The default is `false`\\. For more information about Requester Pays buckets, see [Requester Pays Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) in the *Amazon Simple Storage Service Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequesterPaysEnabled", "type": "boolean" }, "ResultConfiguration": { - "$ref": "#/definitions/AWS::Athena::WorkGroup.ResultConfiguration" + "$ref": "#/definitions/AWS::Athena::WorkGroup.ResultConfiguration", + "markdownDescription": "Specifies the location in Amazon S3 where query results are stored and the encryption option, if any, used for query results\\. For more information, see [Working with Query Results, Output Files, and Query History](https://docs.aws.amazon.com/athena/latest/ug/querying.html)\\. \n*Required*: No \n*Type*: [ResultConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-resultconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResultConfiguration" } }, "type": "object" @@ -16471,10 +20136,14 @@ "additionalProperties": false, "properties": { "AssessmentReportsDestination": { - "$ref": "#/definitions/AWS::AuditManager::Assessment.AssessmentReportsDestination" + "$ref": "#/definitions/AWS::AuditManager::Assessment.AssessmentReportsDestination", + "markdownDescription": "The destination that evidence reports are stored in for the assessment\\. \n*Required*: No \n*Type*: [AssessmentReportsDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-assessmentreportsdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssessmentReportsDestination" }, "AwsAccount": { - "$ref": "#/definitions/AWS::AuditManager::Assessment.AWSAccount" + "$ref": "#/definitions/AWS::AuditManager::Assessment.AWSAccount", + "markdownDescription": "The AWS account that's associated with the assessment\\. \n*Required*: No \n*Type*: [AWSAccount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-awsaccount.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AwsAccount" }, "Delegations": { "items": { @@ -16483,30 +20152,44 @@ "type": "array" }, "Description": { + "markdownDescription": "The description of the assessment\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Pattern*: `^[\\w\\W\\s\\S]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "FrameworkId": { + "markdownDescription": "The unique identifier for the framework\\. \n*Required*: No \n*Type*: String \n*Minimum*: `36` \n*Maximum*: `36` \n*Pattern*: `^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FrameworkId", "type": "string" }, "Name": { + "markdownDescription": "The name of the assessment\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Pattern*: `^[^\\\\]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Roles": { "items": { "$ref": "#/definitions/AWS::AuditManager::Assessment.Role" }, + "markdownDescription": "The roles that are associated with the assessment\\. \n*Required*: No \n*Type*: List of [Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-role.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Roles", "type": "array" }, "Scope": { - "$ref": "#/definitions/AWS::AuditManager::Assessment.Scope" + "$ref": "#/definitions/AWS::AuditManager::Assessment.Scope", + "markdownDescription": "The wrapper of AWS accounts and services that are in scope for the assessment\\. \n*Required*: No \n*Type*: [Scope](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-scope.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scope" }, "Status": { + "markdownDescription": "The overall status of the assessment\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ACTIVE | INACTIVE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags that are associated with the assessment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -16536,12 +20219,18 @@ "additionalProperties": false, "properties": { "EmailAddress": { + "markdownDescription": "The email address that's associated with the AWS account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `320` \n*Pattern*: `^.*@.*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EmailAddress", "type": "string" }, "Id": { + "markdownDescription": "The identifier for the AWS account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "string" }, "Name": { + "markdownDescription": "The name of the AWS account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `^[\\u0020-\\u007E]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" } }, @@ -16551,6 +20240,8 @@ "additionalProperties": false, "properties": { "ServiceName": { + "markdownDescription": "The name of the AWS service\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `40` \n*Pattern*: `^[a-zA-Z0-9-\\s().]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceName", "type": "string" } }, @@ -16560,9 +20251,13 @@ "additionalProperties": false, "properties": { "Destination": { + "markdownDescription": "The destination of the assessment report\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `^(S|s)3:\\/\\/[a-zA-Z0-9\\-\\.\\(\\)\\'\\*\\_\\!\\/]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination", "type": "string" }, "DestinationType": { + "markdownDescription": "The destination type, such as Amazon S3\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationType", "type": "string" } }, @@ -16572,36 +20267,58 @@ "additionalProperties": false, "properties": { "AssessmentId": { + "markdownDescription": "The identifier for the assessment that's associated with the delegation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `36` \n*Maximum*: `36` \n*Pattern*: `^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssessmentId", "type": "string" }, "AssessmentName": { + "markdownDescription": "The name of the assessment that's associated with the delegation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Pattern*: `^[^\\\\]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssessmentName", "type": "string" }, "Comment": { + "markdownDescription": "The comment that's related to the delegation\\. \n*Required*: No \n*Type*: String \n*Maximum*: `350` \n*Pattern*: `^[\\w\\W\\s\\S]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", "type": "string" }, "ControlSetId": { + "markdownDescription": "The identifier for the control set that's associated with the delegation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Pattern*: `^[\\w\\W\\s\\S]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ControlSetId", "type": "string" }, "CreatedBy": { + "markdownDescription": "The IAM user or role that created the delegation\\. \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9-_()\\\\[\\\\]\\\\s]+$` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedBy", "type": "string" }, "CreationTime": { + "markdownDescription": "Specifies when the delegation was created\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreationTime", "type": "number" }, "Id": { + "markdownDescription": "The unique identifier for the delegation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `36` \n*Maximum*: `36` \n*Pattern*: `^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "LastUpdated": { + "markdownDescription": "Specifies when the delegation was last updated\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUpdated", "type": "number" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^arn:.*:iam:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "RoleType": { + "markdownDescription": "The type of customer persona\\. \nIn `CreateAssessment`, `roleType` can only be `PROCESS_OWNER`\\. \nIn `UpdateSettings`, `roleType` can only be `PROCESS_OWNER`\\. \nIn `BatchCreateDelegationByAssessment`, `roleType` can only be `RESOURCE_OWNER`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `PROCESS_OWNER | RESOURCE_OWNER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleType", "type": "string" }, "Status": { + "markdownDescription": "The status of the delegation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `COMPLETE | IN_PROGRESS | UNDER_REVIEW` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" } }, @@ -16611,9 +20328,13 @@ "additionalProperties": false, "properties": { "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^arn:.*:iam:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "RoleType": { + "markdownDescription": "The type of customer persona\\. \nIn `CreateAssessment`, `roleType` can only be `PROCESS_OWNER`\\. \nIn `UpdateSettings`, `roleType` can only be `PROCESS_OWNER`\\. \nIn `BatchCreateDelegationByAssessment`, `roleType` can only be `RESOURCE_OWNER`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `PROCESS_OWNER | RESOURCE_OWNER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleType", "type": "string" } }, @@ -16626,12 +20347,16 @@ "items": { "$ref": "#/definitions/AWS::AuditManager::Assessment.AWSAccount" }, + "markdownDescription": "The AWS accounts that are included in the scope of the assessment\\. \n*Required*: No \n*Type*: List of [AWSAccount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-awsaccount.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsAccounts", "type": "array" }, "AwsServices": { "items": { "$ref": "#/definitions/AWS::AuditManager::Assessment.AWSService" }, + "markdownDescription": "The AWS services that are included in the scope of the assessment\\. \n*Required*: No \n*Type*: List of [AWSService](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-awsservice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsServices", "type": "array" } }, @@ -16676,114 +20401,168 @@ "additionalProperties": false, "properties": { "AutoScalingGroupName": { + "markdownDescription": "The name of the Auto Scaling group\\. This name must be unique per Region per account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutoScalingGroupName", "type": "string" }, "AvailabilityZones": { "items": { "type": "string" }, + "markdownDescription": "A list of Availability Zones where instances in the Auto Scaling group can be created\\. You must specify one of the following properties: `VPCZoneIdentifier` or `AvailabilityZones`\\. If your account supports EC2\\-Classic and VPC, this property is required to create an Auto Scaling group that launches instances into EC2\\-Classic\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZones", "type": "array" }, "CapacityRebalance": { + "markdownDescription": "Indicates whether Capacity Rebalancing is enabled\\. For more information, see [Amazon EC2 Auto Scaling Capacity Rebalancing](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityRebalance", "type": "boolean" }, "Context": { + "markdownDescription": "Reserved\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Context", "type": "string" }, "Cooldown": { + "markdownDescription": "The amount of time, in seconds, after a scaling activity completes before another scaling activity can start\\. The default value is `300`\\. This setting applies when using simple scaling policies, but not when using other scaling policies or scheduled scaling\\. For more information, see [Scaling cooldowns for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cooldown", "type": "string" }, "DefaultInstanceWarmup": { "type": "number" }, "DesiredCapacity": { + "markdownDescription": "The desired capacity is the initial capacity of the Auto Scaling group at the time of its creation and the capacity it attempts to maintain\\. It can scale beyond this capacity if you configure automatic scaling\\. \nThe number must be greater than or equal to the minimum size of the group and less than or equal to the maximum size of the group\\. If you do not specify a desired capacity when creating the stack, the default is the minimum size of the group\\. \nCloudFormation marks the Auto Scaling group as successful \\(by setting its status to CREATE\\_COMPLETE\\) when the desired capacity is reached\\. However, if a maximum Spot price is set in the launch template or launch configuration that you specified, then desired capacity is not used as a criteria for success\\. Whether your request is fulfilled depends on Spot Instance capacity and your maximum price\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DesiredCapacity", "type": "string" }, "DesiredCapacityType": { + "markdownDescription": "The unit of measurement for the value specified for desired capacity\\. Amazon EC2 Auto Scaling supports `DesiredCapacityType` for attribute\\-based instance type selection only\\. For more information, see [Creating an Auto Scaling group using attribute\\-based instance type selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \nBy default, Amazon EC2 Auto Scaling specifies `units`, which translates into number of instances\\. \nValid values: `units` \\| `vcpu` \\| `memory-mib` \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DesiredCapacityType", "type": "string" }, "HealthCheckGracePeriod": { + "markdownDescription": "The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service and marking it unhealthy due to a failed health check\\. The default value is `0`\\. For more information, see [Health checks for Auto Scaling instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \nIf you are adding an `ELB` health check, you must specify this property\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckGracePeriod", "type": "number" }, "HealthCheckType": { + "markdownDescription": "The service to use for the health checks\\. The valid values are `EC2` \\(default\\) and `ELB`\\. If you configure an Auto Scaling group to use load balancer \\(ELB\\) health checks, it considers the instance unhealthy if it fails either the EC2 status checks or the load balancer health checks\\. For more information, see [Health checks for Auto Scaling instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckType", "type": "string" }, "InstanceId": { + "markdownDescription": "The ID of the instance used to base the launch configuration on\\. If specified, Amazon EC2 Auto Scaling uses the configuration values from the specified instance to create a new launch configuration\\. For more information, see [Creating an Auto Scaling group using an EC2 instance](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-from-instance.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \nTo get the instance ID, use the EC2 [DescribeInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html) API operation\\. \nIf you specify `LaunchTemplate`, `MixedInstancesPolicy`, or `LaunchConfigurationName`, don't specify `InstanceId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceId", "type": "string" }, "LaunchConfigurationName": { + "markdownDescription": "The name of the [launch configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html) to use to launch instances\\. \nIf you specify `LaunchTemplate`, `MixedInstancesPolicy`, or `InstanceId`, don't specify `LaunchConfigurationName`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchConfigurationName", "type": "string" }, "LaunchTemplate": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification", + "markdownDescription": "Properties used to specify the [launch template](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html) and version to use to launch instances\\. You can alternatively associate a launch template to the Auto Scaling group by specifying a `MixedInstancesPolicy`\\. \nIf you omit this property, you must specify `MixedInstancesPolicy`, `LaunchConfigurationName`, or `InstanceId`\\. \n*Required*: Conditional \n*Type*: [LaunchTemplateSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplatespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplate" }, "LifecycleHookSpecificationList": { "items": { "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification" }, + "markdownDescription": "One or more lifecycle hooks for the group, which specify actions to perform when Amazon EC2 Auto Scaling launches or terminates instances\\. \n*Required*: No \n*Type*: List of [LifecycleHookSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-lifecyclehookspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LifecycleHookSpecificationList", "type": "array" }, "LoadBalancerNames": { "items": { "type": "string" }, + "markdownDescription": "A list of Classic Load Balancers associated with this Auto Scaling group\\. For Application Load Balancers, Network Load Balancers, and Gateway Load Balancers, specify the `TargetGroupARNs` property instead\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerNames", "type": "array" }, "MaxInstanceLifetime": { + "markdownDescription": "The maximum amount of time, in seconds, that an instance can be in service\\. The default is null\\. If specified, the value must be either 0 or a number equal to or greater than 86,400 seconds \\(1 day\\)\\. For more information, see [Replacing Auto Scaling instances based on maximum instance lifetime](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxInstanceLifetime", "type": "number" }, "MaxSize": { + "markdownDescription": "The maximum size of the group\\. \nWith a mixed instances policy that uses instance weighting, Amazon EC2 Auto Scaling may need to go above `MaxSize` to meet your capacity requirements\\. In this event, Amazon EC2 Auto Scaling will never go above `MaxSize` by more than your largest instance weight \\(weights that define how many units each instance contributes to the desired capacity of the group\\)\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxSize", "type": "string" }, "MetricsCollection": { "items": { "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MetricsCollection" }, + "markdownDescription": "Enables the monitoring of group metrics of an Auto Scaling group\\. By default, these metrics are disabled\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-metricscollection.html) of [MetricsCollection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-metricscollection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricsCollection", "type": "array" }, "MinSize": { + "markdownDescription": "The minimum size of the group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinSize", "type": "string" }, "MixedInstancesPolicy": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy" + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy", + "markdownDescription": "An embedded object that specifies a mixed instances policy\\. \nThe policy includes properties that not only define the distribution of On\\-Demand Instances and Spot Instances, the maximum price to pay for Spot Instances \\(optional\\), and how the Auto Scaling group allocates instance types to fulfill On\\-Demand and Spot capacities, but also the properties that specify the instance configuration information\u2014the launch template and instance types\\. The policy can also include a weight for each instance type and different launch templates for individual instance types\\. \nFor more information, see [Auto Scaling groups with multiple instance types and purchase options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \nIf you specify `LaunchTemplate`, `InstanceId`, or `LaunchConfigurationName`, don't specify `MixedInstancesPolicy`\\. \n*Required*: Conditional \n*Type*: [MixedInstancesPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-mixedinstancespolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MixedInstancesPolicy" }, "NewInstancesProtectedFromScaleIn": { + "markdownDescription": "Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto Scaling when scaling in\\. For more information about preventing instances from terminating on scale in, see [Instance Protection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NewInstancesProtectedFromScaleIn", "type": "boolean" }, "NotificationConfigurations": { "items": { "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration" }, + "markdownDescription": "Configures an Auto Scaling group to send notifications when specified events take place\\. \n*Required*: No \n*Type*: List of [NotificationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-notificationconfigurations.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationConfigurations", "type": "array" }, "PlacementGroup": { + "markdownDescription": "The name of the placement group into which you want to launch your instances\\. For more information, see [Placement groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \nA *cluster* placement group is a logical grouping of instances within a single Availability Zone\\. You cannot specify multiple Availability Zones and a cluster placement group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlacementGroup", "type": "string" }, "ServiceLinkedRoleARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the service\\-linked role that the Auto Scaling group uses to call other AWS services on your behalf\\. By default, Amazon EC2 Auto Scaling uses a service\\-linked role named `AWSServiceRoleForAutoScaling`, which it creates if it does not exist\\. For more information, see [Service\\-linked roles for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceLinkedRoleARN", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.TagProperty" }, + "markdownDescription": "One or more tags\\. You can tag your Auto Scaling group and propagate the tags to the Amazon EC2 instances it launches\\. For more information, see [Tagging Auto Scaling groups and instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: List of [TagProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TargetGroupARNs": { "items": { "type": "string" }, + "markdownDescription": "One or more Amazon Resource Names \\(ARN\\) of load balancer target groups to associate with the Auto Scaling group\\. Instances are registered as targets in a target group, and traffic is routed to the target group\\. For more information, see [Elastic Load Balancing and Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroupARNs", "type": "array" }, "TerminationPolicies": { "items": { "type": "string" }, + "markdownDescription": "A policy or a list of policies that are used to select the instances to terminate\\. The policies are executed in the order that you list them\\. The termination policies supported by Amazon EC2 Auto Scaling: `OldestInstance`, `OldestLaunchConfiguration`, `NewestInstance`, `ClosestToNextInstanceHour`, `Default`, `OldestLaunchTemplate`, and `AllocationStrategy`\\. For more information, see [Controlling which Auto Scaling instances terminate during scale in](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TerminationPolicies", "type": "array" }, "VPCZoneIdentifier": { "items": { "type": "string" }, + "markdownDescription": "A list of subnet IDs for a virtual private cloud \\(VPC\\) where instances in the Auto Scaling group can be created\\. If you specify `VPCZoneIdentifier` with `AvailabilityZones`, the subnets that you specify for this property must reside in those Availability Zones\\. \nIf this resource specifies public subnets and is also in a VPC that is defined in the same stack template, you must use the [DependsOn attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) to declare a dependency on the [VPC\\-gateway attachment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html)\\. \nWhen you update `VPCZoneIdentifier`, this retains the same Auto Scaling group and replaces old instances with new ones, according to the specified subnets\\. You can optionally specify how CloudFormation handles these updates by using an [UpdatePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html)\\.\n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "VPCZoneIdentifier", "type": "array" } }, @@ -16821,9 +20600,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", "type": "number" } }, @@ -16833,9 +20616,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The memory maximum in MiB\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The memory minimum in MiB\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", "type": "number" } }, @@ -16845,9 +20632,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum value in Mbps\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum value in Mbps\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", "type": "number" } }, @@ -16857,27 +20648,37 @@ "additionalProperties": false, "properties": { "AcceleratorCount": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.AcceleratorCountRequest" + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.AcceleratorCountRequest", + "markdownDescription": "The minimum and maximum number of accelerators \\(GPUs, FPGAs, or AWS Inferentia chips\\) for an instance type\\. \nTo exclude accelerator\\-enabled instance types, set `Max` to `0`\\. \nDefault: No minimum or maximum \n*Required*: No \n*Type*: [AcceleratorCountRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-acceleratorcountrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceleratorCount" }, "AcceleratorManufacturers": { "items": { "type": "string" }, + "markdownDescription": "Indicates whether instance types must have accelerators by specific manufacturers\\. \n+ For instance types with NVIDIA devices, specify `nvidia`\\.\n+ For instance types with AMD devices, specify `amd`\\.\n+ For instance types with AWS devices, specify `amazon-web-services`\\.\n+ For instance types with Xilinx devices, specify `xilinx`\\.\nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceleratorManufacturers", "type": "array" }, "AcceleratorNames": { "items": { "type": "string" }, + "markdownDescription": "Lists the accelerators that must be on an instance type\\. \n+ For instance types with NVIDIA A100 GPUs, specify `a100`\\.\n+ For instance types with NVIDIA V100 GPUs, specify `v100`\\.\n+ For instance types with NVIDIA K80 GPUs, specify `k80`\\.\n+ For instance types with NVIDIA T4 GPUs, specify `t4`\\.\n+ For instance types with NVIDIA M60 GPUs, specify `m60`\\.\n+ For instance types with AMD Radeon Pro V520 GPUs, specify `radeon-pro-v520`\\.\n+ For instance types with Xilinx VU9P FPGAs, specify `vu9p`\\.\nDefault: Any accelerator \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceleratorNames", "type": "array" }, "AcceleratorTotalMemoryMiB": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.AcceleratorTotalMemoryMiBRequest" + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.AcceleratorTotalMemoryMiBRequest", + "markdownDescription": "The minimum and maximum total memory size for the accelerators on an instance type, in MiB\\. \nDefault: No minimum or maximum \n*Required*: No \n*Type*: [AcceleratorTotalMemoryMiBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-acceleratortotalmemorymibrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceleratorTotalMemoryMiB" }, "AcceleratorTypes": { "items": { "type": "string" }, + "markdownDescription": "Lists the accelerator types that must be on an instance type\\. \n+ For instance types with GPU accelerators, specify `gpu`\\.\n+ For instance types with FPGA accelerators, specify `fpga`\\.\n+ For instance types with inference accelerators, specify `inference`\\.\nDefault: Any accelerator type \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceleratorTypes", "type": "array" }, "AllowedInstanceTypes": { @@ -16887,67 +20688,99 @@ "type": "array" }, "BareMetal": { + "markdownDescription": "Indicates whether bare metal instance types are included, excluded, or required\\. \nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BareMetal", "type": "string" }, "BaselineEbsBandwidthMbps": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.BaselineEbsBandwidthMbpsRequest" + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.BaselineEbsBandwidthMbpsRequest", + "markdownDescription": "The minimum and maximum baseline bandwidth performance for an instance type, in Mbps\\. For more information, see [Amazon EBS\u2013optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \nDefault: No minimum or maximum \n*Required*: No \n*Type*: [BaselineEbsBandwidthMbpsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-baselineebsbandwidthmbpsrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaselineEbsBandwidthMbps" }, "BurstablePerformance": { + "markdownDescription": "Indicates whether burstable performance instance types are included, excluded, or required\\. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BurstablePerformance", "type": "string" }, "CpuManufacturers": { "items": { "type": "string" }, + "markdownDescription": "Lists which specific CPU manufacturers to include\\. \n+ For instance types with Intel CPUs, specify `intel`\\.\n+ For instance types with AMD CPUs, specify `amd`\\.\n+ For instance types with AWS CPUs, specify `amazon-web-services`\\.\nDon't confuse the CPU hardware manufacturer with the CPU hardware architecture\\. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image \\(AMI\\) that you specify in your launch template\\. \nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CpuManufacturers", "type": "array" }, "ExcludedInstanceTypes": { "items": { "type": "string" }, + "markdownDescription": "Lists which instance types to exclude\\. You can use strings with one or more wild cards, represented by an asterisk \\(`*`\\)\\. The following are examples: `c5*`, `m5a.*`, `r*`, `*3*`\\. \nFor example, if you specify `c5*`, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types\\. If you specify `m5a.*`, you are excluding all the M5a instance types, but not the M5n instance types\\. \nDefault: No excluded instance types \n*Required*: No \n*Type*: List of String \n*Maximum*: `400` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludedInstanceTypes", "type": "array" }, "InstanceGenerations": { "items": { "type": "string" }, + "markdownDescription": "Indicates whether current or previous generation instance types are included\\. \n+ For current generation instance types, specify `current`\\. The current generation includes EC2 instance types currently recommended for use\\. This typically includes the latest two to three generations in each instance family\\. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide for Linux Instances*\\.\n+ For previous generation instance types, specify `previous`\\.\nDefault: Any current or previous generation \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceGenerations", "type": "array" }, "LocalStorage": { + "markdownDescription": "Indicates whether instance types with instance store volumes are included, excluded, or required\\. For more information, see [Amazon EC2 instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \nDefault: `included` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocalStorage", "type": "string" }, "LocalStorageTypes": { "items": { "type": "string" }, + "markdownDescription": "Indicates the type of local storage that is required\\. \n+ For instance types with hard disk drive \\(HDD\\) storage, specify `hdd`\\.\n+ For instance types with solid state drive \\(SSD\\) storage, specify `sdd`\\.\nDefault: Any local storage type \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocalStorageTypes", "type": "array" }, "MemoryGiBPerVCpu": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MemoryGiBPerVCpuRequest" + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MemoryGiBPerVCpuRequest", + "markdownDescription": "The minimum and maximum amount of memory per vCPU for an instance type, in GiB\\. \nDefault: No minimum or maximum \n*Required*: No \n*Type*: [MemoryGiBPerVCpuRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-memorygibpervcpurequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MemoryGiBPerVCpu" }, "MemoryMiB": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MemoryMiBRequest" + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MemoryMiBRequest", + "markdownDescription": "The minimum and maximum instance memory size for an instance type, in MiB\\. \n*Required*: No \n*Type*: [MemoryMiBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-memorymibrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MemoryMiB" }, "NetworkBandwidthGbps": { "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NetworkBandwidthGbpsRequest" }, "NetworkInterfaceCount": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NetworkInterfaceCountRequest" + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NetworkInterfaceCountRequest", + "markdownDescription": "The minimum and maximum number of network interfaces for an instance type\\. \nDefault: No minimum or maximum \n*Required*: No \n*Type*: [NetworkInterfaceCountRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-networkinterfacecountrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkInterfaceCount" }, "OnDemandMaxPricePercentageOverLowestPrice": { + "markdownDescription": "The price protection threshold for On\\-Demand Instances\\. This is the maximum you\u2019ll pay for an On\\-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes\\. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold\\. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage\\. To turn off price protection, specify a high value, such as `999999`\\. \nIf you set `DesiredCapacityType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price\\. \nDefault: `20` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnDemandMaxPricePercentageOverLowestPrice", "type": "number" }, "RequireHibernateSupport": { + "markdownDescription": "Indicates whether instance types must provide On\\-Demand Instance hibernation support\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequireHibernateSupport", "type": "boolean" }, "SpotMaxPricePercentageOverLowestPrice": { + "markdownDescription": "The price protection threshold for Spot Instances\\. This is the maximum you\u2019ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes\\. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold\\. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage\\. To turn off price protection, specify a high value, such as `999999`\\. \nIf you set `DesiredCapacityType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price\\. \nDefault: `100` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpotMaxPricePercentageOverLowestPrice", "type": "number" }, "TotalLocalStorageGB": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.TotalLocalStorageGBRequest" + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.TotalLocalStorageGBRequest", + "markdownDescription": "The minimum and maximum total local storage size for an instance type, in GB\\. \nDefault: No minimum or maximum \n*Required*: No \n*Type*: [TotalLocalStorageGBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-totallocalstoragegbrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TotalLocalStorageGB" }, "VCpuCount": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.VCpuCountRequest" + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.VCpuCountRequest", + "markdownDescription": "The minimum and maximum number of vCPUs for an instance type\\. \n*Required*: No \n*Type*: [VCpuCountRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-vcpucountrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VCpuCount" } }, "type": "object" @@ -16956,21 +20789,33 @@ "additionalProperties": false, "properties": { "OnDemandAllocationStrategy": { + "markdownDescription": "The order of the launch template overrides to use in fulfilling On\\-Demand capacity\\. \nIf you specify `lowest-price`, Amazon EC2 Auto Scaling uses price to determine the order, launching the lowest price first\\. \nIf you specify `prioritized`, Amazon EC2 Auto Scaling uses the priority that you assigned to each launch template override, launching the highest priority first\\. If all your On\\-Demand capacity cannot be fulfilled using your highest priority instance, then Amazon EC2 Auto Scaling launches the remaining capacity using the second priority instance type, and so on\\. \nDefault: `lowest-price` for Auto Scaling groups that specify the `InstanceRequirements` property in the overrides and `prioritized` for Auto Scaling groups that don't\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnDemandAllocationStrategy", "type": "string" }, "OnDemandBaseCapacity": { + "markdownDescription": "The minimum amount of the Auto Scaling group's capacity that must be fulfilled by On\\-Demand Instances\\. This base portion is launched first as your group scales\\. \nIf you specify weights for the instance types in the overrides, the base capacity is measured in the same unit of measurement as the instance types\\. If you specify the `InstanceRequirements` property in the overrides, the base capacity is measured in the same unit of measurement as your group's desired capacity\\. \nDefault: `0` \nAn update to this setting means a gradual replacement of instances to adjust the current On\\-Demand Instance levels\\. When replacing instances, Amazon EC2 Auto Scaling launches new instances before terminating the previous ones\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "OnDemandBaseCapacity", "type": "number" }, "OnDemandPercentageAboveBaseCapacity": { + "markdownDescription": "Controls the percentages of On\\-Demand Instances and Spot Instances for your additional capacity beyond `OnDemandBaseCapacity`\\. Expressed as a number \\(for example, 20 specifies 20% On\\-Demand Instances, 80% Spot Instances\\)\\. If set to 100, only On\\-Demand Instances are used\\. \nDefault: `100` \nAn update to this setting means a gradual replacement of instances to adjust the current On\\-Demand and Spot Instance levels for your additional capacity higher than the base capacity\\. When replacing instances, Amazon EC2 Auto Scaling launches new instances before terminating the previous ones\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "OnDemandPercentageAboveBaseCapacity", "type": "number" }, "SpotAllocationStrategy": { + "markdownDescription": "If the allocation strategy is `lowest-price`, the Auto Scaling group launches instances using the Spot pools with the lowest price, and evenly allocates your instances across the number of Spot pools that you specify\\. \nIf the allocation strategy is `capacity-optimized` \\(recommended\\), the Auto Scaling group launches instances using Spot pools that are optimally chosen based on the available Spot capacity\\. Alternatively, you can use `capacity-optimized-prioritized` and set the order of instance types in the list of launch template overrides from highest to lowest priority \\(from first to last in the list\\)\\. Amazon EC2 Auto Scaling honors the instance type priorities on a best\\-effort basis but optimizes for capacity first\\. \nDefault: `lowest-price` \nValid values: `lowest-price` \\| `capacity-optimized` \\| `capacity-optimized-prioritized` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpotAllocationStrategy", "type": "string" }, "SpotInstancePools": { + "markdownDescription": "The number of Spot Instance pools to use to allocate your Spot capacity\\. The Spot pools are determined from the different instance types in the overrides\\. Valid only when the Spot allocation strategy is `lowest-price`\\. Value must be in the range of 1\u201320\\. \nDefault: `2` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpotInstancePools", "type": "number" }, "SpotMaxPrice": { + "markdownDescription": "The maximum price per unit hour that you are willing to pay for a Spot Instance\\. If you leave the value at its default \\(empty\\), Amazon EC2 Auto Scaling uses the On\\-Demand price as the maximum Spot price\\. To remove a value that you previously set, include the property but specify an empty string \\(\"\"\\) for the value\\. \nIf your maximum price is lower than the Spot price for the instance types that you selected, your Spot Instances are not launched\\.\nValid Range: Minimum value of 0\\.001 \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpotMaxPrice", "type": "string" } }, @@ -16980,12 +20825,16 @@ "additionalProperties": false, "properties": { "LaunchTemplateSpecification": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification", + "markdownDescription": "The launch template to use\\. \n*Required*: Yes \n*Type*: [LaunchTemplateSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplatespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplateSpecification" }, "Overrides": { "items": { "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides" }, + "markdownDescription": "Any properties that you specify override the same properties in the launch template\\. If not provided, Amazon EC2 Auto Scaling uses the instance type or instance requirements specified in the launch template when it launches an instance\\. \nThe overrides can include either one or more instance types or a set of instance requirements, but not both\\. \n*Required*: No \n*Type*: List of [LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Overrides", "type": "array" } }, @@ -16998,15 +20847,23 @@ "additionalProperties": false, "properties": { "InstanceRequirements": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.InstanceRequirements" + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.InstanceRequirements", + "markdownDescription": "The instance requirements\\. When you specify instance requirements, Amazon EC2 Auto Scaling finds instance types that satisfy your requirements, and then uses your On\\-Demand and Spot allocation strategies to launch instances from these instance types, in the same way as when you specify a list of specific instance types\\. \n`InstanceRequirements` are incompatible with the `InstanceType` property\\. If you specify both of these properties, Amazon EC2 Auto Scaling will return a `ValidationException` exception\\. \n*Required*: No \n*Type*: [InstanceRequirements](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-instancerequirements.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceRequirements" }, "InstanceType": { + "markdownDescription": "The instance type, such as `m3.xlarge`\\. You must use an instance type that is supported in your requested Region and Availability Zones\\. For more information, see [Available instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes) in the *Amazon EC2 User Guide for Linux Instances\\.* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", "type": "string" }, "LaunchTemplateSpecification": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification", + "markdownDescription": "Provides a launch template for the specified instance type or instance requirements\\. For example, some instance types might require a launch template with a different AMI\\. If not provided, Amazon EC2 Auto Scaling uses the launch template that's defined for your mixed instances policy\\. For more information, see [Specifying a different launch template for an instance type](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups-launch-template-overrides.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: [LaunchTemplateSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplatespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplateSpecification" }, "WeightedCapacity": { + "markdownDescription": "The number of capacity units provided by the instance type specified in `InstanceType` in terms of virtual CPUs, memory, storage, throughput, or other relative performance characteristic\\. When a Spot or On\\-Demand Instance is provisioned, the capacity units count toward the desired capacity\\. Amazon EC2 Auto Scaling provisions instances until the desired capacity is totally fulfilled, even if this results in an overage\\. For example, if there are 2 units remaining to fulfill capacity, and Amazon EC2 Auto Scaling can only provision an instance with a `WeightedCapacity` of 5 units, the instance is provisioned, and the desired capacity is exceeded by 3 units\\. For more information, see [Instance weighting for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups-instance-weighting.html) in the *Amazon EC2 Auto Scaling User Guide*\\. Value must be in the range of 1\\-999\\. \nEvery Auto Scaling group has three size parameters \\(`DesiredCapacity`, `MaxSize`, and `MinSize`\\)\\. Usually, you set these sizes based on a specific number of instances\\. However, if you configure a mixed instances policy that defines weights for the instance types, you must specify these sizes with the same units that you use for weighting instances\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WeightedCapacity", "type": "string" } }, @@ -17016,12 +20873,18 @@ "additionalProperties": false, "properties": { "LaunchTemplateId": { + "markdownDescription": "The ID of the [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html)\\. You must specify either a `LaunchTemplateName` or a `LaunchTemplateId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplateId", "type": "string" }, "LaunchTemplateName": { + "markdownDescription": "The name of the [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html)\\. You must specify either a `LaunchTemplateName` or a `LaunchTemplateId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplateName", "type": "string" }, "Version": { + "markdownDescription": "The version number\\. CloudFormation does not support specifying $Latest, or $Default for the template version number\\. However, you can specify `LatestVersionNumber` or `DefaultVersionNumber` using the `Fn::GetAtt` function\\. \nFor an example of using the `Fn::GetAtt` function, see the [Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#aws-properties-as-group--examples) section of the `AWS::AutoScaling::AutoScalingGroup` documentation\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -17034,24 +20897,38 @@ "additionalProperties": false, "properties": { "DefaultResult": { + "markdownDescription": "The action the Auto Scaling group takes when the lifecycle hook timeout elapses or if an unexpected failure occurs\\. The valid values are `CONTINUE` and `ABANDON` \\(default\\)\\. \nFor more information, see [Adding lifecycle hooks](https://docs.aws.amazon.com/autoscaling/ec2/userguide/adding-lifecycle-hooks.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultResult", "type": "string" }, "HeartbeatTimeout": { + "markdownDescription": "The maximum time, in seconds, that can elapse before the lifecycle hook times out\\. If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the default action\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeartbeatTimeout", "type": "number" }, "LifecycleHookName": { + "markdownDescription": "The name of the lifecycle hook\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[A-Za-z0-9\\-_\\/]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LifecycleHookName", "type": "string" }, "LifecycleTransition": { + "markdownDescription": "The state of the EC2 instance to attach the lifecycle hook to\\. The valid values are: \n+ autoscaling:EC2\\_INSTANCE\\_LAUNCHING\n+ autoscaling:EC2\\_INSTANCE\\_TERMINATING\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LifecycleTransition", "type": "string" }, "NotificationMetadata": { + "markdownDescription": "Additional information that you want to include any time Amazon EC2 Auto Scaling sends a message to the notification target\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1023` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationMetadata", "type": "string" }, "NotificationTargetARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the notification target that Amazon EC2 Auto Scaling uses to notify you when an instance is in the transition state for the lifecycle hook\\. You can specify an Amazon SQS queue or an Amazon SNS topic\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationTargetARN", "type": "string" }, "RoleARN": { + "markdownDescription": "The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target, for example, an Amazon SNS topic or an Amazon SQS queue\\. For information about creating this role, see [Configuring a notification target for a lifecycle hook](https://docs.aws.amazon.com/autoscaling/ec2/userguide/configuring-lifecycle-hook-notifications.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleARN", "type": "string" } }, @@ -17065,9 +20942,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The memory maximum in GiB\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The memory minimum in GiB\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", "type": "number" } }, @@ -17077,9 +20958,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The memory maximum in MiB\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The memory minimum in MiB\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", "type": "number" } }, @@ -17089,12 +20974,16 @@ "additionalProperties": false, "properties": { "Granularity": { + "markdownDescription": "The frequency at which Amazon EC2 Auto Scaling sends aggregated data to CloudWatch\\. \n*Allowed Values*: `1Minute` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Granularity", "type": "string" }, "Metrics": { "items": { "type": "string" }, + "markdownDescription": "Specifies which group\\-level metrics to start collecting\\. \n*Allowed Values*: \n+ `GroupMinSize` \n+ `GroupMaxSize` \n+ `GroupDesiredCapacity` \n+ `GroupInServiceInstances` \n+ `GroupPendingInstances` \n+ `GroupStandbyInstances` \n+ `GroupTerminatingInstances` \n+ `GroupTotalInstances` \n+ `GroupInServiceCapacity` \n+ `GroupPendingCapacity` \n+ `GroupStandbyCapacity` \n+ `GroupTerminatingCapacity` \n+ `GroupTotalCapacity` \n+ `WarmPoolDesiredCapacity` \n+ `WarmPoolWarmedCapacity` \n+ `WarmPoolPendingCapacity` \n+ `WarmPoolTerminatingCapacity` \n+ `WarmPoolTotalCapacity` \n+ `GroupAndWarmPoolDesiredCapacity` \n+ `GroupAndWarmPoolTotalCapacity` \nIf you specify `Granularity` and don't specify any metrics, all metrics are enabled\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metrics", "type": "array" } }, @@ -17107,10 +20996,14 @@ "additionalProperties": false, "properties": { "InstancesDistribution": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.InstancesDistribution" + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.InstancesDistribution", + "markdownDescription": "The instances distribution to use\\. If you leave this property unspecified, the value for each property in `InstancesDistribution` uses a default value\\. \n*Required*: No \n*Type*: [InstancesDistribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-instancesdistribution.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstancesDistribution" }, "LaunchTemplate": { - "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplate" + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplate", + "markdownDescription": "Specifies the launch template to use and optionally the instance types \\(overrides\\) that are used to provision EC2 instances to fulfill On\\-Demand and Spot capacities\\. \n*Required*: Yes \n*Type*: [LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplate" } }, "required": [ @@ -17134,9 +21027,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum number of network interfaces\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum number of network interfaces\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", "type": "number" } }, @@ -17149,9 +21046,13 @@ "items": { "type": "string" }, + "markdownDescription": "A list of event types that trigger a notification\\. Event types can include any of the following types\\. \n*Allowed Values*: \n+ `autoscaling:EC2_INSTANCE_LAUNCH` \n+ `autoscaling:EC2_INSTANCE_LAUNCH_ERROR` \n+ `autoscaling:EC2_INSTANCE_TERMINATE` \n+ `autoscaling:EC2_INSTANCE_TERMINATE_ERROR` \n+ `autoscaling:TEST_NOTIFICATION` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationTypes", "type": "array" }, "TopicARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TopicARN", "type": "string" } }, @@ -17164,12 +21065,18 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The tag key\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "PropagateAtLaunch": { + "markdownDescription": "Set to `true` if you want CloudFormation to copy the tag to EC2 instances that are launched as part of the Auto Scaling group\\. Set to `false` if you want the tag attached only to the Auto Scaling group and not copied to any instances launched as part of the Auto Scaling group\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropagateAtLaunch", "type": "boolean" }, "Value": { + "markdownDescription": "The tag value\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -17184,9 +21091,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The storage maximum in GB\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The storage minimum in GB\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", "type": "number" } }, @@ -17196,9 +21107,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum number of vCPUs\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum number of vCPUs\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", "type": "number" } }, @@ -17240,69 +21155,107 @@ "additionalProperties": false, "properties": { "AssociatePublicIpAddress": { + "markdownDescription": "For Auto Scaling groups that are running in a virtual private cloud \\(VPC\\), specifies whether to assign a public IP address to the group's instances\\. If you specify `true`, each instance in the Auto Scaling group receives a unique public IP address\\. For more information, see [Launching Auto Scaling instances in a VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \nIf an instance receives a public IP address and is also in a VPC that is defined in the same stack template, you must use the [DependsOn attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) to declare a dependency on the [VPC\\-gateway attachment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html)\\. \nIf the instance is launched into a default subnet, the default is to assign a public IP address, unless you disabled the option to assign a public IP address on the subnet\\. If the instance is launched into a nondefault subnet, the default is not to assign a public IP address, unless you enabled the option to assign a public IP address on the subnet\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AssociatePublicIpAddress", "type": "boolean" }, "BlockDeviceMappings": { "items": { "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping" }, + "markdownDescription": "Specifies how block devices are exposed to the instance\\. You can specify virtual devices and EBS volumes\\. \n*Required*: No \n*Type*: List of [BlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-blockdevicemapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BlockDeviceMappings", "type": "array" }, "ClassicLinkVPCId": { + "markdownDescription": "*EC2\\-Classic retires on August 15, 2022\\. This parameter is not supported after that date\\.* \nThe ID of a ClassicLink\\-enabled VPC to link your EC2\\-Classic instances to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClassicLinkVPCId", "type": "string" }, "ClassicLinkVPCSecurityGroups": { "items": { "type": "string" }, + "markdownDescription": "*EC2\\-Classic retires on August 15, 2022\\. This parameter is not supported after that date\\.* \nThe IDs of one or more security groups for the VPC that you specified in the `ClassicLinkVPCId` property\\. \nIf you specify the `ClassicLinkVPCId` property, you must specify this property\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClassicLinkVPCSecurityGroups", "type": "array" }, "EbsOptimized": { + "markdownDescription": "Specifies whether the launch configuration is optimized for EBS I/O \\(`true`\\) or not \\(`false`\\)\\. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance\\. Additional fees are incurred when you enable EBS optimization for an instance type that is not EBS\\-optimized by default\\. For more information, see [Amazon EBS\u2013optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \nThe default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsOptimized", "type": "boolean" }, "IamInstanceProfile": { + "markdownDescription": "Provides the name or the Amazon Resource Name \\(ARN\\) of the instance profile associated with the IAM role for the instance\\. The instance profile contains the IAM role\\. \nFor more information, see [IAM role for applications that run on Amazon EC2 instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/us-iam-role.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IamInstanceProfile", "type": "string" }, "ImageId": { + "markdownDescription": "Provides the unique ID of the Amazon Machine Image \\(AMI\\) that was assigned during registration\\. For more information, see [Finding a Linux AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageId", "type": "string" }, "InstanceId": { + "markdownDescription": "The ID of the Amazon EC2 instance you want to use to create the launch configuration\\. Use this property if you want the launch configuration to use settings from an existing Amazon EC2 instance\\. When you use an instance to create a launch configuration, all properties are derived from the instance with the exception of `BlockDeviceMapping` and `AssociatePublicIpAddress`\\. You can override any properties from the instance by specifying them in the launch configuration\\. \n \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceId", "type": "string" }, "InstanceMonitoring": { + "markdownDescription": "Controls whether instances in this group are launched with detailed \\(`true`\\) or basic \\(`false`\\) monitoring\\. The default value is `true` \\(enabled\\)\\. \nWhen detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and your account is charged a fee\\. When you disable detailed monitoring, CloudWatch generates metrics every 5 minutes\\. For more information, see [Configure monitoring for Auto Scaling instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/as-instance-monitoring.html#enable-as-instance-metrics) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceMonitoring", "type": "boolean" }, "InstanceType": { + "markdownDescription": "Specifies the instance type of the EC2 instance\\. For information about available instance types, see [Available instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", "type": "string" }, "KernelId": { + "markdownDescription": "Provides the ID of the kernel associated with the EC2 AMI\\. \nWe recommend that you use PV\\-GRUB instead of kernels and RAM disks\\. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedKernels.html) in the *Amazon EC2 User Guide for Linux Instances*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KernelId", "type": "string" }, "KeyName": { + "markdownDescription": "Provides the name of the EC2 key pair\\. \nIf you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in\\. For information on creating a key pair, see [Amazon EC2 key pairs and Linux instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyName", "type": "string" }, "LaunchConfigurationName": { + "markdownDescription": "The name of the launch configuration\\. This name must be unique per Region per account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchConfigurationName", "type": "string" }, "MetadataOptions": { - "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.MetadataOptions" + "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.MetadataOptions", + "markdownDescription": "The metadata options for the instances\\. For more information, see [Configuring the Instance Metadata Options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: [MetadataOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-metadataoptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetadataOptions" }, "PlacementTenancy": { + "markdownDescription": "The tenancy of the instance, either `default` or `dedicated`\\. An instance with `dedicated` tenancy runs on isolated, single\\-tenant hardware and can only be launched into a VPC\\. You must set the value of this property to `dedicated` if want to launch dedicated instances in a shared tenancy VPC \\(a VPC with the instance placement tenancy attribute set to default\\)\\. \nIf you specify this property, you must specify at least one subnet in the `VPCZoneIdentifier` property of the [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html) resource\\. \nFor more information, see [Configuring instance tenancy with Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-dedicated-instances.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlacementTenancy", "type": "string" }, "RamDiskId": { + "markdownDescription": "The ID of the RAM disk to select\\. \nWe recommend that you use PV\\-GRUB instead of kernels and RAM disks\\. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedKernels.html) in the *Amazon EC2 User Guide for Linux Instances*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RamDiskId", "type": "string" }, "SecurityGroups": { "items": { "type": "string" }, + "markdownDescription": "A list that contains the security groups to assign to the instances in the Auto Scaling group\\. The list can contain both the IDs of existing security groups and references to [SecurityGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html) resources created in the template\\. \nFor more information, see [Security groups for your VPC](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html) in the *Amazon Virtual Private Cloud User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroups", "type": "array" }, "SpotPrice": { + "markdownDescription": "The maximum hourly price you are willing to pay for any Spot Instances launched to fulfill the request\\. Spot Instances are launched when the price you specify exceeds the current Spot price\\. For more information, see [Requesting Spot Instances for fault\\-tolerant and flexible applications ](https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-configuration-requesting-spot-instances.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \nWhen you change your maximum price by creating a new launch configuration, running instances will continue to run as long as the maximum price for those running instances is higher than the current Spot price\\.\nValid Range: Minimum value of 0\\.001 \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpotPrice", "type": "string" }, "UserData": { + "markdownDescription": "The Base64\\-encoded user data to make available to the launched EC2 instances\\. \nFor more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: No \n*Type*: String \n*Maximum*: `21847` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserData", "type": "string" } }, @@ -17337,24 +21290,38 @@ "additionalProperties": false, "properties": { "DeleteOnTermination": { + "markdownDescription": "Indicates whether the volume is deleted on instance termination\\. For Amazon EC2 Auto Scaling, the default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeleteOnTermination", "type": "boolean" }, "Encrypted": { + "markdownDescription": "Specifies whether the volume should be encrypted\\. Encrypted EBS volumes can only be attached to instances that support Amazon EBS encryption\\. For more information, see [Supported instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances)\\. If your AMI uses encrypted volumes, you can also only launch it on supported instance types\\. \nIf you are creating a volume from a snapshot, you cannot create an unencrypted volume from an encrypted snapshot\\. Also, you cannot specify a KMS key ID when using a launch configuration\\. \nIf you enable encryption by default, the EBS volumes that you create are always encrypted, either using the AWS managed KMS key or a customer\\-managed KMS key, regardless of whether the snapshot was encrypted\\. \nFor more information, see [Using AWS KMS keys to encrypt Amazon EBS volumes](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-data-protection.html#encryption) in the *Amazon EC2 Auto Scaling User Guide*\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Encrypted", "type": "boolean" }, "Iops": { + "markdownDescription": "The number of input/output \\(I/O\\) operations per second \\(IOPS\\) to provision for the volume\\. For `gp3` and `io1` volumes, this represents the number of IOPS that are provisioned for the volume\\. For `gp2` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting\\. \nThe following are the supported values for each volume type: \n+ `gp3`: 3,000\\-16,000 IOPS\n+ `io1`: 100\\-64,000 IOPS\nFor `io1` volumes, we guarantee 64,000 IOPS only for [Instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)\\. Other instance families guarantee performance up to 32,000 IOPS\\. \n `Iops` is supported when the volume type is `gp3` or `io1` and required only when the volume type is `io1`\\. \\(Not used with `standard`, `gp2`, `st1`, or `sc1` volumes\\.\\) \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Iops", "type": "number" }, "SnapshotId": { + "markdownDescription": "The snapshot ID of the volume to use\\. \nYou must specify either a `VolumeSize` or a `SnapshotId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotId", "type": "string" }, "Throughput": { + "markdownDescription": "The throughput \\(MiBps\\) to provision for a `gp3` volume\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `125` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Throughput", "type": "number" }, "VolumeSize": { + "markdownDescription": "The volume size, in GiBs\\. The following are the supported volumes sizes for each volume type: \n+ `gp2` and `gp3`: 1\\-16,384\n+ `io1`: 4\\-16,384\n+ `st1` and `sc1`: 125\\-16,384\n+ `standard`: 1\\-1,024\nYou must specify either a `SnapshotId` or a `VolumeSize`\\. If you specify both `SnapshotId` and `VolumeSize`, the volume size must be equal or greater than the size of the snapshot\\. \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `16384` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeSize", "type": "number" }, "VolumeType": { + "markdownDescription": "The volume type\\. For more information, see [Amazon EBS Volume Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \nValid Values: `standard` \\| `io1` \\| `gp2` \\| `st1` \\| `sc1` \\| `gp3` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeType", "type": "string" } }, @@ -17364,15 +21331,23 @@ "additionalProperties": false, "properties": { "DeviceName": { + "markdownDescription": "The device name exposed to the EC2 instance \\(for example, `/dev/sdh` or `xvdh`\\)\\. For more information, see [Device naming on Linux instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceName", "type": "string" }, "Ebs": { - "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDevice" + "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDevice", + "markdownDescription": "Parameters used to automatically set up EBS volumes when an instance is launched\\. \nYou can specify either `VirtualName` or `Ebs`, but not both\\. \n*Required*: No \n*Type*: [BlockDevice](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-blockdevice.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ebs" }, "NoDevice": { + "markdownDescription": "Setting this value to `true` suppresses the specified device included in the block device mapping of the AMI\\. \nIf `NoDevice` is `true` for the root device, instances might fail the EC2 health check\\. In that case, Amazon EC2 Auto Scaling launches replacement instances\\. \nIf you specify `NoDevice`, you cannot specify `Ebs`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NoDevice", "type": "boolean" }, "VirtualName": { + "markdownDescription": "The name of the virtual device\\. The name must be in the form ephemeral*X* where *X* is a number starting from zero \\(0\\), for example, `ephemeral0`\\. \nYou can specify either `VirtualName` or `Ebs`, but not both\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VirtualName", "type": "string" } }, @@ -17385,12 +21360,18 @@ "additionalProperties": false, "properties": { "HttpEndpoint": { + "markdownDescription": "This parameter enables or disables the HTTP metadata endpoint on your instances\\. If the parameter is not specified, the default state is `enabled`\\. \nIf you specify a value of `disabled`, you will not be able to access your instance metadata\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disabled | enabled` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HttpEndpoint", "type": "string" }, "HttpPutResponseHopLimit": { + "markdownDescription": "The desired HTTP PUT response hop limit for instance metadata requests\\. The larger the number, the further instance metadata requests can travel\\. \nDefault: 1 \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HttpPutResponseHopLimit", "type": "number" }, "HttpTokens": { + "markdownDescription": "The state of token usage for your instance metadata requests\\. If the parameter is not specified in the request, the default state is `optional`\\. \nIf the state is `optional`, you can choose to retrieve instance metadata with or without a signed token header on your request\\. If you retrieve the IAM role credentials without a token, the version 1\\.0 role credentials are returned\\. If you retrieve the IAM role credentials using a valid signed token, the version 2\\.0 role credentials are returned\\. \nIf the state is `required`, you must send a signed token header with any instance metadata retrieval requests\\. In this state, retrieving the IAM role credentials always returns the version 2\\.0 credentials; the version 1\\.0 credentials are not available\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `optional | required` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HttpTokens", "type": "string" } }, @@ -17432,27 +21413,43 @@ "additionalProperties": false, "properties": { "AutoScalingGroupName": { + "markdownDescription": "The name of the Auto Scaling group for the lifecycle hook\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutoScalingGroupName", "type": "string" }, "DefaultResult": { + "markdownDescription": "The action the Auto Scaling group takes when the lifecycle hook timeout elapses or if an unexpected failure occurs\\. The valid values are `CONTINUE` and `ABANDON` \\(default\\)\\. \nFor more information, see [Adding lifecycle hooks](https://docs.aws.amazon.com/autoscaling/ec2/userguide/adding-lifecycle-hooks.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultResult", "type": "string" }, "HeartbeatTimeout": { + "markdownDescription": "The maximum time, in seconds, that can elapse before the lifecycle hook times out\\. The range is from `30` to `7200` seconds\\. The default value is `3600` seconds \\(1 hour\\)\\. If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the action that you specified in the `DefaultResult` property\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeartbeatTimeout", "type": "number" }, "LifecycleHookName": { + "markdownDescription": "The name of the lifecycle hook\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[A-Za-z0-9\\-_\\/]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LifecycleHookName", "type": "string" }, "LifecycleTransition": { + "markdownDescription": "The instance state to which you want to attach the lifecycle hook\\. The valid values are: \n+ autoscaling:EC2\\_INSTANCE\\_LAUNCHING\n+ autoscaling:EC2\\_INSTANCE\\_TERMINATING\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LifecycleTransition", "type": "string" }, "NotificationMetadata": { + "markdownDescription": "Additional information that is included any time Amazon EC2 Auto Scaling sends a message to the notification target\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1023` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationMetadata", "type": "string" }, "NotificationTargetARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the notification target that Amazon EC2 Auto Scaling uses to notify you when an instance is in the transition state for the lifecycle hook\\. You can specify an Amazon SQS queue or an Amazon SNS topic\\. The notification message includes the following information: lifecycle action token, user account ID, Auto Scaling group name, lifecycle hook name, instance ID, lifecycle transition, and notification metadata\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationTargetARN", "type": "string" }, "RoleARN": { + "markdownDescription": "The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target, for example, an Amazon SNS topic or an Amazon SQS queue\\. For information about creating this role, see [Configuring a notification target for a lifecycle hook](https://docs.aws.amazon.com/autoscaling/ec2/userguide/configuring-lifecycle-hook-notifications.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleARN", "type": "string" } }, @@ -17519,40 +21516,62 @@ "additionalProperties": false, "properties": { "AdjustmentType": { + "markdownDescription": "Specifies how the scaling adjustment is interpreted\\. The valid values are `ChangeInCapacity`, `ExactCapacity`, and `PercentChangeInCapacity`\\. \nRequired if the policy type is `StepScaling` or `SimpleScaling`\\. For more information, see [Scaling adjustment types](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html#as-scaling-adjustment) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdjustmentType", "type": "string" }, "AutoScalingGroupName": { + "markdownDescription": "The name of the Auto Scaling group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoScalingGroupName", "type": "string" }, "Cooldown": { + "markdownDescription": "The duration of the policy's cooldown period, in seconds\\. When a cooldown period is specified here, it overrides the default cooldown period defined for the Auto Scaling group\\. \nValid only if the policy type is `SimpleScaling`\\. For more information, see [Scaling cooldowns for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cooldown", "type": "string" }, "EstimatedInstanceWarmup": { + "markdownDescription": "The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics\\. If not provided, the default is to use the value from the default cooldown period for the Auto Scaling group\\. \nValid only if the policy type is `TargetTrackingScaling` or `StepScaling`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EstimatedInstanceWarmup", "type": "number" }, "MetricAggregationType": { + "markdownDescription": "The aggregation type for the CloudWatch metrics\\. The valid values are `Minimum`, `Maximum`, and `Average`\\. If the aggregation type is null, the value is treated as `Average`\\. \nValid only if the policy type is `StepScaling`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricAggregationType", "type": "string" }, "MinAdjustmentMagnitude": { + "markdownDescription": "The minimum value to scale by when the adjustment type is `PercentChangeInCapacity`\\. For example, suppose that you create a step scaling policy to scale out an Auto Scaling group by 25 percent and you specify a `MinAdjustmentMagnitude` of 2\\. If the group has 4 instances and the scaling policy is performed, 25 percent of 4 is 1\\. However, because you specified a `MinAdjustmentMagnitude` of 2, Amazon EC2 Auto Scaling scales out the group by 2 instances\\. \nValid only if the policy type is `StepScaling` or `SimpleScaling`\\. For more information, see [Scaling adjustment types](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html#as-scaling-adjustment) in the *Amazon EC2 Auto Scaling User Guide*\\. \nSome Auto Scaling groups use instance weights\\. In this case, set the `MinAdjustmentMagnitude` to a value that is at least as large as your largest instance weight\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinAdjustmentMagnitude", "type": "number" }, "PolicyType": { + "markdownDescription": "One of the following policy types: \n+ `TargetTrackingScaling` \n+ `StepScaling` \n+ `SimpleScaling` \\(default\\)\n+ `PredictiveScaling` \nFor more information, see [Target tracking scaling policies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html) and [Step and simple scaling policies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyType", "type": "string" }, "PredictiveScalingConfiguration": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingConfiguration" + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingConfiguration", + "markdownDescription": "A predictive scaling policy\\. Provides support for predefined and custom metrics\\. \nPredefined metrics include CPU utilization, network in/out, and the Application Load Balancer request count\\. \n*Required*: Conditional \n*Type*: [PredictiveScalingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredictiveScalingConfiguration" }, "ScalingAdjustment": { + "markdownDescription": "The amount by which to scale, based on the specified adjustment type\\. A positive value adds to the current capacity while a negative number removes from the current capacity\\. For exact capacity, you must specify a positive value\\. \nRequired if the policy type is `SimpleScaling`\\. \\(Not used with any other policy type\\.\\) \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalingAdjustment", "type": "number" }, "StepAdjustments": { "items": { "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.StepAdjustment" }, + "markdownDescription": "A set of adjustments that enable you to scale based on the size of the alarm breach\\. \nRequired if the policy type is `StepScaling`\\. \\(Not used with any other policy type\\.\\) \n*Required*: Conditional \n*Type*: List of [StepAdjustment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-stepadjustments.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StepAdjustments", "type": "array" }, "TargetTrackingConfiguration": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration" + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration", + "markdownDescription": "A target tracking scaling policy\\. Includes support for predefined or customized metrics\\. \nThe following predefined metrics are available: \n+ `ASGAverageCPUUtilization` \n+ `ASGAverageNetworkIn` \n+ `ASGAverageNetworkOut` \n+ `ALBRequestCountPerTarget` \nIf you specify `ALBRequestCountPerTarget` for the metric, you must specify the `ResourceLabel` property with the `PredefinedMetricSpecification`\\. \n*Required*: Conditional \n*Type*: [TargetTrackingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-targettrackingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetTrackingConfiguration" } }, "required": [ @@ -17588,18 +21607,28 @@ "items": { "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDimension" }, + "markdownDescription": "The dimensions of the metric\\. \nConditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy\\. \n*Required*: No \n*Type*: List of [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", "type": "array" }, "MetricName": { + "markdownDescription": "The name of the metric\\. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", "type": "string" }, "Namespace": { + "markdownDescription": "The namespace of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", "type": "string" }, "Statistic": { + "markdownDescription": "The statistic of the metric\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Average | Maximum | Minimum | SampleCount | Sum` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statistic", "type": "string" }, "Unit": { + "markdownDescription": "The unit of the metric\\. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", "type": "string" } }, @@ -17617,12 +21646,18 @@ "items": { "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDimension" }, + "markdownDescription": "The dimensions for the metric\\. For the list of available dimensions, see the AWS documentation available from the table in [AWS services that publish CloudWatch metrics ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*\\. \nConditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy\\. \n*Required*: No \n*Type*: List of [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", "type": "array" }, "MetricName": { + "markdownDescription": "The name of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", "type": "string" }, "Namespace": { + "markdownDescription": "The namespace of the metric\\. For more information, see the table in [AWS services that publish CloudWatch metrics ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", "type": "string" } }, @@ -17636,18 +21671,28 @@ "additionalProperties": false, "properties": { "Expression": { + "markdownDescription": "The math expression to perform on the returned data, if this object is performing a math expression\\. This expression can use the `Id` of the other metrics to refer to those metrics, and can also use the `Id` of other expressions to use the result of those expressions\\. \nConditional: Within each `MetricDataQuery` object, you must specify either `Expression` or `MetricStat`, but not both\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1023` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Expression", "type": "string" }, "Id": { + "markdownDescription": "A short name that identifies the object's results in the response\\. This name must be unique among all `MetricDataQuery` objects specified for a single scaling policy\\. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression\\. The valid characters are letters, numbers, and underscores\\. The first character must be a lowercase letter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "Label": { + "markdownDescription": "A human\\-readable label for this metric or expression\\. This is especially useful if this is a math expression, so that you know what the value represents\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2047` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Label", "type": "string" }, "MetricStat": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricStat" + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricStat", + "markdownDescription": "Information about the metric data to return\\. \nConditional: Within each `MetricDataQuery` object, you must specify either `Expression` or `MetricStat`, but not both\\. \n*Required*: No \n*Type*: [MetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricstat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricStat" }, "ReturnData": { + "markdownDescription": "Indicates whether to return the timestamps and raw data values of this metric\\. \nIf you use any math expressions, specify `true` for this value for only the final math expression that the metric specification is based on\\. You must specify `false` for `ReturnData` for all the other metrics and expressions used in the metric specification\\. \nIf you are only retrieving metrics and not performing any math expressions, do not specify anything for `ReturnData`\\. This sets it to its default \\(`true`\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReturnData", "type": "boolean" } }, @@ -17660,9 +21705,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "The value of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -17676,12 +21725,18 @@ "additionalProperties": false, "properties": { "Metric": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.Metric" + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.Metric", + "markdownDescription": "The CloudWatch metric to return, including the metric name, namespace, and dimensions\\. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html)\\. \n*Required*: Yes \n*Type*: [Metric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metric" }, "Stat": { + "markdownDescription": "The statistic to return\\. It can include any CloudWatch statistic or extended statistic\\. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *Amazon CloudWatch User Guide*\\. \nThe most commonly used metrics for predictive scaling are `Average` and `Sum`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Stat", "type": "string" }, "Unit": { + "markdownDescription": "The unit to use for the returned data points\\. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", "type": "string" } }, @@ -17695,9 +21750,13 @@ "additionalProperties": false, "properties": { "PredefinedMetricType": { + "markdownDescription": "The metric type\\. The following predefined metrics are available\\. \n+ `ASGAverageCPUUtilization` \\- Average CPU utilization of the Auto Scaling group\\.\n+ `ASGAverageNetworkIn` \\- Average number of bytes received on all network interfaces by the Auto Scaling group\\.\n+ `ASGAverageNetworkOut` \\- Average number of bytes sent out on all network interfaces by the Auto Scaling group\\.\n+ `ALBRequestCountPerTarget` \\- Number of requests completed per target in an Application Load Balancer target group\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALBRequestCountPerTarget | ASGAverageCPUUtilization | ASGAverageNetworkIn | ASGAverageNetworkOut` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedMetricType", "type": "string" }, "ResourceLabel": { + "markdownDescription": "Identifies the resource associated with the metric type\\. You can't specify a resource label unless the metric type is `ALBRequestCountPerTarget` and there is a target group attached to the Auto Scaling group\\. \nThe format is `app/load-balancer-name/load-balancer-id/targetgroup/target-group-name/target-group-id `, where \n+ `app/load-balancer-name/load-balancer-id ` is the final portion of the load balancer ARN, and\n+ `targetgroup/target-group-name/target-group-id ` is the final portion of the target group ARN\\.\n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1023` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceLabel", "type": "string" } }, @@ -17710,21 +21769,31 @@ "additionalProperties": false, "properties": { "MaxCapacityBreachBehavior": { + "markdownDescription": "Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity of the Auto Scaling group\\. Defaults to `HonorMaxCapacity` if not specified\\. \nThe following are possible values: \n+ `HonorMaxCapacity` \\- Amazon EC2 Auto Scaling cannot scale out capacity higher than the maximum capacity\\. The maximum capacity is enforced as a hard limit\\. \n+ `IncreaseMaxCapacity` \\- Amazon EC2 Auto Scaling can scale out capacity higher than the maximum capacity when the forecast capacity is close to or exceeds the maximum capacity\\. The upper limit is determined by the forecasted capacity and the value for `MaxCapacityBuffer`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `HonorMaxCapacity | IncreaseMaxCapacity` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacityBreachBehavior", "type": "string" }, "MaxCapacityBuffer": { + "markdownDescription": "The size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity\\. The value is specified as a percentage relative to the forecast capacity\\. For example, if the buffer is 10, this means a 10 percent buffer, such that if the forecast capacity is 50, and the maximum capacity is 40, then the effective maximum capacity is 55\\. \nIf set to 0, Amazon EC2 Auto Scaling may scale capacity higher than the maximum capacity to equal but not exceed forecast capacity\\. \nRequired if the `MaxCapacityBreachBehavior` property is set to `IncreaseMaxCapacity`, and cannot be used otherwise\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacityBuffer", "type": "number" }, "MetricSpecifications": { "items": { "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingMetricSpecification" }, + "markdownDescription": "An array that contains information about the metrics and target utilization to use for predictive scaling\\. \nAdding more than one predictive scaling metric specification to the array is currently not supported\\.\n*Required*: Yes \n*Type*: List of [PredictiveScalingMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricSpecifications", "type": "array" }, "Mode": { + "markdownDescription": "The predictive scaling mode\\. Defaults to `ForecastOnly` if not specified\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ForecastAndScale | ForecastOnly` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", "type": "string" }, "SchedulingBufferTime": { + "markdownDescription": "The amount of time, in seconds, by which the instance launch time can be advanced\\. For example, the forecast says to add capacity at 10:00 AM, and you choose to pre\\-launch instances by 5 minutes\\. In that case, the instances will be launched at 9:55 AM\\. The intention is to give resources time to be provisioned\\. It can take a few minutes to launch an EC2 instance\\. The actual amount of time required depends on several factors, such as the size of the instance and whether there are startup scripts to complete\\. \nThe value must be less than the forecast interval duration of 3600 seconds \\(60 minutes\\)\\. Defaults to 300 seconds if not specified\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchedulingBufferTime", "type": "number" } }, @@ -17740,6 +21809,8 @@ "items": { "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDataQuery" }, + "markdownDescription": "One or more metric data queries to provide the data points for a capacity metric\\. Use multiple metric data queries only if you are performing a math expression on returned data\\. \n*Required*: Yes \n*Type*: List of [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricdataquery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricDataQueries", "type": "array" } }, @@ -17755,6 +21826,8 @@ "items": { "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDataQuery" }, + "markdownDescription": "One or more metric data queries to provide the data points for a load metric\\. Use multiple metric data queries only if you are performing a math expression on returned data\\. \n*Required*: Yes \n*Type*: List of [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricdataquery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricDataQueries", "type": "array" } }, @@ -17770,6 +21843,8 @@ "items": { "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDataQuery" }, + "markdownDescription": "One or more metric data queries to provide the data points for a scaling metric\\. Use multiple metric data queries only if you are performing a math expression on returned data\\. \n*Required*: Yes \n*Type*: List of [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricdataquery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricDataQueries", "type": "array" } }, @@ -17782,24 +21857,38 @@ "additionalProperties": false, "properties": { "CustomizedCapacityMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedCapacityMetric" + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedCapacityMetric", + "markdownDescription": "The customized capacity metric specification\\. \n*Required*: No \n*Type*: [PredictiveScalingCustomizedCapacityMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingcustomizedcapacitymetric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomizedCapacityMetricSpecification" }, "CustomizedLoadMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedLoadMetric" + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedLoadMetric", + "markdownDescription": "The customized load metric specification\\. \n*Required*: No \n*Type*: [PredictiveScalingCustomizedLoadMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingcustomizedloadmetric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomizedLoadMetricSpecification" }, "CustomizedScalingMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedScalingMetric" + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedScalingMetric", + "markdownDescription": "The customized scaling metric specification\\. \n*Required*: No \n*Type*: [PredictiveScalingCustomizedScalingMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingcustomizedscalingmetric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomizedScalingMetricSpecification" }, "PredefinedLoadMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedLoadMetric" + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedLoadMetric", + "markdownDescription": "The load metric specification\\. \nIf you specify `PredefinedMetricPairSpecification`, don't specify this property\\. \n*Required*: No \n*Type*: [PredictiveScalingPredefinedLoadMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedloadmetric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedLoadMetricSpecification" }, "PredefinedMetricPairSpecification": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedMetricPair" + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedMetricPair", + "markdownDescription": "The metric pair specification from which Amazon EC2 Auto Scaling determines the appropriate scaling metric and load metric to use\\. \nWith predictive scaling, you must specify either a metric pair, or a load metric and a scaling metric individually\\. Specifying a metric pair instead of individual metrics provides a simpler way to configure metrics for a scaling policy\\. You choose the metric pair, and the policy automatically knows the correct sum and average statistics to use for the load metric and the scaling metric\\.\n*Required*: No \n*Type*: [PredictiveScalingPredefinedMetricPair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedmetricpair.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedMetricPairSpecification" }, "PredefinedScalingMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedScalingMetric" + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedScalingMetric", + "markdownDescription": "The scaling metric specification\\. \nIf you specify `PredefinedMetricPairSpecification`, don't specify this property\\. \n*Required*: No \n*Type*: [PredictiveScalingPredefinedScalingMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedscalingmetric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedScalingMetricSpecification" }, "TargetValue": { + "markdownDescription": "Specifies the target utilization\\. \nSome metrics are based on a count instead of a percentage, such as the request count for an Application Load Balancer or the number of messages in an SQS queue\\. If the scaling policy specifies one of these metrics, specify the target utilization as the optimal average request or message count per instance during any one\\-minute interval\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetValue", "type": "number" } }, @@ -17812,9 +21901,13 @@ "additionalProperties": false, "properties": { "PredefinedMetricType": { + "markdownDescription": "The metric type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALBTargetGroupRequestCount | ASGTotalCPUUtilization | ASGTotalNetworkIn | ASGTotalNetworkOut` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedMetricType", "type": "string" }, "ResourceLabel": { + "markdownDescription": "A label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group\\. You can't specify a resource label unless the target group is attached to the Auto Scaling group\\. \nYou create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash \\(/\\)\\. The format of the resource label is: \n `app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff`\\. \nWhere: \n+ app// is the final portion of the load balancer ARN\n+ targetgroup// is the final portion of the target group ARN\\.\nTo find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation\\. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceLabel", "type": "string" } }, @@ -17827,9 +21920,13 @@ "additionalProperties": false, "properties": { "PredefinedMetricType": { + "markdownDescription": "Indicates which metrics to use\\. There are two different types of metrics for each metric type: one is a load metric and one is a scaling metric\\. For example, if the metric type is `ASGCPUUtilization`, the Auto Scaling group's total CPU metric is used as the load metric, and the average CPU metric is used for the scaling metric\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALBRequestCount | ASGCPUUtilization | ASGNetworkIn | ASGNetworkOut` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedMetricType", "type": "string" }, "ResourceLabel": { + "markdownDescription": "A label that uniquely identifies a specific Application Load Balancer target group from which to determine the total and average request count served by your Auto Scaling group\\. You can't specify a resource label unless the target group is attached to the Auto Scaling group\\. \nYou create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash \\(/\\)\\. The format of the resource label is: \n `app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff`\\. \nWhere: \n+ app// is the final portion of the load balancer ARN\n+ targetgroup// is the final portion of the target group ARN\\.\nTo find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation\\. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceLabel", "type": "string" } }, @@ -17842,9 +21939,13 @@ "additionalProperties": false, "properties": { "PredefinedMetricType": { + "markdownDescription": "The metric type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALBRequestCountPerTarget | ASGAverageCPUUtilization | ASGAverageNetworkIn | ASGAverageNetworkOut` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedMetricType", "type": "string" }, "ResourceLabel": { + "markdownDescription": "A label that uniquely identifies a specific Application Load Balancer target group from which to determine the average request count served by your Auto Scaling group\\. You can't specify a resource label unless the target group is attached to the Auto Scaling group\\. \nYou create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash \\(/\\)\\. The format of the resource label is: \n `app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff`\\. \nWhere: \n+ app// is the final portion of the load balancer ARN\n+ targetgroup// is the final portion of the target group ARN\\.\nTo find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation\\. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceLabel", "type": "string" } }, @@ -17857,12 +21958,18 @@ "additionalProperties": false, "properties": { "MetricIntervalLowerBound": { + "markdownDescription": "The lower bound for the difference between the alarm threshold and the CloudWatch metric\\. If the metric value is above the breach threshold, the lower bound is inclusive \\(the metric must be greater than or equal to the threshold plus the lower bound\\)\\. Otherwise, it is exclusive \\(the metric must be greater than the threshold plus the lower bound\\)\\. A null value indicates negative infinity\\. \n*Required*: Conditional \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricIntervalLowerBound", "type": "number" }, "MetricIntervalUpperBound": { + "markdownDescription": "The upper bound for the difference between the alarm threshold and the CloudWatch metric\\. If the metric value is above the breach threshold, the upper bound is exclusive \\(the metric must be less than the threshold plus the upper bound\\)\\. Otherwise, it is inclusive \\(the metric must be less than or equal to the threshold plus the upper bound\\)\\. A null value indicates positive infinity\\. \n*Required*: Conditional \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricIntervalUpperBound", "type": "number" }, "ScalingAdjustment": { + "markdownDescription": "The amount by which to scale\\. The adjustment is based on the value that you specified in the `AdjustmentType` property \\(either an absolute number or a percentage\\)\\. A positive value adds to the current capacity and a negative number subtracts from the current capacity\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalingAdjustment", "type": "number" } }, @@ -17875,15 +21982,23 @@ "additionalProperties": false, "properties": { "CustomizedMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification" + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification", + "markdownDescription": "A customized metric\\. You must specify either a predefined metric or a customized metric\\. \n*Required*: Conditional \n*Type*: [CustomizedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-customizedmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomizedMetricSpecification" }, "DisableScaleIn": { + "markdownDescription": "Indicates whether scaling in by the target tracking scaling policy is disabled\\. If scaling in is disabled, the target tracking scaling policy doesn't remove instances from the Auto Scaling group\\. Otherwise, the target tracking scaling policy can remove instances from the Auto Scaling group\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableScaleIn", "type": "boolean" }, "PredefinedMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification" + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification", + "markdownDescription": "A predefined metric\\. You must specify either a predefined metric or a customized metric\\. \n*Required*: Conditional \n*Type*: [PredefinedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predefinedmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedMetricSpecification" }, "TargetValue": { + "markdownDescription": "The target value for the metric\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetValue", "type": "number" } }, @@ -17928,27 +22043,43 @@ "additionalProperties": false, "properties": { "AutoScalingGroupName": { + "markdownDescription": "The name of the Auto Scaling group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutoScalingGroupName", "type": "string" }, "DesiredCapacity": { + "markdownDescription": "The desired capacity is the initial capacity of the Auto Scaling group after the scheduled action runs and the capacity it attempts to maintain\\. It can scale beyond this capacity if you add more scaling conditions\\. \nYou must specify at least one of the following properties: `MaxSize`, `MinSize`, or `DesiredCapacity`\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DesiredCapacity", "type": "number" }, "EndTime": { + "markdownDescription": "The date and time for the recurring schedule to end, in UTC\\. For example, `\"2021-06-01T00:00:00Z\"`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndTime", "type": "string" }, "MaxSize": { + "markdownDescription": "The maximum size of the Auto Scaling group\\. \nYou must specify at least one of the following properties: `MaxSize`, `MinSize`, or `DesiredCapacity`\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxSize", "type": "number" }, "MinSize": { + "markdownDescription": "The minimum size of the Auto Scaling group\\. \nYou must specify at least one of the following properties: `MaxSize`, `MinSize`, or `DesiredCapacity`\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinSize", "type": "number" }, "Recurrence": { + "markdownDescription": "The recurring schedule for this action\\. This format consists of five fields separated by white spaces: \\[Minute\\] \\[Hour\\] \\[Day\\_of\\_Month\\] \\[Month\\_of\\_Year\\] \\[Day\\_of\\_Week\\]\\. For more information about this format, see [Crontab](http://crontab.org)\\. \nWhen `StartTime` and `EndTime` are specified with `Recurrence`, they form the boundaries of when the recurring action starts and stops\\. \nCron expressions use Universal Coordinated Time \\(UTC\\) by default\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Recurrence", "type": "string" }, "StartTime": { + "markdownDescription": "The date and time for this action to start, in YYYY\\-MM\\-DDThh:mm:ssZ format in UTC/GMT only\\. For example, `\"2021-06-01T00:00:00Z\"`\\. \nIf you specify `Recurrence` and `StartTime`, Amazon EC2 Auto Scaling performs the action at this time, and then performs the action based on the specified recurrence\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartTime", "type": "string" }, "TimeZone": { + "markdownDescription": "Specifies the time zone for a cron expression\\. If a time zone is not provided, UTC is used by default\\. \nValid values are the canonical names of the IANA time zones, derived from the IANA Time Zone Database \\(such as `Etc/GMT+9` or `Pacific/Tahiti`\\)\\. For more information, see [https://en\\.wikipedia\\.org/wiki/List\\_of\\_tz\\_database\\_time\\_zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeZone", "type": "string" } }, @@ -18014,18 +22145,28 @@ "additionalProperties": false, "properties": { "AutoScalingGroupName": { + "markdownDescription": "The name of the Auto Scaling group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutoScalingGroupName", "type": "string" }, "InstanceReusePolicy": { - "$ref": "#/definitions/AWS::AutoScaling::WarmPool.InstanceReusePolicy" + "$ref": "#/definitions/AWS::AutoScaling::WarmPool.InstanceReusePolicy", + "markdownDescription": "Indicates whether instances in the Auto Scaling group can be returned to the warm pool on scale in\\. The default is to terminate instances in the Auto Scaling group when the group scales in\\. \n*Required*: No \n*Type*: [InstanceReusePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-warmpool-instancereusepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceReusePolicy" }, "MaxGroupPreparedCapacity": { + "markdownDescription": "Specifies the maximum number of instances that are allowed to be in the warm pool or in any state except `Terminated` for the Auto Scaling group\\. This is an optional property\\. Specify it only if you do not want the warm pool size to be determined by the difference between the group's maximum capacity and its desired capacity\\. \nIf a value for `MaxGroupPreparedCapacity` is not specified, Amazon EC2 Auto Scaling launches and maintains the difference between the group's maximum capacity and its desired capacity\\. If you specify a value for `MaxGroupPreparedCapacity`, Amazon EC2 Auto Scaling uses the difference between the `MaxGroupPreparedCapacity` and the desired capacity instead\\. \nThe size of the warm pool is dynamic\\. Only when `MaxGroupPreparedCapacity` and `MinSize` are set to the same value does the warm pool have an absolute size\\.\nIf the desired capacity of the Auto Scaling group is higher than the `MaxGroupPreparedCapacity`, the capacity of the warm pool is 0, unless you specify a value for `MinSize`\\. To remove a value that you previously set, include the property but specify \\-1 for the value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `-1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxGroupPreparedCapacity", "type": "number" }, "MinSize": { + "markdownDescription": "Specifies the minimum number of instances to maintain in the warm pool\\. This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes\\. Defaults to 0 if not specified\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinSize", "type": "number" }, "PoolState": { + "markdownDescription": "Sets the instance state to transition to after the lifecycle actions are complete\\. Default is `Stopped`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Hibernated | Running | Stopped` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PoolState", "type": "string" } }, @@ -18059,6 +22200,8 @@ "additionalProperties": false, "properties": { "ReuseOnScaleIn": { + "markdownDescription": "Specifies whether instances in the Auto Scaling group can be returned to the warm pool on scale in\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReuseOnScaleIn", "type": "boolean" } }, @@ -18100,12 +22243,16 @@ "additionalProperties": false, "properties": { "ApplicationSource": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ApplicationSource" + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ApplicationSource", + "markdownDescription": "A CloudFormation stack or a set of tags\\. You can create one scaling plan per application source\\. The `ApplicationSource` property must be present to ensure interoperability with the AWS Auto Scaling console\\. \n*Required*: Yes \n*Type*: [ApplicationSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-applicationsource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationSource" }, "ScalingInstructions": { "items": { "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction" }, + "markdownDescription": "The scaling instructions\\. \n*Required*: Yes \n*Type*: List of [ScalingInstruction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalingInstructions", "type": "array" } }, @@ -18140,12 +22287,16 @@ "additionalProperties": false, "properties": { "CloudFormationStackARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of a CloudFormation stack\\. \nYou must specify either a `CloudFormationStackARN` or `TagFilters`\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudFormationStackARN", "type": "string" }, "TagFilters": { "items": { "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TagFilter" }, + "markdownDescription": "A set of tag filters \\(keys and values\\)\\. Each tag filter specified must contain a key with values as optional\\. Each scaling plan can include up to 50 keys, and each key can include up to 20 values\\. \nTags are part of the syntax that you use to specify the resources you want returned when configuring a scaling plan from the AWS Auto Scaling console\\. You do not need to specify valid tag filter values when you create a scaling plan with CloudFormation\\. The `Key` and `Values` properties can accept any value as long as the combination of values is unique across scaling plans\\. However, if you also want to use the AWS Auto Scaling console to edit the scaling plan, then you must specify valid values\\. \nYou must specify either a `CloudFormationStackARN` or `TagFilters`\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagFilters", "type": "array" } }, @@ -18158,18 +22309,28 @@ "items": { "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension" }, + "markdownDescription": "The dimensions of the metric\\. \nConditional: If you published your metric with dimensions, you must specify the same dimensions in your customized load metric specification\\. \n*Required*: No \n*Type*: List of [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", "type": "array" }, "MetricName": { + "markdownDescription": "The name of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", "type": "string" }, "Namespace": { + "markdownDescription": "The namespace of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", "type": "string" }, "Statistic": { + "markdownDescription": "The statistic of the metric\\. \n*Allowed Values*: `Sum` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statistic", "type": "string" }, "Unit": { + "markdownDescription": "The unit of the metric\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", "type": "string" } }, @@ -18187,18 +22348,28 @@ "items": { "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension" }, + "markdownDescription": "The dimensions of the metric\\. \nConditional: If you published your metric with dimensions, you must specify the same dimensions in your customized scaling metric specification\\. \n*Required*: No \n*Type*: List of [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", "type": "array" }, "MetricName": { + "markdownDescription": "The name of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", "type": "string" }, "Namespace": { + "markdownDescription": "The namespace of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", "type": "string" }, "Statistic": { + "markdownDescription": "The statistic of the metric\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Average | Maximum | Minimum | SampleCount | Sum` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statistic", "type": "string" }, "Unit": { + "markdownDescription": "The unit of the metric\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", "type": "string" } }, @@ -18213,9 +22384,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "The value of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -18229,9 +22404,13 @@ "additionalProperties": false, "properties": { "PredefinedLoadMetricType": { + "markdownDescription": "The metric type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALBTargetGroupRequestCount | ASGTotalCPUUtilization | ASGTotalNetworkIn | ASGTotalNetworkOut` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedLoadMetricType", "type": "string" }, "ResourceLabel": { + "markdownDescription": "Identifies the resource associated with the metric type\\. You can't specify a resource label unless the metric type is `ALBTargetGroupRequestCount` and there is a target group for an Application Load Balancer attached to the Auto Scaling group\\. \nYou create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash \\(/\\)\\. The format is app///targetgroup//, where: \n+ app// is the final portion of the load balancer ARN\n+ targetgroup// is the final portion of the target group ARN\\.\nThis is an example: app/EC2Co\\-EcsEl\\-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co\\-Defau\\-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d\\. \nTo find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation\\. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1023` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceLabel", "type": "string" } }, @@ -18244,9 +22423,13 @@ "additionalProperties": false, "properties": { "PredefinedScalingMetricType": { + "markdownDescription": "The metric type\\. The `ALBRequestCountPerTarget` metric type applies only to Auto Scaling groups, Spot Fleet requests, and ECS services\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALBRequestCountPerTarget | ASGAverageCPUUtilization | ASGAverageNetworkIn | ASGAverageNetworkOut | DynamoDBReadCapacityUtilization | DynamoDBWriteCapacityUtilization | EC2SpotFleetRequestAverageCPUUtilization | EC2SpotFleetRequestAverageNetworkIn | EC2SpotFleetRequestAverageNetworkOut | ECSServiceAverageCPUUtilization | ECSServiceAverageMemoryUtilization | RDSReaderAverageCPUUtilization | RDSReaderAverageDatabaseConnections` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedScalingMetricType", "type": "string" }, "ResourceLabel": { + "markdownDescription": "Identifies the resource associated with the metric type\\. You can't specify a resource label unless the metric type is `ALBRequestCountPerTarget` and there is a target group for an Application Load Balancer attached to the Auto Scaling group, Spot Fleet request, or ECS service\\. \nYou create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash \\(/\\)\\. The format is app///targetgroup//, where: \n+ app// is the final portion of the load balancer ARN\n+ targetgroup// is the final portion of the target group ARN\\.\nThis is an example: app/EC2Co\\-EcsEl\\-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co\\-Defau\\-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d\\. \nTo find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation\\. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1023` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceLabel", "type": "string" } }, @@ -18259,48 +22442,76 @@ "additionalProperties": false, "properties": { "CustomizedLoadMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification" + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification", + "markdownDescription": "The customized load metric to use for predictive scaling\\. This property or a **PredefinedLoadMetricSpecification** is required when configuring predictive scaling, and cannot be used otherwise\\. \n*Required*: Conditional \n*Type*: [CustomizedLoadMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedloadmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomizedLoadMetricSpecification" }, "DisableDynamicScaling": { + "markdownDescription": "Controls whether dynamic scaling by AWS Auto Scaling is disabled\\. When dynamic scaling is enabled, AWS Auto Scaling creates target tracking scaling policies based on the specified target tracking configurations\\. \nThe default is enabled \\(`false`\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableDynamicScaling", "type": "boolean" }, "MaxCapacity": { + "markdownDescription": "The maximum capacity of the resource\\. The exception to this upper limit is if you specify a non\\-default setting for **PredictiveScalingMaxCapacityBehavior**\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacity", "type": "number" }, "MinCapacity": { + "markdownDescription": "The minimum capacity of the resource\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinCapacity", "type": "number" }, "PredefinedLoadMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification" + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification", + "markdownDescription": "The predefined load metric to use for predictive scaling\\. This property or a **CustomizedLoadMetricSpecification** is required when configuring predictive scaling, and cannot be used otherwise\\. \n*Required*: Conditional \n*Type*: [PredefinedLoadMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-predefinedloadmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedLoadMetricSpecification" }, "PredictiveScalingMaxCapacityBehavior": { + "markdownDescription": "Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity specified for the resource\\. The default value is `SetForecastCapacityToMaxCapacity`\\. \nThe following are possible values: \n+ `SetForecastCapacityToMaxCapacity` \\- AWS Auto Scaling cannot scale resource capacity higher than the maximum capacity\\. The maximum capacity is enforced as a hard limit\\. \n+ `SetMaxCapacityToForecastCapacity` \\- AWS Auto Scaling can scale resource capacity higher than the maximum capacity to equal but not exceed forecast capacity\\.\n+ `SetMaxCapacityAboveForecastCapacity` \\- AWS Auto Scaling can scale resource capacity higher than the maximum capacity by a specified buffer value\\. The intention is to give the target tracking scaling policy extra capacity if unexpected traffic occurs\\. \nValid only when configuring predictive scaling\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `SetForecastCapacityToMaxCapacity | SetMaxCapacityAboveForecastCapacity | SetMaxCapacityToForecastCapacity` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredictiveScalingMaxCapacityBehavior", "type": "string" }, "PredictiveScalingMaxCapacityBuffer": { + "markdownDescription": "The size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity\\. The value is specified as a percentage relative to the forecast capacity\\. For example, if the buffer is 10, this means a 10 percent buffer\\. With a 10 percent buffer, if the forecast capacity is 50, and the maximum capacity is 40, then the effective maximum capacity is 55\\. \nValid only when configuring predictive scaling\\. Required if **PredictiveScalingMaxCapacityBehavior** is set to `SetMaxCapacityAboveForecastCapacity`, and cannot be used otherwise\\. \nThe range is 1\\-100\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredictiveScalingMaxCapacityBuffer", "type": "number" }, "PredictiveScalingMode": { + "markdownDescription": "The predictive scaling mode\\. The default value is `ForecastAndScale`\\. Otherwise, AWS Auto Scaling forecasts capacity but does not apply any scheduled scaling actions based on the capacity forecast\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ForecastAndScale | ForecastOnly` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredictiveScalingMode", "type": "string" }, "ResourceId": { + "markdownDescription": "The ID of the resource\\. This string consists of the resource type and unique identifier\\. \n+ Auto Scaling group \\- The resource type is `autoScalingGroup` and the unique identifier is the name of the Auto Scaling group\\. Example: `autoScalingGroup/my-asg`\\.\n+ ECS service \\- The resource type is `service` and the unique identifier is the cluster name and service name\\. Example: `service/default/sample-webapp`\\.\n+ Spot Fleet request \\- The resource type is `spot-fleet-request` and the unique identifier is the Spot Fleet request ID\\. Example: `spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE`\\.\n+ DynamoDB table \\- The resource type is `table` and the unique identifier is the resource ID\\. Example: `table/my-table`\\.\n+ DynamoDB global secondary index \\- The resource type is `index` and the unique identifier is the resource ID\\. Example: `table/my-table/index/my-table-index`\\.\n+ Aurora DB cluster \\- The resource type is `cluster` and the unique identifier is the cluster name\\. Example: `cluster:my-db-cluster`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceId", "type": "string" }, "ScalableDimension": { + "markdownDescription": "The scalable dimension associated with the resource\\. \n+ `autoscaling:autoScalingGroup:DesiredCapacity` \\- The desired capacity of an Auto Scaling group\\.\n+ `ecs:service:DesiredCount` \\- The desired task count of an ECS service\\.\n+ `ec2:spot-fleet-request:TargetCapacity` \\- The target capacity of a Spot Fleet request\\.\n+ `dynamodb:table:ReadCapacityUnits` \\- The provisioned read capacity for a DynamoDB table\\.\n+ `dynamodb:table:WriteCapacityUnits` \\- The provisioned write capacity for a DynamoDB table\\.\n+ `dynamodb:index:ReadCapacityUnits` \\- The provisioned read capacity for a DynamoDB global secondary index\\.\n+ `dynamodb:index:WriteCapacityUnits` \\- The provisioned write capacity for a DynamoDB global secondary index\\.\n+ `rds:cluster:ReadReplicaCount` \\- The count of Aurora Replicas in an Aurora DB cluster\\. Available for Aurora MySQL\\-compatible edition and Aurora PostgreSQL\\-compatible edition\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `autoscaling:autoScalingGroup:DesiredCapacity | dynamodb:index:ReadCapacityUnits | dynamodb:index:WriteCapacityUnits | dynamodb:table:ReadCapacityUnits | dynamodb:table:WriteCapacityUnits | ec2:spot-fleet-request:TargetCapacity | ecs:service:DesiredCount | rds:cluster:ReadReplicaCount` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalableDimension", "type": "string" }, "ScalingPolicyUpdateBehavior": { + "markdownDescription": "Controls whether your scaling policies that are external to AWS Auto Scaling are deleted and new target tracking scaling policies created\\. The default value is `KeepExternalPolicies`\\. \nValid only when configuring dynamic scaling\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `KeepExternalPolicies | ReplaceExternalPolicies` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalingPolicyUpdateBehavior", "type": "string" }, "ScheduledActionBufferTime": { + "markdownDescription": "The amount of time, in seconds, to buffer the run time of scheduled scaling actions when scaling out\\. For example, if the forecast says to add capacity at 10:00 AM, and the buffer time is 5 minutes, then the run time of the corresponding scheduled scaling action will be 9:55 AM\\. The intention is to give resources time to be provisioned\\. For example, it can take a few minutes to launch an EC2 instance\\. The actual amount of time required depends on several factors, such as the size of the instance and whether there are startup scripts to complete\\. \nThe value must be less than the forecast interval duration of 3600 seconds \\(60 minutes\\)\\. The default is 300 seconds\\. \nValid only when configuring predictive scaling\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduledActionBufferTime", "type": "number" }, "ServiceNamespace": { + "markdownDescription": "The namespace of the AWS service\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `autoscaling | dynamodb | ec2 | ecs | rds` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceNamespace", "type": "string" }, "TargetTrackingConfigurations": { "items": { "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration" }, + "markdownDescription": "The target tracking configurations \\(up to 10\\)\\. Each of these structures must specify a unique scaling metric and a target value for the metric\\. \n*Required*: Yes \n*Type*: List of [TargetTrackingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-targettrackingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetTrackingConfigurations", "type": "array" } }, @@ -18318,12 +22529,16 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The tag key\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "The tag values \\(0 to 20\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -18336,24 +22551,38 @@ "additionalProperties": false, "properties": { "CustomizedScalingMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification" + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification", + "markdownDescription": "A customized metric\\. You can specify either a predefined metric or a customized metric\\. \n*Required*: No \n*Type*: [CustomizedScalingMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedscalingmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomizedScalingMetricSpecification" }, "DisableScaleIn": { + "markdownDescription": "Indicates whether scale in by the target tracking scaling policy is disabled\\. If the value is `true`, scale in is disabled and the target tracking scaling policy doesn't remove capacity from the scalable resource\\. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable resource\\. \nThe default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableScaleIn", "type": "boolean" }, "EstimatedInstanceWarmup": { + "markdownDescription": "The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics\\. This value is used only if the resource is an Auto Scaling group\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EstimatedInstanceWarmup", "type": "number" }, "PredefinedScalingMetricSpecification": { - "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification" + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification", + "markdownDescription": "A predefined metric\\. You can specify either a predefined metric or a customized metric\\. \n*Required*: No \n*Type*: [PredefinedScalingMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-predefinedscalingmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedScalingMetricSpecification" }, "ScaleInCooldown": { + "markdownDescription": "The amount of time, in seconds, after a scale\\-in activity completes before another scale in activity can start\\. This value is not used if the scalable resource is an Auto Scaling group\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScaleInCooldown", "type": "number" }, "ScaleOutCooldown": { + "markdownDescription": "The amount of time, in seconds, after a scale\\-out activity completes before another scale\\-out activity can start\\. This value is not used if the scalable resource is an Auto Scaling group\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScaleOutCooldown", "type": "number" }, "TargetValue": { + "markdownDescription": "The target value for the metric\\. Although this property accepts numbers of type Double, it won't accept values that are either too small or too large\\. Values must be in the range of \\-2^360 to 2^360\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetValue", "type": "number" } }, @@ -18398,15 +22627,19 @@ "additionalProperties": false, "properties": { "BackupPlan": { - "$ref": "#/definitions/AWS::Backup::BackupPlan.BackupPlanResourceType" + "$ref": "#/definitions/AWS::Backup::BackupPlan.BackupPlanResourceType", + "markdownDescription": "Uniquely identifies the backup plan to be associated with the selection of resources\\. \n*Required*: Yes \n*Type*: [BackupPlanResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupplanresourcetype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackupPlan" }, "BackupPlanTags": { "additionalProperties": true, + "markdownDescription": "To help organize your resources, you can assign your own metadata to the resources that you create\\. Each tag is a key\\-value pair\\. The specified tags are assigned to all backups created with this plan\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "BackupPlanTags", "type": "object" } }, @@ -18440,9 +22673,13 @@ "additionalProperties": false, "properties": { "BackupOptions": { + "markdownDescription": "The backup option for the resource\\. Each option is a key\\-value pair\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackupOptions", "type": "object" }, "ResourceType": { + "markdownDescription": "The name of a resource type\\. The only supported resource type is EC2\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceType", "type": "string" } }, @@ -18459,15 +22696,21 @@ "items": { "$ref": "#/definitions/AWS::Backup::BackupPlan.AdvancedBackupSettingResourceType" }, + "markdownDescription": "A list of backup options for each resource type\\. \n*Required*: No \n*Type*: List of [AdvancedBackupSettingResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-advancedbackupsettingresourcetype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdvancedBackupSettings", "type": "array" }, "BackupPlanName": { + "markdownDescription": "The display name of a backup plan\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackupPlanName", "type": "string" }, "BackupPlanRule": { "items": { "$ref": "#/definitions/AWS::Backup::BackupPlan.BackupRuleResourceType" }, + "markdownDescription": "An array of `BackupRule` objects, each of which specifies a scheduled task that is used to back up a selection of resources\\. \n*Required*: Yes \n*Type*: List of [BackupRuleResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackupPlanRule", "type": "array" } }, @@ -18481,39 +22724,57 @@ "additionalProperties": false, "properties": { "CompletionWindowMinutes": { + "markdownDescription": "A value in minutes after a backup job is successfully started before it must be completed or it is canceled by AWS Backup\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CompletionWindowMinutes", "type": "number" }, "CopyActions": { "items": { "$ref": "#/definitions/AWS::Backup::BackupPlan.CopyActionResourceType" }, + "markdownDescription": "An array of CopyAction objects, which contains the details of the copy operation\\. \n*Required*: No \n*Type*: List of [CopyActionResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-copyactionresourcetype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CopyActions", "type": "array" }, "EnableContinuousBackup": { + "markdownDescription": "Enables continuous backup and point\\-in\\-time restores \\(PITR\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableContinuousBackup", "type": "boolean" }, "Lifecycle": { - "$ref": "#/definitions/AWS::Backup::BackupPlan.LifecycleResourceType" + "$ref": "#/definitions/AWS::Backup::BackupPlan.LifecycleResourceType", + "markdownDescription": "The lifecycle defines when a protected resource is transitioned to cold storage and when it expires\\. AWS Backup transitions and expires backups automatically according to the lifecycle that you define\\. \n*Required*: No \n*Type*: [LifecycleResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-lifecycleresourcetype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Lifecycle" }, "RecoveryPointTags": { "additionalProperties": true, + "markdownDescription": "To help organize your resources, you can assign your own metadata to the resources that you create\\. Each tag is a key\\-value pair\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "RecoveryPointTags", "type": "object" }, "RuleName": { + "markdownDescription": "A display name for a backup rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleName", "type": "string" }, "ScheduleExpression": { + "markdownDescription": "A CRON expression specifying when AWS Backup initiates a backup job\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleExpression", "type": "string" }, "StartWindowMinutes": { + "markdownDescription": "An optional value that specifies a period of time in minutes after a backup is scheduled before a job is canceled if it doesn't start successfully\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartWindowMinutes", "type": "number" }, "TargetBackupVault": { + "markdownDescription": "The name of a logical container where backups are stored\\. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created\\. They consist of letters, numbers, and hyphens\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetBackupVault", "type": "string" } }, @@ -18527,10 +22788,14 @@ "additionalProperties": false, "properties": { "DestinationBackupVaultArn": { + "markdownDescription": "An Amazon Resource Name \\(ARN\\) that uniquely identifies the destination backup vault for the copied backup\\. For example, `arn:aws:backup:us-east-1:123456789012:vault:aBackupVault.` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationBackupVaultArn", "type": "string" }, "Lifecycle": { - "$ref": "#/definitions/AWS::Backup::BackupPlan.LifecycleResourceType" + "$ref": "#/definitions/AWS::Backup::BackupPlan.LifecycleResourceType", + "markdownDescription": "Defines when a protected resource is transitioned to cold storage and when it expires\\. AWS Backup transitions and expires backups automatically according to the lifecycle that you define\\. If you do not specify a lifecycle, AWS Backup applies the lifecycle policy of the source backup to the destination backup\\. \nBackups transitioned to cold storage must be stored in cold storage for a minimum of 90 days\\. \n*Required*: No \n*Type*: [LifecycleResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-lifecycleresourcetype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Lifecycle" } }, "required": [ @@ -18542,9 +22807,13 @@ "additionalProperties": false, "properties": { "DeleteAfterDays": { + "markdownDescription": "Specifies the number of days after creation that a recovery point is deleted\\. Must be greater than `MoveToColdStorageAfterDays`\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteAfterDays", "type": "number" }, "MoveToColdStorageAfterDays": { + "markdownDescription": "Specifies the number of days after creation that a recovery point is moved to cold storage\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MoveToColdStorageAfterDays", "type": "number" } }, @@ -18586,10 +22855,14 @@ "additionalProperties": false, "properties": { "BackupPlanId": { + "markdownDescription": "Uniquely identifies a backup plan\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BackupPlanId", "type": "string" }, "BackupSelection": { - "$ref": "#/definitions/AWS::Backup::BackupSelection.BackupSelectionResourceType" + "$ref": "#/definitions/AWS::Backup::BackupSelection.BackupSelectionResourceType", + "markdownDescription": "Specifies the body of a request to assign a set of resources to a backup plan\\. \nIt includes an array of resources, an optional array of patterns to exclude resources, an optional role to provide access to the AWS service the resource belongs to, and an optional array of tags used to identify a set of resources\\. \n*Required*: Yes \n*Type*: [BackupSelectionResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-backupselectionresourcetype.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BackupSelection" } }, "required": [ @@ -18623,30 +22896,42 @@ "additionalProperties": false, "properties": { "Conditions": { - "$ref": "#/definitions/AWS::Backup::BackupSelection.Conditions" + "$ref": "#/definitions/AWS::Backup::BackupSelection.Conditions", + "markdownDescription": "A list of conditions that you define to assign resources to your backup plans using tags\\. For example, `\"StringEquals\": {\"Department\": \"accounting\"`\\. Condition operators are case sensitive\\. \n`Conditions` differs from `ListOfTags` as follows: \n+ When you specify more than one condition, you only assign the resources that match ALL conditions \\(using AND logic\\)\\.\n+ `Conditions` supports `StringEquals`, `StringLike`, `StringNotEquals`, and `StringNotLike`\\. `ListOfTags` only supports `StringEquals`\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Conditions" }, "IamRoleArn": { + "markdownDescription": "The ARN of the IAM role that AWS Backup uses to authenticate when backing up the target resource; for example, `arn:aws:iam::123456789012:role/S3Access`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IamRoleArn", "type": "string" }, "ListOfTags": { "items": { "$ref": "#/definitions/AWS::Backup::BackupSelection.ConditionResourceType" }, + "markdownDescription": "An array of conditions used to specify a set of resources to assign to a backup plan; for example, `\"STRINGEQUALS\": {\"Department\":\"accounting\"`\\. \n*Required*: No \n*Type*: List of [ConditionResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-conditionresourcetype.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ListOfTags", "type": "array" }, "NotResources": { "items": { "type": "string" }, + "markdownDescription": "A list of Amazon Resource Names \\(ARNs\\) to exclude from a backup plan\\. The maximum number of ARNs is 500 without wildcards, or 30 ARNs with wildcards\\. \nIf you need to exclude many resources from a backup plan, consider a different resource selection strategy, such as assigning only one or a few resource types or refining your resource selection using tags\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NotResources", "type": "array" }, "Resources": { "items": { "type": "string" }, + "markdownDescription": "An array of strings that contain Amazon Resource Names \\(ARNs\\) of resources to assign to a backup plan\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Resources", "type": "array" }, "SelectionName": { + "markdownDescription": "The display name of a resource selection document\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SelectionName", "type": "string" } }, @@ -18672,12 +22957,18 @@ "additionalProperties": false, "properties": { "ConditionKey": { + "markdownDescription": "The key in a key\\-value pair\\. For example, in `\"Department\": \"accounting\"`, `\"Department\"` is the key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConditionKey", "type": "string" }, "ConditionType": { + "markdownDescription": "An operation, such as `STRINGEQUALS`, that is applied to a key\\-value pair used to filter resources in a selection\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConditionType", "type": "string" }, "ConditionValue": { + "markdownDescription": "The value in a key\\-value pair\\. For example, in `\"Department\": \"accounting\"`, `\"accounting\"` is the value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConditionValue", "type": "string" } }, @@ -18754,28 +23045,40 @@ "additionalProperties": false, "properties": { "AccessPolicy": { + "markdownDescription": "A resource\\-based policy that is used to manage access permissions on the target backup vault\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessPolicy", "type": "object" }, "BackupVaultName": { + "markdownDescription": "The name of a logical container where backups are stored\\. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created\\. They consist of lowercase letters, numbers, and hyphens\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9\\-\\_]{2,50}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BackupVaultName", "type": "string" }, "BackupVaultTags": { "additionalProperties": true, + "markdownDescription": "Metadata that you can assign to help organize the resources that you create\\. Each tag is a key\\-value pair\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "BackupVaultTags", "type": "object" }, "EncryptionKeyArn": { + "markdownDescription": "A server\\-side encryption key you can specify to encrypt your backups from services that support full AWS Backup management; for example, `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`\\. If you specify a key, you must specify its ARN, not its alias\\. If you do not specify a key, AWS Backup creates a KMS key for you by default\\. \nTo learn which AWS Backup services support full AWS Backup management and how AWS Backup handles encryption for backups from services that do not yet support full AWS Backup, see [ Encryption for backups in AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/encryption.html) \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncryptionKeyArn", "type": "string" }, "LockConfiguration": { - "$ref": "#/definitions/AWS::Backup::BackupVault.LockConfigurationType" + "$ref": "#/definitions/AWS::Backup::BackupVault.LockConfigurationType", + "markdownDescription": "Configuration for [AWS Backup Vault Lock](https://docs.aws.amazon.com/aws-backup/latest/devguide/vault-lock.html)\\. \n*Required*: No \n*Type*: [LockConfigurationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-lockconfigurationtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LockConfiguration" }, "Notifications": { - "$ref": "#/definitions/AWS::Backup::BackupVault.NotificationObjectType" + "$ref": "#/definitions/AWS::Backup::BackupVault.NotificationObjectType", + "markdownDescription": "The SNS event notifications for the specified backup vault\\. \n*Required*: No \n*Type*: [NotificationObjectType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-notificationobjecttype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Notifications" } }, "required": [ @@ -18808,12 +23111,18 @@ "additionalProperties": false, "properties": { "ChangeableForDays": { + "markdownDescription": "The AWS Backup Vault Lock configuration that specifies the number of days before the lock date\\. For example, setting `ChangeableForDays` to 30 on Jan\\. 1, 2022 at 8pm UTC will set the lock date to Jan\\. 31, 2022 at 8pm UTC\\. \nAWS Backup enforces a 72\\-hour cooling\\-off period before Vault Lock takes effect and becomes immutable\\. Therefore, you must set `ChangeableForDays` to 3 or greater\\. \nBefore the lock date, you can delete Vault Lock from the vault using `DeleteBackupVaultLockConfiguration` or change the Vault Lock configuration using `PutBackupVaultLockConfiguration`\\. On and after the lock date, the Vault Lock becomes immutable and cannot be changed or deleted\\. \nIf this parameter is not specified, you can delete Vault Lock from the vault using `DeleteBackupVaultLockConfiguration` or change the Vault Lock configuration using `PutBackupVaultLockConfiguration` at any time\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChangeableForDays", "type": "number" }, "MaxRetentionDays": { + "markdownDescription": "The AWS Backup Vault Lock configuration that specifies the maximum retention period that the vault retains its recovery points\\. This setting can be useful if, for example, your organization's policies require you to destroy certain data after retaining it for four years \\(1460 days\\)\\. \nIf this parameter is not included, Vault Lock does not enforce a maximum retention period on the recovery points in the vault\\. If this parameter is included without a value, Vault Lock will not enforce a maximum retention period\\. \nIf this parameter is specified, any backup or copy job to the vault must have a lifecycle policy with a retention period equal to or shorter than the maximum retention period\\. If the job's retention period is longer than that maximum retention period, then the vault fails the backup or copy job, and you should either modify your lifecycle settings or use a different vault\\. Recovery points already saved in the vault prior to Vault Lock are not affected\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxRetentionDays", "type": "number" }, "MinRetentionDays": { + "markdownDescription": "The AWS Backup Vault Lock configuration that specifies the minimum retention period that the vault retains its recovery points\\. This setting can be useful if, for example, your organization's policies require you to retain certain data for at least seven years \\(2555 days\\)\\. \nIf this parameter is not specified, Vault Lock will not enforce a minimum retention period\\. \nIf this parameter is specified, any backup or copy job to the vault must have a lifecycle policy with a retention period equal to or longer than the minimum retention period\\. If the job's retention period is shorter than that minimum retention period, then the vault fails that backup or copy job, and you should either modify your lifecycle settings or use a different vault\\. Recovery points already saved in the vault prior to Vault Lock are not affected\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinRetentionDays", "type": "number" } }, @@ -18829,9 +23138,13 @@ "items": { "type": "string" }, + "markdownDescription": "An array of events that indicate the status of jobs to back up resources to the backup vault\\. For valid events, see [ BackupVaultEvents](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_PutBackupVaultNotifications.html#API_PutBackupVaultNotifications_RequestSyntax) in the *AWS Backup API Guide*\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackupVaultEvents", "type": "array" }, "SNSTopicArn": { + "markdownDescription": "An ARN that uniquely identifies an Amazon Simple Notification Service \\(Amazon SNS\\) topic; for example, `arn:aws:sns:us-west-2:111122223333:MyTopic`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SNSTopicArn", "type": "string" } }, @@ -18880,18 +23193,26 @@ "items": { "$ref": "#/definitions/AWS::Backup::Framework.FrameworkControl" }, + "markdownDescription": "Contains detailed information about all of the controls of a framework\\. Each framework must contain at least one control\\. \n*Required*: Yes \n*Type*: List of [FrameworkControl](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-framework-frameworkcontrol.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameworkControls", "type": "array" }, "FrameworkDescription": { + "markdownDescription": "An optional description of the framework with a maximum 1,024 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameworkDescription", "type": "string" }, "FrameworkName": { + "markdownDescription": "The unique name of a framework\\. This name is between 1 and 256 characters, starting with a letter, and consisting of letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), and underscores \\(\\_\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z][_a-zA-Z0-9]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FrameworkName", "type": "string" }, "FrameworkTags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of tags with which to tag your framework\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameworkTags", "type": "array" } }, @@ -18925,9 +23246,13 @@ "additionalProperties": false, "properties": { "ParameterName": { + "markdownDescription": "The name of a parameter, for example, `BackupPlanFrequency`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterName", "type": "string" }, "ParameterValue": { + "markdownDescription": "The value of parameter, for example, `hourly`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterValue", "type": "string" } }, @@ -18968,13 +23293,19 @@ "items": { "$ref": "#/definitions/AWS::Backup::Framework.ControlInputParameter" }, + "markdownDescription": "A list of `ParameterName` and `ParameterValue` pairs\\. \n*Required*: No \n*Type*: List of [ControlInputParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-framework-controlinputparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ControlInputParameters", "type": "array" }, "ControlName": { + "markdownDescription": "The name of a control\\. This name is between 1 and 256 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ControlName", "type": "string" }, "ControlScope": { - "$ref": "#/definitions/AWS::Backup::Framework.ControlScope" + "$ref": "#/definitions/AWS::Backup::Framework.ControlScope", + "markdownDescription": "The scope of a control\\. The control scope defines what the control will evaluate\\. Three examples of control scopes are: a specific backup plan, all backup plans with a specific tag, or all backup plans\\. For more information, see `ControlScope`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ControlScope" } }, "required": [ @@ -19018,22 +23349,32 @@ "additionalProperties": false, "properties": { "ReportDeliveryChannel": { - "$ref": "#/definitions/AWS::Backup::ReportPlan.ReportDeliveryChannel" + "$ref": "#/definitions/AWS::Backup::ReportPlan.ReportDeliveryChannel", + "markdownDescription": "Contains information about where and how to deliver your reports, specifically your Amazon S3 bucket name, S3 key prefix, and the formats of your reports\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReportDeliveryChannel" }, "ReportPlanDescription": { + "markdownDescription": "An optional description of the report plan with a maximum 1,024 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReportPlanDescription", "type": "string" }, "ReportPlanName": { + "markdownDescription": "The unique name of the report plan\\. This name is between 1 and 256 characters starting with a letter, and consisting of letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), and underscores \\(\\_\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z][_a-zA-Z0-9]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReportPlanName", "type": "string" }, "ReportPlanTags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of tags to tag your report plan\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReportPlanTags", "type": "array" }, "ReportSetting": { - "$ref": "#/definitions/AWS::Backup::ReportPlan.ReportSetting" + "$ref": "#/definitions/AWS::Backup::ReportPlan.ReportSetting", + "markdownDescription": "Identifies the report template for the report\\. Reports are built using a report template\\. The report templates are: \n `RESOURCE_COMPLIANCE_REPORT | CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT | COPY_JOB_REPORT | RESTORE_JOB_REPORT` \nIf the report template is `RESOURCE_COMPLIANCE_REPORT` or `CONTROL_COMPLIANCE_REPORT`, this API resource also describes the report coverage by AWS Regions and frameworks\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReportSetting" } }, "required": [ @@ -19156,40 +23497,60 @@ "additionalProperties": false, "properties": { "ComputeEnvironmentName": { + "markdownDescription": "The name for your compute environment\\. It can be up to 128 characters long\\. It can contain uppercase and lowercase letters, numbers, hyphens \\(\\-\\), and underscores \\(\\_\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ComputeEnvironmentName", "type": "string" }, "ComputeResources": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.ComputeResources" + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.ComputeResources", + "markdownDescription": "The ComputeResources property type specifies details of the compute resources managed by the compute environment\\. This parameter is required for managed compute environments\\. For more information, see [Compute Environments](https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html) in the *AWS Batch User Guide*\\. \n*Required*: No \n*Type*: [ComputeResources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputeResources" }, "EksConfiguration": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.EksConfiguration" + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.EksConfiguration", + "markdownDescription": "The details for the Amazon EKS cluster that supports the compute environment\\. \n*Required*: No \n*Type*: [EksConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-eksconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EksConfiguration" }, "ReplaceComputeEnvironment": { + "markdownDescription": "Specifies whether the compute environment is replaced if an update is made that requires replacing the instances in the compute environment\\. The default value is `true`\\. To enable more properties to be updated, set this property to `false`\\. When changing the value of this property to `false`, do not change any other properties at the same time\\. If other properties are changed at the same time, and the change needs to be rolled back but it can't, it's possible for the stack to go into the `UPDATE_ROLLBACK_FAILED` state\\. You can't update a stack that is in the `UPDATE_ROLLBACK_FAILED` state\\. However, if you can continue to roll it back, you can return the stack to its original settings and then try to update it again\\. For more information, see [Continue rolling back an update](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html) in the *AWS CloudFormation User Guide*\\. \nThe properties that can't be changed without replacing the compute environment are in the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html) property type: [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-allocationstrategy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-allocationstrategy), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-bidpercentage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-bidpercentage), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2configuration), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2keypair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2keypair), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2keypair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2keypair), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-imageid](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-imageid), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancerole](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancerole), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancetypes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancetypes), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-launchtemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-launchtemplate), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-maxvcpus](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-maxvcpus), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-minvcpus](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-minvcpus), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-placementgroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-placementgroup), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-securitygroupids](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-securitygroupids), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-subnets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-subnets), [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-tags), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-type), and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-updatetolatestimageversion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-updatetolatestimageversion)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplaceComputeEnvironment", "type": "boolean" }, "ServiceRole": { + "markdownDescription": "The full Amazon Resource Name \\(ARN\\) of the IAM role that allows AWS Batch to make calls to other AWS services on your behalf\\. For more information, see [AWS Batch service IAM role](https://docs.aws.amazon.com/batch/latest/userguide/service_IAM_role.html) in the * AWS Batch User Guide*\\. \nIf your account already created the AWS Batch service\\-linked role, that role is used by default for your compute environment unless you specify a different role here\\. If the AWS Batch service\\-linked role doesn't exist in your account, and no role is specified here, the service attempts to create the AWS Batch service\\-linked role in your account\\.\nIf your specified role has a path other than `/`, then you must specify either the full role ARN \\(recommended\\) or prefix the role name with the path\\. For example, if a role with the name `bar` has a path of `/foo/`, specify `/foo/bar` as the role name\\. For more information, see [Friendly names and paths](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names) in the *IAM User Guide*\\. \nDepending on how you created your AWS Batch service role, its ARN might contain the `service-role` path prefix\\. When you only specify the name of the service role, AWS Batch assumes that your ARN doesn't use the `service-role` path prefix\\. Because of this, we recommend that you specify the full ARN of your service role when you create compute environments\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceRole", "type": "string" }, "State": { + "markdownDescription": "The state of the compute environment\\. If the state is `ENABLED`, then the compute environment accepts jobs from a queue and can scale out automatically based on queues\\. \nIf the state is `ENABLED`, then the AWS Batch scheduler can attempt to place jobs from an associated job queue on the compute resources within the environment\\. If the compute environment is managed, then it can scale its instances out or in automatically, based on the job queue demand\\. \nIf the state is `DISABLED`, then the AWS Batch scheduler doesn't attempt to place jobs within the environment\\. Jobs in a `STARTING` or `RUNNING` state continue to progress normally\\. Managed compute environments in the `DISABLED` state don't scale out\\. However, they scale in to `minvCpus` value after instances become idle\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", "type": "string" }, "Tags": { "additionalProperties": true, + "markdownDescription": "The tags applied to the compute environment\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" }, "Type": { + "markdownDescription": "The type of the compute environment: `MANAGED` or `UNMANAGED`\\. For more information, see [Compute Environments](https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html) in the * AWS Batch User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `MANAGED | UNMANAGED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" }, "UnmanagedvCpus": { + "markdownDescription": "The maximum number of vCPUs for an unmanaged compute environment\\. This parameter is only used for fair share scheduling to reserve vCPU capacity for new share identifiers\\. If this parameter isn't provided for a fair share job queue, no vCPU capacity is reserved\\. \nThis parameter is only supported when the `type` parameter is set to `UNMANAGED`\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnmanagedvCpus", "type": "number" }, "UpdatePolicy": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.UpdatePolicy" + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.UpdatePolicy", + "markdownDescription": "Specifies the infrastructure update policy for the compute environment\\. For more information about infrastructure updates, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: [UpdatePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-updatepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdatePolicy" } }, "required": [ @@ -19222,75 +23583,111 @@ "additionalProperties": false, "properties": { "AllocationStrategy": { + "markdownDescription": "The allocation strategy to use for the compute resource if not enough instances of the best fitting instance type can be allocated\\. This might be because of availability of the instance type in the Region or [Amazon EC2 service limits](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html)\\. For more information, see [Allocation strategies](https://docs.aws.amazon.com/batch/latest/userguide/allocation-strategies.html) in the * AWS Batch User Guide*\\. \nWhen updating a compute environment, changing the allocation strategy requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. `BEST_FIT` is not supported when updating a compute environment\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified\\. \nBEST\\_FIT \\(default\\) \nAWS Batch selects an instance type that best fits the needs of the jobs with a preference for the lowest\\-cost instance type\\. If additional instances of the selected instance type aren't available, AWS Batch waits for the additional instances to be available\\. If there aren't enough instances available, or if the user is reaching [Amazon EC2 service limits](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html) then additional jobs aren't run until the currently running jobs have completed\\. This allocation strategy keeps costs lower but can limit scaling\\. If you are using Spot Fleets with `BEST_FIT` then the Spot Fleet IAM role must be specified\\. \nBEST\\_FIT\\_PROGRESSIVE \n AWS Batch will select additional instance types that are large enough to meet the requirements of the jobs in the queue, with a preference for instance types with a lower cost per unit vCPU\\. If additional instances of the previously selected instance types aren't available, AWS Batch will select new instance types\\. \nSPOT\\_CAPACITY\\_OPTIMIZED \n AWS Batch will select one or more instance types that are large enough to meet the requirements of the jobs in the queue, with a preference for instance types that are less likely to be interrupted\\. This allocation strategy is only available for Spot Instance compute resources\\.\nWith both `BEST_FIT_PROGRESSIVE` and `SPOT_CAPACITY_OPTIMIZED` allocation strategies using On\\-Demand or Spot Instances, and the `BEST_FIT` strategy using Spot Instances, AWS Batch might need to go above `maxvCpus` to meet your capacity requirements\\. In this event, AWS Batch never exceeds `maxvCpus` by more than a single instance\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BEST_FIT_PROGRESSIVE | SPOT_CAPACITY_OPTIMIZED` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "AllocationStrategy", "type": "string" }, "BidPercentage": { + "markdownDescription": "The maximum percentage that a Spot Instance price can be when compared with the On\\-Demand price for that instance type before instances are launched\\. For example, if your maximum percentage is 20%, the Spot price must be less than 20% of the current On\\-Demand price for that Amazon EC2 instance\\. You always pay the lowest \\(market\\) price and never more than your maximum percentage\\. For most use cases, we recommend leaving this field empty\\. \nWhen updating a compute environment, changing the bid percentage requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "BidPercentage", "type": "number" }, "DesiredvCpus": { + "markdownDescription": "The desired number of Amazon EC2 vCPUS in the compute environment\\. AWS Batch modifies this value between the minimum and maximum values based on job queue demand\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n AWS Batch doesn't support changing the desired number of vCPUs of an existing compute environment\\. Don't specify this parameter for compute environments using Amazon EKS clusters\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DesiredvCpus", "type": "number" }, "Ec2Configuration": { "items": { "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject" }, + "markdownDescription": "Provides information used to select Amazon Machine Images \\(AMIs\\) for EC2 instances in the compute environment\\. If `Ec2Configuration` isn't specified, the default is `ECS_AL2`\\. \nWhen updating a compute environment, changing this setting requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. To remove the EC2 configuration and any custom AMI ID specified in `imageIdOverride`, set this value to an empty string\\. \nOne or two values can be provided\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n*Required*: No \n*Type*: List of [Ec2ConfigurationObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-ec2configurationobject.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Ec2Configuration", "type": "array" }, "Ec2KeyPair": { + "markdownDescription": "The Amazon EC2 key pair that's used for instances launched in the compute environment\\. You can use this key pair to log in to your instances with SSH\\. To remove the Amazon EC2 key pair, set this value to an empty string\\. \nWhen updating a compute environment, changing the EC2 key pair requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Ec2KeyPair", "type": "string" }, "ImageId": { + "markdownDescription": "The Amazon Machine Image \\(AMI\\) ID used for instances launched in the compute environment\\. This parameter is overridden by the `imageIdOverride` member of the `Ec2Configuration` structure\\. To remove the custom AMI ID and use the default AMI ID, set this value to an empty string\\. \nWhen updating a compute environment, changing the AMI ID requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\nThe AMI that you choose for a compute environment must match the architecture of the instance types that you intend to use for that compute environment\\. For example, if your compute environment uses A1 instance types, the compute resource AMI that you choose must support ARM instances\\. Amazon ECS vends both x86 and ARM versions of the Amazon ECS\\-optimized Amazon Linux 2 AMI\\. For more information, see [Amazon ECS\\-optimized Amazon Linux 2 AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#ecs-optimized-ami-linux-variants.html) in the *Amazon Elastic Container Service Developer Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "ImageId", "type": "string" }, "InstanceRole": { + "markdownDescription": "The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment\\. You can specify the short name or full Amazon Resource Name \\(ARN\\) of an instance profile\\. For example, ` ecsInstanceRole ` or `arn:aws:iam:::instance-profile/ecsInstanceRole `\\. For more information, see [Amazon ECS instance role](https://docs.aws.amazon.com/batch/latest/userguide/instance_IAM_role.html) in the * AWS Batch User Guide*\\. \nWhen updating a compute environment, changing this setting requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "InstanceRole", "type": "string" }, "InstanceTypes": { "items": { "type": "string" }, + "markdownDescription": "The instances types that can be launched\\. You can specify instance families to launch any instance type within those families \\(for example, `c5` or `p3`\\), or you can specify specific sizes within a family \\(such as `c5.8xlarge`\\)\\. You can also choose `optimal` to select instance types \\(from the C4, M4, and R4 instance families\\) that match the demand of your job queues\\. \nWhen updating a compute environment, changing this setting requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\nWhen you create a compute environment, the instance types that you select for the compute environment must share the same architecture\\. For example, you can't mix x86 and ARM instances in the same compute environment\\.\nCurrently, `optimal` uses instance types from the C4, M4, and R4 instance families\\. In Regions that don't have instance types from those instance families, instance types from the C5, M5, and R5 instance families are used\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "InstanceTypes", "type": "array" }, "LaunchTemplate": { - "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification" + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification", + "markdownDescription": "The launch template to use for your compute resources\\. Any other compute resource parameters that you specify in a [CreateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html) API operation override the same parameters in the launch template\\. You must specify either the launch template ID or launch template name in the request, but not both\\. For more information, see [Launch Template Support](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *AWS Batch User Guide*\\. Removing the launch template from a compute environment will not remove the AMI specified in the launch template\\. In order to update the AMI specified in a launch template, the `updateToLatestImageVersion` parameter must be set to `true`\\. \nWhen updating a compute environment, changing the launch template requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified\\.\n*Required*: No \n*Type*: [LaunchTemplateSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-launchtemplatespecification.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "LaunchTemplate" }, "MaxvCpus": { + "markdownDescription": "The maximum number of Amazon EC2 vCPUs that an environment can reach\\. \nWith both `BEST_FIT_PROGRESSIVE` and `SPOT_CAPACITY_OPTIMIZED` allocation strategies using On\\-Demand or Spot Instances, and the `BEST_FIT` strategy using Spot Instances, AWS Batch might need to exceed `maxvCpus` to meet your capacity requirements\\. In this event, AWS Batch never exceeds `maxvCpus` by more than a single instance\\. That is, no more than a single instance from among those specified in your compute environment\\.\n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxvCpus", "type": "number" }, "MinvCpus": { + "markdownDescription": "The minimum number of Amazon EC2 vCPUs that an environment should maintain \\(even if the compute environment is `DISABLED`\\)\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinvCpus", "type": "number" }, "PlacementGroup": { + "markdownDescription": "The Amazon EC2 placement group to associate with your compute resources\\. If you intend to submit multi\\-node parallel jobs to your compute environment, you should consider creating a cluster placement group and associate it with your compute resources\\. This keeps your multi\\-node parallel job on a logical grouping of instances within a single Availability Zone with high network flow potential\\. For more information, see [Placement groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \nWhen updating a compute environment, changing the placement group requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "PlacementGroup", "type": "string" }, "SecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "The Amazon EC2 security groups that are associated with instances launched in the compute environment\\. This parameter is required for Fargate compute resources, where it can contain up to 5 security groups\\. For Fargate compute resources, providing an empty list is handled as if this parameter wasn't specified and no change is made\\. For EC2 compute resources, providing an empty list removes the security groups from the compute resource\\. \nWhen updating a compute environment, changing the EC2 security groups requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "SpotIamFleetRole": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon EC2 Spot Fleet IAM role applied to a `SPOT` compute environment\\. This role is required if the allocation strategy set to `BEST_FIT` or if the allocation strategy isn't specified\\. For more information, see [Amazon EC2 spot fleet role](https://docs.aws.amazon.com/batch/latest/userguide/spot_fleet_IAM_role.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\nTo tag your Spot Instances on creation, the Spot Fleet IAM role specified here must use the newer **AmazonEC2SpotFleetTaggingRole** managed policy\\. The previously recommended **AmazonEC2SpotFleetRole** managed policy doesn't have the required permissions to tag Spot Instances\\. For more information, see [Spot instances not tagged on creation](https://docs.aws.amazon.com/batch/latest/userguide/troubleshooting.html#spot-instance-no-tag) in the * AWS Batch User Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpotIamFleetRole", "type": "string" }, "Subnets": { "items": { "type": "string" }, + "markdownDescription": "The VPC subnets where the compute resources are launched\\. Fargate compute resources can contain up to 16 subnets\\. For Fargate compute resources, providing an empty list will be handled as if this parameter wasn't specified and no change is made\\. For EC2 compute resources, providing an empty list removes the VPC subnets from the compute resource\\. For more information, see [VPCs and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html) in the *Amazon VPC User Guide*\\. \nWhen updating a compute environment, changing the VPC subnets requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \n AWS Batch on Amazon EC2 and AWS Batch on Amazon EKS support Local Zones\\. For more information, see [ Local Zones](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-local-zones) in the *Amazon EC2 User Guide for Linux Instances*, [Amazon EKS and AWS Local Zones](https://docs.aws.amazon.com/eks/latest/userguide/local-zones.html) in the *Amazon EKS User Guide* and [ Amazon ECS clusters in Local Zones, Wavelength Zones, and AWS Outposts](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-regions-zones.html#clusters-local-zones) in the *Amazon ECS Developer Guide*\\. \n AWS Batch on Fargate doesn't currently support Local Zones\\.\n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Subnets", "type": "array" }, "Tags": { "additionalProperties": true, + "markdownDescription": "Key\\-value pair tags to be applied to EC2 resources that are launched in the compute environment\\. For AWS Batch, these take the form of `\"String1\": \"String2\"`, where `String1` is the tag key and `String2` is the tag value\\-for example, `{ \"Name\": \"Batch Instance - C4OnDemand\" }`\\. This is helpful for recognizing your AWS Batch instances in the Amazon EC2 console\\. These tags aren't seen when using the AWS Batch `ListTagsForResource` API operation\\. \nWhen updating a compute environment, changing this setting requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n*Required*: No \n*Type*: Map of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" }, "Type": { + "markdownDescription": "The type of compute environment: `EC2`, `SPOT`, `FARGATE`, or `FARGATE_SPOT`\\. For more information, see [Compute environments](https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html) in the * AWS Batch User Guide*\\. \n If you choose `SPOT`, you must also specify an Amazon EC2 Spot Fleet role with the `spotIamFleetRole` parameter\\. For more information, see [Amazon EC2 spot fleet role](https://docs.aws.amazon.com/batch/latest/userguide/spot_fleet_IAM_role.html) in the * AWS Batch User Guide*\\. \nWhen updating compute environment, changing the type of a compute environment requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nWhen updating the type of a compute environment, changing between `EC2` and `SPOT` or between `FARGATE` and `FARGATE_SPOT` will initiate an infrastructure update, but if you switch between `EC2` and `FARGATE`, AWS CloudFormation will create a new compute environment\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EC2 | FARGATE | FARGATE_SPOT | SPOT` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Type", "type": "string" }, "UpdateToLatestImageVersion": { + "markdownDescription": "Specifies whether the AMI ID is updated to the latest one that's supported by AWS Batch when the compute environment has an infrastructure update\\. The default value is `false`\\. \nAn AMI ID can either be specified in the `imageId` or `imageIdOverride` parameters or be determined by the launch template that's specified in the `launchTemplate` parameter\\. If an AMI ID is specified any of these ways, this parameter is ignored\\. For more information about to update AMI IDs during an infrastructure update, see [Updating the AMI ID](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html#updating-compute-environments-ami) in the * AWS Batch User Guide*\\.\nWhen updating a compute environment, changing this setting requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdateToLatestImageVersion", "type": "boolean" } }, @@ -19305,12 +23702,18 @@ "additionalProperties": false, "properties": { "ImageIdOverride": { + "markdownDescription": "The AMI ID used for instances launched in the compute environment that match the image type\\. This setting overrides the `imageId` set in the `computeResource` object\\. \nThe AMI that you choose for a compute environment must match the architecture of the instance types that you intend to use for that compute environment\\. For example, if your compute environment uses A1 instance types, the compute resource AMI that you choose must support ARM instances\\. Amazon ECS vends both x86 and ARM versions of the Amazon ECS\\-optimized Amazon Linux 2 AMI\\. For more information, see [Amazon ECS\\-optimized Amazon Linux 2 AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#ecs-optimized-ami-linux-variants.html) in the *Amazon Elastic Container Service Developer Guide*\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "ImageIdOverride", "type": "string" }, "ImageKubernetesVersion": { + "markdownDescription": "The Kubernetes version for the compute environment\\. If you don't specify a value, the latest version that AWS Batch supports is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "ImageKubernetesVersion", "type": "string" }, "ImageType": { + "markdownDescription": "The image type to match with the instance type to select an AMI\\. The supported values are different for `ECS` and `EKS` resources\\. \nECS \nIf the `imageIdOverride` parameter isn't specified, then a recent [Amazon ECS\\-optimized Amazon Linux 2 AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami) \\(`ECS_AL2`\\) is used\\. If a new image type is specified in an update, but neither an `imageId` nor a `imageIdOverride` parameter is specified, then the latest Amazon ECS optimized AMI for that image type that's supported by AWS Batch is used\\. \nECS\\_AL2 \n [Amazon Linux 2](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami): Default for all non\\-GPU instance families\\. \nECS\\_AL2\\_NVIDIA \n [Amazon Linux 2 \\(GPU\\)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#gpuami): Default for all GPU instance families \\(for example `P4` and `G4`\\) and can be used for all non AWS Graviton\\-based instance types\\. \nECS\\_AL1 \n [Amazon Linux](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#alami)\\. Amazon Linux has reached the end\\-of\\-life of standard support\\. For more information, see [Amazon Linux AMI](http://aws.amazon.com/amazon-linux-ami/)\\. \nEKS \nIf the `imageIdOverride` parameter isn't specified, then a recent [Amazon EKS\\-optimized Amazon Linux AMI](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html) \\(`EKS_AL2`\\) is used\\. If a new image type is specified in an update, but neither an `imageId` nor a `imageIdOverride` parameter is specified, then the latest Amazon EKS optimized AMI for that image type that AWS Batch supports is used\\. \nEKS\\_AL2 \n [Amazon Linux 2](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html): Default for all non\\-GPU instance families\\. \nEKS\\_AL2\\_NVIDIA \n [Amazon Linux 2 \\(accelerated\\)](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html): Default for all GPU instance families \\(for example, `P4` and `G4`\\) and can be used for all non AWS Graviton\\-based instance types\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "ImageType", "type": "string" } }, @@ -19323,9 +23726,13 @@ "additionalProperties": false, "properties": { "EksClusterArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon EKS cluster\\. An example is `arn:aws:eks:us-east-1:123456789012:cluster/ClusterForBatch `\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EksClusterArn", "type": "string" }, "KubernetesNamespace": { + "markdownDescription": "The namespace of the Amazon EKS cluster\\. AWS Batch manages pods in this namespace\\. The value can't left empty or null\\. It must be fewer than 64 characters long, can't be set to `default`, can't start with \"`kube-`,\" and must match this regular expression: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$`\\. For more information, see [Namespaces](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/) in the Kubernetes documentation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KubernetesNamespace", "type": "string" } }, @@ -19339,12 +23746,18 @@ "additionalProperties": false, "properties": { "LaunchTemplateId": { + "markdownDescription": "The ID of the launch template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "LaunchTemplateId", "type": "string" }, "LaunchTemplateName": { + "markdownDescription": "The name of the launch template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "LaunchTemplateName", "type": "string" }, "Version": { + "markdownDescription": "The version number of the launch template, `$Latest`, or `$Default`\\. \nIf the value is `$Latest`, the latest version of the launch template is used\\. If the value is `$Default`, the default version of the launch template is used\\. \nIf the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated\\. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true`\\. During an infrastructure update, if either `$Latest` or `$Default` is specified, AWS Batch re\\-evaluates the launch template version, and it might use a different version of the launch template\\. This is the case even if the launch template isn't specified in the update\\. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\.\nDefault: `$Default`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Version", "type": "string" } }, @@ -19354,9 +23767,13 @@ "additionalProperties": false, "properties": { "JobExecutionTimeoutMinutes": { + "markdownDescription": "Specifies the job timeout \\(in minutes\\) when the compute environment infrastructure is updated\\. The default value is 30\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobExecutionTimeoutMinutes", "type": "number" }, "TerminateJobsOnUpdate": { + "markdownDescription": "Specifies whether jobs are automatically terminated when the computer environment infrastructure is updated\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TerminateJobsOnUpdate", "type": "boolean" } }, @@ -19398,42 +23815,66 @@ "additionalProperties": false, "properties": { "ContainerProperties": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties" + "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties", + "markdownDescription": "An object with various properties specific to Amazon ECS based jobs\\. Valid values are `containerProperties`, `eksProperties`, and `nodeProperties`\\. Only one can be specified\\. \n*Required*: No \n*Type*: [ContainerProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerProperties" }, "EksProperties": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.EksProperties" + "$ref": "#/definitions/AWS::Batch::JobDefinition.EksProperties", + "markdownDescription": "An object with various properties that are specific to Amazon EKS based jobs\\. Valid values are `containerProperties`, `eksProperties`, and `nodeProperties`\\. Only one can be specified\\. \n*Required*: No \n*Type*: [EksProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-eksproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EksProperties" }, "JobDefinitionName": { + "markdownDescription": "The name of the job definition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "JobDefinitionName", "type": "string" }, "NodeProperties": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeProperties" + "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeProperties", + "markdownDescription": "An object with various properties that are specific to multi\\-node parallel jobs\\. Valid values are `containerProperties`, `eksProperties`, and `nodeProperties`\\. Only one can be specified\\. \nIf the job runs on Fargate resources, don't specify `nodeProperties`\\. Use `containerProperties` instead\\.\n*Required*: No \n*Type*: [NodeProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-nodeproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NodeProperties" }, "Parameters": { + "markdownDescription": "Default parameters or parameter substitution placeholders that are set in the job definition\\. Parameters are specified as a key\\-value pair mapping\\. Parameters in a `SubmitJob` request override any corresponding parameter defaults from the job definition\\. For more information about specifying parameters, see [Job definition parameters](https://docs.aws.amazon.com/batch/latest/userguide/job_definition_parameters.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "object" }, "PlatformCapabilities": { "items": { "type": "string" }, + "markdownDescription": "The platform capabilities required by the job definition\\. If no value is specified, it defaults to `EC2`\\. Jobs run on Fargate resources specify `FARGATE`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlatformCapabilities", "type": "array" }, "PropagateTags": { + "markdownDescription": "Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task\\. If no value is specified, the tags aren't propagated\\. Tags can only be propagated to the tasks when the tasks are created\\. For tags with the same name, job tags are given priority over job definitions tags\\. If the total number of combined tags from the job and job definition is over 50, the job is moved to the `FAILED` state\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropagateTags", "type": "boolean" }, "RetryStrategy": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.RetryStrategy" + "$ref": "#/definitions/AWS::Batch::JobDefinition.RetryStrategy", + "markdownDescription": "The retry strategy to use for failed jobs that are submitted with this job definition\\. \n*Required*: No \n*Type*: [RetryStrategy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-retrystrategy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryStrategy" }, "SchedulingPriority": { + "markdownDescription": "The scheduling priority of the job definition\\. This only affects jobs in job queues with a fair share policy\\. Jobs with a higher scheduling priority are scheduled before jobs with a lower scheduling priority\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchedulingPriority", "type": "number" }, "Tags": { + "markdownDescription": "The tags that are applied to the job definition\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "object" }, "Timeout": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.Timeout" + "$ref": "#/definitions/AWS::Batch::JobDefinition.Timeout", + "markdownDescription": "The timeout time for jobs that are submitted with this job definition\\. After the amount of time you specify passes, AWS Batch terminates your jobs if they aren't finished\\. \n*Required*: No \n*Type*: [Timeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-timeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout" }, "Type": { + "markdownDescription": "The type of job definition\\. For more information about multi\\-node parallel jobs, see [Creating a multi\\-node parallel job definition](https://docs.aws.amazon.com/batch/latest/userguide/multi-node-job-def.html) in the * AWS Batch User Guide*\\. \nIf the job is run on Fargate resources, then `multinode` isn't supported\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `container | multinode` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -19467,9 +23908,13 @@ "additionalProperties": false, "properties": { "AccessPointId": { + "markdownDescription": "The Amazon EFS access point ID to use\\. If an access point is specified, the root directory value specified in the `EFSVolumeConfiguration` must either be omitted or set to `/` which enforces the path set on the EFS access point\\. If an access point is used, transit encryption must be enabled in the `EFSVolumeConfiguration`\\. For more information, see [Working with Amazon EFS access points](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html) in the *Amazon Elastic File System User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessPointId", "type": "string" }, "Iam": { + "markdownDescription": "Whether or not to use the AWS Batch job IAM role defined in a job definition when mounting the Amazon EFS file system\\. If enabled, transit encryption must be enabled in the `EFSVolumeConfiguration`\\. If this parameter is omitted, the default value of `DISABLED` is used\\. For more information, see [Using Amazon EFS access points](https://docs.aws.amazon.com/batch/latest/userguide/efs-volumes.html#efs-volume-accesspoints) in the * AWS Batch User Guide*\\. EFS IAM authorization requires that `TransitEncryption` be `ENABLED` and that a `JobRoleArn` is specified\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iam", "type": "string" } }, @@ -19482,81 +23927,121 @@ "items": { "type": "string" }, + "markdownDescription": "The command that's passed to the container\\. This parameter maps to `Cmd` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `COMMAND` parameter to [docker run](https://docs.docker.com/engine/reference/run/)\\. For more information, see [https://docs\\.docker\\.com/engine/reference/builder/\\#cmd](https://docs.docker.com/engine/reference/builder/#cmd)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Command", "type": "array" }, "Environment": { "items": { "$ref": "#/definitions/AWS::Batch::JobDefinition.Environment" }, + "markdownDescription": "The environment variables to pass to a container\\. This parameter maps to `Env` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--env` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \nWe don't recommend using plaintext environment variables for sensitive information, such as credential data\\.\nEnvironment variables cannot start with \"`AWS_BATCH`\"\\. This naming convention is reserved for variables that AWS Batch sets\\.\n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-environment.html) of [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-environment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Environment", "type": "array" }, "ExecutionRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the execution role that AWS Batch can assume\\. For jobs that run on Fargate resources, you must provide an execution role\\. For more information, see [AWS Batch execution IAM role](https://docs.aws.amazon.com/batch/latest/userguide/execution-IAM-role.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionRoleArn", "type": "string" }, "FargatePlatformConfiguration": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.FargatePlatformConfiguration" + "$ref": "#/definitions/AWS::Batch::JobDefinition.FargatePlatformConfiguration", + "markdownDescription": "The platform configuration for jobs that are running on Fargate resources\\. Jobs that are running on EC2 resources must not specify this parameter\\. \n*Required*: No \n*Type*: [FargatePlatformConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-fargateplatformconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FargatePlatformConfiguration" }, "Image": { + "markdownDescription": "The image used to start a container\\. This string is passed directly to the Docker daemon\\. Images in the Docker Hub registry are available by default\\. Other repositories are specified with ` repository-url/image:tag `\\. It can be 255 characters long\\. It can contain uppercase and lowercase letters, numbers, hyphens \\(\\-\\), underscores \\(\\_\\), colons \\(:\\), periods \\(\\.\\), forward slashes \\(/\\), and number signs \\(\\#\\)\\. This parameter maps to `Image` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `IMAGE` parameter of [docker run](https://docs.docker.com/engine/reference/run/)\\. \nDocker image architecture must match the processor architecture of the compute resources that they're scheduled on\\. For example, ARM\\-based Docker images can only run on ARM\\-based compute resources\\.\n+ Images in Amazon ECR Public repositories use the full `registry/repository[:tag]` or `registry/repository[@digest]` naming conventions\\. For example, `public.ecr.aws/registry_alias/my-web-app:latest `\\.\n+ Images in Amazon ECR repositories use the full registry and repository URI \\(for example, `123456789012.dkr.ecr..amazonaws.com/`\\)\\.\n+ Images in official repositories on Docker Hub use a single name \\(for example, `ubuntu` or `mongo`\\)\\.\n+ Images in other repositories on Docker Hub are qualified with an organization name \\(for example, `amazon/amazon-ecs-agent`\\)\\.\n+ Images in other online repositories are qualified further by a domain name \\(for example, `quay.io/assemblyline/ubuntu`\\)\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Image", "type": "string" }, "InstanceType": { + "markdownDescription": "The instance type to use for a multi\\-node parallel job\\. All node groups in a multi\\-node parallel job must use the same instance type\\. \nThis parameter isn't applicable to single\\-node container jobs or jobs that run on Fargate resources, and shouldn't be provided\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", "type": "string" }, "JobRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that the container can assume for AWS permissions\\. For more information, see [IAM roles for tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobRoleArn", "type": "string" }, "LinuxParameters": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.LinuxParameters" + "$ref": "#/definitions/AWS::Batch::JobDefinition.LinuxParameters", + "markdownDescription": "Linux\\-specific modifications that are applied to the container, such as details for device mappings\\. \n*Required*: No \n*Type*: [LinuxParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-linuxparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LinuxParameters" }, "LogConfiguration": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.LogConfiguration" + "$ref": "#/definitions/AWS::Batch::JobDefinition.LogConfiguration", + "markdownDescription": "The log configuration specification for the container\\. \nThis parameter maps to `LogConfig` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--log-driver` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. By default, containers use the same logging driver that the Docker daemon uses\\. However the container might use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition\\. To use a different logging driver for a container, the log system must be configured properly on the container instance \\(or on a different log server for remote logging options\\)\\. For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.docker.com/engine/admin/logging/overview/) in the Docker documentation\\. \n AWS Batch currently supports a subset of the logging drivers available to the Docker daemon \\(shown in the [LogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-logconfiguration) data type\\)\\.\nThis parameter requires version 1\\.18 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version | grep \"Server API version\"` \nThe Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the `ECS_AVAILABLE_LOGGING_DRIVERS` environment variable before containers placed on that instance can use these log configuration options\\. For more information, see [Amazon ECS container agent configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*\\.\n*Required*: No \n*Type*: [LogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-logconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogConfiguration" }, "Memory": { + "markdownDescription": "This parameter is deprecated, use `resourceRequirements` to specify the memory requirements for the job definition\\. It's not supported for jobs running on Fargate resources\\. For jobs that run on EC2 resources, it specifies the memory hard limit \\(in MiB\\) for a container\\. If your container attempts to exceed the specified number, it's terminated\\. You must specify at least 4 MiB of memory for a job using this parameter\\. The memory hard limit can be specified in several places\\. It must be specified for each node at least once\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Memory", "type": "number" }, "MountPoints": { "items": { "$ref": "#/definitions/AWS::Batch::JobDefinition.MountPoints" }, + "markdownDescription": "The mount points for data volumes in your container\\. This parameter maps to `Volumes` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--volume` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html) of [MountPoints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MountPoints", "type": "array" }, "NetworkConfiguration": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.NetworkConfiguration" + "$ref": "#/definitions/AWS::Batch::JobDefinition.NetworkConfiguration", + "markdownDescription": "The network configuration for jobs that are running on Fargate resources\\. Jobs that are running on EC2 resources must not specify this parameter\\. \n*Required*: No \n*Type*: [NetworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-networkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkConfiguration" }, "Privileged": { + "markdownDescription": "When this parameter is true, the container is given elevated permissions on the host container instance \\(similar to the `root` user\\)\\. This parameter maps to `Privileged` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--privileged` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. The default value is false\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided, or specified as false\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Privileged", "type": "boolean" }, "ReadonlyRootFilesystem": { + "markdownDescription": "When this parameter is true, the container is given read\\-only access to its root file system\\. This parameter maps to `ReadonlyRootfs` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--read-only` option to `docker run`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadonlyRootFilesystem", "type": "boolean" }, "ResourceRequirements": { "items": { "$ref": "#/definitions/AWS::Batch::JobDefinition.ResourceRequirement" }, + "markdownDescription": "The type and amount of resources to assign to a container\\. The supported resources include `GPU`, `MEMORY`, and `VCPU`\\. \n*Required*: No \n*Type*: List of [ResourceRequirement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-resourcerequirement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceRequirements", "type": "array" }, "Secrets": { "items": { "$ref": "#/definitions/AWS::Batch::JobDefinition.Secret" }, + "markdownDescription": "The secrets for the container\\. For more information, see [Specifying sensitive data](https://docs.aws.amazon.com/batch/latest/userguide/specifying-sensitive-data.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: List of [Secret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-secret.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Secrets", "type": "array" }, "Ulimits": { "items": { "$ref": "#/definitions/AWS::Batch::JobDefinition.Ulimit" }, + "markdownDescription": "A list of `ulimits` to set in the container\\. This parameter maps to `Ulimits` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--ulimit` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided\\.\n*Required*: No \n*Type*: List of [Ulimit](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ulimits", "type": "array" }, "User": { + "markdownDescription": "The user name to use inside the container\\. This parameter maps to `User` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--user` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "User", "type": "string" }, "Vcpus": { + "markdownDescription": "This parameter is deprecated, use `resourceRequirements` to specify the vCPU requirements for the job definition\\. It's not supported for jobs running on Fargate resources\\. For jobs running on EC2 resources, it specifies the number of vCPUs reserved for the job\\. \nEach vCPU is equivalent to 1,024 CPU shares\\. This parameter maps to `CpuShares` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--cpu-shares` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. The number of vCPUs must be specified but can be specified in several places\\. You must specify it at least once for each node\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Vcpus", "type": "number" }, "Volumes": { "items": { "$ref": "#/definitions/AWS::Batch::JobDefinition.Volumes" }, + "markdownDescription": "A list of data volumes used in a job\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html) of [Volumes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Volumes", "type": "array" } }, @@ -19569,15 +24054,21 @@ "additionalProperties": false, "properties": { "ContainerPath": { + "markdownDescription": "The path inside the container that's used to expose the host device\\. By default, the `hostPath` value is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerPath", "type": "string" }, "HostPath": { + "markdownDescription": "The path for the device on the host container instance\\. \n*Required*: No \n*Type*: [String](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-eksvolume-hostpath.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostPath", "type": "string" }, "Permissions": { "items": { "type": "string" }, + "markdownDescription": "The explicit permissions to provide to the container for the device\\. By default, the container has permissions for `read`, `write`, and `mknod` for the device\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Permissions", "type": "array" } }, @@ -19587,18 +24078,28 @@ "additionalProperties": false, "properties": { "AuthorizationConfig": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.AuthorizationConfig" + "$ref": "#/definitions/AWS::Batch::JobDefinition.AuthorizationConfig", + "markdownDescription": "The authorization configuration details for the Amazon EFS file system\\. \n*Required*: No \n*Type*: [AuthorizationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-authorizationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationConfig" }, "FileSystemId": { + "markdownDescription": "The Amazon EFS file system ID to use\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileSystemId", "type": "string" }, "RootDirectory": { + "markdownDescription": "The directory within the Amazon EFS file system to mount as the root directory inside the host\\. If this parameter is omitted, the root of the Amazon EFS volume is used instead\\. Specifying `/` has the same effect as omitting this parameter\\. The maximum length is 4,096 characters\\. \nIf an EFS access point is specified in the `authorizationConfig`, the root directory parameter must either be omitted or set to `/`, which enforces the path set on the Amazon EFS access point\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RootDirectory", "type": "string" }, "TransitEncryption": { + "markdownDescription": "Determines whether to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server\\. Transit encryption must be enabled if Amazon EFS IAM authorization is used\\. If this parameter is omitted, the default value of `DISABLED` is used\\. For more information, see [Encrypting data in transit](https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html) in the *Amazon Elastic File System User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitEncryption", "type": "string" }, "TransitEncryptionPort": { + "markdownDescription": "The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server\\. If you don't specify a transit encryption port, it uses the port selection strategy that the Amazon EFS mount helper uses\\. The value must be between 0 and 65,535\\. For more information, see [EFS mount helper](https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html) in the *Amazon Elastic File System User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitEncryptionPort", "type": "number" } }, @@ -19614,39 +24115,57 @@ "items": { "type": "string" }, + "markdownDescription": "An array of arguments to the entrypoint\\. If this isn't specified, the `CMD` of the container image is used\\. This corresponds to the `args` member in the [Entrypoint](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint) portion of the [Pod](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/) in Kubernetes\\. Environment variable references are expanded using the container's environment\\. \nIf the referenced environment variable doesn't exist, the reference in the command isn't changed\\. For example, if the reference is to \"`$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/NAME1.html.html)`\" and the `https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/NAME1.html.html` environment variable doesn't exist, the command string will remain \"`$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/NAME1.html.html)`\\.\" `$$` is replaced with `$`, and the resulting string isn't expanded\\. For example, `$$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/VAR_NAME.html.html)` is passed as `$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/VAR_NAME.html.html)` whether or not the `https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/VAR_NAME.html.html` environment variable exists\\. For more information, see [CMD](https://docs.docker.com/engine/reference/builder/#cmd) in the *Dockerfile reference* and [Define a command and arguments for a pod](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Args", "type": "array" }, "Command": { "items": { "type": "string" }, + "markdownDescription": "The entrypoint for the container\\. This isn't run within a shell\\. If this isn't specified, the `ENTRYPOINT` of the container image is used\\. Environment variable references are expanded using the container's environment\\. \nIf the referenced environment variable doesn't exist, the reference in the command isn't changed\\. For example, if the reference is to \"`$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/NAME1.html.html)`\" and the `https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/NAME1.html.html` environment variable doesn't exist, the command string will remain \"`$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/NAME1.html.html)`\\.\" `$$` is replaced with `$` and the resulting string isn't expanded\\. For example, `$$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/VAR_NAME.html.html)` will be passed as `$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/VAR_NAME.html.html)` whether or not the `https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/VAR_NAME.html.html` environment variable exists\\. The entrypoint can't be updated\\. For more information, see [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint) in the *Dockerfile reference* and [Define a command and arguments for a container](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/) and [Entrypoint](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Command", "type": "array" }, "Env": { "items": { "$ref": "#/definitions/AWS::Batch::JobDefinition.EksContainerEnvironmentVariable" }, + "markdownDescription": "The environment variables to pass to a container\\. \nEnvironment variables cannot start with \"`AWS_BATCH`\"\\. This naming convention is reserved for variables that AWS Batch sets\\.\n*Required*: No \n*Type*: List of [EksContainerEnvironmentVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekscontainerenvironmentvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Env", "type": "array" }, "Image": { + "markdownDescription": "The Docker image used to start the container\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Image", "type": "string" }, "ImagePullPolicy": { + "markdownDescription": "The image pull policy for the container\\. Supported values are `Always`, `IfNotPresent`, and `Never`\\. This parameter defaults to `IfNotPresent`\\. However, if the `:latest` tag is specified, it defaults to `Always`\\. For more information, see [Updating images](https://kubernetes.io/docs/concepts/containers/images/#updating-images) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImagePullPolicy", "type": "string" }, "Name": { + "markdownDescription": "The name of the container\\. If the name isn't specified, the default name \"`Default`\" is used\\. Each container in a pod must have a unique name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Resources": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.Resources" + "$ref": "#/definitions/AWS::Batch::JobDefinition.Resources", + "markdownDescription": "The type and amount of resources to assign to a container\\. The supported resources include `memory`, `cpu`, and `nvidia.com/gpu`\\. For more information, see [Resource management for pods and containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: [Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekscontainer-resources.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Resources" }, "SecurityContext": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.SecurityContext" + "$ref": "#/definitions/AWS::Batch::JobDefinition.SecurityContext", + "markdownDescription": "The security context for a job\\. For more information, see [Configure a security context for a pod or container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: [SecurityContext](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekscontainer-securitycontext.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityContext" }, "VolumeMounts": { "items": { "$ref": "#/definitions/AWS::Batch::JobDefinition.EksContainerVolumeMount" }, + "markdownDescription": "The volume mounts for the container\\. AWS Batch supports `emptyDir`, `hostPath`, and `secret` volume types\\. For more information about volumes and volume mounts in Kubernetes, see [Volumes](https://kubernetes.io/docs/concepts/storage/volumes/) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: List of [EksContainerVolumeMount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekscontainervolumemount.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeMounts", "type": "array" } }, @@ -19659,9 +24178,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the environment variable\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "The value of the environment variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -19674,12 +24197,18 @@ "additionalProperties": false, "properties": { "MountPath": { + "markdownDescription": "The path on the container where the volume is mounted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MountPath", "type": "string" }, "Name": { + "markdownDescription": "The name the volume mount\\. This must match the name of one of the volumes in the pod\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "ReadOnly": { + "markdownDescription": "If this value is `true`, the container has read\\-only access to the volume\\. Otherwise, the container can write to the volume\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadOnly", "type": "boolean" } }, @@ -19689,7 +24218,9 @@ "additionalProperties": false, "properties": { "PodProperties": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.PodProperties" + "$ref": "#/definitions/AWS::Batch::JobDefinition.PodProperties", + "markdownDescription": "The properties for the Kubernetes pod resources of a job\\. \n*Required*: No \n*Type*: [PodProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-podproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PodProperties" } }, "type": "object" @@ -19698,16 +24229,24 @@ "additionalProperties": false, "properties": { "EmptyDir": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.EmptyDir" + "$ref": "#/definitions/AWS::Batch::JobDefinition.EmptyDir", + "markdownDescription": "Specifies the configuration of a Kubernetes `emptyDir` volume\\. For more information, see [emptyDir](https://kubernetes.io/docs/concepts/storage/volumes/#emptydir) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: [EmptyDir](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-eksvolume-emptydir.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmptyDir" }, "HostPath": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.HostPath" + "$ref": "#/definitions/AWS::Batch::JobDefinition.HostPath", + "markdownDescription": "Specifies the configuration of a Kubernetes `hostPath` volume\\. For more information, see [hostPath](https://kubernetes.io/docs/concepts/storage/volumes/#hostpath) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: [HostPath](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-eksvolume-hostpath.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostPath" }, "Name": { + "markdownDescription": "The name of the volume\\. The name must be allowed as a DNS subdomain name\\. For more information, see [DNS subdomain names](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names) in the *Kubernetes documentation*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Secret": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.Secret" + "$ref": "#/definitions/AWS::Batch::JobDefinition.Secret", + "markdownDescription": "Specifies the configuration of a Kubernetes `secret` volume\\. For more information, see [secret](https://kubernetes.io/docs/concepts/storage/volumes/#secret) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: [Secret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-secret.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Secret" } }, "required": [ @@ -19719,9 +24258,13 @@ "additionalProperties": false, "properties": { "Medium": { + "markdownDescription": "The medium to store the volume\\. The default value is an empty string, which uses the storage of the node\\. \n\"\" \n **\\(Default\\)** Use the disk storage of the node\\. \n\"Memory\" \nUse the `tmpfs` volume that's backed by the RAM of the node\\. Contents of the volume are lost when the node reboots, and any storage on the volume counts against the container's memory limit\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Medium", "type": "string" }, "SizeLimit": { + "markdownDescription": "The maximum size of the volume\\. By default, there's no maximum size defined\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SizeLimit", "type": "string" } }, @@ -19731,9 +24274,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the environment variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "The value of the environment variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -19743,15 +24290,23 @@ "additionalProperties": false, "properties": { "Action": { + "markdownDescription": "Specifies the action to take if all of the specified conditions \\(`onStatusReason`, `onReason`, and `onExitCode`\\) are met\\. The values aren't case sensitive\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EXIT | RETRY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", "type": "string" }, "OnExitCode": { + "markdownDescription": "Contains a glob pattern to match against the decimal representation of the `ExitCode` returned for a job\\. The pattern can be up to 512 characters long\\. It can contain only numbers, and can end with an asterisk \\(\\*\\) so that only the start of the string needs to be an exact match\\. \nThe string can contain up to 512 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnExitCode", "type": "string" }, "OnReason": { + "markdownDescription": "Contains a glob pattern to match against the `Reason` returned for a job\\. The pattern can contain up to 512 characters\\. It can contain letters, numbers, periods \\(\\.\\), colons \\(:\\), and white space \\(including spaces and tabs\\)\\. It can optionally end with an asterisk \\(\\*\\) so that only the start of the string needs to be an exact match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnReason", "type": "string" }, "OnStatusReason": { + "markdownDescription": "Contains a glob pattern to match against the `StatusReason` returned for a job\\. The pattern can contain up to 512 characters\\. It can contain letters, numbers, periods \\(\\.\\), colons \\(:\\), and white spaces \\(including spaces or tabs\\)\\. It can optionally end with an asterisk \\(\\*\\) so that only the start of the string needs to be an exact match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnStatusReason", "type": "string" } }, @@ -19764,6 +24319,8 @@ "additionalProperties": false, "properties": { "PlatformVersion": { + "markdownDescription": "The AWS Fargate platform version where the jobs are running\\. A platform version is specified only for jobs that are running on Fargate resources\\. If one isn't specified, the `LATEST` platform version is used by default\\. This uses a recent, approved version of the AWS Fargate platform for compute resources\\. For more information, see [AWS Fargate platform versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlatformVersion", "type": "string" } }, @@ -19773,6 +24330,8 @@ "additionalProperties": false, "properties": { "Path": { + "markdownDescription": "The path of the file or directory on the host to mount into containers on the pod\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", "type": "string" } }, @@ -19785,24 +24344,36 @@ "items": { "$ref": "#/definitions/AWS::Batch::JobDefinition.Device" }, + "markdownDescription": "Any of the host devices to expose to the container\\. This parameter maps to `Devices` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--device` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't provide it for these jobs\\.\n*Required*: No \n*Type*: List of [Device](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-device.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Devices", "type": "array" }, "InitProcessEnabled": { + "markdownDescription": "If true, run an `init` process inside the container that forwards signals and reaps processes\\. This parameter maps to the `--init` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. This parameter requires version 1\\.25 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version | grep \"Server API version\"` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InitProcessEnabled", "type": "boolean" }, "MaxSwap": { + "markdownDescription": "The total amount of swap memory \\(in MiB\\) a container can use\\. This parameter is translated to the `--memory-swap` option to [docker run](https://docs.docker.com/engine/reference/run/) where the value is the sum of the container memory plus the `maxSwap` value\\. For more information, see [`--memory-swap` details](https://docs.docker.com/config/containers/resource_constraints/#--memory-swap-details) in the Docker documentation\\. \nIf a `maxSwap` value of `0` is specified, the container doesn't use swap\\. Accepted values are `0` or any positive integer\\. If the `maxSwap` parameter is omitted, the container doesn't use the swap configuration for the container instance that it's running on\\. A `maxSwap` value must be set for the `swappiness` parameter to be used\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't provide it for these jobs\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxSwap", "type": "number" }, "SharedMemorySize": { + "markdownDescription": "The value for the size \\(in MiB\\) of the `/dev/shm` volume\\. This parameter maps to the `--shm-size` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't provide it for these jobs\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SharedMemorySize", "type": "number" }, "Swappiness": { + "markdownDescription": "You can use this parameter to tune a container's memory swappiness behavior\\. A `swappiness` value of `0` causes swapping to not occur unless absolutely necessary\\. A `swappiness` value of `100` causes pages to be swapped aggressively\\. Valid values are whole numbers between `0` and `100`\\. If the `swappiness` parameter isn't specified, a default value of `60` is used\\. If a value isn't specified for `maxSwap`, then this parameter is ignored\\. If `maxSwap` is set to 0, the container doesn't use swap\\. This parameter maps to the `--memory-swappiness` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \nConsider the following when you use a per\\-container swap configuration\\. \n+ Swap space must be enabled and allocated on the container instance for the containers to use\\.\n**Note** \nBy default, the Amazon ECS optimized AMIs don't have swap enabled\\. You must enable swap on the instance to use this feature\\. For more information, see [Instance store swap volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-store-swap-volumes.html) in the *Amazon EC2 User Guide for Linux Instances* or [How do I allocate memory to work as swap space in an Amazon EC2 instance by using a swap file?](http://aws.amazon.com/premiumsupport/knowledge-center/ec2-memory-swap-file/) \n+ The swap space parameters are only supported for job definitions using EC2 resources\\.\n+ If the `maxSwap` and `swappiness` parameters are omitted from a job definition, each container has a default `swappiness` value of 60\\. Moreover, the total swap usage is limited to two times the memory reservation of the container\\.\nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't provide it for these jobs\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Swappiness", "type": "number" }, "Tmpfs": { "items": { "$ref": "#/definitions/AWS::Batch::JobDefinition.Tmpfs" }, + "markdownDescription": "The container path, mount options, and size \\(in MiB\\) of the `tmpfs` mount\\. This parameter maps to the `--tmpfs` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't provide this parameter for this resource type\\.\n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-tmpfs.html) of [Tmpfs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-tmpfs.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tmpfs", "type": "array" } }, @@ -19812,15 +24383,21 @@ "additionalProperties": false, "properties": { "LogDriver": { + "markdownDescription": "The log driver to use for the container\\. The valid values that are listed for this parameter are log drivers that the Amazon ECS container agent can communicate with by default\\. \nThe supported log drivers are `awslogs`, `fluentd`, `gelf`, `json-file`, `journald`, `logentries`, `syslog`, and `splunk`\\. \nJobs that are running on Fargate resources are restricted to the `awslogs` and `splunk` log drivers\\. \nawslogs \nSpecifies the Amazon CloudWatch Logs logging driver\\. For more information, see [Using the awslogs log driver](https://docs.aws.amazon.com/batch/latest/userguide/using_awslogs.html) in the * AWS Batch User Guide* and [Amazon CloudWatch Logs logging driver](https://docs.docker.com/config/containers/logging/awslogs/) in the Docker documentation\\. \nfluentd \nSpecifies the Fluentd logging driver\\. For more information including usage and options, see [Fluentd logging driver](https://docs.docker.com/config/containers/logging/fluentd/) in the *Docker documentation*\\. \ngelf \nSpecifies the Graylog Extended Format \\(GELF\\) logging driver\\. For more information including usage and options, see [Graylog Extended Format logging driver](https://docs.docker.com/config/containers/logging/gelf/) in the *Docker documentation*\\. \njournald \nSpecifies the journald logging driver\\. For more information including usage and options, see [Journald logging driver](https://docs.docker.com/config/containers/logging/journald/) in the *Docker documentation*\\. \njson\\-file \nSpecifies the JSON file logging driver\\. For more information including usage and options, see [JSON File logging driver](https://docs.docker.com/config/containers/logging/json-file/) in the *Docker documentation*\\. \nsplunk \nSpecifies the Splunk logging driver\\. For more information including usage and options, see [Splunk logging driver](https://docs.docker.com/config/containers/logging/splunk/) in the *Docker documentation*\\. \nsyslog \nSpecifies the syslog logging driver\\. For more information including usage and options, see [Syslog logging driver](https://docs.docker.com/config/containers/logging/syslog/) in the *Docker documentation*\\.\nIf you have a custom driver that's not listed earlier that you want to work with the Amazon ECS container agent, you can fork the Amazon ECS container agent project that's [available on GitHub](https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver\\. We encourage you to submit pull requests for changes that you want to have included\\. However, Amazon Web Services doesn't currently support running modified copies of this software\\.\nThis parameter requires version 1\\.18 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version | grep \"Server API version\"` \n*Required*: Yes \n*Type*: String \n*Allowed values*: `awslogs | fluentd | gelf | journald | json-file | splunk | syslog` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogDriver", "type": "string" }, "Options": { + "markdownDescription": "The configuration options to send to the log driver\\. This parameter requires version 1\\.19 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version | grep \"Server API version\"` \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Options", "type": "object" }, "SecretOptions": { "items": { "$ref": "#/definitions/AWS::Batch::JobDefinition.Secret" }, + "markdownDescription": "The secrets to pass to the log configuration\\. For more information, see [Specifying sensitive data](https://docs.aws.amazon.com/batch/latest/userguide/specifying-sensitive-data.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: List of [Secret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-secret.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretOptions", "type": "array" } }, @@ -19833,12 +24410,18 @@ "additionalProperties": false, "properties": { "ContainerPath": { + "markdownDescription": "The path on the container where the host volume is mounted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerPath", "type": "string" }, "ReadOnly": { + "markdownDescription": "If this value is `true`, the container has read\\-only access to the volume\\. Otherwise, the container can write to the volume\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadOnly", "type": "boolean" }, "SourceVolume": { + "markdownDescription": "The name of the volume to mount\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceVolume", "type": "string" } }, @@ -19848,6 +24431,8 @@ "additionalProperties": false, "properties": { "AssignPublicIp": { + "markdownDescription": "Indicates whether the job has a public IP address\\. For a job that's running on Fargate resources in a private subnet to send outbound traffic to the internet \\(for example, to pull container images\\), the private subnet requires a NAT gateway be attached to route requests to the internet\\. For more information, see [Amazon ECS task networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*\\. The default value is \"`DISABLED`\"\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssignPublicIp", "type": "string" } }, @@ -19857,15 +24442,21 @@ "additionalProperties": false, "properties": { "MainNode": { + "markdownDescription": "Specifies the node index for the main node of a multi\\-node parallel job\\. This node index value must be fewer than the number of nodes\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MainNode", "type": "number" }, "NodeRangeProperties": { "items": { "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeRangeProperty" }, + "markdownDescription": "A list of node ranges and their properties that are associated with a multi\\-node parallel job\\. \n*Required*: Yes \n*Type*: List of [NodeRangeProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-noderangeproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NodeRangeProperties", "type": "array" }, "NumNodes": { + "markdownDescription": "The number of nodes that are associated with a multi\\-node parallel job\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumNodes", "type": "number" } }, @@ -19880,9 +24471,13 @@ "additionalProperties": false, "properties": { "Container": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties" + "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties", + "markdownDescription": "The container details for the node range\\. \n*Required*: No \n*Type*: [ContainerProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Container" }, "TargetNodes": { + "markdownDescription": "The range of nodes, using node index values\\. A range of `0:3` indicates nodes with index values of `0` through `3`\\. If the starting range value is omitted \\(`:n`\\), then `0` is used to start the range\\. If the ending range value is omitted \\(`n:`\\), then the highest possible node index is used to end the range\\. Your accumulative node ranges must account for all nodes \\(`0:n`\\)\\. You can nest node ranges \\(for example, `0:10` and `4:5`\\)\\. In this case, the `4:5` range properties override the `0:10` properties\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetNodes", "type": "string" } }, @@ -19898,21 +24493,31 @@ "items": { "$ref": "#/definitions/AWS::Batch::JobDefinition.EksContainer" }, + "markdownDescription": "The properties of the container that's used on the Amazon EKS pod\\. \n*Required*: No \n*Type*: List of [EksContainer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekscontainer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Containers", "type": "array" }, "DnsPolicy": { + "markdownDescription": "The DNS policy for the pod\\. The default value is `ClusterFirst`\\. If the `hostNetwork` parameter is not specified, the default is `ClusterFirstWithHostNet`\\. `ClusterFirst` indicates that any DNS query that does not match the configured cluster domain suffix is forwarded to the upstream nameserver inherited from the node\\. If no value was specified for `dnsPolicy` in the [RegisterJobDefinition](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html) API operation, then no value will be returned for `dnsPolicy` by either of [DescribeJobDefinitions](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobDefinitions.html) or [DescribeJobs](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobs.html) API operations\\. The pod spec setting will contain either `ClusterFirst` or `ClusterFirstWithHostNet`, depending on the value of the `hostNetwork` parameter\\. For more information, see [Pod's DNS policy](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy) in the *Kubernetes documentation*\\. \nValid values: `Default` \\| `ClusterFirst` \\| `ClusterFirstWithHostNet` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DnsPolicy", "type": "string" }, "HostNetwork": { + "markdownDescription": "Indicates if the pod uses the hosts' network IP address\\. The default value is `true`\\. Setting this to `false` enables the Kubernetes pod networking model\\. Most AWS Batch workloads are egress\\-only and don't require the overhead of IP allocation for each pod for incoming connections\\. For more information, see [Host namespaces](https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces) and [Pod networking](https://kubernetes.io/docs/concepts/workloads/pods/#pod-networking) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostNetwork", "type": "boolean" }, "ServiceAccountName": { + "markdownDescription": "The name of the service account that's used to run the pod\\. For more information, see [Kubernetes service accounts](https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html) and [Configure a Kubernetes service account to assume an IAM role](https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html) in the *Amazon EKS User Guide* and [Configure service accounts for pods](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceAccountName", "type": "string" }, "Volumes": { "items": { "$ref": "#/definitions/AWS::Batch::JobDefinition.EksVolume" }, + "markdownDescription": "Specifies the volumes for a job definition that uses Amazon EKS resources\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html) of [EksVolume](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-eksvolume.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Volumes", "type": "array" } }, @@ -19922,9 +24527,13 @@ "additionalProperties": false, "properties": { "Type": { + "markdownDescription": "The type of resource to assign to a container\\. The supported resources include `GPU`, `MEMORY`, and `VCPU`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GPU | MEMORY | VCPU` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" }, "Value": { + "markdownDescription": "The quantity of the specified resource to reserve for the container\\. The values vary based on the `type` specified\\. \ntype=\"GPU\" \nThe number of physical GPUs to reserve for the container\\. Make sure that the number of GPUs reserved for all containers in a job doesn't exceed the number of available GPUs on the compute resource that the job is launched on\\. \nGPUs aren't available for jobs that are running on Fargate resources\\. \ntype=\"MEMORY\" \nThe memory hard limit \\(in MiB\\) present to the container\\. This parameter is supported for jobs that are running on EC2 resources\\. If your container attempts to exceed the memory specified, the container is terminated\\. This parameter maps to `Memory` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--memory` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. You must specify at least 4 MiB of memory for a job\\. This is required but can be specified in several places for multi\\-node parallel \\(MNP\\) jobs\\. It must be specified for each node at least once\\. This parameter maps to `Memory` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--memory` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \nIf you're trying to maximize your resource utilization by providing your jobs as much memory as possible for a particular instance type, see [Memory management](https://docs.aws.amazon.com/batch/latest/userguide/memory-management.html) in the * AWS Batch User Guide*\\.\nFor jobs that are running on Fargate resources, then `value` is the hard limit \\(in MiB\\), and must match one of the supported values and the `VCPU` values must be one of the values supported for that memory value\\. \nvalue = 512 \n `VCPU` = 0\\.25 \nvalue = 1024 \n `VCPU` = 0\\.25 or 0\\.5 \nvalue = 2048 \n `VCPU` = 0\\.25, 0\\.5, or 1 \nvalue = 3072 \n `VCPU` = 0\\.5, or 1 \nvalue = 4096 \n `VCPU` = 0\\.5, 1, or 2 \nvalue = 5120, 6144, or 7168 \n `VCPU` = 1 or 2 \nvalue = 8192 \n `VCPU` = 1, 2, or 4 \nvalue = 9216, 10240, 11264, 12288, 13312, 14336, or 15360 \n `VCPU` = 2 or 4 \nvalue = 16384 \n `VCPU` = 2, 4, or 8 \nvalue = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, 29696, or 30720 \n `VCPU` = 4 \nvalue = 20480, 24576, or 28672 \n `VCPU` = 4 or 8 \nvalue = 36864, 45056, 53248, or 61440 \n `VCPU` = 8 \nvalue = 32768, 40960, 49152, or 57344 \n `VCPU` = 8 or 16 \nvalue = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880 \n `VCPU` = 16 \ntype=\"VCPU\" \nThe number of vCPUs reserved for the container\\. This parameter maps to `CpuShares` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--cpu-shares` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. Each vCPU is equivalent to 1,024 CPU shares\\. For EC2 resources, you must specify at least one vCPU\\. This is required but can be specified in several places; it must be specified for each node at least once\\. \nThe default for the Fargate On\\-Demand vCPU resource count quota is 6 vCPUs\\. For more information about Fargate quotas, see [AWS Fargate quotas](https://docs.aws.amazon.com/general/latest/gr/ecs-service.html#service-quotas-fargate) in the * AWS General Reference*\\. \nFor jobs that are running on Fargate resources, then `value` must match one of the supported values and the `MEMORY` values must be one of the values supported for that `VCPU` value\\. The supported values are 0\\.25, 0\\.5, 1, 2, 4, 8, and 16 \nvalue = 0\\.25 \n `MEMORY` = 512, 1024, or 2048 \nvalue = 0\\.5 \n `MEMORY` = 1024, 2048, 3072, or 4096 \nvalue = 1 \n `MEMORY` = 2048, 3072, 4096, 5120, 6144, 7168, or 8192 \nvalue = 2 \n `MEMORY` = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384 \nvalue = 4 \n `MEMORY` = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720 \nvalue = 8 \n `MEMORY` = 16384, 20480, 24576, 28672, 32768, 36864, 40960, 45056, 49152, 53248, 57344, or 61440 \nvalue = 16 \n `MEMORY` = 32768, 40960, 49152, 57344, 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880 \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -19934,9 +24543,13 @@ "additionalProperties": false, "properties": { "Limits": { + "markdownDescription": "The type and quantity of the resources to reserve for the container\\. The values vary based on the `name` that's specified\\. Resources can be requested using either the `limits` or the `requests` objects\\. \nmemory \nThe memory hard limit \\(in MiB\\) for the container, using whole integers, with a \"Mi\" suffix\\. If your container attempts to exceed the memory specified, the container is terminated\\. You must specify at least 4 MiB of memory for a job\\. `memory` can be specified in `limits`, `requests`, or both\\. If `memory` is specified in both places, then the value that's specified in `limits` must be equal to the value that's specified in `requests`\\. \nTo maximize your resource utilization, provide your jobs with as much memory as possible for the specific instance type that you are using\\. To learn how, see [Memory management](https://docs.aws.amazon.com/batch/latest/userguide/memory-management.html) in the * AWS Batch User Guide*\\. \ncpu \nThe number of CPUs that's reserved for the container\\. Values must be an even multiple of `0.25`\\. `cpu` can be specified in `limits`, `requests`, or both\\. If `cpu` is specified in both places, then the value that's specified in `limits` must be at least as large as the value that's specified in `requests`\\. \nnvidia\\.com/gpu \nThe number of GPUs that's reserved for the container\\. Values must be a whole integer\\. `memory` can be specified in `limits`, `requests`, or both\\. If `memory` is specified in both places, then the value that's specified in `limits` must be equal to the value that's specified in `requests`\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Limits", "type": "object" }, "Requests": { + "markdownDescription": "The type and quantity of the resources to request for the container\\. The values vary based on the `name` that's specified\\. Resources can be requested by using either the `limits` or the `requests` objects\\. \nmemory \nThe memory hard limit \\(in MiB\\) for the container, using whole integers, with a \"Mi\" suffix\\. If your container attempts to exceed the memory specified, the container is terminated\\. You must specify at least 4 MiB of memory for a job\\. `memory` can be specified in `limits`, `requests`, or both\\. If `memory` is specified in both, then the value that's specified in `limits` must be equal to the value that's specified in `requests`\\. \nIf you're trying to maximize your resource utilization by providing your jobs as much memory as possible for a particular instance type, see [Memory management](https://docs.aws.amazon.com/batch/latest/userguide/memory-management.html) in the * AWS Batch User Guide*\\. \ncpu \nThe number of CPUs that are reserved for the container\\. Values must be an even multiple of `0.25`\\. `cpu` can be specified in `limits`, `requests`, or both\\. If `cpu` is specified in both, then the value that's specified in `limits` must be at least as large as the value that's specified in `requests`\\. \nnvidia\\.com/gpu \nThe number of GPUs that are reserved for the container\\. Values must be a whole integer\\. `nvidia.com/gpu` can be specified in `limits`, `requests`, or both\\. If `nvidia.com/gpu` is specified in both, then the value that's specified in `limits` must be equal to the value that's specified in `requests`\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Requests", "type": "object" } }, @@ -19946,12 +24559,16 @@ "additionalProperties": false, "properties": { "Attempts": { + "markdownDescription": "The number of times to move a job to the `RUNNABLE` status\\. You can specify between 1 and 10 attempts\\. If the value of `attempts` is greater than one, the job is retried on failure the same number of attempts as the value\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attempts", "type": "number" }, "EvaluateOnExit": { "items": { "$ref": "#/definitions/AWS::Batch::JobDefinition.EvaluateOnExit" }, + "markdownDescription": "Array of up to 5 objects that specify the conditions where jobs are retried or failed\\. If this parameter is specified, then the `attempts` parameter must also be specified\\. If none of the listed conditions match, then the job is retried\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-evaluateonexit.html) of [EvaluateOnExit](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-evaluateonexit.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EvaluateOnExit", "type": "array" } }, @@ -19961,9 +24578,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the secret\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "ValueFrom": { + "markdownDescription": "The secret to expose to the container\\. The supported values are either the full Amazon Resource Name \\(ARN\\) of the AWS Secrets Manager secret or the full ARN of the parameter in the AWS Systems Manager Parameter Store\\. \nIf the AWS Systems Manager Parameter Store parameter exists in the same Region as the job you're launching, then you can use either the full Amazon Resource Name \\(ARN\\) or name of the parameter\\. If the parameter exists in a different Region, then the full ARN must be specified\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValueFrom", "type": "string" } }, @@ -19977,18 +24598,28 @@ "additionalProperties": false, "properties": { "Privileged": { + "markdownDescription": "When this parameter is `true`, the container is given elevated permissions on the host container instance\\. The level of permissions are similar to the `root` user permissions\\. The default value is `false`\\. This parameter maps to `privileged` policy in the [Privileged pod security policies](https://kubernetes.io/docs/concepts/security/pod-security-policy/#privileged) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Privileged", "type": "boolean" }, "ReadOnlyRootFilesystem": { + "markdownDescription": "When this parameter is `true`, the container is given read\\-only access to its root file system\\. The default value is `false`\\. This parameter maps to `ReadOnlyRootFilesystem` policy in the [Volumes and file systems pod security policies](https://kubernetes.io/docs/concepts/security/pod-security-policy/#volumes-and-file-systems) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadOnlyRootFilesystem", "type": "boolean" }, "RunAsGroup": { + "markdownDescription": "When this parameter is specified, the container is run as the specified group ID \\(`gid`\\)\\. If this parameter isn't specified, the default is the group that's specified in the image metadata\\. This parameter maps to `RunAsGroup` and `MustRunAs` policy in the [Users and groups pod security policies](https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RunAsGroup", "type": "number" }, "RunAsNonRoot": { + "markdownDescription": "When this parameter is specified, the container is run as a user with a `uid` other than 0\\. If this parameter isn't specified, so such rule is enforced\\. This parameter maps to `RunAsUser` and `MustRunAsNonRoot` policy in the [Users and groups pod security policies](https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RunAsNonRoot", "type": "boolean" }, "RunAsUser": { + "markdownDescription": "When this parameter is specified, the container is run as the specified user ID \\(`uid`\\)\\. If this parameter isn't specified, the default is the user that's specified in the image metadata\\. This parameter maps to `RunAsUser` and `MustRanAs` policy in the [Users and groups pod security policies](https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RunAsUser", "type": "number" } }, @@ -19998,6 +24629,8 @@ "additionalProperties": false, "properties": { "AttemptDurationSeconds": { + "markdownDescription": "The job timeout time \\(in seconds\\) that's measured from the job attempt's `startedAt` timestamp\\. After this time passes, AWS Batch terminates your jobs if they aren't finished\\. The minimum value for the timeout is 60 seconds\\. \nFor array jobs, the timeout applies to the child jobs, not to the parent array job\\. \nFor multi\\-node parallel \\(MNP\\) jobs, the timeout applies to the whole job, not to the individual nodes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttemptDurationSeconds", "type": "number" } }, @@ -20007,15 +24640,21 @@ "additionalProperties": false, "properties": { "ContainerPath": { + "markdownDescription": "The absolute file path in the container where the `tmpfs` volume is mounted\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerPath", "type": "string" }, "MountOptions": { "items": { "type": "string" }, + "markdownDescription": "The list of `tmpfs` volume mount options\\. \nValid values: \"`defaults`\" \\| \"`ro`\" \\| \"`rw`\" \\| \"`suid`\" \\| \"`nosuid`\" \\| \"`dev`\" \\| \"`nodev`\" \\| \"`exec`\" \\| \"`noexec`\" \\| \"`sync`\" \\| \"`async`\" \\| \"`dirsync`\" \\| \"`remount`\" \\| \"`mand`\" \\| \"`nomand`\" \\| \"`atime`\" \\| \"`noatime`\" \\| \"`diratime`\" \\| \"`nodiratime`\" \\| \"`bind`\" \\| \"`rbind\" | \"unbindable\" | \"runbindable\" | \"private\" | \"rprivate\" | \"shared\" | \"rshared\" | \"slave\" | \"rslave\" | \"relatime`\" \\| \"`norelatime`\" \\| \"`strictatime`\" \\| \"`nostrictatime`\" \\| \"`mode`\" \\| \"`uid`\" \\| \"`gid`\" \\| \"`nr_inodes`\" \\| \"`nr_blocks`\" \\| \"`mpol`\" \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MountOptions", "type": "array" }, "Size": { + "markdownDescription": "The size \\(in MiB\\) of the `tmpfs` volume\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Size", "type": "number" } }, @@ -20029,12 +24668,18 @@ "additionalProperties": false, "properties": { "HardLimit": { + "markdownDescription": "The hard limit for the `ulimit` type\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HardLimit", "type": "number" }, "Name": { + "markdownDescription": "The `type` of the `ulimit`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "SoftLimit": { + "markdownDescription": "The soft limit for the `ulimit` type\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SoftLimit", "type": "number" } }, @@ -20049,12 +24694,18 @@ "additionalProperties": false, "properties": { "EfsVolumeConfiguration": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.EfsVolumeConfiguration" + "$ref": "#/definitions/AWS::Batch::JobDefinition.EfsVolumeConfiguration", + "markdownDescription": "This is used when you're using an Amazon Elastic File System file system for job storage\\. For more information, see [Amazon EFS Volumes](https://docs.aws.amazon.com/batch/latest/userguide/efs-volumes.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: [EfsVolumeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EfsVolumeConfiguration" }, "Host": { - "$ref": "#/definitions/AWS::Batch::JobDefinition.VolumesHost" + "$ref": "#/definitions/AWS::Batch::JobDefinition.VolumesHost", + "markdownDescription": "The contents of the `host` parameter determine whether your data volume persists on the host container instance and where it's stored\\. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume\\. However, the data isn't guaranteed to persist after the containers that are associated with it stop running\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided\\.\n*Required*: No \n*Type*: [VolumesHost](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumeshost.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host" }, "Name": { + "markdownDescription": "The name of the volume\\. It can be up to 255 characters long\\. It can contain uppercase and lowercase letters, numbers, hyphens \\(\\-\\), and underscores \\(\\_\\)\\. This name is referenced in the `sourceVolume` parameter of container definition `mountPoints`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -20064,6 +24715,8 @@ "additionalProperties": false, "properties": { "SourcePath": { + "markdownDescription": "The path on the host container instance that's presented to the container\\. If this parameter is empty, then the Docker daemon has assigned a host path for you\\. If this parameter contains a file location, then the data volume persists at the specified location on the host container instance until you delete it manually\\. If the source path location doesn't exist on the host container instance, the Docker daemon creates it\\. If the location does exist, the contents of the source path folder are exported\\. \nThis parameter isn't applicable to jobs that run on Fargate resources\\. Don't provide this for these jobs\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourcePath", "type": "string" } }, @@ -20108,27 +24761,39 @@ "items": { "$ref": "#/definitions/AWS::Batch::JobQueue.ComputeEnvironmentOrder" }, + "markdownDescription": "The set of compute environments mapped to a job queue and their order relative to each other\\. The job scheduler uses this parameter to determine which compute environment runs a specific job\\. Compute environments must be in the `VALID` state before you can associate them with a job queue\\. You can associate up to three compute environments with a job queue\\. All of the compute environments must be either EC2 \\(`EC2` or `SPOT`\\) or Fargate \\(`FARGATE` or `FARGATE_SPOT`\\); EC2 and Fargate compute environments can't be mixed\\. \nAll compute environments that are associated with a job queue must share the same architecture\\. AWS Batch doesn't support mixing compute environment architecture types in a single job queue\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-computeenvironmentorder.html) of [ComputeEnvironmentOrder](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-computeenvironmentorder.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputeEnvironmentOrder", "type": "array" }, "JobQueueName": { + "markdownDescription": "The name of the job queue\\. It can be up to 128 letters long\\. It can contain uppercase and lowercase letters, numbers, hyphens \\(\\-\\), and underscores \\(\\_\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "JobQueueName", "type": "string" }, "Priority": { + "markdownDescription": "The priority of the job queue\\. Job queues with a higher priority \\(or a higher integer value for the `priority` parameter\\) are evaluated first when associated with the same compute environment\\. Priority is determined in descending order\\. For example, a job queue with a priority value of `10` is given scheduling preference over a job queue with a priority value of `1`\\. All of the compute environments must be either EC2 \\(`EC2` or `SPOT`\\) or Fargate \\(`FARGATE` or `FARGATE_SPOT`\\); EC2 and Fargate compute environments can't be mixed\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" }, "SchedulingPolicyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the scheduling policy\\. The format is `aws:Partition:batch:Region:Account:scheduling-policy/Name `\\. For example, `aws:aws:batch:us-west-2:123456789012:scheduling-policy/MySchedulingPolicy`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchedulingPolicyArn", "type": "string" }, "State": { + "markdownDescription": "The state of the job queue\\. If the job queue state is `ENABLED`, it is able to accept jobs\\. If the job queue state is `DISABLED`, new jobs can't be added to the queue, but jobs already in the queue can finish\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", "type": "string" }, "Tags": { "additionalProperties": true, + "markdownDescription": "The tags that are applied to the job queue\\. For more information, see [Tagging your AWS Batch resources](https://docs.aws.amazon.com/batch/latest/userguide/using-tags.html) in * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" } }, @@ -20163,9 +24828,13 @@ "additionalProperties": false, "properties": { "ComputeEnvironment": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the compute environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputeEnvironment", "type": "string" }, "Order": { + "markdownDescription": "The order of the compute environment\\. Compute environments are tried in ascending order\\. For example, if two compute environments are associated with a job queue, the compute environment with a lower `order` integer value is tried for job placement first\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Order", "type": "number" } }, @@ -20211,18 +24880,24 @@ "additionalProperties": false, "properties": { "FairsharePolicy": { - "$ref": "#/definitions/AWS::Batch::SchedulingPolicy.FairsharePolicy" + "$ref": "#/definitions/AWS::Batch::SchedulingPolicy.FairsharePolicy", + "markdownDescription": "The fair share policy of the scheduling policy\\. \n*Required*: No \n*Type*: [FairsharePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-schedulingpolicy-fairsharepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FairsharePolicy" }, "Name": { + "markdownDescription": "The name of the scheduling policy\\. It can be up to 128 letters long\\. It can contain uppercase and lowercase letters, numbers, hyphens \\(\\-\\), and underscores \\(\\_\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "additionalProperties": true, + "markdownDescription": "The tags that you apply to the scheduling policy to help you categorize and organize your resources\\. Each tag consists of a key and an optional value\\. For more information, see [Tagging AWS Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in * AWS General Reference*\\. \nThese tags can be updated or removed using the [TagResource](https://docs.aws.amazon.com/batch/latest/APIReference/API_TagResource.html) and [UntagResource](https://docs.aws.amazon.com/batch/latest/APIReference/API_UntagResource.html) API operations\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" } }, @@ -20252,15 +24927,21 @@ "additionalProperties": false, "properties": { "ComputeReservation": { + "markdownDescription": "A value used to reserve some of the available maximum vCPU for fair share identifiers that aren't already used\\. \nThe reserved ratio is `(computeReservation/100)^ActiveFairShares ` where ` ActiveFairShares ` is the number of active fair share identifiers\\. \nFor example, a `computeReservation` value of 50 indicates that AWS Batchreserves 50% of the maximum available vCPU if there's only one fair share identifier\\. It reserves 25% if there are two fair share identifiers\\. It reserves 12\\.5% if there are three fair share identifiers\\. A `computeReservation` value of 25 indicates that AWS Batch should reserve 25% of the maximum available vCPU if there's only one fair share identifier, 6\\.25% if there are two fair share identifiers, and 1\\.56% if there are three fair share identifiers\\. \nThe minimum value is 0 and the maximum value is 99\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputeReservation", "type": "number" }, "ShareDecaySeconds": { + "markdownDescription": "The amount of time \\(in seconds\\) to use to calculate a fair share percentage for each fair share identifier in use\\. A value of zero \\(0\\) indicates that only current usage is measured\\. The decay allows for more recently run jobs to have more weight than jobs that ran earlier\\. The maximum supported value is 604800 \\(1 week\\)\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShareDecaySeconds", "type": "number" }, "ShareDistribution": { "items": { "$ref": "#/definitions/AWS::Batch::SchedulingPolicy.ShareAttributes" }, + "markdownDescription": "An array of `SharedIdentifier` objects that contain the weights for the fair share identifiers for the fair share policy\\. Fair share identifiers that aren't included have a default weight of `1.0`\\. \n*Required*: No \n*Type*: List of [ShareAttributes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-schedulingpolicy-shareattributes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShareDistribution", "type": "array" } }, @@ -20270,9 +24951,13 @@ "additionalProperties": false, "properties": { "ShareIdentifier": { + "markdownDescription": "A fair share identifier or fair share identifier prefix\\. If the string ends with an asterisk \\(\\*\\), this entry specifies the weight factor to use for fair share identifiers that start with that prefix\\. The list of fair share identifiers in a fair share policy can't overlap\\. For example, you can't have one that specifies a `shareIdentifier` of `UserA*` and another that specifies a `shareIdentifier` of `UserA-1`\\. \nThere can be no more than 500 fair share identifiers active in a job queue\\. \nThe string is limited to 255 alphanumeric characters, and can be followed by an asterisk \\(\\*\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShareIdentifier", "type": "string" }, "WeightFactor": { + "markdownDescription": "The weight factor for the fair share identifier\\. The default value is 1\\.0\\. A lower value has a higher priority for compute resources\\. For example, jobs that use a share identifier with a weight factor of 0\\.125 \\(1/8\\) get 8 times the compute resources of jobs that use a share identifier with a weight factor of 1\\. \nThe smallest supported value is 0\\.0001, and the largest supported value is 999\\.9999\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WeightFactor", "type": "number" } }, @@ -20314,18 +24999,28 @@ "additionalProperties": false, "properties": { "AccountGrouping": { - "$ref": "#/definitions/AWS::BillingConductor::BillingGroup.AccountGrouping" + "$ref": "#/definitions/AWS::BillingConductor::BillingGroup.AccountGrouping", + "markdownDescription": "The set of accounts that will be under the billing group\\. The set of accounts resemble the linked accounts in a consolidated family\\. \n*Required*: Yes \n*Type*: [AccountGrouping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-billinggroup-accountgrouping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountGrouping" }, "ComputationPreference": { - "$ref": "#/definitions/AWS::BillingConductor::BillingGroup.ComputationPreference" + "$ref": "#/definitions/AWS::BillingConductor::BillingGroup.ComputationPreference", + "markdownDescription": "The preferences and settings that will be used to compute the AWS charges for a billing group\\. \n*Required*: Yes \n*Type*: [ComputationPreference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-billinggroup-computationpreference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputationPreference" }, "Description": { + "markdownDescription": "The billing group description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The billing group's name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "PrimaryAccountId": { + "markdownDescription": "The account ID that serves as the main account in a billing group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrimaryAccountId", "type": "string" }, "Tags": { @@ -20371,6 +25066,8 @@ "items": { "type": "string" }, + "markdownDescription": "The account IDs that make up the billing group\\. Account IDs must be a part of the consolidated billing family, and not associated with another billing group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LinkedAccountIds", "type": "array" } }, @@ -20383,6 +25080,8 @@ "additionalProperties": false, "properties": { "PricingPlanArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the pricing plan used to compute the AWS charges for a billing group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PricingPlanArn", "type": "string" } }, @@ -20427,24 +25126,36 @@ "additionalProperties": false, "properties": { "BillingGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) that references the billing group where the custom line item applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BillingGroupArn", "type": "string" }, "BillingPeriodRange": { - "$ref": "#/definitions/AWS::BillingConductor::CustomLineItem.BillingPeriodRange" + "$ref": "#/definitions/AWS::BillingConductor::CustomLineItem.BillingPeriodRange", + "markdownDescription": "A time range for which the custom line item is effective\\. \n*Required*: No \n*Type*: [BillingPeriodRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-billingperiodrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BillingPeriodRange" }, "CustomLineItemChargeDetails": { - "$ref": "#/definitions/AWS::BillingConductor::CustomLineItem.CustomLineItemChargeDetails" + "$ref": "#/definitions/AWS::BillingConductor::CustomLineItem.CustomLineItemChargeDetails", + "markdownDescription": "The charge details of a custom line item\\. It should contain only one of `Flat` or `Percentage`\\. \n*Required*: No \n*Type*: [CustomLineItemChargeDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitemchargedetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomLineItemChargeDetails" }, "Description": { + "markdownDescription": "The custom line item's description\\. This is shown on the Bills page in association with the charge value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The custom line item's name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A map that contains tag keys and tag values that are attached to a custom line item\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -20479,9 +25190,13 @@ "additionalProperties": false, "properties": { "ExclusiveEndBillingPeriod": { + "markdownDescription": "The inclusive end billing period that defines a billing period range where a custom line is applied\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExclusiveEndBillingPeriod", "type": "string" }, "InclusiveStartBillingPeriod": { + "markdownDescription": "The inclusive start billing period that defines a billing period range where a custom line is applied\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InclusiveStartBillingPeriod", "type": "string" } }, @@ -20491,12 +25206,18 @@ "additionalProperties": false, "properties": { "Flat": { - "$ref": "#/definitions/AWS::BillingConductor::CustomLineItem.CustomLineItemFlatChargeDetails" + "$ref": "#/definitions/AWS::BillingConductor::CustomLineItem.CustomLineItemFlatChargeDetails", + "markdownDescription": "A `CustomLineItemFlatChargeDetails` that describes the charge details of a flat custom line item\\. \n*Required*: No \n*Type*: [CustomLineItemFlatChargeDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitemflatchargedetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Flat" }, "Percentage": { - "$ref": "#/definitions/AWS::BillingConductor::CustomLineItem.CustomLineItemPercentageChargeDetails" + "$ref": "#/definitions/AWS::BillingConductor::CustomLineItem.CustomLineItemPercentageChargeDetails", + "markdownDescription": "A `CustomLineItemPercentageChargeDetails` that describes the charge details of a percentage custom line item\\. \n*Required*: No \n*Type*: [CustomLineItemPercentageChargeDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitempercentagechargedetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Percentage" }, "Type": { + "markdownDescription": "The type of the custom line item that indicates whether the charge is a fee or credit\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -20509,6 +25230,8 @@ "additionalProperties": false, "properties": { "ChargeValue": { + "markdownDescription": "The custom line item's fixed charge value in USD\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChargeValue", "type": "number" } }, @@ -20524,9 +25247,13 @@ "items": { "type": "string" }, + "markdownDescription": "A list of resource ARNs to associate to the percentage custom line item\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChildAssociatedResources", "type": "array" }, "PercentageValue": { + "markdownDescription": "The custom line item's percentage value\\. This will be multiplied against the combined value of its associated resources to determine its charge value\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PercentageValue", "type": "number" } }, @@ -20571,21 +25298,29 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The pricing plan description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name of a pricing plan\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "PricingRuleArns": { "items": { "type": "string" }, + "markdownDescription": "The `PricingRuleArns` that are associated with the Pricing Plan\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PricingRuleArns", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A map that contains tag keys and tag values that are attached to a pricing plan\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -20654,30 +25389,50 @@ "type": "string" }, "Description": { + "markdownDescription": "The pricing rule description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "ModifierPercentage": { + "markdownDescription": "A percentage modifier applied on the public pricing rates\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ModifierPercentage", "type": "number" }, "Name": { + "markdownDescription": "The name of a pricing rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Operation": { "type": "string" }, "Scope": { + "markdownDescription": "The scope of pricing rule that indicates if it is globally applicable, or if it is service\\-specific\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Scope", "type": "string" }, "Service": { + "markdownDescription": "If the `Scope` attribute is `SERVICE`, this attribute indicates which service the `PricingRule` is applicable for\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Service", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A map that contains tag keys and tag values that are attached to a pricing rule\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Tiering": { "$ref": "#/definitions/AWS::BillingConductor::PricingRule.Tiering" }, "Type": { + "markdownDescription": "The type of pricing rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "UsageType": { "type": "string" } }, @@ -20766,12 +25521,16 @@ "additionalProperties": false, "properties": { "Budget": { - "$ref": "#/definitions/AWS::Budgets::Budget.BudgetData" + "$ref": "#/definitions/AWS::Budgets::Budget.BudgetData", + "markdownDescription": "The budget object that you want to create\\. \n*Required*: Yes \n*Type*: [BudgetData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Budget" }, "NotificationsWithSubscribers": { "items": { "$ref": "#/definitions/AWS::Budgets::Budget.NotificationWithSubscribers" }, + "markdownDescription": "A notification that you want to associate with a budget\\. A budget can have up to five notifications, and each notification can have one SNS subscriber and up to 10 email subscribers\\. If you include notifications and subscribers in your `CreateBudget` call, AWS creates the notifications and subscribers for you\\. \n*Required*: No \n*Type*: List of [NotificationWithSubscribers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notificationwithsubscribers.html) \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NotificationsWithSubscribers", "type": "array" } }, @@ -20823,27 +25582,43 @@ "$ref": "#/definitions/AWS::Budgets::Budget.AutoAdjustData" }, "BudgetLimit": { - "$ref": "#/definitions/AWS::Budgets::Budget.Spend" + "$ref": "#/definitions/AWS::Budgets::Budget.Spend", + "markdownDescription": "The total amount of cost, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage that you want to track with your budget\\. \n `BudgetLimit` is required for cost or usage budgets, but optional for RI or Savings Plans utilization or coverage budgets\\. RI and Savings Plans utilization or coverage budgets default to `100`\\. This is the only valid value for RI or Savings Plans utilization or coverage budgets\\. You can't use `BudgetLimit` with `PlannedBudgetLimits` for `CreateBudget` and `UpdateBudget` actions\\. \n*Required*: No \n*Type*: [Spend](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-spend.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BudgetLimit" }, "BudgetName": { + "markdownDescription": "The name of a budget\\. The value must be unique within an account\\. `BudgetName` can't include `:` and `\\` characters\\. If you don't include value for `BudgetName` in the template, Billing and Cost Management assigns your budget a randomly generated name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BudgetName", "type": "string" }, "BudgetType": { + "markdownDescription": "Specifies whether this budget tracks costs, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `COST | RI_COVERAGE | RI_UTILIZATION | SAVINGS_PLANS_COVERAGE | SAVINGS_PLANS_UTILIZATION | USAGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BudgetType", "type": "string" }, "CostFilters": { + "markdownDescription": "The cost filters, such as `Region`, `Service`, `member account`, `Tag`, or `Cost Category`, that are applied to a budget\\. \n AWS Budgets supports the following services as a `Service` filter for RI budgets: \n+ Amazon EC2\n+ Amazon Redshift\n+ Amazon Relational Database Service\n+ Amazon ElastiCache\n+ Amazon OpenSearch Service \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CostFilters", "type": "object" }, "CostTypes": { - "$ref": "#/definitions/AWS::Budgets::Budget.CostTypes" + "$ref": "#/definitions/AWS::Budgets::Budget.CostTypes", + "markdownDescription": "The types of costs that are included in this `COST` budget\\. \n `USAGE`, `RI_UTILIZATION`, `RI_COVERAGE`, `SAVINGS_PLANS_UTILIZATION`, and `SAVINGS_PLANS_COVERAGE` budgets do not have `CostTypes`\\. \n*Required*: No \n*Type*: [CostTypes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CostTypes" }, "PlannedBudgetLimits": { + "markdownDescription": "A map containing multiple `BudgetLimit`, including current or future limits\\. \n `PlannedBudgetLimits` is available for cost or usage budget and supports both monthly and quarterly `TimeUnit`\\. \nFor monthly budgets, provide 12 months of `PlannedBudgetLimits` values\\. This must start from the current month and include the next 11 months\\. The `key` is the start of the month, `UTC` in epoch seconds\\. \nFor quarterly budgets, provide four quarters of `PlannedBudgetLimits` value entries in standard calendar quarter increments\\. This must start from the current quarter and include the next three quarters\\. The `key` is the start of the quarter, `UTC` in epoch seconds\\. \nIf the planned budget expires before 12 months for monthly or four quarters for quarterly, provide the `PlannedBudgetLimits` values only for the remaining periods\\. \nIf the budget begins at a date in the future, provide `PlannedBudgetLimits` values from the start date of the budget\\. \nAfter all of the `BudgetLimit` values in `PlannedBudgetLimits` are used, the budget continues to use the last limit as the `BudgetLimit`\\. At that point, the planned budget provides the same experience as a fixed budget\\. \n `DescribeBudget` and `DescribeBudgets` response along with `PlannedBudgetLimits` also contain `BudgetLimit` representing the current month or quarter limit present in `PlannedBudgetLimits`\\. This only applies to budgets that are created with `PlannedBudgetLimits`\\. Budgets that are created without `PlannedBudgetLimits` only contain `BudgetLimit`\\. They don't contain `PlannedBudgetLimits`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlannedBudgetLimits", "type": "object" }, "TimePeriod": { - "$ref": "#/definitions/AWS::Budgets::Budget.TimePeriod" + "$ref": "#/definitions/AWS::Budgets::Budget.TimePeriod", + "markdownDescription": "The period of time that is covered by a budget\\. The period has a start date and an end date\\. The start date must come before the end date\\. There are no restrictions on the end date\\. \nThe start date for a budget\\. If you created your budget and didn't specify a start date, the start date defaults to the start of the chosen time period \\(MONTHLY, QUARTERLY, or ANNUALLY\\)\\. For example, if you create your budget on January 24, 2019, choose `MONTHLY`, and don't set a start date, the start date defaults to `01/01/19 00:00 UTC`\\. The defaults are the same for the AWS Billing and Cost Management console and the API\\. \nYou can change your start date with the `UpdateBudget` operation\\. \nAfter the end date, AWS deletes the budget and all associated notifications and subscribers\\. \n*Required*: No \n*Type*: [TimePeriod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-timeperiod.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimePeriod" }, "TimeUnit": { + "markdownDescription": "The length of time until a budget resets the actual and forecasted spend\\. `DAILY` is available only for `RI_UTILIZATION` and `RI_COVERAGE` budgets\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ANNUALLY | DAILY | MONTHLY | QUARTERLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeUnit", "type": "string" } }, @@ -20857,36 +25632,58 @@ "additionalProperties": false, "properties": { "IncludeCredit": { + "markdownDescription": "Specifies whether a budget includes credits\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeCredit", "type": "boolean" }, "IncludeDiscount": { + "markdownDescription": "Specifies whether a budget includes discounts\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeDiscount", "type": "boolean" }, "IncludeOtherSubscription": { + "markdownDescription": "Specifies whether a budget includes non\\-RI subscription costs\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeOtherSubscription", "type": "boolean" }, "IncludeRecurring": { + "markdownDescription": "Specifies whether a budget includes recurring fees such as monthly RI fees\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeRecurring", "type": "boolean" }, "IncludeRefund": { + "markdownDescription": "Specifies whether a budget includes refunds\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeRefund", "type": "boolean" }, "IncludeSubscription": { + "markdownDescription": "Specifies whether a budget includes subscriptions\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeSubscription", "type": "boolean" }, "IncludeSupport": { + "markdownDescription": "Specifies whether a budget includes support subscription fees\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeSupport", "type": "boolean" }, "IncludeTax": { + "markdownDescription": "Specifies whether a budget includes taxes\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeTax", "type": "boolean" }, "IncludeUpfront": { + "markdownDescription": "Specifies whether a budget includes upfront RI costs\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeUpfront", "type": "boolean" }, "UseAmortized": { + "markdownDescription": "Specifies whether a budget uses the amortized rate\\. \nThe default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseAmortized", "type": "boolean" }, "UseBlended": { + "markdownDescription": "Specifies whether a budget uses a blended rate\\. \nThe default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseBlended", "type": "boolean" } }, @@ -20908,15 +25705,23 @@ "additionalProperties": false, "properties": { "ComparisonOperator": { + "markdownDescription": "The comparison that's used for this notification\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EQUAL_TO | GREATER_THAN | LESS_THAN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComparisonOperator", "type": "string" }, "NotificationType": { + "markdownDescription": "Specifies whether the notification is for how much you have spent \\(`ACTUAL`\\) or for how much that you're forecasted to spend \\(`FORECASTED`\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ACTUAL | FORECASTED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationType", "type": "string" }, "Threshold": { + "markdownDescription": "The threshold that's associated with a notification\\. Thresholds are always a percentage, and many customers find value being alerted between 50% \\- 200% of the budgeted amount\\. The maximum limit for your threshold is 1,000,000% above the budgeted amount\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Threshold", "type": "number" }, "ThresholdType": { + "markdownDescription": "The type of threshold for a notification\\. For `ABSOLUTE_VALUE` thresholds, AWS notifies you when you go over or are forecasted to go over your total cost threshold\\. For `PERCENTAGE` thresholds, AWS notifies you when you go over or are forecasted to go over a certain percentage of your forecasted spend\\. For example, if you have a budget for 200 dollars and you have a `PERCENTAGE` threshold of 80%, AWS notifies you when you go over 160 dollars\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ABSOLUTE_VALUE | PERCENTAGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThresholdType", "type": "string" } }, @@ -20931,12 +25736,16 @@ "additionalProperties": false, "properties": { "Notification": { - "$ref": "#/definitions/AWS::Budgets::Budget.Notification" + "$ref": "#/definitions/AWS::Budgets::Budget.Notification", + "markdownDescription": "The notification that's associated with a budget\\. \n*Required*: Yes \n*Type*: [Notification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Notification" }, "Subscribers": { "items": { "$ref": "#/definitions/AWS::Budgets::Budget.Subscriber" }, + "markdownDescription": "A list of subscribers who are subscribed to this notification\\. \n*Required*: Yes \n*Type*: List of [Subscriber](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-subscriber.html) \n*Maximum*: `11` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subscribers", "type": "array" } }, @@ -20950,9 +25759,13 @@ "additionalProperties": false, "properties": { "Amount": { + "markdownDescription": "The cost or usage amount that's associated with a budget forecast, actual spend, or budget threshold\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Amount", "type": "number" }, "Unit": { + "markdownDescription": "The unit of measurement that's used for the budget forecast, actual spend, or budget threshold, such as USD or GBP\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", "type": "string" } }, @@ -20966,9 +25779,13 @@ "additionalProperties": false, "properties": { "Address": { + "markdownDescription": "The address that AWS sends budget notifications to, either an SNS topic or an email\\. \nWhen you create a subscriber, the value of `Address` can't contain line breaks\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Address", "type": "string" }, "SubscriptionType": { + "markdownDescription": "The type of notification that AWS sends to a subscriber\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EMAIL | SNS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubscriptionType", "type": "string" } }, @@ -20982,9 +25799,13 @@ "additionalProperties": false, "properties": { "End": { + "markdownDescription": "The end date for a budget\\. If you didn't specify an end date, AWS set your end date to `06/15/87 00:00 UTC`\\. The defaults are the same for the AWS Billing and Cost Management console and the API\\. \nAfter the end date, AWS deletes the budget and all the associated notifications and subscribers\\. You can change your end date with the `UpdateBudget` operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "End", "type": "string" }, "Start": { + "markdownDescription": "The start date for a budget\\. If you created your budget and didn't specify a start date, the start date defaults to the start of the chosen time period \\(MONTHLY, QUARTERLY, or ANNUALLY\\)\\. For example, if you create your budget on January 24, 2019, choose `MONTHLY`, and don't set a start date, the start date defaults to `01/01/19 00:00 UTC`\\. The defaults are the same for the AWS Billing and Cost Management console and the API\\. \nYou can change your start date with the `UpdateBudget` operation\\. \nValid values depend on the value of `BudgetType`: \n+ If `BudgetType` is `COST` or `USAGE`: Valid values are `MONTHLY`, `QUARTERLY`, and `ANNUALLY`\\.\n+ If `BudgetType` is `RI_UTILIZATION` or `RI_COVERAGE`: Valid values are `DAILY`, `MONTHLY`, `QUARTERLY`, and `ANNUALLY`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Start", "type": "string" } }, @@ -21026,30 +25847,46 @@ "additionalProperties": false, "properties": { "ActionThreshold": { - "$ref": "#/definitions/AWS::Budgets::BudgetsAction.ActionThreshold" + "$ref": "#/definitions/AWS::Budgets::BudgetsAction.ActionThreshold", + "markdownDescription": "The trigger threshold of the action\\. \n*Required*: Yes \n*Type*: [ActionThreshold](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-actionthreshold.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionThreshold" }, "ActionType": { + "markdownDescription": "The type of action\\. This defines the type of tasks that can be carried out by this action\\. This field also determines the format for definition\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `APPLY_IAM_POLICY | APPLY_SCP_POLICY | RUN_SSM_DOCUMENTS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ActionType", "type": "string" }, "ApprovalModel": { + "markdownDescription": "This specifies if the action needs manual or automatic approval\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUTOMATIC | MANUAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApprovalModel", "type": "string" }, "BudgetName": { + "markdownDescription": "A string that represents the budget name\\. \":\" and \"\\\\\" characters aren't allowed\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BudgetName", "type": "string" }, "Definition": { - "$ref": "#/definitions/AWS::Budgets::BudgetsAction.Definition" + "$ref": "#/definitions/AWS::Budgets::BudgetsAction.Definition", + "markdownDescription": "Specifies all of the type\\-specific parameters\\. \n*Required*: Yes \n*Type*: [Definition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-definition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Definition" }, "ExecutionRoleArn": { + "markdownDescription": "The role passed for action execution and reversion\\. Roles and actions must be in the same account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `32` \n*Maximum*: `618` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|us-iso-east-1|us-isob-east-1):iam::\\d{12}:role(\\u002F[\\u0021-\\u007F]+\\u002F|\\u002F)[\\w+=,.@-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionRoleArn", "type": "string" }, "NotificationType": { + "markdownDescription": "The type of a notification\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ACTUAL | FORECASTED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationType", "type": "string" }, "Subscribers": { "items": { "$ref": "#/definitions/AWS::Budgets::BudgetsAction.Subscriber" }, + "markdownDescription": "A list of subscribers\\. \n*Required*: Yes \n*Type*: List of [Subscriber](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-subscriber.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subscribers", "type": "array" } }, @@ -21089,9 +25926,13 @@ "additionalProperties": false, "properties": { "Type": { + "markdownDescription": "The type of threshold for a notification\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ABSOLUTE_VALUE | PERCENTAGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" }, "Value": { + "markdownDescription": "The threshold of a notification\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "number" } }, @@ -21105,13 +25946,19 @@ "additionalProperties": false, "properties": { "IamActionDefinition": { - "$ref": "#/definitions/AWS::Budgets::BudgetsAction.IamActionDefinition" + "$ref": "#/definitions/AWS::Budgets::BudgetsAction.IamActionDefinition", + "markdownDescription": "The AWS Identity and Access Management \\(IAM\\) action definition details\\. \n*Required*: No \n*Type*: [IamActionDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-iamactiondefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamActionDefinition" }, "ScpActionDefinition": { - "$ref": "#/definitions/AWS::Budgets::BudgetsAction.ScpActionDefinition" + "$ref": "#/definitions/AWS::Budgets::BudgetsAction.ScpActionDefinition", + "markdownDescription": "The service control policies \\(SCP\\) action definition details\\. \n*Required*: No \n*Type*: [ScpActionDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-scpactiondefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScpActionDefinition" }, "SsmActionDefinition": { - "$ref": "#/definitions/AWS::Budgets::BudgetsAction.SsmActionDefinition" + "$ref": "#/definitions/AWS::Budgets::BudgetsAction.SsmActionDefinition", + "markdownDescription": "The Amazon EC2 Systems Manager \\(SSM\\) action definition details\\. \n*Required*: No \n*Type*: [SsmActionDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-ssmactiondefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SsmActionDefinition" } }, "type": "object" @@ -21123,21 +25970,29 @@ "items": { "type": "string" }, + "markdownDescription": "A list of groups to be attached\\. There must be at least one group\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Groups", "type": "array" }, "PolicyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the policy to be attached\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `25` \n*Maximum*: `684` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|us-iso-east-1|us-isob-east-1):iam::(\\d{12}|aws):policy(\\u002F[\\u0021-\\u007F]+\\u002F|\\u002F)[\\w+=,.@-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyArn", "type": "string" }, "Roles": { "items": { "type": "string" }, + "markdownDescription": "A list of roles to be attached\\. There must be at least one role\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Roles", "type": "array" }, "Users": { "items": { "type": "string" }, + "markdownDescription": "A list of users to be attached\\. There must be at least one user\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Users", "type": "array" } }, @@ -21150,12 +26005,16 @@ "additionalProperties": false, "properties": { "PolicyId": { + "markdownDescription": "The policy ID attached\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `130` \n*Pattern*: `^p-[0-9a-zA-Z_]{8,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyId", "type": "string" }, "TargetIds": { "items": { "type": "string" }, + "markdownDescription": "A list of target IDs\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetIds", "type": "array" } }, @@ -21172,12 +26031,18 @@ "items": { "type": "string" }, + "markdownDescription": "The EC2 and RDS instance IDs\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceIds", "type": "array" }, "Region": { + "markdownDescription": "The Region to run the \\(SSM\\) document\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `9` \n*Maximum*: `20` \n*Pattern*: `^\\w{2}-\\w+(-\\w+)?-\\d$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", "type": "string" }, "Subtype": { + "markdownDescription": "The action subType\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `STOP_EC2_INSTANCES | STOP_RDS_INSTANCES` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subtype", "type": "string" } }, @@ -21192,9 +26057,13 @@ "additionalProperties": false, "properties": { "Address": { + "markdownDescription": "The address that AWS sends budget notifications to, either an SNS topic or an email\\. \nWhen you create a subscriber, the value of `Address` can't contain line breaks\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Address", "type": "string" }, "Type": { + "markdownDescription": "The type of notification that AWS sends to a subscriber\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -21240,15 +26109,23 @@ "additionalProperties": false, "properties": { "MonitorDimension": { + "markdownDescription": "The dimensions to evaluate\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `SERVICE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MonitorDimension", "type": "string" }, "MonitorName": { + "markdownDescription": "The name of the monitor\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `[\\S\\s]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MonitorName", "type": "string" }, "MonitorSpecification": { + "markdownDescription": "The array of `MonitorSpecification` in JSON array format\\. For instance, you can use `MonitorSpecification` to specify a tag, Cost Category, or linked account for your custom anomaly monitor\\. For further information, see the [Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalymonitor.html#aws-resource-ce-anomalymonitor--examples) section of this page\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MonitorSpecification", "type": "string" }, "MonitorType": { + "markdownDescription": "The possible type values\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CUSTOM | DIMENSIONAL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MonitorType", "type": "string" }, "ResourceTags": { @@ -21337,12 +26214,16 @@ "additionalProperties": false, "properties": { "Frequency": { + "markdownDescription": "The frequency that anomaly reports are sent over email\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DAILY | IMMEDIATE | WEEKLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Frequency", "type": "string" }, "MonitorArnList": { "items": { "type": "string" }, + "markdownDescription": "A list of cost anomaly monitors\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MonitorArnList", "type": "array" }, "ResourceTags": { @@ -21355,21 +26236,29 @@ "items": { "$ref": "#/definitions/AWS::CE::AnomalySubscription.Subscriber" }, + "markdownDescription": "A list of subscribers to notify\\. \n*Required*: Yes \n*Type*: List of [Subscriber](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ce-anomalysubscription-subscriber.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subscribers", "type": "array" }, "SubscriptionName": { + "markdownDescription": "The name for the subscription\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `[\\S\\s]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubscriptionName", "type": "string" }, "Threshold": { + "markdownDescription": "The dollar value that triggers a notification if the threshold is exceeded\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Threshold", "type": "number" + }, + "ThresholdExpression": { + "type": "string" } }, "required": [ "Frequency", "MonitorArnList", "Subscribers", - "SubscriptionName", - "Threshold" + "SubscriptionName" ], "type": "object" }, @@ -21414,12 +26303,18 @@ "additionalProperties": false, "properties": { "Address": { + "markdownDescription": "The email address or SNS Topic Amazon Resource Name \\(ARN\\), depending on the `Type`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `302` \n*Pattern*: `(^[a-zA-Z0-9.!#$%&'*+=?^_\u2018{|}~-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$)|(^arn:(aws[a-zA-Z-]*):sns:[a-zA-Z0-9-]+:[0-9]{12}:[a-zA-Z0-9_-]+(\\.fifo)?$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Address", "type": "string" }, "Status": { + "markdownDescription": "Indicates if the subscriber accepts the notifications\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CONFIRMED | DECLINED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" }, "Type": { + "markdownDescription": "The notification delivery channel\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EMAIL | SNS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -21465,18 +26360,28 @@ "additionalProperties": false, "properties": { "DefaultValue": { + "markdownDescription": "The default value for the cost category\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultValue", "type": "string" }, "Name": { + "markdownDescription": "The unique name of the Cost Category\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RuleVersion": { + "markdownDescription": "The rule schema version in this particular Cost Category\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleVersion", "type": "string" }, "Rules": { + "markdownDescription": "The array of CostCategoryRule in JSON array format\\. \nRules are processed in order\\. If there are multiple rules that match the line item, then the first rule to match is used to determine that Cost Category value\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", "type": "string" }, "SplitChargeRules": { + "markdownDescription": "The split charge rules that are used to allocate your charges between your Cost Category values\\. \n*Required*: No \n*Type*: String \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SplitChargeRules", "type": "string" } }, @@ -21547,42 +26452,66 @@ "items": { "type": "string" }, + "markdownDescription": "A list of manifests that you want Amazon Web Services to create for this report\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdditionalArtifacts", "type": "array" }, "AdditionalSchemaElements": { "items": { "type": "string" }, + "markdownDescription": "A list of strings that indicate additional content that Amazon Web Services includes in the report, such as individual resource IDs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AdditionalSchemaElements", "type": "array" }, "BillingViewArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the billing view\\. You can get this value by using the billing view service public APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BillingViewArn", "type": "string" }, "Compression": { + "markdownDescription": "The compression format that Amazon Web Services uses for the report\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Compression", "type": "string" }, "Format": { + "markdownDescription": "The format that Amazon Web Services saves the report in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", "type": "string" }, "RefreshClosedReports": { + "markdownDescription": "Whether you want Amazon Web Services to update your reports after they have been finalized if Amazon Web Services detects charges related to previous months\\. These charges can include refunds, credits, or support fees\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RefreshClosedReports", "type": "boolean" }, "ReportName": { + "markdownDescription": "The name of the report that you want to create\\. The name must be unique, is case sensitive, and can't include spaces\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReportName", "type": "string" }, "ReportVersioning": { + "markdownDescription": "Whether you want Amazon Web Services to overwrite the previous version of each report or to deliver the report in addition to the previous versions\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CREATE_NEW_REPORT | OVERWRITE_REPORT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReportVersioning", "type": "string" }, "S3Bucket": { + "markdownDescription": "The S3 bucket where Amazon Web Services delivers the report\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Bucket", "type": "string" }, "S3Prefix": { + "markdownDescription": "The prefix that Amazon Web Services adds to the report name when Amazon Web Services delivers the report\\. Your prefix can't include spaces\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Prefix", "type": "string" }, "S3Region": { + "markdownDescription": "The Region of the S3 bucket that Amazon Web Services delivers the report into\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Region", "type": "string" }, "TimeUnit": { + "markdownDescription": "The granularity of the line items in the report\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TimeUnit", "type": "string" } }, @@ -21656,12 +26585,16 @@ "additionalProperties": false, "properties": { "KeyspaceName": { + "markdownDescription": "The name of the keyspace to be created\\. The keyspace name is case sensitive\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the keyspace name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \n*Length constraints:* Minimum length of 3\\. Maximum length of 255\\. \n*Pattern:* `^[a-zA-Z0-9][a-zA-Z0-9_]{1,47}$` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyspaceName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of key\\-value pair tags to be attached to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -21723,45 +26656,65 @@ "additionalProperties": false, "properties": { "BillingMode": { - "$ref": "#/definitions/AWS::Cassandra::Table.BillingMode" + "$ref": "#/definitions/AWS::Cassandra::Table.BillingMode", + "markdownDescription": "The billing mode for the table, which determines how you'll be charged for reads and writes: \n+ **On\\-demand mode** \\(default\\) \\- You pay based on the actual reads and writes your application performs\\.\n+ **Provisioned mode** \\- Lets you specify the number of reads and writes per second that you need for your application\\.\nIf you don't specify a value for this property, then the table will use on\\-demand mode\\. \n*Required*: No \n*Type*: [BillingMode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-billingmode.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BillingMode" }, "ClusteringKeyColumns": { "items": { "$ref": "#/definitions/AWS::Cassandra::Table.ClusteringKeyColumn" }, + "markdownDescription": "One or more columns that determine how the table data is sorted\\. \n*Required*: No \n*Type*: List of [ClusteringKeyColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-clusteringkeycolumn.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusteringKeyColumns", "type": "array" }, "DefaultTimeToLive": { + "markdownDescription": "The default Time To Live \\(TTL\\) value for all rows in a table in seconds\\. The maximum configurable value is 630,720,000 seconds, which is the equivalent of 20 years\\. By default, the TTL value for a table is 0, which means data does not expire\\. \nFor more information, see [Setting the default TTL value for a table](https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL-how-it-works.html#ttl-howitworks_default_ttl) in the *Amazon Keyspaces Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultTimeToLive", "type": "number" }, "EncryptionSpecification": { - "$ref": "#/definitions/AWS::Cassandra::Table.EncryptionSpecification" + "$ref": "#/definitions/AWS::Cassandra::Table.EncryptionSpecification", + "markdownDescription": "The encryption at rest options for the table\\. \n+ **AWS owned key** \\(default\\) \\- The key is owned by Amazon Keyspaces\\.\n+ **Customer managed key** \\- The key is stored in your account and is created, owned, and managed by you\\.\n**Note** \nIf you choose encryption with a customer managed key, you must specify a valid customer managed KMS key with permissions granted to Amazon Keyspaces\\.\nFor more information, see [Encryption at rest in Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/latest/devguide/EncryptionAtRest.html) in the *Amazon Keyspaces Developer Guide*\\. \n*Required*: No \n*Type*: [EncryptionSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-encryptionspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionSpecification" }, "KeyspaceName": { + "markdownDescription": "The name of the keyspace in which to create the table\\. The keyspace must already exist\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyspaceName", "type": "string" }, "PartitionKeyColumns": { "items": { "$ref": "#/definitions/AWS::Cassandra::Table.Column" }, + "markdownDescription": "One or more columns that uniquely identify every row in the table\\. Every table must have a partition key\\. \n*Required*: Yes \n*Type*: List of [Column](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-column.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PartitionKeyColumns", "type": "array" }, "PointInTimeRecoveryEnabled": { + "markdownDescription": "Specifies if point\\-in\\-time recovery is enabled or disabled for the table\\. The options are `PointInTimeRecoveryEnabled=true` and `PointInTimeRecoveryEnabled=false`\\. If not specified, the default is `PointInTimeRecoveryEnabled=false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PointInTimeRecoveryEnabled", "type": "boolean" }, "RegularColumns": { "items": { "$ref": "#/definitions/AWS::Cassandra::Table.Column" }, + "markdownDescription": "One or more columns that are not part of the primary key \\- that is, columns that are *not* defined as partition key columns or clustering key columns\\. \nYou can add regular columns to existing tables by adding them to the template\\. \n*Required*: No \n*Type*: List of [Column](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-column.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegularColumns", "type": "array" }, "TableName": { + "markdownDescription": "The name of the table to be created\\. The table name is case sensitive\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the table name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Length constraints:* Minimum length of 3\\. Maximum length of 255\\. \n*Pattern:* `^[a-zA-Z0-9][a-zA-Z0-9_]{1,47}$` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TableName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of key\\-value pair tags to be attached to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -21796,10 +26749,14 @@ "additionalProperties": false, "properties": { "Mode": { + "markdownDescription": "The billing mode for the table: \n+ On\\-demand mode \\- `ON_DEMAND`\n+ Provisioned mode \\- `PROVISIONED`\n**Note** \nIf you choose `PROVISIONED` mode, then you also need to specify provisioned throughput \\(read and write capacity\\) for the table\\.\nValid values: `ON_DEMAND` \\| `PROVISIONED` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", "type": "string" }, "ProvisionedThroughput": { - "$ref": "#/definitions/AWS::Cassandra::Table.ProvisionedThroughput" + "$ref": "#/definitions/AWS::Cassandra::Table.ProvisionedThroughput", + "markdownDescription": "The provisioned read capacity and write capacity for the table\\. For more information, see [Provisioned throughput capacity mode](https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html#ReadWriteCapacityMode.Provisioned) in the *Amazon Keyspaces Developer Guide*\\. \n*Required*: No \n*Type*: [ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-provisionedthroughput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisionedThroughput" } }, "required": [ @@ -21811,9 +26768,13 @@ "additionalProperties": false, "properties": { "Column": { - "$ref": "#/definitions/AWS::Cassandra::Table.Column" + "$ref": "#/definitions/AWS::Cassandra::Table.Column", + "markdownDescription": "The name and data type of this clustering key column\\. \n*Required*: Yes \n*Type*: [Column](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-column.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Column" }, "OrderBy": { + "markdownDescription": "The order in which this column's data is stored: \n+ `ASC` \\(default\\) \\- The column's data is stored in ascending order\\.\n+ `DESC` \\- The column's data is stored in descending order\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OrderBy", "type": "string" } }, @@ -21826,9 +26787,13 @@ "additionalProperties": false, "properties": { "ColumnName": { + "markdownDescription": "The name of the column\\. For more information, see [Identifiers](https://docs.aws.amazon.com/keyspaces/latest/devguide/cql.elements.html#cql.elements.identifier) in the *Amazon Keyspaces Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnName", "type": "string" }, "ColumnType": { + "markdownDescription": "The data type of the column\\. For more information, see [Data types](https://docs.aws.amazon.com/keyspaces/latest/devguide/cql.elements.html#cql.data-types) in the *Amazon Keyspaces Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnType", "type": "string" } }, @@ -21842,9 +26807,13 @@ "additionalProperties": false, "properties": { "EncryptionType": { + "markdownDescription": "The encryption at rest options for the table\\. \n+ **AWS owned key** \\(default\\) \\- `AWS_OWNED_KMS_KEY`\n+ **Customer managed key** \\- `CUSTOMER_MANAGED_KMS_KEY`\n**Important** \nIf you choose `CUSTOMER_MANAGED_KMS_KEY`, a `kms_key_identifier` in the format of a key ARN is required\\. \nValid values: `CUSTOMER_MANAGED_KMS_KEY` \\| `AWS_OWNED_KMS_KEY`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionType", "type": "string" }, "KmsKeyIdentifier": { + "markdownDescription": "Requires a `kms_key_identifier` in the format of a key ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyIdentifier", "type": "string" } }, @@ -21857,9 +26826,13 @@ "additionalProperties": false, "properties": { "ReadCapacityUnits": { + "markdownDescription": "The amount of read capacity that's provisioned for the table\\. For more information, see [Read/write capacity mode](https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html) in the *Amazon Keyspaces Developer Guide*\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadCapacityUnits", "type": "number" }, "WriteCapacityUnits": { + "markdownDescription": "The amount of write capacity that's provisioned for the table\\. For more information, see [Read/write capacity mode](https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html) in the *Amazon Keyspaces Developer Guide*\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WriteCapacityUnits", "type": "number" } }, @@ -21905,7 +26878,9 @@ "additionalProperties": false, "properties": { "ExpiryEventsConfiguration": { - "$ref": "#/definitions/AWS::CertificateManager::Account.ExpiryEventsConfiguration" + "$ref": "#/definitions/AWS::CertificateManager::Account.ExpiryEventsConfiguration", + "markdownDescription": "Object containing expiration events options associated with an AWS account\\. For more information, see [ExpiryEventsConfiguration](https://docs.aws.amazon.com/acm/latest/APIReference/API_ExpiryEventsConfiguration.html) in the API reference\\. \n*Required*: Yes \n*Type*: [ExpiryEventsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-account-expiryeventsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExpiryEventsConfiguration" } }, "required": [ @@ -21938,6 +26913,8 @@ "additionalProperties": false, "properties": { "DaysBeforeExpiry": { + "markdownDescription": "This option specifies the number of days prior to certificate expiration when ACM starts generating `EventBridge` events\\. ACM sends one event per day per certificate until the certificate expires\\. By default, accounts receive events starting 45 days before certificate expiration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DaysBeforeExpiry", "type": "number" } }, @@ -21979,33 +26956,47 @@ "additionalProperties": false, "properties": { "CertificateAuthorityArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the private certificate authority \\(CA\\) that will be used to issue the certificate\\. If you do not provide an ARN and you are trying to request a private certificate, ACM will attempt to issue a public certificate\\. For more information about private CAs, see the [AWS Certificate Manager Private Certificate Authority \\(PCA\\)](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaWelcome.html) user guide\\. The ARN must have the following form: \n `arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012` \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:[\\w+=/,.@-]*:[0-9]+:[\\w+=,.@-]+(/[\\w+=,.@-]+)*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateAuthorityArn", "type": "string" }, "CertificateTransparencyLoggingPreference": { + "markdownDescription": "You can opt out of certificate transparency logging by specifying the `DISABLED` option\\. Opt in by specifying `ENABLED`\\. \nIf you do not specify a certificate transparency logging preference on a new CloudFormation template, or if you remove the logging preference from an existing template, this is the same as explicitly enabling the preference\\. \nChanging the certificate transparency logging preference will update the existing resource by calling `UpdateCertificateOptions` on the certificate\\. This action will not create a new resource\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateTransparencyLoggingPreference", "type": "string" }, "DomainName": { + "markdownDescription": "The fully qualified domain name \\(FQDN\\), such as www\\.example\\.com, with which you want to secure an ACM certificate\\. Use an asterisk \\(\\*\\) to create a wildcard certificate that protects several sites in the same domain\\. For example, `*.example.com` protects `www.example.com`, `site.example.com`, and `images.example.com.` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `253` \n*Pattern*: `^(\\*\\.)?(((?!-)[A-Za-z0-9-]{0,62}[A-Za-z0-9])\\.)+((?!-)[A-Za-z0-9-]{1,62}[A-Za-z0-9])$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", "type": "string" }, "DomainValidationOptions": { "items": { "$ref": "#/definitions/AWS::CertificateManager::Certificate.DomainValidationOption" }, + "markdownDescription": "Domain information that domain name registrars use to verify your identity\\. \nIn order for a AWS::CertificateManager::Certificate to be provisioned and validated in CloudFormation automatically, the `DomainName` property needs to be identical to one of the `DomainName` property supplied in DomainValidationOptions, if the ValidationMethod is \\*\\*DNS\\*\\*\\. Failing to keep them like\\-for\\-like will result in failure to create the domain validation records in Route53\\.\n*Required*: No \n*Type*: List of [DomainValidationOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-certificate-domainvalidationoption.html) \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainValidationOptions", "type": "array" }, "SubjectAlternativeNames": { "items": { "type": "string" }, + "markdownDescription": "Additional FQDNs to be included in the Subject Alternative Name extension of the ACM certificate\\. For example, you can add www\\.example\\.net to a certificate for which the `DomainName` field is www\\.example\\.com if users can reach your site by using either name\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubjectAlternativeNames", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Key\\-value pairs that can identify the certificate\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "ValidationMethod": { + "markdownDescription": "The method you want to use to validate that you own or control the domain associated with a public certificate\\. You can [validate with DNS](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html) or [validate with email](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html)\\. We recommend that you use DNS validation\\. \nIf not specified, this property defaults to email validation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DNS | EMAIL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ValidationMethod", "type": "string" } }, @@ -22039,12 +27030,18 @@ "additionalProperties": false, "properties": { "DomainName": { + "markdownDescription": "A fully qualified domain name \\(FQDN\\) in the certificate request\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `253` \n*Pattern*: `^(\\*\\.)?(((?!-)[A-Za-z0-9-]{0,62}[A-Za-z0-9])\\.)+((?!-)[A-Za-z0-9-]{1,62}[A-Za-z0-9])$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainName", "type": "string" }, "HostedZoneId": { + "markdownDescription": "The `HostedZoneId` option, which is available if you are using Route 53 as your domain registrar, causes ACM to add your CNAME to the domain record\\. Your list of `DomainValidationOptions` must contain one and only one of the domain\\-validation options, and the `HostedZoneId` can be used only when `DNS` is specified as your validation method\\. \nUse the Route 53 `ListHostedZones` API to discover IDs for available hosted zones\\. \nThis option is required for publicly trusted certificates\\. \nThe `ListHostedZones` API returns IDs in the format \"/hostedzone/Z111111QQQQQQQ\", but CloudFormation requires the IDs to be in the format \"Z111111QQQQQQQ\"\\.\nWhen you change your `DomainValidationOptions`, a new resource is created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostedZoneId", "type": "string" }, "ValidationDomain": { + "markdownDescription": "The domain name to which you want ACM to send validation emails\\. This domain name is the suffix of the email addresses that you want ACM to use\\. This must be the same as the `DomainName` value or a superdomain of the `DomainName` value\\. For example, if you request a certificate for `testing.example.com`, you can specify `example.com` as this value\\. In that case, ACM sends domain validation emails to the following five addresses: \n+ admin@example\\.com\n+ administrator@example\\.com\n+ hostmaster@example\\.com\n+ postmaster@example\\.com\n+ webmaster@example\\.com\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `253` \n*Pattern*: `^(\\*\\.)?(((?!-)[A-Za-z0-9-]{0,62}[A-Za-z0-9])\\.)+((?!-)[A-Za-z0-9-]{1,62}[A-Za-z0-9])$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValidationDomain", "type": "string" } }, @@ -22089,33 +27086,49 @@ "additionalProperties": false, "properties": { "ConfigurationName": { + "markdownDescription": "The name of the configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfigurationName", "type": "string" }, "GuardrailPolicies": { "items": { "type": "string" }, + "markdownDescription": "The list of IAM policy ARNs that are applied as channel guardrails\\. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set\\. Currently, only 1 IAM policy is supported\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GuardrailPolicies", "type": "array" }, "IamRoleArn": { + "markdownDescription": "The ARN of the IAM role that defines the permissions for AWS Chatbot\\. \nThis is a user\\-definworked role that AWS Chatbot will assume\\. This is not the service\\-linked role\\. For more information, see [IAM Policies for AWS Chatbot](https://docs.aws.amazon.com/chatbot/latest/adminguide/chatbot-iam-policies.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamRoleArn", "type": "string" }, "LoggingLevel": { + "markdownDescription": "Specifies the logging level for this configuration\\. This property affects the log entries pushed to Amazon CloudWatch Logs\\. \nLogging levels include `ERROR`, `INFO`, or `NONE`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingLevel", "type": "string" }, "SlackChannelId": { + "markdownDescription": "The ID of the Slack channel\\. \nTo get the ID, open Slack, right click on the channel name in the left pane, then choose Copy Link\\. The channel ID is the 9\\-character string at the end of the URL\\. For example, `ABCBBLZZZ`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SlackChannelId", "type": "string" }, "SlackWorkspaceId": { + "markdownDescription": "The ID of the Slack workspace authorized with AWS Chatbot\\. \nTo get the workspace ID, you must perform the initial authorization flow with Slack in the AWS Chatbot console\\. Then you can copy and paste the workspace ID from the console\\. For more details, see steps 1\\-4 in [Setting Up AWS Chatbot with Slack](https://docs.aws.amazon.com/chatbot/latest/adminguide/setting-up.html#Setup_intro) in the *AWS Chatbot User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SlackWorkspaceId", "type": "string" }, "SnsTopicArns": { "items": { "type": "string" }, + "markdownDescription": "The ARNs of the SNS topics that deliver notifications to AWS Chatbot\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsTopicArns", "type": "array" }, "UserRoleRequired": { + "markdownDescription": "Enables use of a user role requirement in your chat configuration\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserRoleRequired", "type": "boolean" } }, @@ -22184,39 +27197,59 @@ "additionalProperties": false, "properties": { "AutomaticStopTimeMinutes": { + "markdownDescription": "The number of minutes until the running instance is shut down after the environment was last used\\. \n*Required*: No \n*Type*: Integer \n*Maximum*: `20160` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutomaticStopTimeMinutes", "type": "number" }, "ConnectionType": { + "markdownDescription": "The connection type used for connecting to an Amazon EC2 environment\\. Valid values are `CONNECT_SSH` \\(default\\) and `CONNECT_SSM` \\(connected through AWS Systems Manager\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CONNECT_SSH | CONNECT_SSM` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectionType", "type": "string" }, "Description": { + "markdownDescription": "The description of the environment to create\\. \n*Required*: No \n*Type*: String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "ImageId": { + "markdownDescription": "The identifier for the Amazon Machine Image \\(AMI\\) that's used to create the EC2 instance\\. To choose an AMI for the instance, you must specify a valid AMI alias or a valid AWS Systems Manager path\\. \nThe default AMI is used if the parameter isn't explicitly assigned a value in the request\\. \n**AMI aliases ** \n+ **Amazon Linux \\(default\\): `amazonlinux-1-x86_64`** \n+ Amazon Linux 2: `amazonlinux-2-x86_64`\n+ Ubuntu 18\\.04: `ubuntu-18.04-x86_64`\n**SSM paths** \n+ **Amazon Linux \\(default\\): `resolve:ssm:/aws/service/cloud9/amis/amazonlinux-1-x86_64`**\n+ Amazon Linux 2: `resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2-x86_64`\n+ Ubuntu 18\\.04: `resolve:ssm:/aws/service/cloud9/amis/ubuntu-18.04-x86_64`\n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageId", "type": "string" }, "InstanceType": { + "markdownDescription": "The type of instance to connect to the environment \\(for example, `t2.micro`\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `5` \n*Maximum*: `20` \n*Pattern*: `^[a-z][1-9][.][a-z0-9]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", "type": "string" }, "Name": { + "markdownDescription": "The name of the environment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "OwnerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the environment owner\\. This ARN can be the ARN of any AWS Identity and Access Management principal\\. If this value is not specified, the ARN defaults to this environment's creator\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):(iam|sts)::\\d+:(root|(user\\/[\\w+=/:,.@-]{1,64}|federated-user\\/[\\w+=/:,.@-]{2,32}|assumed-role\\/[\\w+=:,.@-]{1,64}\\/[\\w+=,.@-]{1,64}))$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OwnerArn", "type": "string" }, "Repositories": { "items": { "$ref": "#/definitions/AWS::Cloud9::EnvironmentEC2.Repository" }, + "markdownDescription": "Any AWS CodeCommit source code repositories to be cloned into the development environment\\. \n*Required*: No \n*Type*: List of [Repository](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloud9-environmentec2-repository.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Repositories", "type": "array" }, "SubnetId": { + "markdownDescription": "The ID of the subnet in Amazon Virtual Private Cloud \\(Amazon VPC\\) that AWS Cloud9 will use to communicate with the Amazon Elastic Compute Cloud \\(Amazon EC2\\) instance\\. \n*Required*: No \n*Type*: String \n*Minimum*: `15` \n*Maximum*: `24` \n*Pattern*: `^(subnet-[0-9a-f]{8}|subnet-[0-9a-f]{17})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs that will be associated with the new AWS Cloud9 development environment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -22250,9 +27283,13 @@ "additionalProperties": false, "properties": { "PathComponent": { + "markdownDescription": "The path within the development environment's default file system location to clone the AWS CodeCommit repository into\\. For example, `/REPOSITORY_NAME` would clone the repository into the `/home/USER_NAME/environment/REPOSITORY_NAME` directory in the environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PathComponent", "type": "string" }, "RepositoryUrl": { + "markdownDescription": "The clone URL of the AWS CodeCommit repository to be cloned\\. For example, for an AWS CodeCommit repository this might be `https://git-codecommit.us-east-2.amazonaws.com/v1/repos/REPOSITORY_NAME`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepositoryUrl", "type": "string" } }, @@ -22298,6 +27335,8 @@ "additionalProperties": false, "properties": { "ServiceToken": { + "markdownDescription": "Only one property is defined by AWS for a custom resource: `ServiceToken`\\. All other properties are defined by the service provider\\.\nThe service token that was given to the template developer by the service provider to access the service, such as an Amazon SNS topic ARN or Lambda function ARN\\. The service token must be from the same Region in which you are creating the stack\\. \nUpdates aren't supported\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceToken", "type": "string" } }, @@ -22363,12 +27402,18 @@ "additionalProperties": false, "properties": { "TypeName": { + "markdownDescription": "The name of the hook\\. \nYou must specify either `TypeVersionArn`, or `TypeName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TypeName", "type": "string" }, "TypeVersionArn": { + "markdownDescription": "The version ID of the type configuration\\. \nYou must specify either `TypeVersionArn`, or `TypeName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[A-Za-z0-9-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TypeVersionArn", "type": "string" }, "VersionId": { + "markdownDescription": "The version ID of the type specified\\. \nYou must specify either `TypeVersionArn`, or `TypeName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[A-Za-z0-9-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VersionId", "type": "string" } }, @@ -22430,15 +27475,23 @@ "additionalProperties": false, "properties": { "Configuration": { + "markdownDescription": "Specifies the activated hook type configuration, in this AWS account and AWS Region\\. \nYou must specify either `TypeName` and `Configuration` or `TypeARN` and `Configuration`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configuration", "type": "string" }, "ConfigurationAlias": { + "markdownDescription": "Specifies the activated hook type configuration, in this AWS account and AWS Region\\. \nDefaults to `default` alias\\. Hook types currently support default configuration alias\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfigurationAlias", "type": "string" }, "TypeArn": { + "markdownDescription": "The Amazon Resource Number \\(ARN\\) for the hook to set `Configuration` for\\. \nYou must specify either `TypeName` and `Configuration` or `TypeARN` and `Configuration`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TypeArn", "type": "string" }, "TypeName": { + "markdownDescription": "The unique name for your hook\\. Specifies a three\\-part namespace for your hook, with a recommended pattern of `Organization::Service::Hook`\\. \nYou must specify either `TypeName` and `Configuration` or `TypeARN` and `Configuration`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `196` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TypeName", "type": "string" } }, @@ -22504,15 +27557,23 @@ "additionalProperties": false, "properties": { "ExecutionRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the task execution role that grants the hook permission\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExecutionRoleArn", "type": "string" }, "LoggingConfig": { - "$ref": "#/definitions/AWS::CloudFormation::HookVersion.LoggingConfig" + "$ref": "#/definitions/AWS::CloudFormation::HookVersion.LoggingConfig", + "markdownDescription": "Contains logging configuration information for an extension\\. \n*Required*: No \n*Type*: [LoggingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-hookversion-loggingconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoggingConfig" }, "SchemaHandlerPackage": { + "markdownDescription": "A URL to the Amazon S3 bucket containing the hook project package that contains the necessary files for the hook you want to register\\. \nFor information on generating a schema handler package for the resource you want to register, see [submit](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html) in the *CloudFormation CLI User Guide for Extension Development*\\. \nThe user registering the resource must be able to access the package in the S3 bucket\\. That's, the user must have [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) permissions for the schema handler package\\. For more information, see [Actions, Resources, and Condition Keys for Amazon S3](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html) in the *AWS Identity and Access Management User Guide*\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SchemaHandlerPackage", "type": "string" }, "TypeName": { + "markdownDescription": "The unique name for your hook\\. Specifies a three\\-part namespace for your hook, with a recommended pattern of `Organization::Service::Hook`\\. \nThe following organization namespaces are reserved and can't be used in your hook type names: \n+ `Alexa` \n+ `AMZN` \n+ `Amazon` \n+ `ASK` \n+ `AWS` \n+ `Custom` \n+ `Dev` \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `196` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TypeName", "type": "string" } }, @@ -22547,9 +27608,13 @@ "additionalProperties": false, "properties": { "LogGroupName": { + "markdownDescription": "The Amazon CloudWatch Logs group to which CloudFormation sends error logging information when invoking the extension's handlers\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogGroupName", "type": "string" }, "LogRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that CloudFormation should assume when sending log entries to CloudWatch Logs\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `arn:.+:iam::[0-9]{12}:role/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogRoleArn", "type": "string" } }, @@ -22591,18 +27656,28 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the macro\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "FunctionName": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the underlying AWS Lambda function that you want AWS CloudFormation to invoke when the macro is run\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FunctionName", "type": "string" }, "LogGroupName": { + "markdownDescription": "The CloudWatch Logs group to which AWS CloudFormation sends error logging information when invoking the macro's underlying AWS Lambda function\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroupName", "type": "string" }, "LogRoleARN": { + "markdownDescription": "The ARN of the role AWS CloudFormation should assume when sending log entries to CloudWatch Logs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogRoleARN", "type": "string" }, "Name": { + "markdownDescription": "The name of the macro\\. The name of the macro must be unique across all macros in the account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" } }, @@ -22669,12 +27744,18 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the module version to set as the default version\\. \nConditional: You must specify either `Arn`, or `ModuleName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `arn:aws[A-Za-z0-9-]{0,64}:cloudformation:[A-Za-z0-9-]{1,64}:[0-9]{12}:type/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Arn", "type": "string" }, "ModuleName": { + "markdownDescription": "The name of the module\\. \nConditional: You must specify either `Arn`, or `ModuleName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `204` \n*Pattern*: `[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ModuleName", "type": "string" }, "VersionId": { + "markdownDescription": "The ID for the specific version of the module\\. \nConditional: You must specify either `Arn`, or `ModuleName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[A-Za-z0-9-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VersionId", "type": "string" } }, @@ -22736,9 +27817,13 @@ "additionalProperties": false, "properties": { "ModuleName": { + "markdownDescription": "The name of the module being registered\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `204` \n*Pattern*: `[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ModuleName", "type": "string" }, "ModulePackage": { + "markdownDescription": "A URL to the S3 bucket containing the package that contains the template fragment and schema files for the module version to register\\. \nThe user registering the module version must be able to access the module package in the S3 bucket\\. That's, the user needs to have [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) permissions for the package\\. For more information, see [Actions, Resources, and Condition Keys for Amazon S3](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html) in the *AWS Identity and Access Management User Guide*\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ModulePackage", "type": "string" } }, @@ -22805,18 +27890,28 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The Amazon Resource Number \\(ARN\\) of the extension\\. \nConditional: You must specify `Arn`, or `TypeName` and `Type`\\. \n*Required*: Conditional \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `arn:aws[A-Za-z0-9-]{0,64}:cloudformation:[A-Za-z0-9-]{1,64}:([0-9]{12})?:type/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Arn", "type": "string" }, "LogDeliveryBucket": { + "markdownDescription": "The S3 bucket to which CloudFormation delivers the contract test execution logs\\. \nCloudFormation delivers the logs by the time contract testing has completed and the extension has been assigned a test type status of `PASSED` or `FAILED`\\. \nThe user initiating the stack operation must be able to access items in the specified S3 bucket\\. Specifically, the user needs the following permissions: \n+ GetObject\n+ PutObject\nFor more information, see [Actions, Resources, and Condition Keys for Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html) in the *AWS Identity and Access Management User Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `[\\s\\S]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogDeliveryBucket", "type": "string" }, "PublicVersionNumber": { + "markdownDescription": "The version number to assign to this version of the extension\\. \nUse the following format, and adhere to semantic versioning when assigning a version number to your extension: \n `MAJOR.MINOR.PATCH` \nFor more information, see [Semantic Versioning 2\\.0\\.0](https://semver.org/)\\. \nIf you don't specify a version number, CloudFormation increments the version number by one minor version release\\. \nYou cannot specify a version number the first time you publish a type\\. AWS CloudFormation automatically sets the first version number to be `1.0.0`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `5` \n*Pattern*: `^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(.*)$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PublicVersionNumber", "type": "string" }, "Type": { + "markdownDescription": "The type of the extension to test\\. \nConditional: You must specify `Arn`, or `TypeName` and `Type`\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `HOOK | MODULE | RESOURCE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" }, "TypeName": { + "markdownDescription": "The name of the extension to test\\. \nConditional: You must specify `Arn`, or `TypeName` and `Type`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `204` \n*Pattern*: `[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TypeName", "type": "string" } }, @@ -22878,9 +27973,13 @@ "additionalProperties": false, "properties": { "AcceptTermsAndConditions": { + "markdownDescription": "Whether you accept the [Terms and Conditions](https://cloudformation-registry-documents.s3.amazonaws.com/Terms_and_Conditions_for_AWS_CloudFormation_Registry_Publishers.pdf) for publishing extensions in the CloudFormation registry\\. You must accept the terms and conditions in order to register to publish public extensions to the CloudFormation registry\\. \nThe default is `false`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceptTermsAndConditions", "type": "boolean" }, "ConnectionArn": { + "markdownDescription": "If you are using a Bitbucket or GitHub account for identity verification, the Amazon Resource Name \\(ARN\\) for your connection to that account\\. \nFor more information, see [Registering your account to publish CloudFormation extensions](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs) in the *CloudFormation CLI User Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `arn:aws(-[\\w]+)*:.+:.+:[0-9]{12}:.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectionArn", "type": "string" } }, @@ -22946,12 +28045,18 @@ "additionalProperties": false, "properties": { "TypeName": { + "markdownDescription": "The name of the resource\\. \nConditional: You must specify either `TypeVersionArn`, or `TypeName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `204` \n*Pattern*: `[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TypeName", "type": "string" }, "TypeVersionArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the resource version\\. \nConditional: You must specify either `TypeVersionArn`, or `TypeName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `arn:aws[A-Za-z0-9-]{0,64}:cloudformation:[A-Za-z0-9-]{1,64}:[0-9]{12}:type/.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TypeVersionArn", "type": "string" }, "VersionId": { + "markdownDescription": "The ID of a specific version of the resource\\. The version ID is the value at the end of the Amazon Resource Name \\(ARN\\) assigned to the resource version when it's registered\\. \nConditional: You must specify either `TypeVersionArn`, or `TypeName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[A-Za-z0-9-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VersionId", "type": "string" } }, @@ -23013,15 +28118,23 @@ "additionalProperties": false, "properties": { "ExecutionRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role for CloudFormation to assume when invoking the resource\\. If your resource calls AWS APIs in any of its handlers, you must create an *[IAM execution role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* that includes the necessary permissions to call those AWS APIs, and provision that execution role in your account\\. When CloudFormation needs to invoke the resource type handler, CloudFormation assumes this execution role to create a temporary session token, which it then passes to the resource type handler, thereby supplying your resource type with the appropriate credentials\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `arn:.+:iam::[0-9]{12}:role/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExecutionRoleArn", "type": "string" }, "LoggingConfig": { - "$ref": "#/definitions/AWS::CloudFormation::ResourceVersion.LoggingConfig" + "$ref": "#/definitions/AWS::CloudFormation::ResourceVersion.LoggingConfig", + "markdownDescription": "Logging configuration information for a resource\\. \n*Required*: No \n*Type*: [LoggingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-resourceversion-loggingconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoggingConfig" }, "SchemaHandlerPackage": { + "markdownDescription": "A URL to the S3 bucket containing the resource project package that contains the necessary files for the resource you want to register\\. \nFor information on generating a schema handler package for the resource you want to register, see [submit](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html) in the *CloudFormation CLI User Guide*\\. \nThe user registering the resource must be able to access the package in the S3 bucket\\. That is, the user needs to have [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) permissions for the schema handler package\\. For more information, see [Actions, Resources, and Condition Keys for Amazon S3](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html) in the *AWS Identity and Access Management User Guide*\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SchemaHandlerPackage", "type": "string" }, "TypeName": { + "markdownDescription": "The name of the resource being registered\\. \nWe recommend that resource names adhere to the following pattern: *company\\_or\\_organization*::*service*::*type*\\. \nThe following organization namespaces are reserved and can't be used in your resource names: \n+ `Alexa`\n+ `AMZN`\n+ `Amazon`\n+ `AWS`\n+ `Custom`\n+ `Dev`\n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `204` \n*Pattern*: `[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TypeName", "type": "string" } }, @@ -23056,9 +28169,13 @@ "additionalProperties": false, "properties": { "LogGroupName": { + "markdownDescription": "The Amazon CloudWatch log group to which CloudFormation sends error logging information when invoking the type's handlers\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogGroupName", "type": "string" }, "LogRoleArn": { + "markdownDescription": "The ARN of the role that CloudFormation should assume when sending log entries to CloudWatch logs\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `arn:.+:iam::[0-9]{12}:role/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogRoleArn", "type": "string" } }, @@ -23103,27 +28220,37 @@ "items": { "type": "string" }, + "markdownDescription": "The Amazon Simple Notification Service \\(Amazon SNS\\) topic ARNs to publish stack related events\\. You can find your Amazon SNS topic ARNs using the Amazon SNS console or your Command Line Interface \\(CLI\\)\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationARNs", "type": "array" }, "Parameters": { "additionalProperties": true, + "markdownDescription": "The set value pairs that represent the parameters passed to CloudFormation when this nested stack is created\\. Each parameter has a name corresponding to a parameter defined in the embedded template and a value representing the value that you want to set for the parameter\\. \nIf you use the `Ref` function to pass a parameter value to a nested stack, comma\\-delimited list parameters must be of type `String`\\. In other words, you can't pass values that are of type `CommaDelimitedList` to nested stacks\\.\nConditional\\. Required if the nested stack requires input parameters\\. \nWhether an update causes interruptions depends on the resources that are being updated\\. An update never causes a nested stack to be replaced\\. \n*Required*: Conditional \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Parameters", "type": "object" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Key\\-value pairs to associate with this stack\\. AWS CloudFormation also propagates these tags to the resources created in the stack\\. A maximum number of 50 tags can be specified\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TemplateURL": { + "markdownDescription": "Location of file containing the template body\\. The URL must point to a template \\(max size: 460,800 bytes\\) that's located in an Amazon S3 bucket\\. For more information, see [Template anatomy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)\\. \nWhether an update causes interruptions depends on the resources that are being updated\\. An update never causes a nested stack to be replaced\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateURL", "type": "string" }, "TimeoutInMinutes": { + "markdownDescription": "The length of time, in minutes, that CloudFormation waits for the nested stack to reach the `CREATE_COMPLETE` state\\. The default is no timeout\\. When 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`, CloudFormation marks the nested stack as failed and rolls back both the nested stack and parent stack\\. \nUpdates aren't supported\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutInMinutes", "type": "number" } }, @@ -23189,60 +28316,90 @@ "additionalProperties": false, "properties": { "AdministrationRoleARN": { + "markdownDescription": "The Amazon Resource Number \\(ARN\\) of the IAM role to use to create this stack set\\. Specify an IAM role only if you are using customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account\\. \nUse customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account\\. For more information, see [Prerequisites: Granting Permissions for Stack Set Operations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html) in the *AWS CloudFormation User Guide*\\. \n*Minimum*: `20` \n*Maximum*: `2048` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdministrationRoleARN", "type": "string" }, "AutoDeployment": { - "$ref": "#/definitions/AWS::CloudFormation::StackSet.AutoDeployment" + "$ref": "#/definitions/AWS::CloudFormation::StackSet.AutoDeployment", + "markdownDescription": "\\[`Service-managed` permissions\\] Describes whether StackSets automatically deploys to AWS Organizations accounts that are added to a target organization or organizational unit \\(OU\\)\\. \n*Required*: No \n*Type*: [AutoDeployment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-autodeployment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoDeployment" }, "CallAs": { + "markdownDescription": "\\[Service\\-managed permissions\\] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account\\. \nBy default, `SELF` is specified\\. Use `SELF` for stack sets with self\\-managed permissions\\. \n+ To create a stack set with service\\-managed permissions while signed in to the management account, specify `SELF`\\.\n+ To create a stack set with service\\-managed permissions while signed in to a delegated administrator account, specify `DELEGATED_ADMIN`\\.", + "title": "CallAs", "type": "string" }, "Capabilities": { "items": { "type": "string" }, + "markdownDescription": "The capabilities that are allowed in the stack set\\. Some stack set templates might include resources that can affect permissions in your AWS account\u2014for example, by creating new AWS Identity and Access Management \\(IAM\\) users\\. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Capabilities", "type": "array" }, "Description": { + "markdownDescription": "A description of the stack set\\. \n*Minimum*: `1` \n*Maximum*: `1024` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "ExecutionRoleName": { + "markdownDescription": "The name of the IAM execution role to use to create the stack set\\. If you don't specify an execution role, AWS CloudFormation uses the `AWSCloudFormationStackSetExecutionRole` role for the stack set operation\\. \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[a-zA-Z_0-9+=,.@-]+` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionRoleName", "type": "string" }, "ManagedExecution": { - "$ref": "#/definitions/AWS::CloudFormation::StackSet.ManagedExecution" + "$ref": "#/definitions/AWS::CloudFormation::StackSet.ManagedExecution", + "markdownDescription": "Describes whether StackSets performs non\\-conflicting operations concurrently and queues conflicting operations\\. \nWhen active, StackSets performs non\\-conflicting operations concurrently and queues conflicting operations\\. After conflicting operations finish, StackSets starts queued operations in request order\\. \nIf there are already running or queued operations, StackSets queues all incoming operations even if they are non\\-conflicting\\. \nYou can't modify your stack set's execution configuration while there are running or queued operations for that stack set\\.\nWhen inactive \\(default\\), StackSets performs one operation at a time in request order\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManagedExecution" }, "OperationPreferences": { - "$ref": "#/definitions/AWS::CloudFormation::StackSet.OperationPreferences" + "$ref": "#/definitions/AWS::CloudFormation::StackSet.OperationPreferences", + "markdownDescription": "The user\\-specified preferences for how AWS CloudFormation performs a stack set operation\\. \n*Required*: No \n*Type*: [OperationPreferences](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-operationpreferences.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OperationPreferences" }, "Parameters": { "items": { "$ref": "#/definitions/AWS::CloudFormation::StackSet.Parameter" }, + "markdownDescription": "The input parameters for the stack set template\\. \n*Required*: No \n*Type*: List of [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-parameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "array" }, "PermissionModel": { + "markdownDescription": "Describes how the IAM roles required for stack set operations are created\\. \n+ With `SELF_MANAGED` permissions, you must create the administrator and execution roles required to deploy to target accounts\\. For more information, see [Grant Self\\-Managed Stack Set Permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html)\\.\n+ With `SERVICE_MANAGED` permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by AWS Organizations\\. For more information, see [Grant Service\\-Managed Stack Set Permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html)\\.\n*Allowed Values*: `SERVICE_MANAGED` \\| `SELF_MANAGED` \nThe `PermissionModel` property is required\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PermissionModel", "type": "string" }, "StackInstancesGroup": { "items": { "$ref": "#/definitions/AWS::CloudFormation::StackSet.StackInstances" }, + "markdownDescription": "A group of stack instances with parameters in some specific accounts and Regions\\. \n*Required*: No \n*Type*: List of [StackInstances](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-stackinstances.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StackInstancesGroup", "type": "array" }, "StackSetName": { + "markdownDescription": "The name to associate with the stack set\\. The name must be unique in the Region where you create your stack set\\. \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9-]{0,127}$` \nThe `StackSetName` property is required\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StackSetName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The key\\-value pairs to associate with this stack set and the stacks created from it\\. AWS CloudFormation also propagates these tags to supported resources that are created in the stacks\\. A maximum number of 50 tags can be specified\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TemplateBody": { + "markdownDescription": "The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes\\. \nYou must include either `TemplateURL` or `TemplateBody` in a StackSet, but you can't use both\\. Dynamic references in the `TemplateBody` may not work correctly in all cases\\. It's recommended to pass templates containing dynamic references through `TemplateUrl` instead\\. \n*Minimum*: `1` \n*Maximum*: `51200` \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateBody", "type": "string" }, "TemplateURL": { + "markdownDescription": "Location of file containing the template body\\. The URL must point to a template \\(max size: 460,800 bytes\\) that's located in an Amazon S3 bucket\\. \nYou must include either `TemplateURL` or `TemplateBody` in a StackSet, but you can't use both\\. \n*Minimum*: `1` \n*Maximum*: `1024` \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateURL", "type": "string" } }, @@ -23277,9 +28434,13 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "If set to `true`, StackSets automatically deploys additional stack instances to AWS Organizations accounts that are added to a target organization or organizational unit \\(OU\\) in the specified Regions\\. If an account is removed from a target organization or OU, StackSets deletes stack instances from the account in the specified Regions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "RetainStacksOnAccountRemoval": { + "markdownDescription": "If set to `true`, stack resources are retained when an account is removed from a target organization or OU\\. If set to `false`, stack resources are deleted\\. Specify only if `Enabled` is set to `True`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetainStacksOnAccountRemoval", "type": "boolean" } }, @@ -23295,12 +28456,16 @@ "items": { "type": "string" }, + "markdownDescription": "The names of one or more AWS accounts for which you want to deploy stack set updates\\. \n*Pattern*: `^[0-9]{12}$` \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Accounts", "type": "array" }, "OrganizationalUnitIds": { "items": { "type": "string" }, + "markdownDescription": "The organization root ID or organizational unit \\(OU\\) IDs to which StackSets deploys\\. \n*Pattern*: `^(ou-[a-z0-9]{4,32}-[a-z0-9]{8,32}|r-[a-z0-9]{4,32})$` \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrganizationalUnitIds", "type": "array" } }, @@ -23319,24 +28484,36 @@ "additionalProperties": false, "properties": { "FailureToleranceCount": { + "markdownDescription": "The number of accounts, per Region, for which this operation can fail before AWS CloudFormation stops the operation in that Region\\. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions\\. \nConditional: You must specify either `FailureToleranceCount` or `FailureTolerancePercentage` \\(but not both\\)\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailureToleranceCount", "type": "number" }, "FailureTolerancePercentage": { + "markdownDescription": "The percentage of accounts, per Region, for which this stack operation can fail before AWS CloudFormation stops the operation in that Region\\. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions\\. \nWhen calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds *down* to the next whole number\\. \nConditional: You must specify either `FailureToleranceCount` or `FailureTolerancePercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailureTolerancePercentage", "type": "number" }, "MaxConcurrentCount": { + "markdownDescription": "The maximum number of accounts in which to perform this operation at one time\\. This is dependent on the value of `FailureToleranceCount`\\. `MaxConcurrentCount` is at most one more than the `FailureToleranceCount`\\. \nNote that this setting lets you specify the *maximum* for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nConditional: You must specify either `MaxConcurrentCount` or `MaxConcurrentPercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxConcurrentCount", "type": "number" }, "MaxConcurrentPercentage": { + "markdownDescription": "The maximum percentage of accounts in which to perform this operation at one time\\. \nWhen calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number\\. This is true except in cases where rounding down would result is zero\\. In this case, CloudFormation sets the number as one instead\\. \nNote that this setting lets you specify the *maximum* for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nConditional: You must specify either `MaxConcurrentCount` or `MaxConcurrentPercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxConcurrentPercentage", "type": "number" }, "RegionConcurrencyType": { + "markdownDescription": "The concurrency type of deploying StackSets operations in Regions, could be in parallel or one Region at a time\\. \n*Allowed values*: `SEQUENTIAL` \\| `PARALLEL` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegionConcurrencyType", "type": "string" }, "RegionOrder": { "items": { "type": "string" }, + "markdownDescription": "The order of the Regions where you want to perform the stack operation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegionOrder", "type": "array" } }, @@ -23346,9 +28523,13 @@ "additionalProperties": false, "properties": { "ParameterKey": { + "markdownDescription": "The key associated with the parameter\\. If you don't specify a key and value for a particular parameter, AWS CloudFormation uses the default value that's specified in your template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterKey", "type": "string" }, "ParameterValue": { + "markdownDescription": "The input value associated with the parameter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterValue", "type": "string" } }, @@ -23362,18 +28543,24 @@ "additionalProperties": false, "properties": { "DeploymentTargets": { - "$ref": "#/definitions/AWS::CloudFormation::StackSet.DeploymentTargets" + "$ref": "#/definitions/AWS::CloudFormation::StackSet.DeploymentTargets", + "markdownDescription": "The AWS `OrganizationalUnitIds` or `Accounts` for which to create stack instances in the specified Regions\\. \n*Required*: Yes \n*Type*: [DeploymentTargets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-deploymenttargets.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentTargets" }, "ParameterOverrides": { "items": { "$ref": "#/definitions/AWS::CloudFormation::StackSet.Parameter" }, + "markdownDescription": "A list of stack set parameters whose values you want to override in the selected stack instances\\. \n*Required*: No \n*Type*: List of [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-parameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterOverrides", "type": "array" }, "Regions": { "items": { "type": "string" }, + "markdownDescription": "The names of one or more Regions where you want to create stack instances using the specified AWS accounts\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Regions", "type": "array" } }, @@ -23419,33 +28606,53 @@ "additionalProperties": false, "properties": { "AutoUpdate": { + "markdownDescription": "Whether to automatically update the extension in this account and region when a new *minor* version is published by the extension publisher\\. Major versions released by the publisher must be manually updated\\. \nThe default is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoUpdate", "type": "boolean" }, "ExecutionRoleArn": { + "markdownDescription": "The name of the IAM execution role to use to activate the extension\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `arn:.+:iam::[0-9]{12}:role/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExecutionRoleArn", "type": "string" }, "LoggingConfig": { - "$ref": "#/definitions/AWS::CloudFormation::TypeActivation.LoggingConfig" + "$ref": "#/definitions/AWS::CloudFormation::TypeActivation.LoggingConfig", + "markdownDescription": "Specifies logging configuration information for an extension\\. \n*Required*: No \n*Type*: [LoggingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-typeactivation-loggingconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoggingConfig" }, "MajorVersion": { + "markdownDescription": "The major version of this extension you want to activate, if multiple major versions are available\\. The default is the latest major version\\. CloudFormation uses the latest available *minor* version of the major version selected\\. \nYou can specify `MajorVersion` or `VersionBump`, but not both\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MajorVersion", "type": "string" }, "PublicTypeArn": { + "markdownDescription": "The Amazon Resource Number \\(ARN\\) of the public extension\\. \nConditional: You must specify `PublicTypeArn`, or `TypeName`, `Type`, and `PublisherId`\\. \n*Required*: Conditional \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `arn:aws[A-Za-z0-9-]{0,64}:cloudformation:[A-Za-z0-9-]{1,64}::type/.+/[0-9a-zA-Z]{12,40}/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PublicTypeArn", "type": "string" }, "PublisherId": { + "markdownDescription": "The ID of the extension publisher\\. \nConditional: You must specify `PublicTypeArn`, or `TypeName`, `Type`, and `PublisherId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `40` \n*Pattern*: `[0-9a-zA-Z]{12,40}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PublisherId", "type": "string" }, "Type": { + "markdownDescription": "The extension type\\. \nConditional: You must specify `PublicTypeArn`, or `TypeName`, `Type`, and `PublisherId`\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `HOOK | MODULE | RESOURCE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" }, "TypeName": { + "markdownDescription": "The name of the extension\\. \nConditional: You must specify `PublicTypeArn`, or `TypeName`, `Type`, and `PublisherId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `204` \n*Pattern*: `[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TypeName", "type": "string" }, "TypeNameAlias": { + "markdownDescription": "An alias to assign to the public extension, in this account and region\\. If you specify an alias for the extension, CloudFormation treats the alias as the extension type name within this account and region\\. You must use the alias to refer to the extension in your templates, API calls, and CloudFormation console\\. \nAn extension alias must be unique within a given account and region\\. You can activate the same public resource multiple times in the same account and region, using different type name aliases\\. \n*Required*: No \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `204` \n*Pattern*: `[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TypeNameAlias", "type": "string" }, "VersionBump": { + "markdownDescription": "Manually updates a previously\\-activated type to a new major or minor version, if available\\. You can also use this parameter to update the value of `AutoUpdate`\\. \n+ `MAJOR`: CloudFormation updates the extension to the newest major version, if one is available\\.\n+ `MINOR`: CloudFormation updates the extension to the newest minor version, if one is available\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `MAJOR | MINOR` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VersionBump", "type": "string" } }, @@ -23475,9 +28682,13 @@ "additionalProperties": false, "properties": { "LogGroupName": { + "markdownDescription": "The Amazon CloudWatch Logs group to which CloudFormation sends error logging information when invoking the extension's handlers\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogGroupName", "type": "string" }, "LogRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that CloudFormation should assume when sending log entries to CloudWatch Logs\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `arn:.+:iam::[0-9]{12}:role/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogRoleArn", "type": "string" } }, @@ -23522,12 +28733,18 @@ "additionalProperties": false, "properties": { "Count": { + "markdownDescription": "The number of success signals that CloudFormation must receive before it continues the stack creation process\\. When the wait condition receives the requisite number of success signals, CloudFormation resumes the creation of the stack\\. If the wait condition doesn't receive the specified number of success signals before the Timeout period expires, CloudFormation assumes that the wait condition has failed and rolls the stack back\\. \nUpdates aren't supported\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count", "type": "number" }, "Handle": { + "markdownDescription": "A reference to the wait condition handle used to signal this wait condition\\. Use the `Ref` intrinsic function to specify an [AWS::CloudFormation::WaitConditionHandle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitconditionhandle.html) resource\\. \nAnytime you add a WaitCondition resource during a stack update, you must associate the wait condition with a new WaitConditionHandle resource\\. Don't reuse an old wait condition handle that has already been defined in the template\\. If you reuse a wait condition handle, the wait condition might evaluate old signals from a previous create or update stack command\\. \nUpdates aren't supported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Handle", "type": "string" }, "Timeout": { + "markdownDescription": "The length of time \\(in seconds\\) to wait for the number of signals that the `Count` property specifies\\. `Timeout` is a minimum\\-bound property, meaning the timeout occurs no sooner than the time you specify, but can occur shortly thereafter\\. The maximum time that can be specified for this property is 12 hours \\(43200 seconds\\)\\. \nUpdates aren't supported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout", "type": "string" } }, @@ -23646,7 +28863,9 @@ "additionalProperties": false, "properties": { "CachePolicyConfig": { - "$ref": "#/definitions/AWS::CloudFront::CachePolicy.CachePolicyConfig" + "$ref": "#/definitions/AWS::CloudFront::CachePolicy.CachePolicyConfig", + "markdownDescription": "The cache policy configuration\\. \n*Required*: Yes \n*Type*: [CachePolicyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cachepolicyconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CachePolicyConfig" } }, "required": [ @@ -23679,22 +28898,34 @@ "additionalProperties": false, "properties": { "Comment": { + "markdownDescription": "A comment to describe the cache policy\\. The comment cannot be longer than 128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", "type": "string" }, "DefaultTTL": { + "markdownDescription": "The default amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated\\. CloudFront uses this value as the object\u2019s time to live \\(TTL\\) only when the origin does *not* send `Cache-Control` or `Expires` headers with the object\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \nThe default value for this field is 86400 seconds \\(one day\\)\\. If the value of `MinTTL` is more than 86400 seconds, then the default value for this field is the same as the value of `MinTTL`\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultTTL", "type": "number" }, "MaxTTL": { + "markdownDescription": "The maximum amount of time, in seconds, that objects stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated\\. CloudFront uses this value only when the origin sends `Cache-Control` or `Expires` headers with the object\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \nThe default value for this field is 31536000 seconds \\(one year\\)\\. If the value of `MinTTL` or `DefaultTTL` is more than 31536000 seconds, then the default value for this field is the same as the value of `DefaultTTL`\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxTTL", "type": "number" }, "MinTTL": { + "markdownDescription": "The minimum amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinTTL", "type": "number" }, "Name": { + "markdownDescription": "A unique name to identify the cache policy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "ParametersInCacheKeyAndForwardedToOrigin": { - "$ref": "#/definitions/AWS::CloudFront::CachePolicy.ParametersInCacheKeyAndForwardedToOrigin" + "$ref": "#/definitions/AWS::CloudFront::CachePolicy.ParametersInCacheKeyAndForwardedToOrigin", + "markdownDescription": "The HTTP headers, cookies, and URL query strings to include in the cache key\\. The values included in the cache key are automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [ParametersInCacheKeyAndForwardedToOrigin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParametersInCacheKeyAndForwardedToOrigin" } }, "required": [ @@ -23710,12 +28941,16 @@ "additionalProperties": false, "properties": { "CookieBehavior": { + "markdownDescription": "Determines whether any cookies in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Cookies in viewer requests are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any cookies that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The cookies in viewer requests that are listed in the `CookieNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All cookies in viewer requests that are * **not** * listed in the `CookieNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All cookies in viewer requests are included in the cache key and are automatically included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CookieBehavior", "type": "string" }, "Cookies": { "items": { "type": "string" }, + "markdownDescription": "Contains a list of cookie names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cookies", "type": "array" } }, @@ -23728,12 +28963,16 @@ "additionalProperties": false, "properties": { "HeaderBehavior": { + "markdownDescription": "Determines whether any HTTP headers are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 HTTP headers are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any headers that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The HTTP headers that are listed in the `Headers` type are included in the cache key and are automatically included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderBehavior", "type": "string" }, "Headers": { "items": { "type": "string" }, + "markdownDescription": "Contains a list of HTTP header names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Headers", "type": "array" } }, @@ -23746,19 +28985,29 @@ "additionalProperties": false, "properties": { "CookiesConfig": { - "$ref": "#/definitions/AWS::CloudFront::CachePolicy.CookiesConfig" + "$ref": "#/definitions/AWS::CloudFront::CachePolicy.CookiesConfig", + "markdownDescription": "An object that determines whether any cookies in viewer requests \\(and if so, which cookies\\) are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [CookiesConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cookiesconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CookiesConfig" }, "EnableAcceptEncodingBrotli": { + "markdownDescription": "A flag that can affect whether the `Accept-Encoding` HTTP header is included in the cache key and included in requests that CloudFront sends to the origin\\. \nThis field is related to the `EnableAcceptEncodingGzip` field\\. If one or both of these fields is `true` *and* the viewer request includes the `Accept-Encoding` header, then CloudFront does the following: \n+ Normalizes the value of the viewer\u2019s `Accept-Encoding` header\n+ Includes the normalized header in the cache key\n+ Includes the normalized header in the request to the origin, if a request is necessary\nFor more information, see [Compression support](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-policy-compressed-objects) in the *Amazon CloudFront Developer Guide*\\. \nIf you set this value to `true`, and this cache behavior also has an origin request policy attached, do not include the `Accept-Encoding` header in the origin request policy\\. CloudFront always includes the `Accept-Encoding` header in origin requests when the value of this field is `true`, so including this header in an origin request policy has no effect\\. \nIf both of these fields are `false`, then CloudFront treats the `Accept-Encoding` header the same as any other HTTP header in the viewer request\\. By default, it\u2019s not included in the cache key and it\u2019s not included in origin requests\\. In this case, you can manually add `Accept-Encoding` to the headers whitelist like any other HTTP header\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableAcceptEncodingBrotli", "type": "boolean" }, "EnableAcceptEncodingGzip": { + "markdownDescription": "A flag that can affect whether the `Accept-Encoding` HTTP header is included in the cache key and included in requests that CloudFront sends to the origin\\. \nThis field is related to the `EnableAcceptEncodingBrotli` field\\. If one or both of these fields is `true` *and* the viewer request includes the `Accept-Encoding` header, then CloudFront does the following: \n+ Normalizes the value of the viewer\u2019s `Accept-Encoding` header\n+ Includes the normalized header in the cache key\n+ Includes the normalized header in the request to the origin, if a request is necessary\nFor more information, see [Compression support](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-policy-compressed-objects) in the *Amazon CloudFront Developer Guide*\\. \nIf you set this value to `true`, and this cache behavior also has an origin request policy attached, do not include the `Accept-Encoding` header in the origin request policy\\. CloudFront always includes the `Accept-Encoding` header in origin requests when the value of this field is `true`, so including this header in an origin request policy has no effect\\. \nIf both of these fields are `false`, then CloudFront treats the `Accept-Encoding` header the same as any other HTTP header in the viewer request\\. By default, it\u2019s not included in the cache key and it\u2019s not included in origin requests\\. In this case, you can manually add `Accept-Encoding` to the headers whitelist like any other HTTP header\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableAcceptEncodingGzip", "type": "boolean" }, "HeadersConfig": { - "$ref": "#/definitions/AWS::CloudFront::CachePolicy.HeadersConfig" + "$ref": "#/definitions/AWS::CloudFront::CachePolicy.HeadersConfig", + "markdownDescription": "An object that determines whether any HTTP headers \\(and if so, which headers\\) are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [HeadersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-headersconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeadersConfig" }, "QueryStringsConfig": { - "$ref": "#/definitions/AWS::CloudFront::CachePolicy.QueryStringsConfig" + "$ref": "#/definitions/AWS::CloudFront::CachePolicy.QueryStringsConfig", + "markdownDescription": "An object that determines whether any URL query strings in viewer requests \\(and if so, which query strings\\) are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [QueryStringsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-querystringsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryStringsConfig" } }, "required": [ @@ -23773,12 +29022,16 @@ "additionalProperties": false, "properties": { "QueryStringBehavior": { + "markdownDescription": "Determines whether any URL query strings in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Query strings in viewer requests are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any query strings that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The query strings in viewer requests that are listed in the `QueryStringNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All query strings in viewer requests that are * **not** * listed in the `QueryStringNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All query strings in viewer requests are included in the cache key and are automatically included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryStringBehavior", "type": "string" }, "QueryStrings": { "items": { "type": "string" }, + "markdownDescription": "Contains a list of query string names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryStrings", "type": "array" } }, @@ -23823,7 +29076,9 @@ "additionalProperties": false, "properties": { "CloudFrontOriginAccessIdentityConfig": { - "$ref": "#/definitions/AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig" + "$ref": "#/definitions/AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig", + "markdownDescription": "The current configuration information for the identity\\. \n*Required*: Yes \n*Type*: [CloudFrontOriginAccessIdentityConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cloudfrontoriginaccessidentity-cloudfrontoriginaccessidentityconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudFrontOriginAccessIdentityConfig" } }, "required": [ @@ -23856,6 +29111,8 @@ "additionalProperties": false, "properties": { "Comment": { + "markdownDescription": "A comment to describe the origin access identity\\. The comment cannot be longer than 128 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", "type": "string" } }, @@ -24052,12 +29309,16 @@ "additionalProperties": false, "properties": { "DistributionConfig": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.DistributionConfig" + "$ref": "#/definitions/AWS::CloudFront::Distribution.DistributionConfig", + "markdownDescription": "The current configuration information for the distribution\\. Send a `GET` request to the `/CloudFront API version/distribution ID/config` resource\\. \n*Required*: Yes \n*Type*: [DistributionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DistributionConfig" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A complex type that contains zero or more `Tag` elements\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -24094,78 +29355,118 @@ "items": { "type": "string" }, + "markdownDescription": "A complex type that controls which HTTP methods CloudFront processes and forwards to your Amazon S3 bucket or your custom origin\\. There are three choices: \n+ CloudFront forwards only `GET` and `HEAD` requests\\.\n+ CloudFront forwards only `GET`, `HEAD`, and `OPTIONS` requests\\.\n+ CloudFront forwards `GET, HEAD, OPTIONS, PUT, PATCH, POST`, and `DELETE` requests\\.\nIf you pick the third choice, you may need to restrict access to your Amazon S3 bucket or to your custom origin so users can't perform operations that you don't want them to\\. For example, you might not want users to have permissions to delete objects from your origin\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedMethods", "type": "array" }, "CachePolicyId": { + "markdownDescription": "The unique identifier of the cache policy that is attached to this cache behavior\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nA `CacheBehavior` must include either a `CachePolicyId` or `ForwardedValues`\\. We recommend that you use a `CachePolicyId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CachePolicyId", "type": "string" }, "CachedMethods": { "items": { "type": "string" }, + "markdownDescription": "A complex type that controls whether CloudFront caches the response to requests using the specified HTTP methods\\. There are two choices: \n+ CloudFront caches responses to `GET` and `HEAD` requests\\.\n+ CloudFront caches responses to `GET`, `HEAD`, and `OPTIONS` requests\\.\nIf you pick the second choice for your Amazon S3 Origin, you may need to forward Access\\-Control\\-Request\\-Method, Access\\-Control\\-Request\\-Headers, and Origin headers for the responses to be cached correctly\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CachedMethods", "type": "array" }, "Compress": { + "markdownDescription": "Whether you want CloudFront to automatically compress certain files for this cache behavior\\. If so, specify true; if not, specify false\\. For more information, see [Serving Compressed Files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Compress", "type": "boolean" }, "DefaultTTL": { + "markdownDescription": "This field is deprecated\\. We recommend that you use the `DefaultTTL` field in a cache policy instead of this field\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nThe default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated\\. The value that you specify applies only when your origin does not add HTTP headers such as `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to objects\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultTTL", "type": "number" }, "FieldLevelEncryptionId": { + "markdownDescription": "The value of `ID` for the field\\-level encryption configuration that you want CloudFront to use for encrypting specific fields of data for this cache behavior\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldLevelEncryptionId", "type": "string" }, "ForwardedValues": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues" + "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues", + "markdownDescription": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to include values in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send values to the origin but not include them in the cache key, use an origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nA `CacheBehavior` must include either a `CachePolicyId` or `ForwardedValues`\\. We recommend that you use a `CachePolicyId`\\. \nA complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers\\. \n*Required*: Conditional \n*Type*: [ForwardedValues](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-forwardedvalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForwardedValues" }, "FunctionAssociations": { "items": { "$ref": "#/definitions/AWS::CloudFront::Distribution.FunctionAssociation" }, + "markdownDescription": "A list of CloudFront functions that are associated with this cache behavior\\. CloudFront functions must be published to the `LIVE` stage to associate them with a cache behavior\\. \n*Required*: No \n*Type*: List of [FunctionAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-functionassociation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FunctionAssociations", "type": "array" }, "LambdaFunctionAssociations": { "items": { "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation" }, + "markdownDescription": "A complex type that contains zero or more Lambda@Edge function associations for a cache behavior\\. \n*Required*: No \n*Type*: List of [LambdaFunctionAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-lambdafunctionassociation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaFunctionAssociations", "type": "array" }, "MaxTTL": { + "markdownDescription": "This field is deprecated\\. We recommend that you use the `MaxTTL` field in a cache policy instead of this field\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nThe maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated\\. The value that you specify applies only when your origin adds HTTP headers such as `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to objects\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxTTL", "type": "number" }, "MinTTL": { + "markdownDescription": "This field is deprecated\\. We recommend that you use the `MinTTL` field in a cache policy instead of this field\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nThe minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated\\. For more information, see [ Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the * Amazon CloudFront Developer Guide*\\. \nYou must specify `0` for `MinTTL` if you configure CloudFront to forward all headers to your origin \\(under `Headers`, if you specify `1` for `Quantity` and `*` for `Name`\\)\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinTTL", "type": "number" }, "OriginRequestPolicyId": { + "markdownDescription": "The unique identifier of the origin request policy that is attached to this cache behavior\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginRequestPolicyId", "type": "string" }, "PathPattern": { + "markdownDescription": "The pattern \\(for example, `images/*.jpg`\\) that specifies which requests to apply the behavior to\\. When CloudFront receives a viewer request, the requested path is compared with path patterns in the order in which cache behaviors are listed in the distribution\\. \nYou can optionally include a slash \\(`/`\\) at the beginning of the path pattern\\. For example, `/images/*.jpg`\\. CloudFront behavior is the same with or without the leading `/`\\.\nThe path pattern for the default cache behavior is `*` and cannot be changed\\. If the request for an object does not match the path pattern for any cache behaviors, CloudFront applies the behavior in the default cache behavior\\. \nFor more information, see [Path Pattern](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesPathPattern) in the * Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PathPattern", "type": "string" }, "RealtimeLogConfigArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the real\\-time log configuration that is attached to this cache behavior\\. For more information, see [Real\\-time logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RealtimeLogConfigArn", "type": "string" }, "ResponseHeadersPolicyId": { + "markdownDescription": "The identifier for a response headers policy\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseHeadersPolicyId", "type": "string" }, "SmoothStreaming": { + "markdownDescription": "Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior\\. If so, specify `true`; if not, specify `false`\\. If you specify `true` for `SmoothStreaming`, you can still distribute other content using this cache behavior if the content matches the value of `PathPattern`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SmoothStreaming", "type": "boolean" }, "TargetOriginId": { + "markdownDescription": "The value of `ID` for the origin that you want CloudFront to route requests to when they match this cache behavior\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetOriginId", "type": "string" }, "TrustedKeyGroups": { "items": { "type": "string" }, + "markdownDescription": "A list of key groups that CloudFront can use to validate signed URLs or signed cookies\\. \nWhen a cache behavior contains trusted key groups, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior\\. The URLs or cookies must be signed with a private key whose corresponding public key is in the key group\\. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature\\. For more information, see [Serving private content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrustedKeyGroups", "type": "array" }, "TrustedSigners": { "items": { "type": "string" }, + "markdownDescription": "We recommend using `TrustedKeyGroups` instead of `TrustedSigners`\\.\nA list of AWS account IDs whose public keys CloudFront can use to validate signed URLs or signed cookies\\. \nWhen a cache behavior contains trusted signers, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior\\. The URLs or cookies must be signed with the private key of a CloudFront key pair in the trusted signer\u2019s AWS account\\. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature\\. For more information, see [Serving private content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrustedSigners", "type": "array" }, "ViewerProtocolPolicy": { + "markdownDescription": "The protocol that viewers can use to access the files in the origin specified by `TargetOriginId` when a request matches the path pattern in `PathPattern`\\. You can specify the following options: \n+ `allow-all`: Viewers can use HTTP or HTTPS\\.\n+ `redirect-to-https`: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 \\(Moved Permanently\\) to the viewer along with the HTTPS URL\\. The viewer then resubmits the request using the new URL\\. \n+ `https-only`: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 \\(Forbidden\\)\\. \nFor more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*\\. \nThe only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object\\. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects\u2019 cache because cached objects are protocol agnostic\\. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously\\. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `allow-all | https-only | redirect-to-https` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ViewerProtocolPolicy", "type": "string" } }, @@ -24180,12 +29481,16 @@ "additionalProperties": false, "properties": { "Forward": { + "markdownDescription": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. \nIf you want to include cookies in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send cookies to the origin but not include them in the cache key, use origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*\\. \nSpecifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the `WhitelistedNames` complex type\\. \nAmazon S3 doesn't process cookies\\. When the cache behavior is forwarding requests to an Amazon S3 origin, specify none for the `Forward` element\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Forward", "type": "string" }, "WhitelistedNames": { "items": { "type": "string" }, + "markdownDescription": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. \nIf you want to include cookies in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send cookies to the origin but not include them in the cache key, use an origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*\\. \nRequired if you specify `whitelist` for the value of `Forward`\\. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward selected cookies, the names of those cookies\\. \nIf you specify `all` or `none` for the value of `Forward`, omit `WhitelistedNames`\\. If you change the value of `Forward` from `whitelist` to `all` or `none` and you don't delete the `WhitelistedNames` element and its child elements, CloudFront deletes them automatically\\. \nFor the current limit on the number of cookie names that you can whitelist for each cache behavior, see [ CloudFront Limits](https://docs.aws.amazon.com/general/latest/gr/xrefaws_service_limits.html#limits_cloudfront) in the * AWS General Reference*\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WhitelistedNames", "type": "array" } }, @@ -24198,15 +29503,23 @@ "additionalProperties": false, "properties": { "ErrorCachingMinTTL": { + "markdownDescription": "The minimum amount of time, in seconds, that you want CloudFront to cache the HTTP status code specified in `ErrorCode`\\. When this time period has elapsed, CloudFront queries your origin to see whether the problem that caused the error has been resolved and the requested object is now available\\. \nFor more information, see [Customizing Error Responses](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorCachingMinTTL", "type": "number" }, "ErrorCode": { + "markdownDescription": "The HTTP status code for which you want to specify a custom error page and/or a caching duration\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorCode", "type": "number" }, "ResponseCode": { + "markdownDescription": "The HTTP status code that you want CloudFront to return to the viewer along with the custom error page\\. There are a variety of reasons that you might want CloudFront to return a status code different from the status code that your origin returned to CloudFront, for example: \n+ Some Internet devices \\(some firewalls and corporate proxies, for example\\) intercept HTTP 4xx and 5xx and prevent the response from being returned to the viewer\\. If you substitute `200`, the response typically won't be intercepted\\.\n+ If you don't care about distinguishing among different client errors or server errors, you can specify `400` or `500` as the `ResponseCode` for all 4xx or 5xx errors\\.\n+ You might want to return a `200` status code \\(OK\\) and static website so your customers don't know that your website is down\\.\nIf you specify a value for `ResponseCode`, you must also specify a value for `ResponsePagePath`\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseCode", "type": "number" }, "ResponsePagePath": { + "markdownDescription": "The path to the custom error page that you want CloudFront to return to a viewer when your origin returns the HTTP status code specified by `ErrorCode`, for example, `/4xx-errors/403-forbidden.html`\\. If you want to store your objects and your custom error pages in different locations, your distribution must include a cache behavior for which the following is true: \n+ The value of `PathPattern` matches the path to your custom error messages\\. For example, suppose you saved custom error pages for 4xx errors in an Amazon S3 bucket in a directory named `/4xx-errors`\\. Your distribution must include a cache behavior for which the path pattern routes requests for your custom error pages to that location, for example, `/4xx-errors/*`\\. \n+ The value of `TargetOriginId` specifies the value of the `ID` element for the origin that contains your custom error pages\\.\nIf you specify a value for `ResponsePagePath`, you must also specify a value for `ResponseCode`\\. \nWe recommend that you store custom error pages in an Amazon S3 bucket\\. If you store custom error pages on an HTTP server and the server starts to return 5xx errors, CloudFront can't get the files that you want to return to viewers because the origin server is unavailable\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponsePagePath", "type": "string" } }, @@ -24219,24 +29532,36 @@ "additionalProperties": false, "properties": { "HTTPPort": { + "markdownDescription": "The HTTP port that CloudFront uses to connect to the origin\\. Specify the HTTP port that the origin listens on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTPPort", "type": "number" }, "HTTPSPort": { + "markdownDescription": "The HTTPS port that CloudFront uses to connect to the origin\\. Specify the HTTPS port that the origin listens on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTPSPort", "type": "number" }, "OriginKeepaliveTimeout": { + "markdownDescription": "Specifies how long, in seconds, CloudFront persists its connection to the origin\\. The minimum timeout is 1 second, the maximum is 60 seconds, and the default \\(if you don\u2019t specify otherwise\\) is 5 seconds\\. \nFor more information, see [Origin Keep\\-alive Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginKeepaliveTimeout) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginKeepaliveTimeout", "type": "number" }, "OriginProtocolPolicy": { + "markdownDescription": "Specifies the protocol \\(HTTP or HTTPS\\) that CloudFront uses to connect to the origin\\. Valid values are: \n+ `http-only` \u2013 CloudFront always uses HTTP to connect to the origin\\.\n+ `match-viewer` \u2013 CloudFront connects to the origin using the same protocol that the viewer used to connect to CloudFront\\.\n+ `https-only` \u2013 CloudFront always uses HTTPS to connect to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `http-only | https-only | match-viewer` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginProtocolPolicy", "type": "string" }, "OriginReadTimeout": { + "markdownDescription": "Specifies how long, in seconds, CloudFront waits for a response from the origin\\. This is also known as the *origin response timeout*\\. The minimum timeout is 1 second, the maximum is 60 seconds, and the default \\(if you don\u2019t specify otherwise\\) is 30 seconds\\. \nFor more information, see [Origin Response Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginReadTimeout", "type": "number" }, "OriginSSLProtocols": { "items": { "type": "string" }, + "markdownDescription": "Specifies the minimum SSL/TLS protocol that CloudFront uses when connecting to your origin over HTTPS\\. Valid values include `SSLv3`, `TLSv1`, `TLSv1.1`, and `TLSv1.2`\\. \nFor more information, see [Minimum Origin SSL Protocol](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginSSLProtocols) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginSSLProtocols", "type": "array" } }, @@ -24252,75 +29577,113 @@ "items": { "type": "string" }, + "markdownDescription": "A complex type that controls which HTTP methods CloudFront processes and forwards to your Amazon S3 bucket or your custom origin\\. There are three choices: \n+ CloudFront forwards only `GET` and `HEAD` requests\\.\n+ CloudFront forwards only `GET`, `HEAD`, and `OPTIONS` requests\\.\n+ CloudFront forwards `GET, HEAD, OPTIONS, PUT, PATCH, POST`, and `DELETE` requests\\.\nIf you pick the third choice, you may need to restrict access to your Amazon S3 bucket or to your custom origin so users can't perform operations that you don't want them to\\. For example, you might not want users to have permissions to delete objects from your origin\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedMethods", "type": "array" }, "CachePolicyId": { + "markdownDescription": "The unique identifier of the cache policy that is attached to the default cache behavior\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nA `DefaultCacheBehavior` must include either a `CachePolicyId` or `ForwardedValues`\\. We recommend that you use a `CachePolicyId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CachePolicyId", "type": "string" }, "CachedMethods": { "items": { "type": "string" }, + "markdownDescription": "A complex type that controls whether CloudFront caches the response to requests using the specified HTTP methods\\. There are two choices: \n+ CloudFront caches responses to `GET` and `HEAD` requests\\.\n+ CloudFront caches responses to `GET`, `HEAD`, and `OPTIONS` requests\\.\nIf you pick the second choice for your Amazon S3 Origin, you may need to forward Access\\-Control\\-Request\\-Method, Access\\-Control\\-Request\\-Headers, and Origin headers for the responses to be cached correctly\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CachedMethods", "type": "array" }, "Compress": { + "markdownDescription": "Whether you want CloudFront to automatically compress certain files for this cache behavior\\. If so, specify `true`; if not, specify `false`\\. For more information, see [Serving Compressed Files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Compress", "type": "boolean" }, "DefaultTTL": { + "markdownDescription": "This field is deprecated\\. We recommend that you use the `DefaultTTL` field in a cache policy instead of this field\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nThe default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated\\. The value that you specify applies only when your origin does not add HTTP headers such as `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to objects\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultTTL", "type": "number" }, "FieldLevelEncryptionId": { + "markdownDescription": "The value of `ID` for the field\\-level encryption configuration that you want CloudFront to use for encrypting specific fields of data for the default cache behavior\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldLevelEncryptionId", "type": "string" }, "ForwardedValues": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues" + "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues", + "markdownDescription": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to include values in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send values to the origin but not include them in the cache key, use an origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nA `DefaultCacheBehavior` must include either a `CachePolicyId` or `ForwardedValues`\\. We recommend that you use a `CachePolicyId`\\. \nA complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers\\. \n*Required*: Conditional \n*Type*: [ForwardedValues](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-forwardedvalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForwardedValues" }, "FunctionAssociations": { "items": { "$ref": "#/definitions/AWS::CloudFront::Distribution.FunctionAssociation" }, + "markdownDescription": "A list of CloudFront functions that are associated with this cache behavior\\. CloudFront functions must be published to the `LIVE` stage to associate them with a cache behavior\\. \n*Required*: No \n*Type*: List of [FunctionAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-functionassociation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FunctionAssociations", "type": "array" }, "LambdaFunctionAssociations": { "items": { "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation" }, + "markdownDescription": "A complex type that contains zero or more Lambda@Edge function associations for a cache behavior\\. \n*Required*: No \n*Type*: List of [LambdaFunctionAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-lambdafunctionassociation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaFunctionAssociations", "type": "array" }, "MaxTTL": { + "markdownDescription": "This field is deprecated\\. We recommend that you use the `MaxTTL` field in a cache policy instead of this field\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nThe maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated\\. The value that you specify applies only when your origin adds HTTP headers such as `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to objects\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxTTL", "type": "number" }, "MinTTL": { + "markdownDescription": "This field is deprecated\\. We recommend that you use the `MinTTL` field in a cache policy instead of this field\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nThe minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \nYou must specify `0` for `MinTTL` if you configure CloudFront to forward all headers to your origin \\(under `Headers`, if you specify `1` for `Quantity` and `*` for `Name`\\)\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinTTL", "type": "number" }, "OriginRequestPolicyId": { + "markdownDescription": "The unique identifier of the origin request policy that is attached to the default cache behavior\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginRequestPolicyId", "type": "string" }, "RealtimeLogConfigArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the real\\-time log configuration that is attached to this cache behavior\\. For more information, see [Real\\-time logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RealtimeLogConfigArn", "type": "string" }, "ResponseHeadersPolicyId": { + "markdownDescription": "The identifier for a response headers policy\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseHeadersPolicyId", "type": "string" }, "SmoothStreaming": { + "markdownDescription": "Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior\\. If so, specify `true`; if not, specify `false`\\. If you specify `true` for `SmoothStreaming`, you can still distribute other content using this cache behavior if the content matches the value of `PathPattern`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SmoothStreaming", "type": "boolean" }, "TargetOriginId": { + "markdownDescription": "The value of `ID` for the origin that you want CloudFront to route requests to when they use the default cache behavior\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetOriginId", "type": "string" }, "TrustedKeyGroups": { "items": { "type": "string" }, + "markdownDescription": "A list of key groups that CloudFront can use to validate signed URLs or signed cookies\\. \nWhen a cache behavior contains trusted key groups, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior\\. The URLs or cookies must be signed with a private key whose corresponding public key is in the key group\\. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature\\. For more information, see [Serving private content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrustedKeyGroups", "type": "array" }, "TrustedSigners": { "items": { "type": "string" }, + "markdownDescription": "We recommend using `TrustedKeyGroups` instead of `TrustedSigners`\\.\nA list of AWS account IDs whose public keys CloudFront can use to validate signed URLs or signed cookies\\. \nWhen a cache behavior contains trusted signers, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior\\. The URLs or cookies must be signed with the private key of a CloudFront key pair in a trusted signer\u2019s AWS account\\. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature\\. For more information, see [Serving private content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrustedSigners", "type": "array" }, "ViewerProtocolPolicy": { + "markdownDescription": "The protocol that viewers can use to access the files in the origin specified by `TargetOriginId` when a request matches the path pattern in `PathPattern`\\. You can specify the following options: \n+ `allow-all`: Viewers can use HTTP or HTTPS\\.\n+ `redirect-to-https`: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 \\(Moved Permanently\\) to the viewer along with the HTTPS URL\\. The viewer then resubmits the request using the new URL\\.\n+ `https-only`: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 \\(Forbidden\\)\\.\nFor more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*\\. \nThe only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object\\. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects\u2019 cache because cached objects are protocol agnostic\\. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously\\. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `allow-all | https-only | redirect-to-https` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ViewerProtocolPolicy", "type": "string" } }, @@ -24337,21 +29700,29 @@ "items": { "type": "string" }, + "markdownDescription": "A complex type that contains information about CNAMEs \\(alternate domain names\\), if any, for this distribution\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Aliases", "type": "array" }, "CNAMEs": { "items": { "type": "string" }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CNAMEs", "type": "array" }, "CacheBehaviors": { "items": { "$ref": "#/definitions/AWS::CloudFront::Distribution.CacheBehavior" }, + "markdownDescription": "A complex type that contains zero or more `CacheBehavior` elements\\. \n*Required*: No \n*Type*: List of [CacheBehavior](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheBehaviors", "type": "array" }, "Comment": { + "markdownDescription": "An optional comment to describe the distribution\\. The comment cannot be longer than 128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", "type": "string" }, "ContinuousDeploymentPolicyId": { @@ -24361,54 +29732,84 @@ "items": { "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomErrorResponse" }, + "markdownDescription": "A complex type that controls the following: \n+ Whether CloudFront replaces HTTP status codes in the 4xx and 5xx range with custom error messages before returning the response to the viewer\\.\n+ How long CloudFront caches HTTP status codes in the 4xx and 5xx range\\.\nFor more information about custom error pages, see [Customizing Error Responses](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of [CustomErrorResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customerrorresponse.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomErrorResponses", "type": "array" }, "CustomOrigin": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.LegacyCustomOrigin" + "$ref": "#/definitions/AWS::CloudFront::Distribution.LegacyCustomOrigin", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [LegacyCustomOrigin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacycustomorigin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomOrigin" }, "DefaultCacheBehavior": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.DefaultCacheBehavior" + "$ref": "#/definitions/AWS::CloudFront::Distribution.DefaultCacheBehavior", + "markdownDescription": "A complex type that describes the default cache behavior if you don't specify a `CacheBehavior` element or if files don't match any of the values of `PathPattern` in `CacheBehavior` elements\\. You must create exactly one default cache behavior\\. \n*Required*: No \n*Type*: [DefaultCacheBehavior](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultCacheBehavior" }, "DefaultRootObject": { + "markdownDescription": "The object that you want CloudFront to request from your origin \\(for example, `index.html`\\) when a viewer requests the root URL for your distribution \\(`http://www.example.com`\\) instead of an object in your distribution \\(`http://www.example.com/product-description.html`\\)\\. Specifying a default root object avoids exposing the contents of your distribution\\. \nSpecify only the object name, for example, `index.html`\\. Don't add a `/` before the object name\\. \nIf you don't want to specify a default root object when you create a distribution, include an empty `DefaultRootObject` element\\. \nTo delete the default root object from an existing distribution, update the distribution configuration and include an empty `DefaultRootObject` element\\. \nTo replace the default root object, update the distribution configuration and specify the new object\\. \nFor more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultRootObject", "type": "string" }, "Enabled": { + "markdownDescription": "From this field, you can enable or disable the selected distribution\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "HttpVersion": { + "markdownDescription": "\\(Optional\\) Specify the maximum HTTP version that you want viewers to use to communicate with CloudFront\\. The default value for new web distributions is `http1.1`\\. \nFor viewers and CloudFront to use HTTP/2, viewers must support TLS 1\\.2 or later, and must support server name identification \\(SNI\\)\\. \nIn general, configuring CloudFront to communicate with viewers using HTTP/2 reduces latency\\. You can improve performance by optimizing for HTTP/2\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `http1.1 | http2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpVersion", "type": "string" }, "IPV6Enabled": { + "markdownDescription": "If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify `true`\\. If you specify `false`, CloudFront responds to IPv6 DNS requests with the DNS response code `NOERROR` and with no IP addresses\\. This allows viewers to submit a second request, for an IPv4 address for your distribution\\. \nIn general, you should enable IPv6 if you have users on IPv6 networks who want to access your content\\. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the `IpAddress` parameter to restrict the IP addresses that can access your content, don't enable IPv6\\. If you want to restrict access to some content by IP address and not restrict access to other content \\(or restrict access but not by IP address\\), you can create two distributions\\. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html) in the *Amazon CloudFront Developer Guide*\\. \nIf you're using an Amazon Route\u00a053 AWS Integration alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true: \n+ You enable IPv6 for the distribution\n+ You're using alternate domain names in the URLs for your objects\nFor more information, see [Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html) in the * Amazon Route\u00a053 AWS Integration Developer Guide*\\. \nIf you created a CNAME resource record set, either with Amazon Route\u00a053 AWS Integration or with another DNS service, you don't need to make any changes\\. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IPV6Enabled", "type": "boolean" }, "Logging": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.Logging" + "$ref": "#/definitions/AWS::CloudFront::Distribution.Logging", + "markdownDescription": "A complex type that controls whether access logs are written for the distribution\\. \nFor more information about logging, see [Access Logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: [Logging](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-logging.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Logging" }, "OriginGroups": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroups" + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroups", + "markdownDescription": "A complex type that contains information about origin groups for this distribution\\. \n*Required*: No \n*Type*: [OriginGroups](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroups.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginGroups" }, "Origins": { "items": { "$ref": "#/definitions/AWS::CloudFront::Distribution.Origin" }, + "markdownDescription": "A complex type that contains information about origins for this distribution\\. \n*Required*: No \n*Type*: List of [Origin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Origins", "type": "array" }, "PriceClass": { + "markdownDescription": "The price class that corresponds with the maximum price that you want to pay for CloudFront service\\. If you specify `PriceClass_All`, CloudFront responds to requests for your objects from all CloudFront edge locations\\. \nIf you specify a price class other than `PriceClass_All`, CloudFront serves your objects from the CloudFront edge location that has the lowest latency among the edge locations in your price class\\. Viewers who are in or near regions that are excluded from your specified price class may encounter slower performance\\. \nFor more information about price classes, see [Choosing the Price Class for a CloudFront Distribution](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PriceClass.html) in the *Amazon CloudFront Developer Guide*\\. For information about CloudFront pricing, including how price classes \\(such as Price Class 100\\) map to CloudFront regions, see [Amazon CloudFront Pricing](http://aws.amazon.com/cloudfront/pricing/)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PriceClass_100 | PriceClass_200 | PriceClass_All` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PriceClass", "type": "string" }, "Restrictions": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.Restrictions" + "$ref": "#/definitions/AWS::CloudFront::Distribution.Restrictions", + "markdownDescription": "A complex type that identifies ways in which you want to restrict distribution of your content\\. \n*Required*: No \n*Type*: [Restrictions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-restrictions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Restrictions" }, "S3Origin": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.LegacyS3Origin" + "$ref": "#/definitions/AWS::CloudFront::Distribution.LegacyS3Origin", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [LegacyS3Origin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacys3origin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Origin" }, "Staging": { "type": "boolean" }, "ViewerCertificate": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.ViewerCertificate" + "$ref": "#/definitions/AWS::CloudFront::Distribution.ViewerCertificate", + "markdownDescription": "A complex type that determines the distribution\u2019s SSL/TLS configuration for communicating with viewers\\. \n*Required*: No \n*Type*: [ViewerCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ViewerCertificate" }, "WebACLId": { + "markdownDescription": "A unique identifier that specifies the AWS WAF web ACL, if any, to associate with this distribution\\. To specify a web ACL created using the latest version of AWS WAF, use the ACL ARN, for example `arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a`\\. To specify a web ACL created using AWS WAF Classic, use the ACL ID, for example `473e64fd-f30b-4765-81a0-62ad96dd167a`\\. \n AWS WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content\\. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code \\(Forbidden\\)\\. You can also configure CloudFront to return a custom error page when a request is blocked\\. For more information about AWS WAF, see the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WebACLId", "type": "string" } }, @@ -24422,21 +29823,29 @@ "additionalProperties": false, "properties": { "Cookies": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.Cookies" + "$ref": "#/definitions/AWS::CloudFront::Distribution.Cookies", + "markdownDescription": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. \nIf you want to include cookies in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send cookies to the origin but not include them in the cache key, use an origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*\\. \nA complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones\\. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: [Cookies](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cookies.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cookies" }, "Headers": { "items": { "type": "string" }, + "markdownDescription": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. \nIf you want to include headers in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send headers to the origin but not include them in the cache key, use an origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*\\. \nA complex type that specifies the `Headers`, if any, that you want CloudFront to forward to the origin for this cache behavior \\(whitelisted headers\\)\\. For the headers that you specify, CloudFront also caches separate versions of a specified object that is based on the header values in viewer requests\\. \nFor more information, see [ Caching Content Based on Request Headers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Headers", "type": "array" }, "QueryString": { + "markdownDescription": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. \nIf you want to include query strings in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send query strings to the origin but not include them in the cache key, use an origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*\\. \nIndicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters\\. CloudFront behavior depends on the value of `QueryString` and on the values that you specify for `QueryStringCacheKeys`, if any: \nIf you specify true for `QueryString` and you don't specify any values for `QueryStringCacheKeys`, CloudFront forwards all query string parameters to the origin and caches based on all query string parameters\\. Depending on how many query string parameters and values you have, this can adversely affect performance because CloudFront must forward more requests to the origin\\. \nIf you specify true for `QueryString` and you specify one or more values for `QueryStringCacheKeys`, CloudFront forwards all query string parameters to the origin, but it only caches based on the query string parameters that you specify\\. \nIf you specify false for `QueryString`, CloudFront doesn't forward any query string parameters to the origin, and doesn't cache based on query string parameters\\. \nFor more information, see [Configuring CloudFront to Cache Based on Query String Parameters](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryString", "type": "boolean" }, "QueryStringCacheKeys": { "items": { "type": "string" }, + "markdownDescription": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. \nIf you want to include query strings in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send query strings to the origin but not include them in the cache key, use an origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*\\. \nA complex type that contains information about the query string parameters that you want CloudFront to use for caching for this cache behavior\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryStringCacheKeys", "type": "array" } }, @@ -24449,9 +29858,13 @@ "additionalProperties": false, "properties": { "EventType": { + "markdownDescription": "The event type of the function, either `viewer-request` or `viewer-response`\\. You cannot use origin\\-facing event types \\(`origin-request` and `origin-response`\\) with a CloudFront function\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `origin-request | origin-response | viewer-request | viewer-response` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventType", "type": "string" }, "FunctionARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the function\\. \n*Required*: No \n*Type*: String \n*Maximum*: `108` \n*Pattern*: `arn:aws:cloudfront::[0-9]{12}:function\\/[a-zA-Z0-9-_]{1,64}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FunctionARN", "type": "string" } }, @@ -24464,9 +29877,13 @@ "items": { "type": "string" }, + "markdownDescription": "A complex type that contains a `Location` element for each country in which you want CloudFront either to distribute your content \\(`whitelist`\\) or not distribute your content \\(`blacklist`\\)\\. \nThe `Location` element is a two\\-letter, uppercase country code for a country that you want to include in your `blacklist` or `whitelist`\\. Include one `Location` element for each country\\. \nCloudFront and `MaxMind` both use `ISO 3166` country codes\\. For the current list of countries and the corresponding codes, see `ISO 3166-1-alpha-2` code on the *International Organization for Standardization* website\\. You can also refer to the country list on the CloudFront console, which includes both country names and codes\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Locations", "type": "array" }, "RestrictionType": { + "markdownDescription": "The method that you want to use to restrict distribution of your content by country: \n+ `none`: No geo restriction is enabled, meaning access to content is not restricted by client geo location\\.\n+ `blacklist`: The `Location` elements specify the countries in which you don't want CloudFront to distribute your content\\.\n+ `whitelist`: The `Location` elements specify the countries in which you want CloudFront to distribute your content\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `blacklist | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestrictionType", "type": "string" } }, @@ -24479,12 +29896,18 @@ "additionalProperties": false, "properties": { "EventType": { + "markdownDescription": "Specifies the event type that triggers a Lambda@Edge function invocation\\. You can specify the following values: \n+ `viewer-request`: The function executes when CloudFront receives a request from a viewer and before it checks to see whether the requested object is in the edge cache\\. \n+ `origin-request`: The function executes only when CloudFront sends a request to your origin\\. When the requested object is in the edge cache, the function doesn't execute\\.\n+ `origin-response`: The function executes after CloudFront receives a response from the origin and before it caches the object in the response\\. When the requested object is in the edge cache, the function doesn't execute\\.\n+ `viewer-response`: The function executes before CloudFront returns the requested object to the viewer\\. The function executes regardless of whether the object was already in the edge cache\\.", + "title": "EventType", "type": "string" }, "IncludeBody": { + "markdownDescription": "A flag that allows a Lambda@Edge function to have read access to the body content\\. For more information, see [Accessing the Request Body by Choosing the Include Body Option](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-include-body-access.html) in the Amazon CloudFront Developer Guide\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeBody", "type": "boolean" }, "LambdaFunctionARN": { + "markdownDescription": "The ARN of the Lambda@Edge function\\. You must specify the ARN of a function version; you can't specify an alias or $LATEST\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaFunctionARN", "type": "string" } }, @@ -24494,21 +29917,31 @@ "additionalProperties": false, "properties": { "DNSName": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DNSName", "type": "string" }, "HTTPPort": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTPPort", "type": "number" }, "HTTPSPort": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTPSPort", "type": "number" }, "OriginProtocolPolicy": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginProtocolPolicy", "type": "string" }, "OriginSSLProtocols": { "items": { "type": "string" }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginSSLProtocols", "type": "array" } }, @@ -24523,9 +29956,13 @@ "additionalProperties": false, "properties": { "DNSName": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DNSName", "type": "string" }, "OriginAccessIdentity": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginAccessIdentity", "type": "string" } }, @@ -24538,12 +29975,18 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The Amazon S3 bucket to store the access logs in, for example, `myawslogbucket.s3.amazonaws.com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", "type": "string" }, "IncludeCookies": { + "markdownDescription": "Specifies whether you want CloudFront to include cookies in access logs, specify `true` for `IncludeCookies`\\. If you choose to include cookies in logs, CloudFront logs all cookies regardless of how you configure the cache behaviors for this distribution\\. If you don't want to include cookies when you create a distribution or if you want to disable include cookies for an existing distribution, specify `false` for `IncludeCookies`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeCookies", "type": "boolean" }, "Prefix": { + "markdownDescription": "An optional string that you want CloudFront to prefix to the access log `filenames` for this distribution, for example, `myprefix/`\\. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty `Prefix` element in the `Logging` element\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" } }, @@ -24556,18 +29999,28 @@ "additionalProperties": false, "properties": { "ConnectionAttempts": { + "markdownDescription": "The number of times that CloudFront attempts to connect to the origin\\. The minimum number is 1, the maximum is 3, and the default \\(if you don\u2019t specify otherwise\\) is 3\\. \nFor a custom origin \\(including an Amazon S3 bucket that\u2019s configured with static website hosting\\), this value also specifies the number of times that CloudFront attempts to get a response from the origin, in the case of an [Origin Response Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout)\\. \nFor more information, see [Origin Connection Attempts](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#origin-connection-attempts) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionAttempts", "type": "number" }, "ConnectionTimeout": { + "markdownDescription": "The number of seconds that CloudFront waits when trying to establish a connection to the origin\\. The minimum timeout is 1 second, the maximum is 10 seconds, and the default \\(if you don\u2019t specify otherwise\\) is 10 seconds\\. \nFor more information, see [Origin Connection Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#origin-connection-timeout) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionTimeout", "type": "number" }, "CustomOriginConfig": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomOriginConfig" + "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomOriginConfig", + "markdownDescription": "Use this type to specify an origin that is not an Amazon S3 bucket, with one exception\\. If the Amazon S3 bucket is configured with static website hosting, use this type\\. If the Amazon S3 bucket is not configured with static website hosting, use the `S3OriginConfig` type instead\\. \n*Required*: Conditional \n*Type*: [CustomOriginConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customoriginconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomOriginConfig" }, "DomainName": { + "markdownDescription": "The domain name for the origin\\. \nFor more information, see [Origin Domain Name](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesDomainName) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainName", "type": "string" }, "Id": { + "markdownDescription": "A unique identifier for the origin\\. This value must be unique within the distribution\\. \nUse this value to specify the `TargetOriginId` in a `CacheBehavior` or `DefaultCacheBehavior`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "OriginAccessControlId": { @@ -24577,16 +30030,24 @@ "items": { "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginCustomHeader" }, + "markdownDescription": "A list of HTTP header names and values that CloudFront adds to the requests that it sends to the origin\\. \nFor more information, see [Adding Custom Headers to Origin Requests](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/add-origin-custom-headers.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of [OriginCustomHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origincustomheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginCustomHeaders", "type": "array" }, "OriginPath": { + "markdownDescription": "An optional path that CloudFront appends to the origin domain name when CloudFront requests content from the origin\\. \nFor more information, see [Origin Path](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginPath) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginPath", "type": "string" }, "OriginShield": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginShield" + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginShield", + "markdownDescription": "CloudFront Origin Shield\\. Using Origin Shield can help reduce the load on your origin\\. \nFor more information, see [Using Origin Shield](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: [OriginShield](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-originshield.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginShield" }, "S3OriginConfig": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.S3OriginConfig" + "$ref": "#/definitions/AWS::CloudFront::Distribution.S3OriginConfig", + "markdownDescription": "Use this type to specify an origin that is an Amazon S3 bucket that is not configured with static website hosting\\. To specify any other type of origin, including an Amazon S3 bucket that is configured with static website hosting, use the `CustomOriginConfig` type instead\\. \n*Required*: Conditional \n*Type*: [S3OriginConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-s3originconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3OriginConfig" } }, "required": [ @@ -24599,9 +30060,13 @@ "additionalProperties": false, "properties": { "HeaderName": { + "markdownDescription": "The name of a header that you want CloudFront to send to your origin\\. For more information, see [Adding Custom Headers to Origin Requests](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/forward-custom-headers.html) in the * Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderName", "type": "string" }, "HeaderValue": { + "markdownDescription": "The value for the header that you specified in the `HeaderName` field\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderValue", "type": "string" } }, @@ -24615,13 +30080,19 @@ "additionalProperties": false, "properties": { "FailoverCriteria": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroupFailoverCriteria" + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroupFailoverCriteria", + "markdownDescription": "A complex type that contains information about the failover criteria for an origin group\\. \n*Required*: Yes \n*Type*: [OriginGroupFailoverCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupfailovercriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailoverCriteria" }, "Id": { + "markdownDescription": "The origin group's ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "Members": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroupMembers" + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroupMembers", + "markdownDescription": "A complex type that contains information about the origins in an origin group\\. \n*Required*: Yes \n*Type*: [OriginGroupMembers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupmembers.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Members" } }, "required": [ @@ -24635,7 +30106,9 @@ "additionalProperties": false, "properties": { "StatusCodes": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.StatusCodes" + "$ref": "#/definitions/AWS::CloudFront::Distribution.StatusCodes", + "markdownDescription": "The status codes that, when returned from the primary origin, will trigger CloudFront to failover to the second origin\\. \n*Required*: Yes \n*Type*: [StatusCodes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-statuscodes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusCodes" } }, "required": [ @@ -24647,6 +30120,8 @@ "additionalProperties": false, "properties": { "OriginId": { + "markdownDescription": "The ID for an origin in an origin group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginId", "type": "string" } }, @@ -24662,9 +30137,13 @@ "items": { "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroupMember" }, + "markdownDescription": "Items \\(origins\\) in an origin group\\. \n*Required*: Yes \n*Type*: List of [OriginGroupMember](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupmember.html) \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Items", "type": "array" }, "Quantity": { + "markdownDescription": "The number of origins in an origin group\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Quantity", "type": "number" } }, @@ -24681,9 +30160,13 @@ "items": { "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroup" }, + "markdownDescription": "The items \\(origin groups\\) in a distribution\\. \n*Required*: No \n*Type*: List of [OriginGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Items", "type": "array" }, "Quantity": { + "markdownDescription": "The number of origin groups\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Quantity", "type": "number" } }, @@ -24696,9 +30179,13 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "A flag that specifies whether Origin Shield is enabled\\. \nWhen it\u2019s enabled, CloudFront routes all requests through Origin Shield, which can help protect your origin\\. When it\u2019s disabled, CloudFront might send requests directly to your origin from multiple edge locations or regional edge caches\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "OriginShieldRegion": { + "markdownDescription": "The AWS Region for Origin Shield\\. \nSpecify the AWS Region that has the lowest latency to your origin\\. To specify a region, use the region code, not the region name\\. For example, specify the US East \\(Ohio\\) region as `us-east-2`\\. \nWhen you enable CloudFront Origin Shield, you must specify the AWS Region for Origin Shield\\. For the list of AWS Regions that you can specify, and for help choosing the best Region for your origin, see [Choosing the AWS Region for Origin Shield](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html#choose-origin-shield-region) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `[a-z]{2}-[a-z]+-\\d` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginShieldRegion", "type": "string" } }, @@ -24708,7 +30195,9 @@ "additionalProperties": false, "properties": { "GeoRestriction": { - "$ref": "#/definitions/AWS::CloudFront::Distribution.GeoRestriction" + "$ref": "#/definitions/AWS::CloudFront::Distribution.GeoRestriction", + "markdownDescription": "A complex type that controls the countries in which your content is distributed\\. CloudFront determines the location of your users using `MaxMind` GeoIP databases\\. To disable geo restriction, remove the [Restrictions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-restrictions) property from your stack template\\. \n*Required*: Yes \n*Type*: [GeoRestriction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-georestriction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GeoRestriction" } }, "required": [ @@ -24720,6 +30209,8 @@ "additionalProperties": false, "properties": { "OriginAccessIdentity": { + "markdownDescription": "The CloudFront origin access identity to associate with the origin\\. Use an origin access identity to configure the origin so that viewers can *only* access objects in an Amazon S3 bucket through CloudFront\\. The format of the value is: \norigin\\-access\\-identity/cloudfront/*ID\\-of\\-origin\\-access\\-identity* \nwhere ` ID-of-origin-access-identity ` is the value that CloudFront returned in the `ID` element when you created the origin access identity\\. \nIf you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty `OriginAccessIdentity` element\\. \nTo delete the origin access identity from an existing distribution, update the distribution configuration and include an empty `OriginAccessIdentity` element\\. \nTo replace the origin access identity, update the distribution configuration and specify the new origin access identity\\. \nFor more information about the origin access identity, see [Serving Private Content through CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginAccessIdentity", "type": "string" } }, @@ -24732,9 +30223,13 @@ "items": { "type": "number" }, + "markdownDescription": "The items \\(status codes\\) for an origin group\\. \n*Required*: Yes \n*Type*: List of Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Items", "type": "array" }, "Quantity": { + "markdownDescription": "The number of status codes\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Quantity", "type": "number" } }, @@ -24748,18 +30243,28 @@ "additionalProperties": false, "properties": { "AcmCertificateArn": { + "markdownDescription": "In CloudFormation, this field name is `AcmCertificateArn`\\. Note the different capitalization\\.\nIf the distribution uses `Aliases` \\(alternate domain names or CNAMEs\\) and the SSL/TLS certificate is stored in [AWS Certificate Manager \\(ACM\\)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html), provide the Amazon Resource Name \\(ARN\\) of the ACM certificate\\. CloudFront only supports ACM certificates in the US East \\(N\\. Virginia\\) Region \\(`us-east-1`\\)\\. \nIf you specify an ACM certificate ARN, you must also specify values for `MinimumProtocolVersion` and `SSLSupportMethod`\\. \\(In CloudFormation, the field name is `SslSupportMethod`\\. Note the different capitalization\\.\\) \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcmCertificateArn", "type": "string" }, "CloudFrontDefaultCertificate": { + "markdownDescription": "If the distribution uses the CloudFront domain name such as `d111111abcdef8.cloudfront.net`, set this field to `true`\\. \nIf the distribution uses `Aliases` \\(alternate domain names or CNAMEs\\), set this field to `false` and specify values for the following fields: \n+ `ACMCertificateArn` or `IAMCertificateId` \\(specify a value for one, not both\\)", + "title": "CloudFrontDefaultCertificate", "type": "boolean" }, "IamCertificateId": { + "markdownDescription": "In CloudFormation, this field name is `IamCertificateId`\\. Note the different capitalization\\.\nIf the distribution uses `Aliases` \\(alternate domain names or CNAMEs\\) and the SSL/TLS certificate is stored in [AWS Identity and Access Management \\(IAM\\)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html), provide the ID of the IAM certificate\\. \nIf you specify an IAM certificate ID, you must also specify values for `MinimumProtocolVersion` and `SSLSupportMethod`\\. \\(In CloudFormation, the field name is `SslSupportMethod`\\. Note the different capitalization\\.\\) \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamCertificateId", "type": "string" }, "MinimumProtocolVersion": { + "markdownDescription": "If the distribution uses `Aliases` \\(alternate domain names or CNAMEs\\), specify the security policy that you want CloudFront to use for HTTPS connections with viewers\\. The security policy determines two settings: \n+ The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers\\.\n+ The ciphers that CloudFront can use to encrypt the content that it returns to viewers\\.\nFor more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*\\. \nOn the CloudFront console, this setting is called **Security Policy**\\.\nWhen you\u2019re using SNI only \\(you set `SSLSupportMethod` to `sni-only`\\), you must specify `TLSv1` or higher\\. \\(In CloudFormation, the field name is `SslSupportMethod`\\. Note the different capitalization\\.\\) \nIf the distribution uses the CloudFront domain name such as `d111111abcdef8.cloudfront.net` \\(you set `CloudFrontDefaultCertificate` to `true`\\), CloudFront automatically sets the security policy to `TLSv1` regardless of the value that you set here\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `SSLv3 | TLSv1 | TLSv1.1_2016 | TLSv1.2_2018 | TLSv1.2_2019 | TLSv1.2_2021 | TLSv1_2016` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinimumProtocolVersion", "type": "string" }, "SslSupportMethod": { + "markdownDescription": "In CloudFormation, this field name is `SslSupportMethod`\\. Note the different capitalization\\.\nIf the distribution uses `Aliases` \\(alternate domain names or CNAMEs\\), specify which viewers the distribution accepts HTTPS connections from\\. \n+ `sni-only` \u2013 The distribution accepts HTTPS connections from only viewers that support [server name indication \\(SNI\\)](https://en.wikipedia.org/wiki/Server_Name_Indication)\\. This is recommended\\. Most browsers and clients support SNI\\.\n+ `vip` \u2013 The distribution accepts HTTPS connections from all viewers including those that don\u2019t support SNI\\. This is not recommended, and results in additional monthly charges from CloudFront\\.\n+ `static-ip` \\- Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team\\. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [AWS Support Center](https://console.aws.amazon.com/support/home)\\.\nIf the distribution uses the CloudFront domain name such as `d111111abcdef8.cloudfront.net`, don\u2019t set a value for this field\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `sni-only | static-ip | vip` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SslSupportMethod", "type": "string" } }, @@ -24801,18 +30306,26 @@ "additionalProperties": false, "properties": { "AutoPublish": { + "markdownDescription": "A flag that determines whether to automatically publish the function to the `LIVE` stage when it\u2019s created\\. To automatically publish to the `LIVE` stage, set this property to `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoPublish", "type": "boolean" }, "FunctionCode": { + "markdownDescription": "The function code\\. For more information about writing a CloudFront function, see [Writing function code for CloudFront Functions](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/writing-function-code.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FunctionCode", "type": "string" }, "FunctionConfig": { - "$ref": "#/definitions/AWS::CloudFront::Function.FunctionConfig" + "$ref": "#/definitions/AWS::CloudFront::Function.FunctionConfig", + "markdownDescription": "Contains configuration information about a CloudFront function\\. \n*Required*: No \n*Type*: [FunctionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-function-functionconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FunctionConfig" }, "FunctionMetadata": { "$ref": "#/definitions/AWS::CloudFront::Function.FunctionMetadata" }, "Name": { + "markdownDescription": "A name to identify the function\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9-_]{1,64}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -24848,9 +30361,13 @@ "additionalProperties": false, "properties": { "Comment": { + "markdownDescription": "A comment to describe the function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", "type": "string" }, "Runtime": { + "markdownDescription": "The function\u2019s runtime environment\\. The only valid value is `cloudfront-js-1.0`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `cloudfront-js-1.0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Runtime", "type": "string" } }, @@ -24864,6 +30381,8 @@ "additionalProperties": false, "properties": { "FunctionARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the function\\. The ARN uniquely identifies the function\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FunctionARN", "type": "string" } }, @@ -24905,7 +30424,9 @@ "additionalProperties": false, "properties": { "KeyGroupConfig": { - "$ref": "#/definitions/AWS::CloudFront::KeyGroup.KeyGroupConfig" + "$ref": "#/definitions/AWS::CloudFront::KeyGroup.KeyGroupConfig", + "markdownDescription": "The key group configuration\\. \n*Required*: Yes \n*Type*: [KeyGroupConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-keygroup-keygroupconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyGroupConfig" } }, "required": [ @@ -24938,15 +30459,21 @@ "additionalProperties": false, "properties": { "Comment": { + "markdownDescription": "A comment to describe the key group\\. The comment cannot be longer than 128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", "type": "string" }, "Items": { "items": { "type": "string" }, + "markdownDescription": "A list of the identifiers of the public keys in the key group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Items", "type": "array" }, "Name": { + "markdownDescription": "A name to identify the key group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -25174,7 +30701,9 @@ "additionalProperties": false, "properties": { "OriginRequestPolicyConfig": { - "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy.OriginRequestPolicyConfig" + "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy.OriginRequestPolicyConfig", + "markdownDescription": "The origin request policy configuration\\. \n*Required*: Yes \n*Type*: [OriginRequestPolicyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-originrequestpolicyconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginRequestPolicyConfig" } }, "required": [ @@ -25207,12 +30736,16 @@ "additionalProperties": false, "properties": { "CookieBehavior": { + "markdownDescription": "Determines whether cookies in viewer requests are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Cookies in viewer requests are not included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any cookies that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The cookies in viewer requests that are listed in the `CookieNames` type are included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All cookies in viewer requests are included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CookieBehavior", "type": "string" }, "Cookies": { "items": { "type": "string" }, + "markdownDescription": "Contains a list of cookie names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cookies", "type": "array" } }, @@ -25225,12 +30758,16 @@ "additionalProperties": false, "properties": { "HeaderBehavior": { + "markdownDescription": "Determines whether any HTTP headers are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 HTTP headers are not included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any headers that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The HTTP headers that are listed in the `Headers` type are included in requests that CloudFront sends to the origin\\.\n+ `allViewer` \u2013 All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin\\.\n+ `allViewerAndWhitelistCloudFront` \u2013 All HTTP headers in viewer requests and the additional CloudFront headers that are listed in the `Headers` type are included in requests that CloudFront sends to the origin\\. The additional headers are added by CloudFront\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `allViewer | allViewerAndWhitelistCloudFront | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderBehavior", "type": "string" }, "Headers": { "items": { "type": "string" }, + "markdownDescription": "Contains a list of HTTP header names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Headers", "type": "array" } }, @@ -25243,19 +30780,29 @@ "additionalProperties": false, "properties": { "Comment": { + "markdownDescription": "A comment to describe the origin request policy\\. The comment cannot be longer than 128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", "type": "string" }, "CookiesConfig": { - "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy.CookiesConfig" + "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy.CookiesConfig", + "markdownDescription": "The cookies from viewer requests to include in origin requests\\. \n*Required*: Yes \n*Type*: [CookiesConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-cookiesconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CookiesConfig" }, "HeadersConfig": { - "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy.HeadersConfig" + "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy.HeadersConfig", + "markdownDescription": "The HTTP headers to include in origin requests\\. These can include headers from viewer requests and additional headers added by CloudFront\\. \n*Required*: Yes \n*Type*: [HeadersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-headersconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeadersConfig" }, "Name": { + "markdownDescription": "A unique name to identify the origin request policy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "QueryStringsConfig": { - "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy.QueryStringsConfig" + "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy.QueryStringsConfig", + "markdownDescription": "The URL query strings from viewer requests to include in origin requests\\. \n*Required*: Yes \n*Type*: [QueryStringsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-querystringsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryStringsConfig" } }, "required": [ @@ -25270,12 +30817,16 @@ "additionalProperties": false, "properties": { "QueryStringBehavior": { + "markdownDescription": "Determines whether any URL query strings in viewer requests are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Query strings in viewer requests are not included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any query strings that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The query strings in viewer requests that are listed in the `QueryStringNames` type are included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All query strings in viewer requests are included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryStringBehavior", "type": "string" }, "QueryStrings": { "items": { "type": "string" }, + "markdownDescription": "Contains a list of query string names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryStrings", "type": "array" } }, @@ -25320,7 +30871,9 @@ "additionalProperties": false, "properties": { "PublicKeyConfig": { - "$ref": "#/definitions/AWS::CloudFront::PublicKey.PublicKeyConfig" + "$ref": "#/definitions/AWS::CloudFront::PublicKey.PublicKeyConfig", + "markdownDescription": "Configuration information about a public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field\\-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html)\\. \n*Required*: Yes \n*Type*: [PublicKeyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-publickey-publickeyconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublicKeyConfig" } }, "required": [ @@ -25353,15 +30906,23 @@ "additionalProperties": false, "properties": { "CallerReference": { + "markdownDescription": "A string included in the request to help make sure that the request can\u2019t be replayed\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CallerReference", "type": "string" }, "Comment": { + "markdownDescription": "A comment to describe the public key\\. The comment cannot be longer than 128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", "type": "string" }, "EncodedKey": { + "markdownDescription": "The public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field\\-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncodedKey", "type": "string" }, "Name": { + "markdownDescription": "A name to help identify the public key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -25411,18 +30972,26 @@ "items": { "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.EndPoint" }, + "markdownDescription": "Contains information about the Amazon Kinesis data stream where you are sending real\\-time log data for this real\\-time log configuration\\. \n*Required*: Yes \n*Type*: List of [EndPoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-realtimelogconfig-endpoint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndPoints", "type": "array" }, "Fields": { "items": { "type": "string" }, + "markdownDescription": "A list of fields that are included in each real\\-time log record\\. In an API response, the fields are provided in the same order in which they are sent to the Amazon Kinesis data stream\\. \nFor more information about fields, see [Real\\-time log configuration fields](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-fields) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Fields", "type": "array" }, "Name": { + "markdownDescription": "The unique name of this real\\-time log configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "SamplingRate": { + "markdownDescription": "The sampling rate for this real\\-time log configuration\\. The sampling rate determines the percentage of viewer requests that are represented in the real\\-time log data\\. The sampling rate is an integer between 1 and 100, inclusive\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SamplingRate", "type": "number" } }, @@ -25459,9 +31028,13 @@ "additionalProperties": false, "properties": { "KinesisStreamConfig": { - "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig" + "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig", + "markdownDescription": "Contains information about the Amazon Kinesis data stream where you are sending real\\-time log data\\. \n*Required*: Yes \n*Type*: [KinesisStreamConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-realtimelogconfig-kinesisstreamconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KinesisStreamConfig" }, "StreamType": { + "markdownDescription": "The type of data stream where you are sending real\\-time log data\\. The only valid value is `Kinesis`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamType", "type": "string" } }, @@ -25475,9 +31048,13 @@ "additionalProperties": false, "properties": { "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS Identity and Access Management \\(IAM\\) role that CloudFront can use to send real\\-time log data to your Kinesis data stream\\. \nFor more information the IAM role, see [Real\\-time log configuration IAM role](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-iam-role) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "StreamArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Kinesis data stream where you are sending real\\-time log data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamArn", "type": "string" } }, @@ -25523,7 +31100,9 @@ "additionalProperties": false, "properties": { "ResponseHeadersPolicyConfig": { - "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ResponseHeadersPolicyConfig" + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ResponseHeadersPolicyConfig", + "markdownDescription": "A response headers policy configuration\\. \nA response headers policy contains information about a set of HTTP response headers and their values\\. CloudFront adds the headers in the policy to HTTP responses that it sends for requests that match a cache behavior that\u2019s associated with the policy\\. \n*Required*: Yes \n*Type*: [ResponseHeadersPolicyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseHeadersPolicyConfig" } }, "required": [ @@ -25559,6 +31138,8 @@ "items": { "type": "string" }, + "markdownDescription": "The list of HTTP header names\\. You can specify `*` to allow all headers\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Items", "type": "array" } }, @@ -25574,6 +31155,8 @@ "items": { "type": "string" }, + "markdownDescription": "The list of HTTP methods\\. Valid values are: \n+ `GET` \n+ `DELETE` \n+ `HEAD` \n+ `OPTIONS` \n+ `PATCH` \n+ `POST` \n+ `PUT` \n+ `ALL` \n `ALL` is a special value that includes all of the listed HTTP methods\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Items", "type": "array" } }, @@ -25589,6 +31172,8 @@ "items": { "type": "string" }, + "markdownDescription": "The list of origins \\(domain names\\)\\. You can specify `*` to allow all origins\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Items", "type": "array" } }, @@ -25604,6 +31189,8 @@ "items": { "type": "string" }, + "markdownDescription": "The list of HTTP headers\\. You can specify `*` to expose all headers\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Items", "type": "array" } }, @@ -25616,9 +31203,13 @@ "additionalProperties": false, "properties": { "ContentSecurityPolicy": { + "markdownDescription": "The policy directives and their values that CloudFront includes as values for the `Content-Security-Policy` HTTP response header\\. \n*Required*: Yes \n*Type*: [String](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-cloudfront-responseheaderspolicy-contentsecuritypolicy.html#aws-properties-cloudfront-responseheaderspolicy-contentsecuritypolicy) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentSecurityPolicy", "type": "string" }, "Override": { + "markdownDescription": "A Boolean that determines whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Override", "type": "boolean" } }, @@ -25632,6 +31223,8 @@ "additionalProperties": false, "properties": { "Override": { + "markdownDescription": "A Boolean that determines whether CloudFront overrides the `X-Content-Type-Options` HTTP response header received from the origin with the one specified in this response headers policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Override", "type": "boolean" } }, @@ -25644,24 +31237,38 @@ "additionalProperties": false, "properties": { "AccessControlAllowCredentials": { + "markdownDescription": "A Boolean that CloudFront uses as the value for the `Access-Control-Allow-Credentials` HTTP response header\\. \nFor more information about the `Access-Control-Allow-Credentials` HTTP response header, see [Access\\-Control\\-Allow\\-Credentials](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials) in the MDN Web Docs\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessControlAllowCredentials", "type": "boolean" }, "AccessControlAllowHeaders": { - "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowHeaders" + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowHeaders", + "markdownDescription": "A list of HTTP header names that CloudFront includes as values for the `Access-Control-Allow-Headers` HTTP response header\\. \nFor more information about the `Access-Control-Allow-Headers` HTTP response header, see [Access\\-Control\\-Allow\\-Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers) in the MDN Web Docs\\. \n*Required*: Yes \n*Type*: [AccessControlAllowHeaders](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolallowheaders.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessControlAllowHeaders" }, "AccessControlAllowMethods": { - "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowMethods" + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowMethods", + "markdownDescription": "A list of HTTP methods that CloudFront includes as values for the `Access-Control-Allow-Methods` HTTP response header\\. \nFor more information about the `Access-Control-Allow-Methods` HTTP response header, see [Access\\-Control\\-Allow\\-Methods](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods) in the MDN Web Docs\\. \n*Required*: Yes \n*Type*: [AccessControlAllowMethods](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolallowmethods.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessControlAllowMethods" }, "AccessControlAllowOrigins": { - "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowOrigins" + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowOrigins", + "markdownDescription": "A list of origins \\(domain names\\) that CloudFront can use as the value for the `Access-Control-Allow-Origin` HTTP response header\\. \nFor more information about the `Access-Control-Allow-Origin` HTTP response header, see [Access\\-Control\\-Allow\\-Origin](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin) in the MDN Web Docs\\. \n*Required*: Yes \n*Type*: [AccessControlAllowOrigins](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolalloworigins.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessControlAllowOrigins" }, "AccessControlExposeHeaders": { - "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlExposeHeaders" + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlExposeHeaders", + "markdownDescription": "A list of HTTP headers that CloudFront includes as values for the `Access-Control-Expose-Headers` HTTP response header\\. \nFor more information about the `Access-Control-Expose-Headers` HTTP response header, see [Access\\-Control\\-Expose\\-Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers) in the MDN Web Docs\\. \n*Required*: No \n*Type*: [AccessControlExposeHeaders](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolexposeheaders.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessControlExposeHeaders" }, "AccessControlMaxAgeSec": { + "markdownDescription": "A number that CloudFront uses as the value for the `Access-Control-Max-Age` HTTP response header\\. \nFor more information about the `Access-Control-Max-Age` HTTP response header, see [Access\\-Control\\-Max\\-Age](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age) in the MDN Web Docs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessControlMaxAgeSec", "type": "number" }, "OriginOverride": { + "markdownDescription": "A Boolean that determines whether CloudFront overrides HTTP response headers received from the origin with the ones specified in this response headers policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginOverride", "type": "boolean" } }, @@ -25678,12 +31285,18 @@ "additionalProperties": false, "properties": { "Header": { + "markdownDescription": "The HTTP response header name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Header", "type": "string" }, "Override": { + "markdownDescription": "A Boolean that determines whether CloudFront overrides a response header with the same name received from the origin with the header specified here\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Override", "type": "boolean" }, "Value": { + "markdownDescription": "The value for the HTTP response header\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -25701,6 +31314,8 @@ "items": { "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CustomHeader" }, + "markdownDescription": "The list of HTTP response headers and their values\\. \n*Required*: Yes \n*Type*: List of [CustomHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-customheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Items", "type": "array" } }, @@ -25713,9 +31328,13 @@ "additionalProperties": false, "properties": { "FrameOption": { + "markdownDescription": "The value of the `X-Frame-Options` HTTP response header\\. Valid values are `DENY` and `SAMEORIGIN`\\. \nFor more information about these values, see [X\\-Frame\\-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options) in the MDN Web Docs\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DENY | SAMEORIGIN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameOption", "type": "string" }, "Override": { + "markdownDescription": "A Boolean that determines whether CloudFront overrides the `X-Frame-Options` HTTP response header received from the origin with the one specified in this response headers policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Override", "type": "boolean" } }, @@ -25729,9 +31348,13 @@ "additionalProperties": false, "properties": { "Override": { + "markdownDescription": "A Boolean that determines whether CloudFront overrides the `Referrer-Policy` HTTP response header received from the origin with the one specified in this response headers policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Override", "type": "boolean" }, "ReferrerPolicy": { + "markdownDescription": "The value of the `Referrer-Policy` HTTP response header\\. Valid values are: \n+ `no-referrer` \n+ `no-referrer-when-downgrade` \n+ `origin` \n+ `origin-when-cross-origin` \n+ `same-origin` \n+ `strict-origin` \n+ `strict-origin-when-cross-origin` \n+ `unsafe-url` \nFor more information about these values, see [Referrer\\-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy) in the MDN Web Docs\\. \n*Required*: Yes \n*Type*: [String](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-cloudfront-responseheaderspolicy-referrerpolicy.html#aws-properties-cloudfront-responseheaderspolicy-referrerpolicy) \n*Allowed values*: `no-referrer | no-referrer-when-downgrade | origin | origin-when-cross-origin | same-origin | strict-origin | strict-origin-when-cross-origin | unsafe-url` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReferrerPolicy", "type": "string" } }, @@ -25772,22 +31395,32 @@ "additionalProperties": false, "properties": { "Comment": { + "markdownDescription": "A comment to describe the response headers policy\\. \nThe comment cannot be longer than 128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", "type": "string" }, "CorsConfig": { - "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CorsConfig" + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CorsConfig", + "markdownDescription": "A configuration for a set of HTTP response headers that are used for cross\\-origin resource sharing \\(CORS\\)\\. \n*Required*: No \n*Type*: [CorsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-corsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CorsConfig" }, "CustomHeadersConfig": { - "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CustomHeadersConfig" + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CustomHeadersConfig", + "markdownDescription": "A configuration for a set of custom HTTP response headers\\. \n*Required*: No \n*Type*: [CustomHeadersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-customheadersconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomHeadersConfig" }, "Name": { + "markdownDescription": "A name to identify the response headers policy\\. \nThe name must be unique for response headers policies in this AWS account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "RemoveHeadersConfig": { "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.RemoveHeadersConfig" }, "SecurityHeadersConfig": { - "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig" + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig", + "markdownDescription": "A configuration for a set of security\\-related HTTP response headers\\. \n*Required*: No \n*Type*: [SecurityHeadersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-securityheadersconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityHeadersConfig" }, "ServerTimingHeadersConfig": { "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ServerTimingHeadersConfig" @@ -25802,22 +31435,34 @@ "additionalProperties": false, "properties": { "ContentSecurityPolicy": { - "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ContentSecurityPolicy" + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ContentSecurityPolicy", + "markdownDescription": "The policy directives and their values that CloudFront includes as values for the `Content-Security-Policy` HTTP response header\\. \nFor more information about the `Content-Security-Policy` HTTP response header, see [Content\\-Security\\-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy) in the MDN Web Docs\\. \n*Required*: No \n*Type*: [ContentSecurityPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-contentsecuritypolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentSecurityPolicy" }, "ContentTypeOptions": { - "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ContentTypeOptions" + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ContentTypeOptions", + "markdownDescription": "Determines whether CloudFront includes the `X-Content-Type-Options` HTTP response header with its value set to `nosniff`\\. \nFor more information about the `X-Content-Type-Options` HTTP response header, see [X\\-Content\\-Type\\-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options) in the MDN Web Docs\\. \n*Required*: No \n*Type*: [ContentTypeOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-contenttypeoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentTypeOptions" }, "FrameOptions": { - "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.FrameOptions" + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.FrameOptions", + "markdownDescription": "Determines whether CloudFront includes the `X-Frame-Options` HTTP response header and the header\u2019s value\\. \nFor more information about the `X-Frame-Options` HTTP response header, see [X\\-Frame\\-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options) in the MDN Web Docs\\. \n*Required*: No \n*Type*: [FrameOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-frameoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameOptions" }, "ReferrerPolicy": { - "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ReferrerPolicy" + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ReferrerPolicy", + "markdownDescription": "Determines whether CloudFront includes the `Referrer-Policy` HTTP response header and the header\u2019s value\\. \nFor more information about the `Referrer-Policy` HTTP response header, see [Referrer\\-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy) in the MDN Web Docs\\. \n*Required*: No \n*Type*: [ReferrerPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-referrerpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReferrerPolicy" }, "StrictTransportSecurity": { - "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity" + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity", + "markdownDescription": "Determines whether CloudFront includes the `Strict-Transport-Security` HTTP response header and the header\u2019s value\\. \nFor more information about the `Strict-Transport-Security` HTTP response header, see [Strict\\-Transport\\-Security](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security) in the MDN Web Docs\\. \n*Required*: No \n*Type*: [StrictTransportSecurity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-stricttransportsecurity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StrictTransportSecurity" }, "XSSProtection": { - "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.XSSProtection" + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.XSSProtection", + "markdownDescription": "Determines whether CloudFront includes the `X-XSS-Protection` HTTP response header and the header\u2019s value\\. \nFor more information about the `X-XSS-Protection` HTTP response header, see [X\\-XSS\\-Protection](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection) in the MDN Web Docs\\. \n*Required*: No \n*Type*: [XSSProtection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-xssprotection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "XSSProtection" } }, "type": "object" @@ -25841,15 +31486,23 @@ "additionalProperties": false, "properties": { "AccessControlMaxAgeSec": { + "markdownDescription": "A number that CloudFront uses as the value for the `max-age` directive in the `Strict-Transport-Security` HTTP response header\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessControlMaxAgeSec", "type": "number" }, "IncludeSubdomains": { + "markdownDescription": "A Boolean that determines whether CloudFront includes the `includeSubDomains` directive in the `Strict-Transport-Security` HTTP response header\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeSubdomains", "type": "boolean" }, "Override": { + "markdownDescription": "A Boolean that determines whether CloudFront overrides the `Strict-Transport-Security` HTTP response header received from the origin with the one specified in this response headers policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Override", "type": "boolean" }, "Preload": { + "markdownDescription": "A Boolean that determines whether CloudFront includes the `preload` directive in the `Strict-Transport-Security` HTTP response header\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Preload", "type": "boolean" } }, @@ -25863,15 +31516,23 @@ "additionalProperties": false, "properties": { "ModeBlock": { + "markdownDescription": "A Boolean that determines whether CloudFront includes the `mode=block` directive in the `X-XSS-Protection` header\\. \nFor more information about this directive, see [X\\-XSS\\-Protection](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection) in the MDN Web Docs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ModeBlock", "type": "boolean" }, "Override": { + "markdownDescription": "A Boolean that determines whether CloudFront overrides the `X-XSS-Protection` HTTP response header received from the origin with the one specified in this response headers policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Override", "type": "boolean" }, "Protection": { + "markdownDescription": "A Boolean that determines the value of the `X-XSS-Protection` HTTP response header\\. When this setting is `true`, the value of the `X-XSS-Protection` header is `1`\\. When this setting is `false`, the value of the `X-XSS-Protection` header is `0`\\. \nFor more information about these settings, see [X\\-XSS\\-Protection](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection) in the MDN Web Docs\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protection", "type": "boolean" }, "ReportUri": { + "markdownDescription": "A reporting URI, which CloudFront uses as the value of the `report` directive in the `X-XSS-Protection` header\\. \nYou cannot specify a `ReportUri` when `ModeBlock` is `true`\\. \nFor more information about using a reporting URL, see [X\\-XSS\\-Protection](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection) in the MDN Web Docs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReportUri", "type": "string" } }, @@ -25917,12 +31578,16 @@ "additionalProperties": false, "properties": { "StreamingDistributionConfig": { - "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig" + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig", + "markdownDescription": "The current configuration information for the RTMP distribution\\. \n*Required*: Yes \n*Type*: [StreamingDistributionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamingDistributionConfig" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A complex type that contains zero or more `Tag` elements\\. \n*Required*: Yes \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -25957,12 +31622,18 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The Amazon S3 bucket to store the access logs in, for example, `myawslogbucket.s3.amazonaws.com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", "type": "string" }, "Enabled": { + "markdownDescription": "Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket\\. If you don't want to enable logging when you create a streaming distribution or if you want to disable logging for an existing streaming distribution, specify `false` for `Enabled`, and specify `empty Bucket` and `Prefix` elements\\. If you specify `false` for `Enabled` but you specify values for `Bucket` and `Prefix`, the values are automatically deleted\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "Prefix": { + "markdownDescription": "An optional string that you want CloudFront to prefix to the access log filenames for this streaming distribution, for example, `myprefix/`\\. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty `Prefix` element in the `Logging` element\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" } }, @@ -25977,9 +31648,13 @@ "additionalProperties": false, "properties": { "DomainName": { + "markdownDescription": "The DNS name of the Amazon S3 origin\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainName", "type": "string" }, "OriginAccessIdentity": { + "markdownDescription": "The CloudFront origin access identity to associate with the distribution\\. Use an origin access identity to configure the distribution so that end users can only access objects in an Amazon S3 bucket through CloudFront\\. \nIf you want end users to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty `OriginAccessIdentity` element\\. \nTo delete the origin access identity from an existing distribution, update the distribution configuration and include an empty `OriginAccessIdentity` element\\. \nTo replace the origin access identity, update the distribution configuration and specify the new origin access identity\\. \nFor more information, see [Using an Origin Access Identity to Restrict Access to Your Amazon S3 Content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) in the * Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginAccessIdentity", "type": "string" } }, @@ -25996,25 +31671,39 @@ "items": { "type": "string" }, + "markdownDescription": "A complex type that contains information about CNAMEs \\(alternate domain names\\), if any, for this streaming distribution\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Aliases", "type": "array" }, "Comment": { + "markdownDescription": "Any comments you want to include about the streaming distribution\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", "type": "string" }, "Enabled": { + "markdownDescription": "Whether the streaming distribution is enabled to accept user requests for content\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "Logging": { - "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.Logging" + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.Logging", + "markdownDescription": "A complex type that controls whether access logs are written for the streaming distribution\\. \n*Required*: No \n*Type*: [Logging](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-logging.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Logging" }, "PriceClass": { + "markdownDescription": "A complex type that contains information about price class for this streaming distribution\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PriceClass_100 | PriceClass_200 | PriceClass_All` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PriceClass", "type": "string" }, "S3Origin": { - "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.S3Origin" + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.S3Origin", + "markdownDescription": "A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution\\. \n*Required*: Yes \n*Type*: [S3Origin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-s3origin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Origin" }, "TrustedSigners": { - "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.TrustedSigners" + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.TrustedSigners", + "markdownDescription": "A complex type that specifies any AWS accounts that you want to permit to create signed URLs for private content\\. If you want the distribution to use signed URLs, include this element; if you want the distribution to use public URLs, remove this element\\. For more information, see [Serving Private Content through CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: [TrustedSigners](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-trustedsigners.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrustedSigners" } }, "required": [ @@ -26032,9 +31721,13 @@ "items": { "type": "string" }, + "markdownDescription": "An AWS account number that contains active CloudFront key pairs that CloudFront can use to verify the signatures of signed URLs and signed cookies\\. If the AWS account that owns the key pairs is the same account that owns the CloudFront distribution, the value of this field is `self`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsAccountNumbers", "type": "array" }, "Enabled": { + "markdownDescription": "This field is `true` if any of the AWS accounts have public keys that CloudFront can use to verify the signatures of signed URLs and signed cookies\\. If not, this field is `false`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -26043,7 +31736,7 @@ ], "type": "object" }, - "AWS::CloudTrail::EventDataStore": { + "AWS::CloudTrail::Channel": { "additionalProperties": false, "properties": { "Condition": { @@ -26078,42 +31771,30 @@ "Properties": { "additionalProperties": false, "properties": { - "AdvancedEventSelectors": { + "Destinations": { "items": { - "$ref": "#/definitions/AWS::CloudTrail::EventDataStore.AdvancedEventSelector" + "$ref": "#/definitions/AWS::CloudTrail::Channel.Destination" }, "type": "array" }, - "KmsKeyId": { - "type": "string" - }, - "MultiRegionEnabled": { - "type": "boolean" - }, "Name": { "type": "string" }, - "OrganizationEnabled": { - "type": "boolean" - }, - "RetentionPeriod": { - "type": "number" + "Source": { + "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "TerminationProtectionEnabled": { - "type": "boolean" } }, "type": "object" }, "Type": { "enum": [ - "AWS::CloudTrail::EventDataStore" + "AWS::CloudTrail::Channel" ], "type": "string" }, @@ -26131,73 +31812,246 @@ ], "type": "object" }, - "AWS::CloudTrail::EventDataStore.AdvancedEventSelector": { + "AWS::CloudTrail::Channel.Destination": { "additionalProperties": false, "properties": { - "FieldSelectors": { - "items": { - "$ref": "#/definitions/AWS::CloudTrail::EventDataStore.AdvancedFieldSelector" - }, - "type": "array" - }, - "Name": { + "Location": { "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": { "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" + "Location", + "Type" ], "type": "object" }, - "AWS::CloudTrail::Trail": { + "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::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": { + "ResourceArn": { + "type": "string" + }, + "ResourcePolicy": { + "type": "object" + } + }, + "required": [ + "ResourceArn", + "ResourcePolicy" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudTrail::ResourcePolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudTrail::Trail": { "additionalProperties": false, "properties": { "Condition": { @@ -26233,57 +32087,87 @@ "additionalProperties": false, "properties": { "CloudWatchLogsLogGroupArn": { + "markdownDescription": "Specifies a log group name using an Amazon Resource Name \\(ARN\\), a unique identifier that represents the log group to which CloudTrail logs are delivered\\. Not required unless you specify `CloudWatchLogsRoleArn`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogsLogGroupArn", "type": "string" }, "CloudWatchLogsRoleArn": { + "markdownDescription": "Specifies the role for the CloudWatch Logs endpoint to assume to write to a user's log group\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogsRoleArn", "type": "string" }, "EnableLogFileValidation": { + "markdownDescription": "Specifies whether log file validation is enabled\\. The default is false\\. \nWhen you disable log file integrity validation, the chain of digest files is broken after one hour\\. CloudTrail does not create digest files for log files that were delivered during a period in which log file integrity validation was disabled\\. For example, if you enable log file integrity validation at noon on January 1, disable it at noon on January 2, and re\\-enable it at noon on January 10, digest files will not be created for the log files delivered from noon on January 2 to noon on January 10\\. The same applies whenever you stop CloudTrail logging or delete a trail\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableLogFileValidation", "type": "boolean" }, "EventSelectors": { "items": { "$ref": "#/definitions/AWS::CloudTrail::Trail.EventSelector" }, + "markdownDescription": "Use event selectors to further specify the management and data event settings for your trail\\. By default, trails created without specific event selectors will be configured to log all read and write management events, and no data events\\. When an event occurs in your account, CloudTrail evaluates the event selector for all trails\\. For each trail, if the event matches any event selector, the trail processes and logs the event\\. If the event doesn't match any event selector, the trail doesn't log the event\\. \nYou can configure up to five event selectors for a trail\\. \nYou cannot apply both event selectors and advanced event selectors to a trail\\. \n*Required*: No \n*Type*: List of [EventSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-eventselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventSelectors", "type": "array" }, "IncludeGlobalServiceEvents": { + "markdownDescription": "Specifies whether the trail is publishing events from global services such as IAM to the log files\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeGlobalServiceEvents", "type": "boolean" }, "InsightSelectors": { "items": { "$ref": "#/definitions/AWS::CloudTrail::Trail.InsightSelector" }, + "markdownDescription": "Specifies whether a trail has insight types specified in an `InsightSelector` list\\. \n*Required*: No \n*Type*: List of [InsightSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-insightselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InsightSelectors", "type": "array" }, "IsLogging": { + "markdownDescription": "Whether the CloudTrail trail is currently logging AWS API calls\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsLogging", "type": "boolean" }, "IsMultiRegionTrail": { + "markdownDescription": "Specifies whether the trail applies only to the current region or to all regions\\. The default is false\\. If the trail exists only in the current region and this value is set to true, shadow trails \\(replications of the trail\\) will be created in the other regions\\. If the trail exists in all regions and this value is set to false, the trail will remain in the region where it was created, and its shadow trails in other regions will be deleted\\. As a best practice, consider using trails that log events in all regions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsMultiRegionTrail", "type": "boolean" }, "IsOrganizationTrail": { + "markdownDescription": "Specifies whether the trail is created for all accounts in an organization in AWS Organizations, or only for the current AWS account\\. The default is false, and cannot be true unless the call is made on behalf of an AWS account that is the management account for an organization in AWS Organizations\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsOrganizationTrail", "type": "boolean" }, "KMSKeyId": { + "markdownDescription": "Specifies the AWS KMS key ID to use to encrypt the logs delivered by CloudTrail\\. The value can be an alias name prefixed by \"alias/\", a fully specified ARN to an alias, a fully specified ARN to a key, or a globally unique identifier\\. \nCloudTrail also supports AWS KMS multi\\-Region keys\\. For more information about multi\\-Region keys, see [Using multi\\-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in the * AWS Key Management Service Developer Guide*\\. \nExamples: \n+ alias/MyAliasName\n+ arn:aws:kms:us\\-east\\-2:123456789012:alias/MyAliasName\n+ arn:aws:kms:us\\-east\\-2:123456789012:key/12345678\\-1234\\-1234\\-1234\\-123456789012\n+ 12345678\\-1234\\-1234\\-1234\\-123456789012\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KMSKeyId", "type": "string" }, "S3BucketName": { + "markdownDescription": "Specifies the name of the Amazon S3 bucket designated for publishing log files\\. See [Amazon S3 Bucket Naming Requirements](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create_trail_naming_policy.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketName", "type": "string" }, "S3KeyPrefix": { + "markdownDescription": "Specifies the Amazon S3 key prefix that comes after the name of the bucket you have designated for log file delivery\\. For more information, see [Finding Your CloudTrail Log Files](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html)\\. The maximum length is 200 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3KeyPrefix", "type": "string" }, "SnsTopicName": { + "markdownDescription": "Specifies the name of the Amazon SNS topic defined for notification of log file delivery\\. The maximum length is 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsTopicName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A custom set of tags \\(key\\-value pairs\\) for this trail\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TrailName": { + "markdownDescription": "Specifies the name of the trail\\. The name must meet the following requirements: \n+ Contain only ASCII letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), periods \\(\\.\\), underscores \\(\\_\\), or dashes \\(\\-\\)\n+ Start with a letter or number, and end with a letter or number\n+ Be between 3 and 128 characters\n+ Have no adjacent periods, underscores or dashes\\. Names like `my-_namespace` and `my--namespace` are not valid\\.\n+ Not be in IP address format \\(for example, 192\\.168\\.5\\.4\\)\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TrailName", "type": "string" } }, @@ -26318,12 +32202,16 @@ "additionalProperties": false, "properties": { "Type": { + "markdownDescription": "The resource type in which you want to log data events\\. You can specify the following *basic* event selector resource types: \n+ `AWS::S3::Object` \n+ `AWS::Lambda::Function` \n+ `AWS::DynamoDB::Table` \nThe following resource types are also availble through *advanced* event selectors\\. Basic event selector resource types are valid in advanced event selectors, but advanced event selector resource types are not valid in basic event selectors\\. For more information, see [AdvancedFieldSelector:Field](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html#awscloudtrail-Type-AdvancedFieldSelector-Field)\\. \n+ `AWS::S3Outposts::Object` \n+ `AWS::ManagedBlockchain::Node` \n+ `AWS::S3ObjectLambda::AccessPoint` \n+ `AWS::EC2::Snapshot` \n+ `AWS::S3::AccessPoint` \n+ `AWS::DynamoDB::Stream` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "An array of Amazon Resource Name \\(ARN\\) strings or partial ARN strings for the specified objects\\. \n+ To log data events for all objects in all S3 buckets in your AWS account, specify the prefix as `arn:aws:s3:::`\\.\n**Note** \nThis also enables logging of data event activity performed by any user or role in your AWS account, even if that activity is performed on a bucket that belongs to another AWS account\\.\n+ To log data events for all objects in an S3 bucket, specify the bucket and an empty object prefix such as `arn:aws:s3:::bucket-1/`\\. The trail logs data events for all objects in this S3 bucket\\.\n+ To log data events for specific objects, specify the S3 bucket and object prefix such as `arn:aws:s3:::bucket-1/example-images`\\. The trail logs data events for objects in this S3 bucket that match the prefix\\.\n+ To log data events for all Lambda functions in your AWS account, specify the prefix as `arn:aws:lambda`\\.\n**Note** \nThis also enables logging of `Invoke` activity performed by any user or role in your AWS account, even if that activity is performed on a function that belongs to another AWS account\\. \n+ To log data events for a specific Lambda function, specify the function ARN\\.\n**Note** \nLambda function ARNs are exact\\. For example, if you specify a function ARN *arn:aws:lambda:us\\-west\\-2:111111111111:function:helloworld*, data events will only be logged for *arn:aws:lambda:us\\-west\\-2:111111111111:function:helloworld*\\. They will not be logged for *arn:aws:lambda:us\\-west\\-2:111111111111:function:helloworld2*\\.\n+ To log data events for all DynamoDB tables in your AWS account, specify the prefix as `arn:aws:dynamodb`\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -26339,18 +32227,26 @@ "items": { "$ref": "#/definitions/AWS::CloudTrail::Trail.DataResource" }, + "markdownDescription": "CloudTrail supports data event logging for Amazon S3 objects and AWS Lambda functions\\. You can specify up to 250 resources for an individual event selector, but the total number of data resources cannot exceed 250 across all event selectors in a trail\\. This limit does not apply if you configure resource logging for all data events\\. \nFor more information, see [Data Events](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html#logging-data-events) and [Limits in AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html) in the *AWS CloudTrail User Guide*\\. \n*Required*: Conditional \n*Type*: List of [DataResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-dataresource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataResources", "type": "array" }, "ExcludeManagementEventSources": { "items": { "type": "string" }, + "markdownDescription": "An optional list of service event sources from which you do not want management events to be logged on your trail\\. In this release, the list can be empty \\(disables the filter\\), or it can filter out AWS Key Management Service or Amazon RDS Data API events by containing `kms.amazonaws.com` or `rdsdata.amazonaws.com`\\. By default, `ExcludeManagementEventSources` is empty, and AWS KMS and Amazon RDS Data API events are logged to your trail\\. You can exclude management event sources only in regions that support the event source\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludeManagementEventSources", "type": "array" }, "IncludeManagementEvents": { + "markdownDescription": "Specify if you want your event selector to include management events for your trail\\. \n For more information, see [Management Events](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html#logging-management-events) in the * AWS CloudTrail User Guide*\\. \nBy default, the value is `true`\\. \nThe first copy of management events is free\\. You are charged for additional copies of management events that you are logging on any subsequent trail in the same region\\. For more information about CloudTrail pricing, see [AWS CloudTrail Pricing](http://aws.amazon.com/cloudtrail/pricing/)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeManagementEvents", "type": "boolean" }, "ReadWriteType": { + "markdownDescription": "Specify if you want your trail to log read\\-only events, write\\-only events, or all\\. For example, the EC2 `GetConsoleOutput` is a read\\-only API operation and `RunInstances` is a write\\-only API operation\\. \n By default, the value is `All`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `All | ReadOnly | WriteOnly` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadWriteType", "type": "string" } }, @@ -26360,6 +32256,8 @@ "additionalProperties": false, "properties": { "InsightType": { + "markdownDescription": "The type of insights to log on a trail\\. `ApiCallRateInsight` and `ApiErrorRateInsight` are valid insight types\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ApiCallRateInsight | ApiErrorRateInsight` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InsightType", "type": "string" } }, @@ -26401,81 +32299,123 @@ "additionalProperties": false, "properties": { "ActionsEnabled": { + "markdownDescription": "Indicates whether actions should be executed during any changes to the alarm state\\. The default is TRUE\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionsEnabled", "type": "boolean" }, "AlarmActions": { "items": { "type": "string" }, + "markdownDescription": "The list of actions to execute when this alarm transitions into an ALARM state from any other state\\. Specify each action as an Amazon Resource Name \\(ARN\\)\\. For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *Amazon CloudWatch API Reference*\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmActions", "type": "array" }, "AlarmDescription": { + "markdownDescription": "The description of the alarm\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmDescription", "type": "string" }, "AlarmName": { + "markdownDescription": "The name of the alarm\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the alarm name\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AlarmName", "type": "string" }, "ComparisonOperator": { + "markdownDescription": "The arithmetic operation to use when comparing the specified statistic and threshold\\. The specified statistic value is used as the first operand\\. \nYou can specify the following values: `GreaterThanThreshold`, `GreaterThanOrEqualToThreshold`, `LessThanThreshold`, or `LessThanOrEqualToThreshold`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GreaterThanOrEqualToThreshold | GreaterThanThreshold | GreaterThanUpperThreshold | LessThanLowerOrGreaterThanUpperThreshold | LessThanLowerThreshold | LessThanOrEqualToThreshold | LessThanThreshold` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComparisonOperator", "type": "string" }, "DatapointsToAlarm": { + "markdownDescription": "The number of datapoints that must be breaching to trigger the alarm\\. This is used only if you are setting an \"M out of N\" alarm\\. In that case, this value is the M, and the value that you set for `EvaluationPeriods` is the N value\\. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *Amazon CloudWatch User Guide*\\. \nIf you omit this parameter, CloudWatch uses the same value here that you set for `EvaluationPeriods`, and the alarm goes to alarm state if that many consecutive periods are breaching\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatapointsToAlarm", "type": "number" }, "Dimensions": { "items": { "$ref": "#/definitions/AWS::CloudWatch::Alarm.Dimension" }, + "markdownDescription": "The dimensions for the metric associated with the alarm\\. For an alarm based on a math expression, you can't specify `Dimensions`\\. Instead, you use `Metrics`\\. \n*Required*: No \n*Type*: List of [Dimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-dimension.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", "type": "array" }, "EvaluateLowSampleCountPercentile": { + "markdownDescription": "Used only for alarms based on percentiles\\. If `ignore`, the alarm state does not change during periods with too few data points to be statistically significant\\. If `evaluate` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EvaluateLowSampleCountPercentile", "type": "string" }, "EvaluationPeriods": { + "markdownDescription": "The number of periods over which data is compared to the specified threshold\\. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number\\. If you are setting an \"M out of N\" alarm, this value is the N, and `DatapointsToAlarm` is the M\\. \nFor more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *Amazon CloudWatch User Guide*\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EvaluationPeriods", "type": "number" }, "ExtendedStatistic": { + "markdownDescription": "The percentile statistic for the metric associated with the alarm\\. Specify a value between p0\\.0 and p100\\. \nFor an alarm based on a metric, you must specify either `Statistic` or `ExtendedStatistic` but not both\\. \nFor an alarm based on a math expression, you can't specify `ExtendedStatistic`\\. Instead, you use `Metrics`\\. \n*Required*: No \n*Type*: String \n*Pattern*: `p(\\d{1,2}(\\.\\d{0,2})?|100)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExtendedStatistic", "type": "string" }, "InsufficientDataActions": { "items": { "type": "string" }, + "markdownDescription": "The actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state\\. Each action is specified as an Amazon Resource Name \\(ARN\\)\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InsufficientDataActions", "type": "array" }, "MetricName": { + "markdownDescription": "The name of the metric associated with the alarm\\. This is required for an alarm based on a metric\\. For an alarm based on a math expression, you use `Metrics` instead and you can't specify `MetricName`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", "type": "string" }, "Metrics": { "items": { "$ref": "#/definitions/AWS::CloudWatch::Alarm.MetricDataQuery" }, + "markdownDescription": "An array that enables you to create an alarm based on the result of a metric math expression\\. Each item in the array either retrieves a metric or performs a math expression\\. \nIf you specify the `Metrics` parameter, you cannot specify `MetricName`, `Dimensions`, `Period`, `Namespace`, `Statistic`, `ExtendedStatistic`, or `Unit`\\. \n*Required*: No \n*Type*: List of [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metrics", "type": "array" }, "Namespace": { + "markdownDescription": "The namespace of the metric associated with the alarm\\. This is required for an alarm based on a metric\\. For an alarm based on a math expression, you can't specify `Namespace` and you use `Metrics` instead\\. \nFor a list of namespaces for metrics from AWS services, see [AWS Services That Publish CloudWatchMetrics\\. ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[^:].*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", "type": "string" }, "OKActions": { "items": { "type": "string" }, + "markdownDescription": "The actions to execute when this alarm transitions to the `OK` state from any other state\\. Each action is specified as an Amazon Resource Name \\(ARN\\)\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OKActions", "type": "array" }, "Period": { + "markdownDescription": "The period, in seconds, over which the statistic is applied\\. This is required for an alarm based on a metric\\. Valid values are 10, 30, 60, and any multiple of 60\\. \nFor an alarm based on a math expression, you can't specify `Period`, and instead you use the `Metrics` parameter\\. \n*Minimum:* 10 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Period", "type": "number" }, "Statistic": { + "markdownDescription": "The statistic for the metric associated with the alarm, other than percentile\\. For percentile statistics, use `ExtendedStatistic`\\. \nFor an alarm based on a metric, you must specify either `Statistic` or `ExtendedStatistic` but not both\\. \nFor an alarm based on a math expression, you can't specify `Statistic`\\. Instead, you use `Metrics`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Average | Maximum | Minimum | SampleCount | Sum` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statistic", "type": "string" }, "Threshold": { + "markdownDescription": "The value to compare with the specified statistic\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Threshold", "type": "number" }, "ThresholdMetricId": { + "markdownDescription": "In an alarm based on an anomaly detection model, this is the ID of the `ANOMALY_DETECTION_BAND` function used as the threshold for the alarm\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThresholdMetricId", "type": "string" }, "TreatMissingData": { + "markdownDescription": "Sets how this alarm is to handle missing data points\\. Valid values are `breaching`, `notBreaching`, `ignore`, and `missing`\\. For more information, see [ Configuring How CloudWatchAlarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon CloudWatchUser Guide*\\. \nIf you omit this parameter, the default behavior of `missing` is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TreatMissingData", "type": "string" }, "Unit": { + "markdownDescription": "The unit of the metric associated with the alarm\\. Specify this only if you are creating an alarm based on a single metric\\. Do not specify this if you are specifying a `Metrics` array\\. \n You can specify the following values: Seconds, Microseconds, Milliseconds, Bytes, Kilobytes, Megabytes, Gigabytes, Terabytes, Bits, Kilobits, Megabits, Gigabits, Terabits, Percent, Count, Bytes/Second, Kilobytes/Second, Megabytes/Second, Gigabytes/Second, Terabytes/Second, Bits/Second, Kilobits/Second, Megabits/Second, Gigabits/Second, Terabits/Second, Count/Second, or None\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Bits | Bits/Second | Bytes | Bytes/Second | Count | Count/Second | Gigabits | Gigabits/Second | Gigabytes | Gigabytes/Second | Kilobits | Kilobits/Second | Kilobytes | Kilobytes/Second | Megabits | Megabits/Second | Megabytes | Megabytes/Second | Microseconds | Milliseconds | None | Percent | Seconds | Terabits | Terabits/Second | Terabytes | Terabytes/Second` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", "type": "string" } }, @@ -26510,9 +32450,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the dimension, from 1\u2013255 characters in length\\. This dimension name must have been included when the metric was published\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "The value for the dimension, from 1\u2013255 characters in length\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -26529,12 +32473,18 @@ "items": { "$ref": "#/definitions/AWS::CloudWatch::Alarm.Dimension" }, + "markdownDescription": "The metric dimensions that you want to be used for the metric that the alarm will watch\\.\\. \n*Required*: No \n*Type*: List of [Dimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-dimension.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", "type": "array" }, "MetricName": { + "markdownDescription": "The name of the metric that you want the alarm to watch\\. This is a required field\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", "type": "string" }, "Namespace": { + "markdownDescription": "The namespace of the metric that the alarm will watch\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[^:].*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", "type": "string" } }, @@ -26544,24 +32494,38 @@ "additionalProperties": false, "properties": { "AccountId": { + "markdownDescription": "The ID of the account where the metrics are located, if this is a cross\\-account alarm\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountId", "type": "string" }, "Expression": { + "markdownDescription": "The math expression to be performed on the returned data, if this object is performing a math expression\\. This expression can use the `Id` of the other metrics to refer to those metrics, and can also use the `Id` of other expressions to use the result of those expressions\\. For more information about metric math expressions, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *Amazon CloudWatch User Guide*\\. \nWithin each MetricDataQuery object, you must specify either `Expression` or `MetricStat` but not both\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Expression", "type": "string" }, "Id": { + "markdownDescription": "A short name used to tie this object to the results in the response\\. This name must be unique within a single call to `GetMetricData`\\. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression\\. The valid characters are letters, numbers, and underscore\\. The first character must be a lowercase letter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "Label": { + "markdownDescription": "A human\\-readable label for this metric or expression\\. This is especially useful if this is an expression, so that you know what the value represents\\. If the metric or expression is shown in a CloudWatch dashboard widget, the label is shown\\. If `Label` is omitted, CloudWatch generates a default\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Label", "type": "string" }, "MetricStat": { - "$ref": "#/definitions/AWS::CloudWatch::Alarm.MetricStat" + "$ref": "#/definitions/AWS::CloudWatch::Alarm.MetricStat", + "markdownDescription": "The metric to be returned, along with statistics, period, and units\\. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data\\. \nWithin one MetricDataQuery object, you must specify either `Expression` or `MetricStat` but not both\\. \n*Required*: No \n*Type*: [MetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricStat" }, "Period": { + "markdownDescription": "The granularity, in seconds, of the returned data points\\. For metrics with regular resolution, a period can be as short as one minute \\(60 seconds\\) and must be a multiple of 60\\. For high\\-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60\\. High\\-resolution metrics are those metrics stored by a `PutMetricData` operation that includes a `StorageResolution of 1 second`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Period", "type": "number" }, "ReturnData": { + "markdownDescription": "This option indicates whether to return the timestamps and raw data values of this metric\\. \nWhen you create an alarm based on a metric math expression, specify `True` for this value for only the one math expression that the alarm is based on\\. You must specify `False` for `ReturnData` for all the other metrics and expressions used in the alarm\\. \nThis field is required\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReturnData", "type": "boolean" } }, @@ -26574,15 +32538,23 @@ "additionalProperties": false, "properties": { "Metric": { - "$ref": "#/definitions/AWS::CloudWatch::Alarm.Metric" + "$ref": "#/definitions/AWS::CloudWatch::Alarm.Metric", + "markdownDescription": "The metric to return, including the metric name, namespace, and dimensions\\. \n*Required*: Yes \n*Type*: [Metric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metric" }, "Period": { + "markdownDescription": "The granularity, in seconds, of the returned data points\\. For metrics with regular resolution, a period can be as short as one minute \\(60 seconds\\) and must be a multiple of 60\\. For high\\-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60\\. High\\-resolution metrics are those metrics stored by a `PutMetricData` call that includes a `StorageResolution` of 1 second\\. \nIf the `StartTime` parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: \n+ Start time between 3 hours and 15 days ago \\- Use a multiple of 60 seconds \\(1 minute\\)\\.\n+ Start time between 15 and 63 days ago \\- Use a multiple of 300 seconds \\(5 minutes\\)\\.\n+ Start time greater than 63 days ago \\- Use a multiple of 3600 seconds \\(1 hour\\)\\.\n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Period", "type": "number" }, "Stat": { + "markdownDescription": "The statistic to return\\. It can include any CloudWatch statistic or extended statistic\\. For a list of valid values, see the table in [ Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *Amazon CloudWatch User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Stat", "type": "string" }, "Unit": { + "markdownDescription": "The unit to use for the returned data points\\. \nValid values are: Seconds, Microseconds, Milliseconds, Bytes, Kilobytes, Megabytes, Gigabytes, Terabytes, Bits, Kilobits, Megabits, Gigabits, Terabits, Percent, Count, Bytes/Second, Kilobytes/Second, Megabytes/Second, Gigabytes/Second, Terabytes/Second, Bits/Second, Kilobits/Second, Megabits/Second, Gigabits/Second, Terabits/Second, Count/Second, or None\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Bits | Bits/Second | Bytes | Bytes/Second | Count | Count/Second | Gigabits | Gigabits/Second | Gigabytes | Gigabytes/Second | Kilobits | Kilobits/Second | Kilobytes | Kilobytes/Second | Megabits | Megabits/Second | Megabytes | Megabytes/Second | Microseconds | Milliseconds | None | Percent | Seconds | Terabits | Terabits/Second | Terabytes | Terabytes/Second` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", "type": "string" } }, @@ -26629,27 +32601,41 @@ "additionalProperties": false, "properties": { "Configuration": { - "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Configuration" + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Configuration", + "markdownDescription": "Specifies details about how the anomaly detection model is to be trained, including time ranges to exclude when training and updating the model\\. The configuration can also include the time zone to use for the metric\\. \n*Required*: No \n*Type*: [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-configuration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configuration" }, "Dimensions": { "items": { "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Dimension" }, + "markdownDescription": "The dimensions of the metric associated with the anomaly detection band\\. \n*Required*: No \n*Type*: List of [Dimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-dimension.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Dimensions", "type": "array" }, "MetricMathAnomalyDetector": { - "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.MetricMathAnomalyDetector" + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.MetricMathAnomalyDetector", + "markdownDescription": "The CloudWatch metric math expression for this anomaly detector\\. \n*Required*: No \n*Type*: [MetricMathAnomalyDetector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricmathanomalydetector.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricMathAnomalyDetector" }, "MetricName": { + "markdownDescription": "The name of the metric associated with the anomaly detection band\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricName", "type": "string" }, "Namespace": { + "markdownDescription": "The namespace of the metric associated with the anomaly detection band\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Namespace", "type": "string" }, "SingleMetricAnomalyDetector": { - "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.SingleMetricAnomalyDetector" + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.SingleMetricAnomalyDetector", + "markdownDescription": "The CloudWatch metric and statistic for this anomaly detector\\. \n*Required*: No \n*Type*: [SingleMetricAnomalyDetector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-singlemetricanomalydetector.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SingleMetricAnomalyDetector" }, "Stat": { + "markdownDescription": "The statistic of the metric associated with the anomaly detection band\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Stat", "type": "string" } }, @@ -26682,9 +32668,13 @@ "items": { "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Range" }, + "markdownDescription": "Specifies an array of time ranges to exclude from use when the anomaly detection model is trained and updated\\. Use this to make sure that events that could cause unusual values for the metric, such as deployments, aren't used when CloudWatch creates or updates the model\\. \n*Required*: No \n*Type*: List of [Range](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-range.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludedTimeRanges", "type": "array" }, "MetricTimeZone": { + "markdownDescription": "The time zone to use for the metric\\. This is useful to enable the model to automatically account for daylight savings time changes if the metric is sensitive to such time changes\\. \nTo specify a time zone, use the name of the time zone as specified in the standard tz database\\. For more information, see [tz database](https://en.wikipedia.org/wiki/Tz_database)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricTimeZone", "type": "string" } }, @@ -26694,9 +32684,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "The value of the dimension\\. Dimension values must contain only ASCII characters and must include at least one non\\-whitespace character\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", "type": "string" } }, @@ -26713,12 +32707,18 @@ "items": { "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Dimension" }, + "markdownDescription": "The dimensions for the metric\\. \n*Required*: No \n*Type*: List of [Dimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-dimension.html) \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Dimensions", "type": "array" }, "MetricName": { + "markdownDescription": "The name of the metric\\. This is a required field\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricName", "type": "string" }, "Namespace": { + "markdownDescription": "The namespace of the metric\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[^:].*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Namespace", "type": "string" } }, @@ -26737,24 +32737,38 @@ "additionalProperties": false, "properties": { "AccountId": { + "markdownDescription": "The ID of the account where the metrics are located, if this is a cross\\-account alarm\\. \nUse this field only for `PutMetricAlarm` operations\\. It is not used in `GetMetricData` operations\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccountId", "type": "string" }, "Expression": { + "markdownDescription": "This field can contain either a Metrics Insights query, or a metric math expression to be performed on the returned data\\. For more information about Metrics Insights queries, see [Metrics Insights query components and syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-metrics-insights-querylanguage) in the *Amazon CloudWatch User Guide*\\. \nA math expression can use the `Id` of the other metrics or queries to refer to those metrics, and can also use the `Id` of other expressions to use the result of those expressions\\. For more information about metric math expressions, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *Amazon CloudWatch User Guide*\\. \nWithin each MetricDataQuery object, you must specify either `Expression` or `MetricStat` but not both\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Expression", "type": "string" }, "Id": { + "markdownDescription": "A short name used to tie this object to the results in the response\\. This name must be unique within a single call to `GetMetricData`\\. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression\\. The valid characters are letters, numbers, and underscore\\. The first character must be a lowercase letter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "string" }, "Label": { + "markdownDescription": "A human\\-readable label for this metric or expression\\. This is especially useful if this is an expression, so that you know what the value represents\\. If the metric or expression is shown in a CloudWatch dashboard widget, the label is shown\\. If Label is omitted, CloudWatch generates a default\\. \nYou can put dynamic expressions into a label, so that it is more descriptive\\. For more information, see [Using Dynamic Labels](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph-dynamic-labels.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Label", "type": "string" }, "MetricStat": { - "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.MetricStat" + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.MetricStat", + "markdownDescription": "The metric to be returned, along with statistics, period, and units\\. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data\\. \nWithin one MetricDataQuery object, you must specify either `Expression` or `MetricStat` but not both\\. \n*Required*: No \n*Type*: [MetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricstat.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricStat" }, "Period": { + "markdownDescription": "The granularity, in seconds, of the returned data points\\. For metrics with regular resolution, a period can be as short as one minute \\(60 seconds\\) and must be a multiple of 60\\. For high\\-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60\\. High\\-resolution metrics are those metrics stored by a `PutMetricData` operation that includes a `StorageResolution of 1 second`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Period", "type": "number" }, "ReturnData": { + "markdownDescription": "When used in `GetMetricData`, this option indicates whether to return the timestamps and raw data values of this metric\\. If you are performing this call just to do math expressions and do not also need the raw data returned, you can specify `False`\\. If you omit this, the default of `True` is used\\. \nWhen used in `PutMetricAlarm`, specify `True` for the one expression result to use as the alarm\\. For all other metrics and expressions in the same `PutMetricAlarm` operation, specify `ReturnData` as False\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReturnData", "type": "boolean" } }, @@ -26770,6 +32784,8 @@ "items": { "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.MetricDataQuery" }, + "markdownDescription": "An array of metric data query structures that enables you to create an anomaly detector based on the result of a metric math expression\\. Each item in `MetricDataQueries` gets a metric or performs a math expression\\. One item in `MetricDataQueries` is the expression that provides the time series that the anomaly detector uses as input\\. Designate the expression by setting `ReturnData` to `True` for this object in the array\\. For all other expressions and metrics, set `ReturnData` to `False`\\. The designated expression must return a single time series\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataqueries.html) of [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataquery.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricDataQueries", "type": "array" } }, @@ -26779,15 +32795,23 @@ "additionalProperties": false, "properties": { "Metric": { - "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Metric" + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Metric", + "markdownDescription": "The metric to return, including the metric name, namespace, and dimensions\\. \n*Required*: Yes \n*Type*: [Metric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metric.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Metric" }, "Period": { + "markdownDescription": "The granularity, in seconds, of the returned data points\\. For metrics with regular resolution, a period can be as short as one minute \\(60 seconds\\) and must be a multiple of 60\\. For high\\-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60\\. High\\-resolution metrics are those metrics stored by a `PutMetricData` call that includes a `StorageResolution` of 1 second\\. \nIf the `StartTime` parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: \n+ Start time between 3 hours and 15 days ago \\- Use a multiple of 60 seconds \\(1 minute\\)\\.\n+ Start time between 15 and 63 days ago \\- Use a multiple of 300 seconds \\(5 minutes\\)\\.\n+ Start time greater than 63 days ago \\- Use a multiple of 3600 seconds \\(1 hour\\)\\.\n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Period", "type": "number" }, "Stat": { + "markdownDescription": "The statistic to return\\. It can include any CloudWatch statistic or extended statistic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Stat", "type": "string" }, "Unit": { + "markdownDescription": "When you are using a `Put` operation, this defines what unit you want to use when storing the metric\\. \nIn a `Get` operation, if you omit `Unit` then all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch\\. If you specify a unit, the operation returns only data that was collected with that unit specified\\. If you specify a unit that does not match the data collected, the results of the operation are null\\. CloudWatch does not perform unit conversions\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Bits | Bits/Second | Bytes | Bytes/Second | Count | Count/Second | Gigabits | Gigabits/Second | Gigabytes | Gigabytes/Second | Kilobits | Kilobits/Second | Kilobytes | Kilobytes/Second | Megabits | Megabits/Second | Megabytes | Megabytes/Second | Microseconds | Milliseconds | None | Percent | Seconds | Terabits | Terabits/Second | Terabytes | Terabytes/Second` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Unit", "type": "string" } }, @@ -26802,9 +32826,13 @@ "additionalProperties": false, "properties": { "EndTime": { + "markdownDescription": "The end time of the range to exclude\\. The format is `yyyy-MM-dd'T'HH:mm:ss`\\. For example, `2019-07-01T23:59:59`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndTime", "type": "string" }, "StartTime": { + "markdownDescription": "The start time of the range to exclude\\. The format is `yyyy-MM-dd'T'HH:mm:ss`\\. For example, `2019-07-01T23:59:59`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartTime", "type": "string" } }, @@ -26821,15 +32849,23 @@ "items": { "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Dimension" }, + "markdownDescription": "The metric dimensions to create the anomaly detection model for\\. \n*Required*: No \n*Type*: List of [Dimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-dimension.html) \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Dimensions", "type": "array" }, "MetricName": { + "markdownDescription": "The name of the metric to create the anomaly detection model for\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricName", "type": "string" }, "Namespace": { + "markdownDescription": "The namespace of the metric to create the anomaly detection model for\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[^:].*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Namespace", "type": "string" }, "Stat": { + "markdownDescription": "The statistic to use for the metric and anomaly detection model\\. \n*Required*: No \n*Type*: String \n*Maximum*: `50` \n*Pattern*: `(SampleCount|Average|Sum|Minimum|Maximum|IQM|(p|tc|tm|ts|wm)(\\d{1,2}(\\.\\d{0,10})?|100)|[ou]\\d+(\\.\\d*)?)(_E|_L|_H)?|(TM|TC|TS|WM)\\(((((\\d{1,2})(\\.\\d{0,10})?|100(\\.0{0,10})?)%)?:((\\d{1,2})(\\.\\d{0,10})?|100(\\.0{0,10})?)%|((\\d{1,2})(\\.\\d{0,10})?|100(\\.0{0,10})?)%:(((\\d{1,2})(\\.\\d{0,10})?|100(\\.0{0,10})?)%)?)\\)|(TM|TC|TS|WM|PR)\\(((\\d+(\\.\\d{0,10})?|(\\d+(\\.\\d{0,10})?[Ee][+-]?\\d+)):((\\d+(\\.\\d{0,10})?|(\\d+(\\.\\d{0,10})?[Ee][+-]?\\d+)))?|((\\d+(\\.\\d{0,10})?|(\\d+(\\.\\d{0,10})?[Ee][+-]?\\d+)))?:(\\d+(\\.\\d{0,10})?|(\\d+(\\.\\d{0,10})?[Ee][+-]?\\d+)))\\)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Stat", "type": "string" } }, @@ -26871,6 +32907,8 @@ "additionalProperties": false, "properties": { "ActionsEnabled": { + "markdownDescription": "Indicates whether actions should be executed during any changes to the alarm state of the composite alarm\\. The default is TRUE\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionsEnabled", "type": "boolean" }, "ActionsSuppressor": { @@ -26886,27 +32924,39 @@ "items": { "type": "string" }, + "markdownDescription": "The actions to execute when this alarm transitions to the ALARM state from any other state\\. Each action is specified as an Amazon Resource Name \\(ARN\\)\\. For more information about creating alarms and the actions that you can specify, see [PutCompositeAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutCompositeAlarm.html) in the *Amazon CloudWatch API Reference*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmActions", "type": "array" }, "AlarmDescription": { + "markdownDescription": "The description for the composite alarm\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmDescription", "type": "string" }, "AlarmName": { + "markdownDescription": "The name for the composite alarm\\. This name must be unique within your AWS account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AlarmName", "type": "string" }, "AlarmRule": { + "markdownDescription": "An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state\\. For each alarm that you reference, you designate a function that specifies whether that alarm needs to be in ALARM state, OK state, or INSUFFICIENT\\_DATA state\\. You can use operators \\(AND, OR and NOT\\) to combine multiple functions in a single expression\\. You can use parenthesis to logically group the functions in your expression\\. \nYou can use either alarm names or ARNs to reference the other alarms that are to be evaluated\\. \nFunctions can include the following: \n+ ALARM\\(\"alarm\\-name or alarm\\-ARN\"\\) is TRUE if the named alarm is in ALARM state\\. \n+ OK\\(\"alarm\\-name or alarm\\-ARN\"\\) is TRUE if the named alarm is in OK state\\. \n+ INSUFFICIENT\\_DATA\\(\"alarm\\-name or alarm\\-ARN\"\\) is TRUE if the named alarm is in INSUFFICIENT\\_DATA state\\. \n+ TRUE always evaluates to TRUE\\.\n+ FALSE always evaluates to FALSE\\.\n TRUE and FALSE are useful for testing a complex AlarmRule structure, and for testing your alarm actions\\. \nFor more information about `AlarmRule` syntax, see [PutCompositeAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutCompositeAlarm.html) in the *Amazon CloudWatch API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmRule", "type": "string" }, "InsufficientDataActions": { "items": { "type": "string" }, + "markdownDescription": "The actions to execute when this alarm transitions to the INSUFFICIENT\\_DATA state from any other state\\. Each action is specified as an Amazon Resource Name \\(ARN\\)\\. For more information about creating alarms and the actions that you can specify, see [PutCompositeAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutCompositeAlarm.html) in the *Amazon CloudWatch API Reference*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InsufficientDataActions", "type": "array" }, "OKActions": { "items": { "type": "string" }, + "markdownDescription": "The actions to execute when this alarm transitions to the OK state from any other state\\. Each action is specified as an Amazon Resource Name \\(ARN\\)\\. For more information about creating alarms and the actions that you can specify, see [PutCompositeAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutCompositeAlarm.html) in the *Amazon CloudWatch API Reference*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OKActions", "type": "array" } }, @@ -26972,9 +33022,13 @@ "additionalProperties": false, "properties": { "DashboardBody": { + "markdownDescription": "The detailed information about the dashboard in JSON format, including the widgets to include and their location on the dashboard\\. This parameter is required\\. \nFor more information about the syntax, see [Dashboard Body Structure and Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Dashboard-Body-Structure.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DashboardBody", "type": "string" }, "DashboardName": { + "markdownDescription": "The name of the dashboard\\. The name must be between 1 and 255 characters\\. If you do not specify a name, one will be generated automatically\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DashboardName", "type": "string" } }, @@ -27040,16 +33094,24 @@ "additionalProperties": false, "properties": { "RuleBody": { + "markdownDescription": "The definition of the rule, as a JSON object\\. For details about the syntax, see [ Contributor Insights Rule Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights-RuleSyntax.html) in the *Amazon CloudWatch User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleBody", "type": "string" }, "RuleName": { + "markdownDescription": "The name of the rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RuleName", "type": "string" }, "RuleState": { + "markdownDescription": "The current state of the rule\\. Valid values are `ENABLED` and `DISABLED`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleState", "type": "string" }, "Tags": { - "$ref": "#/definitions/AWS::CloudWatch::InsightRule.Tags" + "$ref": "#/definitions/AWS::CloudWatch::InsightRule.Tags", + "markdownDescription": "A list of key\\-value pairs to associate with the Contributor Insights rule\\. You can associate as many as 50 tags with a rule\\. \nTags can help you organize and categorize your resources\\. For more information, see [ Tagging Your Amazon CloudWatch Resources](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Tagging.html)\\. \nTo be able to associate tags with a rule, you must have the `cloudwatch:TagResource` permission in addition to the `cloudwatch:PutInsightRule` permission\\. \n*Required*: No \n*Type*: [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-insightrule-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags" } }, "required": [ @@ -27124,24 +33186,39 @@ "items": { "$ref": "#/definitions/AWS::CloudWatch::MetricStream.MetricStreamFilter" }, + "markdownDescription": "If you specify this parameter, the stream sends metrics from all metric namespaces except for the namespaces that you specify here\\. You cannot specify both `IncludeFilters` and `ExcludeFilters` in the same metric stream\\. \nWhen you modify the `IncludeFilters` or `ExcludeFilters` of an existing metric stream in any way, the metric stream is effectively restarted, so after such a change you will get only the datapoints that have a timestamp after the time of the update\\. \n*Required*: No \n*Type*: List of [MetricStreamFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-metricstream-metricstreamfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludeFilters", "type": "array" }, "FirehoseArn": { + "markdownDescription": "The ARN of the Amazon Kinesis Firehose delivery stream to use for this metric stream\\. This Amazon Kinesis Firehose delivery stream must already exist and must be in the same account as the metric stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FirehoseArn", "type": "string" }, "IncludeFilters": { "items": { "$ref": "#/definitions/AWS::CloudWatch::MetricStream.MetricStreamFilter" }, + "markdownDescription": "If you specify this parameter, the stream sends only the metrics from the metric namespaces that you specify here\\. You cannot specify both `IncludeFilters` and `ExcludeFilters` in the same metric stream\\. \nWhen you modify the `IncludeFilters` or `ExcludeFilters` of an existing metric stream in any way, the metric stream is effectively restarted, so after such a change you will get only the datapoints that have a timestamp after the time of the update\\. \n*Required*: No \n*Type*: List of [MetricStreamFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-metricstream-metricstreamfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeFilters", "type": "array" }, + "IncludeLinkedAccountsMetrics": { + "type": "boolean" + }, "Name": { + "markdownDescription": "If you are creating a new metric stream, this is the name for the new stream\\. The name must be different than the names of other metric streams in this account and Region\\. \nIf you are updating a metric stream, specify the name of that stream here\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "OutputFormat": { + "markdownDescription": "The output format for the stream\\. Valid values are `json` and `opentelemetry0.7` For more information about metric stream output formats, see [ Metric streams output formats](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-metric-streams-formats.html)\\. \nThis parameter is required\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputFormat", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of an IAM role that this metric stream will use to access Amazon Kinesis Firehose resources\\. This IAM role must already exist and must be in the same account as the metric stream\\. This IAM role must include the `firehose:PutRecord` and `firehose:PutRecordBatch` permissions\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "StatisticsConfigurations": { @@ -27154,6 +33231,8 @@ "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to the metric stream\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -27189,6 +33268,8 @@ "additionalProperties": false, "properties": { "Namespace": { + "markdownDescription": "The name of the metric namespace in the filter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", "type": "string" } }, @@ -27271,18 +33352,26 @@ "additionalProperties": false, "properties": { "DomainName": { + "markdownDescription": "A string that specifies the name of the requested domain\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `50` \n*Pattern*: `[a-z][a-z0-9\\-]{0,48}[a-z0-9]` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", "type": "string" }, "EncryptionKey": { + "markdownDescription": "The key used to encrypt the domain\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1011` \n*Pattern*: `\\S+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncryptionKey", "type": "string" }, "PermissionsPolicyDocument": { + "markdownDescription": "The document that defines the resource policy that is set on a domain\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PermissionsPolicyDocument", "type": "object" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of tags to be applied to the domain\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -27348,36 +33437,52 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A text description of the repository\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Pattern*: `\\P{C}*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DomainName": { + "markdownDescription": "The name of the domain that contains the repository\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `50` \n*Pattern*: `[a-z][a-z0-9\\-]{0,48}[a-z0-9]` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", "type": "string" }, "DomainOwner": { + "markdownDescription": "The 12\\-digit account number of the AWS account that owns the domain that contains the repository\\. It does not include dashes or spaces\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `[0-9]{12}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainOwner", "type": "string" }, "ExternalConnections": { "items": { "type": "string" }, + "markdownDescription": "An array of external connections associated with the repository\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExternalConnections", "type": "array" }, "PermissionsPolicyDocument": { + "markdownDescription": "The document that defines the resource policy that is set on a repository\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PermissionsPolicyDocument", "type": "object" }, "RepositoryName": { + "markdownDescription": "The name of an upstream repository\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9][A-Za-z0-9._\\-]{1,99}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RepositoryName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of tags to be applied to the repository\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Upstreams": { "items": { "type": "string" }, + "markdownDescription": "A list of upstream repositories to associate with the repository\\. The order of the upstream repositories in the list determines their priority order when AWS CodeArtifact looks for a requested package version\\. For more information, see [Working with upstream repositories](https://docs.aws.amazon.com/codeartifact/latest/ug/repos-upstream.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Upstreams", "type": "array" } }, @@ -27444,91 +33549,139 @@ "additionalProperties": false, "properties": { "Artifacts": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts" + "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts", + "markdownDescription": "`Artifacts` is a property of the [ AWS::CodeBuild::Project](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html) resource that specifies output settings for artifacts generated by an AWS CodeBuild build\\. \n*Required*: Yes \n*Type*: [Artifacts](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Artifacts" }, "BadgeEnabled": { + "markdownDescription": "Indicates whether AWS CodeBuild generates a publicly accessible URL for your project's build badge\\. For more information, see [Build Badges Sample](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-build-badges.html) in the *AWS CodeBuild User Guide*\\. \n Including build badges with your project is currently not supported if the source type is CodePipeline\\. If you specify `CODEPIPELINE` for the `Source` property, do not specify the `BadgeEnabled` property\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BadgeEnabled", "type": "boolean" }, "BuildBatchConfig": { - "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectBuildBatchConfig" + "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectBuildBatchConfig", + "markdownDescription": "A `ProjectBuildBatchConfig` object that defines the batch build options for the project\\. \n*Required*: No \n*Type*: [ProjectBuildBatchConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectbuildbatchconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BuildBatchConfig" }, "Cache": { - "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectCache" + "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectCache", + "markdownDescription": "Settings that AWS CodeBuild uses to store and reuse build dependencies\\. \n*Required*: No \n*Type*: [ProjectCache](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cache" }, "ConcurrentBuildLimit": { + "markdownDescription": "The maximum number of concurrent builds that are allowed for this project\\. \nNew builds are only started if the current number of builds is less than or equal to this limit\\. If the current build count meets this limit, new builds are throttled and are not run\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConcurrentBuildLimit", "type": "number" }, "Description": { + "markdownDescription": "A description that makes the build project easy to identify\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "EncryptionKey": { + "markdownDescription": "The AWS Key Management Service customer master key \\(CMK\\) to be used for encrypting the build output artifacts\\. \nYou can use a cross\\-account KMS key to encrypt the build output artifacts if your service role has permission to that key\\. \nYou can specify either the Amazon Resource Name \\(ARN\\) of the CMK or, if available, the CMK's alias \\(using the format `alias/`\\)\\. If you don't specify a value, CodeBuild uses the managed CMK for Amazon Simple Storage Service \\(Amazon S3\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionKey", "type": "string" }, "Environment": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Environment" + "$ref": "#/definitions/AWS::CodeBuild::Project.Environment", + "markdownDescription": "The build environment settings for the project, such as the environment type or the environment variables to use for the build environment\\. \n*Required*: Yes \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Environment" }, "FileSystemLocations": { "items": { "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectFileSystemLocation" }, + "markdownDescription": "An array of `ProjectFileSystemLocation` objects for a CodeBuild build project\\. A `ProjectFileSystemLocation` object specifies the `identifier`, `location`, `mountOptions`, `mountPoint`, and `type` of a file system created using Amazon Elastic File System\\. \n*Required*: No \n*Type*: List of [ProjectFileSystemLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectfilesystemlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileSystemLocations", "type": "array" }, "LogsConfig": { - "$ref": "#/definitions/AWS::CodeBuild::Project.LogsConfig" + "$ref": "#/definitions/AWS::CodeBuild::Project.LogsConfig", + "markdownDescription": "Information about logs for the build project\\. A project can create logs in CloudWatch Logs, an S3 bucket, or both\\. \n*Required*: No \n*Type*: [LogsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-logsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogsConfig" }, "Name": { + "markdownDescription": "The name of the build project\\. The name must be unique across all of the projects in your AWS account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `255` \n*Pattern*: `[A-Za-z0-9][A-Za-z0-9\\-_]{1,254}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "QueuedTimeoutInMinutes": { + "markdownDescription": "The number of minutes a build is allowed to be queued before it times out\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `5` \n*Maximum*: `480` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueuedTimeoutInMinutes", "type": "number" }, "ResourceAccessRole": { + "markdownDescription": "The ARN of the IAM role that enables CodeBuild to access the CloudWatch Logs and Amazon S3 artifacts for the project's builds\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceAccessRole", "type": "string" }, "SecondaryArtifacts": { "items": { "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts" }, + "markdownDescription": "A list of `Artifacts` objects\\. Each artifacts object specifies output settings that the project generates during a build\\. \n*Required*: No \n*Type*: List of [Artifacts](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html) \n*Maximum*: `12` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryArtifacts", "type": "array" }, "SecondarySourceVersions": { "items": { "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectSourceVersion" }, + "markdownDescription": "An array of `ProjectSourceVersion` objects\\. If `secondarySourceVersions` is specified at the build level, then they take over these `secondarySourceVersions` \\(at the project level\\)\\. \n*Required*: No \n*Type*: List of [ProjectSourceVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectsourceversion.html) \n*Maximum*: `12` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondarySourceVersions", "type": "array" }, "SecondarySources": { "items": { "$ref": "#/definitions/AWS::CodeBuild::Project.Source" }, + "markdownDescription": "An array of `ProjectSource` objects\\. \n*Required*: No \n*Type*: List of [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html) \n*Maximum*: `12` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondarySources", "type": "array" }, "ServiceRole": { + "markdownDescription": "The ARN of the IAM role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceRole", "type": "string" }, "Source": { - "$ref": "#/definitions/AWS::CodeBuild::Project.Source" + "$ref": "#/definitions/AWS::CodeBuild::Project.Source", + "markdownDescription": "The source code settings for the project, such as the source code's repository type and location\\. \n*Required*: Yes \n*Type*: [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source" }, "SourceVersion": { + "markdownDescription": "A version of the build input to be built for this project\\. If not specified, the latest version is used\\. If specified, it must be one of: \n+ For CodeCommit: the commit ID, branch, or Git tag to use\\.\n+ For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build\\. If a pull request ID is specified, it must use the format `pr/pull-request-ID` \\(for example `pr/25`\\)\\. If a branch name is specified, the branch's HEAD commit ID is used\\. If not specified, the default branch's HEAD commit ID is used\\.\n+ For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build\\. If a branch name is specified, the branch's HEAD commit ID is used\\. If not specified, the default branch's HEAD commit ID is used\\.\n+ For Amazon S3: the version ID of the object that represents the build input ZIP file to use\\.\nIf `sourceVersion` is specified at the build level, then that version takes precedence over this `sourceVersion` \\(at the project level\\)\\. \nFor more information, see [Source Version Sample with CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-source-version.html) in the * AWS CodeBuild User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceVersion", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An arbitrary set of tags \\(key\\-value pairs\\) for the AWS CodeBuild project\\. \nThese tags are available for use by AWS services that support AWS CodeBuild build project tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TimeoutInMinutes": { + "markdownDescription": "How long, in minutes, from 5 to 480 \\(8 hours\\), for AWS CodeBuild to wait before timing out any related build that did not get marked as completed\\. The default is 60 minutes\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `5` \n*Maximum*: `480` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutInMinutes", "type": "number" }, "Triggers": { - "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectTriggers" + "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectTriggers", + "markdownDescription": "For an existing AWS CodeBuild build project that has its source code stored in a GitHub repository, enables AWS CodeBuild to begin automatically rebuilding the source code every time a code change is pushed to the repository\\. \n*Required*: No \n*Type*: [ProjectTriggers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projecttriggers.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Triggers" }, "Visibility": { + "markdownDescription": "Specifies the visibility of the project's builds\\. Possible values are: \nPUBLIC\\_READ \nThe project builds are visible to the public\\. \nPRIVATE \nThe project builds are not visible to the public\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Visibility", "type": "string" }, "VpcConfig": { - "$ref": "#/definitions/AWS::CodeBuild::Project.VpcConfig" + "$ref": "#/definitions/AWS::CodeBuild::Project.VpcConfig", + "markdownDescription": "`VpcConfig` specifies settings that enable AWS CodeBuild to access resources in an Amazon VPC\\. For more information, see [Use AWS CodeBuild with Amazon Virtual Private Cloud](https://docs.aws.amazon.com/codebuild/latest/userguide/vpc-support.html) in the *AWS CodeBuild User Guide*\\. \n*Required*: No \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcConfig" } }, "required": [ @@ -27564,30 +33717,48 @@ "additionalProperties": false, "properties": { "ArtifactIdentifier": { + "markdownDescription": "An identifier for this artifact definition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArtifactIdentifier", "type": "string" }, "EncryptionDisabled": { + "markdownDescription": "Set to true if you do not want your output artifacts encrypted\\. This option is valid only if your artifacts type is Amazon Simple Storage Service \\(Amazon S3\\)\\. If this is set with another artifacts type, an `invalidInputException` is thrown\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionDisabled", "type": "boolean" }, "Location": { + "markdownDescription": "Information about the build output artifact location: \n+ If `type` is set to `CODEPIPELINE`, AWS CodePipeline ignores this value if specified\\. This is because CodePipeline manages its build output locations instead of CodeBuild\\.\n+ If `type` is set to `NO_ARTIFACTS`, this value is ignored if specified, because no build output is produced\\.\n+ If `type` is set to `S3`, this is the name of the output bucket\\.\n If you specify `CODEPIPELINE` or `NO_ARTIFACTS` for the `Type` property, don't specify this property\\. For all of the other types, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", "type": "string" }, "Name": { + "markdownDescription": "Along with `path` and `namespaceType`, the pattern that AWS CodeBuild uses to name and store the output artifact: \n+ If `type` is set to `CODEPIPELINE`, AWS CodePipeline ignores this value if specified\\. This is because CodePipeline manages its build output names instead of AWS CodeBuild\\.\n+ If `type` is set to `NO_ARTIFACTS`, this value is ignored if specified, because no build output is produced\\.\n+ If `type` is set to `S3`, this is the name of the output artifact object\\. If you set the name to be a forward slash \\(\"/\"\\), the artifact is stored in the root of the output bucket\\.\nFor example: \n+ If `path` is set to `MyArtifacts`, `namespaceType` is set to `BUILD_ID`, and `name` is set to `MyArtifact.zip`, then the output artifact is stored in `MyArtifacts/build-ID/MyArtifact.zip`\\. \n+ If `path` is empty, `namespaceType` is set to `NONE`, and `name` is set to \"`/`\", the output artifact is stored in the root of the output bucket\\. \n+ If `path` is set to `MyArtifacts`, `namespaceType` is set to `BUILD_ID`, and `name` is set to \"`/`\", the output artifact is stored in `MyArtifacts/build-ID `\\. \n If you specify `CODEPIPELINE` or `NO_ARTIFACTS` for the `Type` property, don't specify this property\\. For all of the other types, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "NamespaceType": { + "markdownDescription": "Along with `path` and `name`, the pattern that AWS CodeBuild uses to determine the name and location to store the output artifact: \n+ If `type` is set to `CODEPIPELINE`, CodePipeline ignores this value if specified\\. This is because CodePipeline manages its build output names instead of AWS CodeBuild\\.\n+ If `type` is set to `NO_ARTIFACTS`, this value is ignored if specified, because no build output is produced\\.\n+ If `type` is set to `S3`, valid values include:\n + `BUILD_ID`: Include the build ID in the location of the build output artifact\\.\n + `NONE`: Do not include the build ID\\. This is the default if `namespaceType` is not specified\\.\nFor example, if `path` is set to `MyArtifacts`, `namespaceType` is set to `BUILD_ID`, and `name` is set to `MyArtifact.zip`, the output artifact is stored in `MyArtifacts//MyArtifact.zip`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BUILD_ID | NONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NamespaceType", "type": "string" }, "OverrideArtifactName": { + "markdownDescription": "If set to true a name specified in the buildspec file overrides the artifact name\\. The name specified in a buildspec file is calculated at build time and uses the Shell command language\\. For example, you can append a date and time to your artifact name so that it is always unique\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OverrideArtifactName", "type": "boolean" }, "Packaging": { + "markdownDescription": "The type of build output artifact to create: \n+ If `type` is set to `CODEPIPELINE`, CodePipeline ignores this value if specified\\. This is because CodePipeline manages its build output artifacts instead of AWS CodeBuild\\.\n+ If `type` is set to `NO_ARTIFACTS`, this value is ignored if specified, because no build output is produced\\.\n+ If `type` is set to `S3`, valid values include:\n + `NONE`: AWS CodeBuild creates in the output bucket a folder that contains the build output\\. This is the default if `packaging` is not specified\\.\n + `ZIP`: AWS CodeBuild creates in the output bucket a ZIP file that contains the build output\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | ZIP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Packaging", "type": "string" }, "Path": { + "markdownDescription": "Along with `namespaceType` and `name`, the pattern that AWS CodeBuild uses to name and store the output artifact: \n+ If `type` is set to `CODEPIPELINE`, CodePipeline ignores this value if specified\\. This is because CodePipeline manages its build output names instead of AWS CodeBuild\\.\n+ If `type` is set to `NO_ARTIFACTS`, this value is ignored if specified, because no build output is produced\\.\n+ If `type` is set to `S3`, this is the path to the output artifact\\. If `path` is not specified, `path` is not used\\.\nFor example, if `path` is set to `MyArtifacts`, `namespaceType` is set to `NONE`, and `name` is set to `MyArtifact.zip`, the output artifact is stored in the output bucket at `MyArtifacts/MyArtifact.zip`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", "type": "string" }, "Type": { + "markdownDescription": "The type of build output artifact\\. Valid values include: \n+ `CODEPIPELINE`: The build project has build output generated through CodePipeline\\. \n**Note** \nThe `CODEPIPELINE` type is not supported for `secondaryArtifacts`\\.\n+ `NO_ARTIFACTS`: The build project does not produce any build output\\.\n+ `S3`: The build project stores build output in Amazon S3\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `CODEPIPELINE | NO_ARTIFACTS | S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -27603,9 +33774,13 @@ "items": { "type": "string" }, + "markdownDescription": "An array of strings that specify the compute types that are allowed for the batch build\\. See [Build environment compute types](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) in the * AWS CodeBuild User Guide* for these values\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputeTypesAllowed", "type": "array" }, "MaximumBuildsAllowed": { + "markdownDescription": "Specifies the maximum number of builds allowed\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumBuildsAllowed", "type": "number" } }, @@ -27615,9 +33790,13 @@ "additionalProperties": false, "properties": { "Context": { + "markdownDescription": "Specifies the context of the build status CodeBuild sends to the source provider\\. The usage of this parameter depends on the source provider\\. \nBitbucket \nThis parameter is used for the `name` parameter in the Bitbucket commit status\\. For more information, see [build](https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/commit/%7Bnode%7D/statuses/build) in the Bitbucket API documentation\\. \nGitHub/GitHub Enterprise Server \nThis parameter is used for the `context` parameter in the GitHub commit status\\. For more information, see [Create a commit status](https://developer.github.com/v3/repos/statuses/#create-a-commit-status) in the GitHub developer guide\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Context", "type": "string" }, "TargetUrl": { + "markdownDescription": "Specifies the target url of the build status CodeBuild sends to the source provider\\. The usage of this parameter depends on the source provider\\. \nBitbucket \nThis parameter is used for the `url` parameter in the Bitbucket commit status\\. For more information, see [build](https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/commit/%7Bnode%7D/statuses/build) in the Bitbucket API documentation\\. \nGitHub/GitHub Enterprise Server \nThis parameter is used for the `target_url` parameter in the GitHub commit status\\. For more information, see [Create a commit status](https://developer.github.com/v3/repos/statuses/#create-a-commit-status) in the GitHub developer guide\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetUrl", "type": "string" } }, @@ -27627,12 +33806,18 @@ "additionalProperties": false, "properties": { "GroupName": { + "markdownDescription": "The group name of the logs in CloudWatch Logs\\. For more information, see [Working with Log Groups and Log Streams](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupName", "type": "string" }, "Status": { + "markdownDescription": "The current status of the logs in CloudWatch Logs for a build project\\. Valid values are: \n+ `ENABLED`: CloudWatch Logs are enabled for this build project\\.\n+ `DISABLED`: CloudWatch Logs are not enabled for this build project\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" }, "StreamName": { + "markdownDescription": "The prefix of the stream name of the CloudWatch Logs\\. For more information, see [Working with Log Groups and Log Streams](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamName", "type": "string" } }, @@ -27645,30 +33830,46 @@ "additionalProperties": false, "properties": { "Certificate": { + "markdownDescription": "The ARN of the Amazon S3 bucket, path prefix, and object key that contains the PEM\\-encoded certificate for the build project\\. For more information, see [certificate](https://docs.aws.amazon.com/codebuild/latest/userguide/create-project-cli.html#cli.environment.certificate) in the * AWS CodeBuild User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate", "type": "string" }, "ComputeType": { + "markdownDescription": "The type of compute environment\\. This determines the number of CPU cores and memory the build environment uses\\. Available values include: \n+ `BUILD_GENERAL1_SMALL`: Use up to 3 GB memory and 2 vCPUs for builds\\.\n+ `BUILD_GENERAL1_MEDIUM`: Use up to 7 GB memory and 4 vCPUs for builds\\.\n+ `BUILD_GENERAL1_LARGE`: Use up to 15 GB memory and 8 vCPUs for builds\\.\n For more information, see [Build Environment Compute Types](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) in the *AWS CodeBuild User Guide\\.* \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputeType", "type": "string" }, "EnvironmentVariables": { "items": { "$ref": "#/definitions/AWS::CodeBuild::Project.EnvironmentVariable" }, + "markdownDescription": "A set of environment variables to make available to builds for this build project\\. \n*Required*: No \n*Type*: List of [EnvironmentVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environmentvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnvironmentVariables", "type": "array" }, "Image": { + "markdownDescription": "The image tag or image digest that identifies the Docker image to use for this build project\\. Use the following formats: \n+ For an image tag: `/:`\\. For example, in the Docker repository that CodeBuild uses to manage its Docker images, this would be `aws/codebuild/standard:4.0`\\. \n+ For an image digest: `/@`\\. For example, to specify an image with the digest \"sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf,\" use `/@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf`\\.\nFor more information, see [Docker images provided by CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html) in the * AWS CodeBuild user guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Image", "type": "string" }, "ImagePullCredentialsType": { + "markdownDescription": "The type of credentials AWS CodeBuild uses to pull images in your build\\. There are two valid values: \n+ `CODEBUILD` specifies that AWS CodeBuild uses its own credentials\\. This requires that you modify your ECR repository policy to trust AWS CodeBuild service principal\\. \n+ `SERVICE_ROLE` specifies that AWS CodeBuild uses your build project's service role\\. \n When you use a cross\\-account or private registry image, you must use SERVICE\\_ROLE credentials\\. When you use an AWS CodeBuild curated image, you must use CODEBUILD credentials\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CODEBUILD | SERVICE_ROLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImagePullCredentialsType", "type": "string" }, "PrivilegedMode": { + "markdownDescription": "Enables running the Docker daemon inside a Docker container\\. Set to true only if the build project is used to build Docker images\\. Otherwise, a build that attempts to interact with the Docker daemon fails\\. The default setting is `false`\\. \nYou can initialize the Docker daemon during the install phase of your build by adding one of the following sets of commands to the install phase of your buildspec file: \nIf the operating system's base image is Ubuntu Linux: \n`- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&` \n`- timeout 15 sh -c \"until docker info; do echo .; sleep 1; done\"` \nIf the operating system's base image is Alpine Linux and the previous command does not work, add the `-t` argument to `timeout`: \n`- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&` \n`- timeout -t 15 sh -c \"until docker info; do echo .; sleep 1; done\"` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivilegedMode", "type": "boolean" }, "RegistryCredential": { - "$ref": "#/definitions/AWS::CodeBuild::Project.RegistryCredential" + "$ref": "#/definitions/AWS::CodeBuild::Project.RegistryCredential", + "markdownDescription": "`RegistryCredential` is a property of the [AWS::CodeBuild::Project Environment ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-environment) property that specifies information about credentials that provide access to a private Docker registry\\. When this is set: \n+ `imagePullCredentialsType` must be set to `SERVICE_ROLE`\\. \n+ images cannot be curated or an Amazon ECR image\\. \n*Required*: No \n*Type*: [RegistryCredential](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-registrycredential.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegistryCredential" }, "Type": { + "markdownDescription": "The type of build environment to use for related builds\\. \n+ The environment type `ARM_CONTAINER` is available only in regions US East \\(N\\. Virginia\\), US East \\(Ohio\\), US West \\(Oregon\\), EU \\(Ireland\\), Asia Pacific \\(Mumbai\\), Asia Pacific \\(Tokyo\\), Asia Pacific \\(Sydney\\), and EU \\(Frankfurt\\)\\.\n+ The environment type `LINUX_CONTAINER` with compute type `build.general1.2xlarge` is available only in regions US East \\(N\\. Virginia\\), US East \\(Ohio\\), US West \\(Oregon\\), Canada \\(Central\\), EU \\(Ireland\\), EU \\(London\\), EU \\(Frankfurt\\), Asia Pacific \\(Tokyo\\), Asia Pacific \\(Seoul\\), Asia Pacific \\(Singapore\\), Asia Pacific \\(Sydney\\), China \\(Beijing\\), and China \\(Ningxia\\)\\.\n+ The environment type `LINUX_GPU_CONTAINER` is available only in regions US East \\(N\\. Virginia\\), US East \\(Ohio\\), US West \\(Oregon\\), Canada \\(Central\\), EU \\(Ireland\\), EU \\(London\\), EU \\(Frankfurt\\), Asia Pacific \\(Tokyo\\), Asia Pacific \\(Seoul\\), Asia Pacific \\(Singapore\\), Asia Pacific \\(Sydney\\) , China \\(Beijing\\), and China \\(Ningxia\\)\\.\n+ The environment types `WINDOWS_CONTAINER` and `WINDOWS_SERVER_2019_CONTAINER` are available only in regions US East \\(N\\. Virginia\\), US East \\(Ohio\\), US West \\(Oregon\\), and EU \\(Ireland\\)\\.\nFor more information, see [Build environment compute types](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) in the * AWS CodeBuild user guide*\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ARM_CONTAINER | LINUX_CONTAINER | LINUX_GPU_CONTAINER | WINDOWS_CONTAINER | WINDOWS_SERVER_2019_CONTAINER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -27683,12 +33884,18 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name or key of the environment variable\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Type": { + "markdownDescription": "The type of environment variable\\. Valid values include: \n+ `PARAMETER_STORE`: An environment variable stored in Systems Manager Parameter Store\\. To learn how to specify a parameter store environment variable, see [env/parameter\\-store](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.parameter-store) in the * AWS CodeBuild User Guide*\\.\n+ `PLAINTEXT`: An environment variable in plain text format\\. This is the default value\\.\n+ `SECRETS_MANAGER`: An environment variable stored in AWS Secrets Manager\\. To learn how to specify a secrets manager environment variable, see [env/secrets\\-manager](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.secrets-manager) in the * AWS CodeBuild User Guide*\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `PARAMETER_STORE | PLAINTEXT | SECRETS_MANAGER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" }, "Value": { + "markdownDescription": "The value of the environment variable\\. \nWe strongly discourage the use of `PLAINTEXT` environment variables to store sensitive values, especially AWS secret key IDs and secret access keys\\. `PLAINTEXT` environment variables can be displayed in plain text using the AWS CodeBuild console and the AWS CLI\\. For sensitive values, we recommend you use an environment variable of type `PARAMETER_STORE` or `SECRETS_MANAGER`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -27707,6 +33914,8 @@ "additionalProperties": false, "properties": { "FetchSubmodules": { + "markdownDescription": "Set to true to fetch Git submodules for your AWS CodeBuild build project\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FetchSubmodules", "type": "boolean" } }, @@ -27719,10 +33928,14 @@ "additionalProperties": false, "properties": { "CloudWatchLogs": { - "$ref": "#/definitions/AWS::CodeBuild::Project.CloudWatchLogsConfig" + "$ref": "#/definitions/AWS::CodeBuild::Project.CloudWatchLogsConfig", + "markdownDescription": "Information about CloudWatch Logs for a build project\\. CloudWatch Logs are enabled by default\\. \n*Required*: No \n*Type*: [CloudWatchLogsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-cloudwatchlogsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogs" }, "S3Logs": { - "$ref": "#/definitions/AWS::CodeBuild::Project.S3LogsConfig" + "$ref": "#/definitions/AWS::CodeBuild::Project.S3LogsConfig", + "markdownDescription": "Information about logs built to an S3 bucket for a build project\\. S3 logs are not enabled by default\\. \n*Required*: No \n*Type*: [S3LogsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-s3logsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Logs" } }, "type": "object" @@ -27731,18 +33944,28 @@ "additionalProperties": false, "properties": { "BatchReportMode": { + "markdownDescription": "Specifies how build status reports are sent to the source provider for the batch build\\. This property is only used when the source provider for your project is Bitbucket, GitHub, or GitHub Enterprise, and your project is configured to report build statuses to the source provider\\. \nREPORT\\_AGGREGATED\\_BATCH \n\\(Default\\) Aggregate all of the build statuses into a single status report\\. \nREPORT\\_INDIVIDUAL\\_BUILDS \nSend a separate status report for each individual build\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `REPORT_AGGREGATED_BATCH | REPORT_INDIVIDUAL_BUILDS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BatchReportMode", "type": "string" }, "CombineArtifacts": { + "markdownDescription": "Specifies if the build artifacts for the batch build should be combined into a single artifact location\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CombineArtifacts", "type": "boolean" }, "Restrictions": { - "$ref": "#/definitions/AWS::CodeBuild::Project.BatchRestrictions" + "$ref": "#/definitions/AWS::CodeBuild::Project.BatchRestrictions", + "markdownDescription": "A `BatchRestrictions` object that specifies the restrictions for the batch build\\. \n*Required*: No \n*Type*: [BatchRestrictions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-batchrestrictions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Restrictions" }, "ServiceRole": { + "markdownDescription": "Specifies the service role ARN for the batch build project\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceRole", "type": "string" }, "TimeoutInMins": { + "markdownDescription": "Specifies the maximum amount of time, in minutes, that the batch build must be completed in\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutInMins", "type": "number" } }, @@ -27752,15 +33975,21 @@ "additionalProperties": false, "properties": { "Location": { + "markdownDescription": "Information about the cache location: \n+ `NO_CACHE` or `LOCAL`: This value is ignored\\.\n+ `S3`: This is the S3 bucket name/prefix\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", "type": "string" }, "Modes": { "items": { "type": "string" }, + "markdownDescription": "An array of strings that specify the local cache modes\\. You can use one or more local cache modes at the same time\\. This is only used for `LOCAL` cache types\\. \nPossible values are: \nLOCAL\\_SOURCE\\_CACHE \nCaches Git metadata for primary and secondary sources\\. After the cache is created, subsequent builds pull only the change between commits\\. This mode is a good choice for projects with a clean working directory and a source that is a large Git repository\\. If you choose this option and your project does not use a Git repository \\(GitHub, GitHub Enterprise, or Bitbucket\\), the option is ignored\\. \nLOCAL\\_DOCKER\\_LAYER\\_CACHE \nCaches existing Docker layers\\. This mode is a good choice for projects that build or pull large Docker images\\. It can prevent the performance issues caused by pulling large Docker images down from the network\\. \n+ You can use a Docker layer cache in the Linux environment only\\. \n+ The `privileged` flag must be set so that your project has the required Docker permissions\\. \n+ You should consider the security implications before you use a Docker layer cache\\. \nLOCAL\\_CUSTOM\\_CACHE \nCaches directories you specify in the buildspec file\\. This mode is a good choice if your build scenario is not suited to one of the other three local cache modes\\. If you use a custom cache: \n+ Only directories can be specified for caching\\. You cannot specify individual files\\. \n+ Symlinks are used to reference cached directories\\. \n+ Cached directories are linked to your build before it downloads its project sources\\. Cached items are overridden if a source item has the same name\\. Directories are specified using cache paths in the buildspec file\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Modes", "type": "array" }, "Type": { + "markdownDescription": "The type of cache used by the build project\\. Valid values include: \n+ `NO_CACHE`: The build project does not use any cache\\.\n+ `S3`: The build project reads and writes from and to S3\\.\n+ `LOCAL`: The build project stores a cache locally on a build host that is only available to that build host\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `LOCAL | NO_CACHE | S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -27773,18 +34002,28 @@ "additionalProperties": false, "properties": { "Identifier": { + "markdownDescription": "The name used to access a file system created by Amazon EFS\\. CodeBuild creates an environment variable by appending the `identifier` in all capital letters to `CODEBUILD_`\\. For example, if you specify `my_efs` for `identifier`, a new environment variable is create named `CODEBUILD_MY_EFS`\\. \n The `identifier` is used to mount your file system\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Identifier", "type": "string" }, "Location": { + "markdownDescription": "A string that specifies the location of the file system created by Amazon EFS\\. Its format is `efs-dns-name:/directory-path`\\. You can find the DNS name of file system when you view it in the Amazon EFS console\\. The directory path is a path to a directory in the file system that CodeBuild mounts\\. For example, if the DNS name of a file system is `fs-abcd1234.efs.us-west-2.amazonaws.com`, and its mount directory is `my-efs-mount-directory`, then the `location` is `fs-abcd1234.efs.us-west-2.amazonaws.com:/my-efs-mount-directory`\\. \nThe directory path in the format `efs-dns-name:/directory-path` is optional\\. If you do not specify a directory path, the location is only the DNS name and CodeBuild mounts the entire file system\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", "type": "string" }, "MountOptions": { + "markdownDescription": "The mount options for a file system created by Amazon EFS\\. The default mount options used by CodeBuild are `nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2`\\. For more information, see [Recommended NFS Mount Options](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-nfs-mount-settings.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MountOptions", "type": "string" }, "MountPoint": { + "markdownDescription": "The location in the container where you mount the file system\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MountPoint", "type": "string" }, "Type": { + "markdownDescription": "The type of the file system\\. The one supported type is `EFS`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EFS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -27800,9 +34039,13 @@ "additionalProperties": false, "properties": { "SourceIdentifier": { + "markdownDescription": "An identifier for a source in the build project\\. The identifier can only contain alphanumeric characters and underscores, and must be less than 128 characters in length\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceIdentifier", "type": "string" }, "SourceVersion": { + "markdownDescription": "The source version for the corresponding source identifier\\. If specified, must be one of: \n+ For CodeCommit: the commit ID, branch, or Git tag to use\\.\n+ For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build\\. If a pull request ID is specified, it must use the format `pr/pull-request-ID` \\(for example, `pr/25`\\)\\. If a branch name is specified, the branch's HEAD commit ID is used\\. If not specified, the default branch's HEAD commit ID is used\\.\n+ For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build\\. If a branch name is specified, the branch's HEAD commit ID is used\\. If not specified, the default branch's HEAD commit ID is used\\.\n+ For Amazon S3: the version ID of the object that represents the build input ZIP file to use\\.\n For more information, see [Source Version Sample with CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-source-version.html) in the * AWS CodeBuild User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceVersion", "type": "string" } }, @@ -27815,15 +34058,21 @@ "additionalProperties": false, "properties": { "BuildType": { + "markdownDescription": "Specifies the type of build this webhook will trigger\\. Allowed values are: \nBUILD \nA single build \nBUILD\\_BATCH \nA batch build\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BuildType", "type": "string" }, "FilterGroups": { "items": { "$ref": "#/definitions/AWS::CodeBuild::Project.FilterGroup" }, + "markdownDescription": "A list of lists of `WebhookFilter` objects used to determine which webhook events are triggered\\. At least one `WebhookFilter` in the array must specify `EVENT` as its type\\. \n*Required*: No \n*Type*: List of [FilterGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-filtergroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterGroups", "type": "array" }, "Webhook": { + "markdownDescription": "Specifies whether or not to begin automatically rebuilding the source code every time a code change is pushed to the repository\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Webhook", "type": "boolean" } }, @@ -27833,9 +34082,13 @@ "additionalProperties": false, "properties": { "Credential": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) or name of credentials created using AWS Secrets Manager\\. \n The `credential` can use the name of the credentials only if they exist in your current AWS Region\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Credential", "type": "string" }, "CredentialProvider": { + "markdownDescription": "The service that created the credentials to access a private Docker registry\\. The valid value, SECRETS\\_MANAGER, is for AWS Secrets Manager\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SECRETS_MANAGER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CredentialProvider", "type": "string" } }, @@ -27849,12 +34102,18 @@ "additionalProperties": false, "properties": { "EncryptionDisabled": { + "markdownDescription": "Set to true if you do not want your S3 build log output encrypted\\. By default S3 build logs are encrypted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionDisabled", "type": "boolean" }, "Location": { + "markdownDescription": "The ARN of an S3 bucket and the path prefix for S3 logs\\. If your Amazon S3 bucket name is `my-bucket`, and your path prefix is `build-log`, then acceptable formats are `my-bucket/build-log` or `arn:aws:s3:::my-bucket/build-log`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", "type": "string" }, "Status": { + "markdownDescription": "The current status of the S3 build logs\\. Valid values are: \n+ `ENABLED`: S3 build logs are enabled for this build project\\.\n+ `DISABLED`: S3 build logs are not enabled for this build project\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" } }, @@ -27867,33 +34126,53 @@ "additionalProperties": false, "properties": { "Auth": { - "$ref": "#/definitions/AWS::CodeBuild::Project.SourceAuth" + "$ref": "#/definitions/AWS::CodeBuild::Project.SourceAuth", + "markdownDescription": "Information about the authorization settings for AWS CodeBuild to access the source code to be built\\. \nThis information is for the AWS CodeBuild console's use only\\. Your code should not get or set `Auth` directly\\. \n*Required*: No \n*Type*: [SourceAuth](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-sourceauth.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Auth" }, "BuildSpec": { + "markdownDescription": "The build specification for the project\\. If this value is not provided, then the source code must contain a buildspec file named `buildspec.yml` at the root level\\. If this value is provided, it can be either a single string containing the entire build specification, or the path to an alternate buildspec file relative to the value of the built\\-in environment variable `CODEBUILD_SRC_DIR`\\. The alternate buildspec file can have a name other than `buildspec.yml`, for example `myspec.yml` or `build_spec_qa.yml` or similar\\. For more information, see the [Build Spec Reference](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-example) in the *AWS CodeBuild User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BuildSpec", "type": "string" }, "BuildStatusConfig": { - "$ref": "#/definitions/AWS::CodeBuild::Project.BuildStatusConfig" + "$ref": "#/definitions/AWS::CodeBuild::Project.BuildStatusConfig", + "markdownDescription": "Contains information that defines how the build project reports the build status to the source provider\\. This option is only used when the source provider is `GITHUB`, `GITHUB_ENTERPRISE`, or `BITBUCKET`\\. \n*Required*: No \n*Type*: [BuildStatusConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-buildstatusconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BuildStatusConfig" }, "GitCloneDepth": { + "markdownDescription": "The depth of history to download\\. Minimum value is 0\\. If this value is 0, greater than 25, or not provided, then the full history is downloaded with each build project\\. If your source type is Amazon S3, this value is not supported\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GitCloneDepth", "type": "number" }, "GitSubmodulesConfig": { - "$ref": "#/definitions/AWS::CodeBuild::Project.GitSubmodulesConfig" + "$ref": "#/definitions/AWS::CodeBuild::Project.GitSubmodulesConfig", + "markdownDescription": "Information about the Git submodules configuration for the build project\\. \n*Required*: No \n*Type*: [GitSubmodulesConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-gitsubmodulesconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GitSubmodulesConfig" }, "InsecureSsl": { + "markdownDescription": "This is used with GitHub Enterprise only\\. Set to true to ignore SSL warnings while connecting to your GitHub Enterprise project repository\\. The default value is `false`\\. `InsecureSsl` should be used for testing purposes only\\. It should not be used in a production environment\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InsecureSsl", "type": "boolean" }, "Location": { + "markdownDescription": "Information about the location of the source code to be built\\. Valid values include: \n+ For source code settings that are specified in the source action of a pipeline in CodePipeline, `location` should not be specified\\. If it is specified, CodePipeline ignores it\\. This is because CodePipeline uses the settings in a pipeline's source action instead of this value\\.\n+ For source code in an CodeCommit repository, the HTTPS clone URL to the repository that contains the source code and the buildspec file \\(for example, `https://git-codecommit..amazonaws.com/v1/repos/`\\)\\.\n+ For source code in an Amazon S3 input bucket, one of the following\\. \n + The path to the ZIP file that contains the source code \\(for example, `//.zip`\\)\\. \n + The path to the folder that contains the source code \\(for example, `///`\\)\\. \n+ For source code in a GitHub repository, the HTTPS clone URL to the repository that contains the source and the buildspec file\\. You must connect your AWS account to your GitHub account\\. Use the AWS CodeBuild console to start creating a build project\\. When you use the console to connect \\(or reconnect\\) with GitHub, on the GitHub **Authorize application** page, for **Organization access**, choose **Request access** next to each repository you want to allow AWS CodeBuild to have access to, and then choose **Authorize application**\\. \\(After you have connected to your GitHub account, you do not need to finish creating the build project\\. You can leave the AWS CodeBuild console\\.\\) To instruct AWS CodeBuild to use this connection, in the `source` object, set the `auth` object's `type` value to `OAUTH`\\.\n+ For source code in a Bitbucket repository, the HTTPS clone URL to the repository that contains the source and the buildspec file\\. You must connect your AWS account to your Bitbucket account\\. Use the AWS CodeBuild console to start creating a build project\\. When you use the console to connect \\(or reconnect\\) with Bitbucket, on the Bitbucket **Confirm access to your account** page, choose **Grant access**\\. \\(After you have connected to your Bitbucket account, you do not need to finish creating the build project\\. You can leave the AWS CodeBuild console\\.\\) To instruct AWS CodeBuild to use this connection, in the `source` object, set the `auth` object's `type` value to `OAUTH`\\.\n If you specify `CODEPIPELINE` for the `Type` property, don't specify this property\\. For all of the other types, you must specify `Location`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", "type": "string" }, "ReportBuildStatus": { + "markdownDescription": "Set to true to report the status of a build's start and finish to your source provider\\. This option is valid only when your source provider is GitHub, GitHub Enterprise, or Bitbucket\\. If this is set and you use a different source provider, an `invalidInputException` is thrown\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReportBuildStatus", "type": "boolean" }, "SourceIdentifier": { + "markdownDescription": "An identifier for this project source\\. The identifier can only contain alphanumeric characters and underscores, and must be less than 128 characters in length\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceIdentifier", "type": "string" }, "Type": { + "markdownDescription": "The type of repository that contains the source code to be built\\. Valid values include: \n+ `BITBUCKET`: The source code is in a Bitbucket repository\\.\n+ `CODECOMMIT`: The source code is in an CodeCommit repository\\.\n+ `CODEPIPELINE`: The source code settings are specified in the source action of a pipeline in CodePipeline\\.\n+ `GITHUB`: The source code is in a GitHub or GitHub Enterprise Cloud repository\\.\n+ `GITHUB_ENTERPRISE`: The source code is in a GitHub Enterprise Server repository\\.\n+ `NO_SOURCE`: The project does not have input source code\\.\n+ `S3`: The source code is in an Amazon S3 bucket\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `BITBUCKET | CODECOMMIT | CODEPIPELINE | GITHUB | GITHUB_ENTERPRISE | NO_SOURCE | S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -27906,9 +34185,13 @@ "additionalProperties": false, "properties": { "Resource": { + "markdownDescription": "The resource value that applies to the specified authorization type\\. \n This data type is used by the AWS CodeBuild console only\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Resource", "type": "string" }, "Type": { + "markdownDescription": "The authorization type to use\\. The only valid value is `OAUTH`, which represents the OAuth authorization type\\. \n This data type is used by the AWS CodeBuild console only\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `OAUTH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -27924,15 +34207,21 @@ "items": { "type": "string" }, + "markdownDescription": "A list of one or more security groups IDs in your Amazon VPC\\. The maximum count is 5\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "Subnets": { "items": { "type": "string" }, + "markdownDescription": "A list of one or more subnet IDs in your Amazon VPC\\. The maximum count is 16\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `16` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subnets", "type": "array" }, "VpcId": { + "markdownDescription": "The ID of the Amazon VPC\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcId", "type": "string" } }, @@ -27942,12 +34231,18 @@ "additionalProperties": false, "properties": { "ExcludeMatchedPattern": { + "markdownDescription": "Used to indicate that the `pattern` determines which webhook events do not trigger a build\\. If true, then a webhook event that does not match the `pattern` triggers a build\\. If false, then a webhook event that matches the `pattern` triggers a build\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludeMatchedPattern", "type": "boolean" }, "Pattern": { + "markdownDescription": "For a `WebHookFilter` that uses `EVENT` type, a comma\\-separated string that specifies one or more events\\. For example, the webhook filter `PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED` allows all push, pull request created, and pull request updated events to trigger a build\\. \n For a `WebHookFilter` that uses any of the other filter types, a regular expression pattern\\. For example, a `WebHookFilter` that uses `HEAD_REF` for its `type` and the pattern `^refs/heads/` triggers a build when the head reference is a branch with a reference name `refs/heads/branch-name`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Pattern", "type": "string" }, "Type": { + "markdownDescription": "The type of webhook filter\\. There are six webhook filter types: `EVENT`, `ACTOR_ACCOUNT_ID`, `HEAD_REF`, `BASE_REF`, `FILE_PATH`, and `COMMIT_MESSAGE`\\. \n EVENT \n A webhook event triggers a build when the provided `pattern` matches one of five event types: `PUSH`, `PULL_REQUEST_CREATED`, `PULL_REQUEST_UPDATED`, `PULL_REQUEST_REOPENED`, and `PULL_REQUEST_MERGED`\\. The `EVENT` patterns are specified as a comma\\-separated string\\. For example, `PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED` filters all push, pull request created, and pull request updated events\\. \n The `PULL_REQUEST_REOPENED` works with GitHub and GitHub Enterprise only\\. \n ACTOR\\_ACCOUNT\\_ID \n A webhook event triggers a build when a GitHub, GitHub Enterprise, or Bitbucket account ID matches the regular expression `pattern`\\. \n HEAD\\_REF \n A webhook event triggers a build when the head reference matches the regular expression `pattern`\\. For example, `refs/heads/branch-name` and `refs/tags/tag-name`\\. \n Works with GitHub and GitHub Enterprise push, GitHub and GitHub Enterprise pull request, Bitbucket push, and Bitbucket pull request events\\. \n BASE\\_REF \n A webhook event triggers a build when the base reference matches the regular expression `pattern`\\. For example, `refs/heads/branch-name`\\. \n Works with pull request events only\\. \n FILE\\_PATH \n A webhook triggers a build when the path of a changed file matches the regular expression `pattern`\\. \n Works with GitHub and Bitbucket events push and pull requests events\\. Also works with GitHub Enterprise push events, but does not work with GitHub Enterprise pull request events\\. \nCOMMIT\\_MESSAGE \nA webhook triggers a build when the head commit message matches the regular expression `pattern`\\. \n Works with GitHub and Bitbucket events push and pull requests events\\. Also works with GitHub Enterprise push events, but does not work with GitHub Enterprise pull request events\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ACTOR_ACCOUNT_ID | BASE_REF | COMMIT_MESSAGE | EVENT | FILE_PATH | HEAD_REF` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -27993,21 +34288,31 @@ "additionalProperties": false, "properties": { "DeleteReports": { + "markdownDescription": "When deleting a report group, specifies if reports within the report group should be deleted\\. \ntrue \nDeletes any reports that belong to the report group before deleting the report group\\. \nfalse \nYou must delete any reports in the report group\\. This is the default value\\. If you delete a report group that contains one or more reports, an exception is thrown\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteReports", "type": "boolean" }, "ExportConfig": { - "$ref": "#/definitions/AWS::CodeBuild::ReportGroup.ReportExportConfig" + "$ref": "#/definitions/AWS::CodeBuild::ReportGroup.ReportExportConfig", + "markdownDescription": "Information about the destination where the raw data of this `ReportGroup` is exported\\. \n*Required*: Yes \n*Type*: [ReportExportConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-reportgroup-reportexportconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExportConfig" }, "Name": { + "markdownDescription": "The name of the `ReportGroup`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `128` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of tag key and value pairs associated with this report group\\. \nThese tags are available for use by AWS services that support AWS CodeBuild report group tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Type": { + "markdownDescription": "The type of the `ReportGroup`\\. This can be one of the following values: \nCODE\\_COVERAGE \nThe report group contains code coverage reports\\. \nTEST \nThe report group contains test reports\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `CODE_COVERAGE | TEST` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -28042,10 +34347,14 @@ "additionalProperties": false, "properties": { "ExportConfigType": { + "markdownDescription": "The export configuration type\\. Valid values are: \n+ `S3`: The report results are exported to an S3 bucket\\. \n+ `NO_EXPORT`: The report results are not exported\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `NO_EXPORT | S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExportConfigType", "type": "string" }, "S3Destination": { - "$ref": "#/definitions/AWS::CodeBuild::ReportGroup.S3ReportExportConfig" + "$ref": "#/definitions/AWS::CodeBuild::ReportGroup.S3ReportExportConfig", + "markdownDescription": "A `S3ReportExportConfig` object that contains information about the S3 bucket where the run of a report is exported\\. \n*Required*: No \n*Type*: [S3ReportExportConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-reportgroup-s3reportexportconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Destination" } }, "required": [ @@ -28057,21 +34366,33 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The name of the S3 bucket where the raw data of a report are exported\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", "type": "string" }, "BucketOwner": { + "markdownDescription": "The AWS account identifier of the owner of the Amazon S3 bucket\\. This allows report data to be exported to an Amazon S3 bucket that is owned by an account other than the account running the build\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketOwner", "type": "string" }, "EncryptionDisabled": { + "markdownDescription": "A boolean value that specifies if the results of a report are encrypted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionDisabled", "type": "boolean" }, "EncryptionKey": { + "markdownDescription": "The encryption key for the report's encrypted raw data\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionKey", "type": "string" }, "Packaging": { + "markdownDescription": "The type of build output artifact to create\\. Valid values include: \n+ `NONE`: CodeBuild creates the raw data in the output bucket\\. This is the default if packaging is not specified\\. \n+ `ZIP`: CodeBuild creates a ZIP file with the raw data in the output bucket\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | ZIP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Packaging", "type": "string" }, "Path": { + "markdownDescription": "The path to the exported report's raw data results\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", "type": "string" } }, @@ -28116,15 +34437,23 @@ "additionalProperties": false, "properties": { "AuthType": { + "markdownDescription": "The type of authentication used by the credentials\\. Valid options are OAUTH, BASIC\\_AUTH, or PERSONAL\\_ACCESS\\_TOKEN\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BASIC_AUTH | OAUTH | PERSONAL_ACCESS_TOKEN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthType", "type": "string" }, "ServerType": { + "markdownDescription": "The type of source provider\\. The valid options are GITHUB, GITHUB\\_ENTERPRISE, or BITBUCKET\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BITBUCKET | GITHUB | GITHUB_ENTERPRISE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServerType", "type": "string" }, "Token": { + "markdownDescription": "For GitHub or GitHub Enterprise, this is the personal access token\\. For Bitbucket, this is the app password\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Token", "type": "string" }, "Username": { + "markdownDescription": "The Bitbucket username when the `authType` is BASIC\\_AUTH\\. This parameter is not valid for other types of source providers or connections\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", "type": "string" } }, @@ -28192,24 +34521,34 @@ "additionalProperties": false, "properties": { "Code": { - "$ref": "#/definitions/AWS::CodeCommit::Repository.Code" + "$ref": "#/definitions/AWS::CodeCommit::Repository.Code", + "markdownDescription": "Information about code to be committed to a repository after it is created in an AWS CloudFormation stack\\. Information about code is only used in resource creation\\. Updates to a stack will not reflect changes made to code properties after initial resource creation\\. \nYou can only use this property to add code when creating a repository with a AWS CloudFormation template at creation time\\. This property cannot be used for updating code to an existing repository\\.\n*Required*: No \n*Type*: [Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-code.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Code" }, "RepositoryDescription": { + "markdownDescription": "A comment or description about the new repository\\. \nThe description field for a repository accepts all HTML characters and all valid Unicode characters\\. Applications that do not HTML\\-encode the description and display it in a webpage can expose users to potentially malicious code\\. Make sure that you HTML\\-encode the description field in any application that uses this API to display the repository description on a webpage\\.\n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepositoryDescription", "type": "string" }, "RepositoryName": { + "markdownDescription": "The name of the new repository to be created\\. \nThe repository name must be unique across the calling AWS account\\. Repository names are limited to 100 alphanumeric, dash, and underscore characters, and cannot include certain characters\\. For more information about the limits on repository names, see [Quotas](https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html) in the * AWS CodeCommit User Guide*\\. The suffix \\.git is prohibited\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[\\w\\.-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepositoryName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "One or more tag key\\-value pairs to use when tagging this repository\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Triggers": { "items": { "$ref": "#/definitions/AWS::CodeCommit::Repository.RepositoryTrigger" }, + "markdownDescription": "The JSON block of configuration information for each trigger\\. \n*Required*: No \n*Type*: List of [RepositoryTrigger](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Triggers", "type": "array" } }, @@ -28243,10 +34582,14 @@ "additionalProperties": false, "properties": { "BranchName": { + "markdownDescription": "Optional\\. Specifies a branch name to be used as the default branch when importing code into a repository on initial creation\\. If this property is not set, the name *main* will be used for the default branch for the repository\\. Changes to this property are ignored after initial resource creation\\. We recommend using this parameter to set the name to *main* to align with the default behavior of CodeCommit unless another name is needed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BranchName", "type": "string" }, "S3": { - "$ref": "#/definitions/AWS::CodeCommit::Repository.S3" + "$ref": "#/definitions/AWS::CodeCommit::Repository.S3", + "markdownDescription": "Information about the Amazon S3 bucket that contains a ZIP file of code to be committed to the repository\\. Changes to this property are ignored after initial resource creation\\. \n*Required*: Yes \n*Type*: [S3](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-s3.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3" } }, "required": [ @@ -28261,21 +34604,31 @@ "items": { "type": "string" }, + "markdownDescription": "The branches to be included in the trigger configuration\\. If you specify an empty array, the trigger applies to all branches\\. \nAlthough no content is required in the array, you must include the array itself\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Branches", "type": "array" }, "CustomData": { + "markdownDescription": "Any custom data associated with the trigger to be included in the information sent to the target of the trigger\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomData", "type": "string" }, "DestinationArn": { + "markdownDescription": "The ARN of the resource that is the target for a trigger \\(for example, the ARN of a topic in Amazon SNS\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationArn", "type": "string" }, "Events": { "items": { "type": "string" }, + "markdownDescription": "The repository events that cause the trigger to run actions in another service, such as sending a notification through Amazon SNS\\. \nThe valid value \"all\" cannot be used with any other values\\.\n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Events", "type": "array" }, "Name": { + "markdownDescription": "The name of the trigger\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -28290,12 +34643,18 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The name of the Amazon S3 bucket that contains the ZIP file with the content that will be committed to the new repository\\. This can be specified using the name of the bucket in the AWS account\\. Changes to this property are ignored after initial resource creation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", "type": "string" }, "Key": { + "markdownDescription": "The key to use for accessing the Amazon S3 bucket\\. Changes to this property are ignored after initial resource creation\\. For more information, see [Creating object key names](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html) and [Uploading objects](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) in the Amazon S3 User Guide\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "ObjectVersion": { + "markdownDescription": "The object version of the ZIP file, if versioning is enabled for the Amazon S3 bucket\\. Changes to this property are ignored after initial resource creation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectVersion", "type": "string" } }, @@ -28341,15 +34700,21 @@ "additionalProperties": false, "properties": { "ApplicationName": { + "markdownDescription": "A name for the application\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the application name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \n Updates to `ApplicationName` are not supported\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationName", "type": "string" }, "ComputePlatform": { + "markdownDescription": "The compute platform that CodeDeploy deploys the application to\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ECS | Lambda | Server` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ComputePlatform", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The metadata that you apply to CodeDeploy applications to help you organize and categorize them\\. Each tag consists of a key and an optional value, both of which you define\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -28411,16 +34776,24 @@ "additionalProperties": false, "properties": { "ComputePlatform": { + "markdownDescription": "The destination platform type for the deployment \\(`Lambda`, `Server`, or `ECS`\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ECS | Lambda | Server` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ComputePlatform", "type": "string" }, "DeploymentConfigName": { + "markdownDescription": "A name for the deployment configuration\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the deployment configuration name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \n If you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeploymentConfigName", "type": "string" }, "MinimumHealthyHosts": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts", + "markdownDescription": "The minimum number of healthy instances that should be available at any time during the deployment\\. There are two parameters expected in the input: type and value\\. \nThe type parameter takes either of the following values: \n+ HOST\\_COUNT: The value parameter represents the minimum number of healthy instances as an absolute value\\.\n+ FLEET\\_PERCENT: The value parameter represents the minimum number of healthy instances as a percentage of the total number of instances in the deployment\\. If you specify FLEET\\_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances\\.\nThe value parameter takes an integer\\. \nFor example, to set a minimum of 95% healthy instance, specify a type of FLEET\\_PERCENT and a value of 95\\. \n For more information about instance health, see [CodeDeploy Instance Health](https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-health.html) in the AWS CodeDeploy User Guide\\. \n*Required*: No \n*Type*: [MinimumHealthyHosts](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-minimumhealthyhosts.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MinimumHealthyHosts" }, "TrafficRoutingConfig": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.TrafficRoutingConfig" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.TrafficRoutingConfig", + "markdownDescription": "The configuration that specifies how the deployment traffic is routed\\. \n*Required*: No \n*Type*: [TrafficRoutingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-trafficroutingconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TrafficRoutingConfig" } }, "type": "object" @@ -28449,9 +34822,13 @@ "additionalProperties": false, "properties": { "Type": { + "markdownDescription": "The minimum healthy instance type: \n+ HOST\\_COUNT: The minimum number of healthy instance as an absolute value\\.\n+ FLEET\\_PERCENT: The minimum number of healthy instance as a percentage of the total number of instance in the deployment\\.\nIn an example of nine instance, if a HOST\\_COUNT of six is specified, deploy to up to three instances at a time\\. The deployment is successful if six or more instances are deployed to successfully\\. Otherwise, the deployment fails\\. If a FLEET\\_PERCENT of 40 is specified, deploy to up to five instance at a time\\. The deployment is successful if four or more instance are deployed to successfully\\. Otherwise, the deployment fails\\. \nIn a call to `GetDeploymentConfig`, CodeDeployDefault\\.OneAtATime returns a minimum healthy instance type of MOST\\_CONCURRENCY and a value of 1\\. This means a deployment to only one instance at a time\\. \\(You cannot set the type to MOST\\_CONCURRENCY, only to HOST\\_COUNT or FLEET\\_PERCENT\\.\\) In addition, with CodeDeployDefault\\.OneAtATime, AWS CodeDeploy attempts to ensure that all instances but one are kept in a healthy state during the deployment\\. Although this allows one instance at a time to be taken offline for a new deployment, it also means that if the deployment to the last instance fails, the overall deployment is still successful\\.\nFor more information, see [AWS CodeDeploy Instance Health](https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-health.html) in the *AWS CodeDeploy User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `FLEET_PERCENT | HOST_COUNT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" }, "Value": { + "markdownDescription": "The minimum healthy instance value\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "number" } }, @@ -28465,9 +34842,13 @@ "additionalProperties": false, "properties": { "CanaryInterval": { + "markdownDescription": "The number of minutes between the first and second traffic shifts of a `TimeBasedCanary` deployment\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CanaryInterval", "type": "number" }, "CanaryPercentage": { + "markdownDescription": "The percentage of traffic to shift in the first increment of a `TimeBasedCanary` deployment\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CanaryPercentage", "type": "number" } }, @@ -28481,9 +34862,13 @@ "additionalProperties": false, "properties": { "LinearInterval": { + "markdownDescription": "The number of minutes between each incremental traffic shift of a `TimeBasedLinear` deployment\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LinearInterval", "type": "number" }, "LinearPercentage": { + "markdownDescription": "The percentage of traffic that is shifted at the start of each increment of a `TimeBasedLinear` deployment\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LinearPercentage", "type": "number" } }, @@ -28497,12 +34882,18 @@ "additionalProperties": false, "properties": { "TimeBasedCanary": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.TimeBasedCanary" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.TimeBasedCanary", + "markdownDescription": "A configuration that shifts traffic from one version of a Lambda function or ECS task set to another in two increments\\. The original and target Lambda function versions or ECS task sets are specified in the deployment's AppSpec file\\. \n*Required*: No \n*Type*: [TimeBasedCanary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-timebasedcanary.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeBasedCanary" }, "TimeBasedLinear": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.TimeBasedLinear" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.TimeBasedLinear", + "markdownDescription": "A configuration that shifts traffic from one version of a Lambda function or Amazon ECS task set to another in equal increments, with an equal number of minutes between each increment\\. The original and target Lambda function versions or Amazon ECS task sets are specified in the deployment's AppSpec file\\. \n*Required*: No \n*Type*: [TimeBasedLinear](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-timebasedlinear.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeBasedLinear" }, "Type": { + "markdownDescription": "The type of traffic shifting \\(`TimeBasedCanary` or `TimeBasedLinear`\\) used by a deployment configuration\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AllAtOnce | TimeBasedCanary | TimeBasedLinear` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -28547,66 +34938,98 @@ "additionalProperties": false, "properties": { "AlarmConfiguration": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration", + "markdownDescription": "Information about the Amazon CloudWatch alarms that are associated with the deployment group\\. \n*Required*: No \n*Type*: [AlarmConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarmconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmConfiguration" }, "ApplicationName": { + "markdownDescription": "The name of an existing CodeDeploy application to associate this deployment group with\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationName", "type": "string" }, "AutoRollbackConfiguration": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration", + "markdownDescription": "Information about the automatic rollback configuration that is associated with the deployment group\\. If you specify this property, don't specify the `Deployment` property\\. \n*Required*: No \n*Type*: [AutoRollbackConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-autorollbackconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoRollbackConfiguration" }, "AutoScalingGroups": { "items": { "type": "string" }, + "markdownDescription": "A list of associated Auto Scaling groups that CodeDeploy automatically deploys revisions to when new instances are created\\. Duplicates are not allowed\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoScalingGroups", "type": "array" }, "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.BlueGreenDeploymentConfiguration" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.BlueGreenDeploymentConfiguration", + "markdownDescription": "Information about blue/green deployment options for a deployment group\\. \n*Required*: No \n*Type*: [BlueGreenDeploymentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlueGreenDeploymentConfiguration" }, "Deployment": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Deployment" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Deployment", + "markdownDescription": "The application revision to deploy to this deployment group\\. If you specify this property, your target application revision is deployed as soon as the provisioning process is complete\\. If you specify this property, don't specify the `AutoRollbackConfiguration` property\\. \n*Required*: No \n*Type*: [Deployment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Deployment" }, "DeploymentConfigName": { + "markdownDescription": "A deployment configuration name or a predefined configuration name\\. With predefined configurations, you can deploy application revisions to one instance at a time \\(`CodeDeployDefault.OneAtATime`\\), half of the instances at a time \\(`CodeDeployDefault.HalfAtATime`\\), or all the instances at once \\(`CodeDeployDefault.AllAtOnce`\\)\\. For more information and valid values, see [Working with Deployment Configurations](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html) in the *AWS CodeDeploy User Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentConfigName", "type": "string" }, "DeploymentGroupName": { + "markdownDescription": "A name for the deployment group\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the deployment group name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \n If you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeploymentGroupName", "type": "string" }, "DeploymentStyle": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.DeploymentStyle" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.DeploymentStyle", + "markdownDescription": "Attributes that determine the type of deployment to run and whether to route deployment traffic behind a load balancer\\. \n If you specify this property with a blue/green deployment type, don't specify the `AutoScalingGroups`, `LoadBalancerInfo`, or `Deployment` properties\\. \n For blue/green deployments, AWS CloudFormation supports deployments on Lambda compute platforms only\\. You can perform Amazon ECS blue/green deployments using `AWS::CodeDeploy::BlueGreen ` hook\\. See [Perform Amazon ECS blue/green deployments through CodeDeploy using AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/blue-green.html) for more information\\. \n*Required*: No \n*Type*: [DeploymentStyle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentstyle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentStyle" }, "ECSServices": { "items": { "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.ECSService" }, + "markdownDescription": "The target Amazon ECS services in the deployment group\\. This applies only to deployment groups that use the Amazon ECS compute platform\\. A target Amazon ECS service is specified as an Amazon ECS cluster and service name pair using the format `:`\\. \n*Required*: No \n*Type*: List of [ECSService](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ecsservice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ECSServices", "type": "array" }, "Ec2TagFilters": { "items": { "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter" }, + "markdownDescription": "The Amazon EC2 tags that are already applied to Amazon EC2 instances that you want to include in the deployment group\\. CodeDeploy includes all Amazon EC2 instances identified by any of the tags you specify in this deployment group\\. Duplicates are not allowed\\. \n You can specify `EC2TagFilters` or `Ec2TagSet`, but not both\\. \n*Required*: No \n*Type*: List of [EC2TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ec2TagFilters", "type": "array" }, "Ec2TagSet": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSet" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSet", + "markdownDescription": "Information about groups of tags applied to Amazon EC2 instances\\. The deployment group includes only Amazon EC2 instances identified by all the tag groups\\. Cannot be used in the same call as `ec2TagFilter`\\. \n*Required*: No \n*Type*: [EC2TagSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ec2TagSet" }, "LoadBalancerInfo": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo", + "markdownDescription": "Information about the load balancer to use in a deployment\\. For more information, see [ Integrating CodeDeploy with Elastic Load Balancing](https://docs.aws.amazon.com/codedeploy/latest/userguide/integrations-aws-elastic-load-balancing.html) in the *AWS CodeDeploy User Guide*\\. \n*Required*: No \n*Type*: [LoadBalancerInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-loadbalancerinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerInfo" }, "OnPremisesInstanceTagFilters": { "items": { "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter" }, + "markdownDescription": "The on\\-premises instance tags already applied to on\\-premises instances that you want to include in the deployment group\\. CodeDeploy includes all on\\-premises instances identified by any of the tags you specify in this deployment group\\. To register on\\-premises instances with CodeDeploy, see [Working with On\\-Premises Instances for CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-on-premises.html) in the *AWS CodeDeploy User Guide*\\. Duplicates are not allowed\\. \n You can specify `OnPremisesInstanceTagFilters` or `OnPremisesInstanceTagSet`, but not both\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnPremisesInstanceTagFilters", "type": "array" }, "OnPremisesTagSet": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet", + "markdownDescription": "Information about groups of tags applied to on\\-premises instances\\. The deployment group includes only on\\-premises instances identified by all the tag groups\\. \n You can specify `OnPremisesInstanceTagFilters` or `OnPremisesInstanceTagSet`, but not both\\. \n*Required*: No \n*Type*: [OnPremisesTagSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisestagset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnPremisesTagSet" }, "OutdatedInstancesStrategy": { "type": "string" }, "ServiceRoleArn": { + "markdownDescription": "A service role Amazon Resource Name \\(ARN\\) that grants CodeDeploy permission to make calls to AWS services on your behalf\\. For more information, see [Create a Service Role for AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-create-service-role.html) in the *AWS CodeDeploy User Guide*\\. \n In some cases, you might need to add a dependency on the service role's policy\\. For more information, see IAM role policy in [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html)\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceRoleArn", "type": "string" }, "Tags": { @@ -28619,6 +35042,8 @@ "items": { "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TriggerConfig" }, + "markdownDescription": "Information about triggers associated with the deployment group\\. Duplicates are not allowed \n*Required*: No \n*Type*: List of [TriggerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-triggerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TriggerConfigurations", "type": "array" } }, @@ -28653,6 +35078,8 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the alarm\\. Maximum length is 255 characters\\. Each alarm name can be used only once in a list of alarms\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -28665,12 +35092,18 @@ "items": { "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Alarm" }, + "markdownDescription": "A list of alarms configured for the deployment group\\. A maximum of 10 alarms can be added to a deployment group\\. \n*Required*: No \n*Type*: List of [Alarm](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarm.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alarms", "type": "array" }, "Enabled": { + "markdownDescription": "Indicates whether the alarm configuration is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "IgnorePollAlarmFailure": { + "markdownDescription": "Indicates whether a deployment should continue if information about the current state of alarms cannot be retrieved from Amazon CloudWatch\\. The default value is `false`\\. \n+ `true`: The deployment proceeds even if alarm status information can't be retrieved from CloudWatch\\.\n+ `false`: The deployment stops if alarm status information can't be retrieved from CloudWatch\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IgnorePollAlarmFailure", "type": "boolean" } }, @@ -28680,12 +35113,16 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Indicates whether a defined automatic rollback configuration is currently enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "Events": { "items": { "type": "string" }, + "markdownDescription": "The event type or types that trigger a rollback\\. Valid values are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM`, or `DEPLOYMENT_STOP_ON_REQUEST`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Events", "type": "array" } }, @@ -28695,13 +35132,19 @@ "additionalProperties": false, "properties": { "DeploymentReadyOption": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.DeploymentReadyOption" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.DeploymentReadyOption", + "markdownDescription": "Information about the action to take when newly provisioned instances are ready to receive traffic in a blue/green deployment\\. \n*Required*: No \n*Type*: [DeploymentReadyOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentreadyoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentReadyOption" }, "GreenFleetProvisioningOption": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.GreenFleetProvisioningOption" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.GreenFleetProvisioningOption", + "markdownDescription": "Information about how instances are provisioned for a replacement environment in a blue/green deployment\\. \n*Required*: No \n*Type*: [GreenFleetProvisioningOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-greenfleetprovisioningoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GreenFleetProvisioningOption" }, "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.BlueInstanceTerminationOption" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.BlueInstanceTerminationOption", + "markdownDescription": "Information about whether to terminate instances in the original fleet during a blue/green deployment\\. \n*Required*: No \n*Type*: [BlueInstanceTerminationOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-blueinstanceterminationoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TerminateBlueInstancesOnDeploymentSuccess" } }, "type": "object" @@ -28710,9 +35153,13 @@ "additionalProperties": false, "properties": { "Action": { + "markdownDescription": "The action to take on instances in the original environment after a successful blue/green deployment\\. \n+ `TERMINATE`: Instances are terminated after a specified wait time\\.\n+ `KEEP_ALIVE`: Instances are left running after they are deregistered from the load balancer and removed from the deployment group\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `KEEP_ALIVE | TERMINATE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", "type": "string" }, "TerminationWaitTimeInMinutes": { + "markdownDescription": "For an Amazon EC2 deployment, the number of minutes to wait after a successful blue/green deployment before terminating instances from the original environment\\. \n For an Amazon ECS deployment, the number of minutes before deleting the original \\(blue\\) task set\\. During an Amazon ECS deployment, CodeDeploy shifts traffic from the original \\(blue\\) task set to a replacement \\(green\\) task set\\. \n The maximum setting is 2880 minutes \\(2 days\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TerminationWaitTimeInMinutes", "type": "number" } }, @@ -28722,13 +35169,19 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A comment about the deployment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "IgnoreApplicationStopFailures": { + "markdownDescription": "If true, then if an `ApplicationStop`, `BeforeBlockTraffic`, or `AfterBlockTraffic` deployment lifecycle event to an instance fails, then the deployment continues to the next deployment lifecycle event\\. For example, if `ApplicationStop` fails, the deployment continues with DownloadBundle\\. If `BeforeBlockTraffic` fails, the deployment continues with `BlockTraffic`\\. If `AfterBlockTraffic` fails, the deployment continues with `ApplicationStop`\\. \n If false or not specified, then if a lifecycle event fails during a deployment to an instance, that deployment fails\\. If deployment to that instance is part of an overall deployment and the number of healthy hosts is not less than the minimum number of healthy hosts, then a deployment to the next instance is attempted\\. \n During a deployment, the AWS CodeDeploy agent runs the scripts specified for `ApplicationStop`, `BeforeBlockTraffic`, and `AfterBlockTraffic` in the AppSpec file from the previous successful deployment\\. \\(All other scripts are run from the AppSpec file in the current deployment\\.\\) If one of these scripts contains an error and does not run successfully, the deployment can fail\\. \n If the cause of the failure is a script from the last successful deployment that will never run successfully, create a new deployment and use `ignoreApplicationStopFailures` to specify that the `ApplicationStop`, `BeforeBlockTraffic`, and `AfterBlockTraffic` failures should be ignored\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IgnoreApplicationStopFailures", "type": "boolean" }, "Revision": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.RevisionLocation" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.RevisionLocation", + "markdownDescription": "Information about the location of stored application artifacts and the service from which to retrieve them\\. \n*Required*: Yes \n*Type*: [RevisionLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Revision" } }, "required": [ @@ -28740,9 +35193,13 @@ "additionalProperties": false, "properties": { "ActionOnTimeout": { + "markdownDescription": "Information about when to reroute traffic from an original environment to a replacement environment in a blue/green deployment\\. \n+ CONTINUE\\_DEPLOYMENT: Register new instances with the load balancer immediately after the new application revision is installed on the instances in the replacement environment\\.\n+ STOP\\_DEPLOYMENT: Do not register new instances with a load balancer unless traffic rerouting is started using [ContinueDeployment ](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ContinueDeployment.html)\\. If traffic rerouting is not started before the end of the specified wait period, the deployment status is changed to Stopped\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `CONTINUE_DEPLOYMENT | STOP_DEPLOYMENT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionOnTimeout", "type": "string" }, "WaitTimeInMinutes": { + "markdownDescription": "The number of minutes to wait before the status of a blue/green deployment is changed to Stopped if rerouting is not started manually\\. Applies only to the `STOP_DEPLOYMENT` option for `actionOnTimeout`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WaitTimeInMinutes", "type": "number" } }, @@ -28752,9 +35209,13 @@ "additionalProperties": false, "properties": { "DeploymentOption": { + "markdownDescription": "Indicates whether to route deployment traffic behind a load balancer\\. \n An Amazon EC2 Application Load Balancer or Network Load Balancer is required for an Amazon ECS deployment\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `WITH_TRAFFIC_CONTROL | WITHOUT_TRAFFIC_CONTROL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentOption", "type": "string" }, "DeploymentType": { + "markdownDescription": "Indicates whether to run an in\\-place or blue/green deployment\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BLUE_GREEN | IN_PLACE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentType", "type": "string" } }, @@ -28764,12 +35225,18 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The tag filter key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Type": { + "markdownDescription": "The tag filter type: \n+ `KEY_ONLY`: Key only\\.\n+ `VALUE_ONLY`: Value only\\.\n+ `KEY_AND_VALUE`: Key and value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `KEY_AND_VALUE | KEY_ONLY | VALUE_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" }, "Value": { + "markdownDescription": "The tag filter value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -28782,6 +35249,8 @@ "items": { "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject" }, + "markdownDescription": "The Amazon EC2 tags that are already applied to Amazon EC2 instances that you want to include in the deployment group\\. CodeDeploy includes all Amazon EC2 instances identified by any of the tags you specify in this deployment group\\. \n Duplicates are not allowed\\. \n*Required*: No \n*Type*: List of [EC2TagSetListObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagsetlistobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ec2TagSetList", "type": "array" } }, @@ -28794,6 +35263,8 @@ "items": { "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter" }, + "markdownDescription": "A list that contains other lists of Amazon EC2 instance tag groups\\. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list\\. \n*Required*: No \n*Type*: List of [EC2TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ec2TagGroup", "type": "array" } }, @@ -28803,9 +35274,13 @@ "additionalProperties": false, "properties": { "ClusterName": { + "markdownDescription": "The name of the cluster that the Amazon ECS service is associated with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterName", "type": "string" }, "ServiceName": { + "markdownDescription": "The name of the target Amazon ECS service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceName", "type": "string" } }, @@ -28819,6 +35294,8 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "For blue/green deployments, the name of the load balancer that is used to route traffic from original instances to replacement instances in a blue/green deployment\\. For in\\-place deployments, the name of the load balancer that instances are deregistered from so they are not serving traffic during a deployment, and then re\\-registered with after the deployment is complete\\. \nAWS CloudFormation supports blue/green deployments on AWS Lambda compute platforms only\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -28828,9 +35305,13 @@ "additionalProperties": false, "properties": { "CommitId": { + "markdownDescription": "The SHA1 commit ID of the GitHub commit that represents the bundled artifacts for the application revision\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CommitId", "type": "string" }, "Repository": { + "markdownDescription": "The GitHub account and repository pair that stores a reference to the commit that represents the bundled artifacts for the application revision\\. \nSpecify the value as `account/repository`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Repository", "type": "string" } }, @@ -28844,6 +35325,8 @@ "additionalProperties": false, "properties": { "Action": { + "markdownDescription": "The method used to add instances to a replacement environment\\. \n+ `DISCOVER_EXISTING`: Use instances that already exist or will be created manually\\.\n+ `COPY_AUTO_SCALING_GROUP`: Use settings from a specified Auto Scaling group to define and create instances in a new Auto Scaling group\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `COPY_AUTO_SCALING_GROUP | DISCOVER_EXISTING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", "type": "string" } }, @@ -28856,12 +35339,16 @@ "items": { "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.ELBInfo" }, + "markdownDescription": "An array that contains information about the load balancer to use for load balancing in a deployment\\. In Elastic Load Balancing, load balancers are used with Classic Load Balancers\\. \n Adding more than one load balancer to the array is not supported\\. \n*Required*: No \n*Type*: List of [ELBInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-elbinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElbInfoList", "type": "array" }, "TargetGroupInfoList": { "items": { "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo" }, + "markdownDescription": "An array that contains information about the target group to use for load balancing in a deployment\\. In Elastic Load Balancing, target groups are used with Application Load Balancers\\. \n Adding more than one target group to the array is not supported\\. \n*Required*: Conditional \n*Type*: List of [TargetGroupInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-targetgroupinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroupInfoList", "type": "array" }, "TargetGroupPairInfoList": { @@ -28880,6 +35367,8 @@ "items": { "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject" }, + "markdownDescription": "A list that contains other lists of on\\-premises instance tag groups\\. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list\\. \nDuplicates are not allowed\\. \n*Required*: No \n*Type*: List of [OnPremisesTagSetListObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisestagsetlistobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnPremisesTagSetList", "type": "array" } }, @@ -28892,6 +35381,8 @@ "items": { "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter" }, + "markdownDescription": "Information about groups of on\\-premises instance tags\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnPremisesTagGroup", "type": "array" } }, @@ -28901,13 +35392,19 @@ "additionalProperties": false, "properties": { "GitHubLocation": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.GitHubLocation" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.GitHubLocation", + "markdownDescription": "Information about the location of application artifacts stored in GitHub\\. \n*Required*: No \n*Type*: [GitHubLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-githublocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GitHubLocation" }, "RevisionType": { + "markdownDescription": "The type of application revision: \n+ S3: An application revision stored in Amazon S3\\.\n+ GitHub: An application revision stored in GitHub \\(EC2/On\\-premises deployments only\\)\\.\n+ String: A YAML\\-formatted or JSON\\-formatted string \\(AWS Lambda deployments only\\)\\.\n+ AppSpecContent: An `AppSpecContent` object that contains the contents of an AppSpec file for an AWS Lambda or Amazon ECS deployment\\. The content is formatted as JSON or YAML stored as a RawString\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `AppSpecContent | GitHub | S3 | String` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RevisionType", "type": "string" }, "S3Location": { - "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.S3Location" + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.S3Location", + "markdownDescription": "Information about the location of a revision stored in Amazon S3\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Location" } }, "type": "object" @@ -28916,18 +35413,28 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The name of the Amazon S3 bucket where the application revision is stored\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", "type": "string" }, "BundleType": { + "markdownDescription": "The file type of the application revision\\. Must be one of the following: \n+ JSON\n+ tar: A tar archive file\\.\n+ tgz: A compressed tar archive file\\.\n+ YAML\n+ zip: A zip archive file\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `JSON | tar | tgz | YAML | zip` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BundleType", "type": "string" }, "ETag": { + "markdownDescription": "The ETag of the Amazon S3 object that represents the bundled artifacts for the application revision\\. \nIf the ETag is not specified as an input parameter, ETag validation of the object is skipped\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ETag", "type": "string" }, "Key": { + "markdownDescription": "The name of the Amazon S3 object that represents the bundled artifacts for the application revision\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Version": { + "markdownDescription": "A specific version of the Amazon S3 object that represents the bundled artifacts for the application revision\\. \nIf the version is not specified, the system uses the most recent version by default\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -28941,12 +35448,18 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The on\\-premises instance tag filter key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Type": { + "markdownDescription": "The on\\-premises instance tag filter type: \n+ KEY\\_ONLY: Key only\\.\n+ VALUE\\_ONLY: Value only\\.\n+ KEY\\_AND\\_VALUE: Key and value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `KEY_AND_VALUE | KEY_ONLY | VALUE_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" }, "Value": { + "markdownDescription": "The on\\-premises instance tag filter value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -28956,6 +35469,8 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "For blue/green deployments, the name of the target group that instances in the original environment are deregistered from, and instances in the replacement environment registered with\\. For in\\-place deployments, the name of the target group that instances are deregistered from, so they are not serving traffic during a deployment, and then re\\-registered with after the deployment completes\\. No duplicates allowed\\. \nAWS CloudFormation supports blue/green deployments on AWS Lambda compute platforms only\\.\nThis value cannot exceed 32 characters, so you should use the `Name` property of the target group, or the `TargetGroupName` attribute with the `Fn::GetAtt` intrinsic function, as shown in the following example\\. Don't use the group's Amazon Resource Name \\(ARN\\) or `TargetGroupFullName` attribute\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -28998,12 +35513,18 @@ "items": { "type": "string" }, + "markdownDescription": "The event type or types that trigger notifications\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TriggerEvents", "type": "array" }, "TriggerName": { + "markdownDescription": "The name of the notification trigger\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TriggerName", "type": "string" }, "TriggerTargetArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon Simple Notification Service topic through which notifications about deployment or instance events are sent\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TriggerTargetArn", "type": "string" } }, @@ -29045,24 +35566,34 @@ "additionalProperties": false, "properties": { "AgentPermissions": { - "$ref": "#/definitions/AWS::CodeGuruProfiler::ProfilingGroup.AgentPermissions" + "$ref": "#/definitions/AWS::CodeGuruProfiler::ProfilingGroup.AgentPermissions", + "markdownDescription": "The agent permissions attached to this profiling group\\. This action group grants `ConfigureAgent` and `PostAgentProfile` permissions to perform actions required by the profiling agent\\. The Json consists of key `Principals`\\. \n*Principals*: A list of string ARNs for the roles and users you want to grant access to the profiling group\\. Wildcards are not supported in the ARNs\\. You are allowed to provide up to 50 ARNs\\. An empty list is not permitted\\. This is a required key\\. \nFor more information, see [Resource\\-based policies in CodeGuru Profiler](https://docs.aws.amazon.com/codeguru/latest/profiler-ug/resource-based-policies.html) in the *Amazon CodeGuru Profiler user guide*, [ConfigureAgent](https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html), and [PostAgentProfile](https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_PostAgentProfile.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AgentPermissions" }, "AnomalyDetectionNotificationConfiguration": { "items": { "$ref": "#/definitions/AWS::CodeGuruProfiler::ProfilingGroup.Channel" }, + "markdownDescription": "Adds anomaly notifications for a profiling group\\. \n*Required*: No \n*Type*: List of [Channel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codeguruprofiler-profilinggroup-channel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AnomalyDetectionNotificationConfiguration", "type": "array" }, "ComputePlatform": { + "markdownDescription": "The compute platform of the profiling group\\. Use `AWSLambda` if your application runs on AWS Lambda\\. Use `Default` if your application runs on a compute platform that is not AWS Lambda, such an Amazon EC2 instance, an on\\-premises server, or a different platform\\. If not specified, `Default` is used\\. This property is immutable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ComputePlatform", "type": "string" }, "ProfilingGroupName": { + "markdownDescription": "The name of the profiling group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProfilingGroupName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of tags to add to the created profiling group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -29111,9 +35642,13 @@ "additionalProperties": false, "properties": { "channelId": { + "markdownDescription": "The channel ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "channelId", "type": "string" }, "channelUri": { + "markdownDescription": "The channel URI\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "channelUri", "type": "string" } }, @@ -29158,24 +35693,36 @@ "additionalProperties": false, "properties": { "BucketName": { + "markdownDescription": "The name of the bucket\\. This is required for your S3Bucket repositoryThe name must start with the prefix, `codeguru-reviewer-*`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketName", "type": "string" }, "ConnectionArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS CodeStar Connections connection\\. Its format is `arn:aws:codestar-connections:region-id:aws-account_id:connection/connection-id`\\. For more information, see [Connection](https://docs.aws.amazon.com/codestar-connections/latest/APIReference/API_Connection.html) in the *AWS CodeStar Connections API Reference*\\. \n `ConnectionArn` must be specified for Bitbucket and GitHub Enterprise Server repositories\\. It has no effect if it is specified for an AWS CodeCommit repository\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `arn:aws(-[\\w]+)*:.+:.+:[0-9]{12}:.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectionArn", "type": "string" }, "Name": { + "markdownDescription": "The name of the repository\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^\\S[\\w.-]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Owner": { + "markdownDescription": "The owner of the repository\\. For a GitHub Enterprise Server or Bitbucket repository, this is the username for the account that owns the repository\\. \n `Owner` must be specified for Bitbucket and GitHub Enterprise Server repositories\\. It has no effect if it is specified for an AWS CodeCommit repository\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^\\S(.*\\S)?$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Owner", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs used to tag an associated repository\\. A tag is a custom attribute label with two parts: \n+ A *tag key* \\(for example, `CostCenter`, `Environment`, `Project`, or `Secret`\\)\\. Tag keys are case sensitive\\.\n+ An optional field known as a *tag value* \\(for example, `111122223333`, `Production`, or a team name\\)\\. Omitting the tag value is the same as using an empty string\\. Like tag keys, tag values are case sensitive\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" }, "Type": { + "markdownDescription": "The type of repository that contains the source code to be reviewed\\. The valid values are: \n+ `CodeCommit`\n+ `Bitbucket`\n+ `GitHubEnterpriseServer`\n+ `S3Bucket`\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -29242,33 +35789,49 @@ "additionalProperties": false, "properties": { "Category": { + "markdownDescription": "The category of the custom action, such as a build action or a test action\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Approval | Build | Deploy | Invoke | Source | Test` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Category", "type": "string" }, "ConfigurationProperties": { "items": { "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ConfigurationProperties" }, + "markdownDescription": "The configuration properties for the custom action\\. \nYou can refer to a name in the configuration properties of the custom action within the URL templates by following the format of \\{Config:name\\}, as long as the configuration property is both required and not secret\\. For more information, see [Create a Custom Action for a Pipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/how-to-create-custom-action.html)\\.\n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html) of [ConfigurationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html) \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfigurationProperties", "type": "array" }, "InputArtifactDetails": { - "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails" + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails", + "markdownDescription": "The details of the input artifact for the action, such as its commit ID\\. \n*Required*: Yes \n*Type*: [ArtifactDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-artifactdetails.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InputArtifactDetails" }, "OutputArtifactDetails": { - "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails" + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails", + "markdownDescription": "The details of the output artifact of the action, such as its commit ID\\. \n*Required*: Yes \n*Type*: [ArtifactDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-artifactdetails.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OutputArtifactDetails" }, "Provider": { + "markdownDescription": "The provider of the service used in the custom action, such as CodeDeploy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `35` \n*Pattern*: `[0-9A-Za-z_-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Provider", "type": "string" }, "Settings": { - "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.Settings" + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.Settings", + "markdownDescription": "URLs that provide users information about this custom action\\. \n*Required*: No \n*Type*: [Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-settings.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Settings" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags for the custom action\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Version": { + "markdownDescription": "The version identifier of the custom action\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `9` \n*Pattern*: `[0-9A-Za-z_-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Version", "type": "string" } }, @@ -29306,9 +35869,13 @@ "additionalProperties": false, "properties": { "MaximumCount": { + "markdownDescription": "The maximum number of artifacts allowed for the action type\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumCount", "type": "number" }, "MinimumCount": { + "markdownDescription": "The minimum number of artifacts allowed for the action type\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinimumCount", "type": "number" } }, @@ -29322,24 +35889,38 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the action configuration property that is displayed to users\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `160` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Key": { + "markdownDescription": "Whether the configuration property is a key\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "boolean" }, "Name": { + "markdownDescription": "The name of the action configuration property\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Queryable": { + "markdownDescription": "Indicates that the property is used with `PollForJobs`\\. When creating a custom action, an action can have up to one queryable property\\. If it has one, that property must be both required and not secret\\. \nIf you create a pipeline with a custom action type, and that custom action contains a queryable property, the value for that configuration property is subject to other restrictions\\. The value must be less than or equal to twenty \\(20\\) characters\\. The value can contain only alphanumeric characters, underscores, and hyphens\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Queryable", "type": "boolean" }, "Required": { + "markdownDescription": "Whether the configuration property is a required value\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Required", "type": "boolean" }, "Secret": { + "markdownDescription": "Whether the configuration property is secret\\. Secrets are hidden from all calls except for `GetJobDetails`, `GetThirdPartyJobDetails`, `PollForJobs`, and `PollForThirdPartyJobs`\\. \nWhen updating a pipeline, passing \\* \\* \\* \\* \\* without changing any other values of the action preserves the previous value of the secret\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Secret", "type": "boolean" }, "Type": { + "markdownDescription": "The type of the configuration property\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Boolean | Number | String` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -29355,15 +35936,23 @@ "additionalProperties": false, "properties": { "EntityUrlTemplate": { + "markdownDescription": "The URL returned to the CodePipeline console that provides a deep link to the resources of the external system, such as the configuration page for a CodeDeploy deployment group\\. This link is provided as part of the action display in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntityUrlTemplate", "type": "string" }, "ExecutionUrlTemplate": { + "markdownDescription": "The URL returned to the CodePipeline console that contains a link to the top\\-level landing page for the external system, such as the console page for CodeDeploy\\. This link is shown on the pipeline view page in the CodePipeline console and provides a link to the execution entity of the external action\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionUrlTemplate", "type": "string" }, "RevisionUrlTemplate": { + "markdownDescription": "The URL returned to the CodePipeline console that contains a link to the page where customers can update or change the configuration of the external action\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RevisionUrlTemplate", "type": "string" }, "ThirdPartyConfigurationUrl": { + "markdownDescription": "The URL of a sign\\-up page where users can sign up for an external service and perform initial configuration of the action provided by that service\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThirdPartyConfigurationUrl", "type": "string" } }, @@ -29405,39 +35994,55 @@ "additionalProperties": false, "properties": { "ArtifactStore": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore" + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore", + "markdownDescription": "The S3 bucket where artifacts for the pipeline are stored\\. \nYou must include either `artifactStore` or `artifactStores` in your pipeline, but you cannot use both\\. If you create a cross\\-region action in your pipeline, you must use `artifactStores`\\.\n*Required*: Conditional \n*Type*: [ArtifactStore](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArtifactStore" }, "ArtifactStores": { "items": { "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStoreMap" }, + "markdownDescription": "A mapping of `artifactStore` objects and their corresponding AWS Regions\\. There must be an artifact store for the pipeline Region and for each cross\\-region action in the pipeline\\. \nYou must include either `artifactStore` or `artifactStores` in your pipeline, but you cannot use both\\. If you create a cross\\-region action in your pipeline, you must use `artifactStores`\\.\n*Required*: Conditional \n*Type*: List of [ArtifactStoreMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstoremap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArtifactStores", "type": "array" }, "DisableInboundStageTransitions": { "items": { "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageTransition" }, + "markdownDescription": "Represents the input of a `DisableStageTransition` action\\. \n*Required*: No \n*Type*: List of [StageTransition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-disableinboundstagetransitions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableInboundStageTransitions", "type": "array" }, "Name": { + "markdownDescription": "The name of the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9.@\\-_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RestartExecutionOnUpdate": { + "markdownDescription": "Indicates whether to rerun the CodePipeline pipeline after you update it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestartExecutionOnUpdate", "type": "boolean" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for CodePipeline to use to either perform actions with no `actionRoleArn`, or to use to assume roles for actions with an `actionRoleArn`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `arn:aws(-[\\w]+)*:iam::[0-9]{12}:role/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "Stages": { "items": { "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageDeclaration" }, + "markdownDescription": "Represents information about a stage and its definition\\. \n*Required*: Yes \n*Type*: List of [StageDeclaration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Stages", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Specifies the tags applied to the pipeline\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -29472,36 +36077,54 @@ "additionalProperties": false, "properties": { "ActionTypeId": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionTypeId" + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionTypeId", + "markdownDescription": "Specifies the action type and the provider of the action\\. \n*Required*: Yes \n*Type*: [ActionTypeId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionTypeId" }, "Configuration": { + "markdownDescription": "The action's configuration\\. These are key\\-value pairs that specify input values for an action\\. For more information, see [Action Structure Requirements in CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements)\\. For the list of configuration properties for the AWS CloudFormation action type in CodePipeline, see [Configuration Properties Reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-action-reference.html) in the * AWS CloudFormation User Guide*\\. For template snippets with examples, see [Using Parameter Override Functions with CodePipeline Pipelines](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-parameter-override-functions.html) in the * AWS CloudFormation User Guide*\\. \nThe values can be represented in either JSON or YAML format\\. For example, the JSON configuration item format is as follows: \n *JSON:* \n `\"Configuration\" : { Key : Value },` \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configuration", "type": "object" }, "InputArtifacts": { "items": { "$ref": "#/definitions/AWS::CodePipeline::Pipeline.InputArtifact" }, + "markdownDescription": "The name or ID of the artifact consumed by the action, such as a test or build artifact\\. \nFor a CodeBuild action with multiple input artifacts, one of your input sources must be designated the PrimarySource\\. For more information, see the [CodeBuild action reference page](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodeBuild.html) in the *AWS CodePipeline User Guide*\\.\n*Required*: No \n*Type*: List of [InputArtifact](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-inputartifacts.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputArtifacts", "type": "array" }, "Name": { + "markdownDescription": "The action declaration's name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9.@\\-_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Namespace": { + "markdownDescription": "The variable namespace associated with the action\\. All variables produced as output by this action fall under this namespace\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9@\\-_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", "type": "string" }, "OutputArtifacts": { "items": { "$ref": "#/definitions/AWS::CodePipeline::Pipeline.OutputArtifact" }, + "markdownDescription": "The name or ID of the result of the action declaration, such as a test or build artifact\\. \n*Required*: No \n*Type*: List of [OutputArtifact](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-outputartifacts.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputArtifacts", "type": "array" }, "Region": { + "markdownDescription": "The action declaration's AWS Region, such as us\\-east\\-1\\. \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the IAM service role that performs the declared action\\. This is assumed through the roleArn for the pipeline\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `arn:aws(-[\\w]+)*:iam::[0-9]{12}:role/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "RunOrder": { + "markdownDescription": "The order in which actions are run\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `999` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RunOrder", "type": "number" } }, @@ -29515,15 +36138,23 @@ "additionalProperties": false, "properties": { "Category": { + "markdownDescription": "A category defines what kind of action can be taken in the stage, and constrains the provider type for the action\\. Valid categories are limited to one of the values below\\. \n+ `Source`\n+ `Build`\n+ `Test`\n+ `Deploy`\n+ `Invoke`\n+ `Approval`\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Category", "type": "string" }, "Owner": { + "markdownDescription": "The creator of the action being called\\. There are three valid values for the `Owner` field in the action category section within your pipeline structure: `AWS`, `ThirdParty`, and `Custom`\\. For more information, see [Valid Action Types and Providers in CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#actions-valid-providers)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Owner", "type": "string" }, "Provider": { + "markdownDescription": "The provider of the service being called by the action\\. Valid providers are determined by the action category\\. For example, an action in the Deploy category type might have a provider of CodeDeploy, which would be specified as `CodeDeploy`\\. For more information, see [Valid Action Types and Providers in CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#actions-valid-providers)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Provider", "type": "string" }, "Version": { + "markdownDescription": "A string that describes the action version\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -29539,12 +36170,18 @@ "additionalProperties": false, "properties": { "EncryptionKey": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.EncryptionKey" + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.EncryptionKey", + "markdownDescription": "The encryption key used to encrypt the data in the artifact store, such as an AWS Key Management Service \\(AWS KMS\\) key\\. If this is undefined, the default key for Amazon S3 is used\\. To see an example artifact store encryption key field, see the example structure here: [AWS::CodePipeline::Pipeline](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html)\\. \n*Required*: No \n*Type*: [EncryptionKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore-encryptionkey.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionKey" }, "Location": { + "markdownDescription": "The S3 bucket used for storing the artifacts for a pipeline\\. You can specify the name of an S3 bucket but not a folder in the bucket\\. A folder to contain the pipeline artifacts is created for you based on the name of the pipeline\\. You can use any S3 bucket in the same AWS Region as the pipeline to store your pipeline artifacts\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `[a-zA-Z0-9\\-\\.]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", "type": "string" }, "Type": { + "markdownDescription": "The type of the artifact store, such as S3\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -29558,9 +36195,13 @@ "additionalProperties": false, "properties": { "ArtifactStore": { - "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore" + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore", + "markdownDescription": "Represents information about the S3 bucket where artifacts are stored for the pipeline\\. \nYou must include either `artifactStore` or `artifactStores` in your pipeline, but you cannot use both\\. If you create a cross\\-region action in your pipeline, you must use `artifactStores`\\.\n*Required*: Conditional \n*Type*: [ArtifactStore](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArtifactStore" }, "Region": { + "markdownDescription": "The action declaration's AWS Region, such as us\\-east\\-1\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", "type": "string" } }, @@ -29574,9 +36215,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "Reserved for future use\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Type": { + "markdownDescription": "Reserved for future use\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Schedule` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -29590,9 +36235,13 @@ "additionalProperties": false, "properties": { "Id": { + "markdownDescription": "The ID used to identify the key\\. For an AWS KMS key, you can use the key ID, the key ARN, or the alias ARN\\. \nAliases are recognized only in the account that created the AWS KMS key\\. For cross\\-account actions, you can only use the key ID or key ARN to identify the key\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "Type": { + "markdownDescription": "The type of encryption key, such as an AWS KMS key\\. When creating or updating a pipeline, the value must be set to 'KMS'\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -29606,6 +36255,8 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the artifact to be worked on \\(for example, \"My App\"\\)\\. \nThe input artifact of an action must exactly match the output artifact declared in a preceding action, but the input artifact does not have to be the next action in strict sequence from the action that provided the output artifact\\. Actions in parallel can declare different output artifacts, which are in turn consumed by different following actions\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[a-zA-Z0-9_\\-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -29618,6 +36269,8 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the output of an artifact, such as \"My App\"\\. \nThe output artifact name must exactly match the input artifact declared for a downstream action\\. However, the downstream action's input artifact does not have to be the next action in strict sequence from the action that provided the output artifact\\. Actions in parallel can declare different output artifacts, which are in turn consumed by different following actions\\. \nOutput artifact names must be unique within a pipeline\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[a-zA-Z0-9_\\-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -29633,15 +36286,21 @@ "items": { "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionDeclaration" }, + "markdownDescription": "The actions included in a stage\\. \n*Required*: Yes \n*Type*: List of [ActionDeclaration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", "type": "array" }, "Blockers": { "items": { "$ref": "#/definitions/AWS::CodePipeline::Pipeline.BlockerDeclaration" }, + "markdownDescription": "Reserved for future use\\. \n*Required*: No \n*Type*: List of [BlockerDeclaration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-blockers.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Blockers", "type": "array" }, "Name": { + "markdownDescription": "The name of the stage\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9.@\\-_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -29655,9 +36314,13 @@ "additionalProperties": false, "properties": { "Reason": { + "markdownDescription": "The reason given to the user that a stage is disabled, such as waiting for manual approval or manual tests\\. This message is displayed in the pipeline console UI\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Pattern*: `[a-zA-Z0-9!@ \\(\\)\\.\\*\\?\\-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Reason", "type": "string" }, "StageName": { + "markdownDescription": "The name of the stage where you want to disable the inbound or outbound transition of artifacts\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9.@\\-_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StageName", "type": "string" } }, @@ -29703,30 +36366,46 @@ "additionalProperties": false, "properties": { "Authentication": { + "markdownDescription": "Supported options are GITHUB\\_HMAC, IP, and UNAUTHENTICATED\\. \n+ For information about the authentication scheme implemented by GITHUB\\_HMAC, see [Securing your webhooks](https://developer.github.com/webhooks/securing/) on the GitHub Developer website\\.\n+ IP rejects webhooks trigger requests unless they originate from an IP address in the IP range whitelisted in the authentication configuration\\.\n+ UNAUTHENTICATED accepts all webhook trigger requests regardless of origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `GITHUB_HMAC | IP | UNAUTHENTICATED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Authentication", "type": "string" }, "AuthenticationConfiguration": { - "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookAuthConfiguration" + "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookAuthConfiguration", + "markdownDescription": "Properties that configure the authentication applied to incoming webhook trigger requests\\. The required properties depend on the authentication type\\. For GITHUB\\_HMAC, only the `SecretToken `property must be set\\. For IP, only the `AllowedIPRange `property must be set to a valid CIDR range\\. For UNAUTHENTICATED, no properties can be set\\. \n*Required*: Yes \n*Type*: [WebhookAuthConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-webhook-webhookauthconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticationConfiguration" }, "Filters": { "items": { "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookFilterRule" }, + "markdownDescription": "A list of rules applied to the body/payload sent in the POST request to a webhook URL\\. All defined rules must pass for the request to be accepted and the pipeline started\\. \n*Required*: Yes \n*Type*: List of [WebhookFilterRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-webhook-webhookfilterrule.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filters", "type": "array" }, "Name": { + "markdownDescription": "The name of the webhook\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9.@\\-_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RegisterWithThirdParty": { + "markdownDescription": "Configures a connection between the webhook that was created and the external tool with events to be detected\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegisterWithThirdParty", "type": "boolean" }, "TargetAction": { + "markdownDescription": "The name of the action in a pipeline you want to connect to the webhook\\. The action must be from the source \\(first\\) stage of the pipeline\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9.@\\-_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetAction", "type": "string" }, "TargetPipeline": { + "markdownDescription": "The name of the pipeline you want to connect to the webhook\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9.@\\-_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetPipeline", "type": "string" }, "TargetPipelineVersion": { + "markdownDescription": "The version number of the pipeline to be connected to the trigger request\\. \nRequired: Yes \nType: Integer \n Update requires: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt) \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetPipelineVersion", "type": "number" } }, @@ -29765,9 +36444,13 @@ "additionalProperties": false, "properties": { "AllowedIPRange": { + "markdownDescription": "The property used to configure acceptance of webhooks in an IP address range\\. For IP, only the `AllowedIPRange` property must be set\\. This property must be set to a valid CIDR range\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedIPRange", "type": "string" }, "SecretToken": { + "markdownDescription": "The property used to configure GitHub authentication\\. For GITHUB\\_HMAC, only the `SecretToken` property must be set\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretToken", "type": "string" } }, @@ -29777,9 +36460,13 @@ "additionalProperties": false, "properties": { "JsonPath": { + "markdownDescription": "A JsonPath expression that is applied to the body/payload of the webhook\\. The value selected by the JsonPath expression must match the value specified in the `MatchEquals` field\\. Otherwise, the request is ignored\\. For more information, see [Java JsonPath implementation](https://github.com/json-path/JsonPath) in GitHub\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `150` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JsonPath", "type": "string" }, "MatchEquals": { + "markdownDescription": "The value selected by the `JsonPath` expression must match what is supplied in the `MatchEquals` field\\. Otherwise, the request is ignored\\. Properties from the target action configuration can be included as placeholders in this value by surrounding the action configuration key with curly brackets\\. For example, if the value supplied here is \"refs/heads/\\{Branch\\}\" and the target action has an action configuration property called \"Branch\" with a value of \"main\", the `MatchEquals` value is evaluated as \"refs/heads/main\"\\. For a list of action configuration properties for built\\-in action types, see [Pipeline Structure Reference Action Requirements](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `150` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MatchEquals", "type": "string" } }, @@ -29824,27 +36511,43 @@ "additionalProperties": false, "properties": { "Code": { - "$ref": "#/definitions/AWS::CodeStar::GitHubRepository.Code" + "$ref": "#/definitions/AWS::CodeStar::GitHubRepository.Code", + "markdownDescription": "Information about code to be committed to a repository after it is created in an AWS CloudFormation stack\\. \n*Required*: No \n*Type*: [Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codestar-githubrepository-code.html) \n*Update requires*: Updates are not supported\\.", + "title": "Code" }, "ConnectionArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionArn", "type": "string" }, "EnableIssues": { + "markdownDescription": "Indicates whether to enable issues for the GitHub repository\\. You can use GitHub issues to track information and bugs for your repository\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: Updates are not supported\\.", + "title": "EnableIssues", "type": "boolean" }, "IsPrivate": { + "markdownDescription": "Indicates whether the GitHub repository is a private repository\\. If so, you choose who can see and commit to this repository\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: Updates are not supported\\.", + "title": "IsPrivate", "type": "boolean" }, "RepositoryAccessToken": { + "markdownDescription": "The GitHub user's personal access token for the GitHub repository\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "RepositoryAccessToken", "type": "string" }, "RepositoryDescription": { + "markdownDescription": "A comment or description about the new repository\\. This description is displayed in GitHub after the repository is created\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "RepositoryDescription", "type": "string" }, "RepositoryName": { + "markdownDescription": "The name of the repository you want to create in GitHub with AWS CloudFormation stack creation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "RepositoryName", "type": "string" }, "RepositoryOwner": { + "markdownDescription": "The GitHub user name for the owner of the GitHub repository to be created\\. If this repository should be owned by a GitHub organization, provide its name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "RepositoryOwner", "type": "string" } }, @@ -29879,7 +36582,9 @@ "additionalProperties": false, "properties": { "S3": { - "$ref": "#/definitions/AWS::CodeStar::GitHubRepository.S3" + "$ref": "#/definitions/AWS::CodeStar::GitHubRepository.S3", + "markdownDescription": "Information about the Amazon S3 bucket that contains a ZIP file of code to be committed to the repository\\. \n*Required*: Yes \n*Type*: [S3](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codestar-githubrepository-s3.html) \n*Update requires*: Updates are not supported\\.", + "title": "S3" } }, "required": [ @@ -29891,12 +36596,18 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The name of the Amazon S3 bucket that contains the ZIP file with the content to be committed to the new repository\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "Bucket", "type": "string" }, "Key": { + "markdownDescription": "The S3 object key or file name for the ZIP file\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "Key", "type": "string" }, "ObjectVersion": { + "markdownDescription": "The object version of the ZIP file, if versioning is enabled for the Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "ObjectVersion", "type": "string" } }, @@ -29942,18 +36653,26 @@ "additionalProperties": false, "properties": { "ConnectionName": { + "markdownDescription": "The name of the connection\\. Connection names must be unique in an AWS user account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectionName", "type": "string" }, "HostArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the host associated with the connection\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `arn:aws(-[\\w]+)*:codestar-connections:.+:[0-9]{12}:host\\/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostArn", "type": "string" }, "ProviderType": { + "markdownDescription": "The name of the external provider where your third\\-party code repository is configured\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Bitbucket | GitHub | GitHubEnterpriseServer` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProviderType", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Specifies the tags applied to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -30019,39 +36738,59 @@ "additionalProperties": false, "properties": { "CreatedBy": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedBy", "type": "string" }, "DetailType": { + "markdownDescription": "The level of detail to include in the notifications for this resource\\. `BASIC` will include only the contents of the event as it would appear in Amazon CloudWatch\\. `FULL` will include any supplemental information provided by AWS CodeStar Notifications and/or the service for the resource for which the notification is created\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BASIC | FULL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DetailType", "type": "string" }, "EventTypeId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventTypeId", "type": "string" }, "EventTypeIds": { "items": { "type": "string" }, + "markdownDescription": "A list of event types associated with this notification rule\\. For a complete list of event types and IDs, see [Notification concepts](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/concepts.html#concepts-api) in the *Developer Tools Console User Guide*\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventTypeIds", "type": "array" }, "Name": { + "markdownDescription": "The name for the notification rule\\. Notification rule names must be unique in your AWS account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[A-Za-z0-9\\-_ ]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Resource": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the resource to associate with the notification rule\\. Supported resources include pipelines in AWS CodePipeline, repositories in AWS CodeCommit, and build projects in AWS CodeBuild\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^arn:aws[^:\\s]*:[^:\\s]*:[^:\\s]*:[0-9]{12}:[^\\s]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Resource", "type": "string" }, "Status": { + "markdownDescription": "The status of the notification rule\\. The default value is `ENABLED`\\. If the status is set to `DISABLED`, notifications aren't sent for the notification rule\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" }, "Tags": { + "markdownDescription": "A list of tags to apply to this notification rule\\. Key names cannot start with \"`aws`\"\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "object" }, "TargetAddress": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetAddress", "type": "string" }, "Targets": { "items": { "$ref": "#/definitions/AWS::CodeStarNotifications::NotificationRule.Target" }, + "markdownDescription": "A list of Amazon Resource Names \\(ARNs\\) of AWS Chatbot topics and AWS Chatbot clients to associate with the notification rule\\. \n*Required*: Yes \n*Type*: List of [Target](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codestarnotifications-notificationrule-target.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Targets", "type": "array" } }, @@ -30089,9 +36828,13 @@ "additionalProperties": false, "properties": { "TargetAddress": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Chatbot topic or AWS Chatbot client\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `320` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetAddress", "type": "string" }, "TargetType": { + "markdownDescription": "The target type\\. Can be an Amazon Simple Notification Service topic or AWS Chatbot client\\. \n+ Amazon Simple Notification Service topics are specified as `SNS`\\.\n+ AWS Chatbot clients are specified as `AWSChatbotSlack`\\.\n*Required*: Yes \n*Type*: String \n*Pattern*: `^[A-Za-z]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetType", "type": "string" } }, @@ -30137,45 +36880,67 @@ "additionalProperties": false, "properties": { "AllowClassicFlow": { + "markdownDescription": "Enables the Basic \\(Classic\\) authentication flow\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowClassicFlow", "type": "boolean" }, "AllowUnauthenticatedIdentities": { + "markdownDescription": "Specifies whether the identity pool supports unauthenticated logins\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowUnauthenticatedIdentities", "type": "boolean" }, "CognitoEvents": { + "markdownDescription": "The events to configure\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CognitoEvents", "type": "object" }, "CognitoIdentityProviders": { "items": { "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoIdentityProvider" }, + "markdownDescription": "The Amazon Cognito user pools and their client IDs\\. \n*Required*: No \n*Type*: List of [CognitoIdentityProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitoidentityprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CognitoIdentityProviders", "type": "array" }, "CognitoStreams": { - "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoStreams" + "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoStreams", + "markdownDescription": "Configuration options for configuring Amazon Cognito streams\\. \n*Required*: No \n*Type*: [CognitoStreams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitostreams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CognitoStreams" }, "DeveloperProviderName": { + "markdownDescription": "The \"domain\" Amazon Cognito uses when referencing your users\\. This name acts as a placeholder that allows your backend and the Amazon Cognito service to communicate about the developer provider\\. For the `DeveloperProviderName`, you can use letters and periods \\(\\.\\), underscores \\(\\_\\), and dashes \\(\\-\\)\\. \n*Minimum length*: 1 \n*Maximum length*: 100 \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeveloperProviderName", "type": "string" }, "IdentityPoolName": { + "markdownDescription": "The name of your Amazon Cognito identity pool\\. \n*Minimum length*: 1 \n*Maximum length*: 128 \n*Pattern*: `[\\w\\s+=,.@-]+` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentityPoolName", "type": "string" }, "OpenIdConnectProviderARNs": { "items": { "type": "string" }, + "markdownDescription": "The Amazon Resource Names \\(ARNs\\) of the OpenID connect providers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OpenIdConnectProviderARNs", "type": "array" }, "PushSync": { - "$ref": "#/definitions/AWS::Cognito::IdentityPool.PushSync" + "$ref": "#/definitions/AWS::Cognito::IdentityPool.PushSync", + "markdownDescription": "The configuration options to be applied to the identity pool\\. \n*Required*: No \n*Type*: [PushSync](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-pushsync.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PushSync" }, "SamlProviderARNs": { "items": { "type": "string" }, + "markdownDescription": "The Amazon Resource Names \\(ARNs\\) of the Security Assertion Markup Language \\(SAML\\) providers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SamlProviderARNs", "type": "array" }, "SupportedLoginProviders": { + "markdownDescription": "Key\\-value pairs that map provider names to provider app IDs\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SupportedLoginProviders", "type": "object" } }, @@ -30209,12 +36974,18 @@ "additionalProperties": false, "properties": { "ClientId": { + "markdownDescription": "The client ID for the Amazon Cognito user pool\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientId", "type": "string" }, "ProviderName": { + "markdownDescription": "The provider name for an Amazon Cognito user pool\\. For example: `cognito-idp.us-east-2.amazonaws.com/us-east-2_123456789`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProviderName", "type": "string" }, "ServerSideTokenCheck": { + "markdownDescription": "TRUE if server\\-side token validation is enabled for the identity provider\u2019s token\\. \nAfter you set the `ServerSideTokenCheck` to TRUE for an identity pool, that identity pool checks with the integrated user pools to make sure the user has not been globally signed out or deleted before the identity pool provides an OIDC token or AWS credentials for the user\\. \nIf the user is signed out or deleted, the identity pool returns a 400 Not Authorized error\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerSideTokenCheck", "type": "boolean" } }, @@ -30224,12 +36995,18 @@ "additionalProperties": false, "properties": { "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role Amazon Cognito can assume to publish to the stream\\. This role must grant access to Amazon Cognito \\(cognito\\-sync\\) to invoke `PutRecord` on your Amazon Cognito stream\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "StreamName": { + "markdownDescription": "The name of the Amazon Cognito stream to receive updates\\. This stream must be in the developer's account and in the same Region as the identity pool\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamName", "type": "string" }, "StreamingStatus": { + "markdownDescription": "Status of the Amazon Cognito streams\\. Valid values are: `ENABLED` or `DISABLED`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamingStatus", "type": "string" } }, @@ -30242,9 +37019,13 @@ "items": { "type": "string" }, + "markdownDescription": "The ARNs of the Amazon SNS platform applications that could be used by clients\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationArns", "type": "array" }, "RoleArn": { + "markdownDescription": "An IAM role configured to allow Amazon Cognito to call Amazon SNS on behalf of the developer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -30286,12 +37067,18 @@ "additionalProperties": false, "properties": { "IdentityPoolId": { + "markdownDescription": "An identity pool ID in the format `REGION:GUID`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IdentityPoolId", "type": "string" }, "RoleMappings": { + "markdownDescription": "How users for a specific identity provider are mapped to roles\\. This is a string to the `RoleMapping` object map\\. The string identifies the identity provider\\. For example: `graph.facebook.com` or `cognito-idp.us-east-1.amazonaws.com/us-east-1_abcdefghi:app_client_id`\\. \nIf the `IdentityProvider` field isn't provided in this object, the string is used as the identity provider name\\. \nFor more information, see the [RoleMapping property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rolemapping.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleMappings", "type": "object" }, "Roles": { + "markdownDescription": "The map of the roles associated with this pool\\. For a given role, the key is either \"authenticated\" or \"unauthenticated\"\\. The value is the role ARN\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Roles", "type": "object" } }, @@ -30325,15 +37112,23 @@ "additionalProperties": false, "properties": { "Claim": { + "markdownDescription": "The claim name that must be present in the token\\. For example: \"isAdmin\" or \"paid\"\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Claim", "type": "string" }, "MatchType": { + "markdownDescription": "The match condition that specifies how closely the claim value in the IdP token must match `Value`\\. \nValid values are: `Equals`, `Contains`, `StartsWith`, and `NotEqual`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MatchType", "type": "string" }, "RoleARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleARN", "type": "string" }, "Value": { + "markdownDescription": "A brief string that the claim must match\\. For example, \"paid\" or \"yes\"\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -30349,15 +37144,23 @@ "additionalProperties": false, "properties": { "AmbiguousRoleResolution": { + "markdownDescription": "Specifies the action to be taken if either no rules match the claim value for the Rules type, or there is no `cognito:preferred_role` claim and there are multiple `cognito:roles` matches for the Token type\\. If you specify Token or Rules as the Type, AmbiguousRoleResolution is required\\. \nValid values are `AuthenticatedRole` or `Deny`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AmbiguousRoleResolution", "type": "string" }, "IdentityProvider": { + "markdownDescription": "Identifier for the identity provider for which the role is mapped\\. For example: `graph.facebook.com` or `cognito-idp.us-east-1.amazonaws.com/us-east-1_abcdefghi:app_client_id (http://cognito-idp.us-east-1.amazonaws.com/us-east-1_abcdefghi:app_client_id)`\\. This is the identity provider that is used by the user for authentication\\. \nIf the identity provider property isn't provided, the key of the entry in the `RoleMappings` map is used as the identity provider\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentityProvider", "type": "string" }, "RulesConfiguration": { - "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType" + "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType", + "markdownDescription": "The rules to be used for mapping users to roles\\. If you specify \"Rules\" as the role\\-mapping type, RulesConfiguration is required\\. \n*Required*: No \n*Type*: [RulesConfigurationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rulesconfigurationtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RulesConfiguration" }, "Type": { + "markdownDescription": "The role\\-mapping type\\. `Token` uses `cognito:roles` and `cognito:preferred_role` claims from the Amazon Cognito identity provider token to map groups to roles\\. `Rules` attempts to match claims from the token to map to a role\\. \nValid values are `Token` or `Rules`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -30373,6 +37176,8 @@ "items": { "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.MappingRule" }, + "markdownDescription": "The rules\\. You can specify up to 25 rules per identity provider\\. \n*Required*: Yes \n*Type*: List of [MappingRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-mappingrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", "type": "array" } }, @@ -30417,91 +37222,135 @@ "additionalProperties": false, "properties": { "AccountRecoverySetting": { - "$ref": "#/definitions/AWS::Cognito::UserPool.AccountRecoverySetting" + "$ref": "#/definitions/AWS::Cognito::UserPool.AccountRecoverySetting", + "markdownDescription": "Use this setting to define which verified available method a user can use to recover their password when they call `ForgotPassword`\\. It allows you to define a preferred method when a user has more than one method available\\. With this setting, SMS does not qualify for a valid password recovery mechanism if the user also has SMS MFA enabled\\. In the absence of this setting, Cognito uses the legacy behavior to determine the recovery method where SMS is preferred over email\\. \n*Required*: No \n*Type*: [AccountRecoverySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-accountrecoverysetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountRecoverySetting" }, "AdminCreateUserConfig": { - "$ref": "#/definitions/AWS::Cognito::UserPool.AdminCreateUserConfig" + "$ref": "#/definitions/AWS::Cognito::UserPool.AdminCreateUserConfig", + "markdownDescription": "The configuration for creating a new user profile\\. \n*Required*: No \n*Type*: [AdminCreateUserConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-admincreateuserconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdminCreateUserConfig" }, "AliasAttributes": { "items": { "type": "string" }, + "markdownDescription": "Attributes supported as an alias for this user pool\\. Possible values: **phone\\_number**, **email**, or **preferred\\_username**\\. \nThis user pool property cannot be updated\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AliasAttributes", "type": "array" }, "AutoVerifiedAttributes": { "items": { "type": "string" }, + "markdownDescription": "The attributes to be auto\\-verified\\. Possible values: **email**, **phone\\_number**\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoVerifiedAttributes", "type": "array" }, "DeletionProtection": { "type": "string" }, "DeviceConfiguration": { - "$ref": "#/definitions/AWS::Cognito::UserPool.DeviceConfiguration" + "$ref": "#/definitions/AWS::Cognito::UserPool.DeviceConfiguration", + "markdownDescription": "The device configuration\\. \n*Required*: No \n*Type*: [DeviceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-deviceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceConfiguration" }, "EmailConfiguration": { - "$ref": "#/definitions/AWS::Cognito::UserPool.EmailConfiguration" + "$ref": "#/definitions/AWS::Cognito::UserPool.EmailConfiguration", + "markdownDescription": "The email configuration\\. \n*Required*: No \n*Type*: [EmailConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-emailconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmailConfiguration" }, "EmailVerificationMessage": { + "markdownDescription": "A string representing the email verification message\\. EmailVerificationMessage is allowed only if [EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `20000` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*\\{####\\}[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmailVerificationMessage", "type": "string" }, "EmailVerificationSubject": { + "markdownDescription": "A string representing the email verification subject\\. EmailVerificationSubject is allowed only if [EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `140` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmailVerificationSubject", "type": "string" }, "EnabledMfas": { "items": { "type": "string" }, + "markdownDescription": "Enables MFA on a specified user pool\\. To disable all MFAs after it has been enabled, set MfaConfiguration to \u201cOFF\u201d and remove EnabledMfas\\. MFAs can only be all disabled if MfaConfiguration is OFF\\. Once SMS\\_MFA is enabled, SMS\\_MFA can only be disabled by setting MfaConfiguration to \u201cOFF\u201d\\. Can be one of the following values: \n+ `SMS_MFA` \\- Enables SMS MFA for the user pool\\. SMS\\_MFA can only be enabled if SMS configuration is provided\\.\n+ `SOFTWARE_TOKEN_MFA` \\- Enables software token MFA for the user pool\\.\nAllowed values: `SMS_MFA` \\| `SOFTWARE_TOKEN_MFA` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnabledMfas", "type": "array" }, "LambdaConfig": { - "$ref": "#/definitions/AWS::Cognito::UserPool.LambdaConfig" + "$ref": "#/definitions/AWS::Cognito::UserPool.LambdaConfig", + "markdownDescription": "The Lambda trigger configuration information for the new user pool\\. \nIn a push model, event sources \\(such as Amazon S3 and custom applications\\) need permission to invoke a function\\. So you must make an extra call to add permission for these event sources to invoke your Lambda function\\. \n \nFor more information on using the Lambda API to add permission, see[ AddPermission ](https://docs.aws.amazon.com/lambda/latest/dg/API_AddPermission.html)\\. \nFor adding permission using the AWS CLI, see[ add\\-permission ](https://docs.aws.amazon.com/cli/latest/reference/lambda/add-permission.html)\\.\n*Required*: No \n*Type*: [LambdaConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaConfig" }, "MfaConfiguration": { + "markdownDescription": "The multi\\-factor \\(MFA\\) configuration\\. Valid values include: \n+ `OFF` MFA won't be used for any users\\.\n+ `ON` MFA is required for all users to sign in\\.\n+ `OPTIONAL` MFA will be required only for individual users who have an MFA factor activated\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `OFF | ON | OPTIONAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MfaConfiguration", "type": "string" }, "Policies": { - "$ref": "#/definitions/AWS::Cognito::UserPool.Policies" + "$ref": "#/definitions/AWS::Cognito::UserPool.Policies", + "markdownDescription": "The policy associated with a user pool\\. \n*Required*: No \n*Type*: [Policies](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-policies.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policies" }, "Schema": { "items": { "$ref": "#/definitions/AWS::Cognito::UserPool.SchemaAttribute" }, + "markdownDescription": "The schema attributes for the new user pool\\. These attributes can be standard or custom attributes\\. \n During a user pool update, you can add new schema attributes but you cannot modify or delete an existing schema attribute\\.\n*Required*: No \n*Type*: List of [SchemaAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-schemaattribute.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schema", "type": "array" }, "SmsAuthenticationMessage": { + "markdownDescription": "A string representing the SMS authentication message\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `140` \n*Pattern*: `.*\\{####\\}.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SmsAuthenticationMessage", "type": "string" }, "SmsConfiguration": { - "$ref": "#/definitions/AWS::Cognito::UserPool.SmsConfiguration" + "$ref": "#/definitions/AWS::Cognito::UserPool.SmsConfiguration", + "markdownDescription": "The SMS configuration\\. \n*Required*: No \n*Type*: [SmsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-smsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SmsConfiguration" }, "SmsVerificationMessage": { + "markdownDescription": "A string representing the SMS verification message\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `140` \n*Pattern*: `.*\\{####\\}.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SmsVerificationMessage", "type": "string" }, "UserAttributeUpdateSettings": { "$ref": "#/definitions/AWS::Cognito::UserPool.UserAttributeUpdateSettings" }, "UserPoolAddOns": { - "$ref": "#/definitions/AWS::Cognito::UserPool.UserPoolAddOns" + "$ref": "#/definitions/AWS::Cognito::UserPool.UserPoolAddOns", + "markdownDescription": "Enables advanced security risk detection\\. Set the key `AdvancedSecurityMode` to the value \"AUDIT\"\\. \n*Required*: No \n*Type*: [UserPoolAddOns](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-userpooladdons.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolAddOns" }, "UserPoolName": { + "markdownDescription": "A string used to name the user pool\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w\\s+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolName", "type": "string" }, "UserPoolTags": { + "markdownDescription": "The tag keys and values to assign to the user pool\\. A tag is a label that you can use to categorize and manage user pools in different ways, such as by purpose, owner, environment, or other criteria\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolTags", "type": "object" }, "UsernameAttributes": { "items": { "type": "string" }, + "markdownDescription": "Determines whether email addresses or phone numbers can be specified as user names when a user signs up\\. Possible values: `phone_number` or `email`\\. \nThis user pool property cannot be updated\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UsernameAttributes", "type": "array" }, "UsernameConfiguration": { - "$ref": "#/definitions/AWS::Cognito::UserPool.UsernameConfiguration" + "$ref": "#/definitions/AWS::Cognito::UserPool.UsernameConfiguration", + "markdownDescription": "You can choose to set case sensitivity on the username input for the selected sign\\-in option\\. For example, when this is set to `False`, users will be able to sign in using either \"username\" or \"Username\"\\. This configuration is immutable once it has been set\\. \n*Required*: No \n*Type*: [UsernameConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-usernameconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UsernameConfiguration" }, "VerificationMessageTemplate": { - "$ref": "#/definitions/AWS::Cognito::UserPool.VerificationMessageTemplate" + "$ref": "#/definitions/AWS::Cognito::UserPool.VerificationMessageTemplate", + "markdownDescription": "The template for the verification message that the user sees when the app requests permission to access the user's information\\. \n*Required*: No \n*Type*: [VerificationMessageTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-verificationmessagetemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VerificationMessageTemplate" } }, "type": "object" @@ -30533,6 +37382,8 @@ "items": { "$ref": "#/definitions/AWS::Cognito::UserPool.RecoveryOption" }, + "markdownDescription": "The list of `RecoveryOptionTypes`\\. \n*Required*: No \n*Type*: List of [RecoveryOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-recoveryoption.html) \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecoveryMechanisms", "type": "array" } }, @@ -30542,12 +37393,18 @@ "additionalProperties": false, "properties": { "AllowAdminCreateUserOnly": { + "markdownDescription": "Set to `True` if only the administrator is allowed to create user profiles\\. Set to `False` if users can sign themselves up via an app\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowAdminCreateUserOnly", "type": "boolean" }, "InviteMessageTemplate": { - "$ref": "#/definitions/AWS::Cognito::UserPool.InviteMessageTemplate" + "$ref": "#/definitions/AWS::Cognito::UserPool.InviteMessageTemplate", + "markdownDescription": "The message template to be used for the welcome message to new users\\. \nSee also [Customizing User Invitation Messages](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-message-customizations.html#cognito-user-pool-settings-user-invitation-message-customization)\\. \n*Required*: No \n*Type*: [InviteMessageTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-invitemessagetemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InviteMessageTemplate" }, "UnusedAccountValidityDays": { + "markdownDescription": "The user account expiration limit, in days, after which the account is no longer usable\\. To reset the account after that time limit, you must call `AdminCreateUser` again, specifying `\"RESEND\"` for the `MessageAction` parameter\\. The default value for this parameter is 7\\. \nIf you set a value for `TemporaryPasswordValidityDays` in `PasswordPolicy`, that value will be used, and `UnusedAccountValidityDays` will be no longer be an available parameter for that user pool\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `365` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnusedAccountValidityDays", "type": "number" } }, @@ -30557,9 +37414,13 @@ "additionalProperties": false, "properties": { "LambdaArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Lambda function that Amazon Cognito triggers to send email notifications to users\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaArn", "type": "string" }, "LambdaVersion": { + "markdownDescription": "The Lambda version represents the signature of the \"request\" attribute in the \"event\" information that Amazon Cognito passes to your custom email sender AWS Lambda function\\. The only supported value is `V1_0`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaVersion", "type": "string" } }, @@ -30569,9 +37430,13 @@ "additionalProperties": false, "properties": { "LambdaArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Lambda function that Amazon Cognito triggers to send SMS notifications to users\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaArn", "type": "string" }, "LambdaVersion": { + "markdownDescription": "The Lambda version represents the signature of the \"request\" attribute in the \"event\" information Amazon Cognito passes to your custom SMS sender Lambda function\\. The only supported value is `V1_0`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaVersion", "type": "string" } }, @@ -30581,9 +37446,13 @@ "additionalProperties": false, "properties": { "ChallengeRequiredOnNewDevice": { + "markdownDescription": "When true, device authentication can replace SMS and time\\-based one\\-time password \\(TOTP\\) factors for multi\\-factor authentication \\(MFA\\)\\. \nUsers that sign in with devices that have not been confirmed or remembered will still have to provide a second factor, whether or not ChallengeRequiredOnNewDevice is true, when your user pool requires MFA\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChallengeRequiredOnNewDevice", "type": "boolean" }, "DeviceOnlyRememberedOnUserPrompt": { + "markdownDescription": "When true, users can opt in to remembering their device\\. Your app code must use callback functions to return the user's choice\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceOnlyRememberedOnUserPrompt", "type": "boolean" } }, @@ -30593,18 +37462,28 @@ "additionalProperties": false, "properties": { "ConfigurationSet": { + "markdownDescription": "The set of configuration rules that can be applied to emails sent using Amazon SES\\. A configuration set is applied to an email by including a reference to the configuration set in the headers of the email\\. Once applied, all of the rules in that configuration set are applied to the email\\. Configuration sets can be used to apply the following types of rules to emails: \n+ Event publishing \u2013 Amazon SES can track the number of send, delivery, open, click, bounce, and complaint events for each email sent\\. Use event publishing to send information about these events to other AWS services such as SNS and CloudWatch\\.\n+ IP pool management \u2013 When leasing dedicated IP addresses with Amazon SES, you can create groups of IP addresses, called dedicated IP pools\\. You can then associate the dedicated IP pools with configuration sets\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9_-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfigurationSet", "type": "string" }, "EmailSendingAccount": { + "markdownDescription": "Specifies whether Amazon Cognito emails your users by using its built\\-in email functionality or your Amazon Simple Email Service email configuration\\. Specify one of the following values: \nCOGNITO\\_DEFAULT \nWhen Amazon Cognito emails your users, it uses its built\\-in email functionality\\. When you use the default option, Amazon Cognito allows only a limited number of emails each day for your user pool\\. For typical production environments, the default email limit is less than the required delivery volume\\. To achieve a higher delivery volume, specify DEVELOPER to use your Amazon SES email configuration\\. \nTo look up the email delivery limit for the default option, see [Limits in ](https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html) in the * Developer Guide*\\. \nThe default FROM address is `no-reply@verificationemail.com`\\. To customize the FROM address, provide the Amazon Resource Name \\(ARN\\) of an Amazon SES verified email address for the `SourceArn` parameter\\. \n If EmailSendingAccount is COGNITO\\_DEFAULT, you can't use the following parameters: \n+ EmailVerificationMessage\n+ EmailVerificationSubject\n+ InviteMessageTemplate\\.EmailMessage\n+ InviteMessageTemplate\\.EmailSubject\n+ VerificationMessageTemplate\\.EmailMessage\n+ VerificationMessageTemplate\\.EmailMessageByLink\n+ VerificationMessageTemplate\\.EmailSubject,\n+ VerificationMessageTemplate\\.EmailSubjectByLink\nDEVELOPER EmailSendingAccount is required\\. \nDEVELOPER \nWhen Amazon Cognito emails your users, it uses your Amazon SES configuration\\. Amazon Cognito calls Amazon SES on your behalf to send email from your verified email address\\. When you use this option, the email delivery limits are the same limits that apply to your Amazon SES verified email address in your AWS account\\. \nIf you use this option, you must provide the ARN of an Amazon SES verified email address for the `SourceArn` parameter\\. \nBefore Amazon Cognito can email your users, it requires additional permissions to call Amazon SES on your behalf\\. When you update your user pool with this option, Amazon Cognito creates a *service\\-linked role*, which is a type of role, in your AWS account\\. This role contains the permissions that allow to access Amazon SES and send email messages with your address\\. For more information about the service\\-linked role that Amazon Cognito creates, see [Using Service\\-Linked Roles for Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/using-service-linked-roles.html) in the *Amazon Cognito Developer Guide*\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `COGNITO_DEFAULT | DEVELOPER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmailSendingAccount", "type": "string" }, "From": { + "markdownDescription": "Identifies either the sender's email address or the sender's name with their email address\\. For example, `testuser@example.com` or `Test User `\\. This address appears before the body of the email\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "From", "type": "string" }, "ReplyToEmailAddress": { + "markdownDescription": "The destination to which the receiver of the email should reply\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+@[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplyToEmailAddress", "type": "string" }, "SourceArn": { + "markdownDescription": "The ARN of a verified email address in Amazon SES\\. Amazon Cognito uses this email address in one of the following ways, depending on the value that you specify for the `EmailSendingAccount` parameter: \n+ If you specify `COGNITO_DEFAULT`, Amazon Cognito uses this address as the custom FROM address when it emails your users using its built\\-in email account\\.\n+ If you specify `DEVELOPER`, Amazon Cognito emails your users with this address by calling Amazon SES on your behalf\\.\n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceArn", "type": "string" } }, @@ -30614,12 +37493,18 @@ "additionalProperties": false, "properties": { "EmailMessage": { + "markdownDescription": "The message template for email messages\\. EmailMessage is allowed only if [EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `20000` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*\\{####\\}[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmailMessage", "type": "string" }, "EmailSubject": { + "markdownDescription": "The subject line for email messages\\. EmailSubject is allowed only if [EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `140` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmailSubject", "type": "string" }, "SMSMessage": { + "markdownDescription": "The message template for SMS messages\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `140` \n*Pattern*: `.*\\{####\\}.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SMSMessage", "type": "string" } }, @@ -30629,42 +37514,68 @@ "additionalProperties": false, "properties": { "CreateAuthChallenge": { + "markdownDescription": "Creates an authentication challenge\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreateAuthChallenge", "type": "string" }, "CustomEmailSender": { - "$ref": "#/definitions/AWS::Cognito::UserPool.CustomEmailSender" + "$ref": "#/definitions/AWS::Cognito::UserPool.CustomEmailSender", + "markdownDescription": "A custom email sender AWS Lambda trigger\\. \n*Required*: No \n*Type*: [CustomEmailSender](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-customemailsender.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomEmailSender" }, "CustomMessage": { + "markdownDescription": "A custom Message AWS Lambda trigger\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomMessage", "type": "string" }, "CustomSMSSender": { - "$ref": "#/definitions/AWS::Cognito::UserPool.CustomSMSSender" + "$ref": "#/definitions/AWS::Cognito::UserPool.CustomSMSSender", + "markdownDescription": "A custom SMS sender AWS Lambda trigger\\. \n*Required*: No \n*Type*: [CustomSMSSender](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-customsmssender.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomSMSSender" }, "DefineAuthChallenge": { + "markdownDescription": "Defines the authentication challenge\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefineAuthChallenge", "type": "string" }, "KMSKeyID": { + "markdownDescription": "The Amazon Resource Name of a AWS Key Management Service \\(AWS KMS\\) key\\. Amazon Cognito uses the key to encrypt codes and temporary passwords sent to `CustomEmailSender` and `CustomSMSSender`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KMSKeyID", "type": "string" }, "PostAuthentication": { + "markdownDescription": "A post\\-authentication AWS Lambda trigger\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PostAuthentication", "type": "string" }, "PostConfirmation": { + "markdownDescription": "A post\\-confirmation AWS Lambda trigger\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PostConfirmation", "type": "string" }, "PreAuthentication": { + "markdownDescription": "A pre\\-authentication AWS Lambda trigger\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreAuthentication", "type": "string" }, "PreSignUp": { + "markdownDescription": "A pre\\-registration AWS Lambda trigger\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreSignUp", "type": "string" }, "PreTokenGeneration": { + "markdownDescription": "A Lambda trigger that is invoked before token generation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreTokenGeneration", "type": "string" }, "UserMigration": { + "markdownDescription": "The user migration Lambda config type\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserMigration", "type": "string" }, "VerifyAuthChallengeResponse": { + "markdownDescription": "Verifies the authentication challenge response\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VerifyAuthChallengeResponse", "type": "string" } }, @@ -30674,9 +37585,13 @@ "additionalProperties": false, "properties": { "MaxValue": { + "markdownDescription": "The maximum value of an attribute that is of the number data type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxValue", "type": "string" }, "MinValue": { + "markdownDescription": "The minimum value of an attribute that is of the number data type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinValue", "type": "string" } }, @@ -30686,21 +37601,33 @@ "additionalProperties": false, "properties": { "MinimumLength": { + "markdownDescription": "The minimum length of the password in the policy that you have set\\. This value can't be less than 6\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `6` \n*Maximum*: `99` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinimumLength", "type": "number" }, "RequireLowercase": { + "markdownDescription": "In the password policy that you have set, refers to whether you have required users to use at least one lowercase letter in their password\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequireLowercase", "type": "boolean" }, "RequireNumbers": { + "markdownDescription": "In the password policy that you have set, refers to whether you have required users to use at least one number in their password\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequireNumbers", "type": "boolean" }, "RequireSymbols": { + "markdownDescription": "In the password policy that you have set, refers to whether you have required users to use at least one symbol in their password\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequireSymbols", "type": "boolean" }, "RequireUppercase": { + "markdownDescription": "In the password policy that you have set, refers to whether you have required users to use at least one uppercase letter in their password\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequireUppercase", "type": "boolean" }, "TemporaryPasswordValidityDays": { + "markdownDescription": "The number of days a temporary password is valid in the password policy\\. If the user doesn't sign in during this time, an administrator must reset their password\\. \nWhen you set `TemporaryPasswordValidityDays` for a user pool, you can no longer set the deprecated `UnusedAccountValidityDays` value for that user pool\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `365` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemporaryPasswordValidityDays", "type": "number" } }, @@ -30710,7 +37637,9 @@ "additionalProperties": false, "properties": { "PasswordPolicy": { - "$ref": "#/definitions/AWS::Cognito::UserPool.PasswordPolicy" + "$ref": "#/definitions/AWS::Cognito::UserPool.PasswordPolicy", + "markdownDescription": "The password policy\\. \n*Required*: No \n*Type*: [PasswordPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-passwordpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PasswordPolicy" } }, "type": "object" @@ -30719,9 +37648,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "Specifies the recovery method for a user\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `admin_only | verified_email | verified_phone_number` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Priority": { + "markdownDescription": "A positive integer specifying priority of a method with 1 being the highest priority\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" } }, @@ -30731,25 +37664,39 @@ "additionalProperties": false, "properties": { "AttributeDataType": { + "markdownDescription": "The attribute data type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Boolean | DateTime | Number | String` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeDataType", "type": "string" }, "DeveloperOnlyAttribute": { + "markdownDescription": "We recommend that you use [WriteAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UserPoolClientType.html#CognitoUserPools-Type-UserPoolClientType-WriteAttributes) in the user pool client to control how attributes can be mutated for new use cases instead of using `DeveloperOnlyAttribute`\\.\nSpecifies whether the attribute type is developer only\\. This attribute can only be modified by an administrator\\. Users will not be able to modify this attribute using their access token\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeveloperOnlyAttribute", "type": "boolean" }, "Mutable": { + "markdownDescription": "Specifies whether the value of the attribute can be changed\\. \nFor any user pool attribute that is mapped to an identity provider attribute, you must set this parameter to `true`\\. Amazon Cognito updates mapped attributes when users sign in to your application through an identity provider\\. If an attribute is immutable, Amazon Cognito throws an error when it attempts to update the attribute\\. For more information, see [Specifying Identity Provider Attribute Mappings for Your User Pool](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-specifying-attribute-mapping.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mutable", "type": "boolean" }, "Name": { + "markdownDescription": "A schema attribute of the name type\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `20` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "NumberAttributeConstraints": { - "$ref": "#/definitions/AWS::Cognito::UserPool.NumberAttributeConstraints" + "$ref": "#/definitions/AWS::Cognito::UserPool.NumberAttributeConstraints", + "markdownDescription": "Specifies the constraints for an attribute of the number type\\. \n*Required*: No \n*Type*: [NumberAttributeConstraints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-numberattributeconstraints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberAttributeConstraints" }, "Required": { + "markdownDescription": "Specifies whether a user pool attribute is required\\. If the attribute is required and the user doesn't provide a value, registration or sign\\-in will fail\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Required", "type": "boolean" }, "StringAttributeConstraints": { - "$ref": "#/definitions/AWS::Cognito::UserPool.StringAttributeConstraints" + "$ref": "#/definitions/AWS::Cognito::UserPool.StringAttributeConstraints", + "markdownDescription": "Specifies the constraints for an attribute of the string type\\. \n*Required*: No \n*Type*: [StringAttributeConstraints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-stringattributeconstraints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StringAttributeConstraints" } }, "type": "object" @@ -30758,12 +37705,18 @@ "additionalProperties": false, "properties": { "ExternalId": { + "markdownDescription": "The external ID is a value\\. We recommend you use `ExternalId`to add security to your IAM role, which is used to call Amazon SNS to send SMS messages for your user pool\\. If you provide an `ExternalId`, the Cognito User Pool uses it when attempting to assume your IAM role\\. You can also set your roles trust policy to require the `ExternalID`\\. If you use the Cognito Management Console to create a role for SMS MFA, Cognito creates a role with the required permissions and a trust policy that uses `ExternalId`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExternalId", "type": "string" }, "SnsCallerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS caller\\. This is the ARN of the IAM role in your AWS account that Amazon Cognito will use to send SMS messages\\. SMS messages are subject to a [spending limit](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-email-phone-verification.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsCallerArn", "type": "string" }, "SnsRegion": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsRegion", "type": "string" } }, @@ -30773,9 +37726,13 @@ "additionalProperties": false, "properties": { "MaxLength": { + "markdownDescription": "The maximum length\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxLength", "type": "string" }, "MinLength": { + "markdownDescription": "The minimum length\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinLength", "type": "string" } }, @@ -30800,6 +37757,8 @@ "additionalProperties": false, "properties": { "AdvancedSecurityMode": { + "markdownDescription": "The advanced security mode\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUDIT | ENFORCED | OFF` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdvancedSecurityMode", "type": "string" } }, @@ -30809,6 +37768,8 @@ "additionalProperties": false, "properties": { "CaseSensitive": { + "markdownDescription": "Specifies whether username case sensitivity will be applied for all users in the user pool through Amazon Cognito APIs\\. \nValid values include: \n+ ** `True` **: Enables case sensitivity for all username input\\. When this option is set to `True`, users must sign in using the exact capitalization of their given username, such as \u201cUserName\u201d\\. This is the default value\\.\n+ ** `False` **: Enables case insensitivity for all username input\\. For example, when this option is set to `False`, users can sign in using either \"username\" or \"Username\"\\. This option also enables both `preferred_username` and `email` alias to be case insensitive, in addition to the `username` attribute\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaseSensitive", "type": "boolean" } }, @@ -30818,21 +37779,33 @@ "additionalProperties": false, "properties": { "DefaultEmailOption": { + "markdownDescription": "The default email option\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CONFIRM_WITH_CODE | CONFIRM_WITH_LINK` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultEmailOption", "type": "string" }, "EmailMessage": { + "markdownDescription": "The email message template\\. EmailMessage is allowed only if [ EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `20000` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*\\{####\\}[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmailMessage", "type": "string" }, "EmailMessageByLink": { + "markdownDescription": "The email message template for sending a confirmation link to the user\\. EmailMessageByLink is allowed only if [ EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `20000` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*\\{##[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*##\\}[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmailMessageByLink", "type": "string" }, "EmailSubject": { + "markdownDescription": "The subject line for the email message template\\. EmailSubject is allowed only if [EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `140` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmailSubject", "type": "string" }, "EmailSubjectByLink": { + "markdownDescription": "The subject line for the email message template for sending a confirmation link to the user\\. EmailSubjectByLink is allowed only [ EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `140` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmailSubjectByLink", "type": "string" }, "SmsMessage": { + "markdownDescription": "The SMS message template\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `140` \n*Pattern*: `.*\\{####\\}.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SmsMessage", "type": "string" } }, @@ -30874,25 +37847,35 @@ "additionalProperties": false, "properties": { "AccessTokenValidity": { + "markdownDescription": "The time limit, after which the access token is no longer valid and cannot be used\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessTokenValidity", "type": "number" }, "AllowedOAuthFlows": { "items": { "type": "string" }, + "markdownDescription": "The allowed OAuth flows\\. \nSet to `code` to initiate a code grant flow, which provides an authorization code as the response\\. This code can be exchanged for access tokens with the token endpoint\\. \nSet to `implicit` to specify that the client should get the access token \\(and, optionally, ID token, based on scopes\\) directly\\. \nSet to `client_credentials` to specify that the client should get the access token \\(and, optionally, ID token, based on scopes\\) from the token endpoint using a combination of client and client\\_secret\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedOAuthFlows", "type": "array" }, "AllowedOAuthFlowsUserPoolClient": { + "markdownDescription": "Set to true if the client is allowed to follow the OAuth protocol when interacting with Amazon Cognito user pools\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedOAuthFlowsUserPoolClient", "type": "boolean" }, "AllowedOAuthScopes": { "items": { "type": "string" }, + "markdownDescription": "The allowed OAuth scopes\\. Possible values provided by OAuth are: `phone`, `email`, `openid`, and `profile`\\. Possible values provided by AWS are: `aws.cognito.signin.user.admin`\\. Custom scopes created in Resource Servers are also supported\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedOAuthScopes", "type": "array" }, "AnalyticsConfiguration": { - "$ref": "#/definitions/AWS::Cognito::UserPoolClient.AnalyticsConfiguration" + "$ref": "#/definitions/AWS::Cognito::UserPoolClient.AnalyticsConfiguration", + "markdownDescription": "The Amazon Pinpoint analytics configuration for collecting metrics for this user pool\\. \nIn AWS Regions where isn't available, User Pools only supports sending events to Amazon Pinpoint projects in AWS Region us\\-east\\-1\\. In Regions where is available, User Pools will support sending events to Amazon Pinpoint projects within that same Region\\. \n*Required*: No \n*Type*: [AnalyticsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolclient-analyticsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AnalyticsConfiguration" }, "AuthSessionValidity": { "type": "number" @@ -30901,66 +37884,96 @@ "items": { "type": "string" }, + "markdownDescription": "A list of allowed redirect \\(callback\\) URLs for the identity providers\\. \nA redirect URI must: \n+ Be an absolute URI\\.\n+ Be registered with the authorization server\\.\n+ Not include a fragment component\\.\nSee [OAuth 2\\.0 \\- Redirection Endpoint](https://tools.ietf.org/html/rfc6749#section-3.1.2)\\. \nAmazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes only\\. \nApp callback URLs such as myapp://example are also supported\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CallbackURLs", "type": "array" }, "ClientName": { + "markdownDescription": "The client name for the user pool client you would like to create\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w\\s+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientName", "type": "string" }, "DefaultRedirectURI": { + "markdownDescription": "The default redirect URI\\. Must be in the `CallbackURLs` list\\. \nA redirect URI must: \n+ Be an absolute URI\\.\n+ Be registered with the authorization server\\.\n+ Not include a fragment component\\.\nSee [OAuth 2\\.0 \\- Redirection Endpoint](https://tools.ietf.org/html/rfc6749#section-3.1.2)\\. \nAmazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes only\\. \nApp callback URLs such as myapp://example are also supported\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultRedirectURI", "type": "string" }, "EnablePropagateAdditionalUserContextData": { "type": "boolean" }, "EnableTokenRevocation": { + "markdownDescription": "Activates or deactivates token revocation\\. For more information about revoking tokens, see [RevokeToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RevokeToken.html)\\. \nIf you don't include this parameter, token revocation is automatically activated for the new user pool client\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableTokenRevocation", "type": "boolean" }, "ExplicitAuthFlows": { "items": { "type": "string" }, + "markdownDescription": "The authentication flows that are supported by the user pool clients\\. Flow names without the `ALLOW_` prefix are no longer supported, in favor of new names with the `ALLOW_` prefix\\. Note that values with `ALLOW_` prefix must be used only along with the `ALLOW_` prefix\\. \nValid values include: \n+ `ALLOW_ADMIN_USER_PASSWORD_AUTH`: Enable admin based user password authentication flow `ADMIN_USER_PASSWORD_AUTH`\\. This setting replaces the `ADMIN_NO_SRP_AUTH` setting\\. With this authentication flow, Amazon Cognito receives the password in the request instead of using the Secure Remote Password \\(SRP\\) protocol to verify passwords\\.\n+ `ALLOW_CUSTOM_AUTH`: Enable AWS Lambda trigger based authentication\\.\n+ `ALLOW_USER_PASSWORD_AUTH`: Enable user password\\-based authentication\\. In this flow, Amazon Cognito receives the password in the request instead of using the SRP protocol to verify passwords\\.\n+ `ALLOW_USER_SRP_AUTH`: Enable SRP\\-based authentication\\.\n+ `ALLOW_REFRESH_TOKEN_AUTH`: Enable authflow to refresh tokens\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExplicitAuthFlows", "type": "array" }, "GenerateSecret": { + "markdownDescription": "Boolean to specify whether you want to generate a secret for the user pool client being created\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GenerateSecret", "type": "boolean" }, "IdTokenValidity": { + "markdownDescription": "The time limit, after which the ID token is no longer valid and cannot be used\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdTokenValidity", "type": "number" }, "LogoutURLs": { "items": { "type": "string" }, + "markdownDescription": "A list of allowed logout URLs for the identity providers\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogoutURLs", "type": "array" }, "PreventUserExistenceErrors": { + "markdownDescription": "Use this setting to choose which errors and responses are returned by Cognito APIs during authentication, account confirmation, and password recovery when the user does not exist in the user pool\\. When set to `ENABLED` and the user does not exist, authentication returns an error indicating either the username or password was incorrect, and account confirmation and password recovery return a response indicating a code was sent to a simulated destination\\. When set to `LEGACY`, those APIs will return a `UserNotFoundException` exception if the user does not exist in the user pool\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ENABLED | LEGACY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreventUserExistenceErrors", "type": "string" }, "ReadAttributes": { "items": { "type": "string" }, + "markdownDescription": "The read attributes\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadAttributes", "type": "array" }, "RefreshTokenValidity": { + "markdownDescription": "The time limit, in days, after which the refresh token is no longer valid and can't be used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `315360000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RefreshTokenValidity", "type": "number" }, "SupportedIdentityProviders": { "items": { "type": "string" }, + "markdownDescription": "A list of provider names for the identity providers that are supported on this client\\. The following are supported: `COGNITO`, `Facebook`, `SignInWithApple`, `Google` and `LoginWithAmazon`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SupportedIdentityProviders", "type": "array" }, "TokenValidityUnits": { - "$ref": "#/definitions/AWS::Cognito::UserPoolClient.TokenValidityUnits" + "$ref": "#/definitions/AWS::Cognito::UserPoolClient.TokenValidityUnits", + "markdownDescription": "The units in which the validity times are represented in\\. Default for RefreshToken is days, and default for ID and access tokens are hours\\. \n*Required*: No \n*Type*: [TokenValidityUnits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolclient-tokenvalidityunits.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenValidityUnits" }, "UserPoolId": { + "markdownDescription": "The user pool ID for the user pool where you want to create a user pool client\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserPoolId", "type": "string" }, "WriteAttributes": { "items": { "type": "string" }, + "markdownDescription": "The user pool attributes that the app client can write to\\. \nIf your app client allows users to sign in through an identity provider, this array must include all attributes that are mapped to identity provider attributes\\. Amazon Cognito updates mapped attributes when users sign in to your application through an identity provider\\. If your app client lacks write access to a mapped attribute, Amazon Cognito throws an error when it tries to update the attribute\\. For more information, see [Specifying Identity Provider Attribute Mappings for Your User Pool](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-specifying-attribute-mapping.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WriteAttributes", "type": "array" } }, @@ -30994,18 +38007,28 @@ "additionalProperties": false, "properties": { "ApplicationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an Amazon Pinpoint project\\. You can use the Amazon Pinpoint project for integration with the chosen user pool client\\. Amazon Cognito publishes events to the Amazon Pinpoint project that the app ARN declares\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationArn", "type": "string" }, "ApplicationId": { + "markdownDescription": "The application ID for an Amazon Pinpoint application\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[0-9a-fA-F]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationId", "type": "string" }, "ExternalId": { + "markdownDescription": "The external ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExternalId", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of an AWS Identity and Access Management role that authorizes Amazon Cognito to publish events to Amazon Pinpoint analytics\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "UserDataShared": { + "markdownDescription": "If `UserDataShared` is `true`, Amazon Cognito will include user data in the events it publishes to Amazon Pinpoint analytics\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserDataShared", "type": "boolean" } }, @@ -31015,12 +38038,18 @@ "additionalProperties": false, "properties": { "AccessToken": { + "markdownDescription": "A time unit in \u201cseconds\u201d, \u201cminutes\u201d, \u201chours\u201d or \u201cdays\u201d for the value in AccessTokenValidity, defaults to hours\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessToken", "type": "string" }, "IdToken": { + "markdownDescription": "A time unit in \u201cseconds\u201d, \u201cminutes\u201d, \u201chours\u201d or \u201cdays\u201d for the value in IdTokenValidity, defaults to hours\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdToken", "type": "string" }, "RefreshToken": { + "markdownDescription": "A time unit in \u201cseconds\u201d, \u201cminutes\u201d, \u201chours\u201d or \u201cdays\u201d for the value in RefreshTokenValidity, defaults to days\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RefreshToken", "type": "string" } }, @@ -31062,12 +38091,18 @@ "additionalProperties": false, "properties": { "CustomDomainConfig": { - "$ref": "#/definitions/AWS::Cognito::UserPoolDomain.CustomDomainConfigType" + "$ref": "#/definitions/AWS::Cognito::UserPoolDomain.CustomDomainConfigType", + "markdownDescription": "The configuration for a custom domain that hosts the sign\\-up and sign\\-in pages for your application\\. Use this object to specify an SSL certificate that is managed by ACM\\. \n*Required*: No \n*Type*: [CustomDomainConfigType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpooldomain-customdomainconfigtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomDomainConfig" }, "Domain": { + "markdownDescription": "The domain name for the domain that hosts the sign\\-up and sign\\-in pages for your application\\. For example: `auth.example.com`\\. If you're using a prefix domain, this field denotes the first part of the domain before `.auth.[region].amazoncognito.com`\\. \nThis string can include only lowercase letters, numbers, and hyphens\\. Don't use a hyphen for the first or last character\\. Use periods to separate subdomain names\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-z0-9](?:[a-z0-9\\-]{0,61}[a-z0-9])?$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Domain", "type": "string" }, "UserPoolId": { + "markdownDescription": "The user pool ID for the user pool where you want to associate a user pool domain\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserPoolId", "type": "string" } }, @@ -31102,6 +38137,8 @@ "additionalProperties": false, "properties": { "CertificateArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS Certificate Manager SSL certificate\\. You use this certificate for the subdomain of your custom domain\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateArn", "type": "string" } }, @@ -31143,18 +38180,28 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A string containing the description of the group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "GroupName": { + "markdownDescription": "The name of the group\\. Must be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupName", "type": "string" }, "Precedence": { + "markdownDescription": "A non\\-negative integer value that specifies the precedence of this group relative to the other groups that a user can belong to in the user pool\\. Zero is the highest precedence value\\. Groups with lower `Precedence` values take precedence over groups with higher ornull `Precedence` values\\. If a user belongs to two or more groups, it is the group with the lowest precedence value whose role ARN is given in the user's tokens for the `cognito:roles` and `cognito:preferred_role` claims\\. \nTwo groups can have the same `Precedence` value\\. If this happens, neither group takes precedence over the other\\. If two groups with the same `Precedence` have the same role ARN, that role is used in the `cognito:preferred_role` claim in tokens for users in each group\\. If the two groups have different role ARNs, the `cognito:preferred_role` claim isn't set in users' tokens\\. \nThe default `Precedence` value is null\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Precedence", "type": "number" }, "RoleArn": { + "markdownDescription": "The role Amazon Resource Name \\(ARN\\) for the group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "UserPoolId": { + "markdownDescription": "The user pool ID for the user pool\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserPoolId", "type": "string" } }, @@ -31220,24 +38267,36 @@ "additionalProperties": false, "properties": { "AttributeMapping": { + "markdownDescription": "A mapping of identity provider attributes to standard and custom user pool attributes\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeMapping", "type": "object" }, "IdpIdentifiers": { "items": { "type": "string" }, + "markdownDescription": "A list of identity provider identifiers\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdpIdentifiers", "type": "array" }, "ProviderDetails": { + "markdownDescription": "The identity provider details\\. The following list describes the provider detail keys for each identity provider type\\. \n+ For Google and Login with Amazon:\n + client\\_id\n + client\\_secret\n + authorize\\_scopes\n+ For Facebook:\n + client\\_id\n + client\\_secret\n + authorize\\_scopes\n + api\\_version\n+ For Sign in with Apple:\n + client\\_id\n + team\\_id\n + key\\_id\n + private\\_key\n + authorize\\_scopes\n+ For OpenID Connect \\(OIDC\\) providers:\n + client\\_id\n + client\\_secret\n + attributes\\_request\\_method\n + oidc\\_issuer\n + authorize\\_scopes\n + authorize\\_url *if not available from discovery URL specified by oidc\\_issuer key* \n + token\\_url *if not available from discovery URL specified by oidc\\_issuer key* \n + attributes\\_url *if not available from discovery URL specified by oidc\\_issuer key* \n + jwks\\_uri *if not available from discovery URL specified by oidc\\_issuer key* \n + attributes\\_url\\_add\\_attributes *a read\\-only property that is set automatically* \n+ For SAML providers:\n + MetadataFile OR MetadataURL\n + IDPSignout \\(optional\\)\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProviderDetails", "type": "object" }, "ProviderName": { + "markdownDescription": "The identity provider name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `[^_][\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}][^_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProviderName", "type": "string" }, "ProviderType": { + "markdownDescription": "The identity provider type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Facebook | Google | LoginWithAmazon | OIDC | SAML | SignInWithApple` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProviderType", "type": "string" }, "UserPoolId": { + "markdownDescription": "The user pool ID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserPoolId", "type": "string" } }, @@ -31305,18 +38364,26 @@ "additionalProperties": false, "properties": { "Identifier": { + "markdownDescription": "A unique resource server identifier for the resource server\\. This could be an HTTPS endpoint where the resource server is located\\. For example: `https://my-weather-api.example.com`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\x21\\x23-\\x5B\\x5D-\\x7E]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Identifier", "type": "string" }, "Name": { + "markdownDescription": "A friendly name for the resource server\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\w\\s+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Scopes": { "items": { "$ref": "#/definitions/AWS::Cognito::UserPoolResourceServer.ResourceServerScopeType" }, + "markdownDescription": "A list of scopes\\. Each scope is a map with keys `ScopeName` and `ScopeDescription`\\. \n*Required*: No \n*Type*: List of [ResourceServerScopeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolresourceserver-resourceserverscopetype.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scopes", "type": "array" }, "UserPoolId": { + "markdownDescription": "The user pool ID for the user pool\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserPoolId", "type": "string" } }, @@ -31352,9 +38419,13 @@ "additionalProperties": false, "properties": { "ScopeDescription": { + "markdownDescription": "A description of the scope\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScopeDescription", "type": "string" }, "ScopeName": { + "markdownDescription": "The name of the scope\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\x21\\x23-\\x2E\\x30-\\x5B\\x5D-\\x7E]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScopeName", "type": "string" } }, @@ -31400,18 +38471,28 @@ "additionalProperties": false, "properties": { "AccountTakeoverRiskConfiguration": { - "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverRiskConfigurationType" + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverRiskConfigurationType", + "markdownDescription": "The account takeover risk configuration object, including the `NotifyConfiguration` object and `Actions` to take if there is an account takeover\\. \n*Required*: No \n*Type*: [AccountTakeoverRiskConfigurationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoverriskconfigurationtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountTakeoverRiskConfiguration" }, "ClientId": { + "markdownDescription": "The app client ID\\. You can specify the risk configuration for a single client \\(with a specific ClientId\\) or for all clients \\(by setting the ClientId to `ALL`\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientId", "type": "string" }, "CompromisedCredentialsRiskConfiguration": { - "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.CompromisedCredentialsRiskConfigurationType" + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.CompromisedCredentialsRiskConfigurationType", + "markdownDescription": "The compromised credentials risk configuration object, including the `EventFilter` and the `EventAction`\\. \n*Required*: No \n*Type*: [CompromisedCredentialsRiskConfigurationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-compromisedcredentialsriskconfigurationtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CompromisedCredentialsRiskConfiguration" }, "RiskExceptionConfiguration": { - "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.RiskExceptionConfigurationType" + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.RiskExceptionConfigurationType", + "markdownDescription": "The configuration to override the risk decision\\. \n*Required*: No \n*Type*: [RiskExceptionConfigurationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-riskexceptionconfigurationtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RiskExceptionConfiguration" }, "UserPoolId": { + "markdownDescription": "The user pool ID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserPoolId", "type": "string" } }, @@ -31446,9 +38527,13 @@ "additionalProperties": false, "properties": { "EventAction": { + "markdownDescription": "The event action\\. \n+ `BLOCK` Choosing this action will block the request\\.\n+ `MFA_IF_CONFIGURED` Present an MFA challenge if user has configured it, else allow the request\\.\n+ `MFA_REQUIRED` Present an MFA challenge if user has configured it, else block the request\\.\n+ `NO_ACTION` Allow the user to sign in\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `BLOCK | MFA_IF_CONFIGURED | MFA_REQUIRED | NO_ACTION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventAction", "type": "string" }, "Notify": { + "markdownDescription": "Flag specifying whether to send a notification\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Notify", "type": "boolean" } }, @@ -31462,13 +38547,19 @@ "additionalProperties": false, "properties": { "HighAction": { - "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionType" + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionType", + "markdownDescription": "Action to take for a high risk\\. \n*Required*: No \n*Type*: [AccountTakeoverActionType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractiontype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HighAction" }, "LowAction": { - "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionType" + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionType", + "markdownDescription": "Action to take for a low risk\\. \n*Required*: No \n*Type*: [AccountTakeoverActionType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractiontype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LowAction" }, "MediumAction": { - "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionType" + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionType", + "markdownDescription": "Action to take for a medium risk\\. \n*Required*: No \n*Type*: [AccountTakeoverActionType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractiontype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MediumAction" } }, "type": "object" @@ -31477,10 +38568,14 @@ "additionalProperties": false, "properties": { "Actions": { - "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionsType" + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionsType", + "markdownDescription": "Account takeover risk configuration actions\\. \n*Required*: Yes \n*Type*: [AccountTakeoverActionsType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractionstype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions" }, "NotifyConfiguration": { - "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyConfigurationType" + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyConfigurationType", + "markdownDescription": "The notify configuration used to construct email notifications\\. \n*Required*: No \n*Type*: [NotifyConfigurationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyconfigurationtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotifyConfiguration" } }, "required": [ @@ -31492,6 +38587,8 @@ "additionalProperties": false, "properties": { "EventAction": { + "markdownDescription": "The event action\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BLOCK | NO_ACTION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventAction", "type": "string" } }, @@ -31504,12 +38601,16 @@ "additionalProperties": false, "properties": { "Actions": { - "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.CompromisedCredentialsActionsType" + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.CompromisedCredentialsActionsType", + "markdownDescription": "The compromised credentials risk configuration actions\\. \n*Required*: Yes \n*Type*: [CompromisedCredentialsActionsType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-compromisedcredentialsactionstype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions" }, "EventFilter": { "items": { "type": "string" }, + "markdownDescription": "Perform the action for these events\\. The default is to perform all events if no event filter is specified\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventFilter", "type": "array" } }, @@ -31522,21 +38623,33 @@ "additionalProperties": false, "properties": { "BlockEmail": { - "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyEmailType" + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyEmailType", + "markdownDescription": "Email template used when a detected risk event is blocked\\. \n*Required*: No \n*Type*: [NotifyEmailType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyemailtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockEmail" }, "From": { + "markdownDescription": "The email address that is sending the email\\. The address must be either individually verified with Amazon Simple Email Service, or from a domain that has been verified with Amazon SES\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "From", "type": "string" }, "MfaEmail": { - "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyEmailType" + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyEmailType", + "markdownDescription": "The multi\\-factor authentication \\(MFA\\) email template used when MFA is challenged as part of a detected risk\\. \n*Required*: No \n*Type*: [NotifyEmailType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyemailtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MfaEmail" }, "NoActionEmail": { - "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyEmailType" + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyEmailType", + "markdownDescription": "The email template used when a detected risk event is allowed\\. \n*Required*: No \n*Type*: [NotifyEmailType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyemailtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoActionEmail" }, "ReplyTo": { + "markdownDescription": "The destination to which the receiver of an email should reply to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplyTo", "type": "string" }, "SourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the identity that is associated with the sending authorization policy\\. This identity permits Amazon Cognito to send for the email address specified in the `From` parameter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceArn", "type": "string" } }, @@ -31549,12 +38662,18 @@ "additionalProperties": false, "properties": { "HtmlBody": { + "markdownDescription": "The email HTML body\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `20000` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HtmlBody", "type": "string" }, "Subject": { + "markdownDescription": "The email subject\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `140` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subject", "type": "string" }, "TextBody": { + "markdownDescription": "The email text body\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `20000` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextBody", "type": "string" } }, @@ -31570,12 +38689,16 @@ "items": { "type": "string" }, + "markdownDescription": "Overrides the risk decision to always block the pre\\-authentication requests\\. The IP range is in CIDR notation, a compact representation of an IP address and its routing prefix\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockedIPRangeList", "type": "array" }, "SkippedIPRangeList": { "items": { "type": "string" }, + "markdownDescription": "Risk detection isn't performed on the IP addresses in this range list\\. The IP range is in CIDR notation\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SkippedIPRangeList", "type": "array" } }, @@ -31617,12 +38740,18 @@ "additionalProperties": false, "properties": { "CSS": { + "markdownDescription": "The CSS values in the UI customization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CSS", "type": "string" }, "ClientId": { + "markdownDescription": "The client ID for the client app\\. You can specify the UI customization settings for a single client \\(with a specific clientId\\) or for all clients \\(by setting the clientId to `ALL`\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientId", "type": "string" }, "UserPoolId": { + "markdownDescription": "The user pool ID for the user pool\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserPoolId", "type": "string" } }, @@ -31689,36 +38818,52 @@ "additionalProperties": false, "properties": { "ClientMetadata": { + "markdownDescription": "A map of custom key\\-value pairs that you can provide as input for the custom workflow that is invoked by the *pre sign\\-up* trigger\\. \nYou create custom workflows by assigning AWS Lambda functions to user pool triggers\\. When you create a `UserPoolUser` resource and include the `ClientMetadata` property, Amazon Cognito invokes the function that is assigned to the *pre sign\\-up* trigger\\. When Amazon Cognito invokes this function, it passes a JSON payload, which the function receives as input\\. This payload contains a `clientMetadata` attribute, which provides the data that you assigned to the ClientMetadata property\\. In your function code in AWS Lambda, you can process the `clientMetadata` value to enhance your workflow for your specific needs\\. \nFor more information, see [Customizing User Pool Workflows with Lambda Triggers](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html) in the *Amazon Cognito Developer Guide*\\. \nTake the following limitations into consideration when you use the ClientMetadata parameter: \n+ Amazon Cognito does not store the ClientMetadata value\\. This data is available only to AWS Lambda triggers that are assigned to a user pool to support custom workflows\\. If your user pool configuration does not include triggers, the ClientMetadata parameter serves no purpose\\.\n+ Amazon Cognito does not validate the ClientMetadata value\\.\n+ Amazon Cognito does not encrypt the the ClientMetadata value, so don't use it to provide sensitive information\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientMetadata", "type": "object" }, "DesiredDeliveryMediums": { "items": { "type": "string" }, + "markdownDescription": "Specify `\"EMAIL\"` if email will be used to send the welcome message\\. Specify `\"SMS\"` if the phone number will be used\\. The default value is `\"SMS\"`\\. You can specify more than one value\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DesiredDeliveryMediums", "type": "array" }, "ForceAliasCreation": { + "markdownDescription": "This parameter is used only if the `phone_number_verified` or `email_verified` attribute is set to `True`\\. Otherwise, it is ignored\\. \nIf this parameter is set to `True` and the phone number or email address specified in the UserAttributes parameter already exists as an alias with a different user, the API call will migrate the alias from the previous user to the newly created user\\. The previous user will no longer be able to log in using that alias\\. \nIf this parameter is set to `False`, the API throws an `AliasExistsException` error if the alias already exists\\. The default value is `False`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ForceAliasCreation", "type": "boolean" }, "MessageAction": { + "markdownDescription": "Set to `RESEND` to resend the invitation message to a user that already exists and reset the expiration limit on the user's account\\. Set to `SUPPRESS` to suppress sending the message\\. You can specify only one value\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `RESEND | SUPPRESS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MessageAction", "type": "string" }, "UserAttributes": { "items": { "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType" }, + "markdownDescription": "The user attributes and attribute values to be set for the user to be created\\. These are name\\-value pairs You can create a user without specifying any attributes other than `Username`\\. However, any attributes that you specify as required \\(in [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html) or in the **Attributes** tab of the console\\) must be supplied either by you \\(in your call to `AdminCreateUser`\\) or by the user \\(when they sign up in response to your welcome message\\)\\. \nFor custom attributes, you must prepend the `custom:` prefix to the attribute name\\. \nTo send a message inviting the user to sign up, you must specify the user's email address or phone number\\. This can be done in your call to AdminCreateUser or in the **Users** tab of the Amazon Cognito console for managing your user pools\\. \nIn your call to `AdminCreateUser`, you can set the `email_verified` attribute to `True`, and you can set the `phone_number_verified` attribute to `True`\\. \\(You can also do this by calling [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)\\.\\) \n+ **email**: The email address of the user to whom the message that contains the code and user name will be sent\\. Required if the `email_verified` attribute is set to `True`, or if `\"EMAIL\"` is specified in the `DesiredDeliveryMediums` parameter\\.\n+ **phone\\_number**: The phone number of the user to whom the message that contains the code and user name will be sent\\. Required if the `phone_number_verified` attribute is set to `True`, or if `\"SMS\"` is specified in the `DesiredDeliveryMediums` parameter\\.\n*Required*: No \n*Type*: List of [AttributeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpooluser-attributetype.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserAttributes", "type": "array" }, "UserPoolId": { + "markdownDescription": "The user pool ID for the user pool where the user will be created\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserPoolId", "type": "string" }, "Username": { + "markdownDescription": "The username for the user\\. Must be unique within the user pool\\. Must be a UTF\\-8 string between 1 and 128 characters\\. After the user is created, the username can't be changed\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Username", "type": "string" }, "ValidationData": { "items": { "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType" }, + "markdownDescription": "The user's validation data\\. This is an array of name\\-value pairs that contain user attributes and attribute values that you can use for custom validation, such as restricting the types of user accounts that can be registered\\. For example, you might choose to allow or disallow user sign\\-up based on the user's domain\\. \nTo configure custom validation, you must create a Pre Sign\\-up AWS Lambda trigger for the user pool as described in the Amazon Cognito Developer Guide\\. The Lambda trigger receives the validation data and uses it in the validation process\\. \nThe user's validation data isn't persisted\\. \n*Required*: No \n*Type*: List of [AttributeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpooluser-attributetype.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ValidationData", "type": "array" } }, @@ -31752,9 +38897,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the attribute\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "The value of the attribute\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -31796,12 +38945,18 @@ "additionalProperties": false, "properties": { "GroupName": { + "markdownDescription": "The group name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupName", "type": "string" }, "UserPoolId": { + "markdownDescription": "The user pool ID for the user pool\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserPoolId", "type": "string" }, "Username": { + "markdownDescription": "The username for the user\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Username", "type": "string" } }, @@ -31869,15 +39024,21 @@ "additionalProperties": false, "properties": { "AuthorizedAccountId": { + "markdownDescription": "The 12\\-digit account ID of the account authorized to aggregate data\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `\\d{12}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthorizedAccountId", "type": "string" }, "AuthorizedAwsRegion": { + "markdownDescription": "The region authorized to collect aggregated data\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthorizedAwsRegion", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of tag object\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -31944,22 +39105,34 @@ "additionalProperties": false, "properties": { "ConfigRuleName": { + "markdownDescription": "A name for the AWS Config rule\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the rule name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfigRuleName", "type": "string" }, "Description": { + "markdownDescription": "The description that you provide for the AWS Config rule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "InputParameters": { + "markdownDescription": "A string, in JSON format, that is passed to the AWS Config rule Lambda function\\. \n*Required*: No \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputParameters", "type": "object" }, "MaximumExecutionFrequency": { + "markdownDescription": "The maximum frequency with which AWS Config runs evaluations for a rule\\. You can specify a value for `MaximumExecutionFrequency` when: \n+ You are using an AWS managed rule that is triggered at a periodic frequency\\.\n+ Your custom rule is triggered when AWS Config delivers the configuration snapshot\\. For more information, see [ConfigSnapshotDeliveryProperties](https://docs.aws.amazon.com/config/latest/APIReference/API_ConfigSnapshotDeliveryProperties.html)\\.\nBy default, rules with a periodic trigger are evaluated every 24 hours\\. To change the frequency, specify a valid value for the `MaximumExecutionFrequency` parameter\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `One_Hour | Six_Hours | Three_Hours | Twelve_Hours | TwentyFour_Hours` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumExecutionFrequency", "type": "string" }, "Scope": { - "$ref": "#/definitions/AWS::Config::ConfigRule.Scope" + "$ref": "#/definitions/AWS::Config::ConfigRule.Scope", + "markdownDescription": "Defines which resources can trigger an evaluation for the rule\\. The scope can include one or more resource types, a combination of one resource type and one resource ID, or a combination of a tag key and value\\. Specify a scope to constrain the resources that can trigger an evaluation for the rule\\. If you do not specify a scope, evaluations are triggered when any resource in the recording group changes\\. \nThe scope can be empty\\. \n*Required*: No \n*Type*: [Scope](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-scope.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scope" }, "Source": { - "$ref": "#/definitions/AWS::Config::ConfigRule.Source" + "$ref": "#/definitions/AWS::Config::ConfigRule.Source", + "markdownDescription": "Provides the rule owner \\(AWS or customer\\), the rule identifier, and the notifications that cause the function to evaluate your AWS resources\\. \n*Required*: Yes \n*Type*: [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source" } }, "required": [ @@ -32007,18 +39180,26 @@ "additionalProperties": false, "properties": { "ComplianceResourceId": { + "markdownDescription": "The ID of the only AWS resource that you want to trigger an evaluation for the rule\\. If you specify a resource ID, you must specify one resource type for `ComplianceResourceTypes`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `768` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComplianceResourceId", "type": "string" }, "ComplianceResourceTypes": { "items": { "type": "string" }, + "markdownDescription": "The resource types of only those AWS resources that you want to trigger an evaluation for the rule\\. You can only specify one type if you also specify a resource ID for `ComplianceResourceId`\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComplianceResourceTypes", "type": "array" }, "TagKey": { + "markdownDescription": "The tag key that is applied to only those AWS resources that you want to trigger an evaluation for the rule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagKey", "type": "string" }, "TagValue": { + "markdownDescription": "The tag value applied to only those AWS resources that you want to trigger an evaluation for the rule\\. If you specify a value for `TagValue`, you must also specify a value for `TagKey`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagValue", "type": "string" } }, @@ -32031,15 +39212,21 @@ "$ref": "#/definitions/AWS::Config::ConfigRule.CustomPolicyDetails" }, "Owner": { + "markdownDescription": "Indicates whether AWS or the customer owns and manages the AWS Config rule\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AWS | CUSTOM_LAMBDA` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Owner", "type": "string" }, "SourceDetails": { "items": { "$ref": "#/definitions/AWS::Config::ConfigRule.SourceDetail" }, + "markdownDescription": "Provides the source and type of the event that causes AWS Config to evaluate your AWS resources\\. \n*Required*: No \n*Type*: List of [SourceDetail](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source-sourcedetails.html) \n*Maximum*: `25` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceDetails", "type": "array" }, "SourceIdentifier": { + "markdownDescription": "For AWS Config managed rules, a predefined identifier from a list\\. For example, `IAM_PASSWORD_POLICY` is a managed rule\\. To reference a managed rule, see [Using AWS Config managed rules](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html)\\. \nFor custom rules, the identifier is the Amazon Resource Name \\(ARN\\) of the rule's AWS Lambda function, such as `arn:aws:lambda:us-east-2:123456789012:function:custom_rule_name`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceIdentifier", "type": "string" } }, @@ -32052,12 +39239,18 @@ "additionalProperties": false, "properties": { "EventSource": { + "markdownDescription": "The source of the event, such as an AWS service, that triggers AWS Config to evaluate your AWS resources\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `aws.config` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventSource", "type": "string" }, "MaximumExecutionFrequency": { + "markdownDescription": "The frequency at which you want AWS Config to run evaluations for a custom rule with a periodic trigger\\. If you specify a value for `MaximumExecutionFrequency`, then `MessageType` must use the `ScheduledNotification` value\\. \nBy default, rules with a periodic trigger are evaluated every 24 hours\\. To change the frequency, specify a valid value for the `MaximumExecutionFrequency` parameter\\. \nBased on the valid value you choose, AWS Config runs evaluations once for each valid value\\. For example, if you choose `Three_Hours`, AWS Config runs evaluations once every three hours\\. In this case, `Three_Hours` is the frequency of this rule\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `One_Hour | Six_Hours | Three_Hours | Twelve_Hours | TwentyFour_Hours` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumExecutionFrequency", "type": "string" }, "MessageType": { + "markdownDescription": "The type of notification that triggers AWS Config to run an evaluation for a rule\\. You can specify the following notification types: \n+ `ConfigurationItemChangeNotification` \\- Triggers an evaluation when AWS Config delivers a configuration item as a result of a resource change\\.\n+ `OversizedConfigurationItemChangeNotification` \\- Triggers an evaluation when AWS Config delivers an oversized configuration item\\. AWS Config may generate this notification type when a resource changes and the notification exceeds the maximum size allowed by Amazon SNS\\.\n+ `ScheduledNotification` \\- Triggers a periodic evaluation at the frequency specified for `MaximumExecutionFrequency`\\.\n+ `ConfigurationSnapshotDeliveryCompleted` \\- Triggers a periodic evaluation when AWS Config delivers a configuration snapshot\\.\nIf you want your custom rule to be triggered by configuration changes, specify two SourceDetail objects, one for `ConfigurationItemChangeNotification` and one for `OversizedConfigurationItemChangeNotification`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ConfigurationItemChangeNotification | ConfigurationSnapshotDeliveryCompleted | OversizedConfigurationItemChangeNotification | ScheduledNotification` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageType", "type": "string" } }, @@ -32106,18 +39299,26 @@ "items": { "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.AccountAggregationSource" }, + "markdownDescription": "Provides a list of source accounts and regions to be aggregated\\. \n*Required*: No \n*Type*: List of [AccountAggregationSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationaggregator-accountaggregationsource.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountAggregationSources", "type": "array" }, "ConfigurationAggregatorName": { + "markdownDescription": "The name of the aggregator\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\w\\-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfigurationAggregatorName", "type": "string" }, "OrganizationAggregationSource": { - "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.OrganizationAggregationSource" + "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.OrganizationAggregationSource", + "markdownDescription": "Provides an organization and list of regions to be aggregated\\. \n*Required*: No \n*Type*: [OrganizationAggregationSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationaggregator-organizationaggregationsource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrganizationAggregationSource" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of tag object\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -32150,15 +39351,21 @@ "items": { "type": "string" }, + "markdownDescription": "The 12\\-digit account ID of the account being aggregated\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountIds", "type": "array" }, "AllAwsRegions": { + "markdownDescription": "If true, aggregate existing AWS Config regions and future regions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllAwsRegions", "type": "boolean" }, "AwsRegions": { "items": { "type": "string" }, + "markdownDescription": "The source regions being aggregated\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsRegions", "type": "array" } }, @@ -32171,15 +39378,21 @@ "additionalProperties": false, "properties": { "AllAwsRegions": { + "markdownDescription": "If true, aggregate existing AWS Config regions and future regions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllAwsRegions", "type": "boolean" }, "AwsRegions": { "items": { "type": "string" }, + "markdownDescription": "The source regions being aggregated\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsRegions", "type": "array" }, "RoleArn": { + "markdownDescription": "ARN of the IAM role used to retrieve AWS Organizations details associated with the aggregator account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -32224,12 +39437,18 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "A name for the configuration recorder\\. If you don't specify a name, AWS CloudFormation CloudFormation generates a unique physical ID and uses that ID for the configuration recorder name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nAfter you create a configuration recorder, you cannot rename it\\. If you don't want a name that AWS CloudFormation generates, specify a value for this property\\. \nUpdates are not supported\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RecordingGroup": { - "$ref": "#/definitions/AWS::Config::ConfigurationRecorder.RecordingGroup" + "$ref": "#/definitions/AWS::Config::ConfigurationRecorder.RecordingGroup", + "markdownDescription": "Indicates whether to record configurations for all supported resources or for a list of resource types\\. The resource types that you list must be supported by AWS Config\\. \n*Required*: No \n*Type*: [RecordingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordinggroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordingGroup" }, "RoleARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM \\(IAM\\) role that is used to make read or write requests to the delivery channel that you specify and to get configuration details for supported AWS resources\\. For more information, see [Permissions for the IAM Role Assigned](https://docs.aws.amazon.com/config/latest/developerguide/iamrole-permissions.html) to AWS Config in the AWS Config Developer Guide\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleARN", "type": "string" } }, @@ -32263,15 +39482,21 @@ "additionalProperties": false, "properties": { "AllSupported": { + "markdownDescription": "Specifies whether AWS Config records configuration changes for every supported type of regional resource\\. \nIf you set this option to `true`, when AWS Config adds support for a new type of regional resource, it starts recording resources of that type automatically\\. \nIf you set this option to `true`, you cannot enumerate a list of `resourceTypes`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllSupported", "type": "boolean" }, "IncludeGlobalResourceTypes": { + "markdownDescription": "Specifies whether AWS Config includes all supported types of global resources \\(for example, IAM resources\\) with the resources that it records\\. \nBefore you can set this option to `true`, you must set the `AllSupported` option to `true`\\. \nIf you set this option to `true`, when AWS Config adds support for a new type of global resource, it starts recording resources of that type automatically\\. \nThe configuration details for any global resource are the same in all regions\\. To prevent duplicate configuration items, you should consider customizing AWS Config in only one region to record global resources\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeGlobalResourceTypes", "type": "boolean" }, "ResourceTypes": { "items": { "type": "string" }, + "markdownDescription": "A comma\\-separated list that specifies the types of AWS resources for which AWS Config records configuration changes \\(for example, `AWS::EC2::Instance` or `AWS::CloudTrail::Trail`\\)\\. \nTo record all configuration changes, you must set the `AllSupported` option to `false`\\. \nIf you set this option to `true`, when AWS Config adds support for a new type of resource, it will not record resources of that type unless you manually add that type to your recording group\\. \nFor a list of valid `resourceTypes` values, see the **resourceType Value** column in [Supported AWS Resource Types](https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceTypes", "type": "array" } }, @@ -32316,21 +39541,33 @@ "items": { "$ref": "#/definitions/AWS::Config::ConformancePack.ConformancePackInputParameter" }, + "markdownDescription": "A list of ConformancePackInputParameter objects\\. \n*Required*: No \n*Type*: List of [ConformancePackInputParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-conformancepack-conformancepackinputparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConformancePackInputParameters", "type": "array" }, "ConformancePackName": { + "markdownDescription": "Name of the conformance pack you want to create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConformancePackName", "type": "string" }, "DeliveryS3Bucket": { + "markdownDescription": "The name of the Amazon S3 bucket where AWS Config stores conformance pack templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryS3Bucket", "type": "string" }, "DeliveryS3KeyPrefix": { + "markdownDescription": "The prefix for the Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryS3KeyPrefix", "type": "string" }, "TemplateBody": { + "markdownDescription": "A string containing full conformance pack template body\\. Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes\\. \nYou can only use a YAML template with two resource types: config rule \\(`AWS::Config::ConfigRule`\\) and a remediation action \\(`AWS::Config::RemediationConfiguration`\\)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateBody", "type": "string" }, "TemplateS3Uri": { + "markdownDescription": "Location of file containing the template body \\(s3://bucketname/prefix\\)\\. The uri must point to the conformance pack template \\(max size: 300 KB\\) that is located in an Amazon S3 bucket\\. \nYou must have access to read Amazon S3 bucket\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateS3Uri", "type": "string" }, "TemplateSSMDocumentDetails": { @@ -32367,9 +39604,13 @@ "additionalProperties": false, "properties": { "ParameterName": { + "markdownDescription": "One part of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterName", "type": "string" }, "ParameterValue": { + "markdownDescription": "Another part of the key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterValue", "type": "string" } }, @@ -32427,21 +39668,33 @@ "additionalProperties": false, "properties": { "ConfigSnapshotDeliveryProperties": { - "$ref": "#/definitions/AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties" + "$ref": "#/definitions/AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties", + "markdownDescription": "The options for how often AWS Config delivers configuration snapshots to the Amazon S3 bucket\\. \n*Required*: No \n*Type*: [ConfigSnapshotDeliveryProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-deliverychannel-configsnapshotdeliveryproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfigSnapshotDeliveryProperties" }, "Name": { + "markdownDescription": "A name for the delivery channel\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the delivery channel name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nUpdates are not supported\\. To change the name, you must run two separate updates\\. In the first update, delete this resource, and then recreate it with a new name in the second update\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "S3BucketName": { + "markdownDescription": "The name of the Amazon S3 bucket to which AWS Config delivers configuration snapshots and configuration history files\\. \nIf you specify a bucket that belongs to another AWS account, that bucket must have policies that grant access permissions to AWS Config\\. For more information, see [Permissions for the Amazon S3 Bucket](https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-policy.html) in the AWS Config Developer Guide\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketName", "type": "string" }, "S3KeyPrefix": { + "markdownDescription": "The prefix for the specified Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3KeyPrefix", "type": "string" }, "S3KmsKeyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Key Management Service \\(AWS KMS \\) AWS KMS key \\(KMS key\\) used to encrypt objects delivered by AWS Config\\. Must belong to the same Region as the destination S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3KmsKeyArn", "type": "string" }, "SnsTopicARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to which AWS Config sends notifications about configuration changes\\. \nIf you choose a topic from another account, the topic must have policies that grant access permissions to AWS Config\\. For more information, see [Permissions for the Amazon SNS Topic](https://docs.aws.amazon.com/config/latest/developerguide/sns-topic-policy.html) in the AWS Config Developer Guide\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsTopicARN", "type": "string" } }, @@ -32475,6 +39728,8 @@ "additionalProperties": false, "properties": { "DeliveryFrequency": { + "markdownDescription": "The frequency with which AWS Config delivers configuration snapshots\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `One_Hour | Six_Hours | Three_Hours | Twelve_Hours | TwentyFour_Hours` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryFrequency", "type": "string" } }, @@ -32519,19 +39774,27 @@ "items": { "type": "string" }, + "markdownDescription": "A comma\\-separated list of accounts excluded from organization config rule\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludedAccounts", "type": "array" }, "OrganizationConfigRuleName": { + "markdownDescription": "The name that you assign to organization config rule\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OrganizationConfigRuleName", "type": "string" }, - "OrganizationCustomCodeRuleMetadata": { - "$ref": "#/definitions/AWS::Config::OrganizationConfigRule.OrganizationCustomCodeRuleMetadata" + "OrganizationCustomPolicyRuleMetadata": { + "$ref": "#/definitions/AWS::Config::OrganizationConfigRule.OrganizationCustomPolicyRuleMetadata" }, "OrganizationCustomRuleMetadata": { - "$ref": "#/definitions/AWS::Config::OrganizationConfigRule.OrganizationCustomRuleMetadata" + "$ref": "#/definitions/AWS::Config::OrganizationConfigRule.OrganizationCustomRuleMetadata", + "markdownDescription": "An `OrganizationCustomRuleMetadata` object\\. \n*Required*: No \n*Type*: [OrganizationCustomRuleMetadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrganizationCustomRuleMetadata" }, "OrganizationManagedRuleMetadata": { - "$ref": "#/definitions/AWS::Config::OrganizationConfigRule.OrganizationManagedRuleMetadata" + "$ref": "#/definitions/AWS::Config::OrganizationConfigRule.OrganizationManagedRuleMetadata", + "markdownDescription": "An `OrganizationManagedRuleMetadata` object\\. \n*Required*: No \n*Type*: [OrganizationManagedRuleMetadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationmanagedrulemetadata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrganizationManagedRuleMetadata" } }, "required": [ @@ -32560,12 +39823,9 @@ ], "type": "object" }, - "AWS::Config::OrganizationConfigRule.OrganizationCustomCodeRuleMetadata": { + "AWS::Config::OrganizationConfigRule.OrganizationCustomPolicyRuleMetadata": { "additionalProperties": false, "properties": { - "CodeText": { - "type": "string" - }, "DebugLogDeliveryAccounts": { "items": { "type": "string" @@ -32587,6 +39847,9 @@ }, "type": "array" }, + "PolicyText": { + "type": "string" + }, "ResourceIdScope": { "type": "string" }, @@ -32607,7 +39870,7 @@ } }, "required": [ - "CodeText", + "PolicyText", "Runtime" ], "type": "object" @@ -32616,36 +39879,54 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description that you provide for organization config rule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "InputParameters": { + "markdownDescription": "A string, in JSON format, that is passed to organization config rule Lambda function\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputParameters", "type": "string" }, "LambdaFunctionArn": { + "markdownDescription": "The lambda function ARN\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaFunctionArn", "type": "string" }, "MaximumExecutionFrequency": { + "markdownDescription": "The maximum frequency with which AWS Config runs evaluations for a rule\\. Your custom rule is triggered when AWS Config delivers the configuration snapshot\\. For more information, see [ConfigSnapshotDeliveryProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-deliverychannel.html#cfn-config-deliverychannel-configsnapshotdeliveryproperties)\\. \nBy default, rules with a periodic trigger are evaluated every 24 hours\\. To change the frequency, specify a valid value for the `MaximumExecutionFrequency` parameter\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `One_Hour | Six_Hours | Three_Hours | Twelve_Hours | TwentyFour_Hours` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumExecutionFrequency", "type": "string" }, "OrganizationConfigRuleTriggerTypes": { "items": { "type": "string" }, + "markdownDescription": "The type of notification that triggers AWS Config to run an evaluation for a rule\\. You can specify the following notification types: \n+ `ConfigurationItemChangeNotification` \\- Triggers an evaluation when AWS Config delivers a configuration item as a result of a resource change\\.\n+ `OversizedConfigurationItemChangeNotification` \\- Triggers an evaluation when AWS Config delivers an oversized configuration item\\. AWS Config may generate this notification type when a resource changes and the notification exceeds the maximum size allowed by Amazon SNS\\.\n+ `ScheduledNotification` \\- Triggers a periodic evaluation at the frequency specified for `MaximumExecutionFrequency`\\.\n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrganizationConfigRuleTriggerTypes", "type": "array" }, "ResourceIdScope": { + "markdownDescription": "The ID of the AWS resource that was evaluated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `768` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceIdScope", "type": "string" }, "ResourceTypesScope": { "items": { "type": "string" }, + "markdownDescription": "The type of the AWS resource that was evaluated\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceTypesScope", "type": "array" }, "TagKeyScope": { + "markdownDescription": "One part of a key\\-value pair that make up a tag\\. A key is a general label that acts like a category for more specific tag values\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagKeyScope", "type": "string" }, "TagValueScope": { + "markdownDescription": "The optional part of a key\\-value pair that make up a tag\\. A value acts as a descriptor within a tag category \\(key\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagValueScope", "type": "string" } }, @@ -32659,30 +39940,46 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description that you provide for organization config rule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "InputParameters": { + "markdownDescription": "A string, in JSON format, that is passed to organization config rule Lambda function\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputParameters", "type": "string" }, "MaximumExecutionFrequency": { + "markdownDescription": "The maximum frequency with which AWS Config runs evaluations for a rule\\. You are using an AWS Config managed rule that is triggered at a periodic frequency\\. \nBy default, rules with a periodic trigger are evaluated every 24 hours\\. To change the frequency, specify a valid value for the `MaximumExecutionFrequency` parameter\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `One_Hour | Six_Hours | Three_Hours | Twelve_Hours | TwentyFour_Hours` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumExecutionFrequency", "type": "string" }, "ResourceIdScope": { + "markdownDescription": "The ID of the AWS resource that was evaluated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `768` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceIdScope", "type": "string" }, "ResourceTypesScope": { "items": { "type": "string" }, + "markdownDescription": "The type of the AWS resource that was evaluated\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceTypesScope", "type": "array" }, "RuleIdentifier": { + "markdownDescription": "For organization config managed rules, a predefined identifier from a list\\. For example, `IAM_PASSWORD_POLICY` is a managed rule\\. To reference a managed rule, see [Using AWS Config managed rules](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleIdentifier", "type": "string" }, "TagKeyScope": { + "markdownDescription": "One part of a key\\-value pair that make up a tag\\. A key is a general label that acts like a category for more specific tag values\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagKeyScope", "type": "string" }, "TagValueScope": { + "markdownDescription": "The optional part of a key\\-value pair that make up a tag\\. A value acts as a descriptor within a tag category \\(key\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagValueScope", "type": "string" } }, @@ -32730,27 +40027,41 @@ "items": { "$ref": "#/definitions/AWS::Config::OrganizationConformancePack.ConformancePackInputParameter" }, + "markdownDescription": "A list of `ConformancePackInputParameter` objects\\. \n*Required*: No \n*Type*: List of [ConformancePackInputParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconformancepack-conformancepackinputparameter.html) \n*Maximum*: `60` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConformancePackInputParameters", "type": "array" }, "DeliveryS3Bucket": { + "markdownDescription": "The name of the Amazon S3 bucket where AWS Config stores conformance pack templates\\. \nThis field is optional\\.\n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryS3Bucket", "type": "string" }, "DeliveryS3KeyPrefix": { + "markdownDescription": "Any folder structure you want to add to an Amazon S3 bucket\\. \nThis field is optional\\.\n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryS3KeyPrefix", "type": "string" }, "ExcludedAccounts": { "items": { "type": "string" }, + "markdownDescription": "A comma\\-separated list of accounts excluded from organization conformance pack\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludedAccounts", "type": "array" }, "OrganizationConformancePackName": { + "markdownDescription": "The name you assign to an organization conformance pack\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z][-a-zA-Z0-9]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OrganizationConformancePackName", "type": "string" }, "TemplateBody": { + "markdownDescription": "A string containing full conformance pack template body\\. Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateBody", "type": "string" }, "TemplateS3Uri": { + "markdownDescription": "Location of file containing the template body\\. The uri must point to the conformance pack template \\(max size: 300 KB\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateS3Uri", "type": "string" } }, @@ -32784,9 +40095,13 @@ "additionalProperties": false, "properties": { "ParameterName": { + "markdownDescription": "One part of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterName", "type": "string" }, "ParameterValue": { + "markdownDescription": "One part of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterValue", "type": "string" } }, @@ -32832,33 +40147,53 @@ "additionalProperties": false, "properties": { "Automatic": { + "markdownDescription": "The remediation is triggered automatically\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Automatic", "type": "boolean" }, "ConfigRuleName": { + "markdownDescription": "The name of the AWS Config rule\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfigRuleName", "type": "string" }, "ExecutionControls": { - "$ref": "#/definitions/AWS::Config::RemediationConfiguration.ExecutionControls" + "$ref": "#/definitions/AWS::Config::RemediationConfiguration.ExecutionControls", + "markdownDescription": "An ExecutionControls object\\. \n*Required*: No \n*Type*: [ExecutionControls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-executioncontrols.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionControls" }, "MaximumAutomaticAttempts": { + "markdownDescription": "The maximum number of failed attempts for auto\\-remediation\\. If you do not select a number, the default is 5\\. \nFor example, if you specify MaximumAutomaticAttempts as 5 with RetryAttemptSeconds as 50 seconds, AWS Config will put a RemediationException on your behalf for the failing resource after the 5th failed attempt within 50 seconds\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `25` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumAutomaticAttempts", "type": "number" }, "Parameters": { + "markdownDescription": "An object of the RemediationParameterValue\\. \nThe type is a map of strings to RemediationParameterValue\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "object" }, "ResourceType": { + "markdownDescription": "The type of a resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceType", "type": "string" }, "RetryAttemptSeconds": { + "markdownDescription": "Maximum time in seconds that AWS Config runs auto\\-remediation\\. If you do not select a number, the default is 60 seconds\\. \nFor example, if you specify RetryAttemptSeconds as 50 seconds and MaximumAutomaticAttempts as 5, AWS Config will run auto\\-remediations 5 times within 50 seconds before throwing an exception\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryAttemptSeconds", "type": "number" }, "TargetId": { + "markdownDescription": "Target ID is the name of the public document\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetId", "type": "string" }, "TargetType": { + "markdownDescription": "The type of the target\\. Target executes remediation\\. For example, SSM document\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SSM_DOCUMENT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetType", "type": "string" }, "TargetVersion": { + "markdownDescription": "Version of the target\\. For example, version of the SSM document\\. \nIf you make backward incompatible changes to the SSM document, you must call PutRemediationConfiguration API again to ensure the remediations can run\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetVersion", "type": "string" } }, @@ -32894,7 +40229,9 @@ "additionalProperties": false, "properties": { "SsmControls": { - "$ref": "#/definitions/AWS::Config::RemediationConfiguration.SsmControls" + "$ref": "#/definitions/AWS::Config::RemediationConfiguration.SsmControls", + "markdownDescription": "A SsmControls object\\. \n*Required*: No \n*Type*: [SsmControls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-ssmcontrols.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SsmControls" } }, "type": "object" @@ -32903,10 +40240,14 @@ "additionalProperties": false, "properties": { "ResourceValue": { - "$ref": "#/definitions/AWS::Config::RemediationConfiguration.ResourceValue" + "$ref": "#/definitions/AWS::Config::RemediationConfiguration.ResourceValue", + "markdownDescription": "The value is dynamic and changes at run\\-time\\. \n*Required*: No \n*Type*: [ResourceValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-resourcevalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceValue" }, "StaticValue": { - "$ref": "#/definitions/AWS::Config::RemediationConfiguration.StaticValue" + "$ref": "#/definitions/AWS::Config::RemediationConfiguration.StaticValue", + "markdownDescription": "The value is static and does not change at run\\-time\\. \n*Required*: No \n*Type*: [StaticValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-staticvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StaticValue" } }, "type": "object" @@ -32915,6 +40256,8 @@ "additionalProperties": false, "properties": { "Value": { + "markdownDescription": "The value is a resource ID\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `RESOURCE_ID` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -32924,9 +40267,13 @@ "additionalProperties": false, "properties": { "ConcurrentExecutionRatePercentage": { + "markdownDescription": "The maximum percentage of remediation actions allowed to run in parallel on the non\\-compliant resources for that specific rule\\. You can specify a percentage, such as 10%\\. The default value is 10\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConcurrentExecutionRatePercentage", "type": "number" }, "ErrorPercentage": { + "markdownDescription": "The percentage of errors that are allowed before SSM stops running automations on non\\-compliant resources for that specific rule\\. You can specify a percentage of errors, for example 10%\\. If you do not specifiy a percentage, the default is 50%\\. For example, if you set the ErrorPercentage to 40% for 10 non\\-compliant resources, then SSM stops running the automations when the fifth error is received\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorPercentage", "type": "number" } }, @@ -32939,6 +40286,8 @@ "items": { "type": "string" }, + "markdownDescription": "A list of values\\. For example, the ARN of the assumed role\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `25` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -32980,18 +40329,26 @@ "additionalProperties": false, "properties": { "QueryDescription": { + "markdownDescription": "A unique description for the query\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryDescription", "type": "string" }, "QueryExpression": { + "markdownDescription": "The expression of the query\\. For example, `SELECT resourceId, resourceType, supplementaryConfiguration.BucketVersioningConfiguration.status WHERE resourceType = 'AWS::S3::Bucket' AND supplementaryConfiguration.BucketVersioningConfiguration.status = 'Off'.` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryExpression", "type": "string" }, "QueryName": { + "markdownDescription": "The name of the query\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9-_]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "QueryName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -33022,6 +40379,75 @@ ], "type": "object" }, + "AWS::Connect::ApprovedOrigin": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "InstanceId": { + "type": "string" + }, + "Origin": { + "type": "string" + } + }, + "required": [ + "InstanceId", + "Origin" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::ApprovedOrigin" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Connect::ContactFlow": { "additionalProperties": false, "properties": { @@ -33058,27 +40484,41 @@ "additionalProperties": false, "properties": { "Content": { + "markdownDescription": "The content of the contact flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Content", "type": "string" }, "Description": { + "markdownDescription": "The description of the contact flow\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "InstanceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon Connect instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceArn", "type": "string" }, "Name": { + "markdownDescription": "The name of the contact flow\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "State": { + "markdownDescription": "The state of the contact flow\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ACTIVE | ARCHIVED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Type": { + "markdownDescription": "The type of the contact flow\\. For descriptions of the available types, see [Choose a Contact Flow Type](https://docs.aws.amazon.com/connect/latest/adminguide/create-contact-flow.html#contact-flow-types) in the *Amazon Connect Administrator Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AGENT_HOLD | AGENT_TRANSFER | AGENT_WHISPER | CONTACT_FLOW | CUSTOMER_HOLD | CUSTOMER_QUEUE | CUSTOMER_WHISPER | OUTBOUND_WHISPER | QUEUE_TRANSFER` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -33147,24 +40587,36 @@ "additionalProperties": false, "properties": { "Content": { + "markdownDescription": "The content of the contact flow module\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Content", "type": "string" }, "Description": { + "markdownDescription": "The description of the contact flow module\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `500` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "InstanceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon Connect instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceArn", "type": "string" }, "Name": { + "markdownDescription": "The name of the contact flow module\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `127` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "State": { + "markdownDescription": "The state of the contact flow module\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ACTIVE | ARCHIVED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -33235,24 +40687,36 @@ "items": { "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationConfig" }, + "markdownDescription": "Configuration information for the hours of operation\\. \n*Required*: Yes \n*Type*: List of [HoursOfOperationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationconfig.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Config", "type": "array" }, "Description": { + "markdownDescription": "The description for the hours of operation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `250` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "InstanceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceArn", "type": "string" }, "Name": { + "markdownDescription": "The name for the hours of operation\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `127` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TimeZone": { + "markdownDescription": "The time zone for the hours of operation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeZone", "type": "string" } }, @@ -33289,13 +40753,19 @@ "additionalProperties": false, "properties": { "Day": { + "markdownDescription": "The day that the hours of operation applies to\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `FRIDAY | MONDAY | SATURDAY | SUNDAY | THURSDAY | TUESDAY | WEDNESDAY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Day", "type": "string" }, "EndTime": { - "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice" + "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice", + "markdownDescription": "The end time that your contact center closes\\. \n*Required*: Yes \n*Type*: [HoursOfOperationTimeSlice](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationtimeslice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndTime" }, "StartTime": { - "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice" + "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice", + "markdownDescription": "The start time that your contact center opens\\. \n*Required*: Yes \n*Type*: [HoursOfOperationTimeSlice](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationtimeslice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartTime" } }, "required": [ @@ -33309,9 +40779,13 @@ "additionalProperties": false, "properties": { "Hours": { + "markdownDescription": "The hours\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `23` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Hours", "type": "number" }, "Minutes": { + "markdownDescription": "The minutes\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `59` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Minutes", "type": "number" } }, @@ -33590,6 +41064,79 @@ ], "type": "object" }, + "AWS::Connect::IntegrationAssociation": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "InstanceId": { + "type": "string" + }, + "IntegrationArn": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + } + }, + "required": [ + "InstanceId", + "IntegrationArn", + "IntegrationType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::IntegrationAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Connect::PhoneNumber": { "additionalProperties": false, "properties": { @@ -33711,21 +41258,31 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the quick connect\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `250` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "InstanceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceArn", "type": "string" }, "Name": { + "markdownDescription": "The name of the quick connect\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `127` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "QuickConnectConfig": { - "$ref": "#/definitions/AWS::Connect::QuickConnect.QuickConnectConfig" + "$ref": "#/definitions/AWS::Connect::QuickConnect.QuickConnectConfig", + "markdownDescription": "Contains information about the quick connect\\. \n*Required*: Yes \n*Type*: [QuickConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-quickconnectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QuickConnectConfig" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -33761,6 +41318,8 @@ "additionalProperties": false, "properties": { "PhoneNumber": { + "markdownDescription": "The phone number in E\\.164 format\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PhoneNumber", "type": "string" } }, @@ -33773,9 +41332,13 @@ "additionalProperties": false, "properties": { "ContactFlowArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the contact flow\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContactFlowArn", "type": "string" }, "QueueArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the queue\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueueArn", "type": "string" } }, @@ -33789,16 +41352,24 @@ "additionalProperties": false, "properties": { "PhoneConfig": { - "$ref": "#/definitions/AWS::Connect::QuickConnect.PhoneNumberQuickConnectConfig" + "$ref": "#/definitions/AWS::Connect::QuickConnect.PhoneNumberQuickConnectConfig", + "markdownDescription": "The phone configuration\\. This is required only if QuickConnectType is PHONE\\_NUMBER\\. \n*Required*: No \n*Type*: [PhoneNumberQuickConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-phonenumberquickconnectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PhoneConfig" }, "QueueConfig": { - "$ref": "#/definitions/AWS::Connect::QuickConnect.QueueQuickConnectConfig" + "$ref": "#/definitions/AWS::Connect::QuickConnect.QueueQuickConnectConfig", + "markdownDescription": "The queue configuration\\. This is required only if QuickConnectType is QUEUE\\. \n*Required*: No \n*Type*: [QueueQuickConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-queuequickconnectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueueConfig" }, "QuickConnectType": { + "markdownDescription": "The type of quick connect\\. In the Amazon Connect console, when you create a quick connect, you are prompted to assign one of the following types: Agent \\(USER\\), External \\(PHONE\\_NUMBER\\), or Queue \\(QUEUE\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `PHONE_NUMBER | QUEUE | USER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QuickConnectType", "type": "string" }, "UserConfig": { - "$ref": "#/definitions/AWS::Connect::QuickConnect.UserQuickConnectConfig" + "$ref": "#/definitions/AWS::Connect::QuickConnect.UserQuickConnectConfig", + "markdownDescription": "The user configuration\\. This is required only if QuickConnectType is USER\\. \n*Required*: No \n*Type*: [UserQuickConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-userquickconnectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserConfig" } }, "required": [ @@ -33810,9 +41381,13 @@ "additionalProperties": false, "properties": { "ContactFlowArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the contact flow\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContactFlowArn", "type": "string" }, "UserArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the user\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserArn", "type": "string" } }, @@ -34062,6 +41637,75 @@ ], "type": "object" }, + "AWS::Connect::SecurityKey": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "InstanceId": { + "type": "string" + }, + "Key": { + "type": "string" + } + }, + "required": [ + "InstanceId", + "Key" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::SecurityKey" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Connect::TaskTemplate": { "additionalProperties": false, "properties": { @@ -34312,39 +41956,59 @@ "additionalProperties": false, "properties": { "DirectoryUserId": { + "markdownDescription": "The identifier of the user account in the directory used for identity management\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DirectoryUserId", "type": "string" }, "HierarchyGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the user's hierarchy group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HierarchyGroupArn", "type": "string" }, "IdentityInfo": { - "$ref": "#/definitions/AWS::Connect::User.UserIdentityInfo" + "$ref": "#/definitions/AWS::Connect::User.UserIdentityInfo", + "markdownDescription": "Information about the user identity\\. \n*Required*: No \n*Type*: [UserIdentityInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-useridentityinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentityInfo" }, "InstanceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceArn", "type": "string" }, "Password": { + "markdownDescription": "The user's password\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", "type": "string" }, "PhoneConfig": { - "$ref": "#/definitions/AWS::Connect::User.UserPhoneConfig" + "$ref": "#/definitions/AWS::Connect::User.UserPhoneConfig", + "markdownDescription": "Information about the phone configuration for the user\\. \n*Required*: Yes \n*Type*: [UserPhoneConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-userphoneconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PhoneConfig" }, "RoutingProfileArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the user's routing profile\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoutingProfileArn", "type": "string" }, "SecurityProfileArns": { "items": { "type": "string" }, + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the user's security profile\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityProfileArns", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Username": { + "markdownDescription": "The user name assigned to the user account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", "type": "string" } }, @@ -34382,12 +42046,18 @@ "additionalProperties": false, "properties": { "Email": { + "markdownDescription": "The email address\\. If you are using SAML for identity management and include this parameter, an error is returned\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Email", "type": "string" }, "FirstName": { + "markdownDescription": "The first name\\. This is required if you are using Amazon Connect or SAML for identity management\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FirstName", "type": "string" }, "LastName": { + "markdownDescription": "The last name\\. This is required if you are using Amazon Connect or SAML for identity management\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastName", "type": "string" }, "Mobile": { @@ -34403,15 +42073,23 @@ "additionalProperties": false, "properties": { "AfterContactWorkTimeLimit": { + "markdownDescription": "The After Call Work \\(ACW\\) timeout setting, in seconds\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AfterContactWorkTimeLimit", "type": "number" }, "AutoAccept": { + "markdownDescription": "The Auto accept setting\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoAccept", "type": "boolean" }, "DeskPhoneNumber": { + "markdownDescription": "The phone number for the user's desk phone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeskPhoneNumber", "type": "string" }, "PhoneType": { + "markdownDescription": "The phone type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DESK_PHONE | SOFT_PHONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PhoneType", "type": "string" } }, @@ -34456,12 +42134,18 @@ "additionalProperties": false, "properties": { "InstanceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the user hierarchy group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceArn", "type": "string" }, "Name": { + "markdownDescription": "The name of the user hierarchy group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "ParentGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the parent group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ParentGroupArn", "type": "string" } }, @@ -34575,6 +42259,18 @@ ], "type": "object" }, + "AWS::ConnectCampaigns::Campaign.AnswerMachineDetectionConfig": { + "additionalProperties": false, + "properties": { + "EnableAnswerMachineDetection": { + "type": "boolean" + } + }, + "required": [ + "EnableAnswerMachineDetection" + ], + "type": "object" + }, "AWS::ConnectCampaigns::Campaign.DialerConfig": { "additionalProperties": false, "properties": { @@ -34590,6 +42286,9 @@ "AWS::ConnectCampaigns::Campaign.OutboundCallConfig": { "additionalProperties": false, "properties": { + "AnswerMachineDetectionConfig": { + "$ref": "#/definitions/AWS::ConnectCampaigns::Campaign.AnswerMachineDetectionConfig" + }, "ConnectContactFlowArn": { "type": "string" }, @@ -34735,21 +42434,31 @@ "additionalProperties": false, "properties": { "DeadLetterQueueUrl": { + "markdownDescription": "The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications\\. You must set up a policy on the DeadLetterQueue for the SendMessage operation to enable Amazon Connect Customer Profiles to send messages to the DeadLetterQueue\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeadLetterQueueUrl", "type": "string" }, "DefaultEncryptionKey": { + "markdownDescription": "The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is specified\\. It is used to encrypt all data before it is placed in permanent or semi\\-permanent storage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultEncryptionKey", "type": "string" }, "DefaultExpirationDays": { + "markdownDescription": "The default number of days until the data within the domain expires\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultExpirationDays", "type": "number" }, "DomainName": { + "markdownDescription": "The unique name of the domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -34815,27 +42524,39 @@ "additionalProperties": false, "properties": { "DomainName": { + "markdownDescription": "The unique name of the domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", "type": "string" }, "FlowDefinition": { - "$ref": "#/definitions/AWS::CustomerProfiles::Integration.FlowDefinition" + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.FlowDefinition", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [FlowDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-flowdefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FlowDefinition" }, "ObjectTypeName": { + "markdownDescription": "The name of the profile object type mapping to use\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectTypeName", "type": "string" }, "ObjectTypeNames": { "items": { "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ObjectTypeMapping" }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of [ObjectTypeMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-objecttypemapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectTypeNames", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Uri": { + "markdownDescription": "The URI of the S3 bucket or any other type of data source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Uri", "type": "string" } }, @@ -34869,18 +42590,28 @@ "additionalProperties": false, "properties": { "Marketo": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Marketo", "type": "string" }, "S3": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3", "type": "string" }, "Salesforce": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Salesforce", "type": "string" }, "ServiceNow": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceNow", "type": "string" }, "Zendesk": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Zendesk", "type": "string" } }, @@ -34890,25 +42621,37 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "FlowName": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FlowName", "type": "string" }, "KmsArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsArn", "type": "string" }, "SourceFlowConfig": { - "$ref": "#/definitions/AWS::CustomerProfiles::Integration.SourceFlowConfig" + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.SourceFlowConfig", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: [SourceFlowConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-sourceflowconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceFlowConfig" }, "Tasks": { "items": { "$ref": "#/definitions/AWS::CustomerProfiles::Integration.Task" }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: List of [Task](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-task.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tasks", "type": "array" }, "TriggerConfig": { - "$ref": "#/definitions/AWS::CustomerProfiles::Integration.TriggerConfig" + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.TriggerConfig", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: [TriggerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-triggerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TriggerConfig" } }, "required": [ @@ -34924,6 +42667,8 @@ "additionalProperties": false, "properties": { "DatetimeTypeFieldName": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatetimeTypeFieldName", "type": "string" } }, @@ -34933,6 +42678,8 @@ "additionalProperties": false, "properties": { "Object": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" } }, @@ -34945,9 +42692,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -34961,9 +42712,13 @@ "additionalProperties": false, "properties": { "BucketName": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", "type": "string" }, "BucketPrefix": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketPrefix", "type": "string" } }, @@ -34976,12 +42731,18 @@ "additionalProperties": false, "properties": { "EnableDynamicFieldUpdate": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableDynamicFieldUpdate", "type": "boolean" }, "IncludeDeletedRecords": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeDeletedRecords", "type": "boolean" }, "Object": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" } }, @@ -34994,24 +42755,38 @@ "additionalProperties": false, "properties": { "DataPullMode": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataPullMode", "type": "string" }, "FirstExecutionFrom": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FirstExecutionFrom", "type": "number" }, "ScheduleEndTime": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleEndTime", "type": "number" }, "ScheduleExpression": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleExpression", "type": "string" }, "ScheduleOffset": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleOffset", "type": "number" }, "ScheduleStartTime": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleStartTime", "type": "number" }, "Timezone": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timezone", "type": "string" } }, @@ -35024,6 +42799,8 @@ "additionalProperties": false, "properties": { "Object": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" } }, @@ -35036,19 +42813,29 @@ "additionalProperties": false, "properties": { "Marketo": { - "$ref": "#/definitions/AWS::CustomerProfiles::Integration.MarketoSourceProperties" + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.MarketoSourceProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [MarketoSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-marketosourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Marketo" }, "S3": { - "$ref": "#/definitions/AWS::CustomerProfiles::Integration.S3SourceProperties" + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.S3SourceProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [S3SourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-s3sourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3" }, "Salesforce": { - "$ref": "#/definitions/AWS::CustomerProfiles::Integration.SalesforceSourceProperties" + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.SalesforceSourceProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [SalesforceSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-salesforcesourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Salesforce" }, "ServiceNow": { - "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ServiceNowSourceProperties" + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ServiceNowSourceProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ServiceNowSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-servicenowsourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceNow" }, "Zendesk": { - "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ZendeskSourceProperties" + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ZendeskSourceProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ZendeskSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-zendesksourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Zendesk" } }, "type": "object" @@ -35057,16 +42844,24 @@ "additionalProperties": false, "properties": { "ConnectorProfileName": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorProfileName", "type": "string" }, "ConnectorType": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorType", "type": "string" }, "IncrementalPullConfig": { - "$ref": "#/definitions/AWS::CustomerProfiles::Integration.IncrementalPullConfig" + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.IncrementalPullConfig", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [IncrementalPullConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-incrementalpullconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncrementalPullConfig" }, "SourceConnectorProperties": { - "$ref": "#/definitions/AWS::CustomerProfiles::Integration.SourceConnectorProperties" + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.SourceConnectorProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: [SourceConnectorProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-sourceconnectorproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceConnectorProperties" } }, "required": [ @@ -35079,24 +42874,34 @@ "additionalProperties": false, "properties": { "ConnectorOperator": { - "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ConnectorOperator" + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ConnectorOperator", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ConnectorOperator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-connectoroperator.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorOperator" }, "DestinationField": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationField", "type": "string" }, "SourceFields": { "items": { "type": "string" }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceFields", "type": "array" }, "TaskProperties": { "items": { "$ref": "#/definitions/AWS::CustomerProfiles::Integration.TaskPropertiesMap" }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of [TaskPropertiesMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-taskpropertiesmap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskProperties", "type": "array" }, "TaskType": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskType", "type": "string" } }, @@ -35110,9 +42915,13 @@ "additionalProperties": false, "properties": { "OperatorPropertyKey": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OperatorPropertyKey", "type": "string" }, "Property": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Property", "type": "string" } }, @@ -35126,9 +42935,13 @@ "additionalProperties": false, "properties": { "TriggerProperties": { - "$ref": "#/definitions/AWS::CustomerProfiles::Integration.TriggerProperties" + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.TriggerProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [TriggerProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-triggerproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TriggerProperties" }, "TriggerType": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TriggerType", "type": "string" } }, @@ -35141,7 +42954,9 @@ "additionalProperties": false, "properties": { "Scheduled": { - "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ScheduledTriggerProperties" + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ScheduledTriggerProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ScheduledTriggerProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-scheduledtriggerproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scheduled" } }, "type": "object" @@ -35150,6 +42965,8 @@ "additionalProperties": false, "properties": { "Object": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", "type": "string" } }, @@ -35194,42 +43011,62 @@ "additionalProperties": false, "properties": { "AllowProfileCreation": { + "markdownDescription": "Indicates whether a profile should be created when data is received if one doesn\u2019t exist for an object of this type\\. The default is `FALSE`\\. If the AllowProfileCreation flag is set to `FALSE`, then the service tries to fetch a standard profile and associate this object with the profile\\. If it is set to `TRUE`, and if no match is found, then the service creates a new standard profile\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowProfileCreation", "type": "boolean" }, "Description": { + "markdownDescription": "The description of the profile object type mapping\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DomainName": { + "markdownDescription": "The unique name of the domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", "type": "string" }, "EncryptionKey": { + "markdownDescription": "The customer\\-provided key to encrypt the profile object that will be created in this profile object type mapping\\. If not specified the system will use the encryption key of the domain\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionKey", "type": "string" }, "ExpirationDays": { + "markdownDescription": "The number of days until the data of this type expires\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExpirationDays", "type": "number" }, "Fields": { "items": { "$ref": "#/definitions/AWS::CustomerProfiles::ObjectType.FieldMap" }, + "markdownDescription": "A list of field definitions for the object type mapping\\. \n*Required*: No \n*Type*: List of [FieldMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-fieldmap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Fields", "type": "array" }, "Keys": { "items": { "$ref": "#/definitions/AWS::CustomerProfiles::ObjectType.KeyMap" }, + "markdownDescription": "A list of keys that can be used to map data to the profile or search for the profile\\. \n*Required*: No \n*Type*: List of [KeyMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-keymap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Keys", "type": "array" }, "ObjectTypeName": { + "markdownDescription": "The name of the profile object type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ObjectTypeName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TemplateId": { + "markdownDescription": "A unique identifier for the template mapping\\. This can be used instead of specifying the Keys and Fields properties directly\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateId", "type": "string" } }, @@ -35263,10 +43100,14 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "Name of the field\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "ObjectTypeField": { - "$ref": "#/definitions/AWS::CustomerProfiles::ObjectType.ObjectTypeField" + "$ref": "#/definitions/AWS::CustomerProfiles::ObjectType.ObjectTypeField", + "markdownDescription": "Represents a field in a ProfileObjectType\\. \n*Required*: No \n*Type*: [ObjectTypeField](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-objecttypefield.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectTypeField" } }, "type": "object" @@ -35275,12 +43116,16 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "Name of the key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "ObjectTypeKeyList": { "items": { "$ref": "#/definitions/AWS::CustomerProfiles::ObjectType.ObjectTypeKey" }, + "markdownDescription": "A list of ObjectTypeKey\\. \n*Required*: No \n*Type*: List of [ObjectTypeKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-objecttypekey.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectTypeKeyList", "type": "array" } }, @@ -35290,12 +43135,18 @@ "additionalProperties": false, "properties": { "ContentType": { + "markdownDescription": "The content type of the field\\. Used for determining equality when searching\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentType", "type": "string" }, "Source": { + "markdownDescription": "A field of a ProfileObject\\. For example: \\_source\\.FirstName, where \u201c\\_source\u201d is a ProfileObjectType of a Zendesk user and \u201cFirstName\u201d is a field in that ObjectType\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source", "type": "string" }, "Target": { + "markdownDescription": "The location of the data in the standard ProfileObject model\\. For example: \\_profile\\.Address\\.PostalCode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target", "type": "string" } }, @@ -35308,12 +43159,16 @@ "items": { "type": "string" }, + "markdownDescription": "The reference for the key name of the fields map\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldNames", "type": "array" }, "StandardIdentifiers": { "items": { "type": "string" }, + "markdownDescription": "The types of keys that a ProfileObject can have\\. Each ProfileObject can have only 1 UNIQUE key but multiple PROFILE keys\\. PROFILE means that this key can be used to tie an object to a PROFILE\\. UNIQUE means that it can be used to uniquely identify an object\\. If a key a is marked as SECONDARY, it will be used to search for profiles after all other PROFILE keys have been searched\\. A LOOKUP\\_ONLY key is only used to match a profile but is not persisted to be used for searching of the profile\\. A NEW\\_ONLY key is only used if the profile does not already exist before the object is ingested, otherwise it is only used for matching objects to profiles\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StandardIdentifiers", "type": "array" } }, @@ -35358,48 +43213,76 @@ "items": { "type": "string" }, + "markdownDescription": "The Availability Zones \\(AZs\\) in which the cluster nodes will reside after the cluster has been created or updated\\. If provided, the length of this list must equal the `ReplicationFactor` parameter\\. If you omit this parameter, DAX will spread the nodes across Availability Zones for the highest availability\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZones", "type": "array" }, "ClusterEndpointEncryptionType": { + "markdownDescription": "The encryption type of the cluster's endpoint\\. Available values are: \n+ `NONE` \\- The cluster's endpoint will be unencrypted\\.\n+ `TLS` \\- The cluster's endpoint will be encrypted with Transport Layer Security, and will provide an x509 certificate for authentication\\.\nThe default value is `NONE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | TLS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterEndpointEncryptionType", "type": "string" }, "ClusterName": { + "markdownDescription": "The name of the DAX cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "ClusterName", "type": "string" }, "Description": { + "markdownDescription": "The description of the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "IAMRoleARN": { + "markdownDescription": "A valid Amazon Resource Name \\(ARN\\) that identifies an IAM role\\. At runtime, DAX will assume this role and use the role's permissions to access DynamoDB on your behalf\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "IAMRoleARN", "type": "string" }, "NodeType": { + "markdownDescription": "The node type for the nodes in the cluster\\. \\(All nodes in a DAX cluster are of the same type\\.\\) \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NodeType", "type": "string" }, "NotificationTopicARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to which notifications will be sent\\. \nThe Amazon SNS topic owner must be same as the DAX cluster owner\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationTopicARN", "type": "string" }, "ParameterGroupName": { + "markdownDescription": "The parameter group to be associated with the DAX cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterGroupName", "type": "string" }, "PreferredMaintenanceWindow": { + "markdownDescription": "A range of time when maintenance of DAX cluster software will be performed\\. For example: `sun:01:00-sun:09:00`\\. Cluster maintenance normally takes less than 30 minutes, and is performed automatically within the maintenance window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", "type": "string" }, "ReplicationFactor": { + "markdownDescription": "The number of nodes in the DAX cluster\\. A replication factor of 1 will create a single\\-node cluster, without any read replicas\\. For additional fault tolerance, you can create a multiple node cluster with one or more read replicas\\. To do this, set `ReplicationFactor` to a number between 3 \\(one primary and two read replicas\\) and 10 \\(one primary and nine read replicas\\)\\. `If the AvailabilityZones` parameter is provided, its length must equal the `ReplicationFactor`\\. \n AWS recommends that you have at least two read replicas per cluster\\.\n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationFactor", "type": "number" }, "SSESpecification": { - "$ref": "#/definitions/AWS::DAX::Cluster.SSESpecification" + "$ref": "#/definitions/AWS::DAX::Cluster.SSESpecification", + "markdownDescription": "Represents the settings used to enable server\\-side encryption on the cluster\\. \n*Required*: No \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dax-cluster-ssespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SSESpecification" }, "SecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "A list of security group IDs to be assigned to each node in the DAX cluster\\. \\(Each of the security group ID is system\\-generated\\.\\) \nIf this parameter is not specified, DAX assigns the default VPC security group to each node\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "SubnetGroupName": { + "markdownDescription": "The name of the subnet group to be used for the replication group\\. \nDAX clusters can only run in an Amazon VPC environment\\. All of the subnets that you specify in a subnet group must exist in the same VPC\\.\n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "SubnetGroupName", "type": "string" }, "Tags": { + "markdownDescription": "A set of tags to associate with the DAX cluster\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" } }, @@ -35435,6 +43318,8 @@ "additionalProperties": false, "properties": { "SSEEnabled": { + "markdownDescription": "Indicates whether server\\-side encryption is enabled \\(true\\) or disabled \\(false\\) on the cluster\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SSEEnabled", "type": "boolean" } }, @@ -35476,12 +43361,18 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the parameter group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "ParameterGroupName": { + "markdownDescription": "The name of the parameter group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ParameterGroupName", "type": "string" }, "ParameterNameValues": { + "markdownDescription": "An array of name\\-value pairs for the parameters in the group\\. Each element in the array represents a single parameter\\. \n `record-ttl-millis` and `query-ttl-millis` are the only supported parameter names\\. For more details, see [Configuring TTL Settings](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.cluster-management.html#DAX.cluster-management.custom-settings.ttl)\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterNameValues", "type": "object" } }, @@ -35543,15 +43434,21 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the subnet group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "SubnetGroupName": { + "markdownDescription": "The name of the subnet group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetGroupName", "type": "string" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "A list of VPC subnet IDs for the subnet group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" } }, @@ -35617,21 +43514,31 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the lifecycle policy\\. The characters ^\\[0\\-9A\\-Za\\-z \\_\\-\\]\\+$ are supported\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `500` \n*Pattern*: `[0-9A-Za-z _-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "ExecutionRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role used to run the operations specified by the lifecycle policy\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2048` \n*Pattern*: `arn:aws(-[a-z]{1,3}){0,2}:iam::\\d+:role/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionRoleArn", "type": "string" }, "PolicyDetails": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.PolicyDetails" + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.PolicyDetails", + "markdownDescription": "The configuration details of the lifecycle policy\\. \n*Required*: Conditional \n*Type*: [PolicyDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDetails" }, "State": { + "markdownDescription": "The activation state of the lifecycle policy\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED | ERROR` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to apply to the lifecycle policy during creation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -35664,9 +43571,13 @@ "items": { "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyAction" }, + "markdownDescription": "The rule for copying shared snapshots across Regions\\. \n*Required*: Yes \n*Type*: List of [CrossRegionCopyAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyaction.html) \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CrossRegionCopy", "type": "array" }, "Name": { + "markdownDescription": "A descriptive name for the action\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `120` \n*Pattern*: `[0-9A-Za-z _-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -35704,21 +43615,31 @@ "additionalProperties": false, "properties": { "CronExpression": { + "markdownDescription": "The schedule, as a Cron expression\\. The schedule interval must be between 1 hour and 1 year\\. For more information, see [Cron expressions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions) in the *Amazon CloudWatch User Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `17` \n*Maximum*: `106` \n*Pattern*: `cron\\([^\\n]{11,100}\\)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CronExpression", "type": "string" }, "Interval": { + "markdownDescription": "The interval between snapshots\\. The supported values are 1, 2, 3, 4, 6, 8, 12, and 24\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Interval", "type": "number" }, "IntervalUnit": { + "markdownDescription": "The interval unit\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `HOURS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalUnit", "type": "string" }, "Location": { + "markdownDescription": "Specifies the destination for snapshots created by the policy\\. To create snapshots in the same Region as the source resource, specify `CLOUD`\\. To create snapshots on the same Outpost as the source resource, specify `OUTPOST_LOCAL`\\. If you omit this parameter, `CLOUD` is used by default\\. \nIf the policy targets resources in an AWS Region, then you must create snapshots in the same Region as the source resource\\. \nIf the policy targets resources on an Outpost, then you can create snapshots on the same Outpost as the source resource, or in the Region of that Outpost\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CLOUD | OUTPOST_LOCAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", "type": "string" }, "Times": { "items": { "type": "string" }, + "markdownDescription": "The time, in UTC, to start the operation\\. The supported format is hh:mm\\. \nThe operation occurs within a one\\-hour window following the specified time\\. If you do not specify a time, Amazon DLM selects a time within the next 24 hours\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Times", "type": "array" } }, @@ -35728,12 +43649,18 @@ "additionalProperties": false, "properties": { "EncryptionConfiguration": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EncryptionConfiguration" + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EncryptionConfiguration", + "markdownDescription": "The encryption settings for the copied snapshot\\. \n*Required*: Yes \n*Type*: [EncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-encryptionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionConfiguration" }, "RetainRule": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule" + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule", + "markdownDescription": "Specifies the retention rule for cross\\-Region snapshot copies\\. \n*Required*: No \n*Type*: [CrossRegionCopyRetainRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyretainrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetainRule" }, "Target": { + "markdownDescription": "The target Region\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2048` \n*Pattern*: `^[\\w:\\-\\/\\*]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target", "type": "string" } }, @@ -35747,9 +43674,13 @@ "additionalProperties": false, "properties": { "Interval": { + "markdownDescription": "The period after which to deprecate the cross\\-Region AMI copies\\. The period must be less than or equal to the cross\\-Region AMI copy retention period, and it can't be greater than 10 years\\. This is equivalent to 120 months, 520 weeks, or 3650 days\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Interval", "type": "number" }, "IntervalUnit": { + "markdownDescription": "The unit of time in which to measure the **Interval**\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DAYS | MONTHS | WEEKS | YEARS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalUnit", "type": "string" } }, @@ -35763,9 +43694,13 @@ "additionalProperties": false, "properties": { "Interval": { + "markdownDescription": "The amount of time to retain each snapshot\\. The maximum is 100 years\\. This is equivalent to 1200 months, 5200 weeks, or 36500 days\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Interval", "type": "number" }, "IntervalUnit": { + "markdownDescription": "The unit of time for time\\-based retention\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DAYS | MONTHS | WEEKS | YEARS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalUnit", "type": "string" } }, @@ -35779,24 +43714,38 @@ "additionalProperties": false, "properties": { "CmkArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS KMS key to use for EBS encryption\\. If this parameter is not specified, the default KMS key for the account is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2048` \n*Pattern*: `arn:aws(-[a-z]{1,3}){0,2}:kms:([a-z]+-){2,3}\\d:\\d+:key/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CmkArn", "type": "string" }, "CopyTags": { + "markdownDescription": "Indicates whether to copy all user\\-defined tags from the source snapshot to the cross\\-Region snapshot copy\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CopyTags", "type": "boolean" }, "DeprecateRule": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyDeprecateRule" + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyDeprecateRule", + "markdownDescription": "The AMI deprecation rule for cross\\-Region AMI copies created by the rule\\. \n*Required*: No \n*Type*: [CrossRegionCopyDeprecateRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopydeprecaterule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeprecateRule" }, "Encrypted": { + "markdownDescription": "To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter\\. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encrypted", "type": "boolean" }, "RetainRule": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule" + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule", + "markdownDescription": "The retention rule that indicates how long snapshot copies are to be retained in the destination Region\\. \n*Required*: No \n*Type*: [CrossRegionCopyRetainRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyretainrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetainRule" }, "Target": { + "markdownDescription": "The target Region or the Amazon Resource Name \\(ARN\\) of the target Outpost for the snapshot copies\\. \nUse this parameter instead of **TargetRegion**\\. Do not specify both\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2048` \n*Pattern*: `^[\\w:\\-\\/\\*]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target", "type": "string" }, "TargetRegion": { + "markdownDescription": "Avoid using this parameter when creating new policies\\. Instead, use **Target** to specify a target Region or a target Outpost for snapshot copies\\. \nFor policies created before the **Target** parameter was introduced, this parameter indicates the target Region for snapshot copies\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `16` \n*Pattern*: `([a-z]+-){2,3}\\d` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetRegion", "type": "string" } }, @@ -35809,12 +43758,18 @@ "additionalProperties": false, "properties": { "Count": { + "markdownDescription": "If the schedule has a count\\-based retention rule, this parameter specifies the number of oldest AMIs to deprecate\\. The count must be less than or equal to the schedule's retention count, and it can't be greater than 1000\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count", "type": "number" }, "Interval": { + "markdownDescription": "If the schedule has an age\\-based retention rule, this parameter specifies the period after which to deprecate AMIs created by the schedule\\. The period must be less than or equal to the schedule's retention period, and it can't be greater than 10 years\\. This is equivalent to 120 months, 520 weeks, or 3650 days\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Interval", "type": "number" }, "IntervalUnit": { + "markdownDescription": "The unit of time in which to measure the **Interval**\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DAYS | MONTHS | WEEKS | YEARS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalUnit", "type": "string" } }, @@ -35824,9 +43779,13 @@ "additionalProperties": false, "properties": { "CmkArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS KMS key to use for EBS encryption\\. If this parameter is not specified, the default KMS key for the account is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2048` \n*Pattern*: `arn:aws(-[a-z]{1,3}){0,2}:kms:([a-z]+-){2,3}\\d:\\d+:key/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CmkArn", "type": "string" }, "Encrypted": { + "markdownDescription": "To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter\\. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encrypted", "type": "boolean" } }, @@ -35839,15 +43798,21 @@ "additionalProperties": false, "properties": { "DescriptionRegex": { + "markdownDescription": "The snapshot description that can trigger the policy\\. The description pattern is specified using a regular expression\\. The policy runs only if a snapshot with a description that matches the specified pattern is shared with your account\\. \nFor example, specifying `^.*Created for policy: policy-1234567890abcdef0.*$` configures the policy to run only if snapshots created by policy `policy-1234567890abcdef0` are shared with your account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Pattern*: `[\\p{all}]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DescriptionRegex", "type": "string" }, "EventType": { + "markdownDescription": "The type of event\\. Currently, only snapshot sharing events are supported\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `shareSnapshot` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventType", "type": "string" }, "SnapshotOwner": { "items": { "type": "string" }, + "markdownDescription": "The IDs of the AWS accounts that can trigger policy by sharing snapshots with your account\\. The policy only runs if one of the specified AWS accounts shares a snapshot with your account\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotOwner", "type": "array" } }, @@ -35861,9 +43826,13 @@ "additionalProperties": false, "properties": { "Parameters": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EventParameters" + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EventParameters", + "markdownDescription": "Information about the event\\. \n*Required*: No \n*Type*: [EventParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-eventparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters" }, "Type": { + "markdownDescription": "The source of the event\\. Currently only managed CloudWatch Events rules are supported\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `MANAGED_CWE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -35879,15 +43848,23 @@ "items": { "type": "string" }, + "markdownDescription": "The Availability Zones in which to enable fast snapshot restore\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZones", "type": "array" }, "Count": { + "markdownDescription": "The number of snapshots to be enabled with fast snapshot restore\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count", "type": "number" }, "Interval": { + "markdownDescription": "The amount of time to enable fast snapshot restore\\. The maximum is 100 years\\. This is equivalent to 1200 months, 5200 weeks, or 36500 days\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Interval", "type": "number" }, "IntervalUnit": { + "markdownDescription": "The unit of time for enabling fast snapshot restore\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DAYS | MONTHS | WEEKS | YEARS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalUnit", "type": "string" } }, @@ -35897,6 +43874,8 @@ "additionalProperties": false, "properties": { "ExcludeBootVolume": { + "markdownDescription": "\\[EBS Snapshot Management \u2013 Instance policies only\\] Indicates whether to exclude the root volume from snapshots created using [CreateSnapshots](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSnapshots.html)\\. The default is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludeBootVolume", "type": "boolean" }, "ExcludeDataVolumeTags": { @@ -35906,6 +43885,8 @@ "type": "array" }, "NoReboot": { + "markdownDescription": "Applies to AMI lifecycle policies only\\. Indicates whether targeted instances are rebooted when the lifecycle policy runs\\. `true` indicates that targeted instances are not rebooted when the policy runs\\. `false` indicates that target instances are rebooted when the policy runs\\. The default is `true` \\(instances are not rebooted\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoReboot", "type": "boolean" } }, @@ -35918,39 +43899,55 @@ "items": { "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Action" }, + "markdownDescription": "The actions to be performed when the event\\-based policy is triggered\\. You can specify only one action per policy\\. \nThis parameter is required for event\\-based policies only\\. If you are creating a snapshot or AMI policy, omit this parameter\\. \n*Required*: No \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-action.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", "type": "array" }, "EventSource": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EventSource" + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EventSource", + "markdownDescription": "The event that triggers the event\\-based policy\\. \nThis parameter is required for event\\-based policies only\\. If you are creating a snapshot or AMI policy, omit this parameter\\. \n*Required*: No \n*Type*: [EventSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-eventsource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventSource" }, "Parameters": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Parameters" + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Parameters", + "markdownDescription": "A set of optional parameters for snapshot and AMI lifecycle policies\\. \nThis parameter is required for snapshot and AMI policies only\\. If you are creating an event\\-based policy, omit this parameter\\. \nIf you are modifying a policy that was created or previously modified using the Amazon Data Lifecycle Manager console, then you must include this parameter and specify either the default values or the new values that you require\\. You can't omit this parameter or set its values to null\\.\n*Required*: No \n*Type*: [Parameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-parameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters" }, "PolicyType": { + "markdownDescription": "The valid target resource types and actions a policy can manage\\. Specify `EBS_SNAPSHOT_MANAGEMENT` to create a lifecycle policy that manages the lifecycle of Amazon EBS snapshots\\. Specify `IMAGE_MANAGEMENT` to create a lifecycle policy that manages the lifecycle of EBS\\-backed AMIs\\. Specify `EVENT_BASED_POLICY ` to create an event\\-based policy that performs specific actions when a defined event occurs in your AWS account\\. \nThe default is `EBS_SNAPSHOT_MANAGEMENT`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `EBS_SNAPSHOT_MANAGEMENT | EVENT_BASED_POLICY | IMAGE_MANAGEMENT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyType", "type": "string" }, "ResourceLocations": { "items": { "type": "string" }, + "markdownDescription": "The location of the resources to backup\\. If the source resources are located in an AWS Region, specify `CLOUD`\\. If the source resources are located on an Outpost in your account, specify `OUTPOST`\\. \nIf you specify `OUTPOST`, Amazon Data Lifecycle Manager backs up all resources of the specified type with matching target tags across all of the Outposts in your account\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceLocations", "type": "array" }, "ResourceTypes": { "items": { "type": "string" }, + "markdownDescription": "The target resource type for snapshot and AMI lifecycle policies\\. Use `VOLUME `to create snapshots of individual volumes or use `INSTANCE` to create multi\\-volume snapshots from the volumes for an instance\\. \nThis parameter is required for snapshot and AMI policies only\\. If you are creating an event\\-based policy, omit this parameter\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceTypes", "type": "array" }, "Schedules": { "items": { "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Schedule" }, + "markdownDescription": "The schedules of policy\\-defined actions for snapshot and AMI lifecycle policies\\. A policy can have up to four schedules\u2014one mandatory schedule and up to three optional schedules\\. \nThis parameter is required for snapshot and AMI policies only\\. If you are creating an event\\-based policy, omit this parameter\\. \n*Required*: No \n*Type*: List of [Schedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html) \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedules", "type": "array" }, "TargetTags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The single tag that identifies targeted resources for this policy\\. \nThis parameter is required for snapshot and AMI policies only\\. If you are creating an event\\-based policy, omit this parameter\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetTags", "type": "array" } }, @@ -35960,12 +43957,18 @@ "additionalProperties": false, "properties": { "Count": { + "markdownDescription": "The number of snapshots to retain for each volume, up to a maximum of 1000\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count", "type": "number" }, "Interval": { + "markdownDescription": "The amount of time to retain each snapshot\\. The maximum is 100 years\\. This is equivalent to 1200 months, 5200 weeks, or 36500 days\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Interval", "type": "number" }, "IntervalUnit": { + "markdownDescription": "The unit of time for time\\-based retention\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DAYS | MONTHS | WEEKS | YEARS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalUnit", "type": "string" } }, @@ -35993,45 +43996,65 @@ "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.ArchiveRule" }, "CopyTags": { + "markdownDescription": "Copy all user\\-defined tags on a source volume to snapshots of the volume created by this policy\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CopyTags", "type": "boolean" }, "CreateRule": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CreateRule" + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CreateRule", + "markdownDescription": "The creation rule\\. \n*Required*: No \n*Type*: [CreateRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-createrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreateRule" }, "CrossRegionCopyRules": { "items": { "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyRule" }, + "markdownDescription": "The rule for cross\\-Region snapshot copies\\. \nYou can only specify cross\\-Region copy rules for policies that create snapshots in a Region\\. If the policy creates snapshots on an Outpost, then you cannot copy the snapshots to a Region or to an Outpost\\. If the policy creates snapshots in a Region, then snapshots can be copied to up to three Regions or Outposts\\. \n*Required*: No \n*Type*: List of [CrossRegionCopyRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyrule.html) \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CrossRegionCopyRules", "type": "array" }, "DeprecateRule": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.DeprecateRule" + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.DeprecateRule", + "markdownDescription": "The AMI deprecation rule for the schedule\\. \n*Required*: No \n*Type*: [DeprecateRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-deprecaterule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeprecateRule" }, "FastRestoreRule": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.FastRestoreRule" + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.FastRestoreRule", + "markdownDescription": "The rule for enabling fast snapshot restore\\. \n*Required*: No \n*Type*: [FastRestoreRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-fastrestorerule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FastRestoreRule" }, "Name": { + "markdownDescription": "The name of the schedule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `120` \n*Pattern*: `[0-9A-Za-z _-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "RetainRule": { - "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.RetainRule" + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.RetainRule", + "markdownDescription": "The retention rule\\. \n*Required*: No \n*Type*: [RetainRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-retainrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetainRule" }, "ShareRules": { "items": { "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.ShareRule" }, + "markdownDescription": "The rule for sharing snapshots with other AWS accounts\\. \n*Required*: No \n*Type*: List of [ShareRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-sharerule.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShareRules", "type": "array" }, "TagsToAdd": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to apply to policy\\-created resources\\. These user\\-defined tags are in addition to the AWS\\-added lifecycle tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `45` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagsToAdd", "type": "array" }, "VariableTags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A collection of key/value pairs with values determined dynamically when the policy is executed\\. Keys may be any valid Amazon EC2 tag key\\. Values must be in one of the two following formats: `$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/instance-id.html)` or `$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/timestamp.html)`\\. Variable tags are only valid for EBS Snapshot Management \u2013 Instance policies\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `45` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VariableTags", "type": "array" } }, @@ -36044,12 +44067,18 @@ "items": { "type": "string" }, + "markdownDescription": "The IDs of the AWS accounts with which to share the snapshots\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetAccounts", "type": "array" }, "UnshareInterval": { + "markdownDescription": "The period after which snapshots that are shared with other AWS accounts are automatically unshared\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnshareInterval", "type": "number" }, "UnshareIntervalUnit": { + "markdownDescription": "The unit of time for the automatic unsharing interval\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DAYS | MONTHS | WEEKS | YEARS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnshareIntervalUnit", "type": "string" } }, @@ -36091,12 +44120,18 @@ "additionalProperties": false, "properties": { "CertificateIdentifier": { + "markdownDescription": "A customer\\-assigned name for the certificate\\. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens\\. They can't end with a hyphen or contain two consecutive hyphens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateIdentifier", "type": "string" }, "CertificatePem": { + "markdownDescription": "The contents of a `.pem` file, which contains an X\\.509 certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificatePem", "type": "string" }, "CertificateWallet": { + "markdownDescription": "The location of an imported Oracle Wallet certificate for use with SSL\\. Example: `filebase64(\"${path.root}/rds-ca-2019-root.sso\")` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateWallet", "type": "string" } }, @@ -36158,99 +44193,161 @@ "additionalProperties": false, "properties": { "CertificateArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateArn", "type": "string" }, "DatabaseName": { + "markdownDescription": "The name of the endpoint database\\. For a MySQL source or target endpoint, do not specify DatabaseName\\. To migrate to a specific database, use this setting and `targetDbType`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", "type": "string" }, "DocDbSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.DocDbSettings" + "$ref": "#/definitions/AWS::DMS::Endpoint.DocDbSettings", + "markdownDescription": "Settings in JSON format for the source DocumentDB endpoint\\. For more information about the available settings, see the configuration properties section in [ Using DocumentDB as a Target for AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.DocumentDB.html) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [DocDbSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-docdbsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocDbSettings" }, "DynamoDbSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.DynamoDbSettings" + "$ref": "#/definitions/AWS::DMS::Endpoint.DynamoDbSettings", + "markdownDescription": "Settings in JSON format for the target Amazon DynamoDB endpoint\\. For information about other available settings, see [Using Object Mapping to Migrate Data to DynamoDB](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.DynamoDB.html#CHAP_Target.DynamoDB.ObjectMapping) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [DynamoDbSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-dynamodbsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DynamoDbSettings" }, "ElasticsearchSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.ElasticsearchSettings" + "$ref": "#/definitions/AWS::DMS::Endpoint.ElasticsearchSettings", + "markdownDescription": "Settings in JSON format for the target OpenSearch endpoint\\. For more information about the available settings, see [Extra Connection Attributes When Using OpenSearch as a Target for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Elasticsearch.html#CHAP_Target.Elasticsearch.Configuration) in the * AWS Database Migration Service User Guide*\\. \n*Required*: No \n*Type*: [ElasticsearchSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticsearchSettings" }, "EndpointIdentifier": { + "markdownDescription": "The database endpoint identifier\\. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens\\. They can't end with a hyphen, or contain two consecutive hyphens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointIdentifier", "type": "string" }, "EndpointType": { + "markdownDescription": "The type of endpoint\\. Valid values are `source` and `target`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `source | target` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointType", "type": "string" }, "EngineName": { + "markdownDescription": "The type of engine for the endpoint\\. Valid values, depending on the `EndpointType` value, include `\"mysql\"`, `\"oracle\"`, `\"postgres\"`, `\"mariadb\"`, `\"aurora\"`, `\"aurora-postgresql\"`, `\"opensearch\"`, `\"redshift\"`, `\"s3\"`, `\"db2\"`, `\"azuredb\"`, `\"sybase\"`, `\"dynamodb\"`, `\"mongodb\"`, `\"kinesis\"`, `\"kafka\"`, `\"elasticsearch\"`, `\"docdb\"`, `\"sqlserver\"`, and `\"neptune\"`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EngineName", "type": "string" }, "ExtraConnectionAttributes": { + "markdownDescription": "Additional attributes associated with the connection\\. Each attribute is specified as a name\\-value pair associated by an equal sign \\(=\\)\\. Multiple attributes are separated by a semicolon \\(;\\) with no additional white space\\. For information on the attributes available for connecting your source or target endpoint, see [Working with AWS DMS Endpoints](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.html) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExtraConnectionAttributes", "type": "string" }, "GcpMySQLSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.GcpMySQLSettings" + "$ref": "#/definitions/AWS::DMS::Endpoint.GcpMySQLSettings", + "markdownDescription": "Settings in JSON format for the source GCP MySQL endpoint\\. \n*Required*: No \n*Type*: [GcpMySQLSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GcpMySQLSettings" }, "IbmDb2Settings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.IbmDb2Settings" + "$ref": "#/definitions/AWS::DMS::Endpoint.IbmDb2Settings", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [IbmDb2Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-ibmdb2settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IbmDb2Settings" }, "KafkaSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.KafkaSettings" + "$ref": "#/definitions/AWS::DMS::Endpoint.KafkaSettings", + "markdownDescription": "Settings in JSON format for the target Apache Kafka endpoint\\. For more information about the available settings, see [Using object mapping to migrate data to a Kafka topic](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kafka.html#CHAP_Target.Kafka.ObjectMapping) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [KafkaSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KafkaSettings" }, "KinesisSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.KinesisSettings" + "$ref": "#/definitions/AWS::DMS::Endpoint.KinesisSettings", + "markdownDescription": "Settings in JSON format for the target endpoint for Amazon Kinesis Data Streams\\. For more information about the available settings, see [Using Amazon Kinesis Data Streams as a Target for AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kinesis.html) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [KinesisSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KinesisSettings" }, "KmsKeyId": { + "markdownDescription": "An AWS KMS key identifier that is used to encrypt the connection parameters for the endpoint\\. \nIf you don't specify a value for the `KmsKeyId` parameter, then AWS DMS uses your default encryption key\\. \n AWS KMS creates the default encryption key for your AWS account\\. Your AWS account has a different default encryption key for each AWS Region\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" }, "MicrosoftSqlServerSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.MicrosoftSqlServerSettings" + "$ref": "#/definitions/AWS::DMS::Endpoint.MicrosoftSqlServerSettings", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [MicrosoftSqlServerSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MicrosoftSqlServerSettings" }, "MongoDbSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.MongoDbSettings" + "$ref": "#/definitions/AWS::DMS::Endpoint.MongoDbSettings", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [MongoDbSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MongoDbSettings" }, "MySqlSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.MySqlSettings" + "$ref": "#/definitions/AWS::DMS::Endpoint.MySqlSettings", + "markdownDescription": "Settings in JSON format for the source and target MySQL endpoint\\. For information about other available settings, see [Extra connection attributes when using MySQL as a source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MySQL.html#CHAP_Source.MySQL.ConnectionAttrib) and [Extra connection attributes when using a MySQL\\-compatible database as a target for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html#CHAP_Target.MySQL.ConnectionAttrib) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [MySqlSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mysqlsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MySqlSettings" }, "NeptuneSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.NeptuneSettings" + "$ref": "#/definitions/AWS::DMS::Endpoint.NeptuneSettings", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [NeptuneSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-neptunesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NeptuneSettings" }, "OracleSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.OracleSettings" + "$ref": "#/definitions/AWS::DMS::Endpoint.OracleSettings", + "markdownDescription": "Settings in JSON format for the source and target Oracle endpoint\\. For information about other available settings, see [Extra connection attributes when using Oracle as a source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.ConnectionAttrib) and [ Extra connection attributes when using Oracle as a target for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html#CHAP_Target.Oracle.ConnectionAttrib) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [OracleSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OracleSettings" }, "Password": { + "markdownDescription": "The password to be used to log in to the endpoint database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", "type": "string" }, "Port": { + "markdownDescription": "The port used by the endpoint database\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" }, "PostgreSqlSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.PostgreSqlSettings" + "$ref": "#/definitions/AWS::DMS::Endpoint.PostgreSqlSettings", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [PostgreSqlSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PostgreSqlSettings" }, "RedisSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.RedisSettings" + "$ref": "#/definitions/AWS::DMS::Endpoint.RedisSettings", + "markdownDescription": "Settings in JSON format for the target Redis endpoint\\. \n*Required*: No \n*Type*: [RedisSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedisSettings" }, "RedshiftSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.RedshiftSettings" + "$ref": "#/definitions/AWS::DMS::Endpoint.RedshiftSettings", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [RedshiftSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedshiftSettings" }, "ResourceIdentifier": { + "markdownDescription": "A friendly name for the resource identifier at the end of the `EndpointArn` response parameter that is returned in the created `Endpoint` object\\. The value for this parameter can have up to 31 characters\\. It can contain only ASCII letters, digits, and hyphen \\('\\-'\\)\\. Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as `Example-App-ARN1`\\. For example, this value might result in the `EndpointArn` value `arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1`\\. If you don't specify a `ResourceIdentifier` value, AWS DMS generates a default identifier value for the end of `EndpointArn`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceIdentifier", "type": "string" }, "S3Settings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.S3Settings" + "$ref": "#/definitions/AWS::DMS::Endpoint.S3Settings", + "markdownDescription": "Settings in JSON format for the target Amazon S3 endpoint\\. For more information about the available settings, see [Extra Connection Attributes When Using Amazon S3 as a Target for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [S3Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Settings" }, "ServerName": { + "markdownDescription": "The name of the server where the endpoint database resides\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerName", "type": "string" }, "SslMode": { + "markdownDescription": "The Secure Sockets Layer \\(SSL\\) mode to use for the SSL connection\\. The default is `none`\\. \nWhen `engine_name` is set to S3, then the only allowed value is `none`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `none | require | verify-ca | verify-full` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SslMode", "type": "string" }, "SybaseSettings": { - "$ref": "#/definitions/AWS::DMS::Endpoint.SybaseSettings" + "$ref": "#/definitions/AWS::DMS::Endpoint.SybaseSettings", + "markdownDescription": "Settings in JSON format for the source and target SAP ASE endpoint\\. For information about other available settings, see [Extra connection attributes when using SAP ASE as a source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html#CHAP_Source.SAP.ConnectionAttrib) and [Extra connection attributes when using SAP ASE as a target for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SAP.html#CHAP_Target.SAP.ConnectionAttrib) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [SybaseSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-sybasesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SybaseSettings" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "One or more tags to be assigned to the endpoint\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" }, "Username": { + "markdownDescription": "The user name to be used to log in to the endpoint database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", "type": "string" } }, @@ -36294,9 +44391,13 @@ "type": "string" }, "SecretsManagerAccessRoleArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerAccessRoleArn", "type": "string" }, "SecretsManagerSecretId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerSecretId", "type": "string" } }, @@ -36306,6 +44407,8 @@ "additionalProperties": false, "properties": { "ServiceAccessRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) used by the service to access the IAM role\\. The role must allow the `iam:PassRole` action\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceAccessRoleArn", "type": "string" } }, @@ -36315,15 +44418,23 @@ "additionalProperties": false, "properties": { "EndpointUri": { + "markdownDescription": "The endpoint for the OpenSearch cluster\\. AWS DMS uses HTTPS if a transport protocol \\(http/https\\) is not specified\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointUri", "type": "string" }, "ErrorRetryDuration": { + "markdownDescription": "The maximum number of seconds for which DMS retries failed API requests to the OpenSearch cluster\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorRetryDuration", "type": "number" }, "FullLoadErrorPercentage": { + "markdownDescription": "The maximum percentage of records that can fail to be written before a full load operation stops\\. \nTo avoid early failure, this counter is only effective after 1000 records are transferred\\. OpenSearch also has the concept of error monitoring during the last 10 minutes of an Observation Window\\. If transfer of all records fail in the last 10 minutes, the full load operation stops\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FullLoadErrorPercentage", "type": "number" }, "ServiceAccessRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) used by the service to access the IAM role\\. The role must allow the `iam:PassRole` action\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceAccessRoleArn", "type": "string" } }, @@ -36333,42 +44444,68 @@ "additionalProperties": false, "properties": { "AfterConnectScript": { + "markdownDescription": "Specifies a script to run immediately after AWS DMS connects to the endpoint\\. The migration task continues running regardless if the SQL statement succeeds or fails\\. \nFor this parameter, provide the code of the script itself, not the name of a file containing the script\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AfterConnectScript", "type": "string" }, "CleanSourceMetadataOnMismatch": { + "markdownDescription": "Adjusts the behavior of AWS DMS when migrating from an SQL Server source database that is hosted as part of an Always On availability group cluster\\. If you need AWS DMS to poll all the nodes in the Always On cluster for transaction backups, set this attribute to `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CleanSourceMetadataOnMismatch", "type": "boolean" }, "DatabaseName": { + "markdownDescription": "Database name for the endpoint\\. For a MySQL source or target endpoint, don't explicitly specify the database using the `DatabaseName` request parameter on either the `CreateEndpoint` or `ModifyEndpoint` API call\\. Specifying `DatabaseName` when you create or modify a MySQL endpoint replicates all the task tables to this single database\\. For MySQL endpoints, you specify the database only when you specify the schema in the table\\-mapping rules of the AWS DMS task\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", "type": "string" }, "EventsPollInterval": { + "markdownDescription": "Specifies how often to check the binary log for new changes/events when the database is idle\\. The default is five seconds\\. \nExample: `eventsPollInterval=5;` \nIn the example, AWS DMS checks for changes in the binary logs every five seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventsPollInterval", "type": "number" }, "MaxFileSize": { + "markdownDescription": "Specifies the maximum size \\(in KB\\) of any \\.csv file used to transfer data to a MySQL\\-compatible database\\. \nExample: `maxFileSize=512` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxFileSize", "type": "number" }, "ParallelLoadThreads": { + "markdownDescription": "Improves performance when loading data into the MySQL\\-compatible target database\\. Specifies how many threads to use to load the data into the MySQL\\-compatible target database\\. Setting a large number of threads can have an adverse effect on database performance, because a separate connection is required for each thread\\. The default is one\\. \nExample: `parallelLoadThreads=1` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParallelLoadThreads", "type": "number" }, "Password": { + "markdownDescription": "Endpoint connection password\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", "type": "string" }, "Port": { + "markdownDescription": "*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" }, "SecretsManagerAccessRoleArn": { + "markdownDescription": "The full Amazon Resource Name \\(ARN\\) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in `SecretsManagerSecret.` The role must allow the `iam:PassRole` action\\. `SecretsManagerSecret` has the value of the AWS Secrets Manager secret that allows access to the MySQL endpoint\\. \nYou can specify one of two sets of values for these permissions\\. You can specify the values for this setting and `SecretsManagerSecretId`\\. Or you can specify clear\\-text values for `UserName`, `Password`, `ServerName`, and `Port`\\. You can't specify both\\. For more information on creating this `SecretsManagerSecret` and the `SecretsManagerAccessRoleArn` and `SecretsManagerSecretId` required to access it, see [Using secrets to access AWS Database Migration Service resources](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager) in the AWS Database Migration Service User Guide\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerAccessRoleArn", "type": "string" }, "SecretsManagerSecretId": { + "markdownDescription": "The full ARN, partial ARN, or friendly name of the `SecretsManagerSecret` that contains the MySQL endpoint connection details\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerSecretId", "type": "string" }, "ServerName": { + "markdownDescription": "Endpoint TCP port\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerName", "type": "string" }, "ServerTimezone": { + "markdownDescription": "Specifies the time zone for the source MySQL database\\. \nExample: `serverTimezone=US/Pacific;` \nNote: Do not enclose time zones in single quotes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerTimezone", "type": "string" }, "Username": { + "markdownDescription": "Endpoint connection user name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", "type": "string" } }, @@ -36384,9 +44521,13 @@ "type": "number" }, "SecretsManagerAccessRoleArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerAccessRoleArn", "type": "string" }, "SecretsManagerSecretId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerSecretId", "type": "string" }, "SetDataCaptureChanges": { @@ -36399,21 +44540,31 @@ "additionalProperties": false, "properties": { "Broker": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Broker", "type": "string" }, "IncludeControlDetails": { + "markdownDescription": "Shows detailed control information for table definition, column definition, and table and column changes in the Kafka message output\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeControlDetails", "type": "boolean" }, "IncludeNullAndEmpty": { + "markdownDescription": "Include NULL and empty columns for records migrated to the endpoint\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeNullAndEmpty", "type": "boolean" }, "IncludePartitionValue": { "type": "boolean" }, "IncludeTableAlterOperations": { + "markdownDescription": "Includes any data definition language \\(DDL\\) operations that change the table in the control data, such as `rename-table`, `drop-table`, `add-column`, `drop-column`, and `rename-column`\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeTableAlterOperations", "type": "boolean" }, "IncludeTransactionDetails": { + "markdownDescription": "Provides detailed transaction information from the source database\\. This information includes a commit timestamp, a log position, and values for `transaction_id`, previous `transaction_id`, and `transaction_record_id` \\(the record offset within a transaction\\)\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeTransactionDetails", "type": "boolean" }, "MessageFormat": { @@ -36423,33 +44574,53 @@ "type": "number" }, "NoHexPrefix": { + "markdownDescription": "Set this optional parameter to `true` to avoid adding a '0x' prefix to raw data in hexadecimal format\\. For example, by default, AWS DMS adds a '0x' prefix to the LOB column type in hexadecimal format moving from an Oracle source to a Kafka target\\. Use the `NoHexPrefix` endpoint setting to enable migration of RAW data type columns without adding the '0x' prefix\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoHexPrefix", "type": "boolean" }, "PartitionIncludeSchemaTable": { + "markdownDescription": "Prefixes schema and table names to partition values, when the partition type is `primary-key-type`\\. Doing this increases data distribution among Kafka partitions\\. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key\\. In this case, the same primary key is sent from thousands of tables to the same partition, which causes throttling\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PartitionIncludeSchemaTable", "type": "boolean" }, "SaslPassword": { + "markdownDescription": "The secure password you created when you first set up your MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL\\-SSL authentication\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SaslPassword", "type": "string" }, "SaslUserName": { + "markdownDescription": "The secure user name you created when you first set up your MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL\\-SSL authentication\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SaslUserName", "type": "string" }, "SecurityProtocol": { + "markdownDescription": "Set secure connection to a Kafka target endpoint using Transport Layer Security \\(TLS\\)\\. Options include `ssl-encryption`, `ssl-authentication`, and `sasl-ssl`\\. `sasl-ssl` requires `SaslUsername` and `SaslPassword`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `plaintext | sasl-ssl | ssl-authentication | ssl-encryption` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityProtocol", "type": "string" }, "SslCaCertificateArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the private certificate authority \\(CA\\) cert that AWS DMS uses to securely connect to your Kafka target endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SslCaCertificateArn", "type": "string" }, "SslClientCertificateArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the client certificate used to securely connect to a Kafka target endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SslClientCertificateArn", "type": "string" }, "SslClientKeyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the client private key used to securely connect to a Kafka target endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SslClientKeyArn", "type": "string" }, "SslClientKeyPassword": { + "markdownDescription": "The password for the client private key used to securely connect to a Kafka target endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SslClientKeyPassword", "type": "string" }, "Topic": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Topic", "type": "string" } }, @@ -36459,33 +44630,51 @@ "additionalProperties": false, "properties": { "IncludeControlDetails": { + "markdownDescription": "Shows detailed control information for table definition, column definition, and table and column changes in the Kinesis message output\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeControlDetails", "type": "boolean" }, "IncludeNullAndEmpty": { + "markdownDescription": "Include NULL and empty columns for records migrated to the endpoint\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeNullAndEmpty", "type": "boolean" }, "IncludePartitionValue": { "type": "boolean" }, "IncludeTableAlterOperations": { + "markdownDescription": "Includes any data definition language \\(DDL\\) operations that change the table in the control data, such as `rename-table`, `drop-table`, `add-column`, `drop-column`, and `rename-column`\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeTableAlterOperations", "type": "boolean" }, "IncludeTransactionDetails": { + "markdownDescription": "Provides detailed transaction information from the source database\\. This information includes a commit timestamp, a log position, and values for `transaction_id`, previous `transaction_id`, and `transaction_record_id` \\(the record offset within a transaction\\)\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeTransactionDetails", "type": "boolean" }, "MessageFormat": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `json | json-unformatted` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageFormat", "type": "string" }, "NoHexPrefix": { + "markdownDescription": "Set this optional parameter to `true` to avoid adding a '0x' prefix to raw data in hexadecimal format\\. For example, by default, AWS DMS adds a '0x' prefix to the LOB column type in hexadecimal format moving from an Oracle source to an Amazon Kinesis target\\. Use the `NoHexPrefix` endpoint setting to enable migration of RAW data type columns without adding the '0x' prefix\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoHexPrefix", "type": "boolean" }, "PartitionIncludeSchemaTable": { + "markdownDescription": "Prefixes schema and table names to partition values, when the partition type is `primary-key-type`\\. Doing this increases data distribution among Kinesis shards\\. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key\\. In this case, the same primary key is sent from thousands of tables to the same shard, which causes throttling\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PartitionIncludeSchemaTable", "type": "boolean" }, "ServiceAccessRoleArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceAccessRoleArn", "type": "string" }, "StreamArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamArn", "type": "string" } }, @@ -36510,9 +44699,13 @@ "type": "string" }, "SecretsManagerAccessRoleArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerAccessRoleArn", "type": "string" }, "SecretsManagerSecretId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerSecretId", "type": "string" }, "UseBcpFullLoad": { @@ -36528,42 +44721,68 @@ "additionalProperties": false, "properties": { "AuthMechanism": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `default | mongodb_cr | scram_sha_1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthMechanism", "type": "string" }, "AuthSource": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthSource", "type": "string" }, "AuthType": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `no | password` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthType", "type": "string" }, "DatabaseName": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", "type": "string" }, "DocsToInvestigate": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocsToInvestigate", "type": "string" }, "ExtractDocId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExtractDocId", "type": "string" }, "NestingLevel": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `none | one` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NestingLevel", "type": "string" }, "Password": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", "type": "string" }, "Port": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" }, "SecretsManagerAccessRoleArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerAccessRoleArn", "type": "string" }, "SecretsManagerSecretId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerSecretId", "type": "string" }, "ServerName": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerName", "type": "string" }, "Username": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", "type": "string" } }, @@ -36588,9 +44807,13 @@ "type": "number" }, "SecretsManagerAccessRoleArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerAccessRoleArn", "type": "string" }, "SecretsManagerSecretId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerSecretId", "type": "string" }, "ServerTimezone": { @@ -36606,24 +44829,38 @@ "additionalProperties": false, "properties": { "ErrorRetryDuration": { + "markdownDescription": "The number of milliseconds for AWS DMS to wait to retry a bulk\\-load of migrated graph data to the Neptune target database before raising an error\\. The default is 250\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorRetryDuration", "type": "number" }, "IamAuthEnabled": { + "markdownDescription": "If you want AWS Identity and Access Management \\(IAM\\) authorization enabled for this endpoint, set this parameter to `true`\\. Then attach the appropriate IAM policy document to your service role specified by `ServiceAccessRoleArn`\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamAuthEnabled", "type": "boolean" }, "MaxFileSize": { + "markdownDescription": "The maximum size in kilobytes of migrated graph data stored in a \\.csv file before AWS DMS bulk\\-loads the data to the Neptune target database\\. The default is 1,048,576 KB\\. If the bulk load is successful, AWS DMS clears the bucket, ready to store the next batch of migrated graph data\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxFileSize", "type": "number" }, "MaxRetryCount": { + "markdownDescription": "The number of times for AWS DMS to retry a bulk load of migrated graph data to the Neptune target database before raising an error\\. The default is 5\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxRetryCount", "type": "number" }, "S3BucketFolder": { + "markdownDescription": "A folder path where you want AWS DMS to store migrated graph data in the S3 bucket specified by `S3BucketName` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketFolder", "type": "string" }, "S3BucketName": { + "markdownDescription": "The name of the Amazon S3 bucket where AWS DMS can temporarily store migrated graph data in \\.csv files before bulk\\-loading it to the Neptune target database\\. AWS DMS maps the SQL source data to graph data before storing it in these \\.csv files\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketName", "type": "string" }, "ServiceAccessRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the service role that you created for the Neptune target endpoint\\. The role must allow the `iam:PassRole` action\\. For more information, see [Creating an IAM Service Role for Accessing Amazon Neptune as a Target](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Neptune.html#CHAP_Target.Neptune.ServiceRole) in the * AWS Database Migration Service User Guide\\. * \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceAccessRoleArn", "type": "string" } }, @@ -36702,15 +44939,23 @@ "type": "number" }, "SecretsManagerAccessRoleArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerAccessRoleArn", "type": "string" }, "SecretsManagerOracleAsmAccessRoleArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerOracleAsmAccessRoleArn", "type": "string" }, "SecretsManagerOracleAsmSecretId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerOracleAsmSecretId", "type": "string" }, "SecretsManagerSecretId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerSecretId", "type": "string" }, "SecurityDbEncryption": { @@ -36777,9 +45022,13 @@ "type": "string" }, "SecretsManagerAccessRoleArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerAccessRoleArn", "type": "string" }, "SecretsManagerSecretId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerSecretId", "type": "string" }, "SlotName": { @@ -36792,24 +45041,38 @@ "additionalProperties": false, "properties": { "AuthPassword": { + "markdownDescription": "The password provided with the `auth-role` and `auth-token` options of the `AuthType` setting for a Redis target endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthPassword", "type": "string" }, "AuthType": { + "markdownDescription": "The type of authentication to perform when connecting to a Redis target\\. Options include `none`, `auth-token`, and `auth-role`\\. The `auth-token` option requires an `AuthPassword` value to be provided\\. The `auth-role` option requires `AuthUserName` and `AuthPassword` values to be provided\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `auth-role | auth-token | none` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthType", "type": "string" }, "AuthUserName": { + "markdownDescription": "The user name provided with the `auth-role` option of the `AuthType` setting for a Redis target endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthUserName", "type": "string" }, "Port": { + "markdownDescription": "Transmission Control Protocol \\(TCP\\) port for the endpoint\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" }, "ServerName": { + "markdownDescription": "Fully qualified domain name of the endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerName", "type": "string" }, "SslCaCertificateArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the certificate authority \\(CA\\) that DMS uses to connect to your Redis target endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SslCaCertificateArn", "type": "string" }, "SslSecurityProtocol": { + "markdownDescription": "The connection to a Redis target endpoint using Transport Layer Security \\(TLS\\)\\. Valid values include `plaintext` and `ssl-encryption`\\. The default is `ssl-encryption`\\. The `ssl-encryption` option makes an encrypted connection\\. Optionally, you can identify an Amazon Resource Name \\(ARN\\) for an SSL certificate authority \\(CA\\) using the `SslCaCertificateArn `setting\\. If an ARN isn't given for a CA, DMS uses the Amazon root CA\\. \nThe `plaintext` option doesn't provide Transport Layer Security \\(TLS\\) encryption for traffic between endpoint and database\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `plaintext | ssl-encryption` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SslSecurityProtocol", "type": "string" } }, @@ -36870,9 +45133,13 @@ "type": "string" }, "SecretsManagerAccessRoleArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerAccessRoleArn", "type": "string" }, "SecretsManagerSecretId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerSecretId", "type": "string" }, "ServerSideEncryptionKmsKeyId": { @@ -36900,117 +45167,193 @@ "additionalProperties": false, "properties": { "AddColumnName": { + "markdownDescription": "An optional parameter that, when set to `true` or `y`, you can use to add column name information to the \\.csv output file\\. \nThe default value is `false`\\. Valid values are `true`, `false`, `y`, and `n`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddColumnName", "type": "boolean" }, "BucketFolder": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketFolder", "type": "string" }, "BucketName": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", "type": "string" }, "CannedAclForObjects": { + "markdownDescription": "A value that enables AWS DMS to specify a predefined \\(canned\\) access control list for objects created in an Amazon S3 bucket as \\.csv or \\.parquet files\\. For more information about Amazon S3 canned ACLs, see [Canned ACL](http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) in the *Amazon S3 Developer Guide\\.* \nThe default value is NONE\\. Valid values include NONE, PRIVATE, PUBLIC\\_READ, PUBLIC\\_READ\\_WRITE, AUTHENTICATED\\_READ, AWS\\_EXEC\\_READ, BUCKET\\_OWNER\\_READ, and BUCKET\\_OWNER\\_FULL\\_CONTROL\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `authenticated-read | aws-exec-read | bucket-owner-full-control | bucket-owner-read | none | private | public-read | public-read-write` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CannedAclForObjects", "type": "string" }, "CdcInsertsAndUpdates": { + "markdownDescription": "A value that enables a change data capture \\(CDC\\) load to write INSERT and UPDATE operations to \\.csv or \\.parquet \\(columnar storage\\) output files\\. The default setting is `false`, but when `CdcInsertsAndUpdates` is set to `true` or `y`, only INSERTs and UPDATEs from the source database are migrated to the \\.csv or \\.parquet file\\. \nFor \\.csv file format only, how these INSERTs and UPDATEs are recorded depends on the value of the `IncludeOpForFullLoad` parameter\\. If `IncludeOpForFullLoad` is set to `true`, the first field of every CDC record is set to either `I` or `U` to indicate INSERT and UPDATE operations at the source\\. But if `IncludeOpForFullLoad` is set to `false`, CDC records are written without an indication of INSERT or UPDATE operations at the source\\. For more information about how these settings work together, see [Indicating Source DB Operations in Migrated S3 Data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps) in the * AWS Database Migration Service User Guide\\.*\\. \n AWS DMS supports the use of the `CdcInsertsAndUpdates` parameter in versions 3\\.3\\.1 and later\\. \n `CdcInsertsOnly` and `CdcInsertsAndUpdates` can't both be set to `true` for the same endpoint\\. Set either `CdcInsertsOnly` or `CdcInsertsAndUpdates` to `true` for the same endpoint, but not both\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CdcInsertsAndUpdates", "type": "boolean" }, "CdcInsertsOnly": { + "markdownDescription": "A value that enables a change data capture \\(CDC\\) load to write only INSERT operations to \\.csv or columnar storage \\(\\.parquet\\) output files\\. By default \\(the `false` setting\\), the first field in a \\.csv or \\.parquet record contains the letter I \\(INSERT\\), U \\(UPDATE\\), or D \\(DELETE\\)\\. These values indicate whether the row was inserted, updated, or deleted at the source database for a CDC load to the target\\. \nIf `CdcInsertsOnly` is set to `true` or `y`, only INSERTs from the source database are migrated to the \\.csv or \\.parquet file\\. For \\.csv format only, how these INSERTs are recorded depends on the value of `IncludeOpForFullLoad`\\. If `IncludeOpForFullLoad` is set to `true`, the first field of every CDC record is set to I to indicate the INSERT operation at the source\\. If `IncludeOpForFullLoad` is set to `false`, every CDC record is written without a first field to indicate the INSERT operation at the source\\. For more information about how these settings work together, see [Indicating Source DB Operations in Migrated S3 Data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps) in the * AWS Database Migration Service User Guide\\.*\\. \n AWS DMS supports the interaction described preceding between the `CdcInsertsOnly` and `IncludeOpForFullLoad` parameters in versions 3\\.1\\.4 and later\\. \n `CdcInsertsOnly` and `CdcInsertsAndUpdates` can't both be set to `true` for the same endpoint\\. Set either `CdcInsertsOnly` or `CdcInsertsAndUpdates` to `true` for the same endpoint, but not both\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CdcInsertsOnly", "type": "boolean" }, "CdcMaxBatchInterval": { + "markdownDescription": "Maximum length of the interval, defined in seconds, after which to output a file to Amazon S3\\. \nWhen `CdcMaxBatchInterval` and `CdcMinFileSize` are both specified, the file write is triggered by whichever parameter condition is met first within an AWS DMS CloudFormation template\\. \nThe default value is 60 seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CdcMaxBatchInterval", "type": "number" }, "CdcMinFileSize": { + "markdownDescription": "Minimum file size, defined in megabytes, to reach for a file output to Amazon S3\\. \nWhen `CdcMinFileSize` and `CdcMaxBatchInterval` are both specified, the file write is triggered by whichever parameter condition is met first within an AWS DMS CloudFormation template\\. \nThe default value is 32 MB\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CdcMinFileSize", "type": "number" }, "CdcPath": { + "markdownDescription": "Specifies the folder path of CDC files\\. For an S3 source, this setting is required if a task captures change data; otherwise, it's optional\\. If `CdcPath` is set, AWS DMS reads CDC files from this path and replicates the data changes to the target endpoint\\. For an S3 target if you set [https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-PreserveTransactions](https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-PreserveTransactions) to `true`, AWS DMS verifies that you have set this parameter to a folder path on your S3 target where AWS DMS can save the transaction order for the CDC load\\. AWS DMS creates this CDC folder path in either your S3 target working directory or the S3 target location specified by [https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-BucketFolder](https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-BucketFolder) and [https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-BucketName](https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-BucketName)\\. \nFor example, if you specify `CdcPath` as `MyChangedData`, and you specify `BucketName` as `MyTargetBucket` but do not specify `BucketFolder`, AWS DMS creates the CDC folder path following: `MyTargetBucket/MyChangedData`\\. \nIf you specify the same `CdcPath`, and you specify `BucketName` as `MyTargetBucket` and `BucketFolder` as `MyTargetData`, AWS DMS creates the CDC folder path following: `MyTargetBucket/MyTargetData/MyChangedData`\\. \nFor more information on CDC including transaction order on an S3 target, see [Capturing data changes \\(CDC\\) including transaction order on the S3 target](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.EndpointSettings.CdcPath)\\. \nThis setting is supported in AWS DMS versions 3\\.4\\.2 and later\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CdcPath", "type": "string" }, "CompressionType": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `gzip | none` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CompressionType", "type": "string" }, "CsvDelimiter": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CsvDelimiter", "type": "string" }, "CsvNoSupValue": { + "markdownDescription": "This setting only applies if your Amazon S3 output files during a change data capture \\(CDC\\) load are written in \\.csv format\\. If [https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-UseCsvNoSupValue](https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-UseCsvNoSupValue) is set to true, specify a string value that you want AWS DMS to use for all columns not included in the supplemental log\\. If you do not specify a string value, AWS DMS uses the null value for these columns regardless of the `UseCsvNoSupValue` setting\\. \nThis setting is supported in AWS DMS versions 3\\.4\\.1 and later\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CsvNoSupValue", "type": "string" }, "CsvNullValue": { + "markdownDescription": "An optional parameter that specifies how AWS DMS treats null values\\. While handling the null value, you can use this parameter to pass a user\\-defined string as null when writing to the target\\. For example, when target columns are not nullable, you can use this option to differentiate between the empty string value and the null value\\. So, if you set this parameter value to the empty string \\(\"\" or ''\\), AWS DMS treats the empty string as the null value instead of `NULL`\\. \nThe default value is `NULL`\\. Valid values include any valid string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CsvNullValue", "type": "string" }, "CsvRowDelimiter": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CsvRowDelimiter", "type": "string" }, "DataFormat": { + "markdownDescription": "The format of the data that you want to use for output\\. You can choose one of the following: \n+ `csv` : This is a row\\-based file format with comma\\-separated values \\(\\.csv\\)\\. \n+ `parquet` : Apache Parquet \\(\\.parquet\\) is a columnar storage file format that features efficient compression and provides faster query response\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `csv | parquet` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataFormat", "type": "string" }, "DataPageSize": { + "markdownDescription": "The size of one data page in bytes\\. This parameter defaults to 1024 \\* 1024 bytes \\(1 MiB\\)\\. This number is used for \\.parquet file format only\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataPageSize", "type": "number" }, "DatePartitionDelimiter": { + "markdownDescription": "Specifies a date separating delimiter to use during folder partitioning\\. The default value is `SLASH`\\. Use this parameter when `DatePartitionedEnabled` is set to `true`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DASH | NONE | SLASH | UNDERSCORE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatePartitionDelimiter", "type": "string" }, "DatePartitionEnabled": { + "markdownDescription": "When set to `true`, this parameter partitions S3 bucket folders based on transaction commit dates\\. The default value is `false`\\. For more information about date\\-based folder partitioning, see [Using date\\-based folder partitioning](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.DatePartitioning)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatePartitionEnabled", "type": "boolean" }, "DatePartitionSequence": { + "markdownDescription": "Identifies the sequence of the date format to use during folder partitioning\\. The default value is `YYYYMMDD`\\. Use this parameter when `DatePartitionedEnabled` is set to `true`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DDMMYYYY | MMYYYYDD | YYYYMM | YYYYMMDD | YYYYMMDDHH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatePartitionSequence", "type": "string" }, "DatePartitionTimezone": { + "markdownDescription": "When creating an S3 target endpoint, set `DatePartitionTimezone` to convert the current UTC time into a specified time zone\\. The conversion occurs when a date partition folder is created and a CDC filename is generated\\. The time zone format is Area/Location\\. Use this parameter when `DatePartitionedEnabled` is set to `true`, as shown in the following example\\. \n `s3-settings='{\"DatePartitionEnabled\": true, \"DatePartitionSequence\": \"YYYYMMDDHH\", \"DatePartitionDelimiter\": \"SLASH\", \"DatePartitionTimezone\":\"Asia/Seoul\", \"BucketName\": \"dms-nattarat-test\"}'` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatePartitionTimezone", "type": "string" }, "DictPageSizeLimit": { + "markdownDescription": "The maximum size of an encoded dictionary page of a column\\. If the dictionary page exceeds this, this column is stored using an encoding type of `PLAIN`\\. This parameter defaults to 1024 \\* 1024 bytes \\(1 MiB\\), the maximum size of a dictionary page before it reverts to `PLAIN` encoding\\. This size is used for \\.parquet file format only\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DictPageSizeLimit", "type": "number" }, "EnableStatistics": { + "markdownDescription": "A value that enables statistics for Parquet pages and row groups\\. Choose `true` to enable statistics, `false` to disable\\. Statistics include `NULL`, `DISTINCT`, `MAX`, and `MIN` values\\. This parameter defaults to `true`\\. This value is used for \\.parquet file format only\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableStatistics", "type": "boolean" }, "EncodingType": { + "markdownDescription": "The type of encoding you are using: \n+ `RLE_DICTIONARY` uses a combination of bit\\-packing and run\\-length encoding to store repeated values more efficiently\\. This is the default\\.\n+ `PLAIN` doesn't use encoding at all\\. Values are stored as they are\\.\n+ `PLAIN_DICTIONARY` builds a dictionary of the values encountered in a given column\\. The dictionary is stored in a dictionary page for each column chunk\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `plain | plain-dictionary | rle-dictionary` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncodingType", "type": "string" }, "EncryptionMode": { + "markdownDescription": "The type of server\\-side encryption that you want to use for your data\\. This encryption type is part of the endpoint settings or the extra connections attributes for Amazon S3\\. You can choose either `SSE_S3` \\(the default\\) or `SSE_KMS`\\. \nFor the `ModifyEndpoint` operation, you can change the existing value of the `EncryptionMode` parameter from `SSE_KMS` to `SSE_S3`\\. But you can\u2019t change the existing value from `SSE_S3` to `SSE_KMS`\\.\nTo use `SSE_S3`, you need an AWS Identity and Access Management \\(IAM\\) role with permission to allow `\"arn:aws:s3:::dms-*\"` to use the following actions: \n+ `s3:CreateBucket` \n+ `s3:ListBucket` \n+ `s3:DeleteBucket` \n+ `s3:GetBucketLocation` \n+ `s3:GetObject` \n+ `s3:PutObject` \n+ `s3:DeleteObject` \n+ `s3:GetObjectVersion` \n+ `s3:GetBucketPolicy` \n+ `s3:PutBucketPolicy` \n+ `s3:DeleteBucketPolicy` \n*Required*: No \n*Type*: String \n*Allowed values*: `sse-kms | sse-s3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionMode", "type": "string" }, "ExternalTableDefinition": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExternalTableDefinition", "type": "string" }, "IgnoreHeaderRows": { + "markdownDescription": "When this value is set to 1, AWS DMS ignores the first row header in a \\.csv file\\. A value of 1 turns on the feature; a value of 0 turns off the feature\\. \nThe default is 0\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IgnoreHeaderRows", "type": "number" }, "IncludeOpForFullLoad": { + "markdownDescription": "A value that enables a full load to write INSERT operations to the comma\\-separated value \\(\\.csv\\) output files only to indicate how the rows were added to the source database\\. \n AWS DMS supports the `IncludeOpForFullLoad` parameter in versions 3\\.1\\.4 and later\\.\nFor full load, records can only be inserted\\. By default \\(the `false` setting\\), no information is recorded in these output files for a full load to indicate that the rows were inserted at the source database\\. If `IncludeOpForFullLoad` is set to `true` or `y`, the INSERT is recorded as an I annotation in the first field of the \\.csv file\\. This allows the format of your target records from a full load to be consistent with the target records from a CDC load\\. \nThis setting works together with the `CdcInsertsOnly` and the `CdcInsertsAndUpdates` parameters for output to \\.csv files only\\. For more information about how these settings work together, see [Indicating Source DB Operations in Migrated S3 Data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps) in the * AWS Database Migration Service User Guide\\.*\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeOpForFullLoad", "type": "boolean" }, "MaxFileSize": { + "markdownDescription": "A value that specifies the maximum size \\(in KB\\) of any \\.csv file to be created while migrating to an S3 target during full load\\. \nThe default value is 1,048,576 KB \\(1 GB\\)\\. Valid values include 1 to 1,048,576\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxFileSize", "type": "number" }, "ParquetTimestampInMillisecond": { + "markdownDescription": "A value that specifies the precision of any `TIMESTAMP` column values that are written to an Amazon S3 object file in \\.parquet format\\. \n AWS DMS supports the `ParquetTimestampInMillisecond` parameter in versions 3\\.1\\.4 and later\\.\nWhen `ParquetTimestampInMillisecond` is set to `true` or `y`, AWS DMS writes all `TIMESTAMP` columns in a \\.parquet formatted file with millisecond precision\\. Otherwise, DMS writes them with microsecond precision\\. \nCurrently, Amazon Athena and AWS Glue can handle only millisecond precision for `TIMESTAMP` values\\. Set this parameter to `true` for S3 endpoint object files that are \\.parquet formatted only if you plan to query or process the data with Athena or AWS Glue\\. \n AWS DMS writes any `TIMESTAMP` column values written to an S3 file in \\.csv format with microsecond precision\\. \nSetting `ParquetTimestampInMillisecond` has no effect on the string format of the timestamp column value that is inserted by setting the `TimestampColumnName` parameter\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParquetTimestampInMillisecond", "type": "boolean" }, "ParquetVersion": { + "markdownDescription": "The version of the Apache Parquet format that you want to use: `parquet_1_0` \\(the default\\) or `parquet_2_0`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `parquet-1-0 | parquet-2-0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParquetVersion", "type": "string" }, "PreserveTransactions": { + "markdownDescription": "If set to `true`, AWS DMS saves the transaction order for a change data capture \\(CDC\\) load on the Amazon S3 target specified by [https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-CdcPath](https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-CdcPath)\\. For more information, see [Capturing data changes \\(CDC\\) including transaction order on the S3 target](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.EndpointSettings.CdcPath)\\. \nThis setting is supported in AWS DMS versions 3\\.4\\.2 and later\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreserveTransactions", "type": "boolean" }, "Rfc4180": { + "markdownDescription": "For an S3 source, when this value is set to `true` or `y`, each leading double quotation mark has to be followed by an ending double quotation mark\\. This formatting complies with RFC 4180\\. When this value is set to `false` or `n`, string literals are copied to the target as is\\. In this case, a delimiter \\(row or column\\) signals the end of the field\\. Thus, you can't use a delimiter as part of the string, because it signals the end of the value\\. \nFor an S3 target, an optional parameter used to set behavior to comply with RFC 4180 for data migrated to Amazon S3 using \\.csv file format only\\. When this value is set to `true` or `y` using Amazon S3 as a target, if the data has quotation marks or newline characters in it, AWS DMS encloses the entire column with an additional pair of double quotation marks \\(\"\\)\\. Every quotation mark within the data is repeated twice\\. \nThe default value is `true`\\. Valid values include `true`, `false`, `y`, and `n`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rfc4180", "type": "boolean" }, "RowGroupLength": { + "markdownDescription": "The number of rows in a row group\\. A smaller row group size provides faster reads\\. But as the number of row groups grows, the slower writes become\\. This parameter defaults to 10,000 rows\\. This number is used for \\.parquet file format only\\. \nIf you choose a value larger than the maximum, `RowGroupLength` is set to the max row group length in bytes \\(64 \\* 1024 \\* 1024\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RowGroupLength", "type": "number" }, "ServerSideEncryptionKmsKeyId": { + "markdownDescription": "If you are using `SSE_KMS` for the `EncryptionMode`, provide the AWS KMS key ID\\. The key that you use needs an attached policy that enables AWS Identity and Access Management \\(IAM\\) user permissions and allows use of the key\\. \nHere is a CLI example: `aws dms create-endpoint --endpoint-identifier value --endpoint-type target --engine-name s3 --s3-settings ServiceAccessRoleArn=value,BucketFolder=value,BucketName=value,EncryptionMode=SSE_KMS,ServerSideEncryptionKmsKeyId=value ` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerSideEncryptionKmsKeyId", "type": "string" }, "ServiceAccessRoleArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceAccessRoleArn", "type": "string" }, "TimestampColumnName": { + "markdownDescription": "A value that when nonblank causes AWS DMS to add a column with timestamp information to the endpoint data for an Amazon S3 target\\. \n AWS DMS supports the `TimestampColumnName` parameter in versions 3\\.1\\.4 and later\\.\nDMS includes an additional `STRING` column in the \\.csv or \\.parquet object files of your migrated data when you set `TimestampColumnName` to a nonblank value\\. \nFor a full load, each row of this timestamp column contains a timestamp for when the data was transferred from the source to the target by DMS\\. \nFor a change data capture \\(CDC\\) load, each row of the timestamp column contains the timestamp for the commit of that row in the source database\\. \nThe string format for this timestamp column value is `yyyy-MM-dd HH:mm:ss.SSSSSS`\\. By default, the precision of this value is in microseconds\\. For a CDC load, the rounding of the precision depends on the commit timestamp supported by DMS for the source database\\. \nWhen the `AddColumnName` parameter is set to `true`, DMS also includes a name for the timestamp column that you set with `TimestampColumnName`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimestampColumnName", "type": "string" }, "UseCsvNoSupValue": { + "markdownDescription": "This setting applies if the S3 output files during a change data capture \\(CDC\\) load are written in \\.csv format\\. If set to `true` for columns not included in the supplemental log, AWS DMS uses the value specified by [https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-CsvNoSupValue](https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-CsvNoSupValue)\\. If not set or set to `false`, AWS DMS uses the null value for these columns\\. \nThis setting is supported in AWS DMS versions 3\\.4\\.1 and later\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseCsvNoSupValue", "type": "boolean" }, "UseTaskStartTimeForFullLoadTimestamp": { + "markdownDescription": "When set to true, this parameter uses the task start time as the timestamp column value instead of the time data is written to target\\. For full load, when `useTaskStartTimeForFullLoadTimestamp` is set to `true`, each row of the timestamp column contains the task start time\\. For CDC loads, each row of the timestamp column contains the transaction commit time\\. \nWhen `useTaskStartTimeForFullLoadTimestamp` is set to `false`, the full load timestamp in the timestamp column increments with the time data arrives at the target\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseTaskStartTimeForFullLoadTimestamp", "type": "boolean" } }, @@ -37020,9 +45363,13 @@ "additionalProperties": false, "properties": { "SecretsManagerAccessRoleArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerAccessRoleArn", "type": "string" }, "SecretsManagerSecretId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerSecretId", "type": "string" } }, @@ -37064,33 +45411,47 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Indicates whether to activate the subscription\\. If you don't specify this property, AWS CloudFormation activates the subscription\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "EventCategories": { "items": { "type": "string" }, + "markdownDescription": "A list of event categories for a source type that you want to subscribe to\\. If you don't specify this property, you are notified about all event categories\\. For more information, see [Working with Events and Notifications](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Events.html) in the *AWS DMS User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventCategories", "type": "array" }, "SnsTopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic created for event notification\\. The ARN is created by Amazon SNS when you create a topic and subscribe to it\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsTopicArn", "type": "string" }, "SourceIds": { "items": { "type": "string" }, + "markdownDescription": "A list of identifiers for which AWS DMS provides notification events\\. \nIf you don't specify a value, notifications are provided for all sources\\. \nIf you specify multiple values, they must be of the same type\\. For example, if you specify a database instance ID, then all of the other values must be database instance IDs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceIds", "type": "array" }, "SourceType": { + "markdownDescription": "The type of AWS DMS resource that generates the events\\. For example, if you want to be notified of events generated by a replication instance, you set this parameter to `replication-instance`\\. If this value isn't specified, all events are returned\\. \nValid values: `replication-instance` \\| `replication-task` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceType", "type": "string" }, "SubscriptionName": { + "markdownDescription": "The name of the AWS DMS event notification subscription\\. This name must be less than 255 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubscriptionName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "One or more tags to be assigned to the event subscription\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -37156,54 +45517,84 @@ "additionalProperties": false, "properties": { "AllocatedStorage": { + "markdownDescription": "The amount of storage \\(in gigabytes\\) to be initially allocated for the replication instance\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocatedStorage", "type": "number" }, "AllowMajorVersionUpgrade": { + "markdownDescription": "Indicates that major version upgrades are allowed\\. Changing this parameter does not result in an outage, and the change is asynchronously applied as soon as possible\\. \nThis parameter must be set to `true` when specifying a value for the `EngineVersion` parameter that is a different major version than the replication instance's current version\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowMajorVersionUpgrade", "type": "boolean" }, "AutoMinorVersionUpgrade": { + "markdownDescription": "A value that indicates whether minor engine upgrades are applied automatically to the replication instance during the maintenance window\\. This parameter defaults to `true`\\. \nDefault: `true` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoMinorVersionUpgrade", "type": "boolean" }, "AvailabilityZone": { + "markdownDescription": "The Availability Zone that the replication instance will be created in\\. \nThe default value is a random, system\\-chosen Availability Zone in the endpoint's , for example: `us-east-1d` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZone", "type": "string" }, "EngineVersion": { + "markdownDescription": "The engine version number of the replication instance\\. \nIf an engine version number is not specified when a replication instance is created, the default is the latest engine version available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EngineVersion", "type": "string" }, "KmsKeyId": { + "markdownDescription": "An AWS KMS key identifier that is used to encrypt the data on the replication instance\\. \nIf you don't specify a value for the `KmsKeyId` parameter, then AWS DMS uses your default encryption key\\. \n AWS KMS creates the default encryption key for your AWS account\\. Your AWS account has a different default encryption key for each AWS Region\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" }, "MultiAZ": { + "markdownDescription": "Specifies whether the replication instance is a Multi\\-AZ deployment\\. You can't set the `AvailabilityZone` parameter if the Multi\\-AZ parameter is set to `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MultiAZ", "type": "boolean" }, "PreferredMaintenanceWindow": { + "markdownDescription": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time \\(UTC\\)\\. \n Format: `ddd:hh24:mi-ddd:hh24:mi` \nDefault: A 30\\-minute window selected at random from an 8\\-hour block of time per AWS Region, occurring on a random day of the week\\. \nValid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun \nConstraints: Minimum 30\\-minute window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", "type": "string" }, "PubliclyAccessible": { + "markdownDescription": "Specifies the accessibility options for the replication instance\\. A value of `true` represents an instance with a public IP address\\. A value of `false` represents an instance with a private IP address\\. The default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PubliclyAccessible", "type": "boolean" }, "ReplicationInstanceClass": { + "markdownDescription": "The compute and memory capacity of the replication instance as defined for the specified replication instance class\\. For example to specify the instance class dms\\.c4\\.large, set this parameter to `\"dms.c4.large\"`\\. \nFor more information on the settings and capacities for the available replication instance classes, see [ Selecting the right AWS DMS replication instance for your migration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.InDepth)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationInstanceClass", "type": "string" }, "ReplicationInstanceIdentifier": { + "markdownDescription": "The replication instance identifier\\. This parameter is stored as a lowercase string\\. \nConstraints: \n+ Must contain 1\\-63 alphanumeric characters or hyphens\\.\n+ First character must be a letter\\.\n+ Can't end with a hyphen or contain two consecutive hyphens\\.\nExample: `myrepinstance` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationInstanceIdentifier", "type": "string" }, "ReplicationSubnetGroupIdentifier": { + "markdownDescription": "A subnet group to associate with the replication instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplicationSubnetGroupIdentifier", "type": "string" }, "ResourceIdentifier": { + "markdownDescription": "A friendly name for the resource identifier at the end of the `EndpointArn` response parameter that is returned in the created `Endpoint` object\\. The value for this parameter can have up to 31 characters\\. It can contain only ASCII letters, digits, and hyphen \\('\\-'\\)\\. Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as `Example-App-ARN1`\\. For example, this value might result in the `EndpointArn` value `arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1`\\. If you don't specify a `ResourceIdentifier` value, AWS DMS generates a default identifier value for the end of `EndpointArn`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceIdentifier", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "One or more tags to be assigned to the replication instance\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" }, "VpcSecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "Specifies the VPC security group to be used with the replication instance\\. The VPC security group must work with the VPC containing the replication instance\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSecurityGroupIds", "type": "array" } }, @@ -37269,21 +45660,29 @@ "additionalProperties": false, "properties": { "ReplicationSubnetGroupDescription": { + "markdownDescription": "The description for the subnet group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationSubnetGroupDescription", "type": "string" }, "ReplicationSubnetGroupIdentifier": { + "markdownDescription": "The identifier for the replication subnet group\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the identifier\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplicationSubnetGroupIdentifier", "type": "string" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "One or more subnet IDs to be assigned to the subnet group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "One or more tags to be assigned to the subnet group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -37350,45 +45749,71 @@ "additionalProperties": false, "properties": { "CdcStartPosition": { + "markdownDescription": "Indicates when you want a change data capture \\(CDC\\) operation to start\\. Use either CdcStartPosition or CdcStartTime to specify when you want a CDC operation to start\\. Specifying both values results in an error\\. \n The value can be in date, checkpoint, or LSN/SCN format\\. \nDate Example: \\-\\-cdc\\-start\\-position \u201c2018\\-03\\-08T12:12:12\u201d \nCheckpoint Example: \\-\\-cdc\\-start\\-position \"checkpoint:V1\\#27\\#mysql\\-bin\\-changelog\\.157832:1975:\\-1:2002:677883278264080:mysql\\-bin\\-changelog\\.157832:1876\\#0\\#0\\#\\*\\#0\\#93\" \nLSN Example: \\-\\-cdc\\-start\\-position \u201cmysql\\-bin\\-changelog\\.000024:373\u201d \nWhen you use this task setting with a source PostgreSQL database, a logical replication slot should already be created and associated with the source endpoint\\. You can verify this by setting the `slotName` extra connection attribute to the name of this logical replication slot\\. For more information, see [Extra Connection Attributes When Using PostgreSQL as a Source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.ConnectionAttrib)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CdcStartPosition", "type": "string" }, "CdcStartTime": { + "markdownDescription": "Indicates the start time for a change data capture \\(CDC\\) operation\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CdcStartTime", "type": "number" }, "CdcStopPosition": { + "markdownDescription": "Indicates when you want a change data capture \\(CDC\\) operation to stop\\. The value can be either server time or commit time\\. \nServer time example: \\-\\-cdc\\-stop\\-position \u201cserver\\_time:2018\\-02\\-09T12:12:12\u201d \nCommit time example: \\-\\-cdc\\-stop\\-position \u201ccommit\\_time: 2018\\-02\\-09T12:12:12 \u201c \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CdcStopPosition", "type": "string" }, "MigrationType": { + "markdownDescription": "The migration type\\. Valid values: `full-load` \\| `cdc` \\| `full-load-and-cdc` \n*Required*: Yes \n*Type*: String \n*Allowed values*: `cdc | full-load | full-load-and-cdc` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MigrationType", "type": "string" }, "ReplicationInstanceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of a replication instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplicationInstanceArn", "type": "string" }, "ReplicationTaskIdentifier": { + "markdownDescription": "An identifier for the replication task\\. \nConstraints: \n+ Must contain 1\\-255 alphanumeric characters or hyphens\\.\n+ First character must be a letter\\.\n+ Cannot end with a hyphen or contain two consecutive hyphens\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationTaskIdentifier", "type": "string" }, "ReplicationTaskSettings": { + "markdownDescription": "Overall settings for the task, in JSON format\\. For more information, see [Specifying Task Settings for AWS Database Migration Service Tasks](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.html) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationTaskSettings", "type": "string" }, "ResourceIdentifier": { + "markdownDescription": "A friendly name for the resource identifier at the end of the `EndpointArn` response parameter that is returned in the created `Endpoint` object\\. The value for this parameter can have up to 31 characters\\. It can contain only ASCII letters, digits, and hyphen \\('\\-'\\)\\. Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as `Example-App-ARN1`\\. For example, this value might result in the `EndpointArn` value `arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1`\\. If you don't specify a `ResourceIdentifier` value, AWS DMS generates a default identifier value for the end of `EndpointArn`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceIdentifier", "type": "string" }, "SourceEndpointArn": { + "markdownDescription": "An Amazon Resource Name \\(ARN\\) that uniquely identifies the source endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceEndpointArn", "type": "string" }, "TableMappings": { + "markdownDescription": "The table mappings for the task, in JSON format\\. For more information, see [Using Table Mapping to Specify Task Settings](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.html) in the * AWS Database Migration Service User Guide\\.* \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableMappings", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "One or more tags to be assigned to the replication task\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" }, "TargetEndpointArn": { + "markdownDescription": "An Amazon Resource Name \\(ARN\\) that uniquely identifies the target endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetEndpointArn", "type": "string" }, "TaskData": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskData", "type": "string" } }, @@ -37458,24 +45883,36 @@ "additionalProperties": false, "properties": { "Format": { + "markdownDescription": "The file format of a dataset that is created from an Amazon S3 file or folder\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CSV | EXCEL | JSON | PARQUET` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", "type": "string" }, "FormatOptions": { - "$ref": "#/definitions/AWS::DataBrew::Dataset.FormatOptions" + "$ref": "#/definitions/AWS::DataBrew::Dataset.FormatOptions", + "markdownDescription": "A set of options that define how DataBrew interprets the data in the dataset\\. \n*Required*: No \n*Type*: [FormatOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-formatoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FormatOptions" }, "Input": { - "$ref": "#/definitions/AWS::DataBrew::Dataset.Input" + "$ref": "#/definitions/AWS::DataBrew::Dataset.Input", + "markdownDescription": "Information on how DataBrew can find the dataset, in either the AWS Glue Data Catalog or Amazon S3\\. \n*Required*: Yes \n*Type*: [Input](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-input.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Input" }, "Name": { + "markdownDescription": "The unique name of the dataset\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "PathOptions": { - "$ref": "#/definitions/AWS::DataBrew::Dataset.PathOptions" + "$ref": "#/definitions/AWS::DataBrew::Dataset.PathOptions", + "markdownDescription": "A set of options that defines how DataBrew interprets an Amazon S3 path of the dataset\\. \n*Required*: No \n*Type*: [PathOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-pathoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PathOptions" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Metadata tags that have been applied to the dataset\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -37510,9 +45947,13 @@ "additionalProperties": false, "properties": { "Delimiter": { + "markdownDescription": "A single character that specifies the delimiter being used in the CSV file\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Delimiter", "type": "string" }, "HeaderRow": { + "markdownDescription": "A variable that specifies whether the first row in the file is parsed as the header\\. If this value is false, column names are auto\\-generated\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderRow", "type": "boolean" } }, @@ -37522,16 +45963,24 @@ "additionalProperties": false, "properties": { "CatalogId": { + "markdownDescription": "The unique identifier of the AWS account that holds the Data Catalog that stores the data\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CatalogId", "type": "string" }, "DatabaseName": { + "markdownDescription": "The name of a database in the Data Catalog\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", "type": "string" }, "TableName": { + "markdownDescription": "The name of a database table in the Data Catalog\\. This table corresponds to a DataBrew dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", "type": "string" }, "TempDirectory": { - "$ref": "#/definitions/AWS::DataBrew::Dataset.S3Location" + "$ref": "#/definitions/AWS::DataBrew::Dataset.S3Location", + "markdownDescription": "An Amazon location that AWS Glue Data Catalog can use as a temporary directory\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TempDirectory" } }, "type": "object" @@ -37540,16 +45989,24 @@ "additionalProperties": false, "properties": { "DatabaseTableName": { + "markdownDescription": "The table within the target database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseTableName", "type": "string" }, "GlueConnectionName": { + "markdownDescription": "The AWS Glue Connection that stores the connection information for the target database\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlueConnectionName", "type": "string" }, "QueryString": { + "markdownDescription": "Custom SQL to run against the provided AWS Glue connection\\. This SQL will be used as the input for DataBrew projects and jobs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryString", "type": "string" }, "TempDirectory": { - "$ref": "#/definitions/AWS::DataBrew::Dataset.S3Location" + "$ref": "#/definitions/AWS::DataBrew::Dataset.S3Location", + "markdownDescription": "An Amazon location that AWS Glue Data Catalog can use as a temporary directory\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TempDirectory" } }, "required": [ @@ -37561,18 +46018,28 @@ "additionalProperties": false, "properties": { "CreateColumn": { + "markdownDescription": "Optional boolean value that defines whether the captured value of this parameter should be loaded as an additional column in the dataset\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreateColumn", "type": "boolean" }, "DatetimeOptions": { - "$ref": "#/definitions/AWS::DataBrew::Dataset.DatetimeOptions" + "$ref": "#/definitions/AWS::DataBrew::Dataset.DatetimeOptions", + "markdownDescription": "Additional parameter options such as a format and a timezone\\. Required for datetime parameters\\. \n*Required*: No \n*Type*: [DatetimeOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datetimeoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatetimeOptions" }, "Filter": { - "$ref": "#/definitions/AWS::DataBrew::Dataset.FilterExpression" + "$ref": "#/definitions/AWS::DataBrew::Dataset.FilterExpression", + "markdownDescription": "The optional filter expression structure to apply additional matching criteria to the parameter\\. \n*Required*: No \n*Type*: [FilterExpression](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-filterexpression.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filter" }, "Name": { + "markdownDescription": "The name of the parameter that is used in the dataset's Amazon S3 path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Type": { + "markdownDescription": "The type of the dataset parameter, can be one of a 'String', 'Number' or 'Datetime'\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -37586,12 +46053,18 @@ "additionalProperties": false, "properties": { "Format": { + "markdownDescription": "Required option, that defines the datetime format used for a date parameter in the Amazon S3 path\\. Should use only supported datetime specifiers and separation characters, all litera a\\-z or A\\-Z character should be escaped with single quotes\\. E\\.g\\. \"MM\\.dd\\.yyyy\\-'at'\\-HH:mm\"\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", "type": "string" }, "LocaleCode": { + "markdownDescription": "Optional value for a non\\-US locale code, needed for correct interpretation of some date formats\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocaleCode", "type": "string" }, "TimezoneOffset": { + "markdownDescription": "Optional value for a timezone offset of the datetime parameter value in the Amazon S3 path\\. Shouldn't be used if Format for this parameter includes timezone fields\\. If no offset specified, UTC is assumed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimezoneOffset", "type": "string" } }, @@ -37604,18 +46077,24 @@ "additionalProperties": false, "properties": { "HeaderRow": { + "markdownDescription": "A variable that specifies whether the first row in the file is parsed as the header\\. If this value is false, column names are auto\\-generated\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderRow", "type": "boolean" }, "SheetIndexes": { "items": { "type": "number" }, + "markdownDescription": "One or more sheet numbers in the Excel file that will be included in the dataset\\. \n*Required*: No \n*Type*: List of Integer \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SheetIndexes", "type": "array" }, "SheetNames": { "items": { "type": "string" }, + "markdownDescription": "One or more named sheets in the Excel file that will be included in the dataset\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SheetNames", "type": "array" } }, @@ -37625,12 +46104,18 @@ "additionalProperties": false, "properties": { "MaxFiles": { + "markdownDescription": "The number of Amazon S3 files to select\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxFiles", "type": "number" }, "Order": { + "markdownDescription": "A criteria to use for Amazon S3 files sorting before their selection\\. By default uses DESCENDING order, i\\.e\\. most recent files are selected first\\. Anotherpossible value is ASCENDING\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Order", "type": "string" }, "OrderedBy": { + "markdownDescription": "A criteria to use for Amazon S3 files sorting before their selection\\. By default uses LAST\\_MODIFIED\\_DATE as a sorting criteria\\. Currently it's the only allowed value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrderedBy", "type": "string" } }, @@ -37643,12 +46128,16 @@ "additionalProperties": false, "properties": { "Expression": { + "markdownDescription": "The expression which includes condition names followed by substitution variables, possibly grouped and combined with other conditions\\. For example, \"\\(starts\\_with :prefix1 or starts\\_with :prefix2\\) and \\(ends\\_with :suffix1 or ends\\_with :suffix2\\)\"\\. Substitution variables should start with ':' symbol\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Expression", "type": "string" }, "ValuesMap": { "items": { "$ref": "#/definitions/AWS::DataBrew::Dataset.FilterValue" }, + "markdownDescription": "The map of substitution variable names to their values used in this filter expression\\. \n*Required*: Yes \n*Type*: List of [FilterValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-filtervalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValuesMap", "type": "array" } }, @@ -37662,9 +46151,13 @@ "additionalProperties": false, "properties": { "Value": { + "markdownDescription": "The value to be associated with the substitution variable\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" }, "ValueReference": { + "markdownDescription": "The substitution variable reference\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValueReference", "type": "string" } }, @@ -37678,13 +46171,19 @@ "additionalProperties": false, "properties": { "Csv": { - "$ref": "#/definitions/AWS::DataBrew::Dataset.CsvOptions" + "$ref": "#/definitions/AWS::DataBrew::Dataset.CsvOptions", + "markdownDescription": "Options that define how CSV input is to be interpreted by DataBrew\\. \n*Required*: No \n*Type*: [CsvOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-csvoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Csv" }, "Excel": { - "$ref": "#/definitions/AWS::DataBrew::Dataset.ExcelOptions" + "$ref": "#/definitions/AWS::DataBrew::Dataset.ExcelOptions", + "markdownDescription": "Options that define how Excel input is to be interpreted by DataBrew\\. \n*Required*: No \n*Type*: [ExcelOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-exceloptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Excel" }, "Json": { - "$ref": "#/definitions/AWS::DataBrew::Dataset.JsonOptions" + "$ref": "#/definitions/AWS::DataBrew::Dataset.JsonOptions", + "markdownDescription": "Options that define how JSON input is to be interpreted by DataBrew\\. \n*Required*: No \n*Type*: [JsonOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-jsonoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Json" } }, "type": "object" @@ -37693,16 +46192,24 @@ "additionalProperties": false, "properties": { "DataCatalogInputDefinition": { - "$ref": "#/definitions/AWS::DataBrew::Dataset.DataCatalogInputDefinition" + "$ref": "#/definitions/AWS::DataBrew::Dataset.DataCatalogInputDefinition", + "markdownDescription": "The AWS Glue Data Catalog parameters for the data\\. \n*Required*: No \n*Type*: [DataCatalogInputDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datacataloginputdefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataCatalogInputDefinition" }, "DatabaseInputDefinition": { - "$ref": "#/definitions/AWS::DataBrew::Dataset.DatabaseInputDefinition" + "$ref": "#/definitions/AWS::DataBrew::Dataset.DatabaseInputDefinition", + "markdownDescription": "Connection information for dataset input files stored in a database\\. \n*Required*: No \n*Type*: [DatabaseInputDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-databaseinputdefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseInputDefinition" }, "Metadata": { - "$ref": "#/definitions/AWS::DataBrew::Dataset.Metadata" + "$ref": "#/definitions/AWS::DataBrew::Dataset.Metadata", + "markdownDescription": "Contains additional resource information needed for specific datasets\\. \n*Required*: No \n*Type*: [Metadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-metadata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metadata" }, "S3InputDefinition": { - "$ref": "#/definitions/AWS::DataBrew::Dataset.S3Location" + "$ref": "#/definitions/AWS::DataBrew::Dataset.S3Location", + "markdownDescription": "The Amazon S3 location where the data is stored\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3InputDefinition" } }, "type": "object" @@ -37711,6 +46218,8 @@ "additionalProperties": false, "properties": { "MultiLine": { + "markdownDescription": "A value that specifies whether JSON input contains embedded new line characters\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MultiLine", "type": "boolean" } }, @@ -37720,6 +46229,8 @@ "additionalProperties": false, "properties": { "SourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) associated with the dataset\\. Currently, DataBrew only supports ARNs from Amazon AppFlow\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceArn", "type": "string" } }, @@ -37729,15 +46240,21 @@ "additionalProperties": false, "properties": { "FilesLimit": { - "$ref": "#/definitions/AWS::DataBrew::Dataset.FilesLimit" + "$ref": "#/definitions/AWS::DataBrew::Dataset.FilesLimit", + "markdownDescription": "If provided, this structure imposes a limit on a number of files that should be selected\\. \n*Required*: No \n*Type*: [FilesLimit](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-fileslimit.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilesLimit" }, "LastModifiedDateCondition": { - "$ref": "#/definitions/AWS::DataBrew::Dataset.FilterExpression" + "$ref": "#/definitions/AWS::DataBrew::Dataset.FilterExpression", + "markdownDescription": "If provided, this structure defines a date range for matching Amazon S3 objects based on their LastModifiedDate attribute in Amazon S3\\. \n*Required*: No \n*Type*: [FilterExpression](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-filterexpression.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastModifiedDateCondition" }, "Parameters": { "items": { "$ref": "#/definitions/AWS::DataBrew::Dataset.PathParameter" }, + "markdownDescription": "A structure that maps names of parameters used in the Amazon S3 path of a dataset to their definitions\\. \n*Required*: No \n*Type*: List of [PathParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-pathparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "array" } }, @@ -37747,9 +46264,13 @@ "additionalProperties": false, "properties": { "DatasetParameter": { - "$ref": "#/definitions/AWS::DataBrew::Dataset.DatasetParameter" + "$ref": "#/definitions/AWS::DataBrew::Dataset.DatasetParameter", + "markdownDescription": "The path parameter definition\\. \n*Required*: Yes \n*Type*: [DatasetParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datasetparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetParameter" }, "PathParameterName": { + "markdownDescription": "The name of the path parameter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PathParameterName", "type": "string" } }, @@ -37763,9 +46284,13 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The Amazon S3 bucket name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", "type": "string" }, "Key": { + "markdownDescription": "The unique name of the object in the bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1280` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" } }, @@ -37813,75 +46338,115 @@ "items": { "$ref": "#/definitions/AWS::DataBrew::Job.DataCatalogOutput" }, + "markdownDescription": "One or more artifacts that represent the AWS Glue Data Catalog output from running the job\\. \n*Required*: No \n*Type*: List of [DataCatalogOutput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataCatalogOutputs", "type": "array" }, "DatabaseOutputs": { "items": { "$ref": "#/definitions/AWS::DataBrew::Job.DatabaseOutput" }, + "markdownDescription": "Represents a list of JDBC database output objects which defines the output destination for a DataBrew recipe job to write into\\. \n*Required*: No \n*Type*: List of [DatabaseOutput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databaseoutput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseOutputs", "type": "array" }, "DatasetName": { + "markdownDescription": "A dataset that the job is to process\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetName", "type": "string" }, "EncryptionKeyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an encryption key that is used to protect the job output\\. For more information, see [Encrypting data written by DataBrew jobs](https://docs.aws.amazon.com/databrew/latest/dg/encryption-security-configuration.html) \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionKeyArn", "type": "string" }, "EncryptionMode": { + "markdownDescription": "The encryption mode for the job, which can be one of the following: \n+ `SSE-KMS` \\- Server\\-side encryption with keys managed by AWS KMS\\.\n+ `SSE-S3` \\- Server\\-side encryption with keys managed by Amazon S3\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `SSE-KMS | SSE-S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionMode", "type": "string" }, "JobSample": { - "$ref": "#/definitions/AWS::DataBrew::Job.JobSample" + "$ref": "#/definitions/AWS::DataBrew::Job.JobSample", + "markdownDescription": "A sample configuration for profile jobs only, which determines the number of rows on which the profile job is run\\. If a `JobSample` value isn't provided, the default value is used\\. The default value is CUSTOM\\_ROWS for the mode parameter and 20,000 for the size parameter\\. \n*Required*: No \n*Type*: [JobSample](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-jobsample.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobSample" }, "LogSubscription": { + "markdownDescription": "The current status of Amazon CloudWatch logging for the job\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLE | ENABLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogSubscription", "type": "string" }, "MaxCapacity": { + "markdownDescription": "The maximum number of nodes that can be consumed when the job processes data\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacity", "type": "number" }, "MaxRetries": { + "markdownDescription": "The maximum number of times to retry the job after a job run fails\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxRetries", "type": "number" }, "Name": { + "markdownDescription": "The unique name of the job\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `240` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "OutputLocation": { - "$ref": "#/definitions/AWS::DataBrew::Job.OutputLocation" + "$ref": "#/definitions/AWS::DataBrew::Job.OutputLocation", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [OutputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-outputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputLocation" }, "Outputs": { "items": { "$ref": "#/definitions/AWS::DataBrew::Job.Output" }, + "markdownDescription": "One or more artifacts that represent output from running the job\\. \n*Required*: No \n*Type*: List of [Output](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Outputs", "type": "array" }, "ProfileConfiguration": { - "$ref": "#/definitions/AWS::DataBrew::Job.ProfileConfiguration" + "$ref": "#/definitions/AWS::DataBrew::Job.ProfileConfiguration", + "markdownDescription": "Configuration for profile jobs\\. Configuration can be used to select columns, do evaluations, and override default parameters of evaluations\\. When configuration is undefined, the profile job will apply default settings to all supported columns\\. \n*Required*: No \n*Type*: [ProfileConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-profileconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProfileConfiguration" }, "ProjectName": { + "markdownDescription": "The name of the project that the job is associated with\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProjectName", "type": "string" }, "Recipe": { - "$ref": "#/definitions/AWS::DataBrew::Job.Recipe" + "$ref": "#/definitions/AWS::DataBrew::Job.Recipe", + "markdownDescription": "A series of data transformation steps that the job runs\\. \n*Required*: No \n*Type*: [Recipe](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-recipe.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Recipe" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role to be assumed for this job\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Metadata tags that have been applied to the job\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" }, "Timeout": { + "markdownDescription": "The job's timeout in minutes\\. A job that attempts to run longer than this timeout period ends with a status of `TIMEOUT`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout", "type": "number" }, "Type": { + "markdownDescription": "The job type of the job, which must be one of the following: \n+ `PROFILE` \\- A job to analyze a dataset, to determine its size, data types, data distribution, and more\\.\n+ `RECIPE` \\- A job to apply one or more transformations to a dataset\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `PROFILE | RECIPE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" }, "ValidationConfigurations": { "items": { "$ref": "#/definitions/AWS::DataBrew::Job.ValidationConfiguration" }, + "markdownDescription": "List of validation configurations that are applied to the profile job\\. \n*Required*: No \n*Type*: List of [ValidationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-validationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValidationConfigurations", "type": "array" } }, @@ -37920,6 +46485,8 @@ "items": { "type": "string" }, + "markdownDescription": "One or more column statistics to allow for columns that contain detected entities\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statistics", "type": "array" } }, @@ -37932,9 +46499,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of a column from a dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Regex": { + "markdownDescription": "A regular expression for selecting a column from a dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Regex", "type": "string" } }, @@ -37947,10 +46518,14 @@ "items": { "$ref": "#/definitions/AWS::DataBrew::Job.ColumnSelector" }, + "markdownDescription": "List of column selectors\\. Selectors can be used to select columns from the dataset\\. When selectors are undefined, configuration will be applied to all supported columns\\. \n*Required*: No \n*Type*: List of [ColumnSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-columnselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Selectors", "type": "array" }, "Statistics": { - "$ref": "#/definitions/AWS::DataBrew::Job.StatisticsConfiguration" + "$ref": "#/definitions/AWS::DataBrew::Job.StatisticsConfiguration", + "markdownDescription": "Configuration for evaluations\\. Statistics can be used to select evaluations and override parameters of evaluations\\. \n*Required*: Yes \n*Type*: [StatisticsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-statisticsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statistics" } }, "required": [ @@ -37962,6 +46537,8 @@ "additionalProperties": false, "properties": { "Delimiter": { + "markdownDescription": "A single character that specifies the delimiter used to create CSV job output\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Delimiter", "type": "string" } }, @@ -37971,21 +46548,33 @@ "additionalProperties": false, "properties": { "CatalogId": { + "markdownDescription": "The unique identifier of the AWS account that holds the Data Catalog that stores the data\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CatalogId", "type": "string" }, "DatabaseName": { + "markdownDescription": "The name of a database in the Data Catalog\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", "type": "string" }, "DatabaseOptions": { - "$ref": "#/definitions/AWS::DataBrew::Job.DatabaseTableOutputOptions" + "$ref": "#/definitions/AWS::DataBrew::Job.DatabaseTableOutputOptions", + "markdownDescription": "Represents options that specify how and where DataBrew writes the database output generated by recipe jobs\\. \n*Required*: No \n*Type*: [DatabaseTableOutputOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databasetableoutputoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseOptions" }, "Overwrite": { + "markdownDescription": "A value that, if true, means that any data in the location specified for output is overwritten with new output\\. Not supported with DatabaseOptions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Overwrite", "type": "boolean" }, "S3Options": { - "$ref": "#/definitions/AWS::DataBrew::Job.S3TableOutputOptions" + "$ref": "#/definitions/AWS::DataBrew::Job.S3TableOutputOptions", + "markdownDescription": "Represents options that specify how and where DataBrew writes the Amazon S3 output generated by recipe jobs\\. \n*Required*: No \n*Type*: [S3TableOutputOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3tableoutputoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Options" }, "TableName": { + "markdownDescription": "The name of a table in the Data Catalog\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", "type": "string" } }, @@ -37999,12 +46588,18 @@ "additionalProperties": false, "properties": { "DatabaseOptions": { - "$ref": "#/definitions/AWS::DataBrew::Job.DatabaseTableOutputOptions" + "$ref": "#/definitions/AWS::DataBrew::Job.DatabaseTableOutputOptions", + "markdownDescription": "Represents options that specify how and where DataBrew writes the database output generated by recipe jobs\\. \n*Required*: Yes \n*Type*: [DatabaseTableOutputOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databasetableoutputoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseOptions" }, "DatabaseOutputMode": { + "markdownDescription": "The output mode to write into the database\\. Currently supported option: NEW\\_TABLE\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NEW_TABLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseOutputMode", "type": "string" }, "GlueConnectionName": { + "markdownDescription": "The AWS Glue connection that stores the connection information for the target database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlueConnectionName", "type": "string" } }, @@ -38018,10 +46613,14 @@ "additionalProperties": false, "properties": { "TableName": { + "markdownDescription": "A prefix for the name of a table DataBrew will create in the database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", "type": "string" }, "TempDirectory": { - "$ref": "#/definitions/AWS::DataBrew::Job.S3Location" + "$ref": "#/definitions/AWS::DataBrew::Job.S3Location", + "markdownDescription": "Represents an Amazon S3 location \\(bucket name and object key\\) where DataBrew can store intermediate results\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TempDirectory" } }, "required": [ @@ -38033,12 +46632,16 @@ "additionalProperties": false, "properties": { "AllowedStatistics": { - "$ref": "#/definitions/AWS::DataBrew::Job.AllowedStatistics" + "$ref": "#/definitions/AWS::DataBrew::Job.AllowedStatistics", + "markdownDescription": "Configuration of statistics that are allowed to be run on columns that contain detected entities\\. When undefined, no statistics will be computed on columns that contain detected entities\\. \n*Required*: No \n*Type*: [AllowedStatistics](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-allowedstatistics.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedStatistics" }, "EntityTypes": { "items": { "type": "string" }, + "markdownDescription": "Entity types to detect\\. Can be any of the following: \n+ USA\\_SSN\n+ EMAIL\n+ USA\\_ITIN\n+ USA\\_PASSPORT\\_NUMBER\n+ PHONE\\_NUMBER\n+ USA\\_DRIVING\\_LICENSE\n+ BANK\\_ACCOUNT\n+ CREDIT\\_CARD\n+ IP\\_ADDRESS\n+ MAC\\_ADDRESS\n+ USA\\_DEA\\_NUMBER\n+ USA\\_HCPCS\\_CODE\n+ USA\\_NATIONAL\\_PROVIDER\\_IDENTIFIER\n+ USA\\_NATIONAL\\_DRUG\\_CODE\n+ USA\\_HEALTH\\_INSURANCE\\_CLAIM\\_NUMBER\n+ USA\\_MEDICARE\\_BENEFICIARY\\_IDENTIFIER\n+ USA\\_CPT\\_CODE\n+ PERSON\\_NAME\n+ DATE\nThe Entity type group USA\\_ALL is also supported, and includes all of the above entity types except PERSON\\_NAME and DATE\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntityTypes", "type": "array" } }, @@ -38051,9 +46654,13 @@ "additionalProperties": false, "properties": { "Mode": { + "markdownDescription": "A value that determines whether the profile job is run on the entire dataset or a specified number of rows\\. This value must be one of the following: \n+ FULL\\_DATASET \\- The profile job is run on the entire dataset\\.\n+ CUSTOM\\_ROWS \\- The profile job is run on the number of rows specified in the `Size` parameter\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `CUSTOM_ROWS | FULL_DATASET` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", "type": "string" }, "Size": { + "markdownDescription": "The `Size` parameter is only required when the mode is CUSTOM\\_ROWS\\. The profile job is run on the specified number of rows\\. The maximum value for size is Long\\.MAX\\_VALUE\\. \nLong\\.MAX\\_VALUE = 9223372036854775807 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Size", "type": "number" } }, @@ -38063,27 +46670,41 @@ "additionalProperties": false, "properties": { "CompressionFormat": { + "markdownDescription": "The compression algorithm used to compress the output text of the job\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BROTLI | BZIP2 | DEFLATE | GZIP | LZ4 | LZO | SNAPPY | ZLIB | ZSTD` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CompressionFormat", "type": "string" }, "Format": { + "markdownDescription": "The data format of the output of the job\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AVRO | CSV | GLUEPARQUET | JSON | ORC | PARQUET | TABLEAUHYPER | XML` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", "type": "string" }, "FormatOptions": { - "$ref": "#/definitions/AWS::DataBrew::Job.OutputFormatOptions" + "$ref": "#/definitions/AWS::DataBrew::Job.OutputFormatOptions", + "markdownDescription": "Represents options that define how DataBrew formats job output files\\. \n*Required*: No \n*Type*: [OutputFormatOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-outputformatoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FormatOptions" }, "Location": { - "$ref": "#/definitions/AWS::DataBrew::Job.S3Location" + "$ref": "#/definitions/AWS::DataBrew::Job.S3Location", + "markdownDescription": "The location in Amazon S3 where the job writes its output\\. \n*Required*: Yes \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location" }, "MaxOutputFiles": { + "markdownDescription": "The maximum number of files to be generated by the job and written to the output folder\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxOutputFiles", "type": "number" }, "Overwrite": { + "markdownDescription": "A value that, if true, means that any data in the location specified for output is overwritten with new output\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Overwrite", "type": "boolean" }, "PartitionColumns": { "items": { "type": "string" }, + "markdownDescription": "The names of one or more partition columns for the output of the job\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PartitionColumns", "type": "array" } }, @@ -38096,7 +46717,9 @@ "additionalProperties": false, "properties": { "Csv": { - "$ref": "#/definitions/AWS::DataBrew::Job.CsvOutputOptions" + "$ref": "#/definitions/AWS::DataBrew::Job.CsvOutputOptions", + "markdownDescription": "Represents a set of options that define the structure of comma\\-separated value \\(CSV\\) job output\\. \n*Required*: No \n*Type*: [CsvOutputOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-csvoutputoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Csv" } }, "type": "object" @@ -38105,12 +46728,18 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The Amazon S3 bucket name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", "type": "string" }, "BucketOwner": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketOwner", "type": "string" }, "Key": { + "markdownDescription": "The unique name of the object in the bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" } }, @@ -38126,18 +46755,26 @@ "items": { "$ref": "#/definitions/AWS::DataBrew::Job.ColumnStatisticsConfiguration" }, + "markdownDescription": "List of configurations for column evaluations\\. ColumnStatisticsConfigurations are used to select evaluations and override parameters of evaluations for particular columns\\. When ColumnStatisticsConfigurations is undefined, the profile job will profile all supported columns and run all supported evaluations\\. \n*Required*: No \n*Type*: List of [ColumnStatisticsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-columnstatisticsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnStatisticsConfigurations", "type": "array" }, "DatasetStatisticsConfiguration": { - "$ref": "#/definitions/AWS::DataBrew::Job.StatisticsConfiguration" + "$ref": "#/definitions/AWS::DataBrew::Job.StatisticsConfiguration", + "markdownDescription": "Configuration for inter\\-column evaluations\\. Configuration can be used to select evaluations and override parameters of evaluations\\. When configuration is undefined, the profile job will run all supported inter\\-column evaluations\\. \n*Required*: No \n*Type*: [StatisticsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-statisticsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetStatisticsConfiguration" }, "EntityDetectorConfiguration": { - "$ref": "#/definitions/AWS::DataBrew::Job.EntityDetectorConfiguration" + "$ref": "#/definitions/AWS::DataBrew::Job.EntityDetectorConfiguration", + "markdownDescription": "Configuration of entity detection for a profile job\\. When undefined, entity detection is disabled\\. \n*Required*: No \n*Type*: [EntityDetectorConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-entitydetectorconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntityDetectorConfiguration" }, "ProfileColumns": { "items": { "$ref": "#/definitions/AWS::DataBrew::Job.ColumnSelector" }, + "markdownDescription": "List of column selectors\\. ProfileColumns can be used to select columns from the dataset\\. When ProfileColumns is undefined, the profile job will profile all supported columns\\. \n*Required*: No \n*Type*: List of [ColumnSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-columnselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProfileColumns", "type": "array" } }, @@ -38147,9 +46784,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The unique name for the recipe\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Version": { + "markdownDescription": "The identifier for the version for the recipe\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -38162,12 +46803,18 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The Amazon S3 bucket name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", "type": "string" }, "BucketOwner": { + "markdownDescription": "The AWS account ID of the bucket owner\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketOwner", "type": "string" }, "Key": { + "markdownDescription": "The unique name of the object in the bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1280` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" } }, @@ -38180,7 +46827,9 @@ "additionalProperties": false, "properties": { "Location": { - "$ref": "#/definitions/AWS::DataBrew::Job.S3Location" + "$ref": "#/definitions/AWS::DataBrew::Job.S3Location", + "markdownDescription": "Represents an Amazon S3 location \\(bucket name and object key\\) where DataBrew can write output from a job\\. \n*Required*: Yes \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location" } }, "required": [ @@ -38193,14 +46842,18 @@ "properties": { "Parameters": { "additionalProperties": true, + "markdownDescription": "A map that includes overrides of an evaluation\u2019s parameters\\. \n*Required*: Yes \n*Type*: [ParameterMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-parametermap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Parameters", "type": "object" }, "Statistic": { + "markdownDescription": "The name of an evaluation \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[A-Z\\_]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statistic", "type": "string" } }, @@ -38217,12 +46870,16 @@ "items": { "type": "string" }, + "markdownDescription": "List of included evaluations\\. When the list is undefined, all supported evaluations will be included\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludedStatistics", "type": "array" }, "Overrides": { "items": { "$ref": "#/definitions/AWS::DataBrew::Job.StatisticOverride" }, + "markdownDescription": "List of overrides for evaluations\\. \n*Required*: No \n*Type*: List of [StatisticOverride](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-statisticoverride.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Overrides", "type": "array" } }, @@ -38232,9 +46889,13 @@ "additionalProperties": false, "properties": { "RulesetArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the ruleset to be validated in the profile job\\. The TargetArn of the selected ruleset should be the same as the Amazon Resource Name \\(ARN\\) of the dataset that is associated with the profile job\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RulesetArn", "type": "string" }, "ValidationMode": { + "markdownDescription": "Mode of data quality validation\\. Default mode is \u201cCHECK\\_ALL\u201d which verifies all rules defined in the selected ruleset\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValidationMode", "type": "string" } }, @@ -38279,24 +46940,36 @@ "additionalProperties": false, "properties": { "DatasetName": { + "markdownDescription": "The dataset that the project is to act upon\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetName", "type": "string" }, "Name": { + "markdownDescription": "The unique name of a project\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RecipeName": { + "markdownDescription": "The name of a recipe that will be developed during a project session\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecipeName", "type": "string" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that will be assumed for this project\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "Sample": { - "$ref": "#/definitions/AWS::DataBrew::Project.Sample" + "$ref": "#/definitions/AWS::DataBrew::Project.Sample", + "markdownDescription": "The sample size and sampling type to apply to the data\\. If this parameter isn't specified, then the sample consists of the first 500 rows from the dataset\\. \n*Required*: No \n*Type*: [Sample](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-project-sample.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sample" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Metadata tags that have been applied to the project\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -38333,9 +47006,13 @@ "additionalProperties": false, "properties": { "Size": { + "markdownDescription": "The number of rows in the sample\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `5000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Size", "type": "number" }, "Type": { + "markdownDescription": "The way in which DataBrew obtains rows from a dataset\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `FIRST_N | LAST_N | RANDOM` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -38380,21 +47057,29 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the recipe\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The unique name for the recipe\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Steps": { "items": { "$ref": "#/definitions/AWS::DataBrew::Recipe.RecipeStep" }, + "markdownDescription": "A list of steps that are defined by the recipe\\. \n*Required*: Yes \n*Type*: List of [RecipeStep](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipestep.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Steps", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Metadata tags that have been applied to the recipe\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -38429,10 +47114,14 @@ "additionalProperties": false, "properties": { "Operation": { + "markdownDescription": "The name of a valid DataBrew transformation to be performed on the data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Operation", "type": "string" }, "Parameters": { - "$ref": "#/definitions/AWS::DataBrew::Recipe.RecipeParameters" + "$ref": "#/definitions/AWS::DataBrew::Recipe.RecipeParameters", + "markdownDescription": "Contextual parameters for the transformation\\. \n*Required*: No \n*Type*: [ParameterMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-parametermap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters" } }, "required": [ @@ -38444,12 +47133,18 @@ "additionalProperties": false, "properties": { "Condition": { + "markdownDescription": "A specific condition to apply to a recipe action\\. For more information, see [Recipe structure](https://docs.aws.amazon.com/databrew/latest/dg/recipe-structure.html) in the *AWS Glue DataBrew Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[A-Z\\_]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Condition", "type": "string" }, "TargetColumn": { + "markdownDescription": "A column to apply this condition to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetColumn", "type": "string" }, "Value": { + "markdownDescription": "A value that the condition must evaluate to for the condition to succeed\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -38463,16 +47158,24 @@ "additionalProperties": false, "properties": { "CatalogId": { + "markdownDescription": "The unique identifier of the AWS account that holds the Data Catalog that stores the data\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CatalogId", "type": "string" }, "DatabaseName": { + "markdownDescription": "The name of a database in the Data Catalog\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", "type": "string" }, "TableName": { + "markdownDescription": "The name of a database table in the Data Catalog\\. This table corresponds to a DataBrew dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", "type": "string" }, "TempDirectory": { - "$ref": "#/definitions/AWS::DataBrew::Recipe.S3Location" + "$ref": "#/definitions/AWS::DataBrew::Recipe.S3Location", + "markdownDescription": "Represents an Amazon location where DataBrew can store intermediate results\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TempDirectory" } }, "type": "object" @@ -38493,315 +47196,517 @@ "additionalProperties": false, "properties": { "AggregateFunction": { + "markdownDescription": "The name of an aggregation function to apply\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AggregateFunction", "type": "string" }, "Base": { + "markdownDescription": "The number of digits used in a counting system\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Base", "type": "string" }, "CaseStatement": { + "markdownDescription": "A case statement associated with a recipe\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaseStatement", "type": "string" }, "CategoryMap": { + "markdownDescription": "A category map used for one\\-hot encoding\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CategoryMap", "type": "string" }, "CharsToRemove": { + "markdownDescription": "Characters to remove from a step that applies one\\-hot encoding or tokenization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CharsToRemove", "type": "string" }, "CollapseConsecutiveWhitespace": { + "markdownDescription": "Remove any non\\-word non\\-punctuation character\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CollapseConsecutiveWhitespace", "type": "string" }, "ColumnDataType": { + "markdownDescription": "The data type of the column\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnDataType", "type": "string" }, "ColumnRange": { + "markdownDescription": "A range of columns to which a step is applied\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnRange", "type": "string" }, "Count": { + "markdownDescription": "The number of times a string needs to be repeated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count", "type": "string" }, "CustomCharacters": { + "markdownDescription": "One or more characters that can be substituted or removed, depending on the context\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomCharacters", "type": "string" }, "CustomStopWords": { + "markdownDescription": "A list of words to ignore in a step that applies word tokenization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomStopWords", "type": "string" }, "CustomValue": { + "markdownDescription": "A list of custom values to use in a step that requires that you provide a value to finish the operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomValue", "type": "string" }, "DatasetsColumns": { + "markdownDescription": "A list of the dataset columns included in a project\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetsColumns", "type": "string" }, "DateAddValue": { + "markdownDescription": "A value that specifies how many units of time to add or subtract for a date math operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DateAddValue", "type": "string" }, "DateTimeFormat": { + "markdownDescription": "A date format to apply to a date\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DateTimeFormat", "type": "string" }, "DateTimeParameters": { + "markdownDescription": "A set of parameters associated with a datetime\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DateTimeParameters", "type": "string" }, "DeleteOtherRows": { + "markdownDescription": "Determines whether unmapped rows in a categorical mapping should be deleted \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteOtherRows", "type": "string" }, "Delimiter": { + "markdownDescription": "The delimiter to use when parsing separated values in a text file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Delimiter", "type": "string" }, "EndPattern": { + "markdownDescription": "The end pattern to locate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndPattern", "type": "string" }, "EndPosition": { + "markdownDescription": "The end position to locate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndPosition", "type": "string" }, "EndValue": { + "markdownDescription": "The end value to locate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndValue", "type": "string" }, "ExpandContractions": { + "markdownDescription": "A list of word contractions and what they expand to\\. For eample: *can't*; *cannot*; *can not*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExpandContractions", "type": "string" }, "Exponent": { + "markdownDescription": "The exponent to apply in an exponential operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exponent", "type": "string" }, "FalseString": { + "markdownDescription": "A value that represents `FALSE`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FalseString", "type": "string" }, "GroupByAggFunctionOptions": { + "markdownDescription": "Specifies options to apply to the `GROUP BY` used in an aggregation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupByAggFunctionOptions", "type": "string" }, "GroupByColumns": { + "markdownDescription": "The columns to use in the `GROUP BY` clause\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupByColumns", "type": "string" }, "HiddenColumns": { + "markdownDescription": "A list of columns to hide\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HiddenColumns", "type": "string" }, "IgnoreCase": { + "markdownDescription": "Indicates that lower and upper case letters are treated equally\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IgnoreCase", "type": "string" }, "IncludeInSplit": { + "markdownDescription": "Indicates if this column is participating in a split transform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeInSplit", "type": "string" }, "Input": { - "$ref": "#/definitions/AWS::DataBrew::Recipe.Input" + "$ref": "#/definitions/AWS::DataBrew::Recipe.Input", + "markdownDescription": "The input location to load the dataset from \\- Amazon S3 or AWS Glue Data Catalog\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Input" }, "Interval": { + "markdownDescription": "The number of characters to split by\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Interval", "type": "string" }, "IsText": { + "markdownDescription": "Indicates if the content is text\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsText", "type": "string" }, "JoinKeys": { + "markdownDescription": "The keys or columns involved in a join\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JoinKeys", "type": "string" }, "JoinType": { + "markdownDescription": "The type of join to use, for example, `INNER JOIN`, `OUTER JOIN`, and so on\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JoinType", "type": "string" }, "LeftColumns": { + "markdownDescription": "The columns on the left side of the join\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LeftColumns", "type": "string" }, "Limit": { + "markdownDescription": "The number of times to perform `split` or `replaceBy` in a string \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Limit", "type": "string" }, "LowerBound": { + "markdownDescription": "The lower boundary for a value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LowerBound", "type": "string" }, "MapType": { + "markdownDescription": "The type of mappings to apply to construct a new dynamic frame\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MapType", "type": "string" }, "ModeType": { + "markdownDescription": "Determines the manner in which mode value is calculated, in case there is more than one mode value\\. Valid values: `NONE` \\| `AVERAGE` \\| `MINIMUM` \\| `MAXIMUM` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ModeType", "type": "string" }, "MultiLine": { + "markdownDescription": "Specifies whether JSON input contains embedded new line characters\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MultiLine", "type": "boolean" }, "NumRows": { + "markdownDescription": "The number of rows to consider in a window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumRows", "type": "string" }, "NumRowsAfter": { + "markdownDescription": "The number of rows to consider after the current row in a window \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumRowsAfter", "type": "string" }, "NumRowsBefore": { + "markdownDescription": "The number of rows to consider before the current row in a window \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumRowsBefore", "type": "string" }, "OrderByColumn": { + "markdownDescription": "A column to sort the results by\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrderByColumn", "type": "string" }, "OrderByColumns": { + "markdownDescription": "The columns to sort the results by\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrderByColumns", "type": "string" }, "Other": { + "markdownDescription": "The value to assign to unmapped cells, in categorical mapping \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Other", "type": "string" }, "Pattern": { + "markdownDescription": "The pattern to locate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Pattern", "type": "string" }, "PatternOption1": { + "markdownDescription": "The starting pattern to split between\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatternOption1", "type": "string" }, "PatternOption2": { + "markdownDescription": "The ending pattern to split between\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatternOption2", "type": "string" }, "PatternOptions": { + "markdownDescription": "For splitting by multiple delimiters: A JSON\\-encoded string that lists the patterns in the format\\. For example: `[{\\\"pattern\\\":\\\"1\\\",\\\"includeInSplit\\\":true}]` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatternOptions", "type": "string" }, "Period": { + "markdownDescription": "The size of the rolling window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Period", "type": "string" }, "Position": { + "markdownDescription": "The character index within a string \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Position", "type": "string" }, "RemoveAllPunctuation": { + "markdownDescription": "If `true`, removes all of the following characters: `.` `.!` `.,` `.?` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveAllPunctuation", "type": "string" }, "RemoveAllQuotes": { + "markdownDescription": "If `true`, removes all single quotes and double quotes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveAllQuotes", "type": "string" }, "RemoveAllWhitespace": { + "markdownDescription": "If `true`, removes all whitespaces from the value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveAllWhitespace", "type": "string" }, "RemoveCustomCharacters": { + "markdownDescription": "If `true`, removes all chraracters specified by `CustomCharacters`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveCustomCharacters", "type": "string" }, "RemoveCustomValue": { + "markdownDescription": "If `true`, removes all chraracters specified by `CustomValue`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveCustomValue", "type": "string" }, "RemoveLeadingAndTrailingPunctuation": { + "markdownDescription": "If `true`, removes the following characters if they occur at the start or end of the value: `.` `!` `,` `?` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveLeadingAndTrailingPunctuation", "type": "string" }, "RemoveLeadingAndTrailingQuotes": { + "markdownDescription": "If `true`, removes single quotes and double quotes from the beginning and end of the value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveLeadingAndTrailingQuotes", "type": "string" }, "RemoveLeadingAndTrailingWhitespace": { + "markdownDescription": "If `true`, removes all whitespaces from the beginning and end of the value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveLeadingAndTrailingWhitespace", "type": "string" }, "RemoveLetters": { + "markdownDescription": "If `true`, removes all uppercase and lowercase alphabetic characters \\(A through Z; a through z\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveLetters", "type": "string" }, "RemoveNumbers": { + "markdownDescription": "If `true`, removes all numeric characters \\(0 through 9\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveNumbers", "type": "string" }, "RemoveSourceColumn": { + "markdownDescription": "If `true`, the source column will be removed after un\\-nesting that column\\. \\(Used with nested column types, such as Map, Struct, or Array\\.\\) \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveSourceColumn", "type": "string" }, "RemoveSpecialCharacters": { + "markdownDescription": "If `true`, removes all of the following characters: `! \" # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \\ ] ^ _ ` { | } ~` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveSpecialCharacters", "type": "string" }, "RightColumns": { + "markdownDescription": "The columns on the right side of a join\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RightColumns", "type": "string" }, "SampleSize": { + "markdownDescription": "The number of rows in the sample\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SampleSize", "type": "string" }, "SampleType": { + "markdownDescription": "The sampling type to apply to the dataset\\. Valid values: `FIRST_N` \\| `LAST_N` \\| `RANDOM` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SampleType", "type": "string" }, "SecondInput": { + "markdownDescription": "A object value to indicate the second dataset used in a join\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondInput", "type": "string" }, "SecondaryInputs": { "items": { "$ref": "#/definitions/AWS::DataBrew::Recipe.SecondaryInput" }, + "markdownDescription": "A list of secondary inputs in a UNION transform \n*Required*: No \n*Type*: List of [SecondaryInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-secondaryinput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryInputs", "type": "array" }, "SheetIndexes": { "items": { "type": "number" }, + "markdownDescription": "One or more sheet numbers in the Excel file, which will be included in a dataset\\. \n*Required*: No \n*Type*: List of Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SheetIndexes", "type": "array" }, "SheetNames": { "items": { "type": "string" }, + "markdownDescription": "Oone or more named sheets in the Excel file, which will be included in a dataset\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SheetNames", "type": "array" }, "SourceColumn": { + "markdownDescription": "A source column needed for an operation, step, or transform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceColumn", "type": "string" }, "SourceColumn1": { + "markdownDescription": "A source column needed for an operation, step, or transform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceColumn1", "type": "string" }, "SourceColumn2": { + "markdownDescription": "A source column needed for an operation, step, or transform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceColumn2", "type": "string" }, "SourceColumns": { + "markdownDescription": "A list of source columns needed for an operation, step, or transform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceColumns", "type": "string" }, "StartColumnIndex": { + "markdownDescription": "The index number of the first column used by an operation, step, or transform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartColumnIndex", "type": "string" }, "StartPattern": { + "markdownDescription": "The starting pattern to locate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartPattern", "type": "string" }, "StartPosition": { + "markdownDescription": "The starting position to locate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartPosition", "type": "string" }, "StartValue": { + "markdownDescription": "The starting value to locate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartValue", "type": "string" }, "StemmingMode": { + "markdownDescription": "Indicates this operation uses stems and lemmas \\(base words\\) for word tokenization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StemmingMode", "type": "string" }, "StepCount": { + "markdownDescription": "The total number of transforms in this recipe\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StepCount", "type": "string" }, "StepIndex": { + "markdownDescription": "The index ID of a step\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StepIndex", "type": "string" }, "StopWordsMode": { + "markdownDescription": "Indicates this operation uses stop words as part of word tokenization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StopWordsMode", "type": "string" }, "Strategy": { + "markdownDescription": "The resolution strategy to apply in resolving ambiguities\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Strategy", "type": "string" }, "TargetColumn": { + "markdownDescription": "The column targeted by this operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetColumn", "type": "string" }, "TargetColumnNames": { + "markdownDescription": "The names to give columns altered by this operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetColumnNames", "type": "string" }, "TargetDateFormat": { + "markdownDescription": "The date format to convert to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetDateFormat", "type": "string" }, "TargetIndex": { + "markdownDescription": "The index number of an object that is targeted by this operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetIndex", "type": "string" }, "TimeZone": { + "markdownDescription": "The current timezone that you want to use for dates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeZone", "type": "string" }, "TokenizerPattern": { + "markdownDescription": "A regex expression to use when splitting text into terms, also called words or tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenizerPattern", "type": "string" }, "TrueString": { + "markdownDescription": "A value to use to represent `TRUE`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrueString", "type": "string" }, "UdfLang": { + "markdownDescription": "The language that's used in the user\\-defined function\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UdfLang", "type": "string" }, "Units": { + "markdownDescription": "Specifies a unit of time\\. For example: `MINUTES`; `SECONDS`; `HOURS`; etc\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Units", "type": "string" }, "UnpivotColumn": { + "markdownDescription": "Cast columns as rows, so that each value is a different row in a single column\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnpivotColumn", "type": "string" }, "UpperBound": { + "markdownDescription": "The upper boundary for a value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpperBound", "type": "string" }, "UseNewDataFrame": { + "markdownDescription": "Create a new container to hold a dataset\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseNewDataFrame", "type": "string" }, "Value": { + "markdownDescription": "A static value that can be used in a comparison, a substitution, or in another context\\-specific way\\. A `Value` can be a number, string, or other datatype, depending on the recipe action in which it's used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" }, "Value1": { + "markdownDescription": "A value that's used by this operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value1", "type": "string" }, "Value2": { + "markdownDescription": "A value that's used by this operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value2", "type": "string" }, "ValueColumn": { + "markdownDescription": "The column that is provided as a value that's used by this operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValueColumn", "type": "string" }, "ViewFrame": { + "markdownDescription": "The subset of rows currently available for viewing\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ViewFrame", "type": "string" } }, @@ -38811,12 +47716,16 @@ "additionalProperties": false, "properties": { "Action": { - "$ref": "#/definitions/AWS::DataBrew::Recipe.Action" + "$ref": "#/definitions/AWS::DataBrew::Recipe.Action", + "markdownDescription": "The particular action to be performed in the recipe step\\. \n*Required*: Yes \n*Type*: [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" }, "ConditionExpressions": { "items": { "$ref": "#/definitions/AWS::DataBrew::Recipe.ConditionExpression" }, + "markdownDescription": "One or more conditions that must be met for the recipe step to succeed\\. \nAll of the conditions in the array must be met\\. In other words, all of the conditions must be combined using a logical AND operation\\.\n*Required*: No \n*Type*: List of [ConditionExpression](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-conditionexpression.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConditionExpressions", "type": "array" } }, @@ -38829,9 +47738,13 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The Amazon S3 bucket name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", "type": "string" }, "Key": { + "markdownDescription": "The unique name of the object in the bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1280` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" } }, @@ -38844,10 +47757,14 @@ "additionalProperties": false, "properties": { "DataCatalogInputDefinition": { - "$ref": "#/definitions/AWS::DataBrew::Recipe.DataCatalogInputDefinition" + "$ref": "#/definitions/AWS::DataBrew::Recipe.DataCatalogInputDefinition", + "markdownDescription": "The AWS Glue Data Catalog parameters for the data\\. \n*Required*: No \n*Type*: [DataCatalogInputDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-datacataloginputdefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataCatalogInputDefinition" }, "S3InputDefinition": { - "$ref": "#/definitions/AWS::DataBrew::Recipe.S3Location" + "$ref": "#/definitions/AWS::DataBrew::Recipe.S3Location", + "markdownDescription": "The Amazon S3 location where the data is stored\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3InputDefinition" } }, "type": "object" @@ -38888,24 +47805,34 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the ruleset\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name of the ruleset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Rules": { "items": { "$ref": "#/definitions/AWS::DataBrew::Ruleset.Rule" }, + "markdownDescription": "Contains metadata about the ruleset\\. \n*Required*: Yes \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TargetArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of a resource \\(dataset\\) that the ruleset is associated with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetArn", "type": "string" } }, @@ -38941,9 +47868,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of a column from a dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Regex": { + "markdownDescription": "A regular expression for selecting a column from a dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Regex", "type": "string" } }, @@ -38953,28 +47884,40 @@ "additionalProperties": false, "properties": { "CheckExpression": { + "markdownDescription": "The expression which includes column references, condition names followed by variable references, possibly grouped and combined with other conditions\\. For example, `(:col1 starts_with :prefix1 or :col1 starts_with :prefix2) and (:col1 ends_with :suffix1 or :col1 ends_with :suffix2)`\\. Column and value references are substitution variables that should start with the ':' symbol\\. Depending on the context, substitution variables' values can be either an actual value or a column name\\. These values are defined in the SubstitutionMap\\. If a CheckExpression starts with a column reference, then ColumnSelectors in the rule should be null\\. If ColumnSelectors has been defined, then there should be no columnn reference in the left side of a condition, for example, `is_between :val1 and :val2`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CheckExpression", "type": "string" }, "ColumnSelectors": { "items": { "$ref": "#/definitions/AWS::DataBrew::Ruleset.ColumnSelector" }, + "markdownDescription": "List of column selectors\\. Selectors can be used to select columns using a name or regular expression from the dataset\\. Rule will be applied to selected columns\\. \n*Required*: No \n*Type*: List of [ColumnSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-columnselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnSelectors", "type": "array" }, "Disabled": { + "markdownDescription": "A value that specifies whether the rule is disabled\\. Once a rule is disabled, a profile job will not validate it during a job run\\. Default value is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Disabled", "type": "boolean" }, "Name": { + "markdownDescription": "The name of the rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "SubstitutionMap": { "items": { "$ref": "#/definitions/AWS::DataBrew::Ruleset.SubstitutionValue" }, + "markdownDescription": "The map of substitution variable names to their values used in a check expression\\. Variable names should start with a ':' \\(colon\\)\\. Variable values can either be actual values or column names\\. To differentiate between the two, column names should be enclosed in backticks, for example, `\":col1\": \"`Column A`\".` \n*Required*: No \n*Type*: List of [SubstitutionValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-substitutionvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubstitutionMap", "type": "array" }, "Threshold": { - "$ref": "#/definitions/AWS::DataBrew::Ruleset.Threshold" + "$ref": "#/definitions/AWS::DataBrew::Ruleset.Threshold", + "markdownDescription": "The threshold used with a non\\-aggregate check expression\\. Non\\-aggregate check expressions will be applied to each row in a specific column, and the threshold will be used to determine whether the validation succeeds\\. \n*Required*: No \n*Type*: [Threshold](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-threshold.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Threshold" } }, "required": [ @@ -38987,9 +47930,13 @@ "additionalProperties": false, "properties": { "Value": { + "markdownDescription": "Value or column name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" }, "ValueReference": { + "markdownDescription": "Variable name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValueReference", "type": "string" } }, @@ -39003,12 +47950,18 @@ "additionalProperties": false, "properties": { "Type": { + "markdownDescription": "The type of a threshold\\. Used for comparison of an actual count of rows that satisfy the rule to the threshold value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" }, "Unit": { + "markdownDescription": "Unit of threshold value\\. Can be either a COUNT or PERCENTAGE of the full sample size used for validation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", "type": "string" }, "Value": { + "markdownDescription": "The value of a threshold\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "number" } }, @@ -39053,21 +48006,29 @@ "additionalProperties": false, "properties": { "CronExpression": { + "markdownDescription": "The dates and times when the job is to run\\. For more information, see [Cron expressions](https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html) in the * AWS Glue DataBrew Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CronExpression", "type": "string" }, "JobNames": { "items": { "type": "string" }, + "markdownDescription": "A list of jobs to be run, according to the schedule\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobNames", "type": "array" }, "Name": { + "markdownDescription": "The name of the schedule\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Metadata tags that have been applied to the schedule\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -39134,36 +48095,50 @@ "additionalProperties": false, "properties": { "Activate": { + "markdownDescription": "Indicates whether to validate and start the pipeline or stop an active pipeline\\. By default, the value is set to `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Activate", "type": "boolean" }, "Description": { + "markdownDescription": "A description of the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name of the pipeline\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "ParameterObjects": { "items": { "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterObject" }, + "markdownDescription": "The parameter objects used with the pipeline\\. \n*Required*: Yes \n*Type*: List of [ParameterObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterObjects", "type": "array" }, "ParameterValues": { "items": { "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterValue" }, + "markdownDescription": "The parameter values used with the pipeline\\. \n*Required*: No \n*Type*: List of [ParameterValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parametervalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterValues", "type": "array" }, "PipelineObjects": { "items": { "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineObject" }, + "markdownDescription": "The objects that define the pipeline\\. These objects overwrite the existing pipeline definition\\. Not all objects, fields, and values can be updated\\. For information about restrictions, see [Editing Your Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-manage-pipeline-modify-console.html) in the *AWS Data Pipeline Developer Guide*\\. \n*Required*: No \n*Type*: List of [PipelineObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PipelineObjects", "type": "array" }, "PipelineTags": { "items": { "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineTag" }, + "markdownDescription": "A list of arbitrary tags \\(key\\-value pairs\\) to associate with the pipeline, which you can use to control permissions\\. For more information, see [Controlling Access to Pipelines and Resources](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-control-access.html) in the *AWS Data Pipeline Developer Guide*\\. \n*Required*: No \n*Type*: List of [PipelineTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelinetags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PipelineTags", "type": "array" } }, @@ -39197,12 +48172,18 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "Specifies the name of a field for a particular object\\. To view valid values for a particular field, see [Pipeline Object Reference](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-pipeline-objects.html) in the *AWS Data Pipeline Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "RefValue": { + "markdownDescription": "A field value that you specify as an identifier of another object in the same pipeline definition\\. \nYou can specify the field value as either a string value \\(`StringValue`\\) or a reference to another object \\(`RefValue`\\), but not both\\.\nRequired if the key that you are using requires it\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RefValue", "type": "string" }, "StringValue": { + "markdownDescription": "A field value that you specify as a string\\. To view valid values for a particular field, see [Pipeline Object Reference](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-pipeline-objects.html) in the *AWS Data Pipeline Developer Guide*\\. \nYou can specify the field value as either a string value \\(`StringValue`\\) or a reference to another object \\(`RefValue`\\), but not both\\.\nRequired if the key that you are using requires it\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10240` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StringValue", "type": "string" } }, @@ -39215,9 +48196,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The field identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "StringValue": { + "markdownDescription": "The field value, expressed as a String\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10240` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StringValue", "type": "string" } }, @@ -39234,9 +48219,13 @@ "items": { "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterAttribute" }, + "markdownDescription": "The attributes of the parameter object\\. \n*Required*: Yes \n*Type*: List of [ParameterAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects-attributes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attributes", "type": "array" }, "Id": { + "markdownDescription": "The ID of the parameter object\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" } }, @@ -39250,9 +48239,13 @@ "additionalProperties": false, "properties": { "Id": { + "markdownDescription": "The ID of the parameter value\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "StringValue": { + "markdownDescription": "The field value, expressed as a String\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10240` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StringValue", "type": "string" } }, @@ -39269,12 +48262,18 @@ "items": { "$ref": "#/definitions/AWS::DataPipeline::Pipeline.Field" }, + "markdownDescription": "Key\\-value pairs that define the properties of the object\\. \n*Required*: Yes \n*Type*: List of [Field](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects-fields.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Fields", "type": "array" }, "Id": { + "markdownDescription": "The ID of the object\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "Name": { + "markdownDescription": "The name of the object\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -39289,9 +48288,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The key name of a tag\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The value to associate with the key name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -39337,36 +48340,45 @@ "additionalProperties": false, "properties": { "ActivationKey": { + "markdownDescription": "Your agent activation key\\. You can get the activation key either by sending an HTTP GET request with redirects that enable you to get the agent IP address \\(port 80\\)\\. Alternatively, you can get it from the DataSync console\\. \nThe redirect URL returned in the response provides you the activation key for your agent in the query string parameter `activationKey`\\. It might also include other activation\\-related parameters; however, these are merely defaults\\. The arguments you pass to this API call determine the actual configuration of your agent\\. \nFor more information, see [Creating and activating an agent](https://docs.aws.amazon.com/datasync/latest/userguide/activating-agent.html) in the * AWS DataSync User Guide\\.* \n*Required*: Yes \n*Type*: String \n*Maximum*: `29` \n*Pattern*: `[A-Z0-9]{5}(-[A-Z0-9]{5}){4}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ActivationKey", "type": "string" }, "AgentName": { + "markdownDescription": "The name you configured for your agent\\. This value is a text reference that is used to identify the agent in the console\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[a-zA-Z0-9\\s+=._:@/-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AgentName", "type": "string" }, "SecurityGroupArns": { "items": { "type": "string" }, + "markdownDescription": "The Amazon Resource Names \\(ARNs\\) of the security groups used to protect your data transfer task subnets\\. See [SecurityGroupArns](https://docs.aws.amazon.com/datasync/latest/userguide/API_Ec2Config.html#DataSync-Type-Ec2Config-SecurityGroupArns)\\. \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/.*$` \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroupArns", "type": "array" }, "SubnetArns": { "items": { "type": "string" }, + "markdownDescription": "The Amazon Resource Names \\(ARNs\\) of the subnets in which DataSync will create elastic network interfaces for each data transfer task\\. The agent that runs a task must be private\\. When you start a task that is associated with an agent created in a VPC, or one that has access to an IP address in a VPC, then the task is also private\\. In this case, DataSync creates four network interfaces for each task in your subnet\\. For a data transfer to work, the agent must be able to route to all these four network interfaces\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetArns", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The key\\-value pair that represents the tag that you want to associate with the agent\\. The value can be an empty string\\. This value helps you manage, filter, and search for your agents\\. \nValid characters for key and value are letters, spaces, and numbers representable in UTF\\-8 format, and the following special characters: \\+ \\- = \\. \\_ : / @\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VpcEndpointId": { + "markdownDescription": "The ID of the virtual private cloud \\(VPC\\) endpoint that the agent has access to\\. This is the client\\-side VPC endpoint, powered by AWS PrivateLink\\. If you don't have an AWS PrivateLink VPC endpoint, see [AWS PrivateLink and VPC endpoints](https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-overview.html) in the *Amazon VPC User Guide*\\. \nFor more information about activating your agent in a private network based on a VPC, see [Using AWS DataSync in a Virtual Private Cloud](https://docs.aws.amazon.com/datasync/latest/userguide/datasync-in-vpc.html) in the *AWS DataSync User Guide\\.* \nA VPC endpoint ID looks like this: `vpce-01234d5aff67890e1`\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^vpce-[0-9a-f]{17}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcEndpointId", "type": "string" } }, - "required": [ - "ActivationKey" - ], "type": "object" }, "Type": { @@ -39385,8 +48397,7 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -39429,9 +48440,13 @@ "type": "string" }, "Ec2Config": { - "$ref": "#/definitions/AWS::DataSync::LocationEFS.Ec2Config" + "$ref": "#/definitions/AWS::DataSync::LocationEFS.Ec2Config", + "markdownDescription": "The subnet and security group that the Amazon EFS file system uses\\. The security group that you provide needs to be able to communicate with the security group on the mount target in the subnet specified\\. \nThe exact relationship between security group M \\(of the mount target\\) and security group S \\(which you provide for DataSync to use at this stage\\) is as follows: \n+ Security group M \\(which you associate with the mount target\\) must allow inbound access for the Transmission Control Protocol \\(TCP\\) on the NFS port \\(2049\\) from security group S\\. You can enable inbound connections either by IP address \\(CIDR range\\) or security group\\. \n+ Security group S \\(provided to DataSync to access EFS\\) should have a rule that enables outbound connections to the NFS port on one of the file system\u2019s mount targets\\. You can enable outbound connections either by IP address \\(CIDR range\\) or security group\\.", + "title": "Ec2Config" }, "EfsFilesystemArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the Amazon EFS file system\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):elasticfilesystem:[a-z\\-0-9]*:[0-9]{12}:file-system/fs-.*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EfsFilesystemArn", "type": "string" }, "FileSystemAccessRoleArn": { @@ -39441,12 +48456,16 @@ "type": "string" }, "Subdirectory": { + "markdownDescription": "A subdirectory in the location\u2019s path\\. This subdirectory in the EFS file system is used to read data from the EFS source location or write data to the EFS destination\\. By default, AWS DataSync uses the root directory\\. \n `Subdirectory` must be specified with forward slashes\\. For example, `/path/to/folder`\\.\n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\p{Zs}]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subdirectory", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The key\\-value pair that represents a tag that you want to add to the resource\\. The value can be an empty string\\. This value helps you manage, filter, and search for your resources\\. We recommend that you create a name tag for your location\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -39483,9 +48502,13 @@ "items": { "type": "string" }, + "markdownDescription": "The Amazon Resource Names \\(ARNs\\) of the security groups that are configured for the Amazon EC2 resource\\. \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/.*$` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroupArns", "type": "array" }, "SubnetArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the subnet that DataSync uses to access the target EFS file system\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:subnet/.*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetArn", "type": "string" } }, @@ -39531,21 +48554,29 @@ "additionalProperties": false, "properties": { "FsxFilesystemArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the FSx for Lustre file system\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):fsx:[a-z\\-0-9]*:[0-9]{12}:file-system/fs-.*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FsxFilesystemArn", "type": "string" }, "SecurityGroupArns": { "items": { "type": "string" }, + "markdownDescription": "The ARNs of the security groups that are used to configure the FSx for Lustre file system\\. \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/.*$` \n*Length constraints*: Maximum length of 128\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroupArns", "type": "array" }, "Subdirectory": { + "markdownDescription": "A subdirectory in the location's path\\. This subdirectory in the FSx for Lustre file system is used to read data from the FSx for Lustre source location or write data to the FSx for Lustre destination\\. \n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\$\\p{Zs}]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subdirectory", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The key\\-value pair that represents a tag that you want to add to the resource\\. The value can be an empty string\\. This value helps you manage, filter, and search for your resources\\. We recommend that you create a name tag for your location\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -39633,7 +48664,6 @@ } }, "required": [ - "Protocol", "SecurityGroupArns", "StorageVirtualMachineArn" ], @@ -39783,7 +48813,6 @@ } }, "required": [ - "FsxFilesystemArn", "Protocol", "SecurityGroupArns" ], @@ -39876,30 +48905,44 @@ "additionalProperties": false, "properties": { "Domain": { + "markdownDescription": "The name of the Windows domain that the FSx for Windows File Server belongs to\\. \n*Required*: No \n*Type*: String \n*Maximum*: `253` \n*Pattern*: `^([A-Za-z0-9]+[A-Za-z0-9-.]*)*[A-Za-z0-9-]*[A-Za-z0-9]$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Domain", "type": "string" }, "FsxFilesystemArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the FSx for Windows File Server file system\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):fsx:[a-z\\-0-9]*:[0-9]{12}:file-system/fs-.*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FsxFilesystemArn", "type": "string" }, "Password": { + "markdownDescription": "The password of the user who has the permissions to access files and folders in the FSx for Windows File Server file system\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `104` \n*Pattern*: `^.{0,104}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Password", "type": "string" }, "SecurityGroupArns": { "items": { "type": "string" }, + "markdownDescription": "The Amazon Resource Names \\(ARNs\\) of the security groups that are used to configure the FSx for Windows File Server file system\\. \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/.*$` \n*Length constraints*: Maximum length of 128\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroupArns", "type": "array" }, "Subdirectory": { + "markdownDescription": "A subdirectory in the location's path\\. This subdirectory in the Amazon FSx for Windows File Server file system is used to read data from the Amazon FSx for Windows File Server source location or write data to the FSx for Windows File Server destination\\. \n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\$\\p{Zs}]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subdirectory", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The key\\-value pair that represents a tag that you want to add to the resource\\. The value can be an empty string\\. This value helps you manage, filter, and search for your resources\\. We recommend that you create a name tag for your location\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "User": { + "markdownDescription": "The user who has the permissions to access files and folders in the FSx for Windows File Server file system\\. \nFor information about choosing a user name that ensures sufficient permissions to files, folders, and metadata, see [user](https://docs.aws.amazon.com/datasync/latest/userguide/create-fsx-location.html#FSxWuser)\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `104` \n*Pattern*: `^[^\\x5B\\x5D\\\\/:;|=,+*?]{1,104}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "User", "type": "string" } }, @@ -39969,48 +49012,74 @@ "items": { "type": "string" }, + "markdownDescription": "The Amazon Resource Names \\(ARNs\\) of the agents that are used to connect to the HDFS cluster\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AgentArns", "type": "array" }, "AuthenticationType": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticationType", "type": "string" }, "BlockSize": { + "markdownDescription": "The size of data blocks to write into the HDFS cluster\\. The block size must be a multiple of 512 bytes\\. The default block size is 128 mebibytes \\(MiB\\)\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1048576` \n*Maximum*: `1073741824` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockSize", "type": "number" }, "KerberosKeytab": { + "markdownDescription": "The Kerberos key table \\(keytab\\) that contains mappings between the defined Kerberos principal and the encrypted keys\\. Provide the base64\\-encoded file text\\. If `KERBEROS` is specified for `AuthType`, this value is required\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KerberosKeytab", "type": "string" }, "KerberosKrb5Conf": { + "markdownDescription": "The `krb5.conf` file that contains the Kerberos configuration information\\. You can load the `krb5.conf` by providing a string of the file's contents or an Amazon S3 presigned URL of the file\\. If`KERBEROS` is specified for `AuthType`, this value is required\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KerberosKrb5Conf", "type": "string" }, "KerberosPrincipal": { + "markdownDescription": "The Kerberos principal with access to the files and folders on the HDFS cluster\\. \nIf `KERBEROS` is specified for `AuthenticationType`, this parameter is required\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KerberosPrincipal", "type": "string" }, "KmsKeyProviderUri": { + "markdownDescription": "The URI of the HDFS cluster's Key Management Server \\(KMS\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^kms:\\/\\/http[s]?@(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9])(;(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9]))*:[0-9]{1,5}\\/kms$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyProviderUri", "type": "string" }, "NameNodes": { "items": { "$ref": "#/definitions/AWS::DataSync::LocationHDFS.NameNode" }, + "markdownDescription": "The NameNode that manages the HDFS namespace\\. The NameNode performs operations such as opening, closing, and renaming files and directories\\. The NameNode contains the information to map blocks of data to the DataNodes\\. You can use only one NameNode\\. \n*Required*: Yes \n*Type*: List of [NameNode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationhdfs-namenode.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NameNodes", "type": "array" }, "QopConfiguration": { - "$ref": "#/definitions/AWS::DataSync::LocationHDFS.QopConfiguration" + "$ref": "#/definitions/AWS::DataSync::LocationHDFS.QopConfiguration", + "markdownDescription": "The Quality of Protection \\(QOP\\) configuration specifies the Remote Procedure Call \\(RPC\\) and data transfer protection settings configured on the Hadoop Distributed File System \\(HDFS\\) cluster\\. If `QopConfiguration` isn't specified, `RpcProtection` and `DataTransferProtection` default to `PRIVACY`\\. If you set `RpcProtection` or `DataTransferProtection`, the other parameter assumes the same value\\. \n*Required*: No \n*Type*: [QopConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationhdfs-qopconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QopConfiguration" }, "ReplicationFactor": { + "markdownDescription": "The number of DataNodes to replicate the data to when writing to the HDFS cluster\\. By default, data is replicated to three DataNodes\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationFactor", "type": "number" }, "SimpleUser": { + "markdownDescription": "The user name used to identify the client on the host operating system\\. \nIf `SIMPLE` is specified for `AuthenticationType`, this parameter is required\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[_.A-Za-z0-9][-_.A-Za-z0-9]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SimpleUser", "type": "string" }, "Subdirectory": { + "markdownDescription": "A subdirectory in the HDFS cluster\\. This subdirectory is used to read data from or write data to the HDFS cluster\\. If the subdirectory isn't specified, it will default to `/`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\$\\p{Zs}]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subdirectory", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The key\\-value pair that represents the tag that you want to add to the location\\. The value can be an empty string\\. We recommend using tags to name your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -40046,9 +49115,13 @@ "additionalProperties": false, "properties": { "Hostname": { + "markdownDescription": "The hostname of the NameNode in the HDFS cluster\\. This value is the IP address or Domain Name Service \\(DNS\\) name of the NameNode\\. An agent that's installed on\\-premises uses this hostname to communicate with the NameNode in the network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9])$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Hostname", "type": "string" }, "Port": { + "markdownDescription": "The port that the NameNode uses to listen to client requests\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65536` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" } }, @@ -40062,9 +49135,13 @@ "additionalProperties": false, "properties": { "DataTransferProtection": { + "markdownDescription": "The data transfer protection setting configured on the HDFS cluster\\. This setting corresponds to your `dfs.data.transfer.protection` setting in the `hdfs-site.xml` file on your Hadoop cluster\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUTHENTICATION | DISABLED | INTEGRITY | PRIVACY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataTransferProtection", "type": "string" }, "RpcProtection": { + "markdownDescription": "The Remote Procedure Call \\(RPC\\) protection setting configured on the HDFS cluster\\. This setting corresponds to your `hadoop.rpc.protection` setting in your `core-site.xml` file on your Hadoop cluster\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUTHENTICATION | DISABLED | INTEGRITY | PRIVACY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RpcProtection", "type": "string" } }, @@ -40106,21 +49183,31 @@ "additionalProperties": false, "properties": { "MountOptions": { - "$ref": "#/definitions/AWS::DataSync::LocationNFS.MountOptions" + "$ref": "#/definitions/AWS::DataSync::LocationNFS.MountOptions", + "markdownDescription": "The NFS mount options that DataSync can use to mount your NFS share\\. \n*Required*: No \n*Type*: [MountOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationnfs-mountoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MountOptions" }, "OnPremConfig": { - "$ref": "#/definitions/AWS::DataSync::LocationNFS.OnPremConfig" + "$ref": "#/definitions/AWS::DataSync::LocationNFS.OnPremConfig", + "markdownDescription": "Contains a list of Amazon Resource Names \\(ARNs\\) of agents that are used to connect to an NFS server\\. \nIf you are copying data to or from your AWS Snowcone device, see [NFS Server on AWS Snowcone](https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone) for more information\\. \n*Required*: Yes \n*Type*: [OnPremConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationnfs-onpremconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnPremConfig" }, "ServerHostname": { + "markdownDescription": "The name of the NFS server\\. This value is the IP address or Domain Name Service \\(DNS\\) name of the NFS server\\. An agent that is installed on\\-premises uses this host name to mount the NFS server in a network\\. \nIf you are copying data to or from your AWS Snowcone device, see [NFS Server on AWS Snowcone](https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone) for more information\\. \nThis name must either be DNS\\-compliant or must be an IP version 4 \\(IPv4\\) address\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `^(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9])$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServerHostname", "type": "string" }, "Subdirectory": { + "markdownDescription": "The subdirectory in the NFS file system that is used to read data from the NFS source location or write data to the NFS destination\\. The NFS path should be a path that's exported by the NFS server, or a subdirectory of that path\\. The path should be such that it can be mounted by other NFS clients in your network\\. \nTo see all the paths exported by your NFS server, run \"`showmount -e nfs-server-name`\" from an NFS client that has access to your server\\. You can specify any directory that appears in the results, and any subdirectory of that directory\\. Ensure that the NFS export is accessible without Kerberos authentication\\. \nTo transfer all the data in the folder you specified, DataSync needs to have permissions to read all the data\\. To ensure this, either configure the NFS export with `no_root_squash,` or ensure that the permissions for all of the files that you want DataSync allow read access for all users\\. Doing either enables the agent to read the files\\. For the agent to access directories, you must additionally enable all execute access\\. \nIf you are copying data to or from your AWS Snowcone device, see [NFS Server on AWS Snowcone](https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone) for more information\\. \nFor information about NFS export configuration, see [18\\.7\\. The /etc/exports Configuration File](http://web.mit.edu/rhel-doc/5/RHEL-5-manual/Deployment_Guide-en-US/s1-nfs-server-config-exports.html) in the Red Hat Enterprise Linux documentation\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\p{Zs}]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subdirectory", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The key\\-value pair that represents the tag that you want to add to the location\\. The value can be an empty string\\. We recommend using tags to name your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -40154,6 +49241,8 @@ "additionalProperties": false, "properties": { "Version": { + "markdownDescription": "The specific NFS version that you want DataSync to use to mount your NFS share\\. If the server refuses to use the version specified, the sync will fail\\. If you don't specify a version, DataSync defaults to `AUTOMATIC`\\. That is, DataSync automatically selects a version based on negotiation with the NFS server\\. \nYou can specify the following NFS versions: \n+ ** [NFSv3](https://tools.ietf.org/html/rfc1813) ** \\- stateless protocol version that allows for asynchronous writes on the server\\.\n+ ** [NFSv4\\.0](https://tools.ietf.org/html/rfc3530) ** \\- stateful, firewall\\-friendly protocol version that supports delegations and pseudo file systems\\.\n+ ** [NFSv4\\.1](https://tools.ietf.org/html/rfc5661) ** \\- stateful protocol version that supports sessions, directory delegations, and parallel data processing\\. Version 4\\.1 also includes all features available in version 4\\.0\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `AUTOMATIC | NFS3 | NFS4_0 | NFS4_1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -40166,6 +49255,8 @@ "items": { "type": "string" }, + "markdownDescription": "ARNs of the agents to use for an NFS location\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AgentArns", "type": "array" } }, @@ -40210,36 +49301,57 @@ "additionalProperties": false, "properties": { "AccessKey": { + "markdownDescription": "Optional\\. The access key is used if credentials are required to access the self\\-managed object storage server\\. If your object storage requires a user name and password to authenticate, use `AccessKey` and `SecretKey` to provide the user name and password, respectively\\. \n*Required*: No \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `200` \n*Pattern*: `^.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessKey", "type": "string" }, "AgentArns": { "items": { "type": "string" }, + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the agents associated with the self\\-managed object storage server location\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AgentArns", "type": "array" }, "BucketName": { + "markdownDescription": "The bucket on the self\\-managed object storage server that is used to read data from\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\$\\p{Zs}]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketName", "type": "string" }, "SecretKey": { + "markdownDescription": "Optional\\. The secret key is used if credentials are required to access the self\\-managed object storage server\\. If your object storage requires a user name and password to authenticate, use `AccessKey` and `SecretKey` to provide the user name and password, respectively\\. \n*Required*: No \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `200` \n*Pattern*: `^.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretKey", + "type": "string" + }, + "ServerCertificate": { "type": "string" }, "ServerHostname": { + "markdownDescription": "The name of the self\\-managed object storage server\\. This value is the IP address or Domain Name Service \\(DNS\\) name of the object storage server\\. An agent uses this host name to mount the object storage server in a network\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `^(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9])$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServerHostname", "type": "string" }, "ServerPort": { + "markdownDescription": "The port that your self\\-managed object storage server accepts inbound network traffic on\\. The server port is set by default to TCP 80 \\(HTTP\\) or TCP 443 \\(HTTPS\\)\\. You can specify a custom port if your self\\-managed object storage server requires one\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65536` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerPort", "type": "number" }, "ServerProtocol": { + "markdownDescription": "The protocol that the object storage server uses to communicate\\. Valid values are HTTP or HTTPS\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `HTTP | HTTPS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerProtocol", "type": "string" }, "Subdirectory": { + "markdownDescription": "The subdirectory in the self\\-managed object storage server that is used to read data from\\. \n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\p{Zs}]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subdirectory", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The key\\-value pair that represents the tag that you want to add to the location\\. The value can be an empty string\\. We recommend using tags to name your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -40305,26 +49417,35 @@ "additionalProperties": false, "properties": { "S3BucketArn": { + "markdownDescription": "The ARN of the Amazon S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `156` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):(s3|s3-outposts):[a-z\\-0-9]*:[0-9]*:.*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3BucketArn", "type": "string" }, "S3Config": { - "$ref": "#/definitions/AWS::DataSync::LocationS3.S3Config" + "$ref": "#/definitions/AWS::DataSync::LocationS3.S3Config", + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Identity and Access Management \\(IAM\\) role that is used to access an Amazon S3 bucket\\. \nFor detailed information about using such a role, see [Creating a Location for Amazon S3](https://docs.aws.amazon.com/datasync/latest/userguide/working-with-locations.html#create-s3-location) in the *AWS DataSync User Guide*\\. \n*Required*: Yes \n*Type*: [S3Config](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locations3-s3config.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Config" }, "S3StorageClass": { + "markdownDescription": "The Amazon S3 storage class that you want to store your files in when this location is used as a task destination\\. For buckets in AWS Regions, the storage class defaults to S3 Standard\\. \nFor more information about S3 storage classes, see [Amazon S3 Storage Classes](http://aws.amazon.com/s3/storage-classes/)\\. Some storage classes have behaviors that can affect your S3 storage costs\\. For detailed information, see [Considerations When Working with Amazon S3 Storage Classes in DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DEEP_ARCHIVE | GLACIER | INTELLIGENT_TIERING | ONEZONE_IA | OUTPOSTS | STANDARD | STANDARD_IA` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3StorageClass", "type": "string" }, "Subdirectory": { + "markdownDescription": "A subdirectory in the Amazon S3 bucket\\. This subdirectory in Amazon S3 is used to read data from the S3 source location or write data to the S3 destination\\. \n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\p{Zs}]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subdirectory", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The key\\-value pair that represents the tag that you want to add to the location\\. The value can be an empty string\\. We recommend using tags to name your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, "required": [ - "S3BucketArn", "S3Config" ], "type": "object" @@ -40354,6 +49475,8 @@ "additionalProperties": false, "properties": { "BucketAccessRoleArn": { + "markdownDescription": "The ARN of the IAM role for accessing the S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketAccessRoleArn", "type": "string" } }, @@ -40401,30 +49524,46 @@ "items": { "type": "string" }, + "markdownDescription": "The Amazon Resource Names \\(ARNs\\) of agents to use for a Server Message Block \\(SMB\\) location\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AgentArns", "type": "array" }, "Domain": { + "markdownDescription": "The name of the Windows domain that the SMB server belongs to\\. \n*Required*: No \n*Type*: String \n*Maximum*: `253` \n*Pattern*: `^([A-Za-z0-9]+[A-Za-z0-9-.]*)*[A-Za-z0-9-]*[A-Za-z0-9]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Domain", "type": "string" }, "MountOptions": { - "$ref": "#/definitions/AWS::DataSync::LocationSMB.MountOptions" + "$ref": "#/definitions/AWS::DataSync::LocationSMB.MountOptions", + "markdownDescription": "The mount options used by DataSync to access the SMB server\\. \n*Required*: No \n*Type*: [MountOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationsmb-mountoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MountOptions" }, "Password": { + "markdownDescription": "The password of the user who can mount the share and has the permissions to access files and folders in the SMB share\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `104` \n*Pattern*: `^.{0,104}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", "type": "string" }, "ServerHostname": { + "markdownDescription": "The name of the SMB server\\. This value is the IP address or Domain Name Service \\(DNS\\) name of the SMB server\\. An agent that is installed on\\-premises uses this hostname to mount the SMB server in a network\\. \nThis name must either be DNS\\-compliant or must be an IP version 4 \\(IPv4\\) address\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `^(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9])$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServerHostname", "type": "string" }, "Subdirectory": { + "markdownDescription": "The subdirectory in the SMB file system that is used to read data from the SMB source location or write data to the SMB destination\\. The SMB path should be a path that's exported by the SMB server, or a subdirectory of that path\\. The path should be such that it can be mounted by other SMB clients in your network\\. \n `Subdirectory` must be specified with forward slashes\\. For example, `/path/to/folder`\\.\nTo transfer all the data in the folder you specified, DataSync must have permissions to mount the SMB share, as well as to access all the data in that share\\. To ensure this, either make sure that the user name and password specified belongs to the user who can mount the share, and who has the appropriate permissions for all of the files and directories that you want DataSync to access, or use credentials of a member of the Backup Operators group to mount the share\\. Doing either one enables the agent to access the data\\. For the agent to access directories, you must additionally enable all execute access\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\$\\p{Zs}]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subdirectory", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The key\\-value pair that represents the tag that you want to add to the location\\. The value can be an empty string\\. We recommend using tags to name your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "User": { + "markdownDescription": "The user who can mount the share and has the permissions to access files and folders in the SMB share\\. \nFor information about choosing a user name that ensures sufficient permissions to files, folders, and metadata, see [user](https://docs.aws.amazon.com/datasync/latest/userguide/create-smb-location.html#SMBuser)\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `104` \n*Pattern*: `^[^\\x5B\\x5D\\\\/:;|=,+*?]{1,104}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "User", "type": "string" } }, @@ -40459,6 +49598,8 @@ "additionalProperties": false, "properties": { "Version": { + "markdownDescription": "The specific SMB version that you want DataSync to use to mount your SMB share\\. If you don't specify a version, DataSync defaults to `AUTOMATIC`\\. That is, DataSync automatically selects a version based on negotiation with the SMB server\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUTOMATIC | SMB2 | SMB3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -40500,39 +49641,57 @@ "additionalProperties": false, "properties": { "CloudWatchLogGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon CloudWatch log group that is used to monitor and log events in the task\\. \nFor more information about how to use CloudWatch Logs with DataSync, see [Monitoring Your Task](https://docs.aws.amazon.com/datasync/latest/userguide/monitor-datasync.html#cloudwatchlogs) in the * AWS DataSync User Guide\\.* \nFor more information about these groups, see [Working with Log Groups and Log Streams](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) in the *Amazon CloudWatch Logs User Guide*\\. \n*Required*: No \n*Type*: String \n*Maximum*: `562` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):logs:[a-z\\-0-9]*:[0-9]{12}:log-group:([^:\\*]*)(:\\*)?$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogGroupArn", "type": "string" }, "DestinationLocationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS storage resource's location\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationLocationArn", "type": "string" }, "Excludes": { "items": { "$ref": "#/definitions/AWS::DataSync::Task.FilterRule" }, + "markdownDescription": "A list of filter rules that determines which files to exclude from a task\\. The list should contain a single filter string that consists of the patterns to exclude\\. The patterns are delimited by \"\\|\" \\(that is, a pipe\\), for example, `\"/folder1|/folder2\"`\\. \n \n*Required*: No \n*Type*: List of [FilterRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-filterrule.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Excludes", "type": "array" }, "Includes": { "items": { "$ref": "#/definitions/AWS::DataSync::Task.FilterRule" }, + "markdownDescription": "A list of filter rules that determines which files to include when running a task\\. The pattern contains a single filter string that consists of the patterns to include\\. The patterns are delimited by \"\\|\" \\(that is, a pipe\\), for example, `\"/folder1|/folder2\"`\\. \n*Required*: No \n*Type*: List of [FilterRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-filterrule.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Includes", "type": "array" }, "Name": { + "markdownDescription": "The name of a task\\. This value is a text reference that is used to identify the task in the console\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[a-zA-Z0-9\\s+=._:@/-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Options": { - "$ref": "#/definitions/AWS::DataSync::Task.Options" + "$ref": "#/definitions/AWS::DataSync::Task.Options", + "markdownDescription": "The set of configuration options that control the behavior of a single execution of the task that occurs when you call `StartTaskExecution`\\. You can configure these options to preserve metadata such as user ID \\(UID\\) and group ID \\(GID\\), file permissions, data integrity verification, and so on\\. \nFor each individual task execution, you can override these options by specifying the `OverrideOptions` before starting the task execution\\. For more information, see the [StartTaskExecution](https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html) operation\\. \n*Required*: No \n*Type*: [Options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-options.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Options" }, "Schedule": { - "$ref": "#/definitions/AWS::DataSync::Task.TaskSchedule" + "$ref": "#/definitions/AWS::DataSync::Task.TaskSchedule", + "markdownDescription": "Specifies a schedule used to periodically transfer files from a source to a destination location\\. The schedule should be specified in UTC time\\. For more information, see [Scheduling your task](https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html)\\. \n*Required*: No \n*Type*: [TaskSchedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-taskschedule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule" }, "SourceLocationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the source location for the task\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceLocationArn", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The key\\-value pair that represents the tag that you want to add to the resource\\. The value can be an empty string\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -40567,9 +49726,13 @@ "additionalProperties": false, "properties": { "FilterType": { + "markdownDescription": "The type of filter rule to apply\\. AWS DataSync only supports the SIMPLE\\_PATTERN rule type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `SIMPLE_PATTERN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterType", "type": "string" }, "Value": { + "markdownDescription": "A single filter string that consists of the patterns to include or exclude\\. The patterns are delimited by \"\\|\" \\(that is, a pipe\\), for example: `/folder1|/folder2` \n \n*Required*: No \n*Type*: String \n*Maximum*: `409600` \n*Pattern*: `^[^\\x00]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -40579,48 +49742,76 @@ "additionalProperties": false, "properties": { "Atime": { + "markdownDescription": "A file metadata value that shows the last time that a file was accessed \\(that is, when the file was read or written to\\)\\. If you set `Atime` to `BEST_EFFORT`, AWS DataSync attempts to preserve the original `Atime` attribute on all source files \\(that is, the version before the PREPARING phase\\)\\. However, `Atime`'s behavior is not fully standard across platforms, so AWS DataSync can only do this on a best\\-effort basis\\. \nDefault value: `BEST_EFFORT` \n`BEST_EFFORT`: Attempt to preserve the per\\-file `Atime` value \\(recommended\\)\\. \n`NONE`: Ignore `Atime`\\. \nIf `Atime` is set to `BEST_EFFORT`, `Mtime` must be set to `PRESERVE`\\. \nIf `Atime` is set to `NONE`, `Mtime` must also be `NONE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BEST_EFFORT | NONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Atime", "type": "string" }, "BytesPerSecond": { + "markdownDescription": "A value that limits the bandwidth used by AWS DataSync\\. For example, if you want AWS DataSync to use a maximum of 1 MB, set this value to `1048576` \\(=1024\\*1024\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BytesPerSecond", "type": "number" }, "Gid": { + "markdownDescription": "The group ID \\(GID\\) of the file's owners\\. \nDefault value: `INT_VALUE` \n`INT_VALUE`: Preserve the integer value of the user ID \\(UID\\) and group ID \\(GID\\) \\(recommended\\)\\. \n`NAME`: Currently not supported\\. \n`NONE`: Ignore the UID and GID\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BOTH | INT_VALUE | NAME | NONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Gid", "type": "string" }, "LogLevel": { + "markdownDescription": "A value that determines the type of logs that DataSync publishes to a log stream in the Amazon CloudWatch log group that you provide\\. For more information about providing a log group for DataSync, see [CloudWatchLogGroupArn](https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateTask.html#DataSync-CreateTask-request-CloudWatchLogGroupArn)\\. If set to `OFF`, no logs are published\\. `BASIC` publishes logs on errors for individual files transferred, and `TRANSFER` publishes logs for every file or object that is transferred and integrity checked\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BASIC | OFF | TRANSFER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogLevel", "type": "string" }, "Mtime": { + "markdownDescription": "A value that indicates the last time that a file was modified \\(that is, a file was written to\\) before the PREPARING phase\\. This option is required for cases when you need to run the same task more than one time\\. \nDefault value: `PRESERVE` \n`PRESERVE`: Preserve original `Mtime` \\(recommended\\) \n `NONE`: Ignore `Mtime`\\. \nIf `Mtime` is set to `PRESERVE`, `Atime` must be set to `BEST_EFFORT`\\. \nIf `Mtime` is set to `NONE`, `Atime` must also be set to `NONE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | PRESERVE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mtime", "type": "string" }, "ObjectTags": { "type": "string" }, "OverwriteMode": { + "markdownDescription": "A value that determines whether files at the destination should be overwritten or preserved when copying files\\. If set to `NEVER` a destination file will not be replaced by a source file, even if the destination file differs from the source file\\. If you modify files in the destination and you sync the files, you can use this value to protect against overwriting those changes\\. \nSome storage classes have specific behaviors that can affect your S3 storage cost\\. For detailed information, see [Considerations when working with Amazon S3 storage classes in DataSync ](https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes) in the * AWS DataSync User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ALWAYS | NEVER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OverwriteMode", "type": "string" }, "PosixPermissions": { + "markdownDescription": "A value that determines which users or groups can access a file for a specific purpose, such as reading, writing, or execution of the file\\. This option should be set only for Network File System \\(NFS\\), Amazon EFS, and Amazon S3 locations\\. For more information about what metadata is copied by DataSync, see [Metadata Copied by DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied)\\. \nDefault value: `PRESERVE` \n`PRESERVE`: Preserve POSIX\\-style permissions \\(recommended\\)\\. \n`NONE`: Ignore permissions\\. \n AWS DataSync can preserve extant permissions of a source location\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | PRESERVE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PosixPermissions", "type": "string" }, "PreserveDeletedFiles": { + "markdownDescription": "A value that specifies whether files in the destination that don't exist in the source file system are preserved\\. This option can affect your storage costs\\. If your task deletes objects, you might incur minimum storage duration charges for certain storage classes\\. For detailed information, see [Considerations when working with Amazon S3 storage classes in DataSync ](https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes) in the * AWS DataSync User Guide*\\. \nDefault value: `PRESERVE` \n`PRESERVE`: Ignore destination files that aren't present in the source \\(recommended\\)\\. \n`REMOVE`: Delete destination files that aren't present in the source\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PRESERVE | REMOVE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreserveDeletedFiles", "type": "string" }, "PreserveDevices": { + "markdownDescription": "A value that determines whether AWS DataSync should preserve the metadata of block and character devices in the source file system, and re\\-create the files with that device name and metadata on the destination\\. DataSync does not copy the contents of such devices, only the name and metadata\\. \n AWS DataSync can't sync the actual contents of such devices, because they are nonterminal and don't return an end\\-of\\-file \\(EOF\\) marker\\.\nDefault value: `NONE` \n`NONE`: Ignore special devices \\(recommended\\)\\. \n`PRESERVE`: Preserve character and block device metadata\\. This option isn't currently supported for Amazon EFS\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | PRESERVE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreserveDevices", "type": "string" }, "SecurityDescriptorCopyFlags": { + "markdownDescription": "A value that determines which components of the SMB security descriptor are copied from source to destination objects\\. \nThis value is only used for transfers between SMB and Amazon FSx for Windows File Server locations, or between two Amazon FSx for Windows File Server locations\\. For more information about how DataSync handles metadata, see [How DataSync Handles Metadata and Special Files](https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html)\\. \nDefault value: `OWNER_DACL` \n `OWNER_DACL`: For each copied object, DataSync copies the following metadata: \n+ Object owner\\.\n+ NTFS discretionary access control lists \\(DACLs\\), which determine whether to grant access to an object\\.\nWhen you use option, DataSync does NOT copy the NTFS system access control lists \\(SACLs\\), which are used by administrators to log attempts to access a secured object\\. \n `OWNER_DACL_SACL`: For each copied object, DataSync copies the following metadata: \n+ Object owner\\.\n+ NTFS discretionary access control lists \\(DACLs\\), which determine whether to grant access to an object\\.\n+ NTFS system access control lists \\(SACLs\\), which are used by administrators to log attempts to access a secured object\\.\nCopying SACLs requires granting additional permissions to the Windows user that DataSync uses to access your SMB location\\. For information about choosing a user that ensures sufficient permissions to files, folders, and metadata, see [user](https://docs.aws.amazon.com/datasync/latest/userguide/create-smb-location.html#SMBuser)\\. \n`NONE`: None of the SMB security descriptor components are copied\\. Destination objects are owned by the user that was provided for accessing the destination location\\. DACLs and SACLs are set based on the destination server\u2019s configuration\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | OWNER_DACL | OWNER_DACL_SACL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityDescriptorCopyFlags", "type": "string" }, "TaskQueueing": { + "markdownDescription": "A value that determines whether tasks should be queued before executing the tasks\\. If set to `ENABLED`, the tasks will be queued\\. The default is `ENABLED`\\. \nIf you use the same agent to run multiple tasks, you can enable the tasks to run in series\\. For more information, see [Queueing task executions](https://docs.aws.amazon.com/datasync/latest/userguide/run-task.html#queue-task-execution)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskQueueing", "type": "string" }, "TransferMode": { + "markdownDescription": "A value that determines whether DataSync transfers only the data and metadata that differ between the source and the destination location, or whether DataSync transfers all the content from the source, without comparing it to the destination location\\. \n`CHANGED`: DataSync copies only data or metadata that is new or different from the source location to the destination location\\. \n`ALL`: DataSync copies all source location content to the destination, without comparing it to existing content on the destination\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ALL | CHANGED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransferMode", "type": "string" }, "Uid": { + "markdownDescription": "The user ID \\(UID\\) of the file's owner\\. \nDefault value: `INT_VALUE` \n`INT_VALUE`: Preserve the integer value of the UID and group ID \\(GID\\) \\(recommended\\)\\. \n`NAME`: Currently not supported \n`NONE`: Ignore the UID and GID\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BOTH | INT_VALUE | NAME | NONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Uid", "type": "string" }, "VerifyMode": { + "markdownDescription": "A value that determines whether a data integrity verification is performed at the end of a task execution after all data and metadata have been transferred\\. For more information, see [Configure task settings](https://docs.aws.amazon.com/datasync/latest/userguide/create-task.html)\\. \nDefault value: `POINT_IN_TIME_CONSISTENT` \n`ONLY_FILES_TRANSFERRED` \\(recommended\\): Perform verification only on files that were transferred\\. \n`POINT_IN_TIME_CONSISTENT`: Scan the entire source and entire destination at the end of the transfer to verify that the source and destination are fully synchronized\\. This option isn't supported when transferring to S3 Glacier or S3 Glacier Deep Archive storage classes\\. \n`NONE`: No additional verification is done at the end of the transfer, but all data transmissions are integrity\\-checked with checksum verification during the transfer\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | ONLY_FILES_TRANSFERRED | POINT_IN_TIME_CONSISTENT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VerifyMode", "type": "string" } }, @@ -40630,6 +49821,8 @@ "additionalProperties": false, "properties": { "ScheduleExpression": { + "markdownDescription": "A cron expression that specifies when AWS DataSync initiates a scheduled transfer from a source to a destination location\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^[a-zA-Z0-9\\ \\_\\*\\?\\,\\|\\^\\-\\/\\#\\s\\(\\)\\+]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleExpression", "type": "string" } }, @@ -40677,6 +49870,8 @@ "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tag values to assign to the new behavior graph\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -40738,18 +49933,28 @@ "additionalProperties": false, "properties": { "DisableEmailNotification": { + "markdownDescription": "Whether to send an invitation email to the member account\\. If set to true, the member account does not receive an invitation email\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableEmailNotification", "type": "boolean" }, "GraphArn": { + "markdownDescription": "The ARN of the behavior graph to invite the account to contribute data to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GraphArn", "type": "string" }, "MemberEmailAddress": { + "markdownDescription": "The root user email address of the invited account\\. If the email address provided is not the root user email address for the provided account, the invitation creation fails\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MemberEmailAddress", "type": "string" }, "MemberId": { + "markdownDescription": "The AWS account identifier of the invited account \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MemberId", "type": "string" }, "Message": { + "markdownDescription": "Customized text to include in the invitation email message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Message", "type": "string" } }, @@ -40817,7 +50022,9 @@ "additionalProperties": false, "properties": { "Config": { - "$ref": "#/definitions/AWS::DevOpsGuru::NotificationChannel.NotificationChannelConfig" + "$ref": "#/definitions/AWS::DevOpsGuru::NotificationChannel.NotificationChannelConfig", + "markdownDescription": "A `NotificationChannelConfig` object that contains information about configured notification channels\\. \n*Required*: Yes \n*Type*: [NotificationChannelConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-notificationchannel-notificationchannelconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Config" } }, "required": [ @@ -40853,7 +50060,9 @@ "$ref": "#/definitions/AWS::DevOpsGuru::NotificationChannel.NotificationFilterConfig" }, "Sns": { - "$ref": "#/definitions/AWS::DevOpsGuru::NotificationChannel.SnsChannelConfig" + "$ref": "#/definitions/AWS::DevOpsGuru::NotificationChannel.SnsChannelConfig", + "markdownDescription": "Information about a notification channel configured in DevOps Guru to send notifications when insights are created\\. \nIf you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications\\. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account\\. DevOps Guru only supports standard SNS topics\\. For more information, see [Permissions for cross account Amazon SNS topics](https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html)\\. \nIf you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications\\. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account\\. For more information, see Permissions for cross account Amazon SNS topics\\. \nIf you use an Amazon SNS topic that is encrypted by an AWS Key Management Service customer\\-managed key \\(CMK\\), then you must add permissions to the CMK\\. For more information, see [Permissions for AWS KMS\u2013encrypted Amazon SNS topics](https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html)\\. \n*Required*: No \n*Type*: [SnsChannelConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-notificationchannel-snschannelconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Sns" } }, "type": "object" @@ -40880,6 +50089,8 @@ "additionalProperties": false, "properties": { "TopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an Amazon Simple Notification Service topic\\. \n*Required*: No \n*Type*: String \n*Minimum*: `36` \n*Maximum*: `1024` \n*Pattern*: `^arn:aws[a-z0-9-]*:sns:[a-z0-9-]+:\\d{12}:[^:]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TopicArn", "type": "string" } }, @@ -40921,7 +50132,9 @@ "additionalProperties": false, "properties": { "ResourceCollectionFilter": { - "$ref": "#/definitions/AWS::DevOpsGuru::ResourceCollection.ResourceCollectionFilter" + "$ref": "#/definitions/AWS::DevOpsGuru::ResourceCollection.ResourceCollectionFilter", + "markdownDescription": "Information about a filter used to specify which AWS resources are analyzed for anomalous behavior by DevOps Guru\\. \n*Required*: Yes \n*Type*: [ResourceCollectionFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-resourcecollection-resourcecollectionfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceCollectionFilter" } }, "required": [ @@ -40957,6 +50170,8 @@ "items": { "type": "string" }, + "markdownDescription": "An array of CloudFormation stack names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StackNames", "type": "array" } }, @@ -40966,7 +50181,9 @@ "additionalProperties": false, "properties": { "CloudFormation": { - "$ref": "#/definitions/AWS::DevOpsGuru::ResourceCollection.CloudFormationCollectionFilter" + "$ref": "#/definitions/AWS::DevOpsGuru::ResourceCollection.CloudFormationCollectionFilter", + "markdownDescription": "Information about AWS CloudFormation stacks\\. You can use up to 500 stacks to specify which AWS resources in your account to analyze\\. For more information, see [Stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html) in the * AWS CloudFormation User Guide*\\. \n*Required*: No \n*Type*: [CloudFormationCollectionFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-resourcecollection-cloudformationcollectionfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudFormation" }, "Tags": { "items": { @@ -41028,25 +50245,39 @@ "additionalProperties": false, "properties": { "CreateAlias": { + "markdownDescription": "Specifies an alias for a directory and assigns the alias to the directory\\. The alias is used to construct the access URL for the directory, such as `http://.awsapps.com`\\. By default, AWS CloudFormation does not create an alias\\. \nAfter an alias has been created, it cannot be deleted or reused, so this operation should only be used when absolutely necessary\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CreateAlias", "type": "boolean" }, "Edition": { + "markdownDescription": "AWS Managed Microsoft AD is available in two editions: `Standard` and `Enterprise`\\. `Enterprise` is the default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Enterprise | Standard` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Edition", "type": "string" }, "EnableSso": { + "markdownDescription": "Whether to enable single sign\\-on for a Microsoft Active Directory in AWS\\. Single sign\\-on allows users in your directory to access certain AWS services from a computer joined to the directory without having to enter their credentials separately\\. If you don't specify a value, AWS CloudFormation disables single sign\\-on by default\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableSso", "type": "boolean" }, "Name": { + "markdownDescription": "The fully qualified domain name for the AWS Managed Microsoft AD directory, such as `corp.example.com`\\. This name will resolve inside your VPC only\\. It does not need to be publicly resolvable\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^([a-zA-Z0-9]+[\\\\.-])+([a-zA-Z0-9])+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Password": { + "markdownDescription": "The password for the default administrative user named `Admin`\\. \nIf you need to change the password for the administrator account, see the [ResetUserPassword](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_ResetUserPassword.html) API call in the *AWS Directory Service API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `(?=^.{8,64}$)((?=.*\\d)(?=.*[A-Z])(?=.*[a-z])|(?=.*\\d)(?=.*[^A-Za-z0-9\\s])(?=.*[a-z])|(?=.*[^A-Za-z0-9\\s])(?=.*[A-Z])(?=.*[a-z])|(?=.*\\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9\\s]))^.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Password", "type": "string" }, "ShortName": { + "markdownDescription": "The NetBIOS name for your domain, such as `CORP`\\. If you don't specify a NetBIOS name, it will default to the first part of your directory DNS\\. For example, `CORP` for the directory DNS `corp.example.com`\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[^\\\\/:*?\"<>|.]+[^\\\\/:*?\"<>|]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ShortName", "type": "string" }, "VpcSettings": { - "$ref": "#/definitions/AWS::DirectoryService::MicrosoftAD.VpcSettings" + "$ref": "#/definitions/AWS::DirectoryService::MicrosoftAD.VpcSettings", + "markdownDescription": "Specifies the VPC settings of the Microsoft AD directory server in AWS\\. \n*Required*: Yes \n*Type*: [VpcSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-microsoftad-vpcsettings.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcSettings" } }, "required": [ @@ -41084,9 +50315,13 @@ "items": { "type": "string" }, + "markdownDescription": "The identifiers of the subnets for the directory servers\\. The two subnets must be in different Availability Zones\\. AWS Directory Service specifies a directory server and a DNS server in each of these subnets\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" }, "VpcId": { + "markdownDescription": "The identifier of the VPC in which to create the directory\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^(vpc-[0-9a-f]{8}|vpc-[0-9a-f]{17})$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcId", "type": "string" } }, @@ -41132,28 +50367,44 @@ "additionalProperties": false, "properties": { "CreateAlias": { + "markdownDescription": "If set to `true`, specifies an alias for a directory and assigns the alias to the directory\\. The alias is used to construct the access URL for the directory, such as `http://.awsapps.com`\\. By default, this property is set to `false`\\. \nAfter an alias has been created, it cannot be deleted or reused, so this operation should only be used when absolutely necessary\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CreateAlias", "type": "boolean" }, "Description": { + "markdownDescription": "A description for the directory\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^([a-zA-Z0-9_])[\\\\a-zA-Z0-9_@#%*+=:?./!\\s-]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "EnableSso": { + "markdownDescription": "Whether to enable single sign\\-on for a directory\\. If you don't specify a value, AWS CloudFormation disables single sign\\-on by default\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableSso", "type": "boolean" }, "Name": { + "markdownDescription": "The fully qualified name for the directory, such as `corp.example.com`\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^([a-zA-Z0-9]+[\\\\.-])+([a-zA-Z0-9])+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Password": { + "markdownDescription": "The password for the directory administrator\\. The directory creation process creates a directory administrator account with the user name `Administrator` and this password\\. \nIf you need to change the password for the administrator account, see the [ResetUserPassword](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_ResetUserPassword.html) API call in the *AWS Directory Service API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `(?=^.{8,64}$)((?=.*\\d)(?=.*[A-Z])(?=.*[a-z])|(?=.*\\d)(?=.*[^A-Za-z0-9\\s])(?=.*[a-z])|(?=.*[^A-Za-z0-9\\s])(?=.*[A-Z])(?=.*[a-z])|(?=.*\\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9\\s]))^.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Password", "type": "string" }, "ShortName": { + "markdownDescription": "The NetBIOS name of the directory, such as `CORP`\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[^\\\\/:*?\"<>|.]+[^\\\\/:*?\"<>|]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ShortName", "type": "string" }, "Size": { + "markdownDescription": "The size of the directory\\. For valid values, see [CreateDirectory](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_CreateDirectory.html) in the *AWS Directory Service API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Large | Small` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Size", "type": "string" }, "VpcSettings": { - "$ref": "#/definitions/AWS::DirectoryService::SimpleAD.VpcSettings" + "$ref": "#/definitions/AWS::DirectoryService::SimpleAD.VpcSettings", + "markdownDescription": "A [DirectoryVpcSettings](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_DirectoryVpcSettings.html) object that contains additional information for the operation\\. \n*Required*: Yes \n*Type*: [VpcSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-simplead-vpcsettings.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcSettings" } }, "required": [ @@ -41191,9 +50442,13 @@ "items": { "type": "string" }, + "markdownDescription": "The identifiers of the subnets for the directory servers\\. The two subnets must be in different Availability Zones\\. AWS Directory Service specifies a directory server and a DNS server in each of these subnets\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" }, "VpcId": { + "markdownDescription": "The identifier of the VPC in which to create the directory\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^(vpc-[0-9a-f]{8}|vpc-[0-9a-f]{17})$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcId", "type": "string" } }, @@ -41242,51 +50497,81 @@ "items": { "type": "string" }, + "markdownDescription": "A list of Amazon EC2 Availability Zones that instances in the cluster can be created in\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZones", "type": "array" }, "BackupRetentionPeriod": { + "markdownDescription": "The number of days for which automated backups are retained\\. You must specify a minimum value of 1\\. \nDefault: 1 \nConstraints: \n+ Must be a value from 1 to 35\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackupRetentionPeriod", "type": "number" }, "CopyTagsToSnapshot": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CopyTagsToSnapshot", "type": "boolean" }, "DBClusterIdentifier": { + "markdownDescription": "The cluster identifier\\. This parameter is stored as a lowercase string\\. \nConstraints: \n+ Must contain from 1 to 63 letters, numbers, or hyphens\\. \n+ The first character must be a letter\\.\n+ Cannot end with a hyphen or contain two consecutive hyphens\\. \nExample: `my-cluster` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBClusterIdentifier", "type": "string" }, "DBClusterParameterGroupName": { + "markdownDescription": "The name of the cluster parameter group to associate with this cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBClusterParameterGroupName", "type": "string" }, "DBSubnetGroupName": { + "markdownDescription": "A subnet group to associate with this cluster\\. \nConstraints: Must match the name of an existing `DBSubnetGroup`\\. Must not be default\\. \nExample: `mySubnetgroup` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBSubnetGroupName", "type": "string" }, "DeletionProtection": { + "markdownDescription": "Protects clusters from being accidentally deleted\\. If enabled, the cluster cannot be deleted unless it is modified and `DeletionProtection` is disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeletionProtection", "type": "boolean" }, "EnableCloudwatchLogsExports": { "items": { "type": "string" }, + "markdownDescription": "The list of log types that need to be enabled for exporting to Amazon CloudWatch Logs\\. You can enable audit logs or profiler logs\\. For more information, see [Auditing Amazon DocumentDB Events](https://docs.aws.amazon.com/documentdb/latest/developerguide/event-auditing.html) and [Profiling Amazon DocumentDB Operations](https://docs.aws.amazon.com/documentdb/latest/developerguide/profiling.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableCloudwatchLogsExports", "type": "array" }, "EngineVersion": { + "markdownDescription": "The version number of the database engine to use\\. The `--engine-version` will default to the latest major engine version\\. For production workloads, we recommend explicitly declaring this parameter with the intended major engine version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineVersion", "type": "string" }, "KmsKeyId": { + "markdownDescription": "The AWS KMS key identifier for an encrypted cluster\\. \nThe AWS KMS key identifier is the Amazon Resource Name \\(ARN\\) for the AWS KMS encryption key\\. If you are creating a cluster using the same AWS account that owns the AWS KMS encryption key that is used to encrypt the new cluster, you can use the AWS KMS key alias instead of the ARN for the AWS KMS encryption key\\. \nIf an encryption key is not specified in `KmsKeyId`: \n+ If the `StorageEncrypted` parameter is `true`, Amazon DocumentDB uses your default encryption key\\. \n AWS KMS creates the default encryption key for your AWS account\\. Your AWS account has a different default encryption key for each AWS Regions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" }, "MasterUserPassword": { + "markdownDescription": "The password for the master database user\\. This password can contain any printable ASCII character except forward slash \\(/\\), double quote \\(\"\\), or the \"at\" symbol \\(@\\)\\. \nConstraints: Must contain from 8 to 100 characters\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MasterUserPassword", "type": "string" }, "MasterUsername": { + "markdownDescription": "The name of the master user for the cluster\\. \nConstraints: \n+ Must be from 1 to 63 letters or numbers\\.\n+ The first character must be a letter\\.\n+ Cannot be a reserved word for the chosen database engine\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MasterUsername", "type": "string" }, "Port": { + "markdownDescription": "Specifies the port that the database engine is listening on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" }, "PreferredBackupWindow": { + "markdownDescription": "The daily time range during which automated backups are created if automated backups are enabled using the `BackupRetentionPeriod` parameter\\. \nThe default is a 30\\-minute window selected at random from an 8\\-hour block of time for each AWS Region\\. \nConstraints: \n+ Must be in the format `hh24:mi-hh24:mi`\\.\n+ Must be in Universal Coordinated Time \\(UTC\\)\\.\n+ Must not conflict with the preferred maintenance window\\. \n+ Must be at least 30 minutes\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredBackupWindow", "type": "string" }, "PreferredMaintenanceWindow": { + "markdownDescription": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time \\(UTC\\)\\. \nFormat: `ddd:hh24:mi-ddd:hh24:mi` \nThe default is a 30\\-minute window selected at random from an 8\\-hour block of time for each AWS Region, occurring on a random day of the week\\. \nValid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun \nConstraints: Minimum 30\\-minute window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", "type": "string" }, "RestoreToTime": { @@ -41296,18 +50581,24 @@ "type": "string" }, "SnapshotIdentifier": { + "markdownDescription": "The identifier for the snapshot or cluster snapshot to restore from\\. \nYou can use either the name or the Amazon Resource Name \\(ARN\\) to specify a cluster snapshot\\. However, you can use only the ARN to specify a snapshot\\. \nConstraints: \n+ Must match the identifier of an existing snapshot\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotIdentifier", "type": "string" }, "SourceDBClusterIdentifier": { "type": "string" }, "StorageEncrypted": { + "markdownDescription": "Specifies whether the cluster is encrypted\\. \n*Required*: Conditional \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StorageEncrypted", "type": "boolean" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to be assigned to the cluster\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "UseLatestRestorableTime": { @@ -41317,6 +50608,8 @@ "items": { "type": "string" }, + "markdownDescription": "A list of EC2 VPC security groups to associate with this cluster\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSecurityGroupIds", "type": "array" } }, @@ -41378,21 +50671,31 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description for the cluster parameter group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "Family": { + "markdownDescription": "The cluster parameter group family name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Family", "type": "string" }, "Name": { + "markdownDescription": "The name of the DB cluster parameter group\\. \nConstraints: \n+ Must not match the name of an existing `DBClusterParameterGroup`\\.\nThis value is stored as a lowercase string\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Parameters": { + "markdownDescription": "Provides a list of parameters for the cluster parameter group\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "object" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to be assigned to the cluster parameter group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -41460,30 +50763,44 @@ "additionalProperties": false, "properties": { "AutoMinorVersionUpgrade": { + "markdownDescription": "This parameter does not apply to Amazon DocumentDB\\. Amazon DocumentDB does not perform minor version upgrades regardless of the value set\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoMinorVersionUpgrade", "type": "boolean" }, "AvailabilityZone": { + "markdownDescription": "The Amazon EC2 Availability Zone that the instance is created in\\. \nDefault: A random, system\\-chosen Availability Zone in the endpoint's AWS Region\\. \nExample: `us-east-1d` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", "type": "string" }, "DBClusterIdentifier": { + "markdownDescription": "The identifier of the cluster that the instance will belong to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBClusterIdentifier", "type": "string" }, "DBInstanceClass": { + "markdownDescription": "The compute and memory capacity of the instance; for example, `db.m4.large`\\. If you change the class of an instance there can be some interruption in the cluster's service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBInstanceClass", "type": "string" }, "DBInstanceIdentifier": { + "markdownDescription": "The instance identifier\\. This parameter is stored as a lowercase string\\. \nConstraints: \n+ Must contain from 1 to 63 letters, numbers, or hyphens\\.\n+ The first character must be a letter\\.\n+ Cannot end with a hyphen or contain two consecutive hyphens\\.\nExample: `mydbinstance` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBInstanceIdentifier", "type": "string" }, "EnablePerformanceInsights": { "type": "boolean" }, "PreferredMaintenanceWindow": { + "markdownDescription": "The time range each week during which system maintenance can occur, in Universal Coordinated Time \\(UTC\\)\\. \n Format: `ddd:hh24:mi-ddd:hh24:mi` \nThe default is a 30\\-minute window selected at random from an 8\\-hour block of time for each AWS Region, occurring on a random day of the week\\. \nValid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun \nConstraints: Minimum 30\\-minute window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to be assigned to the instance\\. You can assign up to 10 tags to an instance\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -41550,21 +50867,29 @@ "additionalProperties": false, "properties": { "DBSubnetGroupDescription": { + "markdownDescription": "The description for the subnet group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBSubnetGroupDescription", "type": "string" }, "DBSubnetGroupName": { + "markdownDescription": "The name for the subnet group\\. This value is stored as a lowercase string\\. \nConstraints: Must contain no more than 255 letters, numbers, periods, underscores, spaces, or hyphens\\. Must not be default\\. \nExample: `mySubnetgroup` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBSubnetGroupName", "type": "string" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "The Amazon EC2 subnet IDs for the subnet group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to be assigned to the subnet group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -41742,49 +51067,71 @@ "items": { "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.AttributeDefinition" }, + "markdownDescription": "A list of attributes that describe the key schema for the global table and indexes\\. \n*Required*: Yes \n*Type*: List of [AttributeDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-attributedefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeDefinitions", "type": "array" }, "BillingMode": { + "markdownDescription": "Specifies how you are charged for read and write throughput and how you manage capacity\\. Valid values are: \n+ `PAY_PER_REQUEST`\n+ `PROVISIONED`\nAll replicas in your global table will have the same billing mode\\. If you use `PROVISIONED` billing mode, you must provide an auto scaling configuration via the `WriteProvisionedThroughputSettings` property\\. The default value of this property is `PROVISIONED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PAY_PER_REQUEST | PROVISIONED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BillingMode", "type": "string" }, "GlobalSecondaryIndexes": { "items": { "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.GlobalSecondaryIndex" }, + "markdownDescription": "Global secondary indexes to be created on the global table\\. You can create up to 20 global secondary indexes\\. Each replica in your global table will have the same global secondary index settings\\. You can only create or delete one global secondary index in a single stack operation\\. \nSince the backfilling of an index could take a long time, CloudFormation does not wait for the index to become active\\. If a stack operation rolls back, CloudFormation might not delete an index that has been added\\. In that case, you will need to delete the index manually\\. \n*Required*: No \n*Type*: List of [GlobalSecondaryIndex](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-globalsecondaryindex.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlobalSecondaryIndexes", "type": "array" }, "KeySchema": { "items": { "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.KeySchema" }, + "markdownDescription": "Specifies the attributes that make up the primary key for the table\\. The attributes in the `KeySchema` property must also be defined in the `AttributeDefinitions` property\\. \n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeySchema", "type": "array" }, "LocalSecondaryIndexes": { "items": { "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.LocalSecondaryIndex" }, + "markdownDescription": "Local secondary indexes to be created on the table\\. You can create up to five local secondary indexes\\. Each index is scoped to a given hash key value\\. The size of each hash key can be up to 10 gigabytes\\. Each replica in your global table will have the same local secondary index settings\\. \n*Required*: No \n*Type*: List of [LocalSecondaryIndex](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-localsecondaryindex.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalSecondaryIndexes", "type": "array" }, "Replicas": { "items": { "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReplicaSpecification" }, + "markdownDescription": "Specifies the list of replicas for your global table\\. The list must contain at least one element, the region where the stack defining the global table is deployed\\. For example, if you define your table in a stack deployed to us\\-east\\-1, you must have an entry in `Replicas` with the region us\\-east\\-1\\. You cannot remove the replica in the stack region\\. \nAdding a replica might take a few minutes for an empty table, or up to several hours for large tables\\. If you want to add or remove a replica, we recommend submitting an `UpdateStack` operation containing only that change\\. \nIf you add or delete a replica during an update, we recommend that you don't update any other resources\\. If your stack fails to update and is rolled back while adding a new replica, you might need to manually delete the replica\\.\nYou can create a new global table with as many replicas as needed\\. You can add or remove replicas after table creation, but you can only add or remove a single replica in each update\\. \n*Required*: Yes \n*Type*: List of [ReplicaSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Replicas", "type": "array" }, "SSESpecification": { - "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.SSESpecification" + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.SSESpecification", + "markdownDescription": "Specifies the settings to enable server\\-side encryption\\. These settings will be applied to all replicas\\. If you plan to use customer\\-managed KMS keys, you must provide a key for each replica using the `ReplicaSpecification.ReplicaSSESpecification` property\\. \n*Required*: No \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-ssespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SSESpecification" }, "StreamSpecification": { - "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.StreamSpecification" + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.StreamSpecification", + "markdownDescription": "Specifies the streams settings on your global table\\. You must provide a value for this property if your global table contains more than one replica\\. You can only change the streams settings if your global table has only one replica\\. \n*Required*: No \n*Type*: [StreamSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-streamspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamSpecification" }, "TableName": { + "markdownDescription": "A name for the global table\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID as the table name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TableName", "type": "string" }, "TimeToLiveSpecification": { - "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.TimeToLiveSpecification" + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.TimeToLiveSpecification", + "markdownDescription": "Specifies the time to live \\(TTL\\) settings for the table\\. This setting will be applied to all replicas\\. \n*Required*: No \n*Type*: [TimeToLiveSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-timetolivespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeToLiveSpecification" }, "WriteProvisionedThroughputSettings": { - "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.WriteProvisionedThroughputSettings" + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.WriteProvisionedThroughputSettings", + "markdownDescription": "Specifies an auto scaling policy for write capacity\\. This policy will be applied to all replicas\\. This setting must be specified if `BillingMode` is set to `PROVISIONED`\\. \n*Required*: No \n*Type*: [WriteProvisionedThroughputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-writeprovisionedthroughputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WriteProvisionedThroughputSettings" } }, "required": [ @@ -41819,9 +51166,13 @@ "additionalProperties": false, "properties": { "AttributeName": { + "markdownDescription": "A name for the attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeName", "type": "string" }, "AttributeType": { + "markdownDescription": "The data type for the attribute, where: \n+ `S` \\- the attribute is of type String\n+ `N` \\- the attribute is of type Number\n+ `B` \\- the attribute is of type Binary\n*Required*: Yes \n*Type*: String \n*Allowed values*: `B | N | S` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeType", "type": "string" } }, @@ -41835,16 +51186,24 @@ "additionalProperties": false, "properties": { "MaxCapacity": { + "markdownDescription": "The maximum provisioned capacity units for the global table\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacity", "type": "number" }, "MinCapacity": { + "markdownDescription": "The minimum provisioned capacity units for the global table\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinCapacity", "type": "number" }, "SeedCapacity": { + "markdownDescription": "When switching billing mode from `PAY_PER_REQUEST` to `PROVISIONED`, DynamoDB requires you to specify read and write capacity unit values for the table and for each global secondary index\\. These values will be applied to all replicas\\. The table will use these provisioned values until CloudFormation creates the autoscaling policies you configured in your template\\. CloudFormation cannot determine what capacity the table and its global secondary indexes will require in this time period, since they are application\\-dependent\\. \nIf you want to switch a table's billing mode from `PAY_PER_REQUEST` to `PROVISIONED`, you must specify a value for this property for each autoscaled resource\\. If you specify different values for the same resource in different regions, CloudFormation will use the highest value found in either the `SeedCapacity` or `ReadCapacityUnits` properties\\. For example, if your global secondary index `myGSI` has a `SeedCapacity` of 10 in us\\-east\\-1 and a fixed `ReadCapacityUnits` of 20 in eu\\-west\\-1, CloudFormation will initially set the read capacity for `myGSI` to 20\\. Note that if you disable `ScaleIn` for `myGSI` in us\\-east\\-1, its read capacity units might not be set back to 10\\. \nYou must also specify a value for `SeedCapacity` when you plan to switch a table's billing mode from `PROVISIONED` to `PAY_PER_REQUEST`, because CloudFormation might need to roll back the operation \\(reverting the billing mode to `PROVISIONED`\\) and this cannot succeed without specifying a value for `SeedCapacity`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SeedCapacity", "type": "number" }, "TargetTrackingScalingPolicyConfiguration": { - "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.TargetTrackingScalingPolicyConfiguration" + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.TargetTrackingScalingPolicyConfiguration", + "markdownDescription": "Defines a target tracking scaling policy\\. \n*Required*: Yes \n*Type*: [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-targettrackingscalingpolicyconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetTrackingScalingPolicyConfiguration" } }, "required": [ @@ -41858,6 +51217,8 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Indicates whether CloudWatch Contributor Insights are to be enabled \\(true\\) or disabled \\(false\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Allowed values*: `DISABLE | ENABLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -41870,19 +51231,27 @@ "additionalProperties": false, "properties": { "IndexName": { + "markdownDescription": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", + "title": "IndexName", "type": "string" }, "KeySchema": { "items": { "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.KeySchema" }, + "markdownDescription": "The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", + "title": "KeySchema", "type": "array" }, "Projection": { - "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.Projection" + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.Projection", + "markdownDescription": "Represents attributes that are copied \\(projected\\) from the table into the global secondary index\\. These are in addition to the primary key attributes and index key attributes, which are automatically projected\\. \n*Required*: Yes \n*Type*: [Projection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-projection.html) \n*Update requires*: Updates are not supported\\.", + "title": "Projection" }, "WriteProvisionedThroughputSettings": { - "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.WriteProvisionedThroughputSettings" + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.WriteProvisionedThroughputSettings", + "markdownDescription": "Defines write capacity settings for the global secondary index\\. You must specify a value for this property if the table's `BillingMode` is `PROVISIONED`\\. All replicas will have the same write capacity settings for this global secondary index\\. \n*Required*: No \n*Type*: [WriteProvisionedThroughputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-writeprovisionedthroughputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WriteProvisionedThroughputSettings" } }, "required": [ @@ -41896,9 +51265,13 @@ "additionalProperties": false, "properties": { "AttributeName": { + "markdownDescription": "The name of a key attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AttributeName", "type": "string" }, "KeyType": { + "markdownDescription": "The role that this key attribute will assume: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `HASH | RANGE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyType", "type": "string" } }, @@ -41908,20 +51281,38 @@ ], "type": "object" }, + "AWS::DynamoDB::GlobalTable.KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamArn": { + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, "AWS::DynamoDB::GlobalTable.LocalSecondaryIndex": { "additionalProperties": false, "properties": { "IndexName": { + "markdownDescription": "The name of the local secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", + "title": "IndexName", "type": "string" }, "KeySchema": { "items": { "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.KeySchema" }, + "markdownDescription": "The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", + "title": "KeySchema", "type": "array" }, "Projection": { - "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.Projection" + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.Projection", + "markdownDescription": "Represents attributes that are copied \\(projected\\) from the table into the local secondary index\\. These are in addition to the primary key attributes and index key attributes, which are automatically projected\\. \n*Required*: Yes \n*Type*: [Projection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-projection.html) \n*Update requires*: Updates are not supported\\.", + "title": "Projection" } }, "required": [ @@ -41935,6 +51326,8 @@ "additionalProperties": false, "properties": { "PointInTimeRecoveryEnabled": { + "markdownDescription": "Indicates whether point in time recovery is enabled \\(true\\) or disabled \\(false\\) on the table\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PointInTimeRecoveryEnabled", "type": "boolean" } }, @@ -41947,9 +51340,13 @@ "items": { "type": "string" }, + "markdownDescription": "Represents the non\\-key attribute names which will be projected into the index\\. \nFor local secondary indexes, the total count of `NonKeyAttributes` summed across all of the local secondary indexes, must not exceed 20\\. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NonKeyAttributes", "type": "array" }, "ProjectionType": { + "markdownDescription": "The set of attributes that are projected into the index: \n+ `KEYS_ONLY` \\- Only the index and primary keys are projected into the index\\.\n+ `INCLUDE` \\- In addition to the attributes described in `KEYS_ONLY`, the secondary index will include other non\\-key attributes that you specify\\.\n+ `ALL` \\- All of the table attributes are projected into the index\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ALL | INCLUDE | KEYS_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProjectionType", "type": "string" } }, @@ -41959,9 +51356,13 @@ "additionalProperties": false, "properties": { "ReadCapacityAutoScalingSettings": { - "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.CapacityAutoScalingSettings" + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.CapacityAutoScalingSettings", + "markdownDescription": "Specifies auto scaling settings for the replica table or global secondary index\\. \n*Required*: No \n*Type*: [CapacityAutoScalingSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-capacityautoscalingsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadCapacityAutoScalingSettings" }, "ReadCapacityUnits": { + "markdownDescription": "Specifies a fixed read capacity for the replica table or global secondary index\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadCapacityUnits", "type": "number" } }, @@ -41971,13 +51372,19 @@ "additionalProperties": false, "properties": { "ContributorInsightsSpecification": { - "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ContributorInsightsSpecification" + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ContributorInsightsSpecification", + "markdownDescription": "Updates the status for contributor insights for a specific table or index\\. CloudWatch Contributor Insights for DynamoDB graphs display the partition key and \\(if applicable\\) sort key of frequently accessed items and frequently throttled items in plaintext\\. If you require the use of AWS Key Management Service \\(KMS\\) to encrypt this table\u2019s partition key and sort key data with an AWS managed key or customer managed key, you should not enable CloudWatch Contributor Insights for DynamoDB for this table\\. \n*Required*: No \n*Type*: [ContributorInsightsSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-contributorinsightsspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContributorInsightsSpecification" }, "IndexName": { + "markdownDescription": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IndexName", "type": "string" }, "ReadProvisionedThroughputSettings": { - "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReadProvisionedThroughputSettings" + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReadProvisionedThroughputSettings", + "markdownDescription": "Allows you to specify the read capacity settings for a replica global secondary index when the `BillingMode` is set to `PROVISIONED`\\. \n*Required*: No \n*Type*: [ReadProvisionedThroughputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-readprovisionedthroughputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadProvisionedThroughputSettings" } }, "required": [ @@ -41989,6 +51396,8 @@ "additionalProperties": false, "properties": { "KMSMasterKeyId": { + "markdownDescription": "The AWS KMS key that should be used for the AWS KMS encryption\\. To specify a key, use its key ID, Amazon Resource Name \\(ARN\\), alias name, or alias ARN\\. Note that you should only provide this parameter if the key is different from the default DynamoDB key `alias/aws/dynamodb`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KMSMasterKeyId", "type": "string" } }, @@ -42001,33 +51410,52 @@ "additionalProperties": false, "properties": { "ContributorInsightsSpecification": { - "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ContributorInsightsSpecification" + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ContributorInsightsSpecification", + "markdownDescription": "The settings used to enable or disable CloudWatch Contributor Insights for the specified replica\\. When not specified, defaults to contributor insights disabled for the replica\\. \n*Required*: No \n*Type*: [ContributorInsightsSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-contributorinsightsspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContributorInsightsSpecification" }, "GlobalSecondaryIndexes": { "items": { "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReplicaGlobalSecondaryIndexSpecification" }, + "markdownDescription": "Defines additional settings for the global secondary indexes of this replica\\. \n*Required*: No \n*Type*: List of [ReplicaGlobalSecondaryIndexSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaglobalsecondaryindexspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlobalSecondaryIndexes", "type": "array" }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.KinesisStreamSpecification" + }, "PointInTimeRecoverySpecification": { - "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.PointInTimeRecoverySpecification" + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.PointInTimeRecoverySpecification", + "markdownDescription": "The settings used to enable point in time recovery\\. When not specified, defaults to point in time recovery disabled for the replica\\. \n*Required*: No \n*Type*: [PointInTimeRecoverySpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-pointintimerecoveryspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PointInTimeRecoverySpecification" }, "ReadProvisionedThroughputSettings": { - "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReadProvisionedThroughputSettings" + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReadProvisionedThroughputSettings", + "markdownDescription": "Defines read capacity settings for the replica table\\. \n*Required*: No \n*Type*: [ReadProvisionedThroughputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-readprovisionedthroughputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadProvisionedThroughputSettings" }, "Region": { + "markdownDescription": "The region in which this replica exists\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", "type": "string" }, "SSESpecification": { - "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReplicaSSESpecification" + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReplicaSSESpecification", + "markdownDescription": "Allows you to specify a customer\\-managed key for the replica\\. When using customer\\-managed keys for server\\-side encryption, this property must have a value in all replicas\\. \n*Required*: No \n*Type*: [ReplicaSSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicassespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SSESpecification" }, "TableClass": { + "markdownDescription": "The table class of the specified table\\. Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `STANDARD | STANDARD_INFREQUENT_ACCESS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableClass", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this replica\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -42040,9 +51468,13 @@ "additionalProperties": false, "properties": { "SSEEnabled": { + "markdownDescription": "Indicates whether server\\-side encryption is performed using an AWS managed key or an AWS owned key\\. If disabled \\(false\\) or not specified, server\\-side encryption uses an AWS owned key\\. If enabled \\(true\\), the server\\-side encryption type is set to KMS and an AWS managed key is used \\(AWS KMS charges apply\\)\\. If you choose to use KMS encryption, you can also use customer managed KMS keys by specifying them in the `ReplicaSpecification.SSESpecification` object\\. You cannot mix AWS managed and customer managed KMS keys\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SSEEnabled", "type": "boolean" }, "SSEType": { + "markdownDescription": "Server\\-side encryption type\\. The only supported value is: \n+ `KMS` \\- Server\\-side encryption that uses AWS Key Management Service\\. The key is stored in your account and is managed by AWS KMS \\(AWS KMS charges apply\\)\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `AES256 | KMS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SSEType", "type": "string" } }, @@ -42055,6 +51487,8 @@ "additionalProperties": false, "properties": { "StreamViewType": { + "markdownDescription": "When an item in the table is modified, `StreamViewType` determines what information is written to the stream for this table\\. Valid values for `StreamViewType` are: \n+ `KEYS_ONLY` \\- Only the key attributes of the modified item are written to the stream\\.\n+ `NEW_IMAGE` \\- The entire item, as it appears after it was modified, is written to the stream\\.\n+ `OLD_IMAGE` \\- The entire item, as it appeared before it was modified, is written to the stream\\.\n+ `NEW_AND_OLD_IMAGES` \\- Both the new and the old item images of the item are written to the stream\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `KEYS_ONLY | NEW_AND_OLD_IMAGES | NEW_IMAGE | OLD_IMAGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamViewType", "type": "string" } }, @@ -42067,15 +51501,23 @@ "additionalProperties": false, "properties": { "DisableScaleIn": { + "markdownDescription": "Indicates whether scale in by the target tracking scaling policy is disabled\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableScaleIn", "type": "boolean" }, "ScaleInCooldown": { + "markdownDescription": "The amount of time, in seconds, after a scale\\-in activity completes before another scale\\-in activity can start\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScaleInCooldown", "type": "number" }, "ScaleOutCooldown": { + "markdownDescription": "The amount of time, in seconds, after a scale\\-out activity completes before another scale\\-out activity can start\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScaleOutCooldown", "type": "number" }, "TargetValue": { + "markdownDescription": "Defines a target value for the scaling policy\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetValue", "type": "number" } }, @@ -42088,9 +51530,13 @@ "additionalProperties": false, "properties": { "AttributeName": { + "markdownDescription": "The name of the attribute used to store the expiration time for items in the table\\. \nCurrently, you cannot directly change the attribute name used to evaluate time to live\\. In order to do so, you must first disable time to live, and then re\\-enable it with the new attribute name\\. It can take up to one hour for changes to time to live to take effect\\. If you attempt to modify time to live within that time window, your stack operation might be delayed\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeName", "type": "string" }, "Enabled": { + "markdownDescription": "Indicates whether TTL is to be enabled \\(true\\) or disabled \\(false\\) on the table\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -42103,7 +51549,9 @@ "additionalProperties": false, "properties": { "WriteCapacityAutoScalingSettings": { - "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.CapacityAutoScalingSettings" + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.CapacityAutoScalingSettings", + "markdownDescription": "Specifies auto scaling settings for the replica table or global secondary index\\. \n*Required*: No \n*Type*: [CapacityAutoScalingSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-capacityautoscalingsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WriteCapacityAutoScalingSettings" } }, "type": "object" @@ -42147,18 +51595,26 @@ "items": { "$ref": "#/definitions/AWS::DynamoDB::Table.AttributeDefinition" }, + "markdownDescription": "A list of attributes that describe the key schema for the table and indexes\\. \nThis property is required to create a DynamoDB table\\. \nUpdate requires: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)\\. Replacement if you edit an existing AttributeDefinition\\. \n*Required*: Conditional \n*Type*: List of [AttributeDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "AttributeDefinitions", "type": "array" }, "BillingMode": { + "markdownDescription": "Specify how you are charged for read and write throughput and how you manage capacity\\. \nValid values include: \n+ `PROVISIONED` \\- We recommend using `PROVISIONED` for predictable workloads\\. `PROVISIONED` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual)\\.\n+ `PAY_PER_REQUEST` \\- We recommend using `PAY_PER_REQUEST` for unpredictable workloads\\. `PAY_PER_REQUEST` sets the billing mode to [On\\-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand)\\.\nIf not specified, the default is `PROVISIONED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PAY_PER_REQUEST | PROVISIONED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BillingMode", "type": "string" }, "ContributorInsightsSpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.ContributorInsightsSpecification" + "$ref": "#/definitions/AWS::DynamoDB::Table.ContributorInsightsSpecification", + "markdownDescription": "The settings used to enable or disable CloudWatch Contributor Insights for the specified table\\. \n*Required*: No \n*Type*: [ContributorInsightsSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-contributorinsightsspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContributorInsightsSpecification" }, "GlobalSecondaryIndexes": { "items": { "$ref": "#/definitions/AWS::DynamoDB::Table.GlobalSecondaryIndex" }, + "markdownDescription": "Global secondary indexes to be created on the table\\. You can create up to 20 global secondary indexes\\. \nIf you update a table to include a new global secondary index, AWS CloudFormation initiates the index creation and then proceeds with the stack update\\. AWS CloudFormation doesn't wait for the index to complete creation because the backfilling phase can take a long time, depending on the size of the table\\. You can't use the index or update the table until the index's status is `ACTIVE`\\. You can track its status by using the DynamoDB [DescribeTable](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/describe-table.html) command\\. \nIf you add or delete an index during an update, we recommend that you don't update any other resources\\. If your stack fails to update and is rolled back while adding a new index, you must manually delete the index\\. \nUpdates are not supported\\. The following are exceptions: \n+ If you update either the contributor insights specification or the provisioned throughput values of global secondary indexes, you can update the table without interruption\\.\n+ You can delete or add one global secondary index without interruption\\. If you do both in the same update \\(for example, by changing the index's logical ID\\), the update fails\\.\n*Required*: No \n*Type*: List of [GlobalSecondaryIndex](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlobalSecondaryIndexes", "type": "array" }, "ImportSourceSpecification": { @@ -42168,43 +51624,65 @@ "items": { "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" }, + "markdownDescription": "Specifies the attributes that make up the primary key for the table\\. The attributes in the `KeySchema` property must also be defined in the `AttributeDefinitions` property\\. \n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeySchema", "type": "array" }, "KinesisStreamSpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.KinesisStreamSpecification" + "$ref": "#/definitions/AWS::DynamoDB::Table.KinesisStreamSpecification", + "markdownDescription": "The Kinesis Data Streams configuration for the specified table\\. \n*Required*: No \n*Type*: [KinesisStreamSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-kinesisstreamspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KinesisStreamSpecification" }, "LocalSecondaryIndexes": { "items": { "$ref": "#/definitions/AWS::DynamoDB::Table.LocalSecondaryIndex" }, + "markdownDescription": "Local secondary indexes to be created on the table\\. You can create up to 5 local secondary indexes\\. Each index is scoped to a given hash key value\\. The size of each hash key can be up to 10 gigabytes\\. \n*Required*: No \n*Type*: List of [LocalSecondaryIndex](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-lsi.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalSecondaryIndexes", "type": "array" }, "PointInTimeRecoverySpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.PointInTimeRecoverySpecification" + "$ref": "#/definitions/AWS::DynamoDB::Table.PointInTimeRecoverySpecification", + "markdownDescription": "The settings used to enable point in time recovery\\. \n*Required*: No \n*Type*: [PointInTimeRecoverySpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-pointintimerecoveryspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PointInTimeRecoverySpecification" }, "ProvisionedThroughput": { - "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput" + "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput", + "markdownDescription": "Throughput for the specified table, which consists of values for `ReadCapacityUnits` and `WriteCapacityUnits`\\. For more information about the contents of a provisioned throughput structure, see [Amazon DynamoDB Table ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html)\\. \nIf you set `BillingMode` as `PROVISIONED`, you must specify this property\\. If you set `BillingMode` as `PAY_PER_REQUEST`, you cannot specify this property\\. \n*Required*: Conditional \n*Type*: [ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisionedThroughput" }, "SSESpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.SSESpecification" + "$ref": "#/definitions/AWS::DynamoDB::Table.SSESpecification", + "markdownDescription": "Specifies the settings to enable server\\-side encryption\\. \n*Required*: No \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "SSESpecification" }, "StreamSpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.StreamSpecification" + "$ref": "#/definitions/AWS::DynamoDB::Table.StreamSpecification", + "markdownDescription": "The settings for the DynamoDB table stream, which capture changes to items stored in the table\\. \n*Required*: No \n*Type*: [StreamSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-streamspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamSpecification" }, "TableClass": { + "markdownDescription": "The table class of the new table\\. Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `STANDARD | STANDARD_INFREQUENT_ACCESS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableClass", "type": "string" }, "TableName": { + "markdownDescription": "A name for the table\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the table name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TableName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TimeToLiveSpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.TimeToLiveSpecification" + "$ref": "#/definitions/AWS::DynamoDB::Table.TimeToLiveSpecification", + "markdownDescription": "Specifies the Time to Live \\(TTL\\) settings for the table\\. \nFor detailed information about the limits in DynamoDB, see [Limits in Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the Amazon DynamoDB Developer Guide\\. \n*Required*: No \n*Type*: [TimeToLiveSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-timetolivespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeToLiveSpecification" } }, "required": [ @@ -42237,9 +51715,13 @@ "additionalProperties": false, "properties": { "AttributeName": { + "markdownDescription": "A name for the attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeName", "type": "string" }, "AttributeType": { + "markdownDescription": "The data type for the attribute, where: \n+ `S` \\- the attribute is of type String\n+ `N` \\- the attribute is of type Number\n+ `B` \\- the attribute is of type Binary\n*Required*: Yes \n*Type*: String \n*Allowed values*: `B | N | S` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeType", "type": "string" } }, @@ -42253,6 +51735,8 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Indicates whether CloudWatch Contributor Insights are to be enabled \\(true\\) or disabled \\(false\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Allowed values*: `DISABLE | ENABLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -42280,22 +51764,32 @@ "additionalProperties": false, "properties": { "ContributorInsightsSpecification": { - "$ref": "#/definitions/AWS::DynamoDB::Table.ContributorInsightsSpecification" + "$ref": "#/definitions/AWS::DynamoDB::Table.ContributorInsightsSpecification", + "markdownDescription": "The settings used to enable or disable CloudWatch Contributor Insights for the specified global secondary index\\. \n*Required*: No \n*Type*: [ContributorInsightsSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-contributorinsightsspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContributorInsightsSpecification" }, "IndexName": { + "markdownDescription": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", + "title": "IndexName", "type": "string" }, "KeySchema": { "items": { "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" }, + "markdownDescription": "The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", + "title": "KeySchema", "type": "array" }, "Projection": { - "$ref": "#/definitions/AWS::DynamoDB::Table.Projection" + "$ref": "#/definitions/AWS::DynamoDB::Table.Projection", + "markdownDescription": "Represents attributes that are copied \\(projected\\) from the table into the global secondary index\\. These are in addition to the primary key attributes and index key attributes, which are automatically projected\\. \n*Required*: Yes \n*Type*: [Projection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-projectionobject.html) \n*Update requires*: Updates are not supported\\.", + "title": "Projection" }, "ProvisionedThroughput": { - "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput" + "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput", + "markdownDescription": "Represents the provisioned throughput settings for the specified global secondary index\\. \nFor current minimum and maximum provisioned throughput values, see [Service, Account, and Table Quotas](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the *Amazon DynamoDB Developer Guide*\\. \n*Required*: No \n*Type*: [ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisionedThroughput" } }, "required": [ @@ -42340,9 +51834,13 @@ "additionalProperties": false, "properties": { "AttributeName": { + "markdownDescription": "The name of a key attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeName", "type": "string" }, "KeyType": { + "markdownDescription": "The role that this key attribute will assume: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `HASH | RANGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyType", "type": "string" } }, @@ -42356,6 +51854,8 @@ "additionalProperties": false, "properties": { "StreamArn": { + "markdownDescription": "The ARN for a specific Kinesis data stream\\. \nLength Constraints: Minimum length of 37\\. Maximum length of 1024\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `37` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamArn", "type": "string" } }, @@ -42368,16 +51868,22 @@ "additionalProperties": false, "properties": { "IndexName": { + "markdownDescription": "The name of the local secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", + "title": "IndexName", "type": "string" }, "KeySchema": { "items": { "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" }, + "markdownDescription": "The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", + "title": "KeySchema", "type": "array" }, "Projection": { - "$ref": "#/definitions/AWS::DynamoDB::Table.Projection" + "$ref": "#/definitions/AWS::DynamoDB::Table.Projection", + "markdownDescription": "Represents attributes that are copied \\(projected\\) from the table into the local secondary index\\. These are in addition to the primary key attributes and index key attributes, which are automatically projected\\. \n*Required*: Yes \n*Type*: [Projection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-projectionobject.html) \n*Update requires*: Updates are not supported\\.", + "title": "Projection" } }, "required": [ @@ -42391,6 +51897,8 @@ "additionalProperties": false, "properties": { "PointInTimeRecoveryEnabled": { + "markdownDescription": "Indicates whether point in time recovery is enabled \\(true\\) or disabled \\(false\\) on the table\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PointInTimeRecoveryEnabled", "type": "boolean" } }, @@ -42403,9 +51911,13 @@ "items": { "type": "string" }, + "markdownDescription": "Represents the non\\-key attribute names which will be projected into the index\\. \nFor local secondary indexes, the total count of `NonKeyAttributes` summed across all of the local secondary indexes, must not exceed 20\\. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NonKeyAttributes", "type": "array" }, "ProjectionType": { + "markdownDescription": "The set of attributes that are projected into the index: \n+ `KEYS_ONLY` \\- Only the index and primary keys are projected into the index\\.\n+ `INCLUDE` \\- In addition to the attributes described in `KEYS_ONLY`, the secondary index will include other non\\-key attributes that you specify\\.\n+ `ALL` \\- All of the table attributes are projected into the index\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ALL | INCLUDE | KEYS_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProjectionType", "type": "string" } }, @@ -42415,9 +51927,13 @@ "additionalProperties": false, "properties": { "ReadCapacityUnits": { + "markdownDescription": "The maximum number of strongly consistent reads consumed per second before DynamoDB returns a `ThrottlingException`\\. For more information, see [Specifying Read and Write Requirements](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput) in the *Amazon DynamoDB Developer Guide*\\. \nIf read/write capacity mode is `PAY_PER_REQUEST` the value is set to 0\\. \n*Required*: Yes \n*Type*: Long \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadCapacityUnits", "type": "number" }, "WriteCapacityUnits": { + "markdownDescription": "The maximum number of writes consumed per second before DynamoDB returns a `ThrottlingException`\\. For more information, see [Specifying Read and Write Requirements](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput) in the *Amazon DynamoDB Developer Guide*\\. \nIf read/write capacity mode is `PAY_PER_REQUEST` the value is set to 0\\. \n*Required*: Yes \n*Type*: Long \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WriteCapacityUnits", "type": "number" } }, @@ -42449,12 +51965,18 @@ "additionalProperties": false, "properties": { "KMSMasterKeyId": { + "markdownDescription": "The AWS KMS key that should be used for the AWS KMS encryption\\. To specify a key, use its key ID, Amazon Resource Name \\(ARN\\), alias name, or alias ARN\\. Note that you should only provide this parameter if the key is different from the default DynamoDB key `alias/aws/dynamodb`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KMSMasterKeyId", "type": "string" }, "SSEEnabled": { + "markdownDescription": "Indicates whether server\\-side encryption is done using an AWS managed key or an AWS owned key\\. If enabled \\(true\\), server\\-side encryption type is set to `KMS` and an AWS managed key is used \\(AWS KMS charges apply\\)\\. If disabled \\(false\\) or not specified, server\\-side encryption is set to AWS owned key\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SSEEnabled", "type": "boolean" }, "SSEType": { + "markdownDescription": "Server\\-side encryption type\\. The only supported value is: \n+ `KMS` \\- Server\\-side encryption that uses AWS Key Management Service\\. The key is stored in your account and is managed by AWS KMS \\(AWS KMS charges apply\\)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SSEType", "type": "string" } }, @@ -42467,6 +51989,8 @@ "additionalProperties": false, "properties": { "StreamViewType": { + "markdownDescription": "When an item in the table is modified, `StreamViewType` determines what information is written to the stream for this table\\. Valid values for `StreamViewType` are: \n+ `KEYS_ONLY` \\- Only the key attributes of the modified item are written to the stream\\.\n+ `NEW_IMAGE` \\- The entire item, as it appears after it was modified, is written to the stream\\.\n+ `OLD_IMAGE` \\- The entire item, as it appeared before it was modified, is written to the stream\\.\n+ `NEW_AND_OLD_IMAGES` \\- Both the new and the old item images of the item are written to the stream\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `KEYS_ONLY | NEW_AND_OLD_IMAGES | NEW_IMAGE | OLD_IMAGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamViewType", "type": "string" } }, @@ -42479,9 +52003,13 @@ "additionalProperties": false, "properties": { "AttributeName": { + "markdownDescription": "The name of the TTL attribute used to store the expiration time for items in the table\\. \nTo update this property, you must first disable TTL then enable TTL with the new attribute name\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeName", "type": "string" }, "Enabled": { + "markdownDescription": "Indicates whether TTL is to be enabled \\(true\\) or disabled \\(false\\) on the table\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -42527,45 +52055,71 @@ "additionalProperties": false, "properties": { "AvailabilityZone": { + "markdownDescription": "The Availability Zone in which to create the Capacity Reservation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", "type": "string" }, "EbsOptimized": { + "markdownDescription": "Indicates whether the Capacity Reservation supports EBS\\-optimized instances\\. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance\\. This optimization isn't available with all instance types\\. Additional usage charges apply when using an EBS\\- optimized instance\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsOptimized", "type": "boolean" }, "EndDate": { + "markdownDescription": "The date and time at which the Capacity Reservation expires\\. When a Capacity Reservation expires, the reserved capacity is released and you can no longer launch instances into it\\. The Capacity Reservation's state changes to `expired` when it reaches its end date and time\\. \nYou must provide an `EndDate` value if `EndDateType` is `limited`\\. Omit `EndDate` if `EndDateType` is `unlimited`\\. \nIf the `EndDateType` is `limited`, the Capacity Reservation is cancelled within an hour from the specified time\\. For example, if you specify 5/31/2019, 13:30:55, the Capacity Reservation is guaranteed to end between 13:30:55 and 14:30:55 on 5/31/2019\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndDate", "type": "string" }, "EndDateType": { + "markdownDescription": "Indicates the way in which the Capacity Reservation ends\\. A Capacity Reservation can have one of the following end types: \n+ `unlimited` \\- The Capacity Reservation remains active until you explicitly cancel it\\. Do not provide an `EndDate` if the `EndDateType` is `unlimited`\\.\n+ `limited` \\- The Capacity Reservation expires automatically at a specified date and time\\. You must provide an `EndDate` value if the `EndDateType` value is `limited`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `limited | unlimited` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndDateType", "type": "string" }, "EphemeralStorage": { + "markdownDescription": "*Deprecated\\.* \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EphemeralStorage", "type": "boolean" }, "InstanceCount": { + "markdownDescription": "The number of instances for which to reserve capacity\\. \nValid range: 1 \\- 1000 \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceCount", "type": "number" }, "InstanceMatchCriteria": { + "markdownDescription": "Indicates the type of instance launches that the Capacity Reservation accepts\\. The options include: \n+ `open` \\- The Capacity Reservation automatically matches all instances that have matching attributes \\(instance type, platform, and Availability Zone\\)\\. Instances that have matching attributes run in the Capacity Reservation automatically without specifying any additional parameters\\.\n+ `targeted` \\- The Capacity Reservation only accepts instances that have matching attributes \\(instance type, platform, and Availability Zone\\), and explicitly target the Capacity Reservation\\. This ensures that only permitted instances can use the reserved capacity\\. \nDefault: `open` \n*Required*: No \n*Type*: String \n*Allowed values*: `open | targeted` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceMatchCriteria", "type": "string" }, "InstancePlatform": { + "markdownDescription": "The type of operating system for which to reserve capacity\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Linux with SQL Server Enterprise | Linux with SQL Server Standard | Linux with SQL Server Web | Linux/UNIX | Red Hat Enterprise Linux | RHEL with HA | RHEL with HA and SQL Server Enterprise | RHEL with HA and SQL Server Standard | RHEL with SQL Server Enterprise | RHEL with SQL Server Standard | RHEL with SQL Server Web | SUSE Linux | Windows | Windows with SQL Server | Windows with SQL Server Enterprise | Windows with SQL Server Standard | Windows with SQL Server Web` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstancePlatform", "type": "string" }, "InstanceType": { + "markdownDescription": "The instance type for which to reserve capacity\\. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", "type": "string" }, "OutPostArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Outpost on which to create the Capacity Reservation\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:outpost/op-[a-f0-9]{17}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OutPostArn", "type": "string" }, "PlacementGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the cluster placement group in which to create the Capacity Reservation\\. For more information, see [ Capacity Reservations for cluster placement groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cr-cpg.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws([a-z-]+)?:ec2:[a-z\\d-]+:\\d{12}:placement-group/([^\\s].+[^\\s]){1,255}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlacementGroupArn", "type": "string" }, "TagSpecifications": { "items": { "$ref": "#/definitions/AWS::EC2::CapacityReservation.TagSpecification" }, + "markdownDescription": "The tags to apply to the Capacity Reservation during launch\\. \n*Required*: No \n*Type*: List of [TagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservation-tagspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TagSpecifications", "type": "array" }, "Tenancy": { + "markdownDescription": "Indicates the tenancy of the Capacity Reservation\\. A Capacity Reservation can have one of the following tenancy settings: \n+ `default` \\- The Capacity Reservation is created on hardware that is shared with other AWS accounts\\.\n+ `dedicated` \\- The Capacity Reservation is created on single\\-tenant hardware that is dedicated to a single AWS account\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `dedicated | default` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tenancy", "type": "string" } }, @@ -42602,12 +52156,16 @@ "additionalProperties": false, "properties": { "ResourceType": { + "markdownDescription": "The type of resource to tag\\. Specify `capacity-reservation`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `capacity-reservation | capacity-reservation-fleet | carrier-gateway | client-vpn-endpoint | coip-pool | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | instance-event-window | internet-gateway | ipam | ipam-pool | ipam-resource-discovery | ipam-resource-discovery-association | ipam-scope | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | launch-template | local-gateway | local-gateway-route-table | local-gateway-route-table-virtual-interface-group-association | local-gateway-route-table-vpc-association | local-gateway-virtual-interface | local-gateway-virtual-interface-group | natgateway | network-acl | network-insights-access-scope | network-insights-access-scope-analysis | network-insights-analysis | network-insights-path | network-interface | placement-group | prefix-list | replace-root-volume-task | reserved-instances | route-server | route-server-endpoint | route-server-peer | route-table | security-group | security-group-rule | snapshot | spot-fleet-request | spot-instances-request | subnet | subnet-cidr-reservation | traffic-mirror-filter | traffic-mirror-filter-rule | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-policy-table | transit-gateway-route-table | transit-gateway-route-table-announcement | verified-access-endpoint | verified-access-group | verified-access-instance | verified-access-policy | verified-access-trust-provider | volume | vpc | vpc-block-public-access-exclusion | vpc-endpoint | vpc-endpoint-connection | vpc-endpoint-connection-device-type | vpc-endpoint-service | vpc-endpoint-service-permission | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-connection-device-type | vpn-gateway` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceType", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to apply to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -42649,36 +52207,54 @@ "additionalProperties": false, "properties": { "AllocationStrategy": { + "markdownDescription": "The strategy used by the Capacity Reservation Fleet to determine which of the specified instance types to use\\. Currently, only the `prioritized` allocation strategy is supported\\. For more information, see [ Allocation strategy](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#allocation-strategy) in the Amazon EC2 User Guide\\. \nValid values: `prioritized` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AllocationStrategy", "type": "string" }, "EndDate": { + "markdownDescription": "The date and time at which the Capacity Reservation Fleet expires\\. When the Capacity Reservation Fleet expires, its state changes to `expired` and all of the Capacity Reservations in the Fleet expire\\. \nThe Capacity Reservation Fleet expires within an hour after the specified time\\. For example, if you specify `5/31/2019`, `13:30:55`, the Capacity Reservation Fleet is guaranteed to expire between `13:30:55` and `14:30:55` on `5/31/2019`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EndDate", "type": "string" }, "InstanceMatchCriteria": { + "markdownDescription": "Indicates the type of instance launches that the Capacity Reservation Fleet accepts\\. All Capacity Reservations in the Fleet inherit this instance matching criteria\\. \nCurrently, Capacity Reservation Fleets support `open` instance matching criteria only\\. This means that instances that have matching attributes \\(instance type, platform, and Availability Zone\\) run in the Capacity Reservations automatically\\. Instances do not need to explicitly target a Capacity Reservation Fleet to use its reserved capacity\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `open` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceMatchCriteria", "type": "string" }, "InstanceTypeSpecifications": { "items": { "$ref": "#/definitions/AWS::EC2::CapacityReservationFleet.InstanceTypeSpecification" }, + "markdownDescription": "Information about the instance types for which to reserve the capacity\\. \n*Required*: No \n*Type*: List of [InstanceTypeSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-instancetypespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceTypeSpecifications", "type": "array" }, "NoRemoveEndDate": { + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoRemoveEndDate", "type": "boolean" }, "RemoveEndDate": { + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveEndDate", "type": "boolean" }, "TagSpecifications": { "items": { "$ref": "#/definitions/AWS::EC2::CapacityReservationFleet.TagSpecification" }, + "markdownDescription": "The tags to assign to the Capacity Reservation Fleet\\. The tags are automatically assigned to the Capacity Reservations in the Fleet\\. \n*Required*: No \n*Type*: List of [TagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-tagspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TagSpecifications", "type": "array" }, "Tenancy": { + "markdownDescription": "Indicates the tenancy of the Capacity Reservation Fleet\\. All Capacity Reservations in the Fleet inherit this tenancy\\. The Capacity Reservation Fleet can have one of the following tenancy settings: \n+ `default` \\- The Capacity Reservation Fleet is created on hardware that is shared with other AWS accounts\\.\n+ `dedicated` \\- The Capacity Reservations are created on single\\-tenant hardware that is dedicated to a single AWS account\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `default` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tenancy", "type": "string" }, "TotalTargetCapacity": { + "markdownDescription": "The total number of capacity units to be reserved by the Capacity Reservation Fleet\\. This value, together with the instance type weights that you assign to each instance type used by the Fleet determine the number of instances for which the Fleet reserves capacity\\. Both values are based on units that make sense for your workload\\. For more information, see [ Total target capacity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity) in the Amazon EC2 User Guide\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TotalTargetCapacity", "type": "number" } }, @@ -42708,24 +52284,38 @@ "additionalProperties": false, "properties": { "AvailabilityZone": { + "markdownDescription": "The Availability Zone in which the Capacity Reservation Fleet reserves the capacity\\. A Capacity Reservation Fleet can't span Availability Zones\\. All instance type specifications that you specify for the Fleet must use the same Availability Zone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", "type": "string" }, "AvailabilityZoneId": { + "markdownDescription": "The ID of the Availability Zone in which the Capacity Reservation Fleet reserves the capacity\\. A Capacity Reservation Fleet can't span Availability Zones\\. All instance type specifications that you specify for the Fleet must use the same Availability Zone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZoneId", "type": "string" }, "EbsOptimized": { + "markdownDescription": "Indicates whether the Capacity Reservation Fleet supports EBS\\-optimized instances types\\. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance\\. This optimization isn't available with all instance types\\. Additional usage charges apply when using EBS\\-optimized instance types\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsOptimized", "type": "boolean" }, "InstancePlatform": { + "markdownDescription": "The type of operating system for which the Capacity Reservation Fleet reserves capacity\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Linux with SQL Server Enterprise | Linux with SQL Server Standard | Linux with SQL Server Web | Linux/UNIX | Red Hat Enterprise Linux | RHEL with HA | RHEL with HA and SQL Server Enterprise | RHEL with HA and SQL Server Standard | RHEL with SQL Server Enterprise | RHEL with SQL Server Standard | RHEL with SQL Server Web | SUSE Linux | Windows | Windows with SQL Server | Windows with SQL Server Enterprise | Windows with SQL Server Standard | Windows with SQL Server Web` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstancePlatform", "type": "string" }, "InstanceType": { + "markdownDescription": "The instance type for which the Capacity Reservation Fleet reserves capacity\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | mac1.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6ad.12xlarge | r6ad.16xlarge | r6ad.24xlarge | r6ad.2xlarge | r6ad.32xlarge | r6ad.48xlarge | r6ad.4xlarge | r6ad.8xlarge | r6ad.large | r6ad.metal | r6ad.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", "type": "string" }, "Priority": { + "markdownDescription": "The priority to assign to the instance type\\. This value is used to determine which of the instance types specified for the Fleet should be prioritized for use\\. A lower value indicates a high priority\\. For more information, see [Instance type priority](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#instance-priority) in the Amazon EC2 User Guide\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Priority", "type": "number" }, "Weight": { + "markdownDescription": "The number of capacity units provided by the specified instance type\\. This value, together with the total target capacity that you specify for the Fleet determine the number of instances for which the Fleet reserves capacity\\. Both values are based on units that make sense for your workload\\. For more information, see [Total target capacity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity) in the Amazon EC2 User Guide\\. \nValid Range: Minimum value of `0.001`\\. Maximum value of `99.999`\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Weight", "type": "number" } }, @@ -42735,12 +52325,16 @@ "additionalProperties": false, "properties": { "ResourceType": { + "markdownDescription": "The type of resource to tag on creation\\. Specify `capacity-reservation-fleet`\\. \nTo tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceType", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to apply to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -42785,9 +52379,13 @@ "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags assigned to the carrier gateway\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VpcId": { + "markdownDescription": "The ID of the VPC associated with the carrier gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -42853,18 +52451,28 @@ "additionalProperties": false, "properties": { "AccessGroupId": { + "markdownDescription": "The ID of the group to grant access to, for example, the Active Directory group or identity provider \\(IdP\\) group\\. Required if `AuthorizeAllGroups` is `false` or not specified\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccessGroupId", "type": "string" }, "AuthorizeAllGroups": { + "markdownDescription": "Indicates whether to grant access to all clients\\. Specify `true` to grant all clients who successfully establish a VPN connection access to the network\\. Must be set to `true` if `AccessGroupId` is not specified\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthorizeAllGroups", "type": "boolean" }, "ClientVpnEndpointId": { + "markdownDescription": "The ID of the Client VPN endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientVpnEndpointId", "type": "string" }, "Description": { + "markdownDescription": "A brief description of the authorization rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "TargetNetworkCidr": { + "markdownDescription": "The IPv4 address range, in CIDR notation, of the network for which access is being authorized\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetNetworkCidr", "type": "string" } }, @@ -42934,60 +52542,92 @@ "items": { "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ClientAuthenticationRequest" }, + "markdownDescription": "Information about the authentication method to be used to authenticate clients\\. \n*Required*: Yes \n*Type*: List of [ClientAuthenticationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientauthenticationrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthenticationOptions", "type": "array" }, "ClientCidrBlock": { + "markdownDescription": "The IPv4 address range, in CIDR notation, from which to assign client IP addresses\\. The address range cannot overlap with the local CIDR of the VPC in which the associated subnet is located, or the routes that you add manually\\. The address range cannot be changed after the Client VPN endpoint has been created\\. Client CIDR range must have a size of at least /22 and must not be greater than /12\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientCidrBlock", "type": "string" }, "ClientConnectOptions": { - "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ClientConnectOptions" + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ClientConnectOptions", + "markdownDescription": "The options for managing connection authorization for new client connections\\. \n*Required*: No \n*Type*: [ClientConnectOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientconnectoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientConnectOptions" }, "ClientLoginBannerOptions": { - "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ClientLoginBannerOptions" + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ClientLoginBannerOptions", + "markdownDescription": "Options for enabling a customizable text banner that will be displayed on AWS provided clients when a VPN session is established\\. \n*Required*: No \n*Type*: [ClientLoginBannerOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientloginbanneroptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientLoginBannerOptions" }, "ConnectionLogOptions": { - "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ConnectionLogOptions" + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ConnectionLogOptions", + "markdownDescription": "Information about the client connection logging options\\. \nIf you enable client connection logging, data about client connections is sent to a Cloudwatch Logs log stream\\. The following information is logged: \n+ Client connection requests\n+ Client connection results \\(successful and unsuccessful\\)\n+ Reasons for unsuccessful client connection requests\n+ Client connection termination time\n*Required*: Yes \n*Type*: [ConnectionLogOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-connectionlogoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionLogOptions" }, "Description": { + "markdownDescription": "A brief description of the Client VPN endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DnsServers": { "items": { "type": "string" }, + "markdownDescription": "Information about the DNS servers to be used for DNS resolution\\. A Client VPN endpoint can have up to two DNS servers\\. If no DNS server is specified, the DNS address configured on the device is used for the DNS server\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DnsServers", "type": "array" }, "SecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "The IDs of one or more security groups to apply to the target network\\. You must also specify the ID of the VPC that contains the security groups\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "SelfServicePortal": { + "markdownDescription": "Specify whether to enable the self\\-service portal for the Client VPN endpoint\\. \nDefault Value: `enabled` \n*Required*: No \n*Type*: String \n*Allowed values*: `disabled | enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SelfServicePortal", "type": "string" }, "ServerCertificateArn": { + "markdownDescription": "The ARN of the server certificate\\. For more information, see the [AWS Certificate Manager User Guide](https://docs.aws.amazon.com/acm/latest/userguide/)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerCertificateArn", "type": "string" }, "SessionTimeoutHours": { + "markdownDescription": "The maximum VPN session duration time in hours\\. \nValid values: `8 | 10 | 12 | 24` \nDefault value: `24` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionTimeoutHours", "type": "number" }, "SplitTunnel": { + "markdownDescription": "Indicates whether split\\-tunnel is enabled on the AWS Client VPN endpoint\\. \nBy default, split\\-tunnel on a VPN endpoint is disabled\\. \nFor information about split\\-tunnel VPN endpoints, see [Split\\-tunnel AWS Client VPN endpoint](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html) in the * AWS Client VPN Administrator Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SplitTunnel", "type": "boolean" }, "TagSpecifications": { "items": { "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.TagSpecification" }, + "markdownDescription": "The tags to apply to the Client VPN endpoint during creation\\. \n*Required*: No \n*Type*: List of [TagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-tagspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TagSpecifications", "type": "array" }, "TransportProtocol": { + "markdownDescription": "The transport protocol to be used by the VPN session\\. \nDefault value: `udp` \n*Required*: No \n*Type*: String \n*Allowed values*: `tcp | udp` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransportProtocol", "type": "string" }, "VpcId": { + "markdownDescription": "The ID of the VPC to associate with the Client VPN endpoint\\. If no security group IDs are specified in the request, the default security group for the VPC is applied\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcId", "type": "string" }, "VpnPort": { + "markdownDescription": "The port number to assign to the Client VPN endpoint for TCP and UDP traffic\\. \nValid Values: `443` \\| `1194` \nDefault Value: `443` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpnPort", "type": "number" } }, @@ -43024,6 +52664,8 @@ "additionalProperties": false, "properties": { "ClientRootCertificateChainArn": { + "markdownDescription": "The ARN of the client certificate\\. The certificate must be signed by a certificate authority \\(CA\\) and it must be provisioned in AWS Certificate Manager \\(ACM\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientRootCertificateChainArn", "type": "string" } }, @@ -43036,15 +52678,23 @@ "additionalProperties": false, "properties": { "ActiveDirectory": { - "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.DirectoryServiceAuthenticationRequest" + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.DirectoryServiceAuthenticationRequest", + "markdownDescription": "Information about the Active Directory to be used, if applicable\\. You must provide this information if **Type** is `directory-service-authentication`\\. \n*Required*: No \n*Type*: [DirectoryServiceAuthenticationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-directoryserviceauthenticationrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActiveDirectory" }, "FederatedAuthentication": { - "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.FederatedAuthenticationRequest" + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.FederatedAuthenticationRequest", + "markdownDescription": "Information about the IAM SAML identity provider, if applicable\\. \n*Required*: No \n*Type*: [FederatedAuthenticationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-federatedauthenticationrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FederatedAuthentication" }, "MutualAuthentication": { - "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.CertificateAuthenticationRequest" + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.CertificateAuthenticationRequest", + "markdownDescription": "Information about the authentication certificates to be used, if applicable\\. You must provide this information if **Type** is `certificate-authentication`\\. \n*Required*: No \n*Type*: [CertificateAuthenticationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-certificateauthenticationrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MutualAuthentication" }, "Type": { + "markdownDescription": "The type of client authentication to be used\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `certificate-authentication | directory-service-authentication | federated-authentication` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -43057,9 +52707,13 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Indicates whether client connect options are enabled\\. The default is `false` \\(not enabled\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "LambdaFunctionArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Lambda function used for connection authorization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaFunctionArn", "type": "string" } }, @@ -43072,9 +52726,13 @@ "additionalProperties": false, "properties": { "BannerText": { + "markdownDescription": "Customizable text that will be displayed in a banner on AWS provided clients when a VPN session is established\\. UTF\\-8 encoded characters only\\. Maximum of 1400 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BannerText", "type": "string" }, "Enabled": { + "markdownDescription": "Enable or disable a customizable text banner that will be displayed on AWS provided clients when a VPN session is established\\. \nValid values: `true | false` \nDefault value: `false` \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -43087,12 +52745,18 @@ "additionalProperties": false, "properties": { "CloudwatchLogGroup": { + "markdownDescription": "The name of the CloudWatch Logs log group\\. Required if connection logging is enabled\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudwatchLogGroup", "type": "string" }, "CloudwatchLogStream": { + "markdownDescription": "The name of the CloudWatch Logs log stream to which the connection data is published\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudwatchLogStream", "type": "string" }, "Enabled": { + "markdownDescription": "Indicates whether connection logging is enabled\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -43105,6 +52769,8 @@ "additionalProperties": false, "properties": { "DirectoryId": { + "markdownDescription": "The ID of the Active Directory to be used for authentication\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DirectoryId", "type": "string" } }, @@ -43117,9 +52783,13 @@ "additionalProperties": false, "properties": { "SAMLProviderArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM SAML identity provider\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SAMLProviderArn", "type": "string" }, "SelfServiceSAMLProviderArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM SAML identity provider for the self\\-service portal\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SelfServiceSAMLProviderArn", "type": "string" } }, @@ -43132,12 +52802,16 @@ "additionalProperties": false, "properties": { "ResourceType": { + "markdownDescription": "The type of resource to tag\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `capacity-reservation | capacity-reservation-fleet | carrier-gateway | client-vpn-endpoint | coip-pool | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | instance-event-window | internet-gateway | ipam | ipam-pool | ipam-resource-discovery | ipam-resource-discovery-association | ipam-scope | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | launch-template | local-gateway | local-gateway-route-table | local-gateway-route-table-virtual-interface-group-association | local-gateway-route-table-vpc-association | local-gateway-virtual-interface | local-gateway-virtual-interface-group | natgateway | network-acl | network-insights-access-scope | network-insights-access-scope-analysis | network-insights-analysis | network-insights-path | network-interface | placement-group | prefix-list | replace-root-volume-task | reserved-instances | route-server | route-server-endpoint | route-server-peer | route-table | security-group | security-group-rule | snapshot | spot-fleet-request | spot-instances-request | subnet | subnet-cidr-reservation | traffic-mirror-filter | traffic-mirror-filter-rule | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-policy-table | transit-gateway-route-table | transit-gateway-route-table-announcement | verified-access-endpoint | verified-access-group | verified-access-instance | verified-access-policy | verified-access-trust-provider | volume | vpc | vpc-block-public-access-exclusion | vpc-endpoint | vpc-endpoint-connection | vpc-endpoint-connection-device-type | vpc-endpoint-service | vpc-endpoint-service-permission | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-connection-device-type | vpn-gateway` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceType", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to apply to the resource\\. \n*Required*: Yes \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -43183,15 +52857,23 @@ "additionalProperties": false, "properties": { "ClientVpnEndpointId": { + "markdownDescription": "The ID of the Client VPN endpoint to which to add the route\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientVpnEndpointId", "type": "string" }, "Description": { + "markdownDescription": "A brief description of the route\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "DestinationCidrBlock": { + "markdownDescription": "The IPv4 address range, in CIDR notation, of the route destination\\. For example: \n+ To add a route for Internet access, enter `0.0.0.0/0` \n+ To add a route for a peered VPC, enter the peered VPC's IPv4 CIDR range\n+ To add a route for an on\\-premises network, enter the AWS Site\\-to\\-Site VPN connection's IPv4 CIDR range\n+ To add a route for the local network, enter the client CIDR range\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationCidrBlock", "type": "string" }, "TargetVpcSubnetId": { + "markdownDescription": "The ID of the subnet through which you want to route traffic\\. The specified subnet must be an existing target network of the Client VPN endpoint\\. \nAlternatively, if you're adding a route for the local network, specify `local`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetVpcSubnetId", "type": "string" } }, @@ -43259,9 +52941,13 @@ "additionalProperties": false, "properties": { "ClientVpnEndpointId": { + "markdownDescription": "The ID of the Client VPN endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientVpnEndpointId", "type": "string" }, "SubnetId": { + "markdownDescription": "The ID of the subnet to associate with the Client VPN endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", "type": "string" } }, @@ -43328,18 +53014,31 @@ "additionalProperties": false, "properties": { "BgpAsn": { + "markdownDescription": "For devices that support BGP, the customer gateway's BGP ASN\\. \nDefault: 65000 \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BgpAsn", "type": "number" }, + "DeviceName": { + "markdownDescription": "The name of customer gateway device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceName", + "type": "string" + }, "IpAddress": { + "markdownDescription": "IPv4 address for the customer gateway device's outside interface\\. The address must be static\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpAddress", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "One or more tags for the customer gateway\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Type": { + "markdownDescription": "The type of VPN connection that this customer gateway supports \\(`ipsec.1`\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ipsec.1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -43407,33 +53106,45 @@ "additionalProperties": false, "properties": { "DomainName": { + "markdownDescription": "This value is used to complete unqualified DNS hostnames\\. If you're using AmazonProvidedDNS in `us-east-1`, specify `ec2.internal`\\. If you're using AmazonProvidedDNS in another Region, specify *region*\\.`compute.internal` \\(for example, `ap-northeast-1.compute.internal`\\)\\. Otherwise, specify a domain name \\(for example, *MyCompany\\.com*\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", "type": "string" }, "DomainNameServers": { "items": { "type": "string" }, + "markdownDescription": "The IPv4 addresses of up to four domain name servers, or `AmazonProvidedDNS`\\. The default is `AmazonProvidedDNS`\\. To have your instance receive a custom DNS hostname as specified in `DomainName`, you must set this property to a custom DNS server\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainNameServers", "type": "array" }, "NetbiosNameServers": { "items": { "type": "string" }, + "markdownDescription": "The IPv4 addresses of up to four NetBIOS name servers\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetbiosNameServers", "type": "array" }, "NetbiosNodeType": { + "markdownDescription": "The NetBIOS node type \\(1, 2, 4, or 8\\)\\. We recommend that you specify 2 \\(broadcast and multicast are not currently supported\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetbiosNodeType", "type": "number" }, "NtpServers": { "items": { "type": "string" }, + "markdownDescription": "The IPv4 addresses of up to four Network Time Protocol \\(NTP\\) servers\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NtpServers", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Any tags assigned to the DHCP options set\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -43495,45 +53206,69 @@ "additionalProperties": false, "properties": { "Context": { + "markdownDescription": "Reserved\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Context", "type": "string" }, "ExcessCapacityTerminationPolicy": { + "markdownDescription": "Indicates whether running instances should be terminated if the total target capacity of the EC2 Fleet is decreased below the current size of the EC2 Fleet\\. \nSupported only for fleets of type `maintain`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `no-termination | termination` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcessCapacityTerminationPolicy", "type": "string" }, "LaunchTemplateConfigs": { "items": { "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest" }, + "markdownDescription": "The configuration for the EC2 Fleet\\. \n*Required*: Yes \n*Type*: List of [FleetLaunchTemplateConfigRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateconfigrequest.html) \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchTemplateConfigs", "type": "array" }, "OnDemandOptions": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.OnDemandOptionsRequest" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.OnDemandOptionsRequest", + "markdownDescription": "Describes the configuration of On\\-Demand Instances in an EC2 Fleet\\. \n*Required*: No \n*Type*: [OnDemandOptionsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ondemandoptionsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OnDemandOptions" }, "ReplaceUnhealthyInstances": { + "markdownDescription": "Indicates whether EC2 Fleet should replace unhealthy Spot Instances\\. Supported only for fleets of type `maintain`\\. For more information, see [EC2 Fleet health checks](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#ec2-fleet-health-checks) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplaceUnhealthyInstances", "type": "boolean" }, "SpotOptions": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.SpotOptionsRequest" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.SpotOptionsRequest", + "markdownDescription": "Describes the configuration of Spot Instances in an EC2 Fleet\\. \n*Required*: No \n*Type*: [SpotOptionsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpotOptions" }, "TagSpecifications": { "items": { "$ref": "#/definitions/AWS::EC2::EC2Fleet.TagSpecification" }, + "markdownDescription": "The key\\-value pair for tagging the EC2 Fleet request on creation\\. For more information, see [Tagging your resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources)\\. \nIf the fleet type is `instant`, specify a resource type of `fleet` to tag the fleet or `instance` to tag the instances at launch\\. \nIf the fleet type is `maintain` or `request`, specify a resource type of `fleet` to tag the fleet\\. You cannot specify a resource type of `instance`\\. To tag instances at launch, specify the tags in a [launch template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template)\\. \n*Required*: No \n*Type*: List of [TagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-tagspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TagSpecifications", "type": "array" }, "TargetCapacitySpecification": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest", + "markdownDescription": "The number of units to request\\. \n*Required*: Yes \n*Type*: [TargetCapacitySpecificationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-targetcapacityspecificationrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetCapacitySpecification" }, "TerminateInstancesWithExpiration": { + "markdownDescription": "Indicates whether running instances should be terminated when the EC2 Fleet expires\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TerminateInstancesWithExpiration", "type": "boolean" }, "Type": { + "markdownDescription": "The fleet type\\. The default value is `maintain`\\. \n+ `maintain` \\- The EC2 Fleet places an asynchronous request for your desired capacity, and continues to maintain your desired Spot capacity by replenishing interrupted Spot Instances\\.\n+ `request` \\- The EC2 Fleet places an asynchronous one\\-time request for your desired capacity, but does submit Spot requests in alternative capacity pools if Spot capacity is unavailable, and does not maintain Spot capacity if Spot Instances are interrupted\\.\n+ `instant` \\- The EC2 Fleet places a synchronous one\\-time request for your desired capacity, and returns errors for any instances that could not be launched\\.\nFor more information, see [EC2 Fleet request types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-request-type.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `instant | maintain | request` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" }, "ValidFrom": { + "markdownDescription": "The start date and time of the request, in UTC format \\(for example, *YYYY*\\-*MM*\\-*DD*T*HH*:*MM*:*SS*Z\\)\\. The default is to start fulfilling the request immediately\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ValidFrom", "type": "string" }, "ValidUntil": { + "markdownDescription": "The end date and time of the request, in UTC format \\(for example, *YYYY*\\-*MM*\\-*DD*T*HH*:*MM*:*SS*Z\\)\\. At this point, no new EC2 Fleet requests are placed or able to fulfill the request\\. If no value is specified, the request remains until you cancel it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ValidUntil", "type": "string" } }, @@ -43568,9 +53303,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum number of accelerators\\. To specify no maximum limit, omit this parameter\\. To exclude accelerator\\-enabled instance types, set `Max` to `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum number of accelerators\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", "type": "number" } }, @@ -43580,9 +53319,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum amount of accelerator memory, in MiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum amount of accelerator memory, in MiB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", "type": "number" } }, @@ -43592,9 +53335,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum baseline bandwidth, in Mbps\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum baseline bandwidth, in Mbps\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", "type": "number" } }, @@ -43604,9 +53351,13 @@ "additionalProperties": false, "properties": { "ReplacementStrategy": { + "markdownDescription": "The replacement strategy to use\\. Only available for fleets of type `maintain`\\. \n `launch` \\- EC2 Fleet launches a replacement Spot Instance when a rebalance notification is emitted for an existing Spot Instance in the fleet\\. EC2 Fleet does not terminate the instances that receive a rebalance notification\\. You can terminate the old instances, or you can leave them running\\. You are charged for all instances while they are running\\. \n `launch-before-terminate` \\- EC2 Fleet launches a replacement Spot Instance when a rebalance notification is emitted for an existing Spot Instance in the fleet, and then, after a delay that you specify \\(in `TerminationDelay`\\), terminates the instances that received a rebalance notification\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `launch | launch-before-terminate` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplacementStrategy", "type": "string" }, "TerminationDelay": { + "markdownDescription": "The amount of time \\(in seconds\\) that Amazon EC2 waits before terminating the old Spot Instance after launching a new replacement Spot Instance\\. \nRequired when `ReplacementStrategy` is set to `launch-before-terminate`\\. \nNot valid when `ReplacementStrategy` is set to `launch`\\. \nValid values: Minimum value of `120` seconds\\. Maximum value of `7200` seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TerminationDelay", "type": "number" } }, @@ -43616,6 +53367,8 @@ "additionalProperties": false, "properties": { "UsageStrategy": { + "markdownDescription": "Indicates whether to use unused Capacity Reservations for fulfilling On\\-Demand capacity\\. \nIf you specify `use-capacity-reservations-first`, the fleet uses unused Capacity Reservations to fulfill On\\-Demand capacity up to the target On\\-Demand capacity\\. If multiple instance pools have unused Capacity Reservations, the On\\-Demand allocation strategy \\(`lowest-price` or `prioritized`\\) is applied\\. If the number of unused Capacity Reservations is less than the On\\-Demand target capacity, the remaining On\\-Demand target capacity is launched according to the On\\-Demand allocation strategy \\(`lowest-price` or `prioritized`\\)\\. \nIf you do not specify a value, the fleet fulfils the On\\-Demand capacity according to the chosen On\\-Demand allocation strategy\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `use-capacity-reservations-first` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UsageStrategy", "type": "string" } }, @@ -43625,12 +53378,16 @@ "additionalProperties": false, "properties": { "LaunchTemplateSpecification": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest", + "markdownDescription": "The launch template to use\\. You must specify either the launch template ID or launch template name in the request\\. \n*Required*: No \n*Type*: [FleetLaunchTemplateSpecificationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplatespecificationrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchTemplateSpecification" }, "Overrides": { "items": { "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest" }, + "markdownDescription": "Any parameters that you specify override the same parameters in the launch template\\. \nFor fleets of type `request` and `maintain`, a maximum of 300 items is allowed across all launch templates\\. \n*Required*: No \n*Type*: List of [FleetLaunchTemplateOverridesRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Overrides", "type": "array" } }, @@ -43640,27 +53397,43 @@ "additionalProperties": false, "properties": { "AvailabilityZone": { + "markdownDescription": "The Availability Zone in which to launch the instances\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", "type": "string" }, "InstanceRequirements": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.InstanceRequirementsRequest" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.InstanceRequirementsRequest", + "markdownDescription": "The attributes for the instance types\\. When you specify instance attributes, Amazon EC2 will identify instance types with those attributes\\. \nIf you specify `InstanceRequirements`, you can't specify `InstanceType`\\.\n*Required*: No \n*Type*: [InstanceRequirementsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceRequirements" }, "InstanceType": { + "markdownDescription": "The instance type\\. \nIf you specify `InstanceType`, you can't specify `InstanceRequirements`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | mac1.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6ad.12xlarge | r6ad.16xlarge | r6ad.24xlarge | r6ad.2xlarge | r6ad.32xlarge | r6ad.48xlarge | r6ad.4xlarge | r6ad.8xlarge | r6ad.large | r6ad.metal | r6ad.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", "type": "string" }, "MaxPrice": { + "markdownDescription": "The maximum price per unit hour that you are willing to pay for a Spot Instance\\. We do not recommend using this parameter because it can lead to increased interruptions\\. If you do not specify this parameter, you will pay the current Spot price\\. \nIf you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaxPrice", "type": "string" }, "Placement": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.Placement" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.Placement", + "markdownDescription": "The location where the instance launched, if applicable\\. \n*Required*: No \n*Type*: [Placement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-placement.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Placement" }, "Priority": { + "markdownDescription": "The priority for the launch template override\\. The highest priority is launched first\\. \nIf the On\\-Demand `AllocationStrategy` is set to `prioritized`, EC2 Fleet uses priority to determine which launch template override to use first in fulfilling On\\-Demand capacity\\. \nIf the Spot `AllocationStrategy` is set to `capacity-optimized-prioritized`, EC2 Fleet uses priority on a best\\-effort basis to determine which launch template override to use in fulfilling Spot capacity, but optimizes for capacity first\\. \nValid values are whole numbers starting at `0`\\. The lower the number, the higher the priority\\. If no number is set, the launch template override has the lowest priority\\. You can set the same priority for different launch template overrides\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Priority", "type": "number" }, "SubnetId": { + "markdownDescription": "The IDs of the subnets in which to launch the instances\\. Separate multiple subnet IDs using commas \\(for example, `subnet-1234abcdeexample1, subnet-0987cdef6example2`\\)\\. A request of type `instant` can have only one subnet ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", "type": "string" }, "WeightedCapacity": { + "markdownDescription": "The number of units provided by the specified instance type\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WeightedCapacity", "type": "number" } }, @@ -43670,12 +53443,18 @@ "additionalProperties": false, "properties": { "LaunchTemplateId": { + "markdownDescription": "The ID of the launch template\\. \nYou must specify the `LaunchTemplateId` or the `LaunchTemplateName`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchTemplateId", "type": "string" }, "LaunchTemplateName": { + "markdownDescription": "The name of the launch template\\. \nYou must specify the `LaunchTemplateName` or the `LaunchTemplateId`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9\\(\\)\\.\\-/_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchTemplateName", "type": "string" }, "Version": { + "markdownDescription": "The launch template version number, `$Latest`, or `$Default`\\. You must specify a value, otherwise the request fails\\. \nIf the value is `$Latest`, Amazon EC2 uses the latest version of the launch template\\. \nIf the value is `$Default`, Amazon EC2 uses the default version of the launch template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Version", "type": "string" } }, @@ -43688,97 +53467,143 @@ "additionalProperties": false, "properties": { "AcceleratorCount": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.AcceleratorCountRequest" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.AcceleratorCountRequest", + "markdownDescription": "The minimum and maximum number of accelerators \\(GPUs, FPGAs, or AWS Inferentia chips\\) on an instance\\. \nTo exclude accelerator\\-enabled instance types, set `Max` to `0`\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [AcceleratorCountRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-acceleratorcountrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorCount" }, "AcceleratorManufacturers": { "items": { "type": "string" }, + "markdownDescription": "Indicates whether instance types must have accelerators by specific manufacturers\\. \n+ For instance types with NVIDIA devices, specify `nvidia`\\.\n+ For instance types with AMD devices, specify `amd`\\.\n+ For instance types with AWS devices, specify `amazon-web-services`\\.\n+ For instance types with Xilinx devices, specify `xilinx`\\.\nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorManufacturers", "type": "array" }, "AcceleratorNames": { "items": { "type": "string" }, + "markdownDescription": "The accelerators that must be on the instance type\\. \n+ For instance types with NVIDIA A100 GPUs, specify `a100`\\.\n+ For instance types with NVIDIA V100 GPUs, specify `v100`\\.\n+ For instance types with NVIDIA K80 GPUs, specify `k80`\\.\n+ For instance types with NVIDIA T4 GPUs, specify `t4`\\.\n+ For instance types with NVIDIA M60 GPUs, specify `m60`\\.\n+ For instance types with AMD Radeon Pro V520 GPUs, specify `radeon-pro-v520`\\.\n+ For instance types with Xilinx VU9P FPGAs, specify ` vu9p`\\.\n+ For instance types with AWS Inferentia chips, specify `inferentia`\\.\n+ For instance types with NVIDIA GRID K520 GPUs, specify `k520`\\.\nDefault: Any accelerator \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorNames", "type": "array" }, "AcceleratorTotalMemoryMiB": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.AcceleratorTotalMemoryMiBRequest" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.AcceleratorTotalMemoryMiBRequest", + "markdownDescription": "The minimum and maximum amount of total accelerator memory, in MiB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [AcceleratorTotalMemoryMiBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-acceleratortotalmemorymibrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorTotalMemoryMiB" }, "AcceleratorTypes": { "items": { "type": "string" }, + "markdownDescription": "The accelerator types that must be on the instance type\\. \n+ To include instance types with GPU hardware, specify `gpu`\\.\n+ To include instance types with FPGA hardware, specify `fpga`\\.\n+ To include instance types with inference hardware, specify `inference`\\.\nDefault: Any accelerator type \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorTypes", "type": "array" }, "AllowedInstanceTypes": { "items": { "type": "string" }, + "markdownDescription": "The instance types to apply your specified attributes against\\. All other instance types are ignored, even if they match your specified attributes\\. \nYou can use strings with one or more wild cards, represented by an asterisk \\(`*`\\), to allow an instance type, size, or generation\\. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`\\. \nFor example, if you specify `c5*`,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types\\. If you specify `m5a.*`, Amazon EC2 will allow all the M5a instance types, but not the M5n instance types\\. \nIf you specify `AllowedInstanceTypes`, you can't specify `ExcludedInstanceTypes`\\.\nDefault: All instance types \n*Required*: No \n*Type*: List of String \n*Maximum*: `400` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AllowedInstanceTypes", "type": "array" }, "BareMetal": { + "markdownDescription": "Indicates whether bare metal instance types must be included, excluded, or required\\. \n+ To include bare metal instance types, specify `included`\\.\n+ To require only bare metal instance types, specify `required`\\.\n+ To exclude bare metal instance types, specify `excluded`\\.\nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BareMetal", "type": "string" }, "BaselineEbsBandwidthMbps": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.BaselineEbsBandwidthMbpsRequest" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.BaselineEbsBandwidthMbpsRequest", + "markdownDescription": "The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps\\. For more information, see [Amazon EBS\u2013optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide*\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [BaselineEbsBandwidthMbpsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-baselineebsbandwidthmbpsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BaselineEbsBandwidthMbps" }, "BurstablePerformance": { + "markdownDescription": "Indicates whether burstable performance T instance types are included, excluded, or required\\. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html)\\. \n+ To include burstable performance instance types, specify `included`\\.\n+ To require only burstable performance instance types, specify `required`\\.\n+ To exclude burstable performance instance types, specify `excluded`\\.\nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BurstablePerformance", "type": "string" }, "CpuManufacturers": { "items": { "type": "string" }, + "markdownDescription": "The CPU manufacturers to include\\. \n+ For instance types with Intel CPUs, specify `intel`\\.\n+ For instance types with AMD CPUs, specify `amd`\\.\n+ For instance types with AWS CPUs, specify `amazon-web-services`\\.\nDon't confuse the CPU manufacturer with the CPU architecture\\. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image \\(AMI\\) that you specify in your launch template\\.\nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CpuManufacturers", "type": "array" }, "ExcludedInstanceTypes": { "items": { "type": "string" }, + "markdownDescription": "The instance types to exclude\\. \nYou can use strings with one or more wild cards, represented by an asterisk \\(`*`\\), to exclude an instance family, type, size, or generation\\. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`\\. \nFor example, if you specify `c5*`,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types\\. If you specify `m5a.*`, Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types\\. \nIf you specify `ExcludedInstanceTypes`, you can't specify `AllowedInstanceTypes`\\.\nDefault: No excluded instance types \n*Required*: No \n*Type*: List of String \n*Maximum*: `400` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExcludedInstanceTypes", "type": "array" }, "InstanceGenerations": { "items": { "type": "string" }, + "markdownDescription": "Indicates whether current or previous generation instance types are included\\. The current generation instance types are recommended for use\\. Current generation instance types are typically the latest two to three generations in each instance family\\. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*\\. \nFor current generation instance types, specify `current`\\. \nFor previous generation instance types, specify `previous`\\. \nDefault: Current and previous generation instance types \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceGenerations", "type": "array" }, "LocalStorage": { + "markdownDescription": "Indicates whether instance types with instance store volumes are included, excluded, or required\\. For more information, [Amazon EC2 instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in the *Amazon EC2 User Guide*\\. \n+ To include instance types with instance store volumes, specify `included`\\.\n+ To require only instance types with instance store volumes, specify `required`\\.\n+ To exclude instance types with instance store volumes, specify `excluded`\\.\nDefault: `included` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalStorage", "type": "string" }, "LocalStorageTypes": { "items": { "type": "string" }, + "markdownDescription": "The type of local storage that is required\\. \n+ For instance types with hard disk drive \\(HDD\\) storage, specify `hdd`\\.\n+ For instance types with solid state drive \\(SSD\\) storage, specify `ssd`\\.\nDefault: `hdd` and `ssd` \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalStorageTypes", "type": "array" }, "MemoryGiBPerVCpu": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.MemoryGiBPerVCpuRequest" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.MemoryGiBPerVCpuRequest", + "markdownDescription": "The minimum and maximum amount of memory per vCPU, in GiB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [MemoryGiBPerVCpuRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-memorygibpervcpurequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MemoryGiBPerVCpu" }, "MemoryMiB": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.MemoryMiBRequest" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.MemoryMiBRequest", + "markdownDescription": "The minimum and maximum amount of memory, in MiB\\. \n*Required*: No \n*Type*: [MemoryMiBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-memorymibrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MemoryMiB" }, "NetworkBandwidthGbps": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.NetworkBandwidthGbpsRequest" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.NetworkBandwidthGbpsRequest", + "markdownDescription": "The minimum and maximum amount of network bandwidth, in gigabits per second \\(Gbps\\)\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [NetworkBandwidthGbpsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-networkbandwidthgbpsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkBandwidthGbps" }, "NetworkInterfaceCount": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.NetworkInterfaceCountRequest" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.NetworkInterfaceCountRequest", + "markdownDescription": "The minimum and maximum number of network interfaces\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [NetworkInterfaceCountRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-networkinterfacecountrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInterfaceCount" }, "OnDemandMaxPricePercentageOverLowestPrice": { + "markdownDescription": "The price protection threshold for On\\-Demand Instances\\. This is the maximum you\u2019ll pay for an On\\-Demand Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes\\. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold\\. \nThe parameter accepts an integer, which Amazon EC2 interprets as a percentage\\. \nTo turn off price protection, specify a high value, such as `999999`\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html)\\. \nIf you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per\\-vCPU or per\\-memory price instead of the per\\-instance price\\.\nDefault: `20` \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OnDemandMaxPricePercentageOverLowestPrice", "type": "number" }, "RequireHibernateSupport": { + "markdownDescription": "Indicates whether instance types must support hibernation for On\\-Demand Instances\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html)\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RequireHibernateSupport", "type": "boolean" }, "SpotMaxPricePercentageOverLowestPrice": { + "markdownDescription": "The price protection threshold for Spot Instance\\. This is the maximum you\u2019ll pay for an Spot Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes\\. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold\\. \nThe parameter accepts an integer, which Amazon EC2 interprets as a percentage\\. \nTo turn off price protection, specify a high value, such as `999999`\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html)\\. \nIf you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per\\-vCPU or per\\-memory price instead of the per\\-instance price\\.\nDefault: `100` \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpotMaxPricePercentageOverLowestPrice", "type": "number" }, "TotalLocalStorageGB": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.TotalLocalStorageGBRequest" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TotalLocalStorageGBRequest", + "markdownDescription": "The minimum and maximum amount of total local storage, in GB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [TotalLocalStorageGBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-totallocalstoragegbrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TotalLocalStorageGB" }, "VCpuCount": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.VCpuCountRangeRequest" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.VCpuCountRangeRequest", + "markdownDescription": "The minimum and maximum number of vCPUs\\. \n*Required*: No \n*Type*: [VCpuCountRangeRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-vcpucountrangerequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VCpuCount" } }, "type": "object" @@ -43787,7 +53612,9 @@ "additionalProperties": false, "properties": { "CapacityRebalance": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.CapacityRebalance" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.CapacityRebalance", + "markdownDescription": "The strategy to use when Amazon EC2 emits a signal that your Spot Instance is at an elevated risk of being interrupted\\. \n*Required*: No \n*Type*: [CapacityRebalance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-capacityrebalance.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CapacityRebalance" } }, "type": "object" @@ -43796,9 +53623,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum amount of memory per vCPU, in GiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum amount of memory per vCPU, in GiB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", "type": "number" } }, @@ -43808,9 +53639,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum amount of memory, in MiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum amount of memory, in MiB\\. To specify no minimum limit, specify `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", "type": "number" } }, @@ -43820,9 +53655,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum amount of network bandwidth, in Gbps\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum amount of network bandwidth, in Gbps\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", "type": "number" } }, @@ -43832,9 +53671,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum number of network interfaces\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum number of network interfaces\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", "type": "number" } }, @@ -43844,21 +53687,33 @@ "additionalProperties": false, "properties": { "AllocationStrategy": { + "markdownDescription": "The strategy that determines the order of the launch template overrides to use in fulfilling On\\-Demand capacity\\. \n `lowest-price` \\- EC2 Fleet uses price to determine the order, launching the lowest price first\\. \n `prioritized` \\- EC2 Fleet uses the priority that you assigned to each launch template override, launching the highest priority first\\. \nDefault: `lowest-price` \n*Required*: No \n*Type*: String \n*Allowed values*: `lowest-price | prioritized` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AllocationStrategy", "type": "string" }, "CapacityReservationOptions": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.CapacityReservationOptionsRequest" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.CapacityReservationOptionsRequest", + "markdownDescription": "The strategy for using unused Capacity Reservations for fulfilling On\\-Demand capacity\\. \nSupported only for fleets of type `instant`\\. \n*Required*: No \n*Type*: [CapacityReservationOptionsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-capacityreservationoptionsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CapacityReservationOptions" }, "MaxTotalPrice": { + "markdownDescription": "The maximum amount per hour for On\\-Demand Instances that you're willing to pay\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaxTotalPrice", "type": "string" }, "MinTargetCapacity": { + "markdownDescription": "The minimum target capacity for On\\-Demand Instances in the fleet\\. If the minimum target capacity is not reached, the fleet launches no instances\\. \nSupported only for fleets of type `instant`\\. \nAt least one of the following must be specified: `SingleAvailabilityZone` \\| `SingleInstanceType` \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MinTargetCapacity", "type": "number" }, "SingleAvailabilityZone": { + "markdownDescription": "Indicates that the fleet launches all On\\-Demand Instances into a single Availability Zone\\. \nSupported only for fleets of type `instant`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SingleAvailabilityZone", "type": "boolean" }, "SingleInstanceType": { + "markdownDescription": "Indicates that the fleet uses a single instance type to launch all On\\-Demand Instances in the fleet\\. \nSupported only for fleets of type `instant`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SingleInstanceType", "type": "boolean" } }, @@ -43868,27 +53723,43 @@ "additionalProperties": false, "properties": { "Affinity": { + "markdownDescription": "The affinity setting for the instance on the Dedicated Host\\. \nThis parameter is not supported for [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet) or [ImportInstance](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportInstance.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Affinity", "type": "string" }, "AvailabilityZone": { + "markdownDescription": "The Availability Zone of the instance\\. \nIf not specified, an Availability Zone will be automatically chosen for you based on the load balancing criteria for the Region\\. \nThis parameter is not supported for [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", "type": "string" }, "GroupName": { + "markdownDescription": "The name of the placement group that the instance is in\\. If you specify `GroupName`, you can't specify `GroupId`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupName", "type": "string" }, "HostId": { + "markdownDescription": "The ID of the Dedicated Host on which the instance resides\\. \nThis parameter is not supported for [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet) or [ImportInstance](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportInstance.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostId", "type": "string" }, "HostResourceGroupArn": { + "markdownDescription": "The ARN of the host resource group in which to launch the instances\\. \nIf you specify this parameter, either omit the **Tenancy** parameter or set it to `host`\\. \nThis parameter is not supported for [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostResourceGroupArn", "type": "string" }, "PartitionNumber": { + "markdownDescription": "The number of the partition that the instance is in\\. Valid only if the placement group strategy is set to `partition`\\. \nThis parameter is not supported for [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PartitionNumber", "type": "number" }, "SpreadDomain": { + "markdownDescription": "Reserved for future use\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpreadDomain", "type": "string" }, "Tenancy": { + "markdownDescription": "The tenancy of the instance \\(if the instance is running in a VPC\\)\\. An instance with a tenancy of `dedicated` runs on single\\-tenant hardware\\. \nThis parameter is not supported for [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet)\\. The `host` tenancy is not supported for [ImportInstance](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportInstance.html) or for T3 instances that are configured for the `unlimited` CPU credit option\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dedicated | default | host` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tenancy", "type": "string" } }, @@ -43898,27 +53769,43 @@ "additionalProperties": false, "properties": { "AllocationStrategy": { + "markdownDescription": "Indicates how to allocate the target Spot Instance capacity across the Spot Instance pools specified by the EC2 Fleet\\. \nIf the allocation strategy is `lowestPrice`, EC2 Fleet launches instances from the Spot Instance pools with the lowest price\\. This is the default allocation strategy\\. \nIf the allocation strategy is `diversified`, EC2 Fleet launches instances from all the Spot Instance pools that you specify\\. \nIf the allocation strategy is `capacityOptimized`, EC2 Fleet launches instances from Spot Instance pools that are optimally chosen based on the available Spot Instance capacity\\. \n*Allowed Values*: `lowestPrice` \\| `diversified` \\| `capacityOptimized` \\| `capacityOptimizedPrioritized` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AllocationStrategy", "type": "string" }, "InstanceInterruptionBehavior": { + "markdownDescription": "The behavior when a Spot Instance is interrupted\\. \nDefault: `terminate` \n*Required*: No \n*Type*: String \n*Allowed values*: `hibernate | stop | terminate` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceInterruptionBehavior", "type": "string" }, "InstancePoolsToUseCount": { + "markdownDescription": "The number of Spot pools across which to allocate your target Spot capacity\\. Supported only when Spot `AllocationStrategy` is set to `lowest-price`\\. EC2 Fleet selects the cheapest Spot pools and evenly allocates your target Spot capacity across the number of Spot pools that you specify\\. \nNote that EC2 Fleet attempts to draw Spot Instances from the number of pools that you specify on a best effort basis\\. If a pool runs out of Spot capacity before fulfilling your target capacity, EC2 Fleet will continue to fulfill your request by drawing from the next cheapest pool\\. To ensure that your target capacity is met, you might receive Spot Instances from more than the number of pools that you specified\\. Similarly, if most of the pools have no Spot capacity, you might receive your full target capacity from fewer than the number of pools that you specified\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstancePoolsToUseCount", "type": "number" }, "MaintenanceStrategies": { - "$ref": "#/definitions/AWS::EC2::EC2Fleet.MaintenanceStrategies" + "$ref": "#/definitions/AWS::EC2::EC2Fleet.MaintenanceStrategies", + "markdownDescription": "The strategies for managing your Spot Instances that are at an elevated risk of being interrupted\\. \n*Required*: No \n*Type*: [MaintenanceStrategies](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-maintenancestrategies.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaintenanceStrategies" }, "MaxTotalPrice": { + "markdownDescription": "The maximum amount per hour for Spot Instances that you're willing to pay\\. We do not recommend using this parameter because it can lead to increased interruptions\\. If you do not specify this parameter, you will pay the current Spot price\\. \nIf you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaxTotalPrice", "type": "string" }, "MinTargetCapacity": { + "markdownDescription": "The minimum target capacity for Spot Instances in the fleet\\. If the minimum target capacity is not reached, the fleet launches no instances\\. \nSupported only for fleets of type `instant`\\. \nAt least one of the following must be specified: `SingleAvailabilityZone` \\| `SingleInstanceType` \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MinTargetCapacity", "type": "number" }, "SingleAvailabilityZone": { + "markdownDescription": "Indicates that the fleet launches all Spot Instances into a single Availability Zone\\. \nSupported only for fleets of type `instant`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SingleAvailabilityZone", "type": "boolean" }, "SingleInstanceType": { + "markdownDescription": "Indicates that the fleet uses a single instance type to launch all Spot Instances in the fleet\\. \nSupported only for fleets of type `instant`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SingleInstanceType", "type": "boolean" } }, @@ -43928,12 +53815,16 @@ "additionalProperties": false, "properties": { "ResourceType": { + "markdownDescription": "The type of resource to tag\\. `ResourceType` must be `fleet`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `capacity-reservation | capacity-reservation-fleet | carrier-gateway | client-vpn-endpoint | coip-pool | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | instance-event-window | internet-gateway | ipam | ipam-pool | ipam-resource-discovery | ipam-resource-discovery-association | ipam-scope | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | launch-template | local-gateway | local-gateway-route-table | local-gateway-route-table-virtual-interface-group-association | local-gateway-route-table-vpc-association | local-gateway-virtual-interface | local-gateway-virtual-interface-group | natgateway | network-acl | network-insights-access-scope | network-insights-access-scope-analysis | network-insights-analysis | network-insights-path | network-interface | placement-group | prefix-list | replace-root-volume-task | reserved-instances | route-server | route-server-endpoint | route-server-peer | route-table | security-group | security-group-rule | snapshot | spot-fleet-request | spot-instances-request | subnet | subnet-cidr-reservation | traffic-mirror-filter | traffic-mirror-filter-rule | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-policy-table | transit-gateway-route-table | transit-gateway-route-table-announcement | verified-access-endpoint | verified-access-group | verified-access-instance | verified-access-policy | verified-access-trust-provider | volume | vpc | vpc-block-public-access-exclusion | vpc-endpoint | vpc-endpoint-connection | vpc-endpoint-connection-device-type | vpc-endpoint-service | vpc-endpoint-service-permission | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-connection-device-type | vpn-gateway` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceType", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to apply to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -43943,18 +53834,28 @@ "additionalProperties": false, "properties": { "DefaultTargetCapacityType": { + "markdownDescription": "The default `TotalTargetCapacity`, which is either `Spot` or `On-Demand`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `on-demand | spot` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultTargetCapacityType", "type": "string" }, "OnDemandTargetCapacity": { + "markdownDescription": "The number of On\\-Demand units to request\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnDemandTargetCapacity", "type": "number" }, "SpotTargetCapacity": { + "markdownDescription": "The number of Spot units to request\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpotTargetCapacity", "type": "number" }, "TargetCapacityUnitType": { + "markdownDescription": "The unit for the target capacity\\. `TargetCapacityUnitType` can only be specified when `InstanceRequirements` is specified\\. \nDefault: `units` \\(translates to number of instances\\) \n*Required*: No \n*Type*: String \n*Allowed values*: `memory-mib | units | vcpu` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetCapacityUnitType", "type": "string" }, "TotalTargetCapacity": { + "markdownDescription": "The number of units to request, filled using `DefaultTargetCapacityType`\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TotalTargetCapacity", "type": "number" } }, @@ -43967,9 +53868,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum amount of total local storage, in GB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum amount of total local storage, in GB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", "type": "number" } }, @@ -43979,9 +53884,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum number of vCPUs\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum number of vCPUs\\. To specify no minimum limit, specify `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", "type": "number" } }, @@ -44023,24 +53932,36 @@ "additionalProperties": false, "properties": { "Domain": { + "markdownDescription": "Indicates whether the Elastic IP address is for use with instances in a VPC or instance in EC2\\-Classic\\. \nDefault: If the Region supports EC2\\-Classic, the default is `standard`\\. Otherwise, the default is `vpc`\\. \nUse when allocating an address for use with a VPC if the Region supports EC2\\-Classic\\. \nIf you define an Elastic IP address and associate it with a VPC that is defined in the same template, you must declare a dependency on the VPC\\-gateway attachment by using the [ DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) on this resource\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `standard | vpc` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Domain", "type": "string" }, "InstanceId": { + "markdownDescription": "The ID of the instance\\. \nUpdates to the `InstanceId` property may require *some interruptions*\\. Updates on an EIP reassociates the address on its associated resource\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceId", "type": "string" }, "NetworkBorderGroup": { + "markdownDescription": "A unique set of Availability Zones, Local Zones, or Wavelength Zones from which AWS advertises IP addresses\\. Use this parameter to limit the IP address to this location\\. IP addresses cannot move between network border groups\\. \nUse [DescribeAvailabilityZones](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html) to view the network border groups\\. \nYou cannot use a network border group with EC2 Classic\\. If you attempt this operation on EC2 Classic, you receive an `InvalidParameterCombination` error\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkBorderGroup", "type": "string" }, "PublicIpv4Pool": { + "markdownDescription": "The ID of an address pool that you own\\. Use this parameter to let Amazon EC2 select an address from the address pool\\. \nUpdates to the `PublicIpv4Pool` property may require *some interruptions*\\. Updates on an EIP reassociates the address on its associated resource\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublicIpv4Pool", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Any tags assigned to the Elastic IP address\\. \nUpdates to the `Tags` property may require *some interruptions*\\. Updates on an EIP reassociates the address on its associated resource\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TransferAddress": { + "markdownDescription": "The Elastic IP address you are accepting for transfer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransferAddress", "type": "string" } }, @@ -44102,18 +54023,28 @@ "additionalProperties": false, "properties": { "AllocationId": { + "markdownDescription": "\\[EC2\\-VPC\\] The allocation ID\\. This is required for EC2\\-VPC\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "AllocationId", "type": "string" }, "EIP": { + "markdownDescription": "\\[EC2\\-Classic\\] The Elastic IP address to associate with the instance\\. This is required for EC2\\-Classic\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "EIP", "type": "string" }, "InstanceId": { + "markdownDescription": "The ID of the instance\\. The instance must have exactly one attached network interface\\. For EC2\\-VPC, you can specify either the instance ID or the network interface ID, but not both\\. For EC2\\-Classic, you must specify an instance ID and the instance must be in the running state\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "InstanceId", "type": "string" }, "NetworkInterfaceId": { + "markdownDescription": "\\[EC2\\-VPC\\] The ID of the network interface\\. If the instance has more than one network interface, you must specify a network interface ID\\. \nFor EC2\\-VPC, you can specify either the instance ID or the network interface ID, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "NetworkInterfaceId", "type": "string" }, "PrivateIpAddress": { + "markdownDescription": "\\[EC2\\-VPC\\] The primary or secondary private IP address to associate with the Elastic IP address\\. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateIpAddress", "type": "string" } }, @@ -44175,6 +54106,8 @@ "additionalProperties": false, "properties": { "VpcId": { + "markdownDescription": "The ID of the VPC for which to create the egress\\-only internet gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -44240,9 +54173,13 @@ "additionalProperties": false, "properties": { "CertificateArn": { + "markdownDescription": "The ARN of the ACM certificate with which to associate the IAM role\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1283` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateArn", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the IAM role to associate with the ACM certificate\\. You can associate up to 16 IAM roles with an ACM certificate\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1283` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RoleArn", "type": "string" } }, @@ -44309,39 +54246,61 @@ "additionalProperties": false, "properties": { "DeliverLogsPermissionArn": { + "markdownDescription": "The ARN of the IAM role that allows Amazon EC2 to publish flow logs to a CloudWatch Logs log group in your account\\. \nThis parameter is required if the destination type is `cloud-watch-logs` and unsupported otherwise\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeliverLogsPermissionArn", "type": "string" }, "DestinationOptions": { - "$ref": "#/definitions/AWS::EC2::FlowLog.DestinationOptions" + "$ref": "#/definitions/AWS::EC2::FlowLog.DestinationOptions", + "markdownDescription": "The destination options\\. The following options are supported: \n+ `FileFormat` \\- The format for the flow log \\(`plain-text` \\| `parquet`\\)\\. The default is `plain-text`\\.\n+ `HiveCompatiblePartitions` \\- Indicates whether to use Hive\\-compatible prefixes for flow logs stored in Amazon S3 \\(`true` \\| `false`\\)\\. The default is `false`\\.\n+ `PerHourPartition` \\- Indicates whether to partition the flow log per hour \\(`true` \\| `false`\\)\\. The default is `false`\\.\n*Required*: No \n*Type*: [DestinationOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-flowlog-destinationoptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationOptions" }, "LogDestination": { + "markdownDescription": "The destination for the flow log data\\. The meaning of this parameter depends on the destination type\\. \n+ If the destination type is `cloud-watch-logs`, specify the ARN of a CloudWatch Logs log group\\. For example:", + "title": "LogDestination", "type": "string" }, "LogDestinationType": { + "markdownDescription": "The type of destination for the flow log data\\. \nDefault: `cloud-watch-logs` \n*Required*: No \n*Type*: String \n*Allowed values*: `cloud-watch-logs | kinesis-data-firehose | s3` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogDestinationType", "type": "string" }, "LogFormat": { + "markdownDescription": "The fields to include in the flow log record, in the order in which they should appear\\. If you omit this parameter, the flow log is created using the default format\\. If you specify this parameter, you must include at least one field\\. For more information about the available fields, see [Flow log records](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-log-records) in the *Amazon VPC User Guide* or [Transit Gateway Flow Log records](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-flow-logs.html#flow-log-records) in the *AWS Transit Gateway Guide*\\. \nSpecify the fields using the `${field-id}` format, separated by spaces\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogFormat", "type": "string" }, "LogGroupName": { + "markdownDescription": "The name of a new or existing CloudWatch Logs log group where Amazon EC2 publishes your flow logs\\. \nThis parameter is valid only if the destination type is `cloud-watch-logs`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogGroupName", "type": "string" }, "MaxAggregationInterval": { + "markdownDescription": "The maximum interval of time during which a flow of packets is captured and aggregated into a flow log record\\. The possible values are 60 seconds \\(1 minute\\) or 600 seconds \\(10 minutes\\)\\. This parameter must be 60 seconds for transit gateway resource types\\. \nWhen a network interface is attached to a [Nitro\\-based instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances), the aggregation interval is always 60 seconds or less, regardless of the value that you specify\\. \nDefault: 600 \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaxAggregationInterval", "type": "number" }, "ResourceId": { + "markdownDescription": "The ID of the resource to monitor\\. For example, if the resource type is `VPC`, specify the ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceId", "type": "string" }, "ResourceType": { + "markdownDescription": "The type of resource to monitor\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `NetworkInterface | Subnet | TransitGateway | TransitGatewayAttachment | VPC` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceType", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to apply to the flow logs\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TrafficType": { + "markdownDescription": "The type of traffic to monitor \\(accepted traffic, rejected traffic, or all traffic\\)\\. This parameter is not supported for transit gateway resource types\\. It is required for the other resource types\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ACCEPT | ALL | REJECT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TrafficType", "type": "string" } }, @@ -44376,12 +54335,18 @@ "additionalProperties": false, "properties": { "FileFormat": { + "markdownDescription": "The format for the flow log\\. The default is `plain-text`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `parquet | plain-text` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FileFormat", "type": "string" }, "HiveCompatiblePartitions": { + "markdownDescription": "Indicates whether to use Hive\\-compatible prefixes for flow logs stored in Amazon S3\\. The default is `false`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HiveCompatiblePartitions", "type": "boolean" }, "PerHourPartition": { + "markdownDescription": "Indicates whether to partition the flow log per hour\\. This reduces the cost and response time for queries\\. The default is `false`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PerHourPartition", "type": "boolean" } }, @@ -44428,9 +54393,13 @@ "additionalProperties": false, "properties": { "GatewayId": { + "markdownDescription": "The ID of the gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GatewayId", "type": "string" }, "RouteTableId": { + "markdownDescription": "The ID of the route table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteTableId", "type": "string" } }, @@ -44497,21 +54466,33 @@ "additionalProperties": false, "properties": { "AutoPlacement": { + "markdownDescription": "Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID\\. For more information, see [ Understanding auto\\-placement and affinity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-dedicated-hosts-work.html#dedicated-hosts-understanding) in the *Amazon EC2 User Guide*\\. \nDefault: `on` \n*Required*: No \n*Type*: String \n*Allowed values*: `off | on` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoPlacement", "type": "string" }, "AvailabilityZone": { + "markdownDescription": "The Availability Zone in which to allocate the Dedicated Host\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", "type": "string" }, "HostRecovery": { + "markdownDescription": "Indicates whether to enable or disable host recovery for the Dedicated Host\\. Host recovery is disabled by default\\. For more information, see [ Host recovery](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-recovery.html) in the *Amazon EC2 User Guide*\\. \nDefault: `off` \n*Required*: No \n*Type*: String \n*Allowed values*: `off | on` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostRecovery", "type": "string" }, "InstanceFamily": { + "markdownDescription": "The instance family supported by the Dedicated Host\\. For example, `m5`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceFamily", "type": "string" }, "InstanceType": { + "markdownDescription": "Specifies the instance type to be supported by the Dedicated Hosts\\. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", "type": "string" }, "OutpostArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Outpost on which the Dedicated Host is allocated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OutpostArn", "type": "string" } }, @@ -44576,19 +54557,34 @@ "Properties": { "additionalProperties": false, "properties": { + "DefaultResourceDiscoveryAssociationId": { + "type": "string" + }, + "DefaultResourceDiscoveryId": { + "type": "string" + }, "Description": { + "markdownDescription": "The description for the IPAM\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "OperatingRegions": { "items": { "$ref": "#/definitions/AWS::EC2::IPAM.IpamOperatingRegion" }, + "markdownDescription": "The operating Regions for an IPAM\\. Operating Regions are AWS Regions where the IPAM is allowed to manage IP address CIDRs\\. IPAM only discovers and monitors resources in the AWS Regions you select as operating Regions\\. \nFor more information about operating Regions, see [Create an IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/create-ipam.html) in the *Amazon VPC IPAM User Guide*\\. \n*Required*: No \n*Type*: List of [IpamOperatingRegion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipam-ipamoperatingregion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OperatingRegions", "type": "array" }, + "ResourceDiscoveryAssociationCount": { + "type": "number" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The key/value combination of a tag assigned to the resource\\. Use the tag key in the filter name and the tag value as the filter value\\. For example, to find all resources that have a tag with the key `Owner` and the value `TeamA`, specify `tag:Owner` for the filter name and `TeamA` for the filter value\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -44618,6 +54614,8 @@ "additionalProperties": false, "properties": { "RegionName": { + "markdownDescription": "The name of the operating Region\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegionName", "type": "string" } }, @@ -44662,15 +54660,23 @@ "additionalProperties": false, "properties": { "Cidr": { + "markdownDescription": "The CIDR you would like to allocate from the IPAM pool\\. Note the following: \n+ If there is no DefaultNetmaskLength allocation rule set on the pool, you must specify either the NetmaskLength or the CIDR\\.\n+ If the DefaultNetmaskLength allocation rule is set on the pool, you can specify either the NetmaskLength or the CIDR and the DefaultNetmaskLength allocation rule will be ignored\\.\nPossible values: Any available IPv4 or IPv6 CIDR\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Cidr", "type": "string" }, "Description": { + "markdownDescription": "A description for the allocation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "IpamPoolId": { + "markdownDescription": "The ID of the IPAM pool from which you would like to allocate a CIDR\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpamPoolId", "type": "string" }, "NetmaskLength": { + "markdownDescription": "The netmask length of the CIDR you would like to allocate from the IPAM pool\\. Note the following: \n+ If there is no DefaultNetmaskLength allocation rule set on the pool, you must specify either the NetmaskLength or the CIDR\\.\n+ If the DefaultNetmaskLength allocation rule is set on the pool, you can specify either the NetmaskLength or the CIDR and the DefaultNetmaskLength allocation rule will be ignored\\.\nPossible netmask lengths for IPv4 addresses are 0 \\- 32\\. Possible netmask lengths for IPv6 addresses are 0 \\- 128\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetmaskLength", "type": "number" } }, @@ -44736,54 +54742,85 @@ "additionalProperties": false, "properties": { "AddressFamily": { + "markdownDescription": "The address family of the pool\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ipv4 | ipv6` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AddressFamily", "type": "string" }, "AllocationDefaultNetmaskLength": { + "markdownDescription": "The default netmask length for allocations added to this pool\\. If, for example, the CIDR assigned to this pool is 10\\.0\\.0\\.0/8 and you enter 16 here, new allocations will default to 10\\.0\\.0\\.0/16\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocationDefaultNetmaskLength", "type": "number" }, "AllocationMaxNetmaskLength": { + "markdownDescription": "The maximum netmask length possible for CIDR allocations in this IPAM pool to be compliant\\. The maximum netmask length must be greater than the minimum netmask length\\. Possible netmask lengths for IPv4 addresses are 0 \\- 32\\. Possible netmask lengths for IPv6 addresses are 0 \\- 128\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocationMaxNetmaskLength", "type": "number" }, "AllocationMinNetmaskLength": { + "markdownDescription": "The minimum netmask length required for CIDR allocations in this IPAM pool to be compliant\\. The minimum netmask length must be less than the maximum netmask length\\. Possible netmask lengths for IPv4 addresses are 0 \\- 32\\. Possible netmask lengths for IPv6 addresses are 0 \\- 128\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocationMinNetmaskLength", "type": "number" }, "AllocationResourceTags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Tags that are required for resources that use CIDRs from this IPAM pool\\. Resources that do not have these tags will not be allowed to allocate space from the pool\\. If the resources have their tags changed after they have allocated space or if the allocation tagging requirements are changed on the pool, the resource may be marked as noncompliant\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocationResourceTags", "type": "array" }, "AutoImport": { + "markdownDescription": "If selected, IPAM will continuously look for resources within the CIDR range of this pool and automatically import them as allocations into your IPAM\\. The CIDRs that will be allocated for these resources must not already be allocated to other resources in order for the import to succeed\\. IPAM will import a CIDR regardless of its compliance with the pool's allocation rules, so a resource might be imported and subsequently marked as noncompliant\\. If IPAM discovers multiple CIDRs that overlap, IPAM will import the largest CIDR only\\. If IPAM discovers multiple CIDRs with matching CIDRs, IPAM will randomly import one of them only\\. \nA locale must be set on the pool for this feature to work\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoImport", "type": "boolean" }, "AwsService": { + "markdownDescription": "Limits which service in AWS that the pool can be used in\\. \"ec2\", for example, allows users to use space for Elastic IP addresses and VPCs\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ec2` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AwsService", "type": "string" }, "Description": { + "markdownDescription": "The description of the IPAM pool\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "IpamScopeId": { + "markdownDescription": "The ID of the scope in which you would like to create the IPAM pool\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpamScopeId", "type": "string" }, "Locale": { + "markdownDescription": "The locale of the IPAM pool\\. In IPAM, the locale is the AWS Region where you want to make an IPAM pool available for allocations\\. Only resources in the same Region as the locale of the pool can get IP address allocations from the pool\\. You can only allocate a CIDR for a VPC, for example, from an IPAM pool that shares a locale with the VPC\u2019s Region\\. Note that once you choose a Locale for a pool, you cannot modify it\\. If you choose an AWS Region for locale that has not been configured as an operating Region for the IPAM, you'll get an error\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Locale", "type": "string" }, "ProvisionedCidrs": { "items": { "$ref": "#/definitions/AWS::EC2::IPAMPool.ProvisionedCidr" }, + "markdownDescription": "Information about the CIDRs provisioned to an IPAM pool\\. \n*Required*: No \n*Type*: List of [ProvisionedCidr](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipampool-provisionedcidr.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisionedCidrs", "type": "array" }, + "PublicIpSource": { + "type": "string" + }, "PubliclyAdvertisable": { + "markdownDescription": "Determines if a pool is publicly advertisable\\. This option is not available for pools with AddressFamily set to `ipv4`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PubliclyAdvertisable", "type": "boolean" }, "SourceIpamPoolId": { + "markdownDescription": "The ID of the source IPAM pool\\. You can use this option to create an IPAM pool within an existing source pool\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceIpamPoolId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The key/value combination of a tag assigned to the resource\\. Use the tag key in the filter name and the tag value as the filter value\\. For example, to find all resources that have a tag with the key `Owner` and the value `TeamA`, specify `tag:Owner` for the filter name and `TeamA` for the filter value\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -44818,6 +54855,8 @@ "additionalProperties": false, "properties": { "Cidr": { + "markdownDescription": "The CIDR provisioned to the IPAM pool\\. A CIDR is a representation of an IP address and its associated network mask \\(or netmask\\) and refers to a range of IP addresses\\. An IPv4 CIDR example is `10.24.34.0/23`\\. An IPv6 CIDR example is `2001:DB8::/32`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cidr", "type": "string" } }, @@ -44826,6 +54865,237 @@ ], "type": "object" }, + "AWS::EC2::IPAMPoolCidr": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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" + }, + "IpamPoolId": { + "type": "string" + }, + "NetmaskLength": { + "type": "number" + } + }, + "required": [ + "IpamPoolId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::IPAMPoolCidr" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::IPAMResourceDiscovery": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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::IPAMResourceDiscovery.IpamOperatingRegion" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::IPAMResourceDiscovery" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::IPAMResourceDiscovery.IpamOperatingRegion": { + "additionalProperties": false, + "properties": { + "RegionName": { + "type": "string" + } + }, + "required": [ + "RegionName" + ], + "type": "object" + }, + "AWS::EC2::IPAMResourceDiscoveryAssociation": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "IpamId": { + "type": "string" + }, + "IpamResourceDiscoveryId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "IpamId", + "IpamResourceDiscoveryId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::IPAMResourceDiscoveryAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::EC2::IPAMScope": { "additionalProperties": false, "properties": { @@ -44862,15 +55132,21 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the scope\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "IpamId": { + "markdownDescription": "The ID of the IPAM for which you're creating this scope\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpamId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The key/value combination of a tag assigned to the resource\\. Use the tag key in the filter name and the tag value as the filter value\\. For example, to find all resources that have a tag with the key `Owner` and the value `TeamA`, specify `tag:Owner` for the filter name and `TeamA` for the filter value\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -44939,156 +55215,236 @@ "additionalProperties": false, "properties": { "AdditionalInfo": { + "markdownDescription": "This property is reserved for internal use\\. If you use it, the stack fails with this error: `Bad property set: [Testing this property] (Service: AmazonEC2; Status Code: 400; Error Code: InvalidParameterCombination; Request ID: 0XXXXXX-49c7-4b40-8bcc-76885dcXXXXX)`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "AdditionalInfo", "type": "string" }, "Affinity": { + "markdownDescription": "Indicates whether the instance is associated with a dedicated host\\. If you want the instance to always restart on the same host on which it was launched, specify `host`\\. If you want the instance to restart on any available host, but try to launch onto the last host it ran on \\(on a best\\-effort basis\\), specify `default`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Affinity", "type": "string" }, "AvailabilityZone": { + "markdownDescription": "The Availability Zone of the instance\\. \nIf not specified, an Availability Zone will be automatically chosen for you based on the load balancing criteria for the Region\\. \nThis parameter is not supported by [DescribeImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImageAttribute.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", "type": "string" }, "BlockDeviceMappings": { "items": { "$ref": "#/definitions/AWS::EC2::Instance.BlockDeviceMapping" }, + "markdownDescription": "The block device mapping entries that defines the block devices to attach to the instance at launch\\. \nBy default, the block devices specified in the block device mapping for the AMI are used\\. You can override the AMI block device mapping using the instance block device mapping\\. For the root volume, you can override only the volume size, volume type, volume encryption settings, and the `DeleteOnTermination` setting\\. \nAfter the instance is running, you can modify only the `DeleteOnTermination` parameter for the attached volumes without interrupting the instance\\. Modifying any other parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: No \n*Type*: List of [BlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-mapping.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "BlockDeviceMappings", "type": "array" }, "CpuOptions": { - "$ref": "#/definitions/AWS::EC2::Instance.CpuOptions" + "$ref": "#/definitions/AWS::EC2::Instance.CpuOptions", + "markdownDescription": "The CPU options for the instance\\. For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: [CpuOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-cpuoptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CpuOptions" }, "CreditSpecification": { - "$ref": "#/definitions/AWS::EC2::Instance.CreditSpecification" + "$ref": "#/definitions/AWS::EC2::Instance.CreditSpecification", + "markdownDescription": "The credit option for CPU usage of the burstable performance instance\\. Valid values are `standard` and `unlimited`\\. To change this attribute after launch, use [ ModifyInstanceCreditSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceCreditSpecification.html)\\. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide*\\. \nDefault: `standard` \\(T2 instances\\) or `unlimited` \\(T3/T3a/T4g instances\\) \nFor T3 instances with `host` tenancy, only `standard` is supported\\. \n*Required*: No \n*Type*: [CreditSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-creditspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreditSpecification" }, "DisableApiTermination": { + "markdownDescription": "If you set this parameter to `true`, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can\\. To change this attribute after launch, use [ModifyInstanceAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html)\\. Alternatively, if you set `InstanceInitiatedShutdownBehavior` to `terminate`, you can terminate the instance by running the shutdown command from the instance\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableApiTermination", "type": "boolean" }, "EbsOptimized": { + "markdownDescription": "Indicates whether the instance is optimized for Amazon EBS I/O\\. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance\\. This optimization isn't available with all instance types\\. Additional usage charges apply when using an EBS\\-optimized instance\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "EbsOptimized", "type": "boolean" }, "ElasticGpuSpecifications": { "items": { "$ref": "#/definitions/AWS::EC2::Instance.ElasticGpuSpecification" }, + "markdownDescription": "An elastic GPU to associate with the instance\\. An Elastic GPU is a GPU resource that you can attach to your Windows instance to accelerate the graphics performance of your applications\\. For more information, see [Amazon EC2 Elastic GPUs](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: List of [ElasticGpuSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-elasticgpuspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ElasticGpuSpecifications", "type": "array" }, "ElasticInferenceAccelerators": { "items": { "$ref": "#/definitions/AWS::EC2::Instance.ElasticInferenceAccelerator" }, + "markdownDescription": "An elastic inference accelerator to associate with the instance\\. Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to accelerate your Deep Learning \\(DL\\) inference workloads\\. \nYou cannot specify accelerators from different generations in the same request\\. \n*Required*: No \n*Type*: List of [ElasticInferenceAccelerator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-elasticinferenceaccelerator.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ElasticInferenceAccelerators", "type": "array" }, "EnclaveOptions": { - "$ref": "#/definitions/AWS::EC2::Instance.EnclaveOptions" + "$ref": "#/definitions/AWS::EC2::Instance.EnclaveOptions", + "markdownDescription": "Indicates whether the instance is enabled for AWS Nitro Enclaves\\. \n*Required*: No \n*Type*: [EnclaveOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-enclaveoptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnclaveOptions" }, "HibernationOptions": { - "$ref": "#/definitions/AWS::EC2::Instance.HibernationOptions" + "$ref": "#/definitions/AWS::EC2::Instance.HibernationOptions", + "markdownDescription": "Indicates whether an instance is enabled for hibernation\\. For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon EC2 User Guide*\\. \nYou can't enable hibernation and AWS Nitro Enclaves on the same instance\\. \n*Required*: No \n*Type*: [HibernationOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-hibernationoptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HibernationOptions" }, "HostId": { + "markdownDescription": "If you specify host for the `Affinity` property, the ID of a dedicated host that the instance is associated with\\. If you don't specify an ID, Amazon EC2 launches the instance onto any available, compatible dedicated host in your account\\. This type of launch is called an untargeted launch\\. Note that for untargeted launches, you must have a compatible, dedicated host available to successfully launch instances\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "HostId", "type": "string" }, "HostResourceGroupArn": { + "markdownDescription": "The ARN of the host resource group in which to launch the instances\\. If you specify a host resource group ARN, omit the **Tenancy** parameter or set it to `host`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostResourceGroupArn", "type": "string" }, "IamInstanceProfile": { + "markdownDescription": "The name of an IAM instance profile\\. To create a new IAM instance profile, use the [AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html) resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamInstanceProfile", "type": "string" }, "ImageId": { + "markdownDescription": "The ID of the AMI\\. An AMI ID is required to launch an instance and must be specified here or in a launch template\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageId", "type": "string" }, "InstanceInitiatedShutdownBehavior": { + "markdownDescription": "Indicates whether an instance stops or terminates when you initiate shutdown from the instance \\(using the operating system command for system shutdown\\)\\. \nDefault: `stop` \n*Required*: No \n*Type*: String \n*Allowed values*: `stop | terminate` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceInitiatedShutdownBehavior", "type": "string" }, "InstanceType": { + "markdownDescription": "The instance type\\. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*\\. \nDefault: `m1.small` \n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | mac1.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6ad.12xlarge | r6ad.16xlarge | r6ad.24xlarge | r6ad.2xlarge | r6ad.32xlarge | r6ad.48xlarge | r6ad.4xlarge | r6ad.8xlarge | r6ad.large | r6ad.metal | r6ad.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "InstanceType", "type": "string" }, "Ipv6AddressCount": { + "markdownDescription": "\\[EC2\\-VPC\\] The number of IPv6 addresses to associate with the primary network interface\\. Amazon EC2 chooses the IPv6 addresses from the range of your subnet\\. You cannot specify this option and the option to assign specific IPv6 addresses in the same request\\. You can specify this option if you've specified a minimum number of instances to launch\\. \nYou cannot specify this option and the network interfaces option in the same request\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv6AddressCount", "type": "number" }, "Ipv6Addresses": { "items": { "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address" }, + "markdownDescription": "\\[EC2\\-VPC\\] The IPv6 addresses from the range of the subnet to associate with the primary network interface\\. You cannot specify this option and the option to assign a number of IPv6 addresses in the same request\\. You cannot specify this option if you've specified a minimum number of instances to launch\\. \nYou cannot specify this option and the network interfaces option in the same request\\. \n*Required*: No \n*Type*: List of [InstanceIpv6Address](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-instanceipv6address.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv6Addresses", "type": "array" }, "KernelId": { + "markdownDescription": "The ID of the kernel\\. \nWe recommend that you use PV\\-GRUB instead of kernels and RAM disks\\. For more information, see [PV\\-GRUB](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "KernelId", "type": "string" }, "KeyName": { + "markdownDescription": "The name of the key pair\\. You can create a key pair using [CreateKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html) or [ImportKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html)\\. \nIf you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyName", "type": "string" }, "LaunchTemplate": { - "$ref": "#/definitions/AWS::EC2::Instance.LaunchTemplateSpecification" + "$ref": "#/definitions/AWS::EC2::Instance.LaunchTemplateSpecification", + "markdownDescription": "The launch template to use to launch the instances\\. Any parameters that you specify in the AWS CloudFormation template override the same parameters in the launch template\\. You can specify either the name or ID of a launch template, but not both\\. \n*Required*: No \n*Type*: [LaunchTemplateSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-launchtemplatespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchTemplate" }, "LicenseSpecifications": { "items": { "$ref": "#/definitions/AWS::EC2::Instance.LicenseSpecification" }, + "markdownDescription": "The license configurations\\. \n*Required*: No \n*Type*: List of [LicenseSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-licensespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LicenseSpecifications", "type": "array" }, "Monitoring": { + "markdownDescription": "Specifies whether detailed monitoring is enabled for the instance\\. Specify `true` to enable detailed monitoring\\. Otherwise, basic monitoring is enabled\\. For more information about detailed monitoring, see [Enable or turn off detailed monitoring for your instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch-new.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Monitoring", "type": "boolean" }, "NetworkInterfaces": { "items": { "$ref": "#/definitions/AWS::EC2::Instance.NetworkInterface" }, + "markdownDescription": "The network interfaces to associate with the instance\\. \nIf you use this property to point to a network interface, you must terminate the original interface before attaching a new one to allow the update of the instance to succeed\\. \nIf this resource has a public IP address and is also in a VPC that is defined in the same template, you must use the [ DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) to declare a dependency on the VPC\\-gateway attachment\\.\n*Required*: No \n*Type*: List of [NetworkInterface](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInterfaces", "type": "array" }, "PlacementGroupName": { + "markdownDescription": "The name of an existing placement group that you want to launch the instance into \\(cluster \\| partition \\| spread\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlacementGroupName", "type": "string" }, "PrivateDnsNameOptions": { - "$ref": "#/definitions/AWS::EC2::Instance.PrivateDnsNameOptions" + "$ref": "#/definitions/AWS::EC2::Instance.PrivateDnsNameOptions", + "markdownDescription": "The options for the instance hostname\\. \n*Required*: No \n*Type*: [PrivateDnsNameOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-privatednsnameoptions.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "PrivateDnsNameOptions" }, "PrivateIpAddress": { + "markdownDescription": "\\[EC2\\-VPC\\] The primary IPv4 address\\. You must specify a value from the IPv4 address range of the subnet\\. \nOnly one private IP address can be designated as primary\\. You can't specify this option if you've specified the option to designate a private IP address as the primary IP address in a network interface specification\\. You cannot specify this option if you're launching more than one instance in the request\\. \nYou cannot specify this option and the network interfaces option in the same request\\. \nIf you make an update to an instance that requires replacement, you must assign a new private IP address\\. During a replacement, AWS CloudFormation creates a new instance but doesn't delete the old instance until the stack has successfully updated\\. If the stack update fails, AWS CloudFormation uses the old instance to roll back the stack to the previous working state\\. The old and new instances cannot have the same private IP address\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrivateIpAddress", "type": "string" }, "PropagateTagsToVolumeOnCreation": { + "markdownDescription": "Indicates whether to assign the tags from the instance to all of the volumes attached to the instance at launch\\. If you specify `true` and you assign tags to the instance, those tags are automatically assigned to all of the volumes that you attach to the instance at launch\\. If you specify `false`, those tags are not assigned to the attached volumes\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropagateTagsToVolumeOnCreation", "type": "boolean" }, "RamdiskId": { + "markdownDescription": "The ID of the RAM disk to select\\. Some kernels require additional drivers at launch\\. Check the kernel requirements for information about whether you need to specify a RAM disk\\. To find kernel requirements, go to the AWS Resource Center and search for the kernel ID\\. \nWe recommend that you use PV\\-GRUB instead of kernels and RAM disks\\. For more information, see [PV\\-GRUB](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "RamdiskId", "type": "string" }, "SecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "The IDs of the security groups\\. You can create a security group using [CreateSecurityGroup](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html)\\. \nIf you specify a network interface, you must specify any security groups as part of the network interface\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "SecurityGroups": { "items": { "type": "string" }, + "markdownDescription": "\\[EC2\\-Classic, default VPC\\] The names of the security groups\\. For a nondefault VPC, you must use security group IDs instead\\. \nYou cannot specify this option and the network interfaces option in the same request\\. The list can contain both the name of existing Amazon EC2 security groups or references to AWS::EC2::SecurityGroup resources created in the template\\. \nDefault: Amazon EC2 uses the default security group\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroups", "type": "array" }, "SourceDestCheck": { + "markdownDescription": "Enable or disable source/destination checks, which ensure that the instance is either the source or the destination of any traffic that it receives\\. If the value is `true`, source/destination checks are enabled; otherwise, they are disabled\\. The default value is `true`\\. You must disable source/destination checks if the instance runs services such as network address translation, routing, or firewalls\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceDestCheck", "type": "boolean" }, "SsmAssociations": { "items": { "$ref": "#/definitions/AWS::EC2::Instance.SsmAssociation" }, + "markdownDescription": "The SSM [ document](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html) and parameter values in AWS Systems Manager to associate with this instance\\. To use this property, you must specify an IAM instance profile role for the instance\\. For more information, see [Create an IAM instance profile for Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-configuring-access-role.html) in the *AWS Systems Manager User Guide*\\. \nYou can currently associate only one document with an instance\\.\n*Required*: No \n*Type*: List of [SsmAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SsmAssociations", "type": "array" }, "SubnetId": { + "markdownDescription": "\\[EC2\\-VPC\\] The ID of the subnet to launch the instance into\\. \nIf you specify a network interface, you must specify any subnets as part of the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to add to the instance\\. These tags are not applied to the EBS volumes, such as the root volume\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Tenancy": { + "markdownDescription": "The tenancy of the instance \\(if the instance is running in a VPC\\)\\. An instance with a tenancy of `dedicated` runs on single\\-tenant hardware\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dedicated | default | host` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Tenancy", "type": "string" }, "UserData": { + "markdownDescription": "The user data script to make available to the instance\\. User data is limited to 16 KB\\. You must provide base64\\-encoded text\\. For more information, see [Fn::Base64](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-base64.html)\\. \nUser data runs only at instance launch\\. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) and [Run commands on your Windows instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-windows-user-data.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "UserData", "type": "string" }, "Volumes": { "items": { "$ref": "#/definitions/AWS::EC2::Instance.Volume" }, + "markdownDescription": "The volumes to attach to the instance\\. \n*Required*: No \n*Type*: List of [Volume](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-mount-point.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Volumes", "type": "array" } }, @@ -45118,12 +55474,16 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The name of an input parameter that is in the associated SSM document\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { "items": { "type": "string" }, + "markdownDescription": "The value of an input parameter\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "array" } }, @@ -45137,15 +55497,23 @@ "additionalProperties": false, "properties": { "DeviceName": { + "markdownDescription": "The device name \\(for example, `/dev/sdh` or `xvdh`\\)\\. \nAfter the instance is running, this parameter is used to specify the device name of the block device mapping to update\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceName", "type": "string" }, "Ebs": { - "$ref": "#/definitions/AWS::EC2::Instance.Ebs" + "$ref": "#/definitions/AWS::EC2::Instance.Ebs", + "markdownDescription": "Parameters used to automatically set up EBS volumes when the instance is launched\\. \nAfter the instance is running, you can modify only the `DeleteOnTermination` parameter for the attached volumes without interrupting the instance\\. Modifying any other parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)\\.\n*Required*: Conditional \n*Type*: [Ebs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ebs" }, "NoDevice": { - "$ref": "#/definitions/AWS::EC2::Instance.NoDevice" + "$ref": "#/definitions/AWS::EC2::Instance.NoDevice", + "markdownDescription": "To omit the device from the block device mapping, specify an empty string\\. \nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: Conditional \n*Type*: [NoDevice](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-nodevice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoDevice" }, "VirtualName": { + "markdownDescription": "The virtual device name \\(`ephemeral`N\\)\\. The name must be in the form `ephemeral`*X* where *X* is a number starting from zero \\(0\\)\\. For example, an instance type with 2 available instance store volumes can specify mappings for `ephemeral0` and `ephemeral1`\\. The number of available instance store volumes depends on the instance type\\. After you connect to the instance, you must mount the volume\\. \nNVMe instance store volumes are automatically enumerated and assigned a device name\\. Including them in your block device mapping has no effect\\. \n *Constraints*: For M3 instances, you must specify instance store volumes in the block device mapping for the instance\\. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI\\. \nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualName", "type": "string" } }, @@ -45158,9 +55526,13 @@ "additionalProperties": false, "properties": { "CoreCount": { + "markdownDescription": "The number of CPU cores for the instance\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CoreCount", "type": "number" }, "ThreadsPerCore": { + "markdownDescription": "The number of threads per CPU core\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThreadsPerCore", "type": "number" } }, @@ -45170,6 +55542,8 @@ "additionalProperties": false, "properties": { "CPUCredits": { + "markdownDescription": "The credit option for CPU usage of the instance\\. \nValid values: `standard` \\| `unlimited` \nT3 instances with `host` tenancy do not support the `unlimited` CPU credit option\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CPUCredits", "type": "string" } }, @@ -45179,24 +55553,38 @@ "additionalProperties": false, "properties": { "DeleteOnTermination": { + "markdownDescription": "Indicates whether the EBS volume is deleted on instance termination\\. For more information, see [Preserving Amazon EBS volumes on instance termination](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#preserving-volumes-on-termination) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteOnTermination", "type": "boolean" }, "Encrypted": { + "markdownDescription": "Indicates whether the volume should be encrypted\\. The effect of setting the encryption state to `true` depends on the volume origin \\(new or from a snapshot\\), starting encryption state, ownership, and whether encryption by default is enabled\\. For more information, see [Encryption by default](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default) in the *Amazon Elastic Compute Cloud User Guide*\\. \nEncrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption\\. For more information, see [Supported instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances)\\. \nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encrypted", "type": "boolean" }, "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\)\\. For `gp3`, `io1`, and `io2` volumes, this represents the number of IOPS that are provisioned for the volume\\. For `gp2` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting\\. \nThe following are the supported values for each volume type: \n+ `gp3`: 3,000\\-16,000 IOPS\n+ `io1`: 100\\-64,000 IOPS\n+ `io2`: 100\\-64,000 IOPS\nFor `io1` and `io2` volumes, we guarantee 64,000 IOPS only for [Instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)\\. Other instance families guarantee performance up to 32,000 IOPS\\. \nThis parameter is required for `io1` and `io2` volumes\\. The default for `gp3` volumes is 3,000 IOPS\\. This parameter is not supported for `gp2`, `st1`, `sc1`, or `standard` volumes\\. \nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iops", "type": "number" }, "KmsKeyId": { + "markdownDescription": "The identifier of the AWS KMS key to use for Amazon EBS encryption\\. If `KmsKeyId` is specified, the encrypted state must be `true`\\. If the encrypted state is `true` but you do not specify `KmsKeyId`, your KMS key for EBS is used\\. \nYou can specify the KMS key using any of the following: \n+ Key ID\\. For example, 1234abcd\\-12ab\\-34cd\\-56ef\\-1234567890ab\\.\n+ Key alias\\. For example, alias/ExampleAlias\\.\n+ Key ARN\\. For example, arn:aws:kms:us\\-west\\-2:111122223333:key/1234abcd\\-12ab\\-34cd\\-56ef\\-1234567890ab\\.\n+ Alias ARN\\. For example, arn:aws:kms:us\\-west\\-2:111122223333:alias/ExampleAlias\\.\nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" }, "SnapshotId": { + "markdownDescription": "The ID of the snapshot\\. \nIf you specify both `SnapshotId` and `VolumeSize`, `VolumeSize` must be equal or greater than the size of the snapshot\\. \nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotId", "type": "string" }, "VolumeSize": { + "markdownDescription": "The size of the volume, in GiBs\\. You must specify either a snapshot ID or a volume size\\. If you specify a snapshot, the default is the snapshot size\\. You can specify a volume size that is equal to or larger than the snapshot size\\. \nThe following are the supported volumes sizes for each volume type: \n+ `gp2` and `gp3`:1\\-16,384\n+ `io1` and `io2`: 4\\-16,384\n+ `st1` and `sc1`: 125\\-16,384\n+ `standard`: 1\\-1,024\nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeSize", "type": "number" }, "VolumeType": { + "markdownDescription": "The volume type\\. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon EC2 User Guide*\\. If the volume type is `io1` or `io2`, you must specify the IOPS that the volume supports\\. \nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `gp2 | gp3 | io1 | io2 | sc1 | st1 | standard` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeType", "type": "string" } }, @@ -45206,6 +55594,8 @@ "additionalProperties": false, "properties": { "Type": { + "markdownDescription": "The type of Elastic Graphics accelerator\\. For more information about the values to specify for `Type`, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -45218,9 +55608,13 @@ "additionalProperties": false, "properties": { "Count": { + "markdownDescription": "The number of elastic inference accelerators to attach to the instance\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count", "type": "number" }, "Type": { + "markdownDescription": "The type of elastic inference accelerator\\. The possible values are `eia1.medium`, `eia1.large`, `eia1.xlarge`, `eia2.medium`, `eia2.large`, and `eia2.xlarge`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -45233,6 +55627,8 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "If this parameter is set to `true`, the instance is enabled for AWS Nitro Enclaves; otherwise, it is not enabled for AWS Nitro Enclaves\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -45242,6 +55638,8 @@ "additionalProperties": false, "properties": { "Configured": { + "markdownDescription": "If you set this parameter to `true`, your instance is enabled for hibernation\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configured", "type": "boolean" } }, @@ -45251,6 +55649,8 @@ "additionalProperties": false, "properties": { "Ipv6Address": { + "markdownDescription": "The IPv6 address\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6Address", "type": "string" } }, @@ -45263,12 +55663,18 @@ "additionalProperties": false, "properties": { "LaunchTemplateId": { + "markdownDescription": "The ID of the launch template\\. \nYou must specify the `LaunchTemplateId` or the `LaunchTemplateName`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplateId", "type": "string" }, "LaunchTemplateName": { + "markdownDescription": "The name of the launch template\\. \nYou must specify the `LaunchTemplateName` or the `LaunchTemplateId`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplateName", "type": "string" }, "Version": { + "markdownDescription": "The version number of the launch template\\. \nSpecifying `$Latest` or `$Default` for the template version number is not supported\\. However, you can specify `LatestVersionNumber` or `DefaultVersionNumber` using the `Fn::GetAtt` intrinsic function\\. For more information, see [Fn::GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#aws-resource-ec2-launchtemplate-return-values-fn--getatt)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -45281,6 +55687,8 @@ "additionalProperties": false, "properties": { "LicenseConfigurationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the license configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LicenseConfigurationArn", "type": "string" } }, @@ -45293,51 +55701,77 @@ "additionalProperties": false, "properties": { "AssociateCarrierIpAddress": { + "markdownDescription": "Indicates whether to assign a carrier IP address to the network interface\\. \nYou can only assign a carrier IP address to a network interface that is in a subnet in a Wavelength Zone\\. For more information about carrier IP addresses, see [Carrier IP address](https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#provider-owned-ip) in the * AWS Wavelength Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociateCarrierIpAddress", "type": "boolean" }, "AssociatePublicIpAddress": { + "markdownDescription": "Indicates whether to assign a public IPv4 address to an instance\\. Applies only if creating a network interface when launching an instance\\. The network interface must be the primary network interface\\. If launching into a default subnet, the default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociatePublicIpAddress", "type": "boolean" }, "DeleteOnTermination": { + "markdownDescription": "Indicates whether the network interface is deleted when the instance is terminated\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteOnTermination", "type": "boolean" }, "Description": { + "markdownDescription": "The description of the network interface\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DeviceIndex": { + "markdownDescription": "The position of the network interface in the attachment order\\. A primary network interface has a device index of 0\\. \nIf you create a network interface when launching an instance, you must specify the device index\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceIndex", "type": "string" }, "GroupSet": { "items": { "type": "string" }, + "markdownDescription": "The IDs of the security groups for the network interface\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupSet", "type": "array" }, "Ipv6AddressCount": { + "markdownDescription": "A number of IPv6 addresses to assign to the network interface\\. Amazon EC2 chooses the IPv6 addresses from the range of the subnet\\. You cannot specify this option and the option to assign specific IPv6 addresses in the same request\\. You can specify this option if you've specified a minimum number of instances to launch\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6AddressCount", "type": "number" }, "Ipv6Addresses": { "items": { "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address" }, + "markdownDescription": "The IPv6 addresses to assign to the network interface\\. You cannot specify this option and the option to assign a number of IPv6 addresses in the same request\\. You cannot specify this option if you've specified a minimum number of instances to launch\\. \n*Required*: No \n*Type*: List of [InstanceIpv6Address](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-instanceipv6address.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6Addresses", "type": "array" }, "NetworkInterfaceId": { + "markdownDescription": "The ID of the network interface, when attaching an existing network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkInterfaceId", "type": "string" }, "PrivateIpAddress": { + "markdownDescription": "The private IPv4 address of the network interface\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateIpAddress", "type": "string" }, "PrivateIpAddresses": { "items": { "$ref": "#/definitions/AWS::EC2::Instance.PrivateIpAddressSpecification" }, + "markdownDescription": "One or more private IPv4 addresses to assign to the network interface\\. Only one private IPv4 address can be designated as primary\\. \n*Required*: No \n*Type*: List of [PrivateIpAddressSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-interface-privateipspec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateIpAddresses", "type": "array" }, "SecondaryPrivateIpAddressCount": { + "markdownDescription": "The number of secondary private IPv4 addresses\\. You can't specify this option and specify more than one private IP address using the private IP addresses option\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryPrivateIpAddressCount", "type": "number" }, "SubnetId": { + "markdownDescription": "The ID of the subnet associated with the network interface\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetId", "type": "string" } }, @@ -45355,12 +55789,18 @@ "additionalProperties": false, "properties": { "EnableResourceNameDnsAAAARecord": { + "markdownDescription": "Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records\\. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableResourceNameDnsAAAARecord", "type": "boolean" }, "EnableResourceNameDnsARecord": { + "markdownDescription": "Indicates whether to respond to DNS queries for instance hostnames with DNS A records\\. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableResourceNameDnsARecord", "type": "boolean" }, "HostnameType": { + "markdownDescription": "The type of hostnames to assign to instances in the subnet at launch\\. For IPv4 only subnets, an instance DNS name must be based on the instance IPv4 address\\. For IPv6 only subnets, an instance DNS name must be based on the instance ID\\. For dual\\-stack subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID\\. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ip-name | resource-name` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostnameType", "type": "string" } }, @@ -45370,9 +55810,13 @@ "additionalProperties": false, "properties": { "Primary": { + "markdownDescription": "Indicates whether the private IPv4 address is the primary private IPv4 address\\. Only one IPv4 address can be designated as primary\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Primary", "type": "boolean" }, "PrivateIpAddress": { + "markdownDescription": "The private IPv4 address\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateIpAddress", "type": "string" } }, @@ -45389,9 +55833,13 @@ "items": { "$ref": "#/definitions/AWS::EC2::Instance.AssociationParameter" }, + "markdownDescription": "The input parameter values to use with the associated SSM document\\. \n*Required*: No \n*Type*: List of [AssociationParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations-associationparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociationParameters", "type": "array" }, "DocumentName": { + "markdownDescription": "The name of an SSM document to associate with the instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentName", "type": "string" } }, @@ -45404,9 +55852,13 @@ "additionalProperties": false, "properties": { "Device": { + "markdownDescription": "The device name \\(for example, `/dev/sdh` or `xvdh`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Device", "type": "string" }, "VolumeId": { + "markdownDescription": "The ID of the EBS volume\\. The volume and instance must be within the same Availability Zone\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeId", "type": "string" } }, @@ -45455,6 +55907,8 @@ "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Any tags to assign to the internet gateway\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -45516,18 +55970,26 @@ "additionalProperties": false, "properties": { "KeyName": { + "markdownDescription": "A unique name for the key pair\\. \nConstraints: Up to 255 ASCII characters \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyName", "type": "string" }, "KeyType": { + "markdownDescription": "The type of key pair\\. Note that ED25519 keys are not supported for Windows instances\\. \nIf the `PublicKeyMaterial` property is specified, the `KeyType` property is ignored, and the key type is inferred from the `PublicKeyMaterial` value\\. \nDefault: `rsa` \n*Required*: No \n*Type*: String \n*Allowed values*: `ed25519 | rsa` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyType", "type": "string" }, "PublicKeyMaterial": { + "markdownDescription": "The public key material\\. The `PublicKeyMaterial` property is used to import a key pair\\. If this property is not specified, then a new key pair will be created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublicKeyMaterial", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to apply to the key pair\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -45593,18 +56055,26 @@ "additionalProperties": false, "properties": { "LaunchTemplateData": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateData" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateData", + "markdownDescription": "The information for the launch template\\. \n*Required*: Yes \n*Type*: [LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplateData" }, "LaunchTemplateName": { + "markdownDescription": "A name for the launch template\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9\\(\\)\\.\\-/_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchTemplateName", "type": "string" }, "TagSpecifications": { "items": { "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateTagSpecification" }, + "markdownDescription": "The tags to apply to the launch template on creation\\. To tag the launch template, the resource type must be `launch-template`\\. \nTo specify the tags for the resources that are created when an instance is launched, you must use the `TagSpecifications` parameter in the [launch template data](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestLaunchTemplateData.html) structure\\.\n*Required*: No \n*Type*: List of [LaunchTemplateTagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatetagspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagSpecifications", "type": "array" }, "VersionDescription": { + "markdownDescription": "A description for the first version of the launch template\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VersionDescription", "type": "string" } }, @@ -45638,9 +56108,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum number of accelerators\\. To specify no maximum limit, omit this parameter\\. To exclude accelerator\\-enabled instance types, set `Max` to `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum number of accelerators\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", "type": "number" } }, @@ -45650,9 +56124,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum amount of accelerator memory, in MiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum amount of accelerator memory, in MiB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", "type": "number" } }, @@ -45662,9 +56140,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum baseline bandwidth, in Mbps\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum baseline bandwidth, in Mbps\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", "type": "number" } }, @@ -45674,15 +56156,23 @@ "additionalProperties": false, "properties": { "DeviceName": { + "markdownDescription": "The device name \\(for example, /dev/sdh or xvdh\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceName", "type": "string" }, "Ebs": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ebs" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ebs", + "markdownDescription": "Parameters used to automatically set up EBS volumes when the instance is launched\\. \n*Required*: No \n*Type*: [Ebs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping-ebs.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ebs" }, "NoDevice": { + "markdownDescription": "To omit the device from the block device mapping, specify an empty string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoDevice", "type": "string" }, "VirtualName": { + "markdownDescription": "The virtual device name \\(ephemeralN\\)\\. Instance store volumes are numbered starting from 0\\. An instance type with 2 available instance store volumes can specify mappings for ephemeral0 and ephemeral1\\. The number of available instance store volumes depends on the instance type\\. After you connect to the instance, you must mount the volume\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualName", "type": "string" } }, @@ -45692,10 +56182,14 @@ "additionalProperties": false, "properties": { "CapacityReservationPreference": { + "markdownDescription": "Indicates the instance's Capacity Reservation preferences\\. Possible preferences include: \n+ `open` \\- The instance can run in any `open` Capacity Reservation that has matching attributes \\(instance type, platform, Availability Zone\\)\\.\n+ `none` \\- The instance avoids running in a Capacity Reservation even if one is available\\. The instance runs in On\\-Demand capacity\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `none | open` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityReservationPreference", "type": "string" }, "CapacityReservationTarget": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CapacityReservationTarget" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CapacityReservationTarget", + "markdownDescription": "Information about the target Capacity Reservation or Capacity Reservation group\\. \n*Required*: No \n*Type*: [CapacityReservationTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-capacityreservationtarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityReservationTarget" } }, "type": "object" @@ -45704,9 +56198,13 @@ "additionalProperties": false, "properties": { "CapacityReservationId": { + "markdownDescription": "The ID of the Capacity Reservation in which to run the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityReservationId", "type": "string" }, "CapacityReservationResourceGroupArn": { + "markdownDescription": "The ARN of the Capacity Reservation resource group in which to run the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityReservationResourceGroupArn", "type": "string" } }, @@ -45716,9 +56214,13 @@ "additionalProperties": false, "properties": { "CoreCount": { + "markdownDescription": "The number of CPU cores for the instance\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CoreCount", "type": "number" }, "ThreadsPerCore": { + "markdownDescription": "The number of threads per CPU core\\. To disable multithreading for the instance, specify a value of `1`\\. Otherwise, specify the default value of `2`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThreadsPerCore", "type": "number" } }, @@ -45728,6 +56230,8 @@ "additionalProperties": false, "properties": { "CpuCredits": { + "markdownDescription": "The credit option for CPU usage of a T instance\\. \nValid values: `standard` \\| `unlimited` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CpuCredits", "type": "string" } }, @@ -45737,27 +56241,43 @@ "additionalProperties": false, "properties": { "DeleteOnTermination": { + "markdownDescription": "Indicates whether the EBS volume is deleted on instance termination\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteOnTermination", "type": "boolean" }, "Encrypted": { + "markdownDescription": "Indicates whether the EBS volume is encrypted\\. Encrypted volumes can only be attached to instances that support Amazon EBS encryption\\. If you are creating a volume from a snapshot, you can't specify an encryption value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encrypted", "type": "boolean" }, "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\)\\. For `gp3`, `io1`, and `io2` volumes, this represents the number of IOPS that are provisioned for the volume\\. For `gp2` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting\\. \nThe following are the supported values for each volume type: \n+ `gp3`: 3,000\\-16,000 IOPS\n+ `io1`: 100\\-64,000 IOPS\n+ `io2`: 100\\-64,000 IOPS\nFor `io1` and `io2` volumes, we guarantee 64,000 IOPS only for [Instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)\\. Other instance families guarantee performance up to 32,000 IOPS\\. \nThis parameter is supported for `io1`, `io2`, and `gp3` volumes only\\. This parameter is not supported for `gp2`, `st1`, `sc1`, or `standard` volumes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iops", "type": "number" }, "KmsKeyId": { + "markdownDescription": "The ARN of the symmetric AWS Key Management Service \\(AWS KMS\\) CMK used for encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", "type": "string" }, "SnapshotId": { + "markdownDescription": "The ID of the snapshot\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotId", "type": "string" }, "Throughput": { + "markdownDescription": "The throughput to provision for a `gp3` volume, with a maximum of 1,000 MiB/s\\. \nValid Range: Minimum value of 125\\. Maximum value of 1000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Throughput", "type": "number" }, "VolumeSize": { + "markdownDescription": "The size of the volume, in GiBs\\. You must specify either a snapshot ID or a volume size\\. The following are the supported volumes sizes for each volume type: \n+ `gp2` and `gp3`: 1\\-16,384\n+ `io1` and `io2`: 4\\-16,384\n+ `st1` and `sc1`: 125\\-16,384\n+ `standard`: 1\\-1,024\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeSize", "type": "number" }, "VolumeType": { + "markdownDescription": "The volume type\\. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `gp2 | gp3 | io1 | io2 | sc1 | st1 | standard` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeType", "type": "string" } }, @@ -45767,6 +56287,8 @@ "additionalProperties": false, "properties": { "Type": { + "markdownDescription": "The type of Elastic Graphics accelerator\\. For more information about the values to specify for `Type`, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -45776,6 +56298,8 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "If this parameter is set to `true`, the instance is enabled for AWS Nitro Enclaves; otherwise, it is not enabled for AWS Nitro Enclaves\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -45785,6 +56309,8 @@ "additionalProperties": false, "properties": { "Configured": { + "markdownDescription": "If you set this parameter to `true`, the instance is enabled for hibernation\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configured", "type": "boolean" } }, @@ -45794,9 +56320,13 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the instance profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "Name": { + "markdownDescription": "The name of the instance profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -45806,10 +56336,14 @@ "additionalProperties": false, "properties": { "MarketType": { + "markdownDescription": "The market type\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `spot` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MarketType", "type": "string" }, "SpotOptions": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.SpotOptions" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.SpotOptions", + "markdownDescription": "The options for Spot Instances\\. \n*Required*: No \n*Type*: [SpotOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpotOptions" } }, "type": "object" @@ -45818,97 +56352,143 @@ "additionalProperties": false, "properties": { "AcceleratorCount": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.AcceleratorCount" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.AcceleratorCount", + "markdownDescription": "The minimum and maximum number of accelerators \\(GPUs, FPGAs, or AWS Inferentia chips\\) on an instance\\. \nTo exclude accelerator\\-enabled instance types, set `Max` to `0`\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [AcceleratorCount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-acceleratorcount.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceleratorCount" }, "AcceleratorManufacturers": { "items": { "type": "string" }, + "markdownDescription": "Indicates whether instance types must have accelerators by specific manufacturers\\. \n+ For instance types with NVIDIA devices, specify `nvidia`\\.\n+ For instance types with AMD devices, specify `amd`\\.\n+ For instance types with AWS devices, specify `amazon-web-services`\\.\n+ For instance types with Xilinx devices, specify `xilinx`\\.\nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceleratorManufacturers", "type": "array" }, "AcceleratorNames": { "items": { "type": "string" }, + "markdownDescription": "The accelerators that must be on the instance type\\. \n+ For instance types with NVIDIA A100 GPUs, specify `a100`\\.\n+ For instance types with NVIDIA V100 GPUs, specify `v100`\\.\n+ For instance types with NVIDIA K80 GPUs, specify `k80`\\.\n+ For instance types with NVIDIA T4 GPUs, specify `t4`\\.\n+ For instance types with NVIDIA M60 GPUs, specify `m60`\\.\n+ For instance types with AMD Radeon Pro V520 GPUs, specify `radeon-pro-v520`\\.\n+ For instance types with Xilinx VU9P FPGAs, specify `vu9p`\\.\n+ For instance types with AWS Inferentia chips, specify `inferentia`\\.\n+ For instance types with NVIDIA GRID K520 GPUs, specify `k520`\\.\nDefault: Any accelerator \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceleratorNames", "type": "array" }, "AcceleratorTotalMemoryMiB": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.AcceleratorTotalMemoryMiB" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.AcceleratorTotalMemoryMiB", + "markdownDescription": "The minimum and maximum amount of total accelerator memory, in MiB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [AcceleratorTotalMemoryMiB](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-acceleratortotalmemorymib.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceleratorTotalMemoryMiB" }, "AcceleratorTypes": { "items": { "type": "string" }, + "markdownDescription": "The accelerator types that must be on the instance type\\. \n+ For instance types with GPU accelerators, specify `gpu`\\.\n+ For instance types with FPGA accelerators, specify `fpga`\\.\n+ For instance types with inference accelerators, specify `inference`\\.\nDefault: Any accelerator type \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceleratorTypes", "type": "array" }, "AllowedInstanceTypes": { "items": { "type": "string" }, + "markdownDescription": "The instance types to apply your specified attributes against\\. All other instance types are ignored, even if they match your specified attributes\\. \nYou can use strings with one or more wild cards, represented by an asterisk \\(`*`\\), to allow an instance type, size, or generation\\. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`\\. \nFor example, if you specify `c5*`,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types\\. If you specify `m5a.*`, Amazon EC2 will allow all the M5a instance types, but not the M5n instance types\\. \nIf you specify `AllowedInstanceTypes`, you can't specify `ExcludedInstanceTypes`\\.\nDefault: All instance types \n*Required*: No \n*Type*: List of String \n*Maximum*: `400` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedInstanceTypes", "type": "array" }, "BareMetal": { + "markdownDescription": "Indicates whether bare metal instance types must be included, excluded, or required\\. \n+ To include bare metal instance types, specify `included`\\.\n+ To require only bare metal instance types, specify `required`\\.\n+ To exclude bare metal instance types, specify `excluded`\\.\nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BareMetal", "type": "string" }, "BaselineEbsBandwidthMbps": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.BaselineEbsBandwidthMbps" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.BaselineEbsBandwidthMbps", + "markdownDescription": "The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps\\. For more information, see [Amazon EBS\u2013optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide*\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [BaselineEbsBandwidthMbps](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-baselineebsbandwidthmbps.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaselineEbsBandwidthMbps" }, "BurstablePerformance": { + "markdownDescription": "Indicates whether burstable performance T instance types are included, excluded, or required\\. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html)\\. \n+ To include burstable performance instance types, specify `included`\\.\n+ To require only burstable performance instance types, specify `required`\\.\n+ To exclude burstable performance instance types, specify `excluded`\\.\nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BurstablePerformance", "type": "string" }, "CpuManufacturers": { "items": { "type": "string" }, + "markdownDescription": "The CPU manufacturers to include\\. \n+ For instance types with Intel CPUs, specify `intel`\\.\n+ For instance types with AMD CPUs, specify `amd`\\.\n+ For instance types with AWS CPUs, specify `amazon-web-services`\\.\nDon't confuse the CPU manufacturer with the CPU architecture\\. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image \\(AMI\\) that you specify in your launch template\\.\nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CpuManufacturers", "type": "array" }, "ExcludedInstanceTypes": { "items": { "type": "string" }, + "markdownDescription": "The instance types to exclude\\. \nYou can use strings with one or more wild cards, represented by an asterisk \\(`*`\\), to exclude an instance type, size, or generation\\. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`\\. \nFor example, if you specify `c5*`,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types\\. If you specify `m5a.*`, Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types\\. \nIf you specify `ExcludedInstanceTypes`, you can't specify `AllowedInstanceTypes`\\.\nDefault: No excluded instance types \n*Required*: No \n*Type*: List of String \n*Maximum*: `400` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludedInstanceTypes", "type": "array" }, "InstanceGenerations": { "items": { "type": "string" }, + "markdownDescription": "Indicates whether current or previous generation instance types are included\\. The current generation instance types are recommended for use\\. Current generation instance types are typically the latest two to three generations in each instance family\\. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*\\. \nFor current generation instance types, specify `current`\\. \nFor previous generation instance types, specify `previous`\\. \nDefault: Current and previous generation instance types \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceGenerations", "type": "array" }, "LocalStorage": { + "markdownDescription": "Indicates whether instance types with instance store volumes are included, excluded, or required\\. For more information, [Amazon EC2 instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in the *Amazon EC2 User Guide*\\. \n+ To include instance types with instance store volumes, specify `included`\\.\n+ To require only instance types with instance store volumes, specify `required`\\.\n+ To exclude instance types with instance store volumes, specify `excluded`\\.\nDefault: `included` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocalStorage", "type": "string" }, "LocalStorageTypes": { "items": { "type": "string" }, + "markdownDescription": "The type of local storage that is required\\. \n+ For instance types with hard disk drive \\(HDD\\) storage, specify `hdd`\\.\n+ For instance types with solid state drive \\(SSD\\) storage, specify `ssd`\\.\nDefault: `hdd` and `ssd` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocalStorageTypes", "type": "array" }, "MemoryGiBPerVCpu": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.MemoryGiBPerVCpu" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.MemoryGiBPerVCpu", + "markdownDescription": "The minimum and maximum amount of memory per vCPU, in GiB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [MemoryGiBPerVCpu](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-memorygibpervcpu.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MemoryGiBPerVCpu" }, "MemoryMiB": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.MemoryMiB" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.MemoryMiB", + "markdownDescription": "The minimum and maximum amount of memory, in MiB\\. \n*Required*: No \n*Type*: [MemoryMiB](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-memorymib.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MemoryMiB" }, "NetworkBandwidthGbps": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.NetworkBandwidthGbps" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.NetworkBandwidthGbps", + "markdownDescription": "The minimum and maximum amount of network bandwidth, in gigabits per second \\(Gbps\\)\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [NetworkBandwidthGbps](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkbandwidthgbps.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkBandwidthGbps" }, "NetworkInterfaceCount": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.NetworkInterfaceCount" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.NetworkInterfaceCount", + "markdownDescription": "The minimum and maximum number of network interfaces\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [NetworkInterfaceCount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterfacecount.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkInterfaceCount" }, "OnDemandMaxPricePercentageOverLowestPrice": { + "markdownDescription": "The price protection threshold for On\\-Demand Instances\\. This is the maximum you\u2019ll pay for an On\\-Demand Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes\\. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold\\. \nThe parameter accepts an integer, which Amazon EC2 interprets as a percentage\\. \nTo turn off price protection, specify a high value, such as `999999`\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html)\\. \nIf you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per\\-vCPU or per\\-memory price instead of the per\\-instance price\\.\nDefault: `20` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnDemandMaxPricePercentageOverLowestPrice", "type": "number" }, "RequireHibernateSupport": { + "markdownDescription": "Indicates whether instance types must support hibernation for On\\-Demand Instances\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html)\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequireHibernateSupport", "type": "boolean" }, "SpotMaxPricePercentageOverLowestPrice": { + "markdownDescription": "The price protection threshold for Spot Instances\\. This is the maximum you\u2019ll pay for a Spot Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes\\. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold\\. \nThe parameter accepts an integer, which Amazon EC2 interprets as a percentage\\. \nTo turn off price protection, specify a high value, such as `999999`\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html)\\. \nIf you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per\\-vCPU or per\\-memory price instead of the per\\-instance price\\.\nDefault: `100` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpotMaxPricePercentageOverLowestPrice", "type": "number" }, "TotalLocalStorageGB": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.TotalLocalStorageGB" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.TotalLocalStorageGB", + "markdownDescription": "The minimum and maximum amount of total local storage, in GB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [TotalLocalStorageGB](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-totallocalstoragegb.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TotalLocalStorageGB" }, "VCpuCount": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.VCpuCount" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.VCpuCount", + "markdownDescription": "The minimum and maximum number of vCPUs\\. \n*Required*: No \n*Type*: [VCpuCount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-vcpucount.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VCpuCount" } }, "type": "object" @@ -45917,6 +56497,8 @@ "additionalProperties": false, "properties": { "Ipv4Prefix": { + "markdownDescription": "The IPv4 prefix\\. For information, see [ Assigning prefixes to Amazon EC2 network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv4Prefix", "type": "string" } }, @@ -45926,6 +56508,8 @@ "additionalProperties": false, "properties": { "Ipv6Address": { + "markdownDescription": "One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet\\. You can't use this option if you're specifying a number of IPv6 addresses\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6Address", "type": "string" } }, @@ -45935,6 +56519,8 @@ "additionalProperties": false, "properties": { "Ipv6Prefix": { + "markdownDescription": "The IPv6 prefix\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6Prefix", "type": "string" } }, @@ -45947,117 +56533,179 @@ "items": { "$ref": "#/definitions/AWS::EC2::LaunchTemplate.BlockDeviceMapping" }, + "markdownDescription": "The block device mapping\\. \n*Required*: No \n*Type*: List of [BlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockDeviceMappings", "type": "array" }, "CapacityReservationSpecification": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CapacityReservationSpecification" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CapacityReservationSpecification", + "markdownDescription": "The Capacity Reservation targeting option\\. If you do not specify this parameter, the instance's Capacity Reservation preference defaults to `open`, which enables it to run in any open Capacity Reservation that has matching attributes \\(instance type, platform, Availability Zone\\)\\. \n*Required*: No \n*Type*: [CapacityReservationSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-capacityreservationspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityReservationSpecification" }, "CpuOptions": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CpuOptions" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CpuOptions", + "markdownDescription": "The CPU options for the instance\\. For more information, see [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: [CpuOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-cpuoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CpuOptions" }, "CreditSpecification": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CreditSpecification" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CreditSpecification", + "markdownDescription": "The credit option for CPU usage of the instance\\. Valid only for T instances\\. \n*Required*: No \n*Type*: [CreditSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-creditspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreditSpecification" }, "DisableApiStop": { + "markdownDescription": "Indicates whether to enable the instance for stop protection\\. For more information, see [Stop protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableApiStop", "type": "boolean" }, "DisableApiTermination": { + "markdownDescription": "If you set this parameter to `true`, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can\\. To change this attribute after launch, use [ModifyInstanceAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html)\\. Alternatively, if you set `InstanceInitiatedShutdownBehavior` to `terminate`, you can terminate the instance by running the shutdown command from the instance\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableApiTermination", "type": "boolean" }, "EbsOptimized": { + "markdownDescription": "Indicates whether the instance is optimized for Amazon EBS I/O\\. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance\\. This optimization isn't available with all instance types\\. Additional usage charges apply when using an EBS\\-optimized instance\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EbsOptimized", "type": "boolean" }, "ElasticGpuSpecifications": { "items": { "$ref": "#/definitions/AWS::EC2::LaunchTemplate.ElasticGpuSpecification" }, + "markdownDescription": "An elastic GPU to associate with the instance\\. \n*Required*: No \n*Type*: List of [ElasticGpuSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-elasticgpuspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticGpuSpecifications", "type": "array" }, "ElasticInferenceAccelerators": { "items": { "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateElasticInferenceAccelerator" }, + "markdownDescription": "The elastic inference accelerator for the instance\\. \n*Required*: No \n*Type*: List of [LaunchTemplateElasticInferenceAccelerator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplateelasticinferenceaccelerator.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticInferenceAccelerators", "type": "array" }, "EnclaveOptions": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.EnclaveOptions" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.EnclaveOptions", + "markdownDescription": "Indicates whether the instance is enabled for AWS Nitro Enclaves\\. For more information, see [ What is AWS Nitro Enclaves?](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html) in the * AWS Nitro Enclaves User Guide*\\. \nYou can't enable AWS Nitro Enclaves and hibernation on the same instance\\. \n*Required*: No \n*Type*: [EnclaveOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-enclaveoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnclaveOptions" }, "HibernationOptions": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.HibernationOptions" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.HibernationOptions", + "markdownDescription": "Indicates whether an instance is enabled for hibernation\\. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html)\\. For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: [HibernationOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-hibernationoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HibernationOptions" }, "IamInstanceProfile": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.IamInstanceProfile" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.IamInstanceProfile", + "markdownDescription": "The name or Amazon Resource Name \\(ARN\\) of an IAM instance profile\\. \n*Required*: No \n*Type*: [IamInstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-iaminstanceprofile.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamInstanceProfile" }, "ImageId": { + "markdownDescription": "The ID of the AMI\\. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch\\. \nValid formats: \n+ `ami-17characters00000` \n+ `resolve:ssm:parameter-name` \n+ `resolve:ssm:parameter-name:version-number` \n+ `resolve:ssm:parameter-name:label` \nFor more information, see [Use a Systems Manager parameter to find an AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html#using-systems-manager-parameter-to-find-AMI) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageId", "type": "string" }, "InstanceInitiatedShutdownBehavior": { + "markdownDescription": "Indicates whether an instance stops or terminates when you initiate shutdown from the instance \\(using the operating system command for system shutdown\\)\\. \nDefault: `stop` \n*Required*: No \n*Type*: String \n*Allowed values*: `stop | terminate` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceInitiatedShutdownBehavior", "type": "string" }, "InstanceMarketOptions": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.InstanceMarketOptions" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.InstanceMarketOptions", + "markdownDescription": "The market \\(purchasing\\) option for the instances\\. \n*Required*: No \n*Type*: [InstanceMarketOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceMarketOptions" }, "InstanceRequirements": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.InstanceRequirements" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.InstanceRequirements", + "markdownDescription": "The attributes for the instance types\\. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes\\. \nIf you specify `InstanceRequirements`, you can't specify `InstanceType`\\. \n*Required*: No \n*Type*: [InstanceRequirements](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancerequirements.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceRequirements" }, "InstanceType": { + "markdownDescription": "The instance type\\. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \nIf you specify `InstanceType`, you can't specify `InstanceRequirements`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | mac1.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6ad.12xlarge | r6ad.16xlarge | r6ad.24xlarge | r6ad.2xlarge | r6ad.32xlarge | r6ad.48xlarge | r6ad.4xlarge | r6ad.8xlarge | r6ad.large | r6ad.metal | r6ad.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", "type": "string" }, "KernelId": { + "markdownDescription": "The ID of the kernel\\. \nWe recommend that you use PV\\-GRUB instead of kernels and RAM disks\\. For more information, see [User Provided Kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KernelId", "type": "string" }, "KeyName": { + "markdownDescription": "The name of the key pair\\. You can create a key pair using [CreateKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html) or [ImportKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html)\\. \nIf you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyName", "type": "string" }, "LicenseSpecifications": { "items": { "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LicenseSpecification" }, + "markdownDescription": "The license configurations\\. \n*Required*: No \n*Type*: List of [LicenseSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-licensespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LicenseSpecifications", "type": "array" }, "MaintenanceOptions": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.MaintenanceOptions" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.MaintenanceOptions", + "markdownDescription": "The maintenance options of your instance\\. \n*Required*: No \n*Type*: [MaintenanceOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-maintenanceoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaintenanceOptions" }, "MetadataOptions": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.MetadataOptions" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.MetadataOptions", + "markdownDescription": "The metadata options for the instance\\. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: [MetadataOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-metadataoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetadataOptions" }, "Monitoring": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Monitoring" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Monitoring", + "markdownDescription": "The monitoring for the instance\\. \n*Required*: No \n*Type*: [Monitoring](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-monitoring.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Monitoring" }, "NetworkInterfaces": { "items": { "$ref": "#/definitions/AWS::EC2::LaunchTemplate.NetworkInterface" }, + "markdownDescription": "One or more network interfaces\\. If you specify a network interface, you must specify any security groups and subnets as part of the network interface\\. \n*Required*: No \n*Type*: List of [NetworkInterface](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkInterfaces", "type": "array" }, "Placement": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Placement" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Placement", + "markdownDescription": "The placement for the instance\\. \n*Required*: No \n*Type*: [Placement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-placement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Placement" }, "PrivateDnsNameOptions": { - "$ref": "#/definitions/AWS::EC2::LaunchTemplate.PrivateDnsNameOptions" + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.PrivateDnsNameOptions", + "markdownDescription": "The options for the instance hostname\\. The default values are inherited from the subnet\\. \n*Required*: No \n*Type*: [PrivateDnsNameOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-privatednsnameoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateDnsNameOptions" }, "RamDiskId": { + "markdownDescription": "The ID of the RAM disk\\. \nWe recommend that you use PV\\-GRUB instead of kernels and RAM disks\\. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon Elastic Compute Cloud User Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RamDiskId", "type": "string" }, "SecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "One or more security group IDs\\. You can create a security group using [CreateSecurityGroup](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html)\\. You cannot specify both a security group ID and security name in the same request\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "SecurityGroups": { "items": { "type": "string" }, + "markdownDescription": "One or more security group names\\. For a nondefault VPC, you must use security group IDs instead\\. You cannot specify both a security group ID and security name in the same request\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroups", "type": "array" }, "TagSpecifications": { "items": { "$ref": "#/definitions/AWS::EC2::LaunchTemplate.TagSpecification" }, + "markdownDescription": "The tags to apply to the resources that are created during instance launch\\. \nYou can specify tags for the following resources only: \n+ Instances\n+ Volumes\n+ Elastic graphics\n+ Spot Instance requests\n+ Network interfaces\nTo tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html)\\. \nTo tag the launch template itself, you must use the [TagSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html) parameter\\.\n*Required*: No \n*Type*: List of [TagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-tagspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagSpecifications", "type": "array" }, "UserData": { + "markdownDescription": "The user data to make available to the instance\\. You must provide base64\\-encoded text\\. User data is limited to 16 KB\\. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) \\(Linux\\) or [Work with instance user data](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instancedata-add-user-data.html) \\(Windows\\) in the *Amazon Elastic Compute Cloud User Guide*\\. \nIf you are creating the launch template for use with AWS Batch, the user data must be provided in the [ MIME multi\\-part archive format](https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive)\\. For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserData", "type": "string" } }, @@ -46067,9 +56715,13 @@ "additionalProperties": false, "properties": { "Count": { + "markdownDescription": "The number of elastic inference accelerators to attach to the instance\\. \nDefault: 1 \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count", "type": "number" }, "Type": { + "markdownDescription": "The type of elastic inference accelerator\\. The possible values are eia1\\.medium, eia1\\.large, and eia1\\.xlarge\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -46079,12 +56731,16 @@ "additionalProperties": false, "properties": { "ResourceType": { + "markdownDescription": "The type of resource\\. To tag the launch template, `ResourceType` must be `launch-template`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `capacity-reservation | capacity-reservation-fleet | carrier-gateway | client-vpn-endpoint | coip-pool | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | instance-event-window | internet-gateway | ipam | ipam-pool | ipam-resource-discovery | ipam-resource-discovery-association | ipam-scope | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | launch-template | local-gateway | local-gateway-route-table | local-gateway-route-table-virtual-interface-group-association | local-gateway-route-table-vpc-association | local-gateway-virtual-interface | local-gateway-virtual-interface-group | natgateway | network-acl | network-insights-access-scope | network-insights-access-scope-analysis | network-insights-analysis | network-insights-path | network-interface | placement-group | prefix-list | replace-root-volume-task | reserved-instances | route-server | route-server-endpoint | route-server-peer | route-table | security-group | security-group-rule | snapshot | spot-fleet-request | spot-instances-request | subnet | subnet-cidr-reservation | traffic-mirror-filter | traffic-mirror-filter-rule | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-policy-table | transit-gateway-route-table | transit-gateway-route-table-announcement | verified-access-endpoint | verified-access-group | verified-access-instance | verified-access-policy | verified-access-trust-provider | volume | vpc | vpc-block-public-access-exclusion | vpc-endpoint | vpc-endpoint-connection | vpc-endpoint-connection-device-type | vpc-endpoint-service | vpc-endpoint-service-permission | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-connection-device-type | vpn-gateway` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceType", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags for the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -46094,6 +56750,8 @@ "additionalProperties": false, "properties": { "LicenseConfigurationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the license configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LicenseConfigurationArn", "type": "string" } }, @@ -46103,6 +56761,8 @@ "additionalProperties": false, "properties": { "AutoRecovery": { + "markdownDescription": "Disables the automatic recovery behavior of your instance or sets it to default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `default | disabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoRecovery", "type": "string" } }, @@ -46112,9 +56772,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum amount of memory per vCPU, in GiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum amount of memory per vCPU, in GiB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", "type": "number" } }, @@ -46124,9 +56788,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum amount of memory, in MiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum amount of memory, in MiB\\. To specify no minimum limit, specify `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", "type": "number" } }, @@ -46136,18 +56804,28 @@ "additionalProperties": false, "properties": { "HttpEndpoint": { + "markdownDescription": "Enables or disables the HTTP metadata endpoint on your instances\\. If the parameter is not specified, the default state is `enabled`\\. \nIf you specify a value of `disabled`, you will not be able to access your instance metadata\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disabled | enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpEndpoint", "type": "string" }, "HttpProtocolIpv6": { + "markdownDescription": "Enables or disables the IPv6 endpoint for the instance metadata service\\. \nDefault: `disabled` \n*Required*: No \n*Type*: String \n*Allowed values*: `disabled | enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpProtocolIpv6", "type": "string" }, "HttpPutResponseHopLimit": { + "markdownDescription": "The desired HTTP PUT response hop limit for instance metadata requests\\. The larger the number, the further instance metadata requests can travel\\. \nDefault: `1` \nPossible values: Integers from 1 to 64 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpPutResponseHopLimit", "type": "number" }, "HttpTokens": { + "markdownDescription": "IMDSv2 uses token\\-backed sessions\\. Set the use of HTTP tokens to `optional` \\(in other words, set the use of IMDSv2 to `optional`\\) or `required` \\(in other words, set the use of IMDSv2 to `required`\\)\\. \n+ `optional` \\- When IMDSv2 is optional, you can choose to retrieve instance metadata with or without a session token in your request\\. If you retrieve the IAM role credentials without a token, the IMDSv1 role credentials are returned\\. If you retrieve the IAM role credentials using a valid session token, the IMDSv2 role credentials are returned\\.\n+ `required` \\- When IMDSv2 is required, you must send a session token with any instance metadata retrieval requests\\. In this state, retrieving the IAM role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not available\\.\nDefault: `optional` \n*Required*: No \n*Type*: String \n*Allowed values*: `optional | required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpTokens", "type": "string" }, "InstanceMetadataTags": { + "markdownDescription": "Set to `enabled` to allow access to instance tags from the instance metadata\\. Set to `disabled` to turn off access to instance tags from the instance metadata\\. For more information, see [Work with instance tags using the instance metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#work-with-tags-in-IMDS)\\. \nDefault: `disabled` \n*Required*: No \n*Type*: String \n*Allowed values*: `disabled | enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceMetadataTags", "type": "string" } }, @@ -46157,6 +56835,8 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Specify `true` to enable detailed monitoring\\. Otherwise, basic monitoring is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -46166,9 +56846,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum amount of network bandwidth, in Gbps\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum amount of network bandwidth, in Gbps\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", "type": "number" } }, @@ -46178,75 +56862,113 @@ "additionalProperties": false, "properties": { "AssociateCarrierIpAddress": { + "markdownDescription": "Indicates whether to associate a Carrier IP address with eth0 for a new network interface\\. \nUse this option when you launch an instance in a Wavelength Zone and want to associate a Carrier IP address with the network interface\\. For more information about Carrier IP addresses, see [Carrier IP addresses](https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#provider-owned-ip) in the * AWS Wavelength Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociateCarrierIpAddress", "type": "boolean" }, "AssociatePublicIpAddress": { + "markdownDescription": "Associates a public IPv4 address with eth0 for a new network interface\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociatePublicIpAddress", "type": "boolean" }, "DeleteOnTermination": { + "markdownDescription": "Indicates whether the network interface is deleted when the instance is terminated\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteOnTermination", "type": "boolean" }, "Description": { + "markdownDescription": "A description for the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DeviceIndex": { + "markdownDescription": "The device index for the network interface attachment\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceIndex", "type": "number" }, "Groups": { "items": { "type": "string" }, + "markdownDescription": "The IDs of one or more security groups\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Groups", "type": "array" }, "InterfaceType": { + "markdownDescription": "The type of network interface\\. To create an Elastic Fabric Adapter \\(EFA\\), specify `efa`\\. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \nIf you are not creating an EFA, specify `interface` or omit this parameter\\. \nValid values: `interface` \\| `efa` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InterfaceType", "type": "string" }, "Ipv4PrefixCount": { + "markdownDescription": "The number of IPv4 prefixes to be automatically assigned to the network interface\\. You cannot use this option if you use the `Ipv4Prefix` option\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv4PrefixCount", "type": "number" }, "Ipv4Prefixes": { "items": { "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ipv4PrefixSpecification" }, + "markdownDescription": "One or more IPv4 prefixes to be assigned to the network interface\\. You cannot use this option if you use the `Ipv4PrefixCount` option\\. \n*Required*: No \n*Type*: List of [Ipv4PrefixSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ipv4prefixspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv4Prefixes", "type": "array" }, "Ipv6AddressCount": { + "markdownDescription": "The number of IPv6 addresses to assign to a network interface\\. Amazon EC2 automatically selects the IPv6 addresses from the subnet range\\. You can't use this option if specifying specific IPv6 addresses\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6AddressCount", "type": "number" }, "Ipv6Addresses": { "items": { "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ipv6Add" }, + "markdownDescription": "One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet\\. You can't use this option if you're specifying a number of IPv6 addresses\\. \n*Required*: No \n*Type*: List of [Ipv6Add](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ipv6add.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6Addresses", "type": "array" }, "Ipv6PrefixCount": { + "markdownDescription": "The number of IPv6 prefixes to be automatically assigned to the network interface\\. You cannot use this option if you use the `Ipv6Prefix` option\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6PrefixCount", "type": "number" }, "Ipv6Prefixes": { "items": { "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ipv6PrefixSpecification" }, + "markdownDescription": "One or more IPv6 prefixes to be assigned to the network interface\\. You cannot use this option if you use the `Ipv6PrefixCount` option\\. \n*Required*: No \n*Type*: List of [Ipv6PrefixSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ipv6prefixspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6Prefixes", "type": "array" }, "NetworkCardIndex": { + "markdownDescription": "The index of the network card\\. Some instance types support multiple network cards\\. The primary network interface must be assigned to network card index 0\\. The default is network card index 0\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkCardIndex", "type": "number" }, "NetworkInterfaceId": { + "markdownDescription": "The ID of the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkInterfaceId", "type": "string" }, "PrivateIpAddress": { + "markdownDescription": "The primary private IPv4 address of the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateIpAddress", "type": "string" }, "PrivateIpAddresses": { "items": { "$ref": "#/definitions/AWS::EC2::LaunchTemplate.PrivateIpAdd" }, + "markdownDescription": "One or more private IPv4 addresses\\. \n*Required*: No \n*Type*: List of [PrivateIpAdd](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-privateipadd.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateIpAddresses", "type": "array" }, "SecondaryPrivateIpAddressCount": { + "markdownDescription": "The number of secondary private IPv4 addresses to assign to a network interface\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryPrivateIpAddressCount", "type": "number" }, "SubnetId": { + "markdownDescription": "The ID of the subnet for the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetId", "type": "string" } }, @@ -46256,9 +56978,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum number of network interfaces\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum number of network interfaces\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", "type": "number" } }, @@ -46268,30 +56994,48 @@ "additionalProperties": false, "properties": { "Affinity": { + "markdownDescription": "The affinity setting for an instance on a Dedicated Host\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Affinity", "type": "string" }, "AvailabilityZone": { + "markdownDescription": "The Availability Zone for the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZone", "type": "string" }, "GroupId": { + "markdownDescription": "The Group Id of a placement group\\. You must specify the Placement Group **Group Id** to launch an instance in a shared placement group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupId", "type": "string" }, "GroupName": { + "markdownDescription": "The name of the placement group for the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupName", "type": "string" }, "HostId": { + "markdownDescription": "The ID of the Dedicated Host for the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostId", "type": "string" }, "HostResourceGroupArn": { + "markdownDescription": "The ARN of the host resource group in which to launch the instances\\. If you specify a host resource group ARN, omit the **Tenancy** parameter or set it to `host`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostResourceGroupArn", "type": "string" }, "PartitionNumber": { + "markdownDescription": "The number of the partition the instance should launch in\\. Valid only if the placement group strategy is set to `partition`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PartitionNumber", "type": "number" }, "SpreadDomain": { + "markdownDescription": "Reserved for future use\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpreadDomain", "type": "string" }, "Tenancy": { + "markdownDescription": "The tenancy of the instance \\(if the instance is running in a VPC\\)\\. An instance with a tenancy of dedicated runs on single\\-tenant hardware\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dedicated | default | host` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tenancy", "type": "string" } }, @@ -46301,12 +57045,18 @@ "additionalProperties": false, "properties": { "EnableResourceNameDnsAAAARecord": { + "markdownDescription": "Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableResourceNameDnsAAAARecord", "type": "boolean" }, "EnableResourceNameDnsARecord": { + "markdownDescription": "Indicates whether to respond to DNS queries for instance hostnames with DNS A records\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableResourceNameDnsARecord", "type": "boolean" }, "HostnameType": { + "markdownDescription": "The type of hostname for EC2 instances\\. For IPv4 only subnets, an instance DNS name must be based on the instance IPv4 address\\. For IPv6 only subnets, an instance DNS name must be based on the instance ID\\. For dual\\-stack subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID\\. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ip-name | resource-name` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostnameType", "type": "string" } }, @@ -46316,9 +57066,13 @@ "additionalProperties": false, "properties": { "Primary": { + "markdownDescription": "Indicates whether the private IPv4 address is the primary private IPv4 address\\. Only one IPv4 address can be designated as primary\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Primary", "type": "boolean" }, "PrivateIpAddress": { + "markdownDescription": "The private IPv4 address\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateIpAddress", "type": "string" } }, @@ -46328,18 +57082,28 @@ "additionalProperties": false, "properties": { "BlockDurationMinutes": { + "markdownDescription": "Deprecated\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockDurationMinutes", "type": "number" }, "InstanceInterruptionBehavior": { + "markdownDescription": "The behavior when a Spot Instance is interrupted\\. The default is `terminate`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `hibernate | stop | terminate` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceInterruptionBehavior", "type": "string" }, "MaxPrice": { + "markdownDescription": "The maximum hourly price you're willing to pay for the Spot Instances\\. We do not recommend using this parameter because it can lead to increased interruptions\\. If you do not specify this parameter, you will pay the current Spot price\\. \nIf you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxPrice", "type": "string" }, "SpotInstanceType": { + "markdownDescription": "The Spot Instance request type\\. \nIf you are using Spot Instances with an Auto Scaling group, use `one-time` requests, as the Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is below its desired capacity\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `one-time | persistent` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpotInstanceType", "type": "string" }, "ValidUntil": { + "markdownDescription": "The end date of the request, in UTC format \\(*YYYY\\-MM\\-DD*T*HH:MM:SS*Z\\)\\. Supported only for persistent requests\\. \n+ For a persistent request, the request remains active until the `ValidUntil` date and time is reached\\. Otherwise, the request remains active until you cancel it\\.\n+ For a one\\-time request, `ValidUntil` is not supported\\. The request remains active until all instances launch or you cancel the request\\.\nDefault: 7 days from the current date \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValidUntil", "type": "string" } }, @@ -46349,12 +57113,16 @@ "additionalProperties": false, "properties": { "ResourceType": { + "markdownDescription": "The type of resource to tag\\. \nThe `Valid Values` are all the resource types that can be tagged\\. However, when creating a launch template, you can specify tags for the following resource types only: `instance` \\| `volume` \\| `elastic-gpu` \\| `network-interface` \\| `spot-instances-request` \nTo tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `capacity-reservation | capacity-reservation-fleet | carrier-gateway | client-vpn-endpoint | coip-pool | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | instance-event-window | internet-gateway | ipam | ipam-pool | ipam-resource-discovery | ipam-resource-discovery-association | ipam-scope | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | launch-template | local-gateway | local-gateway-route-table | local-gateway-route-table-virtual-interface-group-association | local-gateway-route-table-vpc-association | local-gateway-virtual-interface | local-gateway-virtual-interface-group | natgateway | network-acl | network-insights-access-scope | network-insights-access-scope-analysis | network-insights-analysis | network-insights-path | network-interface | placement-group | prefix-list | replace-root-volume-task | reserved-instances | route-server | route-server-endpoint | route-server-peer | route-table | security-group | security-group-rule | snapshot | spot-fleet-request | spot-instances-request | subnet | subnet-cidr-reservation | traffic-mirror-filter | traffic-mirror-filter-rule | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-policy-table | transit-gateway-route-table | transit-gateway-route-table-announcement | verified-access-endpoint | verified-access-group | verified-access-instance | verified-access-policy | verified-access-trust-provider | volume | vpc | vpc-block-public-access-exclusion | vpc-endpoint | vpc-endpoint-connection | vpc-endpoint-connection-device-type | vpc-endpoint-service | vpc-endpoint-service-permission | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-connection-device-type | vpn-gateway` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceType", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to apply to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -46364,9 +57132,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum amount of total local storage, in GB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum amount of total local storage, in GB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", "type": "number" } }, @@ -46376,9 +57148,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum number of vCPUs\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum number of vCPUs\\. To specify no minimum limit, specify `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", "type": "number" } }, @@ -46420,15 +57196,23 @@ "additionalProperties": false, "properties": { "DestinationCidrBlock": { + "markdownDescription": "The CIDR block used for destination matches\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationCidrBlock", "type": "string" }, "LocalGatewayRouteTableId": { + "markdownDescription": "The ID of the local gateway route table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalGatewayRouteTableId", "type": "string" }, "LocalGatewayVirtualInterfaceGroupId": { + "markdownDescription": "The ID of the virtual interface group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocalGatewayVirtualInterfaceGroupId", "type": "string" }, "NetworkInterfaceId": { + "markdownDescription": "The ID of the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkInterfaceId", "type": "string" } }, @@ -46495,15 +57279,21 @@ "additionalProperties": false, "properties": { "LocalGatewayRouteTableId": { + "markdownDescription": "The ID of the local gateway route table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalGatewayRouteTableId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags assigned to the association\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VpcId": { + "markdownDescription": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -46570,21 +57360,57 @@ "additionalProperties": false, "properties": { "AllocationId": { + "markdownDescription": "\\[Public NAT gateway only\\] The allocation ID of the Elastic IP address that's associated with the NAT gateway\\. This property is required for a public NAT gateway and cannot be specified with a private NAT gateway\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AllocationId", "type": "string" }, "ConnectivityType": { + "markdownDescription": "Indicates whether the NAT gateway supports public or private connectivity\\. The default is public connectivity\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `private | public` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectivityType", "type": "string" }, + "MaxDrainDurationSeconds": { + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxDrainDurationSeconds", + "type": "number" + }, "PrivateIpAddress": { + "markdownDescription": "The private IPv4 address to assign to the NAT gateway\\. If you don't provide an address, a private IPv4 address will be automatically assigned\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrivateIpAddress", "type": "string" }, + "SecondaryAllocationIds": { + "items": { + "type": "string" + }, + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryAllocationIds", + "type": "array" + }, + "SecondaryPrivateIpAddressCount": { + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryPrivateIpAddressCount", + "type": "number" + }, + "SecondaryPrivateIpAddresses": { + "items": { + "type": "string" + }, + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryPrivateIpAddresses", + "type": "array" + }, "SubnetId": { + "markdownDescription": "The ID of the subnet in which the NAT gateway is located\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags for the NAT gateway\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -46653,9 +57479,13 @@ "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags for the network ACL\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VpcId": { + "markdownDescription": "The ID of the VPC for the network ACL\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -46721,30 +57551,48 @@ "additionalProperties": false, "properties": { "CidrBlock": { + "markdownDescription": "The IPv4 CIDR range to allow or deny, in CIDR notation \\(for example, 172\\.16\\.0\\.0/24\\)\\. Requirement is conditional: You must specify the `CidrBlock` or `Ipv6CidrBlock` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CidrBlock", "type": "string" }, "Egress": { + "markdownDescription": "Whether this rule applies to egress traffic from the subnet \\(`true`\\) or ingress traffic to the subnet \\(`false`\\)\\. By default, AWS CloudFormation specifies `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Egress", "type": "boolean" }, "Icmp": { - "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.Icmp" + "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.Icmp", + "markdownDescription": "The Internet Control Message Protocol \\(ICMP\\) code and type\\. Requirement is conditional: Required if specifying 1 \\(ICMP\\) for the protocol parameter\\. \n*Required*: No \n*Type*: [Icmp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-icmp.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Icmp" }, "Ipv6CidrBlock": { + "markdownDescription": "The IPv6 network range to allow or deny, in CIDR notation\\. Requirement is conditional: You must specify the `CidrBlock` or `Ipv6CidrBlock` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6CidrBlock", "type": "string" }, "NetworkAclId": { + "markdownDescription": "The ID of the ACL for the entry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkAclId", "type": "string" }, "PortRange": { - "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.PortRange" + "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.PortRange", + "markdownDescription": "The range of port numbers for the UDP/TCP protocol\\. Conditional required if specifying 6 \\(TCP\\) or 17 \\(UDP\\) for the protocol parameter\\. \n*Required*: No \n*Type*: [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortRange" }, "Protocol": { + "markdownDescription": "The IP protocol that the rule applies to\\. You must specify \\-1 or a protocol number\\. You can specify \\-1 for all protocols\\. \nIf you specify \\-1, all ports are opened and the `PortRange` property is ignored\\.\n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "number" }, "RuleAction": { + "markdownDescription": "Whether to allow or deny traffic that matches the rule; valid values are \"allow\" or \"deny\"\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `allow | deny` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleAction", "type": "string" }, "RuleNumber": { + "markdownDescription": "Rule number to assign to the entry, such as 100\\. ACL entries are processed in ascending order by rule number\\. Entries can't use the same rule number unless one is an egress rule and the other is an ingress rule\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RuleNumber", "type": "number" } }, @@ -46781,9 +57629,13 @@ "additionalProperties": false, "properties": { "Code": { + "markdownDescription": "The Internet Control Message Protocol \\(ICMP\\) code\\. You can use \\-1 to specify all ICMP codes for the given ICMP type\\. Requirement is conditional: Required if you specify 1 \\(ICMP\\) for the protocol parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Code", "type": "number" }, "Type": { + "markdownDescription": "The Internet Control Message Protocol \\(ICMP\\) type\\. You can use \\-1 to specify all ICMP types\\. Conditional requirement: Required if you specify 1 \\(ICMP\\) for the `CreateNetworkAclEntry` protocol parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "number" } }, @@ -46793,9 +57645,13 @@ "additionalProperties": false, "properties": { "From": { + "markdownDescription": "The first port in the range\\. Required if you specify 6 \\(TCP\\) or 17 \\(UDP\\) for the protocol parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "From", "type": "number" }, "To": { + "markdownDescription": "The last port in the range\\. Required if you specify 6 \\(TCP\\) or 17 \\(UDP\\) for the protocol parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "To", "type": "number" } }, @@ -46840,18 +57696,24 @@ "items": { "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.AccessScopePathRequest" }, + "markdownDescription": "The paths to exclude\\. \n*Required*: No \n*Type*: List of [AccessScopePathRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-accessscopepathrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExcludePaths", "type": "array" }, "MatchPaths": { "items": { "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.AccessScopePathRequest" }, + "markdownDescription": "The paths to match\\. \n*Required*: No \n*Type*: List of [AccessScopePathRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-accessscopepathrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MatchPaths", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -46881,15 +57743,21 @@ "additionalProperties": false, "properties": { "Destination": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.PathStatementRequest" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.PathStatementRequest", + "markdownDescription": "The destination\\. \n*Required*: No \n*Type*: [PathStatementRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-pathstatementrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Destination" }, "Source": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.PathStatementRequest" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.PathStatementRequest", + "markdownDescription": "The source\\. \n*Required*: No \n*Type*: [PathStatementRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-pathstatementrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Source" }, "ThroughResources": { "items": { "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.ThroughResourcesStatementRequest" }, + "markdownDescription": "The through resources\\. \n*Required*: No \n*Type*: List of [ThroughResourcesStatementRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-throughresourcesstatementrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ThroughResources", "type": "array" } }, @@ -46902,42 +57770,56 @@ "items": { "type": "string" }, + "markdownDescription": "The destination addresses\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationAddresses", "type": "array" }, "DestinationPorts": { "items": { "type": "string" }, + "markdownDescription": "The destination ports\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationPorts", "type": "array" }, "DestinationPrefixLists": { "items": { "type": "string" }, + "markdownDescription": "The destination prefix lists\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationPrefixLists", "type": "array" }, "Protocols": { "items": { "type": "string" }, + "markdownDescription": "The protocols\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Protocols", "type": "array" }, "SourceAddresses": { "items": { "type": "string" }, + "markdownDescription": "The source addresses\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceAddresses", "type": "array" }, "SourcePorts": { "items": { "type": "string" }, + "markdownDescription": "The source ports\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourcePorts", "type": "array" }, "SourcePrefixLists": { "items": { "type": "string" }, + "markdownDescription": "The source prefix lists\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourcePrefixLists", "type": "array" } }, @@ -46947,10 +57829,14 @@ "additionalProperties": false, "properties": { "PacketHeaderStatement": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.PacketHeaderStatementRequest" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.PacketHeaderStatementRequest", + "markdownDescription": "The packet header statement\\. \n*Required*: No \n*Type*: [PacketHeaderStatementRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-packetheaderstatementrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PacketHeaderStatement" }, "ResourceStatement": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.ResourceStatementRequest" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.ResourceStatementRequest", + "markdownDescription": "The resource statement\\. \n*Required*: No \n*Type*: [ResourceStatementRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-resourcestatementrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceStatement" } }, "type": "object" @@ -46962,12 +57848,16 @@ "items": { "type": "string" }, + "markdownDescription": "The resource types\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceTypes", "type": "array" }, "Resources": { "items": { "type": "string" }, + "markdownDescription": "The resources\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Resources", "type": "array" } }, @@ -46977,7 +57867,9 @@ "additionalProperties": false, "properties": { "ResourceStatement": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.ResourceStatementRequest" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.ResourceStatementRequest", + "markdownDescription": "The resource statement\\. \n*Required*: No \n*Type*: [ResourceStatementRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-resourcestatementrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceStatement" } }, "type": "object" @@ -47018,12 +57910,16 @@ "additionalProperties": false, "properties": { "NetworkInsightsAccessScopeId": { + "markdownDescription": "The ID of the Network Access Scope\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInsightsAccessScopeId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -47092,21 +57988,29 @@ "items": { "type": "string" }, + "markdownDescription": "The member accounts that contain resources that the path can traverse\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdditionalAccounts", "type": "array" }, "FilterInArns": { "items": { "type": "string" }, + "markdownDescription": "The Amazon Resource Names \\(ARN\\) of the resources that the path must traverse\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FilterInArns", "type": "array" }, "NetworkInsightsPathId": { + "markdownDescription": "The ID of the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInsightsPathId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to apply\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -47140,10 +58044,23 @@ "additionalProperties": false, "properties": { "AdditionalDetailType": { + "markdownDescription": "The information type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdditionalDetailType", "type": "string" }, "Component": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The path component\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Component" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "type": "array" + }, + "ServiceName": { + "type": "string" } }, "type": "object" @@ -47152,9 +58069,13 @@ "additionalProperties": false, "properties": { "ComponentArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentArn", "type": "string" }, "ComponentId": { + "markdownDescription": "The ID of the component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentId", "type": "string" } }, @@ -47164,21 +58085,33 @@ "additionalProperties": false, "properties": { "Cidr": { + "markdownDescription": "The IPv4 address range, in CIDR notation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cidr", "type": "string" }, "Egress": { + "markdownDescription": "Indicates whether the rule is an outbound rule\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Egress", "type": "boolean" }, "PortRange": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.PortRange" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.PortRange", + "markdownDescription": "The range of ports\\. \n*Required*: No \n*Type*: [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortRange" }, "Protocol": { + "markdownDescription": "The protocol\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "string" }, "RuleAction": { + "markdownDescription": "Indicates whether to allow or deny traffic that matches the rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleAction", "type": "string" }, "RuleNumber": { + "markdownDescription": "The rule number\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleNumber", "type": "number" } }, @@ -47188,9 +58121,13 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "Id": { + "markdownDescription": "The ID of the component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" } }, @@ -47200,9 +58137,13 @@ "additionalProperties": false, "properties": { "InstancePort": { + "markdownDescription": "\\[Classic Load Balancers\\] The back\\-end port for the listener\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstancePort", "type": "number" }, "LoadBalancerPort": { + "markdownDescription": "The port on which the load balancer is listening\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerPort", "type": "number" } }, @@ -47212,15 +58153,23 @@ "additionalProperties": false, "properties": { "Address": { + "markdownDescription": "The IP address\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `15` \n*Pattern*: `^([0-9]{1,3}.){3}[0-9]{1,3}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Address", "type": "string" }, "AvailabilityZone": { + "markdownDescription": "The Availability Zone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZone", "type": "string" }, "Instance": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "Information about the instance\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Instance" }, "Port": { + "markdownDescription": "The port on which the target is listening\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" } }, @@ -47233,27 +58182,37 @@ "items": { "type": "string" }, + "markdownDescription": "The destination addresses\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationAddresses", "type": "array" }, "DestinationPortRanges": { "items": { "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.PortRange" }, + "markdownDescription": "The destination port ranges\\. \n*Required*: No \n*Type*: List of [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationPortRanges", "type": "array" }, "Protocol": { + "markdownDescription": "The protocol\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "string" }, "SourceAddresses": { "items": { "type": "string" }, + "markdownDescription": "The source addresses\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceAddresses", "type": "array" }, "SourcePortRanges": { "items": { "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.PortRange" }, + "markdownDescription": "The source port ranges\\. \n*Required*: No \n*Type*: List of [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourcePortRanges", "type": "array" } }, @@ -47263,36 +58222,58 @@ "additionalProperties": false, "properties": { "NatGatewayId": { + "markdownDescription": "The ID of a NAT gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NatGatewayId", "type": "string" }, "NetworkInterfaceId": { + "markdownDescription": "The ID of a network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkInterfaceId", "type": "string" }, "Origin": { + "markdownDescription": "Describes how the route was created\\. The following are the possible values: \n+ CreateRouteTable \\- The route was automatically created when the route table was created\\.\n+ CreateRoute \\- The route was manually added to the route table\\.\n+ EnableVgwRoutePropagation \\- The route was propagated by route propagation\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Origin", "type": "string" }, "State": { + "markdownDescription": "The state\\. The following are the possible values: \n+ active\n+ blackhole\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", "type": "string" }, "TransitGatewayId": { + "markdownDescription": "The ID of a transit gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitGatewayId", "type": "string" }, "VpcPeeringConnectionId": { + "markdownDescription": "The ID of a VPC peering connection\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcPeeringConnectionId", "type": "string" }, "destinationCidr": { + "markdownDescription": "The destination IPv4 address, in CIDR notation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "destinationCidr", "type": "string" }, "destinationPrefixListId": { + "markdownDescription": "The prefix of the AWS service\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "destinationPrefixListId", "type": "string" }, "egressOnlyInternetGatewayId": { + "markdownDescription": "The ID of an egress\\-only internet gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "egressOnlyInternetGatewayId", "type": "string" }, "gatewayId": { + "markdownDescription": "The ID of the gateway, such as an internet gateway or virtual private gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "gatewayId", "type": "string" }, "instanceId": { + "markdownDescription": "The ID of the instance, such as a NAT instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "instanceId", "type": "string" } }, @@ -47302,21 +58283,33 @@ "additionalProperties": false, "properties": { "Cidr": { + "markdownDescription": "The IPv4 address range, in CIDR notation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cidr", "type": "string" }, "Direction": { + "markdownDescription": "The direction\\. The following are the possible values: \n+ egress\n+ ingress\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Direction", "type": "string" }, "PortRange": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.PortRange" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.PortRange", + "markdownDescription": "The port range\\. \n*Required*: No \n*Type*: [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortRange" }, "PrefixListId": { + "markdownDescription": "The prefix list ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrefixListId", "type": "string" }, "Protocol": { + "markdownDescription": "The protocol name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "string" }, "SecurityGroupId": { + "markdownDescription": "The security group ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupId", "type": "string" } }, @@ -47326,178 +58319,280 @@ "additionalProperties": false, "properties": { "Acl": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The network ACL\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Acl" }, "AclRule": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisAclRule" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisAclRule", + "markdownDescription": "The network ACL rule\\. \n*Required*: No \n*Type*: [AnalysisAclRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisaclrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AclRule" }, "Address": { + "markdownDescription": "The IPv4 address, in CIDR notation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `15` \n*Pattern*: `^([0-9]{1,3}.){3}[0-9]{1,3}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Address", "type": "string" }, "Addresses": { "items": { "type": "string" }, + "markdownDescription": "The IPv4 addresses, in CIDR notation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Addresses", "type": "array" }, "AttachedTo": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The resource to which the component is attached\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttachedTo" }, "AvailabilityZones": { "items": { "type": "string" }, + "markdownDescription": "The Availability Zones\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZones", "type": "array" }, "Cidrs": { "items": { "type": "string" }, + "markdownDescription": "The CIDR ranges\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cidrs", "type": "array" }, "ClassicLoadBalancerListener": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisLoadBalancerListener" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisLoadBalancerListener", + "markdownDescription": "The listener for a Classic Load Balancer\\. \n*Required*: No \n*Type*: [AnalysisLoadBalancerListener](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisloadbalancerlistener.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClassicLoadBalancerListener" }, "Component": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The component\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Component" }, "ComponentAccount": { + "markdownDescription": "The AWS account for the component\\. \n*Required*: No \n*Type*: String \n*Pattern*: `\\d{12}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentAccount", "type": "string" }, "ComponentRegion": { + "markdownDescription": "The Region for the component\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[a-z]{2}-[a-z]+-[1-9]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentRegion", "type": "string" }, "CustomerGateway": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The customer gateway\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomerGateway" }, "Destination": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The destination\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" }, "DestinationVpc": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The destination VPC\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationVpc" }, "Direction": { + "markdownDescription": "The direction\\. The following are the possible values: \n+ egress\n+ ingress\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Direction", "type": "string" }, "ElasticLoadBalancerListener": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The load balancer listener\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticLoadBalancerListener" }, "ExplanationCode": { + "markdownDescription": "The explanation code\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExplanationCode", "type": "string" }, "IngressRouteTable": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The route table\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IngressRouteTable" }, "InternetGateway": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The internet gateway\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InternetGateway" }, "LoadBalancerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the load balancer\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1283` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerArn", "type": "string" }, "LoadBalancerListenerPort": { + "markdownDescription": "The listener port of the load balancer\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerListenerPort", "type": "number" }, "LoadBalancerTarget": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisLoadBalancerTarget" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisLoadBalancerTarget", + "markdownDescription": "The target\\. \n*Required*: No \n*Type*: [AnalysisLoadBalancerTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisloadbalancertarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerTarget" }, "LoadBalancerTargetGroup": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The target group\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerTargetGroup" }, "LoadBalancerTargetGroups": { "items": { "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" }, + "markdownDescription": "The target groups\\. \n*Required*: No \n*Type*: List of [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerTargetGroups", "type": "array" }, "LoadBalancerTargetPort": { + "markdownDescription": "The target port\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerTargetPort", "type": "number" }, "MissingComponent": { + "markdownDescription": "The missing component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MissingComponent", "type": "string" }, "NatGateway": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The NAT gateway\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NatGateway" }, "NetworkInterface": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The network interface\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkInterface" }, "PacketField": { + "markdownDescription": "The packet field\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PacketField", "type": "string" }, "Port": { + "markdownDescription": "The port\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" }, "PortRanges": { "items": { "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.PortRange" }, + "markdownDescription": "The port ranges\\. \n*Required*: No \n*Type*: List of [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortRanges", "type": "array" }, "PrefixList": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The prefix list\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrefixList" }, "Protocols": { "items": { "type": "string" }, + "markdownDescription": "The protocols\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocols", "type": "array" }, "RouteTable": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The route table\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteTable" }, "RouteTableRoute": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisRouteTableRoute" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisRouteTableRoute", + "markdownDescription": "The route table route\\. \n*Required*: No \n*Type*: [AnalysisRouteTableRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisroutetableroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteTableRoute" }, "SecurityGroup": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The security group\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroup" }, "SecurityGroupRule": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisSecurityGroupRule" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisSecurityGroupRule", + "markdownDescription": "The security group rule\\. \n*Required*: No \n*Type*: [AnalysisSecurityGroupRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysissecuritygrouprule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupRule" }, "SecurityGroups": { "items": { "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" }, + "markdownDescription": "The security groups\\. \n*Required*: No \n*Type*: List of [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroups", "type": "array" }, "SourceVpc": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The source VPC\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceVpc" }, "State": { + "markdownDescription": "The state\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", "type": "string" }, "Subnet": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The subnet\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subnet" }, "SubnetRouteTable": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The route table for the subnet\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetRouteTable" }, "TransitGateway": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The transit gateway\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitGateway" }, "TransitGatewayAttachment": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The transit gateway attachment\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitGatewayAttachment" }, "TransitGatewayRouteTable": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The transit gateway route table\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitGatewayRouteTable" }, "TransitGatewayRouteTableRoute": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.TransitGatewayRouteTableRoute" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.TransitGatewayRouteTableRoute", + "markdownDescription": "The transit gateway route table route\\. \n*Required*: No \n*Type*: [TransitGatewayRouteTableRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-transitgatewayroutetableroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitGatewayRouteTableRoute" }, "Vpc": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The component VPC\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Vpc" }, "VpcPeeringConnection": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The VPC peering connection\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcPeeringConnection" }, "VpnConnection": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The VPN connection\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpnConnection" }, "VpnGateway": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The VPN gateway\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpnGateway" }, "vpcEndpoint": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The VPC endpoint\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "vpcEndpoint" } }, "type": "object" @@ -47506,58 +58601,93 @@ "additionalProperties": false, "properties": { "AclRule": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisAclRule" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisAclRule", + "markdownDescription": "The network ACL rule\\. \n*Required*: No \n*Type*: [AnalysisAclRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisaclrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AclRule" }, "AdditionalDetails": { "items": { "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AdditionalDetail" }, + "markdownDescription": "The additional details\\. \n*Required*: No \n*Type*: List of [AdditionalDetail](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-additionaldetail.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdditionalDetails", "type": "array" }, "Component": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The component\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Component" }, "DestinationVpc": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The destination VPC\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationVpc" }, "ElasticLoadBalancerListener": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The load balancer listener\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticLoadBalancerListener" }, "Explanations": { "items": { "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.Explanation" }, + "markdownDescription": "The explanation codes\\. \n*Required*: No \n*Type*: List of [Explanation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Explanations", "type": "array" }, "InboundHeader": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisPacketHeader" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisPacketHeader", + "markdownDescription": "The inbound header\\. \n*Required*: No \n*Type*: [AnalysisPacketHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysispacketheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InboundHeader" }, "OutboundHeader": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisPacketHeader" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisPacketHeader", + "markdownDescription": "The outbound header\\. \n*Required*: No \n*Type*: [AnalysisPacketHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysispacketheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutboundHeader" }, "RouteTableRoute": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisRouteTableRoute" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisRouteTableRoute", + "markdownDescription": "The route table route\\. \n*Required*: No \n*Type*: [AnalysisRouteTableRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisroutetableroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteTableRoute" }, "SecurityGroupRule": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisSecurityGroupRule" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisSecurityGroupRule", + "markdownDescription": "The security group rule\\. \n*Required*: No \n*Type*: [AnalysisSecurityGroupRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysissecuritygrouprule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupRule" }, "SequenceNumber": { + "markdownDescription": "The sequence number\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SequenceNumber", "type": "number" }, + "ServiceName": { + "type": "string" + }, "SourceVpc": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The source VPC\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceVpc" }, "Subnet": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The subnet\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subnet" }, "TransitGateway": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The transit gateway\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitGateway" }, "TransitGatewayRouteTableRoute": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.TransitGatewayRouteTableRoute" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.TransitGatewayRouteTableRoute", + "markdownDescription": "The route in a transit gateway route table\\. \n*Required*: No \n*Type*: [TransitGatewayRouteTableRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-transitgatewayroutetableroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitGatewayRouteTableRoute" }, "Vpc": { - "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The component VPC\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Vpc" } }, "type": "object" @@ -47566,9 +58696,13 @@ "additionalProperties": false, "properties": { "From": { + "markdownDescription": "The first port in the range\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "From", "type": "number" }, "To": { + "markdownDescription": "The last port in the range\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "To", "type": "number" } }, @@ -47578,24 +58712,38 @@ "additionalProperties": false, "properties": { "AttachmentId": { + "markdownDescription": "The ID of the route attachment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttachmentId", "type": "string" }, "DestinationCidr": { + "markdownDescription": "The CIDR block used for destination matches\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationCidr", "type": "string" }, "PrefixListId": { + "markdownDescription": "The ID of the prefix list\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrefixListId", "type": "string" }, "ResourceId": { + "markdownDescription": "The ID of the resource for the route attachment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceId", "type": "string" }, "ResourceType": { + "markdownDescription": "The resource type for the route attachment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceType", "type": "string" }, "RouteOrigin": { + "markdownDescription": "The route origin\\. The following are the possible values: \n+ static\n+ propagated\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteOrigin", "type": "string" }, "State": { + "markdownDescription": "The state of the route\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", "type": "string" } }, @@ -47637,32 +58785,45 @@ "additionalProperties": false, "properties": { "Destination": { + "markdownDescription": "The AWS resource that is the destination of the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Destination", "type": "string" }, "DestinationIp": { + "markdownDescription": "The IP address of the AWS resource that is the destination of the path\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `15` \n*Pattern*: `^([0-9]{1,3}.){3}[0-9]{1,3}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationIp", "type": "string" }, "DestinationPort": { + "markdownDescription": "The destination port\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationPort", "type": "number" }, "Protocol": { + "markdownDescription": "The protocol\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `tcp | udp` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Protocol", "type": "string" }, "Source": { + "markdownDescription": "The AWS resource that is the source of the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Source", "type": "string" }, "SourceIp": { + "markdownDescription": "The IP address of the AWS resource that is the source of the path\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `15` \n*Pattern*: `^([0-9]{1,3}.){3}[0-9]{1,3}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceIp", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to add to the path\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, "required": [ - "Destination", "Protocol", "Source" ], @@ -47725,48 +58886,70 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description for the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "GroupSet": { "items": { "type": "string" }, + "markdownDescription": "The security group IDs associated with this network interface\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupSet", "type": "array" }, "InterfaceType": { + "markdownDescription": "The type of network interface\\. The default is `interface`\\. The supported values are `efa` and `trunk`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `branch | efa | trunk` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InterfaceType", "type": "string" }, "Ipv6AddressCount": { + "markdownDescription": "The number of IPv6 addresses to assign to a network interface\\. Amazon EC2 automatically selects the IPv6 addresses from the subnet range\\. To specify specific IPv6 addresses, use the `Ipv6Addresses` property and don't specify this property\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6AddressCount", "type": "number" }, "Ipv6Addresses": { "items": { "$ref": "#/definitions/AWS::EC2::NetworkInterface.InstanceIpv6Address" }, + "markdownDescription": "One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet to associate with the network interface\\. If you're specifying a number of IPv6 addresses, use the `Ipv6AddressCount` property and don't specify this property\\. \n*Required*: No \n*Type*: List of [InstanceIpv6Address](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinterface-instanceipv6address.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6Addresses", "type": "array" }, "PrivateIpAddress": { + "markdownDescription": "Assigns a single private IP address to the network interface, which is used as the primary private IP address\\. If you want to specify multiple private IP address, use the `PrivateIpAddresses` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrivateIpAddress", "type": "string" }, "PrivateIpAddresses": { "items": { "$ref": "#/definitions/AWS::EC2::NetworkInterface.PrivateIpAddressSpecification" }, + "markdownDescription": "Assigns private IP addresses to the network interface\\. You can specify a primary private IP address by setting the value of the `Primary` property to `true` in the `PrivateIpAddressSpecification` property\\. If you want EC2 to automatically assign private IP addresses, use the `SecondaryPrivateIpAddressCount` property and do not specify this property\\. \n*Required*: No \n*Type*: List of [PrivateIpAddressSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinterface-privateipaddressspecification.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "PrivateIpAddresses", "type": "array" }, "SecondaryPrivateIpAddressCount": { + "markdownDescription": "The number of secondary private IPv4 addresses to assign to a network interface\\. When you specify a number of secondary IPv4 addresses, Amazon EC2 selects these IP addresses within the subnet's IPv4 CIDR range\\. You can't specify this option and specify more than one private IP address using `privateIpAddresses`\\. \nYou can't specify a count of private IPv4 addresses if you've specified one of the following: specific private IPv4 addresses, specific IPv4 prefixes, or a count of IPv4 prefixes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryPrivateIpAddressCount", "type": "number" }, "SourceDestCheck": { + "markdownDescription": "Enable or disable source/destination checks, which ensure that the instance is either the source or the destination of any traffic that it receives\\. If the value is `true`, source/destination checks are enabled; otherwise, they are disabled\\. The default value is `true`\\. You must disable source/destination checks if the instance runs services such as network address translation, routing, or firewalls\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceDestCheck", "type": "boolean" }, "SubnetId": { + "markdownDescription": "The ID of the subnet to associate with the network interface\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An arbitrary set of tags \\(key\\-value pairs\\) for this network interface\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -47800,6 +58983,8 @@ "additionalProperties": false, "properties": { "Ipv6Address": { + "markdownDescription": "An IPv6 address to associate with the network interface\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6Address", "type": "string" } }, @@ -47812,9 +58997,13 @@ "additionalProperties": false, "properties": { "Primary": { + "markdownDescription": "Sets the private IP address as the primary private address\\. You can set only one primary private IP address\\. If you don't specify a primary private IP address, Amazon EC2 automatically assigns a primary private IP address\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Primary", "type": "boolean" }, "PrivateIpAddress": { + "markdownDescription": "The private IP address of the network interface\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "PrivateIpAddress", "type": "string" } }, @@ -47860,15 +59049,23 @@ "additionalProperties": false, "properties": { "DeleteOnTermination": { + "markdownDescription": "Whether to delete the network interface when the instance terminates\\. By default, this value is set to `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteOnTermination", "type": "boolean" }, "DeviceIndex": { + "markdownDescription": "The network interface's position in the attachment order\\. For example, the first attached network interface has a `DeviceIndex` of 0\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceIndex", "type": "string" }, "InstanceId": { + "markdownDescription": "The ID of the instance to which you will attach the ENI\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceId", "type": "string" }, "NetworkInterfaceId": { + "markdownDescription": "The ID of the ENI that you want to attach\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkInterfaceId", "type": "string" } }, @@ -47936,12 +59133,18 @@ "additionalProperties": false, "properties": { "AwsAccountId": { + "markdownDescription": "The AWS account ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AwsAccountId", "type": "string" }, "NetworkInterfaceId": { + "markdownDescription": "The ID of the network interface\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInterfaceId", "type": "string" }, "Permission": { + "markdownDescription": "The type of permission to grant: `INSTANCE-ATTACH` or `EIP-ASSOCIATE`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EIP-ASSOCIATE | INSTANCE-ATTACH` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Permission", "type": "string" } }, @@ -48009,15 +59212,23 @@ "additionalProperties": false, "properties": { "Destination": { + "markdownDescription": "The Region or Availability Zone that's the target for the subscription\\. For example, `eu-west-1`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Destination", "type": "string" }, "Metric": { + "markdownDescription": "The metric used for the subscription\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `aggregate-latency` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Metric", "type": "string" }, "Source": { + "markdownDescription": "The Region or Availability Zone that's the source for the subscription\\. For example, `us-east-1`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Source", "type": "string" }, "Statistic": { + "markdownDescription": "The statistic used for the subscription\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `p50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Statistic", "type": "string" } }, @@ -48086,18 +59297,26 @@ "additionalProperties": false, "properties": { "PartitionCount": { + "markdownDescription": "The number of partitions\\. Valid only when **Strategy** is set to `partition`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PartitionCount", "type": "number" }, "SpreadLevel": { + "markdownDescription": "Determines how placement groups spread instances\\. \n+ Host \u2013 You can use `host` only with Outpost placement groups\\.\n+ Rack \u2013 No usage restrictions\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `host | rack` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpreadLevel", "type": "string" }, "Strategy": { + "markdownDescription": "The placement strategy\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `cluster | partition | spread` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Strategy", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to apply to the new placement group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -48159,24 +59378,34 @@ "additionalProperties": false, "properties": { "AddressFamily": { + "markdownDescription": "The IP address type\\. \nValid Values: `IPv4` \\| `IPv6` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddressFamily", "type": "string" }, "Entries": { "items": { "$ref": "#/definitions/AWS::EC2::PrefixList.Entry" }, + "markdownDescription": "One or more entries for the prefix list\\. \n*Required*: No \n*Type*: List of [Entry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-prefixlist-entry.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Entries", "type": "array" }, "MaxEntries": { + "markdownDescription": "The maximum number of entries for the prefix list\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxEntries", "type": "number" }, "PrefixListName": { + "markdownDescription": "A name for the prefix list\\. \nConstraints: Up to 255 characters in length\\. The name cannot start with `com.amazonaws`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrefixListName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags for the prefix list\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -48212,9 +59441,13 @@ "additionalProperties": false, "properties": { "Cidr": { + "markdownDescription": "The CIDR block\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cidr", "type": "string" }, "Description": { + "markdownDescription": "A description for the entry\\. \nConstraints: Up to 255 characters in length\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" } }, @@ -48259,42 +59492,68 @@ "additionalProperties": false, "properties": { "CarrierGatewayId": { + "markdownDescription": "The ID of the carrier gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CarrierGatewayId", "type": "string" }, "DestinationCidrBlock": { + "markdownDescription": "The IPv4 CIDR block used for the destination match\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationCidrBlock", "type": "string" }, "DestinationIpv6CidrBlock": { + "markdownDescription": "The IPv6 CIDR block used for the destination match\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationIpv6CidrBlock", "type": "string" }, "EgressOnlyInternetGatewayId": { + "markdownDescription": "The ID of the egress\\-only internet gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EgressOnlyInternetGatewayId", "type": "string" }, "GatewayId": { + "markdownDescription": "The ID of an internet gateway or virtual private gateway attached to your VPC\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GatewayId", "type": "string" }, "InstanceId": { + "markdownDescription": "The ID of a NAT instance in your VPC\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceId", "type": "string" }, "LocalGatewayId": { + "markdownDescription": "The ID of the local gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocalGatewayId", "type": "string" }, "NatGatewayId": { + "markdownDescription": "The ID of a NAT gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NatGatewayId", "type": "string" }, "NetworkInterfaceId": { + "markdownDescription": "The ID of the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkInterfaceId", "type": "string" }, "RouteTableId": { + "markdownDescription": "The ID of the route table\\. The routing table must be associated with the same VPC that the virtual private gateway is attached to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RouteTableId", "type": "string" }, "TransitGatewayId": { + "markdownDescription": "The ID of a transit gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitGatewayId", "type": "string" }, "VpcEndpointId": { + "markdownDescription": "The ID of a VPC endpoint\\. Supported for Gateway Load Balancer endpoints only\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcEndpointId", "type": "string" }, "VpcPeeringConnectionId": { + "markdownDescription": "The ID of a VPC peering connection\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcPeeringConnectionId", "type": "string" } }, @@ -48363,9 +59622,13 @@ "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Any tags assigned to the route table\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VpcId": { + "markdownDescription": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -48431,30 +59694,42 @@ "additionalProperties": false, "properties": { "GroupDescription": { + "markdownDescription": "A description for the security group\\. This is informational only\\. \nConstraints: Up to 255 characters in length \nConstraints for EC2\\-Classic: ASCII characters \nConstraints for EC2\\-VPC: a\\-z, A\\-Z, 0\\-9, spaces, and \\.\\_\\-:/\\(\\)\\#,@\\[\\]\\+=&;\\{\\}\\!$\\* \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupDescription", "type": "string" }, "GroupName": { + "markdownDescription": "The name of the security group\\. \nConstraints: Up to 255 characters in length\\. Cannot start with `sg-`\\. \nConstraints for EC2\\-Classic: ASCII characters \nConstraints for EC2\\-VPC: a\\-z, A\\-Z, 0\\-9, spaces, and \\.\\_\\-:/\\(\\)\\#,@\\[\\]\\+=&;\\{\\}\\!$\\* \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupName", "type": "string" }, "SecurityGroupEgress": { "items": { "$ref": "#/definitions/AWS::EC2::SecurityGroup.Egress" }, + "markdownDescription": "\\[VPC only\\] The outbound rules associated with the security group\\. There is a short interruption during which you cannot connect to the security group\\. \n*Required*: No \n*Type*: List of [Egress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "SecurityGroupEgress", "type": "array" }, "SecurityGroupIngress": { "items": { "$ref": "#/definitions/AWS::EC2::SecurityGroup.Ingress" }, + "markdownDescription": "The inbound rules associated with the security group\\. There is a short interruption during which you cannot connect to the security group\\. \n*Required*: No \n*Type*: List of [Ingress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule-1.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "SecurityGroupIngress", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Any tags assigned to the security group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VpcId": { + "markdownDescription": "\\[VPC only\\] The ID of the VPC for the security group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -48488,27 +59763,43 @@ "additionalProperties": false, "properties": { "CidrIp": { + "markdownDescription": "The IPv4 address range, in CIDR format\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CidrIp", "type": "string" }, "CidrIpv6": { + "markdownDescription": "The IPv6 address range, in CIDR format\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CidrIpv6", "type": "string" }, "Description": { + "markdownDescription": "A description for the security group rule\\. \nConstraints: Up to 255 characters in length\\. Allowed characters are a\\-z, A\\-Z, 0\\-9, spaces, and \\.\\_\\-:/\\(\\)\\#,@\\[\\]\\+=;\\{\\}\\!$\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DestinationPrefixListId": { + "markdownDescription": "\\[EC2\\-VPC only\\] The prefix list IDs for the destination AWS service\\. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationPrefixListId", "type": "string" }, "DestinationSecurityGroupId": { + "markdownDescription": "The ID of the destination VPC security group\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationSecurityGroupId", "type": "string" }, "FromPort": { + "markdownDescription": "If the protocol is TCP or UDP, this is the start of the port range\\. If the protocol is ICMP or ICMPv6, this is the type number\\. A value of \\-1 indicates all ICMP/ICMPv6 types\\. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FromPort", "type": "number" }, "IpProtocol": { + "markdownDescription": "The IP protocol name \\(`tcp`, `udp`, `icmp`, `icmpv6`\\) or number \\(see [Protocol Numbers](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)\\)\\. \n\\[VPC only\\] Use `-1` to specify all protocols\\. When authorizing security group rules, specifying `-1` or a protocol number other than `tcp`, `udp`, `icmp`, or `icmpv6` allows traffic on all ports, regardless of any port range you specify\\. For `tcp`, `udp`, and `icmp`, you must specify a port range\\. For `icmpv6`, the port range is optional; if you omit the port range, traffic for all types and codes is allowed\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IpProtocol", "type": "string" }, "ToPort": { + "markdownDescription": "If the protocol is TCP or UDP, this is the end of the port range\\. If the protocol is ICMP or ICMPv6, this is the code\\. A value of \\-1 indicates all ICMP/ICMPv6 codes\\. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ToPort", "type": "number" } }, @@ -48521,33 +59812,53 @@ "additionalProperties": false, "properties": { "CidrIp": { + "markdownDescription": "The IPv4 address range, in CIDR format\\. \nYou must specify a source security group \\(`SourcePrefixListId` or `SourceSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CidrIp", "type": "string" }, "CidrIpv6": { + "markdownDescription": "The IPv6 address range, in CIDR format\\. \nYou must specify a source security group \\(`SourcePrefixListId` or `SourceSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CidrIpv6", "type": "string" }, "Description": { + "markdownDescription": "Updates the description of an ingress \\(inbound\\) security group rule\\. You can replace an existing description, or add a description to a rule that did not have one previously\\. \nConstraints: Up to 255 characters in length\\. Allowed characters are a\\-z, A\\-Z, 0\\-9, spaces, and \\.\\_\\-:/\\(\\)\\#,@\\[\\]\\+=;\\{\\}\\!$\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "FromPort": { + "markdownDescription": "If the protocol is TCP or UDP, this is the start of the port range\\. If the protocol is ICMP or ICMPv6, this is the type number\\. A value of \\-1 indicates all ICMP/ICMPv6 types\\. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FromPort", "type": "number" }, "IpProtocol": { + "markdownDescription": "The IP protocol name \\(`tcp`, `udp`, `icmp`, `icmpv6`\\) or number \\(see [Protocol Numbers](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)\\)\\. \n\\[VPC only\\] Use `-1` to specify all protocols\\. When authorizing security group rules, specifying `-1` or a protocol number other than `tcp`, `udp`, `icmp`, or `icmpv6` allows traffic on all ports, regardless of any port range you specify\\. For `tcp`, `udp`, and `icmp`, you must specify a port range\\. For `icmpv6`, the port range is optional; if you omit the port range, traffic for all types and codes is allowed\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IpProtocol", "type": "string" }, "SourcePrefixListId": { + "markdownDescription": "\\[EC2\\-VPC only\\] The ID of a prefix list\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourcePrefixListId", "type": "string" }, "SourceSecurityGroupId": { + "markdownDescription": "The ID of the security group\\. You must specify either the security group ID or the security group name in the request\\. For security groups in a nondefault VPC, you must specify the security group ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceSecurityGroupId", "type": "string" }, "SourceSecurityGroupName": { + "markdownDescription": "\\[EC2\\-Classic, default VPC\\] The name of the source security group\\. You can't specify this parameter in combination with an IP address range\\. Creates rules that grant full ICMP, UDP, and TCP access\\. \nYou must specify the `GroupName` property or the `GroupId` property\\. For security groups that are in a VPC, you must use the `GroupId` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceSecurityGroupName", "type": "string" }, "SourceSecurityGroupOwnerId": { + "markdownDescription": "\\[nondefault VPC\\] The AWS account ID for the source security group, if the source security group is in a different account\\. You can't specify this property with an IP address range\\. Creates rules that grant full ICMP, UDP, and TCP access\\. \nIf you specify `SourceSecurityGroupName` or `SourceSecurityGroupId` and that security group is owned by a different account than the account creating the stack, you must specify the `SourceSecurityGroupOwnerId`; otherwise, this property is optional\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceSecurityGroupOwnerId", "type": "string" }, "ToPort": { + "markdownDescription": "If the protocol is TCP or UDP, this is the end of the port range\\. If the protocol is ICMP or ICMPv6, this is the code\\. A value of \\-1 indicates all ICMP/ICMPv6 codes\\. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ToPort", "type": "number" } }, @@ -48592,30 +59903,48 @@ "additionalProperties": false, "properties": { "CidrIp": { + "markdownDescription": "The IPv4 address range, in CIDR format\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CidrIp", "type": "string" }, "CidrIpv6": { + "markdownDescription": "The IPv6 address range, in CIDR format\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CidrIpv6", "type": "string" }, "Description": { + "markdownDescription": "The description of an egress \\(outbound\\) security group rule\\. \nConstraints: Up to 255 characters in length\\. Allowed characters are a\\-z, A\\-Z, 0\\-9, spaces, and \\.\\_\\-:/\\(\\)\\#,@\\[\\]\\+=;\\{\\}\\!$\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DestinationPrefixListId": { + "markdownDescription": "\\[EC2\\-VPC only\\] The prefix list IDs for an AWS service\\. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationPrefixListId", "type": "string" }, "DestinationSecurityGroupId": { + "markdownDescription": "The ID of the security group\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationSecurityGroupId", "type": "string" }, "FromPort": { + "markdownDescription": "If the protocol is TCP or UDP, this is the start of the port range\\. If the protocol is ICMP or ICMPv6, this is the type number\\. A value of \\-1 indicates all ICMP/ICMPv6 types\\. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FromPort", "type": "number" }, "GroupId": { + "markdownDescription": "The ID of the security group\\. You must specify either the security group ID or the security group name in the request\\. For security groups in a nondefault VPC, you must specify the security group ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupId", "type": "string" }, "IpProtocol": { + "markdownDescription": "The IP protocol name \\(`tcp`, `udp`, `icmp`, `icmpv6`\\) or number \\(see [Protocol Numbers](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)\\)\\. \n\\[VPC only\\] Use `-1` to specify all protocols\\. When authorizing security group rules, specifying `-1` or a protocol number other than `tcp`, `udp`, `icmp`, or `icmpv6` allows traffic on all ports, regardless of any port range you specify\\. For `tcp`, `udp`, and `icmp`, you must specify a port range\\. For `icmpv6`, the port range is optional; if you omit the port range, traffic for all types and codes is allowed\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpProtocol", "type": "string" }, "ToPort": { + "markdownDescription": "If the protocol is TCP or UDP, this is the end of the port range\\. If the protocol is ICMP or ICMPv6, this is the code\\. A value of \\-1 indicates all ICMP/ICMPv6 codes\\. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ToPort", "type": "number" } }, @@ -48682,39 +60011,63 @@ "additionalProperties": false, "properties": { "CidrIp": { + "markdownDescription": "The IPv4 address range, in CIDR format\\. \nYou must specify a source security group \\(`SourcePrefixListId` or `SourceSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CidrIp", "type": "string" }, "CidrIpv6": { + "markdownDescription": "The IPv6 address range, in CIDR format\\. \nYou must specify a source security group \\(`SourcePrefixListId` or `SourceSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CidrIpv6", "type": "string" }, "Description": { + "markdownDescription": "Updates the description of an ingress \\(inbound\\) security group rule\\. You can replace an existing description, or add a description to a rule that did not have one previously\\. \nConstraints: Up to 255 characters in length\\. Allowed characters are a\\-z, A\\-Z, 0\\-9, spaces, and \\.\\_\\-:/\\(\\)\\#,@\\[\\]\\+=;\\{\\}\\!$\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "FromPort": { + "markdownDescription": "The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number\\. A value of `-1` indicates all ICMP/ICMPv6 types\\. If you specify all ICMP/ICMPv6 types, you must specify all codes\\. \nUse this for ICMP and any protocol that uses ports\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FromPort", "type": "number" }, "GroupId": { + "markdownDescription": "The ID of the security group\\. You must specify either the security group ID or the security group name in the request\\. For security groups in a nondefault VPC, you must specify the security group ID\\. \nYou must specify the `GroupName` property or the `GroupId` property\\. For security groups that are in a VPC, you must use the `GroupId` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupId", "type": "string" }, "GroupName": { + "markdownDescription": "The name of the security group\\. \nConstraints: Up to 255 characters in length\\. Cannot start with `sg-`\\. \nConstraints for EC2\\-Classic: ASCII characters \nConstraints for EC2\\-VPC: a\\-z, A\\-Z, 0\\-9, spaces, and \\.\\_\\-:/\\(\\)\\#,@\\[\\]\\+=&;\\{\\}\\!$\\* \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupName", "type": "string" }, "IpProtocol": { + "markdownDescription": "The IP protocol name \\(`tcp`, `udp`, `icmp`, `icmpv6`\\) or number \\(see [Protocol Numbers](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)\\)\\. \n\\[VPC only\\] Use `-1` to specify all protocols\\. When authorizing security group rules, specifying `-1` or a protocol number other than `tcp`, `udp`, `icmp`, or `icmpv6` allows traffic on all ports, regardless of any port range you specify\\. For `tcp`, `udp`, and `icmp`, you must specify a port range\\. For `icmpv6`, the port range is optional; if you omit the port range, traffic for all types and codes is allowed\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpProtocol", "type": "string" }, "SourcePrefixListId": { + "markdownDescription": "\\[EC2\\-VPC only\\] The ID of a prefix list\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourcePrefixListId", "type": "string" }, "SourceSecurityGroupId": { + "markdownDescription": "The ID of the security group\\. You must specify either the security group ID or the security group name\\. For security groups in a nondefault VPC, you must specify the security group ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceSecurityGroupId", "type": "string" }, "SourceSecurityGroupName": { + "markdownDescription": "\\[EC2\\-Classic, default VPC\\] The name of the source security group\\. You can't specify this parameter in combination with an IP address range\\. Creates rules that grant full ICMP, UDP, and TCP access\\. \nYou must specify the `GroupName` property or the `GroupId` property\\. For security groups that are in a VPC, you must use the `GroupId` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceSecurityGroupName", "type": "string" }, "SourceSecurityGroupOwnerId": { + "markdownDescription": "\\[nondefault VPC\\] The AWS account ID for the source security group, if the source security group is in a different account\\. You can't specify this property with an IP address range\\. Creates rules that grant full ICMP, UDP, and TCP access\\. \nIf you specify `SourceSecurityGroupName` or `SourceSecurityGroupId` and that security group is owned by a different account than the account creating the stack, you must specify the `SourceSecurityGroupOwnerId`; otherwise, this property is optional\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceSecurityGroupOwnerId", "type": "string" }, "ToPort": { + "markdownDescription": "The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code\\. A value of `-1` indicates all ICMP/ICMPv6 codes for the specified ICMP type\\. If you specify all ICMP/ICMPv6 types, you must specify all codes\\. \nUse this for ICMP and any protocol that uses ports\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ToPort", "type": "number" } }, @@ -48780,7 +60133,9 @@ "additionalProperties": false, "properties": { "SpotFleetRequestConfigData": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetRequestConfigData" + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetRequestConfigData", + "markdownDescription": "Describes the configuration of a Spot Fleet request\\. \n*Required*: Yes \n*Type*: [SpotFleetRequestConfigData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpotFleetRequestConfigData" } }, "required": [ @@ -48813,9 +60168,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum number of accelerators\\. To specify no maximum limit, omit this parameter\\. To exclude accelerator\\-enabled instance types, set `Max` to `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum number of accelerators\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", "type": "number" } }, @@ -48825,9 +60184,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum amount of accelerator memory, in MiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum amount of accelerator memory, in MiB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", "type": "number" } }, @@ -48837,9 +60200,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum baseline bandwidth, in Mbps\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum baseline bandwidth, in Mbps\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", "type": "number" } }, @@ -48849,15 +60216,23 @@ "additionalProperties": false, "properties": { "DeviceName": { + "markdownDescription": "The device name \\(for example, `/dev/sdh` or `xvdh`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceName", "type": "string" }, "Ebs": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.EbsBlockDevice" + "$ref": "#/definitions/AWS::EC2::SpotFleet.EbsBlockDevice", + "markdownDescription": "Parameters used to automatically set up EBS volumes when the instance is launched\\. \n*Required*: Conditional \n*Type*: [EbsBlockDevice](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-ebsblockdevice.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ebs" }, "NoDevice": { + "markdownDescription": "To omit the device from the block device mapping, specify an empty string\\. When this property is specified, the device is removed from the block device mapping regardless of the assigned value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NoDevice", "type": "string" }, "VirtualName": { + "markdownDescription": "The virtual device name \\(`ephemeral`N\\)\\. Instance store volumes are numbered starting from 0\\. An instance type with 2 available instance store volumes can specify mappings for `ephemeral0` and `ephemeral1`\\. The number of available instance store volumes depends on the instance type\\. After you connect to the instance, you must mount the volume\\. \nNVMe instance store volumes are automatically enumerated and assigned a device name\\. Including them in your block device mapping has no effect\\. \nConstraints: For M3 instances, you must specify instance store volumes in the block device mapping for the instance\\. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VirtualName", "type": "string" } }, @@ -48870,6 +60245,8 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the load balancer\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" } }, @@ -48885,6 +60262,8 @@ "items": { "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancer" }, + "markdownDescription": "One or more Classic Load Balancers\\. \n*Required*: Yes \n*Type*: List of [ClassicLoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-classicloadbalancer.html) \n*Maximum*: `5` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClassicLoadBalancers", "type": "array" } }, @@ -48897,21 +60276,33 @@ "additionalProperties": false, "properties": { "DeleteOnTermination": { + "markdownDescription": "Indicates whether the EBS volume is deleted on instance termination\\. For more information, see [Preserving Amazon EBS volumes on instance termination](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#preserving-volumes-on-termination) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeleteOnTermination", "type": "boolean" }, "Encrypted": { + "markdownDescription": "Indicates whether the encryption state of an EBS volume is changed while being restored from a backing snapshot\\. The effect of setting the encryption state to `true` depends on the volume origin \\(new or from a snapshot\\), starting encryption state, ownership, and whether encryption by default is enabled\\. For more information, see [Amazon EBS Encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-parameters) in the *Amazon EC2 User Guide*\\. \nIn no case can you remove encryption from an encrypted volume\\. \nEncrypted volumes can only be attached to instances that support Amazon EBS encryption\\. For more information, see [Supported Instance Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances)\\. \nThis parameter is not returned by [DescribeImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImageAttribute.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Encrypted", "type": "boolean" }, "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\)\\. For `gp3`, `io1`, and `io2` volumes, this represents the number of IOPS that are provisioned for the volume\\. For `gp2` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting\\. \nThe following are the supported values for each volume type: \n+ `gp3`: 3,000\\-16,000 IOPS\n+ `io1`: 100\\-64,000 IOPS\n+ `io2`: 100\\-64,000 IOPS\nFor `io1` and `io2` volumes, we guarantee 64,000 IOPS only for [Instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)\\. Other instance families guarantee performance up to 32,000 IOPS\\. \nThis parameter is required for `io1` and `io2` volumes\\. The default for `gp3` volumes is 3,000 IOPS\\. This parameter is not supported for `gp2`, `st1`, `sc1`, or `standard` volumes\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Iops", "type": "number" }, "SnapshotId": { + "markdownDescription": "The ID of the snapshot\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotId", "type": "string" }, "VolumeSize": { + "markdownDescription": "The size of the volume, in GiBs\\. You must specify either a snapshot ID or a volume size\\. If you specify a snapshot, the default is the snapshot size\\. You can specify a volume size that is equal to or larger than the snapshot size\\. \nThe following are the supported volumes sizes for each volume type: \n+ `gp2` and `gp3`:1\\-16,384\n+ `io1` and `io2`: 4\\-16,384\n+ `st1` and `sc1`: 125\\-16,384\n+ `standard`: 1\\-1,024\n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeSize", "type": "number" }, "VolumeType": { + "markdownDescription": "The volume type\\. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon EC2 User Guide*\\. If the volume type is `io1` or `io2`, you must specify the IOPS that the volume supports\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `gp2 | gp3 | io1 | io2 | sc1 | st1 | standard` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeType", "type": "string" } }, @@ -48921,12 +60312,18 @@ "additionalProperties": false, "properties": { "LaunchTemplateId": { + "markdownDescription": "The ID of the launch template\\. \nYou must specify the `LaunchTemplateId` or the `LaunchTemplateName`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchTemplateId", "type": "string" }, "LaunchTemplateName": { + "markdownDescription": "The name of the launch template\\. \nYou must specify the `LaunchTemplateName` or the `LaunchTemplateId`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9\\(\\)\\.\\-/_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchTemplateName", "type": "string" }, "Version": { + "markdownDescription": "The version number of the launch template\\. \nSpecifying `$Latest` or `$Default` for the template version number is not supported\\. However, you can specify `LatestVersionNumber` or `DefaultVersionNumber` using the `Fn::GetAtt` intrinsic function\\. For more information, see [Fn::GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#aws-resource-ec2-launchtemplate-return-values-fn--getatt)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Version", "type": "string" } }, @@ -48939,6 +60336,8 @@ "additionalProperties": false, "properties": { "GroupId": { + "markdownDescription": "The ID of the security group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupId", "type": "string" } }, @@ -48951,6 +60350,8 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the instance profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Arn", "type": "string" } }, @@ -48960,6 +60361,8 @@ "additionalProperties": false, "properties": { "Ipv6Address": { + "markdownDescription": "The IPv6 address\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv6Address", "type": "string" } }, @@ -48972,45 +60375,67 @@ "additionalProperties": false, "properties": { "AssociatePublicIpAddress": { + "markdownDescription": "Indicates whether to assign a public IPv4 address to an instance you launch in a VPC\\. The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one\\. You cannot specify more than one network interface in the request\\. If launching into a default subnet, the default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AssociatePublicIpAddress", "type": "boolean" }, "DeleteOnTermination": { + "markdownDescription": "Indicates whether the network interface is deleted when the instance is terminated\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeleteOnTermination", "type": "boolean" }, "Description": { + "markdownDescription": "The description of the network interface\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "DeviceIndex": { + "markdownDescription": "The position of the network interface in the attachment order\\. A primary network interface has a device index of 0\\. \nIf you specify a network interface when launching an instance, you must specify the device index\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceIndex", "type": "number" }, "Groups": { "items": { "type": "string" }, + "markdownDescription": "The IDs of the security groups for the network interface\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Groups", "type": "array" }, "Ipv6AddressCount": { + "markdownDescription": "A number of IPv6 addresses to assign to the network interface\\. Amazon EC2 chooses the IPv6 addresses from the range of the subnet\\. You cannot specify this option and the option to assign specific IPv6 addresses in the same request\\. You can specify this option if you've specified a minimum number of instances to launch\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv6AddressCount", "type": "number" }, "Ipv6Addresses": { "items": { "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceIpv6Address" }, + "markdownDescription": "The IPv6 addresses to assign to the network interface\\. You cannot specify this option and the option to assign a number of IPv6 addresses in the same request\\. You cannot specify this option if you've specified a minimum number of instances to launch\\. \n*Required*: No \n*Type*: List of [InstanceIpv6Address](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instanceipv6address.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv6Addresses", "type": "array" }, "NetworkInterfaceId": { + "markdownDescription": "The ID of the network interface\\. \nIf you are creating a Spot Fleet, omit this parameter because you can\u2019t specify a network interface ID in a launch specification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInterfaceId", "type": "string" }, "PrivateIpAddresses": { "items": { "$ref": "#/definitions/AWS::EC2::SpotFleet.PrivateIpAddressSpecification" }, + "markdownDescription": "The private IPv4 addresses to assign to the network interface\\. Only one private IPv4 address can be designated as primary\\. You cannot specify this option if you're launching more than one instance in a [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) request\\. \n*Required*: No \n*Type*: List of [PrivateIpAddressSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-privateipaddressspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrivateIpAddresses", "type": "array" }, "SecondaryPrivateIpAddressCount": { + "markdownDescription": "The number of secondary private IPv4 addresses\\. You can't specify this option and specify more than one private IP address using the private IP addresses option\\. You cannot specify this option if you're launching more than one instance in a [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) request\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecondaryPrivateIpAddressCount", "type": "number" }, "SubnetId": { + "markdownDescription": "The ID of the subnet associated with the network interface\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", "type": "string" } }, @@ -49020,97 +60445,143 @@ "additionalProperties": false, "properties": { "AcceleratorCount": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.AcceleratorCountRequest" + "$ref": "#/definitions/AWS::EC2::SpotFleet.AcceleratorCountRequest", + "markdownDescription": "The minimum and maximum number of accelerators \\(GPUs, FPGAs, or AWS Inferentia chips\\) on an instance\\. \nTo exclude accelerator\\-enabled instance types, set `Max` to `0`\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [AcceleratorCountRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-acceleratorcountrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorCount" }, "AcceleratorManufacturers": { "items": { "type": "string" }, + "markdownDescription": "Indicates whether instance types must have accelerators by specific manufacturers\\. \n+ For instance types with NVIDIA devices, specify `nvidia`\\.\n+ For instance types with AMD devices, specify `amd`\\.\n+ For instance types with AWS devices, specify `amazon-web-services`\\.\n+ For instance types with Xilinx devices, specify `xilinx`\\.\nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorManufacturers", "type": "array" }, "AcceleratorNames": { "items": { "type": "string" }, + "markdownDescription": "The accelerators that must be on the instance type\\. \n+ For instance types with NVIDIA A100 GPUs, specify `a100`\\.\n+ For instance types with NVIDIA V100 GPUs, specify `v100`\\.\n+ For instance types with NVIDIA K80 GPUs, specify `k80`\\.\n+ For instance types with NVIDIA T4 GPUs, specify `t4`\\.\n+ For instance types with NVIDIA M60 GPUs, specify `m60`\\.\n+ For instance types with AMD Radeon Pro V520 GPUs, specify `radeon-pro-v520`\\.\n+ For instance types with Xilinx VU9P FPGAs, specify ` vu9p`\\.\n+ For instance types with AWS Inferentia chips, specify `inferentia`\\.\n+ For instance types with NVIDIA GRID K520 GPUs, specify `k520`\\.\nDefault: Any accelerator \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorNames", "type": "array" }, "AcceleratorTotalMemoryMiB": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.AcceleratorTotalMemoryMiBRequest" + "$ref": "#/definitions/AWS::EC2::SpotFleet.AcceleratorTotalMemoryMiBRequest", + "markdownDescription": "The minimum and maximum amount of total accelerator memory, in MiB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [AcceleratorTotalMemoryMiBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-acceleratortotalmemorymibrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorTotalMemoryMiB" }, "AcceleratorTypes": { "items": { "type": "string" }, + "markdownDescription": "The accelerator types that must be on the instance type\\. \n+ To include instance types with GPU hardware, specify `gpu`\\.\n+ To include instance types with FPGA hardware, specify `fpga`\\.\n+ To include instance types with inference hardware, specify `inference`\\.\nDefault: Any accelerator type \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorTypes", "type": "array" }, "AllowedInstanceTypes": { "items": { "type": "string" }, + "markdownDescription": "The instance types to apply your specified attributes against\\. All other instance types are ignored, even if they match your specified attributes\\. \nYou can use strings with one or more wild cards, represented by an asterisk \\(`*`\\), to allow an instance type, size, or generation\\. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`\\. \nFor example, if you specify `c5*`,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types\\. If you specify `m5a.*`, Amazon EC2 will allow all the M5a instance types, but not the M5n instance types\\. \nIf you specify `AllowedInstanceTypes`, you can't specify `ExcludedInstanceTypes`\\.\nDefault: All instance types \n*Required*: No \n*Type*: List of String \n*Maximum*: `400` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AllowedInstanceTypes", "type": "array" }, "BareMetal": { + "markdownDescription": "Indicates whether bare metal instance types must be included, excluded, or required\\. \n+ To include bare metal instance types, specify `included`\\.\n+ To require only bare metal instance types, specify `required`\\.\n+ To exclude bare metal instance types, specify `excluded`\\.\nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BareMetal", "type": "string" }, "BaselineEbsBandwidthMbps": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.BaselineEbsBandwidthMbpsRequest" + "$ref": "#/definitions/AWS::EC2::SpotFleet.BaselineEbsBandwidthMbpsRequest", + "markdownDescription": "The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps\\. For more information, see [Amazon EBS\u2013optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide*\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [BaselineEbsBandwidthMbpsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-baselineebsbandwidthmbpsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BaselineEbsBandwidthMbps" }, "BurstablePerformance": { + "markdownDescription": "Indicates whether burstable performance T instance types are included, excluded, or required\\. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html)\\. \n+ To include burstable performance instance types, specify `included`\\.\n+ To require only burstable performance instance types, specify `required`\\.\n+ To exclude burstable performance instance types, specify `excluded`\\.\nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BurstablePerformance", "type": "string" }, "CpuManufacturers": { "items": { "type": "string" }, + "markdownDescription": "The CPU manufacturers to include\\. \n+ For instance types with Intel CPUs, specify `intel`\\.\n+ For instance types with AMD CPUs, specify `amd`\\.\n+ For instance types with AWS CPUs, specify `amazon-web-services`\\.\nDon't confuse the CPU manufacturer with the CPU architecture\\. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image \\(AMI\\) that you specify in your launch template\\.\nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CpuManufacturers", "type": "array" }, "ExcludedInstanceTypes": { "items": { "type": "string" }, + "markdownDescription": "The instance types to exclude\\. \nYou can use strings with one or more wild cards, represented by an asterisk \\(`*`\\), to exclude an instance family, type, size, or generation\\. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`\\. \nFor example, if you specify `c5*`,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types\\. If you specify `m5a.*`, Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types\\. \nIf you specify `ExcludedInstanceTypes`, you can't specify `AllowedInstanceTypes`\\.\nDefault: No excluded instance types \n*Required*: No \n*Type*: List of String \n*Maximum*: `400` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExcludedInstanceTypes", "type": "array" }, "InstanceGenerations": { "items": { "type": "string" }, + "markdownDescription": "Indicates whether current or previous generation instance types are included\\. The current generation instance types are recommended for use\\. Current generation instance types are typically the latest two to three generations in each instance family\\. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*\\. \nFor current generation instance types, specify `current`\\. \nFor previous generation instance types, specify `previous`\\. \nDefault: Current and previous generation instance types \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceGenerations", "type": "array" }, "LocalStorage": { + "markdownDescription": "Indicates whether instance types with instance store volumes are included, excluded, or required\\. For more information, [Amazon EC2 instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in the *Amazon EC2 User Guide*\\. \n+ To include instance types with instance store volumes, specify `included`\\.\n+ To require only instance types with instance store volumes, specify `required`\\.\n+ To exclude instance types with instance store volumes, specify `excluded`\\.\nDefault: `included` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalStorage", "type": "string" }, "LocalStorageTypes": { "items": { "type": "string" }, + "markdownDescription": "The type of local storage that is required\\. \n+ For instance types with hard disk drive \\(HDD\\) storage, specify `hdd`\\.\n+ For instance types with solid state drive \\(SSD\\) storage, specify `ssd`\\.\nDefault: `hdd` and `ssd` \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalStorageTypes", "type": "array" }, "MemoryGiBPerVCpu": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.MemoryGiBPerVCpuRequest" + "$ref": "#/definitions/AWS::EC2::SpotFleet.MemoryGiBPerVCpuRequest", + "markdownDescription": "The minimum and maximum amount of memory per vCPU, in GiB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [MemoryGiBPerVCpuRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-memorygibpervcpurequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MemoryGiBPerVCpu" }, "MemoryMiB": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.MemoryMiBRequest" + "$ref": "#/definitions/AWS::EC2::SpotFleet.MemoryMiBRequest", + "markdownDescription": "The minimum and maximum amount of memory, in MiB\\. \n*Required*: No \n*Type*: [MemoryMiBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-memorymibrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MemoryMiB" }, "NetworkBandwidthGbps": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.NetworkBandwidthGbpsRequest" + "$ref": "#/definitions/AWS::EC2::SpotFleet.NetworkBandwidthGbpsRequest", + "markdownDescription": "The minimum and maximum amount of network bandwidth, in gigabits per second \\(Gbps\\)\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [NetworkBandwidthGbpsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-networkbandwidthgbpsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkBandwidthGbps" }, "NetworkInterfaceCount": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.NetworkInterfaceCountRequest" + "$ref": "#/definitions/AWS::EC2::SpotFleet.NetworkInterfaceCountRequest", + "markdownDescription": "The minimum and maximum number of network interfaces\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [NetworkInterfaceCountRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-networkinterfacecountrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInterfaceCount" }, "OnDemandMaxPricePercentageOverLowestPrice": { + "markdownDescription": "The price protection threshold for On\\-Demand Instances\\. This is the maximum you\u2019ll pay for an On\\-Demand Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes\\. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold\\. \nThe parameter accepts an integer, which Amazon EC2 interprets as a percentage\\. \nTo turn off price protection, specify a high value, such as `999999`\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html)\\. \nIf you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per\\-vCPU or per\\-memory price instead of the per\\-instance price\\.\nDefault: `20` \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OnDemandMaxPricePercentageOverLowestPrice", "type": "number" }, "RequireHibernateSupport": { + "markdownDescription": "Indicates whether instance types must support hibernation for On\\-Demand Instances\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html)\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RequireHibernateSupport", "type": "boolean" }, "SpotMaxPricePercentageOverLowestPrice": { + "markdownDescription": "The price protection threshold for Spot Instance\\. This is the maximum you\u2019ll pay for an Spot Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes\\. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold\\. \nThe parameter accepts an integer, which Amazon EC2 interprets as a percentage\\. \nTo turn off price protection, specify a high value, such as `999999`\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html)\\. \nIf you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per\\-vCPU or per\\-memory price instead of the per\\-instance price\\.\nDefault: `100` \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpotMaxPricePercentageOverLowestPrice", "type": "number" }, "TotalLocalStorageGB": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.TotalLocalStorageGBRequest" + "$ref": "#/definitions/AWS::EC2::SpotFleet.TotalLocalStorageGBRequest", + "markdownDescription": "The minimum and maximum amount of total local storage, in GB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [TotalLocalStorageGBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-totallocalstoragegbrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TotalLocalStorageGB" }, "VCpuCount": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.VCpuCountRangeRequest" + "$ref": "#/definitions/AWS::EC2::SpotFleet.VCpuCountRangeRequest", + "markdownDescription": "The minimum and maximum number of vCPUs\\. \n*Required*: No \n*Type*: [VCpuCountRangeRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-vcpucountrangerequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VCpuCount" } }, "type": "object" @@ -49119,12 +60590,16 @@ "additionalProperties": false, "properties": { "LaunchTemplateSpecification": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification" + "$ref": "#/definitions/AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification", + "markdownDescription": "The launch template\\. \n*Required*: No \n*Type*: [FleetLaunchTemplateSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-fleetlaunchtemplatespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchTemplateSpecification" }, "Overrides": { "items": { "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateOverrides" }, + "markdownDescription": "Any parameters that you specify override the same parameters in the launch template\\. \n*Required*: No \n*Type*: List of [LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateoverrides.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Overrides", "type": "array" } }, @@ -49134,24 +60609,38 @@ "additionalProperties": false, "properties": { "AvailabilityZone": { + "markdownDescription": "The Availability Zone in which to launch the instances\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", "type": "string" }, "InstanceRequirements": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceRequirementsRequest" + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceRequirementsRequest", + "markdownDescription": "The instance requirements\\. When you specify instance requirements, Amazon EC2 will identify instance types with the provided requirements, and then use your On\\-Demand and Spot allocation strategies to launch instances from these instance types, in the same way as when you specify a list of instance types\\. \nIf you specify `InstanceRequirements`, you can't specify `InstanceType`\\.\n*Required*: No \n*Type*: [InstanceRequirementsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceRequirements" }, "InstanceType": { + "markdownDescription": "The instance type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | mac1.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6ad.12xlarge | r6ad.16xlarge | r6ad.24xlarge | r6ad.2xlarge | r6ad.32xlarge | r6ad.48xlarge | r6ad.4xlarge | r6ad.8xlarge | r6ad.large | r6ad.metal | r6ad.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", "type": "string" }, "Priority": { + "markdownDescription": "The priority for the launch template override\\. The highest priority is launched first\\. \nIf `OnDemandAllocationStrategy` is set to `prioritized`, Spot Fleet uses priority to determine which launch template override to use first in fulfilling On\\-Demand capacity\\. \nIf the Spot `AllocationStrategy` is set to `capacityOptimizedPrioritized`, Spot Fleet uses priority on a best\\-effort basis to determine which launch template override to use in fulfilling Spot capacity, but optimizes for capacity first\\. \nValid values are whole numbers starting at `0`\\. The lower the number, the higher the priority\\. If no number is set, the launch template override has the lowest priority\\. You can set the same priority for different launch template overrides\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Priority", "type": "number" }, "SpotPrice": { + "markdownDescription": "The maximum price per unit hour that you are willing to pay for a Spot Instance\\. We do not recommend using this parameter because it can lead to increased interruptions\\. If you do not specify this parameter, you will pay the current Spot price\\. \nIf you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpotPrice", "type": "string" }, "SubnetId": { + "markdownDescription": "The ID of the subnet in which to launch the instances\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", "type": "string" }, "WeightedCapacity": { + "markdownDescription": "The number of units provided by the specified instance type\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WeightedCapacity", "type": "number" } }, @@ -49161,10 +60650,14 @@ "additionalProperties": false, "properties": { "ClassicLoadBalancersConfig": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancersConfig" + "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancersConfig", + "markdownDescription": "The Classic Load Balancers\\. \n*Required*: No \n*Type*: [ClassicLoadBalancersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-classicloadbalancersconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClassicLoadBalancersConfig" }, "TargetGroupsConfig": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroupsConfig" + "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroupsConfig", + "markdownDescription": "The target groups\\. \n*Required*: No \n*Type*: [TargetGroupsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-targetgroupsconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetGroupsConfig" } }, "type": "object" @@ -49173,9 +60666,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum amount of memory per vCPU, in GiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum amount of memory per vCPU, in GiB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", "type": "number" } }, @@ -49185,9 +60682,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum amount of memory, in MiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum amount of memory, in MiB\\. To specify no minimum limit, specify `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", "type": "number" } }, @@ -49197,9 +60698,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum amount of network bandwidth, in Gbps\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum amount of network bandwidth, in Gbps\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", "type": "number" } }, @@ -49209,9 +60714,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum number of network interfaces\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum number of network interfaces\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", "type": "number" } }, @@ -49221,9 +60730,13 @@ "additionalProperties": false, "properties": { "Primary": { + "markdownDescription": "Indicates whether the private IPv4 address is the primary private IPv4 address\\. Only one IPv4 address can be designated as primary\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Primary", "type": "boolean" }, "PrivateIpAddress": { + "markdownDescription": "The private IPv4 address\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrivateIpAddress", "type": "string" } }, @@ -49236,9 +60749,13 @@ "additionalProperties": false, "properties": { "ReplacementStrategy": { + "markdownDescription": "The replacement strategy to use\\. Only available for fleets of type `maintain`\\. \n `launch` \\- Spot Fleet launches a new replacement Spot Instance when a rebalance notification is emitted for an existing Spot Instance in the fleet\\. Spot Fleet does not terminate the instances that receive a rebalance notification\\. You can terminate the old instances, or you can leave them running\\. You are charged for all instances while they are running\\. \n `launch-before-terminate` \\- Spot Fleet launches a new replacement Spot Instance when a rebalance notification is emitted for an existing Spot Instance in the fleet, and then, after a delay that you specify \\(in `TerminationDelay`\\), terminates the instances that received a rebalance notification\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `launch | launch-before-terminate` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplacementStrategy", "type": "string" }, "TerminationDelay": { + "markdownDescription": "The amount of time \\(in seconds\\) that Amazon EC2 waits before terminating the old Spot Instance after launching a new replacement Spot Instance\\. \nRequired when `ReplacementStrategy` is set to `launch-before-terminate`\\. \nNot valid when `ReplacementStrategy` is set to `launch`\\. \nValid values: Minimum value of `120` seconds\\. Maximum value of `7200` seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TerminationDelay", "type": "number" } }, @@ -49251,66 +60768,102 @@ "items": { "$ref": "#/definitions/AWS::EC2::SpotFleet.BlockDeviceMapping" }, + "markdownDescription": "One or more block devices that are mapped to the Spot Instances\\. You can't specify both a snapshot ID and an encryption value\\. This is because only blank volumes can be encrypted on creation\\. If a snapshot is the basis for a volume, it is not blank and its encryption status is used for the volume encryption status\\. \n*Required*: No \n*Type*: List of [BlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-blockdevicemapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BlockDeviceMappings", "type": "array" }, "EbsOptimized": { + "markdownDescription": "Indicates whether the instances are optimized for EBS I/O\\. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance\\. This optimization isn't available with all instance types\\. Additional usage charges apply when using an EBS Optimized instance\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsOptimized", "type": "boolean" }, "IamInstanceProfile": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.IamInstanceProfileSpecification" + "$ref": "#/definitions/AWS::EC2::SpotFleet.IamInstanceProfileSpecification", + "markdownDescription": "The IAM instance profile\\. \n*Required*: No \n*Type*: [IamInstanceProfileSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-iaminstanceprofilespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IamInstanceProfile" }, "ImageId": { + "markdownDescription": "The ID of the AMI\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageId", "type": "string" }, "InstanceRequirements": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceRequirementsRequest" + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceRequirementsRequest", + "markdownDescription": "The attributes for the instance types\\. When you specify instance attributes, Amazon EC2 will identify instance types with those attributes\\. \nIf you specify `InstanceRequirements`, you can't specify `InstanceType`\\.\n*Required*: No \n*Type*: [InstanceRequirementsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceRequirements" }, "InstanceType": { + "markdownDescription": "The instance type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | mac1.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6ad.12xlarge | r6ad.16xlarge | r6ad.24xlarge | r6ad.2xlarge | r6ad.32xlarge | r6ad.48xlarge | r6ad.4xlarge | r6ad.8xlarge | r6ad.large | r6ad.metal | r6ad.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", "type": "string" }, "KernelId": { + "markdownDescription": "The ID of the kernel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KernelId", "type": "string" }, "KeyName": { + "markdownDescription": "The name of the key pair\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyName", "type": "string" }, "Monitoring": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetMonitoring" + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetMonitoring", + "markdownDescription": "Enable or disable monitoring for the instances\\. \n*Required*: No \n*Type*: [SpotFleetMonitoring](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetmonitoring.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Monitoring" }, "NetworkInterfaces": { "items": { "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification" }, + "markdownDescription": "One or more network interfaces\\. If you specify a network interface, you must specify subnet IDs and security group IDs using the network interface\\. \n `SpotFleetLaunchSpecification` currently does not support Elastic Fabric Adapter \\(EFA\\)\\. To specify an EFA, you must use [LaunchTemplateConfig](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_LaunchTemplateConfig.html)\\.\n*Required*: No \n*Type*: List of [InstanceNetworkInterfaceSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInterfaces", "type": "array" }, "Placement": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotPlacement" + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotPlacement", + "markdownDescription": "The placement information\\. \n*Required*: No \n*Type*: [SpotPlacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotplacement.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Placement" }, "RamdiskId": { + "markdownDescription": "The ID of the RAM disk\\. Some kernels require additional drivers at launch\\. Check the kernel requirements for information about whether you need to specify a RAM disk\\. To find kernel requirements, refer to the AWS Resource Center and search for the kernel ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RamdiskId", "type": "string" }, "SecurityGroups": { "items": { "$ref": "#/definitions/AWS::EC2::SpotFleet.GroupIdentifier" }, + "markdownDescription": "One or more security groups\\. When requesting instances in a VPC, you must specify the IDs of the security groups\\. When requesting instances in EC2\\-Classic, you can specify the names or the IDs of the security groups\\. \n*Required*: No \n*Type*: List of [GroupIdentifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-groupidentifier.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroups", "type": "array" }, "SpotPrice": { + "markdownDescription": "The maximum price per unit hour that you are willing to pay for a Spot Instance\\. We do not recommend using this parameter because it can lead to increased interruptions\\. If you do not specify this parameter, you will pay the current Spot price\\. \nIf you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpotPrice", "type": "string" }, "SubnetId": { + "markdownDescription": "The IDs of the subnets in which to launch the instances\\. To specify multiple subnets, separate them using commas; for example, \"subnet\\-1234abcdeexample1, subnet\\-0987cdef6example2\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", "type": "string" }, "TagSpecifications": { "items": { "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetTagSpecification" }, + "markdownDescription": "The tags to apply during creation\\. \n*Required*: No \n*Type*: List of [SpotFleetTagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleettagspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TagSpecifications", "type": "array" }, "UserData": { + "markdownDescription": "The Base64\\-encoded user data that instances use when starting up\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserData", "type": "string" }, "WeightedCapacity": { + "markdownDescription": "The number of units provided by the specified instance type\\. These are the same units that you chose to set the target capacity in terms of instances, or a performance characteristic such as vCPUs, memory, or I/O\\. \nIf the target capacity divided by this value is not a whole number, Amazon EC2 rounds the number of instances to the next whole number\\. If this value is not specified, the default is 1\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WeightedCapacity", "type": "number" } }, @@ -49323,6 +60876,8 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Enables monitoring for the instance\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Enabled", "type": "boolean" } }, @@ -49332,81 +60887,127 @@ "additionalProperties": false, "properties": { "AllocationStrategy": { + "markdownDescription": "The strategy that determines how to allocate the target Spot Instance capacity across the Spot Instance pools specified by the Spot Fleet launch configuration\\. For more information, see [Allocation strategies for Spot Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-allocation-strategy.html) in the *Amazon EC2 User Guide*\\. \npriceCapacityOptimized \\(recommended\\) \nSpot Fleet identifies the pools with the highest capacity availability for the number of instances that are launching\\. This means that we will request Spot Instances from the pools that we believe have the lowest chance of interruption in the near term\\. Spot Fleet then requests Spot Instances from the lowest priced of these pools\\. \ncapacityOptimized \nSpot Fleet identifies the pools with the highest capacity availability for the number of instances that are launching\\. This means that we will request Spot Instances from the pools that we believe have the lowest chance of interruption in the near term\\. To give certain instance types a higher chance of launching first, use `capacityOptimizedPrioritized`\\. Set a priority for each instance type by using the `Priority` parameter for `LaunchTemplateOverrides`\\. You can assign the same priority to different `LaunchTemplateOverrides`\\. EC2 implements the priorities on a best\\-effort basis, but optimizes for capacity first\\. `capacityOptimizedPrioritized` is supported only if your Spot Fleet uses a launch template\\. Note that if the `OnDemandAllocationStrategy` is set to `prioritized`, the same priority is applied when fulfilling On\\-Demand capacity\\. \ndiversified \nSpot Fleet requests instances from all of the Spot Instance pools that you specify\\. \nlowestPrice \nSpot Fleet requests instances from the lowest priced Spot Instance pool that has available capacity\\. If the lowest priced pool doesn't have available capacity, the Spot Instances come from the next lowest priced pool that has available capacity\\. If a pool runs out of capacity before fulfilling your desired capacity, Spot Fleet will continue to fulfill your request by drawing from the next lowest priced pool\\. To ensure that your desired capacity is met, you might receive Spot Instances from several pools\\. Because this strategy only considers instance price and not capacity availability, it might lead to high interruption rates\\.\nDefault: `lowestPrice` \n*Required*: No \n*Type*: String \n*Allowed values*: `capacityOptimized | capacityOptimizedPrioritized | diversified | lowestPrice | priceCapacityOptimized` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AllocationStrategy", "type": "string" }, "Context": { + "markdownDescription": "Reserved\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Context", "type": "string" }, "ExcessCapacityTerminationPolicy": { + "markdownDescription": "Indicates whether running Spot Instances should be terminated if you decrease the target capacity of the Spot Fleet request below the current size of the Spot Fleet\\. \nSupported only for fleets of type `maintain`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `default | noTermination` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcessCapacityTerminationPolicy", "type": "string" }, "IamFleetRole": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS Identity and Access Management \\(IAM\\) role that grants the Spot Fleet the permission to request, launch, terminate, and tag instances on your behalf\\. For more information, see [Spot Fleet Prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html#spot-fleet-prerequisites) in the *Amazon EC2 User Guide for Linux Instances*\\. Spot Fleet can terminate Spot Instances on your behalf when you cancel its Spot Fleet request or when the Spot Fleet request expires, if you set `TerminateInstancesWithExpiration`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IamFleetRole", "type": "string" }, "InstanceInterruptionBehavior": { + "markdownDescription": "The behavior when a Spot Instance is interrupted\\. The default is `terminate`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `hibernate | stop | terminate` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceInterruptionBehavior", "type": "string" }, "InstancePoolsToUseCount": { + "markdownDescription": "The number of Spot pools across which to allocate your target Spot capacity\\. Valid only when Spot **AllocationStrategy** is set to `lowest-price`\\. Spot Fleet selects the cheapest Spot pools and evenly allocates your target Spot capacity across the number of Spot pools that you specify\\. \nNote that Spot Fleet attempts to draw Spot Instances from the number of pools that you specify on a best effort basis\\. If a pool runs out of Spot capacity before fulfilling your target capacity, Spot Fleet will continue to fulfill your request by drawing from the next cheapest pool\\. To ensure that your target capacity is met, you might receive Spot Instances from more than the number of pools that you specified\\. Similarly, if most of the pools have no Spot capacity, you might receive your full target capacity from fewer than the number of pools that you specified\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstancePoolsToUseCount", "type": "number" }, "LaunchSpecifications": { "items": { "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetLaunchSpecification" }, + "markdownDescription": "The launch specifications for the Spot Fleet request\\. If you specify `LaunchSpecifications`, you can't specify `LaunchTemplateConfigs`\\. \n*Required*: Conditional \n*Type*: List of [SpotFleetLaunchSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchSpecifications", "type": "array" }, "LaunchTemplateConfigs": { "items": { "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateConfig" }, + "markdownDescription": "The launch template and overrides\\. If you specify `LaunchTemplateConfigs`, you can't specify `LaunchSpecifications`\\. \n*Required*: Conditional \n*Type*: List of [LaunchTemplateConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchTemplateConfigs", "type": "array" }, "LoadBalancersConfig": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.LoadBalancersConfig" + "$ref": "#/definitions/AWS::EC2::SpotFleet.LoadBalancersConfig", + "markdownDescription": "One or more Classic Load Balancers and target groups to attach to the Spot Fleet request\\. Spot Fleet registers the running Spot Instances with the specified Classic Load Balancers and target groups\\. \nWith Network Load Balancers, Spot Fleet cannot register instances that have the following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1\\. \n*Required*: No \n*Type*: [LoadBalancersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-loadbalancersconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoadBalancersConfig" }, "OnDemandAllocationStrategy": { + "markdownDescription": "The order of the launch template overrides to use in fulfilling On\\-Demand capacity\\. If you specify `lowestPrice`, Spot Fleet uses price to determine the order, launching the lowest price first\\. If you specify `prioritized`, Spot Fleet uses the priority that you assign to each Spot Fleet launch template override, launching the highest priority first\\. If you do not specify a value, Spot Fleet defaults to `lowestPrice`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `lowestPrice | prioritized` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OnDemandAllocationStrategy", "type": "string" }, "OnDemandMaxTotalPrice": { + "markdownDescription": "The maximum amount per hour for On\\-Demand Instances that you're willing to pay\\. You can use the `onDemandMaxTotalPrice` parameter, the `spotMaxTotalPrice` parameter, or both parameters to ensure that your fleet cost does not exceed your budget\\. If you set a maximum price per hour for the On\\-Demand Instances and Spot Instances in your request, Spot Fleet will launch instances until it reaches the maximum amount you're willing to pay\\. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn\u2019t met the target capacity\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OnDemandMaxTotalPrice", "type": "string" }, "OnDemandTargetCapacity": { + "markdownDescription": "The number of On\\-Demand units to request\\. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O\\. If the request type is `maintain`, you can specify a target capacity of 0 and add capacity later\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OnDemandTargetCapacity", "type": "number" }, "ReplaceUnhealthyInstances": { + "markdownDescription": "Indicates whether Spot Fleet should replace unhealthy instances\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplaceUnhealthyInstances", "type": "boolean" }, "SpotMaintenanceStrategies": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotMaintenanceStrategies" + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotMaintenanceStrategies", + "markdownDescription": "The strategies for managing your Spot Instances that are at an elevated risk of being interrupted\\. \n*Required*: No \n*Type*: [SpotMaintenanceStrategies](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotmaintenancestrategies.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpotMaintenanceStrategies" }, "SpotMaxTotalPrice": { + "markdownDescription": "The maximum amount per hour for Spot Instances that you're willing to pay\\. You can use the `spotdMaxTotalPrice` parameter, the `onDemandMaxTotalPrice` parameter, or both parameters to ensure that your fleet cost does not exceed your budget\\. If you set a maximum price per hour for the On\\-Demand Instances and Spot Instances in your request, Spot Fleet will launch instances until it reaches the maximum amount you're willing to pay\\. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn\u2019t met the target capacity\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpotMaxTotalPrice", "type": "string" }, "SpotPrice": { + "markdownDescription": "The maximum price per unit hour that you are willing to pay for a Spot Instance\\. We do not recommend using this parameter because it can lead to increased interruptions\\. If you do not specify this parameter, you will pay the current Spot price\\. \nIf you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpotPrice", "type": "string" }, "TagSpecifications": { "items": { "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetTagSpecification" }, + "markdownDescription": "The key\\-value pair for tagging the Spot Fleet request on creation\\. The value for `ResourceType` must be `spot-fleet-request`, otherwise the Spot Fleet request fails\\. To tag instances at launch, specify the tags in the [launch template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template) \\(valid only if you use `LaunchTemplateConfigs`\\) or in the ` [SpotFleetTagSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetTagSpecification.html) ` \\(valid only if you use `LaunchSpecifications`\\)\\. For information about tagging after launch, see [Tagging Your Resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources)\\. \n*Required*: No \n*Type*: List of [SpotFleetTagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleettagspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TagSpecifications", "type": "array" }, "TargetCapacity": { + "markdownDescription": "The number of units to request for the Spot Fleet\\. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O\\. If the request type is `maintain`, you can specify a target capacity of 0 and add capacity later\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetCapacity", "type": "number" }, "TargetCapacityUnitType": { + "markdownDescription": "The unit for the target capacity\\. `TargetCapacityUnitType` can only be specified when `InstanceRequirements` is specified\\. \nDefault: `units` \\(translates to number of instances\\) \n*Required*: No \n*Type*: String \n*Allowed values*: `memory-mib | units | vcpu` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetCapacityUnitType", "type": "string" }, "TerminateInstancesWithExpiration": { + "markdownDescription": "Indicates whether running Spot Instances are terminated when the Spot Fleet request expires\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TerminateInstancesWithExpiration", "type": "boolean" }, "Type": { + "markdownDescription": "The type of request\\. Indicates whether the Spot Fleet only requests the target capacity or also attempts to maintain it\\. When this value is `request`, the Spot Fleet only places the required requests\\. It does not attempt to replenish Spot Instances if capacity is diminished, nor does it submit requests in alternative Spot pools if capacity is not available\\. When this value is `maintain`, the Spot Fleet maintains the target capacity\\. The Spot Fleet places the required requests to meet capacity and automatically replenishes any interrupted instances\\. Default: `maintain`\\. `instant` is listed but is not used by Spot Fleet\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `instant | maintain | request` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" }, "ValidFrom": { + "markdownDescription": "The start date and time of the request, in UTC format \\(*YYYY*\\-*MM*\\-*DD*T*HH*:*MM*:*SS*Z\\)\\. By default, Amazon EC2 starts fulfilling the request immediately\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ValidFrom", "type": "string" }, "ValidUntil": { + "markdownDescription": "The end date and time of the request, in UTC format \\(*YYYY*\\-*MM*\\-*DD*T*HH*:*MM*:*SS*Z\\)\\. After the end date and time, no new Spot Instance requests are placed or able to fulfill the request\\. If no value is specified, the Spot Fleet request remains until you cancel it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ValidUntil", "type": "string" } }, @@ -49420,12 +61021,16 @@ "additionalProperties": false, "properties": { "ResourceType": { + "markdownDescription": "The type of resource\\. Currently, the only resource type that is supported is `instance`\\. To tag the Spot Fleet request on creation, use the `TagSpecifications` parameter in ` [SpotFleetRequestConfigData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetRequestConfigData.html) `\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `capacity-reservation | capacity-reservation-fleet | carrier-gateway | client-vpn-endpoint | coip-pool | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | instance-event-window | internet-gateway | ipam | ipam-pool | ipam-resource-discovery | ipam-resource-discovery-association | ipam-scope | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | launch-template | local-gateway | local-gateway-route-table | local-gateway-route-table-virtual-interface-group-association | local-gateway-route-table-vpc-association | local-gateway-virtual-interface | local-gateway-virtual-interface-group | natgateway | network-acl | network-insights-access-scope | network-insights-access-scope-analysis | network-insights-analysis | network-insights-path | network-interface | placement-group | prefix-list | replace-root-volume-task | reserved-instances | route-server | route-server-endpoint | route-server-peer | route-table | security-group | security-group-rule | snapshot | spot-fleet-request | spot-instances-request | subnet | subnet-cidr-reservation | traffic-mirror-filter | traffic-mirror-filter-rule | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-policy-table | transit-gateway-route-table | transit-gateway-route-table-announcement | verified-access-endpoint | verified-access-group | verified-access-instance | verified-access-policy | verified-access-trust-provider | volume | vpc | vpc-block-public-access-exclusion | vpc-endpoint | vpc-endpoint-connection | vpc-endpoint-connection-device-type | vpc-endpoint-service | vpc-endpoint-service-permission | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-connection-device-type | vpn-gateway` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceType", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -49435,7 +61040,9 @@ "additionalProperties": false, "properties": { "CapacityRebalance": { - "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotCapacityRebalance" + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotCapacityRebalance", + "markdownDescription": "The Spot Instance replacement strategy to use when Amazon EC2 emits a signal that your Spot Instance is at an elevated risk of being interrupted\\. For more information, see [Capacity rebalancing](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-capacity-rebalance.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: No \n*Type*: [SpotCapacityRebalance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotcapacityrebalance.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CapacityRebalance" } }, "type": "object" @@ -49444,12 +61051,18 @@ "additionalProperties": false, "properties": { "AvailabilityZone": { + "markdownDescription": "The Availability Zone\\. \nTo specify multiple Availability Zones, separate them using commas; for example, \"us\\-west\\-2a, us\\-west\\-2b\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", "type": "string" }, "GroupName": { + "markdownDescription": "The name of the placement group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupName", "type": "string" }, "Tenancy": { + "markdownDescription": "The tenancy of the instance \\(if the instance is running in a VPC\\)\\. An instance with a tenancy of `dedicated` runs on single\\-tenant hardware\\. The `host` tenancy is not supported for Spot Instances\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dedicated | default | host` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tenancy", "type": "string" } }, @@ -49459,6 +61072,8 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the target group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Arn", "type": "string" } }, @@ -49474,6 +61089,8 @@ "items": { "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroup" }, + "markdownDescription": "One or more target groups\\. \n*Required*: Yes \n*Type*: List of [TargetGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-targetgroup.html) \n*Maximum*: `5` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetGroups", "type": "array" } }, @@ -49486,9 +61103,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum amount of total local storage, in GB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum amount of total local storage, in GB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", "type": "number" } }, @@ -49498,9 +61119,13 @@ "additionalProperties": false, "properties": { "Max": { + "markdownDescription": "The maximum number of vCPUs\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", "type": "number" }, "Min": { + "markdownDescription": "The minimum number of vCPUs\\. To specify no minimum limit, specify `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", "type": "number" } }, @@ -49542,42 +61167,66 @@ "additionalProperties": false, "properties": { "AssignIpv6AddressOnCreation": { + "markdownDescription": "Indicates whether a network interface created in this subnet receives an IPv6 address\\. The default value is `false`\\. \nIf you specify `AssignIpv6AddressOnCreation`, you must also specify `Ipv6CidrBlock`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssignIpv6AddressOnCreation", "type": "boolean" }, "AvailabilityZone": { + "markdownDescription": "The Availability Zone of the subnet\\. \nIf you update this property, you must also update the `CidrBlock` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", "type": "string" }, "AvailabilityZoneId": { + "markdownDescription": "The AZ ID of the subnet\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZoneId", "type": "string" }, "CidrBlock": { + "markdownDescription": "The IPv4 CIDR block assigned to the subnet\\. \nIf you update this property, we create a new subnet, and then delete the existing one\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CidrBlock", "type": "string" }, "EnableDns64": { + "markdownDescription": "Indicates whether DNS queries made to the Amazon\\-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4\\-only destinations\\. For more information, see [DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) in the *Amazon Virtual Private Cloud User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableDns64", "type": "boolean" }, "Ipv6CidrBlock": { + "markdownDescription": "The IPv6 CIDR block\\. \nIf you specify `AssignIpv6AddressOnCreation`, you must also specify `Ipv6CidrBlock`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Ipv6CidrBlock", "type": "string" }, "Ipv6Native": { + "markdownDescription": "Indicates whether this is an IPv6 only subnet\\. For more information, see [Subnet basics](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#subnet-basics) in the *Amazon Virtual Private Cloud User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv6Native", "type": "boolean" }, "MapPublicIpOnLaunch": { + "markdownDescription": "Indicates whether instances launched in this subnet receive a public IPv4 address\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MapPublicIpOnLaunch", "type": "boolean" }, "OutpostArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Outpost\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OutpostArn", "type": "string" }, "PrivateDnsNameOptionsOnLaunch": { - "$ref": "#/definitions/AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch" + "$ref": "#/definitions/AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch", + "markdownDescription": "The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled\\. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \nAvailable options: \n+ EnableResourceNameDnsAAAARecord \\(true \\| false\\)\n+ EnableResourceNameDnsARecord \\(true \\| false\\)\n+ HostnameType \\(ip\\-name \\| resource\\-name\\)\n*Required*: No \n*Type*: [PrivateDnsNameOptionsOnLaunch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-subnet-privatednsnameoptionsonlaunch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateDnsNameOptionsOnLaunch" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Any tags assigned to the subnet\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VpcId": { + "markdownDescription": "The ID of the VPC the subnet is in\\. \nIf you update this property, you must also update the `CidrBlock` property\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -49611,12 +61260,18 @@ "additionalProperties": false, "properties": { "EnableResourceNameDnsAAAARecord": { + "markdownDescription": "Indicates whether to respond to DNS queries for instance hostname with DNS AAAA records\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableResourceNameDnsAAAARecord", "type": "boolean" }, "EnableResourceNameDnsARecord": { + "markdownDescription": "Indicates whether to respond to DNS queries for instance hostnames with DNS A records\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableResourceNameDnsARecord", "type": "boolean" }, "HostnameType": { + "markdownDescription": "The type of hostname for EC2 instances\\. For IPv4 only subnets, an instance DNS name must be based on the instance IPv4 address\\. For IPv6 only subnets, an instance DNS name must be based on the instance ID\\. For dual\\-stack subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ip-name | resource-name` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostnameType", "type": "string" } }, @@ -49658,9 +61313,13 @@ "additionalProperties": false, "properties": { "Ipv6CidrBlock": { + "markdownDescription": "The IPv6 network range for the subnet, in CIDR notation\\. The subnet size must use a /64 prefix length\\. \nThis parameter is required for an IPv6 only subnet\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv6CidrBlock", "type": "string" }, "SubnetId": { + "markdownDescription": "The ID of the subnet\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", "type": "string" } }, @@ -49727,9 +61386,13 @@ "additionalProperties": false, "properties": { "NetworkAclId": { + "markdownDescription": "The ID of the network ACL\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkAclId", "type": "string" }, "SubnetId": { + "markdownDescription": "The ID of the subnet\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", "type": "string" } }, @@ -49796,9 +61459,13 @@ "additionalProperties": false, "properties": { "RouteTableId": { + "markdownDescription": "The ID of the route table\\. \nThe physical ID changes when the route table ID is changed\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RouteTableId", "type": "string" }, "SubnetId": { + "markdownDescription": "The ID of the subnet\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", "type": "string" } }, @@ -49865,18 +61532,24 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the Traffic Mirror filter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "NetworkServices": { "items": { "type": "string" }, + "markdownDescription": "The network service traffic that is associated with the Traffic Mirror filter\\. \nValid values are `amazon-dns`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkServices", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to assign to a Traffic Mirror filter\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -49938,33 +61611,53 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the Traffic Mirror rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DestinationCidrBlock": { + "markdownDescription": "The destination CIDR block to assign to the Traffic Mirror rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationCidrBlock", "type": "string" }, "DestinationPortRange": { - "$ref": "#/definitions/AWS::EC2::TrafficMirrorFilterRule.TrafficMirrorPortRange" + "$ref": "#/definitions/AWS::EC2::TrafficMirrorFilterRule.TrafficMirrorPortRange", + "markdownDescription": "The destination port range\\. \n*Required*: No \n*Type*: [TrafficMirrorPortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-trafficmirrorfilterrule-trafficmirrorportrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationPortRange" }, "Protocol": { + "markdownDescription": "The protocol, for example UDP, to assign to the Traffic Mirror rule\\. \nFor information about the protocol value, see [Protocol Numbers](https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml) on the Internet Assigned Numbers Authority \\(IANA\\) website\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "number" }, "RuleAction": { + "markdownDescription": "The action to take on the filtered traffic\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `accept | reject` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleAction", "type": "string" }, "RuleNumber": { + "markdownDescription": "The number of the Traffic Mirror rule\\. This number must be unique for each Traffic Mirror rule in a given direction\\. The rules are processed in ascending order by rule number\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleNumber", "type": "number" }, "SourceCidrBlock": { + "markdownDescription": "The source CIDR block to assign to the Traffic Mirror rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceCidrBlock", "type": "string" }, "SourcePortRange": { - "$ref": "#/definitions/AWS::EC2::TrafficMirrorFilterRule.TrafficMirrorPortRange" + "$ref": "#/definitions/AWS::EC2::TrafficMirrorFilterRule.TrafficMirrorPortRange", + "markdownDescription": "The source port range\\. \n*Required*: No \n*Type*: [TrafficMirrorPortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-trafficmirrorfilterrule-trafficmirrorportrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourcePortRange" }, "TrafficDirection": { + "markdownDescription": "The type of traffic\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `egress | ingress` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrafficDirection", "type": "string" }, "TrafficMirrorFilterId": { + "markdownDescription": "The ID of the filter that this rule is associated with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TrafficMirrorFilterId", "type": "string" } }, @@ -50003,9 +61696,13 @@ "additionalProperties": false, "properties": { "FromPort": { + "markdownDescription": "The start of the Traffic Mirror port range\\. This applies to the TCP and UDP protocols\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FromPort", "type": "number" }, "ToPort": { + "markdownDescription": "The end of the Traffic Mirror port range\\. This applies to the TCP and UDP protocols\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ToPort", "type": "number" } }, @@ -50051,30 +61748,46 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the Traffic Mirror session\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "NetworkInterfaceId": { + "markdownDescription": "The ID of the source network interface\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInterfaceId", "type": "string" }, "PacketLength": { + "markdownDescription": "The number of bytes in each packet to mirror\\. These are bytes after the VXLAN header\\. Do not specify this parameter when you want to mirror the entire packet\\. To mirror a subset of the packet, set this to the length \\(in bytes\\) that you want to mirror\\. For example, if you set this value to 100, then the first 100 bytes that meet the filter criteria are copied to the target\\. \nIf you do not want to mirror the entire packet, use the `PacketLength` parameter to specify the number of bytes in each packet to mirror\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PacketLength", "type": "number" }, "SessionNumber": { + "markdownDescription": "The session number determines the order in which sessions are evaluated when an interface is used by multiple sessions\\. The first session with a matching filter is the one that mirrors the packets\\. \nValid values are 1\\-32766\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionNumber", "type": "number" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to assign to a Traffic Mirror session\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TrafficMirrorFilterId": { + "markdownDescription": "The ID of the Traffic Mirror filter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrafficMirrorFilterId", "type": "string" }, "TrafficMirrorTargetId": { + "markdownDescription": "The ID of the Traffic Mirror target\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrafficMirrorTargetId", "type": "string" }, "VirtualNetworkId": { + "markdownDescription": "The VXLAN ID for the Traffic Mirror session\\. For more information about the VXLAN protocol, see [RFC 7348](https://tools.ietf.org/html/rfc7348)\\. If you do not specify a `VirtualNetworkId`, an account\\-wide unique id is chosen at random\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualNetworkId", "type": "number" } }, @@ -50143,21 +61856,31 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the Traffic Mirror target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "GatewayLoadBalancerEndpointId": { + "markdownDescription": "The ID of the Gateway Load Balancer endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GatewayLoadBalancerEndpointId", "type": "string" }, "NetworkInterfaceId": { + "markdownDescription": "The network interface ID that is associated with the target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInterfaceId", "type": "string" }, "NetworkLoadBalancerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Network Load Balancer that is associated with the target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkLoadBalancerArn", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to assign to the Traffic Mirror target\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -50219,45 +61942,69 @@ "additionalProperties": false, "properties": { "AmazonSideAsn": { + "markdownDescription": "A private Autonomous System Number \\(ASN\\) for the Amazon side of a BGP session\\. The range is 64512 to 65534 for 16\\-bit ASNs\\. The default is 64512\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AmazonSideAsn", "type": "number" }, "AssociationDefaultRouteTableId": { + "markdownDescription": "The ID of the default association route table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociationDefaultRouteTableId", "type": "string" }, "AutoAcceptSharedAttachments": { + "markdownDescription": "Enable or disable automatic acceptance of attachment requests\\. Disabled by default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoAcceptSharedAttachments", "type": "string" }, "DefaultRouteTableAssociation": { + "markdownDescription": "Enable or disable automatic association with the default association route table\\. Enabled by default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultRouteTableAssociation", "type": "string" }, "DefaultRouteTablePropagation": { + "markdownDescription": "Enable or disable automatic propagation of routes to the default propagation route table\\. Enabled by default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultRouteTablePropagation", "type": "string" }, "Description": { + "markdownDescription": "The description of the transit gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DnsSupport": { + "markdownDescription": "Enable or disable DNS support\\. Enabled by default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DnsSupport", "type": "string" }, "MulticastSupport": { + "markdownDescription": "Indicates whether multicast is enabled on the transit gateway \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MulticastSupport", "type": "string" }, "PropagationDefaultRouteTableId": { + "markdownDescription": "The ID of the default propagation route table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropagationDefaultRouteTableId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags for the transit gateway\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TransitGatewayCidrBlocks": { "items": { "type": "string" }, + "markdownDescription": "The transit gateway CIDR blocks\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitGatewayCidrBlocks", "type": "array" }, "VpnEcmpSupport": { + "markdownDescription": "Enable or disable Equal Cost Multipath Protocol support\\. Enabled by default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpnEcmpSupport", "type": "string" } }, @@ -50319,24 +62066,34 @@ "additionalProperties": false, "properties": { "Options": { - "$ref": "#/definitions/AWS::EC2::TransitGatewayAttachment.Options" + "$ref": "#/definitions/AWS::EC2::TransitGatewayAttachment.Options", + "markdownDescription": "The VPC attachment options, in JSON or YAML\\. \n+ `ApplianceModeSupport` \\- Set to `enable` or `disable`\\. The default is `disable`\\.\n+ `DnsSupport` \\- Set to `enable` or `disable`\\. The default is `enable`\\.\n+ `Ipv6Support` \\- Set to `enable` or `disable`\\. The default is `disable`\\.\n*Required*: No \n*Type*: [Options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewayattachment-options.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Options" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "The IDs of one or more subnets\\. You can specify only one subnet per Availability Zone\\. You must specify at least one subnet, but we recommend that you specify two subnets for better availability\\. The transit gateway uses one IP address from each specified subnet\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags for the attachment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TransitGatewayId": { + "markdownDescription": "The ID of the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayId", "type": "string" }, "VpcId": { + "markdownDescription": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -50372,12 +62129,18 @@ "additionalProperties": false, "properties": { "ApplianceModeSupport": { + "markdownDescription": "Indicates whether appliance mode support is enabled\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplianceModeSupport", "type": "string" }, "DnsSupport": { + "markdownDescription": "Indicates whether DNS support is enabled\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DnsSupport", "type": "string" }, "Ipv6Support": { + "markdownDescription": "Indicates whether IPv6 support is disabled\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6Support", "type": "string" } }, @@ -50419,15 +62182,21 @@ "additionalProperties": false, "properties": { "Options": { - "$ref": "#/definitions/AWS::EC2::TransitGatewayConnect.TransitGatewayConnectOptions" + "$ref": "#/definitions/AWS::EC2::TransitGatewayConnect.TransitGatewayConnectOptions", + "markdownDescription": "The Connect attachment options\\. \n+ protocol \\(gre\\)\n*Required*: Yes \n*Type*: [TransitGatewayConnectOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewayconnect-transitgatewayconnectoptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Options" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags for the attachment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TransportTransitGatewayAttachmentId": { + "markdownDescription": "The ID of the attachment from which the Connect attachment was created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransportTransitGatewayAttachmentId", "type": "string" } }, @@ -50462,6 +62231,8 @@ "additionalProperties": false, "properties": { "Protocol": { + "markdownDescription": "The tunnel protocol\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `gre` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Protocol", "type": "string" } }, @@ -50503,15 +62274,21 @@ "additionalProperties": false, "properties": { "Options": { - "$ref": "#/definitions/AWS::EC2::TransitGatewayMulticastDomain.Options" + "$ref": "#/definitions/AWS::EC2::TransitGatewayMulticastDomain.Options", + "markdownDescription": "The options for the transit gateway multicast domain\\. \n+ AutoAcceptSharedAssociations \\(enable \\| disable\\)\n+ Igmpv2Support \\(enable \\| disable\\)\n+ StaticSourcesSupport \\(enable \\| disable\\)\n*Required*: No \n*Type*: [Options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewaymulticastdomain-options.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Options" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags for the transit gateway multicast domain\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TransitGatewayId": { + "markdownDescription": "The ID of the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayId", "type": "string" } }, @@ -50545,12 +62322,18 @@ "additionalProperties": false, "properties": { "AutoAcceptSharedAssociations": { + "markdownDescription": "Indicates whether to automatically accept cross\\-account subnet associations that are associated with the transit gateway multicast domain\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoAcceptSharedAssociations", "type": "string" }, "Igmpv2Support": { + "markdownDescription": "Specify whether to enable Internet Group Management Protocol \\(IGMP\\) version 2 for the transit gateway multicast domain\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Igmpv2Support", "type": "string" }, "StaticSourcesSupport": { + "markdownDescription": "Specify whether to enable support for statically configuring multicast group sources for a domain\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StaticSourcesSupport", "type": "string" } }, @@ -50592,12 +62375,18 @@ "additionalProperties": false, "properties": { "SubnetId": { + "markdownDescription": "The IDs of the subnets to associate with the transit gateway multicast domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", "type": "string" }, "TransitGatewayAttachmentId": { + "markdownDescription": "The ID of the transit gateway attachment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayAttachmentId", "type": "string" }, "TransitGatewayMulticastDomainId": { + "markdownDescription": "The ID of the transit gateway multicast domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayMulticastDomainId", "type": "string" } }, @@ -50665,12 +62454,18 @@ "additionalProperties": false, "properties": { "GroupIpAddress": { + "markdownDescription": "The IP address assigned to the transit gateway multicast group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupIpAddress", "type": "string" }, "NetworkInterfaceId": { + "markdownDescription": "The group members' network interface IDs to register with the transit gateway multicast group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInterfaceId", "type": "string" }, "TransitGatewayMulticastDomainId": { + "markdownDescription": "The ID of the transit gateway multicast domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayMulticastDomainId", "type": "string" } }, @@ -50738,12 +62533,18 @@ "additionalProperties": false, "properties": { "GroupIpAddress": { + "markdownDescription": "The IP address assigned to the transit gateway multicast group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupIpAddress", "type": "string" }, "NetworkInterfaceId": { + "markdownDescription": "The group sources' network interface IDs to register with the transit gateway multicast group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInterfaceId", "type": "string" }, "TransitGatewayMulticastDomainId": { + "markdownDescription": "The ID of the transit gateway multicast domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayMulticastDomainId", "type": "string" } }, @@ -50811,21 +62612,31 @@ "additionalProperties": false, "properties": { "PeerAccountId": { + "markdownDescription": "The ID of the AWS account that owns the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PeerAccountId", "type": "string" }, "PeerRegion": { + "markdownDescription": "The Region of the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PeerRegion", "type": "string" }, "PeerTransitGatewayId": { + "markdownDescription": "The ID of the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PeerTransitGatewayId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags for the transit gateway peering attachment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TransitGatewayId": { + "markdownDescription": "The ID of the transit gateway peering attachment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayId", "type": "string" } }, @@ -50862,9 +62673,13 @@ "additionalProperties": false, "properties": { "Code": { + "markdownDescription": "The status code\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Code", "type": "string" }, "Message": { + "markdownDescription": "The status message, if applicable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Message", "type": "string" } }, @@ -50906,15 +62721,23 @@ "additionalProperties": false, "properties": { "Blackhole": { + "markdownDescription": "Indicates whether to drop traffic that matches this route\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Blackhole", "type": "boolean" }, "DestinationCidrBlock": { + "markdownDescription": "The CIDR block used for destination matches\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationCidrBlock", "type": "string" }, "TransitGatewayAttachmentId": { + "markdownDescription": "The ID of the attachment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayAttachmentId", "type": "string" }, "TransitGatewayRouteTableId": { + "markdownDescription": "The ID of the transit gateway route table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayRouteTableId", "type": "string" } }, @@ -50983,9 +62806,13 @@ "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Any tags assigned to the route table\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" }, "TransitGatewayId": { + "markdownDescription": "The ID of the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayId", "type": "string" } }, @@ -51051,9 +62878,13 @@ "additionalProperties": false, "properties": { "TransitGatewayAttachmentId": { + "markdownDescription": "The ID of the attachment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayAttachmentId", "type": "string" }, "TransitGatewayRouteTableId": { + "markdownDescription": "The ID of the route table for the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayRouteTableId", "type": "string" } }, @@ -51120,9 +62951,13 @@ "additionalProperties": false, "properties": { "TransitGatewayAttachmentId": { + "markdownDescription": "The ID of the attachment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayAttachmentId", "type": "string" }, "TransitGatewayRouteTableId": { + "markdownDescription": "The ID of the propagation route table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayRouteTableId", "type": "string" } }, @@ -51192,33 +63027,47 @@ "items": { "type": "string" }, + "markdownDescription": "The IDs of one or more subnets to add\\. You can specify at most one subnet per Availability Zone\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddSubnetIds", "type": "array" }, "Options": { - "$ref": "#/definitions/AWS::EC2::TransitGatewayVpcAttachment.Options" + "$ref": "#/definitions/AWS::EC2::TransitGatewayVpcAttachment.Options", + "markdownDescription": "The VPC attachment options, in JSON or YAML\\. \n+ `ApplianceModeSupport` \\- Set to `enable` or `disable`\\. The default is `disable`\\.\n+ `DnsSupport` \\- Set to `enable` or `disable`\\. The default is `enable`\\.\n+ `Ipv6Support` \\- Set to `enable` or `disable`\\. The default is `disable`\\.\n*Required*: No \n*Type*: [Options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewayvpcattachment-options.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Options" }, "RemoveSubnetIds": { "items": { "type": "string" }, + "markdownDescription": "The IDs of one or more subnets to remove\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveSubnetIds", "type": "array" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "The IDs of the subnets\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetIds", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags for the VPC attachment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TransitGatewayId": { + "markdownDescription": "The ID of the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayId", "type": "string" }, "VpcId": { + "markdownDescription": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -51254,12 +63103,18 @@ "additionalProperties": false, "properties": { "ApplianceModeSupport": { + "markdownDescription": "Indicates whether appliance mode support is enabled\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplianceModeSupport", "type": "string" }, "DnsSupport": { + "markdownDescription": "Indicates whether DNS support is enabled\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DnsSupport", "type": "string" }, "Ipv6Support": { + "markdownDescription": "Indicates whether IPv6 support is disabled\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6Support", "type": "string" } }, @@ -51301,27 +63156,41 @@ "additionalProperties": false, "properties": { "CidrBlock": { + "markdownDescription": "The IPv4 network range for the VPC, in CIDR notation\\. For example, `10.0.0.0/16`\\. We modify the specified CIDR block to its canonical form; for example, if you specify `100.68.0.18/18`, we modify it to `100.68.0.0/18`\\. \nYou must specify either`CidrBlock` or `Ipv4IpamPoolId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CidrBlock", "type": "string" }, "EnableDnsHostnames": { + "markdownDescription": "Indicates whether the instances launched in the VPC get DNS hostnames\\. If enabled, instances in the VPC get DNS hostnames; otherwise, they do not\\. Disabled by default for nondefault VPCs\\. For more information, see [DNS attributes in your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support)\\. \nYou can only enable DNS hostnames if you've enabled DNS support\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableDnsHostnames", "type": "boolean" }, "EnableDnsSupport": { + "markdownDescription": "Indicates whether the DNS resolution is supported for the VPC\\. If enabled, queries to the Amazon provided DNS server at the 169\\.254\\.169\\.253 IP address, or the reserved IP address at the base of the VPC network range \"plus two\" succeed\\. If disabled, the Amazon provided DNS service in the VPC that resolves public DNS hostnames to IP addresses is not enabled\\. Enabled by default\\. For more information, see [DNS attributes in your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableDnsSupport", "type": "boolean" }, "InstanceTenancy": { + "markdownDescription": "The allowed tenancy of instances launched into the VPC\\. \n+ `default`: An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch\\.\n+ `dedicated`: An instance launched into the VPC runs on dedicated hardware by default, unless you explicitly specify a tenancy of `host` during instance launch\\. You cannot specify a tenancy of `default` during instance launch\\.\nUpdating `InstanceTenancy` requires no replacement only if you are updating its value from `dedicated` to `default`\\. Updating `InstanceTenancy` from `default` to `dedicated` requires replacement\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dedicated | default | host` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "InstanceTenancy", "type": "string" }, "Ipv4IpamPoolId": { + "markdownDescription": "The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR\\. For more information, see [What is IPAM?](/vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*\\. \nYou must specify either`CidrBlock` or `Ipv4IpamPoolId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv4IpamPoolId", "type": "string" }, "Ipv4NetmaskLength": { + "markdownDescription": "The netmask length of the IPv4 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager \\(IPAM\\) pool\\. For more information about IPAM, see [What is IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv4NetmaskLength", "type": "number" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags for the VPC\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -51383,30 +63252,48 @@ "additionalProperties": false, "properties": { "AmazonProvidedIpv6CidrBlock": { + "markdownDescription": "Requests an Amazon\\-provided IPv6 CIDR block with a /56 prefix length for the VPC\\. You cannot specify the range of IPv6 addresses, or the size of the CIDR block\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AmazonProvidedIpv6CidrBlock", "type": "boolean" }, "CidrBlock": { + "markdownDescription": "An IPv4 CIDR block to associate with the VPC\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CidrBlock", "type": "string" }, "Ipv4IpamPoolId": { + "markdownDescription": "Associate a CIDR allocated from an IPv4 IPAM pool to a VPC\\. For more information about Amazon VPC IP Address Manager \\(IPAM\\), see [What is IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv4IpamPoolId", "type": "string" }, "Ipv4NetmaskLength": { + "markdownDescription": "The netmask length of the IPv4 CIDR you would like to associate from an Amazon VPC IP Address Manager \\(IPAM\\) pool\\. For more information about IPAM, see [What is IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv4NetmaskLength", "type": "number" }, "Ipv6CidrBlock": { + "markdownDescription": "An IPv6 CIDR block from the IPv6 address pool\\. You must also specify `Ipv6Pool` in the request\\. \nTo let Amazon choose the IPv6 CIDR block for you, omit this parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv6CidrBlock", "type": "string" }, "Ipv6IpamPoolId": { + "markdownDescription": "Associates a CIDR allocated from an IPv6 IPAM pool to a VPC\\. For more information about Amazon VPC IP Address Manager \\(IPAM\\), see [What is IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv6IpamPoolId", "type": "string" }, "Ipv6NetmaskLength": { + "markdownDescription": "The netmask length of the IPv6 CIDR you would like to associate from an Amazon VPC IP Address Manager \\(IPAM\\) pool\\. For more information about IPAM, see [What is IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv6NetmaskLength", "type": "number" }, "Ipv6Pool": { + "markdownDescription": "The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv6Pool", "type": "string" }, "VpcId": { + "markdownDescription": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -51472,9 +63359,13 @@ "additionalProperties": false, "properties": { "DhcpOptionsId": { + "markdownDescription": "The ID of the DHCP options set, or `default` to associate no DHCP options with the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DhcpOptionsId", "type": "string" }, "VpcId": { + "markdownDescription": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -51541,36 +63432,52 @@ "additionalProperties": false, "properties": { "PolicyDocument": { + "markdownDescription": "A policy that controls access to the service from the VPC\\. If this parameter is not specified, the default policy allows full access to the service\\. Endpoint policies are supported only for gateway and interface endpoints\\. \nFor CloudFormation templates in YAML, you can provide the policy in JSON or YAML format\\. AWS CloudFormation converts YAML policies to JSON format before calling the API to create or modify the VPC endpoint\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDocument", "type": "object" }, "PrivateDnsEnabled": { + "markdownDescription": "Indicate whether to associate a private hosted zone with the specified VPC\\. The private hosted zone contains a record set for the default public DNS name for the service for the Region \\(for example, `kinesis.us-east-1.amazonaws.com`\\), which resolves to the private IP addresses of the endpoint network interfaces in the VPC\\. This enables you to make requests to the default public DNS name for the service instead of the public DNS names that are automatically generated by the VPC endpoint service\\. \nTo use a private hosted zone, you must set the following VPC attributes to `true`: `enableDnsHostnames` and `enableDnsSupport`\\. \nThis property is supported only for interface endpoints\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateDnsEnabled", "type": "boolean" }, "RouteTableIds": { "items": { "type": "string" }, + "markdownDescription": "The IDs of the route tables\\. Routing is supported only for gateway endpoints\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteTableIds", "type": "array" }, "SecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "The IDs of the security groups to associate with the endpoint network interfaces\\. If this parameter is not specified, we use the default security group for the VPC\\. Security groups are supported only for interface endpoints\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "ServiceName": { + "markdownDescription": "The service name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceName", "type": "string" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "The IDs of the subnets in which to create endpoint network interfaces\\. You must specify this property for an interface endpoint or a Gateway Load Balancer endpoint\\. You can't specify this property for a gateway endpoint\\. For a Gateway Load Balancer endpoint, you can specify only one subnet\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" }, "VpcEndpointType": { + "markdownDescription": "The type of endpoint\\. \nDefault: Gateway \n*Required*: No \n*Type*: String \n*Allowed values*: `Gateway | GatewayLoadBalancer | Interface` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcEndpointType", "type": "string" }, "VpcId": { + "markdownDescription": "The ID of the VPC for the endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -51640,15 +63547,23 @@ "items": { "type": "string" }, + "markdownDescription": "The endpoint events for which to receive notifications\\. Valid values are `Accept`, `Connect`, `Delete`, and `Reject`\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionEvents", "type": "array" }, "ConnectionNotificationArn": { + "markdownDescription": "The ARN of the SNS topic for the notifications\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionNotificationArn", "type": "string" }, "ServiceId": { + "markdownDescription": "The ID of the endpoint service\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceId", "type": "string" }, "VPCEndpointId": { + "markdownDescription": "The ID of the endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VPCEndpointId", "type": "string" } }, @@ -51715,24 +63630,34 @@ "additionalProperties": false, "properties": { "AcceptanceRequired": { + "markdownDescription": "Indicates whether requests from service consumers to create an endpoint to your service must be accepted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptanceRequired", "type": "boolean" }, "ContributorInsightsEnabled": { + "markdownDescription": "Indicates whether to enable the built\\-in Contributor Insights rules\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContributorInsightsEnabled", "type": "boolean" }, "GatewayLoadBalancerArns": { "items": { "type": "string" }, + "markdownDescription": "The Amazon Resource Names \\(ARNs\\) of the Gateway Load Balancers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GatewayLoadBalancerArns", "type": "array" }, "NetworkLoadBalancerArns": { "items": { "type": "string" }, + "markdownDescription": "The Amazon Resource Names \\(ARNs\\) of the Network Load Balancers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkLoadBalancerArns", "type": "array" }, "PayerResponsibility": { + "markdownDescription": "The entity that is responsible for the endpoint costs\\. The default is the endpoint owner\\. If you set the payer responsibility to the service owner, you cannot set it back to the endpoint owner\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ServiceOwner` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PayerResponsibility", "type": "string" } }, @@ -51797,9 +63722,13 @@ "items": { "type": "string" }, + "markdownDescription": "The Amazon Resource Names \\(ARN\\) of one or more principals \\(users, IAM roles, and AWS accounts\\)\\. Permissions are granted to the principals in this list\\. To grant permissions to all principals, specify an asterisk \\(\\*\\)\\. Permissions are revoked for principals not in this list\\. If the list is empty, then all permissions are revoked\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedPrincipals", "type": "array" }, "ServiceId": { + "markdownDescription": "The ID of the service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceId", "type": "string" } }, @@ -51865,12 +63794,18 @@ "additionalProperties": false, "properties": { "InternetGatewayId": { + "markdownDescription": "The ID of the internet gateway\\. \nYou must specify either `InternetGatewayId` or `VpnGatewayId`, but not both\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InternetGatewayId", "type": "string" }, "VpcId": { + "markdownDescription": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcId", "type": "string" }, "VpnGatewayId": { + "markdownDescription": "The ID of the virtual private gateway\\. \nYou must specify either `InternetGatewayId` or `VpnGatewayId`, but not both\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpnGatewayId", "type": "string" } }, @@ -51936,24 +63871,36 @@ "additionalProperties": false, "properties": { "PeerOwnerId": { + "markdownDescription": "The AWS account ID of the owner of the accepter VPC\\. \nDefault: Your AWS account ID \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PeerOwnerId", "type": "string" }, "PeerRegion": { + "markdownDescription": "The Region code for the accepter VPC, if the accepter VPC is located in a Region other than the Region in which you make the request\\. \nDefault: The Region in which you make the request\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PeerRegion", "type": "string" }, "PeerRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the VPC peer role for the peering connection in another AWS account\\. \nThis is required when you are peering a VPC in a different AWS account\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PeerRoleArn", "type": "string" }, "PeerVpcId": { + "markdownDescription": "The ID of the VPC with which you are creating the VPC peering connection\\. You must specify this parameter in the request\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PeerVpcId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Any tags assigned to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VpcId": { + "markdownDescription": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -52020,30 +63967,44 @@ "additionalProperties": false, "properties": { "CustomerGatewayId": { + "markdownDescription": "The ID of the customer gateway at your end of the VPN connection\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomerGatewayId", "type": "string" }, "StaticRoutesOnly": { + "markdownDescription": "Indicates whether the VPN connection uses static routes only\\. Static routes must be used for devices that don't support BGP\\. \nIf you are creating a VPN connection for a device that does not support Border Gateway Protocol \\(BGP\\), you must specify `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StaticRoutesOnly", "type": "boolean" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Any tags assigned to the VPN connection\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TransitGatewayId": { + "markdownDescription": "The ID of the transit gateway associated with the VPN connection\\. \nYou must specify either `TransitGatewayId` or `VpnGatewayId`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayId", "type": "string" }, "Type": { + "markdownDescription": "The type of VPN connection\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ipsec.1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" }, "VpnGatewayId": { + "markdownDescription": "The ID of the virtual private gateway at the AWS side of the VPN connection\\. \nYou must specify either `TransitGatewayId` or `VpnGatewayId`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpnGatewayId", "type": "string" }, "VpnTunnelOptionsSpecifications": { "items": { "$ref": "#/definitions/AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification" }, + "markdownDescription": "The tunnel options for the VPN connection\\. \n*Required*: No \n*Type*: List of [VpnTunnelOptionsSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpnTunnelOptionsSpecifications", "type": "array" } }, @@ -52078,9 +64039,13 @@ "additionalProperties": false, "properties": { "PreSharedKey": { + "markdownDescription": "The pre\\-shared key \\(PSK\\) to establish initial authentication between the virtual private gateway and customer gateway\\. \nConstraints: Allowed characters are alphanumeric characters, periods \\(\\.\\), and underscores \\(\\_\\)\\. Must be between 8 and 64 characters in length and cannot start with zero \\(0\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PreSharedKey", "type": "string" }, "TunnelInsideCidr": { + "markdownDescription": "The range of inside IP addresses for the tunnel\\. Any specified CIDR blocks must be unique across all VPN connections that use the same virtual private gateway\\. \nConstraints: A size /30 CIDR block from the `169.254.0.0/16` range\\. The following CIDR blocks are reserved and cannot be used: \n+ `169.254.0.0/30` \n+ `169.254.1.0/30` \n+ `169.254.2.0/30` \n+ `169.254.3.0/30` \n+ `169.254.4.0/30` \n+ `169.254.5.0/30` \n+ `169.254.169.252/30` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TunnelInsideCidr", "type": "string" } }, @@ -52122,9 +64087,13 @@ "additionalProperties": false, "properties": { "DestinationCidrBlock": { + "markdownDescription": "The CIDR block associated with the local subnet of the customer network\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationCidrBlock", "type": "string" }, "VpnConnectionId": { + "markdownDescription": "The ID of the VPN connection\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpnConnectionId", "type": "string" } }, @@ -52191,15 +64160,21 @@ "additionalProperties": false, "properties": { "AmazonSideAsn": { + "markdownDescription": "The private Autonomous System Number \\(ASN\\) for the Amazon side of a BGP session\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AmazonSideAsn", "type": "number" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Any tags assigned to the virtual private gateway\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Type": { + "markdownDescription": "The type of VPN connection the virtual private gateway supports\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ipsec.1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -52268,9 +64243,13 @@ "items": { "type": "string" }, + "markdownDescription": "The ID of the route table\\. The routing table must be associated with the same VPC that the virtual private gateway is attached to\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteTableIds", "type": "array" }, "VpnGatewayId": { + "markdownDescription": "The ID of the virtual private gateway that is attached to a VPC\\. The virtual private gateway must be attached to the same VPC that the routing tables are associated with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpnGatewayId", "type": "string" } }, @@ -52337,42 +64316,66 @@ "additionalProperties": false, "properties": { "AutoEnableIO": { + "markdownDescription": "Indicates whether the volume is auto\\-enabled for I/O operations\\. By default, Amazon EBS disables I/O to the volume from attached EC2 instances when it determines that a volume's data is potentially inconsistent\\. If the consistency of the volume is not a concern, and you prefer that the volume be made available immediately if it's impaired, you can configure the volume to automatically enable I/O\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoEnableIO", "type": "boolean" }, "AvailabilityZone": { + "markdownDescription": "The Availability Zone in which to create the volume\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "AvailabilityZone", "type": "string" }, "Encrypted": { + "markdownDescription": "Indicates whether the volume should be encrypted\\. The effect of setting the encryption state to `true` depends on the volume origin \\(new or from a snapshot\\), starting encryption state, ownership, and whether encryption by default is enabled\\. For more information, see [Encryption by default](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default) in the *Amazon Elastic Compute Cloud User Guide*\\. \nEncrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption\\. For more information, see [Supported instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: Updates are not supported\\.", + "title": "Encrypted", "type": "boolean" }, "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\)\\. For `gp3`, `io1`, and `io2` volumes, this represents the number of IOPS that are provisioned for the volume\\. For `gp2` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting\\. \nThe following are the supported values for each volume type: \n+ `gp3`: 3,000\\-16,000 IOPS\n+ `io1`: 100\\-64,000 IOPS\n+ `io2`: 100\\-64,000 IOPS\n `io1` and `io2` volumes support up to 64,000 IOPS only on [Instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)\\. Other instance families support performance up to 32,000 IOPS\\. \nThis parameter is required for `io1` and `io2` volumes\\. The default for `gp3` volumes is 3,000 IOPS\\. This parameter is not supported for `gp2`, `st1`, `sc1`, or `standard` volumes\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iops", "type": "number" }, "KmsKeyId": { + "markdownDescription": "The identifier of the AWS KMS key to use for Amazon EBS encryption\\. If `KmsKeyId` is specified, the encrypted state must be `true`\\. \nIf you omit this property and your account is enabled for encryption by default, or **Encrypted** is set to `true`, then the volume is encrypted using the default key specified for your account\\. If your account does not have a default key, then the volume is encrypted using the AWS managed key\\. \nAlternatively, if you want to specify a different key, you can specify one of the following: \n+ Key ID\\. For example, 1234abcd\\-12ab\\-34cd\\-56ef\\-1234567890ab\\.\n+ Key alias\\. Specify the alias for the key, prefixed with `alias/`\\. For example, for a key with the alias `my_cmk`, use `alias/my_cmk`\\. Or to specify the AWS managed key, use `alias/aws/ebs`\\.\n+ Key ARN\\. For example, arn:aws:kms:us\\-east\\-1:012345678910:key/1234abcd\\-12ab\\-34cd\\-56ef\\-1234567890ab\\.\n+ Alias ARN\\. For example, arn:aws:kms:us\\-east\\-1:012345678910:alias/ExampleAlias\\.\n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "KmsKeyId", "type": "string" }, "MultiAttachEnabled": { + "markdownDescription": "Indicates whether Amazon EBS Multi\\-Attach is enabled\\. \nAWS CloudFormation does not currently support updating a single\\-attach volume to be multi\\-attach enabled, updating a multi\\-attach enabled volume to be single\\-attach, or updating the size or number of I/O operations per second \\(IOPS\\) of a multi\\-attach enabled volume\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MultiAttachEnabled", "type": "boolean" }, "OutpostArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Outpost\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutpostArn", "type": "string" }, "Size": { + "markdownDescription": "The size of the volume, in GiBs\\. You must specify either a snapshot ID or a volume size\\. If you specify a snapshot, the default is the snapshot size\\. You can specify a volume size that is equal to or larger than the snapshot size\\. \nThe following are the supported volumes sizes for each volume type: \n+ `gp2` and `gp3`: 1\\-16,384\n+ `io1` and `io2`: 4\\-16,384\n+ `st1` and `sc1`: 125\\-16,384\n+ `standard`: 1\\-1,024\n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Size", "type": "number" }, "SnapshotId": { + "markdownDescription": "The snapshot from which to create the volume\\. You must specify either a snapshot ID or a volume size\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "SnapshotId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to apply to the volume during creation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Throughput": { + "markdownDescription": "The throughput to provision for a volume, with a maximum of 1,000 MiB/s\\. \nThis parameter is valid only for `gp3` volumes\\. The default value is 125\\. \nValid Range: Minimum value of 125\\. Maximum value of 1000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Throughput", "type": "number" }, "VolumeType": { + "markdownDescription": "The volume type\\. This parameter can be one of the following values: \n+ General Purpose SSD: `gp2` \\| `gp3` \n+ Provisioned IOPS SSD: `io1` \\| `io2` \n+ Throughput Optimized HDD: `st1` \n+ Cold HDD: `sc1` \n+ Magnetic: `standard` \nThroughput Optimized HDD \\(`st1`\\) and Cold HDD \\(`sc1`\\) volumes can't be used as boot volumes\\.\nFor more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \nDefault: `gp2` \n*Required*: No \n*Type*: String \n*Allowed values*: `gp2 | gp3 | io1 | io2 | sc1 | st1 | standard` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeType", "type": "string" } }, @@ -52438,12 +64441,18 @@ "additionalProperties": false, "properties": { "Device": { + "markdownDescription": "The device name \\(for example, `/dev/sdh` or `xvdh`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Device", "type": "string" }, "InstanceId": { + "markdownDescription": "The ID of the instance to which the volume attaches\\. This value can be a reference to an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) resource, or it can be the physical ID of an existing EC2 instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceId", "type": "string" }, "VolumeId": { + "markdownDescription": "The ID of the Amazon EBS volume\\. The volume and instance must be within the same Availability Zone\\. This value can be a reference to an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html) resource, or it can be the volume ID of an existing Amazon EBS volume\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeId", "type": "string" } }, @@ -52511,18 +64520,26 @@ "additionalProperties": false, "properties": { "RepositoryCatalogData": { - "$ref": "#/definitions/AWS::ECR::PublicRepository.RepositoryCatalogData" + "$ref": "#/definitions/AWS::ECR::PublicRepository.RepositoryCatalogData", + "markdownDescription": "The details about the repository that are publicly visible in the Amazon ECR Public Gallery\\. For more information, see [Amazon ECR Public repository catalog data](https://docs.aws.amazon.com/AmazonECR/latest/public/public-repository-catalog-data.html) in the *Amazon ECR Public User Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepositoryCatalogData" }, "RepositoryName": { + "markdownDescription": "The name to use for the public repository\\. The repository name may be specified on its own \\(such as `nginx-web-app`\\) or it can be prepended with a namespace to group the repository into a category \\(such as `project-a/nginx-web-app`\\)\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the repository name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RepositoryName", "type": "string" }, "RepositoryPolicyText": { + "markdownDescription": "The JSON repository policy text to apply to the public repository\\. For more information, see [Amazon ECR Public repository policies](https://docs.aws.amazon.com/AmazonECR/latest/public/public-repository-policies.html) in the *Amazon ECR Public User Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepositoryPolicyText", "type": "object" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -52611,9 +64628,13 @@ "additionalProperties": false, "properties": { "EcrRepositoryPrefix": { + "markdownDescription": "The Amazon ECR repository prefix associated with the pull through cache rule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `20` \n*Pattern*: `[a-z0-9]+(?:[._-][a-z0-9]+)*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EcrRepositoryPrefix", "type": "string" }, "UpstreamRegistryUrl": { + "markdownDescription": "The upstream registry URL associated with the pull through cache rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UpstreamRegistryUrl", "type": "string" } }, @@ -52675,6 +64696,8 @@ "additionalProperties": false, "properties": { "PolicyText": { + "markdownDescription": "The JSON policy text for your registry\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyText", "type": "object" } }, @@ -52740,7 +64763,9 @@ "additionalProperties": false, "properties": { "ReplicationConfiguration": { - "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationConfiguration" + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationConfiguration", + "markdownDescription": "The replication configuration for a registry\\. \n*Required*: Yes \n*Type*: [ReplicationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-replicationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationConfiguration" } }, "required": [ @@ -52776,6 +64801,8 @@ "items": { "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationRule" }, + "markdownDescription": "An array of objects representing the replication destinations and repository filters for a replication configuration\\. \n*Required*: Yes \n*Type*: List of [ReplicationRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-replicationrule.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", "type": "array" } }, @@ -52788,9 +64815,13 @@ "additionalProperties": false, "properties": { "Region": { + "markdownDescription": "The Region to replicate to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `25` \n*Pattern*: `[0-9a-z-]{2,25}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", "type": "string" }, "RegistryId": { + "markdownDescription": "The AWS account ID of the Amazon ECR private registry to replicate to\\. When configuring cross\\-Region replication within your own registry, specify your own account ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[0-9]{12}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegistryId", "type": "string" } }, @@ -52807,12 +64838,16 @@ "items": { "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationDestination" }, + "markdownDescription": "An array of objects representing the destination for a replication rule\\. \n*Required*: Yes \n*Type*: List of [ReplicationDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-replicationdestination.html) \n*Maximum*: `25` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destinations", "type": "array" }, "RepositoryFilters": { "items": { "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.RepositoryFilter" }, + "markdownDescription": "An array of objects representing the filters for a replication rule\\. Specifying a repository filter for a replication rule provides a method for controlling which repositories in a private registry are replicated\\. \n*Required*: No \n*Type*: List of [RepositoryFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-repositoryfilter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepositoryFilters", "type": "array" } }, @@ -52825,9 +64860,13 @@ "additionalProperties": false, "properties": { "Filter": { + "markdownDescription": "The repository filter details\\. When the `PREFIX_MATCH` filter type is specified, this value is required and should be the repository name prefix to configure replication for\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `256` \n*Pattern*: `^(?:[a-z0-9]+(?:[._-][a-z0-9]*)*/)*[a-z0-9]*(?:[._-][a-z0-9]*)*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filter", "type": "string" }, "FilterType": { + "markdownDescription": "The repository filter type\\. The only supported value is `PREFIX_MATCH`, which is a repository name prefix specified with the `filter` parameter\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `PREFIX_MATCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterType", "type": "string" } }, @@ -52873,27 +64912,41 @@ "additionalProperties": false, "properties": { "EncryptionConfiguration": { - "$ref": "#/definitions/AWS::ECR::Repository.EncryptionConfiguration" + "$ref": "#/definitions/AWS::ECR::Repository.EncryptionConfiguration", + "markdownDescription": "The encryption configuration for the repository\\. This determines how the contents of your repository are encrypted at rest\\. \n*Required*: No \n*Type*: [EncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-encryptionconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncryptionConfiguration" }, "ImageScanningConfiguration": { - "$ref": "#/definitions/AWS::ECR::Repository.ImageScanningConfiguration" + "$ref": "#/definitions/AWS::ECR::Repository.ImageScanningConfiguration", + "markdownDescription": "The image scanning configuration for the repository\\. This determines whether images are scanned for known vulnerabilities after being pushed to the repository\\. \n*Required*: No \n*Type*: [ImageScanningConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-imagescanningconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageScanningConfiguration" }, "ImageTagMutability": { + "markdownDescription": "The tag mutability setting for the repository\\. If this parameter is omitted, the default setting of `MUTABLE` will be used which will allow image tags to be overwritten\\. If `IMMUTABLE` is specified, all image tags within the repository will be immutable which will prevent them from being overwritten\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `IMMUTABLE | MUTABLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageTagMutability", "type": "string" }, "LifecyclePolicy": { - "$ref": "#/definitions/AWS::ECR::Repository.LifecyclePolicy" + "$ref": "#/definitions/AWS::ECR::Repository.LifecyclePolicy", + "markdownDescription": "Creates or updates a lifecycle policy\\. For information about lifecycle policy syntax, see [Lifecycle policy template](https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html)\\. \n*Required*: No \n*Type*: [LifecyclePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-lifecyclepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LifecyclePolicy" }, "RepositoryName": { + "markdownDescription": "The name to use for the repository\\. The repository name may be specified on its own \\(such as `nginx-web-app`\\) or it can be prepended with a namespace to group the repository into a category \\(such as `project-a/nginx-web-app`\\)\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the repository name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `256` \n*Pattern*: `(?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RepositoryName", "type": "string" }, "RepositoryPolicyText": { + "markdownDescription": "The JSON repository policy text to apply to the repository\\. For more information, see [Amazon ECR repository policies](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html) in the *Amazon Elastic Container Registry User Guide*\\. \n*Required*: No \n*Type*: Json \n*Minimum*: `0` \n*Maximum*: `10240` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepositoryPolicyText", "type": "object" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -52923,9 +64976,13 @@ "additionalProperties": false, "properties": { "EncryptionType": { + "markdownDescription": "The encryption type to use\\. \nIf you use the `KMS` encryption type, the contents of the repository will be encrypted using server\\-side encryption with AWS Key Management Service key stored in AWS KMS\\. When you use AWS KMS to encrypt your data, you can either use the default AWS managed AWS KMS key for Amazon ECR, or specify your own AWS KMS key, which you already created\\. For more information, see [Protecting data using server\\-side encryption with an AWS KMS key stored in AWS Key Management Service \\(SSE\\-KMS\\)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*\\. \nIf you use the `AES256` encryption type, Amazon ECR uses server\\-side encryption with Amazon S3\\-managed encryption keys which encrypts the images in the repository using an AES\\-256 encryption algorithm\\. For more information, see [Protecting data using server\\-side encryption with Amazon S3\\-managed encryption keys \\(SSE\\-S3\\)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AES256 | KMS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncryptionType", "type": "string" }, "KmsKey": { + "markdownDescription": "If you use the `KMS` encryption type, specify the AWS KMS key to use for encryption\\. The alias, key ID, or full ARN of the AWS KMS key can be specified\\. The key must exist in the same Region as the repository\\. If no key is specified, the default AWS managed AWS KMS key for Amazon ECR will be used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKey", "type": "string" } }, @@ -52938,6 +64995,8 @@ "additionalProperties": false, "properties": { "ScanOnPush": { + "markdownDescription": "The setting that determines whether images are scanned after being pushed to a repository\\. If set to `true`, images will be scanned after being pushed\\. If this parameter is not specified, it will default to `false` and images will not be scanned unless a scan is manually started\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScanOnPush", "type": "boolean" } }, @@ -52947,9 +65006,13 @@ "additionalProperties": false, "properties": { "LifecyclePolicyText": { + "markdownDescription": "The JSON repository policy text to apply to the repository\\. \n*Required*: No \n*Type*: String \n*Minimum*: `100` \n*Maximum*: `30720` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LifecyclePolicyText", "type": "string" }, "RegistryId": { + "markdownDescription": "The AWS account ID associated with the registry that contains the repository\\. If you do\u2028 not specify a registry, the default registry is assumed\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[0-9]{12}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegistryId", "type": "string" } }, @@ -52991,15 +65054,21 @@ "additionalProperties": false, "properties": { "AutoScalingGroupProvider": { - "$ref": "#/definitions/AWS::ECS::CapacityProvider.AutoScalingGroupProvider" + "$ref": "#/definitions/AWS::ECS::CapacityProvider.AutoScalingGroupProvider", + "markdownDescription": "The Auto Scaling group settings for the capacity provider\\. \n*Required*: Yes \n*Type*: [AutoScalingGroupProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-autoscalinggroupprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoScalingGroupProvider" }, "Name": { + "markdownDescription": "The name of the capacity provider\\. If a name is specified, it cannot start with `aws`, `ecs`, or `fargate`\\. If no name is specified, a default name in the `CFNStackName-CFNResourceName-RandomString` format is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The metadata that you apply to the capacity provider to help you categorize and organize it\\. Each tag consists of a key and an optional value\\. You define both\\. \nThe following basic restrictions apply to tags: \n+ Maximum number of tags per resource \\- 50\n+ For each resource, each tag key must be unique, and each tag key can have only one value\\.\n+ Maximum key length \\- 128 Unicode characters in UTF\\-8\n+ Maximum value length \\- 256 Unicode characters in UTF\\-8\n+ If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters\\. Generally allowed characters are: letters, numbers, and spaces representable in UTF\\-8, and the following characters: \\+ \\- = \\. \\_ : / @\\.\n+ Tag keys and values are case\\-sensitive\\.\n+ Do not use `aws:`, `AWS:`, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use\\. You cannot edit or delete tag keys or values with this prefix\\. Tags with this prefix do not count against your tags per resource limit\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -53033,12 +65102,18 @@ "additionalProperties": false, "properties": { "AutoScalingGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) or short name that identifies the Auto Scaling group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutoScalingGroupArn", "type": "string" }, "ManagedScaling": { - "$ref": "#/definitions/AWS::ECS::CapacityProvider.ManagedScaling" + "$ref": "#/definitions/AWS::ECS::CapacityProvider.ManagedScaling", + "markdownDescription": "The managed scaling settings for the Auto Scaling group capacity provider\\. \n*Required*: No \n*Type*: [ManagedScaling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedscaling.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManagedScaling" }, "ManagedTerminationProtection": { + "markdownDescription": "The managed termination protection setting to use for the Auto Scaling group capacity provider\\. This determines whether the Auto Scaling group has managed termination protection\\. The default is disabled\\. \nWhen using managed termination protection, managed scaling must also be used otherwise managed termination protection doesn't work\\.\nWhen managed termination protection is enabled, Amazon ECS prevents the Amazon EC2 instances in an Auto Scaling group that contain tasks from being terminated during a scale\\-in action\\. The Auto Scaling group and each instance in the Auto Scaling group must have instance protection from scale\\-in actions enabled as well\\. For more information, see [Instance Protection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection) in the * AWS Auto Scaling User Guide*\\. \nWhen managed termination protection is disabled, your Amazon EC2 instances aren't protected from termination when the Auto Scaling group scales in\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManagedTerminationProtection", "type": "string" } }, @@ -53051,18 +65126,28 @@ "additionalProperties": false, "properties": { "InstanceWarmupPeriod": { + "markdownDescription": "The period of time, in seconds, after a newly launched Amazon EC2 instance can contribute to CloudWatch metrics for Auto Scaling group\\. If this parameter is omitted, the default value of `300` seconds is used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `10000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceWarmupPeriod", "type": "number" }, "MaximumScalingStepSize": { + "markdownDescription": "The maximum number of container instances that Amazon ECS scales in or scales out at one time\\. If this parameter is omitted, the default value of `10000` is used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `10000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumScalingStepSize", "type": "number" }, "MinimumScalingStepSize": { + "markdownDescription": "The minimum number of container instances that Amazon ECS scales in or scales out at one time\\. If this parameter is omitted, the default value of `1` is used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `10000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinimumScalingStepSize", "type": "number" }, "Status": { + "markdownDescription": "Determines whether to use managed scaling for the capacity provider\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" }, "TargetCapacity": { + "markdownDescription": "The target capacity value for the capacity provider\\. The specified value must be greater than `0` and less than or equal to `100`\\. A value of `100` results in the Amazon EC2 instances in your Auto Scaling group being completely used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetCapacity", "type": "number" } }, @@ -53107,24 +65192,34 @@ "items": { "type": "string" }, + "markdownDescription": "The short name of one or more capacity providers to associate with the cluster\\. A capacity provider must be associated with a cluster before it can be included as part of the default capacity provider strategy of the cluster or used in a capacity provider strategy\\. \nIf specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created and not already associated with another cluster\\. \nTo use an AWS Fargate capacity provider, specify either the `FARGATE` or `FARGATE_SPOT` capacity providers\\. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityProviders", "type": "array" }, "ClusterName": { + "markdownDescription": "A user\\-generated string that you use to identify your cluster\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID for the name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterName", "type": "string" }, "ClusterSettings": { "items": { "$ref": "#/definitions/AWS::ECS::Cluster.ClusterSettings" }, + "markdownDescription": "The setting to use when creating a cluster\\. This parameter is used to enable CloudWatch Container Insights for a cluster\\. If this value is specified, it will override the `containerInsights` value set with [PutAccountSetting](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSetting.html) or [PutAccountSettingDefault](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSettingDefault.html)\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clustersettings.html) of [ClusterSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clustersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterSettings", "type": "array" }, "Configuration": { - "$ref": "#/definitions/AWS::ECS::Cluster.ClusterConfiguration" + "$ref": "#/definitions/AWS::ECS::Cluster.ClusterConfiguration", + "markdownDescription": "The execute command configuration for the cluster\\. \n*Required*: No \n*Type*: [ClusterConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clusterconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configuration" }, "DefaultCapacityProviderStrategy": { "items": { "$ref": "#/definitions/AWS::ECS::Cluster.CapacityProviderStrategyItem" }, + "markdownDescription": "The default capacity provider strategy for the cluster\\. When services or tasks are run in the cluster with no launch type or capacity provider strategy specified, the default capacity provider strategy is used\\. \n*Required*: No \n*Type*: List of [CapacityProviderStrategyItem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-capacityproviderstrategyitem.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultCapacityProviderStrategy", "type": "array" }, "ServiceConnectDefaults": { @@ -53134,6 +65229,8 @@ "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The metadata that you apply to the cluster to help you categorize and organize them\\. Each tag consists of a key and an optional value\\. You define both\\. \nThe following basic restrictions apply to tags: \n+ Maximum number of tags per resource \\- 50\n+ For each resource, each tag key must be unique, and each tag key can have only one value\\.\n+ Maximum key length \\- 128 Unicode characters in UTF\\-8\n+ Maximum value length \\- 256 Unicode characters in UTF\\-8\n+ If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters\\. Generally allowed characters are: letters, numbers, and spaces representable in UTF\\-8, and the following characters: \\+ \\- = \\. \\_ : / @\\.\n+ Tag keys and values are case\\-sensitive\\.\n+ Do not use `aws:`, `AWS:`, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use\\. You cannot edit or delete tag keys or values with this prefix\\. Tags with this prefix do not count against your tags per resource limit\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -53163,12 +65260,18 @@ "additionalProperties": false, "properties": { "Base": { + "markdownDescription": "The *base* value designates how many tasks, at a minimum, to run on the specified capacity provider\\. Only one capacity provider in a capacity provider strategy can have a *base* defined\\. If no value is specified, the default value of `0` is used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Base", "type": "number" }, "CapacityProvider": { + "markdownDescription": "The short name of the capacity provider\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityProvider", "type": "string" }, "Weight": { + "markdownDescription": "The *weight* value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider\\. The `weight` value is taken into consideration after the `base` value, if defined, is satisfied\\. \nIf no `weight` value is specified, the default value of `0` is used\\. When multiple capacity providers are specified within a capacity provider strategy, at least one of the capacity providers must have a weight value greater than zero and any capacity providers with a weight of `0` can't be used to place tasks\\. If you specify multiple capacity providers in a strategy that all have a weight of `0`, any `RunTask` or `CreateService` actions using the capacity provider strategy will fail\\. \nAn example scenario for using weights is defining a strategy that contains two capacity providers and both have a weight of `1`, then when the `base` is satisfied, the tasks will be split evenly across the two capacity providers\\. Using that same logic, if you specify a weight of `1` for *capacityProviderA* and a weight of `4` for *capacityProviderB*, then for every one task that's run using *capacityProviderA*, four tasks would use *capacityProviderB*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Weight", "type": "number" } }, @@ -53178,7 +65281,9 @@ "additionalProperties": false, "properties": { "ExecuteCommandConfiguration": { - "$ref": "#/definitions/AWS::ECS::Cluster.ExecuteCommandConfiguration" + "$ref": "#/definitions/AWS::ECS::Cluster.ExecuteCommandConfiguration", + "markdownDescription": "The details of the execute command configuration\\. \n*Required*: No \n*Type*: [ExecuteCommandConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecuteCommandConfiguration" } }, "type": "object" @@ -53187,9 +65292,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the cluster setting\\. The only supported value is `containerInsights`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `containerInsights` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "The value to set for the cluster setting\\. The supported values are `enabled` and `disabled`\\. If `enabled` is specified, CloudWatch Container Insights will be enabled for the cluster, otherwise it will be disabled unless the `containerInsights` account setting is enabled\\. If a cluster value is specified, it will override the `containerInsights` value set with [PutAccountSetting](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSetting.html) or [PutAccountSettingDefault](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSettingDefault.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -53199,12 +65308,18 @@ "additionalProperties": false, "properties": { "KmsKeyId": { + "markdownDescription": "Specify an AWS Key Management Service key ID to encrypt the data between the local client and the container\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", "type": "string" }, "LogConfiguration": { - "$ref": "#/definitions/AWS::ECS::Cluster.ExecuteCommandLogConfiguration" + "$ref": "#/definitions/AWS::ECS::Cluster.ExecuteCommandLogConfiguration", + "markdownDescription": "The log configuration for the results of the execute command actions\\. The logs can be sent to CloudWatch Logs or an Amazon S3 bucket\\. When `logging=OVERRIDE` is specified, a `logConfiguration` must be provided\\. \n*Required*: No \n*Type*: [ExecuteCommandLogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogConfiguration" }, "Logging": { + "markdownDescription": "The log setting to use for redirecting logs for your execute command results\\. The following log settings are available\\. \n+ `NONE`: The execute command session is not logged\\.\n+ `DEFAULT`: The `awslogs` configuration in the task definition is used\\. If no logging parameter is specified, it defaults to this value\\. If no `awslogs` log driver is configured in the task definition, the output won't be logged\\.\n+ `OVERRIDE`: Specify the logging details as a part of `logConfiguration`\\. If the `OVERRIDE` logging option is specified, the `logConfiguration` is required\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `DEFAULT | NONE | OVERRIDE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Logging", "type": "string" } }, @@ -53214,18 +65329,28 @@ "additionalProperties": false, "properties": { "CloudWatchEncryptionEnabled": { + "markdownDescription": "Determines whether to use encryption on the CloudWatch logs\\. If not specified, encryption will be disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchEncryptionEnabled", "type": "boolean" }, "CloudWatchLogGroupName": { + "markdownDescription": "The name of the CloudWatch log group to send logs to\\. \nThe CloudWatch log group must already be created\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogGroupName", "type": "string" }, "S3BucketName": { + "markdownDescription": "The name of the S3 bucket to send logs to\\. \nThe S3 bucket must already be created\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketName", "type": "string" }, "S3EncryptionEnabled": { + "markdownDescription": "Determines whether to use encryption on the S3 logs\\. If not specified, encryption is not used\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3EncryptionEnabled", "type": "boolean" }, "S3KeyPrefix": { + "markdownDescription": "An optional folder in the S3 bucket to place logs in\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3KeyPrefix", "type": "string" } }, @@ -53279,15 +65404,21 @@ "items": { "type": "string" }, + "markdownDescription": "The capacity providers to associate with the cluster\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityProviders", "type": "array" }, "Cluster": { + "markdownDescription": "The cluster the capacity provider association is the target of\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Cluster", "type": "string" }, "DefaultCapacityProviderStrategy": { "items": { "$ref": "#/definitions/AWS::ECS::ClusterCapacityProviderAssociations.CapacityProviderStrategy" }, + "markdownDescription": "The default capacity provider strategy to associate with the cluster\\. \n*Required*: Yes \n*Type*: List of [CapacityProviderStrategy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-clustercapacityproviderassociations-capacityproviderstrategy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultCapacityProviderStrategy", "type": "array" } }, @@ -53323,12 +65454,18 @@ "additionalProperties": false, "properties": { "Base": { + "markdownDescription": "The *base* value designates how many tasks, at a minimum, to run on the specified capacity provider\\. Only one capacity provider in a capacity provider strategy can have a *base* defined\\. If no value is specified, the default value of `0` is used\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Base", "type": "number" }, "CapacityProvider": { + "markdownDescription": "The short name of the capacity provider\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityProvider", "type": "string" }, "Weight": { + "markdownDescription": "The *weight* value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider\\. The `weight` value is taken into consideration after the `base` value, if defined, is satisfied\\. \nIf no `weight` value is specified, the default value of `0` is used\\. When multiple capacity providers are specified within a capacity provider strategy, at least one of the capacity providers must have a weight value greater than zero and any capacity providers with a weight of `0` will not be used to place tasks\\. If you specify multiple capacity providers in a strategy that all have a weight of `0`, any `RunTask` or `CreateService` actions using the capacity provider strategy will fail\\. \nAn example scenario for using weights is defining a strategy that contains two capacity providers and both have a weight of `1`, then when the `base` is satisfied, the tasks will be split evenly across the two capacity providers\\. Using that same logic, if you specify a weight of `1` for *capacityProviderA* and a weight of `4` for *capacityProviderB*, then for every one task that is run using *capacityProviderA*, four tasks would use *capacityProviderB*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Weight", "type": "number" } }, @@ -53373,12 +65510,18 @@ "additionalProperties": false, "properties": { "Cluster": { + "markdownDescription": "The short name or full Amazon Resource Name \\(ARN\\) of the cluster that hosts the service that the task set exists in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Cluster", "type": "string" }, "Service": { + "markdownDescription": "The short name or full Amazon Resource Name \\(ARN\\) of the service that the task set exists in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Service", "type": "string" }, "TaskSetId": { + "markdownDescription": "The short name or full Amazon Resource Name \\(ARN\\) of the task set to set as the primary task set in the deployment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskSetId", "type": "string" } }, @@ -53449,84 +65592,126 @@ "items": { "$ref": "#/definitions/AWS::ECS::Service.CapacityProviderStrategyItem" }, + "markdownDescription": "The capacity provider strategy to use for the service\\. \nA capacity provider strategy consists of one or more capacity providers along with the `base` and `weight` to assign to them\\. A capacity provider must be associated with the cluster to be used in a capacity provider strategy\\. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster\\. Only capacity providers with an `ACTIVE` or `UPDATING` status can be used\\. \nReview the [Capacity provider considerations](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-capacity-providers.html#capacity-providers-considerations) in the *Amazon Elastic Container Service Developer Guide\\.* \nIf a `capacityProviderStrategy` is specified, the `launchType` parameter must be omitted\\. If no `capacityProviderStrategy` or `launchType` is specified, the `defaultCapacityProviderStrategy` for the cluster is used\\. \nIf specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created\\. New capacity providers can be created with the CreateCapacityProvider API operation\\. \nTo use an AWS Fargate capacity provider, specify either the `FARGATE` or `FARGATE_SPOT` capacity providers\\. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used\\. \nThe PutClusterCapacityProviders API operation is used to update the list of available capacity providers for a cluster after the cluster is created\\. \n*Required*: No \n*Type*: List of [CapacityProviderStrategyItem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-capacityproviderstrategyitem.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityProviderStrategy", "type": "array" }, "Cluster": { + "markdownDescription": "The short name or full Amazon Resource Name \\(ARN\\) of the cluster that you run your service on\\. If you do not specify a cluster, the default cluster is assumed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Cluster", "type": "string" }, "DeploymentConfiguration": { - "$ref": "#/definitions/AWS::ECS::Service.DeploymentConfiguration" + "$ref": "#/definitions/AWS::ECS::Service.DeploymentConfiguration", + "markdownDescription": "Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks\\. \n*Required*: No \n*Type*: [DeploymentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentConfiguration" }, "DeploymentController": { - "$ref": "#/definitions/AWS::ECS::Service.DeploymentController" + "$ref": "#/definitions/AWS::ECS::Service.DeploymentController", + "markdownDescription": "The deployment controller to use for the service\\. If no deployment controller is specified, the default value of `ECS` is used\\. \n*Required*: No \n*Type*: [DeploymentController](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentcontroller.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeploymentController" }, "DesiredCount": { + "markdownDescription": "The number of instantiations of the specified task definition to place and keep running on your cluster\\. \nFor new services, if a desired count is not specified, a default value of `1` is used\\. When using the `DAEMON` scheduling strategy, the desired count is not required\\. \nFor existing services, if a desired count is not specified, it is omitted from the operation\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DesiredCount", "type": "number" }, "EnableECSManagedTags": { + "markdownDescription": "Specifies whether to turn on Amazon ECS managed tags for the tasks within the service\\. For more information, see [Tagging Your Amazon ECS Resources](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableECSManagedTags", "type": "boolean" }, "EnableExecuteCommand": { + "markdownDescription": "Determines whether the execute command functionality is enabled for the service\\. If `true`, the execute command functionality is enabled for all containers in tasks as part of the service\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableExecuteCommand", "type": "boolean" }, "HealthCheckGracePeriodSeconds": { + "markdownDescription": "The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started\\. This is only used when your service is configured to use a load balancer\\. If your service has a load balancer defined and you don't specify a health check grace period value, the default value of `0` is used\\. \nIf you do not use an Elastic Load Balancing, we recomend that you use the `startPeriod` in the task definition healtch check parameters\\. For more information, see [Health check](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_HealthCheck.html)\\. \nIf your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you can specify a health check grace period of up to 2,147,483,647 seconds \\(about 69 years\\)\\. During that time, the Amazon ECS service scheduler ignores health check status\\. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckGracePeriodSeconds", "type": "number" }, "LaunchType": { + "markdownDescription": "The launch type on which to run your service\\. For more information, see [Amazon ECS Launch Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `EC2 | EXTERNAL | FARGATE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchType", "type": "string" }, "LoadBalancers": { "items": { "$ref": "#/definitions/AWS::ECS::Service.LoadBalancer" }, + "markdownDescription": "A list of load balancer objects to associate with the service\\. If you specify the `Role` property, `LoadBalancers` must be specified as well\\. For information about the number of load balancers that you can specify per service, see [Service Load Balancing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: List of [LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-loadbalancer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancers", "type": "array" }, "NetworkConfiguration": { - "$ref": "#/definitions/AWS::ECS::Service.NetworkConfiguration" + "$ref": "#/definitions/AWS::ECS::Service.NetworkConfiguration", + "markdownDescription": "The network configuration for the service\\. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own elastic network interface, and it is not supported for other network modes\\. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: Conditional \n*Type*: [NetworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-networkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkConfiguration" }, "PlacementConstraints": { "items": { "$ref": "#/definitions/AWS::ECS::Service.PlacementConstraint" }, + "markdownDescription": "An array of placement constraint objects to use for tasks in your service\\. You can specify a maximum of 10 constraints for each task\\. This limit includes constraints in the task definition and those specified at runtime\\. \n*Required*: No \n*Type*: List of [PlacementConstraint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementconstraint.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlacementConstraints", "type": "array" }, "PlacementStrategies": { "items": { "$ref": "#/definitions/AWS::ECS::Service.PlacementStrategy" }, + "markdownDescription": "The placement strategy objects to use for tasks in your service\\. You can specify a maximum of five strategy rules per service\\. For more information, see [Task Placement Strategies](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: List of [PlacementStrategy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementstrategy.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlacementStrategies", "type": "array" }, "PlatformVersion": { + "markdownDescription": "The platform version that your tasks in the service are running on\\. A platform version is specified only for tasks using the Fargate launch type\\. If one isn't specified, the `LATEST` platform version is used\\. For more information, see [AWS Fargate platform versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlatformVersion", "type": "string" }, "PropagateTags": { + "markdownDescription": "Specifies whether to propagate the tags from the task definition or the service to the tasks in the service\\. If no value is specified, the tags are not propagated\\. Tags can only be propagated to the tasks within the service during service creation\\. To add tags to a task after service creation, use the [TagResource](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TagResource.html) API action\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | SERVICE | TASK_DEFINITION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropagateTags", "type": "string" }, "Role": { + "markdownDescription": "The name or full Amazon Resource Name \\(ARN\\) of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf\\. This parameter is only permitted if you are using a load balancer with your service and your task definition doesn't use the `awsvpc` network mode\\. If you specify the `role` parameter, you must also specify a load balancer object with the `loadBalancers` parameter\\. \nIf your account has already created the Amazon ECS service\\-linked role, that role is used for your service unless you specify a role here\\. The service\\-linked role is required if your task definition uses the `awsvpc` network mode or if the service is configured to use service discovery, an external deployment controller, multiple target groups, or Elastic Inference accelerators in which case you don't specify a role here\\. For more information, see [Using service\\-linked roles for Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html) in the *Amazon Elastic Container Service Developer Guide*\\.\nIf your specified role has a path other than `/`, then you must either specify the full role ARN \\(this is recommended\\) or prefix the role name with the path\\. For example, if a role with the name `bar` has a path of `/foo/` then you would specify `/foo/bar` as the role name\\. For more information, see [Friendly names and paths](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Role", "type": "string" }, "SchedulingStrategy": { + "markdownDescription": "The scheduling strategy to use for the service\\. For more information, see [Services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html)\\. \nThere are two service scheduler strategies available: \n+ `REPLICA`\\-The replica scheduling strategy places and maintains the desired number of tasks across your cluster\\. By default, the service scheduler spreads tasks across Availability Zones\\. You can use task placement strategies and constraints to customize task placement decisions\\. This scheduler strategy is required if the service uses the `CODE_DEPLOY` or `EXTERNAL` deployment controller types\\.\n+ `DAEMON`\\-The daemon scheduling strategy deploys exactly one task on each active container instance that meets all of the task placement constraints that you specify in your cluster\\. The service scheduler also evaluates the task placement constraints for running tasks and will stop tasks that don't meet the placement constraints\\. When you're using this strategy, you don't need to specify a desired number of tasks, a task placement strategy, or use Service Auto Scaling policies\\.\n**Note** \nTasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `DAEMON | REPLICA` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SchedulingStrategy", "type": "string" }, "ServiceConnectConfiguration": { "$ref": "#/definitions/AWS::ECS::Service.ServiceConnectConfiguration" }, "ServiceName": { + "markdownDescription": "The name of your service\\. Up to 255 letters \\(uppercase and lowercase\\), numbers, underscores, and hyphens are allowed\\. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a Region or across multiple Regions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceName", "type": "string" }, "ServiceRegistries": { "items": { "$ref": "#/definitions/AWS::ECS::Service.ServiceRegistry" }, + "markdownDescription": "The details of the service discovery registry to associate with this service\\. For more information, see [Service discovery](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html)\\. \nEach service may be associated with one service registry\\. Multiple service registries for each service isn't supported\\.\n*Required*: No \n*Type*: List of [ServiceRegistry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceregistry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceRegistries", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The metadata that you apply to the service to help you categorize and organize them\\. Each tag consists of a key and an optional value, both of which you define\\. When a service is deleted, the tags are deleted as well\\. \nThe following basic restrictions apply to tags: \n+ Maximum number of tags per resource \\- 50\n+ For each resource, each tag key must be unique, and each tag key can have only one value\\.\n+ Maximum key length \\- 128 Unicode characters in UTF\\-8\n+ Maximum value length \\- 256 Unicode characters in UTF\\-8\n+ If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters\\. Generally allowed characters are: letters, numbers, and spaces representable in UTF\\-8, and the following characters: \\+ \\- = \\. \\_ : / @\\.\n+ Tag keys and values are case\\-sensitive\\.\n+ Do not use `aws:`, `AWS:`, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use\\. You cannot edit or delete tag keys or values with this prefix\\. Tags with this prefix do not count against your tags per resource limit\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TaskDefinition": { + "markdownDescription": "The `family` and `revision` \\(`family:revision`\\) or full ARN of the task definition to run in your service\\. The `revision` is required in order for the resource to stabilize\\. \nA task definition must be specified if the service is using either the `ECS` or `CODE_DEPLOY` deployment controllers\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskDefinition", "type": "string" } }, @@ -53556,18 +65741,24 @@ "additionalProperties": false, "properties": { "AssignPublicIp": { + "markdownDescription": "Whether the task's elastic network interface receives a public IP address\\. The default value is `DISABLED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssignPublicIp", "type": "string" }, "SecurityGroups": { "items": { "type": "string" }, + "markdownDescription": "The IDs of the security groups associated with the task or service\\. If you don't specify a security group, the default security group for the VPC is used\\. There's a limit of 5 security groups that can be specified per `AwsVpcConfiguration`\\. \nAll specified security groups must be from the same VPC\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroups", "type": "array" }, "Subnets": { "items": { "type": "string" }, + "markdownDescription": "The IDs of the subnets associated with the task or service\\. There's a limit of 16 subnets that can be specified per `AwsVpcConfiguration`\\. \nAll specified subnets must be from the same VPC\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subnets", "type": "array" } }, @@ -53577,12 +65768,18 @@ "additionalProperties": false, "properties": { "Base": { + "markdownDescription": "The *base* value designates how many tasks, at a minimum, to run on the specified capacity provider\\. Only one capacity provider in a capacity provider strategy can have a *base* defined\\. If no value is specified, the default value of `0` is used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Base", "type": "number" }, "CapacityProvider": { + "markdownDescription": "The short name of the capacity provider\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityProvider", "type": "string" }, "Weight": { + "markdownDescription": "The *weight* value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider\\. The `weight` value is taken into consideration after the `base` value, if defined, is satisfied\\. \nIf no `weight` value is specified, the default value of `0` is used\\. When multiple capacity providers are specified within a capacity provider strategy, at least one of the capacity providers must have a weight value greater than zero and any capacity providers with a weight of `0` can't be used to place tasks\\. If you specify multiple capacity providers in a strategy that all have a weight of `0`, any `RunTask` or `CreateService` actions using the capacity provider strategy will fail\\. \nAn example scenario for using weights is defining a strategy that contains two capacity providers and both have a weight of `1`, then when the `base` is satisfied, the tasks will be split evenly across the two capacity providers\\. Using that same logic, if you specify a weight of `1` for *capacityProviderA* and a weight of `4` for *capacityProviderB*, then for every one task that's run using *capacityProviderA*, four tasks would use *capacityProviderB*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Weight", "type": "number" } }, @@ -53615,9 +65812,13 @@ "additionalProperties": false, "properties": { "Enable": { + "markdownDescription": "Determines whether to use the deployment circuit breaker logic for the service\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enable", "type": "boolean" }, "Rollback": { + "markdownDescription": "Determines whether to configure Amazon ECS to roll back the service if a service deployment fails\\. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rollback", "type": "boolean" } }, @@ -53634,12 +65835,18 @@ "$ref": "#/definitions/AWS::ECS::Service.DeploymentAlarms" }, "DeploymentCircuitBreaker": { - "$ref": "#/definitions/AWS::ECS::Service.DeploymentCircuitBreaker" + "$ref": "#/definitions/AWS::ECS::Service.DeploymentCircuitBreaker", + "markdownDescription": "The deployment circuit breaker can only be used for services using the rolling update \\(`ECS`\\) deployment type that are not behind a Classic Load Balancer\\.\nThe **deployment circuit breaker** determines whether a service deployment will fail if the service can't reach a steady state\\. If enabled, a service deployment will transition to a failed state and stop launching new tasks\\. You can also enable Amazon ECS to roll back your service to the last completed deployment after a failure\\. For more information, see [Rolling update](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: [DeploymentCircuitBreaker](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentcircuitbreaker.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentCircuitBreaker" }, "MaximumPercent": { + "markdownDescription": "If a service is using the rolling update \\(`ECS`\\) deployment type, the **maximum percent** parameter represents an upper limit on the number of tasks in a service that are allowed in the `RUNNING` or `PENDING` state during a deployment, as a percentage of the desired number of tasks \\(rounded down to the nearest integer\\), and while any container instances are in the `DRAINING` state if the service contains tasks using the EC2 launch type\\. This parameter enables you to define the deployment batch size\\. For example, if your service has a desired number of four tasks and a maximum percent value of 200%, the scheduler may start four new tasks before stopping the four older tasks \\(provided that the cluster resources required to do this are available\\)\\. The default value for maximum percent is 200%\\. \nIf a service is using the blue/green \\(`CODE_DEPLOY`\\) or `EXTERNAL` deployment types and tasks that use the EC2 launch type, the **maximum percent** value is set to the default value and is used to define the upper limit on the number of the tasks in the service that remain in the `RUNNING` state while the container instances are in the `DRAINING` state\\. If the tasks in the service use the Fargate launch type, the maximum percent value is not used, although it is returned when describing your service\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumPercent", "type": "number" }, "MinimumHealthyPercent": { + "markdownDescription": "If a service is using the rolling update \\(`ECS`\\) deployment type, the **minimum healthy percent** represents a lower limit on the number of tasks in a service that must remain in the `RUNNING` state during a deployment, as a percentage of the desired number of tasks \\(rounded up to the nearest integer\\), and while any container instances are in the `DRAINING` state if the service contains tasks using the EC2 launch type\\. This parameter enables you to deploy without using additional cluster capacity\\. For example, if your service has a desired number of four tasks and a minimum healthy percent of 50%, the scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks\\. Tasks for services that *do not* use a load balancer are considered healthy if they're in the `RUNNING` state; tasks for services that *do* use a load balancer are considered healthy if they're in the `RUNNING` state and they're reported as healthy by the load balancer\\. The default value for minimum healthy percent is 100%\\. \nIf a service is using the blue/green \\(`CODE_DEPLOY`\\) or `EXTERNAL` deployment types and tasks that use the EC2 launch type, the **minimum healthy percent** value is set to the default value and is used to define the lower limit on the number of the tasks in the service that remain in the `RUNNING` state while the container instances are in the `DRAINING` state\\. If the tasks in the service use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinimumHealthyPercent", "type": "number" } }, @@ -53649,6 +65856,8 @@ "additionalProperties": false, "properties": { "Type": { + "markdownDescription": "The deployment controller type to use\\. There are three deployment controller types available: \nECS \nThe rolling update \\(`ECS`\\) deployment type involves replacing the current running version of the container with the latest version\\. The number of containers Amazon ECS adds or removes from the service during a rolling update is controlled by adjusting the minimum and maximum number of healthy tasks allowed during a service deployment, as specified in the [DeploymentConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeploymentConfiguration.html)\\. \nCODE\\_DEPLOY \nThe blue/green \\(`CODE_DEPLOY`\\) deployment type uses the blue/green deployment model powered by AWS CodeDeploy, which allows you to verify a new deployment of a service before sending production traffic to it\\. \nEXTERNAL \nThe external \\(`EXTERNAL`\\) deployment type enables you to use any third\\-party deployment controller for full control over the deployment process for an Amazon ECS service\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `CODE_DEPLOY | ECS | EXTERNAL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -53658,15 +65867,23 @@ "additionalProperties": false, "properties": { "ContainerName": { + "markdownDescription": "The name of the container \\(as it appears in a container definition\\) to associate with the load balancer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerName", "type": "string" }, "ContainerPort": { + "markdownDescription": "The port on the container to associate with the load balancer\\. This port must correspond to a `containerPort` in the task definition the tasks in the service are using\\. For tasks that use the EC2 launch type, the container instance they're launched on must allow ingress traffic on the `hostPort` of the port mapping\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerPort", "type": "number" }, "LoadBalancerName": { + "markdownDescription": "The name of the load balancer to associate with the Amazon ECS service or task set\\. \nA load balancer name is only specified when using a Classic Load Balancer\\. If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerName", "type": "string" }, "TargetGroupArn": { + "markdownDescription": "The full Amazon Resource Name \\(ARN\\) of the Elastic Load Balancing target group or groups associated with a service or task set\\. \nA target group ARN is only specified when using an Application Load Balancer or Network Load Balancer\\. If you're using a Classic Load Balancer, omit the target group ARN\\. \nFor services using the `ECS` deployment controller, you can specify one or multiple target groups\\. For more information, see [Registering Multiple Target Groups with a Service](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nFor services using the `CODE_DEPLOY` deployment controller, you're required to define two target groups for the load balancer\\. For more information, see [Blue/Green Deployment with CodeDeploy](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nIf your service's task definition uses the `awsvpc` network mode, you must choose `ip` as the target type, not `instance`\\. Do this when creating your target groups because tasks that use the `awsvpc` network mode are associated with an elastic network interface, not an Amazon EC2 instance\\. This network mode is required for the Fargate launch type\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroupArn", "type": "string" } }, @@ -53700,7 +65917,9 @@ "additionalProperties": false, "properties": { "AwsvpcConfiguration": { - "$ref": "#/definitions/AWS::ECS::Service.AwsVpcConfiguration" + "$ref": "#/definitions/AWS::ECS::Service.AwsVpcConfiguration", + "markdownDescription": "The VPC subnets and security groups that are associated with a task\\. \nAll specified subnets and security groups must be from the same VPC\\.\n*Required*: No \n*Type*: [AwsVpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-awsvpcconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsvpcConfiguration" } }, "type": "object" @@ -53709,9 +65928,13 @@ "additionalProperties": false, "properties": { "Expression": { + "markdownDescription": "A cluster query language expression to apply to the constraint\\. The expression can have a maximum length of 2000 characters\\. You can't specify an expression if the constraint type is `distinctInstance`\\. For more information, see [Cluster query language](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Expression", "type": "string" }, "Type": { + "markdownDescription": "The type of constraint\\. Use `distinctInstance` to ensure that each task in a particular group is running on a different container instance\\. Use `memberOf` to restrict the selection to a group of valid candidates\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `distinctInstance | memberOf` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -53724,9 +65947,13 @@ "additionalProperties": false, "properties": { "Field": { + "markdownDescription": "The field to apply the placement strategy against\\. For the `spread` placement strategy, valid values are `instanceId` \\(or `host`, which has the same effect\\), or any platform or custom attribute that's applied to a container instance, such as `attribute:ecs.availability-zone`\\. For the `binpack` placement strategy, valid values are `cpu` and `memory`\\. For the `random` placement strategy, this field is not used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Field", "type": "string" }, "Type": { + "markdownDescription": "The type of placement strategy\\. The `random` placement strategy randomly places tasks on available candidates\\. The `spread` placement strategy spreads placement across available candidates evenly based on the `field` parameter\\. The `binpack` strategy places tasks on available candidates that have the least available amount of the resource that's specified with the `field` parameter\\. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory but still enough to run the task\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `binpack | random | spread` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -53818,15 +66045,23 @@ "additionalProperties": false, "properties": { "ContainerName": { + "markdownDescription": "The container name value to be used for your service discovery service\\. It's already specified in the task definition\\. If the task definition that your service task specifies uses the `bridge` or `host` network mode, you must specify a `containerName` and `containerPort` combination from the task definition\\. If the task definition that your service task specifies uses the `awsvpc` network mode and a type SRV DNS record is used, you must specify either a `containerName` and `containerPort` combination or a `port` value\\. However, you can't specify both\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerName", "type": "string" }, "ContainerPort": { + "markdownDescription": "The port value to be used for your service discovery service\\. It's already specified in the task definition\\. If the task definition your service task specifies uses the `bridge` or `host` network mode, you must specify a `containerName` and `containerPort` combination from the task definition\\. If the task definition your service task specifies uses the `awsvpc` network mode and a type SRV DNS record is used, you must specify either a `containerName` and `containerPort` combination or a `port` value\\. However, you can't specify both\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerPort", "type": "number" }, "Port": { + "markdownDescription": "The port value used if your service discovery service specified an SRV record\\. This field might be used if both the `awsvpc` network mode and SRV records are used\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" }, "RegistryArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the service registry\\. The currently supported service registry is AWS Cloud Map\\. For more information, see [CreateService](https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegistryArn", "type": "string" } }, @@ -53871,69 +66106,103 @@ "items": { "$ref": "#/definitions/AWS::ECS::TaskDefinition.ContainerDefinition" }, + "markdownDescription": "A list of container definitions in JSON format that describe the different containers that make up your task\\. For more information about container definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: List of [ContainerDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerDefinitions", "type": "array" }, "Cpu": { + "markdownDescription": "The number of `cpu` units used by the task\\. If you use the EC2 launch type, this field is optional\\. Any value can be used\\. If you use the Fargate launch type, this field is required\\. You must use one of the following values\\. The value that you choose determines your range of valid values for the `memory` parameter\\. \nThe CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate\\. \n+ 256 \\(\\.25 vCPU\\) \\- Available `memory` values: 512 \\(0\\.5 GB\\), 1024 \\(1 GB\\), 2048 \\(2 GB\\)\n+ 512 \\(\\.5 vCPU\\) \\- Available `memory` values: 1024 \\(1 GB\\), 2048 \\(2 GB\\), 3072 \\(3 GB\\), 4096 \\(4 GB\\)\n+ 1024 \\(1 vCPU\\) \\- Available `memory` values: 2048 \\(2 GB\\), 3072 \\(3 GB\\), 4096 \\(4 GB\\), 5120 \\(5 GB\\), 6144 \\(6 GB\\), 7168 \\(7 GB\\), 8192 \\(8 GB\\)\n+ 2048 \\(2 vCPU\\) \\- Available `memory` values: Between 4096 \\(4 GB\\) and 16384 \\(16 GB\\) in increments of 1024 \\(1 GB\\)\n+ 4096 \\(4 vCPU\\) \\- Available `memory` values: Between 8192 \\(8 GB\\) and 30720 \\(30 GB\\) in increments of 1024 \\(1 GB\\)\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Cpu", "type": "string" }, "EphemeralStorage": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.EphemeralStorage" + "$ref": "#/definitions/AWS::ECS::TaskDefinition.EphemeralStorage", + "markdownDescription": "The ephemeral storage settings to use for tasks run with the task definition\\. \n*Required*: No \n*Type*: [EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-ephemeralstorage.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EphemeralStorage" }, "ExecutionRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the task execution role that grants the Amazon ECS container agent permission to make AWS API calls on your behalf\\. The task execution IAM role is required depending on the requirements of your task\\. For more information, see [Amazon ECS task execution IAM role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExecutionRoleArn", "type": "string" }, "Family": { + "markdownDescription": "The name of a family that this task definition is registered to\\. Up to 255 letters \\(uppercase and lowercase\\), numbers, hyphens, and underscores are allowed\\. \nA family groups multiple versions of a task definition\\. Amazon ECS gives the first task definition that you registered to a family a revision number of 1\\. Amazon ECS gives sequential revision numbers to each task definition that you add\\. \nTo use revision numbers when you update a task definition, specify this property\\. If you don't specify a value, AWS CloudFormation generates a new task definition each time that you update it\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Family", "type": "string" }, "InferenceAccelerators": { "items": { "$ref": "#/definitions/AWS::ECS::TaskDefinition.InferenceAccelerator" }, + "markdownDescription": "The Elastic Inference accelerators to use for the containers in the task\\. \n*Required*: No \n*Type*: List of [InferenceAccelerator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-inferenceaccelerator.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InferenceAccelerators", "type": "array" }, "IpcMode": { + "markdownDescription": "The IPC resource namespace to use for the containers in the task\\. The valid values are `host`, `task`, or `none`\\. If `host` is specified, then all containers within the tasks that specified the `host` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance\\. If `task` is specified, all containers within the specified task share the same IPC resources\\. If `none` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance\\. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance\\. For more information, see [IPC settings](https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*\\. \nIf the `host` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose\\. For more information, see [Docker security](https://docs.docker.com/engine/security/security/)\\. \nIf you are setting namespaced kernel parameters using `systemControls` for the containers in the task, the following will apply to your IPC resource namespace\\. For more information, see [System Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n+ For tasks that use the `host` IPC mode, IPC namespace related `systemControls` are not supported\\.\n+ For tasks that use the `task` IPC mode, IPC namespace related `systemControls` will apply to all containers within a task\\.\nThis parameter is not supported for Windows containers or tasks run on AWS Fargate\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `host | none | task` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpcMode", "type": "string" }, "Memory": { + "markdownDescription": "The amount \\(in MiB\\) of memory used by the task\\. \nIf your tasks runs on Amazon EC2 instances, you must specify either a task\\-level memory value or a container\\-level memory value\\. This field is optional and any value can be used\\. If a task\\-level memory value is specified, the container\\-level memory value is optional\\. For more information regarding container\\-level memory and memory reservation, see [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html)\\. \nIf your tasks runs on AWS Fargate, this field is required\\. You must use one of the following values\\. The value you choose determines your range of valid values for the `cpu` parameter\\. \n+ 512 \\(0\\.5 GB\\), 1024 \\(1 GB\\), 2048 \\(2 GB\\) \\- Available `cpu` values: 256 \\(\\.25 vCPU\\)\n+ 1024 \\(1 GB\\), 2048 \\(2 GB\\), 3072 \\(3 GB\\), 4096 \\(4 GB\\) \\- Available `cpu` values: 512 \\(\\.5 vCPU\\)\n+ 2048 \\(2 GB\\), 3072 \\(3 GB\\), 4096 \\(4 GB\\), 5120 \\(5 GB\\), 6144 \\(6 GB\\), 7168 \\(7 GB\\), 8192 \\(8 GB\\) \\- Available `cpu` values: 1024 \\(1 vCPU\\)\n+ Between 4096 \\(4 GB\\) and 16384 \\(16 GB\\) in increments of 1024 \\(1 GB\\) \\- Available `cpu` values: 2048 \\(2 vCPU\\)\n+ Between 8192 \\(8 GB\\) and 30720 \\(30 GB\\) in increments of 1024 \\(1 GB\\) \\- Available `cpu` values: 4096 \\(4 vCPU\\)\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Memory", "type": "string" }, "NetworkMode": { + "markdownDescription": "The Docker networking mode to use for the containers in the task\\. The valid values are `none`, `bridge`, `awsvpc`, and `host`\\. The default Docker network mode is `bridge`\\. If you are using the Fargate launch type, the `awsvpc` network mode is required\\. If you are using the EC2 launch type, any network mode can be used\\. If the network mode is set to `none`, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity\\. The `host` and `awsvpc` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the `bridge` mode\\. \nWith the `host` and `awsvpc` network modes, exposed container ports are mapped directly to the corresponding host port \\(for the `host` network mode\\) or the attached elastic network interface port \\(for the `awsvpc` network mode\\), so you cannot take advantage of dynamic host port mappings\\. \nIf the network mode is `awsvpc`, the task is allocated an elastic network interface, and you must specify a [NetworkConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_NetworkConfiguration.html) value when you create a service or run a task with the task definition\\. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nCurrently, only Amazon ECS\\-optimized AMIs, other Amazon Linux variants with the `ecs-init` package, or AWS Fargate infrastructure support the `awsvpc` network mode\\. \nIf the network mode is `host`, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used\\. \nDocker for Windows uses different network modes than Docker for Linux\\. When you register a task definition with Windows containers, you must not specify a network mode\\. If you use the console to register a task definition with Windows containers, you must choose the `` network mode object\\. \nFor more information, see [Network settings](https://docs.docker.com/engine/reference/run/#network-settings) in the *Docker run reference*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `awsvpc | bridge | host | none` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkMode", "type": "string" }, "PidMode": { + "markdownDescription": "The process namespace to use for the containers in the task\\. The valid values are `host` or `task`\\. If `host` is specified, then all containers within the tasks that specified the `host` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance\\. If `task` is specified, all containers within the specified task share the same process namespace\\. If no value is specified, the default is a private namespace\\. For more information, see [PID settings](https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*\\. \nIf the `host` PID mode is used, be aware that there is a heightened risk of undesired process namespace expose\\. For more information, see [Docker security](https://docs.docker.com/engine/security/security/)\\. \nThis parameter is not supported for Windows containers or tasks run on AWS Fargate\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `host | task` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PidMode", "type": "string" }, "PlacementConstraints": { "items": { "$ref": "#/definitions/AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint" }, + "markdownDescription": "An array of placement constraint objects to use for tasks\\. \nThis parameter isn't supported for tasks run on AWS Fargate\\.\n*Required*: No \n*Type*: List of [TaskDefinitionPlacementConstraint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-taskdefinitionplacementconstraint.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlacementConstraints", "type": "array" }, "ProxyConfiguration": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.ProxyConfiguration" + "$ref": "#/definitions/AWS::ECS::TaskDefinition.ProxyConfiguration", + "markdownDescription": "The `ProxyConfiguration` property specifies the configuration details for the App Mesh proxy\\. \nYour Amazon ECS container instances require at least version 1\\.26\\.0 of the container agent and at least version 1\\.26\\.0\\-1 of the `ecs-init` package to enable a proxy configuration\\. If your container instances are launched from the Amazon ECS\\-optimized AMI version `20190301` or later, then they contain the required versions of the container agent and `ecs-init`\\. For more information, see [Amazon ECS\\-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: [ProxyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-proxyconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProxyConfiguration" }, "RequiresCompatibilities": { "items": { "type": "string" }, + "markdownDescription": "The task launch types the task definition was validated against\\. To determine which task launch types the task definition is validated for, see the `TaskDefinition$compatibilities` parameter\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RequiresCompatibilities", "type": "array" }, "RuntimePlatform": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.RuntimePlatform" + "$ref": "#/definitions/AWS::ECS::TaskDefinition.RuntimePlatform", + "markdownDescription": "The operating system that your tasks definitions run on\\. A platform family is specified only for tasks using the Fargate launch type\\. \nWhen you specify a task definition in a service, this value must match the `runtimePlatform` value of the service\\. \n*Required*: No \n*Type*: [RuntimePlatform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-runtimeplatform.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RuntimePlatform" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The metadata that you apply to the task definition to help you categorize and organize them\\. Each tag consists of a key and an optional value\\. You define both of them\\. \nThe following basic restrictions apply to tags: \n+ Maximum number of tags per resource \\- 50\n+ For each resource, each tag key must be unique, and each tag key can have only one value\\.\n+ Maximum key length \\- 128 Unicode characters in UTF\\-8\n+ Maximum value length \\- 256 Unicode characters in UTF\\-8\n+ If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters\\. Generally allowed characters are: letters, numbers, and spaces representable in UTF\\-8, and the following characters: \\+ \\- = \\. \\_ : / @\\.\n+ Tag keys and values are case\\-sensitive\\.\n+ Do not use `aws:`, `AWS:`, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use\\. You cannot edit or delete tag keys or values with this prefix\\. Tags with this prefix do not count against your tags per resource limit\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TaskRoleArn": { + "markdownDescription": "The short name or full Amazon Resource Name \\(ARN\\) of the AWS Identity and Access Management role that grants containers in the task permission to call AWS APIs on your behalf\\. For more information, see [Amazon ECS Task Role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nIAM roles for tasks on Windows require that the `-EnableTaskIAMRole` option is set when you launch the Amazon ECS\\-optimized Windows AMI\\. Your containers must also run some configuration code to use the feature\\. For more information, see [Windows IAM roles for tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TaskRoleArn", "type": "string" }, "Volumes": { "items": { "$ref": "#/definitions/AWS::ECS::TaskDefinition.Volume" }, + "markdownDescription": "The list of data volume definitions for the task\\. For more information, see [Using data volumes in tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nThe `host` and `sourcePath` parameters aren't supported for tasks run on AWS Fargate\\.\n*Required*: No \n*Type*: List of [Volume](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Volumes", "type": "array" } }, @@ -53963,9 +66232,13 @@ "additionalProperties": false, "properties": { "AccessPointId": { + "markdownDescription": "The Amazon EFS access point ID to use\\. If an access point is specified, the root directory value specified in the `EFSVolumeConfiguration` must either be omitted or set to `/` which will enforce the path set on the EFS access point\\. If an access point is used, transit encryption must be enabled in the `EFSVolumeConfiguration`\\. For more information, see [Working with Amazon EFS Access Points](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html) in the *Amazon Elastic File System User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccessPointId", "type": "string" }, "IAM": { + "markdownDescription": "Determines whether to use the Amazon ECS task IAM role defined in a task definition when mounting the Amazon EFS file system\\. If enabled, transit encryption must be enabled in the `EFSVolumeConfiguration`\\. If this parameter is omitted, the default value of `DISABLED` is used\\. For more information, see [Using Amazon EFS Access Points](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html#efs-volume-accesspoints) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IAM", "type": "string" } }, @@ -53978,174 +66251,252 @@ "items": { "type": "string" }, + "markdownDescription": "The command that's passed to the container\\. This parameter maps to `Cmd` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `COMMAND` parameter to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. For more information, see [https://docs\\.docker\\.com/engine/reference/builder/\\#cmd](https://docs.docker.com/engine/reference/builder/#cmd)\\. If there are multiple arguments, each argument is a separated string in the array\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Command", "type": "array" }, "Cpu": { + "markdownDescription": "The number of `cpu` units reserved for the container\\. This parameter maps to `CpuShares` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--cpu-shares` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThis field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task\\-level `cpu` value\\. \nYou can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](http://aws.amazon.com/ec2/instance-types/) detail page by 1,024\\.\nLinux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount\\. For example, if you run a single\\-container task on a single\\-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time\\. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed\\. Moreover, each container could float to higher CPU usage if the other container was not using it\\. If both tasks were 100% active all of the time, they would be limited to 512 CPU units\\. \nOn Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers\\. For more information, see [CPU share constraint](https://docs.docker.com/engine/reference/run/#cpu-share-constraint) in the Docker documentation\\. The minimum valid CPU share value that the Linux kernel allows is 2\\. However, the CPU parameter isn't required, and you can use CPU values below 2 in your container definitions\\. For CPU values below 2 \\(including null\\), the behavior varies based on your Amazon ECS container agent version: \n+ **Agent versions less than or equal to 1\\.1\\.0:** Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares\\. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares\\.\n+ **Agent versions greater than or equal to 1\\.2\\.0:** Null, zero, and CPU values of 1 are passed to Docker as 2\\.\nOn Windows container instances, the CPU limit is enforced as an absolute limit, or a quota\\. Windows containers only have access to the specified amount of CPU that's described in the task definition\\. A null or zero CPU value is passed to Docker as `0`, which Windows interprets as 1% of one CPU\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Cpu", "type": "number" }, "DependsOn": { "items": { "$ref": "#/definitions/AWS::ECS::TaskDefinition.ContainerDependency" }, + "markdownDescription": "The dependencies defined for container startup and shutdown\\. A container can contain multiple dependencies\\. When a dependency is defined for container startup, for container shutdown it is reversed\\. \nFor tasks using the EC2 launch type, the container instances require at least version 1\\.26\\.0 of the container agent to turn on container dependencies\\. However, we recommend using the latest container agent version\\. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*\\. If you're using an Amazon ECS\\-optimized Linux AMI, your instance needs at least version 1\\.26\\.0\\-1 of the `ecs-init` package\\. If your container instances are launched from version `20190301` or later, then they contain the required versions of the container agent and `ecs-init`\\. For more information, see [Amazon ECS\\-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nFor tasks using the Fargate launch type, the task or service requires the following platforms: \n+ Linux platform version `1.3.0` or later\\.\n+ Windows platform version `1.0.0` or later\\.\n*Required*: No \n*Type*: List of [ContainerDependency](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdependency.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DependsOn", "type": "array" }, "DisableNetworking": { + "markdownDescription": "When this parameter is true, networking is disabled within the container\\. This parameter maps to `NetworkDisabled` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/)\\. \nThis parameter is not supported for Windows containers\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DisableNetworking", "type": "boolean" }, "DnsSearchDomains": { "items": { "type": "string" }, + "markdownDescription": "A list of DNS search domains that are presented to the container\\. This parameter maps to `DnsSearch` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--dns-search` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThis parameter is not supported for Windows containers\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DnsSearchDomains", "type": "array" }, "DnsServers": { "items": { "type": "string" }, + "markdownDescription": "A list of DNS servers that are presented to the container\\. This parameter maps to `Dns` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--dns` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThis parameter is not supported for Windows containers\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DnsServers", "type": "array" }, "DockerLabels": { "additionalProperties": true, + "markdownDescription": "A key/value map of labels to add to the container\\. This parameter maps to `Labels` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--label` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. This parameter requires version 1\\.18 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version --format '{{.Server.APIVersion}}'` \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "DockerLabels", "type": "object" }, "DockerSecurityOptions": { "items": { "type": "string" }, + "markdownDescription": "A list of strings to provide custom labels for SELinux and AppArmor multi\\-level security systems\\. This field isn't valid for containers in tasks using the Fargate launch type\\. \nWith Windows containers, this parameter can be used to reference a credential spec file when configuring a container for Active Directory authentication\\. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nThis parameter maps to `SecurityOpt` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--security-opt` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThe Amazon ECS container agent running on a container instance must register with the `ECS_SELINUX_CAPABLE=true` or `ECS_APPARMOR_CAPABLE=true` environment variables before containers placed on that instance can use these security options\\. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*\\.\nFor more information about valid values, see [Docker Run Security Configuration](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nValid values: \"no\\-new\\-privileges\" \\| \"apparmor:PROFILE\" \\| \"label:value\" \\| \"credentialspec:CredentialSpecFilePath\" \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DockerSecurityOptions", "type": "array" }, "EntryPoint": { "items": { "type": "string" }, + "markdownDescription": "Early versions of the Amazon ECS container agent don't properly handle `entryPoint` parameters\\. If you have problems using `entryPoint`, update your container agent or enter your commands and arguments as `command` array items instead\\.\nThe entry point that's passed to the container\\. This parameter maps to `Entrypoint` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--entrypoint` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. For more information, see [https://docs\\.docker\\.com/engine/reference/builder/\\#entrypoint](https://docs.docker.com/engine/reference/builder/#entrypoint)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EntryPoint", "type": "array" }, "Environment": { "items": { "$ref": "#/definitions/AWS::ECS::TaskDefinition.KeyValuePair" }, + "markdownDescription": "The environment variables to pass to a container\\. This parameter maps to `Env` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--env` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nWe don't recommend that you use plaintext environment variables for sensitive information, such as credential data\\.\n*Required*: No \n*Type*: List of [KeyValuePair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-environment.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Environment", "type": "array" }, "EnvironmentFiles": { "items": { "$ref": "#/definitions/AWS::ECS::TaskDefinition.EnvironmentFile" }, + "markdownDescription": "A list of files containing the environment variables to pass to a container\\. This parameter maps to the `--env-file` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nYou can specify up to ten environment files\\. The file must have a `.env` file extension\\. Each line in an environment file contains an environment variable in `VARIABLE=VALUE` format\\. Lines beginning with `#` are treated as comments and are ignored\\. For more information about the environment variable file syntax, see [Declare default environment variables in file](https://docs.docker.com/compose/env-file/)\\. \nIf there are environment variables specified using the `environment` parameter in a container definition, they take precedence over the variables contained within an environment file\\. If multiple environment files are specified that contain the same variable, they're processed from the top down\\. We recommend that you use unique variable names\\. For more information, see [Specifying Environment Variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: List of [EnvironmentFile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-environmentfile.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnvironmentFiles", "type": "array" }, "Essential": { + "markdownDescription": "If the `essential` parameter of a container is marked as `true`, and that container fails or stops for any reason, all other containers that are part of the task are stopped\\. If the `essential` parameter of a container is marked as `false`, its failure doesn't affect the rest of the containers in a task\\. If this parameter is omitted, a container is assumed to be essential\\. \nAll tasks must have at least one essential container\\. If you have an application that's composed of multiple containers, group containers that are used for a common purpose into components, and separate the different components into multiple task definitions\\. For more information, see [Application Architecture](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Essential", "type": "boolean" }, "ExtraHosts": { "items": { "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostEntry" }, + "markdownDescription": "A list of hostnames and IP address mappings to append to the `/etc/hosts` file on the container\\. This parameter maps to `ExtraHosts` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--add-host` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThis parameter isn't supported for Windows containers or tasks that use the `awsvpc` network mode\\.\n*Required*: No \n*Type*: List of [HostEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-hostentry.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExtraHosts", "type": "array" }, "FirelensConfiguration": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.FirelensConfiguration" + "$ref": "#/definitions/AWS::ECS::TaskDefinition.FirelensConfiguration", + "markdownDescription": "The FireLens configuration for the container\\. This is used to specify and configure a log router for container logs\\. For more information, see [Custom Log Routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: [FirelensConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-firelensconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FirelensConfiguration" }, "HealthCheck": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.HealthCheck" + "$ref": "#/definitions/AWS::ECS::TaskDefinition.HealthCheck", + "markdownDescription": "The container health check command and associated configuration parameters for the container\\. This parameter maps to `HealthCheck` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `HEALTHCHECK` parameter of [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \n*Required*: No \n*Type*: [HealthCheck](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HealthCheck" }, "Hostname": { + "markdownDescription": "The hostname to use for your container\\. This parameter maps to `Hostname` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--hostname` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThe `hostname` parameter is not supported if you're using the `awsvpc` network mode\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Hostname", "type": "string" }, "Image": { + "markdownDescription": "The image used to start a container\\. This string is passed directly to the Docker daemon\\. By default, images in the Docker Hub registry are available\\. Other repositories are specified with either ` repository-url/image:tag ` or ` repository-url/image@digest `\\. Up to 255 letters \\(uppercase and lowercase\\), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed\\. This parameter maps to `Image` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `IMAGE` parameter of [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \n+ When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use\\. However, subsequent updates to a repository image aren't propagated to already running tasks\\.\n+ Images in Amazon ECR repositories can be specified by either using the full `registry/repository:tag` or `registry/repository@digest`\\. For example, `012345678910.dkr.ecr..amazonaws.com/:latest` or `012345678910.dkr.ecr..amazonaws.com/@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE`\\. \n+ Images in official repositories on Docker Hub use a single name \\(for example, `ubuntu` or `mongo`\\)\\.\n+ Images in other repositories on Docker Hub are qualified with an organization name \\(for example, `amazon/amazon-ecs-agent`\\)\\.\n+ Images in other online repositories are qualified further by a domain name \\(for example, `quay.io/assemblyline/ubuntu`\\)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Image", "type": "string" }, "Interactive": { + "markdownDescription": "When this parameter is `true`, you can deploy containerized applications that require `stdin` or a `tty` to be allocated\\. This parameter maps to `OpenStdin` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--interactive` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Interactive", "type": "boolean" }, "Links": { "items": { "type": "string" }, + "markdownDescription": "The `links` parameter allows containers to communicate with each other without the need for port mappings\\. This parameter is only supported if the network mode of a task definition is `bridge`\\. The `name:internalName` construct is analogous to `name:alias` in Docker links\\. Up to 255 letters \\(uppercase and lowercase\\), numbers, underscores, and hyphens are allowed\\. For more information about linking Docker containers, go to [Legacy container links](https://docs.docker.com/network/links/) in the Docker documentation\\. This parameter maps to `Links` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--link` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThis parameter is not supported for Windows containers\\.\nContainers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings\\. Network isolation is achieved on the container instance using security groups and VPC settings\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Links", "type": "array" }, "LinuxParameters": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.LinuxParameters" + "$ref": "#/definitions/AWS::ECS::TaskDefinition.LinuxParameters", + "markdownDescription": "Linux\\-specific modifications that are applied to the container, such as Linux kernel capabilities\\. For more information see [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html)\\. \nThis parameter is not supported for Windows containers\\.\n*Required*: No \n*Type*: [LinuxParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LinuxParameters" }, "LogConfiguration": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.LogConfiguration" + "$ref": "#/definitions/AWS::ECS::TaskDefinition.LogConfiguration", + "markdownDescription": "The log configuration specification for the container\\. \nThis parameter maps to `LogConfig` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--log-driver` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. By default, containers use the same logging driver that the Docker daemon uses\\. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition\\. To use a different logging driver for a container, the log system must be configured properly on the container instance \\(or on a different log server for remote logging options\\)\\. For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.docker.com/engine/admin/logging/overview/) in the Docker documentation\\. \nAmazon ECS currently supports a subset of the logging drivers available to the Docker daemon \\(shown in the [LogConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html) data type\\)\\. Additional log drivers may be available in future releases of the Amazon ECS container agent\\.\nThis parameter requires version 1\\.18 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version --format '{{.Server.APIVersion}}'` \nThe Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the `ECS_AVAILABLE_LOGGING_DRIVERS` environment variable before containers placed on that instance can use these log configuration options\\. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*\\.\n*Required*: No \n*Type*: [LogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-logconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogConfiguration" }, "Memory": { + "markdownDescription": "The amount \\(in MiB\\) of memory to present to the container\\. If your container attempts to exceed the memory specified here, the container is killed\\. The total amount of memory reserved for all containers within a task must be lower than the task `memory` value, if one is specified\\. This parameter maps to `Memory` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--memory` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nIf using the Fargate launch type, this parameter is optional\\. \nIf using the EC2 launch type, you must specify either a task\\-level memory value or a container\\-level memory value\\. If you specify both a container\\-level `memory` and `memoryReservation` value, `memory` must be greater than `memoryReservation`\\. If you specify `memoryReservation`, then that value is subtracted from the available memory resources for the container instance where the container is placed\\. Otherwise, the value of `memory` is used\\. \nThe Docker 20\\.10\\.0 or later daemon reserves a minimum of 6 MiB of memory for a container, so you should not specify fewer than 6 MiB of memory for your containers\\. \nThe Docker 19\\.03\\.13\\-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Memory", "type": "number" }, "MemoryReservation": { + "markdownDescription": "The soft limit \\(in MiB\\) of memory to reserve for the container\\. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit\\. However, your container can consume more memory when it needs to, up to either the hard limit specified with the `memory` parameter \\(if applicable\\), or all of the available memory on the container instance, whichever comes first\\. This parameter maps to `MemoryReservation` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--memory-reservation` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nIf a task\\-level memory value is not specified, you must specify a non\\-zero integer for one or both of `memory` or `memoryReservation` in a container definition\\. If you specify both, `memory` must be greater than `memoryReservation`\\. If you specify `memoryReservation`, then that value is subtracted from the available memory resources for the container instance where the container is placed\\. Otherwise, the value of `memory` is used\\. \nFor example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a `memoryReservation` of 128 MiB, and a `memory` hard limit of 300 MiB\\. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed\\. \nThe Docker daemon reserves a minimum of 4 MiB of memory for a container\\. Therefore, we recommend that you specify fewer than 4 MiB of memory for your containers\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MemoryReservation", "type": "number" }, "MountPoints": { "items": { "$ref": "#/definitions/AWS::ECS::TaskDefinition.MountPoint" }, + "markdownDescription": "The mount points for data volumes in your container\\. \nThis parameter maps to `Volumes` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--volume` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nWindows containers can mount whole directories on the same drive as `$env:ProgramData`\\. Windows containers can't mount directories on a different drive, and mount point can't be across drives\\. \n*Required*: No \n*Type*: List of [MountPoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-mountpoints.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MountPoints", "type": "array" }, "Name": { + "markdownDescription": "The name of a container\\. If you're linking multiple containers together in a task definition, the `name` of one container can be entered in the `links` of another container to connect the containers\\. Up to 255 letters \\(uppercase and lowercase\\), numbers, underscores, and hyphens are allowed\\. This parameter maps to `name` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--name` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "PortMappings": { "items": { "$ref": "#/definitions/AWS::ECS::TaskDefinition.PortMapping" }, + "markdownDescription": "The list of port mappings for the container\\. Port mappings allow containers to access ports on the host container instance to send or receive traffic\\. \nFor task definitions that use the `awsvpc` network mode, you should only specify the `containerPort`\\. The `hostPort` can be left blank or it must be the same value as the `containerPort`\\. \nPort mappings on Windows use the `NetNAT` gateway address rather than `localhost`\\. There is no loopback for port mappings on Windows, so you cannot access a container's mapped port from the host itself\\. \nThis parameter maps to `PortBindings` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--publish` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. If the network mode of a task definition is set to `none`, then you can't specify port mappings\\. If the network mode of a task definition is set to `host`, then host ports must either be undefined or they must match the container port in the port mapping\\. \nAfter a task reaches the `RUNNING` status, manual and automatic host and container port assignments are visible in the **Network Bindings** section of a container description for a selected task in the Amazon ECS console\\. The assignments are also visible in the `networkBindings` section [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) responses\\.\n*Required*: No \n*Type*: List of [PortMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-portmappings.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortMappings", "type": "array" }, "Privileged": { + "markdownDescription": "When this parameter is true, the container is given elevated privileges on the host container instance \\(similar to the `root` user\\)\\. This parameter maps to `Privileged` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--privileged` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThis parameter is not supported for Windows containers or tasks run on AWS Fargate\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Privileged", "type": "boolean" }, "PseudoTerminal": { + "markdownDescription": "When this parameter is `true`, a TTY is allocated\\. This parameter maps to `Tty` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--tty` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PseudoTerminal", "type": "boolean" }, "ReadonlyRootFilesystem": { + "markdownDescription": "When this parameter is true, the container is given read\\-only access to its root file system\\. This parameter maps to `ReadonlyRootfs` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--read-only` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThis parameter is not supported for Windows containers\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReadonlyRootFilesystem", "type": "boolean" }, "RepositoryCredentials": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.RepositoryCredentials" + "$ref": "#/definitions/AWS::ECS::TaskDefinition.RepositoryCredentials", + "markdownDescription": "The private repository authentication credentials to use\\. \n*Required*: No \n*Type*: [RepositoryCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-repositorycredentials.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RepositoryCredentials" }, "ResourceRequirements": { "items": { "$ref": "#/definitions/AWS::ECS::TaskDefinition.ResourceRequirement" }, + "markdownDescription": "The type and amount of a resource to assign to a container\\. The only supported resource is a GPU\\. \n*Required*: No \n*Type*: List of [ResourceRequirement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-resourcerequirement.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceRequirements", "type": "array" }, "Secrets": { "items": { "$ref": "#/definitions/AWS::ECS::TaskDefinition.Secret" }, + "markdownDescription": "The secrets to pass to the container\\. For more information, see [Specifying Sensitive Data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: List of [Secret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-secret.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Secrets", "type": "array" }, "StartTimeout": { + "markdownDescription": "Time duration \\(in seconds\\) to wait before giving up on resolving dependencies for a container\\. For example, you specify two containers in a task definition with containerA having a dependency on containerB reaching a `COMPLETE`, `SUCCESS`, or `HEALTHY` status\\. If a `startTimeout` value is specified for containerB and it doesn't reach the desired status within that time then containerA gives up and not start\\. This results in the task transitioning to a `STOPPED` state\\. \nWhen the `ECS_CONTAINER_START_TIMEOUT` container agent configuration variable is used, it's enforced independently from this start timeout value\\.\nFor tasks using the Fargate launch type, the task or service requires the following platforms: \n+ Linux platform version `1.3.0` or later\\.\n+ Windows platform version `1.0.0` or later\\.\nFor tasks using the EC2 launch type, your container instances require at least version `1.26.0` of the container agent to use a container start timeout value\\. However, we recommend using the latest container agent version\\. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*\\. If you're using an Amazon ECS\\-optimized Linux AMI, your instance needs at least version `1.26.0-1` of the `ecs-init` package\\. If your container instances are launched from version `20190301` or later, then they contain the required versions of the container agent and `ecs-init`\\. For more information, see [Amazon ECS\\-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StartTimeout", "type": "number" }, "StopTimeout": { + "markdownDescription": "Time duration \\(in seconds\\) to wait before the container is forcefully killed if it doesn't exit normally on its own\\. \nFor tasks using the Fargate launch type, the task or service requires the following platforms: \n+ Linux platform version `1.3.0` or later\\.\n+ Windows platform version `1.0.0` or later\\.\nThe max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used\\. \nFor tasks that use the EC2 launch type, if the `stopTimeout` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable `ECS_CONTAINER_STOP_TIMEOUT` is used\\. If neither the `stopTimeout` parameter or the `ECS_CONTAINER_STOP_TIMEOUT` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used\\. Your container instances require at least version 1\\.26\\.0 of the container agent to use a container stop timeout value\\. However, we recommend using the latest container agent version\\. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*\\. If you're using an Amazon ECS\\-optimized Linux AMI, your instance needs at least version 1\\.26\\.0\\-1 of the `ecs-init` package\\. If your container instances are launched from version `20190301` or later, then they contain the required versions of the container agent and `ecs-init`\\. For more information, see [Amazon ECS\\-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StopTimeout", "type": "number" }, "SystemControls": { "items": { "$ref": "#/definitions/AWS::ECS::TaskDefinition.SystemControl" }, + "markdownDescription": "A list of namespaced kernel parameters to set in the container\\. This parameter maps to `Sysctls` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--sysctl` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nWe don't recommended that you specify network\\-related `systemControls` parameters for multiple containers in a single task that also uses either the `awsvpc` or `host` network modes\\. For tasks that use the `awsvpc` network mode, the container that's started last determines which `systemControls` parameters take effect\\. For tasks that use the `host` network mode, it changes the container instance's namespaced kernel parameters as well as the containers\\.\n*Required*: No \n*Type*: List of [SystemControl](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-systemcontrol.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SystemControls", "type": "array" }, "Ulimits": { "items": { "$ref": "#/definitions/AWS::ECS::TaskDefinition.Ulimit" }, + "markdownDescription": "A list of `ulimits` to set in the container\\. This parameter maps to `Ulimits` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--ulimit` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. Valid naming values are displayed in the [Ulimit](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Ulimit.html) data type\\. This parameter requires version 1\\.18 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version --format '{{.Server.APIVersion}}'` \nThis parameter is not supported for Windows containers\\.\n*Required*: No \n*Type*: List of [Ulimit](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-ulimit.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ulimits", "type": "array" }, "User": { + "markdownDescription": "The user to use inside the container\\. This parameter maps to `User` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--user` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nWhen running tasks using the `host` network mode, don't run containers using the root user \\(UID 0\\)\\. We recommend using a non\\-root user for better security\\.\nYou can specify the `user` using the following formats\\. If specifying a UID or GID, you must specify it as a positive integer\\. \n+ `user` \n+ `user:group` \n+ `uid` \n+ `uid:gid` \n+ `user:gid` \n+ `uid:group` \nThis parameter is not supported for Windows containers\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "User", "type": "string" }, "VolumesFrom": { "items": { "$ref": "#/definitions/AWS::ECS::TaskDefinition.VolumeFrom" }, + "markdownDescription": "Data volumes to mount from another container\\. This parameter maps to `VolumesFrom` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--volumes-from` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \n*Required*: No \n*Type*: List of [VolumeFrom](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-volumesfrom.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumesFrom", "type": "array" }, "WorkingDirectory": { + "markdownDescription": "The working directory to run commands inside the container in\\. This parameter maps to `WorkingDir` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--workdir` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WorkingDirectory", "type": "string" } }, @@ -54159,9 +66510,13 @@ "additionalProperties": false, "properties": { "Condition": { + "markdownDescription": "The dependency condition of the container\\. The following are the available conditions and their behavior: \n+ `START` \\- This condition emulates the behavior of links and volumes today\\. It validates that a dependent container is started before permitting other containers to start\\.\n+ `COMPLETE` \\- This condition validates that a dependent container runs to completion \\(exits\\) before permitting other containers to start\\. This can be useful for nonessential containers that run a script and then exit\\. This condition can't be set on an essential container\\.\n+ `SUCCESS` \\- This condition is the same as `COMPLETE`, but it also requires that the container exits with a `zero` status\\. This condition can't be set on an essential container\\.\n+ `HEALTHY` \\- This condition validates that the dependent container passes its Docker health check before permitting other containers to start\\. This requires that the dependent container has health checks configured\\. This condition is confirmed only at task startup\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `COMPLETE | HEALTHY | START | SUCCESS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Condition", "type": "string" }, "ContainerName": { + "markdownDescription": "The name of a container\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerName", "type": "string" } }, @@ -54171,15 +66526,21 @@ "additionalProperties": false, "properties": { "ContainerPath": { + "markdownDescription": "The path inside the container at which to expose the host device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerPath", "type": "string" }, "HostPath": { + "markdownDescription": "The path for the device on the host container instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostPath", "type": "string" }, "Permissions": { "items": { "type": "string" }, + "markdownDescription": "The explicit permissions to provide to the container for the device\\. By default, the container has permissions for `read`, `write`, and `mknod` for the device\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Permissions", "type": "array" } }, @@ -54189,30 +66550,40 @@ "additionalProperties": false, "properties": { "Autoprovision": { + "markdownDescription": "If this value is `true`, the Docker volume is created if it doesn't already exist\\. \nThis field is only used if the `scope` is `shared`\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Autoprovision", "type": "boolean" }, "Driver": { + "markdownDescription": "The Docker volume driver to use\\. The driver value must match the driver name provided by Docker because it is used for task placement\\. If the driver was installed using the Docker plugin CLI, use `docker plugin ls` to retrieve the driver name from your container instance\\. If the driver was installed using another method, use Docker plugin discovery to retrieve the driver name\\. For more information, see [Docker plugin discovery](https://docs.docker.com/engine/extend/plugin_api/#plugin-discovery)\\. This parameter maps to `Driver` in the [Create a volume](https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `xxdriver` option to [docker volume create](https://docs.docker.com/engine/reference/commandline/volume_create/)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Driver", "type": "string" }, "DriverOpts": { "additionalProperties": true, + "markdownDescription": "A map of Docker driver\\-specific options passed through\\. This parameter maps to `DriverOpts` in the [Create a volume](https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `xxopt` option to [docker volume create](https://docs.docker.com/engine/reference/commandline/volume_create/)\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "DriverOpts", "type": "object" }, "Labels": { "additionalProperties": true, + "markdownDescription": "Custom metadata to add to your Docker volume\\. This parameter maps to `Labels` in the [Create a volume](https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `xxlabel` option to [docker volume create](https://docs.docker.com/engine/reference/commandline/volume_create/)\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Labels", "type": "object" }, "Scope": { + "markdownDescription": "The scope for the Docker volume that determines its lifecycle\\. Docker volumes that are scoped to a `task` are automatically provisioned when the task starts and destroyed when the task stops\\. Docker volumes that are scoped as `shared` persist after the task stops\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `shared | task` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Scope", "type": "string" } }, @@ -54222,18 +66593,28 @@ "additionalProperties": false, "properties": { "AuthorizationConfig": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.AuthorizationConfig" + "$ref": "#/definitions/AWS::ECS::TaskDefinition.AuthorizationConfig", + "markdownDescription": "The authorization configuration details for the Amazon EFS file system\\. \n*Required*: No \n*Type*: [AuthorizationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-authorizationconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthorizationConfig" }, "FilesystemId": { + "markdownDescription": "The Amazon EFS file system ID to use\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FilesystemId", "type": "string" }, "RootDirectory": { + "markdownDescription": "The directory within the Amazon EFS file system to mount as the root directory inside the host\\. If this parameter is omitted, the root of the Amazon EFS volume will be used\\. Specifying `/` will have the same effect as omitting this parameter\\. \nIf an EFS access point is specified in the `authorizationConfig`, the root directory parameter must either be omitted or set to `/` which will enforce the path set on the EFS access point\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RootDirectory", "type": "string" }, "TransitEncryption": { + "markdownDescription": "Determines whether to use encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server\\. Transit encryption must be enabled if Amazon EFS IAM authorization is used\\. If this parameter is omitted, the default value of `DISABLED` is used\\. For more information, see [Encrypting Data in Transit](https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html) in the *Amazon Elastic File System User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitEncryption", "type": "string" }, "TransitEncryptionPort": { + "markdownDescription": "The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server\\. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses\\. For more information, see [EFS Mount Helper](https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html) in the *Amazon Elastic File System User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitEncryptionPort", "type": "number" } }, @@ -54246,9 +66627,13 @@ "additionalProperties": false, "properties": { "Type": { + "markdownDescription": "The file type to use\\. The only supported value is `s3`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `s3` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" }, "Value": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon S3 object containing the environment variable file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", "type": "string" } }, @@ -54258,6 +66643,8 @@ "additionalProperties": false, "properties": { "SizeInGiB": { + "markdownDescription": "The total amount, in GiB, of ephemeral storage to set for the task\\. The minimum supported value is `21` GiB and the maximum supported value is `200` GiB\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SizeInGiB", "type": "number" } }, @@ -54268,14 +66655,18 @@ "properties": { "Options": { "additionalProperties": true, + "markdownDescription": "The options to use when configuring the log router\\. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event\\. \n If specified, valid option keys are: \n+ `enable-ecs-log-metadata`, which can be `true` or `false`\n+ `config-file-type`, which can be `s3` or `file`\n+ `config-file-value`, which is either an S3 ARN or a file path\n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Options", "type": "object" }, "Type": { + "markdownDescription": "The log router to use\\. The valid values are `fluentd` or `fluentbit`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `fluentbit | fluentd` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -54288,18 +66679,28 @@ "items": { "type": "string" }, + "markdownDescription": "A string array representing the command that the container runs to determine if it is healthy\\. The string array must start with `CMD` to execute the command arguments directly, or `CMD-SHELL` to run the command with the container's default shell\\. \n When you use the AWS Management Console JSON panel, the AWS Command Line Interface, or the APIs, enclose the list of commands in brackets\\. \n `[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]` \nYou don't need to include the brackets when you use the AWS Management Console\\. \n ` \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ` \nAn exit code of 0 indicates success, and non\\-zero exit code indicates failure\\. For more information, see `HealthCheck` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Command", "type": "array" }, "Interval": { + "markdownDescription": "The time period in seconds between each health check execution\\. You may specify between 5 and 300 seconds\\. The default value is 30 seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Interval", "type": "number" }, "Retries": { + "markdownDescription": "The number of times to retry a failed health check before the container is considered unhealthy\\. You may specify between 1 and 10 retries\\. The default value is 3\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Retries", "type": "number" }, "StartPeriod": { + "markdownDescription": "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries\\. You can specify between 0 and 300 seconds\\. By default, the `startPeriod` is disabled\\. \nIf a health check succeeds within the `startPeriod`, then the container is considered healthy and any subsequent failures count toward the maximum number of retries\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StartPeriod", "type": "number" }, "Timeout": { + "markdownDescription": "The time period in seconds to wait for a health check to succeed before it is considered a failure\\. You may specify between 2 and 60 seconds\\. The default value is 5\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Timeout", "type": "number" } }, @@ -54309,9 +66710,13 @@ "additionalProperties": false, "properties": { "Hostname": { + "markdownDescription": "The hostname to use in the `/etc/hosts` entry\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Hostname", "type": "string" }, "IpAddress": { + "markdownDescription": "The IP address to use in the `/etc/hosts` entry\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpAddress", "type": "string" } }, @@ -54321,6 +66726,8 @@ "additionalProperties": false, "properties": { "SourcePath": { + "markdownDescription": "When the `host` parameter is used, specify a `sourcePath` to declare the path on the host container instance that's presented to the container\\. If this parameter is empty, then the Docker daemon has assigned a host path for you\\. If the `host` parameter contains a `sourcePath` file location, then the data volume persists at the specified location on the host container instance until you delete it manually\\. If the `sourcePath` value doesn't exist on the host container instance, the Docker daemon creates it\\. If the location does exist, the contents of the source path folder are exported\\. \nIf you're using the Fargate launch type, the `sourcePath` parameter is not supported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourcePath", "type": "string" } }, @@ -54330,9 +66737,13 @@ "additionalProperties": false, "properties": { "DeviceName": { + "markdownDescription": "The Elastic Inference accelerator device name\\. The `deviceName` must also be referenced in a container definition as a [ResourceRequirement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-resourcerequirement.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceName", "type": "string" }, "DeviceType": { + "markdownDescription": "The Elastic Inference accelerator type to use\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceType", "type": "string" } }, @@ -54345,12 +66756,16 @@ "items": { "type": "string" }, + "markdownDescription": "The Linux capabilities for the container that have been added to the default configuration provided by Docker\\. This parameter maps to `CapAdd` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--cap-add` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nTasks launched on AWS Fargate only support adding the `SYS_PTRACE` kernel capability\\.\nValid values: `\"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" | \"WAKE_ALARM\"` \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Add", "type": "array" }, "Drop": { "items": { "type": "string" }, + "markdownDescription": "The Linux capabilities for the container that have been removed from the default configuration provided by Docker\\. This parameter maps to `CapDrop` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--cap-drop` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nValid values: `\"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" | \"WAKE_ALARM\"` \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Drop", "type": "array" } }, @@ -54360,9 +66775,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the key\\-value pair\\. For environment variables, this is the name of the environment variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "The value of the key\\-value pair\\. For environment variables, this is the value of the environment variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", "type": "string" } }, @@ -54372,30 +66791,44 @@ "additionalProperties": false, "properties": { "Capabilities": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.KernelCapabilities" + "$ref": "#/definitions/AWS::ECS::TaskDefinition.KernelCapabilities", + "markdownDescription": "The Linux capabilities for the container that are added to or dropped from the default configuration provided by Docker\\. \nFor tasks that use the Fargate launch type, `capabilities` is supported for all platform versions but the `add` parameter is only supported if using platform version 1\\.4\\.0 or later\\.\n*Required*: No \n*Type*: [KernelCapabilities](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-kernelcapabilities.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Capabilities" }, "Devices": { "items": { "$ref": "#/definitions/AWS::ECS::TaskDefinition.Device" }, + "markdownDescription": "Any host devices to expose to the container\\. This parameter maps to `Devices` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--device` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nIf you're using tasks that use the Fargate launch type, the `devices` parameter isn't supported\\.\n*Required*: No \n*Type*: List of [Device](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-device.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Devices", "type": "array" }, "InitProcessEnabled": { + "markdownDescription": "Run an `init` process inside the container that forwards signals and reaps processes\\. This parameter maps to the `--init` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. This parameter requires version 1\\.25 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version --format '{{.Server.APIVersion}}'` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitProcessEnabled", "type": "boolean" }, "MaxSwap": { + "markdownDescription": "The total amount of swap memory \\(in MiB\\) a container can use\\. This parameter will be translated to the `--memory-swap` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration) where the value would be the sum of the container memory plus the `maxSwap` value\\. \nIf a `maxSwap` value of `0` is specified, the container will not use swap\\. Accepted values are `0` or any positive integer\\. If the `maxSwap` parameter is omitted, the container will use the swap configuration for the container instance it is running on\\. A `maxSwap` value must be set for the `swappiness` parameter to be used\\. \nIf you're using tasks that use the Fargate launch type, the `maxSwap` parameter isn't supported\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaxSwap", "type": "number" }, "SharedMemorySize": { + "markdownDescription": "The value for the size \\(in MiB\\) of the `/dev/shm` volume\\. This parameter maps to the `--shm-size` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nIf you are using tasks that use the Fargate launch type, the `sharedMemorySize` parameter is not supported\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SharedMemorySize", "type": "number" }, "Swappiness": { + "markdownDescription": "This allows you to tune a container's memory swappiness behavior\\. A `swappiness` value of `0` will cause swapping to not happen unless absolutely necessary\\. A `swappiness` value of `100` will cause pages to be swapped very aggressively\\. Accepted values are whole numbers between `0` and `100`\\. If the `swappiness` parameter is not specified, a default value of `60` is used\\. If a value is not specified for `maxSwap` then this parameter is ignored\\. This parameter maps to the `--memory-swappiness` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nIf you're using tasks that use the Fargate launch type, the `swappiness` parameter isn't supported\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Swappiness", "type": "number" }, "Tmpfs": { "items": { "$ref": "#/definitions/AWS::ECS::TaskDefinition.Tmpfs" }, + "markdownDescription": "The container path, mount options, and size \\(in MiB\\) of the tmpfs mount\\. This parameter maps to the `--tmpfs` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nIf you're using tasks that use the Fargate launch type, the `tmpfs` parameter isn't supported\\.\n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-tmpfs.html) of [Tmpfs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-tmpfs.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tmpfs", "type": "array" } }, @@ -54405,21 +66838,27 @@ "additionalProperties": false, "properties": { "LogDriver": { + "markdownDescription": "The log driver to use for the container\\. \nFor tasks on AWS Fargate, the supported log drivers are `awslogs`, `splunk`, and `awsfirelens`\\. \nFor tasks hosted on Amazon EC2 instances, the supported log drivers are `awslogs`, `fluentd`, `gelf`, `json-file`, `journald`, `logentries`,`syslog`, `splunk`, and `awsfirelens`\\. \nFor more information about using the `awslogs` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nFor more information about using the `awsfirelens` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nIf you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver\\. We encourage you to submit pull requests for changes that you would like to have included\\. However, we don't currently provide support for running modified copies of this software\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `awsfirelens | awslogs | fluentd | gelf | journald | json-file | splunk | syslog` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogDriver", "type": "string" }, "Options": { "additionalProperties": true, + "markdownDescription": "The configuration options to send to the log driver\\. This parameter requires version 1\\.19 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version --format '{{.Server.APIVersion}}'` \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Options", "type": "object" }, "SecretOptions": { "items": { "$ref": "#/definitions/AWS::ECS::TaskDefinition.Secret" }, + "markdownDescription": "The secrets to pass to the log configuration\\. For more information, see [Specifying Sensitive Data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: List of [Secret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-secret.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecretOptions", "type": "array" } }, @@ -54432,12 +66871,18 @@ "additionalProperties": false, "properties": { "ContainerPath": { + "markdownDescription": "The path on the container to mount the host volume at\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerPath", "type": "string" }, "ReadOnly": { + "markdownDescription": "If this value is `true`, the container has read\\-only access to the volume\\. If this value is `false`, then the container can write to the volume\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReadOnly", "type": "boolean" }, "SourceVolume": { + "markdownDescription": "The name of the volume to mount\\. Must be a volume name referenced in the `name` parameter of task definition `volume`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceVolume", "type": "string" } }, @@ -54450,18 +66895,24 @@ "type": "string" }, "ContainerPort": { + "markdownDescription": "The port number on the container that's bound to the user\\-specified or automatically assigned host port\\. \nIf you use containers in a task with the `awsvpc` or `host` network mode, specify the exposed ports using `containerPort`\\. \nIf you use containers in a task with the `bridge` network mode and you specify a container port and not a host port, your container automatically receives a host port in the ephemeral port range\\. For more information, see `hostPort`\\. Port mappings that are automatically assigned in this way do not count toward the 100 reserved ports limit of a container instance\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerPort", "type": "number" }, "ContainerPortRange": { "type": "string" }, "HostPort": { + "markdownDescription": "The port number on the container instance to reserve for your container\\. \nIf you are using containers in a task with the `awsvpc` or `host` network mode, the `hostPort` can either be left blank or set to the same value as the `containerPort`\\. \nIf you are using containers in a task with the `bridge` network mode, you can specify a non\\-reserved host port for your container port mapping, or you can omit the `hostPort` \\(or set it to `0`\\) while specifying a `containerPort` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version\\. \nThe default ephemeral port range for Docker version 1\\.6\\.0 and later is listed on the instance under `/proc/sys/net/ipv4/ip_local_port_range`\\. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 is used\\. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment\\. In general, ports below 32768 are outside of the ephemeral port range\\. \nThe default ephemeral port range from 49153 through 65535 is always used for Docker versions before 1\\.6\\.0\\.\nThe default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678\\-51680\\. Any host port that was previously specified in a running task is also reserved while the task is running \\(after a task stops, the host port is released\\)\\. The current reserved ports are displayed in the `remainingResources` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output\\. A container instance can have up to 100 reserved ports at a time, including the default reserved ports\\. Automatically assigned ports don't count toward the 100 reserved ports limit\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostPort", "type": "number" }, "Name": { "type": "string" }, "Protocol": { + "markdownDescription": "The protocol used for the port mapping\\. Valid values are `tcp` and `udp`\\. The default is `tcp`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `tcp | udp` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Protocol", "type": "string" } }, @@ -54471,15 +66922,21 @@ "additionalProperties": false, "properties": { "ContainerName": { + "markdownDescription": "The name of the container that will serve as the App Mesh proxy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerName", "type": "string" }, "ProxyConfigurationProperties": { "items": { "$ref": "#/definitions/AWS::ECS::TaskDefinition.KeyValuePair" }, + "markdownDescription": "The set of network configuration parameters to provide the Container Network Interface \\(CNI\\) plugin, specified as key\\-value pairs\\. \n+ `IgnoredUID` \\- \\(Required\\) The user ID \\(UID\\) of the proxy container as defined by the `user` parameter in a container definition\\. This is used to ensure the proxy ignores its own traffic\\. If `IgnoredGID` is specified, this field can be empty\\.\n+ `IgnoredGID` \\- \\(Required\\) The group ID \\(GID\\) of the proxy container as defined by the `user` parameter in a container definition\\. This is used to ensure the proxy ignores its own traffic\\. If `IgnoredUID` is specified, this field can be empty\\.\n+ `AppPorts` \\- \\(Required\\) The list of ports that the application uses\\. Network traffic to these ports is forwarded to the `ProxyIngressPort` and `ProxyEgressPort`\\.\n+ `ProxyIngressPort` \\- \\(Required\\) Specifies the port that incoming traffic to the `AppPorts` is directed to\\.\n+ `ProxyEgressPort` \\- \\(Required\\) Specifies the port that outgoing traffic from the `AppPorts` is directed to\\.\n+ `EgressIgnoredPorts` \\- \\(Required\\) The egress traffic going to the specified ports is ignored and not redirected to the `ProxyEgressPort`\\. It can be an empty list\\.\n+ `EgressIgnoredIPs` \\- \\(Required\\) The egress traffic going to the specified IP addresses is ignored and not redirected to the `ProxyEgressPort`\\. It can be an empty list\\.\n*Required*: No \n*Type*: List of [KeyValuePair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-environment.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProxyConfigurationProperties", "type": "array" }, "Type": { + "markdownDescription": "The proxy type\\. The only supported value is `APPMESH`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `APPMESH` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -54492,6 +66949,8 @@ "additionalProperties": false, "properties": { "CredentialsParameter": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the secret containing the private repository credentials\\. \nWhen you use the Amazon ECS API, AWS CLI, or AWS SDK, if the secret exists in the same Region as the task that you're launching then you can use either the full ARN or the name of the secret\\. When you use the AWS Management Console, you must specify the full ARN of the secret\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CredentialsParameter", "type": "string" } }, @@ -54501,9 +66960,13 @@ "additionalProperties": false, "properties": { "Type": { + "markdownDescription": "The type of resource to assign to a container\\. The supported values are `GPU` or `InferenceAccelerator`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GPU | InferenceAccelerator` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" }, "Value": { + "markdownDescription": "The value for the specified resource type\\. \nIf the `GPU` type is used, the value is the number of physical `GPUs` the Amazon ECS container agent will reserve for the container\\. The number of GPUs reserved for all containers in a task should not exceed the number of available GPUs on the container instance the task is launched on\\. \nIf the `InferenceAccelerator` type is used, the `value` should match the `DeviceName` for an [InferenceAccelerator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-inferenceaccelerator.html) specified in a task definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", "type": "string" } }, @@ -54517,9 +66980,13 @@ "additionalProperties": false, "properties": { "CpuArchitecture": { + "markdownDescription": "The CPU architecture\\. \nYou can run your Linux tasks on an ARM\\-based platform by setting the value to `ARM64`\\. This option is avaiable for tasks that run on Linuc Amazon EC2 instance or Linux containers on Fargate\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ARM64 | X86_64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CpuArchitecture", "type": "string" }, "OperatingSystemFamily": { + "markdownDescription": "The operating system\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `LINUX | WINDOWS_SERVER_2004_CORE | WINDOWS_SERVER_2016_FULL | WINDOWS_SERVER_2019_CORE | WINDOWS_SERVER_2019_FULL | WINDOWS_SERVER_2022_CORE | WINDOWS_SERVER_2022_FULL | WINDOWS_SERVER_20H2_CORE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OperatingSystemFamily", "type": "string" } }, @@ -54529,9 +66996,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the secret\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "ValueFrom": { + "markdownDescription": "The secret to expose to the container\\. The supported values are either the full ARN of the AWS Secrets Manager secret or the full ARN of the parameter in the SSM Parameter Store\\. \nFor information about the require AWS Identity and Access Management permissions, see [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html#secrets-iam) \\(for Secrets Manager\\) or [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-parameters.html) \\(for Systems Manager Parameter store\\) in the *Amazon Elastic Container Service Developer Guide*\\. \nIf the SSM Parameter Store parameter exists in the same Region as the task you're launching, then you can use either the full ARN or name of the parameter\\. If the parameter exists in a different Region, then the full ARN must be specified\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ValueFrom", "type": "string" } }, @@ -54545,9 +67016,13 @@ "additionalProperties": false, "properties": { "Namespace": { + "markdownDescription": "The namespaced kernel parameter to set a `value` for\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Namespace", "type": "string" }, "Value": { + "markdownDescription": "The value for the namespaced kernel parameter that's specified in `namespace`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", "type": "string" } }, @@ -54557,9 +67032,13 @@ "additionalProperties": false, "properties": { "Expression": { + "markdownDescription": "A cluster query language expression to apply to the constraint\\. For more information, see [Cluster query language](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Expression", "type": "string" }, "Type": { + "markdownDescription": "The type of constraint\\. The `MemberOf` constraint restricts selection to be from a group of valid candidates\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `memberOf` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -54572,15 +67051,21 @@ "additionalProperties": false, "properties": { "ContainerPath": { + "markdownDescription": "The absolute file path where the tmpfs volume is to be mounted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerPath", "type": "string" }, "MountOptions": { "items": { "type": "string" }, + "markdownDescription": "The list of tmpfs volume mount options\\. \nValid values: `\"defaults\" | \"ro\" | \"rw\" | \"suid\" | \"nosuid\" | \"dev\" | \"nodev\" | \"exec\" | \"noexec\" | \"sync\" | \"async\" | \"dirsync\" | \"remount\" | \"mand\" | \"nomand\" | \"atime\" | \"noatime\" | \"diratime\" | \"nodiratime\" | \"bind\" | \"rbind\" | \"unbindable\" | \"runbindable\" | \"private\" | \"rprivate\" | \"shared\" | \"rshared\" | \"slave\" | \"rslave\" | \"relatime\" | \"norelatime\" | \"strictatime\" | \"nostrictatime\" | \"mode\" | \"uid\" | \"gid\" | \"nr_inodes\" | \"nr_blocks\" | \"mpol\"` \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MountOptions", "type": "array" }, "Size": { + "markdownDescription": "The maximum size \\(in MiB\\) of the tmpfs volume\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Size", "type": "number" } }, @@ -54593,12 +67078,18 @@ "additionalProperties": false, "properties": { "HardLimit": { + "markdownDescription": "The hard limit for the ulimit type\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HardLimit", "type": "number" }, "Name": { + "markdownDescription": "The `type` of the `ulimit`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `core | cpu | data | fsize | locks | memlock | msgqueue | nice | nofile | nproc | rss | rtprio | rttime | sigpending | stack` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "SoftLimit": { + "markdownDescription": "The soft limit for the ulimit type\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SoftLimit", "type": "number" } }, @@ -54613,15 +67104,23 @@ "additionalProperties": false, "properties": { "DockerVolumeConfiguration": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.DockerVolumeConfiguration" + "$ref": "#/definitions/AWS::ECS::TaskDefinition.DockerVolumeConfiguration", + "markdownDescription": "This parameter is specified when you use Docker volumes\\. \nWindows containers only support the use of the `local` driver\\. To use bind mounts, specify the `host` parameter instead\\. \nDocker volumes aren't supported by tasks run on AWS Fargate\\.\n*Required*: No \n*Type*: [DockerVolumeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DockerVolumeConfiguration" }, "EFSVolumeConfiguration": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.EFSVolumeConfiguration" + "$ref": "#/definitions/AWS::ECS::TaskDefinition.EFSVolumeConfiguration", + "markdownDescription": "This parameter is specified when you use an Amazon Elastic File System file system for task storage\\. \n*Required*: No \n*Type*: [EFSVolumeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-efsvolumeconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EFSVolumeConfiguration" }, "Host": { - "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostVolumeProperties" + "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostVolumeProperties", + "markdownDescription": "This parameter is specified when you use bind mount host volumes\\. The contents of the `host` parameter determine whether your bind mount host volume persists on the host container instance and where it's stored\\. If the `host` parameter is empty, then the Docker daemon assigns a host path for your data volume\\. However, the data isn't guaranteed to persist after the containers that are associated with it stop running\\. \nWindows containers can mount whole directories on the same drive as `$env:ProgramData`\\. Windows containers can't mount directories on a different drive, and mount point can't be across drives\\. For example, you can mount `C:\\my\\path:C:\\my\\path` and `D:\\:D:\\`, but not `D:\\my\\path:C:\\my\\path` or `D:\\:C:\\my\\path`\\. \n*Required*: No \n*Type*: [HostVolumeProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes-host.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Host" }, "Name": { + "markdownDescription": "The name of the volume\\. Up to 255 letters \\(uppercase and lowercase\\), numbers, underscores, and hyphens are allowed\\. This name is referenced in the `sourceVolume` parameter of container definition `mountPoints`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" } }, @@ -54631,9 +67130,13 @@ "additionalProperties": false, "properties": { "ReadOnly": { + "markdownDescription": "If this value is `true`, the container has read\\-only access to the volume\\. If this value is `false`, then the container can write to the volume\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReadOnly", "type": "boolean" }, "SourceContainer": { + "markdownDescription": "The name of another container within the same task definition to mount volumes from\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceContainer", "type": "string" } }, @@ -54675,39 +67178,59 @@ "additionalProperties": false, "properties": { "Cluster": { + "markdownDescription": "The short name or full Amazon Resource Name \\(ARN\\) of the cluster that hosts the service to create the task set in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Cluster", "type": "string" }, "ExternalId": { + "markdownDescription": "An optional non\\-unique tag that identifies this task set in external systems\\. If the task set is associated with a service discovery registry, the tasks in this task set will have the `ECS_TASK_SET_EXTERNAL_ID` AWS Cloud Map attribute set to the provided value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExternalId", "type": "string" }, "LaunchType": { + "markdownDescription": "The launch type that new tasks in the task set uses\\. For more information, see [Amazon ECS Launch Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nIf a `launchType` is specified, the `capacityProviderStrategy` parameter must be omitted\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `EC2 | EXTERNAL | FARGATE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchType", "type": "string" }, "LoadBalancers": { "items": { "$ref": "#/definitions/AWS::ECS::TaskSet.LoadBalancer" }, + "markdownDescription": "A load balancer object representing the load balancer to use with the task set\\. The supported load balancer types are either an Application Load Balancer or a Network Load Balancer\\. \n*Required*: No \n*Type*: List of [LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-loadbalancer.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoadBalancers", "type": "array" }, "NetworkConfiguration": { - "$ref": "#/definitions/AWS::ECS::TaskSet.NetworkConfiguration" + "$ref": "#/definitions/AWS::ECS::TaskSet.NetworkConfiguration", + "markdownDescription": "The network configuration for the task set\\. \n*Required*: No \n*Type*: [NetworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-networkconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkConfiguration" }, "PlatformVersion": { + "markdownDescription": "The platform version that the tasks in the task set uses\\. A platform version is specified only for tasks using the Fargate launch type\\. If one isn't specified, the `LATEST` platform version is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlatformVersion", "type": "string" }, "Scale": { - "$ref": "#/definitions/AWS::ECS::TaskSet.Scale" + "$ref": "#/definitions/AWS::ECS::TaskSet.Scale", + "markdownDescription": "A floating\\-point percentage of your desired number of tasks to place and keep running in the task set\\. \n*Required*: No \n*Type*: [Scale](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-scale.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scale" }, "Service": { + "markdownDescription": "The short name or full Amazon Resource Name \\(ARN\\) of the service to create the task set in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Service", "type": "string" }, "ServiceRegistries": { "items": { "$ref": "#/definitions/AWS::ECS::TaskSet.ServiceRegistry" }, + "markdownDescription": "The details of the service discovery registries to assign to this task set\\. For more information, see [Service Discovery](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html)\\. \n*Required*: No \n*Type*: List of [ServiceRegistry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-serviceregistry.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceRegistries", "type": "array" }, "TaskDefinition": { + "markdownDescription": "The task definition for the tasks in the task set to use\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TaskDefinition", "type": "string" } }, @@ -54743,18 +67266,24 @@ "additionalProperties": false, "properties": { "AssignPublicIp": { + "markdownDescription": "Whether the task's elastic network interface receives a public IP address\\. The default value is `DISABLED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AssignPublicIp", "type": "string" }, "SecurityGroups": { "items": { "type": "string" }, + "markdownDescription": "The IDs of the security groups associated with the task or service\\. If you don't specify a security group, the default security group for the VPC is used\\. There's a limit of 5 security groups that can be specified per `AwsVpcConfiguration`\\. \nAll specified security groups must be from the same VPC\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroups", "type": "array" }, "Subnets": { "items": { "type": "string" }, + "markdownDescription": "The IDs of the subnets associated with the task or service\\. There's a limit of 16 subnets that can be specified per `AwsVpcConfiguration`\\. \nAll specified subnets must be from the same VPC\\.\n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subnets", "type": "array" } }, @@ -54767,15 +67296,23 @@ "additionalProperties": false, "properties": { "ContainerName": { + "markdownDescription": "The name of the container \\(as it appears in a container definition\\) to associate with the load balancer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerName", "type": "string" }, "ContainerPort": { + "markdownDescription": "The port on the container to associate with the load balancer\\. This port must correspond to a `containerPort` in the task definition the tasks in the service are using\\. For tasks that use the EC2 launch type, the container instance they're launched on must allow ingress traffic on the `hostPort` of the port mapping\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerPort", "type": "number" }, "LoadBalancerName": { + "markdownDescription": "The name of the load balancer to associate with the Amazon ECS service or task set\\. \nA load balancer name is only specified when using a Classic Load Balancer\\. If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoadBalancerName", "type": "string" }, "TargetGroupArn": { + "markdownDescription": "The full Amazon Resource Name \\(ARN\\) of the Elastic Load Balancing target group or groups associated with a service or task set\\. \nA target group ARN is only specified when using an Application Load Balancer or Network Load Balancer\\. If you're using a Classic Load Balancer, omit the target group ARN\\. \nFor services using the `ECS` deployment controller, you can specify one or multiple target groups\\. For more information, see [Registering Multiple Target Groups with a Service](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nFor services using the `CODE_DEPLOY` deployment controller, you're required to define two target groups for the load balancer\\. For more information, see [Blue/Green Deployment with CodeDeploy](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nIf your service's task definition uses the `awsvpc` network mode, you must choose `ip` as the target type, not `instance`\\. Do this when creating your target groups because tasks that use the `awsvpc` network mode are associated with an elastic network interface, not an Amazon EC2 instance\\. This network mode is required for the Fargate launch type\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetGroupArn", "type": "string" } }, @@ -54785,7 +67322,9 @@ "additionalProperties": false, "properties": { "AwsVpcConfiguration": { - "$ref": "#/definitions/AWS::ECS::TaskSet.AwsVpcConfiguration" + "$ref": "#/definitions/AWS::ECS::TaskSet.AwsVpcConfiguration", + "markdownDescription": "The VPC subnets and security groups that are associated with a task\\. \nAll specified subnets and security groups must be from the same VPC\\.\n*Required*: No \n*Type*: [AwsVpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-awsvpcconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AwsVpcConfiguration" } }, "type": "object" @@ -54794,9 +67333,13 @@ "additionalProperties": false, "properties": { "Unit": { + "markdownDescription": "The unit of measure for the scale value\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PERCENT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", "type": "string" }, "Value": { + "markdownDescription": "The value, specified as a percent total of a service's `desiredCount`, to scale the task set\\. Accepted values are numbers between 0 and 100\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "number" } }, @@ -54806,15 +67349,23 @@ "additionalProperties": false, "properties": { "ContainerName": { + "markdownDescription": "The container name value to be used for your service discovery service\\. It's already specified in the task definition\\. If the task definition that your service task specifies uses the `bridge` or `host` network mode, you must specify a `containerName` and `containerPort` combination from the task definition\\. If the task definition that your service task specifies uses the `awsvpc` network mode and a type SRV DNS record is used, you must specify either a `containerName` and `containerPort` combination or a `port` value\\. However, you can't specify both\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerName", "type": "string" }, "ContainerPort": { + "markdownDescription": "The port value to be used for your service discovery service\\. It's already specified in the task definition\\. If the task definition your service task specifies uses the `bridge` or `host` network mode, you must specify a `containerName` and `containerPort` combination from the task definition\\. If the task definition your service task specifies uses the `awsvpc` network mode and a type SRV DNS record is used, you must specify either a `containerName` and `containerPort` combination or a `port` value\\. However, you can't specify both\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerPort", "type": "number" }, "Port": { + "markdownDescription": "The port value used if your service discovery service specified an SRV record\\. This field might be used if both the `awsvpc` network mode and SRV records are used\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Port", "type": "number" }, "RegistryArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the service registry\\. The currently supported service registry is AWS Cloud Map\\. For more information, see [CreateService](https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RegistryArn", "type": "string" } }, @@ -54859,19 +67410,29 @@ "items": { "$ref": "#/definitions/AWS::EFS::AccessPoint.AccessPointTag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [AccessPointTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-accesspointtag.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessPointTags", "type": "array" }, "ClientToken": { + "markdownDescription": "The opaque string specified in the request to ensure idempotent creation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientToken", "type": "string" }, "FileSystemId": { + "markdownDescription": "The ID of the EFS file system that the access point applies to\\. Accepts only the ID format for input when specifying a file system, for example `fs-0123456789abcedf2`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:file-system/fs-[0-9a-f]{8,40}|fs-[0-9a-f]{8,40})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FileSystemId", "type": "string" }, "PosixUser": { - "$ref": "#/definitions/AWS::EFS::AccessPoint.PosixUser" + "$ref": "#/definitions/AWS::EFS::AccessPoint.PosixUser", + "markdownDescription": "The full POSIX identity, including the user ID, group ID, and secondary group IDs on the access point that is used for all file operations by NFS clients using the access point\\. \n*Required*: No \n*Type*: [PosixUser](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-posixuser.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PosixUser" }, "RootDirectory": { - "$ref": "#/definitions/AWS::EFS::AccessPoint.RootDirectory" + "$ref": "#/definitions/AWS::EFS::AccessPoint.RootDirectory", + "markdownDescription": "The directory on the Amazon EFS file system that the access point exposes as the root directory to NFS clients using the access point\\. \n*Required*: No \n*Type*: [RootDirectory](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-rootdirectory.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RootDirectory" } }, "required": [ @@ -54904,9 +67465,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The tag key \\(String\\)\\. The key can't start with `aws:`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^(?![aA]{1}[wW]{1}[sS]{1}:)([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]+)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The value of the tag key\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -54916,12 +67481,18 @@ "additionalProperties": false, "properties": { "OwnerGid": { + "markdownDescription": "Specifies the POSIX group ID to apply to the `RootDirectory`\\. Accepts values from 0 to 2^32 \\(4294967295\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OwnerGid", "type": "string" }, "OwnerUid": { + "markdownDescription": "Specifies the POSIX user ID to apply to the `RootDirectory`\\. Accepts values from 0 to 2^32 \\(4294967295\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OwnerUid", "type": "string" }, "Permissions": { + "markdownDescription": "Specifies the POSIX permissions to apply to the `RootDirectory`, in the format of an octal number representing the file's mode bits\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `4` \n*Pattern*: `^[0-7]{3,4}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Permissions", "type": "string" } }, @@ -54936,15 +67507,21 @@ "additionalProperties": false, "properties": { "Gid": { + "markdownDescription": "The POSIX group ID used for all file system operations using this access point\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Gid", "type": "string" }, "SecondaryGids": { "items": { "type": "string" }, + "markdownDescription": "Secondary POSIX group IDs used for all file system operations using this access point\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `16` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecondaryGids", "type": "array" }, "Uid": { + "markdownDescription": "The POSIX user ID used for all file system operations using this access point\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Uid", "type": "string" } }, @@ -54958,9 +67535,13 @@ "additionalProperties": false, "properties": { "CreationInfo": { - "$ref": "#/definitions/AWS::EFS::AccessPoint.CreationInfo" + "$ref": "#/definitions/AWS::EFS::AccessPoint.CreationInfo", + "markdownDescription": "\\(Optional\\) Specifies the POSIX IDs and permissions to apply to the access point's `RootDirectory`\\. If the `RootDirectory` > `Path` specified does not exist, EFS creates the root directory using the `CreationInfo` settings when a client connects to an access point\\. When specifying the `CreationInfo`, you must provide values for all properties\\. \nIf you do not provide `CreationInfo` and the specified `RootDirectory` > `Path` does not exist, attempts to mount the file system using the access point will fail\\.\n*Required*: No \n*Type*: [CreationInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-creationinfo.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CreationInfo" }, "Path": { + "markdownDescription": "Specifies the path on the EFS file system to expose as the root directory to NFS clients using the access point to access the EFS file system\\. A path can have up to four subdirectories\\. If the specified path does not exist, you are required to provide the `CreationInfo`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^(\\/|(\\/(?!\\.)+[^$#<>;`|&?{}^*/\\n]+){1,4})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Path", "type": "string" } }, @@ -55002,42 +67583,64 @@ "additionalProperties": false, "properties": { "AvailabilityZoneName": { + "markdownDescription": "Used to create a file system that uses One Zone storage classes\\. It specifies the AWS Availability Zone in which to create the file system\\. Use the format `us-east-1a` to specify the Availability Zone\\. For more information about One Zone storage classes, see [Using EFS storage classes](https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html) in the *Amazon EFS User Guide*\\. \nOne Zone storage classes are not available in all Availability Zones in AWS Regions where Amazon EFS is available\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZoneName", "type": "string" }, "BackupPolicy": { - "$ref": "#/definitions/AWS::EFS::FileSystem.BackupPolicy" + "$ref": "#/definitions/AWS::EFS::FileSystem.BackupPolicy", + "markdownDescription": "Use the `BackupPolicy` to turn automatic backups on or off for the file system\\. \n*Required*: No \n*Type*: [BackupPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-backuppolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackupPolicy" }, "BypassPolicyLockoutSafetyCheck": { + "markdownDescription": "\\(Optional\\) Use this boolean to use or bypass the `FileSystemPolicy` lockout safety check\\. The policy lockout safety check determines if the `FileSystemPolicy` in the request will lock out the IAM principal making the request, preventing them from making future `PutFileSystemPolicy` requests on the file system\\. Set `BypassPolicyLockoutSafetyCheck` to `True` only when you intend to prevent the IAM principal that is making the request from making a subsequent `PutFileSystemPolicy` request on the file system\\. The default value is `False`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BypassPolicyLockoutSafetyCheck", "type": "boolean" }, "Encrypted": { + "markdownDescription": "A Boolean value that, if true, creates an encrypted file system\\. When creating an encrypted file system, you have the option of specifying a KmsKeyId for an existing AWS KMS key\\. If you don't specify a KMS key, then the default KMS key for Amazon EFS, `/aws/elasticfilesystem`, is used to protect the encrypted file system\\. \n*Required*: Conditional \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Encrypted", "type": "boolean" }, "FileSystemPolicy": { + "markdownDescription": "The `FileSystemPolicy` for the EFS file system\\. A file system policy is an IAM resource policy used to control NFS access to an EFS file system\\. For more information, see [Using IAM to control NFS access to Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html) in the *Amazon EFS User Guide*\\. \n*Required*: No \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `20000` \n*Pattern*: `[\\s\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileSystemPolicy", "type": "object" }, "FileSystemTags": { "items": { "$ref": "#/definitions/AWS::EFS::FileSystem.ElasticFileSystemTag" }, + "markdownDescription": "Use to create one or more tags associated with the file system\\. Each tag is a user\\-defined key\\-value pair\\. Name your file system on creation by including a `\"Key\":\"Name\",\"Value\":\"{value}\"` key\\-value pair\\. Each key must be unique\\. For more information, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the * AWS General Reference Guide*\\. \n*Required*: No \n*Type*: List of [ElasticFileSystemTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-elasticfilesystemtag.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileSystemTags", "type": "array" }, "KmsKeyId": { + "markdownDescription": "The ID of the AWS KMS key to be used to protect the encrypted file system\\. This parameter is only required if you want to use a nondefault KMS key\\. If this parameter is not specified, the default KMS key for Amazon EFS is used\\. This ID can be in one of the following formats: \n+ Key ID \\- A unique identifier of the key, for example `1234abcd-12ab-34cd-56ef-1234567890ab`\\.\n+ ARN \\- An Amazon Resource Name \\(ARN\\) for the key, for example `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`\\.\n+ Key alias \\- A previously created display name for a key, for example `alias/projectKey1`\\.\n+ Key alias ARN \\- An ARN for a key alias, for example `arn:aws:kms:us-west-2:444455556666:alias/projectKey1`\\.\nIf `KmsKeyId` is specified, the `Encrypted` parameter must be set to true\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `^([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|mrk-[0-9a-f]{32}|alias/[a-zA-Z0-9/_-]+|(arn:aws[-a-z]*:kms:[a-z0-9-]+:\\d{12}:((key/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(key/mrk-[0-9a-f]{32})|(alias/[a-zA-Z0-9/_-]+))))$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" }, "LifecyclePolicies": { "items": { "$ref": "#/definitions/AWS::EFS::FileSystem.LifecyclePolicy" }, + "markdownDescription": "A list of one LifecyclePolicy that tells EFS lifecycle management when to transition files to the Infrequent Access \\(IA\\) storage classes\\. \n*Required*: No \n*Type*: List of [LifecyclePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-lifecyclepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LifecyclePolicies", "type": "array" }, "PerformanceMode": { + "markdownDescription": "The performance mode of the file system\\. We recommend `generalPurpose` performance mode for most file systems\\. File systems using the `maxIO` performance mode can scale to higher levels of aggregate throughput and operations per second with a tradeoff of slightly higher latencies for most file operations\\. The performance mode can't be changed after the file system has been created\\. \nThe `maxIO` mode is not supported on file systems using One Zone storage classes\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `generalPurpose | maxIO` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PerformanceMode", "type": "string" }, "ProvisionedThroughputInMibps": { + "markdownDescription": "The throughput, measured in MiB/s, that you want to provision for a file system that you're creating\\. Valid values are 1\\-1024\\. Required if `ThroughputMode` is set to `provisioned`\\. The upper limit for throughput is 1024 MiB/s\\. To increase this limit, contact AWS Support\\. For more information, see [Amazon EFS quotas that you can increase](https://docs.aws.amazon.com/efs/latest/ug/limits.html#soft-limits) in the *Amazon EFS User Guide*\\. \n*Required*: Conditional \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisionedThroughputInMibps", "type": "number" }, "ThroughputMode": { + "markdownDescription": "Specifies the throughput mode for the file system, either `bursting` or `provisioned`\\. If you set `ThroughputMode` to `provisioned`, you must also set a value for `ProvisionedThroughputInMibps`\\. After you create the file system, you can decrease your file system's throughput in Provisioned Throughput mode or change between the throughput modes, as long as it\u2019s been more than 24 hours since the last decrease or throughput mode change\\. For more information, see [Specifying throughput with provisioned mode](https://docs.aws.amazon.com/efs/latest/ug/performance.html#provisioned-throughput) in the *Amazon EFS User Guide*\\. \nDefault is `bursting`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `bursting | provisioned` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThroughputMode", "type": "string" } }, @@ -55067,6 +67670,8 @@ "additionalProperties": false, "properties": { "Status": { + "markdownDescription": "Set the backup policy status for the file system\\. \n+ ** `ENABLED`** \\- Turns automatic backups on for the file system\\. \n+ ** `DISABLED`** \\- Turns automatic backups off for the file system\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | DISABLING | ENABLED | ENABLING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" } }, @@ -55079,9 +67684,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The tag key \\(String\\)\\. The key can't start with `aws:`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^(?![aA]{1}[wW]{1}[sS]{1}:)([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]+)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The value of the tag key\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -55095,9 +67704,13 @@ "additionalProperties": false, "properties": { "TransitionToIA": { + "markdownDescription": "Describes the period of time that a file is not accessed, after which it transitions to IA storage\\. Metadata operations such as listing the contents of a directory don't count as file access events\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AFTER_14_DAYS | AFTER_30_DAYS | AFTER_60_DAYS | AFTER_7_DAYS | AFTER_90_DAYS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitionToIA", "type": "string" }, "TransitionToPrimaryStorageClass": { + "markdownDescription": "Describes when to transition a file from IA storage to primary storage\\. Metadata operations such as listing the contents of a directory don't count as file access events\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AFTER_1_ACCESS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitionToPrimaryStorageClass", "type": "string" } }, @@ -55139,18 +67752,26 @@ "additionalProperties": false, "properties": { "FileSystemId": { + "markdownDescription": "The ID of the file system for which to create the mount target\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:file-system/fs-[0-9a-f]{8,40}|fs-[0-9a-f]{8,40})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FileSystemId", "type": "string" }, "IpAddress": { + "markdownDescription": "Valid IPv4 address within the address range of the specified subnet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `7` \n*Maximum*: `15` \n*Pattern*: `^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpAddress", "type": "string" }, "SecurityGroups": { "items": { "type": "string" }, + "markdownDescription": "Up to five VPC security group IDs, of the form `sg-xxxxxxxx`\\. These must be for the same VPC as subnet specified\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroups", "type": "array" }, "SubnetId": { + "markdownDescription": "The ID of the subnet to add the mount target in\\. For file systems that use One Zone storage classes, use the subnet that is associated with the file system's Availability Zone\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `15` \n*Maximum*: `47` \n*Pattern*: `^subnet-[0-9a-f]{8,40}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", "type": "string" } }, @@ -55218,27 +67839,42 @@ "additionalProperties": false, "properties": { "AddonName": { + "markdownDescription": "The name of the add\\-on\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AddonName", "type": "string" }, "AddonVersion": { + "markdownDescription": "The version of the add\\-on\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddonVersion", "type": "string" }, "ClusterName": { + "markdownDescription": "The name of the cluster\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[0-9A-Za-z][A-Za-z0-9\\-_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterName", "type": "string" }, "ConfigurationValues": { "type": "string" }, + "PreserveOnDelete": { + "type": "boolean" + }, "ResolveConflicts": { + "markdownDescription": "How to resolve parameter value conflicts when migrating an existing add\\-on to an Amazon EKS add\\-on\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | OVERWRITE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResolveConflicts", "type": "string" }, "ServiceAccountRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an existing IAM role to bind to the add\\-on's service account\\. The role must be assigned the IAM permissions required by the add\\-on\\. If you don't specify an existing IAM role, then the add\\-on uses the permissions assigned to the node IAM role\\. For more information, see [Amazon EKS node IAM role](https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html) in the *Amazon EKS User Guide*\\. \nTo specify an existing IAM role, you must have an IAM OpenID Connect \\(OIDC\\) provider created for your cluster\\. For more information, see [Enabling IAM roles for service accounts on your cluster](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html) in the *Amazon EKS User Guide*\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceAccountRoleArn", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The metadata that you apply to the add\\-on to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Add\\-on tags do not propagate to any other resources associated with the cluster\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -55308,33 +67944,49 @@ "items": { "$ref": "#/definitions/AWS::EKS::Cluster.EncryptionConfig" }, + "markdownDescription": "The encryption configuration for the cluster\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-encryptionconfig.html) of [EncryptionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-encryptionconfig.html) \n*Maximum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncryptionConfig", "type": "array" }, "KubernetesNetworkConfig": { - "$ref": "#/definitions/AWS::EKS::Cluster.KubernetesNetworkConfig" + "$ref": "#/definitions/AWS::EKS::Cluster.KubernetesNetworkConfig", + "markdownDescription": "The Kubernetes network configuration for the cluster\\. \n*Required*: No \n*Type*: [KubernetesNetworkConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-kubernetesnetworkconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KubernetesNetworkConfig" }, "Logging": { - "$ref": "#/definitions/AWS::EKS::Cluster.Logging" + "$ref": "#/definitions/AWS::EKS::Cluster.Logging", + "markdownDescription": "The logging configuration for your cluster\\. \n*Required*: No \n*Type*: [Logging](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-logging.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Logging" }, "Name": { + "markdownDescription": "The unique name to give to your cluster\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[0-9A-Za-z][A-Za-z0-9\\-_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "OutpostConfig": { "$ref": "#/definitions/AWS::EKS::Cluster.OutpostConfig" }, "ResourcesVpcConfig": { - "$ref": "#/definitions/AWS::EKS::Cluster.ResourcesVpcConfig" + "$ref": "#/definitions/AWS::EKS::Cluster.ResourcesVpcConfig", + "markdownDescription": "The VPC configuration that's used by the cluster control plane\\. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes\\. For more information, see [Cluster VPC Considerations](https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html) and [Cluster Security Group Considerations](https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html) in the *Amazon EKS User Guide*\\. You must specify at least two subnets\\. You can specify up to five security groups, but we recommend that you use a dedicated security group for your cluster control plane\\. \nUpdates require replacement of the `SecurityGroupIds` and `SubnetIds` sub\\-properties\\.\n*Required*: Yes \n*Type*: [ResourcesVpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourcesVpcConfig" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf\\. For more information, see [Amazon EKS Service IAM Role](https://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html) in the * *Amazon EKS User Guide* *\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RoleArn", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The metadata that you apply to the cluster to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Cluster tags don't propagate to any other resources associated with the cluster\\. \nYou must have the `eks:TagResource` and `eks:UntagResource` permissions in your IAM user or IAM role used to manage the CloudFormation stack\\. If you don't have these permissions, there might be unexpected behavior with stack\\-level tags propagating to the resource during resource creation and update\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Version": { + "markdownDescription": "The desired Kubernetes version for your cluster\\. If you don't specify a value here, the latest version available in Amazon EKS is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -55372,6 +68024,8 @@ "items": { "$ref": "#/definitions/AWS::EKS::Cluster.LoggingTypeConfig" }, + "markdownDescription": "The enabled control plane logs for your cluster\\. All log types are disabled if the array is empty\\. \nWhen updating a resource, you must include this `EnabledTypes` property if the previous CloudFormation template of the resource had it\\.\n*Required*: No \n*Type*: List of [LoggingTypeConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-loggingtypeconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnabledTypes", "type": "array" } }, @@ -55390,12 +68044,16 @@ "additionalProperties": false, "properties": { "Provider": { - "$ref": "#/definitions/AWS::EKS::Cluster.Provider" + "$ref": "#/definitions/AWS::EKS::Cluster.Provider", + "markdownDescription": "The encryption provider for the cluster\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Provider" }, "Resources": { "items": { "type": "string" }, + "markdownDescription": "Specifies the resources to be encrypted\\. The only supported value is \"secrets\"\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Resources", "type": "array" } }, @@ -55405,12 +68063,18 @@ "additionalProperties": false, "properties": { "IpFamily": { + "markdownDescription": "Specify which IP family is used to assign Kubernetes pod and service IP addresses\\. If you don't specify a value, `ipv4` is used by default\\. You can only specify an IP family when you create a cluster and can't change this value once the cluster is created\\. If you specify `ipv6`, the VPC and subnets that you specify for cluster creation must have both IPv4 and IPv6 CIDR blocks assigned to them\\. You can't specify `ipv6` for clusters in China Regions\\. \nYou can only specify `ipv6` for 1\\.21 and later clusters that use version 1\\.10\\.1 or later of the Amazon VPC CNI add\\-on\\. If you specify `ipv6`, then ensure that your VPC meets the requirements listed in the considerations listed in [Assigning IPv6 addresses to pods and services](https://docs.aws.amazon.com/eks/latest/userguide/cni-ipv6.html) in the Amazon EKS User Guide\\. Kubernetes assigns services IPv6 addresses from the unique local address range \\(fc00::/7\\)\\. You can't specify a custom IPv6 CIDR block\\. Pod addresses are assigned from the subnet's IPv6 CIDR\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ipv4 | ipv6` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpFamily", "type": "string" }, "ServiceIpv4Cidr": { + "markdownDescription": "Don't specify a value if you select `ipv6` for **ipFamily**\\. The CIDR block to assign Kubernetes service IP addresses from\\. If you don't specify a block, Kubernetes assigns addresses from either the 10\\.100\\.0\\.0/16 or 172\\.20\\.0\\.0/16 CIDR blocks\\. We recommend that you specify a block that does not overlap with resources in other networks that are peered or connected to your VPC\\. The block must meet the following requirements: \n+ Within one of the following private IP address blocks: 10\\.0\\.0\\.0/8, 172\\.16\\.0\\.0/12, or 192\\.168\\.0\\.0/16\\.\n+ Doesn't overlap with any CIDR block assigned to the VPC that you selected for VPC\\.\n+ Between /24 and /12\\.\nYou can only specify a custom CIDR block when you create a cluster and can't change this value once the cluster is created\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceIpv4Cidr", "type": "string" }, "ServiceIpv6Cidr": { + "markdownDescription": "The CIDR block that Kubernetes pod and service IP addresses are assigned from if you created a 1\\.21 or later cluster with version 1\\.10\\.1 or later of the Amazon VPC CNI add\\-on and specified `ipv6` for **ipFamily** when you created the cluster\\. Kubernetes assigns service addresses from the unique local address range \\(`fc00::/7`\\) because you can't specify a custom IPv6 CIDR block when you create the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceIpv6Cidr", "type": "string" } }, @@ -55420,7 +68084,9 @@ "additionalProperties": false, "properties": { "ClusterLogging": { - "$ref": "#/definitions/AWS::EKS::Cluster.ClusterLogging" + "$ref": "#/definitions/AWS::EKS::Cluster.ClusterLogging", + "markdownDescription": "The cluster control plane logging configuration for your cluster\\. \n*Required*: No \n*Type*: [ClusterLogging](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-clusterlogging.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterLogging" } }, "type": "object" @@ -55429,6 +68095,8 @@ "additionalProperties": false, "properties": { "Type": { + "markdownDescription": "The name of the log type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -55469,27 +68137,37 @@ "additionalProperties": false, "properties": { "EndpointPrivateAccess": { + "markdownDescription": "Set this value to `true` to enable private access for your cluster's Kubernetes API server endpoint\\. If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint\\. The default value for this parameter is `false`, which disables private access for your Kubernetes API server\\. If you disable private access and you have nodes or AWS Fargate pods in the cluster, then ensure that `publicAccessCidrs` includes the necessary CIDR blocks for communication with the nodes or Fargate pods\\. For more information, see [Amazon EKS cluster endpoint access control](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) in the * *Amazon EKS User Guide* *\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointPrivateAccess", "type": "boolean" }, "EndpointPublicAccess": { + "markdownDescription": "Set this value to `false` to disable public access to your cluster's Kubernetes API server endpoint\\. If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC\\. The default value for this parameter is `true`, which enables public access for your Kubernetes API server\\. For more information, see [Amazon EKS cluster endpoint access control](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) in the * *Amazon EKS User Guide* *\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointPublicAccess", "type": "boolean" }, "PublicAccessCidrs": { "items": { "type": "string" }, + "markdownDescription": "The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint\\. Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied\\. The default value is `0.0.0.0/0`\\. If you've disabled private endpoint access and you have nodes or AWS Fargate pods in the cluster, then ensure that you specify the necessary CIDR blocks\\. For more information, see [Amazon EKS cluster endpoint access control](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) in the * *Amazon EKS User Guide* *\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublicAccessCidrs", "type": "array" }, "SecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "Specify one or more security groups for the cross\\-account elastic network interfaces that Amazon EKS creates to use that allow communication between your nodes and the Kubernetes control plane\\. If you don't specify any security groups, then familiarize yourself with the difference between Amazon EKS defaults for clusters deployed with Kubernetes: \n+ 1\\.14 Amazon EKS platform version `eks.2` and earlier\n+ 1\\.14 Amazon EKS platform version `eks.3` and later \nFor more information, see [Amazon EKS security group considerations](https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html) in the * *Amazon EKS User Guide* *\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroupIds", "type": "array" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "Specify subnets for your Amazon EKS nodes\\. Amazon EKS creates cross\\-account elastic network interfaces in these subnets to allow communication between your nodes and the Kubernetes control plane\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetIds", "type": "array" } }, @@ -55534,30 +68212,42 @@ "additionalProperties": false, "properties": { "ClusterName": { + "markdownDescription": "The name of the Amazon EKS cluster to apply the Fargate profile to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterName", "type": "string" }, "FargateProfileName": { + "markdownDescription": "The name of the Fargate profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FargateProfileName", "type": "string" }, "PodExecutionRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the pod execution role to use for pods that match the selectors in the Fargate profile\\. The pod execution role allows Fargate infrastructure to register with your cluster as a node, and it provides read access to Amazon ECR image repositories\\. For more information, see [Pod Execution Role](https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html) in the *Amazon EKS User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PodExecutionRoleArn", "type": "string" }, "Selectors": { "items": { "$ref": "#/definitions/AWS::EKS::FargateProfile.Selector" }, + "markdownDescription": "The selectors to match for pods to use this Fargate profile\\. Each selector must have an associated namespace\\. Optionally, you can also specify labels for a namespace\\. You may specify up to five selectors in a Fargate profile\\. \n*Required*: Yes \n*Type*: List of [Selector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-fargateprofile-selector.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Selectors", "type": "array" }, "Subnets": { "items": { "type": "string" }, + "markdownDescription": "The IDs of subnets to launch your pods into\\. At this time, pods running on Fargate are not assigned public IP addresses, so only private subnets \\(with no direct route to an Internet Gateway\\) are accepted for this parameter\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subnets", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The metadata to apply to the Fargate profile to assist with categorization and organization\\. Each tag consists of a key and an optional value\\. You define both\\. Fargate profile tags do not propagate to any other resources associated with the Fargate profile, such as the pods that are scheduled with it\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -55593,9 +68283,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "Enter a key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "Enter a value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", "type": "string" } }, @@ -55612,9 +68306,13 @@ "items": { "$ref": "#/definitions/AWS::EKS::FargateProfile.Label" }, + "markdownDescription": "The Kubernetes labels that the selector should match\\. A pod must contain all of the labels that are specified in the selector for it to be considered a match\\. \n*Required*: No \n*Type*: List of [Label](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-fargateprofile-label.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Labels", "type": "array" }, "Namespace": { + "markdownDescription": "The Kubernetes namespace that the selector should match\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Namespace", "type": "string" } }, @@ -55659,21 +68357,31 @@ "additionalProperties": false, "properties": { "ClusterName": { + "markdownDescription": "The cluster that the configuration is associated to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterName", "type": "string" }, "IdentityProviderConfigName": { + "markdownDescription": "The name of the configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IdentityProviderConfigName", "type": "string" }, "Oidc": { - "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig" + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig", + "markdownDescription": "An object that represents an OpenID Connect \\(OIDC\\) identity provider configuration\\. \n*Required*: No \n*Type*: [OidcIdentityProviderConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Oidc" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The metadata to apply to the provider configuration to assist with categorization and organization\\. Each tag consists of a key and an optional value\\. You define both\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Type": { + "markdownDescription": "The type of the identity provider configuration\\. The only type available is `oidc`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -55708,27 +68416,41 @@ "additionalProperties": false, "properties": { "ClientId": { + "markdownDescription": "This is also known as *audience*\\. The ID of the client application that makes authentication requests to the OIDC identity provider\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientId", "type": "string" }, "GroupsClaim": { + "markdownDescription": "The JSON web token \\(JWT\\) claim that the provider uses to return your groups\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupsClaim", "type": "string" }, "GroupsPrefix": { + "markdownDescription": "The prefix that is prepended to group claims to prevent clashes with existing names \\(such as `system:` groups\\)\\. For example, the value` oidc:` creates group names like `oidc:engineering` and `oidc:infra`\\. The prefix can't contain `system:` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupsPrefix", "type": "string" }, "IssuerUrl": { + "markdownDescription": "The URL of the OIDC identity provider that allows the API server to discover public signing keys for verifying tokens\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IssuerUrl", "type": "string" }, "RequiredClaims": { "items": { "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig.RequiredClaim" }, + "markdownDescription": "The key\\-value pairs that describe required claims in the identity token\\. If set, each claim is verified to be present in the token with a matching value\\. \n*Required*: No \n*Type*: List of [RequiredClaim](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-requiredclaim.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RequiredClaims", "type": "array" }, "UsernameClaim": { + "markdownDescription": "The JSON Web token \\(JWT\\) claim that is used as the username\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UsernameClaim", "type": "string" }, "UsernamePrefix": { + "markdownDescription": "The prefix that is prepended to username claims to prevent clashes with existing names\\. The prefix can't contain `system:` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UsernamePrefix", "type": "string" } }, @@ -55742,9 +68464,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The key to match from the token\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The value for the key from the token\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", "type": "string" } }, @@ -55790,78 +68516,114 @@ "additionalProperties": false, "properties": { "AmiType": { + "markdownDescription": "The AMI type for your node group\\. GPU instance types should use the `AL2_x86_64_GPU` AMI type\\. Non\\-GPU instances should use the `AL2_x86_64` AMI type\\. Arm instances should use the `AL2_ARM_64` AMI type\\. All types use the Amazon EKS optimized Amazon Linux 2 AMI\\. If you specify `launchTemplate`, and your launch template uses a custom AMI, then don't specify `amiType`, or the node group deployment will fail\\. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AL2_ARM_64 | AL2_x86_64 | AL2_x86_64_GPU | BOTTLEROCKET_ARM_64 | BOTTLEROCKET_x86_64 | CUSTOM` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AmiType", "type": "string" }, "CapacityType": { + "markdownDescription": "The capacity type of your managed node group\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ON_DEMAND | SPOT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CapacityType", "type": "string" }, "ClusterName": { + "markdownDescription": "The name of the cluster to create the node group in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterName", "type": "string" }, "DiskSize": { + "markdownDescription": "The root device disk size \\(in GiB\\) for your node group instances\\. The default disk size is 20 GiB\\. If you specify `launchTemplate`, then don't specify `diskSize`, or the node group deployment will fail\\. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DiskSize", "type": "number" }, "ForceUpdateEnabled": { + "markdownDescription": "Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue\\. If an update fails because pods could not be drained, you can force the update after it fails to terminate the old node whether or not any pods are running on the node\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForceUpdateEnabled", "type": "boolean" }, "InstanceTypes": { "items": { "type": "string" }, + "markdownDescription": "Specify the instance types for a node group\\. If you specify a GPU instance type, be sure to specify `AL2_x86_64_GPU` with the `amiType` parameter\\. If you specify `launchTemplate`, then you can specify zero or one instance type in your launch template *or* you can specify 0\\-20 instance types for `instanceTypes`\\. If however, you specify an instance type in your launch template *and* specify any `instanceTypes`, the node group deployment will fail\\. If you don't specify an instance type in a launch template or for `instanceTypes`, then `t3.medium` is used, by default\\. If you specify `Spot` for `capacityType`, then we recommend specifying multiple values for `instanceTypes`\\. For more information, see [Managed node group capacity types](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types) and [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceTypes", "type": "array" }, "Labels": { "additionalProperties": true, + "markdownDescription": "The Kubernetes labels to be applied to the nodes in the node group when they are created\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Labels", "type": "object" }, "LaunchTemplate": { - "$ref": "#/definitions/AWS::EKS::Nodegroup.LaunchTemplateSpecification" + "$ref": "#/definitions/AWS::EKS::Nodegroup.LaunchTemplateSpecification", + "markdownDescription": "An object representing a node group's launch template specification\\. If specified, then do not specify `instanceTypes`, `diskSize`, or `remoteAccess` and make sure that the launch template meets the requirements in `launchTemplateSpecification`\\. \n*Required*: No \n*Type*: [LaunchTemplateSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-launchtemplatespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplate" }, "NodeRole": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role to associate with your node group\\. The Amazon EKS worker node `kubelet` daemon makes calls to AWS APIs on your behalf\\. Nodes receive permissions for these API calls through an IAM instance profile and associated policies\\. Before you can launch nodes and register them into a cluster, you must create an IAM role for those nodes to use when they are launched\\. For more information, see [Amazon EKS node IAM role](https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html) in the * *Amazon EKS User Guide* *\\. If you specify `launchTemplate`, then don't specify [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html) in your launch template, or the node group deployment will fail\\. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NodeRole", "type": "string" }, "NodegroupName": { + "markdownDescription": "The unique name to give your node group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NodegroupName", "type": "string" }, "ReleaseVersion": { + "markdownDescription": "The AMI version of the Amazon EKS optimized AMI to use with your node group \\(for example, `1.14.7-YYYYMMDD`\\)\\. By default, the latest available AMI version for the node group's current Kubernetes version is used\\. For more information, see [Amazon EKS optimized Linux AMI Versions](https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html) in the *Amazon EKS User Guide*\\. \nChanging this value triggers an update of the node group if one is available\\. You can't update other properties at the same time as updating `Release Version`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReleaseVersion", "type": "string" }, "RemoteAccess": { - "$ref": "#/definitions/AWS::EKS::Nodegroup.RemoteAccess" + "$ref": "#/definitions/AWS::EKS::Nodegroup.RemoteAccess", + "markdownDescription": "The remote access \\(SSH\\) configuration to use with your node group\\. If you specify `launchTemplate`, then don't specify `remoteAccess`, or the node group deployment will fail\\. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide*\\. \n*Required*: No \n*Type*: [RemoteAccess](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-remoteaccess.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RemoteAccess" }, "ScalingConfig": { - "$ref": "#/definitions/AWS::EKS::Nodegroup.ScalingConfig" + "$ref": "#/definitions/AWS::EKS::Nodegroup.ScalingConfig", + "markdownDescription": "The scaling configuration details for the Auto Scaling group that is created for your node group\\. \n*Required*: No \n*Type*: [ScalingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-scalingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalingConfig" }, "Subnets": { "items": { "type": "string" }, + "markdownDescription": "The subnets to use for the Auto Scaling group that is created for your node group\\. If you specify `launchTemplate`, then don't specify [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html) in your launch template, or the node group deployment will fail\\. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide*\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subnets", "type": "array" }, "Tags": { "additionalProperties": true, + "markdownDescription": "The metadata to apply to the node group to assist with categorization and organization\\. Each tag consists of a key and an optional value\\. You define both\\. Node group tags don't propagate to any other resources associated with the node group, such as the Amazon EC2 instances or subnets\\. \nUpdates to `Tags` can't be combined with updates to `ReleaseVersion`, `Version`, or `LaunchTemplate`\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" }, "Taints": { "items": { "$ref": "#/definitions/AWS::EKS::Nodegroup.Taint" }, + "markdownDescription": "The Kubernetes taints to be applied to the nodes in the node group when they are created\\. Effect is one of `No_Schedule`, `Prefer_No_Schedule`, or `No_Execute`\\. Kubernetes taints can be used together with tolerations to control how workloads are scheduled to your nodes\\. For more information, see [Node taints on managed node groups](https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html)\\. \n*Required*: No \n*Type*: List of [Taint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-taint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Taints", "type": "array" }, "UpdateConfig": { - "$ref": "#/definitions/AWS::EKS::Nodegroup.UpdateConfig" + "$ref": "#/definitions/AWS::EKS::Nodegroup.UpdateConfig", + "markdownDescription": "The node group update configuration\\. \n*Required*: No \n*Type*: [UpdateConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-updateconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdateConfig" }, "Version": { + "markdownDescription": "The Kubernetes version to use for your managed nodes\\. By default, the Kubernetes version of the cluster is used, and this is the only accepted specified value\\. If you specify `launchTemplate`, and your launch template uses a custom AMI, then don't specify `version`, or the node group deployment will fail\\. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide*\\. \nYou can't update other properties at the same time as updating `Version`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -55897,12 +68659,18 @@ "additionalProperties": false, "properties": { "Id": { + "markdownDescription": "The ID of the launch template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "Name": { + "markdownDescription": "The name of the launch template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Version": { + "markdownDescription": "The version of the launch template to use\\. If no version is specified, then the template's default version is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -55912,12 +68680,16 @@ "additionalProperties": false, "properties": { "Ec2SshKey": { + "markdownDescription": "The Amazon EC2 SSH key that provides access for SSH communication with the nodes in the managed node group\\. For more information, see [Amazon EC2 key pairs and Linux instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) in the *Amazon Elastic Compute Cloud User Guide for Linux Instances*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ec2SshKey", "type": "string" }, "SourceSecurityGroups": { "items": { "type": "string" }, + "markdownDescription": "The security groups that are allowed SSH access \\(port 22\\) to the nodes\\. If you specify an Amazon EC2 SSH key but do not specify a source security group when you create a managed node group, then port 22 on the nodes is opened to the internet \\(0\\.0\\.0\\.0/0\\)\\. For more information, see [Security Groups for Your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) in the *Amazon Virtual Private Cloud User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceSecurityGroups", "type": "array" } }, @@ -55930,12 +68702,18 @@ "additionalProperties": false, "properties": { "DesiredSize": { + "markdownDescription": "The current number of nodes that the managed node group should maintain\\. \nIf you use Cluster Autoscaler, you shouldn't change the desiredSize value directly, as this can cause the Cluster Autoscaler to suddenly scale up or scale down\\.\nWhenever this parameter changes, the number of worker nodes in the node group is updated to the specified size\\. If this parameter is given a value that is smaller than the current number of running worker nodes, the necessary number of worker nodes are terminated to match the given value\\. When using CloudFormation, no action occurs if you remove this parameter from your CFN template\\. \nThis parameter can be different from minSize in some cases, such as when starting with extra hosts for testing\\. This parameter can also be different when you want to start with an estimated number of needed hosts, but let Cluster Autoscaler reduce the number if there are too many\\. When Cluster Autoscaler is used, the desiredSize parameter is altered by Cluster Autoscaler \\(but can be out\\-of\\-date for short periods of time\\)\\. Cluster Autoscaler doesn't scale a managed node group lower than minSize or higher than maxSize\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DesiredSize", "type": "number" }, "MaxSize": { + "markdownDescription": "The maximum number of nodes that the managed node group can scale out to\\. For information about the maximum number that you can specify, see [Amazon EKS service quotas](https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html) in the *Amazon EKS User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxSize", "type": "number" }, "MinSize": { + "markdownDescription": "The minimum number of nodes that the managed node group can scale in to\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinSize", "type": "number" } }, @@ -55945,12 +68723,18 @@ "additionalProperties": false, "properties": { "Effect": { + "markdownDescription": "The effect of the taint\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NO_EXECUTE | NO_SCHEDULE | PREFER_NO_SCHEDULE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Effect", "type": "string" }, "Key": { + "markdownDescription": "The key of the taint\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The value of the taint\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -55960,9 +68744,13 @@ "additionalProperties": false, "properties": { "MaxUnavailable": { + "markdownDescription": "The maximum number of nodes unavailable at once during a version update\\. Nodes will be updated in parallel\\. This value or `maxUnavailablePercentage` is required to have a value\\.The maximum number is 100\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxUnavailable", "type": "number" }, "MaxUnavailablePercentage": { + "markdownDescription": "The maximum percentage of nodes unavailable during a version update\\. This percentage of nodes will be updated in parallel, up to 100 nodes at once\\. This value or `maxUnavailable` is required to have a value\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxUnavailablePercentage", "type": "number" } }, @@ -56004,15 +68792,21 @@ "additionalProperties": false, "properties": { "AdditionalInfo": { + "markdownDescription": "A JSON string for selecting additional features\\. \n*Required*: No \n*Type*: Json \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AdditionalInfo", "type": "object" }, "Applications": { "items": { "$ref": "#/definitions/AWS::EMR::Cluster.Application" }, + "markdownDescription": "The applications to install on this cluster, for example, Spark, Flink, Oozie, Zeppelin, and so on\\. \n*Required*: No \n*Type*: List of [Application](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-application.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Applications", "type": "array" }, "AutoScalingRole": { + "markdownDescription": "An IAM role for automatic scaling policies\\. The default role is `EMR_AutoScaling_DefaultRole`\\. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutoScalingRole", "type": "string" }, "AutoTerminationPolicy": { @@ -56022,72 +68816,110 @@ "items": { "$ref": "#/definitions/AWS::EMR::Cluster.BootstrapActionConfig" }, + "markdownDescription": "A list of bootstrap actions to run before Hadoop starts on the cluster nodes\\. \n*Required*: No \n*Type*: List of [BootstrapActionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-bootstrapactionconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BootstrapActions", "type": "array" }, "Configurations": { "items": { "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" }, + "markdownDescription": "Applies only to Amazon EMR releases 4\\.x and later\\. The list of Configurations supplied to the EMR cluster\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-configuration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Configurations", "type": "array" }, "CustomAmiId": { + "markdownDescription": "Available only in Amazon EMR version 5\\.7\\.0 and later\\. The ID of a custom Amazon EBS\\-backed Linux AMI if the cluster uses a custom AMI\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomAmiId", "type": "string" }, "EbsRootVolumeSize": { + "markdownDescription": "The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that is used for each EC2 instance\\. Available in Amazon EMR version 4\\.x and later\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsRootVolumeSize", "type": "number" }, "Instances": { - "$ref": "#/definitions/AWS::EMR::Cluster.JobFlowInstancesConfig" + "$ref": "#/definitions/AWS::EMR::Cluster.JobFlowInstancesConfig", + "markdownDescription": "A specification of the number and type of Amazon EC2 instances\\. \n*Required*: Yes \n*Type*: [JobFlowInstancesConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Instances" }, "JobFlowRole": { + "markdownDescription": "Also called instance profile and EC2 role\\. An IAM role for an EMR cluster\\. The EC2 instances of the cluster assume this role\\. The default role is `EMR_EC2_DefaultRole`\\. In order to use the default role, you must have already created it using the CLI or console\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "JobFlowRole", "type": "string" }, "KerberosAttributes": { - "$ref": "#/definitions/AWS::EMR::Cluster.KerberosAttributes" + "$ref": "#/definitions/AWS::EMR::Cluster.KerberosAttributes", + "markdownDescription": "Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration\\. For more information see [Use Kerberos Authentication](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html) in the *Amazon EMR Management Guide*\\. \n*Required*: No \n*Type*: [KerberosAttributes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-kerberosattributes.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KerberosAttributes" }, "LogEncryptionKmsKeyId": { + "markdownDescription": "The AWS KMS key used for encrypting log files\\. This attribute is only available with EMR version 5\\.30\\.0 and later, excluding EMR 6\\.0\\.0\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogEncryptionKmsKeyId", "type": "string" }, "LogUri": { + "markdownDescription": "The path to the Amazon S3 location where logs for this cluster are stored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogUri", "type": "string" }, "ManagedScalingPolicy": { - "$ref": "#/definitions/AWS::EMR::Cluster.ManagedScalingPolicy" + "$ref": "#/definitions/AWS::EMR::Cluster.ManagedScalingPolicy", + "markdownDescription": "Creates or updates a managed scaling policy for an Amazon EMR cluster\\. The managed scaling policy defines the limits for resources, such as EC2 instances that can be added or terminated from a cluster\\. The policy only applies to the core and task nodes\\. The master node cannot be scaled after initial configuration\\. \n*Required*: No \n*Type*: [ManagedScalingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-managedscalingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManagedScalingPolicy" }, "Name": { + "markdownDescription": "The name of the cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "OSReleaseLabel": { "type": "string" }, "ReleaseLabel": { + "markdownDescription": "The Amazon EMR release label, which determines the version of open\\-source application packages installed on the cluster\\. Release labels are in the form `emr-x.x.x`, where x\\.x\\.x is an Amazon EMR release version such as `emr-5.14.0`\\. For more information about Amazon EMR release versions and included application versions and features, see [https://docs.aws.amazon.com/emr/latest/ReleaseGuide/](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/)\\. The release label applies only to Amazon EMR releases version 4\\.0 and later\\. Earlier versions use `AmiVersion`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReleaseLabel", "type": "string" }, "ScaleDownBehavior": { + "markdownDescription": "The way that individual Amazon EC2 instances terminate when an automatic scale\\-in activity occurs or an instance group is resized\\. `TERMINATE_AT_INSTANCE_HOUR` indicates that Amazon EMR terminates nodes at the instance\\-hour boundary, regardless of when the request to terminate the instance was submitted\\. This option is only available with Amazon EMR 5\\.1\\.0 and later and is the default for clusters created using that version\\. `TERMINATE_AT_TASK_COMPLETION` indicates that Amazon EMR adds nodes to a deny list and drains tasks from nodes before terminating the Amazon EC2 instances, regardless of the instance\\-hour boundary\\. With either behavior, Amazon EMR removes the least active nodes first and blocks instance termination if it could lead to HDFS corruption\\. `TERMINATE_AT_TASK_COMPLETION` is available only in Amazon EMR version 4\\.1\\.0 and later, and is the default for versions of Amazon EMR earlier than 5\\.1\\.0\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `TERMINATE_AT_INSTANCE_HOUR | TERMINATE_AT_TASK_COMPLETION` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScaleDownBehavior", "type": "string" }, "SecurityConfiguration": { + "markdownDescription": "The name of the security configuration applied to the cluster\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityConfiguration", "type": "string" }, "ServiceRole": { + "markdownDescription": "The IAM role that Amazon EMR assumes in order to access AWS resources on your behalf\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceRole", "type": "string" }, "StepConcurrencyLevel": { + "markdownDescription": "Specifies the number of steps that can be executed concurrently\\. The default value is `1`\\. The maximum value is `256`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StepConcurrencyLevel", "type": "number" }, "Steps": { "items": { "$ref": "#/definitions/AWS::EMR::Cluster.StepConfig" }, + "markdownDescription": "A list of steps to run\\. \n*Required*: No \n*Type*: List of [StepConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-stepconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Steps", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of tags associated with a cluster\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VisibleToAllUsers": { + "markdownDescription": "Indicates whether the cluster is visible to all IAM users of the AWS account associated with the cluster\\. If this value is set to `true`, all IAM users of that AWS account can view and manage the cluster if they have the proper policy permissions set\\. If this value is `false`, only the IAM user that created the cluster can view and manage it\\. This value can be changed using the SetVisibleToAllUsers action\\. \nWhen you create clusters directly through the EMR console or API, this value is set to `true` by default\\. However, for `AWS::EMR::Cluster` resources in CloudFormation, the default is `false`\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VisibleToAllUsers", "type": "boolean" } }, @@ -56125,23 +68957,31 @@ "properties": { "AdditionalInfo": { "additionalProperties": true, + "markdownDescription": "This option is for advanced users only\\. This is meta information about clusters and applications that are used for testing and troubleshooting\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "AdditionalInfo", "type": "object" }, "Args": { "items": { "type": "string" }, + "markdownDescription": "Arguments for Amazon EMR to pass to the application\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Args", "type": "array" }, "Name": { + "markdownDescription": "The name of the application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Version": { + "markdownDescription": "The version of the application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -56151,12 +68991,16 @@ "additionalProperties": false, "properties": { "Constraints": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScalingConstraints" + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingConstraints", + "markdownDescription": "The upper and lower EC2 instance limits for an automatic scaling policy\\. Automatic scaling activity will not cause an instance group to grow above or below these limits\\. \n*Required*: Yes \n*Type*: [ScalingConstraints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingconstraints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Constraints" }, "Rules": { "items": { "$ref": "#/definitions/AWS::EMR::Cluster.ScalingRule" }, + "markdownDescription": "The scale\\-in and scale\\-out rules that comprise the automatic scaling policy\\. \n*Required*: Yes \n*Type*: List of [ScalingRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", "type": "array" } }, @@ -56179,10 +69023,14 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the bootstrap action\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "ScriptBootstrapAction": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScriptBootstrapActionConfig" + "$ref": "#/definitions/AWS::EMR::Cluster.ScriptBootstrapActionConfig", + "markdownDescription": "The script run by the bootstrap action\\. \n*Required*: Yes \n*Type*: [ScriptBootstrapActionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scriptbootstrapactionconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScriptBootstrapAction" } }, "required": [ @@ -56195,33 +69043,51 @@ "additionalProperties": false, "properties": { "ComparisonOperator": { + "markdownDescription": "Determines how the metric specified by `MetricName` is compared to the value specified by `Threshold`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GREATER_THAN | GREATER_THAN_OR_EQUAL | LESS_THAN | LESS_THAN_OR_EQUAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComparisonOperator", "type": "string" }, "Dimensions": { "items": { "$ref": "#/definitions/AWS::EMR::Cluster.MetricDimension" }, + "markdownDescription": "A CloudWatch metric dimension\\. \n*Required*: No \n*Type*: List of [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", "type": "array" }, "EvaluationPeriods": { + "markdownDescription": "The number of periods, in five\\-minute increments, during which the alarm condition must exist before the alarm triggers automatic scaling activity\\. The default value is `1`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EvaluationPeriods", "type": "number" }, "MetricName": { + "markdownDescription": "The name of the CloudWatch metric that is watched to determine an alarm condition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", "type": "string" }, "Namespace": { + "markdownDescription": "The namespace for the CloudWatch metric\\. The default is `AWS/ElasticMapReduce`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", "type": "string" }, "Period": { + "markdownDescription": "The period, in seconds, over which the statistic is applied\\. EMR CloudWatch metrics are emitted every five minutes \\(300 seconds\\), so if an EMR CloudWatch metric is specified, specify `300`\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Period", "type": "number" }, "Statistic": { + "markdownDescription": "The statistic to apply to the metric associated with the alarm\\. The default is `AVERAGE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AVERAGE | MAXIMUM | MINIMUM | SAMPLE_COUNT | SUM` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statistic", "type": "string" }, "Threshold": { + "markdownDescription": "The value against which the specified statistic is compared\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Threshold", "type": "number" }, "Unit": { + "markdownDescription": "The unit of measure associated with the CloudWatch metric being watched\\. The value specified for `Unit` must correspond to the units specified in the CloudWatch metric\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BITS | BITS_PER_SECOND | BYTES | BYTES_PER_SECOND | COUNT | COUNT_PER_SECOND | GIGA_BITS | GIGA_BITS_PER_SECOND | GIGA_BYTES | GIGA_BYTES_PER_SECOND | KILO_BITS | KILO_BITS_PER_SECOND | KILO_BYTES | KILO_BYTES_PER_SECOND | MEGA_BITS | MEGA_BITS_PER_SECOND | MEGA_BYTES | MEGA_BYTES_PER_SECOND | MICRO_SECONDS | MILLI_SECONDS | NONE | PERCENT | SECONDS | TERA_BITS | TERA_BITS_PER_SECOND | TERA_BYTES | TERA_BYTES_PER_SECOND` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", "type": "string" } }, @@ -56237,18 +69103,28 @@ "additionalProperties": false, "properties": { "MaximumCapacityUnits": { + "markdownDescription": "The upper boundary of EC2 units\\. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets\\. Managed scaling activities are not allowed beyond this boundary\\. The limit only applies to the core and task nodes\\. The master node cannot be scaled after initial configuration\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumCapacityUnits", "type": "number" }, "MaximumCoreCapacityUnits": { + "markdownDescription": "The upper boundary of EC2 units for core node type in a cluster\\. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets\\. The core units are not allowed to scale beyond this boundary\\. The parameter is used to split capacity allocation between core and task nodes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumCoreCapacityUnits", "type": "number" }, "MaximumOnDemandCapacityUnits": { + "markdownDescription": "The upper boundary of On\\-Demand EC2 units\\. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets\\. The On\\-Demand units are not allowed to scale beyond this boundary\\. The parameter is used to split capacity allocation between On\\-Demand and Spot Instances\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumOnDemandCapacityUnits", "type": "number" }, "MinimumCapacityUnits": { + "markdownDescription": "The lower boundary of EC2 units\\. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets\\. Managed scaling activities are not allowed beyond this boundary\\. The limit only applies to the core and task nodes\\. The master node cannot be scaled after initial configuration\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinimumCapacityUnits", "type": "number" }, "UnitType": { + "markdownDescription": "The unit type used for specifying a managed scaling policy\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `InstanceFleetUnits | Instances | VCPU` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnitType", "type": "string" } }, @@ -56263,21 +69139,27 @@ "additionalProperties": false, "properties": { "Classification": { + "markdownDescription": "The classification within a configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Classification", "type": "string" }, "ConfigurationProperties": { "additionalProperties": true, + "markdownDescription": "A list of additional configurations to apply within a configuration object\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "ConfigurationProperties", "type": "object" }, "Configurations": { "items": { "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" }, + "markdownDescription": "A list of additional configurations to apply within a configuration object\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-elasticmapreduce-cluster-configuration.html#aws-properties-elasticmapreduce-cluster-configuration) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configurations", "type": "array" } }, @@ -56287,9 +69169,13 @@ "additionalProperties": false, "properties": { "VolumeSpecification": { - "$ref": "#/definitions/AWS::EMR::Cluster.VolumeSpecification" + "$ref": "#/definitions/AWS::EMR::Cluster.VolumeSpecification", + "markdownDescription": "EBS volume specifications such as volume type, IOPS, and size \\(GiB\\) that will be requested for the EBS volume attached to an EC2 instance in the cluster\\. \n*Required*: Yes \n*Type*: [VolumeSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-volumespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeSpecification" }, "VolumesPerInstance": { + "markdownDescription": "Number of EBS volumes with a specific volume configuration that will be associated with every instance in the instance group \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumesPerInstance", "type": "number" } }, @@ -56305,9 +69191,13 @@ "items": { "$ref": "#/definitions/AWS::EMR::Cluster.EbsBlockDeviceConfig" }, + "markdownDescription": "An array of Amazon EBS volume specifications attached to a cluster instance\\. \n*Required*: No \n*Type*: List of [EbsBlockDeviceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsblockdeviceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EbsBlockDeviceConfigs", "type": "array" }, "EbsOptimized": { + "markdownDescription": "Indicates whether an Amazon EBS volume is EBS\\-optimized\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EbsOptimized", "type": "boolean" } }, @@ -56320,18 +69210,26 @@ "items": { "type": "string" }, + "markdownDescription": "A list of command line arguments passed to the JAR file's main function when executed\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Args", "type": "array" }, "Jar": { + "markdownDescription": "A path to a JAR file run during the step\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Jar", "type": "string" }, "MainClass": { + "markdownDescription": "The name of the main class in the specified Java file\\. If not specified, the JAR file should specify a Main\\-Class in its manifest file\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MainClass", "type": "string" }, "StepProperties": { "items": { "$ref": "#/definitions/AWS::EMR::Cluster.KeyValue" }, + "markdownDescription": "A list of Java properties that are set when the step runs\\. You can use these properties to pass key\\-value pairs to your main function\\. \n*Required*: No \n*Type*: List of [KeyValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-keyvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StepProperties", "type": "array" } }, @@ -56347,18 +69245,28 @@ "items": { "$ref": "#/definitions/AWS::EMR::Cluster.InstanceTypeConfig" }, + "markdownDescription": "The instance type configurations that define the EC2 instances in the instance fleet\\. \n*Required*: No \n*Type*: List of [InstanceTypeConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancetypeconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceTypeConfigs", "type": "array" }, "LaunchSpecifications": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications" + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications", + "markdownDescription": "The launch specification for the instance fleet\\. \n*Required*: No \n*Type*: [InstanceFleetProvisioningSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetprovisioningspecifications.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchSpecifications" }, "Name": { + "markdownDescription": "The friendly name of the instance fleet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "TargetOnDemandCapacity": { + "markdownDescription": "The target capacity of On\\-Demand units for the instance fleet, which determines how many On\\-Demand instances to provision\\. When the instance fleet launches, Amazon EMR tries to provision On\\-Demand instances as specified by `InstanceTypeConfig`\\. Each instance configuration has a specified `WeightedCapacity`\\. When an On\\-Demand instance is provisioned, the `WeightedCapacity` units count toward the target capacity\\. Amazon EMR provisions instances until the target capacity is totally fulfilled, even if this results in an overage\\. For example, if there are 2 units remaining to fulfill capacity, and Amazon EMR can only provision an instance with a `WeightedCapacity` of 5 units, the instance is provisioned, and the target capacity is exceeded by 3 units\\. \nIf not specified or set to 0, only Spot instances are provisioned for the instance fleet using `TargetSpotCapacity`\\. At least one of `TargetSpotCapacity` and `TargetOnDemandCapacity` should be greater than 0\\. For a master instance fleet, only one of `TargetSpotCapacity` and `TargetOnDemandCapacity` can be specified, and its value must be 1\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetOnDemandCapacity", "type": "number" }, "TargetSpotCapacity": { + "markdownDescription": "The target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision\\. When the instance fleet launches, Amazon EMR tries to provision Spot instances as specified by `InstanceTypeConfig`\\. Each instance configuration has a specified `WeightedCapacity`\\. When a Spot instance is provisioned, the `WeightedCapacity` units count toward the target capacity\\. Amazon EMR provisions instances until the target capacity is totally fulfilled, even if this results in an overage\\. For example, if there are 2 units remaining to fulfill capacity, and Amazon EMR can only provision an instance with a `WeightedCapacity` of 5 units, the instance is provisioned, and the target capacity is exceeded by 3 units\\. \nIf not specified or set to 0, only On\\-Demand instances are provisioned for the instance fleet\\. At least one of `TargetSpotCapacity` and `TargetOnDemandCapacity` should be greater than 0\\. For a master instance fleet, only one of `TargetSpotCapacity` and `TargetOnDemandCapacity` can be specified, and its value must be 1\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetSpotCapacity", "type": "number" } }, @@ -56368,10 +69276,14 @@ "additionalProperties": false, "properties": { "OnDemandSpecification": { - "$ref": "#/definitions/AWS::EMR::Cluster.OnDemandProvisioningSpecification" + "$ref": "#/definitions/AWS::EMR::Cluster.OnDemandProvisioningSpecification", + "markdownDescription": "The launch specification for On\\-Demand Instances in the instance fleet, which determines the allocation strategy\\. \nThe instance fleet configuration is available only in Amazon EMR versions 4\\.8\\.0 and later, excluding 5\\.0\\.x versions\\. On\\-Demand Instances allocation strategy is available in Amazon EMR version 5\\.12\\.1 and later\\.\n*Required*: No \n*Type*: [OnDemandProvisioningSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ondemandprovisioningspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnDemandSpecification" }, "SpotSpecification": { - "$ref": "#/definitions/AWS::EMR::Cluster.SpotProvisioningSpecification" + "$ref": "#/definitions/AWS::EMR::Cluster.SpotProvisioningSpecification", + "markdownDescription": "The launch specification for Spot Instances in the fleet, which determines the defined duration, provisioning timeout behavior, and allocation strategy\\. \n*Required*: No \n*Type*: [SpotProvisioningSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-spotprovisioningspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpotSpecification" } }, "type": "object" @@ -56380,33 +69292,51 @@ "additionalProperties": false, "properties": { "AutoScalingPolicy": { - "$ref": "#/definitions/AWS::EMR::Cluster.AutoScalingPolicy" + "$ref": "#/definitions/AWS::EMR::Cluster.AutoScalingPolicy", + "markdownDescription": "`AutoScalingPolicy` is a subproperty of the [InstanceGroupConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-jobflowinstancesconfig-instancegroupconfig.html) property type that specifies the constraints and rules of an automatic scaling policy in Amazon EMR\\. The automatic scaling policy defines how an instance group dynamically adds and terminates EC2 instances in response to the value of a CloudWatch metric\\. Only core and task instance groups can use automatic scaling policies\\. For more information, see [Using Automatic Scaling in Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html)\\. \n*Required*: No \n*Type*: [AutoScalingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-autoscalingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoScalingPolicy" }, "BidPrice": { + "markdownDescription": "If specified, indicates that the instance group uses Spot Instances\\. This is the maximum price you are willing to pay for Spot Instances\\. Specify `OnDemandPrice` to set the amount equal to the On\\-Demand price, or specify an amount in USD\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BidPrice", "type": "string" }, "Configurations": { "items": { "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" }, + "markdownDescription": "Amazon EMR releases 4\\.x or later\\.\nThe list of configurations supplied for an EMR cluster instance group\\. You can specify a separate configuration for each instance group \\(master, core, and task\\)\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-configuration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Configurations", "type": "array" }, "CustomAmiId": { + "markdownDescription": "The custom AMI ID to use for the provisioned instance group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomAmiId", "type": "string" }, "EbsConfiguration": { - "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration" + "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration", + "markdownDescription": "EBS configurations that will be attached to each EC2 instance in the instance group\\. \n*Required*: No \n*Type*: [EbsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsConfiguration" }, "InstanceCount": { + "markdownDescription": "Target number of instances for the instance group\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceCount", "type": "number" }, "InstanceType": { + "markdownDescription": "The EC2 instance type for all instances in the instance group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", "type": "string" }, "Market": { + "markdownDescription": "Market type of the EC2 instances used to create a cluster node\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ON_DEMAND | SPOT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Market", "type": "string" }, "Name": { + "markdownDescription": "Friendly name given to the instance group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" } }, @@ -56420,27 +69350,41 @@ "additionalProperties": false, "properties": { "BidPrice": { + "markdownDescription": "The bid price for each EC2 Spot Instance type as defined by `InstanceType`\\. Expressed in USD\\. If neither `BidPrice` nor `BidPriceAsPercentageOfOnDemandPrice` is provided, `BidPriceAsPercentageOfOnDemandPrice` defaults to 100%\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BidPrice", "type": "string" }, "BidPriceAsPercentageOfOnDemandPrice": { + "markdownDescription": "The bid price, as a percentage of On\\-Demand price, for each EC2 Spot Instance as defined by `InstanceType`\\. Expressed as a number \\(for example, 20 specifies 20%\\)\\. If neither `BidPrice` nor `BidPriceAsPercentageOfOnDemandPrice` is provided, `BidPriceAsPercentageOfOnDemandPrice` defaults to 100%\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BidPriceAsPercentageOfOnDemandPrice", "type": "number" }, "Configurations": { "items": { "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" }, + "markdownDescription": "A configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-configuration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Configurations", "type": "array" }, "CustomAmiId": { + "markdownDescription": "The custom AMI ID to use for the instance type\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomAmiId", "type": "string" }, "EbsConfiguration": { - "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration" + "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration", + "markdownDescription": "The configuration of Amazon Elastic Block Store \\(Amazon EBS\\) attached to each instance as defined by `InstanceType`\\. \n*Required*: No \n*Type*: [EbsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsConfiguration" }, "InstanceType": { + "markdownDescription": "An EC2 instance type, such as `m3.xlarge`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", "type": "string" }, "WeightedCapacity": { + "markdownDescription": "The number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in `InstanceFleetConfig`\\. This value is 1 for a master instance fleet, and must be 1 or greater for core and task instance fleets\\. Defaults to 1 if not specified\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WeightedCapacity", "type": "number" } }, @@ -56456,54 +69400,84 @@ "items": { "type": "string" }, + "markdownDescription": "A list of additional Amazon EC2 security group IDs for the master node\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AdditionalMasterSecurityGroups", "type": "array" }, "AdditionalSlaveSecurityGroups": { "items": { "type": "string" }, + "markdownDescription": "A list of additional Amazon EC2 security group IDs for the core and task nodes\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AdditionalSlaveSecurityGroups", "type": "array" }, "CoreInstanceFleet": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig", + "markdownDescription": "Describes the EC2 instances and instance configurations for the core instance fleet when using clusters with the instance fleet configuration\\. \n*Required*: No \n*Type*: [InstanceFleetConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CoreInstanceFleet" }, "CoreInstanceGroup": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig", + "markdownDescription": "Describes the EC2 instances and instance configurations for core instance groups when using clusters with the uniform instance group configuration\\. \n*Required*: No \n*Type*: [InstanceGroupConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CoreInstanceGroup" }, "Ec2KeyName": { + "markdownDescription": "The name of the EC2 key pair that can be used to connect to the master node using SSH as the user called \"hadoop\\.\" \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ec2KeyName", "type": "string" }, "Ec2SubnetId": { + "markdownDescription": "Applies to clusters that use the uniform instance group configuration\\. To launch the cluster in Amazon Virtual Private Cloud \\(Amazon VPC\\), set this parameter to the identifier of the Amazon VPC subnet where you want the cluster to launch\\. If you do not specify this value and your account supports EC2\\-Classic, the cluster launches in EC2\\-Classic\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ec2SubnetId", "type": "string" }, "Ec2SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "Applies to clusters that use the instance fleet configuration\\. When multiple EC2 subnet IDs are specified, Amazon EMR evaluates them and launches instances in the optimal subnet\\. \nThe instance fleet configuration is available only in Amazon EMR versions 4\\.8\\.0 and later, excluding 5\\.0\\.x versions\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ec2SubnetIds", "type": "array" }, "EmrManagedMasterSecurityGroup": { + "markdownDescription": "The identifier of the Amazon EC2 security group for the master node\\. If you specify `EmrManagedMasterSecurityGroup`, you must also specify `EmrManagedSlaveSecurityGroup`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EmrManagedMasterSecurityGroup", "type": "string" }, "EmrManagedSlaveSecurityGroup": { + "markdownDescription": "The identifier of the Amazon EC2 security group for the core and task nodes\\. If you specify `EmrManagedSlaveSecurityGroup`, you must also specify `EmrManagedMasterSecurityGroup`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EmrManagedSlaveSecurityGroup", "type": "string" }, "HadoopVersion": { + "markdownDescription": "Applies only to Amazon EMR release versions earlier than 4\\.0\\. The Hadoop version for the cluster\\. Valid inputs are \"0\\.18\" \\(no longer maintained\\), \"0\\.20\" \\(no longer maintained\\), \"0\\.20\\.205\" \\(no longer maintained\\), \"1\\.0\\.3\", \"2\\.2\\.0\", or \"2\\.4\\.0\"\\. If you do not set this value, the default of 0\\.18 is used, unless the `AmiVersion` parameter is set in the RunJobFlow call, in which case the default version of Hadoop for that AMI version is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HadoopVersion", "type": "string" }, "KeepJobFlowAliveWhenNoSteps": { + "markdownDescription": "Specifies whether the cluster should remain available after completing all steps\\. Defaults to `true`\\. For more information about configuring cluster termination, see [Control Cluster Termination](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html) in the *EMR Management Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeepJobFlowAliveWhenNoSteps", "type": "boolean" }, "MasterInstanceFleet": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig", + "markdownDescription": "Describes the EC2 instances and instance configurations for the master instance fleet when using clusters with the instance fleet configuration\\. \n*Required*: No \n*Type*: [InstanceFleetConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MasterInstanceFleet" }, "MasterInstanceGroup": { - "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig", + "markdownDescription": "Describes the EC2 instances and instance configurations for the master instance group when using clusters with the uniform instance group configuration\\. \n*Required*: No \n*Type*: [InstanceGroupConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MasterInstanceGroup" }, "Placement": { - "$ref": "#/definitions/AWS::EMR::Cluster.PlacementType" + "$ref": "#/definitions/AWS::EMR::Cluster.PlacementType", + "markdownDescription": "The Availability Zone in which the cluster runs\\. \n*Required*: No \n*Type*: [PlacementType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-placementtype.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Placement" }, "ServiceAccessSecurityGroup": { + "markdownDescription": "The identifier of the Amazon EC2 security group for the Amazon EMR service to access clusters in VPC private subnets\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceAccessSecurityGroup", "type": "string" }, "TaskInstanceFleets": { @@ -56519,6 +69493,8 @@ "type": "array" }, "TerminationProtected": { + "markdownDescription": "Specifies whether to lock the cluster to prevent the Amazon EC2 instances from being terminated by API call, user intervention, or in the event of a job\\-flow error\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TerminationProtected", "type": "boolean" } }, @@ -56528,18 +69504,28 @@ "additionalProperties": false, "properties": { "ADDomainJoinPassword": { + "markdownDescription": "The Active Directory password for `ADDomainJoinUser`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ADDomainJoinPassword", "type": "string" }, "ADDomainJoinUser": { + "markdownDescription": "Required only when establishing a cross\\-realm trust with an Active Directory domain\\. A user with sufficient privileges to join resources to the domain\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ADDomainJoinUser", "type": "string" }, "CrossRealmTrustPrincipalPassword": { + "markdownDescription": "Required only when establishing a cross\\-realm trust with a KDC in a different realm\\. The cross\\-realm principal password, which must be identical across realms\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CrossRealmTrustPrincipalPassword", "type": "string" }, "KdcAdminPassword": { + "markdownDescription": "The password used within the cluster for the kadmin service on the cluster\\-dedicated KDC, which maintains Kerberos principals, password policies, and keytabs for the cluster\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KdcAdminPassword", "type": "string" }, "Realm": { + "markdownDescription": "The name of the Kerberos realm to which all nodes in a cluster belong\\. For example, `EC2.INTERNAL`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Realm", "type": "string" } }, @@ -56553,9 +69539,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The unique identifier of a key\\-value pair\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The value part of the identified key\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -56565,7 +69555,9 @@ "additionalProperties": false, "properties": { "ComputeLimits": { - "$ref": "#/definitions/AWS::EMR::Cluster.ComputeLimits" + "$ref": "#/definitions/AWS::EMR::Cluster.ComputeLimits", + "markdownDescription": "The EC2 unit limits for a managed scaling policy\\. The managed scaling activity of a cluster is not allowed to go above or below these limits\\. The limit only applies to the core and task nodes\\. The master node cannot be scaled after initial configuration\\. \n*Required*: No \n*Type*: [ComputeLimits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-computelimits.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputeLimits" } }, "type": "object" @@ -56574,9 +69566,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The dimension name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The dimension value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -56590,6 +69586,8 @@ "additionalProperties": false, "properties": { "AllocationStrategy": { + "markdownDescription": "Specifies the strategy to use in launching On\\-Demand instance fleets\\. Currently, the only option is `lowest-price` \\(the default\\), which launches the lowest price first\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `lowest-price` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocationStrategy", "type": "string" } }, @@ -56602,6 +69600,8 @@ "additionalProperties": false, "properties": { "AvailabilityZone": { + "markdownDescription": "The Amazon EC2 Availability Zone for the cluster\\. `AvailabilityZone` is used for uniform instance groups, while `AvailabilityZones` \\(plural\\) is used for instance fleets\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", "type": "string" } }, @@ -56614,10 +69614,14 @@ "additionalProperties": false, "properties": { "Market": { + "markdownDescription": "Not available for instance groups\\. Instance groups use the market type specified for the group\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ON_DEMAND | SPOT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Market", "type": "string" }, "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/AWS::EMR::Cluster.SimpleScalingPolicyConfiguration" + "$ref": "#/definitions/AWS::EMR::Cluster.SimpleScalingPolicyConfiguration", + "markdownDescription": "The type of adjustment the automatic scaling activity makes when triggered, and the periodicity of the adjustment\\. \n*Required*: Yes \n*Type*: [SimpleScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-simplescalingpolicyconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SimpleScalingPolicyConfiguration" } }, "required": [ @@ -56629,9 +69633,13 @@ "additionalProperties": false, "properties": { "MaxCapacity": { + "markdownDescription": "The upper boundary of EC2 instances in an instance group beyond which scaling activities are not allowed to grow\\. Scale\\-out activities will not add instances beyond this boundary\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacity", "type": "number" }, "MinCapacity": { + "markdownDescription": "The lower boundary of EC2 instances in an instance group below which scaling activities are not allowed to shrink\\. Scale\\-in activities will not terminate instances below this boundary\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinCapacity", "type": "number" } }, @@ -56645,16 +69653,24 @@ "additionalProperties": false, "properties": { "Action": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScalingAction" + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingAction", + "markdownDescription": "The conditions that trigger an automatic scaling activity\\. \n*Required*: Yes \n*Type*: [ScalingAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" }, "Description": { + "markdownDescription": "A friendly, more verbose description of the automatic scaling rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name used to identify an automatic scaling rule\\. Rule names must be unique within a scaling policy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Trigger": { - "$ref": "#/definitions/AWS::EMR::Cluster.ScalingTrigger" + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingTrigger", + "markdownDescription": "The CloudWatch alarm definition that determines when automatic scaling activity is triggered\\. \n*Required*: Yes \n*Type*: [ScalingTrigger](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingtrigger.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Trigger" } }, "required": [ @@ -56668,7 +69684,9 @@ "additionalProperties": false, "properties": { "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/AWS::EMR::Cluster.CloudWatchAlarmDefinition" + "$ref": "#/definitions/AWS::EMR::Cluster.CloudWatchAlarmDefinition", + "markdownDescription": "The definition of a CloudWatch metric alarm\\. When the defined alarm conditions are met along with other trigger parameters, scaling activity begins\\. \n*Required*: Yes \n*Type*: [CloudWatchAlarmDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchAlarmDefinition" } }, "required": [ @@ -56683,9 +69701,13 @@ "items": { "type": "string" }, + "markdownDescription": "A list of command line arguments to pass to the bootstrap action script\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Args", "type": "array" }, "Path": { + "markdownDescription": "Location in Amazon S3 of the script to run during a bootstrap action\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", "type": "string" } }, @@ -56698,12 +69720,18 @@ "additionalProperties": false, "properties": { "AdjustmentType": { + "markdownDescription": "The way in which EC2 instances are added \\(if `ScalingAdjustment` is a positive number\\) or terminated \\(if `ScalingAdjustment` is a negative number\\) each time the scaling activity is triggered\\. `CHANGE_IN_CAPACITY` is the default\\. `CHANGE_IN_CAPACITY` indicates that the EC2 instance count increments or decrements by `ScalingAdjustment`, which should be expressed as an integer\\. `PERCENT_CHANGE_IN_CAPACITY` indicates the instance count increments or decrements by the percentage specified by `ScalingAdjustment`, which should be expressed as an integer\\. For example, 20 indicates an increase in 20% increments of cluster capacity\\. `EXACT_CAPACITY` indicates the scaling activity results in an instance group with the number of EC2 instances specified by `ScalingAdjustment`, which should be expressed as a positive integer\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CHANGE_IN_CAPACITY | EXACT_CAPACITY | PERCENT_CHANGE_IN_CAPACITY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdjustmentType", "type": "string" }, "CoolDown": { + "markdownDescription": "The amount of time, in seconds, after a scaling activity completes before any further trigger\\-related scaling activities can start\\. The default value is 0\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CoolDown", "type": "number" }, "ScalingAdjustment": { + "markdownDescription": "The amount by which to scale in or scale out, based on the specified `AdjustmentType`\\. A positive value adds to the instance group's EC2 instance count while a negative number removes instances\\. If `AdjustmentType` is set to `EXACT_CAPACITY`, the number should only be a positive integer\\. If `AdjustmentType` is set to `PERCENT_CHANGE_IN_CAPACITY`, the value should express the percentage as an integer\\. For example, \\-20 indicates a decrease in 20% increments of cluster capacity\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalingAdjustment", "type": "number" } }, @@ -56716,15 +69744,23 @@ "additionalProperties": false, "properties": { "AllocationStrategy": { + "markdownDescription": "Specifies the strategy to use in launching Spot Instance fleets\\. Currently, the only option is capacity\\-optimized \\(the default\\), which launches instances from Spot Instance pools with optimal capacity for the number of instances that are launching\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `capacity-optimized` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocationStrategy", "type": "string" }, "BlockDurationMinutes": { + "markdownDescription": "The defined duration for Spot Instances \\(also known as Spot blocks\\) in minutes\\. When specified, the Spot Instance does not terminate before the defined duration expires, and defined duration pricing for Spot Instances applies\\. Valid values are 60, 120, 180, 240, 300, or 360\\. The duration period starts as soon as a Spot Instance receives its instance ID\\. At the end of the duration, Amazon EC2 marks the Spot Instance for termination and provides a Spot Instance termination notice, which gives the instance a two\\-minute warning before it terminates\\. \nSpot Instances with a defined duration \\(also known as Spot blocks\\) are no longer available to new customers from July 1, 2021\\. For customers who have previously used the feature, we will continue to support Spot Instances with a defined duration until December 31, 2022\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockDurationMinutes", "type": "number" }, "TimeoutAction": { + "markdownDescription": "The action to take when `TargetSpotCapacity` has not been fulfilled when the `TimeoutDurationMinutes` has expired; that is, when all Spot Instances could not be provisioned within the Spot provisioning timeout\\. Valid values are `TERMINATE_CLUSTER` and `SWITCH_TO_ON_DEMAND`\\. SWITCH\\_TO\\_ON\\_DEMAND specifies that if no Spot Instances are available, On\\-Demand Instances should be provisioned to fulfill any remaining Spot capacity\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SWITCH_TO_ON_DEMAND | TERMINATE_CLUSTER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutAction", "type": "string" }, "TimeoutDurationMinutes": { + "markdownDescription": "The spot provisioning timeout period in minutes\\. If Spot Instances are not provisioned within this time period, the `TimeOutAction` is taken\\. Minimum value is 5 and maximum value is 1440\\. The timeout applies only during initial provisioning, when the cluster is first created\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutDurationMinutes", "type": "number" } }, @@ -56738,12 +69774,18 @@ "additionalProperties": false, "properties": { "ActionOnFailure": { + "markdownDescription": "The action to take when the cluster step fails\\. Possible values are `CANCEL_AND_WAIT` and `CONTINUE`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionOnFailure", "type": "string" }, "HadoopJarStep": { - "$ref": "#/definitions/AWS::EMR::Cluster.HadoopJarStepConfig" + "$ref": "#/definitions/AWS::EMR::Cluster.HadoopJarStepConfig", + "markdownDescription": "The JAR file used for the step\\. \n*Required*: Yes \n*Type*: [HadoopJarStepConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-hadoopjarstepconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HadoopJarStep" }, "Name": { + "markdownDescription": "The name of the step\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -56757,12 +69799,18 @@ "additionalProperties": false, "properties": { "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\) that the volume supports\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iops", "type": "number" }, "SizeInGB": { + "markdownDescription": "The volume size, in gibibytes \\(GiB\\)\\. This can be a number from 1 \\- 1024\\. If the volume type is EBS\\-optimized, the minimum value is 10\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SizeInGB", "type": "number" }, "VolumeType": { + "markdownDescription": "The volume type\\. Volume types supported are gp2, io1, and standard\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeType", "type": "string" } }, @@ -56808,27 +69856,41 @@ "additionalProperties": false, "properties": { "ClusterId": { + "markdownDescription": "The unique identifier of the EMR cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterId", "type": "string" }, "InstanceFleetType": { + "markdownDescription": "The node type that the instance fleet hosts\\. \n*Allowed Values*: TASK \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceFleetType", "type": "string" }, "InstanceTypeConfigs": { "items": { "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceTypeConfig" }, + "markdownDescription": "`InstanceTypeConfigs` determine the EC2 instances that Amazon EMR attempts to provision to fulfill On\\-Demand and Spot target capacities\\. \nThe instance fleet configuration is available only in Amazon EMR versions 4\\.8\\.0 and later, excluding 5\\.0\\.x versions\\.\n*Required*: No \n*Type*: List of [InstanceTypeConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancetypeconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceTypeConfigs", "type": "array" }, "LaunchSpecifications": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications" + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications", + "markdownDescription": "The launch specification for the instance fleet\\. \n*Required*: No \n*Type*: [InstanceFleetProvisioningSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancefleetprovisioningspecifications.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchSpecifications" }, "Name": { + "markdownDescription": "The friendly name of the instance fleet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "TargetOnDemandCapacity": { + "markdownDescription": "The target capacity of On\\-Demand units for the instance fleet, which determines how many On\\-Demand instances to provision\\. When the instance fleet launches, Amazon EMR tries to provision On\\-Demand instances as specified by `InstanceTypeConfig`\\. Each instance configuration has a specified `WeightedCapacity`\\. When an On\\-Demand instance is provisioned, the `WeightedCapacity` units count toward the target capacity\\. Amazon EMR provisions instances until the target capacity is totally fulfilled, even if this results in an overage\\. For example, if there are 2 units remaining to fulfill capacity, and Amazon EMR can only provision an instance with a `WeightedCapacity` of 5 units, the instance is provisioned, and the target capacity is exceeded by 3 units\\. \nIf not specified or set to 0, only Spot instances are provisioned for the instance fleet using `TargetSpotCapacity`\\. At least one of `TargetSpotCapacity` and `TargetOnDemandCapacity` should be greater than 0\\. For a master instance fleet, only one of `TargetSpotCapacity` and `TargetOnDemandCapacity` can be specified, and its value must be 1\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetOnDemandCapacity", "type": "number" }, "TargetSpotCapacity": { + "markdownDescription": "The target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision\\. When the instance fleet launches, Amazon EMR tries to provision Spot instances as specified by `InstanceTypeConfig`\\. Each instance configuration has a specified `WeightedCapacity`\\. When a Spot instance is provisioned, the `WeightedCapacity` units count toward the target capacity\\. Amazon EMR provisions instances until the target capacity is totally fulfilled, even if this results in an overage\\. For example, if there are 2 units remaining to fulfill capacity, and Amazon EMR can only provision an instance with a `WeightedCapacity` of 5 units, the instance is provisioned, and the target capacity is exceeded by 3 units\\. \nIf not specified or set to 0, only On\\-Demand instances are provisioned for the instance fleet\\. At least one of `TargetSpotCapacity` and `TargetOnDemandCapacity` should be greater than 0\\. For a master instance fleet, only one of `TargetSpotCapacity` and `TargetOnDemandCapacity` can be specified, and its value must be 1\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetSpotCapacity", "type": "number" } }, @@ -56863,21 +69925,27 @@ "additionalProperties": false, "properties": { "Classification": { + "markdownDescription": "The classification within a configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Classification", "type": "string" }, "ConfigurationProperties": { "additionalProperties": true, + "markdownDescription": "Within a configuration classification, a set of properties that represent the settings that you want to change in the configuration file\\. Duplicates not allowed\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "ConfigurationProperties", "type": "object" }, "Configurations": { "items": { "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration" }, + "markdownDescription": "A list of additional configurations to apply within a configuration object\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-elasticmapreduce-instancefleetconfig-configuration.html#aws-properties-elasticmapreduce-instancefleetconfig-configuration) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Configurations", "type": "array" } }, @@ -56887,9 +69955,13 @@ "additionalProperties": false, "properties": { "VolumeSpecification": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.VolumeSpecification" + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.VolumeSpecification", + "markdownDescription": "EBS volume specifications such as volume type, IOPS, and size \\(GiB\\) that will be requested for the EBS volume attached to an EC2 instance in the cluster\\. \n*Required*: Yes \n*Type*: [VolumeSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-volumespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeSpecification" }, "VolumesPerInstance": { + "markdownDescription": "Number of EBS volumes with a specific volume configuration that will be associated with every instance in the instance group \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumesPerInstance", "type": "number" } }, @@ -56905,9 +69977,13 @@ "items": { "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig" }, + "markdownDescription": "An array of Amazon EBS volume specifications attached to a cluster instance\\. \n*Required*: No \n*Type*: List of [EbsBlockDeviceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ebsblockdeviceconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsBlockDeviceConfigs", "type": "array" }, "EbsOptimized": { + "markdownDescription": "Indicates whether an Amazon EBS volume is EBS\\-optimized\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsOptimized", "type": "boolean" } }, @@ -56917,10 +69993,14 @@ "additionalProperties": false, "properties": { "OnDemandSpecification": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.OnDemandProvisioningSpecification" + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.OnDemandProvisioningSpecification", + "markdownDescription": "The launch specification for On\\-Demand Instances in the instance fleet, which determines the allocation strategy\\. \nThe instance fleet configuration is available only in Amazon EMR versions 4\\.8\\.0 and later, excluding 5\\.0\\.x versions\\. On\\-Demand Instances allocation strategy is available in Amazon EMR version 5\\.12\\.1 and later\\.\n*Required*: No \n*Type*: [OnDemandProvisioningSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ondemandprovisioningspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnDemandSpecification" }, "SpotSpecification": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification" + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification", + "markdownDescription": "The launch specification for Spot Instances in the fleet, which determines the defined duration, provisioning timeout behavior, and allocation strategy\\. \n*Required*: No \n*Type*: [SpotProvisioningSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-spotprovisioningspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpotSpecification" } }, "type": "object" @@ -56929,27 +70009,41 @@ "additionalProperties": false, "properties": { "BidPrice": { + "markdownDescription": "The bid price for each EC2 Spot Instance type as defined by `InstanceType`\\. Expressed in USD\\. If neither `BidPrice` nor `BidPriceAsPercentageOfOnDemandPrice` is provided, `BidPriceAsPercentageOfOnDemandPrice` defaults to 100%\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BidPrice", "type": "string" }, "BidPriceAsPercentageOfOnDemandPrice": { + "markdownDescription": "The bid price, as a percentage of On\\-Demand price, for each EC2 Spot Instance as defined by `InstanceType`\\. Expressed as a number \\(for example, 20 specifies 20%\\)\\. If neither `BidPrice` nor `BidPriceAsPercentageOfOnDemandPrice` is provided, `BidPriceAsPercentageOfOnDemandPrice` defaults to 100%\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BidPriceAsPercentageOfOnDemandPrice", "type": "number" }, "Configurations": { "items": { "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration" }, + "markdownDescription": "Amazon EMR releases 4\\.x or later\\.\nAn optional configuration specification to be used when provisioning cluster instances, which can include configurations for applications and software bundled with Amazon EMR\\. A configuration consists of a classification, properties, and optional nested configurations\\. A classification refers to an application\\-specific configuration file\\. Properties are the settings you want to change in that file\\. For more information, see [Configuring Applications](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html)\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-configuration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Configurations", "type": "array" }, "CustomAmiId": { + "markdownDescription": "The custom AMI ID to use for the instance type\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomAmiId", "type": "string" }, "EbsConfiguration": { - "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsConfiguration" + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsConfiguration", + "markdownDescription": "The configuration of Amazon Elastic Block Store \\(Amazon EBS\\) attached to each instance as defined by `InstanceType`\\. \n*Required*: No \n*Type*: [EbsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ebsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsConfiguration" }, "InstanceType": { + "markdownDescription": "An EC2 instance type, such as `m3.xlarge`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", "type": "string" }, "WeightedCapacity": { + "markdownDescription": "The number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in `InstanceFleetConfig`\\. This value is 1 for a master instance fleet, and must be 1 or greater for core and task instance fleets\\. Defaults to 1 if not specified\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WeightedCapacity", "type": "number" } }, @@ -56962,6 +70056,8 @@ "additionalProperties": false, "properties": { "AllocationStrategy": { + "markdownDescription": "Specifies the strategy to use in launching On\\-Demand instance fleets\\. Currently, the only option is `lowest-price` \\(the default\\), which launches the lowest price first\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `lowest-price` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocationStrategy", "type": "string" } }, @@ -56974,15 +70070,23 @@ "additionalProperties": false, "properties": { "AllocationStrategy": { + "markdownDescription": "Specifies the strategy to use in launching Spot Instance fleets\\. Currently, the only option is capacity\\-optimized \\(the default\\), which launches instances from Spot Instance pools with optimal capacity for the number of instances that are launching\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `capacity-optimized` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocationStrategy", "type": "string" }, "BlockDurationMinutes": { + "markdownDescription": "The defined duration for Spot Instances \\(also known as Spot blocks\\) in minutes\\. When specified, the Spot Instance does not terminate before the defined duration expires, and defined duration pricing for Spot Instances applies\\. Valid values are 60, 120, 180, 240, 300, or 360\\. The duration period starts as soon as a Spot Instance receives its instance ID\\. At the end of the duration, Amazon EC2 marks the Spot Instance for termination and provides a Spot Instance termination notice, which gives the instance a two\\-minute warning before it terminates\\. \nSpot Instances with a defined duration \\(also known as Spot blocks\\) are no longer available to new customers from July 1, 2021\\. For customers who have previously used the feature, we will continue to support Spot Instances with a defined duration until December 31, 2022\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockDurationMinutes", "type": "number" }, "TimeoutAction": { + "markdownDescription": "The action to take when `TargetSpotCapacity` has not been fulfilled when the `TimeoutDurationMinutes` has expired; that is, when all Spot Instances could not be provisioned within the Spot provisioning timeout\\. Valid values are `TERMINATE_CLUSTER` and `SWITCH_TO_ON_DEMAND`\\. SWITCH\\_TO\\_ON\\_DEMAND specifies that if no Spot Instances are available, On\\-Demand Instances should be provisioned to fulfill any remaining Spot capacity\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SWITCH_TO_ON_DEMAND | TERMINATE_CLUSTER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutAction", "type": "string" }, "TimeoutDurationMinutes": { + "markdownDescription": "The spot provisioning timeout period in minutes\\. If Spot Instances are not provisioned within this time period, the `TimeOutAction` is taken\\. Minimum value is 5 and maximum value is 1440\\. The timeout applies only during initial provisioning, when the cluster is first created\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutDurationMinutes", "type": "number" } }, @@ -56996,12 +70100,18 @@ "additionalProperties": false, "properties": { "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\) that the volume supports\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Iops", "type": "number" }, "SizeInGB": { + "markdownDescription": "The volume size, in gibibytes \\(GiB\\)\\. This can be a number from 1 \\- 1024\\. If the volume type is EBS\\-optimized, the minimum value is 10\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SizeInGB", "type": "number" }, "VolumeType": { + "markdownDescription": "The volume type\\. Volume types supported are gp2, io1, and standard\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeType", "type": "string" } }, @@ -57047,39 +70157,61 @@ "additionalProperties": false, "properties": { "AutoScalingPolicy": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.AutoScalingPolicy" + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.AutoScalingPolicy", + "markdownDescription": "`AutoScalingPolicy` is a subproperty of `InstanceGroupConfig`\\. `AutoScalingPolicy` defines how an instance group dynamically adds and terminates EC2 instances in response to the value of a CloudWatch metric\\. For more information, see [Using Automatic Scaling in Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html) in the *Amazon EMR Management Guide*\\. \n*Required*: No \n*Type*: [AutoScalingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-autoscalingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoScalingPolicy" }, "BidPrice": { + "markdownDescription": "If specified, indicates that the instance group uses Spot Instances\\. This is the maximum price you are willing to pay for Spot Instances\\. Specify `OnDemandPrice` to set the amount equal to the On\\-Demand price, or specify an amount in USD\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BidPrice", "type": "string" }, "Configurations": { "items": { "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration" }, + "markdownDescription": "Amazon EMR releases 4\\.x or later\\.\nThe list of configurations supplied for an EMR cluster instance group\\. You can specify a separate configuration for each instance group \\(master, core, and task\\)\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-configuration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Configurations", "type": "array" }, "CustomAmiId": { + "markdownDescription": "The custom AMI ID to use for the provisioned instance group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomAmiId", "type": "string" }, "EbsConfiguration": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsConfiguration" + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsConfiguration", + "markdownDescription": "`EbsConfiguration` determines the EBS volumes to attach to EMR cluster instances\\. \n*Required*: No \n*Type*: [EbsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsConfiguration" }, "InstanceCount": { + "markdownDescription": "Target number of instances for the instance group\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceCount", "type": "number" }, "InstanceRole": { + "markdownDescription": "The role of the instance group in the cluster\\. \n*Allowed Values*: TASK \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceRole", "type": "string" }, "InstanceType": { + "markdownDescription": "The EC2 instance type for all instances in the instance group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", "type": "string" }, "JobFlowId": { + "markdownDescription": "The ID of an Amazon EMR cluster that you want to associate this instance group with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "JobFlowId", "type": "string" }, "Market": { + "markdownDescription": "Market type of the EC2 instances used to create a cluster node\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ON_DEMAND | SPOT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Market", "type": "string" }, "Name": { + "markdownDescription": "Friendly name given to the instance group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" } }, @@ -57116,12 +70248,16 @@ "additionalProperties": false, "properties": { "Constraints": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingConstraints" + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingConstraints", + "markdownDescription": "The upper and lower EC2 instance limits for an automatic scaling policy\\. Automatic scaling activity will not cause an instance group to grow above or below these limits\\. \n*Required*: Yes \n*Type*: [ScalingConstraints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingconstraints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Constraints" }, "Rules": { "items": { "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingRule" }, + "markdownDescription": "The scale\\-in and scale\\-out rules that comprise the automatic scaling policy\\. \n*Required*: Yes \n*Type*: List of [ScalingRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", "type": "array" } }, @@ -57135,33 +70271,51 @@ "additionalProperties": false, "properties": { "ComparisonOperator": { + "markdownDescription": "Determines how the metric specified by `MetricName` is compared to the value specified by `Threshold`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GREATER_THAN | GREATER_THAN_OR_EQUAL | LESS_THAN | LESS_THAN_OR_EQUAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComparisonOperator", "type": "string" }, "Dimensions": { "items": { "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.MetricDimension" }, + "markdownDescription": "A CloudWatch metric dimension\\. \n*Required*: No \n*Type*: List of [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", "type": "array" }, "EvaluationPeriods": { + "markdownDescription": "The number of periods, in five\\-minute increments, during which the alarm condition must exist before the alarm triggers automatic scaling activity\\. The default value is `1`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EvaluationPeriods", "type": "number" }, "MetricName": { + "markdownDescription": "The name of the CloudWatch metric that is watched to determine an alarm condition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", "type": "string" }, "Namespace": { + "markdownDescription": "The namespace for the CloudWatch metric\\. The default is `AWS/ElasticMapReduce`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", "type": "string" }, "Period": { + "markdownDescription": "The period, in seconds, over which the statistic is applied\\. EMR CloudWatch metrics are emitted every five minutes \\(300 seconds\\), so if an EMR CloudWatch metric is specified, specify `300`\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Period", "type": "number" }, "Statistic": { + "markdownDescription": "The statistic to apply to the metric associated with the alarm\\. The default is `AVERAGE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AVERAGE | MAXIMUM | MINIMUM | SAMPLE_COUNT | SUM` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statistic", "type": "string" }, "Threshold": { + "markdownDescription": "The value against which the specified statistic is compared\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Threshold", "type": "number" }, "Unit": { + "markdownDescription": "The unit of measure associated with the CloudWatch metric being watched\\. The value specified for `Unit` must correspond to the units specified in the CloudWatch metric\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BITS | BITS_PER_SECOND | BYTES | BYTES_PER_SECOND | COUNT | COUNT_PER_SECOND | GIGA_BITS | GIGA_BITS_PER_SECOND | GIGA_BYTES | GIGA_BYTES_PER_SECOND | KILO_BITS | KILO_BITS_PER_SECOND | KILO_BYTES | KILO_BYTES_PER_SECOND | MEGA_BITS | MEGA_BITS_PER_SECOND | MEGA_BYTES | MEGA_BYTES_PER_SECOND | MICRO_SECONDS | MILLI_SECONDS | NONE | PERCENT | SECONDS | TERA_BITS | TERA_BITS_PER_SECOND | TERA_BYTES | TERA_BYTES_PER_SECOND` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", "type": "string" } }, @@ -57177,21 +70331,27 @@ "additionalProperties": false, "properties": { "Classification": { + "markdownDescription": "The classification within a configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Classification", "type": "string" }, "ConfigurationProperties": { "additionalProperties": true, + "markdownDescription": "Within a configuration classification, a set of properties that represent the settings that you want to change in the configuration file\\. Duplicates not allowed\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "ConfigurationProperties", "type": "object" }, "Configurations": { "items": { "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration" }, + "markdownDescription": "A list of additional configurations to apply within a configuration object\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-emr-cluster-configuration.html#aws-properties-emr-cluster-configuration) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Configurations", "type": "array" } }, @@ -57201,9 +70361,13 @@ "additionalProperties": false, "properties": { "VolumeSpecification": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.VolumeSpecification" + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.VolumeSpecification", + "markdownDescription": "EBS volume specifications such as volume type, IOPS, and size \\(GiB\\) that will be requested for the EBS volume attached to an EC2 instance in the cluster\\. \n*Required*: Yes \n*Type*: [VolumeSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig-volumespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeSpecification" }, "VolumesPerInstance": { + "markdownDescription": "Number of EBS volumes with a specific volume configuration that will be associated with every instance in the instance group \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumesPerInstance", "type": "number" } }, @@ -57219,9 +70383,13 @@ "items": { "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig" }, + "markdownDescription": "An array of Amazon EBS volume specifications attached to a cluster instance\\. \n*Required*: No \n*Type*: List of [EbsBlockDeviceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EbsBlockDeviceConfigs", "type": "array" }, "EbsOptimized": { + "markdownDescription": "Indicates whether an Amazon EBS volume is EBS\\-optimized\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EbsOptimized", "type": "boolean" } }, @@ -57231,9 +70399,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The dimension name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The dimension value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -57247,10 +70419,14 @@ "additionalProperties": false, "properties": { "Market": { + "markdownDescription": "Not available for instance groups\\. Instance groups use the market type specified for the group\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ON_DEMAND | SPOT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Market", "type": "string" }, "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration" + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration", + "markdownDescription": "The type of adjustment the automatic scaling activity makes when triggered, and the periodicity of the adjustment\\. \n*Required*: Yes \n*Type*: [SimpleScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-simplescalingpolicyconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SimpleScalingPolicyConfiguration" } }, "required": [ @@ -57262,9 +70438,13 @@ "additionalProperties": false, "properties": { "MaxCapacity": { + "markdownDescription": "The upper boundary of EC2 instances in an instance group beyond which scaling activities are not allowed to grow\\. Scale\\-out activities will not add instances beyond this boundary\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacity", "type": "number" }, "MinCapacity": { + "markdownDescription": "The lower boundary of EC2 instances in an instance group below which scaling activities are not allowed to shrink\\. Scale\\-in activities will not terminate instances below this boundary\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinCapacity", "type": "number" } }, @@ -57278,16 +70458,24 @@ "additionalProperties": false, "properties": { "Action": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingAction" + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingAction", + "markdownDescription": "The conditions that trigger an automatic scaling activity\\. \n*Required*: Yes \n*Type*: [ScalingAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" }, "Description": { + "markdownDescription": "A friendly, more verbose description of the automatic scaling rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name used to identify an automatic scaling rule\\. Rule names must be unique within a scaling policy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Trigger": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingTrigger" + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingTrigger", + "markdownDescription": "The CloudWatch alarm definition that determines when automatic scaling activity is triggered\\. \n*Required*: Yes \n*Type*: [ScalingTrigger](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingtrigger.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Trigger" } }, "required": [ @@ -57301,7 +70489,9 @@ "additionalProperties": false, "properties": { "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition" + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition", + "markdownDescription": "The definition of a CloudWatch metric alarm\\. When the defined alarm conditions are met along with other trigger parameters, scaling activity begins\\. \n*Required*: Yes \n*Type*: [CloudWatchAlarmDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchAlarmDefinition" } }, "required": [ @@ -57313,12 +70503,18 @@ "additionalProperties": false, "properties": { "AdjustmentType": { + "markdownDescription": "The way in which EC2 instances are added \\(if `ScalingAdjustment` is a positive number\\) or terminated \\(if `ScalingAdjustment` is a negative number\\) each time the scaling activity is triggered\\. `CHANGE_IN_CAPACITY` is the default\\. `CHANGE_IN_CAPACITY` indicates that the EC2 instance count increments or decrements by `ScalingAdjustment`, which should be expressed as an integer\\. `PERCENT_CHANGE_IN_CAPACITY` indicates the instance count increments or decrements by the percentage specified by `ScalingAdjustment`, which should be expressed as an integer\\. For example, 20 indicates an increase in 20% increments of cluster capacity\\. `EXACT_CAPACITY` indicates the scaling activity results in an instance group with the number of EC2 instances specified by `ScalingAdjustment`, which should be expressed as a positive integer\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CHANGE_IN_CAPACITY | EXACT_CAPACITY | PERCENT_CHANGE_IN_CAPACITY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdjustmentType", "type": "string" }, "CoolDown": { + "markdownDescription": "The amount of time, in seconds, after a scaling activity completes before any further trigger\\-related scaling activities can start\\. The default value is 0\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CoolDown", "type": "number" }, "ScalingAdjustment": { + "markdownDescription": "The amount by which to scale in or scale out, based on the specified `AdjustmentType`\\. A positive value adds to the instance group's EC2 instance count while a negative number removes instances\\. If `AdjustmentType` is set to `EXACT_CAPACITY`, the number should only be a positive integer\\. If `AdjustmentType` is set to `PERCENT_CHANGE_IN_CAPACITY`, the value should express the percentage as an integer\\. For example, \\-20 indicates a decrease in 20% increments of cluster capacity\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalingAdjustment", "type": "number" } }, @@ -57331,12 +70527,18 @@ "additionalProperties": false, "properties": { "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\) that the volume supports\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iops", "type": "number" }, "SizeInGB": { + "markdownDescription": "The volume size, in gibibytes \\(GiB\\)\\. This can be a number from 1 \\- 1024\\. If the volume type is EBS\\-optimized, the minimum value is 10\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SizeInGB", "type": "number" }, "VolumeType": { + "markdownDescription": "The volume type\\. Volume types supported are gp2, io1, and standard\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeType", "type": "string" } }, @@ -57382,9 +70584,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the security configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "SecurityConfiguration": { + "markdownDescription": "The security configuration details in JSON format\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityConfiguration", "type": "object" } }, @@ -57450,15 +70656,23 @@ "additionalProperties": false, "properties": { "ActionOnFailure": { + "markdownDescription": "This specifies what action to take when the cluster step fails\\. Possible values are `CANCEL_AND_WAIT` and `CONTINUE`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ActionOnFailure", "type": "string" }, "HadoopJarStep": { - "$ref": "#/definitions/AWS::EMR::Step.HadoopJarStepConfig" + "$ref": "#/definitions/AWS::EMR::Step.HadoopJarStepConfig", + "markdownDescription": "The `HadoopJarStepConfig` property type specifies a job flow step consisting of a JAR file whose main function will be executed\\. The main function submits a job for the cluster to execute as a step on the master node, and then waits for the job to finish or fail before executing subsequent steps\\. \n*Required*: Yes \n*Type*: [HadoopJarStepConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-hadoopjarstepconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HadoopJarStep" }, "JobFlowId": { + "markdownDescription": "A string that uniquely identifies the cluster \\(job flow\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "JobFlowId", "type": "string" }, "Name": { + "markdownDescription": "The name of the cluster step\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" } }, @@ -57498,18 +70712,26 @@ "items": { "type": "string" }, + "markdownDescription": "A list of command line arguments passed to the JAR file's main function when executed\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Args", "type": "array" }, "Jar": { + "markdownDescription": "A path to a JAR file run during the step\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Jar", "type": "string" }, "MainClass": { + "markdownDescription": "The name of the main class in the specified Java file\\. If not specified, the JAR file should specify a Main\\-Class in its manifest file\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MainClass", "type": "string" }, "StepProperties": { "items": { "$ref": "#/definitions/AWS::EMR::Step.KeyValue" }, + "markdownDescription": "A list of Java properties that are set when the step runs\\. You can use these properties to pass key value pairs to your main function\\. \n*Required*: No \n*Type*: List of [KeyValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-keyvalue.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StepProperties", "type": "array" } }, @@ -57522,9 +70744,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The unique identifier of a key\\-value pair\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The value part of the identified key\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", "type": "string" } }, @@ -57566,48 +70792,74 @@ "additionalProperties": false, "properties": { "AuthMode": { + "markdownDescription": "Specifies whether the Studio authenticates users using AWS SSO or IAM\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `IAM | SSO` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthMode", "type": "string" }, "DefaultS3Location": { + "markdownDescription": "The Amazon S3 location to back up EMR Studio Workspaces and notebook files\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultS3Location", "type": "string" }, "Description": { + "markdownDescription": "A detailed description of the Amazon EMR Studio\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "EngineSecurityGroupId": { + "markdownDescription": "The ID of the Amazon EMR Studio Engine security group\\. The Engine security group allows inbound network traffic from the Workspace security group, and it must be in the same VPC specified by `VpcId`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineSecurityGroupId", "type": "string" }, "IdpAuthUrl": { + "markdownDescription": "Your identity provider's authentication endpoint\\. Amazon EMR Studio redirects federated users to this endpoint for authentication when logging in to a Studio with the Studio URL\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdpAuthUrl", "type": "string" }, "IdpRelayStateParameterName": { + "markdownDescription": "The name of your identity provider's `RelayState` parameter\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdpRelayStateParameterName", "type": "string" }, "Name": { + "markdownDescription": "A descriptive name for the Amazon EMR Studio\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "ServiceRole": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that will be assumed by the Amazon EMR Studio\\. The service role provides a way for Amazon EMR Studio to interoperate with other AWS services\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceRole", "type": "string" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "A list of subnet IDs to associate with the Amazon EMR Studio\\. A Studio can have a maximum of 5 subnets\\. The subnets must belong to the VPC specified by `VpcId`\\. Studio users can create a Workspace in any of the specified subnets\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "UserRole": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM user role that will be assumed by users and groups logged in to a Studio\\. The permissions attached to this IAM role can be scoped down for each user or group using session policies\\. You only need to specify `UserRole` when you set `AuthMode` to `SSO`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserRole", "type": "string" }, "VpcId": { + "markdownDescription": "The ID of the Amazon Virtual Private Cloud \\(Amazon VPC\\) to associate with the Studio\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" }, "WorkspaceSecurityGroupId": { + "markdownDescription": "The ID of the Workspace security group associated with the Amazon EMR Studio\\. The Workspace security group allows outbound network traffic to resources in the Engine security group and to the internet\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WorkspaceSecurityGroupId", "type": "string" } }, @@ -57680,15 +70932,23 @@ "additionalProperties": false, "properties": { "IdentityName": { + "markdownDescription": "The name of the user or group\\. For more information, see [UserName](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName) and [DisplayName](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName) in the *AWS SSO Identity Store API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IdentityName", "type": "string" }, "IdentityType": { + "markdownDescription": "Specifies whether the identity to map to the Amazon EMR Studio is a user or a group\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GROUP | USER` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IdentityType", "type": "string" }, "SessionPolicyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the session policy that will be applied to the user or group\\. Session policies refine Studio user permissions without the need to use multiple IAM user roles\\. For more information, see [Create an EMR Studio user role with session policies](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-user-role.html) in the *Amazon EMR Management Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionPolicyArn", "type": "string" }, "StudioId": { + "markdownDescription": "The ID of the Amazon EMR Studio to which the user or group will be mapped\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StudioId", "type": "string" } }, @@ -57757,15 +71017,21 @@ "additionalProperties": false, "properties": { "ContainerProvider": { - "$ref": "#/definitions/AWS::EMRContainers::VirtualCluster.ContainerProvider" + "$ref": "#/definitions/AWS::EMRContainers::VirtualCluster.ContainerProvider", + "markdownDescription": "The container provider of the virtual cluster\\. \n*Required*: Yes \n*Type*: [ContainerProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-containerprovider.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerProvider" }, "Name": { + "markdownDescription": "The name of the virtual cluster\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -57800,7 +71066,9 @@ "additionalProperties": false, "properties": { "EksInfo": { - "$ref": "#/definitions/AWS::EMRContainers::VirtualCluster.EksInfo" + "$ref": "#/definitions/AWS::EMRContainers::VirtualCluster.EksInfo", + "markdownDescription": "The information about the EKS cluster\\. \n*Required*: Yes \n*Type*: [EksInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-eksinfo.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EksInfo" } }, "required": [ @@ -57812,12 +71080,18 @@ "additionalProperties": false, "properties": { "Id": { + "markdownDescription": "The ID of the container cluster\\. \n*Minimum*: 1 \n*Maximum*: 100 \n*Pattern*: `^[0-9A-Za-z][A-Za-z0-9\\-_]*` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "string" }, "Info": { - "$ref": "#/definitions/AWS::EMRContainers::VirtualCluster.ContainerInfo" + "$ref": "#/definitions/AWS::EMRContainers::VirtualCluster.ContainerInfo", + "markdownDescription": "The information about the container cluster\\. \n*Required*: Yes \n*Type*: [ContainerInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-containerinfo.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Info" }, "Type": { + "markdownDescription": "The type of the container provider\\. EKS is the only supported type as of now\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EKS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -57832,6 +71106,8 @@ "additionalProperties": false, "properties": { "Namespace": { + "markdownDescription": "The namespaces of the EKS cluster\\. \n*Minimum*: 1 \n*Maximum*: 63 \n*Pattern*: `[a-z0-9]([-a-z0-9]*[a-z0-9])?` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Namespace", "type": "string" } }, @@ -57884,6 +71160,9 @@ "AutoStopConfiguration": { "$ref": "#/definitions/AWS::EMRServerless::Application.AutoStopConfiguration" }, + "ImageConfiguration": { + "$ref": "#/definitions/AWS::EMRServerless::Application.ImageConfigurationInput" + }, "InitialCapacity": { "items": { "$ref": "#/definitions/AWS::EMRServerless::Application.InitialCapacityConfigKeyValuePair" @@ -57910,6 +71189,15 @@ }, "Type": { "type": "string" + }, + "WorkerTypeSpecifications": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::EMRServerless::Application.WorkerTypeSpecificationInput" + } + }, + "type": "object" } }, "required": [ @@ -57960,6 +71248,15 @@ }, "type": "object" }, + "AWS::EMRServerless::Application.ImageConfigurationInput": { + "additionalProperties": false, + "properties": { + "ImageUri": { + "type": "string" + } + }, + "type": "object" + }, "AWS::EMRServerless::Application.InitialCapacityConfig": { "additionalProperties": false, "properties": { @@ -58048,6 +71345,15 @@ ], "type": "object" }, + "AWS::EMRServerless::Application.WorkerTypeSpecificationInput": { + "additionalProperties": false, + "properties": { + "ImageConfiguration": { + "$ref": "#/definitions/AWS::EMRServerless::Application.ImageConfigurationInput" + } + }, + "type": "object" + }, "AWS::ElastiCache::CacheCluster": { "additionalProperties": false, "properties": { @@ -58084,33 +71390,51 @@ "additionalProperties": false, "properties": { "AZMode": { + "markdownDescription": "Specifies whether the nodes in this Memcached cluster are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region\\. \nThis parameter is only supported for Memcached clusters\\. \nIf the `AZMode` and `PreferredAvailabilityZones` are not specified, ElastiCache assumes `single-az` mode\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `cross-az | single-az` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "AZMode", "type": "string" }, "AutoMinorVersionUpgrade": { + "markdownDescription": "If you are running Redis engine version 6\\.0 or later, set this parameter to yes if you want to opt\\-in to the next minor version upgrade campaign\\. This parameter is disabled for previous versions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoMinorVersionUpgrade", "type": "boolean" }, "CacheNodeType": { + "markdownDescription": "The compute and memory capacity of the nodes in the node group \\(shard\\)\\. \nThe following node types are supported by ElastiCache\\. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts\\. Changing the CacheNodeType of a Memcached instance is currently not supported\\. If you need to scale using Memcached, we recommend forcing a replacement update by changing the `LogicalResourceId` of the resource\\. \n+ General purpose:\n + Current generation:", + "title": "CacheNodeType", "type": "string" }, "CacheParameterGroupName": { + "markdownDescription": "The name of the parameter group to associate with this cluster\\. If this argument is omitted, the default parameter group for the specified engine is used\\. You cannot use any parameter group which has `cluster-enabled='yes'` when creating a cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheParameterGroupName", "type": "string" }, "CacheSecurityGroupNames": { "items": { "type": "string" }, + "markdownDescription": "A list of security group names to associate with this cluster\\. \nUse this parameter only when you are creating a cluster outside of an Amazon Virtual Private Cloud \\(Amazon VPC\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheSecurityGroupNames", "type": "array" }, "CacheSubnetGroupName": { + "markdownDescription": "The name of the subnet group to be used for the cluster\\. \nUse this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud \\(Amazon VPC\\)\\. \nIf you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster\\. For more information, see [AWS::ElastiCache::SubnetGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-subnetgroup.html)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CacheSubnetGroupName", "type": "string" }, "ClusterName": { + "markdownDescription": "A name for the cache cluster\\. If you don't specify a name, AWSCloudFormation generates a unique physical ID and uses that ID for the cache cluster\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nThe name must contain 1 to 50 alphanumeric characters or hyphens\\. The name must start with a letter and cannot end with a hyphen or contain two consecutive hyphens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterName", "type": "string" }, "Engine": { + "markdownDescription": "The name of the cache engine to be used for this cluster\\. \nValid values for this parameter are: `memcached` \\| `redis` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Engine", "type": "string" }, "EngineVersion": { + "markdownDescription": "The version number of the cache engine to be used for this cluster\\. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation\\. \n **Important:** You can upgrade to a newer engine version \\(see [Selecting a Cache Engine and Version](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement)\\), but you cannot downgrade to an earlier engine version\\. If you want to use an earlier engine version, you must delete the existing cluster or replication group and create it anew with the earlier engine version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EngineVersion", "type": "string" }, "IpDiscovery": { @@ -58120,51 +71444,75 @@ "items": { "$ref": "#/definitions/AWS::ElastiCache::CacheCluster.LogDeliveryConfigurationRequest" }, + "markdownDescription": "Specifies the destination, format and type of the logs\\. \n*Required*: No \n*Type*: List of [LogDeliveryConfigurationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-logdeliveryconfigurationrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogDeliveryConfigurations", "type": "array" }, "NetworkType": { "type": "string" }, "NotificationTopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon Simple Notification Service \\(SNS\\) topic to which notifications are sent\\. \nThe Amazon SNS topic owner must be the same as the cluster owner\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationTopicArn", "type": "string" }, "NumCacheNodes": { + "markdownDescription": "The number of cache nodes that the cache cluster should have\\. \nHowever, if the `PreferredAvailabilityZone` and `PreferredAvailabilityZones `properties were not previously specified and you don't specify any new values, an update requires [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "NumCacheNodes", "type": "number" }, "Port": { + "markdownDescription": "The port number on which each of the cache nodes accepts connections\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Port", "type": "number" }, "PreferredAvailabilityZone": { + "markdownDescription": "The EC2 Availability Zone in which the cluster is created\\. \nAll nodes belonging to this cluster are placed in the preferred Availability Zone\\. If you want to create your nodes across multiple Availability Zones, use `PreferredAvailabilityZones`\\. \nDefault: System chosen Availability Zone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "PreferredAvailabilityZone", "type": "string" }, "PreferredAvailabilityZones": { "items": { "type": "string" }, + "markdownDescription": "A list of the Availability Zones in which cache nodes are created\\. The order of the zones in the list is not important\\. \nThis option is only supported on Memcached\\. \nIf you are creating your cluster in an Amazon VPC \\(recommended\\) you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group\\. \nThe number of Availability Zones listed must equal the value of `NumCacheNodes`\\.\nIf you want all the nodes in the same Availability Zone, use `PreferredAvailabilityZone` instead, or repeat the Availability Zone multiple times in the list\\. \nDefault: System chosen Availability Zones\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "PreferredAvailabilityZones", "type": "array" }, "PreferredMaintenanceWindow": { + "markdownDescription": "Specifies the weekly time range during which maintenance on the cluster is performed\\. It is specified as a range in the format ddd:hh24:mi\\-ddd:hh24:mi \\(24H Clock UTC\\)\\. The minimum maintenance window is a 60 minute period\\. Valid values for `ddd` are: \nSpecifies the weekly time range during which maintenance on the cluster is performed\\. It is specified as a range in the format ddd:hh24:mi\\-ddd:hh24:mi \\(24H Clock UTC\\)\\. The minimum maintenance window is a 60 minute period\\. \nValid values for `ddd` are: \n+ `sun` \n+ `mon` \n+ `tue` \n+ `wed` \n+ `thu` \n+ `fri` \n+ `sat` \nExample: `sun:23:00-mon:01:30` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", "type": "string" }, "SnapshotArns": { "items": { "type": "string" }, + "markdownDescription": "A single\\-element string list containing an Amazon Resource Name \\(ARN\\) that uniquely identifies a Redis RDB snapshot file stored in Amazon S3\\. The snapshot file is used to populate the node group \\(shard\\)\\. The Amazon S3 object name in the ARN cannot contain any commas\\. \nThis parameter is only valid if the `Engine` parameter is `redis`\\.\nExample of an Amazon S3 ARN: `arn:aws:s3:::my_bucket/snapshot1.rdb` \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotArns", "type": "array" }, "SnapshotName": { + "markdownDescription": "The name of a Redis snapshot from which to restore data into the new node group \\(shard\\)\\. The snapshot status changes to `restoring` while the new node group \\(shard\\) is being created\\. \nThis parameter is only valid if the `Engine` parameter is `redis`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotName", "type": "string" }, "SnapshotRetentionLimit": { + "markdownDescription": "The number of days for which ElastiCache retains automatic snapshots before deleting them\\. For example, if you set `SnapshotRetentionLimit` to 5, a snapshot taken today is retained for 5 days before being deleted\\. \nThis parameter is only valid if the `Engine` parameter is `redis`\\.\nDefault: 0 \\(i\\.e\\., automatic backups are disabled for this cache cluster\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotRetentionLimit", "type": "number" }, "SnapshotWindow": { + "markdownDescription": "The daily time range \\(in UTC\\) during which ElastiCache begins taking a daily snapshot of your node group \\(shard\\)\\. \nExample: `05:00-09:00` \nIf you do not specify this parameter, ElastiCache automatically chooses an appropriate time range\\. \nThis parameter is only valid if the `Engine` parameter is `redis`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotWindow", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of tags to be added to this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TransitEncryptionEnabled": { @@ -58174,6 +71522,8 @@ "items": { "type": "string" }, + "markdownDescription": "One or more VPC security groups associated with the cluster\\. \nUse this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud \\(Amazon VPC\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSecurityGroupIds", "type": "array" } }, @@ -58209,6 +71559,8 @@ "additionalProperties": false, "properties": { "LogGroup": { + "markdownDescription": "The name of the CloudWatch Logs log group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroup", "type": "string" } }, @@ -58221,10 +71573,14 @@ "additionalProperties": false, "properties": { "CloudWatchLogsDetails": { - "$ref": "#/definitions/AWS::ElastiCache::CacheCluster.CloudWatchLogsDestinationDetails" + "$ref": "#/definitions/AWS::ElastiCache::CacheCluster.CloudWatchLogsDestinationDetails", + "markdownDescription": "The configuration details of the CloudWatch Logs destination\\. Note that this field is marked as required but only if CloudWatch Logs was chosen as the destination\\. \n*Required*: No \n*Type*: [CloudWatchLogsDestinationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-cloudwatchlogsdestinationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogsDetails" }, "KinesisFirehoseDetails": { - "$ref": "#/definitions/AWS::ElastiCache::CacheCluster.KinesisFirehoseDestinationDetails" + "$ref": "#/definitions/AWS::ElastiCache::CacheCluster.KinesisFirehoseDestinationDetails", + "markdownDescription": "The configuration details of the Kinesis Data Firehose destination\\. Note that this field is marked as required but only if Kinesis Data Firehose was chosen as the destination\\. \n*Required*: No \n*Type*: [KinesisFirehoseDestinationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-kinesisfirehosedestinationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KinesisFirehoseDetails" } }, "type": "object" @@ -58233,6 +71589,8 @@ "additionalProperties": false, "properties": { "DeliveryStream": { + "markdownDescription": "The name of the Kinesis Data Firehose delivery stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryStream", "type": "string" } }, @@ -58245,15 +71603,23 @@ "additionalProperties": false, "properties": { "DestinationDetails": { - "$ref": "#/definitions/AWS::ElastiCache::CacheCluster.DestinationDetails" + "$ref": "#/definitions/AWS::ElastiCache::CacheCluster.DestinationDetails", + "markdownDescription": "Configuration details of either a CloudWatch Logs destination or Kinesis Data Firehose destination\\. \n*Required*: Yes \n*Type*: [DestinationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-destinationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationDetails" }, "DestinationType": { + "markdownDescription": "Specify either CloudWatch Logs or Kinesis Data Firehose as the destination type\\. Valid values are either `cloudwatch-logs` or `kinesis-firehose`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationType", "type": "string" }, "LogFormat": { + "markdownDescription": "Valid values are either `json` or `text`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogFormat", "type": "string" }, "LogType": { + "markdownDescription": "Valid value is either `slow-log`, which refers to [slow\\-log](https://redis.io/commands/slowlog) or `engine-log`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogType", "type": "string" } }, @@ -58301,36 +71667,54 @@ "additionalProperties": false, "properties": { "AutomaticFailoverEnabled": { + "markdownDescription": "Specifies whether a read\\-only replica is automatically promoted to read/write primary if the existing primary fails\\. \n `AutomaticFailoverEnabled` must be enabled for Redis \\(cluster mode enabled\\) replication groups\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutomaticFailoverEnabled", "type": "boolean" }, "CacheNodeType": { + "markdownDescription": "The cache node type of the Global datastore \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheNodeType", "type": "string" }, "CacheParameterGroupName": { + "markdownDescription": "The name of the cache parameter group to use with the Global datastore\\. It must be compatible with the major engine version used by the Global datastore\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheParameterGroupName", "type": "string" }, "EngineVersion": { + "markdownDescription": "The Elasticache Redis engine version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EngineVersion", "type": "string" }, "GlobalNodeGroupCount": { + "markdownDescription": "The number of node groups that comprise the Global Datastore\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlobalNodeGroupCount", "type": "number" }, "GlobalReplicationGroupDescription": { + "markdownDescription": "The optional description of the Global datastore \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlobalReplicationGroupDescription", "type": "string" }, "GlobalReplicationGroupIdSuffix": { + "markdownDescription": "The suffix name of a Global Datastore\\. The suffix guarantees uniqueness of the Global Datastore name across multiple regions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlobalReplicationGroupIdSuffix", "type": "string" }, "Members": { "items": { "$ref": "#/definitions/AWS::ElastiCache::GlobalReplicationGroup.GlobalReplicationGroupMember" }, + "markdownDescription": "The replication groups that comprise the Global datastore\\. \n*Required*: Yes \n*Type*: List of [GlobalReplicationGroupMember](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-globalreplicationgroupmember.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Members", "type": "array" }, "RegionalConfigurations": { "items": { "$ref": "#/definitions/AWS::ElastiCache::GlobalReplicationGroup.RegionalConfiguration" }, + "markdownDescription": "The Amazon Regions that comprise the Global Datastore\\. \n*Required*: No \n*Type*: List of [RegionalConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-regionalconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegionalConfigurations", "type": "array" } }, @@ -58364,12 +71748,18 @@ "additionalProperties": false, "properties": { "ReplicationGroupId": { + "markdownDescription": "The replication group id of the Global datastore member\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationGroupId", "type": "string" }, "ReplicationGroupRegion": { + "markdownDescription": "The Amazon region of the Global datastore member\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationGroupRegion", "type": "string" }, "Role": { + "markdownDescription": "Indicates the role of the replication group, `PRIMARY` or `SECONDARY`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Role", "type": "string" } }, @@ -58379,15 +71769,21 @@ "additionalProperties": false, "properties": { "ReplicationGroupId": { + "markdownDescription": "The name of the secondary cluster \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationGroupId", "type": "string" }, "ReplicationGroupRegion": { + "markdownDescription": "The Amazon region where the cluster is stored \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationGroupRegion", "type": "string" }, "ReshardingConfigurations": { "items": { "$ref": "#/definitions/AWS::ElastiCache::GlobalReplicationGroup.ReshardingConfiguration" }, + "markdownDescription": "A list of PreferredAvailabilityZones objects that specifies the configuration of a node group in the resharded cluster\\. \n*Required*: No \n*Type*: List of [ReshardingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-reshardingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReshardingConfigurations", "type": "array" } }, @@ -58397,12 +71793,16 @@ "additionalProperties": false, "properties": { "NodeGroupId": { + "markdownDescription": "Either the ElastiCache for Redis supplied 4\\-digit id or a user supplied id for the node group these configuration values apply to\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4` \n*Pattern*: `\\d+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NodeGroupId", "type": "string" }, "PreferredAvailabilityZones": { "items": { "type": "string" }, + "markdownDescription": "A list of preferred availability zones for the nodes in this cluster\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredAvailabilityZones", "type": "array" } }, @@ -58444,24 +71844,32 @@ "additionalProperties": false, "properties": { "CacheParameterGroupFamily": { + "markdownDescription": "The name of the cache parameter group family that this cache parameter group is compatible with\\. \nValid values are: `memcached1.4` \\| `memcached1.5` \\| `memcached1.6` \\| `redis2.6` \\| `redis2.8` \\| `redis3.2` \\| `redis4.0` \\| `redis5.0` \\| `redis6.x` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CacheParameterGroupFamily", "type": "string" }, "Description": { + "markdownDescription": "The description for this cache parameter group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Properties": { "additionalProperties": true, + "markdownDescription": "A comma\\-delimited list of parameter name/value pairs\\. For more information, see [ModifyCacheParameterGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheParameterGroup.html) in the *Amazon ElastiCache API Reference Guide*\\. \nFor example:", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Properties", "type": "object" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A tag that can be added to an ElastiCache parameter group\\. Tags are composed of a Key/Value pair\\. You can use tags to categorize and track all your parameter groups\\. A tag with a null Value is permitted\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -58528,57 +71936,87 @@ "additionalProperties": false, "properties": { "AtRestEncryptionEnabled": { + "markdownDescription": "A flag that enables encryption at rest when set to `true`\\. \nYou cannot modify the value of `AtRestEncryptionEnabled` after the replication group is created\\. To enable encryption at rest on a replication group you must set `AtRestEncryptionEnabled` to `true` when you create the replication group\\. \n **Required:** Only available when creating a replication group in an Amazon VPC using redis version `3.2.6` or `4.x` onward\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AtRestEncryptionEnabled", "type": "boolean" }, "AuthToken": { + "markdownDescription": "**Reserved parameter\\.** The password used to access a password protected server\\. \n `AuthToken` can be specified only on replication groups where `TransitEncryptionEnabled` is `true`\\. For more information, see [Authenticating Users with the Redis AUTH Command](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/auth.html)\\. \nFor HIPAA compliance, you must specify `TransitEncryptionEnabled` as `true`, an `AuthToken`, and a `CacheSubnetGroup`\\.\nPassword constraints: \n+ Must be only printable ASCII characters\\.\n+ Must be at least 16 characters and no more than 128 characters in length\\.\n+ Nonalphanumeric characters are restricted to \\(\\!, &, \\#, $, ^, <, >, \\-, \\)\\. \nFor more information, see [AUTH password](http://redis.io/commands/AUTH) at http://redis\\.io/commands/AUTH\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "AuthToken", "type": "string" }, "AutoMinorVersionUpgrade": { + "markdownDescription": "If you are running Redis engine version 6\\.0 or later, set this parameter to yes if you want to opt\\-in to the next minor version upgrade campaign\\. This parameter is disabled for previous versions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoMinorVersionUpgrade", "type": "boolean" }, "AutomaticFailoverEnabled": { + "markdownDescription": "Specifies whether a read\\-only replica is automatically promoted to read/write primary if the existing primary fails\\. \n `AutomaticFailoverEnabled` must be enabled for Redis \\(cluster mode enabled\\) replication groups\\. \nDefault: false \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutomaticFailoverEnabled", "type": "boolean" }, "CacheNodeType": { + "markdownDescription": "The compute and memory capacity of the nodes in the node group \\(shard\\)\\. \nThe following node types are supported by ElastiCache\\. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts\\. \n+ General purpose:\n + Current generation:", + "title": "CacheNodeType", "type": "string" }, "CacheParameterGroupName": { + "markdownDescription": "The name of the parameter group to associate with this replication group\\. If this argument is omitted, the default cache parameter group for the specified engine is used\\. \nIf you are running Redis version 3\\.2\\.4 or later, only one node group \\(shard\\), and want to use a default parameter group, we recommend that you specify the parameter group by name\\. \n+ To create a Redis \\(cluster mode disabled\\) replication group, use `CacheParameterGroupName=default.redis3.2`\\.\n+ To create a Redis \\(cluster mode enabled\\) replication group, use `CacheParameterGroupName=default.redis3.2.cluster.on`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheParameterGroupName", "type": "string" }, "CacheSecurityGroupNames": { "items": { "type": "string" }, + "markdownDescription": "A list of cache security group names to associate with this replication group\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheSecurityGroupNames", "type": "array" }, "CacheSubnetGroupName": { + "markdownDescription": "The name of the cache subnet group to be used for the replication group\\. \nIf you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster\\. For more information, see [AWS::ElastiCache::SubnetGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-subnetgroup.html)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CacheSubnetGroupName", "type": "string" }, "DataTieringEnabled": { + "markdownDescription": "Enables data tiering\\. Data tiering is only supported for replication groups using the r6gd node type\\. This parameter must be set to true when using r6gd nodes\\. For more information, see [Data tiering](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/data-tiering.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataTieringEnabled", "type": "boolean" }, "Engine": { + "markdownDescription": "The name of the cache engine to be used for the clusters in this replication group\\. Must be Redis\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Engine", "type": "string" }, "EngineVersion": { + "markdownDescription": "The version number of the cache engine to be used for the clusters in this replication group\\. To view the supported cache engine versions, use the `DescribeCacheEngineVersions` operation\\. \n **Important:** You can upgrade to a newer engine version \\(see [Selecting a Cache Engine and Version](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement)\\) in the *ElastiCache User Guide*, but you cannot downgrade to an earlier engine version\\. If you want to use an earlier engine version, you must delete the existing cluster or replication group and create it anew with the earlier engine version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EngineVersion", "type": "string" }, "GlobalReplicationGroupId": { + "markdownDescription": "The name of the Global datastore \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GlobalReplicationGroupId", "type": "string" }, "IpDiscovery": { "type": "string" }, "KmsKeyId": { + "markdownDescription": "The ID of the KMS key used to encrypt the disk on the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" }, "LogDeliveryConfigurations": { "items": { "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.LogDeliveryConfigurationRequest" }, + "markdownDescription": "Specifies the destination, format and type of the logs\\. \n*Required*: No \n*Type*: List of [LogDeliveryConfigurationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-logdeliveryconfigurationrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogDeliveryConfigurations", "type": "array" }, "MultiAZEnabled": { + "markdownDescription": "A flag indicating if you have Multi\\-AZ enabled to enhance fault tolerance\\. For more information, see [Minimizing Downtime: Multi\\-AZ](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MultiAZEnabled", "type": "boolean" }, "NetworkType": { @@ -58588,78 +72026,121 @@ "items": { "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration" }, + "markdownDescription": "`NodeGroupConfiguration ` is a property of the `AWS::ElastiCache::ReplicationGroup` resource that configures an Amazon ElastiCache \\(ElastiCache\\) Redis cluster node group\\. \nIf you set [UseOnlineResharding](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-useonlineresharding) to `true`, you can update `NodeGroupConfiguration` without interruption\\. When `UseOnlineResharding` is set to `false`, or is not specified, updating `NodeGroupConfiguration` results in [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html) of [NodeGroupConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "NodeGroupConfiguration", "type": "array" }, "NotificationTopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon Simple Notification Service \\(SNS\\) topic to which notifications are sent\\. \nThe Amazon SNS topic owner must be the same as the cluster owner\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationTopicArn", "type": "string" }, "NumCacheClusters": { + "markdownDescription": "The number of clusters this replication group initially has\\. \nThis parameter is not used if there is more than one node group \\(shard\\)\\. You should use `ReplicasPerNodeGroup` instead\\. \nIf `AutomaticFailoverEnabled` is `true`, the value of this parameter must be at least 2\\. If `AutomaticFailoverEnabled` is `false` you can omit this parameter \\(it will default to 1\\), or you can explicitly set it to a value between 2 and 6\\. \nThe maximum permitted value for `NumCacheClusters` is 6 \\(1 primary plus 5 replicas\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumCacheClusters", "type": "number" }, "NumNodeGroups": { + "markdownDescription": "An optional parameter that specifies the number of node groups \\(shards\\) for this Redis \\(cluster mode enabled\\) replication group\\. For Redis \\(cluster mode disabled\\) either omit this parameter or set it to 1\\. \nIf you set [UseOnlineResharding](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-useonlineresharding) to `true`, you can update `NumNodeGroups` without interruption\\. When `UseOnlineResharding` is set to `false`, or is not specified, updating `NumNodeGroups` results in [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\. \nDefault: 1 \n*Required*: No \n*Type*: Integer \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "NumNodeGroups", "type": "number" }, "Port": { + "markdownDescription": "The port number on which each member of the replication group accepts connections\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Port", "type": "number" }, "PreferredCacheClusterAZs": { "items": { "type": "string" }, + "markdownDescription": "A list of EC2 Availability Zones in which the replication group's clusters are created\\. The order of the Availability Zones in the list is the order in which clusters are allocated\\. The primary cluster is created in the first AZ in the list\\. \nThis parameter is not used if there is more than one node group \\(shard\\)\\. You should use `NodeGroupConfiguration` instead\\. \nIf you are creating your replication group in an Amazon VPC \\(recommended\\), you can only locate clusters in Availability Zones associated with the subnets in the selected subnet group\\. \nThe number of Availability Zones listed must equal the value of `NumCacheClusters`\\.\nDefault: system chosen Availability Zones\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PreferredCacheClusterAZs", "type": "array" }, "PreferredMaintenanceWindow": { + "markdownDescription": "Specifies the weekly time range during which maintenance on the cluster is performed\\. It is specified as a range in the format ddd:hh24:mi\\-ddd:hh24:mi \\(24H Clock UTC\\)\\. The minimum maintenance window is a 60 minute period\\. \nValid values for `ddd` are: \n+ `sun` \n+ `mon` \n+ `tue` \n+ `wed` \n+ `thu` \n+ `fri` \n+ `sat` \nExample: `sun:23:00-mon:01:30` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", "type": "string" }, "PrimaryClusterId": { + "markdownDescription": "The identifier of the cluster that serves as the primary for this replication group\\. This cluster must already exist and have a status of `available`\\. \nThis parameter is not required if `NumCacheClusters`, `NumNodeGroups`, or `ReplicasPerNodeGroup` is specified\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrimaryClusterId", "type": "string" }, "ReplicasPerNodeGroup": { + "markdownDescription": "An optional parameter that specifies the number of replica nodes in each node group \\(shard\\)\\. Valid values are 0 to 5\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplicasPerNodeGroup", "type": "number" }, "ReplicationGroupDescription": { + "markdownDescription": "A user\\-created description for the replication group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationGroupDescription", "type": "string" }, "ReplicationGroupId": { + "markdownDescription": "The replication group identifier\\. This parameter is stored as a lowercase string\\. \nConstraints: \n+ A name must contain from 1 to 40 alphanumeric characters or hyphens\\.\n+ The first character must be a letter\\.\n+ A name cannot end with a hyphen or contain two consecutive hyphens\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplicationGroupId", "type": "string" }, "SecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "One or more Amazon VPC security groups associated with this replication group\\. \nUse this parameter only when you are creating a replication group in an Amazon Virtual Private Cloud \\(Amazon VPC\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "SnapshotArns": { "items": { "type": "string" }, + "markdownDescription": "A list of Amazon Resource Names \\(ARN\\) that uniquely identify the Redis RDB snapshot files stored in Amazon S3\\. The snapshot files are used to populate the new replication group\\. The Amazon S3 object name in the ARN cannot contain any commas\\. The new replication group will have the number of node groups \\(console: shards\\) specified by the parameter *NumNodeGroups* or the number of node groups configured by *NodeGroupConfiguration* regardless of the number of ARNs specified here\\. \nExample of an Amazon S3 ARN: `arn:aws:s3:::my_bucket/snapshot1.rdb` \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotArns", "type": "array" }, "SnapshotName": { + "markdownDescription": "The name of a snapshot from which to restore data into the new replication group\\. The snapshot status changes to `restoring` while the new replication group is being created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotName", "type": "string" }, "SnapshotRetentionLimit": { + "markdownDescription": "The number of days for which ElastiCache retains automatic snapshots before deleting them\\. For example, if you set `SnapshotRetentionLimit` to 5, a snapshot that was taken today is retained for 5 days before being deleted\\. \nDefault: 0 \\(i\\.e\\., automatic backups are disabled for this cluster\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotRetentionLimit", "type": "number" }, "SnapshotWindow": { + "markdownDescription": "The daily time range \\(in UTC\\) during which ElastiCache begins taking a daily snapshot of your node group \\(shard\\)\\. \nExample: `05:00-09:00` \nIf you do not specify this parameter, ElastiCache automatically chooses an appropriate time range\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotWindow", "type": "string" }, "SnapshottingClusterId": { + "markdownDescription": "The cluster ID that is used as the daily snapshot source for the replication group\\. This parameter cannot be set for Redis \\(cluster mode enabled\\) replication groups\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshottingClusterId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of tags to be added to this resource\\. Tags are comma\\-separated key,value pairs \\(e\\.g\\. Key=`myKey`, Value=`myKeyValue`\\. You can include multiple tags as shown following: Key=`myKey`, Value=`myKeyValue` Key=`mySecondKey`, Value=`mySecondKeyValue`\\. Tags on replication groups will be replicated to all nodes\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TransitEncryptionEnabled": { + "markdownDescription": "A flag that enables in\\-transit encryption when set to `true`\\. \nYou cannot modify the value of `TransitEncryptionEnabled` after the cluster is created\\. To enable in\\-transit encryption on a cluster you must set `TransitEncryptionEnabled` to `true` when you create a cluster\\. \nThis parameter is valid only if the `Engine` parameter is `redis`, the `EngineVersion` parameter is `3.2.6` or `4.x` onward, and the cluster is being created in an Amazon VPC\\. \nIf you enable in\\-transit encryption, you must also specify a value for `CacheSubnetGroup`\\. \n **Required:** Only available when creating a replication group in an Amazon VPC using redis version `3.2.6` or `4.x` onward\\. \nDefault: `false` \nFor HIPAA compliance, you must specify `TransitEncryptionEnabled` as `true`, an `AuthToken`, and a `CacheSubnetGroup`\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitEncryptionEnabled", "type": "boolean" }, + "TransitEncryptionMode": { + "type": "string" + }, "UserGroupIds": { "items": { "type": "string" }, + "markdownDescription": "The list of user groups to associate with the replication group\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserGroupIds", "type": "array" } }, @@ -58693,6 +72174,8 @@ "additionalProperties": false, "properties": { "LogGroup": { + "markdownDescription": "The name of the CloudWatch Logs log group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroup", "type": "string" } }, @@ -58705,10 +72188,14 @@ "additionalProperties": false, "properties": { "CloudWatchLogsDetails": { - "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.CloudWatchLogsDestinationDetails" + "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.CloudWatchLogsDestinationDetails", + "markdownDescription": "The configuration details of the CloudWatch Logs destination\\. Note that this field is marked as required but only if CloudWatch Logs was chosen as the destination\\. \n*Required*: No \n*Type*: [CloudWatchLogsDestinationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-cloudwatchlogsdestinationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogsDetails" }, "KinesisFirehoseDetails": { - "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.KinesisFirehoseDestinationDetails" + "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.KinesisFirehoseDestinationDetails", + "markdownDescription": "The configuration details of the Kinesis Data Firehose destination\\. Note that this field is marked as required but only if Kinesis Data Firehose was chosen as the destination\\. \n*Required*: No \n*Type*: [KinesisFirehoseDestinationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-kinesisfirehosedestinationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KinesisFirehoseDetails" } }, "type": "object" @@ -58717,6 +72204,8 @@ "additionalProperties": false, "properties": { "DeliveryStream": { + "markdownDescription": "The name of the Kinesis Data Firehose delivery stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryStream", "type": "string" } }, @@ -58729,15 +72218,23 @@ "additionalProperties": false, "properties": { "DestinationDetails": { - "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.DestinationDetails" + "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.DestinationDetails", + "markdownDescription": "Configuration details of either a CloudWatch Logs destination or Kinesis Data Firehose destination\\. \n*Required*: Yes \n*Type*: [DestinationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-destinationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationDetails" }, "DestinationType": { + "markdownDescription": "Specify either CloudWatch Logs or Kinesis Data Firehose as the destination type\\. Valid values are either `cloudwatch-logs` or `kinesis-firehose`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationType", "type": "string" }, "LogFormat": { + "markdownDescription": "Valid values are either `json` or `text`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogFormat", "type": "string" }, "LogType": { + "markdownDescription": "Valid value is either `slow-log`, which refers to [slow\\-log](https://redis.io/commands/slowlog) or `engine-log`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogType", "type": "string" } }, @@ -58753,21 +72250,31 @@ "additionalProperties": false, "properties": { "NodeGroupId": { + "markdownDescription": "Either the ElastiCache for Redis supplied 4\\-digit id or a user supplied id for the node group these configuration values apply to\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4` \n*Pattern*: `\\d+` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "NodeGroupId", "type": "string" }, "PrimaryAvailabilityZone": { + "markdownDescription": "The Availability Zone where the primary node of this node group \\(shard\\) is launched\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrimaryAvailabilityZone", "type": "string" }, "ReplicaAvailabilityZones": { "items": { "type": "string" }, + "markdownDescription": "A list of Availability Zones to be used for the read replicas\\. The number of Availability Zones in this list must match the value of `ReplicaCount` or `ReplicasPerNodeGroup` if not specified\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplicaAvailabilityZones", "type": "array" }, "ReplicaCount": { + "markdownDescription": "The number of read replica nodes in this node group \\(shard\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplicaCount", "type": "number" }, "Slots": { + "markdownDescription": "A string of comma\\-separated values where the first set of values are the slot numbers \\(zero based\\), and the second set of values are the keyspaces for each slot\\. The following example specifies three slots \\(numbered 0, 1, and 2\\): ` 0,1,2,0-4999,5000-9999,10000-16,383`\\. \n If you don't specify a value, ElastiCache allocates keys equally among each slot\\. \nWhen you use an `UseOnlineResharding` update policy to update the number of node groups without interruption, ElastiCache evenly distributes the keyspaces between the specified number of slots\\. This cannot be updated later\\. Therefore, after updating the number of node groups in this way, you should remove the value specified for the `Slots` property of each `NodeGroupConfiguration` from the stack template, as it no longer reflects the actual values in each node group\\. For more information, see [UseOnlineResharding Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-useonlineresharding)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Slots", "type": "string" } }, @@ -58809,12 +72316,16 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description for the cache security group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A tag that can be added to an ElastiCache security group\\. Tags are composed of a Key/Value pair\\. You can use tags to categorize and track all your security groups\\. A tag with a null Value is permitted\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -58880,12 +72391,18 @@ "additionalProperties": false, "properties": { "CacheSecurityGroupName": { + "markdownDescription": "The name of the Cache Security Group to authorize\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheSecurityGroupName", "type": "string" }, "EC2SecurityGroupName": { + "markdownDescription": "Name of the EC2 Security Group to include in the authorization\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EC2SecurityGroupName", "type": "string" }, "EC2SecurityGroupOwnerId": { + "markdownDescription": "Specifies the Amazon Account ID of the owner of the EC2 security group specified in the EC2SecurityGroupName property\\. The Amazon access key ID is not an acceptable value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EC2SecurityGroupOwnerId", "type": "string" } }, @@ -58952,21 +72469,29 @@ "additionalProperties": false, "properties": { "CacheSubnetGroupName": { + "markdownDescription": "The name for the cache subnet group\\. This value is stored as a lowercase string\\. \nConstraints: Must contain no more than 255 alphanumeric characters or hyphens\\. \nExample: `mysubnetgroup` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CacheSubnetGroupName", "type": "string" }, "Description": { + "markdownDescription": "The description for the cache subnet group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "The EC2 subnet IDs for the cache subnet group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A tag that can be added to an ElastiCache subnet group\\. Tags are composed of a Key/Value pair\\. You can use tags to categorize and track all your subnet groups\\. A tag with a null Value is permitted\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -59033,27 +72558,39 @@ "additionalProperties": false, "properties": { "AccessString": { + "markdownDescription": "Access permissions string used for this user\\. \n*Required*: No \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessString", "type": "string" }, "AuthenticationMode": { "$ref": "#/definitions/AWS::ElastiCache::User.AuthenticationMode" }, "Engine": { + "markdownDescription": "The current supported value is redis\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-zA-Z]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Engine", "type": "string" }, "NoPasswordRequired": { + "markdownDescription": "Indicates a password is not required for this user\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoPasswordRequired", "type": "boolean" }, "Passwords": { "items": { "type": "string" }, + "markdownDescription": "Passwords used for this user\\. You can create up to two passwords for each user\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Passwords", "type": "array" }, "UserId": { + "markdownDescription": "The ID of the user\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Pattern*: `[a-zA-Z][a-zA-Z0-9\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserId", "type": "string" }, "UserName": { + "markdownDescription": "The username of the user\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserName", "type": "string" } }, @@ -59139,15 +72676,21 @@ "additionalProperties": false, "properties": { "Engine": { + "markdownDescription": "The current supported value is redis\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-zA-Z]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Engine", "type": "string" }, "UserGroupId": { + "markdownDescription": "The ID of the user group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserGroupId", "type": "string" }, "UserIds": { "items": { "type": "string" }, + "markdownDescription": "The list of user IDs that belong to the user group\\. A user named `default` must be included\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserIds", "type": "array" } }, @@ -59214,13 +72757,19 @@ "additionalProperties": false, "properties": { "ApplicationName": { + "markdownDescription": "A name for the Elastic Beanstalk application\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the application name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationName", "type": "string" }, "Description": { + "markdownDescription": "Your description of the application\\. \n*Required*: No \n*Type*: String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "ResourceLifecycleConfig": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig" + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig", + "markdownDescription": "Specifies an application resource lifecycle configuration to prevent your application from accumulating too many versions\\. \n*Required*: No \n*Type*: [ApplicationResourceLifecycleConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationresourcelifecycleconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceLifecycleConfig" } }, "type": "object" @@ -59249,10 +72798,14 @@ "additionalProperties": false, "properties": { "ServiceRole": { + "markdownDescription": "The ARN of an IAM service role that Elastic Beanstalk has permission to assume\\. \nThe `ServiceRole` property is required the first time that you provide a `ResourceLifecycleConfig` for the application\\. After you provide it once, Elastic Beanstalk persists the Service Role with the application, and you don't need to specify it again\\. You can, however, specify it in subsequent updates to change the Service Role to another value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceRole", "type": "string" }, "VersionLifecycleConfig": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig" + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig", + "markdownDescription": "Defines lifecycle settings for application versions\\. \n*Required*: No \n*Type*: [ApplicationVersionLifecycleConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationversionlifecycleconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VersionLifecycleConfig" } }, "type": "object" @@ -59261,10 +72814,14 @@ "additionalProperties": false, "properties": { "MaxAgeRule": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxAgeRule" + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxAgeRule", + "markdownDescription": "Specify a max age rule to restrict the length of time that application versions are retained for an application\\. \n*Required*: No \n*Type*: [MaxAgeRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxagerule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxAgeRule" }, "MaxCountRule": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxCountRule" + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxCountRule", + "markdownDescription": "Specify a max count rule to restrict the number of application versions that are retained for an application\\. \n*Required*: No \n*Type*: [MaxCountRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxcountrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCountRule" } }, "type": "object" @@ -59273,12 +72830,18 @@ "additionalProperties": false, "properties": { "DeleteSourceFromS3": { + "markdownDescription": "Set to `true` to delete a version's source bundle from Amazon S3 when Elastic Beanstalk deletes the application version\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteSourceFromS3", "type": "boolean" }, "Enabled": { + "markdownDescription": "Specify `true` to apply the rule, or `false` to disable it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "MaxAgeInDays": { + "markdownDescription": "Specify the number of days to retain an application versions\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxAgeInDays", "type": "number" } }, @@ -59288,12 +72851,18 @@ "additionalProperties": false, "properties": { "DeleteSourceFromS3": { + "markdownDescription": "Set to `true` to delete a version's source bundle from Amazon S3 when Elastic Beanstalk deletes the application version\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteSourceFromS3", "type": "boolean" }, "Enabled": { + "markdownDescription": "Specify `true` to apply the rule, or `false` to disable it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "MaxCount": { + "markdownDescription": "Specify the maximum number of application versions to retain\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCount", "type": "number" } }, @@ -59335,13 +72904,19 @@ "additionalProperties": false, "properties": { "ApplicationName": { + "markdownDescription": "The name of the Elastic Beanstalk application that is associated with this application version\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationName", "type": "string" }, "Description": { + "markdownDescription": "A description of this application version\\. \n*Required*: No \n*Type*: String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "SourceBundle": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle" + "$ref": "#/definitions/AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle", + "markdownDescription": "The Amazon S3 bucket and key that identify the location of the source bundle for this version\\. \nThe Amazon S3 bucket must be in the same region as the environment\\.\n*Required*: Yes \n*Type*: [SourceBundle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-sourcebundle.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceBundle" } }, "required": [ @@ -59375,9 +72950,13 @@ "additionalProperties": false, "properties": { "S3Bucket": { + "markdownDescription": "The Amazon S3 bucket where the data is located\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Bucket", "type": "string" }, "S3Key": { + "markdownDescription": "The Amazon S3 key where the data is located\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Key", "type": "string" } }, @@ -59423,28 +73002,42 @@ "additionalProperties": false, "properties": { "ApplicationName": { + "markdownDescription": "The name of the Elastic Beanstalk application to associate with this configuration template\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationName", "type": "string" }, "Description": { + "markdownDescription": "An optional description for this configuration\\. \n*Required*: No \n*Type*: String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "EnvironmentId": { + "markdownDescription": "The ID of an environment whose settings you want to use to create the configuration template\\. You must specify `EnvironmentId` if you don't specify `PlatformArn`, `SolutionStackName`, or `SourceConfiguration`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnvironmentId", "type": "string" }, "OptionSettings": { "items": { "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting" }, + "markdownDescription": "Option values for the Elastic Beanstalk configuration, such as the instance type\\. If specified, these values override the values obtained from the solution stack or the source configuration template\\. For a complete list of Elastic Beanstalk configuration options, see [Option Values](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html) in the * AWS Elastic Beanstalk Developer Guide*\\. \n*Required*: No \n*Type*: List of [ConfigurationOptionSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OptionSettings", "type": "array" }, "PlatformArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the custom platform\\. For more information, see [ Custom Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html) in the * AWS Elastic Beanstalk Developer Guide*\\. \nIf you specify `PlatformArn`, then don't specify `SolutionStackName`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlatformArn", "type": "string" }, "SolutionStackName": { + "markdownDescription": "The name of an Elastic Beanstalk solution stack \\(platform version\\) that this configuration uses\\. For example, `64bit Amazon Linux 2013.09 running Tomcat 7 Java 7`\\. A solution stack specifies the operating system, runtime, and application server for a configuration template\\. It also determines the set of configuration options as well as the possible and default values\\. For more information, see [Supported Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html) in the * AWS Elastic Beanstalk Developer Guide*\\. \nYou must specify `SolutionStackName` if you don't specify `PlatformArn`, `EnvironmentId`, or `SourceConfiguration`\\. \nUse the [https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ListAvailableSolutionStacks.html](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ListAvailableSolutionStacks.html) API to obtain a list of available solution stacks\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SolutionStackName", "type": "string" }, "SourceConfiguration": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration" + "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration", + "markdownDescription": "An Elastic Beanstalk configuration template to base this one on\\. If specified, Elastic Beanstalk uses the configuration values from the specified configuration template to create a new configuration\\. \nValues specified in `OptionSettings` override any values obtained from the `SourceConfiguration`\\. \nYou must specify `SourceConfiguration` if you don't specify `PlatformArn`, `EnvironmentId`, or `SolutionStackName`\\. \nConstraint: If both solution stack name and source configuration are specified, the solution stack of the source configuration template must match the specified solution stack name\\. \n*Required*: Conditional \n*Type*: [SourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-sourceconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceConfiguration" } }, "required": [ @@ -59477,15 +73070,23 @@ "additionalProperties": false, "properties": { "Namespace": { + "markdownDescription": "A unique namespace that identifies the option's associated AWS resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", "type": "string" }, "OptionName": { + "markdownDescription": "The name of the configuration option\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OptionName", "type": "string" }, "ResourceName": { + "markdownDescription": "A unique resource name for the option setting\\. Use it for a time\u2013based scaling configuration option\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceName", "type": "string" }, "Value": { + "markdownDescription": "The current value for the configuration option\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -59499,9 +73100,13 @@ "additionalProperties": false, "properties": { "ApplicationName": { + "markdownDescription": "The name of the application associated with the configuration\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationName", "type": "string" }, "TemplateName": { + "markdownDescription": "The name of the configuration template\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TemplateName", "type": "string" } }, @@ -59547,45 +73152,69 @@ "additionalProperties": false, "properties": { "ApplicationName": { + "markdownDescription": "The name of the application that is associated with this environment\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationName", "type": "string" }, "CNAMEPrefix": { + "markdownDescription": "If specified, the environment attempts to use this value as the prefix for the CNAME in your Elastic Beanstalk environment URL\\. If not specified, the CNAME is generated automatically by appending a random alphanumeric string to the environment name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `63` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CNAMEPrefix", "type": "string" }, "Description": { + "markdownDescription": "Your description for this environment\\. \n*Required*: No \n*Type*: String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "EnvironmentName": { + "markdownDescription": "A unique name for the environment\\. \nConstraint: Must be from 4 to 40 characters in length\\. The name can contain only letters, numbers, and hyphens\\. It can't start or end with a hyphen\\. This name must be unique within a region in your account\\. \nIf you don't specify the `CNAMEPrefix` parameter, the environment name becomes part of the CNAME, and therefore part of the visible URL for your application\\. \nIf you don't specify an environment name, AWS CloudFormation generates a unique physical ID and uses that ID for the environment name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `40` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnvironmentName", "type": "string" }, "OperationsRole": { + "markdownDescription": "The operations role feature of AWS Elastic Beanstalk is in beta release and is subject to change\\.\nThe Amazon Resource Name \\(ARN\\) of an existing IAM role to be used as the environment's operations role\\. If specified, Elastic Beanstalk uses the operations role for permissions to downstream services during this call and during subsequent calls acting on this environment\\. To specify an operations role, you must have the `iam:PassRole` permission for the role\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OperationsRole", "type": "string" }, "OptionSettings": { "items": { "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.OptionSetting" }, + "markdownDescription": "Key\\-value pairs defining configuration options for this environment, such as the instance type\\. These options override the values that are defined in the solution stack or the [configuration template](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-beanstalk-configurationtemplate.html)\\. If you remove any options during a stack update, the removed options retain their current values\\. \n*Required*: No \n*Type*: List of [OptionSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-environment-optionsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OptionSettings", "type": "array" }, "PlatformArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the custom platform to use with the environment\\. For more information, see [Custom Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html) in the * AWS Elastic Beanstalk Developer Guide*\\. \nIf you specify `PlatformArn`, don't specify `SolutionStackName`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlatformArn", "type": "string" }, "SolutionStackName": { + "markdownDescription": "The name of an Elastic Beanstalk solution stack \\(platform version\\) to use with the environment\\. If specified, Elastic Beanstalk sets the configuration values to the default values associated with the specified solution stack\\. For a list of current solution stacks, see [Elastic Beanstalk Supported Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html) in the * AWS Elastic Beanstalk Platforms* guide\\. \nIf you specify `SolutionStackName`, don't specify `PlatformArn` or `TemplateName`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SolutionStackName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Specifies the tags applied to resources in the environment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TemplateName": { + "markdownDescription": "The name of the Elastic Beanstalk configuration template to use with the environment\\. \nIf you specify `TemplateName`, then don't specify `SolutionStackName`\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateName", "type": "string" }, "Tier": { - "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.Tier" + "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.Tier", + "markdownDescription": "Specifies the tier to use in creating this environment\\. The environment tier that you choose determines whether Elastic Beanstalk provisions resources to support a web application that handles HTTP\\(S\\) requests or a web application that handles background\\-processing tasks\\. \n*Required*: No \n*Type*: [Tier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-environment-tier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tier" }, "VersionLabel": { + "markdownDescription": "The name of the application version to deploy\\. \nDefault: If not specified, Elastic Beanstalk attempts to deploy the sample application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VersionLabel", "type": "string" } }, @@ -59619,15 +73248,23 @@ "additionalProperties": false, "properties": { "Namespace": { + "markdownDescription": "A unique namespace that identifies the option's associated AWS resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", "type": "string" }, "OptionName": { + "markdownDescription": "The name of the configuration option\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OptionName", "type": "string" }, "ResourceName": { + "markdownDescription": "A unique resource name for the option setting\\. Use it for a time\u2013based scaling configuration option\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceName", "type": "string" }, "Value": { + "markdownDescription": "The current value for the configuration option\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -59641,12 +73278,18 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of this environment tier\\. \nValid values: \n+ For *Web server tier* \u2013 `WebServer` \n+ For *Worker tier* \u2013 `Worker` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Type": { + "markdownDescription": "The type of this environment tier\\. \nValid values: \n+ For *Web server tier* \u2013 `Standard` \n+ For *Worker tier* \u2013 `SQS/HTTP` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" }, "Version": { + "markdownDescription": "The version of this environment tier\\. When you don't set a value to it, Elastic Beanstalk uses the latest compatible worker tier version\\. \nThis member is deprecated\\. Any specific version that you set may become out of date\\. We recommend leaving it unspecified\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -59688,78 +73331,110 @@ "additionalProperties": false, "properties": { "AccessLoggingPolicy": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy" + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy", + "markdownDescription": "Information about where and how access logs are stored for the load balancer\\. \n*Required*: No \n*Type*: [AccessLoggingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-accessloggingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessLoggingPolicy" }, "AppCookieStickinessPolicy": { "items": { "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy" }, + "markdownDescription": "Information about a policy for application\\-controlled session stickiness\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-AppCookieStickinessPolicy.html) of [AppCookieStickinessPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-AppCookieStickinessPolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppCookieStickinessPolicy", "type": "array" }, "AvailabilityZones": { "items": { "type": "string" }, + "markdownDescription": "The Availability Zones for the load balancer\\. For load balancers in a VPC, specify `Subnets` instead\\. \nUpdate requires replacement if you did not previously specify an Availability Zone or if you are removing all Availability Zones\\. Otherwise, update requires no interruption\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "AvailabilityZones", "type": "array" }, "ConnectionDrainingPolicy": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy" + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy", + "markdownDescription": "If enabled, the load balancer allows existing requests to complete before the load balancer shifts traffic away from a deregistered or unhealthy instance\\. \nFor more information, see [Configure Connection Draining](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-conn-drain.html) in the *Classic Load Balancers Guide*\\. \n*Required*: No \n*Type*: [ConnectionDrainingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectiondrainingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionDrainingPolicy" }, "ConnectionSettings": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings" + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings", + "markdownDescription": "If enabled, the load balancer allows the connections to remain idle \\(no data is sent over the connection\\) for the specified duration\\. \nBy default, Elastic Load Balancing maintains a 60\\-second idle connection timeout for both front\\-end and back\\-end connections of your load balancer\\. For more information, see [Configure Idle Connection Timeout](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html) in the *Classic Load Balancers Guide*\\. \n*Required*: No \n*Type*: [ConnectionSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectionsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionSettings" }, "CrossZone": { + "markdownDescription": "If enabled, the load balancer routes the request traffic evenly across all instances regardless of the Availability Zones\\. \nFor more information, see [Configure Cross\\-Zone Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-crosszone-lb.html) in the *Classic Load Balancers Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CrossZone", "type": "boolean" }, "HealthCheck": { - "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck" + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck", + "markdownDescription": "The health check settings to use when evaluating the health of your EC2 instances\\. \nUpdate requires replacement if you did not previously specify health check settings or if you are removing the health check settings\\. Otherwise, update requires no interruption\\. \n*Required*: No \n*Type*: [HealthCheck](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-health-check.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "HealthCheck" }, "Instances": { "items": { "type": "string" }, + "markdownDescription": "The IDs of the instances for the load balancer\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Instances", "type": "array" }, "LBCookieStickinessPolicy": { "items": { "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy" }, + "markdownDescription": "Information about a policy for duration\\-based session stickiness\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-LBCookieStickinessPolicy.html) of [LBCookieStickinessPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-LBCookieStickinessPolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LBCookieStickinessPolicy", "type": "array" }, "Listeners": { "items": { "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Listeners" }, + "markdownDescription": "The listeners for the load balancer\\. You can specify at most one listener per port\\. \nIf you update the properties for a listener, AWS CloudFormation deletes the existing listener and creates a new one with the specified properties\\. While the new listener is being created, clients cannot connect to the load balancer\\. \n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html) of [Listeners](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Listeners", "type": "array" }, "LoadBalancerName": { + "markdownDescription": "The name of the load balancer\\. This name must be unique within your set of load balancers for the region\\. \nIf you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates\\. To replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoadBalancerName", "type": "string" }, "Policies": { "items": { "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Policies" }, + "markdownDescription": "The policies defined for your Classic Load Balancer\\. Specify only back\\-end server policies\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-policy.html) of [Policies](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-policy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policies", "type": "array" }, "Scheme": { + "markdownDescription": "The type of load balancer\\. Valid only for load balancers in a VPC\\. \nIf `Scheme` is `internet-facing`, the load balancer has a public DNS name that resolves to a public IP address\\. \nIf `Scheme` is `internal`, the load balancer has a public DNS name that resolves to a private IP address\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Scheme", "type": "string" }, "SecurityGroups": { "items": { "type": "string" }, + "markdownDescription": "The security groups for the load balancer\\. Valid only for load balancers in a VPC\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroups", "type": "array" }, "Subnets": { "items": { "type": "string" }, + "markdownDescription": "The IDs of the subnets for the load balancer\\. You can specify at most one subnet per Availability Zone\\. \nUpdate requires replacement if you did not previously specify a subnet or if you are removing all subnets\\. Otherwise, update requires no interruption\\. To update to a different subnet in the current Availability Zone, you must first update to a subnet in a different Availability Zone, then update to the new subnet in the original Availability Zone\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Subnets", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags associated with a load balancer\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -59793,15 +73468,23 @@ "additionalProperties": false, "properties": { "EmitInterval": { + "markdownDescription": "The interval for publishing the access logs\\. You can specify an interval of either 5 minutes or 60 minutes\\. \nDefault: 60 minutes \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmitInterval", "type": "number" }, "Enabled": { + "markdownDescription": "Specifies whether access logs are enabled for the load balancer\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "S3BucketName": { + "markdownDescription": "The name of the Amazon S3 bucket where the access logs are stored\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketName", "type": "string" }, "S3BucketPrefix": { + "markdownDescription": "The logical hierarchy you created for your Amazon S3 bucket, for example `my-bucket-prefix/prod`\\. If the prefix is not provided, the log is placed at the root level of the bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketPrefix", "type": "string" } }, @@ -59815,9 +73498,13 @@ "additionalProperties": false, "properties": { "CookieName": { + "markdownDescription": "The name of the application cookie used for stickiness\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CookieName", "type": "string" }, "PolicyName": { + "markdownDescription": "The mnemonic name for the policy being created\\. The name must be unique within a set of policies for this load balancer\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyName", "type": "string" } }, @@ -59831,9 +73518,13 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Specifies whether connection draining is enabled for the load balancer\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "Timeout": { + "markdownDescription": "The maximum time, in seconds, to keep the existing connections open before deregistering the instances\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout", "type": "number" } }, @@ -59846,6 +73537,8 @@ "additionalProperties": false, "properties": { "IdleTimeout": { + "markdownDescription": "The time, in seconds, that the connection is allowed to be idle \\(no data has been sent over the connection\\) before it is closed by the load balancer\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `3600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdleTimeout", "type": "number" } }, @@ -59858,18 +73551,28 @@ "additionalProperties": false, "properties": { "HealthyThreshold": { + "markdownDescription": "The number of consecutive health checks successes required before moving the instance to the `Healthy` state\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthyThreshold", "type": "string" }, "Interval": { + "markdownDescription": "The approximate interval, in seconds, between health checks of an individual instance\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `5` \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Interval", "type": "string" }, "Target": { + "markdownDescription": "The instance being checked\\. The protocol is either TCP, HTTP, HTTPS, or SSL\\. The range of valid ports is one \\(1\\) through 65535\\. \nTCP is the default, specified as a TCP: port pair, for example \"TCP:5000\"\\. In this case, a health check simply attempts to open a TCP connection to the instance on the specified port\\. Failure to connect within the configured timeout is considered unhealthy\\. \nSSL is also specified as SSL: port pair, for example, SSL:5000\\. \nFor HTTP/HTTPS, you must include a ping path in the string\\. HTTP is specified as a HTTP:port;/;PathToPing; grouping, for example \"HTTP:80/weather/us/wa/seattle\"\\. In this case, a HTTP GET request is issued to the instance on the given port and path\\. Any answer other than \"200 OK\" within the timeout period is considered unhealthy\\. \nThe total length of the HTTP ping target must be 1024 16\\-bit Unicode characters or less\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target", "type": "string" }, "Timeout": { + "markdownDescription": "The amount of time, in seconds, during which no response means a failed health check\\. \nThis value must be less than the `Interval` value\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `60` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout", "type": "string" }, "UnhealthyThreshold": { + "markdownDescription": "The number of consecutive health check failures required before moving the instance to the `Unhealthy` state\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnhealthyThreshold", "type": "string" } }, @@ -59886,9 +73589,13 @@ "additionalProperties": false, "properties": { "CookieExpirationPeriod": { + "markdownDescription": "The time period, in seconds, after which the cookie should be considered stale\\. If this parameter is not specified, the stickiness session lasts for the duration of the browser session\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CookieExpirationPeriod", "type": "string" }, "PolicyName": { + "markdownDescription": "The name of the policy\\. This name must be unique within the set of policies for this load balancer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyName", "type": "string" } }, @@ -59898,24 +73605,36 @@ "additionalProperties": false, "properties": { "InstancePort": { + "markdownDescription": "The port on which the instance is listening\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "InstancePort", "type": "string" }, "InstanceProtocol": { + "markdownDescription": "The protocol to use for routing traffic to instances: HTTP, HTTPS, TCP, or SSL\\. \nIf the front\\-end protocol is TCP or SSL, the back\\-end protocol must be TCP or SSL\\. If the front\\-end protocol is HTTP or HTTPS, the back\\-end protocol must be HTTP or HTTPS\\. \nIf there is another listener with the same `InstancePort` whose `InstanceProtocol` is secure, \\(HTTPS or SSL\\), the listener's `InstanceProtocol` must also be secure\\. \nIf there is another listener with the same `InstancePort` whose `InstanceProtocol` is HTTP or TCP, the listener's `InstanceProtocol` must be HTTP or TCP\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "InstanceProtocol", "type": "string" }, "LoadBalancerPort": { + "markdownDescription": "The port on which the load balancer is listening\\. On EC2\\-VPC, you can specify any port from the range 1\\-65535\\. On EC2\\-Classic, you can specify any port from the following list: 25, 80, 443, 465, 587, 1024\\-65535\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "LoadBalancerPort", "type": "string" }, "PolicyNames": { "items": { "type": "string" }, + "markdownDescription": "The names of the policies to associate with the listener\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "PolicyNames", "type": "array" }, "Protocol": { + "markdownDescription": "The load balancer transport protocol to use for routing: HTTP, HTTPS, TCP, or SSL\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Protocol", "type": "string" }, "SSLCertificateId": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the server certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "SSLCertificateId", "type": "string" } }, @@ -59933,24 +73652,34 @@ "items": { "type": "object" }, + "markdownDescription": "The policy attributes\\. \n*Required*: Yes \n*Type*: List of Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attributes", "type": "array" }, "InstancePorts": { "items": { "type": "string" }, + "markdownDescription": "The instance ports for the policy\\. Required only for some policy types\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstancePorts", "type": "array" }, "LoadBalancerPorts": { "items": { "type": "string" }, + "markdownDescription": "The load balancer ports for the policy\\. Required only for some policy types\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerPorts", "type": "array" }, "PolicyName": { + "markdownDescription": "The name of the policy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyName", "type": "string" }, "PolicyType": { + "markdownDescription": "The name of the policy type\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyType", "type": "string" } }, @@ -60000,30 +73729,44 @@ "items": { "type": "string" }, + "markdownDescription": "\\[TLS listener\\] The name of the Application\\-Layer Protocol Negotiation \\(ALPN\\) policy\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlpnPolicy", "type": "array" }, "Certificates": { "items": { "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Certificate" }, + "markdownDescription": "The default SSL server certificate for a secure listener\\. You must provide exactly one certificate if the listener protocol is HTTPS or TLS\\. \nTo create a certificate list for a secure listener, use [AWS::ElasticLoadBalancingV2::ListenerCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html)\\. \n*Required*: Conditional \n*Type*: List of [Certificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-certificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificates", "type": "array" }, "DefaultActions": { "items": { "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Action" }, + "markdownDescription": "The actions for the default rule\\. You cannot define a condition for a default rule\\. \nTo create additional rules for an Application Load Balancer, use [AWS::ElasticLoadBalancingV2::ListenerRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html)\\. \n*Required*: Yes \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultActions", "type": "array" }, "LoadBalancerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the load balancer\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoadBalancerArn", "type": "string" }, "Port": { + "markdownDescription": "The port on which the load balancer is listening\\. You cannot specify a port for a Gateway Load Balancer\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" }, "Protocol": { + "markdownDescription": "The protocol for connections from clients to the load balancer\\. For Application Load Balancers, the supported protocols are HTTP and HTTPS\\. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP\\_UDP\\. You can\u2019t specify the UDP or TCP\\_UDP protocol if dual\\-stack mode is enabled\\. You cannot specify a protocol for a Gateway Load Balancer\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GENEVE | HTTP | HTTPS | TCP | TCP_UDP | TLS | UDP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "string" }, "SslPolicy": { + "markdownDescription": "\\[HTTPS and TLS listeners\\] The security policy that defines which protocols and ciphers are supported\\. \nFor more information, see [Security policies](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies) in the *Application Load Balancers Guide* and [Security policies](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies) in the *Network Load Balancers Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SslPolicy", "type": "string" } }, @@ -60058,27 +73801,43 @@ "additionalProperties": false, "properties": { "AuthenticateCognitoConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig", + "markdownDescription": "\\[HTTPS listeners\\] Information for using Amazon Cognito to authenticate users\\. Specify only when `Type` is `authenticate-cognito`\\. \n*Required*: No \n*Type*: [AuthenticateCognitoConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticatecognitoconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticateCognitoConfig" }, "AuthenticateOidcConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig", + "markdownDescription": "\\[HTTPS listeners\\] Information about an identity provider that is compliant with OpenID Connect \\(OIDC\\)\\. Specify only when `Type` is `authenticate-oidc`\\. \n*Required*: No \n*Type*: [AuthenticateOidcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticateoidcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticateOidcConfig" }, "FixedResponseConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig", + "markdownDescription": "\\[Application Load Balancer\\] Information for creating an action that returns a custom HTTP response\\. Specify only when `Type` is `fixed-response`\\. \n*Required*: No \n*Type*: [FixedResponseConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-fixedresponseconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FixedResponseConfig" }, "ForwardConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.ForwardConfig" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.ForwardConfig", + "markdownDescription": "Information for creating an action that distributes requests among one or more target groups\\. For Network Load Balancers, you can specify a single target group\\. Specify only when `Type` is `forward`\\. If you specify both `ForwardConfig` and `TargetGroupArn`, you can specify only one target group using `ForwardConfig` and it must be the same target group specified in `TargetGroupArn`\\. \n*Required*: No \n*Type*: [ForwardConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-forwardconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForwardConfig" }, "Order": { + "markdownDescription": "The order for the action\\. This value is required for rules with multiple actions\\. The action with the lowest value for order is performed first\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `50000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Order", "type": "number" }, "RedirectConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.RedirectConfig" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.RedirectConfig", + "markdownDescription": "\\[Application Load Balancer\\] Information for creating a redirect action\\. Specify only when `Type` is `redirect`\\. \n*Required*: No \n*Type*: [RedirectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-redirectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedirectConfig" }, "TargetGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the target group\\. Specify only when `Type` is `forward` and you want to route to a single target group\\. To route to one or more target groups, use `ForwardConfig` instead\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroupArn", "type": "string" }, "Type": { + "markdownDescription": "The type of action\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `authenticate-cognito | authenticate-oidc | fixed-response | forward | redirect` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -60092,32 +73851,48 @@ "properties": { "AuthenticationRequestExtraParams": { "additionalProperties": true, + "markdownDescription": "The query parameters \\(up to 10\\) to include in the redirect request to the authorization endpoint\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "AuthenticationRequestExtraParams", "type": "object" }, "OnUnauthenticatedRequest": { + "markdownDescription": "The behavior if the user is not authenticated\\. The following are possible values: \n+ deny`` \\- Return an HTTP 401 Unauthorized error\\.\n+ allow`` \\- Allow the request to be forwarded to the target\\.\n+ authenticate`` \\- Redirect the request to the IdP authorization endpoint\\. This is the default value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `allow | authenticate | deny` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnUnauthenticatedRequest", "type": "string" }, "Scope": { + "markdownDescription": "The set of user claims to be requested from the IdP\\. The default is `openid`\\. \nTo verify which scope values your IdP supports and how to separate multiple values, see the documentation for your IdP\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scope", "type": "string" }, "SessionCookieName": { + "markdownDescription": "The name of the cookie used to maintain session information\\. The default is AWSELBAuthSessionCookie\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionCookieName", "type": "string" }, "SessionTimeout": { + "markdownDescription": "The maximum duration of the authentication session, in seconds\\. The default is 604800 seconds \\(7 days\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionTimeout", "type": "string" }, "UserPoolArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon Cognito user pool\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolArn", "type": "string" }, "UserPoolClientId": { + "markdownDescription": "The ID of the Amazon Cognito user pool client\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolClientId", "type": "string" }, "UserPoolDomain": { + "markdownDescription": "The domain prefix or fully\\-qualified domain name of the Amazon Cognito user pool\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolDomain", "type": "string" } }, @@ -60133,44 +73908,66 @@ "properties": { "AuthenticationRequestExtraParams": { "additionalProperties": true, + "markdownDescription": "The query parameters \\(up to 10\\) to include in the redirect request to the authorization endpoint\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "AuthenticationRequestExtraParams", "type": "object" }, "AuthorizationEndpoint": { + "markdownDescription": "The authorization endpoint of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationEndpoint", "type": "string" }, "ClientId": { + "markdownDescription": "The OAuth 2\\.0 client identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientId", "type": "string" }, "ClientSecret": { + "markdownDescription": "The OAuth 2\\.0 client secret\\. This parameter is required if you are creating a rule\\. If you are modifying a rule, you can omit this parameter if you set `UseExistingClientSecret` to true\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientSecret", "type": "string" }, "Issuer": { + "markdownDescription": "The OIDC issuer identifier of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Issuer", "type": "string" }, "OnUnauthenticatedRequest": { + "markdownDescription": "The behavior if the user is not authenticated\\. The following are possible values: \n+ deny`` \\- Return an HTTP 401 Unauthorized error\\.\n+ allow`` \\- Allow the request to be forwarded to the target\\.\n+ authenticate`` \\- Redirect the request to the IdP authorization endpoint\\. This is the default value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `allow | authenticate | deny` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnUnauthenticatedRequest", "type": "string" }, "Scope": { + "markdownDescription": "The set of user claims to be requested from the IdP\\. The default is `openid`\\. \nTo verify which scope values your IdP supports and how to separate multiple values, see the documentation for your IdP\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scope", "type": "string" }, "SessionCookieName": { + "markdownDescription": "The name of the cookie used to maintain session information\\. The default is AWSELBAuthSessionCookie\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionCookieName", "type": "string" }, "SessionTimeout": { + "markdownDescription": "The maximum duration of the authentication session, in seconds\\. The default is 604800 seconds \\(7 days\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionTimeout", "type": "string" }, "TokenEndpoint": { + "markdownDescription": "The token endpoint of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenEndpoint", "type": "string" }, "UseExistingClientSecret": { "type": "boolean" }, "UserInfoEndpoint": { + "markdownDescription": "The user info endpoint of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserInfoEndpoint", "type": "string" } }, @@ -60187,6 +73984,8 @@ "additionalProperties": false, "properties": { "CertificateArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateArn", "type": "string" } }, @@ -60196,12 +73995,18 @@ "additionalProperties": false, "properties": { "ContentType": { + "markdownDescription": "The content type\\. \nValid Values: text/plain \\| text/css \\| text/html \\| application/javascript \\| application/json \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentType", "type": "string" }, "MessageBody": { + "markdownDescription": "The message\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageBody", "type": "string" }, "StatusCode": { + "markdownDescription": "The HTTP response code \\(2XX, 4XX, or 5XX\\)\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^(2|4|5)\\d\\d$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusCode", "type": "string" } }, @@ -60214,12 +74019,16 @@ "additionalProperties": false, "properties": { "TargetGroupStickinessConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.TargetGroupStickinessConfig" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.TargetGroupStickinessConfig", + "markdownDescription": "Information about the target group stickiness for a rule\\. \n*Required*: No \n*Type*: [TargetGroupStickinessConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-targetgroupstickinessconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroupStickinessConfig" }, "TargetGroups": { "items": { "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.TargetGroupTuple" }, + "markdownDescription": "Information about how traffic will be distributed between multiple target groups in a forward rule\\. \n*Required*: No \n*Type*: List of [TargetGroupTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-targetgrouptuple.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroups", "type": "array" } }, @@ -60229,21 +74038,33 @@ "additionalProperties": false, "properties": { "Host": { + "markdownDescription": "The hostname\\. This component is not percent\\-encoded\\. The hostname can contain \\#\\{host\\}\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", "type": "string" }, "Path": { + "markdownDescription": "The absolute path, starting with the leading \"/\"\\. This component is not percent\\-encoded\\. The path can contain \\#\\{host\\}, \\#\\{path\\}, and \\#\\{port\\}\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", "type": "string" }, "Port": { + "markdownDescription": "The port\\. You can specify a value from 1 to 65535 or \\#\\{port\\}\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "string" }, "Protocol": { + "markdownDescription": "The protocol\\. You can specify HTTP, HTTPS, or \\#\\{protocol\\}\\. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS\\. You cannot redirect HTTPS to HTTP\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^(HTTPS?|#\\{protocol\\})$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "string" }, "Query": { + "markdownDescription": "The query parameters, URL\\-encoded when necessary, but not percent\\-encoded\\. Do not include the leading \"?\", as it is automatically added\\. You can specify any of the reserved keywords\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Query", "type": "string" }, "StatusCode": { + "markdownDescription": "The HTTP redirect code\\. The redirect is either permanent \\(HTTP 301\\) or temporary \\(HTTP 302\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `HTTP_301 | HTTP_302` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusCode", "type": "string" } }, @@ -60256,9 +74077,13 @@ "additionalProperties": false, "properties": { "DurationSeconds": { + "markdownDescription": "The time period, in seconds, during which requests from a client should be routed to the same target group\\. The range is 1\\-604800 seconds \\(7 days\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DurationSeconds", "type": "number" }, "Enabled": { + "markdownDescription": "Indicates whether target group stickiness is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -60268,9 +74093,13 @@ "additionalProperties": false, "properties": { "TargetGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the target group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroupArn", "type": "string" }, "Weight": { + "markdownDescription": "The weight\\. The range is 0 to 999\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Weight", "type": "number" } }, @@ -60315,9 +74144,13 @@ "items": { "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate" }, + "markdownDescription": "The certificate\\. You can specify one certificate per resource\\. \n*Required*: Yes \n*Type*: List of [Certificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-certificates.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Certificates", "type": "array" }, "ListenerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the listener\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ListenerArn", "type": "string" } }, @@ -60352,6 +74185,8 @@ "additionalProperties": false, "properties": { "CertificateArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateArn", "type": "string" } }, @@ -60396,18 +74231,26 @@ "items": { "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.Action" }, + "markdownDescription": "The actions\\. \nThe rule must include exactly one of the following types of actions: `forward`, `fixed-response`, or `redirect`, and it must be the last action to be performed\\. If the rule is for an HTTPS listener, it can also optionally include an authentication action\\. \n*Required*: Yes \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", "type": "array" }, "Conditions": { "items": { "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition" }, + "markdownDescription": "The conditions\\. \nThe rule can optionally include up to one of each of the following conditions: `http-request-method`, `host-header`, `path-pattern`, and `source-ip`\\. A rule can also optionally include one or more of each of the following conditions: `http-header` and `query-string`\\. \n*Required*: Yes \n*Type*: List of [RuleCondition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-rulecondition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Conditions", "type": "array" }, "ListenerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the listener\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ListenerArn", "type": "string" }, "Priority": { + "markdownDescription": "The rule priority\\. A listener can't have multiple rules with the same priority\\. \nIf you try to reorder rules by updating their priorities, do not specify a new priority if an existing rule already uses this priority, as this can cause an error\\. If you need to reuse a priority with a different rule, you must remove it as a priority first, and then specify it in a subsequent update\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `50000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" } }, @@ -60444,27 +74287,43 @@ "additionalProperties": false, "properties": { "AuthenticateCognitoConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig", + "markdownDescription": "\\[HTTPS listeners\\] Information for using Amazon Cognito to authenticate users\\. Specify only when `Type` is `authenticate-cognito`\\. \n*Required*: No \n*Type*: [AuthenticateCognitoConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticatecognitoconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticateCognitoConfig" }, "AuthenticateOidcConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig", + "markdownDescription": "\\[HTTPS listeners\\] Information about an identity provider that is compliant with OpenID Connect \\(OIDC\\)\\. Specify only when `Type` is `authenticate-oidc`\\. \n*Required*: No \n*Type*: [AuthenticateOidcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticateoidcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticateOidcConfig" }, "FixedResponseConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig", + "markdownDescription": "\\[Application Load Balancer\\] Information for creating an action that returns a custom HTTP response\\. Specify only when `Type` is `fixed-response`\\. \n*Required*: No \n*Type*: [FixedResponseConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-fixedresponseconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FixedResponseConfig" }, "ForwardConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.ForwardConfig" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.ForwardConfig", + "markdownDescription": "Information for creating an action that distributes requests among one or more target groups\\. For Network Load Balancers, you can specify a single target group\\. Specify only when `Type` is `forward`\\. If you specify both `ForwardConfig` and `TargetGroupArn`, you can specify only one target group using `ForwardConfig` and it must be the same target group specified in `TargetGroupArn`\\. \n*Required*: No \n*Type*: [ForwardConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-forwardconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForwardConfig" }, "Order": { + "markdownDescription": "The order for the action\\. This value is required for rules with multiple actions\\. The action with the lowest value for order is performed first\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `50000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Order", "type": "number" }, "RedirectConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig", + "markdownDescription": "\\[Application Load Balancer\\] Information for creating a redirect action\\. Specify only when `Type` is `redirect`\\. \n*Required*: No \n*Type*: [RedirectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-redirectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedirectConfig" }, "TargetGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the target group\\. Specify only when `Type` is `forward` and you want to route to a single target group\\. To route to one or more target groups, use `ForwardConfig` instead\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroupArn", "type": "string" }, "Type": { + "markdownDescription": "The type of action\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `authenticate-cognito | authenticate-oidc | fixed-response | forward | redirect` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -60478,32 +74337,48 @@ "properties": { "AuthenticationRequestExtraParams": { "additionalProperties": true, + "markdownDescription": "The query parameters \\(up to 10\\) to include in the redirect request to the authorization endpoint\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "AuthenticationRequestExtraParams", "type": "object" }, "OnUnauthenticatedRequest": { + "markdownDescription": "The behavior if the user is not authenticated\\. The following are possible values: \n+ deny`` \\- Return an HTTP 401 Unauthorized error\\.\n+ allow`` \\- Allow the request to be forwarded to the target\\.\n+ authenticate`` \\- Redirect the request to the IdP authorization endpoint\\. This is the default value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `allow | authenticate | deny` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnUnauthenticatedRequest", "type": "string" }, "Scope": { + "markdownDescription": "The set of user claims to be requested from the IdP\\. The default is `openid`\\. \nTo verify which scope values your IdP supports and how to separate multiple values, see the documentation for your IdP\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scope", "type": "string" }, "SessionCookieName": { + "markdownDescription": "The name of the cookie used to maintain session information\\. The default is AWSELBAuthSessionCookie\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionCookieName", "type": "string" }, "SessionTimeout": { + "markdownDescription": "The maximum duration of the authentication session, in seconds\\. The default is 604800 seconds \\(7 days\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionTimeout", "type": "number" }, "UserPoolArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon Cognito user pool\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolArn", "type": "string" }, "UserPoolClientId": { + "markdownDescription": "The ID of the Amazon Cognito user pool client\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolClientId", "type": "string" }, "UserPoolDomain": { + "markdownDescription": "The domain prefix or fully\\-qualified domain name of the Amazon Cognito user pool\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolDomain", "type": "string" } }, @@ -60519,44 +74394,68 @@ "properties": { "AuthenticationRequestExtraParams": { "additionalProperties": true, + "markdownDescription": "The query parameters \\(up to 10\\) to include in the redirect request to the authorization endpoint\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "AuthenticationRequestExtraParams", "type": "object" }, "AuthorizationEndpoint": { + "markdownDescription": "The authorization endpoint of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationEndpoint", "type": "string" }, "ClientId": { + "markdownDescription": "The OAuth 2\\.0 client identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientId", "type": "string" }, "ClientSecret": { + "markdownDescription": "The OAuth 2\\.0 client secret\\. This parameter is required if you are creating a rule\\. If you are modifying a rule, you can omit this parameter if you set `UseExistingClientSecret` to true\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientSecret", "type": "string" }, "Issuer": { + "markdownDescription": "The OIDC issuer identifier of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Issuer", "type": "string" }, "OnUnauthenticatedRequest": { + "markdownDescription": "The behavior if the user is not authenticated\\. The following are possible values: \n+ deny`` \\- Return an HTTP 401 Unauthorized error\\.\n+ allow`` \\- Allow the request to be forwarded to the target\\.\n+ authenticate`` \\- Redirect the request to the IdP authorization endpoint\\. This is the default value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `allow | authenticate | deny` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnUnauthenticatedRequest", "type": "string" }, "Scope": { + "markdownDescription": "The set of user claims to be requested from the IdP\\. The default is `openid`\\. \nTo verify which scope values your IdP supports and how to separate multiple values, see the documentation for your IdP\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scope", "type": "string" }, "SessionCookieName": { + "markdownDescription": "The name of the cookie used to maintain session information\\. The default is AWSELBAuthSessionCookie\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionCookieName", "type": "string" }, "SessionTimeout": { + "markdownDescription": "The maximum duration of the authentication session, in seconds\\. The default is 604800 seconds \\(7 days\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionTimeout", "type": "number" }, "TokenEndpoint": { + "markdownDescription": "The token endpoint of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenEndpoint", "type": "string" }, "UseExistingClientSecret": { + "markdownDescription": "Indicates whether to use the existing client secret when modifying a rule\\. If you are creating a rule, you can omit this parameter or set it to false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseExistingClientSecret", "type": "boolean" }, "UserInfoEndpoint": { + "markdownDescription": "The user info endpoint of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserInfoEndpoint", "type": "string" } }, @@ -60573,12 +74472,18 @@ "additionalProperties": false, "properties": { "ContentType": { + "markdownDescription": "The content type\\. \nValid Values: text/plain \\| text/css \\| text/html \\| application/javascript \\| application/json \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentType", "type": "string" }, "MessageBody": { + "markdownDescription": "The message\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageBody", "type": "string" }, "StatusCode": { + "markdownDescription": "The HTTP response code \\(2XX, 4XX, or 5XX\\)\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^(2|4|5)\\d\\d$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusCode", "type": "string" } }, @@ -60591,12 +74496,16 @@ "additionalProperties": false, "properties": { "TargetGroupStickinessConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.TargetGroupStickinessConfig" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.TargetGroupStickinessConfig", + "markdownDescription": "Information about the target group stickiness for a rule\\. \n*Required*: No \n*Type*: [TargetGroupStickinessConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-targetgroupstickinessconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroupStickinessConfig" }, "TargetGroups": { "items": { "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.TargetGroupTuple" }, + "markdownDescription": "Information about how traffic will be distributed between multiple target groups in a forward rule\\. \n*Required*: No \n*Type*: List of [TargetGroupTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-targetgrouptuple.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroups", "type": "array" } }, @@ -60609,6 +74518,8 @@ "items": { "type": "string" }, + "markdownDescription": "One or more host names\\. The maximum size of each name is 128 characters\\. The comparison is case insensitive\\. The following wildcard characters are supported: \\* \\(matches 0 or more characters\\) and ? \\(matches exactly 1 character\\)\\. \nIf you specify multiple strings, the condition is satisfied if one of the strings matches the host name\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -60618,12 +74529,16 @@ "additionalProperties": false, "properties": { "HttpHeaderName": { + "markdownDescription": "The name of the HTTP header field\\. The maximum size is 40 characters\\. The header name is case insensitive\\. The allowed characters are specified by RFC 7230\\. Wildcards are not supported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpHeaderName", "type": "string" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "One or more strings to compare against the value of the HTTP header\\. The maximum size of each string is 128 characters\\. The comparison strings are case insensitive\\. The following wildcard characters are supported: \\* \\(matches 0 or more characters\\) and ? \\(matches exactly 1 character\\)\\. \nIf the same header appears multiple times in the request, we search them in order until a match is found\\. \nIf you specify multiple strings, the condition is satisfied if one of the strings matches the value of the HTTP header\\. To require that all of the strings are a match, create one condition per string\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -60636,6 +74551,8 @@ "items": { "type": "string" }, + "markdownDescription": "The name of the request method\\. The maximum size is 40 characters\\. The allowed characters are A\\-Z, hyphen \\(\\-\\), and underscore \\(\\_\\)\\. The comparison is case sensitive\\. Wildcards are not supported; therefore, the method name must be an exact match\\. \nIf you specify multiple strings, the condition is satisfied if one of the strings matches the HTTP request method\\. We recommend that you route GET and HEAD requests in the same way, because the response to a HEAD request may be cached\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -60648,6 +74565,8 @@ "items": { "type": "string" }, + "markdownDescription": "One or more path patterns to compare against the request URL\\. The maximum size of each string is 128 characters\\. The comparison is case sensitive\\. The following wildcard characters are supported: \\* \\(matches 0 or more characters\\) and ? \\(matches exactly 1 character\\)\\. \nIf you specify multiple strings, the condition is satisfied if one of them matches the request URL\\. The path pattern is compared only to the path of the URL, not to its query string\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -60660,6 +74579,8 @@ "items": { "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.QueryStringKeyValue" }, + "markdownDescription": "One or more key/value pairs or values to find in the query string\\. The maximum size of each string is 128 characters\\. The comparison is case insensitive\\. The following wildcard characters are supported: \\* \\(matches 0 or more characters\\) and ? \\(matches exactly 1 character\\)\\. To search for a literal '\\*' or '?' character in a query string, you must escape these characters in `Values` using a '\\\\' character\\. \nIf you specify multiple key/value pairs or values, the condition is satisfied if one of them is found in the query string\\. \n*Required*: No \n*Type*: List of [QueryStringKeyValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-querystringkeyvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -60669,9 +74590,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The key\\. You can omit the key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -60681,21 +74606,33 @@ "additionalProperties": false, "properties": { "Host": { + "markdownDescription": "The hostname\\. This component is not percent\\-encoded\\. The hostname can contain \\#\\{host\\}\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", "type": "string" }, "Path": { + "markdownDescription": "The absolute path, starting with the leading \"/\"\\. This component is not percent\\-encoded\\. The path can contain \\#\\{host\\}, \\#\\{path\\}, and \\#\\{port\\}\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", "type": "string" }, "Port": { + "markdownDescription": "The port\\. You can specify a value from 1 to 65535 or \\#\\{port\\}\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "string" }, "Protocol": { + "markdownDescription": "The protocol\\. You can specify HTTP, HTTPS, or \\#\\{protocol\\}\\. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS\\. You cannot redirect HTTPS to HTTP\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^(HTTPS?|#\\{protocol\\})$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "string" }, "Query": { + "markdownDescription": "The query parameters, URL\\-encoded when necessary, but not percent\\-encoded\\. Do not include the leading \"?\", as it is automatically added\\. You can specify any of the reserved keywords\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Query", "type": "string" }, "StatusCode": { + "markdownDescription": "The HTTP redirect code\\. The redirect is either permanent \\(HTTP 301\\) or temporary \\(HTTP 302\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `HTTP_301 | HTTP_302` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusCode", "type": "string" } }, @@ -60708,30 +74645,46 @@ "additionalProperties": false, "properties": { "Field": { + "markdownDescription": "The field in the HTTP request\\. The following are the possible values: \n+ `http-header` \n+ `http-request-method` \n+ `host-header` \n+ `path-pattern` \n+ `query-string` \n+ `source-ip` \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Field", "type": "string" }, "HostHeaderConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.HostHeaderConfig" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.HostHeaderConfig", + "markdownDescription": "Information for a host header condition\\. Specify only when `Field` is `host-header`\\. \n*Required*: No \n*Type*: [HostHeaderConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-hostheaderconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostHeaderConfig" }, "HttpHeaderConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.HttpHeaderConfig" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.HttpHeaderConfig", + "markdownDescription": "Information for an HTTP header condition\\. Specify only when `Field` is `http-header`\\. \n*Required*: Conditional \n*Type*: [HttpHeaderConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-httpheaderconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpHeaderConfig" }, "HttpRequestMethodConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.HttpRequestMethodConfig" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.HttpRequestMethodConfig", + "markdownDescription": "Information for an HTTP method condition\\. Specify only when `Field` is `http-request-method`\\. \n*Required*: Conditional \n*Type*: [HttpRequestMethodConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-httprequestmethodconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpRequestMethodConfig" }, "PathPatternConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.PathPatternConfig" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.PathPatternConfig", + "markdownDescription": "Information for a path pattern condition\\. Specify only when `Field` is `path-pattern`\\. \n*Required*: No \n*Type*: [PathPatternConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-pathpatternconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PathPatternConfig" }, "QueryStringConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.QueryStringConfig" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.QueryStringConfig", + "markdownDescription": "Information for a query string condition\\. Specify only when `Field` is `query-string`\\. \n*Required*: Conditional \n*Type*: [QueryStringConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-querystringconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryStringConfig" }, "SourceIpConfig": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.SourceIpConfig" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.SourceIpConfig", + "markdownDescription": "Information for a source IP condition\\. Specify only when `Field` is `source-ip`\\. \n*Required*: Conditional \n*Type*: [SourceIpConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-sourceipconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceIpConfig" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "The condition value\\. Specify only when `Field` is `host-header` or `path-pattern`\\. Alternatively, to specify multiple host names or multiple path patterns, use `HostHeaderConfig` or `PathPatternConfig`\\. \nIf `Field` is `host-header` and you're not using `HostHeaderConfig`, you can specify a single host name \\(for example, my\\.example\\.com\\)\\. A host name is case insensitive, can be up to 128 characters in length, and can contain any of the following characters\\. \n+ A\\-Z, a\\-z, 0\\-9\n+ \\- \\.\n+ \\* \\(matches 0 or more characters\\)\n+ ? \\(matches exactly 1 character\\)\nIf `Field` is `path-pattern` and you're not using `PathPatternConfig`, you can specify a single path pattern \\(for example, /img/\\*\\)\\. A path pattern is case\\-sensitive, can be up to 128 characters in length, and can contain any of the following characters\\. \n+ A\\-Z, a\\-z, 0\\-9\n+ \\_ \\- \\. $ / \\~ \" ' @ : \\+\n+ & \\(using &\\)\n+ \\* \\(matches 0 or more characters\\)\n+ ? \\(matches exactly 1 character\\)\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -60744,6 +74697,8 @@ "items": { "type": "string" }, + "markdownDescription": "One or more source IP addresses, in CIDR format\\. You can use both IPv4 and IPv6 addresses\\. Wildcards are not supported\\. \nIf you specify multiple addresses, the condition is satisfied if the source IP address of the request matches one of the CIDR blocks\\. This condition is not satisfied by the addresses in the X\\-Forwarded\\-For header\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -60753,9 +74708,13 @@ "additionalProperties": false, "properties": { "DurationSeconds": { + "markdownDescription": "The time period, in seconds, during which requests from a client should be routed to the same target group\\. The range is 1\\-604800 seconds \\(7 days\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DurationSeconds", "type": "number" }, "Enabled": { + "markdownDescription": "Indicates whether target group stickiness is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -60765,9 +74724,13 @@ "additionalProperties": false, "properties": { "TargetGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the target group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroupArn", "type": "string" }, "Weight": { + "markdownDescription": "The weight\\. The range is 0 to 999\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Weight", "type": "number" } }, @@ -60809,45 +74772,63 @@ "additionalProperties": false, "properties": { "IpAddressType": { + "markdownDescription": "The IP address type\\. The possible values are `ipv4` \\(for IPv4 addresses\\) and `dualstack` \\(for IPv4 and IPv6 addresses\\)\\. You can\u2019t specify `dualstack` for a load balancer with a UDP or TCP\\_UDP listener\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dualstack | ipv4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IpAddressType", "type": "string" }, "LoadBalancerAttributes": { "items": { "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute" }, + "markdownDescription": "The load balancer attributes\\. \n*Required*: No \n*Type*: List of [LoadBalancerAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattributes.html) \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerAttributes", "type": "array" }, "Name": { + "markdownDescription": "The name of the load balancer\\. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with \"internal\\-\"\\. \nIf you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer\\. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates\\. To replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Scheme": { + "markdownDescription": "The nodes of an Internet\\-facing load balancer have public IP addresses\\. The DNS name of an Internet\\-facing load balancer is publicly resolvable to the public IP addresses of the nodes\\. Therefore, Internet\\-facing load balancers can route requests from clients over the internet\\. \nThe nodes of an internal load balancer have only private IP addresses\\. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes\\. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer\\. \nThe default is an Internet\\-facing load balancer\\. \nYou cannot specify a scheme for a Gateway Load Balancer\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `internal | internet-facing` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Scheme", "type": "string" }, "SecurityGroups": { "items": { "type": "string" }, + "markdownDescription": "\\[Application Load Balancers\\] The IDs of the security groups for the load balancer\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroups", "type": "array" }, "SubnetMappings": { "items": { "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping" }, + "markdownDescription": "The IDs of the public subnets\\. You can specify only one subnet per Availability Zone\\. You must specify either subnets or subnet mappings, but not both\\. \n\\[Application Load Balancers\\] You must specify subnets from at least two Availability Zones\\. You cannot specify Elastic IP addresses for your subnets\\. \n\\[Application Load Balancers on Outposts\\] You must specify one Outpost subnet\\. \n\\[Application Load Balancers on Local Zones\\] You can specify subnets from one or more Local Zones\\. \n\\[Network Load Balancers\\] You can specify subnets from one or more Availability Zones\\. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet\\-facing load balancer\\. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet\\. For internet\\-facing load balancer, you can specify one IPv6 address per subnet\\. \n\\[Gateway Load Balancers\\] You can specify subnets from one or more Availability Zones\\. You cannot specify Elastic IP addresses for your subnets\\. \n*Required*: Conditional \n*Type*: List of [SubnetMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetMappings", "type": "array" }, "Subnets": { "items": { "type": "string" }, + "markdownDescription": "The IDs of the public subnets\\. You can specify only one subnet per Availability Zone\\. You must specify either subnets or subnet mappings, but not both\\. To specify an Elastic IP address, specify subnet mappings instead of subnets\\. \n\\[Application Load Balancers\\] You must specify subnets from at least two Availability Zones\\. \n\\[Application Load Balancers on Outposts\\] You must specify one Outpost subnet\\. \n\\[Application Load Balancers on Local Zones\\] You can specify subnets from one or more Local Zones\\. \n\\[Network Load Balancers\\] You can specify subnets from one or more Availability Zones\\. \n\\[Gateway Load Balancers\\] You can specify subnets from one or more Availability Zones\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subnets", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to assign to the load balancer\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Type": { + "markdownDescription": "The type of load balancer\\. The default is `application`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `application | gateway | network` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -60877,9 +74858,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The name of the attribute\\. \nThe following attribute is supported by all load balancers: \n+ `deletion_protection.enabled` \\- Indicates whether deletion protection is enabled\\. The value is `true` or `false`\\. The default is `false`\\.\nThe following attributes are supported by both Application Load Balancers and Network Load Balancers: \n+ `access_logs.s3.enabled` \\- Indicates whether access logs are enabled\\. The value is `true` or `false`\\. The default is `false`\\.\n+ `access_logs.s3.bucket` \\- The name of the S3 bucket for the access logs\\. This attribute is required if access logs are enabled\\. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket\\.\n+ `access_logs.s3.prefix` \\- The prefix for the location in the S3 bucket for the access logs\\.\n+ `ipv6.deny_all_igw_traffic` \\- Blocks internet gateway \\(IGW\\) access to the load balancer\\. It is set to `false` for internet\\-facing load balancers and `true` for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway\\.\nThe following attributes are supported by only Application Load Balancers: \n+ `idle_timeout.timeout_seconds` \\- The idle timeout value, in seconds\\. The valid range is 1\\-4000 seconds\\. The default is 60 seconds\\.\n+ `routing.http.desync_mitigation_mode` \\- Determines how the load balancer handles requests that might pose a security risk to your application\\. The possible values are `monitor`, `defensive`, and `strictest`\\. The default is `defensive`\\.\n+ `routing.http.drop_invalid_header_fields.enabled` \\- Indicates whether HTTP headers with invalid header fields are removed by the load balancer \\(`true`\\) or routed to targets \\(`false`\\)\\. The default is `false`\\.\n+ `routing.http.x_amzn_tls_version_and_cipher_suite.enabled` \\- Indicates whether the two headers \\(`x-amzn-tls-version` and `x-amzn-tls-cipher-suite`\\), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target\\. The `x-amzn-tls-version` header has information about the TLS protocol version negotiated with the client, and the `x-amzn-tls-cipher-suite` header has information about the cipher suite negotiated with the client\\. Both headers are in OpenSSL format\\. The possible values for the attribute are `true` and `false`\\. The default is `false`\\.\n+ `routing.http.xff_client_port.enabled` \\- Indicates whether the `X-Forwarded-For` header should preserve the source port that the client used to connect to the load balancer\\. The possible values are `true` and `false`\\. The default is `false`\\.\n+ `routing.http2.enabled` \\- Indicates whether HTTP/2 is enabled\\. The possible values are `true` and `false`\\. The default is `true`\\. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens\\.\n+ `waf.fail_open.enabled` \\- Indicates whether to allow a WAF\\-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF\\. The possible values are `true` and `false`\\. The default is `false`\\.\nThe following attribute is supported by Network Load Balancers and Gateway Load Balancers: \n+ `load_balancing.cross_zone.enabled` \\- Indicates whether cross\\-zone load balancing is enabled\\. The possible values are `true` and `false`\\. The default is `false`\\.\n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^[a-zA-Z0-9._]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The value of the attribute\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -60889,15 +74874,23 @@ "additionalProperties": false, "properties": { "AllocationId": { + "markdownDescription": "\\[Network Load Balancers\\] The allocation ID of the Elastic IP address for an internet\\-facing load balancer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocationId", "type": "string" }, "IPv6Address": { + "markdownDescription": "\\[Network Load Balancers\\] The IPv6 address\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IPv6Address", "type": "string" }, "PrivateIPv4Address": { + "markdownDescription": "\\[Network Load Balancers\\] The private IPv4 address for an internal load balancer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateIPv4Address", "type": "string" }, "SubnetId": { + "markdownDescription": "The ID of the subnet\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetId", "type": "string" } }, @@ -60942,69 +74935,107 @@ "additionalProperties": false, "properties": { "HealthCheckEnabled": { + "markdownDescription": "Indicates whether health checks are enabled\\. If the target type is `lambda`, health checks are disabled by default but can be enabled\\. If the target type is `instance`, `ip`, or `alb`, health checks are always enabled and cannot be disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckEnabled", "type": "boolean" }, "HealthCheckIntervalSeconds": { + "markdownDescription": "The approximate amount of time, in seconds, between health checks of an individual target\\. If the target group protocol is HTTP or HTTPS, the default is 30 seconds\\. If the target group protocol is TCP, TLS, UDP, or TCP\\_UDP, the supported values are 10 and 30 seconds and the default is 30 seconds\\. If the target group protocol is GENEVE, the default is 10 seconds\\. If the target type is `lambda`, the default is 35 seconds\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `5` \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckIntervalSeconds", "type": "number" }, "HealthCheckPath": { + "markdownDescription": "\\[HTTP/HTTPS health checks\\] The destination for health checks on the targets\\. \n\\[HTTP1 or HTTP2 protocol version\\] The ping path\\. The default is /\\. \n\\[GRPC protocol version\\] The path of a custom health check method with the format /package\\.service/method\\. The default is /AWS\\.ALB/healthcheck\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckPath", "type": "string" }, "HealthCheckPort": { + "markdownDescription": "The port the load balancer uses when performing health checks on targets\\. If the protocol is HTTP, HTTPS, TCP, TLS, UDP, or TCP\\_UDP, the default is `traffic-port`, which is the port on which each target receives traffic from the load balancer\\. If the protocol is GENEVE, the default is port 80\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckPort", "type": "string" }, "HealthCheckProtocol": { + "markdownDescription": "The protocol the load balancer uses when performing health checks on targets\\. For Application Load Balancers, the default is HTTP\\. For Network Load Balancers and Gateway Load Balancers, the default is TCP\\. The TCP protocol is not supported for health checks if the protocol of the target group is HTTP or HTTPS\\. The GENEVE, TLS, UDP, and TCP\\_UDP protocols are not supported for health checks\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GENEVE | HTTP | HTTPS | TCP | TCP_UDP | TLS | UDP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckProtocol", "type": "string" }, "HealthCheckTimeoutSeconds": { + "markdownDescription": "The amount of time, in seconds, during which no response from a target means a failed health check\\. For target groups with a protocol of HTTP, HTTPS, or GENEVE, the default is 5 seconds\\. For target groups with a protocol of TCP or TLS, this value must be 6 seconds for HTTP health checks and 10 seconds for TCP and HTTPS health checks\\. If the target type is `lambda`, the default is 30 seconds\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `120` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckTimeoutSeconds", "type": "number" }, "HealthyThresholdCount": { + "markdownDescription": "The number of consecutive health checks successes required before considering an unhealthy target healthy\\. For target groups with a protocol of HTTP or HTTPS, the default is 5\\. For target groups with a protocol of TCP, TLS, or GENEVE, the default is 3\\. If the target type is `lambda`, the default is 5\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthyThresholdCount", "type": "number" }, "IpAddressType": { + "markdownDescription": "The type of IP address used for this target group\\. The possible values are `ipv4` and `ipv6`\\. This is an optional parameter\\. If not specified, the IP address type defaults to `ipv4`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ipv4 | ipv6` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpAddressType", "type": "string" }, "Matcher": { - "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.Matcher" + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.Matcher", + "markdownDescription": "\\[HTTP/HTTPS health checks\\] The HTTP or gRPC codes to use when checking for a successful response from a target\\. \n*Required*: No \n*Type*: [Matcher](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-matcher.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Matcher" }, "Name": { + "markdownDescription": "The name of the target group\\. \nThis name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Port": { + "markdownDescription": "The port on which the targets receive traffic\\. This port is used unless you specify a port override when registering the target\\. If the target is a Lambda function, this parameter does not apply\\. If the protocol is GENEVE, the supported port is 6081\\. \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Port", "type": "number" }, "Protocol": { + "markdownDescription": "The protocol to use for routing traffic to the targets\\. For Application Load Balancers, the supported protocols are HTTP and HTTPS\\. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, or TCP\\_UDP\\. For Gateway Load Balancers, the supported protocol is GENEVE\\. A TCP\\_UDP listener must be associated with a TCP\\_UDP target group\\. If the target is a Lambda function, this parameter does not apply\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `GENEVE | HTTP | HTTPS | TCP | TCP_UDP | TLS | UDP` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Protocol", "type": "string" }, "ProtocolVersion": { + "markdownDescription": "\\[HTTP/HTTPS protocol\\] The protocol version\\. The possible values are `GRPC`, `HTTP1`, and `HTTP2`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProtocolVersion", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TargetGroupAttributes": { "items": { "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute" }, + "markdownDescription": "The attributes\\. \n*Required*: No \n*Type*: List of [TargetGroupAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetgroupattribute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroupAttributes", "type": "array" }, "TargetType": { + "markdownDescription": "The type of target that you must specify when registering targets with this target group\\. You can't specify targets for a target group using more than one target type\\. \n+ `instance` \\- Register targets by instance ID\\. This is the default value\\.\n+ `ip` \\- Register targets by IP address\\. You can specify IP addresses from the subnets of the virtual private cloud \\(VPC\\) for the target group, the RFC 1918 range \\(10\\.0\\.0\\.0/8, 172\\.16\\.0\\.0/12, and 192\\.168\\.0\\.0/16\\), and the RFC 6598 range \\(100\\.64\\.0\\.0/10\\)\\. You can't specify publicly routable IP addresses\\.\n+ `lambda` \\- Register a single Lambda function as a target\\.\n+ `alb` \\- Register a single Application Load Balancer as a target\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `alb | instance | ip | lambda` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetType", "type": "string" }, "Targets": { "items": { "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription" }, + "markdownDescription": "The targets\\. \n*Required*: No \n*Type*: List of [TargetDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetdescription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Targets", "type": "array" }, "UnhealthyThresholdCount": { + "markdownDescription": "The number of consecutive health check failures required before considering a target unhealthy\\. If the target group protocol is HTTP or HTTPS, the default is 2\\. If the target group protocol is TCP or TLS, this value must be the same as the healthy threshold count\\. If the target group protocol is GENEVE, the default is 3\\. If the target type is `lambda`, the default is 2\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnhealthyThresholdCount", "type": "number" }, "VpcId": { + "markdownDescription": "The identifier of the virtual private cloud \\(VPC\\)\\. If the target is a Lambda function, this parameter does not apply\\. Otherwise, this parameter is required\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -61034,9 +75065,13 @@ "additionalProperties": false, "properties": { "GrpcCode": { + "markdownDescription": "You can specify values between 0 and 99\\. You can specify multiple values \\(for example, \"0,1\"\\) or a range of values \\(for example, \"0\\-5\"\\)\\. The default value is 12\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GrpcCode", "type": "string" }, "HttpCode": { + "markdownDescription": "For Application Load Balancers, you can specify values between 200 and 499, and the default value is 200\\. You can specify multiple values \\(for example, \"200,202\"\\) or a range of values \\(for example, \"200\\-299\"\\)\\. \nFor Network Load Balancers and Gateway Load Balancers, this must be \"200\u2013399\"\\. \nNote that when using shorthand syntax, some values such as commas need to be escaped\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpCode", "type": "string" } }, @@ -61046,12 +75081,18 @@ "additionalProperties": false, "properties": { "AvailabilityZone": { + "markdownDescription": "An Availability Zone or `all`\\. This determines whether the target receives traffic from the load balancer nodes in the specified Availability Zone or from all enabled Availability Zones for the load balancer\\. \nThis parameter is not supported if the target type of the target group is `instance` or `alb`\\. \nIf the target type is `ip` and the IP address is in a subnet of the VPC for the target group, the Availability Zone is automatically detected and this parameter is optional\\. If the IP address is outside the VPC, this parameter is required\\. \nWith an Application Load Balancer, if the target type is `ip` and the IP address is outside the VPC for the target group, the only supported value is `all`\\. \nIf the target type is `lambda`, this parameter is optional and the only supported value is `all`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZone", "type": "string" }, "Id": { + "markdownDescription": "The ID of the target\\. If the target type of the target group is `instance`, specify an instance ID\\. If the target type is `ip`, specify an IP address\\. If the target type is `lambda`, specify the ARN of the Lambda function\\. If the target type is `alb`, specify the ARN of the Application Load Balancer target\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "Port": { + "markdownDescription": "The port on which the target is listening\\. If the target group protocol is GENEVE, the supported port is 6081\\. If the target type is `alb`, the targeted Application Load Balancer must have at least one listener whose port matches the target group port\\. Not used if the target is a Lambda function\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" } }, @@ -61064,9 +75105,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The name of the attribute\\. \nThe following attribute is supported by all load balancers: \n+ `deregistration_delay.timeout_seconds` \\- The amount of time, in seconds, for Elastic Load Balancing to wait before changing the state of a deregistering target from `draining` to `unused`\\. The range is 0\\-3600 seconds\\. The default value is 300 seconds\\. If the target is a Lambda function, this attribute is not supported\\.\nThe following attributes are supported by both Application Load Balancers and Network Load Balancers: \n+ `stickiness.enabled` \\- Indicates whether sticky sessions are enabled\\. The value is `true` or `false`\\. The default is `false`\\.\n+ `stickiness.type` \\- The type of sticky sessions\\. The possible values are `lb_cookie` and `app_cookie` for Application Load Balancers or `source_ip` for Network Load Balancers\\.\nThe following attributes are supported only if the load balancer is an Application Load Balancer and the target is an instance or an IP address: \n+ `load_balancing.algorithm.type` \\- The load balancing algorithm determines how the load balancer selects targets when routing requests\\. The value is `round_robin` or `least_outstanding_requests`\\. The default is `round_robin`\\.\n+ `slow_start.duration_seconds` \\- The time period, in seconds, during which a newly registered target receives an increasing share of the traffic to the target group\\. After this time period ends, the target receives its full share of traffic\\. The range is 30\\-900 seconds \\(15 minutes\\)\\. The default is 0 seconds \\(disabled\\)\\.\n+ `stickiness.app_cookie.cookie_name` \\- Indicates the name of the application\\-based cookie\\. Names that start with the following prefixes are not allowed: `AWSALB`, `AWSALBAPP`, and `AWSALBTG`; they're reserved for use by the load balancer\\.\n+ `stickiness.app_cookie.duration_seconds` \\- The time period, in seconds, during which requests from a client should be routed to the same target\\. After this time period expires, the application\\-based cookie is considered stale\\. The range is 1 second to 1 week \\(604800 seconds\\)\\. The default value is 1 day \\(86400 seconds\\)\\.\n+ `stickiness.lb_cookie.duration_seconds` \\- The time period, in seconds, during which requests from a client should be routed to the same target\\. After this time period expires, the load balancer\\-generated cookie is considered stale\\. The range is 1 second to 1 week \\(604800 seconds\\)\\. The default value is 1 day \\(86400 seconds\\)\\.\nThe following attribute is supported only if the load balancer is an Application Load Balancer and the target is a Lambda function: \n+ `lambda.multi_value_headers.enabled` \\- Indicates whether the request and response headers that are exchanged between the load balancer and the Lambda function include arrays of values or strings\\. The value is `true` or `false`\\. The default is `false`\\. If the value is `false` and the request contains a duplicate header field name or query parameter key, the load balancer uses the last value sent by the client\\.\nThe following attributes are supported only by Network Load Balancers: \n+ `deregistration_delay.connection_termination.enabled` \\- Indicates whether the load balancer terminates connections at the end of the deregistration timeout\\. The value is `true` or `false`\\. The default is `false`\\.\n+ `preserve_client_ip.enabled` \\- Indicates whether client IP preservation is enabled\\. The value is `true` or `false`\\. The default is disabled if the target group type is IP address and the target group protocol is TCP or TLS\\. Otherwise, the default is enabled\\. Client IP preservation cannot be disabled for UDP and TCP\\_UDP target groups\\.\n+ `proxy_protocol_v2.enabled` \\- Indicates whether Proxy Protocol version 2 is enabled\\. The value is `true` or `false`\\. The default is `false`\\.\n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^[a-zA-Z0-9._]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The value of the attribute\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -61108,64 +75153,94 @@ "additionalProperties": false, "properties": { "AccessPolicies": { + "markdownDescription": "An AWS Identity and Access Management \\(IAM\\) policy document that specifies who can access the OpenSearch Service domain and their permissions\\. For more information, see [Configuring access policies](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ac.html#ac-creating) in the *Amazon OpenSearch Service Developer Guid*e\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessPolicies", "type": "object" }, "AdvancedOptions": { "additionalProperties": true, + "markdownDescription": "Additional options to specify for the OpenSearch Service domain\\. For more information, see [Advanced cluster parameters](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-advanced-options) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "AdvancedOptions", "type": "object" }, "AdvancedSecurityOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.AdvancedSecurityOptionsInput" + "$ref": "#/definitions/AWS::Elasticsearch::Domain.AdvancedSecurityOptionsInput", + "markdownDescription": "Specifies options for fine\\-grained access control\\. \n*Required*: No \n*Type*: [AdvancedSecurityOptionsInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-advancedsecurityoptionsinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AdvancedSecurityOptions" }, "CognitoOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.CognitoOptions" + "$ref": "#/definitions/AWS::Elasticsearch::Domain.CognitoOptions", + "markdownDescription": "Configures OpenSearch Service to use Amazon Cognito authentication for OpenSearch Dashboards\\. \n*Required*: No \n*Type*: [CognitoOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-cognitooptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CognitoOptions" }, "DomainEndpointOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.DomainEndpointOptions" + "$ref": "#/definitions/AWS::Elasticsearch::Domain.DomainEndpointOptions", + "markdownDescription": "Specifies additional options for the domain endpoint, such as whether to require HTTPS for all traffic or whether to use a custom endpoint rather than the default endpoint\\. \n*Required*: No \n*Type*: [DomainEndpointOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-domainendpointoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainEndpointOptions" }, "DomainName": { + "markdownDescription": "A name for the OpenSearch Service domain\\. For valid values, see the [DomainName](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/configuration-api.html#configuration-api-datatypes-domainname) data type in the *Amazon OpenSearch Service Developer Guide*\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the domain name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", "type": "string" }, "EBSOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.EBSOptions" + "$ref": "#/definitions/AWS::Elasticsearch::Domain.EBSOptions", + "markdownDescription": "The configurations of Amazon Elastic Block Store \\(Amazon EBS\\) volumes that are attached to data nodes in the OpenSearch Service domain\\. For more information, see [EBS volume size limits](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#ebsresource) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: [EBSOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EBSOptions" }, "ElasticsearchClusterConfig": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.ElasticsearchClusterConfig" + "$ref": "#/definitions/AWS::Elasticsearch::Domain.ElasticsearchClusterConfig", + "markdownDescription": "ElasticsearchClusterConfig is a property of the AWS::Elasticsearch::Domain resource that configures the cluster of an Amazon OpenSearch Service domain\\. \n*Required*: No \n*Type*: [ElasticsearchClusterConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticsearchClusterConfig" }, "ElasticsearchVersion": { + "markdownDescription": "The version of Elasticsearch to use, such as 2\\.3\\. If not specified, 1\\.5 is used as the default\\. For information about the versions that OpenSearch Service supports, see [Supported versions of OpenSearch and Elasticsearch](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/what-is.html#choosing-version) in the *Amazon OpenSearch Service Developer Guide*\\. \nIf you set the [EnableVersionUpgrade](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-upgradeopensearchdomain) update policy to `true`, you can update `ElasticsearchVersion` without interruption\\. When `EnableVersionUpgrade` is set to `false`, or is not specified, updating `ElasticsearchVersion` results in [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "ElasticsearchVersion", "type": "string" }, "EncryptionAtRestOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.EncryptionAtRestOptions" + "$ref": "#/definitions/AWS::Elasticsearch::Domain.EncryptionAtRestOptions", + "markdownDescription": "Whether the domain should encrypt data at rest, and if so, the AWS Key Management Service key to use\\. See [Encryption of data at rest for Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/encryption-at-rest.html)\\. \n*Required*: No \n*Type*: [EncryptionAtRestOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-encryptionatrestoptions.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "EncryptionAtRestOptions" }, "LogPublishingOptions": { "additionalProperties": false, + "markdownDescription": "An object with one or more of the following keys: `SEARCH_SLOW_LOGS`, `ES_APPLICATION_LOGS`, `INDEX_SLOW_LOGS`, `AUDIT_LOGS`, depending on the types of logs you want to publish\\. Each key needs a valid `LogPublishingOption` value\\. \n*Required*: No \n*Type*: Map of [LogPublishingOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-logpublishingoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::Elasticsearch::Domain.LogPublishingOption" } }, + "title": "LogPublishingOptions", "type": "object" }, "NodeToNodeEncryptionOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.NodeToNodeEncryptionOptions" + "$ref": "#/definitions/AWS::Elasticsearch::Domain.NodeToNodeEncryptionOptions", + "markdownDescription": "Specifies whether node\\-to\\-node encryption is enabled\\. See [Node\\-to\\-node encryption for Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ntn.html)\\. \n*Required*: No \n*Type*: [NodeToNodeEncryptionOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-nodetonodeencryptionoptions.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "NodeToNodeEncryptionOptions" }, "SnapshotOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.SnapshotOptions" + "$ref": "#/definitions/AWS::Elasticsearch::Domain.SnapshotOptions", + "markdownDescription": "**DEPRECATED**\\. The automated snapshot configuration for the OpenSearch Service domain indices\\. \n*Required*: No \n*Type*: [SnapshotOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-snapshotoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotOptions" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An arbitrary set of tags \\(key\u2013value pairs\\) to associate with the OpenSearch Service domain\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VPCOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.VPCOptions" + "$ref": "#/definitions/AWS::Elasticsearch::Domain.VPCOptions", + "markdownDescription": "The virtual private cloud \\(VPC\\) configuration for the OpenSearch Service domain\\. For more information, see [Launching your Amazon OpenSearch Service domains within a VPC](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: [VPCOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-vpcoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VPCOptions" } }, "type": "object" @@ -61197,13 +75272,19 @@ "type": "boolean" }, "Enabled": { + "markdownDescription": "True to enable fine\\-grained access control\\. You must also enable encryption of data at rest and node\\-to\\-node encryption\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Enabled", "type": "boolean" }, "InternalUserDatabaseEnabled": { + "markdownDescription": "True to enable the internal user database\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InternalUserDatabaseEnabled", "type": "boolean" }, "MasterUserOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.MasterUserOptions" + "$ref": "#/definitions/AWS::Elasticsearch::Domain.MasterUserOptions", + "markdownDescription": "Specifies information about the master user\\. \n*Required*: No \n*Type*: [MasterUserOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-masteruseroptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MasterUserOptions" } }, "type": "object" @@ -61212,15 +75293,23 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Whether to enable or disable Amazon Cognito authentication for OpenSearch Dashboards\\. See [Amazon Cognito authentication for OpenSearch Dashboards](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/cognito-auth.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "IdentityPoolId": { + "markdownDescription": "The Amazon Cognito identity pool ID that you want OpenSearch Service to use for OpenSearch Dashboards authentication\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentityPoolId", "type": "string" }, "RoleArn": { + "markdownDescription": "The `AmazonESCognitoAccess` role that allows OpenSearch Service to configure your user pool and identity pool\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "UserPoolId": { + "markdownDescription": "The Amazon Cognito user pool ID that you want OpenSearch Service to use for OpenSearch Dashboards authentication\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolId", "type": "string" } }, @@ -61230,6 +75319,8 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Whether to enable or disable cold storage on the domain\\. You must enable UltraWarm storage in order to enable cold storage\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -61239,18 +75330,28 @@ "additionalProperties": false, "properties": { "CustomEndpoint": { + "markdownDescription": "The fully qualified URL for your custom endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomEndpoint", "type": "string" }, "CustomEndpointCertificateArn": { + "markdownDescription": "The AWS Certificate Manager ARN for your domain's SSL/TLS certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomEndpointCertificateArn", "type": "string" }, "CustomEndpointEnabled": { + "markdownDescription": "True to enable a custom endpoint for the domain\\. If enabled, you must also provide values for `CustomEndpoint` and `CustomEndpointCertificateArn`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomEndpointEnabled", "type": "boolean" }, "EnforceHTTPS": { + "markdownDescription": "True to require that all traffic to the domain arrive over HTTPS\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnforceHTTPS", "type": "boolean" }, "TLSSecurityPolicy": { + "markdownDescription": "The minimum TLS version required for traffic to the domain\\. Valid values are TLS 1\\.0 \\(default\\) or 1\\.2: \n+ `Policy-Min-TLS-1-0-2019-07`\n+ `Policy-Min-TLS-1-2-2019-07`\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TLSSecurityPolicy", "type": "string" } }, @@ -61260,15 +75361,23 @@ "additionalProperties": false, "properties": { "EBSEnabled": { + "markdownDescription": "Specifies whether Amazon EBS volumes are attached to data nodes in the OpenSearch Service domain\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EBSEnabled", "type": "boolean" }, "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\) that the volume supports\\. This property applies only to the Provisioned IOPS \\(SSD\\) EBS volume type\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iops", "type": "number" }, "VolumeSize": { + "markdownDescription": "The size \\(in GiB\\) of the EBS volume for each data node\\. The minimum and maximum size of an EBS volume depends on the EBS volume type and the instance type to which it is attached\\. For more information, see [EBS volume size limits](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#ebsresource) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeSize", "type": "number" }, "VolumeType": { + "markdownDescription": "The EBS volume type to use with the OpenSearch Service domain, such as standard, gp2, or io1\\. For more information about each type, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeType", "type": "string" } }, @@ -61278,36 +75387,58 @@ "additionalProperties": false, "properties": { "ColdStorageOptions": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.ColdStorageOptions" + "$ref": "#/definitions/AWS::Elasticsearch::Domain.ColdStorageOptions", + "markdownDescription": "Specifies cold storage options for the domain\\. \n*Required*: No \n*Type*: [ColdStorageOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-coldstorageoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColdStorageOptions" }, "DedicatedMasterCount": { + "markdownDescription": "The number of instances to use for the master node\\. If you specify this property, you must specify true for the DedicatedMasterEnabled property\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DedicatedMasterCount", "type": "number" }, "DedicatedMasterEnabled": { + "markdownDescription": "Indicates whether to use a dedicated master node for the OpenSearch Service domain\\. A dedicated master node is a cluster node that performs cluster management tasks, but doesn't hold data or respond to data upload requests\\. Dedicated master nodes offload cluster management tasks to increase the stability of your search clusters\\. See [Dedicated master nodes in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-dedicatedmasternodes.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DedicatedMasterEnabled", "type": "boolean" }, "DedicatedMasterType": { + "markdownDescription": "The hardware configuration of the computer that hosts the dedicated master node, such as `m3.medium.elasticsearch`\\. If you specify this property, you must specify true for the `DedicatedMasterEnabled` property\\. For valid values, see [Supported instance types in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DedicatedMasterType", "type": "string" }, "InstanceCount": { + "markdownDescription": "The number of data nodes \\(instances\\) to use in the OpenSearch Service domain\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceCount", "type": "number" }, "InstanceType": { + "markdownDescription": "The instance type for your data nodes, such as `m3.medium.elasticsearch`\\. For valid values, see [Supported instance types in Amazon OpenSearch Service ](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", "type": "string" }, "WarmCount": { + "markdownDescription": "The number of warm nodes in the cluster\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WarmCount", "type": "number" }, "WarmEnabled": { + "markdownDescription": "Whether to enable warm storage for the cluster\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WarmEnabled", "type": "boolean" }, "WarmType": { + "markdownDescription": "The instance type for the cluster's warm nodes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WarmType", "type": "string" }, "ZoneAwarenessConfig": { - "$ref": "#/definitions/AWS::Elasticsearch::Domain.ZoneAwarenessConfig" + "$ref": "#/definitions/AWS::Elasticsearch::Domain.ZoneAwarenessConfig", + "markdownDescription": "Specifies zone awareness configuration options\\. Only use if `ZoneAwarenessEnabled` is `true`\\. \n*Required*: No \n*Type*: [ZoneAwarenessConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-zoneawarenessconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ZoneAwarenessConfig" }, "ZoneAwarenessEnabled": { + "markdownDescription": "Indicates whether to enable zone awareness for the OpenSearch Service domain\\. When you enable zone awareness, OpenSearch Service allocates the nodes and replica index shards that belong to a cluster across two Availability Zones \\(AZs\\) in the same region to prevent data loss and minimize downtime in the event of node or data center failure\\. Don't enable zone awareness if your cluster has no replica index shards or is a single\\-node cluster\\. For more information, see [Configuring a multi\\-AZ domain in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ZoneAwarenessEnabled", "type": "boolean" } }, @@ -61317,9 +75448,13 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Specify `true` to enable encryption at rest\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Enabled", "type": "boolean" }, "KmsKeyId": { + "markdownDescription": "The KMS key ID\\. Takes the form `1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" } }, @@ -61329,9 +75464,13 @@ "additionalProperties": false, "properties": { "CloudWatchLogsLogGroupArn": { + "markdownDescription": "Specifies the CloudWatch log group to publish to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogsLogGroupArn", "type": "string" }, "Enabled": { + "markdownDescription": "If `true`, enables the publishing of logs to CloudWatch\\. \nDefault: `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -61341,12 +75480,18 @@ "additionalProperties": false, "properties": { "MasterUserARN": { + "markdownDescription": "ARN for the master user\\. Only specify if `InternalUserDatabaseEnabled` is false in `AdvancedSecurityOptions`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MasterUserARN", "type": "string" }, "MasterUserName": { + "markdownDescription": "Username for the master user\\. Only specify if `InternalUserDatabaseEnabled` is true in `AdvancedSecurityOptions`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MasterUserName", "type": "string" }, "MasterUserPassword": { + "markdownDescription": "Password for the master user\\. Only specify if `InternalUserDatabaseEnabled` is true in `AdvancedSecurityOptions`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MasterUserPassword", "type": "string" } }, @@ -61356,6 +75501,8 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Specifies whether node\\-to\\-node encryption is enabled, as a Boolean\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -61365,6 +75512,8 @@ "additionalProperties": false, "properties": { "AutomatedSnapshotStartHour": { + "markdownDescription": "The hour in UTC during which the service takes an automated daily snapshot of the indices in the OpenSearch Service domain\\. For example, if you specify 0, OpenSearch Service takes an automated snapshot everyday between midnight and 1 am\\. You can specify a value between 0 and 23\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutomatedSnapshotStartHour", "type": "number" } }, @@ -61377,12 +75526,16 @@ "items": { "type": "string" }, + "markdownDescription": "The list of security group IDs that are associated with the VPC endpoints for the domain\\. If you don't provide a security group ID, OpenSearch Service uses the default security group for the VPC\\. To learn more, see [Security groups for your VPC ](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) in the *Amazon VPC User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "Provide one subnet ID for each Availability Zone that your domain uses\\. For example, you must specify three subnet IDs for a three Availability Zone domain\\. To learn more, see [VPCs and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html) in the *Amazon VPC User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" } }, @@ -61392,6 +75545,8 @@ "additionalProperties": false, "properties": { "AvailabilityZoneCount": { + "markdownDescription": "If you enabled multiple Availability Zones \\(AZs\\), the number of AZs that you want the domain to use\\. \nValid values are `2` and `3`\\. Default is 2\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZoneCount", "type": "number" } }, @@ -61433,18 +75588,26 @@ "additionalProperties": false, "properties": { "CrossAccount": { + "markdownDescription": "Allows for the discovery of the event schemas that are sent to the event bus from another account\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CrossAccount", "type": "boolean" }, "Description": { + "markdownDescription": "A description for the discoverer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "SourceArn": { + "markdownDescription": "The ARN of the event bus\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceArn", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/AWS::EventSchemas::Discoverer.TagsEntry" }, + "markdownDescription": "Tags associated with the resource\\. \n*Required*: No \n*Type*: List of [TagsEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eventschemas-discoverer-tagsentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -61478,9 +75641,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "They key of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "They value of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -61526,15 +75693,21 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the registry to be created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "RegistryName": { + "markdownDescription": "The name of the schema registry\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RegistryName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/AWS::EventSchemas::Registry.TagsEntry" }, + "markdownDescription": "Tags to associate with the registry\\. \n*Required*: No \n*Type*: List of [TagsEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eventschemas-registry-tagsentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -61564,9 +75737,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "They key of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "They value of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -61612,12 +75789,18 @@ "additionalProperties": false, "properties": { "Policy": { + "markdownDescription": "A resource\\-based policy\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policy", "type": "object" }, "RegistryName": { + "markdownDescription": "The name of the registry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegistryName", "type": "string" }, "RevisionId": { + "markdownDescription": "The revision ID of the policy\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RevisionId", "type": "string" } }, @@ -61684,24 +75867,36 @@ "additionalProperties": false, "properties": { "Content": { + "markdownDescription": "The source of the schema definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Content", "type": "string" }, "Description": { + "markdownDescription": "A description of the schema\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "RegistryName": { + "markdownDescription": "The name of the schema registry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RegistryName", "type": "string" }, "SchemaName": { + "markdownDescription": "The name of the schema\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SchemaName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/AWS::EventSchemas::Schema.TagsEntry" }, + "markdownDescription": "Tags associated with the schema\\. \n*Required*: No \n*Type*: List of [TagsEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eventschemas-schema-tagsentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Type": { + "markdownDescription": "The type of schema\\. \nValid types include `OpenApi3` and `JSONSchemaDraft4`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -61737,9 +75932,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "They key of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "They value of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -61785,21 +75984,33 @@ "additionalProperties": false, "properties": { "ConnectionArn": { + "markdownDescription": "The ARN of the connection to use for the API destination\\. The destination endpoint must support the authorization type specified for the connection\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `^arn:aws([a-z]|\\-)*:events:([a-z]|\\d|\\-)*:([0-9]{12})?:connection\\/[\\.\\-_A-Za-z0-9]+\\/[\\-A-Za-z0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionArn", "type": "string" }, "Description": { + "markdownDescription": "A description for the API destination to create\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "HttpMethod": { + "markdownDescription": "The method to use for the request to the HTTP invocation endpoint\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DELETE | GET | HEAD | OPTIONS | PATCH | POST | PUT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpMethod", "type": "string" }, "InvocationEndpoint": { + "markdownDescription": "The URL to the HTTP invocation endpoint for the API destination\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InvocationEndpoint", "type": "string" }, "InvocationRateLimitPerSecond": { + "markdownDescription": "The maximum number of requests per second to send to the HTTP invocation endpoint\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InvocationRateLimitPerSecond", "type": "number" }, "Name": { + "markdownDescription": "The name for the API destination to create\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" } }, @@ -61867,18 +76078,28 @@ "additionalProperties": false, "properties": { "ArchiveName": { + "markdownDescription": "The name for the archive to create\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `48` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ArchiveName", "type": "string" }, "Description": { + "markdownDescription": "A description for the archive\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "EventPattern": { + "markdownDescription": "An event pattern to use to filter events sent to the archive\\. \n*Required*: No \n*Type*: Json \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventPattern", "type": "object" }, "RetentionDays": { + "markdownDescription": "The number of days to retain events for\\. Default value is 0\\. If set to 0, events are retained indefinitely \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetentionDays", "type": "number" }, "SourceArn": { + "markdownDescription": "The ARN of the event bus that sends events to the archive\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceArn", "type": "string" } }, @@ -61944,15 +76165,23 @@ "additionalProperties": false, "properties": { "AuthParameters": { - "$ref": "#/definitions/AWS::Events::Connection.AuthParameters" + "$ref": "#/definitions/AWS::Events::Connection.AuthParameters", + "markdownDescription": "A `CreateConnectionAuthRequestParameters` object that contains the authorization parameters to use to authorize with the endpoint\\. \n*Required*: Yes \n*Type*: [AuthParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-authparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthParameters" }, "AuthorizationType": { + "markdownDescription": "The type of authorization to use for the connection\\. \nOAUTH tokens are refreshed when a 401 or 407 response is returned\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `API_KEY | BASIC | OAUTH_CLIENT_CREDENTIALS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationType", "type": "string" }, "Description": { + "markdownDescription": "A description for the connection to create\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name for the connection to create\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" } }, @@ -61987,9 +76216,13 @@ "additionalProperties": false, "properties": { "ApiKeyName": { + "markdownDescription": "The name of the API key to use for authorization\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKeyName", "type": "string" }, "ApiKeyValue": { + "markdownDescription": "The value for the API key to use for authorization\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKeyValue", "type": "string" } }, @@ -62003,16 +76236,24 @@ "additionalProperties": false, "properties": { "ApiKeyAuthParameters": { - "$ref": "#/definitions/AWS::Events::Connection.ApiKeyAuthParameters" + "$ref": "#/definitions/AWS::Events::Connection.ApiKeyAuthParameters", + "markdownDescription": "The API Key parameters to use for authorization\\. \n*Required*: No \n*Type*: [ApiKeyAuthParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-apikeyauthparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKeyAuthParameters" }, "BasicAuthParameters": { - "$ref": "#/definitions/AWS::Events::Connection.BasicAuthParameters" + "$ref": "#/definitions/AWS::Events::Connection.BasicAuthParameters", + "markdownDescription": "The authorization parameters for Basic authorization\\. \n*Required*: No \n*Type*: [BasicAuthParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-basicauthparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BasicAuthParameters" }, "InvocationHttpParameters": { - "$ref": "#/definitions/AWS::Events::Connection.ConnectionHttpParameters" + "$ref": "#/definitions/AWS::Events::Connection.ConnectionHttpParameters", + "markdownDescription": "Additional parameters for the connection that are passed through with every invocation to the HTTP endpoint\\. \n*Required*: No \n*Type*: [ConnectionHttpParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-connectionhttpparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InvocationHttpParameters" }, "OAuthParameters": { - "$ref": "#/definitions/AWS::Events::Connection.OAuthParameters" + "$ref": "#/definitions/AWS::Events::Connection.OAuthParameters", + "markdownDescription": "The OAuth parameters to use for authorization\\. \n*Required*: No \n*Type*: [OAuthParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-oauthparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OAuthParameters" } }, "type": "object" @@ -62021,9 +76262,13 @@ "additionalProperties": false, "properties": { "Password": { + "markdownDescription": "The password associated with the user name to use for Basic authorization\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", "type": "string" }, "Username": { + "markdownDescription": "The user name to use for Basic authorization\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", "type": "string" } }, @@ -62037,9 +76282,13 @@ "additionalProperties": false, "properties": { "ClientID": { + "markdownDescription": "The client ID to use for OAuth authorization\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientID", "type": "string" }, "ClientSecret": { + "markdownDescription": "The client secret assciated with the client ID to use for OAuth authorization\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientSecret", "type": "string" } }, @@ -62056,18 +76305,24 @@ "items": { "$ref": "#/definitions/AWS::Events::Connection.Parameter" }, + "markdownDescription": "Contains additional body string parameters for the connection\\. \n*Required*: No \n*Type*: List of [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-parameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BodyParameters", "type": "array" }, "HeaderParameters": { "items": { "$ref": "#/definitions/AWS::Events::Connection.Parameter" }, + "markdownDescription": "Contains additional header parameters for the connection\\. \n*Required*: No \n*Type*: List of [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-parameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderParameters", "type": "array" }, "QueryStringParameters": { "items": { "$ref": "#/definitions/AWS::Events::Connection.Parameter" }, + "markdownDescription": "Contains additional query string parameters for the connection\\. \n*Required*: No \n*Type*: List of [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-parameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryStringParameters", "type": "array" } }, @@ -62077,16 +76332,24 @@ "additionalProperties": false, "properties": { "AuthorizationEndpoint": { + "markdownDescription": "The URL to the authorization endpoint when OAuth is specified as the authorization type\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationEndpoint", "type": "string" }, "ClientParameters": { - "$ref": "#/definitions/AWS::Events::Connection.ClientParameters" + "$ref": "#/definitions/AWS::Events::Connection.ClientParameters", + "markdownDescription": "A `CreateConnectionOAuthClientRequestParameters` object that contains the client parameters for OAuth authorization\\. \n*Required*: Yes \n*Type*: [ClientParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-clientparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientParameters" }, "HttpMethod": { + "markdownDescription": "The method to use for the authorization request\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GET | POST | PUT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpMethod", "type": "string" }, "OAuthHttpParameters": { - "$ref": "#/definitions/AWS::Events::Connection.ConnectionHttpParameters" + "$ref": "#/definitions/AWS::Events::Connection.ConnectionHttpParameters", + "markdownDescription": "A `ConnectionHttpParameters` object that contains details about the additional parameters to use for the connection\\. \n*Required*: No \n*Type*: [ConnectionHttpParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-connectionhttpparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OAuthHttpParameters" } }, "required": [ @@ -62100,12 +76363,18 @@ "additionalProperties": false, "properties": { "IsValueSecret": { + "markdownDescription": "Specifies whether the value is secret\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsValueSecret", "type": "boolean" }, "Key": { + "markdownDescription": "The key for a query string parameter\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[^\\x00-\\x1F\\x7F]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The value associated with the key for the query string parameter\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[^\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -62151,25 +76420,37 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description for the endpoint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "EventBuses": { "items": { "$ref": "#/definitions/AWS::Events::Endpoint.EndpointEventBus" }, + "markdownDescription": "The event buses being used by the endpoint\\. \n*Exactly*: `2` \n*Required*: Yes \n*Type*: List of [EndpointEventBus](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-endpoint-endpointeventbus.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventBuses", "type": "array" }, "Name": { + "markdownDescription": "The name of the endpoint\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "ReplicationConfig": { - "$ref": "#/definitions/AWS::Events::Endpoint.ReplicationConfig" + "$ref": "#/definitions/AWS::Events::Endpoint.ReplicationConfig", + "markdownDescription": "Whether event replication was enabled or disabled for this endpoint\\. The default state is `ENABLED` which means you must supply a `RoleArn`\\. If you don't have a `RoleArn` or you don't want event replication enabled, set the state to `DISABLED`\\. \n*Required*: No \n*Type*: [ReplicationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-endpoint-replicationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationConfig" }, "RoleArn": { + "markdownDescription": "The ARN of the role used by event replication for the endpoint\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn:aws[a-z-]*:iam::\\d{12}:role\\/[\\w+=,.@/-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "RoutingConfig": { - "$ref": "#/definitions/AWS::Events::Endpoint.RoutingConfig" + "$ref": "#/definitions/AWS::Events::Endpoint.RoutingConfig", + "markdownDescription": "The routing configuration of the endpoint\\. \n*Required*: Yes \n*Type*: [RoutingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-endpoint-routingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoutingConfig" } }, "required": [ @@ -62204,6 +76485,8 @@ "additionalProperties": false, "properties": { "EventBusArn": { + "markdownDescription": "The ARN of the event bus the endpoint is associated with\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^arn:aws[a-z-]*:events:[a-z]{2}-[a-z-]+-\\d+:\\d{12}:event-bus/[\\w.-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventBusArn", "type": "string" } }, @@ -62216,10 +76499,14 @@ "additionalProperties": false, "properties": { "Primary": { - "$ref": "#/definitions/AWS::Events::Endpoint.Primary" + "$ref": "#/definitions/AWS::Events::Endpoint.Primary", + "markdownDescription": "The main Region of the endpoint\\. \n*Required*: Yes \n*Type*: [Primary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-endpoint-primary.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Primary" }, "Secondary": { - "$ref": "#/definitions/AWS::Events::Endpoint.Secondary" + "$ref": "#/definitions/AWS::Events::Endpoint.Secondary", + "markdownDescription": "The Region that events are routed to when failover is triggered or event replication is enabled\\. \n*Required*: Yes \n*Type*: [Secondary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-endpoint-secondary.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Secondary" } }, "required": [ @@ -62232,6 +76519,8 @@ "additionalProperties": false, "properties": { "HealthCheck": { + "markdownDescription": "The ARN of the health check used by the endpoint to determine whether failover is triggered\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `^arn:aws([a-z]|\\-)*:route53:::healthcheck/[\\-a-z0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheck", "type": "string" } }, @@ -62244,6 +76533,8 @@ "additionalProperties": false, "properties": { "State": { + "markdownDescription": "The state of event replication\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", "type": "string" } }, @@ -62256,7 +76547,9 @@ "additionalProperties": false, "properties": { "FailoverConfig": { - "$ref": "#/definitions/AWS::Events::Endpoint.FailoverConfig" + "$ref": "#/definitions/AWS::Events::Endpoint.FailoverConfig", + "markdownDescription": "The failover configuration for an endpoint\\. This includes what triggers failover and what happens when it's triggered\\. \n*Required*: Yes \n*Type*: [FailoverConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-endpoint-failoverconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailoverConfig" } }, "required": [ @@ -62268,6 +76561,8 @@ "additionalProperties": false, "properties": { "Route": { + "markdownDescription": "Defines the secondary Region\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `9` \n*Maximum*: `20` \n*Pattern*: `^[\\-a-z0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Route", "type": "string" } }, @@ -62312,15 +76607,21 @@ "additionalProperties": false, "properties": { "EventSourceName": { + "markdownDescription": "If you are creating a partner event bus, this specifies the partner event source that the new event bus will be matched with\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `aws\\.partner(/[\\.\\-_A-Za-z0-9]+){2,}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EventSourceName", "type": "string" }, "Name": { + "markdownDescription": "The name of the new event bus\\. \nCustom event bus names can't contain the `/` character, but you can use the `/` character in partner event bus names\\. In addition, for partner event buses, the name must exactly match the name of the partner event source that this event bus is matched to\\. \nYou can't use the name `default` for a custom event bus, as this name is already used for your account's default event bus\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[/\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/AWS::Events::EventBus.TagEntry" }, + "markdownDescription": "Tags to associate with the event bus\\. \n*Required*: No \n*Type*: List of [TagEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-eventbus-tagentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -62354,9 +76655,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "A string you can use to assign a value\\. The combination of tag keys and values can help you organize and categorize your resources\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The value for the specified tag key\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -62402,21 +76707,33 @@ "additionalProperties": false, "properties": { "Action": { + "markdownDescription": "The action that you are enabling the other account to perform\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `events:[a-zA-Z]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", "type": "string" }, "Condition": { - "$ref": "#/definitions/AWS::Events::EventBusPolicy.Condition" + "$ref": "#/definitions/AWS::Events::EventBusPolicy.Condition", + "markdownDescription": "This parameter enables you to limit the permission to accounts that fulfill a certain condition, such as being a member of a certain AWS organization\\. For more information about AWS Organizations, see [What Is AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) in the * AWS Organizations User Guide*\\. \nIf you specify `Condition` with an AWS organization ID, and specify \"\\*\" as the value for `Principal`, you grant permission to all the accounts in the named organization\\. \nThe `Condition` is a JSON string which must contain `Type`, `Key`, and `Value` fields\\. \n*Required*: No \n*Type*: [Condition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-eventbuspolicy-condition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Condition" }, "EventBusName": { + "markdownDescription": "The name of the event bus associated with the rule\\. If you omit this, the default event bus is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EventBusName", "type": "string" }, "Principal": { + "markdownDescription": "The 12\\-digit AWS account ID that you are permitting to put events to your default event bus\\. Specify \"\\*\" to permit any account to put events to your default event bus\\. \nIf you specify \"\\*\" without specifying `Condition`, avoid creating rules that may match undesirable events\\. To create more secure rules, make sure that the event pattern for each rule contains an `account` field with a specific account ID from which to receive events\\. Rules with an account field do not match any events sent from other accounts\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `12` \n*Pattern*: `(\\d{12}|\\*)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Principal", "type": "string" }, "Statement": { + "markdownDescription": "A JSON string that describes the permission policy statement\\. You can include a `Policy` parameter in the request instead of using the `StatementId`, `Action`, `Principal`, or `Condition` parameters\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statement", "type": "object" }, "StatementId": { + "markdownDescription": "An identifier string for the external account that you are granting permissions to\\. If you later want to revoke the permission for this external account, specify this `StatementId` when you run [RemovePermission](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_RemovePermission.html)\\. \nEach `StatementId` must be unique\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[a-zA-Z0-9-_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StatementId", "type": "string" } }, @@ -62450,12 +76767,18 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "Specifies the key for the condition\\. Currently the only supported key is `aws:PrincipalOrgID`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Type": { + "markdownDescription": "Specifies the type of condition\\. Currently the only supported value is `StringEquals`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" }, "Value": { + "markdownDescription": "Specifies the value for the key\\. Currently, this must be the ID of the organization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -62497,30 +76820,46 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the rule\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "EventBusName": { + "markdownDescription": "The name or ARN of the event bus associated with the rule\\. If you omit this, the default event bus is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[/\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EventBusName", "type": "string" }, "EventPattern": { + "markdownDescription": "The event pattern of the rule\\. For more information, see [Events and Event Patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Required*: Conditional \n*Type*: Json \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventPattern", "type": "object" }, "Name": { + "markdownDescription": "The name of the rule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that is used for target invocation\\. \nIf you're setting an event bus in another account as the target and that account granted permission to your account through an organization instead of directly by the account ID, you must specify a `RoleArn` with proper permissions in the `Target` structure, instead of here in this parameter\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "ScheduleExpression": { + "markdownDescription": "The scheduling expression\\. For example, \"cron\\(0 20 \\* \\* ? \\*\\)\", \"rate\\(5 minutes\\)\"\\. For more information, see [Creating an Amazon EventBridge rule that runs on a schedule](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)\\. \n*Required*: Conditional \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleExpression", "type": "string" }, "State": { + "markdownDescription": "The state of the rule\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", "type": "string" }, "Targets": { "items": { "$ref": "#/definitions/AWS::Events::Rule.Target" }, + "markdownDescription": "Adds the specified targets to the specified rule, or updates the targets if they are already associated with the rule\\. \nTargets are the resources that are invoked when a rule is triggered\\. \nEach rule can have up to five \\(5\\) targets associated with it at one time\\.\nYou can configure the following as targets for Events: \n+ [API destination](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-api-destinations.html) \n+ [API Gateway](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-api-gateway-target.html) \n+ Batch job queue\n+ CloudWatch group\n+ CodeBuild project\n+ CodePipeline\n+ EC2 `CreateSnapshot` API call\n+ EC2 Image Builder\n+ EC2 `RebootInstances` API call\n+ EC2 `StopInstances` API call\n+ EC2 `TerminateInstances` API call\n+ ECS task\n+ [Event bus in a different account or Region](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cross-account.html) \n+ [Event bus in the same account and Region](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-bus-to-bus.html) \n+ Firehose delivery stream\n+ Glue workflow\n+ [Incident Manager response plan](https://docs.aws.amazon.com/incident-manager/latest/userguide/incident-creation.html#incident-tracking-auto-eventbridge) \n+ Inspector assessment template\n+ Kinesis stream\n+ Lambda function\n+ Redshift cluster\n+ SageMaker Pipeline\n+ SNS topic\n+ SQS queue\n+ Step Functions state machine\n+ Systems Manager Automation\n+ Systems Manager OpsItem\n+ Systems Manager Run Command\nCreating rules with built\\-in targets is supported only in the AWS Management Console\\. The built\\-in targets are `EC2 CreateSnapshot API call`, `EC2 RebootInstances API call`, `EC2 StopInstances API call`, and `EC2 TerminateInstances API call`\\. \nFor some target types, `PutTargets` provides target\\-specific parameters\\. If the target is a Kinesis data stream, you can optionally specify which shard the event goes to by using the `KinesisParameters` argument\\. To invoke a command on multiple EC2 instances with one rule, you can use the `RunCommandParameters` field\\. \nTo be able to make API calls against the resources that you own, Amazon EventBridge needs the appropriate permissions\\. For AWS Lambda and Amazon SNS resources, EventBridge relies on resource\\-based policies\\. For EC2 instances, Kinesis Data Streams, AWS Step Functions state machines and API Gateway APIs, EventBridge relies on IAM roles that you specify in the `RoleARN` argument in `PutTargets`\\. For more information, see [Authentication and Access Control](https://docs.aws.amazon.com/eventbridge/latest/userguide/auth-and-access-control-eventbridge.html) in the *Amazon EventBridge User Guide*\\. \nIf another AWS account is in the same region and has granted you permission \\(using `PutPermission`\\), you can send events to that account\\. Set that account's event bus as a target of the rules in your account\\. To send the matched events to the other account, specify that account's event bus as the `Arn` value when you run `PutTargets`\\. If your account sends events to another account, your account is charged for each sent event\\. Each event sent to another account is charged as a custom event\\. The account receiving the event is not charged\\. For more information, see [Amazon EventBridge Pricing](http://aws.amazon.com/eventbridge/pricing/)\\. \n `Input`, `InputPath`, and `InputTransformer` are not available with `PutTarget` if the target is an event bus of a different AWS account\\.\nIf you are setting the event bus of another account as the target, and that account granted permission to your account through an organization instead of directly by the account ID, then you must specify a `RoleArn` with proper permissions in the `Target` structure\\. For more information, see [Sending and Receiving Events Between AWS Accounts](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-cross-account-event-delivery.html) in the *Amazon EventBridge User Guide*\\. \nFor more information about enabling cross\\-account events, see [PutPermission](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutPermission.html)\\. \n **Input**, **InputPath**, and **InputTransformer** are mutually exclusive and optional parameters of a target\\. When a rule is triggered due to a matched event: \n+ If none of the following arguments are specified for a target, then the entire event is passed to the target in JSON format \\(unless the target is Amazon EC2 Run Command or Amazon ECS task, in which case nothing from the event is passed to the target\\)\\.\n+ If **Input** is specified in the form of valid JSON, then the matched event is overridden with this constant\\.\n+ If **InputPath** is specified in the form of JSONPath \\(for example, `$.detail`\\), then only the part of the event specified in the path is passed to the target \\(for example, only the detail part of the event is passed\\)\\.\n+ If **InputTransformer** is specified, then one or more specified JSONPaths are extracted from the event and used as values in a template that you specify as the input to the target\\.\nWhen you specify `InputPath` or `InputTransformer`, you must use JSON dot notation, not bracket notation\\. \nWhen you add targets to a rule and the associated rule triggers soon after, new or updated targets might not be immediately invoked\\. Allow a short period of time for changes to take effect\\. \nThis action can partially fail if too many requests are made at the same time\\. If that happens, `FailedEntryCount` is non\\-zero in the response and each entry in `FailedEntries` provides the ID of the failed target and the error code\\. \n*Required*: No \n*Type*: List of [Target](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Targets", "type": "array" } }, @@ -62550,18 +76889,24 @@ "additionalProperties": false, "properties": { "AssignPublicIp": { + "markdownDescription": "Specifies whether the task's elastic network interface receives a public IP address\\. You can specify `ENABLED` only when `LaunchType` in `EcsParameters` is set to `FARGATE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssignPublicIp", "type": "string" }, "SecurityGroups": { "items": { "type": "string" }, + "markdownDescription": "Specifies the security groups associated with the task\\. These security groups must all be in the same VPC\\. You can specify as many as five security groups\\. If you do not specify a security group, the default security group for the VPC is used\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroups", "type": "array" }, "Subnets": { "items": { "type": "string" }, + "markdownDescription": "Specifies the subnets associated with the task\\. These subnets must all be in the same VPC\\. You can specify as many as 16 subnets\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subnets", "type": "array" } }, @@ -62574,6 +76919,8 @@ "additionalProperties": false, "properties": { "Size": { + "markdownDescription": "The size of the array, if this is an array batch job\\. Valid values are integers between 2 and 10,000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Size", "type": "number" } }, @@ -62583,16 +76930,24 @@ "additionalProperties": false, "properties": { "ArrayProperties": { - "$ref": "#/definitions/AWS::Events::Rule.BatchArrayProperties" + "$ref": "#/definitions/AWS::Events::Rule.BatchArrayProperties", + "markdownDescription": "The array properties for the submitted job, such as the size of the array\\. The array size can be between 2 and 10,000\\. If you specify array properties for a job, it becomes an array job\\. This parameter is used only if the target is an AWS Batch job\\. \n*Required*: No \n*Type*: [BatchArrayProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-batcharrayproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArrayProperties" }, "JobDefinition": { + "markdownDescription": "The ARN or name of the job definition to use if the event target is an AWS Batch job\\. This job definition must already exist\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobDefinition", "type": "string" }, "JobName": { + "markdownDescription": "The name to use for this execution of the job, if the target is an AWS Batch job\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobName", "type": "string" }, "RetryStrategy": { - "$ref": "#/definitions/AWS::Events::Rule.BatchRetryStrategy" + "$ref": "#/definitions/AWS::Events::Rule.BatchRetryStrategy", + "markdownDescription": "The retry strategy to use for failed jobs, if the target is an AWS Batch job\\. The retry strategy is the number of times to retry the failed job execution\\. Valid values are 1\u201310\\. When you specify a retry strategy here, it overrides the retry strategy defined in the job definition\\. \n*Required*: No \n*Type*: [BatchRetryStrategy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-batchretrystrategy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryStrategy" } }, "required": [ @@ -62605,6 +76960,8 @@ "additionalProperties": false, "properties": { "Attempts": { + "markdownDescription": "The number of times to attempt to retry, if the job fails\\. Valid values are 1\u201310\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attempts", "type": "number" } }, @@ -62614,12 +76971,18 @@ "additionalProperties": false, "properties": { "Base": { + "markdownDescription": "The base value designates how many tasks, at a minimum, to run on the specified capacity provider\\. Only one capacity provider in a capacity provider strategy can have a base defined\\. If no value is specified, the default value of 0 is used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Base", "type": "number" }, "CapacityProvider": { + "markdownDescription": "The short name of the capacity provider\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityProvider", "type": "string" }, "Weight": { + "markdownDescription": "The weight value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider\\. The weight value is taken into consideration after the base value, if defined, is satisfied\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Weight", "type": "number" } }, @@ -62632,6 +76995,8 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The ARN of the SQS queue specified as the target for the dead\\-letter queue\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" } }, @@ -62644,54 +77009,82 @@ "items": { "$ref": "#/definitions/AWS::Events::Rule.CapacityProviderStrategyItem" }, + "markdownDescription": "The capacity provider strategy to use for the task\\. \nIf a `capacityProviderStrategy` is specified, the `launchType` parameter must be omitted\\. If no `capacityProviderStrategy` or launchType is specified, the `defaultCapacityProviderStrategy` for the cluster is used\\. \n*Required*: No \n*Type*: List of [CapacityProviderStrategyItem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-capacityproviderstrategyitem.html) \n*Maximum*: `6` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityProviderStrategy", "type": "array" }, "EnableECSManagedTags": { + "markdownDescription": "Specifies whether to enable Amazon ECS managed tags for the task\\. For more information, see [Tagging Your Amazon ECS Resources](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) in the Amazon Elastic Container Service Developer Guide\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableECSManagedTags", "type": "boolean" }, "EnableExecuteCommand": { + "markdownDescription": "Whether or not to enable the execute command functionality for the containers in this task\\. If true, this enables execute command functionality on all containers in the task\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableExecuteCommand", "type": "boolean" }, "Group": { + "markdownDescription": "Specifies an ECS task group for the task\\. The maximum length is 255 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Group", "type": "string" }, "LaunchType": { + "markdownDescription": "Specifies the launch type on which your task is running\\. The launch type that you specify here must match one of the launch type \\(compatibilities\\) of the target task\\. The `FARGATE` value is supported only in the Regions where AWS Fargate with Amazon ECS is supported\\. For more information, see [AWS Fargate on Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS-Fargate.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `EC2 | EXTERNAL | FARGATE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchType", "type": "string" }, "NetworkConfiguration": { - "$ref": "#/definitions/AWS::Events::Rule.NetworkConfiguration" + "$ref": "#/definitions/AWS::Events::Rule.NetworkConfiguration", + "markdownDescription": "Use this structure if the Amazon ECS task uses the `awsvpc` network mode\\. This structure specifies the VPC subnets and security groups associated with the task, and whether a public IP address is to be used\\. This structure is required if `LaunchType` is `FARGATE` because the `awsvpc` mode is required for Fargate tasks\\. \nIf you specify `NetworkConfiguration` when the target ECS task does not use the `awsvpc` network mode, the task fails\\. \n*Required*: No \n*Type*: [NetworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-networkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkConfiguration" }, "PlacementConstraints": { "items": { "$ref": "#/definitions/AWS::Events::Rule.PlacementConstraint" }, + "markdownDescription": "An array of placement constraint objects to use for the task\\. You can specify up to 10 constraints per task \\(including constraints in the task definition and those specified at runtime\\)\\. \n*Required*: No \n*Type*: List of [PlacementConstraint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-placementconstraint.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlacementConstraints", "type": "array" }, "PlacementStrategies": { "items": { "$ref": "#/definitions/AWS::Events::Rule.PlacementStrategy" }, + "markdownDescription": "The placement strategy objects to use for the task\\. You can specify a maximum of five strategy rules per task\\. \n*Required*: No \n*Type*: List of [PlacementStrategy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-placementstrategy.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlacementStrategies", "type": "array" }, "PlatformVersion": { + "markdownDescription": "Specifies the platform version for the task\\. Specify only the numeric portion of the platform version, such as `1.1.0`\\. \nThis structure is used only if `LaunchType` is `FARGATE`\\. For more information about valid platform versions, see [AWS Fargate Platform Versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlatformVersion", "type": "string" }, "PropagateTags": { + "markdownDescription": "Specifies whether to propagate the tags from the task definition to the task\\. If no value is specified, the tags are not propagated\\. Tags can only be propagated to the task during task creation\\. To add tags to a task after task creation, use the TagResource API action\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `TASK_DEFINITION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropagateTags", "type": "string" }, "ReferenceId": { + "markdownDescription": "The reference ID to use for the task\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReferenceId", "type": "string" }, "TagList": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The metadata that you apply to the task to help you categorize and organize them\\. Each tag consists of a key and an optional value, both of which you define\\. To learn more, see [RunTask](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html#ECS-RunTask-request-tags) in the Amazon ECS API Reference\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-tag.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagList", "type": "array" }, "TaskCount": { + "markdownDescription": "The number of tasks to create based on `TaskDefinition`\\. The default is 1\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskCount", "type": "number" }, "TaskDefinitionArn": { + "markdownDescription": "The ARN of the task definition to use if the event target is an Amazon ECS task\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskDefinitionArn", "type": "string" } }, @@ -62705,26 +77098,32 @@ "properties": { "HeaderParameters": { "additionalProperties": true, + "markdownDescription": "The headers that need to be sent as part of request invoking the API Gateway API or EventBridge ApiDestination\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "HeaderParameters", "type": "object" }, "PathParameterValues": { "items": { "type": "string" }, + "markdownDescription": "The path parameter values to be used to populate API Gateway API or EventBridge ApiDestination path wildcards \\(\"\\*\"\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PathParameterValues", "type": "array" }, "QueryStringParameters": { "additionalProperties": true, + "markdownDescription": "The query string keys/values that need to be sent as part of request invoking the API Gateway API or EventBridge ApiDestination\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "QueryStringParameters", "type": "object" } }, @@ -62735,14 +77134,18 @@ "properties": { "InputPathsMap": { "additionalProperties": true, + "markdownDescription": "Map of JSON paths to be extracted from the event\\. You can then insert these in the template in `InputTemplate` to produce the output you want to be sent to the target\\. \n `InputPathsMap` is an array key\\-value pairs, where each value is a valid JSON path\\. You can have as many as 100 key\\-value pairs\\. You must use JSON dot notation, not bracket notation\\. \nThe keys cannot start with \"AWS\\.\" \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "InputPathsMap", "type": "object" }, "InputTemplate": { + "markdownDescription": "Input template where you specify placeholders that will be filled with the values of the keys from `InputPathsMap` to customize the data sent to the target\\. Enclose each `InputPathsMaps` value in brackets: <*value*> \nIf `InputTemplate` is a JSON object \\(surrounded by curly braces\\), the following restrictions apply: \n+ The placeholder cannot be used as an object key\\.\nThe following example shows the syntax for using `InputPathsMap` and `InputTemplate`\\. \n ` \"InputTransformer\":` \n `{` \n `\"InputPathsMap\": {\"instance\": \"$.detail.instance\",\"status\": \"$.detail.status\"},` \n `\"InputTemplate\": \" is in state \"` \n `}` \nTo have the `InputTemplate` include quote marks within a JSON string, escape each quote marks with a slash, as in the following example: \n ` \"InputTransformer\":` \n `{` \n `\"InputPathsMap\": {\"instance\": \"$.detail.instance\",\"status\": \"$.detail.status\"},` \n `\"InputTemplate\": \" is in state \\\"\\\"\"` \n `}` \nThe `InputTemplate` can also be valid JSON with varibles in quotes or out, as in the following example: \n ` \"InputTransformer\":` \n `{` \n `\"InputPathsMap\": {\"instance\": \"$.detail.instance\",\"status\": \"$.detail.status\"},` \n `\"InputTemplate\": '{\"myInstance\": ,\"myStatus\": \" is in state \\\"\\\"\"}'` \n `}` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `8192` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputTemplate", "type": "string" } }, @@ -62755,6 +77158,8 @@ "additionalProperties": false, "properties": { "PartitionKeyPath": { + "markdownDescription": "The JSON path to be extracted from the event and used as the partition key\\. For more information, see [Amazon Kinesis Streams Key Concepts](https://docs.aws.amazon.com/streams/latest/dev/key-concepts.html#partition-key) in the *Amazon Kinesis Streams Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PartitionKeyPath", "type": "string" } }, @@ -62767,7 +77172,9 @@ "additionalProperties": false, "properties": { "AwsVpcConfiguration": { - "$ref": "#/definitions/AWS::Events::Rule.AwsVpcConfiguration" + "$ref": "#/definitions/AWS::Events::Rule.AwsVpcConfiguration", + "markdownDescription": "Use this structure to specify the VPC subnets and security groups for the task, and whether a public IP address is to be used\\. This structure is relevant only for ECS tasks that use the `awsvpc` network mode\\. \n*Required*: No \n*Type*: [AwsVpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-awsvpcconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsVpcConfiguration" } }, "type": "object" @@ -62776,9 +77183,13 @@ "additionalProperties": false, "properties": { "Expression": { + "markdownDescription": "A cluster query language expression to apply to the constraint\\. You cannot specify an expression if the constraint type is `distinctInstance`\\. To learn more, see [Cluster Query Language](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html) in the Amazon Elastic Container Service Developer Guide\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Expression", "type": "string" }, "Type": { + "markdownDescription": "The type of constraint\\. Use distinctInstance to ensure that each task in a particular group is running on a different container instance\\. Use memberOf to restrict the selection to a group of valid candidates\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `distinctInstance | memberOf` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -62788,9 +77199,13 @@ "additionalProperties": false, "properties": { "Field": { + "markdownDescription": "The field to apply the placement strategy against\\. For the spread placement strategy, valid values are instanceId \\(or host, which has the same effect\\), or any platform or custom attribute that is applied to a container instance, such as attribute:ecs\\.availability\\-zone\\. For the binpack placement strategy, valid values are cpu and memory\\. For the random placement strategy, this field is not used\\. \n*Required*: No \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Field", "type": "string" }, "Type": { + "markdownDescription": "The type of placement strategy\\. The random placement strategy randomly places tasks on available candidates\\. The spread placement strategy spreads placement across available candidates evenly based on the field parameter\\. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter\\. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory \\(but still enough to run the task\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `binpack | random | spread` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -62800,21 +77215,33 @@ "additionalProperties": false, "properties": { "Database": { + "markdownDescription": "The name of the database\\. Required when authenticating using temporary credentials\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", "type": "string" }, "DbUser": { + "markdownDescription": "The database user name\\. Required when authenticating using temporary credentials\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DbUser", "type": "string" }, "SecretManagerArn": { + "markdownDescription": "The name or ARN of the secret that enables access to the database\\. Required when authenticating using AWS Secrets Manager\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `(^arn:aws([a-z]|\\-)*:secretsmanager:[a-z0-9-.]+:.*)|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretManagerArn", "type": "string" }, "Sql": { + "markdownDescription": "The SQL statement text to run\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sql", "type": "string" }, "StatementName": { + "markdownDescription": "The name of the SQL statement\\. You can name the SQL statement when you create it to identify the query\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatementName", "type": "string" }, "WithEvent": { + "markdownDescription": "Indicates whether to send an event back to EventBridge after the SQL statement runs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WithEvent", "type": "boolean" } }, @@ -62828,9 +77255,13 @@ "additionalProperties": false, "properties": { "MaximumEventAgeInSeconds": { + "markdownDescription": "The maximum amount of time, in seconds, to continue to make retry attempts\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `60` \n*Maximum*: `86400` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumEventAgeInSeconds", "type": "number" }, "MaximumRetryAttempts": { + "markdownDescription": "The maximum number of retry attempts to make before the request fails\\. Retry attempts continue until either the maximum number of attempts is made or until the duration of the `MaximumEventAgeInSeconds` is met\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `185` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumRetryAttempts", "type": "number" } }, @@ -62843,6 +77274,8 @@ "items": { "$ref": "#/definitions/AWS::Events::Rule.RunCommandTarget" }, + "markdownDescription": "Currently, we support including only one RunCommandTarget block, which specifies either an array of InstanceIds or a tag\\. \n*Required*: Yes \n*Type*: List of [RunCommandTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandtarget.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RunCommandTargets", "type": "array" } }, @@ -62855,12 +77288,16 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "Can be either `tag:` *tag\\-key* or `InstanceIds`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "If `Key` is `tag:` *tag\\-key*, `Values` is a list of tag values\\. If `Key` is `InstanceIds`, `Values` is a list of Amazon EC2 instance IDs\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -62874,9 +77311,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "Name of parameter to start execution of a SageMaker Model Building Pipeline\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9])*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "Value of parameter to start execution of a SageMaker Model Building Pipeline\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -62893,6 +77334,8 @@ "items": { "$ref": "#/definitions/AWS::Events::Rule.SageMakerPipelineParameter" }, + "markdownDescription": "List of Parameter names and values for SageMaker Model Building Pipeline execution\\. \n*Required*: No \n*Type*: List of [SageMakerPipelineParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-sagemakerpipelineparameter.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PipelineParameterList", "type": "array" } }, @@ -62902,6 +77345,8 @@ "additionalProperties": false, "properties": { "MessageGroupId": { + "markdownDescription": "The FIFO message group ID to use as the target\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageGroupId", "type": "string" } }, @@ -62914,9 +77359,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "A string you can use to assign a value\\. The combination of tag keys and values can help you organize and categorize your resources\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The value for the specified tag key\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -62926,52 +77375,84 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the target\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "BatchParameters": { - "$ref": "#/definitions/AWS::Events::Rule.BatchParameters" + "$ref": "#/definitions/AWS::Events::Rule.BatchParameters", + "markdownDescription": "If the event target is an AWS Batch job, this contains the job definition, job name, and other parameters\\. For more information, see [Jobs](https://docs.aws.amazon.com/batch/latest/userguide/jobs.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: [BatchParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-batchparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BatchParameters" }, "DeadLetterConfig": { - "$ref": "#/definitions/AWS::Events::Rule.DeadLetterConfig" + "$ref": "#/definitions/AWS::Events::Rule.DeadLetterConfig", + "markdownDescription": "The `DeadLetterConfig` that defines the target queue to send dead\\-letter queue events to\\. \n*Required*: No \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeadLetterConfig" }, "EcsParameters": { - "$ref": "#/definitions/AWS::Events::Rule.EcsParameters" + "$ref": "#/definitions/AWS::Events::Rule.EcsParameters", + "markdownDescription": "Contains the Amazon ECS task definition and task count to be used, if the event target is an Amazon ECS task\\. For more information about Amazon ECS tasks, see [Task Definitions ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon EC2 Container Service Developer Guide*\\. \n*Required*: No \n*Type*: [EcsParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EcsParameters" }, "HttpParameters": { - "$ref": "#/definitions/AWS::Events::Rule.HttpParameters" + "$ref": "#/definitions/AWS::Events::Rule.HttpParameters", + "markdownDescription": "Contains the HTTP parameters to use when the target is a API Gateway endpoint or EventBridge ApiDestination\\. \nIf you specify an API Gateway API or EventBridge ApiDestination as a target, you can use this parameter to specify headers, path parameters, and query string keys/values as part of your target invoking request\\. If you're using ApiDestinations, the corresponding Connection can also have these values configured\\. In case of any conflicting keys, values from the Connection take precedence\\. \n*Required*: No \n*Type*: [HttpParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-httpparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpParameters" }, "Id": { + "markdownDescription": "The ID of the target within the specified rule\\. Use this ID to reference the target when updating the rule\\. We recommend using a memorable and unique string\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "Input": { + "markdownDescription": "Valid JSON text passed to the target\\. In this case, nothing from the event itself is passed to the target\\. For more information, see [The JavaScript Object Notation \\(JSON\\) Data Interchange Format](http://www.rfc-editor.org/rfc/rfc7159.txt)\\. \n*Required*: No \n*Type*: String \n*Maximum*: `8192` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Input", "type": "string" }, "InputPath": { + "markdownDescription": "The value of the JSONPath that is used for extracting part of the matched event when passing it to the target\\. You may use JSON dot notation or bracket notation\\. For more information about JSON paths, see [JSONPath](http://goessner.net/articles/JsonPath/)\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputPath", "type": "string" }, "InputTransformer": { - "$ref": "#/definitions/AWS::Events::Rule.InputTransformer" + "$ref": "#/definitions/AWS::Events::Rule.InputTransformer", + "markdownDescription": "Settings to enable you to provide custom input to a target based on certain event data\\. You can extract one or more key\\-value pairs from the event and then use that data to send customized input to the target\\. \n*Required*: No \n*Type*: [InputTransformer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputTransformer" }, "KinesisParameters": { - "$ref": "#/definitions/AWS::Events::Rule.KinesisParameters" + "$ref": "#/definitions/AWS::Events::Rule.KinesisParameters", + "markdownDescription": "The custom parameter you can use to control the shard assignment, when the target is a Kinesis data stream\\. If you do not include this parameter, the default is to use the `eventId` as the partition key\\. \n*Required*: No \n*Type*: [KinesisParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-kinesisparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KinesisParameters" }, "RedshiftDataParameters": { - "$ref": "#/definitions/AWS::Events::Rule.RedshiftDataParameters" + "$ref": "#/definitions/AWS::Events::Rule.RedshiftDataParameters", + "markdownDescription": "Contains the Amazon Redshift Data API parameters to use when the target is a Amazon Redshift cluster\\. \nIf you specify a Amazon Redshift Cluster as a Target, you can use this to specify parameters to invoke the Amazon Redshift Data API ExecuteStatement based on EventBridge events\\. \n*Required*: No \n*Type*: [RedshiftDataParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedshiftDataParameters" }, "RetryPolicy": { - "$ref": "#/definitions/AWS::Events::Rule.RetryPolicy" + "$ref": "#/definitions/AWS::Events::Rule.RetryPolicy", + "markdownDescription": "The `RetryPolicy` object that contains the retry policy configuration to use for the dead\\-letter queue\\. \n*Required*: No \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-retrypolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryPolicy" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role to be used for this target when the rule is triggered\\. If one rule triggers multiple targets, you can use a different IAM role for each target\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "RunCommandParameters": { - "$ref": "#/definitions/AWS::Events::Rule.RunCommandParameters" + "$ref": "#/definitions/AWS::Events::Rule.RunCommandParameters", + "markdownDescription": "Parameters used when you are using the rule to invoke Amazon EC2 Run Command\\. \n*Required*: No \n*Type*: [RunCommandParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RunCommandParameters" }, "SageMakerPipelineParameters": { - "$ref": "#/definitions/AWS::Events::Rule.SageMakerPipelineParameters" + "$ref": "#/definitions/AWS::Events::Rule.SageMakerPipelineParameters", + "markdownDescription": "Contains the SageMaker Model Building Pipeline parameters to start execution of a SageMaker Model Building Pipeline\\. \nIf you specify a SageMaker Model Building Pipeline as a target, you can use this to specify parameters to start a pipeline execution based on EventBridge events\\. \n*Required*: No \n*Type*: [SageMakerPipelineParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-sagemakerpipelineparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SageMakerPipelineParameters" }, "SqsParameters": { - "$ref": "#/definitions/AWS::Events::Rule.SqsParameters" + "$ref": "#/definitions/AWS::Events::Rule.SqsParameters", + "markdownDescription": "Contains the message group ID to use when the target is a FIFO queue\\. \nIf you specify an SQS FIFO queue as a target, the queue must have content\\-based deduplication enabled\\. \n*Required*: No \n*Type*: [SqsParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-sqsparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SqsParameters" } }, "required": [ @@ -63016,24 +77497,36 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "An optional description of the experiment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "MetricGoals": { "items": { "$ref": "#/definitions/AWS::Evidently::Experiment.MetricGoalObject" }, + "markdownDescription": "An array of structures that defines the metrics used for the experiment, and whether a higher or lower value for each metric is the goal\\. You can use up to three metrics in an experiment\\. \n*Required*: Yes \n*Type*: List of [MetricGoalObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-metricgoalobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricGoals", "type": "array" }, "Name": { + "markdownDescription": "A name for the new experiment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "OnlineAbConfig": { - "$ref": "#/definitions/AWS::Evidently::Experiment.OnlineAbConfigObject" + "$ref": "#/definitions/AWS::Evidently::Experiment.OnlineAbConfigObject", + "markdownDescription": "A structure that contains the configuration of which variation to use as the \"control\" version\\. The \"control\" version is used for comparison with other variations\\. This structure also specifies how much experiment traffic is allocated to each variation\\. \n*Required*: Yes \n*Type*: [OnlineAbConfigObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-onlineabconfigobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnlineAbConfig" }, "Project": { + "markdownDescription": "The name or the ARN of the project where this experiment is to be created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Project", "type": "string" }, "RandomizationSalt": { + "markdownDescription": "When Evidently assigns a particular user session to an experiment, it must use a randomization ID to determine which variation the user session is served\\. This randomization ID is a combination of the entity ID and `randomizationSalt`\\. If you omit `randomizationSalt`, Evidently uses the experiment name as the `randomizationSalt`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RandomizationSalt", "type": "string" }, "RemoveSegment": { @@ -63043,6 +77536,8 @@ "$ref": "#/definitions/AWS::Evidently::Experiment.RunningStatusObject" }, "SamplingRate": { + "markdownDescription": "The portion of the available audience that you want to allocate to this experiment, in thousandths of a percent\\. The available audience is the total audience minus the audience that you have allocated to overrides or current launches of this feature\\. \nThis is represented in thousandths of a percent\\. For example, specify 10,000 to allocate 10% of the available audience\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SamplingRate", "type": "number" }, "Segment": { @@ -63052,12 +77547,16 @@ "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Assigns one or more tags \\(key\\-value pairs\\) to the experiment\\. \nTags can help you organize and categorize your resources\\. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values\\. \nTags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters\\. \nYou can associate as many as 50 tags with an experiment\\. \nFor more information, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Treatments": { "items": { "$ref": "#/definitions/AWS::Evidently::Experiment.TreatmentObject" }, + "markdownDescription": "An array of structures that describe the configuration of each feature variation used in the experiment\\. \n*Required*: Yes \n*Type*: List of [TreatmentObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmentobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Treatments", "type": "array" } }, @@ -63095,21 +77594,33 @@ "additionalProperties": false, "properties": { "DesiredChange": { + "markdownDescription": "`INCREASE` means that a variation with a higher number for this metric is performing better\\. \n`DECREASE` means that a variation with a lower number for this metric is performing better\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DesiredChange", "type": "string" }, "EntityIdKey": { + "markdownDescription": "The entity, such as a user or session, that does an action that causes a metric value to be recorded\\. An example is `userDetails.userID`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntityIdKey", "type": "string" }, "EventPattern": { + "markdownDescription": "The EventBridge event pattern that defines how the metric is recorded\\. \nFor more information about EventBridge event patterns, see [Amazon EventBridge event patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventPattern", "type": "string" }, "MetricName": { + "markdownDescription": "A name for the metric\\. It can include up to 255 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", "type": "string" }, "UnitLabel": { + "markdownDescription": "A label for the units that the metric is measuring\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnitLabel", "type": "string" }, "ValueKey": { + "markdownDescription": "The JSON path to reference the numerical metric value in the event\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValueKey", "type": "string" } }, @@ -63125,12 +77636,16 @@ "additionalProperties": false, "properties": { "ControlTreatmentName": { + "markdownDescription": "The name of the variation that is to be the default variation that the other variations are compared to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ControlTreatmentName", "type": "string" }, "TreatmentWeights": { "items": { "$ref": "#/definitions/AWS::Evidently::Experiment.TreatmentToWeight" }, + "markdownDescription": "A set of key\\-value pairs\\. The keys are treatment names, and the values are the portion of experiment traffic to be assigned to that treatment\\. Specify the traffic portion in thousandths of a percent, so 20,000 for a variation would allocate 20% of the experiment traffic to that variation\\. \n*Required*: No \n*Type*: List of [TreatmentToWeight](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmenttoweight.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TreatmentWeights", "type": "array" } }, @@ -63161,15 +77676,23 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the treatment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Feature": { + "markdownDescription": "The name of the feature for this experiment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Feature", "type": "string" }, "TreatmentName": { + "markdownDescription": "A name for this treatment\\. It can include up to 127 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TreatmentName", "type": "string" }, "Variation": { + "markdownDescription": "The name of the variation to use for this treatment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Variation", "type": "string" } }, @@ -63184,9 +77707,13 @@ "additionalProperties": false, "properties": { "SplitWeight": { + "markdownDescription": "The portion of experiment traffic to allocate to this treatment\\. Specify the traffic portion in thousandths of a percent, so 20,000 allocated to a treatment would allocate 20% of the experiment traffic to that treatment\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SplitWeight", "type": "number" }, "Treatment": { + "markdownDescription": "The name of the treatment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Treatment", "type": "string" } }, @@ -63232,36 +77759,52 @@ "additionalProperties": false, "properties": { "DefaultVariation": { + "markdownDescription": "The name of the variation to use as the default variation\\. The default variation is served to users who are not allocated to any ongoing launches or experiments of this feature\\. \nThis variation must also be listed in the `Variations` structure\\. \nIf you omit `DefaultVariation`, the first variation listed in the `Variations` structure is used as the default variation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultVariation", "type": "string" }, "Description": { + "markdownDescription": "An optional description of the feature\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "EntityOverrides": { "items": { "$ref": "#/definitions/AWS::Evidently::Feature.EntityOverride" }, + "markdownDescription": "Specify users that should always be served a specific variation of a feature\\. Each user is specified by a key\\-value pair \\. For each key, specify a user by entering their user ID, account ID, or some other identifier\\. For the value, specify the name of the variation that they are to be served\\. \n*Required*: No \n*Type*: List of [EntityOverride](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-entityoverride.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntityOverrides", "type": "array" }, "EvaluationStrategy": { + "markdownDescription": "Specify `ALL_RULES` to activate the traffic allocation specified by any ongoing launches or experiments\\. Specify `DEFAULT_VARIATION` to serve the default variation to all users instead\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EvaluationStrategy", "type": "string" }, "Name": { + "markdownDescription": "The name for the feature\\. It can include up to 127 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Project": { + "markdownDescription": "The name or ARN of the project that is to contain the new feature\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Project", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Assigns one or more tags \\(key\\-value pairs\\) to the feature\\. \nTags can help you organize and categorize your resources\\. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values\\. \nTags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters\\. \nYou can associate as many as 50 tags with a feature\\. \nFor more information, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Variations": { "items": { "$ref": "#/definitions/AWS::Evidently::Feature.VariationObject" }, + "markdownDescription": "An array of structures that contain the configuration of the feature's different variations\\. \nEach `VariationObject` in the `Variations` array for a feature must have the same type of value \\(`BooleanValue`, `DoubleValue`, `LongValue` or `StringValue`\\)\\. \n*Required*: Yes \n*Type*: List of [VariationObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-variationobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Variations", "type": "array" } }, @@ -63297,9 +77840,13 @@ "additionalProperties": false, "properties": { "EntityId": { + "markdownDescription": "The entity ID to be served the variation specified in `Variation`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntityId", "type": "string" }, "Variation": { + "markdownDescription": "The name of the variation to serve to the user session that matches the `EntityId`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Variation", "type": "string" } }, @@ -63309,18 +77856,28 @@ "additionalProperties": false, "properties": { "BooleanValue": { + "markdownDescription": "The value assigned to this variation, if the variation type is boolean\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BooleanValue", "type": "boolean" }, "DoubleValue": { + "markdownDescription": "The value assigned to this variation, if the variation type is a double\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DoubleValue", "type": "number" }, "LongValue": { + "markdownDescription": "The value assigned to this variation, if the variation type is a long\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LongValue", "type": "number" }, "StringValue": { + "markdownDescription": "The value assigned to this variation, if the variation type is a string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StringValue", "type": "string" }, "VariationName": { + "markdownDescription": "A name for the variation\\. It can include up to 127 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VariationName", "type": "string" } }, @@ -63365,6 +77922,8 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "An optional description for the launch\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "ExecutionStatus": { @@ -63374,33 +77933,47 @@ "items": { "$ref": "#/definitions/AWS::Evidently::Launch.LaunchGroupObject" }, + "markdownDescription": "An array of structures that contains the feature and variations that are to be used for the launch\\. You can up to five launch groups in a launch\\. \n*Required*: Yes \n*Type*: List of [LaunchGroupObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-launchgroupobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Groups", "type": "array" }, "MetricMonitors": { "items": { "$ref": "#/definitions/AWS::Evidently::Launch.MetricDefinitionObject" }, + "markdownDescription": "An array of structures that define the metrics that will be used to monitor the launch performance\\. You can have up to three metric monitors in the array\\. \n*Required*: No \n*Type*: List of [MetricDefinitionObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-metricdefinitionobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricMonitors", "type": "array" }, "Name": { + "markdownDescription": "The name for the launch\\. It can include up to 127 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Project": { + "markdownDescription": "The name or ARN of the project that you want to create the launch in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Project", "type": "string" }, "RandomizationSalt": { + "markdownDescription": "When Evidently assigns a particular user session to a launch, it must use a randomization ID to determine which variation the user session is served\\. This randomization ID is a combination of the entity ID and `randomizationSalt`\\. If you omit `randomizationSalt`, Evidently uses the launch name as the `randomizationsSalt`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RandomizationSalt", "type": "string" }, "ScheduledSplitsConfig": { "items": { "$ref": "#/definitions/AWS::Evidently::Launch.StepConfig" }, + "markdownDescription": "An array of structures that define the traffic allocation percentages among the feature variations during each step of the launch\\. \n*Required*: Yes \n*Type*: List of [StepConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-stepconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduledSplitsConfig", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Assigns one or more tags \\(key\\-value pairs\\) to the launch\\. \nTags can help you organize and categorize your resources\\. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values\\. \nTags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters\\. \nYou can associate as many as 50 tags with a launch\\. \nFor more information, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -63455,9 +78028,13 @@ "additionalProperties": false, "properties": { "GroupName": { + "markdownDescription": "The name of the launch group\\. It can include up to 127 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupName", "type": "string" }, "SplitWeight": { + "markdownDescription": "The portion of launch traffic to allocate to this launch group\\. \nThis is represented in thousandths of a percent\\. For example, specify 20,000 to allocate 20% of the launch audience to this launch group\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SplitWeight", "type": "number" } }, @@ -63471,15 +78048,23 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the launch group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Feature": { + "markdownDescription": "The feature that this launch is using\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Feature", "type": "string" }, "GroupName": { + "markdownDescription": "A name for this launch group\\. It can include up to 127 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupName", "type": "string" }, "Variation": { + "markdownDescription": "The feature variation to use for this launch group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Variation", "type": "string" } }, @@ -63494,18 +78079,28 @@ "additionalProperties": false, "properties": { "EntityIdKey": { + "markdownDescription": "The entity, such as a user or session, that does an action that causes a metric value to be recorded\\. An example is `userDetails.userID`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntityIdKey", "type": "string" }, "EventPattern": { + "markdownDescription": "The EventBridge event pattern that defines how the metric is recorded\\. \nFor more information about EventBridge event patterns, see [Amazon EventBridge event patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventPattern", "type": "string" }, "MetricName": { + "markdownDescription": "A name for the metric\\. It can include up to 255 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", "type": "string" }, "UnitLabel": { + "markdownDescription": "A label for the units that the metric is measuring\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnitLabel", "type": "string" }, "ValueKey": { + "markdownDescription": "The value that is tracked to produce the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValueKey", "type": "string" } }, @@ -63546,6 +78141,8 @@ "items": { "$ref": "#/definitions/AWS::Evidently::Launch.GroupToWeight" }, + "markdownDescription": "An array of structures that define how much launch traffic to allocate to each launch group during this step of the launch\\. \n*Required*: Yes \n*Type*: List of [GroupToWeight](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-grouptoweight.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupWeights", "type": "array" }, "SegmentOverrides": { @@ -63555,6 +78152,8 @@ "type": "array" }, "StartTime": { + "markdownDescription": "The date and time to start this step of the launch\\. Use UTC format, `yyyy-MM-ddTHH:mm:ssZ`\\. For example, `2025-11-25T23:59:59Z` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartTime", "type": "string" } }, @@ -63603,18 +78202,26 @@ "$ref": "#/definitions/AWS::Evidently::Project.AppConfigResourceObject" }, "DataDelivery": { - "$ref": "#/definitions/AWS::Evidently::Project.DataDeliveryObject" + "$ref": "#/definitions/AWS::Evidently::Project.DataDeliveryObject", + "markdownDescription": "A structure that contains information about where Evidently is to store evaluation events for longer term storage, if you choose to do so\\. If you choose not to store these events, Evidently deletes them after using them to produce metrics and other experiment results that you can view\\. \nYou can't specify both `CloudWatchLogs` and `S3Destination` in the same operation\\. \n*Required*: No \n*Type*: [DataDeliveryObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-project-datadeliveryobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataDelivery" }, "Description": { + "markdownDescription": "An optional description of the project\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name for the project\\. It can include up to 127 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Assigns one or more tags \\(key\\-value pairs\\) to the project\\. \nTags can help you organize and categorize your resources\\. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values\\. \nTags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters\\. \nYou can associate as many as 50 tags with a project\\. \nFor more information, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -63664,10 +78271,14 @@ "additionalProperties": false, "properties": { "LogGroup": { + "markdownDescription": "If the project stores evaluation events in CloudWatch Logs, this structure stores the log group name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroup", "type": "string" }, "S3": { - "$ref": "#/definitions/AWS::Evidently::Project.S3Destination" + "$ref": "#/definitions/AWS::Evidently::Project.S3Destination", + "markdownDescription": "If the project stores evaluation events in an Amazon S3 bucket, this structure stores the bucket name and bucket prefix\\. \n*Required*: No \n*Type*: [S3Destination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-project-s3destination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3" } }, "type": "object" @@ -63676,9 +78287,13 @@ "additionalProperties": false, "properties": { "BucketName": { + "markdownDescription": "The name of the bucket in which Evidently stores evaluation events\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", "type": "string" }, "Prefix": { + "markdownDescription": "The bucket prefix in which Evidently stores evaluation events\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" } }, @@ -63801,44 +78416,58 @@ "properties": { "Actions": { "additionalProperties": false, + "markdownDescription": "The actions for the experiment\\. \n*Required*: No \n*Type*: Map of [ExperimentTemplateAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplateaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.ExperimentTemplateAction" } }, + "title": "Actions", "type": "object" }, "Description": { + "markdownDescription": "A description for the experiment template\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[\\s\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "LogConfiguration": { - "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.ExperimentTemplateLogConfiguration" + "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.ExperimentTemplateLogConfiguration", + "markdownDescription": "The configuration for experiment logging\\. \n*Required*: No \n*Type*: [ExperimentTemplateLogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatelogconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogConfiguration" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `[\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "StopConditions": { "items": { "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.ExperimentTemplateStopCondition" }, + "markdownDescription": "The stop conditions\\. \n*Required*: Yes \n*Type*: List of [ExperimentTemplateStopCondition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatestopcondition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StopConditions", "type": "array" }, "Tags": { "additionalProperties": true, + "markdownDescription": "The tags to apply to the experiment template\\. \n*Required*: Yes \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" }, "Targets": { "additionalProperties": false, + "markdownDescription": "The targets for the experiment\\. \n*Required*: Yes \n*Type*: Map of [ExperimentTemplateTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatetarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.ExperimentTemplateTarget" } }, + "title": "Targets", "type": "object" } }, @@ -63888,33 +78517,43 @@ "additionalProperties": false, "properties": { "ActionId": { + "markdownDescription": "The ID of the action\\. The format of the action ID is: aws:*service\\-name*:*action\\-type*\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `[\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionId", "type": "string" }, "Description": { + "markdownDescription": "A description for the action\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[\\s\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Parameters": { "additionalProperties": true, + "markdownDescription": "The parameters for the action, if applicable\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Parameters", "type": "object" }, "StartAfter": { "items": { "type": "string" }, + "markdownDescription": "The name of the action that must be completed before the current action starts\\. Omit this parameter to run the action at the start of the experiment\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartAfter", "type": "array" }, "Targets": { "additionalProperties": true, + "markdownDescription": "The targets for the action\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Targets", "type": "object" } }, @@ -63927,13 +78566,19 @@ "additionalProperties": false, "properties": { "CloudWatchLogsConfiguration": { - "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.CloudWatchLogsConfiguration" + "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.CloudWatchLogsConfiguration", + "markdownDescription": "The configuration for experiment logging to Amazon CloudWatch Logs\\. The supported field is `logGroupArn`\\. For example: \n`{\"logGroupArn\": \"aws:arn:logs:region_name:account_id:log-group:log_group_name\"}` \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogsConfiguration" }, "LogSchemaVersion": { + "markdownDescription": "The schema version\\. The supported value is 1\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogSchemaVersion", "type": "number" }, "S3Configuration": { - "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.S3Configuration" + "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.S3Configuration", + "markdownDescription": "The configuration for experiment logging to Amazon S3\\. The following fields are supported: \n+ `bucketName` \\- The name of the destination bucket\\.\n+ `prefix` \\- An optional bucket prefix\\.\nFor example: \n`{\"bucketName\": \"my-s3-bucket\", \"prefix\": \"log-folder\"}` \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Configuration" } }, "required": [ @@ -63945,9 +78590,13 @@ "additionalProperties": false, "properties": { "Source": { + "markdownDescription": "The source for the stop condition\\. Specify `aws:cloudwatch:alarm` if the stop condition is defined by a CloudWatch alarm\\. Specify `none` if there is no stop condition\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `[\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source", "type": "string" }, "Value": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the CloudWatch alarm\\. This is required if the source is a CloudWatch alarm\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `[\\s\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -63963,36 +78612,48 @@ "items": { "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.ExperimentTemplateTargetFilter" }, + "markdownDescription": "The filters to apply to identify target resources using specific attributes\\. \n*Required*: No \n*Type*: List of [ExperimentTemplateTargetFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatetargetfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filters", "type": "array" }, "Parameters": { "additionalProperties": true, + "markdownDescription": "The parameters for the resource type\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Parameters", "type": "object" }, "ResourceArns": { "items": { "type": "string" }, + "markdownDescription": "The Amazon Resource Names \\(ARNs\\) of the resources\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceArns", "type": "array" }, "ResourceTags": { "additionalProperties": true, + "markdownDescription": "The tags for the target resources\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "ResourceTags", "type": "object" }, "ResourceType": { + "markdownDescription": "The resource type\\. The resource type must be supported for the specified action\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `[\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceType", "type": "string" }, "SelectionMode": { + "markdownDescription": "Scopes the identified resources to a specific count of the resources at random, or a percentage of the resources\\. All identified resources are included in the target\\. \n+ ALL \\- Run the action on all identified targets\\. This is the default\\.\n+ COUNT\\(n\\) \\- Run the action on the specified number of targets, chosen from the identified targets at random\\. For example, COUNT\\(1\\) selects one of the targets\\.\n+ PERCENT\\(n\\) \\- Run the action on the specified percentage of targets, chosen from the identified targets at random\\. For example, PERCENT\\(25\\) selects 25% of the targets\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `[\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SelectionMode", "type": "string" } }, @@ -64006,12 +78667,16 @@ "additionalProperties": false, "properties": { "Path": { + "markdownDescription": "The attribute path for the filter\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `[\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", "type": "string" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "The attribute values for the filter\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -64072,9 +78737,13 @@ "additionalProperties": false, "properties": { "SnsRoleName": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that allows Amazon SNS to record AWS Firewall Manager activity\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsRoleName", "type": "string" }, "SnsTopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the SNS topic that collects notifications from AWS Firewall Manager\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsTopicArn", "type": "string" } }, @@ -64141,48 +78810,81 @@ "additionalProperties": false, "properties": { "DeleteAllPolicyResources": { + "markdownDescription": "Used when deleting a policy\\. If `true`, Firewall Manager performs cleanup according to the policy type\\. \nFor AWS WAF and Shield Advanced policies, Firewall Manager does the following: \n+ Deletes rule groups created by Firewall Manager\n+ Removes web ACLs from in\\-scope resources \n+ Deletes web ACLs that contain no rules or rule groups \nFor security group policies, Firewall Manager does the following for each security group in the policy: \n+ Disassociates the security group from in\\-scope resources \n+ Deletes the security group if it was created through Firewall Manager and if it's no longer associated with any resources through another policy \nAfter the cleanup, in\\-scope resources are no longer protected by web ACLs in this policy\\. Protection of out\\-of\\-scope resources remains unchanged\\. Scope is determined by tags that you create and accounts that you associate with the policy\\. When creating the policy, if you specify that only resources in specific accounts or with specific tags are in scope of the policy, those accounts and resources are handled by the policy\\. All others are out of scope\\. If you don't specify tags or accounts, all resources are in scope\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteAllPolicyResources", "type": "boolean" }, "ExcludeMap": { - "$ref": "#/definitions/AWS::FMS::Policy.IEMap" + "$ref": "#/definitions/AWS::FMS::Policy.IEMap", + "markdownDescription": "Specifies the AWS account IDs and AWS Organizations organizational units \\(OUs\\) to exclude from the policy\\. Specifying an OU is the equivalent of specifying all accounts in the OU and in any of its child OUs, including any child OUs and accounts that are added at a later time\\. \nYou can specify inclusions or exclusions, but not both\\. If you specify an `IncludeMap`, AWS Firewall Manager applies the policy to all accounts specified by the `IncludeMap`, and does not evaluate any `ExcludeMap` specifications\\. If you do not specify an `IncludeMap`, then Firewall Manager applies the policy to all accounts except for those specified by the `ExcludeMap`\\. \nYou can specify account IDs, OUs, or a combination: \n+ Specify account IDs by setting the key to `ACCOUNT`\\. For example, the following is a valid map: `{\u201cACCOUNT\u201d : [\u201caccountID1\u201d, \u201caccountID2\u201d]}`\\.\n+ Specify OUs by setting the key to `ORGUNIT`\\. For example, the following is a valid map: `{\u201cORGUNIT\u201d : [\u201couid111\u201d, \u201couid112\u201d]}`\\.\n+ Specify accounts and OUs together in a single map, separated with a comma\\. For example, the following is a valid map: `{\u201cACCOUNT\u201d : [\u201caccountID1\u201d, \u201caccountID2\u201d], \u201cORGUNIT\u201d : [\u201couid111\u201d, \u201couid112\u201d]}`\\.\n*Required*: No \n*Type*: [IEMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-iemap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludeMap" }, "ExcludeResourceTags": { + "markdownDescription": "Used only when tags are specified in the `ResourceTags` property\\. If this property is `True`, resources with the specified tags are not in scope of the policy\\. If it's `False`, only resources with the specified tags are in scope of the policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludeResourceTags", "type": "boolean" }, "IncludeMap": { - "$ref": "#/definitions/AWS::FMS::Policy.IEMap" + "$ref": "#/definitions/AWS::FMS::Policy.IEMap", + "markdownDescription": "Specifies the AWS account IDs and AWS Organizations organizational units \\(OUs\\) to include in the policy\\. Specifying an OU is the equivalent of specifying all accounts in the OU and in any of its child OUs, including any child OUs and accounts that are added at a later time\\. \nYou can specify inclusions or exclusions, but not both\\. If you specify an `IncludeMap`, AWS Firewall Manager applies the policy to all accounts specified by the `IncludeMap`, and does not evaluate any `ExcludeMap` specifications\\. If you do not specify an `IncludeMap`, then Firewall Manager applies the policy to all accounts except for those specified by the `ExcludeMap`\\. \nYou can specify account IDs, OUs, or a combination: \n+ Specify account IDs by setting the key to `ACCOUNT`\\. For example, the following is a valid map: `{\u201cACCOUNT\u201d : [\u201caccountID1\u201d, \u201caccountID2\u201d]}`\\.\n+ Specify OUs by setting the key to `ORGUNIT`\\. For example, the following is a valid map: `{\u201cORGUNIT\u201d : [\u201couid111\u201d, \u201couid112\u201d]}`\\.\n+ Specify accounts and OUs together in a single map, separated with a comma\\. For example, the following is a valid map: `{\u201cACCOUNT\u201d : [\u201caccountID1\u201d, \u201caccountID2\u201d], \u201cORGUNIT\u201d : [\u201couid111\u201d, \u201couid112\u201d]}`\\.\n*Required*: No \n*Type*: [IEMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-iemap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeMap" + }, + "PolicyDescription": { + "type": "string" }, "PolicyName": { + "markdownDescription": "The name of the AWS Firewall Manager policy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyName", "type": "string" }, "RemediationEnabled": { + "markdownDescription": "Indicates if the policy should be automatically applied to new resources\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemediationEnabled", "type": "boolean" }, + "ResourceSetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, "ResourceTags": { "items": { "$ref": "#/definitions/AWS::FMS::Policy.ResourceTag" }, + "markdownDescription": "An array of `ResourceTag` objects, used to explicitly include resources in the policy scope or explicitly exclude them\\. If this isn't set, then tags aren't used to modify policy scope\\. See also `ExcludeResourceTags`\\. \n*Required*: No \n*Type*: List of [ResourceTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-resourcetag.html) \n*Maximum*: `8` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceTags", "type": "array" }, "ResourceType": { + "markdownDescription": "The type of resource protected by or in scope of the policy\\. This is in the format shown in the [AWS Resource Types Reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)\\. To apply this policy to multiple resource types, specify a resource type of `ResourceTypeList` and then specify the resource types in a `ResourceTypeList`\\. \nFor AWS WAF and Shield Advanced, example resource types include `AWS::ElasticLoadBalancingV2::LoadBalancer` and `AWS::CloudFront::Distribution`\\. For a security group common policy, valid values are `AWS::EC2::NetworkInterface` and `AWS::EC2::Instance`\\. For a security group content audit policy, valid values are `AWS::EC2::SecurityGroup`, `AWS::EC2::NetworkInterface`, and `AWS::EC2::Instance`\\. For a security group usage audit policy, the value is `AWS::EC2::SecurityGroup`\\. For an AWS Network Firewall policy or DNS Firewall policy, the value is `AWS::EC2::VPC`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceType", "type": "string" }, "ResourceTypeList": { "items": { "type": "string" }, + "markdownDescription": "An array of `ResourceType` objects\\. Use this only to specify multiple resource types\\. To specify a single resource type, use `ResourceType`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceTypeList", "type": "array" }, "ResourcesCleanUp": { + "markdownDescription": "Indicates whether AWS Firewall Manager should automatically remove protections from resources that leave the policy scope and clean up resources that Firewall Manager is managing for accounts when those accounts leave policy scope\\. For example, Firewall Manager will disassociate a Firewall Manager managed web ACL from a protected customer resource when the customer resource leaves policy scope\\. \nBy default, Firewall Manager doesn't remove protections or delete Firewall Manager managed resources\\. \nThis option is not available for Shield Advanced or AWS WAF Classic policies\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourcesCleanUp", "type": "boolean" }, "SecurityServicePolicyData": { - "$ref": "#/definitions/AWS::FMS::Policy.SecurityServicePolicyData" + "$ref": "#/definitions/AWS::FMS::Policy.SecurityServicePolicyData", + "markdownDescription": "Details about the security service that is being used to protect the resources\\. \nThis contains the following settings: \n+ Type \\- Indicates the service type that the policy uses to protect the resource\\. For security group policies, Firewall Manager supports one security group for each common policy and for each content audit policy\\. This is an adjustable limit that you can increase by contacting AWS Support\\.", + "title": "SecurityServicePolicyData" }, "Tags": { "items": { "$ref": "#/definitions/AWS::FMS::Policy.PolicyTag" }, + "markdownDescription": "A collection of key:value pairs associated with an AWS resource\\. The key:value pair can be anything you define\\. Typically, the tag key represents a category \\(such as \"environment\"\\) and the tag value represents a specific value within that category \\(such as \"test,\" \"development,\" or \"production\"\\)\\. You can add up to 50 tags to each AWS resource\\. \n*Required*: No \n*Type*: List of [PolicyTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-policytag.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -64190,7 +78892,6 @@ "ExcludeResourceTags", "PolicyName", "RemediationEnabled", - "ResourceType", "SecurityServicePolicyData" ], "type": "object" @@ -64223,12 +78924,16 @@ "items": { "type": "string" }, + "markdownDescription": "The account list for the map\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ACCOUNT", "type": "array" }, "ORGUNIT": { "items": { "type": "string" }, + "markdownDescription": "The organizational unit list for the map\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ORGUNIT", "type": "array" } }, @@ -64262,9 +78967,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "Part of the key:value pair that defines a tag\\. You can use a tag key to describe a category of information, such as \"customer\\.\" Tag keys are case\\-sensitive\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "Part of the key:value pair that defines a tag\\. You can use a tag value to describe a specific value within a category, such as \"companyA\" or \"companyB\\.\" Tag values are case\\-sensitive\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -64278,9 +78987,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The resource tag key\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The resource tag value\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -64485,52 +79198,78 @@ "additionalProperties": false, "properties": { "BackupId": { + "markdownDescription": "The ID of the source backup\\. Specifies the backup that you are copying\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BackupId", "type": "string" }, "FileSystemType": { + "markdownDescription": "The type of Amazon FSx file system, which can be `LUSTRE`, `WINDOWS`, `ONTAP`, or `OPENZFS`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FileSystemType", "type": "string" }, "FileSystemTypeVersion": { + "markdownDescription": "\\(Optional\\) For FSx for Lustre file systems, sets the Lustre version for the file system that you're creating\\. Valid values are `2.10` and `2.12`: \n+ 2\\.10 is supported by the Scratch and Persistent\\_1 Lustre deployment types\\.\n+ 2\\.12 is supported by all Lustre deployment types\\. `2.12` is required when setting FSx for Lustre `DeploymentType` to `PERSISTENT_2`\\.\nDefault value = `2.10`, except when `DeploymentType` is set to `PERSISTENT_2`, then the default is `2.12`\\. \nIf you set `FileSystemTypeVersion` to `2.10` for a `PERSISTENT_2` Lustre deployment type, the `CreateFileSystem` operation fails\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `20` \n*Pattern*: `^[0-9](.[0-9]*)*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FileSystemTypeVersion", "type": "string" }, "KmsKeyId": { + "markdownDescription": "The ID of the AWS Key Management Service \\(AWS KMS\\) key used to encrypt the file system's data for Amazon FSx for Windows File Server file systems, Amazon FSx for NetApp ONTAP file systems, and `PERSISTENT` Amazon FSx for Lustre file systems at rest\\. If this ID isn't specified, the Amazon FSx\\-managed key for your account is used\\. The scratch Amazon FSx for Lustre file systems are always encrypted at rest using the Amazon FSx\\-managed key for your account\\. For more information, see [Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) in the * AWS Key Management Service API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" }, "LustreConfiguration": { - "$ref": "#/definitions/AWS::FSx::FileSystem.LustreConfiguration" + "$ref": "#/definitions/AWS::FSx::FileSystem.LustreConfiguration", + "markdownDescription": "The Lustre configuration for the file system being created\\. \nThe following parameters are not supported for file systems with the `Persistent_2` deployment type\\. Instead, use `CreateDataRepositoryAssociation` to create a data repository association to link your Lustre file system to a data repository\\. \n+ `AutoImportPolicy` \n+ `ExportPath` \n+ `ImportedChunkSize` \n+ `ImportPath` \n*Required*: No \n*Type*: [LustreConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LustreConfiguration" }, "OntapConfiguration": { - "$ref": "#/definitions/AWS::FSx::FileSystem.OntapConfiguration" + "$ref": "#/definitions/AWS::FSx::FileSystem.OntapConfiguration", + "markdownDescription": "The ONTAP configuration properties of the FSx for ONTAP file system that you are creating\\. \n*Required*: No \n*Type*: [OntapConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OntapConfiguration" }, "OpenZFSConfiguration": { - "$ref": "#/definitions/AWS::FSx::FileSystem.OpenZFSConfiguration" + "$ref": "#/definitions/AWS::FSx::FileSystem.OpenZFSConfiguration", + "markdownDescription": "The Amazon FSx for OpenZFS configuration properties for the file system that you are creating\\. \n*Required*: No \n*Type*: [OpenZFSConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OpenZFSConfiguration" }, "SecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "A list of IDs specifying the security groups to apply to all network interfaces created for file system access\\. This list isn't returned in later requests to describe the file system\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroupIds", "type": "array" }, "StorageCapacity": { + "markdownDescription": "Sets the storage capacity of the file system that you're creating\\. `StorageCapacity` is required if you are creating a new file system\\. Do not include `StorageCapacity` if you are creating a file system from a backup\\. \nFor Lustre file systems: \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageCapacity", "type": "number" }, "StorageType": { + "markdownDescription": "Sets the storage type for the file system that you're creating\\. Valid values are `SSD` and `HDD`\\. \n+ Set to `SSD` to use solid state drive storage\\. SSD is supported on all Windows, Lustre, ONTAP, and OpenZFS deployment types\\.\n+ Set to `HDD` to use hard disk drive storage\\. HDD is supported on `SINGLE_AZ_2` and `MULTI_AZ_1` Windows file system deployment types, and on `PERSISTENT` Lustre file system deployment types\\. \nDefault value is `SSD`\\. For more information, see [ Storage type options](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/optimize-fsx-costs.html#storage-type-options) in the *FSx for Windows File Server User Guide* and [Multiple storage options](https://docs.aws.amazon.com/fsx/latest/LustreGuide/what-is.html#storage-options) in the *FSx for Lustre User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `HDD | SSD` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StorageType", "type": "string" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "Specifies the IDs of the subnets that the file system will be accessible from\\. For Windows and ONTAP `MULTI_AZ_1` deployment types,provide exactly two subnet IDs, one for the preferred file server and one for the standby file server\\. You specify one of these subnets as the preferred subnet using the `WindowsConfiguration > PreferredSubnetID` or `OntapConfiguration > PreferredSubnetID` properties\\. For more information about Multi\\-AZ file system configuration, see [ Availability and durability: Single\\-AZ and Multi\\-AZ file systems](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html) in the *Amazon FSx for Windows User Guide* and [ Availability and durability](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/high-availability-multiAZ.html) in the *Amazon FSx for ONTAP User Guide*\\. \nFor Windows `SINGLE_AZ_1` and `SINGLE_AZ_2` and all Lustre deployment types, provide exactly one subnet ID\\. The file server is launched in that subnet's Availability Zone\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetIds", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to associate with the file system\\. For more information, see [Tagging your Amazon EC2 resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "WindowsConfiguration": { - "$ref": "#/definitions/AWS::FSx::FileSystem.WindowsConfiguration" + "$ref": "#/definitions/AWS::FSx::FileSystem.WindowsConfiguration", + "markdownDescription": "The configuration object for the Microsoft Windows file system you are creating\\. This value is required if `FileSystemType` is set to `WINDOWS`\\. \n*Required*: Conditional \n*Type*: [WindowsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WindowsConfiguration" } }, "required": [ @@ -64564,12 +79303,18 @@ "additionalProperties": false, "properties": { "AuditLogDestination": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the destination of the audit logs\\. The destination can be any Amazon CloudWatch Logs log group ARN or Amazon Kinesis Data Firehose delivery stream ARN\\. \nThe name of the Amazon CloudWatch Logs log group must begin with the `/aws/fsx` prefix\\. The name of the Amazon Kinesis Data Firehouse delivery stream must begin with the `aws-fsx` prefix\\. \nThe destination ARN \\(either CloudWatch Logs log group or Kinesis Data Firehose delivery stream\\) must be in the same AWS partition, AWS Region, and AWS account as your Amazon FSx file system\\. \n*Required*: No \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `1024` \n*Pattern*: `^arn:[^:]{1,63}:[^:]{0,63}:[^:]{0,63}:(?:|\\d{12}):[^/].{0,1023}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuditLogDestination", "type": "string" }, "FileAccessAuditLogLevel": { + "markdownDescription": "Sets which attempt type is logged by Amazon FSx for file and folder accesses\\. \n+ `SUCCESS_ONLY` \\- only successful attempts to access files or folders are logged\\.\n+ `FAILURE_ONLY` \\- only failed attempts to access files or folders are logged\\.\n+ `SUCCESS_AND_FAILURE` \\- both successful attempts and failed attempts to access files or folders are logged\\.\n+ `DISABLED` \\- access auditing of files and folders is turned off\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | FAILURE_ONLY | SUCCESS_AND_FAILURE | SUCCESS_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileAccessAuditLogLevel", "type": "string" }, "FileShareAccessAuditLogLevel": { + "markdownDescription": "Sets which attempt type is logged by Amazon FSx for file share accesses\\. \n+ `SUCCESS_ONLY` \\- only successful attempts to access file shares are logged\\.\n+ `FAILURE_ONLY` \\- only failed attempts to access file shares are logged\\.\n+ `SUCCESS_AND_FAILURE` \\- both successful attempts and failed attempts to access file shares are logged\\.\n+ `DISABLED` \\- access auditing of file shares is turned off\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | FAILURE_ONLY | SUCCESS_AND_FAILURE | SUCCESS_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileShareAccessAuditLogLevel", "type": "string" } }, @@ -64583,12 +79328,16 @@ "additionalProperties": false, "properties": { "Clients": { + "markdownDescription": "A value that specifies who can mount the file system\\. You can provide a wildcard character \\(`*`\\), an IP address \\(`0.0.0.0`\\), or a CIDR address \\(`192.0.2.0/24`\\)\\. By default, Amazon FSx uses the wildcard character when specifying the client\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[ -~]{1,128}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Clients", "type": "string" }, "Options": { "items": { "type": "string" }, + "markdownDescription": "The options to use when mounting the file system\\. For a list of options that you can use with Network File System \\(NFS\\), see the [exports\\(5\\) \\- Linux man page](https://linux.die.net/man/5/exports)\\. When choosing your options, consider the following: \n+ `crossmnt` is used by default\\. If you don't specify `crossmnt` when changing the client configuration, you won't be able to see or access snapshots in your file system's snapshot directory\\.\n+ `sync` is used by default\\. If you instead specify `async`, the system acknowledges writes before writing to disk\\. If the system crashes before the writes are finished, you lose the unwritten data\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Options", "type": "array" } }, @@ -64598,9 +79347,13 @@ "additionalProperties": false, "properties": { "Iops": { + "markdownDescription": "The total number of SSD IOPS provisioned for the file system\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Iops", "type": "number" }, "Mode": { + "markdownDescription": "Specifies whether the number of IOPS for the file system is using the system default \\(`AUTOMATIC`\\) or was provisioned by the customer \\(`USER_PROVISIONED`\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUTOMATIC | USER_PROVISIONED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Mode", "type": "string" } }, @@ -64610,39 +79363,63 @@ "additionalProperties": false, "properties": { "AutoImportPolicy": { + "markdownDescription": "\\(Optional\\) Available with `Scratch` and `Persistent_1` deployment types\\. When you create your file system, your existing S3 objects appear as file and directory listings\\. Use this property to choose how Amazon FSx keeps your file and directory listings up to date as you add or modify objects in your linked S3 bucket\\. `AutoImportPolicy` can have the following values: \n+ `NONE` \\- \\(Default\\) AutoImport is off\\. Amazon FSx only updates file and directory listings from the linked S3 bucket when the file system is created\\. FSx does not update file and directory listings for any new or changed objects after choosing this option\\.\n+ `NEW` \\- AutoImport is on\\. Amazon FSx automatically imports directory listings of any new objects added to the linked S3 bucket that do not currently exist in the FSx file system\\. \n+ `NEW_CHANGED` \\- AutoImport is on\\. Amazon FSx automatically imports file and directory listings of any new objects added to the S3 bucket and any existing objects that are changed in the S3 bucket after you choose this option\\.\n+ `NEW_CHANGED_DELETED` \\- AutoImport is on\\. Amazon FSx automatically imports file and directory listings of any new objects added to the S3 bucket, any existing objects that are changed in the S3 bucket, and any objects that were deleted in the S3 bucket\\.\nFor more information, see [ Automatically import updates from your S3 bucket](https://docs.aws.amazon.com/fsx/latest/LustreGuide/autoimport-data-repo.html)\\. \nThis parameter is not supported for file systems with the `Persistent_2` deployment type\\. Instead, use `CreateDataRepositoryAssociation` to create a data repository association to link your Lustre file system to a data repository\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `NEW | NEW_CHANGED | NEW_CHANGED_DELETED | NONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoImportPolicy", "type": "string" }, "AutomaticBackupRetentionDays": { + "markdownDescription": "The number of days to retain automatic backups\\. Setting this to 0 disables automatic backups\\. You can retain automatic backups for a maximum of 90 days\\. The default is 0\\. Only valid for use with `PERSISTENT_1` deployment types\\. For more information, see [Working with backups](https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html) in the *Amazon FSx for Lustre User Guide*\\. \\(Default = 0\\) \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `90` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutomaticBackupRetentionDays", "type": "number" }, "CopyTagsToBackups": { + "markdownDescription": "A Boolean flag indicating whether tags for the file system should be copied to backups\\. This value defaults to false\\. If it's set to true, all tags for the file system are copied to all automatic and user\\-initiated backups where the user doesn't specify tags\\. If this value is true, and you specify one or more tags, only the specified tags are copied to backups\\. If you specify one or more tags when creating a user\\-initiated backup, no tags are copied from the file system, regardless of this value\\. Only valid for use with `PERSISTENT_1` deployment types\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CopyTagsToBackups", "type": "boolean" }, "DailyAutomaticBackupStartTime": { + "markdownDescription": "A recurring daily time, in the format` HH:MM`\\. `HH` is the zero\\-padded hour of the day \\(0\\-23\\), and `MM` is the zero\\-padded minute of the hour\\. For example, `05:00` specifies 5 AM daily\\. Only valid for use with `PERSISTENT_1` deployment types\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DailyAutomaticBackupStartTime", "type": "string" }, "DataCompressionType": { + "markdownDescription": "Sets the data compression configuration for the file system\\. `DataCompressionType` can have the following values: \n+ `NONE` \\- \\(Default\\) Data compression is turned off when the file system is created\\.\n+ `LZ4` \\- Data compression is turned on with the LZ4 algorithm\\.\nFor more information, see [Lustre data compression](https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-compression.html) in the *Amazon FSx for Lustre User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `LZ4 | NONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataCompressionType", "type": "string" }, "DeploymentType": { + "markdownDescription": "\\(Optional\\) Choose `SCRATCH_1` and `SCRATCH_2` deployment types when you need temporary storage and shorter\\-term processing of data\\. The `SCRATCH_2` deployment type provides in\\-transit encryption of data and higher burst throughput capacity than `SCRATCH_1`\\. \nChoose `PERSISTENT_1` for longer\\-term storage and for throughput\\-focused workloads that aren\u2019t latency\\-sensitive\\. `PERSISTENT_1` supports encryption of data in transit, and is available in all AWS Regions in which FSx for Lustre is available\\. \nChoose `PERSISTENT_2` for longer\\-term storage and for latency\\-sensitive workloads that require the highest levels of IOPS/throughput\\. `PERSISTENT_2` supports SSD storage, and offers higher `PerUnitStorageThroughput` \\(up to 1000 MB/s/TiB\\)\\. `PERSISTENT_2` is available in a limited number of AWS Regions\\. For more information, and an up\\-to\\-date list of AWS Regions in which `PERSISTENT_2` is available, see [File system deployment options for FSx for Lustre](https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-fsx-lustre.html#lustre-deployment-types) in the *Amazon FSx for Lustre User Guide*\\. \nIf you choose `PERSISTENT_2`, and you set `FileSystemTypeVersion` to `2.10`, the `CreateFileSystem` operation fails\\.\nEncryption of data in transit is automatically turned on when you access `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` file systems from Amazon EC2 instances that [support automatic encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data- protection.html) in the AWS Regions where they are available\\. For more information about encryption in transit for FSx for Lustre file systems, see [Encrypting data in transit](https://docs.aws.amazon.com/fsx/latest/LustreGuide/encryption-in-transit-fsxl.html) in the *Amazon FSx for Lustre User Guide*\\. \n\\(Default = `SCRATCH_1`\\) \n*Required*: No \n*Type*: String \n*Allowed values*: `PERSISTENT_1 | PERSISTENT_2 | SCRATCH_1 | SCRATCH_2` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeploymentType", "type": "string" }, "DriveCacheType": { + "markdownDescription": "The type of drive cache used by `PERSISTENT_1` file systems that are provisioned with HDD storage devices\\. This parameter is required when storage type is HDD\\. Set this property to `READ` to improve the performance for frequently accessed files by caching up to 20% of the total storage capacity of the file system\\. \nThis parameter is required when `StorageType` is set to `HDD`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | READ` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DriveCacheType", "type": "string" }, "ExportPath": { + "markdownDescription": "\\(Optional\\) Available with `Scratch` and `Persistent_1` deployment types\\. Specifies the path in the Amazon S3 bucket where the root of your Amazon FSx file system is exported\\. The path must use the same Amazon S3 bucket as specified in ImportPath\\. You can provide an optional prefix to which new and changed data is to be exported from your Amazon FSx for Lustre file system\\. If an `ExportPath` value is not provided, Amazon FSx sets a default export path, `s3://import-bucket/FSxLustre[creation-timestamp]`\\. The timestamp is in UTC format, for example `s3://import-bucket/FSxLustre20181105T222312Z`\\. \nThe Amazon S3 export bucket must be the same as the import bucket specified by `ImportPath`\\. If you specify only a bucket name, such as `s3://import-bucket`, you get a 1:1 mapping of file system objects to S3 bucket objects\\. This mapping means that the input data in S3 is overwritten on export\\. If you provide a custom prefix in the export path, such as `s3://import-bucket/[custom-optional-prefix]`, Amazon FSx exports the contents of your file system to that export prefix in the Amazon S3 bucket\\. \nThis parameter is not supported for file systems with the `Persistent_2` deployment type\\. Instead, use `CreateDataRepositoryAssociation` to create a data repository association to link your Lustre file system to a data repository\\.\n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `4357` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{3,4357}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExportPath", "type": "string" }, "ImportPath": { + "markdownDescription": "\\(Optional\\) The path to the Amazon S3 bucket \\(including the optional prefix\\) that you're using as the data repository for your Amazon FSx for Lustre file system\\. The root of your FSx for Lustre file system will be mapped to the root of the Amazon S3 bucket you select\\. An example is `s3://import-bucket/optional-prefix`\\. If you specify a prefix after the Amazon S3 bucket name, only object keys with that prefix are loaded into the file system\\. \nThis parameter is not supported for file systems with the `Persistent_2` deployment type\\. Instead, use `CreateDataRepositoryAssociation`to create a data repository association to link your Lustre file system to a data repository\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `4357` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{3,4357}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImportPath", "type": "string" }, "ImportedFileChunkSize": { + "markdownDescription": "\\(Optional\\) For files imported from a data repository, this value determines the stripe count and maximum amount of data per file \\(in MiB\\) stored on a single physical disk\\. The maximum number of disks that a single file can be striped across is limited by the total number of disks that make up the file system\\. \nThe default chunk size is 1,024 MiB \\(1 GiB\\) and can go as high as 512,000 MiB \\(500 GiB\\)\\. Amazon S3 objects have a maximum size of 5 TB\\. \nThis parameter is not supported for file systems with the `Persistent_2` deployment type\\. Instead, use `CreateDataRepositoryAssociation` to create a data repository association to link your Lustre file system to a data repository\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `512000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImportedFileChunkSize", "type": "number" }, "PerUnitStorageThroughput": { + "markdownDescription": "Required with `PERSISTENT_1` and `PERSISTENT_2` deployment types, provisions the amount of read and write throughput for each 1 tebibyte \\(TiB\\) of file system storage capacity, in MB/s/TiB\\. File system throughput capacity is calculated by multiplying \ufb01le system storage capacity \\(TiB\\) by the `PerUnitStorageThroughput` \\(MB/s/TiB\\)\\. For a 2\\.4\\-TiB \ufb01le system, provisioning 50 MB/s/TiB of `PerUnitStorageThroughput` yields 120 MB/s of \ufb01le system throughput\\. You pay for the amount of throughput that you provision\\. \nValid values: \n+ For `PERSISTENT_1` SSD storage: 50, 100, 200 MB/s/TiB\\.\n+ For `PERSISTENT_1` HDD storage: 12, 40 MB/s/TiB\\.\n+ For `PERSISTENT_2` SSD storage: 125, 250, 500, 1000 MB/s/TiB\\.\n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `12` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PerUnitStorageThroughput", "type": "number" }, "WeeklyMaintenanceStartTime": { + "markdownDescription": "\\(Optional\\) The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC time zone, where d is the weekday number, from 1 through 7, beginning with Monday and ending with Sunday\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WeeklyMaintenanceStartTime", "type": "string" } }, @@ -64655,6 +79432,8 @@ "items": { "$ref": "#/definitions/AWS::FSx::FileSystem.ClientConfigurations" }, + "markdownDescription": "A list of configuration objects that contain the client and options for mounting the OpenZFS file system\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-nfsexports-clientconfigurations.html) of [ClientConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-nfsexports-clientconfigurations.html) \n*Maximum*: `25` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientConfigurations", "type": "array" } }, @@ -64664,36 +79443,56 @@ "additionalProperties": false, "properties": { "AutomaticBackupRetentionDays": { + "markdownDescription": "The number of days to retain automatic backups\\. Setting this property to `0` disables automatic backups\\. You can retain automatic backups for a maximum of 90 days\\. The default is `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutomaticBackupRetentionDays", "type": "number" }, "DailyAutomaticBackupStartTime": { + "markdownDescription": "A recurring daily time, in the format `HH:MM`\\. `HH` is the zero\\-padded hour of the day \\(0\\-23\\), and `MM` is the zero\\-padded minute of the hour\\. For example, `05:00` specifies 5 AM daily\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DailyAutomaticBackupStartTime", "type": "string" }, "DeploymentType": { + "markdownDescription": "Specifies the FSx for ONTAP file system deployment type to use in creating the file system\\. `MULTI_AZ_1` is the supported ONTAP deployment type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `MULTI_AZ_1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeploymentType", "type": "string" }, "DiskIopsConfiguration": { - "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration" + "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration", + "markdownDescription": "The SSD IOPS configuration for the FSx for ONTAP file system\\. \n*Required*: No \n*Type*: [DiskIopsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-diskiopsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DiskIopsConfiguration" }, "EndpointIpAddressRange": { + "markdownDescription": "Specifies the IP address range in which the endpoints to access your file system will be created\\. By default, Amazon FSx selects an unused IP address range for you from the 198\\.19\\.\\* range\\. \nThe Endpoint IP address range you select for your file system must exist outside the VPC's CIDR range and must be at least /30 or larger\\.\n*Required*: No \n*Type*: String \n*Minimum*: `9` \n*Maximum*: `17` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{9,17}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EndpointIpAddressRange", "type": "string" }, "FsxAdminPassword": { + "markdownDescription": "The ONTAP administrative password for the `fsxadmin` user with which you administer your file system using the NetApp ONTAP CLI and REST API\\. \n*Required*: No \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `50` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{8,50}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FsxAdminPassword", "type": "string" }, "PreferredSubnetId": { + "markdownDescription": "Required when `DeploymentType` is set to `MULTI_AZ_1`\\. This specifies the subnet in which you want the preferred file server to be located\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PreferredSubnetId", "type": "string" }, "RouteTableIds": { "items": { "type": "string" }, + "markdownDescription": "Specifies the virtual private cloud \\(VPC\\) route tables in which your file system's endpoints will be created\\. You should specify all VPC route tables associated with the subnets in which your clients are located\\. By default, Amazon FSx selects your VPC's default route table\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RouteTableIds", "type": "array" }, "ThroughputCapacity": { + "markdownDescription": "Sets the throughput capacity for the file system that you're creating\\. Valid values are 128, 256, 512, 1024, and 2048 MBps\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `8` \n*Maximum*: `4096` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ThroughputCapacity", "type": "number" }, "WeeklyMaintenanceStartTime": { + "markdownDescription": "A recurring weekly time, in the format `D:HH:MM`\\. \n `D` is the day of the week, for which 1 represents Monday and 7 represents Sunday\\. For further details, see [the ISO\\-8601 spec as described on Wikipedia](https://en.wikipedia.org/wiki/ISO_week_date)\\. \n `HH` is the zero\\-padded hour of the day \\(0\\-23\\), and `MM` is the zero\\-padded minute of the hour\\. \nFor example, `1:05:00` specifies maintenance at 5 AM Monday\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WeeklyMaintenanceStartTime", "type": "string" } }, @@ -64706,22 +79505,34 @@ "additionalProperties": false, "properties": { "AutomaticBackupRetentionDays": { + "markdownDescription": "The number of days to retain automatic backups\\. Setting this property to `0` disables automatic backups\\. You can retain automatic backups for a maximum of 90 days\\. The default is `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutomaticBackupRetentionDays", "type": "number" }, "CopyTagsToBackups": { + "markdownDescription": "A Boolean value indicating whether tags for the file system should be copied to backups\\. This value defaults to `false`\\. If it's set to `true`, all tags for the file system are copied to all automatic and user\\-initiated backups where the user doesn't specify tags\\. If this value is `true`, and you specify one or more tags, only the specified tags are copied to backups\\. If you specify one or more tags when creating a user\\-initiated backup, no tags are copied from the file system, regardless of this value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CopyTagsToBackups", "type": "boolean" }, "CopyTagsToVolumes": { + "markdownDescription": "A Boolean value indicating whether tags for the volume should be copied to snapshots\\. This value defaults to `false`\\. If it's set to `true`, all tags for the volume are copied to snapshots where the user doesn't specify tags\\. If this value is `true`, and you specify one or more tags, only the specified tags are copied to snapshots\\. If you specify one or more tags when creating the snapshot, no tags are copied from the volume, regardless of this value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CopyTagsToVolumes", "type": "boolean" }, "DailyAutomaticBackupStartTime": { + "markdownDescription": "A recurring daily time, in the format `HH:MM`\\. `HH` is the zero\\-padded hour of the day \\(0\\-23\\), and `MM` is the zero\\-padded minute of the hour\\. For example, `05:00` specifies 5 AM daily\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DailyAutomaticBackupStartTime", "type": "string" }, "DeploymentType": { + "markdownDescription": "Specifies the file system deployment type\\. Amazon FSx for OpenZFS supports `SINGLE_AZ_1`\\. `SINGLE_AZ_1` deployment type is configured for redundancy within a single Availability Zone\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SINGLE_AZ_1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeploymentType", "type": "string" }, "DiskIopsConfiguration": { - "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration" + "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration", + "markdownDescription": "The SSD IOPS \\(input/output operations per second\\) configuration for an Amazon FSx for NetApp ONTAP or Amazon FSx for OpenZFS file system\\. The default is 3 IOPS per GB of storage capacity, but you can provision additional IOPS per GB of storage\\. The configuration consists of the total number of provisioned SSD IOPS and how the amount was provisioned \\(by the customer or by the system\\)\\. \n*Required*: No \n*Type*: [DiskIopsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-diskiopsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DiskIopsConfiguration" }, "Options": { "items": { @@ -64730,12 +79541,18 @@ "type": "array" }, "RootVolumeConfiguration": { - "$ref": "#/definitions/AWS::FSx::FileSystem.RootVolumeConfiguration" + "$ref": "#/definitions/AWS::FSx::FileSystem.RootVolumeConfiguration", + "markdownDescription": "The configuration Amazon FSx uses when creating the root value of the Amazon FSx for OpenZFS file system\\. All volumes are children of the root volume\\. \n*Required*: No \n*Type*: [RootVolumeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RootVolumeConfiguration" }, "ThroughputCapacity": { + "markdownDescription": "Specifies the throughput of an Amazon FSx for OpenZFS file system, measured in megabytes per second \\(MB/s\\)\\. Valid values are 64, 128, 256, 512, 1024, 2048, 3072, or 4096 MB/s\\. You pay for additional throughput capacity that you provision\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `8` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThroughputCapacity", "type": "number" }, "WeeklyMaintenanceStartTime": { + "markdownDescription": "A recurring weekly time, in the format `D:HH:MM`\\. \n `D` is the day of the week, for which 1 represents Monday and 7 represents Sunday\\. For further details, see [the ISO\\-8601 spec as described on Wikipedia](https://en.wikipedia.org/wiki/ISO_week_date)\\. \n `HH` is the zero\\-padded hour of the day \\(0\\-23\\), and `MM` is the zero\\-padded minute of the hour\\. \nFor example, `1:05:00` specifies maintenance at 5 AM Monday\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WeeklyMaintenanceStartTime", "type": "string" } }, @@ -64748,18 +79565,26 @@ "additionalProperties": false, "properties": { "CopyTagsToSnapshots": { + "markdownDescription": "A Boolean value indicating whether tags for the volume should be copied to snapshots of the volume\\. This value defaults to `false`\\. If it's set to `true`, all tags for the volume are copied to snapshots where the user doesn't specify tags\\. If this value is `true` and you specify one or more tags, only the specified tags are copied to snapshots\\. If you specify one or more tags when creating the snapshot, no tags are copied from the volume, regardless of this value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CopyTagsToSnapshots", "type": "boolean" }, "DataCompressionType": { + "markdownDescription": "Specifies the method used to compress the data on the volume\\. The compression type is `NONE` by default\\. \n+ `NONE` \\- Doesn't compress the data on the volume\\. `NONE` is the default\\.\n+ `ZSTD` \\- Compresses the data in the volume using the Zstandard \\(ZSTD\\) compression algorithm\\. Compared to LZ4, Z\\-Standard provides a better compression ratio to minimize on\\-disk storage utilization\\.\n+ `LZ4` \\- Compresses the data in the volume using the LZ4 compression algorithm\\. Compared to Z\\-Standard, LZ4 is less compute\\-intensive and delivers higher write throughput speeds\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `LZ4 | NONE | ZSTD` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataCompressionType", "type": "string" }, "NfsExports": { "items": { "$ref": "#/definitions/AWS::FSx::FileSystem.NfsExports" }, + "markdownDescription": "The configuration object for mounting a file system\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-nfsexports.html) of [NfsExports](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-nfsexports.html) \n*Maximum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NfsExports", "type": "array" }, "ReadOnly": { + "markdownDescription": "A Boolean value indicating whether the volume is read\\-only\\. Setting this value to `true` can be useful after you have completed changes to a volume and no longer want changes to occur\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReadOnly", "type": "boolean" }, "RecordSizeKiB": { @@ -64769,6 +79594,8 @@ "items": { "$ref": "#/definitions/AWS::FSx::FileSystem.UserAndGroupQuotas" }, + "markdownDescription": "An object specifying how much storage users or groups can use on the volume\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-userandgroupquotas.html) of [UserAndGroupQuotas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-userandgroupquotas.html) \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserAndGroupQuotas", "type": "array" } }, @@ -64781,21 +79608,33 @@ "items": { "type": "string" }, + "markdownDescription": "A list of up to three IP addresses of DNS servers or domain controllers in the self\\-managed AD directory\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DnsIps", "type": "array" }, "DomainName": { + "markdownDescription": "The fully qualified domain name of the self\\-managed AD directory, such as `corp.example.com`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,255}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", "type": "string" }, "FileSystemAdministratorsGroup": { + "markdownDescription": "\\(Optional\\) The name of the domain group whose members are granted administrative privileges for the file system\\. Administrative privileges include taking ownership of files and folders, setting audit controls \\(audit ACLs\\) on files and folders, and administering the file system remotely by using the FSx Remote PowerShell\\. The group that you specify must already exist in your domain\\. If you don't provide one, your AD domain's Domain Admins group is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,256}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FileSystemAdministratorsGroup", "type": "string" }, "OrganizationalUnitDistinguishedName": { + "markdownDescription": "\\(Optional\\) The fully qualified distinguished name of the organizational unit within your self\\-managed AD directory\\. Amazon FSx only accepts OU as the direct parent of the file system\\. An example is `OU=FSx,DC=yourdomain,DC=corp,DC=com`\\. To learn more, see [RFC 2253](https://tools.ietf.org/html/rfc2253)\\. If none is provided, the FSx file system is created in the default location of your self\\-managed AD directory\\. \nOnly Organizational Unit \\(OU\\) objects can be the direct parent of the file system that you're creating\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2000` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,2000}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OrganizationalUnitDistinguishedName", "type": "string" }, "Password": { + "markdownDescription": "The password for the service account on your self\\-managed AD domain that Amazon FSx will use to join to your AD domain\\. We strongly suggest that you follow best practices and *do not* embed passwords in your CFN templates\\. \nThe recommended approach is to use AWS Secrets Manager to store your passwords\\. You can retrieve them for use in your templates using the `secretsmanager` dynamic reference\\. There are additional costs associated with using AWS Secrets Manager\\. To learn more, see [Secrets Manager secrets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) in the *AWS CloudFormation User Guide*\\. \nAlternatively, you can use the `NoEcho` property to obfuscate the password parameter value\\. For more information, see [Do Not Embed Credentials in Your Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#creds) in the *AWS CloudFormation User Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^.{1,256}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", "type": "string" }, "UserName": { + "markdownDescription": "The user name for the service account on your self\\-managed AD domain that Amazon FSx will use to join to your AD domain\\. This account must have the permission to join computers to the domain in the organizational unit provided in `OrganizationalUnitDistinguishedName`, or in the default location of your AD domain\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,256}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserName", "type": "string" } }, @@ -64805,12 +79644,18 @@ "additionalProperties": false, "properties": { "Id": { + "markdownDescription": "The ID of the user or group\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "number" }, "StorageCapacityQuotaGiB": { + "markdownDescription": "The amount of storage that the user or group can use in gibibytes \\(GiB\\)\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StorageCapacityQuotaGiB", "type": "number" }, "Type": { + "markdownDescription": "A value that specifies whether the quota applies to a user or group\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GROUP | USER` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -64820,39 +79665,61 @@ "additionalProperties": false, "properties": { "ActiveDirectoryId": { + "markdownDescription": "The ID for an existing AWS Managed Microsoft Active Directory \\(AD\\) instance that the file system should join when it's created\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^d-[0-9a-f]{10}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ActiveDirectoryId", "type": "string" }, "Aliases": { "items": { "type": "string" }, + "markdownDescription": "An array of one or more DNS alias names that you want to associate with the Amazon FSx file system\\. Aliases allow you to use existing DNS names to access the data in your Amazon FSx file system\\. You can associate up to 50 aliases with a file system at any time\\. \nFor more information, see [Working with DNS Aliases](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html) and [Walkthrough 5: Using DNS aliases to access your file system](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/walkthrough05-file-system-custom-CNAME.html), including additional steps you must take to be able to access your file system using a DNS alias\\. \nAn alias name has to meet the following requirements: \n+ Formatted as a fully\\-qualified domain name \\(FQDN\\), `hostname.domain`, for example, `accounting.example.com`\\.\n+ Can contain alphanumeric characters, the underscore \\(\\_\\), and the hyphen \\(\\-\\)\\.\n+ Cannot start or end with a hyphen\\.\n+ Can start with a numeric\\.\nFor DNS alias names, Amazon FSx stores alphabetical characters as lowercase letters \\(a\\-z\\), regardless of how you specify them: as uppercase letters, lowercase letters, or the corresponding letters in escape codes\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Aliases", "type": "array" }, "AuditLogConfiguration": { - "$ref": "#/definitions/AWS::FSx::FileSystem.AuditLogConfiguration" + "$ref": "#/definitions/AWS::FSx::FileSystem.AuditLogConfiguration", + "markdownDescription": "The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system\\. \n*Required*: No \n*Type*: [AuditLogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-auditlogconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuditLogConfiguration" }, "AutomaticBackupRetentionDays": { + "markdownDescription": "The number of days to retain automatic backups\\. The default is to retain backups for 7 days\\. Setting this value to 0 disables the creation of automatic backups\\. The maximum retention period for backups is 90 days\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `90` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutomaticBackupRetentionDays", "type": "number" }, "CopyTagsToBackups": { + "markdownDescription": "A Boolean flag indicating whether tags for the file system should be copied to backups\\. This value defaults to false\\. If it's set to true, all tags for the file system are copied to all automatic and user\\-initiated backups where the user doesn't specify tags\\. If this value is true, and you specify one or more tags, only the specified tags are copied to backups\\. If you specify one or more tags when creating a user\\-initiated backup, no tags are copied from the file system, regardless of this value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CopyTagsToBackups", "type": "boolean" }, "DailyAutomaticBackupStartTime": { + "markdownDescription": "The preferred time to take daily automatic backups, formatted HH:MM in the UTC time zone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DailyAutomaticBackupStartTime", "type": "string" }, "DeploymentType": { + "markdownDescription": "Specifies the file system deployment type, valid values are the following: \n+ `MULTI_AZ_1` \\- Deploys a high availability file system that is configured for Multi\\-AZ redundancy to tolerate temporary Availability Zone \\(AZ\\) unavailability\\. You can only deploy a Multi\\-AZ file system in AWS Regions that have a minimum of three Availability Zones\\. Also supports HDD storage type\n+ `SINGLE_AZ_1` \\- \\(Default\\) Choose to deploy a file system that is configured for single AZ redundancy\\.\n+ `SINGLE_AZ_2` \\- The latest generation Single AZ file system\\. Specifies a file system that is configured for single AZ redundancy and supports HDD storage type\\.\nFor more information, see [ Availability and Durability: Single\\-AZ and Multi\\-AZ File Systems](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `MULTI_AZ_1 | SINGLE_AZ_1 | SINGLE_AZ_2` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeploymentType", "type": "string" }, "PreferredSubnetId": { + "markdownDescription": "Required when `DeploymentType` is set to `MULTI_AZ_1`\\. This specifies the subnet in which you want the preferred file server to be located\\. For in\\-AWS applications, we recommend that you launch your clients in the same Availability Zone \\(AZ\\) as your preferred file server to reduce cross\\-AZ data transfer costs and minimize latency\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PreferredSubnetId", "type": "string" }, "SelfManagedActiveDirectoryConfiguration": { - "$ref": "#/definitions/AWS::FSx::FileSystem.SelfManagedActiveDirectoryConfiguration" + "$ref": "#/definitions/AWS::FSx::FileSystem.SelfManagedActiveDirectoryConfiguration", + "markdownDescription": "The configuration that Amazon FSx uses to join a FSx for Windows File Server file system or an ONTAP storage virtual machine \\(SVM\\) to a self\\-managed \\(including on\\-premises\\) Microsoft Active Directory \\(AD\\) directory\\. For more information, see [ Using Amazon FSx with your self\\-managed Microsoft Active Directory](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/self-managed-AD.html) or [Managing SVMs](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-svms.html)\\. \n*Required*: No \n*Type*: [SelfManagedActiveDirectoryConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-selfmanagedactivedirectoryconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SelfManagedActiveDirectoryConfiguration" }, "ThroughputCapacity": { + "markdownDescription": "Sets the throughput capacity of an Amazon FSx file system, measured in megabytes per second \\(MB/s\\), in 2 to the *n*th increments, between 2^3 \\(8\\) and 2^11 \\(2048\\)\\. \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `8` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThroughputCapacity", "type": "number" }, "WeeklyMaintenanceStartTime": { + "markdownDescription": "The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC time zone, where d is the weekday number, from 1 through 7, beginning with Monday and ending with Sunday\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WeeklyMaintenanceStartTime", "type": "string" } }, @@ -65351,25 +80218,39 @@ "items": { "type": "string" }, + "markdownDescription": "The list of Amazon Resource Names \\(ARN\\) of the data bundles to install\\. Currently supported data bundle ARNs: \n+ `arn:aws:finspace:${Region}::data-bundle/capital-markets-sample` \\- Contains sample Capital Markets datasets, categories and controlled vocabularies\\.\n+ `arn:aws:finspace:${Region}::data-bundle/taq` \\(default\\) \\- Contains trades and quotes data in addition to sample Capital Markets data\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataBundles", "type": "array" }, "Description": { + "markdownDescription": "The description of the FinSpace environment\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Pattern*: `^[a-zA-Z0-9. ]{1,1000}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "FederationMode": { + "markdownDescription": "The authentication mode for the environment\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `FEDERATED | LOCAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FederationMode", "type": "string" }, "FederationParameters": { - "$ref": "#/definitions/AWS::FinSpace::Environment.FederationParameters" + "$ref": "#/definitions/AWS::FinSpace::Environment.FederationParameters", + "markdownDescription": "Configuration information when authentication mode is FEDERATED\\. \n*Required*: No \n*Type*: [FederationParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-finspace-environment-federationparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FederationParameters" }, "KmsKeyId": { + "markdownDescription": "The KMS key id used to encrypt in the FinSpace environment\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Pattern*: `^[a-zA-Z-0-9-:\\/]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" }, "Name": { + "markdownDescription": "The name of the FinSpace environment\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9]+[a-zA-Z0-9-]*[a-zA-Z0-9]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "SuperuserParameters": { - "$ref": "#/definitions/AWS::FinSpace::Environment.SuperuserParameters" + "$ref": "#/definitions/AWS::FinSpace::Environment.SuperuserParameters", + "markdownDescription": "Configuration information for the superuser\\. \n*Required*: No \n*Type*: [SuperuserParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-finspace-environment-superuserparameters.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SuperuserParameters" } }, "required": [ @@ -65402,21 +80283,33 @@ "additionalProperties": false, "properties": { "ApplicationCallBackURL": { + "markdownDescription": "The redirect or sign\\-in URL that should be entered into the SAML 2\\.0 compliant identity provider configuration \\(IdP\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Pattern*: `^https?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationCallBackURL", "type": "string" }, "AttributeMap": { + "markdownDescription": "SAML attribute name and value\\. The name must always be `Email` and the value should be set to the attribute definition in which user email is set\\. For example, name would be `Email` and value `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`\\. Please check your SAML 2\\.0 compliant identity provider \\(IdP\\) documentation for details\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeMap", "type": "object" }, "FederationProviderName": { + "markdownDescription": "Name of the identity provider \\(IdP\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `[^_\\p{Z}][\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}][^_\\p{Z}]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FederationProviderName", "type": "string" }, "FederationURN": { + "markdownDescription": "The Uniform Resource Name \\(URN\\)\\. Also referred as Service Provider URN or Audience URI or Service Provider Entity ID\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[A-Za-z0-9._\\-:\\/#\\+]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FederationURN", "type": "string" }, "SamlMetadataDocument": { + "markdownDescription": "SAML 2\\.0 Metadata document from identity provider \\(IdP\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1000` \n*Maximum*: `10000000` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SamlMetadataDocument", "type": "string" }, "SamlMetadataURL": { + "markdownDescription": "Provide the metadata URL from your SAML 2\\.0 compliant identity provider \\(IdP\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Pattern*: `^https?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SamlMetadataURL", "type": "string" } }, @@ -65426,12 +80319,18 @@ "additionalProperties": false, "properties": { "EmailAddress": { + "markdownDescription": "The email address of the superuser\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+[.]+[A-Za-z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EmailAddress", "type": "string" }, "FirstName": { + "markdownDescription": "The first name of the superuser\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `^[a-zA-Z0-9]{1,50}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FirstName", "type": "string" }, "LastName": { + "markdownDescription": "The last name of the superuser\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `^[a-zA-Z0-9]{1,50}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LastName", "type": "string" } }, @@ -65473,27 +80372,41 @@ "additionalProperties": false, "properties": { "DataFrequency": { + "markdownDescription": "The frequency of data collection\\. This parameter is required for RELATED\\_TIME\\_SERIES datasets\\. \nValid intervals are Y \\(Year\\), M \\(Month\\), W \\(Week\\), D \\(Day\\), H \\(Hour\\), 30min \\(30 minutes\\), 15min \\(15 minutes\\), 10min \\(10 minutes\\), 5min \\(5 minutes\\), and 1min \\(1 minute\\)\\. For example, \"D\" indicates every day and \"15min\" indicates every 15 minutes\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `5` \n*Pattern*: `^Y|M|W|D|H|30min|15min|10min|5min|1min$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataFrequency", "type": "string" }, "DatasetName": { + "markdownDescription": "The name of the dataset\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatasetName", "type": "string" }, "DatasetType": { + "markdownDescription": "The dataset type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ITEM_METADATA | RELATED_TIME_SERIES | TARGET_TIME_SERIES` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetType", "type": "string" }, "Domain": { + "markdownDescription": "The domain associated with the dataset\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CUSTOM | EC2_CAPACITY | INVENTORY_PLANNING | METRICS | RETAIL | WEB_TRAFFIC | WORK_FORCE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Domain", "type": "string" }, "EncryptionConfig": { - "$ref": "#/definitions/AWS::Forecast::Dataset.EncryptionConfig" + "$ref": "#/definitions/AWS::Forecast::Dataset.EncryptionConfig", + "markdownDescription": "A Key Management Service \\(KMS\\) key and the Identity and Access Management \\(IAM\\) role that Amazon Forecast can assume to access the key\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionConfig" }, "Schema": { - "$ref": "#/definitions/AWS::Forecast::Dataset.Schema" + "$ref": "#/definitions/AWS::Forecast::Dataset.Schema", + "markdownDescription": "The schema for the dataset\\. The schema attributes and their order must match the fields in your data\\. The dataset `Domain` and `DatasetType` that you choose determine the minimum required fields in your training data\\. For information about the required fields for a specific dataset domain and type, see [Dataset Domains and Dataset Types](https://docs.aws.amazon.com/forecast/latest/dg/howitworks-domains-ds-types.html)\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schema" }, "Tags": { "items": { "$ref": "#/definitions/AWS::Forecast::Dataset.TagsItems" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -65617,18 +80530,26 @@ "items": { "type": "string" }, + "markdownDescription": "An array of Amazon Resource Names \\(ARNs\\) of the datasets that you want to include in the dataset group\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetArns", "type": "array" }, "DatasetGroupName": { + "markdownDescription": "The name of the dataset group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatasetGroupName", "type": "string" }, "Domain": { + "markdownDescription": "The domain associated with the dataset group\\. When you add a dataset to a dataset group, this value and the value specified for the `Domain` parameter of the [CreateDataset](https://docs.aws.amazon.com/forecast/latest/dg/API_CreateDataset.html) operation must match\\. \nThe `Domain` and `DatasetType` that you choose determine the fields that must be present in training data that you import to a dataset\\. For example, if you choose the `RETAIL` domain and `TARGET_TIME_SERIES` as the `DatasetType`, Amazon Forecast requires that `item_id`, `timestamp`, and `demand` fields are present in your data\\. For more information, see [Dataset groups](https://docs.aws.amazon.com/forecast/latest/dg/howitworks-datasets-groups.html)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CUSTOM | EC2_CAPACITY | INVENTORY_PLANNING | METRICS | RETAIL | WEB_TRAFFIC | WORK_FORCE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Domain", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -65698,33 +80619,49 @@ "items": { "$ref": "#/definitions/AWS::FraudDetector::Detector.Model" }, + "markdownDescription": "The models to associate with this detector\\. You must provide the ARNs of all the models you want to associate\\. \n*Required*: No \n*Type*: List of [Model](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-model.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociatedModels", "type": "array" }, "Description": { + "markdownDescription": "The detector description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DetectorId": { + "markdownDescription": "The name of the detector\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[0-9a-z_-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DetectorId", "type": "string" }, "DetectorVersionStatus": { + "markdownDescription": "The status of the detector version\\. If a value is not provided for this property, AWS CloudFormation assumes `DRAFT` status\\. \n Valid values: `ACTIVE | DRAFT` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DetectorVersionStatus", "type": "string" }, "EventType": { - "$ref": "#/definitions/AWS::FraudDetector::Detector.EventType" + "$ref": "#/definitions/AWS::FraudDetector::Detector.EventType", + "markdownDescription": "The event type associated with this detector\\. \n*Required*: Yes \n*Type*: [EventType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventType" }, "RuleExecutionMode": { + "markdownDescription": "The rule execution mode for the rules included in the detector version\\. \nValid values: `FIRST_MATCHED | ALL_MATCHED` Default value: `FIRST_MATCHED` \nYou can define and edit the rule mode at the detector version level, when it is in draft status\\. \nIf you specify `FIRST_MATCHED`, Amazon Fraud Detector evaluates rules sequentially, first to last, stopping at the first matched rule\\. Amazon Fraud dectector then provides the outcomes for that single rule\\. \nIf you specifiy `ALL_MATCHED`, Amazon Fraud Detector evaluates all rules and returns the outcomes for all matched rules\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleExecutionMode", "type": "string" }, "Rules": { "items": { "$ref": "#/definitions/AWS::FraudDetector::Detector.Rule" }, + "markdownDescription": "The rules to include in the detector version\\. \n*Required*: Yes \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -65760,27 +80697,41 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The entity type ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn\\:aws[a-z-]{0,15}\\:frauddetector\\:[a-z0-9-]{3,20}\\:[0-9]{12}\\:[^\\s]{2,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "CreatedTime": { + "markdownDescription": "Timestamp of when the entity type was created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedTime", "type": "string" }, "Description": { + "markdownDescription": "The entity type description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Inline": { + "markdownDescription": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::Detector` you must define at least two variables\\. You can set `Inline=true` for these Variables and CloudFormation will create/update/delete the variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your detector but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Inline", "type": "boolean" }, "LastUpdatedTime": { + "markdownDescription": "Timestamp of when the entity type was last updated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUpdatedTime", "type": "string" }, "Name": { + "markdownDescription": "The entity type name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -65790,45 +80741,65 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The entity type ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn\\:aws[a-z-]{0,15}\\:frauddetector\\:[a-z0-9-]{3,20}\\:[0-9]{12}\\:[^\\s]{2,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "CreatedTime": { + "markdownDescription": "Timestamp of when the event type was created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedTime", "type": "string" }, "Description": { + "markdownDescription": "The event type description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "EntityTypes": { "items": { "$ref": "#/definitions/AWS::FraudDetector::Detector.EntityType" }, + "markdownDescription": "The event type entity types\\. \n*Required*: No \n*Type*: List of [EntityType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-entitytype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntityTypes", "type": "array" }, "EventVariables": { "items": { "$ref": "#/definitions/AWS::FraudDetector::Detector.EventVariable" }, + "markdownDescription": "The event type event variables\\. \n*Required*: No \n*Type*: List of [EventVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventVariables", "type": "array" }, "Inline": { + "markdownDescription": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::Detector` you must define at least two variables\\. You can set `Inline=true` for these variables and CloudFormation will create/update/delete the Variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your detector but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Inline", "type": "boolean" }, "Labels": { "items": { "$ref": "#/definitions/AWS::FraudDetector::Detector.Label" }, + "markdownDescription": "The event type labels\\. \n*Required*: No \n*Type*: List of [Label](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-label.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Labels", "type": "array" }, "LastUpdatedTime": { + "markdownDescription": "Timestamp of when the event type was last updated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUpdatedTime", "type": "string" }, "Name": { + "markdownDescription": "The event type name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -65838,39 +80809,61 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The event variable ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "CreatedTime": { + "markdownDescription": "Timestamp for when the event variable was created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedTime", "type": "string" }, "DataSource": { + "markdownDescription": "The data source of the event variable\\. \nValid values: `EVENT | EXTERNAL_MODEL_SCORE` \nWhen defining a variable within a detector, you can only use the `EVENT` value for DataSource when the *Inline* property is set to true\\. If the *Inline* property is set false, you can use either `EVENT` or `MODEL_SCORE` for DataSource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSource", "type": "string" }, "DataType": { + "markdownDescription": "The data type of the event variable\\. \nValid values: `STRING | INTEGER | BOOLEAN | FLOAT` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataType", "type": "string" }, "DefaultValue": { + "markdownDescription": "The default value of the event variable\\. This is required if you are providing the details of your variables instead of the ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultValue", "type": "string" }, "Description": { + "markdownDescription": "The description of the event variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Inline": { + "markdownDescription": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::Detector` you must define at least two variables\\. You can set `Inline=true` for these variables and CloudFormation will create/update/delete the variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your detector but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Inline", "type": "boolean" }, "LastUpdatedTime": { + "markdownDescription": "Timestamp for when the event variable was last updated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUpdatedTime", "type": "string" }, "Name": { + "markdownDescription": "The name of the event variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VariableType": { + "markdownDescription": "The type of event variable\\. For more information, see [Variable types](https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VariableType", "type": "string" } }, @@ -65880,27 +80873,41 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The label ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn\\:aws[a-z-]{0,15}\\:frauddetector\\:[a-z0-9-]{3,20}\\:[0-9]{12}\\:[^\\s]{2,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "CreatedTime": { + "markdownDescription": "Timestamp of when the event type was created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedTime", "type": "string" }, "Description": { + "markdownDescription": "The label description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Inline": { + "markdownDescription": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::Detector` you must define at least two variables\\. You can set `Inline=true` for these variables and CloudFormation will create/update/delete the variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your detector but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Inline", "type": "boolean" }, "LastUpdatedTime": { + "markdownDescription": "Timestamp of when the label was last updated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUpdatedTime", "type": "string" }, "Name": { + "markdownDescription": "The label name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -65910,6 +80917,8 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The ARN of the model\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn\\:aws[a-z-]{0,15}\\:frauddetector\\:[a-z0-9-]{3,20}\\:[0-9]{12}\\:[^\\s]{2,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" } }, @@ -65919,27 +80928,41 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The outcome ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn\\:aws[a-z-]{0,15}\\:frauddetector\\:[a-z0-9-]{3,20}\\:[0-9]{12}\\:[^\\s]{2,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "CreatedTime": { + "markdownDescription": "The timestamp when the outcome was created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedTime", "type": "string" }, "Description": { + "markdownDescription": "The outcome description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Inline": { + "markdownDescription": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::Detector` you must define at least two variables\\. You can set `Inline=true` for these variables and CloudFormation will create/update/delete the variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your detector but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Inline", "type": "boolean" }, "LastUpdatedTime": { + "markdownDescription": "The timestamp when the outcome was last updated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUpdatedTime", "type": "string" }, "Name": { + "markdownDescription": "The outcome name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[0-9a-z_-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -65949,42 +80972,64 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The rule ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "CreatedTime": { + "markdownDescription": "Timestamp for when the rule was created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedTime", "type": "string" }, "Description": { + "markdownDescription": "The rule description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DetectorId": { + "markdownDescription": "The detector for which the rule is associated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[0-9a-z_-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DetectorId", "type": "string" }, "Expression": { + "markdownDescription": "The rule expression\\. A rule expression captures the business logic\\. For more information, see [Rule language reference](https://docs.aws.amazon.com/frauddetector/latest/ug/rule-language-reference.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Expression", "type": "string" }, "Language": { + "markdownDescription": "The rule language\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Language", "type": "string" }, "LastUpdatedTime": { + "markdownDescription": "Timestamp for when the rule was last updated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUpdatedTime", "type": "string" }, "Outcomes": { "items": { "$ref": "#/definitions/AWS::FraudDetector::Detector.Outcome" }, + "markdownDescription": "The rule outcome\\. \n*Required*: No \n*Type*: List of [Outcome](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-outcome.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Outcomes", "type": "array" }, "RuleId": { + "markdownDescription": "The rule ID\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[0-9a-z_-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleId", "type": "string" }, "RuleVersion": { + "markdownDescription": "The rule version\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `5` \n*Pattern*: `^([1-9][0-9]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleVersion", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -66026,15 +81071,21 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The entity type description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The entity type name\\. \nPattern: `^[0-9a-z_-]+$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A key and value pair\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -66100,33 +81151,45 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The event type description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "EntityTypes": { "items": { "$ref": "#/definitions/AWS::FraudDetector::EventType.EntityType" }, + "markdownDescription": "The event type entity types\\. \n*Required*: Yes \n*Type*: List of [EntityType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-entitytype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntityTypes", "type": "array" }, "EventVariables": { "items": { "$ref": "#/definitions/AWS::FraudDetector::EventType.EventVariable" }, + "markdownDescription": "The event type event variables\\. \n*Required*: Yes \n*Type*: List of [EventVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-eventvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventVariables", "type": "array" }, "Labels": { "items": { "$ref": "#/definitions/AWS::FraudDetector::EventType.Label" }, + "markdownDescription": "The event type labels\\. \n*Required*: Yes \n*Type*: List of [Label](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-label.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Labels", "type": "array" }, "Name": { + "markdownDescription": "The event type name\\. \nPattern : `^[0-9a-z_-]+$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -66163,27 +81226,41 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The entity type ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn\\:aws[a-z-]{0,15}\\:frauddetector\\:[a-z0-9-]{3,20}\\:[0-9]{12}\\:[^\\s]{2,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "CreatedTime": { + "markdownDescription": "Timestamp of when the entity type was created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedTime", "type": "string" }, "Description": { + "markdownDescription": "The entity type description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Inline": { + "markdownDescription": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::EventType` you must define at least two variables\\. You can set `Inline=true` for these variables and CloudFormation will create/update/delete the variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your event type but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Inline", "type": "boolean" }, "LastUpdatedTime": { + "markdownDescription": "Timestamp of when the entity type was last updated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUpdatedTime", "type": "string" }, "Name": { + "markdownDescription": "The entity type name\\. \n`^[0-9a-z_-]+$` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -66193,39 +81270,61 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The event variable ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "CreatedTime": { + "markdownDescription": "Timestamp for when event variable was created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedTime", "type": "string" }, "DataSource": { + "markdownDescription": "The source of the event variable\\. \nValid values: `EVENT | EXTERNAL_MODEL_SCORE` \nWhen defining a variable within a event type, you can only use the `EVENT` value for DataSource when the *Inline* property is set to true\\. If the *Inline* property is set false, you can use either `EVENT` or `MODEL_SCORE` for DataSource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSource", "type": "string" }, "DataType": { + "markdownDescription": "The data type of the event variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataType", "type": "string" }, "DefaultValue": { + "markdownDescription": "The default value of the event variable \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultValue", "type": "string" }, "Description": { + "markdownDescription": "The event variable description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Inline": { + "markdownDescription": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::EventType` you must define at least two variables\\. You can set `Inline=true` for these variables and CloudFormation will create/update/delete the Variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your event type but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Inline", "type": "boolean" }, "LastUpdatedTime": { + "markdownDescription": "Timestamp for when the event variable was last updated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUpdatedTime", "type": "string" }, "Name": { + "markdownDescription": "The name of the event variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VariableType": { + "markdownDescription": "The type of event variable\\. For more information, see [Variable types](https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VariableType", "type": "string" } }, @@ -66235,27 +81334,41 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The label ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn\\:aws[a-z-]{0,15}\\:frauddetector\\:[a-z0-9-]{3,20}\\:[0-9]{12}\\:[^\\s]{2,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "CreatedTime": { + "markdownDescription": "Timestamp of when the event type was created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedTime", "type": "string" }, "Description": { + "markdownDescription": "The label description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Inline": { + "markdownDescription": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::EventType` you must define at least two variables\\. You can set `Inline=true` for these variables and CloudFormation will create/update/delete the variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your EventType but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Inline", "type": "boolean" }, "LastUpdatedTime": { + "markdownDescription": "Timestamp of when the label was last updated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUpdatedTime", "type": "string" }, "Name": { + "markdownDescription": "The label name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -66297,15 +81410,21 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The label description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The label name\\. \nPattern: `^[0-9a-z_-]+$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -66371,15 +81490,21 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The outcome description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The outcome name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[0-9a-z_-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -66445,27 +81570,41 @@ "additionalProperties": false, "properties": { "DataSource": { + "markdownDescription": "The data source of the variable\\. \nValid values: `EVENT | EXTERNAL_MODEL_SCORE` \nWhen defining a variable within a detector, you can only use the `EVENT` value for DataSource when the *Inline* property is set to true\\. If the *Inline* property is set false, you can use either `EVENT` or `MODEL_SCORE` for DataSource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSource", "type": "string" }, "DataType": { + "markdownDescription": "The data type of the variable\\. \nValid data types: `STRING | INTEGER | BOOLEAN | FLOAT` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataType", "type": "string" }, "DefaultValue": { + "markdownDescription": "The default value of the variable\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultValue", "type": "string" }, "Description": { + "markdownDescription": "The description of the variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name of the variable\\. \nPattern: `^[0-9a-z_-]+$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VariableType": { + "markdownDescription": "The type of the variable\\. For more information see [Variable types](https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types)\\. \nValid Values: `AUTH_CODE | AVS | BILLING_ADDRESS_L1 | BILLING_ADDRESS_L2 | BILLING_CITY | BILLING_COUNTRY | BILLING_NAME | BILLING_PHONE | BILLING_STATE | BILLING_ZIP | CARD_BIN | CATEGORICAL | CURRENCY_CODE | EMAIL_ADDRESS | FINGERPRINT | FRAUD_LABEL | FREE_FORM_TEXT | IP_ADDRESS | NUMERIC | ORDER_ID | PAYMENT_TYPE | PHONE_NUMBER | PRICE | PRODUCT_CATEGORY | SHIPPING_ADDRESS_L1 | SHIPPING_ADDRESS_L2 | SHIPPING_CITY | SHIPPING_COUNTRY | SHIPPING_NAME | SHIPPING_PHONE | SHIPPING_STATE | SHIPPING_ZIP | USERAGENT ` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VariableType", "type": "string" } }, @@ -66534,13 +81673,19 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A human\\-readable description of the alias\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "A descriptive label that is associated with an alias\\. Alias names do not need to be unique\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "RoutingStrategy": { - "$ref": "#/definitions/AWS::GameLift::Alias.RoutingStrategy" + "$ref": "#/definitions/AWS::GameLift::Alias.RoutingStrategy", + "markdownDescription": "The routing configuration, including routing type and fleet target, for the alias\\. \n*Required*: Yes \n*Type*: [RoutingStrategy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-alias-routingstrategy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoutingStrategy" } }, "required": [ @@ -66574,12 +81719,18 @@ "additionalProperties": false, "properties": { "FleetId": { + "markdownDescription": "A unique identifier for a fleet that the alias points to\\. If you specify `SIMPLE` for the `Type` property, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Pattern*: `^fleet-\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FleetId", "type": "string" }, "Message": { + "markdownDescription": "The message text to be used with a terminal routing strategy\\. If you specify `TERMINAL` for the `Type` property, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Message", "type": "string" }, "Type": { + "markdownDescription": "A type of routing strategy\\. \nPossible routing types include the following: \n+ **SIMPLE** \\- The alias resolves to one specific fleet\\. Use this type when routing to active fleets\\.\n+ **TERMINAL** \\- The alias does not resolve to a fleet but instead can be used to display a message to the user\\. A terminal alias throws a `TerminalRoutingStrategyException` with the message that you specified in the `Message` property\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `SIMPLE | TERMINAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -66624,15 +81775,23 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "A descriptive label that is associated with a build\\. Build names do not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "OperatingSystem": { + "markdownDescription": "The operating system that the game server binaries are built to run on\\. This value determines the type of fleet resources that you can use for this build\\. If your game build contains multiple executables, they all must run on the same operating system\\. If an operating system is not specified when creating a build, Amazon GameLift uses the default value \\(WINDOWS\\_2012\\)\\. This value cannot be changed later\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AMAZON_LINUX | AMAZON_LINUX_2 | WINDOWS_2012` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OperatingSystem", "type": "string" }, "StorageLocation": { - "$ref": "#/definitions/AWS::GameLift::Build.StorageLocation" + "$ref": "#/definitions/AWS::GameLift::Build.StorageLocation", + "markdownDescription": "Information indicating where your game build files are stored\\. Use this parameter only when creating a build with files stored in an Amazon S3 bucket that you own\\. The storage location must specify an Amazon S3 bucket name and key\\. The location must also specify a role ARN that you set up to allow Amazon Web Services to access your Amazon S3 bucket\\. The S3 bucket and your new build must be in the same Region\\. \nIf a `StorageLocation` is specified, the size of your file can be found in your Amazon S3 bucket\\. Amazon Web Services will report a `SizeOnDisk` of 0\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-build-storagelocation.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StorageLocation" }, "Version": { + "markdownDescription": "Version information that is associated with this build\\. Version strings do not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -66720,72 +81879,110 @@ "$ref": "#/definitions/AWS::GameLift::Fleet.AnywhereConfiguration" }, "BuildId": { + "markdownDescription": "A unique identifier for a build to be deployed on the new fleet\\. If you are deploying the fleet with a custom game build, you must specify this property\\. The build must have been successfully uploaded to Amazon GameLift and be in a `READY` status\\. This fleet setting cannot be changed once the fleet is created\\. \n*Required*: Conditional \n*Type*: String \n*Pattern*: `^build-\\S+|^arn:.*:build\\/build-\\S+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BuildId", "type": "string" }, "CertificateConfiguration": { - "$ref": "#/definitions/AWS::GameLift::Fleet.CertificateConfiguration" + "$ref": "#/definitions/AWS::GameLift::Fleet.CertificateConfiguration", + "markdownDescription": "Prompts GameLift to generate a TLS/SSL certificate for the fleet\\. TLS certificates are used for encrypting traffic between game clients and the game servers that are running on GameLift\\. By default, the `CertificateConfiguration` is set to `DISABLED`\\. This property cannot be changed after the fleet is created\\. \nNote: This feature requires the AWS Certificate Manager \\(ACM\\) service, which is not available in all AWS regions\\. When working in a region that does not support this feature, a fleet creation request with certificate generation fails with a 4xx error\\. \n*Required*: No \n*Type*: [CertificateConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-certificateconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateConfiguration" }, "ComputeType": { "type": "string" }, "Description": { + "markdownDescription": "A human\\-readable description of the fleet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DesiredEC2Instances": { + "markdownDescription": "The number of EC2 instances that you want this fleet to host\\. When creating a new fleet, GameLift automatically sets this value to \"1\" and initiates a single instance\\. Once the fleet is active, update this value to trigger GameLift to add or remove instances from the fleet\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DesiredEC2Instances", "type": "number" }, "EC2InboundPermissions": { "items": { "$ref": "#/definitions/AWS::GameLift::Fleet.IpPermission" }, + "markdownDescription": "The allowed IP address ranges and port settings that allow inbound traffic to access game sessions on this fleet\\. If the fleet is hosting a custom game build, this property must be set before players can connect to game sessions\\. For Realtime Servers fleets, GameLift automatically sets TCP and UDP ranges\\. \n*Required*: No \n*Type*: List of [IpPermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-ippermission.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EC2InboundPermissions", "type": "array" }, "EC2InstanceType": { + "markdownDescription": "The GameLift\\-supported Amazon EC2 instance type to use for all fleet instances\\. Instance type determines the computing resources that will be used to host your game servers, including CPU, memory, storage, and networking capacity\\. See [Amazon Elastic Compute Cloud Instance Types](http://aws.amazon.com/ec2/instance-types/) for detailed descriptions of Amazon EC2 instance types\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | t2.large | t2.medium | t2.micro | t2.small` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EC2InstanceType", "type": "string" }, "FleetType": { + "markdownDescription": "Indicates whether to use On\\-Demand or Spot instances for this fleet\\. By default, this property is set to `ON_DEMAND`\\. Learn more about when to use [ On\\-Demand versus Spot Instances](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-ec2-instances.html#gamelift-ec2-instances-spot)\\. This property cannot be changed after the fleet is created\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ON_DEMAND | SPOT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FleetType", "type": "string" }, "InstanceRoleARN": { + "markdownDescription": "A unique identifier for an IAM role that manages access to your AWS services\\. With an instance role ARN set, any application that runs on an instance in this fleet can assume the role, including install scripts, server processes, and daemons \\(background processes\\)\\. Create a role or look up a role's ARN by using the [IAM dashboard](https://console.aws.amazon.com/iam/) in the AWS Management Console\\. Learn more about using on\\-box credentials for your game servers at [ Access external resources from a game server](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html)\\. This property cannot be changed after the fleet is created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceRoleARN", "type": "string" }, "Locations": { "items": { "$ref": "#/definitions/AWS::GameLift::Fleet.LocationConfiguration" }, + "markdownDescription": "A set of remote locations to deploy additional instances to and manage as part of the fleet\\. This parameter can only be used when creating fleets in AWS Regions that support multiple locations\\. You can add any GameLift\\-supported AWS Region as a remote location, in the form of an AWS Region code such as `us-west-2`\\. To create a fleet with instances in the home Region only, omit this parameter\\. \n*Required*: No \n*Type*: List of [LocationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationconfiguration.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Locations", "type": "array" }, "MaxSize": { + "markdownDescription": "The maximum number of instances that are allowed in the specified fleet location\\. If this parameter is not set, the default is 1\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxSize", "type": "number" }, "MetricGroups": { "items": { "type": "string" }, + "markdownDescription": "The name of an AWS CloudWatch metric group to add this fleet to\\. A metric group is used to aggregate the metrics for multiple fleets\\. You can specify an existing metric group name or set a new name to create a new metric group\\. A fleet can be included in only one metric group at a time\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricGroups", "type": "array" }, "MinSize": { + "markdownDescription": "The minimum number of instances that are allowed in the specified fleet location\\. If this parameter is not set, the default is 0\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinSize", "type": "number" }, "Name": { + "markdownDescription": "A descriptive label that is associated with a fleet\\. Fleet names do not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "NewGameSessionProtectionPolicy": { + "markdownDescription": "The status of termination protection for active game sessions on the fleet\\. By default, this property is set to `NoProtection`\\. \n+ **NoProtection** \\- Game sessions can be terminated during active gameplay as a result of a scale\\-down event\\. \n+ **FullProtection** \\- Game sessions in `ACTIVE` status cannot be terminated during a scale\\-down event\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `FullProtection | NoProtection` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NewGameSessionProtectionPolicy", "type": "string" }, "PeerVpcAwsAccountId": { + "markdownDescription": "Used when peering your GameLift fleet with a VPC, the unique identifier for the AWS account that owns the VPC\\. You can find your account ID in the AWS Management Console under account settings\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PeerVpcAwsAccountId", "type": "string" }, "PeerVpcId": { + "markdownDescription": "A unique identifier for a VPC with resources to be accessed by your GameLift fleet\\. The VPC must be in the same Region as your fleet\\. To look up a VPC ID, use the [VPC Dashboard](https://console.aws.amazon.com/vpc/) in the AWS Management Console\\. Learn more about VPC peering in [VPC Peering with GameLift Fleets](https://docs.aws.amazon.com/gamelift/latest/developerguide/vpc-peering.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PeerVpcId", "type": "string" }, "ResourceCreationLimitPolicy": { - "$ref": "#/definitions/AWS::GameLift::Fleet.ResourceCreationLimitPolicy" + "$ref": "#/definitions/AWS::GameLift::Fleet.ResourceCreationLimitPolicy", + "markdownDescription": "A policy that limits the number of game sessions that an individual player can create on instances in this fleet within a specified span of time\\. \n*Required*: No \n*Type*: [ResourceCreationLimitPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-resourcecreationlimitpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceCreationLimitPolicy" }, "RuntimeConfiguration": { - "$ref": "#/definitions/AWS::GameLift::Fleet.RuntimeConfiguration" + "$ref": "#/definitions/AWS::GameLift::Fleet.RuntimeConfiguration", + "markdownDescription": "Instructions for how to launch and maintain server processes on instances in the fleet\\. The runtime configuration defines one or more server process configurations, each identifying a build executable or Realtime script file and the number of processes of that type to run concurrently\\. \nThe `RuntimeConfiguration` parameter is required unless the fleet is being configured using the older parameters `ServerLaunchPath` and `ServerLaunchParameters`, which are still supported for backward compatibility\\.\n*Required*: Conditional \n*Type*: [RuntimeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-runtimeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuntimeConfiguration" }, "ScriptId": { + "markdownDescription": "The unique identifier for a Realtime configuration script to be deployed on fleet instances\\. You can use either the script ID or ARN\\. Scripts must be uploaded to GameLift prior to creating the fleet\\. This fleet property cannot be changed later\\. \nYou can't use the `!Ref` command to reference a script created with a CloudFormation template for the fleet property `ScriptId`\\. Instead, use `Fn::GetAtt Script.Arn` or `Fn::GetAtt Script.Id` to retrieve either of these properties as input for `ScriptId`\\. Alternatively, enter a `ScriptId` string manually\\.\n*Required*: Conditional \n*Type*: String \n*Pattern*: `^script-\\S+|^arn:.*:script\\/script-\\S+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScriptId", "type": "string" } }, @@ -66831,6 +82028,8 @@ "additionalProperties": false, "properties": { "CertificateType": { + "markdownDescription": "Indicates whether a TLS/SSL certificate is generated for a fleet\\. \nValid values include: \n+ **GENERATED** \\- Generate a TLS/SSL certificate for this fleet\\.\n+ **DISABLED** \\- \\(default\\) Do not generate a TLS/SSL certificate for this fleet\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | GENERATED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateType", "type": "string" } }, @@ -66843,15 +82042,23 @@ "additionalProperties": false, "properties": { "FromPort": { + "markdownDescription": "A starting value for a range of allowed port numbers\\. \nFor fleets using Windows and Linux builds, only ports 1026\\-60000 are valid\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `60000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FromPort", "type": "number" }, "IpRange": { + "markdownDescription": "A range of allowed IP addresses\\. This value must be expressed in CIDR notation\\. Example: \"`000.000.000.000/[subnet mask]`\" or optionally the shortened version \"`0.0.0.0/[subnet mask]`\"\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[^\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IpRange", "type": "string" }, "Protocol": { + "markdownDescription": "The network communication protocol used by the fleet\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `TCP | UDP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "string" }, "ToPort": { + "markdownDescription": "An ending value for a range of allowed port numbers\\. Port numbers are end\\-inclusive\\. This value must be higher than `FromPort`\\. \nFor fleets using Windows and Linux builds, only ports 1026\\-60000 are valid\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `60000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ToPort", "type": "number" } }, @@ -66867,12 +82074,18 @@ "additionalProperties": false, "properties": { "DesiredEC2Instances": { + "markdownDescription": "The number of Amazon EC2 instances you want to maintain in the specified fleet location\\. This value must fall between the minimum and maximum size limits\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DesiredEC2Instances", "type": "number" }, "MaxSize": { + "markdownDescription": "The maximum number of instances that are allowed in the specified fleet location\\. If this parameter is not set, the default is 1\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxSize", "type": "number" }, "MinSize": { + "markdownDescription": "The minimum number of instances that are allowed in the specified fleet location\\. If this parameter is not set, the default is 0\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinSize", "type": "number" } }, @@ -66887,10 +82100,14 @@ "additionalProperties": false, "properties": { "Location": { + "markdownDescription": "An AWS Region code, such as `us-west-2`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-z]+(-([a-z]+|\\d))*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", "type": "string" }, "LocationCapacity": { - "$ref": "#/definitions/AWS::GameLift::Fleet.LocationCapacity" + "$ref": "#/definitions/AWS::GameLift::Fleet.LocationCapacity", + "markdownDescription": "Current resource capacity settings in a specified fleet or location\\. The location value might refer to a fleet's remote location or its home Region\\. \n **Related actions** \n [DescribeFleetCapacity](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetCapacity.html) \\| [DescribeFleetLocationCapacity](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html) \\| [UpdateFleetCapacity](https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateFleetCapacity.html) \n*Required*: No \n*Type*: [LocationCapacity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationcapacity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocationCapacity" } }, "required": [ @@ -66902,9 +82119,13 @@ "additionalProperties": false, "properties": { "NewGameSessionsPerCreator": { + "markdownDescription": "The maximum number of game sessions that an individual can create during the policy period\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NewGameSessionsPerCreator", "type": "number" }, "PolicyPeriodInMinutes": { + "markdownDescription": "The time span used in evaluating the resource creation limit policy\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyPeriodInMinutes", "type": "number" } }, @@ -66914,15 +82135,21 @@ "additionalProperties": false, "properties": { "GameSessionActivationTimeoutSeconds": { + "markdownDescription": "The maximum amount of time \\(in seconds\\) allowed to launch a new game session and have it report ready to host players\\. During this time, the game session is in status `ACTIVATING`\\. If the game session does not become active before the timeout, it is ended and the game session status is changed to `TERMINATED`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GameSessionActivationTimeoutSeconds", "type": "number" }, "MaxConcurrentGameSessionActivations": { + "markdownDescription": "The number of game sessions in status `ACTIVATING` to allow on an instance\\. This setting limits the instance resources that can be used for new game activations at any one time\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxConcurrentGameSessionActivations", "type": "number" }, "ServerProcesses": { "items": { "$ref": "#/definitions/AWS::GameLift::Fleet.ServerProcess" }, + "markdownDescription": "A collection of server process configurations that identify what server processes to run on each instance in a fleet\\. \n*Required*: No \n*Type*: List of [ServerProcess](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-serverprocess.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerProcesses", "type": "array" } }, @@ -66932,12 +82159,18 @@ "additionalProperties": false, "properties": { "ConcurrentExecutions": { + "markdownDescription": "The number of server processes using this configuration that run concurrently on each instance\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConcurrentExecutions", "type": "number" }, "LaunchPath": { + "markdownDescription": "The location of a game build executable or the Realtime script file that contains the `Init()` function\\. Game builds and Realtime scripts are installed on instances at the root: \n+ Windows \\(custom game builds only\\): `C:\\game`\\. Example: \"`C:\\game\\MyGame\\server.exe`\" \n+ Linux: `/local/game`\\. Examples: \"`/local/game/MyGame/server.exe`\" or \"`/local/game/MyRealtimeScript.js`\"\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[A-Za-z0-9_:.+\\/\\\\\\- ]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchPath", "type": "string" }, "Parameters": { + "markdownDescription": "An optional list of parameters to pass to the server executable or Realtime script on launch\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[A-Za-z0-9_:.+\\/\\\\\\- =@;{},?'\\[\\]\"]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "string" } }, @@ -66983,48 +82216,72 @@ "additionalProperties": false, "properties": { "AutoScalingPolicy": { - "$ref": "#/definitions/AWS::GameLift::GameServerGroup.AutoScalingPolicy" + "$ref": "#/definitions/AWS::GameLift::GameServerGroup.AutoScalingPolicy", + "markdownDescription": "Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting\\. The scaling policy uses the metric `\"PercentUtilizedGameServers\"` to maintain a buffer of idle game servers that can immediately accommodate new games and players\\. After the Auto Scaling group is created, update this value directly in the Auto Scaling group using the AWS console or APIs\\. \n*Required*: No \n*Type*: [AutoScalingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-autoscalingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoScalingPolicy" }, "BalancingStrategy": { + "markdownDescription": "Indicates how GameLift FleetIQ balances the use of Spot Instances and On\\-Demand Instances in the game server group\\. Method options include the following: \n+ `SPOT_ONLY` \\- Only Spot Instances are used in the game server group\\. If Spot Instances are unavailable or not viable for game hosting, the game server group provides no hosting capacity until Spot Instances can again be used\\. Until then, no new instances are started, and the existing nonviable Spot Instances are terminated \\(after current gameplay ends\\) and are not replaced\\.\n+ `SPOT_PREFERRED` \\- \\(default value\\) Spot Instances are used whenever available in the game server group\\. If Spot Instances are unavailable, the game server group continues to provide hosting capacity by falling back to On\\-Demand Instances\\. Existing nonviable Spot Instances are terminated \\(after current gameplay ends\\) and are replaced with new On\\-Demand Instances\\.\n+ `ON_DEMAND_ONLY` \\- Only On\\-Demand Instances are used in the game server group\\. No Spot Instances are used, even when available, while this balancing strategy is in force\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ON_DEMAND_ONLY | SPOT_ONLY | SPOT_PREFERRED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BalancingStrategy", "type": "string" }, "DeleteOption": { + "markdownDescription": "The type of delete to perform\\. To delete a game server group, specify the `DeleteOption`\\. Options include the following: \n+ `SAFE_DELETE` \u2013 \\(default\\) Terminates the game server group and Amazon EC2 Auto Scaling group only when it has no game servers that are in `UTILIZED` status\\.\n+ `FORCE_DELETE` \u2013 Terminates the game server group, including all active game servers regardless of their utilization status, and the Amazon EC2 Auto Scaling group\\. \n+ `RETAIN` \u2013 Does a safe delete of the game server group but retains the Amazon EC2 Auto Scaling group as is\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `FORCE_DELETE | RETAIN | SAFE_DELETE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteOption", "type": "string" }, "GameServerGroupName": { + "markdownDescription": "A developer\\-defined identifier for the game server group\\. The name is unique for each Region in each AWS account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9-\\.]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GameServerGroupName", "type": "string" }, "GameServerProtectionPolicy": { + "markdownDescription": "A flag that indicates whether instances in the game server group are protected from early termination\\. Unprotected instances that have active game servers running might be terminated during a scale\\-down event, causing players to be dropped from the game\\. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion \\(see \\)\\. An exception to this is with Spot Instances, which can be terminated by AWS regardless of protection status\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `FULL_PROTECTION | NO_PROTECTION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GameServerProtectionPolicy", "type": "string" }, "InstanceDefinitions": { "items": { "$ref": "#/definitions/AWS::GameLift::GameServerGroup.InstanceDefinition" }, + "markdownDescription": "The set of Amazon EC2 instance types that GameLift FleetIQ can use when balancing and automatically scaling instances in the corresponding Auto Scaling group\\. \n*Required*: Yes \n*Type*: List of [InstanceDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-instancedefinition.html) \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceDefinitions", "type": "array" }, "LaunchTemplate": { - "$ref": "#/definitions/AWS::GameLift::GameServerGroup.LaunchTemplate" + "$ref": "#/definitions/AWS::GameLift::GameServerGroup.LaunchTemplate", + "markdownDescription": "The Amazon EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group\\. You can specify the template using either the template name or ID\\. For help with creating a launch template, see [Creating a Launch Template for an Auto Scaling Group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html) in the *Amazon Elastic Compute Cloud Auto Scaling User Guide*\\. After the Auto Scaling group is created, update this value directly in the Auto Scaling group using the AWS console or APIs\\. \nIf you specify network interfaces in your launch template, you must explicitly set the property `AssociatePublicIpAddress` to \"true\"\\. If no network interface is specified in the launch template, GameLift FleetIQ uses your account's default VPC\\.\n*Required*: Yes \n*Type*: [LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-launchtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplate" }, "MaxSize": { + "markdownDescription": "The maximum number of instances allowed in the Amazon EC2 Auto Scaling group\\. During automatic scaling events, GameLift FleetIQ and EC2 do not scale up the group above this maximum\\. After the Auto Scaling group is created, update this value directly in the Auto Scaling group using the AWS console or APIs\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxSize", "type": "number" }, "MinSize": { + "markdownDescription": "The minimum number of instances allowed in the Amazon EC2 Auto Scaling group\\. During automatic scaling events, GameLift FleetIQ and Amazon EC2 do not scale down the group below this minimum\\. In production, this value should be set to at least 1\\. After the Auto Scaling group is created, update this value directly in the Auto Scaling group using the AWS console or APIs\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinSize", "type": "number" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\([ARN](https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html)\\) for an IAM role that allows Amazon Web Services to access your Amazon EC2 Auto Scaling groups\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn:.*:role\\/[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of labels to assign to the new game server group resource\\. Tags are developer\\-defined key\\-value pairs\\. Tagging AWS resources is useful for resource management, access management, and cost allocation\\. For more information, see [ Tagging AWS Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the * AWS General Reference*\\. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags, respectively\\. The maximum tag limit may be lower than stated\\. See the AWS General Reference for actual tagging limits\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VpcSubnets": { "items": { "type": "string" }, + "markdownDescription": "A list of virtual private cloud \\(VPC\\) subnets to use with instances in the game server group\\. By default, all GameLift FleetIQ\\-supported Availability Zones are used\\. You can use this parameter to specify VPCs that you've set up\\. This property cannot be updated after the game server group is created, and the corresponding Auto Scaling group will always use the property value that is set with this request, even if the Auto Scaling group is updated directly\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSubnets", "type": "array" } }, @@ -67061,10 +82318,14 @@ "additionalProperties": false, "properties": { "EstimatedInstanceWarmup": { + "markdownDescription": "Length of time, in seconds, it takes for a new instance to start new game server processes and register with GameLift FleetIQ\\. Specifying a warm\\-up time can be useful, particularly with game servers that take a long time to start up, because it avoids prematurely starting new instances\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EstimatedInstanceWarmup", "type": "number" }, "TargetTrackingConfiguration": { - "$ref": "#/definitions/AWS::GameLift::GameServerGroup.TargetTrackingConfiguration" + "$ref": "#/definitions/AWS::GameLift::GameServerGroup.TargetTrackingConfiguration", + "markdownDescription": "Settings for a target\\-based scaling policy applied to Auto Scaling group\\. These settings are used to create a target\\-based policy that tracks the GameLift FleetIQ metric `PercentUtilizedGameServers` and specifies a target value for the metric\\. As player usage changes, the policy triggers to adjust the game server group capacity so that the metric returns to the target value\\. \n*Required*: Yes \n*Type*: [TargetTrackingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-targettrackingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetTrackingConfiguration" } }, "required": [ @@ -67076,9 +82337,13 @@ "additionalProperties": false, "properties": { "InstanceType": { + "markdownDescription": "An Amazon EC2 instance type designation\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.xlarge | m4.10xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.xlarge` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", "type": "string" }, "WeightedCapacity": { + "markdownDescription": "Instance weighting that indicates how much this instance type contributes to the total capacity of a game server group\\. Instance weights are used by GameLift FleetIQ to calculate the instance type's cost per unit hour and better identify the most cost\\-effective options\\. For detailed information on weighting instance capacity, see [Instance Weighting](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-weighting.html) in the *Amazon Elastic Compute Cloud Auto Scaling User Guide*\\. Default value is \"1\"\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `3` \n*Pattern*: `^[\\u0031-\\u0039][\\u0030-\\u0039]{0,2}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WeightedCapacity", "type": "string" } }, @@ -67091,12 +82356,18 @@ "additionalProperties": false, "properties": { "LaunchTemplateId": { + "markdownDescription": "A unique identifier for an existing Amazon EC2 launch template\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplateId", "type": "string" }, "LaunchTemplateName": { + "markdownDescription": "A readable identifier for an existing Amazon EC2 launch template\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9\\(\\)\\.\\-/_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplateName", "type": "string" }, "Version": { + "markdownDescription": "The version of the Amazon EC2 launch template to use\\. If no version is specified, the default version will be used\\. With Amazon EC2, you can specify a default version for a launch template\\. If none is set, the default is the first version created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -67106,6 +82377,8 @@ "additionalProperties": false, "properties": { "TargetValue": { + "markdownDescription": "Desired value to use with a game server group target\\-based scaling policy\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetValue", "type": "number" } }, @@ -67150,39 +82423,57 @@ "additionalProperties": false, "properties": { "CustomEventData": { + "markdownDescription": "Information to be added to all events that are related to this game session queue\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomEventData", "type": "string" }, "Destinations": { "items": { "$ref": "#/definitions/AWS::GameLift::GameSessionQueue.Destination" }, + "markdownDescription": "A list of fleets and/or fleet aliases that can be used to fulfill game session placement requests in the queue\\. Destinations are identified by either a fleet ARN or a fleet alias ARN, and are listed in order of placement preference\\. \n*Required*: No \n*Type*: List of [Destination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-destination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destinations", "type": "array" }, "FilterConfiguration": { - "$ref": "#/definitions/AWS::GameLift::GameSessionQueue.FilterConfiguration" + "$ref": "#/definitions/AWS::GameLift::GameSessionQueue.FilterConfiguration", + "markdownDescription": "A list of locations where a queue is allowed to place new game sessions\\. Locations are specified in the form of AWS Region codes, such as `us-west-2`\\. If this parameter is not set, game sessions can be placed in any queue location\\. \n*Required*: No \n*Type*: [FilterConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-filterconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterConfiguration" }, "Name": { + "markdownDescription": "A descriptive label that is associated with game session queue\\. Queue names must be unique within each Region\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "NotificationTarget": { + "markdownDescription": "An SNS topic ARN that is set up to receive game session placement notifications\\. See [ Setting up notifications for game session placement](https://docs.aws.amazon.com/gamelift/latest/developerguide/queue-notification.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `300` \n*Pattern*: `[a-zA-Z0-9:_-]*(\\.fifo)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationTarget", "type": "string" }, "PlayerLatencyPolicies": { "items": { "$ref": "#/definitions/AWS::GameLift::GameSessionQueue.PlayerLatencyPolicy" }, + "markdownDescription": "A set of policies that act as a sliding cap on player latency\\. FleetIQ works to deliver low latency for most players in a game session\\. These policies ensure that no individual player can be placed into a game with unreasonably high latency\\. Use multiple policies to gradually relax latency requirements a step at a time\\. Multiple policies are applied based on their maximum allowed latency, starting with the lowest value\\. \n*Required*: No \n*Type*: List of [PlayerLatencyPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-playerlatencypolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlayerLatencyPolicies", "type": "array" }, "PriorityConfiguration": { - "$ref": "#/definitions/AWS::GameLift::GameSessionQueue.PriorityConfiguration" + "$ref": "#/definitions/AWS::GameLift::GameSessionQueue.PriorityConfiguration", + "markdownDescription": "Custom settings to use when prioritizing destinations and locations for game session placements\\. This configuration replaces the FleetIQ default prioritization process\\. Priority types that are not explicitly named will be automatically applied at the end of the prioritization process\\. \n*Required*: No \n*Type*: [PriorityConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-priorityconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PriorityConfiguration" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of labels to assign to the new game session queue resource\\. Tags are developer\\-defined key\\-value pairs\\. Tagging AWS resources are useful for resource management, access management and cost allocation\\. For more information, see [ Tagging AWS Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the * AWS General Reference*\\. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags\\. The maximum tag limit may be lower than stated\\. See the AWS General Reference for actual tagging limits\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TimeoutInSeconds": { + "markdownDescription": "The maximum time, in seconds, that a new game session placement request remains in the queue\\. When a request exceeds this time, the game session placement changes to a `TIMED_OUT` status\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutInSeconds", "type": "number" } }, @@ -67216,6 +82507,8 @@ "additionalProperties": false, "properties": { "DestinationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) that is assigned to fleet or fleet alias\\. ARNs, which include a fleet ID or alias ID and a Region name, provide a unique identifier across all Regions\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z0-9:/-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationArn", "type": "string" } }, @@ -67228,6 +82521,8 @@ "items": { "type": "string" }, + "markdownDescription": "A list of locations to allow game session placement in, in the form of AWS Region codes such as `us-west-2`\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedLocations", "type": "array" } }, @@ -67237,9 +82532,13 @@ "additionalProperties": false, "properties": { "MaximumIndividualPlayerLatencyMilliseconds": { + "markdownDescription": "The maximum latency value that is allowed for any player, in milliseconds\\. All policies must have a value set for this property\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumIndividualPlayerLatencyMilliseconds", "type": "number" }, "PolicyDurationSeconds": { + "markdownDescription": "The length of time, in seconds, that the policy is enforced while placing a new game session\\. A null value for this property means that the policy is enforced until the queue times out\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDurationSeconds", "type": "number" } }, @@ -67252,12 +82551,16 @@ "items": { "type": "string" }, + "markdownDescription": "The prioritization order to use for fleet locations, when the `PriorityOrder` property includes `LOCATION`\\. Locations are identified by AWS Region codes such as `us-west-2`\\. Each location can only be listed once\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocationOrder", "type": "array" }, "PriorityOrder": { "items": { "type": "string" }, + "markdownDescription": "The recommended sequence to use when prioritizing where to place new game sessions\\. Each type can only be listed once\\. \n+ `LATENCY` \\-\\- FleetIQ prioritizes locations where the average player latency \\(provided in each game session request\\) is lowest\\. \n+ `COST` \\-\\- FleetIQ prioritizes destinations with the lowest current hosting costs\\. Cost is evaluated based on the location, instance type, and fleet type \\(Spot or On\\-Demand\\) for each destination in the queue\\.\n+ `DESTINATION` \\-\\- FleetIQ prioritizes based on the order that destinations are listed in the queue configuration\\.\n+ `LOCATION` \\-\\- FleetIQ prioritizes based on the provided order of locations, as defined in `LocationOrder`\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PriorityOrder", "type": "array" } }, @@ -67370,57 +82673,87 @@ "additionalProperties": false, "properties": { "AcceptanceRequired": { + "markdownDescription": "A flag that determines whether a match that was created with this configuration must be accepted by the matched players\\. To require acceptance, set to `TRUE`\\. With this option enabled, matchmaking tickets use the status `REQUIRES_ACCEPTANCE` to indicate when a completed potential match is waiting for player acceptance\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptanceRequired", "type": "boolean" }, "AcceptanceTimeoutSeconds": { + "markdownDescription": "The length of time \\(in seconds\\) to wait for players to accept a proposed match, if acceptance is required\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptanceTimeoutSeconds", "type": "number" }, "AdditionalPlayerCount": { + "markdownDescription": "The number of player slots in a match to keep open for future players\\. For example, if the configuration's rule set specifies a match for a single 12\\-person team, and the additional player count is set to 2, only 10 players are selected for the match\\. This parameter is not used if `FlexMatchMode` is set to `STANDALONE`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdditionalPlayerCount", "type": "number" }, "BackfillMode": { + "markdownDescription": "The method used to backfill game sessions that are created with this matchmaking configuration\\. Specify `MANUAL` when your game manages backfill requests manually or does not use the match backfill feature\\. Specify `AUTOMATIC` to have GameLift create a `StartMatchBackfill` request whenever a game session has one or more open slots\\. Learn more about manual and automatic backfill in [Backfill Existing Games with FlexMatch](https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-backfill.html)\\. Automatic backfill is not available when `FlexMatchMode` is set to `STANDALONE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUTOMATIC | MANUAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackfillMode", "type": "string" }, "CustomEventData": { + "markdownDescription": "Information to add to all events related to the matchmaking configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomEventData", "type": "string" }, "Description": { + "markdownDescription": "A descriptive label that is associated with matchmaking configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "FlexMatchMode": { + "markdownDescription": "Indicates whether this matchmaking configuration is being used with GameLift hosting or as a standalone matchmaking solution\\. \n+ **STANDALONE** \\- FlexMatch forms matches and returns match information, including players and team assignments, in a [ MatchmakingSucceeded](https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-events.html#match-events-matchmakingsucceeded) event\\.\n+ **WITH\\_QUEUE** \\- FlexMatch forms matches and uses the specified GameLift queue to start a game session for the match\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `STANDALONE | WITH_QUEUE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FlexMatchMode", "type": "string" }, "GameProperties": { "items": { "$ref": "#/definitions/AWS::GameLift::MatchmakingConfiguration.GameProperty" }, + "markdownDescription": "A set of custom properties for a game session, formatted as key\\-value pairs\\. These properties are passed to a game server process with a request to start a new game session\\. See [ Start a Game Session](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)\\. This parameter is not used if `FlexMatchMode` is set to `STANDALONE`\\. \n*Required*: No \n*Type*: List of [GameProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-matchmakingconfiguration-gameproperty.html) \n*Maximum*: `16` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GameProperties", "type": "array" }, "GameSessionData": { + "markdownDescription": "A set of custom game session properties, formatted as a single string value\\. This data is passed to a game server process with a request to start a new game session\\. See [Start a Game Session](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)\\. This parameter is not used if`FlexMatchMode` is set to `STANDALONE`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GameSessionData", "type": "string" }, "GameSessionQueueArns": { "items": { "type": "string" }, + "markdownDescription": "The Amazon Resource Name \\([ARN](https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html)\\) that is assigned to a GameLift game session queue resource and uniquely identifies it\\. ARNs are unique across all Regions\\. Format is `arn:aws:gamelift:::gamesessionqueue/`\\. Queues can be located in any Region\\. Queues are used to start new GameLift\\-hosted game sessions for matches that are created with this matchmaking configuration\\. If `FlexMatchMode` is set to `STANDALONE`, do not set this parameter\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GameSessionQueueArns", "type": "array" }, "Name": { + "markdownDescription": "A unique identifier for the matchmaking configuration\\. This name is used to identify the configuration associated with a matchmaking request or ticket\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9-\\.]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "NotificationTarget": { + "markdownDescription": "An SNS topic ARN that is set up to receive matchmaking notifications\\. See [ Setting up notifications for matchmaking](https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-notification.html) for more information\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `300` \n*Pattern*: `[a-zA-Z0-9:_/-]*(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/.html)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationTarget", "type": "string" }, "RequestTimeoutSeconds": { + "markdownDescription": "The maximum duration, in seconds, that a matchmaking ticket can remain in process before timing out\\. Requests that fail due to timing out can be resubmitted as needed\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `43200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestTimeoutSeconds", "type": "number" }, "RuleSetName": { + "markdownDescription": "A unique identifier for the matchmaking rule set to use with this configuration\\. You can use either the rule set name or ARN value\\. A matchmaking configuration can only use rule sets that are defined in the same Region\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z0-9-\\.]*|^arn:.*:matchmakingruleset\\/[a-zA-Z0-9-\\.]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleSetName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of labels to assign to the new matchmaking configuration resource\\. Tags are developer\\-defined key\\-value pairs\\. Tagging AWS resources are useful for resource management, access management and cost allocation\\. For more information, see [ Tagging AWS Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the * AWS General Reference*\\. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags\\. The maximum tag limit may be lower than stated\\. See the AWS General Reference for actual tagging limits\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -67457,9 +82790,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The game property identifier\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The game property value\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `96` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -67505,15 +82842,21 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "A unique identifier for the matchmaking rule set\\. A matchmaking configuration identifies the rule set it uses by this name value\\. Note that the rule set name is different from the optional `name` field in the rule set body\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9-\\.]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RuleSetBody": { + "markdownDescription": "A collection of matchmaking rules, formatted as a JSON string\\. Comments are not allowed in JSON, but most elements support a description field\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RuleSetBody", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of labels to assign to the new matchmaking rule set resource\\. Tags are developer\\-defined key\\-value pairs\\. Tagging AWS resources are useful for resource management, access management and cost allocation\\. For more information, see [ Tagging AWS Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the * AWS General Reference*\\. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags\\. The maximum tag limit may be lower than stated\\. See the AWS General Reference for actual tagging limits\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -67580,18 +82923,26 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "A descriptive label that is associated with a script\\. Script names do not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "StorageLocation": { - "$ref": "#/definitions/AWS::GameLift::Script.S3Location" + "$ref": "#/definitions/AWS::GameLift::Script.S3Location", + "markdownDescription": "The location of the Amazon S3 bucket where a zipped file containing your Realtime scripts is stored\\. The storage location must specify the Amazon S3 bucket name, the zip file name \\(the \"key\"\\), and a role ARN that allows Amazon Web Services to access the Amazon S3 storage location\\. The S3 bucket must be in the same Region where you want to create a new script\\. By default, Amazon Web Services uploads the latest version of the zip file; if you have S3 object versioning turned on, you can use the `ObjectVersion` parameter to specify an earlier version\\. \n*Required*: Yes \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-script-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageLocation" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of labels to assign to the new script resource\\. Tags are developer\\-defined key\\-value pairs\\. Tagging AWS resources are useful for resource management, access management and cost allocation\\. For more information, see [ Tagging AWS Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the * AWS General Reference*\\. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags\\. The maximum tag limit may be lower than stated\\. See the AWS General Reference for actual tagging limits\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Version": { + "markdownDescription": "The version that is associated with a build or script\\. Version strings do not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -67625,15 +82976,23 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "An Amazon S3 bucket identifier\\. This is the name of the S3 bucket\\. \nGameLift currently does not support uploading from Amazon S3 buckets with names that contain a dot \\(\\.\\)\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", "type": "string" }, "Key": { + "markdownDescription": "The name of the zip file that contains the build files or script files\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "ObjectVersion": { + "markdownDescription": "The version of the file, if object versioning is turned on for the bucket\\. Amazon Web Services uses this information when retrieving files from an S3 bucket that you own\\. Use this parameter to specify a specific version of the file\\. If not set, the latest version of the file is retrieved\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectVersion", "type": "string" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\([ARN](https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html)\\) for an IAM role that allows Amazon Web Services to access the S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -67680,24 +83039,34 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Indicates whether the accelerator is enabled\\. The value is true or false\\. The default value is true\\. \nIf the value is set to true, the accelerator cannot be deleted\\. If set to false, accelerator can be deleted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "IpAddressType": { + "markdownDescription": "The value for the address type must be IPv4\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `IPV4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IpAddressType", "type": "string" }, "IpAddresses": { "items": { "type": "string" }, + "markdownDescription": "Optionally, if you've added your own IP address pool to Global Accelerator \\(BYOIP\\), you can choose IP addresses from your own pool to use for the accelerator's static IP addresses when you create an accelerator\\. You can specify one or two addresses, separated by a comma\\. Do not include the /32 suffix\\. \nOnly one IP address from each of your IP address ranges can be used for each accelerator\\. If you specify only one IP address from your IP address range, Global Accelerator assigns a second static IP address for the accelerator from the AWS IP address pool\\. \n Note that you can't update IP addresses for an existing accelerator\\. To change them, you must create a new accelerator with the new addresses\\. \nFor more information, see [Bring Your Own IP Addresses \\(BYOIP\\)](https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html) in the *AWS Global Accelerator Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IpAddresses", "type": "array" }, "Name": { + "markdownDescription": "The name of the accelerator\\. The name must contain only alphanumeric characters or hyphens \\(\\-\\), and must not begin or end with a hyphen\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Create tags for an accelerator\\. \nFor more information, see [Tagging ](https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html) in the *AWS Global Accelerator Developer Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -67766,36 +83135,56 @@ "items": { "$ref": "#/definitions/AWS::GlobalAccelerator::EndpointGroup.EndpointConfiguration" }, + "markdownDescription": "The list of endpoint objects\\. \n*Required*: No \n*Type*: List of [EndpointConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-endpointconfiguration.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointConfigurations", "type": "array" }, "EndpointGroupRegion": { + "markdownDescription": "The AWS Regions where the endpoint group is located\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EndpointGroupRegion", "type": "string" }, "HealthCheckIntervalSeconds": { + "markdownDescription": "The time\u201410 seconds or 30 seconds\u2014between health checks for each endpoint\\. The default value is 30\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `10` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckIntervalSeconds", "type": "number" }, "HealthCheckPath": { + "markdownDescription": "If the protocol is HTTP/S, then this value provides the ping path that Global Accelerator uses for the destination on the endpoints for health checks\\. The default is slash \\(/\\)\\. \n*Required*: No \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `^/[-a-zA-Z0-9@:%_\\\\+.~#?&/=]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckPath", "type": "string" }, "HealthCheckPort": { + "markdownDescription": "The port that Global Accelerator uses to perform health checks on endpoints that are part of this endpoint group\\. \nThe default port is the port for the listener that this endpoint group is associated with\\. If the listener port is a list, Global Accelerator uses the first specified port in the list of ports\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckPort", "type": "number" }, "HealthCheckProtocol": { + "markdownDescription": "The protocol that Global Accelerator uses to perform health checks on endpoints that are part of this endpoint group\\. The default value is TCP\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `HTTP | HTTPS | TCP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckProtocol", "type": "string" }, "ListenerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the listener\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ListenerArn", "type": "string" }, "PortOverrides": { "items": { "$ref": "#/definitions/AWS::GlobalAccelerator::EndpointGroup.PortOverride" }, + "markdownDescription": "Allows you to override the destination ports used to route traffic to an endpoint\\. Using a port override lets you to map a list of external destination ports \\(that your users send traffic to\\) to a list of internal destination ports that you want an application endpoint to receive traffic on\\. \n*Required*: No \n*Type*: List of [PortOverride](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-portoverride.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortOverrides", "type": "array" }, "ThresholdCount": { + "markdownDescription": "The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an unhealthy endpoint to healthy\\. The default value is 3\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThresholdCount", "type": "number" }, "TrafficDialPercentage": { + "markdownDescription": "The percentage of traffic to send to an AWS Regions\\. Additional traffic is distributed to other endpoint groups for this listener\\. \nUse this action to increase \\(dial up\\) or decrease \\(dial down\\) traffic to a specific Region\\. The percentage is applied to the traffic that would otherwise have been routed to the Region based on optimal routing\\. \nThe default value is 100\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrafficDialPercentage", "type": "number" } }, @@ -67830,12 +83219,18 @@ "additionalProperties": false, "properties": { "ClientIPPreservationEnabled": { + "markdownDescription": "Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint\\. The value is true or false\\. The default value is true for new accelerators\\. \nIf the value is set to true, the client's IP address is preserved in the `X-Forwarded-For` request header as traffic travels to applications on the Application Load Balancer endpoint fronted by the accelerator\\. \nFor more information, see [ Preserve Client IP Addresses](https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html) in the *AWS Global Accelerator Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientIPPreservationEnabled", "type": "boolean" }, "EndpointId": { + "markdownDescription": "An ID for the endpoint\\. If the endpoint is a Network Load Balancer or Application Load Balancer, this is the Amazon Resource Name \\(ARN\\) of the resource\\. If the endpoint is an Elastic IP address, this is the Elastic IP address allocation ID\\. For Amazon EC2 instances, this is the EC2 instance ID\\. A resource must be valid and active when you add it as an endpoint\\. \nAn Application Load Balancer can be either internal or internet\\-facing\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointId", "type": "string" }, "Weight": { + "markdownDescription": "The weight associated with the endpoint\\. When you add weights to endpoints, you configure Global Accelerator to route traffic based on proportions that you specify\\. For example, you might specify endpoint weights of 4, 5, 5, and 6 \\(sum=20\\)\\. The result is that 4/20 of your traffic, on average, is routed to the first endpoint, 5/20 is routed both to the second and third endpoints, and 6/20 is routed to the last endpoint\\. For more information, see [Endpoint Weights](https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoints-endpoint-weights.html) in the *AWS Global Accelerator Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Weight", "type": "number" } }, @@ -67848,9 +83243,13 @@ "additionalProperties": false, "properties": { "EndpointPort": { + "markdownDescription": "The endpoint port that you want a listener port to be mapped to\\. This is the port on the endpoint, such as the Application Load Balancer or Amazon EC2 instance\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointPort", "type": "number" }, "ListenerPort": { + "markdownDescription": "The listener port that you want to map to a specific endpoint port\\. This is the port that user traffic arrives to the Global Accelerator on\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ListenerPort", "type": "number" } }, @@ -67896,18 +83295,26 @@ "additionalProperties": false, "properties": { "AcceleratorArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of your accelerator\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorArn", "type": "string" }, "ClientAffinity": { + "markdownDescription": "Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications, regardless of the port and protocol of the client request\\. Client affinity gives you control over whether to always route each client to the same specific endpoint\\. \nAWS Global Accelerator uses a consistent\\-flow hashing algorithm to choose the optimal endpoint for a connection\\. If client affinity is `NONE`, Global Accelerator uses the \"five\\-tuple\" \\(5\\-tuple\\) properties\u2014source IP address, source port, destination IP address, destination port, and protocol\u2014to select the hash value, and then chooses the best endpoint\\. However, with this setting, if someone uses different ports to connect to Global Accelerator, their connections might not be always routed to the same endpoint because the hash value changes\\. \nIf you want a given client to always be routed to the same endpoint, set client affinity to `SOURCE_IP` instead\\. When you use the `SOURCE_IP` setting, Global Accelerator uses the \"two\\-tuple\" \\(2\\-tuple\\) properties\u2014 source \\(client\\) IP address and destination IP address\u2014to select the hash value\\. \nThe default value is `NONE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | SOURCE_IP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientAffinity", "type": "string" }, "PortRanges": { "items": { "$ref": "#/definitions/AWS::GlobalAccelerator::Listener.PortRange" }, + "markdownDescription": "The list of port ranges for the connections from clients to the accelerator\\. \n*Required*: Yes \n*Type*: List of [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-listener-portrange.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortRanges", "type": "array" }, "Protocol": { + "markdownDescription": "The protocol for the connections from clients to the accelerator\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `TCP | UDP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "string" } }, @@ -67943,9 +83350,13 @@ "additionalProperties": false, "properties": { "FromPort": { + "markdownDescription": "The first port in the range of ports, inclusive\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FromPort", "type": "number" }, "ToPort": { + "markdownDescription": "The last port in the range of ports, inclusive\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ToPort", "type": "number" } }, @@ -67991,16 +83402,24 @@ "additionalProperties": false, "properties": { "CsvClassifier": { - "$ref": "#/definitions/AWS::Glue::Classifier.CsvClassifier" + "$ref": "#/definitions/AWS::Glue::Classifier.CsvClassifier", + "markdownDescription": "A classifier for comma\\-separated values \\(CSV\\)\\. \n*Required*: Conditional \n*Type*: [CsvClassifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-csvclassifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CsvClassifier" }, "GrokClassifier": { - "$ref": "#/definitions/AWS::Glue::Classifier.GrokClassifier" + "$ref": "#/definitions/AWS::Glue::Classifier.GrokClassifier", + "markdownDescription": "A classifier that uses `grok`\\. \n*Required*: Conditional \n*Type*: [GrokClassifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-grokclassifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GrokClassifier" }, "JsonClassifier": { - "$ref": "#/definitions/AWS::Glue::Classifier.JsonClassifier" + "$ref": "#/definitions/AWS::Glue::Classifier.JsonClassifier", + "markdownDescription": "A classifier for JSON content\\. \n*Required*: Conditional \n*Type*: [JsonClassifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-jsonclassifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JsonClassifier" }, "XMLClassifier": { - "$ref": "#/definitions/AWS::Glue::Classifier.XMLClassifier" + "$ref": "#/definitions/AWS::Glue::Classifier.XMLClassifier", + "markdownDescription": "A classifier for XML content\\. \n*Required*: Conditional \n*Type*: [XMLClassifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-xmlclassifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "XMLClassifier" } }, "type": "object" @@ -68029,27 +83448,41 @@ "additionalProperties": false, "properties": { "AllowSingleColumn": { + "markdownDescription": "Enables the processing of files that contain only one column\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowSingleColumn", "type": "boolean" }, "ContainsHeader": { + "markdownDescription": "Indicates whether the CSV file contains a header\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainsHeader", "type": "string" }, "Delimiter": { + "markdownDescription": "A custom symbol to denote what separates each column entry in the row\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Delimiter", "type": "string" }, "DisableValueTrimming": { + "markdownDescription": "Specifies not to trim values before identifying the type of column values\\. The default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableValueTrimming", "type": "boolean" }, "Header": { "items": { "type": "string" }, + "markdownDescription": "A list of strings representing column names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Header", "type": "array" }, "Name": { + "markdownDescription": "The name of the classifier\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "QuoteSymbol": { + "markdownDescription": "A custom symbol to denote what combines content into a single column value\\. It must be different from the column delimiter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QuoteSymbol", "type": "string" } }, @@ -68059,15 +83492,23 @@ "additionalProperties": false, "properties": { "Classification": { + "markdownDescription": "An identifier of the data format that the classifier matches, such as Twitter, JSON, Omniture logs, and so on\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Classification", "type": "string" }, "CustomPatterns": { + "markdownDescription": "Optional custom grok patterns defined by this classifier\\. For more information, see custom patterns in [Writing Custom Classifiers](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomPatterns", "type": "string" }, "GrokPattern": { + "markdownDescription": "The grok pattern applied to a data store by this classifier\\. For more information, see built\\-in patterns in [Writing Custom Classifiers](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GrokPattern", "type": "string" }, "Name": { + "markdownDescription": "The name of the classifier\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" } }, @@ -68081,9 +83522,13 @@ "additionalProperties": false, "properties": { "JsonPath": { + "markdownDescription": "A `JsonPath` string defining the JSON data for the classifier to classify\\. AWS Glue supports a subset of `JsonPath`, as described in [Writing JsonPath Custom Classifiers](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html#custom-classifier-json)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JsonPath", "type": "string" }, "Name": { + "markdownDescription": "The name of the classifier\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" } }, @@ -68096,12 +83541,18 @@ "additionalProperties": false, "properties": { "Classification": { + "markdownDescription": "An identifier of the data format that the classifier matches\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Classification", "type": "string" }, "Name": { + "markdownDescription": "The name of the classifier\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RowTag": { + "markdownDescription": "The XML tag designating the element that contains each record in an XML document being parsed\\. This can't identify a self\\-closing element \\(closed by `/>`\\)\\. An empty row element that contains only attributes can be parsed as long as it ends with a closing tag \\(for example, `` is okay, but `` is not\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RowTag", "type": "string" } }, @@ -68147,10 +83598,14 @@ "additionalProperties": false, "properties": { "CatalogId": { + "markdownDescription": "The ID of the data catalog to create the catalog object in\\. Currently, this should be the AWS account ID\\. \nTo specify the account ID, you can use the `Ref` intrinsic function with the `AWS::AccountId` pseudo parameter\\. For example: `!Ref AWS::AccountId`\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CatalogId", "type": "string" }, "ConnectionInput": { - "$ref": "#/definitions/AWS::Glue::Connection.ConnectionInput" + "$ref": "#/definitions/AWS::Glue::Connection.ConnectionInput", + "markdownDescription": "The connection that you want to create\\. \n*Required*: Yes \n*Type*: [ConnectionInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionInput" } }, "required": [ @@ -68184,25 +83639,37 @@ "additionalProperties": false, "properties": { "ConnectionProperties": { + "markdownDescription": "These key\\-value pairs define parameters for the connection\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionProperties", "type": "object" }, "ConnectionType": { + "markdownDescription": "The type of the connection\\. Currently, these types are supported: \n+ `JDBC` \\- Designates a connection to a database through Java Database Connectivity \\(JDBC\\)\\.\n+ `KAFKA` \\- Designates a connection to an Apache Kafka streaming platform\\.\n+ `MONGODB` \\- Designates a connection to a MongoDB document database\\.\n+ `NETWORK` \\- Designates a network connection to a data source within an Amazon Virtual Private Cloud environment \\(Amazon VPC\\)\\.\nSFTP is not supported\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionType", "type": "string" }, "Description": { + "markdownDescription": "The description of the connection\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "MatchCriteria": { "items": { "type": "string" }, + "markdownDescription": "A list of criteria that can be used in selecting this connection\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MatchCriteria", "type": "array" }, "Name": { + "markdownDescription": "The name of the connection\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "PhysicalConnectionRequirements": { - "$ref": "#/definitions/AWS::Glue::Connection.PhysicalConnectionRequirements" + "$ref": "#/definitions/AWS::Glue::Connection.PhysicalConnectionRequirements", + "markdownDescription": "A map of physical connection requirements, such as virtual private cloud \\(VPC\\) and `SecurityGroup`, that are needed to successfully make this connection\\. \n*Required*: No \n*Type*: [PhysicalConnectionRequirements](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-physicalconnectionrequirements.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PhysicalConnectionRequirements" } }, "required": [ @@ -68214,15 +83681,21 @@ "additionalProperties": false, "properties": { "AvailabilityZone": { + "markdownDescription": "The connection's Availability Zone\\. This field is redundant because the specified subnet implies the Availability Zone to be used\\. Currently the field must be populated, but it will be deprecated in the future\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZone", "type": "string" }, "SecurityGroupIdList": { "items": { "type": "string" }, + "markdownDescription": "The security group ID list used by the connection\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIdList", "type": "array" }, "SubnetId": { + "markdownDescription": "The subnet ID used by the connection\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetId", "type": "string" } }, @@ -68267,43 +83740,69 @@ "items": { "type": "string" }, + "markdownDescription": "A list of UTF\\-8 strings that specify the custom classifiers that are associated with the crawler\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Classifiers", "type": "array" }, "Configuration": { + "markdownDescription": "Crawler configuration information\\. This versioned JSON string allows users to specify aspects of a crawler's behavior\\. For more information, see [Configuring a Crawler](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configuration", "type": "string" }, "CrawlerSecurityConfiguration": { + "markdownDescription": "The name of the `SecurityConfiguration` structure to be used by this crawler\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CrawlerSecurityConfiguration", "type": "string" }, "DatabaseName": { + "markdownDescription": "The name of the database in which the crawler's output is stored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", "type": "string" }, "Description": { + "markdownDescription": "A description of the crawler\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name of the crawler\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RecrawlPolicy": { - "$ref": "#/definitions/AWS::Glue::Crawler.RecrawlPolicy" + "$ref": "#/definitions/AWS::Glue::Crawler.RecrawlPolicy", + "markdownDescription": "A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run\\. \n*Required*: No \n*Type*: [RecrawlPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-recrawlpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecrawlPolicy" }, "Role": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an IAM role that's used to access customer resources, such as Amazon Simple Storage Service \\(Amazon S3\\) data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Role", "type": "string" }, "Schedule": { - "$ref": "#/definitions/AWS::Glue::Crawler.Schedule" + "$ref": "#/definitions/AWS::Glue::Crawler.Schedule", + "markdownDescription": "For scheduled crawlers, the schedule when the crawler runs\\. \n*Required*: No \n*Type*: [Schedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-schedule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule" }, "SchemaChangePolicy": { - "$ref": "#/definitions/AWS::Glue::Crawler.SchemaChangePolicy" + "$ref": "#/definitions/AWS::Glue::Crawler.SchemaChangePolicy", + "markdownDescription": "The policy that specifies update and delete behaviors for the crawler\\. \n*Required*: No \n*Type*: [SchemaChangePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-schemachangepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaChangePolicy" }, "TablePrefix": { + "markdownDescription": "The prefix added to the names of tables that are created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TablePrefix", "type": "string" }, "Tags": { + "markdownDescription": "The tags to use with this crawler\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" }, "Targets": { - "$ref": "#/definitions/AWS::Glue::Crawler.Targets" + "$ref": "#/definitions/AWS::Glue::Crawler.Targets", + "markdownDescription": "A collection of targets to crawl\\. \n*Required*: Yes \n*Type*: [Targets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-targets.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Targets" } }, "required": [ @@ -68337,12 +83836,16 @@ "additionalProperties": false, "properties": { "DatabaseName": { + "markdownDescription": "The name of the database to be synchronized\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", "type": "string" }, "Tables": { "items": { "type": "string" }, + "markdownDescription": "A list of the tables to be synchronized\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tables", "type": "array" } }, @@ -68352,6 +83855,8 @@ "additionalProperties": false, "properties": { "Path": { + "markdownDescription": "The name of the DynamoDB table to crawl\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", "type": "string" } }, @@ -68361,15 +83866,21 @@ "additionalProperties": false, "properties": { "ConnectionName": { + "markdownDescription": "The name of the connection to use to connect to the JDBC target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionName", "type": "string" }, "Exclusions": { "items": { "type": "string" }, + "markdownDescription": "A list of glob patterns used to exclude from the crawl\\. For more information, see [Catalog Tables with a Crawler](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exclusions", "type": "array" }, "Path": { + "markdownDescription": "The path of the JDBC target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", "type": "string" } }, @@ -68379,9 +83890,13 @@ "additionalProperties": false, "properties": { "ConnectionName": { + "markdownDescription": "The name of the connection to use to connect to the Amazon DocumentDB or MongoDB target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionName", "type": "string" }, "Path": { + "markdownDescription": "The path of the Amazon DocumentDB or MongoDB target \\(database/collection\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", "type": "string" } }, @@ -68391,6 +83906,8 @@ "additionalProperties": false, "properties": { "RecrawlBehavior": { + "markdownDescription": "Specifies whether to crawl the entire dataset again or to crawl only folders that were added since the last crawler run\\. \nA value of `CRAWL_EVERYTHING` specifies crawling the entire dataset again\\. \nA value of `CRAWL_NEW_FOLDERS_ONLY` specifies crawling only folders that were added since the last crawler run\\. \nA value of `CRAWL_EVENT_MODE` specifies crawling only the changes identified by Amazon S3 events\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecrawlBehavior", "type": "string" } }, @@ -68400,24 +83917,36 @@ "additionalProperties": false, "properties": { "ConnectionName": { + "markdownDescription": "The name of a connection which allows a job or crawler to access data in Amazon S3 within an Amazon Virtual Private Cloud environment \\(Amazon VPC\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionName", "type": "string" }, "DlqEventQueueArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DlqEventQueueArn", "type": "string" }, "EventQueueArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventQueueArn", "type": "string" }, "Exclusions": { "items": { "type": "string" }, + "markdownDescription": "A list of glob patterns used to exclude from the crawl\\. For more information, see [Catalog Tables with a Crawler](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exclusions", "type": "array" }, "Path": { + "markdownDescription": "The path to the Amazon S3 target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", "type": "string" }, "SampleSize": { + "markdownDescription": "Sets the number of files in each leaf folder to be crawled when crawling sample files in a dataset\\. If not set, all the files are crawled\\. A valid value is an integer between 1 and 249\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SampleSize", "type": "number" } }, @@ -68427,6 +83956,8 @@ "additionalProperties": false, "properties": { "ScheduleExpression": { + "markdownDescription": "A `cron` expression used to specify the schedule\\. For more information, see [Time\\-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html)\\. For example, to run something every day at 12:15 UTC, specify `cron(15 12 * * ? *)`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleExpression", "type": "string" } }, @@ -68436,9 +83967,13 @@ "additionalProperties": false, "properties": { "DeleteBehavior": { + "markdownDescription": "The deletion behavior when the crawler finds a deleted object\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteBehavior", "type": "string" }, "UpdateBehavior": { + "markdownDescription": "The update behavior when the crawler finds a changed schema\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdateBehavior", "type": "string" } }, @@ -68451,30 +83986,40 @@ "items": { "$ref": "#/definitions/AWS::Glue::Crawler.CatalogTarget" }, + "markdownDescription": "Specifies AWS Glue Data Catalog targets\\. \n*Required*: No \n*Type*: List of [CatalogTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-catalogtarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CatalogTargets", "type": "array" }, "DynamoDBTargets": { "items": { "$ref": "#/definitions/AWS::Glue::Crawler.DynamoDBTarget" }, + "markdownDescription": "Specifies Amazon DynamoDB targets\\. \n*Required*: No \n*Type*: List of [DynamoDBTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-dynamodbtarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DynamoDBTargets", "type": "array" }, "JdbcTargets": { "items": { "$ref": "#/definitions/AWS::Glue::Crawler.JdbcTarget" }, + "markdownDescription": "Specifies JDBC targets\\. \n*Required*: No \n*Type*: List of [JdbcTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-jdbctarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JdbcTargets", "type": "array" }, "MongoDBTargets": { "items": { "$ref": "#/definitions/AWS::Glue::Crawler.MongoDBTarget" }, + "markdownDescription": "A list of Mongo DB targets\\. \n*Required*: No \n*Type*: List of [MongoDBTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-mongodbtarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MongoDBTargets", "type": "array" }, "S3Targets": { "items": { "$ref": "#/definitions/AWS::Glue::Crawler.S3Target" }, + "markdownDescription": "Specifies Amazon Simple Storage Service \\(Amazon S3\\) targets\\. \n*Required*: No \n*Type*: List of [S3Target](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-s3target.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Targets", "type": "array" } }, @@ -68516,10 +84061,14 @@ "additionalProperties": false, "properties": { "CatalogId": { + "markdownDescription": "The ID of the Data Catalog in which the settings are created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CatalogId", "type": "string" }, "DataCatalogEncryptionSettings": { - "$ref": "#/definitions/AWS::Glue::DataCatalogEncryptionSettings.DataCatalogEncryptionSettings" + "$ref": "#/definitions/AWS::Glue::DataCatalogEncryptionSettings.DataCatalogEncryptionSettings", + "markdownDescription": "Contains configuration information for maintaining Data Catalog security\\. \n*Required*: Yes \n*Type*: [DataCatalogEncryptionSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-datacatalogencryptionsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataCatalogEncryptionSettings" } }, "required": [ @@ -68553,9 +84102,13 @@ "additionalProperties": false, "properties": { "KmsKeyId": { + "markdownDescription": "An AWS KMS key that is used to encrypt the connection password\\. \nIf connection password protection is enabled, the caller of `CreateConnection` and `UpdateConnection` needs at least `kms:Encrypt` permission on the specified AWS KMS key, to encrypt passwords before storing them in the Data Catalog\\. You can set the decrypt permission to enable or restrict access on the password key according to your security requirements\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", "type": "string" }, "ReturnConnectionPasswordEncrypted": { + "markdownDescription": "When the `ReturnConnectionPasswordEncrypted` flag is set to \"true\", passwords remain encrypted in the responses of `GetConnection` and `GetConnections`\\. This encryption takes effect independently from catalog encryption\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReturnConnectionPasswordEncrypted", "type": "boolean" } }, @@ -68565,10 +84118,14 @@ "additionalProperties": false, "properties": { "ConnectionPasswordEncryption": { - "$ref": "#/definitions/AWS::Glue::DataCatalogEncryptionSettings.ConnectionPasswordEncryption" + "$ref": "#/definitions/AWS::Glue::DataCatalogEncryptionSettings.ConnectionPasswordEncryption", + "markdownDescription": "When connection password protection is enabled, the Data Catalog uses a customer\\-provided key to encrypt the password as part of `CreateConnection` or `UpdateConnection` and store it in the `ENCRYPTED_PASSWORD` field in the connection properties\\. You can enable catalog encryption or only password encryption\\. \n*Required*: No \n*Type*: [ConnectionPasswordEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-connectionpasswordencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionPasswordEncryption" }, "EncryptionAtRest": { - "$ref": "#/definitions/AWS::Glue::DataCatalogEncryptionSettings.EncryptionAtRest" + "$ref": "#/definitions/AWS::Glue::DataCatalogEncryptionSettings.EncryptionAtRest", + "markdownDescription": "Specifies the encryption\\-at\\-rest configuration for the Data Catalog\\. \n*Required*: No \n*Type*: [EncryptionAtRest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-encryptionatrest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionAtRest" } }, "type": "object" @@ -68577,9 +84134,13 @@ "additionalProperties": false, "properties": { "CatalogEncryptionMode": { + "markdownDescription": "The encryption\\-at\\-rest mode for encrypting Data Catalog data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CatalogEncryptionMode", "type": "string" }, "SseAwsKmsKeyId": { + "markdownDescription": "The ID of the AWS KMS key to use for encryption at rest\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SseAwsKmsKeyId", "type": "string" } }, @@ -68621,10 +84182,14 @@ "additionalProperties": false, "properties": { "CatalogId": { + "markdownDescription": "The AWS account ID for the account in which to create the catalog object\\. \n To specify the account ID, you can use the `Ref` intrinsic function with the `AWS::AccountId` pseudo parameter\\. For example: `!Ref AWS::AccountId` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CatalogId", "type": "string" }, "DatabaseInput": { - "$ref": "#/definitions/AWS::Glue::Database.DatabaseInput" + "$ref": "#/definitions/AWS::Glue::Database.DatabaseInput", + "markdownDescription": "The metadata for the database\\. \n*Required*: Yes \n*Type*: [DatabaseInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseinput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseInput" } }, "required": [ @@ -68658,6 +84223,8 @@ "additionalProperties": false, "properties": { "DataLakePrincipalIdentifier": { + "markdownDescription": "An identifier for the AWS Lake Formation principal\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataLakePrincipalIdentifier", "type": "string" } }, @@ -68667,9 +84234,13 @@ "additionalProperties": false, "properties": { "CatalogId": { + "markdownDescription": "The ID of the Data Catalog in which the database resides\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CatalogId", "type": "string" }, "DatabaseName": { + "markdownDescription": "The name of the catalog database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", "type": "string" } }, @@ -68682,22 +84253,34 @@ "items": { "$ref": "#/definitions/AWS::Glue::Database.PrincipalPrivileges" }, + "markdownDescription": "Creates a set of default permissions on the table for principals\\. \n*Required*: No \n*Type*: List of [PrincipalPrivileges](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-principalprivileges.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreateTableDefaultPermissions", "type": "array" }, "Description": { + "markdownDescription": "A description of the database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "LocationUri": { + "markdownDescription": "The location of the database \\(for example, an HDFS path\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocationUri", "type": "string" }, "Name": { + "markdownDescription": "The name of the database\\. For Hive compatibility, this is folded to lowercase when it is stored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Parameters": { + "markdownDescription": "These key\\-value pairs define parameters and properties of the database\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "object" }, "TargetDatabase": { - "$ref": "#/definitions/AWS::Glue::Database.DatabaseIdentifier" + "$ref": "#/definitions/AWS::Glue::Database.DatabaseIdentifier", + "markdownDescription": "A `DatabaseIdentifier` structure that describes a target database for resource linking\\. \n*Required*: No \n*Type*: [DatabaseIdentifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseidentifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetDatabase" } }, "type": "object" @@ -68709,10 +84292,14 @@ "items": { "type": "string" }, + "markdownDescription": "The permissions that are granted to the principal\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Permissions", "type": "array" }, "Principal": { - "$ref": "#/definitions/AWS::Glue::Database.DataLakePrincipal" + "$ref": "#/definitions/AWS::Glue::Database.DataLakePrincipal", + "markdownDescription": "The principal who is granted permissions\\. \n*Required*: No \n*Type*: [DataLakePrincipal](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-datalakeprincipal.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Principal" } }, "type": "object" @@ -68753,54 +84340,84 @@ "additionalProperties": false, "properties": { "Arguments": { + "markdownDescription": "A map of arguments used to configure the `DevEndpoint`\\. \nValid arguments are: \n+ `\"--enable-glue-datacatalog\": \"\"`\n+ `\"GLUE_PYTHON_VERSION\": \"3\"`\n+ `\"GLUE_PYTHON_VERSION\": \"2\"`\nYou can specify a version of Python support for development endpoints by using the `Arguments` parameter in the `CreateDevEndpoint` or `UpdateDevEndpoint` APIs\\. If no arguments are provided, the version defaults to Python 2\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arguments", "type": "object" }, "EndpointName": { + "markdownDescription": "The name of the `DevEndpoint`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EndpointName", "type": "string" }, "ExtraJarsS3Path": { + "markdownDescription": "The path to one or more Java `.jar` files in an S3 bucket that should be loaded in your `DevEndpoint`\\. \nYou can only use pure Java/Scala libraries with a `DevEndpoint`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExtraJarsS3Path", "type": "string" }, "ExtraPythonLibsS3Path": { + "markdownDescription": "The paths to one or more Python libraries in an Amazon S3 bucket that should be loaded in your `DevEndpoint`\\. Multiple values must be complete paths separated by a comma\\. \nYou can only use pure Python libraries with a `DevEndpoint`\\. Libraries that rely on C extensions, such as the [pandas](http://pandas.pydata.org/) Python data analysis library, are not currently supported\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExtraPythonLibsS3Path", "type": "string" }, "GlueVersion": { + "markdownDescription": "The AWS Glue version determines the versions of Apache Spark and Python that AWS Glue supports\\. The Python version indicates the version supported for running your ETL scripts on development endpoints\\. \nFor more information about the available AWS Glue versions and corresponding Spark and Python versions, see [Glue version](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) in the developer guide\\. \nDevelopment endpoints that are created without specifying a Glue version default to Glue 0\\.9\\. \nYou can specify a version of Python support for development endpoints by using the `Arguments` parameter in the `CreateDevEndpoint` or `UpdateDevEndpoint` APIs\\. If no arguments are provided, the version defaults to Python 2\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlueVersion", "type": "string" }, "NumberOfNodes": { + "markdownDescription": "The number of AWS Glue Data Processing Units \\(DPUs\\) allocated to this `DevEndpoint`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfNodes", "type": "number" }, "NumberOfWorkers": { + "markdownDescription": "The number of workers of a defined `workerType` that are allocated to the development endpoint\\. \nThe maximum number of workers you can define are 299 for `G.1X`, and 149 for `G.2X`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfWorkers", "type": "number" }, "PublicKey": { + "markdownDescription": "The public key to be used by this `DevEndpoint` for authentication\\. This attribute is provided for backward compatibility because the recommended attribute to use is public keys\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublicKey", "type": "string" }, "PublicKeys": { "items": { "type": "string" }, + "markdownDescription": "A list of public keys to be used by the `DevEndpoints` for authentication\\. Using this attribute is preferred over a single public key because the public keys allow you to have a different private key per client\\. \nIf you previously created an endpoint with a public key, you must remove that key to be able to set a list of public keys\\. Call the `UpdateDevEndpoint` API operation with the public key content in the `deletePublicKeys` attribute, and the list of new keys in the `addPublicKeys` attribute\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublicKeys", "type": "array" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role used in this `DevEndpoint`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "SecurityConfiguration": { + "markdownDescription": "The name of the `SecurityConfiguration` structure to be used with this `DevEndpoint`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityConfiguration", "type": "string" }, "SecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "A list of security group identifiers used in this `DevEndpoint`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "SubnetId": { + "markdownDescription": "The subnet ID for this `DevEndpoint`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetId", "type": "string" }, "Tags": { + "markdownDescription": "The tags to use with this DevEndpoint\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" }, "WorkerType": { + "markdownDescription": "The type of predefined worker that is allocated to the development endpoint\\. Accepts a value of Standard, G\\.1X, or G\\.2X\\. \n+ For the `Standard` worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker\\.\n+ For the `G.1X` worker type, each worker maps to 1 DPU \\(4 vCPU, 16 GB of memory, 64 GB disk\\), and provides 1 executor per worker\\. We recommend this worker type for memory\\-intensive jobs\\.\n+ For the `G.2X` worker type, each worker maps to 2 DPU \\(8 vCPU, 32 GB of memory, 128 GB disk\\), and provides 1 executor per worker\\. We recommend this worker type for memory\\-intensive jobs\\.\nKnown issue: when a development endpoint is created with the `G.2X` `WorkerType` configuration, the Spark drivers for the development endpoint will run on 4 vCPU, 16 GB of memory, and a 64 GB disk\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WorkerType", "type": "string" } }, @@ -68866,63 +84483,99 @@ "additionalProperties": false, "properties": { "AllocatedCapacity": { + "markdownDescription": "The number of capacity units that are allocated to this job\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocatedCapacity", "type": "number" }, "Command": { - "$ref": "#/definitions/AWS::Glue::Job.JobCommand" + "$ref": "#/definitions/AWS::Glue::Job.JobCommand", + "markdownDescription": "The code that executes a job\\. \n*Required*: Yes \n*Type*: [JobCommand](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-jobcommand.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Command" }, "Connections": { - "$ref": "#/definitions/AWS::Glue::Job.ConnectionsList" + "$ref": "#/definitions/AWS::Glue::Job.ConnectionsList", + "markdownDescription": "The connections used for this job\\. \n*Required*: No \n*Type*: [ConnectionsList](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-connectionslist.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Connections" }, "DefaultArguments": { + "markdownDescription": "The default arguments for this job, specified as name\\-value pairs\\. \nYou can specify arguments here that your own job\\-execution script consumes, in addition to arguments that AWS Glue itself consumes\\. \nFor information about how to specify and consume your own job arguments, see [Calling AWS Glue APIs in Python](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) in the *AWS Glue Developer Guide*\\. \nFor information about the key\\-value pairs that AWS Glue consumes to set up your job, see [Special Parameters Used by AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html) in the *AWS Glue Developer Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultArguments", "type": "object" }, "Description": { + "markdownDescription": "A description of the job\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "ExecutionClass": { "type": "string" }, "ExecutionProperty": { - "$ref": "#/definitions/AWS::Glue::Job.ExecutionProperty" + "$ref": "#/definitions/AWS::Glue::Job.ExecutionProperty", + "markdownDescription": "The maximum number of concurrent runs that are allowed for this job\\. \n*Required*: No \n*Type*: [ExecutionProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-executionproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionProperty" }, "GlueVersion": { + "markdownDescription": "Glue version determines the versions of Apache Spark and Python that AWS Glue supports\\. The Python version indicates the version supported for jobs of type Spark\\. \nFor more information about the available AWS Glue versions and corresponding Spark and Python versions, see [Glue version](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) in the developer guide\\. \nJobs that are created without specifying a Glue version default to Glue 0\\.9\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlueVersion", "type": "string" }, "LogUri": { + "markdownDescription": "This field is reserved for future use\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogUri", "type": "string" }, "MaxCapacity": { + "markdownDescription": "The number of AWS Glue data processing units \\(DPUs\\) that can be allocated when this job runs\\. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory\\. \nDo not set `Max Capacity` if using `WorkerType` and `NumberOfWorkers`\\. \nThe value that can be allocated for `MaxCapacity` depends on whether you are running a Python shell job or an Apache Spark ETL job: \n+ When you specify a Python shell job \\(`JobCommand.Name`=\"pythonshell\"\\), you can allocate either 0\\.0625 or 1 DPU\\. The default is 0\\.0625 DPU\\.\n+ When you specify an Apache Spark ETL job \\(`JobCommand.Name`=\"glueetl\"\\), you can allocate from 2 to 100 DPUs\\. The default is 10 DPUs\\. This job type cannot have a fractional DPU allocation\\.\n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacity", "type": "number" }, "MaxRetries": { + "markdownDescription": "The maximum number of times to retry this job after a JobRun fails\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxRetries", "type": "number" }, "Name": { + "markdownDescription": "The name you assign to this job definition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "NonOverridableArguments": { "type": "object" }, "NotificationProperty": { - "$ref": "#/definitions/AWS::Glue::Job.NotificationProperty" + "$ref": "#/definitions/AWS::Glue::Job.NotificationProperty", + "markdownDescription": "Specifies configuration properties of a notification\\. \n*Required*: No \n*Type*: [NotificationProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-notificationproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationProperty" }, "NumberOfWorkers": { + "markdownDescription": "The number of workers of a defined `workerType` that are allocated when a job runs\\. \nThe maximum number of workers you can define are 299 for `G.1X`, and 149 for `G.2X`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfWorkers", "type": "number" }, "Role": { + "markdownDescription": "The name or Amazon Resource Name \\(ARN\\) of the IAM role associated with this job\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Role", "type": "string" }, "SecurityConfiguration": { + "markdownDescription": "The name of the `SecurityConfiguration` structure to be used with this job\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityConfiguration", "type": "string" }, "Tags": { + "markdownDescription": "The tags to use with this job\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" }, "Timeout": { + "markdownDescription": "The job timeout in minutes\\. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status\\. The default is 2,880 minutes \\(48 hours\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout", "type": "number" }, "WorkerType": { + "markdownDescription": "The type of predefined worker that is allocated when a job runs\\. Accepts a value of Standard, G\\.1X, or G\\.2X\\. \n+ For the `Standard` worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker\\.\n+ For the `G.1X` worker type, each worker maps to 1 DPU \\(4 vCPU, 16 GB of memory, 64 GB disk\\), and provides 1 executor per worker\\. We recommend this worker type for memory\\-intensive jobs\\.\n+ For the `G.2X` worker type, each worker maps to 2 DPU \\(8 vCPU, 32 GB of memory, 128 GB disk\\), and provides 1 executor per worker\\. We recommend this worker type for memory\\-intensive jobs\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WorkerType", "type": "string" } }, @@ -68960,6 +84613,8 @@ "items": { "type": "string" }, + "markdownDescription": "A list of connections used by the job\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Connections", "type": "array" } }, @@ -68969,6 +84624,8 @@ "additionalProperties": false, "properties": { "MaxConcurrentRuns": { + "markdownDescription": "The maximum number of concurrent runs allowed for the job\\. The default is 1\\. An error is returned when this threshold is reached\\. The maximum value you can specify is controlled by a service limit\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxConcurrentRuns", "type": "number" } }, @@ -68978,12 +84635,18 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the job command\\. For an Apache Spark ETL job, this must be `glueetl`\\. For a Python shell job, it must be `pythonshell`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "PythonVersion": { + "markdownDescription": "The Python version being used to execute a Python shell job\\. Allowed values are 2 or 3\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PythonVersion", "type": "string" }, "ScriptLocation": { + "markdownDescription": "Specifies the Amazon Simple Storage Service \\(Amazon S3\\) path to a script that executes a job \\(required\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScriptLocation", "type": "string" } }, @@ -68993,6 +84656,8 @@ "additionalProperties": false, "properties": { "NotifyDelayAfter": { + "markdownDescription": "After a job run starts, the number of minutes to wait before sending a job run delay notification\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotifyDelayAfter", "type": "number" } }, @@ -69034,42 +84699,68 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A user\\-defined, long\\-form description text for the machine learning transform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "GlueVersion": { + "markdownDescription": "This value determines which version of AWS Glue this machine learning transform is compatible with\\. Glue 1\\.0 is recommended for most customers\\. If the value is not set, the Glue compatibility defaults to Glue 0\\.9\\. For more information, see [AWS Glue Versions](https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions) in the developer guide\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlueVersion", "type": "string" }, "InputRecordTables": { - "$ref": "#/definitions/AWS::Glue::MLTransform.InputRecordTables" + "$ref": "#/definitions/AWS::Glue::MLTransform.InputRecordTables", + "markdownDescription": "A list of AWS Glue table definitions used by the transform\\. \n*Required*: Yes \n*Type*: [InputRecordTables](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-inputrecordtables.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InputRecordTables" }, "MaxCapacity": { + "markdownDescription": "The number of AWS Glue data processing units \\(DPUs\\) that are allocated to task runs for this transform\\. You can allocate from 2 to 100 DPUs; the default is 10\\. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory\\. For more information, see the [AWS Glue pricing page](http://aws.amazon.com/glue/pricing/)\\. \n`MaxCapacity` is a mutually exclusive option with `NumberOfWorkers` and `WorkerType`\\. \n+ If either `NumberOfWorkers` or `WorkerType` is set, then `MaxCapacity` cannot be set\\.\n+ If `MaxCapacity` is set then neither `NumberOfWorkers` or `WorkerType` can be set\\.\n+ If `WorkerType` is set, then `NumberOfWorkers` is required \\(and vice versa\\)\\.\n+ `MaxCapacity` and `NumberOfWorkers` must both be at least 1\\.\nWhen the `WorkerType` field is set to a value other than `Standard`, the `MaxCapacity` field is set automatically and becomes read\\-only\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacity", "type": "number" }, "MaxRetries": { + "markdownDescription": "The maximum number of times to retry after an `MLTaskRun` of the machine learning transform fails\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxRetries", "type": "number" }, "Name": { + "markdownDescription": "A user\\-defined name for the machine learning transform\\. Names are required to be unique\\. `Name` is optional: \n+ If you supply `Name`, the stack cannot be repeatedly created\\.\n+ If `Name` is not provided, a randomly generated name will be used instead\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "NumberOfWorkers": { + "markdownDescription": "The number of workers of a defined `workerType` that are allocated when a task of the transform runs\\. \nIf `WorkerType` is set, then `NumberOfWorkers` is required \\(and vice versa\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfWorkers", "type": "number" }, "Role": { + "markdownDescription": "The name or Amazon Resource Name \\(ARN\\) of the IAM role with the required permissions\\. The required permissions include both AWS Glue service role permissions to AWS Glue resources, and Amazon S3 permissions required by the transform\\. \n+ This role needs AWS Glue service role permissions to allow access to resources in AWS Glue\\. See [Attach a Policy to IAM Users That Access AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/attach-policy-iam-user.html)\\.\n+ This role needs permission to your Amazon Simple Storage Service \\(Amazon S3\\) sources, targets, temporary directory, scripts, and any libraries used by the task run for this transform\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Role", "type": "string" }, "Tags": { + "markdownDescription": "The tags to use with this machine learning transform\\. You may use tags to limit access to the machine learning transform\\. For more information about tags in AWS Glue, see [AWS Tags in AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html) in the developer guide\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" }, "Timeout": { + "markdownDescription": "The timeout in minutes of the machine learning transform\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout", "type": "number" }, "TransformEncryption": { - "$ref": "#/definitions/AWS::Glue::MLTransform.TransformEncryption" + "$ref": "#/definitions/AWS::Glue::MLTransform.TransformEncryption", + "markdownDescription": "The encryption\\-at\\-rest settings of the transform that apply to accessing user data\\. Machine learning transforms can access user data encrypted in Amazon S3 using KMS\\. \nAdditionally, imported labels and trained transforms can now be encrypted using a customer provided KMS key\\. \n*Required*: No \n*Type*: [TransformEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransformEncryption" }, "TransformParameters": { - "$ref": "#/definitions/AWS::Glue::MLTransform.TransformParameters" + "$ref": "#/definitions/AWS::Glue::MLTransform.TransformParameters", + "markdownDescription": "The algorithm\\-specific parameters that are associated with the machine learning transform\\. \n*Required*: Yes \n*Type*: [TransformParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransformParameters" }, "WorkerType": { + "markdownDescription": "The type of predefined worker that is allocated when a task of this transform runs\\. Accepts a value of Standard, G\\.1X, or G\\.2X\\. \n+ For the `Standard` worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker\\.\n+ For the `G.1X` worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker\\.\n+ For the `G.2X` worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker\\.\n`MaxCapacity` is a mutually exclusive option with `NumberOfWorkers` and `WorkerType`\\. \n+ If either `NumberOfWorkers` or `WorkerType` is set, then `MaxCapacity` cannot be set\\.\n+ If `MaxCapacity` is set then neither `NumberOfWorkers` or `WorkerType` can be set\\.\n+ If `WorkerType` is set, then `NumberOfWorkers` is required \\(and vice versa\\)\\.\n+ `MaxCapacity` and `NumberOfWorkers` must both be at least 1\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WorkerType", "type": "string" } }, @@ -69105,15 +84796,23 @@ "additionalProperties": false, "properties": { "AccuracyCostTradeoff": { + "markdownDescription": "The value that is selected when tuning your transform for a balance between accuracy and cost\\. A value of 0\\.5 means that the system balances accuracy and cost concerns\\. A value of 1\\.0 means a bias purely for accuracy, which typically results in a higher cost, sometimes substantially higher\\. A value of 0\\.0 means a bias purely for cost, which results in a less accurate `FindMatches` transform, sometimes with unacceptable accuracy\\. \nAccuracy measures how well the transform finds true positives and true negatives\\. Increasing accuracy requires more machine resources and cost\\. But it also results in increased recall\\. \nCost measures how many compute resources, and thus money, are consumed to run the transform\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccuracyCostTradeoff", "type": "number" }, "EnforceProvidedLabels": { + "markdownDescription": "The value to switch on or off to force the output to match the provided labels from users\\. If the value is `True`, the `find matches` transform forces the output to match the provided labels\\. The results override the normal conflation results\\. If the value is `False`, the `find matches` transform does not ensure all the labels provided are respected, and the results rely on the trained model\\. \nNote that setting this value to true may increase the conflation execution time\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnforceProvidedLabels", "type": "boolean" }, "PrecisionRecallTradeoff": { + "markdownDescription": "The value selected when tuning your transform for a balance between precision and recall\\. A value of 0\\.5 means no preference; a value of 1\\.0 means a bias purely for precision, and a value of 0\\.0 means a bias for recall\\. Because this is a tradeoff, choosing values close to 1\\.0 means very low recall, and choosing values close to 0\\.0 results in very low precision\\. \nThe precision metric indicates how often your model is correct when it predicts a match\\. \nThe recall metric indicates that for an actual match, how often your model predicts the match\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrecisionRecallTradeoff", "type": "number" }, "PrimaryKeyColumnName": { + "markdownDescription": "The name of a column that uniquely identifies rows in the source table\\. Used to help identify matching records\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrimaryKeyColumnName", "type": "string" } }, @@ -69126,15 +84825,23 @@ "additionalProperties": false, "properties": { "CatalogId": { + "markdownDescription": "A unique identifier for the AWS Glue Data Catalog\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CatalogId", "type": "string" }, "ConnectionName": { + "markdownDescription": "The name of the connection to the AWS Glue Data Catalog\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionName", "type": "string" }, "DatabaseName": { + "markdownDescription": "A database name in the AWS Glue Data Catalog\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", "type": "string" }, "TableName": { + "markdownDescription": "A table name in the AWS Glue Data Catalog\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", "type": "string" } }, @@ -69151,6 +84858,8 @@ "items": { "$ref": "#/definitions/AWS::Glue::MLTransform.GlueTables" }, + "markdownDescription": "The database and table in the AWS Glue Data Catalog that is used for input or output data\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-inputrecordtables-gluetables.html) of [GlueTables](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-inputrecordtables-gluetables.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlueTables", "type": "array" } }, @@ -69160,9 +84869,13 @@ "additionalProperties": false, "properties": { "KmsKeyId": { + "markdownDescription": "The ID for the customer\\-provided KMS key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", "type": "string" }, "MLUserDataEncryptionMode": { + "markdownDescription": "The encryption mode applied to user data\\. Valid values are: \n+ DISABLED: encryption is disabled\\.\n+ SSEKMS: use of server\\-side encryption with AWS Key Management Service \\(SSE\\-KMS\\) for user data stored in Amazon S3\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MLUserDataEncryptionMode", "type": "string" } }, @@ -69175,9 +84888,13 @@ "additionalProperties": false, "properties": { "MLUserDataEncryption": { - "$ref": "#/definitions/AWS::Glue::MLTransform.MLUserDataEncryption" + "$ref": "#/definitions/AWS::Glue::MLTransform.MLUserDataEncryption", + "markdownDescription": "The encryption\\-at\\-rest settings of the transform that apply to accessing user data\\. \n*Required*: No \n*Type*: [MLUserDataEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformencryption-mluserdataencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MLUserDataEncryption" }, "TaskRunSecurityConfigurationName": { + "markdownDescription": "The name of the security configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskRunSecurityConfigurationName", "type": "string" } }, @@ -69187,9 +84904,13 @@ "additionalProperties": false, "properties": { "FindMatchesParameters": { - "$ref": "#/definitions/AWS::Glue::MLTransform.FindMatchesParameters" + "$ref": "#/definitions/AWS::Glue::MLTransform.FindMatchesParameters", + "markdownDescription": "The parameters for the find matches algorithm\\. \n*Required*: No \n*Type*: [FindMatchesParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformparameters-findmatchesparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FindMatchesParameters" }, "TransformType": { + "markdownDescription": "The type of machine learning transform\\. `FIND_MATCHES` is the only option\\. \nFor information about the types of machine learning transforms, see [Creating Machine Learning Transforms](https://docs.aws.amazon.com/glue/latest/dg/add-job-machine-learning-transform.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransformType", "type": "string" } }, @@ -69234,15 +84955,23 @@ "additionalProperties": false, "properties": { "CatalogId": { + "markdownDescription": "The AWS account ID of the catalog in which the partion is to be created\\. \nTo specify the account ID, you can use the `Ref` intrinsic function with the `AWS::AccountId` pseudo parameter\\. For example: `!Ref AWS::AccountId` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CatalogId", "type": "string" }, "DatabaseName": { + "markdownDescription": "The name of the catalog database in which to create the partition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatabaseName", "type": "string" }, "PartitionInput": { - "$ref": "#/definitions/AWS::Glue::Partition.PartitionInput" + "$ref": "#/definitions/AWS::Glue::Partition.PartitionInput", + "markdownDescription": "The structure used to create and update a partition\\. \n*Required*: Yes \n*Type*: [PartitionInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-partitioninput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PartitionInput" }, "TableName": { + "markdownDescription": "The name of the metadata table in which the partition is to be created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TableName", "type": "string" } }, @@ -69279,12 +85008,18 @@ "additionalProperties": false, "properties": { "Comment": { + "markdownDescription": "A free\\-form text comment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", "type": "string" }, "Name": { + "markdownDescription": "The name of the `Column`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Type": { + "markdownDescription": "The data type of the `Column`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -69297,9 +85032,13 @@ "additionalProperties": false, "properties": { "Column": { + "markdownDescription": "The name of the column\\. \n*Required*: Yes \n*Type*: [String](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-column.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Column", "type": "string" }, "SortOrder": { + "markdownDescription": "Indicates that the column is sorted in ascending order \\(`== 1`\\), or in descending order \\(`==0`\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SortOrder", "type": "number" } }, @@ -69312,15 +85051,21 @@ "additionalProperties": false, "properties": { "Parameters": { + "markdownDescription": "These key\\-value pairs define partition parameters\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "object" }, "StorageDescriptor": { - "$ref": "#/definitions/AWS::Glue::Partition.StorageDescriptor" + "$ref": "#/definitions/AWS::Glue::Partition.StorageDescriptor", + "markdownDescription": "Provides information about the physical location where the partition is stored\\. \n*Required*: No \n*Type*: [StorageDescriptor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageDescriptor" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "The values of the partition\\. Although this parameter is not required by the SDK, you must specify this parameter for a valid input\\. \nThe values for the keys for the new partition must be passed as an array of String objects that must be ordered in the same order as the partition keys appearing in the Amazon S3 prefix\\. Otherwise AWS Glue will add the values to the wrong keys\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Values", "type": "array" } }, @@ -69333,12 +85078,18 @@ "additionalProperties": false, "properties": { "RegistryName": { + "markdownDescription": "The name of the schema registry that contains the schema\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegistryName", "type": "string" }, "SchemaArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the schema\\. One of `SchemaArn` or `SchemaName` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaArn", "type": "string" }, "SchemaName": { + "markdownDescription": "The name of the schema\\. One of `SchemaArn` or `SchemaName` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaName", "type": "string" } }, @@ -69348,12 +85099,18 @@ "additionalProperties": false, "properties": { "SchemaId": { - "$ref": "#/definitions/AWS::Glue::Partition.SchemaId" + "$ref": "#/definitions/AWS::Glue::Partition.SchemaId", + "markdownDescription": "A structure that contains schema identity fields\\. Either this or the `SchemaVersionId` has to be provided\\. \n*Required*: No \n*Type*: [SchemaId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-schemaid.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaId" }, "SchemaVersionId": { + "markdownDescription": "The unique ID assigned to a version of the schema\\. Either this or the `SchemaId` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaVersionId", "type": "string" }, "SchemaVersionNumber": { + "markdownDescription": "The version number of the schema\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaVersionNumber", "type": "number" } }, @@ -69363,12 +85120,18 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "Name of the SerDe\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Parameters": { + "markdownDescription": "These key\\-value pairs define initialization parameters for the SerDe\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "object" }, "SerializationLibrary": { + "markdownDescription": "Usually the class that implements the SerDe\\. An example is `org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SerializationLibrary", "type": "string" } }, @@ -69381,15 +85144,21 @@ "items": { "type": "string" }, + "markdownDescription": "A list of names of columns that contain skewed values\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SkewedColumnNames", "type": "array" }, "SkewedColumnValueLocationMaps": { + "markdownDescription": "A mapping of skewed values to the columns that contain them\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SkewedColumnValueLocationMaps", "type": "object" }, "SkewedColumnValues": { "items": { "type": "string" }, + "markdownDescription": "A list of values that appear so frequently as to be considered skewed\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SkewedColumnValues", "type": "array" } }, @@ -69402,48 +85171,74 @@ "items": { "type": "string" }, + "markdownDescription": "A list of reducer grouping columns, clustering columns, and bucketing columns in the table\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketColumns", "type": "array" }, "Columns": { "items": { "$ref": "#/definitions/AWS::Glue::Partition.Column" }, + "markdownDescription": "A list of the `Columns` in the table\\. \n*Required*: No \n*Type*: List of [Column](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-column.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Columns", "type": "array" }, "Compressed": { + "markdownDescription": "`True` if the data in the table is compressed, or `False` if not\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Compressed", "type": "boolean" }, "InputFormat": { + "markdownDescription": "The input format: `SequenceFileInputFormat` \\(binary\\), or `TextInputFormat`, or a custom format\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputFormat", "type": "string" }, "Location": { + "markdownDescription": "The physical location of the table\\. By default, this takes the form of the warehouse location, followed by the database location in the warehouse, followed by the table name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", "type": "string" }, "NumberOfBuckets": { + "markdownDescription": "The number of buckets\\. \nYou must specify this property if the partition contains any dimension columns\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfBuckets", "type": "number" }, "OutputFormat": { + "markdownDescription": "The output format: `SequenceFileOutputFormat` \\(binary\\), or `IgnoreKeyTextOutputFormat`, or a custom format\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputFormat", "type": "string" }, "Parameters": { + "markdownDescription": "The user\\-supplied properties in key\\-value form\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "object" }, "SchemaReference": { - "$ref": "#/definitions/AWS::Glue::Partition.SchemaReference" + "$ref": "#/definitions/AWS::Glue::Partition.SchemaReference", + "markdownDescription": "An object that references a schema stored in the AWS Glue Schema Registry\\. \n*Required*: No \n*Type*: [SchemaReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-schemareference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaReference" }, "SerdeInfo": { - "$ref": "#/definitions/AWS::Glue::Partition.SerdeInfo" + "$ref": "#/definitions/AWS::Glue::Partition.SerdeInfo", + "markdownDescription": "The serialization/deserialization \\(SerDe\\) information\\. \n*Required*: No \n*Type*: [SerdeInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-serdeinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SerdeInfo" }, "SkewedInfo": { - "$ref": "#/definitions/AWS::Glue::Partition.SkewedInfo" + "$ref": "#/definitions/AWS::Glue::Partition.SkewedInfo", + "markdownDescription": "The information about values that appear frequently in a column \\(skewed values\\)\\. \n*Required*: No \n*Type*: [SkewedInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-skewedinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SkewedInfo" }, "SortColumns": { "items": { "$ref": "#/definitions/AWS::Glue::Partition.Order" }, + "markdownDescription": "A list specifying the sort order of each bucket in the table\\. \n*Required*: No \n*Type*: List of [Order](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-order.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SortColumns", "type": "array" }, "StoredAsSubDirectories": { + "markdownDescription": "`True` if the table data is stored in subdirectories, or `False` if not\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StoredAsSubDirectories", "type": "boolean" } }, @@ -69485,15 +85280,21 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the registry\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name of the registry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "AWS tags that contain a key value pair and may be searched by console, command line, or API\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -69559,30 +85360,46 @@ "additionalProperties": false, "properties": { "CheckpointVersion": { - "$ref": "#/definitions/AWS::Glue::Schema.SchemaVersion" + "$ref": "#/definitions/AWS::Glue::Schema.SchemaVersion", + "markdownDescription": "Specify the `VersionNumber` or the `IsLatest` for setting the checkpoint for the schema\\. This is only required for updating a checkpoint\\. \n*Required*: No \n*Type*: [SchemaVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schema-schemaversion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CheckpointVersion" }, "Compatibility": { + "markdownDescription": "The compatibility mode of the schema\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Compatibility", "type": "string" }, "DataFormat": { + "markdownDescription": "The data format of the schema definition\\. Currently only `AVRO` is supported\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataFormat", "type": "string" }, "Description": { + "markdownDescription": "A description of the schema if specified when created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "Name of the schema to be created of max length of 255, and may only contain letters, numbers, hyphen, underscore, dollar sign, or hash mark\\. No whitespace\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Registry": { - "$ref": "#/definitions/AWS::Glue::Schema.Registry" + "$ref": "#/definitions/AWS::Glue::Schema.Registry", + "markdownDescription": "The registry where a schema is stored\\. \n*Required*: No \n*Type*: [Registry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schema-registry.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Registry" }, "SchemaDefinition": { + "markdownDescription": "The schema definition using the `DataFormat` setting for `SchemaName`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SchemaDefinition", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "AWS tags that contain a key value pair and may be searched by console, command line, or API\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -69619,9 +85436,13 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the registry\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Arn", "type": "string" }, "Name": { + "markdownDescription": "The name of the registry\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" } }, @@ -69631,9 +85452,13 @@ "additionalProperties": false, "properties": { "IsLatest": { + "markdownDescription": "Indicates if this version is the latest version of the schema\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsLatest", "type": "boolean" }, "VersionNumber": { + "markdownDescription": "The version number of the schema\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VersionNumber", "type": "number" } }, @@ -69675,9 +85500,13 @@ "additionalProperties": false, "properties": { "Schema": { - "$ref": "#/definitions/AWS::Glue::SchemaVersion.Schema" + "$ref": "#/definitions/AWS::Glue::SchemaVersion.Schema", + "markdownDescription": "The schema that includes the schema version\\. \n*Required*: Yes \n*Type*: [Schema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schemaversion-schema.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Schema" }, "SchemaDefinition": { + "markdownDescription": "The schema definition for the schema version\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SchemaDefinition", "type": "string" } }, @@ -69712,12 +85541,18 @@ "additionalProperties": false, "properties": { "RegistryName": { + "markdownDescription": "The name of the registry where the schema is stored\\. Either `SchemaArn`, or `SchemaName` and `RegistryName` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RegistryName", "type": "string" }, "SchemaArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the schema\\. Either `SchemaArn`, or `SchemaName` and `RegistryName` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SchemaArn", "type": "string" }, "SchemaName": { + "markdownDescription": "The name of the schema\\. Either `SchemaArn`, or `SchemaName` and `RegistryName` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SchemaName", "type": "string" } }, @@ -69759,12 +85594,18 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "A metadata key in a key\\-value pair for metadata\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Key", "type": "string" }, "SchemaVersionId": { + "markdownDescription": "The version number of the schema\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SchemaVersionId", "type": "string" }, "Value": { + "markdownDescription": "A metadata key's corresponding value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", "type": "string" } }, @@ -69832,9 +85673,13 @@ "additionalProperties": false, "properties": { "EncryptionConfiguration": { - "$ref": "#/definitions/AWS::Glue::SecurityConfiguration.EncryptionConfiguration" + "$ref": "#/definitions/AWS::Glue::SecurityConfiguration.EncryptionConfiguration", + "markdownDescription": "The encryption configuration associated with this security configuration\\. \n*Required*: Yes \n*Type*: [EncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-encryptionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionConfiguration" }, "Name": { + "markdownDescription": "The name of the security configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" } }, @@ -69869,9 +85714,13 @@ "additionalProperties": false, "properties": { "CloudWatchEncryptionMode": { + "markdownDescription": "The encryption mode to use for CloudWatch data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchEncryptionMode", "type": "string" }, "KmsKeyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the KMS key to be used to encrypt the data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyArn", "type": "string" } }, @@ -69881,13 +85730,19 @@ "additionalProperties": false, "properties": { "CloudWatchEncryption": { - "$ref": "#/definitions/AWS::Glue::SecurityConfiguration.CloudWatchEncryption" + "$ref": "#/definitions/AWS::Glue::SecurityConfiguration.CloudWatchEncryption", + "markdownDescription": "The encryption configuration for Amazon CloudWatch\\. \n*Required*: No \n*Type*: [CloudWatchEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-cloudwatchencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchEncryption" }, "JobBookmarksEncryption": { - "$ref": "#/definitions/AWS::Glue::SecurityConfiguration.JobBookmarksEncryption" + "$ref": "#/definitions/AWS::Glue::SecurityConfiguration.JobBookmarksEncryption", + "markdownDescription": "The encryption configuration for job bookmarks\\. \n*Required*: No \n*Type*: [JobBookmarksEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-jobbookmarksencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobBookmarksEncryption" }, "S3Encryptions": { - "$ref": "#/definitions/AWS::Glue::SecurityConfiguration.S3Encryptions" + "$ref": "#/definitions/AWS::Glue::SecurityConfiguration.S3Encryptions", + "markdownDescription": "The encyption configuration for Amazon Simple Storage Service \\(Amazon S3\\) data\\. \n*Required*: No \n*Type*: [S3Encryptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-s3encryptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Encryptions" } }, "type": "object" @@ -69896,9 +85751,13 @@ "additionalProperties": false, "properties": { "JobBookmarksEncryptionMode": { + "markdownDescription": "The encryption mode to use for job bookmarks data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobBookmarksEncryptionMode", "type": "string" }, "KmsKeyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the KMS key to be used to encrypt the data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyArn", "type": "string" } }, @@ -69908,9 +85767,13 @@ "additionalProperties": false, "properties": { "KmsKeyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the KMS key to be used to encrypt the data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyArn", "type": "string" }, "S3EncryptionMode": { + "markdownDescription": "The encryption mode to use for Amazon S3 data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3EncryptionMode", "type": "string" } }, @@ -69957,13 +85820,19 @@ "additionalProperties": false, "properties": { "CatalogId": { + "markdownDescription": "The ID of the Data Catalog in which to create the `Table`\\. If none is supplied, the AWS account ID is used by default\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CatalogId", "type": "string" }, "DatabaseName": { + "markdownDescription": "The name of the database where the table metadata resides\\. For Hive compatibility, this must be all lowercase\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatabaseName", "type": "string" }, "TableInput": { - "$ref": "#/definitions/AWS::Glue::Table.TableInput" + "$ref": "#/definitions/AWS::Glue::Table.TableInput", + "markdownDescription": "A structure used to define a table\\. \n*Required*: Yes \n*Type*: [TableInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableInput" } }, "required": [ @@ -69998,12 +85867,18 @@ "additionalProperties": false, "properties": { "Comment": { + "markdownDescription": "A free\\-form text comment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", "type": "string" }, "Name": { + "markdownDescription": "The name of the `Column`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Type": { + "markdownDescription": "The data type of the `Column`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -70016,9 +85891,13 @@ "additionalProperties": false, "properties": { "Column": { + "markdownDescription": "The name of the column\\. \n*Required*: Yes \n*Type*: [String](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-column.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Column", "type": "string" }, "SortOrder": { + "markdownDescription": "Indicates that the column is sorted in ascending order \\(`== 1`\\), or in descending order \\(`==0`\\)\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SortOrder", "type": "number" } }, @@ -70032,12 +85911,18 @@ "additionalProperties": false, "properties": { "RegistryName": { + "markdownDescription": "The name of the schema registry that contains the schema\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegistryName", "type": "string" }, "SchemaArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the schema\\. One of `SchemaArn` or `SchemaName` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaArn", "type": "string" }, "SchemaName": { + "markdownDescription": "The name of the schema\\. One of `SchemaArn` or `SchemaName` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaName", "type": "string" } }, @@ -70047,12 +85932,18 @@ "additionalProperties": false, "properties": { "SchemaId": { - "$ref": "#/definitions/AWS::Glue::Table.SchemaId" + "$ref": "#/definitions/AWS::Glue::Table.SchemaId", + "markdownDescription": "A structure that contains schema identity fields\\. Either this or the `SchemaVersionId` has to be provided\\. \n*Required*: No \n*Type*: [SchemaId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-schemaid.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaId" }, "SchemaVersionId": { + "markdownDescription": "The unique ID assigned to a version of the schema\\. Either this or the `SchemaId` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaVersionId", "type": "string" }, "SchemaVersionNumber": { + "markdownDescription": "The version number of the schema\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaVersionNumber", "type": "number" } }, @@ -70062,12 +85953,18 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "Name of the SerDe\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Parameters": { + "markdownDescription": "These key\\-value pairs define initialization parameters for the SerDe\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "object" }, "SerializationLibrary": { + "markdownDescription": "Usually the class that implements the SerDe\\. An example is `org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SerializationLibrary", "type": "string" } }, @@ -70080,15 +85977,21 @@ "items": { "type": "string" }, + "markdownDescription": "A list of names of columns that contain skewed values\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SkewedColumnNames", "type": "array" }, "SkewedColumnValueLocationMaps": { + "markdownDescription": "A mapping of skewed values to the columns that contain them\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SkewedColumnValueLocationMaps", "type": "object" }, "SkewedColumnValues": { "items": { "type": "string" }, + "markdownDescription": "A list of values that appear so frequently as to be considered skewed\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SkewedColumnValues", "type": "array" } }, @@ -70101,48 +86004,74 @@ "items": { "type": "string" }, + "markdownDescription": "A list of reducer grouping columns, clustering columns, and bucketing columns in the table\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketColumns", "type": "array" }, "Columns": { "items": { "$ref": "#/definitions/AWS::Glue::Table.Column" }, + "markdownDescription": "A list of the `Columns` in the table\\. \n*Required*: No \n*Type*: List of [Column](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-column.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Columns", "type": "array" }, "Compressed": { + "markdownDescription": "`True` if the data in the table is compressed, or `False` if not\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Compressed", "type": "boolean" }, "InputFormat": { + "markdownDescription": "The input format: `SequenceFileInputFormat` \\(binary\\), or `TextInputFormat`, or a custom format\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputFormat", "type": "string" }, "Location": { + "markdownDescription": "The physical location of the table\\. By default, this takes the form of the warehouse location, followed by the database location in the warehouse, followed by the table name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", "type": "string" }, "NumberOfBuckets": { + "markdownDescription": "Must be specified if the table contains any dimension columns\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfBuckets", "type": "number" }, "OutputFormat": { + "markdownDescription": "The output format: `SequenceFileOutputFormat` \\(binary\\), or `IgnoreKeyTextOutputFormat`, or a custom format\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputFormat", "type": "string" }, "Parameters": { + "markdownDescription": "The user\\-supplied properties in key\\-value form\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "object" }, "SchemaReference": { - "$ref": "#/definitions/AWS::Glue::Table.SchemaReference" + "$ref": "#/definitions/AWS::Glue::Table.SchemaReference", + "markdownDescription": "An object that references a schema stored in the AWS Glue Schema Registry\\. \n*Required*: No \n*Type*: [SchemaReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-schemareference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaReference" }, "SerdeInfo": { - "$ref": "#/definitions/AWS::Glue::Table.SerdeInfo" + "$ref": "#/definitions/AWS::Glue::Table.SerdeInfo", + "markdownDescription": "The serialization/deserialization \\(SerDe\\) information\\. \n*Required*: No \n*Type*: [SerdeInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-serdeinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SerdeInfo" }, "SkewedInfo": { - "$ref": "#/definitions/AWS::Glue::Table.SkewedInfo" + "$ref": "#/definitions/AWS::Glue::Table.SkewedInfo", + "markdownDescription": "The information about values that appear frequently in a column \\(skewed values\\)\\. \n*Required*: No \n*Type*: [SkewedInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-skewedinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SkewedInfo" }, "SortColumns": { "items": { "$ref": "#/definitions/AWS::Glue::Table.Order" }, + "markdownDescription": "A list specifying the sort order of each bucket in the table\\. \n*Required*: No \n*Type*: List of [Order](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-order.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SortColumns", "type": "array" }, "StoredAsSubDirectories": { + "markdownDescription": "`True` if the table data is stored in subdirectories, or `False` if not\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StoredAsSubDirectories", "type": "boolean" } }, @@ -70152,12 +86081,18 @@ "additionalProperties": false, "properties": { "CatalogId": { + "markdownDescription": "The ID of the Data Catalog in which the table resides\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CatalogId", "type": "string" }, "DatabaseName": { + "markdownDescription": "The name of the catalog database that contains the target table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", "type": "string" }, "Name": { + "markdownDescription": "The name of the target table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -70167,39 +86102,61 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The table name\\. For Hive compatibility, this is folded to lowercase when it is stored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Owner": { + "markdownDescription": "The table owner\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Owner", "type": "string" }, "Parameters": { + "markdownDescription": "These key\\-value pairs define properties associated with the table\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "object" }, "PartitionKeys": { "items": { "$ref": "#/definitions/AWS::Glue::Table.Column" }, + "markdownDescription": "A list of columns by which the table is partitioned\\. Only primitive types are supported as partition keys\\. \nWhen you create a table used by Amazon Athena, and you do not specify any `partitionKeys`, you must at least set the value of `partitionKeys` to an empty list\\. For example: \n `\"PartitionKeys\": []` \n*Required*: No \n*Type*: List of [Column](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-column.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PartitionKeys", "type": "array" }, "Retention": { + "markdownDescription": "The retention time for this table\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Retention", "type": "number" }, "StorageDescriptor": { - "$ref": "#/definitions/AWS::Glue::Table.StorageDescriptor" + "$ref": "#/definitions/AWS::Glue::Table.StorageDescriptor", + "markdownDescription": "A storage descriptor containing information about the physical storage of this table\\. \n*Required*: No \n*Type*: [StorageDescriptor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageDescriptor" }, "TableType": { + "markdownDescription": "The type of this table \\(`EXTERNAL_TABLE`, `VIRTUAL_VIEW`, etc\\.\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableType", "type": "string" }, "TargetTable": { - "$ref": "#/definitions/AWS::Glue::Table.TableIdentifier" + "$ref": "#/definitions/AWS::Glue::Table.TableIdentifier", + "markdownDescription": "A `TableIdentifier` structure that describes a target table for resource linking\\. \n*Required*: No \n*Type*: [TableIdentifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableidentifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetTable" }, "ViewExpandedText": { + "markdownDescription": "If the table is a view, the expanded text of the view; otherwise `null`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ViewExpandedText", "type": "string" }, "ViewOriginalText": { + "markdownDescription": "If the table is a view, the original text of the view; otherwise `null`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ViewOriginalText", "type": "string" } }, @@ -70244,33 +86201,51 @@ "items": { "$ref": "#/definitions/AWS::Glue::Trigger.Action" }, + "markdownDescription": "The actions initiated by this trigger\\. \n*Required*: Yes \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", "type": "array" }, "Description": { + "markdownDescription": "A description of this trigger\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "EventBatchingCondition": { "$ref": "#/definitions/AWS::Glue::Trigger.EventBatchingCondition" }, "Name": { + "markdownDescription": "The name of the trigger\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Predicate": { - "$ref": "#/definitions/AWS::Glue::Trigger.Predicate" + "$ref": "#/definitions/AWS::Glue::Trigger.Predicate", + "markdownDescription": "The predicate of this trigger, which defines when it will fire\\. \n*Required*: No \n*Type*: [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-predicate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Predicate" }, "Schedule": { + "markdownDescription": "A `cron` expression used to specify the schedule\\. For more information, see [Time\\-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html) in the *AWS Glue Developer Guide*\\. For example, to run something every day at 12:15 UTC, specify `cron(15 12 * * ? *)`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule", "type": "string" }, "StartOnCreation": { + "markdownDescription": "Set to true to start `SCHEDULED` and `CONDITIONAL` triggers when created\\. True is not supported for `ON_DEMAND` triggers\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartOnCreation", "type": "boolean" }, "Tags": { + "markdownDescription": "The tags to use with this trigger\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" }, "Type": { + "markdownDescription": "The type of trigger that this is\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" }, "WorkflowName": { + "markdownDescription": "The name of the workflow associated with the trigger\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WorkflowName", "type": "string" } }, @@ -70305,21 +86280,33 @@ "additionalProperties": false, "properties": { "Arguments": { + "markdownDescription": "The job arguments used when this trigger fires\\. For this job run, they replace the default arguments set in the job definition itself\\. \nYou can specify arguments here that your own job\\-execution script consumes, in addition to arguments that AWS Glue itself consumes\\. \nFor information about how to specify and consume your own job arguments, see [Calling AWS Glue APIs in Python](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) in the *AWS Glue Developer Guide*\\. \nFor information about the key\\-value pairs that AWS Glue consumes to set up your job, see the [Special Parameters Used by AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html) topic in the developer guide\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arguments", "type": "object" }, "CrawlerName": { + "markdownDescription": "The name of the crawler to be used with this action\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CrawlerName", "type": "string" }, "JobName": { + "markdownDescription": "The name of a job to be executed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobName", "type": "string" }, "NotificationProperty": { - "$ref": "#/definitions/AWS::Glue::Trigger.NotificationProperty" + "$ref": "#/definitions/AWS::Glue::Trigger.NotificationProperty", + "markdownDescription": "Specifies configuration properties of a job run notification\\. \n*Required*: No \n*Type*: [NotificationProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-notificationproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationProperty" }, "SecurityConfiguration": { + "markdownDescription": "The name of the `SecurityConfiguration` structure to be used with this action\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityConfiguration", "type": "string" }, "Timeout": { + "markdownDescription": "The `JobRun` timeout in minutes\\. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status\\. The default is 2,880 minutes \\(48 hours\\)\\. This overrides the timeout value set in the parent job\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout", "type": "number" } }, @@ -70329,18 +86316,28 @@ "additionalProperties": false, "properties": { "CrawlState": { + "markdownDescription": "The state of the crawler to which this condition applies\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CrawlState", "type": "string" }, "CrawlerName": { + "markdownDescription": "The name of the crawler to which this condition applies\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CrawlerName", "type": "string" }, "JobName": { + "markdownDescription": "The name of the job whose `JobRuns` this condition applies to, and on which this trigger waits\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobName", "type": "string" }, "LogicalOperator": { + "markdownDescription": "A logical operator\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogicalOperator", "type": "string" }, "State": { + "markdownDescription": "The condition state\\. Currently, the values supported are `SUCCEEDED`, `STOPPED`, `TIMEOUT`, and `FAILED`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", "type": "string" } }, @@ -70365,6 +86362,8 @@ "additionalProperties": false, "properties": { "NotifyDelayAfter": { + "markdownDescription": "After a job run starts, the number of minutes to wait before sending a job run delay notification \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotifyDelayAfter", "type": "number" } }, @@ -70377,9 +86376,13 @@ "items": { "$ref": "#/definitions/AWS::Glue::Trigger.Condition" }, + "markdownDescription": "A list of the conditions that determine when the trigger will fire\\. \n*Required*: No \n*Type*: List of [Condition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-condition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Conditions", "type": "array" }, "Logical": { + "markdownDescription": "An optional field if only one condition is listed\\. If multiple conditions are listed, then this field is required\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Logical", "type": "string" } }, @@ -70421,18 +86424,26 @@ "additionalProperties": false, "properties": { "DefaultRunProperties": { + "markdownDescription": "A collection of properties to be used as part of each execution of the workflow \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultRunProperties", "type": "object" }, "Description": { + "markdownDescription": "A description of the workflow \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "MaxConcurrentRuns": { "type": "number" }, "Name": { + "markdownDescription": "The name of the workflow representing the flow \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { + "markdownDescription": "The tags to use with this workflow\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" } }, @@ -70709,12 +86720,18 @@ "additionalProperties": false, "properties": { "InitialVersion": { - "$ref": "#/definitions/AWS::Greengrass::ConnectorDefinition.ConnectorDefinitionVersion" + "$ref": "#/definitions/AWS::Greengrass::ConnectorDefinition.ConnectorDefinitionVersion", + "markdownDescription": "The connector definition version to include when the connector definition is created\\. A connector definition version contains a list of [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinition-connector.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinition-connector.html) property types\\. \nTo associate a connector definition version after the connector definition is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinitionversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinitionversion.html) resource and specify the ID of this connector definition\\.\n*Required*: No \n*Type*: [ConnectorDefinitionVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinition-connectordefinitionversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitialVersion" }, "Name": { + "markdownDescription": "The name of the connector definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { + "markdownDescription": "Application\\-specific metadata to attach to the connector definition\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\.", + "title": "Tags", "type": "object" } }, @@ -70748,12 +86765,18 @@ "additionalProperties": false, "properties": { "ConnectorArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the connector\\. \nFor more information about connectors provided by AWS, see [Greengrass Connectors Provided by AWS](https://docs.aws.amazon.com/greengrass/latest/developerguide/connectors-list.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectorArn", "type": "string" }, "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the connector\\. This value must be unique within the connector definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "string" }, "Parameters": { + "markdownDescription": "The parameters or configuration used by the connector\\. \nFor more information about connectors provided by AWS, see [Greengrass Connectors Provided by AWS](https://docs.aws.amazon.com/greengrass/latest/developerguide/connectors-list.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Parameters", "type": "object" } }, @@ -70770,6 +86793,8 @@ "items": { "$ref": "#/definitions/AWS::Greengrass::ConnectorDefinition.Connector" }, + "markdownDescription": "The connectors in this version\\. Only one instance of a given connector can be added to a connector definition version at a time\\. \n*Required*: Yes \n*Type*: List of [Connector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinition-connector.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Connectors", "type": "array" } }, @@ -70814,12 +86839,16 @@ "additionalProperties": false, "properties": { "ConnectorDefinitionId": { + "markdownDescription": "The ID of the connector definition associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectorDefinitionId", "type": "string" }, "Connectors": { "items": { "$ref": "#/definitions/AWS::Greengrass::ConnectorDefinitionVersion.Connector" }, + "markdownDescription": "The connectors in this version\\. Only one instance of a given connector can be added to the connector definition version at a time\\. \n*Required*: Yes \n*Type*: List of [Connector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinitionversion-connector.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Connectors", "type": "array" } }, @@ -70854,12 +86883,18 @@ "additionalProperties": false, "properties": { "ConnectorArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the connector\\. \nFor more information about connectors provided by AWS, see [Greengrass Connectors Provided by AWS](https://docs.aws.amazon.com/greengrass/latest/developerguide/connectors-list.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectorArn", "type": "string" }, "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the connector\\. This value must be unique within the connector definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "string" }, "Parameters": { + "markdownDescription": "The parameters or configuration that the connector uses\\. \nFor more information about connectors provided by AWS, see [Greengrass Connectors Provided by AWS](https://docs.aws.amazon.com/greengrass/latest/developerguide/connectors-list.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Parameters", "type": "object" } }, @@ -70905,12 +86940,18 @@ "additionalProperties": false, "properties": { "InitialVersion": { - "$ref": "#/definitions/AWS::Greengrass::CoreDefinition.CoreDefinitionVersion" + "$ref": "#/definitions/AWS::Greengrass::CoreDefinition.CoreDefinitionVersion", + "markdownDescription": "The core definition version to include when the core definition is created\\. Currently, a core definition version can contain only one [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinition-core.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinition-core.html)\\. \nTo associate a core definition version after the core definition is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinitionversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinitionversion.html) resource and specify the ID of this core definition\\.\n*Required*: No \n*Type*: [CoreDefinitionVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinition-coredefinitionversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitialVersion" }, "Name": { + "markdownDescription": "The name of the core definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { + "markdownDescription": "Application\\-specific metadata to attach to the core definition\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\.", + "title": "Tags", "type": "object" } }, @@ -70944,15 +86985,23 @@ "additionalProperties": false, "properties": { "CertificateArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the device certificate for the core\\. This X\\.509 certificate is used to authenticate the core with AWS IoT and AWS IoT Greengrass services\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateArn", "type": "string" }, "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the core\\. This value must be unique within the core definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "string" }, "SyncShadow": { + "markdownDescription": "Indicates whether the core's local shadow is synced with the cloud automatically\\. The default is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SyncShadow", "type": "boolean" }, "ThingArn": { + "markdownDescription": "The ARN of the core, which is an AWS IoT device \\(thing\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ThingArn", "type": "string" } }, @@ -70970,6 +87019,8 @@ "items": { "$ref": "#/definitions/AWS::Greengrass::CoreDefinition.Core" }, + "markdownDescription": "The Greengrass core in this version\\. Currently, the `Cores` property for a core definition version can contain only one core\\. \n*Required*: Yes \n*Type*: List of [Core](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinition-core.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Cores", "type": "array" } }, @@ -71014,12 +87065,16 @@ "additionalProperties": false, "properties": { "CoreDefinitionId": { + "markdownDescription": "The ID of the core definition associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CoreDefinitionId", "type": "string" }, "Cores": { "items": { "$ref": "#/definitions/AWS::Greengrass::CoreDefinitionVersion.Core" }, + "markdownDescription": "The Greengrass core in this version\\. Currently, the `Cores` property for a core definition version can contain only one core\\. \n*Required*: Yes \n*Type*: List of [Core](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinitionversion-core.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Cores", "type": "array" } }, @@ -71054,15 +87109,23 @@ "additionalProperties": false, "properties": { "CertificateArn": { + "markdownDescription": "The ARN of the device certificate for the core\\. This X\\.509 certificate is used to authenticate the core with AWS IoT and AWS IoT Greengrass services\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateArn", "type": "string" }, "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the core\\. This value must be unique within the core definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "string" }, "SyncShadow": { + "markdownDescription": "Indicates whether the core's local shadow is synced with the cloud automatically\\. The default is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SyncShadow", "type": "boolean" }, "ThingArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the core, which is an AWS IoT device \\(thing\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ThingArn", "type": "string" } }, @@ -71109,12 +87172,18 @@ "additionalProperties": false, "properties": { "InitialVersion": { - "$ref": "#/definitions/AWS::Greengrass::DeviceDefinition.DeviceDefinitionVersion" + "$ref": "#/definitions/AWS::Greengrass::DeviceDefinition.DeviceDefinitionVersion", + "markdownDescription": "The device definition version to include when the device definition is created\\. A device definition version contains a list of [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-device.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-device.html) property types\\. \nTo associate a device definition version after the device definition is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinitionversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinitionversion.html) resource and specify the ID of this device definition\\.\n*Required*: No \n*Type*: [DeviceDefinitionVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-devicedefinitionversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitialVersion" }, "Name": { + "markdownDescription": "The name of the device definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { + "markdownDescription": "Application\\-specific metadata to attach to the device definition\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\.", + "title": "Tags", "type": "object" } }, @@ -71148,15 +87217,23 @@ "additionalProperties": false, "properties": { "CertificateArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the device certificate for the device\\. This X\\.509 certificate is used to authenticate the device with AWS IoT and AWS IoT Greengrass services\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateArn", "type": "string" }, "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the device\\. This value must be unique within the device definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "string" }, "SyncShadow": { + "markdownDescription": "Indicates whether the device's local shadow is synced with the cloud automatically\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SyncShadow", "type": "boolean" }, "ThingArn": { + "markdownDescription": "The ARN of the device, which is an AWS IoT device \\(thing\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ThingArn", "type": "string" } }, @@ -71174,6 +87251,8 @@ "items": { "$ref": "#/definitions/AWS::Greengrass::DeviceDefinition.Device" }, + "markdownDescription": "The devices in this version\\. \n*Required*: Yes \n*Type*: List of [Device](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-device.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Devices", "type": "array" } }, @@ -71218,12 +87297,16 @@ "additionalProperties": false, "properties": { "DeviceDefinitionId": { + "markdownDescription": "The ID of the device definition associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceDefinitionId", "type": "string" }, "Devices": { "items": { "$ref": "#/definitions/AWS::Greengrass::DeviceDefinitionVersion.Device" }, + "markdownDescription": "The devices in this version\\. \n*Required*: Yes \n*Type*: List of [Device](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinitionversion-device.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Devices", "type": "array" } }, @@ -71258,15 +87341,23 @@ "additionalProperties": false, "properties": { "CertificateArn": { + "markdownDescription": "The ARN of the device certificate for the device\\. This X\\.509 certificate is used to authenticate the device with AWS IoT and AWS IoT Greengrass services\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateArn", "type": "string" }, "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the device\\. This value must be unique within the device definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "string" }, "SyncShadow": { + "markdownDescription": "Indicates whether the device's local shadow is synced with the cloud automatically\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SyncShadow", "type": "boolean" }, "ThingArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the device, which is an AWS IoT device \\(thing\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ThingArn", "type": "string" } }, @@ -71313,12 +87404,18 @@ "additionalProperties": false, "properties": { "InitialVersion": { - "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.FunctionDefinitionVersion" + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.FunctionDefinitionVersion", + "markdownDescription": "The function definition version to include when the function definition is created\\. A function definition version contains a list of [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-function.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-function.html) property types\\. \nTo associate a function definition version after the function definition is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinitionversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinitionversion.html) resource and specify the ID of this function definition\\.\n*Required*: No \n*Type*: [FunctionDefinitionVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-functiondefinitionversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitialVersion" }, "Name": { + "markdownDescription": "The name of the function definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { + "markdownDescription": "Application\\-specific metadata to attach to the function definition\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\.", + "title": "Tags", "type": "object" } }, @@ -71352,7 +87449,9 @@ "additionalProperties": false, "properties": { "Execution": { - "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.Execution" + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.Execution", + "markdownDescription": "Configuration settings for the Lambda execution environment on the AWS IoT Greengrass core\\. \n*Required*: Yes \n*Type*: [Execution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-execution.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Execution" } }, "required": [ @@ -71364,18 +87463,26 @@ "additionalProperties": false, "properties": { "AccessSysfs": { + "markdownDescription": "Indicates whether the function is allowed to access the `/sys` directory on the core device, which allows the read device information from `/sys`\\. \nThis property applies only to Lambda functions that run in a Greengrass container\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccessSysfs", "type": "boolean" }, "Execution": { - "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.Execution" + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.Execution", + "markdownDescription": "Settings for the Lambda execution environment in AWS IoT Greengrass\\. \n*Required*: No \n*Type*: [Execution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-execution.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Execution" }, "ResourceAccessPolicies": { "items": { "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.ResourceAccessPolicy" }, + "markdownDescription": "A list of the [resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourceinstance.html) in the group that the function can access, with the corresponding read\\-only or read\\-write permissions\\. The maximum is 10 resources\\. \nThis property applies only for Lambda functions that run in a Greengrass container\\.\n*Required*: No \n*Type*: List of [ResourceAccessPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-resourceaccesspolicy.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceAccessPolicies", "type": "array" }, "Variables": { + "markdownDescription": "Environment variables for the Lambda function\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Variables", "type": "object" } }, @@ -71385,10 +87492,14 @@ "additionalProperties": false, "properties": { "IsolationMode": { + "markdownDescription": "The containerization that the Lambda function runs in\\. Valid values are `GreengrassContainer` or `NoContainer`\\. Typically, this is `GreengrassContainer`\\. For more information, see [Containerization](https://docs.aws.amazon.com/greengrass/latest/developerguide/lambda-group-config.html#lambda-function-containerization) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html) property of a function definition version, this setting is used as the default containerization for all Lambda functions in the function definition version\\.\n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html) property of a function, this setting applies to the individual function and overrides the default\\. Omit this value to run the function with the default containerization\\.\nWe recommend that you run in a Greengrass container unless your business case requires that you run without containerization\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IsolationMode", "type": "string" }, "RunAs": { - "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.RunAs" + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.RunAs", + "markdownDescription": "The user and group permissions used to run the Lambda function\\. Typically, this is the ggc\\_user and ggc\\_group\\. For more information, see [Run as](https://docs.aws.amazon.com/greengrass/latest/developerguide/lambda-group-config.html#lambda-access-identity.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html) property of a function definition version, this setting is used as the default access identity for all Lambda functions in the function definition version\\.\n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html) property of a function, this setting applies to the individual function and overrides the default\\. You can override the user, group, or both\\. Omit this value to run the function with the default permissions\\.\nRunning as the root user increases risks to your data and device\\. Do not run as root \\(UID/GID=0\\) unless your business case requires it\\. For more information and requirements, see [Running a Lambda Function as Root](https://docs.aws.amazon.com/greengrass/latest/developerguide/lambda-group-config.html#lambda-running-as-root)\\. \n*Required*: No \n*Type*: [RunAs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-runas.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RunAs" } }, "type": "object" @@ -71397,12 +87508,18 @@ "additionalProperties": false, "properties": { "FunctionArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the alias \\(recommended\\) or version of the referenced Lambda function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FunctionArn", "type": "string" }, "FunctionConfiguration": { - "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.FunctionConfiguration" + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.FunctionConfiguration", + "markdownDescription": "The group\\-specific settings of the Lambda function\\. These settings configure the function's behavior in the Greengrass group\\. \n*Required*: Yes \n*Type*: [FunctionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-functionconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FunctionConfiguration" }, "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the function\\. This value must be unique within the function definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "string" } }, @@ -71417,24 +87534,38 @@ "additionalProperties": false, "properties": { "EncodingType": { + "markdownDescription": "The expected encoding type of the input payload for the function\\. Valid values are `json` \\(default\\) and `binary`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncodingType", "type": "string" }, "Environment": { - "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.Environment" + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.Environment", + "markdownDescription": "The environment configuration of the function\\. \n*Required*: No \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-environment.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Environment" }, "ExecArgs": { + "markdownDescription": "The execution arguments\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExecArgs", "type": "string" }, "Executable": { + "markdownDescription": "The name of the function executable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Executable", "type": "string" }, "MemorySize": { + "markdownDescription": "The memory size \\(in KB\\) required by the function\\. \nThis property applies only to Lambda functions that run in a Greengrass container\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MemorySize", "type": "number" }, "Pinned": { + "markdownDescription": "Indicates whether the function is pinned \\(or *long\\-lived*\\)\\. Pinned functions start when the core starts and process all requests in the same container\\. The default value is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Pinned", "type": "boolean" }, "Timeout": { + "markdownDescription": "The allowed execution time \\(in seconds\\) after which the function should terminate\\. For pinned functions, this timeout applies for each request\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Timeout", "type": "number" } }, @@ -71444,12 +87575,16 @@ "additionalProperties": false, "properties": { "DefaultConfig": { - "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.DefaultConfig" + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.DefaultConfig", + "markdownDescription": "The default configuration that applies to all Lambda functions in the group\\. Individual Lambda functions can override these settings\\. \n*Required*: No \n*Type*: [DefaultConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-defaultconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DefaultConfig" }, "Functions": { "items": { "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.Function" }, + "markdownDescription": "The functions in this version\\. \n*Required*: Yes \n*Type*: List of [Function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-function.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Functions", "type": "array" } }, @@ -71462,9 +87597,13 @@ "additionalProperties": false, "properties": { "Permission": { + "markdownDescription": "The read\\-only or read\\-write access that the Lambda function has to the resource\\. Valid values are `ro` or `rw`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Permission", "type": "string" }, "ResourceId": { + "markdownDescription": "The ID of the resource\\. This ID is assigned to the resource when you create the resource definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceId", "type": "string" } }, @@ -71477,9 +87616,13 @@ "additionalProperties": false, "properties": { "Gid": { + "markdownDescription": "The group ID whose permissions are used to run the Lambda function\\. You can use the getent group command on your core device to look up the group ID\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Gid", "type": "number" }, "Uid": { + "markdownDescription": "The user ID whose permissions are used to run the Lambda function\\. You can use the getent passwd command on your core device to look up the user ID\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Uid", "type": "number" } }, @@ -71521,15 +87664,21 @@ "additionalProperties": false, "properties": { "DefaultConfig": { - "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.DefaultConfig" + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.DefaultConfig", + "markdownDescription": "The default configuration that applies to all Lambda functions in the group\\. Individual Lambda functions can override these settings\\. \n*Required*: No \n*Type*: [DefaultConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DefaultConfig" }, "FunctionDefinitionId": { + "markdownDescription": "The ID of the function definition associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FunctionDefinitionId", "type": "string" }, "Functions": { "items": { "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.Function" }, + "markdownDescription": "The functions in this version\\. \n*Required*: Yes \n*Type*: List of [Function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-function.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Functions", "type": "array" } }, @@ -71564,7 +87713,9 @@ "additionalProperties": false, "properties": { "Execution": { - "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.Execution" + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.Execution", + "markdownDescription": "Configuration settings for the Lambda execution environment on the AWS IoT Greengrass core\\. \n*Required*: Yes \n*Type*: [Execution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-execution.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Execution" } }, "required": [ @@ -71576,18 +87727,26 @@ "additionalProperties": false, "properties": { "AccessSysfs": { + "markdownDescription": "Indicates whether the function is allowed to access the `/sys` directory on the core device, which allows the read device information from `/sys`\\. \nThis property applies only to Lambda functions that run in a Greengrass container\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccessSysfs", "type": "boolean" }, "Execution": { - "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.Execution" + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.Execution", + "markdownDescription": "Settings for the Lambda execution environment in AWS IoT Greengrass\\. \n*Required*: No \n*Type*: [Execution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-execution.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Execution" }, "ResourceAccessPolicies": { "items": { "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.ResourceAccessPolicy" }, + "markdownDescription": "A list of the [resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourceinstance.html) in the group that the function can access, with the corresponding read\\-only or read\\-write permissions\\. The maximum is 10 resources\\. \nThis property applies only to Lambda functions that run in a Greengrass container\\.\n*Required*: No \n*Type*: List of [ResourceAccessPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-resourceaccesspolicy.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceAccessPolicies", "type": "array" }, "Variables": { + "markdownDescription": "Environment variables for the Lambda function\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Variables", "type": "object" } }, @@ -71597,10 +87756,14 @@ "additionalProperties": false, "properties": { "IsolationMode": { + "markdownDescription": "The containerization that the Lambda function runs in\\. Valid values are `GreengrassContainer` or `NoContainer`\\. Typically, this is `GreengrassContainer`\\. For more information, see [Containerization](https://docs.aws.amazon.com/greengrass/latest/developerguide/lambda-group-config.html#lambda-function-containerization) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html) property of a function definition version, this setting is used as the default containerization for all Lambda functions in the function definition version\\.\n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html) property of a function, this setting applies to the individual function and overrides the default\\. Omit this value to run the function with the default containerization\\.\nWe recommend that you run in a Greengrass container unless your business case requires that you run without containerization\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IsolationMode", "type": "string" }, "RunAs": { - "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.RunAs" + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.RunAs", + "markdownDescription": "The user and group permissions used to run the Lambda function\\. Typically, this is the ggc\\_user and ggc\\_group\\. For more information, see [Run as](https://docs.aws.amazon.com/greengrass/latest/developerguide/lambda-group-config.html#lambda-access-identity.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html) property of a function definition version, this setting is used as the default access identity for all Lambda functions in the function definition version\\.\n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html) property of a function, this setting applies to the individual function and overrides the default\\. You can override the user, group, or both\\. Omit this value to run the function with the default permissions\\.\nRunning as the root user increases risks to your data and device\\. Do not run as root \\(UID/GID=0\\) unless your business case requires it\\. For more information and requirements, see [Running a Lambda Function as Root](https://docs.aws.amazon.com/greengrass/latest/developerguide/lambda-group-config.html#lambda-running-as-root)\\. \n*Required*: No \n*Type*: [RunAs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-runas.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RunAs" } }, "type": "object" @@ -71609,12 +87772,18 @@ "additionalProperties": false, "properties": { "FunctionArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the alias \\(recommended\\) or version of the referenced Lambda function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FunctionArn", "type": "string" }, "FunctionConfiguration": { - "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.FunctionConfiguration" + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.FunctionConfiguration", + "markdownDescription": "The group\\-specific settings of the Lambda function\\. These settings configure the function's behavior in the Greengrass group\\. \n*Required*: Yes \n*Type*: [FunctionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-functionconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FunctionConfiguration" }, "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the function\\. This value must be unique within the function definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "string" } }, @@ -71629,24 +87798,38 @@ "additionalProperties": false, "properties": { "EncodingType": { + "markdownDescription": "The expected encoding type of the input payload for the function\\. Valid values are `json` \\(default\\) and `binary`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncodingType", "type": "string" }, "Environment": { - "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.Environment" + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.Environment", + "markdownDescription": "The environment configuration of the function\\. \n*Required*: No \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Environment" }, "ExecArgs": { + "markdownDescription": "The execution arguments\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExecArgs", "type": "string" }, "Executable": { + "markdownDescription": "The name of the function executable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Executable", "type": "string" }, "MemorySize": { + "markdownDescription": "The memory size \\(in KB\\) required by the function\\. \nThis property applies only to Lambda functions that run in a Greengrass container\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MemorySize", "type": "number" }, "Pinned": { + "markdownDescription": "Indicates whether the function is pinned \\(or *long\\-lived*\\)\\. Pinned functions start when the core starts and process all requests in the same container\\. The default value is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Pinned", "type": "boolean" }, "Timeout": { + "markdownDescription": "The allowed execution time \\(in seconds\\) after which the function should terminate\\. For pinned functions, this timeout applies for each request\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Timeout", "type": "number" } }, @@ -71656,9 +87839,13 @@ "additionalProperties": false, "properties": { "Permission": { + "markdownDescription": "The read\\-only or read\\-write access that the Lambda function has to the resource\\. Valid values are `ro` or `rw`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Permission", "type": "string" }, "ResourceId": { + "markdownDescription": "The ID of the resource\\. This ID is assigned to the resource when you create the resource definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceId", "type": "string" } }, @@ -71671,9 +87858,13 @@ "additionalProperties": false, "properties": { "Gid": { + "markdownDescription": "The group ID whose permissions are used to run the Lambda function\\. You can use the getent group command on your core device to look up the group ID\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Gid", "type": "number" }, "Uid": { + "markdownDescription": "The user ID whose permissions are used to run the Lambda function\\. You can use the getent passwd command on your core device to look up the user ID\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Uid", "type": "number" } }, @@ -71715,15 +87906,23 @@ "additionalProperties": false, "properties": { "InitialVersion": { - "$ref": "#/definitions/AWS::Greengrass::Group.GroupVersion" + "$ref": "#/definitions/AWS::Greengrass::Group.GroupVersion", + "markdownDescription": "The group version to include when the group is created\\. A group version references the Amazon Resource Name \\(ARN\\) of a core definition version, device definition version, subscription definition version, and other version types\\. The group version must reference a core definition version that contains one core\\. Other version types are optionally included, depending on your business need\\. \nTo associate a group version after the group is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-groupversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-groupversion.html) resource and specify the ID of this group\\.\n*Required*: No \n*Type*: [GroupVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-group-groupversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitialVersion" }, "Name": { + "markdownDescription": "The name of the group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role attached to the group\\. This role contains the permissions that Lambda functions and connectors use to interact with other AWS services\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "Tags": { + "markdownDescription": "Application\\-specific metadata to attach to the group\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\.", + "title": "Tags", "type": "object" } }, @@ -71757,24 +87956,38 @@ "additionalProperties": false, "properties": { "ConnectorDefinitionVersionArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the connector definition version that contains the connectors you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectorDefinitionVersionArn", "type": "string" }, "CoreDefinitionVersionArn": { + "markdownDescription": "The ARN of the core definition version that contains the core you want to deploy with the group version\\. Currently, the core definition version can contain only one core\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CoreDefinitionVersionArn", "type": "string" }, "DeviceDefinitionVersionArn": { + "markdownDescription": "The ARN of the device definition version that contains the devices you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceDefinitionVersionArn", "type": "string" }, "FunctionDefinitionVersionArn": { + "markdownDescription": "The ARN of the function definition version that contains the functions you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FunctionDefinitionVersionArn", "type": "string" }, "LoggerDefinitionVersionArn": { + "markdownDescription": "The ARN of the logger definition version that contains the loggers you want to deploy with the group version\\. \n \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoggerDefinitionVersionArn", "type": "string" }, "ResourceDefinitionVersionArn": { + "markdownDescription": "The ARN of the resource definition version that contains the resources you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceDefinitionVersionArn", "type": "string" }, "SubscriptionDefinitionVersionArn": { + "markdownDescription": "The ARN of the subscription definition version that contains the subscriptions you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubscriptionDefinitionVersionArn", "type": "string" } }, @@ -71816,27 +88029,43 @@ "additionalProperties": false, "properties": { "ConnectorDefinitionVersionArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the connector definition version that contains the connectors you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectorDefinitionVersionArn", "type": "string" }, "CoreDefinitionVersionArn": { + "markdownDescription": "The ARN of the core definition version that contains the core you want to deploy with the group version\\. Currently, the core definition version can contain only one core\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CoreDefinitionVersionArn", "type": "string" }, "DeviceDefinitionVersionArn": { + "markdownDescription": "The ARN of the device definition version that contains the devices you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceDefinitionVersionArn", "type": "string" }, "FunctionDefinitionVersionArn": { + "markdownDescription": "The ARN of the function definition version that contains the functions you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FunctionDefinitionVersionArn", "type": "string" }, "GroupId": { + "markdownDescription": "The ID of the group associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupId", "type": "string" }, "LoggerDefinitionVersionArn": { + "markdownDescription": "The ARN of the logger definition version that contains the loggers you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoggerDefinitionVersionArn", "type": "string" }, "ResourceDefinitionVersionArn": { + "markdownDescription": "The ARN of the resource definition version that contains the resources you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceDefinitionVersionArn", "type": "string" }, "SubscriptionDefinitionVersionArn": { + "markdownDescription": "The ARN of the subscription definition version that contains the subscriptions you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubscriptionDefinitionVersionArn", "type": "string" } }, @@ -71902,12 +88131,18 @@ "additionalProperties": false, "properties": { "InitialVersion": { - "$ref": "#/definitions/AWS::Greengrass::LoggerDefinition.LoggerDefinitionVersion" + "$ref": "#/definitions/AWS::Greengrass::LoggerDefinition.LoggerDefinitionVersion", + "markdownDescription": "The logger definition version to include when the logger definition is created\\. A logger definition version contains a list of [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-logger.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-logger.html) property types\\. \nTo associate a logger definition version after the logger definition is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinitionversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinitionversion.html) resource and specify the ID of this logger definition\\.\n*Required*: No \n*Type*: [LoggerDefinitionVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-loggerdefinitionversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitialVersion" }, "Name": { + "markdownDescription": "The name of the logger definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { + "markdownDescription": "Application\\-specific metadata to attach to the logger definition\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\.", + "title": "Tags", "type": "object" } }, @@ -71941,18 +88176,28 @@ "additionalProperties": false, "properties": { "Component": { + "markdownDescription": "The source of the log event\\. Valid values are `GreengrassSystem` or `Lambda`\\. When `GreengrassSystem` is used, events from Greengrass system components are logged\\. When `Lambda` is used, events from user\\-defined Lambda functions are logged\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Component", "type": "string" }, "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the logger\\. This value must be unique within the logger definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "string" }, "Level": { + "markdownDescription": "The log\\-level threshold\\. Log events below this threshold are filtered out and aren't stored\\. Valid values are `DEBUG`, `INFO` \\(recommended\\), `WARN`, `ERROR`, or `FATAL`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Level", "type": "string" }, "Space": { + "markdownDescription": "The amount of file space \\(in KB\\) to use when writing logs to the local file system\\. This property does not apply for CloudWatch Logs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Space", "type": "number" }, "Type": { + "markdownDescription": "The storage mechanism for log events\\. Valid values are `FileSystem` or `AWSCloudWatch`\\. When `AWSCloudWatch` is used, log events are sent to CloudWatch Logs\\. When `FileSystem` is used, log events are stored on the local file system\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -71971,6 +88216,8 @@ "items": { "$ref": "#/definitions/AWS::Greengrass::LoggerDefinition.Logger" }, + "markdownDescription": "The loggers in this version\\. \n*Required*: Yes \n*Type*: List of [Logger](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-logger.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Loggers", "type": "array" } }, @@ -72015,12 +88262,16 @@ "additionalProperties": false, "properties": { "LoggerDefinitionId": { + "markdownDescription": "The ID of the logger definition associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoggerDefinitionId", "type": "string" }, "Loggers": { "items": { "$ref": "#/definitions/AWS::Greengrass::LoggerDefinitionVersion.Logger" }, + "markdownDescription": "The loggers in this version\\. \n*Required*: Yes \n*Type*: List of [Logger](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinitionversion-logger.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Loggers", "type": "array" } }, @@ -72055,18 +88306,28 @@ "additionalProperties": false, "properties": { "Component": { + "markdownDescription": "The source of the log event\\. Valid values are `GreengrassSystem` or `Lambda`\\. When `GreengrassSystem` is used, events from Greengrass system components are logged\\. When `Lambda` is used, events from user\\-defined Lambda functions are logged\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Component", "type": "string" }, "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the logger\\. This value must be unique within the logger definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "string" }, "Level": { + "markdownDescription": "The log\\-level threshold\\. Log events below this threshold are filtered out and aren't stored\\. Valid values are `DEBUG`, `INFO` \\(recommended\\), `WARN`, `ERROR`, or `FATAL`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Level", "type": "string" }, "Space": { + "markdownDescription": "The amount of file space \\(in KB\\) to use when writing logs to the local file system\\. This property does not apply for CloudWatch Logs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Space", "type": "number" }, "Type": { + "markdownDescription": "The storage mechanism for log events\\. Valid values are `FileSystem` or `AWSCloudWatch`\\. When `AWSCloudWatch` is used, log events are sent to CloudWatch Logs\\. When `FileSystem` is used, log events are stored on the local file system\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -72114,12 +88375,18 @@ "additionalProperties": false, "properties": { "InitialVersion": { - "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceDefinitionVersion" + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceDefinitionVersion", + "markdownDescription": "The resource definition version to include when the resource definition is created\\. A resource definition version contains a list of [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourceinstance.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourceinstance.html) property types\\. \nTo associate a resource definition version after the resource definition is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinitionversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinitionversion.html) resource and specify the ID of this resource definition\\.\n*Required*: No \n*Type*: [ResourceDefinitionVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedefinitionversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitialVersion" }, "Name": { + "markdownDescription": "The name of the resource definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { + "markdownDescription": "Application\\-specific metadata to attach to the resource definition\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\.", + "title": "Tags", "type": "object" } }, @@ -72153,9 +88420,13 @@ "additionalProperties": false, "properties": { "AutoAddGroupOwner": { + "markdownDescription": "Indicates whether to give the privileges of the Linux group that owns the resource to the Lambda process\\. This gives the Lambda process the file access permissions of the Linux group\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutoAddGroupOwner", "type": "boolean" }, "GroupOwner": { + "markdownDescription": "The name of the Linux group whose privileges you want to add to the Lambda process\\. This value is ignored if `AutoAddGroupOwner` is true\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupOwner", "type": "string" } }, @@ -72168,9 +88439,13 @@ "additionalProperties": false, "properties": { "GroupOwnerSetting": { - "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.GroupOwnerSetting" + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.GroupOwnerSetting", + "markdownDescription": "Settings that define additional Linux OS group permissions to give to the Lambda function process\\. \n*Required*: No \n*Type*: [GroupOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-groupownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupOwnerSetting" }, "SourcePath": { + "markdownDescription": "The local absolute path of the device resource\\. The source path for a device resource can refer only to a character device or block device under `/dev`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourcePath", "type": "string" } }, @@ -72183,12 +88458,18 @@ "additionalProperties": false, "properties": { "DestinationPath": { + "markdownDescription": "The absolute local path of the resource in the Lambda environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationPath", "type": "string" }, "GroupOwnerSetting": { - "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.GroupOwnerSetting" + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.GroupOwnerSetting", + "markdownDescription": "Settings that define additional Linux OS group permissions to give to the Lambda function process\\. \n*Required*: No \n*Type*: [GroupOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-groupownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupOwnerSetting" }, "SourcePath": { + "markdownDescription": "The local absolute path of the volume resource on the host\\. The source path for a volume resource type cannot start with `/sys`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourcePath", "type": "string" } }, @@ -72202,19 +88483,29 @@ "additionalProperties": false, "properties": { "LocalDeviceResourceData": { - "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.LocalDeviceResourceData" + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.LocalDeviceResourceData", + "markdownDescription": "Settings for a local device resource\\. \n*Required*: No \n*Type*: [LocalDeviceResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-localdeviceresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalDeviceResourceData" }, "LocalVolumeResourceData": { - "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.LocalVolumeResourceData" + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.LocalVolumeResourceData", + "markdownDescription": "Settings for a local volume resource\\. \n*Required*: No \n*Type*: [LocalVolumeResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-localvolumeresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalVolumeResourceData" }, "S3MachineLearningModelResourceData": { - "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.S3MachineLearningModelResourceData" + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.S3MachineLearningModelResourceData", + "markdownDescription": "Settings for a machine learning resource stored in Amazon S3\\. \n*Required*: No \n*Type*: [S3MachineLearningModelResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-s3machinelearningmodelresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3MachineLearningModelResourceData" }, "SageMakerMachineLearningModelResourceData": { - "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.SageMakerMachineLearningModelResourceData" + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.SageMakerMachineLearningModelResourceData", + "markdownDescription": "Settings for a machine learning resource saved as an SageMaker training job\\. \n*Required*: No \n*Type*: [SageMakerMachineLearningModelResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-sagemakermachinelearningmodelresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SageMakerMachineLearningModelResourceData" }, "SecretsManagerSecretResourceData": { - "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.SecretsManagerSecretResourceData" + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.SecretsManagerSecretResourceData", + "markdownDescription": "Settings for a secret resource\\. \n*Required*: No \n*Type*: [SecretsManagerSecretResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-secretsmanagersecretresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecretsManagerSecretResourceData" } }, "type": "object" @@ -72226,6 +88517,8 @@ "items": { "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceInstance" }, + "markdownDescription": "The resources in this version\\. \n*Required*: Yes \n*Type*: List of [ResourceInstance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourceinstance.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Resources", "type": "array" } }, @@ -72238,9 +88531,13 @@ "additionalProperties": false, "properties": { "GroupOwner": { + "markdownDescription": "The group owner of the machine learning resource\\. This is the group ID \\(GID\\) of an existing Linux OS group on the system\\. The group's permissions are added to the Lambda process\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupOwner", "type": "string" }, "GroupPermission": { + "markdownDescription": "The permissions that the group owner has to the machine learning resource\\. Valid values are `rw` \\(read\\-write\\) or `ro` \\(read\\-only\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupPermission", "type": "string" } }, @@ -72254,13 +88551,19 @@ "additionalProperties": false, "properties": { "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the resource\\. This value must be unique within the resource definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "string" }, "Name": { + "markdownDescription": "The descriptive resource name, which is displayed on the AWS IoT Greengrass console\\. Maximum length 128 characters with pattern \\[a\\-zA\\-Z0\\-9:\\_\\-\\]\\+\\. This must be unique within a Greengrass group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "ResourceDataContainer": { - "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceDataContainer" + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceDataContainer", + "markdownDescription": "A container for resource data\\. The container takes only one of the following supported resource data types: `LocalDeviceResourceData`, `LocalVolumeResourceData`, `SageMakerMachineLearningModelResourceData`, `S3MachineLearningModelResourceData`, or `SecretsManagerSecretResourceData`\\. \nOnly one resource type can be defined for a `ResourceDataContainer` instance\\.\n*Required*: Yes \n*Type*: [ResourceDataContainer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedatacontainer.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceDataContainer" } }, "required": [ @@ -72274,12 +88577,18 @@ "additionalProperties": false, "properties": { "DestinationPath": { + "markdownDescription": "The absolute local path of the resource inside the Lambda environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationPath", "type": "string" }, "OwnerSetting": { - "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceDownloadOwnerSetting" + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceDownloadOwnerSetting", + "markdownDescription": "The owner setting for the downloaded machine learning resource\\. For more information, see [Access Machine Learning Resources from Lambda Functions](https://docs.aws.amazon.com/greengrass/latest/developerguide/access-ml-resources.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n*Required*: No \n*Type*: [ResourceDownloadOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedownloadownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OwnerSetting" }, "S3Uri": { + "markdownDescription": "The URI of the source model in an Amazon S3 bucket\\. The model package must be in `tar.gz` or `.zip` format\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Uri", "type": "string" } }, @@ -72293,12 +88602,18 @@ "additionalProperties": false, "properties": { "DestinationPath": { + "markdownDescription": "The absolute local path of the resource inside the Lambda environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationPath", "type": "string" }, "OwnerSetting": { - "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceDownloadOwnerSetting" + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceDownloadOwnerSetting", + "markdownDescription": "The owner setting for the downloaded machine learning resource\\. For more information, see [Access Machine Learning Resources from Lambda Functions](https://docs.aws.amazon.com/greengrass/latest/developerguide/access-ml-resources.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n*Required*: No \n*Type*: [ResourceDownloadOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedownloadownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OwnerSetting" }, "SageMakerJobArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SageMaker training job that represents the source model\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SageMakerJobArn", "type": "string" } }, @@ -72312,12 +88627,16 @@ "additionalProperties": false, "properties": { "ARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Secrets Manager secret to make available on the core\\. The value of the secret's latest version \\(represented by the `AWSCURRENT` staging label\\) is included by default\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ARN", "type": "string" }, "AdditionalStagingLabelsToDownload": { "items": { "type": "string" }, + "markdownDescription": "The staging labels whose values you want to make available on the core, in addition to `AWSCURRENT`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AdditionalStagingLabelsToDownload", "type": "array" } }, @@ -72362,12 +88681,16 @@ "additionalProperties": false, "properties": { "ResourceDefinitionId": { + "markdownDescription": "The ID of the resource definition associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceDefinitionId", "type": "string" }, "Resources": { "items": { "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.ResourceInstance" }, + "markdownDescription": "The resources in this version\\. \n*Required*: Yes \n*Type*: List of [ResourceInstance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourceinstance.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Resources", "type": "array" } }, @@ -72402,9 +88725,13 @@ "additionalProperties": false, "properties": { "AutoAddGroupOwner": { + "markdownDescription": "Indicates whether to give the privileges of the Linux group that owns the resource to the Lambda process\\. This gives the Lambda process the file access permissions of the Linux group\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutoAddGroupOwner", "type": "boolean" }, "GroupOwner": { + "markdownDescription": "The name of the Linux group whose privileges you want to add to the Lambda process\\. This value is ignored if `AutoAddGroupOwner` is true\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupOwner", "type": "string" } }, @@ -72417,9 +88744,13 @@ "additionalProperties": false, "properties": { "GroupOwnerSetting": { - "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.GroupOwnerSetting" + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.GroupOwnerSetting", + "markdownDescription": "Settings that define additional Linux OS group permissions to give to the Lambda function process\\. \n*Required*: No \n*Type*: [GroupOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-groupownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupOwnerSetting" }, "SourcePath": { + "markdownDescription": "The local absolute path of the device resource\\. The source path for a device resource can refer only to a character device or block device under `/dev`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourcePath", "type": "string" } }, @@ -72432,12 +88763,18 @@ "additionalProperties": false, "properties": { "DestinationPath": { + "markdownDescription": "The absolute local path of the resource in the Lambda environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationPath", "type": "string" }, "GroupOwnerSetting": { - "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.GroupOwnerSetting" + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.GroupOwnerSetting", + "markdownDescription": "Settings that define additional Linux OS group permissions to give to the Lambda function process\\. \n*Required*: No \n*Type*: [GroupOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-groupownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupOwnerSetting" }, "SourcePath": { + "markdownDescription": "The local absolute path of the volume resource on the host\\. The source path for a volume resource type cannot start with `/sys`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourcePath", "type": "string" } }, @@ -72451,19 +88788,29 @@ "additionalProperties": false, "properties": { "LocalDeviceResourceData": { - "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.LocalDeviceResourceData" + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.LocalDeviceResourceData", + "markdownDescription": "Settings for a local device resource\\. \n*Required*: No \n*Type*: [LocalDeviceResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-localdeviceresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalDeviceResourceData" }, "LocalVolumeResourceData": { - "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.LocalVolumeResourceData" + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.LocalVolumeResourceData", + "markdownDescription": "Settings for a local volume resource\\. \n*Required*: No \n*Type*: [LocalVolumeResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-localvolumeresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalVolumeResourceData" }, "S3MachineLearningModelResourceData": { - "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.S3MachineLearningModelResourceData" + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.S3MachineLearningModelResourceData", + "markdownDescription": "Settings for a machine learning resource stored in Amazon S3\\. \n*Required*: No \n*Type*: [S3MachineLearningModelResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-s3machinelearningmodelresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3MachineLearningModelResourceData" }, "SageMakerMachineLearningModelResourceData": { - "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.SageMakerMachineLearningModelResourceData" + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.SageMakerMachineLearningModelResourceData", + "markdownDescription": "Settings for a machine learning resource saved as an SageMaker training job\\. \n*Required*: No \n*Type*: [SageMakerMachineLearningModelResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-sagemakermachinelearningmodelresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SageMakerMachineLearningModelResourceData" }, "SecretsManagerSecretResourceData": { - "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.SecretsManagerSecretResourceData" + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.SecretsManagerSecretResourceData", + "markdownDescription": "Settings for a secret resource\\. \n*Required*: No \n*Type*: [SecretsManagerSecretResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-secretsmanagersecretresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecretsManagerSecretResourceData" } }, "type": "object" @@ -72472,9 +88819,13 @@ "additionalProperties": false, "properties": { "GroupOwner": { + "markdownDescription": "The group owner of the machine learning resource\\. This is the group ID \\(GID\\) of an existing Linux OS group on the system\\. The group's permissions are added to the Lambda process\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupOwner", "type": "string" }, "GroupPermission": { + "markdownDescription": "The permissions that the group owner has to the machine learning resource\\. Valid values are `rw` \\(read\\-write\\) or `ro` \\(read\\-only\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupPermission", "type": "string" } }, @@ -72488,13 +88839,19 @@ "additionalProperties": false, "properties": { "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the resource\\. This value must be unique within the resource definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "string" }, "Name": { + "markdownDescription": "The descriptive resource name, which is displayed on the AWS IoT Greengrass console\\. Maximum length 128 characters with pattern \\[a\\-zA\\-Z0\\-9:\\_\\-\\]\\+\\. This must be unique within a Greengrass group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "ResourceDataContainer": { - "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.ResourceDataContainer" + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.ResourceDataContainer", + "markdownDescription": "A container for resource data\\. The container takes only one of the following supported resource data types: `LocalDeviceResourceData`, `LocalVolumeResourceData`, `SageMakerMachineLearningModelResourceData`, `S3MachineLearningModelResourceData`, or `SecretsManagerSecretResourceData`\\. \nOnly one resource type can be defined for a `ResourceDataContainer` instance\\.\n*Required*: Yes \n*Type*: [ResourceDataContainer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedatacontainer.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceDataContainer" } }, "required": [ @@ -72508,12 +88865,18 @@ "additionalProperties": false, "properties": { "DestinationPath": { + "markdownDescription": "The absolute local path of the resource inside the Lambda environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationPath", "type": "string" }, "OwnerSetting": { - "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.ResourceDownloadOwnerSetting" + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.ResourceDownloadOwnerSetting", + "markdownDescription": "The owner setting for the downloaded machine learning resource\\. For more information, see [Access Machine Learning Resources from Lambda Functions](https://docs.aws.amazon.com/greengrass/latest/developerguide/access-ml-resources.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n*Required*: No \n*Type*: [ResourceDownloadOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedownloadownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OwnerSetting" }, "S3Uri": { + "markdownDescription": "The URI of the source model in an Amazon S3 bucket\\. The model package must be in `tar.gz` or `.zip` format\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Uri", "type": "string" } }, @@ -72527,12 +88890,18 @@ "additionalProperties": false, "properties": { "DestinationPath": { + "markdownDescription": "The absolute local path of the resource inside the Lambda environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationPath", "type": "string" }, "OwnerSetting": { - "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.ResourceDownloadOwnerSetting" + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.ResourceDownloadOwnerSetting", + "markdownDescription": "The owner setting for the downloaded machine learning resource\\. For more information, see [Access Machine Learning Resources from Lambda Functions](https://docs.aws.amazon.com/greengrass/latest/developerguide/access-ml-resources.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n*Required*: No \n*Type*: [ResourceDownloadOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedownloadownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OwnerSetting" }, "SageMakerJobArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SageMaker training job that represents the source model\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SageMakerJobArn", "type": "string" } }, @@ -72546,12 +88915,16 @@ "additionalProperties": false, "properties": { "ARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Secrets Manager secret to make available on the core\\. The value of the secret's latest version \\(represented by the `AWSCURRENT` staging label\\) is included by default\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ARN", "type": "string" }, "AdditionalStagingLabelsToDownload": { "items": { "type": "string" }, + "markdownDescription": "The staging labels whose values you want to make available on the core, in addition to `AWSCURRENT`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AdditionalStagingLabelsToDownload", "type": "array" } }, @@ -72596,12 +88969,18 @@ "additionalProperties": false, "properties": { "InitialVersion": { - "$ref": "#/definitions/AWS::Greengrass::SubscriptionDefinition.SubscriptionDefinitionVersion" + "$ref": "#/definitions/AWS::Greengrass::SubscriptionDefinition.SubscriptionDefinitionVersion", + "markdownDescription": "The subscription definition version to include when the subscription definition is created\\. A subscription definition version contains a list of [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinition-subscription.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinition-subscription.html) property types\\. \nTo associate a subscription definition version after the subscription definition is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinitionversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinitionversion.html) resource and specify the ID of this subscription definition\\.\n*Required*: No \n*Type*: [SubscriptionDefinitionVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinition-subscriptiondefinitionversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitialVersion" }, "Name": { + "markdownDescription": "The name of the subscription definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { + "markdownDescription": "Application\\-specific metadata to attach to the subscription definition\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\.", + "title": "Tags", "type": "object" } }, @@ -72635,15 +89014,23 @@ "additionalProperties": false, "properties": { "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the subscription\\. This value must be unique within the subscription definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "string" }, "Source": { + "markdownDescription": "The originator of the message\\. The value can be a thing ARN, the ARN of a Lambda function alias \\(recommended\\) or version, a connector ARN, `cloud` \\(which represents the AWS IoT cloud\\), or `GGShadowService`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Source", "type": "string" }, "Subject": { + "markdownDescription": "The MQTT topic used to route the message\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subject", "type": "string" }, "Target": { + "markdownDescription": "The destination of the message\\. The value can be a thing ARN, the ARN of a Lambda function alias \\(recommended\\) or version, a connector ARN, `cloud` \\(which represents the AWS IoT cloud\\), or `GGShadowService`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Target", "type": "string" } }, @@ -72662,6 +89049,8 @@ "items": { "$ref": "#/definitions/AWS::Greengrass::SubscriptionDefinition.Subscription" }, + "markdownDescription": "The subscriptions in this version\\. \n*Required*: Yes \n*Type*: List of [Subscription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinition-subscription.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subscriptions", "type": "array" } }, @@ -72706,12 +89095,16 @@ "additionalProperties": false, "properties": { "SubscriptionDefinitionId": { + "markdownDescription": "The ID of the subscription definition associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubscriptionDefinitionId", "type": "string" }, "Subscriptions": { "items": { "$ref": "#/definitions/AWS::Greengrass::SubscriptionDefinitionVersion.Subscription" }, + "markdownDescription": "The subscriptions in this version\\. \n*Required*: Yes \n*Type*: List of [Subscription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinitionversion-subscription.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subscriptions", "type": "array" } }, @@ -72746,15 +89139,23 @@ "additionalProperties": false, "properties": { "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the subscription\\. This value must be unique within the subscription definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "string" }, "Source": { + "markdownDescription": "The originator of the message\\. The value can be a thing ARN, the ARN of a Lambda function alias \\(recommended\\) or version, a connector ARN, `cloud` \\(which represents the AWS IoT cloud\\), or `GGShadowService`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Source", "type": "string" }, "Subject": { + "markdownDescription": "The MQTT topic used to route the message\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subject", "type": "string" }, "Target": { + "markdownDescription": "The destination of the message\\. The value can be a thing ARN, the ARN of a Lambda function alias \\(recommended\\) or version, a connector ARN, `cloud` \\(which represents the AWS IoT cloud\\), or `GGShadowService`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Target", "type": "string" } }, @@ -72802,18 +89203,24 @@ "additionalProperties": false, "properties": { "InlineRecipe": { + "markdownDescription": "The recipe to use to create the component\\. The recipe defines the component's metadata, parameters, dependencies, lifecycle, artifacts, and platform compatibility\\. \nYou must specify either `InlineRecipe` or `LambdaFunction`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InlineRecipe", "type": "string" }, "LambdaFunction": { - "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaFunctionRecipeSource" + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaFunctionRecipeSource", + "markdownDescription": "The parameters to create a component from a Lambda function\\. \nYou must specify either `InlineRecipe` or `LambdaFunction`\\. \n*Required*: No \n*Type*: [LambdaFunctionRecipeSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdafunctionrecipesource.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LambdaFunction" }, "Tags": { "additionalProperties": true, + "markdownDescription": "Application\\-specific metadata to attach to the component version\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tag your AWS IoT Greengrass Version 2 resources](https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html) in the *AWS IoT Greengrass V2 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\.", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" } }, @@ -72843,9 +89250,13 @@ "additionalProperties": false, "properties": { "DependencyType": { + "markdownDescription": "The type of this dependency\\. Choose from the following options: \n+ `SOFT` \u2013 The component doesn't restart if the dependency changes state\\.\n+ `HARD` \u2013 The component restarts if the dependency changes state\\.\nDefault: `HARD` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DependencyType", "type": "string" }, "VersionRequirement": { + "markdownDescription": "The component version requirement for the component dependency\\. \nAWS IoT Greengrass uses semantic version constraints\\. For more information, see [Semantic Versioning](https://semver.org/)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VersionRequirement", "type": "string" } }, @@ -72856,14 +89267,18 @@ "properties": { "Attributes": { "additionalProperties": true, + "markdownDescription": "A dictionary of attributes for the platform\\. The software defines the `os` and `platform` by default\\. You can specify additional platform attributes for a core device when you deploy the Greengrass nucleus component\\. For more information, see the [Greengrass nucleus component](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html) in the *AWS IoT Greengrass V2 Developer Guide*\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Attributes", "type": "object" }, "Name": { + "markdownDescription": "The friendly name of the platform\\. This name helps you identify the platform\\. \nIf you omit this parameter, AWS IoT Greengrass creates a friendly name from the `os` and `architecture` of the platform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" } }, @@ -72876,18 +89291,26 @@ "items": { "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaDeviceMount" }, + "markdownDescription": "The list of system devices that the container can access\\. \n*Required*: No \n*Type*: List of [LambdaDeviceMount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdadevicemount.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Devices", "type": "array" }, "MemorySizeInKB": { + "markdownDescription": "The memory size of the container, expressed in kilobytes\\. \nDefault: `16384` \\(16 MB\\) \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MemorySizeInKB", "type": "number" }, "MountROSysfs": { + "markdownDescription": "Whether or not the container can read information from the device's `/sys` folder\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MountROSysfs", "type": "boolean" }, "Volumes": { "items": { "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaVolumeMount" }, + "markdownDescription": "The list of volumes that the container can access\\. \n*Required*: No \n*Type*: List of [LambdaVolumeMount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdavolumemount.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Volumes", "type": "array" } }, @@ -72897,12 +89320,18 @@ "additionalProperties": false, "properties": { "AddGroupOwner": { + "markdownDescription": "Whether or not to add the component's system user as an owner of the device\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AddGroupOwner", "type": "boolean" }, "Path": { + "markdownDescription": "The mount path for the device in the file system\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Path", "type": "string" }, "Permission": { + "markdownDescription": "The permission to access the device: read/only \\(`ro`\\) or read/write \\(`rw`\\)\\. \nDefault: `ro` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Permission", "type": "string" } }, @@ -72912,9 +89341,13 @@ "additionalProperties": false, "properties": { "Topic": { + "markdownDescription": "The topic to which to subscribe to receive event messages\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Topic", "type": "string" }, "Type": { + "markdownDescription": "The type of event source\\. Choose from the following options: \n+ `PUB_SUB` \u2013 Subscribe to local publish/subscribe messages\\. This event source type doesn't support MQTT wildcards \\(`+` and `#`\\) in the event source topic\\.\n+ `IOT_CORE` \u2013 Subscribe to AWS IoT Core MQTT messages\\. This event source type supports MQTT wildcards \\(`+` and `#`\\) in the event source topic\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -72925,47 +89358,69 @@ "properties": { "EnvironmentVariables": { "additionalProperties": true, + "markdownDescription": "The map of environment variables that are available to the Lambda function when it runs\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "EnvironmentVariables", "type": "object" }, "EventSources": { "items": { "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaEventSource" }, + "markdownDescription": "The list of event sources to which to subscribe to receive work messages\\. The Lambda function runs when it receives a message from an event source\\. You can subscribe this function to local publish/subscribe messages and AWS IoT Core MQTT messages\\. \n*Required*: No \n*Type*: List of [LambdaEventSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdaeventsource.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EventSources", "type": "array" }, "ExecArgs": { "items": { "type": "string" }, + "markdownDescription": "The list of arguments to pass to the Lambda function when it runs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExecArgs", "type": "array" }, "InputPayloadEncodingType": { + "markdownDescription": "The encoding type that the Lambda function supports\\. \nDefault: `json` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InputPayloadEncodingType", "type": "string" }, "LinuxProcessParams": { - "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaLinuxProcessParams" + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaLinuxProcessParams", + "markdownDescription": "The parameters for the Linux process that contains the Lambda function\\. \n*Required*: No \n*Type*: [LambdaLinuxProcessParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdalinuxprocessparams.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LinuxProcessParams" }, "MaxIdleTimeInSeconds": { + "markdownDescription": "The maximum amount of time in seconds that a non\\-pinned Lambda function can idle before the software stops its process\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaxIdleTimeInSeconds", "type": "number" }, "MaxInstancesCount": { + "markdownDescription": "The maximum number of instances that a non\\-pinned Lambda function can run at the same time\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaxInstancesCount", "type": "number" }, "MaxQueueSize": { + "markdownDescription": "The maximum size of the message queue for the Lambda function component\\. The Greengrass core device stores messages in a FIFO \\(first\\-in\\-first\\-out\\) queue until it can run the Lambda function to consume each message\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaxQueueSize", "type": "number" }, "Pinned": { + "markdownDescription": "Whether or not the Lambda function is pinned, or long\\-lived\\. \n+ A pinned Lambda function starts when the starts and keeps running in its own container\\.\n+ A non\\-pinned Lambda function starts only when it receives a work item and exists after it idles for `maxIdleTimeInSeconds`\\. If the function has multiple work items, the software creates multiple instances of the function\\.\nDefault: `true` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Pinned", "type": "boolean" }, "StatusTimeoutInSeconds": { + "markdownDescription": "The interval in seconds at which a pinned \\(also known as long\\-lived\\) Lambda function component sends status updates to the Lambda manager component\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StatusTimeoutInSeconds", "type": "number" }, "TimeoutInSeconds": { + "markdownDescription": "The maximum amount of time in seconds that the Lambda function can process a work item\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TimeoutInSeconds", "type": "number" } }, @@ -72976,29 +89431,41 @@ "properties": { "ComponentDependencies": { "additionalProperties": false, + "markdownDescription": "The component versions on which this Lambda function component depends\\. \n*Required*: No \n*Type*: Map of [ComponentDependencyRequirement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-componentdependencyrequirement.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.ComponentDependencyRequirement" } }, + "title": "ComponentDependencies", "type": "object" }, "ComponentLambdaParameters": { - "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaExecutionParameters" + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaExecutionParameters", + "markdownDescription": "The system and runtime parameters for the Lambda function as it runs on the Greengrass core device\\. \n*Required*: No \n*Type*: [LambdaExecutionParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdaexecutionparameters.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ComponentLambdaParameters" }, "ComponentName": { + "markdownDescription": "The name of the component\\. \nDefaults to the name of the Lambda function\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ComponentName", "type": "string" }, "ComponentPlatforms": { "items": { "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.ComponentPlatform" }, + "markdownDescription": "The platforms that the component version supports\\. \n*Required*: No \n*Type*: List of [ComponentPlatform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-componentplatform.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ComponentPlatforms", "type": "array" }, "ComponentVersion": { + "markdownDescription": "The version of the component\\. \nDefaults to the version of the Lambda function as a semantic version\\. For example, if your function version is `3`, the component version becomes `3.0.0`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ComponentVersion", "type": "string" }, "LambdaArn": { + "markdownDescription": "The ARN of the Lambda function\\. The ARN must include the version of the function to import\\. You can't use version aliases like `$LATEST`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LambdaArn", "type": "string" } }, @@ -73008,9 +89475,13 @@ "additionalProperties": false, "properties": { "ContainerParams": { - "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaContainerParams" + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaContainerParams", + "markdownDescription": "The parameters for the container in which the Lambda function runs\\. \n*Required*: No \n*Type*: [LambdaContainerParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdacontainerparams.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerParams" }, "IsolationMode": { + "markdownDescription": "The isolation mode for the process that contains the Lambda function\\. The process can run in an isolated runtime environment inside the AWS IoT Greengrass container, or as a regular process outside any container\\. \nDefault: `GreengrassContainer` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IsolationMode", "type": "string" } }, @@ -73020,15 +89491,23 @@ "additionalProperties": false, "properties": { "AddGroupOwner": { + "markdownDescription": "Whether or not to add the AWS IoT Greengrass user group as an owner of the volume\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AddGroupOwner", "type": "boolean" }, "DestinationPath": { + "markdownDescription": "The path to the logical volume in the file system\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationPath", "type": "string" }, "Permission": { + "markdownDescription": "The permission to access the volume: read/only \\(`ro`\\) or read/write \\(`rw`\\)\\. \nDefault: `ro` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Permission", "type": "string" }, "SourcePath": { + "markdownDescription": "The path to the physical volume in the file system\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourcePath", "type": "string" } }, @@ -73362,15 +89841,21 @@ "additionalProperties": false, "properties": { "ConfigData": { - "$ref": "#/definitions/AWS::GroundStation::Config.ConfigData" + "$ref": "#/definitions/AWS::GroundStation::Config.ConfigData", + "markdownDescription": "Object containing the parameters of a config\\. Only one subtype may be specified per config\\. See the subtype definitions for a description of each config subtype\\. \n*Required*: Yes \n*Type*: [ConfigData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-configdata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfigData" }, "Name": { + "markdownDescription": "The name of the config object\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Tags assigned to a resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -73405,7 +89890,9 @@ "additionalProperties": false, "properties": { "SpectrumConfig": { - "$ref": "#/definitions/AWS::GroundStation::Config.SpectrumConfig" + "$ref": "#/definitions/AWS::GroundStation::Config.SpectrumConfig", + "markdownDescription": "Defines the spectrum configuration\\. \n*Required*: No \n*Type*: [SpectrumConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-spectrumconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpectrumConfig" } }, "type": "object" @@ -73414,13 +89901,19 @@ "additionalProperties": false, "properties": { "DecodeConfig": { - "$ref": "#/definitions/AWS::GroundStation::Config.DecodeConfig" + "$ref": "#/definitions/AWS::GroundStation::Config.DecodeConfig", + "markdownDescription": "Defines how the RF signal will be decoded\\. \n*Required*: No \n*Type*: [DecodeConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-decodeconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DecodeConfig" }, "DemodulationConfig": { - "$ref": "#/definitions/AWS::GroundStation::Config.DemodulationConfig" + "$ref": "#/definitions/AWS::GroundStation::Config.DemodulationConfig", + "markdownDescription": "Defines how the RF signal will be demodulated\\. \n*Required*: No \n*Type*: [DemodulationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-demodulationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DemodulationConfig" }, "SpectrumConfig": { - "$ref": "#/definitions/AWS::GroundStation::Config.SpectrumConfig" + "$ref": "#/definitions/AWS::GroundStation::Config.SpectrumConfig", + "markdownDescription": "Defines the spectrum configuration\\. \n*Required*: No \n*Type*: [SpectrumConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-spectrumconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpectrumConfig" } }, "type": "object" @@ -73429,12 +89922,18 @@ "additionalProperties": false, "properties": { "SpectrumConfig": { - "$ref": "#/definitions/AWS::GroundStation::Config.UplinkSpectrumConfig" + "$ref": "#/definitions/AWS::GroundStation::Config.UplinkSpectrumConfig", + "markdownDescription": "Defines the spectrum configuration\\. \n*Required*: No \n*Type*: [UplinkSpectrumConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-uplinkspectrumconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpectrumConfig" }, "TargetEirp": { - "$ref": "#/definitions/AWS::GroundStation::Config.Eirp" + "$ref": "#/definitions/AWS::GroundStation::Config.Eirp", + "markdownDescription": "The equivalent isotropically radiated power \\(EIRP\\) to use for uplink transmissions\\. Valid values are between 20\\.0 to 50\\.0 dBW\\. \n*Required*: No \n*Type*: [Eirp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-eirp.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetEirp" }, "TransmitDisabled": { + "markdownDescription": "Whether or not uplink transmit is disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransmitDisabled", "type": "boolean" } }, @@ -73444,25 +89943,39 @@ "additionalProperties": false, "properties": { "AntennaDownlinkConfig": { - "$ref": "#/definitions/AWS::GroundStation::Config.AntennaDownlinkConfig" + "$ref": "#/definitions/AWS::GroundStation::Config.AntennaDownlinkConfig", + "markdownDescription": "Provides information for an antenna downlink config object\\. Antenna downlink config objects are used to provide parameters for downlinks where no demodulation or decoding is performed by Ground Station \\(RF over IP downlinks\\)\\. \n*Required*: No \n*Type*: [AntennaDownlinkConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-antennadownlinkconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AntennaDownlinkConfig" }, "AntennaDownlinkDemodDecodeConfig": { - "$ref": "#/definitions/AWS::GroundStation::Config.AntennaDownlinkDemodDecodeConfig" + "$ref": "#/definitions/AWS::GroundStation::Config.AntennaDownlinkDemodDecodeConfig", + "markdownDescription": "Provides information for a downlink demod decode config object\\. Downlink demod decode config objects are used to provide parameters for downlinks where the Ground Station service will demodulate and decode the downlinked data\\. \n*Required*: No \n*Type*: [AntennaDownlinkDemodDecodeConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-antennadownlinkdemoddecodeconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AntennaDownlinkDemodDecodeConfig" }, "AntennaUplinkConfig": { - "$ref": "#/definitions/AWS::GroundStation::Config.AntennaUplinkConfig" + "$ref": "#/definitions/AWS::GroundStation::Config.AntennaUplinkConfig", + "markdownDescription": "Provides information for an uplink config object\\. Uplink config objects are used to provide parameters for uplink contacts\\. \n*Required*: No \n*Type*: [AntennaUplinkConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-antennauplinkconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AntennaUplinkConfig" }, "DataflowEndpointConfig": { - "$ref": "#/definitions/AWS::GroundStation::Config.DataflowEndpointConfig" + "$ref": "#/definitions/AWS::GroundStation::Config.DataflowEndpointConfig", + "markdownDescription": "Provides information for a dataflow endpoint config object\\. Dataflow endpoint config objects are used to provide parameters about which IP endpoint\\(s\\) to use during a contact\\. Dataflow endpoints are where Ground Station sends data during a downlink contact and where Ground Station receives data to send to the satellite during an uplink contact\\. \n*Required*: No \n*Type*: [DataflowEndpointConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-dataflowendpointconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataflowEndpointConfig" }, "S3RecordingConfig": { - "$ref": "#/definitions/AWS::GroundStation::Config.S3RecordingConfig" + "$ref": "#/definitions/AWS::GroundStation::Config.S3RecordingConfig", + "markdownDescription": "Provides information for an S3 recording config object\\. S3 recording config objects are used to provide parameters for S3 recording during downlink contacts\\. \n*Required*: No \n*Type*: [S3RecordingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-s3recordingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3RecordingConfig" }, "TrackingConfig": { - "$ref": "#/definitions/AWS::GroundStation::Config.TrackingConfig" + "$ref": "#/definitions/AWS::GroundStation::Config.TrackingConfig", + "markdownDescription": "Provides information for a tracking config object\\. Tracking config objects are used to provide parameters about how to track the satellite through the sky during a contact\\. \n*Required*: No \n*Type*: [TrackingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-trackingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrackingConfig" }, "UplinkEchoConfig": { - "$ref": "#/definitions/AWS::GroundStation::Config.UplinkEchoConfig" + "$ref": "#/definitions/AWS::GroundStation::Config.UplinkEchoConfig", + "markdownDescription": "Provides information for an uplink echo config object\\. Uplink echo config objects are used to provide parameters for uplink echo during uplink contacts\\. \n*Required*: No \n*Type*: [UplinkEchoConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-uplinkechoconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UplinkEchoConfig" } }, "type": "object" @@ -73471,9 +89984,13 @@ "additionalProperties": false, "properties": { "DataflowEndpointName": { + "markdownDescription": "The name of the dataflow endpoint to use during contacts\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataflowEndpointName", "type": "string" }, "DataflowEndpointRegion": { + "markdownDescription": "The region of the dataflow endpoint to use during contacts\\. When omitted, Ground Station will use the region of the contact\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataflowEndpointRegion", "type": "string" } }, @@ -73483,6 +90000,8 @@ "additionalProperties": false, "properties": { "UnvalidatedJSON": { + "markdownDescription": "The decoding settings are in JSON format and define a set of steps to perform to decode the data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnvalidatedJSON", "type": "string" } }, @@ -73492,6 +90011,8 @@ "additionalProperties": false, "properties": { "UnvalidatedJSON": { + "markdownDescription": "The demodulation settings are in JSON format and define parameters for demodulation, for example which modulation scheme \\(e\\.g\\. PSK, QPSK, etc\\.\\) and matched filter to use\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnvalidatedJSON", "type": "string" } }, @@ -73501,9 +90022,13 @@ "additionalProperties": false, "properties": { "Units": { + "markdownDescription": "The units of the EIRP\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Units", "type": "string" }, "Value": { + "markdownDescription": "The value of the EIRP\\. Valid values are between 20\\.0 to 50\\.0 dBW\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "number" } }, @@ -73513,9 +90038,13 @@ "additionalProperties": false, "properties": { "Units": { + "markdownDescription": "The units of the frequency\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Units", "type": "string" }, "Value": { + "markdownDescription": "The value of the frequency\\. Valid values are between 2200 to 2300 MHz and 7750 to 8400 MHz for downlink and 2025 to 2120 MHz for uplink\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "number" } }, @@ -73525,9 +90054,13 @@ "additionalProperties": false, "properties": { "Units": { + "markdownDescription": "The units of the bandwidth\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Units", "type": "string" }, "Value": { + "markdownDescription": "The value of the bandwidth\\. AWS Ground Station currently has the following bandwidth limitations: \n+ For `AntennaDownlinkDemodDecodeconfig`, valid values are between 125 kHz to 650 MHz\\.\n+ For `AntennaDownlinkconfig`, valid values are between 10 kHz to 54 MHz\\.\n+ For `AntennaUplinkConfig`, valid values are between 10 kHz to 54 MHz\\.\n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "number" } }, @@ -73537,12 +90070,18 @@ "additionalProperties": false, "properties": { "BucketArn": { + "markdownDescription": "S3 Bucket where the data is written\\. The name of the S3 Bucket provided must begin with `aws-groundstation`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketArn", "type": "string" }, "Prefix": { + "markdownDescription": "The prefix of the S3 data object\\. If you choose to use any optional keys for substitution, these values will be replaced with the corresponding information from your contact details\\. For example, a prefix of `{satellite_id}/{year}/{month}/{day}/` will replaced with `fake_satellite_id/2021/01/10/` \n*Optional keys for substitution*: `{satellite_id}` \\| `{config-name}` \\| `{config-id}` \\| `{year}` \\| `{month}` \\| `{day}` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" }, "RoleArn": { + "markdownDescription": "Defines the ARN of the role assumed for putting archives to S3\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -73552,12 +90091,18 @@ "additionalProperties": false, "properties": { "Bandwidth": { - "$ref": "#/definitions/AWS::GroundStation::Config.FrequencyBandwidth" + "$ref": "#/definitions/AWS::GroundStation::Config.FrequencyBandwidth", + "markdownDescription": "The bandwidth of the spectrum\\. AWS Ground Station currently has the following bandwidth limitations: \n+ For `AntennaDownlinkDemodDecodeconfig`, valid values are between 125 kHz to 650 MHz\\.\n+ For `AntennaDownlinkconfig`, valid values are between 10 kHz to 54 MHz\\.\n+ For `AntennaUplinkConfig`, valid values are between 10 kHz to 54 MHz\\.\n*Required*: No \n*Type*: [FrequencyBandwidth](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-frequencybandwidth.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bandwidth" }, "CenterFrequency": { - "$ref": "#/definitions/AWS::GroundStation::Config.Frequency" + "$ref": "#/definitions/AWS::GroundStation::Config.Frequency", + "markdownDescription": "The center frequency of the spectrum\\. Valid values are between 2200 to 2300 MHz and 7750 to 8400 MHz for downlink and 2025 to 2120 MHz for uplink\\. \n*Required*: No \n*Type*: [Frequency](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-frequency.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CenterFrequency" }, "Polarization": { + "markdownDescription": "The polarization of the spectrum\\. Valid values are `\"RIGHT_HAND\"` and `\"LEFT_HAND\"`\\. Capturing both `\"RIGHT_HAND\"` and `\"LEFT_HAND\"` polarization requires two separate configs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Polarization", "type": "string" } }, @@ -73567,6 +90112,8 @@ "additionalProperties": false, "properties": { "Autotrack": { + "markdownDescription": "Specifies whether or not to use autotrack\\. `REMOVED` specifies that program track should only be used during the contact\\. `PREFERRED` specifies that autotracking is preferred during the contact but fallback to program track if the signal is lost\\. `REQUIRED` specifies that autotracking is required during the contact and not to use program track if the signal is lost\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Autotrack", "type": "string" } }, @@ -73576,9 +90123,13 @@ "additionalProperties": false, "properties": { "AntennaUplinkConfigArn": { + "markdownDescription": "Defines the ARN of the uplink config to echo back to a dataflow endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AntennaUplinkConfigArn", "type": "string" }, "Enabled": { + "markdownDescription": "Whether or not uplink echo is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -73588,9 +90139,13 @@ "additionalProperties": false, "properties": { "CenterFrequency": { - "$ref": "#/definitions/AWS::GroundStation::Config.Frequency" + "$ref": "#/definitions/AWS::GroundStation::Config.Frequency", + "markdownDescription": "The center frequency of the spectrum\\. Valid values are between 2200 to 2300 MHz and 7750 to 8400 MHz for downlink and 2025 to 2120 MHz for uplink\\. \n*Required*: No \n*Type*: [Frequency](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-frequency.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CenterFrequency" }, "Polarization": { + "markdownDescription": "The polarization of the spectrum\\. Valid values are `\"RIGHT_HAND\"` and `\"LEFT_HAND\"`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Polarization", "type": "string" } }, @@ -73631,16 +90186,26 @@ "Properties": { "additionalProperties": false, "properties": { + "ContactPostPassDurationSeconds": { + "type": "number" + }, + "ContactPrePassDurationSeconds": { + "type": "number" + }, "EndpointDetails": { "items": { "$ref": "#/definitions/AWS::GroundStation::DataflowEndpointGroup.EndpointDetails" }, + "markdownDescription": "List of Endpoint Details, containing address and port for each endpoint\\. \n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-endpointdetails.html) of [EndpointDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-endpointdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointDetails", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Tags assigned to a resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -73674,12 +90239,18 @@ "additionalProperties": false, "properties": { "Address": { - "$ref": "#/definitions/AWS::GroundStation::DataflowEndpointGroup.SocketAddress" + "$ref": "#/definitions/AWS::GroundStation::DataflowEndpointGroup.SocketAddress", + "markdownDescription": "The address and port of an endpoint\\. \n*Required*: No \n*Type*: [SocketAddress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-socketaddress.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Address" }, "Mtu": { + "markdownDescription": "Maximum transmission unit \\(MTU\\) size in bytes of a dataflow endpoint\\. Valid values are between 1400 and 1500\\. A default value of 1500 is used if not set\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mtu", "type": "number" }, "Name": { + "markdownDescription": "The endpoint name\\. \n When listing available contacts for a satellite, Ground Station searches for a dataflow endpoint whose name matches the value specified by the dataflow endpoint config of the selected mission profile\\. If no matching dataflow endpoints are found then Ground Station will not display any available contacts for the satellite\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -73689,10 +90260,14 @@ "additionalProperties": false, "properties": { "Endpoint": { - "$ref": "#/definitions/AWS::GroundStation::DataflowEndpointGroup.DataflowEndpoint" + "$ref": "#/definitions/AWS::GroundStation::DataflowEndpointGroup.DataflowEndpoint", + "markdownDescription": "Information about the endpoint such as name and the endpoint address\\. \n*Required*: No \n*Type*: [DataflowEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-dataflowendpoint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Endpoint" }, "SecurityDetails": { - "$ref": "#/definitions/AWS::GroundStation::DataflowEndpointGroup.SecurityDetails" + "$ref": "#/definitions/AWS::GroundStation::DataflowEndpointGroup.SecurityDetails", + "markdownDescription": "The role ARN, and IDs for security groups and subnets\\. \n*Required*: No \n*Type*: [SecurityDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-securitydetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityDetails" } }, "type": "object" @@ -73701,18 +90276,24 @@ "additionalProperties": false, "properties": { "RoleArn": { + "markdownDescription": "The ARN of a role which Ground Station has permission to assume, such as `arn:aws:iam::1234567890:role/DataDeliveryServiceRole`\\. \n Ground Station will assume this role and create an ENI in your VPC on the specified subnet upon creation of a dataflow endpoint group\\. This ENI is used as the ingress/egress point for data streamed during a satellite contact\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "SecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "The security group Ids of the security role, such as `sg-1234567890abcdef0`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "The subnet Ids of the security details, such as `subnet-12345678`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" } }, @@ -73722,9 +90303,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the endpoint, such as `Endpoint 1`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Port": { + "markdownDescription": "The port of the endpoint, such as `55888`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" } }, @@ -73766,30 +90351,44 @@ "additionalProperties": false, "properties": { "ContactPostPassDurationSeconds": { + "markdownDescription": "Amount of time in seconds after a contact ends that you\u2019d like to receive a CloudWatch Event indicating the pass has finished\\. For more information on CloudWatch Events, see the [What Is CloudWatch Events?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContactPostPassDurationSeconds", "type": "number" }, "ContactPrePassDurationSeconds": { + "markdownDescription": "Amount of time in seconds prior to contact start that you'd like to receive a CloudWatch Event indicating an upcoming pass\\. For more information on CloudWatch Events, see the [What Is CloudWatch Events?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContactPrePassDurationSeconds", "type": "number" }, "DataflowEdges": { "items": { "$ref": "#/definitions/AWS::GroundStation::MissionProfile.DataflowEdge" }, + "markdownDescription": "A list containing lists of config ARNs\\. Each list of config ARNs is an edge, with a \"from\" config and a \"to\" config\\. \n*Required*: Yes \n*Type*: List of [DataflowEdge](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-missionprofile-dataflowedge.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataflowEdges", "type": "array" }, "MinimumViableContactDurationSeconds": { + "markdownDescription": "Minimum length of a contact in seconds that Ground Station will return when listing contacts\\. Ground Station will not return contacts shorter than this duration\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinimumViableContactDurationSeconds", "type": "number" }, "Name": { + "markdownDescription": "The name of the mission profile\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Tags assigned to the mission profile\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TrackingConfigArn": { + "markdownDescription": "The ARN of a tracking config objects that defines how to track the satellite through the sky during a contact\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrackingConfigArn", "type": "string" } }, @@ -73826,9 +90425,13 @@ "additionalProperties": false, "properties": { "Destination": { + "markdownDescription": "The ARN of the destination for this dataflow edge\\. For example, specify the ARN of a dataflow endpoint config for a downlink edge or an antenna uplink config for an uplink edge\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination", "type": "string" }, "Source": { + "markdownDescription": "The ARN of the source for this dataflow edge\\. For example, specify the ARN of an antenna downlink config for a downlink edge or a dataflow endpoint config for an uplink edge\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source", "type": "string" } }, @@ -73870,12 +90473,18 @@ "additionalProperties": false, "properties": { "DataSources": { - "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNDataSourceConfigurations" + "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNDataSourceConfigurations", + "markdownDescription": "Describes which data sources will be enabled for the detector\\. \n*Required*: No \n*Type*: [CFNDataSourceConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-detector-cfndatasourceconfigurations.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSources" }, "Enable": { + "markdownDescription": "Specifies whether the detector is to be enabled on creation\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enable", "type": "boolean" }, "FindingPublishingFrequency": { + "markdownDescription": "Specifies how frequently updated findings are exported\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `FIFTEEN_MINUTES | ONE_HOUR | SIX_HOURS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FindingPublishingFrequency", "type": "string" }, "Tags": { @@ -73915,13 +90524,17 @@ "additionalProperties": false, "properties": { "Kubernetes": { - "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNKubernetesConfiguration" + "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNKubernetesConfiguration", + "markdownDescription": "Describes which Kuberentes data sources are enabled for a detector\\. \n*Required*: No \n*Type*: [CFNKubernetesConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-detector-cfnkubernetesconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Kubernetes" }, "MalwareProtection": { "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNMalwareProtectionConfiguration" }, "S3Logs": { - "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNS3LogsConfiguration" + "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNS3LogsConfiguration", + "markdownDescription": "Describes whether S3 data event logs are enabled as a data source\\. \n*Required*: No \n*Type*: [CFNS3LogsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-detector-cfns3logsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Logs" } }, "type": "object" @@ -73930,6 +90543,8 @@ "additionalProperties": false, "properties": { "Enable": { + "markdownDescription": "Describes whether Kubernetes audit logs are enabled as a data source for the detector\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enable", "type": "boolean" } }, @@ -73939,7 +90554,9 @@ "additionalProperties": false, "properties": { "AuditLogs": { - "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNKubernetesAuditLogsConfiguration" + "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNKubernetesAuditLogsConfiguration", + "markdownDescription": "Describes whether Kubernetes audit logs are enabled as a data source for the detector\\. \n*Required*: No \n*Type*: [CFNKubernetesAuditLogsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-detector-cfnkubernetesauditlogsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuditLogs" } }, "type": "object" @@ -73957,6 +90574,8 @@ "additionalProperties": false, "properties": { "Enable": { + "markdownDescription": "The status of S3 data event logs as a data source\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enable", "type": "boolean" } }, @@ -74007,21 +90626,33 @@ "additionalProperties": false, "properties": { "Action": { + "markdownDescription": "Specifies the action that is to be applied to the findings that match the filter\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ARCHIVE | NOOP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", "type": "string" }, "Description": { + "markdownDescription": "The description of the filter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DetectorId": { + "markdownDescription": "The ID of the detector belonging to the GuardDuty account that you want to create a filter for\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DetectorId", "type": "string" }, "FindingCriteria": { - "$ref": "#/definitions/AWS::GuardDuty::Filter.FindingCriteria" + "$ref": "#/definitions/AWS::GuardDuty::Filter.FindingCriteria", + "markdownDescription": "Represents the criteria to be used in the filter for querying findings\\. \n*Required*: Yes \n*Type*: [FindingCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-findingcriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FindingCriteria" }, "Name": { + "markdownDescription": "The name of the filter\\. Minimum length of 3\\. Maximum length of 64\\. Valid characters include alphanumeric characters, dot \\(\\.\\), underscore \\(\\_\\), and dash \\(\\-\\)\\. Spaces are not allowed\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Rank": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rank", "type": "number" }, "Tags": { @@ -74069,6 +90700,8 @@ "items": { "type": "string" }, + "markdownDescription": "Represents the equal condition to apply to a single field when querying for findings\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Eq", "type": "array" }, "Equals": { @@ -74087,6 +90720,8 @@ "type": "number" }, "Gte": { + "markdownDescription": "Represents the greater than or equal condition to apply to a single field when querying for findings\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Gte", "type": "number" }, "LessThan": { @@ -74096,15 +90731,21 @@ "type": "number" }, "Lt": { + "markdownDescription": "Represents the less than condition to apply to a single field when querying for findings\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Lt", "type": "number" }, "Lte": { + "markdownDescription": "Represents the less than or equal condition to apply to a single field when querying for findings\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Lte", "type": "number" }, "Neq": { "items": { "type": "string" }, + "markdownDescription": "Represents the not equal condition to apply to a single field when querying for findings\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Neq", "type": "array" }, "NotEquals": { @@ -74120,10 +90761,14 @@ "additionalProperties": false, "properties": { "Criterion": { + "markdownDescription": "Represents a map of finding properties that match specified conditions and values when querying findings\\. \nFor a mapping of JSON criterion to their console equivalent see [Finding criteria](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_filter-findings.html#filter_criteria)\\. The following are the available criterion: \n+ accountId\n+ region\n+ confidence\n+ id\n+ resource\\.accessKeyDetails\\.accessKeyId\n+ resource\\.accessKeyDetails\\.principalId\n+ resource\\.accessKeyDetails\\.userName\n+ resource\\.accessKeyDetails\\.userType\n+ resource\\.instanceDetails\\.iamInstanceProfile\\.id\n+ resource\\.instanceDetails\\.imageId\n+ resource\\.instanceDetails\\.instanceId\n+ resource\\.instanceDetails\\.outpostArn\n+ resource\\.instanceDetails\\.networkInterfaces\\.ipv6Addresses\n+ resource\\.instanceDetails\\.networkInterfaces\\.privateIpAddresses\\.privateIpAddress\n+ resource\\.instanceDetails\\.networkInterfaces\\.publicDnsName\n+ resource\\.instanceDetails\\.networkInterfaces\\.publicIp\n+ resource\\.instanceDetails\\.networkInterfaces\\.securityGroups\\.groupId\n+ resource\\.instanceDetails\\.networkInterfaces\\.securityGroups\\.groupName\n+ resource\\.instanceDetails\\.networkInterfaces\\.subnetId\n+ resource\\.instanceDetails\\.networkInterfaces\\.vpcId\n+ resource\\.instanceDetails\\.tags\\.key\n+ resource\\.instanceDetails\\.tags\\.value\n+ resource\\.resourceType\n+ service\\.action\\.actionType\n+ service\\.action\\.awsApiCallAction\\.api\n+ service\\.action\\.awsApiCallAction\\.callerType\n+ service\\.action\\.awsApiCallAction\\.errorCode\n+ service\\.action\\.awsApiCallAction\\.remoteIpDetails\\.city\\.cityName\n+ service\\.action\\.awsApiCallAction\\.remoteIpDetails\\.country\\.countryName\n+ service\\.action\\.awsApiCallAction\\.remoteIpDetails\\.ipAddressV4\n+ service\\.action\\.awsApiCallAction\\.remoteIpDetails\\.organization\\.asn\n+ service\\.action\\.awsApiCallAction\\.remoteIpDetails\\.organization\\.asnOrg\n+ service\\.action\\.awsApiCallAction\\.serviceName\n+ service\\.action\\.dnsRequestAction\\.domain\n+ service\\.action\\.networkConnectionAction\\.blocked\n+ service\\.action\\.networkConnectionAction\\.connectionDirection\n+ service\\.action\\.networkConnectionAction\\.localPortDetails\\.port\n+ service\\.action\\.networkConnectionAction\\.protocol\n+ service\\.action\\.networkConnectionAction\\.localIpDetails\\.ipAddressV4\n+ service\\.action\\.networkConnectionAction\\.remoteIpDetails\\.city\\.cityName\n+ service\\.action\\.networkConnectionAction\\.remoteIpDetails\\.country\\.countryName\n+ service\\.action\\.networkConnectionAction\\.remoteIpDetails\\.ipAddressV4\n+ service\\.action\\.networkConnectionAction\\.remoteIpDetails\\.organization\\.asn\n+ service\\.action\\.networkConnectionAction\\.remoteIpDetails\\.organization\\.asnOrg\n+ service\\.action\\.networkConnectionAction\\.remotePortDetails\\.port\n+ service\\.additionalInfo\\.threatListName\n+ service\\.archived", + "title": "Criterion", "type": "object" }, "ItemType": { - "$ref": "#/definitions/AWS::GuardDuty::Filter.Condition" + "$ref": "#/definitions/AWS::GuardDuty::Filter.Condition", + "markdownDescription": "Specifies the condition to be applied to a single field when filtering through findings\\. \n*Required*: No \n*Type*: [Condition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-condition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ItemType" } }, "type": "object" @@ -74164,18 +90809,28 @@ "additionalProperties": false, "properties": { "Activate": { + "markdownDescription": "Indicates whether or not GuardDuty uses the `IPSet`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Activate", "type": "boolean" }, "DetectorId": { + "markdownDescription": "The unique ID of the detector of the GuardDuty account that you want to create an IPSet for\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DetectorId", "type": "string" }, "Format": { + "markdownDescription": "The format of the file that contains the IPSet\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALIEN_VAULT | FIRE_EYE | OTX_CSV | PROOF_POINT | STIX | TXT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Format", "type": "string" }, "Location": { + "markdownDescription": "The URI of the file that contains the IPSet\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", "type": "string" }, "Name": { + "markdownDescription": "The user\\-friendly name to identify the IPSet\\. \n Allowed characters are alphanumerics, spaces, hyphens \\(\\-\\), and underscores \\(\\_\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { @@ -74250,12 +90905,18 @@ "additionalProperties": false, "properties": { "DetectorId": { + "markdownDescription": "The unique ID of the detector of the GuardDuty member account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DetectorId", "type": "string" }, "InvitationId": { + "markdownDescription": "The ID of the invitation that is sent to the account designated as a member account\\. You can find the invitation ID by using the ListInvitation action of the GuardDuty API\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InvitationId", "type": "string" }, "MasterId": { + "markdownDescription": "The AWS account ID of the account designated as the GuardDuty administrator account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MasterId", "type": "string" } }, @@ -74322,21 +90983,33 @@ "additionalProperties": false, "properties": { "DetectorId": { + "markdownDescription": "The ID of the detector associated with the GuardDuty service to add the member to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DetectorId", "type": "string" }, "DisableEmailNotification": { + "markdownDescription": "Specifies whether or not to disable email notification for the member account that you invite\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableEmailNotification", "type": "boolean" }, "Email": { + "markdownDescription": "The email address associated with the member account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Email", "type": "string" }, "MemberId": { + "markdownDescription": "The AWS account ID of the account to designate as a member\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MemberId", "type": "string" }, "Message": { + "markdownDescription": "The invitation message that you want to send to the accounts that you're inviting to GuardDuty as members\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Message", "type": "string" }, "Status": { + "markdownDescription": "You can use the `Status` property to update the status of the relationship between the member account and its administrator account\\. Valid values are `Created` and `Invited` when using an `AWS::GuardDuty::Member` resource\\. If the value for this property is not provided or set to `Created`, a member account is created but not invited\\. If the value of this property is set to `Invited`, a member account is created and invited\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" } }, @@ -74404,18 +91077,28 @@ "additionalProperties": false, "properties": { "Activate": { + "markdownDescription": "A Boolean value that indicates whether GuardDuty is to start using the uploaded ThreatIntelSet\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Activate", "type": "boolean" }, "DetectorId": { + "markdownDescription": "The unique ID of the detector of the GuardDuty account that you want to create a threatIntelSet for\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DetectorId", "type": "string" }, "Format": { + "markdownDescription": "The format of the file that contains the ThreatIntelSet\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALIEN_VAULT | FIRE_EYE | OTX_CSV | PROOF_POINT | STIX | TXT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Format", "type": "string" }, "Location": { + "markdownDescription": "The URI of the file that contains the ThreatIntelSet\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", "type": "string" }, "Name": { + "markdownDescription": "A user\\-friendly ThreatIntelSet name displayed in all findings that are generated by activity that involves IP addresses included in this ThreatIntelSet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { @@ -74490,21 +91173,31 @@ "additionalProperties": false, "properties": { "DatastoreName": { + "markdownDescription": "The user generated name for the Data Store\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-%@]*)$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatastoreName", "type": "string" }, "DatastoreTypeVersion": { + "markdownDescription": "The FHIR version of the Data Store\\. The only supported version is R4\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `R4` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatastoreTypeVersion", "type": "string" }, "PreloadDataConfig": { - "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.PreloadDataConfig" + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.PreloadDataConfig", + "markdownDescription": "The preloaded data configuration for the Data Store\\. Only data preloaded from Synthea is supported\\. \n*Required*: No \n*Type*: [PreloadDataConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-preloaddataconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PreloadDataConfig" }, "SseConfiguration": { - "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.SseConfiguration" + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.SseConfiguration", + "markdownDescription": "The server\\-side encryption key configuration for a customer provided encryption key specified for creating a Data Store\\. \n*Required*: No \n*Type*: [SseConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-sseconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SseConfiguration" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -74554,9 +91247,13 @@ "additionalProperties": false, "properties": { "CmkType": { + "markdownDescription": "The type of customer\\-managed\\-key\\(CMK\\) used for encryption\\. The two types of supported CMKs are customer owned CMKs and Amazon owned CMKs\\. For more information on CMK types, see [KmsEncryptionConfig](https://docs.aws.amazon.com/healthlake/latest/APIReference/API_KmsEncryptionConfig.html#HealthLake-Type-KmsEncryptionConfig-CmkType)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CmkType", "type": "string" }, "KmsKeyId": { + "markdownDescription": "The KMS encryption key id/alias used to encrypt the Data Store contents at rest\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `400` \n*Pattern*: `(arn:aws((https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/-us-gov.html)|(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/-iso.html)|(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/-iso.html-b)|(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/-cn.html))?:kms:)?([a-z]{2}-[a-z]+(-[a-z]+)?-\\d:)?(\\d{12}:)?(((key/)?[a-zA-Z0-9-_]+)|(alias/[a-zA-Z0-9:/_-]+))` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" } }, @@ -74569,6 +91266,8 @@ "additionalProperties": false, "properties": { "PreloadDataType": { + "markdownDescription": "The type of preloaded data\\. Only Synthea preloaded data is supported\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SYNTHEA` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PreloadDataType", "type": "string" } }, @@ -74581,7 +91280,9 @@ "additionalProperties": false, "properties": { "KmsEncryptionConfig": { - "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.KmsEncryptionConfig" + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.KmsEncryptionConfig", + "markdownDescription": "The server\\-side encryption key configuration for a customer provided encryption key \\(CMK\\)\\. \n*Required*: Yes \n*Type*: [KmsEncryptionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-kmsencryptionconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsEncryptionConfig" } }, "required": [ @@ -74625,12 +91326,18 @@ "additionalProperties": false, "properties": { "Serial": { + "markdownDescription": "This value is specific to CloudFormation and can only be *incremented*\\. Incrementing this value notifies CloudFormation that you want to rotate your access key\\. When you update your stack, CloudFormation will replace the existing access key with a new key\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Serial", "type": "number" }, "Status": { + "markdownDescription": "The status of the access key\\. `Active` means that the key is valid for API calls, while `Inactive` means it is not\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Active | Inactive` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" }, "UserName": { + "markdownDescription": "The name of the IAM user that the new key will belong to\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserName", "type": "string" } }, @@ -74696,21 +91403,29 @@ "additionalProperties": false, "properties": { "GroupName": { + "markdownDescription": "The name of the group to create\\. Do not include the path in this value\\. \nThe group name must be unique within the account\\. Group names are not distinguished by case\\. For example, you cannot create groups named both \"ADMINS\" and \"admins\"\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the group name\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\nIf you specify a name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge your template's capabilities\\. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities)\\. \nNaming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions\\. To prevent this, we recommend using `Fn::Join` and `AWS::Region` to create a Region\\-specific name, as in the following example: `{\"Fn::Join\": [\"\", [{\"Ref\": \"AWS::Region\"}, {\"Ref\": \"MyResourceName\"}]]}`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupName", "type": "string" }, "ManagedPolicyArns": { "items": { "type": "string" }, + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM policy you want to attach\\. \nFor more information about ARNs, see [Amazon Resource Names \\(ARNs\\)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the * AWS General Reference*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManagedPolicyArns", "type": "array" }, "Path": { + "markdownDescription": "The path to the group\\. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*\\. \nThis parameter is optional\\. If it is not included, it defaults to a slash \\(/\\)\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of either a forward slash \\(/\\) by itself or a string that must begin and end with forward slashes\\. In addition, it can contain any ASCII character from the \\! \\(`\\u0021`\\) through the DEL character \\(`\\u007F`\\), including most punctuation characters, digits, and upper and lowercased letters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `(\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", "type": "string" }, "Policies": { "items": { "$ref": "#/definitions/AWS::IAM::Group.Policy" }, + "markdownDescription": "Adds or updates an inline policy document that is embedded in the specified IAM group\\. To view AWS::IAM::Group snippets, see [Declaring an IAM Group Resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-iam-group)\\. \nThe name of each inline policy for a role, user, or group must be unique\\. If you don't choose unique names, updates to the IAM identity will fail\\. \nFor information about limits on the number of inline policies that you can embed in a group, see [Limitations on IAM Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: List of [Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy-2.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policies", "type": "array" } }, @@ -74740,9 +91455,13 @@ "additionalProperties": false, "properties": { "PolicyDocument": { + "markdownDescription": "The policy document\\. \n*Required*: Yes \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `131072` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDocument", "type": "object" }, "PolicyName": { + "markdownDescription": "The friendly name \\(not ARN\\) identifying the policy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyName", "type": "string" } }, @@ -74788,15 +91507,21 @@ "additionalProperties": false, "properties": { "InstanceProfileName": { + "markdownDescription": "The name of the instance profile to create\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceProfileName", "type": "string" }, "Path": { + "markdownDescription": "The path to the instance profile\\. For more information about paths, see [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*\\. \nThis parameter is optional\\. If it is not included, it defaults to a slash \\(/\\)\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of either a forward slash \\(/\\) by itself or a string that must begin and end with forward slashes\\. In addition, it can contain any ASCII character from the \\! \\(`\\u0021`\\) through the DEL character \\(`\\u007F`\\), including most punctuation characters, digits, and upper and lowercased letters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `(\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Path", "type": "string" }, "Roles": { "items": { "type": "string" }, + "markdownDescription": "The name of the role to associate with the instance profile\\. Only one role can be assigned to an EC2 instance at a time, and all applications on the instance share the same role and permissions\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Roles", "type": "array" } }, @@ -74862,33 +91587,47 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A friendly description of the policy\\. \nTypically used to store information about the permissions defined in the policy\\. For example, \"Grants access to production DynamoDB tables\\.\" \nThe policy description is immutable\\. After a value is assigned, it cannot be changed\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "Groups": { "items": { "type": "string" }, + "markdownDescription": "The name \\(friendly name, not ARN\\) of the group to attach the policy to\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: No \n*Type*: List of String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Groups", "type": "array" }, "ManagedPolicyName": { + "markdownDescription": "The friendly name of the policy\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\nIf you specify a name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge your template's capabilities\\. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities)\\. \nNaming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions\\. To prevent this, we recommend using `Fn::Join` and `AWS::Region` to create a Region\\-specific name, as in the following example: `{\"Fn::Join\": [\"\", [{\"Ref\": \"AWS::Region\"}, {\"Ref\": \"MyResourceName\"}]]}`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ManagedPolicyName", "type": "string" }, "Path": { + "markdownDescription": "The path for the policy\\. \nFor more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*\\. \nThis parameter is optional\\. If it is not included, it defaults to a slash \\(/\\)\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of either a forward slash \\(/\\) by itself or a string that must begin and end with forward slashes\\. In addition, it can contain any ASCII character from the \\! \\(`\\u0021`\\) through the DEL character \\(`\\u007F`\\), including most punctuation characters, digits, and upper and lowercased letters\\. \nYou cannot use an asterisk \\(\\*\\) in the path name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `((/[A-Za-z0-9\\.,\\+@=_-]+)*)/` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Path", "type": "string" }, "PolicyDocument": { + "markdownDescription": "The JSON policy document that you want to use as the content for the new policy\\. \nYou must provide policies in JSON format in IAM\\. However, for AWS CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format\\. AWS CloudFormation always converts a YAML policy to JSON format before submitting it to IAM\\. \nThe maximum length of the policy document that you can pass in this operation, including whitespace, is listed below\\. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and AWS STS character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length)\\. \nTo learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*\\. \nThe [regex pattern](http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: \n+ Any printable ASCII character ranging from the space character \\(`\\u0020`\\) through the end of the ASCII character range\n+ The printable characters in the Basic Latin and Latin\\-1 Supplement character set \\(through `\\u00FF`\\)\n+ The special characters tab \\(`\\u0009`\\), line feed \\(`\\u000A`\\), and carriage return \\(`\\u000D`\\)\n*Required*: Yes \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `131072` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDocument", "type": "object" }, "Roles": { "items": { "type": "string" }, + "markdownDescription": "The name \\(friendly name, not ARN\\) of the role to attach the policy to\\. \nThis parameter allows \\(per its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \nIf an external policy \\(such as `AWS::IAM::Policy` or `AWS::IAM::ManagedPolicy`\\) has a `Ref` to a role and if a resource \\(such as `AWS::ECS::Service`\\) also has a `Ref` to the same role, add a `DependsOn` attribute to the resource to make the resource depend on the external policy\\. This dependency ensures that the role's policy is available throughout the resource's lifecycle\\. For example, when you delete a stack with an `AWS::ECS::Service` resource, the `DependsOn` attribute ensures that AWS CloudFormation deletes the `AWS::ECS::Service` resource before deleting its role's policy\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Roles", "type": "array" }, "Users": { "items": { "type": "string" }, + "markdownDescription": "The name \\(friendly name, not ARN\\) of the IAM user to attach the policy to\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: No \n*Type*: List of String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Users", "type": "array" } }, @@ -74957,21 +91696,29 @@ "items": { "type": "string" }, + "markdownDescription": "A list of client IDs \\(also known as audiences\\) that are associated with the specified IAM OIDC provider resource object\\. For more information, see [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientIdList", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of tags that are attached to the specified IAM OIDC provider\\. The returned list of tags is sorted by tag key\\. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "ThumbprintList": { "items": { "type": "string" }, + "markdownDescription": "A list of certificate thumbprints that are associated with the specified IAM OIDC provider resource object\\. For more information, see [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html)\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThumbprintList", "type": "array" }, "Url": { + "markdownDescription": "The URL that the IAM OIDC provider resource object is associated with\\. For more information, see [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Url", "type": "string" } }, @@ -75040,24 +91787,34 @@ "items": { "type": "string" }, + "markdownDescription": "The name of the group to associate the policy with\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\-\\. \n*Required*: No \n*Type*: List of String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Groups", "type": "array" }, "PolicyDocument": { + "markdownDescription": "The policy document\\. \nYou must provide policies in JSON format in IAM\\. However, for AWS CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format\\. AWS CloudFormation always converts a YAML policy to JSON format before submitting it to IAM\\. \nThe [regex pattern](http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: \n+ Any printable ASCII character ranging from the space character \\(`\\u0020`\\) through the end of the ASCII character range\n+ The printable characters in the Basic Latin and Latin\\-1 Supplement character set \\(through `\\u00FF`\\)\n+ The special characters tab \\(`\\u0009`\\), line feed \\(`\\u000A`\\), and carriage return \\(`\\u000D`\\)\n*Required*: Yes \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `131072` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDocument", "type": "object" }, "PolicyName": { + "markdownDescription": "The name of the policy document\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyName", "type": "string" }, "Roles": { "items": { "type": "string" }, + "markdownDescription": "The name of the role to associate the policy with\\. \nThis parameter allows \\(per its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \nIf an external policy \\(such as `AWS::IAM::Policy` or `AWS::IAM::ManagedPolicy`\\) has a `Ref` to a role and if a resource \\(such as `AWS::ECS::Service`\\) also has a `Ref` to the same role, add a `DependsOn` attribute to the resource to make the resource depend on the external policy\\. This dependency ensures that the role's policy is available throughout the resource's lifecycle\\. For example, when you delete a stack with an `AWS::ECS::Service` resource, the `DependsOn` attribute ensures that AWS CloudFormation deletes the `AWS::ECS::Service` resource before deleting its role's policy\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Roles", "type": "array" }, "Users": { "items": { "type": "string" }, + "markdownDescription": "The name of the user to associate the policy with\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: No \n*Type*: List of String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Users", "type": "array" } }, @@ -75124,39 +91881,57 @@ "additionalProperties": false, "properties": { "AssumeRolePolicyDocument": { + "markdownDescription": "The trust policy that is associated with this role\\. Trust policies define which entities can assume the role\\. You can associate only one trust policy with a role\\. For an example of a policy that can be used to assume a role, see [Template Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#aws-resource-iam-role--examples)\\. For more information about the elements that you can use in an IAM policy, see [IAM Policy Elements Reference](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) in the *IAM User Guide*\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssumeRolePolicyDocument", "type": "object" }, "Description": { + "markdownDescription": "A description of the role that you provide\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Pattern*: `[\\p{L}\\p{M}\\p{Z}\\p{S}\\p{N}\\p{P}]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "ManagedPolicyArns": { "items": { "type": "string" }, + "markdownDescription": "A list of Amazon Resource Names \\(ARNs\\) of the IAM managed policies that you want to attach to the role\\. \nFor more information about ARNs, see [Amazon Resource Names \\(ARNs\\) and AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *AWS General Reference*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManagedPolicyArns", "type": "array" }, "MaxSessionDuration": { + "markdownDescription": "The maximum session duration \\(in seconds\\) that you want to set for the specified role\\. If you do not specify a value for this setting, the default maximum of one hour is applied\\. This setting can have a value from 1 hour to 12 hours\\. \nAnyone who assumes the role from the or API can use the `DurationSeconds` API parameter or the `duration-seconds` CLI parameter to request a longer session\\. The `MaxSessionDuration` setting determines the maximum duration that can be requested using the `DurationSeconds` parameter\\. If users don't specify a value for the `DurationSeconds` parameter, their security credentials are valid for one hour by default\\. This applies when you use the `AssumeRole*` API operations or the `assume-role*` CLI operations but does not apply when you use those operations to create a console URL\\. For more information, see [Using IAM roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `3600` \n*Maximum*: `43200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxSessionDuration", "type": "number" }, "Path": { + "markdownDescription": "The path to the role\\. For more information about paths, see [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*\\. \nThis parameter is optional\\. If it is not included, it defaults to a slash \\(/\\)\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of either a forward slash \\(/\\) by itself or a string that must begin and end with forward slashes\\. In addition, it can contain any ASCII character from the \\! \\(`\\u0021`\\) through the DEL character \\(`\\u007F`\\), including most punctuation characters, digits, and upper and lowercased letters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `(\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Path", "type": "string" }, "PermissionsBoundary": { + "markdownDescription": "The ARN of the policy used to set the permissions boundary for the role\\. \nFor more information about permissions boundaries, see [Permissions boundaries for IAM identities ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PermissionsBoundary", "type": "string" }, "Policies": { "items": { "$ref": "#/definitions/AWS::IAM::Role.Policy" }, + "markdownDescription": "Adds or updates an inline policy document that is embedded in the specified IAM role\\. \nWhen you embed an inline policy in a role, the inline policy is used as part of the role's access \\(permissions\\) policy\\. The role's trust policy is created at the same time as the role\\. You can update a role's trust policy later\\. For more information about IAM roles, go to [Using Roles to Delegate Permissions and Federate Identities](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html)\\. \nA role can also have an attached managed policy\\. For information about policies, see [Managed Policies and Inline Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*\\. \nFor information about limits on the number of inline policies that you can embed with a role, see [Limitations on IAM Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *IAM User Guide*\\. \nIf an external policy \\(such as `AWS::IAM::Policy` or `AWS::IAM::ManagedPolicy`\\) has a `Ref` to a role and if a resource \\(such as `AWS::ECS::Service`\\) also has a `Ref` to the same role, add a `DependsOn` attribute to the resource to make the resource depend on the external policy\\. This dependency ensures that the role's policy is available throughout the resource's lifecycle\\. For example, when you delete a stack with an `AWS::ECS::Service` resource, the `DependsOn` attribute ensures that AWS CloudFormation deletes the `AWS::ECS::Service` resource before deleting its role's policy\\.\n*Required*: No \n*Type*: List of [Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policies", "type": "array" }, "RoleName": { + "markdownDescription": "A name for the IAM role, up to 64 characters in length\\. For valid values, see the `RoleName` parameter for the [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html) action in the *IAM User Guide*\\. \nThis parameter allows \\(per its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\-\\. The role name must be unique within the account\\. Role names are not distinguished by case\\. For example, you cannot create roles named both \"Role1\" and \"role1\"\\. \nIf you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the role name\\. \nIf you specify a name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge your template's capabilities\\. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities)\\. \nNaming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions\\. To prevent this, we recommend using `Fn::Join` and `AWS::Region` to create a Region\\-specific name, as in the following example: `{\"Fn::Join\": [\"\", [{\"Ref\": \"AWS::Region\"}, {\"Ref\": \"MyResourceName\"}]]}`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RoleName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of tags that are attached to the role\\. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -75190,9 +91965,13 @@ "additionalProperties": false, "properties": { "PolicyDocument": { + "markdownDescription": "The policy document\\. \n*Required*: Yes \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `131072` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDocument", "type": "object" }, "PolicyName": { + "markdownDescription": "The friendly name \\(not ARN\\) identifying the policy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyName", "type": "string" } }, @@ -75238,15 +92017,21 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the provider to create\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w._-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "SamlMetadataDocument": { + "markdownDescription": "An XML document generated by an identity provider \\(IdP\\) that supports SAML 2\\.0\\. The document includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response \\(assertions\\) that are received from the IdP\\. You must generate the metadata document using the identity management software that is used as your organization's IdP\\. \nFor more information, see [About SAML 2\\.0\\-based federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html) in the *IAM User Guide* \n*Required*: Yes \n*Type*: String \n*Minimum*: `1000` \n*Maximum*: `10000000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SamlMetadataDocument", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of tags that you want to attach to the new IAM SAML provider\\. Each tag consists of a key name and an associated value\\. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide*\\. \nIf any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -75312,24 +92097,36 @@ "additionalProperties": false, "properties": { "CertificateBody": { + "markdownDescription": "The contents of the public key certificate\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `16384` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateBody", "type": "string" }, "CertificateChain": { + "markdownDescription": "The contents of the public key certificate chain\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2097152` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateChain", "type": "string" }, "Path": { + "markdownDescription": "The path for the server certificate\\. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*\\. \nThis parameter is optional\\. If it is not included, it defaults to a slash \\(/\\)\\. This parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of either a forward slash \\(/\\) by itself or a string that must begin and end with forward slashes\\. In addition, it can contain any ASCII character from the \\! \\(`\\u0021`\\) through the DEL character \\(`\\u007F`\\), including most punctuation characters, digits, and upper and lowercased letters\\. \n If you are uploading a server certificate specifically for use with Amazon CloudFront distributions, you must specify a path using the `path` parameter\\. The path must begin with `/cloudfront` and must include a trailing slash \\(for example, `/cloudfront/test/`\\)\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `(\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", "type": "string" }, "PrivateKey": { + "markdownDescription": "The contents of the private key in PEM\\-encoded format\\. \nThe [regex pattern](http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: \n+ Any printable ASCII character ranging from the space character \\(`\\u0020`\\) through the end of the ASCII character range\n+ The printable characters in the Basic Latin and Latin\\-1 Supplement character set \\(through `\\u00FF`\\)\n+ The special characters tab \\(`\\u0009`\\), line feed \\(`\\u000A`\\), and carriage return \\(`\\u000D`\\)\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `16384` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrivateKey", "type": "string" }, "ServerCertificateName": { + "markdownDescription": "The name for the server certificate\\. Do not include the path in this value\\. The name of the certificate cannot contain any spaces\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServerCertificateName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of tags that are attached to the server certificate\\. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -75391,12 +92188,18 @@ "additionalProperties": false, "properties": { "AWSServiceName": { + "markdownDescription": "The service principal for the AWS service to which this role is attached\\. You use a string similar to a URL but without the http:// in front\\. For example: `elasticbeanstalk.amazonaws.com`\\. \nService principals are unique and case\\-sensitive\\. To find the exact service principal for your service\\-linked role, see [AWS services that work with IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) in the *IAM User Guide*\\. Look for the services that have **Yes **in the **Service\\-Linked Role** column\\. Choose the **Yes** link to view the service\\-linked role documentation for that service\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AWSServiceName", "type": "string" }, "CustomSuffix": { + "markdownDescription": "A string that you provide, which is combined with the service\\-provided prefix to form the complete role name\\. If you make multiple requests for the same service, then you must supply a different `CustomSuffix` for each request\\. Otherwise the request fails with a duplicate role name error\\. For example, you could add `-1` or `-debug` to the suffix\\. \nSome services do not support the `CustomSuffix` parameter\\. If you provide an optional suffix and the operation fails, try the operation again without the suffix\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomSuffix", "type": "string" }, "Description": { + "markdownDescription": "The description of the role\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Pattern*: `[\\p{L}\\p{M}\\p{Z}\\p{S}\\p{N}\\p{P}]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" } }, @@ -75465,36 +92268,52 @@ "items": { "type": "string" }, + "markdownDescription": "A list of group names to which you want to add the user\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Groups", "type": "array" }, "LoginProfile": { - "$ref": "#/definitions/AWS::IAM::User.LoginProfile" + "$ref": "#/definitions/AWS::IAM::User.LoginProfile", + "markdownDescription": "Creates a password for the specified IAM user\\. A password allows an IAM user to access AWS services through the AWS Management Console\\. \nYou can use the AWS CLI, the AWS API, or the **Users** page in the IAM console to create a password for any IAM user\\. Use [ChangePassword](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html) to update your own existing password in the **My Security Credentials** page in the AWS Management Console\\. \nFor more information about managing passwords, see [Managing passwords](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: [LoginProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user-loginprofile.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoginProfile" }, "ManagedPolicyArns": { "items": { "type": "string" }, + "markdownDescription": "A list of Amazon Resource Names \\(ARNs\\) of the IAM managed policies that you want to attach to the user\\. \nFor more information about ARNs, see [Amazon Resource Names \\(ARNs\\) and AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *AWS General Reference*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManagedPolicyArns", "type": "array" }, "Path": { + "markdownDescription": "The path for the user name\\. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*\\. \nThis parameter is optional\\. If it is not included, it defaults to a slash \\(/\\)\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of either a forward slash \\(/\\) by itself or a string that must begin and end with forward slashes\\. In addition, it can contain any ASCII character from the \\! \\(`\\u0021`\\) through the DEL character \\(`\\u007F`\\), including most punctuation characters, digits, and upper and lowercased letters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `(\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", "type": "string" }, "PermissionsBoundary": { + "markdownDescription": "The ARN of the policy that is used to set the permissions boundary for the user\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PermissionsBoundary", "type": "string" }, "Policies": { "items": { "$ref": "#/definitions/AWS::IAM::User.Policy" }, + "markdownDescription": "Adds or updates an inline policy document that is embedded in the specified IAM user\\. To view AWS::IAM::User snippets, see [Declaring an IAM User Resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-iam-user)\\. \nThe name of each policy for a role, user, or group must be unique\\. If you don't choose unique names, updates to the IAM identity will fail\\. \nFor information about limits on the number of inline policies that you can embed in a user, see [Limitations on IAM Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: List of [Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy-1.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policies", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of tags that you want to attach to the new user\\. Each tag consists of a key name and an associated value\\. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide*\\. \nIf any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "UserName": { + "markdownDescription": "The name of the user to create\\. Do not include the path in this value\\. \nThis parameter allows \\(per its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\-\\. The user name must be unique within the account\\. User names are not distinguished by case\\. For example, you cannot create users named both \"John\" and \"john\"\\. \nIf you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the user name\\. \nIf you specify a name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge your template's capabilities\\. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities)\\. \nNaming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions\\. To prevent this, we recommend using `Fn::Join` and `AWS::Region` to create a Region\\-specific name, as in the following example: `{\"Fn::Join\": [\"\", [{\"Ref\": \"AWS::Region\"}, {\"Ref\": \"MyResourceName\"}]]}`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserName", "type": "string" } }, @@ -75524,9 +92343,13 @@ "additionalProperties": false, "properties": { "Password": { + "markdownDescription": "The user's password\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", "type": "string" }, "PasswordResetRequired": { + "markdownDescription": "Specifies whether the user is required to set a new password on next sign\\-in\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PasswordResetRequired", "type": "boolean" } }, @@ -75539,9 +92362,13 @@ "additionalProperties": false, "properties": { "PolicyDocument": { + "markdownDescription": "The policy document\\. \n*Required*: Yes \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `131072` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDocument", "type": "object" }, "PolicyName": { + "markdownDescription": "The friendly name \\(not ARN\\) identifying the policy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyName", "type": "string" } }, @@ -75587,12 +92414,16 @@ "additionalProperties": false, "properties": { "GroupName": { + "markdownDescription": "The name of the group to update\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupName", "type": "string" }, "Users": { "items": { "type": "string" }, + "markdownDescription": "A list of the names of the users that you want to add to the group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Users", "type": "array" } }, @@ -75659,21 +92490,29 @@ "additionalProperties": false, "properties": { "Path": { + "markdownDescription": "The path for the virtual MFA device\\. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*\\. \nThis parameter is optional\\. If it is not included, it defaults to a slash \\(/\\)\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of either a forward slash \\(/\\) by itself or a string that must begin and end with forward slashes\\. In addition, it can contain any ASCII character from the \\! \\(`\\u0021`\\) through the DEL character \\(`\\u007F`\\), including most punctuation characters, digits, and upper and lowercased letters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `(\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Path", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of tags that you want to attach to the new IAM virtual MFA device\\. Each tag consists of a key name and an associated value\\. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide*\\. \nIf any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Users": { "items": { "type": "string" }, + "markdownDescription": "The IAM user associated with this virtual MFA device\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Users", "type": "array" }, "VirtualMfaDeviceName": { + "markdownDescription": "The name of the virtual MFA device\\. Use with path to uniquely identify a virtual MFA device\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VirtualMfaDeviceName", "type": "string" } }, @@ -75739,24 +92578,36 @@ "additionalProperties": false, "properties": { "Authorized": { + "markdownDescription": "Whether the channel is authorized\\. \n*Default*: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Authorized", "type": "boolean" }, "LatencyMode": { + "markdownDescription": "Channel latency mode\\. Valid values: \n+ `NORMAL`: Use NORMAL to broadcast and deliver live video up to Full HD\\.\n+ `LOW`: Use LOW for near real\\-time interactions with viewers\\.\nIn the Amazon IVS console, `LOW` and `NORMAL` correspond to `Ultra-low` and `Standard`, respectively\\.\n*Default*: `LOW` \n*Required*: No \n*Type*: String \n*Allowed values*: `LOW | NORMAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LatencyMode", "type": "string" }, "Name": { + "markdownDescription": "Channel name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "RecordingConfigurationArn": { + "markdownDescription": "The ARN of a RecordingConfiguration resource\\. An empty string indicates that recording is disabled for the channel\\. A RecordingConfiguration ARN indicates that recording is enabled using the specified recording configuration\\. See the [ RecordingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-recordingconfiguration.html) resource for more information and an example\\. \n*Default*: \"\" \\(empty string, recording is disabled\\) \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^$|^arn:aws:ivs:[a-z0-9-]+:[0-9]+:recording-configuration/[a-zA-Z0-9-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordingConfigurationArn", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Type": { + "markdownDescription": "The channel type, which determines the allowable resolution and bitrate\\. *If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately\\.* Valid values: \n+ `STANDARD`: Multiple qualities are generated from the original input, to automatically give viewers the best experience for their devices and network conditions\\. Resolution can be up to 1080p and bitrate can be up to 8\\.5 Mbps\\. Audio is transcoded only for renditions 360p and below; above that, audio is passed through\\.\n+ `BASIC`: delivers the original input to viewers\\. The viewer\u2019s video\\-quality choice is limited to the original input\\. Resolution can be up to 480p and bitrate can be up to 1\\.5 Mbps\\.\n*Default*: `STANDARD` \n*Required*: No \n*Type*: String \n*Allowed values*: `BASIC | STANDARD` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -75818,15 +92669,21 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "Playback\\-key\\-pair name\\. The value does not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-_]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "PublicKeyMaterial": { + "markdownDescription": "The public portion of a customer\\-generated key pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PublicKeyMaterial", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -75888,9 +92745,13 @@ "additionalProperties": false, "properties": { "DestinationConfiguration": { - "$ref": "#/definitions/AWS::IVS::RecordingConfiguration.DestinationConfiguration" + "$ref": "#/definitions/AWS::IVS::RecordingConfiguration.DestinationConfiguration", + "markdownDescription": "A destination configuration contains information about where recorded video will be stored\\. See the [ DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-destinationconfiguration.html) property type for more information\\. \n*Required*: Yes \n*Type*: [DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-destinationconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationConfiguration" }, "Name": { + "markdownDescription": "Recording\\-configuration name\\. The value does not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-_]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RecordingReconnectWindowSeconds": { @@ -75900,10 +92761,14 @@ "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "ThumbnailConfiguration": { - "$ref": "#/definitions/AWS::IVS::RecordingConfiguration.ThumbnailConfiguration" + "$ref": "#/definitions/AWS::IVS::RecordingConfiguration.ThumbnailConfiguration", + "markdownDescription": "A thumbnail configuration enables/disables the recording of thumbnails for a live session and controls the interval at which thumbnails are generated for the live session\\. See the [ThumbnailConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-thunbnailconfiguration.html) property type for more information\\. \n*Required*: No \n*Type*: [ThumbnailConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-thumbnailconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ThumbnailConfiguration" } }, "required": [ @@ -75936,7 +92801,9 @@ "additionalProperties": false, "properties": { "S3": { - "$ref": "#/definitions/AWS::IVS::RecordingConfiguration.S3DestinationConfiguration" + "$ref": "#/definitions/AWS::IVS::RecordingConfiguration.S3DestinationConfiguration", + "markdownDescription": "An S3 destination configuration where recorded videos will be stored\\. See the [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-s3destinationconfiguration.html) property type for more information\\. \n*Required*: Yes \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-s3destinationconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3" } }, "required": [ @@ -75948,6 +92815,8 @@ "additionalProperties": false, "properties": { "BucketName": { + "markdownDescription": "Location \\(S3 bucket name\\) where recorded videos will be stored\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `^[a-z0-9-.]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketName", "type": "string" } }, @@ -75960,9 +92829,13 @@ "additionalProperties": false, "properties": { "RecordingMode": { + "markdownDescription": "Thumbnail recording mode\\. Valid values: \n+ `DISABLED`: Use DISABLED to disable the generation of thumbnails for recorded video\\.\n+ `INTERVAL`: Use INTERVAL to enable the generation of thumbnails for recorded video at a time interval controlled by the [TargetIntervalSeconds](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-thumbnailconfiguration.html#cfn-ivs-recordingconfiguration-thumbnailconfiguration-targetintervalseconds) property\\.\n*Default*: `INTERVAL` \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | INTERVAL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RecordingMode", "type": "string" }, "TargetIntervalSeconds": { + "markdownDescription": "The targeted thumbnail\\-generation interval in seconds\\. This is configurable \\(and required\\) only if [RecordingMode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-thumbnailconfiguration.html#cfn-ivs-recordingconfiguration-thumbnailconfiguration-recordingmode) is `INTERVAL`\\. \nSetting a value for `TargetIntervalSeconds` does not guarantee that thumbnails are generated at the specified interval\\. For thumbnails to be generated at the `TargetIntervalSeconds` interval, the `IDR/Keyframe` value for the input video must be less than the `TargetIntervalSeconds` value\\. See [Amazon IVS Streaming Configuration](https://docs.aws.amazon.com/ivs/latest/userguide/streaming-config.html) for information on setting `IDR/Keyframe` to the recommended value in video\\-encoder settings\\.\n*Default*: 60 \n*Valid Range*: Minumum value of 5\\. Maximum value of 60\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetIntervalSeconds", "type": "number" } }, @@ -76007,12 +92880,16 @@ "additionalProperties": false, "properties": { "ChannelArn": { + "markdownDescription": "Channel ARN for the stream\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ChannelArn", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -76235,42 +93112,62 @@ "additionalProperties": false, "properties": { "ChangeDescription": { + "markdownDescription": "A change description of the component\\. For example `initial version`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ChangeDescription", "type": "string" }, "Data": { + "markdownDescription": "The data of the component\\. For example, `name: HelloWorldTestingDocument\\ndescription: This is hello world testing document.\\nschemaVersion: 1.0\\n\\nphases:\\n - name: test\\n steps:\\n - name: HelloWorldStep\\n action: ExecuteBash\\n inputs:\\n commands:\\n - echo \\\"Hello World! Test.\\\"\\n`\\. See Examples below for the schema for creating a component using Data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Data", "type": "string" }, "Description": { + "markdownDescription": "The description of the component\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "KmsKeyId": { + "markdownDescription": "The KMS key identifier used to encrypt the component\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" }, "Name": { + "markdownDescription": "The name of the component\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Platform": { + "markdownDescription": "The platform of the component\\. For example, `Windows`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Linux | Windows` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Platform", "type": "string" }, "SupportedOsVersions": { "items": { "type": "string" }, + "markdownDescription": "The operating system \\(OS\\) version supported by the component\\. If the OS information is available, a prefix match is performed against the base image OS version during image recipe creation\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `25` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SupportedOsVersions", "type": "array" }, "Tags": { "additionalProperties": true, + "markdownDescription": "The tags associated with the component\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" }, "Uri": { + "markdownDescription": "The `uri` of a YAML component document file\\. This must be an S3 URL \\(`s3://bucket/key`\\), and the requester must have permission to access the S3 bucket it points to\\. If you use Amazon S3, you can specify component content up to your service quota\\. \nAlternatively, you can specify the YAML document inline, using the component `data` property\\. You cannot specify both properties\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Uri", "type": "string" }, "Version": { + "markdownDescription": "The component version\\. For example, `1.0.0`\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[0-9]+\\.[0-9]+\\.[0-9]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Version", "type": "string" } }, @@ -76341,54 +93238,84 @@ "items": { "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.ComponentConfiguration" }, + "markdownDescription": "Components for build and test that are included in the container recipe\\. \n*Required*: Yes \n*Type*: List of [ComponentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-componentconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Components", "type": "array" }, "ContainerType": { + "markdownDescription": "Specifies the type of container, such as Docker\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DOCKER` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerType", "type": "string" }, "Description": { + "markdownDescription": "The description of the container recipe\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "DockerfileTemplateData": { + "markdownDescription": "Dockerfiles are text documents that are used to build Docker containers, and ensure that they contain all of the elements required by the application running inside\\. The template data consists of contextual variables where Image Builder places build information or scripts, based on your container image recipe\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DockerfileTemplateData", "type": "string" }, "DockerfileTemplateUri": { + "markdownDescription": "The S3 URI for the Dockerfile that will be used to build your container image\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DockerfileTemplateUri", "type": "string" }, "ImageOsVersionOverride": { + "markdownDescription": "Specifies the operating system version for the source image\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageOsVersionOverride", "type": "string" }, "InstanceConfiguration": { - "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.InstanceConfiguration" + "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.InstanceConfiguration", + "markdownDescription": "A group of options that can be used to configure an instance for building and testing container images\\. \n*Required*: No \n*Type*: [InstanceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-instanceconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceConfiguration" }, "KmsKeyId": { + "markdownDescription": "Identifies which KMS key is used to encrypt the container image for distribution to the target Region\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" }, "Name": { + "markdownDescription": "The name of the container recipe\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "ParentImage": { + "markdownDescription": "The base image for the container recipe\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ParentImage", "type": "string" }, "PlatformOverride": { + "markdownDescription": "Specifies the operating system platform when you use a custom source image\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlatformOverride", "type": "string" }, "Tags": { "additionalProperties": true, + "markdownDescription": "Tags that are attached to the container recipe\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" }, "TargetRepository": { - "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.TargetContainerRepository" + "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.TargetContainerRepository", + "markdownDescription": "The destination repository for the container image\\. \n*Required*: Yes \n*Type*: [TargetContainerRepository](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-targetcontainerrepository.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetRepository" }, "Version": { + "markdownDescription": "The semantic version of the container recipe\\. \nThe semantic version has four nodes: \\.\\./\\. You can assign values for the first three, and can filter on all of them\\. \n **Assignment:** For the first three nodes you can assign any positive integer value, including zero, with an upper limit of 2^30\\-1, or 1073741823 for each node\\. Image Builder automatically assigns the build number to the fourth node\\. \n **Patterns:** You can use any numeric pattern that adheres to the assignment requirements for the nodes that you can assign\\. For example, you might choose a software version pattern, such as 1\\.0\\.0, or a date, such as 2021\\.01\\.01\\. \n **Filtering:** With semantic versioning, you have the flexibility to use wildcards \\(x\\) to specify the most recent versions or nodes when selecting the base image or components for your recipe\\. When you use a wildcard in any node, all nodes to the right of the first wildcard must also be wildcards\\.\n*Required*: Yes \n*Type*: String \n*Pattern*: `^[0-9]+\\.[0-9]+\\.[0-9]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Version", "type": "string" }, "WorkingDirectory": { + "markdownDescription": "The working directory for use during build and test workflows\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WorkingDirectory", "type": "string" } }, @@ -76427,6 +93354,8 @@ "additionalProperties": false, "properties": { "ComponentArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the component\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):component/[a-z0-9-_]+/(?:(?:([0-9]+|x)\\.([0-9]+|x)\\.([0-9]+|x))|(?:[0-9]+\\.[0-9]+\\.[0-9]+/[0-9]+))$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ComponentArn", "type": "string" }, "Parameters": { @@ -76461,27 +93390,43 @@ "additionalProperties": false, "properties": { "DeleteOnTermination": { + "markdownDescription": "Use to configure delete on termination of the associated device\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeleteOnTermination", "type": "boolean" }, "Encrypted": { + "markdownDescription": "Use to configure device encryption\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Encrypted", "type": "boolean" }, "Iops": { + "markdownDescription": "Use to configure device IOPS\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `100` \n*Maximum*: `64000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Iops", "type": "number" }, "KmsKeyId": { + "markdownDescription": "Use to configure the KMS key to use when encrypting the device\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" }, "SnapshotId": { + "markdownDescription": "The snapshot that defines the device contents\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotId", "type": "string" }, "Throughput": { + "markdownDescription": "**For GP3 volumes only** \u2013 The throughput in MiB/s that the volume supports\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `125` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Throughput", "type": "number" }, "VolumeSize": { + "markdownDescription": "Use to override the device's volume size\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `16000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeSize", "type": "number" }, "VolumeType": { + "markdownDescription": "Use to override the device's volume type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `gp2 | gp3 | io1 | io2 | sc1 | st1 | standard` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeType", "type": "string" } }, @@ -76491,15 +93436,23 @@ "additionalProperties": false, "properties": { "DeviceName": { + "markdownDescription": "The device to which these mappings apply\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceName", "type": "string" }, "Ebs": { - "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.EbsInstanceBlockDeviceSpecification" + "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.EbsInstanceBlockDeviceSpecification", + "markdownDescription": "Use to manage Amazon EBS\\-specific configuration for this mapping\\. \n*Required*: No \n*Type*: [EbsInstanceBlockDeviceSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ebs" }, "NoDevice": { + "markdownDescription": "Use to remove a mapping from the base image\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `0` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NoDevice", "type": "string" }, "VirtualName": { + "markdownDescription": "Use to manage instance ephemeral devices\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VirtualName", "type": "string" } }, @@ -76512,9 +93465,13 @@ "items": { "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.InstanceBlockDeviceMapping" }, + "markdownDescription": "Defines the block devices to attach for building an instance from this Image Builder AMI\\. \n*Required*: No \n*Type*: List of [InstanceBlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-instanceblockdevicemapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BlockDeviceMappings", "type": "array" }, "Image": { + "markdownDescription": "The AMI ID to use as the base image for a container build and test instance\\. If not specified, Image Builder will use the appropriate ECS\\-optimized AMI as a base image\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Image", "type": "string" } }, @@ -76524,9 +93481,13 @@ "additionalProperties": false, "properties": { "RepositoryName": { + "markdownDescription": "The name of the container repository where the output container image is stored\\. This name is prefixed by the repository location\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RepositoryName", "type": "string" }, "Service": { + "markdownDescription": "Specifies the service in which this image was registered\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ECR` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Service", "type": "string" } }, @@ -76568,24 +93529,32 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of this distribution configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Distributions": { "items": { "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.Distribution" }, + "markdownDescription": "The distributions of this distribution configuration formatted as an array of Distribution objects\\. \n*Required*: Yes \n*Type*: List of [Distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Distributions", "type": "array" }, "Name": { + "markdownDescription": "The name of this distribution configuration\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "additionalProperties": true, + "markdownDescription": "The tags of this distribution configuration\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" } }, @@ -76671,10 +93640,14 @@ "additionalProperties": false, "properties": { "AmiDistributionConfiguration": { - "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.AmiDistributionConfiguration" + "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.AmiDistributionConfiguration", + "markdownDescription": "The specific AMI settings, such as launch permissions and AMI tags\\. For details, see example schema below\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AmiDistributionConfiguration" }, "ContainerDistributionConfiguration": { - "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.ContainerDistributionConfiguration" + "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.ContainerDistributionConfiguration", + "markdownDescription": "Container distribution settings for encryption, licensing, and sharing in a specific Region\\. For details, see example schema below\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerDistributionConfiguration" }, "FastLaunchConfigurations": { "items": { @@ -76686,15 +93659,21 @@ "items": { "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.LaunchTemplateConfiguration" }, + "markdownDescription": "A group of launchTemplateConfiguration settings that apply to image distribution for specified accounts\\. \n*Required*: No \n*Type*: List of [LaunchTemplateConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-launchtemplateconfiguration.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplateConfigurations", "type": "array" }, "LicenseConfigurationArns": { "items": { "type": "string" }, + "markdownDescription": "The License Manager Configuration to associate with the AMI in the specified Region\\. For more information, see the [ LicenseConfiguration API](https://docs.aws.amazon.com/license-manager/latest/APIReference/API_LicenseConfiguration.html)\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LicenseConfigurationArns", "type": "array" }, "Region": { + "markdownDescription": "The target Region for the Distribution Configuration\\. For example, `eu-west-1`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", "type": "string" } }, @@ -76782,12 +93761,18 @@ "additionalProperties": false, "properties": { "AccountId": { + "markdownDescription": "The account ID that this configuration applies to\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountId", "type": "string" }, "LaunchTemplateId": { + "markdownDescription": "Identifies the Amazon EC2 launch template to use\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^lt-[a-z0-9-_]{17}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplateId", "type": "string" }, "SetDefaultVersion": { + "markdownDescription": "Set the specified Amazon EC2 launch template as the default launch template for the specified account\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SetDefaultVersion", "type": "boolean" } }, @@ -76841,30 +93826,47 @@ "additionalProperties": false, "properties": { "ContainerRecipeArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the container recipe that is used for this pipeline\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerRecipeArn", "type": "string" }, "DistributionConfigurationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the distribution configuration\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline)/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\\.(?:x|[0-9]+)\\.(?:x|[0-9]+))(?:/[0-9]+)?)?$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DistributionConfigurationArn", "type": "string" }, "EnhancedImageMetadataEnabled": { + "markdownDescription": "Collects additional information about the image being created, including the operating system \\(OS\\) version and package list\\. This information is used to enhance the overall experience of using EC2 Image Builder\\. Enabled by default\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnhancedImageMetadataEnabled", "type": "boolean" }, "ImageRecipeArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the image recipe\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline)/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\\.(?:x|[0-9]+)\\.(?:x|[0-9]+))(?:/[0-9]+)?)?$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageRecipeArn", "type": "string" }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::Image.ImageScanningConfiguration" + }, "ImageTestsConfiguration": { - "$ref": "#/definitions/AWS::ImageBuilder::Image.ImageTestsConfiguration" + "$ref": "#/definitions/AWS::ImageBuilder::Image.ImageTestsConfiguration", + "markdownDescription": "The configuration settings for your image test components, which includes a toggle that allows you to turn off tests, and a timeout setting\\. \n*Required*: No \n*Type*: [ImageTestsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-image-imagetestsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageTestsConfiguration" }, "InfrastructureConfigurationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the infrastructure configuration associated with this image pipeline\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InfrastructureConfigurationArn", "type": "string" }, "Tags": { "additionalProperties": true, + "markdownDescription": "The tags of the image\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" } }, @@ -76894,13 +93896,44 @@ ], "type": "object" }, + "AWS::ImageBuilder::Image.EcrConfiguration": { + "additionalProperties": false, + "properties": { + "ContainerTags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::Image.ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::Image.EcrConfiguration" + }, + "ImageScanningEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, "AWS::ImageBuilder::Image.ImageTestsConfiguration": { "additionalProperties": false, "properties": { "ImageTestsEnabled": { + "markdownDescription": "Determines if tests should run after building the image\\. Image Builder defaults to enable tests to run following the image build, before image distribution\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageTestsEnabled", "type": "boolean" }, "TimeoutMinutes": { + "markdownDescription": "The maximum time in minutes that tests are permitted to run\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `60` \n*Maximum*: `1440` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TimeoutMinutes", "type": "number" } }, @@ -76942,42 +93975,67 @@ "additionalProperties": false, "properties": { "ContainerRecipeArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the container recipe that is used for this pipeline\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerRecipeArn", "type": "string" }, "Description": { + "markdownDescription": "The description of this image pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DistributionConfigurationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the distribution configuration associated with this image pipeline\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DistributionConfigurationArn", "type": "string" }, "EnhancedImageMetadataEnabled": { + "markdownDescription": "Collects additional information about the image being created, including the operating system \\(OS\\) version and package list\\. This information is used to enhance the overall experience of using EC2 Image Builder\\. Enabled by default\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnhancedImageMetadataEnabled", "type": "boolean" }, "ImageRecipeArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the image recipe associated with this image pipeline\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageRecipeArn", "type": "string" }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.ImageScanningConfiguration" + }, "ImageTestsConfiguration": { - "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration" + "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration", + "markdownDescription": "The configuration of the image tests that run after image creation to ensure the quality of the image that was created\\. \n*Required*: No \n*Type*: [ImageTestsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagepipeline-imagetestsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageTestsConfiguration" }, "InfrastructureConfigurationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the infrastructure configuration associated with this image pipeline\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InfrastructureConfigurationArn", "type": "string" }, "Name": { + "markdownDescription": "The name of the image pipeline\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Schedule": { - "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.Schedule" + "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.Schedule", + "markdownDescription": "The schedule of the image pipeline\\. A schedule configures how often and when a pipeline automatically creates a new image\\. \n*Required*: No \n*Type*: [Schedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagepipeline-schedule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule" }, "Status": { + "markdownDescription": "The status of the image pipeline\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" }, "Tags": { "additionalProperties": true, + "markdownDescription": "The tags of this image pipeline\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" } }, @@ -77008,13 +94066,44 @@ ], "type": "object" }, + "AWS::ImageBuilder::ImagePipeline.EcrConfiguration": { + "additionalProperties": false, + "properties": { + "ContainerTags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImagePipeline.ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.EcrConfiguration" + }, + "ImageScanningEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, "AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration": { "additionalProperties": false, "properties": { "ImageTestsEnabled": { + "markdownDescription": "Defines if tests should be executed when building this image\\. For example, `true` or `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageTestsEnabled", "type": "boolean" }, "TimeoutMinutes": { + "markdownDescription": "The maximum time in minutes that tests are permitted to run\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `60` \n*Maximum*: `1440` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutMinutes", "type": "number" } }, @@ -77024,9 +94113,13 @@ "additionalProperties": false, "properties": { "PipelineExecutionStartCondition": { + "markdownDescription": "The condition configures when the pipeline should trigger a new image build\\. When the `pipelineExecutionStartCondition` is set to `EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE`, and you use semantic version filters on the source image or components in your image recipe, Image Builder will build a new image only when there are new versions of the image or components in your recipe that match the semantic version filter\\. When it is set to `EXPRESSION_MATCH_ONLY`, it will build a new image every time the CRON expression matches the current time\\. For semantic version syntax, see [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html) in the * Image Builder API Reference*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE | EXPRESSION_MATCH_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PipelineExecutionStartCondition", "type": "string" }, "ScheduleExpression": { + "markdownDescription": "The cron expression determines how often EC2 Image Builder evaluates your `pipelineExecutionStartCondition`\\. \nFor information on how to format a cron expression in Image Builder, see [Use cron expressions in EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-builder-cron.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleExpression", "type": "string" } }, @@ -77068,42 +94161,60 @@ "additionalProperties": false, "properties": { "AdditionalInstanceConfiguration": { - "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.AdditionalInstanceConfiguration" + "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.AdditionalInstanceConfiguration", + "markdownDescription": "Before you create a new AMI, Image Builder launches temporary Amazon EC2 instances to build and test your image configuration\\. Instance configuration adds a layer of control over those instances\\. You can define settings and add scripts to run when an instance is launched from your AMI\\. \n*Required*: No \n*Type*: [AdditionalInstanceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-additionalinstanceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdditionalInstanceConfiguration" }, "BlockDeviceMappings": { "items": { "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.InstanceBlockDeviceMapping" }, + "markdownDescription": "The block device mappings to apply when creating images from this recipe\\. \n*Required*: No \n*Type*: List of [InstanceBlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BlockDeviceMappings", "type": "array" }, "Components": { "items": { "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.ComponentConfiguration" }, + "markdownDescription": "The components of the image recipe\\. Components are orchestration documents that define a sequence of steps for downloading, installing, configuring, and testing software packages\\. They also define validation and security hardening steps\\. A component is defined using a YAML document format\\. \n*Required*: Yes \n*Type*: List of [ComponentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-componentconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Components", "type": "array" }, "Description": { + "markdownDescription": "The description of the image recipe\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name of the image recipe\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "ParentImage": { + "markdownDescription": "The parent image of the image recipe\\. The string must be either an Image ARN \\(SemVers is ok\\) or an AMI ID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ParentImage", "type": "string" }, "Tags": { "additionalProperties": true, + "markdownDescription": "The tags of the image recipe\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" }, "Version": { + "markdownDescription": "The semantic version of the image recipe\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[0-9]+\\.[0-9]+\\.[0-9]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Version", "type": "string" }, "WorkingDirectory": { + "markdownDescription": "The working directory to be used during build and test workflows\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WorkingDirectory", "type": "string" } }, @@ -77140,9 +94251,13 @@ "additionalProperties": false, "properties": { "SystemsManagerAgent": { - "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.SystemsManagerAgent" + "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.SystemsManagerAgent", + "markdownDescription": "Contains settings for the Systems Manager agent on your build instance\\. \n*Required*: No \n*Type*: [SystemsManagerAgent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-systemsmanageragent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SystemsManagerAgent" }, "UserDataOverride": { + "markdownDescription": "Use this property to provide commands or a command script to run when you launch your build instance\\. \nThe userDataOverride property replaces any commands that Image Builder might have added to ensure that Systems Manager is installed on your Linux build instance\\. If you override the user data, make sure that you add commands to install Systems Manager, if it is not pre\\-installed on your base image\\. \nThe user data is always base 64 encoded\\. For example, the following commands are encoded as `IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhci$`: \n *\\#\\!/bin/bash* \nmkdir \\-p /var/bb/ \ntouch /var\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `21847` \n*Pattern*: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserDataOverride", "type": "string" } }, @@ -77152,12 +94267,16 @@ "additionalProperties": false, "properties": { "ComponentArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the component\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):component/[a-z0-9-_]+/(?:(?:([0-9]+|x)\\.([0-9]+|x)\\.([0-9]+|x))|(?:[0-9]+\\.[0-9]+\\.[0-9]+/[0-9]+))$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ComponentArn", "type": "string" }, "Parameters": { "items": { "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.ComponentParameter" }, + "markdownDescription": "A group of parameter settings that are used to configure the component for a specific recipe\\. \n*Required*: No \n*Type*: List of [ComponentParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-componentparameter.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Parameters", "type": "array" } }, @@ -77167,12 +94286,16 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the component parameter to set\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[^\\x00]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Value": { "items": { "type": "string" }, + "markdownDescription": "Sets the value for the named component parameter\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", "type": "array" } }, @@ -77186,27 +94309,43 @@ "additionalProperties": false, "properties": { "DeleteOnTermination": { + "markdownDescription": "Configures delete on termination of the associated device\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeleteOnTermination", "type": "boolean" }, "Encrypted": { + "markdownDescription": "Use to configure device encryption\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Encrypted", "type": "boolean" }, "Iops": { + "markdownDescription": "Use to configure device IOPS\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `100` \n*Maximum*: `64000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Iops", "type": "number" }, "KmsKeyId": { + "markdownDescription": "Use to configure the KMS key to use when encrypting the device\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" }, "SnapshotId": { + "markdownDescription": "The snapshot that defines the device contents\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotId", "type": "string" }, "Throughput": { + "markdownDescription": "**For GP3 volumes only** \u2013 The throughput in MiB/s that the volume supports\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `125` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Throughput", "type": "number" }, "VolumeSize": { + "markdownDescription": "Overrides the volume size of the device\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `16000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeSize", "type": "number" }, "VolumeType": { + "markdownDescription": "Overrides the volume type of the device\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `gp2 | gp3 | io1 | io2 | sc1 | st1 | standard` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeType", "type": "string" } }, @@ -77216,15 +94355,23 @@ "additionalProperties": false, "properties": { "DeviceName": { + "markdownDescription": "The device to which these mappings apply\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceName", "type": "string" }, "Ebs": { - "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.EbsInstanceBlockDeviceSpecification" + "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.EbsInstanceBlockDeviceSpecification", + "markdownDescription": "Use to manage Amazon EBS\\-specific configuration for this mapping\\. \n*Required*: No \n*Type*: [EbsInstanceBlockDeviceSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ebs" }, "NoDevice": { + "markdownDescription": "Enter an empty string to remove a mapping from the parent image\\. \nThe following is an example of an empty string value in the `NoDevice` field\\. \n`NoDevice:\"\"` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NoDevice", "type": "string" }, "VirtualName": { + "markdownDescription": "Manages the instance ephemeral devices\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VirtualName", "type": "string" } }, @@ -77234,6 +94381,8 @@ "additionalProperties": false, "properties": { "UninstallAfterBuild": { + "markdownDescription": "Controls whether the Systems Manager agent is removed from your final build image, prior to creating the new AMI\\. If this is set to true, then the agent is removed from the final image\\. If it's set to false, then the agent is left in, so that it is included in the new AMI\\. The default value is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UninstallAfterBuild", "type": "boolean" } }, @@ -77275,60 +94424,86 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the infrastructure configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "InstanceMetadataOptions": { - "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.InstanceMetadataOptions" + "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.InstanceMetadataOptions", + "markdownDescription": "The instance metadata option settings for the infrastructure configuration\\. \n*Required*: No \n*Type*: [InstanceMetadataOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-instancemetadataoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceMetadataOptions" }, "InstanceProfileName": { + "markdownDescription": "The instance profile of the infrastructure configuration\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[\\w+=,.@-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceProfileName", "type": "string" }, "InstanceTypes": { "items": { "type": "string" }, + "markdownDescription": "The instance types of the infrastructure configuration\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceTypes", "type": "array" }, "KeyPair": { + "markdownDescription": "The Amazon EC2 key pair of the infrastructure configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyPair", "type": "string" }, "Logging": { - "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.Logging" + "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.Logging", + "markdownDescription": "The logging configuration defines where Image Builder uploads your logs\\. \n*Required*: No \n*Type*: [Logging](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-logging.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Logging" }, "Name": { + "markdownDescription": "The name of the infrastructure configuration\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "ResourceTags": { "additionalProperties": true, + "markdownDescription": "The tags attached to the resource created by Image Builder\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "ResourceTags", "type": "object" }, "SecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "The security group IDs of the infrastructure configuration\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "SnsTopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the SNS topic for the infrastructure configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsTopicArn", "type": "string" }, "SubnetId": { + "markdownDescription": "The subnet ID of the infrastructure configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetId", "type": "string" }, "Tags": { "additionalProperties": true, + "markdownDescription": "The tags of the infrastructure configuration\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" }, "TerminateInstanceOnFailure": { + "markdownDescription": "The terminate instance on failure configuration of the infrastructure configuration\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TerminateInstanceOnFailure", "type": "boolean" } }, @@ -77363,9 +94538,13 @@ "additionalProperties": false, "properties": { "HttpPutResponseHopLimit": { + "markdownDescription": "Limit the number of hops that an instance metadata request can traverse to reach its destination\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpPutResponseHopLimit", "type": "number" }, "HttpTokens": { + "markdownDescription": "Indicates whether a signed token header is required for instance metadata retrieval requests\\. The values affect the response as follows: \n+ **required** \u2013 When you retrieve the IAM role credentials, version 2\\.0 credentials are returned in all cases\\.\n+ **optional** \u2013 You can include a signed token header in your request to retrieve instance metadata, or you can leave it out\\. If you include it, version 2\\.0 credentials are returned for the IAM role\\. Otherwise, version 1\\.0 credentials are returned\\.\nThe default setting is **optional**\\. \n*Required*: No \n*Type*: String \n*Pattern*: `optional|required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpTokens", "type": "string" } }, @@ -77375,7 +94554,9 @@ "additionalProperties": false, "properties": { "S3Logs": { - "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.S3Logs" + "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.S3Logs", + "markdownDescription": "The Amazon S3 logging configuration\\. \n*Required*: No \n*Type*: [S3Logs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-s3logs.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Logs" } }, "type": "object" @@ -77384,9 +94565,13 @@ "additionalProperties": false, "properties": { "S3BucketName": { + "markdownDescription": "The S3 bucket in which to store the logs\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketName", "type": "string" }, "S3KeyPrefix": { + "markdownDescription": "The Amazon S3 path to the bucket where the logs are stored\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3KeyPrefix", "type": "string" } }, @@ -77428,9 +94613,13 @@ "additionalProperties": false, "properties": { "AssessmentTargetName": { + "markdownDescription": "The name of the Amazon Inspector assessment target\\. The name must be unique within the AWS account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `140` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AssessmentTargetName", "type": "string" }, "ResourceGroupArn": { + "markdownDescription": "The ARN that specifies the resource group that is used to create the assessment target\\. If `resourceGroupArn` is not specified, all EC2 instances in the current AWS account and Region are included in the assessment target\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceGroupArn", "type": "string" } }, @@ -77492,24 +94681,34 @@ "additionalProperties": false, "properties": { "AssessmentTargetArn": { + "markdownDescription": "The ARN of the assessment target to be included in the assessment template\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AssessmentTargetArn", "type": "string" }, "AssessmentTemplateName": { + "markdownDescription": "The user\\-defined name that identifies the assessment template that you want to create\\. You can create several assessment templates for the same assessment target\\. The names of the assessment templates that correspond to a particular assessment target must be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `140` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AssessmentTemplateName", "type": "string" }, "DurationInSeconds": { + "markdownDescription": "The duration of the assessment run in seconds\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `180` \n*Maximum*: `86400` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DurationInSeconds", "type": "number" }, "RulesPackageArns": { "items": { "type": "string" }, + "markdownDescription": "The ARNs of the rules packages that you want to use in the assessment template\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RulesPackageArns", "type": "array" }, "UserAttributesForFindings": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The user\\-defined attributes that are assigned to every finding that is generated by the assessment run that uses this assessment template\\. Within an assessment template, each key must be unique\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserAttributesForFindings", "type": "array" } }, @@ -77580,6 +94779,8 @@ "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags \\(key and value pairs\\) that will be associated with the resource group\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: Yes \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceGroupTags", "type": "array" } }, @@ -77645,15 +94846,23 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the filter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "FilterAction": { + "markdownDescription": "The action that is to be applied to the findings that match the filter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterAction", "type": "string" }, "FilterCriteria": { - "$ref": "#/definitions/AWS::InspectorV2::Filter.FilterCriteria" + "$ref": "#/definitions/AWS::InspectorV2::Filter.FilterCriteria", + "markdownDescription": "Details on the filter criteria associated with this filter\\. \n*Required*: Yes \n*Type*: [FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-filtercriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterCriteria" }, "Name": { + "markdownDescription": "The name of the filter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -77689,9 +94898,13 @@ "additionalProperties": false, "properties": { "EndInclusive": { + "markdownDescription": "A timestamp representing the end of the time period filtered on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndInclusive", "type": "number" }, "StartInclusive": { + "markdownDescription": "A timestamp representing the start of the time period filtered on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartInclusive", "type": "number" } }, @@ -77704,186 +94917,248 @@ "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "Details of the AWS account IDs used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsAccountId", "type": "array" }, "ComponentId": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "Details of the component IDs used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentId", "type": "array" }, "ComponentType": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "Details of the component types used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentType", "type": "array" }, "Ec2InstanceImageId": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "Details of the Amazon EC2 instance image IDs used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ec2InstanceImageId", "type": "array" }, "Ec2InstanceSubnetId": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "Details of the Amazon EC2 instance subnet IDs used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ec2InstanceSubnetId", "type": "array" }, "Ec2InstanceVpcId": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "Details of the Amazon EC2 instance VPC IDs used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ec2InstanceVpcId", "type": "array" }, "EcrImageArchitecture": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "Details of the Amazon ECR image architecture types used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EcrImageArchitecture", "type": "array" }, "EcrImageHash": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "Details of the Amazon ECR image hashes used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EcrImageHash", "type": "array" }, "EcrImagePushedAt": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.DateFilter" }, + "markdownDescription": "Details on the Amazon ECR image push date and time used to filter findings\\. \n*Required*: No \n*Type*: List of [DateFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-datefilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EcrImagePushedAt", "type": "array" }, "EcrImageRegistry": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "Details on the Amazon ECR registry used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EcrImageRegistry", "type": "array" }, "EcrImageRepositoryName": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "Details on the name of the Amazon ECR repository used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EcrImageRepositoryName", "type": "array" }, "EcrImageTags": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "The tags attached to the Amazon ECR container image\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EcrImageTags", "type": "array" }, "FindingArn": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "Details on the finding ARNs used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FindingArn", "type": "array" }, "FindingStatus": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "Details on the finding status types used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FindingStatus", "type": "array" }, "FindingType": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "Details on the finding types used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FindingType", "type": "array" }, "FirstObservedAt": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.DateFilter" }, + "markdownDescription": "Details on the date and time a finding was first seen used to filter findings\\. \n*Required*: No \n*Type*: List of [DateFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-datefilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FirstObservedAt", "type": "array" }, "InspectorScore": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.NumberFilter" }, + "markdownDescription": "The Amazon Inspector score to filter on\\. \n*Required*: No \n*Type*: List of [NumberFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-numberfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InspectorScore", "type": "array" }, "LastObservedAt": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.DateFilter" }, + "markdownDescription": "Details on the date and time a finding was last seen used to filter findings\\. \n*Required*: No \n*Type*: List of [DateFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-datefilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastObservedAt", "type": "array" }, "NetworkProtocol": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "Details on the ingress source addresses used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkProtocol", "type": "array" }, "PortRange": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.PortRangeFilter" }, + "markdownDescription": "Details on the port ranges used to filter findings\\. \n*Required*: No \n*Type*: List of [PortRangeFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-portrangefilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortRange", "type": "array" }, "RelatedVulnerabilities": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "Details on the related vulnerabilities used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RelatedVulnerabilities", "type": "array" }, "ResourceId": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "Details on the resource IDs used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceId", "type": "array" }, "ResourceTags": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.MapFilter" }, + "markdownDescription": "Details on the resource tags used to filter findings\\. \n*Required*: No \n*Type*: List of [MapFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-mapfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceTags", "type": "array" }, "ResourceType": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "Details on the resource types used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceType", "type": "array" }, "Severity": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "Details on the severity used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Severity", "type": "array" }, "Title": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "Details on the finding title used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Title", "type": "array" }, "UpdatedAt": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.DateFilter" }, + "markdownDescription": "Details on the date and time a finding was last updated at used to filter findings\\. \n*Required*: No \n*Type*: List of [DateFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-datefilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdatedAt", "type": "array" }, "VendorSeverity": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "Details on the vendor severity used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VendorSeverity", "type": "array" }, "VulnerabilityId": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "Details on the vulnerability ID used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VulnerabilityId", "type": "array" }, "VulnerabilitySource": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" }, + "markdownDescription": "Details on the vulnerability score to filter findings by\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VulnerabilitySource", "type": "array" }, "VulnerablePackages": { "items": { "$ref": "#/definitions/AWS::InspectorV2::Filter.PackageFilter" }, + "markdownDescription": "Details on the vulnerable packages used to filter findings\\. \n*Required*: No \n*Type*: List of [PackageFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-packagefilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VulnerablePackages", "type": "array" } }, @@ -77893,12 +95168,18 @@ "additionalProperties": false, "properties": { "Comparison": { + "markdownDescription": "The operator to use when comparing values in the filter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comparison", "type": "string" }, "Key": { + "markdownDescription": "The tag key used in the filter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The tag value used in the filter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -77911,9 +95192,13 @@ "additionalProperties": false, "properties": { "LowerInclusive": { + "markdownDescription": "The lowest number to be included in the filter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LowerInclusive", "type": "number" }, "UpperInclusive": { + "markdownDescription": "The highest number to be included in the filter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpperInclusive", "type": "number" } }, @@ -77923,22 +95208,34 @@ "additionalProperties": false, "properties": { "Architecture": { - "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter", + "markdownDescription": "An object that contains details on the package architecture type to filter on\\. \n*Required*: No \n*Type*: [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Architecture" }, "Epoch": { - "$ref": "#/definitions/AWS::InspectorV2::Filter.NumberFilter" + "$ref": "#/definitions/AWS::InspectorV2::Filter.NumberFilter", + "markdownDescription": "An object that contains details on the package epoch to filter on\\. \n*Required*: No \n*Type*: [NumberFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-numberfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Epoch" }, "Name": { - "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter", + "markdownDescription": "An object that contains details on the name of the package to filter on\\. \n*Required*: No \n*Type*: [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name" }, "Release": { - "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter", + "markdownDescription": "An object that contains details on the package release to filter on\\. \n*Required*: No \n*Type*: [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Release" }, "SourceLayerHash": { - "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter", + "markdownDescription": "An object that contains details on the source layer hash to filter on\\. \n*Required*: No \n*Type*: [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceLayerHash" }, "Version": { - "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter", + "markdownDescription": "The package version to filter on\\. \n*Required*: No \n*Type*: [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version" } }, "type": "object" @@ -77947,9 +95244,13 @@ "additionalProperties": false, "properties": { "BeginInclusive": { + "markdownDescription": "The port number the port range begins at\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BeginInclusive", "type": "number" }, "EndInclusive": { + "markdownDescription": "The port number the port range ends at\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndInclusive", "type": "number" } }, @@ -77959,9 +95260,13 @@ "additionalProperties": false, "properties": { "Comparison": { + "markdownDescription": "The operator to use when comparing values in the filter \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comparison", "type": "string" }, "Value": { + "markdownDescription": "The value to filter on\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -78007,9 +95312,13 @@ "additionalProperties": false, "properties": { "DeviceId": { + "markdownDescription": "The ID of the device, such as `G030PX0312744DWM`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceId", "type": "string" }, "Enabled": { + "markdownDescription": "A Boolean value indicating whether the device is enabled \\(`true`\\) or not \\(`false`\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -78076,15 +95385,23 @@ "additionalProperties": false, "properties": { "AssociatedDevices": { + "markdownDescription": "The devices to associate with the placement, as defined by a mapping of zero or more key\\-value pairs wherein the key is a template name and the value is a device ID\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AssociatedDevices", "type": "object" }, "Attributes": { + "markdownDescription": "The user\\-defined attributes associated with the placement\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attributes", "type": "object" }, "PlacementName": { + "markdownDescription": "The name of the placement\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlacementName", "type": "string" }, "ProjectName": { + "markdownDescription": "The name of the project containing the placement\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProjectName", "type": "string" } }, @@ -78150,12 +95467,18 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the project\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "PlacementTemplate": { - "$ref": "#/definitions/AWS::IoT1Click::Project.PlacementTemplate" + "$ref": "#/definitions/AWS::IoT1Click::Project.PlacementTemplate", + "markdownDescription": "An object describing the project's placement specifications\\. \n*Required*: Yes \n*Type*: [PlacementTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot1click-project-placementtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlacementTemplate" }, "ProjectName": { + "markdownDescription": "The name of the project from which to obtain information\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProjectName", "type": "string" } }, @@ -78189,9 +95512,13 @@ "additionalProperties": false, "properties": { "CallbackOverrides": { + "markdownDescription": "An optional AWS Lambda function to invoke instead of the default AWS Lambda function provided by the placement template\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CallbackOverrides", "type": "object" }, "DeviceType": { + "markdownDescription": "The device type, which currently must be `\"button\"`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceType", "type": "string" } }, @@ -78201,9 +95528,13 @@ "additionalProperties": false, "properties": { "DefaultAttributes": { + "markdownDescription": "The default attributes \\(key\\-value pairs\\) to be applied to all placements using this template\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultAttributes", "type": "object" }, "DeviceTemplates": { + "markdownDescription": "An object specifying the [DeviceTemplate](https://docs.aws.amazon.com/iot-1-click/latest/projects-apireference/API_DeviceTemplate.html) for all placements using this \\([PlacementTemplate](https://docs.aws.amazon.com/iot-1-click/latest/projects-apireference/API_PlacementTemplate.html)\\) template\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceTemplates", "type": "object" } }, @@ -78245,15 +95576,23 @@ "additionalProperties": false, "properties": { "AccountId": { + "markdownDescription": "The ID of the account\\. You can use the expression `!Sub \"${AWS::AccountId}\"` to use your account ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccountId", "type": "string" }, "AuditCheckConfigurations": { - "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfigurations" + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfigurations", + "markdownDescription": "Specifies which audit checks are enabled and disabled for this account\\. \nSome data collection might start immediately when certain checks are enabled\\. When a check is disabled, any data collected so far in relation to the check is deleted\\. To disable a check, set the value of the `Enabled:` key to `false`\\. \nIf an enabled check is removed from the template, it will also be disabled\\. \nYou can't disable a check if it's used by any scheduled audit\\. You must delete the check from the scheduled audit or delete the scheduled audit itself to disable the check\\. \nFor more information on avialbe auidt checks see [AWS::IoT::AccountAuditConfiguration AuditCheckConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html) \n*Required*: Yes \n*Type*: [AuditCheckConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuditCheckConfigurations" }, "AuditNotificationTargetConfigurations": { - "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditNotificationTargetConfigurations" + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditNotificationTargetConfigurations", + "markdownDescription": "Information about the targets to which audit notifications are sent\\. \n*Required*: No \n*Type*: [AuditNotificationTargetConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditnotificationtargetconfigurations.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuditNotificationTargetConfigurations" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that grants permission to AWS IoT to access information about your devices, policies, certificates, and other items as required when performing an audit\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -78289,6 +95628,8 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "True if this audit check is enabled for this account\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -78298,25 +95639,39 @@ "additionalProperties": false, "properties": { "AuthenticatedCognitoRoleOverlyPermissiveCheck": { - "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks the permissiveness of an authenticated Amazon Cognito identity pool role\\. For this check, AWS IoT Device Defender audits all Amazon Cognito identity pools that have been used to connect to the AWS IoT message broker during the 31 days before the audit is performed\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticatedCognitoRoleOverlyPermissiveCheck" }, "CaCertificateExpiringCheck": { - "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks if a CA certificate is expiring\\. This check applies to CA certificates expiring within 30 days or that have expired\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaCertificateExpiringCheck" }, "CaCertificateKeyQualityCheck": { - "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks the quality of the CA certificate key\\. The quality checks if the key is in a valid format, not expired, and if the key meets a minimum required size\\. This check applies to CA certificates that are `ACTIVE` or `PENDING_TRANSFER`\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaCertificateKeyQualityCheck" }, "ConflictingClientIdsCheck": { - "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks if multiple devices connect using the same client ID\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConflictingClientIdsCheck" }, "DeviceCertificateExpiringCheck": { - "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks if a device certificate is expiring\\. This check applies to device certificates expiring within 30 days or that have expired\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceCertificateExpiringCheck" }, "DeviceCertificateKeyQualityCheck": { - "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks the quality of the device certificate key\\. The quality checks if the key is in a valid format, not expired, signed by a registered certificate authority, and if the key meets a minimum required size\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceCertificateKeyQualityCheck" }, "DeviceCertificateSharedCheck": { - "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks if multiple concurrent connections use the same X\\.509 certificate to authenticate with AWS IoT\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceCertificateSharedCheck" }, "IntermediateCaRevokedForActiveDeviceCertificatesCheck": { "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" @@ -78325,25 +95680,39 @@ "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" }, "IotPolicyOverlyPermissiveCheck": { - "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks the permissiveness of a policy attached to an authenticated Amazon Cognito identity pool role\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotPolicyOverlyPermissiveCheck" }, "IotRoleAliasAllowsAccessToUnusedServicesCheck": { - "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks if a role alias has access to services that haven't been used for the AWS IoT device in the last year\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotRoleAliasAllowsAccessToUnusedServicesCheck" }, "IotRoleAliasOverlyPermissiveCheck": { - "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks if the temporary credentials provided by AWS IoT role aliases are overly permissive\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotRoleAliasOverlyPermissiveCheck" }, "LoggingDisabledCheck": { - "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks if AWS IoT logs are disabled\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingDisabledCheck" }, "RevokedCaCertificateStillActiveCheck": { - "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks if a revoked CA certificate is still active\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RevokedCaCertificateStillActiveCheck" }, "RevokedDeviceCertificateStillActiveCheck": { - "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks if a revoked device certificate is still active\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RevokedDeviceCertificateStillActiveCheck" }, "UnauthenticatedCognitoRoleOverlyPermissiveCheck": { - "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks if policy attached to an unauthenticated Amazon Cognito identity pool role is too permissive\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnauthenticatedCognitoRoleOverlyPermissiveCheck" } }, "type": "object" @@ -78352,12 +95721,18 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "True if notifications to the target are enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "RoleArn": { + "markdownDescription": "The ARN of the role that grants permission to send notifications to the target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "TargetArn": { + "markdownDescription": "The ARN of the target \\(SNS topic\\) to which audit notifications are sent\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetArn", "type": "string" } }, @@ -78367,7 +95742,9 @@ "additionalProperties": false, "properties": { "Sns": { - "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditNotificationTarget" + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditNotificationTarget", + "markdownDescription": "The `Sns` notification target\\. \n*Required*: No \n*Type*: [AuditNotificationTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditnotificationtarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sns" } }, "type": "object" @@ -78408,36 +95785,52 @@ "additionalProperties": false, "properties": { "AuthorizerFunctionArn": { + "markdownDescription": "The authorizer's Lambda function ARN\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerFunctionArn", "type": "string" }, "AuthorizerName": { + "markdownDescription": "The authorizer name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthorizerName", "type": "string" }, "EnableCachingForHttp": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableCachingForHttp", "type": "boolean" }, "SigningDisabled": { + "markdownDescription": "Specifies whether AWS IoT validates the token signature in an authorization request\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SigningDisabled", "type": "boolean" }, "Status": { + "markdownDescription": "The status of the authorizer\\. \nValid values: `ACTIVE` \\| `INACTIVE` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Metadata which can be used to manage the custom authorizer\\. \nFor URI Request parameters use format: \\.\\.\\.key1=value1&key2=value2\\.\\.\\. \nFor the CLI command\\-line parameter use format: &&tags \"key1=value1&key2=value2\\.\\.\\.\" \nFor the cli\\-input\\-json file use format: \"tags\": \"key1=value1&key2=value2\\.\\.\\.\"\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TokenKeyName": { + "markdownDescription": "The key used to extract the token from the HTTP headers\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenKeyName", "type": "string" }, "TokenSigningPublicKeys": { "additionalProperties": true, + "markdownDescription": "The public keys used to validate the token signature returned by your custom authentication service\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "TokenSigningPublicKeys", "type": "object" } }, @@ -78608,18 +96001,28 @@ "additionalProperties": false, "properties": { "CACertificatePem": { + "markdownDescription": "The CA certificate used to sign the device certificate being registered, not available when CertificateMode is SNI\\_ONLY\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CACertificatePem", "type": "string" }, "CertificateMode": { + "markdownDescription": "Specifies which mode of certificate registration to use with this resource\\. Valid options are DEFAULT with CaCertificatePem and CertificatePem, SNI\\_ONLY with CertificatePem, and Default with CertificateSigningRequest\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateMode", "type": "string" }, "CertificatePem": { + "markdownDescription": "The certificate data in PEM format\\. Requires SNI\\_ONLY for the certificate mode or the accompanying CACertificatePem for registration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificatePem", "type": "string" }, "CertificateSigningRequest": { + "markdownDescription": "The certificate signing request \\(CSR\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateSigningRequest", "type": "string" }, "Status": { + "markdownDescription": "The status of the certificate\\. \nValid values are ACTIVE, INACTIVE, REVOKED, PENDING\\_TRANSFER, and PENDING\\_ACTIVATION\\. \nThe status value REGISTER\\_INACTIVE is deprecated and should not be used\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" } }, @@ -78685,18 +96088,26 @@ "additionalProperties": false, "properties": { "DisplayName": { + "markdownDescription": "The friendly name in the console for the custom metric\\. This name doesn't have to be unique\\. Don't use this name as the metric identifier in the device metric report\\. You can update the friendly name after you define it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", "type": "string" }, "MetricName": { + "markdownDescription": "The name of the custom metric\\. This will be used in the metric report submitted from the device/thing\\. The name can't begin with `aws:`\\. You can\u2019t change the name after you define it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricName", "type": "string" }, "MetricType": { + "markdownDescription": "The type of the custom metric\\. Types include `string-list`, `ip-address-list`, `number-list`, and `number`\\. \nThe type `number` only takes a single metric value as an input, but when you submit the metrics value in the DeviceMetrics report, you must pass it as an array with a single value\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricType", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Metadata that can be used to manage the custom metric\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -78762,21 +96173,29 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "A unique identifier for the dimension\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "StringValues": { "items": { "type": "string" }, + "markdownDescription": "Specifies the value or list of values for the dimension\\. For `TOPIC_FILTER` dimensions, this is a pattern used to match the MQTT topic \\(for example, \"admin/\\#\"\\)\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StringValues", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Metadata that can be used to manage the dimension\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Type": { + "markdownDescription": "Specifies the type of dimension\\. Supported types: `TOPIC_FILTER.` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -78843,33 +96262,49 @@ "additionalProperties": false, "properties": { "AuthorizerConfig": { - "$ref": "#/definitions/AWS::IoT::DomainConfiguration.AuthorizerConfig" + "$ref": "#/definitions/AWS::IoT::DomainConfiguration.AuthorizerConfig", + "markdownDescription": "An object that specifies the authorization service for a domain\\. \n*Required*: No \n*Type*: [AuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-authorizerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerConfig" }, "DomainConfigurationName": { + "markdownDescription": "The name of the domain configuration\\. This value must be unique to a region\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainConfigurationName", "type": "string" }, "DomainConfigurationStatus": { + "markdownDescription": "The status to which the domain configuration should be updated\\. \nValid values: `ENABLED` \\| `DISABLED` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainConfigurationStatus", "type": "string" }, "DomainName": { + "markdownDescription": "The name of the domain\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", "type": "string" }, "ServerCertificateArns": { "items": { "type": "string" }, + "markdownDescription": "The ARNs of the certificates that AWS IoT passes to the device during the TLS handshake\\. Currently you can specify only one certificate ARN\\. This value is not required for AWS\\-managed domains\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServerCertificateArns", "type": "array" }, "ServiceType": { + "markdownDescription": "The type of service delivered by the endpoint\\. \n AWS IoT Core currently supports only the `DATA` service type\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceType", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Metadata which can be used to manage the domain configuration\\. \nFor URI Request parameters use format: \\.\\.\\.key1=value1&key2=value2\\.\\.\\. \nFor the CLI command\\-line parameter use format: &&tags \"key1=value1&key2=value2\\.\\.\\.\" \nFor the cli\\-input\\-json file use format: \"tags\": \"key1=value1&key2=value2\\.\\.\\.\"\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "ValidationCertificateArn": { + "markdownDescription": "The certificate used to validate the server certificate and prove domain name ownership\\. This certificate must be signed by a public certificate authority\\. This value is not required for AWS\\-managed domains\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ValidationCertificateArn", "type": "string" } }, @@ -78899,9 +96334,13 @@ "additionalProperties": false, "properties": { "AllowAuthorizerOverride": { + "markdownDescription": "A Boolean that specifies whether the domain configuration's authorization service can be overridden\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowAuthorizerOverride", "type": "boolean" }, "DefaultAuthorizerName": { + "markdownDescription": "The name of the authorization service for a domain configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultAuthorizerName", "type": "string" } }, @@ -78911,12 +96350,18 @@ "additionalProperties": false, "properties": { "ServerCertificateArn": { + "markdownDescription": "The ARN of the server certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerCertificateArn", "type": "string" }, "ServerCertificateStatus": { + "markdownDescription": "The status of the server certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerCertificateStatus", "type": "string" }, "ServerCertificateStatusDetail": { + "markdownDescription": "Details that explain the status of the server certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerCertificateStatusDetail", "type": "string" } }, @@ -78958,36 +96403,56 @@ "additionalProperties": false, "properties": { "AggregationField": { + "markdownDescription": "The field to aggregate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AggregationField", "type": "string" }, "AggregationType": { - "$ref": "#/definitions/AWS::IoT::FleetMetric.AggregationType" + "$ref": "#/definitions/AWS::IoT::FleetMetric.AggregationType", + "markdownDescription": "The type of the aggregation query\\. \n*Required*: No \n*Type*: [AggregationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-fleetmetric-aggregationtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AggregationType" }, "Description": { + "markdownDescription": "The fleet metric description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "IndexName": { + "markdownDescription": "The name of the index to search\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IndexName", "type": "string" }, "MetricName": { + "markdownDescription": "The name of the fleet metric to create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricName", "type": "string" }, "Period": { + "markdownDescription": "The time in seconds between fleet metric emissions\\. Range \\[60\\(1 min\\), 86400\\(1 day\\)\\] and must be multiple of 60\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Period", "type": "number" }, "QueryString": { + "markdownDescription": "The search query string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryString", "type": "string" }, "QueryVersion": { + "markdownDescription": "The query version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryVersion", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Metadata which can be used to manage the fleet metric\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Unit": { + "markdownDescription": "Used to support unit transformation such as milliseconds to seconds\\. Must be a unit supported by CW metric\\. Default to null\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", "type": "string" } }, @@ -79021,12 +96486,16 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the aggregation type\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "A list of the values of aggregation types\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -79072,40 +96541,62 @@ "additionalProperties": false, "properties": { "AbortConfig": { - "$ref": "#/definitions/AWS::IoT::JobTemplate.AbortConfig" + "$ref": "#/definitions/AWS::IoT::JobTemplate.AbortConfig", + "markdownDescription": "The criteria that determine when and how a job abort takes place\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AbortConfig" }, "Description": { + "markdownDescription": "A description of the job template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "Document": { + "markdownDescription": "The job document\\. \nRequired if you don't specify a value for `documentSource`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Document", "type": "string" }, "DocumentSource": { + "markdownDescription": "An S3 link to the job document to use in the template\\. Required if you don't specify a value for `document`\\. \nIf the job document resides in an S3 bucket, you must use a placeholder link when specifying the document\\. \nThe placeholder link is of the following form: \n `${aws:iot:s3-presigned-url:https://s3.amazonaws.com/bucket/key}` \nwhere *bucket* is your bucket name and *key* is the object in the bucket to which you are linking\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DocumentSource", "type": "string" }, "JobArn": { + "markdownDescription": "The ARN of the job to use as the basis for the job template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "JobArn", "type": "string" }, "JobExecutionsRetryConfig": { - "$ref": "#/definitions/AWS::IoT::JobTemplate.JobExecutionsRetryConfig" + "$ref": "#/definitions/AWS::IoT::JobTemplate.JobExecutionsRetryConfig", + "markdownDescription": "Allows you to create the criteria to retry a job\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobExecutionsRetryConfig" }, "JobExecutionsRolloutConfig": { - "$ref": "#/definitions/AWS::IoT::JobTemplate.JobExecutionsRolloutConfig" + "$ref": "#/definitions/AWS::IoT::JobTemplate.JobExecutionsRolloutConfig", + "markdownDescription": "Allows you to create a staged rollout of a job\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "JobExecutionsRolloutConfig" }, "JobTemplateId": { + "markdownDescription": "A unique identifier for the job template\\. We recommend using a UUID\\. Alpha\\-numeric characters, \"\\-\", and \"\\_\" are valid for use here\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "JobTemplateId", "type": "string" }, "PresignedUrlConfig": { - "$ref": "#/definitions/AWS::IoT::JobTemplate.PresignedUrlConfig" + "$ref": "#/definitions/AWS::IoT::JobTemplate.PresignedUrlConfig", + "markdownDescription": "Configuration for pre\\-signed S3 URLs\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PresignedUrlConfig" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Metadata that can be used to manage the job template\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" }, "TimeoutConfig": { - "$ref": "#/definitions/AWS::IoT::JobTemplate.TimeoutConfig" + "$ref": "#/definitions/AWS::IoT::JobTemplate.TimeoutConfig", + "markdownDescription": "Specifies the amount of time each device has to finish its execution of the job\\. A timer is started when the job execution status is set to `IN_PROGRESS`\\. If the job execution status is not set to another terminal state before the timer expires, it will be automatically set to `TIMED_OUT`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TimeoutConfig" } }, "required": [ @@ -79305,12 +96796,18 @@ "additionalProperties": false, "properties": { "AccountId": { + "markdownDescription": "The account ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccountId", "type": "string" }, "DefaultLogLevel": { + "markdownDescription": "The default log level\\.Valid Values: `DEBUG | INFO | ERROR | WARN | DISABLED` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultLogLevel", "type": "string" }, "RoleArn": { + "markdownDescription": "The role ARN used for the log\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -79378,18 +96875,26 @@ "additionalProperties": false, "properties": { "ActionName": { + "markdownDescription": "The friendly name of the mitigation action\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ActionName", "type": "string" }, "ActionParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.ActionParams" + "$ref": "#/definitions/AWS::IoT::MitigationAction.ActionParams", + "markdownDescription": "The set of parameters for this mitigation action\\. The parameters vary, depending on the kind of action you apply\\. \n*Required*: Yes \n*Type*: [ActionParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-actionparams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionParams" }, "RoleArn": { + "markdownDescription": "The IAM role ARN used to apply this mitigation action\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Metadata that can be used to manage the mitigation action\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -79424,22 +96929,34 @@ "additionalProperties": false, "properties": { "AddThingsToThingGroupParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.AddThingsToThingGroupParams" + "$ref": "#/definitions/AWS::IoT::MitigationAction.AddThingsToThingGroupParams", + "markdownDescription": "Specifies the group to which you want to add the devices\\. \n*Required*: No \n*Type*: [AddThingsToThingGroupParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-addthingstothinggroupparams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddThingsToThingGroupParams" }, "EnableIoTLoggingParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.EnableIoTLoggingParams" + "$ref": "#/definitions/AWS::IoT::MitigationAction.EnableIoTLoggingParams", + "markdownDescription": "Specifies the logging level and the role with permissions for logging\\. You cannot specify a logging level of `DISABLED`\\. \n*Required*: No \n*Type*: [EnableIoTLoggingParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-enableiotloggingparams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableIoTLoggingParams" }, "PublishFindingToSnsParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.PublishFindingToSnsParams" + "$ref": "#/definitions/AWS::IoT::MitigationAction.PublishFindingToSnsParams", + "markdownDescription": "Specifies the topic to which the finding should be published\\. \n*Required*: No \n*Type*: [PublishFindingToSnsParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-publishfindingtosnsparams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublishFindingToSnsParams" }, "ReplaceDefaultPolicyVersionParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams" + "$ref": "#/definitions/AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams", + "markdownDescription": "Replaces the policy version with a default or blank policy\\. You specify the template name\\. Only a value of `BLANK_POLICY` is currently supported\\. \n*Required*: No \n*Type*: [ReplaceDefaultPolicyVersionParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-replacedefaultpolicyversionparams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplaceDefaultPolicyVersionParams" }, "UpdateCACertificateParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateCACertificateParams" + "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateCACertificateParams", + "markdownDescription": "Specifies the new state for the CA certificate\\. Only a value of `DEACTIVATE` is currently supported\\. \n*Required*: No \n*Type*: [UpdateCACertificateParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-updatecacertificateparams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdateCACertificateParams" }, "UpdateDeviceCertificateParams": { - "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateDeviceCertificateParams" + "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateDeviceCertificateParams", + "markdownDescription": "Specifies the new state for a device certificate\\. Only a value of `DEACTIVATE` is currently supported\\. \n*Required*: No \n*Type*: [UpdateDeviceCertificateParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-updatedevicecertificateparams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdateDeviceCertificateParams" } }, "type": "object" @@ -79448,12 +96965,16 @@ "additionalProperties": false, "properties": { "OverrideDynamicGroups": { + "markdownDescription": "Specifies if this mitigation action can move the things that triggered the mitigation action even if they are part of one or more dynamic thing groups\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OverrideDynamicGroups", "type": "boolean" }, "ThingGroupNames": { "items": { "type": "string" }, + "markdownDescription": "The list of groups to which you want to add the things that triggered the mitigation action\\. You can add a thing to a maximum of 10 groups, but you can't add a thing to more than one group in the same hierarchy\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThingGroupNames", "type": "array" } }, @@ -79466,9 +96987,13 @@ "additionalProperties": false, "properties": { "LogLevel": { + "markdownDescription": "Specifies the type of information to be logged\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogLevel", "type": "string" }, "RoleArnForLogging": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role used for logging\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArnForLogging", "type": "string" } }, @@ -79482,6 +97007,8 @@ "additionalProperties": false, "properties": { "TopicArn": { + "markdownDescription": "The ARN of the topic to which you want to publish the findings\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TopicArn", "type": "string" } }, @@ -79494,6 +97021,8 @@ "additionalProperties": false, "properties": { "TemplateName": { + "markdownDescription": "The name of the template to be applied\\. The only supported value is `BLANK_POLICY`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateName", "type": "string" } }, @@ -79506,6 +97035,8 @@ "additionalProperties": false, "properties": { "Action": { + "markdownDescription": "The action that you want to apply to the CA certificate\\. The only supported value is `DEACTIVATE`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", "type": "string" } }, @@ -79518,6 +97049,8 @@ "additionalProperties": false, "properties": { "Action": { + "markdownDescription": "The action that you want to apply to the device certificate\\. The only supported value is `DEACTIVATE`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", "type": "string" } }, @@ -79562,9 +97095,13 @@ "additionalProperties": false, "properties": { "PolicyDocument": { + "markdownDescription": "The JSON document that describes the policy\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PolicyDocument", "type": "object" }, "PolicyName": { + "markdownDescription": "The policy name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PolicyName", "type": "string" } }, @@ -79630,9 +97167,13 @@ "additionalProperties": false, "properties": { "PolicyName": { + "markdownDescription": "The name of the AWS IoT policy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PolicyName", "type": "string" }, "Principal": { + "markdownDescription": "The principal, which can be a certificate ARN \\(as returned from the `CreateCertificate` operation\\) or an Amazon Cognito ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Principal", "type": "string" } }, @@ -79699,27 +97240,41 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the fleet provisioning template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Enabled": { + "markdownDescription": "True to enable the fleet provisioning template, otherwise false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "PreProvisioningHook": { - "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate.ProvisioningHook" + "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate.ProvisioningHook", + "markdownDescription": "Creates a pre\\-provisioning hook template\\. \n*Required*: No \n*Type*: [ProvisioningHook](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-provisioningtemplate-provisioninghook.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreProvisioningHook" }, "ProvisioningRoleArn": { + "markdownDescription": "The role ARN for the role associated with the fleet provisioning template\\. This IoT role grants permission to provision a device\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisioningRoleArn", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Metadata that can be used to manage the fleet provisioning template\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TemplateBody": { + "markdownDescription": "The JSON formatted contents of the fleet provisioning template version\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateBody", "type": "string" }, "TemplateName": { + "markdownDescription": "The name of the fleet provisioning template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TemplateName", "type": "string" }, "TemplateType": { @@ -79757,9 +97312,13 @@ "additionalProperties": false, "properties": { "PayloadVersion": { + "markdownDescription": "The payload that was sent to the target function\\. The valid payload is `\"2020-04-01\"`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PayloadVersion", "type": "string" }, "TargetArn": { + "markdownDescription": "The ARN of the target function\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetArn", "type": "string" } }, @@ -79801,12 +97360,18 @@ "additionalProperties": false, "properties": { "LogLevel": { + "markdownDescription": "The default log level\\.Valid Values: `DEBUG | INFO | ERROR | WARN | DISABLED` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogLevel", "type": "string" }, "TargetName": { + "markdownDescription": "The target name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetName", "type": "string" }, "TargetType": { + "markdownDescription": "The target type\\. Valid Values: `DEFAULT | THING_GROUP` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetType", "type": "string" } }, @@ -79951,27 +97516,39 @@ "additionalProperties": false, "properties": { "DayOfMonth": { + "markdownDescription": "The day of the month on which the scheduled audit is run \\(if the `frequency` is \"MONTHLY\"\\)\\. If days 29\\-31 are specified, and the month does not have that many days, the audit takes place on the \"LAST\" day of the month\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DayOfMonth", "type": "string" }, "DayOfWeek": { + "markdownDescription": "The day of the week on which the scheduled audit is run \\(if the `frequency` is \"WEEKLY\" or \"BIWEEKLY\"\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DayOfWeek", "type": "string" }, "Frequency": { + "markdownDescription": "How often the scheduled audit occurs\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Frequency", "type": "string" }, "ScheduledAuditName": { + "markdownDescription": "The name of the scheduled audit\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScheduledAuditName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Metadata that can be used to manage the scheduled audit\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TargetCheckNames": { "items": { "type": "string" }, + "markdownDescription": "Which checks are performed during the scheduled audit\\. Checks must be enabled for your account\\. \\(Use `DescribeAccountAuditConfiguration` to see the list of all checks, including those that are enabled or use `UpdateAccountAuditConfiguration` to select which checks are enabled\\.\\) \n The following checks are currently aviable: \n+ `AUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK`\n+ `CA_CERTIFICATE_EXPIRING_CHECK`\n+ `CA_CERTIFICATE_KEY_QUALITY_CHECK`\n+ `CONFLICTING_CLIENT_IDS_CHECK`\n+ `DEVICE_CERTIFICATE_EXPIRING_CHECK`\n+ `DEVICE_CERTIFICATE_KEY_QUALITY_CHECK`\n+ `DEVICE_CERTIFICATE_SHARED_CHECK`\n+ `IOT_POLICY_OVERLY_PERMISSIVE_CHECK`\n+ `IOT_ROLE_ALIAS_ALLOWS_ACCESS_TO_UNUSED_SERVICES_CHECK`\n+ `IOT_ROLE_ALIAS_OVERLY_PERMISSIVE_CHECK`\n+ `LOGGING_DISABLED_CHECK`\n+ `REVOKED_CA_CERTIFICATE_STILL_ACTIVE_CHECK`\n+ `REVOKED_DEVICE_CERTIFICATE_STILL_ACTIVE_CHECK`\n+ `UNAUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK`\n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetCheckNames", "type": "array" } }, @@ -80041,39 +97618,53 @@ "items": { "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricToRetain" }, + "markdownDescription": "A list of metrics whose data is retained \\(stored\\)\\. By default, data is retained for any metric used in the profile's `behaviors`, but it's also retained for any metric specified here\\. Can be used with custom metrics; can't be used with dimensions\\. \n*Required*: No \n*Type*: List of [MetricToRetain](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metrictoretain.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdditionalMetricsToRetainV2", "type": "array" }, "AlertTargets": { "additionalProperties": false, + "markdownDescription": "Specifies the destinations to which alerts are sent\\. \\(Alerts are always sent to the console\\.\\) Alerts are generated when a device \\(thing\\) violates a behavior\\. \n*Required*: No \n*Type*: Map of [AlertTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-alerttarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::IoT::SecurityProfile.AlertTarget" } }, + "title": "AlertTargets", "type": "object" }, "Behaviors": { "items": { "$ref": "#/definitions/AWS::IoT::SecurityProfile.Behavior" }, + "markdownDescription": "Specifies the behaviors that, when violated by a device \\(thing\\), cause an alert\\. \n*Required*: No \n*Type*: List of [Behavior](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behavior.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Behaviors", "type": "array" }, "SecurityProfileDescription": { + "markdownDescription": "A description of the security profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityProfileDescription", "type": "string" }, "SecurityProfileName": { + "markdownDescription": "The name you gave to the security profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityProfileName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Metadata that can be used to manage the security profile\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TargetArns": { "items": { "type": "string" }, + "markdownDescription": "The ARN of the target \\(thing group\\) to which the security profile is attached\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetArns", "type": "array" } }, @@ -80103,9 +97694,13 @@ "additionalProperties": false, "properties": { "AlertTargetArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the notification target to which alerts are sent\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlertTargetArn", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the role that grants permission to send alerts to the notification target\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -80119,18 +97714,28 @@ "additionalProperties": false, "properties": { "Criteria": { - "$ref": "#/definitions/AWS::IoT::SecurityProfile.BehaviorCriteria" + "$ref": "#/definitions/AWS::IoT::SecurityProfile.BehaviorCriteria", + "markdownDescription": "The criteria that determine if a device is behaving normally in regard to the `metric`\\. \n*Required*: No \n*Type*: [BehaviorCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behaviorcriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Criteria" }, "Metric": { + "markdownDescription": "What is measured by the behavior\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metric", "type": "string" }, "MetricDimension": { - "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricDimension" + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricDimension", + "markdownDescription": "The dimension of the metric\\. \n*Required*: No \n*Type*: [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricDimension" }, "Name": { + "markdownDescription": "The name you've given to the behavior\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "SuppressAlerts": { + "markdownDescription": "The alert status\\. If you set the value to `true`, alerts will be suppressed\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuppressAlerts", "type": "boolean" } }, @@ -80143,25 +97748,39 @@ "additionalProperties": false, "properties": { "ComparisonOperator": { + "markdownDescription": "The operator that relates the thing measured \\(`metric`\\) to the criteria \\(containing a `value` or `statisticalThreshold`\\)\\. Valid operators include: \n+ `string-list`: `in-set` and `not-in-set` \n+ `number-list`: `in-set` and `not-in-set` \n+ `ip-address-list`: `in-cidr-set` and `not-in-cidr-set` \n+ `number`: `less-than`, `less-than-equals`, `greater-than`, and `greater-than-equals` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComparisonOperator", "type": "string" }, "ConsecutiveDatapointsToAlarm": { + "markdownDescription": "If a device is in violation of the behavior for the specified number of consecutive datapoints, an alarm occurs\\. If not specified, the default is 1\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConsecutiveDatapointsToAlarm", "type": "number" }, "ConsecutiveDatapointsToClear": { + "markdownDescription": "If an alarm has occurred and the offending device is no longer in violation of the behavior for the specified number of consecutive datapoints, the alarm is cleared\\. If not specified, the default is 1\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConsecutiveDatapointsToClear", "type": "number" }, "DurationSeconds": { + "markdownDescription": "Use this to specify the time duration over which the behavior is evaluated, for those criteria that have a time dimension \\(for example, `NUM_MESSAGES_SENT`\\)\\. For a `statisticalThreshhold` metric comparison, measurements from all devices are accumulated over this time duration before being used to calculate percentiles, and later, measurements from an individual device are also accumulated over this time duration before being given a percentile rank\\. Cannot be used with list\\-based metric datatypes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DurationSeconds", "type": "number" }, "MlDetectionConfig": { - "$ref": "#/definitions/AWS::IoT::SecurityProfile.MachineLearningDetectionConfig" + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MachineLearningDetectionConfig", + "markdownDescription": "The confidence level of the detection model\\. \n*Required*: No \n*Type*: [MachineLearningDetectionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-machinelearningdetectionconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MlDetectionConfig" }, "StatisticalThreshold": { - "$ref": "#/definitions/AWS::IoT::SecurityProfile.StatisticalThreshold" + "$ref": "#/definitions/AWS::IoT::SecurityProfile.StatisticalThreshold", + "markdownDescription": "A statistical ranking \\(percentile\\)that indicates a threshold value by which a behavior is determined to be in compliance or in violation of the behavior\\. \n*Required*: No \n*Type*: [StatisticalThreshold](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-statisticalthreshold.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatisticalThreshold" }, "Value": { - "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricValue" + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricValue", + "markdownDescription": "The value to be compared with the `metric`\\. \n*Required*: No \n*Type*: [MetricValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value" } }, "type": "object" @@ -80170,6 +97789,8 @@ "additionalProperties": false, "properties": { "ConfidenceLevel": { + "markdownDescription": "The model confidence level\\. \nThere are three levels of confidence, `\"high\"`, `\"medium\"`, and `\"low\"`\\. \nThe higher the confidence level, the lower the sensitivity, and the lower the alarm frequency will be\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfidenceLevel", "type": "string" } }, @@ -80179,9 +97800,13 @@ "additionalProperties": false, "properties": { "DimensionName": { + "markdownDescription": "The name of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DimensionName", "type": "string" }, "Operator": { + "markdownDescription": "Operators are constructs that perform logical operations\\. Valid values are `IN` and `NOT_IN`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Operator", "type": "string" } }, @@ -80194,10 +97819,14 @@ "additionalProperties": false, "properties": { "Metric": { + "markdownDescription": "A standard of measurement\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metric", "type": "string" }, "MetricDimension": { - "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricDimension" + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricDimension", + "markdownDescription": "The dimension of the metric\\. \n*Required*: No \n*Type*: [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricDimension" } }, "required": [ @@ -80212,30 +97841,42 @@ "items": { "type": "string" }, + "markdownDescription": "If the `comparisonOperator` calls for a set of CIDRs, use this to specify that set to be compared with the `metric`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cidrs", "type": "array" }, "Count": { + "markdownDescription": "If the `comparisonOperator` calls for a numeric value, use this to specify that numeric value to be compared with the `metric`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count", "type": "string" }, "Number": { + "markdownDescription": "The numeric values of a metric\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Number", "type": "number" }, "Numbers": { "items": { "type": "number" }, + "markdownDescription": "The numeric value of a metric\\. \n*Required*: No \n*Type*: List of Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Numbers", "type": "array" }, "Ports": { "items": { "type": "number" }, + "markdownDescription": "If the `comparisonOperator` calls for a set of ports, use this to specify that set to be compared with the `metric`\\. \n*Required*: No \n*Type*: List of Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ports", "type": "array" }, "Strings": { "items": { "type": "string" }, + "markdownDescription": "The string values of a metric\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Strings", "type": "array" } }, @@ -80245,6 +97886,8 @@ "additionalProperties": false, "properties": { "Statistic": { + "markdownDescription": "The percentile that resolves to a threshold value by which compliance with a behavior is determined\\. Metrics are collected over the specified period \\(`durationSeconds`\\) from all reporting devices in your account and statistical ranks are calculated\\. Then, the measurements from a device are collected over the same period\\. If the accumulated measurements from the device fall above or below \\(`comparisonOperator`\\) the value associated with the percentile specified, then the device is considered to be in compliance with the behavior, otherwise a violation occurs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statistic", "type": "string" } }, @@ -80286,9 +97929,13 @@ "additionalProperties": false, "properties": { "AttributePayload": { - "$ref": "#/definitions/AWS::IoT::Thing.AttributePayload" + "$ref": "#/definitions/AWS::IoT::Thing.AttributePayload", + "markdownDescription": "A string that contains up to three key value pairs\\. Maximum length of 800\\. Duplicates not allowed\\. \n*Required*: No \n*Type*: [AttributePayload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-thing-attributepayload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributePayload" }, "ThingName": { + "markdownDescription": "The name of the thing to update\\. \nYou can't change a thing's name\\. To change a thing's name, you must create a new thing, give it the new name, and then delete the old thing\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ThingName", "type": "string" } }, @@ -80319,11 +97966,13 @@ "properties": { "Attributes": { "additionalProperties": true, + "markdownDescription": "A JSON string containing up to three key\\-value pair in JSON format\\. For example: \n `{\\\"attributes\\\":{\\\"string1\\\":\\\"string2\\\"}}` \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Attributes", "type": "object" } }, @@ -80365,9 +98014,13 @@ "additionalProperties": false, "properties": { "Principal": { + "markdownDescription": "The principal, which can be a certificate ARN \\(as returned from the `CreateCertificate` operation\\) or an Amazon Cognito ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Principal", "type": "string" }, "ThingName": { + "markdownDescription": "The name of the AWS IoT thing\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ThingName", "type": "string" } }, @@ -80434,16 +98087,22 @@ "additionalProperties": false, "properties": { "RuleName": { + "markdownDescription": "The name of the rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RuleName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Metadata which can be used to manage the topic rule\\. \nFor URI Request parameters use format: \\.\\.\\.key1=value1&key2=value2\\.\\.\\. \nFor the CLI command\\-line parameter use format: \\-\\-tags \"key1=value1&key2=value2\\.\\.\\.\" \nFor the cli\\-input\\-json file use format: \"tags\": \"key1=value1&key2=value2\\.\\.\\.\"\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TopicRulePayload": { - "$ref": "#/definitions/AWS::IoT::TopicRule.TopicRulePayload" + "$ref": "#/definitions/AWS::IoT::TopicRule.TopicRulePayload", + "markdownDescription": "The rule payload\\. \n*Required*: Yes \n*Type*: [TopicRulePayload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TopicRulePayload" } }, "required": [ @@ -80476,70 +98135,112 @@ "additionalProperties": false, "properties": { "CloudwatchAlarm": { - "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchAlarmAction" + "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchAlarmAction", + "markdownDescription": "Change the state of a CloudWatch alarm\\. \n*Required*: No \n*Type*: [CloudwatchAlarmAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchalarmaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudwatchAlarm" }, "CloudwatchLogs": { - "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchLogsAction" + "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchLogsAction", + "markdownDescription": "Sends data to CloudWatch\\. \n*Required*: No \n*Type*: [CloudwatchLogsAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchlogsaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudwatchLogs" }, "CloudwatchMetric": { - "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchMetricAction" + "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchMetricAction", + "markdownDescription": "Capture a CloudWatch metric\\. \n*Required*: No \n*Type*: [CloudwatchMetricAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudwatchMetric" }, "DynamoDB": { - "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBAction" + "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBAction", + "markdownDescription": "Write to a DynamoDB table\\. \n*Required*: No \n*Type*: [DynamoDBAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DynamoDB" }, "DynamoDBv2": { - "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBv2Action" + "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBv2Action", + "markdownDescription": "Write to a DynamoDB table\\. This is a new version of the DynamoDB action\\. It allows you to write each attribute in an MQTT message payload into a separate DynamoDB column\\. \n*Required*: No \n*Type*: [DynamoDBv2Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbv2action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DynamoDBv2" }, "Elasticsearch": { - "$ref": "#/definitions/AWS::IoT::TopicRule.ElasticsearchAction" + "$ref": "#/definitions/AWS::IoT::TopicRule.ElasticsearchAction", + "markdownDescription": "Write data to an Amazon OpenSearch Service domain\\. \nThe `Elasticsearch` action can only be used by existing rule actions\\. To create a new rule action or to update an existing rule action, use the `OpenSearch` rule action instead\\. For more information, see [OpenSearchAction](https://docs.aws.amazon.com/iot/latest/apireference/API_OpenSearchAction.html)\\.\n*Required*: No \n*Type*: [ElasticsearchAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Elasticsearch" }, "Firehose": { - "$ref": "#/definitions/AWS::IoT::TopicRule.FirehoseAction" + "$ref": "#/definitions/AWS::IoT::TopicRule.FirehoseAction", + "markdownDescription": "Write to an Amazon Kinesis Firehose stream\\. \n*Required*: No \n*Type*: [FirehoseAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-firehoseaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Firehose" }, "Http": { - "$ref": "#/definitions/AWS::IoT::TopicRule.HttpAction" + "$ref": "#/definitions/AWS::IoT::TopicRule.HttpAction", + "markdownDescription": "Send data to an HTTPS endpoint\\. \n*Required*: No \n*Type*: [HttpAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Http" }, "IotAnalytics": { - "$ref": "#/definitions/AWS::IoT::TopicRule.IotAnalyticsAction" + "$ref": "#/definitions/AWS::IoT::TopicRule.IotAnalyticsAction", + "markdownDescription": "Sends message data to an AWS IoT Analytics channel\\. \n*Required*: No \n*Type*: [IotAnalyticsAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotanalyticsaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotAnalytics" }, "IotEvents": { - "$ref": "#/definitions/AWS::IoT::TopicRule.IotEventsAction" + "$ref": "#/definitions/AWS::IoT::TopicRule.IotEventsAction", + "markdownDescription": "Sends an input to an AWS IoT Events detector\\. \n*Required*: No \n*Type*: [IotEventsAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-ioteventsaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotEvents" }, "IotSiteWise": { - "$ref": "#/definitions/AWS::IoT::TopicRule.IotSiteWiseAction" + "$ref": "#/definitions/AWS::IoT::TopicRule.IotSiteWiseAction", + "markdownDescription": "Sends data from the MQTT message that triggered the rule to AWS IoT SiteWise asset properties\\. \n*Required*: No \n*Type*: [IotSiteWiseAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotsitewiseaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotSiteWise" }, "Kafka": { - "$ref": "#/definitions/AWS::IoT::TopicRule.KafkaAction" + "$ref": "#/definitions/AWS::IoT::TopicRule.KafkaAction", + "markdownDescription": "Send messages to an Amazon Managed Streaming for Apache Kafka \\(Amazon MSK\\) or self\\-managed Apache Kafka cluster\\. \n*Required*: No \n*Type*: [KafkaAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kafkaaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Kafka" }, "Kinesis": { - "$ref": "#/definitions/AWS::IoT::TopicRule.KinesisAction" + "$ref": "#/definitions/AWS::IoT::TopicRule.KinesisAction", + "markdownDescription": "Write data to an Amazon Kinesis stream\\. \n*Required*: No \n*Type*: [KinesisAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kinesisaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Kinesis" }, "Lambda": { - "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction" + "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction", + "markdownDescription": "Invoke a Lambda function\\. \n*Required*: No \n*Type*: [LambdaAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-lambdaaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Lambda" }, "Location": { "$ref": "#/definitions/AWS::IoT::TopicRule.LocationAction" }, "OpenSearch": { - "$ref": "#/definitions/AWS::IoT::TopicRule.OpenSearchAction" + "$ref": "#/definitions/AWS::IoT::TopicRule.OpenSearchAction", + "markdownDescription": "Write data to an Amazon OpenSearch Service domain\\. \n*Required*: No \n*Type*: [OpenSearchAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-opensearchaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OpenSearch" }, "Republish": { - "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishAction" + "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishAction", + "markdownDescription": "Publish to another MQTT topic\\. \n*Required*: No \n*Type*: [RepublishAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-republishaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Republish" }, "S3": { - "$ref": "#/definitions/AWS::IoT::TopicRule.S3Action" + "$ref": "#/definitions/AWS::IoT::TopicRule.S3Action", + "markdownDescription": "Write to an Amazon S3 bucket\\. \n*Required*: No \n*Type*: [S3Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-s3action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3" }, "Sns": { - "$ref": "#/definitions/AWS::IoT::TopicRule.SnsAction" + "$ref": "#/definitions/AWS::IoT::TopicRule.SnsAction", + "markdownDescription": "Publish to an Amazon SNS topic\\. \n*Required*: No \n*Type*: [SnsAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-snsaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sns" }, "Sqs": { - "$ref": "#/definitions/AWS::IoT::TopicRule.SqsAction" + "$ref": "#/definitions/AWS::IoT::TopicRule.SqsAction", + "markdownDescription": "Publish to an Amazon SQS queue\\. \n*Required*: No \n*Type*: [SqsAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sqsaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sqs" }, "StepFunctions": { - "$ref": "#/definitions/AWS::IoT::TopicRule.StepFunctionsAction" + "$ref": "#/definitions/AWS::IoT::TopicRule.StepFunctionsAction", + "markdownDescription": "Starts execution of a Step Functions state machine\\. \n*Required*: No \n*Type*: [StepFunctionsAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-stepfunctionsaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StepFunctions" }, "Timestream": { - "$ref": "#/definitions/AWS::IoT::TopicRule.TimestreamAction" + "$ref": "#/definitions/AWS::IoT::TopicRule.TimestreamAction", + "markdownDescription": "Writes attributes from an MQTT message\\. \n*Required*: No \n*Type*: [TimestreamAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timestream" } }, "type": "object" @@ -80548,9 +98249,13 @@ "additionalProperties": false, "properties": { "OffsetInNanos": { + "markdownDescription": "Optional\\. A string that contains the nanosecond time offset\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OffsetInNanos", "type": "string" }, "TimeInSeconds": { + "markdownDescription": "A string that contains the time in seconds since epoch\\. Accepts substitution templates\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeInSeconds", "type": "string" } }, @@ -80563,13 +98268,19 @@ "additionalProperties": false, "properties": { "Quality": { + "markdownDescription": "Optional\\. A string that describes the quality of the value\\. Accepts substitution templates\\. Must be `GOOD`, `BAD`, or `UNCERTAIN`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Quality", "type": "string" }, "Timestamp": { - "$ref": "#/definitions/AWS::IoT::TopicRule.AssetPropertyTimestamp" + "$ref": "#/definitions/AWS::IoT::TopicRule.AssetPropertyTimestamp", + "markdownDescription": "The asset property value timestamp\\. \n*Required*: Yes \n*Type*: [AssetPropertyTimestamp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertytimestamp.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timestamp" }, "Value": { - "$ref": "#/definitions/AWS::IoT::TopicRule.AssetPropertyVariant" + "$ref": "#/definitions/AWS::IoT::TopicRule.AssetPropertyVariant", + "markdownDescription": "The value of the asset property\\. \n*Required*: Yes \n*Type*: [AssetPropertyVariant](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvariant.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value" } }, "required": [ @@ -80582,15 +98293,23 @@ "additionalProperties": false, "properties": { "BooleanValue": { + "markdownDescription": "Optional\\. A string that contains the boolean value \\(`true` or `false`\\) of the value entry\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BooleanValue", "type": "string" }, "DoubleValue": { + "markdownDescription": "Optional\\. A string that contains the double value of the value entry\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DoubleValue", "type": "string" }, "IntegerValue": { + "markdownDescription": "Optional\\. A string that contains the integer value of the value entry\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegerValue", "type": "string" }, "StringValue": { + "markdownDescription": "Optional\\. The string value of the value entry\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StringValue", "type": "string" } }, @@ -80600,15 +98319,23 @@ "additionalProperties": false, "properties": { "AlarmName": { + "markdownDescription": "The CloudWatch alarm name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmName", "type": "string" }, "RoleArn": { + "markdownDescription": "The IAM role that allows access to the CloudWatch alarm\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "StateReason": { + "markdownDescription": "The reason for the alarm change\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StateReason", "type": "string" }, "StateValue": { + "markdownDescription": "The value of the alarm state\\. Acceptable values are: OK, ALARM, INSUFFICIENT\\_DATA\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StateValue", "type": "string" } }, @@ -80623,10 +98350,17 @@ "AWS::IoT::TopicRule.CloudwatchLogsAction": { "additionalProperties": false, "properties": { + "BatchMode": { + "type": "boolean" + }, "LogGroupName": { + "markdownDescription": "The CloudWatch log name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroupName", "type": "string" }, "RoleArn": { + "markdownDescription": "The IAM role that allows access to the CloudWatch log\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -80640,21 +98374,33 @@ "additionalProperties": false, "properties": { "MetricName": { + "markdownDescription": "The CloudWatch metric name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", "type": "string" }, "MetricNamespace": { + "markdownDescription": "The CloudWatch metric namespace name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricNamespace", "type": "string" }, "MetricTimestamp": { + "markdownDescription": "An optional [Unix timestamp](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricTimestamp", "type": "string" }, "MetricUnit": { + "markdownDescription": "The [metric unit](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit) supported by CloudWatch\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricUnit", "type": "string" }, "MetricValue": { + "markdownDescription": "The CloudWatch metric value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricValue", "type": "string" }, "RoleArn": { + "markdownDescription": "The IAM role that allows access to the CloudWatch metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -80671,30 +98417,48 @@ "additionalProperties": false, "properties": { "HashKeyField": { + "markdownDescription": "The hash key name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HashKeyField", "type": "string" }, "HashKeyType": { + "markdownDescription": "The hash key type\\. Valid values are \"STRING\" or \"NUMBER\" \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HashKeyType", "type": "string" }, "HashKeyValue": { + "markdownDescription": "The hash key value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HashKeyValue", "type": "string" }, "PayloadField": { + "markdownDescription": "The action payload\\. This name can be customized\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PayloadField", "type": "string" }, "RangeKeyField": { + "markdownDescription": "The range key name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RangeKeyField", "type": "string" }, "RangeKeyType": { + "markdownDescription": "The range key type\\. Valid values are \"STRING\" or \"NUMBER\" \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RangeKeyType", "type": "string" }, "RangeKeyValue": { + "markdownDescription": "The range key value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RangeKeyValue", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the IAM role that grants access to the DynamoDB table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "TableName": { + "markdownDescription": "The name of the DynamoDB table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", "type": "string" } }, @@ -80710,9 +98474,13 @@ "additionalProperties": false, "properties": { "PutItem": { - "$ref": "#/definitions/AWS::IoT::TopicRule.PutItemInput" + "$ref": "#/definitions/AWS::IoT::TopicRule.PutItemInput", + "markdownDescription": "Specifies the DynamoDB table to which the message data will be written\\. For example: \n `{ \"dynamoDBv2\": { \"roleArn\": \"aws:iam:12341251:my-role\" \"putItem\": { \"tableName\": \"my-table\" } } }` \nEach attribute in the message payload will be written to a separate column in the DynamoDB database\\. \n*Required*: No \n*Type*: [PutItemInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putiteminput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PutItem" }, "RoleArn": { + "markdownDescription": "The ARN of the IAM role that grants access to the DynamoDB table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -80722,18 +98490,28 @@ "additionalProperties": false, "properties": { "Endpoint": { + "markdownDescription": "The endpoint of your OpenSearch domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Endpoint", "type": "string" }, "Id": { + "markdownDescription": "The unique identifier for the document you are storing\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "Index": { + "markdownDescription": "The index where you want to store your data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Index", "type": "string" }, "RoleArn": { + "markdownDescription": "The IAM role ARN that has access to OpenSearch\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "Type": { + "markdownDescription": "The type of document you are storing\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -80750,15 +98528,23 @@ "additionalProperties": false, "properties": { "BatchMode": { + "markdownDescription": "Whether to deliver the Kinesis Data Firehose stream as a batch by using [https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html](https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html)\\. The default value is `false`\\. \nWhen `batchMode` is `true` and the rule's SQL statement evaluates to an Array, each Array element forms one record in the [https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html](https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html) request\\. The resulting array can't have more than 500 records\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BatchMode", "type": "boolean" }, "DeliveryStreamName": { + "markdownDescription": "The delivery stream name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryStreamName", "type": "string" }, "RoleArn": { + "markdownDescription": "The IAM role that grants access to the Amazon Kinesis Firehose stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "Separator": { + "markdownDescription": "A character separator that will be used to separate records written to the Firehose stream\\. Valid values are: '\\\\n' \\(newline\\), '\\\\t' \\(tab\\), '\\\\r\\\\n' \\(Windows newline\\), ',' \\(comma\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Separator", "type": "string" } }, @@ -80772,18 +98558,26 @@ "additionalProperties": false, "properties": { "Auth": { - "$ref": "#/definitions/AWS::IoT::TopicRule.HttpAuthorization" + "$ref": "#/definitions/AWS::IoT::TopicRule.HttpAuthorization", + "markdownDescription": "The authentication method to use when sending data to an HTTPS endpoint\\. \n*Required*: No \n*Type*: [HttpAuthorization](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpauthorization.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Auth" }, "ConfirmationUrl": { + "markdownDescription": "The URL to which AWS IoT sends a confirmation message\\. The value of the confirmation URL must be a prefix of the endpoint URL\\. If you do not specify a confirmation URL AWS IoT uses the endpoint URL as the confirmation URL\\. If you use substitution templates in the confirmationUrl, you must create and enable topic rule destinations that match each possible value of the substitution template before traffic is allowed to your endpoint URL\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfirmationUrl", "type": "string" }, "Headers": { "items": { "$ref": "#/definitions/AWS::IoT::TopicRule.HttpActionHeader" }, + "markdownDescription": "The HTTP headers to send with the message data\\. \n*Required*: No \n*Type*: List of [HttpActionHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpactionheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Headers", "type": "array" }, "Url": { + "markdownDescription": "The endpoint URL\\. If substitution templates are used in the URL, you must also specify a `confirmationUrl`\\. If this is a new destination, a new `TopicRuleDestination` is created if possible\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", "type": "string" } }, @@ -80796,9 +98590,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The HTTP header key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The HTTP header value\\. Substitution templates are supported\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -80812,7 +98610,9 @@ "additionalProperties": false, "properties": { "Sigv4": { - "$ref": "#/definitions/AWS::IoT::TopicRule.SigV4Authorization" + "$ref": "#/definitions/AWS::IoT::TopicRule.SigV4Authorization", + "markdownDescription": "Use Sig V4 authorization\\. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)\\. \n*Required*: No \n*Type*: [SigV4Authorization](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sigv4authorization.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sigv4" } }, "type": "object" @@ -80821,12 +98621,18 @@ "additionalProperties": false, "properties": { "BatchMode": { + "markdownDescription": "Whether to process the action as a batch\\. The default value is `false`\\. \nWhen `batchMode` is `true` and the rule SQL statement evaluates to an Array, each Array element is delivered as a separate message when passed by [https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_BatchPutMessage.html](https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_BatchPutMessage.html) The resulting array can't have more than 100 messages\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BatchMode", "type": "boolean" }, "ChannelName": { + "markdownDescription": "The name of the IoT Analytics channel to which message data will be sent\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelName", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the role which has a policy that grants IoT Analytics permission to send message data via IoT Analytics \\(iotanalytics:BatchPutMessage\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -80840,15 +98646,23 @@ "additionalProperties": false, "properties": { "BatchMode": { + "markdownDescription": "Whether to process the event actions as a batch\\. The default value is `false`\\. \nWhen `batchMode` is `true`, you can't specify a `messageId`\\. \nWhen `batchMode` is `true` and the rule SQL statement evaluates to an Array, each Array element is treated as a separate message when Events by calling [https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchPutMessage.html](https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchPutMessage.html)\\. The resulting array can't have more than 10 messages\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BatchMode", "type": "boolean" }, "InputName": { + "markdownDescription": "The name of the AWS IoT Events input\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputName", "type": "string" }, "MessageId": { + "markdownDescription": "The ID of the message\\. The default `messageId` is a new UUID value\\. \nWhen `batchMode` is `true`, you can't specify a `messageId`\\-\\-a new UUID value will be assigned\\. \nAssign a value to this property to ensure that only one input \\(message\\) with a given `messageId` will be processed by an AWS IoT Events detector\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageId", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the role that grants AWS IoT permission to send an input to an AWS IoT Events detector\\. \\(\"Action\":\"iotevents:BatchPutMessage\"\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -80865,9 +98679,13 @@ "items": { "$ref": "#/definitions/AWS::IoT::TopicRule.PutAssetPropertyValueEntry" }, + "markdownDescription": "A list of asset property value entries\\. \n*Required*: Yes \n*Type*: List of [PutAssetPropertyValueEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PutAssetPropertyValueEntries", "type": "array" }, "RoleArn": { + "markdownDescription": "The ARN of the role that grants AWS IoT permission to send an asset property value to AWS IoT SiteWise\\. \\(`\"Action\": \"iotsitewise:BatchPutAssetPropertyValue\"`\\)\\. The trust policy can restrict access to specific asset hierarchy paths\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -80882,23 +98700,33 @@ "properties": { "ClientProperties": { "additionalProperties": true, + "markdownDescription": "Properties of the Apache Kafka producer client\\. \n*Required*: Yes \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "ClientProperties", "type": "object" }, "DestinationArn": { + "markdownDescription": "The ARN of Kafka action's VPC `TopicRuleDestination`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationArn", "type": "string" }, "Key": { + "markdownDescription": "The Kafka message key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Partition": { + "markdownDescription": "The Kafka message partition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Partition", "type": "string" }, "Topic": { + "markdownDescription": "The Kafka topic for messages to be sent to the Kafka broker\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Topic", "type": "string" } }, @@ -80913,12 +98741,18 @@ "additionalProperties": false, "properties": { "PartitionKey": { + "markdownDescription": "The partition key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PartitionKey", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the IAM role that grants access to the Amazon Kinesis stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "StreamName": { + "markdownDescription": "The name of the Amazon Kinesis stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamName", "type": "string" } }, @@ -80932,6 +98766,8 @@ "additionalProperties": false, "properties": { "FunctionArn": { + "markdownDescription": "The ARN of the Lambda function\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FunctionArn", "type": "string" } }, @@ -80972,18 +98808,28 @@ "additionalProperties": false, "properties": { "Endpoint": { + "markdownDescription": "The endpoint of your OpenSearch domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Endpoint", "type": "string" }, "Id": { + "markdownDescription": "The unique identifier for the document you are storing\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "Index": { + "markdownDescription": "The OpenSearch index where you want to store your data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Index", "type": "string" }, "RoleArn": { + "markdownDescription": "The IAM role ARN that has access to OpenSearch\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "Type": { + "markdownDescription": "The type of document you are storing\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -81000,21 +98846,31 @@ "additionalProperties": false, "properties": { "AssetId": { + "markdownDescription": "The ID of the AWS IoT SiteWise asset\\. You must specify either a `propertyAlias` or both an `aliasId` and a `propertyId`\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetId", "type": "string" }, "EntryId": { + "markdownDescription": "Optional\\. A unique identifier for this entry that you can define to better track which message caused an error in case of failure\\. Accepts substitution templates\\. Defaults to a new UUID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntryId", "type": "string" }, "PropertyAlias": { + "markdownDescription": "The name of the property alias associated with your asset property\\. You must specify either a `propertyAlias` or both an `aliasId` and a `propertyId`\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropertyAlias", "type": "string" }, "PropertyId": { + "markdownDescription": "The ID of the asset's property\\. You must specify either a `propertyAlias` or both an `aliasId` and a `propertyId`\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropertyId", "type": "string" }, "PropertyValues": { "items": { "$ref": "#/definitions/AWS::IoT::TopicRule.AssetPropertyValue" }, + "markdownDescription": "A list of property values to insert that each contain timestamp, quality, and value \\(TQV\\) information\\. \n*Required*: Yes \n*Type*: List of [AssetPropertyValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropertyValues", "type": "array" } }, @@ -81027,6 +98883,8 @@ "additionalProperties": false, "properties": { "TableName": { + "markdownDescription": "The table where the message data will be written\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", "type": "string" } }, @@ -81042,12 +98900,18 @@ "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishActionHeaders" }, "Qos": { + "markdownDescription": "The Quality of Service \\(QoS\\) level to use when republishing messages\\. The default value is 0\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Qos", "type": "number" }, "RoleArn": { + "markdownDescription": "The ARN of the IAM role that grants access\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "Topic": { + "markdownDescription": "The name of the MQTT topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Topic", "type": "string" } }, @@ -81088,15 +98952,23 @@ "additionalProperties": false, "properties": { "BucketName": { + "markdownDescription": "The Amazon S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", "type": "string" }, "CannedAcl": { + "markdownDescription": "The Amazon S3 canned ACL that controls access to the object identified by the object key\\. For more information, see [S3 canned ACLs](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CannedAcl", "type": "string" }, "Key": { + "markdownDescription": "The object key\\. For more information, see [Actions, resources, and condition keys for Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the IAM role that grants access\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -81111,12 +98983,18 @@ "additionalProperties": false, "properties": { "RoleArn": { + "markdownDescription": "The ARN of the signing role\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "ServiceName": { + "markdownDescription": "The service name to use while signing with Sig V4\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceName", "type": "string" }, "SigningRegion": { + "markdownDescription": "The signing region\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SigningRegion", "type": "string" } }, @@ -81131,12 +99009,18 @@ "additionalProperties": false, "properties": { "MessageFormat": { + "markdownDescription": "\\(Optional\\) The message format of the message to publish\\. Accepted values are \"JSON\" and \"RAW\"\\. The default value of the attribute is \"RAW\"\\. SNS uses this setting to determine if the payload should be parsed and relevant platform\\-specific bits of the payload should be extracted\\. For more information, see [Amazon SNS Message and JSON Formats](https://docs.aws.amazon.com/sns/latest/dg/json-formats.html) in the *Amazon Simple Notification Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageFormat", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the IAM role that grants access\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "TargetArn": { + "markdownDescription": "The ARN of the SNS topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetArn", "type": "string" } }, @@ -81150,12 +99034,18 @@ "additionalProperties": false, "properties": { "QueueUrl": { + "markdownDescription": "The URL of the Amazon SQS queue\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueueUrl", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the IAM role that grants access\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "UseBase64": { + "markdownDescription": "Specifies whether to use Base64 encoding\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseBase64", "type": "boolean" } }, @@ -81169,12 +99059,18 @@ "additionalProperties": false, "properties": { "ExecutionNamePrefix": { + "markdownDescription": "\\(Optional\\) A name will be given to the state machine execution consisting of this prefix followed by a UUID\\. Step Functions automatically creates a unique name for each state machine execution if one is not provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionNamePrefix", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the role that grants IoT permission to start execution of a state machine \\(\"Action\":\"states:StartExecution\"\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "StateMachineName": { + "markdownDescription": "The name of the Step Functions state machine whose execution will be started\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StateMachineName", "type": "string" } }, @@ -81203,22 +99099,32 @@ "additionalProperties": false, "properties": { "DatabaseName": { + "markdownDescription": "The name of an Amazon Timestream database that has the table to write records into\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", "type": "string" }, "Dimensions": { "items": { "$ref": "#/definitions/AWS::IoT::TopicRule.TimestreamDimension" }, + "markdownDescription": "Metadata attributes of the time series that are written in each measure record\\. \n*Required*: Yes \n*Type*: List of [TimestreamDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", "type": "array" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that grants AWS IoT permission to write to the Timestream database table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "TableName": { + "markdownDescription": "The table where the message data will be written\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", "type": "string" }, "Timestamp": { - "$ref": "#/definitions/AWS::IoT::TopicRule.TimestreamTimestamp" + "$ref": "#/definitions/AWS::IoT::TopicRule.TimestreamTimestamp", + "markdownDescription": "The value to use for the entry's timestamp\\. If blank, the time that the entry was processed is used\\. \n*Required*: No \n*Type*: [TimestreamTimestamp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamtimestamp.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timestamp" } }, "required": [ @@ -81233,9 +99139,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The metadata dimension name\\. This is the name of the column in the Amazon Timestream database table record\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "The value to write in this column of the database record\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -81249,9 +99159,13 @@ "additionalProperties": false, "properties": { "Unit": { + "markdownDescription": "The precision of the timestamp value that results from the expression described in `value`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", "type": "string" }, "Value": { + "markdownDescription": "An expression that returns a long epoch time value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -81268,21 +99182,33 @@ "items": { "$ref": "#/definitions/AWS::IoT::TopicRule.Action" }, + "markdownDescription": "The actions associated with the rule\\. \n*Required*: Yes \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", "type": "array" }, "AwsIotSqlVersion": { + "markdownDescription": "The version of the SQL rules engine to use when evaluating the rule\\. \nThe default value is 2015\\-10\\-08\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsIotSqlVersion", "type": "string" }, "Description": { + "markdownDescription": "The description of the rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "ErrorAction": { - "$ref": "#/definitions/AWS::IoT::TopicRule.Action" + "$ref": "#/definitions/AWS::IoT::TopicRule.Action", + "markdownDescription": "The action to take when an error occurs\\. \n*Required*: No \n*Type*: [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorAction" }, "RuleDisabled": { + "markdownDescription": "Specifies whether the rule is disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleDisabled", "type": "boolean" }, "Sql": { + "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-sql-reference.html) in the * AWS IoT Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sql", "type": "string" } }, @@ -81344,13 +99270,19 @@ "additionalProperties": false, "properties": { "HttpUrlProperties": { - "$ref": "#/definitions/AWS::IoT::TopicRuleDestination.HttpUrlDestinationSummary" + "$ref": "#/definitions/AWS::IoT::TopicRuleDestination.HttpUrlDestinationSummary", + "markdownDescription": "Properties of the HTTP URL\\. \n*Required*: No \n*Type*: [HttpUrlDestinationSummary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicruledestination-httpurldestinationsummary.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HttpUrlProperties" }, "Status": { + "markdownDescription": "IN\\_PROGRESS \nA topic rule destination was created but has not been confirmed\\. You can set status to `IN_PROGRESS` by calling `UpdateTopicRuleDestination`\\. Calling `UpdateTopicRuleDestination` causes a new confirmation challenge to be sent to your confirmation endpoint\\. \nENABLED \nConfirmation was completed, and traffic to this destination is allowed\\. You can set status to `DISABLED` by calling `UpdateTopicRuleDestination`\\. \nDISABLED \nConfirmation was completed, and traffic to this destination is not allowed\\. You can set status to `ENABLED` by calling `UpdateTopicRuleDestination`\\. \nERROR \nConfirmation could not be completed; for example, if the confirmation timed out\\. You can call `GetTopicRuleDestination` for details about the error\\. You can set status to `IN_PROGRESS` by calling `UpdateTopicRuleDestination`\\. Calling `UpdateTopicRuleDestination` causes a new confirmation challenge to be sent to your confirmation endpoint\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" }, "VpcProperties": { - "$ref": "#/definitions/AWS::IoT::TopicRuleDestination.VpcDestinationProperties" + "$ref": "#/definitions/AWS::IoT::TopicRuleDestination.VpcDestinationProperties", + "markdownDescription": "Properties of the virtual private cloud \\(VPC\\) connection\\. \n*Required*: No \n*Type*: [VpcDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicruledestination-vpcdestinationproperties.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcProperties" } }, "type": "object" @@ -81379,6 +99311,8 @@ "additionalProperties": false, "properties": { "ConfirmationUrl": { + "markdownDescription": "The URL used to confirm the HTTP topic rule destination URL\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfirmationUrl", "type": "string" } }, @@ -81388,21 +99322,29 @@ "additionalProperties": false, "properties": { "RoleArn": { + "markdownDescription": "The ARN of a role that has permission to create and attach to elastic network interfaces \\(ENIs\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RoleArn", "type": "string" }, "SecurityGroups": { "items": { "type": "string" }, + "markdownDescription": "The security groups of the VPC destination\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroups", "type": "array" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "The subnet IDs of the VPC destination\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetIds", "type": "array" }, "VpcId": { + "markdownDescription": "The ID of the VPC\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -81444,18 +99386,26 @@ "additionalProperties": false, "properties": { "ChannelName": { + "markdownDescription": "The name of the channel\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ChannelName", "type": "string" }, "ChannelStorage": { - "$ref": "#/definitions/AWS::IoTAnalytics::Channel.ChannelStorage" + "$ref": "#/definitions/AWS::IoTAnalytics::Channel.ChannelStorage", + "markdownDescription": "Where channel data is stored\\. \n*Required*: No \n*Type*: [ChannelStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-channelstorage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelStorage" }, "RetentionPeriod": { - "$ref": "#/definitions/AWS::IoTAnalytics::Channel.RetentionPeriod" + "$ref": "#/definitions/AWS::IoTAnalytics::Channel.RetentionPeriod", + "markdownDescription": "How long, in days, message data is kept for the channel\\. \n*Required*: No \n*Type*: [RetentionPeriod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-retentionperiod.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetentionPeriod" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Metadata which can be used to manage the channel\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -81485,9 +99435,13 @@ "additionalProperties": false, "properties": { "CustomerManagedS3": { - "$ref": "#/definitions/AWS::IoTAnalytics::Channel.CustomerManagedS3" + "$ref": "#/definitions/AWS::IoTAnalytics::Channel.CustomerManagedS3", + "markdownDescription": "Used to store channel data in an S3 bucket that you manage\\. If customer managed storage is selected, the `retentionPeriod` parameter is ignored\\. You can't change the choice of S3 storage after the data store is created\\. \n*Required*: No \n*Type*: [CustomerManagedS3](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-customermanageds3.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomerManagedS3" }, "ServiceManagedS3": { + "markdownDescription": "Used to store channel data in an S3 bucket managed by AWS IoT Analytics\\. You can't change the choice of S3 storage after the data store is created\\. \n*Required*: No \n*Type*: [ServiceManagedS3](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-servicemanageds3.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceManagedS3", "type": "object" } }, @@ -81497,12 +99451,18 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The name of the S3 bucket in which channel data is stored\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9.\\-_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", "type": "string" }, "KeyPrefix": { + "markdownDescription": "\\(Optional\\) The prefix used to create the keys of the channel data objects\\. Each object in an S3 bucket has a key that is its unique identifier within the bucket \\(each object in a bucket has exactly one key\\)\\. The prefix must end with a forward slash \\(/\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9!_.*'()/{}:-]*/$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyPrefix", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the role that grants AWS IoT Analytics permission to interact with your Amazon S3 resources\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -81516,9 +99476,13 @@ "additionalProperties": false, "properties": { "NumberOfDays": { + "markdownDescription": "The number of days that message data is kept\\. The `unlimited` parameter must be false\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfDays", "type": "number" }, "Unlimited": { + "markdownDescription": "If true, message data is kept indefinitely\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unlimited", "type": "boolean" } }, @@ -81563,40 +99527,56 @@ "items": { "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Action" }, + "markdownDescription": "The `DatasetAction` objects that automatically create the dataset contents\\. \n*Required*: Yes \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-action.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", "type": "array" }, "ContentDeliveryRules": { "items": { "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DatasetContentDeliveryRule" }, + "markdownDescription": "When dataset contents are created they are delivered to destinations specified here\\. \n*Required*: No \n*Type*: List of [DatasetContentDeliveryRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-datasetcontentdeliveryrule.html) \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentDeliveryRules", "type": "array" }, "DatasetName": { + "markdownDescription": "The name of the dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatasetName", "type": "string" }, "LateDataRules": { "items": { "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.LateDataRule" }, + "markdownDescription": "A list of data rules that send notifications to CloudWatch, when data arrives late\\. To specify `lateDataRules`, the dataset must use a [DeltaTimer](https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_DeltaTime.html) filter\\. \n*Required*: No \n*Type*: List of [LateDataRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-latedatarule.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LateDataRules", "type": "array" }, "RetentionPeriod": { - "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.RetentionPeriod" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.RetentionPeriod", + "markdownDescription": "Optional\\. How long, in days, message data is kept for the dataset\\. \n*Required*: No \n*Type*: [RetentionPeriod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-retentionperiod.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetentionPeriod" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Metadata which can be used to manage the data set\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Triggers": { "items": { "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Trigger" }, + "markdownDescription": "The `DatasetTrigger` objects that specify when the dataset is automatically updated\\. \n*Required*: No \n*Type*: List of [Trigger](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-trigger.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Triggers", "type": "array" }, "VersioningConfiguration": { - "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.VersioningConfiguration" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.VersioningConfiguration", + "markdownDescription": "Optional\\. How many versions of dataset contents are kept\\. If not specified or set to null, only the latest version plus the latest succeeded version \\(if they are different\\) are kept for the time period specified by the `retentionPeriod` parameter\\. For more information, see [ Keeping Multiple Versions of AWS IoT Analytics datasets](https://docs.aws.amazon.com/iotanalytics/latest/userguide/getting-started.html#aws-iot-analytics-dataset-versions) in the * AWS IoT Analytics User Guide*\\. \n*Required*: No \n*Type*: [VersioningConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-versioningconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VersioningConfiguration" } }, "required": [ @@ -81629,13 +99609,19 @@ "additionalProperties": false, "properties": { "ActionName": { + "markdownDescription": "The name of the data set action by which data set contents are automatically created\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9_]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionName", "type": "string" }, "ContainerAction": { - "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.ContainerAction" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.ContainerAction", + "markdownDescription": "Information which allows the system to run a containerized application in order to create the data set contents\\. The application must be in a Docker container along with any needed support libraries\\. \n*Required*: No \n*Type*: [ContainerAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-containeraction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerAction" }, "QueryAction": { - "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.QueryAction" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.QueryAction", + "markdownDescription": "An \"SqlQueryDatasetAction\" object that uses an SQL query to automatically create data set contents\\. \n*Required*: No \n*Type*: [QueryAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-queryaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryAction" } }, "required": [ @@ -81647,18 +99633,26 @@ "additionalProperties": false, "properties": { "ExecutionRoleArn": { + "markdownDescription": "The ARN of the role which gives permission to the system to access needed resources in order to run the \"containerAction\"\\. This includes, at minimum, permission to retrieve the data set contents which are the input to the containerized application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionRoleArn", "type": "string" }, "Image": { + "markdownDescription": "The ARN of the Docker container stored in your account\\. The Docker container contains an application and needed support libraries and is used to generate data set contents\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Image", "type": "string" }, "ResourceConfiguration": { - "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.ResourceConfiguration" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.ResourceConfiguration", + "markdownDescription": "Configuration of the resource which executes the \"containerAction\"\\. \n*Required*: Yes \n*Type*: [ResourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-resourceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceConfiguration" }, "Variables": { "items": { "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Variable" }, + "markdownDescription": "The values of variables used within the context of the execution of the containerized application \\(basically, parameters passed to the application\\)\\. Each variable must have a name and a value given by one of \"stringValue\", \"datasetContentVersionValue\", or \"outputFileUriValue\"\\. \n*Required*: No \n*Type*: List of [Variable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Variables", "type": "array" } }, @@ -81673,9 +99667,13 @@ "additionalProperties": false, "properties": { "Destination": { - "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DatasetContentDeliveryRuleDestination" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DatasetContentDeliveryRuleDestination", + "markdownDescription": "The destination to which dataset contents are delivered\\. \n*Required*: Yes \n*Type*: [DatasetContentDeliveryRuleDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-datasetcontentdeliveryruledestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" }, "EntryName": { + "markdownDescription": "The name of the dataset content delivery rules entry\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntryName", "type": "string" } }, @@ -81688,10 +99686,14 @@ "additionalProperties": false, "properties": { "IotEventsDestinationConfiguration": { - "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.IotEventsDestinationConfiguration" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.IotEventsDestinationConfiguration", + "markdownDescription": "Configuration information for delivery of dataset contents to AWS IoT Events\\. \n*Required*: No \n*Type*: [IotEventsDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-ioteventsdestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotEventsDestinationConfiguration" }, "S3DestinationConfiguration": { - "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.S3DestinationConfiguration" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.S3DestinationConfiguration", + "markdownDescription": "Configuration information for delivery of dataset contents to Amazon S3\\. \n*Required*: No \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-s3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3DestinationConfiguration" } }, "type": "object" @@ -81700,6 +99702,8 @@ "additionalProperties": false, "properties": { "DatasetName": { + "markdownDescription": "The name of the dataset whose latest contents are used as input to the notebook or application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetName", "type": "string" } }, @@ -81712,9 +99716,13 @@ "additionalProperties": false, "properties": { "OffsetSeconds": { + "markdownDescription": "The number of seconds of estimated in\\-flight lag time of message data\\. When you create dataset contents using message data from a specified timeframe, some message data might still be in flight when processing begins, and so do not arrive in time to be processed\\. Use this field to make allowances for the in flight time of your message data, so that data not processed from a previous timeframe is included with the next timeframe\\. Otherwise, missed message data would be excluded from processing during the next timeframe too, because its timestamp places it within the previous timeframe\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OffsetSeconds", "type": "number" }, "TimeExpression": { + "markdownDescription": "An expression by which the time of the message data might be determined\\. This can be the name of a timestamp field or a SQL expression that is used to derive the time the message data was generated\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeExpression", "type": "string" } }, @@ -81728,6 +99736,8 @@ "additionalProperties": false, "properties": { "TimeoutInMinutes": { + "markdownDescription": "A time interval\\. You can use `timeoutInMinutes` so that AWS IoT Analytics can batch up late data notifications that have been generated since the last execution\\. AWS IoT Analytics sends one batch of notifications to Amazon CloudWatch Events at one time\\. \nFor more information about how to write a timestamp expression, see [Date and Time Functions and Operators](https://prestodb.io/docs/0.172/functions/datetime.html), in the *Presto 0\\.172 Documentation*\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `60` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutInMinutes", "type": "number" } }, @@ -81740,7 +99750,9 @@ "additionalProperties": false, "properties": { "DeltaTime": { - "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DeltaTime" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DeltaTime", + "markdownDescription": "Used to limit data to that which has arrived since the last execution of the action\\. \n*Required*: No \n*Type*: [DeltaTime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-deltatime.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeltaTime" } }, "type": "object" @@ -81749,9 +99761,13 @@ "additionalProperties": false, "properties": { "DatabaseName": { + "markdownDescription": "The name of the database in your AWS Glue Data Catalog in which the table is located\\. An AWS Glue Data Catalog database contains metadata tables\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `150` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", "type": "string" }, "TableName": { + "markdownDescription": "The name of the table in your AWS Glue Data Catalog that is used to perform the ETL operations\\. An AWS Glue Data Catalog table contains partitioned data and descriptions of data sources and targets\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `150` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", "type": "string" } }, @@ -81765,9 +99781,13 @@ "additionalProperties": false, "properties": { "InputName": { + "markdownDescription": "The name of the AWS IoT Events input to which dataset contents are delivered\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputName", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the role that grants AWS IoT Analytics permission to deliver dataset contents to an AWS IoT Events input\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -81781,9 +99801,13 @@ "additionalProperties": false, "properties": { "RuleConfiguration": { - "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.LateDataRuleConfiguration" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.LateDataRuleConfiguration", + "markdownDescription": "The information needed to configure the late data rule\\. \n*Required*: Yes \n*Type*: [LateDataRuleConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-latedataruleconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleConfiguration" }, "RuleName": { + "markdownDescription": "The name of the late data rule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9_]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleName", "type": "string" } }, @@ -81796,7 +99820,9 @@ "additionalProperties": false, "properties": { "DeltaTimeSessionWindowConfiguration": { - "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DeltaTimeSessionWindowConfiguration" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DeltaTimeSessionWindowConfiguration", + "markdownDescription": "The information needed to configure a delta time session window\\. \n*Required*: No \n*Type*: [DeltaTimeSessionWindowConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-deltatimesessionwindowconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeltaTimeSessionWindowConfiguration" } }, "type": "object" @@ -81805,6 +99831,8 @@ "additionalProperties": false, "properties": { "FileName": { + "markdownDescription": "The URI of the location where dataset contents are stored, usually the URI of a file in an S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[\\w\\.-]{1,255}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileName", "type": "string" } }, @@ -81820,9 +99848,13 @@ "items": { "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Filter" }, + "markdownDescription": "Pre\\-filters applied to message data\\. \n*Required*: No \n*Type*: List of [Filter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-filter.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filters", "type": "array" }, "SqlQuery": { + "markdownDescription": "An \"SqlQueryDatasetAction\" object that uses an SQL query to automatically create data set contents\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SqlQuery", "type": "string" } }, @@ -81835,9 +99867,13 @@ "additionalProperties": false, "properties": { "ComputeType": { + "markdownDescription": "The type of the compute resource used to execute the `containerAction`\\. Possible values are: `ACU_1` \\(vCPU=4, memory=16 GiB\\) or `ACU_2` \\(vCPU=8, memory=32 GiB\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ACU_1 | ACU_2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputeType", "type": "string" }, "VolumeSizeInGB": { + "markdownDescription": "The size, in GB, of the persistent storage available to the resource instance used to execute the `containerAction` \\(min: 1, max: 50\\)\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeSizeInGB", "type": "number" } }, @@ -81851,9 +99887,13 @@ "additionalProperties": false, "properties": { "NumberOfDays": { + "markdownDescription": "The number of days that message data is kept\\. The `unlimited` parameter must be false\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfDays", "type": "number" }, "Unlimited": { + "markdownDescription": "If true, message data is kept indefinitely\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unlimited", "type": "boolean" } }, @@ -81863,15 +99903,23 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The name of the S3 bucket to which dataset contents are delivered\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9.\\-_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", "type": "string" }, "GlueConfiguration": { - "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.GlueConfiguration" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.GlueConfiguration", + "markdownDescription": "Configuration information for coordination with AWS Glue, a fully managed extract, transform and load \\(ETL\\) service\\. \n*Required*: No \n*Type*: [GlueConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-glueconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlueConfiguration" }, "Key": { + "markdownDescription": "The key of the dataset contents object in an S3 bucket\\. Each object has a key that is a unique identifier\\. Each object has exactly one key\\. \nYou can create a unique key with the following options: \n+ Use `!{iotanalytics:scheduleTime}` to insert the time of a scheduled SQL query run\\.\n+ Use `!{iotanalytics:versionId}` to insert a unique hash that identifies a dataset content\\.\n+ Use `!{iotanalytics:creationTime}` to insert the creation time of a dataset content\\.\nThe following example creates a unique key for a CSV file: `dataset/mydataset/!{iotanalytics:scheduleTime}/!{iotanalytics:versionId}.csv` \nIf you don't use `!{iotanalytics:versionId}` to specify the key, you might get duplicate keys\\. For example, you might have two dataset contents with the same `scheduleTime` but different `versionId`s\\. This means that one dataset content overwrites the other\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9!_.*'()/{}:-]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the role that grants AWS IoT Analytics permission to interact with your Amazon S3 and AWS Glue resources\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -81886,6 +99934,8 @@ "additionalProperties": false, "properties": { "ScheduleExpression": { + "markdownDescription": "The expression that defines when to trigger an update\\. For more information, see [ Schedule Expressions for Rules](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html) in the Amazon CloudWatch documentation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleExpression", "type": "string" } }, @@ -81898,10 +99948,14 @@ "additionalProperties": false, "properties": { "Schedule": { - "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Schedule" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Schedule", + "markdownDescription": "The \"Schedule\" when the trigger is initiated\\. \n*Required*: No \n*Type*: [Schedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-schedule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule" }, "TriggeringDataset": { - "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.TriggeringDataset" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.TriggeringDataset", + "markdownDescription": "Information about the data set whose content generation triggers the new data set content generation\\. \n*Required*: No \n*Type*: [TriggeringDataset](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-triggeringdataset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TriggeringDataset" } }, "type": "object" @@ -81910,6 +99964,8 @@ "additionalProperties": false, "properties": { "DatasetName": { + "markdownDescription": "The name of the data set whose content generation triggers the new data set content generation\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetName", "type": "string" } }, @@ -81922,18 +99978,28 @@ "additionalProperties": false, "properties": { "DatasetContentVersionValue": { - "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DatasetContentVersionValue" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DatasetContentVersionValue", + "markdownDescription": "The value of the variable as a structure that specifies a dataset content version\\. \n*Required*: No \n*Type*: [DatasetContentVersionValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-datasetcontentversionvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetContentVersionValue" }, "DoubleValue": { + "markdownDescription": "The value of the variable as a double \\(numeric\\)\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DoubleValue", "type": "number" }, "OutputFileUriValue": { - "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.OutputFileUriValue" + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.OutputFileUriValue", + "markdownDescription": "The value of the variable as a structure that specifies an output file URI\\. \n*Required*: No \n*Type*: [OutputFileUriValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-outputfileurivalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputFileUriValue" }, "StringValue": { + "markdownDescription": "The value of the variable as a string\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StringValue", "type": "string" }, "VariableName": { + "markdownDescription": "The name of the variable\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VariableName", "type": "string" } }, @@ -81946,9 +100012,13 @@ "additionalProperties": false, "properties": { "MaxVersions": { + "markdownDescription": "How many versions of dataset contents are kept\\. The `unlimited` parameter must be `false`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxVersions", "type": "number" }, "Unlimited": { + "markdownDescription": "If true, unlimited versions of dataset contents are kept\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unlimited", "type": "boolean" } }, @@ -81990,24 +100060,36 @@ "additionalProperties": false, "properties": { "DatastoreName": { + "markdownDescription": "The name of the data store\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatastoreName", "type": "string" }, "DatastorePartitions": { - "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.DatastorePartitions" + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.DatastorePartitions", + "markdownDescription": "Information about the partition dimensions in a data store\\. \n*Required*: No \n*Type*: [DatastorePartitions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorepartitions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatastorePartitions" }, "DatastoreStorage": { - "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.DatastoreStorage" + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.DatastoreStorage", + "markdownDescription": "Where data store data is stored\\. \n*Required*: No \n*Type*: [DatastoreStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorestorage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatastoreStorage" }, "FileFormatConfiguration": { - "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.FileFormatConfiguration" + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.FileFormatConfiguration", + "markdownDescription": "Contains the configuration information of file formats\\. AWS IoT Analytics data stores support JSON and [Parquet](https://parquet.apache.org/)\\. \nThe default file format is JSON\\. You can specify only one format\\. \nYou can't change the file format after you create the data store\\. \n*Required*: No \n*Type*: [FileFormatConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-fileformatconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileFormatConfiguration" }, "RetentionPeriod": { - "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.RetentionPeriod" + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.RetentionPeriod", + "markdownDescription": "How long, in days, message data is kept for the data store\\. When `customerManagedS3` storage is selected, this parameter is ignored\\. \n*Required*: No \n*Type*: [RetentionPeriod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-retentionperiod.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetentionPeriod" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Metadata which can be used to manage the data store\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -82037,9 +100119,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the column\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Type": { + "markdownDescription": "The type of data\\. For more information about the supported data types, see [Common data types](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-common.html) in the * AWS Glue Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -82053,12 +100139,18 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The name of the Amazon S3 bucket where your data is stored\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9.\\-_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", "type": "string" }, "KeyPrefix": { + "markdownDescription": "\\(Optional\\) The prefix used to create the keys of the data store data objects\\. Each object in an Amazon S3 bucket has a key that is its unique identifier in the bucket\\. Each object in a bucket has exactly one key\\. The prefix must end with a forward slash \\(/\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9!_.*'()/{}:-]*/$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyPrefix", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the role that grants AWS IoT Analytics permission to interact with your Amazon S3 resources\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -82072,9 +100164,13 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The name of the Amazon S3 bucket where your data is stored\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", "type": "string" }, "KeyPrefix": { + "markdownDescription": "\\(Optional\\) The prefix used to create the keys of the data store data objects\\. Each object in an Amazon S3 bucket has a key that is its unique identifier in the bucket\\. Each object in a bucket has exactly one key\\. The prefix must end with a forward slash \\(/\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyPrefix", "type": "string" } }, @@ -82087,10 +100183,14 @@ "additionalProperties": false, "properties": { "Partition": { - "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.Partition" + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.Partition", + "markdownDescription": "A partition dimension defined by an attribute\\. \n*Required*: No \n*Type*: [Partition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-partition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Partition" }, "TimestampPartition": { - "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.TimestampPartition" + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.TimestampPartition", + "markdownDescription": "A partition dimension defined by a timestamp attribute\\. \n*Required*: No \n*Type*: [TimestampPartition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-timestamppartition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimestampPartition" } }, "type": "object" @@ -82102,6 +100202,8 @@ "items": { "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.DatastorePartition" }, + "markdownDescription": "A list of partition dimensions in a data store\\. \n*Required*: No \n*Type*: List of [DatastorePartition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorepartition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Partitions", "type": "array" } }, @@ -82111,12 +100213,18 @@ "additionalProperties": false, "properties": { "CustomerManagedS3": { - "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.CustomerManagedS3" + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.CustomerManagedS3", + "markdownDescription": "Use this to store data store data in an S3 bucket that you manage\\. The choice of service\\-managed or customer\\-managed S3 storage cannot be changed after creation of the data store\\. \n*Required*: No \n*Type*: [CustomerManagedS3](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-customermanageds3.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomerManagedS3" }, "IotSiteWiseMultiLayerStorage": { - "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.IotSiteWiseMultiLayerStorage" + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.IotSiteWiseMultiLayerStorage", + "markdownDescription": "Use this to store data used by AWS IoT SiteWise in an Amazon S3 bucket that you manage\\. You can't change the choice of Amazon S3 storage after your data store is created\\. \n*Required*: No \n*Type*: [IotSiteWiseMultiLayerStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-iotsitewisemultilayerstorage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotSiteWiseMultiLayerStorage" }, "ServiceManagedS3": { + "markdownDescription": "Use this to store data store data in an S3 bucket managed by the AWS IoT Analytics service\\. The choice of service\\-managed or customer\\-managed S3 storage cannot be changed after creation of the data store\\. \n*Required*: No \n*Type*: [ServiceManagedS3](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-servicemanageds3.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceManagedS3", "type": "object" } }, @@ -82126,10 +100234,14 @@ "additionalProperties": false, "properties": { "JsonConfiguration": { + "markdownDescription": "Contains the configuration information of the JSON format\\. \n*Required*: No \n*Type*: [JsonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-jsonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JsonConfiguration", "type": "object" }, "ParquetConfiguration": { - "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.ParquetConfiguration" + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.ParquetConfiguration", + "markdownDescription": "Contains the configuration information of the Parquet format\\. \n*Required*: No \n*Type*: [ParquetConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-parquetconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParquetConfiguration" } }, "type": "object" @@ -82138,7 +100250,9 @@ "additionalProperties": false, "properties": { "CustomerManagedS3Storage": { - "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.CustomerManagedS3Storage" + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.CustomerManagedS3Storage", + "markdownDescription": "Stores data used by AWS IoT SiteWise in an Amazon S3 bucket that you manage\\. \n*Required*: No \n*Type*: [CustomerManagedS3Storage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-customermanageds3storage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomerManagedS3Storage" } }, "type": "object" @@ -82147,7 +100261,9 @@ "additionalProperties": false, "properties": { "SchemaDefinition": { - "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.SchemaDefinition" + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.SchemaDefinition", + "markdownDescription": "Information needed to define a schema\\. \n*Required*: No \n*Type*: [SchemaDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-schemadefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaDefinition" } }, "type": "object" @@ -82156,6 +100272,8 @@ "additionalProperties": false, "properties": { "AttributeName": { + "markdownDescription": "The name of the attribute that defines a partition dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeName", "type": "string" } }, @@ -82168,9 +100286,13 @@ "additionalProperties": false, "properties": { "NumberOfDays": { + "markdownDescription": "The number of days that message data is kept\\. The `unlimited` parameter must be false\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfDays", "type": "number" }, "Unlimited": { + "markdownDescription": "If true, message data is kept indefinitely\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unlimited", "type": "boolean" } }, @@ -82183,6 +100305,8 @@ "items": { "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.Column" }, + "markdownDescription": "Specifies one or more columns that store your data\\. \nEach schema can have up to 100 columns\\. Each column can have up to 100 nested types\\. \n*Required*: No \n*Type*: List of [Column](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-column.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Columns", "type": "array" } }, @@ -82192,9 +100316,13 @@ "additionalProperties": false, "properties": { "AttributeName": { + "markdownDescription": "The attribute name of the partition defined by a timestamp\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeName", "type": "string" }, "TimestampFormat": { + "markdownDescription": "The timestamp format of a partition defined by a timestamp\\. The default format is seconds since epoch \\(January 1, 1970 at midnight UTC time\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimestampFormat", "type": "string" } }, @@ -82242,15 +100370,21 @@ "items": { "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Activity" }, + "markdownDescription": "A list of \"PipelineActivity\" objects\\. Activities perform transformations on your messages, such as removing, renaming or adding message attributes; filtering messages based on attribute values; invoking your Lambda functions on messages for advanced processing; or performing mathematical transformations to normalize device data\\. \nThe list can be 2\\-25 **PipelineActivity** objects and must contain both a `channel` and a `datastore` activity\\. Each entry in the list must contain only one activity, for example: \n `pipelineActivities = [ { \"channel\": { ... } }, { \"lambda\": { ... } }, ... ]` \n*Required*: Yes \n*Type*: List of [Activity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html) \n*Maximum*: `25` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PipelineActivities", "type": "array" }, "PipelineName": { + "markdownDescription": "The name of the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PipelineName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Metadata which can be used to manage the pipeline\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -82284,34 +100418,54 @@ "additionalProperties": false, "properties": { "AddAttributes": { - "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.AddAttributes" + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.AddAttributes", + "markdownDescription": "Adds other attributes based on existing attributes in the message\\. \n*Required*: No \n*Type*: [AddAttributes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-addattributes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddAttributes" }, "Channel": { - "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Channel" + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Channel", + "markdownDescription": "Determines the source of the messages to be processed\\. \n*Required*: No \n*Type*: [Channel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-channel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Channel" }, "Datastore": { - "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Datastore" + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Datastore", + "markdownDescription": "Specifies where to store the processed message data\\. \n*Required*: No \n*Type*: [Datastore](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-datastore.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Datastore" }, "DeviceRegistryEnrich": { - "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.DeviceRegistryEnrich" + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.DeviceRegistryEnrich", + "markdownDescription": "Adds data from the AWS IoT device registry to your message\\. \n*Required*: No \n*Type*: [DeviceRegistryEnrich](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceregistryenrich.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceRegistryEnrich" }, "DeviceShadowEnrich": { - "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.DeviceShadowEnrich" + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.DeviceShadowEnrich", + "markdownDescription": "Adds information from the AWS IoT Device Shadows service to a message\\. \n*Required*: No \n*Type*: [DeviceShadowEnrich](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceshadowenrich.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceShadowEnrich" }, "Filter": { - "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Filter" + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Filter", + "markdownDescription": "Filters a message based on its attributes\\. \n*Required*: No \n*Type*: [Filter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-filter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filter" }, "Lambda": { - "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Lambda" + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Lambda", + "markdownDescription": "Runs a Lambda function to modify the message\\. \n*Required*: No \n*Type*: [Lambda](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-lambda.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Lambda" }, "Math": { - "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Math" + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Math", + "markdownDescription": "Computes an arithmetic expression using the message's attributes and adds it to the message\\. \n*Required*: No \n*Type*: [Math](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-math.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Math" }, "RemoveAttributes": { - "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.RemoveAttributes" + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.RemoveAttributes", + "markdownDescription": "Removes attributes from a message\\. \n*Required*: No \n*Type*: [RemoveAttributes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-removeattributes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveAttributes" }, "SelectAttributes": { - "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.SelectAttributes" + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.SelectAttributes", + "markdownDescription": "Creates a new message using only the specified attributes from the original message\\. \n*Required*: No \n*Type*: [SelectAttributes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-selectattributes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SelectAttributes" } }, "type": "object" @@ -82321,17 +100475,23 @@ "properties": { "Attributes": { "additionalProperties": true, + "markdownDescription": "A list of 1\\-50 \"AttributeNameMapping\" objects that map an existing attribute to a new attribute\\. \nThe existing attributes remain in the message, so if you want to remove the originals, use \"RemoveAttributeActivity\"\\.\n*Required*: Yes \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Attributes", "type": "object" }, "Name": { + "markdownDescription": "The name of the 'addAttributes' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Next": { + "markdownDescription": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Next", "type": "string" } }, @@ -82345,12 +100505,18 @@ "additionalProperties": false, "properties": { "ChannelName": { + "markdownDescription": "The name of the channel from which the messages are processed\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelName", "type": "string" }, "Name": { + "markdownDescription": "The name of the 'channel' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Next": { + "markdownDescription": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Next", "type": "string" } }, @@ -82364,9 +100530,13 @@ "additionalProperties": false, "properties": { "DatastoreName": { + "markdownDescription": "The name of the data store where processed messages are stored\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatastoreName", "type": "string" }, "Name": { + "markdownDescription": "The name of the datastore activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -82380,18 +100550,28 @@ "additionalProperties": false, "properties": { "Attribute": { + "markdownDescription": "The name of the attribute that is added to the message\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attribute", "type": "string" }, "Name": { + "markdownDescription": "The name of the 'deviceRegistryEnrich' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Next": { + "markdownDescription": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Next", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the role that allows access to the device's registry information\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "ThingName": { + "markdownDescription": "The name of the IoT device whose registry information is added to the message\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThingName", "type": "string" } }, @@ -82407,18 +100587,28 @@ "additionalProperties": false, "properties": { "Attribute": { + "markdownDescription": "The name of the attribute that is added to the message\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attribute", "type": "string" }, "Name": { + "markdownDescription": "The name of the 'deviceShadowEnrich' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Next": { + "markdownDescription": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Next", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the role that allows access to the device's shadow\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "ThingName": { + "markdownDescription": "The name of the IoT device whose shadow information is added to the message\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThingName", "type": "string" } }, @@ -82434,12 +100624,18 @@ "additionalProperties": false, "properties": { "Filter": { + "markdownDescription": "An expression that looks like an SQL WHERE clause that must return a Boolean value\\. \n*Required*: Yes \n*Type*: [String](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-iotanalytics-pipeline-filter.html#aws-properties-iotanalytics-pipeline-filter) \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filter", "type": "string" }, "Name": { + "markdownDescription": "The name of the 'filter' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Next": { + "markdownDescription": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Next", "type": "string" } }, @@ -82453,15 +100649,23 @@ "additionalProperties": false, "properties": { "BatchSize": { + "markdownDescription": "The number of messages passed to the Lambda function for processing\\. \nThe AWS Lambda function must be able to process all of these messages within five minutes, which is the maximum timeout duration for Lambda functions\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BatchSize", "type": "number" }, "LambdaName": { + "markdownDescription": "The name of the Lambda function that is run on the message\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9_-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaName", "type": "string" }, "Name": { + "markdownDescription": "The name of the 'lambda' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Next": { + "markdownDescription": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Next", "type": "string" } }, @@ -82476,15 +100680,23 @@ "additionalProperties": false, "properties": { "Attribute": { + "markdownDescription": "The name of the attribute that contains the result of the math operation\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attribute", "type": "string" }, "Math": { + "markdownDescription": "An expression that uses one or more existing attributes and must return an integer value\\. \n*Required*: Yes \n*Type*: [String](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-iotanalytics-pipeline-math.html#aws-properties-iotanalytics-pipeline-math) \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Math", "type": "string" }, "Name": { + "markdownDescription": "The name of the 'math' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Next": { + "markdownDescription": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Next", "type": "string" } }, @@ -82502,12 +100714,18 @@ "items": { "type": "string" }, + "markdownDescription": "A list of 1\\-50 attributes to remove from the message\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attributes", "type": "array" }, "Name": { + "markdownDescription": "The name of the 'removeAttributes' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Next": { + "markdownDescription": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Next", "type": "string" } }, @@ -82524,12 +100742,18 @@ "items": { "type": "string" }, + "markdownDescription": "A list of the attributes to select from the message\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attributes", "type": "array" }, "Name": { + "markdownDescription": "The name of the 'selectAttributes' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Next": { + "markdownDescription": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Next", "type": "string" } }, @@ -82575,12 +100799,16 @@ "additionalProperties": false, "properties": { "SuiteDefinitionConfiguration": { - "$ref": "#/definitions/AWS::IoTCoreDeviceAdvisor::SuiteDefinition.SuiteDefinitionConfiguration" + "$ref": "#/definitions/AWS::IoTCoreDeviceAdvisor::SuiteDefinition.SuiteDefinitionConfiguration", + "markdownDescription": "The configuration of the Suite Definition\\. Listed below are the required elements of the `SuiteDefinitionConfiguration`\\. \n**devicePermissionRoleArn** \nThe device permission arn\\. \nThis is a required element\\. \n**Type:** String \n**devices** \nThe list of configured devices under test\\. For more information on devices under test, see [DeviceUnderTest](http://amazonaws.com/iot/latest/apireference/API_iotdeviceadvisor_DeviceUnderTest.html) \nNot a required element\\. \n**Type:** List of devices under test \n**intendedForQualification** \nThe tests intended for qualification in a suite\\. \nNot a required element\\. \n**Type:** Boolean \n**rootGroup** \nThe test suite root group\\. For more information on creating and using root groups see the [Device Advisor workflow](https://docs.aws.amazon.com/iot/latest/developerguide/device-advisor-workflow.html)\\. \nThis is a required element\\. \n**Type:** String \n**suiteDefinitionName** \nThe Suite Definition Configuration name\\. \nThis is a required element\\. \n**Type:** String\n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuiteDefinitionConfiguration" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Metadata that can be used to manage the the Suite Definition\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -83126,27 +101354,41 @@ "additionalProperties": false, "properties": { "DetectorModelDefinition": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.DetectorModelDefinition" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.DetectorModelDefinition", + "markdownDescription": "Information that defines how a detector operates\\. \n*Required*: Yes \n*Type*: [DetectorModelDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-detectormodeldefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DetectorModelDefinition" }, "DetectorModelDescription": { + "markdownDescription": "A brief description of the detector model\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DetectorModelDescription", "type": "string" }, "DetectorModelName": { + "markdownDescription": "The name of the detector model\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9_-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DetectorModelName", "type": "string" }, "EvaluationMethod": { + "markdownDescription": "Information about the order in which events are evaluated and how actions are executed\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BATCH | SERIAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EvaluationMethod", "type": "string" }, "Key": { + "markdownDescription": "The value used to identify a detector instance\\. When a device or system sends input, a new detector instance with a unique key value is created\\. AWS IoT Events can continue to route input to its corresponding detector instance based on this identifying information\\. \nThis parameter uses a JSON\\-path expression to select the attribute\\-value pair in the message payload that is used for identification\\. To route the message to the correct detector instance, the device must send a message payload that contains the same attribute\\-value\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^((`[\\w\\- ]+`)|([\\w\\-]+))(\\.((`[\\w- ]+`)|([\\w\\-]+)))*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Key", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the role that grants permission to AWS IoT Events to perform its operations\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -83181,43 +101423,69 @@ "additionalProperties": false, "properties": { "ClearTimer": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.ClearTimer" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.ClearTimer", + "markdownDescription": "Information needed to clear the timer\\. \n*Required*: No \n*Type*: [ClearTimer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-cleartimer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClearTimer" }, "DynamoDB": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.DynamoDB" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.DynamoDB", + "markdownDescription": "Writes to the DynamoDB table that you created\\. The default action payload contains all attribute\\-value pairs that have the information about the detector model instance and the event that triggered the action\\. You can customize the [payload](https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html)\\. One column of the DynamoDB table receives all attribute\\-value pairs in the payload that you specify\\. For more information, see [Actions](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-event-actions.html) in * AWS IoT Events Developer Guide*\\. \n*Required*: No \n*Type*: [DynamoDB](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-dynamodb.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DynamoDB" }, "DynamoDBv2": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.DynamoDBv2" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.DynamoDBv2", + "markdownDescription": "Writes to the DynamoDB table that you created\\. The default action payload contains all attribute\\-value pairs that have the information about the detector model instance and the event that triggered the action\\. You can customize the [payload](https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html)\\. A separate column of the DynamoDB table receives one attribute\\-value pair in the payload that you specify\\. For more information, see [Actions](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-event-actions.html) in * AWS IoT Events Developer Guide*\\. \n*Required*: No \n*Type*: [DynamoDBv2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-dynamodbv2.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DynamoDBv2" }, "Firehose": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Firehose" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Firehose", + "markdownDescription": "Sends information about the detector model instance and the event that triggered the action to an Amazon Kinesis Data Firehose delivery stream\\. \n*Required*: No \n*Type*: [Firehose](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-firehose.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Firehose" }, "IotEvents": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.IotEvents" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.IotEvents", + "markdownDescription": "Sends AWS IoT Events input, which passes information about the detector model instance and the event that triggered the action\\. \n*Required*: No \n*Type*: [IotEvents](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iotevents.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotEvents" }, "IotSiteWise": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.IotSiteWise" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.IotSiteWise", + "markdownDescription": "Sends information about the detector model instance and the event that triggered the action to an asset property in AWS IoT SiteWise \\. \n*Required*: No \n*Type*: [IotSiteWise](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iotsitewise.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotSiteWise" }, "IotTopicPublish": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.IotTopicPublish" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.IotTopicPublish", + "markdownDescription": "Publishes an MQTT message with the given topic to the AWS IoT message broker\\. \n*Required*: No \n*Type*: [IotTopicPublish](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iottopicpublish.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotTopicPublish" }, "Lambda": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Lambda" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Lambda", + "markdownDescription": "Calls a Lambda function, passing in information about the detector model instance and the event that triggered the action\\. \n*Required*: No \n*Type*: [Lambda](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-lambda.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Lambda" }, "ResetTimer": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.ResetTimer" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.ResetTimer", + "markdownDescription": "Information needed to reset the timer\\. \n*Required*: No \n*Type*: [ResetTimer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-resettimer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResetTimer" }, "SetTimer": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.SetTimer" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.SetTimer", + "markdownDescription": "Information needed to set the timer\\. \n*Required*: No \n*Type*: [SetTimer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-settimer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SetTimer" }, "SetVariable": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.SetVariable" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.SetVariable", + "markdownDescription": "Sets a variable to a specified value\\. \n*Required*: No \n*Type*: [SetVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-setvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SetVariable" }, "Sns": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Sns" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Sns", + "markdownDescription": "Sends an Amazon SNS message\\. \n*Required*: No \n*Type*: [Sns](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-sns.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sns" }, "Sqs": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Sqs" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Sqs", + "markdownDescription": "Sends an Amazon SNS message\\. \n*Required*: No \n*Type*: [Sqs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-sqs.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sqs" } }, "type": "object" @@ -83226,9 +101494,13 @@ "additionalProperties": false, "properties": { "OffsetInNanos": { + "markdownDescription": "The nanosecond offset converted from `timeInSeconds`\\. The valid range is between 0\\-999999999\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OffsetInNanos", "type": "string" }, "TimeInSeconds": { + "markdownDescription": "The timestamp, in seconds, in the Unix epoch format\\. The valid range is between 1\\-31556889864403199\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeInSeconds", "type": "string" } }, @@ -83241,13 +101513,19 @@ "additionalProperties": false, "properties": { "Quality": { + "markdownDescription": "The quality of the asset property value\\. The value must be `'GOOD'`, `'BAD'`, or `'UNCERTAIN'`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Quality", "type": "string" }, "Timestamp": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.AssetPropertyTimestamp" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.AssetPropertyTimestamp", + "markdownDescription": "The timestamp associated with the asset property value\\. The default is the current event time\\. \n*Required*: No \n*Type*: [AssetPropertyTimestamp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertytimestamp.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timestamp" }, "Value": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.AssetPropertyVariant" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.AssetPropertyVariant", + "markdownDescription": "The value to send to an asset property\\. \n*Required*: Yes \n*Type*: [AssetPropertyVariant](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertyvariant.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value" } }, "required": [ @@ -83259,15 +101537,23 @@ "additionalProperties": false, "properties": { "BooleanValue": { + "markdownDescription": "The asset property value is a Boolean value that must be `'TRUE'` or `'FALSE'`\\. You must use an expression, and the evaluated result should be a Boolean value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BooleanValue", "type": "string" }, "DoubleValue": { + "markdownDescription": "The asset property value is a double\\. You must use an expression, and the evaluated result should be a double\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DoubleValue", "type": "string" }, "IntegerValue": { + "markdownDescription": "The asset property value is an integer\\. You must use an expression, and the evaluated result should be an integer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegerValue", "type": "string" }, "StringValue": { + "markdownDescription": "The asset property value is a string\\. You must use an expression, and the evaluated result should be a string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StringValue", "type": "string" } }, @@ -83277,6 +101563,8 @@ "additionalProperties": false, "properties": { "TimerName": { + "markdownDescription": "The name of the timer to clear\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimerName", "type": "string" } }, @@ -83289,12 +101577,16 @@ "additionalProperties": false, "properties": { "InitialStateName": { + "markdownDescription": "The state that is entered at the creation of each detector \\(instance\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InitialStateName", "type": "string" }, "States": { "items": { "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.State" }, + "markdownDescription": "Information about the states of the detector\\. \n*Required*: Yes \n*Type*: List of [State](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-state.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "States", "type": "array" } }, @@ -83308,33 +101600,53 @@ "additionalProperties": false, "properties": { "HashKeyField": { + "markdownDescription": "The name of the hash key \\(also called the partition key\\)\\. The `hashKeyField` value must match the partition key of the target DynamoDB table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HashKeyField", "type": "string" }, "HashKeyType": { + "markdownDescription": "The data type for the hash key \\(also called the partition key\\)\\. You can specify the following values: \n+ `'STRING'` \\- The hash key is a string\\.\n+ `'NUMBER'` \\- The hash key is a number\\.\nIf you don't specify `hashKeyType`, the default value is `'STRING'`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HashKeyType", "type": "string" }, "HashKeyValue": { + "markdownDescription": "The value of the hash key \\(also called the partition key\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HashKeyValue", "type": "string" }, "Operation": { + "markdownDescription": "The type of operation to perform\\. You can specify the following values: \n+ `'INSERT'` \\- Insert data as a new item into the DynamoDB table\\. This item uses the specified hash key as a partition key\\. If you specified a range key, the item uses the range key as a sort key\\.\n+ `'UPDATE'` \\- Update an existing item of the DynamoDB table with new data\\. This item's partition key must match the specified hash key\\. If you specified a range key, the range key must match the item's sort key\\.\n+ `'DELETE'` \\- Delete an existing item of the DynamoDB table\\. This item's partition key must match the specified hash key\\. If you specified a range key, the range key must match the item's sort key\\.\nIf you don't specify this parameter, AWS IoT Events triggers the `'INSERT'` operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Operation", "type": "string" }, "Payload": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload", + "markdownDescription": "Information needed to configure the payload\\. \nBy default, AWS IoT Events generates a standard payload in JSON for any action\\. This action payload contains all attribute\\-value pairs that have the information about the detector model instance and the event triggered the action\\. To configure the action payload, you can use `contentExpression`\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Payload" }, "PayloadField": { + "markdownDescription": "The name of the DynamoDB column that receives the action payload\\. \nIf you don't specify this parameter, the name of the DynamoDB column is `payload`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PayloadField", "type": "string" }, "RangeKeyField": { + "markdownDescription": "The name of the range key \\(also called the sort key\\)\\. The `rangeKeyField` value must match the sort key of the target DynamoDB table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RangeKeyField", "type": "string" }, "RangeKeyType": { + "markdownDescription": "The data type for the range key \\(also called the sort key\\), You can specify the following values: \n+ `'STRING'` \\- The range key is a string\\.\n+ `'NUMBER'` \\- The range key is number\\.\nIf you don't specify `rangeKeyField`, the default value is `'STRING'`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RangeKeyType", "type": "string" }, "RangeKeyValue": { + "markdownDescription": "The value of the range key \\(also called the sort key\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RangeKeyValue", "type": "string" }, "TableName": { + "markdownDescription": "The name of the DynamoDB table\\. The `tableName` value must match the table name of the target DynamoDB table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", "type": "string" } }, @@ -83349,9 +101661,13 @@ "additionalProperties": false, "properties": { "Payload": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload", + "markdownDescription": "Information needed to configure the payload\\. \nBy default, AWS IoT Events generates a standard payload in JSON for any action\\. This action payload contains all attribute\\-value pairs that have the information about the detector model instance and the event triggered the action\\. To configure the action payload, you can use `contentExpression`\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Payload" }, "TableName": { + "markdownDescription": "The name of the DynamoDB table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", "type": "string" } }, @@ -83367,12 +101683,18 @@ "items": { "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Action" }, + "markdownDescription": "The actions to be performed\\. \n*Required*: No \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", "type": "array" }, "Condition": { + "markdownDescription": "Optional\\. The Boolean expression that, when TRUE, causes the `actions` to be performed\\. If not present, the actions are performed \\(=TRUE\\)\\. If the expression result is not a Boolean value, the actions are not performed \\(=FALSE\\)\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Condition", "type": "string" }, "EventName": { + "markdownDescription": "The name of the event\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventName", "type": "string" } }, @@ -83385,12 +101707,18 @@ "additionalProperties": false, "properties": { "DeliveryStreamName": { + "markdownDescription": "The name of the Kinesis Data Firehose delivery stream where the data is written\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryStreamName", "type": "string" }, "Payload": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload", + "markdownDescription": "You can configure the action payload when you send a message to an Amazon Kinesis Data Firehose delivery stream\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Payload" }, "Separator": { + "markdownDescription": "A character separator that is used to separate records written to the Kinesis Data Firehose delivery stream\\. Valid values are: '\\\\n' \\(newline\\), '\\\\t' \\(tab\\), '\\\\r\\\\n' \\(Windows newline\\), ',' \\(comma\\)\\. \n*Required*: No \n*Type*: String \n*Pattern*: `([\\n\\t])|(\\r\\n)|(,)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Separator", "type": "string" } }, @@ -83403,10 +101731,14 @@ "additionalProperties": false, "properties": { "InputName": { + "markdownDescription": "The name of the AWS IoT Events input where the data is sent\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputName", "type": "string" }, "Payload": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload", + "markdownDescription": "You can configure the action payload when you send a message to an AWS IoT Events input\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Payload" } }, "required": [ @@ -83418,19 +101750,29 @@ "additionalProperties": false, "properties": { "AssetId": { + "markdownDescription": "The ID of the asset that has the specified property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetId", "type": "string" }, "EntryId": { + "markdownDescription": "A unique identifier for this entry\\. You can use the entry ID to track which data entry causes an error in case of failure\\. The default is a new unique identifier\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntryId", "type": "string" }, "PropertyAlias": { + "markdownDescription": "The alias of the asset property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropertyAlias", "type": "string" }, "PropertyId": { + "markdownDescription": "The ID of the asset property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropertyId", "type": "string" }, "PropertyValue": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.AssetPropertyValue" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.AssetPropertyValue", + "markdownDescription": "The value to send to the asset property\\. This value contains timestamp, quality, and value \\(TQV\\) information\\. \n*Required*: Yes \n*Type*: [AssetPropertyValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertyvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropertyValue" } }, "required": [ @@ -83442,10 +101784,14 @@ "additionalProperties": false, "properties": { "MqttTopic": { + "markdownDescription": "The MQTT topic of the message\\. You can use a string expression that includes variables \\(`$variable.`\\) and input values \\(`$input..`\\) as the topic string\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MqttTopic", "type": "string" }, "Payload": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload", + "markdownDescription": "You can configure the action payload when you publish a message to an AWS IoT Core topic\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Payload" } }, "required": [ @@ -83457,10 +101803,14 @@ "additionalProperties": false, "properties": { "FunctionArn": { + "markdownDescription": "The ARN of the Lambda function that is executed\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FunctionArn", "type": "string" }, "Payload": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload", + "markdownDescription": "You can configure the action payload when you send a message to a Lambda function\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Payload" } }, "required": [ @@ -83475,6 +101825,8 @@ "items": { "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Event" }, + "markdownDescription": "Specifies the actions that are performed when the state is entered and the `condition` is `TRUE`\\. \n*Required*: No \n*Type*: List of [Event](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-event.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Events", "type": "array" } }, @@ -83487,6 +101839,8 @@ "items": { "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Event" }, + "markdownDescription": "Specifies the `actions` that are performed when the state is exited and the `condition` is `TRUE`\\. \n*Required*: No \n*Type*: List of [Event](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-event.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Events", "type": "array" } }, @@ -83499,12 +101853,16 @@ "items": { "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Event" }, + "markdownDescription": "Specifies the actions performed when the `condition` evaluates to TRUE\\. \n*Required*: No \n*Type*: List of [Event](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-event.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Events", "type": "array" }, "TransitionEvents": { "items": { "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.TransitionEvent" }, + "markdownDescription": "Specifies the actions performed, and the next state entered, when a `condition` evaluates to TRUE\\. \n*Required*: No \n*Type*: List of [TransitionEvent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-transitionevent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitionEvents", "type": "array" } }, @@ -83514,9 +101872,13 @@ "additionalProperties": false, "properties": { "ContentExpression": { + "markdownDescription": "The content of the payload\\. You can use a string expression that includes quoted strings \\(`''`\\), variables \\(`$variable.`\\), input values \\(`$input..`\\), string concatenations, and quoted strings that contain `${}` as the content\\. The recommended maximum size of a content expression is 1 KB\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentExpression", "type": "string" }, "Type": { + "markdownDescription": "The value of the payload type can be either `STRING` or `JSON`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `JSON | STRING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -83530,6 +101892,8 @@ "additionalProperties": false, "properties": { "TimerName": { + "markdownDescription": "The name of the timer to reset\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimerName", "type": "string" } }, @@ -83542,12 +101906,18 @@ "additionalProperties": false, "properties": { "DurationExpression": { + "markdownDescription": "The duration of the timer, in seconds\\. You can use a string expression that includes numbers, variables \\(`$variable.`\\), and input values \\(`$input..`\\) as the duration\\. The range of the duration is 1\\-31622400 seconds\\. To ensure accuracy, the minimum duration is 60 seconds\\. The evaluated result of the duration is rounded down to the nearest whole number\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DurationExpression", "type": "string" }, "Seconds": { + "markdownDescription": "The number of seconds until the timer expires\\. The minimum value is 60 seconds to ensure accuracy\\. The maximum value is 31622400 seconds\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `31622400` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Seconds", "type": "number" }, "TimerName": { + "markdownDescription": "The name of the timer\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimerName", "type": "string" } }, @@ -83560,9 +101930,13 @@ "additionalProperties": false, "properties": { "Value": { + "markdownDescription": "The new value of the variable\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" }, "VariableName": { + "markdownDescription": "The name of the variable\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VariableName", "type": "string" } }, @@ -83576,9 +101950,13 @@ "additionalProperties": false, "properties": { "Payload": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload", + "markdownDescription": "You can configure the action payload when you send a message as an Amazon SNS push notification\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Payload" }, "TargetArn": { + "markdownDescription": "The ARN of the Amazon SNS target where the message is sent\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetArn", "type": "string" } }, @@ -83591,12 +101969,18 @@ "additionalProperties": false, "properties": { "Payload": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload", + "markdownDescription": "You can configure the action payload when you send a message to an Amazon SQS queue\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Payload" }, "QueueUrl": { + "markdownDescription": "The URL of the SQS queue where the data is written\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueueUrl", "type": "string" }, "UseBase64": { + "markdownDescription": "Set this to TRUE if you want the data to be base\\-64 encoded before it is written to the queue\\. Otherwise, set this to FALSE\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseBase64", "type": "boolean" } }, @@ -83609,15 +101993,23 @@ "additionalProperties": false, "properties": { "OnEnter": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.OnEnter" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.OnEnter", + "markdownDescription": "When entering this state, perform these `actions` if the `condition` is TRUE\\. \n*Required*: No \n*Type*: [OnEnter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-onenter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnEnter" }, "OnExit": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.OnExit" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.OnExit", + "markdownDescription": "When exiting this state, perform these `actions` if the specified `condition` is `TRUE`\\. \n*Required*: No \n*Type*: [OnExit](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-onexit.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnExit" }, "OnInput": { - "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.OnInput" + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.OnInput", + "markdownDescription": "When an input is received and the `condition` is TRUE, perform the specified `actions`\\. \n*Required*: No \n*Type*: [OnInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-oninput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnInput" }, "StateName": { + "markdownDescription": "The name of the state\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StateName", "type": "string" } }, @@ -83633,15 +102025,23 @@ "items": { "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Action" }, + "markdownDescription": "The actions to be performed\\. \n*Required*: No \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", "type": "array" }, "Condition": { + "markdownDescription": "Required\\. A Boolean expression that when TRUE causes the actions to be performed and the `nextState` to be entered\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Condition", "type": "string" }, "EventName": { + "markdownDescription": "The name of the transition event\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventName", "type": "string" }, "NextState": { + "markdownDescription": "The next state to enter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NextState", "type": "string" } }, @@ -83688,18 +102088,26 @@ "additionalProperties": false, "properties": { "InputDefinition": { - "$ref": "#/definitions/AWS::IoTEvents::Input.InputDefinition" + "$ref": "#/definitions/AWS::IoTEvents::Input.InputDefinition", + "markdownDescription": "The definition of the input\\. \n*Required*: Yes \n*Type*: [InputDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-input-inputdefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputDefinition" }, "InputDescription": { + "markdownDescription": "A brief description of the input\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputDescription", "type": "string" }, "InputName": { + "markdownDescription": "The name of the input\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InputName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -83733,6 +102141,8 @@ "additionalProperties": false, "properties": { "JsonPath": { + "markdownDescription": "An expression that specifies an attribute\\-value pair in a JSON structure\\. Use this to specify an attribute from the JSON payload that is made available by the input\\. Inputs are derived from messages sent to AWS IoT Events \\(`BatchPutMessage`\\)\\. Each such message contains a JSON payload\\. The attribute \\(and its paired value\\) specified here are available for use in the `condition` expressions used by detectors\\. \nSyntax: `....` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^((`[\\w\\- ]+`)|([\\w\\-]+))(\\.((`[\\w- ]+`)|([\\w\\-]+)))*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JsonPath", "type": "string" } }, @@ -83748,6 +102158,8 @@ "items": { "$ref": "#/definitions/AWS::IoTEvents::Input.Attribute" }, + "markdownDescription": "The attributes from the JSON payload that are made available by the input\\. Inputs are derived from messages sent to the AWS IoT Events system using `BatchPutMessage`\\. Each such message contains a JSON payload, and those attributes \\(and their paired values\\) specified here are available for use in the `condition` expressions used by detectors that monitor this input\\. \n*Required*: Yes \n*Type*: List of [Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-input-attribute.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attributes", "type": "array" } }, @@ -83792,18 +102204,26 @@ "additionalProperties": false, "properties": { "ApplicationDescription": { + "markdownDescription": "An optional description of the web application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `^[ -~]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationDescription", "type": "string" }, "ApplicationName": { + "markdownDescription": "The name of the web application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[ -~]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationName", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the role that the web application assumes when it interacts with AWS IoT Core\\. \nThe name of the role must be in the form `FleetHub_random_string`\\.\nPattern: `^arn:[!-~]+$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A set of key/value pairs that you can use to manage the web application resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -84827,13 +103247,19 @@ "additionalProperties": false, "properties": { "AccessPolicyIdentity": { - "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.AccessPolicyIdentity" + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.AccessPolicyIdentity", + "markdownDescription": "The identity for this access policy\\. Choose an AWS SSO user, an AWS SSO group, or an IAM user\\. \n*Required*: Yes \n*Type*: [AccessPolicyIdentity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-accesspolicyidentity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessPolicyIdentity" }, "AccessPolicyPermission": { + "markdownDescription": "The permission level for this access policy\\. Choose either a `ADMINISTRATOR` or `VIEWER`\\. Note that a project `ADMINISTRATOR` is also known as a project owner\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessPolicyPermission", "type": "string" }, "AccessPolicyResource": { - "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.AccessPolicyResource" + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.AccessPolicyResource", + "markdownDescription": "The AWS IoT SiteWise Monitor resource for this access policy\\. Choose either a portal or a project\\. \n*Required*: Yes \n*Type*: [AccessPolicyResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-accesspolicyresource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessPolicyResource" } }, "required": [ @@ -84868,13 +103294,19 @@ "additionalProperties": false, "properties": { "IamRole": { - "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.IamRole" + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.IamRole", + "markdownDescription": "An IAM role identity\\. \n*Required*: No \n*Type*: [IamRole](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-iamrole.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamRole" }, "IamUser": { - "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.IamUser" + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.IamUser", + "markdownDescription": "An IAM user identity\\. \n*Required*: No \n*Type*: [IamUser](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-iamuser.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamUser" }, "User": { - "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.User" + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.User", + "markdownDescription": "The AWS SSO user to which this access policy maps\\. \n*Required*: No \n*Type*: [User](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-user.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "User" } }, "type": "object" @@ -84883,10 +103315,14 @@ "additionalProperties": false, "properties": { "Portal": { - "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.Portal" + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.Portal", + "markdownDescription": "The AWS IoT SiteWise Monitor portal for this access policy\\. \n*Required*: No \n*Type*: [Portal](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-portal.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Portal" }, "Project": { - "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.Project" + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.Project", + "markdownDescription": "The AWS IoT SiteWise Monitor project for this access policy\\. \n*Required*: No \n*Type*: [Project](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-project.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Project" } }, "type": "object" @@ -84895,6 +103331,8 @@ "additionalProperties": false, "properties": { "arn": { + "markdownDescription": "The ARN of the IAM role\\. For more information, see [IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "arn", "type": "string" } }, @@ -84904,6 +103342,8 @@ "additionalProperties": false, "properties": { "arn": { + "markdownDescription": "The ARN of the IAM user\\. For more information, see [IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) in the *IAM User Guide*\\. \nIf you delete the IAM user, access policies that contain this identity include an empty `arn`\\. You can delete the access policy for the IAM user that no longer exists\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "arn", "type": "string" } }, @@ -84913,6 +103353,8 @@ "additionalProperties": false, "properties": { "id": { + "markdownDescription": "The ID of the portal\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "id", "type": "string" } }, @@ -84922,6 +103364,8 @@ "additionalProperties": false, "properties": { "id": { + "markdownDescription": "The ID of the project\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "id", "type": "string" } }, @@ -84931,6 +103375,8 @@ "additionalProperties": false, "properties": { "id": { + "markdownDescription": "The ID of the user\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "id", "type": "string" } }, @@ -84978,24 +103424,34 @@ "items": { "$ref": "#/definitions/AWS::IoTSiteWise::Asset.AssetHierarchy" }, + "markdownDescription": "A list of asset hierarchies that each contain a `hierarchyLogicalId`\\. A hierarchy specifies allowed parent/child asset relationships\\. \n*Required*: No \n*Type*: List of [AssetHierarchy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assethierarchy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetHierarchies", "type": "array" }, "AssetModelId": { + "markdownDescription": "The ID of the asset model from which to create the asset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetModelId", "type": "string" }, "AssetName": { + "markdownDescription": "A unique, friendly name for the asset\\. \nThe maximum length is 256 characters with the pattern `[^\\u0000-\\u001F\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetName", "type": "string" }, "AssetProperties": { "items": { "$ref": "#/definitions/AWS::IoTSiteWise::Asset.AssetProperty" }, + "markdownDescription": "The list of asset properties for the asset\\. \nThis object doesn't include properties that you define in composite models\\. You can find composite model properties in the `assetCompositeModels` object\\. \n*Required*: No \n*Type*: List of [AssetProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assetproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetProperties", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of key\\-value pairs that contain metadata for the asset\\. For more information, see [Tagging your AWS IoT SiteWise resources](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -85030,9 +103486,13 @@ "additionalProperties": false, "properties": { "ChildAssetId": { + "markdownDescription": "The Id of the child asset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChildAssetId", "type": "string" }, "LogicalId": { + "markdownDescription": "The `LogicalID` of the hierarchy\\. This ID is a `hierarchyLogicalId`\\. \nThe maximum length is 256 characters, with the pattern `[^\\u0000-\\u001F\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogicalId", "type": "string" } }, @@ -85046,12 +103506,18 @@ "additionalProperties": false, "properties": { "Alias": { + "markdownDescription": "The property alias that identifies the property, such as an OPC\\-UA server data stream path \\(for example, `/company/windfarm/3/turbine/7/temperature`\\)\\. For more information, see [Mapping industrial data streams to asset properties](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html) in the *AWS IoT SiteWise User Guide*\\. \nThe property alias must have 1\\-1000 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alias", "type": "string" }, "LogicalId": { + "markdownDescription": "The `LogicalID` of the asset property\\. \nThe maximum length is 256 characters, with the pattern `[^\\u0000-\\u001F\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogicalId", "type": "string" }, "NotificationState": { + "markdownDescription": "The MQTT notification state \\(enabled or disabled\\) for this asset property\\. When the notification state is enabled, AWS IoT SiteWise publishes property value updates to a unique MQTT topic\\. For more information, see [Interacting with other services](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/interact-with-other-services.html) in the *AWS IoT SiteWise User Guide*\\. \nIf you omit this parameter, the notification state is set to `DISABLED`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationState", "type": "string" }, "Unit": { @@ -85102,30 +103568,42 @@ "items": { "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelCompositeModel" }, + "markdownDescription": "The composite asset models that are part of this asset model\\. Composite asset models are asset models that contain specific properties\\. Each composite model has a type that defines the properties that the composite model supports\\. You can use composite asset models to define alarms on this asset model\\. \n*Required*: No \n*Type*: List of [AssetModelCompositeModel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetModelCompositeModels", "type": "array" }, "AssetModelDescription": { + "markdownDescription": "A description for the asset model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetModelDescription", "type": "string" }, "AssetModelHierarchies": { "items": { "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelHierarchy" }, + "markdownDescription": "The hierarchy definitions of the asset model\\. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model\\. For more information, see [Defining relationships between assets](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html) in the *AWS IoT SiteWiseUser Guide*\\. \nYou can specify up to 10 hierarchies per asset model\\. For more information, see [Quotas](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [AssetModelHierarchy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelhierarchy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetModelHierarchies", "type": "array" }, "AssetModelName": { + "markdownDescription": "A unique, friendly name for the asset model\\. \nThe maximum length is 256 characters with the pattern `[^\\u0000-\\u001F\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetModelName", "type": "string" }, "AssetModelProperties": { "items": { "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelProperty" }, + "markdownDescription": "The property definitions of the asset model\\. For more information, see [Defining data properties](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html) in the *AWS IoT SiteWise User Guide*\\. \nYou can specify up to 200 properties per asset model\\. For more information, see [Quotas](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [AssetModelProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetModelProperties", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of key\\-value pairs that contain metadata for the asset\\. For more information, see [Tagging your AWS IoT SiteWise resources](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -85162,15 +103640,23 @@ "items": { "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelProperty" }, + "markdownDescription": "The asset property definitions for this composite model\\. \n*Required*: No \n*Type*: List of [AssetModelProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CompositeModelProperties", "type": "array" }, "Description": { + "markdownDescription": "The description of the composite model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name of the composite model\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Type": { + "markdownDescription": "The type of the composite model\\. For alarm composite models, this type is `AWS/ALARM`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -85184,12 +103670,18 @@ "additionalProperties": false, "properties": { "ChildAssetModelId": { + "markdownDescription": "The Id of the asset model\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChildAssetModelId", "type": "string" }, "LogicalId": { + "markdownDescription": "The `LogicalID` of the asset model hierarchy\\. This ID is a `hierarchyLogicalId`\\. \nThe maximum length is 256 characters, with the pattern `[^\\u0000-\\u001F\\u007F]+` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogicalId", "type": "string" }, "Name": { + "markdownDescription": "The name of the asset model hierarchy\\. \nThe maximum length is 256 characters with the pattern `[^\\u0000-\\u001F\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -85204,21 +103696,33 @@ "additionalProperties": false, "properties": { "DataType": { + "markdownDescription": "The data type of the asset model property\\. The value can be `STRING`, `INTEGER`, `DOUBLE`, `BOOLEAN`, or `STRUCT`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataType", "type": "string" }, "DataTypeSpec": { + "markdownDescription": "The data type of the structure for this property\\. This parameter exists on properties that have the `STRUCT` data type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataTypeSpec", "type": "string" }, "LogicalId": { + "markdownDescription": "The `LogicalID` of the asset model property\\. \nThe maximum length is 256 characters, with the pattern `[^\\\\u0000-\\\\u001F\\\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogicalId", "type": "string" }, "Name": { + "markdownDescription": "The name of the asset model property\\. \nThe maximum length is 256 characters with the pattern `[^\\u0000-\\u001F\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Type": { - "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.PropertyType" + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.PropertyType", + "markdownDescription": "Contains a property type, which can be one of `attribute`, `measurement`, `metric`, or `transform`\\. \n*Required*: Yes \n*Type*: [PropertyType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-propertytype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type" }, "Unit": { + "markdownDescription": "The unit of the asset model property, such as `Newtons` or `RPM`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", "type": "string" } }, @@ -85234,6 +103738,8 @@ "additionalProperties": false, "properties": { "DefaultValue": { + "markdownDescription": "The default value of the asset model property attribute\\. All assets that you create from the asset model contain this attribute value\\. You can update an attribute's value after you create an asset\\. For more information, see [Updating attribute values](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultValue", "type": "string" } }, @@ -85243,10 +103749,14 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The friendly name of the variable to be used in the expression\\. \nThe maximum length is 64 characters with the pattern `^[a-z][a-z0-9_]*$`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Value": { - "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.VariableValue" + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.VariableValue", + "markdownDescription": "The variable that identifies an asset property from which to use values\\. \n*Required*: Yes \n*Type*: [VariableValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value" } }, "required": [ @@ -85259,16 +103769,22 @@ "additionalProperties": false, "properties": { "Expression": { + "markdownDescription": "The mathematical expression that defines the metric aggregation function\\. You can specify up to 10 variables per expression\\. You can specify up to 10 functions per expression\\. \nFor more information, see [Quotas](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Expression", "type": "string" }, "Variables": { "items": { "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.ExpressionVariable" }, + "markdownDescription": "The list of variables used in the expression\\. \n*Required*: Yes \n*Type*: List of [ExpressionVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-expressionvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Variables", "type": "array" }, "Window": { - "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.MetricWindow" + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.MetricWindow", + "markdownDescription": "The window \\(time interval\\) over which AWS IoT SiteWise computes the metric's aggregation expression\\. AWS IoT SiteWise computes one data point per `window`\\. \n*Required*: Yes \n*Type*: [MetricWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metricwindow.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Window" } }, "required": [ @@ -85282,7 +103798,9 @@ "additionalProperties": false, "properties": { "Tumbling": { - "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.TumblingWindow" + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.TumblingWindow", + "markdownDescription": "The tumbling time interval window\\. \n*Required*: No \n*Type*: [TumblingWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-tumblingwindow.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tumbling" } }, "type": "object" @@ -85291,15 +103809,23 @@ "additionalProperties": false, "properties": { "Attribute": { - "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Attribute" + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Attribute", + "markdownDescription": "Specifies an asset attribute property\\. An attribute generally contains static information, such as the serial number of an [industrial IoT](https://en.wikipedia.org/wiki/Internet_of_things#Industrial_applications) wind turbine\\. \nThis is required if the `TypeName` is `Attribute` and has a `DefaultValue`\\. \n*Required*: No \n*Type*: [Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-attribute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attribute" }, "Metric": { - "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Metric" + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Metric", + "markdownDescription": "Specifies an asset metric property\\. A metric contains a mathematical expression that uses aggregate functions to process all input data points over a time interval and output a single data point, such as to calculate the average hourly temperature\\. \nThis is required if the `TypeName` is `Metric`\\. \n*Required*: No \n*Type*: [Metric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metric" }, "Transform": { - "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Transform" + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Transform", + "markdownDescription": "Specifies an asset transform property\\. A transform contains a mathematical expression that maps a property's data points from one form to another, such as a unit conversion from Celsius to Fahrenheit\\. \nThis is required if the `TypeName` is `Transform`\\. \n*Required*: No \n*Type*: [Transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-transform.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Transform" }, "TypeName": { + "markdownDescription": "The type of property type, which can be one of `Attribute`, `Measurement`, `Metric`, or `Transform`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TypeName", "type": "string" } }, @@ -85312,12 +103838,16 @@ "additionalProperties": false, "properties": { "Expression": { + "markdownDescription": "The mathematical expression that defines the transformation function\\. You can specify up to 10 variables per expression\\. You can specify up to 10 functions per expression\\. \nFor more information, see [Quotas](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Expression", "type": "string" }, "Variables": { "items": { "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.ExpressionVariable" }, + "markdownDescription": "The list of variables used in the expression\\. \n*Required*: Yes \n*Type*: List of [ExpressionVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-expressionvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Variables", "type": "array" } }, @@ -85331,9 +103861,13 @@ "additionalProperties": false, "properties": { "Interval": { + "markdownDescription": "The time interval for the tumbling window\\. The interval time must be between 1 minute and 1 week\\. \n AWS IoT SiteWise computes the `1w` interval the end of Sunday at midnight each week \\(UTC\\), the `1d` interval at the end of each day at midnight \\(UTC\\), the `1h` interval at the end of each hour, and so on\\. \nWhen AWS IoT SiteWise aggregates data points for metric computations, the start of each interval is exclusive and the end of each interval is inclusive\\. AWS IoT SiteWise places the computed data point at the end of the interval\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Interval", "type": "string" }, "Offset": { + "markdownDescription": "The offset for the tumbling window\\. The `offset` parameter accepts the following: \n+ The offset time\\.", + "title": "Offset", "type": "string" } }, @@ -85346,9 +103880,13 @@ "additionalProperties": false, "properties": { "HierarchyLogicalId": { + "markdownDescription": "The `LogicalID` of the hierarchy to query for the `PropertyLogicalID`\\. \nYou use a `hierarchyLogicalID` instead of a model ID because you can have several hierarchies using the same model and therefore the same property\\. For example, you might have separately grouped assets that come from the same asset model\\. For more information, see [Defining relationships between assets](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HierarchyLogicalId", "type": "string" }, "PropertyLogicalId": { + "markdownDescription": "The `LogicalID` of the property to use as the variable\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropertyLogicalId", "type": "string" } }, @@ -85393,21 +103931,31 @@ "additionalProperties": false, "properties": { "DashboardDefinition": { + "markdownDescription": "The dashboard definition specified in a JSON literal\\. For detailed information, see [Creating dashboards \\(CLI\\)](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DashboardDefinition", "type": "string" }, "DashboardDescription": { + "markdownDescription": "A description for the dashboard\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DashboardDescription", "type": "string" }, "DashboardName": { + "markdownDescription": "A friendly name for the dashboard\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DashboardName", "type": "string" }, "ProjectId": { + "markdownDescription": "The ID of the project in which to create the dashboard\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProjectId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of key\\-value pairs that contain metadata for the dashboard\\. For more information, see [Tagging your AWS IoT SiteWise resources](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -85478,18 +104026,26 @@ "items": { "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.GatewayCapabilitySummary" }, + "markdownDescription": "A list of gateway capability summaries that each contain a namespace and status\\. Each gateway capability defines data sources for the gateway\\. To retrieve a capability configuration's definition, use [DescribeGatewayCapabilityConfiguration](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeGatewayCapabilityConfiguration.html)\\. \n*Required*: No \n*Type*: List of [GatewayCapabilitySummary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewaycapabilitysummary.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GatewayCapabilitySummaries", "type": "array" }, "GatewayName": { + "markdownDescription": "A unique, friendly name for the gateway\\. \nThe maximum length is 256 characters with the pattern `[^\\u0000-\\u001F\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GatewayName", "type": "string" }, "GatewayPlatform": { - "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.GatewayPlatform" + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.GatewayPlatform", + "markdownDescription": "The gateway's platform\\. You can only specify one platform in a gateway\\. \n*Required*: Yes \n*Type*: [GatewayPlatform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewayplatform.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GatewayPlatform" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of key\\-value pairs that contain metadata for the gateway\\. For more information, see [Tagging your AWS IoT SiteWise resources](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -85524,9 +104080,13 @@ "additionalProperties": false, "properties": { "CapabilityConfiguration": { + "markdownDescription": "The JSON document that defines the configuration for the gateway capability\\. For more information, see [Configuring data sources \\(CLI\\)](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/configure-sources.html#configure-source-cli) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapabilityConfiguration", "type": "string" }, "CapabilityNamespace": { + "markdownDescription": "The namespace of the capability configuration\\. For example, if you configure OPC\\-UA sources from the AWS IoT SiteWise console, your OPC\\-UA capability configuration has the namespace `iotsitewise:opcuacollector:version`, where `version` is a number such as `1`\\. \nThe maximum length is 512 characters with the pattern `^[a-zA-Z]+:[a-zA-Z]+:[0-9]+$`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapabilityNamespace", "type": "string" } }, @@ -85539,10 +104099,14 @@ "additionalProperties": false, "properties": { "Greengrass": { - "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.Greengrass" + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.Greengrass", + "markdownDescription": "A gateway that runs on AWS IoT Greengrass\\. \n*Required*: No \n*Type*: [Greengrass](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-greengrass.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Greengrass" }, "GreengrassV2": { - "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.GreengrassV2" + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.GreengrassV2", + "markdownDescription": "A gateway that runs on AWS IoT Greengrass V2\\. \n*Required*: No \n*Type*: [GreengrassV2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-greengrassv2.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GreengrassV2" } }, "type": "object" @@ -85551,6 +104115,8 @@ "additionalProperties": false, "properties": { "GroupArn": { + "markdownDescription": "The [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the Greengrass group\\. For more information about how to find a group's ARN, see [ListGroups](https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html) and [GetGroup](https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html) in the *AWS IoT Greengrass API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupArn", "type": "string" } }, @@ -85563,6 +104129,8 @@ "additionalProperties": false, "properties": { "CoreDeviceThingName": { + "markdownDescription": "The name of the AWS IoT thing for your AWS IoT Greengrass V2 core device\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CoreDeviceThingName", "type": "string" } }, @@ -85607,30 +104175,46 @@ "additionalProperties": false, "properties": { "Alarms": { - "$ref": "#/definitions/AWS::IoTSiteWise::Portal.Alarms" + "$ref": "#/definitions/AWS::IoTSiteWise::Portal.Alarms", + "markdownDescription": "Contains the configuration information of an alarm created in an AWS IoT SiteWise Monitor portal\\. You can use the alarm to monitor an asset property and get notified when the asset property value is outside a specified range\\. For more information, see [Monitoring with alarms](https://docs.aws.amazon.com/iot-sitewise/latest/appguide/monitor-alarms.html) in the * AWS IoT SiteWise Application Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alarms" }, "NotificationSenderEmail": { + "markdownDescription": "The email address that sends alarm notifications\\. \nIf you use the [AWS IoT Events managed Lambda function](https://docs.aws.amazon.com/iotevents/latest/developerguide/lambda-support.html) to manage your emails, you must [verify the sender email address in Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-email-addresses.html)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationSenderEmail", "type": "string" }, "PortalAuthMode": { + "markdownDescription": "The service to use to authenticate users to the portal\\. Choose from the following options: \n+ `SSO` \u2013 The portal uses AWS Single Sign\\-On to authenticate users and manage user permissions\\. Before you can create a portal that uses AWS SSO, you must enable AWS SSO\\. For more information, see [Enabling AWS SSO](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso) in the *AWS IoT SiteWise User Guide*\\. This option is only available in AWS Regions other than the China Regions\\.\n+ `IAM` \u2013 The portal uses AWS Identity and Access Management \\(IAM\\) to authenticate users and manage user permissions\\.\nYou can't change this value after you create a portal\\. \nDefault: `SSO` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortalAuthMode", "type": "string" }, "PortalContactEmail": { + "markdownDescription": "The AWS administrator's contact email address\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortalContactEmail", "type": "string" }, "PortalDescription": { + "markdownDescription": "A description for the portal\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortalDescription", "type": "string" }, "PortalName": { + "markdownDescription": "A friendly name for the portal\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortalName", "type": "string" }, "RoleArn": { + "markdownDescription": "The [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf\\. For more information, see [Using service roles for AWS IoT SiteWise Monitor](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of key\\-value pairs that contain metadata for the portal\\. For more information, see [Tagging your AWS IoT SiteWise resources](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -85713,21 +104297,31 @@ "items": { "type": "string" }, + "markdownDescription": "A list that contains the IDs of each asset associated with the project\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetIds", "type": "array" }, "PortalId": { + "markdownDescription": "The ID of the portal in which to create the project\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortalId", "type": "string" }, "ProjectDescription": { + "markdownDescription": "A description for the project\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProjectDescription", "type": "string" }, "ProjectName": { + "markdownDescription": "A friendly name for the project\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProjectName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of key\\-value pairs that contain metadata for the project\\. For more information, see [Tagging your AWS IoT SiteWise resources](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -85794,10 +104388,14 @@ "additionalProperties": false, "properties": { "CompatibleNamespaceVersion": { + "markdownDescription": "The version of the user's namespace against which the workflow was validated\\. Use this value in your system instance\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CompatibleNamespaceVersion", "type": "number" }, "Definition": { - "$ref": "#/definitions/AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument" + "$ref": "#/definitions/AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument", + "markdownDescription": "A workflow's definition document\\. \n*Required*: Yes \n*Type*: [DefinitionDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotthingsgraph-flowtemplate-definitiondocument.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Definition" } }, "required": [ @@ -85830,9 +104428,13 @@ "additionalProperties": false, "properties": { "Language": { + "markdownDescription": "The language used to define the entity\\. `GRAPHQL` is the only valid value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Language", "type": "string" }, "Text": { + "markdownDescription": "The GraphQL text that defines the entity\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Text", "type": "string" } }, @@ -86778,24 +105380,36 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the new resource\\. Maximum length is 2048 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Expression": { + "markdownDescription": "The rule name to send messages to\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Expression", "type": "string" }, "ExpressionType": { + "markdownDescription": "The type of value in `Expression`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `MqttTopic | RuleName` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExpressionType", "type": "string" }, "Name": { + "markdownDescription": "The name of the new resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9-_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the IAM Role that authorizes the destination\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -86864,15 +105478,21 @@ "additionalProperties": false, "properties": { "LoRaWAN": { - "$ref": "#/definitions/AWS::IoTWireless::DeviceProfile.LoRaWANDeviceProfile" + "$ref": "#/definitions/AWS::IoTWireless::DeviceProfile.LoRaWANDeviceProfile", + "markdownDescription": "LoRaWAN device profile object\\. \n*Required*: No \n*Type*: [LoRaWANDeviceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-deviceprofile-lorawandeviceprofile.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoRaWAN" }, "Name": { + "markdownDescription": "The name of the new resource\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -86902,9 +105522,13 @@ "additionalProperties": false, "properties": { "ClassBTimeout": { + "markdownDescription": "The ClassBTimeout value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClassBTimeout", "type": "number" }, "ClassCTimeout": { + "markdownDescription": "The ClassCTimeout value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClassCTimeout", "type": "number" }, "FactoryPresetFreqsList": { @@ -86914,27 +105538,43 @@ "type": "array" }, "MacVersion": { + "markdownDescription": "The MAC version \\(such as OTAA 1\\.1 or OTAA 1\\.0\\.3\\) to use with this device profile\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MacVersion", "type": "string" }, "MaxDutyCycle": { + "markdownDescription": "The MaxDutyCycle value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxDutyCycle", "type": "number" }, "MaxEirp": { + "markdownDescription": "The MaxEIRP value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `15` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxEirp", "type": "number" }, "PingSlotDr": { + "markdownDescription": "The PingSlotDR value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `15` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PingSlotDr", "type": "number" }, "PingSlotFreq": { + "markdownDescription": "The PingSlotFreq value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1000000` \n*Maximum*: `16700000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PingSlotFreq", "type": "number" }, "PingSlotPeriod": { + "markdownDescription": "The PingSlotPeriod value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `128` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PingSlotPeriod", "type": "number" }, "RegParamsRevision": { + "markdownDescription": "The version of regional parameters\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegParamsRevision", "type": "string" }, "RfRegion": { + "markdownDescription": "The frequency band \\(RFRegion\\) value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RfRegion", "type": "string" }, "RxDataRate2": { @@ -86950,15 +105590,23 @@ "type": "number" }, "Supports32BitFCnt": { + "markdownDescription": "The Supports32BitFCnt value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Supports32BitFCnt", "type": "boolean" }, "SupportsClassB": { + "markdownDescription": "The SupportsClassB value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SupportsClassB", "type": "boolean" }, "SupportsClassC": { + "markdownDescription": "The SupportsClassC value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SupportsClassC", "type": "boolean" }, "SupportsJoin": { + "markdownDescription": "The SupportsJoin value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SupportsJoin", "type": "boolean" } }, @@ -87000,36 +105648,56 @@ "additionalProperties": false, "properties": { "AssociateMulticastGroup": { + "markdownDescription": "The ID of the multicast group to associate with a FUOTA task\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociateMulticastGroup", "type": "string" }, "AssociateWirelessDevice": { + "markdownDescription": "The ID of the wireless device to associate with a multicast group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociateWirelessDevice", "type": "string" }, "Description": { + "markdownDescription": "The description of the new resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DisassociateMulticastGroup": { + "markdownDescription": "The ID of the multicast group to disassociate from a FUOTA task\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisassociateMulticastGroup", "type": "string" }, "DisassociateWirelessDevice": { + "markdownDescription": "The ID of the wireless device to disassociate from a FUOTA task\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisassociateWirelessDevice", "type": "string" }, "FirmwareUpdateImage": { + "markdownDescription": "The S3 URI points to a firmware update image that is to be used with a FUOTA task\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FirmwareUpdateImage", "type": "string" }, "FirmwareUpdateRole": { + "markdownDescription": "The firmware update role that is to be used with a FUOTA task\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FirmwareUpdateRole", "type": "string" }, "LoRaWAN": { - "$ref": "#/definitions/AWS::IoTWireless::FuotaTask.LoRaWAN" + "$ref": "#/definitions/AWS::IoTWireless::FuotaTask.LoRaWAN", + "markdownDescription": "The LoRaWAN information used with a FUOTA task\\. \n*Required*: Yes \n*Type*: [LoRaWAN](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-fuotatask-lorawan.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoRaWAN" }, "Name": { + "markdownDescription": "The name of a FUOTA task\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -87065,9 +105733,13 @@ "additionalProperties": false, "properties": { "RfRegion": { + "markdownDescription": "The frequency band \\(RFRegion\\) value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RfRegion", "type": "string" }, "StartTime": { + "markdownDescription": "Start time of a FUOTA task\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartTime", "type": "string" } }, @@ -87112,24 +105784,36 @@ "additionalProperties": false, "properties": { "AssociateWirelessDevice": { + "markdownDescription": "The ID of the wireless device to associate with a multicast group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociateWirelessDevice", "type": "string" }, "Description": { + "markdownDescription": "The description of the multicast group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DisassociateWirelessDevice": { + "markdownDescription": "The ID of the wireless device to disassociate from a multicast group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisassociateWirelessDevice", "type": "string" }, "LoRaWAN": { - "$ref": "#/definitions/AWS::IoTWireless::MulticastGroup.LoRaWAN" + "$ref": "#/definitions/AWS::IoTWireless::MulticastGroup.LoRaWAN", + "markdownDescription": "The LoRaWAN information that is to be used with the multicast group\\. \n*Required*: Yes \n*Type*: [LoRaWAN](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-multicastgroup-lorawan.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoRaWAN" }, "Name": { + "markdownDescription": "The name of the multicast group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -87163,15 +105847,23 @@ "additionalProperties": false, "properties": { "DlClass": { + "markdownDescription": "DlClass for LoRaWAN\\. Valid values are ClassB and ClassC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DlClass", "type": "string" }, "NumberOfDevicesInGroup": { + "markdownDescription": "Number of devices that are associated to the multicast group\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfDevicesInGroup", "type": "number" }, "NumberOfDevicesRequested": { + "markdownDescription": "Number of devices that are requested to be associated with the multicast group\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfDevicesRequested", "type": "number" }, "RfRegion": { + "markdownDescription": "The frequency band \\(RFRegion\\) value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RfRegion", "type": "string" } }, @@ -87321,13 +106013,17 @@ "type": "boolean" }, "PartnerAccountId": { + "markdownDescription": "The ID of the partner account to update\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PartnerAccountId", "type": "string" }, "PartnerType": { "type": "string" }, "Sidewalk": { - "$ref": "#/definitions/AWS::IoTWireless::PartnerAccount.SidewalkAccountInfo" + "$ref": "#/definitions/AWS::IoTWireless::PartnerAccount.SidewalkAccountInfo", + "markdownDescription": "The Sidewalk account credentials\\. \n*Required*: No \n*Type*: [SidewalkAccountInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-partneraccount-sidewalkaccountinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sidewalk" }, "SidewalkResponse": { "$ref": "#/definitions/AWS::IoTWireless::PartnerAccount.SidewalkAccountInfoWithFingerprint" @@ -87339,6 +106035,8 @@ "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -87368,6 +106066,8 @@ "additionalProperties": false, "properties": { "AppServerPrivateKey": { + "markdownDescription": "The Sidewalk application server private key\\. The application server private key is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the application server private key by storing the value in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Pattern*: `[a-fA-F0-9]{64}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppServerPrivateKey", "type": "string" } }, @@ -87395,6 +106095,8 @@ "additionalProperties": false, "properties": { "AppServerPrivateKey": { + "markdownDescription": "The new Sidewalk application server private key\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Pattern*: `[a-fA-F0-9]{64}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppServerPrivateKey", "type": "string" } }, @@ -87436,15 +106138,21 @@ "additionalProperties": false, "properties": { "LoRaWAN": { - "$ref": "#/definitions/AWS::IoTWireless::ServiceProfile.LoRaWANServiceProfile" + "$ref": "#/definitions/AWS::IoTWireless::ServiceProfile.LoRaWANServiceProfile", + "markdownDescription": "LoRaWAN service profile object\\. \n*Required*: No \n*Type*: [LoRaWANServiceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoRaWAN" }, "Name": { + "markdownDescription": "The name of the new resource\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -87474,60 +106182,98 @@ "additionalProperties": false, "properties": { "AddGwMetadata": { + "markdownDescription": "The AddGWMetaData value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddGwMetadata", "type": "boolean" }, "ChannelMask": { + "markdownDescription": "The ChannelMask value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelMask", "type": "string" }, "DevStatusReqFreq": { + "markdownDescription": "The DevStatusReqFreq value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DevStatusReqFreq", "type": "number" }, "DlBucketSize": { + "markdownDescription": "The DLBucketSize value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DlBucketSize", "type": "number" }, "DlRate": { + "markdownDescription": "The DLRate value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DlRate", "type": "number" }, "DlRatePolicy": { + "markdownDescription": "The DLRatePolicy value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DlRatePolicy", "type": "string" }, "DrMax": { + "markdownDescription": "The DRMax value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `15` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DrMax", "type": "number" }, "DrMin": { + "markdownDescription": "The DRMin value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `15` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DrMin", "type": "number" }, "HrAllowed": { + "markdownDescription": "The HRAllowed value that describes whether handover roaming is allowed\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HrAllowed", "type": "boolean" }, "MinGwDiversity": { + "markdownDescription": "The MinGwDiversity value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinGwDiversity", "type": "number" }, "NwkGeoLoc": { + "markdownDescription": "The NwkGeoLoc value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NwkGeoLoc", "type": "boolean" }, "PrAllowed": { + "markdownDescription": "The PRAllowed value that describes whether passive roaming is allowed\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrAllowed", "type": "boolean" }, "RaAllowed": { + "markdownDescription": "The RAAllowed value that describes whether roaming activation is allowed\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RaAllowed", "type": "boolean" }, "ReportDevStatusBattery": { + "markdownDescription": "The ReportDevStatusBattery value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReportDevStatusBattery", "type": "boolean" }, "ReportDevStatusMargin": { + "markdownDescription": "The ReportDevStatusMargin value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReportDevStatusMargin", "type": "boolean" }, "TargetPer": { + "markdownDescription": "The TargetPer value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetPer", "type": "number" }, "UlBucketSize": { + "markdownDescription": "The UlBucketSize value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UlBucketSize", "type": "number" }, "UlRate": { + "markdownDescription": "The ULRate value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UlRate", "type": "number" }, "UlRatePolicy": { + "markdownDescription": "The ULRatePolicy value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UlRatePolicy", "type": "string" } }, @@ -87569,25 +106315,33 @@ "additionalProperties": false, "properties": { "AutoCreateTasks": { + "markdownDescription": "Whether to automatically create tasks using this task definition for all gateways with the specified current version\\. If `false`, the task must me created by calling `CreateWirelessGatewayTask`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoCreateTasks", "type": "boolean" }, "LoRaWANUpdateGatewayTaskEntry": { "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANUpdateGatewayTaskEntry" }, "Name": { + "markdownDescription": "The name of the new resource\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TaskDefinitionType": { "type": "string" }, "Update": { - "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.UpdateWirelessGatewayTaskCreate" + "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.UpdateWirelessGatewayTaskCreate", + "markdownDescription": "Information about the gateways to update\\. \n*Required*: No \n*Type*: [UpdateWirelessGatewayTaskCreate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-updatewirelessgatewaytaskcreate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Update" } }, "required": [ @@ -87620,12 +106374,18 @@ "additionalProperties": false, "properties": { "Model": { + "markdownDescription": "The model number of the wireless gateway\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Model", "type": "string" }, "PackageVersion": { + "markdownDescription": "The version of the wireless gateway firmware\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PackageVersion", "type": "string" }, "Station": { + "markdownDescription": "The basic station version of the wireless gateway\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Station", "type": "string" } }, @@ -87635,16 +106395,24 @@ "additionalProperties": false, "properties": { "CurrentVersion": { - "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion" + "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion", + "markdownDescription": "The version of the gateways that should receive the update\\. \n*Required*: No \n*Type*: [LoRaWANGatewayVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawangatewayversion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CurrentVersion" }, "SigKeyCrc": { + "markdownDescription": "The CRC of the signature private key to check\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SigKeyCrc", "type": "number" }, "UpdateSignature": { + "markdownDescription": "The signature used to verify the update firmware\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdateSignature", "type": "string" }, "UpdateVersion": { - "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion" + "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion", + "markdownDescription": "The firmware version to update the gateway to\\. \n*Required*: No \n*Type*: [LoRaWANGatewayVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawangatewayversion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdateVersion" } }, "type": "object" @@ -87653,10 +106421,14 @@ "additionalProperties": false, "properties": { "CurrentVersion": { - "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion" + "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion", + "markdownDescription": "The version of the gateways that should receive the update\\. \n*Required*: No \n*Type*: [LoRaWANGatewayVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawangatewayversion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CurrentVersion" }, "UpdateVersion": { - "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion" + "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion", + "markdownDescription": "The firmware version to update the gateway to\\. \n*Required*: No \n*Type*: [LoRaWANGatewayVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawangatewayversion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdateVersion" } }, "type": "object" @@ -87665,12 +106437,18 @@ "additionalProperties": false, "properties": { "LoRaWAN": { - "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANUpdateGatewayTaskCreate" + "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANUpdateGatewayTaskCreate", + "markdownDescription": "The properties that relate to the LoRaWAN wireless gateway\\. \n*Required*: No \n*Type*: [LoRaWANUpdateGatewayTaskCreate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawanupdategatewaytaskcreate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoRaWAN" }, "UpdateDataRole": { + "markdownDescription": "The IAM role used to read data from the S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdateDataRole", "type": "string" }, "UpdateDataSource": { + "markdownDescription": "The link to the S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdateDataSource", "type": "string" } }, @@ -87712,30 +106490,46 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the new resource\\. Maximum length is 2048\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DestinationName": { + "markdownDescription": "The name of the destination to assign to the new wireless device\\. Can have only have alphanumeric, \\- \\(hyphen\\) and \\_ \\(underscore\\) characters and it can't have any spaces\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9-_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationName", "type": "string" }, "LastUplinkReceivedAt": { + "markdownDescription": "The date and time when the most recent uplink was received\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUplinkReceivedAt", "type": "string" }, "LoRaWAN": { - "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.LoRaWANDevice" + "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.LoRaWANDevice", + "markdownDescription": "The device configuration information to use to create the wireless device\\. Must be at least one of OtaaV10x, OtaaV11, AbpV11, or AbpV10x\\. \n*Required*: No \n*Type*: [LoRaWANDevice](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-lorawandevice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoRaWAN" }, "Name": { + "markdownDescription": "The name of the new resource\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "ThingArn": { + "markdownDescription": "The ARN of the thing to associate with the wireless device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThingArn", "type": "string" }, "Type": { + "markdownDescription": "The wireless device type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `LoRaWAN | Sidewalk` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -87770,10 +106564,14 @@ "additionalProperties": false, "properties": { "DevAddr": { + "markdownDescription": "The DevAddr value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{8}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DevAddr", "type": "string" }, "SessionKeys": { - "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.SessionKeysAbpV10x" + "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.SessionKeysAbpV10x", + "markdownDescription": "Session keys for ABP v1\\.0\\.x \n*Required*: Yes \n*Type*: [SessionKeysAbpV10x](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-sessionkeysabpv10x.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionKeys" } }, "required": [ @@ -87786,10 +106584,14 @@ "additionalProperties": false, "properties": { "DevAddr": { + "markdownDescription": "The DevAddr value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{8}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DevAddr", "type": "string" }, "SessionKeys": { - "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.SessionKeysAbpV11" + "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.SessionKeysAbpV11", + "markdownDescription": "Session keys for ABP v1\\.1\\. \n*Required*: Yes \n*Type*: [SessionKeysAbpV11](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-sessionkeysabpv11.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionKeys" } }, "required": [ @@ -87802,24 +106604,38 @@ "additionalProperties": false, "properties": { "AbpV10x": { - "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.AbpV10x" + "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.AbpV10x", + "markdownDescription": "LoRaWAN object for create APIs\\. \n*Required*: No \n*Type*: [AbpV10x](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-abpv10x.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AbpV10x" }, "AbpV11": { - "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.AbpV11" + "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.AbpV11", + "markdownDescription": "ABP device object for create APIs for v1\\.1\\. \n*Required*: No \n*Type*: [AbpV11](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-abpv11.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AbpV11" }, "DevEui": { + "markdownDescription": "The DevEUI value\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{16}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DevEui", "type": "string" }, "DeviceProfileId": { + "markdownDescription": "The ID of the device profile for the new wireless device\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceProfileId", "type": "string" }, "OtaaV10x": { - "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.OtaaV10x" + "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.OtaaV10x", + "markdownDescription": "OTAA device object for create APIs for v1\\.0\\.x \n*Required*: No \n*Type*: [OtaaV10x](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-otaav10x.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OtaaV10x" }, "OtaaV11": { - "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.OtaaV11" + "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.OtaaV11", + "markdownDescription": "OTAA device object for v1\\.1 for create APIs\\. \n*Required*: No \n*Type*: [OtaaV11](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-otaav11.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OtaaV11" }, "ServiceProfileId": { + "markdownDescription": "The ID of the service profile\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceProfileId", "type": "string" } }, @@ -87829,9 +106645,13 @@ "additionalProperties": false, "properties": { "AppEui": { + "markdownDescription": "The AppEUI value, with pattern of `[a-fA-F0-9]{16}`\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{16}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppEui", "type": "string" }, "AppKey": { + "markdownDescription": "The AppKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the AppKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppKey", "type": "string" } }, @@ -87845,12 +106665,18 @@ "additionalProperties": false, "properties": { "AppKey": { + "markdownDescription": "The AppKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the AppKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppKey", "type": "string" }, "JoinEui": { + "markdownDescription": "The JoinEUI value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{16}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JoinEui", "type": "string" }, "NwkKey": { + "markdownDescription": "The NwkKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the NwkKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NwkKey", "type": "string" } }, @@ -87865,9 +106691,13 @@ "additionalProperties": false, "properties": { "AppSKey": { + "markdownDescription": "The AppSKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the AppSKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppSKey", "type": "string" }, "NwkSKey": { + "markdownDescription": "The NwkSKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the NwkSKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NwkSKey", "type": "string" } }, @@ -87881,15 +106711,23 @@ "additionalProperties": false, "properties": { "AppSKey": { + "markdownDescription": "The AppSKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the AppSKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppSKey", "type": "string" }, "FNwkSIntKey": { + "markdownDescription": "The FNwkSIntKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the FNwkSIntKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FNwkSIntKey", "type": "string" }, "NwkSEncKey": { + "markdownDescription": "The NwkSEncKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the NwkSEncKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NwkSEncKey", "type": "string" }, "SNwkSIntKey": { + "markdownDescription": "The SNwkSIntKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the SNwkSIntKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SNwkSIntKey", "type": "string" } }, @@ -87937,24 +106775,36 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the new resource\\. The maximum length is 2048 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "LastUplinkReceivedAt": { + "markdownDescription": "The date and time when the most recent uplink was received\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUplinkReceivedAt", "type": "string" }, "LoRaWAN": { - "$ref": "#/definitions/AWS::IoTWireless::WirelessGateway.LoRaWANGateway" + "$ref": "#/definitions/AWS::IoTWireless::WirelessGateway.LoRaWANGateway", + "markdownDescription": "The gateway configuration information to use to create the wireless gateway\\. \n*Required*: Yes \n*Type*: [LoRaWANGateway](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessgateway-lorawangateway.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoRaWAN" }, "Name": { + "markdownDescription": "The name of the new resource\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "ThingArn": { + "markdownDescription": "The ARN of the thing to associate with the wireless gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThingArn", "type": "string" }, "ThingName": { @@ -87991,9 +106841,13 @@ "additionalProperties": false, "properties": { "GatewayEui": { + "markdownDescription": "The gateway's EUI value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^(([0-9A-Fa-f]{2}-){7}|([0-9A-Fa-f]{2}:){7}|([0-9A-Fa-f]{2}\\s){7}|([0-9A-Fa-f]{2}){7})([0-9A-Fa-f]{2})$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GatewayEui", "type": "string" }, "RfRegion": { + "markdownDescription": "The frequency band \\(RFRegion\\) value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RfRegion", "type": "string" } }, @@ -88039,9 +106893,13 @@ "additionalProperties": false, "properties": { "AliasName": { + "markdownDescription": "Specifies the alias name\\. This value must begin with `alias/` followed by a name, such as `alias/ExampleAlias`\\. \nIf you change the value of a `Replacement` property, such as `AliasName`, the existing alias is deleted and a new alias is created for the specified KMS key\\. This change can disrupt applications that use the alias\\. It can also allow or deny access to a KMS key affected by attribute\\-based access control \\(ABAC\\)\\.\nThe alias must be string of 1\\-256 characters\\. It can contain only alphanumeric characters, forward slashes \\(/\\), underscores \\(\\_\\), and dashes \\(\\-\\)\\. The alias name cannot begin with `alias/aws/`\\. The `alias/aws/` prefix is reserved for [AWS managed keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk)\\. \n*Pattern*: `alias/^[a-zA-Z0-9/_-]+$` \n*Minimum*: `1` \n*Maximum*: `256` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AliasName", "type": "string" }, "TargetKeyId": { + "markdownDescription": "Associates the alias with the specified [customer managed key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)\\. The KMS key must be in the same AWS account and Region\\. \nA valid key ID is required\\. If you supply a null or empty string value, this operation returns an error\\. \nFor help finding the key ID and ARN, see [Finding the key ID and ARN](https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html#find-cmk-id-arn) in the *AWS Key Management Service Developer Guide*\\. \nSpecify the key ID or the key ARN of the KMS key\\. \nFor example: \n+ Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` \n+ Key ARN: `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` \nTo get the key ID and key ARN for a KMS key, use [ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html) or [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetKeyId", "type": "string" } }, @@ -88108,33 +106966,51 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the KMS key\\. Use a description that helps you to distinguish this KMS key from others in the account, such as its intended use\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `8192` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "EnableKeyRotation": { + "markdownDescription": "Enables automatic rotation of the key material for the specified KMS key\\. By default, automatic key rotation is not enabled\\. \nAWS KMS does not support automatic key rotation on asymmetric KMS keys\\. For asymmetric KMS keys, omit the `EnableKeyRotation` property or set it to `false`\\. \nWhen you enable automatic rotation, AWS KMS automatically creates new key material for the KMS key 365 days after the enable \\(or reenable\\) date and every 365 days thereafter\\. AWS KMS retains all key material until you delete the KMS key\\. For detailed information about automatic key rotation, see [Rotating KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) in the *AWS Key Management Service Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableKeyRotation", "type": "boolean" }, "Enabled": { + "markdownDescription": "Specifies whether the KMS key is enabled\\. Disabled KMS keys cannot be used in cryptographic operations\\. \nWhen `Enabled` is `true`, the *key state* of the KMS key is `Enabled`\\. When `Enabled` is `false`, the key state of the KMS key is `Disabled`\\. The default value is `true`\\. \nThe actual key state of the KMS key might be affected by actions taken outside of CloudFormation, such as running the [EnableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKey.html), [DisableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html), or [ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) operations\\. \nFor information about the key states of a KMS key, see [Key state: Effect on your KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the *AWS Key Management Service Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "KeyPolicy": { + "markdownDescription": "The key policy that authorizes use of the KMS key\\. The key policy must conform to the following rules\\. \n+ The key policy must allow the caller to make a subsequent [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) request on the KMS key\\. This reduces the risk that the KMS key becomes unmanageable\\. For more information, refer to the scenario in the [Default key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam) section of the * *AWS Key Management Service Developer Guide* *\\.\n+ Each statement in the key policy must contain one or more principals\\. The principals in the key policy must exist and be visible to AWS KMS\\. When you create a new AWS principal \\(for example, an IAM user or role\\), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to AWS KMS\\. For more information, see [Changes that I make are not always immediately visible](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency) in the *AWS Identity and Access Management User Guide*\\.\n+ The key policy size limit is 32 kilobytes \\(32768 bytes\\)\\.\nIf you are unsure of which policy to use, consider the *default key policy*\\. This is the key policy that AWS KMS applies to KMS keys that are created by using the CreateKey API with no specified key policy\\. It gives the AWS account that owns the key permission to perform all operations on the key\\. It also allows you write IAM policies to authorize access to the key\\. For details, see [Default key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default) in the *AWS Key Management Service Developer Guide*\\. \n*Minimum*: `1` \n*Maximum*: `32768` \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyPolicy", "type": "object" }, "KeySpec": { + "markdownDescription": "Specifies the type of KMS key to create\\. The default value, `SYMMETRIC_DEFAULT`, creates a KMS key with a 256\\-bit symmetric key for encryption and decryption\\. For help choosing a key spec for your KMS key, see [How to choose Your KMS key configuration](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html) in the *AWS Key Management Service Developer Guide*\\. \nThe `KeySpec` property determines whether the KMS key contains a symmetric key or an asymmetric key pair\\. It also determines the encryption algorithms or signing algorithms that the KMS key supports\\. You can't change the `KeySpec` after the KMS key is created\\. To further restrict the algorithms that can be used with the KMS key, use a condition key in its key policy or IAM policy\\. For more information, see [kms:EncryptionAlgorithm](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-algorithm) or [kms:Signing Algorithm](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-signing-algorithm) in the *AWS Key Management Service Developer Guide*\\. \nIf you change the `KeySpec` of an existing KMS key, the existing KMS key is scheduled for deletion and a new KMS key is created with the specified `KeySpec` value\\. While the scheduled deletion is pending, you can't use the existing KMS key\\. Unless you [cancel the scheduled deletion](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#deleting-keys-scheduling-key-deletion) of the KMS key outside of CloudFormation, all data encrypted under the existing KMS key becomes unrecoverable when the KMS key is deleted\\.\n[AWS services that are integrated with AWS KMS](http://aws.amazon.com/kms/features/#AWS_Service_Integration) use symmetric KMS keys to protect your data\\. These services do not support asymmetric KMS keys\\. For help determining whether a KMS key is symmetric or asymmetric, see [Identifying Symmetric and Asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html) in the *AWS Key Management Service Developer Guide*\\.\nAWS KMS supports the following key specs for KMS keys: \n+ Symmetric key \\(default\\)\n + `SYMMETRIC_DEFAULT` \\(AES\\-256\\-GCM\\)\n+ Asymmetric RSA key pairs\n + `RSA_2048`\n + `RSA_3072`\n + `RSA_4096`\n+ Asymmetric NIST\\-recommended elliptic curve key pairs\n + `ECC_NIST_P256` \\(secp256r1\\)\n + `ECC_NIST_P384` \\(secp384r1\\)\n + `ECC_NIST_P521` \\(secp521r1\\)\n+ Other asymmetric elliptic curve key pairs\n + `ECC_SECG_P256K1` \\(secp256k1\\), commonly used for cryptocurrencies\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeySpec", "type": "string" }, "KeyUsage": { + "markdownDescription": "Determines the [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) for which you can use the KMS key\\. The default value is `ENCRYPT_DECRYPT`\\. This property is required only for asymmetric KMS keys\\. You can't change the `KeyUsage` value after the KMS key is created\\. \nIf you change the `KeyUsage` of an existing KMS key, the existing KMS key is scheduled for deletion and a new KMS key is created with the specified `KeyUsage` value\\. While the scheduled deletion is pending, you can't use the existing KMS key\\. Unless you [cancel the scheduled deletion](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#deleting-keys-scheduling-key-deletion) of the KMS key outside of CloudFormation, all data encrypted under the existing KMS key becomes unrecoverable when the KMS key is deleted\\.\nSelect only one valid value\\. \n+ For symmetric KMS keys, omit the property or specify `ENCRYPT_DECRYPT`\\.\n+ For asymmetric KMS keys with RSA key material, specify `ENCRYPT_DECRYPT` or `SIGN_VERIFY`\\.\n+ For asymmetric KMS keys with ECC key material, specify `SIGN_VERIFY`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ENCRYPT_DECRYPT | SIGN_VERIFY` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyUsage", "type": "string" }, "MultiRegion": { + "markdownDescription": "Creates a multi\\-Region primary key that you can replicate in other AWS Regions\\. \nIf you change the `MultiRegion` property of an existing KMS key, the existing KMS key is scheduled for deletion and a new KMS key is created with the specified `Multi-Region` value\\. While the scheduled deletion is pending, you can't use the existing KMS key\\. Unless you [cancel the scheduled deletion](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#deleting-keys-scheduling-key-deletion) of the KMS key outside of CloudFormation, all data encrypted under the existing KMS key becomes unrecoverable when the KMS key is deleted\\.\nFor a multi\\-Region key, set to this property to `true`\\. For a single\\-Region key, omit this property or set it to `false`\\. The default value is `false`\\. \n*Multi\\-Region keys* are an AWS KMS feature that lets you create multiple interoperable KMS keys in different AWS Regions\\. Because these KMS keys have the same key ID, key material, and other metadata, you can use them to encrypt data in one AWS Region and decrypt it in a different AWS Region without making a cross\\-Region call or exposing the plaintext data\\. For more information, see [Multi\\-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in the *AWS Key Management Service Developer Guide*\\. \nYou can create a symmetric or asymmetric multi\\-Region key, and you can create a multi\\-Region key with imported key material\\. However, you cannot create a multi\\-Region key in a custom key store\\. \nTo create a replica of this primary key in a different AWS Region , create an [AWS::KMS::ReplicaKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html) resource in a CloudFormation stack in the replica Region\\. Specify the key ARN of this primary key\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MultiRegion", "type": "boolean" }, "PendingWindowInDays": { + "markdownDescription": "Specifies the number of days in the waiting period before AWS KMS deletes a KMS key that has been removed from a CloudFormation stack\\. Enter a value between 7 and 30 days\\. The default value is 30 days\\. \nWhen you remove a KMS key from a CloudFormation stack, AWS KMS schedules the KMS key for deletion and starts the mandatory waiting period\\. The `PendingWindowInDays` property determines the length of waiting period\\. During the waiting period, the key state of KMS key is `Pending Deletion` or `Pending Replica Deletion`, which prevents the KMS key from being used in cryptographic operations\\. When the waiting period expires, AWS KMS permanently deletes the KMS key\\. \nAWS KMS will not delete a [multi\\-Region primary key](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) that has replica keys\\. If you remove a multi\\-Region primary key from a CloudFormation stack, its key state changes to `PendingReplicaDeletion` so it cannot be replicated or used in cryptographic operations\\. This state can persist indefinitely\\. When the last of its replica keys is deleted, the key state of the primary key changes to `PendingDeletion` and the waiting period specified by `PendingWindowInDays` begins\\. When this waiting period expires, AWS KMS deletes the primary key\\. For details, see [Deleting multi\\-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html) in the *AWS Key Management Service Developer Guide*\\. \nYou cannot use a CloudFormation template to cancel deletion of the KMS key after you remove it from the stack, regardless of the waiting period\\. If you specify a KMS key in your template, even one with the same name, CloudFormation creates a new KMS key\\. To cancel deletion of a KMS key, use the AWS KMS console or the [CancelKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_CancelKeyDeletion.html) operation\\. \nFor information about the `Pending Deletion` and `Pending Replica Deletion` key states, see [Key state: Effect on your KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the *AWS Key Management Service Developer Guide*\\. For more information about deleting KMS keys, see the [ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) operation in the *AWS Key Management Service API Reference* and [Deleting KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) in the *AWS Key Management Service Developer Guide*\\. \n*Minimum*: 7 \n*Maximum*: 30 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PendingWindowInDays", "type": "number" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Assigns one or more tags to the replica key\\. \nTagging or untagging a KMS key can allow or deny permission to the KMS key\\. For details, see [ABAC for AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the *AWS Key Management Service Developer Guide*\\.\nFor information about tags in AWS KMS, see [Tagging keys](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html) in the *AWS Key Management Service Developer Guide*\\. For information about tags in CloudFormation, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -88200,24 +107076,36 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the KMS key\\. \nThe default value is an empty string \\(no description\\)\\. \nThe description is not a shared property of multi\\-Region keys\\. You can specify the same description or a different description for each key in a set of related multi\\-Region keys\\. AWS Key Management Service does not synchronize this property\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `8192` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Enabled": { + "markdownDescription": "Specifies whether the replica key is enabled\\. Disabled KMS keys cannot be used in cryptographic operations\\. \nWhen `Enabled` is `true`, the *key state* of the KMS key is `Enabled`\\. When `Enabled` is `false`, the key state of the KMS key is `Disabled`\\. The default value is `true`\\. \nThe actual key state of the replica might be affected by actions taken outside of CloudFormation, such as running the [EnableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKey.html), [DisableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html), or [ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) operations\\. Also, while the replica key is being created, its key state is `Creating`\\. When the process is complete, the key state of the replica key changes to `Enabled`\\. \nFor information about the key states of a KMS key, see [Key state: Effect on your KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the *AWS Key Management Service Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "KeyPolicy": { + "markdownDescription": "The key policy that authorizes use of the replica key\\. \nThe key policy is not a shared property of multi\\-Region keys\\. You can specify the same key policy or a different key policy for each key in a set of related multi\\-Region keys\\. AWS KMS does not synchronize this property\\. \nThe key policy must conform to the following rules\\. \n+ The key policy must give the caller [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) permission on the KMS key\\. This reduces the risk that the KMS key becomes unmanageable\\. For more information, refer to the scenario in the [Default key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam) section of the * *AWS Key Management Service Developer Guide* *\\.\n+ Each statement in the key policy must contain one or more principals\\. The principals in the key policy must exist and be visible to AWS KMS\\. When you create a new AWSprincipal \\(for example, an IAM user or role\\), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to AWS KMS\\. For more information, see [Changes that I make are not always immediately visible](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency) in the *AWS Identity and Access Management User Guide*\\.\n+ The key policy size limit is 32 kilobytes \\(32768 bytes\\)\\.\n*Minimum*: `1` \n*Maximum*: `32768` \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyPolicy", "type": "object" }, "PendingWindowInDays": { + "markdownDescription": "Specifies the number of days in the waiting period before AWS KMS deletes a replica key that has been removed from a CloudFormation stack\\. Enter a value between 7 and 30 days\\. The default value is 30 days\\. \nWhen you remove a replica key from a CloudFormation stack, AWS KMS schedules the replica key for deletion and starts the mandatory waiting period\\. The `PendingWindowInDays` property determines the length of waiting period\\. During the waiting period, the key state of replica key is `Pending Deletion`, which prevents it from being used in cryptographic operations\\. When the waiting period expires, AWS KMS permanently deletes the replica key\\. \nYou cannot use a CloudFormation template to cancel deletion of the replica after you remove it from the stack, regardless of the waiting period\\. However, if you specify a replica key in your template that is based on the same primary key as the original replica key, CloudFormation creates a new replica key with the same key ID, key material, and other shared properties of the original replica key\\. This new replica key can decrypt ciphertext that was encrypted under the original replica key, or any related multi\\-Region key\\. \nFor detailed information about deleting multi\\-Region keys, see [Deleting multi\\-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html) in the *AWS Key Management Service Developer Guide*\\. \nFor information about the `PendingDeletion` key state, see [Key state: Effect on your KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the *AWS Key Management Service Developer Guide*\\. For more information about deleting KMS keys, see the [ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) operation in the *AWS Key Management Service API Reference* and [Deleting KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) in the *AWS Key Management Service Developer Guide*\\. \n*Minimum*: 7 \n*Maximum*: 30 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PendingWindowInDays", "type": "number" }, "PrimaryKeyArn": { + "markdownDescription": "Specifies the multi\\-Region primary key to replicate\\. The primary key must be in a different AWS Region of the same AWS partition\\. You can create only one replica of a given primary key in each AWS Region \\. \nIf you change the `PrimaryKeyArn` value of a replica key, the existing replica key is scheduled for deletion and a new replica key is created based on the specified primary key\\. While it is scheduled for deletion, the existing replica key becomes unusable\\. You can cancel the scheduled deletion of the key outside of CloudFormation\\. \nHowever, if you inadvertently delete a replica key, you can decrypt ciphertext encrypted by that replica key by using any related multi\\-Region key\\. If necessary, you can recreate the replica in the same Region after the previous one is completely deleted\\. For details, see [Deleting multi\\-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html) in the *AWS Key Management Service Developer Guide*\nSpecify the key ARN of an existing multi\\-Region primary key\\. For example, `arn:aws:kms:us-east-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrimaryKeyArn", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Assigns one or more tags to the replica key\\. \nTagging or untagging a KMS key can allow or deny permission to the KMS key\\. For details, see [ABAC for AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the *AWS Key Management Service Developer Guide*\\.\nTags are not a shared property of multi\\-Region keys\\. You can specify the same tags or different tags for each key in a set of related multi\\-Region keys\\. AWS KMS does not synchronize this property\\. \nEach tag consists of a tag key and a tag value\\. Both the tag key and the tag value are required, but the tag value can be an empty \\(null\\) string\\. You cannot have more than one tag on a KMS key with the same tag key\\. If you specify an existing tag key with a different tag value, AWS KMS replaces the current tag value with the specified one\\. \nWhen you assign tags to an AWSresource, AWSgenerates a cost allocation report with usage and costs aggregated by tags\\. Tags can also be used to control access to a KMS key\\. For details, see [Tagging keys](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -88284,49 +107172,73 @@ "additionalProperties": false, "properties": { "Capacity": { - "$ref": "#/definitions/AWS::KafkaConnect::Connector.Capacity" + "$ref": "#/definitions/AWS::KafkaConnect::Connector.Capacity", + "markdownDescription": "The connector's compute capacity settings\\. \n*Required*: Yes \n*Type*: [Capacity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-capacity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Capacity" }, "ConnectorConfiguration": { "additionalProperties": true, + "markdownDescription": "The configuration of the connector\\. \n*Required*: Yes \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "ConnectorConfiguration", "type": "object" }, "ConnectorDescription": { + "markdownDescription": "The description of the connector\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectorDescription", "type": "string" }, "ConnectorName": { + "markdownDescription": "The name of the connector\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectorName", "type": "string" }, "KafkaCluster": { - "$ref": "#/definitions/AWS::KafkaConnect::Connector.KafkaCluster" + "$ref": "#/definitions/AWS::KafkaConnect::Connector.KafkaCluster", + "markdownDescription": "The details of the Apache Kafka cluster to which the connector is connected\\. \n*Required*: Yes \n*Type*: [KafkaCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-kafkacluster.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KafkaCluster" }, "KafkaClusterClientAuthentication": { - "$ref": "#/definitions/AWS::KafkaConnect::Connector.KafkaClusterClientAuthentication" + "$ref": "#/definitions/AWS::KafkaConnect::Connector.KafkaClusterClientAuthentication", + "markdownDescription": "The type of client authentication used to connect to the Apache Kafka cluster\\. The value is NONE when no client authentication is used\\. \n*Required*: Yes \n*Type*: [KafkaClusterClientAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-kafkaclusterclientauthentication.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KafkaClusterClientAuthentication" }, "KafkaClusterEncryptionInTransit": { - "$ref": "#/definitions/AWS::KafkaConnect::Connector.KafkaClusterEncryptionInTransit" + "$ref": "#/definitions/AWS::KafkaConnect::Connector.KafkaClusterEncryptionInTransit", + "markdownDescription": "Details of encryption in transit to the Apache Kafka cluster\\. \n*Required*: Yes \n*Type*: [KafkaClusterEncryptionInTransit](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-kafkaclusterencryptionintransit.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KafkaClusterEncryptionInTransit" }, "KafkaConnectVersion": { + "markdownDescription": "The version of Kafka Connect\\. It has to be compatible with both the Apache Kafka cluster's version and the plugins\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KafkaConnectVersion", "type": "string" }, "LogDelivery": { - "$ref": "#/definitions/AWS::KafkaConnect::Connector.LogDelivery" + "$ref": "#/definitions/AWS::KafkaConnect::Connector.LogDelivery", + "markdownDescription": "The settings for delivering connector logs to Amazon CloudWatch Logs\\. \n*Required*: No \n*Type*: [LogDelivery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-logdelivery.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogDelivery" }, "Plugins": { "items": { "$ref": "#/definitions/AWS::KafkaConnect::Connector.Plugin" }, + "markdownDescription": "Specifies which plugins were used for this connector\\. \n*Required*: Yes \n*Type*: List of [Plugin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-plugin.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Plugins", "type": "array" }, "ServiceExecutionRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role used by the connector to access Amazon Web Services resources\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceExecutionRoleArn", "type": "string" }, "WorkerConfiguration": { - "$ref": "#/definitions/AWS::KafkaConnect::Connector.WorkerConfiguration" + "$ref": "#/definitions/AWS::KafkaConnect::Connector.WorkerConfiguration", + "markdownDescription": "The worker configurations that are in use with the connector\\. \n*Required*: No \n*Type*: [WorkerConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-workerconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WorkerConfiguration" } }, "required": [ @@ -88367,10 +107279,14 @@ "additionalProperties": false, "properties": { "BootstrapServers": { + "markdownDescription": "The bootstrap servers of the cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BootstrapServers", "type": "string" }, "Vpc": { - "$ref": "#/definitions/AWS::KafkaConnect::Connector.Vpc" + "$ref": "#/definitions/AWS::KafkaConnect::Connector.Vpc", + "markdownDescription": "Details of an Amazon VPC which has network connectivity to the Apache Kafka cluster\\. \n*Required*: Yes \n*Type*: [Vpc](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-vpc.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Vpc" } }, "required": [ @@ -88383,19 +107299,29 @@ "additionalProperties": false, "properties": { "MaxWorkerCount": { + "markdownDescription": "The maximum number of workers allocated to the connector\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxWorkerCount", "type": "number" }, "McuCount": { + "markdownDescription": "The number of microcontroller units \\(MCUs\\) allocated to each connector worker\\. The valid values are 1,2,4,8\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "McuCount", "type": "number" }, "MinWorkerCount": { + "markdownDescription": "The minimum number of workers allocated to the connector\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinWorkerCount", "type": "number" }, "ScaleInPolicy": { - "$ref": "#/definitions/AWS::KafkaConnect::Connector.ScaleInPolicy" + "$ref": "#/definitions/AWS::KafkaConnect::Connector.ScaleInPolicy", + "markdownDescription": "The sacle\\-in policy for the connector\\. \n*Required*: Yes \n*Type*: [ScaleInPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-scaleinpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScaleInPolicy" }, "ScaleOutPolicy": { - "$ref": "#/definitions/AWS::KafkaConnect::Connector.ScaleOutPolicy" + "$ref": "#/definitions/AWS::KafkaConnect::Connector.ScaleOutPolicy", + "markdownDescription": "The sacle\\-out policy for the connector\\. \n*Required*: Yes \n*Type*: [ScaleOutPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-scaleoutpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScaleOutPolicy" } }, "required": [ @@ -88411,10 +107337,14 @@ "additionalProperties": false, "properties": { "AutoScaling": { - "$ref": "#/definitions/AWS::KafkaConnect::Connector.AutoScaling" + "$ref": "#/definitions/AWS::KafkaConnect::Connector.AutoScaling", + "markdownDescription": "Information about the auto scaling parameters for the connector\\. \n*Required*: No \n*Type*: [AutoScaling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-autoscaling.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoScaling" }, "ProvisionedCapacity": { - "$ref": "#/definitions/AWS::KafkaConnect::Connector.ProvisionedCapacity" + "$ref": "#/definitions/AWS::KafkaConnect::Connector.ProvisionedCapacity", + "markdownDescription": "Details about a fixed capacity allocated to a connector\\. \n*Required*: No \n*Type*: [ProvisionedCapacity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-provisionedcapacity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisionedCapacity" } }, "type": "object" @@ -88423,9 +107353,13 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Whether log delivery to Amazon CloudWatch Logs is enabled\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Enabled", "type": "boolean" }, "LogGroup": { + "markdownDescription": "The name of the CloudWatch log group that is the destination for log delivery\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogGroup", "type": "string" } }, @@ -88438,9 +107372,13 @@ "additionalProperties": false, "properties": { "CustomPluginArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the custom plugin\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomPluginArn", "type": "string" }, "Revision": { + "markdownDescription": "The revision of the custom plugin\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Revision", "type": "number" } }, @@ -88454,9 +107392,13 @@ "additionalProperties": false, "properties": { "DeliveryStream": { + "markdownDescription": "The name of the Kinesis Data Firehose delivery stream that is the destination for log delivery\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeliveryStream", "type": "string" }, "Enabled": { + "markdownDescription": "Specifies whether connector logs get delivered to Amazon Kinesis Data Firehose\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Enabled", "type": "boolean" } }, @@ -88469,7 +107411,9 @@ "additionalProperties": false, "properties": { "ApacheKafkaCluster": { - "$ref": "#/definitions/AWS::KafkaConnect::Connector.ApacheKafkaCluster" + "$ref": "#/definitions/AWS::KafkaConnect::Connector.ApacheKafkaCluster", + "markdownDescription": "The Apache Kafka cluster to which the connector is connected\\. \n*Required*: Yes \n*Type*: [ApacheKafkaCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-apachekafkacluster.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApacheKafkaCluster" } }, "required": [ @@ -88481,6 +107425,8 @@ "additionalProperties": false, "properties": { "AuthenticationType": { + "markdownDescription": "The type of client authentication used to connect to the Apache Kafka cluster\\. Value NONE means that no client authentication is used\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthenticationType", "type": "string" } }, @@ -88493,6 +107439,8 @@ "additionalProperties": false, "properties": { "EncryptionType": { + "markdownDescription": "The type of encryption in transit to the Apache Kafka cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncryptionType", "type": "string" } }, @@ -88505,7 +107453,9 @@ "additionalProperties": false, "properties": { "WorkerLogDelivery": { - "$ref": "#/definitions/AWS::KafkaConnect::Connector.WorkerLogDelivery" + "$ref": "#/definitions/AWS::KafkaConnect::Connector.WorkerLogDelivery", + "markdownDescription": "The workers can send worker logs to different destination types\\. This configuration specifies the details of these destinations\\. \n*Required*: Yes \n*Type*: [WorkerLogDelivery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-workerlogdelivery.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WorkerLogDelivery" } }, "required": [ @@ -88517,7 +107467,9 @@ "additionalProperties": false, "properties": { "CustomPlugin": { - "$ref": "#/definitions/AWS::KafkaConnect::Connector.CustomPlugin" + "$ref": "#/definitions/AWS::KafkaConnect::Connector.CustomPlugin", + "markdownDescription": "Details about a custom plugin\\. \n*Required*: Yes \n*Type*: [CustomPlugin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-customplugin.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomPlugin" } }, "required": [ @@ -88529,9 +107481,13 @@ "additionalProperties": false, "properties": { "McuCount": { + "markdownDescription": "The number of microcontroller units \\(MCUs\\) allocated to each connector worker\\. The valid values are 1,2,4,8\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "McuCount", "type": "number" }, "WorkerCount": { + "markdownDescription": "The number of workers that are allocated to the connector\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WorkerCount", "type": "number" } }, @@ -88544,12 +107500,18 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The name of the S3 bucket that is the destination for log delivery\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Bucket", "type": "string" }, "Enabled": { + "markdownDescription": "Specifies whether connector logs get sent to the specified Amazon S3 destination\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Enabled", "type": "boolean" }, "Prefix": { + "markdownDescription": "The S3 prefix that is the destination for log delivery\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Prefix", "type": "string" } }, @@ -88562,6 +107524,8 @@ "additionalProperties": false, "properties": { "CpuUtilizationPercentage": { + "markdownDescription": "Specifies the CPU utilization percentage threshold at which you want connector scale in to be triggered\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CpuUtilizationPercentage", "type": "number" } }, @@ -88574,6 +107538,8 @@ "additionalProperties": false, "properties": { "CpuUtilizationPercentage": { + "markdownDescription": "The CPU utilization percentage threshold at which you want connector scale out to be triggered\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CpuUtilizationPercentage", "type": "number" } }, @@ -88589,12 +107555,16 @@ "items": { "type": "string" }, + "markdownDescription": "The security groups for the connector\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroups", "type": "array" }, "Subnets": { "items": { "type": "string" }, + "markdownDescription": "The subnets for the connector\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subnets", "type": "array" } }, @@ -88608,9 +107578,13 @@ "additionalProperties": false, "properties": { "Revision": { + "markdownDescription": "The revision of the worker configuration\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Revision", "type": "number" }, "WorkerConfigurationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the worker configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WorkerConfigurationArn", "type": "string" } }, @@ -88624,13 +107598,19 @@ "additionalProperties": false, "properties": { "CloudWatchLogs": { - "$ref": "#/definitions/AWS::KafkaConnect::Connector.CloudWatchLogsLogDelivery" + "$ref": "#/definitions/AWS::KafkaConnect::Connector.CloudWatchLogsLogDelivery", + "markdownDescription": "Details about delivering logs to Amazon CloudWatch Logs\\. \n*Required*: No \n*Type*: [CloudWatchLogsLogDelivery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-cloudwatchlogslogdelivery.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CloudWatchLogs" }, "Firehose": { - "$ref": "#/definitions/AWS::KafkaConnect::Connector.FirehoseLogDelivery" + "$ref": "#/definitions/AWS::KafkaConnect::Connector.FirehoseLogDelivery", + "markdownDescription": "Details about delivering logs to Amazon Kinesis Data Firehose\\. \n*Required*: No \n*Type*: [FirehoseLogDelivery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-firehoselogdelivery.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Firehose" }, "S3": { - "$ref": "#/definitions/AWS::KafkaConnect::Connector.S3LogDelivery" + "$ref": "#/definitions/AWS::KafkaConnect::Connector.S3LogDelivery", + "markdownDescription": "Details about delivering logs to Amazon S3\\. \n*Required*: No \n*Type*: [S3LogDelivery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-s3logdelivery.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3" } }, "type": "object" @@ -88671,33 +107651,51 @@ "additionalProperties": false, "properties": { "CustomDocumentEnrichmentConfiguration": { - "$ref": "#/definitions/AWS::Kendra::DataSource.CustomDocumentEnrichmentConfiguration" + "$ref": "#/definitions/AWS::Kendra::DataSource.CustomDocumentEnrichmentConfiguration", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [CustomDocumentEnrichmentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-customdocumentenrichmentconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomDocumentEnrichmentConfiguration" }, "DataSourceConfiguration": { - "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceConfiguration" + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceConfiguration", + "markdownDescription": "Configuration information for an Amazon Kendra data source\\. The contents of the configuration depend on the type of data source\\. You can only specify one type of data source in the configuration\\. Choose from one of the following data sources\\. \n+ Amazon S3\n+ Confluence\n+ Custom\n+ Database\n+ Microsoft OneDrive\n+ Microsoft SharePoint \n+ Salesforce\n+ ServiceNow\nYou can't specify the `Configuration` parameter when the `Type` parameter is set to `CUSTOM`\\. \nThe `Configuration` parameter is required for all other data sources\\. \n*Required*: No \n*Type*: [DataSourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSourceConfiguration" }, "Description": { + "markdownDescription": "A description of the data source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "IndexId": { + "markdownDescription": "The identifier of the index that should be associated with this data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IndexId", "type": "string" }, "Name": { + "markdownDescription": "The name of the data source\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Pattern*: `[a-zA-Z0-9][a-zA-Z0-9_-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of a role with permission to access the data source\\. \nYou can't specify the `RoleArn` parameter when the `Type` parameter is set to `CUSTOM`\\. \nThe `RoleArn` parameter is required for all other data sources\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "Schedule": { + "markdownDescription": "Sets the frequency that Amazon Kendra checks the documents in your data source and updates the index\\. If you don't set a schedule, Amazon Kendra doesn't periodically update the index\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Type": { + "markdownDescription": "The type of the data source\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CONFLUENCE | CUSTOM | DATABASE | FSX | GOOGLEDRIVE | ONEDRIVE | S3 | SALESFORCE | SERVICENOW | SHAREPOINT | SLACK | WEBCRAWLER | WORKDOCS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -88733,6 +107731,8 @@ "additionalProperties": false, "properties": { "KeyPath": { + "markdownDescription": "Path to the AWS S3 bucket that contains the access control list files\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyPath", "type": "string" } }, @@ -88742,6 +107742,8 @@ "additionalProperties": false, "properties": { "AllowedGroupsColumnName": { + "markdownDescription": "A list of groups, separated by semi\\-colons, that filters a query response based on user context\\. The document is only returned to users that are in one of the groups specified in the `UserContext` field of the [Query](https://docs.aws.amazon.com/kendra/latest/dg/API_Query.html) operation\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedGroupsColumnName", "type": "string" } }, @@ -88757,21 +107759,31 @@ "items": { "type": "string" }, + "markdownDescription": "One to five columns that indicate when a document in the database has changed\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChangeDetectingColumns", "type": "array" }, "DocumentDataColumnName": { + "markdownDescription": "The column that contains the contents of the document\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentDataColumnName", "type": "string" }, "DocumentIdColumnName": { + "markdownDescription": "The column that provides the document's unique identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentIdColumnName", "type": "string" }, "DocumentTitleColumnName": { + "markdownDescription": "The column that contains the title of the document\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentTitleColumnName", "type": "string" }, "FieldMappings": { "items": { "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping" }, + "markdownDescription": "An array of objects that map database column names to the corresponding fields in an index\\. You must first create the fields in the index using the [UpdateIndex](https://docs.aws.amazon.com/kendra/latest/dg/API_UpdateIndex.html) operation\\. \n*Required*: No \n*Type*: List of [DataSourceToIndexFieldMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourcetoindexfieldmapping.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldMappings", "type": "array" } }, @@ -88789,9 +107801,13 @@ "items": { "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluenceAttachmentToIndexFieldMapping" }, + "markdownDescription": "Maps attributes or field names of Confluence attachments to Amazon Kendra index field names\\. To create custom fields, use the `UpdateIndex` API before you map to Confluence fields\\. For more information, see [Mapping data source fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html)\\. The Confluence data source field names must exist in your Confluence custom metadata\\. \nIf you specify the `AttachentFieldMappings` parameter, you must specify at least one field mapping\\. \n*Required*: No \n*Type*: List of [ConfluenceAttachmentToIndexFieldMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceattachmenttoindexfieldmapping.html) \n*Maximum*: `11` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttachmentFieldMappings", "type": "array" }, "CrawlAttachments": { + "markdownDescription": "Indicates whether Amazon Kendra indexes attachments to the pages and blogs in the Confluence data source\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CrawlAttachments", "type": "boolean" } }, @@ -88801,12 +107817,18 @@ "additionalProperties": false, "properties": { "DataSourceFieldName": { + "markdownDescription": "The name of the field in the data source\\. \nYou must first create the index field using the `UpdateIndex` API\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AUTHOR | CONTENT_TYPE | CREATED_DATE | DISPLAY_URL | FILE_SIZE | ITEM_TYPE | PARENT_ID | SPACE_KEY | SPACE_NAME | URL | VERSION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSourceFieldName", "type": "string" }, "DateFieldFormat": { + "markdownDescription": "The format for date fields in the data source\\. If the field specified in `DataSourceFieldName` is a date field you must specify the date format\\. If the field is not a date field, an exception is thrown\\. \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `40` \n*Pattern*: `^(?!\\s).*(?A list of regular expression patterns to exclude certain blog posts, pages, spaces, or attachments in your Confluence\\. Content that matches the patterns are excluded from the index\\. Content that doesn't match the patterns is included in the index\\. If content matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the content isn't included in the index\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExclusionPatterns", "type": "array" }, "InclusionPatterns": { "items": { "type": "string" }, + "markdownDescription": "A list of regular expression patterns to include certain blog posts, pages, spaces, or attachments in your Confluence\\. Content that matches the patterns are included in the index\\. Content that doesn't match the patterns is excluded from the index\\. If content matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the content isn't included in the index\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InclusionPatterns", "type": "array" }, "PageConfiguration": { - "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluencePageConfiguration" + "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluencePageConfiguration", + "markdownDescription": "Configuration information for indexing Confluence pages\\. \n*Required*: No \n*Type*: [ConfluencePageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencepageconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PageConfiguration" }, "SecretArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS Secrets Manager secret that contains the key\\-value pairs required to connect to your Confluence server\\. The secret must contain a JSON structure with the following keys: \n+ username\u2014The user name or email address of a user with administrative privileges for the Confluence server\\.\n+ password\u2014The password associated with the user logging in to the Confluence server\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1284` \n*Pattern*: `arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretArn", "type": "string" }, "ServerUrl": { + "markdownDescription": "The URL of your Confluence instance\\. Use the full URL of the server\\. For example, *https://server\\.example\\.com:port/*\\. You can also use an IP address, for example, *https://192\\.168\\.1\\.113/*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `^(https?|ftp|file):\\/\\/([^\\s]*)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerUrl", "type": "string" }, "SpaceConfiguration": { - "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluenceSpaceConfiguration" + "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluenceSpaceConfiguration", + "markdownDescription": "Configuration information for indexing Confluence spaces\\. \n*Required*: No \n*Type*: [ConfluenceSpaceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencespaceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpaceConfiguration" }, "Version": { + "markdownDescription": "Specifies the version of the Confluence installation that you are connecting to\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CLOUD | SERVER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" }, "VpcConfiguration": { - "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceVpcConfiguration" + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceVpcConfiguration", + "markdownDescription": "Configuration information for an Amazon Virtual Private Cloud to connect to your Confluence\\. For more information, see [Configuring a VPC](https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html)\\. \n*Required*: No \n*Type*: [DataSourceVpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourcevpcconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcConfiguration" } }, "required": [ @@ -88901,6 +107951,8 @@ "items": { "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluencePageToIndexFieldMapping" }, + "markdownDescription": ">Maps attributes or field names of Confluence pages to Amazon Kendra index field names\\. To create custom fields, use the `UpdateIndex` API before you map to Confluence fields\\. For more information, see [Mapping data source fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html)\\. The Confluence data source field names must exist in your Confluence custom metadata\\. \nIf you specify the `PageFieldMappings` parameter, you must specify at least one field mapping\\. \n*Required*: No \n*Type*: List of [ConfluencePageToIndexFieldMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencepagetoindexfieldmapping.html) \n*Maximum*: `12` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PageFieldMappings", "type": "array" } }, @@ -88910,12 +107962,18 @@ "additionalProperties": false, "properties": { "DataSourceFieldName": { + "markdownDescription": "The name of the field in the data source\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AUTHOR | CONTENT_STATUS | CREATED_DATE | DISPLAY_URL | ITEM_TYPE | LABELS | MODIFIED_DATE | PARENT_ID | SPACE_KEY | SPACE_NAME | URL | VERSION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSourceFieldName", "type": "string" }, "DateFieldFormat": { + "markdownDescription": "The format for date fields in the data source\\. If the field specified in `DataSourceFieldName` is a date field you must specify the date format\\. If the field is not a date field, an exception is thrown\\. \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `40` \n*Pattern*: `^(?!\\s).*(?&]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NamePrefix", "type": "string" } }, @@ -91424,6 +111237,8 @@ "additionalProperties": false, "properties": { "ResourceARN": { + "markdownDescription": "The ARN of the Amazon Lambda function that operates on records in the stream\\. \nTo specify an earlier version of the Lambda function than the latest, include the Lambda function version in the Lambda function ARN\\. For more information about Lambda ARNs, see [Example ARNs: Amazon Lambda](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda) \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceARN", "type": "string" } }, @@ -91436,6 +111251,8 @@ "additionalProperties": false, "properties": { "Count": { + "markdownDescription": "The number of in\\-application streams to create\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count", "type": "number" } }, @@ -91445,7 +111262,9 @@ "additionalProperties": false, "properties": { "InputLambdaProcessor": { - "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputLambdaProcessor" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputLambdaProcessor", + "markdownDescription": "The [InputLambdaProcessor](https://docs.aws.amazon.com/kinesisanalytics/latest/apiv2/API_InputLambdaProcessor.html) that is used to preprocess the records in the stream before being processed by your application code\\. \n*Required*: No \n*Type*: [InputLambdaProcessor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputlambdaprocessor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputLambdaProcessor" } }, "type": "object" @@ -91457,13 +111276,19 @@ "items": { "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.RecordColumn" }, + "markdownDescription": "A list of `RecordColumn` objects\\. \n*Required*: Yes \n*Type*: List of [RecordColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordcolumn.html) \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordColumns", "type": "array" }, "RecordEncoding": { + "markdownDescription": "Specifies the encoding of the records in the streaming source\\. For example, UTF\\-8\\. \n*Required*: No \n*Type*: String \n*Minimum*: `5` \n*Maximum*: `5` \n*Pattern*: `UTF-8` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordEncoding", "type": "string" }, "RecordFormat": { - "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.RecordFormat" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.RecordFormat", + "markdownDescription": "Specifies the format of the records on the streaming source\\. \n*Required*: Yes \n*Type*: [RecordFormat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordformat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordFormat" } }, "required": [ @@ -91476,6 +111301,8 @@ "additionalProperties": false, "properties": { "RecordRowPath": { + "markdownDescription": "The path to the top\\-level parent that contains the records\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `65535` \n*Pattern*: `^(?=^\\$)(?=^\\S+$).*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordRowPath", "type": "string" } }, @@ -91488,6 +111315,8 @@ "additionalProperties": false, "properties": { "ResourceARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the delivery stream\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceARN", "type": "string" } }, @@ -91500,6 +111329,8 @@ "additionalProperties": false, "properties": { "ResourceARN": { + "markdownDescription": "The ARN of the input Kinesis data stream to read\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceARN", "type": "string" } }, @@ -91512,10 +111343,14 @@ "additionalProperties": false, "properties": { "CSVMappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CSVMappingParameters" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CSVMappingParameters", + "markdownDescription": "Provides additional mapping information when the record format uses delimiters \\(for example, CSV\\)\\. \n*Required*: No \n*Type*: [CSVMappingParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-csvmappingparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CSVMappingParameters" }, "JSONMappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.JSONMappingParameters" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.JSONMappingParameters", + "markdownDescription": "Provides additional mapping information when JSON is the record format on the streaming source\\. \n*Required*: No \n*Type*: [JSONMappingParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-jsonmappingparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JSONMappingParameters" } }, "type": "object" @@ -91524,12 +111359,18 @@ "additionalProperties": false, "properties": { "ArtifactId": { + "markdownDescription": "The artifact ID of the Maven reference\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArtifactId", "type": "string" }, "GroupId": { + "markdownDescription": "The group ID of the Maven reference\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupId", "type": "string" }, "Version": { + "markdownDescription": "The version of the Maven reference\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -91544,12 +111385,18 @@ "additionalProperties": false, "properties": { "ConfigurationType": { + "markdownDescription": "Describes whether to use the default CloudWatch logging configuration for an application\\. You must set this property to `CUSTOM` in order to set the `LogLevel` or `MetricsLevel` parameters\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CUSTOM | DEFAULT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfigurationType", "type": "string" }, "LogLevel": { + "markdownDescription": "Describes the verbosity of the CloudWatch Logs for an application\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DEBUG | ERROR | INFO | WARN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogLevel", "type": "string" }, "MetricsLevel": { + "markdownDescription": "Describes the granularity of the CloudWatch Logs for an application\\. The `Parallelism` level is not recommended for applications with a Parallelism over 64 due to excessive costs\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `APPLICATION | OPERATOR | PARALLELISM | TASK` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricsLevel", "type": "string" } }, @@ -91562,15 +111409,23 @@ "additionalProperties": false, "properties": { "AutoScalingEnabled": { + "markdownDescription": "Describes whether the Kinesis Data Analytics service can increase the parallelism of the application in response to increased throughput\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoScalingEnabled", "type": "boolean" }, "ConfigurationType": { + "markdownDescription": "Describes whether the application uses the default parallelism for the Kinesis Data Analytics service\\. You must set this property to `CUSTOM` in order to change your application's `AutoScalingEnabled`, `Parallelism`, or `ParallelismPerKPU` properties\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CUSTOM | DEFAULT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfigurationType", "type": "string" }, "Parallelism": { + "markdownDescription": "Describes the initial number of parallel tasks that a Java\\-based Kinesis Data Analytics application can perform\\. The Kinesis Data Analytics service can increase this number automatically if [ParallelismConfiguration:AutoScalingEnabled](https://docs.aws.amazon.com/kinesisanalytics/latest/apiv2/API_ParallelismConfiguration.html#kinesisanalytics-Type-ParallelismConfiguration-AutoScalingEnabled.html) is set to `true`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parallelism", "type": "number" }, "ParallelismPerKPU": { + "markdownDescription": "Describes the number of parallel tasks that a Java\\-based Kinesis Data Analytics application can perform per Kinesis Processing Unit \\(KPU\\) used by the application\\. For more information about KPUs, see [Amazon Kinesis Data Analytics Pricing](https://docs.aws.amazon.com/kinesis/data-analytics/pricing/)\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParallelismPerKPU", "type": "number" } }, @@ -91583,15 +111438,19 @@ "additionalProperties": false, "properties": { "PropertyGroupId": { + "markdownDescription": "Describes the key of an application execution property key\\-value pair\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropertyGroupId", "type": "string" }, "PropertyMap": { "additionalProperties": true, + "markdownDescription": "Describes the value of an application execution property key\\-value pair\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "PropertyMap", "type": "object" } }, @@ -91601,12 +111460,18 @@ "additionalProperties": false, "properties": { "Mapping": { + "markdownDescription": "A reference to the data element in the streaming input or the reference data source\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mapping", "type": "string" }, "Name": { + "markdownDescription": "The name of the column that is created in the in\\-application input stream or reference table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[^-\\s<>&]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "SqlType": { + "markdownDescription": "The type of column created in the in\\-application input stream or reference table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SqlType", "type": "string" } }, @@ -91620,9 +111485,13 @@ "additionalProperties": false, "properties": { "MappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.MappingParameters" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.MappingParameters", + "markdownDescription": "When you configure application input at the time of creating or updating an application, provides additional mapping information specific to the record format \\(such as JSON, CSV, or record fields delimited by some delimiter\\) on the streaming source\\. \n*Required*: No \n*Type*: [MappingParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-mappingparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MappingParameters" }, "RecordFormatType": { + "markdownDescription": "The type of record format\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CSV | JSON` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordFormatType", "type": "string" } }, @@ -91647,9 +111516,13 @@ "additionalProperties": false, "properties": { "BasePath": { + "markdownDescription": "The base path for the S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[a-zA-Z0-9/!-_.*'()]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BasePath", "type": "string" }, "BucketARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketARN", "type": "string" } }, @@ -91662,12 +111535,18 @@ "additionalProperties": false, "properties": { "BucketARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the S3 bucket containing the application code\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketARN", "type": "string" }, "FileKey": { + "markdownDescription": "The file key for the object containing the application code\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileKey", "type": "string" }, "ObjectVersion": { + "markdownDescription": "The version of the object containing the application code\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectVersion", "type": "string" } }, @@ -91684,6 +111563,8 @@ "items": { "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.Input" }, + "markdownDescription": "The array of [Input](https://docs.aws.amazon.com/kinesisanalytics/latest/apiv2/API_Input.html) objects describing the input streams used by the application\\. \n*Required*: No \n*Type*: List of [Input](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Inputs", "type": "array" } }, @@ -91715,19 +111596,27 @@ "additionalProperties": false, "properties": { "CatalogConfiguration": { - "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CatalogConfiguration" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CatalogConfiguration", + "markdownDescription": "The Amazon Glue Data Catalog that you use in queries in a Kinesis Data Analytics Studio notebook\\. \n*Required*: No \n*Type*: [CatalogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-catalogconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CatalogConfiguration" }, "CustomArtifactsConfiguration": { "items": { "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CustomArtifactConfiguration" }, + "markdownDescription": "A list of `CustomArtifactConfiguration` objects\\. \n*Required*: No \n*Type*: List of [CustomArtifactConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-customartifactconfiguration.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomArtifactsConfiguration", "type": "array" }, "DeployAsApplicationConfiguration": { - "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.DeployAsApplicationConfiguration" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.DeployAsApplicationConfiguration", + "markdownDescription": "The information required to deploy a Kinesis Data Analytics Studio notebook as an application with durable state\\. \n*Required*: No \n*Type*: [DeployAsApplicationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-deployasapplicationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeployAsApplicationConfiguration" }, "MonitoringConfiguration": { - "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ZeppelinMonitoringConfiguration" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ZeppelinMonitoringConfiguration", + "markdownDescription": "The monitoring configuration of a Kinesis Data Analytics Studio notebook\\. \n*Required*: No \n*Type*: [ZeppelinMonitoringConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-zeppelinmonitoringconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MonitoringConfiguration" } }, "type": "object" @@ -91736,6 +111625,8 @@ "additionalProperties": false, "properties": { "LogLevel": { + "markdownDescription": "The verbosity of the CloudWatch Logs for an application\\. You can set it to `INFO`, `WARN`, `ERROR`, or `DEBUG`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DEBUG | ERROR | INFO | WARN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogLevel", "type": "string" } }, @@ -91777,10 +111668,14 @@ "additionalProperties": false, "properties": { "ApplicationName": { + "markdownDescription": "The name of the application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationName", "type": "string" }, "CloudWatchLoggingOption": { - "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption.CloudWatchLoggingOption" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption.CloudWatchLoggingOption", + "markdownDescription": "Provides a description of Amazon CloudWatch logging options, including the log stream Amazon Resource Name \\(ARN\\)\\. \n*Required*: Yes \n*Type*: [CloudWatchLoggingOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationcloudwatchloggingoption-cloudwatchloggingoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLoggingOption" } }, "required": [ @@ -91814,6 +111709,8 @@ "additionalProperties": false, "properties": { "LogStreamARN": { + "markdownDescription": "The ARN of the CloudWatch log to receive application messages\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogStreamARN", "type": "string" } }, @@ -91858,10 +111755,14 @@ "additionalProperties": false, "properties": { "ApplicationName": { + "markdownDescription": "The name of the application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationName", "type": "string" }, "Output": { - "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.Output" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.Output", + "markdownDescription": "Describes a SQL\\-based Kinesis Data Analytics application's output configuration, in which you identify an in\\-application stream and a destination where you want the in\\-application stream data to be written\\. The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream\\. \n \n*Required*: Yes \n*Type*: [Output](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Output" } }, "required": [ @@ -91895,6 +111796,8 @@ "additionalProperties": false, "properties": { "RecordFormatType": { + "markdownDescription": "Specifies the format of the records on the output stream\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CSV | JSON` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordFormatType", "type": "string" } }, @@ -91904,6 +111807,8 @@ "additionalProperties": false, "properties": { "ResourceARN": { + "markdownDescription": "The ARN of the destination delivery stream to write to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceARN", "type": "string" } }, @@ -91916,6 +111821,8 @@ "additionalProperties": false, "properties": { "ResourceARN": { + "markdownDescription": "The ARN of the destination Kinesis data stream to write to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceARN", "type": "string" } }, @@ -91928,6 +111835,8 @@ "additionalProperties": false, "properties": { "ResourceARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the destination Lambda function to write to\\. \nTo specify an earlier version of the Lambda function than the latest, include the Lambda function version in the Lambda function ARN\\. For more information about Lambda ARNs, see [Example ARNs: Amazon Lambda](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda) \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceARN", "type": "string" } }, @@ -91940,18 +111849,28 @@ "additionalProperties": false, "properties": { "DestinationSchema": { - "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.DestinationSchema" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.DestinationSchema", + "markdownDescription": "Describes the data format when records are written to the destination\\. \n*Required*: Yes \n*Type*: [DestinationSchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-destinationschema.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationSchema" }, "KinesisFirehoseOutput": { - "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisFirehoseOutput" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisFirehoseOutput", + "markdownDescription": "Identifies a Kinesis Data Firehose delivery stream as the destination\\. \n*Required*: No \n*Type*: [KinesisFirehoseOutput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-kinesisfirehoseoutput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KinesisFirehoseOutput" }, "KinesisStreamsOutput": { - "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisStreamsOutput" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisStreamsOutput", + "markdownDescription": "Identifies a Kinesis data stream as the destination\\. \n*Required*: No \n*Type*: [KinesisStreamsOutput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-kinesisstreamsoutput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KinesisStreamsOutput" }, "LambdaOutput": { - "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.LambdaOutput" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.LambdaOutput", + "markdownDescription": "Identifies an Amazon Lambda function as the destination\\. \n*Required*: No \n*Type*: [LambdaOutput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-lambdaoutput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaOutput" }, "Name": { + "markdownDescription": "The name of the in\\-application stream\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `[^-\\s<>&]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" } }, @@ -91996,10 +111915,14 @@ "additionalProperties": false, "properties": { "ApplicationName": { + "markdownDescription": "The name of the application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationName", "type": "string" }, "ReferenceDataSource": { - "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceDataSource" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceDataSource", + "markdownDescription": "For a SQL\\-based Kinesis Data Analytics application, describes the reference data source by providing the source information \\(Amazon S3 bucket name and object key name\\), the resulting in\\-application table name that is created, and the necessary schema to map the data elements in the Amazon S3 object to the in\\-application table\\. \n*Required*: Yes \n*Type*: [ReferenceDataSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReferenceDataSource" } }, "required": [ @@ -92033,9 +111956,13 @@ "additionalProperties": false, "properties": { "RecordColumnDelimiter": { + "markdownDescription": "The column delimiter\\. For example, in a CSV format, a comma \\(\",\"\\) is the typical column delimiter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordColumnDelimiter", "type": "string" }, "RecordRowDelimiter": { + "markdownDescription": "The row delimiter\\. For example, in a CSV format, *'\\\\n'* is the typical row delimiter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordRowDelimiter", "type": "string" } }, @@ -92049,6 +111976,8 @@ "additionalProperties": false, "properties": { "RecordRowPath": { + "markdownDescription": "The path to the top\\-level parent that contains the records\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `65535` \n*Pattern*: `^(?=^\\$)(?=^\\S+$).*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordRowPath", "type": "string" } }, @@ -92061,10 +111990,14 @@ "additionalProperties": false, "properties": { "CSVMappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.CSVMappingParameters" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.CSVMappingParameters", + "markdownDescription": "Provides additional mapping information when the record format uses delimiters \\(for example, CSV\\)\\. \n*Required*: No \n*Type*: [CSVMappingParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-csvmappingparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CSVMappingParameters" }, "JSONMappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.JSONMappingParameters" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.JSONMappingParameters", + "markdownDescription": "Provides additional mapping information when JSON is the record format on the streaming source\\. \n*Required*: No \n*Type*: [JSONMappingParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-jsonmappingparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JSONMappingParameters" } }, "type": "object" @@ -92073,12 +112006,18 @@ "additionalProperties": false, "properties": { "Mapping": { + "markdownDescription": "A reference to the data element in the streaming input or the reference data source\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mapping", "type": "string" }, "Name": { + "markdownDescription": "The name of the column that is created in the in\\-application input stream or reference table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[^-\\s<>&]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "SqlType": { + "markdownDescription": "The type of column created in the in\\-application input stream or reference table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SqlType", "type": "string" } }, @@ -92092,9 +112031,13 @@ "additionalProperties": false, "properties": { "MappingParameters": { - "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.MappingParameters" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.MappingParameters", + "markdownDescription": "When you configure application input at the time of creating or updating an application, provides additional mapping information specific to the record format \\(such as JSON, CSV, or record fields delimited by some delimiter\\) on the streaming source\\. \n*Required*: No \n*Type*: [MappingParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-mappingparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MappingParameters" }, "RecordFormatType": { + "markdownDescription": "The type of record format\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CSV | JSON` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordFormatType", "type": "string" } }, @@ -92107,12 +112050,18 @@ "additionalProperties": false, "properties": { "ReferenceSchema": { - "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceSchema" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceSchema", + "markdownDescription": "Describes the format of the data in the streaming source, and how each data element maps to corresponding columns created in the in\\-application stream\\. \n*Required*: Yes \n*Type*: [ReferenceSchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referenceschema.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReferenceSchema" }, "S3ReferenceDataSource": { - "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.S3ReferenceDataSource" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.S3ReferenceDataSource", + "markdownDescription": "Identifies the S3 bucket and object that contains the reference data\\. A Kinesis Data Analytics application loads reference data only once\\. If the data changes, you call the [UpdateApplication](https://docs.aws.amazon.com/kinesisanalytics/latest/apiv2/API_UpdateApplication.html) operation to trigger reloading of data into your application\\. \n*Required*: No \n*Type*: [S3ReferenceDataSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-s3referencedatasource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3ReferenceDataSource" }, "TableName": { + "markdownDescription": "The name of the in\\-application table to create\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TableName", "type": "string" } }, @@ -92128,13 +112077,19 @@ "items": { "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordColumn" }, + "markdownDescription": "A list of `RecordColumn` objects\\. \n*Required*: Yes \n*Type*: List of [RecordColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn.html) \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordColumns", "type": "array" }, "RecordEncoding": { + "markdownDescription": "Specifies the encoding of the records in the streaming source\\. For example, UTF\\-8\\. \n*Required*: No \n*Type*: String \n*Minimum*: `5` \n*Maximum*: `5` \n*Pattern*: `UTF-8` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordEncoding", "type": "string" }, "RecordFormat": { - "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordFormat" + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordFormat", + "markdownDescription": "Specifies the format of the records on the streaming source\\. \n*Required*: Yes \n*Type*: [RecordFormat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordformat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordFormat" } }, "required": [ @@ -92147,9 +112102,13 @@ "additionalProperties": false, "properties": { "BucketARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketARN", "type": "string" }, "FileKey": { + "markdownDescription": "The object key name containing the reference data\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileKey", "type": "string" } }, @@ -92198,42 +112157,66 @@ "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonOpenSearchServerlessDestinationConfiguration" }, "AmazonopensearchserviceDestinationConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceDestinationConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceDestinationConfiguration", + "markdownDescription": "The destination in Amazon OpenSearch Service\\. You can specify only one destination\\. \n*Required*: Conditional \n*Type*: [AmazonopensearchserviceDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AmazonopensearchserviceDestinationConfiguration" }, "DeliveryStreamEncryptionConfigurationInput": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput", + "markdownDescription": "Specifies the type and Amazon Resource Name \\(ARN\\) of the CMK to use for Server\\-Side Encryption \\(SSE\\)\\. \n*Required*: No \n*Type*: [DeliveryStreamEncryptionConfigurationInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryStreamEncryptionConfigurationInput" }, "DeliveryStreamName": { + "markdownDescription": "The name of the delivery stream\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeliveryStreamName", "type": "string" }, "DeliveryStreamType": { + "markdownDescription": "The delivery stream type\\. This can be one of the following values: \n+ `DirectPut`: Provider applications access the delivery stream directly\\.\n+ `KinesisStreamAsSource`: The delivery stream uses a Kinesis data stream as a source\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `DirectPut | KinesisStreamAsSource` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeliveryStreamType", "type": "string" }, "ElasticsearchDestinationConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchDestinationConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchDestinationConfiguration", + "markdownDescription": "An Amazon ES destination for the delivery stream\\. \nConditional\\. You must specify only one destination configuration\\. \nIf you change the delivery stream destination from an Amazon ES destination to an Amazon S3 or Amazon Redshift destination, update requires [some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)\\. \n*Required*: Conditional \n*Type*: [ElasticsearchDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticsearchDestinationConfiguration" }, "ExtendedS3DestinationConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ExtendedS3DestinationConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ExtendedS3DestinationConfiguration", + "markdownDescription": "An Amazon S3 destination for the delivery stream\\. \nConditional\\. You must specify only one destination configuration\\. \nIf you change the delivery stream destination from an Amazon Extended S3 destination to an Amazon ES destination, update requires [some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)\\. \n*Required*: Conditional \n*Type*: [ExtendedS3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExtendedS3DestinationConfiguration" }, "HttpEndpointDestinationConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HttpEndpointDestinationConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HttpEndpointDestinationConfiguration", + "markdownDescription": "Enables configuring Kinesis Firehose to deliver data to any HTTP endpoint destination\\. You can specify only one destination\\. \n*Required*: No \n*Type*: [HttpEndpointDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpEndpointDestinationConfiguration" }, "KinesisStreamSourceConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.KinesisStreamSourceConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.KinesisStreamSourceConfiguration", + "markdownDescription": "When a Kinesis stream is used as the source for the delivery stream, a [KinesisStreamSourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration.html) containing the Kinesis stream ARN and the role ARN for the source stream\\. \n*Required*: No \n*Type*: [KinesisStreamSourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KinesisStreamSourceConfiguration" }, "RedshiftDestinationConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RedshiftDestinationConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RedshiftDestinationConfiguration", + "markdownDescription": "An Amazon Redshift destination for the delivery stream\\. \nConditional\\. You must specify only one destination configuration\\. \nIf you change the delivery stream destination from an Amazon Redshift destination to an Amazon ES destination, update requires [some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)\\. \n*Required*: Conditional \n*Type*: [RedshiftDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedshiftDestinationConfiguration" }, "S3DestinationConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration", + "markdownDescription": "The `S3DestinationConfiguration` property type specifies an Amazon Simple Storage Service \\(Amazon S3\\) destination to which Amazon Kinesis Data Firehose \\(Kinesis Data Firehose\\) delivers data\\. \nConditional\\. You must specify only one destination configuration\\. \nIf you change the delivery stream destination from an Amazon S3 destination to an Amazon ES destination, update requires [some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)\\. \n*Required*: Conditional \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3DestinationConfiguration" }, "SplunkDestinationConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SplunkDestinationConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SplunkDestinationConfiguration", + "markdownDescription": "The configuration of a destination in Splunk for the delivery stream\\. \n*Required*: No \n*Type*: [SplunkDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SplunkDestinationConfiguration" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A set of tags to assign to the delivery stream\\. A tag is a key\\-value pair that you can define and assign to AWS resources\\. Tags are metadata\\. For example, you can add friendly names and descriptions or other types of information that can help you distinguish the delivery stream\\. For more information about tags, see [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) in the AWS Billing and Cost Management User Guide\\. \nYou can specify up to 50 tags when creating a delivery stream\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -92325,9 +112308,13 @@ "additionalProperties": false, "properties": { "IntervalInSeconds": { + "markdownDescription": "Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination\\. The default value is 300 \\(5 minutes\\)\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `60` \n*Maximum*: `900` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalInSeconds", "type": "number" }, "SizeInMBs": { + "markdownDescription": "Buffer incoming data to the specified size, in MBs, before delivering it to the destination\\. The default value is 5\\. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds\\. For example, if you typically ingest data at 1 MB/sec, the value should be 10 MB or higher\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SizeInMBs", "type": "number" } }, @@ -92337,43 +112324,69 @@ "additionalProperties": false, "properties": { "BufferingHints": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceBufferingHints" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceBufferingHints", + "markdownDescription": "The buffering options\\. If no value is specified, the default values for AmazonopensearchserviceBufferingHints are used\\. \n*Required*: No \n*Type*: [AmazonopensearchserviceBufferingHints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicebufferinghints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BufferingHints" }, "CloudWatchLoggingOptions": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions", + "markdownDescription": "Describes the Amazon CloudWatch logging options for your delivery stream\\. \n*Required*: No \n*Type*: [CloudWatchLoggingOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLoggingOptions" }, "ClusterEndpoint": { + "markdownDescription": "The endpoint to use when communicating with the cluster\\. Specify either this ClusterEndpoint or the DomainARN field\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `https:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterEndpoint", "type": "string" }, "DomainARN": { + "markdownDescription": "The ARN of the Amazon OpenSearch Service domain\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainARN", "type": "string" }, "IndexName": { + "markdownDescription": "The Amazon OpenSearch Service index name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `80` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IndexName", "type": "string" }, "IndexRotationPeriod": { + "markdownDescription": "The Amazon OpenSearch Service index rotation period\\. Index rotation appends a timestamp to the IndexName to facilitate the expiration of old data\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NoRotation | OneDay | OneHour | OneMonth | OneWeek` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IndexRotationPeriod", "type": "string" }, "ProcessingConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration", + "markdownDescription": "Describes a data processing configuration\\. \n*Required*: No \n*Type*: [ProcessingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProcessingConfiguration" }, "RetryOptions": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceRetryOptions" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceRetryOptions", + "markdownDescription": "The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon OpenSearch Service\\. The default value is 300 \\(5 minutes\\)\\. \n*Required*: No \n*Type*: [AmazonopensearchserviceRetryOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchserviceretryoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryOptions" }, "RoleARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon OpenSearch Service Configuration API and for indexing documents\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleARN", "type": "string" }, "S3BackupMode": { + "markdownDescription": "Defines how documents should be delivered to Amazon S3\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AllDocuments | FailedDocumentsOnly` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BackupMode", "type": "string" }, "S3Configuration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration", + "markdownDescription": "Describes the configuration of a destination in Amazon S3\\. \n*Required*: Yes \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Configuration" }, "TypeName": { + "markdownDescription": "The Amazon OpenSearch Service type name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `100` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TypeName", "type": "string" }, "VpcConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.VpcConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.VpcConfiguration", + "markdownDescription": "The details of the VPC of the Amazon OpenSearch Service destination\\. \n*Required*: No \n*Type*: [VpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-vpcconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcConfiguration" } }, "required": [ @@ -92387,6 +112400,8 @@ "additionalProperties": false, "properties": { "DurationInSeconds": { + "markdownDescription": "After an initial failure to deliver to Amazon OpenSearch Service, the total amount of time during which Kinesis Data Firehose retries delivery \\(including the first attempt\\)\\. After this time has elapsed, the failed documents are written to Amazon S3\\. Default value is 300 seconds \\(5 minutes\\)\\. A value of 0 \\(zero\\) results in no retries\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `7200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DurationInSeconds", "type": "number" } }, @@ -92396,9 +112411,13 @@ "additionalProperties": false, "properties": { "IntervalInSeconds": { + "markdownDescription": "The length of time, in seconds, that Kinesis Data Firehose buffers incoming data before delivering it to the destination\\. For valid values, see the `IntervalInSeconds` content for the [BufferingHints](https://docs.aws.amazon.com/firehose/latest/APIReference/API_BufferingHints.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `60` \n*Maximum*: `900` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalInSeconds", "type": "number" }, "SizeInMBs": { + "markdownDescription": "The size of the buffer, in MBs, that Kinesis Data Firehose uses for incoming data before delivering it to the destination\\. For valid values, see the `SizeInMBs` content for the [BufferingHints](https://docs.aws.amazon.com/firehose/latest/APIReference/API_BufferingHints.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SizeInMBs", "type": "number" } }, @@ -92408,12 +112427,18 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Indicates whether CloudWatch Logs logging is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "LogGroupName": { + "markdownDescription": "The name of the CloudWatch Logs log group that contains the log stream that Kinesis Data Firehose will use\\. \nConditional\\. If you enable logging, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroupName", "type": "string" }, "LogStreamName": { + "markdownDescription": "The name of the CloudWatch Logs log stream that Kinesis Data Firehose uses to send logs about data delivery\\. \nConditional\\. If you enable logging, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `512` \n*Pattern*: `[^:*]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogStreamName", "type": "string" } }, @@ -92423,12 +112448,18 @@ "additionalProperties": false, "properties": { "CopyOptions": { + "markdownDescription": "Parameters to use with the Amazon Redshift `COPY` command\\. For examples, see the `CopyOptions` content for the [CopyCommand](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CopyCommand.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `204800` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CopyOptions", "type": "string" }, "DataTableColumns": { + "markdownDescription": "A comma\\-separated list of column names\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `204800` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataTableColumns", "type": "string" }, "DataTableName": { + "markdownDescription": "The name of the target table\\. The table must already exist in the database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataTableName", "type": "string" } }, @@ -92441,16 +112472,24 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Defaults to `true`\\. Set it to `false` if you want to disable format conversion while preserving the configuration details\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "InputFormatConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.InputFormatConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.InputFormatConfiguration", + "markdownDescription": "Specifies the deserializer that you want Kinesis Data Firehose to use to convert the format of your data from JSON\\. This parameter is required if `Enabled` is set to true\\. \n*Required*: No \n*Type*: [InputFormatConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-inputformatconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputFormatConfiguration" }, "OutputFormatConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OutputFormatConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OutputFormatConfiguration", + "markdownDescription": "Specifies the serializer that you want Kinesis Data Firehose to use to convert the format of your data to the Parquet or ORC format\\. This parameter is required if `Enabled` is set to true\\. \n*Required*: No \n*Type*: [OutputFormatConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-outputformatconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputFormatConfiguration" }, "SchemaConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SchemaConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SchemaConfiguration", + "markdownDescription": "Specifies the AWS Glue Data Catalog table that contains the column information\\. This parameter is required if `Enabled` is set to true\\. \n*Required*: No \n*Type*: [SchemaConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-schemaconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaConfiguration" } }, "type": "object" @@ -92459,9 +112498,13 @@ "additionalProperties": false, "properties": { "KeyARN": { + "markdownDescription": "If you set `KeyType` to `CUSTOMER_MANAGED_CMK`, you must specify the Amazon Resource Name \\(ARN\\) of the CMK\\. If you set `KeyType` to ` AWS_OWNED_CMK`, Kinesis Data Firehose uses a service\\-account CMK\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyARN", "type": "string" }, "KeyType": { + "markdownDescription": "Indicates the type of customer master key \\(CMK\\) to use for encryption\\. The default setting is `AWS_OWNED_CMK`\\. For more information about CMKs, see [Customer Master Keys \\(CMKs\\)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys)\\. \nYou can use a CMK of type CUSTOMER\\_MANAGED\\_CMK to encrypt up to 500 delivery streams\\. \nTo encrypt your delivery stream, use symmetric CMKs\\. Kinesis Data Firehose doesn't support asymmetric CMKs\\. For information about symmetric and asymmetric CMKs, see [About Symmetric and Asymmetric CMKs](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html) in the AWS Key Management Service developer guide\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `AWS_OWNED_CMK | CUSTOMER_MANAGED_CMK` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyType", "type": "string" } }, @@ -92474,10 +112517,14 @@ "additionalProperties": false, "properties": { "HiveJsonSerDe": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HiveJsonSerDe" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HiveJsonSerDe", + "markdownDescription": "The native Hive / HCatalog JsonSerDe\\. Used by Kinesis Data Firehose for deserializing data, which means converting it from the JSON format in preparation for serializing it to the Parquet or ORC format\\. This is one of two deserializers you can choose, depending on which one offers the functionality you need\\. The other option is the OpenX SerDe\\. \n*Required*: No \n*Type*: [HiveJsonSerDe](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-hivejsonserde.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HiveJsonSerDe" }, "OpenXJsonSerDe": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OpenXJsonSerDe" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OpenXJsonSerDe", + "markdownDescription": "The OpenX SerDe\\. Used by Kinesis Data Firehose for deserializing data, which means converting it from the JSON format in preparation for serializing it to the Parquet or ORC format\\. This is one of two deserializers you can choose, depending on which one offers the functionality you need\\. The other option is the native Hive / HCatalog JsonSerDe\\. \n*Required*: No \n*Type*: [OpenXJsonSerDe](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-openxjsonserde.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OpenXJsonSerDe" } }, "type": "object" @@ -92486,10 +112533,14 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Specifies whether dynamic partitioning is enabled for this Kinesis Data Firehose delivery stream\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "RetryOptions": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RetryOptions" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RetryOptions", + "markdownDescription": "Specifies the retry behavior in case Kinesis Data Firehose is unable to deliver data to an Amazon S3 prefix\\. \n*Required*: No \n*Type*: [RetryOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-retryoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryOptions" } }, "type": "object" @@ -92498,9 +112549,13 @@ "additionalProperties": false, "properties": { "IntervalInSeconds": { + "markdownDescription": "The length of time, in seconds, that Kinesis Data Firehose buffers incoming data before delivering it to the destination\\. For valid values, see the `IntervalInSeconds` content for the [BufferingHints](https://docs.aws.amazon.com/firehose/latest/APIReference/API_BufferingHints.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `60` \n*Maximum*: `900` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalInSeconds", "type": "number" }, "SizeInMBs": { + "markdownDescription": "The size of the buffer, in MBs, that Kinesis Data Firehose uses for incoming data before delivering it to the destination\\. For valid values, see the `SizeInMBs` content for the [BufferingHints](https://docs.aws.amazon.com/firehose/latest/APIReference/API_BufferingHints.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SizeInMBs", "type": "number" } }, @@ -92510,43 +112565,69 @@ "additionalProperties": false, "properties": { "BufferingHints": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints", + "markdownDescription": "Configures how Kinesis Data Firehose buffers incoming data while delivering it to the Amazon ES domain\\. \n*Required*: No \n*Type*: [ElasticsearchBufferingHints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchbufferinghints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BufferingHints" }, "CloudWatchLoggingOptions": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions", + "markdownDescription": "The Amazon CloudWatch Logs logging options for the delivery stream\\. \n*Required*: No \n*Type*: [CloudWatchLoggingOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLoggingOptions" }, "ClusterEndpoint": { + "markdownDescription": "The endpoint to use when communicating with the cluster\\. Specify either this `ClusterEndpoint` or the `DomainARN` field\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterEndpoint", "type": "string" }, "DomainARN": { + "markdownDescription": "The ARN of the Amazon ES domain\\. The IAM role must have permissions for `DescribeElasticsearchDomain`, `DescribeElasticsearchDomains`, and `DescribeElasticsearchDomainConfig` after assuming the role specified in **RoleARN**\\. \nSpecify either `ClusterEndpoint` or `DomainARN`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainARN", "type": "string" }, "IndexName": { + "markdownDescription": "The name of the Elasticsearch index to which Kinesis Data Firehose adds data for indexing\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `80` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IndexName", "type": "string" }, "IndexRotationPeriod": { + "markdownDescription": "The frequency of Elasticsearch index rotation\\. If you enable index rotation, Kinesis Data Firehose appends a portion of the UTC arrival timestamp to the specified index name, and rotates the appended timestamp accordingly\\. For more information, see [Index Rotation for the Amazon ES Destination](https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation) in the *Amazon Kinesis Data Firehose Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NoRotation | OneDay | OneHour | OneMonth | OneWeek` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IndexRotationPeriod", "type": "string" }, "ProcessingConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration", + "markdownDescription": "The data processing configuration for the Kinesis Data Firehose delivery stream\\. \n*Required*: No \n*Type*: [ProcessingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProcessingConfiguration" }, "RetryOptions": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchRetryOptions" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchRetryOptions", + "markdownDescription": "The retry behavior when Kinesis Data Firehose is unable to deliver data to Amazon ES\\. \n*Required*: No \n*Type*: [ElasticsearchRetryOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchretryoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryOptions" }, "RoleARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon ES Configuration API and for indexing documents\\. For more information, see [Controlling Access with Amazon Kinesis Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleARN", "type": "string" }, "S3BackupMode": { + "markdownDescription": "The condition under which Kinesis Data Firehose delivers data to Amazon Simple Storage Service \\(Amazon S3\\)\\. You can send Amazon S3 all documents \\(all data\\) or only the documents that Kinesis Data Firehose could not deliver to the Amazon ES destination\\. For more information and valid values, see the `S3BackupMode` content for the [ElasticsearchDestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ElasticsearchDestinationConfiguration.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AllDocuments | FailedDocumentsOnly` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BackupMode", "type": "string" }, "S3Configuration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration", + "markdownDescription": "The S3 bucket where Kinesis Data Firehose backs up incoming data\\. \n*Required*: Yes \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Configuration" }, "TypeName": { + "markdownDescription": "The Elasticsearch type name that Amazon ES adds to documents when indexing data\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `100` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TypeName", "type": "string" }, "VpcConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.VpcConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.VpcConfiguration", + "markdownDescription": "The details of the VPC of the Amazon ES destination\\. \n*Required*: No \n*Type*: [VpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-vpcconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcConfiguration" } }, "required": [ @@ -92560,6 +112641,8 @@ "additionalProperties": false, "properties": { "DurationInSeconds": { + "markdownDescription": "After an initial failure to deliver to Amazon ES, the total amount of time during which Kinesis Data Firehose re\\-attempts delivery \\(including the first attempt\\)\\. If Kinesis Data Firehose can't deliver the data within the specified time, it writes the data to the backup S3 bucket\\. For valid values, see the `DurationInSeconds` content for the [ElasticsearchRetryOptions](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ElasticsearchRetryOptions.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `7200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DurationInSeconds", "type": "number" } }, @@ -92569,9 +112652,13 @@ "additionalProperties": false, "properties": { "KMSEncryptionConfig": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.KMSEncryptionConfig" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.KMSEncryptionConfig", + "markdownDescription": "The AWS Key Management Service \\(AWS KMS\\) encryption key that Amazon S3 uses to encrypt your data\\. \n*Required*: No \n*Type*: [KMSEncryptionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kmsencryptionconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KMSEncryptionConfig" }, "NoEncryptionConfig": { + "markdownDescription": "Disables encryption\\. For valid values, see the `NoEncryptionConfig` content for the [EncryptionConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_EncryptionConfiguration.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NoEncryption` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoEncryptionConfig", "type": "string" } }, @@ -92581,42 +112668,68 @@ "additionalProperties": false, "properties": { "BucketARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon S3 bucket\\. For constraints, see [ExtendedS3DestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ExtendedS3DestinationConfiguration.html) in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketARN", "type": "string" }, "BufferingHints": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.BufferingHints" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.BufferingHints", + "markdownDescription": "The buffering option\\. \n*Required*: No \n*Type*: [BufferingHints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-bufferinghints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BufferingHints" }, "CloudWatchLoggingOptions": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions", + "markdownDescription": "The Amazon CloudWatch logging options for your delivery stream\\. \n*Required*: No \n*Type*: [CloudWatchLoggingOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLoggingOptions" }, "CompressionFormat": { + "markdownDescription": "The compression format\\. If no value is specified, the default is `UNCOMPRESSED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GZIP | HADOOP_SNAPPY | Snappy | UNCOMPRESSED | ZIP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CompressionFormat", "type": "string" }, "DataFormatConversionConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DataFormatConversionConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DataFormatConversionConfiguration", + "markdownDescription": "The serializer, deserializer, and schema for converting data from the JSON format to the Parquet or ORC format before writing it to Amazon S3\\. \n*Required*: No \n*Type*: [DataFormatConversionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-dataformatconversionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataFormatConversionConfiguration" }, "DynamicPartitioningConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DynamicPartitioningConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DynamicPartitioningConfiguration", + "markdownDescription": "The configuration of the dynamic partitioning mechanism that creates targeted data sets from the streaming data by partitioning it based on partition keys\\. \n*Required*: No \n*Type*: [DynamicPartitioningConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-dynamicpartitioningconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DynamicPartitioningConfiguration" }, "EncryptionConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.EncryptionConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.EncryptionConfiguration", + "markdownDescription": "The encryption configuration for the Kinesis Data Firehose delivery stream\\. The default value is `NoEncryption`\\. \n*Required*: No \n*Type*: [EncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-encryptionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionConfiguration" }, "ErrorOutputPrefix": { + "markdownDescription": "A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3\\. This prefix appears immediately following the bucket name\\. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorOutputPrefix", "type": "string" }, "Prefix": { + "markdownDescription": "The `YYYY/MM/DD/HH` time format prefix is automatically used for delivered Amazon S3 files\\. For more information, see [ExtendedS3DestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ExtendedS3DestinationConfiguration.html) in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" }, "ProcessingConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration", + "markdownDescription": "The data processing configuration for the Kinesis Data Firehose delivery stream\\. \n*Required*: No \n*Type*: [ProcessingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProcessingConfiguration" }, "RoleARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS credentials\\. For constraints, see [ExtendedS3DestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ExtendedS3DestinationConfiguration.html) in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleARN", "type": "string" }, "S3BackupConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration", + "markdownDescription": "The configuration for backup in Amazon S3\\. \n*Required*: No \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BackupConfiguration" }, "S3BackupMode": { + "markdownDescription": "The Amazon S3 backup mode\\. After you create a delivery stream, you can update it to enable Amazon S3 backup if it is disabled\\. If backup is enabled, you can't update the delivery stream to disable it\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BackupMode", "type": "string" } }, @@ -92633,6 +112746,8 @@ "items": { "type": "string" }, + "markdownDescription": "Indicates how you want Kinesis Data Firehose to parse the date and timestamps that may be present in your input data JSON\\. To specify these format strings, follow the pattern syntax of JodaTime's DateTimeFormat format strings\\. For more information, see [Class DateTimeFormat](https://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html)\\. You can also use the special value `millis` to parse timestamps in epoch milliseconds\\. If you don't specify a format, Kinesis Data Firehose uses `java.sql.Timestamp::valueOf` by default\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimestampFormats", "type": "array" } }, @@ -92642,9 +112757,13 @@ "additionalProperties": false, "properties": { "AttributeName": { + "markdownDescription": "The name of the HTTP endpoint common attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^(?!\\s*$).+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeName", "type": "string" }, "AttributeValue": { + "markdownDescription": "The value of the HTTP endpoint common attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeValue", "type": "string" } }, @@ -92658,12 +112777,18 @@ "additionalProperties": false, "properties": { "AccessKey": { + "markdownDescription": "The access key required for Kinesis Firehose to authenticate with the HTTP endpoint selected as the destination\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `4096` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessKey", "type": "string" }, "Name": { + "markdownDescription": "The name of the HTTP endpoint selected as the destination\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^(?!\\s*$).+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Url": { + "markdownDescription": "The URL of the HTTP endpoint selected as the destination\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Pattern*: `https://.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", "type": "string" } }, @@ -92676,31 +112801,49 @@ "additionalProperties": false, "properties": { "BufferingHints": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.BufferingHints" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.BufferingHints", + "markdownDescription": "The buffering options that can be used before data is delivered to the specified destination\\. Kinesis Data Firehose treats these options as hints, and it might choose to use more optimal values\\. The SizeInMBs and IntervalInSeconds parameters are optional\\. However, if you specify a value for one of them, you must also provide a value for the other\\. \n*Required*: No \n*Type*: [BufferingHints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-bufferinghints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BufferingHints" }, "CloudWatchLoggingOptions": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions", + "markdownDescription": "Describes the Amazon CloudWatch logging options for your delivery stream\\. \n*Required*: No \n*Type*: [CloudWatchLoggingOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLoggingOptions" }, "EndpointConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HttpEndpointConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HttpEndpointConfiguration", + "markdownDescription": "The configuration of the HTTP endpoint selected as the destination\\. \n*Required*: Yes \n*Type*: [HttpEndpointConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointConfiguration" }, "ProcessingConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration", + "markdownDescription": "Describes the data processing configuration\\. \n*Required*: No \n*Type*: [ProcessingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProcessingConfiguration" }, "RequestConfiguration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HttpEndpointRequestConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HttpEndpointRequestConfiguration", + "markdownDescription": "The configuration of the request sent to the HTTP endpoint specified as the destination\\. \n*Required*: No \n*Type*: [HttpEndpointRequestConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointrequestconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestConfiguration" }, "RetryOptions": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RetryOptions" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RetryOptions", + "markdownDescription": "Describes the retry behavior in case Kinesis Data Firehose is unable to deliver data to the specified HTTP endpoint destination, or if it doesn't receive a valid acknowledgment of receipt from the specified HTTP endpoint destination\\. \n*Required*: No \n*Type*: [RetryOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-retryoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryOptions" }, "RoleARN": { + "markdownDescription": "Kinesis Data Firehose uses this IAM role for all the permissions that the delivery stream needs\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleARN", "type": "string" }, "S3BackupMode": { + "markdownDescription": "Describes the S3 bucket backup options for the data that Kinesis Data Firehose delivers to the HTTP endpoint destination\\. You can back up all documents \\(AllData\\) or only the documents that Kinesis Data Firehose could not deliver to the specified HTTP endpoint destination \\(FailedDataOnly\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AllData | FailedDataOnly` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BackupMode", "type": "string" }, "S3Configuration": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration", + "markdownDescription": "Describes the configuration of a destination in Amazon S3\\. \n*Required*: Yes \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Configuration" } }, "required": [ @@ -92716,9 +112859,13 @@ "items": { "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HttpEndpointCommonAttribute" }, + "markdownDescription": "Describes the metadata sent to the HTTP endpoint destination\\. \n*Required*: No \n*Type*: List of [HttpEndpointCommonAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointcommonattribute.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CommonAttributes", "type": "array" }, "ContentEncoding": { + "markdownDescription": "Kinesis Data Firehose uses the content encoding to compress the body of a request before sending the request to the destination\\. For more information, see Content\\-Encoding in MDN Web Docs, the official Mozilla documentation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GZIP | NONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentEncoding", "type": "string" } }, @@ -92728,7 +112875,9 @@ "additionalProperties": false, "properties": { "Deserializer": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.Deserializer" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.Deserializer", + "markdownDescription": "Specifies which deserializer to use\\. You can choose either the Apache Hive JSON SerDe or the OpenX JSON SerDe\\. If both are non\\-null, the server rejects the request\\. \n*Required*: No \n*Type*: [Deserializer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deserializer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Deserializer" } }, "type": "object" @@ -92737,6 +112886,8 @@ "additionalProperties": false, "properties": { "AWSKMSKeyARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS KMS encryption key that Amazon S3 uses to encrypt data delivered by the Kinesis Data Firehose stream\\. The key must belong to the same region as the destination S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AWSKMSKeyARN", "type": "string" } }, @@ -92749,9 +112900,13 @@ "additionalProperties": false, "properties": { "KinesisStreamARN": { + "markdownDescription": "The ARN of the source Kinesis data stream\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KinesisStreamARN", "type": "string" }, "RoleARN": { + "markdownDescription": "The ARN of the role that provides access to the source Kinesis data stream\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RoleARN", "type": "string" } }, @@ -92765,18 +112920,24 @@ "additionalProperties": false, "properties": { "CaseInsensitive": { + "markdownDescription": "When set to `true`, which is the default, Kinesis Data Firehose converts JSON keys to lowercase before deserializing them\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaseInsensitive", "type": "boolean" }, "ColumnToJsonKeyMappings": { "additionalProperties": true, + "markdownDescription": "Maps column names to JSON keys that aren't identical to the column names\\. This is useful when the JSON contains keys that are Hive keywords\\. For example, `timestamp` is a Hive keyword\\. If you have a JSON key named `timestamp`, set this parameter to `{\"ts\": \"timestamp\"}` to map this key to a column named `ts`\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "ColumnToJsonKeyMappings", "type": "object" }, "ConvertDotsInJsonKeysToUnderscores": { + "markdownDescription": "When set to `true`, specifies that the names of the keys include dots and that you want Kinesis Data Firehose to replace them with underscores\\. This is useful because Apache Hive does not allow dots in column names\\. For example, if the JSON contains a key whose name is \"a\\.b\", you can define the column name to be \"a\\_b\" when using this option\\. \nThe default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConvertDotsInJsonKeysToUnderscores", "type": "boolean" } }, @@ -92786,36 +112947,56 @@ "additionalProperties": false, "properties": { "BlockSizeBytes": { + "markdownDescription": "The Hadoop Distributed File System \\(HDFS\\) block size\\. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying\\. The default is 256 MiB and the minimum is 64 MiB\\. Kinesis Data Firehose uses this value for padding calculations\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `67108864` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockSizeBytes", "type": "number" }, "BloomFilterColumns": { "items": { "type": "string" }, + "markdownDescription": "The column names for which you want Kinesis Data Firehose to create bloom filters\\. The default is `null`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BloomFilterColumns", "type": "array" }, "BloomFilterFalsePositiveProbability": { + "markdownDescription": "The Bloom filter false positive probability \\(FPP\\)\\. The lower the FPP, the bigger the Bloom filter\\. The default value is 0\\.05, the minimum is 0, and the maximum is 1\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BloomFilterFalsePositiveProbability", "type": "number" }, "Compression": { + "markdownDescription": "The compression code to use over data blocks\\. The default is `SNAPPY`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | SNAPPY | ZLIB` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Compression", "type": "string" }, "DictionaryKeyThreshold": { + "markdownDescription": "Represents the fraction of the total number of non\\-null rows\\. To turn off dictionary encoding, set this fraction to a number that is less than the number of distinct keys in a dictionary\\. To always use dictionary encoding, set this threshold to 1\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DictionaryKeyThreshold", "type": "number" }, "EnablePadding": { + "markdownDescription": "Set this to `true` to indicate that you want stripes to be padded to the HDFS block boundaries\\. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnablePadding", "type": "boolean" }, "FormatVersion": { + "markdownDescription": "The version of the file to write\\. The possible values are `V0_11` and `V0_12`\\. The default is `V0_12`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `V0_11 | V0_12` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FormatVersion", "type": "string" }, "PaddingTolerance": { + "markdownDescription": "A number between 0 and 1 that defines the tolerance for block padding as a decimal fraction of stripe size\\. The default value is 0\\.05, which means 5 percent of stripe size\\. \nFor the default values of 64 MiB ORC stripes and 256 MiB HDFS blocks, the default block padding tolerance of 5 percent reserves a maximum of 3\\.2 MiB for padding within the 256 MiB block\\. In such a case, if the available size within the block is more than 3\\.2 MiB, a new, smaller stripe is inserted to fit within that space\\. This ensures that no stripe crosses block boundaries and causes remote reads within a node\\-local task\\. \nKinesis Data Firehose ignores this parameter when `EnablePadding` is `false`\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PaddingTolerance", "type": "number" }, "RowIndexStride": { + "markdownDescription": "The number of rows between index entries\\. The default is 10,000 and the minimum is 1,000\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RowIndexStride", "type": "number" }, "StripeSizeBytes": { + "markdownDescription": "The number of bytes in each stripe\\. The default is 64 MiB and the minimum is 8 MiB\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `8388608` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StripeSizeBytes", "type": "number" } }, @@ -92825,7 +113006,9 @@ "additionalProperties": false, "properties": { "Serializer": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.Serializer" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.Serializer", + "markdownDescription": "Specifies which serializer to use\\. You can choose either the ORC SerDe or the Parquet SerDe\\. If both are non\\-null, the server rejects the request\\. \n*Required*: No \n*Type*: [Serializer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-serializer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Serializer" } }, "type": "object" @@ -92834,21 +113017,33 @@ "additionalProperties": false, "properties": { "BlockSizeBytes": { + "markdownDescription": "The Hadoop Distributed File System \\(HDFS\\) block size\\. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying\\. The default is 256 MiB and the minimum is 64 MiB\\. Kinesis Data Firehose uses this value for padding calculations\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `67108864` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockSizeBytes", "type": "number" }, "Compression": { + "markdownDescription": "The compression code to use over data blocks\\. The possible values are `UNCOMPRESSED`, `SNAPPY`, and `GZIP`, with the default being `SNAPPY`\\. Use `SNAPPY` for higher decompression speed\\. Use `GZIP` if the compression ratio is more important than speed\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GZIP | SNAPPY | UNCOMPRESSED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Compression", "type": "string" }, "EnableDictionaryCompression": { + "markdownDescription": "Indicates whether to enable dictionary compression\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableDictionaryCompression", "type": "boolean" }, "MaxPaddingBytes": { + "markdownDescription": "The maximum amount of padding to apply\\. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying\\. The default is 0\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxPaddingBytes", "type": "number" }, "PageSizeBytes": { + "markdownDescription": "The Parquet page size\\. Column chunks are divided into pages\\. A page is conceptually an indivisible unit \\(in terms of compression and encoding\\)\\. The minimum value is 64 KiB and the default is 1 MiB\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `65536` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PageSizeBytes", "type": "number" }, "WriterVersion": { + "markdownDescription": "Indicates the version of row format to output\\. The possible values are `V1` and `V2`\\. The default is `V1`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `V1 | V2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WriterVersion", "type": "string" } }, @@ -92858,12 +113053,16 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Indicates whether data processing is enabled \\(true\\) or disabled \\(false\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "Processors": { "items": { "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.Processor" }, + "markdownDescription": "The data processors\\. \n*Required*: No \n*Type*: List of [Processor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Processors", "type": "array" } }, @@ -92876,9 +113075,13 @@ "items": { "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessorParameter" }, + "markdownDescription": "The processor parameters\\. \n*Required*: No \n*Type*: List of [ProcessorParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processorparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "array" }, "Type": { + "markdownDescription": "The type of processor\\. Valid values: `Lambda`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AppendDelimiterToRecord | Lambda | MetadataExtraction | RecordDeAggregation` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -92891,9 +113094,13 @@ "additionalProperties": false, "properties": { "ParameterName": { + "markdownDescription": "The name of the parameter\\. Currently the following default values are supported: 3 for `NumberOfRetries`, 60 for the `BufferIntervalInSeconds`, and 3 for the `BufferSizeInMBs`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BufferIntervalInSeconds | BufferSizeInMBs | Delimiter | JsonParsingEngine | LambdaArn | MetadataExtractionQuery | NumberOfRetries | RoleArn | SubRecordType` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterName", "type": "string" }, "ParameterValue": { + "markdownDescription": "The parameter value\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `5120` \n*Pattern*: `^(?!\\s*$).+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterValue", "type": "string" } }, @@ -92907,36 +113114,58 @@ "additionalProperties": false, "properties": { "CloudWatchLoggingOptions": { - "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions" + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions", + "markdownDescription": "The CloudWatch logging options for your delivery stream\\. \n*Required*: No \n*Type*: [CloudWatchLoggingOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLoggingOptions" }, "ClusterJDBCURL": { + "markdownDescription": "The connection string that Kinesis Data Firehose uses to connect to the Amazon Redshift cluster\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `jdbc:(redshift|postgresql)://((?!-)[A-Za-z0-9-]{1,63}(?\"\\)\nRepresent Unicode characters with four digits, for example \"\\]u0041\" or \"\\\\u005A\"\\. \nThe following regular expression operators are not supported: \n+ Infinite repeaters: \\*, \\+, or \\{x,\\} with no upper bound\n+ Wild card \\(\\.\\)\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Pattern", "type": "string" } }, @@ -96740,12 +118218,18 @@ "additionalProperties": false, "properties": { "AdvancedRecognitionSetting": { - "$ref": "#/definitions/AWS::Lex::Bot.AdvancedRecognitionSetting" + "$ref": "#/definitions/AWS::Lex::Bot.AdvancedRecognitionSetting", + "markdownDescription": "Specifies settings that enable advanced recognition settings for slot values\\. You can use this to enable using slot values as a custom vocabulary for recognizing user utterances\\. \n*Required*: No \n*Type*: [AdvancedRecognitionSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-advancedrecognitionsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdvancedRecognitionSetting" }, "RegexFilter": { - "$ref": "#/definitions/AWS::Lex::Bot.SlotValueRegexFilter" + "$ref": "#/definitions/AWS::Lex::Bot.SlotValueRegexFilter", + "markdownDescription": "A regular expression used to validate the value of a slot\\. \n*Required*: No \n*Type*: [SlotValueRegexFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-slotvalueregexfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegexFilter" }, "ResolutionStrategy": { + "markdownDescription": "Determines the slot resolution strategy that Amazon Lex uses to return slot type values\\. The field can be set to one of the following values: \n+ OriginalValue \\- Returns the value entered by the user, if the user value is similar to a slot value\\.\n+ TopResolution \\- If there is a resolution list for the slot, return the first value in the resolution list as the slot type value\\. If there is no resolution list, null is returned\\.\nIf you don't specify the valueSelectionStrategy, the default is OriginalValue\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResolutionStrategy", "type": "string" } }, @@ -96758,18 +118242,26 @@ "additionalProperties": false, "properties": { "AllowInterrupt": { + "markdownDescription": "Indicates that the user can interrupt the response by speaking while the message is being played\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowInterrupt", "type": "boolean" }, "FrequencyInSeconds": { + "markdownDescription": "How often a message should be sent to the user\\. Minimum of 1 second, maximum of 5 minutes\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrequencyInSeconds", "type": "number" }, "MessageGroupsList": { "items": { "$ref": "#/definitions/AWS::Lex::Bot.MessageGroup" }, + "markdownDescription": "A collection of responses that Amazon Lex can send to the user\\. Amazon Lex chooses the actual response to send at runtime\\. \n*Required*: Yes \n*Type*: List of [MessageGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-messagegroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageGroupsList", "type": "array" }, "TimeoutInSeconds": { + "markdownDescription": "If Amazon Lex waits longer than this length of time for a response, it will stop sending messages\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutInSeconds", "type": "number" } }, @@ -96787,16 +118279,24 @@ "items": { "$ref": "#/definitions/AWS::Lex::Bot.BotAliasLocaleSettingsItem" }, + "markdownDescription": "Specifies settings that are unique to a locale\\. For example, you can use a different Lambda function depending on the bot's locale\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-botaliaslocalesettings.html) of [BotAliasLocaleSettingsItem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-botaliaslocalesettingsitem.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BotAliasLocaleSettings", "type": "array" }, "ConversationLogSettings": { - "$ref": "#/definitions/AWS::Lex::Bot.ConversationLogSettings" + "$ref": "#/definitions/AWS::Lex::Bot.ConversationLogSettings", + "markdownDescription": "Specifies settings for conversation logs that save audio, text, and metadata information for conversations with your users\\. \n*Required*: No \n*Type*: [ConversationLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-conversationlogsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConversationLogSettings" }, "Description": { + "markdownDescription": "Specifies a description for the test bot alias\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "SentimentAnalysisSettings": { - "$ref": "#/definitions/AWS::Lex::Bot.SentimentAnalysisSettings" + "$ref": "#/definitions/AWS::Lex::Bot.SentimentAnalysisSettings", + "markdownDescription": "Specifies whether Amazon Lex will use Amazon Comprehend to detect the sentiment of user utterances\\. \n*Required*: No \n*Type*: [SentimentAnalysisSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-sentimentanalysissettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SentimentAnalysisSettings" } }, "type": "object" @@ -96805,6 +118305,8 @@ "additionalProperties": false, "properties": { "StartTimeoutMs": { + "markdownDescription": "Property description not available\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartTimeoutMs", "type": "number" } }, @@ -96817,7 +118319,9 @@ "additionalProperties": false, "properties": { "CloudWatch": { - "$ref": "#/definitions/AWS::Lex::Bot.CloudWatchLogGroupLogDestination" + "$ref": "#/definitions/AWS::Lex::Bot.CloudWatchLogGroupLogDestination", + "markdownDescription": "Specifies the Amazon CloudWatch Logs log group where text and metadata logs are delivered\\. \n*Required*: Yes \n*Type*: [CloudWatchLogGroupLogDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-cloudwatchloggrouplogdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatch" } }, "required": [ @@ -96829,9 +118333,13 @@ "additionalProperties": false, "properties": { "Destination": { - "$ref": "#/definitions/AWS::Lex::Bot.TextLogDestination" + "$ref": "#/definitions/AWS::Lex::Bot.TextLogDestination", + "markdownDescription": "Specifies the Amazon CloudWatch Logs destination log group for conversation text logs\\. \n*Required*: Yes \n*Type*: [TextLogDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-textlogdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" }, "Enabled": { + "markdownDescription": "Specifies whether conversation logs should be stored for an alias\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -96845,9 +118353,13 @@ "additionalProperties": false, "properties": { "Engine": { + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Engine", "type": "string" }, "VoiceId": { + "markdownDescription": "The Amazon Polly voice used for voice interaction with the user\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VoiceId", "type": "string" } }, @@ -96860,16 +118372,24 @@ "additionalProperties": false, "properties": { "ContinueResponse": { - "$ref": "#/definitions/AWS::Lex::Bot.ResponseSpecification" + "$ref": "#/definitions/AWS::Lex::Bot.ResponseSpecification", + "markdownDescription": "The response that Amazon Lex sends to indicate that the bot is ready to continue the conversation\\. \n*Required*: Yes \n*Type*: [ResponseSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-responsespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContinueResponse" }, "IsActive": { + "markdownDescription": "Specifies whether the bot will wait for a user to respond\\. When this field is false, wait and continue responses for a slot aren't used and the bot expects an appropriate response within the configured timeout\\. If the IsActive field isn't specified, the default is true\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsActive", "type": "boolean" }, "StillWaitingResponse": { - "$ref": "#/definitions/AWS::Lex::Bot.StillWaitingResponseSpecification" + "$ref": "#/definitions/AWS::Lex::Bot.StillWaitingResponseSpecification", + "markdownDescription": "A response that Amazon Lex sends periodically to the user to indicate that the bot is still waiting for input from the user\\. \n*Required*: No \n*Type*: [StillWaitingResponseSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-stillwaitingresponsespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StillWaitingResponse" }, "WaitingResponse": { - "$ref": "#/definitions/AWS::Lex::Bot.ResponseSpecification" + "$ref": "#/definitions/AWS::Lex::Bot.ResponseSpecification", + "markdownDescription": "The response that Amazon Lex sends to indicate that the bot is waiting for the conversation to continue\\. \n*Required*: Yes \n*Type*: [ResponseSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-responsespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WaitingResponse" } }, "required": [ @@ -96917,31 +118437,47 @@ "items": { "$ref": "#/definitions/AWS::Lex::BotAlias.BotAliasLocaleSettingsItem" }, + "markdownDescription": "Maps configuration information to a specific locale\\. You can use this parameter to specify a specific Lambda function to run different functions in different locales\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-botaliaslocalesettings.html) of [BotAliasLocaleSettingsItem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-botaliaslocalesettingsitem.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BotAliasLocaleSettings", "type": "array" }, "BotAliasName": { + "markdownDescription": "The name of the bot alias\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^([0-9a-zA-Z][_-]?)+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BotAliasName", "type": "string" }, "BotAliasTags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nYou can only add tags when you specify an alias\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BotAliasTags", "type": "array" }, "BotId": { + "markdownDescription": "The unique identifier of the bot\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BotId", "type": "string" }, "BotVersion": { + "markdownDescription": "The version of the bot that the bot alias references\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `5` \n*Pattern*: `^(DRAFT|[0-9]+)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BotVersion", "type": "string" }, "ConversationLogSettings": { - "$ref": "#/definitions/AWS::Lex::BotAlias.ConversationLogSettings" + "$ref": "#/definitions/AWS::Lex::BotAlias.ConversationLogSettings", + "markdownDescription": "Specifies whether Amazon Lex logs text and audio for conversations with the bot\\. When you enable conversation logs, text logs store text input, transcripts of audio input, and associated metadata in Amazon CloudWatch logs\\. Audio logs store input in Amazon S3\\. \n*Required*: No \n*Type*: [ConversationLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-conversationlogsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConversationLogSettings" }, "Description": { + "markdownDescription": "The description of the bot alias\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "SentimentAnalysisSettings": { - "$ref": "#/definitions/AWS::Lex::BotAlias.SentimentAnalysisSettings" + "$ref": "#/definitions/AWS::Lex::BotAlias.SentimentAnalysisSettings", + "markdownDescription": "Determines whether Amazon Lex will use Amazon Comprehend to detect the sentiment of user utterances\\. \n*Required*: No \n*Type*: [SentimentAnalysisSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-sentimentanalysissettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SentimentAnalysisSettings" } }, "required": [ @@ -96975,7 +118511,9 @@ "additionalProperties": false, "properties": { "S3Bucket": { - "$ref": "#/definitions/AWS::Lex::BotAlias.S3BucketLogDestination" + "$ref": "#/definitions/AWS::Lex::BotAlias.S3BucketLogDestination", + "markdownDescription": "The S3 bucket location where audio logs are stored\\. \n*Required*: Yes \n*Type*: [S3BucketLogDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-s3bucketlogdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Bucket" } }, "required": [ @@ -96987,9 +118525,13 @@ "additionalProperties": false, "properties": { "Destination": { - "$ref": "#/definitions/AWS::Lex::BotAlias.AudioLogDestination" + "$ref": "#/definitions/AWS::Lex::BotAlias.AudioLogDestination", + "markdownDescription": "The location of audio log files collected when conversation logging is enabled for a bot\\. \n*Required*: Yes \n*Type*: [AudioLogDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-audiologdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" }, "Enabled": { + "markdownDescription": "Determines whether audio logging in enabled for the bot\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -97003,9 +118545,13 @@ "additionalProperties": false, "properties": { "CodeHookSpecification": { - "$ref": "#/definitions/AWS::Lex::BotAlias.CodeHookSpecification" + "$ref": "#/definitions/AWS::Lex::BotAlias.CodeHookSpecification", + "markdownDescription": "Specifies the Lambda function that should be used in the locale\\. \n*Required*: No \n*Type*: [CodeHookSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-codehookspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodeHookSpecification" }, "Enabled": { + "markdownDescription": "Determines whether the locale is enabled for the bot\\. If the value is false, the locale isn't available for use\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -97018,9 +118564,13 @@ "additionalProperties": false, "properties": { "BotAliasLocaleSetting": { - "$ref": "#/definitions/AWS::Lex::BotAlias.BotAliasLocaleSettings" + "$ref": "#/definitions/AWS::Lex::BotAlias.BotAliasLocaleSettings", + "markdownDescription": "Specifies settings that are unique to a locale\\. \n*Required*: Yes \n*Type*: [BotAliasLocaleSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-botaliaslocalesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BotAliasLocaleSetting" }, "LocaleId": { + "markdownDescription": "The unique identifier of the locale\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocaleId", "type": "string" } }, @@ -97034,9 +118584,13 @@ "additionalProperties": false, "properties": { "CloudWatchLogGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the log group where text and metadata logs are delivered\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogGroupArn", "type": "string" }, "LogPrefix": { + "markdownDescription": "The prefix of the log stream name within the log group that you specified\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogPrefix", "type": "string" } }, @@ -97050,7 +118604,9 @@ "additionalProperties": false, "properties": { "LambdaCodeHook": { - "$ref": "#/definitions/AWS::Lex::BotAlias.LambdaCodeHook" + "$ref": "#/definitions/AWS::Lex::BotAlias.LambdaCodeHook", + "markdownDescription": "Specifies a Lambda function that verifies requests to a bot or fulfills the user's request to a bot\\. \n*Required*: Yes \n*Type*: [LambdaCodeHook](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-lambdacodehook.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaCodeHook" } }, "required": [ @@ -97065,12 +118621,16 @@ "items": { "$ref": "#/definitions/AWS::Lex::BotAlias.AudioLogSetting" }, + "markdownDescription": "The Amazon S3 settings for logging audio to an S3 bucket\\. \n*Required*: No \n*Type*: List of [AudioLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-audiologsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioLogSettings", "type": "array" }, "TextLogSettings": { "items": { "$ref": "#/definitions/AWS::Lex::BotAlias.TextLogSetting" }, + "markdownDescription": "The Amazon CloudWatch Logs settings for logging text and metadata\\. \n*Required*: No \n*Type*: List of [TextLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-textlogsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextLogSettings", "type": "array" } }, @@ -97080,9 +118640,13 @@ "additionalProperties": false, "properties": { "CodeHookInterfaceVersion": { + "markdownDescription": "The version of the request\\-response that you want Amazon Lex to use to invoke your Lambda function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodeHookInterfaceVersion", "type": "string" }, "LambdaArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Lambda function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaArn", "type": "string" } }, @@ -97096,12 +118660,18 @@ "additionalProperties": false, "properties": { "KmsKeyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS Key Management Service key for encrypting audio log files stored in an S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyArn", "type": "string" }, "LogPrefix": { + "markdownDescription": "The S3 prefix to assign to audio log files\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogPrefix", "type": "string" }, "S3BucketArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an Amazon S3 bucket where audio log files are stored\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketArn", "type": "string" } }, @@ -97115,6 +118685,8 @@ "additionalProperties": false, "properties": { "DetectSentiment": { + "markdownDescription": "Property description not available\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DetectSentiment", "type": "boolean" } }, @@ -97127,7 +118699,9 @@ "additionalProperties": false, "properties": { "CloudWatch": { - "$ref": "#/definitions/AWS::Lex::BotAlias.CloudWatchLogGroupLogDestination" + "$ref": "#/definitions/AWS::Lex::BotAlias.CloudWatchLogGroupLogDestination", + "markdownDescription": "Defines the Amazon CloudWatch Logs log group where text and metadata logs are delivered\\. \n*Required*: Yes \n*Type*: [CloudWatchLogGroupLogDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-cloudwatchloggrouplogdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatch" } }, "required": [ @@ -97139,9 +118713,13 @@ "additionalProperties": false, "properties": { "Destination": { - "$ref": "#/definitions/AWS::Lex::BotAlias.TextLogDestination" + "$ref": "#/definitions/AWS::Lex::BotAlias.TextLogDestination", + "markdownDescription": "Defines the Amazon CloudWatch Logs destination log group for conversation text logs\\. \n*Required*: Yes \n*Type*: [TextLogDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-textlogdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" }, "Enabled": { + "markdownDescription": "Determines whether conversation logs should be stored for an alias\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -97187,15 +118765,21 @@ "additionalProperties": false, "properties": { "BotId": { + "markdownDescription": "The unique identifier of the bot\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BotId", "type": "string" }, "BotVersionLocaleSpecification": { "items": { "$ref": "#/definitions/AWS::Lex::BotVersion.BotVersionLocaleSpecification" }, + "markdownDescription": "Specifies the locales that Amazon Lex adds to this version\\. You can choose the Draft version or any other previously published version for each locale\\. When you specify a source version, the locale data is copied from the source version to the new version\\. \n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botversion-botversionlocalespecification.html) of [BotVersionLocaleSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botversion-botversionlocalespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BotVersionLocaleSpecification", "type": "array" }, "Description": { + "markdownDescription": "The description of the version\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" } }, @@ -97230,6 +118814,8 @@ "additionalProperties": false, "properties": { "SourceBotVersion": { + "markdownDescription": "The version of a bot used for a bot locale\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceBotVersion", "type": "string" } }, @@ -97242,9 +118828,13 @@ "additionalProperties": false, "properties": { "BotVersionLocaleDetails": { - "$ref": "#/definitions/AWS::Lex::BotVersion.BotVersionLocaleDetails" + "$ref": "#/definitions/AWS::Lex::BotVersion.BotVersionLocaleDetails", + "markdownDescription": "The version of a bot used for a bot locale\\. \n*Required*: Yes \n*Type*: [BotVersionLocaleDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botversion-botversionlocaledetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BotVersionLocaleDetails" }, "LocaleId": { + "markdownDescription": "The identifier of the locale to add to the version\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocaleId", "type": "string" } }, @@ -97290,9 +118880,13 @@ "additionalProperties": false, "properties": { "Policy": { + "markdownDescription": "A resource policy to add to the resource\\. The policy is a JSON structure that contains one or more statements that define the policy\\. The policy must follow IAM syntax\\. If the policy isn't valid, Amazon Lex returns a validation exception\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policy", "type": "object" }, "ResourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the bot or bot alias that the resource policy is attached to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceArn", "type": "string" } }, @@ -97362,24 +118956,36 @@ "items": { "type": "string" }, + "markdownDescription": "Allowed operations for the grant\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedOperations", "type": "array" }, "GrantName": { + "markdownDescription": "Grant name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GrantName", "type": "string" }, "HomeRegion": { + "markdownDescription": "Home Region of the grant\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HomeRegion", "type": "string" }, "LicenseArn": { + "markdownDescription": "License ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LicenseArn", "type": "string" }, "Principals": { "items": { "type": "string" }, + "markdownDescription": "The grant principals\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Principals", "type": "array" }, "Status": { + "markdownDescription": "Granted license status\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" } }, @@ -97441,43 +119047,65 @@ "additionalProperties": false, "properties": { "Beneficiary": { + "markdownDescription": "License beneficiary\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Beneficiary", "type": "string" }, "ConsumptionConfiguration": { - "$ref": "#/definitions/AWS::LicenseManager::License.ConsumptionConfiguration" + "$ref": "#/definitions/AWS::LicenseManager::License.ConsumptionConfiguration", + "markdownDescription": "Configuration for consumption of the license\\. \n*Required*: Yes \n*Type*: [ConsumptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-consumptionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConsumptionConfiguration" }, "Entitlements": { "items": { "$ref": "#/definitions/AWS::LicenseManager::License.Entitlement" }, + "markdownDescription": "License entitlements\\. \n*Required*: Yes \n*Type*: List of [Entitlement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-entitlement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Entitlements", "type": "array" }, "HomeRegion": { + "markdownDescription": "Home Region of the license\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HomeRegion", "type": "string" }, "Issuer": { - "$ref": "#/definitions/AWS::LicenseManager::License.IssuerData" + "$ref": "#/definitions/AWS::LicenseManager::License.IssuerData", + "markdownDescription": "License issuer\\. \n*Required*: Yes \n*Type*: [IssuerData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-issuerdata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Issuer" }, "LicenseMetadata": { "items": { "$ref": "#/definitions/AWS::LicenseManager::License.Metadata" }, + "markdownDescription": "License metadata\\. \n*Required*: No \n*Type*: List of [Metadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-metadata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LicenseMetadata", "type": "array" }, "LicenseName": { + "markdownDescription": "License name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LicenseName", "type": "string" }, "ProductName": { + "markdownDescription": "Product name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProductName", "type": "string" }, "ProductSKU": { + "markdownDescription": "Product SKU\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProductSKU", "type": "string" }, "Status": { + "markdownDescription": "License status\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" }, "Validity": { - "$ref": "#/definitions/AWS::LicenseManager::License.ValidityDateFormat" + "$ref": "#/definitions/AWS::LicenseManager::License.ValidityDateFormat", + "markdownDescription": "Date and time range during which the license is valid, in ISO8601\\-UTC format\\. \n*Required*: Yes \n*Type*: [ValidityDateFormat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-validitydateformat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Validity" } }, "required": [ @@ -97516,9 +119144,13 @@ "additionalProperties": false, "properties": { "AllowEarlyCheckIn": { + "markdownDescription": "Indicates whether early check\\-ins are allowed\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowEarlyCheckIn", "type": "boolean" }, "MaxTimeToLiveInMinutes": { + "markdownDescription": "Maximum time for the borrow configuration, in minutes\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxTimeToLiveInMinutes", "type": "number" } }, @@ -97532,12 +119164,18 @@ "additionalProperties": false, "properties": { "BorrowConfiguration": { - "$ref": "#/definitions/AWS::LicenseManager::License.BorrowConfiguration" + "$ref": "#/definitions/AWS::LicenseManager::License.BorrowConfiguration", + "markdownDescription": "Details about a borrow configuration\\. \n*Required*: No \n*Type*: [BorrowConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-borrowconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BorrowConfiguration" }, "ProvisionalConfiguration": { - "$ref": "#/definitions/AWS::LicenseManager::License.ProvisionalConfiguration" + "$ref": "#/definitions/AWS::LicenseManager::License.ProvisionalConfiguration", + "markdownDescription": "Details about a provisional configuration\\. \n*Required*: No \n*Type*: [ProvisionalConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-provisionalconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisionalConfiguration" }, "RenewType": { + "markdownDescription": "Renewal frequency\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RenewType", "type": "string" } }, @@ -97547,21 +119185,33 @@ "additionalProperties": false, "properties": { "AllowCheckIn": { + "markdownDescription": "Indicates whether check\\-ins are allowed\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowCheckIn", "type": "boolean" }, "MaxCount": { + "markdownDescription": "Maximum entitlement count\\. Use if the unit is not None\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCount", "type": "number" }, "Name": { + "markdownDescription": "Entitlement name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Overage": { + "markdownDescription": "Indicates whether overages are allowed\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Overage", "type": "boolean" }, "Unit": { + "markdownDescription": "Entitlement unit\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", "type": "string" }, "Value": { + "markdownDescription": "Entitlement resource\\. Use only if the unit is None\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -97575,9 +119225,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "Issuer name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "SignKey": { + "markdownDescription": "Asymmetric KMS key from AWS Key Management Service\\. The KMS key must have a key usage of sign and verify, and support the RSASSA\\-PSS SHA\\-256 signing algorithm\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SignKey", "type": "string" } }, @@ -97590,9 +119244,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The key name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "The value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -97606,6 +119264,8 @@ "additionalProperties": false, "properties": { "MaxTimeToLiveInMinutes": { + "markdownDescription": "Maximum time for the provisional configuration, in minutes\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxTimeToLiveInMinutes", "type": "number" } }, @@ -97618,9 +119278,13 @@ "additionalProperties": false, "properties": { "Begin": { + "markdownDescription": "Start of the time range\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Begin", "type": "string" }, "End": { + "markdownDescription": "End of the time range\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "End", "type": "string" } }, @@ -97666,42 +119330,64 @@ "additionalProperties": false, "properties": { "AlarmName": { + "markdownDescription": "The name of the alarm\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AlarmName", "type": "string" }, "ComparisonOperator": { + "markdownDescription": "The arithmetic operation to use when comparing the specified statistic and threshold\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GreaterThanOrEqualToThreshold | GreaterThanThreshold | LessThanOrEqualToThreshold | LessThanThreshold` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComparisonOperator", "type": "string" }, "ContactProtocols": { "items": { "type": "string" }, + "markdownDescription": "The contact protocols for the alarm, such as `Email`, `SMS` \\(text messaging\\), or both\\. \n*Allowed Values*: `Email` \\| `SMS` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContactProtocols", "type": "array" }, "DatapointsToAlarm": { + "markdownDescription": "The number of data points within the evaluation periods that must be breaching to cause the alarm to go to the `ALARM` state\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatapointsToAlarm", "type": "number" }, "EvaluationPeriods": { + "markdownDescription": "The number of periods over which data is compared to the specified threshold\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EvaluationPeriods", "type": "number" }, "MetricName": { + "markdownDescription": "The name of the metric associated with the alarm\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BurstCapacityPercentage | BurstCapacityTime | ClientTLSNegotiationErrorCount | CPUUtilization | DatabaseConnections | DiskQueueDepth | FreeStorageSpace | HealthyHostCount | HTTPCode_Instance_2XX_Count | HTTPCode_Instance_3XX_Count | HTTPCode_Instance_4XX_Count | HTTPCode_Instance_5XX_Count | HTTPCode_LB_4XX_Count | HTTPCode_LB_5XX_Count | InstanceResponseTime | NetworkIn | NetworkOut | NetworkReceiveThroughput | NetworkTransmitThroughput | RejectedConnectionCount | RequestCount | StatusCheckFailed | StatusCheckFailed_Instance | StatusCheckFailed_System | UnhealthyHostCount` \n*Update requires*: Updates are not supported\\.", + "title": "MetricName", "type": "string" }, "MonitoredResourceName": { + "markdownDescription": "The name of the Lightsail resource that the alarm monitors\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "MonitoredResourceName", "type": "string" }, "NotificationEnabled": { + "markdownDescription": "A Boolean value indicating whether the alarm is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationEnabled", "type": "boolean" }, "NotificationTriggers": { "items": { "type": "string" }, + "markdownDescription": "The alarm states that trigger a notification\\. \nTo specify the `OK` and `INSUFFICIENT_DATA` values, you must also specify `ContactProtocols` values\\. Otherwise, the `OK` and `INSUFFICIENT_DATA` values will not take effect and the stack will drift\\.\n*Allowed Values*: `OK` \\| `ALARM` \\| `INSUFFICIENT_DATA` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationTriggers", "type": "array" }, "Threshold": { + "markdownDescription": "The value against which the specified statistic is compared\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Threshold", "type": "number" }, "TreatMissingData": { + "markdownDescription": "Specifies how the alarm handles missing data points\\. \nAn alarm can treat missing data in the following ways: \n+ `breaching` \\- Assumes the missing data is not within the threshold\\. Missing data counts towards the number of times that the metric is not within the threshold\\.\n+ `notBreaching` \\- Assumes the missing data is within the threshold\\. Missing data does not count towards the number of times that the metric is not within the threshold\\.\n+ `ignore` \\- Ignores the missing data\\. Maintains the current alarm state\\.\n+ `missing` \\- Missing data is treated as missing\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `breaching | ignore | missing | notBreaching` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TreatMissingData", "type": "string" } }, @@ -97772,33 +119458,47 @@ "additionalProperties": false, "properties": { "AccessRules": { - "$ref": "#/definitions/AWS::Lightsail::Bucket.AccessRules" + "$ref": "#/definitions/AWS::Lightsail::Bucket.AccessRules", + "markdownDescription": "An object that describes the access rules for the bucket\\. \n*Required*: No \n*Type*: [AccessRules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-bucket-accessrules.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessRules" }, "BucketName": { + "markdownDescription": "The name of the bucket\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketName", "type": "string" }, "BundleId": { + "markdownDescription": "The bundle ID for the bucket \\(for example, `small_1_0`\\)\\. \nA bucket bundle specifies the monthly cost, storage space, and data transfer quota for a bucket\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BundleId", "type": "string" }, "ObjectVersioning": { + "markdownDescription": "Indicates whether object versioning is enabled for the bucket\\. \nThe following options can be configured: \n+ `Enabled` \\- Object versioning is enabled\\.\n+ `Suspended` \\- Object versioning was previously enabled but is currently suspended\\. Existing object versions are retained\\.\n+ `NeverEnabled` \\- Object versioning has never been enabled\\.\n*Required*: No \n*Type*: Boolean \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectVersioning", "type": "boolean" }, "ReadOnlyAccessAccounts": { "items": { "type": "string" }, + "markdownDescription": "An array of AWS account IDs that have read\\-only access to the bucket\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadOnlyAccessAccounts", "type": "array" }, "ResourcesReceivingAccess": { "items": { "type": "string" }, + "markdownDescription": "An array of Lightsail instances that have access to the bucket\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourcesReceivingAccess", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -97833,9 +119533,13 @@ "additionalProperties": false, "properties": { "AllowPublicOverrides": { + "markdownDescription": "A Boolean value indicating whether the access control list \\(ACL\\) permissions that are applied to individual objects override the `GetObject` option that is currently specified\\. \nWhen this is true, you can use the [PutObjectAcl](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html) Amazon S3 API operation to set individual objects to public \\(read\\-only\\) or private, using either the `public-read` ACL or the `private` ACL\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowPublicOverrides", "type": "boolean" }, "GetObject": { + "markdownDescription": "Specifies the anonymous access to all objects in a bucket\\. \nThe following options can be specified: \n+ `public` \\- Sets all objects in the bucket to public \\(read\\-only\\), making them readable by everyone on the internet\\.", + "title": "GetObject", "type": "string" } }, @@ -97877,21 +119581,29 @@ "additionalProperties": false, "properties": { "CertificateName": { + "markdownDescription": "The name of the certificate\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateName", "type": "string" }, "DomainName": { + "markdownDescription": "The domain name of the certificate\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "DomainName", "type": "string" }, "SubjectAlternativeNames": { "items": { "type": "string" }, + "markdownDescription": "An array of strings that specify the alternate domains \\(such as `example.org`\\) and subdomains \\(such as `blog.example.com`\\) of the certificate\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: Updates are not supported\\.", + "title": "SubjectAlternativeNames", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -97958,30 +119670,44 @@ "additionalProperties": false, "properties": { "ContainerServiceDeployment": { - "$ref": "#/definitions/AWS::Lightsail::Container.ContainerServiceDeployment" + "$ref": "#/definitions/AWS::Lightsail::Container.ContainerServiceDeployment", + "markdownDescription": "An object that describes the current container deployment of the container service\\. \n*Required*: No \n*Type*: [ContainerServiceDeployment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-containerservicedeployment.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "ContainerServiceDeployment" }, "IsDisabled": { + "markdownDescription": "A Boolean value indicating whether the container service is disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsDisabled", "type": "boolean" }, "Power": { + "markdownDescription": "The power specification of the container service\\. \nThe power specifies the amount of RAM, the number of vCPUs, and the base price of the container service\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `large | medium | micro | nano | small | xlarge` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Power", "type": "string" }, "PublicDomainNames": { "items": { "$ref": "#/definitions/AWS::Lightsail::Container.PublicDomainName" }, + "markdownDescription": "The public domain name of the container service, such as `example.com` and `www.example.com`\\. \nYou can specify up to four public domain names for a container service\\. The domain names that you specify are used when you create a deployment with a container that is configured as the public endpoint of your container service\\. \nIf you don't specify public domain names, then you can use the default domain of the container service\\. \nYou must create and validate an SSL/TLS certificate before you can use public domain names with your container service\\. Use the [AWS::Lightsail::Certificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-certificate.html) resource to create a certificate for the public domain names that you want to use with your container service\\.\n*Required*: No \n*Type*: List of [PublicDomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-publicdomainname.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublicDomainNames", "type": "array" }, "Scale": { + "markdownDescription": "The scale specification of the container service\\. \nThe scale specifies the allocated compute nodes of the container service\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scale", "type": "number" }, "ServiceName": { + "markdownDescription": "The name of the container service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -98020,24 +119746,34 @@ "items": { "type": "string" }, + "markdownDescription": "The launch command for the container\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Command", "type": "array" }, "ContainerName": { + "markdownDescription": "The name of the container\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerName", "type": "string" }, "Environment": { "items": { "$ref": "#/definitions/AWS::Lightsail::Container.EnvironmentVariable" }, + "markdownDescription": "The environment variables of the container\\. \n*Required*: No \n*Type*: List of [EnvironmentVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-environmentvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Environment", "type": "array" }, "Image": { + "markdownDescription": "The name of the image used for the container\\. \nContainer images that are sourced from \\(registered and stored on\\) your container service start with a colon \\(`:`\\)\\. For example, if your container service name is `container-service-1`, the container image label is `mystaticsite`, and you want to use the third version \\(`3`\\) of the registered container image, then you should specify `:container-service-1.mystaticsite.3`\\. To use the latest version of a container image, specify `latest` instead of a version number \\(for example, `:container-service-1.mystaticsite.latest`\\)\\. Your container service will automatically use the highest numbered version of the registered container image\\. \nContainer images that are sourced from a public registry like Docker Hub don\u2019t start with a colon\\. For example, `nginx:latest` or `nginx`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Image", "type": "string" }, "Ports": { "items": { "$ref": "#/definitions/AWS::Lightsail::Container.PortInfo" }, + "markdownDescription": "An object that describes the open firewall ports and protocols of the container\\. \n*Required*: No \n*Type*: List of [PortInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-portinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ports", "type": "array" } }, @@ -98050,10 +119786,14 @@ "items": { "$ref": "#/definitions/AWS::Lightsail::Container.Container" }, + "markdownDescription": "An object that describes the configuration for the containers of the deployment\\. \n*Required*: No \n*Type*: List of [Container](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-container.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Containers", "type": "array" }, "PublicEndpoint": { - "$ref": "#/definitions/AWS::Lightsail::Container.PublicEndpoint" + "$ref": "#/definitions/AWS::Lightsail::Container.PublicEndpoint", + "markdownDescription": "An object that describes the endpoint of the deployment\\. \n*Required*: No \n*Type*: [PublicEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-publicendpoint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublicEndpoint" } }, "type": "object" @@ -98062,9 +119802,13 @@ "additionalProperties": false, "properties": { "Value": { + "markdownDescription": "The environment variable value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" }, "Variable": { + "markdownDescription": "The environment variable key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Variable", "type": "string" } }, @@ -98074,21 +119818,33 @@ "additionalProperties": false, "properties": { "HealthyThreshold": { + "markdownDescription": "The number of consecutive health check successes required before moving the container to the `Healthy` state\\. The default value is `2`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthyThreshold", "type": "number" }, "IntervalSeconds": { + "markdownDescription": "The approximate interval, in seconds, between health checks of an individual container\\. You can specify between `5` and `300` seconds\\. The default value is `5`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalSeconds", "type": "number" }, "Path": { + "markdownDescription": "The path on the container on which to perform the health check\\. The default value is `/`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", "type": "string" }, "SuccessCodes": { + "markdownDescription": "The HTTP codes to use when checking for a successful response from a container\\. You can specify values between `200` and `499`\\. You can specify multiple values \\(for example, `200,202`\\) or a range of values \\(for example, `200-299`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuccessCodes", "type": "string" }, "TimeoutSeconds": { + "markdownDescription": "The amount of time, in seconds, during which no response means a failed health check\\. You can specify between `2` and `60` seconds\\. The default value is `2`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutSeconds", "type": "number" }, "UnhealthyThreshold": { + "markdownDescription": "The number of consecutive health check failures required before moving the container to the `Unhealthy` state\\. The default value is `2`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnhealthyThreshold", "type": "number" } }, @@ -98098,9 +119854,13 @@ "additionalProperties": false, "properties": { "Port": { + "markdownDescription": "The open firewall ports of the container\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "string" }, "Protocol": { + "markdownDescription": "The protocol name for the open ports\\. \n*Allowed values*: `HTTP` \\| `HTTPS` \\| `TCP` \\| `UDP` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "string" } }, @@ -98110,12 +119870,16 @@ "additionalProperties": false, "properties": { "CertificateName": { + "markdownDescription": "The name of the certificate for the public domains\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateName", "type": "string" }, "DomainNames": { "items": { "type": "string" }, + "markdownDescription": "The public domain names to use with the container service\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainNames", "type": "array" } }, @@ -98125,13 +119889,19 @@ "additionalProperties": false, "properties": { "ContainerName": { + "markdownDescription": "The name of the container entry of the deployment that the endpoint configuration applies to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerName", "type": "string" }, "ContainerPort": { + "markdownDescription": "The port of the specified container to which traffic is forwarded to\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerPort", "type": "number" }, "HealthCheckConfig": { - "$ref": "#/definitions/AWS::Lightsail::Container.HealthCheckConfig" + "$ref": "#/definitions/AWS::Lightsail::Container.HealthCheckConfig", + "markdownDescription": "An object that describes the health check configuration of the container\\. \n*Required*: No \n*Type*: [HealthCheckConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-healthcheckconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckConfig" } }, "type": "object" @@ -98172,54 +119942,84 @@ "additionalProperties": false, "properties": { "AvailabilityZone": { + "markdownDescription": "The Availability Zone for the database\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "AvailabilityZone", "type": "string" }, "BackupRetention": { + "markdownDescription": "A Boolean value indicating whether automated backup retention is enabled for the database\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "BackupRetention", "type": "boolean" }, "CaCertificateIdentifier": { + "markdownDescription": "The certificate associated with the database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaCertificateIdentifier", "type": "string" }, "MasterDatabaseName": { + "markdownDescription": "The meaning of this parameter differs according to the database engine you use\\. \n **MySQL** \nThe name of the database to create when the Lightsail database resource is created\\. If this parameter isn't specified, no database is created in the database resource\\. \nConstraints: \n+ Must contain 1\\-64 letters or numbers\\.\n+ Must begin with a letter\\. Subsequent characters can be letters, underscores, or numbers \\(0\\-9\\)\\.\n+ Can't be a word reserved by the specified database engine\\.", + "title": "MasterDatabaseName", "type": "string" }, "MasterUserPassword": { + "markdownDescription": "The password for the primary user of the database\\. The password can include any printable ASCII character except the following: /, \", or @\\. It cannot contain spaces\\. \nThe `MasterUserPassword` and `RotateMasterUserPassword` parameters cannot be used together in the same template\\.\n **MySQL** \nConstraints: Must contain 8\\-41 characters\\. \n **PostgreSQL** \nConstraints: Must contain 8\\-128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MasterUserPassword", "type": "string" }, "MasterUsername": { + "markdownDescription": "The name for the primary user\\. \n **MySQL** \nConstraints: \n+ Required for MySQL\\.\n+ Must be 1\\-16 letters or numbers\\. Can contain underscores\\.\n+ First character must be a letter\\.\n+ Can't be a reserved word for the chosen database engine\\.", + "title": "MasterUsername", "type": "string" }, "PreferredBackupWindow": { + "markdownDescription": "The daily time range during which automated backups are created for the database \\(for example, `16:00-16:30`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredBackupWindow", "type": "string" }, "PreferredMaintenanceWindow": { + "markdownDescription": "The weekly time range during which system maintenance can occur for the database, formatted as follows: `ddd:hh24:mi-ddd:hh24:mi`\\. For example, `Tue:17:00-Tue:17:30`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", "type": "string" }, "PubliclyAccessible": { + "markdownDescription": "A Boolean value indicating whether the database is accessible to anyone on the internet\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PubliclyAccessible", "type": "boolean" }, "RelationalDatabaseBlueprintId": { + "markdownDescription": "The blueprint ID for the database \\(for example, `mysql_8_0`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "RelationalDatabaseBlueprintId", "type": "string" }, "RelationalDatabaseBundleId": { + "markdownDescription": "The bundle ID for the database \\(for example, `medium_1_0`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "RelationalDatabaseBundleId", "type": "string" }, "RelationalDatabaseName": { + "markdownDescription": "The name of the instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RelationalDatabaseName", "type": "string" }, "RelationalDatabaseParameters": { "items": { "$ref": "#/definitions/AWS::Lightsail::Database.RelationalDatabaseParameter" }, + "markdownDescription": "An array of parameters for the database\\. \n*Required*: No \n*Type*: List of [RelationalDatabaseParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-database-relationaldatabaseparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RelationalDatabaseParameters", "type": "array" }, "RotateMasterUserPassword": { + "markdownDescription": "A Boolean value indicating whether to change the primary user password to a new, strong password generated by Lightsail\\. \nThe `RotateMasterUserPassword` and `MasterUserPassword` parameters cannot be used together in the same template\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RotateMasterUserPassword", "type": "boolean" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -98257,27 +120057,43 @@ "additionalProperties": false, "properties": { "AllowedValues": { + "markdownDescription": "The valid range of values for the parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedValues", "type": "string" }, "ApplyMethod": { + "markdownDescription": "Indicates when parameter updates are applied\\. \nCan be `immediate` or `pending-reboot`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplyMethod", "type": "string" }, "ApplyType": { + "markdownDescription": "Specifies the engine\\-specific parameter type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplyType", "type": "string" }, "DataType": { + "markdownDescription": "The valid data type of the parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataType", "type": "string" }, "Description": { + "markdownDescription": "A description of the parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "IsModifiable": { + "markdownDescription": "A Boolean value indicating whether the parameter can be modified\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsModifiable", "type": "boolean" }, "ParameterName": { + "markdownDescription": "The name of the parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterName", "type": "string" }, "ParameterValue": { + "markdownDescription": "The value for the parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterValue", "type": "string" } }, @@ -98322,21 +120138,31 @@ "items": { "$ref": "#/definitions/AWS::Lightsail::Disk.AddOn" }, + "markdownDescription": "An array of add\\-ons for the disk\\. \nIf the disk has an add\\-on enabled when performing a delete disk request, the add\\-on is automatically disabled before the disk is deleted\\.\n*Required*: No \n*Type*: List of [AddOn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-disk-addon.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddOns", "type": "array" }, "AvailabilityZone": { + "markdownDescription": "The AWS Region and Availability Zone location for the disk \\(for example, `us-east-1a`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "AvailabilityZone", "type": "string" }, "DiskName": { + "markdownDescription": "The name of the disk\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `\\w[\\w\\-]*\\w` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DiskName", "type": "string" }, "SizeInGb": { + "markdownDescription": "The size of the disk in GB\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: Updates are not supported\\.", + "title": "SizeInGb", "type": "number" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -98371,12 +120197,18 @@ "additionalProperties": false, "properties": { "AddOnType": { + "markdownDescription": "The add\\-on type \\(for example, `AutoSnapshot`\\)\\. \n`AutoSnapshot` is the only add\\-on that can be enabled for a disk\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddOnType", "type": "string" }, "AutoSnapshotAddOnRequest": { - "$ref": "#/definitions/AWS::Lightsail::Disk.AutoSnapshotAddOn" + "$ref": "#/definitions/AWS::Lightsail::Disk.AutoSnapshotAddOn", + "markdownDescription": "The parameters for the automatic snapshot add\\-on, such as the daily time when an automatic snapshot will be created\\. \n*Required*: No \n*Type*: [AutoSnapshotAddOn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-disk-autosnapshotaddon.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoSnapshotAddOnRequest" }, "Status": { + "markdownDescription": "The status of the add\\-on\\. \nValid Values: `Enabled` \\| `Disabled` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" } }, @@ -98389,6 +120221,8 @@ "additionalProperties": false, "properties": { "SnapshotTimeOfDay": { + "markdownDescription": "The daily time when an automatic snapshot will be created\\. \nConstraints: \n+ Must be in `HH:00` format, and in an hourly increment\\.\n+ Specified in Coordinated Universal Time \\(UTC\\)\\.\n+ The snapshot will be automatically created between the time specified and up to 45 minutes after\\.\n*Required*: No \n*Type*: String \n*Pattern*: `^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotTimeOfDay", "type": "string" } }, @@ -98442,39 +120276,59 @@ "additionalProperties": false, "properties": { "BundleId": { + "markdownDescription": "The ID of the bundle applied to the distribution\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BundleId", "type": "string" }, "CacheBehaviorSettings": { - "$ref": "#/definitions/AWS::Lightsail::Distribution.CacheSettings" + "$ref": "#/definitions/AWS::Lightsail::Distribution.CacheSettings", + "markdownDescription": "An object that describes the cache behavior settings of the distribution\\. \n*Required*: No \n*Type*: [CacheSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-cachesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheBehaviorSettings" }, "CacheBehaviors": { "items": { "$ref": "#/definitions/AWS::Lightsail::Distribution.CacheBehaviorPerPath" }, + "markdownDescription": "An array of objects that describe the per\\-path cache behavior of the distribution\\. \n*Required*: No \n*Type*: List of [CacheBehaviorPerPath](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-cachebehaviorperpath.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheBehaviors", "type": "array" }, "CertificateName": { + "markdownDescription": "The name of the SSL/TLS certificate attached to the distribution\\. \n*Required*: No \n*Type*: String \n*Pattern*: `\\w[\\w\\-]*\\w` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateName", "type": "string" }, "DefaultCacheBehavior": { - "$ref": "#/definitions/AWS::Lightsail::Distribution.CacheBehavior" + "$ref": "#/definitions/AWS::Lightsail::Distribution.CacheBehavior", + "markdownDescription": "An object that describes the default cache behavior of the distribution\\. \n*Required*: Yes \n*Type*: [CacheBehavior](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-cachebehavior.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultCacheBehavior" }, "DistributionName": { + "markdownDescription": "The name of the distribution \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DistributionName", "type": "string" }, "IpAddressType": { + "markdownDescription": "The IP address type of the distribution\\. \nThe possible values are `ipv4` for IPv4 only, and `dualstack` for IPv4 and IPv6\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dualstack | ipv4` \n*Update requires*: Updates are not supported\\.", + "title": "IpAddressType", "type": "string" }, "IsEnabled": { + "markdownDescription": "A Boolean value indicating whether the distribution is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsEnabled", "type": "boolean" }, "Origin": { - "$ref": "#/definitions/AWS::Lightsail::Distribution.InputOrigin" + "$ref": "#/definitions/AWS::Lightsail::Distribution.InputOrigin", + "markdownDescription": "An object that describes the origin resource of the distribution, such as a Lightsail instance, bucket, or load balancer\\. \nThe distribution pulls, caches, and serves content from the origin\\. \n*Required*: Yes \n*Type*: [InputOrigin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-inputorigin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Origin" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -98511,6 +120365,8 @@ "additionalProperties": false, "properties": { "Behavior": { + "markdownDescription": "The cache behavior of the distribution\\. \nThe following cache behaviors can be specified: \n+ ** `cache` ** \\- This option is best for static sites\\. When specified, your distribution caches and serves your entire website as static content\\. This behavior is ideal for websites with static content that doesn't change depending on who views it, or for websites that don't use cookies, headers, or query strings to personalize content\\.\n+ ** `dont-cache` ** \\- This option is best for sites that serve a mix of static and dynamic content\\. When specified, your distribution caches and serves only the content that is specified in the distribution\u2019s `CacheBehaviorPerPath` parameter\\. This behavior is ideal for websites or web applications that use cookies, headers, and query strings to personalize content for individual users\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `cache | dont-cache` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Behavior", "type": "string" } }, @@ -98520,9 +120376,13 @@ "additionalProperties": false, "properties": { "Behavior": { + "markdownDescription": "The cache behavior for the specified path\\. \nYou can specify one of the following per\\-path cache behaviors: \n+ ** `cache` ** \\- This behavior caches the specified path\\. \n+ ** `dont-cache` ** \\- This behavior doesn't cache the specified path\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `cache | dont-cache` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Behavior", "type": "string" }, "Path": { + "markdownDescription": "The path to a directory or file to cache, or not cache\\. Use an asterisk symbol to specify wildcard directories \\(`path/to/assets/*`\\), and file types \\(`*.html`, `*jpg`, `*js`\\)\\. Directories and file paths are case\\-sensitive\\. \nExamples: \n+ Specify the following to cache all files in the document root of an Apache web server running on a instance\\.", + "title": "Path", "type": "string" } }, @@ -98532,27 +120392,43 @@ "additionalProperties": false, "properties": { "AllowedHTTPMethods": { + "markdownDescription": "The HTTP methods that are processed and forwarded to the distribution's origin\\. \nYou can specify the following options: \n+ `GET,HEAD` \\- The distribution forwards the `GET` and `HEAD` methods\\.\n+ `GET,HEAD,OPTIONS` \\- The distribution forwards the `GET`, `HEAD`, and `OPTIONS` methods\\.\n+ `GET,HEAD,OPTIONS,PUT,PATCH,POST,DELETE` \\- The distribution forwards the `GET`, `HEAD`, `OPTIONS`, `PUT`, `PATCH`, `POST`, and `DELETE` methods\\.\nIf you specify `GET,HEAD,OPTIONS,PUT,PATCH,POST,DELETE`, you might need to restrict access to your distribution's origin so users can't perform operations that you don't want them to\\. For example, you might not want users to have permission to delete objects from your origin\\. \n*Required*: No \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedHTTPMethods", "type": "string" }, "CachedHTTPMethods": { + "markdownDescription": "The HTTP method responses that are cached by your distribution\\. \nYou can specify the following options: \n+ `GET,HEAD` \\- The distribution caches responses to the `GET` and `HEAD` methods\\.\n+ `GET,HEAD,OPTIONS` \\- The distribution caches responses to the `GET`, `HEAD`, and `OPTIONS` methods\\.\n*Required*: No \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CachedHTTPMethods", "type": "string" }, "DefaultTTL": { + "markdownDescription": "The default amount of time that objects stay in the distribution's cache before the distribution forwards another request to the origin to determine whether the content has been updated\\. \nThe value specified applies only when the origin does not add HTTP headers such as `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to objects\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultTTL", "type": "number" }, "ForwardedCookies": { - "$ref": "#/definitions/AWS::Lightsail::Distribution.CookieObject" + "$ref": "#/definitions/AWS::Lightsail::Distribution.CookieObject", + "markdownDescription": "An object that describes the cookies that are forwarded to the origin\\. Your content is cached based on the cookies that are forwarded\\. \n*Required*: No \n*Type*: [CookieObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-cookieobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForwardedCookies" }, "ForwardedHeaders": { - "$ref": "#/definitions/AWS::Lightsail::Distribution.HeaderObject" + "$ref": "#/definitions/AWS::Lightsail::Distribution.HeaderObject", + "markdownDescription": "An object that describes the headers that are forwarded to the origin\\. Your content is cached based on the headers that are forwarded\\. \n*Required*: No \n*Type*: [HeaderObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-headerobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForwardedHeaders" }, "ForwardedQueryStrings": { - "$ref": "#/definitions/AWS::Lightsail::Distribution.QueryStringObject" + "$ref": "#/definitions/AWS::Lightsail::Distribution.QueryStringObject", + "markdownDescription": "An object that describes the query strings that are forwarded to the origin\\. Your content is cached based on the query strings that are forwarded\\. \n*Required*: No \n*Type*: [QueryStringObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-querystringobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForwardedQueryStrings" }, "MaximumTTL": { + "markdownDescription": "The maximum amount of time that objects stay in the distribution's cache before the distribution forwards another request to the origin to determine whether the object has been updated\\. \nThe value specified applies only when the origin adds HTTP headers such as `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to objects\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumTTL", "type": "number" }, "MinimumTTL": { + "markdownDescription": "The minimum amount of time that objects stay in the distribution's cache before the distribution forwards another request to the origin to determine whether the object has been updated\\. \nA value of `0` must be specified for `minimumTTL` if the distribution is configured to forward all headers to the origin\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinimumTTL", "type": "number" } }, @@ -98565,9 +120441,13 @@ "items": { "type": "string" }, + "markdownDescription": "The specific cookies to forward to your distribution's origin\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CookiesAllowList", "type": "array" }, "Option": { + "markdownDescription": "Specifies which cookies to forward to the distribution's origin for a cache behavior\\. \nUse one of the following configurations for your distribution: \n+ ** `all` ** \\- Forwards all cookies to your origin\\.\n+ ** `none` ** \\- Doesn\u2019t forward cookies to your origin\\.\n+ ** `allow-list` ** \\- Forwards only the cookies that you specify using the `CookiesAllowList` parameter\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `all | allow-list | none` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Option", "type": "string" } }, @@ -98580,9 +120460,13 @@ "items": { "type": "string" }, + "markdownDescription": "The specific headers to forward to your distribution's origin\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeadersAllowList", "type": "array" }, "Option": { + "markdownDescription": "The headers that you want your distribution to forward to your origin\\. Your distribution caches your content based on these headers\\. \nUse one of the following configurations for your distribution: \n+ ** `all` ** \\- Forwards all headers to your origin\\.\\.\n+ ** `none` ** \\- Forwards only the default headers\\.\n+ ** `allow-list` ** \\- Forwards only the headers that you specify using the `HeadersAllowList` parameter\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `all | allow-list | none` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Option", "type": "string" } }, @@ -98592,12 +120476,18 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the origin resource\\. \n*Required*: No \n*Type*: String \n*Pattern*: `\\w[\\w\\-]*\\w` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "ProtocolPolicy": { + "markdownDescription": "The protocol that your Amazon Lightsail distribution uses when establishing a connection with your origin to pull content\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `http-only | https-only` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProtocolPolicy", "type": "string" }, "RegionName": { + "markdownDescription": "The AWS Region name of the origin resource\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ap-northeast-1 | ap-northeast-2 | ap-south-1 | ap-southeast-1 | ap-southeast-2 | ca-central-1 | eu-central-1 | eu-north-1 | eu-west-1 | eu-west-2 | eu-west-3 | us-east-1 | us-east-2 | us-west-1 | us-west-2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegionName", "type": "string" } }, @@ -98607,12 +120497,16 @@ "additionalProperties": false, "properties": { "Option": { + "markdownDescription": "Indicates whether the distribution forwards and caches based on query strings\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Option", "type": "boolean" }, "QueryStringsAllowList": { "items": { "type": "string" }, + "markdownDescription": "The specific query strings that the distribution forwards to the origin\\. \nYour distribution caches content based on the specified query strings\\. \nIf the `option` parameter is true, then your distribution forwards all query strings, regardless of what you specify using the `QueryStringsAllowList` parameter\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryStringsAllowList", "type": "array" } }, @@ -98657,31 +120551,47 @@ "items": { "$ref": "#/definitions/AWS::Lightsail::Instance.AddOn" }, + "markdownDescription": "An array of add\\-ons for the instance\\. \nIf the instance has an add\\-on enabled when performing a delete instance request, the add\\-on is automatically disabled before the instance is deleted\\.\n*Required*: No \n*Type*: List of [AddOn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-addon.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddOns", "type": "array" }, "AvailabilityZone": { + "markdownDescription": "The Availability Zone for the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "AvailabilityZone", "type": "string" }, "BlueprintId": { + "markdownDescription": "The blueprint ID for the instance \\(for example, `os_amlinux_2016_03`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "BlueprintId", "type": "string" }, "BundleId": { + "markdownDescription": "The bundle ID for the instance \\(for example, `micro_1_0`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "BundleId", "type": "string" }, "Hardware": { - "$ref": "#/definitions/AWS::Lightsail::Instance.Hardware" + "$ref": "#/definitions/AWS::Lightsail::Instance.Hardware", + "markdownDescription": "The hardware properties for the instance, such as the vCPU count, attached disks, and amount of RAM\\. \nThe instance restarts when performing an attach disk or detach disk request\\. This resets the public IP address of your instance if a static IP isn't attached to it\\.\n*Required*: No \n*Type*: [Hardware](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-hardware.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Hardware" }, "InstanceName": { + "markdownDescription": "The name of the instance\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `\\w[\\w\\-]*\\w` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceName", "type": "string" }, "KeyPairName": { + "markdownDescription": "The name of the key pair to use for the instance\\. \nIf no key pair name is specified, the Regional Lightsail default key pair is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyPairName", "type": "string" }, "Location": { "$ref": "#/definitions/AWS::Lightsail::Instance.Location" }, "Networking": { - "$ref": "#/definitions/AWS::Lightsail::Instance.Networking" + "$ref": "#/definitions/AWS::Lightsail::Instance.Networking", + "markdownDescription": "The public ports and the monthly amount of data transfer allocated for the instance\\. \n*Required*: No \n*Type*: [Networking](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-networking.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Networking" }, "State": { "$ref": "#/definitions/AWS::Lightsail::Instance.State" @@ -98690,9 +120600,13 @@ "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "UserData": { + "markdownDescription": "The optional launch script for the instance\\. \nSpecify a launch script to configure an instance with additional user data\\. For example, you might want to specify `apt-get -y update` as a launch script\\. \nDepending on the blueprint of your instance, the command to get software on your instance varies\\. Amazon Linux and CentOS use `yum`, Debian and Ubuntu use `apt-get`, and FreeBSD uses `pkg`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserData", "type": "string" } }, @@ -98728,12 +120642,18 @@ "additionalProperties": false, "properties": { "AddOnType": { + "markdownDescription": "The add\\-on type \\(for example, `AutoSnapshot`\\)\\. \n`AutoSnapshot` is the only add\\-on that can be enabled for an instance\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddOnType", "type": "string" }, "AutoSnapshotAddOnRequest": { - "$ref": "#/definitions/AWS::Lightsail::Instance.AutoSnapshotAddOn" + "$ref": "#/definitions/AWS::Lightsail::Instance.AutoSnapshotAddOn", + "markdownDescription": "The parameters for the automatic snapshot add\\-on, such as the daily time when an automatic snapshot will be created\\. \n*Required*: No \n*Type*: [AutoSnapshotAddOn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-autosnapshotaddon.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoSnapshotAddOnRequest" }, "Status": { + "markdownDescription": "The status of the add\\-on\\. \nValid Values: `Enabled` \\| `Disabled` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" } }, @@ -98746,6 +120666,8 @@ "additionalProperties": false, "properties": { "SnapshotTimeOfDay": { + "markdownDescription": "The daily time when an automatic snapshot will be created\\. \nConstraints: \n+ Must be in `HH:00` format, and in an hourly increment\\.\n+ Specified in Coordinated Universal Time \\(UTC\\)\\.\n+ The snapshot will be automatically created between the time specified and up to 45 minutes after\\.\n*Required*: No \n*Type*: String \n*Pattern*: `^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotTimeOfDay", "type": "string" } }, @@ -98755,24 +120677,38 @@ "additionalProperties": false, "properties": { "AttachedTo": { + "markdownDescription": "The resources to which the disk is attached\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "AttachedTo", "type": "string" }, "AttachmentState": { + "markdownDescription": "\\(Deprecated\\) The attachment state of the disk\\. \nIn releases prior to November 14, 2017, this parameter returned `attached` for system disks in the API response\\. It is now deprecated, but still included in the response\\. Use `isAttached` instead\\.\n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "AttachmentState", "type": "string" }, "DiskName": { + "markdownDescription": "The unique name of the disk\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DiskName", "type": "string" }, "IOPS": { + "markdownDescription": "The input/output operations per second \\(IOPS\\) of the disk\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: Updates are not supported\\.", + "title": "IOPS", "type": "number" }, "IsSystemDisk": { + "markdownDescription": "A Boolean value indicating whether this disk is a system disk \\(has an operating system loaded on it\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: Updates are not supported\\.", + "title": "IsSystemDisk", "type": "boolean" }, "Path": { + "markdownDescription": "The disk path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "Path", "type": "string" }, "SizeInGb": { + "markdownDescription": "The size of the disk in GB\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "SizeInGb", "type": "string" } }, @@ -98786,15 +120722,21 @@ "additionalProperties": false, "properties": { "CpuCount": { + "markdownDescription": "The number of vCPUs the instance has\\. \nThe `CpuCount` property is read\\-only and should not be specified in a create instance or update instance request\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: Updates are not supported\\.", + "title": "CpuCount", "type": "number" }, "Disks": { "items": { "$ref": "#/definitions/AWS::Lightsail::Instance.Disk" }, + "markdownDescription": "The disks attached to the instance\\. \nThe instance restarts when performing an attach disk or detach disk request\\. This resets the public IP address of your instance if a static IP isn't attached to it\\. \n*Required*: No \n*Type*: List of [Disk](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-disk.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Disks", "type": "array" }, "RamSizeInGb": { + "markdownDescription": "The amount of RAM in GB on the instance \\(for example, `1.0`\\)\\. \nThe `RamSizeInGb` property is read\\-only and should not be specified in a create instance or update instance request\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: Updates are not supported\\.", + "title": "RamSizeInGb", "type": "number" } }, @@ -98804,9 +120746,13 @@ "additionalProperties": false, "properties": { "AvailabilityZone": { + "markdownDescription": "The Availability Zone for the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZone", "type": "string" }, "RegionName": { + "markdownDescription": "The name of the AWS Region for the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegionName", "type": "string" } }, @@ -98816,6 +120762,8 @@ "additionalProperties": false, "properties": { "GbPerMonthAllocated": { + "markdownDescription": "The amount of allocated monthly data transfer \\(in GB\\) for an instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GbPerMonthAllocated", "type": "string" } }, @@ -98825,12 +120773,16 @@ "additionalProperties": false, "properties": { "MonthlyTransfer": { - "$ref": "#/definitions/AWS::Lightsail::Instance.MonthlyTransfer" + "$ref": "#/definitions/AWS::Lightsail::Instance.MonthlyTransfer", + "markdownDescription": "The monthly amount of data transfer, in GB, allocated for the instance \n*Required*: No \n*Type*: [MonthlyTransfer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-monthlytransfer.html) \n*Update requires*: Updates are not supported\\.", + "title": "MonthlyTransfer" }, "Ports": { "items": { "$ref": "#/definitions/AWS::Lightsail::Instance.Port" }, + "markdownDescription": "An array of ports to open on the instance\\. \n*Required*: Yes \n*Type*: List of [Port](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ports", "type": "array" } }, @@ -98843,42 +120795,62 @@ "additionalProperties": false, "properties": { "AccessDirection": { + "markdownDescription": "The access direction \\(`inbound` or `outbound`\\)\\. \nLightsail currently supports only `inbound` access direction\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessDirection", "type": "string" }, "AccessFrom": { + "markdownDescription": "The location from which access is allowed\\. For example, `Anywhere (0.0.0.0/0)`, or `Custom` if a specific IP address or range of IP addresses is allowed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessFrom", "type": "string" }, "AccessType": { + "markdownDescription": "The type of access \\(`Public` or `Private`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessType", "type": "string" }, "CidrListAliases": { "items": { "type": "string" }, + "markdownDescription": "An alias that defines access for a preconfigured range of IP addresses\\. \nThe only alias currently supported is `lightsail-connect`, which allows IP addresses of the browser\\-based RDP/SSH client in the Lightsail console to connect to your instance\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CidrListAliases", "type": "array" }, "Cidrs": { "items": { "type": "string" }, + "markdownDescription": "The IPv4 address, or range of IPv4 addresses \\(in CIDR notation\\) that are allowed to connect to an instance through the ports, and the protocol\\. \nThe `ipv6Cidrs` parameter lists the IPv6 addresses that are allowed to connect to an instance\\.\nExamples: \n+ To allow the IP address `192.0.2.44`, specify `192.0.2.44` or `192.0.2.44/32`\\. \n+ To allow the IP addresses `192.0.2.0` to `192.0.2.255`, specify `192.0.2.0/24`\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cidrs", "type": "array" }, "CommonName": { + "markdownDescription": "The common name of the port information\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CommonName", "type": "string" }, "FromPort": { + "markdownDescription": "The first port in a range of open ports on an instance\\. \nAllowed ports: \n+ TCP and UDP \\- `0` to `65535`\n+ ICMP \\- The ICMP type for IPv4 addresses\\. For example, specify `8` as the `fromPort` \\(ICMP type\\), and `-1` as the `toPort` \\(ICMP code\\), to enable ICMP Ping\\.\n+ ICMPv6 \\- The ICMP type for IPv6 addresses\\. For example, specify `128` as the `fromPort` \\(ICMPv6 type\\), and `0` as `toPort` \\(ICMPv6 code\\)\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FromPort", "type": "number" }, "Ipv6Cidrs": { "items": { "type": "string" }, + "markdownDescription": "The IPv6 address, or range of IPv6 addresses \\(in CIDR notation\\) that are allowed to connect to an instance through the ports, and the protocol\\. Only devices with an IPv6 address can connect to an instance through IPv6; otherwise, IPv4 should be used\\. \nThe `cidrs` parameter lists the IPv4 addresses that are allowed to connect to an instance\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6Cidrs", "type": "array" }, "Protocol": { + "markdownDescription": "The IP protocol name\\. \nThe name can be one of the following: \n+ `tcp` \\- Transmission Control Protocol \\(TCP\\) provides reliable, ordered, and error\\-checked delivery of streamed data between applications running on hosts communicating by an IP network\\. If you have an application that doesn't require reliable data stream service, use UDP instead\\.\n+ `all` \\- All transport layer protocol types\\.\n+ `udp` \\- With User Datagram Protocol \\(UDP\\), computer applications can send messages \\(or datagrams\\) to other hosts on an Internet Protocol \\(IP\\) network\\. Prior communications are not required to set up transmission channels or data paths\\. Applications that don't require reliable data stream service can use UDP, which provides a connectionless datagram service that emphasizes reduced latency over reliability\\. If you do require reliable data stream service, use TCP instead\\.\n+ `icmp` \\- Internet Control Message Protocol \\(ICMP\\) is used to send error messages and operational information indicating success or failure when communicating with an instance\\. For example, an error is indicated when an instance could not be reached\\. When you specify `icmp` as the `protocol`, you must specify the ICMP type using the `fromPort` parameter, and ICMP code using the `toPort` parameter\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "string" }, "ToPort": { + "markdownDescription": "The last port in a range of open ports on an instance\\. \nAllowed ports: \n+ TCP and UDP \\- `0` to `65535`\n+ ICMP \\- The ICMP code for IPv4 addresses\\. For example, specify `8` as the `fromPort` \\(ICMP type\\), and `-1` as the `toPort` \\(ICMP code\\), to enable ICMP Ping\\.\n+ ICMPv6 \\- The ICMP code for IPv6 addresses\\. For example, specify `128` as the `fromPort` \\(ICMPv6 type\\), and `0` as `toPort` \\(ICMPv6 code\\)\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ToPort", "type": "number" } }, @@ -98888,9 +120860,13 @@ "additionalProperties": false, "properties": { "Code": { + "markdownDescription": "The status code of the instance\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Code", "type": "number" }, "Name": { + "markdownDescription": "The state of the instance \\(for example, `running` or `pending`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -98935,30 +120911,46 @@ "items": { "type": "string" }, + "markdownDescription": "The Lightsail instances to attach to the load balancer\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttachedInstances", "type": "array" }, "HealthCheckPath": { + "markdownDescription": "The path on the attached instance where the health check will be performed\\. If no path is specified, the load balancer tries to make a request to the default \\(root\\) page \\(`/index.html`\\)\\. \n*Required*: No \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckPath", "type": "string" }, "InstancePort": { + "markdownDescription": "The port that the load balancer uses to direct traffic to your Lightsail instances\\. For HTTP traffic, specify port `80`\\. For HTTPS traffic, specify port `443`\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: Updates are not supported\\.", + "title": "InstancePort", "type": "number" }, "IpAddressType": { + "markdownDescription": "The IP address type of the load balancer\\. \nThe possible values are `ipv4` for IPv4 only, and `dualstack` for both IPv4 and IPv6\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dualstack | ipv4` \n*Update requires*: Updates are not supported\\.", + "title": "IpAddressType", "type": "string" }, "LoadBalancerName": { + "markdownDescription": "The name of the load balancer\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `\\w[\\w\\-]*\\w` \n*Update requires*: Updates are not supported\\.", + "title": "LoadBalancerName", "type": "string" }, "SessionStickinessEnabled": { + "markdownDescription": "A Boolean value indicating whether session stickiness is enabled\\. \nEnable session stickiness \\(also known as *session affinity*\\) to bind a user's session to a specific instance\\. This ensures that all requests from the user during the session are sent to the same instance\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionStickinessEnabled", "type": "boolean" }, "SessionStickinessLBCookieDurationSeconds": { + "markdownDescription": "The time period, in seconds, after which the load balancer session stickiness cookie should be considered stale\\. If you do not specify this parameter, the default value is 0, which indicates that the sticky session should last for the duration of the browser session\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionStickinessLBCookieDurationSeconds", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TlsPolicyName": { @@ -99031,21 +121023,31 @@ "items": { "type": "string" }, + "markdownDescription": "An array of alternative domain names and subdomain names for your SSL/TLS certificate\\. \nIn addition to the primary domain name, you can have up to nine alternative domain names\\. Wildcards \\(such as `*.example.com`\\) are not supported\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: Updates are not supported\\.", + "title": "CertificateAlternativeNames", "type": "array" }, "CertificateDomainName": { + "markdownDescription": "The domain name for the SSL/TLS certificate\\. For example, `example.com` or `www.example.com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "CertificateDomainName", "type": "string" }, "CertificateName": { + "markdownDescription": "The name of the SSL/TLS certificate\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateName", "type": "string" }, "HttpsRedirectionEnabled": { "type": "boolean" }, "IsAttached": { + "markdownDescription": "A Boolean value indicating whether the SSL/TLS certificate is attached to a Lightsail load balancer\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsAttached", "type": "boolean" }, "LoadBalancerName": { + "markdownDescription": "The name of the load balancer that the SSL/TLS certificate is attached to\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `\\w[\\w\\-]*\\w` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoadBalancerName", "type": "string" } }, @@ -99113,9 +121115,13 @@ "additionalProperties": false, "properties": { "AttachedTo": { + "markdownDescription": "The instance that the static IP is attached to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttachedTo", "type": "string" }, "StaticIpName": { + "markdownDescription": "The name of the static IP\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StaticIpName", "type": "string" } }, @@ -99181,18 +121187,18 @@ "additionalProperties": false, "properties": { "CollectionName": { + "markdownDescription": "The name for the geofence collection\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[-._\\w]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CollectionName", "type": "string" }, "Description": { + "markdownDescription": "An optional description for the geofence collection\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "KmsKeyId": { - "type": "string" - }, - "PricingPlan": { - "type": "string" - }, - "PricingPlanDataSource": { + "markdownDescription": "A key identifier for an [AWS KMS customer managed key](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)\\. Enter a key ID, key ARN, alias name, or alias ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", "type": "string" } }, @@ -99258,15 +121264,23 @@ "additionalProperties": false, "properties": { "Configuration": { - "$ref": "#/definitions/AWS::Location::Map.MapConfiguration" + "$ref": "#/definitions/AWS::Location::Map.MapConfiguration", + "markdownDescription": "Specifies the map style selected from an available data provider\\. \n*Required*: Yes \n*Type*: [MapConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-location-map-mapconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Configuration" }, "Description": { + "markdownDescription": "An optional description for the map resource\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "MapName": { + "markdownDescription": "The name for the map resource\\. \nRequirements: \n+ Must contain only alphanumeric characters \\(A\u2013Z, a\u2013z, 0\u20139\\), hyphens \\(\\-\\), periods \\(\\.\\), and underscores \\(\\_\\)\\.\n+ Must be a unique map resource name\\.\n+ No spaces allowed\\. For example, `ExampleMap`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[-._\\w]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MapName", "type": "string" }, "PricingPlan": { + "markdownDescription": "No longer used\\. If included, the only allowed value is `RequestBasedUsage`\\. \n*Allowed Values*: `RequestBasedUsage` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PricingPlan", "type": "string" } }, @@ -99301,6 +121315,8 @@ "additionalProperties": false, "properties": { "Style": { + "markdownDescription": "Specifies the map style selected from an available data provider\\. \nValid styles: `VectorEsriStreets`, `VectorEsriTopographic`, `VectorEsriNavigation`, `VectorEsriDarkGrayCanvas`, `VectorEsriLightGrayCanvas`, `VectorHereBerlin`\\. \nWhen using HERE as your data provider, and selecting the Style `VectorHereBerlin`, you may not use HERE Technologies maps for Asset Management\\. See the [AWS Service Terms](http://aws.amazon.com/service-terms/) for Amazon Location Service\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[-._\\w]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Style", "type": "string" } }, @@ -99345,18 +121361,28 @@ "additionalProperties": false, "properties": { "DataSource": { + "markdownDescription": "Specifies the data provider of geospatial data\\. \nThis field is case\\-sensitive\\. Enter the valid values as shown\\. For example, entering `HERE` will return an error\\.\nValid values include: \n+ `Esri`\n+ `Here`\n**Important** \nPlace index resources using HERE as a data provider can't be used to [store](https://docs.aws.amazon.com/location-places/latest/APIReference/API_DataSourceConfiguration.html) results for locations in Japan\\. For more information, see the [AWS Service Terms](http://aws.amazon.com/service-terms/) for Amazon Location Service\\.\nFor additional details on data providers, see the [Amazon Location Service data providers page](https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataSource", "type": "string" }, "DataSourceConfiguration": { - "$ref": "#/definitions/AWS::Location::PlaceIndex.DataSourceConfiguration" + "$ref": "#/definitions/AWS::Location::PlaceIndex.DataSourceConfiguration", + "markdownDescription": "Specifies the data storage option for requesting Places\\. \n*Required*: No \n*Type*: [DataSourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-location-placeindex-datasourceconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataSourceConfiguration" }, "Description": { + "markdownDescription": "The optional description for the place index resource\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "IndexName": { + "markdownDescription": "The name of the place index resource\\. \nRequirements: \n+ Contain only alphanumeric characters \\(A\u2013Z, a\u2013z, 0\u20139\\), hyphens \\(\\-\\), periods \\(\\.\\), and underscores \\(\\_\\)\\.\n+ Must be a unique place index resource name\\.\n+ No spaces allowed\\. For example, `ExamplePlaceIndex`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[-._\\w]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IndexName", "type": "string" }, "PricingPlan": { + "markdownDescription": "No longer used\\. If included, the only allowed value is `RequestBasedUsage`\\. \n*Allowed Values*: `RequestBasedUsage` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PricingPlan", "type": "string" } }, @@ -99391,6 +121417,8 @@ "additionalProperties": false, "properties": { "IntendedUse": { + "markdownDescription": "Specifies how the results of an operation will be stored by the caller\\. \nValid values include: \n+ `SingleUse` specifies that the results won't be stored\\.\n+ `Storage` specifies that the result can be cached or stored in a database\\.\n**Important** \nPlace index resources using HERE as a data provider can't be configured to store results for locations in Japan when choosing `Storage` for the `IntendedUse` parameter\\.\nDefault value: `SingleUse` \n*Required*: No \n*Type*: String \n*Allowed values*: `SingleUse | Storage` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IntendedUse", "type": "string" } }, @@ -99432,15 +121460,23 @@ "additionalProperties": false, "properties": { "CalculatorName": { + "markdownDescription": "The name of the route calculator resource\\. \nRequirements: \n+ Can use alphanumeric characters \\(A\u2013Z, a\u2013z, 0\u20139\\) , hyphens \\(\\-\\), periods \\(\\.\\), and underscores \\(\\_\\)\\.\n+ Must be a unique route calculator resource name\\.\n+ No spaces allowed\\. For example, `ExampleRouteCalculator`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[-._\\w]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CalculatorName", "type": "string" }, "DataSource": { + "markdownDescription": "Specifies the data provider of traffic and road network data\\. \nThis field is case\\-sensitive\\. Enter the valid values as shown\\. For example, entering `HERE` returns an error\\.\nValid values include: \n+ `Esri`\n+ `Here`\nFor more information about data providers, see the [Amazon Location Service data providers page](https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataSource", "type": "string" }, "Description": { + "markdownDescription": "The optional description for the route calculator resource\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "PricingPlan": { + "markdownDescription": "No longer used\\. If included, the only allowed value is `RequestBasedUsage`\\. \n*Allowed Values*: `RequestBasedUsage` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PricingPlan", "type": "string" } }, @@ -99507,21 +121543,33 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "An optional description for the tracker resource\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "KmsKeyId": { + "markdownDescription": "A key identifier for an [AWS KMS customer managed key](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)\\. Enter a key ID, key ARN, alias name, or alias ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" }, "PositionFiltering": { + "markdownDescription": "Specifies the position filtering for the tracker resource\\. \nValid values: \n+ `TimeBased` \\- Location updates are evaluated against linked geofence collections, but not every location update is stored\\. If your update frequency is more often than 30 seconds, only one update per 30 seconds is stored for each unique device ID\\. \n+ `DistanceBased` \\- If the device has moved less than 30 m \\(98\\.4 ft\\), location updates are ignored\\. Location updates within this area are neither evaluated against linked geofence collections, nor stored\\. This helps control costs by reducing the number of geofence evaluations and historical device positions to paginate through\\. Distance\\-based filtering can also reduce the effects of GPS noise when displaying device trajectories on a map\\. \n+ `AccuracyBased` \\- If the device has moved less than the measured accuracy, location updates are ignored\\. For example, if two consecutive updates from a device have a horizontal accuracy of 5 m and 10 m, the second update is ignored if the device has moved less than 15 m\\. Ignored location updates are neither evaluated against linked geofence collections, nor stored\\. This can reduce the effects of GPS noise when displaying device trajectories on a map, and can help control your costs by reducing the number of geofence evaluations\\. \nThis field is optional\\. If not specified, the default value is `TimeBased`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AccuracyBased | DistanceBased | TimeBased` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PositionFiltering", "type": "string" }, "PricingPlan": { + "markdownDescription": "No longer used\\. If included, the only allowed value is `RequestBasedUsage`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `MobileAssetManagement | MobileAssetTracking | RequestBasedUsage` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PricingPlan", "type": "string" }, "PricingPlanDataSource": { + "markdownDescription": "This parameter is no longer used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PricingPlanDataSource", "type": "string" }, "TrackerName": { + "markdownDescription": "The name for the tracker resource\\. \nRequirements: \n+ Contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\) , hyphens \\(\\-\\), periods \\(\\.\\), and underscores \\(\\_\\)\\.\n+ Must be a unique tracker resource name\\.\n+ No spaces allowed\\. For example, `ExampleTracker`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[-._\\w]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TrackerName", "type": "string" } }, @@ -99587,9 +121635,13 @@ "additionalProperties": false, "properties": { "ConsumerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the geofence collection that consumes the tracker resource updates\\. \n+ Format example: `arn:aws:geo:region:account-id:geofence-collection/ExampleGeofenceCollectionConsumer`\n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1600` \n*Pattern*: `^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConsumerArn", "type": "string" }, "TrackerName": { + "markdownDescription": "The name for the tracker resource\\. \nRequirements: \n+ Contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\) , hyphens \\(\\-\\), periods \\(\\.\\), and underscores \\(\\_\\)\\.\n+ Must be a unique tracker resource name\\.\n+ No spaces allowed\\. For example, `ExampleTracker`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[-._\\w]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TrackerName", "type": "string" } }, @@ -99656,15 +121708,23 @@ "additionalProperties": false, "properties": { "DestinationName": { + "markdownDescription": "The name of the destination\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[^:*]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationName", "type": "string" }, "DestinationPolicy": { + "markdownDescription": "An IAM policy document that governs which AWS accounts can create subscription filters against this destination\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationPolicy", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of an IAM role that permits CloudWatch Logs to send data to the specified AWS resource\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "TargetArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the physical target where the log events are delivered \\(for example, a Kinesis stream\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetArn", "type": "string" } }, @@ -99735,18 +121795,26 @@ "type": "object" }, "KmsKeyId": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS KMS key to use when encrypting log data\\. \nTo associate an AWS KMS key with the log group, specify the ARN of that KMS key here\\. If you do so, ingested data is encrypted using this key\\. This association is stored as long as the data encrypted with the KMS key is still within CloudWatch Logs\\. This enables CloudWatch Logs to decrypt this data whenever it is requested\\. \nIf you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an `InvalidParameterException` error\\. \nLog group data is always encrypted in CloudWatch Logs\\. If you omit this key, the encryption does not use AWS KMS\\. For more information, see [ Encrypt log data in CloudWatch Logs using AWS Key Management Service](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", "type": "string" }, "LogGroupName": { + "markdownDescription": "The name of the log group\\. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogGroupName", "type": "string" }, "RetentionInDays": { + "markdownDescription": "The number of days to retain the log events in the specified log group\\. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, and 3653\\. \nTo set a log group to never have log events expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetentionInDays", "type": "number" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to the log group\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -99808,9 +121876,13 @@ "additionalProperties": false, "properties": { "LogGroupName": { + "markdownDescription": "The name of the log group where the log stream is created\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogGroupName", "type": "string" }, "LogStreamName": { + "markdownDescription": "The name of the log stream\\. The name must be unique within the log group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[^:*]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogStreamName", "type": "string" } }, @@ -99879,15 +121951,21 @@ "type": "string" }, "FilterPattern": { + "markdownDescription": "A filter pattern for extracting metric data out of ingested log events\\. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterPattern", "type": "string" }, "LogGroupName": { + "markdownDescription": "The name of an existing log group that you want to associate with this metric filter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogGroupName", "type": "string" }, "MetricTransformations": { "items": { "$ref": "#/definitions/AWS::Logs::MetricFilter.MetricTransformation" }, + "markdownDescription": "The metric transformations\\. \n*Required*: Yes \n*Type*: List of [MetricTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricTransformations", "type": "array" } }, @@ -99939,6 +122017,8 @@ "additionalProperties": false, "properties": { "DefaultValue": { + "markdownDescription": "\\(Optional\\) The value to emit when a filter pattern does not match a log event\\. This value can be null\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultValue", "type": "number" }, "Dimensions": { @@ -99948,12 +122028,18 @@ "type": "array" }, "MetricName": { + "markdownDescription": "The name of the CloudWatch metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", "type": "string" }, "MetricNamespace": { + "markdownDescription": "A custom namespace to contain your metric in CloudWatch\\. Use namespaces to group together metrics that are similar\\. For more information, see [Namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace)\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `[^:*$]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricNamespace", "type": "string" }, "MetricValue": { + "markdownDescription": "The value that is published to the CloudWatch metric\\. For example, if you're counting the occurrences of a particular term like `Error`, specify 1 for the metric value\\. If you're counting the number of bytes transferred, reference the value that is in the log event by using $ followed by the name of the field that you specified in the filter pattern, such as `$.size`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricValue", "type": "string" }, "Unit": { @@ -100006,12 +122092,18 @@ "items": { "type": "string" }, + "markdownDescription": "Use this parameter if you want the query to query only certain log groups\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroupNames", "type": "array" }, "Name": { + "markdownDescription": "A name for the query definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "QueryString": { + "markdownDescription": "The query string to use for this query definition\\. For more information, see [ CloudWatch Logs Insights Query Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryString", "type": "string" } }, @@ -100078,9 +122170,13 @@ "additionalProperties": false, "properties": { "PolicyDocument": { + "markdownDescription": "The details of the policy\\. It must be formatted in JSON, and you must use backslashes to escape characters that need to be escaped in JSON strings, such as double quote marks\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `5120` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDocument", "type": "string" }, "PolicyName": { + "markdownDescription": "The name of the resource policy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PolicyName", "type": "string" } }, @@ -100147,6 +122243,8 @@ "additionalProperties": false, "properties": { "DestinationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the destination\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationArn", "type": "string" }, "Distribution": { @@ -100156,12 +122254,18 @@ "type": "string" }, "FilterPattern": { + "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*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FilterPattern", "type": "string" }, "LogGroupName": { + "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*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogGroupName", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream\\. You don't need to provide the ARN when you are working with a logical destination for cross\\-account delivery\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RoleArn", "type": "string" } }, @@ -100229,33 +122333,51 @@ "additionalProperties": false, "properties": { "DataDelayOffsetInMinutes": { + "markdownDescription": "A period of time \\(in minutes\\) by which inference on the data is delayed after the data starts\\. For instance, if an offset delay time of five minutes was selected, inference will not begin on the data until the first data measurement after the five minute mark\\. For example, if five minutes is selected, the inference scheduler will wake up at the configured frequency with the additional five minute delay time to check the customer S3 bucket\\. The customer can upload data at the same frequency and they don't need to stop and restart the scheduler when uploading new data\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataDelayOffsetInMinutes", "type": "number" }, "DataInputConfiguration": { - "$ref": "#/definitions/AWS::LookoutEquipment::InferenceScheduler.DataInputConfiguration" + "$ref": "#/definitions/AWS::LookoutEquipment::InferenceScheduler.DataInputConfiguration", + "markdownDescription": "Specifies configuration information for the input data for the inference scheduler, including delimiter, format, and dataset location\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataInputConfiguration" }, "DataOutputConfiguration": { - "$ref": "#/definitions/AWS::LookoutEquipment::InferenceScheduler.DataOutputConfiguration" + "$ref": "#/definitions/AWS::LookoutEquipment::InferenceScheduler.DataOutputConfiguration", + "markdownDescription": "Specifies configuration information for the output results for the inference scheduler, including the Amazon S3 location for the output\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataOutputConfiguration" }, "DataUploadFrequency": { + "markdownDescription": "How often data is uploaded to the source S3 bucket for the input data\\. This value is the length of time between data uploads\\. For instance, if you select 5 minutes, Amazon Lookout for Equipment will upload the real\\-time data to the source bucket once every 5 minutes\\. This frequency also determines how often Amazon Lookout for Equipment starts a scheduled inference on your data\\. In this example, it starts once every 5 minutes\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `PT10M | PT15M | PT1H | PT30M | PT5M` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataUploadFrequency", "type": "string" }, "InferenceSchedulerName": { + "markdownDescription": "The name of the inference scheduler\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `200` \n*Pattern*: `^[0-9a-zA-Z_-]{1,200}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InferenceSchedulerName", "type": "string" }, "ModelName": { + "markdownDescription": "The name of the ML model used for the inference scheduler\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `200` \n*Pattern*: `^[0-9a-zA-Z_-]{1,200}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ModelName", "type": "string" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of a role with permission to access the data source being used for the inference\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "ServerSideKmsKeyId": { + "markdownDescription": "Provides the identifier of the AWS KMS key used to encrypt inference scheduler data by Amazon Lookout for Equipment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServerSideKmsKeyId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Any tags associated with the inference scheduler\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -100400,18 +122522,28 @@ "additionalProperties": false, "properties": { "Action": { - "$ref": "#/definitions/AWS::LookoutMetrics::Alert.Action" + "$ref": "#/definitions/AWS::LookoutMetrics::Alert.Action", + "markdownDescription": "Action that will be triggered when there is an alert\\. \n*Required*: Yes \n*Type*: [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-alert-action.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Action" }, "AlertDescription": { + "markdownDescription": "A description of the alert\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AlertDescription", "type": "string" }, "AlertName": { + "markdownDescription": "The name of the alert\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AlertName", "type": "string" }, "AlertSensitivityThreshold": { + "markdownDescription": "An integer from 0 to 100 specifying the alert sensitivity threshold\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AlertSensitivityThreshold", "type": "number" }, "AnomalyDetectorArn": { + "markdownDescription": "The ARN of the detector to which the alert is attached\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AnomalyDetectorArn", "type": "string" } }, @@ -100447,10 +122579,14 @@ "additionalProperties": false, "properties": { "LambdaConfiguration": { - "$ref": "#/definitions/AWS::LookoutMetrics::Alert.LambdaConfiguration" + "$ref": "#/definitions/AWS::LookoutMetrics::Alert.LambdaConfiguration", + "markdownDescription": "A configuration for an AWS Lambda channel\\. \n*Required*: No \n*Type*: [LambdaConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-alert-lambdaconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LambdaConfiguration" }, "SNSConfiguration": { - "$ref": "#/definitions/AWS::LookoutMetrics::Alert.SNSConfiguration" + "$ref": "#/definitions/AWS::LookoutMetrics::Alert.SNSConfiguration", + "markdownDescription": "A configuration for an Amazon SNS channel\\. \n*Required*: No \n*Type*: [SNSConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-alert-snsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SNSConfiguration" } }, "type": "object" @@ -100459,9 +122595,13 @@ "additionalProperties": false, "properties": { "LambdaArn": { + "markdownDescription": "The ARN of the Lambda function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LambdaArn", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of an IAM role that has permission to invoke the Lambda function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RoleArn", "type": "string" } }, @@ -100475,9 +122615,13 @@ "additionalProperties": false, "properties": { "RoleArn": { + "markdownDescription": "The ARN of the IAM role that has access to the target SNS topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RoleArn", "type": "string" }, "SnsTopicArn": { + "markdownDescription": "The ARN of the target SNS topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnsTopicArn", "type": "string" } }, @@ -100523,21 +122667,31 @@ "additionalProperties": false, "properties": { "AnomalyDetectorConfig": { - "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.AnomalyDetectorConfig" + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.AnomalyDetectorConfig", + "markdownDescription": "Contains information about the configuration of the anomaly detector\\. \n*Required*: Yes \n*Type*: [AnomalyDetectorConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-anomalydetectorconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AnomalyDetectorConfig" }, "AnomalyDetectorDescription": { + "markdownDescription": "A description of the detector\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AnomalyDetectorDescription", "type": "string" }, "AnomalyDetectorName": { + "markdownDescription": "The name of the detector\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AnomalyDetectorName", "type": "string" }, "KmsKeyArn": { + "markdownDescription": "The ARN of the KMS key to use to encrypt your data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyArn", "type": "string" }, "MetricSetList": { "items": { "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.MetricSet" }, + "markdownDescription": "The detector's dataset\\. \n*Required*: Yes \n*Type*: List of [MetricSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metricset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricSetList", "type": "array" } }, @@ -100572,6 +122726,8 @@ "additionalProperties": false, "properties": { "AnomalyDetectorFrequency": { + "markdownDescription": "The frequency at which the detector analyzes its source data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AnomalyDetectorFrequency", "type": "string" } }, @@ -100584,9 +122740,13 @@ "additionalProperties": false, "properties": { "FlowName": { + "markdownDescription": "name of the flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FlowName", "type": "string" }, "RoleArn": { + "markdownDescription": "An IAM role that gives Amazon Lookout for Metrics permission to access the flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -100600,6 +122760,8 @@ "additionalProperties": false, "properties": { "RoleArn": { + "markdownDescription": "An IAM role that gives Amazon Lookout for Metrics permission to access data in Amazon CloudWatch\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -100612,24 +122774,36 @@ "additionalProperties": false, "properties": { "Charset": { + "markdownDescription": "The character set in which the source CSV file is written\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Charset", "type": "string" }, "ContainsHeader": { + "markdownDescription": "Whether or not the source CSV file contains a header\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainsHeader", "type": "boolean" }, "Delimiter": { + "markdownDescription": "The character used to delimit the source CSV file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Delimiter", "type": "string" }, "FileCompression": { + "markdownDescription": "The level of compression of the source CSV file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileCompression", "type": "string" }, "HeaderList": { "items": { "type": "string" }, + "markdownDescription": "A list of the source CSV file's headers, if any\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderList", "type": "array" }, "QuoteSymbol": { + "markdownDescription": "The character used as a quote character\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QuoteSymbol", "type": "string" } }, @@ -100639,10 +122813,14 @@ "additionalProperties": false, "properties": { "CsvFormatDescriptor": { - "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.CsvFormatDescriptor" + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.CsvFormatDescriptor", + "markdownDescription": "Contains information about how a source CSV data file should be analyzed\\. \n*Required*: No \n*Type*: [CsvFormatDescriptor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-csvformatdescriptor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CsvFormatDescriptor" }, "JsonFormatDescriptor": { - "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.JsonFormatDescriptor" + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.JsonFormatDescriptor", + "markdownDescription": "Contains information about how a source JSON data file should be analyzed\\. \n*Required*: No \n*Type*: [JsonFormatDescriptor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-jsonformatdescriptor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JsonFormatDescriptor" } }, "type": "object" @@ -100651,9 +122829,13 @@ "additionalProperties": false, "properties": { "Charset": { + "markdownDescription": "The character set in which the source JSON file is written\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Charset", "type": "string" }, "FileCompression": { + "markdownDescription": "The level of compression of the source CSV file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileCompression", "type": "string" } }, @@ -100663,12 +122845,18 @@ "additionalProperties": false, "properties": { "AggregationFunction": { + "markdownDescription": "The function with which the metric is calculated\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AggregationFunction", "type": "string" }, "MetricName": { + "markdownDescription": "The name of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", "type": "string" }, "Namespace": { + "markdownDescription": "The namespace for the metric\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", "type": "string" } }, @@ -100685,33 +122873,51 @@ "items": { "type": "string" }, + "markdownDescription": "A list of the fields you want to treat as dimensions\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DimensionList", "type": "array" }, "MetricList": { "items": { "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.Metric" }, + "markdownDescription": "A list of metrics that the dataset will contain\\. \n*Required*: Yes \n*Type*: List of [Metric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricList", "type": "array" }, "MetricSetDescription": { + "markdownDescription": "A description of the dataset you are creating\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricSetDescription", "type": "string" }, "MetricSetFrequency": { + "markdownDescription": "The frequency with which the source data will be analyzed for anomalies\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricSetFrequency", "type": "string" }, "MetricSetName": { + "markdownDescription": "The name of the dataset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricSetName", "type": "string" }, "MetricSource": { - "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.MetricSource" + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.MetricSource", + "markdownDescription": "Contains information about how the source data should be interpreted\\. \n*Required*: Yes \n*Type*: [MetricSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metricsource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricSource" }, "Offset": { + "markdownDescription": "After an interval ends, the amount of seconds that the detector waits before importing data\\. Offset is only supported for S3 and Redshift datasources\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Offset", "type": "number" }, "TimestampColumn": { - "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.TimestampColumn" + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.TimestampColumn", + "markdownDescription": "Contains information about the column used for tracking time in your source data\\. \n*Required*: No \n*Type*: [TimestampColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-timestampcolumn.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimestampColumn" }, "Timezone": { + "markdownDescription": "The time zone in which your source data was recorded\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timezone", "type": "string" } }, @@ -100726,19 +122932,29 @@ "additionalProperties": false, "properties": { "AppFlowConfig": { - "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.AppFlowConfig" + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.AppFlowConfig", + "markdownDescription": "An object containing information about the AppFlow configuration\\. \n*Required*: No \n*Type*: [AppFlowConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-appflowconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppFlowConfig" }, "CloudwatchConfig": { - "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.CloudwatchConfig" + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.CloudwatchConfig", + "markdownDescription": "An object containing information about the Amazon CloudWatch monitoring configuration\\. \n*Required*: No \n*Type*: [CloudwatchConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-cloudwatchconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudwatchConfig" }, "RDSSourceConfig": { - "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.RDSSourceConfig" + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.RDSSourceConfig", + "markdownDescription": "An object containing information about the Amazon Relational Database Service \\(RDS\\) configuration\\. \n*Required*: No \n*Type*: [RDSSourceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-rdssourceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RDSSourceConfig" }, "RedshiftSourceConfig": { - "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.RedshiftSourceConfig" + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.RedshiftSourceConfig", + "markdownDescription": "An object containing information about the Amazon Redshift database configuration\\. \n*Required*: No \n*Type*: [RedshiftSourceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-redshiftsourceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedshiftSourceConfig" }, "S3SourceConfig": { - "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.S3SourceConfig" + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.S3SourceConfig", + "markdownDescription": "Contains information about the configuration of the S3 bucket that contains source files\\. \n*Required*: No \n*Type*: [S3SourceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-s3sourceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3SourceConfig" } }, "type": "object" @@ -100747,28 +122963,44 @@ "additionalProperties": false, "properties": { "DBInstanceIdentifier": { + "markdownDescription": "A string identifying the database instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBInstanceIdentifier", "type": "string" }, "DatabaseHost": { + "markdownDescription": "The host name of the database\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseHost", "type": "string" }, "DatabaseName": { + "markdownDescription": "The name of the RDS database\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", "type": "string" }, "DatabasePort": { + "markdownDescription": "The port number where the database can be accessed\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabasePort", "type": "number" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "SecretManagerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Secrets Manager role\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretManagerArn", "type": "string" }, "TableName": { + "markdownDescription": "The name of the table in the database\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", "type": "string" }, "VpcConfiguration": { - "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.VpcConfiguration" + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.VpcConfiguration", + "markdownDescription": "An object containing information about the Amazon Virtual Private Cloud \\(VPC\\) configuration\\. \n*Required*: Yes \n*Type*: [VpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-vpcconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcConfiguration" } }, "required": [ @@ -100787,28 +123019,44 @@ "additionalProperties": false, "properties": { "ClusterIdentifier": { + "markdownDescription": "A string identifying the Redshift cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterIdentifier", "type": "string" }, "DatabaseHost": { + "markdownDescription": "The name of the database host\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseHost", "type": "string" }, "DatabaseName": { + "markdownDescription": "The Redshift database name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", "type": "string" }, "DatabasePort": { + "markdownDescription": "The port number where the database can be accessed\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabasePort", "type": "number" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role providing access to the database\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "SecretManagerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Secrets Manager role\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretManagerArn", "type": "string" }, "TableName": { + "markdownDescription": "The table name of the Redshift database\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", "type": "string" }, "VpcConfiguration": { - "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.VpcConfiguration" + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.VpcConfiguration", + "markdownDescription": "Contains information about the Amazon Virtual Private Cloud \\(VPC\\) configuration\\. \n*Required*: Yes \n*Type*: [VpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-vpcconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcConfiguration" } }, "required": [ @@ -100827,21 +123075,29 @@ "additionalProperties": false, "properties": { "FileFormatDescriptor": { - "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.FileFormatDescriptor" + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.FileFormatDescriptor", + "markdownDescription": "Contains information about a source file's formatting\\. \n*Required*: Yes \n*Type*: [FileFormatDescriptor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-fileformatdescriptor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileFormatDescriptor" }, "HistoricalDataPathList": { "items": { "type": "string" }, + "markdownDescription": "A list of paths to the historical data files\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HistoricalDataPathList", "type": "array" }, "RoleArn": { + "markdownDescription": "The ARN of an IAM role that has read and write access permissions to the source S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "TemplatedPathList": { "items": { "type": "string" }, + "markdownDescription": "A list of templated paths to the source files\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplatedPathList", "type": "array" } }, @@ -100855,9 +123111,13 @@ "additionalProperties": false, "properties": { "ColumnFormat": { + "markdownDescription": "The format of the timestamp column\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnFormat", "type": "string" }, "ColumnName": { + "markdownDescription": "The name of the timestamp column\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnName", "type": "string" } }, @@ -100870,12 +123130,16 @@ "items": { "type": "string" }, + "markdownDescription": "An array of strings containing the list of security groups\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIdList", "type": "array" }, "SubnetIdList": { "items": { "type": "string" }, + "markdownDescription": "An array of strings containing the Amazon VPC subnet IDs \\(e\\.g\\., `subnet-0bb1c79de3EXAMPLE`\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIdList", "type": "array" } }, @@ -100921,6 +123185,8 @@ "additionalProperties": false, "properties": { "ProjectName": { + "markdownDescription": "The name of the project\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9][a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProjectName", "type": "string" } }, @@ -101260,12 +123526,16 @@ "additionalProperties": false, "properties": { "ClusterArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the MSK cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterArn", "type": "string" }, "SecretArnList": { "items": { "type": "string" }, + "markdownDescription": "A list of Amazon Secrets Manager secret ARNs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretArnList", "type": "array" } }, @@ -101331,48 +123601,72 @@ "additionalProperties": false, "properties": { "BrokerNodeGroupInfo": { - "$ref": "#/definitions/AWS::MSK::Cluster.BrokerNodeGroupInfo" + "$ref": "#/definitions/AWS::MSK::Cluster.BrokerNodeGroupInfo", + "markdownDescription": "The setup to be used for brokers in the cluster\\. \nAWS CloudFormation may replace the cluster when you update certain `BrokerNodeGroupInfo` properties\\. To understand the update behavior for your use case, you should review the child properties for [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-brokernodegroupinfo.html#aws-properties-msk-cluster-brokernodegroupinfo-properties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-brokernodegroupinfo.html#aws-properties-msk-cluster-brokernodegroupinfo-properties)\\.\n*Required*: Yes \n*Type*: [BrokerNodeGroupInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-brokernodegroupinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BrokerNodeGroupInfo" }, "ClientAuthentication": { - "$ref": "#/definitions/AWS::MSK::Cluster.ClientAuthentication" + "$ref": "#/definitions/AWS::MSK::Cluster.ClientAuthentication", + "markdownDescription": "Includes information related to client authentication\\. \n*Required*: No \n*Type*: [ClientAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-clientauthentication.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientAuthentication" }, "ClusterName": { + "markdownDescription": "The name of the cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterName", "type": "string" }, "ConfigurationInfo": { - "$ref": "#/definitions/AWS::MSK::Cluster.ConfigurationInfo" + "$ref": "#/definitions/AWS::MSK::Cluster.ConfigurationInfo", + "markdownDescription": "The Amazon MSK configuration to use for the cluster\\. \n*Required*: No \n*Type*: [ConfigurationInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-configurationinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfigurationInfo" }, "CurrentVersion": { + "markdownDescription": "The version of the cluster that you want to update\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CurrentVersion", "type": "string" }, "EncryptionInfo": { - "$ref": "#/definitions/AWS::MSK::Cluster.EncryptionInfo" + "$ref": "#/definitions/AWS::MSK::Cluster.EncryptionInfo", + "markdownDescription": "Includes all encryption\\-related information\\. \n*Required*: No \n*Type*: [EncryptionInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-encryptioninfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionInfo" }, "EnhancedMonitoring": { + "markdownDescription": "Specifies the level of monitoring for the MSK cluster\\. The possible values are `DEFAULT`, `PER_BROKER`, and `PER_TOPIC_PER_BROKER`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnhancedMonitoring", "type": "string" }, "KafkaVersion": { + "markdownDescription": "The version of Apache Kafka\\. For more information, see [Supported Apache Kafka versions](https://docs.aws.amazon.com/msk/latest/developerguide/supported-kafka-versions.html) in the Amazon MSK Developer Guide\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KafkaVersion", "type": "string" }, "LoggingInfo": { - "$ref": "#/definitions/AWS::MSK::Cluster.LoggingInfo" + "$ref": "#/definitions/AWS::MSK::Cluster.LoggingInfo", + "markdownDescription": "You can configure your Amazon MSK cluster to send broker logs to different destination types\\. This is a container for the configuration details related to broker logs\\. \n*Required*: No \n*Type*: [LoggingInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-logginginfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingInfo" }, "NumberOfBrokerNodes": { + "markdownDescription": "The number of broker nodes you want in the Amazon MSK cluster\\. You can submit an update to increase the number of broker nodes in a cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfBrokerNodes", "type": "number" }, "OpenMonitoring": { - "$ref": "#/definitions/AWS::MSK::Cluster.OpenMonitoring" + "$ref": "#/definitions/AWS::MSK::Cluster.OpenMonitoring", + "markdownDescription": "The settings for open monitoring\\. \n*Required*: No \n*Type*: [OpenMonitoring](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-openmonitoring.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OpenMonitoring" }, "StorageMode": { "type": "string" }, "Tags": { "additionalProperties": true, + "markdownDescription": "A map of key:value pairs to apply to this resource\\. Both key and value are of type String\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" } }, @@ -101409,13 +123703,19 @@ "additionalProperties": false, "properties": { "CloudWatchLogs": { - "$ref": "#/definitions/AWS::MSK::Cluster.CloudWatchLogs" + "$ref": "#/definitions/AWS::MSK::Cluster.CloudWatchLogs", + "markdownDescription": "Details of the CloudWatch Logs destination for broker logs\\. \n*Required*: No \n*Type*: [CloudWatchLogs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-cloudwatchlogs.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogs" }, "Firehose": { - "$ref": "#/definitions/AWS::MSK::Cluster.Firehose" + "$ref": "#/definitions/AWS::MSK::Cluster.Firehose", + "markdownDescription": "Details of the Kinesis Data Firehose delivery stream that is the destination for broker logs\\. \n*Required*: No \n*Type*: [Firehose](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-firehose.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Firehose" }, "S3": { - "$ref": "#/definitions/AWS::MSK::Cluster.S3" + "$ref": "#/definitions/AWS::MSK::Cluster.S3", + "markdownDescription": "Details of the Amazon MSK destination for broker logs\\. \n*Required*: No \n*Type*: [S3](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-s3.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3" } }, "type": "object" @@ -101424,28 +123724,40 @@ "additionalProperties": false, "properties": { "BrokerAZDistribution": { + "markdownDescription": "This parameter is currently not in use\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BrokerAZDistribution", "type": "string" }, "ClientSubnets": { "items": { "type": "string" }, + "markdownDescription": "The list of subnets to connect to in the client virtual private cloud \\(VPC\\)\\. Amazon creates elastic network interfaces inside these subnets\\. Client applications use elastic network interfaces to produce and consume data\\. \nSpecify exactly two subnets if you are using the US West \\(N\\. California\\) Region\\. For other Regions where Amazon MSK is available, you can specify either two or three subnets\\. The subnets that you specify must be in distinct Availability Zones\\. When you create a cluster, Amazon MSK distributes the broker nodes evenly across the subnets that you specify\\. \nClient subnets can't be in Availability Zone us\\-east\\-1e\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientSubnets", "type": "array" }, "ConnectivityInfo": { - "$ref": "#/definitions/AWS::MSK::Cluster.ConnectivityInfo" + "$ref": "#/definitions/AWS::MSK::Cluster.ConnectivityInfo", + "markdownDescription": "Information about the cluster's connectivity setting\\. \n*Required*: No \n*Type*: [ConnectivityInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-connectivityinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectivityInfo" }, "InstanceType": { + "markdownDescription": "The type of Amazon EC2 instances to use for brokers\\. The following instance types are allowed: kafka\\.m5\\.large, kafka\\.m5\\.xlarge, kafka\\.m5\\.2xlarge, kafka\\.m5\\.4xlarge, kafka\\.m5\\.8xlarge, kafka\\.m5\\.12xlarge, kafka\\.m5\\.16xlarge, and kafka\\.m5\\.24xlarge\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", "type": "string" }, "SecurityGroups": { "items": { "type": "string" }, + "markdownDescription": "The security groups to associate with the elastic network interfaces in order to specify who can connect to and communicate with the Amazon MSK cluster\\. If you don't specify a security group, Amazon MSK uses the default security group associated with the VPC\\. If you specify security groups that were shared with you, you must ensure that you have permissions to them\\. Specifically, you need the `ec2:DescribeSecurityGroups` permission\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroups", "type": "array" }, "StorageInfo": { - "$ref": "#/definitions/AWS::MSK::Cluster.StorageInfo" + "$ref": "#/definitions/AWS::MSK::Cluster.StorageInfo", + "markdownDescription": "Contains information about storage volumes attached to MSK broker nodes\\. \n*Required*: No \n*Type*: [StorageInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-storageinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageInfo" } }, "required": [ @@ -101458,13 +123770,19 @@ "additionalProperties": false, "properties": { "Sasl": { - "$ref": "#/definitions/AWS::MSK::Cluster.Sasl" + "$ref": "#/definitions/AWS::MSK::Cluster.Sasl", + "markdownDescription": "Details for ClientAuthentication using SASL\\. \n*Required*: No \n*Type*: [Sasl](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-sasl.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sasl" }, "Tls": { - "$ref": "#/definitions/AWS::MSK::Cluster.Tls" + "$ref": "#/definitions/AWS::MSK::Cluster.Tls", + "markdownDescription": "Details for client authentication using TLS\\. \n*Required*: No \n*Type*: [Tls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-tls.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tls" }, "Unauthenticated": { - "$ref": "#/definitions/AWS::MSK::Cluster.Unauthenticated" + "$ref": "#/definitions/AWS::MSK::Cluster.Unauthenticated", + "markdownDescription": "Details for ClientAuthentication using no authentication\\. \n*Required*: No \n*Type*: [Unauthenticated](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-unauthenticated.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unauthenticated" } }, "type": "object" @@ -101473,9 +123791,13 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Specifies whether broker logs get sent to the specified CloudWatch Logs destination\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "LogGroup": { + "markdownDescription": "The CloudWatch Logs group that is the destination for broker logs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroup", "type": "string" } }, @@ -101488,9 +123810,13 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the MSK configuration to use\\. For example, `arn:aws:kafka:us-east-1:123456789012:configuration/example-configuration-name/abcdabcd-1234-abcd-1234-abcd123e8e8e-1`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "Revision": { + "markdownDescription": "The revision of the Amazon MSK configuration to use\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Revision", "type": "number" } }, @@ -101504,7 +123830,9 @@ "additionalProperties": false, "properties": { "PublicAccess": { - "$ref": "#/definitions/AWS::MSK::Cluster.PublicAccess" + "$ref": "#/definitions/AWS::MSK::Cluster.PublicAccess", + "markdownDescription": "Specifies whether the cluster's brokers are accessible from the internet\\. Public access is off by default\\. \n*Required*: No \n*Type*: [PublicAccess](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-publicaccess.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublicAccess" }, "VpcConnectivity": { "$ref": "#/definitions/AWS::MSK::Cluster.VpcConnectivity" @@ -101516,9 +123844,13 @@ "additionalProperties": false, "properties": { "ProvisionedThroughput": { - "$ref": "#/definitions/AWS::MSK::Cluster.ProvisionedThroughput" + "$ref": "#/definitions/AWS::MSK::Cluster.ProvisionedThroughput", + "markdownDescription": "Specifies whether provisioned throughput is turned on and the volume throughput target\\. \n*Required*: No \n*Type*: [ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-provisionedthroughput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisionedThroughput" }, "VolumeSize": { + "markdownDescription": "The size in GiB of the EBS volume for the data drive on each broker node\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeSize", "type": "number" } }, @@ -101528,6 +123860,8 @@ "additionalProperties": false, "properties": { "DataVolumeKMSKeyId": { + "markdownDescription": "The ARN of the Amazon KMS key for encrypting data at rest\\. If you don't specify a KMS key, MSK creates one for you and uses it on your behalf\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataVolumeKMSKeyId", "type": "string" } }, @@ -101540,9 +123874,13 @@ "additionalProperties": false, "properties": { "ClientBroker": { + "markdownDescription": "Indicates the encryption setting for data in transit between clients and brokers\\. The following are the possible values\\. \n+ `TLS` means that client\\-broker communication is enabled with TLS only\\. \n+ `TLS_PLAINTEXT` means that client\\-broker communication is enabled for both TLS\\-encrypted, as well as plain text data\\. \n+ `PLAINTEXT` means that client\\-broker communication is enabled in plain text only\\.\nThe default value is `TLS`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientBroker", "type": "string" }, "InCluster": { + "markdownDescription": "When set to true, it indicates that data communication among the broker nodes of the cluster is encrypted\\. When set to false, the communication happens in plain text\\. The default value is true\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InCluster", "type": "boolean" } }, @@ -101552,10 +123890,14 @@ "additionalProperties": false, "properties": { "EncryptionAtRest": { - "$ref": "#/definitions/AWS::MSK::Cluster.EncryptionAtRest" + "$ref": "#/definitions/AWS::MSK::Cluster.EncryptionAtRest", + "markdownDescription": "The data\\-volume encryption details\\. \n*Required*: No \n*Type*: [EncryptionAtRest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-encryptionatrest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncryptionAtRest" }, "EncryptionInTransit": { - "$ref": "#/definitions/AWS::MSK::Cluster.EncryptionInTransit" + "$ref": "#/definitions/AWS::MSK::Cluster.EncryptionInTransit", + "markdownDescription": "The details for encryption in transit\\. \n*Required*: No \n*Type*: [EncryptionInTransit](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-encryptionintransit.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionInTransit" } }, "type": "object" @@ -101564,9 +123906,13 @@ "additionalProperties": false, "properties": { "DeliveryStream": { + "markdownDescription": "The Kinesis Data Firehose delivery stream that is the destination for broker logs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryStream", "type": "string" }, "Enabled": { + "markdownDescription": "Specifies whether broker logs get sent to the specified Kinesis Data Firehose delivery stream\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -101579,6 +123925,8 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Whether IAM access control is enabled\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -101591,6 +123939,8 @@ "additionalProperties": false, "properties": { "EnabledInBroker": { + "markdownDescription": "Indicates whether you want to enable or disable the JMX Exporter\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnabledInBroker", "type": "boolean" } }, @@ -101603,7 +123953,9 @@ "additionalProperties": false, "properties": { "BrokerLogs": { - "$ref": "#/definitions/AWS::MSK::Cluster.BrokerLogs" + "$ref": "#/definitions/AWS::MSK::Cluster.BrokerLogs", + "markdownDescription": "You can configure your Amazon MSK cluster to send broker logs to different destination types\\. This configuration specifies the details of these destinations\\. \n*Required*: Yes \n*Type*: [BrokerLogs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-brokerlogs.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BrokerLogs" } }, "required": [ @@ -101615,6 +123967,8 @@ "additionalProperties": false, "properties": { "EnabledInBroker": { + "markdownDescription": "Indicates whether you want to enable or disable the Node Exporter\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnabledInBroker", "type": "boolean" } }, @@ -101627,7 +123981,9 @@ "additionalProperties": false, "properties": { "Prometheus": { - "$ref": "#/definitions/AWS::MSK::Cluster.Prometheus" + "$ref": "#/definitions/AWS::MSK::Cluster.Prometheus", + "markdownDescription": "Prometheus exporter settings\\. \n*Required*: Yes \n*Type*: [Prometheus](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-prometheus.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prometheus" } }, "required": [ @@ -101639,10 +123995,14 @@ "additionalProperties": false, "properties": { "JmxExporter": { - "$ref": "#/definitions/AWS::MSK::Cluster.JmxExporter" + "$ref": "#/definitions/AWS::MSK::Cluster.JmxExporter", + "markdownDescription": "Indicates whether you want to enable or disable the JMX Exporter\\. \n*Required*: No \n*Type*: [JmxExporter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-jmxexporter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JmxExporter" }, "NodeExporter": { - "$ref": "#/definitions/AWS::MSK::Cluster.NodeExporter" + "$ref": "#/definitions/AWS::MSK::Cluster.NodeExporter", + "markdownDescription": "Indicates whether you want to enable or disable the Node Exporter\\. \n*Required*: No \n*Type*: [NodeExporter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-nodeexporter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NodeExporter" } }, "type": "object" @@ -101651,9 +124011,13 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Specifies whether provisioned throughput is turned on for the cluster\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "VolumeThroughput": { + "markdownDescription": "The provisioned throughput rate in MiB per second\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeThroughput", "type": "number" } }, @@ -101663,6 +124027,8 @@ "additionalProperties": false, "properties": { "Type": { + "markdownDescription": "Set to `DISABLED` to turn off public access or to `SERVICE_PROVIDED_EIPS` to turn it on\\. Public access if off by default\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -101672,12 +124038,18 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The name of the S3 bucket that is the destination for broker logs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", "type": "string" }, "Enabled": { + "markdownDescription": "Specifies whether broker logs get sent to the specified Amazon S3 destination\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "Prefix": { + "markdownDescription": "The S3 prefix that is the destination for broker logs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" } }, @@ -101690,10 +124062,14 @@ "additionalProperties": false, "properties": { "Iam": { - "$ref": "#/definitions/AWS::MSK::Cluster.Iam" + "$ref": "#/definitions/AWS::MSK::Cluster.Iam", + "markdownDescription": "Details for IAM access control\\. \n*Required*: No \n*Type*: [Iam](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-iam.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iam" }, "Scram": { - "$ref": "#/definitions/AWS::MSK::Cluster.Scram" + "$ref": "#/definitions/AWS::MSK::Cluster.Scram", + "markdownDescription": "Details for SASL/SCRAM client authentication\\. \n*Required*: No \n*Type*: [Scram](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-scram.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scram" } }, "type": "object" @@ -101702,6 +124078,8 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "SASL/SCRAM authentication is enabled or not\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -101714,7 +124092,9 @@ "additionalProperties": false, "properties": { "EBSStorageInfo": { - "$ref": "#/definitions/AWS::MSK::Cluster.EBSStorageInfo" + "$ref": "#/definitions/AWS::MSK::Cluster.EBSStorageInfo", + "markdownDescription": "EBS volume information\\. \n*Required*: No \n*Type*: [EBSStorageInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-ebsstorageinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EBSStorageInfo" } }, "type": "object" @@ -101726,9 +124106,13 @@ "items": { "type": "string" }, + "markdownDescription": "List of ACM Certificate Authority ARNs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateAuthorityArnList", "type": "array" }, "Enabled": { + "markdownDescription": "TLS authentication is enabled or not\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -101738,6 +124122,8 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Unauthenticated is enabled or not\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -101851,18 +124237,26 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "KafkaVersionsList": { "items": { "type": "string" }, + "markdownDescription": "A list of the versions of Apache Kafka with which you can use this MSK configuration\\. You can use this configuration for an MSK cluster only if the Apache Kafka version specified for the cluster appears in this list\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KafkaVersionsList", "type": "array" }, "Name": { + "markdownDescription": "The name of the configuration\\. Configuration names are strings that match the regex \"^\\[0\\-9A\\-Za\\-z\\]\\[0\\-9A\\-Za\\-z\\-\\]\\{0,\\}$\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "ServerProperties": { + "markdownDescription": "Contents of the `server.properties` file\\. When using the API, you must ensure that the contents of the file are base64 encoded\\. When using the console, the SDK, or the CLI, the contents of `server.properties` can be in plaintext\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerProperties", "type": "string" } }, @@ -102071,63 +124465,103 @@ "additionalProperties": false, "properties": { "AirflowConfigurationOptions": { + "markdownDescription": "A list of key\\-value pairs containing the Airflow configuration options for your environment\\. For example, `core.default_timezone: utc`\\. To learn more, see [Apache Airflow configuration options](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AirflowConfigurationOptions", "type": "object" }, "AirflowVersion": { + "markdownDescription": "The version of Apache Airflow to use for the environment\\. If no value is specified, defaults to the latest version\\. Valid values: `2.0.2`, `1.10.12`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AirflowVersion", "type": "string" }, "DagS3Path": { + "markdownDescription": "The relative path to the DAGs folder on your Amazon S3 bucket\\. For example, `dags`\\. To learn more, see [Adding or updating DAGs](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-folder.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DagS3Path", "type": "string" }, "EnvironmentClass": { + "markdownDescription": "The environment class type\\. Valid values: `mw1.small`, `mw1.medium`, `mw1.large`\\. To learn more, see [Amazon MWAA environment class](https://docs.aws.amazon.com/mwaa/latest/userguide/environment-class.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnvironmentClass", "type": "string" }, "ExecutionRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the execution role in IAM that allows MWAA to access AWS resources in your environment\\. For example, `arn:aws:iam::123456789:role/my-execution-role`\\. To learn more, see [Amazon MWAA Execution role](https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-create-role.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionRoleArn", "type": "string" }, "KmsKey": { + "markdownDescription": "The AWS Key Management Service \\(KMS\\) key to encrypt and decrypt the data in your environment\\. You can use an AWS KMS key managed by MWAA, or a customer\\-managed KMS key \\(advanced\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKey", "type": "string" }, "LoggingConfiguration": { - "$ref": "#/definitions/AWS::MWAA::Environment.LoggingConfiguration" + "$ref": "#/definitions/AWS::MWAA::Environment.LoggingConfiguration", + "markdownDescription": "The Apache Airflow logs being sent to CloudWatch Logs: `DagProcessingLogs`, `SchedulerLogs`, `TaskLogs`, `WebserverLogs`, `WorkerLogs`\\. \n*Required*: No \n*Type*: [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mwaa-environment-loggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingConfiguration" }, "MaxWorkers": { + "markdownDescription": "The maximum number of workers that you want to run in your environment\\. MWAA scales the number of Apache Airflow workers up to the number you specify in the `MaxWorkers` field\\. For example, `20`\\. When there are no more tasks running, and no more in the queue, MWAA disposes of the extra workers leaving the one worker that is included with your environment, or the number you specify in `MinWorkers`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxWorkers", "type": "number" }, "MinWorkers": { + "markdownDescription": "The minimum number of workers that you want to run in your environment\\. MWAA scales the number of Apache Airflow workers up to the number you specify in the `MaxWorkers` field\\. When there are no more tasks running, and no more in the queue, MWAA disposes of the extra workers leaving the worker count you specify in the `MinWorkers` field\\. For example, `2`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinWorkers", "type": "number" }, "Name": { + "markdownDescription": "The name of your Amazon MWAA environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "NetworkConfiguration": { - "$ref": "#/definitions/AWS::MWAA::Environment.NetworkConfiguration" + "$ref": "#/definitions/AWS::MWAA::Environment.NetworkConfiguration", + "markdownDescription": "The VPC networking components used to secure and enable network traffic between the AWS resources for your environment\\. To learn more, see [About networking on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/networking-about.html)\\. \n*Required*: No \n*Type*: [NetworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mwaa-environment-networkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkConfiguration" }, "PluginsS3ObjectVersion": { + "markdownDescription": "The version of the plugins\\.zip file on your Amazon S3 bucket\\. To learn more, see [Installing custom plugins](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import-plugins.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PluginsS3ObjectVersion", "type": "string" }, "PluginsS3Path": { + "markdownDescription": "The relative path to the `plugins.zip` file on your Amazon S3 bucket\\. For example, `plugins.zip`\\. To learn more, see [Installing custom plugins](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import-plugins.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PluginsS3Path", "type": "string" }, "RequirementsS3ObjectVersion": { + "markdownDescription": "The version of the requirements\\.txt file on your Amazon S3 bucket\\. To learn more, see [Installing Python dependencies](https://docs.aws.amazon.com/mwaa/latest/userguide/working-dags-dependencies.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequirementsS3ObjectVersion", "type": "string" }, "RequirementsS3Path": { + "markdownDescription": "The relative path to the `requirements.txt` file on your Amazon S3 bucket\\. For example, `requirements.txt`\\. To learn more, see [Installing Python dependencies](https://docs.aws.amazon.com/mwaa/latest/userguide/working-dags-dependencies.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequirementsS3Path", "type": "string" }, "Schedulers": { + "markdownDescription": "The number of schedulers that you want to run in your environment\\. Valid values: \n+ **v2\\.0\\.2** \\- Accepts between 2 to 5\\. Defaults to 2\\.\n+ **v1\\.10\\.12** \\- Accepts 1\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedulers", "type": "number" }, "SourceBucketArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon S3 bucket where your DAG code and supporting files are stored\\. For example, `arn:aws:s3:::my-airflow-bucket-unique-name`\\. To learn more, see [Create an Amazon S3 bucket for Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-s3-bucket.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceBucketArn", "type": "string" }, "Tags": { + "markdownDescription": "The key\\-value tag pairs associated to your environment\\. For example, `\"Environment\": \"Staging\"`\\. To learn more, see [Tagging](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" }, "WebserverAccessMode": { + "markdownDescription": "The Apache Airflow *Web server* access mode\\. To learn more, see [Apache Airflow access modes](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-networking.html)\\. Valid values: `PRIVATE_ONLY` or `PUBLIC_ONLY`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WebserverAccessMode", "type": "string" }, "WeeklyMaintenanceWindowStart": { + "markdownDescription": "The day and time of the week to start weekly maintenance updates of your environment in the following format: `DAY:HH:MM`\\. For example: `TUE:03:30`\\. You can specify a start time in 30 minute increments only\\. Supported input includes the following: \n+ MON\\|TUE\\|WED\\|THU\\|FRI\\|SAT\\|SUN:\\(\\[01\\]\\\\\\\\d\\|2\\[0\\-3\\]\\):\\(00\\|30\\)\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WeeklyMaintenanceWindowStart", "type": "string" } }, @@ -102161,19 +124595,29 @@ "additionalProperties": false, "properties": { "DagProcessingLogs": { - "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration" + "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration", + "markdownDescription": "Defines the processing logs sent to CloudWatch Logs and the logging level to send\\. \n*Required*: No \n*Type*: [ModuleLoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mwaa-environment-moduleloggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DagProcessingLogs" }, "SchedulerLogs": { - "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration" + "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration", + "markdownDescription": "Defines the scheduler logs sent to CloudWatch Logs and the logging level to send\\. \n*Required*: No \n*Type*: [ModuleLoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mwaa-environment-moduleloggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchedulerLogs" }, "TaskLogs": { - "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration" + "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration", + "markdownDescription": "Defines the task logs sent to CloudWatch Logs and the logging level to send\\. \n*Required*: No \n*Type*: [ModuleLoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mwaa-environment-moduleloggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskLogs" }, "WebserverLogs": { - "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration" + "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration", + "markdownDescription": "Defines the web server logs sent to CloudWatch Logs and the logging level to send\\. \n*Required*: No \n*Type*: [ModuleLoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mwaa-environment-moduleloggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WebserverLogs" }, "WorkerLogs": { - "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration" + "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration", + "markdownDescription": "Defines the worker logs sent to CloudWatch Logs and the logging level to send\\. \n*Required*: No \n*Type*: [ModuleLoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mwaa-environment-moduleloggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WorkerLogs" } }, "type": "object" @@ -102182,12 +124626,18 @@ "additionalProperties": false, "properties": { "CloudWatchLogGroupArn": { + "markdownDescription": "The ARN of the CloudWatch Logs log group for each type of Apache Airflow log type that you have enabled\\. \n `CloudWatchLogGroupArn` is available only as a return value, accessible when specified as an attribute in the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mwaa-environment.html#aws-resource-mwaa-environment-return-values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mwaa-environment.html#aws-resource-mwaa-environment-return-values) intrinsic function\\. Any value you provide for `CloudWatchLogGroupArn` is discarded by Amazon MWAA\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogGroupArn", "type": "string" }, "Enabled": { + "markdownDescription": "Indicates whether to enable the Apache Airflow log type \\(e\\.g\\. `DagProcessingLogs`\\) in CloudWatch Logs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "LogLevel": { + "markdownDescription": "Defines the Apache Airflow logs to send for the log type \\(e\\.g\\. `DagProcessingLogs`\\) to CloudWatch Logs\\. Valid values: `CRITICAL`, `ERROR`, `WARNING`, `INFO`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogLevel", "type": "string" } }, @@ -102200,12 +124650,16 @@ "items": { "type": "string" }, + "markdownDescription": "A list of one or more security group IDs\\. Accepts up to 5 security group IDs\\. A security group must be attached to the same VPC as the subnets\\. To learn more, see [Security in your VPC on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/vpc-security.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "A list of subnet IDs\\. **Required** to create an environment\\. Must be private subnets in two different availability zones\\. A subnet must be attached to the same VPC as the security group\\. To learn more, see [About networking on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/networking-about.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetIds", "type": "array" } }, @@ -102353,27 +124807,39 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the custom data identifier\\. The description can contain as many as 512 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "IgnoreWords": { "items": { "type": "string" }, + "markdownDescription": "An array that lists specific character sequences \\(ignore words\\) to exclude from the results\\. If the text matched by the regular expression is the same as any string in this array, Amazon Macie ignores it\\. The array can contain as many as 10 ignore words\\. Each ignore word can contain 4\\-90 characters\\. Ignore words are case sensitive\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IgnoreWords", "type": "array" }, "Keywords": { "items": { "type": "string" }, + "markdownDescription": "An array that lists specific character sequences \\(keywords\\), one of which must be within proximity \\(`MaximumMatchDistance`\\) of the regular expression to match\\. The array can contain as many as 50 keywords\\. Each keyword can contain 3\\-90 characters\\. Keywords aren't case sensitive\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Keywords", "type": "array" }, "MaximumMatchDistance": { + "markdownDescription": "The maximum number of characters that can exist between text that matches the regex pattern and the character sequences specified by the `Keywords` array\\. Amazon Macie includes or excludes a result based on the proximity of a keyword to text that matches the regex pattern\\. The distance can be 1\\-300 characters\\. The default value is 50\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaximumMatchDistance", "type": "number" }, "Name": { + "markdownDescription": "A custom name for the custom data identifier\\. The name can contain as many as 128 characters\\. \nWe strongly recommend that you avoid including any sensitive data in the name of a custom data identifier\\. Other users of your account might be able to see the identifier's name, depending on the actions that they're allowed to perform in Amazon Macie\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Regex": { + "markdownDescription": "The regular expression \\(*regex*\\) that defines the pattern to match\\. The expression can contain as many as 512 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Regex", "type": "string" } }, @@ -102440,18 +124906,28 @@ "additionalProperties": false, "properties": { "Action": { + "markdownDescription": "The action to perform on findings that meet the filter criteria \\(`FindingCriteria`\\)\\. Valid values are: \n+ ARCHIVE \\- Suppress \\(automatically archive\\) the findings\\.\n+ NOOP \\- Don't perform any action on the findings\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", "type": "string" }, "Description": { + "markdownDescription": "A custom description of the filter\\. The description can contain as many as 512 characters\\. \nWe strongly recommend that you avoid including any sensitive data in the description of a filter\\. Other users might be able to see the filter's description, depending on the actions that they're allowed to perform in Amazon Macie\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "FindingCriteria": { - "$ref": "#/definitions/AWS::Macie::FindingsFilter.FindingCriteria" + "$ref": "#/definitions/AWS::Macie::FindingsFilter.FindingCriteria", + "markdownDescription": "The criteria to use to filter findings\\. \n*Required*: Yes \n*Type*: [FindingCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-macie-findingsfilter-findingcriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FindingCriteria" }, "Name": { + "markdownDescription": "A custom name for the filter\\. The name must contain at least 3 characters and can contain as many as 64 characters\\. \nWe strongly recommend that you avoid including any sensitive data in the name of a filter\\. Other users might be able to see the filter's name, depending on the actions that they're allowed to perform in Amazon Macie\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Position": { + "markdownDescription": "The position of the filter in the list of saved filters on the Amazon Macie console\\. This value also determines the order in which the filter is applied to findings, relative to other filters that are also applied to the findings\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Position", "type": "number" } }, @@ -102517,11 +124993,13 @@ "properties": { "Criterion": { "additionalProperties": false, + "markdownDescription": "Specifies a condition that defines the property, operator, and value to use to filter the results\\. \n*Required*: No \n*Type*: [Criterion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-macie-findingsfilter-criterion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::Macie::FindingsFilter.CriterionAdditionalProperties" } }, + "title": "Criterion", "type": "object" } }, @@ -102531,9 +125009,13 @@ "additionalProperties": false, "properties": { "Id": { + "markdownDescription": "The unique identifier for the filter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "Name": { + "markdownDescription": "The custom name of the filter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -102575,9 +125057,13 @@ "additionalProperties": false, "properties": { "FindingPublishingFrequency": { + "markdownDescription": "The frequency with which Amazon Macie publishes updates to policy findings for an account\\. This includes publishing updates to AWS Security Hub and Amazon EventBridge \\(formerly called Amazon CloudWatch Events\\)\\. Valid values are: \n+ FIFTEEN\\_MINUTES\n+ ONE\\_HOUR\n+ SIX\\_HOURS\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FindingPublishingFrequency", "type": "string" }, "Status": { + "markdownDescription": "The `MacieStatus` of the `Session`\\. Valid values include `ENABLED` and `PAUSED`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" } }, @@ -102639,15 +125125,23 @@ "additionalProperties": false, "properties": { "InvitationId": { + "markdownDescription": "The unique identifier of the invitation to join the network sent to the account that creates the member\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InvitationId", "type": "string" }, "MemberConfiguration": { - "$ref": "#/definitions/AWS::ManagedBlockchain::Member.MemberConfiguration" + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.MemberConfiguration", + "markdownDescription": "Configuration properties of the member\\. \n*Required*: Yes \n*Type*: [MemberConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-memberconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MemberConfiguration" }, "NetworkConfiguration": { - "$ref": "#/definitions/AWS::ManagedBlockchain::Member.NetworkConfiguration" + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.NetworkConfiguration", + "markdownDescription": "Configuration properties of the network to which the member belongs\\. \n*Required*: No \n*Type*: [NetworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkConfiguration" }, "NetworkId": { + "markdownDescription": "The unique identifier of the network to which the member belongs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkId", "type": "string" } }, @@ -102681,12 +125175,18 @@ "additionalProperties": false, "properties": { "ProposalDurationInHours": { + "markdownDescription": "The duration from the time that a proposal is created until it expires\\. If members cast neither the required number of `YES` votes to approve the proposal nor the number of `NO` votes required to reject it before the duration expires, the proposal is `EXPIRED` and `ProposalActions` are not carried out\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `168` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProposalDurationInHours", "type": "number" }, "ThresholdComparator": { + "markdownDescription": "Determines whether the vote percentage must be greater than the `ThresholdPercentage` or must be greater than or equal to the `ThreholdPercentage` to be approved\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GREATER_THAN | GREATER_THAN_OR_EQUAL_TO` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThresholdComparator", "type": "string" }, "ThresholdPercentage": { + "markdownDescription": "The percentage of votes among all members that must be `YES` for a proposal to be approved\\. For example, a `ThresholdPercentage` value of `50` indicates 50%\\. The `ThresholdComparator` determines the precise comparison\\. If a `ThresholdPercentage` value of `50` is specified on a network with 10 members, along with a `ThresholdComparator` value of `GREATER_THAN`, this indicates that 6 `YES` votes are required for the proposal to be approved\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThresholdPercentage", "type": "number" } }, @@ -102696,12 +125196,18 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "An optional description of the member\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "MemberFrameworkConfiguration": { - "$ref": "#/definitions/AWS::ManagedBlockchain::Member.MemberFrameworkConfiguration" + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.MemberFrameworkConfiguration", + "markdownDescription": "Configuration properties of the blockchain framework relevant to the member\\. \n*Required*: No \n*Type*: [MemberFrameworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-memberframeworkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MemberFrameworkConfiguration" }, "Name": { + "markdownDescription": "The name of the member\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^(?!-|[0-9])(?!.*-$)(?!.*?--)[a-zA-Z0-9-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -102714,9 +125220,13 @@ "additionalProperties": false, "properties": { "AdminPassword": { + "markdownDescription": "The password for the member's initial administrative user\\. The `AdminPassword` must be at least eight characters long and no more than 32 characters\\. It must contain at least one uppercase letter, one lowercase letter, and one digit\\. It cannot have a single quotation mark \\(\u2018\\), a double quotation marks \\(\u201c\\), a forward slash\\(/\\), a backward slash\\(\\\\\\), @, or a space\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `32` \n*Pattern*: `^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?!.*[@'\\\\\"/])[a-zA-Z0-9\\S]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdminPassword", "type": "string" }, "AdminUsername": { + "markdownDescription": "The user name for the member's initial administrative user\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `16` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdminUsername", "type": "string" } }, @@ -102730,7 +125240,9 @@ "additionalProperties": false, "properties": { "MemberFabricConfiguration": { - "$ref": "#/definitions/AWS::ManagedBlockchain::Member.MemberFabricConfiguration" + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.MemberFabricConfiguration", + "markdownDescription": "Configuration properties for Hyperledger Fabric\\. \n*Required*: No \n*Type*: [MemberFabricConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-memberfabricconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MemberFabricConfiguration" } }, "type": "object" @@ -102739,22 +125251,34 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "Attributes of the blockchain framework for the network\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Framework": { + "markdownDescription": "The blockchain framework that the network uses\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ETHEREUM | HYPERLEDGER_FABRIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Framework", "type": "string" }, "FrameworkVersion": { + "markdownDescription": "The version of the blockchain framework that the network uses\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `8` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameworkVersion", "type": "string" }, "Name": { + "markdownDescription": "The name of the network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "NetworkFrameworkConfiguration": { - "$ref": "#/definitions/AWS::ManagedBlockchain::Member.NetworkFrameworkConfiguration" + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.NetworkFrameworkConfiguration", + "markdownDescription": "Configuration properties relevant to the network for the blockchain framework that the network uses\\. \n*Required*: No \n*Type*: [NetworkFrameworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkframeworkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkFrameworkConfiguration" }, "VotingPolicy": { - "$ref": "#/definitions/AWS::ManagedBlockchain::Member.VotingPolicy" + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.VotingPolicy", + "markdownDescription": "The voting rules for the network to decide if a proposal is accepted\\. \n*Required*: Yes \n*Type*: [VotingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-votingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VotingPolicy" } }, "required": [ @@ -102769,6 +125293,8 @@ "additionalProperties": false, "properties": { "Edition": { + "markdownDescription": "The edition of Amazon Managed Blockchain that the network uses\\. Valid values are `standard` and `starter`\\. For more information, see \n*Required*: Yes \n*Type*: String \n*Allowed values*: `STANDARD | STARTER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Edition", "type": "string" } }, @@ -102781,7 +125307,9 @@ "additionalProperties": false, "properties": { "NetworkFabricConfiguration": { - "$ref": "#/definitions/AWS::ManagedBlockchain::Member.NetworkFabricConfiguration" + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.NetworkFabricConfiguration", + "markdownDescription": "Configuration properties for Hyperledger Fabric for a member in a Managed Blockchain network using the Hyperledger Fabric framework\\. \n*Required*: No \n*Type*: [NetworkFabricConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkfabricconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkFabricConfiguration" } }, "type": "object" @@ -102790,7 +125318,9 @@ "additionalProperties": false, "properties": { "ApprovalThresholdPolicy": { - "$ref": "#/definitions/AWS::ManagedBlockchain::Member.ApprovalThresholdPolicy" + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.ApprovalThresholdPolicy", + "markdownDescription": "Defines the rules for the network for voting on proposals, such as the percentage of `YES` votes required for the proposal to be approved and the duration of the proposal\\. The policy applies to all proposals and is specified when the network is created\\. \n*Required*: No \n*Type*: [ApprovalThresholdPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-approvalthresholdpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApprovalThresholdPolicy" } }, "type": "object" @@ -102831,13 +125361,19 @@ "additionalProperties": false, "properties": { "MemberId": { + "markdownDescription": "The unique identifier of the member to which the node belongs\\. Applies only to Hyperledger Fabric\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MemberId", "type": "string" }, "NetworkId": { + "markdownDescription": "The unique identifier of the network for the node\\. \nEthereum public networks have the following `NetworkId`s: \n+ `n-ethereum-mainnet` \n+ `n-ethereum-rinkeby` \n+ `n-ethereum-ropsten` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkId", "type": "string" }, "NodeConfiguration": { - "$ref": "#/definitions/AWS::ManagedBlockchain::Node.NodeConfiguration" + "$ref": "#/definitions/AWS::ManagedBlockchain::Node.NodeConfiguration", + "markdownDescription": "Configuration properties of a peer node\\. \n*Required*: Yes \n*Type*: [NodeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-node-nodeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NodeConfiguration" } }, "required": [ @@ -102871,9 +125407,13 @@ "additionalProperties": false, "properties": { "AvailabilityZone": { + "markdownDescription": "The Availability Zone in which the node exists\\. Required for Ethereum nodes\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZone", "type": "string" }, "InstanceType": { + "markdownDescription": "The Amazon Managed Blockchain instance type for the node\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", "type": "string" } }, @@ -102919,16 +125459,24 @@ "additionalProperties": false, "properties": { "AvailabilityZone": { + "markdownDescription": "The Availability Zone that you want to create the flow in\\. These options are limited to the Availability Zones within the current AWS Region\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", "type": "string" }, "Name": { + "markdownDescription": "The name of the flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Source": { - "$ref": "#/definitions/AWS::MediaConnect::Flow.Source" + "$ref": "#/definitions/AWS::MediaConnect::Flow.Source", + "markdownDescription": "The settings for the source that you want to use for the new flow\\. \n*Required*: Yes \n*Type*: [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source" }, "SourceFailoverConfig": { - "$ref": "#/definitions/AWS::MediaConnect::Flow.FailoverConfig" + "$ref": "#/definitions/AWS::MediaConnect::Flow.FailoverConfig", + "markdownDescription": "The settings for source failover\\. \n*Required*: No \n*Type*: [FailoverConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-failoverconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceFailoverConfig" } }, "required": [ @@ -102962,30 +125510,48 @@ "additionalProperties": false, "properties": { "Algorithm": { + "markdownDescription": "The type of algorithm that is used for the encryption \\(such as aes128, aes192, or aes256\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Algorithm", "type": "string" }, "ConstantInitializationVector": { + "markdownDescription": "A 128\\-bit, 16\\-byte hex value represented by a 32\\-character string, to be used with the key for encrypting content\\. This parameter is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConstantInitializationVector", "type": "string" }, "DeviceId": { + "markdownDescription": "The value of one of the devices that you configured with your digital rights management \\(DRM\\) platform key provider\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceId", "type": "string" }, "KeyType": { + "markdownDescription": "The type of key that is used for the encryption\\. If you don't specify a `keyType` value, the service uses the default setting \\(`static-key`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyType", "type": "string" }, "Region": { + "markdownDescription": "The AWS Region that the API Gateway proxy endpoint was created in\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", "type": "string" }, "ResourceId": { + "markdownDescription": "An identifier for the content\\. The service sends this value to the key server to identify the current endpoint\\. The resource ID is also known as the content ID\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceId", "type": "string" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that you created during setup \\(when you set up MediaConnect as a trusted entity\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "SecretArn": { + "markdownDescription": "The ARN of the secret that you created in AWS Secrets Manager to store the encryption key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretArn", "type": "string" }, "Url": { + "markdownDescription": "The URL from the API Gateway proxy that you set up to talk to your key server\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", "type": "string" } }, @@ -103001,12 +125567,16 @@ "type": "string" }, "RecoveryWindow": { + "markdownDescription": "The size of the buffer \\(delay\\) that the service maintains\\. A larger buffer means a longer delay in transmitting the stream, but more room for error correction\\. A smaller buffer means a shorter delay, but less room for error correction\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecoveryWindow", "type": "number" }, "SourcePriority": { "$ref": "#/definitions/AWS::MediaConnect::Flow.SourcePriority" }, "State": { + "markdownDescription": "The state of source failover on the flow\\. If the state is disabled, the flow can have only one source\\. If the state is enabled, the flow can have one or two sources\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", "type": "string" } }, @@ -103016,33 +125586,53 @@ "additionalProperties": false, "properties": { "Decryption": { - "$ref": "#/definitions/AWS::MediaConnect::Flow.Encryption" + "$ref": "#/definitions/AWS::MediaConnect::Flow.Encryption", + "markdownDescription": "The type of encryption that is used on the content ingested from the source\\. \n*Required*: No \n*Type*: [Encryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-encryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Decryption" }, "Description": { + "markdownDescription": "A description of the source\\. This description is not visible outside of the current AWS account\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "EntitlementArn": { + "markdownDescription": "The ARN of the entitlement that allows you to subscribe to content that comes from another AWS account\\. The entitlement is set by the content originator and the ARN is generated as part of the originator\u2019s flow\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntitlementArn", "type": "string" }, "IngestIp": { + "markdownDescription": "The IP address that the flow listens on for incoming content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IngestIp", "type": "string" }, "IngestPort": { + "markdownDescription": "The port that the flow listens on for incoming content\\. If the protocol of the source is Zixi, the port must be set to 2088\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IngestPort", "type": "number" }, "MaxBitrate": { + "markdownDescription": "The maximum bitrate for RIST, RTP, and RTP\\-FEC streams\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxBitrate", "type": "number" }, "MaxLatency": { + "markdownDescription": "The maximum latency in milliseconds for a RIST or Zixi\\-based source\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxLatency", "type": "number" }, "MinLatency": { + "markdownDescription": "The minimum latency in milliseconds for SRT\\-based streams\\. In streams that use the SRT protocol, this value that you set on your MediaConnect source or output represents the minimal potential latency of that connection\\. The latency of the stream is set to the highest number between the sender\u2019s minimum latency and the receiver\u2019s minimum latency\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinLatency", "type": "number" }, "Name": { + "markdownDescription": "The name of the source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Protocol": { + "markdownDescription": "The protocol that is used by the source\\. For a full list of available protocols, see: [Source protocols](https://docs.aws.amazon.com/mediaconnect/latest/api/v1-flows-flowarn-source.html#v1-flows-flowarn-source-prop-setsourcerequest-protocol) in the *AWS Elemental MediaConnect API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "string" }, "SenderControlPort": { @@ -103052,9 +125642,13 @@ "type": "string" }, "SourceArn": { + "markdownDescription": "The ARN of the source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceArn", "type": "string" }, "SourceIngestPort": { + "markdownDescription": "The port that the flow will be listening on for incoming content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceIngestPort", "type": "string" }, "SourceListenerAddress": { @@ -103064,12 +125658,18 @@ "type": "number" }, "StreamId": { + "markdownDescription": "The stream ID that you want to use for the transport\\. This parameter applies only to Zixi\\-based streams\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamId", "type": "string" }, "VpcInterfaceName": { + "markdownDescription": "The name of the VPC interface that the source content comes from\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcInterfaceName", "type": "string" }, "WhitelistCidr": { + "markdownDescription": "The range of IP addresses that are allowed to contribute content to your source\\. Format the IP addresses as a Classless Inter\\-Domain Routing \\(CIDR\\) block; for example, 10\\.0\\.0\\.0/16\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WhitelistCidr", "type": "string" } }, @@ -103123,27 +125723,41 @@ "additionalProperties": false, "properties": { "DataTransferSubscriberFeePercent": { + "markdownDescription": "The percentage of the entitlement data transfer fee that you want the subscriber to be responsible for\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataTransferSubscriberFeePercent", "type": "number" }, "Description": { + "markdownDescription": "A description of the entitlement\\. This description appears only on the MediaConnect console and is not visible outside of the current AWS account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Encryption": { - "$ref": "#/definitions/AWS::MediaConnect::FlowEntitlement.Encryption" + "$ref": "#/definitions/AWS::MediaConnect::FlowEntitlement.Encryption", + "markdownDescription": "The type of encryption that MediaConnect will use on the output that is associated with the entitlement\\. \n*Required*: No \n*Type*: [Encryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowentitlement-encryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encryption" }, "EntitlementStatus": { + "markdownDescription": "An indication of whether the new entitlement should be enabled or disabled as soon as it is created\\. If you don\u2019t specify the entitlementStatus field in your request, MediaConnect sets it to ENABLED\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntitlementStatus", "type": "string" }, "FlowArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FlowArn", "type": "string" }, "Name": { + "markdownDescription": "The name of the entitlement\\. This value must be unique within the current flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Subscribers": { "items": { "type": "string" }, + "markdownDescription": "The AWS account IDs that you want to share your content with\\. The receiving accounts \\(subscribers\\) will be allowed to create their own flows using your content as the source\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subscribers", "type": "array" } }, @@ -103180,30 +125794,48 @@ "additionalProperties": false, "properties": { "Algorithm": { + "markdownDescription": "The type of algorithm that is used for the encryption \\(such as aes128, aes192, or aes256\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Algorithm", "type": "string" }, "ConstantInitializationVector": { + "markdownDescription": "A 128\\-bit, 16\\-byte hex value represented by a 32\\-character string, to be used with the key for encrypting content\\. This parameter is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConstantInitializationVector", "type": "string" }, "DeviceId": { + "markdownDescription": "The value of one of the devices that you configured with your digital rights management \\(DRM\\) platform key provider\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceId", "type": "string" }, "KeyType": { + "markdownDescription": "The type of key that is used for the encryption\\. If you don't specify a `keyType` value, the service uses the default setting \\(`static-key`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyType", "type": "string" }, "Region": { + "markdownDescription": "The AWS Region that the API Gateway proxy endpoint was created in\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", "type": "string" }, "ResourceId": { + "markdownDescription": "An identifier for the content\\. The service sends this value to the key server to identify the current endpoint\\. The resource ID is also known as the content ID\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceId", "type": "string" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that you created during setup \\(when you set up MediaConnect as a trusted entity\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "SecretArn": { + "markdownDescription": "The ARN of the secret that you created in AWS Secrets Manager to store the encryption key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretArn", "type": "string" }, "Url": { + "markdownDescription": "The URL from the API Gateway proxy that you set up to talk to your key server\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", "type": "string" } }, @@ -103252,46 +125884,74 @@ "items": { "type": "string" }, + "markdownDescription": "The range of IP addresses that are allowed to initiate output requests to this flow\\. Format the IP addresses as a Classless Inter\\-Domain Routing \\(CIDR\\) block; for example, 10\\.0\\.0\\.0/16\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CidrAllowList", "type": "array" }, "Description": { + "markdownDescription": "A description of the output\\. This description is not visible outside of the current AWS account even if the account grants entitlements to other accounts\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Destination": { + "markdownDescription": "The IP address where you want to send the output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination", "type": "string" }, "Encryption": { - "$ref": "#/definitions/AWS::MediaConnect::FlowOutput.Encryption" + "$ref": "#/definitions/AWS::MediaConnect::FlowOutput.Encryption", + "markdownDescription": "The encryption credentials that you want to use for the output\\. \n*Required*: No \n*Type*: [Encryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowoutput-encryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encryption" }, "FlowArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FlowArn", "type": "string" }, "MaxLatency": { + "markdownDescription": "The maximum latency in milliseconds for Zixi\\-based streams\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxLatency", "type": "number" }, "MinLatency": { + "markdownDescription": "The minimum latency in milliseconds for SRT\\-based streams\\. In streams that use the SRT protocol, this value that you set on your MediaConnect source or output represents the minimal potential latency of that connection\\. The latency of the stream is set to the highest number between the sender\u2019s minimum latency and the receiver\u2019s minimum latency\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinLatency", "type": "number" }, "Name": { + "markdownDescription": "The name of the VPC interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Port": { + "markdownDescription": "The port to use when MediaConnect distributes content to the output\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" }, "Protocol": { + "markdownDescription": "The protocol to use for the output\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "string" }, "RemoteId": { + "markdownDescription": "The identifier that is assigned to the Zixi receiver\\. This parameter applies only to outputs that use Zixi pull\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoteId", "type": "string" }, "SmoothingLatency": { + "markdownDescription": "The smoothing latency in milliseconds for RIST, RTP, and RTP\\-FEC streams\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SmoothingLatency", "type": "number" }, "StreamId": { + "markdownDescription": "The stream ID that you want to use for the transport\\. This parameter applies only to Zixi\\-based streams\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamId", "type": "string" }, "VpcInterfaceAttachment": { - "$ref": "#/definitions/AWS::MediaConnect::FlowOutput.VpcInterfaceAttachment" + "$ref": "#/definitions/AWS::MediaConnect::FlowOutput.VpcInterfaceAttachment", + "markdownDescription": "The VPC interface that you want to send your output to\\. \n*Required*: No \n*Type*: [VpcInterfaceAttachment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowoutput-vpcinterfaceattachment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcInterfaceAttachment" } }, "required": [ @@ -103325,15 +125985,23 @@ "additionalProperties": false, "properties": { "Algorithm": { + "markdownDescription": "The type of algorithm that is used for the encryption \\(such as aes128, aes192, or aes256\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Algorithm", "type": "string" }, "KeyType": { + "markdownDescription": "The type of key that is used for the encryption\\. If you don't specify a `keyType` value, the service uses the default setting \\(`static-key`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyType", "type": "string" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that you created during setup \\(when you set up MediaConnect as a trusted entity\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "SecretArn": { + "markdownDescription": "The ARN of the secret that you created in AWS Secrets Manager to store the encryption key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretArn", "type": "string" } }, @@ -103347,6 +126015,8 @@ "additionalProperties": false, "properties": { "VpcInterfaceName": { + "markdownDescription": "The name of the VPC interface that you want to send your output to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcInterfaceName", "type": "string" } }, @@ -103388,39 +126058,63 @@ "additionalProperties": false, "properties": { "Decryption": { - "$ref": "#/definitions/AWS::MediaConnect::FlowSource.Encryption" + "$ref": "#/definitions/AWS::MediaConnect::FlowSource.Encryption", + "markdownDescription": "The type of encryption that is used on the content ingested from the source\\. \n*Required*: No \n*Type*: [Encryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowsource-encryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Decryption" }, "Description": { + "markdownDescription": "A description of the source\\. This description is not visible outside of the current AWS account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "EntitlementArn": { + "markdownDescription": "The ARN of the entitlement that allows you to subscribe to the flow\\. The entitlement is set by the content originator, and the ARN is generated as part of the originator's flow\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntitlementArn", "type": "string" }, "FlowArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the flow\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FlowArn", "type": "string" }, "IngestPort": { + "markdownDescription": "The port that the flow listens on for incoming content\\. If the protocol of the source is Zixi, the port must be set to 2088\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IngestPort", "type": "number" }, "MaxBitrate": { + "markdownDescription": "The maximum bitrate for RIST, RTP, and RTP\\-FEC streams\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxBitrate", "type": "number" }, "MaxLatency": { + "markdownDescription": "The maximum latency in milliseconds\\. This parameter applies only to RIST\\-based, Zixi\\-based, and Fujitsu\\-based streams\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxLatency", "type": "number" }, "Name": { + "markdownDescription": "The name of the source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Protocol": { + "markdownDescription": "The protocol that the source uses to deliver the content to MediaConnect\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "string" }, "StreamId": { + "markdownDescription": "The stream ID that you want to use for the transport\\. This parameter applies only to Zixi\\-based streams\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamId", "type": "string" }, "VpcInterfaceName": { + "markdownDescription": "The name of the VPC interface that you want to send your output to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcInterfaceName", "type": "string" }, "WhitelistCidr": { + "markdownDescription": "The range of IP addresses that are allowed to contribute content to your source\\. Format the IP addresses as a Classless Inter\\-Domain Routing \\(CIDR\\) block; for example, 10\\.0\\.0\\.0/16\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WhitelistCidr", "type": "string" } }, @@ -103455,30 +126149,48 @@ "additionalProperties": false, "properties": { "Algorithm": { + "markdownDescription": "The type of algorithm that is used for the encryption \\(such as aes128, aes192, or aes256\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Algorithm", "type": "string" }, "ConstantInitializationVector": { + "markdownDescription": "A 128\\-bit, 16\\-byte hex value represented by a 32\\-character string, to be used with the key for encrypting content\\. This parameter is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConstantInitializationVector", "type": "string" }, "DeviceId": { + "markdownDescription": "The value of one of the devices that you configured with your digital rights management \\(DRM\\) platform key provider\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceId", "type": "string" }, "KeyType": { + "markdownDescription": "The type of key that is used for the encryption\\. If you don't specify a `keyType` value, the service uses the default setting \\(`static-key`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyType", "type": "string" }, "Region": { + "markdownDescription": "The AWS Region that the API Gateway proxy endpoint was created in\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", "type": "string" }, "ResourceId": { + "markdownDescription": "An identifier for the content\\. The service sends this value to the key server to identify the current endpoint\\. The resource ID is also known as the content ID\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceId", "type": "string" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that you created during setup \\(when you set up MediaConnect as a trusted entity\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "SecretArn": { + "markdownDescription": "The ARN of the secret that you created in AWS Secrets Manager to store the encryption key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretArn", "type": "string" }, "Url": { + "markdownDescription": "The URL from the API Gateway proxy that you set up to talk to your key server\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", "type": "string" } }, @@ -103524,21 +126236,31 @@ "additionalProperties": false, "properties": { "FlowArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FlowArn", "type": "string" }, "Name": { + "markdownDescription": "The name of the VPC Interface\\. This value must be unique within the current flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that you created when you set up MediaConnect as a trusted service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "SecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "The VPC security groups that you want MediaConnect to use for your VPC configuration\\. You must include at least one security group in the request\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "SubnetId": { + "markdownDescription": "The subnet IDs that you want to use for your VPC interface\\. \nA range of IP addresses in your VPC\\. When you create your VPC, you specify a range of IPv4 addresses for the VPC in the form of a Classless Inter\\-Domain Routing \\(CIDR\\) block; for example, 10\\.0\\.0\\.0/16\\. This is the primary CIDR block for your VPC\\. When you create a subnet for your VPC, you specify the CIDR block for the subnet, which is a subset of the VPC CIDR block\\. \nThe subnets that you use across all VPC interfaces on the flow must be in the same Availability Zone as the flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetId", "type": "string" } }, @@ -103608,36 +126330,56 @@ "additionalProperties": false, "properties": { "AccelerationSettings": { - "$ref": "#/definitions/AWS::MediaConvert::JobTemplate.AccelerationSettings" + "$ref": "#/definitions/AWS::MediaConvert::JobTemplate.AccelerationSettings", + "markdownDescription": "Accelerated transcoding can significantly speed up jobs with long, visually complex content\\. Outputs that use this feature incur pro\\-tier pricing\\. For information about feature limitations, For more information, see [Job Limitations for Accelerated Transcoding in AWS Elemental MediaConvert](https://docs.aws.amazon.com/mediaconvert/latest/ug/job-requirements.html) in the *AWS Elemental MediaConvert User Guide*\\. \n*Required*: No \n*Type*: [AccelerationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconvert-jobtemplate-accelerationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccelerationSettings" }, "Category": { + "markdownDescription": "Optional\\. A category for the job template you are creating \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Category", "type": "string" }, "Description": { + "markdownDescription": "Optional\\. A description of the job template you are creating\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "HopDestinations": { "items": { "$ref": "#/definitions/AWS::MediaConvert::JobTemplate.HopDestination" }, + "markdownDescription": "Optional\\. Configuration for a destination queue to which the job can hop once a customer\\-defined minimum wait time has passed\\. For more information, see [Setting Up Queue Hopping to Avoid Long Waits](https://docs.aws.amazon.com/mediaconvert/latest/ug/setting-up-queue-hopping-to-avoid-long-waits.html) in the *AWS Elemental MediaConvert User Guide*\\. \n*Required*: No \n*Type*: List of [HopDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconvert-jobtemplate-hopdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HopDestinations", "type": "array" }, "Name": { + "markdownDescription": "The name of the job template you are creating\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Priority": { + "markdownDescription": "Specify the relative priority for this job\\. In any given queue, the service begins processing the job with the highest value first\\. When more than one job has the same priority, the service begins processing the job that you submitted first\\. If you don't specify a priority, the service uses the default value 0\\. Minimum: \\-50 Maximum: 50 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" }, "Queue": { + "markdownDescription": "Optional\\. The queue that jobs created from this template are assigned to\\. Specify the Amazon Resource Name \\(ARN\\) of the queue\\. For example, arn:aws:mediaconvert:us\\-west\\-2:505474453218:queues/Default\\. If you don't specify this, jobs will go to the default queue\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Queue", "type": "string" }, "SettingsJson": { + "markdownDescription": "Specify, in JSON format, the transcoding job settings for this job template\\. This specification must conform to the AWS Elemental MediaConvert job validation\\. For information about forming this specification, see the Remarks section later in this topic\\. \nFor more information about MediaConvert job templates, see [Working with AWS Elemental MediaConvert Job Templates](https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-job-templates.html) in the *AWS Elemental MediaConvert User Guide*\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SettingsJson", "type": "object" }, "StatusUpdateInterval": { + "markdownDescription": "Specify how often MediaConvert sends STATUS\\_UPDATE events to Amazon CloudWatch Events\\. Set the interval, in seconds, between status updates\\. MediaConvert sends an update at this interval from the time the service begins processing your job to the time it completes the transcode or encounters an error\\. \nSpecify one of the following enums: \nSECONDS\\_10 \nSECONDS\\_12 \nSECONDS\\_15 \nSECONDS\\_20 \nSECONDS\\_30 \nSECONDS\\_60 \nSECONDS\\_120 \nSECONDS\\_180 \nSECONDS\\_240 \nSECONDS\\_300 \nSECONDS\\_360 \nSECONDS\\_420 \nSECONDS\\_480 \nSECONDS\\_540 \nSECONDS\\_600 \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusUpdateInterval", "type": "string" }, "Tags": { + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" } }, @@ -103671,6 +126413,8 @@ "additionalProperties": false, "properties": { "Mode": { + "markdownDescription": "Specify the conditions when the service will run your job with accelerated transcoding\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", "type": "string" } }, @@ -103683,12 +126427,18 @@ "additionalProperties": false, "properties": { "Priority": { + "markdownDescription": "Optional\\. When you set up a job to use queue hopping, you can specify a different relative priority for the job in the destination queue\\. If you don't specify, the relative priority will remain the same as in the previous queue\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" }, "Queue": { + "markdownDescription": "Optional unless the job is submitted on the default queue\\. When you set up a job to use queue hopping, you can specify a destination queue\\. This queue cannot be the original queue to which the job is submitted\\. If the original queue isn't the default queue and you don't specify the destination queue, the job will move to the default queue\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Queue", "type": "string" }, "WaitMinutes": { + "markdownDescription": "Required for setting up a job to use queue hopping\\. Minimum wait time in minutes until the job can hop to the destination queue\\. Valid range is 1 to 1440 minutes, inclusive\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WaitMinutes", "type": "number" } }, @@ -103730,18 +126480,28 @@ "additionalProperties": false, "properties": { "Category": { + "markdownDescription": "The new category for the preset, if you are changing it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Category", "type": "string" }, "Description": { + "markdownDescription": "The new description for the preset, if you are changing it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name of the preset that you are modifying\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "SettingsJson": { + "markdownDescription": "Specify, in JSON format, the transcoding job settings for this output preset\\. This specification must conform to the AWS Elemental MediaConvert job validation\\. For information about forming this specification, see the Remarks section later in this topic\\. \nFor more information about MediaConvert output presets, see [Working with AWS Elemental MediaConvert Output Presets](https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-presets.html) in the *AWS Elemental MediaConvert User Guide*\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SettingsJson", "type": "object" }, "Tags": { + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" } }, @@ -103807,18 +126567,28 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "Optional\\. A description of the queue that you are creating\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name of the queue that you are creating\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "PricingPlan": { + "markdownDescription": "When you use AWS CloudFormation, you can create only on\\-demand queues\\. Therefore, always set `PricingPlan` to the value \"ON\\_DEMAND\" when declaring an AWS::MediaConvert::Queue in your AWS CloudFormation template\\. \nTo create a reserved queue, use the AWS Elemental MediaConvert console at https://console\\.aws\\.amazon\\.com/mediaconvert to set up a contract\\. For more information, see [Working with AWS Elemental MediaConvert Queues](https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-queues.html) in the *AWS Elemental MediaConvert User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PricingPlan", "type": "string" }, "Status": { + "markdownDescription": "Initial state of the queue\\. Queues can be either ACTIVE or PAUSED\\. If you create a paused queue, then jobs that you send to that queue won't begin\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" }, "Tags": { + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" } }, @@ -103880,43 +126650,65 @@ "additionalProperties": false, "properties": { "CdiInputSpecification": { - "$ref": "#/definitions/AWS::MediaLive::Channel.CdiInputSpecification" + "$ref": "#/definitions/AWS::MediaLive::Channel.CdiInputSpecification", + "markdownDescription": "Specification of CDI inputs for this channel\\. \n*Required*: No \n*Type*: [CdiInputSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-cdiinputspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CdiInputSpecification" }, "ChannelClass": { + "markdownDescription": "The class for this channel\\. For a channel with two pipelines, the class is STANDARD\\. For a channel with one pipeline, the class is SINGLE\\_PIPELINE\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelClass", "type": "string" }, "Destinations": { "items": { "$ref": "#/definitions/AWS::MediaLive::Channel.OutputDestination" }, + "markdownDescription": "The settings that identify the destination for the outputs in this MediaLive output package\\. \n*Required*: No \n*Type*: List of [OutputDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destinations", "type": "array" }, "EncoderSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.EncoderSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.EncoderSettings", + "markdownDescription": "The encoding configuration for the output content\\. \n*Required*: No \n*Type*: [EncoderSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-encodersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncoderSettings" }, "InputAttachments": { "items": { "$ref": "#/definitions/AWS::MediaLive::Channel.InputAttachment" }, + "markdownDescription": "The list of input attachments for the channel\\. \n*Required*: No \n*Type*: List of [InputAttachment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputattachment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputAttachments", "type": "array" }, "InputSpecification": { - "$ref": "#/definitions/AWS::MediaLive::Channel.InputSpecification" + "$ref": "#/definitions/AWS::MediaLive::Channel.InputSpecification", + "markdownDescription": "The input specification for this channel\\. It specifies the key characteristics of the inputs for this channel: the maximum bitrate, the resolution, and the codec\\. \n*Required*: No \n*Type*: [InputSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputSpecification" }, "LogLevel": { + "markdownDescription": "The verbosity for logging activity for this channel\\. Charges for logging \\(which are generated through Amazon CloudWatch Logging\\) are higher for higher verbosities\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogLevel", "type": "string" }, "Name": { + "markdownDescription": "A name for this audio selector\\. The AudioDescription \\(in an output\\) references this name in order to identify a specific input audio to include in that output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "RoleArn": { + "markdownDescription": "The IAM role for MediaLive to assume when running this channel\\. The role is identified by its ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "Tags": { + "markdownDescription": "A collection of tags for this channel\\. Each tag is a key\\-value pair\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" }, "Vpc": { - "$ref": "#/definitions/AWS::MediaLive::Channel.VpcOutputSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.VpcOutputSettings", + "markdownDescription": "Settings to enable VPC mode in the channel, so that the endpoints for all outputs are in your VPC\\. \n*Required*: No \n*Type*: [VpcOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-vpcoutputsettings.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Vpc" } }, "type": "object" @@ -103945,30 +126737,48 @@ "additionalProperties": false, "properties": { "Bitrate": { + "markdownDescription": "The average bitrate in bits/second\\. Valid values depend on the rate control mode and profile\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bitrate", "type": "number" }, "CodingMode": { + "markdownDescription": "Mono, stereo, or 5\\.1 channel layout\\. Valid values depend on the rate control mode and profile\\. The adReceiverMix setting receives a stereo description plus control track, and emits a mono AAC encode of the description track, with control data emitted in the PES header as per ETSI TS 101 154 Annex E\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodingMode", "type": "string" }, "InputType": { + "markdownDescription": "Set to broadcasterMixedAd when the input contains pre\\-mixed main audio \\+ AD \\(narration\\) as a stereo pair\\. The Audio Type field \\(audioType\\) will be set to 3, which signals to downstream systems that this stream contains broadcaster mixed AD\\. Note that the input received by the encoder must contain pre\\-mixed audio; MediaLive does not perform the mixing\\. The values in audioTypeControl and audioType \\(in AudioDescription\\) are ignored when set to broadcasterMixedAd\\. Leave this set to normal when the input does not contain pre\\-mixed audio \\+ AD\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputType", "type": "string" }, "Profile": { + "markdownDescription": "The AAC profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Profile", "type": "string" }, "RateControlMode": { + "markdownDescription": "The rate control mode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RateControlMode", "type": "string" }, "RawFormat": { + "markdownDescription": "Sets the LATM/LOAS AAC output for raw containers\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RawFormat", "type": "string" }, "SampleRate": { + "markdownDescription": "The sample rate in Hz\\. Valid values depend on the rate control mode and profile\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SampleRate", "type": "number" }, "Spec": { + "markdownDescription": "Uses MPEG\\-2 AAC audio instead of MPEG\\-4 AAC audio for raw or MPEG\\-2 Transport Stream containers\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Spec", "type": "string" }, "VbrQuality": { + "markdownDescription": "The VBR quality level\\. This is used only if rateControlMode is VBR\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VbrQuality", "type": "string" } }, @@ -103978,24 +126788,38 @@ "additionalProperties": false, "properties": { "Bitrate": { + "markdownDescription": "The average bitrate in bits/second\\. Valid bitrates depend on the coding mode\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bitrate", "type": "number" }, "BitstreamMode": { + "markdownDescription": "Specifies the bitstream mode \\(bsmod\\) for the emitted AC\\-3 stream\\. For more information about these values, see ATSC A/52\\-2012\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BitstreamMode", "type": "string" }, "CodingMode": { + "markdownDescription": "The Dolby Digital coding mode\\. This determines the number of channels\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodingMode", "type": "string" }, "Dialnorm": { + "markdownDescription": "Sets the dialnorm for the output\\. If excluded and the input audio is Dolby Digital, dialnorm is passed through\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dialnorm", "type": "number" }, "DrcProfile": { + "markdownDescription": "If set to filmStandard, adds dynamic range compression signaling to the output bitstream as defined in the Dolby Digital specification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DrcProfile", "type": "string" }, "LfeFilter": { + "markdownDescription": "When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to encoding\\. This is valid only in codingMode32Lfe mode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LfeFilter", "type": "string" }, "MetadataControl": { + "markdownDescription": "When set to followInput, encoder metadata is sourced from the DD, DD\\+, or DolbyE decoder that supplies this audio data\\. If the audio is supplied from one of these streams, the static metadata settings are used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetadataControl", "type": "string" } }, @@ -104005,6 +126829,8 @@ "additionalProperties": false, "properties": { "SourceAncillaryChannelNumber": { + "markdownDescription": "Specifies the number \\(1 to 4\\) of the captions channel you want to extract from the ancillary captions\\. If you plan to convert the ancillary captions to another format, complete this field\\. If you plan to choose Embedded as the captions destination in the output \\(to pass through all the channels in the ancillary captions\\), leave this field blank because MediaLive ignores the field\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceAncillaryChannelNumber", "type": "number" } }, @@ -104014,7 +126840,9 @@ "additionalProperties": false, "properties": { "ArchiveS3Settings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveS3Settings" + "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveS3Settings", + "markdownDescription": "Sets up Amazon S3 as the destination for this Archive output\\. \n*Required*: No \n*Type*: [ArchiveS3Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archives3settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArchiveS3Settings" } }, "type": "object" @@ -104023,10 +126851,14 @@ "additionalProperties": false, "properties": { "M2tsSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.M2tsSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.M2tsSettings", + "markdownDescription": "The settings for the M2TS in the archive output\\. \n*Required*: No \n*Type*: [M2tsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "M2tsSettings" }, "RawSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.RawSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.RawSettings", + "markdownDescription": "The settings for Raw archive output type\\. \n*Required*: No \n*Type*: [RawSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rawsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RawSettings" } }, "type": "object" @@ -104035,12 +126867,18 @@ "additionalProperties": false, "properties": { "ArchiveCdnSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveCdnSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveCdnSettings", + "markdownDescription": "Settings to configure the destination of an Archive output\\. \n*Required*: No \n*Type*: [ArchiveCdnSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivecdnsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArchiveCdnSettings" }, "Destination": { - "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef" + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef", + "markdownDescription": "A directory and base file name where archive files should be written\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" }, "RolloverInterval": { + "markdownDescription": "The number of seconds to write to an archive file before closing and starting a new one\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RolloverInterval", "type": "number" } }, @@ -104050,12 +126888,18 @@ "additionalProperties": false, "properties": { "ContainerSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveContainerSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveContainerSettings", + "markdownDescription": "The settings that are specific to the container type of the file\\. \n*Required*: No \n*Type*: [ArchiveContainerSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivecontainersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerSettings" }, "Extension": { + "markdownDescription": "The output file extension\\. If excluded, this is auto\\-selected from the container type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Extension", "type": "string" }, "NameModifier": { + "markdownDescription": "A string that is concatenated to the end of the destination file name\\. The string is required for multiple outputs of the same type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NameModifier", "type": "string" } }, @@ -104065,6 +126909,8 @@ "additionalProperties": false, "properties": { "CannedAcl": { + "markdownDescription": "Specify the canned ACL to apply to each S3 request\\. Defaults to none\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CannedAcl", "type": "string" } }, @@ -104087,9 +126933,13 @@ "items": { "$ref": "#/definitions/AWS::MediaLive::Channel.InputChannelLevel" }, + "markdownDescription": "The indices and gain values for each input channel that should be remixed into this output channel\\. \n*Required*: No \n*Type*: List of [InputChannelLevel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputchannellevel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputChannelLevels", "type": "array" }, "OutputChannel": { + "markdownDescription": "The index of the output channel that is being produced\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputChannel", "type": "number" } }, @@ -104099,22 +126949,34 @@ "additionalProperties": false, "properties": { "AacSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.AacSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.AacSettings", + "markdownDescription": "The setup of the AAC audio codec in the output\\. \n*Required*: No \n*Type*: [AacSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AacSettings" }, "Ac3Settings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.Ac3Settings" + "$ref": "#/definitions/AWS::MediaLive::Channel.Ac3Settings", + "markdownDescription": "The setup of an AC3 audio codec in the output\\. \n*Required*: No \n*Type*: [Ac3Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ac3settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ac3Settings" }, "Eac3Settings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.Eac3Settings" + "$ref": "#/definitions/AWS::MediaLive::Channel.Eac3Settings", + "markdownDescription": "The setup of an EAC3 audio codec in the output\\. \n*Required*: No \n*Type*: [Eac3Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Eac3Settings" }, "Mp2Settings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.Mp2Settings" + "$ref": "#/definitions/AWS::MediaLive::Channel.Mp2Settings", + "markdownDescription": "The setup of an MP2 audio codec in the output\\. \n*Required*: No \n*Type*: [Mp2Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mp2settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mp2Settings" }, "PassThroughSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.PassThroughSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.PassThroughSettings", + "markdownDescription": "The setup to pass through the Dolby audio codec to the output\\. \n*Required*: No \n*Type*: [PassThroughSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-passthroughsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PassThroughSettings" }, "WavSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.WavSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.WavSettings", + "markdownDescription": "Settings for audio encoded with the WAV codec\\. \n*Required*: No \n*Type*: [WavSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-wavsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WavSettings" } }, "type": "object" @@ -104123,36 +126985,58 @@ "additionalProperties": false, "properties": { "AudioNormalizationSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.AudioNormalizationSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioNormalizationSettings", + "markdownDescription": "The advanced audio normalization settings\\. \n*Required*: No \n*Type*: [AudioNormalizationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audionormalizationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioNormalizationSettings" }, "AudioSelectorName": { + "markdownDescription": "The name of the AudioSelector that is used as the source for this AudioDescription\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioSelectorName", "type": "string" }, "AudioType": { + "markdownDescription": "Applies only if audioTypeControl is useConfigured\\. The values for audioType are defined in ISO\\-IEC 13818\\-1\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioType", "type": "string" }, "AudioTypeControl": { + "markdownDescription": "Determines how audio type is determined\\. followInput: If the input contains an ISO 639 audioType, then that value is passed through to the output\\. If the input contains no ISO 639 audioType, the value in Audio Type is included in the output\\. useConfigured: The value in Audio Type is included in the output\\. Note that this field and audioType are both ignored if inputType is broadcasterMixedAd\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioTypeControl", "type": "string" }, "AudioWatermarkingSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.AudioWatermarkSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioWatermarkSettings", + "markdownDescription": "Settings to configure one or more solutions that insert audio watermarks in the audio encode \n*Required*: No \n*Type*: [AudioWatermarkSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiowatermarksettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioWatermarkingSettings" }, "CodecSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.AudioCodecSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioCodecSettings", + "markdownDescription": "The audio codec settings\\. \n*Required*: No \n*Type*: [AudioCodecSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiocodecsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodecSettings" }, "LanguageCode": { + "markdownDescription": "Indicates the language of the audio output track\\. Used only if languageControlMode is useConfigured, or there is no ISO 639 language code specified in the input\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LanguageCode", "type": "string" }, "LanguageCodeControl": { + "markdownDescription": "Choosing followInput causes the ISO 639 language code of the output to follow the ISO 639 language code of the input\\. The languageCode setting is used when useConfigured is set, or when followInput is selected but there is no ISO 639 language code specified by the input\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LanguageCodeControl", "type": "string" }, "Name": { + "markdownDescription": "The name of this AudioDescription\\. Outputs use this name to uniquely identify this AudioDescription\\. Description names should be unique within this channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "RemixSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.RemixSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.RemixSettings", + "markdownDescription": "The settings that control how input audio channels are remixed into the output audio channels\\. \n*Required*: No \n*Type*: [RemixSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-remixsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemixSettings" }, "StreamName": { + "markdownDescription": "Used for Microsoft Smooth and Apple HLS outputs\\. Indicates the name displayed by the player \\(for example, English or Director Commentary\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamName", "type": "string" } }, @@ -104162,9 +127046,13 @@ "additionalProperties": false, "properties": { "GroupId": { + "markdownDescription": "Specifies the GROUP\\-ID in the \\#EXT\\-X\\-MEDIA tag of the target HLS audio rendition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupId", "type": "string" }, "Name": { + "markdownDescription": "Specifies the NAME in the \\#EXT\\-X\\-MEDIA tag of the target HLS audio rendition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -104174,9 +127062,13 @@ "additionalProperties": false, "properties": { "LanguageCode": { + "markdownDescription": "Selects a specific three\\-letter language code from within an audio source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LanguageCode", "type": "string" }, "LanguageSelectionPolicy": { + "markdownDescription": "When set to \"strict,\" the transport stream demux strictly identifies audio streams by their language descriptor\\. If a PMT update occurs such that an audio stream matching the initially selected language is no longer present, then mute is encoded until the language returns\\. If set to \"loose,\" then on a PMT update the demux chooses another audio stream in the program with the same stream type if it can't find one with the same language\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LanguageSelectionPolicy", "type": "string" } }, @@ -104186,12 +127078,18 @@ "additionalProperties": false, "properties": { "Algorithm": { + "markdownDescription": "The audio normalization algorithm to use\\. itu17701 conforms to the CALM Act specification\\. itu17702 conforms to the EBU R\\-128 specification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Algorithm", "type": "string" }, "AlgorithmControl": { + "markdownDescription": "When set to correctAudio, the output audio is corrected using the chosen algorithm\\. If set to measureOnly, the audio is measured but not adjusted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlgorithmControl", "type": "string" }, "TargetLkfs": { + "markdownDescription": "The Target LKFS\\(loudness\\) to adjust volume to\\. If no value is entered, a default value is used according to the chosen algorithm\\. The CALM Act \\(1770\\-1\\) recommends a target of \\-24 LKFS\\. The EBU R\\-128 specification \\(1770\\-2\\) recommends a target of \\-23 LKFS\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetLkfs", "type": "number" } }, @@ -104201,15 +127099,23 @@ "additionalProperties": false, "properties": { "AudioGroupId": { + "markdownDescription": "Specifies the group that the audio rendition belongs to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioGroupId", "type": "string" }, "AudioOnlyImage": { - "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation" + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation", + "markdownDescription": "Used with an audio\\-only stream\\. It must be a \\.jpg or \\.png file\\. If given, this image is used as the cover art for the audio\\-only output\\. Ideally, it should be formatted for an iPhone screen for two reasons\\. The iPhone does not resize the image; instead, it crops a centered image on the top/bottom and left/right\\. Additionally, this image file gets saved bit\\-for\\-bit into every 10\\-second segment file, so it increases bandwidth by \\{image file size\\} \\* \\{segment count\\} \\* \\{user count\\.\\}\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioOnlyImage" }, "AudioTrackType": { + "markdownDescription": "Four types of audio\\-only tracks are supported: Audio\\-Only Variant Stream The client can play back this audio\\-only stream instead of video in low\\-bandwidth scenarios\\. Represented as an EXT\\-X\\-STREAM\\-INF in the HLS manifest\\. Alternate Audio, Auto Select, Default Alternate rendition that the client should try to play back by default\\. Represented as an EXT\\-X\\-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto Select, Not Default Alternate rendition that the client might try to play back by default\\. Represented as an EXT\\-X\\-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate Audio, not Auto Select Alternate rendition that the client will not try to play back by default\\. Represented as an EXT\\-X\\-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioTrackType", "type": "string" }, "SegmentType": { + "markdownDescription": "Specifies the segment type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentType", "type": "string" } }, @@ -104219,6 +127125,8 @@ "additionalProperties": false, "properties": { "Pid": { + "markdownDescription": "Select the audio by this PID\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Pid", "type": "number" } }, @@ -104228,10 +127136,14 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "A name for this AudioSelector\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "SelectorSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.AudioSelectorSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioSelectorSettings", + "markdownDescription": "Information about the specific audio to extract from the input\\. \n*Required*: No \n*Type*: [AudioSelectorSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselectorsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SelectorSettings" } }, "type": "object" @@ -104240,16 +127152,24 @@ "additionalProperties": false, "properties": { "AudioHlsRenditionSelection": { - "$ref": "#/definitions/AWS::MediaLive::Channel.AudioHlsRenditionSelection" + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioHlsRenditionSelection", + "markdownDescription": "Selector for HLS audio rendition\\. \n*Required*: No \n*Type*: [AudioHlsRenditionSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiohlsrenditionselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioHlsRenditionSelection" }, "AudioLanguageSelection": { - "$ref": "#/definitions/AWS::MediaLive::Channel.AudioLanguageSelection" + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioLanguageSelection", + "markdownDescription": "The language code of the audio to select\\. \n*Required*: No \n*Type*: [AudioLanguageSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiolanguageselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioLanguageSelection" }, "AudioPidSelection": { - "$ref": "#/definitions/AWS::MediaLive::Channel.AudioPidSelection" + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioPidSelection", + "markdownDescription": "The PID of the audio to select\\. \n*Required*: No \n*Type*: [AudioPidSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiopidselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioPidSelection" }, "AudioTrackSelection": { - "$ref": "#/definitions/AWS::MediaLive::Channel.AudioTrackSelection" + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioTrackSelection", + "markdownDescription": "Information about the audio track to extract\\. \n*Required*: No \n*Type*: [AudioTrackSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiotrackselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioTrackSelection" } }, "type": "object" @@ -104258,9 +127178,13 @@ "additionalProperties": false, "properties": { "AudioSelectorName": { + "markdownDescription": "The name of the audio selector in the input that MediaLive should monitor to detect silence\\. Select your most important rendition\\. If you didn't create an audio selector in this input, leave blank\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioSelectorName", "type": "string" }, "AudioSilenceThresholdMsec": { + "markdownDescription": "The amount of time \\(in milliseconds\\) that the active input must be silent before automatic input failover occurs\\. Silence is defined as audio loss or audio quieter than \\-50 dBFS\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioSilenceThresholdMsec", "type": "number" } }, @@ -104270,6 +127194,8 @@ "additionalProperties": false, "properties": { "Track": { + "markdownDescription": "1\\-based integer value that maps to a specific audio track \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Track", "type": "number" } }, @@ -104282,6 +127208,8 @@ "items": { "$ref": "#/definitions/AWS::MediaLive::Channel.AudioTrack" }, + "markdownDescription": "Selects one or more unique audio tracks from within a source\\. \n*Required*: No \n*Type*: List of [AudioTrack](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiotrack.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tracks", "type": "array" } }, @@ -104291,7 +127219,9 @@ "additionalProperties": false, "properties": { "NielsenWatermarksSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.NielsenWatermarksSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.NielsenWatermarksSettings", + "markdownDescription": "Settings to configure Nielsen Watermarks in the audio encode \n*Required*: No \n*Type*: [NielsenWatermarksSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-nielsenwatermarkssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NielsenWatermarksSettings" } }, "type": "object" @@ -104300,18 +127230,26 @@ "additionalProperties": false, "properties": { "ErrorClearTimeMsec": { + "markdownDescription": "This clear time defines the requirement a recovered input must meet to be considered healthy\\. The input must have no failover conditions for this length of time\\. Enter a time in milliseconds\\. This value is particularly important if the input\\_preference for the failover pair is set to PRIMARY\\_INPUT\\_PREFERRED, because after this time, MediaLive will switch back to the primary input\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorClearTimeMsec", "type": "number" }, "FailoverConditions": { "items": { "$ref": "#/definitions/AWS::MediaLive::Channel.FailoverCondition" }, + "markdownDescription": "A list of failover conditions\\. If any of these conditions occur, MediaLive will perform a failover to the other input\\. \n*Required*: No \n*Type*: List of [FailoverCondition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-failovercondition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailoverConditions", "type": "array" }, "InputPreference": { + "markdownDescription": "Input preference when deciding which input to make active when a previously failed input has recovered\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputPreference", "type": "string" }, "SecondaryInputId": { + "markdownDescription": "The input ID of the secondary input in the automatic input failover pair\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryInputId", "type": "string" } }, @@ -104321,9 +127259,13 @@ "additionalProperties": false, "properties": { "AvailBlankingImage": { - "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation" + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation", + "markdownDescription": "The blanking image to be used\\. Keep empty for solid black\\. Only \\.bmp and \\.png images are supported\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailBlankingImage" }, "State": { + "markdownDescription": "When set to enabled, the video, audio, and captions are blanked when insertion metadata is added\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", "type": "string" } }, @@ -104333,7 +127275,9 @@ "additionalProperties": false, "properties": { "AvailSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.AvailSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.AvailSettings", + "markdownDescription": "The setup of ad avail handling in the output\\. \n*Required*: No \n*Type*: [AvailSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailSettings" } }, "type": "object" @@ -104342,10 +127286,14 @@ "additionalProperties": false, "properties": { "Scte35SpliceInsert": { - "$ref": "#/definitions/AWS::MediaLive::Channel.Scte35SpliceInsert" + "$ref": "#/definitions/AWS::MediaLive::Channel.Scte35SpliceInsert", + "markdownDescription": "The setup for SCTE\\-35 splice insert handling\\. \n*Required*: No \n*Type*: [Scte35SpliceInsert](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte35spliceinsert.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte35SpliceInsert" }, "Scte35TimeSignalApos": { - "$ref": "#/definitions/AWS::MediaLive::Channel.Scte35TimeSignalApos" + "$ref": "#/definitions/AWS::MediaLive::Channel.Scte35TimeSignalApos", + "markdownDescription": "The setup for SCTE\\-35 time signal APOS handling\\. \n*Required*: No \n*Type*: [Scte35TimeSignalApos](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte35timesignalapos.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte35TimeSignalApos" } }, "type": "object" @@ -104354,18 +127302,28 @@ "additionalProperties": false, "properties": { "BlackoutSlateImage": { - "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation" + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation", + "markdownDescription": "The blackout slate image to be used\\. Keep empty for solid black\\. Only \\.bmp and \\.png images are supported\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlackoutSlateImage" }, "NetworkEndBlackout": { + "markdownDescription": "Setting to enabled causes MediaLive to blackout the video, audio, and captions, and raise the \"Network Blackout Image\" slate when an SCTE104/35 Network End Segmentation Descriptor is encountered\\. The blackout is lifted when the Network Start Segmentation Descriptor is encountered\\. The Network End and Network Start descriptors must contain a network ID that matches the value entered in Network ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkEndBlackout", "type": "string" }, "NetworkEndBlackoutImage": { - "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation" + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation", + "markdownDescription": "The path to the local file to use as the Network End Blackout image\\. The image is scaled to fill the entire output raster\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkEndBlackoutImage" }, "NetworkId": { + "markdownDescription": "Provides a Network ID that matches EIDR ID format \\(for example, \"10\\.XXXX/XXXX\\-XXXX\\-XXXX\\-XXXX\\-XXXX\\-C\"\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkId", "type": "string" }, "State": { + "markdownDescription": "When set to enabled, this causes video, audio, and captions to be blanked when indicated by program metadata\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", "type": "string" } }, @@ -104375,54 +127333,88 @@ "additionalProperties": false, "properties": { "Alignment": { + "markdownDescription": "If no explicit xPosition or yPosition is provided, setting alignment to centered places the captions at the bottom center of the output\\. Similarly, setting a left alignment aligns captions to the bottom left of the output\\. If x and y positions are specified in conjunction with the alignment parameter, the font is justified \\(either left or centered\\) relative to those coordinates\\. Selecting \"smart\" justification left\\-justifies live subtitles and center\\-justifies pre\\-recorded subtitles\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alignment", "type": "string" }, "BackgroundColor": { + "markdownDescription": "Specifies the color of the rectangle behind the captions\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackgroundColor", "type": "string" }, "BackgroundOpacity": { + "markdownDescription": "Specifies the opacity of the background rectangle\\. 255 is opaque; 0 is transparent\\. Keeping this parameter blank is equivalent to setting it to 0 \\(transparent\\)\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackgroundOpacity", "type": "number" }, "Font": { - "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation" + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation", + "markdownDescription": "The external font file that is used for captions burn\\-in\\. The file extension must be \\.ttf or \\.tte\\. Although you can select output fonts for many different types of input captions, embedded, STL, and Teletext sources use a strict grid system\\. Using external fonts with these captions sources could cause an unexpected display of proportional fonts\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Font" }, "FontColor": { + "markdownDescription": "Specifies the color of the burned\\-in captions\\. This option is not valid for source captions that are STL, 608/embedded, or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FontColor", "type": "string" }, "FontOpacity": { + "markdownDescription": "Specifies the opacity of the burned\\-in captions\\. 255 is opaque; 0 is transparent\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FontOpacity", "type": "number" }, "FontResolution": { + "markdownDescription": "The font resolution in DPI \\(dots per inch\\)\\. The default is 96 dpi\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FontResolution", "type": "number" }, "FontSize": { + "markdownDescription": "When set to auto, fontSize scales depending on the size of the output\\. Providing a positive integer specifies the exact font size in points\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FontSize", "type": "string" }, "OutlineColor": { + "markdownDescription": "Specifies the font outline color\\. This option is not valid for source captions that are either 608/embedded or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutlineColor", "type": "string" }, "OutlineSize": { + "markdownDescription": "Specifies font outline size in pixels\\. This option is not valid for source captions that are either 608/embedded or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutlineSize", "type": "number" }, "ShadowColor": { + "markdownDescription": "Specifies the color of the shadow cast by the captions\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShadowColor", "type": "string" }, "ShadowOpacity": { + "markdownDescription": "Specifies the opacity of the shadow\\. 255 is opaque; 0 is transparent\\. Keeping this parameter blank is equivalent to setting it to 0 \\(transparent\\)\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShadowOpacity", "type": "number" }, "ShadowXOffset": { + "markdownDescription": "Specifies the horizontal offset of the shadow that is relative to the captions in pixels\\. A value of \\-2 would result in a shadow offset 2 pixels to the left\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShadowXOffset", "type": "number" }, "ShadowYOffset": { + "markdownDescription": "Specifies the vertical offset of the shadow that is relative to the captions in pixels\\. A value of \\-2 would result in a shadow offset 2 pixels above the text\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShadowYOffset", "type": "number" }, "TeletextGridControl": { + "markdownDescription": "Controls whether a fixed grid size is used to generate the output subtitles bitmap\\. This applies only to Teletext inputs and DVB\\-Sub/Burn\\-in outputs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TeletextGridControl", "type": "string" }, "XPosition": { + "markdownDescription": "Specifies the horizontal position of the captions relative to the left side of the output in pixels\\. A value of 10 would result in the captions starting 10 pixels from the left of the output\\. If no explicit xPosition is provided, the horizontal captions position is determined by the alignment parameter\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "XPosition", "type": "number" }, "YPosition": { + "markdownDescription": "Specifies the vertical position of the captions relative to the top of the output in pixels\\. A value of 10 would result in the captions starting 10 pixels from the top of the output\\. If no explicit yPosition is provided, the captions are positioned towards the bottom of the output\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "YPosition", "type": "number" } }, @@ -104432,18 +127424,28 @@ "additionalProperties": false, "properties": { "CaptionSelectorName": { + "markdownDescription": "Specifies which input captions selector to use as a captions source when generating output captions\\. This field should match a captionSelector name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptionSelectorName", "type": "string" }, "DestinationSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionDestinationSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionDestinationSettings", + "markdownDescription": "Additional settings for a captions destination that depend on the destination type\\. \n*Required*: No \n*Type*: [CaptionDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationSettings" }, "LanguageCode": { + "markdownDescription": "An ISO 639\\-2 three\\-digit code\\. For more information, see http://www\\.loc\\.gov/standards/iso639\\-2/\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LanguageCode", "type": "string" }, "LanguageDescription": { + "markdownDescription": "Human\\-readable information to indicate the captions that are available for players \\(for example, English or Spanish\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LanguageDescription", "type": "string" }, "Name": { + "markdownDescription": "The name of the captions description\\. The name is used to associate a captions description with an output\\. Names must be unique within a channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -104453,43 +127455,69 @@ "additionalProperties": false, "properties": { "AribDestinationSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.AribDestinationSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.AribDestinationSettings", + "markdownDescription": "The configuration of one ARIB captions encode in the output\\. \n*Required*: No \n*Type*: [AribDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aribdestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AribDestinationSettings" }, "BurnInDestinationSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.BurnInDestinationSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.BurnInDestinationSettings", + "markdownDescription": "The configuration of one burn\\-in captions encode in the output\\. \n*Required*: No \n*Type*: [BurnInDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BurnInDestinationSettings" }, "DvbSubDestinationSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.DvbSubDestinationSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.DvbSubDestinationSettings", + "markdownDescription": "The configuration of one DVB Sub captions encode in the output\\. \n*Required*: No \n*Type*: [DvbSubDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubdestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DvbSubDestinationSettings" }, "EbuTtDDestinationSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.EbuTtDDestinationSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.EbuTtDDestinationSettings", + "markdownDescription": "Settings for EBU\\-TT captions in the output\\. \n*Required*: No \n*Type*: [EbuTtDDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ebuttddestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EbuTtDDestinationSettings" }, "EmbeddedDestinationSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.EmbeddedDestinationSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.EmbeddedDestinationSettings", + "markdownDescription": "The configuration of one embedded captions encode in the output\\. \n*Required*: No \n*Type*: [EmbeddedDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-embeddeddestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmbeddedDestinationSettings" }, "EmbeddedPlusScte20DestinationSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.EmbeddedPlusScte20DestinationSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.EmbeddedPlusScte20DestinationSettings", + "markdownDescription": "The configuration of one embedded plus SCTE\\-20 captions encode in the output\\. \n*Required*: No \n*Type*: [EmbeddedPlusScte20DestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-embeddedplusscte20destinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmbeddedPlusScte20DestinationSettings" }, "RtmpCaptionInfoDestinationSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.RtmpCaptionInfoDestinationSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.RtmpCaptionInfoDestinationSettings", + "markdownDescription": "The configuration of one RTMPCaptionInfo captions encode in the output\\. \n*Required*: No \n*Type*: [RtmpCaptionInfoDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpcaptioninfodestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RtmpCaptionInfoDestinationSettings" }, "Scte20PlusEmbeddedDestinationSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.Scte20PlusEmbeddedDestinationSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.Scte20PlusEmbeddedDestinationSettings", + "markdownDescription": "The configuration of one SCTE20 plus embedded captions encode in the output\\. \n*Required*: No \n*Type*: [Scte20PlusEmbeddedDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte20plusembeddeddestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte20PlusEmbeddedDestinationSettings" }, "Scte27DestinationSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.Scte27DestinationSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.Scte27DestinationSettings", + "markdownDescription": "The configuration of one SCTE\\-27 captions encode in the output\\. \n*Required*: No \n*Type*: [Scte27DestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte27destinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte27DestinationSettings" }, "SmpteTtDestinationSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.SmpteTtDestinationSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.SmpteTtDestinationSettings", + "markdownDescription": "The configuration of one SMPTE\\-TT captions encode in the output\\. \n*Required*: No \n*Type*: [SmpteTtDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-smptettdestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SmpteTtDestinationSettings" }, "TeletextDestinationSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.TeletextDestinationSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.TeletextDestinationSettings", + "markdownDescription": "The configuration of one Teletext captions encode in the output\\. \n*Required*: No \n*Type*: [TeletextDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-teletextdestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TeletextDestinationSettings" }, "TtmlDestinationSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.TtmlDestinationSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.TtmlDestinationSettings", + "markdownDescription": "The configuration of one TTML captions encode in the output\\. \n*Required*: No \n*Type*: [TtmlDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ttmldestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TtmlDestinationSettings" }, "WebvttDestinationSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.WebvttDestinationSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.WebvttDestinationSettings", + "markdownDescription": "The configuration of one WebVTT captions encode in the output\\. \n*Required*: No \n*Type*: [WebvttDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-webvttdestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WebvttDestinationSettings" } }, "type": "object" @@ -104498,12 +127526,18 @@ "additionalProperties": false, "properties": { "CaptionChannel": { + "markdownDescription": "The closed caption channel being described by this CaptionLanguageMapping\\. Each channel mapping must have a unique channel number \\(maximum of 4\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptionChannel", "type": "number" }, "LanguageCode": { + "markdownDescription": "A three\\-character ISO 639\\-2 language code \\(see http://www\\.loc\\.gov/standards/iso639\\-2\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LanguageCode", "type": "string" }, "LanguageDescription": { + "markdownDescription": "The textual description of language\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LanguageDescription", "type": "string" } }, @@ -104513,15 +127547,23 @@ "additionalProperties": false, "properties": { "Height": { + "markdownDescription": "See the description in leftOffset\\. \n For height, specify the entire height of the rectangle as a percentage of the underlying frame height\\. For example, \\\\\"80\\\\\" means the rectangle height is 80% of the underlying frame height\\. The topOffset and rectangleHeight must add up to 100% or less\\. This field corresponds to tts:extent \\- Y in the TTML standard\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Height", "type": "number" }, "LeftOffset": { + "markdownDescription": "Applies only if you plan to convert these source captions to EBU\\-TT\\-D or TTML in an output\\. \\(Make sure to leave the default if you don't have either of these formats in the output\\.\\) You can define a display rectangle for the captions that is smaller than the underlying video frame\\. You define the rectangle by specifying the position of the left edge, top edge, bottom edge, and right edge of the rectangle, all within the underlying video frame\\. The units for the measurements are percentages\\. If you specify a value for one of these fields, you must specify a value for all of them\\. \n For leftOffset, specify the position of the left edge of the rectangle, as a percentage of the underlying frame width, and relative to the left edge of the frame\\. For example, \\\\\"10\\\\\" means the measurement is 10% of the underlying frame width\\. The rectangle left edge starts at that position from the left edge of the frame\\. This field corresponds to tts:origin \\- X in the TTML standard\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LeftOffset", "type": "number" }, "TopOffset": { + "markdownDescription": "See the description in leftOffset\\. \n For topOffset, specify the position of the top edge of the rectangle, as a percentage of the underlying frame height, and relative to the top edge of the frame\\. For example, \\\\\"10\\\\\" means the measurement is 10% of the underlying frame height\\. The rectangle top edge starts at that position from the top edge of the frame\\. This field corresponds to tts:origin \\- Y in the TTML standard\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TopOffset", "type": "number" }, "Width": { + "markdownDescription": "See the description in leftOffset\\. \n For width, specify the entire width of the rectangle as a percentage of the underlying frame width\\. For example, \\\\\"80\\\\\" means the rectangle width is 80% of the underlying frame width\\. The leftOffset and rectangleWidth must add up to 100% or less\\. This field corresponds to tts:extent \\- X in the TTML standard\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Width", "type": "number" } }, @@ -104531,13 +127573,19 @@ "additionalProperties": false, "properties": { "LanguageCode": { + "markdownDescription": "When specified, this field indicates the three\\-letter language code of the captions track to extract from the source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LanguageCode", "type": "string" }, "Name": { + "markdownDescription": "The name identifier for a captions selector\\. This name is used to associate this captions selector with one or more captions descriptions\\. Names must be unique within a channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "SelectorSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionSelectorSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionSelectorSettings", + "markdownDescription": "Information about the specific audio to extract from the input\\. \n*Required*: No \n*Type*: [CaptionSelectorSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SelectorSettings" } }, "type": "object" @@ -104546,25 +127594,39 @@ "additionalProperties": false, "properties": { "AncillarySourceSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.AncillarySourceSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.AncillarySourceSettings", + "markdownDescription": "Information about the ancillary captions to extract from the input\\. \n*Required*: No \n*Type*: [AncillarySourceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ancillarysourcesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AncillarySourceSettings" }, "AribSourceSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.AribSourceSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.AribSourceSettings", + "markdownDescription": "Information about the ARIB captions to extract from the input\\. \n*Required*: No \n*Type*: [AribSourceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aribsourcesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AribSourceSettings" }, "DvbSubSourceSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.DvbSubSourceSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.DvbSubSourceSettings", + "markdownDescription": "Information about the DVB Sub captions to extract from the input\\. \n*Required*: No \n*Type*: [DvbSubSourceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubsourcesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DvbSubSourceSettings" }, "EmbeddedSourceSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.EmbeddedSourceSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.EmbeddedSourceSettings", + "markdownDescription": "Information about the embedded captions to extract from the input\\. \n*Required*: No \n*Type*: [EmbeddedSourceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-embeddedsourcesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmbeddedSourceSettings" }, "Scte20SourceSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.Scte20SourceSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.Scte20SourceSettings", + "markdownDescription": "Information about the SCTE\\-20 captions to extract from the input\\. \n*Required*: No \n*Type*: [Scte20SourceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte20sourcesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte20SourceSettings" }, "Scte27SourceSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.Scte27SourceSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.Scte27SourceSettings", + "markdownDescription": "Information about the SCTE\\-27 captions to extract from the input\\. \n*Required*: No \n*Type*: [Scte27SourceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte27sourcesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte27SourceSettings" }, "TeletextSourceSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.TeletextSourceSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.TeletextSourceSettings", + "markdownDescription": "Information about the Teletext captions to extract from the input\\. \n*Required*: No \n*Type*: [TeletextSourceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-teletextsourcesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TeletextSourceSettings" } }, "type": "object" @@ -104573,6 +127635,8 @@ "additionalProperties": false, "properties": { "Resolution": { + "markdownDescription": "Maximum CDI input resolution \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Resolution", "type": "string" } }, @@ -104587,12 +127651,18 @@ "additionalProperties": false, "properties": { "NetworkId": { + "markdownDescription": "The numeric value placed in the Network Information Table \\(NIT\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkId", "type": "number" }, "NetworkName": { + "markdownDescription": "The network name text placed in the networkNameDescriptor inside the Network Information Table \\(NIT\\)\\. The maximum length is 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkName", "type": "string" }, "RepInterval": { + "markdownDescription": "The number of milliseconds between instances of this table in the output transport stream\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepInterval", "type": "number" } }, @@ -104602,15 +127672,23 @@ "additionalProperties": false, "properties": { "OutputSdt": { + "markdownDescription": "Selects a method of inserting SDT information into an output stream\\. The sdtFollow setting copies SDT information from input stream to output stream\\. The sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT information is present in the input\\. Otherwise, it falls back on the user\\-defined values\\. The sdtManual setting means that the user will enter the SDT information\\. The sdtNone setting means that the output stream will not contain SDT information\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputSdt", "type": "string" }, "RepInterval": { + "markdownDescription": "The number of milliseconds between instances of this table in the output transport stream\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepInterval", "type": "number" }, "ServiceName": { + "markdownDescription": "The service name placed in the serviceDescriptor in the Service Description Table \\(SDT\\)\\. The maximum length is 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceName", "type": "string" }, "ServiceProviderName": { + "markdownDescription": "The service provider name placed in the serviceDescriptor in the Service Description Table \\(SDT\\)\\. The maximum length is 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceProviderName", "type": "string" } }, @@ -104620,54 +127698,88 @@ "additionalProperties": false, "properties": { "Alignment": { + "markdownDescription": "If no explicit xPosition or yPosition is provided, setting the alignment to centered places the captions at the bottom center of the output\\. Similarly, setting a left alignment aligns captions to the bottom left of the output\\. If x and y positions are specified in conjunction with the alignment parameter, the font is justified \\(either left or centered\\) relative to those coordinates\\. Selecting \"smart\" justification left\\-justifies live subtitles and center\\-justifies pre\\-recorded subtitles\\. This option is not valid for source captions that are STL or 608/embedded\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alignment", "type": "string" }, "BackgroundColor": { + "markdownDescription": "Specifies the color of the rectangle behind the captions\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackgroundColor", "type": "string" }, "BackgroundOpacity": { + "markdownDescription": "Specifies the opacity of the background rectangle\\. 255 is opaque; 0 is transparent\\. Keeping this parameter blank is equivalent to setting it to 0 \\(transparent\\)\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackgroundOpacity", "type": "number" }, "Font": { - "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation" + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation", + "markdownDescription": "The external font file that is used for captions burn\\-in\\. The file extension must be \\.ttf or \\.tte\\. Although you can select output fonts for many different types of input captions, embedded, STL, and Teletext sources use a strict grid system\\. Using external fonts with these captions sources could cause an unexpected display of proportional fonts\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Font" }, "FontColor": { + "markdownDescription": "Specifies the color of the burned\\-in captions\\. This option is not valid for source captions that are STL, 608/embedded, or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FontColor", "type": "string" }, "FontOpacity": { + "markdownDescription": "Specifies the opacity of the burned\\-in captions\\. 255 is opaque; 0 is transparent\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FontOpacity", "type": "number" }, "FontResolution": { + "markdownDescription": "The font resolution in DPI \\(dots per inch\\)\\. The default is 96 dpi\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FontResolution", "type": "number" }, "FontSize": { + "markdownDescription": "When set to auto, fontSize scales depending on the size of the output\\. Providing a positive integer specifies the exact font size in points\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FontSize", "type": "string" }, "OutlineColor": { + "markdownDescription": "Specifies the font outline color\\. This option is not valid for source captions that are either 608/embedded or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutlineColor", "type": "string" }, "OutlineSize": { + "markdownDescription": "Specifies the font outline size in pixels\\. This option is not valid for source captions that are either 608/embedded or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutlineSize", "type": "number" }, "ShadowColor": { + "markdownDescription": "Specifies the color of the shadow that is cast by the captions\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShadowColor", "type": "string" }, "ShadowOpacity": { + "markdownDescription": "Specifies the opacity of the shadow\\. 255 is opaque; 0 is transparent\\. Keeping this parameter blank is equivalent to setting it to 0 \\(transparent\\)\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShadowOpacity", "type": "number" }, "ShadowXOffset": { + "markdownDescription": "Specifies the horizontal offset of the shadow relative to the captions in pixels\\. A value of \\-2 would result in a shadow offset 2 pixels to the left\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShadowXOffset", "type": "number" }, "ShadowYOffset": { + "markdownDescription": "Specifies the vertical offset of the shadow relative to the captions in pixels\\. A value of \\-2 would result in a shadow offset 2 pixels above the text\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShadowYOffset", "type": "number" }, "TeletextGridControl": { + "markdownDescription": "Controls whether a fixed grid size is used to generate the output subtitles bitmap\\. This applies to only Teletext inputs and DVB\\-Sub/Burn\\-in outputs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TeletextGridControl", "type": "string" }, "XPosition": { + "markdownDescription": "Specifies the horizontal position of the captions relative to the left side of the output in pixels\\. A value of 10 would result in the captions starting 10 pixels from the left of the output\\. If no explicit xPosition is provided, the horizontal captions position is determined by the alignment parameter\\. This option is not valid for source captions that are STL, 608/embedded, or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "XPosition", "type": "number" }, "YPosition": { + "markdownDescription": "Specifies the vertical position of the captions relative to the top of the output in pixels\\. A value of 10 would result in the captions starting 10 pixels from the top of the output\\. If no explicit yPosition is provided, the captions are positioned towards the bottom of the output\\. This option is not valid for source captions that are STL, 608/embedded, or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "YPosition", "type": "number" } }, @@ -104677,9 +127789,13 @@ "additionalProperties": false, "properties": { "OcrLanguage": { + "markdownDescription": "If you will configure a WebVTT caption description that references this caption selector, use this field to provide the language to consider when translating the image\\-based source to text\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OcrLanguage", "type": "string" }, "Pid": { + "markdownDescription": "When using DVB\\-Sub with burn\\-in or SMPTE\\-TT, use this PID for the source content\\. It is unused for DVB\\-Sub passthrough\\. All DVB\\-Sub content is passed through, regardless of selectors\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Pid", "type": "number" } }, @@ -104689,6 +127805,8 @@ "additionalProperties": false, "properties": { "RepInterval": { + "markdownDescription": "The number of milliseconds between instances of this table in the output transport stream\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepInterval", "type": "number" } }, @@ -104698,63 +127816,103 @@ "additionalProperties": false, "properties": { "AttenuationControl": { + "markdownDescription": "When set to attenuate3Db, applies a 3 dB attenuation to the surround channels\\. Used only for the 3/2 coding mode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttenuationControl", "type": "string" }, "Bitrate": { + "markdownDescription": "The average bitrate in bits/second\\. Valid bitrates depend on the coding mode\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bitrate", "type": "number" }, "BitstreamMode": { + "markdownDescription": "Specifies the bitstream mode \\(bsmod\\) for the emitted E\\-AC\\-3 stream\\. For more information, see ATSC A/52\\-2012 \\(Annex E\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BitstreamMode", "type": "string" }, "CodingMode": { + "markdownDescription": "The Dolby Digital Plus coding mode\\. This mode determines the number of channels\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodingMode", "type": "string" }, "DcFilter": { + "markdownDescription": "When set to enabled, activates a DC highpass filter for all input channels\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DcFilter", "type": "string" }, "Dialnorm": { + "markdownDescription": "Sets the dialnorm for the output\\. If blank and the input audio is Dolby Digital Plus, dialnorm will be passed through\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dialnorm", "type": "number" }, "DrcLine": { + "markdownDescription": "Sets the Dolby dynamic range compression profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DrcLine", "type": "string" }, "DrcRf": { + "markdownDescription": "Sets the profile for heavy Dolby dynamic range compression, ensuring that the instantaneous signal peaks do not exceed specified levels\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DrcRf", "type": "string" }, "LfeControl": { + "markdownDescription": "When encoding 3/2 audio, setting to lfe enables the LFE channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LfeControl", "type": "string" }, "LfeFilter": { + "markdownDescription": "When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to encoding\\. Valid only with a codingMode32 coding mode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LfeFilter", "type": "string" }, "LoRoCenterMixLevel": { + "markdownDescription": "The Left only/Right only center mix level\\. Used only for the 3/2 coding mode\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoRoCenterMixLevel", "type": "number" }, "LoRoSurroundMixLevel": { + "markdownDescription": "The Left only/Right only surround mix level\\. Used only for a 3/2 coding mode\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoRoSurroundMixLevel", "type": "number" }, "LtRtCenterMixLevel": { + "markdownDescription": "The Left total/Right total center mix level\\. Used only for a 3/2 coding mode\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LtRtCenterMixLevel", "type": "number" }, "LtRtSurroundMixLevel": { + "markdownDescription": "The Left total/Right total surround mix level\\. Used only for the 3/2 coding mode\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LtRtSurroundMixLevel", "type": "number" }, "MetadataControl": { + "markdownDescription": "When set to followInput, encoder metadata is sourced from the DD, DD\\+, or DolbyE decoder that supplies this audio data\\. If the audio is not supplied from one of these streams, then the static metadata settings are used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetadataControl", "type": "string" }, "PassthroughControl": { + "markdownDescription": "When set to whenPossible, input DD\\+ audio will be passed through if it is present on the input\\. This detection is dynamic over the life of the transcode\\. Inputs that alternate between DD\\+ and non\\-DD\\+ content will have a consistent DD\\+ output as the system alternates between passthrough and encoding\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PassthroughControl", "type": "string" }, "PhaseControl": { + "markdownDescription": "When set to shift90Degrees, applies a 90\\-degree phase shift to the surround channels\\. Used only for a 3/2 coding mode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PhaseControl", "type": "string" }, "StereoDownmix": { + "markdownDescription": "A stereo downmix preference\\. Used only for the 3/2 coding mode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StereoDownmix", "type": "string" }, "SurroundExMode": { + "markdownDescription": "When encoding 3/2 audio, sets whether an extra center back surround channel is matrix encoded into the left and right surround channels\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SurroundExMode", "type": "string" }, "SurroundMode": { + "markdownDescription": "When encoding 2/0 audio, sets whether Dolby Surround is matrix\\-encoded into the two channels\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SurroundMode", "type": "string" } }, @@ -104764,15 +127922,23 @@ "additionalProperties": false, "properties": { "CopyrightHolder": { + "markdownDescription": "Applies only if you plan to convert these source captions to EBU\\-TT\\-D or TTML in an output\\. Complete this field if you want to include the name of the copyright holder in the copyright metadata tag in the TTML \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CopyrightHolder", "type": "string" }, "FillLineGap": { + "markdownDescription": "Specifies how to handle the gap between the lines \\(in multi\\-line captions\\)\\. \\- enabled: Fill with the captions background color \\(as specified in the input captions\\)\\. \\- disabled: Leave the gap unfilled\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FillLineGap", "type": "string" }, "FontFamily": { + "markdownDescription": "Specifies the font family to include in the font data attached to the EBU\\-TT captions\\. Valid only if styleControl is set to include\\. If you leave this field empty, the font family is set to \"monospaced\"\\. \\(If styleControl is set to exclude, the font family is always set to \"monospaced\"\\.\\) You specify only the font family\\. All other style information \\(color, bold, position and so on\\) is copied from the input captions\\. The size is always set to 100% to allow the downstream player to choose the size\\. \\- Enter a list of font families, as a comma\\-separated list of font names, in order of preference\\. The name can be a font family \\(such as \u201cArial\u201d\\), or a generic font family \\(such as \u201cserif\u201d\\), or \u201cdefault\u201d \\(to let the downstream player choose the font\\)\\. \\- Leave blank to set the family to \u201cmonospace\u201d\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FontFamily", "type": "string" }, "StyleControl": { + "markdownDescription": "Specifies the style information \\(font color, font position, and so on\\) to include in the font data that is attached to the EBU\\-TT captions\\. \\- include: Take the style information \\(font color, font position, and so on\\) from the source captions and include that information in the font data attached to the EBU\\-TT captions\\. This option is valid only if the source captions are Embedded or Teletext\\. \\- exclude: In the font data attached to the EBU\\-TT captions, set the font family to \"monospaced\"\\. Do not include any other style information\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StyleControl", "type": "string" } }, @@ -104792,15 +127958,23 @@ "additionalProperties": false, "properties": { "Convert608To708": { + "markdownDescription": "If this is upconvert, 608 data is both passed through the \"608 compatibility bytes\" fields of the 708 wrapper as well as translated into 708\\. If 708 data is present in the source content, it is discarded\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Convert608To708", "type": "string" }, "Scte20Detection": { + "markdownDescription": "Set to \"auto\" to handle streams with intermittent or non\\-aligned SCTE\\-20 and embedded captions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte20Detection", "type": "string" }, "Source608ChannelNumber": { + "markdownDescription": "Specifies the 608/708 channel number within the video track from which to extract captions\\. This is unused for passthrough\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source608ChannelNumber", "type": "number" }, "Source608TrackNumber": { + "markdownDescription": "This field is unused and deprecated\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source608TrackNumber", "type": "number" } }, @@ -104813,48 +127987,72 @@ "items": { "$ref": "#/definitions/AWS::MediaLive::Channel.AudioDescription" }, + "markdownDescription": "The encoding information for output audio\\. \n*Required*: No \n*Type*: List of [AudioDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioDescriptions", "type": "array" }, "AvailBlanking": { - "$ref": "#/definitions/AWS::MediaLive::Channel.AvailBlanking" + "$ref": "#/definitions/AWS::MediaLive::Channel.AvailBlanking", + "markdownDescription": "The settings for ad avail blanking\\. \n*Required*: No \n*Type*: [AvailBlanking](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availblanking.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailBlanking" }, "AvailConfiguration": { - "$ref": "#/definitions/AWS::MediaLive::Channel.AvailConfiguration" + "$ref": "#/definitions/AWS::MediaLive::Channel.AvailConfiguration", + "markdownDescription": "The configuration settings for the ad avail handling\\. \n*Required*: No \n*Type*: [AvailConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailConfiguration" }, "BlackoutSlate": { - "$ref": "#/definitions/AWS::MediaLive::Channel.BlackoutSlate" + "$ref": "#/definitions/AWS::MediaLive::Channel.BlackoutSlate", + "markdownDescription": "The settings for the blackout slate\\. \n*Required*: No \n*Type*: [BlackoutSlate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-blackoutslate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlackoutSlate" }, "CaptionDescriptions": { "items": { "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionDescription" }, + "markdownDescription": "The encoding information for output captions\\. \n*Required*: No \n*Type*: List of [CaptionDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondescription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptionDescriptions", "type": "array" }, "FeatureActivations": { - "$ref": "#/definitions/AWS::MediaLive::Channel.FeatureActivations" + "$ref": "#/definitions/AWS::MediaLive::Channel.FeatureActivations", + "markdownDescription": "Settings to enable specific features\\. \n*Required*: No \n*Type*: [FeatureActivations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-featureactivations.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FeatureActivations" }, "GlobalConfiguration": { - "$ref": "#/definitions/AWS::MediaLive::Channel.GlobalConfiguration" + "$ref": "#/definitions/AWS::MediaLive::Channel.GlobalConfiguration", + "markdownDescription": "The configuration settings that apply to the entire channel\\. \n*Required*: No \n*Type*: [GlobalConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-globalconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlobalConfiguration" }, "MotionGraphicsConfiguration": { - "$ref": "#/definitions/AWS::MediaLive::Channel.MotionGraphicsConfiguration" + "$ref": "#/definitions/AWS::MediaLive::Channel.MotionGraphicsConfiguration", + "markdownDescription": "Settings to enable and configure the motion graphics overlay feature in the channel\\. \n*Required*: No \n*Type*: [MotionGraphicsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-motiongraphicsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MotionGraphicsConfiguration" }, "NielsenConfiguration": { - "$ref": "#/definitions/AWS::MediaLive::Channel.NielsenConfiguration" + "$ref": "#/definitions/AWS::MediaLive::Channel.NielsenConfiguration", + "markdownDescription": "The settings to configure Nielsen watermarks\\. \n*Required*: No \n*Type*: [NielsenConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-nielsenconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NielsenConfiguration" }, "OutputGroups": { "items": { "$ref": "#/definitions/AWS::MediaLive::Channel.OutputGroup" }, + "markdownDescription": "The settings for the output groups in the channel\\. \n*Required*: No \n*Type*: List of [OutputGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputgroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputGroups", "type": "array" }, "TimecodeConfig": { - "$ref": "#/definitions/AWS::MediaLive::Channel.TimecodeConfig" + "$ref": "#/definitions/AWS::MediaLive::Channel.TimecodeConfig", + "markdownDescription": "Contains settings used to acquire and adjust timecode information from the inputs\\. \n*Required*: No \n*Type*: [TimecodeConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-timecodeconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimecodeConfig" }, "VideoDescriptions": { "items": { "$ref": "#/definitions/AWS::MediaLive::Channel.VideoDescription" }, + "markdownDescription": "The encoding information for output videos\\. \n*Required*: No \n*Type*: List of [VideoDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videodescription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VideoDescriptions", "type": "array" } }, @@ -104864,7 +128062,9 @@ "additionalProperties": false, "properties": { "FailoverConditionSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.FailoverConditionSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.FailoverConditionSettings", + "markdownDescription": "Settings for a specific failover condition\\. \n*Required*: No \n*Type*: [FailoverConditionSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-failoverconditionsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailoverConditionSettings" } }, "type": "object" @@ -104873,13 +128073,19 @@ "additionalProperties": false, "properties": { "AudioSilenceSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.AudioSilenceFailoverSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioSilenceFailoverSettings", + "markdownDescription": "MediaLive will perform a failover if the specified audio selector is silent for the specified period\\. \n*Required*: No \n*Type*: [AudioSilenceFailoverSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiosilencefailoversettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioSilenceSettings" }, "InputLossSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.InputLossFailoverSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLossFailoverSettings", + "markdownDescription": "MediaLive will perform a failover if content is not detected in this input for the specified period\\. \n*Required*: No \n*Type*: [InputLossFailoverSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlossfailoversettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputLossSettings" }, "VideoBlackSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.VideoBlackFailoverSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoBlackFailoverSettings", + "markdownDescription": "MediaLive will perform a failover if content is considered black for the specified period\\. \n*Required*: No \n*Type*: [VideoBlackFailoverSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoblackfailoversettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VideoBlackSettings" } }, "type": "object" @@ -104888,6 +128094,8 @@ "additionalProperties": false, "properties": { "InputPrepareScheduleActions": { + "markdownDescription": "Enables the Input Prepare feature\\. You can create Input Prepare actions in the schedule only if this feature is enabled\\. If you disable the feature on an existing schedule, make sure that you first delete all input prepare actions from the schedule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputPrepareScheduleActions", "type": "string" } }, @@ -104897,12 +128105,18 @@ "additionalProperties": false, "properties": { "ColumnDepth": { + "markdownDescription": "The parameter D from SMPTE 2022\\-1\\. The height of the FEC protection matrix\\. The number of transport stream packets per column error correction packet\\. The number must be between 4 and 20, inclusive\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnDepth", "type": "number" }, "IncludeFec": { + "markdownDescription": "Enables column only or column and row\\-based FEC\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeFec", "type": "string" }, "RowLength": { + "markdownDescription": "The parameter L from SMPTE 2022\\-1\\. The width of the FEC protection matrix\\. Must be between 1 and 20, inclusive\\. If only Column FEC is used, then larger values increase robustness\\. If Row FEC is used, then this is the number of transport stream packets per row error correction packet, and the value must be between 4 and 20, inclusive, if includeFec is columnAndRow\\. If includeFec is column, this value must be 1 to 20, inclusive\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RowLength", "type": "number" } }, @@ -104912,12 +128126,18 @@ "additionalProperties": false, "properties": { "AudioRenditionSets": { + "markdownDescription": "List all the audio groups that are used with the video output stream\\. Input all the audio GROUP\\-IDs that are associated to the video, separate by ','\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioRenditionSets", "type": "string" }, "NielsenId3Behavior": { + "markdownDescription": "If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NielsenId3Behavior", "type": "string" }, "TimedMetadataBehavior": { + "markdownDescription": "When set to passthrough, timed metadata is passed through from input to output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimedMetadataBehavior", "type": "string" } }, @@ -104927,7 +128147,9 @@ "additionalProperties": false, "properties": { "FrameCaptureS3Settings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureS3Settings" + "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureS3Settings", + "markdownDescription": "Sets up Amazon S3 as the destination for this Frame Capture output\\. \n*Required*: No \n*Type*: [FrameCaptureS3Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecaptures3settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameCaptureS3Settings" } }, "type": "object" @@ -104936,10 +128158,14 @@ "additionalProperties": false, "properties": { "Destination": { - "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef" + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef", + "markdownDescription": "The destination for the frame capture files\\. The destination is either the URI for an Amazon S3 bucket and object, plus a file name prefix \\(for example, s3ssl://sportsDelivery/highlights/20180820/curling\\_\\) or the URI for a MediaStore container, plus a file name prefix \\(for example, mediastoressl://sportsDelivery/20180820/curling\\_\\)\\. The final file names consist of the prefix from the destination field \\(for example, \"curling\\_\"\\) \\+ name modifier \\+ the counter \\(5 digits, starting from 00001\\) \\+ extension \\(which is always \\.jpg\\)\\. For example, curlingLow\\.00001\\.jpg\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" }, "FrameCaptureCdnSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureCdnSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureCdnSettings", + "markdownDescription": "Settings to configure the destination of a Frame Capture output\\. \n*Required*: No \n*Type*: [FrameCaptureCdnSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecapturecdnsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameCaptureCdnSettings" } }, "type": "object" @@ -104953,6 +128179,8 @@ "additionalProperties": false, "properties": { "NameModifier": { + "markdownDescription": "Required if the output group contains more than one output\\. This modifier forms part of the output file name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NameModifier", "type": "string" } }, @@ -104962,6 +128190,8 @@ "additionalProperties": false, "properties": { "CannedAcl": { + "markdownDescription": "Specify the canned ACL to apply to each S3 request\\. Defaults to none\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CannedAcl", "type": "string" } }, @@ -104971,9 +128201,13 @@ "additionalProperties": false, "properties": { "CaptureInterval": { + "markdownDescription": "The frequency, in seconds, for capturing frames for inclusion in the output\\. For example, \"10\" means capture a frame every 10 seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptureInterval", "type": "number" }, "CaptureIntervalUnits": { + "markdownDescription": "Unit for the frame capture interval\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptureIntervalUnits", "type": "string" } }, @@ -104983,21 +128217,33 @@ "additionalProperties": false, "properties": { "InitialAudioGain": { + "markdownDescription": "The value to set the initial audio gain for the channel\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InitialAudioGain", "type": "number" }, "InputEndAction": { + "markdownDescription": "Indicates the action to take when the current input completes \\(for example, end\\-of\\-file\\)\\. When switchAndLoopInputs is configured, MediaLive restarts at the beginning of the first input\\. When \"none\" is configured, MediaLive transcodes either black, a solid color, or a user\\-specified slate images per the \"Input Loss Behavior\" configuration until the next input switch occurs \\(which is controlled through the Channel Schedule API\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputEndAction", "type": "string" }, "InputLossBehavior": { - "$ref": "#/definitions/AWS::MediaLive::Channel.InputLossBehavior" + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLossBehavior", + "markdownDescription": "The settings for system actions when the input is lost\\. \n*Required*: No \n*Type*: [InputLossBehavior](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlossbehavior.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputLossBehavior" }, "OutputLockingMode": { + "markdownDescription": "Indicates how MediaLive pipelines are synchronized\\. PIPELINELOCKING \\- MediaLive attempts to synchronize the output of each pipeline to the other\\. EPOCHLOCKING \\- MediaLive attempts to synchronize the output of each pipeline to the Unix epoch\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputLockingMode", "type": "string" }, "OutputTimingSource": { + "markdownDescription": "Indicates whether the rate of frames emitted by the Live encoder should be paced by its system clock \\(which optionally might be locked to another source through NTP\\) or should be locked to the clock of the source that is providing the input stream\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputTimingSource", "type": "string" }, "SupportLowFramerateInputs": { + "markdownDescription": "Adjusts the video input buffer for streams with very low video frame rates\\. This is commonly set to enabled for music channels with less than one video frame per second\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SupportLowFramerateInputs", "type": "string" } }, @@ -105007,13 +128253,19 @@ "additionalProperties": false, "properties": { "ColorSpacePassthroughSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.ColorSpacePassthroughSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.ColorSpacePassthroughSettings", + "markdownDescription": "Passthrough applies no color space conversion to the output\\. \n*Required*: No \n*Type*: [ColorSpacePassthroughSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-colorspacepassthroughsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColorSpacePassthroughSettings" }, "Rec601Settings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.Rec601Settings" + "$ref": "#/definitions/AWS::MediaLive::Channel.Rec601Settings", + "markdownDescription": "Settings to configure the handling of Rec601 color space\\. \n*Required*: No \n*Type*: [Rec601Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rec601settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rec601Settings" }, "Rec709Settings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.Rec709Settings" + "$ref": "#/definitions/AWS::MediaLive::Channel.Rec709Settings", + "markdownDescription": "Settings to configure the handling of Rec709 color space\\. \n*Required*: No \n*Type*: [Rec709Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rec709settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rec709Settings" } }, "type": "object" @@ -105022,7 +128274,9 @@ "additionalProperties": false, "properties": { "TemporalFilterSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.TemporalFilterSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.TemporalFilterSettings", + "markdownDescription": "Settings for applying the temporal filter to the video\\. \n*Required*: No \n*Type*: [TemporalFilterSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-temporalfiltersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemporalFilterSettings" } }, "type": "object" @@ -105031,126 +128285,208 @@ "additionalProperties": false, "properties": { "AdaptiveQuantization": { + "markdownDescription": "The adaptive quantization\\. This allows intra\\-frame quantizers to vary to improve visual quality\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdaptiveQuantization", "type": "string" }, "AfdSignaling": { + "markdownDescription": "Indicates that AFD values will be written into the output stream\\. If afdSignaling is auto, the system tries to preserve the input AFD value \\(in cases where multiple AFD values are valid\\)\\. If set to fixed, the AFD value is the value configured in the fixedAfd parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AfdSignaling", "type": "string" }, "Bitrate": { + "markdownDescription": "The average bitrate in bits/second\\. This is required when the rate control mode is VBR or CBR\\. It isn't used for QVBR\\. In a Microsoft Smooth output group, each output must have a unique value when its bitrate is rounded down to the nearest multiple of 1000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bitrate", "type": "number" }, "BufFillPct": { + "markdownDescription": "The percentage of the buffer that should initially be filled \\(HRD buffer model\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BufFillPct", "type": "number" }, "BufSize": { + "markdownDescription": "The size of the buffer \\(HRD buffer model\\) in bits/second\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BufSize", "type": "number" }, "ColorMetadata": { + "markdownDescription": "Includes color space metadata in the output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColorMetadata", "type": "string" }, "ColorSpaceSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.H264ColorSpaceSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.H264ColorSpaceSettings", + "markdownDescription": "Settings to configure the color space handling for the video\\. \n*Required*: No \n*Type*: [H264ColorSpaceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264colorspacesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColorSpaceSettings" }, "EntropyEncoding": { + "markdownDescription": "The entropy encoding mode\\. Use cabac \\(must be in Main or High profile\\) or cavlc\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntropyEncoding", "type": "string" }, "FilterSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.H264FilterSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.H264FilterSettings", + "markdownDescription": "Optional filters that you can apply to an encode\\. \n*Required*: No \n*Type*: [H264FilterSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264filtersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterSettings" }, "FixedAfd": { + "markdownDescription": "A four\\-bit AFD value to write on all frames of video in the output stream\\. Valid only when afdSignaling is set to Fixed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FixedAfd", "type": "string" }, "FlickerAq": { + "markdownDescription": "If set to enabled, adjusts the quantization within each frame to reduce flicker or pop on I\\-frames\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FlickerAq", "type": "string" }, "ForceFieldPictures": { + "markdownDescription": "This setting applies only when scan type is \"interlaced\\.\" It controls whether coding is performed on a field basis or on a frame basis\\. \\(When the video is progressive, the coding is always performed on a frame basis\\.\\) enabled: Force MediaLive to code on a field basis, so that odd and even sets of fields are coded separately\\. disabled: Code the two sets of fields separately \\(on a field basis\\) or together \\(on a frame basis using PAFF\\), depending on what is most appropriate for the content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForceFieldPictures", "type": "string" }, "FramerateControl": { + "markdownDescription": "Indicates how the output video frame rate is specified\\. If you select \"specified,\" the output video frame rate is determined by framerateNumerator and framerateDenominator\\. If you select \"initializeFromSource,\" the output video frame rate is set equal to the input video frame rate of the first input\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FramerateControl", "type": "string" }, "FramerateDenominator": { + "markdownDescription": "The frame rate denominator\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FramerateDenominator", "type": "number" }, "FramerateNumerator": { + "markdownDescription": "The frame rate numerator\\. The frame rate is a fraction, for example, 24000/1001 = 23\\.976 fps\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FramerateNumerator", "type": "number" }, "GopBReference": { + "markdownDescription": "If enabled, uses reference B frames for GOP structures that have B frames > 1\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopBReference", "type": "string" }, "GopClosedCadence": { + "markdownDescription": "The frequency of closed GOPs\\. In streaming applications, we recommend that you set this to 1 so that a decoder joining mid\\-stream will receive an IDR frame as quickly as possible\\. Setting this value to 0 will break output segmenting\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopClosedCadence", "type": "number" }, "GopNumBFrames": { + "markdownDescription": "The number of B\\-frames between reference frames\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopNumBFrames", "type": "number" }, "GopSize": { + "markdownDescription": "The GOP size \\(keyframe interval\\) in units of either frames or seconds per gopSizeUnits\\. The value must be greater than zero\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopSize", "type": "number" }, "GopSizeUnits": { + "markdownDescription": "Indicates if the gopSize is specified in frames or seconds\\. If seconds, the system converts the gopSize into a frame count at runtime\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopSizeUnits", "type": "string" }, "Level": { + "markdownDescription": "The H\\.264 level\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Level", "type": "string" }, "LookAheadRateControl": { + "markdownDescription": "The amount of lookahead\\. A value of low can decrease latency and memory usage, while high can produce better quality for certain content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LookAheadRateControl", "type": "string" }, "MaxBitrate": { + "markdownDescription": "For QVBR: See the tooltip for Quality level\\. For VBR: Set the maximum bitrate in order to accommodate expected spikes in the complexity of the video\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxBitrate", "type": "number" }, "MinIInterval": { + "markdownDescription": "Meaningful only if sceneChangeDetect is set to enabled\\. This setting enforces separation between repeated \\(cadence\\) I\\-frames and I\\-frames inserted by Scene Change Detection\\. If a scene change I\\-frame is within I\\-interval frames of a cadence I\\-frame, the GOP is shrunk or stretched to the scene change I\\-frame\\. GOP stretch requires enabling lookahead as well as setting the I\\-interval\\. The normal cadence resumes for the next GOP\\. Note that the maximum GOP stretch = GOP size \\+ Min\\-I\\-interval \\- 1\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinIInterval", "type": "number" }, "NumRefFrames": { + "markdownDescription": "The number of reference frames to use\\. The encoder might use more than requested if you use B\\-frames or interlaced encoding\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumRefFrames", "type": "number" }, "ParControl": { + "markdownDescription": "Indicates how the output pixel aspect ratio is specified\\. If \"specified\" is selected, the output video pixel aspect ratio is determined by parNumerator and parDenominator\\. If \"initializeFromSource\" is selected, the output pixels aspect ratio will be set equal to the input video pixel aspect ratio of the first input\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParControl", "type": "string" }, "ParDenominator": { + "markdownDescription": "The Pixel Aspect Ratio denominator\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParDenominator", "type": "number" }, "ParNumerator": { + "markdownDescription": "The Pixel Aspect Ratio numerator\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParNumerator", "type": "number" }, "Profile": { + "markdownDescription": "An H\\.264 profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Profile", "type": "string" }, "QualityLevel": { + "markdownDescription": "Leave as STANDARD\\_QUALITY or choose a different value \\(which might result in additional costs to run the channel\\)\\. \\- ENHANCED\\_QUALITY: Produces a slightly better video quality without an increase in the bitrate\\. Has an effect only when the Rate control mode is QVBR or CBR\\. If this channel is in a MediaLive multiplex, the value must be ENHANCED\\_QUALITY\\. \\- STANDARD\\_QUALITY: Valid for any Rate control mode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QualityLevel", "type": "string" }, "QvbrQualityLevel": { + "markdownDescription": "Controls the target quality for the video encode\\. This applies only when the rate control mode is QVBR\\. Set values for the QVBR quality level field and Max bitrate field that suit your most important viewing devices\\. Recommended values are: \\- Primary screen: Quality level: 8 to 10\\. Max bitrate: 4M \\- PC or tablet: Quality level: 7\\. Max bitrate: 1\\.5M to 3M \\- Smartphone: Quality level: 6\\. Max bitrate: 1M to 1\\.5M\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QvbrQualityLevel", "type": "number" }, "RateControlMode": { + "markdownDescription": "The rate control mode\\. QVBR: The quality will match the specified quality level except when it is constrained by the maximum bitrate\\. We recommend this if you or your viewers pay for bandwidth\\. VBR: The quality and bitrate vary, depending on the video complexity\\. We recommend this instead of QVBR if you want to maintain a specific average bitrate over the duration of the channel\\. CBR: The quality varies, depending on the video complexity\\. We recommend this only if you distribute your assets to devices that can't handle variable bitrates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RateControlMode", "type": "string" }, "ScanType": { + "markdownDescription": "Sets the scan type of the output to progressive or top\\-field\\-first interlaced\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScanType", "type": "string" }, "SceneChangeDetect": { + "markdownDescription": "The scene change detection\\. On: inserts I\\-frames when the scene change is detected\\. Off: does not force an I\\-frame when the scene change is detected\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SceneChangeDetect", "type": "string" }, "Slices": { + "markdownDescription": "The number of slices per picture\\. The number must be less than or equal to the number of macroblock rows for progressive pictures, and less than or equal to half the number of macroblock rows for interlaced pictures\\. This field is optional\\. If you don't specify a value, MediaLive chooses the number of slices based on the encode resolution\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Slices", "type": "number" }, "Softness": { + "markdownDescription": "Softness\\. Selects a quantizer matrix\\. Larger values reduce high\\-frequency content in the encoded image\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Softness", "type": "number" }, "SpatialAq": { + "markdownDescription": "If set to enabled, adjusts quantization within each frame based on the spatial variation of content complexity\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpatialAq", "type": "string" }, "SubgopLength": { + "markdownDescription": "If set to fixed, uses gopNumBFrames B\\-frames per sub\\-GOP\\. If set to dynamic, optimizes the number of B\\-frames used for each sub\\-GOP to improve visual quality\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubgopLength", "type": "string" }, "Syntax": { + "markdownDescription": "Produces a bitstream that is compliant with SMPTE RP\\-2027\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Syntax", "type": "string" }, "TemporalAq": { + "markdownDescription": "If set to enabled, adjusts quantization within each frame based on the temporal variation of content complexity\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemporalAq", "type": "string" }, "TimecodeInsertion": { + "markdownDescription": "Determines how timecodes should be inserted into the video elementary stream\\. disabled: don't include timecodes\\. picTimingSei: pass through picture timing SEI messages from the source specified in Timecode Config\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimecodeInsertion", "type": "string" } }, @@ -105160,16 +128496,24 @@ "additionalProperties": false, "properties": { "ColorSpacePassthroughSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.ColorSpacePassthroughSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.ColorSpacePassthroughSettings", + "markdownDescription": "Passthrough applies no color space conversion to the output\\. \n*Required*: No \n*Type*: [ColorSpacePassthroughSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-colorspacepassthroughsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColorSpacePassthroughSettings" }, "Hdr10Settings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.Hdr10Settings" + "$ref": "#/definitions/AWS::MediaLive::Channel.Hdr10Settings", + "markdownDescription": "Settings to configure the handling of HDR10 color space\\. \n*Required*: No \n*Type*: [Hdr10Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hdr10settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Hdr10Settings" }, "Rec601Settings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.Rec601Settings" + "$ref": "#/definitions/AWS::MediaLive::Channel.Rec601Settings", + "markdownDescription": "Settings to configure the handling of Rec601 color space\\. \n*Required*: No \n*Type*: [Rec601Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rec601settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rec601Settings" }, "Rec709Settings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.Rec709Settings" + "$ref": "#/definitions/AWS::MediaLive::Channel.Rec709Settings", + "markdownDescription": "Settings to configure the handling of Rec709 color space\\. \n*Required*: No \n*Type*: [Rec709Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rec709settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rec709Settings" } }, "type": "object" @@ -105178,7 +128522,9 @@ "additionalProperties": false, "properties": { "TemporalFilterSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.TemporalFilterSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.TemporalFilterSettings", + "markdownDescription": "Settings for applying the temporal filter to the video\\. \n*Required*: No \n*Type*: [TemporalFilterSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-temporalfiltersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemporalFilterSettings" } }, "type": "object" @@ -105187,90 +128533,148 @@ "additionalProperties": false, "properties": { "AdaptiveQuantization": { + "markdownDescription": "Adaptive quantization\\. Allows intra\\-frame quantizers to vary to improve visual quality\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdaptiveQuantization", "type": "string" }, "AfdSignaling": { + "markdownDescription": "Indicates that AFD values will be written into the output stream\\. If afdSignaling is \"auto\", the system will try to preserve the input AFD value \\(in cases where multiple AFD values are valid\\)\\. If set to \"fixed\", the AFD value will be the value configured in the fixedAfd parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AfdSignaling", "type": "string" }, "AlternativeTransferFunction": { + "markdownDescription": "Whether or not EML should insert an Alternative Transfer Function SEI message to support backwards compatibility with non\\-HDR decoders and displays\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlternativeTransferFunction", "type": "string" }, "Bitrate": { + "markdownDescription": "Average bitrate in bits/second\\. Required when the rate control mode is VBR or CBR\\. Not used for QVBR\\. In an MS Smooth output group, each output must have a unique value when its bitrate is rounded down to the nearest multiple of 1000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bitrate", "type": "number" }, "BufSize": { + "markdownDescription": "Size of buffer \\(HRD buffer model\\) in bits\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BufSize", "type": "number" }, "ColorMetadata": { + "markdownDescription": "Includes colorspace metadata in the output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColorMetadata", "type": "string" }, "ColorSpaceSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.H265ColorSpaceSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.H265ColorSpaceSettings", + "markdownDescription": "Color Space settings \n*Required*: No \n*Type*: [H265ColorSpaceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265colorspacesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColorSpaceSettings" }, "FilterSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.H265FilterSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.H265FilterSettings", + "markdownDescription": "Optional filters that you can apply to an encode\\. \n*Required*: No \n*Type*: [H265FilterSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265filtersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterSettings" }, "FixedAfd": { + "markdownDescription": "Four bit AFD value to write on all frames of video in the output stream\\. Only valid when afdSignaling is set to 'Fixed'\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FixedAfd", "type": "string" }, "FlickerAq": { + "markdownDescription": "If set to enabled, adjust quantization within each frame to reduce flicker or 'pop' on I\\-frames\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FlickerAq", "type": "string" }, "FramerateDenominator": { + "markdownDescription": "Framerate denominator\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FramerateDenominator", "type": "number" }, "FramerateNumerator": { + "markdownDescription": "Framerate numerator \\- framerate is a fraction, e\\.g\\. 24000 / 1001 = 23\\.976 fps\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FramerateNumerator", "type": "number" }, "GopClosedCadence": { + "markdownDescription": "Frequency of closed GOPs\\. In streaming applications, it is recommended that this be set to 1 so a decoder joining mid\\-stream will receive an IDR frame as quickly as possible\\. Setting this value to 0 will break output segmenting\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopClosedCadence", "type": "number" }, "GopSize": { + "markdownDescription": "GOP size \\(keyframe interval\\) in units of either frames or seconds per gopSizeUnits\\. If gopSizeUnits is frames, gopSize must be an integer and must be greater than or equal to 1\\. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an integer\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopSize", "type": "number" }, "GopSizeUnits": { + "markdownDescription": "Indicates if the gopSize is specified in frames or seconds\\. If seconds the system will convert the gopSize into a frame count at run time\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopSizeUnits", "type": "string" }, "Level": { + "markdownDescription": "H\\.265 Level\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Level", "type": "string" }, "LookAheadRateControl": { + "markdownDescription": "Amount of lookahead\\. A value of low can decrease latency and memory usage, while high can produce better quality for certain content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LookAheadRateControl", "type": "string" }, "MaxBitrate": { + "markdownDescription": "For QVBR: See the tooltip for Quality level \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxBitrate", "type": "number" }, "MinIInterval": { + "markdownDescription": "Only meaningful if sceneChangeDetect is set to enabled\\. Defaults to 5 if multiplex rate control is used\\. Enforces separation between repeated \\(cadence\\) I\\-frames and I\\-frames inserted by Scene Change Detection\\. If a scene change I\\-frame is within I\\-interval frames of a cadence I\\-frame, the GOP is shrunk and/or stretched to the scene change I\\-frame\\. GOP stretch requires enabling lookahead as well as setting I\\-interval\\. The normal cadence resumes for the next GOP\\. Note: Maximum GOP stretch = GOP size \\+ Min\\-I\\-interval \\- 1 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinIInterval", "type": "number" }, "ParDenominator": { + "markdownDescription": "Pixel Aspect Ratio denominator\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParDenominator", "type": "number" }, "ParNumerator": { + "markdownDescription": "Pixel Aspect Ratio numerator\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParNumerator", "type": "number" }, "Profile": { + "markdownDescription": "H\\.265 Profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Profile", "type": "string" }, "QvbrQualityLevel": { + "markdownDescription": "Controls the target quality for the video encode\\. Applies only when the rate control mode is QVBR\\. Set values for the QVBR quality level field and Max bitrate field that suit your most important viewing devices\\. Recommended values are: \\- Primary screen: Quality level: 8 to 10\\. Max bitrate: 4M \\- PC or tablet: Quality level: 7\\. Max bitrate: 1\\.5M to 3M \\- Smartphone: Quality level: 6\\. Max bitrate: 1M to 1\\.5M \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QvbrQualityLevel", "type": "number" }, "RateControlMode": { + "markdownDescription": "Rate control mode\\. QVBR: Quality will match the specified quality level except when it is constrained by the maximum bitrate\\. Recommended if you or your viewers pay for bandwidth\\. CBR: Quality varies, depending on the video complexity\\. Recommended only if you distribute your assets to devices that cannot handle variable bitrates\\. Multiplex: This rate control mode is only supported \\(and is required\\) when the video is being delivered to a MediaLive Multiplex in which case the rate control configuration is controlled by the properties within the Multiplex Program\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RateControlMode", "type": "string" }, "ScanType": { + "markdownDescription": "Sets the scan type of the output to progressive or top\\-field\\-first interlaced\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScanType", "type": "string" }, "SceneChangeDetect": { + "markdownDescription": "Scene change detection\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SceneChangeDetect", "type": "string" }, "Slices": { + "markdownDescription": "Number of slices per picture\\. Must be less than or equal to the number of macroblock rows for progressive pictures, and less than or equal to half the number of macroblock rows for interlaced pictures\\. This field is optional; when no value is specified the encoder will choose the number of slices based on encode resolution\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Slices", "type": "number" }, "Tier": { + "markdownDescription": "H\\.265 Tier\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tier", "type": "string" }, "TimecodeInsertion": { + "markdownDescription": "Determines how timecodes should be inserted into the video elementary stream\\. \\- 'disabled': Do not include timecodes \\- 'picTimingSei': Pass through picture timing SEI messages from the source specified in Timecode Config \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimecodeInsertion", "type": "string" } }, @@ -105280,9 +128684,13 @@ "additionalProperties": false, "properties": { "MaxCll": { + "markdownDescription": "Maximum Content Light Level An integer metadata value defining the maximum light level, in nits, of any single pixel within an encoded HDR video stream or file\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCll", "type": "number" }, "MaxFall": { + "markdownDescription": "Maximum Frame Average Light Level An integer metadata value defining the maximum average light level, in nits, for any single frame within an encoded HDR video stream or file\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxFall", "type": "number" } }, @@ -105292,24 +128700,38 @@ "additionalProperties": false, "properties": { "ConnectionRetryInterval": { + "markdownDescription": "The number of seconds to wait before retrying a connection to the CDN if the connection is lost\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionRetryInterval", "type": "number" }, "FilecacheDuration": { + "markdownDescription": "The size, in seconds, of the file cache for streaming outputs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilecacheDuration", "type": "number" }, "HttpTransferMode": { + "markdownDescription": "Specifies whether to use chunked transfer encoding to Akamai\\. To enable this feature, contact Akamai\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpTransferMode", "type": "string" }, "NumRetries": { + "markdownDescription": "The number of retry attempts that will be made before the channel is put into an error state\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumRetries", "type": "number" }, "RestartDelay": { + "markdownDescription": "If a streaming output fails, the number of seconds to wait until a restart is initiated\\. A value of 0 means never restart\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestartDelay", "type": "number" }, "Salt": { + "markdownDescription": "The salt for authenticated Akamai\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Salt", "type": "string" }, "Token": { + "markdownDescription": "The token parameter for authenticated Akamai\\. If this is not specified, \\_gda\\_ is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Token", "type": "string" } }, @@ -105319,15 +128741,23 @@ "additionalProperties": false, "properties": { "ConnectionRetryInterval": { + "markdownDescription": "The number of seconds to wait before retrying a connection to the CDN if the connection is lost\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionRetryInterval", "type": "number" }, "FilecacheDuration": { + "markdownDescription": "The size, in seconds, of the file cache for streaming outputs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilecacheDuration", "type": "number" }, "NumRetries": { + "markdownDescription": "The number of retry attempts that MediaLive makes before the channel is put into an error state\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumRetries", "type": "number" }, "RestartDelay": { + "markdownDescription": "If a streaming output fails, the number of seconds to wait until a restart is initiated\\. A value of 0 means never restart\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestartDelay", "type": "number" } }, @@ -105337,19 +128767,29 @@ "additionalProperties": false, "properties": { "HlsAkamaiSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.HlsAkamaiSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsAkamaiSettings", + "markdownDescription": "Sets up Akamai as the downstream system for the HLS output group\\. \n*Required*: No \n*Type*: [HlsAkamaiSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsakamaisettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsAkamaiSettings" }, "HlsBasicPutSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.HlsBasicPutSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsBasicPutSettings", + "markdownDescription": "The settings for Basic Put for the HLS output\\. \n*Required*: No \n*Type*: [HlsBasicPutSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsbasicputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsBasicPutSettings" }, "HlsMediaStoreSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.HlsMediaStoreSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsMediaStoreSettings", + "markdownDescription": "Sets up MediaStore as the destination for the HLS output\\. \n*Required*: No \n*Type*: [HlsMediaStoreSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsmediastoresettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsMediaStoreSettings" }, "HlsS3Settings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.HlsS3Settings" + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsS3Settings", + "markdownDescription": "Sets up Amazon S3 as the destination for this HLS output\\. \n*Required*: No \n*Type*: [HlsS3Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlss3settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsS3Settings" }, "HlsWebdavSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.HlsWebdavSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsWebdavSettings", + "markdownDescription": "The settings for Web VTT captions in the HLS output group\\. \nThe parent of this entity is HlsGroupSettings\\. \n*Required*: No \n*Type*: [HlsWebdavSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlswebdavsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsWebdavSettings" } }, "type": "object" @@ -105361,135 +128801,221 @@ "items": { "type": "string" }, + "markdownDescription": "Chooses one or more ad marker types to pass SCTE35 signals through to this group of Apple HLS outputs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdMarkers", "type": "array" }, "BaseUrlContent": { + "markdownDescription": "A partial URI prefix that will be prepended to each output in the media \\.m3u8 file\\. The partial URI prefix can be used if the base manifest is delivered from a different URL than the main \\.m3u8 file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaseUrlContent", "type": "string" }, "BaseUrlContent1": { + "markdownDescription": "Optional\\. One value per output group\\. This field is required only if you are completing Base URL content A, and the downstream system has notified you that the media files for pipeline 1 of all outputs are in a location different from the media files for pipeline 0\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaseUrlContent1", "type": "string" }, "BaseUrlManifest": { + "markdownDescription": "A partial URI prefix that will be prepended to each output in the media \\.m3u8 file\\. The partial URI prefix can be used if the base manifest is delivered from a different URL than the main \\.m3u8 file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaseUrlManifest", "type": "string" }, "BaseUrlManifest1": { + "markdownDescription": "Optional\\. One value per output group\\. Complete this field only if you are completing Base URL manifest A, and the downstream system has notified you that the child manifest files for pipeline 1 of all outputs are in a location different from the child manifest files for pipeline 0\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaseUrlManifest1", "type": "string" }, "CaptionLanguageMappings": { "items": { "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionLanguageMapping" }, + "markdownDescription": "A mapping of up to 4 captions channels to captions languages\\. This is meaningful only if captionLanguageSetting is set to \"insert\\.\" \n*Required*: No \n*Type*: List of [CaptionLanguageMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionlanguagemapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptionLanguageMappings", "type": "array" }, "CaptionLanguageSetting": { + "markdownDescription": "Applies only to 608 embedded output captions\\. Insert: Include CLOSED\\-CAPTIONS lines in the manifest\\. Specify at least one language in the CC1 Language Code field\\. One CLOSED\\-CAPTION line is added for each Language Code that you specify\\. Make sure to specify the languages in the order in which they appear in the original source \\(if the source is embedded format\\) or the order of the captions selectors \\(if the source is other than embedded\\)\\. Otherwise, languages in the manifest will not match properly with the output captions\\. None: Include the CLOSED\\-CAPTIONS=NONE line in the manifest\\. Omit: Omit any CLOSED\\-CAPTIONS line from the manifest\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptionLanguageSetting", "type": "string" }, "ClientCache": { + "markdownDescription": "When set to \"disabled,\" sets the \\#EXT\\-X\\-ALLOW\\-CACHE:no tag in the manifest, which prevents clients from saving media segments for later replay\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientCache", "type": "string" }, "CodecSpecification": { + "markdownDescription": "The specification to use \\(RFC\\-6381 or the default RFC\\-4281\\) during m3u8 playlist generation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodecSpecification", "type": "string" }, "ConstantIv": { + "markdownDescription": "Used with encryptionType\\. This is a 128\\-bit, 16\\-byte hex value that is represented by a 32\\-character text string\\. If ivSource is set to \"explicit,\" this parameter is required and is used as the IV for encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConstantIv", "type": "string" }, "Destination": { - "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef" + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef", + "markdownDescription": "A directory or HTTP destination for the HLS segments, manifest files, and encryption keys \\(if enabled\\)\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" }, "DirectoryStructure": { + "markdownDescription": "Places segments in subdirectories\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DirectoryStructure", "type": "string" }, "DiscontinuityTags": { + "markdownDescription": "Specifies whether to insert EXT\\-X\\-DISCONTINUITY tags in the HLS child manifests for this output group\\. Typically, choose Insert because these tags are required in the manifest \\(according to the HLS specification\\) and serve an important purpose\\. Choose Never Insert only if the downstream system is doing real\\-time failover \\(without using the MediaLive automatic failover feature\\) and only if that downstream system has advised you to exclude the tags\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DiscontinuityTags", "type": "string" }, "EncryptionType": { + "markdownDescription": "Encrypts the segments with the specified encryption scheme\\. Exclude this parameter if you don't want encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionType", "type": "string" }, "HlsCdnSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.HlsCdnSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsCdnSettings", + "markdownDescription": "The parameters that control interactions with the CDN\\. \n*Required*: No \n*Type*: [HlsCdnSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlscdnsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsCdnSettings" }, "HlsId3SegmentTagging": { + "markdownDescription": "State of HLS ID3 Segment Tagging \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsId3SegmentTagging", "type": "string" }, "IFrameOnlyPlaylists": { + "markdownDescription": "DISABLED: Don't create an I\\-frame\\-only manifest, but do create the master and media manifests \\(according to the Output Selection field\\)\\. STANDARD: Create an I\\-frame\\-only manifest for each output that contains video, as well as the other manifests \\(according to the Output Selection field\\)\\. The I\\-frame manifest contains a \\#EXT\\-X\\-I\\-FRAMES\\-ONLY tag to indicate it is I\\-frame only, and one or more \\#EXT\\-X\\-BYTERANGE entries identifying the I\\-frame position\\. For example, \\#EXT\\-X\\-BYTERANGE:160364@1461888\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IFrameOnlyPlaylists", "type": "string" }, "IncompleteSegmentBehavior": { + "markdownDescription": "Specifies whether to include the final \\(incomplete\\) segment in the media output when the pipeline stops producing output because of a channel stop, a channel pause or a loss of input to the pipeline\\. Auto means that MediaLive decides whether to include the final segment, depending on the channel class and the types of output groups\\. Suppress means to never include the incomplete segment\\. We recommend you choose Auto and let MediaLive control the behavior\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncompleteSegmentBehavior", "type": "string" }, "IndexNSegments": { + "markdownDescription": "Applies only if the Mode field is LIVE\\. Specifies the maximum number of segments in the media manifest file\\. After this maximum, older segments are removed from the media manifest\\. This number must be less than or equal to the Keep Segments field\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IndexNSegments", "type": "number" }, "InputLossAction": { + "markdownDescription": "A parameter that controls output group behavior on an input loss\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputLossAction", "type": "string" }, "IvInManifest": { + "markdownDescription": "Used with encryptionType\\. The IV \\(initialization vector\\) is a 128\\-bit number used in conjunction with the key for encrypting blocks\\. If set to \"include,\" the IV is listed in the manifest\\. Otherwise, the IV is not in the manifest\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IvInManifest", "type": "string" }, "IvSource": { + "markdownDescription": "Used with encryptionType\\. The IV \\(initialization vector\\) is a 128\\-bit number used in conjunction with the key for encrypting blocks\\. If this setting is \"followsSegmentNumber,\" it causes the IV to change every segment \\(to match the segment number\\)\\. If this is set to \"explicit,\" you must enter a constantIv value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IvSource", "type": "string" }, "KeepSegments": { + "markdownDescription": "Applies only if the Mode field is LIVE\\. Specifies the number of media segments \\(\\.ts files\\) to retain in the destination directory\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeepSegments", "type": "number" }, "KeyFormat": { + "markdownDescription": "Specifies how the key is represented in the resource identified by the URI\\. If the parameter is absent, an implicit value of \"identity\" is used\\. A reverse DNS string can also be specified\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyFormat", "type": "string" }, "KeyFormatVersions": { + "markdownDescription": "Either a single positive integer version value or a slash\\-delimited list of version values \\(1/2/3\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyFormatVersions", "type": "string" }, "KeyProviderSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.KeyProviderSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.KeyProviderSettings", + "markdownDescription": "The key provider settings\\. \n*Required*: No \n*Type*: [KeyProviderSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-keyprovidersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyProviderSettings" }, "ManifestCompression": { + "markdownDescription": "When set to gzip, compresses HLS playlist\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestCompression", "type": "string" }, "ManifestDurationFormat": { + "markdownDescription": "Indicates whether the output manifest should use a floating point or integer values for segment duration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestDurationFormat", "type": "string" }, "MinSegmentLength": { + "markdownDescription": "When set, minimumSegmentLength is enforced by looking ahead and back within the specified range for a nearby avail and extending the segment size if needed\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinSegmentLength", "type": "number" }, "Mode": { + "markdownDescription": "If \"vod,\" all segments are indexed and kept permanently in the destination and manifest\\. If \"live,\" only the number segments specified in keepSegments and indexNSegments are kept\\. Newer segments replace older segments, which might prevent players from rewinding all the way to the beginning of the channel\\. VOD mode uses HLS EXT\\-X\\-PLAYLIST\\-TYPE of EVENT while the channel is running, converting it to a \"VOD\" type manifest on completion of the stream\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", "type": "string" }, "OutputSelection": { + "markdownDescription": "MANIFESTSANDSEGMENTS: Generates manifests \\(the master manifest, if applicable, and media manifests\\) for this output group\\. SEGMENTSONLY: Doesn't generate any manifests for this output group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputSelection", "type": "string" }, "ProgramDateTime": { + "markdownDescription": "Includes or excludes the EXT\\-X\\-PROGRAM\\-DATE\\-TIME tag in \\.m3u8 manifest files\\. The value is calculated as follows: Either the program date and time are initialized using the input timecode source, or the time is initialized using the input timecode source and the date is initialized using the timestampOffset\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProgramDateTime", "type": "string" }, "ProgramDateTimeClock": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProgramDateTimeClock", "type": "string" }, "ProgramDateTimePeriod": { + "markdownDescription": "The period of insertion of the EXT\\-X\\-PROGRAM\\-DATE\\-TIME entry, in seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProgramDateTimePeriod", "type": "number" }, "RedundantManifest": { + "markdownDescription": "ENABLED: The master manifest \\(\\.m3u8 file\\) for each pipeline includes information about both pipelines: first its own media files, then the media files of the other pipeline\\. This feature allows a playout device that supports stale manifest detection to switch from one manifest to the other, when the current manifest seems to be stale\\. There are still two destinations and two master manifests, but both master manifests reference the media files from both pipelines\\. DISABLED: The master manifest \\(\\.m3u8 file\\) for each pipeline includes information about its own pipeline only\\. For an HLS output group with MediaPackage as the destination, the DISABLED behavior is always followed\\. MediaPackage regenerates the manifests it serves to players, so a redundant manifest from MediaLive is irrelevant\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedundantManifest", "type": "string" }, "SegmentLength": { + "markdownDescription": "The length of the MPEG\\-2 Transport Stream segments to create, in seconds\\. Note that segments will end on the next keyframe after this number of seconds, so the actual segment length might be longer\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentLength", "type": "number" }, "SegmentationMode": { + "markdownDescription": "useInputSegmentation has been deprecated\\. The configured segment size is always used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentationMode", "type": "string" }, "SegmentsPerSubdirectory": { + "markdownDescription": "The number of segments to write to a subdirectory before starting a new one\\. For this setting to have an effect, directoryStructure must be subdirectoryPerStream\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentsPerSubdirectory", "type": "number" }, "StreamInfResolution": { + "markdownDescription": "The include or exclude RESOLUTION attribute for a video in the EXT\\-X\\-STREAM\\-INF tag of a variant manifest\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamInfResolution", "type": "string" }, "TimedMetadataId3Frame": { + "markdownDescription": "Indicates the ID3 frame that has the timecode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimedMetadataId3Frame", "type": "string" }, "TimedMetadataId3Period": { + "markdownDescription": "The timed metadata interval, in seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimedMetadataId3Period", "type": "number" }, "TimestampDeltaMilliseconds": { + "markdownDescription": "Provides an extra millisecond delta offset to fine tune the timestamps\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimestampDeltaMilliseconds", "type": "number" }, "TsFileMode": { + "markdownDescription": "SEGMENTEDFILES: Emits the program as segments \\-multiple \\.ts media files\\. SINGLEFILE: Applies only if the Mode field is VOD\\. Emits the program as a single \\.ts media file\\. The media manifest includes \\#EXT\\-X\\-BYTERANGE tags to index segments for playback\\. A typical use for this value is when sending the output to AWS Elemental MediaConvert, which can accept only a single media file\\. Playback while the channel is running is not guaranteed due to HTTP server caching\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TsFileMode", "type": "string" } }, @@ -105499,18 +129025,28 @@ "additionalProperties": false, "properties": { "Bandwidth": { + "markdownDescription": "When specified, the HLS stream with the m3u8 bandwidth that most closely matches this value is chosen\\. Otherwise, the highest bandwidth stream in the m3u8 is chosen\\. The bitrate is specified in bits per second, as in an HLS manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bandwidth", "type": "number" }, "BufferSegments": { + "markdownDescription": "When specified, reading of the HLS input begins this many buffer segments from the end \\(most recently written segment\\)\\. When not specified, the HLS input begins with the first segment specified in the m3u8\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BufferSegments", "type": "number" }, "Retries": { + "markdownDescription": "The number of consecutive times that attempts to read a manifest or segment must fail before the input is considered unavailable\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Retries", "type": "number" }, "RetryInterval": { + "markdownDescription": "The number of seconds between retries when an attempt to read a manifest or segment fails\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryInterval", "type": "number" }, "Scte35Source": { + "markdownDescription": "Identifies the source for the SCTE\\-35 messages that MediaLive will ingest\\. Messages can be ingested from the content segments \\(in the stream\\) or from tags in the playlist \\(the HLS manifest\\)\\. MediaLive ignores SCTE\\-35 information in the source that is not selected\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte35Source", "type": "string" } }, @@ -105520,18 +129056,28 @@ "additionalProperties": false, "properties": { "ConnectionRetryInterval": { + "markdownDescription": "The number of seconds to wait before retrying a connection to the CDN if the connection is lost\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionRetryInterval", "type": "number" }, "FilecacheDuration": { + "markdownDescription": "The size, in seconds, of the file cache for streaming outputs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilecacheDuration", "type": "number" }, "MediaStoreStorageClass": { + "markdownDescription": "When set to temporal, output files are stored in non\\-persistent memory for faster reading and writing\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MediaStoreStorageClass", "type": "string" }, "NumRetries": { + "markdownDescription": "The number of retry attempts that are made before the channel is put into an error state\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumRetries", "type": "number" }, "RestartDelay": { + "markdownDescription": "If a streaming output fails, the number of seconds to wait until a restart is initiated\\. A value of 0 means never restart\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestartDelay", "type": "number" } }, @@ -105541,15 +129087,23 @@ "additionalProperties": false, "properties": { "H265PackagingType": { + "markdownDescription": "Only applicable when this output is referencing an H\\.265 video description\\. Specifies whether MP4 segments should be packaged as HEV1 or HVC1\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "H265PackagingType", "type": "string" }, "HlsSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.HlsSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsSettings", + "markdownDescription": "The settings regarding the underlying stream\\. These settings are different for audio\\-only outputs\\. \n*Required*: No \n*Type*: [HlsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsSettings" }, "NameModifier": { + "markdownDescription": "A string that is concatenated to the end of the destination file name\\. Accepts \\\\\"Format Identifiers\\\\\":\\#formatIdentifierParameters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NameModifier", "type": "string" }, "SegmentModifier": { + "markdownDescription": "A string that is concatenated to the end of segment file names\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentModifier", "type": "string" } }, @@ -105559,6 +129113,8 @@ "additionalProperties": false, "properties": { "CannedAcl": { + "markdownDescription": "Specify the canned ACL to apply to each S3 request\\. Defaults to none\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CannedAcl", "type": "string" } }, @@ -105568,16 +129124,24 @@ "additionalProperties": false, "properties": { "AudioOnlyHlsSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.AudioOnlyHlsSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioOnlyHlsSettings", + "markdownDescription": "The settings for an audio\\-only output\\. \n*Required*: No \n*Type*: [AudioOnlyHlsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioonlyhlssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioOnlyHlsSettings" }, "Fmp4HlsSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.Fmp4HlsSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.Fmp4HlsSettings", + "markdownDescription": "The settings for an fMP4 container\\. \n*Required*: No \n*Type*: [Fmp4HlsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-fmp4hlssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Fmp4HlsSettings" }, "FrameCaptureHlsSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureHlsSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureHlsSettings", + "markdownDescription": "Settings for a frame capture output in an HLS output group\\. \n*Required*: No \n*Type*: [FrameCaptureHlsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecapturehlssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameCaptureHlsSettings" }, "StandardHlsSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.StandardHlsSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.StandardHlsSettings", + "markdownDescription": "The settings for a standard output \\(an output that is not audio\\-only\\)\\. \n*Required*: No \n*Type*: [StandardHlsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-standardhlssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StandardHlsSettings" } }, "type": "object" @@ -105586,18 +129150,28 @@ "additionalProperties": false, "properties": { "ConnectionRetryInterval": { + "markdownDescription": "The number of seconds to wait before retrying a connection to the CDN if the connection is lost\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionRetryInterval", "type": "number" }, "FilecacheDuration": { + "markdownDescription": "The size, in seconds, of the file cache for streaming outputs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilecacheDuration", "type": "number" }, "HttpTransferMode": { + "markdownDescription": "Specifies whether to use chunked transfer encoding to WebDAV\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpTransferMode", "type": "string" }, "NumRetries": { + "markdownDescription": "The number of retry attempts that are made before the channel is put into an error state\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumRetries", "type": "number" }, "RestartDelay": { + "markdownDescription": "If a streaming output fails, the number of seconds to wait until a restart is initiated\\. A value of 0 means never restart\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestartDelay", "type": "number" } }, @@ -105612,16 +129186,24 @@ "additionalProperties": false, "properties": { "AutomaticInputFailoverSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.AutomaticInputFailoverSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.AutomaticInputFailoverSettings", + "markdownDescription": "Settings to implement automatic input failover in this input\\. \n*Required*: No \n*Type*: [AutomaticInputFailoverSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-automaticinputfailoversettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutomaticInputFailoverSettings" }, "InputAttachmentName": { + "markdownDescription": "A name for the attachment\\. This is required if you want to use this input in an input switch action\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputAttachmentName", "type": "string" }, "InputId": { + "markdownDescription": "The ID of the input to attach\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InputId", "type": "string" }, "InputSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.InputSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.InputSettings", + "markdownDescription": "Information about the content to extract from the input and about the general handling of the content\\. \n*Required*: No \n*Type*: [InputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputSettings" } }, "type": "object" @@ -105630,9 +129212,13 @@ "additionalProperties": false, "properties": { "Gain": { + "markdownDescription": "The remixing value\\. Units are in dB, and acceptable values are within the range from \\-60 \\(mute\\) to 6 dB\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Gain", "type": "number" }, "InputChannel": { + "markdownDescription": "The index of the input channel that is used as a source\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputChannel", "type": "number" } }, @@ -105642,12 +129228,18 @@ "additionalProperties": false, "properties": { "PasswordParam": { + "markdownDescription": "The password parameter that holds the password for accessing the downstream system\\. This applies only if the downstream system requires credentials\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PasswordParam", "type": "string" }, "Uri": { + "markdownDescription": "The URI should be a path to a file that is accessible to the Live system \\(for example, an http:// URI\\) depending on the output type\\. For example, an RTMP destination should have a URI similar to rtmp://fmsserver/live\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Uri", "type": "string" }, "Username": { + "markdownDescription": "The user name to connect to the downstream system\\. This applies only if the downstream system requires credentials\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", "type": "string" } }, @@ -105657,18 +129249,28 @@ "additionalProperties": false, "properties": { "BlackFrameMsec": { + "markdownDescription": "On input loss, the number of milliseconds to substitute black into the output before switching to the frame specified by inputLossImageType\\. A value x, where 0 <= x <= 1,000,000 and a value of 1,000,000, is interpreted as infinite\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlackFrameMsec", "type": "number" }, "InputLossImageColor": { + "markdownDescription": "When the input loss image type is \"color,\" this field specifies the color to use\\. Value: 6 hex characters that represent the values of RGB\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputLossImageColor", "type": "string" }, "InputLossImageSlate": { - "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation" + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation", + "markdownDescription": "When the input loss image type is \"slate,\" these fields specify the parameters for accessing the slate\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputLossImageSlate" }, "InputLossImageType": { + "markdownDescription": "Indicates whether to substitute a solid color or a slate into the output after the input loss exceeds blackFrameMsec\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputLossImageType", "type": "string" }, "RepeatFrameMsec": { + "markdownDescription": "On input loss, the number of milliseconds to repeat the previous picture before substituting black into the output\\. A value x, where 0 <= x <= 1,000,000 and a value of 1,000,000, is interpreted as infinite\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepeatFrameMsec", "type": "number" } }, @@ -105678,6 +129280,8 @@ "additionalProperties": false, "properties": { "InputLossThresholdMsec": { + "markdownDescription": "The amount of time \\(in milliseconds\\) that no input is detected\\. After that time, an input failover will occur\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputLossThresholdMsec", "type": "number" } }, @@ -105690,40 +129294,62 @@ "items": { "$ref": "#/definitions/AWS::MediaLive::Channel.AudioSelector" }, + "markdownDescription": "Information about the specific audio to extract from the input\\. \nThe parent of this entity is InputSettings\\. \n*Required*: No \n*Type*: List of [AudioSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioSelectors", "type": "array" }, "CaptionSelectors": { "items": { "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionSelector" }, + "markdownDescription": "Information about the specific captions to extract from the input\\. \n*Required*: No \n*Type*: List of [CaptionSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptionSelectors", "type": "array" }, "DeblockFilter": { + "markdownDescription": "Enables or disables the deblock filter when filtering\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeblockFilter", "type": "string" }, "DenoiseFilter": { + "markdownDescription": "Enables or disables the denoise filter when filtering\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DenoiseFilter", "type": "string" }, "FilterStrength": { + "markdownDescription": "Adjusts the magnitude of filtering from 1 \\(minimal\\) to 5 \\(strongest\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterStrength", "type": "number" }, "InputFilter": { + "markdownDescription": "Turns on the filter for this input\\. MPEG\\-2 inputs have the deblocking filter enabled by default\\. 1\\) auto \\- filtering is applied depending on input type/quality 2\\) disabled \\- no filtering is applied to the input 3\\) forced \\- filtering is applied regardless of the input type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputFilter", "type": "string" }, "NetworkInputSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.NetworkInputSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.NetworkInputSettings", + "markdownDescription": "Information about how to connect to the upstream system\\. \n*Required*: No \n*Type*: [NetworkInputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-networkinputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkInputSettings" }, "Scte35Pid": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte35Pid", "type": "number" }, "Smpte2038DataPreference": { + "markdownDescription": "Specifies whether to extract applicable ancillary data from a SMPTE\\-2038 source in this input\\. Applicable data types are captions, timecode, AFD, and SCTE\\-104 messages\\. \\- PREFER: Extract from SMPTE\\-2038 if present in this input, otherwise extract from another source \\(if any\\)\\. \\- IGNORE: Never extract any ancillary data from SMPTE\\-2038\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Smpte2038DataPreference", "type": "string" }, "SourceEndBehavior": { + "markdownDescription": "The loop input if it is a file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceEndBehavior", "type": "string" }, "VideoSelector": { - "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelector" + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelector", + "markdownDescription": "Information about one video to extract from the input\\. \n*Required*: No \n*Type*: [VideoSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VideoSelector" } }, "type": "object" @@ -105732,12 +129358,18 @@ "additionalProperties": false, "properties": { "Codec": { + "markdownDescription": "The codec to include in the input specification for this channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Codec", "type": "string" }, "MaximumBitrate": { + "markdownDescription": "The maximum input bitrate for any input attached to this channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumBitrate", "type": "string" }, "Resolution": { + "markdownDescription": "The resolution for any input attached to this channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Resolution", "type": "string" } }, @@ -105747,7 +129379,9 @@ "additionalProperties": false, "properties": { "StaticKeySettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.StaticKeySettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.StaticKeySettings", + "markdownDescription": "The configuration of static key settings\\. \n*Required*: No \n*Type*: [StaticKeySettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-statickeysettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StaticKeySettings" } }, "type": "object" @@ -105756,144 +129390,238 @@ "additionalProperties": false, "properties": { "AbsentInputAudioBehavior": { + "markdownDescription": "When set to drop, the output audio streams are removed from the program if the selected input audio stream is removed from the input\\. This allows the output audio configuration to dynamically change based on the input configuration\\. If this is set to encodeSilence, all output audio streams will output encoded silence when not connected to an active input stream\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AbsentInputAudioBehavior", "type": "string" }, "Arib": { + "markdownDescription": "When set to enabled, uses ARIB\\-compliant field muxing and removes video descriptor\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arib", "type": "string" }, "AribCaptionsPid": { + "markdownDescription": "The PID for ARIB Captions in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AribCaptionsPid", "type": "string" }, "AribCaptionsPidControl": { + "markdownDescription": "If set to auto, The PID number used for ARIB Captions will be auto\\-selected from unused PIDs\\. If set to useConfigured, ARIB captions will be on the configured PID number\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AribCaptionsPidControl", "type": "string" }, "AudioBufferModel": { + "markdownDescription": "When set to dvb, uses the DVB buffer model for Dolby Digital audio\\. When set to atsc, the ATSC model is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioBufferModel", "type": "string" }, "AudioFramesPerPes": { + "markdownDescription": "The number of audio frames to insert for each PES packet\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioFramesPerPes", "type": "number" }, "AudioPids": { + "markdownDescription": "The PID of the elementary audio streams in the transport stream\\. Multiple values are accepted, and can be entered in ranges or by comma separation\\. You can enter the value as a decimal or hexadecimal value\\. Each PID specified must be in the range of 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioPids", "type": "string" }, "AudioStreamType": { + "markdownDescription": "When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87 for EAC3\\. When set to dvb, uses stream type = 0x06\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioStreamType", "type": "string" }, "Bitrate": { + "markdownDescription": "The output bitrate of the transport stream in bits per second\\. Setting to 0 lets the muxer automatically determine the appropriate bitrate\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bitrate", "type": "number" }, "BufferModel": { + "markdownDescription": "If set to multiplex, uses the multiplex buffer model for accurate interleaving\\. Setting to bufferModel to none can lead to lower latency, but low\\-memory devices might not be able to play back the stream without interruptions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BufferModel", "type": "string" }, "CcDescriptor": { + "markdownDescription": "When set to enabled, generates captionServiceDescriptor in PMT\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CcDescriptor", "type": "string" }, "DvbNitSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.DvbNitSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.DvbNitSettings", + "markdownDescription": "Inserts a DVB Network Information Table \\(NIT\\) at the specified table repetition interval\\. \n*Required*: No \n*Type*: [DvbNitSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbnitsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DvbNitSettings" }, "DvbSdtSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.DvbSdtSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.DvbSdtSettings", + "markdownDescription": "Inserts a DVB Service Description Table \\(SDT\\) at the specified table repetition interval\\. \n*Required*: No \n*Type*: [DvbSdtSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsdtsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DvbSdtSettings" }, "DvbSubPids": { + "markdownDescription": "The PID for the input source DVB Subtitle data to this output\\. Multiple values are accepted, and can be entered in ranges and/or by comma separation\\. You can enter the value as a decimal or hexadecimal value\\. Each PID specified must be in the range of 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DvbSubPids", "type": "string" }, "DvbTdtSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.DvbTdtSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.DvbTdtSettings", + "markdownDescription": "Inserts DVB Time and Date Table \\(TDT\\) at the specified table repetition interval\\. \n*Required*: No \n*Type*: [DvbTdtSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbtdtsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DvbTdtSettings" }, "DvbTeletextPid": { + "markdownDescription": "The PID for the input source DVB Teletext data to this output\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DvbTeletextPid", "type": "string" }, "Ebif": { + "markdownDescription": "If set to passthrough, passes any EBIF data from the input source to this output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ebif", "type": "string" }, "EbpAudioInterval": { + "markdownDescription": "When videoAndFixedIntervals is selected, audio EBP markers are added to partitions 3 and 4\\. The interval between these additional markers is fixed, and is slightly shorter than the video EBP marker interval\\. This is only available when EBP Cablelabs segmentation markers are selected\\. Partitions 1 and 2 always follow the video interval\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EbpAudioInterval", "type": "string" }, "EbpLookaheadMs": { + "markdownDescription": "When set, enforces that Encoder Boundary Points do not come within the specified time interval of each other by looking ahead at input video\\. If another EBP is going to come in within the specified time interval, the current EBP is not emitted, and the segment is \"stretched\" to the next marker\\. The lookahead value does not add latency to the system\\. The channel must be configured elsewhere to create sufficient latency to make the lookahead accurate\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EbpLookaheadMs", "type": "number" }, "EbpPlacement": { + "markdownDescription": "Controls placement of EBP on audio PIDs\\. If set to videoAndAudioPids, EBP markers are placed on the video PID and all audio PIDs\\. If set to videoPid, EBP markers are placed on only the video PID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EbpPlacement", "type": "string" }, "EcmPid": { + "markdownDescription": "This field is unused and deprecated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EcmPid", "type": "string" }, "EsRateInPes": { + "markdownDescription": "Includes or excludes the ES Rate field in the PES header\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EsRateInPes", "type": "string" }, "EtvPlatformPid": { + "markdownDescription": "The PID for the input source ETV Platform data to this output\\. You can enter it as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\) to 8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EtvPlatformPid", "type": "string" }, "EtvSignalPid": { + "markdownDescription": "The PID for input source ETV Signal data to this output\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EtvSignalPid", "type": "string" }, "FragmentTime": { + "markdownDescription": "The length in seconds of each fragment\\. This is used only with EBP markers\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FragmentTime", "type": "number" }, "Klv": { + "markdownDescription": "If set to passthrough, passes any KLV data from the input source to this output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Klv", "type": "string" }, "KlvDataPids": { + "markdownDescription": "The PID for the input source KLV data to this output\\. Multiple values are accepted, and can be entered in ranges or by comma separation\\. You can enter the value as a decimal or hexadecimal value\\. Each PID specified must be in the range of 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KlvDataPids", "type": "string" }, "NielsenId3Behavior": { + "markdownDescription": "If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NielsenId3Behavior", "type": "string" }, "NullPacketBitrate": { + "markdownDescription": "The value, in bits per second, of extra null packets to insert into the transport stream\\. This can be used if a downstream encryption system requires periodic null packets\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NullPacketBitrate", "type": "number" }, "PatInterval": { + "markdownDescription": "The number of milliseconds between instances of this table in the output transport stream\\. Valid values are 0, 10\\.\\.1000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatInterval", "type": "number" }, "PcrControl": { + "markdownDescription": "When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for every Packetized Elementary Stream \\(PES\\) header\\. This parameter is effective only when the PCR PID is the same as the video or audio elementary stream\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PcrControl", "type": "string" }, "PcrPeriod": { + "markdownDescription": "The maximum time, in milliseconds, between Program Clock References \\(PCRs\\) inserted into the transport stream\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PcrPeriod", "type": "number" }, "PcrPid": { + "markdownDescription": "The PID of the Program Clock Reference \\(PCR\\) in the transport stream\\. When no value is given, MediaLive assigns the same value as the video PID\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PcrPid", "type": "string" }, "PmtInterval": { + "markdownDescription": "The number of milliseconds between instances of this table in the output transport stream\\. Valid values are 0, 10\\.\\.1000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PmtInterval", "type": "number" }, "PmtPid": { + "markdownDescription": "The PID for the Program Map Table \\(PMT\\) in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PmtPid", "type": "string" }, "ProgramNum": { + "markdownDescription": "The value of the program number field in the Program Map Table \\(PMT\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProgramNum", "type": "number" }, "RateMode": { + "markdownDescription": "When VBR, does not insert null packets into the transport stream to fill the specified bitrate\\. The bitrate setting acts as the maximum bitrate when VBR is set\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RateMode", "type": "string" }, "Scte27Pids": { + "markdownDescription": "The PID for the input source SCTE\\-27 data to this output\\. Multiple values are accepted, and can be entered in ranges or by comma separation\\. You can enter the value as a decimal or hexadecimal value\\. Each PID specified must be in the range of 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte27Pids", "type": "string" }, "Scte35Control": { + "markdownDescription": "Optionally passes SCTE\\-35 signals from the input source to this output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte35Control", "type": "string" }, "Scte35Pid": { + "markdownDescription": "The PID of the SCTE\\-35 stream in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte35Pid", "type": "string" }, "SegmentationMarkers": { + "markdownDescription": "Inserts segmentation markers at each segmentationTime period\\. raiSegstart sets the Random Access Indicator bit in the adaptation field\\. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes\\. psiSegstart inserts PAT and PMT tables at the start of segments\\. ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable specification OC\\-SP\\-EBP\\-I01\\-130118\\. ebpLegacy adds Encoder Boundary Point information to the adaptation field using a legacy proprietary format\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentationMarkers", "type": "string" }, "SegmentationStyle": { + "markdownDescription": "The segmentation style parameter controls how segmentation markers are inserted into the transport stream\\. With avails, it is possible that segments might be truncated, which can influence where future segmentation markers are inserted\\. When a segmentation style of resetCadence is selected and a segment is truncated due to an avail, we will reset the segmentation cadence\\. This means the subsequent segment will have a duration of $segmentationTime seconds\\. When a segmentation style of maintainCadence is selected and a segment is truncated due to an avail, we will not reset the segmentation cadence\\. This means the subsequent segment will likely be truncated as well\\. However, all segments after that will have a duration of $segmentationTime seconds\\. Note that EBP lookahead is a slight exception to this rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentationStyle", "type": "string" }, "SegmentationTime": { + "markdownDescription": "The length, in seconds, of each segment\\. This is required unless markers is set to None\\_\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentationTime", "type": "number" }, "TimedMetadataBehavior": { + "markdownDescription": "When set to passthrough, timed metadata is passed through from input to output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimedMetadataBehavior", "type": "string" }, "TimedMetadataPid": { + "markdownDescription": "The PID of the timed metadata stream in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimedMetadataPid", "type": "string" }, "TransportStreamId": { + "markdownDescription": "The value of the transport stream ID field in the Program Map Table \\(PMT\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransportStreamId", "type": "number" }, "VideoPid": { + "markdownDescription": "The PID of the elementary video stream in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VideoPid", "type": "string" } }, @@ -105903,54 +129631,88 @@ "additionalProperties": false, "properties": { "AudioFramesPerPes": { + "markdownDescription": "The number of audio frames to insert for each PES packet\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioFramesPerPes", "type": "number" }, "AudioPids": { + "markdownDescription": "The PID of the elementary audio streams in the transport stream\\. Multiple values are accepted, and can be entered in ranges or by comma separation\\. You can enter the value as a decimal or hexadecimal value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioPids", "type": "string" }, "EcmPid": { + "markdownDescription": "This parameter is unused and deprecated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EcmPid", "type": "string" }, "NielsenId3Behavior": { + "markdownDescription": "If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NielsenId3Behavior", "type": "string" }, "PatInterval": { + "markdownDescription": "The number of milliseconds between instances of this table in the output transport stream\\. A value of \\\\\"0\\\\\" writes out the PMT once per segment file\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatInterval", "type": "number" }, "PcrControl": { + "markdownDescription": "When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for every Packetized Elementary Stream \\(PES\\) header\\. This parameter is effective only when the PCR PID is the same as the video or audio elementary stream\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PcrControl", "type": "string" }, "PcrPeriod": { + "markdownDescription": "The maximum time, in milliseconds, between Program Clock References \\(PCRs\\) inserted into the transport stream\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PcrPeriod", "type": "number" }, "PcrPid": { + "markdownDescription": "The PID of the Program Clock Reference \\(PCR\\) in the transport stream\\. When no value is given, MediaLive assigns the same value as the video PID\\. You can enter the value as a decimal or hexadecimal value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PcrPid", "type": "string" }, "PmtInterval": { + "markdownDescription": "The number of milliseconds between instances of this table in the output transport stream\\. A value of \\\\\"0\\\\\" writes out the PMT once per segment file\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PmtInterval", "type": "number" }, "PmtPid": { + "markdownDescription": "The PID for the Program Map Table \\(PMT\\) in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PmtPid", "type": "string" }, "ProgramNum": { + "markdownDescription": "The value of the program number field in the Program Map Table \\(PMT\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProgramNum", "type": "number" }, "Scte35Behavior": { + "markdownDescription": "If set to passthrough, passes any SCTE\\-35 signals from the input source to this output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte35Behavior", "type": "string" }, "Scte35Pid": { + "markdownDescription": "The PID of the SCTE\\-35 stream in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte35Pid", "type": "string" }, "TimedMetadataBehavior": { + "markdownDescription": "When set to passthrough, timed metadata is passed through from input to output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimedMetadataBehavior", "type": "string" }, "TimedMetadataPid": { + "markdownDescription": "The PID of the timed metadata stream in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimedMetadataPid", "type": "string" }, "TransportStreamId": { + "markdownDescription": "The value of the transport stream ID field in the Program Map Table \\(PMT\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransportStreamId", "type": "number" }, "VideoPid": { + "markdownDescription": "The PID of the elementary video stream in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VideoPid", "type": "string" } }, @@ -105960,7 +129722,9 @@ "additionalProperties": false, "properties": { "Destination": { - "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef" + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef", + "markdownDescription": "The MediaPackage channel destination\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" } }, "type": "object" @@ -105969,6 +129733,8 @@ "additionalProperties": false, "properties": { "ChannelId": { + "markdownDescription": "The ID of the channel in MediaPackage that is the destination for this output group\\. You don't need to specify the individual inputs in MediaPackage; MediaLive handles the connection of the two MediaLive pipelines to the two MediaPackage inputs\\. The MediaPackage channel and MediaLive channel must be in the same Region\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelId", "type": "string" } }, @@ -105983,10 +129749,14 @@ "additionalProperties": false, "properties": { "MotionGraphicsInsertion": { + "markdownDescription": "Enables or disables the motion graphics overlay feature in the channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MotionGraphicsInsertion", "type": "string" }, "MotionGraphicsSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.MotionGraphicsSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.MotionGraphicsSettings", + "markdownDescription": "Settings to enable and configure the motion graphics overlay feature in the channel\\. \n*Required*: No \n*Type*: [MotionGraphicsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-motiongraphicssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MotionGraphicsSettings" } }, "type": "object" @@ -105995,7 +129765,9 @@ "additionalProperties": false, "properties": { "HtmlMotionGraphicsSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.HtmlMotionGraphicsSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.HtmlMotionGraphicsSettings", + "markdownDescription": "Settings to configure the motion graphics overlay to use an HTML asset\\. \n*Required*: No \n*Type*: [HtmlMotionGraphicsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-htmlmotiongraphicssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HtmlMotionGraphicsSettings" } }, "type": "object" @@ -106004,12 +129776,18 @@ "additionalProperties": false, "properties": { "Bitrate": { + "markdownDescription": "The average bitrate in bits/second\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bitrate", "type": "number" }, "CodingMode": { + "markdownDescription": "The MPEG2 Audio coding mode\\. Valid values are codingMode10 \\(for mono\\) or codingMode20 \\(for stereo\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodingMode", "type": "string" }, "SampleRate": { + "markdownDescription": "The sample rate in Hz\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SampleRate", "type": "number" } }, @@ -106019,7 +129797,9 @@ "additionalProperties": false, "properties": { "TemporalFilterSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.TemporalFilterSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.TemporalFilterSettings", + "markdownDescription": "Settings for applying the temporal filter to the video\\. \n*Required*: No \n*Type*: [TemporalFilterSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-temporalfiltersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemporalFilterSettings" } }, "type": "object" @@ -106028,51 +129808,83 @@ "additionalProperties": false, "properties": { "AdaptiveQuantization": { + "markdownDescription": "Choose Off to disable adaptive quantization\\. Or choose another value to enable the quantizer and set its strength\\. The strengths are: Auto, Off, Low, Medium, High\\. When you enable this field, MediaLive allows intra\\-frame quantizers to vary, which might improve visual quality\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdaptiveQuantization", "type": "string" }, "AfdSignaling": { + "markdownDescription": "Indicates the AFD values that MediaLive will write into the video encode\\. If you do not know what AFD signaling is, or if your downstream system has not given you guidance, choose AUTO\\. AUTO: MediaLive will try to preserve the input AFD value \\(in cases where multiple AFD values are valid\\)\\. FIXED: MediaLive will use the value you specify in fixedAFD\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AfdSignaling", "type": "string" }, "ColorMetadata": { + "markdownDescription": "Specifies whether to include the color space metadata\\. The metadata describes the color space that applies to the video \\(the colorSpace field\\)\\. We recommend that you insert the metadata\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColorMetadata", "type": "string" }, "ColorSpace": { + "markdownDescription": "Choose the type of color space conversion to apply to the output\\. For detailed information on setting up both the input and the output to obtain the desired color space in the output, see the section on \\\\\"MediaLive Features \\- Video \\- color space\\\\\" in the MediaLive User Guide\\. PASSTHROUGH: Keep the color space of the input content \\- do not convert it\\. AUTO:Convert all content that is SD to rec 601, and convert all content that is HD to rec 709\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColorSpace", "type": "string" }, "DisplayAspectRatio": { + "markdownDescription": "Sets the pixel aspect ratio for the encode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayAspectRatio", "type": "string" }, "FilterSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.Mpeg2FilterSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.Mpeg2FilterSettings", + "markdownDescription": "Optionally specify a noise reduction filter, which can improve quality of compressed content\\. If you do not choose a filter, no filter will be applied\\. TEMPORAL: This filter is useful for both source content that is noisy \\(when it has excessive digital artifacts\\) and source content that is clean\\. When the content is noisy, the filter cleans up the source content before the encoding phase, with these two effects: First, it improves the output video quality because the content has been cleaned up\\. Secondly, it decreases the bandwidth because MediaLive does not waste bits on encoding noise\\. When the content is reasonably clean, the filter tends to decrease the bitrate\\. \n*Required*: No \n*Type*: [Mpeg2FilterSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2filtersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterSettings" }, "FixedAfd": { + "markdownDescription": "Complete this field only when afdSignaling is set to FIXED\\. Enter the AFD value \\(4 bits\\) to write on all frames of the video encode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FixedAfd", "type": "string" }, "FramerateDenominator": { + "markdownDescription": "description\": \"The framerate denominator\\. For example, 1001\\. The framerate is the numerator divided by the denominator\\. For example, 24000 / 1001 = 23\\.976 FPS\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FramerateDenominator", "type": "number" }, "FramerateNumerator": { + "markdownDescription": "The framerate numerator\\. For example, 24000\\. The framerate is the numerator divided by the denominator\\. For example, 24000 / 1001 = 23\\.976 FPS\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FramerateNumerator", "type": "number" }, "GopClosedCadence": { + "markdownDescription": "MPEG2: default is open GOP\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopClosedCadence", "type": "number" }, "GopNumBFrames": { + "markdownDescription": "Relates to the GOP structure\\. The number of B\\-frames between reference frames\\. If you do not know what a B\\-frame is, use the default\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopNumBFrames", "type": "number" }, "GopSize": { + "markdownDescription": "Relates to the GOP structure\\. The GOP size \\(keyframe interval\\) in the units specified in gopSizeUnits\\. If you do not know what GOP is, use the default\\. If gopSizeUnits is frames, then the gopSize must be an integer and must be greater than or equal to 1\\. If gopSizeUnits is seconds, the gopSize must be greater than 0, but does not need to be an integer\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopSize", "type": "number" }, "GopSizeUnits": { + "markdownDescription": "Relates to the GOP structure\\. Specifies whether the gopSize is specified in frames or seconds\\. If you do not plan to change the default gopSize, leave the default\\. If you specify SECONDS, MediaLive will internally convert the gop size to a frame count\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopSizeUnits", "type": "string" }, "ScanType": { + "markdownDescription": "Set the scan type of the output to PROGRESSIVE or INTERLACED \\(top field first\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScanType", "type": "string" }, "SubgopLength": { + "markdownDescription": "Relates to the GOP structure\\. If you do not know what GOP is, use the default\\. FIXED: Set the number of B\\-frames in each sub\\-GOP to the value in gopNumBFrames\\. DYNAMIC: Let MediaLive optimize the number of B\\-frames in each sub\\-GOP, to improve visual quality\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubgopLength", "type": "string" }, "TimecodeInsertion": { + "markdownDescription": "Determines how MediaLive inserts timecodes in the output video\\. For detailed information about setting up the input and the output for a timecode, see the section on \\\\\"MediaLive Features \\- Timecode configuration\\\\\" in the MediaLive User Guide\\. DISABLED: do not include timecodes\\. GOP\\_TIMECODE: Include timecode metadata in the GOP header\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimecodeInsertion", "type": "string" } }, @@ -106082,60 +129894,98 @@ "additionalProperties": false, "properties": { "AcquisitionPointId": { + "markdownDescription": "The value of the Acquisition Point Identity element that is used in each message placed in the sparse track\\. Enabled only if sparseTrackType is not \"none\\.\" \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcquisitionPointId", "type": "string" }, "AudioOnlyTimecodeControl": { + "markdownDescription": "If set to passthrough for an audio\\-only Microsoft Smooth output, the fragment absolute time is set to the current timecode\\. This option does not write timecodes to the audio elementary stream\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioOnlyTimecodeControl", "type": "string" }, "CertificateMode": { + "markdownDescription": "If set to verifyAuthenticity, verifies the HTTPS certificate chain to a trusted certificate authority \\(CA\\)\\. This causes HTTPS outputs to self\\-signed certificates to fail\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateMode", "type": "string" }, "ConnectionRetryInterval": { + "markdownDescription": "The number of seconds to wait before retrying the connection to the IIS server if the connection is lost\\. Content is cached during this time, and the cache is delivered to the IIS server after the connection is re\\-established\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionRetryInterval", "type": "number" }, "Destination": { - "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef" + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef", + "markdownDescription": "The Smooth Streaming publish point on an IIS server\\. MediaLive acts as a \"Push\" encoder to IIS\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" }, "EventId": { + "markdownDescription": "The Microsoft Smooth channel ID that is sent to the IIS server\\. Specify the ID only if eventIdMode is set to useConfigured\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventId", "type": "string" }, "EventIdMode": { + "markdownDescription": "Specifies whether to send a channel ID to the IIS server\\. If no channel ID is sent and the same channel is used without changing the publishing point, clients might see cached video from the previous run\\. Options: \\- \"useConfigured\" \\- use the value provided in eventId \\- \"useTimestamp\" \\- generate and send a channel ID based on the current timestamp \\- \"noEventId\" \\- do not send a channel ID to the IIS server\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventIdMode", "type": "string" }, "EventStopBehavior": { + "markdownDescription": "When set to sendEos, sends an EOS signal to an IIS server when stopping the channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventStopBehavior", "type": "string" }, "FilecacheDuration": { + "markdownDescription": "The size, in seconds, of the file cache for streaming outputs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilecacheDuration", "type": "number" }, "FragmentLength": { + "markdownDescription": "The length, in seconds, of mp4 fragments to generate\\. The fragment length must be compatible with GOP size and frame rate\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FragmentLength", "type": "number" }, "InputLossAction": { + "markdownDescription": "A parameter that controls output group behavior on an input loss\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputLossAction", "type": "string" }, "NumRetries": { + "markdownDescription": "The number of retry attempts\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumRetries", "type": "number" }, "RestartDelay": { + "markdownDescription": "The number of seconds before initiating a restart due to output failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestartDelay", "type": "number" }, "SegmentationMode": { + "markdownDescription": "useInputSegmentation has been deprecated\\. The configured segment size is always used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentationMode", "type": "string" }, "SendDelayMs": { + "markdownDescription": "The number of milliseconds to delay the output from the second pipeline\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SendDelayMs", "type": "number" }, "SparseTrackType": { + "markdownDescription": "If set to scte35, uses incoming SCTE\\-35 messages to generate a sparse track in this group of Microsoft Smooth outputs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SparseTrackType", "type": "string" }, "StreamManifestBehavior": { + "markdownDescription": "When set to send, sends a stream manifest so that the publishing point doesn't start until all streams start\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamManifestBehavior", "type": "string" }, "TimestampOffset": { + "markdownDescription": "The timestamp offset for the channel\\. Used only if timestampOffsetMode is set to useConfiguredOffset\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimestampOffset", "type": "string" }, "TimestampOffsetMode": { + "markdownDescription": "The type of timestamp date offset to use\\. \\- useEventStartDate: Use the date the channel was started as the offset \\- useConfiguredOffset: Use an explicitly configured date as the offset\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimestampOffsetMode", "type": "string" } }, @@ -106145,9 +129995,13 @@ "additionalProperties": false, "properties": { "H265PackagingType": { + "markdownDescription": "Only applicable when this output is referencing an H\\.265 video description\\. Specifies whether MP4 segments should be packaged as HEV1 or HVC1\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "H265PackagingType", "type": "string" }, "NameModifier": { + "markdownDescription": "A string that is concatenated to the end of the destination file name\\. This is required for multiple outputs of the same type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NameModifier", "type": "string" } }, @@ -106162,7 +130016,9 @@ "additionalProperties": false, "properties": { "Destination": { - "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef" + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef", + "markdownDescription": "Destination is a Multiplex\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" } }, "type": "object" @@ -106171,9 +130027,13 @@ "additionalProperties": false, "properties": { "MultiplexId": { + "markdownDescription": "The ID of the Multiplex that the encoder is providing output to\\. You do not need to specify the individual inputs to the Multiplex; MediaLive will handle the connection of the two MediaLive pipelines to the two Multiplex instances\\. The Multiplex must be in the same region as the Channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MultiplexId", "type": "string" }, "ProgramName": { + "markdownDescription": "The program name of the Multiplex program that the encoder is providing output to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProgramName", "type": "string" } }, @@ -106183,9 +130043,13 @@ "additionalProperties": false, "properties": { "HlsInputSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.HlsInputSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsInputSettings", + "markdownDescription": "Information about how to connect to the upstream system\\. \n*Required*: No \n*Type*: [HlsInputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsinputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsInputSettings" }, "ServerValidation": { + "markdownDescription": "Checks HTTPS server certificates\\. When set to checkCryptographyOnly, cryptography in the certificate is checked, but not the server's name\\. Certain subdomains \\(notably S3 buckets that use dots in the bucket name\\) don't strictly match the corresponding certificate's wildcard pattern and would otherwise cause the channel to error\\. This setting is ignored for protocols that do not use HTTPS\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerValidation", "type": "string" } }, @@ -106195,12 +130059,18 @@ "additionalProperties": false, "properties": { "CbetCheckDigitString": { + "markdownDescription": "Enter the CBET check digits to use in the watermark\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CbetCheckDigitString", "type": "string" }, "CbetStepaside": { + "markdownDescription": "Determines the method of CBET insertion mode when prior encoding is detected on the same layer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CbetStepaside", "type": "string" }, "Csid": { + "markdownDescription": "Enter the CBET Source ID \\(CSID\\) to use in the watermark \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Csid", "type": "string" } }, @@ -106210,9 +130080,13 @@ "additionalProperties": false, "properties": { "DistributorId": { + "markdownDescription": "Enter the Distributor ID assigned to your organization by Nielsen\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DistributorId", "type": "string" }, "NielsenPcmToId3Tagging": { + "markdownDescription": "Enables Nielsen PCM to ID3 tagging \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NielsenPcmToId3Tagging", "type": "string" } }, @@ -106222,9 +130096,13 @@ "additionalProperties": false, "properties": { "CheckDigitString": { + "markdownDescription": "Enter the check digit string for the watermark \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CheckDigitString", "type": "string" }, "Sid": { + "markdownDescription": "Enter the Nielsen Source ID \\(SID\\) to include in the watermark \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sid", "type": "number" } }, @@ -106234,13 +130112,19 @@ "additionalProperties": false, "properties": { "NielsenCbetSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.NielsenCBET" + "$ref": "#/definitions/AWS::MediaLive::Channel.NielsenCBET", + "markdownDescription": "Complete these fields only if you want to insert watermarks of type Nielsen CBET \n*Required*: No \n*Type*: [NielsenCBET](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-nielsencbet.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NielsenCbetSettings" }, "NielsenDistributionType": { + "markdownDescription": "Choose the distribution types that you want to assign to the watermarks: \\- PROGRAM\\_CONTENT \\- FINAL\\_DISTRIBUTOR \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NielsenDistributionType", "type": "string" }, "NielsenNaesIiNwSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.NielsenNaesIiNw" + "$ref": "#/definitions/AWS::MediaLive::Channel.NielsenNaesIiNw", + "markdownDescription": "Complete these fields only if you want to insert watermarks of type Nielsen NAES II \\(N2\\) and Nielsen NAES VI \\(NW\\)\\. \n*Required*: No \n*Type*: [NielsenNaesIiNw](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-nielsennaesiinw.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NielsenNaesIiNwSettings" } }, "type": "object" @@ -106252,21 +130136,31 @@ "items": { "type": "string" }, + "markdownDescription": "The names of the audio descriptions that are used as audio sources for this output\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioDescriptionNames", "type": "array" }, "CaptionDescriptionNames": { "items": { "type": "string" }, + "markdownDescription": "The names of the caption descriptions that are used as captions sources for this output\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptionDescriptionNames", "type": "array" }, "OutputName": { + "markdownDescription": "The name that is used to identify an output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputName", "type": "string" }, "OutputSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.OutputSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputSettings", + "markdownDescription": "The output type\\-specific settings\\. \n*Required*: No \n*Type*: [OutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputSettings" }, "VideoDescriptionName": { + "markdownDescription": "The name of the VideoDescription that is used as the source for this output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VideoDescriptionName", "type": "string" } }, @@ -106276,21 +130170,29 @@ "additionalProperties": false, "properties": { "Id": { + "markdownDescription": "The ID for this destination\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "MediaPackageSettings": { "items": { "$ref": "#/definitions/AWS::MediaLive::Channel.MediaPackageOutputDestinationSettings" }, + "markdownDescription": "The destination settings for a MediaPackage output\\. \n*Required*: No \n*Type*: List of [MediaPackageOutputDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mediapackageoutputdestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MediaPackageSettings", "type": "array" }, "MultiplexSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.MultiplexProgramChannelDestinationSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.MultiplexProgramChannelDestinationSettings", + "markdownDescription": "Destination settings for a Multiplex output; one destination for both encoders\\. \n*Required*: No \n*Type*: [MultiplexProgramChannelDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-multiplexprogramchanneldestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MultiplexSettings" }, "Settings": { "items": { "$ref": "#/definitions/AWS::MediaLive::Channel.OutputDestinationSettings" }, + "markdownDescription": "The destination settings for an output\\. \n*Required*: No \n*Type*: List of [OutputDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Settings", "type": "array" } }, @@ -106300,15 +130202,23 @@ "additionalProperties": false, "properties": { "PasswordParam": { + "markdownDescription": "The password parameter that holds the password for accessing the downstream system\\. This password parameter applies only if the downstream system requires credentials\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PasswordParam", "type": "string" }, "StreamName": { + "markdownDescription": "The stream name for the content\\. This applies only to RTMP outputs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamName", "type": "string" }, "Url": { + "markdownDescription": "The URL for the destination\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", "type": "string" }, "Username": { + "markdownDescription": "The user name to connect to the downstream system\\. This applies only if the downstream system requires credentials\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", "type": "string" } }, @@ -106318,15 +130228,21 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "A custom output group name that you can optionally define\\. Only letters, numbers, and the underscore character are allowed\\. The maximum length is 32 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "OutputGroupSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.OutputGroupSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputGroupSettings", + "markdownDescription": "The settings associated with the output group\\. \n*Required*: No \n*Type*: [OutputGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputgroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputGroupSettings" }, "Outputs": { "items": { "$ref": "#/definitions/AWS::MediaLive::Channel.Output" }, + "markdownDescription": "The settings for the outputs in the output group\\. \n*Required*: No \n*Type*: List of [Output](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-output.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Outputs", "type": "array" } }, @@ -106336,28 +130252,44 @@ "additionalProperties": false, "properties": { "ArchiveGroupSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveGroupSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveGroupSettings", + "markdownDescription": "The configuration of an archive output group\\. \nThe parent of this entity is OutputGroupSettings\\. \n*Required*: No \n*Type*: [ArchiveGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivegroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArchiveGroupSettings" }, "FrameCaptureGroupSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureGroupSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureGroupSettings", + "markdownDescription": "The configuration of a frame capture output group\\. \n*Required*: No \n*Type*: [FrameCaptureGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecapturegroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameCaptureGroupSettings" }, "HlsGroupSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.HlsGroupSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsGroupSettings", + "markdownDescription": "The configuration of an HLS output group\\. \n*Required*: No \n*Type*: [HlsGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsGroupSettings" }, "MediaPackageGroupSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.MediaPackageGroupSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.MediaPackageGroupSettings", + "markdownDescription": "The configuration of a MediaPackage output group\\. \n*Required*: No \n*Type*: [MediaPackageGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mediapackagegroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MediaPackageGroupSettings" }, "MsSmoothGroupSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.MsSmoothGroupSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.MsSmoothGroupSettings", + "markdownDescription": "The configuration of a Microsoft Smooth output group\\. \n*Required*: No \n*Type*: [MsSmoothGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MsSmoothGroupSettings" }, "MultiplexGroupSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.MultiplexGroupSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.MultiplexGroupSettings", + "markdownDescription": "The settings for a Multiplex output group\\. \n*Required*: No \n*Type*: [MultiplexGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-multiplexgroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MultiplexGroupSettings" }, "RtmpGroupSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.RtmpGroupSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.RtmpGroupSettings", + "markdownDescription": "The configuration of an RTMP output group\\. \n*Required*: No \n*Type*: [RtmpGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpgroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RtmpGroupSettings" }, "UdpGroupSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.UdpGroupSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.UdpGroupSettings", + "markdownDescription": "The configuration of a UDP output group\\. \n*Required*: No \n*Type*: [UdpGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-udpgroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UdpGroupSettings" } }, "type": "object" @@ -106366,6 +130298,8 @@ "additionalProperties": false, "properties": { "DestinationRefId": { + "markdownDescription": "A reference ID for this destination\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationRefId", "type": "string" } }, @@ -106375,28 +130309,44 @@ "additionalProperties": false, "properties": { "ArchiveOutputSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveOutputSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveOutputSettings", + "markdownDescription": "The settings for an archive output\\. \n*Required*: No \n*Type*: [ArchiveOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archiveoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArchiveOutputSettings" }, "FrameCaptureOutputSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureOutputSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureOutputSettings", + "markdownDescription": "The settings for a frame capture output\\. \nThe parent of this entity is OutputGroupSettings\\. \n*Required*: No \n*Type*: [FrameCaptureOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecaptureoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameCaptureOutputSettings" }, "HlsOutputSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.HlsOutputSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsOutputSettings", + "markdownDescription": "The settings for an HLS output\\. \nThe parent of this entity is OutputGroupSettings\\. \n*Required*: No \n*Type*: [HlsOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsOutputSettings" }, "MediaPackageOutputSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.MediaPackageOutputSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.MediaPackageOutputSettings", + "markdownDescription": "The settings for a MediaPackage output\\. \nThe parent of this entity is OutputGroupSettings\\. \n*Required*: No \n*Type*: [MediaPackageOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mediapackageoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MediaPackageOutputSettings" }, "MsSmoothOutputSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.MsSmoothOutputSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.MsSmoothOutputSettings", + "markdownDescription": "The settings for a Microsoft Smooth output\\. \n*Required*: No \n*Type*: [MsSmoothOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MsSmoothOutputSettings" }, "MultiplexOutputSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.MultiplexOutputSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.MultiplexOutputSettings", + "markdownDescription": "Configuration of a Multiplex output\\. \n*Required*: No \n*Type*: [MultiplexOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-multiplexoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MultiplexOutputSettings" }, "RtmpOutputSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.RtmpOutputSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.RtmpOutputSettings", + "markdownDescription": "The settings for an RTMP output\\. \nThe parent of this entity is OutputGroupSettings\\. \n*Required*: No \n*Type*: [RtmpOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RtmpOutputSettings" }, "UdpOutputSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.UdpOutputSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.UdpOutputSettings", + "markdownDescription": "The settings for a UDP output\\. \nThe parent of this entity is OutputGroupSettings\\. \n*Required*: No \n*Type*: [UdpOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-udpoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UdpOutputSettings" } }, "type": "object" @@ -106428,12 +130378,18 @@ "items": { "$ref": "#/definitions/AWS::MediaLive::Channel.AudioChannelMapping" }, + "markdownDescription": "A mapping of input channels to output channels, with appropriate gain adjustments\\. \n*Required*: No \n*Type*: List of [AudioChannelMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiochannelmapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelMappings", "type": "array" }, "ChannelsIn": { + "markdownDescription": "The number of input channels to be used\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelsIn", "type": "number" }, "ChannelsOut": { + "markdownDescription": "The number of output channels to be produced\\. Valid values: 1, 2, 4, 6, 8\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelsOut", "type": "number" } }, @@ -106451,24 +130407,38 @@ "items": { "type": "string" }, + "markdownDescription": "Choose the ad marker type for this output group\\. MediaLive will create a message based on the content of each SCTE\\-35 message, format it for that marker type, and insert it in the datastream\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdMarkers", "type": "array" }, "AuthenticationScheme": { + "markdownDescription": "An authentication scheme to use when connecting with a CDN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticationScheme", "type": "string" }, "CacheFullBehavior": { + "markdownDescription": "Controls behavior when the content cache fills up\\. If a remote origin server stalls the RTMP connection and doesn't accept content fast enough, the media cache fills up\\. When the cache reaches the duration specified by cacheLength, the cache stops accepting new content\\. If set to disconnectImmediately, the RTMP output forces a disconnect\\. Clear the media cache, and reconnect after restartDelay seconds\\. If set to waitForServer, the RTMP output waits up to 5 minutes to allow the origin server to begin accepting data again\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheFullBehavior", "type": "string" }, "CacheLength": { + "markdownDescription": "The cache length, in seconds, that is used to calculate buffer size\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheLength", "type": "number" }, "CaptionData": { + "markdownDescription": "Controls the types of data that pass to onCaptionInfo outputs\\. If set to all, 608 and 708 carried DTVCC data is passed\\. If set to field1AndField2608, DTVCC data is stripped out, but 608 data from both fields is passed\\. If set to field1608, only the data carried in 608 from field 1 video is passed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptionData", "type": "string" }, "InputLossAction": { + "markdownDescription": "Controls the behavior of this RTMP group if the input becomes unavailable\\. emitOutput: Emit a slate until the input returns\\. pauseOutput: Stop transmitting data until the input returns\\. This does not close the underlying RTMP connection\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputLossAction", "type": "string" }, "RestartDelay": { + "markdownDescription": "If a streaming output fails, the number of seconds to wait until a restart is initiated\\. A value of 0 means never restart\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestartDelay", "type": "number" } }, @@ -106478,15 +130448,23 @@ "additionalProperties": false, "properties": { "CertificateMode": { + "markdownDescription": "If set to verifyAuthenticity, verifies the TLS certificate chain to a trusted certificate authority \\(CA\\)\\. This causes RTMPS outputs with self\\-signed certificates to fail\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateMode", "type": "string" }, "ConnectionRetryInterval": { + "markdownDescription": "The number of seconds to wait before retrying a connection to the Flash Media server if the connection is lost\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionRetryInterval", "type": "number" }, "Destination": { - "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef" + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef", + "markdownDescription": "The RTMP endpoint excluding the stream name \\(for example, rtmp://host/appname\\)\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" }, "NumRetries": { + "markdownDescription": "The number of retry attempts\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumRetries", "type": "number" } }, @@ -106501,9 +130479,13 @@ "additionalProperties": false, "properties": { "Convert608To708": { + "markdownDescription": "If upconvert, 608 data is both passed through the \"608 compatibility bytes\" fields of the 708 wrapper as well as translated into 708\\. Any 708 data present in the source content is discarded\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Convert608To708", "type": "string" }, "Source608ChannelNumber": { + "markdownDescription": "Specifies the 608/708 channel number within the video track from which to extract captions\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source608ChannelNumber", "type": "number" } }, @@ -106518,9 +130500,13 @@ "additionalProperties": false, "properties": { "OcrLanguage": { + "markdownDescription": "If you will configure a WebVTT caption description that references this caption selector, use this field to provide the language to consider when translating the image\\-based source to text\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OcrLanguage", "type": "string" }, "Pid": { + "markdownDescription": "The PID field is used in conjunction with the captions selector languageCode field as follows: Specify PID and Language: Extracts captions from that PID; the language is \"informational\\.\" Specify PID and omit Language: Extracts the specified PID\\. Omit PID and specify Language: Extracts the specified language, whichever PID that happens to be\\. Omit PID and omit Language: Valid only if source is DVB\\-Sub that is being passed through; all languages are passed through\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Pid", "type": "number" } }, @@ -106530,12 +130516,18 @@ "additionalProperties": false, "properties": { "AdAvailOffset": { + "markdownDescription": "When specified, this offset \\(in milliseconds\\) is added to the input ad avail PTS time\\. This applies only to embedded SCTE 104/35 messages\\. It doesn't apply to OOB messages\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdAvailOffset", "type": "number" }, "NoRegionalBlackoutFlag": { + "markdownDescription": "When set to ignore, segment descriptors with noRegionalBlackoutFlag set to 0 no longer trigger blackouts or ad avail slates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoRegionalBlackoutFlag", "type": "string" }, "WebDeliveryAllowedFlag": { + "markdownDescription": "When set to ignore, segment descriptors with webDeliveryAllowedFlag set to 0 no longer trigger blackouts or ad avail slates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WebDeliveryAllowedFlag", "type": "string" } }, @@ -106545,12 +130537,18 @@ "additionalProperties": false, "properties": { "AdAvailOffset": { + "markdownDescription": "When specified, this offset \\(in milliseconds\\) is added to the input ad avail PTS time\\. This applies only to embedded SCTE 104/35 messages\\. It doesn't apply to OOB messages\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdAvailOffset", "type": "number" }, "NoRegionalBlackoutFlag": { + "markdownDescription": "When set to ignore, segment descriptors with noRegionalBlackoutFlag set to 0 no longer trigger blackouts or ad avail slates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoRegionalBlackoutFlag", "type": "string" }, "WebDeliveryAllowedFlag": { + "markdownDescription": "When set to ignore, segment descriptors with webDeliveryAllowedFlag set to 0 no longer trigger blackouts or ad avail slates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WebDeliveryAllowedFlag", "type": "string" } }, @@ -106565,10 +130563,14 @@ "additionalProperties": false, "properties": { "AudioRenditionSets": { + "markdownDescription": "Lists all the audio groups that are used with the video output stream\\. This inputs all the audio GROUP\\-IDs that are associated with the video, separated by a comma \\(,\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioRenditionSets", "type": "string" }, "M3u8Settings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.M3u8Settings" + "$ref": "#/definitions/AWS::MediaLive::Channel.M3u8Settings", + "markdownDescription": "Settings for the M3U8 container\\. \n*Required*: No \n*Type*: [M3u8Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m3u8settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "M3u8Settings" } }, "type": "object" @@ -106577,9 +130579,13 @@ "additionalProperties": false, "properties": { "KeyProviderServer": { - "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation" + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation", + "markdownDescription": "The URL of the license server that is used for protecting content\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyProviderServer" }, "StaticKeyValue": { + "markdownDescription": "The static key value as a 32 character hexadecimal string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StaticKeyValue", "type": "string" } }, @@ -106594,9 +130600,13 @@ "additionalProperties": false, "properties": { "OutputRectangle": { - "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionRectangle" + "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionRectangle", + "markdownDescription": "Settings to configure the caption rectangle for an output captions that will be created using this Teletext source captions\\. \n*Required*: No \n*Type*: [CaptionRectangle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionrectangle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputRectangle" }, "PageNumber": { + "markdownDescription": "Specifies the Teletext page number within the data stream from which to extract captions\\. The range is 0x100 \\(256\\) to 0x8FF \\(2303\\)\\. This is unused for passthrough\\. It should be specified as a hexadecimal string with no \"0x\" prefix\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PageNumber", "type": "string" } }, @@ -106606,9 +130616,13 @@ "additionalProperties": false, "properties": { "PostFilterSharpening": { + "markdownDescription": "If you enable this filter, the results are the following: \\- If the source content is noisy \\(it contains excessive digital artifacts\\), the filter cleans up the source\\. \\- If the source content is already clean, the filter tends to decrease the bitrate, especially when the rate control mode is QVBR\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PostFilterSharpening", "type": "string" }, "Strength": { + "markdownDescription": "Choose a filter strength\\. We recommend a strength of 1 or 2\\. A higher strength might take out good information, resulting in an image that is overly soft\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Strength", "type": "string" } }, @@ -106618,9 +130632,13 @@ "additionalProperties": false, "properties": { "Source": { + "markdownDescription": "Identifies the source for the timecode that will be associated with the channel outputs\\. Embedded \\(embedded\\): Initialize the output timecode with timecode from the source\\. If no embedded timecode is detected in the source, the system falls back to using \"Start at 0\" \\(zerobased\\)\\. System Clock \\(systemclock\\): Use the UTC time\\. Start at 0 \\(zerobased\\): The time of the first frame of the channel will be 00:00:00:00\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source", "type": "string" }, "SyncThreshold": { + "markdownDescription": "The threshold in frames beyond which output timecode is resynchronized to the input timecode\\. Discrepancies below this threshold are permitted to avoid unnecessary discontinuities in the output timecode\\. There is no timecode sync when this is not specified\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SyncThreshold", "type": "number" } }, @@ -106630,6 +130648,8 @@ "additionalProperties": false, "properties": { "StyleControl": { + "markdownDescription": "When set to passthrough, passes through style and position information from a TTML\\-like input source \\(TTML, SMPTE\\-TT, CFF\\-TT\\) to the CFF\\-TT output or TTML output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StyleControl", "type": "string" } }, @@ -106639,7 +130659,9 @@ "additionalProperties": false, "properties": { "M2tsSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.M2tsSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.M2tsSettings", + "markdownDescription": "The M2TS configuration for this UDP output\\. \n*Required*: No \n*Type*: [M2tsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "M2tsSettings" } }, "type": "object" @@ -106648,12 +130670,18 @@ "additionalProperties": false, "properties": { "InputLossAction": { + "markdownDescription": "Specifies the behavior of the last resort when the input video is lost, and no more backup inputs are available\\. When dropTs is selected, the entire transport stream stops emitting\\. When dropProgram is selected, the program can be dropped from the transport stream \\(and replaced with null packets to meet the TS bitrate requirement\\)\\. Or when emitProgram is selected, the transport stream continues to be produced normally with repeat frames, black frames, or slate frames substituted for the absent input video\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputLossAction", "type": "string" }, "TimedMetadataId3Frame": { + "markdownDescription": "Indicates the ID3 frame that has the timecode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimedMetadataId3Frame", "type": "string" }, "TimedMetadataId3Period": { + "markdownDescription": "The timed metadata interval in seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimedMetadataId3Period", "type": "number" } }, @@ -106663,16 +130691,24 @@ "additionalProperties": false, "properties": { "BufferMsec": { + "markdownDescription": "The UDP output buffering in milliseconds\\. Larger values increase latency through the transcoder but simultaneously assist the transcoder in maintaining a constant, low\\-jitter UDP/RTP output while accommodating clock recovery, input switching, input disruptions, picture reordering, and so on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BufferMsec", "type": "number" }, "ContainerSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.UdpContainerSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.UdpContainerSettings", + "markdownDescription": "The settings for the UDP output\\. \n*Required*: No \n*Type*: [UdpContainerSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-udpcontainersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerSettings" }, "Destination": { - "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef" + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef", + "markdownDescription": "The destination address and port number for RTP or UDP packets\\. These can be unicast or multicast RTP or UDP \\(for example, rtp://239\\.10\\.10\\.10:5001 or udp://10\\.100\\.100\\.100:5002\\)\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" }, "FecOutputSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.FecOutputSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.FecOutputSettings", + "markdownDescription": "The settings for enabling and adjusting Forward Error Correction on UDP outputs\\. \n*Required*: No \n*Type*: [FecOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-fecoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FecOutputSettings" } }, "type": "object" @@ -106681,9 +130717,13 @@ "additionalProperties": false, "properties": { "BlackDetectThreshold": { + "markdownDescription": "A value used in calculating the threshold below which MediaLive considers a pixel to be 'black'\\. For the input to be considered black, every pixel in a frame must be below this threshold\\. The threshold is calculated as a percentage \\(expressed as a decimal\\) of white\\. Therefore \\.1 means 10% white \\(or 90% black\\)\\. Note how the formula works for any color depth\\. For example, if you set this field to 0\\.1 in 10\\-bit color depth: \\(1023\\*0\\.1=102\\.3\\), which means a pixel value of 102 or less is 'black'\\. If you set this field to \\.1 in an 8\\-bit color depth: \\(255\\*0\\.1=25\\.5\\), which means a pixel value of 25 or less is 'black'\\. The range is 0\\.0 to 1\\.0, with any number of decimal places\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlackDetectThreshold", "type": "number" }, "VideoBlackThresholdMsec": { + "markdownDescription": "The amount of time \\(in milliseconds\\) that the active input must be black before automatic input failover occurs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VideoBlackThresholdMsec", "type": "number" } }, @@ -106693,16 +130733,24 @@ "additionalProperties": false, "properties": { "FrameCaptureSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureSettings", + "markdownDescription": "The settings for the video codec in a frame capture output\\. \n*Required*: No \n*Type*: [FrameCaptureSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecapturesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameCaptureSettings" }, "H264Settings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.H264Settings" + "$ref": "#/definitions/AWS::MediaLive::Channel.H264Settings", + "markdownDescription": "The settings for the H\\.264 codec in the output\\. \n*Required*: No \n*Type*: [H264Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "H264Settings" }, "H265Settings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.H265Settings" + "$ref": "#/definitions/AWS::MediaLive::Channel.H265Settings", + "markdownDescription": "Settings for video encoded with the H265 codec\\. \n*Required*: No \n*Type*: [H265Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "H265Settings" }, "Mpeg2Settings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.Mpeg2Settings" + "$ref": "#/definitions/AWS::MediaLive::Channel.Mpeg2Settings", + "markdownDescription": "Settings for video encoded with the MPEG\\-2 codec\\. \n*Required*: No \n*Type*: [Mpeg2Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mpeg2Settings" } }, "type": "object" @@ -106711,24 +130759,38 @@ "additionalProperties": false, "properties": { "CodecSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.VideoCodecSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoCodecSettings", + "markdownDescription": "The video codec settings\\. \n*Required*: No \n*Type*: [VideoCodecSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videocodecsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodecSettings" }, "Height": { + "markdownDescription": "The output video height, in pixels\\. This must be an even number\\. For most codecs, you can keep this field and width blank in order to use the height and width \\(resolution\\) from the source\\. Note that we don't recommend keeping the field blank\\. For the Frame Capture codec, height and width are required\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Height", "type": "number" }, "Name": { + "markdownDescription": "The name of this VideoDescription\\. Outputs use this name to uniquely identify this description\\. Description names should be unique within this channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "RespondToAfd": { + "markdownDescription": "Indicates how to respond to the AFD values in the input stream\\. RESPOND causes input video to be clipped, depending on the AFD value, input display aspect ratio, and output display aspect ratio, and \\(except for the FRAMECAPTURE codec\\) includes the values in the output\\. PASSTHROUGH \\(does not apply to FRAMECAPTURE codec\\) ignores the AFD values and includes the values in the output, so input video is not clipped\\. NONE ignores the AFD values and does not include the values through to the output, so input video is not clipped\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RespondToAfd", "type": "string" }, "ScalingBehavior": { + "markdownDescription": "STRETCHTOOUTPUT configures the output position to stretch the video to the specified output resolution \\(height and width\\)\\. This option overrides any position value\\. DEFAULT might insert black boxes \\(pillar boxes or letter boxes\\) around the video to provide the specified output resolution\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalingBehavior", "type": "string" }, "Sharpness": { + "markdownDescription": "Changes the strength of the anti\\-alias filter used for scaling\\. 0 is the softest setting, and 100 is the sharpest\\. We recommend a setting of 50 for most content\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sharpness", "type": "number" }, "Width": { + "markdownDescription": "The output video width, in pixels\\. It must be an even number\\. For most codecs, you can keep this field and height blank in order to use the height and width \\(resolution\\) from the source\\. Note that we don't recommend keeping the field blank\\. For the Frame Capture codec, height and width are required\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Width", "type": "number" } }, @@ -106738,16 +130800,24 @@ "additionalProperties": false, "properties": { "ColorSpace": { + "markdownDescription": "Specifies the color space of an input\\. This setting works in tandem with colorSpaceConversion to determine if MediaLive will perform any conversion\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColorSpace", "type": "string" }, "ColorSpaceSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelectorColorSpaceSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelectorColorSpaceSettings", + "markdownDescription": "Settings to configure color space settings in the incoming video\\. \n*Required*: No \n*Type*: [VideoSelectorColorSpaceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorcolorspacesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColorSpaceSettings" }, "ColorSpaceUsage": { + "markdownDescription": "Applies only if colorSpace is a value other than Follow\\. This field controls how the value in the colorSpace field is used\\. Fallback means that when the input does include color space data, that data is used, but when the input has no color space data, the value in colorSpace is used\\. Choose fallback if your input is sometimes missing color space data, but when it does have color space data, that data is correct\\. Force means to always use the value in colorSpace\\. Choose force if your input usually has no color space data or might have unreliable color space data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColorSpaceUsage", "type": "string" }, "SelectorSettings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelectorSettings" + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelectorSettings", + "markdownDescription": "Information about the video to select from the content\\. \n*Required*: No \n*Type*: [VideoSelectorSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SelectorSettings" } }, "type": "object" @@ -106756,7 +130826,9 @@ "additionalProperties": false, "properties": { "Hdr10Settings": { - "$ref": "#/definitions/AWS::MediaLive::Channel.Hdr10Settings" + "$ref": "#/definitions/AWS::MediaLive::Channel.Hdr10Settings", + "markdownDescription": "Settings to configure color space settings in the incoming video\\. \n*Required*: No \n*Type*: [Hdr10Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hdr10settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Hdr10Settings" } }, "type": "object" @@ -106765,6 +130837,8 @@ "additionalProperties": false, "properties": { "Pid": { + "markdownDescription": "Selects a specific PID from within a video source\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Pid", "type": "number" } }, @@ -106774,6 +130848,8 @@ "additionalProperties": false, "properties": { "ProgramId": { + "markdownDescription": "Selects a specific program from within a multi\\-program transport stream\\. If the program doesn't exist, MediaLive selects the first program within the transport stream by default\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProgramId", "type": "number" } }, @@ -106783,10 +130859,14 @@ "additionalProperties": false, "properties": { "VideoSelectorPid": { - "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelectorPid" + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelectorPid", + "markdownDescription": "Used to extract video by PID\\. \n*Required*: No \n*Type*: [VideoSelectorPid](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorpid.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VideoSelectorPid" }, "VideoSelectorProgramId": { - "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelectorProgramId" + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelectorProgramId", + "markdownDescription": "Used to extract video by program ID\\. \n*Required*: No \n*Type*: [VideoSelectorProgramId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorprogramid.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VideoSelectorProgramId" } }, "type": "object" @@ -106798,18 +130878,24 @@ "items": { "type": "string" }, + "markdownDescription": "List of public address allocation IDs to associate with ENIs that will be created in Output VPC\\. Must specify one for SINGLE\\_PIPELINE, two for STANDARD channels \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublicAddressAllocationIds", "type": "array" }, "SecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces\\. If none are specified then the VPC default security group will be used \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "A list of VPC subnet IDs from the same VPC\\. If STANDARD channel, subnet IDs must be mapped to two unique availability zones \\(AZ\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" } }, @@ -106819,12 +130905,18 @@ "additionalProperties": false, "properties": { "BitDepth": { + "markdownDescription": "Bits per sample\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BitDepth", "type": "number" }, "CodingMode": { + "markdownDescription": "The audio coding mode for the WAV audio\\. The mode determines the number of channels in the audio\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodingMode", "type": "string" }, "SampleRate": { + "markdownDescription": "Sample rate in Hz\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SampleRate", "type": "number" } }, @@ -106834,6 +130926,8 @@ "additionalProperties": false, "properties": { "StyleControl": { + "markdownDescription": "Controls whether the color and position of the source captions is passed through to the WebVTT output captions\\. PASSTHROUGH \\- Valid only if the source captions are EMBEDDED or TELETEXT\\. NO\\_STYLE\\_DATA \\- Don't pass through the style\\. The output captions will not contain any font styling information\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StyleControl", "type": "string" } }, @@ -106878,46 +130972,66 @@ "items": { "$ref": "#/definitions/AWS::MediaLive::Input.InputDestinationRequest" }, + "markdownDescription": "Settings that apply only if the input is a push type of input\\. \n*Required*: No \n*Type*: List of [InputDestinationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputdestinationrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destinations", "type": "array" }, "InputDevices": { "items": { "$ref": "#/definitions/AWS::MediaLive::Input.InputDeviceSettings" }, + "markdownDescription": "Settings that apply only if the input is an Elemental Link input\\. \n*Required*: No \n*Type*: List of [InputDeviceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputdevicesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputDevices", "type": "array" }, "InputSecurityGroups": { "items": { "type": "string" }, + "markdownDescription": "The list of input security groups \\(referenced by IDs\\) to attach to the input if the input is a push type\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputSecurityGroups", "type": "array" }, "MediaConnectFlows": { "items": { "$ref": "#/definitions/AWS::MediaLive::Input.MediaConnectFlowRequest" }, + "markdownDescription": "Settings that apply only if the input is a MediaConnect input\\. \n*Required*: No \n*Type*: List of [MediaConnectFlowRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-mediaconnectflowrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MediaConnectFlows", "type": "array" }, "Name": { + "markdownDescription": "A name for the input\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "RoleArn": { + "markdownDescription": "The IAM role for MediaLive to assume when creating a MediaConnect input or Amazon VPC input\\. This doesn't apply to other types of inputs\\. The role is identified by its ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "Sources": { "items": { "$ref": "#/definitions/AWS::MediaLive::Input.InputSourceRequest" }, + "markdownDescription": "Settings that apply only if the input is a pull type of input\\. \n*Required*: No \n*Type*: List of [InputSourceRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputsourcerequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sources", "type": "array" }, "Tags": { + "markdownDescription": "A collection of tags for this input\\. Each tag is a key\\-value pair\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" }, "Type": { + "markdownDescription": "The type for this input\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" }, "Vpc": { - "$ref": "#/definitions/AWS::MediaLive::Input.InputVpcRequest" + "$ref": "#/definitions/AWS::MediaLive::Input.InputVpcRequest", + "markdownDescription": "Settings that apply only if the input is an push input where the source is on Amazon VPC\\. \n*Required*: No \n*Type*: [InputVpcRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputvpcrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Vpc" } }, "type": "object" @@ -106946,6 +131060,8 @@ "additionalProperties": false, "properties": { "StreamName": { + "markdownDescription": "The stream name \\(application name/application instance\\) for the location the RTMP source content will be pushed to in MediaLive\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamName", "type": "string" } }, @@ -106955,6 +131071,8 @@ "additionalProperties": false, "properties": { "Id": { + "markdownDescription": "This property is not used\\. Ignore it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" } }, @@ -106964,6 +131082,8 @@ "additionalProperties": false, "properties": { "Id": { + "markdownDescription": "The unique ID for the device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" } }, @@ -106973,12 +131093,18 @@ "additionalProperties": false, "properties": { "PasswordParam": { + "markdownDescription": "The password parameter that holds the password for accessing the upstream system\\. The password parameter applies only if the upstream system requires credentials\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PasswordParam", "type": "string" }, "Url": { + "markdownDescription": "For a pull input, the URL where MediaLive pulls the source content from\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", "type": "string" }, "Username": { + "markdownDescription": "The user name to connect to the upstream system\\. The user name applies only if the upstream system requires credentials\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", "type": "string" } }, @@ -106991,12 +131117,16 @@ "items": { "type": "string" }, + "markdownDescription": "The list of up to five VPC security group IDs to attach to the input VPC network interfaces\\. The security groups require subnet IDs\\. If none are specified, MediaLive uses the VPC default security group\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "The list of two VPC subnet IDs from the same VPC\\. You must associate subnet IDs to two unique Availability Zones\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" } }, @@ -107006,6 +131136,8 @@ "additionalProperties": false, "properties": { "FlowArn": { + "markdownDescription": "The ARN of one or two MediaConnect flows that are the sources for this MediaConnect input\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FlowArn", "type": "string" } }, @@ -107047,12 +131179,16 @@ "additionalProperties": false, "properties": { "Tags": { + "markdownDescription": "A collection of tags for this input security group\\. Each tag is a key\\-value pair\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" }, "WhitelistRules": { "items": { "$ref": "#/definitions/AWS::MediaLive::InputSecurityGroup.InputWhitelistRuleCidr" }, + "markdownDescription": "The list of IPv4 CIDR addresses to include in the input security group as \"allowed\" addresses\\. \n*Required*: No \n*Type*: List of [InputWhitelistRuleCidr](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-inputsecuritygroup-inputwhitelistrulecidr.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WhitelistRules", "type": "array" } }, @@ -107082,6 +131218,8 @@ "additionalProperties": false, "properties": { "Cidr": { + "markdownDescription": "An IPv4 CIDR range to include in this input security group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cidr", "type": "string" } }, @@ -107123,24 +131261,36 @@ "additionalProperties": false, "properties": { "Id": { + "markdownDescription": "Unique identifier that you assign to the asset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "PackagingGroupId": { + "markdownDescription": "The ID of the packaging group associated with this asset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PackagingGroupId", "type": "string" }, "ResourceId": { + "markdownDescription": "Unique identifier for this asset, as it's configured in the key provider service\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceId", "type": "string" }, "SourceArn": { + "markdownDescription": "The ARN for the source content in Amazon S3\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceArn", "type": "string" }, "SourceRoleArn": { + "markdownDescription": "The ARN for the IAM role that provides AWS Elemental MediaPackage access to the Amazon S3 bucket where the source content is stored\\. Valid format: arn:aws:iam::\\{accountID\\}:role/\\{name\\} \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceRoleArn", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to assign to the asset\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -107177,9 +131327,13 @@ "additionalProperties": false, "properties": { "PackagingConfigurationId": { + "markdownDescription": "The ID of a packaging configuration that's applied to this asset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PackagingConfigurationId", "type": "string" }, "Url": { + "markdownDescription": "The URL that's used to request content from this endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", "type": "string" } }, @@ -107225,24 +131379,34 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "Any descriptive information that you want to add to the channel for future identification purposes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "EgressAccessLogs": { - "$ref": "#/definitions/AWS::MediaPackage::Channel.LogConfiguration" + "$ref": "#/definitions/AWS::MediaPackage::Channel.LogConfiguration", + "markdownDescription": "Configures egress access logs\\. \n*Required*: No \n*Type*: [LogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-channel-logconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EgressAccessLogs" }, "HlsIngest": { "$ref": "#/definitions/AWS::MediaPackage::Channel.HlsIngest" }, "Id": { + "markdownDescription": "Unique identifier that you assign to the channel\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "string" }, "IngressAccessLogs": { - "$ref": "#/definitions/AWS::MediaPackage::Channel.LogConfiguration" + "$ref": "#/definitions/AWS::MediaPackage::Channel.LogConfiguration", + "markdownDescription": "Configures ingress access logs\\. \n*Required*: No \n*Type*: [LogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-channel-logconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IngressAccessLogs" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to assign to the channel\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -107312,6 +131476,8 @@ "additionalProperties": false, "properties": { "LogGroupName": { + "markdownDescription": "Sets a custom Amazon CloudWatch log group name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroupName", "type": "string" } }, @@ -107353,51 +131519,79 @@ "additionalProperties": false, "properties": { "Authorization": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.Authorization" + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.Authorization", + "markdownDescription": "Parameters for CDN authorization\\. \n*Required*: No \n*Type*: [Authorization](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-authorization.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Authorization" }, "ChannelId": { + "markdownDescription": "The ID of the channel associated with this endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelId", "type": "string" }, "CmafPackage": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.CmafPackage" + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.CmafPackage", + "markdownDescription": "Parameters for Common Media Application Format \\(CMAF\\) packaging\\. \n*Required*: No \n*Type*: [CmafPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafpackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CmafPackage" }, "DashPackage": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.DashPackage" + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.DashPackage", + "markdownDescription": "Parameters for DASH packaging\\. \n*Required*: No \n*Type*: [DashPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DashPackage" }, "Description": { + "markdownDescription": "Any descriptive information that you want to add to the endpoint for future identification purposes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "HlsPackage": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsPackage" + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsPackage", + "markdownDescription": "Parameters for Apple HLS packaging\\. \n*Required*: No \n*Type*: [HlsPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsPackage" }, "Id": { + "markdownDescription": "The manifest ID is required and must be unique within the OriginEndpoint\\. The ID can't be changed after the endpoint is created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "string" }, "ManifestName": { + "markdownDescription": "A short string that's appended to the end of the endpoint URL to create a unique path to this endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestName", "type": "string" }, "MssPackage": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.MssPackage" + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.MssPackage", + "markdownDescription": "Parameters for Microsoft Smooth Streaming packaging\\. \n*Required*: No \n*Type*: [MssPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-msspackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MssPackage" }, "Origination": { + "markdownDescription": "Controls video origination from this endpoint\\. \n+ **ALLOW** \\- enables this endpoint to serve content to requesting devices\\.\n+ **DENY** \\- prevents this endpoint from serving content\\. Denying origination is helpful for harvesting live\\-to\\-VOD assets\\. For more information about harvesting and origination, see [Live\\-to\\-VOD Requirements](https://docs.aws.amazon.com/mediapackage/latest/ug/ltov-reqmts.html)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Origination", "type": "string" }, "StartoverWindowSeconds": { + "markdownDescription": "Maximum duration \\(seconds\\) of content to retain for startover playback\\. Omit this attribute or enter `0` to indicate that startover playback is disabled for this endpoint\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartoverWindowSeconds", "type": "number" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to assign to the endpoint\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TimeDelaySeconds": { + "markdownDescription": "Minimum duration \\(seconds\\) of delay to enforce on the playback of live content\\. Omit this attribute or enter `0` to indicate that there is no time delay in effect for this endpoint \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeDelaySeconds", "type": "number" }, "Whitelist": { "items": { "type": "string" }, + "markdownDescription": "The IP addresses that can access this endpoint\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Whitelist", "type": "array" } }, @@ -107432,9 +131626,13 @@ "additionalProperties": false, "properties": { "CdnIdentifierSecret": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the secret in AWS Secrets Manager that your Content Distribution Network \\(CDN\\) uses for authorization to access your endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CdnIdentifierSecret", "type": "string" }, "SecretsRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the IAM role that allows MediaPackage to communicate with AWS Secrets Manager\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsRoleArn", "type": "string" } }, @@ -107448,16 +131646,22 @@ "additionalProperties": false, "properties": { "ConstantInitializationVector": { + "markdownDescription": "An optional 128\\-bit, 16\\-byte hex value represented by a 32\\-character string, used in conjunction with the key for encrypting blocks\\. If you don't specify a value, then MediaPackage creates the constant initialization vector \\(IV\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConstantInitializationVector", "type": "string" }, "EncryptionMethod": { "type": "string" }, "KeyRotationIntervalSeconds": { + "markdownDescription": "Number of seconds before AWS Elemental MediaPackage rotates to a new key\\. By default, rotation is set to 60 seconds\\. Set to `0` to disable key rotation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyRotationIntervalSeconds", "type": "number" }, "SpekeKeyProvider": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider", + "markdownDescription": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpekeKeyProvider" } }, "required": [ @@ -107469,22 +131673,32 @@ "additionalProperties": false, "properties": { "Encryption": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.CmafEncryption" + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.CmafEncryption", + "markdownDescription": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [CmafEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encryption" }, "HlsManifests": { "items": { "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsManifest" }, + "markdownDescription": "A list of HLS manifest configurations that are available from this endpoint\\. \n*Required*: No \n*Type*: List of [HlsManifest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsManifests", "type": "array" }, "SegmentDurationSeconds": { + "markdownDescription": "Duration \\(in seconds\\) of each segment\\. Actual segments are rounded to the nearest multiple of the source segment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentDurationSeconds", "type": "number" }, "SegmentPrefix": { + "markdownDescription": "An optional custom string that is prepended to the name of each segment\\. If not specified, the segment prefix defaults to the ChannelId\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentPrefix", "type": "string" }, "StreamSelection": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection", + "markdownDescription": "Limitations for outputs from the endpoint, based on the video bitrate\\. \n*Required*: No \n*Type*: [StreamSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-streamselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamSelection" } }, "type": "object" @@ -107493,10 +131707,14 @@ "additionalProperties": false, "properties": { "KeyRotationIntervalSeconds": { + "markdownDescription": "Number of seconds before AWS Elemental MediaPackage rotates to a new key\\. By default, rotation is set to 60 seconds\\. Set to `0` to disable key rotation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyRotationIntervalSeconds", "type": "number" }, "SpekeKeyProvider": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider", + "markdownDescription": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpekeKeyProvider" } }, "required": [ @@ -107511,54 +131729,84 @@ "items": { "type": "string" }, + "markdownDescription": "Specifies the SCTE\\-35 message types that MediaPackage treats as ad markers in the output manifest\\. \n Valid values: \n+ **BREAK**\n+ **DISTRIBUTOR\\_ADVERTISEMENT**\n+ **DISTRIBUTOR\\_OVERLAY\\_PLACEMENT\\_OPPORTUNITY**\\.\n+ **DISTRIBUTOR\\_PLACEMENT\\_OPPORTUNITY**\\.\n+ **PROVIDER\\_ADVERTISEMENT**\\.\n+ **PROVIDER\\_OVERLAY\\_PLACEMENT\\_OPPORTUNITY**\\.\n+ **PROVIDER\\_PLACEMENT\\_OPPORTUNITY**\\.\n+ **SPLICE\\_INSERT**\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdTriggers", "type": "array" }, "AdsOnDeliveryRestrictions": { + "markdownDescription": "The flags on SCTE\\-35 segmentation descriptors that have to be present for MediaPackage to insert ad markers in the output manifest\\. For information about SCTE\\-35 in MediaPackage, see [SCTE\\-35 Message Options in AWS Elemental MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/ug/scte.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdsOnDeliveryRestrictions", "type": "string" }, "Encryption": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.DashEncryption" + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.DashEncryption", + "markdownDescription": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [DashEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encryption" }, "IncludeIframeOnlyStream": { "type": "boolean" }, "ManifestLayout": { + "markdownDescription": "Determines the position of some tags in the manifest\\. \nOptions: \n+ **FULL** \\- elements like `SegmentTemplate` and `ContentProtection` are included in each `Representation`\\.\n+ **COMPACT** \\- duplicate elements are combined and presented at the `AdaptationSet` level\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestLayout", "type": "string" }, "ManifestWindowSeconds": { + "markdownDescription": "Time window \\(in seconds\\) contained in each manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestWindowSeconds", "type": "number" }, "MinBufferTimeSeconds": { + "markdownDescription": "Minimum amount of content \\(measured in seconds\\) that a player must keep available in the buffer\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinBufferTimeSeconds", "type": "number" }, "MinUpdatePeriodSeconds": { + "markdownDescription": "Minimum amount of time \\(in seconds\\) that the player should wait before requesting updates to the manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinUpdatePeriodSeconds", "type": "number" }, "PeriodTriggers": { "items": { "type": "string" }, + "markdownDescription": "Controls whether MediaPackage produces single\\-period or multi\\-period DASH manifests\\. For more information about periods, see [Multi\\-period DASH in AWS Elemental MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/ug/multi-period.html)\\. \nValid values: \n+ **ADS** \\- MediaPackage will produce multi\\-period DASH manifests\\. Periods are created based on the SCTE\\-35 ad markers present in the input manifest\\.\n+ *No value* \\- MediaPackage will produce single\\-period DASH manifests\\. This is the default setting\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PeriodTriggers", "type": "array" }, "Profile": { + "markdownDescription": "DASH profile for the output, such as HbbTV\\. \nValid values: \n+ **NONE** \\- the output doesn't use a DASH profile\\.\n+ **HBBTV\\_1\\_5** \\- the output is HbbTV\\-compliant\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Profile", "type": "string" }, "SegmentDurationSeconds": { + "markdownDescription": "Duration \\(in seconds\\) of each fragment\\. Actual fragments are rounded to the nearest multiple of the source fragment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentDurationSeconds", "type": "number" }, "SegmentTemplateFormat": { + "markdownDescription": "Determines the type of variable used in the `media` URL of the `SegmentTemplate` tag in the manifest\\. Also specifies if segment timeline information is included in `SegmentTimeline` or `SegmentTemplate`\\. \n+ **NUMBER\\_WITH\\_TIMELINE** \\- The `$Number$` variable is used in the `media` URL\\. The value of this variable is the sequential number of the segment\\. A full `SegmentTimeline` object is presented in each `SegmentTemplate`\\.\n+ **NUMBER\\_WITH\\_DURATION** \\- The `$Number$` variable is used in the `media` URL and a `duration` attribute is added to the segment template\\. The `SegmentTimeline` object is removed from the representation\\.\n+ **TIME\\_WITH\\_TIMELINE** \\- The `$Time$` variable is used in the `media` URL\\. The value of this variable is the timestamp of when the segment starts\\. A full `SegmentTimeline` object is presented in each `SegmentTemplate`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentTemplateFormat", "type": "string" }, "StreamSelection": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection", + "markdownDescription": "Limitations for outputs from the endpoint, based on the video bitrate\\. \n*Required*: No \n*Type*: [StreamSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-streamselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamSelection" }, "SuggestedPresentationDelaySeconds": { + "markdownDescription": "Amount of time \\(in seconds\\) that the player should be from the live point at the end of the manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuggestedPresentationDelaySeconds", "type": "number" }, "UtcTiming": { + "markdownDescription": "Determines the type of UTC timing included in the DASH Media Presentation Description \\(MPD\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UtcTiming", "type": "string" }, "UtcTimingUri": { + "markdownDescription": "Specifies the value attribute of the UTC timing field when utcTiming is set to HTTP\\-ISO or HTTP\\-HEAD\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UtcTimingUri", "type": "string" } }, @@ -107584,19 +131832,29 @@ "additionalProperties": false, "properties": { "ConstantInitializationVector": { + "markdownDescription": "A 128\\-bit, 16\\-byte hex value represented by a 32\\-character string, used with the key for encrypting blocks\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConstantInitializationVector", "type": "string" }, "EncryptionMethod": { + "markdownDescription": "HLS encryption type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionMethod", "type": "string" }, "KeyRotationIntervalSeconds": { + "markdownDescription": "Number of seconds before AWS Elemental MediaPackage rotates to a new key\\. By default, rotation is set to 60 seconds\\. Set to `0` to disable key rotation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyRotationIntervalSeconds", "type": "number" }, "RepeatExtXKey": { + "markdownDescription": "Repeat the `EXT-X-KEY `directive for every media segment\\. This might result in an increase in client requests to the DRM server\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepeatExtXKey", "type": "boolean" }, "SpekeKeyProvider": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider", + "markdownDescription": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpekeKeyProvider" } }, "required": [ @@ -107608,36 +131866,56 @@ "additionalProperties": false, "properties": { "AdMarkers": { + "markdownDescription": "Controls how ad markers are included in the packaged endpoint\\. Valid values are `none`, `passthrough`, or `scte35_enhanced`\\. \n+ **NONE** \\- omits all SCTE\\-35 ad markers from the output\\.\n+ **PASSTHROUGH** \\- creates a copy in the output of the SCTE\\-35 ad markers \\(comments\\) taken directly from the input manifest\\.\n+ **SCTE35\\_ENHANCED** \\- generates ad markers and blackout tags in the output based on the SCTE\\-35 messages from the input manifest\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdMarkers", "type": "string" }, "AdTriggers": { "items": { "type": "string" }, + "markdownDescription": "Specifies the SCTE\\-35 message types that MediaPackage treats as ad markers in the output manifest\\. \nValid values: \n+ **BREAK**\n+ **DISTRIBUTOR\\_ADVERTISEMENT**\n+ **DISTRIBUTOR\\_OVERLAY\\_PLACEMENT\\_OPPORTUNITY**\n+ **DISTRIBUTOR\\_PLACEMENT\\_OPPORTUNITY**\n+ **PROVIDER\\_ADVERTISEMENT**\n+ **PROVIDER\\_OVERLAY\\_PLACEMENT\\_OPPORTUNITY**\n+ **PROVIDER\\_PLACEMENT\\_OPPORTUNITY**\n+ **SPLICE\\_INSERT**\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdTriggers", "type": "array" }, "AdsOnDeliveryRestrictions": { + "markdownDescription": "The flags on SCTE\\-35 segmentation descriptors that have to be present for MediaPackage to insert ad markers in the output manifest\\. For information about SCTE\\-35 in MediaPackage, see [SCTE\\-35 Message Options in AWS Elemental MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/ug/scte.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdsOnDeliveryRestrictions", "type": "string" }, "Id": { + "markdownDescription": "The manifest ID is required and must be unique within the OriginEndpoint\\. The ID can't be changed after the endpoint is created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "IncludeIframeOnlyStream": { + "markdownDescription": "Applies to stream sets with a single video track only\\. When true, the stream set includes an additional I\\-frame only stream, along with the other tracks\\. If false, this extra stream is not included\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeIframeOnlyStream", "type": "boolean" }, "ManifestName": { + "markdownDescription": "A short string that's appended to the end of the endpoint URL to create a unique path to this endpoint\\. The manifestName on the HLSManifest object overrides the manifestName that you provided on the originEndpoint object\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestName", "type": "string" }, "PlaylistType": { + "markdownDescription": "When specified as either `event` or `vod`, a corresponding `EXT-X-PLAYLIST-TYPE` entry is included in the media playlist\\. Indicates if the playlist is live\\-to\\-VOD content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlaylistType", "type": "string" }, "PlaylistWindowSeconds": { + "markdownDescription": "Time window \\(in seconds\\) contained in each parent manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlaylistWindowSeconds", "type": "number" }, "ProgramDateTimeIntervalSeconds": { + "markdownDescription": "Inserts `EXT-X-PROGRAM-DATE-TIME `tags in the output manifest at the interval that you specify\\. Additionally, ID3Timed metadata messages are generated every 5 seconds starting when the content was ingested\\. \nIrrespective of this parameter, if any ID3Timed metadata is in the HLS input, it is passed through to the HLS output\\. \nOmit this attribute or enter `0` to indicate that the `EXT-X-PROGRAM-DATE-TIME` tags are not included in the manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProgramDateTimeIntervalSeconds", "type": "number" }, "Url": { + "markdownDescription": "The URL that's used to request this manifest from this endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", "type": "string" } }, @@ -107650,42 +131928,64 @@ "additionalProperties": false, "properties": { "AdMarkers": { + "markdownDescription": "Controls how ad markers are included in the packaged endpoint\\. Valid values are `none`, `passthrough`, or `scte35_enhanced`\\. \n+ **NONE** \\- omits all SCTE\\-35 ad markers from the output\\.\n+ **PASSTHROUGH** \\- creates a copy in the output of the SCTE\\-35 ad markers \\(comments\\) taken directly from the input manifest\\.\n+ **SCTE35\\_ENHANCED** \\- generates ad markers and blackout tags in the output based on the SCTE\\-35 messages from the input manifest\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdMarkers", "type": "string" }, "AdTriggers": { "items": { "type": "string" }, + "markdownDescription": "Specifies the SCTE\\-35 message types that MediaPackage treats as ad markers in the output manifest\\. \n Valid values: \n+ **BREAK**\n+ **DISTRIBUTOR\\_ADVERTISEMENT**\n+ **DISTRIBUTOR\\_OVERLAY\\_PLACEMENT\\_OPPORTUNITY**\n+ **DISTRIBUTOR\\_PLACEMENT\\_OPPORTUNITY**\n+ **PROVIDER\\_ADVERTISEMENT**\n+ **PROVIDER\\_OVERLAY\\_PLACEMENT\\_OPPORTUNITY**\n+ **PROVIDER\\_PLACEMENT\\_OPPORTUNITY**\n+ **SPLICE\\_INSERT**\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdTriggers", "type": "array" }, "AdsOnDeliveryRestrictions": { + "markdownDescription": "The flags on SCTE\\-35 segmentation descriptors that have to be present for MediaPackage to insert ad markers in the output manifest\\. For information about SCTE\\-35 in MediaPackage, see [SCTE\\-35 Message Options in AWS Elemental MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/ug/scte.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdsOnDeliveryRestrictions", "type": "string" }, "Encryption": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsEncryption" + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsEncryption", + "markdownDescription": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [HlsEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encryption" }, "IncludeDvbSubtitles": { "type": "boolean" }, "IncludeIframeOnlyStream": { + "markdownDescription": "Only applies to stream sets with a single video track\\. When true, the stream set includes an additional I\\-frame only stream, along with the other tracks\\. If false, this extra stream is not included\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeIframeOnlyStream", "type": "boolean" }, "PlaylistType": { + "markdownDescription": "When specified as either `event` or `vod`, a corresponding `EXT-X-PLAYLIST-TYPE` entry is included in the media playlist\\. Indicates if the playlist is live\\-to\\-VOD content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlaylistType", "type": "string" }, "PlaylistWindowSeconds": { + "markdownDescription": "Time window \\(in seconds\\) contained in each parent manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlaylistWindowSeconds", "type": "number" }, "ProgramDateTimeIntervalSeconds": { + "markdownDescription": "Inserts `EXT-X-PROGRAM-DATE-TIME` tags in the output manifest at the interval that you specify\\. Additionally, ID3Timed metadata messages are generated every 5 seconds starting when the content was ingested\\. \nIrrespective of this parameter, if any ID3Timed metadata is in the HLS input, it is passed through to the HLS output\\. \nOmit this attribute or enter `0` to indicate that the `EXT-X-PROGRAM-DATE-TIME` tags are not included in the manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProgramDateTimeIntervalSeconds", "type": "number" }, "SegmentDurationSeconds": { + "markdownDescription": "Duration \\(in seconds\\) of each fragment\\. Actual fragments are rounded to the nearest multiple of the source fragment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentDurationSeconds", "type": "number" }, "StreamSelection": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection", + "markdownDescription": "Limitations for outputs from the endpoint, based on the video bitrate\\. \n*Required*: No \n*Type*: [StreamSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-streamselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamSelection" }, "UseAudioRenditionGroup": { + "markdownDescription": "When true, AWS Elemental MediaPackage bundles all audio tracks in a rendition group\\. All other tracks in the stream can be used with any audio rendition from the group\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseAudioRenditionGroup", "type": "boolean" } }, @@ -107695,7 +131995,9 @@ "additionalProperties": false, "properties": { "SpekeKeyProvider": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider", + "markdownDescription": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpekeKeyProvider" } }, "required": [ @@ -107707,16 +132009,24 @@ "additionalProperties": false, "properties": { "Encryption": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.MssEncryption" + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.MssEncryption", + "markdownDescription": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [MssEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-mssencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encryption" }, "ManifestWindowSeconds": { + "markdownDescription": "Time window \\(in seconds\\) contained in each manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestWindowSeconds", "type": "number" }, "SegmentDurationSeconds": { + "markdownDescription": "Duration \\(in seconds\\) of each fragment\\. Actual fragments are rounded to the nearest multiple of the source fragment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentDurationSeconds", "type": "number" }, "StreamSelection": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection", + "markdownDescription": "Limitations for outputs from the endpoint, based on the video bitrate\\. \n*Required*: No \n*Type*: [StreamSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-streamselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamSelection" } }, "type": "object" @@ -107725,24 +132035,34 @@ "additionalProperties": false, "properties": { "CertificateArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the certificate that you imported to AWS Certificate Manager to add content key encryption to this endpoint\\. For this feature to work, your DRM key provider must support content key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateArn", "type": "string" }, "EncryptionContractConfiguration": { "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.EncryptionContractConfiguration" }, "ResourceId": { + "markdownDescription": "Unique identifier for this endpoint, as it is configured in the key provider service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceId", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN for the IAM role that's granted by the key provider to provide access to the key provider API\\. This role must have a trust policy that allows AWS Elemental MediaPackage to assume the role, and it must have a sufficient permissions policy to allow access to the specific key retrieval URL\\. Valid format: arn:aws:iam::\\{accountID\\}:role/\\{name\\} \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "SystemIds": { "items": { "type": "string" }, + "markdownDescription": "List of unique identifiers for the DRM systems to use, as defined in the CPIX specification\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SystemIds", "type": "array" }, "Url": { + "markdownDescription": "URL for the key provider\u2019s key retrieval API endpoint\\. Must start with https://\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", "type": "string" } }, @@ -107758,12 +132078,18 @@ "additionalProperties": false, "properties": { "MaxVideoBitsPerSecond": { + "markdownDescription": "The upper limit of the bitrates that this endpoint serves\\. If the video track exceeds this threshold, then AWS Elemental MediaPackage excludes it from output\\. If you don't specify a value, it defaults to 2147483647 bits per second\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxVideoBitsPerSecond", "type": "number" }, "MinVideoBitsPerSecond": { + "markdownDescription": "The lower limit of the bitrates that this endpoint serves\\. If the video track is below this threshold, then AWS Elemental MediaPackage excludes it from output\\. If you don't specify a value, it defaults to 0 bits per second\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinVideoBitsPerSecond", "type": "number" }, "StreamOrder": { + "markdownDescription": "Order in which the different video bitrates are presented to the player\\. \nValid values: **ORIGINAL**, **VIDEO\\_BITRATE\\_ASCENDING**, **VIDEO\\_BITRATE\\_DESCENDING**\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamOrder", "type": "string" } }, @@ -107805,27 +132131,41 @@ "additionalProperties": false, "properties": { "CmafPackage": { - "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.CmafPackage" + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.CmafPackage", + "markdownDescription": "Parameters for CMAF packaging\\. \n*Required*: No \n*Type*: [CmafPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-cmafpackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CmafPackage" }, "DashPackage": { - "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashPackage" + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashPackage", + "markdownDescription": "Parameters for DASH\\-ISO packaging\\. \n*Required*: No \n*Type*: [DashPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashpackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DashPackage" }, "HlsPackage": { - "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsPackage" + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsPackage", + "markdownDescription": "Parameters for Apple HLS packaging\\. \n*Required*: No \n*Type*: [HlsPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlspackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsPackage" }, "Id": { + "markdownDescription": "Unique identifier that you assign to the packaging configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "string" }, "MssPackage": { - "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssPackage" + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssPackage", + "markdownDescription": "Parameters for Microsoft Smooth Streaming packaging\\. \n*Required*: No \n*Type*: [MssPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-msspackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MssPackage" }, "PackagingGroupId": { + "markdownDescription": "The ID of the packaging group associated with this packaging configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PackagingGroupId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to assign to the packaging configuration\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -107860,7 +132200,9 @@ "additionalProperties": false, "properties": { "SpekeKeyProvider": { - "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider" + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider", + "markdownDescription": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpekeKeyProvider" } }, "required": [ @@ -107872,18 +132214,26 @@ "additionalProperties": false, "properties": { "Encryption": { - "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.CmafEncryption" + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.CmafEncryption", + "markdownDescription": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [CmafEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-cmafencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encryption" }, "HlsManifests": { "items": { "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsManifest" }, + "markdownDescription": "A list of HLS manifest configurations that are available from this endpoint\\. \n*Required*: Yes \n*Type*: List of [HlsManifest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsmanifest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsManifests", "type": "array" }, "IncludeEncoderConfigurationInSegments": { + "markdownDescription": "When includeEncoderConfigurationInSegments is set to true, MediaPackage places your encoder's Sequence Parameter Set \\(SPS\\), Picture Parameter Set \\(PPS\\), and Video Parameter Set \\(VPS\\) metadata in every video segment instead of in the init fragment\\. This lets you use different SPS/PPS/VPS settings for your assets during content playback\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeEncoderConfigurationInSegments", "type": "boolean" }, "SegmentDurationSeconds": { + "markdownDescription": "Duration \\(in seconds\\) of each segment\\. Actual segments are rounded to the nearest multiple of the source fragment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentDurationSeconds", "type": "number" } }, @@ -107896,7 +132246,9 @@ "additionalProperties": false, "properties": { "SpekeKeyProvider": { - "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider" + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider", + "markdownDescription": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpekeKeyProvider" } }, "required": [ @@ -107908,22 +132260,32 @@ "additionalProperties": false, "properties": { "ManifestLayout": { + "markdownDescription": "Determines the position of some tags in the Media Presentation Description \\(MPD\\)\\. When set to **FULL**, elements like `SegmentTemplate` and `ContentProtection` are included in each `Representation`\\. When set to **COMPACT**, duplicate elements are combined and presented at the AdaptationSet level\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestLayout", "type": "string" }, "ManifestName": { + "markdownDescription": "A short string that's appended to the end of the endpoint URL to create a unique path to this packaging configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestName", "type": "string" }, "MinBufferTimeSeconds": { + "markdownDescription": "Minimum amount of content \\(measured in seconds\\) that a player must keep available in the buffer\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinBufferTimeSeconds", "type": "number" }, "Profile": { + "markdownDescription": "The DASH profile type\\. When set to **HBBTV\\_1\\_5**, the content is compliant with HbbTV 1\\.5\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Profile", "type": "string" }, "ScteMarkersSource": { "type": "string" }, "StreamSelection": { - "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection" + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection", + "markdownDescription": "Limitations for outputs from the endpoint, based on the video bitrate\\. \n*Required*: No \n*Type*: [StreamSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-streamselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamSelection" } }, "type": "object" @@ -107935,12 +132297,18 @@ "items": { "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashManifest" }, + "markdownDescription": "A list of DASH manifest configurations that are available from this endpoint\\. \n*Required*: Yes \n*Type*: List of [DashManifest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashmanifest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DashManifests", "type": "array" }, "Encryption": { - "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashEncryption" + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashEncryption", + "markdownDescription": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [DashEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encryption" }, "IncludeEncoderConfigurationInSegments": { + "markdownDescription": "When includeEncoderConfigurationInSegments is set to true, MediaPackage places your encoder's Sequence Parameter Set \\(SPS\\), Picture Parameter Set \\(PPS\\), and Video Parameter Set \\(VPS\\) metadata in every video segment instead of in the init fragment\\. This lets you use different SPS/PPS/VPS settings for your assets during content playback\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeEncoderConfigurationInSegments", "type": "boolean" }, "IncludeIframeOnlyStream": { @@ -107950,12 +132318,18 @@ "items": { "type": "string" }, + "markdownDescription": "Controls whether MediaPackage produces single\\-period or multi\\-period DASH manifests\\. For more information about periods, see [Multi\\-period DASH in AWS Elemental MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/ug/multi-period.html)\\. \nValid values: \n+ **ADS** \\- MediaPackage will produce multi\\-period DASH manifests\\. Periods are created based on the SCTE\\-35 ad markers present in the input manifest\\.\n+ *No value* \\- MediaPackage will produce single\\-period DASH manifests\\. This is the default setting\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PeriodTriggers", "type": "array" }, "SegmentDurationSeconds": { + "markdownDescription": "Duration \\(in seconds\\) of each fragment\\. Actual fragments are rounded to the nearest multiple of the source segment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentDurationSeconds", "type": "number" }, "SegmentTemplateFormat": { + "markdownDescription": "Determines the type of SegmentTemplate included in the Media Presentation Description \\(MPD\\)\\. When set to **NUMBER\\_WITH\\_TIMELINE**, a full timeline is presented in each SegmentTemplate, with $Number$ media URLs\\. When set to **TIME\\_WITH\\_TIMELINE**, a full timeline is presented in each SegmentTemplate, with $Time$ media URLs\\. When set to **NUMBER\\_WITH\\_DURATION**, only a duration is included in each SegmentTemplate, with $Number$ media URLs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentTemplateFormat", "type": "string" } }, @@ -107984,13 +132358,19 @@ "additionalProperties": false, "properties": { "ConstantInitializationVector": { + "markdownDescription": "A 128\\-bit, 16\\-byte hex value represented by a 32\\-character string, used with the key for encrypting blocks\\. If you don't specify a constant initialization vector \\(IV\\), MediaPackage periodically rotates the IV\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConstantInitializationVector", "type": "string" }, "EncryptionMethod": { + "markdownDescription": "HLS encryption type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionMethod", "type": "string" }, "SpekeKeyProvider": { - "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider" + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider", + "markdownDescription": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpekeKeyProvider" } }, "required": [ @@ -108002,22 +132382,34 @@ "additionalProperties": false, "properties": { "AdMarkers": { + "markdownDescription": "This setting controls ad markers in the packaged content\\. **NONE** omits SCTE\\-35 ad markers from the output\\. **PASSTHROUGH** copies SCTE\\-35 ad markers from the source content to the output\\. **SCTE35\\_ENHANCED** generates ad markers and blackout tags in the output, based on SCTE\\-35 messages in the source content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdMarkers", "type": "string" }, "IncludeIframeOnlyStream": { + "markdownDescription": "Applies to stream sets with a single video track only\\. When enabled, the output includes an additional I\\-frame only stream, along with the other tracks\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeIframeOnlyStream", "type": "boolean" }, "ManifestName": { + "markdownDescription": "A short string that's appended to the end of the endpoint URL to create a unique path to this packaging configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestName", "type": "string" }, "ProgramDateTimeIntervalSeconds": { + "markdownDescription": "Inserts `EXT-X-PROGRAM-DATE-TIME` tags in the output manifest at the interval that you specify\\. Additionally, ID3Timed metadata messages are generated every 5 seconds starting when the content was ingested\\. \nIrrespective of this parameter, if any ID3Timed metadata is in the HLS input, it is passed through to the HLS output\\. \nOmit this attribute or enter `0` to indicate that the `EXT-X-PROGRAM-DATE-TIME` tags are not included in the manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProgramDateTimeIntervalSeconds", "type": "number" }, "RepeatExtXKey": { + "markdownDescription": "Repeat the `EXT-X-KEY` directive for every media segment\\. This might result in an increase in client requests to the DRM server\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepeatExtXKey", "type": "boolean" }, "StreamSelection": { - "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection" + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection", + "markdownDescription": "Video bitrate limitations for outputs from this packaging configuration\\. \n*Required*: No \n*Type*: [StreamSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-streamselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamSelection" } }, "type": "object" @@ -108026,21 +132418,29 @@ "additionalProperties": false, "properties": { "Encryption": { - "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsEncryption" + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsEncryption", + "markdownDescription": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [HlsEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encryption" }, "HlsManifests": { "items": { "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsManifest" }, + "markdownDescription": "A list of HLS manifest configurations that are available from this endpoint\\. \n*Required*: Yes \n*Type*: List of [HlsManifest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsmanifest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsManifests", "type": "array" }, "IncludeDvbSubtitles": { "type": "boolean" }, "SegmentDurationSeconds": { + "markdownDescription": "Duration \\(in seconds\\) of each fragment\\. Actual fragments are rounded to the nearest multiple of the source fragment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentDurationSeconds", "type": "number" }, "UseAudioRenditionGroup": { + "markdownDescription": "When true, AWS Elemental MediaPackage bundles all audio tracks in a rendition group\\. All other tracks in the stream can be used with any audio rendition from the group\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseAudioRenditionGroup", "type": "boolean" } }, @@ -108053,7 +132453,9 @@ "additionalProperties": false, "properties": { "SpekeKeyProvider": { - "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider" + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider", + "markdownDescription": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpekeKeyProvider" } }, "required": [ @@ -108065,10 +132467,14 @@ "additionalProperties": false, "properties": { "ManifestName": { + "markdownDescription": "A short string that's appended to the end of the endpoint URL to create a unique path to this packaging configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestName", "type": "string" }, "StreamSelection": { - "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection" + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection", + "markdownDescription": "Video bitrate limitations for outputs from this packaging configuration\\. \n*Required*: No \n*Type*: [StreamSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-streamselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamSelection" } }, "type": "object" @@ -108077,15 +132483,21 @@ "additionalProperties": false, "properties": { "Encryption": { - "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssEncryption" + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssEncryption", + "markdownDescription": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [MssEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-mssencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encryption" }, "MssManifests": { "items": { "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssManifest" }, + "markdownDescription": "A list of Microsoft Smooth manifest configurations that are available from this endpoint\\. \n*Required*: Yes \n*Type*: List of [MssManifest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-mssmanifest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MssManifests", "type": "array" }, "SegmentDurationSeconds": { + "markdownDescription": "Duration \\(in seconds\\) of each fragment\\. Actual fragments are rounded to the nearest multiple of the source fragment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentDurationSeconds", "type": "number" } }, @@ -108101,15 +132513,21 @@ "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.EncryptionContractConfiguration" }, "RoleArn": { + "markdownDescription": "The ARN for the IAM role that's granted by the key provider to provide access to the key provider API\\. Valid format: arn:aws:iam::\\{accountID\\}:role/\\{name\\} \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "SystemIds": { "items": { "type": "string" }, + "markdownDescription": "List of unique identifiers for the DRM systems to use, as defined in the CPIX specification\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SystemIds", "type": "array" }, "Url": { + "markdownDescription": "URL for the key provider's key retrieval API endpoint\\. Must start with https://\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", "type": "string" } }, @@ -108124,12 +132542,18 @@ "additionalProperties": false, "properties": { "MaxVideoBitsPerSecond": { + "markdownDescription": "The upper limit of the bitrates that this endpoint serves\\. If the video track exceeds this threshold, then AWS Elemental MediaPackage excludes it from output\\. If you don't specify a value, it defaults to 2147483647 bits per second\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxVideoBitsPerSecond", "type": "number" }, "MinVideoBitsPerSecond": { + "markdownDescription": "The lower limit of the bitrates that this endpoint serves\\. If the video track is below this threshold, then AWS Elemental MediaPackage excludes it from output\\. If you don't specify a value, it defaults to 0 bits per second\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinVideoBitsPerSecond", "type": "number" }, "StreamOrder": { + "markdownDescription": "Order in which the different video bitrates are presented to the player\\. \nValid values: **ORIGINAL**, **VIDEO\\_BITRATE\\_ASCENDING**, **VIDEO\\_BITRATE\\_DESCENDING**\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamOrder", "type": "string" } }, @@ -108171,18 +132595,26 @@ "additionalProperties": false, "properties": { "Authorization": { - "$ref": "#/definitions/AWS::MediaPackage::PackagingGroup.Authorization" + "$ref": "#/definitions/AWS::MediaPackage::PackagingGroup.Authorization", + "markdownDescription": "Parameters for CDN authorization\\. \n*Required*: No \n*Type*: [Authorization](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packaginggroup-authorization.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Authorization" }, "EgressAccessLogs": { - "$ref": "#/definitions/AWS::MediaPackage::PackagingGroup.LogConfiguration" + "$ref": "#/definitions/AWS::MediaPackage::PackagingGroup.LogConfiguration", + "markdownDescription": "The configuration parameters for egress access logging\\. \n*Required*: No \n*Type*: [LogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packaginggroup-logconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EgressAccessLogs" }, "Id": { + "markdownDescription": "Unique identifier that you assign to the packaging group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to assign to the packaging group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -108216,9 +132648,13 @@ "additionalProperties": false, "properties": { "CdnIdentifierSecret": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the secret in AWS Secrets Manager that is used for CDN authorization\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CdnIdentifierSecret", "type": "string" }, "SecretsRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the IAM role that allows MediaPackage to communicate with AWS Secrets Manager\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsRoleArn", "type": "string" } }, @@ -108232,6 +132668,8 @@ "additionalProperties": false, "properties": { "LogGroupName": { + "markdownDescription": "Sets a custom Amazon CloudWatch log group name for egress logs\\. If a log group name isn't specified, the default name is used: /aws/MediaPackage/EgressAccessLogs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroupName", "type": "string" } }, @@ -108273,30 +132711,44 @@ "additionalProperties": false, "properties": { "AccessLoggingEnabled": { + "markdownDescription": "The state of access logging on the container\\. This value is `false` by default, indicating that AWS Elemental MediaStore does not send access logs to Amazon CloudWatch Logs\\. When you enable access logging on the container, MediaStore changes this value to `true`, indicating that the service delivers access logs for objects stored in that container to CloudWatch Logs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessLoggingEnabled", "type": "boolean" }, "ContainerName": { + "markdownDescription": "The name for the container\\. The name must be from 1 to 255 characters\\. Container names must be unique to your AWS account within a specific region\\. As an example, you could create a container named `movies` in every region, as long as you don\u2019t have an existing container with that name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\w-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerName", "type": "string" }, "CorsPolicy": { "items": { "$ref": "#/definitions/AWS::MediaStore::Container.CorsRule" }, + "markdownDescription": "Sets the cross\\-origin resource sharing \\(CORS\\) configuration on a container so that the container can service cross\\-origin requests\\. For example, you might want to enable a request whose origin is http://www\\.example\\.com to access your AWS Elemental MediaStore container at my\\.example\\.container\\.com by using the browser's XMLHttpRequest capability\\. \nTo enable CORS on a container, you attach a CORS policy to the container\\. In the CORS policy, you configure rules that identify origins and the HTTP methods that can be executed on your container\\. The policy can contain up to 398,000 characters\\. You can add up to 100 rules to a CORS policy\\. If more than one rule applies, the service uses the first applicable rule listed\\. \nTo learn more about CORS, see [Cross\\-Origin Resource Sharing \\(CORS\\) in AWS Elemental MediaStore](https://docs.aws.amazon.com/mediastore/latest/ug/cors-policy.html)\\. \n*Required*: No \n*Type*: List of [CorsRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-corsrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CorsPolicy", "type": "array" }, "LifecyclePolicy": { + "markdownDescription": "Writes an object lifecycle policy to a container\\. If the container already has an object lifecycle policy, the service replaces the existing policy with the new policy\\. It takes up to 20 minutes for the change to take effect\\. \nFor information about how to construct an object lifecycle policy, see [Components of an Object Lifecycle Policy](https://docs.aws.amazon.com/mediastore/latest/ug/policies-object-lifecycle-components.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LifecyclePolicy", "type": "string" }, "MetricPolicy": { - "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicy" + "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicy", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [MetricPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-metricpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricPolicy" }, "Policy": { + "markdownDescription": "Creates an access policy for the specified container to restrict the users and clients that can access it\\. For information about the data that is included in an access policy, see the [AWS Identity and Access Management User Guide](https://docs.aws.amazon.com/iam/)\\. \nFor this release of the REST API, you can create only one policy for a container\\. If you enter `PutContainerPolicy` twice, the second command modifies the existing policy\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policy", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -108333,27 +132785,37 @@ "items": { "type": "string" }, + "markdownDescription": "Specifies which headers are allowed in a preflight `OPTIONS` request through the `Access-Control-Request-Headers` header\\. Each header name that is specified in `Access-Control-Request-Headers` must have a corresponding entry in the rule\\. Only the headers that were requested are sent back\\. \nThis element can contain only one wildcard character \\(\\*\\)\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedHeaders", "type": "array" }, "AllowedMethods": { "items": { "type": "string" }, + "markdownDescription": "Identifies an HTTP method that the origin that is specified in the rule is allowed to execute\\. \nEach CORS rule must contain at least one `AllowedMethods` and one `AllowedOrigins` element\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AllowedMethods", "type": "array" }, "AllowedOrigins": { "items": { "type": "string" }, + "markdownDescription": "One or more response headers that you want users to be able to access from their applications \\(for example, from a JavaScript `XMLHttpRequest` object\\)\\. \nEach CORS rule must have at least one `AllowedOrigins` element\\. The string value can include only one wildcard character \\(\\*\\), for example, http://\\*\\.example\\.com\\. Additionally, you can specify only one wildcard character to allow cross\\-origin access for all origins\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedOrigins", "type": "array" }, "ExposeHeaders": { "items": { "type": "string" }, + "markdownDescription": "One or more headers in the response that you want users to be able to access from their applications \\(for example, from a JavaScript `XMLHttpRequest` object\\)\\. \nThis element is optional for each rule\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExposeHeaders", "type": "array" }, "MaxAgeSeconds": { + "markdownDescription": "The time in seconds that your browser caches the preflight response for the specified resource\\. \nA CORS rule can have only one `MaxAgeSeconds` element\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxAgeSeconds", "type": "number" } }, @@ -108363,12 +132825,16 @@ "additionalProperties": false, "properties": { "ContainerLevelMetrics": { + "markdownDescription": "A setting to enable or disable metrics at the container level\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerLevelMetrics", "type": "string" }, "MetricPolicyRules": { "items": { "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicyRule" }, + "markdownDescription": "A parameter that holds an array of rules that enable metrics at the object level\\. This parameter is optional, but if you choose to include it, you must also include at least one rule\\. By default, you can include up to five rules\\. You can also [request a quota increase](https://console.aws.amazon.com/servicequotas/home?region=us-east-1#!/services/mediastore/quotas) to allow up to 300 rules per policy\\. \n*Required*: No \n*Type*: List of [MetricPolicyRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-metricpolicyrule.html) \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricPolicyRules", "type": "array" } }, @@ -108381,9 +132847,13 @@ "additionalProperties": false, "properties": { "ObjectGroup": { + "markdownDescription": "A path or file name that defines which objects to include in the group\\. Wildcards \\(\\*\\) are acceptable\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `900` \n*Pattern*: `/?(?:[A-Za-z0-9_=:\\.\\-\\~\\*]+/){0,10}(?:[A-Za-z0-9_=:\\.\\-\\~\\*]+)?/?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectGroup", "type": "string" }, "ObjectGroupName": { + "markdownDescription": "A name that allows you to refer to the object group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `30` \n*Pattern*: `[a-zA-Z0-9_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectGroupName", "type": "string" } }, @@ -108637,18 +133107,24 @@ "additionalProperties": false, "properties": { "ACLName": { + "markdownDescription": "The name of the Access Control List\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ACLName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "UserNames": { "items": { "type": "string" }, + "markdownDescription": "The list of users that belong to the Access Control List\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserNames", "type": "array" } }, @@ -108714,87 +133190,133 @@ "additionalProperties": false, "properties": { "ACLName": { + "markdownDescription": "The name of the Access Control List to associate with the cluster\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Pattern*: `[a-zA-Z][a-zA-Z0-9\\-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ACLName", "type": "string" }, "AutoMinorVersionUpgrade": { + "markdownDescription": "When set to true, the cluster will automatically receive minor engine version upgrades after launch\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoMinorVersionUpgrade", "type": "boolean" }, "ClusterEndpoint": { "$ref": "#/definitions/AWS::MemoryDB::Cluster.Endpoint" }, "ClusterName": { + "markdownDescription": "The name of the cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterName", "type": "string" }, "DataTiering": { "type": "string" }, "Description": { + "markdownDescription": "A description of the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "EngineVersion": { + "markdownDescription": "The Redis engine version used by the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EngineVersion", "type": "string" }, "FinalSnapshotName": { + "markdownDescription": "The user\\-supplied name of a final cluster snapshot\\. This is the unique name that identifies the snapshot\\. MemoryDB creates the snapshot, and then deletes the cluster immediately afterward\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FinalSnapshotName", "type": "string" }, "KmsKeyId": { + "markdownDescription": "The ID of the KMS key used to encrypt the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" }, "MaintenanceWindow": { + "markdownDescription": "Specifies the weekly time range during which maintenance on the cluster is performed\\. It is specified as a range in the format `ddd:hh24:mi-ddd:hh24:mi` \\(24H Clock UTC\\)\\. The minimum maintenance window is a 60 minute period\\. \n*Pattern*: `ddd:hh24:mi-ddd:hh24:mi` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaintenanceWindow", "type": "string" }, "NodeType": { + "markdownDescription": "The cluster's node type\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NodeType", "type": "string" }, "NumReplicasPerShard": { + "markdownDescription": "The number of replicas to apply to each shard\\. \n*Default value*: `1` \n*Maximum value*: `5` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumReplicasPerShard", "type": "number" }, "NumShards": { + "markdownDescription": "The number of shards in the cluster\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumShards", "type": "number" }, "ParameterGroupName": { + "markdownDescription": "The name of the parameter group used by the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterGroupName", "type": "string" }, "Port": { + "markdownDescription": "The port used by the cluster\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Port", "type": "number" }, "SecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "A list of security group names to associate with this cluster\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "SnapshotArns": { "items": { "type": "string" }, + "markdownDescription": "A list of Amazon Resource Names \\(ARN\\) that uniquely identify the RDB snapshot files stored in Amazon S3\\. The snapshot files are used to populate the new cluster\\. The Amazon S3 object name in the ARN cannot contain any commas\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotArns", "type": "array" }, "SnapshotName": { + "markdownDescription": "The name of a snapshot from which to restore data into the new cluster\\. The snapshot status changes to restoring while the new cluster is being created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotName", "type": "string" }, "SnapshotRetentionLimit": { + "markdownDescription": "The number of days for which MemoryDB retains automatic snapshots before deleting them\\. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotRetentionLimit", "type": "number" }, "SnapshotWindow": { + "markdownDescription": "The daily time range \\(in UTC\\) during which MemoryDB begins taking a daily snapshot of your shard\\. Example: 05:00\\-09:00 If you do not specify this parameter, MemoryDB automatically chooses an appropriate time range\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotWindow", "type": "string" }, "SnsTopicArn": { + "markdownDescription": "When you pass the logical ID of this resource to the intrinsic `Ref` function, Ref returns the ARN of the SNS topic, such as `arn:aws:memorydb:us-east-1:123456789012:mySNSTopic` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsTopicArn", "type": "string" }, "SnsTopicStatus": { + "markdownDescription": "The SNS topic must be in Active status to receive notifications\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsTopicStatus", "type": "string" }, "SubnetGroupName": { + "markdownDescription": "The name of the subnet group used by the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetGroupName", "type": "string" }, "TLSEnabled": { + "markdownDescription": "A flag to indicate if In\\-transit encryption is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TLSEnabled", "type": "boolean" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -108830,9 +133352,13 @@ "additionalProperties": false, "properties": { "Address": { + "markdownDescription": "The DNS hostname of the node\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Address", "type": "string" }, "Port": { + "markdownDescription": "The port number that the engine is listening on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" } }, @@ -108874,21 +133400,31 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the parameter group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "Family": { + "markdownDescription": "The name of the parameter group family that this parameter group is compatible with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Family", "type": "string" }, "ParameterGroupName": { + "markdownDescription": "The name of the parameter group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ParameterGroupName", "type": "string" }, "Parameters": { + "markdownDescription": "Returns the detailed parameter list for the parameter group\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "object" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -108955,21 +133491,29 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the subnet group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "SubnetGroupName": { + "markdownDescription": "The name of the subnet group to be used for the cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetGroupName", "type": "string" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "A list of Amazon VPC subnet IDs for the subnet group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -109036,18 +133580,26 @@ "additionalProperties": false, "properties": { "AccessString": { + "markdownDescription": "Access permissions string used for this user\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessString", "type": "string" }, "AuthenticationMode": { - "$ref": "#/definitions/AWS::MemoryDB::User.AuthenticationMode" + "$ref": "#/definitions/AWS::MemoryDB::User.AuthenticationMode", + "markdownDescription": "Denotes whether the user requires a password to authenticate\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticationMode" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "UserName": { + "markdownDescription": "The name of the user\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserName", "type": "string" } }, @@ -109133,81 +133685,125 @@ "items": { "$ref": "#/definitions/AWS::Neptune::DBCluster.DBClusterRole" }, + "markdownDescription": "Provides a list of the Amazon Identity and Access Management \\(IAM\\) roles that are associated with the DB cluster\\. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon services on your behalf\\. \n*Required*: No \n*Type*: List of [DBClusterRole](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-neptune-dbcluster-dbclusterrole.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociatedRoles", "type": "array" }, "AvailabilityZones": { "items": { "type": "string" }, + "markdownDescription": "Provides the list of EC2 Availability Zones that instances in the DB cluster can be created in\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZones", "type": "array" }, "BackupRetentionPeriod": { + "markdownDescription": "Specifies the number of days for which automatic DB snapshots are retained\\. \nAn update may require some interruption\\. See [ModifyDBInstance](https://docs.aws.amazon.com/neptune/latest/userguide/api-instances.html#ModifyDBInstance) in the Amazon Neptune User Guide for more information\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackupRetentionPeriod", "type": "number" }, "DBClusterIdentifier": { + "markdownDescription": "Contains a user\\-supplied DB cluster identifier\\. This identifier is the unique key that identifies a DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBClusterIdentifier", "type": "string" }, "DBClusterParameterGroupName": { + "markdownDescription": "Provides the name of the DB cluster parameter group\\. \nAn update may require some interruption\\. See [ModifyDBInstance](https://docs.aws.amazon.com/neptune/latest/userguide/api-instances.html#ModifyDBInstance) in the Amazon Neptune User Guide for more information\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBClusterParameterGroupName", "type": "string" }, "DBSubnetGroupName": { + "markdownDescription": "Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBSubnetGroupName", "type": "string" }, "DeletionProtection": { + "markdownDescription": "Indicates whether or not the DB cluster has deletion protection enabled\\. The database can't be deleted when deletion protection is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeletionProtection", "type": "boolean" }, "EnableCloudwatchLogsExports": { "items": { "type": "string" }, + "markdownDescription": "Specifies a list of log types that are enabled for export to CloudWatch Logs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableCloudwatchLogsExports", "type": "array" }, "EngineVersion": { + "markdownDescription": "Indicates the database engine version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineVersion", "type": "string" }, "IamAuthEnabled": { + "markdownDescription": "True if mapping of Amazon Identity and Access Management \\(IAM\\) accounts to database accounts is enabled, and otherwise false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamAuthEnabled", "type": "boolean" }, "KmsKeyId": { + "markdownDescription": "If `StorageEncrypted` is true, the Amazon KMS key identifier for the encrypted DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" }, "Port": { + "markdownDescription": "Specifies the port that the database engine is listening on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" }, "PreferredBackupWindow": { + "markdownDescription": "Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the `BackupRetentionPeriod`\\. \nAn update may require some interruption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredBackupWindow", "type": "string" }, "PreferredMaintenanceWindow": { + "markdownDescription": "Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time \\(UTC\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", "type": "string" }, "RestoreToTime": { + "markdownDescription": "Creates a new DB cluster from a DB snapshot or DB cluster snapshot\\. \nIf a DB snapshot is specified, the target DB cluster is created from the source DB snapshot with a default configuration and default security group\\. \nIf a DB cluster snapshot is specified, the target DB cluster is created from the source DB cluster restore point with the same configuration as the original source DB cluster, except that the new DB cluster is created with the default security group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestoreToTime", "type": "string" }, "RestoreType": { + "markdownDescription": "Creates a new DB cluster from a DB snapshot or DB cluster snapshot\\. \nIf a DB snapshot is specified, the target DB cluster is created from the source DB snapshot with a default configuration and default security group\\. \nIf a DB cluster snapshot is specified, the target DB cluster is created from the source DB cluster restore point with the same configuration as the original source DB cluster, except that the new DB cluster is created with the default security group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestoreType", "type": "string" }, "SnapshotIdentifier": { + "markdownDescription": "Specifies the identifier for a DB cluster snapshot\\. Must match the identifier of an existing snapshot\\. \nAfter you restore a DB cluster using a `SnapshotIdentifier`, you must specify the same `SnapshotIdentifier` for any future updates to the DB cluster\\. When you specify this property for an update, the DB cluster is not restored from the snapshot again, and the data in the database is not changed\\. \nHowever, if you don't specify the `SnapshotIdentifier`, an empty DB cluster is created, and the original DB cluster is deleted\\. If you specify a property that is different from the previous snapshot restore property, the DB cluster is restored from the snapshot specified by the `SnapshotIdentifier`, and the original DB cluster is deleted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotIdentifier", "type": "string" }, "SourceDBClusterIdentifier": { + "markdownDescription": "Creates a new DB cluster from a DB snapshot or DB cluster snapshot\\. \nIf a DB snapshot is specified, the target DB cluster is created from the source DB snapshot with a default configuration and default security group\\. \nIf a DB cluster snapshot is specified, the target DB cluster is created from the source DB cluster restore point with the same configuration as the original source DB cluster, except that the new DB cluster is created with the default security group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceDBClusterIdentifier", "type": "string" }, "StorageEncrypted": { + "markdownDescription": "Indicates whether the DB cluster is encrypted\\. \nIf you specify the `DBClusterIdentifier`, `DBSnapshotIdentifier`, or `SourceDBInstanceIdentifier` property, don't specify this property\\. The value is inherited from the cluster, snapshot, or source DB instance\\. If you specify the `KmsKeyId` property, you must enable encryption\\. \nIf you specify the `KmsKeyId`, you must enable encryption by setting `StorageEncrypted` to true\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StorageEncrypted", "type": "boolean" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags assigned to this cluster\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "UseLatestRestorableTime": { + "markdownDescription": "Creates a new DB cluster from a DB snapshot or DB cluster snapshot\\. \nIf a DB snapshot is specified, the target DB cluster is created from the source DB snapshot with a default configuration and default security group\\. \nIf a DB cluster snapshot is specified, the target DB cluster is created from the source DB cluster restore point with the same configuration as the original source DB cluster, except that the new DB cluster is created with the default security group\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UseLatestRestorableTime", "type": "boolean" }, "VpcSecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "Provides a list of VPC security groups that the DB cluster belongs to\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSecurityGroupIds", "type": "array" } }, @@ -109237,9 +133833,13 @@ "additionalProperties": false, "properties": { "FeatureName": { + "markdownDescription": "The name of the feature associated with the Amazon Identity and Access Management \\(IAM\\) role\\. For the list of supported feature names, see [DescribeDBEngineVersions](https://docs.aws.amazon.com/neptune/latest/userguide/api-other-apis.html#DescribeDBEngineVersions)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FeatureName", "type": "string" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that is associated with the DB cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -109284,21 +133884,31 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "Provides the customer\\-specified description for this DB cluster parameter group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "Family": { + "markdownDescription": "Must be `neptune1`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Family", "type": "string" }, "Name": { + "markdownDescription": "Provides the name of the DB cluster parameter group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Parameters": { + "markdownDescription": "The parameters to set for this DB cluster parameter group\\. \nThe parameters are expressed as a JSON object consisting of key\\-value pairs\\. \nIf you update the parameters, some interruption may occur depending on which parameters you update\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "object" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags that you want to attach to this parameter group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -109366,39 +133976,61 @@ "additionalProperties": false, "properties": { "AllowMajorVersionUpgrade": { + "markdownDescription": "Indicates that major version upgrades are allowed\\. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible\\. This parameter must be set to true when specifying a value for the EngineVersion parameter that is a different major version than the DB instance's current version\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowMajorVersionUpgrade", "type": "boolean" }, "AutoMinorVersionUpgrade": { + "markdownDescription": "Indicates that minor version patches are applied automatically\\. \nWhen updating this property, some interruptions may occur\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoMinorVersionUpgrade", "type": "boolean" }, "AvailabilityZone": { + "markdownDescription": "Specifies the name of the Availability Zone the DB instance is located in\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", "type": "string" }, "DBClusterIdentifier": { + "markdownDescription": "If the DB instance is a member of a DB cluster, contains the name of the DB cluster that the DB instance is a member of\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBClusterIdentifier", "type": "string" }, "DBInstanceClass": { + "markdownDescription": "Contains the name of the compute and memory capacity class of the DB instance\\. \nIf you update this property, some interruptions may occur\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBInstanceClass", "type": "string" }, "DBInstanceIdentifier": { + "markdownDescription": "Contains a user\\-supplied database identifier\\. This identifier is the unique key that identifies a DB instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBInstanceIdentifier", "type": "string" }, "DBParameterGroupName": { + "markdownDescription": "The name of an existing DB parameter group or a reference to an AWS::Neptune::DBParameterGroup resource created in the template\\. If any of the data members of the referenced parameter group are changed during an update, the DB instance might need to be restarted, which causes some interruption\\. If the parameter group contains static parameters, whether they were changed or not, an update triggers a reboot\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBParameterGroupName", "type": "string" }, "DBSnapshotIdentifier": { + "markdownDescription": "This parameter is not supported\\. \n `AWS::Neptune::DBInstance` does not support restoring from snapshots\\. \n `AWS::Neptune::DBCluster` does support restoring from snapshots\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBSnapshotIdentifier", "type": "string" }, "DBSubnetGroupName": { + "markdownDescription": "A DB subnet group to associate with the DB instance\\. If you update this value, the new subnet group must be a subnet group in a new virtual private cloud \\(VPC\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBSubnetGroupName", "type": "string" }, "PreferredMaintenanceWindow": { + "markdownDescription": "Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time \\(UTC\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An arbitrary set of tags \\(key\\-value pairs\\) for this DB instance\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -109464,21 +134096,31 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "Provides the customer\\-specified description for this DB parameter group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "Family": { + "markdownDescription": "Must be `neptune1`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Family", "type": "string" }, "Name": { + "markdownDescription": "Provides the name of the DB parameter group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Parameters": { + "markdownDescription": "The parameters to set for this DB parameter group\\. \nThe parameters are expressed as a JSON object consisting of key\\-value pairs\\. \nChanges to dynamic parameters are applied immediately\\. During an update, if you have static parameters \\(whether they were changed or not\\), it triggers AWS CloudFormation to reboot the associated DB instance without failover\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "object" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags that you want to attach to this parameter group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -109546,21 +134188,29 @@ "additionalProperties": false, "properties": { "DBSubnetGroupDescription": { + "markdownDescription": "Provides the description of the DB subnet group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBSubnetGroupDescription", "type": "string" }, "DBSubnetGroupName": { + "markdownDescription": "The name of the DB subnet group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBSubnetGroupName", "type": "string" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "The Amazon EC2 subnet IDs for the DB subnet group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags that you want to attach to the DB subnet group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -109627,36 +134277,54 @@ "additionalProperties": false, "properties": { "DeleteProtection": { + "markdownDescription": "A flag indicating whether it is possible to delete the firewall\\. A setting of `TRUE` indicates that the firewall is protected against deletion\\. Use this setting to protect against accidentally deleting a firewall that is in use\\. When you create a firewall, the operation initializes this flag to `TRUE`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteProtection", "type": "boolean" }, "Description": { + "markdownDescription": "A description of the firewall\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `^.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "FirewallName": { + "markdownDescription": "The descriptive name of the firewall\\. You can't change the name of a firewall after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FirewallName", "type": "string" }, "FirewallPolicyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the firewall policy\\. \nThe relationship of firewall to firewall policy is many to one\\. Each firewall requires one firewall policy association, and you can use the same firewall policy for multiple firewalls\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn:aws.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FirewallPolicyArn", "type": "string" }, "FirewallPolicyChangeProtection": { + "markdownDescription": "A setting indicating whether the firewall is protected against a change to the firewall policy association\\. Use this setting to protect against accidentally modifying the firewall policy for a firewall that is in use\\. When you create a firewall, the operation initializes this setting to `TRUE`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FirewallPolicyChangeProtection", "type": "boolean" }, "SubnetChangeProtection": { + "markdownDescription": "A setting indicating whether the firewall is protected against changes to the subnet associations\\. Use this setting to protect against accidentally modifying the subnet associations for a firewall that is in use\\. When you create a firewall, the operation initializes this setting to `TRUE`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetChangeProtection", "type": "boolean" }, "SubnetMappings": { "items": { "$ref": "#/definitions/AWS::NetworkFirewall::Firewall.SubnetMapping" }, + "markdownDescription": "The public subnets that Network Firewall is using for the firewall\\. Each subnet must belong to a different Availability Zone\\. \n*Required*: Yes \n*Type*: List of [SubnetMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewall-subnetmapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetMappings", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VpcId": { + "markdownDescription": "The unique identifier of the VPC where the firewall is in use\\. You can't change the VPC of a firewall after you create the firewall\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^vpc-[0-9a-f]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -109692,7 +134360,12 @@ "AWS::NetworkFirewall::Firewall.SubnetMapping": { "additionalProperties": false, "properties": { + "IPAddressType": { + "type": "string" + }, "SubnetId": { + "markdownDescription": "The unique identifier for the subnet\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetId", "type": "string" } }, @@ -109737,18 +134410,26 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the firewall policy\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `^.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "FirewallPolicy": { - "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy" + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy", + "markdownDescription": "The traffic filtering behavior of a firewall policy, defined in a collection of stateless and stateful rule groups and other settings\\. \n*Required*: Yes \n*Type*: [FirewallPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-firewallpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FirewallPolicy" }, "FirewallPolicyName": { + "markdownDescription": "The descriptive name of the firewall policy\\. You can't change the name of a firewall policy after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FirewallPolicyName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -109783,7 +134464,9 @@ "additionalProperties": false, "properties": { "PublishMetricAction": { - "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction" + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction", + "markdownDescription": "Stateless inspection criteria that publishes the specified metrics to Amazon CloudWatch for the matching packet\\. This setting defines a CloudWatch dimension value to be published\\. \nYou can pair this custom action with any of the standard stateless rule actions\\. For example, you could pair this in a rule action with the standard action that forwards the packet for stateful inspection\\. Then, when a packet matches the rule, Network Firewall publishes metrics for the packet and forwards it\\. \n*Required*: No \n*Type*: [PublishMetricAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-publishmetricaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublishMetricAction" } }, "type": "object" @@ -109792,9 +134475,13 @@ "additionalProperties": false, "properties": { "ActionDefinition": { - "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.ActionDefinition" + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.ActionDefinition", + "markdownDescription": "The custom action associated with the action name\\. \n*Required*: Yes \n*Type*: [ActionDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-actiondefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionDefinition" }, "ActionName": { + "markdownDescription": "The descriptive name of the custom action\\. You can't change the name of a custom action after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionName", "type": "string" } }, @@ -109808,6 +134495,8 @@ "additionalProperties": false, "properties": { "Value": { + "markdownDescription": "The value to use in the custom metric dimension\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-_ ]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -109823,39 +134512,53 @@ "items": { "type": "string" }, + "markdownDescription": "The default actions to take on a packet that doesn't match any stateful rules\\. The stateful default action is optional, and is only valid when using the strict rule order\\. \nValid values of the stateful default action: \n+ aws:drop\\_strict\n+ aws:drop\\_established\n+ aws:alert\\_strict\n+ aws:alert\\_established\nFor more information, see [Strict evaluation order](https://docs.aws.amazon.com/network-firewall/latest/developerguide/suricata-rule-evaluation-order.html#suricata-strict-rule-evaluation-order.html) in the *AWS Network Firewall Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatefulDefaultActions", "type": "array" }, "StatefulEngineOptions": { - "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulEngineOptions" + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulEngineOptions", + "markdownDescription": "Additional options governing how Network Firewall handles stateful rules\\. The stateful rule groups that you use in your policy must have stateful rule options settings that are compatible with these settings\\. \n*Required*: No \n*Type*: [StatefulEngineOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statefulengineoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatefulEngineOptions" }, "StatefulRuleGroupReferences": { "items": { "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference" }, + "markdownDescription": "References to the stateful rule groups that are used in the policy\\. These define the inspection criteria in stateful rules\\. \n*Required*: No \n*Type*: List of [StatefulRuleGroupReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statefulrulegroupreference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatefulRuleGroupReferences", "type": "array" }, "StatelessCustomActions": { "items": { "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.CustomAction" }, + "markdownDescription": "The custom action definitions that are available for use in the firewall policy's `StatelessDefaultActions` setting\\. You name each custom action that you define, and then you can use it by name in your default actions specifications\\. \n*Required*: No \n*Type*: List of [CustomAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-customaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatelessCustomActions", "type": "array" }, "StatelessDefaultActions": { "items": { "type": "string" }, + "markdownDescription": "The actions to take on a packet if it doesn't match any of the stateless rules in the policy\\. If you want non\\-matching packets to be forwarded for stateful inspection, specify `aws:forward_to_sfe`\\. \nYou must specify one of the standard actions: `aws:pass`, `aws:drop`, or `aws:forward_to_sfe`\\. In addition, you can specify custom actions that are compatible with your standard section choice\\. \nFor example, you could specify `[\"aws:pass\"]` or you could specify `[\"aws:pass\", \u201ccustomActionName\u201d]`\\. For information about compatibility, see the custom action descriptions\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatelessDefaultActions", "type": "array" }, "StatelessFragmentDefaultActions": { "items": { "type": "string" }, + "markdownDescription": "The actions to take on a fragmented packet if it doesn't match any of the stateless rules in the policy\\. If you want non\\-matching fragmented packets to be forwarded for stateful inspection, specify `aws:forward_to_sfe`\\. \nYou must specify one of the standard actions: `aws:pass`, `aws:drop`, or `aws:forward_to_sfe`\\. In addition, you can specify custom actions that are compatible with your standard section choice\\. \nFor example, you could specify `[\"aws:pass\"]` or you could specify `[\"aws:pass\", \u201ccustomActionName\u201d]`\\. For information about compatibility, see the custom action descriptions\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatelessFragmentDefaultActions", "type": "array" }, "StatelessRuleGroupReferences": { "items": { "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReference" }, + "markdownDescription": "References to the stateless rule groups that are used in the policy\\. These define the matching criteria in stateless rules\\. \n*Required*: No \n*Type*: List of [StatelessRuleGroupReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statelessrulegroupreference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatelessRuleGroupReferences", "type": "array" } }, @@ -109872,6 +134575,8 @@ "items": { "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.Dimension" }, + "markdownDescription": "*Required*: Yes \n*Type*: List of [Dimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-dimension.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", "type": "array" } }, @@ -109884,6 +134589,8 @@ "additionalProperties": false, "properties": { "RuleOrder": { + "markdownDescription": "Indicates how to manage the order of stateful rule evaluation for the policy\\. `DEFAULT_ACTION_ORDER` is the default behavior\\. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them based on certain settings\\. For more information, see [Evaluation order for stateful rules](https://docs.aws.amazon.com/network-firewall/latest/developerguide/suricata-rule-evaluation-order.html) in the * AWS Network Firewall Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DEFAULT_ACTION_ORDER | STRICT_ORDER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleOrder", "type": "string" }, "StreamExceptionPolicy": { @@ -109908,9 +134615,13 @@ "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupOverride" }, "Priority": { + "markdownDescription": "An integer setting that indicates the order in which to run the stateful rule groups in a single [AWS::NetworkFirewall::FirewallPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewallpolicy.html)\\. This setting only applies to firewall policies that specify the `STRICT_ORDER` rule order in the stateful engine options settings\\. \nNetwork Firewall evalutes each stateful rule group against a packet starting with the group that has the lowest priority setting\\. You must ensure that the priority settings are unique within each policy\\. \nYou can change the priority settings of your rule groups at any time\\. To make it easier to insert rule groups later, number them so there's a wide range in between, for example use 100, 200, and so on\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" }, "ResourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the stateful rule group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn:aws.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceArn", "type": "string" } }, @@ -109923,9 +134634,13 @@ "additionalProperties": false, "properties": { "Priority": { + "markdownDescription": "An integer setting that indicates the order in which to run the stateless rule groups in a single [AWS::NetworkFirewall::FirewallPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewallpolicy.html)\\. Network Firewall applies each stateless rule group to a packet starting with the group that has the lowest priority setting\\. You must ensure that the priority settings are unique within each policy\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" }, "ResourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the stateless rule group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn:aws.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceArn", "type": "string" } }, @@ -109971,13 +134686,19 @@ "additionalProperties": false, "properties": { "FirewallArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the [AWS::NetworkFirewall::Firewall](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html) that the logging configuration is associated with\\. You can't change the firewall specification after you create the logging configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FirewallArn", "type": "string" }, "FirewallName": { + "markdownDescription": "The name of the firewall that the logging configuration is associated with\\. You can't change the firewall specification after you create the logging configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FirewallName", "type": "string" }, "LoggingConfiguration": { - "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration.LoggingConfiguration" + "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration.LoggingConfiguration", + "markdownDescription": "Defines how AWS Network Firewall performs logging for a [AWS::NetworkFirewall::Firewall](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html)\\. \n*Required*: Yes \n*Type*: [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-loggingconfiguration-loggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingConfiguration" } }, "required": [ @@ -110012,17 +134733,23 @@ "properties": { "LogDestination": { "additionalProperties": true, + "markdownDescription": "The named location for the logs, provided in a key:value mapping that is specific to the chosen destination type\\. \n+ For an Amazon S3 bucket, provide the name of the bucket, with key `bucketName`, and optionally provide a prefix, with key `prefix`\\. The following example specifies an Amazon S3 bucket named `DOC-EXAMPLE-BUCKET` and the prefix `alerts`:", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "LogDestination", "type": "object" }, "LogDestinationType": { + "markdownDescription": "The type of storage destination to send these logs to\\. You can send logs to an Amazon S3 bucket, a CloudWatch log group, or a Kinesis Data Firehose delivery stream\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CloudWatchLogs | KinesisDataFirehose | S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogDestinationType", "type": "string" }, "LogType": { + "markdownDescription": "The type of log to send\\. Alert logs report traffic that matches a stateful rule with an action setting that sends an alert log message\\. Flow logs are standard network traffic flow logs\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALERT | FLOW` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogType", "type": "string" } }, @@ -110040,6 +134767,8 @@ "items": { "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfig" }, + "markdownDescription": "Defines the logging destinations for the logs for a firewall\\. Network Firewall generates logs for stateful rule groups\\. \n*Required*: Yes \n*Type*: List of [LogDestinationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-loggingconfiguration-logdestinationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogDestinationConfigs", "type": "array" } }, @@ -110084,24 +134813,36 @@ "additionalProperties": false, "properties": { "Capacity": { + "markdownDescription": "The maximum operating resources that this rule group can use\\. You can't change a rule group's capacity setting after you create the rule group\\. When you update a rule group, you are limited to this capacity\\. When you reference a rule group from a firewall policy, Network Firewall reserves this capacity for the rule group\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Capacity", "type": "number" }, "Description": { + "markdownDescription": "A description of the rule group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `^.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "RuleGroup": { - "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleGroup" + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleGroup", + "markdownDescription": "An object that defines the rule group rules\\. \n*Required*: No \n*Type*: [RuleGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulegroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleGroup" }, "RuleGroupName": { + "markdownDescription": "The descriptive name of the rule group\\. You can't change the name of a rule group after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RuleGroupName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Type": { + "markdownDescription": "Indicates whether the rule group is stateless or stateful\\. If the rule group is stateless, it contains stateless rules\\. If it is stateful, it contains stateful rules\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `STATEFUL | STATELESS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -110137,7 +134878,9 @@ "additionalProperties": false, "properties": { "PublishMetricAction": { - "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PublishMetricAction" + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PublishMetricAction", + "markdownDescription": "Stateless inspection criteria that publishes the specified metrics to Amazon CloudWatch for the matching packet\\. This setting defines a CloudWatch dimension value to be published\\. \nYou can pair this custom action with any of the standard stateless rule actions\\. For example, you could pair this in a rule action with the standard action that forwards the packet for stateful inspection\\. Then, when a packet matches the rule, Network Firewall publishes metrics for the packet and forwards it\\. \n*Required*: No \n*Type*: [PublishMetricAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-publishmetricaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublishMetricAction" } }, "type": "object" @@ -110146,6 +134889,8 @@ "additionalProperties": false, "properties": { "AddressDefinition": { + "markdownDescription": "Specify an IP address or a block of IP addresses in Classless Inter\\-Domain Routing \\(CIDR\\) notation\\. Network Firewall supports all address ranges for IPv4\\. \nExamples: \n+ To configure Network Firewall to inspect for the IP address 192\\.0\\.2\\.44, specify `192.0.2.44/32`\\.\n+ To configure Network Firewall to inspect for IP addresses from 192\\.0\\.2\\.0 to 192\\.0\\.2\\.255, specify `192.0.2.0/24`\\.\nFor more information about CIDR notation, see the Wikipedia entry [Classless Inter\\-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^([a-fA-F\\d:\\.]+($|/\\d{1,3}))$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddressDefinition", "type": "string" } }, @@ -110158,9 +134903,13 @@ "additionalProperties": false, "properties": { "ActionDefinition": { - "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.ActionDefinition" + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.ActionDefinition", + "markdownDescription": "The custom action associated with the action name\\. \n*Required*: Yes \n*Type*: [ActionDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-actiondefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionDefinition" }, "ActionName": { + "markdownDescription": "The descriptive name of the custom action\\. You can't change the name of a custom action after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionName", "type": "string" } }, @@ -110174,6 +134923,8 @@ "additionalProperties": false, "properties": { "Value": { + "markdownDescription": "The value to use in the custom metric dimension\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-_ ]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -110186,21 +134937,33 @@ "additionalProperties": false, "properties": { "Destination": { + "markdownDescription": "The destination IP address or address range to inspect for, in CIDR notation\\. To match with any address, specify `ANY`\\. \nSpecify an IP address or a block of IP addresses in Classless Inter\\-Domain Routing \\(CIDR\\) notation\\. Network Firewall supports all address ranges for IPv4\\. \nExamples: \n+ To configure Network Firewall to inspect for the IP address 192\\.0\\.2\\.44, specify `192.0.2.44/32`\\.\n+ To configure Network Firewall to inspect for IP addresses from 192\\.0\\.2\\.0 to 192\\.0\\.2\\.255, specify `192.0.2.0/24`\\.\nFor more information about CIDR notation, see the Wikipedia entry [Classless Inter\\-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `^.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination", "type": "string" }, "DestinationPort": { + "markdownDescription": "The destination port to inspect for\\. You can specify an individual port, for example `1994` and you can specify a port range, for example `1990:1994`\\. To match with any port, specify `ANY`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `^.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationPort", "type": "string" }, "Direction": { + "markdownDescription": "The direction of traffic flow to inspect\\. If set to `ANY`, the inspection matches bidirectional traffic, both from the source to the destination and from the destination to the source\\. If set to `FORWARD`, the inspection only matches traffic going from the source to the destination\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ANY | FORWARD` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Direction", "type": "string" }, "Protocol": { + "markdownDescription": "The protocol to inspect for\\. To specify all, you can use `IP`, because all traffic on AWS and on the internet is IP\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DCERPC | DHCP | DNS | FTP | HTTP | ICMP | IKEV2 | IMAP | IP | KRB5 | MSN | NTP | SMB | SMTP | SSH | TCP | TFTP | TLS | UDP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "string" }, "Source": { + "markdownDescription": "The source IP address or address range to inspect for, in CIDR notation\\. To match with any address, specify `ANY`\\. \nSpecify an IP address or a block of IP addresses in Classless Inter\\-Domain Routing \\(CIDR\\) notation\\. Network Firewall supports all address ranges for IPv4\\. \nExamples: \n+ To configure Network Firewall to inspect for the IP address 192\\.0\\.2\\.44, specify `192.0.2.44/32`\\.\n+ To configure Network Firewall to inspect for IP addresses from 192\\.0\\.2\\.0 to 192\\.0\\.2\\.255, specify `192.0.2.0/24`\\.\nFor more information about CIDR notation, see the Wikipedia entry [Classless Inter\\-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `^.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source", "type": "string" }, "SourcePort": { + "markdownDescription": "The source port to inspect for\\. You can specify an individual port, for example `1994` and you can specify a port range, for example `1990:1994`\\. To match with any port, specify `ANY`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `^.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourcePort", "type": "string" } }, @@ -110221,6 +134984,8 @@ "items": { "type": "string" }, + "markdownDescription": "The list of IP addresses and address ranges, in CIDR notation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Definition", "type": "array" } }, @@ -110242,36 +135007,48 @@ "items": { "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortRange" }, + "markdownDescription": "The destination ports to inspect for\\. If not specified, this matches with any destination port\\. This setting is only used for protocols 6 \\(TCP\\) and 17 \\(UDP\\)\\. \nYou can specify individual ports, for example `1994` and you can specify port ranges, for example `1990:1994`\\. \n*Required*: No \n*Type*: List of [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationPorts", "type": "array" }, "Destinations": { "items": { "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Address" }, + "markdownDescription": "The destination IP addresses and address ranges to inspect for, in CIDR notation\\. If not specified, this matches with any destination address\\. \n*Required*: No \n*Type*: List of [Address](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-address.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destinations", "type": "array" }, "Protocols": { "items": { "type": "number" }, + "markdownDescription": "The protocols to inspect for, specified using each protocol's assigned internet protocol number \\(IANA\\)\\. If not specified, this matches with any protocol\\. \n*Required*: No \n*Type*: List of Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocols", "type": "array" }, "SourcePorts": { "items": { "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortRange" }, + "markdownDescription": "The source ports to inspect for\\. If not specified, this matches with any source port\\. This setting is only used for protocols 6 \\(TCP\\) and 17 \\(UDP\\)\\. \nYou can specify individual ports, for example `1994` and you can specify port ranges, for example `1990:1994`\\. \n*Required*: No \n*Type*: List of [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourcePorts", "type": "array" }, "Sources": { "items": { "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Address" }, + "markdownDescription": "The source IP addresses and address ranges to inspect for, in CIDR notation\\. If not specified, this matches with any source address\\. \n*Required*: No \n*Type*: List of [Address](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-address.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sources", "type": "array" }, "TCPFlags": { "items": { "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.TCPFlagField" }, + "markdownDescription": "The TCP flags and masks to inspect for\\. If not specified, this matches with any settings\\. This setting is only used for protocol 6 \\(TCP\\)\\. \n*Required*: No \n*Type*: List of [TCPFlagField](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-tcpflagfield.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TCPFlags", "type": "array" } }, @@ -110281,9 +135058,13 @@ "additionalProperties": false, "properties": { "FromPort": { + "markdownDescription": "The lower limit of the port range\\. This must be less than or equal to the `ToPort` specification\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FromPort", "type": "number" }, "ToPort": { + "markdownDescription": "The upper limit of the port range\\. This must be greater than or equal to the `FromPort` specification\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ToPort", "type": "number" } }, @@ -110300,6 +135081,8 @@ "items": { "type": "string" }, + "markdownDescription": "The set of port ranges\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Definition", "type": "array" } }, @@ -110312,6 +135095,8 @@ "items": { "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Dimension" }, + "markdownDescription": "*Required*: Yes \n*Type*: List of [Dimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-dimension.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", "type": "array" } }, @@ -110342,10 +135127,14 @@ "items": { "type": "string" }, + "markdownDescription": "The actions to take on a packet that matches one of the stateless rule definition's match attributes\\. You must specify a standard action and you can add custom actions\\. \nNetwork Firewall only forwards a packet for stateful rule inspection if you specify `aws:forward_to_sfe` for a rule that the packet matches, or if the packet doesn't match any stateless rule and you specify `aws:forward_to_sfe` for the `StatelessDefaultActions` setting for the [AWS::NetworkFirewall::FirewallPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewallpolicy.html)\\.\nFor every rule, you must specify exactly one of the following standard actions\\. \n+ **aws:pass** \\- Discontinues all inspection of the packet and permits it to go to its intended destination\\.\n+ **aws:drop** \\- Discontinues all inspection of the packet and blocks it from going to its intended destination\\.\n+ **aws:forward\\_to\\_sfe** \\- Discontinues stateless inspection of the packet and forwards it to the stateful rule engine for inspection\\. \nAdditionally, you can specify a custom action\\. To do this, you define a custom action by name and type, then provide the name you've assigned to the action in this `Actions` setting\\. \nTo provide more than one action in this setting, separate the settings with a comma\\. For example, if you have a publish metrics custom action that you've named `MyMetricsAction`, then you could specify the standard action `aws:pass` combined with the custom action using `[\u201caws:pass\u201d, \u201cMyMetricsAction\u201d]`\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", "type": "array" }, "MatchAttributes": { - "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.MatchAttributes" + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.MatchAttributes", + "markdownDescription": "Criteria for Network Firewall to use to inspect an individual packet in stateless rule inspection\\. Each match attributes set can include one or more items such as IP address, CIDR range, port number, protocol, and TCP flags\\. \n*Required*: Yes \n*Type*: [MatchAttributes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-matchattributes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MatchAttributes" } }, "required": [ @@ -110361,13 +135150,19 @@ "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.ReferenceSets" }, "RuleVariables": { - "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleVariables" + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleVariables", + "markdownDescription": "Settings that are available for use in the rules in the rule group\\. You can only use these for stateful rule groups\\. \n*Required*: No \n*Type*: [RuleVariables](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulevariables.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleVariables" }, "RulesSource": { - "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RulesSource" + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RulesSource", + "markdownDescription": "The stateful rules or stateless rules for the rule group\\. \n*Required*: Yes \n*Type*: [RulesSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RulesSource" }, "StatefulRuleOptions": { - "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatefulRuleOptions" + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatefulRuleOptions", + "markdownDescription": "Additional options governing how Network Firewall handles stateful rules\\. The policies where you use your stateful rule group must have stateful rule options settings that are compatible with these settings\\. \n*Required*: No \n*Type*: [StatefulRuleOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statefulruleoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatefulRuleOptions" } }, "required": [ @@ -110379,12 +135174,16 @@ "additionalProperties": false, "properties": { "Keyword": { + "markdownDescription": "*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Keyword", "type": "string" }, "Settings": { "items": { "type": "string" }, + "markdownDescription": "*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Settings", "type": "array" } }, @@ -110398,20 +135197,24 @@ "properties": { "IPSets": { "additionalProperties": false, + "markdownDescription": "A list of IP addresses and address ranges, in CIDR notation\\. \n*Required*: No \n*Type*: Map of [IPSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ipset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.IPSet" } }, + "title": "IPSets", "type": "object" }, "PortSets": { "additionalProperties": false, + "markdownDescription": "A list of port ranges\\. \n*Required*: No \n*Type*: Map of [PortSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-portset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortSet" } }, + "title": "PortSets", "type": "object" } }, @@ -110421,19 +135224,27 @@ "additionalProperties": false, "properties": { "RulesSourceList": { - "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RulesSourceList" + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RulesSourceList", + "markdownDescription": "Stateful inspection criteria for a domain list rule group\\. \n*Required*: No \n*Type*: [RulesSourceList](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessourcelist.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RulesSourceList" }, "RulesString": { + "markdownDescription": "Stateful inspection criteria, provided in Suricata compatible intrusion prevention system \\(IPS\\) rules\\. Suricata is an open\\-source network IPS that includes a standard rule\\-based language for network traffic inspection\\. \nThese rules contain the inspection criteria and the action to take for traffic that matches the criteria, so this type of rule group doesn't have a separate action setting\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2000000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RulesString", "type": "string" }, "StatefulRules": { "items": { "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatefulRule" }, + "markdownDescription": "An array of individual stateful rules inspection criteria to be used together in a stateful rule group\\. Use this option to specify simple Suricata rules with protocol, source and destination, ports, direction, and rule options\\. For information about the Suricata `Rules` format, see [Rules Format](https://suricata.readthedocs.io/en/suricata-5.0.0/rules/intro.html#)\\. \n*Required*: No \n*Type*: List of [StatefulRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statefulrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatefulRules", "type": "array" }, "StatelessRulesAndCustomActions": { - "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatelessRulesAndCustomActions" + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatelessRulesAndCustomActions", + "markdownDescription": "Stateless inspection criteria to be used in a stateless rule group\\. \n*Required*: No \n*Type*: [StatelessRulesAndCustomActions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statelessrulesandcustomactions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatelessRulesAndCustomActions" } }, "type": "object" @@ -110442,18 +135253,24 @@ "additionalProperties": false, "properties": { "GeneratedRulesType": { + "markdownDescription": "Whether you want to allow or deny access to the domains in your target list\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALLOWLIST | DENYLIST` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GeneratedRulesType", "type": "string" }, "TargetTypes": { "items": { "type": "string" }, + "markdownDescription": "The types of targets to inspect for\\. Valid values are `TLS_SNI` and `HTTP_HOST`\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetTypes", "type": "array" }, "Targets": { "items": { "type": "string" }, + "markdownDescription": "The domains that you want to inspect for in your traffic flows\\. Valid domain specifications are the following: \n+ Explicit names\\. For example, `abc.example.com` matches only the domain `abc.example.com`\\.\n+ Names that use a domain wildcard, which you indicate with an initial '`.`'\\. For example,`.example.com` matches `example.com` and matches all subdomains of `example.com`, such as `abc.example.com` and `www.example.com`\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Targets", "type": "array" } }, @@ -110468,15 +135285,21 @@ "additionalProperties": false, "properties": { "Action": { + "markdownDescription": "Defines what Network Firewall should do with the packets in a traffic flow when the flow matches the stateful rule criteria\\. For all actions, Network Firewall performs the specified action and discontinues stateful inspection of the traffic flow\\. \nThe actions for a stateful rule are defined as follows: \n+ **PASS** \\- Permits the packets to go to the intended destination\\.\n+ **DROP** \\- Blocks the packets from going to the intended destination and sends an alert log message, if alert logging is configured in the firewall's [AWS::NetworkFirewall::LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-loggingconfiguration.html)\\. \n+ **ALERT** \\- Permits the packets to go to the intended destination and sends an alert log message, if alert logging is configured in the firewall's [AWS::NetworkFirewall::LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-loggingconfiguration.html)\\.", + "title": "Action", "type": "string" }, "Header": { - "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Header" + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Header", + "markdownDescription": "The stateful inspection criteria for this rule, used to inspect traffic flows\\. \n*Required*: Yes \n*Type*: [Header](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Header" }, "RuleOptions": { "items": { "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleOption" }, + "markdownDescription": "Additional settings for a stateful rule, provided as keywords and settings\\. \n*Required*: Yes \n*Type*: List of [RuleOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruleoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleOptions", "type": "array" } }, @@ -110491,6 +135314,8 @@ "additionalProperties": false, "properties": { "RuleOrder": { + "markdownDescription": "Indicates how to manage the order of the rule evaluation for the rule group\\. `DEFAULT_ACTION_ORDER` is the default behavior\\. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them based on certain settings\\. For more information, see [Evaluation order for stateful rules](https://docs.aws.amazon.com/network-firewall/latest/developerguide/suricata-rule-evaluation-order.html) in the *AWS Network Firewall Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DEFAULT_ACTION_ORDER | STRICT_ORDER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleOrder", "type": "string" } }, @@ -110500,10 +135325,14 @@ "additionalProperties": false, "properties": { "Priority": { + "markdownDescription": "Indicates the order in which to run this rule relative to all of the rules that are defined for a stateless rule group\\. Network Firewall evaluates the rules in a rule group starting with the lowest priority setting\\. You must ensure that the priority settings are unique for the rule group\\. \nEach stateless rule group uses exactly one `StatelessRulesAndCustomActions` object, and each `StatelessRulesAndCustomActions` contains exactly one `StatelessRules` object\\. To ensure unique priority settings for your rule groups, set unique priorities for the stateless rules that you define inside any single `StatelessRules` object\\. \nYou can change the priority settings of your rules at any time\\. To make it easier to insert rules later, number them so there's a wide range in between, for example use 100, 200, and so on\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" }, "RuleDefinition": { - "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleDefinition" + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleDefinition", + "markdownDescription": "Defines the stateless 5\\-tuple packet inspection criteria and the action to take on a packet that matches the criteria\\. \n*Required*: Yes \n*Type*: [RuleDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruledefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleDefinition" } }, "required": [ @@ -110519,12 +135348,16 @@ "items": { "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.CustomAction" }, + "markdownDescription": "Defines an array of individual custom action definitions that are available for use by the stateless rules in this `StatelessRulesAndCustomActions` specification\\. You name each custom action that you define, and then you can use it by name in your stateless rule [AWS::NetworkFirewall::RuleGroup RuleDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruledefinition.html) `Actions` specification\\. \n*Required*: No \n*Type*: List of [CustomAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-customaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomActions", "type": "array" }, "StatelessRules": { "items": { "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatelessRule" }, + "markdownDescription": "Defines the set of stateless rules for use in a stateless rule group\\. \n*Required*: Yes \n*Type*: List of [StatelessRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statelessrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatelessRules", "type": "array" } }, @@ -110540,12 +135373,16 @@ "items": { "type": "string" }, + "markdownDescription": "Used in conjunction with the `Masks` setting to define the flags that must be set and flags that must not be set in order for the packet to match\\. This setting can only specify values that are also specified in the `Masks` setting\\. \nFor the flags that are specified in the masks setting, the following must be true for the packet to match: \n+ The ones that are set in this flags setting must be set in the packet\\. \n+ The ones that are not set in this flags setting must also not be set in the packet\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Flags", "type": "array" }, "Masks": { "items": { "type": "string" }, + "markdownDescription": "The set of flags to consider in the inspection\\. To inspect all flags in the valid values list, leave this with no setting\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Masks", "type": "array" } }, @@ -110724,6 +135561,11 @@ "type": "array" } }, + "required": [ + "ConnectAttachmentId", + "InsideCidrBlocks", + "PeerAddress" + ], "type": "object" }, "Type": { @@ -110742,7 +135584,8 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -110952,15 +135795,23 @@ "additionalProperties": false, "properties": { "CustomerGatewayArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the customer gateway\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `500` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomerGatewayArn", "type": "string" }, "DeviceId": { + "markdownDescription": "The ID of the device\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceId", "type": "string" }, "GlobalNetworkId": { + "markdownDescription": "The ID of the global network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GlobalNetworkId", "type": "string" }, "LinkId": { + "markdownDescription": "The ID of the link\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LinkId", "type": "string" } }, @@ -111028,33 +135879,51 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the device\\. \nConstraints: Maximum length of 256 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "GlobalNetworkId": { + "markdownDescription": "The ID of the global network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GlobalNetworkId", "type": "string" }, "Location": { - "$ref": "#/definitions/AWS::NetworkManager::Device.Location" + "$ref": "#/definitions/AWS::NetworkManager::Device.Location", + "markdownDescription": "The site location\\. \n*Required*: No \n*Type*: [Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-device-location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location" }, "Model": { + "markdownDescription": "The model of the device\\. \nConstraints: Maximum length of 128 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Model", "type": "string" }, "SerialNumber": { + "markdownDescription": "The serial number of the device\\. \nConstraints: Maximum length of 128 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SerialNumber", "type": "string" }, "SiteId": { + "markdownDescription": "The site ID\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SiteId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags for the device\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Type": { + "markdownDescription": "The device type\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" }, "Vendor": { + "markdownDescription": "The vendor of the device\\. \nConstraints: Maximum length of 128 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Vendor", "type": "string" } }, @@ -111088,12 +135957,18 @@ "additionalProperties": false, "properties": { "Address": { + "markdownDescription": "The physical address\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Address", "type": "string" }, "Latitude": { + "markdownDescription": "The latitude\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Latitude", "type": "string" }, "Longitude": { + "markdownDescription": "The longitude\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Longitude", "type": "string" } }, @@ -111135,12 +136010,16 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the global network\\. \nConstraints: Maximum length of 256 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags for the global network\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -111202,27 +136081,41 @@ "additionalProperties": false, "properties": { "Bandwidth": { - "$ref": "#/definitions/AWS::NetworkManager::Link.Bandwidth" + "$ref": "#/definitions/AWS::NetworkManager::Link.Bandwidth", + "markdownDescription": "The bandwidth for the link\\. \n*Required*: Yes \n*Type*: [Bandwidth](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-link-bandwidth.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bandwidth" }, "Description": { + "markdownDescription": "A description of the link\\. \nConstraints: Maximum length of 256 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "GlobalNetworkId": { + "markdownDescription": "The ID of the global network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GlobalNetworkId", "type": "string" }, "Provider": { + "markdownDescription": "The provider of the link\\. \nConstraints: Maximum length of 128 characters\\. Cannot include the following characters: \\| \\\\ ^ \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Provider", "type": "string" }, "SiteId": { + "markdownDescription": "The ID of the site\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SiteId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags for the link\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Type": { + "markdownDescription": "The type of the link\\. \nConstraints: Maximum length of 128 characters\\. Cannot include the following characters: \\| \\\\ ^ \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -111258,9 +136151,13 @@ "additionalProperties": false, "properties": { "DownloadSpeed": { + "markdownDescription": "Download speed in Mbps\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DownloadSpeed", "type": "number" }, "UploadSpeed": { + "markdownDescription": "Upload speed in Mbps\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UploadSpeed", "type": "number" } }, @@ -111302,12 +136199,18 @@ "additionalProperties": false, "properties": { "DeviceId": { + "markdownDescription": "The device ID for the link association\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceId", "type": "string" }, "GlobalNetworkId": { + "markdownDescription": "The ID of the global network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GlobalNetworkId", "type": "string" }, "LinkId": { + "markdownDescription": "The ID of the link\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LinkId", "type": "string" } }, @@ -111375,18 +136278,26 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of your site\\. \nConstraints: Maximum length of 256 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "GlobalNetworkId": { + "markdownDescription": "The ID of the global network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GlobalNetworkId", "type": "string" }, "Location": { - "$ref": "#/definitions/AWS::NetworkManager::Site.Location" + "$ref": "#/definitions/AWS::NetworkManager::Site.Location", + "markdownDescription": "The site location\\. This information is used for visualization in the Network Manager console\\. If you specify the address, the latitude and longitude are automatically calculated\\. \n+ `Address`: The physical address of the site\\.\n+ `Latitude`: The latitude of the site\\. \n+ `Longitude`: The longitude of the site\\.\n*Required*: No \n*Type*: [Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-site-location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags for the site\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -111420,12 +136331,18 @@ "additionalProperties": false, "properties": { "Address": { + "markdownDescription": "The physical address\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Address", "type": "string" }, "Latitude": { + "markdownDescription": "The latitude\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Latitude", "type": "string" }, "Longitude": { + "markdownDescription": "The longitude\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Longitude", "type": "string" } }, @@ -111479,6 +136396,10 @@ "type": "string" } }, + "required": [ + "CoreNetworkId", + "VpnConnectionArn" + ], "type": "object" }, "Type": { @@ -111497,7 +136418,8 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -111519,7 +136441,7 @@ }, "type": "object" }, - "AWS::NetworkManager::TransitGatewayRegistration": { + "AWS::NetworkManager::TransitGatewayPeering": { "additionalProperties": false, "properties": { "Condition": { @@ -111554,22 +136476,28 @@ "Properties": { "additionalProperties": false, "properties": { - "GlobalNetworkId": { + "CoreNetworkId": { "type": "string" }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, "TransitGatewayArn": { "type": "string" } }, "required": [ - "GlobalNetworkId", + "CoreNetworkId", "TransitGatewayArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::NetworkManager::TransitGatewayRegistration" + "AWS::NetworkManager::TransitGatewayPeering" ], "type": "string" }, @@ -111588,7 +136516,7 @@ ], "type": "object" }, - "AWS::NetworkManager::VpcAttachment": { + "AWS::NetworkManager::TransitGatewayRegistration": { "additionalProperties": false, "properties": { "Condition": { @@ -111623,38 +136551,26 @@ "Properties": { "additionalProperties": false, "properties": { - "CoreNetworkId": { + "GlobalNetworkId": { + "markdownDescription": "The ID of the global network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GlobalNetworkId", "type": "string" }, - "Options": { - "$ref": "#/definitions/AWS::NetworkManager::VpcAttachment.VpcOptions" - }, - "SubnetArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "VpcArn": { + "TransitGatewayArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `500` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayArn", "type": "string" } }, "required": [ - "CoreNetworkId", - "SubnetArns", - "VpcArn" + "GlobalNetworkId", + "TransitGatewayArn" ], "type": "object" }, "Type": { "enum": [ - "AWS::NetworkManager::VpcAttachment" + "AWS::NetworkManager::TransitGatewayRegistration" ], "type": "string" }, @@ -111673,37 +136589,122 @@ ], "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": { + "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": { @@ -111739,42 +136740,58 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A human\\-readable description of the launch profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Ec2SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "Unique identifiers for a collection of EC2 subnets\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ec2SubnetIds", "type": "array" }, "LaunchProfileProtocolVersions": { "items": { "type": "string" }, + "markdownDescription": "The version number of the protocol that is used by the launch profile\\. The only valid version is \"2021\\-03\\-31\"\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchProfileProtocolVersions", "type": "array" }, "Name": { + "markdownDescription": "A friendly name for the launch profile\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "StreamConfiguration": { - "$ref": "#/definitions/AWS::NimbleStudio::LaunchProfile.StreamConfiguration" + "$ref": "#/definitions/AWS::NimbleStudio::LaunchProfile.StreamConfiguration", + "markdownDescription": "A configuration for a streaming session\\. \n*Required*: Yes \n*Type*: [StreamConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-launchprofile-streamconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamConfiguration" }, "StudioComponentIds": { "items": { "type": "string" }, + "markdownDescription": "Unique identifiers for a collection of studio components that can be used with this launch profile\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StudioComponentIds", "type": "array" }, "StudioId": { + "markdownDescription": "The unique identifier for a studio resource\\. In Nimble Studio, all other resources are contained in a studio resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StudioId", "type": "string" }, "Tags": { "additionalProperties": true, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" } }, @@ -111816,30 +136833,45 @@ "type": "string" }, "ClipboardMode": { + "markdownDescription": "Enable or disable the use of the system clipboard to copy and paste between the streaming session and streaming client\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClipboardMode", "type": "string" }, "Ec2InstanceTypes": { "items": { "type": "string" }, + "markdownDescription": "The EC2 instance types that users can select from when launching a streaming session with this launch profile\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ec2InstanceTypes", "type": "array" }, "MaxSessionLengthInMinutes": { + "markdownDescription": "The length of time, in minutes, that a streaming session can be active before it is stopped or terminated\\. After this point, Nimble Studio automatically terminates or stops the session\\. The default length of time is 690 minutes, and the maximum length of time is 30 days\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxSessionLengthInMinutes", "type": "number" }, "MaxStoppedSessionLengthInMinutes": { + "markdownDescription": "Integer that determines if you can start and stop your sessions and how long a session can stay in the STOPPED state\\. The default value is 0\\. The maximum value is 5760\\. \nIf the value is missing or set to 0, your sessions can\u2019t be stopped\\. If you then call `StopStreamingSession`, the session fails\\. If the time that a session stays in the READY state exceeds the `maxSessionLengthInMinutes` value, the session will automatically be terminated \\(instead of stopped\\)\\. \nIf the value is set to a positive number, the session can be stopped\\. You can call `StopStreamingSession` to stop sessions in the READY state\\. If the time that a session stays in the READY state exceeds the `maxSessionLengthInMinutes` value, the session will automatically be stopped \\(instead of terminated\\)\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxStoppedSessionLengthInMinutes", "type": "number" }, + "SessionBackup": { + "$ref": "#/definitions/AWS::NimbleStudio::LaunchProfile.StreamConfigurationSessionBackup" + }, "SessionPersistenceMode": { "type": "string" }, "SessionStorage": { - "$ref": "#/definitions/AWS::NimbleStudio::LaunchProfile.StreamConfigurationSessionStorage" + "$ref": "#/definitions/AWS::NimbleStudio::LaunchProfile.StreamConfigurationSessionStorage", + "markdownDescription": "\\(Optional\\) The upload storage for a streaming session\\. \n*Required*: No \n*Type*: [StreamConfigurationSessionStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-launchprofile-streamconfigurationsessionstorage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionStorage" }, "StreamingImageIds": { "items": { "type": "string" }, + "markdownDescription": "The streaming images that users can select from when launching a streaming session with this launch profile\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamingImageIds", "type": "array" }, "VolumeConfiguration": { @@ -111853,6 +136885,18 @@ ], "type": "object" }, + "AWS::NimbleStudio::LaunchProfile.StreamConfigurationSessionBackup": { + "additionalProperties": false, + "properties": { + "MaxBackupsToRetain": { + "type": "number" + }, + "Mode": { + "type": "string" + } + }, + "type": "object" + }, "AWS::NimbleStudio::LaunchProfile.StreamConfigurationSessionStorage": { "additionalProperties": false, "properties": { @@ -111860,10 +136904,14 @@ "items": { "type": "string" }, + "markdownDescription": "Allows artists to upload files to their workstations\\. The only valid option is `UPLOAD`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", "type": "array" }, "Root": { - "$ref": "#/definitions/AWS::NimbleStudio::LaunchProfile.StreamingSessionStorageRoot" + "$ref": "#/definitions/AWS::NimbleStudio::LaunchProfile.StreamingSessionStorageRoot", + "markdownDescription": "The configuration for the upload storage root of the streaming session\\. \n*Required*: No \n*Type*: [StreamingSessionStorageRoot](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-launchprofile-streamingsessionstorageroot.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Root" } }, "required": [ @@ -111875,9 +136923,13 @@ "additionalProperties": false, "properties": { "Linux": { + "markdownDescription": "The folder path in Linux workstations where files are uploaded\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Linux", "type": "string" }, "Windows": { + "markdownDescription": "The folder path in Windows workstations where files are uploaded\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Windows", "type": "string" } }, @@ -111934,24 +136986,34 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A human\\-readable description of the streaming image\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Ec2ImageId": { + "markdownDescription": "The ID of an EC2 machine image with which to create the streaming image\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ec2ImageId", "type": "string" }, "Name": { + "markdownDescription": "A friendly name for a streaming image resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "StudioId": { + "markdownDescription": "The unique identifier for a studio resource\\. In Nimble Studio, all other resources are contained in a studio resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StudioId", "type": "string" }, "Tags": { "additionalProperties": true, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" } }, @@ -112034,27 +137096,39 @@ "additionalProperties": false, "properties": { "AdminRoleArn": { + "markdownDescription": "The IAM role that studio admins assume when logging in to the Nimble Studio portal\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdminRoleArn", "type": "string" }, "DisplayName": { + "markdownDescription": "A friendly name for the studio\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", "type": "string" }, "StudioEncryptionConfiguration": { - "$ref": "#/definitions/AWS::NimbleStudio::Studio.StudioEncryptionConfiguration" + "$ref": "#/definitions/AWS::NimbleStudio::Studio.StudioEncryptionConfiguration", + "markdownDescription": "Configuration of the encryption method that is used for the studio\\. \n*Required*: No \n*Type*: [StudioEncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studio-studioencryptionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StudioEncryptionConfiguration" }, "StudioName": { + "markdownDescription": "The name of the studio, as included in the URL when accessing it in the Nimble Studio portal\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StudioName", "type": "string" }, "Tags": { "additionalProperties": true, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" }, "UserRoleArn": { + "markdownDescription": "The IAM role that studio users assume when logging in to the Nimble Studio portal\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserRoleArn", "type": "string" } }, @@ -112091,9 +137165,13 @@ "additionalProperties": false, "properties": { "KeyArn": { + "markdownDescription": "The ARN for a KMS key that is used to encrypt studio data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyArn", "type": "string" }, "KeyType": { + "markdownDescription": "The type of KMS key that is used to encrypt studio data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyType", "type": "string" } }, @@ -112138,48 +137216,68 @@ "additionalProperties": false, "properties": { "Configuration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration" + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration", + "markdownDescription": "The configuration of the studio component, based on component type\\. \n*Required*: No \n*Type*: [StudioComponentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-studiocomponentconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configuration" }, "Description": { + "markdownDescription": "A human\\-readable description for the studio component resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Ec2SecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "The EC2 security groups that control access to the studio component\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ec2SecurityGroupIds", "type": "array" }, "InitializationScripts": { "items": { "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript" }, + "markdownDescription": "Initialization scripts for studio components\\. \n*Required*: No \n*Type*: List of [StudioComponentInitializationScript](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-studiocomponentinitializationscript.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InitializationScripts", "type": "array" }, "Name": { + "markdownDescription": "A friendly name for the studio component resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "ScriptParameters": { "items": { "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue" }, + "markdownDescription": "Parameters for the studio component scripts\\. \n*Required*: No \n*Type*: List of [ScriptParameterKeyValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-scriptparameterkeyvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScriptParameters", "type": "array" }, "StudioId": { + "markdownDescription": "The unique identifier for a studio resource\\. In Nimble Studio, all other resources are contained in a studio resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StudioId", "type": "string" }, "Subtype": { + "markdownDescription": "The specific subtype of a studio component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subtype", "type": "string" }, "Tags": { "additionalProperties": true, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" }, "Type": { + "markdownDescription": "The type of the studio component\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -112215,9 +137313,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name for the LDAP attribute\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "The value for the LDAP attribute\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -112230,12 +137332,18 @@ "items": { "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryComputerAttribute" }, + "markdownDescription": "A collection of custom attributes for an Active Directory computer\\. \n*Required*: No \n*Type*: List of [ActiveDirectoryComputerAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-activedirectorycomputerattribute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputerAttributes", "type": "array" }, "DirectoryId": { + "markdownDescription": "The directory ID of the Directory Service for Microsoft Active Directory to access using this studio component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DirectoryId", "type": "string" }, "OrganizationalUnitDistinguishedName": { + "markdownDescription": "The distinguished name \\(DN\\) and organizational unit \\(OU\\) of an Active Directory computer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrganizationalUnitDistinguishedName", "type": "string" } }, @@ -112245,9 +137353,13 @@ "additionalProperties": false, "properties": { "ActiveDirectoryUser": { + "markdownDescription": "The name of an Active Directory user that is used on ComputeFarm worker instances\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActiveDirectoryUser", "type": "string" }, "Endpoint": { + "markdownDescription": "The endpoint of the ComputeFarm that is accessed by the studio component resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Endpoint", "type": "string" } }, @@ -112257,6 +137369,8 @@ "additionalProperties": false, "properties": { "Endpoint": { + "markdownDescription": "The endpoint of the license service that is accessed by the studio component resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Endpoint", "type": "string" } }, @@ -112266,9 +137380,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "A script parameter key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "A script parameter value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -112278,18 +137396,28 @@ "additionalProperties": false, "properties": { "Endpoint": { + "markdownDescription": "The endpoint of the shared file system that is accessed by the studio component resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Endpoint", "type": "string" }, "FileSystemId": { + "markdownDescription": "The unique identifier for a file system\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileSystemId", "type": "string" }, "LinuxMountPoint": { + "markdownDescription": "The mount location for a shared file system on a Linux virtual workstation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LinuxMountPoint", "type": "string" }, "ShareName": { + "markdownDescription": "The name of the file share\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShareName", "type": "string" }, "WindowsMountDrive": { + "markdownDescription": "The mount location for a shared file system on a Windows virtual workstation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WindowsMountDrive", "type": "string" } }, @@ -112299,16 +137427,24 @@ "additionalProperties": false, "properties": { "ActiveDirectoryConfiguration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration" + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration", + "markdownDescription": "The configuration for a Microsoft Active Directory \\(Microsoft AD\\) studio resource\\. \n*Required*: No \n*Type*: [ActiveDirectoryConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-activedirectoryconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActiveDirectoryConfiguration" }, "ComputeFarmConfiguration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration" + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration", + "markdownDescription": "The configuration for a render farm that is associated with a studio resource\\. \n*Required*: No \n*Type*: [ComputeFarmConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-computefarmconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputeFarmConfiguration" }, "LicenseServiceConfiguration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration" + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration", + "markdownDescription": "The configuration for a license service that is associated with a studio resource\\. \n*Required*: No \n*Type*: [LicenseServiceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-licenseserviceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LicenseServiceConfiguration" }, "SharedFileSystemConfiguration": { - "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration" + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration", + "markdownDescription": "The configuration for a shared file storage system that is associated with a studio resource\\. \n*Required*: No \n*Type*: [SharedFileSystemConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-sharedfilesystemconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SharedFileSystemConfiguration" } }, "type": "object" @@ -112317,15 +137453,23 @@ "additionalProperties": false, "properties": { "LaunchProfileProtocolVersion": { + "markdownDescription": "The version number of the protocol that is used by the launch profile\\. The only valid version is \"2021\\-03\\-31\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchProfileProtocolVersion", "type": "string" }, "Platform": { + "markdownDescription": "The platform of the initialization script, either WINDOWS or LINUX\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Platform", "type": "string" }, "RunContext": { + "markdownDescription": "The method to use when running the initialization script\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RunContext", "type": "string" }, "Script": { + "markdownDescription": "The initialization script\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Script", "type": "string" } }, @@ -112389,7 +137533,6 @@ } }, "required": [ - "LabelTemplate", "ResourceTypes", "SinkIdentifier" ], @@ -112493,7 +137636,7 @@ ], "type": "object" }, - "AWS::OpenSearchServerless::AccessPolicy": { + "AWS::Omics::AnnotationStore": { "additionalProperties": false, "properties": { "Condition": { @@ -112534,18 +137677,37 @@ "Name": { "type": "string" }, - "Policy": { - "type": "string" + "Reference": { + "$ref": "#/definitions/AWS::Omics::AnnotationStore.ReferenceItem" }, - "Type": { + "SseConfig": { + "$ref": "#/definitions/AWS::Omics::AnnotationStore.SseConfig" + }, + "StoreFormat": { "type": "string" + }, + "StoreOptions": { + "$ref": "#/definitions/AWS::Omics::AnnotationStore.StoreOptions" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" } }, + "required": [ + "Name", + "StoreFormat" + ], "type": "object" }, "Type": { "enum": [ - "AWS::OpenSearchServerless::AccessPolicy" + "AWS::Omics::AnnotationStore" ], "type": "string" }, @@ -112558,12 +137720,73 @@ "type": "string" } }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Omics::AnnotationStore.ReferenceItem": { + "additionalProperties": false, + "properties": { + "ReferenceArn": { + "type": "string" + } + }, + "required": [ + "ReferenceArn" + ], + "type": "object" + }, + "AWS::Omics::AnnotationStore.SseConfig": { + "additionalProperties": false, + "properties": { + "KeyArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, "required": [ "Type" ], "type": "object" }, - "AWS::OpenSearchServerless::Collection": { + "AWS::Omics::AnnotationStore.StoreOptions": { + "additionalProperties": false, + "properties": { + "TsvStoreOptions": { + "$ref": "#/definitions/AWS::Omics::AnnotationStore.TsvStoreOptions" + } + }, + "required": [ + "TsvStoreOptions" + ], + "type": "object" + }, + "AWS::Omics::AnnotationStore.TsvStoreOptions": { + "additionalProperties": false, + "properties": { + "AnnotationType": { + "type": "string" + }, + "FormatToHeader": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Schema": { + "type": "object" + } + }, + "type": "object" + }, + "AWS::Omics::ReferenceStore": { "additionalProperties": false, "properties": { "Condition": { @@ -112604,14 +137827,17 @@ "Name": { "type": "string" }, + "SseConfig": { + "$ref": "#/definitions/AWS::Omics::ReferenceStore.SseConfig" + }, "Tags": { - "items": { - "$ref": "#/definitions/Tag" + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } }, - "type": "array" - }, - "Type": { - "type": "string" + "type": "object" } }, "required": [ @@ -112621,7 +137847,7 @@ }, "Type": { "enum": [ - "AWS::OpenSearchServerless::Collection" + "AWS::Omics::ReferenceStore" ], "type": "string" }, @@ -112640,7 +137866,22 @@ ], "type": "object" }, - "AWS::OpenSearchServerless::SecurityConfig": { + "AWS::Omics::ReferenceStore.SseConfig": { + "additionalProperties": false, + "properties": { + "KeyArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Omics::RunGroup": { "additionalProperties": false, "properties": { "Condition": { @@ -112675,24 +137916,33 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" + "MaxCpus": { + "type": "number" }, - "Name": { - "type": "string" + "MaxDuration": { + "type": "number" }, - "SamlOptions": { - "$ref": "#/definitions/AWS::OpenSearchServerless::SecurityConfig.SamlConfigOptions" + "MaxRuns": { + "type": "number" }, - "Type": { + "Name": { "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" } }, "type": "object" }, "Type": { "enum": [ - "AWS::OpenSearchServerless::SecurityConfig" + "AWS::Omics::RunGroup" ], "type": "string" }, @@ -112710,28 +137960,557 @@ ], "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": { + "AWS::Omics::SequenceStore": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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" + }, + "SseConfig": { + "$ref": "#/definitions/AWS::Omics::SequenceStore.SseConfig" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Omics::SequenceStore" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Omics::SequenceStore.SseConfig": { + "additionalProperties": false, + "properties": { + "KeyArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Omics::VariantStore": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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" + }, + "Reference": { + "$ref": "#/definitions/AWS::Omics::VariantStore.ReferenceItem" + }, + "SseConfig": { + "$ref": "#/definitions/AWS::Omics::VariantStore.SseConfig" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "Name", + "Reference" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Omics::VariantStore" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Omics::VariantStore.ReferenceItem": { + "additionalProperties": false, + "properties": { + "ReferenceArn": { + "type": "string" + } + }, + "required": [ + "ReferenceArn" + ], + "type": "object" + }, + "AWS::Omics::VariantStore.SseConfig": { + "additionalProperties": false, + "properties": { + "KeyArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Omics::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": { + "DefinitionUri": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Engine": { + "type": "string" + }, + "Main": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ParameterTemplate": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::Omics::Workflow.WorkflowParameter" + } + }, + "type": "object" + }, + "StorageCapacity": { + "type": "number" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Omics::Workflow" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Omics::Workflow.WorkflowParameter": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Optional": { + "type": "boolean" + } + }, + "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": { @@ -112922,64 +138701,94 @@ "additionalProperties": false, "properties": { "AccessPolicies": { + "markdownDescription": "An AWS Identity and Access Management \\(IAM\\) policy document that specifies who can access the OpenSearch Service domain and their permissions\\. For more information, see [Configuring access policies](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ac.html#ac-creating) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessPolicies", "type": "object" }, "AdvancedOptions": { "additionalProperties": true, + "markdownDescription": "Additional options to specify for the OpenSearch Service domain\\. For more information, see [AdvancedOptions](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/configuration-api.html#configuration-api-datatypes-advancedoptions) in the OpenSearch Service configuration API reference\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "AdvancedOptions", "type": "object" }, "AdvancedSecurityOptions": { - "$ref": "#/definitions/AWS::OpenSearchService::Domain.AdvancedSecurityOptionsInput" + "$ref": "#/definitions/AWS::OpenSearchService::Domain.AdvancedSecurityOptionsInput", + "markdownDescription": "Specifies options for fine\\-grained access control\\. \n*Required*: No \n*Type*: [AdvancedSecurityOptionsInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-advancedsecurityoptionsinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AdvancedSecurityOptions" }, "ClusterConfig": { - "$ref": "#/definitions/AWS::OpenSearchService::Domain.ClusterConfig" + "$ref": "#/definitions/AWS::OpenSearchService::Domain.ClusterConfig", + "markdownDescription": "`ClusterConfig` is a property of the AWS::OpenSearchService::Domain resource that configures an Amazon OpenSearch Service cluster\\. \n*Required*: No \n*Type*: [ClusterConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-clusterconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterConfig" }, "CognitoOptions": { - "$ref": "#/definitions/AWS::OpenSearchService::Domain.CognitoOptions" + "$ref": "#/definitions/AWS::OpenSearchService::Domain.CognitoOptions", + "markdownDescription": "Configures OpenSearch Service to use Amazon Cognito authentication for OpenSearch Dashboards\\. \n*Required*: No \n*Type*: [CognitoOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-cognitooptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CognitoOptions" }, "DomainEndpointOptions": { - "$ref": "#/definitions/AWS::OpenSearchService::Domain.DomainEndpointOptions" + "$ref": "#/definitions/AWS::OpenSearchService::Domain.DomainEndpointOptions", + "markdownDescription": "Specifies additional options for the domain endpoint, such as whether to require HTTPS for all traffic or whether to use a custom endpoint rather than the default endpoint\\. \n*Required*: No \n*Type*: [DomainEndpointOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-domainendpointoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainEndpointOptions" }, "DomainName": { + "markdownDescription": "A name for the OpenSearch Service domain\\. For valid values, see the [DomainName](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/configuration-api.html#configuration-api-datatypes-domainname) data type in the *Amazon OpenSearch Service Developer Guide*\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the domain name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nRequired when creating a new domain\\. \nIf you specify a name, you can't perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", "type": "string" }, "EBSOptions": { - "$ref": "#/definitions/AWS::OpenSearchService::Domain.EBSOptions" + "$ref": "#/definitions/AWS::OpenSearchService::Domain.EBSOptions", + "markdownDescription": "The configurations of Amazon Elastic Block Store \\(Amazon EBS\\) volumes that are attached to data nodes in the OpenSearch Service domain\\. For more information, see [EBS volume size limits](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#ebsresource) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: [EBSOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-ebsoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EBSOptions" }, "EncryptionAtRestOptions": { - "$ref": "#/definitions/AWS::OpenSearchService::Domain.EncryptionAtRestOptions" + "$ref": "#/definitions/AWS::OpenSearchService::Domain.EncryptionAtRestOptions", + "markdownDescription": "Whether the domain should encrypt data at rest, and if so, the AWS KMS key to use\\. See [Encryption of data at rest for Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/encryption-at-rest.html)\\. \n*Required*: No \n*Type*: [EncryptionAtRestOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-encryptionatrestoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionAtRestOptions" }, "EngineVersion": { + "markdownDescription": "The version of OpenSearch to use\\. The value must be in the format `OpenSearch_X.Y` or `Elasticsearch_X.Y`\\. If not specified, the latest version of OpenSearch is used\\. For information about the versions that OpenSearch Service supports, see [Supported versions of OpenSearch and Elasticsearch](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/what-is.html#choosing-version) in the *Amazon OpenSearch Service Developer Guide*\\. \nIf you set the [EnableVersionUpgrade](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-upgradeopensearchdomain) update policy to `true`, you can update `EngineVersion` without interruption\\. When `EnableVersionUpgrade` is set to `false`, or is not specified, updating `EngineVersion` results in [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EngineVersion", "type": "string" }, "LogPublishingOptions": { "additionalProperties": false, + "markdownDescription": "An object with one or more of the following keys: `SEARCH_SLOW_LOGS`, `ES_APPLICATION_LOGS`, `INDEX_SLOW_LOGS`, `AUDIT_LOGS`, depending on the types of logs you want to publish\\. Each key needs a valid `LogPublishingOption` value\\. For the full syntax, see the [examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html#aws-resource-opensearchservice-domain--examples)\\. \n*Required*: No \n*Type*: Map of [LogPublishingOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-logpublishingoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::OpenSearchService::Domain.LogPublishingOption" } }, + "title": "LogPublishingOptions", "type": "object" }, "NodeToNodeEncryptionOptions": { - "$ref": "#/definitions/AWS::OpenSearchService::Domain.NodeToNodeEncryptionOptions" + "$ref": "#/definitions/AWS::OpenSearchService::Domain.NodeToNodeEncryptionOptions", + "markdownDescription": "Specifies whether node\\-to\\-node encryption is enabled\\. See [Node\\-to\\-node encryption for Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ntn.html)\\. \n*Required*: No \n*Type*: [NodeToNodeEncryptionOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-nodetonodeencryptionoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NodeToNodeEncryptionOptions" }, "SnapshotOptions": { - "$ref": "#/definitions/AWS::OpenSearchService::Domain.SnapshotOptions" + "$ref": "#/definitions/AWS::OpenSearchService::Domain.SnapshotOptions", + "markdownDescription": "**DEPRECATED**\\. The automated snapshot configuration for the OpenSearch Service domain indices\\. \n*Required*: No \n*Type*: [SnapshotOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-snapshotoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotOptions" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An arbitrary set of tags \\(key\u2013value pairs\\) to associate with the OpenSearch Service domain\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VPCOptions": { - "$ref": "#/definitions/AWS::OpenSearchService::Domain.VPCOptions" + "$ref": "#/definitions/AWS::OpenSearchService::Domain.VPCOptions", + "markdownDescription": "The virtual private cloud \\(VPC\\) configuration for the OpenSearch Service domain\\. For more information, see [Launching your Amazon OpenSearch Service domains within a VPC](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: [VPCOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-vpcoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VPCOptions" } }, "type": "object" @@ -113007,14 +138816,29 @@ "AWS::OpenSearchService::Domain.AdvancedSecurityOptionsInput": { "additionalProperties": false, "properties": { + "AnonymousAuthDisableDate": { + "type": "string" + }, + "AnonymousAuthEnabled": { + "type": "boolean" + }, "Enabled": { + "markdownDescription": "True to enable fine\\-grained access control\\. You must also enable encryption of data at rest and node\\-to\\-node encryption\\. See [Fine\\-grained access control in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Enabled", "type": "boolean" }, "InternalUserDatabaseEnabled": { + "markdownDescription": "True to enable the internal user database\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InternalUserDatabaseEnabled", "type": "boolean" }, "MasterUserOptions": { - "$ref": "#/definitions/AWS::OpenSearchService::Domain.MasterUserOptions" + "$ref": "#/definitions/AWS::OpenSearchService::Domain.MasterUserOptions", + "markdownDescription": "Specifies information about the master user\\. \n*Required*: No \n*Type*: [MasterUserOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-masteruseroptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MasterUserOptions" + }, + "SAMLOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.SAMLOptions" } }, "type": "object" @@ -113023,33 +138847,53 @@ "additionalProperties": false, "properties": { "DedicatedMasterCount": { + "markdownDescription": "The number of instances to use for the master node\\. If you specify this property, you must specify `true` for the `DedicatedMasterEnabled` property\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DedicatedMasterCount", "type": "number" }, "DedicatedMasterEnabled": { + "markdownDescription": "Indicates whether to use a dedicated master node for the OpenSearch Service domain\\. A dedicated master node is a cluster node that performs cluster management tasks, but doesn't hold data or respond to data upload requests\\. Dedicated master nodes offload cluster management tasks to increase the stability of your search clusters\\. See [Dedicated master nodes in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-dedicatedmasternodes.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DedicatedMasterEnabled", "type": "boolean" }, "DedicatedMasterType": { + "markdownDescription": "The hardware configuration of the computer that hosts the dedicated master node, such as `m3.medium.search`\\. If you specify this property, you must specify `true` for the `DedicatedMasterEnabled` property\\. For valid values, see [Supported instance types in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DedicatedMasterType", "type": "string" }, "InstanceCount": { + "markdownDescription": "The number of data nodes \\(instances\\) to use in the OpenSearch Service domain\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceCount", "type": "number" }, "InstanceType": { + "markdownDescription": "The instance type for your data nodes, such as `m3.medium.search`\\. For valid values, see [Supported instance types in Amazon OpenSearch Service ](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", "type": "string" }, "WarmCount": { + "markdownDescription": "The number of warm nodes in the cluster\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WarmCount", "type": "number" }, "WarmEnabled": { + "markdownDescription": "Whether to enable UltraWarm storage for the cluster\\. See [UltraWarm storage for Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ultrawarm.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WarmEnabled", "type": "boolean" }, "WarmType": { + "markdownDescription": "The instance type for the cluster's warm nodes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WarmType", "type": "string" }, "ZoneAwarenessConfig": { - "$ref": "#/definitions/AWS::OpenSearchService::Domain.ZoneAwarenessConfig" + "$ref": "#/definitions/AWS::OpenSearchService::Domain.ZoneAwarenessConfig", + "markdownDescription": "Specifies zone awareness configuration options\\. Only use if `ZoneAwarenessEnabled` is `true`\\. \n*Required*: No \n*Type*: [ZoneAwarenessConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-zoneawarenessconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ZoneAwarenessConfig" }, "ZoneAwarenessEnabled": { + "markdownDescription": "Indicates whether to enable zone awareness for the OpenSearch Service domain\\. When you enable zone awareness, OpenSearch Service allocates the nodes and replica index shards that belong to a cluster across two Availability Zones \\(AZs\\) in the same region to prevent data loss and minimize downtime in the event of node or data center failure\\. Don't enable zone awareness if your cluster has no replica index shards or is a single\\-node cluster\\. For more information, see [Configuring a multi\\-AZ domain in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ZoneAwarenessEnabled", "type": "boolean" } }, @@ -113059,15 +138903,23 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Whether to enable or disable Amazon Cognito authentication for OpenSearch Dashboards\\. See [Amazon Cognito authentication for OpenSearch Dashboards](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/cognito-auth.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "IdentityPoolId": { + "markdownDescription": "The Amazon Cognito identity pool ID that you want OpenSearch Service to use for OpenSearch Dashboards authentication\\. \nRequired if you enabled Cognito Authentication for OpenSearch Dashboards\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentityPoolId", "type": "string" }, "RoleArn": { + "markdownDescription": "The `AmazonOpenSearchServiceCognitoAccess` role that allows OpenSearch Service to configure your user pool and identity pool\\. \nRequired if you enabled Cognito Authentication for OpenSearch Dashboards\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "UserPoolId": { + "markdownDescription": "The Amazon Cognito user pool ID that you want OpenSearch Service to use for OpenSearch Dashboards authentication\\. \nRequired if you enabled Cognito Authentication for OpenSearch Dashboards\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolId", "type": "string" } }, @@ -113077,18 +138929,28 @@ "additionalProperties": false, "properties": { "CustomEndpoint": { + "markdownDescription": "The fully qualified URL for your custom endpoint\\. Required if you enabled a custom endpoint for the domain\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomEndpoint", "type": "string" }, "CustomEndpointCertificateArn": { + "markdownDescription": "The AWS Certificate Manager ARN for your domain's SSL/TLS certificate\\. Required if you enabled a custom endpoint for the domain\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomEndpointCertificateArn", "type": "string" }, "CustomEndpointEnabled": { + "markdownDescription": "True to enable a custom endpoint for the domain\\. If enabled, you must also provide values for `CustomEndpoint` and `CustomEndpointCertificateArn`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomEndpointEnabled", "type": "boolean" }, "EnforceHTTPS": { + "markdownDescription": "True to require that all traffic to the domain arrive over HTTPS\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnforceHTTPS", "type": "boolean" }, "TLSSecurityPolicy": { + "markdownDescription": "The minimum TLS version required for traffic to the domain\\. Valid values are TLS 1\\.0 \\(default\\) or 1\\.2: \n+ `Policy-Min-TLS-1-0-2019-07`\n+ `Policy-Min-TLS-1-2-2019-07`\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TLSSecurityPolicy", "type": "string" } }, @@ -113098,18 +138960,26 @@ "additionalProperties": false, "properties": { "EBSEnabled": { + "markdownDescription": "Specifies whether Amazon EBS volumes are attached to data nodes in the OpenSearch Service domain\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EBSEnabled", "type": "boolean" }, "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\) that the volume supports\\. This property applies only to the Provisioned IOPS \\(SSD\\) EBS volume type\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iops", "type": "number" }, "Throughput": { "type": "number" }, "VolumeSize": { + "markdownDescription": "The size \\(in GiB\\) of the EBS volume for each data node\\. The minimum and maximum size of an EBS volume depends on the EBS volume type and the instance type to which it is attached\\. For more information, see [EBS volume size limits](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#ebsresource) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeSize", "type": "number" }, "VolumeType": { + "markdownDescription": "The EBS volume type to use with the OpenSearch Service domain, such as standard, gp2, or io1\\. For more information about each type, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeType", "type": "string" } }, @@ -113119,21 +138989,45 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Specify `true` to enable encryption at rest\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "KmsKeyId": { + "markdownDescription": "The KMS key ID\\. Takes the form `1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a`\\. Required if you enable encryption at rest\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", "type": "string" } }, "type": "object" }, + "AWS::OpenSearchService::Domain.Idp": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "MetadataContent": { + "type": "string" + } + }, + "required": [ + "EntityId", + "MetadataContent" + ], + "type": "object" + }, "AWS::OpenSearchService::Domain.LogPublishingOption": { "additionalProperties": false, "properties": { "CloudWatchLogsLogGroupArn": { + "markdownDescription": "Specifies the CloudWatch log group to publish to\\. Required if you enable log publishing\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogsLogGroupArn", "type": "string" }, "Enabled": { + "markdownDescription": "If `true`, enables the publishing of logs to CloudWatch\\. \nDefault: `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -113143,12 +139037,18 @@ "additionalProperties": false, "properties": { "MasterUserARN": { + "markdownDescription": "ARN for the master user\\. Only specify if `InternalUserDatabaseEnabled` is false in `AdvancedSecurityOptions`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MasterUserARN", "type": "string" }, "MasterUserName": { + "markdownDescription": "Username for the master user\\. Only specify if `InternalUserDatabaseEnabled` is true in `AdvancedSecurityOptions`\\. If you don't want to specify this value directly within the template, you can use a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) instead\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MasterUserName", "type": "string" }, "MasterUserPassword": { + "markdownDescription": "Password for the master user\\. Only specify if `InternalUserDatabaseEnabled` is true in `AdvancedSecurityOptions`\\. If you don't want to specify this value directly within the template, you can use a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) instead\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MasterUserPassword", "type": "string" } }, @@ -113158,11 +139058,40 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "Specifies to enable or disable node\\-to\\-node encryption on the domain\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, "type": "object" }, + "AWS::OpenSearchService::Domain.SAMLOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Idp": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.Idp" + }, + "MasterBackendRole": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SessionTimeoutMinutes": { + "type": "number" + }, + "SubjectKey": { + "type": "string" + } + }, + "type": "object" + }, "AWS::OpenSearchService::Domain.ServiceSoftwareOptions": { "additionalProperties": false, "properties": { @@ -113197,6 +139126,8 @@ "additionalProperties": false, "properties": { "AutomatedSnapshotStartHour": { + "markdownDescription": "The hour in UTC during which the service takes an automated daily snapshot of the indices in the OpenSearch Service domain\\. For example, if you specify 0, OpenSearch Service takes an automated snapshot everyday between midnight and 1 am\\. You can specify a value between 0 and 23\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutomatedSnapshotStartHour", "type": "number" } }, @@ -113209,12 +139140,16 @@ "items": { "type": "string" }, + "markdownDescription": "The list of security group IDs that are associated with the VPC endpoints for the domain\\. If you don't provide a security group ID, OpenSearch Service uses the default security group for the VPC\\. To learn more, see [Security groups for your VPC ](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) in the *Amazon VPC User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "Provide one subnet ID for each Availability Zone that your domain uses\\. For example, you must specify three subnet IDs for a three Availability Zone domain\\. To learn more, see [VPCs and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html) in the *Amazon VPC User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" } }, @@ -113224,6 +139159,8 @@ "additionalProperties": false, "properties": { "AvailabilityZoneCount": { + "markdownDescription": "If you enabled multiple Availability Zones \\(AZs\\), the number of AZs that you want the domain to use\\. \nValid values are `2` and `3`\\. Default is 2\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZoneCount", "type": "number" } }, @@ -113265,54 +139202,78 @@ "additionalProperties": false, "properties": { "AppSource": { - "$ref": "#/definitions/AWS::OpsWorks::App.Source" + "$ref": "#/definitions/AWS::OpsWorks::App.Source", + "markdownDescription": "A `Source` object that specifies the app repository\\. \n*Required*: No \n*Type*: [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source-1.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppSource" }, "Attributes": { "additionalProperties": true, + "markdownDescription": "One or more user\\-defined key/value pairs to be added to the stack attributes\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Attributes", "type": "object" }, "DataSources": { "items": { "$ref": "#/definitions/AWS::OpsWorks::App.DataSource" }, + "markdownDescription": "The app's data source\\. \n*Required*: No \n*Type*: List of [DataSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-datasource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSources", "type": "array" }, "Description": { + "markdownDescription": "A description of the app\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Domains": { "items": { "type": "string" }, + "markdownDescription": "The app virtual host settings, with multiple domains separated by commas\\. For example: `'www.example.com, example.com'` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Domains", "type": "array" }, "EnableSsl": { + "markdownDescription": "Whether to enable SSL for the app\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableSsl", "type": "boolean" }, "Environment": { "items": { "$ref": "#/definitions/AWS::OpsWorks::App.EnvironmentVariable" }, + "markdownDescription": "An array of `EnvironmentVariable` objects that specify environment variables to be associated with the app\\. After you deploy the app, these variables are defined on the associated app server instance\\. For more information, see [ Environment Variables](https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html#workingapps-creating-environment)\\. \nThere is no specific limit on the number of environment variables\\. However, the size of the associated data structure \\- which includes the variables' names, values, and protected flag values \\- cannot exceed 20 KB\\. This limit should accommodate most if not all use cases\\. Exceeding it will cause an exception with the message, \"Environment: is too large \\(maximum is 20KB\\)\\.\" \nIf you have specified one or more environment variables, you cannot modify the stack's Chef version\\.\n*Required*: No \n*Type*: List of [EnvironmentVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-environment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Environment", "type": "array" }, "Name": { + "markdownDescription": "The app name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Shortname": { + "markdownDescription": "The app's short name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Shortname", "type": "string" }, "SslConfiguration": { - "$ref": "#/definitions/AWS::OpsWorks::App.SslConfiguration" + "$ref": "#/definitions/AWS::OpsWorks::App.SslConfiguration", + "markdownDescription": "An `SslConfiguration` object with the SSL configuration\\. \n*Required*: No \n*Type*: [SslConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-sslconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SslConfiguration" }, "StackId": { + "markdownDescription": "The stack ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StackId", "type": "string" }, "Type": { + "markdownDescription": "The app type\\. Each supported type is associated with a particular layer\\. For example, PHP applications are associated with a PHP layer\\. AWS OpsWorks Stacks deploys an application to those instances that are members of the corresponding layer\\. If your app isn't one of the standard types, or you prefer to implement your own Deploy recipes, specify `other`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `aws-flow-ruby | java | nodejs | other | php | rails | static` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -113348,12 +139309,18 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The data source's ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "DatabaseName": { + "markdownDescription": "The database name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", "type": "string" }, "Type": { + "markdownDescription": "The data source's type, `AutoSelectOpsworksMysqlInstance`, `OpsworksMysqlInstance`, `RdsDbInstance`, or `None`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -113363,12 +139330,18 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "\\(Required\\) The environment variable's name, which can consist of up to 64 characters and must be specified\\. The name can contain upper\\- and lowercase letters, numbers, and underscores \\(\\_\\), but it must start with a letter or underscore\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Secure": { + "markdownDescription": "\\(Optional\\) Whether the variable's value is returned by the [DescribeApps](https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeApps) action\\. To hide an environment variable's value, set `Secure` to `true`\\. `DescribeApps` returns `*****FILTERED*****` instead of the actual value\\. The default value for `Secure` is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Secure", "type": "boolean" }, "Value": { + "markdownDescription": "\\(Optional\\) The environment variable's value, which can be left empty\\. If you specify a value, it can contain up to 256 characters, which must all be printable\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -113382,21 +139355,33 @@ "additionalProperties": false, "properties": { "Password": { + "markdownDescription": "When included in a request, the parameter depends on the repository type\\. \n+ For Amazon S3 bundles, set `Password` to the appropriate IAM secret access key\\.\n+ For HTTP bundles and Subversion repositories, set `Password` to the password\\.\nFor more information on how to safely handle IAM credentials, see [https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html)\\. \nIn responses, AWS OpsWorks Stacks returns `*****FILTERED*****` instead of the actual value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", "type": "string" }, "Revision": { + "markdownDescription": "The application's version\\. AWS OpsWorks Stacks enables you to easily deploy new versions of an application\\. One of the simplest approaches is to have branches or revisions in your repository that represent different versions that can potentially be deployed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Revision", "type": "string" }, "SshKey": { + "markdownDescription": "In requests, the repository's SSH key\\. \nIn responses, AWS OpsWorks Stacks returns `*****FILTERED*****` instead of the actual value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SshKey", "type": "string" }, "Type": { + "markdownDescription": "The repository type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `archive | git | s3 | svn` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" }, "Url": { + "markdownDescription": "The source URL\\. The following is an example of an Amazon S3 source URL: `https://s3.amazonaws.com/opsworks-demo-bucket/opsworks_cookbook_demo.tar.gz`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", "type": "string" }, "Username": { + "markdownDescription": "This parameter depends on the repository type\\. \n+ For Amazon S3 bundles, set `Username` to the appropriate IAM access key ID\\.\n+ For HTTP bundles, Git repositories, and Subversion repositories, set `Username` to the user name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", "type": "string" } }, @@ -113406,12 +139391,18 @@ "additionalProperties": false, "properties": { "Certificate": { + "markdownDescription": "The contents of the certificate's domain\\.crt file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate", "type": "string" }, "Chain": { + "markdownDescription": "Optional\\. Can be used to specify an intermediate certificate authority key or client authentication\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Chain", "type": "string" }, "PrivateKey": { + "markdownDescription": "The private key; the contents of the certificate's domain\\.kex file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateKey", "type": "string" } }, @@ -113453,9 +139444,13 @@ "additionalProperties": false, "properties": { "ElasticLoadBalancerName": { + "markdownDescription": "The Elastic Load Balancing instance name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticLoadBalancerName", "type": "string" }, "LayerId": { + "markdownDescription": "The AWS OpsWorks layer ID to which the Elastic Load Balancing load balancer is attached\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LayerId", "type": "string" } }, @@ -113522,78 +139517,120 @@ "additionalProperties": false, "properties": { "AgentVersion": { + "markdownDescription": "The default AWS OpsWorks Stacks agent version\\. You have the following options: \n+ `INHERIT` \\- Use the stack's default agent version setting\\.\n+ *version\\_number* \\- Use the specified agent version\\. This value overrides the stack's default setting\\. To update the agent version, edit the instance configuration and specify a new version\\. AWS OpsWorks Stacks installs that version on the instance\\.\nThe default setting is `INHERIT`\\. To specify an agent version, you must use the complete version number, not the abbreviated number shown on the console\\. For a list of available agent version numbers, call [DescribeAgentVersions](https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeAgentVersions)\\. AgentVersion cannot be set to Chef 12\\.2\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AgentVersion", "type": "string" }, "AmiId": { + "markdownDescription": "A custom AMI ID to be used to create the instance\\. The AMI should be based on one of the supported operating systems\\. For more information, see [Using Custom AMIs](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html)\\. \nIf you specify a custom AMI, you must set `Os` to `Custom`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AmiId", "type": "string" }, "Architecture": { + "markdownDescription": "The instance architecture\\. The default option is `x86_64`\\. Instance types do not necessarily support both architectures\\. For a list of the architectures that are supported by the different instance types, see [Instance Families and Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `i386 | x86_64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Architecture", "type": "string" }, "AutoScalingType": { + "markdownDescription": "For load\\-based or time\\-based instances, the type\\. Windows stacks can use only time\\-based instances\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `load | timer` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutoScalingType", "type": "string" }, "AvailabilityZone": { + "markdownDescription": "The Availability Zone of the AWS OpsWorks instance, such as `us-east-2a`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", "type": "string" }, "BlockDeviceMappings": { "items": { "$ref": "#/definitions/AWS::OpsWorks::Instance.BlockDeviceMapping" }, + "markdownDescription": "An array of `BlockDeviceMapping` objects that specify the instance's block devices\\. For more information, see [Block Device Mapping](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html)\\. Note that block device mappings are not supported for custom AMIs\\. \n*Required*: No \n*Type*: List of [BlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-blockdevicemapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BlockDeviceMappings", "type": "array" }, "EbsOptimized": { + "markdownDescription": "Whether to create an Amazon EBS\\-optimized instance\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsOptimized", "type": "boolean" }, "ElasticIps": { "items": { "type": "string" }, + "markdownDescription": "A list of Elastic IP addresses to associate with the instance\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticIps", "type": "array" }, "Hostname": { + "markdownDescription": "The instance host name\\. The following are character limits for instance host names\\. \n+ Linux\\-based instances: 63 characters\n+ Windows\\-based instances: 15 characters\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Hostname", "type": "string" }, "InstallUpdatesOnBoot": { + "markdownDescription": "Whether to install operating system and package updates when the instance boots\\. The default value is `true`\\. To control when updates are installed, set this value to `false`\\. You must then update your instances manually by using [CreateDeployment](https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CreateDeployment) to run the `update_dependencies` stack command or by manually running `yum` \\(Amazon Linux\\) or `apt-get` \\(Ubuntu\\) on the instances\\. \nWe strongly recommend using the default value of `true` to ensure that your instances have the latest security updates\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstallUpdatesOnBoot", "type": "boolean" }, "InstanceType": { + "markdownDescription": "The instance type, such as `t2.micro`\\. For a list of supported instance types, open the stack in the console, choose **Instances**, and choose **\\+ Instance**\\. The **Size** list contains the currently supported types\\. For more information, see [Instance Families and Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)\\. The parameter values that you use to specify the various types are in the **API Name** column of the **Available Instance Types** table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", "type": "string" }, "LayerIds": { "items": { "type": "string" }, + "markdownDescription": "An array that contains the instance's layer IDs\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LayerIds", "type": "array" }, "Os": { + "markdownDescription": "The instance's operating system, which must be set to one of the following\\. \n+ A supported Linux operating system: An Amazon Linux version, such as `Amazon Linux 2`, `Amazon Linux 2018.03`, `Amazon Linux 2017.09`, `Amazon Linux 2017.03`, `Amazon Linux 2016.09`, `Amazon Linux 2016.03`, `Amazon Linux 2015.09`, or `Amazon Linux 2015.03`\\.\n+ A supported Ubuntu operating system, such as `Ubuntu 18.04 LTS`, `Ubuntu 16.04 LTS`, `Ubuntu 14.04 LTS`, or `Ubuntu 12.04 LTS`\\.\n+ `CentOS Linux 7` \n+ `Red Hat Enterprise Linux 7` \n+ A supported Windows operating system, such as `Microsoft Windows Server 2012 R2 Base`, `Microsoft Windows Server 2012 R2 with SQL Server Express`, `Microsoft Windows Server 2012 R2 with SQL Server Standard`, or `Microsoft Windows Server 2012 R2 with SQL Server Web`\\.\n+ A custom AMI: `Custom`\\.\nNot all operating systems are supported with all versions of Chef\\. For more information about the supported operating systems, see [AWS OpsWorks Stacks Operating Systems](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html)\\. \nThe default option is the current Amazon Linux version\\. If you set this parameter to `Custom`, you must use the [CreateInstance](https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CreateInstance) action's AmiId parameter to specify the custom AMI that you want to use\\. Block device mappings are not supported if the value is `Custom`\\. For more information about how to use custom AMIs with AWS OpsWorks Stacks, see [Using Custom AMIs](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Os", "type": "string" }, "RootDeviceType": { + "markdownDescription": "The instance root device type\\. For more information, see [Storage for the Root Device](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#storage-for-the-root-device)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ebs | instance-store` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RootDeviceType", "type": "string" }, "SshKeyName": { + "markdownDescription": "The instance's Amazon EC2 key\\-pair name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SshKeyName", "type": "string" }, "StackId": { + "markdownDescription": "The stack ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StackId", "type": "string" }, "SubnetId": { + "markdownDescription": "The ID of the instance's subnet\\. If the stack is running in a VPC, you can use this parameter to override the stack's default subnet ID value and direct AWS OpsWorks Stacks to launch the instance in a different subnet\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", "type": "string" }, "Tenancy": { + "markdownDescription": "The instance's tenancy option\\. The default option is no tenancy, or if the instance is running in a VPC, inherit tenancy settings from the VPC\\. The following are valid values for this parameter: `dedicated`, `default`, or `host`\\. Because there are costs associated with changes in tenancy options, we recommend that you research tenancy options before choosing them for your instances\\. For more information about dedicated hosts, see [Dedicated Hosts Overview](http://aws.amazon.com/ec2/dedicated-hosts/) and [Amazon EC2 Dedicated Hosts](http://aws.amazon.com/ec2/dedicated-hosts/)\\. For more information about dedicated instances, see [Dedicated Instances](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/dedicated-instance.html) and [Amazon EC2 Dedicated Instances](http://aws.amazon.com/ec2/purchasing-options/dedicated-instances/)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tenancy", "type": "string" }, "TimeBasedAutoScaling": { - "$ref": "#/definitions/AWS::OpsWorks::Instance.TimeBasedAutoScaling" + "$ref": "#/definitions/AWS::OpsWorks::Instance.TimeBasedAutoScaling", + "markdownDescription": "The time\\-based scaling configuration for the instance\\. \n*Required*: No \n*Type*: [TimeBasedAutoScaling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-timebasedautoscaling.html) \n*Allowed values*: `load | timer` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TimeBasedAutoScaling" }, "VirtualizationType": { + "markdownDescription": "The instance's virtualization type, `paravirtual` or `hvm`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VirtualizationType", "type": "string" }, "Volumes": { "items": { "type": "string" }, + "markdownDescription": "A list of AWS OpsWorks volume IDs to associate with the instance\\. For more information, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-volume.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-volume.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Volumes", "type": "array" } }, @@ -113629,15 +139666,23 @@ "additionalProperties": false, "properties": { "DeviceName": { + "markdownDescription": "The device name that is exposed to the instance, such as `/dev/sdh`\\. For the root device, you can use the explicit device name or you can set this parameter to `ROOT_DEVICE` and AWS OpsWorks Stacks will provide the correct device name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceName", "type": "string" }, "Ebs": { - "$ref": "#/definitions/AWS::OpsWorks::Instance.EbsBlockDevice" + "$ref": "#/definitions/AWS::OpsWorks::Instance.EbsBlockDevice", + "markdownDescription": "An `EBSBlockDevice` that defines how to configure an Amazon EBS volume when the instance is launched\\. You can specify either the `VirtualName` or `Ebs`, but not both\\. \n*Required*: Conditional \n*Type*: [EbsBlockDevice](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-ebsblockdevice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ebs" }, "NoDevice": { + "markdownDescription": "Suppresses the specified device included in the AMI's block device mapping\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoDevice", "type": "string" }, "VirtualName": { + "markdownDescription": "The virtual device name\\. For more information, see [BlockDeviceMapping](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_BlockDeviceMapping.html)\\. You can specify either the `VirtualName` or `Ebs`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualName", "type": "string" } }, @@ -113647,18 +139692,28 @@ "additionalProperties": false, "properties": { "DeleteOnTermination": { + "markdownDescription": "Whether the volume is deleted on instance termination\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteOnTermination", "type": "boolean" }, "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\) that the volume supports\\. For more information, see [EbsBlockDevice](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EbsBlockDevice.html)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iops", "type": "number" }, "SnapshotId": { + "markdownDescription": "The snapshot ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotId", "type": "string" }, "VolumeSize": { + "markdownDescription": "The volume size, in GiB\\. For more information, see [EbsBlockDevice](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EbsBlockDevice.html)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeSize", "type": "number" }, "VolumeType": { + "markdownDescription": "The volume type\\. `gp2` for General Purpose \\(SSD\\) volumes, `io1` for Provisioned IOPS \\(SSD\\) volumes, `st1` for Throughput Optimized hard disk drives \\(HDD\\), `sc1` for Cold HDD,and `standard` for Magnetic volumes\\. \nIf you specify the `io1` volume type, you must also specify a value for the `Iops` attribute\\. The maximum ratio of provisioned IOPS to requested volume size \\(in GiB\\) is 50:1\\. AWS uses the default volume size \\(in GiB\\) specified in the AMI attributes to set IOPS to 50 x \\(volume size\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `gp2 | io1 | standard` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeType", "type": "string" } }, @@ -113669,65 +139724,79 @@ "properties": { "Friday": { "additionalProperties": true, + "markdownDescription": "The schedule for Friday\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Friday", "type": "object" }, "Monday": { "additionalProperties": true, + "markdownDescription": "The schedule for Monday\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Monday", "type": "object" }, "Saturday": { "additionalProperties": true, + "markdownDescription": "The schedule for Saturday\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Saturday", "type": "object" }, "Sunday": { "additionalProperties": true, + "markdownDescription": "The schedule for Sunday\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Sunday", "type": "object" }, "Thursday": { "additionalProperties": true, + "markdownDescription": "The schedule for Thursday\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Thursday", "type": "object" }, "Tuesday": { "additionalProperties": true, + "markdownDescription": "The schedule for Tuesday\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tuesday", "type": "object" }, "Wednesday": { "additionalProperties": true, + "markdownDescription": "The schedule for Wednesday\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Wednesday", "type": "object" } }, @@ -113770,77 +139839,115 @@ "properties": { "Attributes": { "additionalProperties": true, + "markdownDescription": "One or more user\\-defined key\\-value pairs to be added to the stack attributes\\. \nTo create a cluster layer, set the `EcsClusterArn` attribute to the cluster's ARN\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Attributes", "type": "object" }, "AutoAssignElasticIps": { + "markdownDescription": "Whether to automatically assign an [Elastic IP address](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) to the layer's instances\\. For more information, see [How to Edit a Layer](https://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-basics-edit.html)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoAssignElasticIps", "type": "boolean" }, "AutoAssignPublicIps": { + "markdownDescription": "For stacks that are running in a VPC, whether to automatically assign a public IP address to the layer's instances\\. For more information, see [How to Edit a Layer](https://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-basics-edit.html)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoAssignPublicIps", "type": "boolean" }, "CustomInstanceProfileArn": { + "markdownDescription": "The ARN of an IAM profile to be used for the layer's EC2 instances\\. For more information about IAM ARNs, see [Using Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomInstanceProfileArn", "type": "string" }, "CustomJson": { + "markdownDescription": "A JSON\\-formatted string containing custom stack configuration and deployment attributes to be installed on the layer's instances\\. For more information, see [ Using Custom JSON](https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-json-override.html)\\. This feature is supported as of version 1\\.7\\.42 of the AWS CLI\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomJson", "type": "object" }, "CustomRecipes": { - "$ref": "#/definitions/AWS::OpsWorks::Layer.Recipes" + "$ref": "#/definitions/AWS::OpsWorks::Layer.Recipes", + "markdownDescription": "A `LayerCustomRecipes` object that specifies the layer custom recipes\\. \n*Required*: No \n*Type*: [Recipes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-recipes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomRecipes" }, "CustomSecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "An array containing the layer custom security group IDs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomSecurityGroupIds", "type": "array" }, "EnableAutoHealing": { + "markdownDescription": "Whether to disable auto healing for the layer\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableAutoHealing", "type": "boolean" }, "InstallUpdatesOnBoot": { + "markdownDescription": "Whether to install operating system and package updates when the instance boots\\. The default value is `true`\\. To control when updates are installed, set this value to `false`\\. You must then update your instances manually by using [CreateDeployment](https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CreateDeployment) to run the `update_dependencies` stack command or by manually running `yum` \\(Amazon Linux\\) or `apt-get` \\(Ubuntu\\) on the instances\\. \nTo ensure that your instances have the latest security updates, we strongly recommend using the default value of `true`\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstallUpdatesOnBoot", "type": "boolean" }, "LifecycleEventConfiguration": { - "$ref": "#/definitions/AWS::OpsWorks::Layer.LifecycleEventConfiguration" + "$ref": "#/definitions/AWS::OpsWorks::Layer.LifecycleEventConfiguration", + "markdownDescription": "A `LifeCycleEventConfiguration` object that you can use to configure the Shutdown event to specify an execution timeout and enable or disable Elastic Load Balancer connection draining\\. \n*Required*: No \n*Type*: [LifecycleEventConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-lifecycleeventconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LifecycleEventConfiguration" }, "LoadBasedAutoScaling": { - "$ref": "#/definitions/AWS::OpsWorks::Layer.LoadBasedAutoScaling" + "$ref": "#/definitions/AWS::OpsWorks::Layer.LoadBasedAutoScaling", + "markdownDescription": "The load\\-based scaling configuration for the AWS OpsWorks layer\\. \n*Required*: No \n*Type*: [LoadBasedAutoScaling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBasedAutoScaling" }, "Name": { + "markdownDescription": "The layer name, which is used by the console\\. Layer names can be a maximum of 32 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Packages": { "items": { "type": "string" }, + "markdownDescription": "An array of `Package` objects that describes the layer packages\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Packages", "type": "array" }, "Shortname": { + "markdownDescription": "For custom layers only, use this parameter to specify the layer's short name, which is used internally by AWS OpsWorks Stacks and by Chef recipes\\. The short name is also used as the name for the directory where your app files are installed\\. It can have a maximum of 32 characters, which are limited to the alphanumeric characters, '\\-', '\\_', and '\\.'\\. \nBuilt\\-in layer short names are defined by AWS OpsWorks Stacks\\. For more information, see the [Layer Reference](https://docs.aws.amazon.com/opsworks/latest/userguide/layers.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Shortname", "type": "string" }, "StackId": { + "markdownDescription": "The layer stack ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StackId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Specifies one or more sets of tags \\(key\u2013value pairs\\) to associate with this AWS OpsWorks layer\\. Use tags to manage your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Type": { + "markdownDescription": "The layer type\\. A stack cannot have more than one built\\-in layer of the same type\\. It can have any number of custom layers\\. Built\\-in layers are not available in Chef 12 stacks\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `aws-flow-ruby | custom | db-master | ecs-cluster | java-app | lb | memcached | monitoring-master | nodejs-app | php-app | rails-app | web` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" }, "UseEbsOptimizedInstances": { + "markdownDescription": "Whether to use Amazon EBS\\-optimized instances\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseEbsOptimizedInstances", "type": "boolean" }, "VolumeConfigurations": { "items": { "$ref": "#/definitions/AWS::OpsWorks::Layer.VolumeConfiguration" }, + "markdownDescription": "A `VolumeConfigurations` object that describes the layer's Amazon EBS volumes\\. \n*Required*: No \n*Type*: List of [VolumeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-volumeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeConfigurations", "type": "array" } }, @@ -113880,21 +139987,33 @@ "additionalProperties": false, "properties": { "CpuThreshold": { + "markdownDescription": "The CPU utilization threshold, as a percent of the available CPU\\. A value of \\-1 disables the threshold\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CpuThreshold", "type": "number" }, "IgnoreMetricsTime": { + "markdownDescription": "The amount of time \\(in minutes\\) after a scaling event occurs that AWS OpsWorks Stacks should ignore metrics and suppress additional scaling events\\. For example, AWS OpsWorks Stacks adds new instances following an upscaling event but the instances won't start reducing the load until they have been booted and configured\\. There is no point in raising additional scaling events during that operation, which typically takes several minutes\\. `IgnoreMetricsTime` allows you to direct AWS OpsWorks Stacks to suppress scaling events long enough to get the new instances online\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IgnoreMetricsTime", "type": "number" }, "InstanceCount": { + "markdownDescription": "The number of instances to add or remove when the load exceeds a threshold\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceCount", "type": "number" }, "LoadThreshold": { + "markdownDescription": "The load threshold\\. A value of \\-1 disables the threshold\\. For more information about how load is computed, see [Load \\(computing\\)](http://en.wikipedia.org/wiki/Load_%28computing%29)\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadThreshold", "type": "number" }, "MemoryThreshold": { + "markdownDescription": "The memory utilization threshold, as a percent of the available memory\\. A value of \\-1 disables the threshold\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MemoryThreshold", "type": "number" }, "ThresholdsWaitTime": { + "markdownDescription": "The amount of time, in minutes, that the load must exceed a threshold before more instances are added or removed\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThresholdsWaitTime", "type": "number" } }, @@ -113904,7 +140023,9 @@ "additionalProperties": false, "properties": { "ShutdownEventConfiguration": { - "$ref": "#/definitions/AWS::OpsWorks::Layer.ShutdownEventConfiguration" + "$ref": "#/definitions/AWS::OpsWorks::Layer.ShutdownEventConfiguration", + "markdownDescription": "The Shutdown event configuration\\. \n*Required*: No \n*Type*: [ShutdownEventConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-lifecycleeventconfiguration-shutdowneventconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShutdownEventConfiguration" } }, "type": "object" @@ -113913,13 +140034,19 @@ "additionalProperties": false, "properties": { "DownScaling": { - "$ref": "#/definitions/AWS::OpsWorks::Layer.AutoScalingThresholds" + "$ref": "#/definitions/AWS::OpsWorks::Layer.AutoScalingThresholds", + "markdownDescription": "An `AutoScalingThresholds` object that describes the downscaling configuration, which defines how and when AWS OpsWorks Stacks reduces the number of instances\\. \n*Required*: No \n*Type*: [AutoScalingThresholds](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling-autoscalingthresholds.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DownScaling" }, "Enable": { + "markdownDescription": "Whether load\\-based auto scaling is enabled for the layer\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enable", "type": "boolean" }, "UpScaling": { - "$ref": "#/definitions/AWS::OpsWorks::Layer.AutoScalingThresholds" + "$ref": "#/definitions/AWS::OpsWorks::Layer.AutoScalingThresholds", + "markdownDescription": "An `AutoScalingThresholds` object that describes the upscaling configuration, which defines how and when AWS OpsWorks Stacks increases the number of instances\\. \n*Required*: No \n*Type*: [AutoScalingThresholds](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling-autoscalingthresholds.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpScaling" } }, "type": "object" @@ -113931,30 +140058,40 @@ "items": { "type": "string" }, + "markdownDescription": "An array of custom recipe names to be run following a `configure` event\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configure", "type": "array" }, "Deploy": { "items": { "type": "string" }, + "markdownDescription": "An array of custom recipe names to be run following a `deploy` event\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Deploy", "type": "array" }, "Setup": { "items": { "type": "string" }, + "markdownDescription": "An array of custom recipe names to be run following a `setup` event\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Setup", "type": "array" }, "Shutdown": { "items": { "type": "string" }, + "markdownDescription": "An array of custom recipe names to be run following a `shutdown` event\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Shutdown", "type": "array" }, "Undeploy": { "items": { "type": "string" }, + "markdownDescription": "An array of custom recipe names to be run following a `undeploy` event\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Undeploy", "type": "array" } }, @@ -113964,9 +140101,13 @@ "additionalProperties": false, "properties": { "DelayUntilElbConnectionsDrained": { + "markdownDescription": "Whether to enable Elastic Load Balancing connection draining\\. For more information, see [Connection Draining](https://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/TerminologyandKeyConcepts.html#conn-drain) \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DelayUntilElbConnectionsDrained", "type": "boolean" }, "ExecutionTimeout": { + "markdownDescription": "The time, in seconds, that AWS OpsWorks Stacks waits after triggering a Shutdown event before shutting down an instance\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionTimeout", "type": "number" } }, @@ -113976,24 +140117,38 @@ "additionalProperties": false, "properties": { "Encrypted": { + "markdownDescription": "Specifies whether an Amazon EBS volume is encrypted\\. For more information, see [Amazon EBS Encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encrypted", "type": "boolean" }, "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\) to provision for the volume\\. For PIOPS volumes, the IOPS per disk\\. \nIf you specify `io1` for the volume type, you must specify this property\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iops", "type": "number" }, "MountPoint": { + "markdownDescription": "The volume mount point\\. For example \"/dev/sdh\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MountPoint", "type": "string" }, "NumberOfDisks": { + "markdownDescription": "The number of disks in the volume\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfDisks", "type": "number" }, "RaidLevel": { + "markdownDescription": "The volume [RAID level](http://en.wikipedia.org/wiki/Standard_RAID_levels)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RaidLevel", "type": "number" }, "Size": { + "markdownDescription": "The volume size\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Size", "type": "number" }, "VolumeType": { + "markdownDescription": "The volume type\\. For more information, see [ Amazon EBS Volume Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)\\. \n+ `standard` \\- Magnetic\\. Magnetic volumes must have a minimum size of 1 GiB and a maximum size of 1024 GiB\\.\n+ `io1` \\- Provisioned IOPS \\(SSD\\)\\. PIOPS volumes must have a minimum size of 4 GiB and a maximum size of 16384 GiB\\.\n+ `gp2` \\- General Purpose \\(SSD\\)\\. General purpose volumes must have a minimum size of 1 GiB and a maximum size of 16384 GiB\\.\n+ `st1` \\- Throughput Optimized hard disk drive \\(HDD\\)\\. Throughput optimized HDD volumes must have a minimum size of 500 GiB and a maximum size of 16384 GiB\\.\n+ `sc1` \\- Cold HDD\\. Cold HDD volumes must have a minimum size of 500 GiB and a maximum size of 16384 GiB\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeType", "type": "string" } }, @@ -114035,96 +140190,146 @@ "additionalProperties": false, "properties": { "AgentVersion": { + "markdownDescription": "The default AWS OpsWorks Stacks agent version\\. You have the following options: \n+ Auto\\-update \\- Set this parameter to `LATEST`\\. AWS OpsWorks Stacks automatically installs new agent versions on the stack's instances as soon as they are available\\.\n+ Fixed version \\- Set this parameter to your preferred agent version\\. To update the agent version, you must edit the stack configuration and specify a new version\\. AWS OpsWorks Stacks installs that version on the stack's instances\\.\nThe default setting is the most recent release of the agent\\. To specify an agent version, you must use the complete version number, not the abbreviated number shown on the console\\. For a list of available agent version numbers, call [DescribeAgentVersions](https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeAgentVersions)\\. AgentVersion cannot be set to Chef 12\\.2\\. \nYou can also specify an agent version when you create or update an instance, which overrides the stack's default setting\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AgentVersion", "type": "string" }, "Attributes": { "additionalProperties": true, + "markdownDescription": "One or more user\\-defined key\\-value pairs to be added to the stack attributes\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Attributes", "type": "object" }, "ChefConfiguration": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.ChefConfiguration" + "$ref": "#/definitions/AWS::OpsWorks::Stack.ChefConfiguration", + "markdownDescription": "A `ChefConfiguration` object that specifies whether to enable Berkshelf and the Berkshelf version on Chef 11\\.10 stacks\\. For more information, see [Create a New Stack](https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html)\\. \n*Required*: No \n*Type*: [ChefConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-chefconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChefConfiguration" }, "CloneAppIds": { "items": { "type": "string" }, + "markdownDescription": "If you're cloning an AWS OpsWorks stack, a list of AWS OpsWorks application stack IDs from the source stack to include in the cloned stack\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CloneAppIds", "type": "array" }, "ClonePermissions": { + "markdownDescription": "If you're cloning an AWS OpsWorks stack, indicates whether to clone the source stack's permissions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClonePermissions", "type": "boolean" }, "ConfigurationManager": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.StackConfigurationManager" + "$ref": "#/definitions/AWS::OpsWorks::Stack.StackConfigurationManager", + "markdownDescription": "The configuration manager\\. When you create a stack we recommend that you use the configuration manager to specify the Chef version: 12, 11\\.10, or 11\\.4 for Linux stacks, or 12\\.2 for Windows stacks\\. The default value for Linux stacks is currently 12\\. \n*Required*: No \n*Type*: [StackConfigurationManager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-stackconfigmanager.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfigurationManager" }, "CustomCookbooksSource": { - "$ref": "#/definitions/AWS::OpsWorks::Stack.Source" + "$ref": "#/definitions/AWS::OpsWorks::Stack.Source", + "markdownDescription": "Contains the information required to retrieve an app or cookbook from a repository\\. For more information, see [Adding Apps](https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html) or [Cookbooks and Recipes](https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook.html)\\. \n*Required*: No \n*Type*: [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomCookbooksSource" }, "CustomJson": { + "markdownDescription": "A string that contains user\\-defined, custom JSON\\. It can be used to override the corresponding default stack configuration attribute values or to pass data to recipes\\. The string should be in the following format: \n `\"{\\\"key1\\\": \\\"value1\\\", \\\"key2\\\": \\\"value2\\\",...}\"` \nFor more information about custom JSON, see [Use Custom JSON to Modify the Stack Configuration Attributes](https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomJson", "type": "object" }, "DefaultAvailabilityZone": { + "markdownDescription": "The stack's default Availability Zone, which must be in the specified region\\. For more information, see [Regions and Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html)\\. If you also specify a value for `DefaultSubnetId`, the subnet must be in the same zone\\. For more information, see the `VpcId` parameter description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultAvailabilityZone", "type": "string" }, "DefaultInstanceProfileArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an IAM profile that is the default profile for all of the stack's EC2 instances\\. For more information about IAM ARNs, see [Using Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultInstanceProfileArn", "type": "string" }, "DefaultOs": { + "markdownDescription": "The stack's default operating system, which is installed on every instance unless you specify a different operating system when you create the instance\\. You can specify one of the following\\. \n+ A supported Linux operating system: An Amazon Linux version, such as `Amazon Linux 2`, `Amazon Linux 2018.03`, `Amazon Linux 2017.09`, `Amazon Linux 2017.03`, `Amazon Linux 2016.09`, `Amazon Linux 2016.03`, `Amazon Linux 2015.09`, or `Amazon Linux 2015.03`\\.\n+ A supported Ubuntu operating system, such as `Ubuntu 18.04 LTS`, `Ubuntu 16.04 LTS`, `Ubuntu 14.04 LTS`, or `Ubuntu 12.04 LTS`\\.\n+ `CentOS Linux 7` \n+ `Red Hat Enterprise Linux 7` \n+ A supported Windows operating system, such as `Microsoft Windows Server 2012 R2 Base`, `Microsoft Windows Server 2012 R2 with SQL Server Express`, `Microsoft Windows Server 2012 R2 with SQL Server Standard`, or `Microsoft Windows Server 2012 R2 with SQL Server Web`\\.\n+ A custom AMI: `Custom`\\. You specify the custom AMI you want to use when you create instances\\. For more information, see [ Using Custom AMIs](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html)\\.\nThe default option is the current Amazon Linux version\\. Not all operating systems are supported with all versions of Chef\\. For more information about supported operating systems, see [AWS OpsWorks Stacks Operating Systems](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultOs", "type": "string" }, "DefaultRootDeviceType": { + "markdownDescription": "The default root device type\\. This value is the default for all instances in the stack, but you can override it when you create an instance\\. The default option is `instance-store`\\. For more information, see [Storage for the Root Device](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#storage-for-the-root-device)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ebs | instance-store` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultRootDeviceType", "type": "string" }, "DefaultSshKeyName": { + "markdownDescription": "A default Amazon EC2 key pair name\\. The default value is none\\. If you specify a key pair name, AWS OpsWorks installs the public key on the instance and you can use the private key with an SSH client to log in to the instance\\. For more information, see [ Using SSH to Communicate with an Instance](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-ssh.html) and [ Managing SSH Access](https://docs.aws.amazon.com/opsworks/latest/userguide/security-ssh-access.html)\\. You can override this setting by specifying a different key pair, or no key pair, when you [ create an instance](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-add.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultSshKeyName", "type": "string" }, "DefaultSubnetId": { + "markdownDescription": "The stack's default subnet ID\\. All instances are launched into this subnet unless you specify another subnet ID when you create the instance\\. This parameter is required if you specify a value for the `VpcId` parameter\\. If you also specify a value for `DefaultAvailabilityZone`, the subnet must be in that zone\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultSubnetId", "type": "string" }, "EcsClusterArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon Elastic Container Service \\(Amazon ECS\\) cluster to register with the AWS OpsWorks stack\\. \nIf you specify a cluster that's registered with another AWS OpsWorks stack, AWS CloudFormation deregisters the existing association before registering the cluster\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EcsClusterArn", "type": "string" }, "ElasticIps": { "items": { "$ref": "#/definitions/AWS::OpsWorks::Stack.ElasticIp" }, + "markdownDescription": "A list of Elastic IP addresses to register with the AWS OpsWorks stack\\. \nIf you specify an IP address that's registered with another AWS OpsWorks stack, AWS CloudFormation deregisters the existing association before registering the IP address\\.\n*Required*: No \n*Type*: List of [ElasticIp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-elasticip.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticIps", "type": "array" }, "HostnameTheme": { + "markdownDescription": "The stack's host name theme, with spaces replaced by underscores\\. The theme is used to generate host names for the stack's instances\\. By default, `HostnameTheme` is set to `Layer_Dependent`, which creates host names by appending integers to the layer's short name\\. The other themes are: \n+ `Baked_Goods` \n+ `Clouds` \n+ `Europe_Cities` \n+ `Fruits` \n+ `Greek_Deities_and_Titans` \n+ `Legendary_creatures_from_Japan` \n+ `Planets_and_Moons` \n+ `Roman_Deities` \n+ `Scottish_Islands` \n+ `US_Cities` \n+ `Wild_Cats` \nTo obtain a generated host name, call `GetHostNameSuggestion`, which returns a host name based on the current theme\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostnameTheme", "type": "string" }, "Name": { + "markdownDescription": "The stack name\\. Stack names can be a maximum of 64 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "RdsDbInstances": { "items": { "$ref": "#/definitions/AWS::OpsWorks::Stack.RdsDbInstance" }, + "markdownDescription": "The Amazon Relational Database Service \\(Amazon RDS\\) database instance to register with the AWS OpsWorks stack\\. \nIf you specify a database instance that's registered with another AWS OpsWorks stack, AWS CloudFormation deregisters the existing association before registering the database instance\\.\n*Required*: No \n*Type*: List of [RdsDbInstance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-rdsdbinstance.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RdsDbInstances", "type": "array" }, "ServiceRoleArn": { + "markdownDescription": "The stack's IAM role, which allows AWS OpsWorks Stacks to work with AWS resources on your behalf\\. You must set this parameter to the Amazon Resource Name \\(ARN\\) for an existing IAM role\\. For more information about IAM ARNs, see [Using Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceRoleArn", "type": "string" }, "SourceStackId": { + "markdownDescription": "If you're cloning an AWS OpsWorks stack, the stack ID of the source AWS OpsWorks stack to clone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceStackId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A map that contains tag keys and tag values that are attached to a stack or layer\\. \n+ The key cannot be empty\\.\n+ The key can be a maximum of 127 characters, and can contain only Unicode letters, numbers, or separators, or the following special characters: `+ - = . _ : /` \n+ The value can be a maximum 255 characters, and contain only Unicode letters, numbers, or separators, or the following special characters: `+ - = . _ : /` \n+ Leading and trailing white spaces are trimmed from both the key and value\\.\n+ A maximum of 40 tags is allowed for any resource\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "UseCustomCookbooks": { + "markdownDescription": "Whether the stack uses custom cookbooks\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseCustomCookbooks", "type": "boolean" }, "UseOpsworksSecurityGroups": { + "markdownDescription": "Whether to associate the AWS OpsWorks Stacks built\\-in security groups with the stack's layers\\. \n AWS OpsWorks Stacks provides a standard set of built\\-in security groups, one for each layer, which are associated with layers by default\\. With `UseOpsworksSecurityGroups` you can instead provide your own custom security groups\\. `UseOpsworksSecurityGroups` has the following settings: \n+ True \\- AWS OpsWorks Stacks automatically associates the appropriate built\\-in security group with each layer \\(default setting\\)\\. You can associate additional security groups with a layer after you create it, but you cannot delete the built\\-in security group\\.\n+ False \\- AWS OpsWorks Stacks does not associate built\\-in security groups with layers\\. You must create appropriate EC2 security groups and associate a security group with each layer that you create\\. However, you can still manually associate a built\\-in security group with a layer on creation; custom security groups are required only for those layers that need custom settings\\.\nFor more information, see [Create a New Stack](https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseOpsworksSecurityGroups", "type": "boolean" }, "VpcId": { + "markdownDescription": "The ID of the VPC that the stack is to be launched into\\. The VPC must be in the stack's region\\. All instances are launched into this VPC\\. You cannot change the ID later\\. \n+ If your account supports EC2\\-Classic, the default value is `no VPC`\\.\n+ If your account does not support EC2\\-Classic, the default value is the default VPC for the specified region\\.\nIf the VPC ID corresponds to a default VPC and you have specified either the `DefaultAvailabilityZone` or the `DefaultSubnetId` parameter only, AWS OpsWorks Stacks infers the value of the other parameter\\. If you specify neither parameter, AWS OpsWorks Stacks sets these parameters to the first valid Availability Zone for the specified region and the corresponding default VPC subnet ID, respectively\\. \nIf you specify a nondefault VPC ID, note the following: \n+ It must belong to a VPC in your account that is in the specified region\\.\n+ You must specify a value for `DefaultSubnetId`\\.\nFor more information about how to use AWS OpsWorks Stacks with a VPC, see [Running a Stack in a VPC](https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-vpc.html)\\. For more information about default VPC and EC2\\-Classic, see [Supported Platforms](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -114160,9 +140365,13 @@ "additionalProperties": false, "properties": { "BerkshelfVersion": { + "markdownDescription": "The Berkshelf version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BerkshelfVersion", "type": "string" }, "ManageBerkshelf": { + "markdownDescription": "Whether to enable Berkshelf\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManageBerkshelf", "type": "boolean" } }, @@ -114172,9 +140381,13 @@ "additionalProperties": false, "properties": { "Ip": { + "markdownDescription": "The IP address\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ip", "type": "string" }, "Name": { + "markdownDescription": "The name, which can be a maximum of 32 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -114187,12 +140400,18 @@ "additionalProperties": false, "properties": { "DbPassword": { + "markdownDescription": "AWS OpsWorks Stacks returns `*****FILTERED*****` instead of the actual value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DbPassword", "type": "string" }, "DbUser": { + "markdownDescription": "The master user name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DbUser", "type": "string" }, "RdsDbInstanceArn": { + "markdownDescription": "The instance's ARN\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RdsDbInstanceArn", "type": "string" } }, @@ -114207,21 +140426,33 @@ "additionalProperties": false, "properties": { "Password": { + "markdownDescription": "When included in a request, the parameter depends on the repository type\\. \n+ For Amazon S3 bundles, set `Password` to the appropriate IAM secret access key\\.\n+ For HTTP bundles and Subversion repositories, set `Password` to the password\\.\nFor more information on how to safely handle IAM credentials, see [https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html)\\. \nIn responses, AWS OpsWorks Stacks returns `*****FILTERED*****` instead of the actual value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", "type": "string" }, "Revision": { + "markdownDescription": "The application's version\\. AWS OpsWorks Stacks enables you to easily deploy new versions of an application\\. One of the simplest approaches is to have branches or revisions in your repository that represent different versions that can potentially be deployed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Revision", "type": "string" }, "SshKey": { + "markdownDescription": "The repository's SSH key\\. For more information, see [Using Git Repository SSH Keys](https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-deploykeys.html) in the *AWS OpsWorks User Guide*\\. To pass in an SSH key as a parameter, see the following example: \n `\"Parameters\" : { \"GitSSHKey\" : { \"Description\" : \"Change SSH key newlines to commas.\", \"Type\" : \"CommaDelimitedList\", \"NoEcho\" : \"true\" }, ... \"CustomCookbooksSource\": { \"Revision\" : { \"Ref\": \"GitRevision\"}, \"SshKey\" : { \"Fn::Join\" : [ \"\\n\", { \"Ref\": \"GitSSHKey\"} ] }, \"Type\": \"git\", \"Url\": { \"Ref\": \"GitURL\"} } ...` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SshKey", "type": "string" }, "Type": { + "markdownDescription": "The repository type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `archive | git | s3 | svn` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" }, "Url": { + "markdownDescription": "The source URL\\. The following is an example of an Amazon S3 source URL: `https://s3.amazonaws.com/opsworks-demo-bucket/opsworks_cookbook_demo.tar.gz`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", "type": "string" }, "Username": { + "markdownDescription": "This parameter depends on the repository type\\. \n+ For Amazon S3 bundles, set `Username` to the appropriate IAM access key ID\\.\n+ For HTTP bundles, Git repositories, and Subversion repositories, set `Username` to the user name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", "type": "string" } }, @@ -114231,9 +140462,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name\\. This parameter must be set to `Chef`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Version": { + "markdownDescription": "The Chef version\\. This parameter must be set to 12, 11\\.10, or 11\\.4 for Linux stacks, and to 12\\.2 for Windows stacks\\. The default value for Linux stacks is 12\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -114275,15 +140510,23 @@ "additionalProperties": false, "properties": { "AllowSelfManagement": { + "markdownDescription": "Whether users can specify their own SSH public key through the My Settings page\\. For more information, see [Managing User Permissions](https://docs.aws.amazon.com/opsworks/latest/userguide/security-settingsshkey.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowSelfManagement", "type": "boolean" }, "IamUserArn": { + "markdownDescription": "The user's IAM ARN\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IamUserArn", "type": "string" }, "SshPublicKey": { + "markdownDescription": "The user's SSH public key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SshPublicKey", "type": "string" }, "SshUsername": { + "markdownDescription": "The user's SSH user name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SshUsername", "type": "string" } }, @@ -114349,15 +140592,23 @@ "additionalProperties": false, "properties": { "Ec2VolumeId": { + "markdownDescription": "The Amazon EC2 volume ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ec2VolumeId", "type": "string" }, "MountPoint": { + "markdownDescription": "The volume mount point\\. For example, \"/mnt/disk1\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MountPoint", "type": "string" }, "Name": { + "markdownDescription": "The volume name\\. Volume names are a maximum of 128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "StackId": { + "markdownDescription": "The stack ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StackId", "type": "string" } }, @@ -114424,78 +140675,115 @@ "additionalProperties": false, "properties": { "AssociatePublicIpAddress": { + "markdownDescription": "Associate a public IP address with a server that you are launching\\. Valid values are `true` or `false`\\. The default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AssociatePublicIpAddress", "type": "boolean" }, "BackupId": { + "markdownDescription": "If you specify this field, AWS OpsWorks CM creates the server by using the backup represented by BackupId\\. \n*Required*: No \n*Type*: String \n*Maximum*: `79` \n*Pattern*: `[a-zA-Z][a-zA-Z0-9\\-\\.\\:]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BackupId", "type": "string" }, "BackupRetentionCount": { + "markdownDescription": "The number of automated backups that you want to keep\\. Whenever a new backup is created, AWS OpsWorks CM deletes the oldest backups if this number is exceeded\\. The default value is `1`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackupRetentionCount", "type": "number" }, "CustomCertificate": { + "markdownDescription": "Supported on servers running Chef Automate 2\\.0 only\\. A PEM\\-formatted HTTPS certificate\\. The value can be be a single, self\\-signed certificate, or a certificate chain\\. If you specify a custom certificate, you must also specify values for `CustomDomain` and `CustomPrivateKey`\\. The following are requirements for the `CustomCertificate` value: \n+ You can provide either a self\\-signed, custom certificate, or the full certificate chain\\.\n+ The certificate must be a valid X509 certificate, or a certificate chain in PEM format\\.\n+ The certificate must be valid at the time of upload\\. A certificate can't be used before its validity period begins \\(the certificate's `NotBefore` date\\), or after it expires \\(the certificate's `NotAfter` date\\)\\.\n+ The certificate\u2019s common name or subject alternative names \\(SANs\\), if present, must match the value of `CustomDomain`\\.\n+ The certificate must match the value of `CustomPrivateKey`\\.\n*Required*: No \n*Type*: String \n*Maximum*: `2097152` \n*Pattern*: `(?s)\\s*-----BEGIN CERTIFICATE-----.+-----END CERTIFICATE-----\\s*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomCertificate", "type": "string" }, "CustomDomain": { + "markdownDescription": "Supported on servers running Chef Automate 2\\.0 only\\. An optional public endpoint of a server, such as `https://aws.my-company.com`\\. To access the server, create a CNAME DNS record in your preferred DNS service that points the custom domain to the endpoint that is generated when the server is created \\(the value of the CreateServer Endpoint attribute\\)\\. You cannot access the server by using the generated `Endpoint` value if the server is using a custom domain\\. If you specify a custom domain, you must also specify values for `CustomCertificate` and `CustomPrivateKey`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `253` \n*Pattern*: `^(((?!-)[A-Za-z0-9-]{0,62}[A-Za-z0-9])\\.)+((?!-)[A-Za-z0-9-]{1,62}[A-Za-z0-9])$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomDomain", "type": "string" }, "CustomPrivateKey": { + "markdownDescription": "Supported on servers running Chef Automate 2\\.0 only\\. A private key in PEM format for connecting to the server by using HTTPS\\. The private key must not be encrypted; it cannot be protected by a password or passphrase\\. If you specify a custom private key, you must also specify values for `CustomDomain` and `CustomCertificate`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `(?ms)\\s*^-----BEGIN (?-s:.*)PRIVATE KEY-----$.*?^-----END (?-s:.*)PRIVATE KEY-----$\\s*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomPrivateKey", "type": "string" }, "DisableAutomatedBackup": { + "markdownDescription": "Enable or disable scheduled backups\\. Valid values are `true` or `false`\\. The default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableAutomatedBackup", "type": "boolean" }, "Engine": { + "markdownDescription": "The configuration management engine to use\\. Valid values include `ChefAutomate` and `Puppet`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `(?s).*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Engine", "type": "string" }, "EngineAttributes": { "items": { "$ref": "#/definitions/AWS::OpsWorksCM::Server.EngineAttribute" }, + "markdownDescription": "Optional engine attributes on a specified server\\.", + "title": "EngineAttributes", "type": "array" }, "EngineModel": { + "markdownDescription": "The engine model of the server\\. Valid values in this release include `Monolithic` for Puppet and `Single` for Chef\\. \n*Required*: No \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `(?s).*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineModel", "type": "string" }, "EngineVersion": { + "markdownDescription": "The major release version of the engine that you want to use\\. For a Chef server, the valid value for EngineVersion is currently `2`\\. For a Puppet server, valid values are `2019` or `2017`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `(?s).*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineVersion", "type": "string" }, "InstanceProfileArn": { + "markdownDescription": "The ARN of the instance profile that your Amazon EC2 instances use\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `arn:aws:iam::[0-9]{12}:instance-profile/.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceProfileArn", "type": "string" }, "InstanceType": { + "markdownDescription": "The Amazon EC2 instance type to use\\. For example, `m5.large`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `(?s).*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", "type": "string" }, "KeyPair": { + "markdownDescription": "The Amazon EC2 key pair to set for the instance\\. This parameter is optional; if desired, you may specify this parameter to connect to your instances by using SSH\\. \n*Required*: No \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyPair", "type": "string" }, "PreferredBackupWindow": { + "markdownDescription": "The start time for a one\\-hour period during which AWS OpsWorks CM backs up application\\-level data on your server if automated backups are enabled\\. Valid values must be specified in one of the following formats: \n+ `HH:MM` for daily backups\n+ `DDD:HH:MM` for weekly backups\n `MM` must be specified as `00`\\. The specified time is in coordinated universal time \\(UTC\\)\\. The default value is a random, daily start time\\. \n **Example:** `08:00`, which represents a daily start time of 08:00 UTC\\. \n **Example:** `Mon:08:00`, which represents a start time of every Monday at 08:00 UTC\\. \\(8:00 a\\.m\\.\\) \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredBackupWindow", "type": "string" }, "PreferredMaintenanceWindow": { + "markdownDescription": "The start time for a one\\-hour period each week during which AWS OpsWorks CM performs maintenance on the instance\\. Valid values must be specified in the following format: `DDD:HH:MM`\\. `MM` must be specified as `00`\\. The specified time is in coordinated universal time \\(UTC\\)\\. The default value is a random one\\-hour period on Tuesday, Wednesday, or Friday\\. See `TimeWindowDefinition` for more information\\. \n **Example:** `Mon:08:00`, which represents a start time of every Monday at 08:00 UTC\\. \\(8:00 a\\.m\\.\\) \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", "type": "string" }, "SecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "A list of security group IDs to attach to the Amazon EC2 instance\\. If you add this parameter, the specified security groups must be within the VPC that is specified by `SubnetIds`\\. \n If you do not specify this parameter, AWS OpsWorks CM creates one new security group that uses TCP ports 22 and 443, open to 0\\.0\\.0\\.0/0 \\(everyone\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroupIds", "type": "array" }, - "ServerName": { - "type": "string" - }, "ServiceRoleArn": { + "markdownDescription": "The service role that the AWS OpsWorks CM service backend uses to work with your account\\. Although the AWS OpsWorks management console typically creates the service role for you, if you are using the AWS CLI or API commands, run the service\\-role\\-creation\\.yaml AWS CloudFormation template, located at https://s3\\.amazonaws\\.com/opsworks\\-cm\\-us\\-east\\-1\\-prod\\-default\\-assets/misc/opsworks\\-cm\\-roles\\.yaml\\. This template creates a CloudFormation stack that includes the service role and instance profile that you need\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `arn:aws:iam::[0-9]{12}:role/.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceRoleArn", "type": "string" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "The IDs of subnets in which to launch the server EC2 instance\\. \n Amazon EC2\\-Classic customers: This field is required\\. All servers must run within a VPC\\. The VPC must have \"Auto Assign Public IP\" enabled\\. \n EC2\\-VPC customers: This field is optional\\. If you do not specify subnet IDs, your EC2 instances are created in a default subnet that is selected by Amazon EC2\\. If you specify subnet IDs, the VPC must have \"Auto Assign Public IP\" enabled\\. \nFor more information about supported Amazon EC2 platforms, see [Supported Platforms](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetIds", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A map that contains tag keys and tag values to attach to an AWS OpsWorks for Chef Automate or OpsWorks for Puppet Enterprise server\\. \n+ The key cannot be empty\\.\n+ The key can be a maximum of 127 characters, and can contain only Unicode letters, numbers, or separators, or the following special characters: `+ - = . _ : / @` \n+ The value can be a maximum 255 characters, and contain only Unicode letters, numbers, or separators, or the following special characters: `+ - = . _ : / @` \n+ Leading and trailing spaces are trimmed from both the key and value\\.\n+ A maximum of 50 user\\-applied tags is allowed for any AWS OpsWorks CM server\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -114531,9 +140819,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the engine attribute\\. \n **Attribute name for Chef Automate servers:** \n+ `CHEF_AUTOMATE_ADMIN_PASSWORD` \n **Attribute names for Puppet Enterprise servers:** \n+ `PUPPET_ADMIN_PASSWORD` \n+ `PUPPET_R10K_REMOTE` \n+ `PUPPET_R10K_PRIVATE_KEY` \n*Required*: No \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `(?s).*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "The value of the engine attribute\\. \n **Attribute value for Chef Automate servers:** \n+ `CHEF_AUTOMATE_PIVOTAL_KEY`: A base64\\-encoded RSA public key\\. The corresponding private key is required to access the Chef API\\. You can generate this key by running the following [OpenSSL](https://www.openssl.org/) command on Linux\\-based computers\\.", + "title": "Value", "type": "string" } }, @@ -114822,36 +141114,56 @@ "additionalProperties": false, "properties": { "ApplicationInstanceIdToReplace": { + "markdownDescription": "The ID of an application instance to replace with the new instance\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9\\-\\_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationInstanceIdToReplace", "type": "string" }, "DefaultRuntimeContextDevice": { + "markdownDescription": "The device's ID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9\\-\\_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DefaultRuntimeContextDevice", "type": "string" }, "Description": { + "markdownDescription": "A description for the application instance\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `255` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "DeviceId": { + "markdownDescription": "A device's ID\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9\\-\\_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceId", "type": "string" }, "ManifestOverridesPayload": { - "$ref": "#/definitions/AWS::Panorama::ApplicationInstance.ManifestOverridesPayload" + "$ref": "#/definitions/AWS::Panorama::ApplicationInstance.ManifestOverridesPayload", + "markdownDescription": "Setting overrides for the application manifest\\. \n*Required*: No \n*Type*: [ManifestOverridesPayload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-panorama-applicationinstance-manifestoverridespayload.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ManifestOverridesPayload" }, "ManifestPayload": { - "$ref": "#/definitions/AWS::Panorama::ApplicationInstance.ManifestPayload" + "$ref": "#/definitions/AWS::Panorama::ApplicationInstance.ManifestPayload", + "markdownDescription": "The application's manifest document\\. \n*Required*: Yes \n*Type*: [ManifestPayload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-panorama-applicationinstance-manifestpayload.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ManifestPayload" }, "Name": { + "markdownDescription": "A name for the application instance\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9\\-\\_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RuntimeRoleArn": { + "markdownDescription": "The ARN of a runtime role for the application instance\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `arn:[a-z0-9][-.a-z0-9]{0,62}:iam::[0-9]{12}:role/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RuntimeRoleArn", "type": "string" }, "StatusFilter": { + "markdownDescription": "Only include instances with a specific status\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DEPLOYMENT_ERROR | DEPLOYMENT_SUCCEEDED | PROCESSING_DEPLOYMENT | PROCESSING_REMOVAL | REMOVAL_FAILED | REMOVAL_SUCCEEDED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusFilter", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Tags for the application instance\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -114886,6 +141198,8 @@ "additionalProperties": false, "properties": { "PayloadData": { + "markdownDescription": "The overrides document\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `51200` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PayloadData", "type": "string" } }, @@ -114895,6 +141209,8 @@ "additionalProperties": false, "properties": { "PayloadData": { + "markdownDescription": "The application manifest\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `51200` \n*Pattern*: `.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PayloadData", "type": "string" } }, @@ -114936,6 +141252,8 @@ "additionalProperties": false, "properties": { "PackageName": { + "markdownDescription": "A name for the package\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9\\-\\_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PackageName", "type": "string" }, "StorageLocation": { @@ -114945,6 +141263,8 @@ "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Tags for the package\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -115031,21 +141351,33 @@ "additionalProperties": false, "properties": { "MarkLatest": { + "markdownDescription": "Whether to mark the new version as the latest version\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MarkLatest", "type": "boolean" }, "OwnerAccount": { + "markdownDescription": "An owner account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `12` \n*Pattern*: `[0-9a-z\\_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OwnerAccount", "type": "string" }, "PackageId": { + "markdownDescription": "A package ID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9\\-\\_\\/]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PackageId", "type": "string" }, "PackageVersion": { + "markdownDescription": "A package version\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `([0-9]+)\\.([0-9]+)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PackageVersion", "type": "string" }, "PatchVersion": { + "markdownDescription": "A patch version\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PatchVersion", "type": "string" }, "UpdatedLatestPatchVersion": { + "markdownDescription": "If the version was marked latest, the new version to maker as latest\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-z0-9]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdatedLatestPatchVersion", "type": "string" } }, @@ -115113,18 +141445,28 @@ "additionalProperties": false, "properties": { "DatasetGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the dataset group\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):personalize:.*:.*:.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatasetGroupArn", "type": "string" }, "DatasetImportJob": { - "$ref": "#/definitions/AWS::Personalize::Dataset.DatasetImportJob" + "$ref": "#/definitions/AWS::Personalize::Dataset.DatasetImportJob", + "markdownDescription": "Describes a job that imports training data from a data source \\(Amazon S3 bucket\\) to an Amazon Personalize dataset\\. \n*Required*: No \n*Type*: [DatasetImportJob](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-personalize-dataset-datasetimportjob.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetImportJob" }, "DatasetType": { + "markdownDescription": "One of the following values: \n+ Interactions\n+ Items\n+ Users\n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatasetType", "type": "string" }, "Name": { + "markdownDescription": "The name of the dataset\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9\\-_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "SchemaArn": { + "markdownDescription": "The ARN of the associated schema\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):personalize:.*:.*:.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SchemaArn", "type": "string" } }, @@ -115170,18 +141512,28 @@ "additionalProperties": false, "properties": { "DataSource": { - "$ref": "#/definitions/AWS::Personalize::Dataset.DataSource" + "$ref": "#/definitions/AWS::Personalize::Dataset.DataSource", + "markdownDescription": "The Amazon S3 bucket that contains the training data to import\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSource" }, "DatasetArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the dataset that receives the imported data\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):personalize:.*:.*:.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetArn", "type": "string" }, "DatasetImportJobArn": { + "markdownDescription": "The ARN of the dataset import job\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):personalize:.*:.*:.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetImportJobArn", "type": "string" }, "JobName": { + "markdownDescription": "The name of the import job\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9\\-_]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobName", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the IAM role that has permissions to read from the Amazon S3 data source\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):personalize:.*:.*:.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -115223,15 +141575,23 @@ "additionalProperties": false, "properties": { "Domain": { + "markdownDescription": "The domain of a Domain dataset group\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ECOMMERCE | VIDEO_ON_DEMAND` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Domain", "type": "string" }, "KmsKeyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Key Management Service \\(KMS\\) key used to encrypt the datasets\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `arn:aws.*:kms:.*:[0-9]{12}:key/.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyArn", "type": "string" }, "Name": { + "markdownDescription": "The name of the dataset group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9\\-_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the IAM role that has permissions to create the dataset group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RoleArn", "type": "string" } }, @@ -115297,12 +141657,18 @@ "additionalProperties": false, "properties": { "Domain": { + "markdownDescription": "The domain of a schema that you created for a dataset in a Domain dataset group\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ECOMMERCE | VIDEO_ON_DEMAND` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Domain", "type": "string" }, "Name": { + "markdownDescription": "The name of the schema\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9\\-_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Schema": { + "markdownDescription": "The schema\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `10000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Schema", "type": "string" } }, @@ -115369,25 +141735,39 @@ "additionalProperties": false, "properties": { "DatasetGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the dataset group that provides the training data\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):personalize:.*:.*:.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatasetGroupArn", "type": "string" }, "EventType": { + "markdownDescription": "The event type \\(for example, 'click' or 'like'\\) that is used for training the model\\. If no `eventType` is provided, Amazon Personalize uses all interactions for training with equal weight regardless of type\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EventType", "type": "string" }, "Name": { + "markdownDescription": "The name of the solution\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9\\-_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "PerformAutoML": { + "markdownDescription": "When true, Amazon Personalize performs a search for the best USER\\_PERSONALIZATION recipe from the list specified in the solution configuration \\(`recipeArn` must not be specified\\)\\. When false \\(the default\\), Amazon Personalize uses `recipeArn` for training\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PerformAutoML", "type": "boolean" }, "PerformHPO": { + "markdownDescription": "Whether to perform hyperparameter optimization \\(HPO\\) on the chosen recipe\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PerformHPO", "type": "boolean" }, "RecipeArn": { + "markdownDescription": "The ARN of the recipe used to create the solution\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):personalize:.*:.*:.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RecipeArn", "type": "string" }, "SolutionConfig": { - "$ref": "#/definitions/AWS::Personalize::Solution.SolutionConfig" + "$ref": "#/definitions/AWS::Personalize::Solution.SolutionConfig", + "markdownDescription": "Describes the configuration properties for the solution\\. \n*Required*: No \n*Type*: [SolutionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-personalize-solution-solutionconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SolutionConfig" } }, "required": [ @@ -115548,30 +141928,40 @@ "properties": { "AlgorithmHyperParameters": { "additionalProperties": true, + "markdownDescription": "Lists the hyperparameter names and ranges\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "AlgorithmHyperParameters", "type": "object" }, "AutoMLConfig": { - "$ref": "#/definitions/AWS::Personalize::Solution.AutoMLConfig" + "$ref": "#/definitions/AWS::Personalize::Solution.AutoMLConfig", + "markdownDescription": "The [AutoMLConfig](https://docs.aws.amazon.com/personalize/latest/dg/API_AutoMLConfig.html) object containing a list of recipes to search when AutoML is performed\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutoMLConfig" }, "EventValueThreshold": { + "markdownDescription": "Only events with a value greater than or equal to this threshold are used for training a model\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EventValueThreshold", "type": "string" }, "FeatureTransformationParameters": { "additionalProperties": true, + "markdownDescription": "Lists the feature transformation parameters\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "FeatureTransformationParameters", "type": "object" }, "HpoConfig": { - "$ref": "#/definitions/AWS::Personalize::Solution.HpoConfig" + "$ref": "#/definitions/AWS::Personalize::Solution.HpoConfig", + "markdownDescription": "Describes the properties for hyperparameter optimization \\(HPO\\)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HpoConfig" } }, "type": "object" @@ -115612,15 +142002,23 @@ "additionalProperties": false, "properties": { "ApplicationId": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that the ADM channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", "type": "string" }, "ClientId": { + "markdownDescription": "The Client ID that you received from Amazon to send messages by using ADM\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientId", "type": "string" }, "ClientSecret": { + "markdownDescription": "The Client Secret that you received from Amazon to send messages by using ADM\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientSecret", "type": "string" }, "Enabled": { + "markdownDescription": "Specifies whether to enable the ADM channel for the application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -115688,30 +142086,48 @@ "additionalProperties": false, "properties": { "ApplicationId": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that the APNs channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", "type": "string" }, "BundleId": { + "markdownDescription": "The bundle identifier that's assigned to your iOS app\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BundleId", "type": "string" }, "Certificate": { + "markdownDescription": "The APNs client certificate that you received from Apple\\. Specify this value if you want Amazon Pinpoint to communicate with APNs by using an APNs certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate", "type": "string" }, "DefaultAuthenticationMethod": { + "markdownDescription": "The default authentication method that you want Amazon Pinpoint to use when authenticating with APNs\\. Valid options are `key` or `certificate`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultAuthenticationMethod", "type": "string" }, "Enabled": { + "markdownDescription": "Specifies whether to enable the APNs channel for the application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "PrivateKey": { + "markdownDescription": "The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with APNs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateKey", "type": "string" }, "TeamId": { + "markdownDescription": "The identifier that's assigned to your Apple Developer Account team\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TeamId", "type": "string" }, "TokenKey": { + "markdownDescription": "The authentication key to use for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenKey", "type": "string" }, "TokenKeyId": { + "markdownDescription": "The key identifier that's assigned to your APNs signing key\\. Specify this value if you want Amazon Pinpoint to communicate with APNs by using APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenKeyId", "type": "string" } }, @@ -115777,30 +142193,48 @@ "additionalProperties": false, "properties": { "ApplicationId": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that the APNs sandbox channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", "type": "string" }, "BundleId": { + "markdownDescription": "The bundle identifier that's assigned to your iOS app\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BundleId", "type": "string" }, "Certificate": { + "markdownDescription": "The APNs client certificate that you received from Apple\\. Specify this value if you want Amazon Pinpoint to communicate with APNs by using an APNs certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate", "type": "string" }, "DefaultAuthenticationMethod": { + "markdownDescription": "The default authentication method that you want Amazon Pinpoint to use when authenticating with APNs\\. Valid options are `key` or `certificate`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultAuthenticationMethod", "type": "string" }, "Enabled": { + "markdownDescription": "Specifies whether to enable the APNs Sandbox channel for the Amazon Pinpoint application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "PrivateKey": { + "markdownDescription": "The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with APNs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateKey", "type": "string" }, "TeamId": { + "markdownDescription": "The identifier that's assigned to your Apple Developer Account team\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TeamId", "type": "string" }, "TokenKey": { + "markdownDescription": "The authentication key to use for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenKey", "type": "string" }, "TokenKeyId": { + "markdownDescription": "The key identifier that's assigned to your APNs signing key\\. Specify this value if you want Amazon Pinpoint to communicate with APNs by using APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenKeyId", "type": "string" } }, @@ -115866,30 +142300,48 @@ "additionalProperties": false, "properties": { "ApplicationId": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that the APNs VoIP channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", "type": "string" }, "BundleId": { + "markdownDescription": "The bundle identifier that's assigned to your iOS app\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BundleId", "type": "string" }, "Certificate": { + "markdownDescription": "The APNs client certificate that you received from Apple\\. Specify this value if you want Amazon Pinpoint to communicate with APNs by using an APNs certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate", "type": "string" }, "DefaultAuthenticationMethod": { + "markdownDescription": "The default authentication method that you want Amazon Pinpoint to use when authenticating with APNs\\. Valid options are `key` or `certificate`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultAuthenticationMethod", "type": "string" }, "Enabled": { + "markdownDescription": "Specifies whether to enable the APNs VoIP channel for the Amazon Pinpoint application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "PrivateKey": { + "markdownDescription": "The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with APNs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateKey", "type": "string" }, "TeamId": { + "markdownDescription": "The identifier that's assigned to your Apple Developer Account team\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TeamId", "type": "string" }, "TokenKey": { + "markdownDescription": "The authentication key to use for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenKey", "type": "string" }, "TokenKeyId": { + "markdownDescription": "The key identifier that's assigned to your APNs signing key\\. Specify this value if you want Amazon Pinpoint to communicate with APNs by using APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenKeyId", "type": "string" } }, @@ -115955,30 +142407,48 @@ "additionalProperties": false, "properties": { "ApplicationId": { + "markdownDescription": "The unique identifier for the application that the APNs VoIP sandbox channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", "type": "string" }, "BundleId": { + "markdownDescription": "The bundle identifier that's assigned to your iOS app\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BundleId", "type": "string" }, "Certificate": { + "markdownDescription": "The APNs client certificate that you received from Apple\\. Specify this value if you want Amazon Pinpoint to communicate with the APNs sandbox environment by using an APNs certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate", "type": "string" }, "DefaultAuthenticationMethod": { + "markdownDescription": "The default authentication method that you want Amazon Pinpoint to use when authenticating with APNs\\. Valid options are `key` or `certificate`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultAuthenticationMethod", "type": "string" }, "Enabled": { + "markdownDescription": "Specifies whether the APNs VoIP sandbox channel is enabled for the application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "PrivateKey": { + "markdownDescription": "The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with the APNs sandbox environment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateKey", "type": "string" }, "TeamId": { + "markdownDescription": "The identifier that's assigned to your Apple developer account team\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TeamId", "type": "string" }, "TokenKey": { + "markdownDescription": "The authentication key to use for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenKey", "type": "string" }, "TokenKeyId": { + "markdownDescription": "The key identifier that's assigned to your APNs signing key\\. Specify this value if you want Amazon Pinpoint to communicate with the APNs sandbox environment by using APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenKeyId", "type": "string" } }, @@ -116044,9 +142514,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The display name of the application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" } }, @@ -116112,19 +142586,29 @@ "additionalProperties": false, "properties": { "ApplicationId": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", "type": "string" }, "CampaignHook": { - "$ref": "#/definitions/AWS::Pinpoint::ApplicationSettings.CampaignHook" + "$ref": "#/definitions/AWS::Pinpoint::ApplicationSettings.CampaignHook", + "markdownDescription": "The settings for the Lambda function to use by default as a code hook for campaigns in the application\\. To override these settings for a specific campaign, use the Campaign resource to define custom Lambda function settings for the campaign\\. \n*Required*: No \n*Type*: [CampaignHook](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-applicationsettings-campaignhook.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CampaignHook" }, "CloudWatchMetricsEnabled": { + "markdownDescription": "Specifies whether to enable application\\-related alarms in Amazon CloudWatch\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchMetricsEnabled", "type": "boolean" }, "Limits": { - "$ref": "#/definitions/AWS::Pinpoint::ApplicationSettings.Limits" + "$ref": "#/definitions/AWS::Pinpoint::ApplicationSettings.Limits", + "markdownDescription": "The default sending limits for campaigns in the application\\. To override these limits for a specific campaign, use the Campaign resource to define custom limits for the campaign\\. \n*Required*: No \n*Type*: [Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-applicationsettings-limits.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Limits" }, "QuietTime": { - "$ref": "#/definitions/AWS::Pinpoint::ApplicationSettings.QuietTime" + "$ref": "#/definitions/AWS::Pinpoint::ApplicationSettings.QuietTime", + "markdownDescription": "The default quiet time for campaigns in the application\\. Quiet time is a specific time range when campaigns don't send messages to endpoints, if all the following conditions are met: \n\\- The `EndpointDemographic.Timezone` property of the endpoint is set to a valid value\\. \n\\- The current time in the endpoint's time zone is later than or equal to the time specified by the `QuietTime.Start` property for the application \\(or a campaign that has custom quiet time settings\\)\\. \n\\- The current time in the endpoint's time zone is earlier than or equal to the time specified by the `QuietTime.End` property for the application \\(or a campaign that has custom quiet time settings\\)\\. \nIf any of the preceding conditions isn't met, the endpoint will receive messages from a campaign, even if quiet time is enabled\\. \nTo override the default quiet time settings for a specific campaign, use the Campaign resource to define a custom quiet time for the campaign\\. \n*Required*: No \n*Type*: [QuietTime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-applicationsettings-quiettime.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QuietTime" } }, "required": [ @@ -116157,12 +142641,18 @@ "additionalProperties": false, "properties": { "LambdaFunctionName": { + "markdownDescription": "The name or Amazon Resource Name \\(ARN\\) of the Lambda function that Amazon Pinpoint invokes to send messages for campaigns in the application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaFunctionName", "type": "string" }, "Mode": { + "markdownDescription": "The mode that Amazon Pinpoint uses to invoke the Lambda function\\. Possible values are: \n+ `FILTER` \\- Invoke the function to customize the segment that's used by a campaign\\.\n+ `DELIVERY` \\- \\(Deprecated\\) Previously, invoked the function to send a campaign through a custom channel\\. This functionality is not supported anymore\\. To send a campaign through a custom channel, use the `CustomDeliveryConfiguration` and `CampaignCustomMessage` objects of the campaign\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", "type": "string" }, "WebUrl": { + "markdownDescription": "The web URL that Amazon Pinpoint calls to invoke the Lambda function over HTTPS\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WebUrl", "type": "string" } }, @@ -116172,15 +142662,23 @@ "additionalProperties": false, "properties": { "Daily": { + "markdownDescription": "The maximum number of messages that a campaign can send to a single endpoint during a 24\\-hour period\\. The maximum value is 100\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Daily", "type": "number" }, "MaximumDuration": { + "markdownDescription": "The maximum amount of time, in seconds, that a campaign can attempt to deliver a message after the scheduled start time for the campaign\\. The minimum value is 60 seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumDuration", "type": "number" }, "MessagesPerSecond": { + "markdownDescription": "The maximum number of messages that a campaign can send each second\\. The minimum value is 50\\. The maximum value is 20,000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessagesPerSecond", "type": "number" }, "Total": { + "markdownDescription": "The maximum number of messages that a campaign can send to a single endpoint during the course of the campaign\\. The maximum value is 100\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Total", "type": "number" } }, @@ -116190,9 +142688,13 @@ "additionalProperties": false, "properties": { "End": { + "markdownDescription": "The specific time when quiet time ends\\. This value has to use 24\\-hour notation and be in HH:MM format, where HH is the hour \\(with a leading zero, if applicable\\) and MM is the minutes\\. For example, use `02:30` to represent 2:30 AM, or `14:30` to represent 2:30 PM\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "End", "type": "string" }, "Start": { + "markdownDescription": "The specific time when quiet time begins\\. This value has to use 24\\-hour notation and be in HH:MM format, where HH is the hour \\(with a leading zero, if applicable\\) and MM is the minutes\\. For example, use `02:30` to represent 2:30 AM, or `14:30` to represent 2:30 PM\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Start", "type": "string" } }, @@ -116238,15 +142740,23 @@ "additionalProperties": false, "properties": { "ApiKey": { + "markdownDescription": "The API key that you received from the Baidu Cloud Push service to communicate with the service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKey", "type": "string" }, "ApplicationId": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that you're configuring the Baidu channel for\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", "type": "string" }, "Enabled": { + "markdownDescription": "Specifies whether to enable the Baidu channel for the application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "SecretKey": { + "markdownDescription": "The secret key that you received from the Baidu Cloud Push service to communicate with the service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretKey", "type": "string" } }, @@ -116317,57 +142827,89 @@ "items": { "$ref": "#/definitions/AWS::Pinpoint::Campaign.WriteTreatmentResource" }, + "markdownDescription": "An array of requests that defines additional treatments for the campaign, in addition to the default treatment for the campaign\\. \n*Required*: No \n*Type*: List of [WriteTreatmentResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-writetreatmentresource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdditionalTreatments", "type": "array" }, "ApplicationId": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that the campaign is associated with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", "type": "string" }, "CampaignHook": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignHook" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignHook", + "markdownDescription": "Specifies the Lambda function to use as a code hook for a campaign\\. \n*Required*: No \n*Type*: [CampaignHook](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaignhook.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CampaignHook" }, "CustomDeliveryConfiguration": { "$ref": "#/definitions/AWS::Pinpoint::Campaign.CustomDeliveryConfiguration" }, "Description": { + "markdownDescription": "A custom description of the campaign\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "HoldoutPercent": { + "markdownDescription": "The allocated percentage of users \\(segment members\\) who shouldn't receive messages from the campaign\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HoldoutPercent", "type": "number" }, "IsPaused": { + "markdownDescription": "Specifies whether to pause the campaign\\. A paused campaign doesn't run unless you resume it by changing this value to `false`\\. If you restart a campaign, the campaign restarts from the beginning and not at the point you paused it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsPaused", "type": "boolean" }, "Limits": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.Limits" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Limits", + "markdownDescription": "The messaging limits for the campaign\\. \n*Required*: No \n*Type*: [Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-limits.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Limits" }, "MessageConfiguration": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.MessageConfiguration" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.MessageConfiguration", + "markdownDescription": "The message configuration settings for the campaign\\. \n*Required*: Yes \n*Type*: [MessageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-messageconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageConfiguration" }, "Name": { + "markdownDescription": "The name of the campaign\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Priority": { + "markdownDescription": "An integer between 1 and 5, inclusive, that represents the priority of the in\\-app message campaign, where 1 is the highest priority and 5 is the lowest\\. If there are multiple messages scheduled to be displayed at the same time, the priority determines the order in which those messages are displayed\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" }, "Schedule": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.Schedule" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Schedule", + "markdownDescription": "The schedule settings for the campaign\\. \n*Required*: Yes \n*Type*: [Schedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-schedule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule" }, "SegmentId": { + "markdownDescription": "The unique identifier for the segment to associate with the campaign\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentId", "type": "string" }, "SegmentVersion": { + "markdownDescription": "The version of the segment to associate with the campaign\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentVersion", "type": "number" }, "Tags": { + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" }, "TemplateConfiguration": { "$ref": "#/definitions/AWS::Pinpoint::Campaign.TemplateConfiguration" }, "TreatmentDescription": { + "markdownDescription": "A custom description of the default treatment for the campaign\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TreatmentDescription", "type": "string" }, "TreatmentName": { + "markdownDescription": "A custom name of the default treatment for the campaign, if the campaign has multiple treatments\\. A *treatment* is a variation of a campaign that's used for A/B testing\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TreatmentName", "type": "string" } }, @@ -116404,12 +142946,16 @@ "additionalProperties": false, "properties": { "AttributeType": { + "markdownDescription": "The type of segment dimension to use\\. Valid values are: \n+ `INCLUSIVE` \u2013 endpoints that have attributes matching the values are included in the segment\\.\n+ `EXCLUSIVE` \u2013 endpoints that have attributes matching the values are excluded from the segment\\.\n+ `CONTAINS` \u2013 endpoints that have attributes' substrings match the values are included in the segment\\.\n+ `BEFORE` \u2013 endpoints with attributes read as ISO\\_INSTANT datetimes before the value are included in the segment\\.\n+ `AFTER` \u2013 endpoints with attributes read as ISO\\_INSTANT datetimes after the value are included in the segment\\.\n+ `BETWEEN` \u2013 endpoints with attributes read as ISO\\_INSTANT datetimes between the values are included in the segment\\.\n+ `ON` \u2013 endpoints with attributes read as ISO\\_INSTANT dates on the value are included in the segment\\. Time is ignored in this comparison\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeType", "type": "string" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "The criteria values to use for the segment dimension\\. Depending on the value of the `AttributeType` property, endpoints are included or excluded from the segment if their attribute values match the criteria values\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -116428,15 +142974,23 @@ "additionalProperties": false, "properties": { "Body": { + "markdownDescription": "The body of the email for recipients whose email clients don't render HTML content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body", "type": "string" }, "FromAddress": { + "markdownDescription": "The verified email address to send the email from\\. The default address is the `FromAddress` specified for the email channel for the application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FromAddress", "type": "string" }, "HtmlBody": { + "markdownDescription": "The body of the email, in HTML format, for recipients whose email clients render HTML content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HtmlBody", "type": "string" }, "Title": { + "markdownDescription": "The subject line, or title, of the email\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Title", "type": "string" } }, @@ -116446,9 +143000,13 @@ "additionalProperties": false, "properties": { "Dimensions": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.EventDimensions" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.EventDimensions", + "markdownDescription": "The dimension settings of the event filter for the campaign\\. \n*Required*: No \n*Type*: [EventDimensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-eventdimensions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions" }, "FilterType": { + "markdownDescription": "The type of event that causes the campaign to be sent\\. Valid values are: `SYSTEM`, sends the campaign when a system event occurs; and, `ENDPOINT`, sends the campaign when an endpoint event \\(Events resource\\) occurs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterType", "type": "string" } }, @@ -116458,12 +143016,18 @@ "additionalProperties": false, "properties": { "LambdaFunctionName": { + "markdownDescription": "The name or Amazon Resource Name \\(ARN\\) of the Lambda function that Amazon Pinpoint invokes to customize a segment for a campaign\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaFunctionName", "type": "string" }, "Mode": { + "markdownDescription": "The mode that Amazon Pinpoint uses to invoke the Lambda function\\. Possible values are: \n+ `FILTER` \\- Invoke the function to customize the segment that's used by a campaign\\.\n+ `DELIVERY` \\- \\(Deprecated\\) Previously, invoked the function to send a campaign through a custom channel\\. This functionality is not supported anymore\\. To send a campaign through a custom channel, use the `CustomDeliveryConfiguration` and `CampaignCustomMessage` objects of the campaign\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", "type": "string" }, "WebUrl": { + "markdownDescription": "The web URL that Amazon Pinpoint calls to invoke the Lambda function over HTTPS\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WebUrl", "type": "string" } }, @@ -116476,12 +143040,18 @@ "items": { "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageContent" }, + "markdownDescription": "An array that contains configurtion information about the in\\-app message for the campaign, including title and body text, text colors, background colors, image URLs, and button configurations\\. \n*Required*: No \n*Type*: List of [InAppMessageContent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagecontent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Content", "type": "array" }, "CustomConfig": { + "markdownDescription": "Custom data, in the form of key\\-value pairs, that is included in an in\\-app messaging payload\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomConfig", "type": "object" }, "Layout": { + "markdownDescription": "A string that describes how the in\\-app message will appear\\. You can specify one of the following: \n+ `BOTTOM_BANNER` \u2013 a message that appears as a banner at the bottom of the page\\.\n+ `TOP_BANNER` \u2013 a message that appears as a banner at the top of the page\\.\n+ `OVERLAYS` \u2013 a message that covers entire screen\\.\n+ `MOBILE_FEED` \u2013 a message that appears in a window in front of the page\\.\n+ `MIDDLE_BANNER` \u2013 a message that appears as a banner in the middle of the page\\.\n+ `CAROUSEL` \u2013 a scrollable layout of up to five unique messages\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Layout", "type": "string" } }, @@ -116491,21 +143061,33 @@ "additionalProperties": false, "properties": { "Body": { + "markdownDescription": "The body of the SMS message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body", "type": "string" }, "EntityId": { + "markdownDescription": "The entity ID or Principal Entity \\(PE\\) id received from the regulatory body for sending SMS in your country\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntityId", "type": "string" }, "MessageType": { + "markdownDescription": "The SMS message type\\. Valid values are `TRANSACTIONAL` \\(for messages that are critical or time\\-sensitive, such as a one\\-time passwords\\) and `PROMOTIONAL` \\(for messsages that aren't critical or time\\-sensitive, such as marketing messages\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageType", "type": "string" }, "OriginationNumber": { + "markdownDescription": "The long code to send the SMS message from\\. This value should be one of the dedicated long codes that's assigned to your AWS account\\. Although it isn't required, we recommend that you specify the long code using an E\\.164 format to ensure prompt and accurate delivery of the message\\. For example, \\+12065550100\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginationNumber", "type": "string" }, "SenderId": { + "markdownDescription": "The alphabetic Sender ID to display as the sender of the message on a recipient's device\\. Support for sender IDs varies by country or region\\. To specify a phone number as the sender, omit this parameter and use `OriginationNumber` instead\\. For more information about support for Sender ID by country, see the [Amazon Pinpoint User Guide](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-countries.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SenderId", "type": "string" }, "TemplateId": { + "markdownDescription": "The template ID received from the regulatory body for sending SMS in your country\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateId", "type": "string" } }, @@ -116530,21 +143112,33 @@ "additionalProperties": false, "properties": { "BackgroundColor": { + "markdownDescription": "The background color of a button, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackgroundColor", "type": "string" }, "BorderRadius": { + "markdownDescription": "The border radius of a button\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BorderRadius", "type": "number" }, "ButtonAction": { + "markdownDescription": "The action that occurs when a recipient chooses a button in an in\\-app message\\. You can specify one of the following: \n+ `LINK` \u2013 A link to a web destination\\.\n+ `DEEP_LINK` \u2013 A link to a specific page in an application\\.\n+ `CLOSE` \u2013 Dismisses the message\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ButtonAction", "type": "string" }, "Link": { + "markdownDescription": "The destination \\(such as a URL\\) for a button\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Link", "type": "string" }, "Text": { + "markdownDescription": "The text that appears on a button in an in\\-app message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Text", "type": "string" }, "TextColor": { + "markdownDescription": "The color of the body text in a button, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextColor", "type": "string" } }, @@ -116554,12 +143148,18 @@ "additionalProperties": false, "properties": { "Attributes": { + "markdownDescription": "One or more custom attributes that your application reports to Amazon Pinpoint\\. You can use these attributes as selection criteria when you create an event filter\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attributes", "type": "object" }, "EventType": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.SetDimension" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.SetDimension", + "markdownDescription": "The name of the event that causes the campaign to be sent or the journey activity to be performed\\. This can be a standard event that Amazon Pinpoint generates, such as `_email.delivered`\\. For campaigns, this can also be a custom event that's specific to your application\\. For information about standard events, see [Streaming Amazon Pinpoint Events](https://docs.aws.amazon.com/pinpoint/latest/developerguide/event-streams.html) in the *Amazon Pinpoint Developer Guide*\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventType" }, "Metrics": { + "markdownDescription": "One or more custom metrics that your application reports to Amazon Pinpoint\\. You can use these metrics as selection criteria when you create an event filter\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metrics", "type": "object" } }, @@ -116569,12 +143169,18 @@ "additionalProperties": false, "properties": { "Alignment": { + "markdownDescription": "The text alignment of the main body text of the message\\. Acceptable values: `LEFT`, `CENTER`, `RIGHT`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alignment", "type": "string" }, "Body": { + "markdownDescription": "The main body text of the message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body", "type": "string" }, "TextColor": { + "markdownDescription": "The color of the body text, expressed as a string consisting of a hex color code \\(such as \"\\#000000\" for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextColor", "type": "string" } }, @@ -116584,16 +143190,24 @@ "additionalProperties": false, "properties": { "Android": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration", + "markdownDescription": "An object that defines the default behavior for a button in in\\-app messages sent to Android\\. \n*Required*: No \n*Type*: [OverrideButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-overridebuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Android" }, "DefaultConfig": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.DefaultButtonConfiguration" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.DefaultButtonConfiguration", + "markdownDescription": "An object that defines the default behavior for a button in an in\\-app message\\. \n*Required*: No \n*Type*: [DefaultButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-defaultbuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultConfig" }, "IOS": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration", + "markdownDescription": "An object that defines the default behavior for a button in in\\-app messages sent to iOS devices\\. \n*Required*: No \n*Type*: [OverrideButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-overridebuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IOS" }, "Web": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration", + "markdownDescription": "An object that defines the default behavior for a button in in\\-app messages for web applications\\. \n*Required*: No \n*Type*: [OverrideButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-overridebuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Web" } }, "type": "object" @@ -116602,22 +143216,34 @@ "additionalProperties": false, "properties": { "BackgroundColor": { + "markdownDescription": "The background color for an in\\-app message banner, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackgroundColor", "type": "string" }, "BodyConfig": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageBodyConfig" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageBodyConfig", + "markdownDescription": "Specifies the configuration of main body text in an in\\-app message template\\. \n*Required*: No \n*Type*: [InAppMessageBodyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagebodyconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BodyConfig" }, "HeaderConfig": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageHeaderConfig" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageHeaderConfig", + "markdownDescription": "Specifies the configuration and content of the header or title text of the in\\-app message\\. \n*Required*: No \n*Type*: [InAppMessageHeaderConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessageheaderconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderConfig" }, "ImageUrl": { + "markdownDescription": "The URL of the image that appears on an in\\-app message banner\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageUrl", "type": "string" }, "PrimaryBtn": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageButton" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageButton", + "markdownDescription": "An object that contains configuration information about the primary button in an in\\-app message\\. \n*Required*: No \n*Type*: [InAppMessageButton](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagebutton.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrimaryBtn" }, "SecondaryBtn": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageButton" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageButton", + "markdownDescription": "An object that contains configuration information about the secondary button in an in\\-app message\\. \n*Required*: No \n*Type*: [InAppMessageButton](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagebutton.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryBtn" } }, "type": "object" @@ -116626,12 +143252,18 @@ "additionalProperties": false, "properties": { "Alignment": { + "markdownDescription": "The text alignment of the title of the message\\. Acceptable values: `LEFT`, `CENTER`, `RIGHT`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alignment", "type": "string" }, "Header": { + "markdownDescription": "The header or title text of the in\\-app message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Header", "type": "string" }, "TextColor": { + "markdownDescription": "The color of the body text, expressed as a string consisting of a hex color code \\(such as \"\\#000000\" for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextColor", "type": "string" } }, @@ -116641,18 +143273,28 @@ "additionalProperties": false, "properties": { "Daily": { + "markdownDescription": "The maximum number of messages that a campaign can send to a single endpoint during a 24\\-hour period\\. The maximum value is 100\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Daily", "type": "number" }, "MaximumDuration": { + "markdownDescription": "The maximum amount of time, in seconds, that a campaign can attempt to deliver a message after the scheduled start time for the campaign\\. The minimum value is 60 seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumDuration", "type": "number" }, "MessagesPerSecond": { + "markdownDescription": "The maximum number of messages that a campaign can send each second\\. The minimum value is 50\\. The maximum value is 20,000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessagesPerSecond", "type": "number" }, "Session": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Session", "type": "number" }, "Total": { + "markdownDescription": "The maximum number of messages that a campaign can send to a single endpoint during the course of the campaign\\. The maximum value is 100\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Total", "type": "number" } }, @@ -116662,39 +143304,63 @@ "additionalProperties": false, "properties": { "Action": { + "markdownDescription": "The action to occur if a recipient taps the push notification\\. Valid values are: \n+ `OPEN_APP` \u2013 Your app opens or it becomes the foreground app if it was sent to the background\\. This is the default action\\.\n+ `DEEP_LINK` \u2013 Your app opens and displays a designated user interface in the app\\. This setting uses the deep\\-linking features of iOS and Android\\.\n+ `URL` \u2013 The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", "type": "string" }, "Body": { + "markdownDescription": "The body of the notification message\\. The maximum number of characters is 200\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body", "type": "string" }, "ImageIconUrl": { + "markdownDescription": "The URL of the image to display as the push notification icon, such as the icon for the app\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageIconUrl", "type": "string" }, "ImageSmallIconUrl": { + "markdownDescription": "The URL of the image to display as the small, push notification icon, such as a small version of the icon for the app\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageSmallIconUrl", "type": "string" }, "ImageUrl": { + "markdownDescription": "The URL of an image to display in the push notification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageUrl", "type": "string" }, "JsonBody": { + "markdownDescription": "The JSON payload to use for a silent push notification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JsonBody", "type": "string" }, "MediaUrl": { + "markdownDescription": "The URL of the image or video to display in the push notification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MediaUrl", "type": "string" }, "RawContent": { + "markdownDescription": "The raw, JSON\\-formatted string to use as the payload for the notification message\\. If specified, this value overrides all other content for the message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RawContent", "type": "string" }, "SilentPush": { + "markdownDescription": "Specifies whether the notification is a silent push notification, which is a push notification that doesn't display on a recipient's device\\. Silent push notifications can be used for cases such as updating an app's configuration, displaying messages in an in\\-app message center, or supporting phone home functionality\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SilentPush", "type": "boolean" }, "TimeToLive": { + "markdownDescription": "The number of seconds that the push notification service should keep the message, if the service is unable to deliver the notification the first time\\. This value is converted to an expiration value when it's sent to a push notification service\\. If this value is `0`, the service treats the notification as if it expires immediately and the service doesn't store or try to deliver the notification again\\. \nThis value doesn't apply to messages that are sent through the Amazon Device Messaging \\(ADM\\) service\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeToLive", "type": "number" }, "Title": { + "markdownDescription": "The title to display above the notification message on a recipient's device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Title", "type": "string" }, "Url": { + "markdownDescription": "The URL to open in a recipient's default mobile browser, if a recipient taps the push notification and the value of the `Action` property is `URL`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", "type": "string" } }, @@ -116704,31 +143370,47 @@ "additionalProperties": false, "properties": { "ADMMessage": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message", + "markdownDescription": "The message that the campaign sends through the ADM \\(Amazon Device Messaging\\) channel\\. If specified, this message overrides the default message\\. \n*Required*: No \n*Type*: [Message](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ADMMessage" }, "APNSMessage": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message", + "markdownDescription": "The message that the campaign sends through the APNs \\(Apple Push Notification service\\) channel\\. If specified, this message overrides the default message\\. \n*Required*: No \n*Type*: [Message](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "APNSMessage" }, "BaiduMessage": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message", + "markdownDescription": "The message that the campaign sends through the Baidu \\(Baidu Cloud Push\\) channel\\. If specified, this message overrides the default message\\. \n*Required*: No \n*Type*: [Message](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaiduMessage" }, "CustomMessage": { "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignCustomMessage" }, "DefaultMessage": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message", + "markdownDescription": "The default message that the campaign sends through all the channels that are configured for the campaign\\. \n*Required*: No \n*Type*: [Message](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultMessage" }, "EmailMessage": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignEmailMessage" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignEmailMessage", + "markdownDescription": "The message that the campaign sends through the email channel\\. If specified, this message overrides the default message\\. \n*Required*: No \n*Type*: [CampaignEmailMessage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaignemailmessage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmailMessage" }, "GCMMessage": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message", + "markdownDescription": "The message that the campaign sends through the GCM channel, which enables Amazon Pinpoint to send push notifications through the Firebase Cloud Messaging \\(FCM\\), formerly Google Cloud Messaging \\(GCM\\), service\\. If specified, this message overrides the default message\\. \n*Required*: No \n*Type*: [Message](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GCMMessage" }, "InAppMessage": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignInAppMessage" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignInAppMessage", + "markdownDescription": "The default message for the in\\-app messaging channel\\. This message overrides the default message \\(`DefaultMessage`\\)\\. \n*Required*: No \n*Type*: [CampaignInAppMessage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaigninappmessage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InAppMessage" }, "SMSMessage": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignSmsMessage" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignSmsMessage", + "markdownDescription": "The message that the campaign sends through the SMS channel\\. If specified, this message overrides the default message\\. \n*Required*: No \n*Type*: [CampaignSmsMessage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaignsmsmessage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SMSMessage" } }, "type": "object" @@ -116737,9 +143419,13 @@ "additionalProperties": false, "properties": { "ComparisonOperator": { + "markdownDescription": "The operator to use when comparing metric values\\. Valid values are: `GREATER_THAN`, `LESS_THAN`, `GREATER_THAN_OR_EQUAL`, `LESS_THAN_OR_EQUAL`, and `EQUAL`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComparisonOperator", "type": "string" }, "Value": { + "markdownDescription": "The value to compare\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "number" } }, @@ -116749,9 +143435,13 @@ "additionalProperties": false, "properties": { "ButtonAction": { + "markdownDescription": "The action that occurs when a recipient chooses a button in an in\\-app message\\. You can specify one of the following: \n+ `LINK` \u2013 A link to a web destination\\.\n+ `DEEP_LINK` \u2013 A link to a specific page in an application\\.\n+ `CLOSE` \u2013 Dismisses the message\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ButtonAction", "type": "string" }, "Link": { + "markdownDescription": "The destination \\(such as a URL\\) for a button\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Link", "type": "string" } }, @@ -116761,9 +143451,13 @@ "additionalProperties": false, "properties": { "End": { + "markdownDescription": "The specific time when quiet time ends\\. This value has to use 24\\-hour notation and be in HH:MM format, where HH is the hour \\(with a leading zero, if applicable\\) and MM is the minutes\\. For example, use `02:30` to represent 2:30 AM, or `14:30` to represent 2:30 PM\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "End", "type": "string" }, "Start": { + "markdownDescription": "The specific time when quiet time begins\\. This value has to use 24\\-hour notation and be in HH:MM format, where HH is the hour \\(with a leading zero, if applicable\\) and MM is the minutes\\. For example, use `02:30` to represent 2:30 AM, or `14:30` to represent 2:30 PM\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Start", "type": "string" } }, @@ -116777,24 +143471,38 @@ "additionalProperties": false, "properties": { "EndTime": { + "markdownDescription": "The scheduled time, in ISO 8601 format, when the campaign ended or will end\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndTime", "type": "string" }, "EventFilter": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignEventFilter" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignEventFilter", + "markdownDescription": "The type of event that causes the campaign to be sent, if the value of the `Frequency` property is `EVENT`\\. \n*Required*: No \n*Type*: [CampaignEventFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaigneventfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventFilter" }, "Frequency": { + "markdownDescription": "Specifies how often the campaign is sent or whether the campaign is sent in response to a specific event\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Frequency", "type": "string" }, "IsLocalTime": { + "markdownDescription": "Specifies whether the start and end times for the campaign schedule use each recipient's local time\\. To base the schedule on each recipient's local time, set this value to `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsLocalTime", "type": "boolean" }, "QuietTime": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.QuietTime" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.QuietTime", + "markdownDescription": "The default quiet time for the campaign\\. Quiet time is a specific time range when a campaign doesn't send messages to endpoints, if all the following conditions are met: \n+ The `EndpointDemographic.Timezone` property of the endpoint is set to a valid value\\.\n+ The current time in the endpoint's time zone is later than or equal to the time specified by the `QuietTime.Start` property for the campaign\\.\n+ The current time in the endpoint's time zone is earlier than or equal to the time specified by the `QuietTime.End` property for the campaign\\.\nIf any of the preceding conditions isn't met, the endpoint will receive messages from the campaign, even if quiet time is enabled\\. \n*Required*: No \n*Type*: [QuietTime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-schedule-quiettime.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QuietTime" }, "StartTime": { + "markdownDescription": "The scheduled time when the campaign began or will begin\\. Valid values are: `IMMEDIATE`, to start the campaign immediately; or, a specific time in ISO 8601 format\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartTime", "type": "string" }, "TimeZone": { + "markdownDescription": "The starting UTC offset for the campaign schedule, if the value of the `IsLocalTime` property is `true`\\. Valid values are: `UTC, UTC+01, UTC+02, UTC+03, UTC+03:30, UTC+04, UTC+04:30, UTC+05, UTC+05:30, UTC+05:45, UTC+06, UTC+06:30, UTC+07, UTC+08, UTC+09, UTC+09:30, UTC+10, UTC+10:30, UTC+11, UTC+12, UTC+13, UTC-02, UTC-03, UTC-04, UTC-05, UTC-06, UTC-07, UTC-08, UTC-09, UTC-10,` and `UTC-11`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeZone", "type": "string" } }, @@ -116804,12 +143512,16 @@ "additionalProperties": false, "properties": { "DimensionType": { + "markdownDescription": "The type of segment dimension to use\\. Valid values are: `INCLUSIVE`, endpoints that match the criteria are included in the segment; and, `EXCLUSIVE`, endpoints that match the criteria are excluded from the segment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DimensionType", "type": "string" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "The criteria values to use for the segment dimension\\. Depending on the value of the `DimensionType` property, endpoints are included or excluded from the segment if their values match the criteria values\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -116852,21 +143564,31 @@ "$ref": "#/definitions/AWS::Pinpoint::Campaign.CustomDeliveryConfiguration" }, "MessageConfiguration": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.MessageConfiguration" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.MessageConfiguration", + "markdownDescription": "The message configuration settings for the treatment\\. \n*Required*: No \n*Type*: [MessageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-messageconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageConfiguration" }, "Schedule": { - "$ref": "#/definitions/AWS::Pinpoint::Campaign.Schedule" + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Schedule", + "markdownDescription": "The schedule settings for the treatment\\. \n*Required*: No \n*Type*: [Schedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-schedule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule" }, "SizePercent": { + "markdownDescription": "The allocated percentage of users \\(segment members\\) to send the treatment to\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SizePercent", "type": "number" }, "TemplateConfiguration": { "$ref": "#/definitions/AWS::Pinpoint::Campaign.TemplateConfiguration" }, "TreatmentDescription": { + "markdownDescription": "A custom description of the treatment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TreatmentDescription", "type": "string" }, "TreatmentName": { + "markdownDescription": "A custom name for the treatment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TreatmentName", "type": "string" } }, @@ -116908,21 +143630,33 @@ "additionalProperties": false, "properties": { "ApplicationId": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that you're specifying the email channel for\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", "type": "string" }, "ConfigurationSet": { + "markdownDescription": "The [Amazon SES configuration set](https://docs.aws.amazon.com/ses/latest/APIReference/API_ConfigurationSet.html) that you want to apply to messages that you send through the channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfigurationSet", "type": "string" }, "Enabled": { + "markdownDescription": "Specifies whether to enable the email channel for the application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "FromAddress": { + "markdownDescription": "The verified email address that you want to send email from when you send email through the channel\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FromAddress", "type": "string" }, "Identity": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the identity, verified with Amazon Simple Email Service \\(Amazon SES\\), that you want to use when you send email through the channel\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Identity", "type": "string" }, "RoleArn": { + "markdownDescription": "The ARN of the AWS Identity and Access Management \\(IAM\\) role that you want Amazon Pinpoint to use when it submits email\\-related event data for the channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -116990,24 +143724,38 @@ "additionalProperties": false, "properties": { "DefaultSubstitutions": { + "markdownDescription": "A JSON object that specifies the default values to use for message variables in the message template\\. This object is a set of key\\-value pairs\\. Each key defines a message variable in the template\\. The corresponding value defines the default value for that variable\\. When you create a message that's based on the template, you can override these defaults with message\\-specific and address\\-specific variables and values\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultSubstitutions", "type": "string" }, "HtmlPart": { + "markdownDescription": "The message body, in HTML format, to use in email messages that are based on the message template\\. We recommend using HTML format for email clients that render HTML content\\. You can include links, formatted text, and more in an HTML message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HtmlPart", "type": "string" }, "Subject": { + "markdownDescription": "The subject line, or title, to use in email messages that are based on the message template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subject", "type": "string" }, "Tags": { + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" }, "TemplateDescription": { + "markdownDescription": "A custom description of the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateDescription", "type": "string" }, "TemplateName": { + "markdownDescription": "The name of the message template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TemplateName", "type": "string" }, "TextPart": { + "markdownDescription": "The message body, in plain text format, to use in email messages that are based on the message template\\. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high\\-latency networks, such as mobile devices\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextPart", "type": "string" } }, @@ -117074,12 +143822,18 @@ "additionalProperties": false, "properties": { "ApplicationId": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that you want to export data from\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", "type": "string" }, "DestinationStreamArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon Kinesis data stream or Amazon Kinesis Data Firehose delivery stream that you want to publish event data to\\. \nFor a Kinesis data stream, the ARN format is: `arn:aws:kinesis:region:account-id:stream/stream_name ` \nFor a Kinesis Data Firehose delivery stream, the ARN format is: `arn:aws:firehose:region:account-id:deliverystream/stream_name ` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationStreamArn", "type": "string" }, "RoleArn": { + "markdownDescription": "The AWS Identity and Access Management \\(IAM\\) role that authorizes Amazon Pinpoint to publish event data to the stream in your AWS account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -117147,12 +143901,18 @@ "additionalProperties": false, "properties": { "ApiKey": { + "markdownDescription": "The Web API key, also called the *server key*, that you received from Google to communicate with Google services\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKey", "type": "string" }, "ApplicationId": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that the GCM channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", "type": "string" }, "Enabled": { + "markdownDescription": "Specifies whether to enable the GCM channel for the Amazon Pinpoint application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -117222,21 +143982,33 @@ "items": { "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.InAppMessageContent" }, + "markdownDescription": "An object that contains information about the content of an in\\-app message, including its title and body text, text colors, background colors, images, buttons, and behaviors\\. \n*Required*: No \n*Type*: List of [InAppMessageContent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-inappmessagecontent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Content", "type": "array" }, "CustomConfig": { + "markdownDescription": "Custom data, in the form of key\\-value pairs, that is included in an in\\-app messaging payload\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomConfig", "type": "object" }, "Layout": { + "markdownDescription": "A string that determines the appearance of the in\\-app message\\. You can specify one of the following: \n+ `BOTTOM_BANNER` \u2013 a message that appears as a banner at the bottom of the page\\.\n+ `TOP_BANNER` \u2013 a message that appears as a banner at the top of the page\\.\n+ `OVERLAYS` \u2013 a message that covers entire screen\\.\n+ `MOBILE_FEED` \u2013 a message that appears in a window in front of the page\\.\n+ `MIDDLE_BANNER` \u2013 a message that appears as a banner in the middle of the page\\.\n+ `CAROUSEL` \u2013 a scrollable layout of up to five unique messages\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Layout", "type": "string" }, "Tags": { + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" }, "TemplateDescription": { + "markdownDescription": "An optional description of the in\\-app template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateDescription", "type": "string" }, "TemplateName": { + "markdownDescription": "The name of the in\\-app message template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TemplateName", "type": "string" } }, @@ -117270,12 +144042,18 @@ "additionalProperties": false, "properties": { "Alignment": { + "markdownDescription": "The text alignment of the main body text of the message\\. Acceptable values: `LEFT`, `CENTER`, `RIGHT`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alignment", "type": "string" }, "Body": { + "markdownDescription": "The main body text of the message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body", "type": "string" }, "TextColor": { + "markdownDescription": "The color of the body text, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextColor", "type": "string" } }, @@ -117285,16 +144063,24 @@ "additionalProperties": false, "properties": { "Android": { - "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration" + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration", + "markdownDescription": "Optional button configuration to use for in\\-app messages sent to Android devices\\. This button configuration overrides the default button configuration\\. \n*Required*: No \n*Type*: [OverrideButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-overridebuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Android" }, "DefaultConfig": { - "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.DefaultButtonConfiguration" + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.DefaultButtonConfiguration", + "markdownDescription": "Specifies the default behavior of a button that appears in an in\\-app message\\. You can optionally add button configurations that specifically apply to iOS, Android, or web browser users\\. \n*Required*: No \n*Type*: [DefaultButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-defaultbuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultConfig" }, "IOS": { - "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration" + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration", + "markdownDescription": "Optional button configuration to use for in\\-app messages sent to iOS devices\\. This button configuration overrides the default button configuration\\. \n*Required*: No \n*Type*: [OverrideButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-overridebuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IOS" }, "Web": { - "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration" + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration", + "markdownDescription": "Optional button configuration to use for in\\-app messages sent to web applications\\. This button configuration overrides the default button configuration\\. \n*Required*: No \n*Type*: [OverrideButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-overridebuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Web" } }, "type": "object" @@ -117303,21 +144089,33 @@ "additionalProperties": false, "properties": { "BackgroundColor": { + "markdownDescription": "The background color of a button, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackgroundColor", "type": "string" }, "BorderRadius": { + "markdownDescription": "The border radius of a button\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BorderRadius", "type": "number" }, "ButtonAction": { + "markdownDescription": "The action that occurs when a recipient chooses a button in an in\\-app message\\. You can specify one of the following: \n+ `LINK` \u2013 A link to a web destination\\.\n+ `DEEP_LINK` \u2013 A link to a specific page in an application\\.\n+ `CLOSE` \u2013 Dismisses the message\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ButtonAction", "type": "string" }, "Link": { + "markdownDescription": "The destination \\(such as a URL\\) for a button\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Link", "type": "string" }, "Text": { + "markdownDescription": "The text that appears on a button in an in\\-app message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Text", "type": "string" }, "TextColor": { + "markdownDescription": "The color of the body text in a button, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextColor", "type": "string" } }, @@ -117327,12 +144125,18 @@ "additionalProperties": false, "properties": { "Alignment": { + "markdownDescription": "The text alignment of the title of the message\\. Acceptable values: `LEFT`, `CENTER`, `RIGHT`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alignment", "type": "string" }, "Header": { + "markdownDescription": "The title text of the in\\-app message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Header", "type": "string" }, "TextColor": { + "markdownDescription": "The color of the title text, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextColor", "type": "string" } }, @@ -117342,22 +144146,34 @@ "additionalProperties": false, "properties": { "BackgroundColor": { + "markdownDescription": "The background color for an in\\-app message banner, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackgroundColor", "type": "string" }, "BodyConfig": { - "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.BodyConfig" + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.BodyConfig", + "markdownDescription": "An object that contains configuration information about the header or title text of the in\\-app message\\. \n*Required*: No \n*Type*: [BodyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-bodyconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BodyConfig" }, "HeaderConfig": { - "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.HeaderConfig" + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.HeaderConfig", + "markdownDescription": "An object that contains configuration information about the header or title text of the in\\-app message\\. \n*Required*: No \n*Type*: [HeaderConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-headerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderConfig" }, "ImageUrl": { + "markdownDescription": "The URL of the image that appears on an in\\-app message banner\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageUrl", "type": "string" }, "PrimaryBtn": { - "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.ButtonConfig" + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.ButtonConfig", + "markdownDescription": "An object that contains configuration information about the primary button in an in\\-app message\\. \n*Required*: No \n*Type*: [ButtonConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-buttonconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrimaryBtn" }, "SecondaryBtn": { - "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.ButtonConfig" + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.ButtonConfig", + "markdownDescription": "An object that contains configuration information about the secondary button in an in\\-app message\\. \n*Required*: No \n*Type*: [ButtonConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-buttonconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryBtn" } }, "type": "object" @@ -117366,9 +144182,13 @@ "additionalProperties": false, "properties": { "ButtonAction": { + "markdownDescription": "The action that occurs when a recipient chooses a button in an in\\-app message\\. You can specify one of the following: \n+ `LINK` \u2013 A link to a web destination\\.\n+ `DEEP_LINK` \u2013 A link to a specific page in an application\\.\n+ `CLOSE` \u2013 Dismisses the message\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ButtonAction", "type": "string" }, "Link": { + "markdownDescription": "The destination \\(such as a URL\\) for a button\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Link", "type": "string" } }, @@ -117410,30 +144230,48 @@ "additionalProperties": false, "properties": { "ADM": { - "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.AndroidPushNotificationTemplate" + "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.AndroidPushNotificationTemplate", + "markdownDescription": "The message template to use for the ADM \\(Amazon Device Messaging\\) channel\\. This message template overrides the default template for push notification channels \\(`Default`\\)\\. \n*Required*: No \n*Type*: [AndroidPushNotificationTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-androidpushnotificationtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ADM" }, "APNS": { - "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.APNSPushNotificationTemplate" + "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.APNSPushNotificationTemplate", + "markdownDescription": "The message template to use for the APNs \\(Apple Push Notification service\\) channel\\. This message template overrides the default template for push notification channels \\(`Default`\\)\\. \n*Required*: No \n*Type*: [APNSPushNotificationTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-apnspushnotificationtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "APNS" }, "Baidu": { - "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.AndroidPushNotificationTemplate" + "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.AndroidPushNotificationTemplate", + "markdownDescription": "The message template to use for the Baidu \\(Baidu Cloud Push\\) channel\\. This message template overrides the default template for push notification channels \\(`Default`\\)\\. \n*Required*: No \n*Type*: [AndroidPushNotificationTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-androidpushnotificationtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Baidu" }, "Default": { - "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.DefaultPushNotificationTemplate" + "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.DefaultPushNotificationTemplate", + "markdownDescription": "The default message template to use for push notification channels\\. \n*Required*: No \n*Type*: [DefaultPushNotificationTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-defaultpushnotificationtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Default" }, "DefaultSubstitutions": { + "markdownDescription": "A JSON object that specifies the default values to use for message variables in the message template\\. This object is a set of key\\-value pairs\\. Each key defines a message variable in the template\\. The corresponding value defines the default value for that variable\\. When you create a message that's based on the template, you can override these defaults with message\\-specific and address\\-specific variables and values\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultSubstitutions", "type": "string" }, "GCM": { - "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.AndroidPushNotificationTemplate" + "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.AndroidPushNotificationTemplate", + "markdownDescription": "The message template to use for the GCM channel, which is used to send notifications through the Firebase Cloud Messaging \\(FCM\\), formerly Google Cloud Messaging \\(GCM\\), service\\. This message template overrides the default template for push notification channels \\(`Default`\\)\\. \n*Required*: No \n*Type*: [AndroidPushNotificationTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-androidpushnotificationtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GCM" }, "Tags": { + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" }, "TemplateDescription": { + "markdownDescription": "A custom description of the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateDescription", "type": "string" }, "TemplateName": { + "markdownDescription": "The name of the message template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TemplateName", "type": "string" } }, @@ -117467,21 +144305,33 @@ "additionalProperties": false, "properties": { "Action": { + "markdownDescription": "The action to occur if a recipient taps a push notification that's based on the message template\\. Valid values are: \n+ `OPEN_APP` \u2013 Your app opens or it becomes the foreground app if it was sent to the background\\. This is the default action\\.\n+ `DEEP_LINK` \u2013 Your app opens and displays a designated user interface in the app\\. This setting uses the deep\\-linking features of the iOS platform\\.\n+ `URL` \u2013 The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", "type": "string" }, "Body": { + "markdownDescription": "The message body to use in push notifications that are based on the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body", "type": "string" }, "MediaUrl": { + "markdownDescription": "The URL of an image or video to display in push notifications that are based on the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MediaUrl", "type": "string" }, "Sound": { + "markdownDescription": "The key for the sound to play when the recipient receives a push notification that's based on the message template\\. The value for this key is the name of a sound file in your app's main bundle or the `Library/Sounds` folder in your app's data container\\. If the sound file can't be found or you specify `default` for the value, the system plays the default alert sound\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sound", "type": "string" }, "Title": { + "markdownDescription": "The title to use in push notifications that are based on the message template\\. This title appears above the notification message on a recipient's device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Title", "type": "string" }, "Url": { + "markdownDescription": "The URL to open in the recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the `Action` property is `URL`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", "type": "string" } }, @@ -117491,27 +144341,43 @@ "additionalProperties": false, "properties": { "Action": { + "markdownDescription": "The action to occur if a recipient taps a push notification that's based on the message template\\. Valid values are: \n+ `OPEN_APP` \u2013 Your app opens or it becomes the foreground app if it was sent to the background\\. This is the default action\\.\n+ `DEEP_LINK` \u2013 Your app opens and displays a designated user interface in the app\\. This action uses the deep\\-linking features of the Android platform\\.\n+ `URL` \u2013 The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", "type": "string" }, "Body": { + "markdownDescription": "The message body to use in a push notification that's based on the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body", "type": "string" }, "ImageIconUrl": { + "markdownDescription": "The URL of the large icon image to display in the content view of a push notification that's based on the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageIconUrl", "type": "string" }, "ImageUrl": { + "markdownDescription": "The URL of an image to display in a push notification that's based on the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageUrl", "type": "string" }, "SmallImageIconUrl": { + "markdownDescription": "The URL of the small icon image to display in the status bar and the content view of a push notification that's based on the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SmallImageIconUrl", "type": "string" }, "Sound": { + "markdownDescription": "The sound to play when a recipient receives a push notification that's based on the message template\\. You can use the default stream or specify the file name of a sound resource that's bundled in your app\\. On an Android platform, the sound file must reside in `/res/raw/`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sound", "type": "string" }, "Title": { + "markdownDescription": "The title to use in a push notification that's based on the message template\\. This title appears above the notification message on a recipient's device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Title", "type": "string" }, "Url": { + "markdownDescription": "The URL to open in a recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the `Action` property is `URL`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", "type": "string" } }, @@ -117521,18 +144387,28 @@ "additionalProperties": false, "properties": { "Action": { + "markdownDescription": "The action to occur if a recipient taps a push notification that's based on the message template\\. Valid values are: \n+ `OPEN_APP` \u2013 Your app opens or it becomes the foreground app if it was sent to the background\\. This is the default action\\.\n+ `DEEP_LINK` \u2013 Your app opens and displays a designated user interface in the app\\. This setting uses the deep\\-linking features of the iOS and Android platforms\\.\n+ `URL` \u2013 The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", "type": "string" }, "Body": { + "markdownDescription": "The message body to use in push notifications that are based on the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body", "type": "string" }, "Sound": { + "markdownDescription": "The sound to play when a recipient receives a push notification that's based on the message template\\. You can use the default stream or specify the file name of a sound resource that's bundled in your app\\. On an Android platform, the sound file must reside in `/res/raw/`\\. \nFor an iOS platform, this value is the key for the name of a sound file in your app's main bundle or the `Library/Sounds` folder in your app's data container\\. If the sound file can't be found or you specify `default` for the value, the system plays the default alert sound\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sound", "type": "string" }, "Title": { + "markdownDescription": "The title to use in push notifications that are based on the message template\\. This title appears above the notification message on a recipient's device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Title", "type": "string" }, "Url": { + "markdownDescription": "The URL to open in a recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the `Action` property is `URL`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", "type": "string" } }, @@ -117574,15 +144450,23 @@ "additionalProperties": false, "properties": { "ApplicationId": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that the SMS channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", "type": "string" }, "Enabled": { + "markdownDescription": "Specifies whether to enable the SMS channel for the application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "SenderId": { + "markdownDescription": "The identity that you want to display on recipients' devices when they receive messages from the SMS channel\\. \nSenderIDs are only supported in certain countries and regions\\. For more information, see [Supported Countries and Regions](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-countries.html) in the *Amazon Pinpoint User Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SenderId", "type": "string" }, "ShortCode": { + "markdownDescription": "The registered short code that you want to use when you send messages through the SMS channel\\. \nFor information about obtaining a dedicated short code for sending SMS messages, see [Requesting Dedicated Short Codes for SMS Messaging with Amazon Pinpoint](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-awssupport-short-code.html) in the *Amazon Pinpoint User Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShortCode", "type": "string" } }, @@ -117648,18 +144532,28 @@ "additionalProperties": false, "properties": { "ApplicationId": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that the segment is associated with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", "type": "string" }, "Dimensions": { - "$ref": "#/definitions/AWS::Pinpoint::Segment.SegmentDimensions" + "$ref": "#/definitions/AWS::Pinpoint::Segment.SegmentDimensions", + "markdownDescription": "The criteria that define the dimensions for the segment\\. \n*Required*: No \n*Type*: [SegmentDimensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions" }, "Name": { + "markdownDescription": "The name of the segment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "SegmentGroups": { - "$ref": "#/definitions/AWS::Pinpoint::Segment.SegmentGroups" + "$ref": "#/definitions/AWS::Pinpoint::Segment.SegmentGroups", + "markdownDescription": "The segment group to use and the dimensions to apply to the group's base segments in order to build the segment\\. A segment group can consist of zero or more base segments\\. Your request can include only one segment group\\. \n*Required*: No \n*Type*: [SegmentGroups](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentgroups.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentGroups" }, "Tags": { + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" } }, @@ -117694,12 +144588,16 @@ "additionalProperties": false, "properties": { "AttributeType": { + "markdownDescription": "The type of segment dimension to use\\. Valid values are: \n+ `INCLUSIVE` \u2013 endpoints that have attributes matching the values are included in the segment\\.\n+ `EXCLUSIVE` \u2013 endpoints that have attributes matching the values are excluded from the segment\\.\n+ `CONTAINS` \u2013 endpoints that have attributes' substrings match the values are included in the segment\\.\n+ `BEFORE` \u2013 endpoints with attributes read as ISO\\_INSTANT datetimes before the value are included in the segment\\.\n+ `AFTER` \u2013 endpoints with attributes read as ISO\\_INSTANT datetimes after the value are included in the segment\\.\n+ `BETWEEN` \u2013 endpoints with attributes read as ISO\\_INSTANT datetimes between the values are included in the segment\\.\n+ `ON` \u2013 endpoints with attributes read as ISO\\_INSTANT dates on the value are included in the segment\\. Time is ignored in this comparison\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeType", "type": "string" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "The criteria values to use for the segment dimension\\. Depending on the value of the `AttributeType` property, endpoints are included or excluded from the segment if their attribute values match the criteria values\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -117709,7 +144607,9 @@ "additionalProperties": false, "properties": { "Recency": { - "$ref": "#/definitions/AWS::Pinpoint::Segment.Recency" + "$ref": "#/definitions/AWS::Pinpoint::Segment.Recency", + "markdownDescription": "Specifies how recently segment members were active\\. \n*Required*: No \n*Type*: [Recency](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-behavior-recency.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Recency" } }, "type": "object" @@ -117718,9 +144618,13 @@ "additionalProperties": false, "properties": { "Latitude": { + "markdownDescription": "The latitude coordinate of the location\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Latitude", "type": "number" }, "Longitude": { + "markdownDescription": "The longitude coordinate of the location\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Longitude", "type": "number" } }, @@ -117734,22 +144638,34 @@ "additionalProperties": false, "properties": { "AppVersion": { - "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension" + "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension", + "markdownDescription": "The app version criteria for the segment\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppVersion" }, "Channel": { - "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension" + "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension", + "markdownDescription": "The channel criteria for the segment\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Channel" }, "DeviceType": { - "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension" + "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension", + "markdownDescription": "The device type criteria for the segment\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceType" }, "Make": { - "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension" + "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension", + "markdownDescription": "The device make criteria for the segment\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Make" }, "Model": { - "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension" + "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension", + "markdownDescription": "The device model criteria for the segment\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Model" }, "Platform": { - "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension" + "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension", + "markdownDescription": "The device platform criteria for the segment\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Platform" } }, "type": "object" @@ -117758,9 +144674,13 @@ "additionalProperties": false, "properties": { "Coordinates": { - "$ref": "#/definitions/AWS::Pinpoint::Segment.Coordinates" + "$ref": "#/definitions/AWS::Pinpoint::Segment.Coordinates", + "markdownDescription": "The GPS coordinates to measure distance from\\. \n*Required*: Yes \n*Type*: [Coordinates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-location-gpspoint-coordinates.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Coordinates" }, "RangeInKilometers": { + "markdownDescription": "The range, in kilometers, from the GPS coordinates\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RangeInKilometers", "type": "number" } }, @@ -117777,18 +144697,26 @@ "items": { "$ref": "#/definitions/AWS::Pinpoint::Segment.SegmentDimensions" }, + "markdownDescription": "An array that defines the dimensions to include or exclude from the segment\\. \n*Required*: No \n*Type*: List of [SegmentDimensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", "type": "array" }, "SourceSegments": { "items": { "$ref": "#/definitions/AWS::Pinpoint::Segment.SourceSegments" }, + "markdownDescription": "The base segment to build the segment on\\. A base segment, also called a *source segment*, defines the initial population of endpoints for a segment\\. When you add dimensions to the segment, Amazon Pinpoint filters the base segment by using the dimensions that you specify\\. \nYou can specify more than one dimensional segment or only one imported segment\\. If you specify an imported segment, the segment size estimate that displays on the Amazon Pinpoint console indicates the size of the imported segment without any filters applied to it\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentgroups-groups-sourcesegments.html) of [SourceSegments](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentgroups-groups-sourcesegments.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceSegments", "type": "array" }, "SourceType": { + "markdownDescription": "Specifies how to handle multiple base segments for the segment\\. For example, if you specify three base segments for the segment, whether the resulting segment is based on all, any, or none of the base segments\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceType", "type": "string" }, "Type": { + "markdownDescription": "Specifies how to handle multiple dimensions for the segment\\. For example, if you specify three dimensions for the segment, whether the resulting segment includes endpoints that match all, any, or none of the dimensions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -117798,10 +144726,14 @@ "additionalProperties": false, "properties": { "Country": { - "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension" + "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension", + "markdownDescription": "The country or region code, in ISO 3166\\-1 alpha\\-2 format, for the segment\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Country" }, "GPSPoint": { - "$ref": "#/definitions/AWS::Pinpoint::Segment.GPSPoint" + "$ref": "#/definitions/AWS::Pinpoint::Segment.GPSPoint", + "markdownDescription": "The GPS point dimension for the segment\\. \n*Required*: No \n*Type*: [GPSPoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-location-gpspoint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GPSPoint" } }, "type": "object" @@ -117810,9 +144742,13 @@ "additionalProperties": false, "properties": { "Duration": { + "markdownDescription": "The duration to use when determining which users have been active or inactive with your app\\. \nPossible values: `HR_24` \\| `DAY_7` \\| `DAY_14` \\| `DAY_30`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Duration", "type": "string" }, "RecencyType": { + "markdownDescription": "The type of recency dimension to use for the segment\\. Valid values are: `ACTIVE` and `INACTIVE`\\. If the value is `ACTIVE`, the segment includes users who have used your app within the specified duration are included in the segment\\. If the value is `INACTIVE`, the segment includes users who haven't used your app within the specified duration are included in the segment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecencyType", "type": "string" } }, @@ -117826,21 +144762,33 @@ "additionalProperties": false, "properties": { "Attributes": { + "markdownDescription": "One or more custom attributes to use as criteria for the segment\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attributes", "type": "object" }, "Behavior": { - "$ref": "#/definitions/AWS::Pinpoint::Segment.Behavior" + "$ref": "#/definitions/AWS::Pinpoint::Segment.Behavior", + "markdownDescription": "The behavior\\-based criteria, such as how recently users have used your app, for the segment\\. \n*Required*: No \n*Type*: [Behavior](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-behavior.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Behavior" }, "Demographic": { - "$ref": "#/definitions/AWS::Pinpoint::Segment.Demographic" + "$ref": "#/definitions/AWS::Pinpoint::Segment.Demographic", + "markdownDescription": "The demographic\\-based criteria, such as device platform, for the segment\\. \n*Required*: No \n*Type*: [Demographic](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-demographic.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Demographic" }, "Location": { - "$ref": "#/definitions/AWS::Pinpoint::Segment.Location" + "$ref": "#/definitions/AWS::Pinpoint::Segment.Location", + "markdownDescription": "The location\\-based criteria, such as region or GPS coordinates, for the segment\\. \n*Required*: No \n*Type*: [Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location" }, "Metrics": { + "markdownDescription": "One or more custom metrics to use as criteria for the segment\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metrics", "type": "object" }, "UserAttributes": { + "markdownDescription": "One or more custom user attributes to use as criteria for the segment\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserAttributes", "type": "object" } }, @@ -117853,9 +144801,13 @@ "items": { "$ref": "#/definitions/AWS::Pinpoint::Segment.Groups" }, + "markdownDescription": "Specifies the set of segment criteria to evaluate when handling segment groups for the segment\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentgroups-groups.html) of [Groups](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentgroups-groups.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Groups", "type": "array" }, "Include": { + "markdownDescription": "Specifies how to handle multiple segment groups for the segment\\. For example, if the segment includes three segment groups, whether the resulting segment includes endpoints that match all, any, or none of the segment groups\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Include", "type": "string" } }, @@ -117865,12 +144817,16 @@ "additionalProperties": false, "properties": { "DimensionType": { + "markdownDescription": "The type of segment dimension to use\\. Valid values are: `INCLUSIVE`, endpoints that match the criteria are included in the segment; and, `EXCLUSIVE`, endpoints that match the criteria are excluded from the segment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DimensionType", "type": "string" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "The criteria values to use for the segment dimension\\. Depending on the value of the `DimensionType` property, endpoints are included or excluded from the segment if their values match the criteria values\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -117880,9 +144836,13 @@ "additionalProperties": false, "properties": { "Id": { + "markdownDescription": "The unique identifier for the source segment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "Version": { + "markdownDescription": "The version number of the source segment\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "number" } }, @@ -117927,18 +144887,28 @@ "additionalProperties": false, "properties": { "Body": { + "markdownDescription": "The message body to use in text messages that are based on the message template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body", "type": "string" }, "DefaultSubstitutions": { + "markdownDescription": "A JSON object that specifies the default values to use for message variables in the message template\\. This object is a set of key\\-value pairs\\. Each key defines a message variable in the template\\. The corresponding value defines the default value for that variable\\. When you create a message that's based on the template, you can override these defaults with message\\-specific and address\\-specific variables and values\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultSubstitutions", "type": "string" }, "Tags": { + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" }, "TemplateDescription": { + "markdownDescription": "A custom description of the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateDescription", "type": "string" }, "TemplateName": { + "markdownDescription": "The name of the message template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TemplateName", "type": "string" } }, @@ -118005,9 +144975,13 @@ "additionalProperties": false, "properties": { "ApplicationId": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that the voice channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", "type": "string" }, "Enabled": { + "markdownDescription": "Specifies whether to enable the voice channel for the application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -118073,25 +145047,37 @@ "additionalProperties": false, "properties": { "DeliveryOptions": { - "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.DeliveryOptions" + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.DeliveryOptions", + "markdownDescription": "An object that defines the dedicated IP pool that is used to send emails that you send using the configuration set\\. \n*Required*: No \n*Type*: [DeliveryOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-deliveryoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryOptions" }, "Name": { + "markdownDescription": "The name of the configuration set\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "ReputationOptions": { - "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.ReputationOptions" + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.ReputationOptions", + "markdownDescription": "An object that defines whether or not Amazon Pinpoint collects reputation metrics for the emails that you send that use the configuration set\\. \n*Required*: No \n*Type*: [ReputationOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-reputationoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReputationOptions" }, "SendingOptions": { - "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.SendingOptions" + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.SendingOptions", + "markdownDescription": "An object that defines whether or not Amazon Pinpoint can send email that you send using the configuration set\\. \n*Required*: No \n*Type*: [SendingOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-sendingoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SendingOptions" }, "Tags": { "items": { "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.Tags" }, + "markdownDescription": "An object that defines the tags \\(keys and values\\) that you want to associate with the configuration set\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TrackingOptions": { - "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.TrackingOptions" + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.TrackingOptions", + "markdownDescription": "An object that defines the open and click tracking options for emails that you send using the configuration set\\. \n*Required*: No \n*Type*: [TrackingOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-trackingoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrackingOptions" } }, "required": [ @@ -118124,6 +145110,8 @@ "additionalProperties": false, "properties": { "SendingPoolName": { + "markdownDescription": "The name of the dedicated IP pool that you want to associate with the configuration set\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SendingPoolName", "type": "string" } }, @@ -118133,6 +145121,8 @@ "additionalProperties": false, "properties": { "ReputationMetricsEnabled": { + "markdownDescription": "If `true`, tracking of reputation metrics is enabled for the configuration set\\. If `false`, tracking of reputation metrics is disabled for the configuration set\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReputationMetricsEnabled", "type": "boolean" } }, @@ -118142,6 +145132,8 @@ "additionalProperties": false, "properties": { "SendingEnabled": { + "markdownDescription": "If `true`, email sending is enabled for the configuration set\\. If `false`, email sending is disabled for the configuration set\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SendingEnabled", "type": "boolean" } }, @@ -118151,9 +145143,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "One part of a key\\-value pair that defines a tag\\. The maximum length of a tag key is 128 characters\\. The minimum length is 1 character\\. \nIf you specify tags for the configuration set, then this value is required\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The optional part of a key\\-value pair that defines a tag\\. The maximum length of a tag value is 256 characters\\. The minimum length is 0 characters\\. If you don\u2019t want a resource to have a specific tag value, don\u2019t specify a value for this parameter\\. Amazon Pinpoint will set the value to an empty string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -118163,6 +145159,8 @@ "additionalProperties": false, "properties": { "CustomRedirectDomain": { + "markdownDescription": "The domain that you want to use for tracking open and click events\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomRedirectDomain", "type": "string" } }, @@ -118204,12 +145202,18 @@ "additionalProperties": false, "properties": { "ConfigurationSetName": { + "markdownDescription": "The name of the configuration set that contains the event destination that you want to modify\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfigurationSetName", "type": "string" }, "EventDestination": { - "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.EventDestination" + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.EventDestination", + "markdownDescription": "An object that defines the event destination\\. \n*Required*: No \n*Type*: [EventDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-eventdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventDestination" }, "EventDestinationName": { + "markdownDescription": "The name of the event destination that you want to modify\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EventDestinationName", "type": "string" } }, @@ -118247,6 +145251,8 @@ "items": { "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.DimensionConfiguration" }, + "markdownDescription": "An array of objects that define the dimensions to use when you send email events to Amazon CloudWatch\\. \n*Required*: No \n*Type*: List of [DimensionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-dimensionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DimensionConfigurations", "type": "array" } }, @@ -118256,12 +145262,18 @@ "additionalProperties": false, "properties": { "DefaultDimensionValue": { + "markdownDescription": "The default value of the dimension that is published to Amazon CloudWatch if you don't provide the value of the dimension when you send an email\\. This value has to meet the following criteria: \n+ It can only contain ASCII letters \\(a\u2013z, A\u2013Z\\), numbers \\(0\u20139\\), underscores \\(\\_\\), or dashes \\(\\-\\)\\.\n+ It can contain no more than 256 characters\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultDimensionValue", "type": "string" }, "DimensionName": { + "markdownDescription": "The name of an Amazon CloudWatch dimension associated with an email sending metric\\. The name has to meet the following criteria: \n+ It can only contain ASCII letters \\(a\u2013z, A\u2013Z\\), numbers \\(0\u20139\\), underscores \\(\\_\\), or dashes \\(\\-\\)\\.\n+ It can contain no more than 256 characters\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DimensionName", "type": "string" }, "DimensionValueSource": { + "markdownDescription": "The location where Amazon Pinpoint finds the value of a dimension to publish to Amazon CloudWatch\\. Acceptable values: `MESSAGE_TAG`, `EMAIL_HEADER`, and `LINK_TAG`\\. \nIf you want Amazon Pinpoint to use the message tags that you specify using an `X-SES-MESSAGE-TAGS` header or a parameter to the `SendEmail` API, choose `MESSAGE_TAG`\\. If you want Amazon Pinpoint to use your own email headers, choose `EMAIL_HEADER`\\. If you want Amazon Pinpoint to use tags that are specified in your links, choose `LINK_TAG`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DimensionValueSource", "type": "string" } }, @@ -118276,25 +145288,37 @@ "additionalProperties": false, "properties": { "CloudWatchDestination": { - "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.CloudWatchDestination" + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.CloudWatchDestination", + "markdownDescription": "An object that defines an Amazon CloudWatch destination for email events\\. You can use Amazon CloudWatch to monitor and gain insights on your email sending metrics\\. \n*Required*: No \n*Type*: [CloudWatchDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-cloudwatchdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchDestination" }, "Enabled": { + "markdownDescription": "If `true`, the event destination is enabled\\. When the event destination is enabled, the specified event types are sent to the destinations in this `EventDestinationDefinition`\\. \nIf `false`, the event destination is disabled\\. When the event destination is disabled, events aren't sent to the specified destinations\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "KinesisFirehoseDestination": { - "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.KinesisFirehoseDestination" + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.KinesisFirehoseDestination", + "markdownDescription": "An object that defines an Amazon Kinesis Data Firehose destination for email events\\. You can use Amazon Kinesis Data Firehose to stream data to other services, such as Amazon S3 and Amazon Redshift\\. \n*Required*: No \n*Type*: [KinesisFirehoseDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-kinesisfirehosedestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KinesisFirehoseDestination" }, "MatchingEventTypes": { "items": { "type": "string" }, + "markdownDescription": "The types of events that Amazon Pinpoint sends to the specified event destinations\\. Acceptable values: `SEND`, `REJECT`, `BOUNCE`, `COMPLAINT`, `DELIVERY`, `OPEN`, `CLICK`, and `RENDERING_FAILURE`\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MatchingEventTypes", "type": "array" }, "PinpointDestination": { - "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.PinpointDestination" + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.PinpointDestination", + "markdownDescription": "An object that defines a Amazon Pinpoint destination for email events\\. You can use Amazon Pinpoint events to create attributes in Amazon Pinpoint projects\\. You can use these attributes to create segments for your campaigns\\. \n*Required*: No \n*Type*: [PinpointDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-pinpointdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PinpointDestination" }, "SnsDestination": { - "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.SnsDestination" + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.SnsDestination", + "markdownDescription": "An object that defines an Amazon SNS destination for email events\\. You can use Amazon SNS to send notification when certain email events occur\\. \n*Required*: No \n*Type*: [SnsDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-snsdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsDestination" } }, "required": [ @@ -118306,9 +145330,13 @@ "additionalProperties": false, "properties": { "DeliveryStreamArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon Kinesis Data Firehose stream that Amazon Pinpoint sends email events to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryStreamArn", "type": "string" }, "IamRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that Amazon Pinpoint uses when sending email events to the Amazon Kinesis Data Firehose stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamRoleArn", "type": "string" } }, @@ -118322,6 +145350,8 @@ "additionalProperties": false, "properties": { "ApplicationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon Pinpoint project that you want to send email events to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationArn", "type": "string" } }, @@ -118331,6 +145361,8 @@ "additionalProperties": false, "properties": { "TopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic that you want to publish email events to\\. For more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TopicArn", "type": "string" } }, @@ -118375,12 +145407,16 @@ "additionalProperties": false, "properties": { "PoolName": { + "markdownDescription": "The name of the dedicated IP pool\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PoolName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/AWS::PinpointEmail::DedicatedIpPool.Tags" }, + "markdownDescription": "An object that defines the tags \\(keys and values\\) that you want to associate with the dedicated IP pool\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-dedicatedippool-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-dedicatedippool-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -118410,9 +145446,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "One part of a key\\-value pair that defines a tag\\. The maximum length of a tag key is 128 characters\\. The minimum length is 1 character\\. \nIf you specify tags for the dedicated IP pool, then this value is required\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The optional part of a key\\-value pair that defines a tag\\. The maximum length of a tag value is 256 characters\\. The minimum length is 0 characters\\. If you don\u2019t want a resource to have a specific tag value, don\u2019t specify a value for this parameter\\. Amazon Pinpoint will set the value to an empty string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -118454,21 +145494,31 @@ "additionalProperties": false, "properties": { "DkimSigningEnabled": { + "markdownDescription": "For domain identities, this attribute is used to enable or disable DomainKeys Identified Mail \\(DKIM\\) signing for the domain\\. \nIf the value is `true`, then the messages that you send from the domain are signed using both the DKIM keys for your domain, as well as the keys for the `amazonses.com` domain\\. If the value is `false`, then the messages that you send are only signed using the DKIM keys for the `amazonses.com` domain\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DkimSigningEnabled", "type": "boolean" }, "FeedbackForwardingEnabled": { + "markdownDescription": "Used to enable or disable feedback forwarding for an identity\\. This setting determines what happens when an identity is used to send an email that results in a bounce or complaint event\\. \nWhen you enable feedback forwarding, Amazon Pinpoint sends you email notifications when bounce or complaint events occur\\. Amazon Pinpoint sends this notification to the address that you specified in the Return\\-Path header of the original email\\. \nWhen you disable feedback forwarding, Amazon Pinpoint sends notifications through other mechanisms, such as by notifying an Amazon SNS topic\\. You're required to have a method of tracking bounces and complaints\\. If you haven't set up another mechanism for receiving bounce or complaint notifications, Amazon Pinpoint sends an email notification when these events occur \\(even if this setting is disabled\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FeedbackForwardingEnabled", "type": "boolean" }, "MailFromAttributes": { - "$ref": "#/definitions/AWS::PinpointEmail::Identity.MailFromAttributes" + "$ref": "#/definitions/AWS::PinpointEmail::Identity.MailFromAttributes", + "markdownDescription": "Used to enable or disable the custom Mail\\-From domain configuration for an email identity\\. \n*Required*: No \n*Type*: [MailFromAttributes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-identity-mailfromattributes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MailFromAttributes" }, "Name": { + "markdownDescription": "The address or domain of the identity, such as *sender@example\\.com* or *example\\.co\\.uk*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/AWS::PinpointEmail::Identity.Tags" }, + "markdownDescription": "An object that defines the tags \\(keys and values\\) that you want to associate with the email identity\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-identity-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-identity-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -118502,9 +145552,13 @@ "additionalProperties": false, "properties": { "BehaviorOnMxFailure": { + "markdownDescription": "The action that Amazon Pinpoint to takes if it can't read the required MX record for a custom MAIL FROM domain\\. When you set this value to `UseDefaultValue`, Amazon Pinpoint uses *amazonses\\.com* as the MAIL FROM domain\\. When you set this value to `RejectMessage`, Amazon Pinpoint returns a `MailFromDomainNotVerified` error, and doesn't attempt to deliver the email\\. \nThese behaviors are taken when the custom MAIL FROM domain configuration is in the `Pending`, `Failed`, and `TemporaryFailure` states\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `REJECT_MESSAGE | USE_DEFAULT_VALUE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BehaviorOnMxFailure", "type": "string" }, "MailFromDomain": { + "markdownDescription": "The name of a domain that an email identity uses as a custom MAIL FROM domain\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MailFromDomain", "type": "string" } }, @@ -118514,9 +145568,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "One part of a key\\-value pair that defines a tag\\. The maximum length of a tag key is 128 characters\\. The minimum length is 1 character\\. \nIf you specify tags for the identity, then this value is required\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The optional part of a key\\-value pair that defines a tag\\. The maximum length of a tag value is 256 characters\\. The minimum length is 0 characters\\. If you don\u2019t want a resource to have a specific tag value, don\u2019t specify a value for this parameter\\. Amazon Pinpoint will set the value to an empty string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -119635,21 +146693,31 @@ "additionalProperties": false, "properties": { "DeletionProtection": { + "markdownDescription": "The flag that prevents a ledger from being deleted by any user\\. If not provided on ledger creation, this feature is enabled \\(`true`\\) by default\\. \nIf deletion protection is enabled, you must first disable it before you can delete the ledger\\. You can disable it by calling the `UpdateLedger` operation to set the flag to `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeletionProtection", "type": "boolean" }, "KmsKey": { + "markdownDescription": "The key in AWS Key Management Service \\(AWS KMS\\) to use for encryption of data at rest in the ledger\\. For more information, see [Encryption at rest](https://docs.aws.amazon.com/qldb/latest/developerguide/encryption-at-rest.html) in the *Amazon QLDB Developer Guide*\\. \nUse one of the following options to specify this parameter: \n+ `AWS_OWNED_KMS_KEY`: Use an AWS KMS key that is owned and managed by AWS on your behalf\\.\n+ **Undefined**: By default, use an AWS owned KMS key\\.\n+ **A valid symmetric customer managed KMS key**: Use the specified KMS key in your account that you create, own, and manage\\.", + "title": "KmsKey", "type": "string" }, "Name": { + "markdownDescription": "The name of the ledger that you want to create\\. The name must be unique among all of the ledgers in your AWS account in the current Region\\. \nNaming constraints for ledger names are defined in [Quotas in Amazon QLDB](https://docs.aws.amazon.com/qldb/latest/developerguide/limits.html#limits.naming) in the *Amazon QLDB Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `(?!^.*--)(?!^[0-9]+$)(?!^-)(?!.*-$)^[A-Za-z0-9-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "PermissionsMode": { + "markdownDescription": "The permissions mode to assign to the ledger that you want to create\\. This parameter can have one of the following values: \n+ `ALLOW_ALL`: A legacy permissions mode that enables access control with API\\-level granularity for ledgers\\.", + "title": "PermissionsMode", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -119715,27 +146783,41 @@ "additionalProperties": false, "properties": { "ExclusiveEndTime": { + "markdownDescription": "The exclusive date and time that specifies when the stream ends\\. If you don't define this parameter, the stream runs indefinitely until you cancel it\\. \nThe `ExclusiveEndTime` must be in `ISO 8601` date and time format and in Universal Coordinated Time \\(UTC\\)\\. For example: `2019-06-13T21:36:34Z`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExclusiveEndTime", "type": "string" }, "InclusiveStartTime": { + "markdownDescription": "The inclusive start date and time from which to start streaming journal data\\. This parameter must be in `ISO 8601` date and time format and in Universal Coordinated Time \\(UTC\\)\\. For example: `2019-06-13T21:36:34Z`\\. \nThe `InclusiveStartTime` cannot be in the future and must be before `ExclusiveEndTime`\\. \nIf you provide an `InclusiveStartTime` that is before the ledger's `CreationDateTime`, QLDB effectively defaults it to the ledger's `CreationDateTime`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InclusiveStartTime", "type": "string" }, "KinesisConfiguration": { - "$ref": "#/definitions/AWS::QLDB::Stream.KinesisConfiguration" + "$ref": "#/definitions/AWS::QLDB::Stream.KinesisConfiguration", + "markdownDescription": "The configuration settings of the Kinesis Data Streams destination for your stream request\\. \n*Required*: Yes \n*Type*: [KinesisConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-qldb-stream-kinesisconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KinesisConfiguration" }, "LedgerName": { + "markdownDescription": "The name of the ledger\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `(?!^.*--)(?!^[0-9]+$)(?!^-)(?!.*-$)^[A-Za-z0-9-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LedgerName", "type": "string" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that grants QLDB permissions for a journal stream to write data records to a Kinesis Data Streams resource\\. \nTo pass a role to QLDB when requesting a journal stream, you must have permissions to perform the `iam:PassRole` action on the IAM role resource\\. This is required for all journal stream requests\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `1600` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RoleArn", "type": "string" }, "StreamName": { + "markdownDescription": "The name that you want to assign to the QLDB journal stream\\. User\\-defined names can help identify and indicate the purpose of a stream\\. \nYour stream name must be unique among other *active* streams for a given ledger\\. Stream names have the same naming constraints as ledger names, as defined in [Quotas in Amazon QLDB](https://docs.aws.amazon.com/qldb/latest/developerguide/limits.html#limits.naming) in the *Amazon QLDB Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `(?!^.*--)(?!^[0-9]+$)(?!^-)(?!.*-$)^[A-Za-z0-9-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StreamName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -119773,9 +146855,13 @@ "additionalProperties": false, "properties": { "AggregationEnabled": { + "markdownDescription": "Enables QLDB to publish multiple data records in a single Kinesis Data Streams record, increasing the number of records sent per API call\\. \n *This option is enabled by default\\.* Record aggregation has important implications for processing records and requires de\\-aggregation in your stream consumer\\. To learn more, see [KPL Key Concepts](https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-concepts.html) and [Consumer De\\-aggregation](https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-consumer-deaggregation.html) in the *Amazon Kinesis Data Streams Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AggregationEnabled", "type": "boolean" }, "StreamArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Kinesis Data Streams resource\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `1600` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StreamArn", "type": "string" } }, @@ -119817,39 +146903,57 @@ "additionalProperties": false, "properties": { "AnalysisId": { + "markdownDescription": "The ID for the analysis that you're creating\\. This ID displays in the URL of the analysis\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `[\\w\\-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AnalysisId", "type": "string" }, "AwsAccountId": { + "markdownDescription": "The ID of the AWS account where you are creating an analysis\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AwsAccountId", "type": "string" }, "Errors": { "items": { "$ref": "#/definitions/AWS::QuickSight::Analysis.AnalysisError" }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of [AnalysisError](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-analysiserror.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Errors", "type": "array" }, "Name": { + "markdownDescription": "A descriptive name for the analysis that you're creating\\. This name displays for the analysis in the Amazon QuickSight console\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Parameters": { - "$ref": "#/definitions/AWS::QuickSight::Analysis.Parameters" + "$ref": "#/definitions/AWS::QuickSight::Analysis.Parameters", + "markdownDescription": "The parameter names and override values that you want to use\\. An analysis can have any parameter type, and some parameters might accept multiple values\\. \n*Required*: No \n*Type*: [Parameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-parameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters" }, "Permissions": { "items": { "$ref": "#/definitions/AWS::QuickSight::Analysis.ResourcePermission" }, + "markdownDescription": "A structure that describes the principals and the resource\\-level permissions on an analysis\\. You can use the `Permissions` structure to grant permissions by providing a list of AWS Identity and Access Management \\(IAM\\) action information for each principal listed by Amazon Resource Name \\(ARN\\)\\. \nTo specify no permissions, omit `Permissions`\\. \n*Required*: No \n*Type*: List of [ResourcePermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-resourcepermission.html) \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Permissions", "type": "array" }, "SourceEntity": { - "$ref": "#/definitions/AWS::QuickSight::Analysis.AnalysisSourceEntity" + "$ref": "#/definitions/AWS::QuickSight::Analysis.AnalysisSourceEntity", + "markdownDescription": "A source entity to use for the analysis that you're creating\\. This metadata structure contains details that describe a source template and one or more datasets\\. \n*Required*: Yes \n*Type*: [AnalysisSourceEntity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-analysissourceentity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceEntity" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Contains a map of the key\\-value pairs for the resource tag or tags assigned to the analysis\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "ThemeArn": { + "markdownDescription": "The ARN for the theme to apply to the analysis that you're creating\\. To see the theme in the Amazon QuickSight console, make sure that you have access to it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThemeArn", "type": "string" } }, @@ -119885,9 +146989,13 @@ "additionalProperties": false, "properties": { "Message": { + "markdownDescription": "The message associated with the analysis error\\. \n*Required*: No \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Message", "type": "string" }, "Type": { + "markdownDescription": "The type of the analysis error\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ACCESS_DENIED | COLUMN_GEOGRAPHIC_ROLE_MISMATCH | COLUMN_REPLACEMENT_MISSING | COLUMN_TYPE_MISMATCH | DATA_SET_NOT_FOUND | INTERNAL_FAILURE | PARAMETER_NOT_FOUND | PARAMETER_TYPE_INVALID | PARAMETER_VALUE_INCOMPATIBLE | SOURCE_NOT_FOUND` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -119897,7 +147005,9 @@ "additionalProperties": false, "properties": { "SourceTemplate": { - "$ref": "#/definitions/AWS::QuickSight::Analysis.AnalysisSourceTemplate" + "$ref": "#/definitions/AWS::QuickSight::Analysis.AnalysisSourceTemplate", + "markdownDescription": "The source template for the source entity of the analysis\\. \n*Required*: No \n*Type*: [AnalysisSourceTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-analysissourcetemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceTemplate" } }, "type": "object" @@ -119906,12 +147016,16 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the source template of an analysis\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "DataSetReferences": { "items": { "$ref": "#/definitions/AWS::QuickSight::Analysis.DataSetReference" }, + "markdownDescription": "The dataset references of the source template of an analysis\\. \n*Required*: Yes \n*Type*: List of [DataSetReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-datasetreference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSetReferences", "type": "array" } }, @@ -119925,9 +147039,13 @@ "additionalProperties": false, "properties": { "DataSetArn": { + "markdownDescription": "Dataset Amazon Resource Name \\(ARN\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSetArn", "type": "string" }, "DataSetPlaceholder": { + "markdownDescription": "Dataset placeholder\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSetPlaceholder", "type": "string" } }, @@ -119941,12 +147059,16 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "A display name for the date\\-time parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "The values for the date\\-time parameter\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -119960,12 +147082,16 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "A display name for the decimal parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Values": { "items": { "type": "number" }, + "markdownDescription": "The values for the decimal parameter\\. \n*Required*: Yes \n*Type*: List of Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -119979,12 +147105,16 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the integer parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Values": { "items": { "type": "number" }, + "markdownDescription": "The values for the integer parameter\\. \n*Required*: Yes \n*Type*: List of Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -120001,24 +147131,32 @@ "items": { "$ref": "#/definitions/AWS::QuickSight::Analysis.DateTimeParameter" }, + "markdownDescription": "The parameters that have a data type of date\\-time\\. \n*Required*: No \n*Type*: List of [DateTimeParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-datetimeparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DateTimeParameters", "type": "array" }, "DecimalParameters": { "items": { "$ref": "#/definitions/AWS::QuickSight::Analysis.DecimalParameter" }, + "markdownDescription": "The parameters that have a data type of decimal\\. \n*Required*: No \n*Type*: List of [DecimalParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-decimalparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DecimalParameters", "type": "array" }, "IntegerParameters": { "items": { "$ref": "#/definitions/AWS::QuickSight::Analysis.IntegerParameter" }, + "markdownDescription": "The parameters that have a data type of integer\\. \n*Required*: No \n*Type*: List of [IntegerParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-integerparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegerParameters", "type": "array" }, "StringParameters": { "items": { "$ref": "#/definitions/AWS::QuickSight::Analysis.StringParameter" }, + "markdownDescription": "The parameters that have a data type of string\\. \n*Required*: No \n*Type*: List of [StringParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-stringparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StringParameters", "type": "array" } }, @@ -120031,9 +147169,13 @@ "items": { "type": "string" }, + "markdownDescription": "The IAM action to grant or revoke permissions on\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", "type": "array" }, "Principal": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the principal\\. This can be one of the following: \n+ The ARN of an Amazon QuickSight user or group associated with a data source or dataset\\. \\(This is common\\.\\)\n+ The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme\\. \\(This is common\\.\\)\n+ The ARN of an AWS account root: This is an IAM ARN rather than a Amazon QuickSight ARN\\. Use this option only to share resources \\(templates\\) across AWS accounts\\. \\(This is less common\\.\\)\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Principal", "type": "string" } }, @@ -120047,9 +147189,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of a sheet\\. This name is displayed on the sheet's tab in the Amazon QuickSight console\\. \n*Required*: No \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "SheetId": { + "markdownDescription": "The unique identifier associated with a sheet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `[\\w\\-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SheetId", "type": "string" } }, @@ -120059,12 +147205,16 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "A display name for a string parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "The values of a string parameter\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -120110,39 +147260,59 @@ "additionalProperties": false, "properties": { "AwsAccountId": { + "markdownDescription": "The ID of the AWS account where you want to create the dashboard\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AwsAccountId", "type": "string" }, "DashboardId": { + "markdownDescription": "The ID for the dashboard, also added to the IAM policy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `[\\w\\-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DashboardId", "type": "string" }, "DashboardPublishOptions": { - "$ref": "#/definitions/AWS::QuickSight::Dashboard.DashboardPublishOptions" + "$ref": "#/definitions/AWS::QuickSight::Dashboard.DashboardPublishOptions", + "markdownDescription": "Options for publishing the dashboard when you create it: \n+ `AvailabilityStatus` for `AdHocFilteringOption` \\- This status can be either `ENABLED` or `DISABLED`\\. When this is set to `DISABLED`, Amazon QuickSight disables the left filter pane on the published dashboard, which can be used for ad hoc \\(one\\-time\\) filtering\\. This option is `ENABLED` by default\\. \n+ `AvailabilityStatus` for `ExportToCSVOption` \\- This status can be either `ENABLED` or `DISABLED`\\. The visual option to export data to \\.CSV format isn't enabled when this is set to `DISABLED`\\. This option is `ENABLED` by default\\. \n+ `VisibilityState` for `SheetControlsOption` \\- This visibility state can be either `COLLAPSED` or `EXPANDED`\\. This option is `COLLAPSED` by default\\. \n*Required*: No \n*Type*: [DashboardPublishOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-dashboardpublishoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DashboardPublishOptions" }, "Name": { + "markdownDescription": "The display name of the dashboard\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Parameters": { - "$ref": "#/definitions/AWS::QuickSight::Dashboard.Parameters" + "$ref": "#/definitions/AWS::QuickSight::Dashboard.Parameters", + "markdownDescription": "The parameters for the creation of the dashboard, which you want to use to override the default settings\\. A dashboard can have any type of parameters, and some parameters might accept multiple values\\. \n*Required*: No \n*Type*: [Parameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-parameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters" }, "Permissions": { "items": { "$ref": "#/definitions/AWS::QuickSight::Dashboard.ResourcePermission" }, + "markdownDescription": "A structure that contains the permissions of the dashboard\\. You can use this structure for granting permissions by providing a list of IAM action information for each principal ARN\\. \nTo specify no permissions, omit the permissions list\\. \n*Required*: No \n*Type*: List of [ResourcePermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-resourcepermission.html) \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Permissions", "type": "array" }, "SourceEntity": { - "$ref": "#/definitions/AWS::QuickSight::Dashboard.DashboardSourceEntity" + "$ref": "#/definitions/AWS::QuickSight::Dashboard.DashboardSourceEntity", + "markdownDescription": "The entity that you are using as a source when you create the dashboard\\. In `SourceEntity`, you specify the type of object that you want to use\\. You can only create a dashboard from a template, so you use a `SourceTemplate` entity\\. If you need to create a dashboard from an analysis, first convert the analysis to a template by using the `CreateTemplate` API operation\\. For `SourceTemplate`, specify the Amazon Resource Name \\(ARN\\) of the source template\\. The `SourceTemplate`ARN can contain any AWS account; and any QuickSight\\-supported AWS Region\\. \nUse the `DataSetReferences` entity within `SourceTemplate` to list the replacement datasets for the placeholders listed in the original\\. The schema in each dataset must match its placeholder\\. \n*Required*: Yes \n*Type*: [DashboardSourceEntity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-dashboardsourceentity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceEntity" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Contains a map of the key\\-value pairs for the resource tag or tags assigned to the dashboard\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "ThemeArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the theme that is being used for this dashboard\\. If you add a value for this field, it overrides the value that is used in the source entity\\. The theme ARN must exist in the same AWS account where you create the dashboard\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThemeArn", "type": "string" }, "VersionDescription": { + "markdownDescription": "A description for the first version of the dashboard being created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VersionDescription", "type": "string" } }, @@ -120178,6 +147348,8 @@ "additionalProperties": false, "properties": { "AvailabilityStatus": { + "markdownDescription": "Availability status\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityStatus", "type": "string" } }, @@ -120199,13 +147371,19 @@ "additionalProperties": false, "properties": { "AdHocFilteringOption": { - "$ref": "#/definitions/AWS::QuickSight::Dashboard.AdHocFilteringOption" + "$ref": "#/definitions/AWS::QuickSight::Dashboard.AdHocFilteringOption", + "markdownDescription": "Ad hoc \\(one\\-time\\) filtering option\\. \n*Required*: No \n*Type*: [AdHocFilteringOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-adhocfilteringoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdHocFilteringOption" }, "ExportToCSVOption": { - "$ref": "#/definitions/AWS::QuickSight::Dashboard.ExportToCSVOption" + "$ref": "#/definitions/AWS::QuickSight::Dashboard.ExportToCSVOption", + "markdownDescription": "Export to \\.csv option\\. \n*Required*: No \n*Type*: [ExportToCSVOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-exporttocsvoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExportToCSVOption" }, "SheetControlsOption": { - "$ref": "#/definitions/AWS::QuickSight::Dashboard.SheetControlsOption" + "$ref": "#/definitions/AWS::QuickSight::Dashboard.SheetControlsOption", + "markdownDescription": "Sheet controls option\\. \n*Required*: No \n*Type*: [SheetControlsOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-sheetcontrolsoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SheetControlsOption" } }, "type": "object" @@ -120214,7 +147392,9 @@ "additionalProperties": false, "properties": { "SourceTemplate": { - "$ref": "#/definitions/AWS::QuickSight::Dashboard.DashboardSourceTemplate" + "$ref": "#/definitions/AWS::QuickSight::Dashboard.DashboardSourceTemplate", + "markdownDescription": "Source template\\. \n*Required*: No \n*Type*: [DashboardSourceTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-dashboardsourcetemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceTemplate" } }, "type": "object" @@ -120223,12 +147403,16 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "DataSetReferences": { "items": { "$ref": "#/definitions/AWS::QuickSight::Dashboard.DataSetReference" }, + "markdownDescription": "Dataset references\\. \n*Required*: Yes \n*Type*: List of [DataSetReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-datasetreference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSetReferences", "type": "array" } }, @@ -120287,9 +147471,13 @@ "additionalProperties": false, "properties": { "DataSetArn": { + "markdownDescription": "Dataset Amazon Resource Name \\(ARN\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSetArn", "type": "string" }, "DataSetPlaceholder": { + "markdownDescription": "Dataset placeholder\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSetPlaceholder", "type": "string" } }, @@ -120303,12 +147491,16 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "A display name for the date\\-time parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "The values for the date\\-time parameter\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -120322,12 +147514,16 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "A display name for the decimal parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Values": { "items": { "type": "number" }, + "markdownDescription": "The values for the decimal parameter\\. \n*Required*: Yes \n*Type*: List of Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -120341,6 +147537,8 @@ "additionalProperties": false, "properties": { "AvailabilityStatus": { + "markdownDescription": "Availability status\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityStatus", "type": "string" } }, @@ -120350,12 +147548,16 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the integer parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Values": { "items": { "type": "number" }, + "markdownDescription": "The values for the integer parameter\\. \n*Required*: Yes \n*Type*: List of Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -120372,24 +147574,32 @@ "items": { "$ref": "#/definitions/AWS::QuickSight::Dashboard.DateTimeParameter" }, + "markdownDescription": "The parameters that have a data type of date\\-time\\. \n*Required*: No \n*Type*: List of [DateTimeParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-datetimeparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DateTimeParameters", "type": "array" }, "DecimalParameters": { "items": { "$ref": "#/definitions/AWS::QuickSight::Dashboard.DecimalParameter" }, + "markdownDescription": "The parameters that have a data type of decimal\\. \n*Required*: No \n*Type*: List of [DecimalParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-decimalparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DecimalParameters", "type": "array" }, "IntegerParameters": { "items": { "$ref": "#/definitions/AWS::QuickSight::Dashboard.IntegerParameter" }, + "markdownDescription": "The parameters that have a data type of integer\\. \n*Required*: No \n*Type*: List of [IntegerParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-integerparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegerParameters", "type": "array" }, "StringParameters": { "items": { "$ref": "#/definitions/AWS::QuickSight::Dashboard.StringParameter" }, + "markdownDescription": "The parameters that have a data type of string\\. \n*Required*: No \n*Type*: List of [StringParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-stringparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StringParameters", "type": "array" } }, @@ -120402,9 +147612,13 @@ "items": { "type": "string" }, + "markdownDescription": "The IAM action to grant or revoke permissions on\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", "type": "array" }, "Principal": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the principal\\. This can be one of the following: \n+ The ARN of an Amazon QuickSight user or group associated with a data source or dataset\\. \\(This is common\\.\\)\n+ The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme\\. \\(This is common\\.\\)\n+ The ARN of an AWS account root: This is an IAM ARN rather than a Amazon QuickSight ARN\\. Use this option only to share resources \\(templates\\) across AWS accounts\\. \\(This is less common\\.\\)\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Principal", "type": "string" } }, @@ -120430,6 +147644,8 @@ "additionalProperties": false, "properties": { "VisibilityState": { + "markdownDescription": "Visibility state\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `COLLAPSED | EXPANDED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VisibilityState", "type": "string" } }, @@ -120439,12 +147655,16 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "A display name for a string parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "The values of a string parameter\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -120490,21 +147710,29 @@ "additionalProperties": false, "properties": { "AwsAccountId": { + "markdownDescription": "The AWS account ID\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AwsAccountId", "type": "string" }, "ColumnGroups": { "items": { "$ref": "#/definitions/AWS::QuickSight::DataSet.ColumnGroup" }, + "markdownDescription": "Groupings of columns that work together in certain Amazon QuickSight features\\. Currently, only geospatial hierarchy is supported\\. \n*Required*: No \n*Type*: List of [ColumnGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-columngroup.html) \n*Maximum*: `8` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnGroups", "type": "array" }, "ColumnLevelPermissionRules": { "items": { "$ref": "#/definitions/AWS::QuickSight::DataSet.ColumnLevelPermissionRule" }, + "markdownDescription": "A set of one or more definitions of a ` ColumnLevelPermissionRule `\\. \n*Required*: No \n*Type*: List of [ColumnLevelPermissionRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-columnlevelpermissionrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnLevelPermissionRules", "type": "array" }, "DataSetId": { + "markdownDescription": "An ID for the dataset that you want to create\\. This ID is unique per AWS Region for each AWS account\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataSetId", "type": "string" }, "DataSetUsageConfiguration": { @@ -120512,53 +147740,71 @@ }, "FieldFolders": { "additionalProperties": false, + "markdownDescription": "The folder that contains fields and nested subfolders for your dataset\\. \n*Required*: No \n*Type*: Map of [FieldFolder](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-fieldfolder.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::QuickSight::DataSet.FieldFolder" } }, + "title": "FieldFolders", "type": "object" }, "ImportMode": { + "markdownDescription": "Indicates whether you want to import the data into SPICE\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DIRECT_QUERY | SPICE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImportMode", "type": "string" }, "IngestionWaitPolicy": { - "$ref": "#/definitions/AWS::QuickSight::DataSet.IngestionWaitPolicy" + "$ref": "#/definitions/AWS::QuickSight::DataSet.IngestionWaitPolicy", + "markdownDescription": "The wait policy to use when creating or updating a Dataset\\. The default is to wait for SPICE ingestion to finish with timeout of 36 hours\\. \n*Required*: No \n*Type*: [IngestionWaitPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-ingestionwaitpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IngestionWaitPolicy" }, "LogicalTableMap": { "additionalProperties": false, + "markdownDescription": "Configures the combination and transformation of the data from the physical tables\\. \n*Required*: No \n*Type*: Map of [LogicalTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-logicaltable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::QuickSight::DataSet.LogicalTable" } }, + "title": "LogicalTableMap", "type": "object" }, "Name": { + "markdownDescription": "The display name for the dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Permissions": { "items": { "$ref": "#/definitions/AWS::QuickSight::DataSet.ResourcePermission" }, + "markdownDescription": "A list of resource permissions on the dataset\\. \n*Required*: No \n*Type*: List of [ResourcePermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-resourcepermission.html) \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Permissions", "type": "array" }, "PhysicalTableMap": { "additionalProperties": false, + "markdownDescription": "Declares the physical tables that are available in the underlying data sources\\. \n*Required*: No \n*Type*: Map of [PhysicalTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-physicaltable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::QuickSight::DataSet.PhysicalTable" } }, + "title": "PhysicalTableMap", "type": "object" }, "RowLevelPermissionDataSet": { - "$ref": "#/definitions/AWS::QuickSight::DataSet.RowLevelPermissionDataSet" + "$ref": "#/definitions/AWS::QuickSight::DataSet.RowLevelPermissionDataSet", + "markdownDescription": "The row\\-level security configuration for the data that you want to create\\. \n*Required*: No \n*Type*: [RowLevelPermissionDataSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-rowlevelpermissiondataset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RowLevelPermissionDataSet" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Contains a map of the key\\-value pairs for the resource tag or tags assigned to the dataset\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -120588,12 +147834,18 @@ "additionalProperties": false, "properties": { "ColumnId": { + "markdownDescription": "A unique ID to identify a calculated column\\. During a dataset update, if the column ID of a calculated column matches that of an existing calculated column, Amazon QuickSight preserves the existing calculated column\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnId", "type": "string" }, "ColumnName": { + "markdownDescription": "Column name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnName", "type": "string" }, "Expression": { + "markdownDescription": "An expression that defines the calculated column\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Expression", "type": "string" } }, @@ -120608,12 +147860,18 @@ "additionalProperties": false, "properties": { "ColumnName": { + "markdownDescription": "Column name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnName", "type": "string" }, "Format": { + "markdownDescription": "When casting a column from string to datetime type, you can supply a string in a format supported by Amazon QuickSight to denote the source data format\\. \n*Required*: No \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", "type": "string" }, "NewColumnType": { + "markdownDescription": "New column data type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DATETIME | DECIMAL | INTEGER | STRING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NewColumnType", "type": "string" } }, @@ -120627,6 +147885,8 @@ "additionalProperties": false, "properties": { "Text": { + "markdownDescription": "The text of a description for a column\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Text", "type": "string" } }, @@ -120636,7 +147896,9 @@ "additionalProperties": false, "properties": { "GeoSpatialColumnGroup": { - "$ref": "#/definitions/AWS::QuickSight::DataSet.GeoSpatialColumnGroup" + "$ref": "#/definitions/AWS::QuickSight::DataSet.GeoSpatialColumnGroup", + "markdownDescription": "Geospatial column group that denotes a hierarchy\\. \n*Required*: No \n*Type*: [GeoSpatialColumnGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-geospatialcolumngroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GeoSpatialColumnGroup" } }, "type": "object" @@ -120648,12 +147910,16 @@ "items": { "type": "string" }, + "markdownDescription": "An array of column names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnNames", "type": "array" }, "Principals": { "items": { "type": "string" }, + "markdownDescription": "An array of Amazon Resource Names \\(ARNs\\) for Amazon QuickSight users or groups\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Principals", "type": "array" } }, @@ -120663,9 +147929,13 @@ "additionalProperties": false, "properties": { "ColumnDescription": { - "$ref": "#/definitions/AWS::QuickSight::DataSet.ColumnDescription" + "$ref": "#/definitions/AWS::QuickSight::DataSet.ColumnDescription", + "markdownDescription": "A description for a column\\. \n*Required*: No \n*Type*: [ColumnDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-columndescription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnDescription" }, "ColumnGeographicRole": { + "markdownDescription": "A geospatial role for a column\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CITY | COUNTRY | COUNTY | LATITUDE | LONGITUDE | POSTCODE | STATE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnGeographicRole", "type": "string" } }, @@ -120678,6 +147948,8 @@ "items": { "$ref": "#/definitions/AWS::QuickSight::DataSet.CalculatedColumn" }, + "markdownDescription": "Calculated columns to create\\. \n*Required*: Yes \n*Type*: List of [CalculatedColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-calculatedcolumn.html) \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Columns", "type": "array" } }, @@ -120693,15 +147965,23 @@ "items": { "$ref": "#/definitions/AWS::QuickSight::DataSet.InputColumn" }, + "markdownDescription": "The column schema from the SQL query result set\\. \n*Required*: Yes \n*Type*: List of [InputColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-inputcolumn.html) \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Columns", "type": "array" }, "DataSourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSourceArn", "type": "string" }, "Name": { + "markdownDescription": "A display name for the SQL query result\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "SqlQuery": { + "markdownDescription": "The SQL query\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `65536` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SqlQuery", "type": "string" } }, @@ -120732,9 +148012,13 @@ "items": { "type": "string" }, + "markdownDescription": "A folder has a list of columns\\. A column can only be in one folder\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Columns", "type": "array" }, "Description": { + "markdownDescription": "The description for a field folder\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" } }, @@ -120744,6 +148028,8 @@ "additionalProperties": false, "properties": { "ConditionExpression": { + "markdownDescription": "An expression that must evaluate to a Boolean value\\. Rows for which the expression evaluates to true are kept in the dataset\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConditionExpression", "type": "string" } }, @@ -120759,12 +148045,18 @@ "items": { "type": "string" }, + "markdownDescription": "Columns in this hierarchy\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `16` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Columns", "type": "array" }, "CountryCode": { + "markdownDescription": "Country code\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `US` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CountryCode", "type": "string" }, "Name": { + "markdownDescription": "A display name for the hierarchy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -120778,9 +148070,13 @@ "additionalProperties": false, "properties": { "IngestionWaitTimeInHours": { + "markdownDescription": "The maximum time \\(in hours\\) to wait for Ingestion to complete\\. Default timeout is 36 hours\\. Applicable only when `DataSetImportMode` mode is set to SPICE and `WaitForSpiceIngestion` is set to true\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IngestionWaitTimeInHours", "type": "number" }, "WaitForSpiceIngestion": { + "markdownDescription": "Wait for SPICE ingestion to finish to mark dataset creation or update as successful\\. Default \\(true\\)\\. Applicable only when `DataSetImportMode` mode is set to SPICE\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WaitForSpiceIngestion", "type": "boolean" } }, @@ -120790,9 +148086,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of this column in the underlying data source\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Type": { + "markdownDescription": "The data type of the column\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BIT | BOOLEAN | DATETIME | DECIMAL | INTEGER | JSON | STRING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -120806,21 +148106,33 @@ "additionalProperties": false, "properties": { "LeftJoinKeyProperties": { - "$ref": "#/definitions/AWS::QuickSight::DataSet.JoinKeyProperties" + "$ref": "#/definitions/AWS::QuickSight::DataSet.JoinKeyProperties", + "markdownDescription": "Join key properties of the left operand\\. \n*Required*: No \n*Type*: [JoinKeyProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-joinkeyproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LeftJoinKeyProperties" }, "LeftOperand": { + "markdownDescription": "The operand on the left side of a join\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[0-9a-zA-Z-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LeftOperand", "type": "string" }, "OnClause": { + "markdownDescription": "The join instructions provided in the `ON` clause of a join\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnClause", "type": "string" }, "RightJoinKeyProperties": { - "$ref": "#/definitions/AWS::QuickSight::DataSet.JoinKeyProperties" + "$ref": "#/definitions/AWS::QuickSight::DataSet.JoinKeyProperties", + "markdownDescription": "Join key properties of the right operand\\. \n*Required*: No \n*Type*: [JoinKeyProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-joinkeyproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RightJoinKeyProperties" }, "RightOperand": { + "markdownDescription": "The operand on the right side of a join\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[0-9a-zA-Z-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RightOperand", "type": "string" }, "Type": { + "markdownDescription": "The type of join that it is\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `INNER | LEFT | OUTER | RIGHT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -120836,6 +148148,8 @@ "additionalProperties": false, "properties": { "UniqueKey": { + "markdownDescription": "A value that indicates that a row in a table is uniquely identified by the columns in a join key\\. This is used by Amazon QuickSight to optimize query performance\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UniqueKey", "type": "boolean" } }, @@ -120845,16 +148159,22 @@ "additionalProperties": false, "properties": { "Alias": { + "markdownDescription": "A display name for the logical table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alias", "type": "string" }, "DataTransforms": { "items": { "$ref": "#/definitions/AWS::QuickSight::DataSet.TransformOperation" }, + "markdownDescription": "Transform operations that act on this logical table\\. \n*Required*: No \n*Type*: List of [TransformOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-transformoperation.html) \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataTransforms", "type": "array" }, "Source": { - "$ref": "#/definitions/AWS::QuickSight::DataSet.LogicalTableSource" + "$ref": "#/definitions/AWS::QuickSight::DataSet.LogicalTableSource", + "markdownDescription": "Source of this logical table\\. \n*Required*: Yes \n*Type*: [LogicalTableSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-logicaltablesource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source" } }, "required": [ @@ -120870,9 +148190,13 @@ "type": "string" }, "JoinInstruction": { - "$ref": "#/definitions/AWS::QuickSight::DataSet.JoinInstruction" + "$ref": "#/definitions/AWS::QuickSight::DataSet.JoinInstruction", + "markdownDescription": "Specifies the result of a join of two logical tables\\. \n*Required*: No \n*Type*: [JoinInstruction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-joininstruction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JoinInstruction" }, "PhysicalTableId": { + "markdownDescription": "Physical table ID\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[0-9a-zA-Z-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PhysicalTableId", "type": "string" } }, @@ -120882,12 +148206,18 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description for a column\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "A display name for the dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Type": { + "markdownDescription": "Type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DATETIME | DECIMAL | INTEGER | STRING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -120897,13 +148227,19 @@ "additionalProperties": false, "properties": { "CustomSql": { - "$ref": "#/definitions/AWS::QuickSight::DataSet.CustomSql" + "$ref": "#/definitions/AWS::QuickSight::DataSet.CustomSql", + "markdownDescription": "A physical table type built from the results of the custom SQL query\\. \n*Required*: No \n*Type*: [CustomSql](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-customsql.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomSql" }, "RelationalTable": { - "$ref": "#/definitions/AWS::QuickSight::DataSet.RelationalTable" + "$ref": "#/definitions/AWS::QuickSight::DataSet.RelationalTable", + "markdownDescription": "A physical table type for relational data sources\\. \n*Required*: No \n*Type*: [RelationalTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-relationaltable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RelationalTable" }, "S3Source": { - "$ref": "#/definitions/AWS::QuickSight::DataSet.S3Source" + "$ref": "#/definitions/AWS::QuickSight::DataSet.S3Source", + "markdownDescription": "A physical table type for as S3 data source\\. \n*Required*: No \n*Type*: [S3Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-s3source.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Source" } }, "type": "object" @@ -120915,6 +148251,8 @@ "items": { "type": "string" }, + "markdownDescription": "Projected columns\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProjectedColumns", "type": "array" } }, @@ -120927,21 +148265,31 @@ "additionalProperties": false, "properties": { "Catalog": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Catalog", "type": "string" }, "DataSourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSourceArn", "type": "string" }, "InputColumns": { "items": { "$ref": "#/definitions/AWS::QuickSight::DataSet.InputColumn" }, + "markdownDescription": "The column schema of the table\\. \n*Required*: Yes \n*Type*: List of [InputColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-inputcolumn.html) \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputColumns", "type": "array" }, "Name": { + "markdownDescription": "The name of the relational table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Schema": { + "markdownDescription": "The schema name\\. This name applies to certain relational database engines\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schema", "type": "string" } }, @@ -120956,9 +148304,13 @@ "additionalProperties": false, "properties": { "ColumnName": { + "markdownDescription": "The name of the column to be renamed\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnName", "type": "string" }, "NewColumnName": { + "markdownDescription": "The new name for the column\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NewColumnName", "type": "string" } }, @@ -120975,9 +148327,13 @@ "items": { "type": "string" }, + "markdownDescription": "The IAM action to grand or revoke permisions on \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", "type": "array" }, "Principal": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the principal\\. This can be one of the following: \n+ The ARN of an Amazon QuickSight user or group associated with a data source or dataset\\. \\(This is common\\.\\)\n+ The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme\\. \\(This is common\\.\\)\n+ The ARN of an AWS account root: This is an IAM ARN rather than a Amazon QuickSight ARN\\. Use this option only to share resources \\(templates\\) across AWS accounts\\. \\(This is less common\\.\\)\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Principal", "type": "string" } }, @@ -120991,15 +148347,23 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the dataset that contains permissions for RLS\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "FormatVersion": { + "markdownDescription": "The user or group rules associated with the dataset that contains permissions for RLS\\. \nBy default, `FormatVersion` is `VERSION_1`\\. When `FormatVersion` is `VERSION_1`, `UserName` and `GroupName` are required\\. When `FormatVersion` is `VERSION_2`, `UserARN` and `GroupARN` are required, and `Namespace` must not exist\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `VERSION_1 | VERSION_2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FormatVersion", "type": "string" }, "Namespace": { + "markdownDescription": "The namespace associated with the dataset that contains permissions for RLS\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9._-]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", "type": "string" }, "PermissionPolicy": { + "markdownDescription": "The type of permissions to use when interpreting the permissions for RLS\\. `DENY_ACCESS` is included for backward compatibility only\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DENY_ACCESS | GRANT_ACCESS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PermissionPolicy", "type": "string" } }, @@ -121013,16 +148377,22 @@ "additionalProperties": false, "properties": { "DataSourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSourceArn", "type": "string" }, "InputColumns": { "items": { "$ref": "#/definitions/AWS::QuickSight::DataSet.InputColumn" }, + "markdownDescription": "A physical table type for an S3 data source\\. \nFor files that aren't JSON, only `STRING` data types are supported in input columns\\.\n*Required*: Yes \n*Type*: List of [InputColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-inputcolumn.html) \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputColumns", "type": "array" }, "UploadSettings": { - "$ref": "#/definitions/AWS::QuickSight::DataSet.UploadSettings" + "$ref": "#/definitions/AWS::QuickSight::DataSet.UploadSettings", + "markdownDescription": "Information about the format for the S3 source file or files\\. \n*Required*: No \n*Type*: [UploadSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-uploadsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UploadSettings" } }, "required": [ @@ -121035,12 +148405,16 @@ "additionalProperties": false, "properties": { "ColumnName": { + "markdownDescription": "The column that this operation acts on\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/AWS::QuickSight::DataSet.ColumnTag" }, + "markdownDescription": "The dataset column tag, currently only used for geospatial type tagging\\. \nThis is not tags for the AWS tagging feature\\.\n*Required*: Yes \n*Type*: List of [ColumnTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-columntag.html) \n*Maximum*: `16` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -121054,22 +148428,34 @@ "additionalProperties": false, "properties": { "CastColumnTypeOperation": { - "$ref": "#/definitions/AWS::QuickSight::DataSet.CastColumnTypeOperation" + "$ref": "#/definitions/AWS::QuickSight::DataSet.CastColumnTypeOperation", + "markdownDescription": "A transform operation that casts a column to a different type\\. \n*Required*: No \n*Type*: [CastColumnTypeOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-castcolumntypeoperation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CastColumnTypeOperation" }, "CreateColumnsOperation": { - "$ref": "#/definitions/AWS::QuickSight::DataSet.CreateColumnsOperation" + "$ref": "#/definitions/AWS::QuickSight::DataSet.CreateColumnsOperation", + "markdownDescription": "An operation that creates calculated columns\\. Columns created in one such operation form a lexical closure\\. \n*Required*: No \n*Type*: [CreateColumnsOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-createcolumnsoperation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreateColumnsOperation" }, "FilterOperation": { - "$ref": "#/definitions/AWS::QuickSight::DataSet.FilterOperation" + "$ref": "#/definitions/AWS::QuickSight::DataSet.FilterOperation", + "markdownDescription": "An operation that filters rows based on some condition\\. \n*Required*: No \n*Type*: [FilterOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-filteroperation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterOperation" }, "ProjectOperation": { - "$ref": "#/definitions/AWS::QuickSight::DataSet.ProjectOperation" + "$ref": "#/definitions/AWS::QuickSight::DataSet.ProjectOperation", + "markdownDescription": "An operation that projects columns\\. Operations that come after a projection can only refer to projected columns\\. \n*Required*: No \n*Type*: [ProjectOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-projectoperation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProjectOperation" }, "RenameColumnOperation": { - "$ref": "#/definitions/AWS::QuickSight::DataSet.RenameColumnOperation" + "$ref": "#/definitions/AWS::QuickSight::DataSet.RenameColumnOperation", + "markdownDescription": "An operation that renames a column\\. \n*Required*: No \n*Type*: [RenameColumnOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-renamecolumnoperation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RenameColumnOperation" }, "TagColumnOperation": { - "$ref": "#/definitions/AWS::QuickSight::DataSet.TagColumnOperation" + "$ref": "#/definitions/AWS::QuickSight::DataSet.TagColumnOperation", + "markdownDescription": "An operation that tags a column with additional information\\. \n*Required*: No \n*Type*: [TagColumnOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-tagcolumnoperation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagColumnOperation" } }, "type": "object" @@ -121078,18 +148464,28 @@ "additionalProperties": false, "properties": { "ContainsHeader": { + "markdownDescription": "Whether the file has a header row, or the files each have a header row\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainsHeader", "type": "boolean" }, "Delimiter": { + "markdownDescription": "The delimiter between values in the file\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Delimiter", "type": "string" }, "Format": { + "markdownDescription": "File format\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CLF | CSV | ELF | JSON | TSV | XLSX` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", "type": "string" }, "StartFromRow": { + "markdownDescription": "A row number to start reading data from\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartFromRow", "type": "number" }, "TextQualifier": { + "markdownDescription": "Text qualifier\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DOUBLE_QUOTE | SINGLE_QUOTE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextQualifier", "type": "string" } }, @@ -121134,46 +148530,70 @@ "items": { "$ref": "#/definitions/AWS::QuickSight::DataSource.DataSourceParameters" }, + "markdownDescription": "A set of alternate data source parameters that you want to share for the credentials stored with this data source\\. The credentials are applied in tandem with the data source parameters when you copy a data source by using a create or update request\\. The API operation compares the `DataSourceParameters` structure that's in the request with the structures in the `AlternateDataSourceParameters` allow list\\. If the structures are an exact match, the request is allowed to use the credentials from this existing data source\\. If the `AlternateDataSourceParameters` list is null, the `Credentials` originally used with this `DataSourceParameters` are automatically allowed\\. \n*Required*: No \n*Type*: List of [DataSourceParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-datasourceparameters.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlternateDataSourceParameters", "type": "array" }, "AwsAccountId": { + "markdownDescription": "The AWS account ID\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AwsAccountId", "type": "string" }, "Credentials": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.DataSourceCredentials" + "$ref": "#/definitions/AWS::QuickSight::DataSource.DataSourceCredentials", + "markdownDescription": "The credentials Amazon QuickSight that uses to connect to your underlying source\\. Currently, only credentials based on user name and password are supported\\. \n*Required*: No \n*Type*: [DataSourceCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-datasourcecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Credentials" }, "DataSourceId": { + "markdownDescription": "An ID for the data source\\. This ID is unique per AWS Region for each AWS account\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataSourceId", "type": "string" }, "DataSourceParameters": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.DataSourceParameters" + "$ref": "#/definitions/AWS::QuickSight::DataSource.DataSourceParameters", + "markdownDescription": "The parameters that Amazon QuickSight uses to connect to your underlying source\\. \n*Required*: No \n*Type*: [DataSourceParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-datasourceparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSourceParameters" }, "ErrorInfo": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.DataSourceErrorInfo" + "$ref": "#/definitions/AWS::QuickSight::DataSource.DataSourceErrorInfo", + "markdownDescription": "Error information from the last update or the creation of the data source\\. \n*Required*: No \n*Type*: [DataSourceErrorInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-datasourceerrorinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorInfo" }, "Name": { + "markdownDescription": "A display name for the data source\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Permissions": { "items": { "$ref": "#/definitions/AWS::QuickSight::DataSource.ResourcePermission" }, + "markdownDescription": "A list of resource permissions on the data source\\. \n*Required*: No \n*Type*: List of [ResourcePermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-resourcepermission.html) \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Permissions", "type": "array" }, "SslProperties": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.SslProperties" + "$ref": "#/definitions/AWS::QuickSight::DataSource.SslProperties", + "markdownDescription": "Secure Socket Layer \\(SSL\\) properties that apply when Amazon QuickSight connects to your underlying source\\. \n*Required*: No \n*Type*: [SslProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-sslproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SslProperties" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Contains a map of the key\\-value pairs for the resource tag or tags assigned to the data source\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Type": { + "markdownDescription": "The type of the data source\\. To return a list of all data sources, use `ListDataSources`\\. \nUse `AMAZON_ELASTICSEARCH` for Amazon OpenSearch Service\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADOBE_ANALYTICS | AMAZON_ELASTICSEARCH | AMAZON_OPENSEARCH | ATHENA | AURORA | AURORA_POSTGRESQL | AWS_IOT_ANALYTICS | EXASOL | GITHUB | JIRA | MARIADB | MYSQL | ORACLE | POSTGRESQL | PRESTO | REDSHIFT | S3 | SALESFORCE | SERVICENOW | SNOWFLAKE | SPARK | SQLSERVER | TERADATA | TIMESTREAM | TWITTER` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" }, "VpcConnectionProperties": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.VpcConnectionProperties" + "$ref": "#/definitions/AWS::QuickSight::DataSource.VpcConnectionProperties", + "markdownDescription": "Use this parameter only when you want Amazon QuickSight to use a VPC connection when connecting to your underlying source\\. \n*Required*: No \n*Type*: [VpcConnectionProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-vpcconnectionproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcConnectionProperties" } }, "type": "object" @@ -121202,6 +148622,8 @@ "additionalProperties": false, "properties": { "Domain": { + "markdownDescription": "The OpenSearch domain\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Domain", "type": "string" } }, @@ -121214,6 +148636,8 @@ "additionalProperties": false, "properties": { "Domain": { + "markdownDescription": "The OpenSearch domain\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Domain", "type": "string" } }, @@ -121226,6 +148650,8 @@ "additionalProperties": false, "properties": { "WorkGroup": { + "markdownDescription": "The workgroup that Amazon Athena uses\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WorkGroup", "type": "string" } }, @@ -121235,12 +148661,18 @@ "additionalProperties": false, "properties": { "Database": { + "markdownDescription": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", "type": "string" }, "Host": { + "markdownDescription": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", "type": "string" }, "Port": { + "markdownDescription": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" } }, @@ -121255,12 +148687,18 @@ "additionalProperties": false, "properties": { "Database": { + "markdownDescription": "The Amazon Aurora PostgreSQL database to connect to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", "type": "string" }, "Host": { + "markdownDescription": "The Amazon Aurora PostgreSQL\\-Compatible host to connect to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", "type": "string" }, "Port": { + "markdownDescription": "The port that Amazon Aurora PostgreSQL is listening on\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" } }, @@ -121278,12 +148716,18 @@ "items": { "$ref": "#/definitions/AWS::QuickSight::DataSource.DataSourceParameters" }, + "markdownDescription": "A set of alternate data source parameters that you want to share for these credentials\\. The credentials are applied in tandem with the data source parameters when you copy a data source by using a create or update request\\. The API operation compares the `DataSourceParameters` structure that's in the request with the structures in the `AlternateDataSourceParameters` allow list\\. If the structures are an exact match, the request is allowed to use the new data source with the existing credentials\\. If the `AlternateDataSourceParameters` list is null, the `DataSourceParameters` originally used with these `Credentials` is automatically allowed\\. \n*Required*: No \n*Type*: List of [DataSourceParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-datasourceparameters.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlternateDataSourceParameters", "type": "array" }, "Password": { + "markdownDescription": "Password\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", "type": "string" }, "Username": { + "markdownDescription": "User name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", "type": "string" } }, @@ -121297,10 +148741,14 @@ "additionalProperties": false, "properties": { "CopySourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of a data source that has the credential pair that you want to use\\. When `CopySourceArn` is not null, the credential pair from the data source in the ARN is used as the credentials for the `DataSourceCredentials` structure\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:[-a-z0-9]*:quicksight:[-a-z0-9]*:[0-9]{12}:datasource/.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CopySourceArn", "type": "string" }, "CredentialPair": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.CredentialPair" + "$ref": "#/definitions/AWS::QuickSight::DataSource.CredentialPair", + "markdownDescription": "Credential pair\\. For more information, see ` [CredentialPair](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_CredentialPair.html) `\\. \n*Required*: No \n*Type*: [CredentialPair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-credentialpair.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CredentialPair" }, "SecretArn": { "type": "string" @@ -121312,9 +148760,13 @@ "additionalProperties": false, "properties": { "Message": { + "markdownDescription": "Error message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Message", "type": "string" }, "Type": { + "markdownDescription": "Error type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ACCESS_DENIED | CONFLICT | COPY_SOURCE_NOT_FOUND | ENGINE_VERSION_NOT_SUPPORTED | GENERIC_SQL_FAILURE | TIMEOUT | UNKNOWN | UNKNOWN_HOST` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -121324,58 +148776,92 @@ "additionalProperties": false, "properties": { "AmazonElasticsearchParameters": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.AmazonElasticsearchParameters" + "$ref": "#/definitions/AWS::QuickSight::DataSource.AmazonElasticsearchParameters", + "markdownDescription": "The parameters for OpenSearch\\. \n*Required*: No \n*Type*: [AmazonElasticsearchParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-amazonelasticsearchparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AmazonElasticsearchParameters" }, "AmazonOpenSearchParameters": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.AmazonOpenSearchParameters" + "$ref": "#/definitions/AWS::QuickSight::DataSource.AmazonOpenSearchParameters", + "markdownDescription": "The parameters for OpenSearch\\. \n*Required*: No \n*Type*: [AmazonOpenSearchParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-amazonopensearchparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AmazonOpenSearchParameters" }, "AthenaParameters": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.AthenaParameters" + "$ref": "#/definitions/AWS::QuickSight::DataSource.AthenaParameters", + "markdownDescription": "The parameters for Amazon Athena\\. \n*Required*: No \n*Type*: [AthenaParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-athenaparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AthenaParameters" }, "AuroraParameters": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.AuroraParameters" + "$ref": "#/definitions/AWS::QuickSight::DataSource.AuroraParameters", + "markdownDescription": "The parameters for Amazon Aurora MySQL\\. \n*Required*: No \n*Type*: [AuroraParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-auroraparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuroraParameters" }, "AuroraPostgreSqlParameters": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.AuroraPostgreSqlParameters" + "$ref": "#/definitions/AWS::QuickSight::DataSource.AuroraPostgreSqlParameters", + "markdownDescription": "The parameters for Amazon Aurora\\. \n*Required*: No \n*Type*: [AuroraPostgreSqlParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-aurorapostgresqlparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuroraPostgreSqlParameters" }, "DatabricksParameters": { "$ref": "#/definitions/AWS::QuickSight::DataSource.DatabricksParameters" }, "MariaDbParameters": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.MariaDbParameters" + "$ref": "#/definitions/AWS::QuickSight::DataSource.MariaDbParameters", + "markdownDescription": "The parameters for MariaDB\\. \n*Required*: No \n*Type*: [MariaDbParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-mariadbparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MariaDbParameters" }, "MySqlParameters": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.MySqlParameters" + "$ref": "#/definitions/AWS::QuickSight::DataSource.MySqlParameters", + "markdownDescription": "The parameters for MySQL\\. \n*Required*: No \n*Type*: [MySqlParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-mysqlparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MySqlParameters" }, "OracleParameters": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.OracleParameters" + "$ref": "#/definitions/AWS::QuickSight::DataSource.OracleParameters", + "markdownDescription": "Oracle parameters\\. \n*Required*: No \n*Type*: [OracleParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-oracleparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OracleParameters" }, "PostgreSqlParameters": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.PostgreSqlParameters" + "$ref": "#/definitions/AWS::QuickSight::DataSource.PostgreSqlParameters", + "markdownDescription": "The parameters for PostgreSQL\\. \n*Required*: No \n*Type*: [PostgreSqlParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-postgresqlparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PostgreSqlParameters" }, "PrestoParameters": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.PrestoParameters" + "$ref": "#/definitions/AWS::QuickSight::DataSource.PrestoParameters", + "markdownDescription": "The parameters for Presto\\. \n*Required*: No \n*Type*: [PrestoParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-prestoparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrestoParameters" }, "RdsParameters": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.RdsParameters" + "$ref": "#/definitions/AWS::QuickSight::DataSource.RdsParameters", + "markdownDescription": "The parameters for Amazon RDS\\. \n*Required*: No \n*Type*: [RdsParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-rdsparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RdsParameters" }, "RedshiftParameters": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.RedshiftParameters" + "$ref": "#/definitions/AWS::QuickSight::DataSource.RedshiftParameters", + "markdownDescription": "The parameters for Amazon Redshift\\. \n*Required*: No \n*Type*: [RedshiftParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-redshiftparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedshiftParameters" }, "S3Parameters": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.S3Parameters" + "$ref": "#/definitions/AWS::QuickSight::DataSource.S3Parameters", + "markdownDescription": "The parameters for S3\\. \n*Required*: No \n*Type*: [S3Parameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-s3parameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Parameters" }, "SnowflakeParameters": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.SnowflakeParameters" + "$ref": "#/definitions/AWS::QuickSight::DataSource.SnowflakeParameters", + "markdownDescription": "The parameters for Snowflake\\. \n*Required*: No \n*Type*: [SnowflakeParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-snowflakeparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnowflakeParameters" }, "SparkParameters": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.SparkParameters" + "$ref": "#/definitions/AWS::QuickSight::DataSource.SparkParameters", + "markdownDescription": "The parameters for Spark\\. \n*Required*: No \n*Type*: [SparkParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-sparkparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SparkParameters" }, "SqlServerParameters": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.SqlServerParameters" + "$ref": "#/definitions/AWS::QuickSight::DataSource.SqlServerParameters", + "markdownDescription": "The parameters for SQL Server\\. \n*Required*: No \n*Type*: [SqlServerParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-sqlserverparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SqlServerParameters" }, "TeradataParameters": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.TeradataParameters" + "$ref": "#/definitions/AWS::QuickSight::DataSource.TeradataParameters", + "markdownDescription": "The parameters for Teradata\\. \n*Required*: No \n*Type*: [TeradataParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-teradataparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TeradataParameters" } }, "type": "object" @@ -121404,9 +148890,13 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "Amazon S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", "type": "string" }, "Key": { + "markdownDescription": "Amazon S3 key that identifies an object\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" } }, @@ -121420,12 +148910,18 @@ "additionalProperties": false, "properties": { "Database": { + "markdownDescription": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", "type": "string" }, "Host": { + "markdownDescription": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", "type": "string" }, "Port": { + "markdownDescription": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" } }, @@ -121440,12 +148936,18 @@ "additionalProperties": false, "properties": { "Database": { + "markdownDescription": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", "type": "string" }, "Host": { + "markdownDescription": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", "type": "string" }, "Port": { + "markdownDescription": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" } }, @@ -121460,12 +148962,18 @@ "additionalProperties": false, "properties": { "Database": { + "markdownDescription": "Database\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", "type": "string" }, "Host": { + "markdownDescription": "Host\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", "type": "string" }, "Port": { + "markdownDescription": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" } }, @@ -121480,12 +148988,18 @@ "additionalProperties": false, "properties": { "Database": { + "markdownDescription": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", "type": "string" }, "Host": { + "markdownDescription": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", "type": "string" }, "Port": { + "markdownDescription": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" } }, @@ -121500,12 +149014,18 @@ "additionalProperties": false, "properties": { "Catalog": { + "markdownDescription": "Catalog\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Catalog", "type": "string" }, "Host": { + "markdownDescription": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", "type": "string" }, "Port": { + "markdownDescription": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" } }, @@ -121520,9 +149040,13 @@ "additionalProperties": false, "properties": { "Database": { + "markdownDescription": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", "type": "string" }, "InstanceId": { + "markdownDescription": "Instance ID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceId", "type": "string" } }, @@ -121536,15 +149060,23 @@ "additionalProperties": false, "properties": { "ClusterId": { + "markdownDescription": "Cluster ID\\. This field can be blank if the `Host` and `Port` are provided\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterId", "type": "string" }, "Database": { + "markdownDescription": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", "type": "string" }, "Host": { + "markdownDescription": "Host\\. This field can be blank if `ClusterId` is provided\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", "type": "string" }, "Port": { + "markdownDescription": "Port\\. This field can be blank if the `ClusterId` is provided\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" } }, @@ -121560,9 +149092,13 @@ "items": { "type": "string" }, + "markdownDescription": "The IAM action to grant or revoke permissions on\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", "type": "array" }, "Principal": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the principal\\. This can be one of the following: \n+ The ARN of an Amazon QuickSight user or group associated with a data source or dataset\\. \\(This is common\\.\\)\n+ The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme\\. \\(This is common\\.\\)\n+ The ARN of an AWS account root: This is an IAM ARN rather than a Amazon QuickSight ARN\\. Use this option only to share resources \\(templates\\) across AWS accounts\\. \\(This is less common\\.\\)\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Principal", "type": "string" } }, @@ -121576,7 +149112,9 @@ "additionalProperties": false, "properties": { "ManifestFileLocation": { - "$ref": "#/definitions/AWS::QuickSight::DataSource.ManifestFileLocation" + "$ref": "#/definitions/AWS::QuickSight::DataSource.ManifestFileLocation", + "markdownDescription": "Location of the Amazon S3 manifest file\\. This is NULL if the manifest file was uploaded into Amazon QuickSight\\. \n*Required*: Yes \n*Type*: [ManifestFileLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-manifestfilelocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestFileLocation" } }, "required": [ @@ -121588,12 +149126,18 @@ "additionalProperties": false, "properties": { "Database": { + "markdownDescription": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", "type": "string" }, "Host": { + "markdownDescription": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", "type": "string" }, "Warehouse": { + "markdownDescription": "Warehouse\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Warehouse", "type": "string" } }, @@ -121608,9 +149152,13 @@ "additionalProperties": false, "properties": { "Host": { + "markdownDescription": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", "type": "string" }, "Port": { + "markdownDescription": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" } }, @@ -121624,12 +149172,18 @@ "additionalProperties": false, "properties": { "Database": { + "markdownDescription": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", "type": "string" }, "Host": { + "markdownDescription": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", "type": "string" }, "Port": { + "markdownDescription": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" } }, @@ -121644,6 +149198,8 @@ "additionalProperties": false, "properties": { "DisableSsl": { + "markdownDescription": "A Boolean option to control whether SSL should be disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableSsl", "type": "boolean" } }, @@ -121653,12 +149209,18 @@ "additionalProperties": false, "properties": { "Database": { + "markdownDescription": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", "type": "string" }, "Host": { + "markdownDescription": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", "type": "string" }, "Port": { + "markdownDescription": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" } }, @@ -121673,6 +149235,8 @@ "additionalProperties": false, "properties": { "VpcConnectionArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the VPC connection\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcConnectionArn", "type": "string" } }, @@ -121717,30 +149281,44 @@ "additionalProperties": false, "properties": { "AwsAccountId": { + "markdownDescription": "The ID for the AWS account that the group is in\\. You use the ID for the AWS account that contains your Amazon QuickSight account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AwsAccountId", "type": "string" }, "Name": { + "markdownDescription": "A display name for the template\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Permissions": { "items": { "$ref": "#/definitions/AWS::QuickSight::Template.ResourcePermission" }, + "markdownDescription": "A list of resource permissions to be set on the template\\. \n*Required*: No \n*Type*: List of [ResourcePermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-resourcepermission.html) \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Permissions", "type": "array" }, "SourceEntity": { - "$ref": "#/definitions/AWS::QuickSight::Template.TemplateSourceEntity" + "$ref": "#/definitions/AWS::QuickSight::Template.TemplateSourceEntity", + "markdownDescription": "The entity that you are using as a source when you create the template\\. In `SourceEntity`, you specify the type of object you're using as source: `SourceTemplate` for a template or `SourceAnalysis` for an analysis\\. Both of these require an Amazon Resource Name \\(ARN\\)\\. For `SourceTemplate`, specify the ARN of the source template\\. For `SourceAnalysis`, specify the ARN of the source analysis\\. The `SourceTemplate` ARN can contain any AWS account and any Amazon QuickSight\\-supported AWS Region\\. \nUse the `DataSetReferences` entity within `SourceTemplate` or `SourceAnalysis` to list the replacement datasets for the placeholders listed in the original\\. The schema in each dataset must match its placeholder\\. \n*Required*: Yes \n*Type*: [TemplateSourceEntity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-templatesourceentity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceEntity" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Contains a map of the key\\-value pairs for the resource tag or tags assigned to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TemplateId": { + "markdownDescription": "An ID for the template that you want to create\\. This template is unique per AWS Region; in each AWS account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `[\\w\\-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TemplateId", "type": "string" }, "VersionDescription": { + "markdownDescription": "A description of the current template version being created\\. This API operation creates the first version of the template\\. Every time `UpdateTemplate` is called, a new version is created\\. Each version of the template maintains a description of the version in the `VersionDescription` field\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VersionDescription", "type": "string" } }, @@ -121833,9 +149411,13 @@ "additionalProperties": false, "properties": { "DataSetArn": { + "markdownDescription": "Dataset Amazon Resource Name \\(ARN\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSetArn", "type": "string" }, "DataSetPlaceholder": { + "markdownDescription": "Dataset placeholder\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSetPlaceholder", "type": "string" } }, @@ -121864,9 +149446,13 @@ "items": { "type": "string" }, + "markdownDescription": "The IAM action to grant or revoke permissions on\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", "type": "array" }, "Principal": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the principal\\. This can be one of the following: \n+ The ARN of an Amazon QuickSight user or group associated with a data source or dataset\\. \\(This is common\\.\\)\n+ The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme\\. \\(This is common\\.\\)\n+ The ARN of an AWS account root: This is an IAM ARN rather than a Amazon QuickSight ARN\\. Use this option only to share resources \\(templates\\) across AWS accounts\\. \\(This is less common\\.\\)\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Principal", "type": "string" } }, @@ -121904,12 +149490,16 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "DataSetReferences": { "items": { "$ref": "#/definitions/AWS::QuickSight::Template.DataSetReference" }, + "markdownDescription": "A structure containing information about the dataset references used as placeholders in the template\\. \n*Required*: Yes \n*Type*: List of [DataSetReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-datasetreference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSetReferences", "type": "array" } }, @@ -121923,10 +149513,14 @@ "additionalProperties": false, "properties": { "SourceAnalysis": { - "$ref": "#/definitions/AWS::QuickSight::Template.TemplateSourceAnalysis" + "$ref": "#/definitions/AWS::QuickSight::Template.TemplateSourceAnalysis", + "markdownDescription": "The source analysis, if it is based on an analysis\\. \n*Required*: No \n*Type*: [TemplateSourceAnalysis](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-templatesourceanalysis.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceAnalysis" }, "SourceTemplate": { - "$ref": "#/definitions/AWS::QuickSight::Template.TemplateSourceTemplate" + "$ref": "#/definitions/AWS::QuickSight::Template.TemplateSourceTemplate", + "markdownDescription": "The source template, if it is based on an template\\. \n*Required*: No \n*Type*: [TemplateSourceTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-templatesourcetemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceTemplate" } }, "type": "object" @@ -121935,6 +149529,8 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" } }, @@ -122021,33 +149617,49 @@ "additionalProperties": false, "properties": { "AwsAccountId": { + "markdownDescription": "The ID of the AWS account where you want to store the new theme\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AwsAccountId", "type": "string" }, "BaseThemeId": { + "markdownDescription": "The ID of the theme that a custom theme will inherit from\\. All themes inherit from one of the starting themes defined by Amazon QuickSight\\. For a list of the starting themes, use `ListThemes` or choose **Themes** from within an analysis\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `[\\w\\-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaseThemeId", "type": "string" }, "Configuration": { - "$ref": "#/definitions/AWS::QuickSight::Theme.ThemeConfiguration" + "$ref": "#/definitions/AWS::QuickSight::Theme.ThemeConfiguration", + "markdownDescription": "The theme configuration, which contains the theme display properties\\. \n*Required*: No \n*Type*: [ThemeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-themeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configuration" }, "Name": { + "markdownDescription": "A display name for the theme\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Permissions": { "items": { "$ref": "#/definitions/AWS::QuickSight::Theme.ResourcePermission" }, + "markdownDescription": "A valid grouping of resource permissions to apply to the new theme\\. \n*Required*: No \n*Type*: List of [ResourcePermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-resourcepermission.html) \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Permissions", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A map of the key\\-value pairs for the resource tag or tags that you want to add to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "ThemeId": { + "markdownDescription": "An ID for the theme that you want to create\\. The theme ID is unique per AWS Region in each AWS account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `[\\w\\-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ThemeId", "type": "string" }, "VersionDescription": { + "markdownDescription": "A description of the first version of the theme that you're creating\\. Every time `UpdateTheme` is called, a new version is created\\. Each version of the theme has a description of the version in the `VersionDescription` field\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VersionDescription", "type": "string" } }, @@ -122082,6 +149694,8 @@ "additionalProperties": false, "properties": { "Show": { + "markdownDescription": "The option to enable display of borders for visuals\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Show", "type": "boolean" } }, @@ -122094,15 +149708,21 @@ "items": { "type": "string" }, + "markdownDescription": "The hexadecimal codes for the colors\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Colors", "type": "array" }, "EmptyFillColor": { + "markdownDescription": "The hexadecimal code of a color that applies to charts where a lack of data is highlighted\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmptyFillColor", "type": "string" }, "MinMaxGradient": { "items": { "type": "string" }, + "markdownDescription": "The minimum and maximum hexadecimal codes that describe a color gradient\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinMaxGradient", "type": "array" } }, @@ -122112,6 +149732,8 @@ "additionalProperties": false, "properties": { "FontFamily": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FontFamily", "type": "string" } }, @@ -122121,6 +149743,8 @@ "additionalProperties": false, "properties": { "Show": { + "markdownDescription": "This Boolean value controls whether to display a gutter space between sheet tiles\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Show", "type": "boolean" } }, @@ -122130,6 +149754,8 @@ "additionalProperties": false, "properties": { "Show": { + "markdownDescription": "This Boolean value controls whether to display sheet margins\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Show", "type": "boolean" } }, @@ -122142,9 +149768,13 @@ "items": { "type": "string" }, + "markdownDescription": "The IAM action to grant or revoke permissions on\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", "type": "array" }, "Principal": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the principal\\. This can be one of the following: \n+ The ARN of an Amazon QuickSight user or group associated with a data source or dataset\\. \\(This is common\\.\\)\n+ The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme\\. \\(This is common\\.\\)\n+ The ARN of an AWS account root: This is an IAM ARN rather than a Amazon QuickSight ARN\\. Use this option only to share resources \\(templates\\) across AWS accounts\\. \\(This is less common\\.\\)\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Principal", "type": "string" } }, @@ -122158,10 +149788,14 @@ "additionalProperties": false, "properties": { "Tile": { - "$ref": "#/definitions/AWS::QuickSight::Theme.TileStyle" + "$ref": "#/definitions/AWS::QuickSight::Theme.TileStyle", + "markdownDescription": "The display options for tiles\\. \n*Required*: No \n*Type*: [TileStyle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-tilestyle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tile" }, "TileLayout": { - "$ref": "#/definitions/AWS::QuickSight::Theme.TileLayoutStyle" + "$ref": "#/definitions/AWS::QuickSight::Theme.TileLayoutStyle", + "markdownDescription": "The layout options for tiles\\. \n*Required*: No \n*Type*: [TileLayoutStyle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-tilelayoutstyle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TileLayout" } }, "type": "object" @@ -122170,16 +149804,24 @@ "additionalProperties": false, "properties": { "DataColorPalette": { - "$ref": "#/definitions/AWS::QuickSight::Theme.DataColorPalette" + "$ref": "#/definitions/AWS::QuickSight::Theme.DataColorPalette", + "markdownDescription": "Color properties that apply to chart data colors\\. \n*Required*: No \n*Type*: [DataColorPalette](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-datacolorpalette.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataColorPalette" }, "Sheet": { - "$ref": "#/definitions/AWS::QuickSight::Theme.SheetStyle" + "$ref": "#/definitions/AWS::QuickSight::Theme.SheetStyle", + "markdownDescription": "Display options related to sheets\\. \n*Required*: No \n*Type*: [SheetStyle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-sheetstyle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sheet" }, "Typography": { - "$ref": "#/definitions/AWS::QuickSight::Theme.Typography" + "$ref": "#/definitions/AWS::QuickSight::Theme.Typography", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [Typography](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-typography.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Typography" }, "UIColorPalette": { - "$ref": "#/definitions/AWS::QuickSight::Theme.UIColorPalette" + "$ref": "#/definitions/AWS::QuickSight::Theme.UIColorPalette", + "markdownDescription": "Color properties that apply to the UI and to charts, excluding the colors that apply to data\\. \n*Required*: No \n*Type*: [UIColorPalette](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-uicolorpalette.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UIColorPalette" } }, "type": "object" @@ -122233,10 +149875,14 @@ "additionalProperties": false, "properties": { "Gutter": { - "$ref": "#/definitions/AWS::QuickSight::Theme.GutterStyle" + "$ref": "#/definitions/AWS::QuickSight::Theme.GutterStyle", + "markdownDescription": "The gutter settings that apply between tiles\\. \n*Required*: No \n*Type*: [GutterStyle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-gutterstyle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Gutter" }, "Margin": { - "$ref": "#/definitions/AWS::QuickSight::Theme.MarginStyle" + "$ref": "#/definitions/AWS::QuickSight::Theme.MarginStyle", + "markdownDescription": "The margin settings that apply around the outside edge of sheets\\. \n*Required*: No \n*Type*: [MarginStyle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-marginstyle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Margin" } }, "type": "object" @@ -122245,7 +149891,9 @@ "additionalProperties": false, "properties": { "Border": { - "$ref": "#/definitions/AWS::QuickSight::Theme.BorderStyle" + "$ref": "#/definitions/AWS::QuickSight::Theme.BorderStyle", + "markdownDescription": "The border around a tile\\. \n*Required*: No \n*Type*: [BorderStyle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-borderstyle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Border" } }, "type": "object" @@ -122257,6 +149905,8 @@ "items": { "$ref": "#/definitions/AWS::QuickSight::Theme.Font" }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of [Font](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-font.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FontFamilies", "type": "array" } }, @@ -122266,51 +149916,83 @@ "additionalProperties": false, "properties": { "Accent": { + "markdownDescription": "This color is that applies to selected states and buttons\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Accent", "type": "string" }, "AccentForeground": { + "markdownDescription": "The foreground color that applies to any text or other elements that appear over the accent color\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccentForeground", "type": "string" }, "Danger": { + "markdownDescription": "The color that applies to error messages\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Danger", "type": "string" }, "DangerForeground": { + "markdownDescription": "The foreground color that applies to any text or other elements that appear over the error color\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DangerForeground", "type": "string" }, "Dimension": { + "markdownDescription": "The color that applies to the names of fields that are identified as dimensions\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimension", "type": "string" }, "DimensionForeground": { + "markdownDescription": "The foreground color that applies to any text or other elements that appear over the dimension color\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DimensionForeground", "type": "string" }, "Measure": { + "markdownDescription": "The color that applies to the names of fields that are identified as measures\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Measure", "type": "string" }, "MeasureForeground": { + "markdownDescription": "The foreground color that applies to any text or other elements that appear over the measure color\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MeasureForeground", "type": "string" }, "PrimaryBackground": { + "markdownDescription": "The background color that applies to visuals and other high emphasis UI\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrimaryBackground", "type": "string" }, "PrimaryForeground": { + "markdownDescription": "The color of text and other foreground elements that appear over the primary background regions, such as grid lines, borders, table banding, icons, and so on\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrimaryForeground", "type": "string" }, "SecondaryBackground": { + "markdownDescription": "The background color that applies to the sheet background and sheet controls\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryBackground", "type": "string" }, "SecondaryForeground": { + "markdownDescription": "The foreground color that applies to any sheet title, sheet control text, or UI that appears over the secondary background\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryForeground", "type": "string" }, "Success": { + "markdownDescription": "The color that applies to success messages, for example the check mark for a successful download\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Success", "type": "string" }, "SuccessForeground": { + "markdownDescription": "The foreground color that applies to any text or other elements that appear over the success color\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuccessForeground", "type": "string" }, "Warning": { + "markdownDescription": "This color that applies to warning and informational messages\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Warning", "type": "string" }, "WarningForeground": { + "markdownDescription": "The foreground color that applies to any text or other elements that appear over the warning color\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WarningForeground", "type": "string" } }, @@ -122352,33 +150034,45 @@ "additionalProperties": false, "properties": { "AllowExternalPrincipals": { + "markdownDescription": "Specifies whether principals outside your organization in AWS Organizations can be associated with a resource share\\. A value of `true` lets you share with individual AWS accounts that are *not* in your organization\\. A value of `false` only has meaning if your account is a member of an AWS Organization\\. The default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowExternalPrincipals", "type": "boolean" }, "Name": { + "markdownDescription": "Specifies the name of the resource share\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "PermissionArns": { "items": { "type": "string" }, + "markdownDescription": "Specifies the [Amazon Resource Names \\(ARNs\\)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the AWS RAM permission to associate with the resource share\\. If you do not specify an ARN for the permission, AWS RAM automatically attaches the default version of the permission for each resource type\\. You can associate only one permission with each resource type included in the resource share\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PermissionArns", "type": "array" }, "Principals": { "items": { "type": "string" }, + "markdownDescription": "Specifies a list of one or more principals to associate with the resource share\\. \nYou can include the following values: \n+ An AWS account ID, for example: `123456789012` \n+ An [Amazon Resoure Name \\(ARN\\)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of an organization in AWS Organizations, for example: `arn:aws:organizations::123456789012:organization/o-exampleorgid` \n+ An ARN of an organizational unit \\(OU\\) in AWS Organizations, for example: `arn:aws:organizations::123456789012:ou/o-exampleorgid/ou-examplerootid-exampleouid123` \n+ An ARN of an IAM role, for example: `arn:aws:iam::123456789012:role/rolename` \n+ An ARN of an IAM user, for example: `arn:aws:iam::123456789012user/username` \nNot all resource types can be shared with IAM roles and users\\. For more information, see [Sharing with IAM roles and users](https://docs.aws.amazon.com/ram/latest/userguide/permissions.html#permissions-rbp-supported-resource-types) in the * AWS Resource Access Manager User Guide*\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Principals", "type": "array" }, "ResourceArns": { "items": { "type": "string" }, + "markdownDescription": "Specifies a list of one or more ARNs of the resources to associate with the resource share\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceArns", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Specifies one or more tags to attach to the resource share itself\\. It doesn't attach the tags to the resources associated with the resource share\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -122450,6 +150144,8 @@ "items": { "$ref": "#/definitions/AWS::RDS::DBCluster.DBClusterRole" }, + "markdownDescription": "Provides a list of the AWS Identity and Access Management \\(IAM\\) roles that are associated with the DB cluster\\. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon Web Services on your behalf\\. \n*Required*: No \n*Type*: List of [DBClusterRole](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-dbclusterrole.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociatedRoles", "type": "array" }, "AutoMinorVersionUpgrade": { @@ -122459,39 +150155,57 @@ "items": { "type": "string" }, + "markdownDescription": "A list of Availability Zones \\(AZs\\) where instances in the DB cluster can be created\\. For information on AWS Regions and Availability Zones, see [Choosing the Regions and Availability Zones](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.RegionsAndAvailabilityZones.html) in the *Amazon Aurora User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZones", "type": "array" }, "BacktrackWindow": { + "markdownDescription": "The target backtrack window, in seconds\\. To disable backtracking, set this value to 0\\. \nCurrently, Backtrack is only supported for Aurora MySQL DB clusters\\.\nDefault: 0 \nConstraints: \n+ If specified, this value must be set to a number from 0 to 259,200 \\(72 hours\\)\\.\n*Required*: No \n*Type*: Long \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BacktrackWindow", "type": "number" }, "BackupRetentionPeriod": { + "markdownDescription": "The number of days for which automated backups are retained\\. \nDefault: 1 \nConstraints: \n+ Must be a value from 1 to 35\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackupRetentionPeriod", "type": "number" }, "CopyTagsToSnapshot": { + "markdownDescription": "A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster\\. The default is not to copy them\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CopyTagsToSnapshot", "type": "boolean" }, "DBClusterIdentifier": { + "markdownDescription": "The DB cluster identifier\\. This parameter is stored as a lowercase string\\. \nConstraints: \n+ Must contain from 1 to 63 letters, numbers, or hyphens\\.\n+ First character must be a letter\\.\n+ Can't end with a hyphen or contain two consecutive hyphens\\.\nExample: `my-cluster1` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBClusterIdentifier", "type": "string" }, "DBClusterInstanceClass": { "type": "string" }, "DBClusterParameterGroupName": { + "markdownDescription": "The name of the DB cluster parameter group to associate with this DB cluster\\. \nIf you apply a parameter group to an existing DB cluster, then its DB instances might need to reboot\\. This can result in an outage while the DB instances are rebooting\\. \nIf you apply a change to parameter group associated with a stopped DB cluster, then the update stack waits until the DB cluster is started\\.\nTo list all of the available DB cluster parameter group names, use the following command: \n`aws rds describe-db-cluster-parameter-groups --query \"DBClusterParameterGroups[].DBClusterParameterGroupName\" --output text` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBClusterParameterGroupName", "type": "string" }, "DBInstanceParameterGroupName": { "type": "string" }, "DBSubnetGroupName": { + "markdownDescription": "A DB subnet group that you want to associate with this DB cluster\\. \nIf you are restoring a DB cluster to a point in time with `RestoreType` set to `copy-on-write`, and don't specify a DB subnet group name, then the DB cluster is restored with a default DB subnet group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBSubnetGroupName", "type": "string" }, "DBSystemId": { "type": "string" }, "DatabaseName": { + "markdownDescription": "The name of your database\\. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster\\. For naming constraints, see [Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon Aurora User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatabaseName", "type": "string" }, "DeletionProtection": { + "markdownDescription": "A value that indicates whether the DB cluster has deletion protection enabled\\. The database can't be deleted when deletion protection is enabled\\. By default, deletion protection is disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeletionProtection", "type": "boolean" }, "Domain": { @@ -122504,42 +150218,62 @@ "items": { "type": "string" }, + "markdownDescription": "The list of log types that need to be enabled for exporting to CloudWatch Logs\\. The values in the list depend on the DB engine being used\\. For more information, see [ Publishing Database Logs to Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) in the *Amazon Aurora User Guide*\\. \n **Aurora MySQL** \nValid values: `audit`, `error`, `general`, `slowquery` \n **Aurora PostgreSQL** \nValid values: `postgresql` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableCloudwatchLogsExports", "type": "array" }, "EnableHttpEndpoint": { + "markdownDescription": "A value that indicates whether to enable the HTTP endpoint for an Aurora Serverless DB cluster\\. By default, the HTTP endpoint is disabled\\. \nWhen enabled, the HTTP endpoint provides a connectionless web service API for running SQL queries on the Aurora Serverless DB cluster\\. You can also query your database from inside the RDS console with the query editor\\. \nFor more information, see [Using the Data API for Aurora Serverless](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon Aurora User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableHttpEndpoint", "type": "boolean" }, "EnableIAMDatabaseAuthentication": { + "markdownDescription": "A value that indicates whether to enable mapping of AWS Identity and Access Management \\(IAM\\) accounts to database accounts\\. By default, mapping is disabled\\. \nFor more information, see [ IAM Database Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html) in the *Amazon Aurora User Guide\\.* \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableIAMDatabaseAuthentication", "type": "boolean" }, "Engine": { + "markdownDescription": "The name of the database engine to be used for this DB cluster\\. \nValid Values: `aurora` \\(for MySQL 5\\.6\\-compatible Aurora\\), `aurora-mysql` \\(for MySQL 5\\.7\\-compatible Aurora\\), and `aurora-postgresql` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Engine", "type": "string" }, "EngineMode": { + "markdownDescription": "The DB engine mode of the DB cluster, either `provisioned`, `serverless`, `parallelquery`, `global`, or `multimaster`\\. \nThe `parallelquery` engine mode isn't required for Aurora MySQL version 1\\.23 and higher 1\\.x versions, and version 2\\.09 and higher 2\\.x versions\\. \nThe `global` engine mode isn't required for Aurora MySQL version 1\\.22 and higher 1\\.x versions, and `global` engine mode isn't required for any 2\\.x versions\\. \nThe `multimaster` engine mode only applies for DB clusters created with Aurora MySQL version 5\\.6\\.10a\\. \nFor Aurora PostgreSQL, the `global` engine mode isn't required, and both the `parallelquery` and the `multimaster` engine modes currently aren't supported\\. \nLimitations and requirements apply to some DB engine modes\\. For more information, see the following sections in the *Amazon Aurora User Guide*: \n+ [ Limitations of Aurora Serverless](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.limitations) \n+ [ Limitations of Parallel Query](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-mysql-parallel-query.html#aurora-mysql-parallel-query-limitations) \n+ [ Limitations of Aurora Global Databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database.limitations) \n+ [ Limitations of Multi\\-Master Clusters](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-multi-master.html#aurora-multi-master-limitations) \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineMode", "type": "string" }, "EngineVersion": { + "markdownDescription": "The version number of the database engine to use\\. \nTo list all of the available engine versions for `aurora` \\(for MySQL 5\\.6\\-compatible Aurora\\), use the following command: \n`aws rds describe-db-engine-versions --engine aurora --query \"DBEngineVersions[].EngineVersion\"` \nTo list all of the available engine versions for `aurora-mysql` \\(for MySQL 5\\.7\\-compatible Aurora\\), use the following command: \n`aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"` \nTo list all of the available engine versions for `aurora-postgresql`, use the following command: \n`aws rds describe-db-engine-versions --engine aurora-postgresql --query \"DBEngineVersions[].EngineVersion\"` \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "EngineVersion", "type": "string" }, "GlobalClusterIdentifier": { + "markdownDescription": "If you are configuring an Aurora global database cluster and want your Aurora DB cluster to be a secondary member in the global database cluster, specify the global cluster ID of the global database cluster\\. To define the primary database cluster of the global cluster, use the [AWS::RDS::GlobalCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html) resource\\. \n If you aren't configuring a global database cluster, don't specify this property\\. \nTo remove the DB cluster from a global database cluster, specify an empty value for the `GlobalClusterIdentifier` property\\.\nFor information about Aurora global databases, see [ Working with Amazon Aurora Global Databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) in the *Amazon Aurora User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "GlobalClusterIdentifier", "type": "string" }, "Iops": { "type": "number" }, "KmsKeyId": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS KMS key that is used to encrypt the database instances in the DB cluster, such as `arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef`\\. If you enable the `StorageEncrypted` property but don't specify this property, the default KMS key is used\\. If you specify this property, you must set the `StorageEncrypted` property to `true`\\. \nIf you specify the `SnapshotIdentifier` property, the `StorageEncrypted` property value is inherited from the snapshot, and if the DB cluster is encrypted, the specified `KmsKeyId` property is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" }, "ManageMasterUserPassword": { "type": "boolean" }, "MasterUserPassword": { + "markdownDescription": "The master password for the DB instance\\. \nIf you specify the `SourceDBClusterIdentifier` or `SnapshotIdentifier` property, don't specify this property\\. The value is inherited from the source DB instance or snapshot\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MasterUserPassword", "type": "string" }, "MasterUserSecret": { "$ref": "#/definitions/AWS::RDS::DBCluster.MasterUserSecret" }, "MasterUsername": { + "markdownDescription": "The name of the master user for the DB cluster\\. \nIf you specify the `SourceDBClusterIdentifier` or `SnapshotIdentifier` property, don't specify this property\\. The value is inherited from the source DB instance or snapshot\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MasterUsername", "type": "string" }, "MonitoringInterval": { @@ -122561,39 +150295,59 @@ "type": "number" }, "Port": { + "markdownDescription": "The port number on which the DB instances in the DB cluster accept connections\\. \nDefault: \n+ When `EngineMode` is `provisioned`, `3306` \\(for both Aurora MySQL and Aurora PostgreSQL\\)\n+ When `EngineMode` is `serverless`:\n + `3306` when `Engine` is `aurora` or `aurora-mysql`\n + `5432` when `Engine` is `aurora-postgresql`\nThe `No interruption` on update behavior only applies to DB clusters\\. If you are updating a DB instance, see [Port](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-port) for the AWS::RDS::DBInstance resource\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" }, "PreferredBackupWindow": { + "markdownDescription": "The daily time range during which automated backups are created\\. For more information, see [ Backup Window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.Backups.BackupWindow) in the *Amazon Aurora User Guide\\.* \nConstraints: \n+ Must be in the format `hh24:mi-hh24:mi`\\.\n+ Must be in Universal Coordinated Time \\(UTC\\)\\.\n+ Must not conflict with the preferred maintenance window\\.\n+ Must be at least 30 minutes\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredBackupWindow", "type": "string" }, "PreferredMaintenanceWindow": { + "markdownDescription": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time \\(UTC\\)\\. \nFormat: `ddd:hh24:mi-ddd:hh24:mi` \nThe default is a 30\\-minute window selected at random from an 8\\-hour block of time for each AWS Region, occurring on a random day of the week\\. To see the time blocks available, see [ Adjusting the Preferred DB Cluster Maintenance Window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow.Aurora) in the *Amazon Aurora User Guide\\.* \nValid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun\\. \nConstraints: Minimum 30\\-minute window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", "type": "string" }, "PubliclyAccessible": { "type": "boolean" }, "ReplicationSourceIdentifier": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the source DB instance or DB cluster if this DB cluster is created as a read replica\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationSourceIdentifier", "type": "string" }, "RestoreType": { + "markdownDescription": "The type of restore to be performed\\. You can specify one of the following values: \n+ `full-copy` \\- The new DB cluster is restored as a full copy of the source DB cluster\\.\n+ `copy-on-write` \\- The new DB cluster is restored as a clone of the source DB cluster\\.\nConstraints: You can't specify `copy-on-write` if the engine version of the source DB cluster is earlier than 1\\.11\\. \nIf you don't specify a `RestoreType` value, then the new DB cluster is restored as a full copy of the source DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestoreType", "type": "string" }, "ScalingConfiguration": { - "$ref": "#/definitions/AWS::RDS::DBCluster.ScalingConfiguration" + "$ref": "#/definitions/AWS::RDS::DBCluster.ScalingConfiguration", + "markdownDescription": "The `ScalingConfiguration` property type specifies the scaling configuration of an Aurora Serverless DB cluster\\. \n*Required*: No \n*Type*: [ScalingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-scalingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalingConfiguration" }, "ServerlessV2ScalingConfiguration": { "$ref": "#/definitions/AWS::RDS::DBCluster.ServerlessV2ScalingConfiguration" }, "SnapshotIdentifier": { + "markdownDescription": "The identifier for the DB snapshot or DB cluster snapshot to restore from\\. \nYou can use either the name or the Amazon Resource Name \\(ARN\\) to specify a DB cluster snapshot\\. However, you can use only the ARN to specify a DB snapshot\\. \nAfter you restore a DB cluster with a `SnapshotIdentifier` property, you must specify the same `SnapshotIdentifier` property for any future updates to the DB cluster\\. When you specify this property for an update, the DB cluster is not restored from the snapshot again, and the data in the database is not changed\\. However, if you don't specify the `SnapshotIdentifier` property, an empty DB cluster is created, and the original DB cluster is deleted\\. If you specify a property that is different from the previous snapshot restore property, a new DB cluster is restored from the specified `SnapshotIdentifier` property, and the original DB cluster is deleted\\. \nIf you specify the `SnapshotIdentifier` property to restore a DB cluster \\(as opposed to specifying it for DB cluster updates\\), then don't specify the following properties: \n+ `GlobalClusterIdentifier`\n+ `MasterUsername`\n+ `ReplicationSourceIdentifier`\n+ `RestoreType`\n+ `SourceDBClusterIdentifier`\n+ `SourceRegion`\n+ `StorageEncrypted`\n+ `UseLatestRestorableTime`\nConstraints: \n+ Must match the identifier of an existing Snapshot\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotIdentifier", "type": "string" }, "SourceDBClusterIdentifier": { + "markdownDescription": "When restoring a DB cluster to a point in time, the identifier of the source DB cluster from which to restore\\. \nConstraints: \n+ Must match the identifier of an existing DBCluster\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceDBClusterIdentifier", "type": "string" }, "SourceRegion": { + "markdownDescription": "The AWS Region which contains the source DB cluster when replicating a DB cluster\\. For example, `us-east-1`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceRegion", "type": "string" }, "StorageEncrypted": { + "markdownDescription": "Indicates whether the DB cluster is encrypted\\. \nIf you specify the `KmsKeyId` property, then you must enable encryption\\. \nIf you specify the `SnapshotIdentifier` or `SourceDBClusterIdentifier` property, don't specify this property\\. The value is inherited from the snapshot or source DB cluster, and if the DB cluster is encrypted, the specified `KmsKeyId` property is used\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StorageEncrypted", "type": "boolean" }, "StorageType": { @@ -122603,15 +150357,21 @@ "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Tags to assign to the DB cluster\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "UseLatestRestorableTime": { + "markdownDescription": "A value that indicates whether to restore the DB cluster to the latest restorable backup time\\. By default, the DB cluster is not restored to the latest restorable backup time\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UseLatestRestorableTime", "type": "boolean" }, "VpcSecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "A list of EC2 VPC security groups to associate with this DB cluster\\. \nIf you plan to update the resource, don't specify VPC security groups in a shared VPC\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSecurityGroupIds", "type": "array" } }, @@ -122641,9 +150401,13 @@ "additionalProperties": false, "properties": { "FeatureName": { + "markdownDescription": "The name of the feature associated with the AWS Identity and Access Management \\(IAM\\) role\\. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other AWS services on your behalf\\. For the list of supported feature names, see the `SupportedFeatureNames` description in [DBEngineVersion](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBEngineVersion.html) in the *Amazon RDS API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FeatureName", "type": "string" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that is associated with the DB cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -122689,18 +150453,26 @@ "additionalProperties": false, "properties": { "AutoPause": { + "markdownDescription": "A value that indicates whether to allow or disallow automatic pause for an Aurora DB cluster in `serverless` DB engine mode\\. A DB cluster can be paused only when it's idle \\(it has no connections\\)\\. \nIf a DB cluster is paused for more than seven days, the DB cluster might be backed up with a snapshot\\. In this case, the DB cluster is restored when there is a request to connect to it\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoPause", "type": "boolean" }, "MaxCapacity": { + "markdownDescription": "The maximum capacity for an Aurora DB cluster in `serverless` DB engine mode\\. \nFor Aurora MySQL, valid capacity values are `1`, `2`, `4`, `8`, `16`, `32`, `64`, `128`, and `256`\\. \nFor Aurora PostgreSQL, valid capacity values are `2`, `4`, `8`, `16`, `32`, `64`, `192`, and `384`\\. \nThe maximum capacity must be greater than or equal to the minimum capacity\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacity", "type": "number" }, "MinCapacity": { + "markdownDescription": "The minimum capacity for an Aurora DB cluster in `serverless` DB engine mode\\. \nFor Aurora MySQL, valid capacity values are `1`, `2`, `4`, `8`, `16`, `32`, `64`, `128`, and `256`\\. \nFor Aurora PostgreSQL, valid capacity values are `2`, `4`, `8`, `16`, `32`, `64`, `192`, and `384`\\. \nThe minimum capacity must be less than or equal to the maximum capacity\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinCapacity", "type": "number" }, "SecondsBeforeTimeout": { "type": "number" }, "SecondsUntilAutoPause": { + "markdownDescription": "The time, in seconds, before an Aurora DB cluster in `serverless` mode is paused\\. \nSpecify a value between 300 and 86,400 seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondsUntilAutoPause", "type": "number" }, "TimeoutAction": { @@ -122760,18 +150532,26 @@ "type": "string" }, "Description": { + "markdownDescription": "A friendly description for this DB cluster parameter group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "Family": { + "markdownDescription": "The DB cluster parameter group family name\\. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a DB engine and engine version compatible with that DB cluster parameter group family\\. \nThe DB cluster parameter group family can't be changed when updating a DB cluster parameter group\\.\nTo list all of the available parameter group families, use the following command: \n`aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\"` \nThe output contains duplicates\\. \nFor more information, see [`CreateDBClusterParameterGroup`](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBClusterParameterGroup.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Family", "type": "string" }, "Parameters": { + "markdownDescription": "Provides a list of parameters for the DB cluster parameter group\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "object" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Tags to assign to the DB cluster parameter group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -122839,132 +150619,208 @@ "additionalProperties": false, "properties": { "AllocatedStorage": { + "markdownDescription": "The amount of storage \\(in gigabytes\\) to be initially allocated for the database instance\\. \nIf any value is set in the `Iops` parameter, `AllocatedStorage` must be at least 100 GiB, which corresponds to the minimum Iops value of 1,000\\. If you increase the `Iops` value \\(in 1,000 IOPS increments\\), then you must also increase the `AllocatedStorage` value \\(in 100\\-GiB increments\\)\\. \n **Amazon Aurora** \nNot applicable\\. Aurora cluster volumes automatically grow as the amount of data in your database increases, though you are only charged for the space that you use in an Aurora cluster volume\\. \n **MySQL** \nConstraints to the amount of storage for each storage type are the following: \n+ General Purpose \\(SSD\\) storage \\(gp2\\): Must be an integer from 20 to 65536\\.\n+ Provisioned IOPS storage \\(io1\\): Must be an integer from 100 to 65536\\.\n+ Magnetic storage \\(standard\\): Must be an integer from 5 to 3072\\.\n **MariaDB** \nConstraints to the amount of storage for each storage type are the following: \n+ General Purpose \\(SSD\\) storage \\(gp2\\): Must be an integer from 20 to 65536\\.\n+ Provisioned IOPS storage \\(io1\\): Must be an integer from 100 to 65536\\.\n+ Magnetic storage \\(standard\\): Must be an integer from 5 to 3072\\.\n **PostgreSQL** \nConstraints to the amount of storage for each storage type are the following: \n+ General Purpose \\(SSD\\) storage \\(gp2\\): Must be an integer from 20 to 65536\\.\n+ Provisioned IOPS storage \\(io1\\): Must be an integer from 100 to 65536\\.\n+ Magnetic storage \\(standard\\): Must be an integer from 5 to 3072\\.\n **Oracle** \nConstraints to the amount of storage for each storage type are the following: \n+ General Purpose \\(SSD\\) storage \\(gp2\\): Must be an integer from 20 to 65536\\.\n+ Provisioned IOPS storage \\(io1\\): Must be an integer from 100 to 65536\\.\n+ Magnetic storage \\(standard\\): Must be an integer from 10 to 3072\\.\n **SQL Server** \nConstraints to the amount of storage for each storage type are the following: \n+ General Purpose \\(SSD\\) storage \\(gp2\\):\n + Enterprise and Standard editions: Must be an integer from 20 to 16384\\.\n + Web and Express editions: Must be an integer from 20 to 16384\\.\n+ Provisioned IOPS storage \\(io1\\):\n + Enterprise and Standard editions: Must be an integer from 20 to 16384\\.\n + Web and Express editions: Must be an integer from 20 to 16384\\.\n+ Magnetic storage \\(standard\\):\n + Enterprise and Standard editions: Must be an integer from 20 to 1024\\.\n + Web and Express editions: Must be an integer from 20 to 1024\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocatedStorage", "type": "string" }, "AllowMajorVersionUpgrade": { + "markdownDescription": "A value that indicates whether major version upgrades are allowed\\. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible\\. \nConstraints: Major version upgrades must be allowed when specifying a value for the `EngineVersion` parameter that is a different major version than the DB instance's current version\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowMajorVersionUpgrade", "type": "boolean" }, "AssociatedRoles": { "items": { "$ref": "#/definitions/AWS::RDS::DBInstance.DBInstanceRole" }, + "markdownDescription": "The AWS Identity and Access Management \\(IAM\\) roles associated with the DB instance\\. \n*Required*: No \n*Type*: List of [DBInstanceRole](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbinstance-dbinstancerole.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociatedRoles", "type": "array" }, "AutoMinorVersionUpgrade": { + "markdownDescription": "A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window\\. By default, minor engine upgrades are applied automatically\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoMinorVersionUpgrade", "type": "boolean" }, "AvailabilityZone": { + "markdownDescription": "The Availability Zone that the database instance will be created in\\. \nDefault: A random, system\\-chosen Availability Zone in the endpoint's region\\. \n Example: `us-east-1d` \n Constraint: The AvailabilityZone parameter cannot be specified if the MultiAZ parameter is set to `true`\\. The specified Availability Zone must be in the same region as the current endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", "type": "string" }, "BackupRetentionPeriod": { + "markdownDescription": "The number of days for which automated backups are retained\\. Setting this parameter to a positive number enables backups\\. Setting this parameter to 0 disables automated backups\\. \n**Amazon Aurora** \nNot applicable\\. The retention period for automated backups is managed by the DB cluster\\. \nDefault: 1 \nConstraints: \n+ Must be a value from 0 to 35\n+ Can't be set to 0 if the DB instance is a source to read replicas\n*Required*: No \n*Type*: Integer \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "BackupRetentionPeriod", "type": "number" }, "CACertificateIdentifier": { + "markdownDescription": "The identifier of the CA certificate for this DB instance\\. \nSpecifying or updating this property triggers a reboot\\.\nFor more information about CA certificate identifiers for RDS DB engines, see [ Rotating Your SSL/TLS Certificate](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html) in the *Amazon RDS User Guide*\\. \nFor more information about CA certificate identifiers for Aurora DB engines, see [ Rotating Your SSL/TLS Certificate](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL-certificate-rotation.html) in the *Amazon Aurora User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CACertificateIdentifier", "type": "string" }, + "CertificateDetails": { + "$ref": "#/definitions/AWS::RDS::DBInstance.CertificateDetails" + }, + "CertificateRotationRestart": { + "type": "boolean" + }, "CharacterSetName": { + "markdownDescription": "For supported engines, indicates that the DB instance should be associated with the specified character set\\. \n **Amazon Aurora** \nNot applicable\\. The character set is managed by the DB cluster\\. For more information, see [AWS::RDS::DBCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CharacterSetName", "type": "string" }, "CopyTagsToSnapshot": { + "markdownDescription": "A value that indicates whether to copy tags from the DB instance to snapshots of the DB instance\\. By default, tags are not copied\\. \n **Amazon Aurora** \nNot applicable\\. Copying tags to snapshots is managed by the DB cluster\\. Setting this value for an Aurora DB instance has no effect on the DB cluster setting\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CopyTagsToSnapshot", "type": "boolean" }, "CustomIAMInstanceProfile": { "type": "string" }, "DBClusterIdentifier": { + "markdownDescription": "The identifier of the DB cluster that the instance will belong to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBClusterIdentifier", "type": "string" }, "DBClusterSnapshotIdentifier": { "type": "string" }, "DBInstanceClass": { + "markdownDescription": "The compute and memory capacity of the DB instance, for example, `db.m4.large`\\. Not all DB instance classes are available in all AWS Regions, or for all database engines\\. \nFor the full list of DB instance classes, and availability for your engine, see [DB Instance Class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) in the *Amazon RDS User Guide\\.* For more information about DB instance class pricing and AWS Region support for DB instance classes, see [Amazon RDS Pricing](http://aws.amazon.com/rds/pricing/)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "DBInstanceClass", "type": "string" }, "DBInstanceIdentifier": { + "markdownDescription": "A name for the DB instance\\. If you specify a name, AWS CloudFormation converts it to lowercase\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the DB instance\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nFor information about constraints that apply to DB instance identifiers, see [Naming constraints in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon RDS User Guide*\\. \nIf you specify a name, you can't perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBInstanceIdentifier", "type": "string" }, "DBName": { + "markdownDescription": "The meaning of this parameter differs according to the database engine you use\\. \n If you specify the ` [ DBSnapshotIdentifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsnapshotidentifier)` property, AWS CloudFormation ignores this property\\. \nIf you restore DB instances from snapshots, this property doesn't apply to the MySQL, PostgreSQL, or MariaDB engines\\.\n **MySQL** \nThe name of the database to create when the DB instance is created\\. If this parameter is not specified, no database is created in the DB instance\\. \nConstraints: \n+ Must contain 1 to 64 letters or numbers\\.\n+ Can't be a word reserved by the specified database engine\n **MariaDB** \nThe name of the database to create when the DB instance is created\\. If this parameter is not specified, no database is created in the DB instance\\. \nConstraints: \n+ Must contain 1 to 64 letters or numbers\\.\n+ Can't be a word reserved by the specified database engine\n **PostgreSQL** \nThe name of the database to create when the DB instance is created\\. If this parameter is not specified, the default `postgres` database is created in the DB instance\\. \nConstraints: \n+ Must contain 1 to 63 letters, numbers, or underscores\\.\n+ Must begin with a letter or an underscore\\. Subsequent characters can be letters, underscores, or digits \\(0\\-9\\)\\.\n+ Can't be a word reserved by the specified database engine\n **Oracle** \nThe Oracle System ID \\(SID\\) of the created DB instance\\. If you specify `null`, the default value `ORCL` is used\\. You can't specify the string NULL, or any other reserved word, for `DBName`\\. \nDefault: `ORCL` \nConstraints: \n+ Can't be longer than 8 characters\n **SQL Server** \nNot applicable\\. Must be null\\. \n **Amazon Aurora MySQL** \nThe name of the database to create when the primary DB instance of the Aurora MySQL DB cluster is created\\. If this parameter isn't specified for an Aurora MySQL DB cluster, no database is created in the DB cluster\\. \nConstraints: \n+ It must contain 1 to 64 alphanumeric characters\\.\n+ It can't be a word reserved by the database engine\\.\n **Amazon Aurora PostgreSQL** \nThe name of the database to create when the primary DB instance of the Aurora PostgreSQL DB cluster is created\\. If this parameter isn't specified for an Aurora PostgreSQL DB cluster, a database named `postgres` is created in the DB cluster\\. \nConstraints: \n+ It must contain 1 to 63 alphanumeric characters\\.\n+ It must begin with a letter or an underscore\\. Subsequent characters can be letters, underscores, or digits \\(0 to 9\\)\\.\n+ It can't be a word reserved by the database engine\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBName", "type": "string" }, "DBParameterGroupName": { + "markdownDescription": "The name of an existing DB parameter group or a reference to an [AWS::RDS::DBParameterGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbparametergroup.html) resource created in the template\\. \nTo list all of the available DB parameter group names, use the following command: \n`aws rds describe-db-parameter-groups --query \"DBParameterGroups[].DBParameterGroupName\" --output text` \nIf any of the data members of the referenced parameter group are changed during an update, the DB instance might need to be restarted, which causes some interruption\\. If the parameter group contains static parameters, whether they were changed or not, an update triggers a reboot\\.\nIf you don't specify a value for the `DBParameterGroupName` property, the default DB parameter group for the specified engine and engine version is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "DBParameterGroupName", "type": "string" }, "DBSecurityGroups": { "items": { "type": "string" }, + "markdownDescription": "A list of the DB security groups to assign to the DB instance\\. The list can include both the name of existing DB security groups or references to AWS::RDS::DBSecurityGroup resources created in the template\\. \n If you set DBSecurityGroups, you must not set VPCSecurityGroups, and vice versa\\. Also, note that the DBSecurityGroups property exists only for backwards compatibility with older regions and is no longer recommended for providing security information to an RDS DB instance\\. Instead, use VPCSecurityGroups\\. \nIf you specify this property, AWS CloudFormation sends only the following properties \\(if specified\\) to Amazon RDS during create operations: \n+ `AllocatedStorage`\n+ `AutoMinorVersionUpgrade`\n+ `AvailabilityZone`\n+ `BackupRetentionPeriod`\n+ `CharacterSetName`\n+ `DBInstanceClass`\n+ `DBName`\n+ `DBParameterGroupName`\n+ `DBSecurityGroups`\n+ `DBSubnetGroupName`\n+ `Engine`\n+ `EngineVersion`\n+ `Iops`\n+ `LicenseModel`\n+ `MasterUsername`\n+ `MasterUserPassword`\n+ `MultiAZ`\n+ `OptionGroupName`\n+ `PreferredBackupWindow`\n+ `PreferredMaintenanceWindow`\nAll other properties are ignored\\. Specify a virtual private cloud \\(VPC\\) security group if you want to submit other properties, such as `StorageType`, `StorageEncrypted`, or `KmsKeyId`\\. If you're already using the `DBSecurityGroups` property, you can't use these other properties by updating your DB instance to use a VPC security group\\. You must recreate the DB instance\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBSecurityGroups", "type": "array" }, "DBSnapshotIdentifier": { + "markdownDescription": "The name or Amazon Resource Name \\(ARN\\) of the DB snapshot that's used to restore the DB instance\\. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot\\. \nBy specifying this property, you can create a DB instance from the specified DB snapshot\\. If the `DBSnapshotIdentifier` property is an empty string or the `AWS::RDS::DBInstance` declaration has no `DBSnapshotIdentifier` property, AWS CloudFormation creates a new database\\. If the property contains a value \\(other than an empty string\\), AWS CloudFormation creates a database from the specified snapshot\\. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack\\. \nSome DB instance properties aren't valid when you restore from a snapshot, such as the `MasterUsername` and `MasterUserPassword` properties\\. For information about the properties that you can specify, see the `RestoreDBInstanceFromDBSnapshot` action in the *Amazon RDS API Reference*\\. \nAfter you restore a DB instance with a `DBSnapshotIdentifier` property, you must specify the same `DBSnapshotIdentifier` property for any future updates to the DB instance\\. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed\\. However, if you don't specify the `DBSnapshotIdentifier` property, an empty DB instance is created, and the original DB instance is deleted\\. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified `DBSnapshotIdentifier` property, and the original DB instance is deleted\\. \nIf you specify the `DBSnapshotIdentifier` property to restore a DB instance \\(as opposed to specifying it for DB instance updates\\), then don't specify the following properties: \n+ `CharacterSetName`\n+ `DBClusterIdentifier`\n+ `DBName`\n+ `DeleteAutomatedBackups`\n+ `EnablePerformanceInsights`\n+ `KmsKeyId`\n+ `MasterUsername`\n+ `MonitoringInterval`\n+ `MonitoringRoleArn`\n+ `PerformanceInsightsKMSKeyId`\n+ `PerformanceInsightsRetentionPeriod`\n+ `PromotionTier`\n+ `SourceDBInstanceIdentifier`\n+ `SourceRegion`\n+ `StorageEncrypted`\n+ `Timezone`\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBSnapshotIdentifier", "type": "string" }, "DBSubnetGroupName": { + "markdownDescription": "A DB subnet group to associate with the DB instance\\. If you update this value, the new subnet group must be a subnet group in a new VPC\\. \nIf there's no DB subnet group, then the DB instance isn't a VPC DB instance\\. \nFor more information about using Amazon RDS in a VPC, see [Using Amazon RDS with Amazon Virtual Private Cloud \\(VPC\\)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*\\. \n**Amazon Aurora** \nNot applicable\\. The DB subnet group is managed by the DB cluster\\. If specified, the setting must match the DB cluster setting\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBSubnetGroupName", "type": "string" }, "DeleteAutomatedBackups": { + "markdownDescription": "A value that indicates whether to remove automated backups immediately after the DB instance is deleted\\. This parameter isn't case\\-sensitive\\. The default is to remove automated backups immediately after the DB instance is deleted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteAutomatedBackups", "type": "boolean" }, "DeletionProtection": { + "markdownDescription": "A value that indicates whether the DB instance has deletion protection enabled\\. The database can't be deleted when deletion protection is enabled\\. By default, deletion protection is disabled\\. For more information, see [ Deleting a DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html)\\. \n **Amazon Aurora** \nNot applicable\\. You can enable or disable deletion protection for the DB cluster\\. For more information, see `CreateDBCluster`\\. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeletionProtection", "type": "boolean" }, "Domain": { + "markdownDescription": "The Active Directory directory ID to create the DB instance in\\. Currently, only Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain\\. \nFor more information, see [ Kerberos Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html) in the *Amazon RDS User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Domain", "type": "string" }, "DomainIAMRoleName": { + "markdownDescription": "Specify the name of the IAM role to be used when making API calls to the Directory Service\\. \nThis setting doesn't apply to RDS Custom\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainIAMRoleName", "type": "string" }, "EnableCloudwatchLogsExports": { "items": { "type": "string" }, + "markdownDescription": "The list of log types that need to be enabled for exporting to CloudWatch Logs\\. The values in the list depend on the DB engine being used\\. For more information, see [Publishing Database Logs to Amazon CloudWatch Logs ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) in the *Amazon Relational Database Service User Guide*\\. \n **Amazon Aurora** \nNot applicable\\. CloudWatch Logs exports are managed by the DB cluster\\. \n **MariaDB** \nValid values: `audit`, `error`, `general`, `slowquery` \n **Microsoft SQL Server** \nValid values: `agent`, `error` \n **MySQL** \nValid values: `audit`, `error`, `general`, `slowquery` \n **Oracle** \nValid values: `alert`, `audit`, `listener`, `trace` \n **PostgreSQL** \nValid values: `postgresql`, `upgrade` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableCloudwatchLogsExports", "type": "array" }, "EnableIAMDatabaseAuthentication": { + "markdownDescription": "A value that indicates whether to enable mapping of AWS Identity and Access Management \\(IAM\\) accounts to database accounts\\. By default, mapping is disabled\\. \nFor more information, see [ IAM Database Authentication for MySQL and PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html) in the *Amazon RDS User Guide\\.* \n **Amazon Aurora** \nNot applicable\\. Mapping AWS IAM accounts to database accounts is managed by the DB cluster\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableIAMDatabaseAuthentication", "type": "boolean" }, "EnablePerformanceInsights": { + "markdownDescription": "A value that indicates whether to enable Performance Insights for the DB instance\\. For more information, see [Using Amazon Performance Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the *Amazon RDS User Guide*\\. \nThis setting doesn't apply to RDS Custom\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnablePerformanceInsights", "type": "boolean" }, "Endpoint": { "$ref": "#/definitions/AWS::RDS::DBInstance.Endpoint" }, "Engine": { + "markdownDescription": "The name of the database engine that you want to use for this DB instance\\. \nWhen you are creating a DB instance, the `Engine` property is required\\.\nValid Values: \n+ `aurora` \\(for MySQL 5\\.6\\-compatible Aurora\\)\n+ `aurora-mysql` \\(for MySQL 5\\.7\\-compatible Aurora\\)\n+ `aurora-postgresql`\n+ `mariadb`\n+ `mysql`\n+ `oracle-ee`\n+ `oracle-se2`\n+ `oracle-se1`\n+ `oracle-se`\n+ `postgres`\n+ `sqlserver-ee`\n+ `sqlserver-se`\n+ `sqlserver-ex`\n+ `sqlserver-web`\n*Required*: Conditional \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Engine", "type": "string" }, "EngineVersion": { + "markdownDescription": "The version number of the database engine to use\\. \nFor a list of valid engine versions, use the `DescribeDBEngineVersions` action\\. \nThe following are the database engines and links to information about the major and minor versions that are available with Amazon RDS\\. Not every database engine is available for every AWS Region\\. \n **Amazon Aurora** \nNot applicable\\. The version number of the database engine to be used by the DB instance is managed by the DB cluster\\. \n**MariaDB** \nSee [MariaDB on Amazon RDS Versions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html#MariaDB.Concepts.VersionMgmt) in the *Amazon RDS User Guide\\.* \n**Microsoft SQL Server** \nSee [Microsoft SQL Server Versions on Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.VersionSupport) in the *Amazon RDS User Guide\\.* \n**MySQL** \nSee [MySQL on Amazon RDS Versions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt) in the *Amazon RDS User Guide\\.* \n**Oracle** \nSee [Oracle Database Engine Release Notes](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.PatchComposition.html) in the *Amazon RDS User Guide\\.* \n**PostgreSQL** \nSee [Supported PostgreSQL Database Versions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.DBVersions) in the *Amazon RDS User Guide\\.* \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "EngineVersion", "type": "string" }, "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\) that the database provisions\\. The value must be equal to or greater than 1000\\. \nIf you specify this property, you must follow the range of allowed ratios of your requested IOPS rate to the amount of storage that you allocate \\(IOPS to allocated storage\\)\\. For example, you can provision an Oracle database instance with 1000 IOPS and 200 GiB of storage \\(a ratio of 5:1\\), or specify 2000 IOPS with 200 GiB of storage \\(a ratio of 10:1\\)\\. For more information, see [Amazon RDS Provisioned IOPS Storage to Improve Performance](https://docs.aws.amazon.com/AmazonRDS/latest/DeveloperGuide/CHAP_Storage.html#USER_PIOPS) in the *Amazon RDS User Guide*\\. \nIf you specify `io1` for the `StorageType` property, then you must also specify the `Iops` property\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iops", "type": "number" }, "KmsKeyId": { + "markdownDescription": "The ARN of the AWS KMS key that's used to encrypt the DB instance, such as `arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef`\\. If you enable the StorageEncrypted property but don't specify this property, AWS CloudFormation uses the default KMS key\\. If you specify this property, you must set the StorageEncrypted property to true\\. \nIf you specify the `SourceDBInstanceIdentifier` property, the value is inherited from the source DB instance if the read replica is created in the same region\\. \nIf you create an encrypted read replica in a different AWS Region, then you must specify a KMS key for the destination AWS Region\\. KMS encryption keys are specific to the region that they're created in, and you can't use encryption keys from one region in another region\\. \nIf you specify the `SnapshotIdentifier` property, the `StorageEncrypted` property value is inherited from the snapshot, and if the DB instance is encrypted, the specified `KmsKeyId` property is used\\. \nIf you specify `DBSecurityGroups`, AWS CloudFormation ignores this property\\. To specify both a security group and this property, you must use a VPC security group\\. For more information about Amazon RDS and VPC, see [Using Amazon RDS with Amazon VPC](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html) in the *Amazon RDS User Guide*\\. \n **Amazon Aurora** \nNot applicable\\. The KMS key identifier is managed by the DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" }, "LicenseModel": { + "markdownDescription": "License model information for this DB instance\\. \n Valid values: \n+ Aurora MySQL \\- `general-public-license`\n+ Aurora PostgreSQL \\- `postgresql-license`\n+ MariaDB \\- `general-public-license`\n+ Microsoft SQL Server \\- `license-included`\n+ MySQL \\- `general-public-license`\n+ Oracle \\- `bring-your-own-license` or `license-included`\n+ PostgreSQL \\- `postgresql-license`\nIf you've specified `DBSecurityGroups` and then you update the license model, AWS CloudFormation replaces the underlying DB instance\\. This will incur some interruptions to database availability\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LicenseModel", "type": "string" }, "ManageMasterUserPassword": { "type": "boolean" }, "MasterUserPassword": { + "markdownDescription": "The password for the master user\\. The password can include any printable ASCII character except \"/\", \"\"\", or \"@\"\\. \n **Amazon Aurora** \nNot applicable\\. The password for the master user is managed by the DB cluster\\. \n **MariaDB** \nConstraints: Must contain from 8 to 41 characters\\. \n **Microsoft SQL Server** \nConstraints: Must contain from 8 to 128 characters\\. \n **MySQL** \nConstraints: Must contain from 8 to 41 characters\\. \n **Oracle** \nConstraints: Must contain from 8 to 30 characters\\. \n **PostgreSQL** \nConstraints: Must contain from 8 to 128 characters\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MasterUserPassword", "type": "string" }, "MasterUserSecret": { "$ref": "#/definitions/AWS::RDS::DBInstance.MasterUserSecret" }, "MasterUsername": { + "markdownDescription": "The master user name for the DB instance\\. \nIf you specify the `SourceDBInstanceIdentifier` or `DBSnapshotIdentifier` property, don't specify this property\\. The value is inherited from the source DB instance or snapshot\\.\n **Amazon Aurora** \nNot applicable\\. The name for the master user is managed by the DB cluster\\. \n **MariaDB** \nConstraints: \n+ Required for MariaDB\\.\n+ Must be 1 to 16 letters or numbers\\.\n+ Can't be a reserved word for the chosen database engine\\.\n **Microsoft SQL Server** \nConstraints: \n+ Required for SQL Server\\.\n+ Must be 1 to 128 letters or numbers\\.\n+ The first character must be a letter\\.\n+ Can't be a reserved word for the chosen database engine\\.\n **MySQL** \nConstraints: \n+ Required for MySQL\\.\n+ Must be 1 to 16 letters or numbers\\.\n+ First character must be a letter\\.\n+ Can't be a reserved word for the chosen database engine\\.\n **Oracle** \nConstraints: \n+ Required for Oracle\\.\n+ Must be 1 to 30 letters or numbers\\.\n+ First character must be a letter\\.\n+ Can't be a reserved word for the chosen database engine\\.\n **PostgreSQL** \nConstraints: \n+ Required for PostgreSQL\\.\n+ Must be 1 to 63 letters or numbers\\.\n+ First character must be a letter\\.\n+ Can't be a reserved word for the chosen database engine\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MasterUsername", "type": "string" }, "MaxAllocatedStorage": { + "markdownDescription": "The upper limit in gibibytes \\(GiB\\) to which Amazon RDS can automatically scale the storage of the DB instance\\. \nFor more information about this setting, including limitations that apply to it, see [ Managing capacity automatically with Amazon RDS storage autoscaling](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling) in the *Amazon RDS User Guide*\\. \nThis setting doesn't apply to RDS Custom\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxAllocatedStorage", "type": "number" }, "MonitoringInterval": { + "markdownDescription": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance\\. To disable collection of Enhanced Monitoring metrics, specify 0\\. The default is 0\\. \nIf `MonitoringRoleArn` is specified, then you must set `MonitoringInterval` to a value other than 0\\. \nThis setting doesn't apply to RDS Custom\\. \nValid Values: `0, 1, 5, 10, 15, 30, 60` \n*Required*: No \n*Type*: Integer \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "MonitoringInterval", "type": "number" }, "MonitoringRoleArn": { + "markdownDescription": "The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs\\. For example, `arn:aws:iam:123456789012:role/emaccess`\\. For information on creating a monitoring role, see [Setting Up and Enabling Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling) in the *Amazon RDS User Guide*\\. \nIf `MonitoringInterval` is set to a value other than 0, then you must supply a `MonitoringRoleArn` value\\. \nThis setting doesn't apply to RDS Custom\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MonitoringRoleArn", "type": "string" }, "MultiAZ": { + "markdownDescription": "Specifies whether the database instance is a multiple Availability Zone deployment\\. You can't set the `AvailabilityZone` parameter if the `MultiAZ` parameter is set to true\\. \n **Amazon Aurora** \nNot applicable\\. Amazon Aurora storage is replicated across all of the Availability Zones and doesn't require the `MultiAZ` option to be set\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "MultiAZ", "type": "boolean" }, "NcharCharacterSetName": { @@ -122974,33 +150830,51 @@ "type": "string" }, "OptionGroupName": { + "markdownDescription": "Indicates that the DB instance should be associated with the specified option group\\. \nPermanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group\\. Also, that option group can't be removed from a DB instance once it is associated with a DB instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OptionGroupName", "type": "string" }, "PerformanceInsightsKMSKeyId": { + "markdownDescription": "The AWS KMS key identifier for encryption of Performance Insights data\\. \nThe KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key\\. \nIf you do not specify a value for `PerformanceInsightsKMSKeyId`, then Amazon RDS uses your default KMS key\\. There is a default KMS key for your AWS account\\. Your AWS account has a different default KMS key for each AWS Region\\. \nFor information about enabling Performance Insights, see [ EnablePerformanceInsights](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-enableperformanceinsights)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PerformanceInsightsKMSKeyId", "type": "string" }, "PerformanceInsightsRetentionPeriod": { + "markdownDescription": "The amount of time, in days, to retain Performance Insights data\\. Valid values are 7 or 731 \\(2 years\\)\\. \nFor information about enabling Performance Insights, see [ EnablePerformanceInsights](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-enableperformanceinsights)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PerformanceInsightsRetentionPeriod", "type": "number" }, "Port": { + "markdownDescription": "The port number on which the database accepts connections\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Port", "type": "string" }, "PreferredBackupWindow": { + "markdownDescription": "The daily time range during which automated backups are created if automated backups are enabled, using the `BackupRetentionPeriod` parameter\\. For more information, see [ Backup Window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow) in the *Amazon RDS User Guide\\.* \nConstraints: \n+ Must be in the format `hh24:mi-hh24:mi`\\.\n+ Must be in Universal Coordinated Time \\(UTC\\)\\.\n+ Must not conflict with the preferred maintenance window\\.\n+ Must be at least 30 minutes\\.\n **Amazon Aurora** \nNot applicable\\. The daily time range for creating automated backups is managed by the DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredBackupWindow", "type": "string" }, "PreferredMaintenanceWindow": { + "markdownDescription": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time \\(UTC\\)\\. \nFormat: `ddd:hh24:mi-ddd:hh24:mi` \nThe default is a 30\\-minute window selected at random from an 8\\-hour block of time for each AWS Region, occurring on a random day of the week\\. To see the time blocks available, see [ Adjusting the Preferred DB Instance Maintenance Window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow) in the *Amazon RDS User Guide\\.* \nThis property applies when AWS CloudFormation initially creates the DB instance\\. If you use AWS CloudFormation to update the DB instance, those updates are applied immediately\\.\nConstraints: Minimum 30\\-minute window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "PreferredMaintenanceWindow", "type": "string" }, "ProcessorFeatures": { "items": { "$ref": "#/definitions/AWS::RDS::DBInstance.ProcessorFeature" }, + "markdownDescription": "The number of CPU cores and the number of threads per core for the DB instance class of the DB instance\\. \nThis setting doesn't apply to RDS Custom\\. \n*Required*: No \n*Type*: List of [ProcessorFeature](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbinstance-processorfeature.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProcessorFeatures", "type": "array" }, "PromotionTier": { + "markdownDescription": "A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance\\. For more information, see [ Fault Tolerance for an Aurora DB Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance) in the *Amazon Aurora User Guide*\\. \nThis setting doesn't apply to RDS Custom\\. \nDefault: 1 \nValid Values: 0 \\- 15 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PromotionTier", "type": "number" }, "PubliclyAccessible": { + "markdownDescription": "Indicates whether the DB instance is an internet\\-facing instance\\. If you specify `true`, AWS CloudFormation creates an instance with a publicly resolvable DNS name, which resolves to a public IP address\\. If you specify false, AWS CloudFormation creates an internal instance with a DNS name that resolves to a private IP address\\. \n The default behavior value depends on your VPC setup and the database subnet group\\. For more information, see the `PubliclyAccessible` parameter in [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) in the *Amazon RDS API Reference*\\. \n If this resource has a public IP address and is also in a VPC that is defined in the same template, you must use the *DependsOn* attribute to declare a dependency on the VPC\\-gateway attachment\\. For more information, see [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html)\\. \nIf you specify DBSecurityGroups, AWS CloudFormation ignores this property\\. To specify a security group and this property, you must use a VPC security group\\. For more information about Amazon RDS and VPC, see [Using Amazon RDS with Amazon VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PubliclyAccessible", "type": "boolean" }, "ReplicaMode": { @@ -123013,33 +150887,47 @@ "type": "string" }, "SourceDBInstanceIdentifier": { + "markdownDescription": "If you want to create a read replica DB instance, specify the ID of the source DB instance\\. Each DB instance can have a limited number of read replicas\\. For more information, see [Working with Read Replicas](https://docs.aws.amazon.com/AmazonRDS/latest/DeveloperGuide/USER_ReadRepl.html) in the *Amazon RDS User Guide*\\. \nFor information about constraints that apply to DB instance identifiers, see [Naming constraints in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon RDS User Guide*\\. \nThe `SourceDBInstanceIdentifier` property determines whether a DB instance is a read replica\\. If you remove the `SourceDBInstanceIdentifier` property from your template and then update your stack, AWS CloudFormation deletes the Read Replica and creates a new DB instance \\(not a read replica\\)\\. \n+ If you specify a source DB instance that uses VPC security groups, we recommend that you specify the `VPCSecurityGroups` property\\. If you don't specify the property, the read replica inherits the value of the `VPCSecurityGroups` property from the source DB when you create the replica\\. However, if you update the stack, AWS CloudFormation reverts the replica's `VPCSecurityGroups` property to the default value because it's not defined in the stack's template\\. This change might cause unexpected issues\\.\n+ Read replicas don't support deletion policies\\. AWS CloudFormation ignores any deletion policy that's associated with a read replica\\.\n+ If you specify `SourceDBInstanceIdentifier`, don't specify the `DBSnapshotIdentifier` property\\. You can't create a read replica from a snapshot\\.\n+ Don't set the `BackupRetentionPeriod`, `DBName`, `MasterUsername`, `MasterUserPassword`, and `PreferredBackupWindow` properties\\. The database attributes are inherited from the source DB instance, and backups are disabled for read replicas\\.\n+ If the source DB instance is in a different region than the read replica, specify the source region in `SourceRegion`, and specify an ARN for a valid DB instance in `SourceDBInstanceIdentifier`\\. For more information, see [ Constructing a Amazon RDS Amazon Resource Name \\(ARN\\)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html#USER_Tagging.ARN) in the *Amazon RDS User Guide*\\.\n+ For DB instances in Amazon Aurora clusters, don't specify this property\\. Amazon RDS automatically assigns writer and reader DB instances\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceDBInstanceIdentifier", "type": "string" }, "SourceDbiResourceId": { "type": "string" }, "SourceRegion": { + "markdownDescription": "The ID of the region that contains the source DB instance for the read replica\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceRegion", "type": "string" }, "StorageEncrypted": { + "markdownDescription": "A value that indicates whether the DB instance is encrypted\\. By default, it isn't encrypted\\. \nIf you specify the `KmsKeyId` property, then you must enable encryption\\. \nIf you specify the `SnapshotIdentifier` or `SourceDBInstanceIdentifier` property, don't specify this property\\. The value is inherited from the snapshot or source DB instance, and if the DB instance is encrypted, the specified `KmsKeyId` property is used\\. \n **Amazon Aurora** \nNot applicable\\. The encryption for DB instances is managed by the DB cluster\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StorageEncrypted", "type": "boolean" }, "StorageThroughput": { "type": "number" }, "StorageType": { + "markdownDescription": "Specifies the storage type to be associated with the DB instance\\. \n Valid values: `standard | gp2 | io1` \nThe `standard` value is also known as magnetic\\. \n If you specify `io1`, you must also include a value for the `Iops` parameter\\. \n Default: `io1` if the `Iops` parameter is specified, otherwise `standard` \nFor more information, see [Amazon RDS DB Instance Storage](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) in the *Amazon RDS User Guide*\\. \n **Amazon Aurora** \nNot applicable\\. Aurora data is stored in the cluster volume, which is a single, virtual volume that uses solid state drives \\(SSDs\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "StorageType", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Tags to assign to the DB instance\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Timezone": { + "markdownDescription": "The time zone of the DB instance\\. The time zone parameter is currently supported only by [Microsoft SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.TimeZone)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Timezone", "type": "string" }, "UseDefaultProcessorFeatures": { + "markdownDescription": "A value that indicates whether the DB instance class of the DB instance uses its default processor features\\. \nThis setting doesn't apply to RDS Custom\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseDefaultProcessorFeatures", "type": "boolean" }, "UseLatestRestorableTime": { @@ -123049,6 +150937,8 @@ "items": { "type": "string" }, + "markdownDescription": "A list of the VPC security group IDs to assign to the DB instance\\. The list can include both the physical IDs of existing VPC security groups and references to [AWS::EC2::SecurityGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html) resources created in the template\\. \nIf you plan to update the resource, don't specify VPC security groups in a shared VPC\\. \n If you set `VPCSecurityGroups`, you must not set [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsecuritygroups](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsecuritygroups), and vice versa\\. \nYou can migrate a DB instance in your stack from an RDS DB security group to a VPC security group, but keep the following in mind: \n+ You can't revert to using an RDS security group after you establish a VPC security group membership\\.\n+ When you migrate your DB instance to VPC security groups, if your stack update rolls back because the DB instance update fails or because an update fails in another AWS CloudFormation resource, the rollback fails because it can't revert to an RDS security group\\.\n+ To use the properties that are available when you use a VPC security group, you must recreate the DB instance\\. If you don't, AWS CloudFormation submits only the property values that are listed in the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsecuritygroups](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsecuritygroups) property\\.\nTo avoid this situation, migrate your DB instance to using VPC security groups only when that is the only change in your stack template\\. \n **Amazon Aurora** \nNot applicable\\. The associated list of EC2 VPC security groups is managed by the DB cluster\\. If specified, the setting must match the DB cluster setting\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VPCSecurityGroups", "type": "array" } }, @@ -123074,13 +150964,29 @@ ], "type": "object" }, + "AWS::RDS::DBInstance.CertificateDetails": { + "additionalProperties": false, + "properties": { + "CAIdentifier": { + "type": "string" + }, + "ValidTill": { + "type": "string" + } + }, + "type": "object" + }, "AWS::RDS::DBInstance.DBInstanceRole": { "additionalProperties": false, "properties": { "FeatureName": { + "markdownDescription": "The name of the feature associated with the AWS Identity and Access Management \\(IAM\\) role\\. IAM roles that are associated with a DB instance grant permission for the DB instance to access other AWS services on your behalf\\. For the list of supported feature names, see the `SupportedFeatureNames` description in [DBEngineVersion](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBEngineVersion.html) in the *Amazon RDS API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FeatureName", "type": "string" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that is associated with the DB instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" } }, @@ -123121,9 +151027,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the processor feature\\. Valid names are `coreCount` and `threadsPerCore`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "The value of a processor feature name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -123168,18 +151078,26 @@ "type": "string" }, "Description": { + "markdownDescription": "Provides the customer\\-specified description for this DB parameter group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Family": { + "markdownDescription": "The DB parameter group family name\\. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a DB engine and engine version compatible with that DB parameter group family\\. \nThe DB parameter group family can't be changed when updating a DB parameter group\\.\nTo list all of the available parameter group families, use the following command: \n`aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\"` \nThe output contains duplicates\\. \nFor more information, see [`CreateDBParameterGroup`](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBParameterGroup.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Family", "type": "string" }, "Parameters": { + "markdownDescription": "An array of parameter names and values for the parameter update\\. At least one parameter name and value must be supplied\\. Subsequent arguments are optional\\. \nFor more information about DB parameters and DB parameter groups for Amazon RDS DB engines, see [Working with DB Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*\\. \nFor more information about DB cluster and DB instance parameters and parameter groups for Amazon Aurora DB engines, see [ Working with DB Parameter Groups and DB Cluster Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*\\. \nAWS CloudFormation doesn't support specifying an apply method for each individual parameter\\. The default apply method for each parameter is used\\.\n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "object" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Tags to assign to the DB parameter group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -123249,42 +151167,62 @@ "items": { "$ref": "#/definitions/AWS::RDS::DBProxy.AuthFormat" }, + "markdownDescription": "The authorization mechanism that the proxy uses\\. \n*Required*: Yes \n*Type*: List of [AuthFormat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-authformat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Auth", "type": "array" }, "DBProxyName": { + "markdownDescription": "The identifier for the proxy\\. This name must be unique for all proxies owned by your AWS account in the specified AWS Region\\. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBProxyName", "type": "string" }, "DebugLogging": { + "markdownDescription": "Whether the proxy includes detailed information about SQL statements in its logs\\. This information helps you to debug issues involving SQL behavior or the performance and scalability of the proxy connections\\. The debug information includes the text of SQL statements that you submit through the proxy\\. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DebugLogging", "type": "boolean" }, "EngineFamily": { + "markdownDescription": "The kinds of databases that the proxy can connect to\\. This value determines which database network protocol the proxy recognizes when it interprets network traffic to and from the database\\. The engine family applies to MySQL and PostgreSQL for both RDS and Aurora\\. \n*Valid values*: `MYSQL` \\| `POSTGRESQL` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineFamily", "type": "string" }, "IdleClientTimeout": { + "markdownDescription": "The number of seconds that a connection to the proxy can be inactive before the proxy disconnects it\\. You can set this value higher or lower than the connection timeout limit for the associated database\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdleClientTimeout", "type": "number" }, "RequireTLS": { + "markdownDescription": "A Boolean parameter that specifies whether Transport Layer Security \\(TLS\\) encryption is required for connections to the proxy\\. By enabling this setting, you can enforce encrypted TLS connections to the proxy\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequireTLS", "type": "boolean" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that the proxy uses to access secrets in AWS Secrets Manager\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/AWS::RDS::DBProxy.TagFormat" }, + "markdownDescription": "An optional set of key\\-value pairs to associate arbitrary data of your choosing with the proxy\\. \n*Required*: No \n*Type*: List of [TagFormat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-tagformat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VpcSecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "One or more VPC security group IDs to associate with the new proxy\\. \nIf you plan to update the resource, don't specify VPC security groups in a shared VPC\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSecurityGroupIds", "type": "array" }, "VpcSubnetIds": { "items": { "type": "string" }, + "markdownDescription": "One or more VPC subnet IDs to associate with the new proxy\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcSubnetIds", "type": "array" } }, @@ -123322,21 +151260,26 @@ "additionalProperties": false, "properties": { "AuthScheme": { + "markdownDescription": "The type of authentication that the proxy uses for connections from the proxy to the underlying database\\. \nValid Values: `SECRETS` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthScheme", "type": "string" }, "ClientPasswordAuthType": { "type": "string" }, "Description": { + "markdownDescription": "A user\\-specified description about the authentication used by a proxy to log in as a specific database user\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "IAMAuth": { + "markdownDescription": "Whether to require or disallow AWS Identity and Access Management \\(IAM\\) authentication for connections to the proxy\\. \nValid Values: `DISABLED | REQUIRED` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IAMAuth", "type": "string" }, "SecretArn": { - "type": "string" - }, - "UserName": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) representing the secret that the proxy uses to authenticate to the RDS DB instance or Aurora DB cluster\\. These secrets are stored within Amazon Secrets Manager\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretArn", "type": "string" } }, @@ -123346,9 +151289,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "A key is the required name of the tag\\. The string value can be 1\\-128 Unicode characters in length and can't be prefixed with `aws:`\\. The string can contain only the set of Unicode letters, digits, white\\-space, '\\_', '\\.', '/', '=', '\\+', '\\-' \\(Java regex: \"^\\(\\[\\\\\\\\p\\{L\\}\\\\\\\\p\\{Z\\}\\\\\\\\p\\{N\\}\\_\\.:/=\\+\\\\\\\\\\-\\]\\*\\)$\"\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "A value is the optional value of the tag\\. The string value can be 1\\-256 Unicode characters in length and can't be prefixed with `aws:`\\. The string can contain only the set of Unicode letters, digits, white\\-space, '\\_', '\\.', '/', '=', '\\+', '\\-' \\(Java regex: \"^\\(\\[\\\\\\\\p\\{L\\}\\\\\\\\p\\{Z\\}\\\\\\\\p\\{N\\}\\_\\.:/=\\+\\\\\\\\\\-\\]\\*\\)$\"\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -123390,30 +151337,37 @@ "additionalProperties": false, "properties": { "DBProxyEndpointName": { + "markdownDescription": "The name of the DB proxy endpoint to create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBProxyEndpointName", "type": "string" }, "DBProxyName": { + "markdownDescription": "The name of the DB proxy associated with the DB proxy endpoint that you create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBProxyName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/AWS::RDS::DBProxyEndpoint.TagFormat" }, + "markdownDescription": "An optional set of key\\-value pairs to associate arbitrary data of your choosing with the proxy\\. \n*Required*: No \n*Type*: List of [TagFormat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxyendpoint-tagformat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, - "TargetRole": { - "type": "string" - }, "VpcSecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "The VPC security group IDs for the DB proxy endpoint that you create\\. You can specify a different set of security group IDs than for the original DB proxy\\. The default is the default security group for the VPC\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSecurityGroupIds", "type": "array" }, "VpcSubnetIds": { "items": { "type": "string" }, + "markdownDescription": "The VPC subnet IDs for the DB proxy endpoint that you create\\. You can specify a different set of subnet IDs than for the original DB proxy\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcSubnetIds", "type": "array" } }, @@ -123449,9 +151403,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "A value is the optional value of the tag\\. The string value can be 1\\-256 Unicode characters in length and can't be prefixed with `aws:`\\. The string can contain only the set of Unicode letters, digits, white\\-space, '\\_', '\\.', '/', '=', '\\+', '\\-' \\(Java regex: \"^\\(\\[\\\\\\\\p\\{L\\}\\\\\\\\p\\{Z\\}\\\\\\\\p\\{N\\}\\_\\.:/=\\+\\\\\\\\\\-\\]\\*\\)$\"\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "Metadata assigned to a DB instance consisting of a key\\-value pair\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -123493,24 +151451,34 @@ "additionalProperties": false, "properties": { "ConnectionPoolConfigurationInfo": { - "$ref": "#/definitions/AWS::RDS::DBProxyTargetGroup.ConnectionPoolConfigurationInfoFormat" + "$ref": "#/definitions/AWS::RDS::DBProxyTargetGroup.ConnectionPoolConfigurationInfoFormat", + "markdownDescription": "Settings that control the size and behavior of the connection pool associated with a `DBProxyTargetGroup`\\. \n*Required*: No \n*Type*: [ConnectionPoolConfigurationInfoFormat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionPoolConfigurationInfo" }, "DBClusterIdentifiers": { "items": { "type": "string" }, + "markdownDescription": "One or more DB cluster identifiers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBClusterIdentifiers", "type": "array" }, "DBInstanceIdentifiers": { "items": { "type": "string" }, + "markdownDescription": "One or more DB instance identifiers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBInstanceIdentifiers", "type": "array" }, "DBProxyName": { + "markdownDescription": "The identifier of the `DBProxy` that is associated with the `DBProxyTargetGroup`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBProxyName", "type": "string" }, "TargetGroupName": { + "markdownDescription": "The identifier for the target group\\. \nCurrently, this property must be set to `default`\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetGroupName", "type": "string" } }, @@ -123545,21 +151513,31 @@ "additionalProperties": false, "properties": { "ConnectionBorrowTimeout": { + "markdownDescription": "The number of seconds for a proxy to wait for a connection to become available in the connection pool\\. Only applies when the proxy has opened its maximum number of connections and all connections are busy with client sessions\\. \nDefault: 120 \nConstraints: between 1 and 3600, or 0 representing unlimited \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionBorrowTimeout", "type": "number" }, "InitQuery": { + "markdownDescription": "One or more SQL statements for the proxy to run when opening each new database connection\\. Typically used with `SET` statements to make sure that each connection has identical settings such as time zone and character set\\. For multiple statements, use semicolons as the separator\\. You can also include multiple variables in a single `SET` statement, such as `SET x=1, y=2`\\. \nDefault: no initialization query \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InitQuery", "type": "string" }, "MaxConnectionsPercent": { + "markdownDescription": "The maximum size of the connection pool for each target in a target group\\. The value is expressed as a percentage of the `max_connections` setting for the RDS DB instance or Aurora DB cluster used by the target group\\. \nDefault: 100 \nConstraints: between 1 and 100 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxConnectionsPercent", "type": "number" }, "MaxIdleConnectionsPercent": { + "markdownDescription": "Controls how actively the proxy closes idle database connections in the connection pool\\. The value is expressed as a percentage of the `max_connections` setting for the RDS DB instance or Aurora DB cluster used by the target group\\. With a high value, the proxy leaves a high percentage of idle database connections open\\. A low value causes the proxy to close more idle connections and return them to the database\\. \nDefault: 50 \nConstraints: between 0 and `MaxConnectionsPercent` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxIdleConnectionsPercent", "type": "number" }, "SessionPinningFilters": { "items": { "type": "string" }, + "markdownDescription": "Each item in the list represents a class of SQL operations that normally cause all later statements in a session using a proxy to be pinned to the same underlying database connection\\. Including an item in the list exempts that class of SQL operations from the pinning behavior\\. \nDefault: no session pinning filters \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionPinningFilters", "type": "array" } }, @@ -123604,18 +151582,26 @@ "items": { "$ref": "#/definitions/AWS::RDS::DBSecurityGroup.Ingress" }, + "markdownDescription": "Ingress rules to be applied to the DB security group\\. \n*Required*: Yes \n*Type*: List of [Ingress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-security-group-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBSecurityGroupIngress", "type": "array" }, "EC2VpcId": { + "markdownDescription": "The identifier of an Amazon VPC\\. This property indicates the VPC that this DB security group belongs to\\. \nThe `EC2VpcId` property is for backward compatibility with older regions, and is no longer recommended for providing security information to an RDS DB instance\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EC2VpcId", "type": "string" }, "GroupDescription": { + "markdownDescription": "Provides the description of the DB security group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupDescription", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Tags to assign to the DB security group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -123650,15 +151636,23 @@ "additionalProperties": false, "properties": { "CIDRIP": { + "markdownDescription": "The IP range to authorize\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CIDRIP", "type": "string" }, "EC2SecurityGroupId": { + "markdownDescription": "Id of the EC2 Security Group to authorize\\. For VPC DB Security Groups, `EC2SecurityGroupId` must be provided\\. Otherwise, EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or `EC2SecurityGroupId` must be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EC2SecurityGroupId", "type": "string" }, "EC2SecurityGroupName": { + "markdownDescription": "Name of the EC2 Security Group to authorize\\. For VPC DB Security Groups, `EC2SecurityGroupId` must be provided\\. Otherwise, EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or `EC2SecurityGroupId` must be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EC2SecurityGroupName", "type": "string" }, "EC2SecurityGroupOwnerId": { + "markdownDescription": "AWS Account Number of the owner of the EC2 Security Group specified in the EC2SecurityGroupName parameter\\. The AWS Access Key ID is not an acceptable value\\. For VPC DB Security Groups, `EC2SecurityGroupId` must be provided\\. Otherwise, EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or `EC2SecurityGroupId` must be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EC2SecurityGroupOwnerId", "type": "string" } }, @@ -123700,18 +151694,28 @@ "additionalProperties": false, "properties": { "CIDRIP": { + "markdownDescription": "The IP range to authorize\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CIDRIP", "type": "string" }, "DBSecurityGroupName": { + "markdownDescription": "The name of the DB Security Group to add authorization to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBSecurityGroupName", "type": "string" }, "EC2SecurityGroupId": { + "markdownDescription": "Id of the EC2 Security Group to authorize\\. For VPC DB Security Groups, `EC2SecurityGroupId` must be provided\\. Otherwise, EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or `EC2SecurityGroupId` must be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EC2SecurityGroupId", "type": "string" }, "EC2SecurityGroupName": { + "markdownDescription": "Name of the EC2 Security Group to authorize\\. For VPC DB Security Groups, `EC2SecurityGroupId` must be provided\\. Otherwise, EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or `EC2SecurityGroupId` must be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EC2SecurityGroupName", "type": "string" }, "EC2SecurityGroupOwnerId": { + "markdownDescription": "AWS Account Number of the owner of the EC2 Security Group specified in the EC2SecurityGroupName parameter\\. The AWS Access Key ID is not an acceptable value\\. For VPC DB Security Groups, `EC2SecurityGroupId` must be provided\\. Otherwise, EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or `EC2SecurityGroupId` must be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EC2SecurityGroupOwnerId", "type": "string" } }, @@ -123777,21 +151781,29 @@ "additionalProperties": false, "properties": { "DBSubnetGroupDescription": { + "markdownDescription": "The description for the DB Subnet Group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBSubnetGroupDescription", "type": "string" }, "DBSubnetGroupName": { + "markdownDescription": "The name for the DB subnet group\\. This value is stored as a lowercase string\\. \nConstraints: Must contain no more than 255 lowercase alphanumeric characters or hyphens\\. Must not be \"Default\"\\. \nExample: `mysubnetgroup` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBSubnetGroupName", "type": "string" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "The EC2 Subnet IDs for the DB Subnet Group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Tags to assign to the DB subnet group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -123858,24 +151870,34 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "A Boolean value; set to **true** to activate the subscription, set to **false** to create the subscription but not active it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "EventCategories": { "items": { "type": "string" }, + "markdownDescription": "A list of event categories for a SourceType that you want to subscribe to\\. You can see a list of the categories for a given SourceType in the [Events](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html) topic in the Amazon RDS User Guide or by using the **DescribeEventCategories** action\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventCategories", "type": "array" }, "SnsTopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the SNS topic created for event notification\\. The ARN is created by Amazon SNS when you create a topic and subscribe to it\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnsTopicArn", "type": "string" }, "SourceIds": { "items": { "type": "string" }, + "markdownDescription": "The list of identifiers of the event sources for which events are returned\\. If not specified, then all sources are included in the response\\. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens\\. It can't end with a hyphen or contain two consecutive hyphens\\. \nConstraints: \n+ If a `SourceIds` value is supplied, `SourceType` must also be provided\\.\n+ If the source type is a DB instance, a `DBInstanceIdentifier` value must be supplied\\.\n+ If the source type is a DB cluster, a `DBClusterIdentifier` value must be supplied\\.\n+ If the source type is a DB parameter group, a `DBParameterGroupName` value must be supplied\\.\n+ If the source type is a DB security group, a `DBSecurityGroupName` value must be supplied\\.\n+ If the source type is a DB snapshot, a `DBSnapshotIdentifier` value must be supplied\\.\n+ If the source type is a DB cluster snapshot, a `DBClusterSnapshotIdentifier` value must be supplied\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceIds", "type": "array" }, "SourceType": { + "markdownDescription": "The type of source that is generating the events\\. For example, if you want to be notified of events generated by a DB instance, set this parameter to `db-instance`\\. If this value isn't specified, all events are returned\\. \nValid values: `db-instance` \\| `db-cluster` \\| `db-parameter-group` \\| `db-security-group` \\| `db-snapshot` \\| `db-cluster-snapshot` \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "SourceType", "type": "string" }, "SubscriptionName": { @@ -123950,21 +151972,33 @@ "additionalProperties": false, "properties": { "DeletionProtection": { + "markdownDescription": "The deletion protection setting for the new global database\\. The global database can't be deleted when deletion protection is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeletionProtection", "type": "boolean" }, "Engine": { + "markdownDescription": "The name of the database engine to be used for this DB cluster\\. \nIf this property isn't specified, the database engine is derived from the source DB cluster specified by the `SourceDBClusterIdentifier` property\\. \nIf the `SourceDBClusterIdentifier` property isn't specified, this property is required\\. If the `SourceDBClusterIdentifier` property is specified, make sure this property isn't specified\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Engine", "type": "string" }, "EngineVersion": { + "markdownDescription": "The engine version of the Aurora global database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineVersion", "type": "string" }, "GlobalClusterIdentifier": { + "markdownDescription": "The cluster identifier of the global database cluster\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GlobalClusterIdentifier", "type": "string" }, "SourceDBClusterIdentifier": { + "markdownDescription": "The DB cluster identifier or Amazon Resource Name \\(ARN\\) to use as the primary cluster of the global database\\. \nIf the `Engine` property isn't specified, this property is required\\. If the `Engine` property is specified, make sure this property isn't specified\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceDBClusterIdentifier", "type": "string" }, "StorageEncrypted": { + "markdownDescription": "The storage encryption setting for the global database cluster\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StorageEncrypted", "type": "boolean" } }, @@ -124026,18 +152060,26 @@ "additionalProperties": false, "properties": { "EngineName": { + "markdownDescription": "Specifies the name of the engine that this option group should be associated with\\. \nValid Values: \n+ `mariadb`\n+ `mysql`\n+ `oracle-ee`\n+ `oracle-se2`\n+ `oracle-se1`\n+ `oracle-se`\n+ `postgres`\n+ `sqlserver-ee`\n+ `sqlserver-se`\n+ `sqlserver-ex`\n+ `sqlserver-web`\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineName", "type": "string" }, "MajorEngineVersion": { + "markdownDescription": "Specifies the major version of the engine that this option group should be associated with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MajorEngineVersion", "type": "string" }, "OptionConfigurations": { "items": { "$ref": "#/definitions/AWS::RDS::OptionGroup.OptionConfiguration" }, + "markdownDescription": "A list of options and the settings for each option\\. \n*Required*: Conditional \n*Type*: List of [OptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-optiongroup-optionconfigurations.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OptionConfigurations", "type": "array" }, "OptionGroupDescription": { + "markdownDescription": "The description of the option group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OptionGroupDescription", "type": "string" }, "OptionGroupName": { @@ -124047,6 +152089,8 @@ "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Tags to assign to the option group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -124085,27 +152129,39 @@ "items": { "type": "string" }, + "markdownDescription": "A list of DBSecurityGroupMembership name strings used for this option\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBSecurityGroupMemberships", "type": "array" }, "OptionName": { + "markdownDescription": "The configuration of options to include in a group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OptionName", "type": "string" }, "OptionSettings": { "items": { "$ref": "#/definitions/AWS::RDS::OptionGroup.OptionSetting" }, + "markdownDescription": "The option settings to include in an option group\\. \n*Required*: No \n*Type*: List of [OptionSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-optiongroup-optionconfigurations-optionsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OptionSettings", "type": "array" }, "OptionVersion": { + "markdownDescription": "The version for the option\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OptionVersion", "type": "string" }, "Port": { + "markdownDescription": "The optional port for the option\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" }, "VpcSecurityGroupMemberships": { "items": { "type": "string" }, + "markdownDescription": "A list of VpcSecurityGroupMembership name strings used for this option\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSecurityGroupMemberships", "type": "array" } }, @@ -124118,9 +152174,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the option that has settings that you can set\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "The current value of the option setting\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -124162,21 +152222,34 @@ "additionalProperties": false, "properties": { "AppMonitorConfiguration": { - "$ref": "#/definitions/AWS::RUM::AppMonitor.AppMonitorConfiguration" + "$ref": "#/definitions/AWS::RUM::AppMonitor.AppMonitorConfiguration", + "markdownDescription": "A structure that contains much of the configuration data for the app monitor\\. If you are using Amazon Cognito for authorization, you must include this structure in your request, and it must include the ID of the Amazon Cognito identity pool to use for authorization\\. If you don't include `AppMonitorConfiguration`, you must set up your own authorization method\\. For more information, see [Authorize your application to send data to AWS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-get-started-authorization.html)\\. \nIf you omit this argument, the sample rate used for CloudWatch RUM is set to 10% of the user sessions\\. \n*Required*: No \n*Type*: [AppMonitorConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rum-appmonitor-appmonitorconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppMonitorConfiguration" + }, + "CustomEvents": { + "$ref": "#/definitions/AWS::RUM::AppMonitor.CustomEvents" }, "CwLogEnabled": { + "markdownDescription": "Data collected by CloudWatch RUM is kept by RUM for 30 days and then deleted\\. This parameter specifies whether CloudWatch RUM sends a copy of this telemetry data to Amazon CloudWatch Logs in your account\\. This enables you to keep the telemetry data for more than 30 days, but it does incur Amazon CloudWatch Logs charges\\. \nIf you omit this parameter, the default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CwLogEnabled", "type": "boolean" }, "Domain": { + "markdownDescription": "The top\\-level internet domain name for which your application has administrative authority\\. This parameter is required\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Domain", "type": "string" }, "Name": { + "markdownDescription": "A name for the app monitor\\. This parameter is required\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Assigns one or more tags \\(key\\-value pairs\\) to the app monitor\\. \nTags can help you organize and categorize your resources\\. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values\\. \nTags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters\\. \nYou can associate as many as 50 tags with an app monitor\\. \nFor more information, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -124211,33 +152284,47 @@ "additionalProperties": false, "properties": { "AllowCookies": { + "markdownDescription": "If you set this to `true`, the CloudWatch RUM web client sets two cookies, a session cookie and a user cookie\\. The cookies allow the CloudWatch RUM web client to collect data relating to the number of users an application has and the behavior of the application across a sequence of events\\. Cookies are stored in the top\\-level domain of the current page\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowCookies", "type": "boolean" }, "EnableXRay": { + "markdownDescription": "If you set this to `true`, CloudWatch RUM sends client\\-side traces to X\\-Ray for each sampled session\\. You can then see traces and segments from these user sessions in the RUM dashboard and the CloudWatch ServiceLens console\\. For more information, see [What is AWS X\\-Ray?](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableXRay", "type": "boolean" }, "ExcludedPages": { "items": { "type": "string" }, + "markdownDescription": "A list of URLs in your website or application to exclude from RUM data collection\\. \nYou can't include both `ExcludedPages` and `IncludedPages` in the same app monitor\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludedPages", "type": "array" }, "FavoritePages": { "items": { "type": "string" }, + "markdownDescription": "A list of pages in your application that are to be displayed with a \"favorite\" icon in the CloudWatch RUM console\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FavoritePages", "type": "array" }, "GuestRoleArn": { + "markdownDescription": "The ARN of the guest IAM role that is attached to the Amazon Cognito identity pool that is used to authorize the sending of data to CloudWatch RUM\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GuestRoleArn", "type": "string" }, "IdentityPoolId": { + "markdownDescription": "The ID of the Amazon Cognito identity pool that is used to authorize the sending of data to CloudWatch RUM\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentityPoolId", "type": "string" }, "IncludedPages": { "items": { "type": "string" }, + "markdownDescription": "If this app monitor is to collect data from only certain pages in your application, this structure lists those pages\\. \nYou can't include both `ExcludedPages` and `IncludedPages` in the same app monitor\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludedPages", "type": "array" }, "MetricDestinations": { @@ -124247,17 +152334,30 @@ "type": "array" }, "SessionSampleRate": { + "markdownDescription": "Specifies the portion of user sessions to use for CloudWatch RUM data collection\\. Choosing a higher portion gives you more data but also incurs more costs\\. \nThe range for this value is 0 to 1 inclusive\\. Setting this to 1 means that 100% of user sessions are sampled, and setting it to 0\\.1 means that 10% of user sessions are sampled\\. \nIf you omit this parameter, the default of 0\\.1 is used, and 10% of sessions will be sampled\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionSampleRate", "type": "number" }, "Telemetries": { "items": { "type": "string" }, + "markdownDescription": "An array that lists the types of telemetry data that this app monitor is to collect\\. \n+ `errors` indicates that RUM collects data about unhandled JavaScript errors raised by your application\\.\n+ `performance` indicates that RUM collects performance data about how your application and its resources are loaded and rendered\\. This includes Core Web Vitals\\.\n+ `http` indicates that RUM collects data about HTTP errors thrown by your application\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Telemetries", "type": "array" } }, "type": "object" }, + "AWS::RUM::AppMonitor.CustomEvents": { + "additionalProperties": false, + "properties": { + "Status": { + "type": "string" + } + }, + "type": "object" + }, "AWS::RUM::AppMonitor.MetricDefinition": { "additionalProperties": false, "properties": { @@ -124348,159 +152448,253 @@ "additionalProperties": false, "properties": { "AllowVersionUpgrade": { + "markdownDescription": "If `true`, major version upgrades can be applied during the maintenance window to the Amazon Redshift engine that is running on the cluster\\. \nWhen a new major version of the Amazon Redshift engine is released, you can request that the service automatically apply upgrades during the maintenance window to the Amazon Redshift engine that is running on your cluster\\. \nDefault: `true` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowVersionUpgrade", "type": "boolean" }, "AquaConfigurationStatus": { + "markdownDescription": "The value represents how the cluster is configured to use AQUA \\(Advanced Query Accelerator\\) when it is created\\. Possible values include the following\\. \n+ enabled \\- Use AQUA if it is available for the current AWS Region and Amazon Redshift node type\\.\n+ disabled \\- Don't use AQUA\\. \n+ auto \\- Amazon Redshift determines whether to use AQUA\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `auto | disabled | enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AquaConfigurationStatus", "type": "string" }, "AutomatedSnapshotRetentionPeriod": { + "markdownDescription": "The number of days that automated snapshots are retained\\. If the value is 0, automated snapshots are disabled\\. Even if automated snapshots are disabled, you can still create manual snapshots when you want with [CreateClusterSnapshot](https://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateClusterSnapshot.html) in the *Amazon Redshift API Reference*\\. \nDefault: `1` \nConstraints: Must be a value from 0 to 35\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutomatedSnapshotRetentionPeriod", "type": "number" }, "AvailabilityZone": { + "markdownDescription": "The EC2 Availability Zone \\(AZ\\) in which you want Amazon Redshift to provision the cluster\\. For example, if you have several EC2 instances running in a specific Availability Zone, then you might want the cluster to be provisioned in the same zone in order to decrease network latency\\. \nDefault: A random, system\\-chosen Availability Zone in the region that is specified by the endpoint\\. \nExample: `us-east-2d` \nConstraint: The specified Availability Zone must be in the same region as the current endpoint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZone", "type": "string" }, "AvailabilityZoneRelocation": { + "markdownDescription": "The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster is created\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZoneRelocation", "type": "boolean" }, "AvailabilityZoneRelocationStatus": { + "markdownDescription": "Describes the status of the Availability Zone relocation operation\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZoneRelocationStatus", "type": "string" }, "Classic": { + "markdownDescription": "A boolean value indicating whether the resize operation is using the classic resize process\\. If you don't provide this parameter or set the value to `false`, the resize type is elastic\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Classic", "type": "boolean" }, "ClusterIdentifier": { + "markdownDescription": "A unique identifier for the cluster\\. You use this identifier to refer to the cluster for any subsequent cluster operations such as deleting or modifying\\. The identifier also appears in the Amazon Redshift console\\. \nConstraints: \n+ Must contain from 1 to 63 alphanumeric characters or hyphens\\.\n+ Alphabetic characters must be lowercase\\.\n+ First character must be a letter\\.\n+ Cannot end with a hyphen or contain two consecutive hyphens\\.\n+ Must be unique for all clusters within an AWS account\\.\nExample: `myexamplecluster` \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterIdentifier", "type": "string" }, "ClusterParameterGroupName": { + "markdownDescription": "The name of the parameter group to be associated with this cluster\\. \nDefault: The default Amazon Redshift cluster parameter group\\. For information about the default parameter group, go to [Working with Amazon Redshift Parameter Groups](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html) \nConstraints: \n+ Must be 1 to 255 alphanumeric characters or hyphens\\.\n+ First character must be a letter\\.\n+ Cannot end with a hyphen or contain two consecutive hyphens\\.\n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterParameterGroupName", "type": "string" }, "ClusterSecurityGroups": { "items": { "type": "string" }, + "markdownDescription": "A list of security groups to be associated with this cluster\\. \nDefault: The default cluster security group for Amazon Redshift\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterSecurityGroups", "type": "array" }, "ClusterSubnetGroupName": { + "markdownDescription": "The name of a cluster subnet group to be associated with this cluster\\. \nIf this parameter is not provided the resulting cluster will be deployed outside virtual private cloud \\(VPC\\)\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterSubnetGroupName", "type": "string" }, "ClusterType": { + "markdownDescription": "The type of the cluster\\. When cluster type is specified as \n+ `single-node`, the **NumberOfNodes** parameter is not required\\.\n+ `multi-node`, the **NumberOfNodes** parameter is required\\.\nValid Values: `multi-node` \\| `single-node` \nDefault: `multi-node` \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterType", "type": "string" }, "ClusterVersion": { + "markdownDescription": "The version of the Amazon Redshift engine software that you want to deploy on the cluster\\. \nThe version selected runs on all the nodes in the cluster\\. \nConstraints: Only version 1\\.0 is currently available\\. \nExample: `1.0` \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterVersion", "type": "string" }, "DBName": { + "markdownDescription": "The name of the first database to be created when the cluster is created\\. \nTo create additional databases after the cluster is created, connect to the cluster with a SQL client and use SQL commands to create a database\\. For more information, go to [Create a Database](https://docs.aws.amazon.com/redshift/latest/dg/t_creating_database.html) in the Amazon Redshift Database Developer Guide\\. \nDefault: `dev` \nConstraints: \n+ Must contain 1 to 64 alphanumeric characters\\.\n+ Must contain only lowercase letters\\.\n+ Cannot be a word that is reserved by the service\\. A list of reserved words can be found in [Reserved Words](https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html) in the Amazon Redshift Database Developer Guide\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBName", "type": "string" }, "DeferMaintenance": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeferMaintenance", "type": "boolean" }, "DeferMaintenanceDuration": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeferMaintenanceDuration", "type": "number" }, "DeferMaintenanceEndTime": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeferMaintenanceEndTime", "type": "string" }, "DeferMaintenanceStartTime": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeferMaintenanceStartTime", "type": "string" }, "DestinationRegion": { + "markdownDescription": "The destination region that snapshots are automatically copied to when cross\\-region snapshot copy is enabled\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationRegion", "type": "string" }, "ElasticIp": { + "markdownDescription": "The Elastic IP \\(EIP\\) address for the cluster\\. \nConstraints: The cluster must be provisioned in EC2\\-VPC and publicly\\-accessible through an Internet gateway\\. For more information about provisioning clusters in EC2\\-VPC, go to [Supported Platforms to Launch Your Cluster](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#cluster-platforms) in the Amazon Redshift Cluster Management Guide\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticIp", "type": "string" }, "Encrypted": { + "markdownDescription": "If `true`, the data in the cluster is encrypted at rest\\. \nDefault: false \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encrypted", "type": "boolean" }, "Endpoint": { "$ref": "#/definitions/AWS::Redshift::Cluster.Endpoint" }, "EnhancedVpcRouting": { + "markdownDescription": "An option that specifies whether to create the cluster with enhanced VPC routing enabled\\. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC\\. For more information, see [Enhanced VPC Routing](https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html) in the Amazon Redshift Cluster Management Guide\\. \nIf this option is `true`, enhanced VPC routing is enabled\\. \nDefault: false \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnhancedVpcRouting", "type": "boolean" }, "HsmClientCertificateIdentifier": { + "markdownDescription": "Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HsmClientCertificateIdentifier", "type": "string" }, "HsmConfigurationIdentifier": { + "markdownDescription": "Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HsmConfigurationIdentifier", "type": "string" }, "IamRoles": { "items": { "type": "string" }, + "markdownDescription": "A list of AWS Identity and Access Management \\(IAM\\) roles that can be used by the cluster to access other AWS services\\. You must supply the IAM roles in their Amazon Resource Name \\(ARN\\) format\\. \nThe maximum number of IAM roles that you can associate is subject to a quota\\. For more information, go to [Quotas and limits](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) in the *Amazon Redshift Cluster Management Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamRoles", "type": "array" }, "KmsKeyId": { + "markdownDescription": "The AWS Key Management Service \\(KMS\\) key ID of the encryption key that you want to use to encrypt data in the cluster\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", "type": "string" }, "LoggingProperties": { - "$ref": "#/definitions/AWS::Redshift::Cluster.LoggingProperties" + "$ref": "#/definitions/AWS::Redshift::Cluster.LoggingProperties", + "markdownDescription": "Specifies logging information, such as queries and connection attempts, for the specified Amazon Redshift cluster\\. \n*Required*: No \n*Type*: [LoggingProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-cluster-loggingproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingProperties" }, "MaintenanceTrackName": { + "markdownDescription": "An optional parameter for the name of the maintenance track for the cluster\\. If you don't provide a maintenance track name, the cluster is assigned to the `current` track\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaintenanceTrackName", "type": "string" }, "ManualSnapshotRetentionPeriod": { + "markdownDescription": "The default number of days to retain a manual snapshot\\. If the value is \\-1, the snapshot is retained indefinitely\\. This setting doesn't change the retention period of existing snapshots\\. \nThe value must be either \\-1 or an integer between 1 and 3,653\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManualSnapshotRetentionPeriod", "type": "number" }, "MasterUserPassword": { + "markdownDescription": "The password associated with the admin user account for the cluster that is being created\\. \nConstraints: \n+ Must be between 8 and 64 characters in length\\.\n+ Must contain at least one uppercase letter\\.\n+ Must contain at least one lowercase letter\\.\n+ Must contain one number\\.\n+ Can be any printable ASCII character \\(ASCII code 33\\-126\\) except ' \\(single quote\\), \" \\(double quote\\), \\\\, /, or @\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MasterUserPassword", "type": "string" }, "MasterUsername": { + "markdownDescription": "The user name associated with the admin user account for the cluster that is being created\\. \nConstraints: \n+ Must be 1 \\- 128 alphanumeric characters\\. The user name can't be `PUBLIC`\\.\n+ First character must be a letter\\.\n+ Cannot be a reserved word\\. A list of reserved words can be found in [Reserved Words](https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html) in the Amazon Redshift Database Developer Guide\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MasterUsername", "type": "string" }, "NodeType": { + "markdownDescription": "The node type to be provisioned for the cluster\\. For information about node types, go to [ Working with Clusters](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes) in the *Amazon Redshift Cluster Management Guide*\\. \nValid Values: `ds2.xlarge` \\| `ds2.8xlarge` \\| `dc1.large` \\| `dc1.8xlarge` \\| `dc2.large` \\| `dc2.8xlarge` \\| `ra3.xlplus` \\| `ra3.4xlarge` \\| `ra3.16xlarge` \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NodeType", "type": "string" }, "NumberOfNodes": { + "markdownDescription": "The number of compute nodes in the cluster\\. This parameter is required when the **ClusterType** parameter is specified as `multi-node`\\. \nFor information about determining how many nodes you need, go to [ Working with Clusters](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes) in the *Amazon Redshift Cluster Management Guide*\\. \nIf you don't specify this parameter, you get a single\\-node cluster\\. When requesting a multi\\-node cluster, you must specify the number of nodes that you want in the cluster\\. \nDefault: `1` \nConstraints: Value must be at least 1 and no more than 100\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfNodes", "type": "number" }, "OwnerAccount": { + "markdownDescription": "The AWS account used to create or copy the snapshot\\. Required if you are restoring a snapshot you do not own, optional if you own the snapshot\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OwnerAccount", "type": "string" }, "Port": { + "markdownDescription": "The port number on which the cluster accepts incoming connections\\. \nThe cluster is accessible only via the JDBC and ODBC connection strings\\. Part of the connection string requires the port on which the cluster will listen for incoming connections\\. \nDefault: `5439` \nValid Values: `1150-65535` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "number" }, "PreferredMaintenanceWindow": { + "markdownDescription": "The weekly time range \\(in UTC\\) during which automated cluster maintenance can occur\\. \n Format: `ddd:hh24:mi-ddd:hh24:mi` \n Default: A 30\\-minute window selected at random from an 8\\-hour block of time per region, occurring on a random day of the week\\. For more information about the time blocks for each region, see [Maintenance Windows](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-maintenance-windows) in Amazon Redshift Cluster Management Guide\\. \nValid Days: Mon \\| Tue \\| Wed \\| Thu \\| Fri \\| Sat \\| Sun \nConstraints: Minimum 30\\-minute window\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", "type": "string" }, "PubliclyAccessible": { + "markdownDescription": "If `true`, the cluster can be accessed from a public network\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PubliclyAccessible", "type": "boolean" }, "ResourceAction": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceAction", "type": "string" }, "RevisionTarget": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RevisionTarget", "type": "string" }, "RotateEncryptionKey": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RotateEncryptionKey", "type": "boolean" }, "SnapshotClusterIdentifier": { + "markdownDescription": "The name of the cluster the source snapshot was created from\\. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than \\* for the cluster name\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotClusterIdentifier", "type": "string" }, "SnapshotCopyGrantName": { + "markdownDescription": "The name of the snapshot copy grant\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotCopyGrantName", "type": "string" }, "SnapshotCopyManual": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotCopyManual", "type": "boolean" }, "SnapshotCopyRetentionPeriod": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotCopyRetentionPeriod", "type": "number" }, "SnapshotIdentifier": { + "markdownDescription": "The name of the snapshot from which to create the new cluster\\. This parameter isn't case sensitive\\. \nExample: `my-snapshot-id` \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotIdentifier", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of tag instances\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VpcSecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "A list of Virtual Private Cloud \\(VPC\\) security groups to be associated with the cluster\\. \nDefault: The default VPC security group is associated with the cluster\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSecurityGroupIds", "type": "array" } }, @@ -124538,9 +152732,13 @@ "additionalProperties": false, "properties": { "Address": { + "markdownDescription": "The DNS address of the Cluster\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Address", "type": "string" }, "Port": { + "markdownDescription": "The port that the database engine is listening on\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "string" } }, @@ -124550,9 +152748,13 @@ "additionalProperties": false, "properties": { "BucketName": { + "markdownDescription": "The name of an existing S3 bucket where the log files are to be stored\\. \nConstraints: \n+ Must be in the same region as the cluster\n+ The cluster must have read bucket and put object permissions\n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", "type": "string" }, "S3KeyPrefix": { + "markdownDescription": "The prefix applied to the log file names\\. \nConstraints: \n+ Cannot exceed 512 characters\n+ Cannot contain spaces\\( \\), double quotes \\(\"\\), single quotes \\('\\), a backslash \\(\\\\\\), or control characters\\. The hexadecimal codes for invalid characters are: \n + x00 to x20\n + x22\n + x27\n + x5c\n + x7f or larger\n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3KeyPrefix", "type": "string" } }, @@ -124597,21 +152799,29 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the parameter group\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "ParameterGroupFamily": { + "markdownDescription": "The name of the cluster parameter group family that this cluster parameter group is compatible with\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ParameterGroupFamily", "type": "string" }, "Parameters": { "items": { "$ref": "#/definitions/AWS::Redshift::ClusterParameterGroup.Parameter" }, + "markdownDescription": "An array of parameters to be modified\\. A maximum of 20 parameters can be modified in a single request\\. \nFor each parameter to be modified, you must supply at least the parameter name and parameter value; other name\\-value pairs of the parameter are optional\\. \nFor the workload management \\(WLM\\) configuration, you must supply all the name\\-value pairs in the wlm\\_json\\_configuration parameter\\. \n*Required*: No \n*Type*: List of [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-property-redshift-clusterparametergroup-parameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The list of tags for the cluster parameter group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -124646,9 +152856,13 @@ "additionalProperties": false, "properties": { "ParameterName": { + "markdownDescription": "The name of the parameter\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterName", "type": "string" }, "ParameterValue": { + "markdownDescription": "The value of the parameter\\. If `ParameterName` is `wlm_json_configuration`, then the maximum size of `ParameterValue` is 8000 characters\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterValue", "type": "string" } }, @@ -124694,12 +152908,16 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description for the security group\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Specifies an arbitrary set of tags \\(key\u2013value pairs\\) to associate with this security group\\. Use tags to manage your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -124765,15 +152983,23 @@ "additionalProperties": false, "properties": { "CIDRIP": { + "markdownDescription": "The IP range to be added the Amazon Redshift security group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CIDRIP", "type": "string" }, "ClusterSecurityGroupName": { + "markdownDescription": "The name of the security group to which the ingress rule is added\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterSecurityGroupName", "type": "string" }, "EC2SecurityGroupName": { + "markdownDescription": "The EC2 security group to be added the Amazon Redshift security group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EC2SecurityGroupName", "type": "string" }, "EC2SecurityGroupOwnerId": { + "markdownDescription": "The AWS account number of the owner of the security group specified by the *EC2SecurityGroupName* parameter\\. The AWS Access Key ID is not an acceptable value\\. \nExample: `111122223333` \nConditional\\. If you specify the `EC2SecurityGroupName` property, you must specify this property\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EC2SecurityGroupOwnerId", "type": "string" } }, @@ -124839,18 +153065,24 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description for the subnet group\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "An array of VPC subnet IDs\\. A maximum of 20 subnets can be modified in a single request\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Specifies an arbitrary set of tags \\(key\u2013value pairs\\) to associate with this subnet group\\. Use tags to manage your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -124917,30 +153149,31 @@ "additionalProperties": false, "properties": { "ClusterIdentifier": { + "markdownDescription": "The cluster identifier of the cluster associated with the endpoint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterIdentifier", "type": "string" }, "EndpointName": { + "markdownDescription": "The name of the endpoint\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EndpointName", "type": "string" }, "ResourceOwner": { + "markdownDescription": "The AWS account ID of the owner of the cluster\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceOwner", "type": "string" }, "SubnetGroupName": { + "markdownDescription": "The subnet group name where Amazon Redshift chooses to deploy the endpoint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetGroupName", "type": "string" }, - "VpcEndpoint": { - "$ref": "#/definitions/AWS::Redshift::EndpointAccess.VpcEndpoint" - }, "VpcSecurityGroupIds": { "items": { "type": "string" }, - "type": "array" - }, - "VpcSecurityGroups": { - "items": { - "$ref": "#/definitions/AWS::Redshift::EndpointAccess.VpcSecurityGroup" - }, + "markdownDescription": "The security group that defines the ports, protocols, and sources for inbound traffic that you are authorizing into your endpoint\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSecurityGroupIds", "type": "array" } }, @@ -125013,9 +153246,13 @@ "additionalProperties": false, "properties": { "Status": { + "markdownDescription": "The status of the endpoint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" }, "VpcSecurityGroupId": { + "markdownDescription": "The identifier of the VPC security group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSecurityGroupId", "type": "string" } }, @@ -125057,18 +153294,26 @@ "additionalProperties": false, "properties": { "Account": { + "markdownDescription": "The AAWS account ID of either the cluster owner \\(grantor\\) or grantee\\. If `Grantee` parameter is true, then the `Account` value is of the grantor\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Account", "type": "string" }, "ClusterIdentifier": { + "markdownDescription": "The cluster identifier\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterIdentifier", "type": "string" }, "Force": { + "markdownDescription": "Indicates whether to force the revoke action\\. If true, the Redshift\\-managed VPC endpoints associated with the endpoint authorization are also deleted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Force", "type": "boolean" }, "VpcIds": { "items": { "type": "string" }, + "markdownDescription": "The virtual private cloud \\(VPC\\) identifiers to grant access to\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcIds", "type": "array" } }, @@ -125135,36 +153380,52 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "A boolean value; set to `true` to activate the subscription, and set to `false` to create the subscription but not activate it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "EventCategories": { "items": { "type": "string" }, + "markdownDescription": "Specifies the Amazon Redshift event categories to be published by the event notification subscription\\. \nValues: configuration, management, monitoring, security, pending \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventCategories", "type": "array" }, "Severity": { + "markdownDescription": "Specifies the Amazon Redshift event severity to be published by the event notification subscription\\. \nValues: ERROR, INFO \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Severity", "type": "string" }, "SnsTopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic used to transmit the event notifications\\. The ARN is created by Amazon SNS when you create a topic and subscribe to it\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsTopicArn", "type": "string" }, "SourceIds": { "items": { "type": "string" }, + "markdownDescription": "A list of one or more identifiers of Amazon Redshift source objects\\. All of the objects must be of the same type as was specified in the source type parameter\\. The event subscription will return only events generated by the specified objects\\. If not specified, then events are returned for all objects within the source type specified\\. \nExample: my\\-cluster\\-1, my\\-cluster\\-2 \nExample: my\\-snapshot\\-20131010 \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceIds", "type": "array" }, "SourceType": { + "markdownDescription": "The type of source that will be generating the events\\. For example, if you want to be notified of events generated by a cluster, you would set this parameter to cluster\\. If this value is not specified, events are returned for all Amazon Redshift objects in your AWS account\\. You must specify a source type in order to specify source IDs\\. \nValid values: cluster, cluster\\-parameter\\-group, cluster\\-security\\-group, cluster\\-snapshot, and scheduled\\-action\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceType", "type": "string" }, "SubscriptionName": { + "markdownDescription": "The name of the event subscription to be created\\. \nConstraints: \n+ Cannot be null, empty, or blank\\.\n+ Must contain from 1 to 255 alphanumeric characters or hyphens\\.\n+ First character must be a letter\\.\n+ Cannot end with a hyphen or contain two consecutive hyphens\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubscriptionName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of tag instances\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -125230,28 +153491,44 @@ "additionalProperties": false, "properties": { "Enable": { + "markdownDescription": "If true, the schedule is enabled\\. If false, the scheduled action does not trigger\\. For more information about `state` of the scheduled action, see [AWS::Redshift::ScheduledAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-resource-redshift-scheduledaction.html#aws-resource-redshift-scheduledaction)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enable", "type": "boolean" }, "EndTime": { + "markdownDescription": "The end time in UTC when the schedule is no longer active\\. After this time, the scheduled action does not trigger\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndTime", "type": "string" }, "IamRole": { + "markdownDescription": "The IAM role to assume to run the scheduled action\\. This IAM role must have permission to run the Amazon Redshift API operation in the scheduled action\\. This IAM role must allow the Amazon Redshift scheduler \\(Principal scheduler\\.redshift\\.amazonaws\\.com\\) to assume permissions on your behalf\\. For more information about the IAM role to use with the Amazon Redshift scheduler, see [Using Identity\\-Based Policies for Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html) in the *Amazon Redshift Cluster Management Guide*\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamRole", "type": "string" }, "Schedule": { + "markdownDescription": "The schedule for a one\\-time \\(at format\\) or recurring \\(cron format\\) scheduled action\\. Schedule invocations must be separated by at least one hour\\. \nFormat of at expressions is \"`at(yyyy-mm-ddThh:mm:ss)`\"\\. For example, \"`at(2016-03-04T17:27:00)`\"\\. \nFormat of cron expressions is \"`cron(Minutes Hours Day-of-month Month Day-of-week Year)`\"\\. For example, \"`cron(0 10 ? * MON *)`\"\\. For more information, see [Cron Expressions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions) in the *Amazon CloudWatch Events User Guide*\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule", "type": "string" }, "ScheduledActionDescription": { + "markdownDescription": "The description of the scheduled action\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduledActionDescription", "type": "string" }, "ScheduledActionName": { + "markdownDescription": "The name of the scheduled action\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScheduledActionName", "type": "string" }, "StartTime": { + "markdownDescription": "The start time in UTC when the schedule is active\\. Before this time, the scheduled action does not trigger\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartTime", "type": "string" }, "TargetAction": { - "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ScheduledActionType" + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ScheduledActionType", + "markdownDescription": "A JSON format string of the Amazon Redshift API operation with input parameters\\. \n\"`{\\\"ResizeCluster\\\":{\\\"NodeType\\\":\\\"ds2.8xlarge\\\",\\\"ClusterIdentifier\\\":\\\"my-test-cluster\\\",\\\"NumberOfNodes\\\":3}}`\"\\. \n*Required*: No \n*Type*: [ScheduledActionType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-scheduledactiontype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetAction" } }, "required": [ @@ -125284,6 +153561,8 @@ "additionalProperties": false, "properties": { "ClusterIdentifier": { + "markdownDescription": "The identifier of the cluster to be paused\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterIdentifier", "type": "string" } }, @@ -125296,18 +153575,28 @@ "additionalProperties": false, "properties": { "Classic": { + "markdownDescription": "A boolean value indicating whether the resize operation is using the classic resize process\\. If you don't provide this parameter or set the value to `false`, the resize type is elastic\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Classic", "type": "boolean" }, "ClusterIdentifier": { + "markdownDescription": "The unique identifier for the cluster to resize\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterIdentifier", "type": "string" }, "ClusterType": { + "markdownDescription": "The new cluster type for the specified cluster\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterType", "type": "string" }, "NodeType": { + "markdownDescription": "The new node type for the nodes you are adding\\. If not specified, the cluster's current node type is used\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NodeType", "type": "string" }, "NumberOfNodes": { + "markdownDescription": "The new number of nodes for the cluster\\. If not specified, the cluster's current number of nodes is used\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfNodes", "type": "number" } }, @@ -125320,6 +153609,8 @@ "additionalProperties": false, "properties": { "ClusterIdentifier": { + "markdownDescription": "The identifier of the cluster to be resumed\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterIdentifier", "type": "string" } }, @@ -125332,13 +153623,19 @@ "additionalProperties": false, "properties": { "PauseCluster": { - "$ref": "#/definitions/AWS::Redshift::ScheduledAction.PauseClusterMessage" + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.PauseClusterMessage", + "markdownDescription": "An action that runs a `PauseCluster` API operation\\. \n*Required*: No \n*Type*: [PauseClusterMessage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-pauseclustermessage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PauseCluster" }, "ResizeCluster": { - "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResizeClusterMessage" + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResizeClusterMessage", + "markdownDescription": "An action that runs a `ResizeCluster` API operation\\. \n*Required*: No \n*Type*: [ResizeClusterMessage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-resizeclustermessage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResizeCluster" }, "ResumeCluster": { - "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResumeClusterMessage" + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResumeClusterMessage", + "markdownDescription": "An action that runs a `ResumeCluster` API operation\\. \n*Required*: No \n*Type*: [ResumeClusterMessage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-resumeclustermessage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResumeCluster" } }, "type": "object" @@ -125379,48 +153676,67 @@ "additionalProperties": false, "properties": { "AdminUserPassword": { + "markdownDescription": "The password of the administrator for the primary database created in the namespace\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdminUserPassword", "type": "string" }, "AdminUsername": { + "markdownDescription": "The username of the administrator for the primary database created in the namespace\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdminUsername", "type": "string" }, "DbName": { + "markdownDescription": "The name of the primary database created in the namespace\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DbName", "type": "string" }, "DefaultIamRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role to set as a default in the namespace\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultIamRoleArn", "type": "string" }, "FinalSnapshotName": { + "markdownDescription": "The name of the snapshot to be created before the namespace is deleted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FinalSnapshotName", "type": "string" }, "FinalSnapshotRetentionPeriod": { + "markdownDescription": "How long to retain the final snapshot\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FinalSnapshotRetentionPeriod", "type": "number" }, "IamRoles": { "items": { "type": "string" }, + "markdownDescription": "A list of IAM roles to associate with the namespace\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamRoles", "type": "array" }, "KmsKeyId": { + "markdownDescription": "The ID of the AWS Key Management Service key used to encrypt your data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", "type": "string" }, "LogExports": { "items": { "type": "string" }, + "markdownDescription": "The types of logs the namespace can export\\. Available export types are `userlog`, `connectionlog`, and `useractivitylog`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogExports", "type": "array" }, - "Namespace": { - "$ref": "#/definitions/AWS::RedshiftServerless::Namespace.Namespace" - }, "NamespaceName": { + "markdownDescription": "The name of the namespace\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NamespaceName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The map of the key\\-value pairs used to tag the namespace\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -125531,45 +153847,63 @@ "additionalProperties": false, "properties": { "BaseCapacity": { + "markdownDescription": "The base compute capacity of the workgroup in Redshift Processing Units \\(RPUs\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaseCapacity", "type": "number" }, "ConfigParameters": { "items": { "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup.ConfigParameter" }, + "markdownDescription": "A list of parameters to set for finer control over a database\\. Available options are `datestyle`, `enable_user_activity_logging`, `query_group`, `search_path`, and `max_query_execution_time`\\. \n*Required*: No \n*Type*: List of [ConfigParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshiftserverless-workgroup-configparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfigParameters", "type": "array" }, "EnhancedVpcRouting": { + "markdownDescription": "The value that specifies whether to enable enhanced virtual private cloud \\(VPC\\) routing, which forces Amazon Redshift Serverless to route traffic through your VPC\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnhancedVpcRouting", "type": "boolean" }, "NamespaceName": { + "markdownDescription": "The namespace the workgroup is associated with\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NamespaceName", "type": "string" }, + "Port": { + "type": "number" + }, "PubliclyAccessible": { + "markdownDescription": "A value that specifies whether the workgroup can be accessible from a public network\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PubliclyAccessible", "type": "boolean" }, "SecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "A list of security group IDs to associate with the workgroup\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "A list of subnet IDs the workgroup is associated with\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The map of the key\\-value pairs used to tag the workgroup\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, - "Workgroup": { - "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup.Workgroup" - }, "WorkgroupName": { + "markdownDescription": "The name of the workgroup\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WorkgroupName", "type": "string" } }, @@ -125603,9 +153937,13 @@ "additionalProperties": false, "properties": { "ParameterKey": { + "markdownDescription": "The key of the parameter\\. The options are `datestyle`, `enable_user_activity_logging`, `query_group`, `search_path`, and `max_query_execution_time`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterKey", "type": "string" }, "ParameterValue": { + "markdownDescription": "The value of the parameter to set\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterValue", "type": "string" } }, @@ -125755,24 +154093,36 @@ "additionalProperties": false, "properties": { "ApiGatewayProxy": { - "$ref": "#/definitions/AWS::RefactorSpaces::Application.ApiGatewayProxyInput" + "$ref": "#/definitions/AWS::RefactorSpaces::Application.ApiGatewayProxyInput", + "markdownDescription": "The endpoint URL of the Amazon API Gateway proxy\\. \n*Required*: No \n*Type*: [ApiGatewayProxyInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-refactorspaces-application-apigatewayproxyinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiGatewayProxy" }, "EnvironmentIdentifier": { + "markdownDescription": "The unique identifier of the environment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnvironmentIdentifier", "type": "string" }, "Name": { + "markdownDescription": "The name of the application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "ProxyType": { + "markdownDescription": "The proxy type of the proxy created within the application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProxyType", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags assigned to the application\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VpcId": { + "markdownDescription": "The ID of the virtual private cloud \\(VPC\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -125802,9 +154152,13 @@ "additionalProperties": false, "properties": { "EndpointType": { + "markdownDescription": "The type of endpoint to use for the API Gateway proxy\\. If no value is specified in the request, the value is set to `REGIONAL` by default\\. \nIf the value is set to `PRIVATE` in the request, this creates a private API endpoint that is isolated from the public internet\\. The private endpoint can only be accessed by using Amazon Virtual Private Cloud \\(Amazon VPC\\) endpoints for Amazon API Gateway that have been granted access\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EndpointType", "type": "string" }, "StageName": { + "markdownDescription": "The name of the API Gateway stage\\. The name defaults to `prod`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StageName", "type": "string" } }, @@ -125846,18 +154200,26 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the environment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name of the environment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "NetworkFabricType": { + "markdownDescription": "The network fabric type of the environment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkFabricType", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags assigned to the environment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -125919,28 +154281,40 @@ "additionalProperties": false, "properties": { "ApplicationIdentifier": { + "markdownDescription": "The unique identifier of the application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationIdentifier", "type": "string" }, "DefaultRoute": { "$ref": "#/definitions/AWS::RefactorSpaces::Route.DefaultRouteInput" }, "EnvironmentIdentifier": { + "markdownDescription": "The unique identifier of the environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnvironmentIdentifier", "type": "string" }, "RouteType": { + "markdownDescription": "The route type of the route\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RouteType", "type": "string" }, "ServiceIdentifier": { + "markdownDescription": "The unique identifier of the service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceIdentifier", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags assigned to the route\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "UriPathRoute": { - "$ref": "#/definitions/AWS::RefactorSpaces::Route.UriPathRouteInput" + "$ref": "#/definitions/AWS::RefactorSpaces::Route.UriPathRouteInput", + "markdownDescription": "The configuration for the URI path route type\\. \n*Required*: No \n*Type*: [UriPathRouteInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-refactorspaces-route-uripathrouteinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UriPathRoute" } }, "required": [ @@ -125987,18 +154361,26 @@ "additionalProperties": false, "properties": { "ActivationState": { + "markdownDescription": "Indicates whether traffic is forwarded to this route\u2019s service after the route is created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ActivationState", "type": "string" }, "IncludeChildPaths": { + "markdownDescription": "Indicates whether to match all subpaths of the given source path\\. If this value is `false`, requests must match the source path exactly before they are forwarded to this route's service\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IncludeChildPaths", "type": "boolean" }, "Methods": { "items": { "type": "string" }, + "markdownDescription": "A list of HTTP methods to match\\. An empty list matches all values\\. If a method is present, only HTTP requests using that method are forwarded to this route\u2019s service\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Methods", "type": "array" }, "SourcePath": { + "markdownDescription": "The path to use to match traffic\\. Paths must start with `/` and are relative to the base of the application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourcePath", "type": "string" } }, @@ -126043,33 +154425,51 @@ "additionalProperties": false, "properties": { "ApplicationIdentifier": { + "markdownDescription": "The unique identifier of the application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationIdentifier", "type": "string" }, "Description": { + "markdownDescription": "A description of the service\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "EndpointType": { + "markdownDescription": "The endpoint type of the service\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EndpointType", "type": "string" }, "EnvironmentIdentifier": { + "markdownDescription": "The unique identifier of the environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnvironmentIdentifier", "type": "string" }, "LambdaEndpoint": { - "$ref": "#/definitions/AWS::RefactorSpaces::Service.LambdaEndpointInput" + "$ref": "#/definitions/AWS::RefactorSpaces::Service.LambdaEndpointInput", + "markdownDescription": "A summary of the configuration for the AWS Lambda endpoint type\\. \n*Required*: No \n*Type*: [LambdaEndpointInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-refactorspaces-service-lambdaendpointinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LambdaEndpoint" }, "Name": { + "markdownDescription": "The name of the service\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags assigned to the service\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "UrlEndpoint": { - "$ref": "#/definitions/AWS::RefactorSpaces::Service.UrlEndpointInput" + "$ref": "#/definitions/AWS::RefactorSpaces::Service.UrlEndpointInput", + "markdownDescription": "The summary of the configuration for the URL endpoint type\\. \n*Required*: No \n*Type*: [UrlEndpointInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-refactorspaces-service-urlendpointinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UrlEndpoint" }, "VpcId": { + "markdownDescription": "The ID of the virtual private cloud \\(VPC\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -126104,6 +154504,8 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Lambda endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Arn", "type": "string" } }, @@ -126116,9 +154518,13 @@ "additionalProperties": false, "properties": { "HealthUrl": { + "markdownDescription": "The health check URL of the URL endpoint type\\. If the URL is a public endpoint, the `HealthUrl` must also be a public endpoint\\. If the URL is a private endpoint inside a virtual private cloud \\(VPC\\), the health URL must also be a private endpoint, and the host must be the same as the URL\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HealthUrl", "type": "string" }, "Url": { + "markdownDescription": "The URL to route traffic to\\. The URL must be an [rfc3986\\-formatted URL](https://datatracker.ietf.org/doc/html/rfc3986)\\. If the host is a domain name, the name must be resolvable over the public internet\\. If the scheme is `https`, the top level domain of the host must be listed in the [IANA root zone database](https://www.iana.org/domains/root/db)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Url", "type": "string" } }, @@ -126163,12 +154569,16 @@ "additionalProperties": false, "properties": { "CollectionId": { + "markdownDescription": "ID for the collection that you are creating\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.\\-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CollectionId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A set of tags \\(key\\-value pairs\\) that you want to attach to the collection\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -126234,6 +154644,8 @@ "additionalProperties": false, "properties": { "ProjectName": { + "markdownDescription": "The name of the project to create\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.\\-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProjectName", "type": "string" } }, @@ -126530,30 +154942,42 @@ "type": "string" }, "AppTemplateBody": { + "markdownDescription": "A string containing a full Resilience Hub app template body\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppTemplateBody", "type": "string" }, "Description": { + "markdownDescription": "The optional description for an app\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name for the application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "ResiliencyPolicyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the resiliency policy\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResiliencyPolicyArn", "type": "string" }, "ResourceMappings": { "items": { "$ref": "#/definitions/AWS::ResilienceHub::App.ResourceMapping" }, + "markdownDescription": "An array of ResourceMapping objects\\. \n*Required*: Yes \n*Type*: List of [ResourceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resiliencehub-app-resourcemapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceMappings", "type": "array" }, "Tags": { "additionalProperties": true, + "markdownDescription": "The tags assigned to the resource\\. A tag is a label that you assign to an AWS resource\\. Each tag consists of a key/value pair\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" } }, @@ -126589,15 +155013,23 @@ "additionalProperties": false, "properties": { "AwsAccountId": { + "markdownDescription": "The AWS account that owns the physical resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsAccountId", "type": "string" }, "AwsRegion": { + "markdownDescription": "The AWS Region that the physical resource is located in\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsRegion", "type": "string" }, "Identifier": { + "markdownDescription": "The identifier of the physical resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Identifier", "type": "string" }, "Type": { + "markdownDescription": "Specifies the type of physical resource identifier\\. \nArn \nThe resource identifier is an Amazon Resource Name \\(ARN\\) \\. \nNative \nThe resource identifier is a Resilience Hub\\-native identifier\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -126611,15 +155043,23 @@ "additionalProperties": false, "properties": { "LogicalStackName": { + "markdownDescription": "The name of the CloudFormation stack this resource is mapped to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogicalStackName", "type": "string" }, "MappingType": { + "markdownDescription": "Specifies the type of resource mapping\\. \nAppRegistryApp \nThe resource is mapped to another application\\. The name of the application is contained in the `appRegistryAppName` property\\. \nCfnStack \nThe resource is mapped to a CloudFormation stack\\. The name of the CloudFormation stack is contained in the `logicalStackName` property\\. \nResource \nThe resource is mapped to another resource\\. The name of the resource is contained in the `resourceName` property\\. \nResourceGroup \nThe resource is mapped to a resource group\\. The name of the resource group is contained in the `resourceGroupName` property\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MappingType", "type": "string" }, "PhysicalResourceId": { - "$ref": "#/definitions/AWS::ResilienceHub::App.PhysicalResourceId" + "$ref": "#/definitions/AWS::ResilienceHub::App.PhysicalResourceId", + "markdownDescription": "The identifier of this resource\\. \n*Required*: Yes \n*Type*: [PhysicalResourceId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resiliencehub-app-physicalresourceid.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PhysicalResourceId" }, "ResourceName": { + "markdownDescription": "The name of the resource this resource is mapped to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceName", "type": "string" }, "TerraformSourceName": { @@ -126668,33 +155108,45 @@ "additionalProperties": false, "properties": { "DataLocationConstraint": { + "markdownDescription": "Specifies a high\\-level geographical location constraint for where your resilience policy data can be stored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataLocationConstraint", "type": "string" }, "Policy": { "additionalProperties": false, + "markdownDescription": "The resiliency policy\\. \n*Required*: Yes \n*Type*: Map of [FailurePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resiliencehub-resiliencypolicy-failurepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::ResilienceHub::ResiliencyPolicy.FailurePolicy" } }, + "title": "Policy", "type": "object" }, "PolicyDescription": { + "markdownDescription": "The description for the policy\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDescription", "type": "string" }, "PolicyName": { + "markdownDescription": "The name of the policy \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyName", "type": "string" }, "Tags": { "additionalProperties": true, + "markdownDescription": "The tags assigned to the resource\\. A tag is a label that you assign to an AWS resource\\. Each tag consists of a key/value pair\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" }, "Tier": { + "markdownDescription": "The tier for this resiliency policy, ranging from the highest severity \\(`MissionCritical`\\) to lowest \\(`NonCritical`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tier", "type": "string" } }, @@ -126730,9 +155182,13 @@ "additionalProperties": false, "properties": { "RpoInSecs": { + "markdownDescription": "The Recovery Point Objective \\(RPO\\), in seconds\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RpoInSecs", "type": "number" }, "RtoInSecs": { + "markdownDescription": "The Recovery Time Objective \\(RTO\\), in seconds\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RtoInSecs", "type": "number" } }, @@ -127027,27 +155483,39 @@ "items": { "$ref": "#/definitions/AWS::ResourceGroups::Group.ConfigurationItem" }, + "markdownDescription": "The service configuration currently associated with the resource group and in effect for the members of the resource group\\. A `Configuration` consists of one or more `ConfigurationItem` entries\\. For information about service configurations for resource groups and how to construct them, see [Service configurations for resource groups](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html) in the *AWS Resource Groups User Guide*\\. \nYou can include either a `Configuration` or a `ResourceQuery`, but not both\\.\n*Required*: Conditional \n*Type*: List of [ConfigurationItem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-configurationitem.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configuration", "type": "array" }, "Description": { + "markdownDescription": "The description of the resource group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name of a resource group\\. The name must be unique within the AWS Region in which you create the resource\\. To create multiple resource groups based on the same CloudFormation stack, you must generate unique names for each\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "ResourceQuery": { - "$ref": "#/definitions/AWS::ResourceGroups::Group.ResourceQuery" + "$ref": "#/definitions/AWS::ResourceGroups::Group.ResourceQuery", + "markdownDescription": "The resource query structure that is used to dynamically determine which AWS resources are members of the associated resource group\\. For more information about queries and how to construct them, see [Build queries and groups in AWS Resource Groups](https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html) in the *AWS Resource Groups User Guide* \n+ You can include either a `ResourceQuery` or a `Configuration`, but not both\\.\n+ You can specify the group's membership either by using a `ResourceQuery` or by using a list of `Resources`, but not both\\.\n*Required*: Conditional \n*Type*: [ResourceQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-resourcequery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceQuery" }, "Resources": { "items": { "type": "string" }, + "markdownDescription": "A list of the Amazon Resource Names \\(ARNs\\) of AWS resources that you want to add to the specified group\\. \n+ You can specify the group membership either by using a list of `Resources` or by using a `ResourceQuery`, but not both\\.\n+ You can include a `Resources` property only if you also specify a `Configuration` property\\.\n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Resources", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tag key and value pairs that are attached to the resource group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -127084,9 +155552,13 @@ "items": { "$ref": "#/definitions/AWS::ResourceGroups::Group.ConfigurationParameter" }, + "markdownDescription": "A collection of parameters for this configuration item\\. For the list of parameters that you can use with each configuration item `Type`, see [Supported resource types and parameters](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types) in the *AWS Resource Groups User Guide*\\. \n*Required*: No \n*Type*: List of [ConfigurationParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-configurationparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "array" }, "Type": { + "markdownDescription": "Specifies the type of configuration item\\. Each item must have a unique value for type\\. For the list of the types that you can specify for a configuration item, see [Supported resource types and parameters](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types) in the *AWS Resource Groups User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -127096,12 +155568,16 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the group configuration parameter\\. For the list of parameters that you can use with each configuration item type, see [Supported resource types and parameters](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types) in the *AWS Resource Groups User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "The value or values to be used for the specified parameter\\. For the list of values you can use with each parameter, see [Supported resource types and parameters](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -127114,15 +155590,21 @@ "items": { "type": "string" }, + "markdownDescription": "Specifies limits to the types of resources that can be included in the resource group\\. For example, if `ResourceTypeFilters` is `[\"AWS::EC2::Instance\", \"AWS::DynamoDB::Table\"]`, only EC2 instances or DynamoDB tables can be members of this resource group\\. The default value is `[\"AWS::AllSupported\"]`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceTypeFilters", "type": "array" }, "StackIdentifier": { + "markdownDescription": "Specifies the ARN of a CloudFormation stack\\. All supported resources of the CloudFormation stack are members of the resource group\\. If you don't specify an ARN, this parameter defaults to the current stack that you are defining, which means that all the resources of the current stack are grouped\\. \nYou can specify a value for `StackIdentifier` only when the `ResourceQuery.Type` property is `CLOUDFORMATION_STACK_1_0.` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StackIdentifier", "type": "string" }, "TagFilters": { "items": { "$ref": "#/definitions/AWS::ResourceGroups::Group.TagFilter" }, + "markdownDescription": "A list of key\\-value pair objects that limit which resources can be members of the resource group\\. This property is required when the `ResourceQuery.Type` property is `TAG_FILTERS_1_0`\\. \nA resource must have a tag that matches every filter that is provided in the `TagFilters` list\\. \n*Required*: Conditional \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagFilters", "type": "array" } }, @@ -127132,9 +155614,13 @@ "additionalProperties": false, "properties": { "Query": { - "$ref": "#/definitions/AWS::ResourceGroups::Group.Query" + "$ref": "#/definitions/AWS::ResourceGroups::Group.Query", + "markdownDescription": "The query that defines the membership of the group\\. This is a structure with properties that depend on the `Type`\\. \nThe `Query` structure must be included in the following scenarios: \n+ When the `Type` is `TAG_FILTERS_1_0`, you must specify a `Query` structure that contains a `TagFilters` list of tags\\. Resources with tags that match those in the `TagFilter` list become members of the resource group\\.\n+ When the `Type` is `CLOUDFORMATION_STACK_1_0` then this field is required only when you must specify a CloudFormation stack other than the one you are defining\\. To do this, the `Query` structure must contain the `StackIdentifier` property\\. If you don't specify either a `Query` structure or a `StackIdentifier` within that `Query`, then it defaults to the CloudFormation stack that you're currently constructing\\.\n*Required*: No \n*Type*: [Query](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-query.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Query" }, "Type": { + "markdownDescription": "Specifies the type of resource query that determines this group's membership\\. There are two valid query types: \n+ `TAG_FILTERS_1_0` indicates that the group is a tag\\-based group\\. To complete the group membership, you must include the `TagFilters` property to specify the tag filters to use in the query\\.\n+ `CLOUDFORMATION_STACK_1_0`, the default, indicates that the group is a CloudFormation stack\\-based group\\. Group membership is based on the CloudFormation stack\\. You must specify the `StackIdentifier` property in the query to define which stack to associate the group with, or leave it empty to default to the stack where the group is defined\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -127144,12 +155630,16 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "A string that defines a tag key\\. Only resources in the account that are tagged with a specified tag key are members of the tag\\-based resource group\\. \nThis field is required when the `ResourceQuery` structure's `Type` property is `TAG_FILTERS_1_0`\\. You must specify at least one tag key\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "A list of tag values that can be included in the tag\\-based resource group\\. This is optional\\. If you don't specify a value or values for a key, then an AWS resource with any value for that key is a member\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -127191,15 +155681,19 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the fleet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "additionalProperties": true, + "markdownDescription": "The list of all tags added to the fleet\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" } }, @@ -127261,24 +155755,34 @@ "additionalProperties": false, "properties": { "Architecture": { + "markdownDescription": "The architecture of the robot\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ARM64 | ARMHF | X86_64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Architecture", "type": "string" }, "Fleet": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the fleet to which the robot will be registered\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Fleet", "type": "string" }, "GreengrassGroupId": { + "markdownDescription": "The Greengrass group associated with the robot\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1224` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GreengrassGroupId", "type": "string" }, "Name": { + "markdownDescription": "The name of the robot\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "additionalProperties": true, + "markdownDescription": "A map that contains tag keys and tag values that are attached to the robot\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" } }, @@ -127345,30 +155849,42 @@ "additionalProperties": false, "properties": { "CurrentRevisionId": { + "markdownDescription": "The current revision id\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CurrentRevisionId", "type": "string" }, "Environment": { + "markdownDescription": "The environment of the robot application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Environment", "type": "string" }, "Name": { + "markdownDescription": "The name of the robot application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RobotSoftwareSuite": { - "$ref": "#/definitions/AWS::RoboMaker::RobotApplication.RobotSoftwareSuite" + "$ref": "#/definitions/AWS::RoboMaker::RobotApplication.RobotSoftwareSuite", + "markdownDescription": "The robot software suite \\(ROS distribuition\\) used by the robot application\\. \n*Required*: Yes \n*Type*: [RobotSoftwareSuite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-robotsoftwaresuite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RobotSoftwareSuite" }, "Sources": { "items": { "$ref": "#/definitions/AWS::RoboMaker::RobotApplication.SourceConfig" }, + "markdownDescription": "The sources of the robot application\\. \n*Required*: No \n*Type*: List of [SourceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-sourceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sources", "type": "array" }, "Tags": { "additionalProperties": true, + "markdownDescription": "A map that contains tag keys and tag values that are attached to the robot application\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" } }, @@ -127402,9 +155918,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the robot software suite \\(ROS distribution\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `General | ROS | ROS2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Version": { + "markdownDescription": "The version of the robot software suite \\(ROS distribution\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Dashing | Foxy | Kinetic | Melodic` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -127417,12 +155937,18 @@ "additionalProperties": false, "properties": { "Architecture": { + "markdownDescription": "The target processor architecture for the application\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ARM64 | ARMHF | X86_64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Architecture", "type": "string" }, "S3Bucket": { + "markdownDescription": "The Amazon S3 bucket name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `[a-z0-9][a-z0-9.\\-]*[a-z0-9]` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Bucket", "type": "string" }, "S3Key": { + "markdownDescription": "The s3 object key\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Key", "type": "string" } }, @@ -127469,9 +155995,13 @@ "additionalProperties": false, "properties": { "Application": { + "markdownDescription": "The application information for the robot application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1224` \n*Pattern*: `arn:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Application", "type": "string" }, "CurrentRevisionId": { + "markdownDescription": "The current revision id for the robot application\\. If you provide a value and it matches the latest revision ID, a new version will be created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `40` \n*Pattern*: `[a-zA-Z0-9_.\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CurrentRevisionId", "type": "string" } }, @@ -127537,36 +156067,52 @@ "additionalProperties": false, "properties": { "CurrentRevisionId": { + "markdownDescription": "The current revision id\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CurrentRevisionId", "type": "string" }, "Environment": { + "markdownDescription": "The environment of the simulation application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Environment", "type": "string" }, "Name": { + "markdownDescription": "The name of the simulation application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RenderingEngine": { - "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.RenderingEngine" + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.RenderingEngine", + "markdownDescription": "The rendering engine for the simulation application\\. \n*Required*: No \n*Type*: [RenderingEngine](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-renderingengine.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RenderingEngine" }, "RobotSoftwareSuite": { - "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.RobotSoftwareSuite" + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.RobotSoftwareSuite", + "markdownDescription": "The robot software suite \\(ROS distribution\\) used by the simulation application\\. \n*Required*: Yes \n*Type*: [RobotSoftwareSuite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-robotsoftwaresuite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RobotSoftwareSuite" }, "SimulationSoftwareSuite": { - "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.SimulationSoftwareSuite" + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.SimulationSoftwareSuite", + "markdownDescription": "The simulation software suite used by the simulation application\\. \n*Required*: Yes \n*Type*: [SimulationSoftwareSuite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-simulationsoftwaresuite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SimulationSoftwareSuite" }, "Sources": { "items": { "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.SourceConfig" }, + "markdownDescription": "The sources of the simulation application\\. \n*Required*: No \n*Type*: List of [SourceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-sourceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sources", "type": "array" }, "Tags": { "additionalProperties": true, + "markdownDescription": "A map that contains tag keys and tag values that are attached to the simulation application\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Tags", "type": "object" } }, @@ -127601,9 +156147,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the rendering engine\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `OGRE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Version": { + "markdownDescription": "The version of the rendering engine\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4` \n*Pattern*: `1.x` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -127617,9 +156167,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the robot software suite \\(ROS distribution\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `General | ROS | ROS2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Version": { + "markdownDescription": "The version of the robot software suite \\(ROS distribution\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Dashing | Foxy | Kinetic | Melodic` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -127632,9 +156186,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the simulation software suite\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Gazebo | RosbagPlay | SimulationRuntime` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Version": { + "markdownDescription": "The version of the simulation software suite\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `7|9|11|Kinetic|Melodic|Dashing|Foxy` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -127647,12 +156205,18 @@ "additionalProperties": false, "properties": { "Architecture": { + "markdownDescription": "The target processor architecture for the application\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ARM64 | ARMHF | X86_64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Architecture", "type": "string" }, "S3Bucket": { + "markdownDescription": "The Amazon S3 bucket name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `[a-z0-9][a-z0-9.\\-]*[a-z0-9]` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Bucket", "type": "string" }, "S3Key": { + "markdownDescription": "The s3 object key\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Key", "type": "string" } }, @@ -127699,9 +156263,13 @@ "additionalProperties": false, "properties": { "Application": { + "markdownDescription": "The application information for the simulation application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1224` \n*Pattern*: `arn:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Application", "type": "string" }, "CurrentRevisionId": { + "markdownDescription": "The current revision id for the simulation application\\. If you provide a value and it matches the latest revision ID, a new version will be created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `40` \n*Pattern*: `[a-zA-Z0-9_.\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CurrentRevisionId", "type": "string" } }, @@ -127785,6 +156353,10 @@ "type": "string" } }, + "required": [ + "CrlData", + "Name" + ], "type": "object" }, "Type": { @@ -127803,7 +156375,8 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -127876,6 +156449,10 @@ "type": "array" } }, + "required": [ + "Name", + "RoleArns" + ], "type": "object" }, "Type": { @@ -127894,7 +156471,8 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -127949,6 +156527,10 @@ "type": "array" } }, + "required": [ + "Name", + "Source" + ], "type": "object" }, "Type": { @@ -127967,7 +156549,8 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, @@ -128121,6 +156704,8 @@ "additionalProperties": false, "properties": { "HostedZoneId": { + "markdownDescription": "A unique string \\(ID\\) that is used to identify a hosted zone\\. For example: `Z00001111A1ABCaaABC11`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostedZoneId", "type": "string" } }, @@ -128186,12 +156771,16 @@ "additionalProperties": false, "properties": { "HealthCheckConfig": { - "$ref": "#/definitions/AWS::Route53::HealthCheck.HealthCheckConfig" + "$ref": "#/definitions/AWS::Route53::HealthCheck.HealthCheckConfig", + "markdownDescription": "A complex type that contains detailed information about one health check\\. \nFor the values to enter for `HealthCheckConfig`, see [HealthCheckConfig](https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html) \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckConfig" }, "HealthCheckTags": { "items": { "$ref": "#/definitions/AWS::Route53::HealthCheck.HealthCheckTag" }, + "markdownDescription": "The `HealthCheckTags` property describes key\\-value pairs that are associated with an `AWS::Route53::HealthCheck` resource\\. \n*Required*: No \n*Type*: List of [HealthCheckTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthchecktag.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckTags", "type": "array" } }, @@ -128307,9 +156896,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The value of `Key` depends on the operation that you want to perform: \n+ **Add a tag to a health check or hosted zone**: `Key` is the name that you want to give the new tag\\.\n+ **Edit a tag**: `Key` is the name of the tag that you want to change the `Value` for\\.\n+ ** Delete a key**: `Key` is the name of the tag you want to remove\\.\n+ **Give a name to a health check**: Edit the default `Name` tag\\. In the Amazon Route 53 console, the list of your health checks includes a **Name** column that lets you see the name that you've given to each health check\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The value of `Value` depends on the operation that you want to perform: \n+ **Add a tag to a health check or hosted zone**: `Value` is the value that you want to give the new tag\\.\n+ **Edit a tag**: `Value` is the new value that you want to assign the tag\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -128355,24 +156948,34 @@ "additionalProperties": false, "properties": { "HostedZoneConfig": { - "$ref": "#/definitions/AWS::Route53::HostedZone.HostedZoneConfig" + "$ref": "#/definitions/AWS::Route53::HostedZone.HostedZoneConfig", + "markdownDescription": "A complex type that contains an optional comment\\. \nIf you don't want to specify a comment, omit the `HostedZoneConfig` and `Comment` elements\\. \n*Required*: No \n*Type*: [HostedZoneConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzoneconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostedZoneConfig" }, "HostedZoneTags": { "items": { "$ref": "#/definitions/AWS::Route53::HostedZone.HostedZoneTag" }, + "markdownDescription": "Adds, edits, or deletes tags for a health check or a hosted zone\\. \nFor information about using tags for cost allocation, see [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) in the * AWS Billing and Cost Management User Guide*\\. \n*Required*: No \n*Type*: List of [HostedZoneTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzonetag.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostedZoneTags", "type": "array" }, "Name": { + "markdownDescription": "The name of the domain\\. Specify a fully qualified domain name, for example, *www\\.example\\.com*\\. The trailing dot is optional; Amazon Route 53 assumes that the domain name is fully qualified\\. This means that Route 53 treats *www\\.example\\.com* \\(without a trailing dot\\) and *www\\.example\\.com\\.* \\(with a trailing dot\\) as identical\\. \nIf you're creating a public hosted zone, this is the name you have registered with your DNS registrar\\. If your domain name is registered with a registrar other than Route 53, change the name servers for your domain to the set of `NameServers` that are returned by the `Fn::GetAtt` intrinsic function\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "QueryLoggingConfig": { - "$ref": "#/definitions/AWS::Route53::HostedZone.QueryLoggingConfig" + "$ref": "#/definitions/AWS::Route53::HostedZone.QueryLoggingConfig", + "markdownDescription": "Creates a configuration for DNS query logging\\. After you create a query logging configuration, Amazon Route 53 begins to publish log data to an Amazon CloudWatch Logs log group\\. \nDNS query logs contain information about the queries that Route 53 receives for a specified public hosted zone, such as the following: \n+ Route 53 edge location that responded to the DNS query\n+ Domain or subdomain that was requested\n+ DNS record type, such as A or AAAA\n+ DNS response code, such as `NoError` or `ServFail` \nLog Group and Resource Policy \nBefore you create a query logging configuration, perform the following operations\\. \nIf you create a query logging configuration using the Route 53 console, Route 53 performs these operations automatically\\.", + "title": "QueryLoggingConfig" }, "VPCs": { "items": { "$ref": "#/definitions/AWS::Route53::HostedZone.VPC" }, + "markdownDescription": "*Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone\\. \nFor public hosted zones, omit `VPCs`, `VPCId`, and `VPCRegion`\\.\n*Required*: No \n*Type*: List of [VPC](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-vpc.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VPCs", "type": "array" } }, @@ -128402,6 +157005,8 @@ "additionalProperties": false, "properties": { "Comment": { + "markdownDescription": "Any comments that you want to include about the hosted zone\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", "type": "string" } }, @@ -128411,9 +157016,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The value of `Key` depends on the operation that you want to perform: \n+ **Add a tag to a health check or hosted zone**: `Key` is the name that you want to give the new tag\\.\n+ **Edit a tag**: `Key` is the name of the tag that you want to change the `Value` for\\.\n+ ** Delete a key**: `Key` is the name of the tag you want to remove\\.\n+ **Give a name to a health check**: Edit the default `Name` tag\\. In the Amazon Route 53 console, the list of your health checks includes a **Name** column that lets you see the name that you've given to each health check\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The value of `Value` depends on the operation that you want to perform: \n+ **Add a tag to a health check or hosted zone**: `Value` is the value that you want to give the new tag\\.\n+ **Edit a tag**: `Value` is the new value that you want to assign the tag\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -128427,6 +157036,8 @@ "additionalProperties": false, "properties": { "CloudWatchLogsLogGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the CloudWatch Logs log group that Amazon Route 53 is publishing logs to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogsLogGroupArn", "type": "string" } }, @@ -128439,9 +157050,13 @@ "additionalProperties": false, "properties": { "VPCId": { + "markdownDescription": "*Private hosted zones only:* The ID of an Amazon VPC\\. \nFor public hosted zones, omit `VPCs`, `VPCId`, and `VPCRegion`\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VPCId", "type": "string" }, "VPCRegion": { + "markdownDescription": "*Private hosted zones only:* The region that an Amazon VPC was created in\\. \nFor public hosted zones, omit `VPCs`, `VPCId`, and `VPCRegion`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `af-south-1 | ap-east-1 | ap-northeast-1 | ap-northeast-2 | ap-northeast-3 | ap-south-1 | ap-southeast-1 | ap-southeast-2 | ap-southeast-3 | ca-central-1 | cn-north-1 | eu-central-1 | eu-north-1 | eu-south-1 | eu-west-1 | eu-west-2 | eu-west-3 | me-south-1 | sa-east-1 | us-east-1 | us-east-2 | us-gov-east-1 | us-gov-west-1 | us-iso-east-1 | us-iso-west-1 | us-isob-east-1 | us-west-1 | us-west-2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VPCRegion", "type": "string" } }, @@ -128487,15 +157102,23 @@ "additionalProperties": false, "properties": { "HostedZoneId": { + "markdownDescription": "The unique string \\(ID\\) that is used to identify a hosted zone\\. For example: `Z00001111A1ABCaaABC11`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostedZoneId", "type": "string" }, "KeyManagementServiceArn": { + "markdownDescription": "The Amazon resource name \\(ARN\\) for a customer managed customer master key \\(CMK\\) in AWS Key Management Service \\(AWS KMS \\)\\. The `KeyManagementServiceArn` must be unique for each key\\-signing key \\(KSK\\) in a single hosted zone\\. For example: `arn:aws:kms:us-east-1:111122223333:key/111a2222-a11b-1ab1-2ab2-1ab21a2b3a111`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyManagementServiceArn", "type": "string" }, "Name": { + "markdownDescription": "A string used to identify a key\\-signing key \\(KSK\\)\\. `Name` can include numbers, letters, and underscores \\(\\_\\)\\. `Name` must be unique for each key\\-signing key in the same hosted zone\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Status": { + "markdownDescription": "A string that represents the current key\\-signing key \\(KSK\\) status\\. \nStatus can have one of the following values: \nACTIVE \nThe KSK is being used for signing\\. \nINACTIVE \nThe KSK is not being used for signing\\. \nDELETING \nThe KSK is in the process of being deleted\\. \nACTION\\_NEEDED \nThere is a problem with the KSK that requires you to take action to resolve\\. For example, the customer managed key might have been deleted, or the permissions for the customer managed key might have been changed\\. \nINTERNAL\\_FAILURE \nThere was an error during a request\\. Before you can continue to work with DNSSEC signing, including actions that involve this KSK, you must correct the problem\\. For example, you may need to activate or deactivate the KSK\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `5` \n*Maximum*: `150` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" } }, @@ -128564,54 +157187,84 @@ "additionalProperties": false, "properties": { "AliasTarget": { - "$ref": "#/definitions/AWS::Route53::RecordSet.AliasTarget" + "$ref": "#/definitions/AWS::Route53::RecordSet.AliasTarget", + "markdownDescription": "*Alias resource record sets only:* Information about the AWS resource, such as a CloudFront distribution or an Amazon S3 bucket, that you want to route traffic to\\. \nIf you're creating resource records sets for a private hosted zone, note the following: \n+ You can't create an alias resource record set in a private hosted zone to route traffic to a CloudFront distribution\\.\n+ Creating geolocation alias resource record sets or latency alias resource record sets in a private hosted zone is unsupported\\.\n+ For information about creating failover resource record sets in a private hosted zone, see [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) in the *Amazon Route 53 Developer Guide*\\.\n*Required*: No \n*Type*: [AliasTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget-1.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AliasTarget" }, "CidrRoutingConfig": { "$ref": "#/definitions/AWS::Route53::RecordSet.CidrRoutingConfig" }, "Comment": { + "markdownDescription": "*Optional:* Any comments you want to include about a change batch request\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", "type": "string" }, "Failover": { + "markdownDescription": "*Failover resource record sets only:* To configure failover, you add the `Failover` element to two resource record sets\\. For one resource record set, you specify `PRIMARY` as the value for `Failover`; for the other resource record set, you specify `SECONDARY`\\. In addition, you include the `HealthCheckId` element and specify the health check that you want Amazon Route 53 to perform for each resource record set\\. \nExcept where noted, the following failover behaviors assume that you have included the `HealthCheckId` element in both resource record sets: \n+ When the primary resource record set is healthy, Route 53 responds to DNS queries with the applicable value from the primary resource record set regardless of the health of the secondary resource record set\\.\n+ When the primary resource record set is unhealthy and the secondary resource record set is healthy, Route 53 responds to DNS queries with the applicable value from the secondary resource record set\\.\n+ When the secondary resource record set is unhealthy, Route 53 responds to DNS queries with the applicable value from the primary resource record set regardless of the health of the primary resource record set\\.\n+ If you omit the `HealthCheckId` element for the secondary resource record set, and if the primary resource record set is unhealthy, Route 53 always responds to DNS queries with the applicable value from the secondary resource record set\\. This is true regardless of the health of the associated endpoint\\.\nYou can't create non\\-failover resource record sets that have the same values for the `Name` and `Type` elements as failover resource record sets\\. \nFor failover alias resource record sets, you must also include the `EvaluateTargetHealth` element and set the value to true\\. \nFor more information about configuring failover for Route 53, see the following topics in the *Amazon Route 53 Developer Guide*: \n+ [Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) \n+ [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) \n*Required*: No \n*Type*: String \n*Allowed values*: `PRIMARY | SECONDARY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Failover", "type": "string" }, "GeoLocation": { - "$ref": "#/definitions/AWS::Route53::RecordSet.GeoLocation" + "$ref": "#/definitions/AWS::Route53::RecordSet.GeoLocation", + "markdownDescription": "*Geolocation resource record sets only:* A complex type that lets you control how Amazon Route 53 responds to DNS queries based on the geographic origin of the query\\. For example, if you want all queries from Africa to be routed to a web server with an IP address of `192.0.2.111`, create a resource record set with a `Type` of `A` and a `ContinentCode` of `AF`\\. \nAlthough creating geolocation and geolocation alias resource record sets in a private hosted zone is allowed, it's not supported\\.\nIf you create separate resource record sets for overlapping geographic regions \\(for example, one resource record set for a continent and one for a country on the same continent\\), priority goes to the smallest geographic region\\. This allows you to route most queries for a continent to one resource and to route queries for a country on that continent to a different resource\\. \nYou can't create two geolocation resource record sets that specify the same geographic location\\. \nThe value `*` in the `CountryCode` element matches all geographic locations that aren't specified in other geolocation resource record sets that have the same values for the `Name` and `Type` elements\\. \nGeolocation works by mapping IP addresses to locations\\. However, some IP addresses aren't mapped to geographic locations, so even if you create geolocation resource record sets that cover all seven continents, Route 53 will receive some DNS queries from locations that it can't identify\\. We recommend that you create a resource record set for which the value of `CountryCode` is `*`\\. Two groups of queries are routed to the resource that you specify in this record: queries that come from locations for which you haven't created geolocation resource record sets and queries from IP addresses that aren't mapped to a location\\. If you don't create a `*` resource record set, Route 53 returns a \"no answer\" response for queries from those locations\\.\nYou can't create non\\-geolocation resource record sets that have the same values for the `Name` and `Type` elements as geolocation resource record sets\\. \n*Required*: No \n*Type*: [GeoLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation-1.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GeoLocation" }, "HealthCheckId": { + "markdownDescription": "If you want Amazon Route 53 to return this resource record set in response to a DNS query only when the status of a health check is healthy, include the `HealthCheckId` element and specify the ID of the applicable health check\\. \nRoute 53 determines whether a resource record set is healthy based on one of the following: \n+ By periodically sending a request to the endpoint that is specified in the health check\n+ By aggregating the status of a specified group of health checks \\(calculated health checks\\)\n+ By determining the current state of a CloudWatch alarm \\(CloudWatch metric health checks\\)\nRoute 53 doesn't check the health of the endpoint that is specified in the resource record set, for example, the endpoint specified by the IP address in the `Value` element\\. When you add a `HealthCheckId` element to a resource record set, Route 53 checks the health of the endpoint that you specified in the health check\\. \nFor more information, see the following topics in the *Amazon Route 53 Developer Guide*: \n+ [How Amazon Route 53 Determines Whether an Endpoint Is Healthy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html) \n+ [Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) \n+ [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) \n **When to Specify HealthCheckId** \nSpecifying a value for `HealthCheckId` is useful only when Route 53 is choosing between two or more resource record sets to respond to a DNS query, and you want Route 53 to base the choice in part on the status of a health check\\. Configuring health checks makes sense only in the following configurations: \n+ **Non\\-alias resource record sets**: You're checking the health of a group of non\\-alias resource record sets that have the same routing policy, name, and type \\(such as multiple weighted records named www\\.example\\.com with a type of A\\) and you specify health check IDs for all the resource record sets\\.", + "title": "HealthCheckId", "type": "string" }, "HostedZoneId": { + "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*Required*: No \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostedZoneId", "type": "string" }, "HostedZoneName": { + "markdownDescription": "The name of the hosted zone that you want to create records in\\. You must include a trailing dot \\(for example, `www.example.com.`\\) as part of the `HostedZoneName`\\. \nWhen you create a stack using an AWS::Route53::RecordSet that specifies `HostedZoneName`, AWS CloudFormation attempts to find a hosted zone whose name matches the HostedZoneName\\. If AWS CloudFormation cannot find a hosted zone with a matching domain name, or if there is more than one hosted zone with the specified domain name, AWS CloudFormation will not create the stack\\. \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*Required*: No \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostedZoneName", "type": "string" }, "MultiValueAnswer": { + "markdownDescription": "*Multivalue answer resource record sets only*: To route traffic approximately randomly to multiple resources, such as web servers, create one multivalue answer record for each resource and specify `true` for `MultiValueAnswer`\\. Note the following: \n+ If you associate a health check with a multivalue answer resource record set, Amazon Route 53 responds to DNS queries with the corresponding IP address only when the health check is healthy\\.\n+ If you don't associate a health check with a multivalue answer record, Route 53 always considers the record to be healthy\\.\n+ Route 53 responds to DNS queries with up to eight healthy records; if you have eight or fewer healthy records, Route 53 responds to all DNS queries with all the healthy records\\.\n+ If you have more than eight healthy records, Route 53 responds to different DNS resolvers with different combinations of healthy records\\.\n+ When all records are unhealthy, Route 53 responds to DNS queries with up to eight unhealthy records\\.\n+ If a resource becomes unavailable after a resolver caches a response, client software typically tries another of the IP addresses in the response\\.\nYou can't create multivalue answer alias records\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MultiValueAnswer", "type": "boolean" }, "Name": { + "markdownDescription": "For `ChangeResourceRecordSets` requests, the name of the record that you want to create, update, or delete\\. For `ListResourceRecordSets` responses, the name of a record in the specified hosted zone\\. \n **ChangeResourceRecordSets Only** \nEnter a fully qualified domain name, for example, `www.example.com`\\. You can optionally include a trailing dot\\. If you omit the trailing dot, Amazon Route 53 assumes that the domain name that you specify is fully qualified\\. This means that Route 53 treats `www.example.com` \\(without a trailing dot\\) and `www.example.com.` \\(with a trailing dot\\) as identical\\. \nFor information about how to specify characters other than `a-z`, `0-9`, and `-` \\(hyphen\\) and how to specify internationalized domain names, see [DNS Domain Name Format](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html) in the *Amazon Route 53 Developer Guide*\\. \nYou can use the asterisk \\(\\*\\) wildcard to replace the leftmost label in a domain name, for example, `*.example.com`\\. Note the following: \n+ The \\* must replace the entire label\\. For example, you can't specify `*prod.example.com` or `prod*.example.com`\\.\n+ The \\* can't replace any of the middle labels, for example, marketing\\.\\*\\.example\\.com\\.\n+ If you include \\* in any position other than the leftmost label in a domain name, DNS treats it as an \\* character \\(ASCII 42\\), not as a wildcard\\.\n**Important** \nYou can't use the \\* wildcard for resource records sets that have a type of NS\\.\nYou can use the \\* wildcard as the leftmost label in a domain name, for example, `*.example.com`\\. You can't use an \\* for one of the middle labels, for example, `marketing.*.example.com`\\. In addition, the \\* must replace the entire label; for example, you can't specify `prod*.example.com`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Region": { + "markdownDescription": "*Latency\\-based resource record sets only:* The Amazon EC2 Region where you created the resource that this resource record set refers to\\. The resource typically is an AWS resource, such as an EC2 instance or an ELB load balancer, and is referred to by an IP address or a DNS domain name, depending on the record type\\. \nAlthough creating latency and latency alias resource record sets in a private hosted zone is allowed, it's not supported\\.\nWhen Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region\\. Route 53 then returns the value that is associated with the selected resource record set\\. \nNote the following: \n+ You can only specify one `ResourceRecord` per latency resource record set\\.\n+ You can only create one latency resource record set for each Amazon EC2 Region\\.\n+ You aren't required to create latency resource record sets for all Amazon EC2 Regions\\. Route 53 will choose the region with the best latency from among the regions that you create latency resource record sets for\\.\n+ You can't create non\\-latency resource record sets that have the same values for the `Name` and `Type` elements as latency resource record sets\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `af-south-1 | ap-east-1 | ap-northeast-1 | ap-northeast-2 | ap-northeast-3 | ap-south-1 | ap-southeast-1 | ap-southeast-2 | ap-southeast-3 | ca-central-1 | cn-north-1 | cn-northwest-1 | eu-central-1 | eu-north-1 | eu-south-1 | eu-west-1 | eu-west-2 | eu-west-3 | me-south-1 | sa-east-1 | us-east-1 | us-east-2 | us-west-1 | us-west-2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", "type": "string" }, "ResourceRecords": { "items": { "type": "string" }, + "markdownDescription": "One or more values that correspond with the value that you specified for the `Type` property\\. For example, if you specified `A` for `Type`, you specify one or more IP addresses in IPv4 format for `ResourceRecords`\\. For information about the format of values for each record type, see [Supported DNS Resource Record Types](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html) in the *Amazon Route 53 Developer Guide*\\. \nNote the following: \n+ You can specify more than one value for all record types except CNAME and SOA\\.\n+ The maximum length of a value is 4000 characters\\.\n+ If you're creating an alias record, omit `ResourceRecords`\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceRecords", "type": "array" }, "SetIdentifier": { + "markdownDescription": "*Resource record sets that have a routing policy other than simple:* An identifier that differentiates among multiple resource record sets that have the same combination of name and type, such as multiple weighted resource record sets named acme\\.example\\.com that have a type of A\\. In a group of resource record sets that have the same name and type, the value of `SetIdentifier` must be unique for each resource record set\\. \nFor information about routing policies, see [Choosing a Routing Policy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html) in the *Amazon Route 53 Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SetIdentifier", "type": "string" }, "TTL": { + "markdownDescription": "The resource record cache time to live \\(TTL\\), in seconds\\. Note the following: \n+ If you're creating or updating an alias resource record set, omit `TTL`\\. Amazon Route 53 uses the value of `TTL` for the alias target\\. \n+ If you're associating this resource record set with a health check \\(if you're adding a `HealthCheckId` element\\), we recommend that you specify a `TTL` of 60 seconds or less so clients respond quickly to changes in health status\\.\n+ All of the resource record sets in a group of weighted resource record sets must have the same value for `TTL`\\.\n+ If a group of weighted resource record sets includes one or more weighted alias resource record sets for which the alias target is an ELB load balancer, we recommend that you specify a `TTL` of 60 seconds for all of the non\\-alias weighted resource record sets that have the same name and type\\. Values other than 60 seconds \\(the TTL for load balancers\\) will change the effect of the values that you specify for `Weight`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TTL", "type": "string" }, "Type": { + "markdownDescription": "The DNS record type\\. For information about different record types and how data is encoded for them, see [Supported DNS Resource Record Types](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html) in the *Amazon Route 53 Developer Guide*\\. \nValid values for basic resource record sets: `A` \\| `AAAA` \\| `CAA` \\| `CNAME` \\| `DS` \\|`MX` \\| `NAPTR` \\| `NS` \\| `PTR` \\| `SOA` \\| `SPF` \\| `SRV` \\| `TXT` \nValues for weighted, latency, geolocation, and failover resource record sets: `A` \\| `AAAA` \\| `CAA` \\| `CNAME` \\| `MX` \\| `NAPTR` \\| `PTR` \\| `SPF` \\| `SRV` \\| `TXT`\\. When creating a group of weighted, latency, geolocation, or failover resource record sets, specify the same value for all of the resource record sets in the group\\. \nValid values for multivalue answer resource record sets: `A` \\| `AAAA` \\| `MX` \\| `NAPTR` \\| `PTR` \\| `SPF` \\| `SRV` \\| `TXT` \nSPF records were formerly used to verify the identity of the sender of email messages\\. However, we no longer recommend that you create resource record sets for which the value of `Type` is `SPF`\\. RFC 7208, *Sender Policy Framework \\(SPF\\) for Authorizing Use of Domains in Email, Version 1*, has been updated to say, \"\\.\\.\\.\\[I\\]ts existence and mechanism defined in \\[RFC4408\\] have led to some interoperability issues\\. Accordingly, its use is no longer appropriate for SPF version 1; implementations are not to use it\\.\" In RFC 7208, see section 14\\.1, [The SPF DNS Record Type](http://tools.ietf.org/html/rfc7208#section-14.1)\\.\nValues for alias resource record sets: \n+ **Amazon API Gateway custom regional APIs and edge\\-optimized APIs:** `A` \n+ **CloudFront distributions:** `A`", + "title": "Type", "type": "string" }, "Weight": { + "markdownDescription": "*Weighted resource record sets only:* Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set\\. Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type\\. Route 53 then responds to queries based on the ratio of a resource's weight to the total\\. Note the following: \n+ You must specify a value for the `Weight` element for every weighted resource record set\\.\n+ You can only specify one `ResourceRecord` per weighted resource record set\\.\n+ You can't create latency, failover, or geolocation resource record sets that have the same values for the `Name` and `Type` elements as weighted resource record sets\\.\n+ You can create a maximum of 100 weighted resource record sets that have the same values for the `Name` and `Type` elements\\.\n+ For weighted \\(but not weighted alias\\) resource record sets, if you set `Weight` to `0` for a resource record set, Route 53 never responds to queries with the applicable value for that resource record set\\. However, if you set `Weight` to `0` for all resource record sets that have the same combination of DNS name and type, traffic is routed to all resources with equal probability\\.", + "title": "Weight", "type": "number" } }, @@ -128646,12 +157299,18 @@ "additionalProperties": false, "properties": { "DNSName": { + "markdownDescription": "*Alias records only:* The value that you specify depends on where you want to route queries: \nAmazon API Gateway custom regional APIs and edge\\-optimized APIs \nSpecify the applicable domain name for your API\\. You can get the applicable value using the AWS CLI command [get\\-domain\\-names](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html): \n+ For regional APIs, specify the value of `regionalDomainName`\\.\n+ For edge\\-optimized APIs, specify the value of `distributionDomainName`\\. This is the name of the associated CloudFront distribution, such as `da1b2c3d4e5.cloudfront.net`\\.\nThe name of the record that you're creating must match a custom domain name for your API, such as `api.example.com`\\. \nAmazon Virtual Private Cloud interface VPC endpoint \nEnter the API endpoint for the interface endpoint, such as `vpce-123456789abcdef01-example-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com`\\. For edge\\-optimized APIs, this is the domain name for the corresponding CloudFront distribution\\. You can get the value of `DnsName` using the AWS CLI command [describe\\-vpc\\-endpoints](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html)\\. \nCloudFront distribution \nSpecify the domain name that CloudFront assigned when you created your distribution\\. \nYour CloudFront distribution must include an alternate domain name that matches the name of the record\\. For example, if the name of the record is *acme\\.example\\.com*, your CloudFront distribution must include *acme\\.example\\.com* as one of the alternate domain names\\. For more information, see [Using Alternate Domain Names \\(CNAMEs\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html) in the *Amazon CloudFront Developer Guide*\\. \nYou can't create a record in a private hosted zone to route traffic to a CloudFront distribution\\. \nFor failover alias records, you can't specify a CloudFront distribution for both the primary and secondary records\\. A distribution must include an alternate domain name that matches the name of the record\\. However, the primary and secondary records have the same name, and you can't include the same alternate domain name in more than one distribution\\. \nElastic Beanstalk environment \nIf the domain name for your Elastic Beanstalk environment includes the region that you deployed the environment in, you can create an alias record that routes traffic to the environment\\. For example, the domain name `my-environment.us-west-2.elasticbeanstalk.com` is a regionalized domain name\\. \nFor environments that were created before early 2016, the domain name doesn't include the region\\. To route traffic to these environments, you must create a CNAME record instead of an alias record\\. Note that you can't create a CNAME record for the root domain name\\. For example, if your domain name is example\\.com, you can create a record that routes traffic for acme\\.example\\.com to your Elastic Beanstalk environment, but you can't create a record that routes traffic for example\\.com to your Elastic Beanstalk environment\\.\nFor Elastic Beanstalk environments that have regionalized subdomains, specify the `CNAME` attribute for the environment\\. You can use the following methods to get the value of the CNAME attribute: \n+ *AWS Management Console*: For information about how to get the value by using the console, see [Using Custom Domains with AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html) in the *AWS Elastic Beanstalk Developer Guide*\\.\n+ *Elastic Beanstalk API*: Use the `DescribeEnvironments` action to get the value of the `CNAME` attribute\\. For more information, see [DescribeEnvironments](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html) in the *AWS Elastic Beanstalk API Reference*\\.\n+ *AWS CLI*: Use the `describe-environments` command to get the value of the `CNAME` attribute\\. For more information, see [describe\\-environments](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html) in the *AWS CLI*\\. \nELB load balancer \nSpecify the DNS name that is associated with the load balancer\\. Get the DNS name by using the AWS Management Console, the ELB API, or the AWS CLI\\. \n+ **AWS Management Console**: Go to the EC2 page, choose **Load Balancers** in the navigation pane, choose the load balancer, choose the **Description** tab, and get the value of the **DNS name** field\\.", + "title": "DNSName", "type": "string" }, "EvaluateTargetHealth": { + "markdownDescription": "*Applies only to alias, failover alias, geolocation alias, latency alias, and weighted alias resource record sets:* When `EvaluateTargetHealth` is `true`, an alias resource record set inherits the health of the referenced AWS resource, such as an ELB load balancer or another resource record set in the hosted zone\\. \nNote the following: \nCloudFront distributions \nYou can't set `EvaluateTargetHealth` to `true` when the alias target is a CloudFront distribution\\. \nElastic Beanstalk environments that have regionalized subdomains \nIf you specify an Elastic Beanstalk environment in `DNSName` and the environment contains an ELB load balancer, Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer\\. \\(An environment automatically contains an ELB load balancer if it includes more than one Amazon EC2 instance\\.\\) If you set `EvaluateTargetHealth` to `true` and either no Amazon EC2 instances are healthy or the load balancer itself is unhealthy, Route 53 routes queries to other available resources that are healthy, if any\\. \nIf the environment contains a single Amazon EC2 instance, there are no special requirements\\. \nELB load balancers \nHealth checking behavior depends on the type of load balancer: \n+ **Classic Load Balancers**: If you specify an ELB Classic Load Balancer in `DNSName`, Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer\\. If you set `EvaluateTargetHealth` to `true` and either no EC2 instances are healthy or the load balancer itself is unhealthy, Route 53 routes queries to other resources\\.\n+ **Application and Network Load Balancers**: If you specify an ELB Application or Network Load Balancer and you set `EvaluateTargetHealth` to `true`, Route 53 routes queries to the load balancer based on the health of the target groups that are associated with the load balancer:\n + For an Application or Network Load Balancer to be considered healthy, every target group that contains targets must contain at least one healthy target\\. If any target group contains only unhealthy targets, the load balancer is considered unhealthy, and Route 53 routes queries to other resources\\.\n + A target group that has no registered targets is considered unhealthy\\.\nWhen you create a load balancer, you configure settings for Elastic Load Balancing health checks; they're not Route 53 health checks, but they perform a similar function\\. Do not create Route 53 health checks for the EC2 instances that you register with an ELB load balancer\\. \nS3 buckets \nThere are no special requirements for setting `EvaluateTargetHealth` to `true` when the alias target is an S3 bucket\\. \nOther records in the same hosted zone \nIf the AWS resource that you specify in `DNSName` is a record or a group of records \\(for example, a group of weighted records\\) but is not another alias record, we recommend that you associate a health check with all of the records in the alias target\\. For more information, see [What Happens When You Omit Health Checks?](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-complex-configs.html#dns-failover-complex-configs-hc-omitting) in the *Amazon Route 53 Developer Guide*\\.\nFor more information and examples, see [Amazon Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) in the *Amazon Route 53 Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EvaluateTargetHealth", "type": "boolean" }, "HostedZoneId": { + "markdownDescription": "*Alias resource records sets only*: The value used depends on where you want to route traffic: \nAmazon API Gateway custom regional APIs and edge\\-optimized APIs \nSpecify the hosted zone ID for your API\\. You can get the applicable value using the AWS CLI command [get\\-domain\\-names](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html): \n+ For regional APIs, specify the value of `regionalHostedZoneId`\\.\n+ For edge\\-optimized APIs, specify the value of `distributionHostedZoneId`\\. \nAmazon Virtual Private Cloud interface VPC endpoint \nSpecify the hosted zone ID for your interface endpoint\\. You can get the value of `HostedZoneId` using the AWS CLI command [describe\\-vpc\\-endpoints](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html)\\. \nCloudFront distribution \nSpecify `Z2FDTNDATAQYW2`\\. This is always the hosted zone ID when you create an alias record that routes traffic to a CloudFront distribution\\. \nAlias records for CloudFront can't be created in a private zone\\. \nElastic Beanstalk environment \nSpecify the hosted zone ID for the region that you created the environment in\\. The environment must have a regionalized subdomain\\. For a list of regions and the corresponding hosted zone IDs, see [AWS Elastic Beanstalk endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/elasticbeanstalk.html) in the *Amazon Web Services General Reference*\\. \nELB load balancer \nSpecify the value of the hosted zone ID for the load balancer\\. Use the following methods to get the hosted zone ID: \n+ [Service Endpoints](https://docs.aws.amazon.com/general/latest/gr/elb.html) table in the \"Elastic Load Balancing Endpoints and Quotas\" topic in the *Amazon Web Services General Reference*: Use the value that corresponds with the region that you created your load balancer in\\. Note that there are separate columns for Application and Classic Load Balancers and for Network Load Balancers\\.\n+ **AWS Management Console**: Go to the Amazon EC2 page, choose **Load Balancers** in the navigation pane, select the load balancer, and get the value of the **Hosted zone** field on the **Description** tab\\.\n+ **Elastic Load Balancing API**: Use `DescribeLoadBalancers` to get the applicable value\\. For more information, see the applicable guide:\n + Classic Load Balancers: Use [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html) to get the value of `CanonicalHostedZoneNameID`\\.\n + Application and Network Load Balancers: Use [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) to get the value of `CanonicalHostedZoneID`\\.\n+ **CloudFormation Fn::GetAtt intrinsic function**: Use the [Fn::GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html) intrinsic function to get the applicable value:\n + Classic Load Balancers: Get [CanonicalHostedZoneNameID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#aws-properties-ec2-elb-return-values)\\. \n + Application and Network Load Balancers: Get [CanonicalHostedZoneID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#aws-resource-elasticloadbalancingv2-loadbalancer-return-values)\\. \n+ **AWS CLI**: Use `describe-load-balancers` to get the applicable value\\. For more information, see the applicable guide:\n + Classic Load Balancers: Use [describe\\-load\\-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) to get the value of `CanonicalHostedZoneNameID`\\.\n + Application and Network Load Balancers: Use [describe\\-load\\-balancers](https://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html) to get the value of `CanonicalHostedZoneID`\\. \nGlobal Accelerator accelerator \nSpecify `Z2BJ6XQ5FK7U4H`\\. \nAn Amazon S3 bucket configured as a static website \nSpecify the hosted zone ID for the region that you created the bucket in\\. For more information about valid values, see the table [Amazon S3 Website Endpoints](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints) in the *Amazon Web Services General Reference*\\. \nAnother Route 53 record in your hosted zone \nSpecify the hosted zone ID of your hosted zone\\. \\(An alias record can't reference a record in a different hosted zone\\.\\)\n*Required*: Yes \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostedZoneId", "type": "string" } }, @@ -128681,12 +157340,18 @@ "additionalProperties": false, "properties": { "ContinentCode": { + "markdownDescription": "For geolocation resource record sets, a two\\-letter abbreviation that identifies a continent\\. Route 53 supports the following continent codes: \n+ **AF**: Africa\n+ **AN**: Antarctica\n+ **AS**: Asia\n+ **EU**: Europe\n+ **OC**: Oceania\n+ **NA**: North America\n+ **SA**: South America\nConstraint: Specifying `ContinentCode` with either `CountryCode` or `SubdivisionCode` returns an `InvalidInput` error\\. \n*Required*: No \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContinentCode", "type": "string" }, "CountryCode": { + "markdownDescription": "For geolocation resource record sets, the two\\-letter code for a country\\. \nRoute 53 uses the two\\-letter country codes that are specified in [ISO standard 3166\\-1 alpha\\-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CountryCode", "type": "string" }, "SubdivisionCode": { + "markdownDescription": "For geolocation resource record sets, the two\\-letter code for a state of the United States\\. Route 53 doesn't support any other values for `SubdivisionCode`\\. For a list of state abbreviations, see [Appendix B: Two\u2013Letter State and Possession Abbreviations](https://pe.usps.com/text/pub28/28apb.htm) on the United States Postal Service website\\. \nIf you specify `subdivisioncode`, you must also specify `US` for `CountryCode`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubdivisionCode", "type": "string" } }, @@ -128728,18 +157393,26 @@ "additionalProperties": false, "properties": { "Comment": { + "markdownDescription": "*Optional:* Any comments you want to include about a change batch request\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", "type": "string" }, "HostedZoneId": { + "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*Required*: No \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostedZoneId", "type": "string" }, "HostedZoneName": { + "markdownDescription": "The name of the hosted zone that you want to create records in\\. You must include a trailing dot \\(for example, `www.example.com.`\\) as part of the `HostedZoneName`\\. \nWhen you create a stack using an `AWS::Route53::RecordSet` that specifies `HostedZoneName`, AWS CloudFormation attempts to find a hosted zone whose name matches the `HostedZoneName`\\. If AWS CloudFormation can't find a hosted zone with a matching domain name, or if there is more than one hosted zone with the specified domain name, AWS CloudFormation will not create the stack\\. \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*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostedZoneName", "type": "string" }, "RecordSets": { "items": { "$ref": "#/definitions/AWS::Route53::RecordSetGroup.RecordSet" }, + "markdownDescription": "A complex type that contains one `RecordSet` element for each record that you want to create\\. \n*Required*: No \n*Type*: List of [RecordSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordSets", "type": "array" } }, @@ -128769,12 +157442,18 @@ "additionalProperties": false, "properties": { "DNSName": { + "markdownDescription": "*Alias records only:* The value that you specify depends on where you want to route queries: \nAmazon API Gateway custom regional APIs and edge\\-optimized APIs \nSpecify the applicable domain name for your API\\. You can get the applicable value using the AWS CLI command [get\\-domain\\-names](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html): \n+ For regional APIs, specify the value of `regionalDomainName`\\.\n+ For edge\\-optimized APIs, specify the value of `distributionDomainName`\\. This is the name of the associated CloudFront distribution, such as `da1b2c3d4e5.cloudfront.net`\\.\nThe name of the record that you're creating must match a custom domain name for your API, such as `api.example.com`\\. \nAmazon Virtual Private Cloud interface VPC endpoint \nEnter the API endpoint for the interface endpoint, such as `vpce-123456789abcdef01-example-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com`\\. For edge\\-optimized APIs, this is the domain name for the corresponding CloudFront distribution\\. You can get the value of `DnsName` using the AWS CLI command [describe\\-vpc\\-endpoints](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html)\\. \nCloudFront distribution \nSpecify the domain name that CloudFront assigned when you created your distribution\\. \nYour CloudFront distribution must include an alternate domain name that matches the name of the record\\. For example, if the name of the record is *acme\\.example\\.com*, your CloudFront distribution must include *acme\\.example\\.com* as one of the alternate domain names\\. For more information, see [Using Alternate Domain Names \\(CNAMEs\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html) in the *Amazon CloudFront Developer Guide*\\. \nYou can't create a record in a private hosted zone to route traffic to a CloudFront distribution\\. \nFor failover alias records, you can't specify a CloudFront distribution for both the primary and secondary records\\. A distribution must include an alternate domain name that matches the name of the record\\. However, the primary and secondary records have the same name, and you can't include the same alternate domain name in more than one distribution\\. \nElastic Beanstalk environment \nIf the domain name for your Elastic Beanstalk environment includes the region that you deployed the environment in, you can create an alias record that routes traffic to the environment\\. For example, the domain name `my-environment.us-west-2.elasticbeanstalk.com` is a regionalized domain name\\. \nFor environments that were created before early 2016, the domain name doesn't include the region\\. To route traffic to these environments, you must create a CNAME record instead of an alias record\\. Note that you can't create a CNAME record for the root domain name\\. For example, if your domain name is example\\.com, you can create a record that routes traffic for acme\\.example\\.com to your Elastic Beanstalk environment, but you can't create a record that routes traffic for example\\.com to your Elastic Beanstalk environment\\.\nFor Elastic Beanstalk environments that have regionalized subdomains, specify the `CNAME` attribute for the environment\\. You can use the following methods to get the value of the CNAME attribute: \n+ *AWS Management Console*: For information about how to get the value by using the console, see [Using Custom Domains with AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html) in the *AWS Elastic Beanstalk Developer Guide*\\.\n+ *Elastic Beanstalk API*: Use the `DescribeEnvironments` action to get the value of the `CNAME` attribute\\. For more information, see [DescribeEnvironments](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html) in the *AWS Elastic Beanstalk API Reference*\\.\n+ *AWS CLI*: Use the `describe-environments` command to get the value of the `CNAME` attribute\\. For more information, see [describe\\-environments](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html) in the *AWS CLI*\\. \nELB load balancer \nSpecify the DNS name that is associated with the load balancer\\. Get the DNS name by using the AWS Management Console, the ELB API, or the AWS CLI\\. \n+ **AWS Management Console**: Go to the EC2 page, choose **Load Balancers** in the navigation pane, choose the load balancer, choose the **Description** tab, and get the value of the **DNS name** field\\.", + "title": "DNSName", "type": "string" }, "EvaluateTargetHealth": { + "markdownDescription": "*Applies only to alias records with any routing policy:* When `EvaluateTargetHealth` is `true`, an alias record inherits the health of the referenced AWS resource, such as an ELB load balancer or another record in the hosted zone\\. \nNote the following: \nCloudFront distributions \nYou can't set `EvaluateTargetHealth` to `true` when the alias target is a CloudFront distribution\\. \nElastic Beanstalk environments that have regionalized subdomains \nIf you specify an Elastic Beanstalk environment in `DNSName` and the environment contains an ELB load balancer, Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer\\. \\(An environment automatically contains an ELB load balancer if it includes more than one Amazon EC2 instance\\.\\) If you set `EvaluateTargetHealth` to `true` and either no Amazon EC2 instances are healthy or the load balancer itself is unhealthy, Route 53 routes queries to other available resources that are healthy, if any\\. \nIf the environment contains a single Amazon EC2 instance, there are no special requirements\\. \nELB load balancers \nHealth checking behavior depends on the type of load balancer: \n+ **Classic Load Balancers**: If you specify an ELB Classic Load Balancer in `DNSName`, Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer\\. If you set `EvaluateTargetHealth` to `true` and either no EC2 instances are healthy or the load balancer itself is unhealthy, Route 53 routes queries to other resources\\.\n+ **Application and Network Load Balancers**: If you specify an ELB Application or Network Load Balancer and you set `EvaluateTargetHealth` to `true`, Route 53 routes queries to the load balancer based on the health of the target groups that are associated with the load balancer:\n + For an Application or Network Load Balancer to be considered healthy, every target group that contains targets must contain at least one healthy target\\. If any target group contains only unhealthy targets, the load balancer is considered unhealthy, and Route 53 routes queries to other resources\\.\n + A target group that has no registered targets is considered unhealthy\\.\nWhen you create a load balancer, you configure settings for Elastic Load Balancing health checks; they're not Route 53 health checks, but they perform a similar function\\. Do not create Route 53 health checks for the EC2 instances that you register with an ELB load balancer\\. \nS3 buckets \nThere are no special requirements for setting `EvaluateTargetHealth` to `true` when the alias target is an S3 bucket\\. \nOther records in the same hosted zone \nIf the AWS resource that you specify in `DNSName` is a record or a group of records \\(for example, a group of weighted records\\) but is not another alias record, we recommend that you associate a health check with all of the records in the alias target\\. For more information, see [What Happens When You Omit Health Checks?](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-complex-configs.html#dns-failover-complex-configs-hc-omitting) in the *Amazon Route 53 Developer Guide*\\.\nFor more information and examples, see [Amazon Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) in the *Amazon Route 53 Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EvaluateTargetHealth", "type": "boolean" }, "HostedZoneId": { + "markdownDescription": "*Alias resource records sets only*: The value used depends on where you want to route traffic: \nAmazon API Gateway custom regional APIs and edge\\-optimized APIs \nSpecify the hosted zone ID for your API\\. You can get the applicable value using the AWS CLI command [get\\-domain\\-names](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html): \n+ For regional APIs, specify the value of `regionalHostedZoneId`\\.\n+ For edge\\-optimized APIs, specify the value of `distributionHostedZoneId`\\. \nAmazon Virtual Private Cloud interface VPC endpoint \nSpecify the hosted zone ID for your interface endpoint\\. You can get the value of `HostedZoneId` using the AWS CLI command [describe\\-vpc\\-endpoints](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html)\\. \nCloudFront distribution \nSpecify `Z2FDTNDATAQYW2`\\. This is always the hosted zone ID when you create an alias record that routes traffic to a CloudFront distribution\\. \nAlias records for CloudFront can't be created in a private zone\\. \nElastic Beanstalk environment \nSpecify the hosted zone ID for the region that you created the environment in\\. The environment must have a regionalized subdomain\\. For a list of regions and the corresponding hosted zone IDs, see [AWS Elastic Beanstalk endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/elasticbeanstalk.html) in the *Amazon Web Services General Reference*\\. \nELB load balancer \nSpecify the value of the hosted zone ID for the load balancer\\. Use the following methods to get the hosted zone ID: \n+ [Service Endpoints](https://docs.aws.amazon.com/general/latest/gr/elb.html) table in the \"Elastic Load Balancing endpoints and quotas\" topic in the *Amazon Web Services General Reference*: Use the value that corresponds with the region that you created your load balancer in\\. Note that there are separate columns for Application and Classic Load Balancers and for Network Load Balancers\\.\n+ **AWS Management Console**: Go to the Amazon EC2 page, choose **Load Balancers** in the navigation pane, select the load balancer, and get the value of the **Hosted zone** field on the **Description** tab\\.\n+ **Elastic Load Balancing API**: Use `DescribeLoadBalancers` to get the applicable value\\. For more information, see the applicable guide:\n + Classic Load Balancers: Use [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html) to get the value of `CanonicalHostedZoneNameID`\\.\n + Application and Network Load Balancers: Use [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) to get the value of `CanonicalHostedZoneID`\\.\n+ **CloudFormation Fn::GetAtt intrinsic function**: Use the [Fn::GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html) intrinsic function to get the applicable value:\n + Classic Load Balancers: Get [CanonicalHostedZoneNameID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#aws-properties-ec2-elb-return-values)\\. \n + Application and Network Load Balancers: Get [CanonicalHostedZoneID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#aws-resource-elasticloadbalancingv2-loadbalancer-return-values)\\. \n+ **AWS CLI**: Use `describe-load-balancers` to get the applicable value\\. For more information, see the applicable guide:\n + Classic Load Balancers: Use [describe\\-load\\-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) to get the value of `CanonicalHostedZoneNameID`\\.\n + Application and Network Load Balancers: Use [describe\\-load\\-balancers](https://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html) to get the value of `CanonicalHostedZoneID`\\. \nGlobal Accelerator accelerator \nSpecify `Z2BJ6XQ5FK7U4H`\\. \nAn Amazon S3 bucket configured as a static website \nSpecify the hosted zone ID for the region that you created the bucket in\\. For more information about valid values, see the table [Amazon S3 Website Endpoints](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints) in the *Amazon Web Services General Reference*\\. \nAnother Route 53 record in your hosted zone \nSpecify the hosted zone ID of your hosted zone\\. \\(An alias record can't reference a record in a different hosted zone\\.\\)\n*Required*: Yes \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostedZoneId", "type": "string" } }, @@ -128804,12 +157483,18 @@ "additionalProperties": false, "properties": { "ContinentCode": { + "markdownDescription": "For geolocation resource record sets, a two\\-letter abbreviation that identifies a continent\\. Route 53 supports the following continent codes: \n+ **AF**: Africa\n+ **AN**: Antarctica\n+ **AS**: Asia\n+ **EU**: Europe\n+ **OC**: Oceania\n+ **NA**: North America\n+ **SA**: South America\nConstraint: Specifying `ContinentCode` with either `CountryCode` or `SubdivisionCode` returns an `InvalidInput` error\\. \n*Required*: No \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContinentCode", "type": "string" }, "CountryCode": { + "markdownDescription": "For geolocation resource record sets, the two\\-letter code for a country\\. \nRoute 53 uses the two\\-letter country codes that are specified in [ISO standard 3166\\-1 alpha\\-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CountryCode", "type": "string" }, "SubdivisionCode": { + "markdownDescription": "For geolocation resource record sets, the two\\-letter code for a state of the United States\\. Route 53 doesn't support any other values for `SubdivisionCode`\\. For a list of state abbreviations, see [Appendix B: Two\u2013Letter State and Possession Abbreviations](https://pe.usps.com/text/pub28/28apb.htm) on the United States Postal Service website\\. \nIf you specify `subdivisioncode`, you must also specify `US` for `CountryCode`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubdivisionCode", "type": "string" } }, @@ -128819,51 +157504,79 @@ "additionalProperties": false, "properties": { "AliasTarget": { - "$ref": "#/definitions/AWS::Route53::RecordSetGroup.AliasTarget" + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.AliasTarget", + "markdownDescription": "*Alias resource record sets only:* Information about the AWS resource, such as a CloudFront distribution or an Amazon S3 bucket, that you want to route traffic to\\. \nIf you're creating resource records sets for a private hosted zone, note the following: \n+ You can't create an alias resource record set in a private hosted zone to route traffic to a CloudFront distribution\\.\n+ Creating geolocation alias resource record sets or latency alias resource record sets in a private hosted zone is unsupported\\.\n+ For information about creating failover resource record sets in a private hosted zone, see [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) in the *Amazon Route 53 Developer Guide*\\.\n*Required*: No \n*Type*: [AliasTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AliasTarget" }, "CidrRoutingConfig": { "$ref": "#/definitions/AWS::Route53::RecordSetGroup.CidrRoutingConfig" }, "Failover": { + "markdownDescription": "*Failover resource record sets only:* To configure failover, you add the `Failover` element to two resource record sets\\. For one resource record set, you specify `PRIMARY` as the value for `Failover`; for the other resource record set, you specify `SECONDARY`\\. In addition, you include the `HealthCheckId` element and specify the health check that you want Amazon Route 53 to perform for each resource record set\\. \nExcept where noted, the following failover behaviors assume that you have included the `HealthCheckId` element in both resource record sets: \n+ When the primary resource record set is healthy, Route 53 responds to DNS queries with the applicable value from the primary resource record set regardless of the health of the secondary resource record set\\.\n+ When the primary resource record set is unhealthy and the secondary resource record set is healthy, Route 53 responds to DNS queries with the applicable value from the secondary resource record set\\.\n+ When the secondary resource record set is unhealthy, Route 53 responds to DNS queries with the applicable value from the primary resource record set regardless of the health of the primary resource record set\\.\n+ If you omit the `HealthCheckId` element for the secondary resource record set, and if the primary resource record set is unhealthy, Route 53 always responds to DNS queries with the applicable value from the secondary resource record set\\. This is true regardless of the health of the associated endpoint\\.\nYou can't create non\\-failover resource record sets that have the same values for the `Name` and `Type` elements as failover resource record sets\\. \nFor failover alias resource record sets, you must also include the `EvaluateTargetHealth` element and set the value to true\\. \nFor more information about configuring failover for Route 53, see the following topics in the *Amazon Route 53 Developer Guide*: \n+ [Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) \n+ [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) \n*Required*: No \n*Type*: String \n*Allowed values*: `PRIMARY | SECONDARY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Failover", "type": "string" }, "GeoLocation": { - "$ref": "#/definitions/AWS::Route53::RecordSetGroup.GeoLocation" + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.GeoLocation", + "markdownDescription": "*Geolocation resource record sets only:* A complex type that lets you control how Amazon Route 53 responds to DNS queries based on the geographic origin of the query\\. For example, if you want all queries from Africa to be routed to a web server with an IP address of `192.0.2.111`, create a resource record set with a `Type` of `A` and a `ContinentCode` of `AF`\\. \nAlthough creating geolocation and geolocation alias resource record sets in a private hosted zone is allowed, it's not supported\\.\nIf you create separate resource record sets for overlapping geographic regions \\(for example, one resource record set for a continent and one for a country on the same continent\\), priority goes to the smallest geographic region\\. This allows you to route most queries for a continent to one resource and to route queries for a country on that continent to a different resource\\. \nYou can't create two geolocation resource record sets that specify the same geographic location\\. \nThe value `*` in the `CountryCode` element matches all geographic locations that aren't specified in other geolocation resource record sets that have the same values for the `Name` and `Type` elements\\. \nGeolocation works by mapping IP addresses to locations\\. However, some IP addresses aren't mapped to geographic locations, so even if you create geolocation resource record sets that cover all seven continents, Route 53 will receive some DNS queries from locations that it can't identify\\. We recommend that you create a resource record set for which the value of `CountryCode` is `*`\\. Two groups of queries are routed to the resource that you specify in this record: queries that come from locations for which you haven't created geolocation resource record sets and queries from IP addresses that aren't mapped to a location\\. If you don't create a `*` resource record set, Route 53 returns a \"no answer\" response for queries from those locations\\.\nYou can't create non\\-geolocation resource record sets that have the same values for the `Name` and `Type` elements as geolocation resource record sets\\. \n*Required*: No \n*Type*: [GeoLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GeoLocation" }, "HealthCheckId": { + "markdownDescription": "If you want Amazon Route 53 to return this resource record set in response to a DNS query only when the status of a health check is healthy, include the `HealthCheckId` element and specify the ID of the applicable health check\\. \nRoute 53 determines whether a resource record set is healthy based on one of the following: \n+ By periodically sending a request to the endpoint that is specified in the health check\n+ By aggregating the status of a specified group of health checks \\(calculated health checks\\)\n+ By determining the current state of a CloudWatch alarm \\(CloudWatch metric health checks\\)\nRoute 53 doesn't check the health of the endpoint that is specified in the resource record set, for example, the endpoint specified by the IP address in the `Value` element\\. When you add a `HealthCheckId` element to a resource record set, Route 53 checks the health of the endpoint that you specified in the health check\\. \nFor more information, see the following topics in the *Amazon Route 53 Developer Guide*: \n+ [How Amazon Route 53 Determines Whether an Endpoint Is Healthy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html) \n+ [Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) \n+ [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) \n **When to Specify HealthCheckId** \nSpecifying a value for `HealthCheckId` is useful only when Route 53 is choosing between two or more resource record sets to respond to a DNS query, and you want Route 53 to base the choice in part on the status of a health check\\. Configuring health checks makes sense only in the following configurations: \n+ **Non\\-alias resource record sets**: You're checking the health of a group of non\\-alias resource record sets that have the same routing policy, name, and type \\(such as multiple weighted records named www\\.example\\.com with a type of A\\) and you specify health check IDs for all the resource record sets\\.", + "title": "HealthCheckId", "type": "string" }, "HostedZoneId": { + "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*Required*: No \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostedZoneId", "type": "string" }, "HostedZoneName": { + "markdownDescription": "The name of the hosted zone that you want to create records in\\. You must include a trailing dot \\(for example, `www.example.com.`\\) as part of the `HostedZoneName`\\. \nWhen you create a stack using an `AWS::Route53::RecordSet` that specifies `HostedZoneName`, AWS CloudFormation attempts to find a hosted zone whose name matches the `HostedZoneName`\\. If AWS CloudFormation can't find a hosted zone with a matching domain name, or if there is more than one hosted zone with the specified domain name, AWS CloudFormation will not create the stack\\. \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*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostedZoneName", "type": "string" }, "MultiValueAnswer": { + "markdownDescription": "*Multivalue answer resource record sets only*: To route traffic approximately randomly to multiple resources, such as web servers, create one multivalue answer record for each resource and specify `true` for `MultiValueAnswer`\\. Note the following: \n+ If you associate a health check with a multivalue answer resource record set, Amazon Route 53 responds to DNS queries with the corresponding IP address only when the health check is healthy\\.\n+ If you don't associate a health check with a multivalue answer record, Route 53 always considers the record to be healthy\\.\n+ Route 53 responds to DNS queries with up to eight healthy records; if you have eight or fewer healthy records, Route 53 responds to all DNS queries with all the healthy records\\.\n+ If you have more than eight healthy records, Route 53 responds to different DNS resolvers with different combinations of healthy records\\.\n+ When all records are unhealthy, Route 53 responds to DNS queries with up to eight unhealthy records\\.\n+ If a resource becomes unavailable after a resolver caches a response, client software typically tries another of the IP addresses in the response\\.\nYou can't create multivalue answer alias records\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MultiValueAnswer", "type": "boolean" }, "Name": { + "markdownDescription": "For `ChangeResourceRecordSets` requests, the name of the record that you want to create, update, or delete\\. For `ListResourceRecordSets` responses, the name of a record in the specified hosted zone\\. \n **ChangeResourceRecordSets Only** \nEnter a fully qualified domain name, for example, `www.example.com`\\. You can optionally include a trailing dot\\. If you omit the trailing dot, Amazon Route 53 assumes that the domain name that you specify is fully qualified\\. This means that Route 53 treats `www.example.com` \\(without a trailing dot\\) and `www.example.com.` \\(with a trailing dot\\) as identical\\. \nFor information about how to specify characters other than `a-z`, `0-9`, and `-` \\(hyphen\\) and how to specify internationalized domain names, see [DNS Domain Name Format](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html) in the *Amazon Route 53 Developer Guide*\\. \nYou can use the asterisk \\(\\*\\) wildcard to replace the leftmost label in a domain name, for example, `*.example.com`\\. Note the following: \n+ The \\* must replace the entire label\\. For example, you can't specify `*prod.example.com` or `prod*.example.com`\\.\n+ The \\* can't replace any of the middle labels, for example, marketing\\.\\*\\.example\\.com\\.\n+ If you include \\* in any position other than the leftmost label in a domain name, DNS treats it as an \\* character \\(ASCII 42\\), not as a wildcard\\.\n**Important** \nYou can't use the \\* wildcard for resource records sets that have a type of NS\\.\nYou can use the \\* wildcard as the leftmost label in a domain name, for example, `*.example.com`\\. You can't use an \\* for one of the middle labels, for example, `marketing.*.example.com`\\. In addition, the \\* must replace the entire label; for example, you can't specify `prod*.example.com`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Region": { + "markdownDescription": "*Latency\\-based resource record sets only:* The Amazon EC2 Region where you created the resource that this resource record set refers to\\. The resource typically is an AWS resource, such as an EC2 instance or an ELB load balancer, and is referred to by an IP address or a DNS domain name, depending on the record type\\. \nAlthough creating latency and latency alias resource record sets in a private hosted zone is allowed, it's not supported\\.\nWhen Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region\\. Route 53 then returns the value that is associated with the selected resource record set\\. \nNote the following: \n+ You can only specify one `ResourceRecord` per latency resource record set\\.\n+ You can only create one latency resource record set for each Amazon EC2 Region\\.\n+ You aren't required to create latency resource record sets for all Amazon EC2 Regions\\. Route 53 will choose the region with the best latency from among the regions that you create latency resource record sets for\\.\n+ You can't create non\\-latency resource record sets that have the same values for the `Name` and `Type` elements as latency resource record sets\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `af-south-1 | ap-east-1 | ap-northeast-1 | ap-northeast-2 | ap-northeast-3 | ap-south-1 | ap-southeast-1 | ap-southeast-2 | ap-southeast-3 | ca-central-1 | cn-north-1 | cn-northwest-1 | eu-central-1 | eu-north-1 | eu-south-1 | eu-west-1 | eu-west-2 | eu-west-3 | me-south-1 | sa-east-1 | us-east-1 | us-east-2 | us-west-1 | us-west-2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", "type": "string" }, "ResourceRecords": { "items": { "type": "string" }, + "markdownDescription": "Information about the records that you want to create\\. Each record should be in the format appropriate for the record type specified by the `Type` property\\. For information about different record types and their record formats, see [Values That You Specify When You Create or Edit Amazon Route 53 Records](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-values.html) in the *Amazon Route 53 Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceRecords", "type": "array" }, "SetIdentifier": { + "markdownDescription": "*Resource record sets that have a routing policy other than simple:* An identifier that differentiates among multiple resource record sets that have the same combination of name and type, such as multiple weighted resource record sets named acme\\.example\\.com that have a type of A\\. In a group of resource record sets that have the same name and type, the value of `SetIdentifier` must be unique for each resource record set\\. \nFor information about routing policies, see [Choosing a Routing Policy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html) in the *Amazon Route 53 Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SetIdentifier", "type": "string" }, "TTL": { + "markdownDescription": "The resource record cache time to live \\(TTL\\), in seconds\\. Note the following: \n+ If you're creating or updating an alias resource record set, omit `TTL`\\. Amazon Route 53 uses the value of `TTL` for the alias target\\. \n+ If you're associating this resource record set with a health check \\(if you're adding a `HealthCheckId` element\\), we recommend that you specify a `TTL` of 60 seconds or less so clients respond quickly to changes in health status\\.\n+ All of the resource record sets in a group of weighted resource record sets must have the same value for `TTL`\\.\n+ If a group of weighted resource record sets includes one or more weighted alias resource record sets for which the alias target is an ELB load balancer, we recommend that you specify a `TTL` of 60 seconds for all of the non\\-alias weighted resource record sets that have the same name and type\\. Values other than 60 seconds \\(the TTL for load balancers\\) will change the effect of the values that you specify for `Weight`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TTL", "type": "string" }, "Type": { + "markdownDescription": "The DNS record type\\. For information about different record types and how data is encoded for them, see [Supported DNS Resource Record Types](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html) in the *Amazon Route 53 Developer Guide*\\. \nValid values for basic resource record sets: `A` \\| `AAAA` \\| `CAA` \\| `CNAME` \\| `DS` \\|`MX` \\| `NAPTR` \\| `NS` \\| `PTR` \\| `SOA` \\| `SPF` \\| `SRV` \\| `TXT` \nValues for weighted, latency, geolocation, and failover resource record sets: `A` \\| `AAAA` \\| `CAA` \\| `CNAME` \\| `MX` \\| `NAPTR` \\| `PTR` \\| `SPF` \\| `SRV` \\| `TXT`\\. When creating a group of weighted, latency, geolocation, or failover resource record sets, specify the same value for all of the resource record sets in the group\\. \nValid values for multivalue answer resource record sets: `A` \\| `AAAA` \\| `MX` \\| `NAPTR` \\| `PTR` \\| `SPF` \\| `SRV` \\| `TXT` \nSPF records were formerly used to verify the identity of the sender of email messages\\. However, we no longer recommend that you create resource record sets for which the value of `Type` is `SPF`\\. RFC 7208, *Sender Policy Framework \\(SPF\\) for Authorizing Use of Domains in Email, Version 1*, has been updated to say, \"\\.\\.\\.\\[I\\]ts existence and mechanism defined in \\[RFC4408\\] have led to some interoperability issues\\. Accordingly, its use is no longer appropriate for SPF version 1; implementations are not to use it\\.\" In RFC 7208, see section 14\\.1, [The SPF DNS Record Type](http://tools.ietf.org/html/rfc7208#section-14.1)\\.\nValues for alias resource record sets: \n+ **Amazon API Gateway custom regional APIs and edge\\-optimized APIs:** `A` \n+ **CloudFront distributions:** `A`", + "title": "Type", "type": "string" }, "Weight": { + "markdownDescription": "*Weighted resource record sets only:* Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set\\. Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type\\. Route 53 then responds to queries based on the ratio of a resource's weight to the total\\. Note the following: \n+ You must specify a value for the `Weight` element for every weighted resource record set\\.\n+ You can only specify one `ResourceRecord` per weighted resource record set\\.\n+ You can't create latency, failover, or geolocation resource record sets that have the same values for the `Name` and `Type` elements as weighted resource record sets\\.\n+ You can create a maximum of 100 weighted resource record sets that have the same values for the `Name` and `Type` elements\\.\n+ For weighted \\(but not weighted alias\\) resource record sets, if you set `Weight` to `0` for a resource record set, Route 53 never responds to queries with the applicable value for that resource record set\\. However, if you set `Weight` to `0` for all resource record sets that have the same combination of DNS name and type, traffic is routed to all resources with equal probability\\.", + "title": "Weight", "type": "number" } }, @@ -128915,12 +157628,16 @@ "type": "array" }, "Name": { + "markdownDescription": "Name of the cluster\\. You can use any non\\-white space character in the name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The value for a tag\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -128950,9 +157667,13 @@ "additionalProperties": false, "properties": { "Endpoint": { + "markdownDescription": "A cluster endpoint\\. Specify an endpoint and AWS Region when you want to set or retrieve a routing control state in the cluster\\. \nTo get or update the routing control state, see the Amazon Route 53 Application Recovery Controller Routing Control Actions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Endpoint", "type": "string" }, "Region": { + "markdownDescription": "The AWS Region for a cluster endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", "type": "string" } }, @@ -128994,15 +157715,21 @@ "additionalProperties": false, "properties": { "ClusterArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the cluster for the control panel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterArn", "type": "string" }, "Name": { + "markdownDescription": "The name of the control panel\\. You can use any non\\-white space character in the name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The value for a tag\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -129068,12 +157795,18 @@ "additionalProperties": false, "properties": { "ClusterArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the cluster that includes the routing control\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterArn", "type": "string" }, "ControlPanelArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the control panel that includes the routing control\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ControlPanelArn", "type": "string" }, "Name": { + "markdownDescription": "The name of the routing control\\. You can use any non\\-white space character in the name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -129139,24 +157872,36 @@ "additionalProperties": false, "properties": { "AssertionRule": { - "$ref": "#/definitions/AWS::Route53RecoveryControl::SafetyRule.AssertionRule" + "$ref": "#/definitions/AWS::Route53RecoveryControl::SafetyRule.AssertionRule", + "markdownDescription": "An assertion rule enforces that, when you change a routing control state, that the criteria that you set in the rule configuration is met\\. Otherwise, the change to the routing control is not accepted\\. For example, the criteria might be that at least one routing control state is `On` after the transaction so that traffic continues to flow to at least one cell for the application\\. This ensures that you avoid a fail\\-open scenario\\. \n*Required*: No \n*Type*: [AssertionRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoverycontrol-safetyrule-assertionrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssertionRule" }, "ControlPanelArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the control panel\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ControlPanelArn", "type": "string" }, "GatingRule": { - "$ref": "#/definitions/AWS::Route53RecoveryControl::SafetyRule.GatingRule" + "$ref": "#/definitions/AWS::Route53RecoveryControl::SafetyRule.GatingRule", + "markdownDescription": "A gating rule verifies that a gating routing control or set of gating routing controls, evaluates as true, based on a rule configuration that you specify, which allows a set of routing control state changes to complete\\. \nFor example, if you specify one gating routing control and you set the `Type` in the rule configuration to `OR`, that indicates that you must set the gating routing control to `On` for the rule to evaluate as true; that is, for the gating control \"switch\" to be \"On\"\\. When you do that, then you can update the routing control states for the target routing controls that you specify in the gating rule\\. \n*Required*: No \n*Type*: [GatingRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoverycontrol-safetyrule-gatingrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GatingRule" }, "Name": { + "markdownDescription": "The name of the assertion rule\\. You can use any non\\-white space character in the name\\. The name must be unique within a control panel\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "RuleConfig": { - "$ref": "#/definitions/AWS::Route53RecoveryControl::SafetyRule.RuleConfig" + "$ref": "#/definitions/AWS::Route53RecoveryControl::SafetyRule.RuleConfig", + "markdownDescription": "The criteria that you set for specific assertion controls \\(routing controls\\) that designate how many control states must be `ON` as the result of a transaction\\. For example, if you have three assertion controls, you might specify `ATLEAST 2` for your rule configuration\\. This means that at least two assertion controls must be `ON`, so that at least two AWS Regions have traffic flowing to them\\. \n*Required*: Yes \n*Type*: [RuleConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoverycontrol-safetyrule-ruleconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RuleConfig" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The value for a tag\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -129195,9 +157940,13 @@ "items": { "type": "string" }, + "markdownDescription": "The routing controls that are part of transactions that are evaluated to determine if a request to change a routing control state is allowed\\. For example, you might include three routing controls, one for each of three AWS Regions\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssertedControls", "type": "array" }, "WaitPeriodMs": { + "markdownDescription": "An evaluation period, in milliseconds \\(ms\\), during which any request against the target routing controls will fail\\. This helps prevent \"flapping\" of state\\. The wait period is 5000 ms by default, but you can choose a custom value\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WaitPeriodMs", "type": "number" } }, @@ -129214,15 +157963,21 @@ "items": { "type": "string" }, + "markdownDescription": "An array of gating routing control Amazon Resource Names \\(ARNs\\)\\. For a simple \"on/off\" switch, specify the ARN for one routing control\\. The gating routing controls are evaluated by the rule configuration that you specify to determine if the target routing control states can be changed\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GatingControls", "type": "array" }, "TargetControls": { "items": { "type": "string" }, + "markdownDescription": "An array of target routing control Amazon Resource Names \\(ARNs\\) for which the states can only be updated if the rule configuration that you specify evaluates to true for the gating routing control\\. As a simple example, if you have a single gating control, it acts as an overall \"on/off\" switch for a set of target routing controls\\. You can use this to manually override automated failover, for example\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetControls", "type": "array" }, "WaitPeriodMs": { + "markdownDescription": "An evaluation period, in milliseconds \\(ms\\), during which any request against the target routing controls will fail\\. This helps prevent \"flapping\" of state\\. The wait period is 5000 ms by default, but you can choose a custom value\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WaitPeriodMs", "type": "number" } }, @@ -129237,12 +157992,18 @@ "additionalProperties": false, "properties": { "Inverted": { + "markdownDescription": "Logical negation of the rule\\. If the rule would usually evaluate true, it's evaluated as false, and vice versa\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Inverted", "type": "boolean" }, "Threshold": { + "markdownDescription": "The value of N, when you specify an `ATLEAST` rule type\\. That is, `Threshold` is the number of controls that must be set when you specify an `ATLEAST` type\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Threshold", "type": "number" }, "Type": { + "markdownDescription": "A rule can be one of the following: `ATLEAST`, `AND`, or `OR`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -129289,18 +158050,24 @@ "additionalProperties": false, "properties": { "CellName": { + "markdownDescription": "The name of the cell to create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CellName", "type": "string" }, "Cells": { "items": { "type": "string" }, + "markdownDescription": "A list of cell Amazon Resource Names \\(ARNs\\) contained within this cell, for use in nested cells\\. For example, Availability Zones within specific AWS Regions\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cells", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A collection of tags associated with a resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -129362,15 +158129,21 @@ "additionalProperties": false, "properties": { "ReadinessCheckName": { + "markdownDescription": "The name of the readiness check to create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReadinessCheckName", "type": "string" }, "ResourceSetName": { + "markdownDescription": "The name of the resource set to check\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceSetName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A collection of tags associated with a resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -129435,15 +158208,21 @@ "items": { "type": "string" }, + "markdownDescription": "A list of the cell Amazon Resource Names \\(ARNs\\) in the recovery group\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cells", "type": "array" }, "RecoveryGroupName": { + "markdownDescription": "The name of the recovery group to create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RecoveryGroupName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A collection of tags associated with a resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -129505,21 +158284,29 @@ "additionalProperties": false, "properties": { "ResourceSetName": { + "markdownDescription": "The name of the resource set to create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceSetName", "type": "string" }, "ResourceSetType": { + "markdownDescription": "The resource type of the resources in the resource set\\. Enter one of the following values for resource type: \nAWS::AutoScaling::AutoScalingGroup, AWS::CloudWatch::Alarm, AWS::EC2::CustomerGateway, AWS::DynamoDB::Table, AWS::EC2::Volume, AWS::ElasticLoadBalancing::LoadBalancer, AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::MSK::Cluster, AWS::RDS::DBCluster, AWS::Route53::HealthCheck, AWS::SQS::Queue, AWS::SNS::Topic, AWS::SNS::Subscription, AWS::EC2::VPC, AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, AWS::Route53RecoveryReadiness::DNSTargetResource\\. \nNote that AWS::Route53RecoveryReadiness::DNSTargetResource is only used for this setting\\. It isn't an actual AWS CloudFormation resource type\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceSetType", "type": "string" }, "Resources": { "items": { "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.Resource" }, + "markdownDescription": "A list of resource objects in the resource set\\. \n*Required*: Yes \n*Type*: List of [Resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoveryreadiness-resourceset-resource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Resources", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A tag to associate with the parameters for a resource set\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -129554,19 +158341,29 @@ "additionalProperties": false, "properties": { "DomainName": { + "markdownDescription": "The domain name that acts as an ingress point to a portion of the customer application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainName", "type": "string" }, "HostedZoneArn": { + "markdownDescription": "The hosted zone Amazon Resource Name \\(ARN\\) that contains the DNS record with the provided name of the target resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostedZoneArn", "type": "string" }, "RecordSetId": { + "markdownDescription": "The Route 53 record set ID that uniquely identifies a DNS record, given a name and a type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordSetId", "type": "string" }, "RecordType": { + "markdownDescription": "The type of DNS record of the target resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordType", "type": "string" }, "TargetResource": { - "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.TargetResource" + "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.TargetResource", + "markdownDescription": "The target resource that the Route 53 record points to\\. \n*Required*: No \n*Type*: [TargetResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoveryreadiness-resourceset-targetresource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetResource" } }, "type": "object" @@ -129575,6 +158372,8 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The Network Load Balancer resource Amazon Resource Name \\(ARN\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" } }, @@ -129584,9 +158383,13 @@ "additionalProperties": false, "properties": { "DomainName": { + "markdownDescription": "The DNS target domain name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainName", "type": "string" }, "RecordSetId": { + "markdownDescription": "The Route 53 Resource Record Set ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordSetId", "type": "string" } }, @@ -129596,18 +158399,26 @@ "additionalProperties": false, "properties": { "ComponentId": { + "markdownDescription": "The component identifier of the resource, generated when DNS target resource is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentId", "type": "string" }, "DnsTargetResource": { - "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.DNSTargetResource" + "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.DNSTargetResource", + "markdownDescription": "A component for DNS/routing control readiness checks\\. This is a required setting when `ResourceSet` `ResourceSetType` is set to `AWS::Route53RecoveryReadiness::DNSTargetResource`\\. Do not set it for any other `ResourceSetType` setting\\. \n*Required*: Conditional \n*Type*: [DNSTargetResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoveryreadiness-resourceset-dnstargetresource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DnsTargetResource" }, "ReadinessScopes": { "items": { "type": "string" }, + "markdownDescription": "The recovery group Amazon Resource Name \\(ARN\\) or the cell ARN that the readiness checks for this resource set are scoped to\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadinessScopes", "type": "array" }, "ResourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS resource\\. This is a required setting for all `ResourceSet` `ResourceSetType` settings except `AWS::Route53RecoveryReadiness::DNSTargetResource`\\. Do not set this when `ResourceSetType` is set to `AWS::Route53RecoveryReadiness::DNSTargetResource`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceArn", "type": "string" } }, @@ -129617,10 +158428,14 @@ "additionalProperties": false, "properties": { "NLBResource": { - "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.NLBResource" + "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.NLBResource", + "markdownDescription": "The Network Load Balancer resource that a DNS target resource points to\\. \n*Required*: No \n*Type*: [NLBResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoveryreadiness-resourceset-nlbresource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NLBResource" }, "R53Resource": { - "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.R53ResourceRecord" + "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.R53ResourceRecord", + "markdownDescription": "The Route 53 resource that a DNS target resource record points to\\. \n*Required*: No \n*Type*: [R53ResourceRecord](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoveryreadiness-resourceset-r53resourcerecord.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "R53Resource" } }, "type": "object" @@ -129661,21 +158476,29 @@ "additionalProperties": false, "properties": { "DomainFileUrl": { + "markdownDescription": "The fully qualified URL or URI of the file stored in Amazon Simple Storage Service \\(Amazon S3\\) that contains the list of domains to import\\. \nThe file must be in an S3 bucket that's in the same Region as your DNS Firewall\\. The file must be a text file and must contain a single domain per line\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainFileUrl", "type": "string" }, "Domains": { "items": { "type": "string" }, + "markdownDescription": "A list of the domain lists that you have defined\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Domains", "type": "array" }, "Name": { + "markdownDescription": "The name of the domain list\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of the tag keys and values that you want to associate with the domain list\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -129740,15 +158563,21 @@ "items": { "$ref": "#/definitions/AWS::Route53Resolver::FirewallRuleGroup.FirewallRule" }, + "markdownDescription": "A list of the rules that you have defined\\. \n*Required*: No \n*Type*: List of [FirewallRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53resolver-firewallrulegroup-firewallrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FirewallRules", "type": "array" }, "Name": { + "markdownDescription": "The name of the rule group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of the tag keys and values that you want to associate with the rule group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -129778,24 +158607,38 @@ "additionalProperties": false, "properties": { "Action": { + "markdownDescription": "The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list: \n+ `ALLOW` \\- Permit the request to go through\\.\n+ `ALERT` \\- Permit the request to go through but send an alert to the logs\\.\n+ `BLOCK` \\- Disallow the request\\. If this is specified,then `BlockResponse` must also be specified\\.", + "title": "Action", "type": "string" }, "BlockOverrideDnsType": { + "markdownDescription": "The DNS record's type\\. This determines the format of the record value that you provided in `BlockOverrideDomain`\\. Used for the rule action `BLOCK` with a `BlockResponse` setting of `OVERRIDE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CNAME` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockOverrideDnsType", "type": "string" }, "BlockOverrideDomain": { + "markdownDescription": "The custom DNS record to send back in response to the query\\. Used for the rule action `BLOCK` with a `BlockResponse` setting of `OVERRIDE`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockOverrideDomain", "type": "string" }, "BlockOverrideTtl": { + "markdownDescription": "The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record\\. Used for the rule action `BLOCK` with a `BlockResponse` setting of `OVERRIDE`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockOverrideTtl", "type": "number" }, "BlockResponse": { + "markdownDescription": "The way that you want DNS Firewall to block the request\\. Used for the rule action setting `BLOCK`\\. \n+ `NODATA` \\- Respond indicating that the query was successful, but no response is available for it\\.\n+ `NXDOMAIN` \\- Respond indicating that the domain name that's in the query doesn't exist\\.\n+ `OVERRIDE` \\- Provide a custom override in the response\\. This option requires custom handling details in the rule's `BlockOverride*` settings\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NODATA | NXDOMAIN | OVERRIDE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockResponse", "type": "string" }, "FirewallDomainListId": { + "markdownDescription": "The ID of the domain list that's used in the rule\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FirewallDomainListId", "type": "string" }, "Priority": { + "markdownDescription": "The priority of the rule in the rule group\\. This value must be unique within the rule group\\. DNS Firewall processes the rules in a rule group by order of priority, starting from the lowest setting\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" } }, @@ -129842,24 +158685,36 @@ "additionalProperties": false, "properties": { "FirewallRuleGroupId": { + "markdownDescription": "The unique identifier of the firewall rule group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FirewallRuleGroupId", "type": "string" }, "MutationProtection": { + "markdownDescription": "If enabled, this setting disallows modification or removal of the association, to help prevent against accidentally altering DNS firewall protections\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MutationProtection", "type": "string" }, "Name": { + "markdownDescription": "The name of the association\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Priority": { + "markdownDescription": "The setting that determines the processing order of the rule group among the rule groups that are associated with a single VPC\\. DNS Firewall filters VPC traffic starting from rule group with the lowest numeric priority setting\\. \nYou must specify a unique priority for each rule group that you associate with a single VPC\\. To make it easier to insert rule groups later, leave space between the numbers, for example, use 101, 200, and so on\\. You can change the priority setting for a rule group association after you create it\\. \nThe allowed values for `Priority` are between 100 and 9900 \\(excluding 100 and 9900\\)\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of the tag keys and values that you want to associate with the rule group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VpcId": { + "markdownDescription": "The unique identifier of the VPC that is associated with the rule group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -129927,9 +158782,13 @@ "additionalProperties": false, "properties": { "AutodefinedReverseFlag": { + "markdownDescription": "Represents the desired status of `AutodefinedReverse`\\. The only supported value on creation is `DISABLE`\\. Deletion of this resource will return `AutodefinedReverse` to its default value of `ENABLED`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutodefinedReverseFlag", "type": "string" }, "ResourceId": { + "markdownDescription": "The ID of the Amazon Virtual Private Cloud VPC that you're configuring Resolver for\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceId", "type": "string" } }, @@ -129996,6 +158855,8 @@ "additionalProperties": false, "properties": { "ResourceId": { + "markdownDescription": "The ID of the virtual private cloud \\(VPC\\) that you're configuring the DNSSEC validation status for\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceId", "type": "string" } }, @@ -130057,15 +158918,21 @@ "additionalProperties": false, "properties": { "Direction": { + "markdownDescription": "Indicates whether the Resolver endpoint allows inbound or outbound DNS queries: \n+ `INBOUND`: allows DNS queries to your VPC from your network\n+ `OUTBOUND`: allows DNS queries from your VPC to your network\n*Required*: Yes \n*Type*: String \n*Allowed values*: `INBOUND | OUTBOUND` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Direction", "type": "string" }, "IpAddresses": { "items": { "$ref": "#/definitions/AWS::Route53Resolver::ResolverEndpoint.IpAddressRequest" }, + "markdownDescription": "The subnets and IP addresses in your VPC that DNS queries originate from \\(for outbound endpoints\\) or that you forward DNS queries to \\(for inbound endpoints\\)\\. The subnet ID uniquely identifies a VPC\\. \n*Required*: Yes \n*Type*: List of [IpAddressRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53resolver-resolverendpoint-ipaddressrequest.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IpAddresses", "type": "array" }, "Name": { + "markdownDescription": "A friendly name that lets you easily find a configuration in the Resolver dashboard in the Route 53 console\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "OutpostArn": { @@ -130074,16 +158941,23 @@ "PreferredInstanceType": { "type": "string" }, + "ResolverEndpointType": { + "type": "string" + }, "SecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "The ID of one or more security groups that control access to this VPC\\. The security group must include one or more inbound rules \\(for inbound endpoints\\) or outbound rules \\(for outbound endpoints\\)\\. Inbound and outbound rules must allow TCP and UDP access\\. For inbound access, open port 53\\. For outbound access, open the port that you're using for DNS queries on your network\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroupIds", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Route 53 Resolver doesn't support updating tags through CloudFormation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -130119,9 +158993,16 @@ "additionalProperties": false, "properties": { "Ip": { + "markdownDescription": "The IP address that you want to use for DNS queries\\. \n*Required*: No \n*Type*: String \n*Minimum*: `7` \n*Maximum*: `36` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ip", + "type": "string" + }, + "Ipv6": { "type": "string" }, "SubnetId": { + "markdownDescription": "The ID of the subnet that contains the IP address\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetId", "type": "string" } }, @@ -130166,9 +159047,13 @@ "additionalProperties": false, "properties": { "DestinationArn": { + "markdownDescription": "The ARN of the resource that you want Resolver to send query logs: an Amazon S3 bucket, a CloudWatch Logs log group, or a Kinesis Data Firehose delivery stream\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `600` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationArn", "type": "string" }, "Name": { + "markdownDescription": "The name of the query logging configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" } }, @@ -130230,9 +159115,13 @@ "additionalProperties": false, "properties": { "ResolverQueryLogConfigId": { + "markdownDescription": "The ID of the query logging configuration that a VPC is associated with\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResolverQueryLogConfigId", "type": "string" }, "ResourceId": { + "markdownDescription": "The ID of the Amazon VPC that is associated with the query logging configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceId", "type": "string" } }, @@ -130294,27 +159183,39 @@ "additionalProperties": false, "properties": { "DomainName": { + "markdownDescription": "DNS queries for this domain name are forwarded to the IP addresses that are specified in `TargetIps`\\. If a query matches multiple Resolver rules \\(example\\.com and www\\.example\\.com\\), the query is routed using the Resolver rule that contains the most specific domain name \\(www\\.example\\.com\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", "type": "string" }, "Name": { + "markdownDescription": "The name for the Resolver rule, which you specified when you created the Resolver rule\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "ResolverEndpointId": { + "markdownDescription": "The ID of the endpoint that the rule is associated with\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResolverEndpointId", "type": "string" }, "RuleType": { + "markdownDescription": "When you want to forward DNS queries for specified domain name to resolvers on your network, specify `FORWARD`\\. \nWhen you have a forwarding rule to forward DNS queries for a domain to your network and you want Resolver to process queries for a subdomain of that domain, specify `SYSTEM`\\. \nFor example, to forward DNS queries for example\\.com to resolvers on your network, you create a rule and specify `FORWARD` for `RuleType`\\. To then have Resolver process queries for apex\\.example\\.com, you create a rule and specify `SYSTEM` for `RuleType`\\. \nCurrently, only Resolver can create rules that have a value of `RECURSIVE` for `RuleType`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `FORWARD | RECURSIVE | SYSTEM` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RuleType", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Route 53 Resolver doesn't support updating tags through CloudFormation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TargetIps": { "items": { "$ref": "#/definitions/AWS::Route53Resolver::ResolverRule.TargetAddress" }, + "markdownDescription": "An array that contains the IP addresses and ports that an outbound endpoint forwards DNS queries to\\. Typically, these are the IP addresses of DNS resolvers on your network\\. Specify IPv4 addresses\\. IPv6 is not supported\\. \n*Required*: No \n*Type*: List of [TargetAddress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53resolver-resolverrule-targetaddress.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetIps", "type": "array" } }, @@ -130349,15 +159250,19 @@ "additionalProperties": false, "properties": { "Ip": { + "markdownDescription": "One IP address that you want to forward DNS queries to\\. You can specify only IPv4 addresses\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `7` \n*Maximum*: `36` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ip", + "type": "string" + }, + "Ipv6": { "type": "string" }, "Port": { + "markdownDescription": "The port at `Ip` that you want to forward DNS queries to\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", "type": "string" } }, - "required": [ - "Ip" - ], "type": "object" }, "AWS::Route53Resolver::ResolverRuleAssociation": { @@ -130396,12 +159301,18 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of an association between a Resolver rule and a VPC\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "ResolverRuleId": { + "markdownDescription": "The ID of the Resolver rule that you associated with the VPC that is specified by `VPCId`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResolverRuleId", "type": "string" }, "VPCId": { + "markdownDescription": "The ID of the VPC that you associated the Resolver rule with\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VPCId", "type": "string" } }, @@ -130468,25 +159379,37 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The name of the bucket associated with this access point\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Bucket", "type": "string" }, "BucketAccountId": { "type": "string" }, "Name": { + "markdownDescription": "The name of this access point\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the access point name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Policy": { + "markdownDescription": "The access point policy associated with this access point\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policy", "type": "object" }, "PolicyStatus": { - "$ref": "#/definitions/AWS::S3::AccessPoint.PolicyStatus" + "$ref": "#/definitions/AWS::S3::AccessPoint.PolicyStatus", + "markdownDescription": "The container element for a bucket's policy status\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyStatus" }, "PublicAccessBlockConfiguration": { - "$ref": "#/definitions/AWS::S3::AccessPoint.PublicAccessBlockConfiguration" + "$ref": "#/definitions/AWS::S3::AccessPoint.PublicAccessBlockConfiguration", + "markdownDescription": "The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket\\. You can enable the configuration options in any combination\\. For more information about when Amazon S3 considers a bucket or object public, see [The Meaning of \"Public\"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: [PublicAccessBlockConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-accesspoint-publicaccessblockconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PublicAccessBlockConfiguration" }, "VpcConfiguration": { - "$ref": "#/definitions/AWS::S3::AccessPoint.VpcConfiguration" + "$ref": "#/definitions/AWS::S3::AccessPoint.VpcConfiguration", + "markdownDescription": "The Virtual Private Cloud \\(VPC\\) configuration for this access point, if one exists\\. \n*Required*: No \n*Type*: [VpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-accesspoint-vpcconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcConfiguration" } }, "required": [ @@ -130528,15 +159451,23 @@ "additionalProperties": false, "properties": { "BlockPublicAcls": { + "markdownDescription": "Specifies whether Amazon S3 should block public access control lists \\(ACLs\\) for this bucket and objects in this bucket\\. Setting this element to `TRUE` causes the following behavior: \n+ PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is public\\.\n+ PUT Object calls fail if the request includes a public ACL\\.\n+ PUT Bucket calls fail if the request includes a public ACL\\.\nEnabling this setting doesn't affect existing policies or ACLs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BlockPublicAcls", "type": "boolean" }, "BlockPublicPolicy": { + "markdownDescription": "Specifies whether Amazon S3 should block public bucket policies for this bucket\\. Setting this element to `TRUE` causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access\\. \nEnabling this setting doesn't affect existing bucket policies\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BlockPublicPolicy", "type": "boolean" }, "IgnorePublicAcls": { + "markdownDescription": "Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket\\. Setting this element to `TRUE` causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket\\. \nEnabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IgnorePublicAcls", "type": "boolean" }, "RestrictPublicBuckets": { + "markdownDescription": "Specifies whether Amazon S3 should restrict public bucket policies for this bucket\\. Setting this element to `TRUE` restricts access to this bucket to only AWS service principals and authorized users within this account if the bucket has a public policy\\. \nEnabling this setting doesn't affect previously stored bucket policies, except that public and cross\\-account access within any public bucket policy, including non\\-public delegation to specific accounts, is blocked\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestrictPublicBuckets", "type": "boolean" } }, @@ -130546,6 +159477,8 @@ "additionalProperties": false, "properties": { "VpcId": { + "markdownDescription": "If this field is specified, the access point will only allow connections from the specified VPC ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -130587,79 +159520,119 @@ "additionalProperties": false, "properties": { "AccelerateConfiguration": { - "$ref": "#/definitions/AWS::S3::Bucket.AccelerateConfiguration" + "$ref": "#/definitions/AWS::S3::Bucket.AccelerateConfiguration", + "markdownDescription": "Configures the transfer acceleration state for an Amazon S3 bucket\\. For more information, see [Amazon S3 Transfer Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: [AccelerateConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accelerateconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccelerateConfiguration" }, "AccessControl": { + "markdownDescription": "A canned access control list \\(ACL\\) that grants predefined permissions to the bucket\\. For more information about canned ACLs, see [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) in the *Amazon S3 User Guide*\\. \nBe aware that the syntax for this property differs from the information provided in the *Amazon S3 User Guide*\\. The AccessControl property is case\\-sensitive and must be one of the following values: Private, PublicRead, PublicReadWrite, AuthenticatedRead, LogDeliveryWrite, BucketOwnerRead, BucketOwnerFullControl, or AwsExecRead\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessControl", "type": "string" }, "AnalyticsConfigurations": { "items": { "$ref": "#/definitions/AWS::S3::Bucket.AnalyticsConfiguration" }, + "markdownDescription": "Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket\\. \n*Required*: No \n*Type*: List of [AnalyticsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-analyticsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AnalyticsConfigurations", "type": "array" }, "BucketEncryption": { - "$ref": "#/definitions/AWS::S3::Bucket.BucketEncryption" + "$ref": "#/definitions/AWS::S3::Bucket.BucketEncryption", + "markdownDescription": "Specifies default encryption for a bucket using server\\-side encryption with Amazon S3\\-managed keys \\(SSE\\-S3\\) or AWS KMS\\-managed keys \\(SSE\\-KMS\\) bucket\\. For information about the Amazon S3 default encryption feature, see [Amazon S3 Default Encryption for S3 Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: [BucketEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-bucketencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketEncryption" }, "BucketName": { + "markdownDescription": "A name for the bucket\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the bucket name\\. The bucket name must contain only lowercase letters, numbers, periods \\(\\.\\), and dashes \\(\\-\\) and must follow [Amazon S3 bucket restrictions and limitations](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html)\\. For more information, see [Rules for naming Amazon S3 buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html#bucketnamingrules) in the *Amazon S3 User Guide*\\. \nIf you specify a name, you can't perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you need to replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketName", "type": "string" }, "CorsConfiguration": { - "$ref": "#/definitions/AWS::S3::Bucket.CorsConfiguration" + "$ref": "#/definitions/AWS::S3::Bucket.CorsConfiguration", + "markdownDescription": "Describes the cross\\-origin access configuration for objects in an Amazon S3 bucket\\. For more information, see [Enabling Cross\\-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: [CorsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CorsConfiguration" }, "IntelligentTieringConfigurations": { "items": { "$ref": "#/definitions/AWS::S3::Bucket.IntelligentTieringConfiguration" }, + "markdownDescription": "Defines how Amazon S3 handles Intelligent\\-Tiering storage\\. \n*Required*: No \n*Type*: List of [IntelligentTieringConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntelligentTieringConfigurations", "type": "array" }, "InventoryConfigurations": { "items": { "$ref": "#/definitions/AWS::S3::Bucket.InventoryConfiguration" }, + "markdownDescription": "Specifies the inventory configuration for an Amazon S3 bucket\\. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*\\. \n*Required*: No \n*Type*: List of [InventoryConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InventoryConfigurations", "type": "array" }, "LifecycleConfiguration": { - "$ref": "#/definitions/AWS::S3::Bucket.LifecycleConfiguration" + "$ref": "#/definitions/AWS::S3::Bucket.LifecycleConfiguration", + "markdownDescription": "Specifies the lifecycle configuration for objects in an Amazon S3 bucket\\. For more information, see [Object Lifecycle Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: [LifecycleConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LifecycleConfiguration" }, "LoggingConfiguration": { - "$ref": "#/definitions/AWS::S3::Bucket.LoggingConfiguration" + "$ref": "#/definitions/AWS::S3::Bucket.LoggingConfiguration", + "markdownDescription": "Settings that define where logs are stored\\. \n*Required*: No \n*Type*: [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-loggingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingConfiguration" }, "MetricsConfigurations": { "items": { "$ref": "#/definitions/AWS::S3::Bucket.MetricsConfiguration" }, + "markdownDescription": "Specifies a metrics configuration for the CloudWatch request metrics \\(specified by the metrics configuration ID\\) from an Amazon S3 bucket\\. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration\\. If you don't include the elements you want to keep, they are erased\\. For more information, see [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html)\\. \n*Required*: No \n*Type*: List of [MetricsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricsConfigurations", "type": "array" }, "NotificationConfiguration": { - "$ref": "#/definitions/AWS::S3::Bucket.NotificationConfiguration" + "$ref": "#/definitions/AWS::S3::Bucket.NotificationConfiguration", + "markdownDescription": "Configuration that defines how Amazon S3 handles bucket notifications\\. \n*Required*: No \n*Type*: [NotificationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationConfiguration" }, "ObjectLockConfiguration": { - "$ref": "#/definitions/AWS::S3::Bucket.ObjectLockConfiguration" + "$ref": "#/definitions/AWS::S3::Bucket.ObjectLockConfiguration", + "markdownDescription": "Places an Object Lock configuration on the specified bucket\\. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket\\. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html)\\. \n+ The `DefaultRetention` settings require both a mode and a period\\.\n+ The `DefaultRetention` period can be either `Days` or `Years` but you must select one\\. You cannot specify `Days` and `Years` at the same time\\.\n+ You can only enable Object Lock for new buckets\\. If you want to turn on Object Lock for an existing bucket, contact AWS Support\\.\n*Required*: No \n*Type*: [ObjectLockConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectLockConfiguration" }, "ObjectLockEnabled": { + "markdownDescription": "Indicates whether this bucket has an Object Lock configuration enabled\\. Enable `ObjectLockEnabled` when you apply `ObjectLockConfiguration` to a bucket\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ObjectLockEnabled", "type": "boolean" }, "OwnershipControls": { - "$ref": "#/definitions/AWS::S3::Bucket.OwnershipControls" + "$ref": "#/definitions/AWS::S3::Bucket.OwnershipControls", + "markdownDescription": "Configuration that defines how Amazon S3 handles Object Ownership rules\\. \n*Required*: No \n*Type*: [OwnershipControls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrols.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OwnershipControls" }, "PublicAccessBlockConfiguration": { - "$ref": "#/definitions/AWS::S3::Bucket.PublicAccessBlockConfiguration" + "$ref": "#/definitions/AWS::S3::Bucket.PublicAccessBlockConfiguration", + "markdownDescription": "Configuration that defines how Amazon S3 handles public access\\. \n*Required*: No \n*Type*: [PublicAccessBlockConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-publicaccessblockconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublicAccessBlockConfiguration" }, "ReplicationConfiguration": { - "$ref": "#/definitions/AWS::S3::Bucket.ReplicationConfiguration" + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationConfiguration", + "markdownDescription": "Configuration for replicating objects in an S3 bucket\\. To enable replication, you must also enable versioning by using the `VersioningConfiguration` property\\. \nAmazon S3 can store replicated objects in a single destination bucket or multiple destination buckets\\. The destination bucket or buckets must already exist\\. \n*Required*: No \n*Type*: [ReplicationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationConfiguration" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An arbitrary set of tags \\(key\\-value pairs\\) for this S3 bucket\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VersioningConfiguration": { - "$ref": "#/definitions/AWS::S3::Bucket.VersioningConfiguration" + "$ref": "#/definitions/AWS::S3::Bucket.VersioningConfiguration", + "markdownDescription": "Enables multiple versions of all objects in this bucket\\. You might enable versioning to prevent objects from being deleted or overwritten by mistake or to archive objects so that you can retrieve previous versions of them\\. \n*Required*: No \n*Type*: [VersioningConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-versioningconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VersioningConfiguration" }, "WebsiteConfiguration": { - "$ref": "#/definitions/AWS::S3::Bucket.WebsiteConfiguration" + "$ref": "#/definitions/AWS::S3::Bucket.WebsiteConfiguration", + "markdownDescription": "Information used to configure the bucket as a static website\\. For more information, see [Hosting Websites on Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html)\\. \n*Required*: No \n*Type*: [WebsiteConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WebsiteConfiguration" } }, "type": "object" @@ -130688,6 +159661,8 @@ "additionalProperties": false, "properties": { "DaysAfterInitiation": { + "markdownDescription": "Specifies the number of days after which Amazon S3 stops an incomplete multipart upload\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DaysAfterInitiation", "type": "number" } }, @@ -130700,6 +159675,8 @@ "additionalProperties": false, "properties": { "AccelerationStatus": { + "markdownDescription": "Specifies the transfer acceleration status of the bucket\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Enabled | Suspended` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccelerationStatus", "type": "string" } }, @@ -130712,6 +159689,8 @@ "additionalProperties": false, "properties": { "Owner": { + "markdownDescription": "Specifies the replica ownership\\. For default and valid values, see [PUT bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) in the *Amazon S3 API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Destination` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Owner", "type": "string" } }, @@ -130724,18 +159703,26 @@ "additionalProperties": false, "properties": { "Id": { + "markdownDescription": "The ID that identifies the analytics configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "Prefix": { + "markdownDescription": "The prefix that an object must have to be included in the analytics results\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" }, "StorageClassAnalysis": { - "$ref": "#/definitions/AWS::S3::Bucket.StorageClassAnalysis" + "$ref": "#/definitions/AWS::S3::Bucket.StorageClassAnalysis", + "markdownDescription": "Contains data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes\\. \n*Required*: Yes \n*Type*: [StorageClassAnalysis](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-storageclassanalysis.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageClassAnalysis" }, "TagFilters": { "items": { "$ref": "#/definitions/AWS::S3::Bucket.TagFilter" }, + "markdownDescription": "The tags to use when evaluating an analytics filter\\. \nThe analytics only includes objects that meet the filter's criteria\\. If no filter is specified, all of the contents of the bucket are included in the analysis\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagFilters", "type": "array" } }, @@ -130752,6 +159739,8 @@ "items": { "$ref": "#/definitions/AWS::S3::Bucket.ServerSideEncryptionRule" }, + "markdownDescription": "Specifies the default server\\-side\\-encryption configuration\\. \n*Required*: Yes \n*Type*: List of [ServerSideEncryptionRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerSideEncryptionConfiguration", "type": "array" } }, @@ -130767,6 +159756,8 @@ "items": { "$ref": "#/definitions/AWS::S3::Bucket.CorsRule" }, + "markdownDescription": "A set of origins and methods \\(cross\\-origin access that you want to allow\\)\\. You can add up to 100 rules to the configuration\\. \n*Required*: Yes \n*Type*: List of [CorsRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors-corsrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CorsRules", "type": "array" } }, @@ -130782,30 +159773,42 @@ "items": { "type": "string" }, + "markdownDescription": "Headers that are specified in the `Access-Control-Request-Headers` header\\. These headers are allowed in a preflight OPTIONS request\\. In response to any preflight OPTIONS request, Amazon S3 returns any requested headers that are allowed\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedHeaders", "type": "array" }, "AllowedMethods": { "items": { "type": "string" }, + "markdownDescription": "An HTTP method that you allow the origin to run\\. \n*Allowed values*: `GET` \\| `PUT` \\| `HEAD` \\| `POST` \\| `DELETE` \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedMethods", "type": "array" }, "AllowedOrigins": { "items": { "type": "string" }, + "markdownDescription": "One or more origins you want customers to be able to access the bucket from\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedOrigins", "type": "array" }, "ExposedHeaders": { "items": { "type": "string" }, + "markdownDescription": "One or more headers in the response that you want customers to be able to access from their applications \\(for example, from a JavaScript `XMLHttpRequest` object\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExposedHeaders", "type": "array" }, "Id": { + "markdownDescription": "A unique identifier for this rule\\. The value must be no more than 255 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "MaxAge": { + "markdownDescription": "The time in seconds that your browser is to cache the preflight response for the specified resource\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxAge", "type": "number" } }, @@ -130819,9 +159822,13 @@ "additionalProperties": false, "properties": { "Destination": { - "$ref": "#/definitions/AWS::S3::Bucket.Destination" + "$ref": "#/definitions/AWS::S3::Bucket.Destination", + "markdownDescription": "The place to store the data for an analysis\\. \n*Required*: Yes \n*Type*: [Destination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" }, "OutputSchemaVersion": { + "markdownDescription": "The version of the output schema to use when exporting data\\. Must be `V_1`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `V_1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputSchemaVersion", "type": "string" } }, @@ -130835,12 +159842,18 @@ "additionalProperties": false, "properties": { "Days": { + "markdownDescription": "The number of days that you want to specify for the default retention period\\. If Object Lock is turned on, you must specify `Mode` and specify either `Days` or `Years`\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Days", "type": "number" }, "Mode": { + "markdownDescription": "The default Object Lock retention mode you want to apply to new objects placed in the specified bucket\\. If Object Lock is turned on, you must specify `Mode` and specify either `Days` or `Years`\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `COMPLIANCE | GOVERNANCE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", "type": "string" }, "Years": { + "markdownDescription": "The number of years that you want to specify for the default retention period\\. If Object Lock is turned on, you must specify `Mode` and specify either `Days` or `Years`\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Years", "type": "number" } }, @@ -130850,6 +159863,8 @@ "additionalProperties": false, "properties": { "Status": { + "markdownDescription": "Indicates whether to replicate delete markers\\. Disabled by default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" } }, @@ -130859,15 +159874,23 @@ "additionalProperties": false, "properties": { "BucketAccountId": { + "markdownDescription": "The account ID that owns the destination S3 bucket\\. If no account ID is provided, the owner is not validated before exporting data\\. \n Although this value is optional, we strongly recommend that you set it to help prevent problems if the destination bucket ownership changes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketAccountId", "type": "string" }, "BucketArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the bucket to which data is exported\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketArn", "type": "string" }, "Format": { + "markdownDescription": "Specifies the file format used when exporting data to Amazon S3\\. \n*Allowed values*: `CSV` \\| `ORC` \\| `Parquet` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", "type": "string" }, "Prefix": { + "markdownDescription": "The prefix to use when exporting data\\. The prefix is prepended to all results\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" } }, @@ -130881,6 +159904,8 @@ "additionalProperties": false, "properties": { "ReplicaKmsKeyID": { + "markdownDescription": "Specifies the ID \\(Key ARN or Alias ARN\\) of the customer managed AWS KMS key stored in AWS Key Management Service \\(KMS\\) for the destination bucket\\. Amazon S3 uses this key to encrypt replica objects\\. Amazon S3 only supports symmetric, customer managed KMS keys\\. For more information, see [Using symmetric and asymmetric keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) in the * AWS Key Management Service Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicaKmsKeyID", "type": "string" } }, @@ -130893,6 +159918,8 @@ "additionalProperties": false, "properties": { "EventBridgeEnabled": { + "markdownDescription": "Enables delivery of events to Amazon EventBridge\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventBridgeEnabled", "type": "boolean" } }, @@ -130902,9 +159929,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The object key name prefix or suffix identifying one or more objects to which the filtering rule applies\\. The maximum length is 1,024 characters\\. Overlapping prefixes and suffixes are not supported\\. For more information, see [Configuring Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `prefix | suffix` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "The value that the filter searches for in object key names\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -130918,24 +159949,34 @@ "additionalProperties": false, "properties": { "Id": { + "markdownDescription": "The ID used to identify the S3 Intelligent\\-Tiering configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "Prefix": { + "markdownDescription": "An object key name prefix that identifies the subset of objects to which the rule applies\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" }, "Status": { + "markdownDescription": "Specifies the status of the configuration\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" }, "TagFilters": { "items": { "$ref": "#/definitions/AWS::S3::Bucket.TagFilter" }, + "markdownDescription": "A container for a key\\-value pair\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagFilters", "type": "array" }, "Tierings": { "items": { "$ref": "#/definitions/AWS::S3::Bucket.Tiering" }, + "markdownDescription": "Specifies a list of S3 Intelligent\\-Tiering storage class tiers in the configuration\\. At least one tier must be defined in the list\\. At most, you can specify two tiers in the list, one for each available AccessTier: `ARCHIVE_ACCESS` and `DEEP_ARCHIVE_ACCESS`\\. \nYou only need Intelligent Tiering Configuration enabled on a bucket if you want to automatically move objects stored in the Intelligent\\-Tiering storage class to Archive Access or Deep Archive Access tiers\\.\n*Required*: Yes \n*Type*: List of [Tiering](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tiering.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tierings", "type": "array" } }, @@ -130950,27 +159991,41 @@ "additionalProperties": false, "properties": { "Destination": { - "$ref": "#/definitions/AWS::S3::Bucket.Destination" + "$ref": "#/definitions/AWS::S3::Bucket.Destination", + "markdownDescription": "Contains information about where to publish the inventory results\\. \n*Required*: Yes \n*Type*: [Destination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" }, "Enabled": { + "markdownDescription": "Specifies whether the inventory is enabled or disabled\\. If set to `True`, an inventory list is generated\\. If set to `False`, no inventory list is generated\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "Id": { + "markdownDescription": "The ID used to identify the inventory configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "IncludedObjectVersions": { + "markdownDescription": "Object versions to include in the inventory list\\. If set to `All`, the list includes all the object versions, which adds the version\\-related fields `VersionId`, `IsLatest`, and `DeleteMarker` to the list\\. If set to `Current`, the list does not contain these version\\-related fields\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `All | Current` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludedObjectVersions", "type": "string" }, "OptionalFields": { "items": { "type": "string" }, + "markdownDescription": "Contains the optional fields that are included in the inventory results\\. \n*Valid values*: ` Size | LastModifiedDate | StorageClass | ETag | IsMultipartUploaded | ReplicationStatus | EncryptionStatus | ObjectLockRetainUntilDate | ObjectLockMode | ObjectLockLegalHoldStatus | IntelligentTieringAccessTier | BucketKeyStatus ` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OptionalFields", "type": "array" }, "Prefix": { + "markdownDescription": "Specifies the inventory filter prefix\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" }, "ScheduleFrequency": { + "markdownDescription": "Specifies the schedule for generating inventory results\\. \n*Allowed values*: `Daily` \\| `Weekly` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleFrequency", "type": "string" } }, @@ -130987,12 +160042,18 @@ "additionalProperties": false, "properties": { "Event": { + "markdownDescription": "The Amazon S3 bucket event for which to invoke the AWS Lambda function\\. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Event", "type": "string" }, "Filter": { - "$ref": "#/definitions/AWS::S3::Bucket.NotificationFilter" + "$ref": "#/definitions/AWS::S3::Bucket.NotificationFilter", + "markdownDescription": "The filtering rules that determine which objects invoke the AWS Lambda function\\. For example, you can create a filter so that only image files with a `.jpg` extension invoke the function when they are added to the Amazon S3 bucket\\. \n*Required*: No \n*Type*: [NotificationFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filter" }, "Function": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Lambda function that Amazon S3 invokes when the specified event type occurs\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Function", "type": "string" } }, @@ -131009,6 +160070,8 @@ "items": { "$ref": "#/definitions/AWS::S3::Bucket.Rule" }, + "markdownDescription": "A lifecycle rule for individual objects in an Amazon S3 bucket\\. \n*Required*: Yes \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", "type": "array" } }, @@ -131021,9 +160084,13 @@ "additionalProperties": false, "properties": { "DestinationBucketName": { + "markdownDescription": "The name of the bucket where Amazon S3 should store server access log files\\. You can store log files in any bucket that you own\\. By default, logs are stored in the bucket where the `LoggingConfiguration` property is defined\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationBucketName", "type": "string" }, "LogFilePrefix": { + "markdownDescription": "A prefix for all log object keys\\. If you store log files from multiple Amazon S3 buckets in a single bucket, you can use a prefix to distinguish which log files came from which bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogFilePrefix", "type": "string" } }, @@ -131033,9 +160100,13 @@ "additionalProperties": false, "properties": { "EventThreshold": { - "$ref": "#/definitions/AWS::S3::Bucket.ReplicationTimeValue" + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationTimeValue", + "markdownDescription": "A container specifying the time threshold for emitting the `s3:Replication:OperationMissedThreshold` event\\. \n*Required*: No \n*Type*: [ReplicationTimeValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtimevalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventThreshold" }, "Status": { + "markdownDescription": "Specifies whether the replication metrics are enabled\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" } }, @@ -131048,18 +160119,26 @@ "additionalProperties": false, "properties": { "AccessPointArn": { + "markdownDescription": "The access point that was used while performing operations on the object\\. The metrics configuration only includes objects that meet the filter's criteria\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessPointArn", "type": "string" }, "Id": { + "markdownDescription": "The ID used to identify the metrics configuration\\. This can be any value you choose that helps you identify your metrics configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "Prefix": { + "markdownDescription": "The prefix that an object must have to be included in the metrics results\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" }, "TagFilters": { "items": { "$ref": "#/definitions/AWS::S3::Bucket.TagFilter" }, + "markdownDescription": "Specifies a list of tag filters to use as a metrics configuration filter\\. The metrics configuration includes only objects that meet the filter's criteria\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagFilters", "type": "array" } }, @@ -131072,9 +160151,13 @@ "additionalProperties": false, "properties": { "NewerNoncurrentVersions": { + "markdownDescription": "Specifies how many noncurrent versions Amazon S3 will retain\\. If there are this many more recent noncurrent versions, Amazon S3 will take the associated action\\. For more information about noncurrent versions, see [Lifecycle configuration elements](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NewerNoncurrentVersions", "type": "number" }, "NoncurrentDays": { + "markdownDescription": "Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action\\. For information about the noncurrent days calculations, see [How Amazon S3 Calculates When an Object Became Noncurrent](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoncurrentDays", "type": "number" } }, @@ -131087,12 +160170,18 @@ "additionalProperties": false, "properties": { "NewerNoncurrentVersions": { + "markdownDescription": "Specifies how many noncurrent versions Amazon S3 will retain\\. If there are this many more recent noncurrent versions, Amazon S3 will take the associated action\\. For more information about noncurrent versions, see [Lifecycle configuration elements](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NewerNoncurrentVersions", "type": "number" }, "StorageClass": { + "markdownDescription": "The class of storage used to store the object\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DEEP_ARCHIVE | GLACIER | GLACIER_IR | INTELLIGENT_TIERING | ONEZONE_IA | STANDARD_IA` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageClass", "type": "string" }, "TransitionInDays": { + "markdownDescription": "Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action\\. For information about the noncurrent days calculations, see [How Amazon S3 Calculates How Long an Object Has Been Noncurrent](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitionInDays", "type": "number" } }, @@ -131106,24 +160195,32 @@ "additionalProperties": false, "properties": { "EventBridgeConfiguration": { - "$ref": "#/definitions/AWS::S3::Bucket.EventBridgeConfiguration" + "$ref": "#/definitions/AWS::S3::Bucket.EventBridgeConfiguration", + "markdownDescription": "Enables delivery of events to Amazon EventBridge\\. \n*Required*: No \n*Type*: [EventBridgeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-eventbridgeconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventBridgeConfiguration" }, "LambdaConfigurations": { "items": { "$ref": "#/definitions/AWS::S3::Bucket.LambdaConfiguration" }, + "markdownDescription": "Describes the AWS Lambda functions to invoke and the events for which to invoke them\\. \n*Required*: No \n*Type*: List of [LambdaConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-lambdaconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaConfigurations", "type": "array" }, "QueueConfigurations": { "items": { "$ref": "#/definitions/AWS::S3::Bucket.QueueConfiguration" }, + "markdownDescription": "The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages\\. \n*Required*: No \n*Type*: List of [QueueConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-queueconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueueConfigurations", "type": "array" }, "TopicConfigurations": { "items": { "$ref": "#/definitions/AWS::S3::Bucket.TopicConfiguration" }, + "markdownDescription": "The topic to which notifications are sent and the events for which notifications are generated\\. \n*Required*: No \n*Type*: List of [TopicConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-topicconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TopicConfigurations", "type": "array" } }, @@ -131133,7 +160230,9 @@ "additionalProperties": false, "properties": { "S3Key": { - "$ref": "#/definitions/AWS::S3::Bucket.S3KeyFilter" + "$ref": "#/definitions/AWS::S3::Bucket.S3KeyFilter", + "markdownDescription": "A container for object key name prefix and suffix filtering rules\\. \n*Required*: Yes \n*Type*: [S3KeyFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Key" } }, "required": [ @@ -131145,10 +160244,14 @@ "additionalProperties": false, "properties": { "ObjectLockEnabled": { + "markdownDescription": "Indicates whether this bucket has an Object Lock configuration enabled\\. Enable `ObjectLockEnabled` when you apply `ObjectLockConfiguration` to a bucket\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectLockEnabled", "type": "string" }, "Rule": { - "$ref": "#/definitions/AWS::S3::Bucket.ObjectLockRule" + "$ref": "#/definitions/AWS::S3::Bucket.ObjectLockRule", + "markdownDescription": "Specifies the Object Lock rule for the specified object\\. Enable the this rule when you apply `ObjectLockConfiguration` to a bucket\\. If Object Lock is turned on, bucket settings require both `Mode` and a period of either `Days` or `Years`\\. You cannot specify `Days` and `Years` at the same time\\. For more information, see [ObjectLockRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockrule.html) and [DefaultRetention](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html)\\. \n*Required*: Conditional \n*Type*: [ObjectLockRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rule" } }, "type": "object" @@ -131157,7 +160260,9 @@ "additionalProperties": false, "properties": { "DefaultRetention": { - "$ref": "#/definitions/AWS::S3::Bucket.DefaultRetention" + "$ref": "#/definitions/AWS::S3::Bucket.DefaultRetention", + "markdownDescription": "The default Object Lock retention mode and period that you want to apply to new objects placed in the specified bucket\\. If Object Lock is turned on, bucket settings require both `Mode` and a period of either `Days` or `Years`\\. You cannot specify `Days` and `Years` at the same time\\. For more information about allowable values for mode and period, see [DefaultRetention](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html)\\. \n*Required*: Conditional \n*Type*: [DefaultRetention](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultRetention" } }, "type": "object" @@ -131169,6 +160274,8 @@ "items": { "$ref": "#/definitions/AWS::S3::Bucket.OwnershipControlsRule" }, + "markdownDescription": "Specifies the container element for Object Ownership rules\\. \n*Required*: Yes \n*Type*: List of [OwnershipControlsRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrolsrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", "type": "array" } }, @@ -131181,6 +160288,8 @@ "additionalProperties": false, "properties": { "ObjectOwnership": { + "markdownDescription": "Specifies an Object Ownership rule\\. \n*Allowed values*: `BucketOwnerEnforced` \\| `ObjectWriter` \\| `BucketOwnerPreferred` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectOwnership", "type": "string" } }, @@ -131190,15 +160299,23 @@ "additionalProperties": false, "properties": { "BlockPublicAcls": { + "markdownDescription": "Specifies whether Amazon S3 should block public access control lists \\(ACLs\\) for this bucket and objects in this bucket\\. Setting this element to `TRUE` causes the following behavior: \n+ PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is public\\.\n+ PUT Object calls fail if the request includes a public ACL\\.\n+ PUT Bucket calls fail if the request includes a public ACL\\.\nEnabling this setting doesn't affect existing policies or ACLs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockPublicAcls", "type": "boolean" }, "BlockPublicPolicy": { + "markdownDescription": "Specifies whether Amazon S3 should block public bucket policies for this bucket\\. Setting this element to `TRUE` causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access\\. \nEnabling this setting doesn't affect existing bucket policies\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockPublicPolicy", "type": "boolean" }, "IgnorePublicAcls": { + "markdownDescription": "Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket\\. Setting this element to `TRUE` causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket\\. \nEnabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IgnorePublicAcls", "type": "boolean" }, "RestrictPublicBuckets": { + "markdownDescription": "Specifies whether Amazon S3 should restrict public bucket policies for this bucket\\. Setting this element to `TRUE` restricts access to this bucket to only AWS service principals and authorized users within this account if the bucket has a public policy\\. \nEnabling this setting doesn't affect previously stored bucket policies, except that public and cross\\-account access within any public bucket policy, including non\\-public delegation to specific accounts, is blocked\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestrictPublicBuckets", "type": "boolean" } }, @@ -131208,12 +160325,18 @@ "additionalProperties": false, "properties": { "Event": { + "markdownDescription": "The Amazon S3 bucket event about which you want to publish messages to Amazon SQS\\. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Event", "type": "string" }, "Filter": { - "$ref": "#/definitions/AWS::S3::Bucket.NotificationFilter" + "$ref": "#/definitions/AWS::S3::Bucket.NotificationFilter", + "markdownDescription": "The filtering rules that determine which objects trigger notifications\\. For example, you can create a filter so that Amazon S3 sends notifications only when image files with a `.jpg` extension are added to the bucket\\. \n*Required*: No \n*Type*: [NotificationFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filter" }, "Queue": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type\\. FIFO queues are not allowed when enabling an SQS queue as the event notification destination\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Queue", "type": "string" } }, @@ -131227,9 +160350,13 @@ "additionalProperties": false, "properties": { "HostName": { + "markdownDescription": "Name of the host where requests are redirected\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostName", "type": "string" }, "Protocol": { + "markdownDescription": "Protocol to use when redirecting requests\\. The default is the protocol that is used in the original request\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `http | https` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "string" } }, @@ -131242,18 +160369,28 @@ "additionalProperties": false, "properties": { "HostName": { + "markdownDescription": "The host name to use in the redirect request\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostName", "type": "string" }, "HttpRedirectCode": { + "markdownDescription": "The HTTP redirect code to use on the response\\. Not required if one of the siblings is present\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpRedirectCode", "type": "string" }, "Protocol": { + "markdownDescription": "Protocol to use when redirecting requests\\. The default is the protocol that is used in the original request\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `http | https` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", "type": "string" }, "ReplaceKeyPrefixWith": { + "markdownDescription": "The object key prefix to use in the redirect request\\. For example, to redirect requests for all pages with prefix `docs/` \\(objects in the `docs/` folder\\) to `documents/`, you can set a condition block with `KeyPrefixEquals` set to `docs/` and in the Redirect set `ReplaceKeyPrefixWith` to `/documents`\\. Not required if one of the siblings is present\\. Can be present only if `ReplaceKeyWith` is not provided\\. \nReplacement must be made for object keys containing special characters \\(such as carriage returns\\) when using XML requests\\. For more information, see [ XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplaceKeyPrefixWith", "type": "string" }, "ReplaceKeyWith": { + "markdownDescription": "The specific object key to use in the redirect request\\. For example, redirect request to `error.html`\\. Not required if one of the siblings is present\\. Can be present only if `ReplaceKeyPrefixWith` is not provided\\. \nReplacement must be made for object keys containing special characters \\(such as carriage returns\\) when using XML requests\\. For more information, see [ XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplaceKeyWith", "type": "string" } }, @@ -131263,6 +160400,8 @@ "additionalProperties": false, "properties": { "Status": { + "markdownDescription": "Specifies whether Amazon S3 replicates modifications on replicas\\. \n*Allowed values*: `Enabled` \\| `Disabled` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" } }, @@ -131275,12 +160414,16 @@ "additionalProperties": false, "properties": { "Role": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Identity and Access Management \\(IAM\\) role that Amazon S3 assumes when replicating objects\\. For more information, see [How to Set Up Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-how-setup.html) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Role", "type": "string" }, "Rules": { "items": { "$ref": "#/definitions/AWS::S3::Bucket.ReplicationRule" }, + "markdownDescription": "A container for one or more replication rules\\. A replication configuration must have at least one rule and can contain a maximum of 1,000 rules\\. \n*Required*: Yes \n*Type*: List of [ReplicationRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", "type": "array" } }, @@ -131294,24 +160437,38 @@ "additionalProperties": false, "properties": { "AccessControlTranslation": { - "$ref": "#/definitions/AWS::S3::Bucket.AccessControlTranslation" + "$ref": "#/definitions/AWS::S3::Bucket.AccessControlTranslation", + "markdownDescription": "Specify this only in a cross\\-account scenario \\(where source and destination bucket owners are not the same\\), and you want to change replica ownership to the AWS account that owns the destination bucket\\. If this is not specified in the replication configuration, the replicas are owned by same AWS account that owns the source object\\. \n*Required*: No \n*Type*: [AccessControlTranslation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accesscontroltranslation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessControlTranslation" }, "Account": { + "markdownDescription": "Destination bucket owner account ID\\. In a cross\\-account scenario, if you direct Amazon S3 to change replica ownership to the AWS account that owns the destination bucket by specifying the `AccessControlTranslation` property, this is the account ID of the destination bucket owner\\. For more information, see [Cross\\-Region Replication Additional Configuration: Change Replica Owner](https://docs.aws.amazon.com/AmazonS3/latest/dev/crr-change-owner.html) in the *Amazon S3 User Guide*\\. \nIf you specify the `AccessControlTranslation` property, the `Account` property is required\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Account", "type": "string" }, "Bucket": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the bucket where you want Amazon S3 to store the results\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", "type": "string" }, "EncryptionConfiguration": { - "$ref": "#/definitions/AWS::S3::Bucket.EncryptionConfiguration" + "$ref": "#/definitions/AWS::S3::Bucket.EncryptionConfiguration", + "markdownDescription": "Specifies encryption\\-related information\\. \n*Required*: No \n*Type*: [EncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-encryptionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionConfiguration" }, "Metrics": { - "$ref": "#/definitions/AWS::S3::Bucket.Metrics" + "$ref": "#/definitions/AWS::S3::Bucket.Metrics", + "markdownDescription": "A container specifying replication metrics\\-related settings enabling replication metrics and events\\. \n*Required*: No \n*Type*: [Metrics](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metrics.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metrics" }, "ReplicationTime": { - "$ref": "#/definitions/AWS::S3::Bucket.ReplicationTime" + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationTime", + "markdownDescription": "A container specifying S3 Replication Time Control \\(S3 RTC\\), including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated\\. Must be specified together with a `Metrics` block\\. \n*Required*: No \n*Type*: [ReplicationTime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtime.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationTime" }, "StorageClass": { + "markdownDescription": "The storage class to use when replicating objects, such as S3 Standard or reduced redundancy\\. By default, Amazon S3 uses the storage class of the source object to create the object replica\\. \nFor valid values, see the `StorageClass` element of the [PUT Bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) action in the *Amazon S3 API Reference*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DEEP_ARCHIVE | GLACIER | GLACIER_IR | INTELLIGENT_TIERING | ONEZONE_IA | OUTPOSTS | REDUCED_REDUNDANCY | STANDARD | STANDARD_IA` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageClass", "type": "string" } }, @@ -131324,27 +160481,43 @@ "additionalProperties": false, "properties": { "DeleteMarkerReplication": { - "$ref": "#/definitions/AWS::S3::Bucket.DeleteMarkerReplication" + "$ref": "#/definitions/AWS::S3::Bucket.DeleteMarkerReplication", + "markdownDescription": "Specifies whether Amazon S3 replicates delete markers\\. If you specify a `Filter` in your replication configuration, you must also include a `DeleteMarkerReplication` element\\. If your `Filter` includes a `Tag` element, the `DeleteMarkerReplication` `Status` must be set to Disabled, because Amazon S3 does not support replicating delete markers for tag\\-based rules\\. For an example configuration, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config)\\. \nFor more information about delete marker replication, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html)\\. \nIf you are using an earlier version of the replication configuration, Amazon S3 handles replication of delete markers differently\\. For more information, see [Backward Compatibility](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations)\\.\n*Required*: No \n*Type*: [DeleteMarkerReplication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-deletemarkerreplication.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteMarkerReplication" }, "Destination": { - "$ref": "#/definitions/AWS::S3::Bucket.ReplicationDestination" + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationDestination", + "markdownDescription": "A container for information about the replication destination and its configurations including enabling the S3 Replication Time Control \\(S3 RTC\\)\\. \n*Required*: Yes \n*Type*: [ReplicationDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" }, "Filter": { - "$ref": "#/definitions/AWS::S3::Bucket.ReplicationRuleFilter" + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationRuleFilter", + "markdownDescription": "A filter that identifies the subset of objects to which the replication rule applies\\. A `Filter` must specify exactly one `Prefix`, `TagFilter`, or an `And` child element\\. The use of the filter field indicates this is a V2 replication configuration\\. V1 does not have this field\\. \n*Required*: No \n*Type*: [ReplicationRuleFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationrulefilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filter" }, "Id": { + "markdownDescription": "A unique identifier for the rule\\. The maximum value is 255 characters\\. If you don't specify a value, AWS CloudFormation generates a random ID\\. When using a V2 replication configuration this property is capitalized as \"ID\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "Prefix": { + "markdownDescription": "An object key name prefix that identifies the object or objects to which the rule applies\\. The maximum prefix length is 1,024 characters\\. To include all objects in a bucket, specify an empty string\\. \nReplacement must be made for object keys containing special characters \\(such as carriage returns\\) when using XML requests\\. For more information, see [ XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" }, "Priority": { + "markdownDescription": "The priority indicates which rule has precedence whenever two or more replication rules conflict\\. Amazon S3 will attempt to replicate objects according to all replication rules\\. However, if there are two or more rules with the same destination bucket, then objects will be replicated according to the rule with the highest priority\\. The higher the number, the higher the priority\\. \nFor more information, see [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" }, "SourceSelectionCriteria": { - "$ref": "#/definitions/AWS::S3::Bucket.SourceSelectionCriteria" + "$ref": "#/definitions/AWS::S3::Bucket.SourceSelectionCriteria", + "markdownDescription": "A container that describes additional filters for identifying the source objects that you want to replicate\\. You can choose to enable or disable the replication of these objects\\. \n*Required*: No \n*Type*: [SourceSelectionCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-sourceselectioncriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceSelectionCriteria" }, "Status": { + "markdownDescription": "Specifies whether the rule is enabled\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" } }, @@ -131358,12 +160531,16 @@ "additionalProperties": false, "properties": { "Prefix": { + "markdownDescription": "An object key name prefix that identifies the subset of objects to which the rule applies\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" }, "TagFilters": { "items": { "$ref": "#/definitions/AWS::S3::Bucket.TagFilter" }, + "markdownDescription": "An array of tags containing key and value pairs\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagFilters", "type": "array" } }, @@ -131373,13 +160550,19 @@ "additionalProperties": false, "properties": { "And": { - "$ref": "#/definitions/AWS::S3::Bucket.ReplicationRuleAndOperator" + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationRuleAndOperator", + "markdownDescription": "A container for specifying rule filters\\. The filters determine the subset of objects to which the rule applies\\. This element is required only if you specify more than one filter\\. For example: \n+ If you specify both a `Prefix` and a `TagFilter`, wrap these filters in an `And` tag\\.\n+ If you specify a filter based on multiple tags, wrap the `TagFilter` elements in an `And` tag\\.\n*Required*: No \n*Type*: [ReplicationRuleAndOperator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationruleandoperator.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "And" }, "Prefix": { + "markdownDescription": "An object key name prefix that identifies the subset of objects to which the rule applies\\. \nReplacement must be made for object keys containing special characters \\(such as carriage returns\\) when using XML requests\\. For more information, see [ XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" }, "TagFilter": { - "$ref": "#/definitions/AWS::S3::Bucket.TagFilter" + "$ref": "#/definitions/AWS::S3::Bucket.TagFilter", + "markdownDescription": "A container for specifying a tag key and value\\. \nThe rule applies only to objects that have the tag in their tag set\\. \n*Required*: No \n*Type*: [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagFilter" } }, "type": "object" @@ -131388,10 +160571,14 @@ "additionalProperties": false, "properties": { "Status": { + "markdownDescription": "Specifies whether the replication time is enabled\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" }, "Time": { - "$ref": "#/definitions/AWS::S3::Bucket.ReplicationTimeValue" + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationTimeValue", + "markdownDescription": "A container specifying the time by which replication should be complete for all objects and operations on objects\\. \n*Required*: Yes \n*Type*: [ReplicationTimeValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtimevalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Time" } }, "required": [ @@ -131404,6 +160591,8 @@ "additionalProperties": false, "properties": { "Minutes": { + "markdownDescription": "Contains an integer specifying time in minutes\\. \n Valid value: 15 \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Minutes", "type": "number" } }, @@ -131416,10 +160605,14 @@ "additionalProperties": false, "properties": { "RedirectRule": { - "$ref": "#/definitions/AWS::S3::Bucket.RedirectRule" + "$ref": "#/definitions/AWS::S3::Bucket.RedirectRule", + "markdownDescription": "Container for redirect information\\. You can redirect requests to another host, to another page, or with another protocol\\. In the event of an error, you can specify a different error code to return\\. \n*Required*: Yes \n*Type*: [RedirectRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-redirectrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedirectRule" }, "RoutingRuleCondition": { - "$ref": "#/definitions/AWS::S3::Bucket.RoutingRuleCondition" + "$ref": "#/definitions/AWS::S3::Bucket.RoutingRuleCondition", + "markdownDescription": "A container for describing a condition that must be met for the specified redirect to apply\\. For example, 1\\. If request is for pages in the `/docs` folder, redirect to the `/documents` folder\\. 2\\. If request results in HTTP error 4xx, redirect request to another host where you might process the error\\. \n*Required*: No \n*Type*: [RoutingRuleCondition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-routingrulecondition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoutingRuleCondition" } }, "required": [ @@ -131431,9 +160624,13 @@ "additionalProperties": false, "properties": { "HttpErrorCodeReturnedEquals": { + "markdownDescription": "The HTTP error code when the redirect is applied\\. In the event of an error, if the error code equals this value, then the specified redirect is applied\\. \nRequired when parent element `Condition` is specified and sibling `KeyPrefixEquals` is not specified\\. If both are specified, then both must be true for the redirect to be applied\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpErrorCodeReturnedEquals", "type": "string" }, "KeyPrefixEquals": { + "markdownDescription": "The object key name prefix when the redirect is applied\\. For example, to redirect requests for `ExamplePage.html`, the key prefix will be `ExamplePage.html`\\. To redirect request for all pages with the prefix `docs/`, the key prefix will be `/docs`, which identifies all objects in the docs/ folder\\. \nRequired when the parent element `Condition` is specified and sibling `HttpErrorCodeReturnedEquals` is not specified\\. If both conditions are specified, both must be true for the redirect to be applied\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyPrefixEquals", "type": "string" } }, @@ -131443,60 +160640,92 @@ "additionalProperties": false, "properties": { "AbortIncompleteMultipartUpload": { - "$ref": "#/definitions/AWS::S3::Bucket.AbortIncompleteMultipartUpload" + "$ref": "#/definitions/AWS::S3::Bucket.AbortIncompleteMultipartUpload", + "markdownDescription": "Specifies a lifecycle rule that stops incomplete multipart uploads to an Amazon S3 bucket\\. \n*Required*: Conditional \n*Type*: [AbortIncompleteMultipartUpload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-abortincompletemultipartupload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AbortIncompleteMultipartUpload" }, "ExpirationDate": { + "markdownDescription": "Indicates when objects are deleted from Amazon S3 and Amazon S3 Glacier\\. The date value must be in ISO 8601 format\\. The time is always midnight UTC\\. If you specify an expiration and transition time, you must use the same time unit for both properties \\(either in days or by date\\)\\. The expiration time must also be later than the transition time\\. \n*Required*: Conditional \n*Type*: Timestamp \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExpirationDate", "type": "string" }, "ExpirationInDays": { + "markdownDescription": "Indicates the number of days after creation when objects are deleted from Amazon S3 and Amazon S3 Glacier\\. If you specify an expiration and transition time, you must use the same time unit for both properties \\(either in days or by date\\)\\. The expiration time must also be later than the transition time\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExpirationInDays", "type": "number" }, "ExpiredObjectDeleteMarker": { + "markdownDescription": "Indicates whether Amazon S3 will remove a delete marker without any noncurrent versions\\. If set to true, the delete marker will be removed if there are no noncurrent versions\\. This cannot be specified with `ExpirationInDays`, `ExpirationDate`, or `TagFilters`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExpiredObjectDeleteMarker", "type": "boolean" }, "Id": { + "markdownDescription": "Unique identifier for the rule\\. The value can't be longer than 255 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "NoncurrentVersionExpiration": { - "$ref": "#/definitions/AWS::S3::Bucket.NoncurrentVersionExpiration" + "$ref": "#/definitions/AWS::S3::Bucket.NoncurrentVersionExpiration", + "markdownDescription": "Specifies when noncurrent object versions expire\\. Upon expiration, Amazon S3 permanently deletes the noncurrent object versions\\. You set this lifecycle configuration action on a bucket that has versioning enabled \\(or suspended\\) to request that Amazon S3 delete noncurrent object versions at a specific period in the object's lifetime\\. \n*Required*: No \n*Type*: [NoncurrentVersionExpiration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-noncurrentversionexpiration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoncurrentVersionExpiration" }, "NoncurrentVersionExpirationInDays": { + "markdownDescription": "\\(Deprecated\\.\\) For buckets with versioning enabled \\(or suspended\\), specifies the time, in days, between when a new version of the object is uploaded to the bucket and when old versions of the object expire\\. When object versions expire, Amazon S3 permanently deletes them\\. If you specify a transition and expiration time, the expiration time must be later than the transition time\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoncurrentVersionExpirationInDays", "type": "number" }, "NoncurrentVersionTransition": { - "$ref": "#/definitions/AWS::S3::Bucket.NoncurrentVersionTransition" + "$ref": "#/definitions/AWS::S3::Bucket.NoncurrentVersionTransition", + "markdownDescription": "\\(Deprecated\\.\\) For buckets with versioning enabled \\(or suspended\\), specifies when non\\-current objects transition to a specified storage class\\. If you specify a transition and expiration time, the expiration time must be later than the transition time\\. If you specify this property, don't specify the `NoncurrentVersionTransitions` property\\. \n*Required*: Conditional \n*Type*: [NoncurrentVersionTransition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-noncurrentversiontransition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoncurrentVersionTransition" }, "NoncurrentVersionTransitions": { "items": { "$ref": "#/definitions/AWS::S3::Bucket.NoncurrentVersionTransition" }, + "markdownDescription": "For buckets with versioning enabled \\(or suspended\\), one or more transition rules that specify when non\\-current objects transition to a specified storage class\\. If you specify a transition and expiration time, the expiration time must be later than the transition time\\. If you specify this property, don't specify the `NoncurrentVersionTransition` property\\. \n*Required*: Conditional \n*Type*: List of [NoncurrentVersionTransition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-noncurrentversiontransition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoncurrentVersionTransitions", "type": "array" }, "ObjectSizeGreaterThan": { + "markdownDescription": "Specifies the minimum object size in bytes for this rule to apply to\\. For more information about size based rules, see [Lifecycle configuration using size\\-based rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lc-size-rules) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: Long \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectSizeGreaterThan", "type": "number" }, "ObjectSizeLessThan": { + "markdownDescription": "Specifies the maximum object size in bytes for this rule to apply to\\. For more information about sized based rules, see [Lifecycle configuration using size\\-based rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lc-size-rules) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: Long \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectSizeLessThan", "type": "number" }, "Prefix": { + "markdownDescription": "Object key prefix that identifies one or more objects to which this rule applies\\. \nReplacement must be made for object keys containing special characters \\(such as carriage returns\\) when using XML requests\\. For more information, see [ XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" }, "Status": { + "markdownDescription": "If `Enabled`, the rule is currently being applied\\. If `Disabled`, the rule is not currently being applied\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" }, "TagFilters": { "items": { "$ref": "#/definitions/AWS::S3::Bucket.TagFilter" }, + "markdownDescription": "Tags to use to identify a subset of objects to which the lifecycle rule applies\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagFilters", "type": "array" }, "Transition": { - "$ref": "#/definitions/AWS::S3::Bucket.Transition" + "$ref": "#/definitions/AWS::S3::Bucket.Transition", + "markdownDescription": "\\(Deprecated\\.\\) Specifies when an object transitions to a specified storage class\\. If you specify an expiration and transition time, you must use the same time unit for both properties \\(either in days or by date\\)\\. The expiration time must also be later than the transition time\\. If you specify this property, don't specify the `Transitions` property\\. \n*Required*: Conditional \n*Type*: [Transition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-transition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Transition" }, "Transitions": { "items": { "$ref": "#/definitions/AWS::S3::Bucket.Transition" }, + "markdownDescription": "One or more transition rules that specify when an object transitions to a specified storage class\\. If you specify an expiration and transition time, you must use the same time unit for both properties \\(either in days or by date\\)\\. The expiration time must also be later than the transition time\\. If you specify this property, don't specify the `Transition` property\\. \n*Required*: Conditional \n*Type*: List of [Transition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-transition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Transitions", "type": "array" } }, @@ -131512,6 +160741,8 @@ "items": { "$ref": "#/definitions/AWS::S3::Bucket.FilterRule" }, + "markdownDescription": "A list of containers for the key\\-value pair that defines the criteria for the filter rule\\. \n*Required*: Yes \n*Type*: List of [FilterRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key-rules.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", "type": "array" } }, @@ -131524,9 +160755,13 @@ "additionalProperties": false, "properties": { "KMSMasterKeyID": { + "markdownDescription": "KMS key ID to use for the default encryption\\. This parameter is allowed if SSEAlgorithm is aws:kms\\. \nYou can specify the key ID or the Amazon Resource Name \\(ARN\\) of the CMK\\. However, if you are using encryption with cross\\-account operations, you must use a fully qualified CMK ARN\\. For more information, see [Using encryption for cross\\-account operations](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy)\\. \nFor example: \n+ Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`\n+ Key ARN: `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`\nAmazon S3 only supports symmetric KMS keys and not asymmetric KMS keys\\. For more information, see [Using Symmetric and Asymmetric Keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) in the *AWS Key Management Service Developer Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KMSMasterKeyID", "type": "string" }, "SSEAlgorithm": { + "markdownDescription": "Server\\-side encryption algorithm to use for the default encryption\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AES256 | aws:kms` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SSEAlgorithm", "type": "string" } }, @@ -131539,10 +160774,14 @@ "additionalProperties": false, "properties": { "BucketKeyEnabled": { + "markdownDescription": "Specifies whether Amazon S3 should use an S3 Bucket Key with server\\-side encryption using KMS \\(SSE\\-KMS\\) for new objects in the bucket\\. Existing objects are not affected\\. Setting the `BucketKeyEnabled` element to `true` causes Amazon S3 to use an S3 Bucket Key\\. By default, S3 Bucket Key is not enabled\\. \nFor more information, see [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketKeyEnabled", "type": "boolean" }, "ServerSideEncryptionByDefault": { - "$ref": "#/definitions/AWS::S3::Bucket.ServerSideEncryptionByDefault" + "$ref": "#/definitions/AWS::S3::Bucket.ServerSideEncryptionByDefault", + "markdownDescription": "Specifies the default server\\-side encryption to apply to new objects in the bucket\\. If a PUT Object request doesn't specify any server\\-side encryption, this default encryption will be applied\\. \n*Required*: No \n*Type*: [ServerSideEncryptionByDefault](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionbydefault.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerSideEncryptionByDefault" } }, "type": "object" @@ -131551,10 +160790,14 @@ "additionalProperties": false, "properties": { "ReplicaModifications": { - "$ref": "#/definitions/AWS::S3::Bucket.ReplicaModifications" + "$ref": "#/definitions/AWS::S3::Bucket.ReplicaModifications", + "markdownDescription": "A filter that you can specify for selection for modifications on replicas\\. \n*Required*: No \n*Type*: [ReplicaModifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicamodifications.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicaModifications" }, "SseKmsEncryptedObjects": { - "$ref": "#/definitions/AWS::S3::Bucket.SseKmsEncryptedObjects" + "$ref": "#/definitions/AWS::S3::Bucket.SseKmsEncryptedObjects", + "markdownDescription": "A container for filter information for the selection of Amazon S3 objects encrypted with AWS KMS\\. \n*Required*: No \n*Type*: [SseKmsEncryptedObjects](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ssekmsencryptedobjects.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SseKmsEncryptedObjects" } }, "type": "object" @@ -131563,6 +160806,8 @@ "additionalProperties": false, "properties": { "Status": { + "markdownDescription": "Specifies whether Amazon S3 replicates objects created with server\\-side encryption using an AWS KMS key stored in AWS Key Management Service\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" } }, @@ -131575,7 +160820,9 @@ "additionalProperties": false, "properties": { "DataExport": { - "$ref": "#/definitions/AWS::S3::Bucket.DataExport" + "$ref": "#/definitions/AWS::S3::Bucket.DataExport", + "markdownDescription": "Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported\\. \n*Required*: No \n*Type*: [DataExport](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-dataexport.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataExport" } }, "type": "object" @@ -131584,9 +160831,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The tag key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The tag value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -131600,9 +160851,13 @@ "additionalProperties": false, "properties": { "AccessTier": { + "markdownDescription": "S3 Intelligent\\-Tiering access tier\\. See [Storage class for automatically optimizing frequently and infrequently accessed objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access) for a list of access tiers in the S3 Intelligent\\-Tiering storage class\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ARCHIVE_ACCESS | DEEP_ARCHIVE_ACCESS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessTier", "type": "string" }, "Days": { + "markdownDescription": "The number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier\\. The minimum number of days specified for Archive Access tier must be at least 90 days and Deep Archive Access tier must be at least 180 days\\. The maximum can be up to 2 years \\(730 days\\)\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Days", "type": "number" } }, @@ -131616,12 +160871,18 @@ "additionalProperties": false, "properties": { "Event": { + "markdownDescription": "The Amazon S3 bucket event about which to send notifications\\. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Event", "type": "string" }, "Filter": { - "$ref": "#/definitions/AWS::S3::Bucket.NotificationFilter" + "$ref": "#/definitions/AWS::S3::Bucket.NotificationFilter", + "markdownDescription": "The filtering rules that determine for which objects to send notifications\\. For example, you can create a filter so that Amazon S3 sends notifications only when image files with a `.jpg` extension are added to the bucket\\. \n*Required*: No \n*Type*: [NotificationFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filter" }, "Topic": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to which Amazon S3 publishes a message when it detects events of the specified type\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Topic", "type": "string" } }, @@ -131635,12 +160896,18 @@ "additionalProperties": false, "properties": { "StorageClass": { + "markdownDescription": "The storage class to which you want the object to transition\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DEEP_ARCHIVE | GLACIER | GLACIER_IR | INTELLIGENT_TIERING | ONEZONE_IA | STANDARD_IA` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageClass", "type": "string" }, "TransitionDate": { + "markdownDescription": "Indicates when objects are transitioned to the specified storage class\\. The date value must be in ISO 8601 format\\. The time is always midnight UTC\\. \n*Required*: Conditional \n*Type*: Timestamp \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitionDate", "type": "string" }, "TransitionInDays": { + "markdownDescription": "Indicates the number of days after creation when objects are transitioned to the specified storage class\\. The value must be a positive integer\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitionInDays", "type": "number" } }, @@ -131653,6 +160920,8 @@ "additionalProperties": false, "properties": { "Status": { + "markdownDescription": "The versioning state of the bucket\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Enabled | Suspended` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" } }, @@ -131665,18 +160934,26 @@ "additionalProperties": false, "properties": { "ErrorDocument": { + "markdownDescription": "The name of the error document for the website\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorDocument", "type": "string" }, "IndexDocument": { + "markdownDescription": "The name of the index document for the website\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IndexDocument", "type": "string" }, "RedirectAllRequestsTo": { - "$ref": "#/definitions/AWS::S3::Bucket.RedirectAllRequestsTo" + "$ref": "#/definitions/AWS::S3::Bucket.RedirectAllRequestsTo", + "markdownDescription": "The redirect behavior for every request to this bucket's website endpoint\\. \nIf you specify this property, you can't specify any other property\\.\n*Required*: No \n*Type*: [RedirectAllRequestsTo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-redirectallrequeststo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedirectAllRequestsTo" }, "RoutingRules": { "items": { "$ref": "#/definitions/AWS::S3::Bucket.RoutingRule" }, + "markdownDescription": "Rules that define when a redirect is applied and the redirect behavior\\. \n*Required*: No \n*Type*: List of [RoutingRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoutingRules", "type": "array" } }, @@ -131718,9 +160995,13 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The name of the Amazon S3 bucket to which the policy applies\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Bucket", "type": "string" }, "PolicyDocument": { + "markdownDescription": "A policy document containing permissions to add to the specified bucket\\. In IAM, you must provide policy documents in JSON format\\. However, in CloudFormation you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM\\. For more information, see the AWS::IAM::Policy [PolicyDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-policydocument) resource description in this guide and [Access Policy Language Overview](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-policy-language-overview.html) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDocument", "type": "object" } }, @@ -131787,15 +161068,21 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the Multi\\-Region Access Point\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "PublicAccessBlockConfiguration": { - "$ref": "#/definitions/AWS::S3::MultiRegionAccessPoint.PublicAccessBlockConfiguration" + "$ref": "#/definitions/AWS::S3::MultiRegionAccessPoint.PublicAccessBlockConfiguration", + "markdownDescription": "The PublicAccessBlock configuration that you want to apply to this Multi\\-Region Access Point\\. You can enable the configuration options in any combination\\. For more information about when Amazon S3 considers an object public, see [The Meaning of \"Public\"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: [PublicAccessBlockConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-multiregionaccesspoint-publicaccessblockconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PublicAccessBlockConfiguration" }, "Regions": { "items": { "$ref": "#/definitions/AWS::S3::MultiRegionAccessPoint.Region" }, + "markdownDescription": "A collection of the Regions and buckets associated with the Multi\\-Region Access Point\\. \n*Required*: Yes \n*Type*: List of [Region](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-multiregionaccesspoint-region.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Regions", "type": "array" } }, @@ -131829,15 +161116,23 @@ "additionalProperties": false, "properties": { "BlockPublicAcls": { + "markdownDescription": "Specifies whether Amazon S3 should block public access control lists \\(ACLs\\) for this bucket and objects in this bucket\\. Setting this element to `TRUE` causes the following behavior: \n+ PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is public\\.\n+ PUT Object calls fail if the request includes a public ACL\\.\n+ PUT Bucket calls fail if the request includes a public ACL\\.\nEnabling this setting doesn't affect existing policies or ACLs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BlockPublicAcls", "type": "boolean" }, "BlockPublicPolicy": { + "markdownDescription": "Specifies whether Amazon S3 should block public bucket policies for this bucket\\. Setting this element to `TRUE` causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access\\. \nEnabling this setting doesn't affect existing bucket policies\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BlockPublicPolicy", "type": "boolean" }, "IgnorePublicAcls": { + "markdownDescription": "Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket\\. Setting this element to `TRUE` causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket\\. \nEnabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IgnorePublicAcls", "type": "boolean" }, "RestrictPublicBuckets": { + "markdownDescription": "Specifies whether Amazon S3 should restrict public bucket policies for this bucket\\. Setting this element to `TRUE` restricts access to this bucket to only AWS service principals and authorized users within this account if the bucket has a public policy\\. \nEnabling this setting doesn't affect previously stored bucket policies, except that public and cross\\-account access within any public bucket policy, including non\\-public delegation to specific accounts, is blocked\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestrictPublicBuckets", "type": "boolean" } }, @@ -131847,6 +161142,8 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The name of the associated bucket for the Region\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Bucket", "type": "string" } }, @@ -131891,9 +161188,13 @@ "additionalProperties": false, "properties": { "MrapName": { + "markdownDescription": "The name of the Multi\\-Region Access Point\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MrapName", "type": "string" }, "Policy": { + "markdownDescription": "The access policy associated with the Multi\\-Region Access Point\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policy", "type": "object" } }, @@ -131972,12 +161273,16 @@ "additionalProperties": false, "properties": { "StorageLensConfiguration": { - "$ref": "#/definitions/AWS::S3::StorageLens.StorageLensConfiguration" + "$ref": "#/definitions/AWS::S3::StorageLens.StorageLensConfiguration", + "markdownDescription": "This resource contains the details Amazon S3 Storage Lens configuration\\. \n*Required*: Yes \n*Type*: [StorageLensConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-storagelensconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageLensConfiguration" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A set of tags \\(key\u2013value pairs\\) to associate with the Storage Lens configuration\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -132011,7 +161316,9 @@ "additionalProperties": false, "properties": { "ActivityMetrics": { - "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" + "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics", + "markdownDescription": "This property contains the details of the account\\-level activity metrics for Amazon S3 Storage Lens\\. \n*Required*: No \n*Type*: [ActivityMetrics](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-activitymetrics.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActivityMetrics" }, "AdvancedCostOptimizationMetrics": { "$ref": "#/definitions/AWS::S3::StorageLens.AdvancedCostOptimizationMetrics" @@ -132020,7 +161327,9 @@ "$ref": "#/definitions/AWS::S3::StorageLens.AdvancedDataProtectionMetrics" }, "BucketLevel": { - "$ref": "#/definitions/AWS::S3::StorageLens.BucketLevel" + "$ref": "#/definitions/AWS::S3::StorageLens.BucketLevel", + "markdownDescription": "This property contains the details of the account\\-level bucket\\-level configurations for Amazon S3 Storage Lens\\. \n*Required*: Yes \n*Type*: [BucketLevel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-bucketlevel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketLevel" }, "DetailedStatusCodesMetrics": { "$ref": "#/definitions/AWS::S3::StorageLens.DetailedStatusCodesMetrics" @@ -132035,6 +161344,8 @@ "additionalProperties": false, "properties": { "IsEnabled": { + "markdownDescription": "A property that indicates whether the activity metrics is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsEnabled", "type": "boolean" } }, @@ -132062,6 +161373,8 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "This resource contains the ARN of the AWS Organization\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" } }, @@ -132074,7 +161387,9 @@ "additionalProperties": false, "properties": { "ActivityMetrics": { - "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" + "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics", + "markdownDescription": "A property for the bucket\\-level activity metrics for Amazon S3 Storage Lens\\. \n*Required*: No \n*Type*: [ActivityMetrics](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-activitymetrics.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActivityMetrics" }, "AdvancedCostOptimizationMetrics": { "$ref": "#/definitions/AWS::S3::StorageLens.AdvancedCostOptimizationMetrics" @@ -132086,7 +161401,9 @@ "$ref": "#/definitions/AWS::S3::StorageLens.DetailedStatusCodesMetrics" }, "PrefixLevel": { - "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevel" + "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevel", + "markdownDescription": "A property for the bucket\\-level prefix\\-level storage metrics for S3 Storage Lens\\. \n*Required*: No \n*Type*: [PrefixLevel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-prefixlevel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrefixLevel" } }, "type": "object" @@ -132098,12 +161415,16 @@ "items": { "type": "string" }, + "markdownDescription": "This property contains the details of the buckets for the Amazon S3 Storage Lens configuration\\. This should be the bucket Amazon Resource Name\\(ARN\\)\\. For valid values, see [Buckets ARN format here](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_Include.html#API_control_Include_Contents) in the *Amazon S3 API Reference*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Buckets", "type": "array" }, "Regions": { "items": { "type": "string" }, + "markdownDescription": "This property contains the details of the Regions for the S3 Storage Lens configuration\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Regions", "type": "array" } }, @@ -132113,6 +161434,8 @@ "additionalProperties": false, "properties": { "IsEnabled": { + "markdownDescription": "This property identifies whether the CloudWatch publishing option for S3 Storage Lens is enabled\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsEnabled", "type": "boolean" } }, @@ -132125,10 +161448,14 @@ "additionalProperties": false, "properties": { "CloudWatchMetrics": { - "$ref": "#/definitions/AWS::S3::StorageLens.CloudWatchMetrics" + "$ref": "#/definitions/AWS::S3::StorageLens.CloudWatchMetrics", + "markdownDescription": "This property enables the Amazon CloudWatch publishing option for S3 Storage Lens metrics\\. \n*Required*: No \n*Type*: [CloudWatchMetrics](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-cloudwatchmetrics.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchMetrics" }, "S3BucketDestination": { - "$ref": "#/definitions/AWS::S3::StorageLens.S3BucketDestination" + "$ref": "#/definitions/AWS::S3::StorageLens.S3BucketDestination", + "markdownDescription": "This property contains the details of the bucket where the S3 Storage Lens metrics export will be placed\\. \n*Required*: No \n*Type*: [S3BucketDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-s3bucketdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketDestination" } }, "type": "object" @@ -132158,7 +161485,9 @@ "additionalProperties": false, "properties": { "StorageMetrics": { - "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevelStorageMetrics" + "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevelStorageMetrics", + "markdownDescription": "A property for the prefix\\-level storage metrics for Amazon S3 Storage Lens\\. \n*Required*: Yes \n*Type*: [PrefixLevelStorageMetrics](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-prefixlevelstoragemetrics.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageMetrics" } }, "required": [ @@ -132170,10 +161499,14 @@ "additionalProperties": false, "properties": { "IsEnabled": { + "markdownDescription": "This property identifies whether the details of the prefix\\-level storage metrics for S3 Storage Lens are enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsEnabled", "type": "boolean" }, "SelectionCriteria": { - "$ref": "#/definitions/AWS::S3::StorageLens.SelectionCriteria" + "$ref": "#/definitions/AWS::S3::StorageLens.SelectionCriteria", + "markdownDescription": "This property identifies whether the details of the prefix\\-level storage metrics for S3 Storage Lens are enabled\\. \n*Required*: No \n*Type*: [SelectionCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-selectioncriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SelectionCriteria" } }, "type": "object" @@ -132182,21 +161515,33 @@ "additionalProperties": false, "properties": { "AccountId": { + "markdownDescription": "This property contains the details of the AWS account ID of the S3 Storage Lens export bucket destination\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountId", "type": "string" }, "Arn": { + "markdownDescription": "This property contains the details of the ARN of the bucket destination of the S3 Storage Lens export\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "Encryption": { - "$ref": "#/definitions/AWS::S3::StorageLens.Encryption" + "$ref": "#/definitions/AWS::S3::StorageLens.Encryption", + "markdownDescription": "This property contains the details of the encryption of the bucket destination of the Amazon S3 Storage Lens metrics export\\. \n*Required*: No \n*Type*: [Encryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-encryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encryption" }, "Format": { + "markdownDescription": "This property contains the details of the format of the S3 Storage Lens export bucket destination\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", "type": "string" }, "OutputSchemaVersion": { + "markdownDescription": "This property contains the details of the output schema version of the S3 Storage Lens export bucket destination\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputSchemaVersion", "type": "string" }, "Prefix": { + "markdownDescription": "This property contains the details of the prefix of the bucket destination of the S3 Storage Lens export \\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", "type": "string" } }, @@ -132224,12 +161569,18 @@ "additionalProperties": false, "properties": { "Delimiter": { + "markdownDescription": "This property contains the details of the S3 Storage Lens delimiter being used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Delimiter", "type": "string" }, "MaxDepth": { + "markdownDescription": "This property contains the details of the max depth that S3 Storage Lens will collect metrics up to\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxDepth", "type": "number" }, "MinStorageBytesPercentage": { + "markdownDescription": "This property contains the details of the minimum storage bytes percentage threshold that S3 Storage Lens will collect metrics up to\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinStorageBytesPercentage", "type": "number" } }, @@ -132239,27 +161590,43 @@ "additionalProperties": false, "properties": { "AccountLevel": { - "$ref": "#/definitions/AWS::S3::StorageLens.AccountLevel" + "$ref": "#/definitions/AWS::S3::StorageLens.AccountLevel", + "markdownDescription": "This property contains the details of the account\\-level metrics for Amazon S3 Storage Lens configuration\\. \n*Required*: Yes \n*Type*: [AccountLevel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-accountlevel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountLevel" }, "AwsOrg": { - "$ref": "#/definitions/AWS::S3::StorageLens.AwsOrg" + "$ref": "#/definitions/AWS::S3::StorageLens.AwsOrg", + "markdownDescription": "This property contains the details of the AWS Organization for the S3 Storage Lens configuration\\. \n*Required*: No \n*Type*: [AwsOrg](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-awsorg.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsOrg" }, "DataExport": { - "$ref": "#/definitions/AWS::S3::StorageLens.DataExport" + "$ref": "#/definitions/AWS::S3::StorageLens.DataExport", + "markdownDescription": "This property contains the details of this S3 Storage Lens configuration's metrics export\\. \n*Required*: No \n*Type*: [DataExport](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-dataexport.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataExport" }, "Exclude": { - "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" + "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions", + "markdownDescription": "This property contains the details of the bucket and or Regions excluded for Amazon S3 Storage Lens configuration\\. \n*Required*: No \n*Type*: [BucketsAndRegions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-bucketsandregions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exclude" }, "Id": { + "markdownDescription": "This property contains the details of the ID of the S3 Storage Lens configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", "type": "string" }, "Include": { - "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" + "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions", + "markdownDescription": "This property contains the details of the bucket and or Regions included for Amazon S3 Storage Lens configuration\\. \n*Required*: No \n*Type*: [BucketsAndRegions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-bucketsandregions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Include" }, "IsEnabled": { + "markdownDescription": "This property contains the details of whether the Amazon S3 Storage Lens configuration is enabled\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsEnabled", "type": "boolean" }, "StorageLensArn": { + "markdownDescription": "This property contains the details of the ARN of the S3 Storage Lens configuration\\. This property is read\\-only\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageLensArn", "type": "string" } }, @@ -132306,10 +161673,14 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of this access point\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "ObjectLambdaConfiguration": { - "$ref": "#/definitions/AWS::S3ObjectLambda::AccessPoint.ObjectLambdaConfiguration" + "$ref": "#/definitions/AWS::S3ObjectLambda::AccessPoint.ObjectLambdaConfiguration", + "markdownDescription": "A configuration used when creating an Object Lambda Access Point\\. \n*Required*: Yes \n*Type*: [ObjectLambdaConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3objectlambda-accesspoint-objectlambdaconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectLambdaConfiguration" } }, "required": [ @@ -132372,18 +161743,26 @@ "items": { "type": "string" }, + "markdownDescription": "A container for allowed features\\. Valid inputs are `GetObject-Range` and `GetObject-PartNumber`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedFeatures", "type": "array" }, "CloudWatchMetricsEnabled": { + "markdownDescription": "A container for whether the CloudWatch metrics configuration is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchMetricsEnabled", "type": "boolean" }, "SupportingAccessPoint": { + "markdownDescription": "Standard access point associated with the Object Lambda Access Point\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SupportingAccessPoint", "type": "string" }, "TransformationConfigurations": { "items": { "$ref": "#/definitions/AWS::S3ObjectLambda::AccessPoint.TransformationConfiguration" }, + "markdownDescription": "A container for transformation configurations for an Object Lambda Access Point\\. \n*Required*: Yes \n*Type*: List of [TransformationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3objectlambda-accesspoint-transformationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransformationConfigurations", "type": "array" } }, @@ -132427,10 +161806,14 @@ "items": { "type": "string" }, + "markdownDescription": "A container for the action of an Object Lambda Access Point configuration\\. Valid input is `GetObject`\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", "type": "array" }, "ContentTransformation": { - "$ref": "#/definitions/AWS::S3ObjectLambda::AccessPoint.ContentTransformation" + "$ref": "#/definitions/AWS::S3ObjectLambda::AccessPoint.ContentTransformation", + "markdownDescription": "A container for the content transformation of an Object Lambda Access Point configuration\\. Can include the FunctionArn and FunctionPayload\\. For more information, see [AwsLambdaTransformation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_AwsLambdaTransformation.html) in the *Amazon S3 API Reference*\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentTransformation" } }, "required": [ @@ -132475,9 +161858,13 @@ "additionalProperties": false, "properties": { "ObjectLambdaAccessPoint": { + "markdownDescription": "An access point with an attached AWS Lambda function used to access transformed data from an Amazon S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ObjectLambdaAccessPoint", "type": "string" }, "PolicyDocument": { + "markdownDescription": "Object Lambda Access Point resource policy document\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDocument", "type": "object" } }, @@ -132544,16 +161931,24 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the S3 on Outposts bucket that is associated with this access point\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Bucket", "type": "string" }, "Name": { + "markdownDescription": "The name of this access point\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Policy": { + "markdownDescription": "The access point policy associated with this access point\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policy", "type": "object" }, "VpcConfiguration": { - "$ref": "#/definitions/AWS::S3Outposts::AccessPoint.VpcConfiguration" + "$ref": "#/definitions/AWS::S3Outposts::AccessPoint.VpcConfiguration", + "markdownDescription": "The virtual private cloud \\(VPC\\) configuration for this access point, if one exists\\. \n*Required*: Yes \n*Type*: [VpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-accesspoint-vpcconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcConfiguration" } }, "required": [ @@ -132588,6 +161983,8 @@ "additionalProperties": false, "properties": { "VpcId": { + "markdownDescription": "The ID of the VPC configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -132629,18 +162026,26 @@ "additionalProperties": false, "properties": { "BucketName": { + "markdownDescription": "A name for the S3 on Outposts bucket\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the bucket name\\. The bucket name must contain only lowercase letters, numbers, periods \\(\\.\\), and dashes \\(\\-\\) and must follow [ Amazon S3 bucket restrictions and limitations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html)\\. For more information, see [Bucket naming rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html#bucketnamingrules)\\. \nIf you specify a name, you can't perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you need to replace the resource, specify a new name\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketName", "type": "string" }, "LifecycleConfiguration": { - "$ref": "#/definitions/AWS::S3Outposts::Bucket.LifecycleConfiguration" + "$ref": "#/definitions/AWS::S3Outposts::Bucket.LifecycleConfiguration", + "markdownDescription": "Creates a new lifecycle configuration for the S3 on Outposts bucket or replaces an existing lifecycle configuration\\. Outposts buckets only support lifecycle configurations that delete/expire objects after a certain period of time and abort incomplete multipart uploads\\. \n*Required*: No \n*Type*: [LifecycleConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-bucket-lifecycleconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LifecycleConfiguration" }, "OutpostId": { + "markdownDescription": "The ID of the Outpost of the specified bucket\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OutpostId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Sets the tags for an S3 on Outposts bucket\\. For more information, see [Using Amazon S3 on Outposts](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)\\. \nUse tags to organize your AWS bill to reflect your own cost structure\\. To do this, sign up to get your AWS account bill with tag key values included\\. Then, to see the cost of combined resources, organize your billing information according to resources with the same tag key values\\. For example, you can tag several resources with a specific application name, and then organize your billing information to see the total cost of that application across several services\\. For more information, see [Cost allocation and tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)\\. \nWithin a bucket, if you add a tag that has the same key as an existing tag, the new value overwrites the old value\\. For more information, see [ Using cost allocation and bucket tags](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html)\\.\nTo use this resource, you must have permissions to perform the `s3-outposts:PutBucketTagging`\\. The S3 on Outposts bucket owner has this permission by default and can grant this permission to others\\. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing access permissions to your Amazon S3 resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -132675,6 +162080,8 @@ "additionalProperties": false, "properties": { "DaysAfterInitiation": { + "markdownDescription": "Specifies the number of days after initiation that Amazon S3 on Outposts aborts an incomplete multipart upload\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DaysAfterInitiation", "type": "number" } }, @@ -132739,6 +162146,8 @@ "items": { "$ref": "#/definitions/AWS::S3Outposts::Bucket.Rule" }, + "markdownDescription": "The container for the lifecycle configuration rules for the objects stored in the S3 on Outposts bucket\\. \n*Required*: Yes \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-bucket-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", "type": "array" } }, @@ -132751,21 +162160,33 @@ "additionalProperties": false, "properties": { "AbortIncompleteMultipartUpload": { - "$ref": "#/definitions/AWS::S3Outposts::Bucket.AbortIncompleteMultipartUpload" + "$ref": "#/definitions/AWS::S3Outposts::Bucket.AbortIncompleteMultipartUpload", + "markdownDescription": "The container for the abort incomplete multipart upload rule\\. \n*Required*: No \n*Type*: [AbortIncompleteMultipartUpload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-bucket-abortincompletemultipartupload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AbortIncompleteMultipartUpload" }, "ExpirationDate": { + "markdownDescription": "Specifies the expiration for the lifecycle of the object by specifying an expiry date\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExpirationDate", "type": "string" }, "ExpirationInDays": { + "markdownDescription": "Specifies the expiration for the lifecycle of the object in the form of days that the object has been in the S3 on Outposts bucket\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExpirationInDays", "type": "number" }, "Filter": { - "$ref": "#/definitions/AWS::S3Outposts::Bucket.Filter" + "$ref": "#/definitions/AWS::S3Outposts::Bucket.Filter", + "markdownDescription": "The container for the filter of the lifecycle rule\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filter" }, "Id": { + "markdownDescription": "The unique identifier for the lifecycle rule\\. The value can't be longer than 255 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", "type": "string" }, "Status": { + "markdownDescription": "If `Enabled`, the rule is currently being applied\\. If `Disabled`, the rule is not currently being applied\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" } }, @@ -132810,9 +162231,13 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The name of the Amazon S3 Outposts bucket to which the policy applies\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Bucket", "type": "string" }, "PolicyDocument": { + "markdownDescription": "A policy document containing permissions to add to the specified bucket\\. In IAM, you must provide policy documents in JSON format\\. However, in CloudFormation, you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM\\. For more information, see the AWS::IAM::Policy [ PolicyDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-policydocument) resource description in this guide and [ Access Policy Language Overview](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-policy-language-overview.html)\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDocument", "type": "object" } }, @@ -132879,18 +162304,28 @@ "additionalProperties": false, "properties": { "AccessType": { + "markdownDescription": "The container for the type of connectivity used to access the Amazon S3 on Outposts endpoint\\. To use the Amazon VPC, choose `Private`\\. To use the endpoint with an on\\-premises network, choose `CustomerOwnedIp`\\. If you choose `CustomerOwnedIp`, you must also provide the customer\\-owned IP address pool \\(CoIP pool\\)\\. \n`Private` is the default access type value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `CustomerOwnedIp | Private` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccessType", "type": "string" }, "CustomerOwnedIpv4Pool": { + "markdownDescription": "The ID of the customer\\-owned IPv4 address pool \\(CoIP pool\\) for the endpoint\\. IP addresses are allocated from this pool for the endpoint\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^ipv4pool-coip-([0-9a-f]{17})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomerOwnedIpv4Pool", "type": "string" }, "OutpostId": { + "markdownDescription": "The ID of the Outpost\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OutpostId", "type": "string" }, "SecurityGroupId": { + "markdownDescription": "The ID of the security group to use with the endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroupId", "type": "string" }, "SubnetId": { + "markdownDescription": "The ID of the subnet\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", "type": "string" } }, @@ -132926,6 +162361,8 @@ "additionalProperties": false, "properties": { "NetworkInterfaceId": { + "markdownDescription": "The ID for the network interface\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkInterfaceId", "type": "string" } }, @@ -132970,6 +162407,8 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "Information about the SimpleDB domain\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" } }, @@ -133034,6 +162473,8 @@ "$ref": "#/definitions/AWS::SES::ConfigurationSet.DeliveryOptions" }, "Name": { + "markdownDescription": "The name of the configuration set\\. The name must meet the following requirements: \n+ Contain only letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), underscores \\(\\_\\), or dashes \\(\\-\\)\\.\n+ Contain 64 characters or fewer\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "ReputationOptions": { @@ -133197,10 +162638,14 @@ "additionalProperties": false, "properties": { "ConfigurationSetName": { + "markdownDescription": "The name of the configuration set that contains the event destination\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfigurationSetName", "type": "string" }, "EventDestination": { - "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination.EventDestination" + "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination.EventDestination", + "markdownDescription": "The event destination object\\. \n*Required*: Yes \n*Type*: [EventDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-eventdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventDestination" } }, "required": [ @@ -133237,6 +162682,8 @@ "items": { "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination.DimensionConfiguration" }, + "markdownDescription": "A list of dimensions upon which to categorize your emails when you publish email sending events to Amazon CloudWatch\\. \n*Required*: No \n*Type*: List of [DimensionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-dimensionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DimensionConfigurations", "type": "array" } }, @@ -133246,12 +162693,18 @@ "additionalProperties": false, "properties": { "DefaultDimensionValue": { + "markdownDescription": "The default value of the dimension that is published to Amazon CloudWatch if you do not provide the value of the dimension when you send an email\\. The default value must meet the following requirements: \n+ Contain only ASCII letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), underscores \\(\\_\\), dashes \\(\\-\\), at signs \\(@\\), or periods \\(\\.\\)\\.\n+ Contain 256 characters or fewer\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultDimensionValue", "type": "string" }, "DimensionName": { + "markdownDescription": "The name of an Amazon CloudWatch dimension associated with an email sending metric\\. The name must meet the following requirements: \n+ Contain only ASCII letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), underscores \\(\\_\\), or dashes \\(\\-\\)\\.\n+ Contain 256 characters or fewer\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DimensionName", "type": "string" }, "DimensionValueSource": { + "markdownDescription": "The place where Amazon SES finds the value of a dimension to publish to Amazon CloudWatch\\. To use the message tags that you specify using an `X-SES-MESSAGE-TAGS` header or a parameter to the `SendEmail`/`SendRawEmail` API, specify `messageTag`\\. To use your own email headers, specify `emailHeader`\\. To put a custom tag on any link included in your email, specify `linkTag`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `emailHeader | linkTag | messageTag` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DimensionValueSource", "type": "string" } }, @@ -133266,21 +162719,31 @@ "additionalProperties": false, "properties": { "CloudWatchDestination": { - "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination.CloudWatchDestination" + "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination.CloudWatchDestination", + "markdownDescription": "An object that contains the names, default values, and sources of the dimensions associated with an Amazon CloudWatch event destination\\. \n*Required*: No \n*Type*: [CloudWatchDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-cloudwatchdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchDestination" }, "Enabled": { + "markdownDescription": "Sets whether Amazon SES publishes events to this destination when you send an email with the associated configuration set\\. Set to `true` to enable publishing to this destination; set to `false` to prevent publishing to this destination\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "KinesisFirehoseDestination": { - "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination.KinesisFirehoseDestination" + "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination.KinesisFirehoseDestination", + "markdownDescription": "An object that contains the delivery stream ARN and the IAM role ARN associated with an Amazon Kinesis Firehose event destination\\. \n*Required*: No \n*Type*: [KinesisFirehoseDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-kinesisfirehosedestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KinesisFirehoseDestination" }, "MatchingEventTypes": { "items": { "type": "string" }, + "markdownDescription": "The type of email sending events to publish to the event destination\\. \n+ `send` \\- The call was successful and Amazon SES is attempting to deliver the email\\.\n+ `reject` \\- Amazon SES determined that the email contained a virus and rejected it\\.\n+ `bounce` \\- The recipient's mail server permanently rejected the email\\. This corresponds to a hard bounce\\.\n+ `complaint` \\- The recipient marked the email as spam\\.\n+ `delivery` \\- Amazon SES successfully delivered the email to the recipient's mail server\\.\n+ `open` \\- The recipient received the email and opened it in their email client\\.\n+ `click` \\- The recipient clicked one or more links in the email\\.\n+ `renderingFailure` \\- Amazon SES did not send the email because of a template rendering issue\\.\n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MatchingEventTypes", "type": "array" }, "Name": { + "markdownDescription": "The name of the event destination\\. The name must meet the following requirements: \n+ Contain only ASCII letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), underscores \\(\\_\\), or dashes \\(\\-\\)\\.\n+ Contain 64 characters or fewer\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "SnsDestination": { @@ -133296,9 +162759,13 @@ "additionalProperties": false, "properties": { "DeliveryStreamARN": { + "markdownDescription": "The ARN of the Amazon Kinesis Firehose stream that email sending events should be published to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryStreamARN", "type": "string" }, "IAMRoleARN": { + "markdownDescription": "The ARN of the IAM role under which Amazon SES publishes email sending events to the Amazon Kinesis Firehose stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IAMRoleARN", "type": "string" } }, @@ -133356,21 +162823,29 @@ "additionalProperties": false, "properties": { "ContactListName": { + "markdownDescription": "The name of the contact list\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContactListName", "type": "string" }, "Description": { + "markdownDescription": "A description of what the contact list is about\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags associated with a contact list\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "Topics": { "items": { "$ref": "#/definitions/AWS::SES::ContactList.Topic" }, + "markdownDescription": "An interest group, theme, or label within a list\\. A contact list can have multiple topics\\. \n*Required*: No \n*Type*: List of [Topic](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-contactlist-topic.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Topics", "type": "array" } }, @@ -133400,15 +162875,23 @@ "additionalProperties": false, "properties": { "DefaultSubscriptionStatus": { + "markdownDescription": "The default subscription status to be applied to a contact if the contact has not noted their preference for subscribing to a topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultSubscriptionStatus", "type": "string" }, "Description": { + "markdownDescription": "A description of what the topic is about, which the contact will see\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DisplayName": { + "markdownDescription": "The name of the topic the contact will see\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", "type": "string" }, "TopicName": { + "markdownDescription": "The name of the topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TopicName", "type": "string" } }, @@ -133653,7 +163136,9 @@ "additionalProperties": false, "properties": { "Filter": { - "$ref": "#/definitions/AWS::SES::ReceiptFilter.Filter" + "$ref": "#/definitions/AWS::SES::ReceiptFilter.Filter", + "markdownDescription": "A data structure that describes the IP address filter to create, which consists of a name, an IP address range, and whether to allow or block mail from it\\. \n*Required*: Yes \n*Type*: [Filter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptfilter-filter.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Filter" } }, "required": [ @@ -133686,9 +163171,13 @@ "additionalProperties": false, "properties": { "IpFilter": { - "$ref": "#/definitions/AWS::SES::ReceiptFilter.IpFilter" + "$ref": "#/definitions/AWS::SES::ReceiptFilter.IpFilter", + "markdownDescription": "A structure that provides the IP addresses to block or allow, and whether to block or allow incoming mail from them\\. \n*Required*: Yes \n*Type*: [IpFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptfilter-ipfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IpFilter" }, "Name": { + "markdownDescription": "The name of the IP address filter\\. The name must meet the following requirements: \n+ Contain only ASCII letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), underscores \\(\\_\\), or dashes \\(\\-\\)\\.\n+ Start and end with a letter or number\\.\n+ Contain 64 characters or fewer\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -133701,9 +163190,13 @@ "additionalProperties": false, "properties": { "Cidr": { + "markdownDescription": "A single IP address or a range of IP addresses to block or allow, specified in Classless Inter\\-Domain Routing \\(CIDR\\) notation\\. An example of a single email address is 10\\.0\\.0\\.1\\. An example of a range of IP addresses is 10\\.0\\.0\\.1/24\\. For more information about CIDR notation, see [RFC 2317](https://tools.ietf.org/html/rfc2317)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cidr", "type": "string" }, "Policy": { + "markdownDescription": "Indicates whether to block or allow incoming mail from the specified IP addresses\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Allow | Block` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policy", "type": "string" } }, @@ -133749,12 +163242,18 @@ "additionalProperties": false, "properties": { "After": { + "markdownDescription": "The name of an existing rule after which the new rule is placed\\. If this parameter is null, the new rule is inserted at the beginning of the rule list\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "After", "type": "string" }, "Rule": { - "$ref": "#/definitions/AWS::SES::ReceiptRule.Rule" + "$ref": "#/definitions/AWS::SES::ReceiptRule.Rule", + "markdownDescription": "A data structure that contains the specified rule's name, actions, recipients, domains, enabled status, scan status, and TLS policy\\. \n*Required*: Yes \n*Type*: [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rule" }, "RuleSetName": { + "markdownDescription": "The name of the rule set where the receipt rule is added\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RuleSetName", "type": "string" } }, @@ -133789,25 +163288,39 @@ "additionalProperties": false, "properties": { "AddHeaderAction": { - "$ref": "#/definitions/AWS::SES::ReceiptRule.AddHeaderAction" + "$ref": "#/definitions/AWS::SES::ReceiptRule.AddHeaderAction", + "markdownDescription": "Adds a header to the received email\\. \n*Required*: No \n*Type*: [AddHeaderAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-addheaderaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddHeaderAction" }, "BounceAction": { - "$ref": "#/definitions/AWS::SES::ReceiptRule.BounceAction" + "$ref": "#/definitions/AWS::SES::ReceiptRule.BounceAction", + "markdownDescription": "Rejects the received email by returning a bounce response to the sender and, optionally, publishes a notification to Amazon Simple Notification Service \\(Amazon SNS\\)\\. \n*Required*: No \n*Type*: [BounceAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-bounceaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BounceAction" }, "LambdaAction": { - "$ref": "#/definitions/AWS::SES::ReceiptRule.LambdaAction" + "$ref": "#/definitions/AWS::SES::ReceiptRule.LambdaAction", + "markdownDescription": "Calls an AWS Lambda function, and optionally, publishes a notification to Amazon SNS\\. \n*Required*: No \n*Type*: [LambdaAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-lambdaaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaAction" }, "S3Action": { - "$ref": "#/definitions/AWS::SES::ReceiptRule.S3Action" + "$ref": "#/definitions/AWS::SES::ReceiptRule.S3Action", + "markdownDescription": "Saves the received message to an Amazon Simple Storage Service \\(Amazon S3\\) bucket and, optionally, publishes a notification to Amazon SNS\\. \n*Required*: No \n*Type*: [S3Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-s3action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Action" }, "SNSAction": { - "$ref": "#/definitions/AWS::SES::ReceiptRule.SNSAction" + "$ref": "#/definitions/AWS::SES::ReceiptRule.SNSAction", + "markdownDescription": "Publishes the email content within a notification to Amazon SNS\\. \n*Required*: No \n*Type*: [SNSAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-snsaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SNSAction" }, "StopAction": { - "$ref": "#/definitions/AWS::SES::ReceiptRule.StopAction" + "$ref": "#/definitions/AWS::SES::ReceiptRule.StopAction", + "markdownDescription": "Terminates the evaluation of the receipt rule set and optionally publishes a notification to Amazon SNS\\. \n*Required*: No \n*Type*: [StopAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-stopaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StopAction" }, "WorkmailAction": { - "$ref": "#/definitions/AWS::SES::ReceiptRule.WorkmailAction" + "$ref": "#/definitions/AWS::SES::ReceiptRule.WorkmailAction", + "markdownDescription": "Calls Amazon WorkMail and, optionally, publishes a notification to Amazon Amazon SNS\\. \n*Required*: No \n*Type*: [WorkmailAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-workmailaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WorkmailAction" } }, "type": "object" @@ -133816,9 +163329,13 @@ "additionalProperties": false, "properties": { "HeaderName": { + "markdownDescription": "The name of the header to add to the incoming message\\. The name must contain at least one character, and can contain up to 50 characters\\. It consists of alphanumeric \\(a\u2013z, A\u2013Z, 0\u20139\\) characters and dashes\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderName", "type": "string" }, "HeaderValue": { + "markdownDescription": "The content to include in the header\\. This value can contain up to 2048 characters\\. It can't contain newline \\(`\\n`\\) or carriage return \\(`\\r`\\) characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderValue", "type": "string" } }, @@ -133832,18 +163349,28 @@ "additionalProperties": false, "properties": { "Message": { + "markdownDescription": "Human\\-readable text to include in the bounce message\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Message", "type": "string" }, "Sender": { + "markdownDescription": "The email address of the sender of the bounced email\\. This is the address from which the bounce message is sent\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sender", "type": "string" }, "SmtpReplyCode": { + "markdownDescription": "The SMTP reply code, as defined by [RFC 5321](https://tools.ietf.org/html/rfc5321)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SmtpReplyCode", "type": "string" }, "StatusCode": { + "markdownDescription": "The SMTP enhanced status code, as defined by [RFC 3463](https://tools.ietf.org/html/rfc3463)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusCode", "type": "string" }, "TopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to notify when the bounce action is taken\\. You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) operation in Amazon SNS\\. \nFor more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TopicArn", "type": "string" } }, @@ -133858,12 +163385,18 @@ "additionalProperties": false, "properties": { "FunctionArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Lambda function\\. An example of an AWS Lambda function ARN is `arn:aws:lambda:us-west-2:account-id:function:MyFunction`\\. For more information about AWS Lambda, see the [AWS Lambda Developer Guide](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FunctionArn", "type": "string" }, "InvocationType": { + "markdownDescription": "The invocation type of the AWS Lambda function\\. An invocation type of `RequestResponse` means that the execution of the function immediately results in a response, and a value of `Event` means that the function is invoked asynchronously\\. The default value is `Event`\\. For information about AWS Lambda invocation types, see the [AWS Lambda Developer Guide](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html)\\. \nThere is a 30\\-second timeout on `RequestResponse` invocations\\. You should use `Event` invocation in most cases\\. Use `RequestResponse` only to make a mail flow decision, such as whether to stop the receipt rule or the receipt rule set\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `Event | RequestResponse` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InvocationType", "type": "string" }, "TopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to notify when the Lambda action is executed\\. You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) operation in Amazon SNS\\. \nFor more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TopicArn", "type": "string" } }, @@ -133879,24 +163412,36 @@ "items": { "$ref": "#/definitions/AWS::SES::ReceiptRule.Action" }, + "markdownDescription": "An ordered list of actions to perform on messages that match at least one of the recipient email addresses or domains specified in the receipt rule\\. \n*Required*: No \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", "type": "array" }, "Enabled": { + "markdownDescription": "If `true`, the receipt rule is active\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" }, "Name": { + "markdownDescription": "The name of the receipt rule\\. The name must meet the following requirements: \n+ Contain only ASCII letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), underscores \\(\\_\\), or dashes \\(\\-\\)\\.\n+ Start and end with a letter or number\\.\n+ Contain 64 characters or fewer\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Recipients": { "items": { "type": "string" }, + "markdownDescription": "The recipient domains and email addresses that the receipt rule applies to\\. If this field is not specified, this rule matches all recipients on all verified domains\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Recipients", "type": "array" }, "ScanEnabled": { + "markdownDescription": "If `true`, then messages that this receipt rule applies to are scanned for spam and viruses\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScanEnabled", "type": "boolean" }, "TlsPolicy": { + "markdownDescription": "Specifies whether Amazon SES should require that incoming email is delivered over a connection encrypted with Transport Layer Security \\(TLS\\)\\. If this parameter is set to `Require`, Amazon SES bounces emails that are not received over TLS\\. The default is `Optional`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Optional | Require` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TlsPolicy", "type": "string" } }, @@ -133906,15 +163451,23 @@ "additionalProperties": false, "properties": { "BucketName": { + "markdownDescription": "The name of the Amazon S3 bucket for incoming email\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", "type": "string" }, "KmsKeyArn": { + "markdownDescription": "The customer master key that Amazon SES should use to encrypt your emails before saving them to the Amazon S3 bucket\\. You can use the default master key or a custom master key that you created in AWS KMS as follows: \n+ To use the default master key, provide an ARN in the form of `arn:aws:kms:REGION:ACCOUNT-ID-WITHOUT-HYPHENS:alias/aws/ses`\\. For example, if your AWS account ID is 123456789012 and you want to use the default master key in the US West \\(Oregon\\) Region, the ARN of the default master key would be `arn:aws:kms:us-west-2:123456789012:alias/aws/ses`\\. If you use the default master key, you don't need to perform any extra steps to give Amazon SES permission to use the key\\.\n+ To use a custom master key that you created in AWS KMS, provide the ARN of the master key and ensure that you add a statement to your key's policy to give Amazon SES permission to use it\\. For more information about giving permissions, see the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-permissions.html)\\.\nFor more information about key policies, see the [AWS KMS Developer Guide](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)\\. If you do not specify a master key, Amazon SES does not encrypt your emails\\. \nYour mail is encrypted by Amazon SES using the Amazon S3 encryption client before the mail is submitted to Amazon S3 for storage\\. It is not encrypted using Amazon S3 server\\-side encryption\\. This means that you must use the Amazon S3 encryption client to decrypt the email after retrieving it from Amazon S3, as the service has no access to use your AWS KMS keys for decryption\\. This encryption client is currently available with the [AWS SDK for Java](http://aws.amazon.com/sdk-for-java/) and [AWS SDK for Ruby](http://aws.amazon.com/sdk-for-ruby/) only\\. For more information about client\\-side encryption using AWS KMS master keys, see the [Amazon S3 Developer Guide](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyArn", "type": "string" }, "ObjectKeyPrefix": { + "markdownDescription": "The key prefix of the Amazon S3 bucket\\. The key prefix is similar to a directory name that enables you to store similar data under the same directory in a bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectKeyPrefix", "type": "string" }, "TopicArn": { + "markdownDescription": "The ARN of the Amazon SNS topic to notify when the message is saved to the Amazon S3 bucket\\. You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) operation in Amazon SNS\\. \nFor more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TopicArn", "type": "string" } }, @@ -133927,9 +163480,13 @@ "additionalProperties": false, "properties": { "Encoding": { + "markdownDescription": "The encoding to use for the email within the Amazon SNS notification\\. UTF\\-8 is easier to use, but may not preserve all special characters when a message was encoded with a different encoding format\\. Base64 preserves all special characters\\. The default value is UTF\\-8\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Base64 | UTF-8` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encoding", "type": "string" }, "TopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to notify\\. You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) operation in Amazon SNS\\. \nFor more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TopicArn", "type": "string" } }, @@ -133939,9 +163496,13 @@ "additionalProperties": false, "properties": { "Scope": { + "markdownDescription": "The scope of the StopAction\\. The only acceptable value is `RuleSet`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `RuleSet` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scope", "type": "string" }, "TopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to notify when the stop action is taken\\. You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) Amazon SNS operation\\. \nFor more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TopicArn", "type": "string" } }, @@ -133954,9 +163515,13 @@ "additionalProperties": false, "properties": { "OrganizationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon WorkMail organization\\. Amazon WorkMail ARNs use the following format: \n `arn:aws:workmail:::organization/` \nYou can find the ID of your organization by using the [ListOrganizations](https://docs.aws.amazon.com/workmail/latest/APIReference/API_ListOrganizations.html) operation in Amazon WorkMail\\. Amazon WorkMail organization IDs begin with \"`m-`\", followed by a string of alphanumeric characters\\. \nFor information about Amazon WorkMail organizations, see the [Amazon WorkMail Administrator Guide](https://docs.aws.amazon.com/workmail/latest/adminguide/organizations_overview.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrganizationArn", "type": "string" }, "TopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to notify when the WorkMail action is called\\. You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) operation in Amazon SNS\\. \nFor more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TopicArn", "type": "string" } }, @@ -134001,6 +163566,8 @@ "additionalProperties": false, "properties": { "RuleSetName": { + "markdownDescription": "The name of the receipt rule set to reorder\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RuleSetName", "type": "string" } }, @@ -134062,7 +163629,9 @@ "additionalProperties": false, "properties": { "Template": { - "$ref": "#/definitions/AWS::SES::Template.Template" + "$ref": "#/definitions/AWS::SES::Template.Template", + "markdownDescription": "The content of the email, composed of a subject line and either an HTML part or a text\\-only part\\. \n*Required*: No \n*Type*: [Template](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-template-template.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Template" } }, "type": "object" @@ -134091,15 +163660,23 @@ "additionalProperties": false, "properties": { "HtmlPart": { + "markdownDescription": "The HTML body of the email\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HtmlPart", "type": "string" }, "SubjectPart": { + "markdownDescription": "The subject line of the email\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubjectPart", "type": "string" }, "TemplateName": { + "markdownDescription": "The name of the template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TemplateName", "type": "string" }, "TextPart": { + "markdownDescription": "The email body that is visible to recipients whose email clients do not display HTML content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextPart", "type": "string" } }, @@ -134226,33 +163803,51 @@ "additionalProperties": false, "properties": { "DeliveryPolicy": { + "markdownDescription": "The delivery policy JSON assigned to the subscription\\. Enables the subscriber to define the message delivery retry strategy in the case of an HTTP/S endpoint subscribed to the topic\\. For more information, see ` [GetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetSubscriptionAttributes.html) ` in the *Amazon SNS API Reference* and [Message delivery retries](https://docs.aws.amazon.com/sns/latest/dg/sns-message-delivery-retries.html) in the *Amazon SNS Developer Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryPolicy", "type": "object" }, "Endpoint": { + "markdownDescription": "The subscription's endpoint\\. The endpoint value depends on the protocol that you specify\\. For more information, see the `Endpoint` parameter of the ` [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html) ` action in the *Amazon SNS API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Endpoint", "type": "string" }, "FilterPolicy": { + "markdownDescription": "The filter policy JSON assigned to the subscription\\. Enables the subscriber to filter out unwanted messages\\. For more information, see ` [GetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetSubscriptionAttributes.html) ` in the *Amazon SNS API Reference* and [Message filtering](https://docs.aws.amazon.com/sns/latest/dg/sns-message-filtering.html) in the *Amazon SNS Developer Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterPolicy", "type": "object" }, "FilterPolicyScope": { "type": "string" }, "Protocol": { + "markdownDescription": "The subscription's protocol\\. For more information, see the `Protocol` parameter of the ` [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html) ` action in the *Amazon SNS API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Protocol", "type": "string" }, "RawMessageDelivery": { + "markdownDescription": "When set to `true`, enables raw message delivery\\. Raw messages don't contain any JSON formatting and can be sent to Amazon SQS and HTTP/S endpoints\\. For more information, see ` [GetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetSubscriptionAttributes.html) ` in the *Amazon SNS API Reference*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RawMessageDelivery", "type": "boolean" }, "RedrivePolicy": { + "markdownDescription": "When specified, sends undeliverable messages to the specified Amazon SQS dead\\-letter queue\\. Messages that can't be delivered due to client errors \\(for example, when the subscribed endpoint is unreachable\\) or server errors \\(for example, when the service that powers the subscribed endpoint becomes unavailable\\) are held in the dead\\-letter queue for further analysis or reprocessing\\. \nFor more information about the redrive policy and dead\\-letter queues, see [Amazon SQS dead\\-letter queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) in the *Amazon SQS Developer Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedrivePolicy", "type": "object" }, "Region": { + "markdownDescription": "For cross\\-region subscriptions, the region in which the topic resides\\. \nIf no region is specified, AWS CloudFormation uses the region of the caller as the default\\. \nIf you perform an update operation that only updates the `Region` property of a `AWS::SNS::Subscription` resource, that operation will fail unless you are either: \n+ Updating the `Region` from `NULL` to the caller region\\.\n+ Updating the `Region` from the caller region to `NULL`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", "type": "string" }, "SubscriptionRoleArn": { + "markdownDescription": "This property applies only to Amazon Kinesis Data Firehose delivery stream subscriptions\\. Specify the ARN of the IAM role that has the following: \n+ Permission to write to the Amazon Kinesis Data Firehose delivery stream\n+ Amazon SNS listed as a trusted entity\nSpecifying a valid ARN for this attribute is required for Kinesis Data Firehose delivery stream subscriptions\\. For more information, see [Fanout to Amazon Kinesis Data Firehose delivery streams](https://docs.aws.amazon.com/sns/latest/dg/sns-firehose-as-subscriber.html) in the *Amazon SNS Developer Guide\\.* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubscriptionRoleArn", "type": "string" }, "TopicArn": { + "markdownDescription": "The ARN of the topic to subscribe to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TopicArn", "type": "string" } }, @@ -134319,18 +163914,26 @@ "additionalProperties": false, "properties": { "ContentBasedDeduplication": { + "markdownDescription": "Enables content\\-based deduplication for FIFO topics\\. \n+ By default, `ContentBasedDeduplication` is set to `false`\\. If you create a FIFO topic and this attribute is `false`, you must specify a value for the `MessageDeduplicationId` parameter for the [Publish](https://docs.aws.amazon.com/sns/latest/api/API_Publish.html) action\\. \n+ When you set `ContentBasedDeduplication` to `true`, Amazon SNS uses a SHA\\-256 hash to generate the `MessageDeduplicationId` using the body of the message \\(but not the attributes of the message\\)\\.", + "title": "ContentBasedDeduplication", "type": "boolean" }, "DataProtectionPolicy": { "type": "object" }, "DisplayName": { + "markdownDescription": "The display name to use for an Amazon SNS topic with SMS subscriptions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", "type": "string" }, "FifoTopic": { + "markdownDescription": "Set to true to create a FIFO topic\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FifoTopic", "type": "boolean" }, "KmsMasterKeyId": { + "markdownDescription": "The ID of an AWS managed customer master key \\(CMK\\) for Amazon SNS or a custom CMK\\. For more information, see [Key terms](https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html#sse-key-terms)\\. For more examples, see ` [KeyId](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters) ` in the *AWS Key Management Service API Reference*\\. \nThis property applies only to [server\\-side\\-encryption](https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsMasterKeyId", "type": "string" }, "SignatureVersion": { @@ -134340,15 +163943,24 @@ "items": { "$ref": "#/definitions/AWS::SNS::Topic.Subscription" }, + "markdownDescription": "The Amazon SNS subscriptions \\(endpoints\\) for this topic\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-subscription.html) of [Subscription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-subscription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subscription", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The list of tags to add to a new topic\\. \nTo be able to tag a topic on creation, you must have the `sns:CreateTopic` and `sns:TagResource` permissions\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TopicName": { + "markdownDescription": "The name of the topic you want to create\\. Topic names must include only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 256 characters long\\. FIFO topic names must end with `.fifo`\\. \nIf you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the topic name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you can't perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TopicName", + "type": "string" + }, + "TracingConfig": { "type": "string" } }, @@ -134378,9 +163990,13 @@ "additionalProperties": false, "properties": { "Endpoint": { + "markdownDescription": "The endpoint that receives notifications from the Amazon SNS topic\\. The endpoint value depends on the protocol that you specify\\. For more information, see the `Endpoint` parameter of the ` [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html) ` action in the *Amazon SNS API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Endpoint", "type": "string" }, "Protocol": { + "markdownDescription": "The subscription's protocol\\. For more information, see the `Protocol` parameter of the ` [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html) ` action in the *Amazon SNS API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Protocol", "type": "string" } }, @@ -134426,12 +164042,16 @@ "additionalProperties": false, "properties": { "PolicyDocument": { + "markdownDescription": "A policy document that contains permissions to add to the specified SNS topics\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDocument", "type": "object" }, "Topics": { "items": { "type": "string" }, + "markdownDescription": "The Amazon Resource Names \\(ARN\\) of the topics to which you want to add the policy\\. You can use the ` [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) ` function to specify an ` [AWS::SNS::Topic](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html) ` resource\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Topics", "type": "array" } }, @@ -134498,42 +164118,68 @@ "additionalProperties": false, "properties": { "ContentBasedDeduplication": { + "markdownDescription": "For first\\-in\\-first\\-out \\(FIFO\\) queues, specifies whether to enable content\\-based deduplication\\. During the deduplication interval, Amazon SQS treats messages that are sent with identical content as duplicates and delivers only one copy of the message\\. For more information, see the `ContentBasedDeduplication` attribute for the ` [CreateQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html) ` action in the *Amazon SQS API Reference*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentBasedDeduplication", "type": "boolean" }, "DeduplicationScope": { + "markdownDescription": "For high throughput for FIFO queues, specifies whether message deduplication occurs at the message group or queue level\\. Valid values are `messageGroup` and `queue`\\. \nTo enable high throughput for a FIFO queue, set this attribute to `messageGroup` *and* set the `FifoThroughputLimit` attribute to `perMessageGroupId`\\. If you set these attributes to anything other than these values, normal throughput is in effect and deduplication occurs as specified\\. For more information, see [High throughput for FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html) and [Quotas related to messages](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html) in the *Amazon SQS Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeduplicationScope", "type": "string" }, "DelaySeconds": { + "markdownDescription": "The time in seconds for which the delivery of all messages in the queue is delayed\\. You can specify an integer value of `0` to `900` \\(15 minutes\\)\\. The default value is `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DelaySeconds", "type": "number" }, "FifoQueue": { + "markdownDescription": "If set to true, creates a FIFO queue\\. If you don't specify this property, Amazon SQS creates a standard queue\\. For more information, see [FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html) in the *Amazon SQS Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FifoQueue", "type": "boolean" }, "FifoThroughputLimit": { + "markdownDescription": "For high throughput for FIFO queues, specifies whether the FIFO queue throughput quota applies to the entire queue or per message group\\. Valid values are `perQueue` and `perMessageGroupId`\\. \nTo enable high throughput for a FIFO queue, set this attribute to `perMessageGroupId` *and* set the `DeduplicationScope` attribute to `messageGroup`\\. If you set these attributes to anything other than these values, normal throughput is in effect and deduplication occurs as specified\\. For more information, see [High throughput for FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html) and [Quotas related to messages](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html) in the *Amazon SQS Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FifoThroughputLimit", "type": "string" }, "KmsDataKeyReusePeriodSeconds": { + "markdownDescription": "The length of time in seconds for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again\\. The value must be an integer between 60 \\(1 minute\\) and 86,400 \\(24 hours\\)\\. The default is 300 \\(5 minutes\\)\\. \nA shorter time period provides better security, but results in more calls to AWS KMS, which might incur charges after Free Tier\\. For more information, see [Encryption at rest](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work) in the *Amazon SQS Developer Guide*\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsDataKeyReusePeriodSeconds", "type": "number" }, "KmsMasterKeyId": { + "markdownDescription": "The ID of an AWS managed customer master key \\(CMK\\) for Amazon SQS or a custom CMK\\. To use the AWS managed CMK for Amazon SQS, specify the \\(default\\) alias `alias/aws/sqs`\\. For more information, see the following: \n+ [Encryption at rest](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html) in the *Amazon SQS Developer Guide* \n+ [CreateQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html) in the *Amazon SQS API Reference* \n+ The Customer Master Keys section of the [AWS Key Management Service Best Practices](https://d0.awsstatic.com/whitepapers/aws-kms-best-practices.pdf) whitepaper \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsMasterKeyId", "type": "string" }, "MaximumMessageSize": { + "markdownDescription": "The limit of how many bytes that a message can contain before Amazon SQS rejects it\\. You can specify an integer value from `1,024` bytes \\(1 KiB\\) to `262,144` bytes \\(256 KiB\\)\\. The default value is `262,144` \\(256 KiB\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumMessageSize", "type": "number" }, "MessageRetentionPeriod": { + "markdownDescription": "The number of seconds that Amazon SQS retains a message\\. You can specify an integer value from `60` seconds \\(1 minute\\) to `1,209,600` seconds \\(14 days\\)\\. The default value is `345,600` seconds \\(4 days\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageRetentionPeriod", "type": "number" }, "QueueName": { + "markdownDescription": "A name for the queue\\. To create a FIFO queue, the name of your FIFO queue must end with the `.fifo` suffix\\. For more information, see [FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html) in the *Amazon SQS Developer Guide*\\. \nIf you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the queue name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html) in the *AWS CloudFormation User Guide*\\. \nIf you specify a name, you can't perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "QueueName", "type": "string" }, "ReceiveMessageWaitTimeSeconds": { + "markdownDescription": "Specifies the duration, in seconds, that the ReceiveMessage action call waits until a message is in the queue in order to include it in the response, rather than returning an empty response if a message isn't yet available\\. You can specify an integer from 1 to 20\\. Short polling is used as the default or when you specify 0 for this property\\. For more information, see [Consuming messages using long polling](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-short-and-long-polling.html#sqs-long-polling) in the *Amazon SQS Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReceiveMessageWaitTimeSeconds", "type": "number" }, "RedriveAllowPolicy": { + "markdownDescription": "The string that includes the parameters for the permissions for the dead\\-letter queue redrive permission and which source queues can specify dead\\-letter queues as a JSON object\\. The parameters are as follows: \n+ `redrivePermission`: The permission type that defines which source queues can specify the current queue as the dead\\-letter queue\\. Valid values are:\n + `allowAll`: \\(Default\\) Any source queues in this AWS account in the same Region can specify this queue as the dead\\-letter queue\\.\n + `denyAll`: No source queues can specify this queue as the dead\\-letter queue\\.\n + `byQueue`: Only queues specified by the `sourceQueueArns` parameter can specify this queue as the dead\\-letter queue\\.\n+ `sourceQueueArns`: The Amazon Resource Names \\(ARN\\)s of the source queues that can specify this queue as the dead\\-letter queue and redrive messages\\. You can specify this parameter only when the `redrivePermission` parameter is set to `byQueue`\\. You can specify up to 10 source queue ARNs\\. To allow more than 10 source queues to specify dead\\-letter queues, set the `redrivePermission` parameter to `allowAll`\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedriveAllowPolicy", "type": "object" }, "RedrivePolicy": { + "markdownDescription": "The string that includes the parameters for the dead\\-letter queue functionality of the source queue as a JSON object\\. The parameters are as follows: \n+ `deadLetterTargetArn`: The Amazon Resource Name \\(ARN\\) of the dead\\-letter queue to which Amazon SQS moves messages after the value of `maxReceiveCount` is exceeded\\.\n+ `maxReceiveCount`: The number of times a message is delivered to the source queue before being moved to the dead\\-letter queue\\. When the `ReceiveCount` for a message exceeds the `maxReceiveCount` for a queue, Amazon SQS moves the message to the dead\\-letter\\-queue\\.\nThe dead\\-letter queue of a FIFO queue must also be a FIFO queue\\. Similarly, the dead\\-letter queue of a standard queue must also be a standard queue\\.\n *JSON* \n `{ \"deadLetterTargetArn\" : String, \"maxReceiveCount\" : Integer }` \n *YAML* \n `deadLetterTargetArn : String ` \n `maxReceiveCount : Integer ` \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedrivePolicy", "type": "object" }, "SqsManagedSseEnabled": { @@ -134543,9 +164189,13 @@ "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags that you attach to this queue\\. For more information, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VisibilityTimeout": { + "markdownDescription": "The length of time during which a message will be unavailable after a message is delivered from the queue\\. This blocks other components from receiving the same message and gives the initial component time to process and delete the message from the queue\\. \nValues must be from 0 to 43,200 seconds \\(12 hours\\)\\. If you don't specify a value, AWS CloudFormation uses the default value of 30 seconds\\. \nFor more information about Amazon SQS queue visibility timeouts, see [Visibility timeout](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) in the *Amazon SQS Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VisibilityTimeout", "type": "number" } }, @@ -134607,12 +164257,16 @@ "additionalProperties": false, "properties": { "PolicyDocument": { + "markdownDescription": "A policy document that contains the permissions for the specified Amazon SQS queues\\. For more information about Amazon SQS policies, see [Using custom policies with the Amazon SQS access policy language](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-creating-custom-policies.html) in the *Amazon SQS Developer Guide*\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDocument", "type": "object" }, "Queues": { "items": { "type": "string" }, + "markdownDescription": "The URLs of the queues to which you want to add the policy\\. You can use the [`Ref`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) function to specify an `[AWS::SQS::Queue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html)` resource\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Queues", "type": "array" } }, @@ -134679,60 +164333,92 @@ "additionalProperties": false, "properties": { "ApplyOnlyAtCronInterval": { + "markdownDescription": "By default, when you create a new association, the system runs it immediately after it is created and then according to the schedule you specified\\. Specify this option if you don't want an association to run immediately after you create it\\. This parameter is not supported for rate expressions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplyOnlyAtCronInterval", "type": "boolean" }, "AssociationName": { + "markdownDescription": "Specify a descriptive name for the association\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociationName", "type": "string" }, "AutomationTargetParameterName": { + "markdownDescription": "Choose the parameter that will define how your automation will branch out\\. This target is required for associations that use an Automation runbook and target resources by using rate controls\\. Automation is a capability of AWS Systems Manager\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutomationTargetParameterName", "type": "string" }, "CalendarNames": { "items": { "type": "string" }, + "markdownDescription": "The names or Amazon Resource Names \\(ARNs\\) of the Change Calendar type documents your associations are gated under\\. The associations only run when that Change Calendar is open\\. For more information, see [AWS Systems Manager Change Calendar](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CalendarNames", "type": "array" }, "ComplianceSeverity": { + "markdownDescription": "The severity level that is assigned to the association\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CRITICAL | HIGH | LOW | MEDIUM | UNSPECIFIED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComplianceSeverity", "type": "string" }, "DocumentVersion": { + "markdownDescription": "The version of the SSM document to associate with the target\\. \nNote the following important information\\. \n+ State Manager doesn't support running associations that use a new version of a document if that document is shared from another account\\. State Manager always runs the `default` version of a document if shared from another account, even though the Systems Manager console shows that a new version was processed\\. If you want to run an association using a new version of a document shared form another account, you must set the document version to `default`\\.\n+ `DocumentVersion` is not valid for documents owned by AWS, such as `AWS-RunPatchBaseline` or `AWS-UpdateSSMAgent`\\. If you specify `DocumentVersion` for an AWS document, the system returns the following error: \"Error occurred during operation 'CreateAssociation'\\.\" \\(RequestToken: , HandlerErrorCode: GeneralServiceException\\)\\.\n*Required*: No \n*Type*: String \n*Pattern*: `([$]LATEST|[$]DEFAULT|^[1-9][0-9]*$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentVersion", "type": "string" }, "InstanceId": { + "markdownDescription": "The ID of the instance that the SSM document is associated with\\. You must specify the `InstanceId` or `Targets` property\\. \n`InstanceId` has been deprecated\\. To specify an instance ID for an association, use the `Targets` parameter\\. If you use the parameter `InstanceId`, you cannot use the parameters `AssociationName`, `DocumentVersion`, `MaxErrors`, `MaxConcurrency`, `OutputLocation`, or `ScheduleExpression`\\. To use these parameters, you must use the `Targets` parameter\\.\n*Required*: Conditional \n*Type*: String \n*Pattern*: `(^i-(\\w{8}|\\w{17})$)|(^mi-\\w{17}$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceId", "type": "string" }, "MaxConcurrency": { + "markdownDescription": "The maximum number of targets allowed to run the association at the same time\\. You can specify a number, for example 10, or a percentage of the target set, for example 10%\\. The default value is 100%, which means all targets run the association at the same time\\. \nIf a new managed node starts and attempts to run an association while Systems Manager is running `MaxConcurrency` associations, the association is allowed to run\\. During the next association interval, the new managed node will process its association within the limit specified for `MaxConcurrency`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `7` \n*Pattern*: `^([1-9][0-9]*|[1-9][0-9]%|[1-9]%|100%)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxConcurrency", "type": "string" }, "MaxErrors": { + "markdownDescription": "The number of errors that are allowed before the system stops sending requests to run the association on additional targets\\. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%\\. If you specify 3, for example, the system stops sending requests when the fourth error is received\\. If you specify 0, then the system stops sending requests after the first error is returned\\. If you run an association on 50 managed nodes and set `MaxError` to 10%, then the system stops sending the request when the sixth error is received\\. \nExecutions that are already running an association when `MaxErrors` is reached are allowed to complete, but some of these executions may fail as well\\. If you need to ensure that there won't be more than max\\-errors failed executions, set `MaxConcurrency` to 1 so that executions proceed one at a time\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `7` \n*Pattern*: `^([1-9][0-9]*|[0]|[1-9][0-9]%|[0-9]%|100%)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxErrors", "type": "string" }, "Name": { + "markdownDescription": "The name of the SSM document that contains the configuration information for the instance\\. You can specify `Command` or `Automation` documents\\. The documents can be AWS\\-predefined documents, documents you created, or a document that is shared with you from another account\\. For SSM documents that are shared with you from other AWS accounts, you must specify the complete SSM document ARN, in the following format: \n`arn:partition:ssm:region:account-id:document/document-name` \nFor example: `arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document` \nFor AWS\\-predefined documents and SSM documents you created in your account, you only need to specify the document name\\. For example, AWS\\-ApplyPatchBaseline or My\\-Document\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.:/]{3,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "OutputLocation": { - "$ref": "#/definitions/AWS::SSM::Association.InstanceAssociationOutputLocation" + "$ref": "#/definitions/AWS::SSM::Association.InstanceAssociationOutputLocation", + "markdownDescription": "An Amazon Simple Storage Service \\(Amazon S3\\) bucket where you want to store the output details of the request\\. \n*Required*: No \n*Type*: [InstanceAssociationOutputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-instanceassociationoutputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputLocation" }, "Parameters": { + "markdownDescription": "The parameters for the runtime configuration of the document\\. \n*Required*: No \n*Type*: Map of Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "object" }, "ScheduleExpression": { + "markdownDescription": "A cron expression that specifies a schedule when the association runs\\. The schedule runs in Coordinated Universal Time \\(UTC\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleExpression", "type": "string" }, "ScheduleOffset": { "type": "number" }, "SyncCompliance": { + "markdownDescription": "The mode for generating association compliance\\. You can specify `AUTO` or `MANUAL`\\. In `AUTO` mode, the system uses the status of the association execution to determine the compliance status\\. If the association execution runs successfully, then the association is `COMPLIANT`\\. If the association execution doesn't run successfully, the association is `NON-COMPLIANT`\\. \nIn `MANUAL` mode, you must specify the `AssociationId` as a parameter for the PutComplianceItems API action\\. In this case, compliance data is not managed by State Manager\\. It is managed by your direct call to the PutComplianceItems API action\\. \nBy default, all associations use `AUTO` mode\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUTO | MANUAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SyncCompliance", "type": "string" }, "Targets": { "items": { "$ref": "#/definitions/AWS::SSM::Association.Target" }, + "markdownDescription": "The targets for the association\\. You must specify the `InstanceId` or `Targets` property\\. You can target all instances in an AWS account by specifying the `InstanceIds` key with a value of `*`\\. To view a JSON and a YAML example that targets all instances, see \"Create an association for all managed instances in an AWS account\" on the Examples page\\. \n*Required*: Conditional \n*Type*: List of [Target](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-target.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Targets", "type": "array" }, "WaitForSuccessTimeoutSeconds": { + "markdownDescription": "The number of seconds the service should wait for the association status to show \"Success\" before proceeding with the stack execution\\. If the association status doesn't show \"Success\" after the specified number of seconds, then stack creation fails\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WaitForSuccessTimeoutSeconds", "type": "number" } }, @@ -134766,7 +164452,9 @@ "additionalProperties": false, "properties": { "S3Location": { - "$ref": "#/definitions/AWS::SSM::Association.S3OutputLocation" + "$ref": "#/definitions/AWS::SSM::Association.S3OutputLocation", + "markdownDescription": "`S3OutputLocation` is a property of the [InstanceAssociationOutputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-instanceassociationoutputlocation.html) property that specifies an Amazon S3 bucket where you want to store the results of this request\\. \n*Required*: No \n*Type*: [S3OutputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-s3outputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Location" } }, "type": "object" @@ -134775,12 +164463,18 @@ "additionalProperties": false, "properties": { "OutputS3BucketName": { + "markdownDescription": "The name of the S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputS3BucketName", "type": "string" }, "OutputS3KeyPrefix": { + "markdownDescription": "The S3 bucket subfolder\\. \n*Required*: No \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputS3KeyPrefix", "type": "string" }, "OutputS3Region": { + "markdownDescription": "The AWS Region of the S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputS3Region", "type": "string" } }, @@ -134790,12 +164484,16 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "User\\-defined criteria for sending commands that target managed nodes that meet the criteria\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `163` \n*Pattern*: `^[\\p{L}\\p{Z}\\p{N}_.:/=\\-@]*$|resource-groups:ResourceTypeFilters|resource-groups:Name` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "User\\-defined criteria that maps to `Key`\\. For example, if you specified `tag:ServerRole`, you could specify `value:WebServer` to run a command on instances that include EC2 tags of `ServerRole,WebServer`\\. \nDepending on the type of target, the maximum number of values for a key might be lower than the global maximum of 50\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -134844,39 +164542,57 @@ "items": { "$ref": "#/definitions/AWS::SSM::Document.AttachmentsSource" }, + "markdownDescription": "A list of key\\-value pairs that describe attachments to a version of a document\\. \n*Required*: No \n*Type*: List of [AttachmentsSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-document-attachmentssource.html) \n*Maximum*: `20` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Attachments", "type": "array" }, "Content": { + "markdownDescription": "The content for the new SSM document in JSON or YAML\\. \nThis parameter also supports `String` data types\\.\n*Required*: Yes \n*Type*: Json \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Content", "type": "object" }, "DocumentFormat": { + "markdownDescription": "Specify the document format for the request\\. JSON is the default format\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `JSON | TEXT | YAML` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DocumentFormat", "type": "string" }, "DocumentType": { + "markdownDescription": "The type of document to create\\. \n*Allowed Values*: `ApplicationConfigurationSchema` \\| `Automation` \\| `Automation.ChangeTemplate` \\| `Command` \\| `DeploymentStrategy` \\| `Package` \\| `Policy` \\| `Session` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DocumentType", "type": "string" }, "Name": { + "markdownDescription": "A name for the SSM document\\. \nYou can't use the following strings as document name prefixes\\. These are reserved by AWS for use as document name prefixes: \n+ `aws-` \n+ `amazon` \n+ `amzn` \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,128}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Requires": { "items": { "$ref": "#/definitions/AWS::SSM::Document.DocumentRequires" }, + "markdownDescription": "A list of SSM documents required by a document\\. This parameter is used exclusively by AWS AppConfig\\. When a user creates an AWS AppConfig configuration in an SSM document, the user must also specify a required document for validation purposes\\. In this case, an `ApplicationConfiguration` document requires an `ApplicationConfigurationSchema` document for validation purposes\\. For more information, see [What is AWS AppConfig?](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) in the * AWS AppConfig User Guide*\\. \n*Required*: No \n*Type*: List of [DocumentRequires](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-document-documentrequires.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Requires", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "AWS CloudFormation resource tags to apply to the document\\. Use tags to help you identify and categorize resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TargetType": { + "markdownDescription": "Specify a target type to define the kinds of resources the document can run on\\. For example, to run a document on EC2 instances, specify the following value: `/AWS::EC2::Instance`\\. If you specify a value of '/' the document can run on all types of resources\\. If you don't specify a value, the document can't run on any resources\\. For a list of valid resource types, see [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) in the *AWS CloudFormation User Guide*\\. \n*Required*: No \n*Type*: String \n*Maximum*: `200` \n*Pattern*: `^\\/[\\w\\.\\-\\:\\/]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetType", "type": "string" }, "UpdateMethod": { "type": "string" }, "VersionName": { + "markdownDescription": "An optional field specifying the version of the artifact you are creating with the document\\. For example, \"Release 12, Update 6\"\\. This value is unique across all versions of a document, and can't be changed\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.]{1,128}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VersionName", "type": "string" } }, @@ -134910,15 +164626,21 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The key of a key\\-value pair that identifies the location of an attachment to a document\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AttachmentReference | S3FileUrl | SourceUrl` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Key", "type": "string" }, "Name": { + "markdownDescription": "The name of the document attachment file\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,128}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "The value of a key\\-value pair that identifies the location of an attachment to a document\\. The format for **Value** depends on the type of key you specify\\. \n+ For the key *SourceUrl*, the value is an S3 bucket location\\. For example:", + "title": "Values", "type": "array" } }, @@ -134928,9 +164650,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the required SSM document\\. The name can be an Amazon Resource Name \\(ARN\\)\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.:/]{3,128}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Version": { + "markdownDescription": "The document version required by the current document\\. \n*Required*: No \n*Type*: String \n*Pattern*: `([$]LATEST|[$]DEFAULT|^[1-9][0-9]*$)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Version", "type": "string" } }, @@ -134972,39 +164698,61 @@ "additionalProperties": false, "properties": { "AllowUnassociatedTargets": { + "markdownDescription": "Enables a maintenance window task to run on managed instances, even if you have not registered those instances as targets\\. If enabled, then you must specify the unregistered instances \\(by instance ID\\) when you register a task with the maintenance window\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowUnassociatedTargets", "type": "boolean" }, "Cutoff": { + "markdownDescription": "The number of hours before the end of the maintenance window that AWS Systems Manager stops scheduling new tasks for execution\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `23` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cutoff", "type": "number" }, "Description": { + "markdownDescription": "A description of the maintenance window\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Duration": { + "markdownDescription": "The duration of the maintenance window in hours\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `24` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Duration", "type": "number" }, "EndDate": { + "markdownDescription": "The date and time, in ISO\\-8601 Extended format, for when the maintenance window is scheduled to become inactive\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndDate", "type": "string" }, "Name": { + "markdownDescription": "The name of the maintenance window\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Schedule": { + "markdownDescription": "The schedule of the maintenance window in the form of a cron or rate expression\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule", "type": "string" }, "ScheduleOffset": { + "markdownDescription": "The number of days to wait to run a maintenance window after the scheduled cron expression date and time\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `6` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleOffset", "type": "number" }, "ScheduleTimezone": { + "markdownDescription": "The time zone that the scheduled maintenance window executions are based on, in Internet Assigned Numbers Authority \\(IANA\\) format\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleTimezone", "type": "string" }, "StartDate": { + "markdownDescription": "The date and time, in ISO\\-8601 Extended format, for when the maintenance window is scheduled to become active\\. StartDate allows you to delay activation of the Maintenance Window until the specified future date\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartDate", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Optional metadata that you assign to a resource in the form of an arbitrary set of tags \\(key\\-value pairs\\)\\. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment\\. For example, you might want to tag a maintenance window to identify the type of tasks it will run, the types of targets, and the environment it will run in\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -135074,24 +164822,36 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description for the target\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name for the maintenance window target\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "OwnerInformation": { + "markdownDescription": "A user\\-provided value that will be included in any Amazon CloudWatch Events events that are raised while running tasks for these targets in this maintenance window\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OwnerInformation", "type": "string" }, "ResourceType": { + "markdownDescription": "The type of target that is being registered with the maintenance window\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `INSTANCE | RESOURCE_GROUP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceType", "type": "string" }, "Targets": { "items": { "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTarget.Targets" }, + "markdownDescription": "The targets to register with the maintenance window\\. In other words, the instances to run commands on when the maintenance window runs\\. \nYou must specify targets by using the `WindowTargetIds` parameter\\. \n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtarget-targets.html) of [Targets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtarget-targets.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Targets", "type": "array" }, "WindowId": { + "markdownDescription": "The ID of the maintenance window to register the target with\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `20` \n*Pattern*: `^mw-[0-9a-f]{17}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WindowId", "type": "string" } }, @@ -135127,12 +164887,16 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "User\\-defined criteria for sending commands that target managed nodes that meet the criteria\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `163` \n*Pattern*: `^[\\p{L}\\p{Z}\\p{N}_.:/=\\-@]*$|resource-groups:ResourceTypeFilters|resource-groups:Name` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "User\\-defined criteria that maps to `Key`\\. For example, if you specified `tag:ServerRole`, you could specify `value:WebServer` to run a command on instances that include EC2 tags of `ServerRole,WebServer`\\. \nDepending on the type of target, the maximum number of values for a key might be lower than the global maximum of 50\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -135178,48 +164942,76 @@ "additionalProperties": false, "properties": { "CutoffBehavior": { + "markdownDescription": "The specification for whether tasks should continue to run after the cutoff time specified in the maintenance windows is reached\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CANCEL_TASK | CONTINUE_TASK` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CutoffBehavior", "type": "string" }, "Description": { + "markdownDescription": "A description of the task\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "LoggingInfo": { - "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.LoggingInfo" + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.LoggingInfo", + "markdownDescription": "Information about an Amazon S3 bucket to write task\\-level logs to\\. \n `LoggingInfo` has been deprecated\\. To specify an Amazon S3 bucket to contain logs, instead use the `OutputS3BucketName` and `OutputS3KeyPrefix` options in the `TaskInvocationParameters` structure\\. For information about how Systems Manager handles these options for the supported maintenance window task types, see [AWS Systems Manager MaintenanceWindowTask TaskInvocationParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-taskinvocationparameters.html)\\.\n*Required*: No \n*Type*: [LoggingInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-logginginfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingInfo" }, "MaxConcurrency": { + "markdownDescription": "The maximum number of targets this task can be run for, in parallel\\. \nAlthough this element is listed as \"Required: No\", a value can be omitted only when you are registering or updating a [targetless task](https://docs.aws.amazon.com/systems-manager/latest/userguide/maintenance-windows-targetless-tasks.html) You must provide a value in all other cases\\. \nFor maintenance window tasks without a target specified, you can't supply a value for this option\\. Instead, the system inserts a placeholder value of `1`\\. This value doesn't affect the running of your task\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `7` \n*Pattern*: `^([1-9][0-9]*|[1-9][0-9]%|[1-9]%|100%)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxConcurrency", "type": "string" }, "MaxErrors": { + "markdownDescription": "The maximum number of errors allowed before this task stops being scheduled\\. \nAlthough this element is listed as \"Required: No\", a value can be omitted only when you are registering or updating a [targetless task](https://docs.aws.amazon.com/systems-manager/latest/userguide/maintenance-windows-targetless-tasks.html) You must provide a value in all other cases\\. \nFor maintenance window tasks without a target specified, you can't supply a value for this option\\. Instead, the system inserts a placeholder value of `1`\\. This value doesn't affect the running of your task\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `7` \n*Pattern*: `^([1-9][0-9]*|[0]|[1-9][0-9]%|[0-9]%|100%)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxErrors", "type": "string" }, "Name": { + "markdownDescription": "The task name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Priority": { + "markdownDescription": "The priority of the task in the maintenance window\\. The lower the number, the higher the priority\\. Tasks that have the same priority are scheduled in parallel\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" }, "ServiceRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Identity and Access Management \\(IAM\\) service role to use to publish Amazon Simple Notification Service \\(Amazon SNS\\) notifications for maintenance window Run Command tasks\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceRoleArn", "type": "string" }, "Targets": { "items": { "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.Target" }, + "markdownDescription": "The targets, either instances or window target IDs\\. \n+ Specify instances using `Key=InstanceIds,Values=instanceid1,instanceid2 `\\.\n+ Specify window target IDs using `Key=WindowTargetIds,Values=window-target-id-1,window-target-id-2`\\.\n*Required*: No \n*Type*: List of [Target](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-target.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Targets", "type": "array" }, "TaskArn": { + "markdownDescription": "The resource that the task uses during execution\\. \nFor `RUN_COMMAND` and `AUTOMATION` task types, `TaskArn` is the SSM document name or Amazon Resource Name \\(ARN\\)\\. \nFor `LAMBDA` tasks, `TaskArn` is the function name or ARN\\. \nFor `STEP_FUNCTIONS` tasks, `TaskArn` is the state machine ARN\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskArn", "type": "string" }, "TaskInvocationParameters": { - "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.TaskInvocationParameters" + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.TaskInvocationParameters", + "markdownDescription": "The parameters to pass to the task when it runs\\. Populate only the fields that match the task type\\. All other fields should be empty\\. \nWhen you update a maintenance window task that has options specified in `TaskInvocationParameters`, you must provide again all the `TaskInvocationParameters` values that you want to retain\\. The values you do not specify again are removed\\. For example, suppose that when you registered a Run Command task, you specified `TaskInvocationParameters` values for `Comment`, `NotificationConfig`, and `OutputS3BucketName`\\. If you update the maintenance window task and specify only a different `OutputS3BucketName` value, the values for `Comment` and `NotificationConfig` are removed\\.\n*Required*: No \n*Type*: [TaskInvocationParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-taskinvocationparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskInvocationParameters" }, "TaskParameters": { + "markdownDescription": "The parameters to pass to the task when it runs\\. \n `TaskParameters` has been deprecated\\. To specify parameters to pass to a task when it runs, instead use the `Parameters` option in the `TaskInvocationParameters` structure\\. For information about how Systems Manager handles these options for the supported maintenance window task types, see [MaintenanceWindowTaskInvocationParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_MaintenanceWindowTaskInvocationParameters.html)\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskParameters", "type": "object" }, "TaskType": { + "markdownDescription": "The type of task\\. Valid values: `RUN_COMMAND`, `AUTOMATION`, `LAMBDA`, `STEP_FUNCTIONS`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AUTOMATION | LAMBDA | RUN_COMMAND | STEP_FUNCTIONS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TaskType", "type": "string" }, "WindowId": { + "markdownDescription": "The ID of the maintenance window where the task is registered\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `20` \n*Pattern*: `^mw-[0-9a-f]{17}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WindowId", "type": "string" } }, @@ -135256,9 +165048,13 @@ "additionalProperties": false, "properties": { "CloudWatchLogGroupName": { + "markdownDescription": "The name of the CloudWatch Logs log group where you want to send command output\\. If you don't specify a group name, AWS Systems Manager automatically creates a log group for you\\. The log group uses the following naming format: \n `aws/ssm/SystemsManagerDocumentName ` \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogGroupName", "type": "string" }, "CloudWatchOutputEnabled": { + "markdownDescription": "Enables Systems Manager to send command output to CloudWatch Logs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchOutputEnabled", "type": "boolean" } }, @@ -135268,12 +165064,18 @@ "additionalProperties": false, "properties": { "Region": { + "markdownDescription": "The AWS Region where the S3 bucket is located\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", "type": "string" }, "S3Bucket": { + "markdownDescription": "The name of an S3 bucket where execution logs are stored \\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Bucket", "type": "string" }, "S3Prefix": { + "markdownDescription": "The Amazon S3 bucket subfolder\\. \n*Required*: No \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Prefix", "type": "string" } }, @@ -135287,9 +165089,13 @@ "additionalProperties": false, "properties": { "DocumentVersion": { + "markdownDescription": "The version of an Automation runbook to use during task execution\\. \n*Required*: No \n*Type*: String \n*Pattern*: `([$]LATEST|[$]DEFAULT|^[1-9][0-9]*$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentVersion", "type": "string" }, "Parameters": { + "markdownDescription": "The parameters for the AUTOMATION task\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "object" } }, @@ -135299,12 +165105,18 @@ "additionalProperties": false, "properties": { "ClientContext": { + "markdownDescription": "Client\\-specific information to pass to the AWS Lambda function that you're invoking\\. You can then use the `context` variable to process the client information in your AWS Lambda function\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `8000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientContext", "type": "string" }, "Payload": { + "markdownDescription": "JSON to provide to your AWS Lambda function as input\\. \nAlthough `Type` is listed as \"String\" for this property, the payload content must be formatted as a Base64\\-encoded binary data object\\.\n*Length Constraint:* 4096 \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Payload", "type": "string" }, "Qualifier": { + "markdownDescription": "An AWS Lambda function version or alias name\\. If you specify a function version, the action uses the qualified function Amazon Resource Name \\(ARN\\) to invoke a specific Lambda function\\. If you specify an alias name, the action uses the alias ARN to invoke the Lambda function version that the alias points to\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Qualifier", "type": "string" } }, @@ -135314,36 +165126,58 @@ "additionalProperties": false, "properties": { "CloudWatchOutputConfig": { - "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.CloudWatchOutputConfig" + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.CloudWatchOutputConfig", + "markdownDescription": "Configuration options for sending command output to Amazon CloudWatch Logs\\. \n*Required*: No \n*Type*: [CloudWatchOutputConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-cloudwatchoutputconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchOutputConfig" }, "Comment": { + "markdownDescription": "Information about the command or commands to run\\. \n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", "type": "string" }, "DocumentHash": { + "markdownDescription": "The SHA\\-256 or SHA\\-1 hash created by the system when the document was created\\. SHA\\-1 hashes have been deprecated\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentHash", "type": "string" }, "DocumentHashType": { + "markdownDescription": "The SHA\\-256 or SHA\\-1 hash type\\. SHA\\-1 hashes are deprecated\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Sha1 | Sha256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentHashType", "type": "string" }, "DocumentVersion": { + "markdownDescription": "The AWS Systems Manager document \\(SSM document\\) version to use in the request\\. You can specify `$DEFAULT`, `$LATEST`, or a specific version number\\. If you run commands by using the AWS CLI, then you must escape the first two options by using a backslash\\. If you specify a version number, then you don't need to use the backslash\\. For example: \n `--document-version \"\\$DEFAULT\"` \n `--document-version \"\\$LATEST\"` \n `--document-version \"3\"` \n*Required*: No \n*Type*: String \n*Pattern*: `([$]LATEST|[$]DEFAULT|^[1-9][0-9]*$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentVersion", "type": "string" }, "NotificationConfig": { - "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.NotificationConfig" + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.NotificationConfig", + "markdownDescription": "Configurations for sending notifications about command status changes on a per\\-managed node basis\\. \n*Required*: No \n*Type*: [NotificationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-notificationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationConfig" }, "OutputS3BucketName": { + "markdownDescription": "The name of the Amazon Simple Storage Service \\(Amazon S3\\) bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputS3BucketName", "type": "string" }, "OutputS3KeyPrefix": { + "markdownDescription": "The S3 bucket subfolder\\. \n*Required*: No \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputS3KeyPrefix", "type": "string" }, "Parameters": { + "markdownDescription": "The parameters for the `RUN_COMMAND` task execution\\. \nThe supported parameters are the same as those for the `SendCommand` API call\\. For more information, see [SendCommand](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendCommand.html) in the *AWS Systems Manager API Reference*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "object" }, "ServiceRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Identity and Access Management \\(IAM\\) service role to use to publish Amazon Simple Notification Service \\(Amazon SNS\\) notifications for maintenance window Run Command tasks\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceRoleArn", "type": "string" }, "TimeoutSeconds": { + "markdownDescription": "If this time is reached and the command hasn't already started running, it doesn't run\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `30` \n*Maximum*: `2592000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutSeconds", "type": "number" } }, @@ -135353,9 +165187,13 @@ "additionalProperties": false, "properties": { "Input": { + "markdownDescription": "The inputs for the `STEP_FUNCTIONS` task\\. \n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Input", "type": "string" }, "Name": { + "markdownDescription": "The name of the `STEP_FUNCTIONS` task\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `80` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -135365,15 +165203,21 @@ "additionalProperties": false, "properties": { "NotificationArn": { + "markdownDescription": "An Amazon Resource Name \\(ARN\\) for an Amazon Simple Notification Service \\(Amazon SNS\\) topic\\. Run Command pushes notifications about command status changes to this topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationArn", "type": "string" }, "NotificationEvents": { "items": { "type": "string" }, + "markdownDescription": "The different events that you can receive notifications for\\. These events include the following: `All` \\(events\\), `InProgress`, `Success`, `TimedOut`, `Cancelled`, `Failed`\\. To learn more about these events, see [Configuring Amazon SNS Notifications for AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/monitoring-sns-notifications.html) in the *AWS Systems Manager User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationEvents", "type": "array" }, "NotificationType": { + "markdownDescription": "The notification type\\. \n+ `Command`: Receive notification when the status of a command changes\\.\n+ `Invocation`: For commands sent to multiple instances, receive notification on a per\\-instance basis when the status of a command changes\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `Command | Invocation` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationType", "type": "string" } }, @@ -135386,12 +165230,16 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "User\\-defined criteria for sending commands that target instances that meet the criteria\\. `Key` can be `InstanceIds` or `WindowTargetIds`\\. For more information about how to target instances within a maintenance window task, see [About 'register\\-task\\-with\\-maintenance\\-window' Options and Values](https://docs.aws.amazon.com/systems-manager/latest/userguide/register-tasks-options.html) in the *AWS Systems Manager User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `163` \n*Pattern*: `^[\\p{L}\\p{Z}\\p{N}_.:/=\\-@]*$|resource-groups:ResourceTypeFilters|resource-groups:Name` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "User\\-defined criteria that maps to `Key`\\. For example, if you specify `InstanceIds`, you can specify `i-1234567890abcdef0,i-9876543210abcdef0` to run a command on two EC2 instances\\. For more information about how to target instances within a maintenance window task, see [About 'register\\-task\\-with\\-maintenance\\-window' Options and Values](https://docs.aws.amazon.com/systems-manager/latest/userguide/register-tasks-options.html) in the *AWS Systems Manager User Guide*\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -135405,16 +165253,24 @@ "additionalProperties": false, "properties": { "MaintenanceWindowAutomationParameters": { - "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.MaintenanceWindowAutomationParameters" + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.MaintenanceWindowAutomationParameters", + "markdownDescription": "The parameters for an `AUTOMATION` task type\\. \n*Required*: No \n*Type*: [MaintenanceWindowAutomationParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowautomationparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaintenanceWindowAutomationParameters" }, "MaintenanceWindowLambdaParameters": { - "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.MaintenanceWindowLambdaParameters" + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.MaintenanceWindowLambdaParameters", + "markdownDescription": "The parameters for a `LAMBDA` task type\\. \n*Required*: No \n*Type*: [MaintenanceWindowLambdaParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowlambdaparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaintenanceWindowLambdaParameters" }, "MaintenanceWindowRunCommandParameters": { - "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.MaintenanceWindowRunCommandParameters" + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.MaintenanceWindowRunCommandParameters", + "markdownDescription": "The parameters for a `RUN_COMMAND` task type\\. \n*Required*: No \n*Type*: [MaintenanceWindowRunCommandParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowruncommandparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaintenanceWindowRunCommandParameters" }, "MaintenanceWindowStepFunctionsParameters": { - "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.MaintenanceWindowStepFunctionsParameters" + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.MaintenanceWindowStepFunctionsParameters", + "markdownDescription": "The parameters for a `STEP_FUNCTIONS` task type\\. \n*Required*: No \n*Type*: [MaintenanceWindowStepFunctionsParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowstepfunctionsparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaintenanceWindowStepFunctionsParameters" } }, "type": "object" @@ -135455,30 +165311,48 @@ "additionalProperties": false, "properties": { "AllowedPattern": { + "markdownDescription": "A regular expression used to validate the parameter value\\. For example, for String types with values restricted to numbers, you can specify the following: `AllowedPattern=^\\d+$` \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedPattern", "type": "string" }, "DataType": { + "markdownDescription": "The data type of the parameter, such as `text` or `aws:ec2:image`\\. The default is `text`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataType", "type": "string" }, "Description": { + "markdownDescription": "Information about the parameter\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name of the parameter\\. \nThe maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name\\. The maximum length for a parameter name, including the full length of the parameter ARN, is 1011 characters\\. For example, the length of the following parameter name is 65 characters, not 20 characters: `arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName` \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Policies": { + "markdownDescription": "Information about the policies assigned to a parameter\\. \n [Assigning parameter policies](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-policies.html) in the * AWS Systems Manager User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policies", "type": "string" }, "Tags": { + "markdownDescription": "Optional metadata that you assign to a resource in the form of an arbitrary set of tags \\(key\\-value pairs\\)\\. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment\\. For example, you might want to tag a Systems Manager parameter to identify the type of resource to which it applies, the environment, or the type of configuration data referenced by the parameter\\. \n*Required*: No \n*Type*: Json \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" }, "Tier": { + "markdownDescription": "The parameter tier\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Advanced | Intelligent-Tiering | Standard` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tier", "type": "string" }, "Type": { + "markdownDescription": "The type of parameter\\. \nAWS CloudFormation doesn't support creating a `SecureString` parameter type\\.\n*Allowed Values*: String \\| StringList \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" }, "Value": { + "markdownDescription": "The parameter value\\. \nIf type is `StringList`, the system returns a comma\\-separated string with no spaces between commas in the `Value` field\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -135545,57 +165419,83 @@ "additionalProperties": false, "properties": { "ApprovalRules": { - "$ref": "#/definitions/AWS::SSM::PatchBaseline.RuleGroup" + "$ref": "#/definitions/AWS::SSM::PatchBaseline.RuleGroup", + "markdownDescription": "A set of rules used to include patches in the baseline\\. \n*Required*: No \n*Type*: [RuleGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rulegroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApprovalRules" }, "ApprovedPatches": { "items": { "type": "string" }, + "markdownDescription": "A list of explicitly approved patches for the baseline\\. \nFor information about accepted formats for lists of approved patches and rejected patches, see [About package name formats for approved and rejected patch lists](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html) in the * AWS Systems Manager User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApprovedPatches", "type": "array" }, "ApprovedPatchesComplianceLevel": { + "markdownDescription": "Defines the compliance level for approved patches\\. When an approved patch is reported as missing, this value describes the severity of the compliance violation\\. The default value is `UNSPECIFIED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CRITICAL | HIGH | INFORMATIONAL | LOW | MEDIUM | UNSPECIFIED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApprovedPatchesComplianceLevel", "type": "string" }, "ApprovedPatchesEnableNonSecurity": { + "markdownDescription": "Indicates whether the list of approved patches includes non\\-security updates that should be applied to the managed nodes\\. The default value is `false`\\. Applies to Linux managed nodes only\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApprovedPatchesEnableNonSecurity", "type": "boolean" }, "Description": { + "markdownDescription": "A description of the patch baseline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "GlobalFilters": { - "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchFilterGroup" + "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchFilterGroup", + "markdownDescription": "A set of global filters used to include patches in the baseline\\. \n*Required*: No \n*Type*: [PatchFilterGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchfiltergroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlobalFilters" }, "Name": { + "markdownDescription": "The name of the patch baseline\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "OperatingSystem": { + "markdownDescription": "Defines the operating system the patch baseline applies to\\. The default value is `WINDOWS`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AMAZON_LINUX | AMAZON_LINUX_2 | CENTOS | DEBIAN | MACOS | ORACLE_LINUX | RASPBIAN | REDHAT_ENTERPRISE_LINUX | SUSE | UBUNTU | WINDOWS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OperatingSystem", "type": "string" }, "PatchGroups": { "items": { "type": "string" }, + "markdownDescription": "The name of the patch group to be registered with the patch baseline\\. \n*Required*: No \n*Type*: List of String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatchGroups", "type": "array" }, "RejectedPatches": { "items": { "type": "string" }, + "markdownDescription": "A list of explicitly rejected patches for the baseline\\. \nFor information about accepted formats for lists of approved patches and rejected patches, see [About package name formats for approved and rejected patch lists](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html) in the * AWS Systems Manager User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RejectedPatches", "type": "array" }, "RejectedPatchesAction": { + "markdownDescription": "The action for Patch Manager to take on patches included in the `RejectedPackages` list\\. \n+ ** `ALLOW_AS_DEPENDENCY` **: A package in the `Rejected` patches list is installed only if it is a dependency of another package\\. It is considered compliant with the patch baseline, and its status is reported as `InstalledOther`\\. This is the default action if no option is specified\\.\n+ ** `BLOCK` **: Packages in the `RejectedPatches` list, and packages that include them as dependencies, aren't installed under any circumstances\\. If a package was installed before it was added to the Rejected patches list, it is considered non\\-compliant with the patch baseline, and its status is reported as `InstalledRejected`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ALLOW_AS_DEPENDENCY | BLOCK` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RejectedPatchesAction", "type": "string" }, "Sources": { "items": { "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchSource" }, + "markdownDescription": "Information about the patches to use to update the managed nodes, including target operating systems and source repositories\\. Applies to Linux managed nodes only\\. \n*Required*: No \n*Type*: List of [PatchSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchsource.html) \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sources", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Optional metadata that you assign to a resource\\. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment\\. For example, you might want to tag a patch baseline to identify the severity level of patches it specifies and the operating system family it applies to\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -135629,12 +165529,16 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The key for the filter\\. \nFor information about valid keys, see [PatchFilter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PatchFilter.html) in the *AWS Systems Manager API Reference*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADVISORY_ID | ARCH | BUGZILLA_ID | CLASSIFICATION | CVE_ID | EPOCH | MSRC_SEVERITY | NAME | PATCH_ID | PATCH_SET | PRIORITY | PRODUCT | PRODUCT_FAMILY | RELEASE | REPOSITORY | SECTION | SECURITY | SEVERITY | VERSION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "The value for the filter key\\. \nFor information about valid values for each key based on operating system type, see [PatchFilter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PatchFilter.html) in the *AWS Systems Manager API Reference*\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -135647,6 +165551,8 @@ "items": { "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchFilter" }, + "markdownDescription": "The set of patch filters that make up the group\\. \n*Required*: No \n*Type*: List of [PatchFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchfilter.html) \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatchFilters", "type": "array" } }, @@ -135656,15 +165562,21 @@ "additionalProperties": false, "properties": { "Configuration": { + "markdownDescription": "The value of the yum repo configuration\\. For example: \n `[main]` \n `name=MyCustomRepository` \n `baseurl=https://my-custom-repository` \n `enabled=1` \nFor information about other options available for your yum repository configuration, see [dnf\\.conf\\(5\\)](https://man7.org/linux/man-pages/man5/dnf.conf.5.html)\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configuration", "type": "string" }, "Name": { + "markdownDescription": "The name specified to identify the patch source\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,50}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Products": { "items": { "type": "string" }, + "markdownDescription": "The specific operating system versions a patch repository applies to, such as \"Ubuntu16\\.04\", \"AmazonLinux2016\\.09\", \"RedhatEnterpriseLinux7\\.2\" or \"Suse12\\.7\"\\. For lists of supported product values, see [PatchFilter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PatchFilter.html) in the *AWS Systems Manager API Reference*\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Products", "type": "array" } }, @@ -135679,19 +165591,29 @@ "additionalProperties": false, "properties": { "ApproveAfterDays": { + "markdownDescription": "The number of days after the release date of each patch matched by the rule that the patch is marked as approved in the patch baseline\\. For example, a value of `7` means that patches are approved seven days after they are released\\. \nYou must specify a value for `ApproveAfterDays`\\. \nException: Not supported on Debian Server or Ubuntu Server\\. \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `360` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApproveAfterDays", "type": "number" }, "ApproveUntilDate": { - "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchStringDate" + "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchStringDate", + "markdownDescription": "The cutoff date for auto approval of released patches\\. Any patches released on or before this date are installed automatically\\. Not supported on Debian Server or Ubuntu Server\\. \nEnter dates in the format `YYYY-MM-DD`\\. For example, `2021-12-31`\\. \n*Required*: No \n*Type*: [PatchStringDate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchstringdate.html) \n*Minimum*: `1` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApproveUntilDate" }, "ComplianceLevel": { + "markdownDescription": "A compliance severity level for all approved patches in a patch baseline\\. Valid compliance severity levels include the following: `UNSPECIFIED`, `CRITICAL`, `HIGH`, `MEDIUM`, `LOW`, and `INFORMATIONAL`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CRITICAL | HIGH | INFORMATIONAL | LOW | MEDIUM | UNSPECIFIED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComplianceLevel", "type": "string" }, "EnableNonSecurity": { + "markdownDescription": "For managed nodes identified by the approval rule filters, enables a patch baseline to apply non\\-security updates available in the specified repository\\. The default value is `false`\\. Applies to Linux managed nodes only\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableNonSecurity", "type": "boolean" }, "PatchFilterGroup": { - "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchFilterGroup" + "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchFilterGroup", + "markdownDescription": "The patch filter group that defines the criteria for the rule\\. \n*Required*: No \n*Type*: [PatchFilterGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchfiltergroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatchFilterGroup" } }, "type": "object" @@ -135703,6 +165625,8 @@ "items": { "$ref": "#/definitions/AWS::SSM::PatchBaseline.Rule" }, + "markdownDescription": "The rules that make up the rule group\\. \n*Required*: No \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rule.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatchRules", "type": "array" } }, @@ -135744,30 +165668,48 @@ "additionalProperties": false, "properties": { "BucketName": { + "markdownDescription": "The name of the S3 bucket where the aggregated data is stored\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketName", "type": "string" }, "BucketPrefix": { + "markdownDescription": "An Amazon S3 prefix for the bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketPrefix", "type": "string" }, "BucketRegion": { + "markdownDescription": "The AWS Region with the S3 bucket targeted by the resource data sync\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketRegion", "type": "string" }, "KMSKeyArn": { + "markdownDescription": "The ARN of an encryption key for a destination in Amazon S3\\. You can use a KMS key to encrypt inventory data in Amazon S3\\. You must specify a key that exist in the same region as the destination Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KMSKeyArn", "type": "string" }, "S3Destination": { - "$ref": "#/definitions/AWS::SSM::ResourceDataSync.S3Destination" + "$ref": "#/definitions/AWS::SSM::ResourceDataSync.S3Destination", + "markdownDescription": "Configuration information for the target S3 bucket\\. \n*Required*: No \n*Type*: [S3Destination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-resourcedatasync-s3destination.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Destination" }, "SyncFormat": { + "markdownDescription": "A supported sync format\\. The following format is currently supported: JsonSerDe \n*Required*: No \n*Type*: String \n*Allowed values*: `JsonSerDe` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SyncFormat", "type": "string" }, "SyncName": { + "markdownDescription": "A name for the resource data sync\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SyncName", "type": "string" }, "SyncSource": { - "$ref": "#/definitions/AWS::SSM::ResourceDataSync.SyncSource" + "$ref": "#/definitions/AWS::SSM::ResourceDataSync.SyncSource", + "markdownDescription": "Information about the source where the data was synchronized\\. \n*Required*: No \n*Type*: [SyncSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-resourcedatasync-syncsource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SyncSource" }, "SyncType": { + "markdownDescription": "The type of resource data sync\\. If `SyncType` is `SyncToDestination`, then the resource data sync synchronizes data to an S3 bucket\\. If the `SyncType` is `SyncFromSource` then the resource data sync synchronizes data from AWS Organizations or from multiple AWS Regions\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SyncType", "type": "string" } }, @@ -135801,12 +165743,16 @@ "additionalProperties": false, "properties": { "OrganizationSourceType": { + "markdownDescription": "If an AWS organization is present, this is either `OrganizationalUnits` or `EntireOrganization`\\. For `OrganizationalUnits`, the data is aggregated from a set of organization units\\. For `EntireOrganization`, the data is aggregated from the entire AWS organization\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrganizationSourceType", "type": "string" }, "OrganizationalUnits": { "items": { "type": "string" }, + "markdownDescription": "The AWS Organizations organization units included in the sync\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrganizationalUnits", "type": "array" } }, @@ -135819,18 +165765,28 @@ "additionalProperties": false, "properties": { "BucketName": { + "markdownDescription": "The name of the S3 bucket where the aggregated data is stored\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketName", "type": "string" }, "BucketPrefix": { + "markdownDescription": "An Amazon S3 prefix for the bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketPrefix", "type": "string" }, "BucketRegion": { + "markdownDescription": "The AWS Region with the S3 bucket targeted by the resource data sync\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketRegion", "type": "string" }, "KMSKeyArn": { + "markdownDescription": "The ARN of an encryption key for a destination in Amazon S3\\. Must belong to the same Region as the destination S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KMSKeyArn", "type": "string" }, "SyncFormat": { + "markdownDescription": "A supported sync format\\. The following format is currently supported: JsonSerDe \n*Required*: Yes \n*Type*: String \n*Allowed values*: `JsonSerDe` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SyncFormat", "type": "string" } }, @@ -135845,18 +165801,26 @@ "additionalProperties": false, "properties": { "AwsOrganizationsSource": { - "$ref": "#/definitions/AWS::SSM::ResourceDataSync.AwsOrganizationsSource" + "$ref": "#/definitions/AWS::SSM::ResourceDataSync.AwsOrganizationsSource", + "markdownDescription": "Information about the AwsOrganizationsSource resource data sync source\\. A sync source of this type can synchronize data from AWS Organizations\\. \n*Required*: No \n*Type*: [AwsOrganizationsSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-resourcedatasync-awsorganizationssource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsOrganizationsSource" }, "IncludeFutureRegions": { + "markdownDescription": "Whether to automatically synchronize and aggregate data from new AWS Regions when those Regions come online\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeFutureRegions", "type": "boolean" }, "SourceRegions": { "items": { "type": "string" }, + "markdownDescription": "The `SyncSource` AWS Regions included in the resource data sync\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceRegions", "type": "array" }, "SourceType": { + "markdownDescription": "The type of data source for the resource data sync\\. `SourceType` is either `AwsOrganizations` \\(if an organization is present in AWS Organizations\\) or `SingleAccountMultiRegions`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceType", "type": "string" } }, @@ -135971,18 +165935,26 @@ "additionalProperties": false, "properties": { "Alias": { + "markdownDescription": "The unique and identifiable alias of the contact or escalation plan\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-z0-9_\\-]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Alias", "type": "string" }, "DisplayName": { + "markdownDescription": "The full name of the contact or escalation plan\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `255` \n*Pattern*: `^[\\p{L}\\p{Z}\\p{N}_.\\-]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", "type": "string" }, "Plan": { "items": { "$ref": "#/definitions/AWS::SSMContacts::Contact.Stage" }, + "markdownDescription": "A list of stages\\. A contact has an engagement plan with stages that contact specified contact channels\\. An escalation plan uses stages that contact specified contacts\\. \n*Required*: Yes \n*Type*: List of [Stage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-contact-stage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Plan", "type": "array" }, "Type": { + "markdownDescription": "Refers to the type of contact\\. A single contact is type `PERSONAL` and an escalation plan is type `ESCALATION`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ESCALATION | PERSONAL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -136019,9 +165991,13 @@ "additionalProperties": false, "properties": { "ChannelId": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the contact channel\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:(aws|aws-cn|aws-us-gov):ssm-contacts:[-\\w+=\\/,.@]*:[0-9]+:([\\w+=\\/,.@:-]+)*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelId", "type": "string" }, "RetryIntervalInMinutes": { + "markdownDescription": "The number of minutes to wait to retry sending engagement in the case the engagement initially fails\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `60` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryIntervalInMinutes", "type": "number" } }, @@ -136035,9 +166011,13 @@ "additionalProperties": false, "properties": { "ContactId": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the contact\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:(aws|aws-cn|aws-us-gov):ssm-contacts:[-\\w+=\\/,.@]*:[0-9]+:([\\w+=\\/,.@:-]+)*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContactId", "type": "string" }, "IsEssential": { + "markdownDescription": "A Boolean value determining if the contact's acknowledgement stops the progress of stages in the plan\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsEssential", "type": "boolean" } }, @@ -136051,12 +166031,16 @@ "additionalProperties": false, "properties": { "DurationInMinutes": { + "markdownDescription": "The time to wait until beginning the next stage\\. The duration can only be set to 0 if a target is specified\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DurationInMinutes", "type": "number" }, "Targets": { "items": { "$ref": "#/definitions/AWS::SSMContacts::Contact.Targets" }, + "markdownDescription": "The contacts or contact methods that the escalation plan or engagement plan is engaging\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-contact-targets.html) of [Targets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-contact-targets.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Targets", "type": "array" } }, @@ -136069,10 +166053,14 @@ "additionalProperties": false, "properties": { "ChannelTargetInfo": { - "$ref": "#/definitions/AWS::SSMContacts::Contact.ChannelTargetInfo" + "$ref": "#/definitions/AWS::SSMContacts::Contact.ChannelTargetInfo", + "markdownDescription": "Information about the contact channel Incident Manager is engaging\\. \n*Required*: No \n*Type*: [ChannelTargetInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-contact-channeltargetinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelTargetInfo" }, "ContactTargetInfo": { - "$ref": "#/definitions/AWS::SSMContacts::Contact.ContactTargetInfo" + "$ref": "#/definitions/AWS::SSMContacts::Contact.ContactTargetInfo", + "markdownDescription": "The contact that Incident Manager is engaging during an incident\\. \n*Required*: No \n*Type*: [ContactTargetInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-contact-contacttargetinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContactTargetInfo" } }, "type": "object" @@ -136113,18 +166101,28 @@ "additionalProperties": false, "properties": { "ChannelAddress": { + "markdownDescription": "The details that Incident Manager uses when trying to engage the contact channel\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelAddress", "type": "string" }, "ChannelName": { + "markdownDescription": "The name of the contact channel\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[\\p{L}\\p{Z}\\p{N}_.\\-]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelName", "type": "string" }, "ChannelType": { + "markdownDescription": "The type of the contact channel\\. Incident Manager supports three contact methods: \n+ SMS\n+ VOICE\n+ EMAIL\n*Required*: Yes \n*Type*: String \n*Allowed values*: `EMAIL | SMS | VOICE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ChannelType", "type": "string" }, "ContactId": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the contact you are adding the contact channel to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:(aws|aws-cn|aws-us-gov):ssm-contacts:[-\\w+=\\/,.@]*:[0-9]+:([\\w+=\\/,.@:-]+)*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContactId", "type": "string" }, "DeferActivation": { + "markdownDescription": "If you want to activate the channel at a later time, you can choose to defer activation\\. Incident Manager can't engage your contact channel until it has been activated\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeferActivation", "type": "boolean" } }, @@ -136193,12 +166191,16 @@ "additionalProperties": false, "properties": { "DeletionProtected": { + "markdownDescription": "Determines if the replication set deletion protection is enabled or not\\. If deletion protection is enabled, you can't delete the last Region in the replication set\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeletionProtected", "type": "boolean" }, "Regions": { "items": { "$ref": "#/definitions/AWS::SSMIncidents::ReplicationSet.ReplicationRegion" }, + "markdownDescription": "Specifies the Regions of the replication set\\. \n*Required*: Yes \n*Type*: List of [ReplicationRegion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-replicationset-replicationregion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Regions", "type": "array" }, "Tags": { @@ -136238,6 +166240,8 @@ "additionalProperties": false, "properties": { "SseKmsKeyId": { + "markdownDescription": "The KMS key ID to use to encrypt your replication set\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SseKmsKeyId", "type": "string" } }, @@ -136250,9 +166254,13 @@ "additionalProperties": false, "properties": { "RegionConfiguration": { - "$ref": "#/definitions/AWS::SSMIncidents::ReplicationSet.RegionConfiguration" + "$ref": "#/definitions/AWS::SSMIncidents::ReplicationSet.RegionConfiguration", + "markdownDescription": "Specifies the Region configuration\\. \n*Required*: No \n*Type*: [RegionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-replicationset-regionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegionConfiguration" }, "RegionName": { + "markdownDescription": "Specifies the region name to add to the replication set\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegionName", "type": "string" } }, @@ -136297,22 +166305,32 @@ "items": { "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.Action" }, + "markdownDescription": "The actions that the response plan starts at the beginning of an incident\\. \n*Required*: No \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-responseplan-action.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", "type": "array" }, "ChatChannel": { - "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.ChatChannel" + "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.ChatChannel", + "markdownDescription": "The AWS Chatbot chat channel used for collaboration during an incident\\. \n*Required*: No \n*Type*: [ChatChannel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-responseplan-chatchannel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChatChannel" }, "DisplayName": { + "markdownDescription": "The human readable name of the response plan\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", "type": "string" }, "Engagements": { "items": { "type": "string" }, + "markdownDescription": "The contacts and escalation plans that the response plan engages during an incident\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Engagements", "type": "array" }, "IncidentTemplate": { - "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.IncidentTemplate" + "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.IncidentTemplate", + "markdownDescription": "Details used to create an incident when using this response plan\\. \n*Required*: Yes \n*Type*: [IncidentTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-responseplan-incidenttemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncidentTemplate" }, "Integrations": { "items": { @@ -136321,12 +166339,16 @@ "type": "array" }, "Name": { + "markdownDescription": "The name of the response plan\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `200` \n*Pattern*: `^[a-zA-Z0-9-_]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -136361,7 +166383,9 @@ "additionalProperties": false, "properties": { "SsmAutomation": { - "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.SsmAutomation" + "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.SsmAutomation", + "markdownDescription": "Details about the Systems Manager automation document that will be used as a runbook during an incident\\. \n*Required*: No \n*Type*: [SsmAutomation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-responseplan-ssmautomation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SsmAutomation" } }, "type": "object" @@ -136373,6 +166397,8 @@ "items": { "type": "string" }, + "markdownDescription": "The SNS targets that AWS Chatbot uses to notify the chat channel of updates to an incident\\. You can also make updates to the incident through the chat channel by using the SNS topics \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChatbotSns", "type": "array" } }, @@ -136407,9 +166433,13 @@ "additionalProperties": false, "properties": { "DedupeString": { + "markdownDescription": "Used to create only one incident record for an incident\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DedupeString", "type": "string" }, "Impact": { + "markdownDescription": "Defines the impact to the customers\\. Providing an impact overwrites the impact provided by a response plan\\.", + "title": "Impact", "type": "number" }, "IncidentTags": { @@ -136422,12 +166452,18 @@ "items": { "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.NotificationTargetItem" }, + "markdownDescription": "The SNS targets that AWS Chatbot uses to notify the chat channel of updates to an incident\\. You can also make updates to the incident through the chat channel using the SNS topics\\. \n*Required*: No \n*Type*: List of [NotificationTargetItem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-responseplan-notificationtargetitem.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationTargets", "type": "array" }, "Summary": { + "markdownDescription": "The summary describes what has happened during the incident\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `4000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Summary", "type": "string" }, "Title": { + "markdownDescription": "The title of the incident is a brief and easily recognizable\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Title", "type": "string" } }, @@ -136453,6 +166489,8 @@ "additionalProperties": false, "properties": { "SnsTopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the SNS topic\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Pattern*: `^arn:aws(-cn|-us-gov)?:[a-z0-9-]*:[a-z0-9-]*:([0-9]{12})?:.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsTopicArn", "type": "string" } }, @@ -136494,9 +166532,13 @@ "additionalProperties": false, "properties": { "DocumentName": { + "markdownDescription": "The automation document's name\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.:/]{3,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentName", "type": "string" }, "DocumentVersion": { + "markdownDescription": "The automation document's version to use when running\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentVersion", "type": "string" }, "DynamicParameters": { @@ -136509,12 +166551,18 @@ "items": { "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.SsmParameter" }, + "markdownDescription": "The key\\-value pair parameters to use when running the automation document\\. \n*Required*: No \n*Type*: List of [SsmParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-responseplan-ssmparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", "type": "array" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that the automation document will assume when running commands\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Pattern*: `^arn:aws(-cn|-us-gov)?:iam::([0-9]{12})?:role/.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "TargetAccount": { + "markdownDescription": "The account that the automation document will be run in\\. This can be in either the management account or an application account\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `IMPACTED_ACCOUNT | RESPONSE_PLAN_OWNER_ACCOUNT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetAccount", "type": "string" } }, @@ -136528,12 +166576,16 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The key parameter to use when running the automation document\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Values": { "items": { "type": "string" }, + "markdownDescription": "The value parameter to use when running the automation document\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", "type": "array" } }, @@ -136579,21 +166631,33 @@ "additionalProperties": false, "properties": { "InstanceArn": { + "markdownDescription": "The ARN of the SSO instance under which the operation will be executed\\. For more information about ARNs, see [Amazon Resource Names \\(ARNs\\) and AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *AWS General Reference*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `1224` \n*Pattern*: `arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html:::instance/(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html)?ins-[a-zA-Z0-9-.]{16}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceArn", "type": "string" }, "PermissionSetArn": { + "markdownDescription": "The ARN of the permission set\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `1224` \n*Pattern*: `arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html:::permissionSet/(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html)?ins-[a-zA-Z0-9-.]{16}/ps-[a-zA-Z0-9-./]{16}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PermissionSetArn", "type": "string" }, "PrincipalId": { + "markdownDescription": "An identifier for an object in AWS SSO, such as a user or group\\. PrincipalIds are GUIDs \\(For example, f81d4fae\\-7dec\\-11d0\\-a765\\-00a0c91e6bf6\\)\\. For more information about PrincipalIds in AWS SSO, see the [AWS SSO Identity Store API Reference](/singlesignon/latest/IdentityStoreAPIReference/welcome.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `47` \n*Pattern*: `^([0-9a-f]{10}-|)[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrincipalId", "type": "string" }, "PrincipalType": { + "markdownDescription": "The entity type for which the assignment will be created\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GROUP | USER` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrincipalType", "type": "string" }, "TargetId": { + "markdownDescription": "TargetID is an AWS account identifier, typically a 10\\-12 digit string \\(For example, 123456789012\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `\\d{12}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetId", "type": "string" }, "TargetType": { + "markdownDescription": "The entity type for which the assignment will be created\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AWS_ACCOUNT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetType", "type": "string" } }, @@ -136667,9 +166731,13 @@ "items": { "$ref": "#/definitions/AWS::SSO::InstanceAccessControlAttributeConfiguration.AccessControlAttribute" }, + "markdownDescription": "Lists the attributes that are configured for ABAC in the specified AWS SSO instance\\. \n*Required*: No \n*Type*: List of [AccessControlAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sso-instanceaccesscontrolattributeconfiguration-accesscontrolattribute.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessControlAttributes", "type": "array" }, "InstanceArn": { + "markdownDescription": "The ARN of the AWS SSO instance under which the operation will be executed\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `1224` \n*Pattern*: `arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html:::instance/(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html)?ins-[a-zA-Z0-9-.]{16}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceArn", "type": "string" } }, @@ -136703,10 +166771,14 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The name of the attribute associated with your identities in your identity source\\. This is used to map a specified attribute in your identity source with an attribute in AWS SSO\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { - "$ref": "#/definitions/AWS::SSO::InstanceAccessControlAttributeConfiguration.AccessControlAttributeValue" + "$ref": "#/definitions/AWS::SSO::InstanceAccessControlAttributeConfiguration.AccessControlAttributeValue", + "markdownDescription": "The value used for mapping a specified attribute to an identity source\\. \n*Required*: Yes \n*Type*: [AccessControlAttributeValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sso-instanceaccesscontrolattributeconfiguration-accesscontrolattributevalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value" } }, "required": [ @@ -136722,6 +166794,8 @@ "items": { "type": "string" }, + "markdownDescription": "The identity source to use when mapping a specified attribute to AWS SSO\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source", "type": "array" } }, @@ -136772,36 +166846,52 @@ "type": "array" }, "Description": { + "markdownDescription": "The description of the [AWS::SSO::PermissionSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-resource-sso-permissionset.html#aws-resource-sso-permissionset)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `700` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u00A0-\\u00FF]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "InlinePolicy": { + "markdownDescription": "The IAM inline policy that is attached to the permission set\\. \n*Required*: No \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `10240` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InlinePolicy", "type": "object" }, "InstanceArn": { + "markdownDescription": "The ARN of the SSO instance under which the operation will be executed\\. For more information about ARNs, see [Amazon Resource Names \\(ARNs\\) and AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *AWS General Reference*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `1224` \n*Pattern*: `arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html:::instance/(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html)?ins-[a-zA-Z0-9-.]{16}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceArn", "type": "string" }, "ManagedPolicies": { "items": { "type": "string" }, + "markdownDescription": "A structure that stores the details of the IAM managed policy\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManagedPolicies", "type": "array" }, "Name": { + "markdownDescription": "The name of the permission set\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "PermissionsBoundary": { "$ref": "#/definitions/AWS::SSO::PermissionSet.PermissionsBoundary" }, "RelayStateType": { + "markdownDescription": "Used to redirect users within the application during the federation authentication process\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `240` \n*Pattern*: `[a-zA-Z0-9&$@#\\\\\\/%?=~\\-_'\"|!:,.;*+\\[\\]\\ \\(\\)\\{\\}]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RelayStateType", "type": "string" }, "SessionDuration": { + "markdownDescription": "The length of time that the application user sessions are valid for in the ISO\\-8601 standard\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^(-?)P(?=\\d|T\\d)(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)([DW]))?(?:T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+(?:\\.\\d+)?)S)?)?$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionDuration", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to attach to the new [AWS::SSO::PermissionSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-resource-sso-permissionset.html#aws-resource-sso-permissionset)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -136895,24 +166985,36 @@ "additionalProperties": false, "properties": { "AppName": { + "markdownDescription": "The name of the app\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AppName", "type": "string" }, "AppType": { + "markdownDescription": "The type of app\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `JupyterServer | KernelGateway | RSessionGateway | RStudioServerPro | TensorBoard` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AppType", "type": "string" }, "DomainId": { + "markdownDescription": "The domain ID\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainId", "type": "string" }, "ResourceSpec": { - "$ref": "#/definitions/AWS::SageMaker::App.ResourceSpec" + "$ref": "#/definitions/AWS::SageMaker::App.ResourceSpec", + "markdownDescription": "Specifies the ARN's of a SageMaker image and SageMaker image version, and the instance type that the version runs on\\. \n*Required*: No \n*Type*: [ResourceSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-app-resourcespec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceSpec" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" }, "UserProfileName": { + "markdownDescription": "The user profile name\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserProfileName", "type": "string" } }, @@ -136949,12 +167051,18 @@ "additionalProperties": false, "properties": { "InstanceType": { + "markdownDescription": "The instance type that the image version runs on\\. \nJupyterServer Apps only support the `system` value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ml.c5.12xlarge | ml.c5.18xlarge | ml.c5.24xlarge | ml.c5.2xlarge | ml.c5.4xlarge | ml.c5.9xlarge | ml.c5.large | ml.c5.xlarge | ml.g4dn.12xlarge | ml.g4dn.16xlarge | ml.g4dn.2xlarge | ml.g4dn.4xlarge | ml.g4dn.8xlarge | ml.g4dn.xlarge | ml.m5.12xlarge | ml.m5.16xlarge | ml.m5.24xlarge | ml.m5.2xlarge | ml.m5.4xlarge | ml.m5.8xlarge | ml.m5.large | ml.m5.xlarge | ml.m5d.12xlarge | ml.m5d.16xlarge | ml.m5d.24xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.8xlarge | ml.m5d.large | ml.m5d.xlarge | ml.p3.16xlarge | ml.p3.2xlarge | ml.p3.8xlarge | ml.p3dn.24xlarge | ml.r5.12xlarge | ml.r5.16xlarge | ml.r5.24xlarge | ml.r5.2xlarge | ml.r5.4xlarge | ml.r5.8xlarge | ml.r5.large | ml.r5.xlarge | ml.t3.2xlarge | ml.t3.large | ml.t3.medium | ml.t3.micro | ml.t3.small | ml.t3.xlarge | system` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", "type": "string" }, "SageMakerImageArn": { + "markdownDescription": "The ARN of the SageMaker image that the image version belongs to\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SageMakerImageArn", "type": "string" }, "SageMakerImageVersionArn": { + "markdownDescription": "The ARN of the image version created on the instance\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SageMakerImageVersionArn", "type": "string" } }, @@ -136996,15 +167104,21 @@ "additionalProperties": false, "properties": { "AppImageConfigName": { + "markdownDescription": "The name of the AppImageConfig\\. Must be unique to your account\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AppImageConfigName", "type": "string" }, "KernelGatewayImageConfig": { - "$ref": "#/definitions/AWS::SageMaker::AppImageConfig.KernelGatewayImageConfig" + "$ref": "#/definitions/AWS::SageMaker::AppImageConfig.KernelGatewayImageConfig", + "markdownDescription": "The configuration for the file system and kernels in the SageMaker image\\. \n*Required*: No \n*Type*: [KernelGatewayImageConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-appimageconfig-kernelgatewayimageconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KernelGatewayImageConfig" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -137038,12 +167152,18 @@ "additionalProperties": false, "properties": { "DefaultGid": { + "markdownDescription": "The default POSIX group ID \\(GID\\)\\. If not specified, defaults to `100`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultGid", "type": "number" }, "DefaultUid": { + "markdownDescription": "The default POSIX user ID \\(UID\\)\\. If not specified, defaults to `1000`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultUid", "type": "number" }, "MountPath": { + "markdownDescription": "The path within the image to mount the user's EFS home directory\\. The directory should be empty\\. If not specified, defaults to */home/sagemaker\\-user*\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^\\/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MountPath", "type": "string" } }, @@ -137053,12 +167173,16 @@ "additionalProperties": false, "properties": { "FileSystemConfig": { - "$ref": "#/definitions/AWS::SageMaker::AppImageConfig.FileSystemConfig" + "$ref": "#/definitions/AWS::SageMaker::AppImageConfig.FileSystemConfig", + "markdownDescription": "The Amazon Elastic File System \\(EFS\\) storage configuration for a SageMaker image\\. \n*Required*: No \n*Type*: [FileSystemConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-appimageconfig-filesystemconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileSystemConfig" }, "KernelSpecs": { "items": { "$ref": "#/definitions/AWS::SageMaker::AppImageConfig.KernelSpec" }, + "markdownDescription": "The specification of the Jupyter kernels in the image\\. \n*Required*: Yes \n*Type*: List of [KernelSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-appimageconfig-kernelspec.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KernelSpecs", "type": "array" } }, @@ -137071,9 +167195,13 @@ "additionalProperties": false, "properties": { "DisplayName": { + "markdownDescription": "The display name of the kernel\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", "type": "string" }, "Name": { + "markdownDescription": "The name of the Jupyter kernel in the image\\. This value is case sensitive\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -137118,15 +167246,21 @@ "additionalProperties": false, "properties": { "CodeRepositoryName": { + "markdownDescription": "The name of the Git repository\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CodeRepositoryName", "type": "string" }, "GitConfig": { - "$ref": "#/definitions/AWS::SageMaker::CodeRepository.GitConfig" + "$ref": "#/definitions/AWS::SageMaker::CodeRepository.GitConfig", + "markdownDescription": "Configuration details for the Git repository, including the URL where it is located and the ARN of the AWS Secrets Manager secret that contains the credentials used to access the repository\\. \n*Required*: Yes \n*Type*: [GitConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-coderepository-gitconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GitConfig" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "List of tags for Code Repository\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -137160,12 +167294,18 @@ "additionalProperties": false, "properties": { "Branch": { + "markdownDescription": "The default branch for the Git repository\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[^ ~^:?*\\[]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Branch", "type": "string" }, "RepositoryUrl": { + "markdownDescription": "The URL where the Git repository is located\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^https://([^/]+)/?(.*)$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RepositoryUrl", "type": "string" }, "SecretArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Secrets Manager secret that contains the credentials used to access the git repository\\. The secret must have a staging label of `AWSCURRENT` and must be in the following format: \n `{\"username\": UserName, \"password\": Password}` \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:aws[a-z\\-]*:secretsmanager:[a-z0-9\\-]*:[0-9]{12}:secret:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretArn", "type": "string" } }, @@ -137210,39 +167350,59 @@ "additionalProperties": false, "properties": { "DataQualityAppSpecification": { - "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.DataQualityAppSpecification" + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.DataQualityAppSpecification", + "markdownDescription": "Specifies the container that runs the monitoring job\\. \n*Required*: Yes \n*Type*: [DataQualityAppSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-dataqualityappspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataQualityAppSpecification" }, "DataQualityBaselineConfig": { - "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.DataQualityBaselineConfig" + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.DataQualityBaselineConfig", + "markdownDescription": "Configures the constraints and baselines for the monitoring job\\. \n*Required*: No \n*Type*: [DataQualityBaselineConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-dataqualitybaselineconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataQualityBaselineConfig" }, "DataQualityJobInput": { - "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.DataQualityJobInput" + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.DataQualityJobInput", + "markdownDescription": "A list of inputs for the monitoring job\\. Currently endpoints are supported as monitoring inputs\\. \n*Required*: Yes \n*Type*: [DataQualityJobInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-dataqualityjobinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataQualityJobInput" }, "DataQualityJobOutputConfig": { - "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.MonitoringOutputConfig" + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.MonitoringOutputConfig", + "markdownDescription": "The output configuration for monitoring jobs\\. \n*Required*: Yes \n*Type*: [MonitoringOutputConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-monitoringoutputconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataQualityJobOutputConfig" }, "EndpointName": { "type": "string" }, "JobDefinitionName": { + "markdownDescription": "The name for the monitoring job definition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "JobDefinitionName", "type": "string" }, "JobResources": { - "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.MonitoringResources" + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.MonitoringResources", + "markdownDescription": "Identifies the resources to deploy for a monitoring job\\. \n*Required*: Yes \n*Type*: [MonitoringResources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-monitoringresources.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "JobResources" }, "NetworkConfig": { - "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.NetworkConfig" + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.NetworkConfig", + "markdownDescription": "Specifies networking configuration for the monitoring job\\. \n*Required*: No \n*Type*: [NetworkConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-networkconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkConfig" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RoleArn", "type": "string" }, "StoppingCondition": { - "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.StoppingCondition" + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.StoppingCondition", + "markdownDescription": "A time limit for how long the monitoring job is allowed to run before stopping\\. \n*Required*: No \n*Type*: [StoppingCondition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-stoppingcondition.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StoppingCondition" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -137306,15 +167466,23 @@ "additionalProperties": false, "properties": { "InstanceCount": { + "markdownDescription": "The number of ML compute instances to use in the model monitoring job\\. For distributed processing jobs, specify a value greater than 1\\. The default value is 1\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceCount", "type": "number" }, "InstanceType": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", "type": "string" }, "VolumeKmsKeyId": { + "markdownDescription": "The AWS Key Management Service \\(AWS KMS\\) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance\\(s\\) that run the model monitoring job\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeKmsKeyId", "type": "string" }, "VolumeSizeInGB": { + "markdownDescription": "The size of the ML storage volume, in gigabytes, that you want to provision\\. You must specify sufficient ML storage for your scenario\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeSizeInGB", "type": "number" } }, @@ -137329,6 +167497,8 @@ "additionalProperties": false, "properties": { "S3Uri": { + "markdownDescription": "The Amazon S3 URI for the constraints resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Uri", "type": "string" } }, @@ -137350,30 +167520,42 @@ "items": { "type": "string" }, + "markdownDescription": "The arguments to send to the container that the monitoring job runs\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerArguments", "type": "array" }, "ContainerEntrypoint": { "items": { "type": "string" }, + "markdownDescription": "The entrypoint for a container used to run a monitoring job\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerEntrypoint", "type": "array" }, "Environment": { "additionalProperties": true, + "markdownDescription": "Sets the environment variables in the container that the monitoring job runs\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Environment", "type": "object" }, "ImageUri": { + "markdownDescription": "The container image that the data quality monitoring job runs\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageUri", "type": "string" }, "PostAnalyticsProcessorSourceUri": { + "markdownDescription": "An Amazon S3 URI to a script that is called after analysis has been performed\\. Applicable only for the built\\-in \\(first party\\) containers\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^(https|s3)://([^/]+)/?(.*)$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PostAnalyticsProcessorSourceUri", "type": "string" }, "RecordPreprocessorSourceUri": { + "markdownDescription": "An Amazon S3 URI to a script that is called per row prior to running analysis\\. It can base64 decode the payload and convert it into a flatted json so that the built\\-in container can use the converted data\\. Applicable only for the built\\-in \\(first party\\) containers\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^(https|s3)://([^/]+)/?(.*)$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RecordPreprocessorSourceUri", "type": "string" } }, @@ -137386,13 +167568,19 @@ "additionalProperties": false, "properties": { "BaseliningJobName": { + "markdownDescription": "The name of the job that performs baselining for the data quality monitoring job\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BaseliningJobName", "type": "string" }, "ConstraintsResource": { - "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.ConstraintsResource" + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.ConstraintsResource", + "markdownDescription": "The constraints resource for a monitoring job\\. \n*Required*: No \n*Type*: [ConstraintsResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-constraintsresource.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConstraintsResource" }, "StatisticsResource": { - "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.StatisticsResource" + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.StatisticsResource", + "markdownDescription": "Configuration for monitoring constraints and monitoring statistics\\. These baseline resources are compared against the results of the current job from the series of jobs scheduled to collect data periodically\\. \n*Required*: No \n*Type*: [StatisticsResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-statisticsresource.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StatisticsResource" } }, "type": "object" @@ -137404,7 +167592,9 @@ "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.BatchTransformInput" }, "EndpointInput": { - "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.EndpointInput" + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.EndpointInput", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: [EndpointInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-endpointinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EndpointInput" } }, "type": "object" @@ -137428,15 +167618,23 @@ "additionalProperties": false, "properties": { "EndpointName": { + "markdownDescription": "An endpoint in customer's account which has enabled `DataCaptureConfig` enabled\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EndpointName", "type": "string" }, "LocalPath": { + "markdownDescription": "Path to the filesystem where the endpoint data is available to the container\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalPath", "type": "string" }, "S3DataDistributionType": { + "markdownDescription": "Whether input data distributed in Amazon S3 is fully replicated or sharded by an S3 key\\. Defaults to `FullyReplicated` \n*Required*: No \n*Type*: String \n*Allowed values*: `FullyReplicated | ShardedByS3Key` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3DataDistributionType", "type": "string" }, "S3InputMode": { + "markdownDescription": "Whether the `Pipe` or `File` is used as the input mode for transferring data for the monitoring job\\. `Pipe` mode is recommended for large datasets\\. `File` mode is useful for small files that fit in memory\\. Defaults to `File`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `File | Pipe` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3InputMode", "type": "string" } }, @@ -137459,7 +167657,9 @@ "additionalProperties": false, "properties": { "S3Output": { - "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.S3Output" + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.S3Output", + "markdownDescription": "The Amazon S3 storage location where the results of a monitoring job are saved\\. \n*Required*: Yes \n*Type*: [S3Output](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-s3output.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Output" } }, "required": [ @@ -137471,12 +167671,16 @@ "additionalProperties": false, "properties": { "KmsKeyId": { + "markdownDescription": "The AWS Key Management Service \\(AWS KMS\\) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server\\-side encryption\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" }, "MonitoringOutputs": { "items": { "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.MonitoringOutput" }, + "markdownDescription": "Monitoring outputs for monitoring jobs\\. This is where the output of the periodic monitoring jobs is uploaded\\. \n*Required*: Yes \n*Type*: List of [MonitoringOutput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-monitoringoutput.html) \n*Maximum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MonitoringOutputs", "type": "array" } }, @@ -137489,7 +167693,9 @@ "additionalProperties": false, "properties": { "ClusterConfig": { - "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.ClusterConfig" + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.ClusterConfig", + "markdownDescription": "The configuration for the cluster resources used to run the processing job\\. \n*Required*: Yes \n*Type*: [ClusterConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-clusterconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterConfig" } }, "required": [ @@ -137501,13 +167707,19 @@ "additionalProperties": false, "properties": { "EnableInterContainerTrafficEncryption": { + "markdownDescription": "Whether to encrypt all communications between distributed processing jobs\\. Choose `True` to encrypt communications\\. Encryption provides greater security for distributed processing jobs, but the processing might take longer\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnableInterContainerTrafficEncryption", "type": "boolean" }, "EnableNetworkIsolation": { + "markdownDescription": "Whether to allow inbound and outbound network calls to and from the containers used for the processing job\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnableNetworkIsolation", "type": "boolean" }, "VpcConfig": { - "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.VpcConfig" + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.VpcConfig", + "markdownDescription": "Specifies a VPC that your training jobs and hosted models have access to\\. Control access to and from your training and model containers by configuring the VPC\\. \n*Required*: No \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-vpcconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcConfig" } }, "type": "object" @@ -137516,12 +167728,18 @@ "additionalProperties": false, "properties": { "LocalPath": { + "markdownDescription": "The local path to the Amazon S3 storage location where Amazon SageMaker saves the results of a monitoring job\\. LocalPath is an absolute path for the output data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalPath", "type": "string" }, "S3UploadMode": { + "markdownDescription": "Whether to upload the results of the monitoring job continuously or after the job completes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3UploadMode", "type": "string" }, "S3Uri": { + "markdownDescription": "A URI that identifies the Amazon S3 storage location where Amazon SageMaker saves the results of a monitoring job\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Uri", "type": "string" } }, @@ -137535,6 +167753,8 @@ "additionalProperties": false, "properties": { "S3Uri": { + "markdownDescription": "The Amazon S3 URI for the statistics resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Uri", "type": "string" } }, @@ -137544,6 +167764,8 @@ "additionalProperties": false, "properties": { "MaxRuntimeInSeconds": { + "markdownDescription": "The maximum length of time, in seconds, that a training or compilation job can run\\. \nFor compilation jobs, if the job does not complete during this time, a `TimeOut` error is generated\\. We recommend starting with 900 seconds and increasing as necessary based on your model\\. \nFor all other jobs, if the job does not complete during this time, SageMaker ends the job\\. When `RetryStrategy` is specified in the job request, `MaxRuntimeInSeconds` specifies the maximum time for all of the attempts in total, not each individual attempt\\. The default value is 1 day\\. The maximum value is 28 days\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaxRuntimeInSeconds", "type": "number" } }, @@ -137559,12 +167781,16 @@ "items": { "type": "string" }, + "markdownDescription": "The VPC security group IDs, in the form sg\\-xxxxxxxx\\. Specify the security groups for the VPC that is specified in the `Subnets` field\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroupIds", "type": "array" }, "Subnets": { "items": { "type": "string" }, + "markdownDescription": "The ID of the subnets in the VPC to which you want to connect your training job or model\\. For information about the availability of specific instance types, see [Supported Instance Types and Availability Zones](https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html)\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `16` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subnets", "type": "array" } }, @@ -137610,15 +167836,21 @@ "additionalProperties": false, "properties": { "Device": { - "$ref": "#/definitions/AWS::SageMaker::Device.Device" + "$ref": "#/definitions/AWS::SageMaker::Device.Device", + "markdownDescription": "Edge device you want to create\\. \n*Required*: No \n*Type*: [Device](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-device-device.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Device" }, "DeviceFleetName": { + "markdownDescription": "The name of the fleet the device belongs to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceFleetName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs that contain metadata to help you categorize and organize your devices\\. Each tag consists of a key and a value, both of which you define\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -137652,12 +167884,18 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "Description of the device\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `40` \n*Pattern*: `[\\S\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DeviceName": { + "markdownDescription": "The name of the device\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceName", "type": "string" }, "IotThingName": { + "markdownDescription": "AWS Internet of Things \\(IoT\\) object name\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9:_-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotThingName", "type": "string" } }, @@ -137702,21 +167940,31 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the fleet\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DeviceFleetName": { + "markdownDescription": "Name of the device fleet\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceFleetName", "type": "string" }, "OutputConfig": { - "$ref": "#/definitions/AWS::SageMaker::DeviceFleet.EdgeOutputConfig" + "$ref": "#/definitions/AWS::SageMaker::DeviceFleet.EdgeOutputConfig", + "markdownDescription": "The output configuration for storing sample data collected by the fleet\\. \n*Required*: Yes \n*Type*: [EdgeOutputConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-devicefleet-edgeoutputconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputConfig" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) that has access to AWS Internet of Things \\(IoT\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs that contain metadata to help you categorize and organize your device fleets\\. Each tag consists of a key and a value, both of which you define\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -137752,9 +168000,13 @@ "additionalProperties": false, "properties": { "KmsKeyId": { + "markdownDescription": "The AWS Key Management Service \\(AWS KMS\\) key that Amazon SageMaker uses to encrypt data on the storage volume after compilation job\\. If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", "type": "string" }, "S3OutputLocation": { + "markdownDescription": "The Amazon Simple Storage \\(S3\\) bucket URI\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^(https|s3)://([^/]+)/?(.*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3OutputLocation", "type": "string" } }, @@ -137799,39 +168051,58 @@ "additionalProperties": false, "properties": { "AppNetworkAccessType": { + "markdownDescription": "Specifies the VPC used for non\\-EFS traffic\\. The default value is `PublicInternetOnly`\\. \n+ `PublicInternetOnly` \\- Non\\-EFS traffic is through a VPC managed by Amazon SageMaker, which allows direct internet access\n+ `VpcOnly` \\- All Studio traffic is through the specified VPC and subnets\n*Valid Values*: `PublicInternetOnly | VpcOnly` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AppNetworkAccessType", "type": "string" }, "AppSecurityGroupManagement": { "type": "string" }, "AuthMode": { + "markdownDescription": "The mode of authentication that members use to access the domain\\. \n*Valid Values*: `SSO | IAM` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthMode", "type": "string" }, + "DefaultSpaceSettings": { + "$ref": "#/definitions/AWS::SageMaker::Domain.DefaultSpaceSettings" + }, "DefaultUserSettings": { - "$ref": "#/definitions/AWS::SageMaker::Domain.UserSettings" + "$ref": "#/definitions/AWS::SageMaker::Domain.UserSettings", + "markdownDescription": "The default user settings\\. \n*Required*: Yes \n*Type*: [UserSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-usersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultUserSettings" }, "DomainName": { + "markdownDescription": "The domain name\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", "type": "string" }, "DomainSettings": { "$ref": "#/definitions/AWS::SageMaker::Domain.DomainSettings" }, "KmsKeyId": { + "markdownDescription": "SageMaker uses AWS KMS to encrypt the EFS volume attached to the domain with an AWS managed customer master key \\(CMK\\) by default\\. For more control, specify a customer managed CMK\\. \n*Length Constraints*: Maximum length of 2048\\. \n*Pattern*: `.*` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "The VPC subnets that Studio uses for communication\\. \n*Length Constraints*: Maximum length of 32\\. \n*Array members*: Minimum number of 1 item\\. Maximum number of 16 items\\. \n*Pattern*: `[-0-9a-zA-Z]+` \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetIds", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Tags to associated with the Domain\\. Each tag consists of a key and an optional value\\. Tag keys must be unique per resource\\. Tags are searchable using the Search API\\. \nTags that you specify for the Domain are also added to all Apps that are launched in the Domain\\. \n*Array members*: Minimum number of 0 items\\. Maximum number of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" }, "VpcId": { + "markdownDescription": "The ID of the Amazon Virtual Private Cloud \\(VPC\\) that Studio uses for communication\\. \n*Length Constraints*: Maximum length of 32\\. \n*Pattern*: `[-0-9a-zA-Z]+` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", "type": "string" } }, @@ -137869,12 +168140,18 @@ "additionalProperties": false, "properties": { "AppImageConfigName": { + "markdownDescription": "The name of the AppImageConfig\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppImageConfigName", "type": "string" }, "ImageName": { + "markdownDescription": "The name of the CustomImage\\. Must be unique to your account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageName", "type": "string" }, "ImageVersionNumber": { + "markdownDescription": "The version number of the CustomImage\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageVersionNumber", "type": "number" } }, @@ -137884,6 +168161,27 @@ ], "type": "object" }, + "AWS::SageMaker::Domain.DefaultSpaceSettings": { + "additionalProperties": false, + "properties": { + "ExecutionRole": { + "type": "string" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/AWS::SageMaker::Domain.JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/AWS::SageMaker::Domain.KernelGatewayAppSettings" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::SageMaker::Domain.DomainSettings": { "additionalProperties": false, "properties": { @@ -137903,7 +168201,9 @@ "additionalProperties": false, "properties": { "DefaultResourceSpec": { - "$ref": "#/definitions/AWS::SageMaker::Domain.ResourceSpec" + "$ref": "#/definitions/AWS::SageMaker::Domain.ResourceSpec", + "markdownDescription": "The default instance type and the Amazon Resource Name \\(ARN\\) of the default SageMaker image used by the JupyterServer app\\. \n*Required*: No \n*Type*: [ResourceSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-resourcespec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultResourceSpec" } }, "type": "object" @@ -137915,10 +168215,14 @@ "items": { "$ref": "#/definitions/AWS::SageMaker::Domain.CustomImage" }, + "markdownDescription": "A list of custom SageMaker images that are configured to run as a KernelGateway app\\. \n*Required*: No \n*Type*: List of [CustomImage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-customimage.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomImages", "type": "array" }, "DefaultResourceSpec": { - "$ref": "#/definitions/AWS::SageMaker::Domain.ResourceSpec" + "$ref": "#/definitions/AWS::SageMaker::Domain.ResourceSpec", + "markdownDescription": "The default instance type and the Amazon Resource Name \\(ARN\\) of the default SageMaker image used by the KernelGateway app\\. \nThe Amazon SageMaker Studio UI does not use the default instance type value set here\\. The default instance type set here is used when Apps are created using the AWS Command Line Interface or AWS CloudFormation and the instance type parameter value is not passed\\.\n*Required*: No \n*Type*: [ResourceSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-resourcespec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultResourceSpec" } }, "type": "object" @@ -137975,15 +168279,21 @@ "additionalProperties": false, "properties": { "InstanceType": { + "markdownDescription": "The instance type that the image version runs on\\. \nJupyterServer Apps only support the `system` value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ml.c5.12xlarge | ml.c5.18xlarge | ml.c5.24xlarge | ml.c5.2xlarge | ml.c5.4xlarge | ml.c5.9xlarge | ml.c5.large | ml.c5.xlarge | ml.g4dn.12xlarge | ml.g4dn.16xlarge | ml.g4dn.2xlarge | ml.g4dn.4xlarge | ml.g4dn.8xlarge | ml.g4dn.xlarge | ml.m5.12xlarge | ml.m5.16xlarge | ml.m5.24xlarge | ml.m5.2xlarge | ml.m5.4xlarge | ml.m5.8xlarge | ml.m5.large | ml.m5.xlarge | ml.m5d.12xlarge | ml.m5d.16xlarge | ml.m5d.24xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.8xlarge | ml.m5d.large | ml.m5d.xlarge | ml.p3.16xlarge | ml.p3.2xlarge | ml.p3.8xlarge | ml.p3dn.24xlarge | ml.r5.12xlarge | ml.r5.16xlarge | ml.r5.24xlarge | ml.r5.2xlarge | ml.r5.4xlarge | ml.r5.8xlarge | ml.r5.large | ml.r5.xlarge | ml.t3.2xlarge | ml.t3.large | ml.t3.medium | ml.t3.micro | ml.t3.small | ml.t3.xlarge | system` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", "type": "string" }, "LifecycleConfigArn": { "type": "string" }, "SageMakerImageArn": { + "markdownDescription": "The ARN of the SageMaker image that the image version belongs to\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SageMakerImageArn", "type": "string" }, "SageMakerImageVersionArn": { + "markdownDescription": "The ARN of the image version created on the instance\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SageMakerImageVersionArn", "type": "string" } }, @@ -137993,12 +168303,18 @@ "additionalProperties": false, "properties": { "NotebookOutputOption": { + "markdownDescription": "Whether to include the notebook cell output when sharing the notebook\\. The default is `Disabled`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Allowed | Disabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotebookOutputOption", "type": "string" }, "S3KmsKeyId": { + "markdownDescription": "When `NotebookOutputOption` is `Allowed`, the AWS Key Management Service \\(KMS\\) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3KmsKeyId", "type": "string" }, "S3OutputPath": { + "markdownDescription": "When `NotebookOutputOption` is `Allowed`, the Amazon S3 bucket used to store the shared notebook snapshots\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^(https|s3)://([^/]+)/?(.*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3OutputPath", "type": "string" } }, @@ -138008,13 +168324,19 @@ "additionalProperties": false, "properties": { "ExecutionRole": { + "markdownDescription": "The execution role for the user\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionRole", "type": "string" }, "JupyterServerAppSettings": { - "$ref": "#/definitions/AWS::SageMaker::Domain.JupyterServerAppSettings" + "$ref": "#/definitions/AWS::SageMaker::Domain.JupyterServerAppSettings", + "markdownDescription": "The Jupyter server's app settings\\. \n*Required*: No \n*Type*: [JupyterServerAppSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-jupyterserverappsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JupyterServerAppSettings" }, "KernelGatewayAppSettings": { - "$ref": "#/definitions/AWS::SageMaker::Domain.KernelGatewayAppSettings" + "$ref": "#/definitions/AWS::SageMaker::Domain.KernelGatewayAppSettings", + "markdownDescription": "The kernel gateway app settings\\. \n*Required*: No \n*Type*: [KernelGatewayAppSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-kernelgatewayappsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KernelGatewayAppSettings" }, "RSessionAppSettings": { "$ref": "#/definitions/AWS::SageMaker::Domain.RSessionAppSettings" @@ -138026,10 +168348,14 @@ "items": { "type": "string" }, + "markdownDescription": "The security groups for the Amazon Virtual Private Cloud \\(VPC\\) that Studio uses for communication\\. \nOptional when the `CreateDomain.AppNetworkAccessType` parameter is set to `PublicInternetOnly`\\. \nRequired when the `CreateDomain.AppNetworkAccessType` parameter is set to `VpcOnly`\\. \nAmazon SageMaker adds a security group to allow NFS traffic from SageMaker Studio\\. Therefore, the number of security groups that you can specify is one less than the maximum number shown\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroups", "type": "array" }, "SharingSettings": { - "$ref": "#/definitions/AWS::SageMaker::Domain.SharingSettings" + "$ref": "#/definitions/AWS::SageMaker::Domain.SharingSettings", + "markdownDescription": "Specifies options for sharing SageMaker Studio notebooks\\. \n*Required*: No \n*Type*: [SharingSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-sharingsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SharingSettings" } }, "type": "object" @@ -138070,30 +168396,44 @@ "additionalProperties": false, "properties": { "DeploymentConfig": { - "$ref": "#/definitions/AWS::SageMaker::Endpoint.DeploymentConfig" + "$ref": "#/definitions/AWS::SageMaker::Endpoint.DeploymentConfig", + "markdownDescription": "The deployment configuration for an endpoint, which contains the desired deployment strategy and rollback configurations\\. \n*Required*: No \n*Type*: [DeploymentConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-deploymentconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentConfig" }, "EndpointConfigName": { + "markdownDescription": "The name of the [AWS::SageMaker::EndpointConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-endpointconfig.html) resource that specifies the configuration for the endpoint\\. For more information, see [CreateEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpointConfig.html)\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointConfigName", "type": "string" }, "EndpointName": { + "markdownDescription": "The name of the endpoint\\.The name must be unique within an AWS Region in your AWS account\\. The name is case\\-insensitive in `CreateEndpoint`, but the case is preserved and must be matched in [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html)\\. \n*Required*: No \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EndpointName", "type": "string" }, "ExcludeRetainedVariantProperties": { "items": { "$ref": "#/definitions/AWS::SageMaker::Endpoint.VariantProperty" }, + "markdownDescription": "When you are updating endpoint resources with [RetainAllVariantProperties](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpoint.html#SageMaker-UpdateEndpoint-request-RetainAllVariantProperties) whose value is set to `true`, `ExcludeRetainedVariantProperties` specifies the list of type [VariantProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-variantproperty.html) to override with the values provided by `EndpointConfig`\\. If you don't specify a value for `ExcludeAllVariantProperties`, no variant properties are overridden\\. Don't use this property when creating new endpoint resources or when `RetainAllVariantProperties` is set to `false`\\. \n*Required*: No \n*Type*: List of [VariantProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-variantproperty.html) \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludeRetainedVariantProperties", "type": "array" }, "RetainAllVariantProperties": { + "markdownDescription": "When updating endpoint resources, enables or disables the retention of variant properties, such as the instance count or the variant weight\\. To retain the variant properties of an endpoint when updating it, set `RetainAllVariantProperties` to `true`\\. To use the variant properties specified in a new `EndpointConfig` call when updating an endpoint, set `RetainAllVariantProperties` to `false`\\. Use this property only when updating endpoint resources, not when creating new endpoint resources\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetainAllVariantProperties", "type": "boolean" }, "RetainDeploymentConfig": { + "markdownDescription": "Specifies whether to reuse the last deployment configuration\\. The default value is false \\(the configuration is not reused\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetainDeploymentConfig", "type": "boolean" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of key\\-value pairs to apply to this resource\\. \nFor more information, see [Resource Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) and [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what) in the * AWS Billing and Cost Management User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -138127,6 +168467,8 @@ "additionalProperties": false, "properties": { "AlarmName": { + "markdownDescription": "The name of a CloudWatch alarm in your account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^(?!\\s*$).+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmName", "type": "string" } }, @@ -138142,6 +168484,8 @@ "items": { "$ref": "#/definitions/AWS::SageMaker::Endpoint.Alarm" }, + "markdownDescription": "List of CloudWatch alarms in your account that are configured to monitor metrics on an endpoint\\. If any alarms are tripped during a deployment, SageMaker rolls back the deployment\\. \n*Required*: Yes \n*Type*: List of [Alarm](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-alarm.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alarms", "type": "array" } }, @@ -138154,13 +168498,19 @@ "additionalProperties": false, "properties": { "MaximumExecutionTimeoutInSeconds": { + "markdownDescription": "Maximum execution timeout for the deployment\\. Note that the timeout value should be larger than the total waiting time specified in `TerminationWaitInSeconds` and `WaitIntervalInSeconds`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `600` \n*Maximum*: `14400` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumExecutionTimeoutInSeconds", "type": "number" }, "TerminationWaitInSeconds": { + "markdownDescription": "Additional waiting time in seconds after the completion of an endpoint deployment before terminating the old endpoint fleet\\. Default is 0\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `3600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TerminationWaitInSeconds", "type": "number" }, "TrafficRoutingConfiguration": { - "$ref": "#/definitions/AWS::SageMaker::Endpoint.TrafficRoutingConfig" + "$ref": "#/definitions/AWS::SageMaker::Endpoint.TrafficRoutingConfig", + "markdownDescription": "Defines the traffic routing strategy to shift traffic from the old fleet to the new fleet during an endpoint deployment\\. \n*Required*: Yes \n*Type*: [TrafficRoutingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-trafficroutingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrafficRoutingConfiguration" } }, "required": [ @@ -138172,9 +168522,13 @@ "additionalProperties": false, "properties": { "Type": { + "markdownDescription": "Specifies the endpoint capacity type\\. \n+ `INSTANCE_COUNT`: The endpoint activates based on the number of instances\\.\n+ `CAPACITY_PERCENT`: The endpoint activates based on the specified percentage of capacity\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `CAPACITY_PERCENT | INSTANCE_COUNT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" }, "Value": { + "markdownDescription": "Defines the capacity size, either as a number of instances or a capacity percentage\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "number" } }, @@ -138188,10 +168542,14 @@ "additionalProperties": false, "properties": { "AutoRollbackConfiguration": { - "$ref": "#/definitions/AWS::SageMaker::Endpoint.AutoRollbackConfig" + "$ref": "#/definitions/AWS::SageMaker::Endpoint.AutoRollbackConfig", + "markdownDescription": "Automatic rollback configuration for handling endpoint deployment failures and recovery\\. \n*Required*: No \n*Type*: [AutoRollbackConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-autorollbackconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoRollbackConfiguration" }, "BlueGreenUpdatePolicy": { - "$ref": "#/definitions/AWS::SageMaker::Endpoint.BlueGreenUpdatePolicy" + "$ref": "#/definitions/AWS::SageMaker::Endpoint.BlueGreenUpdatePolicy", + "markdownDescription": "Update policy for a blue/green deployment\\. If this update policy is specified, SageMaker creates a new fleet during the deployment while maintaining the old fleet\\. SageMaker flips traffic to the new fleet according to the specified traffic routing configuration\\. Only one update policy should be used in the deployment configuration\\. If no update policy is specified, SageMaker uses a blue/green deployment strategy with all at once traffic shifting by default\\. \n*Required*: Yes \n*Type*: [BlueGreenUpdatePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-bluegreenupdatepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlueGreenUpdatePolicy" } }, "required": [ @@ -138203,15 +168561,23 @@ "additionalProperties": false, "properties": { "CanarySize": { - "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" + "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize", + "markdownDescription": "Batch size for the first step to turn on traffic on the new endpoint fleet\\. `Value` must be less than or equal to 50% of the variant's total instance count\\. \n*Required*: No \n*Type*: [CapacitySize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-capacitysize.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CanarySize" }, "LinearStepSize": { - "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" + "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize", + "markdownDescription": "Batch size for each step to turn on traffic on the new endpoint fleet\\. `Value` must be 10\\-50% of the variant's total instance count\\. \n*Required*: No \n*Type*: [CapacitySize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-capacitysize.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LinearStepSize" }, "Type": { + "markdownDescription": "Traffic routing strategy type\\. \n+ `ALL_AT_ONCE`: Endpoint traffic shifts to the new fleet in a single step\\. \n+ `CANARY`: Endpoint traffic shifts to the new fleet in two steps\\. The first step is the canary, which is a small portion of the traffic\\. The second step is the remainder of the traffic\\. \n+ `LINEAR`: Endpoint traffic shifts to the new fleet in n steps of a configurable size\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_AT_ONCE | CANARY | LINEAR` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" }, "WaitIntervalInSeconds": { + "markdownDescription": "The waiting time \\(in seconds\\) between incremental steps to turn on traffic on the new endpoint fleet\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `3600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WaitIntervalInSeconds", "type": "number" } }, @@ -138224,6 +168590,8 @@ "additionalProperties": false, "properties": { "VariantPropertyType": { + "markdownDescription": "The type of variant property\\. The supported values are: \n+ `DesiredInstanceCount`: Overrides the existing variant instance counts using the [InitialInstanceCount](https://docs.aws.amazon.com/sagemaker/latest/dg/API_ProductionVariant.html#SageMaker-Type-ProductionVariant-InitialInstanceCount) values in the [ProductionVariants](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpointConfig.html#SageMaker-CreateEndpointConfig-request-ProductionVariants)\\.\n+ `DesiredWeight`: Overrides the existing variant weights using the [InitialVariantWeight](https://docs.aws.amazon.com/sagemaker/latest/dg/API_ProductionVariant.html#SageMaker-Type-ProductionVariant-InitialVariantWeight) values in the [ProductionVariants](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpointConfig.html#SageMaker-CreateEndpointConfig-request-ProductionVariants)\\.\n+ `DataCaptureConfig`: \\(Not currently supported\\.\\)\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VariantPropertyType", "type": "string" } }, @@ -138265,24 +168633,34 @@ "additionalProperties": false, "properties": { "AsyncInferenceConfig": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.AsyncInferenceConfig" + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.AsyncInferenceConfig", + "markdownDescription": "Specifies configuration for how an endpoint performs asynchronous inference\\. \n*Required*: No \n*Type*: [AsyncInferenceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferenceconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AsyncInferenceConfig" }, "DataCaptureConfig": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.DataCaptureConfig" + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.DataCaptureConfig", + "markdownDescription": "Specifies how to capture endpoint data for model monitor\\. The data capture configuration applies to all production variants hosted at the endpoint\\. \n*Required*: No \n*Type*: [DataCaptureConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-datacaptureconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataCaptureConfig" }, "EndpointConfigName": { + "markdownDescription": "The name of the endpoint configuration\\. \n*Required*: No \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EndpointConfigName", "type": "string" }, "ExplainerConfig": { "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ExplainerConfig" }, "KmsKeyId": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS Key Management Service key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance that hosts the endpoint\\. \n+ Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`\n+ Key ARN: `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`\n+ Alias name: `alias/ExampleAlias`\n+ Alias name ARN: `arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias`\nThe KMS key policy must grant permission to the IAM role that you specify in your `CreateEndpoint`, `UpdateEndpoint` requests\\. For more information, refer to the AWS Key Management Service section [Using Key Policies in AWS KMS ](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) \nCertain Nitro\\-based instances include local storage, dependent on the instance type\\. Local storage volumes are encrypted using a hardware module on the instance\\. You can't request a `KmsKeyId` when using an instance type with local storage\\. If any of the models that you specify in the `ProductionVariants` parameter use nitro\\-based instances with local storage, do not specify a value for the `KmsKeyId` parameter\\. If you specify a value for `KmsKeyId` when using any nitro\\-based instances with local storage, the call to `CreateEndpointConfig` fails\\. \nFor a list of instance types that support local instance storage, see [Instance Store Volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes)\\. \nFor more information about local instance storage encryption, see [SSD Instance Store Volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html)\\.\n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" }, "ProductionVariants": { "items": { "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ProductionVariant" }, + "markdownDescription": "A list of `ProductionVariant` objects, one for each model that you want to host at this endpoint\\. \n*Required*: Yes \n*Type*: List of [ProductionVariant](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-productionvariant.html) \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProductionVariants", "type": "array" }, "ShadowProductionVariants": { @@ -138295,6 +168673,8 @@ "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of key\\-value pairs to apply to this resource\\. \nFor more information, see [Resource Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) and [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -138328,6 +168708,8 @@ "additionalProperties": false, "properties": { "MaxConcurrentInvocationsPerInstance": { + "markdownDescription": "The maximum number of concurrent requests sent by the SageMaker client to the model container\\. If no value is provided, SageMaker will choose an optimal value for you\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaxConcurrentInvocationsPerInstance", "type": "number" } }, @@ -138337,10 +168719,14 @@ "additionalProperties": false, "properties": { "ClientConfig": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.AsyncInferenceClientConfig" + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.AsyncInferenceClientConfig", + "markdownDescription": "Configures the behavior of the client used by SageMaker to interact with the model container during asynchronous inference\\. \n*Required*: No \n*Type*: [AsyncInferenceClientConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferenceclientconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientConfig" }, "OutputConfig": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.AsyncInferenceOutputConfig" + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.AsyncInferenceOutputConfig", + "markdownDescription": "Specifies the configuration for asynchronous inference invocation outputs\\. \n*Required*: Yes \n*Type*: [AsyncInferenceOutputConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferenceoutputconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OutputConfig" } }, "required": [ @@ -138352,9 +168738,13 @@ "additionalProperties": false, "properties": { "ErrorTopic": { + "markdownDescription": "Amazon SNS topic to post a notification to when an inference fails\\. If no topic is provided, no notification is sent on failure\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ErrorTopic", "type": "string" }, "SuccessTopic": { + "markdownDescription": "Amazon SNS topic to post a notification to when an inference completes successfully\\. If no topic is provided, no notification is sent on success\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SuccessTopic", "type": "string" } }, @@ -138364,12 +168754,18 @@ "additionalProperties": false, "properties": { "KmsKeyId": { + "markdownDescription": "The AWS Key Management Service \\(AWS KMS\\) key that Amazon SageMaker uses to encrypt the asynchronous inference output in Amazon S3\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" }, "NotificationConfig": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.AsyncInferenceNotificationConfig" + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.AsyncInferenceNotificationConfig", + "markdownDescription": "Specifies the configuration for notifications of inference results for asynchronous inference\\. \n*Required*: No \n*Type*: [AsyncInferenceNotificationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferencenotificationconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NotificationConfig" }, "S3OutputPath": { + "markdownDescription": "The Amazon S3 location to upload inference responses to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3OutputPath", "type": "string" } }, @@ -138385,12 +168781,16 @@ "items": { "type": "string" }, + "markdownDescription": "A list of the CSV content types of the data that the endpoint captures\\. For the endpoint to capture the data, you must also specify the content type when you invoke the endpoint\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CsvContentTypes", "type": "array" }, "JsonContentTypes": { "items": { "type": "string" }, + "markdownDescription": "A list of the JSON content types of the data that the endpoint captures\\. For the endpoint to capture the data, you must also specify the content type when you invoke the endpoint\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "JsonContentTypes", "type": "array" } }, @@ -138400,6 +168800,8 @@ "additionalProperties": false, "properties": { "CaptureMode": { + "markdownDescription": "Specifies whether the endpoint captures input data or output data\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Input | Output` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CaptureMode", "type": "string" } }, @@ -138543,24 +168945,36 @@ "additionalProperties": false, "properties": { "CaptureContentTypeHeader": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader" + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader", + "markdownDescription": "A list of the JSON and CSV content type that the endpoint captures\\. \n*Required*: No \n*Type*: [CaptureContentTypeHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-datacaptureconfig-capturecontenttypeheader.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CaptureContentTypeHeader" }, "CaptureOptions": { "items": { "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureOption" }, + "markdownDescription": "Specifies whether the endpoint captures input data to your model, output data from your model, or both\\. \n*Required*: Yes \n*Type*: List of [CaptureOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-captureoption.html) \n*Maximum*: `2` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CaptureOptions", "type": "array" }, "DestinationS3Uri": { + "markdownDescription": "The S3 bucket where model monitor stores captured data\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `^(https|s3)://([^/])/?(.*)$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationS3Uri", "type": "string" }, "EnableCapture": { + "markdownDescription": "Set to `True` to enable data capture\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnableCapture", "type": "boolean" }, "InitialSamplingPercentage": { + "markdownDescription": "The percentage of data to capture\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitialSamplingPercentage", "type": "number" }, "KmsKeyId": { + "markdownDescription": "The AWS Key Management Service \\(AWS KMS\\) key that Amazon SageMaker uses to encrypt the captured data at rest using Amazon S3 server\\-side encryption\\. The KmsKeyId can be any of the following formats: Key ID: 1234abcd\\-12ab\\-34cd\\-56ef\\-1234567890ab Key ARN: arn:aws:kms:us\\-west\\-2:111122223333:key/1234abcd\\-12ab\\-34cd\\-56ef\\-1234567890ab Alias name: alias/ExampleAlias Alias name ARN: arn:aws:kms:us\\-west\\-2:111122223333:alias/ExampleAlias If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account\\. For more information, see KMS\\-Managed Encryption Keys \\(https://docs\\.aws\\.amazon\\.com/AmazonS3/latest/dev/UsingKMSEncryption\\.html\\) in the Amazon Simple Storage Service Developer Guide\\. The KMS key policy must grant permission to the IAM role that you specify in your CreateModel \\(https://docs\\.aws\\.amazon\\.com/sagemaker/latest/APIReference/API\\_CreateModel\\.html\\) request\\. For more information, see Using Key Policies in AWS KMS \\(http://docs\\.aws\\.amazon\\.com/kms/latest/developerguide/key\\-policies\\.html\\) in the AWS Key Management Service Developer Guide\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" } }, @@ -138584,30 +168998,44 @@ "additionalProperties": false, "properties": { "AcceleratorType": { + "markdownDescription": "The size of the Elastic Inference \\(EI\\) instance to use for the production variant\\. EI instances provide on\\-demand GPU computing for inference\\. For more information, see [Using Elastic Inference in Amazon SageMaker](https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html)\\. For more information, see [Using Elastic Inference in Amazon SageMaker](https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ml.eia1.large | ml.eia1.medium | ml.eia1.xlarge | ml.eia2.large | ml.eia2.medium | ml.eia2.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorType", "type": "string" }, "ContainerStartupHealthCheckTimeoutInSeconds": { "type": "number" }, "InitialInstanceCount": { + "markdownDescription": "Number of instances to launch initially\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitialInstanceCount", "type": "number" }, "InitialVariantWeight": { + "markdownDescription": "Determines initial traffic distribution among all of the models that you specify in the endpoint configuration\\. The traffic to a production variant is determined by the ratio of the `VariantWeight` to the sum of all `VariantWeight` values across all ProductionVariants\\. If unspecified, it defaults to 1\\.0\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitialVariantWeight", "type": "number" }, "InstanceType": { + "markdownDescription": "The ML compute instance type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ml.c4.2xlarge | ml.c4.4xlarge | ml.c4.8xlarge | ml.c4.large | ml.c4.xlarge | ml.c5.18xlarge | ml.c5.2xlarge | ml.c5.4xlarge | ml.c5.9xlarge | ml.c5.large | ml.c5.xlarge | ml.c5d.18xlarge | ml.c5d.2xlarge | ml.c5d.4xlarge | ml.c5d.9xlarge | ml.c5d.large | ml.c5d.xlarge | ml.g4dn.12xlarge | ml.g4dn.16xlarge | ml.g4dn.2xlarge | ml.g4dn.4xlarge | ml.g4dn.8xlarge | ml.g4dn.xlarge | ml.inf1.24xlarge | ml.inf1.2xlarge | ml.inf1.6xlarge | ml.inf1.xlarge | ml.m4.10xlarge | ml.m4.16xlarge | ml.m4.2xlarge | ml.m4.4xlarge | ml.m4.xlarge | ml.m5.12xlarge | ml.m5.24xlarge | ml.m5.2xlarge | ml.m5.4xlarge | ml.m5.large | ml.m5.xlarge | ml.m5d.12xlarge | ml.m5d.24xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.large | ml.m5d.xlarge | ml.p2.16xlarge | ml.p2.8xlarge | ml.p2.xlarge | ml.p3.16xlarge | ml.p3.2xlarge | ml.p3.8xlarge | ml.r5.12xlarge | ml.r5.24xlarge | ml.r5.2xlarge | ml.r5.4xlarge | ml.r5.large | ml.r5.xlarge | ml.r5d.12xlarge | ml.r5d.24xlarge | ml.r5d.2xlarge | ml.r5d.4xlarge | ml.r5d.large | ml.r5d.xlarge | ml.t2.2xlarge | ml.t2.large | ml.t2.medium | ml.t2.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", "type": "string" }, "ModelDataDownloadTimeoutInSeconds": { "type": "number" }, "ModelName": { + "markdownDescription": "The name of the model that you want to host\\. This is the name that you specified when creating the model\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9])*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ModelName", "type": "string" }, "ServerlessConfig": { - "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ServerlessConfig" + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ServerlessConfig", + "markdownDescription": "The serverless configuration for an endpoint\\. Specifies a serverless endpoint configuration instead of an instance\\-based endpoint configuration\\. \nServerless Inference is in preview release for Amazon SageMaker and is subject to change\\. We do not recommend using this feature in production environments\\.\n*Required*: No \n*Type*: [ServerlessConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-productionvariant-serverlessconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerlessConfig" }, "VariantName": { + "markdownDescription": "The name of the production variant\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VariantName", "type": "string" }, "VolumeSizeInGB": { @@ -138625,9 +169053,13 @@ "additionalProperties": false, "properties": { "MaxConcurrency": { + "markdownDescription": "The maximum number of concurrent invocations your serverless endpoint can process\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaxConcurrency", "type": "number" }, "MemorySizeInMB": { + "markdownDescription": "The memory size of your serverless endpoint\\. Valid values are in 1 GB increments: 1024 MB, 2048 MB, 3072 MB, 4096 MB, 5120 MB, or 6144 MB\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1024` \n*Maximum*: `6144` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MemorySizeInMB", "type": "number" } }, @@ -138673,36 +169105,54 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A free form description of a `FeatureGroup`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "EventTimeFeatureName": { + "markdownDescription": "The name of the feature that stores the `EventTime` of a Record in a `FeatureGroup`\\. \nA `EventTime` is point in time when a new event occurs that corresponds to the creation or update of a `Record` in `FeatureGroup`\\. All `Records` in the `FeatureGroup` must have a corresponding `EventTime`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9]([-_]*[a-zA-Z0-9]){0,63}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EventTimeFeatureName", "type": "string" }, "FeatureDefinitions": { "items": { "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.FeatureDefinition" }, + "markdownDescription": "A list of `Feature`s\\. Each `Feature` must include a `FeatureName` and a `FeatureType`\\. \nValid `FeatureType`s are `Integral`, `Fractional` and `String`\\. \n `FeatureName`s cannot be any of the following: `is_deleted`, `write_time`, `api_invocation_time`\\. \nYou can create up to 2,500 `FeatureDefinition`s per `FeatureGroup`\\. \n*Required*: Yes \n*Type*: List of [FeatureDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-featuregroup-featuredefinition.html) \n*Maximum*: `2500` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FeatureDefinitions", "type": "array" }, "FeatureGroupName": { + "markdownDescription": "The name of the `FeatureGroup`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,63}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FeatureGroupName", "type": "string" }, "OfflineStoreConfig": { - "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.OfflineStoreConfig" + "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.OfflineStoreConfig", + "markdownDescription": "The configuration of an `OfflineStore`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OfflineStoreConfig" }, "OnlineStoreConfig": { - "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.OnlineStoreConfig" + "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.OnlineStoreConfig", + "markdownDescription": "The configuration of an `OnlineStore`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OnlineStoreConfig" }, "RecordIdentifierFeatureName": { + "markdownDescription": "The name of the `Feature` whose value uniquely identifies a `Record` defined in the `FeatureGroup` `FeatureDefinitions`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9]([-_]*[a-zA-Z0-9]){0,63}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RecordIdentifierFeatureName", "type": "string" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM execution role used to create the feature group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RoleArn", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Tags used to define a `FeatureGroup`\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -138759,9 +169209,13 @@ "additionalProperties": false, "properties": { "FeatureName": { + "markdownDescription": "The name of a feature\\. The type must be a string\\. `FeatureName` cannot be any of the following: `is_deleted`, `write_time`, `api_invocation_time`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9]([-_]*[a-zA-Z0-9]){0,63}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FeatureName", "type": "string" }, "FeatureType": { + "markdownDescription": "The value type of a feature\\. Valid values are Integral, Fractional, or String\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Fractional | Integral | String` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FeatureType", "type": "string" } }, @@ -138864,21 +169318,31 @@ "additionalProperties": false, "properties": { "ImageDescription": { + "markdownDescription": "The description of the image\\. \n*Length Constraints*: Minimum length of 1\\. Maximum length of 512\\. \n*Pattern*: `.*` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageDescription", "type": "string" }, "ImageDisplayName": { + "markdownDescription": "The display name of the image\\. \n*Length Constraints*: Minimum length of 1\\. Maximum length of 128\\. \n*Pattern*: `^\\S(.*\\S)?$` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageDisplayName", "type": "string" }, "ImageName": { + "markdownDescription": "The name of the Image\\. Must be unique by region in your account\\. \n*Length Constraints*: Minimum length of 1\\. Maximum length of 63\\. \n*Pattern*: `^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageName", "type": "string" }, "ImageRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an IAM role that enables Amazon SageMaker to perform tasks on your behalf\\. \n*Length Constraints*: Minimum length of 20\\. Maximum length of 2048\\. \n*Pattern*: `^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageRoleArn", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of key\\-value pairs to apply to this resource\\. \n*Array Members*: Minimum number of 0 items\\. Maximum number of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -138945,9 +169409,13 @@ "additionalProperties": false, "properties": { "BaseImage": { + "markdownDescription": "The container image that the SageMaker image version is based on\\. \n*Length Constraints*: Minimum length of 1\\. Maximum length of 255\\. \n*Pattern*: `.*` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BaseImage", "type": "string" }, "ImageName": { + "markdownDescription": "The name of the parent image\\. \n*Length Constraints*: Minimum length of 1\\. Maximum length of 63\\. \n*Pattern*: `^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageName", "type": "string" } }, @@ -139017,31 +169485,47 @@ "items": { "$ref": "#/definitions/AWS::SageMaker::Model.ContainerDefinition" }, + "markdownDescription": "Specifies the containers in the inference pipeline\\. \n*Required*: No \n*Type*: List of [ContainerDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition.html) \n*Maximum*: `15` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Containers", "type": "array" }, "EnableNetworkIsolation": { + "markdownDescription": "Isolates the model container\\. No inbound or outbound network calls can be made to or from the model container\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnableNetworkIsolation", "type": "boolean" }, "ExecutionRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that SageMaker can assume to access model artifacts and docker image for deployment on ML compute instances or for batch transform jobs\\. Deploying on ML compute instances is part of model hosting\\. For more information, see [SageMaker Roles](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html)\\. \nTo be able to pass this role to SageMaker, the caller of this API must have the `iam:PassRole` permission\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExecutionRoleArn", "type": "string" }, "InferenceExecutionConfig": { - "$ref": "#/definitions/AWS::SageMaker::Model.InferenceExecutionConfig" + "$ref": "#/definitions/AWS::SageMaker::Model.InferenceExecutionConfig", + "markdownDescription": "Specifies details of how containers in a multi\\-container endpoint are called\\. \n*Required*: No \n*Type*: [InferenceExecutionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-inferenceexecutionconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InferenceExecutionConfig" }, "ModelName": { + "markdownDescription": "The name of the new model\\. \n*Required*: No \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9])*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ModelName", "type": "string" }, "PrimaryContainer": { - "$ref": "#/definitions/AWS::SageMaker::Model.ContainerDefinition" + "$ref": "#/definitions/AWS::SageMaker::Model.ContainerDefinition", + "markdownDescription": "The location of the primary docker image containing inference code, associated artifacts, and custom environment map that the inference code uses when the model is deployed for predictions\\. \n*Required*: No \n*Type*: [ContainerDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrimaryContainer" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of key\\-value pairs to apply to this resource\\. \nFor more information, see [Resource Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) and [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what) in the *AWS Billing and Cost Management User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VpcConfig": { - "$ref": "#/definitions/AWS::SageMaker::Model.VpcConfig" + "$ref": "#/definitions/AWS::SageMaker::Model.VpcConfig", + "markdownDescription": "A [VpcConfig](https://docs.aws.amazon.com/sagemaker/latest/dg/API_VpcConfig.html) object that specifies the VPC that you want your model to connect to\\. Control access to and from your model container by configuring the VPC\\. `VpcConfig` is used in hosting services and in batch transform\\. For more information, see [Protect Endpoints by Using an Amazon Virtual Private Cloud](https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html) and [Protect Data in Batch Transform Jobs by Using an Amazon Virtual Private Cloud](https://docs.aws.amazon.com/sagemaker/latest/dg/batch-vpc.html)\\. \n*Required*: No \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-vpcconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcConfig" } }, "required": [ @@ -139074,31 +169558,49 @@ "additionalProperties": false, "properties": { "ContainerHostname": { + "markdownDescription": "This parameter is ignored for models that contain only a `PrimaryContainer`\\. \nWhen a `ContainerDefinition` is part of an inference pipeline, the value of the parameter uniquely identifies the container for the purposes of logging and metrics\\. For information, see [Use Logs and Metrics to Monitor an Inference Pipeline](https://docs.aws.amazon.com/sagemaker/latest/dg/inference-pipeline-logs-metrics.html)\\. If you don't specify a value for this parameter for a `ContainerDefinition` that is part of an inference pipeline, a unique name is automatically assigned based on the position of the `ContainerDefinition` in the pipeline\\. If you specify a value for the `ContainerHostName` for any `ContainerDefinition` that is part of an inference pipeline, you must specify a value for the `ContainerHostName` parameter of every `ContainerDefinition` in that pipeline\\. \n*Required*: No \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerHostname", "type": "string" }, "Environment": { + "markdownDescription": "The environment variables to set in the Docker container\\. Each key and value in the `Environment` string to string map can have length of up to 1024\\. We support up to 16 entries in the map\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Environment", "type": "object" }, "Image": { + "markdownDescription": "The path where inference code is stored\\. This can be either in Amazon EC2 Container Registry or in a Docker registry that is accessible from the same VPC that you configure for your endpoint\\. If you are using your own custom algorithm instead of an algorithm provided by SageMaker, the inference code must meet SageMaker requirements\\. SageMaker supports both `registry/repository[:tag]` and `registry/repository[@digest]` image path formats\\. For more information, see [Using Your Own Algorithms with Amazon SageMaker](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html) \n*Required*: No \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `[\\S]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Image", "type": "string" }, "ImageConfig": { - "$ref": "#/definitions/AWS::SageMaker::Model.ImageConfig" + "$ref": "#/definitions/AWS::SageMaker::Model.ImageConfig", + "markdownDescription": "Specifies whether the model container is in Amazon ECR or a private Docker registry accessible from your Amazon Virtual Private Cloud \\(VPC\\)\\. For information about storing containers in a private Docker registry, see [Use a Private Docker Registry for Real\\-Time Inference Containers](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-containers-inference-private.html) \n*Required*: No \n*Type*: [ImageConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition-imageconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageConfig" }, "InferenceSpecificationName": { + "markdownDescription": "The inference specification name in the model package version\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InferenceSpecificationName", "type": "string" }, "Mode": { + "markdownDescription": "Whether the container hosts a single model or multiple models\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `MultiModel | SingleModel` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Mode", "type": "string" }, "ModelDataUrl": { + "markdownDescription": "The S3 path where the model artifacts, which result from model training, are stored\\. This path must point to a single gzip compressed tar archive \\(\\.tar\\.gz suffix\\)\\. The S3 path is required for SageMaker built\\-in algorithms, but not if you use your own algorithms\\. For more information on built\\-in algorithms, see [Common Parameters](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html)\\. \nThe model artifacts must be in an S3 bucket that is in the same region as the model or endpoint you are creating\\.\nIf you provide a value for this parameter, SageMaker uses AWS Security Token Service to download model artifacts from the S3 path you provide\\. AWS STS is activated in your IAM user account by default\\. If you previously deactivated AWS STS for a region, you need to reactivate AWS STS for that region\\. For more information, see [Activating and Deactivating AWS STS in an AWS Region](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) in the * AWS Identity and Access Management User Guide*\\. \nIf you use a built\\-in algorithm to create a model, SageMaker requires that you provide a S3 path to the model artifacts in `ModelDataUrl`\\.\n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^(https|s3)://([^/]+)/?(.*)$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ModelDataUrl", "type": "string" }, "ModelPackageName": { + "markdownDescription": "The name or Amazon Resource Name \\(ARN\\) of the model package to use to create the model\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `176` \n*Pattern*: `(arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:[a-z\\-]*\\/)?([a-zA-Z0-9]([a-zA-Z0-9-]){0,62})(? ? @ [ \\ ] ^ _ ` { | } ~`\\. If you don't include this switch, the password can contain punctuation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludePunctuation", "type": "boolean" }, "ExcludeUppercase": { + "markdownDescription": "Specifies whether to exclude uppercase letters from the password\\. If you don't include this switch, the password can contain uppercase letters\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludeUppercase", "type": "boolean" }, "GenerateStringKey": { + "markdownDescription": "The JSON key name for the key/value pair, where the value is the generated password\\. This pair is added to the JSON structure specified by the `SecretStringTemplate` parameter\\. If you specify this parameter, then you must also specify `SecretStringTemplate`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GenerateStringKey", "type": "string" }, "IncludeSpace": { + "markdownDescription": "Specifies whether to include the space character\\. If you include this switch, the password can contain space characters\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeSpace", "type": "boolean" }, "PasswordLength": { + "markdownDescription": "The length of the password\\. If you don't include this parameter, the default length is 32 characters\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PasswordLength", "type": "number" }, "RequireEachIncludedType": { + "markdownDescription": "Specifies whether to include at least one upper and lowercase letter, one number, and one punctuation\\. If you don't include this switch, the password contains at least one of every character type\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequireEachIncludedType", "type": "boolean" }, "SecretStringTemplate": { + "markdownDescription": "A template that the generated string must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretStringTemplate", "type": "string" } }, @@ -143329,9 +175064,13 @@ "additionalProperties": false, "properties": { "KmsKeyId": { + "markdownDescription": "The ARN, key ID, or alias of the KMS key to encrypt the secret\\. If you don't include this field, Secrets Manager uses `aws/secretsmanager`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", "type": "string" }, "Region": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", "type": "string" } }, @@ -143376,12 +175115,18 @@ "additionalProperties": false, "properties": { "SecretId": { + "markdownDescription": "The ARN or name of the secret\\. To reference a secret also created in this template, use the see [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) function with the secret's logical ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretId", "type": "string" }, "TargetId": { + "markdownDescription": "The ID of the database or cluster\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetId", "type": "string" }, "TargetType": { + "markdownDescription": "A string that defines the type of service or database associated with the secret\\. This value instructs Secrets Manager how to update the secret with the details of the service or database\\. This value must be one of the following: \n+ AWS::RDS::DBInstance\n+ AWS::RDS::DBCluster\n+ AWS::Redshift::Cluster\n+ AWS::DocDB::DBInstance\n+ AWS::DocDB::DBCluster\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetType", "type": "string" } }, @@ -143449,6 +175194,8 @@ "additionalProperties": false, "properties": { "Tags": { + "markdownDescription": "The tags to add to the hub resource\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "object" } }, @@ -143510,9 +175257,13 @@ "additionalProperties": false, "properties": { "AcceptLanguage": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceptLanguage", "type": "string" }, "PortfolioId": { + "markdownDescription": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortfolioId", "type": "string" } }, @@ -143578,42 +175329,64 @@ "additionalProperties": false, "properties": { "AcceptLanguage": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptLanguage", "type": "string" }, "Description": { + "markdownDescription": "The description of the product\\. \n*Required*: No \n*Type*: String \n*Maximum*: `8191` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Distributor": { + "markdownDescription": "The distributor of the product\\. \n*Required*: No \n*Type*: String \n*Maximum*: `8191` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Distributor", "type": "string" }, "Name": { + "markdownDescription": "The name of the product\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `8191` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Owner": { + "markdownDescription": "The owner of the product\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `8191` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Owner", "type": "string" }, "ProvisioningArtifactParameters": { "items": { "$ref": "#/definitions/AWS::ServiceCatalog::CloudFormationProduct.ProvisioningArtifactProperties" }, + "markdownDescription": "The configuration of the provisioning artifact \\(also known as a version\\)\\. \n*Required*: Yes \n*Type*: List of [ProvisioningArtifactProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationproduct-provisioningartifactproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisioningArtifactParameters", "type": "array" }, "ReplaceProvisioningArtifacts": { + "markdownDescription": "This property is turned off by default\\. If turned off, you can update provisioning artifacts or product attributes \\(such as description, distributor, name, owner, and more\\) and the associated provisioning artifacts will retain the same unique identifier\\. Provisioning artifacts are matched within the CloudFormationProduct resource, and only those that have been updated will be changed\\. Provisioning artifacts are matched by a combinaton of provisioning artifact template URL and name\\. \nIf turned on, provisioning artifacts will be given a new unique identifier when you update the product or provisioning artifacts\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplaceProvisioningArtifacts", "type": "boolean" }, "SupportDescription": { + "markdownDescription": "The support information about the product\\. \n*Required*: No \n*Type*: String \n*Maximum*: `8191` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SupportDescription", "type": "string" }, "SupportEmail": { + "markdownDescription": "The contact email for product support\\. \n*Required*: No \n*Type*: String \n*Maximum*: `254` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SupportEmail", "type": "string" }, "SupportUrl": { + "markdownDescription": "The contact URL for product support\\. \n `^https?:\\/\\// `/ is the pattern used to validate SupportUrl\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2083` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SupportUrl", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "One or more tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -143649,15 +175422,23 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the provisioning artifact, including how it differs from the previous provisioning artifact\\. \n*Required*: No \n*Type*: String \n*Maximum*: `8192` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "DisableTemplateValidation": { + "markdownDescription": "If set to true, AWS Service Catalog stops validating the specified provisioning artifact even if it is invalid\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableTemplateValidation", "type": "boolean" }, "Info": { + "markdownDescription": "Specify the template source with one of the following options, but not both\\. Keys accepted: \\[ `LoadTemplateFromURL`, `ImportFromPhysicalId` \\] \nThe URL of the AWS CloudFormation template in Amazon S3, AWS CodeCommit, or GitHub in JSON format\\. Specify the URL in JSON format as follows: \n `\"LoadTemplateFromURL\": \"https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/...\"` \n `ImportFromPhysicalId`: The physical id of the resource that contains the template\\. Currently only supports AWS CloudFormation stack arn\\. Specify the physical id in JSON format as follows: `ImportFromPhysicalId: \u201carn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId]` \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Info", "type": "object" }, "Name": { + "markdownDescription": "The name of the provisioning artifact \\(for example, v1 v2beta\\)\\. No spaces are allowed\\. \n*Required*: No \n*Type*: String \n*Maximum*: `8192` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -143702,56 +175483,331 @@ "additionalProperties": false, "properties": { "AcceptLanguage": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptLanguage", + "type": "string" + }, + "NotificationArns": { + "items": { + "type": "string" + }, + "markdownDescription": "Passed to AWS CloudFormation\\. The SNS topic ARNs to which to publish stack\\-related events\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NotificationArns", + "type": "array" + }, + "PathId": { + "markdownDescription": "The path identifier of the product\\. This value is optional if the product has a default path, and required if the product has more than one path\\. To list the paths for a product, use [ListLaunchPaths](https://docs.aws.amazon.com/servicecatalog/latest/dg/API_ListLaunchPaths.html)\\. \nYou must provide the name or ID, but not both\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PathId", + "type": "string" + }, + "PathName": { + "markdownDescription": "The name of the path\\. This value is optional if the product has a default path, and required if the product has more than one path\\. To list the paths for a product, use [ListLaunchPaths](https://docs.aws.amazon.com/servicecatalog/latest/dg/API_ListLaunchPaths.html)\\. \nYou must provide the name or ID, but not both\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PathName", + "type": "string" + }, + "ProductId": { + "markdownDescription": "The product identifier\\. \nYou must specify either the ID or the name of the product, but not both\\.\n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProductId", + "type": "string" + }, + "ProductName": { + "markdownDescription": "A user\\-friendly name for the provisioned product\\. This value must be unique for the AWS account and cannot be updated after the product is provisioned\\. \nEach time a stack is created or updated, if `ProductName` is provided it will successfully resolve to `ProductId` as long as only one product exists in the account or Region with that `ProductName`\\. \nYou must specify either the name or the ID of the product, but not both\\.\n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9][a-zA-Z0-9._-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProductName", + "type": "string" + }, + "ProvisionedProductName": { + "markdownDescription": "A user\\-friendly name for the provisioned product\\. This value must be unique for the AWS account and cannot be updated after the product is provisioned\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9][a-zA-Z0-9._-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProvisionedProductName", + "type": "string" + }, + "ProvisioningArtifactId": { + "markdownDescription": "The identifier of the provisioning artifact \\(also known as a version\\)\\. \nYou must specify either the ID or the name of the provisioning artifact, but not both\\.\n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisioningArtifactId", + "type": "string" + }, + "ProvisioningArtifactName": { + "markdownDescription": "The name of the provisioning artifact \\(also known as a version\\) for the product\\. This name must be unique for the product\\. \n You must specify either the name or the ID of the provisioning artifact, but not both\\. You must also specify either the name or the ID of the product, but not both\\.\n*Required*: Conditional \n*Type*: String \n*Maximum*: `8192` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisioningArtifactName", + "type": "string" + }, + "ProvisioningParameters": { + "items": { + "$ref": "#/definitions/AWS::ServiceCatalog::CloudFormationProvisionedProduct.ProvisioningParameter" + }, + "markdownDescription": "Parameters specified by the administrator that are required for provisioning the product\\. \n*Required*: No \n*Type*: List of [ProvisioningParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisioningParameters", + "type": "array" + }, + "ProvisioningPreferences": { + "$ref": "#/definitions/AWS::ServiceCatalog::CloudFormationProvisionedProduct.ProvisioningPreferences", + "markdownDescription": "StackSet preferences that are required for provisioning the product or updating a provisioned product\\. \n*Required*: No \n*Type*: [ProvisioningPreferences](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisioningPreferences" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "One or more tags\\. \nRequires the provisioned product to have an [ResourceUpdateConstraint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-resourceupdateconstraint.html) resource with `TagUpdatesOnProvisionedProduct` set to `ALLOWED` to allow tag updates\\. If `RESOURCE_UPDATE` constraint is not present, tags updates are ignored\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The parameter key\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The parameter value\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::ServiceCatalog::CloudFormationProvisionedProduct.ProvisioningPreferences": { + "additionalProperties": false, + "properties": { + "StackSetAccounts": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more AWS accounts where the provisioned product will be available\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nThe specified accounts should be within the list of accounts from the `STACKSET` constraint\\. To get the list of accounts in the `STACKSET` constraint, use the `DescribeProvisioningParameters` operation\\. \nIf no values are specified, the default value is all acounts from the `STACKSET` constraint\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StackSetAccounts", + "type": "array" + }, + "StackSetFailureToleranceCount": { + "markdownDescription": "The number of accounts, per Region, for which this operation can fail before AWS Service Catalog stops the operation in that Region\\. If the operation is stopped in a Region, AWS Service Catalog doesn't attempt the operation in any subsequent Regions\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nConditional: You must specify either `StackSetFailureToleranceCount` or `StackSetFailureTolerancePercentage`, but not both\\. \nThe default value is `0` if no value is specified\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StackSetFailureToleranceCount", + "type": "number" + }, + "StackSetFailureTolerancePercentage": { + "markdownDescription": "The percentage of accounts, per Region, for which this stack operation can fail before AWS Service Catalog stops the operation in that Region\\. If the operation is stopped in a Region, AWS Service Catalog doesn't attempt the operation in any subsequent Regions\\. \nWhen calculating the number of accounts based on the specified percentage, AWS Service Catalog rounds down to the next whole number\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nConditional: You must specify either `StackSetFailureToleranceCount` or `StackSetFailureTolerancePercentage`, but not both\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StackSetFailureTolerancePercentage", + "type": "number" + }, + "StackSetMaxConcurrencyCount": { + "markdownDescription": "The maximum number of accounts in which to perform this operation at one time\\. This is dependent on the value of `StackSetFailureToleranceCount`\\. `StackSetMaxConcurrentCount` is at most one more than the `StackSetFailureToleranceCount`\\. \nNote that this setting lets you specify the maximum for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nConditional: You must specify either `StackSetMaxConcurrentCount` or `StackSetMaxConcurrentPercentage`, but not both\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StackSetMaxConcurrencyCount", + "type": "number" + }, + "StackSetMaxConcurrencyPercentage": { + "markdownDescription": "The maximum percentage of accounts in which to perform this operation at one time\\. \nWhen calculating the number of accounts based on the specified percentage, AWS Service Catalog rounds down to the next whole number\\. This is true except in cases where rounding down would result is zero\\. In this case, AWS Service Catalog sets the number as `1` instead\\. \nNote that this setting lets you specify the maximum for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nConditional: You must specify either `StackSetMaxConcurrentCount` or `StackSetMaxConcurrentPercentage`, but not both\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StackSetMaxConcurrencyPercentage", + "type": "number" + }, + "StackSetOperationType": { + "markdownDescription": "Determines what action AWS Service Catalog performs to a stack set or a stack instance represented by the provisioned product\\. The default value is `UPDATE` if nothing is specified\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nCREATE \nCreates a new stack instance in the stack set represented by the provisioned product\\. In this case, only new stack instances are created based on accounts and Regions; if new ProductId or ProvisioningArtifactID are passed, they will be ignored\\. \nUPDATE \nUpdates the stack set represented by the provisioned product and also its stack instances\\. \nDELETE \nDeletes a stack instance in the stack set represented by the provisioned product\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `CREATE | DELETE | UPDATE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StackSetOperationType", + "type": "string" + }, + "StackSetRegions": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more AWS Regions where the provisioned product will be available\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nThe specified Regions should be within the list of Regions from the `STACKSET` constraint\\. To get the list of Regions in the `STACKSET` constraint, use the `DescribeProvisioningParameters` operation\\. \nIf no values are specified, the default value is all Regions from the `STACKSET` constraint\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StackSetRegions", + "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": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptLanguage", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the constraint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "NotificationArns": { + "items": { + "type": "string" + }, + "markdownDescription": "The notification ARNs\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationArns", + "type": "array" + }, + "PortfolioId": { + "markdownDescription": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortfolioId", + "type": "string" + }, + "ProductId": { + "markdownDescription": "The product identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptLanguage", "type": "string" }, - "NotificationArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "PathId": { - "type": "string" - }, - "PathName": { - "type": "string" - }, - "ProductId": { + "Description": { + "markdownDescription": "The description of the constraint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, - "ProductName": { + "LocalRoleName": { + "markdownDescription": "You are required to specify either the `RoleArn` or the `LocalRoleName` but can't use both\\. \nIf you specify the `LocalRoleName` property, when an account uses the launch constraint, the IAM role with that name in the account will be used\\. This allows launch\\-role constraints to be account\\-agnostic so the administrator can create fewer resources per shared account\\. \nThe given role name must exist in the account used to create the launch constraint and the account of the user who launches a product with this launch constraint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocalRoleName", "type": "string" }, - "ProvisionedProductName": { + "PortfolioId": { + "markdownDescription": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortfolioId", "type": "string" }, - "ProvisioningArtifactId": { + "ProductId": { + "markdownDescription": "The product identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProductId", "type": "string" }, - "ProvisioningArtifactName": { + "RoleArn": { + "markdownDescription": "The ARN of the launch role\\. \nYou are required to specify `RoleArn` or `LocalRoleName` but can't use both\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "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" } }, + "required": [ + "PortfolioId", + "ProductId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceCatalog::CloudFormationProvisionedProduct" + "AWS::ServiceCatalog::LaunchRoleConstraint" ], "type": "string" }, @@ -143765,60 +175821,101 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::ServiceCatalog::CloudFormationProvisionedProduct.ProvisioningParameter": { + "AWS::ServiceCatalog::LaunchTemplateConstraint": { "additionalProperties": false, "properties": { - "Key": { + "Condition": { "type": "string" }, - "Value": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "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" + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, - "StackSetMaxConcurrencyCount": { - "type": "number" + "Metadata": { + "type": "object" }, - "StackSetMaxConcurrencyPercentage": { - "type": "number" + "Properties": { + "additionalProperties": false, + "properties": { + "AcceptLanguage": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptLanguage", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the constraint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "PortfolioId": { + "markdownDescription": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortfolioId", + "type": "string" + }, + "ProductId": { + "markdownDescription": "The product identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProductId", + "type": "string" + }, + "Rules": { + "markdownDescription": "The constraint rules\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", + "type": "string" + } + }, + "required": [ + "PortfolioId", + "ProductId", + "Rules" + ], + "type": "object" }, - "StackSetOperationType": { + "Type": { + "enum": [ + "AWS::ServiceCatalog::LaunchTemplateConstraint" + ], "type": "string" }, - "StackSetRegions": { - "items": { - "type": "string" - }, - "type": "array" + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" } }, + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "AWS::ServiceCatalog::LaunchNotificationConstraint": { + "AWS::ServiceCatalog::Portfolio": { "additionalProperties": false, "properties": { "Condition": { @@ -143854,34 +175951,43 @@ "additionalProperties": false, "properties": { "AcceptLanguage": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptLanguage", "type": "string" }, "Description": { + "markdownDescription": "The description of the portfolio\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, - "NotificationArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "PortfolioId": { + "DisplayName": { + "markdownDescription": "The name to use for display purposes\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", "type": "string" }, - "ProductId": { + "ProviderName": { + "markdownDescription": "The name of the portfolio provider\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProviderName", "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "One or more tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" } }, "required": [ - "NotificationArns", - "PortfolioId", - "ProductId" + "DisplayName", + "ProviderName" ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceCatalog::LaunchNotificationConstraint" + "AWS::ServiceCatalog::Portfolio" ], "type": "string" }, @@ -143900,7 +176006,7 @@ ], "type": "object" }, - "AWS::ServiceCatalog::LaunchRoleConstraint": { + "AWS::ServiceCatalog::PortfolioPrincipalAssociation": { "additionalProperties": false, "properties": { "Condition": { @@ -143936,33 +176042,36 @@ "additionalProperties": false, "properties": { "AcceptLanguage": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "LocalRoleName": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceptLanguage", "type": "string" }, "PortfolioId": { + "markdownDescription": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortfolioId", "type": "string" }, - "ProductId": { + "PrincipalARN": { + "markdownDescription": "The ARN of the principal \\(IAM user, role, or group\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrincipalARN", "type": "string" }, - "RoleArn": { + "PrincipalType": { + "markdownDescription": "The principal type\\. The supported value is `IAM`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `IAM` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrincipalType", "type": "string" } }, "required": [ "PortfolioId", - "ProductId" + "PrincipalARN", + "PrincipalType" ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceCatalog::LaunchRoleConstraint" + "AWS::ServiceCatalog::PortfolioPrincipalAssociation" ], "type": "string" }, @@ -143981,7 +176090,7 @@ ], "type": "object" }, - "AWS::ServiceCatalog::LaunchTemplateConstraint": { + "AWS::ServiceCatalog::PortfolioProductAssociation": { "additionalProperties": false, "properties": { "Condition": { @@ -144017,31 +176126,35 @@ "additionalProperties": false, "properties": { "AcceptLanguage": { - "type": "string" - }, - "Description": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceptLanguage", "type": "string" }, "PortfolioId": { + "markdownDescription": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortfolioId", "type": "string" }, "ProductId": { + "markdownDescription": "The product identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProductId", "type": "string" }, - "Rules": { + "SourcePortfolioId": { + "markdownDescription": "The identifier of the source portfolio\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourcePortfolioId", "type": "string" } }, "required": [ "PortfolioId", - "ProductId", - "Rules" + "ProductId" ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceCatalog::LaunchTemplateConstraint" + "AWS::ServiceCatalog::PortfolioProductAssociation" ], "type": "string" }, @@ -144060,7 +176173,7 @@ ], "type": "object" }, - "AWS::ServiceCatalog::Portfolio": { + "AWS::ServiceCatalog::PortfolioShare": { "additionalProperties": false, "properties": { "Condition": { @@ -144096,33 +176209,35 @@ "additionalProperties": false, "properties": { "AcceptLanguage": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceptLanguage", "type": "string" }, - "Description": { - "type": "string" - }, - "DisplayName": { + "AccountId": { + "markdownDescription": "The AWS account ID\\. For example, `123456789012`\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccountId", "type": "string" }, - "ProviderName": { + "PortfolioId": { + "markdownDescription": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortfolioId", "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "ShareTagOptions": { + "markdownDescription": "Indicates whether TagOptions sharing is enabled or disabled for the portfolio share\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShareTagOptions", + "type": "boolean" } }, "required": [ - "DisplayName", - "ProviderName" + "AccountId", + "PortfolioId" ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceCatalog::Portfolio" + "AWS::ServiceCatalog::PortfolioShare" ], "type": "string" }, @@ -144141,7 +176256,7 @@ ], "type": "object" }, - "AWS::ServiceCatalog::PortfolioPrincipalAssociation": { + "AWS::ServiceCatalog::ResourceUpdateConstraint": { "additionalProperties": false, "properties": { "Condition": { @@ -144177,28 +176292,41 @@ "additionalProperties": false, "properties": { "AcceptLanguage": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptLanguage", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the constraint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "PortfolioId": { + "markdownDescription": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortfolioId", "type": "string" }, - "PrincipalARN": { + "ProductId": { + "markdownDescription": "The product identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProductId", "type": "string" }, - "PrincipalType": { + "TagUpdateOnProvisionedProduct": { + "markdownDescription": "If set to `ALLOWED`, lets users change tags in a [CloudFormationProvisionedProduct](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html) resource\\. \nIf set to `NOT_ALLOWED`, prevents users from changing tags in a [CloudFormationProvisionedProduct](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html) resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagUpdateOnProvisionedProduct", "type": "string" } }, "required": [ "PortfolioId", - "PrincipalARN", - "PrincipalType" + "ProductId", + "TagUpdateOnProvisionedProduct" ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceCatalog::PortfolioPrincipalAssociation" + "AWS::ServiceCatalog::ResourceUpdateConstraint" ], "type": "string" }, @@ -144217,7 +176345,7 @@ ], "type": "object" }, - "AWS::ServiceCatalog::PortfolioProductAssociation": { + "AWS::ServiceCatalog::ServiceAction": { "additionalProperties": false, "properties": { "Condition": { @@ -144253,27 +176381,44 @@ "additionalProperties": false, "properties": { "AcceptLanguage": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptLanguage", "type": "string" }, - "PortfolioId": { + "Definition": { + "items": { + "$ref": "#/definitions/AWS::ServiceCatalog::ServiceAction.DefinitionParameter" + }, + "markdownDescription": "A map that defines the self\\-service action\\. \n*Required*: Yes \n*Type*: List of [DefinitionParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-serviceaction-definitionparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Definition", + "type": "array" + }, + "DefinitionType": { + "markdownDescription": "The self\\-service action definition type\\. For example, `SSM_AUTOMATION`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SSM_AUTOMATION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefinitionType", "type": "string" }, - "ProductId": { + "Description": { + "markdownDescription": "The self\\-service action description\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, - "SourcePortfolioId": { + "Name": { + "markdownDescription": "The self\\-service action name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[a-zA-Z0-9_\\-.]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, "required": [ - "PortfolioId", - "ProductId" + "Definition", + "DefinitionType", + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceCatalog::PortfolioProductAssociation" + "AWS::ServiceCatalog::ServiceAction" ], "type": "string" }, @@ -144292,7 +176437,27 @@ ], "type": "object" }, - "AWS::ServiceCatalog::PortfolioShare": { + "AWS::ServiceCatalog::ServiceAction.DefinitionParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The parameter key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of the parameter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::ServiceCatalog::ServiceActionAssociation": { "additionalProperties": false, "properties": { "Condition": { @@ -144327,28 +176492,32 @@ "Properties": { "additionalProperties": false, "properties": { - "AcceptLanguage": { + "ProductId": { + "markdownDescription": "The product identifier\\. For example, `prod-abcdzk7xy33qa`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProductId", "type": "string" }, - "AccountId": { + "ProvisioningArtifactId": { + "markdownDescription": "The identifier of the provisioning artifact\\. For example, `pa-4abcdjnxjj6ne`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProvisioningArtifactId", "type": "string" }, - "PortfolioId": { + "ServiceActionId": { + "markdownDescription": "The self\\-service action identifier\\. For example, `act-fs7abcd89wxyz`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceActionId", "type": "string" - }, - "ShareTagOptions": { - "type": "boolean" } }, "required": [ - "AccountId", - "PortfolioId" + "ProductId", + "ProvisioningArtifactId", + "ServiceActionId" ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceCatalog::PortfolioShare" + "AWS::ServiceCatalog::ServiceActionAssociation" ], "type": "string" }, @@ -144367,7 +176536,7 @@ ], "type": "object" }, - "AWS::ServiceCatalog::ResourceUpdateConstraint": { + "AWS::ServiceCatalog::StackSetConstraint": { "additionalProperties": false, "properties": { "Condition": { @@ -144403,31 +176572,72 @@ "additionalProperties": false, "properties": { "AcceptLanguage": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptLanguage", + "type": "string" + }, + "AccountList": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more AWS accounts that will have access to the provisioned product\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountList", + "type": "array" + }, + "AdminRole": { + "markdownDescription": "AdminRole ARN \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdminRole", "type": "string" }, "Description": { + "markdownDescription": "The description of the constraint\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "ExecutionRole": { + "markdownDescription": "ExecutionRole name \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionRole", "type": "string" }, "PortfolioId": { + "markdownDescription": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortfolioId", "type": "string" }, "ProductId": { + "markdownDescription": "The product identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProductId", "type": "string" }, - "TagUpdateOnProvisionedProduct": { + "RegionList": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more AWS Regions where the provisioned product will be available\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nThe specified Regions should be within the list of Regions from the `STACKSET` constraint\\. To get the list of Regions in the `STACKSET` constraint, use the `DescribeProvisioningParameters` operation\\. \nIf no values are specified, the default value is all Regions from the `STACKSET` constraint\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegionList", + "type": "array" + }, + "StackInstanceControl": { + "markdownDescription": "Permission to create, update, and delete stack instances\\. Choose from ALLOWED and NOT\\_ALLOWED\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StackInstanceControl", "type": "string" } }, "required": [ + "AccountList", + "AdminRole", + "Description", + "ExecutionRole", "PortfolioId", "ProductId", - "TagUpdateOnProvisionedProduct" + "RegionList", + "StackInstanceControl" ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceCatalog::ResourceUpdateConstraint" + "AWS::ServiceCatalog::StackSetConstraint" ], "type": "string" }, @@ -144446,7 +176656,7 @@ ], "type": "object" }, - "AWS::ServiceCatalog::ServiceAction": { + "AWS::ServiceCatalog::TagOption": { "additionalProperties": false, "properties": { "Condition": { @@ -144481,35 +176691,31 @@ "Properties": { "additionalProperties": false, "properties": { - "AcceptLanguage": { - "type": "string" - }, - "Definition": { - "items": { - "$ref": "#/definitions/AWS::ServiceCatalog::ServiceAction.DefinitionParameter" - }, - "type": "array" - }, - "DefinitionType": { - "type": "string" + "Active": { + "markdownDescription": "The TagOption active state\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Active", + "type": "boolean" }, - "Description": { + "Key": { + "markdownDescription": "The TagOption key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Key", "type": "string" }, - "Name": { + "Value": { + "markdownDescription": "The TagOption value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", "type": "string" } }, "required": [ - "Definition", - "DefinitionType", - "Name" + "Key", + "Value" ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceCatalog::ServiceAction" + "AWS::ServiceCatalog::TagOption" ], "type": "string" }, @@ -144528,23 +176734,7 @@ ], "type": "object" }, - "AWS::ServiceCatalog::ServiceAction.DefinitionParameter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "AWS::ServiceCatalog::ServiceActionAssociation": { + "AWS::ServiceCatalog::TagOptionAssociation": { "additionalProperties": false, "properties": { "Condition": { @@ -144579,26 +176769,26 @@ "Properties": { "additionalProperties": false, "properties": { - "ProductId": { - "type": "string" - }, - "ProvisioningArtifactId": { + "ResourceId": { + "markdownDescription": "The resource identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceId", "type": "string" }, - "ServiceActionId": { + "TagOptionId": { + "markdownDescription": "The TagOption identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TagOptionId", "type": "string" } }, "required": [ - "ProductId", - "ProvisioningArtifactId", - "ServiceActionId" + "ResourceId", + "TagOptionId" ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceCatalog::ServiceActionAssociation" + "AWS::ServiceCatalog::TagOptionAssociation" ], "type": "string" }, @@ -144617,7 +176807,7 @@ ], "type": "object" }, - "AWS::ServiceCatalog::StackSetConstraint": { + "AWS::ServiceCatalogAppRegistry::Application": { "additionalProperties": false, "properties": { "Condition": { @@ -144652,55 +176842,36 @@ "Properties": { "additionalProperties": false, "properties": { - "AcceptLanguage": { - "type": "string" - }, - "AccountList": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AdminRole": { - "type": "string" - }, "Description": { + "markdownDescription": "The description of the application\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, - "ExecutionRole": { - "type": "string" - }, - "PortfolioId": { - "type": "string" - }, - "ProductId": { + "Name": { + "markdownDescription": "The name of the application\\. The name must be unique in the region in which you are creating the application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[-.\\w]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, - "RegionList": { - "items": { - "type": "string" + "Tags": { + "additionalProperties": true, + "markdownDescription": "Key\\-value pairs you can use to associate with the application\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } }, - "type": "array" - }, - "StackInstanceControl": { - "type": "string" + "title": "Tags", + "type": "object" } }, "required": [ - "AccountList", - "AdminRole", - "Description", - "ExecutionRole", - "PortfolioId", - "ProductId", - "RegionList", - "StackInstanceControl" + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceCatalog::StackSetConstraint" + "AWS::ServiceCatalogAppRegistry::Application" ], "type": "string" }, @@ -144719,7 +176890,7 @@ ], "type": "object" }, - "AWS::ServiceCatalog::TagOption": { + "AWS::ServiceCatalogAppRegistry::AttributeGroup": { "additionalProperties": false, "properties": { "Condition": { @@ -144754,94 +176925,42 @@ "Properties": { "additionalProperties": false, "properties": { - "Active": { - "type": "boolean" + "Attributes": { + "markdownDescription": "A JSON string in the form of nested key\\-value pairs that represent the attributes in the group and describes an application and its components\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attributes", + "type": "object" }, - "Key": { + "Description": { + "markdownDescription": "The description of the attribute group that the user provides\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "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]+$", + "Name": { + "markdownDescription": "The name of the attribute group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[-.\\w]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" + "Tags": { + "additionalProperties": true, + "markdownDescription": "Key\\-value pairs you can use to associate with the attribute group\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "ResourceId": { - "type": "string" - }, - "TagOptionId": { - "type": "string" + "title": "Tags", + "type": "object" } }, "required": [ - "ResourceId", - "TagOptionId" + "Attributes", + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceCatalog::TagOptionAssociation" + "AWS::ServiceCatalogAppRegistry::AttributeGroup" ], "type": "string" }, @@ -144860,7 +176979,7 @@ ], "type": "object" }, - "AWS::ServiceCatalogAppRegistry::Application": { + "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation": { "additionalProperties": false, "properties": { "Condition": { @@ -144895,30 +177014,26 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "Application": { + "markdownDescription": "The name or ID of the application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Application", "type": "string" }, - "Name": { + "AttributeGroup": { + "markdownDescription": "The name or ID of the attribute group that holds the attributes to describe the application\\. \nFor more information about using the `Ref` function, see [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeGroup", "type": "string" - }, - "Tags": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" } }, "required": [ - "Name" + "Application", + "AttributeGroup" ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceCatalogAppRegistry::Application" + "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation" ], "type": "string" }, @@ -144937,7 +177052,7 @@ ], "type": "object" }, - "AWS::ServiceCatalogAppRegistry::AttributeGroup": { + "AWS::ServiceCatalogAppRegistry::ResourceAssociation": { "additionalProperties": false, "properties": { "Condition": { @@ -144972,34 +177087,32 @@ "Properties": { "additionalProperties": false, "properties": { - "Attributes": { - "type": "object" - }, - "Description": { + "Application": { + "markdownDescription": "The name or ID of the application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Application", "type": "string" }, - "Name": { + "Resource": { + "markdownDescription": "The name or ID of the resource of which the application will be associated\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Resource", "type": "string" }, - "Tags": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" + "ResourceType": { + "markdownDescription": "The type of resource of which the application will be associated\\. Possible values: CFN\\_STACK\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceType", + "type": "string" } }, "required": [ - "Attributes", - "Name" + "Application", + "Resource", + "ResourceType" ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceCatalogAppRegistry::AttributeGroup" + "AWS::ServiceCatalogAppRegistry::ResourceAssociation" ], "type": "string" }, @@ -145018,7 +177131,7 @@ ], "type": "object" }, - "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation": { + "AWS::ServiceDiscovery::HttpNamespace": { "additionalProperties": false, "properties": { "Condition": { @@ -145053,22 +177166,33 @@ "Properties": { "additionalProperties": false, "properties": { - "Application": { + "Description": { + "markdownDescription": "A description for the namespace\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, - "AttributeGroup": { + "Name": { + "markdownDescription": "The name that you want to assign to this namespace\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^[!-~]{1,1024}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags for the namespace\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: Updates are not supported\\.", + "title": "Tags", + "type": "array" } }, "required": [ - "Application", - "AttributeGroup" + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation" + "AWS::ServiceDiscovery::HttpNamespace" ], "type": "string" }, @@ -145087,7 +177211,7 @@ ], "type": "object" }, - "AWS::ServiceCatalogAppRegistry::ResourceAssociation": { + "AWS::ServiceDiscovery::Instance": { "additionalProperties": false, "properties": { "Condition": { @@ -145122,26 +177246,31 @@ "Properties": { "additionalProperties": false, "properties": { - "Application": { - "type": "string" + "InstanceAttributes": { + "markdownDescription": "A string map that contains the following information for the service that you specify in `ServiceId`: \n+ The attributes that apply to the records that are defined in the service\\. \n+ For each attribute, the applicable value\\.\nSupported attribute keys include the following: \nAWS\\_ALIAS\\_DNS\\_NAME \nIf you want AWS Cloud Map to create a Route\u00a053 alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that is associated with the load balancer\\. For information about how to get the DNS name, see [AliasTarget\\->DNSName](https://docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html#Route53-Type-AliasTarget-DNSName) in the *Route\u00a053 API Reference*\\. \nNote the following: \n+ The configuration for the service that is specified by `ServiceId` must include settings for an `A` record, an `AAAA` record, or both\\.\n+ In the service that is specified by `ServiceId`, the value of `RoutingPolicy` must be `WEIGHTED`\\.\n+ If the service that is specified by `ServiceId` includes `HealthCheckConfig` settings, AWS Cloud Map will create the health check, but it won't associate the health check with the alias record\\.\n+ Auto naming currently doesn't support creating alias records that route traffic to AWS resources other than ELB load balancers\\.\n+ If you specify a value for `AWS_ALIAS_DNS_NAME`, don't specify values for any of the `AWS_INSTANCE` attributes\\. \nAWS\\_EC2\\_INSTANCE\\_ID \n*HTTP namespaces only\\.* The Amazon EC2 instance ID for the instance\\. The `AWS_INSTANCE_IPV4` attribute contains the primary private IPv4 address\\. When creating resources with a type of [AWS::ServiceDiscovery::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html), if the `AWS_EC2_INSTANCE_ID` attribute is specified, the only other attribute that can be specified is `AWS_INIT_HEALTH_STATUS`\\. After the resource has been created, the `AWS_INSTANCE_IPV4` attribute contains the primary private IPv4 address\\. \nAWS\\_INIT\\_HEALTH\\_STATUS \nIf the service configuration includes `HealthCheckCustomConfig`, when creating resources with a type of [AWS::ServiceDiscovery::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html) you can optionally use `AWS_INIT_HEALTH_STATUS` to specify the initial status of the custom health check, `HEALTHY` or `UNHEALTHY`\\. If you don't specify a value for `AWS_INIT_HEALTH_STATUS`, the initial status is `HEALTHY`\\. This attribute can only be used when creating resources and will not be seen on existing resources\\. \nAWS\\_INSTANCE\\_CNAME \nIf the service configuration includes a `CNAME` record, the domain name that you want Route\u00a053 to return in response to DNS queries, for example, `example.com`\\. \nThis value is required if the service specified by `ServiceId` includes settings for an `CNAME` record\\. \nAWS\\_INSTANCE\\_IPV4 \nIf the service configuration includes an `A` record, the IPv4 address that you want Route\u00a053 to return in response to DNS queries, for example, `192.0.2.44`\\. \nThis value is required if the service specified by `ServiceId` includes settings for an `A` record\\. If the service includes settings for an `SRV` record, you must specify a value for `AWS_INSTANCE_IPV4`, `AWS_INSTANCE_IPV6`, or both\\. \nAWS\\_INSTANCE\\_IPV6 \nIf the service configuration includes an `AAAA` record, the IPv6 address that you want Route\u00a053 to return in response to DNS queries, for example, `2001:0db8:85a3:0000:0000:abcd:0001:2345`\\. \nThis value is required if the service specified by `ServiceId` includes settings for an `AAAA` record\\. If the service includes settings for an `SRV` record, you must specify a value for `AWS_INSTANCE_IPV4`, `AWS_INSTANCE_IPV6`, or both\\. \nAWS\\_INSTANCE\\_PORT \nIf the service includes an `SRV` record, the value that you want Route\u00a053 to return for the port\\. \nIf the service includes `HealthCheckConfig`, the port on the endpoint that you want Route\u00a053 to send requests to\\. \nThis value is required if you specified settings for an `SRV` record or a Route\u00a053 health check when you created the service\\.\n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceAttributes", + "type": "object" }, - "Resource": { + "InstanceId": { + "markdownDescription": "An identifier that you want to associate with the instance\\. Note the following: \n+ If the service that's specified by `ServiceId` includes settings for an `SRV` record, the value of `InstanceId` is automatically included as part of the value for the `SRV` record\\. For more information, see [DnsRecord > Type](https://docs.aws.amazon.com/cloud-map/latest/api/API_DnsRecord.html#cloudmap-Type-DnsRecord-Type)\\.\n+ You can use this value to update an existing instance\\.\n+ To register a new instance, you must specify a value that's unique among instances that you register by using the same service\\. \n+ If you specify an existing `InstanceId` and `ServiceId`, AWS Cloud Map updates the existing DNS records, if any\\. If there's also an existing health check, AWS Cloud Map deletes the old health check and creates a new one\\. \n**Note** \nThe health check isn't deleted immediately, so it will still appear for a while if you submit a `ListHealthChecks` request, for example\\.\n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `^[0-9a-zA-Z_/:.@-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceId", "type": "string" }, - "ResourceType": { + "ServiceId": { + "markdownDescription": "The ID of the service that you want to use for settings for the instance\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceId", "type": "string" } }, "required": [ - "Application", - "Resource", - "ResourceType" + "InstanceAttributes", + "ServiceId" ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceCatalogAppRegistry::ResourceAssociation" + "AWS::ServiceDiscovery::Instance" ], "type": "string" }, @@ -145160,7 +177289,7 @@ ], "type": "object" }, - "AWS::ServiceDiscovery::HttpNamespace": { + "AWS::ServiceDiscovery::PrivateDnsNamespace": { "additionalProperties": false, "properties": { "Condition": { @@ -145196,26 +177325,43 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description for the namespace\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name that you want to assign to this namespace\\. When you create a private DNS namespace, AWS Cloud Map automatically creates an Amazon Route\u00a053 private hosted zone that has the same name as the namespace\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^[!-~]{1,1024}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, + "Properties": { + "$ref": "#/definitions/AWS::ServiceDiscovery::PrivateDnsNamespace.Properties", + "markdownDescription": "Properties for the private DNS namespace\\. \n*Required*: No \n*Type*: [Properties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-privatednsnamespace-properties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Properties" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags for the namespace\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: Updates are not supported\\.", + "title": "Tags", "type": "array" + }, + "Vpc": { + "markdownDescription": "The ID of the Amazon VPC that you want to associate the namespace with\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Vpc", + "type": "string" } }, "required": [ - "Name" + "Name", + "Vpc" ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceDiscovery::HttpNamespace" + "AWS::ServiceDiscovery::PrivateDnsNamespace" ], "type": "string" }, @@ -145234,7 +177380,40 @@ ], "type": "object" }, - "AWS::ServiceDiscovery::Instance": { + "AWS::ServiceDiscovery::PrivateDnsNamespace.PrivateDnsPropertiesMutable": { + "additionalProperties": false, + "properties": { + "SOA": { + "$ref": "#/definitions/AWS::ServiceDiscovery::PrivateDnsNamespace.SOA", + "markdownDescription": "Fields for the Start of Authority \\(SOA\\) record for the hosted zone for the private DNS namespace\\. \n*Required*: No \n*Type*: [SOA](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-privatednsnamespace-soa.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SOA" + } + }, + "type": "object" + }, + "AWS::ServiceDiscovery::PrivateDnsNamespace.Properties": { + "additionalProperties": false, + "properties": { + "DnsProperties": { + "$ref": "#/definitions/AWS::ServiceDiscovery::PrivateDnsNamespace.PrivateDnsPropertiesMutable", + "markdownDescription": "DNS properties for the private DNS namespace\\. \n*Required*: No \n*Type*: [PrivateDnsPropertiesMutable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-privatednsnamespace-privatednspropertiesmutable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DnsProperties" + } + }, + "type": "object" + }, + "AWS::ServiceDiscovery::PrivateDnsNamespace.SOA": { + "additionalProperties": false, + "properties": { + "TTL": { + "markdownDescription": "The time to live \\(TTL\\) for purposes of negative caching\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TTL", + "type": "number" + } + }, + "type": "object" + }, + "AWS::ServiceDiscovery::PublicDnsNamespace": { "additionalProperties": false, "properties": { "Condition": { @@ -145269,25 +177448,38 @@ "Properties": { "additionalProperties": false, "properties": { - "InstanceAttributes": { - "type": "object" - }, - "InstanceId": { + "Description": { + "markdownDescription": "A description for the namespace\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, - "ServiceId": { + "Name": { + "markdownDescription": "The name that you want to assign to this namespace\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" + }, + "Properties": { + "$ref": "#/definitions/AWS::ServiceDiscovery::PublicDnsNamespace.Properties", + "markdownDescription": "Properties for the public DNS namespace\\. \n*Required*: No \n*Type*: [Properties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-publicdnsnamespace-properties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Properties" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags for the namespace\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: Updates are not supported\\.", + "title": "Tags", + "type": "array" } }, "required": [ - "InstanceAttributes", - "ServiceId" + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceDiscovery::Instance" + "AWS::ServiceDiscovery::PublicDnsNamespace" ], "type": "string" }, @@ -145306,7 +177498,40 @@ ], "type": "object" }, - "AWS::ServiceDiscovery::PrivateDnsNamespace": { + "AWS::ServiceDiscovery::PublicDnsNamespace.Properties": { + "additionalProperties": false, + "properties": { + "DnsProperties": { + "$ref": "#/definitions/AWS::ServiceDiscovery::PublicDnsNamespace.PublicDnsPropertiesMutable", + "markdownDescription": "DNS properties for the public DNS namespace\\. \n*Required*: No \n*Type*: [PublicDnsPropertiesMutable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-publicdnsnamespace-publicdnspropertiesmutable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DnsProperties" + } + }, + "type": "object" + }, + "AWS::ServiceDiscovery::PublicDnsNamespace.PublicDnsPropertiesMutable": { + "additionalProperties": false, + "properties": { + "SOA": { + "$ref": "#/definitions/AWS::ServiceDiscovery::PublicDnsNamespace.SOA", + "markdownDescription": "Start of Authority \\(SOA\\) record for the hosted zone for the public DNS namespace\\. \n*Required*: No \n*Type*: [SOA](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-publicdnsnamespace-soa.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SOA" + } + }, + "type": "object" + }, + "AWS::ServiceDiscovery::PublicDnsNamespace.SOA": { + "additionalProperties": false, + "properties": { + "TTL": { + "markdownDescription": "The time to live \\(TTL\\) for purposes of negative caching\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TTL", + "type": "number" + } + }, + "type": "object" + }, + "AWS::ServiceDiscovery::Service": { "additionalProperties": false, "properties": { "Condition": { @@ -145342,33 +177567,54 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the service\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, + "DnsConfig": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsConfig", + "markdownDescription": "A complex type that contains information about the Route\u00a053 DNS records that you want AWS Cloud Map to create when you register an instance\\. \n*Required*: No \n*Type*: [DnsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DnsConfig" + }, + "HealthCheckConfig": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckConfig", + "markdownDescription": "*Public DNS and HTTP namespaces only\\.* A complex type that contains settings for an optional health check\\. If you specify settings for a health check, AWS Cloud Map associates the health check with the records that you specify in `DnsConfig`\\. \nFor information about the charges for health checks, see [Amazon Route\u00a053 Pricing](http://aws.amazon.com/route53/pricing/)\\. \n*Required*: No \n*Type*: [HealthCheckConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-healthcheckconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckConfig" + }, + "HealthCheckCustomConfig": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckCustomConfig", + "markdownDescription": "A complex type that contains information about an optional custom health check\\. \nIf you specify a health check configuration, you can specify either `HealthCheckCustomConfig` or `HealthCheckConfig` but not both\\.\n*Required*: No \n*Type*: [HealthCheckCustomConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-healthcheckcustomconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HealthCheckCustomConfig" + }, "Name": { + "markdownDescription": "The name of the service\\. \n*Required*: No \n*Type*: String \n*Pattern*: `((?=^.{1,127}$)^([a-zA-Z0-9_][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9_]|[a-zA-Z0-9])(\\.([a-zA-Z0-9_][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9_]|[a-zA-Z0-9]))*$)|(^\\.$)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, - "Properties": { - "$ref": "#/definitions/AWS::ServiceDiscovery::PrivateDnsNamespace.Properties" + "NamespaceId": { + "markdownDescription": "The ID of the namespace that was used to create the service\\. \nYou must specify a value for `NamespaceId` either for the service properties or for [DnsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsconfig.html)\\. Don't specify a value in both places\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NamespaceId", + "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags for the service\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: Updates are not supported\\.", + "title": "Tags", "type": "array" }, - "Vpc": { + "Type": { + "markdownDescription": "If present, specifies that the service instances are only discoverable using the `DiscoverInstances` API operation\\. No DNS records is registered for the service instances\\. The only valid value is `HTTP`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `HTTP` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, - "required": [ - "Name", - "Vpc" - ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceDiscovery::PrivateDnsNamespace" + "AWS::ServiceDiscovery::Service" ], "type": "string" }, @@ -145382,39 +177628,93 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::ServiceDiscovery::PrivateDnsNamespace.PrivateDnsPropertiesMutable": { + "AWS::ServiceDiscovery::Service.DnsConfig": { "additionalProperties": false, "properties": { - "SOA": { - "$ref": "#/definitions/AWS::ServiceDiscovery::PrivateDnsNamespace.SOA" + "DnsRecords": { + "items": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsRecord" + }, + "markdownDescription": "An array that contains one `DnsRecord` object for each Route\u00a053 DNS record that you want AWS Cloud Map to create when you register an instance\\. \n*Required*: Yes \n*Type*: List of [DnsRecord](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsrecord.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DnsRecords", + "type": "array" + }, + "NamespaceId": { + "markdownDescription": "The ID of the namespace to use for DNS configuration\\. \nYou must specify a value for `NamespaceId` either for `DnsConfig` or for the [service properties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-service.html)\\. Don't specify a value in both places\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NamespaceId", + "type": "string" + }, + "RoutingPolicy": { + "markdownDescription": "The routing policy that you want to apply to all Route\u00a053 DNS records that AWS Cloud Map creates when you register an instance and specify this service\\. \nIf you want to use this service to register instances that create alias records, specify `WEIGHTED` for the routing policy\\.\nYou can specify the following values: \nMULTIVALUE \nIf you define a health check for the service and the health check is healthy, Route\u00a053 returns the applicable value for up to eight instances\\. \nFor example, suppose that the service includes configurations for one `A` record and a health check\\. You use the service to register 10 instances\\. Route\u00a053 responds to DNS queries with IP addresses for up to eight healthy instances\\. If fewer than eight instances are healthy, Route\u00a053 responds to every DNS query with the IP addresses for all of the healthy instances\\. \nIf you don't define a health check for the service, Route\u00a053 assumes that all instances are healthy and returns the values for up to eight instances\\. \nFor more information about the multivalue routing policy, see [Multivalue Answer Routing](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-multivalue) in the *Route\u00a053 Developer Guide*\\. \nWEIGHTED \nRoute\u00a053 returns the applicable value from one randomly selected instance from among the instances that you registered using the same service\\. Currently, all records have the same weight, so you can't route more or less traffic to any instances\\. \nFor example, suppose that the service includes configurations for one `A` record and a health check\\. You use the service to register 10 instances\\. Route\u00a053 responds to DNS queries with the IP address for one randomly selected instance from among the healthy instances\\. If no instances are healthy, Route\u00a053 responds to DNS queries as if all of the instances were healthy\\. \nIf you don't define a health check for the service, Route\u00a053 assumes that all instances are healthy and returns the applicable value for one randomly selected instance\\. \nFor more information about the weighted routing policy, see [Weighted Routing](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-weighted) in the *Route\u00a053 Developer Guide*\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `MULTIVALUE | WEIGHTED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoutingPolicy", + "type": "string" } }, + "required": [ + "DnsRecords" + ], "type": "object" }, - "AWS::ServiceDiscovery::PrivateDnsNamespace.Properties": { + "AWS::ServiceDiscovery::Service.DnsRecord": { "additionalProperties": false, "properties": { - "DnsProperties": { - "$ref": "#/definitions/AWS::ServiceDiscovery::PrivateDnsNamespace.PrivateDnsPropertiesMutable" + "TTL": { + "markdownDescription": "The amount of time, in seconds, that you want DNS resolvers to cache the settings for this record\\. \nAlias records don't include a TTL because Route\u00a053 uses the TTL for the AWS resource that an alias record routes traffic to\\. If you include the `AWS_ALIAS_DNS_NAME` attribute when you submit a [RegisterInstance](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html) request, the `TTL` value is ignored\\. Always specify a TTL for the service; you can use a service to register instances that create either alias or non\\-alias records\\.\n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TTL", + "type": "number" + }, + "Type": { + "markdownDescription": "The type of the resource, which indicates the type of value that Route 53 returns in response to DNS queries\\. You can specify values for `Type` in the following combinations: \n+ `A`\n+ `AAAA`\n+ `A` and `AAAA`\n+ `SRV`\n+ `CNAME`\nIf you want AWS Cloud Map to create a Route 53 alias record when you register an instance, specify `A` or `AAAA` for `Type`\\. \nYou specify other settings, such as the IP address for `A` and `AAAA` records, when you register an instance\\. For more information, see [RegisterInstance](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html)\\. \nThe following values are supported: \nA \nRoute 53 returns the IP address of the resource in IPv4 format, such as 192\\.0\\.2\\.44\\. \nAAAA \nRoute 53 returns the IP address of the resource in IPv6 format, such as 2001:0db8:85a3:0000:0000:abcd:0001:2345\\. \nCNAME \nRoute 53 returns the domain name of the resource, such as www\\.example\\.com\\. Note the following: \n+ You specify the domain name that you want to route traffic to when you register an instance\\. For more information, see [Attributes](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html#cloudmap-RegisterInstance-request-Attributes) in the topic [RegisterInstance](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html)\\.\n+ You must specify `WEIGHTED` for the value of `RoutingPolicy`\\.\n+ You can't specify both `CNAME` for `Type` and settings for `HealthCheckConfig`\\. If you do, the request will fail with an `InvalidInput` error\\. \nSRV \nRoute 53 returns the value for an `SRV` record\\. The value for an `SRV` record uses the following values: \n`priority weight port service-hostname` \nNote the following about the values: \n+ The values of `priority` and `weight` are both set to `1` and can't be changed\\. \n+ The value of `port` comes from the value that you specify for the `AWS_INSTANCE_PORT` attribute when you submit a [RegisterInstance](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html) request\\. \n+ The value of `service-hostname` is a concatenation of the following values:\n + The value that you specify for `InstanceId` when you register an instance\\.\n + The name of the service\\.\n + The name of the namespace\\.", + "title": "Type", + "type": "string" } }, + "required": [ + "TTL", + "Type" + ], "type": "object" }, - "AWS::ServiceDiscovery::PrivateDnsNamespace.SOA": { + "AWS::ServiceDiscovery::Service.HealthCheckConfig": { "additionalProperties": false, "properties": { - "TTL": { + "FailureThreshold": { + "markdownDescription": "The number of consecutive health checks that an endpoint must pass or fail for Route\u00a053 to change the current status of the endpoint from unhealthy to healthy or the other way around\\. For more information, see [How Route\u00a053 Determines Whether an Endpoint Is Healthy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html) in the *Route\u00a053 Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailureThreshold", "type": "number" + }, + "ResourcePath": { + "markdownDescription": "The path that you want Route\u00a053 to request when performing health checks\\. The path can be any value that your endpoint returns an HTTP status code of a 2xx or 3xx format for when the endpoint is healthy\\. An example file is `/docs/route53-health-check.html`\\. Route\u00a053 automatically adds the DNS name for the service\\. If you don't specify a value for `ResourcePath`, the default value is `/`\\. \nIf you specify `TCP` for `Type`, you must *not* specify a value for `ResourcePath`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourcePath", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of health check that you want to create, which indicates how Route\u00a053 determines whether an endpoint is healthy\\. \nYou can't change the value of `Type` after you create a health check\\.\nYou can create the following types of health checks: \n+ **HTTP**: Route\u00a053 tries to establish a TCP connection\\. If successful, Route\u00a053 submits an HTTP request and waits for an HTTP status code of 200 or greater and less than 400\\.\n+ **HTTPS**: Route\u00a053 tries to establish a TCP connection\\. If successful, Route\u00a053 submits an HTTPS request and waits for an HTTP status code of 200 or greater and less than 400\\.\n**Important** \nIf you specify HTTPS for the value of `Type`, the endpoint must support TLS v1\\.0 or later\\.\n+ **TCP**: Route\u00a053 tries to establish a TCP connection\\.", + "title": "Type", + "type": "string" } }, + "required": [ + "Type" + ], "type": "object" }, - "AWS::ServiceDiscovery::PublicDnsNamespace": { + "AWS::ServiceDiscovery::Service.HealthCheckCustomConfig": { + "additionalProperties": false, + "properties": { + "FailureThreshold": { + "markdownDescription": "This parameter is no longer supported and is always set to 1\\. AWS Cloud Map waits for approximately 30 seconds after receiving an `UpdateInstanceCustomHealthStatus` request before changing the status of the service instance\\.\nThe number of 30\\-second intervals that you want AWS Cloud Map to wait after receiving an `UpdateInstanceCustomHealthStatus` request before it changes the health status of a service instance\\. \nSending a second or subsequent `UpdateInstanceCustomHealthStatus` request with the same value before 30 seconds has passed doesn't accelerate the change\\. AWS Cloud Map still waits `30` seconds after the first request to make the change\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailureThreshold", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Signer::ProfilePermission": { "additionalProperties": false, "properties": { "Condition": { @@ -145449,30 +177749,43 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "Action": { + "markdownDescription": "The AWS Signer action permitted as part of cross\\-account permissions\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Action", "type": "string" }, - "Name": { + "Principal": { + "markdownDescription": "The AWS principal receiving cross\\-account permissions\\. This may be an IAM role or another AWS account ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Principal", "type": "string" }, - "Properties": { - "$ref": "#/definitions/AWS::ServiceDiscovery::PublicDnsNamespace.Properties" + "ProfileName": { + "markdownDescription": "The human\\-readable name of the signing profile\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProfileName", + "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "ProfileVersion": { + "markdownDescription": "The version of the signing profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProfileVersion", + "type": "string" + }, + "StatementId": { + "markdownDescription": "A unique identifier for the cross\\-account permission statement\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StatementId", + "type": "string" } }, "required": [ - "Name" + "Action", + "Principal", + "ProfileName", + "StatementId" ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceDiscovery::PublicDnsNamespace" + "AWS::Signer::ProfilePermission" ], "type": "string" }, @@ -145491,34 +177804,7 @@ ], "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": { + "AWS::Signer::SigningProfile": { "additionalProperties": false, "properties": { "Condition": { @@ -145553,39 +177839,33 @@ "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": { + "PlatformId": { + "markdownDescription": "The ID of a platform that is available for use by a signing profile\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlatformId", "type": "string" }, - "NamespaceId": { - "type": "string" + "SignatureValidityPeriod": { + "$ref": "#/definitions/AWS::Signer::SigningProfile.SignatureValidityPeriod", + "markdownDescription": "The validity period override for any signature generated using this signing profile\\. If unspecified, the default is 135 months\\. \n*Required*: No \n*Type*: [SignatureValidityPeriod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-signer-signingprofile-signaturevalidityperiod.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SignatureValidityPeriod" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of tags associated with the signing profile\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" - }, - "Type": { - "type": "string" } }, + "required": [ + "PlatformId" + ], "type": "object" }, "Type": { "enum": [ - "AWS::ServiceDiscovery::Service" + "AWS::Signer::SigningProfile" ], "type": "string" }, @@ -145599,75 +177879,28 @@ } }, "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", + "Properties" ], "type": "object" }, - "AWS::ServiceDiscovery::Service.DnsRecord": { + "AWS::Signer::SigningProfile.SignatureValidityPeriod": { "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": { + "markdownDescription": "The time unit for signature validity: DAYS \\| MONTHS \\| YEARS\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "AWS::ServiceDiscovery::Service.HealthCheckCustomConfig": { - "additionalProperties": false, - "properties": { - "FailureThreshold": { + "Value": { + "markdownDescription": "The numerical value of the time unit for signature validity\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", "type": "number" } }, "type": "object" }, - "AWS::Signer::ProfilePermission": { + "AWS::SimSpaceWeaver::Simulation": { "additionalProperties": false, "properties": { "Condition": { @@ -145702,33 +177935,21 @@ "Properties": { "additionalProperties": false, "properties": { - "Action": { - "type": "string" - }, - "Principal": { - "type": "string" - }, - "ProfileName": { + "Name": { "type": "string" }, - "ProfileVersion": { + "RoleArn": { "type": "string" }, - "StatementId": { - "type": "string" + "SchemaS3Location": { + "$ref": "#/definitions/AWS::SimSpaceWeaver::Simulation.S3Location" } }, - "required": [ - "Action", - "Principal", - "ProfileName", - "StatementId" - ], "type": "object" }, "Type": { "enum": [ - "AWS::Signer::ProfilePermission" + "AWS::SimSpaceWeaver::Simulation" ], "type": "string" }, @@ -145742,97 +177963,26 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::Signer::SigningProfile": { + "AWS::SimSpaceWeaver::Simulation.S3Location": { "additionalProperties": false, "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "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" - ], + "BucketName": { "type": "string" }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], + "ObjectKey": { "type": "string" } }, "required": [ - "Type", - "Properties" + "BucketName", + "ObjectKey" ], "type": "object" }, - "AWS::Signer::SigningProfile.SignatureValidityPeriod": { - "additionalProperties": false, - "properties": { - "Type": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "type": "object" - }, "AWS::StepFunctions::Activity": { "additionalProperties": false, "properties": { @@ -145869,12 +178019,16 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the activity\\. \nA name must *not* contain: \n+ white space\n+ brackets `< > { } [ ]` \n+ wildcard characters `? *` \n+ special characters `\" # % \\ ^ | ~ ` $ & , ; : /` \n+ control characters \\(`U+0000-001F`, `U+007F-009F`\\)\nTo enable logging with CloudWatch Logs, the name should only contain 0\\-9, A\\-Z, a\\-z, \\- and \\_\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/AWS::StepFunctions::Activity.TagsEntry" }, + "markdownDescription": "The list of tags to add to a resource\\. \nTags may only contain Unicode letters, digits, white space, or these symbols: `_ . : / = + - @`\\. \n*Required*: No \n*Type*: List of [TagsEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-activity-tagsentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -145908,9 +178062,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The `key` for a key\\-value pair in a tag entry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The `value` for a key\\-value pair in a tag entry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -145956,43 +178114,63 @@ "additionalProperties": false, "properties": { "Definition": { + "markdownDescription": "The Amazon States Language definition of the state machine\\. The state machine definition must be in JSON or YAML, and the format of the object must match the format of your AWS Step Functions template file\\. See [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)\\. \n*Required*: No \n*Type*: [Definition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-definition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Definition", "type": "object" }, "DefinitionS3Location": { - "$ref": "#/definitions/AWS::StepFunctions::StateMachine.S3Location" + "$ref": "#/definitions/AWS::StepFunctions::StateMachine.S3Location", + "markdownDescription": "The name of the S3 bucket where the state machine definition is stored\\. The state machine definition must be a JSON or YAML file\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefinitionS3Location" }, "DefinitionString": { + "markdownDescription": "The Amazon States Language definition of the state machine\\. The state machine definition must be in JSON\\. See [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefinitionString", "type": "string" }, "DefinitionSubstitutions": { "additionalProperties": true, + "markdownDescription": "A map \\(string to string\\) that specifies the mappings for placeholder variables in the state machine definition\\. This enables the customer to inject values obtained at runtime, for example from intrinsic functions, in the state machine definition\\. Variables can be template parameter names, resource logical IDs, resource attributes, or a variable in a key\\-value map\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "object" } }, + "title": "DefinitionSubstitutions", "type": "object" }, "LoggingConfiguration": { - "$ref": "#/definitions/AWS::StepFunctions::StateMachine.LoggingConfiguration" + "$ref": "#/definitions/AWS::StepFunctions::StateMachine.LoggingConfiguration", + "markdownDescription": "Defines what execution history events are logged and where they are logged\\. \nBy default, the `level` is set to `OFF`\\. For more information see [Log Levels](https://docs.aws.amazon.com/step-functions/latest/dg/cloudwatch-log-level.html) in the AWS Step Functions User Guide\\.\n*Required*: No \n*Type*: [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-loggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingConfiguration" }, "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role to use for this state machine\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", "type": "string" }, "StateMachineName": { + "markdownDescription": "The name of the state machine\\. \nA name must *not* contain: \n+ white space\n+ brackets `< > { } [ ]` \n+ wildcard characters `? *` \n+ special characters `\" # % \\ ^ | ~ ` $ & , ; : /` \n+ control characters \\(`U+0000-001F`, `U+007F-009F`\\)\nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StateMachineName", "type": "string" }, "StateMachineType": { + "markdownDescription": "Determines whether a `STANDARD` or `EXPRESS` state machine is created\\. The default is `STANDARD`\\. You cannot update the `type` of a state machine once it has been created\\. For more information on `STANDARD` and `EXPRESS` workflows, see [Standard Versus Express Workflows](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html) in the AWS Step Functions Developer Guide\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StateMachineType", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/AWS::StepFunctions::StateMachine.TagsEntry" }, + "markdownDescription": "The list of tags to add to a resource\\. \nTags may only contain Unicode letters, digits, white space, or these symbols: `_ . : / = + - @`\\. \n*Required*: No \n*Type*: List of [TagsEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-tagsentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TracingConfiguration": { - "$ref": "#/definitions/AWS::StepFunctions::StateMachine.TracingConfiguration" + "$ref": "#/definitions/AWS::StepFunctions::StateMachine.TracingConfiguration", + "markdownDescription": "Selects whether or not the state machine's AWS X\\-Ray tracing is enabled\\. \n*Required*: No \n*Type*: [TracingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-tracingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TracingConfiguration" } }, "required": [ @@ -146025,6 +178203,8 @@ "additionalProperties": false, "properties": { "LogGroupArn": { + "markdownDescription": "The ARN of the the CloudWatch log group to which you want your logs emitted to\\. The ARN must end with `:*` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroupArn", "type": "string" } }, @@ -146034,7 +178214,9 @@ "additionalProperties": false, "properties": { "CloudWatchLogsLogGroup": { - "$ref": "#/definitions/AWS::StepFunctions::StateMachine.CloudWatchLogsLogGroup" + "$ref": "#/definitions/AWS::StepFunctions::StateMachine.CloudWatchLogsLogGroup", + "markdownDescription": "An object describing a CloudWatch log group\\. For more information, see [AWS::Logs::LogGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html) in the AWS CloudFormation User Guide\\. \n*Required*: No \n*Type*: [CloudWatchLogsLogGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-cloudwatchlogsloggroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogsLogGroup" } }, "type": "object" @@ -146046,12 +178228,18 @@ "items": { "$ref": "#/definitions/AWS::StepFunctions::StateMachine.LogDestination" }, + "markdownDescription": "An array of objects that describes where your execution history events will be logged\\. Limited to size 1\\. Required, if your log level is not set to `OFF`\\. \n*Required*: No \n*Type*: List of [LogDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-logdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destinations", "type": "array" }, "IncludeExecutionData": { + "markdownDescription": "Determines whether execution data is included in your log\\. When set to `false`, data is excluded\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeExecutionData", "type": "boolean" }, "Level": { + "markdownDescription": "Defines which category of execution history events are logged\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Level", "type": "string" } }, @@ -146061,12 +178249,18 @@ "additionalProperties": false, "properties": { "Bucket": { + "markdownDescription": "The name of the S3 bucket where the state machine definition JSON or YAML file is stored\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", "type": "string" }, "Key": { + "markdownDescription": "The name of the state machine definition file \\(Amazon S3 object name\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Version": { + "markdownDescription": "For versioning\\-enabled buckets, a specific version of the state machine definition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -146080,9 +178274,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The `key` for a key\\-value pair in a tag entry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Value": { + "markdownDescription": "The `value` for a key\\-value pair in a tag entry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -146096,6 +178294,8 @@ "additionalProperties": false, "properties": { "Enabled": { + "markdownDescription": "When set to `true`, X\\-Ray tracing is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", "type": "boolean" } }, @@ -146359,52 +178559,80 @@ "additionalProperties": false, "properties": { "ArtifactConfig": { - "$ref": "#/definitions/AWS::Synthetics::Canary.ArtifactConfig" + "$ref": "#/definitions/AWS::Synthetics::Canary.ArtifactConfig", + "markdownDescription": "A structure that contains the configuration for canary artifacts, including the encryption\\-at\\-rest settings for artifacts that the canary uploads to Amazon S3\\. \n*Required*: No \n*Type*: [ArtifactConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-artifactconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArtifactConfig" }, "ArtifactS3Location": { + "markdownDescription": "The location in Amazon S3 where Synthetics stores artifacts from the runs of this canary\\. Artifacts include the log file, screenshots, and HAR files\\. Specify the full location path, including `s3://` at the beginning of the path\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArtifactS3Location", "type": "string" }, "Code": { - "$ref": "#/definitions/AWS::Synthetics::Canary.Code" + "$ref": "#/definitions/AWS::Synthetics::Canary.Code", + "markdownDescription": "Use this structure to input your script code for the canary\\. This structure contains the Lambda handler with the location where the canary should start running the script\\. If the script is stored in an S3 bucket, the bucket name, key, and version are also included\\. If the script is passed into the canary directly, the script code is contained in the value of `Script`\\. \n*Required*: Yes \n*Type*: [Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-code.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Code" }, "DeleteLambdaResourcesOnCanaryDeletion": { "type": "boolean" }, "ExecutionRoleArn": { + "markdownDescription": "The ARN of the IAM role to be used to run the canary\\. This role must already exist, and must include `lambda.amazonaws.com` as a principal in the trust policy\\. The role must also have the following permissions: \n+ `s3:PutObject` \n+ `s3:GetBucketLocation` \n+ `s3:ListAllMyBuckets` \n+ `cloudwatch:PutMetricData` \n+ `logs:CreateLogGroup` \n+ `logs:CreateLogStream` \n+ `logs:PutLogEvents` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionRoleArn", "type": "string" }, "FailureRetentionPeriod": { + "markdownDescription": "The number of days to retain data about failed runs of this canary\\. If you omit this field, the default of 31 days is used\\. The valid range is 1 to 455 days\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailureRetentionPeriod", "type": "number" }, "Name": { + "markdownDescription": "The name for this canary\\. Be sure to give it a descriptive name that distinguishes it from other canaries in your account\\. \nDo not include secrets or proprietary information in your canary names\\. The canary name makes up part of the canary ARN, and the ARN is included in outbound calls over the internet\\. For more information, see [Security Considerations for Synthetics Canaries](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/servicelens_canaries_security.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `21` \n*Pattern*: `^[0-9a-z_\\-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RunConfig": { - "$ref": "#/definitions/AWS::Synthetics::Canary.RunConfig" + "$ref": "#/definitions/AWS::Synthetics::Canary.RunConfig", + "markdownDescription": "A structure that contains input information for a canary run\\. If you omit this structure, the frequency of the canary is used as canary's timeout value, up to a maximum of 900 seconds\\. \n*Required*: No \n*Type*: [RunConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-runconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RunConfig" }, "RuntimeVersion": { + "markdownDescription": "Specifies the runtime version to use for the canary\\. For more information about runtime versions, see [ Canary Runtime Versions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuntimeVersion", "type": "string" }, "Schedule": { - "$ref": "#/definitions/AWS::Synthetics::Canary.Schedule" + "$ref": "#/definitions/AWS::Synthetics::Canary.Schedule", + "markdownDescription": "A structure that contains information about how often the canary is to run, and when these runs are to stop\\. \n*Required*: Yes \n*Type*: [Schedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-schedule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule" }, "StartCanaryAfterCreation": { + "markdownDescription": "Specify TRUE to have the canary start making runs immediately after it is created\\. \nA canary that you create using CloudFormation can't be used to monitor the CloudFormation stack that creates the canary or to roll back that stack if there is a failure\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartCanaryAfterCreation", "type": "boolean" }, "SuccessRetentionPeriod": { + "markdownDescription": "The number of days to retain data about successful runs of this canary\\. If you omit this field, the default of 31 days is used\\. The valid range is 1 to 455 days\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuccessRetentionPeriod", "type": "number" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The list of key\\-value pairs that are associated with the canary\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VPCConfig": { - "$ref": "#/definitions/AWS::Synthetics::Canary.VPCConfig" + "$ref": "#/definitions/AWS::Synthetics::Canary.VPCConfig", + "markdownDescription": "If this canary is to test an endpoint in a VPC, this structure contains information about the subnet and security groups of the VPC endpoint\\. For more information, see [ Running a Canary in a VPC](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_VPC.html)\\. \n*Required*: No \n*Type*: [VPCConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-vpcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VPCConfig" }, "VisualReference": { - "$ref": "#/definitions/AWS::Synthetics::Canary.VisualReference" + "$ref": "#/definitions/AWS::Synthetics::Canary.VisualReference", + "markdownDescription": "If this canary performs visual monitoring by comparing screenshots, this structure contains the ID of the canary run to use as the baseline for screenshots, and the coordinates of any parts of the screen to ignore during the visual monitoring comparison\\. \n*Required*: No \n*Type*: [VisualReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-visualreference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VisualReference" } }, "required": [ @@ -146443,7 +178671,9 @@ "additionalProperties": false, "properties": { "S3Encryption": { - "$ref": "#/definitions/AWS::Synthetics::Canary.S3Encryption" + "$ref": "#/definitions/AWS::Synthetics::Canary.S3Encryption", + "markdownDescription": "A structure that contains the configuration of the encryption\\-at\\-rest settings for artifacts that the canary uploads to Amazon S3\\. Artifact encryption functionality is available only for canaries that use Synthetics runtime version syn\\-nodejs\\-puppeteer\\-3\\.3 or later\\. For more information, see [Encrypting canary artifacts](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_artifact_encryption.html)\\. \n*Required*: No \n*Type*: [S3Encryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-s3encryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Encryption" } }, "type": "object" @@ -146455,9 +178685,13 @@ "items": { "type": "string" }, + "markdownDescription": "Coordinates that define the part of a screen to ignore during screenshot comparisons\\. To obtain the coordinates to use here, use the CloudWatch Logs console to draw the boundaries on the screen\\. For more information, see \\{LINK\\} \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IgnoreCoordinates", "type": "array" }, "ScreenshotName": { + "markdownDescription": "The name of the screenshot\\. This is generated the first time the canary is run after the `UpdateCanary` operation that specified for this canary to perform visual monitoring\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScreenshotName", "type": "string" } }, @@ -146470,18 +178704,28 @@ "additionalProperties": false, "properties": { "Handler": { + "markdownDescription": "The entry point to use for the source code when running the canary\\. For canaries that use the `syn-python-selenium-1.0` runtime or a `syn-nodejs.puppeteer` runtime earlier than `syn-nodejs.puppeteer-3.4`, the handler must be specified as ` fileName.handler`\\. For `syn-python-selenium-1.1`, `syn-nodejs.puppeteer-3.4`, and later runtimes, the handler can be specified as ` fileName.functionName `, or you can specify a folder where canary scripts reside as ` folder/fileName.functionName `\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^([0-9a-zA-Z_-]+\\/)*[0-9A-Za-z_\\\\-]+\\.[A-Za-z_][A-Za-z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Handler", "type": "string" }, "S3Bucket": { + "markdownDescription": "If your canary script is located in S3, specify the bucket name here\\. The bucket must already exist\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Bucket", "type": "string" }, "S3Key": { + "markdownDescription": "The S3 key of your script\\. For more information, see [Working with Amazon S3 Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingObjects.html)\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Key", "type": "string" }, "S3ObjectVersion": { + "markdownDescription": "The S3 version ID of your script\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3ObjectVersion", "type": "string" }, "Script": { + "markdownDescription": "If you input your canary script directly into the canary instead of referring to an S3 location, the value of this parameter is the script in plain text\\. It can be up to 5 MB\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Script", "type": "string" } }, @@ -146494,21 +178738,29 @@ "additionalProperties": false, "properties": { "ActiveTracing": { + "markdownDescription": "Specifies whether this canary is to use active AWS X\\-Ray tracing when it runs\\. Active tracing enables this canary run to be displayed in the ServiceLens and X\\-Ray service maps even if the canary does not hit an endpoint that has X\\-Ray tracing enabled\\. Using X\\-Ray tracing incurs charges\\. For more information, see [Canaries and X\\-Ray tracing](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_tracing.html)\\. \n You can enable active tracing only for canaries that use version `syn-nodejs-2.0` or later for their canary runtime\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActiveTracing", "type": "boolean" }, "EnvironmentVariables": { "additionalProperties": true, + "markdownDescription": "Specifies the keys and values to use for any environment variables used in the canary script\\. Use the following format: \n\\{ \"key1\" : \"value1\", \"key2\" : \"value2\", \\.\\.\\.\\} \nKeys must start with a letter and be at least two characters\\. The total size of your environment variables cannot exceed 4 KB\\. You can't specify any Lambda reserved environment variables as the keys for your environment variables\\. For more information about reserved keys, see [ Runtime environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime)\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "EnvironmentVariables", "type": "object" }, "MemoryInMB": { + "markdownDescription": "The maximum amount of memory that the canary can use while running\\. This value must be a multiple of 64\\. The range is 960 to 3008\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `960` \n*Maximum*: `3008` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MemoryInMB", "type": "number" }, "TimeoutInSeconds": { + "markdownDescription": "How long the canary is allowed to run before it must stop\\. You can't set this time to be longer than the frequency of the runs of this canary\\. \nIf you omit this field, the frequency of the canary is used as this value, up to a maximum of 900 seconds\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `3` \n*Maximum*: `840` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutInSeconds", "type": "number" } }, @@ -146518,9 +178770,13 @@ "additionalProperties": false, "properties": { "EncryptionMode": { + "markdownDescription": "The encryption method to use for artifacts created by this canary\\. Specify `SSE_S3` to use server\\-side encryption \\(SSE\\) with an Amazon S3\\-managed key\\. Specify `SSE-KMS` to use server\\-side encryption with a customer\\-managed AWS KMS key\\. \nIf you omit this parameter, an AWS\\-managed AWS KMS key is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionMode", "type": "string" }, "KmsKeyArn": { + "markdownDescription": "The ARN of the customer\\-managed AWS KMS key to use, if you specify `SSE-KMS` for `EncryptionMode` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyArn", "type": "string" } }, @@ -146530,9 +178786,13 @@ "additionalProperties": false, "properties": { "DurationInSeconds": { + "markdownDescription": "How long, in seconds, for the canary to continue making regular runs according to the schedule in the `Expression` value\\. If you specify 0, the canary continues making runs until you stop it\\. If you omit this field, the default of 0 is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DurationInSeconds", "type": "string" }, "Expression": { + "markdownDescription": "A `rate` https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/expression.html or a `cron` https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/expression.html that defines how often the canary is to run\\. \nFor a rate https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/expression.html, The syntax is `rate(number unit)`\\. *unit* can be `minute`, `minutes`, or `hour`\\. \nFor example, `rate(1 minute)` runs the canary once a minute, `rate(10 minutes)` runs it once every 10 minutes, and `rate(1 hour)` runs it once every hour\\. You can specify a frequency between `rate(1 minute)` and `rate(1 hour)`\\. \nSpecifying `rate(0 minute)` or `rate(0 hour)` is a special value that causes the canary to run only once when it is started\\. \nUse `cron(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/expression.html)` to specify a cron https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/expression.html\\. You can't schedule a canary to wait for more than a year before running\\. For information about the syntax for cron https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/expression.htmls, see [ Scheduling canary runs using cron](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_cron.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Expression", "type": "string" } }, @@ -146548,15 +178808,21 @@ "items": { "type": "string" }, + "markdownDescription": "The IDs of the security groups for this canary\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "The IDs of the subnets where this canary is to run\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `16` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" }, "VpcId": { + "markdownDescription": "The ID of the VPC where this canary is to run\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcId", "type": "string" } }, @@ -146570,12 +178836,16 @@ "additionalProperties": false, "properties": { "BaseCanaryRunId": { + "markdownDescription": "Specifies which canary run to use the screenshots from as the baseline for future visual monitoring with this canary\\. Valid values are `nextrun` to use the screenshots from the next run after this update is made, `lastrun` to use the screenshots from the most recent run before this update was made, or the value of `Id` in the [ CanaryRun](https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_CanaryRun.html) from any past run of this canary\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaseCanaryRunId", "type": "string" }, "BaseScreenshots": { "items": { "$ref": "#/definitions/AWS::Synthetics::Canary.BaseScreenshot" }, + "markdownDescription": "An array of screenshots that are used as the baseline for comparisons during visual monitoring\\. \n*Required*: No \n*Type*: List of [BaseScreenshot](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-basescreenshot.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaseScreenshots", "type": "array" } }, @@ -146697,15 +178967,21 @@ "additionalProperties": false, "properties": { "DatabaseName": { + "markdownDescription": "The name of the Timestream database\\. \n*Length Constraints*: Minimum length of 3 bytes\\. Maximum length of 256 bytes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatabaseName", "type": "string" }, "KmsKeyId": { + "markdownDescription": "The identifier of the AWS KMS key used to encrypt the data stored in the database\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to add to the database\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -146767,37 +179043,57 @@ "additionalProperties": false, "properties": { "ClientToken": { + "markdownDescription": "Using a ClientToken makes the call to CreateScheduledQuery idempotent, in other words, making the same request repeatedly will produce the same result\\. Making multiple identical CreateScheduledQuery requests has the same effect as making a single request\\. \n+ If CreateScheduledQuery is called without a `ClientToken`, the Query SDK generates a `ClientToken` on your behalf\\.\n+ After 8 hours, any request with the same `ClientToken` is treated as a new request\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientToken", "type": "string" }, "ErrorReportConfiguration": { - "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.ErrorReportConfiguration" + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.ErrorReportConfiguration", + "markdownDescription": "Configuration for error reporting\\. Error reports will be generated when a problem is encountered when writing the query results\\. \n*Required*: Yes \n*Type*: [ErrorReportConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-errorreportconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ErrorReportConfiguration" }, "KmsKeyId": { + "markdownDescription": "The Amazon KMS key used to encrypt the scheduled query resource, at\\-rest\\. If the Amazon KMS key is not specified, the scheduled query resource will be encrypted with a Timestream owned Amazon KMS key\\. To specify a KMS key, use the key ID, key ARN, alias name, or alias ARN\\. When using an alias name, prefix the name with *alias/* \nIf ErrorReportConfiguration uses `SSE_KMS` as encryption type, the same KmsKeyId is used to encrypt the error report at rest\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" }, "NotificationConfiguration": { - "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.NotificationConfiguration" + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.NotificationConfiguration", + "markdownDescription": "Notification configuration for the scheduled query\\. A notification is sent by Timestream when a query run finishes, when the state is updated or when you delete it\\. \n*Required*: Yes \n*Type*: [NotificationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-notificationconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NotificationConfiguration" }, "QueryString": { + "markdownDescription": "The query string to run\\. Parameter names can be specified in the query string `@` character followed by an identifier\\. The named Parameter `@scheduled_runtime` is reserved and can be used in the query to get the time at which the query is scheduled to run\\. \nThe timestamp calculated according to the ScheduleConfiguration parameter, will be the value of `@scheduled_runtime` paramater for each query run\\. For example, consider an instance of a scheduled query executing on 2021\\-12\\-01 00:00:00\\. For this instance, the `@scheduled_runtime` parameter is initialized to the timestamp 2021\\-12\\-01 00:00:00 when invoking the query\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "QueryString", "type": "string" }, "ScheduleConfiguration": { - "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.ScheduleConfiguration" + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.ScheduleConfiguration", + "markdownDescription": "Schedule configuration\\. \n*Required*: Yes \n*Type*: [ScheduleConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-scheduleconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScheduleConfiguration" }, "ScheduledQueryExecutionRoleArn": { + "markdownDescription": "The ARN for the IAM role that Timestream will assume when running the scheduled query\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScheduledQueryExecutionRoleArn", "type": "string" }, "ScheduledQueryName": { + "markdownDescription": "A name for the query\\. Scheduled query names must be unique within each Region\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScheduledQueryName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A list of key\\-value pairs to label the scheduled query\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TargetConfiguration": { - "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.TargetConfiguration" + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.TargetConfiguration", + "markdownDescription": "Scheduled query target store configuration\\. \n*Required*: No \n*Type*: [TargetConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-targetconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetConfiguration" } }, "required": [ @@ -146834,9 +179130,13 @@ "additionalProperties": false, "properties": { "DimensionValueType": { + "markdownDescription": "Type for the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DimensionValueType", "type": "string" }, "Name": { + "markdownDescription": "Column name from query result\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" } }, @@ -146850,7 +179150,9 @@ "additionalProperties": false, "properties": { "S3Configuration": { - "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.S3Configuration" + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.S3Configuration", + "markdownDescription": "The S3 configuration for the error reports\\. \n*Required*: Yes \n*Type*: [S3Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-s3configuration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Configuration" } }, "required": [ @@ -146862,21 +179164,31 @@ "additionalProperties": false, "properties": { "MeasureName": { + "markdownDescription": "Refers to the value of measure\\_name in a result row\\. This field is required if MeasureNameColumn is provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeasureName", "type": "string" }, "MeasureValueType": { + "markdownDescription": "Type of the value that is to be read from sourceColumn\\. If the mapping is for MULTI, use MeasureValueType\\.MULTI\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeasureValueType", "type": "string" }, "MultiMeasureAttributeMappings": { "items": { "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.MultiMeasureAttributeMapping" }, + "markdownDescription": "Required when measureValueType is MULTI\\. Attribute mappings for MULTI value measures\\. \n*Required*: No \n*Type*: List of [MultiMeasureAttributeMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-multimeasureattributemapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MultiMeasureAttributeMappings", "type": "array" }, "SourceColumn": { + "markdownDescription": "This field refers to the source column from which measure\\-value is to be read for result materialization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceColumn", "type": "string" }, "TargetMeasureName": { + "markdownDescription": "Target measure name to be used\\. If not provided, the target measure name by default would be measure\\-name if provided, or sourceColumn otherwise\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetMeasureName", "type": "string" } }, @@ -146889,12 +179201,18 @@ "additionalProperties": false, "properties": { "MeasureValueType": { + "markdownDescription": "Type of the attribute to be read from the source column\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeasureValueType", "type": "string" }, "SourceColumn": { + "markdownDescription": "Source column from where the attribute value is to be read\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceColumn", "type": "string" }, "TargetMultiMeasureAttributeName": { + "markdownDescription": "Custom name to be used for attribute name in derived table\\. If not provided, source column name would be used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetMultiMeasureAttributeName", "type": "string" } }, @@ -146911,9 +179229,13 @@ "items": { "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.MultiMeasureAttributeMapping" }, + "markdownDescription": "Required\\. Attribute mappings to be used for mapping query results to ingest data for multi\\-measure attributes\\. \n*Required*: Yes \n*Type*: List of [MultiMeasureAttributeMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-multimeasureattributemapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MultiMeasureAttributeMappings", "type": "array" }, "TargetMultiMeasureName": { + "markdownDescription": "The name of the target multi\\-measure name in the derived table\\. This input is required when measureNameColumn is not provided\\. If MeasureNameColumn is provided, then value from that column will be used as multi\\-measure name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetMultiMeasureName", "type": "string" } }, @@ -146926,7 +179248,9 @@ "additionalProperties": false, "properties": { "SnsConfiguration": { - "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.SnsConfiguration" + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.SnsConfiguration", + "markdownDescription": "Details on SNS configuration\\. \n*Required*: Yes \n*Type*: [SnsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-snsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnsConfiguration" } }, "required": [ @@ -146938,12 +179262,18 @@ "additionalProperties": false, "properties": { "BucketName": { + "markdownDescription": "Name of the S3 bucket under which error reports will be created\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketName", "type": "string" }, "EncryptionOption": { + "markdownDescription": "Encryption at rest options for the error reports\\. If no encryption option is specified, Timestream will choose SSE\\_S3 as default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `SSE_KMS | SSE_S3` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncryptionOption", "type": "string" }, "ObjectKeyPrefix": { + "markdownDescription": "Prefix for the error report key\\. Timestream by default adds the following prefix to the error report path\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `928` \n*Pattern*: `[a-zA-Z0-9|!\\-_*'\\(\\)]([a-zA-Z0-9]|[!\\-_*'\\(\\)\\/.])+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ObjectKeyPrefix", "type": "string" } }, @@ -146956,6 +179286,8 @@ "additionalProperties": false, "properties": { "ScheduleExpression": { + "markdownDescription": "An expression that denotes when to trigger the scheduled query run\\. This can be a cron expression or a rate expression\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScheduleExpression", "type": "string" } }, @@ -146968,6 +179300,8 @@ "additionalProperties": false, "properties": { "TopicArn": { + "markdownDescription": "SNS topic ARN that the scheduled query status notifications will be sent to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TopicArn", "type": "string" } }, @@ -146980,7 +179314,9 @@ "additionalProperties": false, "properties": { "TimestreamConfiguration": { - "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.TimestreamConfiguration" + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.TimestreamConfiguration", + "markdownDescription": "Configuration needed to write data into the Timestream database and table\\. \n*Required*: Yes \n*Type*: [TimestreamConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-timestreamconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TimestreamConfiguration" } }, "required": [ @@ -146992,30 +179328,44 @@ "additionalProperties": false, "properties": { "DatabaseName": { + "markdownDescription": "Name of Timestream database to which the query result will be written\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatabaseName", "type": "string" }, "DimensionMappings": { "items": { "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.DimensionMapping" }, + "markdownDescription": "This is to allow mapping column\\(s\\) from the query result to the dimension in the destination table\\. \n*Required*: Yes \n*Type*: List of [DimensionMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-dimensionmapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DimensionMappings", "type": "array" }, "MeasureNameColumn": { + "markdownDescription": "Name of the measure column\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeasureNameColumn", "type": "string" }, "MixedMeasureMappings": { "items": { "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.MixedMeasureMapping" }, + "markdownDescription": "Specifies how to map measures to multi\\-measure records\\. \n*Required*: No \n*Type*: List of [MixedMeasureMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-mixedmeasuremapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MixedMeasureMappings", "type": "array" }, "MultiMeasureMappings": { - "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.MultiMeasureMappings" + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.MultiMeasureMappings", + "markdownDescription": "Multi\\-measure mappings\\. \n*Required*: No \n*Type*: [MultiMeasureMappings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-multimeasuremappings.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MultiMeasureMappings" }, "TableName": { + "markdownDescription": "Name of Timestream table that the query result will be written to\\. The table should be within the same database that is provided in Timestream configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TableName", "type": "string" }, "TimeColumn": { + "markdownDescription": "Column from query result that should be used as the time column in destination table\\. Column type for this should be TIMESTAMP\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TimeColumn", "type": "string" } }, @@ -147063,21 +179413,31 @@ "additionalProperties": false, "properties": { "DatabaseName": { + "markdownDescription": "The name of the Timestream database that contains this table\\. \n*Length Constraints*: Minimum length of 3 bytes\\. Maximum length of 256 bytes\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatabaseName", "type": "string" }, "MagneticStoreWriteProperties": { - "$ref": "#/definitions/AWS::Timestream::Table.MagneticStoreWriteProperties" + "$ref": "#/definitions/AWS::Timestream::Table.MagneticStoreWriteProperties", + "markdownDescription": "Contains properties to set on the table when enabling magnetic store writes\\. \nThis object has the following attributes: \n+ *EnableMagneticStoreWrites*: A `boolean` flag to enable magnetic store writes\\.\n+ *MagneticStoreRejectedDataLocation*: The location to write error reports for records rejected, asynchronously, during magnetic store writes\\. Only `S3Configuration` objects are allowed\\. The `S3Configuration` object has the following attributes: \n + *BucketName*: The name of the S3 bucket\\.\n + *EncryptionOption*: The encryption option for the S3 location\\. Valid values are S3 server\\-side encryption with an S3 managed key \\(`SSE_S3`\\) or AWS managed key \\(` SSE_KMS`\\)\\.\n + *KmsKeyId*: The AWS KMS key ID to use when encrypting with an AWS managed key\\.\n + *ObjectKeyPrefix*: The prefix to use option for the objects stored in S3\\.", + "title": "MagneticStoreWriteProperties" }, "RetentionProperties": { - "$ref": "#/definitions/AWS::Timestream::Table.RetentionProperties" + "$ref": "#/definitions/AWS::Timestream::Table.RetentionProperties", + "markdownDescription": "The retention duration for the memory store and magnetic store\\. This object has the following attributes: \n+ *MemoryStoreRetentionPeriodInHours*: Retention duration for memory store, in hours\\.\n+ *MagneticStoreRetentionPeriodInDays*: Retention duration for magnetic store, in days\\.\nBoth attributes are of type `string`\\. Both attributes are **required** when `RetentionProperties` is specified\\. \nSee the following examples: \n**JSON**", + "title": "RetentionProperties" }, "TableName": { + "markdownDescription": "The name of the Timestream table\\. \n*Length Constraints*: Minimum length of 3 bytes\\. Maximum length of 256 bytes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TableName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to add to the table \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -147577,52 +179937,80 @@ "additionalProperties": false, "properties": { "Certificate": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Certificate Manager \\(ACM\\) certificate\\. Required when `Protocols` is set to `FTPS`\\. \nTo request a new public certificate, see [Request a public certificate](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html) in the * AWS Certificate Manager User Guide*\\. \nTo import an existing certificate into ACM, see [Importing certificates into ACM](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html) in the * AWS Certificate Manager User Guide*\\. \nTo request a private certificate to use FTPS through private IP addresses, see [Request a private certificate](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html) in the * AWS Certificate Manager User Guide*\\. \nCertificates with the following cryptographic algorithms and key sizes are supported: \n+ 2048\\-bit RSA \\(RSA\\_2048\\)\n+ 4096\\-bit RSA \\(RSA\\_4096\\)\n+ Elliptic Prime Curve 256 bit \\(EC\\_prime256v1\\)\n+ Elliptic Prime Curve 384 bit \\(EC\\_secp384r1\\)\n+ Elliptic Prime Curve 521 bit \\(EC\\_secp521r1\\)\nThe certificate must be a valid SSL/TLS X\\.509 version 3 certificate with FQDN or IP address specified and information about the issuer\\.\n*Required*: No \n*Type*: String \n*Maximum*: `1600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate", "type": "string" }, "Domain": { + "markdownDescription": "Specifies the domain of the storage system that is used for file transfers\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `EFS | S3` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Domain", "type": "string" }, "EndpointDetails": { - "$ref": "#/definitions/AWS::Transfer::Server.EndpointDetails" + "$ref": "#/definitions/AWS::Transfer::Server.EndpointDetails", + "markdownDescription": "The virtual private cloud \\(VPC\\) endpoint settings that are configured for your server\\. When you host your endpoint within your VPC, you can make it accessible only to resources within your VPC, or you can attach Elastic IP addresses and make it accessible to clients over the internet\\. Your VPC's default security groups are automatically assigned to your endpoint\\. \n*Required*: No \n*Type*: [EndpointDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-endpointdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointDetails" }, "EndpointType": { + "markdownDescription": "The type of endpoint that you want your server to use\\. You can choose to make your server's endpoint publicly accessible \\(PUBLIC\\) or host it inside your VPC\\. With an endpoint that is hosted in a VPC, you can restrict access to your server and resources only within your VPC or choose to make it internet facing by attaching Elastic IP addresses directly to it\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PUBLIC | VPC | VPC_ENDPOINT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointType", "type": "string" }, "IdentityProviderDetails": { - "$ref": "#/definitions/AWS::Transfer::Server.IdentityProviderDetails" + "$ref": "#/definitions/AWS::Transfer::Server.IdentityProviderDetails", + "markdownDescription": "Required when `IdentityProviderType` is set to `AWS_DIRECTORY_SERVICE` or `API_GATEWAY`\\. Accepts an array containing all of the information required to use a directory in `AWS_DIRECTORY_SERVICE` or invoke a customer\\-supplied authentication API, including the API Gateway URL\\. Not required when `IdentityProviderType` is set to `SERVICE_MANAGED`\\. \n*Required*: No \n*Type*: [IdentityProviderDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-identityproviderdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentityProviderDetails" }, "IdentityProviderType": { + "markdownDescription": "Specifies the mode of authentication for a server\\. The default value is `SERVICE_MANAGED`, which allows you to store and access user credentials within the AWS Transfer Family service\\. \nUse `AWS_DIRECTORY_SERVICE` to provide access to Active Directory groups in AWS Managed Active Directory or Microsoft Active Directory in your on\\-premises environment or in AWS using AD Connectors\\. This option also requires you to provide a Directory ID using the `IdentityProviderDetails` parameter\\. \nUse the `API_GATEWAY` value to integrate with an identity provider of your choosing\\. The `API_GATEWAY` setting requires you to provide an API Gateway endpoint URL to call for authentication using the `IdentityProviderDetails` parameter\\. \nUse the `AWS_LAMBDA` value to directly use a Lambda function as your identity provider\\. If you choose this value, you must specify the ARN for the lambda function in the `Function` parameter for the `IdentityProviderDetails` data type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `API_GATEWAY | AWS_DIRECTORY_SERVICE | AWS_LAMBDA | SERVICE_MANAGED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IdentityProviderType", "type": "string" }, "LoggingRole": { + "markdownDescription": "Specifies the Amazon Resource Name \\(ARN\\) of the AWS Identity and Access Management \\(IAM\\) role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events\\. When set, user activity can be viewed in your CloudWatch logs\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:.*role/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingRole", "type": "string" }, "PostAuthenticationLoginBanner": { + "markdownDescription": "Specify a string to display when users connect to a server\\. This string is displayed after the user authenticates\\. \nThe SFTP protocol does not support post\\-authentication display banners\\.\n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[\\x09-\\x0D\\x20-\\x7E]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PostAuthenticationLoginBanner", "type": "string" }, "PreAuthenticationLoginBanner": { + "markdownDescription": "Specify a string to display when users connect to a server\\. This string is displayed before the user authenticates\\. For example, the following banner displays details about using the system\\. \n `This system is for the use of authorized users only. Individuals using this computer system without authority, or in excess of their authority, are subject to having all of their activities on this system monitored and recorded by system personnel.` \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[\\x09-\\x0D\\x20-\\x7E]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreAuthenticationLoginBanner", "type": "string" }, "ProtocolDetails": { - "$ref": "#/definitions/AWS::Transfer::Server.ProtocolDetails" + "$ref": "#/definitions/AWS::Transfer::Server.ProtocolDetails", + "markdownDescription": "The protocol settings that are configured for your server\\. \n Use the `PassiveIp` parameter to indicate passive mode \\(for FTP and FTPS protocols\\)\\. Enter a single dotted\\-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer\\. \nUse the `TlsSessionResumptionMode` parameter to determine whether or not your Transfer server resumes recent, negotiated sessions through a unique session ID\\. \n*Required*: No \n*Type*: [ProtocolDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-protocoldetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProtocolDetails" }, "Protocols": { "items": { "$ref": "#/definitions/AWS::Transfer::Server.Protocol" }, + "markdownDescription": "Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint\\. The available protocols are: \n+ `SFTP` \\(Secure Shell \\(SSH\\) File Transfer Protocol\\): File transfer over SSH\n+ `FTPS` \\(File Transfer Protocol Secure\\): File transfer with TLS encryption\n+ `FTP` \\(File Transfer Protocol\\): Unencrypted file transfer\nIf you select `FTPS`, you must choose a certificate stored in AWS Certificate Manager \\(ACM\\) which is used to identify your server when clients connect to it over FTPS\\. \nIf `Protocol` includes either `FTP` or `FTPS`, then the `EndpointType` must be `VPC` and the `IdentityProviderType` must be `AWS_DIRECTORY_SERVICE` or `API_GATEWAY`\\. \nIf `Protocol` includes `FTP`, then `AddressAllocationIds` cannot be associated\\. \nIf `Protocol` is set only to `SFTP`, the `EndpointType` can be set to `PUBLIC` and the `IdentityProviderType` can be set to `SERVICE_MANAGED`\\.\n*Required*: No \n*Type*: List of [Protocol](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-protocol.html) \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocols", "type": "array" }, "SecurityPolicyName": { + "markdownDescription": "Specifies the name of the security policy that is attached to the server\\. \n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Pattern*: `TransferSecurityPolicy-.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityPolicyName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Key\\-value pairs that can be used to group and search for servers\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "WorkflowDetails": { - "$ref": "#/definitions/AWS::Transfer::Server.WorkflowDetails" + "$ref": "#/definitions/AWS::Transfer::Server.WorkflowDetails", + "markdownDescription": "Specifies the workflow ID for the workflow to assign and the execution role used for executing the workflow\\. \n*Required*: No \n*Type*: [WorkflowDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-workflowdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WorkflowDetails" } }, "type": "object" @@ -147659,24 +180047,34 @@ "items": { "type": "string" }, + "markdownDescription": "A list of address allocation IDs that are required to attach an Elastic IP address to your server's endpoint\\. \nThis property can only be set when `EndpointType` is set to `VPC` and it is only valid in the `UpdateServer` API\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "AddressAllocationIds", "type": "array" }, "SecurityGroupIds": { "items": { "type": "string" }, + "markdownDescription": "A list of security groups IDs that are available to attach to your server's endpoint\\. \nThis property can only be set when `EndpointType` is set to `VPC`\\. \nYou can edit the `SecurityGroupIds` property in the [UpdateServer](https://docs.aws.amazon.com/transfer/latest/userguide/API_UpdateServer.html) API only if you are changing the `EndpointType` from `PUBLIC` or `VPC_ENDPOINT` to `VPC`\\. To change security groups associated with your server's VPC endpoint after creation, use the Amazon EC2 [ModifyVpcEndpoint](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpoint.html) API\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", "type": "array" }, "SubnetIds": { "items": { "type": "string" }, + "markdownDescription": "A list of subnet IDs that are required to host your server endpoint in your VPC\\. \nThis property can only be set when `EndpointType` is set to `VPC`\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", "type": "array" }, "VpcEndpointId": { + "markdownDescription": "The ID of the VPC endpoint\\. \nThis property can only be set when `EndpointType` is set to `VPC_ENDPOINT`\\.\n*Required*: No \n*Type*: String \n*Minimum*: `22` \n*Maximum*: `22` \n*Pattern*: `^vpce-[0-9a-f]{17}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcEndpointId", "type": "string" }, "VpcId": { + "markdownDescription": "The VPC ID of the virtual private cloud in which the server's endpoint will be hosted\\. \nThis property can only be set when `EndpointType` is set to `VPC`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcId", "type": "string" } }, @@ -147686,15 +180084,23 @@ "additionalProperties": false, "properties": { "DirectoryId": { + "markdownDescription": "The identifier of the AWS Directory Service directory that you want to stop sharing\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^d-[0-9a-f]{10}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DirectoryId", "type": "string" }, "Function": { + "markdownDescription": "The ARN for a lambda function to use for the Identity provider\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `170` \n*Pattern*: `^arn:[a-z-]+:lambda:.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Function", "type": "string" }, "InvocationRole": { + "markdownDescription": "Provides the type of `InvocationRole` used to authenticate the user account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:.*role/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InvocationRole", "type": "string" }, "Url": { + "markdownDescription": "Provides the location of the service endpoint used to authenticate users\\. \n*Required*: No \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", "type": "string" } }, @@ -147715,12 +180121,16 @@ "type": "array" }, "PassiveIp": { + "markdownDescription": "Indicates passive mode, for FTP and FTPS protocols\\. Enter a single dotted\\-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PassiveIp", "type": "string" }, "SetStatOption": { "type": "string" }, "TlsSessionResumptionMode": { + "markdownDescription": "A property used with Transfer servers that use the FTPS protocol\\. TLS Session Resumption provides a mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS session\\. `TlsSessionResumptionMode` determines whether or not the server resumes recent, negotiated sessions through a unique session ID\\. This property is available during `CreateServer` and `UpdateServer` calls\\. If a `TlsSessionResumptionMode` value is not specified during CreateServer, it is set to `ENFORCED` by default\\. \n+ `DISABLED`: the server does not process TLS session resumption client requests and creates a new TLS session for each request\\. \n+ `ENABLED`: the server processes and accepts clients that are performing TLS session resumption\\. The server doesn't reject client data connections that do not perform the TLS session resumption client processing\\.\n+ `ENFORCED`: the server processes and accepts clients that are performing TLS session resumption\\. The server rejects client data connections that do not perform the TLS session resumption client processing\\. Before you set the value to `ENFORCED`, test your clients\\.\n**Note** \nNot all FTPS clients perform TLS session resumption\\. So, if you choose to enforce TLS session resumption, you prevent any connections from FTPS clients that don't perform the protocol negotiation\\. To determine whether or not you can use the `ENFORCED` value, you need to test your clients\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED | ENFORCED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TlsSessionResumptionMode", "type": "string" } }, @@ -147730,9 +180140,13 @@ "additionalProperties": false, "properties": { "ExecutionRole": { + "markdownDescription": "Includes the necessary permissions for S3, EFS, and Lambda operations that Transfer can assume, so that all workflow steps can operate on the required resources \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:.*role/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionRole", "type": "string" }, "WorkflowId": { + "markdownDescription": "A unique identifier for the workflow\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `19` \n*Maximum*: `19` \n*Pattern*: `^w-([a-z0-9]{17})$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WorkflowId", "type": "string" } }, @@ -147755,6 +180169,8 @@ "items": { "$ref": "#/definitions/AWS::Transfer::Server.WorkflowDetail" }, + "markdownDescription": "A trigger that starts a workflow: the workflow begins to execute after a file is uploaded\\. \nTo remove an associated workflow from a server, you can provide an empty `OnUpload` object, as in the following example\\. \n `aws transfer update-server --server-id s-01234567890abcdef --workflow-details '{\"OnUpload\":[]}'` \n*Required*: Yes \n*Type*: List of [WorkflowDetail](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-workflowdetail.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnUpload", "type": "array" } }, @@ -147796,42 +180212,62 @@ "additionalProperties": false, "properties": { "HomeDirectory": { + "markdownDescription": "The landing directory \\(folder\\) for a user when they log in to the server using the client\\. \nA `HomeDirectory` example is `/bucket_name/home/mydirectory`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^$|/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HomeDirectory", "type": "string" }, "HomeDirectoryMappings": { "items": { "$ref": "#/definitions/AWS::Transfer::User.HomeDirectoryMapEntry" }, + "markdownDescription": "Logical directory mappings that specify what Amazon S3 paths and keys should be visible to your user and how you want to make them visible\\. You will need to specify the \"`Entry`\" and \"`Target`\" pair, where `Entry` shows how the path is made visible and `Target` is the actual Amazon S3 path\\. If you only specify a target, it will be displayed as is\\. You will need to also make sure that your IAM role provides access to paths in `Target`\\. The following is an example\\. \n `'[ { \"Entry\": \"/\", \"Target\": \"/bucket3/customized-reports/\" } ]'` \nIn most cases, you can use this value instead of the session policy to lock your user down to the designated home directory \\(\"chroot\"\\)\\. To do this, you can set `Entry` to '/' and set `Target` to the HomeDirectory parameter value\\. \nIf the target of a logical directory entry does not exist in Amazon S3, the entry will be ignored\\. As a workaround, you can use the Amazon S3 API to create 0 byte objects as place holders for your directory\\. If using the CLI, use the `s3api` call instead of `s3` so you can use the put\\-object operation\\. For example, you use the following: `AWS s3api put-object --bucket bucketname --key path/to/folder/`\\. Make sure that the end of the key name ends in a '/' for it to be considered a folder\\.\n*Required*: No \n*Type*: List of [HomeDirectoryMapEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-user-homedirectorymapentry.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HomeDirectoryMappings", "type": "array" }, "HomeDirectoryType": { + "markdownDescription": "The type of landing directory \\(folder\\) you want your users' home directory to be when they log into the server\\. If you set it to `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients\\. If you set it `LOGICAL`, you need to provide mappings in the `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS paths visible to your users\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `LOGICAL | PATH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HomeDirectoryType", "type": "string" }, "Policy": { + "markdownDescription": "A session policy for your user so you can use the same IAM role across multiple users\\. This policy restricts user access to portions of their Amazon S3 bucket\\. Variables that you can use inside this policy include `${Transfer:UserName}`, `${Transfer:HomeDirectory}`, and `${Transfer:HomeBucket}`\\. \nFor session policies, AWS Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name \\(ARN\\) of the policy\\. You save the policy as a JSON blob and pass it in the `Policy` argument\\. \nFor an example of a session policy, see [Example session policy](https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html)\\. \nFor more information, see [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) in the *AWS Security Token Service API Reference*\\.\n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policy", "type": "string" }, "PosixProfile": { - "$ref": "#/definitions/AWS::Transfer::User.PosixProfile" + "$ref": "#/definitions/AWS::Transfer::User.PosixProfile", + "markdownDescription": "Specifies the full POSIX identity, including user ID \\(`Uid`\\), group ID \\(`Gid`\\), and any secondary groups IDs \\(`SecondaryGids`\\), that controls your users' access to your Amazon Elastic File System \\(Amazon EFS\\) file systems\\. The POSIX permissions that are set on files and directories in your file system determine the level of access your users get when transferring files into and out of your Amazon EFS file systems\\. \n*Required*: No \n*Type*: [PosixProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-user-posixprofile.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PosixProfile" }, "Role": { + "markdownDescription": "Specifies the Amazon Resource Name \\(ARN\\) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS file system\\. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or EFS file system\\. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:.*role/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Role", "type": "string" }, "ServerId": { + "markdownDescription": "A system\\-assigned unique identifier for a server instance\\. This is the specific server that you added your user to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `19` \n*Maximum*: `19` \n*Pattern*: `^s-([0-9a-f]{17})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServerId", "type": "string" }, "SshPublicKeys": { "items": { "$ref": "#/definitions/AWS::Transfer::User.SshPublicKey" }, + "markdownDescription": "Specifies the public key portion of the Secure Shell \\(SSH\\) keys stored for the described user\\. \n*Required*: No \n*Type*: List of [SshPublicKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-user-sshpublickey.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SshPublicKeys", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Key\\-value pairs that can be used to group and search for users\\. Tags are metadata attached to users for any purpose\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "UserName": { + "markdownDescription": "A unique string that identifies a user and is associated with a `ServerId`\\. This user name must be a minimum of 3 and a maximum of 100 characters long\\. The following are valid characters: a\\-z, A\\-Z, 0\\-9, underscore '\\_', hyphen '\\-', period '\\.', and at sign '@'\\. The user name can't start with a hyphen, period, or at sign\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `100` \n*Pattern*: `^[\\w][\\w@.-]{2,99}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserName", "type": "string" } }, @@ -147867,9 +180303,13 @@ "additionalProperties": false, "properties": { "Entry": { + "markdownDescription": "Represents an entry for `HomeDirectoryMappings`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Entry", "type": "string" }, "Target": { + "markdownDescription": "Represents the map target that is used in a `HomeDirectorymapEntry`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target", "type": "string" } }, @@ -147883,15 +180323,21 @@ "additionalProperties": false, "properties": { "Gid": { + "markdownDescription": "The POSIX group ID used for all EFS operations by this user\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Gid", "type": "number" }, "SecondaryGids": { "items": { "type": "number" }, + "markdownDescription": "The secondary POSIX group IDs used for all EFS operations by this user\\. \n*Required*: No \n*Type*: List of Double \n*Maximum*: `16` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryGids", "type": "array" }, "Uid": { + "markdownDescription": "The POSIX user ID used for all EFS operations by this user\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Uid", "type": "number" } }, @@ -147942,24 +180388,32 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "Specifies the text description for the workflow\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^[\\w- ]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "OnExceptionSteps": { "items": { "$ref": "#/definitions/AWS::Transfer::Workflow.WorkflowStep" }, + "markdownDescription": "Specifies the steps \\(actions\\) to take if errors are encountered during execution of the workflow\\. \n*Required*: No \n*Type*: List of [WorkflowStep](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-workflow-workflowstep.html) \n*Maximum*: `8` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OnExceptionSteps", "type": "array" }, "Steps": { "items": { "$ref": "#/definitions/AWS::Transfer::Workflow.WorkflowStep" }, + "markdownDescription": "Specifies the details for the steps that are in the specified workflow\\. \n*Required*: Yes \n*Type*: List of [WorkflowStep](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-workflow-workflowstep.html) \n*Maximum*: `8` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Steps", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Key\\-value pairs that can be used to group and search for workflows\\. Tags are metadata attached to workflows for any purpose\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -147993,7 +180447,7 @@ "additionalProperties": false, "properties": { "DestinationFileLocation": { - "$ref": "#/definitions/AWS::Transfer::Workflow.InputFileLocation" + "$ref": "#/definitions/AWS::Transfer::Workflow.S3FileLocation" }, "Name": { "type": "string" @@ -148025,6 +180479,27 @@ }, "type": "object" }, + "AWS::Transfer::Workflow.DecryptStepDetails": { + "additionalProperties": false, + "properties": { + "DestinationFileLocation": { + "$ref": "#/definitions/AWS::Transfer::Workflow.InputFileLocation" + }, + "Name": { + "type": "string" + }, + "OverwriteExisting": { + "type": "string" + }, + "SourceFileLocation": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Transfer::Workflow.DeleteStepDetails": { "additionalProperties": false, "properties": { @@ -148037,7 +180512,31 @@ }, "type": "object" }, + "AWS::Transfer::Workflow.EfsInputFileLocation": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "type": "string" + }, + "Path": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Transfer::Workflow.InputFileLocation": { + "additionalProperties": false, + "properties": { + "EfsFileLocation": { + "$ref": "#/definitions/AWS::Transfer::Workflow.EfsInputFileLocation" + }, + "S3FileLocation": { + "$ref": "#/definitions/AWS::Transfer::Workflow.S3InputFileLocation" + } + }, + "type": "object" + }, + "AWS::Transfer::Workflow.S3FileLocation": { "additionalProperties": false, "properties": { "S3FileLocation": { @@ -148096,18 +180595,31 @@ "additionalProperties": false, "properties": { "CopyStepDetails": { - "$ref": "#/definitions/AWS::Transfer::Workflow.CopyStepDetails" + "$ref": "#/definitions/AWS::Transfer::Workflow.CopyStepDetails", + "markdownDescription": "Details for a step that performs a file copy\\. \n Consists of the following values: \n+ A description\n+ An S3 location for the destination of the file copy\\.\n+ A flag that indicates whether or not to overwrite an existing file of the same name\\. The default is `FALSE`\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CopyStepDetails" }, "CustomStepDetails": { - "$ref": "#/definitions/AWS::Transfer::Workflow.CustomStepDetails" + "$ref": "#/definitions/AWS::Transfer::Workflow.CustomStepDetails", + "markdownDescription": "Details for a step that invokes a lambda function\\. \n Consists of the lambda function name, target, and timeout \\(in seconds\\)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomStepDetails" + }, + "DecryptStepDetails": { + "$ref": "#/definitions/AWS::Transfer::Workflow.DecryptStepDetails" }, "DeleteStepDetails": { - "$ref": "#/definitions/AWS::Transfer::Workflow.DeleteStepDetails" + "$ref": "#/definitions/AWS::Transfer::Workflow.DeleteStepDetails", + "markdownDescription": "Details for a step that deletes the file\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeleteStepDetails" }, "TagStepDetails": { - "$ref": "#/definitions/AWS::Transfer::Workflow.TagStepDetails" + "$ref": "#/definitions/AWS::Transfer::Workflow.TagStepDetails", + "markdownDescription": "Details for a step that creates one or more tags\\. \nYou specify one or more tags: each tag contains a key/value pair\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TagStepDetails" }, "Type": { + "markdownDescription": "Currently, the following step types are supported\\. \n+ *Copy*: copy the file to another location\n+ *Custom*: custom step with a lambda target\n+ *Delete*: delete the file\n+ *Tag*: add a tag to the file\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -148242,9 +180754,13 @@ "items": { "$ref": "#/definitions/AWS::WAF::ByteMatchSet.ByteMatchTuple" }, + "markdownDescription": "Specifies the bytes \\(typically a string that corresponds with ASCII characters\\) that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings\\. \n*Required*: No \n*Type*: List of [ByteMatchTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ByteMatchTuples", "type": "array" }, "Name": { + "markdownDescription": "The name of the `ByteMatchSet`\\. You can't change `Name` after you create a `ByteMatchSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" } }, @@ -148278,18 +180794,28 @@ "additionalProperties": false, "properties": { "FieldToMatch": { - "$ref": "#/definitions/AWS::WAF::ByteMatchSet.FieldToMatch" + "$ref": "#/definitions/AWS::WAF::ByteMatchSet.FieldToMatch", + "markdownDescription": "The part of a web request that you want to inspect, such as a specified header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" }, "PositionalConstraint": { + "markdownDescription": "Within the portion of a web request that you want to search \\(for example, in the query string, if any\\), specify where you want AWS WAF to search\\. Valid values include the following: \n **CONTAINS** \nThe specified part of the web request must include the value of `TargetString`, but the location doesn't matter\\. \n **CONTAINS\\_WORD** \nThe specified part of the web request must include the value of `TargetString`, and `TargetString` must contain only alphanumeric characters or underscore \\(A\\-Z, a\\-z, 0\\-9, or \\_\\)\\. In addition, `TargetString` must be a word, which means one of the following: \n+ `TargetString` exactly matches the value of the specified part of the web request, such as the value of a header\\.\n+ `TargetString` is at the beginning of the specified part of the web request and is followed by a character other than an alphanumeric character or underscore \\(\\_\\), for example, `BadBot;`\\.\n+ `TargetString` is at the end of the specified part of the web request and is preceded by a character other than an alphanumeric character or underscore \\(\\_\\), for example, `;BadBot`\\.\n+ `TargetString` is in the middle of the specified part of the web request and is preceded and followed by characters other than alphanumeric characters or underscore \\(\\_\\), for example, `-BadBot;`\\.\n **EXACTLY** \nThe value of the specified part of the web request must exactly match the value of `TargetString`\\. \n **STARTS\\_WITH** \nThe value of `TargetString` must appear at the beginning of the specified part of the web request\\. \n **ENDS\\_WITH** \nThe value of `TargetString` must appear at the end of the specified part of the web request\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CONTAINS | CONTAINS_WORD | ENDS_WITH | EXACTLY | STARTS_WITH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PositionalConstraint", "type": "string" }, "TargetString": { + "markdownDescription": "The value that you want AWS WAF to search for\\. AWS WAF searches for the specified string in the part of web requests that you specified in `FieldToMatch`\\. The maximum length of the value is 50 bytes\\. \nYou must specify this property or the `TargetStringBase64` property\\. \nValid values depend on the values that you specified for `FieldToMatch`: \n+ `HEADER`: The value that you want AWS WAF to search for in the request header that you specified in `FieldToMatch`, for example, the value of the `User-Agent` or `Referer` header\\.\n+ `METHOD`: The HTTP method, which indicates the type of operation specified in the request\\. Amazon CloudFront supports the following methods: `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, and `PUT`\\.\n+ `QUERY_STRING`: The value that you want AWS WAF to search for in the query string, which is the part of a URL that appears after a `?` character\\.\n+ `URI`: The value that you want AWS WAF to search for in the part of a URL that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but instead of inspecting a single parameter, AWS WAF inspects all parameters within the query string for the value or regex pattern that you specify in `TargetString`\\.\nIf `TargetString` includes alphabetic characters A\\-Z and a\\-z, note that the value is case sensitive\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetString", "type": "string" }, "TargetStringBase64": { + "markdownDescription": "The base64\\-encoded value that AWS WAF searches for\\. AWS CloudFormation sends this value to AWS WAF without encoding it\\. \nYou must specify this property or the `TargetString` property\\. \nAWS WAF searches for this value in a specific part of web requests, which you define in the `FieldToMatch` property\\. \nValid values depend on the Type value in the `FieldToMatch` property\\. For example, for a `METHOD` type, you must specify HTTP methods such as `DELETE, GET, HEAD, OPTIONS, PATCH, POST`, and `PUT`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetStringBase64", "type": "string" }, "TextTransformation": { + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting it for a match\\. \nYou can only specify a single type of TextTransformation\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformation", "type": "string" } }, @@ -148304,9 +180830,13 @@ "additionalProperties": false, "properties": { "Data": { + "markdownDescription": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Data", "type": "string" }, "Type": { + "markdownDescription": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicated the type of operation that the request is asking the origin to perform\\. Amazon CloudFront supports the following methods: `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, and `PUT`\\.\n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\.\n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -148354,9 +180884,13 @@ "items": { "$ref": "#/definitions/AWS::WAF::IPSet.IPSetDescriptor" }, + "markdownDescription": "The IP address type \\(`IPV4` or `IPV6`\\) and the IP address range \\(in CIDR notation\\) that web requests originate from\\. If the `WebACL` is associated with an Amazon CloudFront distribution and the viewer did not use an HTTP proxy or a load balancer to send the request, this is the value of the c\\-ip field in the CloudFront access logs\\. \n*Required*: No \n*Type*: List of [IPSetDescriptor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-ipset-ipsetdescriptors.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IPSetDescriptors", "type": "array" }, "Name": { + "markdownDescription": "The name of the `IPSet`\\. You can't change the name of an `IPSet` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" } }, @@ -148390,9 +180924,13 @@ "additionalProperties": false, "properties": { "Type": { + "markdownDescription": "Specify `IPV4` or `IPV6`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `IPV4 | IPV6` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" }, "Value": { + "markdownDescription": "Specify an IPv4 address by using CIDR notation\\. For example: \n+ To configure AWS WAF to allow, block, or count requests that originated from the IP address 192\\.0\\.2\\.44, specify `192.0.2.44/32`\\.\n+ To configure AWS WAF to allow, block, or count requests that originated from IP addresses from 192\\.0\\.2\\.0 to 192\\.0\\.2\\.255, specify `192.0.2.0/24`\\.\nFor more information about CIDR notation, see the Wikipedia entry [Classless Inter\\-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\\. \nSpecify an IPv6 address by using CIDR notation\\. For example: \n+ To configure AWS WAF to allow, block, or count requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify `1111:0000:0000:0000:0000:0000:0000:0111/128`\\.\n+ To configure AWS WAF to allow, block, or count requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify `1111:0000:0000:0000:0000:0000:0000:0000/64`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -148438,15 +180976,21 @@ "additionalProperties": false, "properties": { "MetricName": { + "markdownDescription": "The name of the metrics for this `Rule`\\. The name can contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\), with maximum length 128 and minimum length one\\. It can't contain whitespace or metric names reserved for AWS WAF, including \"All\" and \"Default\\_Action\\.\" You can't change `MetricName` after you create the `Rule`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricName", "type": "string" }, "Name": { + "markdownDescription": "The friendly name or description for the `Rule`\\. You can't change the name of a `Rule` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Predicates": { "items": { "$ref": "#/definitions/AWS::WAF::Rule.Predicate" }, + "markdownDescription": "The `Predicates` object contains one `Predicate` element for each `ByteMatchSet`, `IPSet`, or `SqlInjectionMatchSet` object that you want to include in a `Rule`\\. \n*Required*: No \n*Type*: List of [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-rule-predicates.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Predicates", "type": "array" } }, @@ -148481,12 +181025,18 @@ "additionalProperties": false, "properties": { "DataId": { + "markdownDescription": "A unique identifier for a predicate in a `Rule`, such as `ByteMatchSetId` or `IPSetId`\\. The ID is returned by the corresponding `Create` or `List` command\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataId", "type": "string" }, "Negated": { + "markdownDescription": "Set `Negated` to `False` if you want AWS WAF to allow, block, or count requests based on the settings in the specified `ByteMatchSet`, `IPSet`, `SqlInjectionMatchSet`, `XssMatchSet`, `RegexMatchSet`, `GeoMatchSet`, or `SizeConstraintSet`\\. For example, if an `IPSet` includes the IP address `192.0.2.44`, AWS WAF will allow or block requests based on that IP address\\. \nSet `Negated` to `True` if you want AWS WAF to allow or block a request based on the negation of the settings in the `ByteMatchSet`, `IPSet`, `SqlInjectionMatchSet`, `XssMatchSet`, `RegexMatchSet`, `GeoMatchSet`, or `SizeConstraintSet`\\. For example, if an `IPSet` includes the IP address `192.0.2.44`, AWS WAF will allow, block, or count requests based on all IP addresses *except* `192.0.2.44`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Negated", "type": "boolean" }, "Type": { + "markdownDescription": "The type of predicate in a `Rule`, such as `ByteMatch` or `IPSet`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ByteMatch | GeoMatch | IPMatch | RegexMatch | SizeConstraint | SqlInjectionMatch | XssMatch` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -148533,12 +181083,16 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name, if any, of the `SizeConstraintSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "SizeConstraints": { "items": { "$ref": "#/definitions/AWS::WAF::SizeConstraintSet.SizeConstraint" }, + "markdownDescription": "The size constraint and the part of the web request to check\\. \n*Required*: Yes \n*Type*: List of [SizeConstraint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SizeConstraints", "type": "array" } }, @@ -148573,9 +181127,13 @@ "additionalProperties": false, "properties": { "Data": { + "markdownDescription": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Data", "type": "string" }, "Type": { + "markdownDescription": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicated the type of operation that the request is asking the origin to perform\\. Amazon CloudFront supports the following methods: `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, and `PUT`\\.\n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -148588,15 +181146,23 @@ "additionalProperties": false, "properties": { "ComparisonOperator": { + "markdownDescription": "The type of comparison you want AWS WAF to perform\\. AWS WAF uses this in combination with the provided `Size` and `FieldToMatch` to build an expression in the form of \"`Size` `ComparisonOperator` size in bytes of `FieldToMatch`\"\\. If that expression is true, the `SizeConstraint` is considered to match\\. \n **EQ**: Used to test if the `Size` is equal to the size of the `FieldToMatch` \n **NE**: Used to test if the `Size` is not equal to the size of the `FieldToMatch` \n **LE**: Used to test if the `Size` is less than or equal to the size of the `FieldToMatch` \n **LT**: Used to test if the `Size` is strictly less than the size of the `FieldToMatch` \n **GE**: Used to test if the `Size` is greater than or equal to the size of the `FieldToMatch` \n **GT**: Used to test if the `Size` is strictly greater than the size of the `FieldToMatch` \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EQ | GE | GT | LE | LT | NE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComparisonOperator", "type": "string" }, "FieldToMatch": { - "$ref": "#/definitions/AWS::WAF::SizeConstraintSet.FieldToMatch" + "$ref": "#/definitions/AWS::WAF::SizeConstraintSet.FieldToMatch", + "markdownDescription": "The part of a web request that you want to inspect, such as a specified header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" }, "Size": { + "markdownDescription": "The size in bytes that you want AWS WAF to compare against the size of the specified `FieldToMatch`\\. AWS WAF uses this in combination with `ComparisonOperator` and `FieldToMatch` to build an expression in the form of \"`Size` `ComparisonOperator` size in bytes of `FieldToMatch`\"\\. If that expression is true, the `SizeConstraint` is considered to match\\. \nValid values for size are 0 \\- 21474836480 bytes \\(0 \\- 20 GB\\)\\. \nIf you specify `URI` for the value of `Type`, the / in the URI path that you specify counts as one character\\. For example, the URI `/logo.jpg` is nine characters long\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Size", "type": "number" }, "TextTransformation": { + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting it for a match\\. \nYou can only specify a single type of TextTransformation\\. \nNote that if you choose `BODY` for the value of `Type`, you must choose `NONE` for `TextTransformation` because Amazon CloudFront forwards only the first 8192 bytes for inspection\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformation", "type": "string" } }, @@ -148644,12 +181210,16 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name, if any, of the `SqlInjectionMatchSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "SqlInjectionMatchTuples": { "items": { "$ref": "#/definitions/AWS::WAF::SqlInjectionMatchSet.SqlInjectionMatchTuple" }, + "markdownDescription": "Specifies the parts of web requests that you want to inspect for snippets of malicious SQL code\\. \n*Required*: No \n*Type*: List of [SqlInjectionMatchTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sqlinjectionmatchset-sqlinjectionmatchtuples.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SqlInjectionMatchTuples", "type": "array" } }, @@ -148683,9 +181253,13 @@ "additionalProperties": false, "properties": { "Data": { + "markdownDescription": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Data", "type": "string" }, "Type": { + "markdownDescription": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicated the type of operation that the request is asking the origin to perform\\. Amazon CloudFront supports the following methods: `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, and `PUT`\\.\n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -148698,9 +181272,13 @@ "additionalProperties": false, "properties": { "FieldToMatch": { - "$ref": "#/definitions/AWS::WAF::SqlInjectionMatchSet.FieldToMatch" + "$ref": "#/definitions/AWS::WAF::SqlInjectionMatchSet.FieldToMatch", + "markdownDescription": "The part of a web request that you want to inspect, such as a specified header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples-fieldtomatch-1.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" }, "TextTransformation": { + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting it for a match\\. \nYou can only specify a single type of TextTransformation\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformation", "type": "string" } }, @@ -148746,18 +181324,26 @@ "additionalProperties": false, "properties": { "DefaultAction": { - "$ref": "#/definitions/AWS::WAF::WebACL.WafAction" + "$ref": "#/definitions/AWS::WAF::WebACL.WafAction", + "markdownDescription": "The action to perform if none of the `Rules` contained in the `WebACL` match\\. The action is specified by the `WafAction` object\\. \n*Required*: Yes \n*Type*: [WafAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-webacl-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultAction" }, "MetricName": { + "markdownDescription": "The name of the metrics for this `WebACL`\\. The name can contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\), with maximum length 128 and minimum length one\\. It can't contain whitespace or metric names reserved for AWS WAF, including \"All\" and \"Default\\_Action\\.\" You can't change `MetricName` after you create the `WebACL`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricName", "type": "string" }, "Name": { + "markdownDescription": "A friendly name or description of the `WebACL`\\. You can't change the name of a `WebACL` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Rules": { "items": { "$ref": "#/definitions/AWS::WAF::WebACL.ActivatedRule" }, + "markdownDescription": "An array that contains the action for each `Rule` in a `WebACL`, the priority of the `Rule`, and the ID of the `Rule`\\. \n*Required*: No \n*Type*: List of [ActivatedRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-webacl-rules.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", "type": "array" } }, @@ -148793,12 +181379,18 @@ "additionalProperties": false, "properties": { "Action": { - "$ref": "#/definitions/AWS::WAF::WebACL.WafAction" + "$ref": "#/definitions/AWS::WAF::WebACL.WafAction", + "markdownDescription": "Specifies the action that Amazon CloudFront or AWS WAF takes when a web request matches the conditions in the `Rule`\\. Valid values for `Action` include the following: \n+ `ALLOW`: CloudFront responds with the requested object\\.\n+ `BLOCK`: CloudFront responds with an HTTP 403 \\(Forbidden\\) status code\\.\n+ `COUNT`: AWS WAF increments a counter of requests that match the conditions in the rule and then continues to inspect the web request based on the remaining rules in the web ACL\\. \n `ActivatedRule|OverrideAction` applies only when updating or adding a `RuleGroup` to a `WebACL`\\. In this case, you do not use `ActivatedRule|Action`\\. For all other update requests, `ActivatedRule|Action` is used instead of `ActivatedRule|OverrideAction`\\. \n*Required*: No \n*Type*: [WafAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-webacl-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" }, "Priority": { + "markdownDescription": "Specifies the order in which the `Rules` in a `WebACL` are evaluated\\. Rules with a lower value for `Priority` are evaluated before `Rules` with a higher value\\. The value must be a unique integer\\. If you add multiple `Rules` to a `WebACL`, the values don't need to be consecutive\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" }, "RuleId": { + "markdownDescription": "The `RuleId` for a `Rule`\\. You use `RuleId` to get more information about a `Rule`, update a `Rule`, insert a `Rule` into a `WebACL` or delete a one from a `WebACL`, or delete a `Rule` from AWS WAF\\. \n `RuleId` is returned by `CreateRule` and by `ListRules`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleId", "type": "string" } }, @@ -148812,6 +181404,8 @@ "additionalProperties": false, "properties": { "Type": { + "markdownDescription": "Specifies how you want AWS WAF to respond to requests that match the settings in a `Rule`\\. Valid settings include the following: \n+ `ALLOW`: AWS WAF allows requests\n+ `BLOCK`: AWS WAF blocks requests\n+ `COUNT`: AWS WAF increments a counter of the requests that match all of the conditions in the rule\\. AWS WAF then continues to inspect the web request based on the remaining rules in the web ACL\\. You can't specify `COUNT` for the default action for a `WebACL`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALLOW | BLOCK | COUNT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -148856,12 +181450,16 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name, if any, of the `XssMatchSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "XssMatchTuples": { "items": { "$ref": "#/definitions/AWS::WAF::XssMatchSet.XssMatchTuple" }, + "markdownDescription": "Specifies the parts of web requests that you want to inspect for cross\\-site scripting attacks\\. \n*Required*: Yes \n*Type*: List of [XssMatchTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-xssmatchset-xssmatchtuple.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "XssMatchTuples", "type": "array" } }, @@ -148896,9 +181494,13 @@ "additionalProperties": false, "properties": { "Data": { + "markdownDescription": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Data", "type": "string" }, "Type": { + "markdownDescription": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicated the type of operation that the request is asking the origin to perform\\. Amazon CloudFront supports the following methods: `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, and `PUT`\\.\n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -148911,9 +181513,13 @@ "additionalProperties": false, "properties": { "FieldToMatch": { - "$ref": "#/definitions/AWS::WAF::XssMatchSet.FieldToMatch" + "$ref": "#/definitions/AWS::WAF::XssMatchSet.FieldToMatch", + "markdownDescription": "The part of a web request that you want to inspect, such as a specified header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-xssmatchset-xssmatchtuple-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" }, "TextTransformation": { + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting it for a match\\. \nYou can only specify a single type of TextTransformation\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformation", "type": "string" } }, @@ -148962,9 +181568,13 @@ "items": { "$ref": "#/definitions/AWS::WAFRegional::ByteMatchSet.ByteMatchTuple" }, + "markdownDescription": "Specifies the bytes \\(typically a string that corresponds with ASCII characters\\) that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings\\. \n*Required*: No \n*Type*: List of [ByteMatchTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-bytematchset-bytematchtuple.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ByteMatchTuples", "type": "array" }, "Name": { + "markdownDescription": "A friendly name or description of the `ByteMatchSet`\\. You can't change `Name` after you create a `ByteMatchSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" } }, @@ -148998,18 +181608,28 @@ "additionalProperties": false, "properties": { "FieldToMatch": { - "$ref": "#/definitions/AWS::WAFRegional::ByteMatchSet.FieldToMatch" + "$ref": "#/definitions/AWS::WAFRegional::ByteMatchSet.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect, such as a specific header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-bytematchset-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" }, "PositionalConstraint": { + "markdownDescription": "Within the portion of a web request that you want to search \\(for example, in the query string, if any\\), specify where you want AWS WAF to search\\. Valid values include the following: \n **CONTAINS** \nThe specified part of the web request must include the value of `TargetString`, but the location doesn't matter\\. \n **CONTAINS\\_WORD** \nThe specified part of the web request must include the value of `TargetString`, and `TargetString` must contain only alphanumeric characters or underscore \\(A\\-Z, a\\-z, 0\\-9, or \\_\\)\\. In addition, `TargetString` must be a word, which means one of the following: \n+ `TargetString` exactly matches the value of the specified part of the web request, such as the value of a header\\.\n+ `TargetString` is at the beginning of the specified part of the web request and is followed by a character other than an alphanumeric character or underscore \\(\\_\\), for example, `BadBot;`\\.\n+ `TargetString` is at the end of the specified part of the web request and is preceded by a character other than an alphanumeric character or underscore \\(\\_\\), for example, `;BadBot`\\.\n+ `TargetString` is in the middle of the specified part of the web request and is preceded and followed by characters other than alphanumeric characters or underscore \\(\\_\\), for example, `-BadBot;`\\.\n **EXACTLY** \nThe value of the specified part of the web request must exactly match the value of `TargetString`\\. \n **STARTS\\_WITH** \nThe value of `TargetString` must appear at the beginning of the specified part of the web request\\. \n **ENDS\\_WITH** \nThe value of `TargetString` must appear at the end of the specified part of the web request\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CONTAINS | CONTAINS_WORD | ENDS_WITH | EXACTLY | STARTS_WITH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PositionalConstraint", "type": "string" }, "TargetString": { + "markdownDescription": "The value that you want AWS WAF to search for\\. AWS WAF searches for the specified string in the part of web requests that you specified in `FieldToMatch`\\. The maximum length of the value is 50 bytes\\. \nYou must specify this property or the `TargetStringBase64` property\\. \nValid values depend on the values that you specified for `FieldToMatch`: \n+ `HEADER`: The value that you want AWS WAF to search for in the request header that you specified in `FieldToMatch`, for example, the value of the `User-Agent` or `Referer` header\\.\n+ `METHOD`: The HTTP method, which indicates the type of operation specified in the request\\. \n+ `QUERY_STRING`: The value that you want AWS WAF to search for in the query string, which is the part of a URL that appears after a `?` character\\.\n+ `URI`: The value that you want AWS WAF to search for in the part of a URL that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but instead of inspecting a single parameter, AWS WAF inspects all parameters within the query string for the value or regex pattern that you specify in `TargetString`\\.\nIf `TargetString` includes alphabetic characters A\\-Z and a\\-z, note that the value is case sensitive\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetString", "type": "string" }, "TargetStringBase64": { + "markdownDescription": "The base64\\-encoded value that AWS WAF searches for\\. AWS CloudFormation sends this value to AWS WAF without encoding it\\. \nYou must specify this property or the `TargetString` property\\. \nAWS WAF searches for this value in a specific part of web requests, which you define in the `FieldToMatch` property\\. \nValid values depend on the Type value in the `FieldToMatch` property\\. For example, for a `METHOD` type, you must specify HTTP methods such as `DELETE, GET, HEAD, OPTIONS, PATCH, POST`, and `PUT`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetStringBase64", "type": "string" }, "TextTransformation": { + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting it for a match\\. \nYou can only specify a single type of TextTransformation\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformation", "type": "string" } }, @@ -149024,9 +181644,13 @@ "additionalProperties": false, "properties": { "Data": { + "markdownDescription": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Data", "type": "string" }, "Type": { + "markdownDescription": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicated the type of operation that the request is asking the origin to perform\\. \n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\.\n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -149074,9 +181698,13 @@ "items": { "$ref": "#/definitions/AWS::WAFRegional::GeoMatchSet.GeoMatchConstraint" }, + "markdownDescription": "An array of `GeoMatchConstraint` objects, which contain the country that you want AWS WAF to search for\\. \n*Required*: No \n*Type*: List of [GeoMatchConstraint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-geomatchset-geomatchconstraint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GeoMatchConstraints", "type": "array" }, "Name": { + "markdownDescription": "A friendly name or description of the [AWS::WAFRegional::GeoMatchSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-resource-wafregional-geomatchset.html#aws-resource-wafregional-geomatchset)\\. You can't change the name of an `GeoMatchSet` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" } }, @@ -149110,9 +181738,13 @@ "additionalProperties": false, "properties": { "Type": { + "markdownDescription": "The type of geographical area you want AWS WAF to search for\\. Currently `Country` is the only valid value\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Country` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" }, "Value": { + "markdownDescription": "The country that you want AWS WAF to search for\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AD | AE | AF | AG | AI | AL | AM | AO | AQ | AR | AS | AT | AU | AW | AX | AZ | BA | BB | BD | BE | BF | BG | BH | BI | BJ | BL | BM | BN | BO | BQ | BR | BS | BT | BV | BW | BY | BZ | CA | CC | CD | CF | CG | CH | CI | CK | CL | CM | CN | CO | CR | CU | CV | CW | CX | CY | CZ | DE | DJ | DK | DM | DO | DZ | EC | EE | EG | EH | ER | ES | ET | FI | FJ | FK | FM | FO | FR | GA | GB | GD | GE | GF | GG | GH | GI | GL | GM | GN | GP | GQ | GR | GS | GT | GU | GW | GY | HK | HM | HN | HR | HT | HU | ID | IE | IL | IM | IN | IO | IQ | IR | IS | IT | JE | JM | JO | JP | KE | KG | KH | KI | KM | KN | KP | KR | KW | KY | KZ | LA | LB | LC | LI | LK | LR | LS | LT | LU | LV | LY | MA | MC | MD | ME | MF | MG | MH | MK | ML | MM | MN | MO | MP | MQ | MR | MS | MT | MU | MV | MW | MX | MY | MZ | NA | NC | NE | NF | NG | NI | NL | NO | NP | NR | NU | NZ | OM | PA | PE | PF | PG | PH | PK | PL | PM | PN | PR | PS | PT | PW | PY | QA | RE | RO | RS | RU | RW | SA | SB | SC | SD | SE | SG | SH | SI | SJ | SK | SL | SM | SN | SO | SR | SS | ST | SV | SX | SY | SZ | TC | TD | TF | TG | TH | TJ | TK | TL | TM | TN | TO | TR | TT | TV | TW | TZ | UA | UG | UM | US | UY | UZ | VA | VC | VE | VG | VI | VN | VU | WF | WS | YE | YT | ZA | ZM | ZW` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -149161,9 +181793,13 @@ "items": { "$ref": "#/definitions/AWS::WAFRegional::IPSet.IPSetDescriptor" }, + "markdownDescription": "The IP address type \\(`IPV4` or `IPV6`\\) and the IP address range \\(in CIDR notation\\) that web requests originate from\\. \n*Required*: No \n*Type*: List of [IPSetDescriptor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-ipset-ipsetdescriptor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IPSetDescriptors", "type": "array" }, "Name": { + "markdownDescription": "A friendly name or description of the `IPSet`\\. You can't change the name of an `IPSet` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" } }, @@ -149197,9 +181833,13 @@ "additionalProperties": false, "properties": { "Type": { + "markdownDescription": "Specify `IPV4` or `IPV6`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `IPV4 | IPV6` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" }, "Value": { + "markdownDescription": "Specify an IPv4 address by using CIDR notation\\. For example: \n+ To configure AWS WAF to allow, block, or count requests that originated from the IP address 192\\.0\\.2\\.44, specify `192.0.2.44/32`\\.\n+ To configure AWS WAF to allow, block, or count requests that originated from IP addresses from 192\\.0\\.2\\.0 to 192\\.0\\.2\\.255, specify `192.0.2.0/24`\\.\nFor more information about CIDR notation, see the Wikipedia entry [Classless Inter\\-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\\. \nSpecify an IPv6 address by using CIDR notation\\. For example: \n+ To configure AWS WAF to allow, block, or count requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify `1111:0000:0000:0000:0000:0000:0000:0111/128`\\.\n+ To configure AWS WAF to allow, block, or count requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify `1111:0000:0000:0000:0000:0000:0000:0000/64`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -149248,18 +181888,28 @@ "items": { "$ref": "#/definitions/AWS::WAFRegional::RateBasedRule.Predicate" }, + "markdownDescription": "The `Predicates` object contains one `Predicate` element for each `ByteMatchSet`, `IPSet`, or `SqlInjectionMatchSet>` object that you want to include in a `RateBasedRule`\\. \n*Required*: No \n*Type*: List of [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-ratebasedrule-predicate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MatchPredicates", "type": "array" }, "MetricName": { + "markdownDescription": "A name for the metrics for a `RateBasedRule`\\. The name can contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\), with maximum length 128 and minimum length one\\. It can't contain whitespace or metric names reserved for AWS WAF, including \"All\" and \"Default\\_Action\\.\" You can't change the name of the metric after you create the `RateBasedRule`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricName", "type": "string" }, "Name": { + "markdownDescription": "A friendly name or description for a `RateBasedRule`\\. You can't change the name of a `RateBasedRule` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RateKey": { + "markdownDescription": "The field that AWS WAF uses to determine if requests are likely arriving from single source and thus subject to rate monitoring\\. The only valid value for `RateKey` is `IP`\\. `IP` indicates that requests arriving from the same IP address are subject to the `RateLimit` that is specified in the `RateBasedRule`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `IP` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RateKey", "type": "string" }, "RateLimit": { + "markdownDescription": "The maximum number of requests, which have an identical value in the field specified by the `RateKey`, allowed in a five\\-minute period\\. If the number of requests exceeds the `RateLimit` and the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RateLimit", "type": "number" } }, @@ -149296,12 +181946,18 @@ "additionalProperties": false, "properties": { "DataId": { + "markdownDescription": "A unique identifier for a predicate in a `Rule`, such as `ByteMatchSetId` or `IPSetId`\\. The ID is returned by the corresponding `Create` or `List` command\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataId", "type": "string" }, "Negated": { + "markdownDescription": "Set `Negated` to `False` if you want AWS WAF to allow, block, or count requests based on the settings in the specified `ByteMatchSet`, `IPSet`, `SqlInjectionMatchSet`, `XssMatchSet`, `RegexMatchSet`, `GeoMatchSet`, or `SizeConstraintSet`\\. For example, if an `IPSet` includes the IP address `192.0.2.44`, AWS WAF will allow or block requests based on that IP address\\. \nSet `Negated` to `True` if you want AWS WAF to allow or block a request based on the negation of the settings in the `ByteMatchSet`, `IPSet`, `SqlInjectionMatchSet`, `XssMatchSet`, `RegexMatchSet`, `GeoMatchSet`, or `SizeConstraintSet`>\\. For example, if an `IPSet` includes the IP address `192.0.2.44`, AWS WAF will allow, block, or count requests based on all IP addresses *except* `192.0.2.44`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Negated", "type": "boolean" }, "Type": { + "markdownDescription": "The type of predicate in a `Rule`, such as `ByteMatch` or `IPSet`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ByteMatch | GeoMatch | IPMatch | RegexMatch | SizeConstraint | SqlInjectionMatch | XssMatch` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -149348,12 +182004,16 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "A friendly name or description of the [AWS::WAFRegional::RegexPatternSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-resource-wafregional-regexpatternset.html#aws-resource-wafregional-regexpatternset)\\. You can't change `Name` after you create a `RegexPatternSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RegexPatternStrings": { "items": { "type": "string" }, + "markdownDescription": "Specifies the regular expression \\(regex\\) patterns that you want AWS WAF to search for, such as `B[a@]dB[o0]t`\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegexPatternStrings", "type": "array" } }, @@ -149420,15 +182080,21 @@ "additionalProperties": false, "properties": { "MetricName": { + "markdownDescription": "A name for the metrics for this `Rule`\\. The name can contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\), with maximum length 128 and minimum length one\\. It can't contain whitespace or metric names reserved for AWS WAF, including \"All\" and \"Default\\_Action\\.\" You can't change `MetricName` after you create the `Rule`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricName", "type": "string" }, "Name": { + "markdownDescription": "The friendly name or description for the `Rule`\\. You can't change the name of a `Rule` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Predicates": { "items": { "$ref": "#/definitions/AWS::WAFRegional::Rule.Predicate" }, + "markdownDescription": "The `Predicates` object contains one `Predicate` element for each `ByteMatchSet`, `IPSet`, or `SqlInjectionMatchSet` object that you want to include in a `Rule`\\. \n*Required*: No \n*Type*: List of [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-rule-predicate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Predicates", "type": "array" } }, @@ -149463,12 +182129,18 @@ "additionalProperties": false, "properties": { "DataId": { + "markdownDescription": "A unique identifier for a predicate in a `Rule`, such as `ByteMatchSetId` or `IPSetId`\\. The ID is returned by the corresponding `Create` or `List` command\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataId", "type": "string" }, "Negated": { + "markdownDescription": "Set `Negated` to `False` if you want AWS WAF to allow, block, or count requests based on the settings in the specified `ByteMatchSet`, `IPSet`, `SqlInjectionMatchSet`, `XssMatchSet`, `RegexMatchSet`, `GeoMatchSet`, or `SizeConstraintSet`\\. For example, if an `IPSet` includes the IP address `192.0.2.44`, AWS WAF will allow or block requests based on that IP address\\. \nSet `Negated` to `True` if you want AWS WAF to allow or block a request based on the negation of the settings in the `ByteMatchSet`, `IPSet`, `SqlInjectionMatchSet`, `XssMatchSet`, `RegexMatchSet`, `GeoMatchSet`, or `SizeConstraintSet`\\. For example, if an `IPSet` includes the IP address `192.0.2.44`, AWS WAF will allow, block, or count requests based on all IP addresses *except* `192.0.2.44`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Negated", "type": "boolean" }, "Type": { + "markdownDescription": "The type of predicate in a `Rule`, such as `ByteMatch` or `IPSet`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ByteMatch | GeoMatch | IPMatch | RegexMatch | SizeConstraint | SqlInjectionMatch | XssMatch` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -149515,12 +182187,16 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name, if any, of the `SizeConstraintSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "SizeConstraints": { "items": { "$ref": "#/definitions/AWS::WAFRegional::SizeConstraintSet.SizeConstraint" }, + "markdownDescription": "The size constraint and the part of the web request to check\\. \n*Required*: No \n*Type*: List of [SizeConstraint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sizeconstraintset-sizeconstraint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SizeConstraints", "type": "array" } }, @@ -149554,9 +182230,13 @@ "additionalProperties": false, "properties": { "Data": { + "markdownDescription": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Data", "type": "string" }, "Type": { + "markdownDescription": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicates the type of operation that the request is asking the origin to perform\\. \n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -149569,15 +182249,23 @@ "additionalProperties": false, "properties": { "ComparisonOperator": { + "markdownDescription": "The type of comparison you want AWS WAF to perform\\. AWS WAF uses this in combination with the provided `Size` and `FieldToMatch` to build an expression in the form of \"`Size` `ComparisonOperator` size in bytes of `FieldToMatch`\"\\. If that expression is true, the `SizeConstraint` is considered to match\\. \n **EQ**: Used to test if the `Size` is equal to the size of the `FieldToMatch` \n **NE**: Used to test if the `Size` is not equal to the size of the `FieldToMatch` \n **LE**: Used to test if the `Size` is less than or equal to the size of the `FieldToMatch` \n **LT**: Used to test if the `Size` is strictly less than the size of the `FieldToMatch` \n **GE**: Used to test if the `Size` is greater than or equal to the size of the `FieldToMatch` \n **GT**: Used to test if the `Size` is strictly greater than the size of the `FieldToMatch` \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EQ | GE | GT | LE | LT | NE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComparisonOperator", "type": "string" }, "FieldToMatch": { - "$ref": "#/definitions/AWS::WAFRegional::SizeConstraintSet.FieldToMatch" + "$ref": "#/definitions/AWS::WAFRegional::SizeConstraintSet.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect, such as a specific header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sizeconstraintset-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" }, "Size": { + "markdownDescription": "The size in bytes that you want AWS WAF to compare against the size of the specified `FieldToMatch`\\. AWS WAF uses this in combination with `ComparisonOperator` and `FieldToMatch` to build an expression in the form of \"`Size` `ComparisonOperator` size in bytes of `FieldToMatch`\"\\. If that expression is true, the `SizeConstraint` is considered to match\\. \nValid values for size are 0 \\- 21474836480 bytes \\(0 \\- 20 GB\\)\\. \nIf you specify `URI` for the value of `Type`, the / in the URI path that you specify counts as one character\\. For example, the URI `/logo.jpg` is nine characters long\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Size", "type": "number" }, "TextTransformation": { + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting a request for a match\\. \nYou can only specify a single type of TextTransformation\\. \nNote that if you choose `BODY` for the value of `Type`, you must choose `NONE` for `TextTransformation` because the API Gateway API or Application Load Balancer forward only the first 8192 bytes for inspection\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformation", "type": "string" } }, @@ -149625,12 +182313,16 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name, if any, of the `SqlInjectionMatchSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "SqlInjectionMatchTuples": { "items": { "$ref": "#/definitions/AWS::WAFRegional::SqlInjectionMatchSet.SqlInjectionMatchTuple" }, + "markdownDescription": "Specifies the parts of web requests that you want to inspect for snippets of malicious SQL code\\. \n*Required*: No \n*Type*: List of [SqlInjectionMatchTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sqlinjectionmatchset-sqlinjectionmatchtuple.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SqlInjectionMatchTuples", "type": "array" } }, @@ -149664,9 +182356,13 @@ "additionalProperties": false, "properties": { "Data": { + "markdownDescription": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Data", "type": "string" }, "Type": { + "markdownDescription": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicates the type of operation that the request is asking the origin to perform\\. \n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -149679,9 +182375,13 @@ "additionalProperties": false, "properties": { "FieldToMatch": { - "$ref": "#/definitions/AWS::WAFRegional::SqlInjectionMatchSet.FieldToMatch" + "$ref": "#/definitions/AWS::WAFRegional::SqlInjectionMatchSet.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect, such as a specific header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sqlinjectionmatchset-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" }, "TextTransformation": { + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting it for a match\\. \nYou can only specify a single type of TextTransformation\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformation", "type": "string" } }, @@ -149727,18 +182427,26 @@ "additionalProperties": false, "properties": { "DefaultAction": { - "$ref": "#/definitions/AWS::WAFRegional::WebACL.Action" + "$ref": "#/definitions/AWS::WAFRegional::WebACL.Action", + "markdownDescription": "The action to perform if none of the `Rules` contained in the `WebACL` match\\. The action is specified by the `WafAction` object\\. \n*Required*: Yes \n*Type*: [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-webacl-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultAction" }, "MetricName": { + "markdownDescription": "A name for the metrics for this `WebACL`\\. The name can contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\), with maximum length 128 and minimum length one\\. It can't contain whitespace or metric names reserved for AWS WAF, including \"All\" and \"Default\\_Action\\.\" You can't change `MetricName` after you create the `WebACL`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricName", "type": "string" }, "Name": { + "markdownDescription": "A friendly name or description of the `WebACL`\\. You can't change the name of a `WebACL` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Rules": { "items": { "$ref": "#/definitions/AWS::WAFRegional::WebACL.Rule" }, + "markdownDescription": "An array that contains the action for each `Rule` in a `WebACL`, the priority of the `Rule`, and the ID of the `Rule`\\. \n*Required*: No \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-webacl-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", "type": "array" } }, @@ -149774,6 +182482,8 @@ "additionalProperties": false, "properties": { "Type": { + "markdownDescription": "For actions that are associated with a rule, the action that AWS WAF takes when a web request matches all conditions in a rule\\. \nFor the default action of a web access control list \\(ACL\\), the action that AWS WAF takes when a web request doesn't match all conditions in any rule\\. \nValid settings include the following: \n+ `ALLOW`: AWS WAF allows requests\n+ `BLOCK`: AWS WAF blocks requests\n+ `COUNT`: AWS WAF increments a counter of the requests that match all of the conditions in the rule\\. AWS WAF then continues to inspect the web request based on the remaining rules in the web ACL\\. You can't specify `COUNT` for the default action for a WebACL\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -149786,12 +182496,18 @@ "additionalProperties": false, "properties": { "Action": { - "$ref": "#/definitions/AWS::WAFRegional::WebACL.Action" + "$ref": "#/definitions/AWS::WAFRegional::WebACL.Action", + "markdownDescription": "The action that AWS WAF takes when a web request matches all conditions in the rule, such as allow, block, or count the request\\. \n*Required*: Yes \n*Type*: [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-webacl-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" }, "Priority": { + "markdownDescription": "The order in which AWS WAF evaluates the rules in a web ACL\\. AWS WAF evaluates rules with a lower value before rules with a higher value\\. The value must be a unique integer\\. If you have multiple rules in a web ACL, the priority numbers do not need to be consecutive\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" }, "RuleId": { + "markdownDescription": "The ID of an AWS WAF Regional rule to associate with a web ACL\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleId", "type": "string" } }, @@ -149838,9 +182554,13 @@ "additionalProperties": false, "properties": { "ResourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the resource to protect with the web ACL\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceArn", "type": "string" }, "WebACLId": { + "markdownDescription": "A unique identifier \\(ID\\) for the web ACL\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WebACLId", "type": "string" } }, @@ -149907,12 +182627,16 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name, if any, of the `XssMatchSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "XssMatchTuples": { "items": { "$ref": "#/definitions/AWS::WAFRegional::XssMatchSet.XssMatchTuple" }, + "markdownDescription": "Specifies the parts of web requests that you want to inspect for cross\\-site scripting attacks\\. \n*Required*: No \n*Type*: List of [XssMatchTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-xssmatchset-xssmatchtuple.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "XssMatchTuples", "type": "array" } }, @@ -149946,9 +182670,13 @@ "additionalProperties": false, "properties": { "Data": { + "markdownDescription": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Data", "type": "string" }, "Type": { + "markdownDescription": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicates the type of operation that the request is asking the origin to perform\\. \n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -149961,9 +182689,13 @@ "additionalProperties": false, "properties": { "FieldToMatch": { - "$ref": "#/definitions/AWS::WAFRegional::XssMatchSet.FieldToMatch" + "$ref": "#/definitions/AWS::WAFRegional::XssMatchSet.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect, such as a specified header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-xssmatchset-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" }, "TextTransformation": { + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting it for a match\\. \nYou can only specify a single type of TextTransformation\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformation", "type": "string" } }, @@ -150012,24 +182744,36 @@ "items": { "type": "string" }, + "markdownDescription": "Contains an array of strings that specify one or more IP addresses or blocks of IP addresses in Classless Inter\\-Domain Routing \\(CIDR\\) notation\\. AWS WAF supports all IPv4 and IPv6 CIDR ranges except for /0\\. \nExamples: \n+ To configure AWS WAF to allow, block, or count requests that originated from the IP address 192\\.0\\.2\\.44, specify `192.0.2.44/32`\\.\n+ To configure AWS WAF to allow, block, or count requests that originated from IP addresses from 192\\.0\\.2\\.0 to 192\\.0\\.2\\.255, specify `192.0.2.0/24`\\.\n+ To configure AWS WAF to allow, block, or count requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify `1111:0000:0000:0000:0000:0000:0000:0111/128`\\.\n+ To configure AWS WAF to allow, block, or count requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify `1111:0000:0000:0000:0000:0000:0000:0000/64`\\.\nFor more information about CIDR notation, see the Wikipedia entry [Classless Inter\\-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Addresses", "type": "array" }, "Description": { + "markdownDescription": "A description of the IP set that helps with identification\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[\\w+=:#@/\\-,\\.][\\w+=:#@/\\-,\\.\\s]+[\\w+=:#@/\\-,\\.]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "IPAddressVersion": { + "markdownDescription": "Specify IPV4 or IPV6\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `IPV4 | IPV6` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IPAddressVersion", "type": "string" }, "Name": { + "markdownDescription": "The descriptive name of the IP set\\. You cannot change the name of an `IPSet` after you create it\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Scope": { + "markdownDescription": "Specifies whether this is for an Amazon CloudFront distribution or for a regional application\\. A regional application can be an Application Load Balancer \\(ALB\\), an Amazon API Gateway REST API, or an AWS AppSync GraphQL API\\. Valid Values are `CLOUDFRONT` and `REGIONAL`\\. \nFor `CLOUDFRONT`, you must create your WAFv2 resources in the US East \\(N\\. Virginia\\) Region, `us-east-1`\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Scope", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Key:value pairs associated with an AWS resource\\. The key:value pair can be anything you define\\. Typically, the tag key represents a category \\(such as \"environment\"\\) and the tag value represents a specific value within that category \\(such as \"test,\" \"development,\" or \"production\"\\)\\. You can add up to 50 tags to each AWS resource\\. \nTo modify tags on existing resources, use the AWS WAF APIs or command line interface\\. With AWS CloudFormation, you can only add tags to AWS WAF resources during resource creation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -150100,18 +182844,26 @@ "items": { "type": "string" }, + "markdownDescription": "The logging destination configuration that you want to associate with the web ACL\\. \nYou can associate one logging destination to a web ACL\\.\n*Required*: Yes \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogDestinationConfigs", "type": "array" }, "LoggingFilter": { - "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.LoggingFilter" + "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.LoggingFilter", + "markdownDescription": "Filtering that specifies which web requests are kept in the logs and which are dropped\\. You can filter on the rule action and on the web request labels that were applied by matching rules during web ACL evaluation\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingFilter" }, "RedactedFields": { "items": { "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.FieldToMatch" }, + "markdownDescription": "The parts of the request that you want to keep out of the logs\\. For example, if you redact the `SingleHeader` field, the `HEADER` field in the logs will be `xxx`\\. \nYou can specify only the following fields for redaction: `UriPath`, `QueryString`, `SingleHeader`, `Method`, and `JsonBody`\\.\n*Required*: No \n*Type*: List of [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-loggingconfiguration-fieldtomatch.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedactedFields", "type": "array" }, "ResourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the web ACL that you want to associate with `LogDestinationConfigs`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceArn", "type": "string" } }, @@ -150170,18 +182922,28 @@ "additionalProperties": false, "properties": { "JsonBody": { - "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.JsonBody" + "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.JsonBody", + "markdownDescription": "Inspect the request body as JSON\\. The request body immediately follows the request headers\\. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. \nNote that only the first 8 KB \\(8192 bytes\\) of the request body are forwarded to AWS WAF for inspection by the underlying host service\\. If you don't need to inspect more than 8 KB, you can guarantee that you don't allow additional bytes in by combining a statement that inspects the body of the web request, such as [ByteMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html#cfn-wafv2-rulegroup-statement-bytematchstatement) or [RegexPatternSetReferenceStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html#cfn-wafv2-rulegroup-statement-regexpatternsetreferencestatement), with a [SizeConstraintStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html#cfn-wafv2-rulegroup-statement-sizeconstraintstatement) that enforces an 8 KB size limit on the body of the request\\. AWS WAF doesn't support inspecting the entire contents of web requests whose bodies exceed the 8 KB limit\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JsonBody" }, "Method": { + "markdownDescription": "Inspect the HTTP method\\. The method indicates the type of operation that the request is asking the origin to perform\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Method", "type": "object" }, "QueryString": { + "markdownDescription": "Inspect the query string\\. This is the part of a URL that appears after a `?` character, if any\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryString", "type": "object" }, "SingleHeader": { - "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.SingleHeader" + "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.SingleHeader", + "markdownDescription": "Inspect a single header\\. Provide the name of the header to inspect, for example, `User-Agent` or `Referer`\\. This setting isn't case sensitive\\. \nExample JSON: `\"SingleHeader\": { \"Name\": \"haystack\" }` \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SingleHeader" }, "UriPath": { + "markdownDescription": "Inspect the request URI path\\. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UriPath", "type": "object" } }, @@ -150323,24 +183085,34 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the set that helps with identification\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[\\w+=:#@/\\-,\\.][\\w+=:#@/\\-,\\.\\s]+[\\w+=:#@/\\-,\\.]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The descriptive name of the set\\. You cannot change the name after you create the set\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RegularExpressionList": { "items": { "type": "string" }, + "markdownDescription": "The regular expression patterns in the set\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegularExpressionList", "type": "array" }, "Scope": { + "markdownDescription": "Specifies whether this is for an Amazon CloudFront distribution or for a regional application\\. A regional application can be an Application Load Balancer \\(ALB\\), an Amazon API Gateway REST API, or an AWS AppSync GraphQL API\\. Valid Values are `CLOUDFRONT` and `REGIONAL`\\. \nFor `CLOUDFRONT`, you must create your WAFv2 resources in the US East \\(N\\. Virginia\\) Region, `us-east-1`\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Scope", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Key:value pairs associated with an AWS resource\\. The key:value pair can be anything you define\\. Typically, the tag key represents a category \\(such as \"environment\"\\) and the tag value represents a specific value within that category \\(such as \"test,\" \"development,\" or \"production\"\\)\\. You can add up to 50 tags to each AWS resource\\. \nTo modify tags on existing resources, use the AWS WAF APIs or command line interface\\. With AWS CloudFormation, you can only add tags to AWS WAF resources during resource creation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -150413,6 +183185,8 @@ "type": "array" }, "Capacity": { + "markdownDescription": "The web ACL capacity units \\(WCUs\\) required for this rule group\\. \nWhen you create your own rule group, you define this, and you cannot change it after creation\\. When you add or modify the rules in a rule group, AWS WAF enforces this limit\\. \nAWS WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs\\. AWS WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule\\. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power\\. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group\\. The WCU limit for web ACLs is 1,500\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Capacity", "type": "number" }, "ConsumedLabels": { @@ -150423,36 +183197,50 @@ }, "CustomResponseBodies": { "additionalProperties": false, + "markdownDescription": "A map of custom response keys and content bodies\\. When you create a rule with a block action, you can send a custom response to the web request\\. You define these for the rule group, and then use them in the rules that you define in the rule group\\. \nFor information about customizing web requests and responses, see [Customizing web requests and responses in AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \nFor information about the limits on count and size for custom request and response settings, see [AWS WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: No \n*Type*: Map of [CustomResponseBody](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-customresponsebody.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CustomResponseBody" } }, + "title": "CustomResponseBodies", "type": "object" }, "Description": { + "markdownDescription": "A description of the rule group that helps with identification\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[\\w+=:#@/\\-,\\.][\\w+=:#@/\\-,\\.\\s]+[\\w+=:#@/\\-,\\.]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The descriptive name of the rule group\\. You cannot change the name of a rule group after you create it\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Rules": { "items": { "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Rule" }, + "markdownDescription": "The rule statements used to identify the web requests that you want to allow, block, or count\\. Each rule includes one top\\-level statement that AWS WAF uses to identify matching web requests, and parameters that govern how AWS WAF handles them\\. \n*Required*: No \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", "type": "array" }, "Scope": { + "markdownDescription": "Specifies whether this is for an Amazon CloudFront distribution or for a regional application\\. A regional application can be an Application Load Balancer \\(ALB\\), an Amazon API Gateway REST API, or an AWS AppSync GraphQL API\\. Valid Values are `CLOUDFRONT` and `REGIONAL`\\. \nFor `CLOUDFRONT`, you must create your WAFv2 resources in the US East \\(N\\. Virginia\\) Region, `us-east-1`\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Scope", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Key:value pairs associated with an AWS resource\\. The key:value pair can be anything you define\\. Typically, the tag key represents a category \\(such as \"environment\"\\) and the tag value represents a specific value within that category \\(such as \"test,\" \"development,\" or \"production\"\\)\\. You can add up to 50 tags to each AWS resource\\. \nTo modify tags on existing resources, use the AWS WAF APIs or command line interface\\. With AWS CloudFormation, you can only add tags to AWS WAF resources during resource creation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "VisibilityConfig": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.VisibilityConfig" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.VisibilityConfig", + "markdownDescription": "Defines and enables Amazon CloudWatch metrics and web request sample collection\\. \n*Required*: Yes \n*Type*: [VisibilityConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-visibilityconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VisibilityConfig" } }, "required": [ @@ -150483,7 +183271,7 @@ ], "type": "object" }, - "AWS::WAFv2::RuleGroup.Allow": { + "AWS::WAFv2::RuleGroup.AllowAction": { "additionalProperties": false, "properties": { "CustomRequestHandling": { @@ -150499,6 +183287,8 @@ "items": { "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Statement" }, + "markdownDescription": "The statements to combine with AND logic\\. You can use any statements that can be nested\\. \n*Required*: Yes \n*Type*: List of [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statements", "type": "array" } }, @@ -150507,7 +183297,7 @@ ], "type": "object" }, - "AWS::WAFv2::RuleGroup.Block": { + "AWS::WAFv2::RuleGroup.BlockAction": { "additionalProperties": false, "properties": { "CustomResponse": { @@ -150529,21 +183319,31 @@ "additionalProperties": false, "properties": { "FieldToMatch": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" }, "PositionalConstraint": { + "markdownDescription": "The area within the portion of a web request that you want AWS WAF to search for `SearchString`\\. Valid values include the following: \n **CONTAINS** \nThe specified part of the web request must include the value of `SearchString`, but the location doesn't matter\\. \n **CONTAINS\\_WORD** \nThe specified part of the web request must include the value of `SearchString`, and `SearchString` must contain only alphanumeric characters or underscore \\(A\\-Z, a\\-z, 0\\-9, or \\_\\)\\. In addition, `SearchString` must be a word, which means that both of the following are true: \n+ `SearchString` is at the beginning of the specified part of the web request or is preceded by a character other than an alphanumeric character or underscore \\(\\_\\)\\. Examples include the value of a header and `;BadBot`\\.\n+ `SearchString` is at the end of the specified part of the web request or is followed by a character other than an alphanumeric character or underscore \\(\\_\\), for example, `BadBot;` and `-BadBot;`\\.\n **EXACTLY** \nThe value of the specified part of the web request must exactly match the value of `SearchString`\\. \n **STARTS\\_WITH** \nThe value of `SearchString` must appear at the beginning of the specified part of the web request\\. \n **ENDS\\_WITH** \nThe value of `SearchString` must appear at the end of the specified part of the web request\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CONTAINS | CONTAINS_WORD | ENDS_WITH | EXACTLY | STARTS_WITH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PositionalConstraint", "type": "string" }, "SearchString": { + "markdownDescription": "A string value that you want AWS WAF to search for\\. AWS WAF searches only in the part of web requests that you designate for inspection in `FieldToMatch`\\. The maximum length of the value is 50 bytes\\. For alphabetic characters A\\-Z and a\\-z, the value is case sensitive\\. \nDon't encode this string\\. Provide the value that you want AWS WAF to search for\\. AWS CloudFormation automatically base64 encodes the value for you\\. \nFor example, suppose the value of `Type` is `HEADER` and the value of `Data` is `User-Agent`\\. If you want to search the `User-Agent` header for the value `BadBot`, you provide the string `BadBot` in the value of `SearchString`\\. \nYou must specify either `SearchString` or `SearchStringBase64` in a `ByteMatchStatement`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SearchString", "type": "string" }, "SearchStringBase64": { + "markdownDescription": "String to search for in a web request component, base64\\-encoded\\. If you don't want to encode the string, specify the unencoded value in `SearchString` instead\\. \nYou must specify either `SearchString` or `SearchStringBase64` in a `ByteMatchStatement`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SearchStringBase64", "type": "string" }, "TextTransformations": { "items": { "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation" }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", "type": "array" } }, @@ -150554,7 +183354,7 @@ ], "type": "object" }, - "AWS::WAFv2::RuleGroup.Captcha": { + "AWS::WAFv2::RuleGroup.CaptchaAction": { "additionalProperties": false, "properties": { "CustomRequestHandling": { @@ -150567,12 +183367,14 @@ "additionalProperties": false, "properties": { "ImmunityTimeProperty": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ImmunityTimeProperty" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ImmunityTimeProperty", + "markdownDescription": "Determines how long a `CAPTCHA` token remains valid after the client successfully solves a `CAPTCHA` puzzle\\. \n*Required*: No \n*Type*: [ImmunityTimeProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-immunitytimeproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImmunityTimeProperty" } }, "type": "object" }, - "AWS::WAFv2::RuleGroup.Challenge": { + "AWS::WAFv2::RuleGroup.ChallengeAction": { "additionalProperties": false, "properties": { "CustomRequestHandling": { @@ -150631,7 +183433,7 @@ ], "type": "object" }, - "AWS::WAFv2::RuleGroup.Count": { + "AWS::WAFv2::RuleGroup.CountAction": { "additionalProperties": false, "properties": { "CustomRequestHandling": { @@ -150696,9 +183498,13 @@ "additionalProperties": false, "properties": { "Content": { + "markdownDescription": "The payload of the custom response\\. \nYou can use JSON escape strings in JSON content\\. To do this, you must specify JSON content in the `ContentType` setting\\. \nFor information about the limits on count and size for custom request and response settings, see [AWS WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `10240` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Content", "type": "string" }, "ContentType": { + "markdownDescription": "The type of content in the payload that you are defining in the `Content` string\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `APPLICATION_JSON | TEXT_HTML | TEXT_PLAIN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentType", "type": "string" } }, @@ -150712,10 +183518,14 @@ "additionalProperties": false, "properties": { "AllQueryArguments": { + "markdownDescription": "Inspect all query arguments\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllQueryArguments", "type": "object" }, "Body": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Body" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Body", + "markdownDescription": "Inspect the request body, which immediately follows the request headers\\. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. \nNote that only the first 8 KB \\(8192 bytes\\) of the request body are forwarded to AWS WAF for inspection by the underlying host service\\. If you don't need to inspect more than 8 KB, you can guarantee that you don't allow additional bytes in by combining a statement that inspects the body of the web request, such as the `ByteMatchStatement` or `RegexPatternSetReferenceStatement`, with a `SizeConstraintStatement` that enforces an 8 KB size limit on the body of the request\\. AWS WAF doesn't support inspecting the entire contents of web requests whose bodies exceed the 8 KB limit\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body" }, "Cookies": { "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Cookies" @@ -150724,21 +183534,33 @@ "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Headers" }, "JsonBody": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.JsonBody" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.JsonBody", + "markdownDescription": "Inspect the request body as JSON\\. The request body immediately follows the request headers\\. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. \nNote that only the first 8 KB \\(8192 bytes\\) of the request body are forwarded to AWS WAF for inspection by the underlying host service\\. If you don't need to inspect more than 8 KB, you can guarantee that you don't allow additional bytes in by combining a statement that inspects the body of the web request, such as the `ByteMatchStatement` or `RegexPatternSetReferenceStatement`, with a `SizeConstraintStatement` that enforces an 8 KB size limit on the body of the request\\. AWS WAF doesn't support inspecting the entire contents of web requests whose bodies exceed the 8 KB limit\\. \n*Required*: No \n*Type*: [JsonBody](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-jsonbody.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JsonBody" }, "Method": { + "markdownDescription": "Inspect the HTTP method\\. The method indicates the type of operation that the request is asking the origin to perform\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Method", "type": "object" }, "QueryString": { + "markdownDescription": "Inspect the query string\\. This is the part of a URL that appears after a `?` character, if any\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryString", "type": "object" }, "SingleHeader": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.SingleHeader" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.SingleHeader", + "markdownDescription": "Inspect a single header\\. Provide the name of the header to inspect, for example, `User-Agent` or `Referer`\\. This setting isn't case sensitive\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SingleHeader" }, "SingleQueryArgument": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.SingleQueryArgument" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.SingleQueryArgument", + "markdownDescription": "Inspect a single query argument\\. Provide the name of the query argument to inspect, such as *UserName* or *SalesRegion*\\. The name can be up to 30 characters long and isn't case sensitive\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SingleQueryArgument" }, "UriPath": { + "markdownDescription": "Inspect the request URI path\\. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UriPath", "type": "object" } }, @@ -150748,9 +183570,13 @@ "additionalProperties": false, "properties": { "FallbackBehavior": { + "markdownDescription": "The match status to assign to the web request if the request doesn't have a valid IP address in the specified position\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\nYou can specify the following fallback behaviors: \n+ `MATCH` \\- Treat the web request as matching the rule statement\\. AWS WAF applies the rule action to the request\\.\n+ `NO_MATCH` \\- Treat the web request as not matching the rule statement\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `MATCH | NO_MATCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FallbackBehavior", "type": "string" }, "HeaderName": { + "markdownDescription": "The name of the HTTP header to use for the IP address\\. For example, to use the X\\-Forwarded\\-For \\(XFF\\) header, set this to `X-Forwarded-For`\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderName", "type": "string" } }, @@ -150767,10 +183593,14 @@ "items": { "type": "string" }, + "markdownDescription": "An array of two\\-character country codes, for example, `[ \"US\", \"CN\" ]`, from the alpha\\-2 country ISO codes of the ISO 3166 international standard\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CountryCodes", "type": "array" }, "ForwardedIPConfig": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ForwardedIPConfiguration" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ForwardedIPConfiguration", + "markdownDescription": "The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin\\. Commonly, this is the X\\-Forwarded\\-For \\(XFF\\) header, but you can specify any header name\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: No \n*Type*: [ForwardedIPConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-forwardedipconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForwardedIPConfig" } }, "type": "object" @@ -150820,12 +183650,18 @@ "additionalProperties": false, "properties": { "FallbackBehavior": { + "markdownDescription": "The match status to assign to the web request if the request doesn't have a valid IP address in the specified position\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\nYou can specify the following fallback behaviors: \n+ `MATCH` \\- Treat the web request as matching the rule statement\\. AWS WAF applies the rule action to the request\\.\n+ `NO_MATCH` \\- Treat the web request as not matching the rule statement\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `MATCH | NO_MATCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FallbackBehavior", "type": "string" }, "HeaderName": { + "markdownDescription": "The name of the HTTP header to use for the IP address\\. For example, to use the X\\-Forwarded\\-For \\(XFF\\) header, set this to `X-Forwarded-For`\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderName", "type": "string" }, "Position": { + "markdownDescription": "The position in the header to search for the IP address\\. The header can contain IP addresses of the original client and also of proxies\\. For example, the header value could be `10.1.1.1, 127.0.0.0, 10.10.10.10` where the first IP address identifies the original client and the rest identify proxies that the request went through\\. \nThe options for this setting are the following: \n+ FIRST \\- Inspect the first IP address in the list of IP addresses in the header\\. This is usually the client's original IP\\.\n+ LAST \\- Inspect the last IP address in the list of IP addresses in the header\\.\n+ ANY \\- Inspect all IP addresses in the header for a match\\. If the header contains more than 10 IP addresses, AWS WAF inspects the last 10\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ANY | FIRST | LAST` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Position", "type": "string" } }, @@ -150840,10 +183676,14 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the [AWS::WAFv2::IPSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-ipset.html) that this statement references\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "IPSetForwardedIPConfig": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.IPSetForwardedIPConfiguration" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.IPSetForwardedIPConfiguration", + "markdownDescription": "The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin\\. Commonly, this is the X\\-Forwarded\\-For \\(XFF\\) header, but you can specify any header name\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: No \n*Type*: [IPSetForwardedIPConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ipsetforwardedipconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IPSetForwardedIPConfig" } }, "required": [ @@ -150855,6 +183695,8 @@ "additionalProperties": false, "properties": { "ImmunityTime": { + "markdownDescription": "The amount of time, in seconds, that a `CAPTCHA` token is valid\\. The default setting is 300\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImmunityTime", "type": "number" } }, @@ -150867,12 +183709,18 @@ "additionalProperties": false, "properties": { "InvalidFallbackBehavior": { + "markdownDescription": "What AWS WAF should do if it fails to completely parse the JSON body\\. The options are the following: \n+ `EVALUATE_AS_STRING` \\- Inspect the body as plain text\\. AWS WAF applies the text transformations and inspection criteria that you defined for the JSON inspection to the body text string\\.\n+ `MATCH` \\- Treat the web request as matching the rule statement\\. AWS WAF applies the rule action to the request\\.\n+ `NO_MATCH` \\- Treat the web request as not matching the rule statement\\.\nIf you don't provide this setting, AWS WAF parses and evaluates the content only up to the first parsing failure that it encounters\\. \nAWS WAF does its best to parse the entire JSON body, but might be forced to stop for reasons such as invalid characters, duplicate keys, truncation, and any content whose root node isn't an object or an array\\. \nAWS WAF parses the JSON in the following examples as two valid key, value pairs: \n+ Missing comma: `{\"key1\":\"value1\"\"key2\":\"value2\"}` \n+ Missing colon: `{\"key1\":\"value1\",\"key2\"\"value2\"}` \n+ Extra colons: `{\"key1\"::\"value1\",\"key2\"\"value2\"}` \n*Required*: No \n*Type*: String \n*Allowed values*: `EVALUATE_AS_STRING | MATCH | NO_MATCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InvalidFallbackBehavior", "type": "string" }, "MatchPattern": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.JsonMatchPattern" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.JsonMatchPattern", + "markdownDescription": "The patterns to look for in the JSON body\\. AWS WAF inspects the results of these pattern matches against the rule inspection criteria\\. \n*Required*: Yes \n*Type*: [JsonMatchPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-jsonmatchpattern.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MatchPattern" }, "MatchScope": { + "markdownDescription": "The parts of the JSON to match against using the `MatchPattern`\\. If you specify `All`, AWS WAF matches against keys and values\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL | KEY | VALUE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MatchScope", "type": "string" }, "OversizeHandling": { @@ -150889,12 +183737,16 @@ "additionalProperties": false, "properties": { "All": { + "markdownDescription": "Match all of the elements\\. See also `MatchScope` in `JsonBody`\\. \nYou must specify either this setting or the `IncludedPaths` setting, but not both\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "All", "type": "object" }, "IncludedPaths": { "items": { "type": "string" }, + "markdownDescription": "Match only the specified include paths\\. See also `MatchScope` in `JsonBody`\\. \nProvide the include paths using JSON Pointer syntax\\. For example, `\"IncludedPaths\": [\"/dogs/0/name\", \"/dogs/1/name\"]`\\. For information about this syntax, see the Internet Engineering Task Force \\(IETF\\) documentation [JavaScript Object Notation \\(JSON\\) Pointer](https://tools.ietf.org/html/rfc6901)\\. \nYou must specify either this setting or the `All` setting, but not both\\. \nDon't use this option to include all paths\\. Instead, use the `All` setting\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludedPaths", "type": "array" } }, @@ -150904,6 +183756,8 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The label string\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -150916,9 +183770,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The string to match against\\. The setting you provide for this depends on the match statement's `Scope` setting: \n+ If the `Scope` indicates `LABEL`, then this specification must include the name and can include any number of preceding namespace specifications and prefix up to providing the fully qualified label name\\. \n+ If the `Scope` indicates `NAMESPACE`, then this specification can include any number of contiguous namespace strings, and can include the entire label namespace prefix from the rule group or web ACL where the label originates\\.\nLabels are case sensitive and components of a label must be separated by colon, for example `NS1:NS2:name`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Scope": { + "markdownDescription": "Specify whether you want to match using the label name or just the namespace\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scope", "type": "string" } }, @@ -150932,6 +183790,8 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "An individual label specification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -150941,7 +183801,9 @@ "additionalProperties": false, "properties": { "Statement": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Statement" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Statement", + "markdownDescription": "The statement to negate\\. You can use any statement that can be nested\\. \n*Required*: Yes \n*Type*: [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statement" } }, "required": [ @@ -150956,6 +183818,8 @@ "items": { "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Statement" }, + "markdownDescription": "The statements to combine with OR logic\\. You can use any statements that can be nested\\. \n*Required*: Yes \n*Type*: List of [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statements", "type": "array" } }, @@ -150968,16 +183832,24 @@ "additionalProperties": false, "properties": { "AggregateKeyType": { + "markdownDescription": "Setting that indicates how to aggregate the request counts\\. The options are the following: \n+ IP \\- Aggregate the request counts on the IP address from the web request origin\\.\n+ FORWARDED\\_IP \\- Aggregate the request counts on the first IP address in an HTTP header\\. If you use this, configure the `ForwardedIPConfig`, to specify the header to use\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `FORWARDED_IP | IP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AggregateKeyType", "type": "string" }, "ForwardedIPConfig": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ForwardedIPConfiguration" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ForwardedIPConfiguration", + "markdownDescription": "The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin\\. Commonly, this is the X\\-Forwarded\\-For \\(XFF\\) header, but you can specify any header name\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\nThis is required if `AggregateKeyType` is set to `FORWARDED_IP`\\. \n*Required*: No \n*Type*: [ForwardedIPConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-forwardedipconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForwardedIPConfig" }, "Limit": { + "markdownDescription": "The limit on requests per 5\\-minute period for a single originating IP address\\. If the statement includes a `ScopeDownStatement`, this limit is applied only to the requests that match the statement\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Limit", "type": "number" }, "ScopeDownStatement": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Statement" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Statement", + "markdownDescription": "An optional nested statement that narrows the scope of the rate\\-based statement to matching web requests\\. This can be any nestable statement, and you can nest statements at any level below this scope\\-down statement\\. \n*Required*: No \n*Type*: [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScopeDownStatement" } }, "required": [ @@ -150990,15 +183862,21 @@ "additionalProperties": false, "properties": { "FieldToMatch": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. For more information, see `FieldToMatch`\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" }, "RegexString": { + "markdownDescription": "The string representing the regular expression\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegexString", "type": "string" }, "TextTransformations": { "items": { "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation" }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content of the request component identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", "type": "array" } }, @@ -151013,15 +183891,21 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the regular expression pattern set that this statement references\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "FieldToMatch": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" }, "TextTransformations": { "items": { "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation" }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", "type": "array" } }, @@ -151036,31 +183920,45 @@ "additionalProperties": false, "properties": { "Action": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.RuleAction" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.RuleAction", + "markdownDescription": "The action that AWS WAF should take on a web request when it matches the rule's statement\\. Settings at the web ACL level can override the rule action setting\\. \n*Required*: No \n*Type*: [RuleAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ruleaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" }, "CaptchaConfig": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CaptchaConfig" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CaptchaConfig", + "markdownDescription": "Specifies how AWS WAF should handle `CAPTCHA` evaluations\\. If you don't specify this, AWS WAF uses the `CAPTCHA` configuration that's defined for the web ACL\\. \n*Required*: No \n*Type*: [CaptchaConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-captchaconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptchaConfig" }, "ChallengeConfig": { "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ChallengeConfig" }, "Name": { + "markdownDescription": "The descriptive name of the rule\\. You can't change the name of a `Rule` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Priority": { + "markdownDescription": "If you define more than one `Rule` in a `WebACL`, AWS WAF evaluates each request against the `Rules` in order based on the value of `Priority`\\. AWS WAF processes rules with lower priority first\\. The priorities don't need to be consecutive, but they must all be different\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" }, "RuleLabels": { "items": { "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Label" }, + "markdownDescription": "Labels to apply to web requests that match the rule match statement\\. AWS WAF applies fully qualified labels to matching web requests\\. A fully qualified label is the concatenation of a label namespace and a rule label\\. The rule's rule group or web ACL defines the label namespace\\. \nRules that run after this rule in the web ACL can match against these labels using a `LabelMatchStatement`\\. \nFor each label, provide a case\\-sensitive string containing optional namespaces and a label name, according to the following guidelines: \n+ Separate each component of the label with a colon\\. \n+ Each namespace or name can have up to 128 characters\\.\n+ You can specify up to 5 namespaces in a label\\.\n+ Don't use the following reserved words in your label specification: `aws`, `waf`, `managed`, `rulegroup`, `webacl`, `regexpatternset`, or `ipset`\\.\nFor example, `myLabelName` or `nameSpace1:nameSpace2:myLabelName`\\. \n*Required*: No \n*Type*: List of [Label](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-label.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleLabels", "type": "array" }, "Statement": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Statement" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Statement", + "markdownDescription": "The AWS WAF processing statement for the rule, for example ByteMatchStatement or SizeConstraintStatement\\. \n*Required*: Yes \n*Type*: [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statement" }, "VisibilityConfig": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.VisibilityConfig" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.VisibilityConfig", + "markdownDescription": "Defines and enables Amazon CloudWatch metrics and web request sample collection\\. \n*Required*: Yes \n*Type*: [VisibilityConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-visibilityconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VisibilityConfig" } }, "required": [ @@ -151075,19 +183973,27 @@ "additionalProperties": false, "properties": { "Allow": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Allow" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.AllowAction", + "markdownDescription": "Instructs AWS WAF to allow the web request\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Allow" }, "Block": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Block" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.BlockAction", + "markdownDescription": "Instructs AWS WAF to block the web request\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Block" }, "Captcha": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Captcha" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CaptchaAction", + "markdownDescription": "Specifies that AWS WAF should run a `CAPTCHA` check against the request: \n+ If the request includes a valid, unexpired `CAPTCHA` token, AWS WAF allows the web request inspection to proceed to the next rule, similar to a `CountAction`\\. \n+ If the request doesn't include a valid, unexpired `CAPTCHA` token, AWS WAF discontinues the web ACL evaluation of the request and blocks it from going to its intended destination\\.", + "title": "Captcha" }, "Challenge": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Challenge" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ChallengeAction" }, "Count": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Count" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CountAction", + "markdownDescription": "Instructs AWS WAF to count the web request and allow it\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count" } }, "type": "object" @@ -151120,18 +184026,26 @@ "additionalProperties": false, "properties": { "ComparisonOperator": { + "markdownDescription": "The operator to use to compare the request part to the size setting\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EQ | GE | GT | LE | LT | NE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComparisonOperator", "type": "string" }, "FieldToMatch": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" }, "Size": { + "markdownDescription": "The size, in byte, to compare to the request part, after any transformations\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Size", "type": "number" }, "TextTransformations": { "items": { "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation" }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", "type": "array" } }, @@ -151147,7 +184061,9 @@ "additionalProperties": false, "properties": { "FieldToMatch": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" }, "SensitivityLevel": { "type": "string" @@ -151156,6 +184072,8 @@ "items": { "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation" }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", "type": "array" } }, @@ -151169,43 +184087,69 @@ "additionalProperties": false, "properties": { "AndStatement": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.AndStatement" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.AndStatement", + "markdownDescription": "A logical rule statement used to combine other rule statements with AND logic\\. You provide more than one [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-notstatement.html#cfn-wafv2-webacl-notstatement-statement) within the `AndStatement`\\. \n*Required*: No \n*Type*: [AndStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-andstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AndStatement" }, "ByteMatchStatement": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ByteMatchStatement" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ByteMatchStatement", + "markdownDescription": "A rule statement that defines a string match search for AWS WAF to apply to web requests\\. The byte match statement provides the bytes to search for, the location in requests that you want AWS WAF to search, and other settings\\. The bytes to search for are typically a string that corresponds with ASCII characters\\. In the AWS WAF console and the developer guide, this is refered to as a string match statement\\. \n*Required*: No \n*Type*: [ByteMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-bytematchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ByteMatchStatement" }, "GeoMatchStatement": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.GeoMatchStatement" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.GeoMatchStatement", + "markdownDescription": "A rule statement used to identify web requests based on country of origin\\. \n*Required*: No \n*Type*: [GeoMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-geomatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GeoMatchStatement" }, "IPSetReferenceStatement": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.IPSetReferenceStatement" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.IPSetReferenceStatement", + "markdownDescription": "A rule statement used to detect web requests coming from particular IP addresses or address ranges\\. To use this, create an [AWS::WAFv2::IPSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-ipset.html) that specifies the addresses you want to detect, then use the ARN of that set in this statement\\. \nEach IP set rule statement references an IP set\\. You create and maintain the set independent of your rules\\. This allows you to use the single set in multiple rules\\. When you update the referenced set, AWS WAF automatically updates all rules that reference it\\. \n*Required*: No \n*Type*: [IPSetReferenceStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ipsetreferencestatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IPSetReferenceStatement" }, "LabelMatchStatement": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.LabelMatchStatement" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.LabelMatchStatement", + "markdownDescription": "A rule statement that defines a string match search against labels that have been added to the web request by rules that have already run in the web ACL\\. \nThe label match statement provides the label or namespace string to search for\\. The label string can represent a part or all of the fully qualified label name that had been added to the web request\\. Fully qualified labels have a prefix, optional namespaces, and label name\\. The prefix identifies the rule group or web ACL context of the rule that added the label\\. If you do not provide the fully qualified name in your label match string, AWS WAF performs the search for labels that were added in the same context as the label match statement\\. \n*Required*: No \n*Type*: [LabelMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-labelmatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LabelMatchStatement" }, "NotStatement": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.NotStatement" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.NotStatement", + "markdownDescription": "A logical rule statement used to negate the results of another rule statement\\. You provide one [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-notstatement.html#cfn-wafv2-webacl-notstatement-statement) within the `NotStatement`\\. \n*Required*: No \n*Type*: [NotStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-notstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotStatement" }, "OrStatement": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.OrStatement" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.OrStatement", + "markdownDescription": "A logical rule statement used to combine other rule statements with OR logic\\. You provide more than one [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-notstatement.html#cfn-wafv2-webacl-notstatement-statement) within the `OrStatement`\\. \n*Required*: No \n*Type*: [OrStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-orstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrStatement" }, "RateBasedStatement": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.RateBasedStatement" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.RateBasedStatement", + "markdownDescription": "A rate\\-based rule tracks the rate of requests for each originating IP address, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any 5\\-minute time span\\. You can use this to put a temporary block on requests from an IP address that is sending excessive requests\\. \nWhen the rule action triggers, AWS WAF blocks additional requests from the IP address until the request rate falls below the limit\\. \nYou can optionally nest another statement inside the rate\\-based statement, to narrow the scope of the rule so that it only counts requests that match the nested statement\\. For example, based on recent requests that you have seen from an attacker, you might create a rate\\-based rule with a nested AND rule statement that contains the following nested statements: \n+ An IP match statement with an IP set that specified the address 192\\.0\\.2\\.44\\.\n+ A string match statement that searches in the User\\-Agent header for the string BadBot\\.\nIn this rate\\-based rule, you also define a rate limit\\. For this example, the rate limit is 1,000\\. Requests that meet both of the conditions in the statements are counted\\. If the count exceeds 1,000 requests per five minutes, the rule action triggers\\. Requests that do not meet both conditions are not counted towards the rate limit and are not affected by this rule\\. \nYou cannot nest a `RateBasedStatement`, for example for use inside a `NotStatement` or `OrStatement`\\. It can only be referenced as a top\\-level statement within a rule\\. \n*Required*: No \n*Type*: [RateBasedStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ratebasedstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RateBasedStatement" }, "RegexMatchStatement": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.RegexMatchStatement" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.RegexMatchStatement", + "markdownDescription": "A rule statement used to search web request components for a match against a single regular expression\\. \n*Required*: No \n*Type*: [RegexMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-regexmatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegexMatchStatement" }, "RegexPatternSetReferenceStatement": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.RegexPatternSetReferenceStatement" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.RegexPatternSetReferenceStatement", + "markdownDescription": "A rule statement used to search web request components for matches with regular expressions\\. To use this, create a [AWS::WAFv2::RegexPatternSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-regexpatternset.html) that specifies the expressions that you want to detect, then use the ARN of that set in this statement\\. A web request matches the pattern set rule statement if the request component matches any of the patterns in the set\\. \nEach regex pattern set rule statement references a regex pattern set\\. You create and maintain the set independent of your rules\\. This allows you to use the single set in multiple rules\\. When you update the referenced set, AWS WAF automatically updates all rules that reference it\\. \n*Required*: No \n*Type*: [RegexPatternSetReferenceStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-regexpatternsetreferencestatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegexPatternSetReferenceStatement" }, "SizeConstraintStatement": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.SizeConstraintStatement" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.SizeConstraintStatement", + "markdownDescription": "A rule statement that compares a number of bytes against the size of a request component, using a comparison operator, such as greater than \\(>\\) or less than \\(<\\)\\. For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes\\. \nIf you configure AWS WAF to inspect the request body, AWS WAF inspects only the first 8192 bytes \\(8 KB\\)\\. If the request body for your web requests never exceeds 8192 bytes, you can create a size constraint condition and block requests that have a request body greater than 8192 bytes\\. \nIf you choose URI for the value of Part of the request to filter on, the slash \\(/\\) in the URI counts as one character\\. For example, the URI `/logo.jpg` is nine characters long\\. \n*Required*: No \n*Type*: [SizeConstraintStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-sizeconstraintstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SizeConstraintStatement" }, "SqliMatchStatement": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.SqliMatchStatement" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.SqliMatchStatement", + "markdownDescription": "Attackers sometimes insert malicious SQL code into web requests in an effort to extract data from your database\\. To allow or block web requests that appear to contain malicious SQL code, create one or more SQL injection match conditions\\. An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect\\. Later in the process, when you create a web ACL, you specify whether to allow or block requests that appear to contain malicious SQL code\\. \n*Required*: No \n*Type*: [SqliMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-sqlimatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SqliMatchStatement" }, "XssMatchStatement": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.XssMatchStatement" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.XssMatchStatement", + "markdownDescription": "A rule statement that defines a cross\\-site scripting \\(XSS\\) match search for AWS WAF to apply to web requests\\. XSS attacks are those where the attacker uses vulnerabilities in a benign website as a vehicle to inject malicious client\\-site scripts into other legitimate web browsers\\. The XSS match statement provides the location in requests that you want AWS WAF to search and text transformations to use on the search area before AWS WAF searches for character sequences that are likely to be malicious strings\\. \n*Required*: No \n*Type*: [XssMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-xssmatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "XssMatchStatement" } }, "type": "object" @@ -151214,9 +184158,13 @@ "additionalProperties": false, "properties": { "Priority": { + "markdownDescription": "Sets the relative processing order for multiple transformations that are defined for a rule statement\\. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content\\. The priorities don't need to be consecutive, but they must all be different\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" }, "Type": { + "markdownDescription": "You can specify the following transformation types: \n **BASE64\\_DECODE** \\- Decode a `Base64`\\-encoded string\\. \n **BASE64\\_DECODE\\_EXT** \\- Decode a `Base64`\\-encoded string, but use a forgiving implementation that ignores characters that aren't valid\\. \n **CMD\\_LINE** \\- Command\\-line transformations\\. These are helpful in reducing effectiveness of attackers who inject an operating system command\\-line command and use unusual formatting to disguise some or all of the command\\. \n+ Delete the following characters: `\\ \" ' ^` \n+ Delete spaces before the following characters: `/ (` \n+ Replace the following characters with a space: `, ;` \n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \\- Replace these characters with a space character \\(decimal 32\\): \n+ `\\f`, formfeed, decimal 12\n+ `\\t`, tab, decimal 9\n+ `\\n`, newline, decimal 10\n+ `\\r`, carriage return, decimal 13\n+ `\\v`, vertical tab, decimal 11\n+ Non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **CSS\\_DECODE** \\- Decode characters that were encoded using CSS 2\\.x escape rules `syndata.html#characters`\\. This function uses up to two bytes in the decoding process, so it can help to uncover ASCII characters that were encoded using CSS encoding that wouldn\u2019t typically be encoded\\. It's also useful in countering evasion, which is a combination of a backslash and non\\-hexadecimal characters\\. For example, `ja\\vascript` for javascript\\. \n **ESCAPE\\_SEQ\\_DECODE** \\- Decode the following ANSI C escape sequences: `\\a`, `\\b`, `\\f`, `\\n`, `\\r`, `\\t`, `\\v`, `\\\\`, `\\?`, `\\'`, `\\\"`, `\\xHH` \\(hexadecimal\\), `\\0OOO` \\(octal\\)\\. Encodings that aren't valid remain in the output\\. \n **HEX\\_DECODE** \\- Decode a string of hexadecimal characters into a binary\\. \n **HTML\\_ENTITY\\_DECODE** \\- Replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs these operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **JS\\_DECODE** \\- Decode JavaScript escape sequences\\. If a `\\` `u` `HHHH` code is in the full\\-width ASCII code range of `FF01-FF5E`, then the higher byte is used to detect and adjust the lower byte\\. If not, only the lower byte is used and the higher byte is zeroed, causing a possible loss of information\\. \n **LOWERCASE** \\- Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **MD5** \\- Calculate an MD5 hash from the data in the input\\. The computed hash is in a raw binary form\\. \n **NONE** \\- Specify `NONE` if you don't want any text transformations\\. \n **NORMALIZE\\_PATH** \\- Remove multiple slashes, directory self\\-references, and directory back\\-references that are not at the beginning of the input from an input string\\. \n **NORMALIZE\\_PATH\\_WIN** \\- This is the same as `NORMALIZE_PATH`, but first converts backslash characters to forward slashes\\. \n **REMOVE\\_NULLS** \\- Remove all `NULL` bytes from the input\\. \n **REPLACE\\_COMMENTS** \\- Replace each occurrence of a C\\-style comment \\(`/* ... */`\\) with a single space\\. Multiple consecutive occurrences are not compressed\\. Unterminated comments are also replaced with a space \\(ASCII 0x20\\)\\. However, a standalone termination of a comment \\(`*/`\\) is not acted upon\\. \n **REPLACE\\_NULLS** \\- Replace NULL bytes in the input with space characters \\(ASCII `0x20`\\)\\. \n **SQL\\_HEX\\_DECODE** \\- Decode SQL hex data\\. Example \\(`0x414243`\\) will be decoded to \\(`ABC`\\)\\. \n **URL\\_DECODE** \\- Decode a URL\\-encoded value\\. \n **URL\\_DECODE\\_UNI** \\- Like `URL_DECODE`, but with support for Microsoft\\-specific `%u` encoding\\. If the code is in the full\\-width ASCII code range of `FF01-FF5E`, the higher byte is used to detect and adjust the lower byte\\. Otherwise, only the lower byte is used and the higher byte is zeroed\\. \n **UTF8\\_TO\\_UNICODE** \\- Convert all UTF\\-8 character sequences to Unicode\\. This helps input normalization, and minimizing false\\-positives and false\\-negatives for non\\-English languages\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BASE64_DECODE | BASE64_DECODE_EXT | CMD_LINE | COMPRESS_WHITE_SPACE | CSS_DECODE | ESCAPE_SEQ_DECODE | HEX_DECODE | HTML_ENTITY_DECODE | JS_DECODE | LOWERCASE | MD5 | NONE | NORMALIZE_PATH | NORMALIZE_PATH_WIN | REMOVE_NULLS | REPLACE_COMMENTS | REPLACE_NULLS | SQL_HEX_DECODE | URL_DECODE | URL_DECODE_UNI | UTF8_TO_UNICODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -151230,12 +184178,18 @@ "additionalProperties": false, "properties": { "CloudWatchMetricsEnabled": { + "markdownDescription": "A boolean indicating whether the associated resource sends metrics to Amazon CloudWatch\\. For the list of available metrics, see [AWS WAF Metrics](https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchMetricsEnabled", "type": "boolean" }, "MetricName": { + "markdownDescription": "The descriptive name of the Amazon CloudWatch metric\\. The name can contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\), with length from one to 128 characters\\. It can't contain whitespace or metric names reserved for AWS WAF, for example \"All\" and \"Default\\_Action\\.\" You can't change a `MetricName` after you create a `VisibilityConfig`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[\\w#:\\.\\-/]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", "type": "string" }, "SampledRequestsEnabled": { + "markdownDescription": "A boolean indicating whether AWS WAF should store a sampling of the web requests that match the rules\\. You can view the sampled requests through the AWS WAF console\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SampledRequestsEnabled", "type": "boolean" } }, @@ -151250,12 +184204,16 @@ "additionalProperties": false, "properties": { "FieldToMatch": { - "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch" + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" }, "TextTransformations": { "items": { "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation" }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", "type": "array" } }, @@ -151301,42 +184259,58 @@ "additionalProperties": false, "properties": { "CaptchaConfig": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.CaptchaConfig" + "$ref": "#/definitions/AWS::WAFv2::WebACL.CaptchaConfig", + "markdownDescription": "Specifies how AWS WAF should handle `CAPTCHA` evaluations for rules that don't have their own `CaptchaConfig` settings\\. If you don't specify this, AWS WAF uses its default settings for `CaptchaConfig`\\. \n*Required*: No \n*Type*: [CaptchaConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-captchaconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptchaConfig" }, "ChallengeConfig": { "$ref": "#/definitions/AWS::WAFv2::WebACL.ChallengeConfig" }, "CustomResponseBodies": { "additionalProperties": false, + "markdownDescription": "A map of custom response keys and content bodies\\. When you create a rule with a block action, you can send a custom response to the web request\\. You define these for the web ACL, and then use them in the rules and default actions that you define in the web ACL\\. \nFor information about customizing web requests and responses, see [Customizing web requests and responses in AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \nFor information about the limits on count and size for custom request and response settings, see [AWS WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: No \n*Type*: Map of [CustomResponseBody](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customresponsebody.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomResponseBody" } }, + "title": "CustomResponseBodies", "type": "object" }, "DefaultAction": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.DefaultAction" + "$ref": "#/definitions/AWS::WAFv2::WebACL.DefaultAction", + "markdownDescription": "The action to perform if none of the `Rules` contained in the `WebACL` match\\. \n*Required*: Yes \n*Type*: [DefaultAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-defaultaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultAction" }, "Description": { + "markdownDescription": "A description of the web ACL that helps with identification\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[\\w+=:#@/\\-,\\.][\\w+=:#@/\\-,\\.\\s]+[\\w+=:#@/\\-,\\.]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The descriptive name of the web ACL\\. You cannot change the name of a web ACL after you create it\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "Rules": { "items": { "$ref": "#/definitions/AWS::WAFv2::WebACL.Rule" }, + "markdownDescription": "The rule statements used to identify the web requests that you want to allow, block, or count\\. Each rule includes one top\\-level statement that AWS WAF uses to identify matching web requests, and parameters that govern how AWS WAF handles them\\. \n*Required*: No \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", "type": "array" }, "Scope": { + "markdownDescription": "Specifies whether this is for an Amazon CloudFront distribution or for a regional application\\. A regional application can be an Application Load Balancer \\(ALB\\), an Amazon API Gateway REST API, or an AWS AppSync GraphQL API\\. Valid Values are `CLOUDFRONT` and `REGIONAL`\\. \nFor `CLOUDFRONT`, you must create your WAFv2 resources in the US East \\(N\\. Virginia\\) Region, `us-east-1`\\.\nFor information about how to define the association of the web ACL with your resource, see [AWS::WAFv2::WebACLAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webaclassociation.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Scope", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "Key:value pairs associated with an AWS resource\\. The key:value pair can be anything you define\\. Typically, the tag key represents a category \\(such as \"environment\"\\) and the tag value represents a specific value within that category \\(such as \"test,\" \"development,\" or \"production\"\\)\\. You can add up to 50 tags to each AWS resource\\. \nTo modify tags on existing resources, use the AWS WAF APIs or command line interface\\. With AWS CloudFormation, you can only add tags to AWS WAF resources during resource creation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TokenDomains": { @@ -151346,7 +184320,9 @@ "type": "array" }, "VisibilityConfig": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.VisibilityConfig" + "$ref": "#/definitions/AWS::WAFv2::WebACL.VisibilityConfig", + "markdownDescription": "Defines and enables Amazon CloudWatch metrics and web request sample collection\\. \n*Required*: Yes \n*Type*: [VisibilityConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-visibilityconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VisibilityConfig" } }, "required": [ @@ -151393,7 +184369,9 @@ "additionalProperties": false, "properties": { "CustomRequestHandling": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomRequestHandling" + "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomRequestHandling", + "markdownDescription": "Defines custom handling for the web request\\. \nFor information about customizing web requests and responses, see [Customizing web requests and responses in AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: No \n*Type*: [CustomRequestHandling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customrequesthandling.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomRequestHandling" } }, "type": "object" @@ -151405,6 +184383,8 @@ "items": { "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement" }, + "markdownDescription": "The statements to combine with AND logic\\. You can use any statements that can be nested\\. \n*Required*: Yes \n*Type*: List of [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statements", "type": "array" } }, @@ -151417,7 +184397,9 @@ "additionalProperties": false, "properties": { "CustomResponse": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomResponse" + "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomResponse", + "markdownDescription": "Defines a custom response for the web request\\. \nFor information about customizing web requests and responses, see [Customizing web requests and responses in AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: No \n*Type*: [CustomResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customresponse.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomResponse" } }, "type": "object" @@ -151435,21 +184417,31 @@ "additionalProperties": false, "properties": { "FieldToMatch": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch" + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" }, "PositionalConstraint": { + "markdownDescription": "The area within the portion of a web request that you want AWS WAF to search for `SearchString`\\. Valid values include the following: \n **CONTAINS** \nThe specified part of the web request must include the value of `SearchString`, but the location doesn't matter\\. \n **CONTAINS\\_WORD** \nThe specified part of the web request must include the value of `SearchString`, and `SearchString` must contain only alphanumeric characters or underscore \\(A\\-Z, a\\-z, 0\\-9, or \\_\\)\\. In addition, `SearchString` must be a word, which means that both of the following are true: \n+ `SearchString` is at the beginning of the specified part of the web request or is preceded by a character other than an alphanumeric character or underscore \\(\\_\\)\\. Examples include the value of a header and `;BadBot`\\.\n+ `SearchString` is at the end of the specified part of the web request or is followed by a character other than an alphanumeric character or underscore \\(\\_\\), for example, `BadBot;` and `-BadBot;`\\.\n **EXACTLY** \nThe value of the specified part of the web request must exactly match the value of `SearchString`\\. \n **STARTS\\_WITH** \nThe value of `SearchString` must appear at the beginning of the specified part of the web request\\. \n **ENDS\\_WITH** \nThe value of `SearchString` must appear at the end of the specified part of the web request\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CONTAINS | CONTAINS_WORD | ENDS_WITH | EXACTLY | STARTS_WITH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PositionalConstraint", "type": "string" }, "SearchString": { + "markdownDescription": "A string value that you want AWS WAF to search for\\. AWS WAF searches only in the part of web requests that you designate for inspection in `FieldToMatch`\\. The maximum length of the value is 50 bytes\\. For alphabetic characters A\\-Z and a\\-z, the value is case sensitive\\. \nDon't encode this string\\. Provide the value that you want AWS WAF to search for\\. AWS CloudFormation automatically base64 encodes the value for you\\. \nFor example, suppose the value of `Type` is `HEADER` and the value of `Data` is `User-Agent`\\. If you want to search the `User-Agent` header for the value `BadBot`, you provide the string `BadBot` in the value of `SearchString`\\. \nYou must specify either `SearchString` or `SearchStringBase64` in a `ByteMatchStatement`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SearchString", "type": "string" }, "SearchStringBase64": { + "markdownDescription": "String to search for in a web request component, base64\\-encoded\\. If you don't want to encode the string, specify the unencoded value in `SearchString` instead\\. \nYou must specify either `SearchString` or `SearchStringBase64` in a `ByteMatchStatement`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SearchStringBase64", "type": "string" }, "TextTransformations": { "items": { "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation" }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", "type": "array" } }, @@ -151464,7 +184456,9 @@ "additionalProperties": false, "properties": { "CustomRequestHandling": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomRequestHandling" + "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomRequestHandling", + "markdownDescription": "Defines custom handling for the web request\\. \nFor information about customizing web requests and responses, see [Customizing web requests and responses in AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: No \n*Type*: [CustomRequestHandling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customrequesthandling.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomRequestHandling" } }, "type": "object" @@ -151473,7 +184467,9 @@ "additionalProperties": false, "properties": { "ImmunityTimeProperty": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.ImmunityTimeProperty" + "$ref": "#/definitions/AWS::WAFv2::WebACL.ImmunityTimeProperty", + "markdownDescription": "Determines how long a `CAPTCHA` token remains valid after the client successfully solves a `CAPTCHA` puzzle\\. \n*Required*: No \n*Type*: [ImmunityTimeProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-immunitytimeproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImmunityTimeProperty" } }, "type": "object" @@ -151541,7 +184537,9 @@ "additionalProperties": false, "properties": { "CustomRequestHandling": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomRequestHandling" + "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomRequestHandling", + "markdownDescription": "Defines custom handling for the web request\\. \nFor information about customizing web requests and responses, see [Customizing web requests and responses in AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: No \n*Type*: [CustomRequestHandling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customrequesthandling.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomRequestHandling" } }, "type": "object" @@ -151550,9 +184548,13 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the custom header\\. \nFor custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request\\. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9._$-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Value": { + "markdownDescription": "The value of the custom header\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", "type": "string" } }, @@ -151569,6 +184571,8 @@ "items": { "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomHTTPHeader" }, + "markdownDescription": "The HTTP headers to insert into the request\\. Duplicate header names are not allowed\\. \nFor information about the limits on count and size for custom request and response settings, see [AWS WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: Yes \n*Type*: List of [CustomHTTPHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customhttpheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InsertHeaders", "type": "array" } }, @@ -151581,15 +184585,21 @@ "additionalProperties": false, "properties": { "CustomResponseBodyKey": { + "markdownDescription": "References the response body that you want AWS WAF to return to the web request client\\. You can define a custom response for a rule action or a default web ACL action that is set to block\\. To do this, you first define the response body key and value in the `CustomResponseBodies` setting for the [AWS::WAFv2::WebACL](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html) or [AWS::WAFv2::RuleGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-rulegroup.html) where you want to use it\\. Then, in the rule action or web ACL default action `BlockAction` setting, you reference the response body using this key\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomResponseBodyKey", "type": "string" }, "ResponseCode": { + "markdownDescription": "The HTTP status code to return to the client\\. \nFor a list of status codes that you can use in your custom reqponses, see [Supported status codes for custom response](https://docs.aws.amazon.com/waf/latest/developerguide/customizing-the-response-status-codes.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `200` \n*Maximum*: `599` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseCode", "type": "number" }, "ResponseHeaders": { "items": { "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomHTTPHeader" }, + "markdownDescription": "The HTTP headers to use in the response\\. Duplicate header names are not allowed\\. \nFor information about the limits on count and size for custom request and response settings, see [AWS WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: No \n*Type*: List of [CustomHTTPHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customhttpheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseHeaders", "type": "array" } }, @@ -151602,9 +184612,13 @@ "additionalProperties": false, "properties": { "Content": { + "markdownDescription": "The payload of the custom response\\. \nYou can use JSON escape strings in JSON content\\. To do this, you must specify JSON content in the `ContentType` setting\\. \nFor information about the limits on count and size for custom request and response settings, see [AWS WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `10240` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Content", "type": "string" }, "ContentType": { + "markdownDescription": "The type of content in the payload that you are defining in the `Content` string\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `APPLICATION_JSON | TEXT_HTML | TEXT_PLAIN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentType", "type": "string" } }, @@ -151618,10 +184632,14 @@ "additionalProperties": false, "properties": { "Allow": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.AllowAction" + "$ref": "#/definitions/AWS::WAFv2::WebACL.AllowAction", + "markdownDescription": "Specifies that AWS WAF should allow requests by default\\. \n*Required*: No \n*Type*: [AllowAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-allowaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Allow" }, "Block": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.BlockAction" + "$ref": "#/definitions/AWS::WAFv2::WebACL.BlockAction", + "markdownDescription": "Specifies that AWS WAF should block requests by default\\. \n*Required*: No \n*Type*: [BlockAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-blockaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Block" } }, "type": "object" @@ -151630,6 +184648,8 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The name of the rule to exclude\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -151642,6 +184662,8 @@ "additionalProperties": false, "properties": { "Identifier": { + "markdownDescription": "The name of the username or password field, used in the `ManagedRuleGroupConfig` settings\\. \nWhen the `PayloadType` is `JSON`, the identifier must be in JSON pointer syntax\\. For example `/form/username`\\. For information about the JSON Pointer syntax, see the Internet Engineering Task Force \\(IETF\\) documentation [JavaScript Object Notation \\(JSON\\) Pointer](https://tools.ietf.org/html/rfc6901)\\. \nWhen the `PayloadType` is `FORM_ENCODED`, use the HTML form names\\. For example, `username`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Identifier", "type": "string" } }, @@ -151654,10 +184676,14 @@ "additionalProperties": false, "properties": { "AllQueryArguments": { + "markdownDescription": "Inspect all query arguments\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllQueryArguments", "type": "object" }, "Body": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.Body" + "$ref": "#/definitions/AWS::WAFv2::WebACL.Body", + "markdownDescription": "Inspect the request body, which immediately follows the request headers\\. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. \nNote that only the first 8 KB \\(8192 bytes\\) of the request body are forwarded to AWS WAF for inspection by the underlying host service\\. If you don't need to inspect more than 8 KB, you can guarantee that you don't allow additional bytes in by combining a statement that inspects the body of the web request, such as the `ByteMatchStatement` or `RegexPatternSetReferenceStatement`, with a `SizeConstraintStatement` that enforces an 8 KB size limit on the body of the request\\. AWS WAF doesn't support inspecting the entire contents of web requests whose bodies exceed the 8 KB limit\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body" }, "Cookies": { "$ref": "#/definitions/AWS::WAFv2::WebACL.Cookies" @@ -151666,21 +184692,33 @@ "$ref": "#/definitions/AWS::WAFv2::WebACL.Headers" }, "JsonBody": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.JsonBody" + "$ref": "#/definitions/AWS::WAFv2::WebACL.JsonBody", + "markdownDescription": "Inspect the request body as JSON\\. The request body immediately follows the request headers\\. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. \nNote that only the first 8 KB \\(8192 bytes\\) of the request body are forwarded to AWS WAF for inspection by the underlying host service\\. If you don't need to inspect more than 8 KB, you can guarantee that you don't allow additional bytes in by combining a statement that inspects the body of the web request, such as the `ByteMatchStatement` or `RegexPatternSetReferenceStatement`, with a `SizeConstraintStatement` that enforces an 8 KB size limit on the body of the request\\. AWS WAF doesn't support inspecting the entire contents of web requests whose bodies exceed the 8 KB limit\\. \n*Required*: No \n*Type*: [JsonBody](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-jsonbody.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JsonBody" }, "Method": { + "markdownDescription": "Inspect the HTTP method\\. The method indicates the type of operation that the request is asking the origin to perform\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Method", "type": "object" }, "QueryString": { + "markdownDescription": "Inspect the query string\\. This is the part of a URL that appears after a `?` character, if any\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryString", "type": "object" }, "SingleHeader": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.SingleHeader" + "$ref": "#/definitions/AWS::WAFv2::WebACL.SingleHeader", + "markdownDescription": "Inspect a single header\\. Provide the name of the header to inspect, for example, `User-Agent` or `Referer`\\. This setting isn't case sensitive\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SingleHeader" }, "SingleQueryArgument": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.SingleQueryArgument" + "$ref": "#/definitions/AWS::WAFv2::WebACL.SingleQueryArgument", + "markdownDescription": "Inspect a single query argument\\. Provide the name of the query argument to inspect, such as *UserName* or *SalesRegion*\\. The name can be up to 30 characters long and isn't case sensitive\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SingleQueryArgument" }, "UriPath": { + "markdownDescription": "Inspect the request URI path\\. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UriPath", "type": "object" } }, @@ -151690,9 +184728,13 @@ "additionalProperties": false, "properties": { "FallbackBehavior": { + "markdownDescription": "The match status to assign to the web request if the request doesn't have a valid IP address in the specified position\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\nYou can specify the following fallback behaviors: \n+ `MATCH` \\- Treat the web request as matching the rule statement\\. AWS WAF applies the rule action to the request\\.\n+ `NO_MATCH` \\- Treat the web request as not matching the rule statement\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `MATCH | NO_MATCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FallbackBehavior", "type": "string" }, "HeaderName": { + "markdownDescription": "The name of the HTTP header to use for the IP address\\. For example, to use the X\\-Forwarded\\-For \\(XFF\\) header, set this to `X-Forwarded-For`\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderName", "type": "string" } }, @@ -151709,10 +184751,14 @@ "items": { "type": "string" }, + "markdownDescription": "An array of two\\-character country codes, for example, `[ \"US\", \"CN\" ]`, from the alpha\\-2 country ISO codes of the ISO 3166 international standard\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CountryCodes", "type": "array" }, "ForwardedIPConfig": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.ForwardedIPConfiguration" + "$ref": "#/definitions/AWS::WAFv2::WebACL.ForwardedIPConfiguration", + "markdownDescription": "The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin\\. Commonly, this is the X\\-Forwarded\\-For \\(XFF\\) header, but you can specify any header name\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: No \n*Type*: [ForwardedIPConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-forwardedipconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForwardedIPConfig" } }, "type": "object" @@ -151762,12 +184808,18 @@ "additionalProperties": false, "properties": { "FallbackBehavior": { + "markdownDescription": "The match status to assign to the web request if the request doesn't have a valid IP address in the specified position\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\nYou can specify the following fallback behaviors: \n+ `MATCH` \\- Treat the web request as matching the rule statement\\. AWS WAF applies the rule action to the request\\.\n+ `NO_MATCH` \\- Treat the web request as not matching the rule statement\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `MATCH | NO_MATCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FallbackBehavior", "type": "string" }, "HeaderName": { + "markdownDescription": "The name of the HTTP header to use for the IP address\\. For example, to use the X\\-Forwarded\\-For \\(XFF\\) header, set this to `X-Forwarded-For`\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderName", "type": "string" }, "Position": { + "markdownDescription": "The position in the header to search for the IP address\\. The header can contain IP addresses of the original client and also of proxies\\. For example, the header value could be `10.1.1.1, 127.0.0.0, 10.10.10.10` where the first IP address identifies the original client and the rest identify proxies that the request went through\\. \nThe options for this setting are the following: \n+ FIRST \\- Inspect the first IP address in the list of IP addresses in the header\\. This is usually the client's original IP\\.\n+ LAST \\- Inspect the last IP address in the list of IP addresses in the header\\.\n+ ANY \\- Inspect all IP addresses in the header for a match\\. If the header contains more than 10 IP addresses, AWS WAF inspects the last 10\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ANY | FIRST | LAST` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Position", "type": "string" } }, @@ -151782,10 +184834,14 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IP set that this statement references\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "IPSetForwardedIPConfig": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.IPSetForwardedIPConfiguration" + "$ref": "#/definitions/AWS::WAFv2::WebACL.IPSetForwardedIPConfiguration", + "markdownDescription": "The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin\\. Commonly, this is the X\\-Forwarded\\-For \\(XFF\\) header, but you can specify any header name\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: No \n*Type*: [IPSetForwardedIPConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ipsetforwardedipconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IPSetForwardedIPConfig" } }, "required": [ @@ -151797,6 +184853,8 @@ "additionalProperties": false, "properties": { "ImmunityTime": { + "markdownDescription": "The amount of time, in seconds, that a `CAPTCHA` token is valid\\. The default setting is 300\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImmunityTime", "type": "number" } }, @@ -151809,12 +184867,18 @@ "additionalProperties": false, "properties": { "InvalidFallbackBehavior": { + "markdownDescription": "What AWS WAF should do if it fails to completely parse the JSON body\\. The options are the following: \n+ `EVALUATE_AS_STRING` \\- Inspect the body as plain text\\. AWS WAF applies the text transformations and inspection criteria that you defined for the JSON inspection to the body text string\\.\n+ `MATCH` \\- Treat the web request as matching the rule statement\\. AWS WAF applies the rule action to the request\\.\n+ `NO_MATCH` \\- Treat the web request as not matching the rule statement\\.\nIf you don't provide this setting, AWS WAF parses and evaluates the content only up to the first parsing failure that it encounters\\. \nAWS WAF does its best to parse the entire JSON body, but might be forced to stop for reasons such as invalid characters, duplicate keys, truncation, and any content whose root node isn't an object or an array\\. \nAWS WAF parses the JSON in the following examples as two valid key, value pairs: \n+ Missing comma: `{\"key1\":\"value1\"\"key2\":\"value2\"}` \n+ Missing colon: `{\"key1\":\"value1\",\"key2\"\"value2\"}` \n+ Extra colons: `{\"key1\"::\"value1\",\"key2\"\"value2\"}` \n*Required*: No \n*Type*: String \n*Allowed values*: `EVALUATE_AS_STRING | MATCH | NO_MATCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InvalidFallbackBehavior", "type": "string" }, "MatchPattern": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.JsonMatchPattern" + "$ref": "#/definitions/AWS::WAFv2::WebACL.JsonMatchPattern", + "markdownDescription": "The patterns to look for in the JSON body\\. AWS WAF inspects the results of these pattern matches against the rule inspection criteria\\. \n*Required*: Yes \n*Type*: [JsonMatchPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-jsonmatchpattern.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MatchPattern" }, "MatchScope": { + "markdownDescription": "The parts of the JSON to match against using the `MatchPattern`\\. If you specify `All`, AWS WAF matches against keys and values\\. \nValid Values: `ALL` \\| `KEY` \\| `VALUE` \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL | KEY | VALUE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MatchScope", "type": "string" }, "OversizeHandling": { @@ -151831,12 +184895,16 @@ "additionalProperties": false, "properties": { "All": { + "markdownDescription": "Match all of the elements\\. See also `MatchScope` in `JsonBody`\\. \nYou must specify either this setting or the `IncludedPaths` setting, but not both\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "All", "type": "object" }, "IncludedPaths": { "items": { "type": "string" }, + "markdownDescription": "Match only the specified include paths\\. See also `MatchScope` in `JsonBody`\\. \nProvide the include paths using JSON Pointer syntax\\. For example, `\"IncludedPaths\": [\"/dogs/0/name\", \"/dogs/1/name\"]`\\. For information about this syntax, see the Internet Engineering Task Force \\(IETF\\) documentation [JavaScript Object Notation \\(JSON\\) Pointer](https://tools.ietf.org/html/rfc6901)\\. \nYou must specify either this setting or the `All` setting, but not both\\. \nDon't use this option to include all paths\\. Instead, use the `All` setting\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludedPaths", "type": "array" } }, @@ -151846,6 +184914,8 @@ "additionalProperties": false, "properties": { "Name": { + "markdownDescription": "The label string\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `^[0-9A-Za-z_\\-:]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" } }, @@ -151858,9 +184928,13 @@ "additionalProperties": false, "properties": { "Key": { + "markdownDescription": "The string to match against\\. The setting you provide for this depends on the match statement's `Scope` setting: \n+ If the `Scope` indicates `LABEL`, then this specification must include the name and can include any number of preceding namespace specifications and prefix up to providing the fully qualified label name\\. \n+ If the `Scope` indicates `NAMESPACE`, then this specification can include any number of contiguous namespace strings, and can include the entire label namespace prefix from the rule group or web ACL where the label originates\\.\nLabels are case sensitive and components of a label must be separated by colon, for example `NS1:NS2:name`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", "type": "string" }, "Scope": { + "markdownDescription": "Specify whether you want to match using the label name or just the namespace\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scope", "type": "string" } }, @@ -151877,16 +184951,24 @@ "$ref": "#/definitions/AWS::WAFv2::WebACL.AWSManagedRulesBotControlRuleSet" }, "LoginPath": { + "markdownDescription": "The path of the login endpoint for your application\\. For example, for the URL `https://example.com/web/login`, you would provide the path `/web/login`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoginPath", "type": "string" }, "PasswordField": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldIdentifier" + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldIdentifier", + "markdownDescription": "Details about your login page password field\\. \n*Required*: No \n*Type*: [FieldIdentifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldidentifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PasswordField" }, "PayloadType": { + "markdownDescription": "The payload type for your login endpoint, either JSON or form encoded\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `FORM_ENCODED | JSON` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PayloadType", "type": "string" }, "UsernameField": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldIdentifier" + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldIdentifier", + "markdownDescription": "Details about your login page username field\\. \n*Required*: No \n*Type*: [FieldIdentifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldidentifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UsernameField" } }, "type": "object" @@ -151898,15 +184980,21 @@ "items": { "$ref": "#/definitions/AWS::WAFv2::WebACL.ExcludedRule" }, + "markdownDescription": "The rules whose actions are set to `COUNT` by the web ACL, regardless of the action that is configured in the rule\\. This effectively excludes the rule from acting on web requests\\. \n*Required*: No \n*Type*: List of [ExcludedRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-excludedrule.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludedRules", "type": "array" }, "ManagedRuleGroupConfigs": { "items": { "$ref": "#/definitions/AWS::WAFv2::WebACL.ManagedRuleGroupConfig" }, + "markdownDescription": "Additional information that's used by a managed rule group\\. Most managed rule groups don't require this\\. \nUse this for the account takeover prevention managed rule group `AWSManagedRulesATPRuleSet`, to provide information about the sign\\-in page of your application\\. \nYou can provide multiple individual `ManagedRuleGroupConfig` objects for any rule group configuration, for example `UsernameField` and `PasswordField`\\. The configuration that you provide depends on the needs of the managed rule group\\. For the ATP managed rule group, you provide the following individual configuration objects: `LoginPath`, `PasswordField`, `PayloadType` and `UsernameField`\\. \n*Required*: No \n*Type*: List of [ManagedRuleGroupConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-managedrulegroupconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManagedRuleGroupConfigs", "type": "array" }, "Name": { + "markdownDescription": "The name of the managed rule group\\. You use this, along with the vendor name, to identify the rule group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "RuleActionOverrides": { @@ -151916,12 +185004,18 @@ "type": "array" }, "ScopeDownStatement": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement" + "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement", + "markdownDescription": "Statement nested inside a managed rule group statement to narrow the scope of the requests that AWS WAF evaluates using the rule group\\. Requests that match the scope\\-down statement are evaluated using the rule group\\. Requests that don't match the scope\\-down statement are not a match for the managed rule group statement, without any further evaluation\\. \n*Required*: No \n*Type*: [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScopeDownStatement" }, "VendorName": { + "markdownDescription": "The name of the managed rule group vendor\\. You use this, along with the rule group name, to identify the rule group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VendorName", "type": "string" }, "Version": { + "markdownDescription": "The version of the managed rule group to use\\. If you specify this, the version setting is fixed until you change it\\. If you don't specify this, AWS WAF uses the vendor's default version, and then keeps the version at the vendor's default when the vendor updates the managed rule group settings\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "string" } }, @@ -151935,7 +185029,9 @@ "additionalProperties": false, "properties": { "Statement": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement" + "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement", + "markdownDescription": "The statement to negate\\. You can use any statement that can be nested\\. \n*Required*: Yes \n*Type*: [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statement" } }, "required": [ @@ -151950,6 +185046,8 @@ "items": { "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement" }, + "markdownDescription": "The statements to combine with OR logic\\. You can use any statements that can be nested\\. \n*Required*: Yes \n*Type*: List of [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statements", "type": "array" } }, @@ -151962,9 +185060,13 @@ "additionalProperties": false, "properties": { "Count": { + "markdownDescription": "Override the rule action settings to count\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count", "type": "object" }, "None": { + "markdownDescription": "Don't override the rule action settings\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "None", "type": "object" } }, @@ -151974,16 +185076,24 @@ "additionalProperties": false, "properties": { "AggregateKeyType": { + "markdownDescription": "Setting that indicates how to aggregate the request counts\\. The options are the following: \n+ IP \\- Aggregate the request counts on the IP address from the web request origin\\.\n+ FORWARDED\\_IP \\- Aggregate the request counts on the first IP address in an HTTP header\\. If you use this, configure the `ForwardedIPConfig`, to specify the header to use\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `FORWARDED_IP | IP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AggregateKeyType", "type": "string" }, "ForwardedIPConfig": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.ForwardedIPConfiguration" + "$ref": "#/definitions/AWS::WAFv2::WebACL.ForwardedIPConfiguration", + "markdownDescription": "The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin\\. Commonly, this is the X\\-Forwarded\\-For \\(XFF\\) header, but you can specify any header name\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\nThis is required if `AggregateKeyType` is set to `FORWARDED_IP`\\. \n*Required*: No \n*Type*: [ForwardedIPConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-forwardedipconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForwardedIPConfig" }, "Limit": { + "markdownDescription": "The limit on requests per 5\\-minute period for a single originating IP address\\. If the statement includes a `ScopeDownStatement`, this limit is applied only to the requests that match the statement\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Limit", "type": "number" }, "ScopeDownStatement": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement" + "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement", + "markdownDescription": "An optional nested statement that narrows the scope of the rate\\-based statement to matching web requests\\. This can be any nestable statement, and you can nest statements at any level below this scope\\-down statement\\. \n*Required*: No \n*Type*: [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScopeDownStatement" } }, "required": [ @@ -151996,15 +185106,21 @@ "additionalProperties": false, "properties": { "FieldToMatch": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch" + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. For more information, see `FieldToMatch`\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" }, "RegexString": { + "markdownDescription": "The string representing the regular expression\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegexString", "type": "string" }, "TextTransformations": { "items": { "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation" }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content of the request component identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", "type": "array" } }, @@ -152019,15 +185135,21 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the regular expression pattern set that this statement references\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "FieldToMatch": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch" + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" }, "TextTransformations": { "items": { "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation" }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", "type": "array" } }, @@ -152042,34 +185164,50 @@ "additionalProperties": false, "properties": { "Action": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.RuleAction" + "$ref": "#/definitions/AWS::WAFv2::WebACL.RuleAction", + "markdownDescription": "The action that AWS WAF should take on a web request when it matches the rule's statement\\. Settings at the web ACL level can override the rule action setting\\. \nThis is used only for rules whose statements don't reference a rule group\\. Rule statements that reference a rule group are `RuleGroupReferenceStatement` and `ManagedRuleGroupStatement`\\. \nYou must set either this `Action` setting or the rule's `OverrideAction`, but not both: \n+ If the rule statement doesn't reference a rule group, you must set this rule action setting and you must not set the rule's override action setting\\. \n+ If the rule statement references a rule group, you must not set this action setting, because the actions are already set on the rules inside the rule group\\. You must set the rule's override action setting to indicate specifically whether to override the actions that are set on the rules in the rule group\\. \n*Required*: Conditional \n*Type*: [RuleAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ruleaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" }, "CaptchaConfig": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.CaptchaConfig" + "$ref": "#/definitions/AWS::WAFv2::WebACL.CaptchaConfig", + "markdownDescription": "Specifies how AWS WAF should handle `CAPTCHA` evaluations\\. If you don't specify this, AWS WAF uses the `CAPTCHA` configuration that's defined for the web ACL\\. \n*Required*: No \n*Type*: [CaptchaConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-captchaconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptchaConfig" }, "ChallengeConfig": { "$ref": "#/definitions/AWS::WAFv2::WebACL.ChallengeConfig" }, "Name": { + "markdownDescription": "The descriptive name of the rule\\. You can't change the name of a `Rule` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "OverrideAction": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.OverrideAction" + "$ref": "#/definitions/AWS::WAFv2::WebACL.OverrideAction", + "markdownDescription": "The override action to apply to the rules in a rule group, instead of the individual rule action settings\\. This is used only for rules whose statements reference a rule group\\. Rule statements that reference a rule group are `RuleGroupReferenceStatement` and `ManagedRuleGroupStatement`\\. \nSet the override action to none to leave the rule group rule actions in effect\\. Set it to count to only count matches, regardless of the rule action settings\\. \nYou must set either this `OverrideAction` setting or the `Action` setting, but not both: \n+ If the rule statement references a rule group, you must set this override action setting and you must not set the rule's action setting\\. \n+ If the rule statement doesn't reference a rule group, you must set the rule action setting and you must not set the rule's override action setting\\. \n*Required*: Conditional \n*Type*: [OverrideAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-overrideaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OverrideAction" }, "Priority": { + "markdownDescription": "If you define more than one `Rule` in a `WebACL`, AWS WAF evaluates each request against the `Rules` in order based on the value of `Priority`\\. AWS WAF processes rules with lower priority first\\. The priorities don't need to be consecutive, but they must all be different\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" }, "RuleLabels": { "items": { "$ref": "#/definitions/AWS::WAFv2::WebACL.Label" }, + "markdownDescription": "Labels to apply to web requests that match the rule match statement\\. AWS WAF applies fully qualified labels to matching web requests\\. A fully qualified label is the concatenation of a label namespace and a rule label\\. The rule's rule group or web ACL defines the label namespace\\. \nRules that run after this rule in the web ACL can match against these labels using a `LabelMatchStatement`\\. \nFor each label, provide a case\\-sensitive string containing optional namespaces and a label name, according to the following guidelines: \n+ Separate each component of the label with a colon\\. \n+ Each namespace or name can have up to 128 characters\\.\n+ You can specify up to 5 namespaces in a label\\.\n+ Don't use the following reserved words in your label specification: `aws`, `waf`, `managed`, `rulegroup`, `webacl`, `regexpatternset`, or `ipset`\\.\nFor example, `myLabelName` or `nameSpace1:nameSpace2:myLabelName`\\. \n*Required*: No \n*Type*: List of [Label](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-label.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleLabels", "type": "array" }, "Statement": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement" + "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement", + "markdownDescription": "The AWS WAF processing statement for the rule, for example ByteMatchStatement or SizeConstraintStatement\\. \n*Required*: Yes \n*Type*: [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statement" }, "VisibilityConfig": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.VisibilityConfig" + "$ref": "#/definitions/AWS::WAFv2::WebACL.VisibilityConfig", + "markdownDescription": "Defines and enables Amazon CloudWatch metrics and web request sample collection\\. \n*Required*: Yes \n*Type*: [VisibilityConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-visibilityconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VisibilityConfig" } }, "required": [ @@ -152084,19 +185222,27 @@ "additionalProperties": false, "properties": { "Allow": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.AllowAction" + "$ref": "#/definitions/AWS::WAFv2::WebACL.AllowAction", + "markdownDescription": "Instructs AWS WAF to allow the web request\\. \n*Required*: No \n*Type*: [AllowAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-allowaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Allow" }, "Block": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.BlockAction" + "$ref": "#/definitions/AWS::WAFv2::WebACL.BlockAction", + "markdownDescription": "Instructs AWS WAF to block the web request\\. \n*Required*: No \n*Type*: [BlockAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-blockaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Block" }, "Captcha": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.CaptchaAction" + "$ref": "#/definitions/AWS::WAFv2::WebACL.CaptchaAction", + "markdownDescription": "Specifies that AWS WAF should run a `CAPTCHA` check against the request: \n+ If the request includes a valid, unexpired `CAPTCHA` token, AWS WAF allows the web request inspection to proceed to the next rule, similar to a `CountAction`\\. \n+ If the request doesn't include a valid, unexpired `CAPTCHA` token, AWS WAF discontinues the web ACL evaluation of the request and blocks it from going to its intended destination\\.", + "title": "Captcha" }, "Challenge": { "$ref": "#/definitions/AWS::WAFv2::WebACL.ChallengeAction" }, "Count": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.CountAction" + "$ref": "#/definitions/AWS::WAFv2::WebACL.CountAction", + "markdownDescription": "Instructs AWS WAF to count the web request and allow it\\. \n*Required*: No \n*Type*: [CountAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-countaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count" } }, "type": "object" @@ -152121,12 +185267,16 @@ "additionalProperties": false, "properties": { "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the entity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", "type": "string" }, "ExcludedRules": { "items": { "$ref": "#/definitions/AWS::WAFv2::WebACL.ExcludedRule" }, + "markdownDescription": "The rules in the referenced rule group whose actions are set to `Count`\\. When you exclude a rule, AWS WAF evaluates it exactly as it would if the rule action setting were `Count`\\. This is a useful option for testing the rules in a rule group without modifying how they handle your web traffic\\. \n*Required*: No \n*Type*: List of [ExcludedRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-excludedrule.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludedRules", "type": "array" }, "RuleActionOverrides": { @@ -152169,18 +185319,26 @@ "additionalProperties": false, "properties": { "ComparisonOperator": { + "markdownDescription": "The operator to use to compare the request part to the size setting\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EQ | GE | GT | LE | LT | NE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComparisonOperator", "type": "string" }, "FieldToMatch": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch" + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" }, "Size": { + "markdownDescription": "The size, in byte, to compare to the request part, after any transformations\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Size", "type": "number" }, "TextTransformations": { "items": { "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation" }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", "type": "array" } }, @@ -152196,7 +185354,9 @@ "additionalProperties": false, "properties": { "FieldToMatch": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch" + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" }, "SensitivityLevel": { "type": "string" @@ -152205,6 +185365,8 @@ "items": { "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation" }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", "type": "array" } }, @@ -152218,49 +185380,79 @@ "additionalProperties": false, "properties": { "AndStatement": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.AndStatement" + "$ref": "#/definitions/AWS::WAFv2::WebACL.AndStatement", + "markdownDescription": "A logical rule statement used to combine other rule statements with AND logic\\. You provide more than one [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-notstatement.html#cfn-wafv2-webacl-notstatement-statement) within the `AndStatement`\\. \n*Required*: No \n*Type*: [AndStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-andstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AndStatement" }, "ByteMatchStatement": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.ByteMatchStatement" + "$ref": "#/definitions/AWS::WAFv2::WebACL.ByteMatchStatement", + "markdownDescription": "A rule statement that defines a string match search for AWS WAF to apply to web requests\\. The byte match statement provides the bytes to search for, the location in requests that you want AWS WAF to search, and other settings\\. The bytes to search for are typically a string that corresponds with ASCII characters\\. In the AWS WAF console and the developer guide, this is refered to as a string match statement\\. \n*Required*: No \n*Type*: [ByteMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-bytematchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ByteMatchStatement" }, "GeoMatchStatement": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.GeoMatchStatement" + "$ref": "#/definitions/AWS::WAFv2::WebACL.GeoMatchStatement", + "markdownDescription": "A rule statement used to identify web requests based on country of origin\\. \n*Required*: No \n*Type*: [GeoMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-geomatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GeoMatchStatement" }, "IPSetReferenceStatement": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.IPSetReferenceStatement" + "$ref": "#/definitions/AWS::WAFv2::WebACL.IPSetReferenceStatement", + "markdownDescription": "A rule statement used to detect web requests coming from particular IP addresses or address ranges\\. To use this, create an [AWS::WAFv2::IPSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-ipset.html) that specifies the addresses you want to detect, then use the ARN of that set in this statement\\. \nEach IP set rule statement references an IP set\\. You create and maintain the set independent of your rules\\. This allows you to use the single set in multiple rules\\. When you update the referenced set, AWS WAF automatically updates all rules that reference it\\. \n*Required*: No \n*Type*: [IPSetReferenceStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ipsetreferencestatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IPSetReferenceStatement" }, "LabelMatchStatement": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.LabelMatchStatement" + "$ref": "#/definitions/AWS::WAFv2::WebACL.LabelMatchStatement", + "markdownDescription": "A rule statement that defines a string match search against labels that have been added to the web request by rules that have already run in the web ACL\\. \nThe label match statement provides the label or namespace string to search for\\. The label string can represent a part or all of the fully qualified label name that had been added to the web request\\. Fully qualified labels have a prefix, optional namespaces, and label name\\. The prefix identifies the rule group or web ACL context of the rule that added the label\\. If you do not provide the fully qualified name in your label match string, AWS WAF performs the search for labels that were added in the same context as the label match statement\\. \n*Required*: No \n*Type*: [LabelMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-labelmatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LabelMatchStatement" }, "ManagedRuleGroupStatement": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.ManagedRuleGroupStatement" + "$ref": "#/definitions/AWS::WAFv2::WebACL.ManagedRuleGroupStatement", + "markdownDescription": "A rule statement used to run the rules that are defined in a managed rule group\\. To use this, provide the vendor name and the name of the rule group in this statement\\. \nYou can't nest a `ManagedRuleGroupStatement`, for example for use inside a `NotStatement` or `OrStatement`\\. It can only be referenced as a top\\-level statement within a rule\\. \n*Required*: No \n*Type*: [ManagedRuleGroupStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-managedrulegroupstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManagedRuleGroupStatement" }, "NotStatement": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.NotStatement" + "$ref": "#/definitions/AWS::WAFv2::WebACL.NotStatement", + "markdownDescription": "A logical rule statement used to negate the results of another rule statement\\. You provide one [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-notstatement.html#cfn-wafv2-webacl-notstatement-statement) within the `NotStatement`\\. \n*Required*: No \n*Type*: [NotStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-notstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotStatement" }, "OrStatement": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.OrStatement" + "$ref": "#/definitions/AWS::WAFv2::WebACL.OrStatement", + "markdownDescription": "A logical rule statement used to combine other rule statements with OR logic\\. You provide more than one [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-notstatement.html#cfn-wafv2-webacl-notstatement-statement) within the `OrStatement`\\. \n*Required*: No \n*Type*: [OrStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-orstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrStatement" }, "RateBasedStatement": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.RateBasedStatement" + "$ref": "#/definitions/AWS::WAFv2::WebACL.RateBasedStatement", + "markdownDescription": "A rate\\-based rule tracks the rate of requests for each originating IP address, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any 5\\-minute time span\\. You can use this to put a temporary block on requests from an IP address that is sending excessive requests\\. \nWhen the rule action triggers, AWS WAF blocks additional requests from the IP address until the request rate falls below the limit\\. \nYou can optionally nest another statement inside the rate\\-based statement, to narrow the scope of the rule so that it only counts requests that match the nested statement\\. For example, based on recent requests that you have seen from an attacker, you might create a rate\\-based rule with a nested AND rule statement that contains the following nested statements: \n+ An IP match statement with an IP set that specified the address 192\\.0\\.2\\.44\\.\n+ A string match statement that searches in the User\\-Agent header for the string BadBot\\.\nIn this rate\\-based rule, you also define a rate limit\\. For this example, the rate limit is 1,000\\. Requests that meet both of the conditions in the statements are counted\\. If the count exceeds 1,000 requests per five minutes, the rule action triggers\\. Requests that do not meet both conditions are not counted towards the rate limit and are not affected by this rule\\. \nYou cannot nest a `RateBasedStatement`, for example for use inside a `NotStatement` or `OrStatement`\\. It can only be referenced as a top\\-level statement within a rule\\. \n*Required*: No \n*Type*: [RateBasedStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ratebasedstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RateBasedStatement" }, "RegexMatchStatement": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.RegexMatchStatement" + "$ref": "#/definitions/AWS::WAFv2::WebACL.RegexMatchStatement", + "markdownDescription": "A rule statement used to search web request components for a match against a single regular expression\\. \n*Required*: No \n*Type*: [RegexMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-regexmatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegexMatchStatement" }, "RegexPatternSetReferenceStatement": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.RegexPatternSetReferenceStatement" + "$ref": "#/definitions/AWS::WAFv2::WebACL.RegexPatternSetReferenceStatement", + "markdownDescription": "A rule statement used to search web request components for matches with regular expressions\\. To use this, create a [AWS::WAFv2::RegexPatternSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-regexpatternset.html) that specifies the expressions that you want to detect, then use the ARN of that set in this statement\\. A web request matches the pattern set rule statement if the request component matches any of the patterns in the set\\. \nEach regex pattern set rule statement references a regex pattern set\\. You create and maintain the set independent of your rules\\. This allows you to use the single set in multiple rules\\. When you update the referenced set, AWS WAF automatically updates all rules that reference it\\. \n*Required*: No \n*Type*: [RegexPatternSetReferenceStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-regexpatternsetreferencestatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegexPatternSetReferenceStatement" }, "RuleGroupReferenceStatement": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.RuleGroupReferenceStatement" + "$ref": "#/definitions/AWS::WAFv2::WebACL.RuleGroupReferenceStatement", + "markdownDescription": "A rule statement used to run the rules that are defined in a [AWS::WAFv2::RuleGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-rulegroup.html)\\. To use this, create a rule group with your rules, then provide the ARN of the rule group in this statement\\. \nYou cannot nest a `RuleGroupReferenceStatement`, for example for use inside a `NotStatement` or `OrStatement`\\. It can only be referenced as a top\\-level statement within a rule\\. \n*Required*: No \n*Type*: [RuleGroupReferenceStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-rulegroupreferencestatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleGroupReferenceStatement" }, "SizeConstraintStatement": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.SizeConstraintStatement" + "$ref": "#/definitions/AWS::WAFv2::WebACL.SizeConstraintStatement", + "markdownDescription": "A rule statement that compares a number of bytes against the size of a request component, using a comparison operator, such as greater than \\(>\\) or less than \\(<\\)\\. For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes\\. \nIf you configure AWS WAF to inspect the request body, AWS WAF inspects only the first 8192 bytes \\(8 KB\\)\\. If the request body for your web requests never exceeds 8192 bytes, you can create a size constraint condition and block requests that have a request body greater than 8192 bytes\\. \nIf you choose URI for the value of Part of the request to filter on, the slash \\(/\\) in the URI counts as one character\\. For example, the URI `/logo.jpg` is nine characters long\\. \n*Required*: No \n*Type*: [SizeConstraintStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-sizeconstraintstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SizeConstraintStatement" }, "SqliMatchStatement": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.SqliMatchStatement" + "$ref": "#/definitions/AWS::WAFv2::WebACL.SqliMatchStatement", + "markdownDescription": "Attackers sometimes insert malicious SQL code into web requests in an effort to extract data from your database\\. To allow or block web requests that appear to contain malicious SQL code, create one or more SQL injection match conditions\\. An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect\\. Later in the process, when you create a web ACL, you specify whether to allow or block requests that appear to contain malicious SQL code\\. \n*Required*: No \n*Type*: [SqliMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-sqlimatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SqliMatchStatement" }, "XssMatchStatement": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.XssMatchStatement" + "$ref": "#/definitions/AWS::WAFv2::WebACL.XssMatchStatement", + "markdownDescription": "A rule statement that defines a cross\\-site scripting \\(XSS\\) match search for AWS WAF to apply to web requests\\. XSS attacks are those where the attacker uses vulnerabilities in a benign website as a vehicle to inject malicious client\\-site scripts into other legitimate web browsers\\. The XSS match statement provides the location in requests that you want AWS WAF to search and text transformations to use on the search area before AWS WAF searches for character sequences that are likely to be malicious strings\\. \n*Required*: No \n*Type*: [XssMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-xssmatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "XssMatchStatement" } }, "type": "object" @@ -152269,9 +185461,13 @@ "additionalProperties": false, "properties": { "Priority": { + "markdownDescription": "Sets the relative processing order for multiple transformations that are defined for a rule statement\\. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content\\. The priorities don't need to be consecutive, but they must all be different\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" }, "Type": { + "markdownDescription": "You can specify the following transformation types: \n **BASE64\\_DECODE** \\- Decode a `Base64`\\-encoded string\\. \n **BASE64\\_DECODE\\_EXT** \\- Decode a `Base64`\\-encoded string, but use a forgiving implementation that ignores characters that aren't valid\\. \n **CMD\\_LINE** \\- Command\\-line transformations\\. These are helpful in reducing effectiveness of attackers who inject an operating system command\\-line command and use unusual formatting to disguise some or all of the command\\. \n+ Delete the following characters: `\\ \" ' ^` \n+ Delete spaces before the following characters: `/ (` \n+ Replace the following characters with a space: `, ;` \n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \\- Replace these characters with a space character \\(decimal 32\\): \n+ `\\f`, formfeed, decimal 12\n+ `\\t`, tab, decimal 9\n+ `\\n`, newline, decimal 10\n+ `\\r`, carriage return, decimal 13\n+ `\\v`, vertical tab, decimal 11\n+ Non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **CSS\\_DECODE** \\- Decode characters that were encoded using CSS 2\\.x escape rules `syndata.html#characters`\\. This function uses up to two bytes in the decoding process, so it can help to uncover ASCII characters that were encoded using CSS encoding that wouldn\u2019t typically be encoded\\. It's also useful in countering evasion, which is a combination of a backslash and non\\-hexadecimal characters\\. For example, `ja\\vascript` for javascript\\. \n **ESCAPE\\_SEQ\\_DECODE** \\- Decode the following ANSI C escape sequences: `\\a`, `\\b`, `\\f`, `\\n`, `\\r`, `\\t`, `\\v`, `\\\\`, `\\?`, `\\'`, `\\\"`, `\\xHH` \\(hexadecimal\\), `\\0OOO` \\(octal\\)\\. Encodings that aren't valid remain in the output\\. \n **HEX\\_DECODE** \\- Decode a string of hexadecimal characters into a binary\\. \n **HTML\\_ENTITY\\_DECODE** \\- Replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs these operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **JS\\_DECODE** \\- Decode JavaScript escape sequences\\. If a `\\` `u` `HHHH` code is in the full\\-width ASCII code range of `FF01-FF5E`, then the higher byte is used to detect and adjust the lower byte\\. If not, only the lower byte is used and the higher byte is zeroed, causing a possible loss of information\\. \n **LOWERCASE** \\- Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **MD5** \\- Calculate an MD5 hash from the data in the input\\. The computed hash is in a raw binary form\\. \n **NONE** \\- Specify `NONE` if you don't want any text transformations\\. \n **NORMALIZE\\_PATH** \\- Remove multiple slashes, directory self\\-references, and directory back\\-references that are not at the beginning of the input from an input string\\. \n **NORMALIZE\\_PATH\\_WIN** \\- This is the same as `NORMALIZE_PATH`, but first converts backslash characters to forward slashes\\. \n **REMOVE\\_NULLS** \\- Remove all `NULL` bytes from the input\\. \n **REPLACE\\_COMMENTS** \\- Replace each occurrence of a C\\-style comment \\(`/* ... */`\\) with a single space\\. Multiple consecutive occurrences are not compressed\\. Unterminated comments are also replaced with a space \\(ASCII 0x20\\)\\. However, a standalone termination of a comment \\(`*/`\\) is not acted upon\\. \n **REPLACE\\_NULLS** \\- Replace NULL bytes in the input with space characters \\(ASCII `0x20`\\)\\. \n **SQL\\_HEX\\_DECODE** \\- Decode SQL hex data\\. Example \\(`0x414243`\\) will be decoded to \\(`ABC`\\)\\. \n **URL\\_DECODE** \\- Decode a URL\\-encoded value\\. \n **URL\\_DECODE\\_UNI** \\- Like `URL_DECODE`, but with support for Microsoft\\-specific `%u` encoding\\. If the code is in the full\\-width ASCII code range of `FF01-FF5E`, the higher byte is used to detect and adjust the lower byte\\. Otherwise, only the lower byte is used and the higher byte is zeroed\\. \n **UTF8\\_TO\\_UNICODE** \\- Convert all UTF\\-8 character sequences to Unicode\\. This helps input normalization, and minimizing false\\-positives and false\\-negatives for non\\-English languages\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BASE64_DECODE | BASE64_DECODE_EXT | CMD_LINE | COMPRESS_WHITE_SPACE | CSS_DECODE | ESCAPE_SEQ_DECODE | HEX_DECODE | HTML_ENTITY_DECODE | JS_DECODE | LOWERCASE | MD5 | NONE | NORMALIZE_PATH | NORMALIZE_PATH_WIN | REMOVE_NULLS | REPLACE_COMMENTS | REPLACE_NULLS | SQL_HEX_DECODE | URL_DECODE | URL_DECODE_UNI | UTF8_TO_UNICODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", "type": "string" } }, @@ -152285,12 +185481,18 @@ "additionalProperties": false, "properties": { "CloudWatchMetricsEnabled": { + "markdownDescription": "A boolean indicating whether the associated resource sends metrics to Amazon CloudWatch\\. For the list of available metrics, see [AWS WAF Metrics](https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchMetricsEnabled", "type": "boolean" }, "MetricName": { + "markdownDescription": "The descriptive name of the Amazon CloudWatch metric\\. The name can contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\), with length from one to 128 characters\\. It can't contain whitespace or metric names reserved for AWS WAF, for example \"All\" and \"Default\\_Action\\.\" You can't change a `MetricName` after you create a `VisibilityConfig`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[\\w#:\\.\\-/]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", "type": "string" }, "SampledRequestsEnabled": { + "markdownDescription": "A boolean indicating whether AWS WAF should store a sampling of the web requests that match the rules\\. You can view the sampled requests through the AWS WAF console\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SampledRequestsEnabled", "type": "boolean" } }, @@ -152305,12 +185507,16 @@ "additionalProperties": false, "properties": { "FieldToMatch": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch" + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" }, "TextTransformations": { "items": { "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation" }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", "type": "array" } }, @@ -152356,9 +185562,13 @@ "additionalProperties": false, "properties": { "ResourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the resource to associate with the web ACL\\. \nThe ARN must be in one of the following formats: \n+ For an Application Load Balancer: `arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id ` \n+ For an Amazon API Gateway REST API: `arn:aws:apigateway:region::/restapis/api-id/stages/stage-name ` \n+ For an AWS AppSync GraphQL API: `arn:aws:appsync:region:account-id:apis/GraphQLApiId`\nFor Amazon CloudFront, define the association in your CloudFront distribution configuration\\. To associate a web ACL, provide the Amazon Resource Name \\(ARN\\) of the [AWS::WAFv2::WebACL](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html) to your CloudFront distribution configuration\\. To disassociate a web ACL, provide an empty ARN\\. For information, see [AWS::CloudFront::Distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceArn", "type": "string" }, "WebACLArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the web ACL that you want to associate with the resource\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WebACLArn", "type": "string" } }, @@ -152425,21 +185635,31 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description of the assistant\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9\\s_.,-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The name of the assistant\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9\\s_.,-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "ServerSideEncryptionConfiguration": { - "$ref": "#/definitions/AWS::Wisdom::Assistant.ServerSideEncryptionConfiguration" + "$ref": "#/definitions/AWS::Wisdom::Assistant.ServerSideEncryptionConfiguration", + "markdownDescription": "The KMS key used for encryption\\. \n*Required*: No \n*Type*: [ServerSideEncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-assistant-serversideencryptionconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServerSideEncryptionConfiguration" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" }, "Type": { + "markdownDescription": "The type of assistant\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AGENT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", "type": "string" } }, @@ -152474,6 +185694,8 @@ "additionalProperties": false, "properties": { "KmsKeyId": { + "markdownDescription": "The KMS key\\. For information about valid ID values, see [Key identifiers \\(KeyId\\)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" } }, @@ -152515,18 +185737,26 @@ "additionalProperties": false, "properties": { "AssistantId": { + "markdownDescription": "The identifier of the Wisdom assistant\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AssistantId", "type": "string" }, "Association": { - "$ref": "#/definitions/AWS::Wisdom::AssistantAssociation.AssociationData" + "$ref": "#/definitions/AWS::Wisdom::AssistantAssociation.AssociationData", + "markdownDescription": "The identifier of the associated resource\\. \n*Required*: Yes \n*Type*: [AssociationData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-assistantassociation-associationdata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Association" }, "AssociationType": { + "markdownDescription": "The type of association\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `KNOWLEDGE_BASE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AssociationType", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -152562,6 +185792,8 @@ "additionalProperties": false, "properties": { "KnowledgeBaseId": { + "markdownDescription": "The identifier of the knowledge base\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KnowledgeBaseId", "type": "string" } }, @@ -152606,27 +185838,41 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "The description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9\\s_.,-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", "type": "string" }, "KnowledgeBaseType": { + "markdownDescription": "The type of knowledge base\\. Only CUSTOM knowledge bases allow you to upload your own content\\. EXTERNAL knowledge bases support integrations with third\\-party systems whose content is synchronized automatically\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CUSTOM | EXTERNAL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KnowledgeBaseType", "type": "string" }, "Name": { + "markdownDescription": "The name of the knowledge base\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9\\s_.,-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", "type": "string" }, "RenderingConfiguration": { - "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.RenderingConfiguration" + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.RenderingConfiguration", + "markdownDescription": "Information about how to render the content\\. \n*Required*: No \n*Type*: [RenderingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-knowledgebase-renderingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RenderingConfiguration" }, "ServerSideEncryptionConfiguration": { - "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.ServerSideEncryptionConfiguration" + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.ServerSideEncryptionConfiguration", + "markdownDescription": "The KMS key used for encryption\\. \n*Required*: No \n*Type*: [ServerSideEncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-knowledgebase-serversideencryptionconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServerSideEncryptionConfiguration" }, "SourceConfiguration": { - "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.SourceConfiguration" + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.SourceConfiguration", + "markdownDescription": "The source of the knowledge base content\\. Only set this argument for EXTERNAL knowledge bases\\. \n*Required*: No \n*Type*: [SourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-knowledgebase-sourceconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceConfiguration" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -152661,12 +185907,16 @@ "additionalProperties": false, "properties": { "AppIntegrationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AppIntegrations DataIntegration to use for ingesting content\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `^arn:[a-z-]+?:[a-z-]+?:[a-z0-9-]*?:([0-9]{12})?:[a-zA-Z0-9-:/]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AppIntegrationArn", "type": "string" }, "ObjectFields": { "items": { "type": "string" }, + "markdownDescription": "The fields from the source that are made available to your agents in Wisdom\\. \n+ For [ Salesforce](https://developer.salesforce.com/docs/atlas.en-us.knowledge_dev.meta/knowledge_dev/sforce_api_objects_knowledge__kav.htm), you must include at least `Id`, `ArticleNumber`, `VersionNumber`, `Title`, `PublishStatus`, and `IsDeleted`\\. \n+ For [ ServiceNow](https://developer.servicenow.com/dev.do#!/reference/api/rome/rest/knowledge-management-api), you must include at least `number`, `short_description`, `sys_mod_count`, `workflow_state`, and `active`\\. \nMake sure to include additional fields\\. These fields are indexed and used to source recommendations\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ObjectFields", "type": "array" } }, @@ -152680,6 +185930,8 @@ "additionalProperties": false, "properties": { "TemplateUri": { + "markdownDescription": "A URI template containing exactly one variable in `${variableName} `format\\. This can only be set for `EXTERNAL` knowledge bases\\. For Salesforce and ServiceNow, the variable must be one of the following: \n+ Salesforce: `Id`, `ArticleNumber`, `VersionNumber`, `Title`, `PublishStatus`, or `IsDeleted`\n+ ServiceNow: `number`, `short_description`, `sys_mod_count`, `workflow_state`, or `active`\nThe variable is replaced with the actual value for a piece of content when calling [GetContent](https://docs.aws.amazon.com/wisdom/latest/APIReference/API_GetContent.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateUri", "type": "string" } }, @@ -152689,6 +185941,8 @@ "additionalProperties": false, "properties": { "KmsKeyId": { + "markdownDescription": "The KMS key\\. For information about valid ID values, see [Key identifiers \\(KeyId\\)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", "type": "string" } }, @@ -152698,7 +185952,9 @@ "additionalProperties": false, "properties": { "AppIntegrations": { - "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.AppIntegrationsConfiguration" + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.AppIntegrationsConfiguration", + "markdownDescription": "Configuration information for Amazon AppIntegrations to automatically ingest content\\. \n*Required*: No \n*Type*: [AppIntegrationsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-knowledgebase-appintegrationsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AppIntegrations" } }, "required": [ @@ -152742,12 +185998,16 @@ "additionalProperties": false, "properties": { "ConnectionString": { + "markdownDescription": "The connection string specified for the connection alias\\. The connection string must be in the form of a fully qualified domain name \\(FQDN\\), such as `www.example.com`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[.0-9a-zA-Z\\-]{1,255}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectionString", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags to associate with the connection alias\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", "type": "array" } }, @@ -152781,15 +186041,23 @@ "additionalProperties": false, "properties": { "AssociatedAccountId": { + "markdownDescription": "The identifier of the AWS account that associated the connection alias with a directory\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^\\d{12}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociatedAccountId", "type": "string" }, "AssociationStatus": { + "markdownDescription": "The association status of the connection alias\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ASSOCIATED_WITH_OWNER_ACCOUNT | ASSOCIATED_WITH_SHARED_ACCOUNT | NOT_ASSOCIATED | PENDING_ASSOCIATION | PENDING_DISASSOCIATION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociationStatus", "type": "string" }, "ConnectionIdentifier": { + "markdownDescription": "The identifier of the connection alias association\\. You use the connection identifier in the DNS TXT record when you're configuring your DNS routing policies\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `20` \n*Pattern*: `^[a-zA-Z0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionIdentifier", "type": "string" }, "ResourceId": { + "markdownDescription": "The identifier of the directory associated with a connection alias\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceId", "type": "string" } }, @@ -152831,31 +186099,47 @@ "additionalProperties": false, "properties": { "BundleId": { + "markdownDescription": "The identifier of the bundle for the WorkSpace\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^wsb-[0-9a-z]{8,63}$` \n*Update requires*: Updates are not supported\\.", + "title": "BundleId", "type": "string" }, "DirectoryId": { + "markdownDescription": "The identifier of the AWS Directory Service directory for the WorkSpace\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `65` \n*Pattern*: `^d-[0-9a-f]{8,63}$` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "DirectoryId", "type": "string" }, "RootVolumeEncryptionEnabled": { + "markdownDescription": "Indicates whether the data stored on the root volume is encrypted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: Updates are not supported\\.", + "title": "RootVolumeEncryptionEnabled", "type": "boolean" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags for the WorkSpace\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "UserName": { + "markdownDescription": "The user name of the user for the WorkSpace\\. This user name must exist in the AWS Directory Service directory for the WorkSpace\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserName", "type": "string" }, "UserVolumeEncryptionEnabled": { + "markdownDescription": "Indicates whether the data stored on the user volume is encrypted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: Updates are not supported\\.", + "title": "UserVolumeEncryptionEnabled", "type": "boolean" }, "VolumeEncryptionKey": { + "markdownDescription": "The symmetric AWS KMS key used to encrypt data stored on your WorkSpace\\. Amazon WorkSpaces does not support asymmetric KMS keys\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "VolumeEncryptionKey", "type": "string" }, "WorkspaceProperties": { - "$ref": "#/definitions/AWS::WorkSpaces::Workspace.WorkspaceProperties" + "$ref": "#/definitions/AWS::WorkSpaces::Workspace.WorkspaceProperties", + "markdownDescription": "The WorkSpace properties\\. \n*Required*: No \n*Type*: [WorkspaceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspace-workspaceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WorkspaceProperties" } }, "required": [ @@ -152890,18 +186174,28 @@ "additionalProperties": false, "properties": { "ComputeTypeName": { + "markdownDescription": "The compute type\\. For more information, see [Amazon WorkSpaces Bundles](http://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GRAPHICS | GRAPHICSPRO | PERFORMANCE | POWER | POWERPRO | STANDARD | VALUE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputeTypeName", "type": "string" }, "RootVolumeSizeGib": { + "markdownDescription": "The size of the root volume\\. For important information about how to modify the size of the root and user volumes, see [Modify a WorkSpace](https://docs.aws.amazon.com/workspaces/latest/adminguide/modify-workspaces.html)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RootVolumeSizeGib", "type": "number" }, "RunningMode": { + "markdownDescription": "The running mode\\. For more information, see [Manage the WorkSpace Running Mode](https://docs.aws.amazon.com/workspaces/latest/adminguide/running-mode.html)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ALWAYS_ON | AUTO_STOP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RunningMode", "type": "string" }, "RunningModeAutoStopTimeoutInMinutes": { + "markdownDescription": "The time after a user logs off when WorkSpaces are automatically stopped\\. Configured in 60\\-minute intervals\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RunningModeAutoStopTimeoutInMinutes", "type": "number" }, "UserVolumeSizeGib": { + "markdownDescription": "The size of the user storage\\. For important information about how to modify the size of the root and user volumes, see [Modify a WorkSpace](https://docs.aws.amazon.com/workspaces/latest/adminguide/modify-workspaces.html)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserVolumeSizeGib", "type": "number" } }, @@ -152943,18 +186237,26 @@ "additionalProperties": false, "properties": { "FilterExpression": { + "markdownDescription": "The filter expression defining the parameters to include traces\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterExpression", "type": "string" }, "GroupName": { + "markdownDescription": "The unique case\\-sensitive name of the group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupName", "type": "string" }, "InsightsConfiguration": { - "$ref": "#/definitions/AWS::XRay::Group.InsightsConfiguration" + "$ref": "#/definitions/AWS::XRay::Group.InsightsConfiguration", + "markdownDescription": "The structure containing configurations related to insights\\. \n+ The InsightsEnabled boolean can be set to true to enable insights for the group or false to disable insights for the group\\.\n+ The NotificationsEnabled boolean can be set to true to enable insights notifications through Amazon EventBridge for the group\\.\n*Required*: No \n*Type*: [InsightsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-xray-group-insightsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InsightsConfiguration" }, "Tags": { "items": { "$ref": "#/definitions/AWS::XRay::Group.TagsItems" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -152984,9 +186286,13 @@ "additionalProperties": false, "properties": { "InsightsEnabled": { + "markdownDescription": "Set the InsightsEnabled value to true to enable insights or false to disable insights\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InsightsEnabled", "type": "boolean" }, "NotificationsEnabled": { + "markdownDescription": "Set the NotificationsEnabled value to true to enable insights notifications\\. Notifications can only be enabled on a group with InsightsEnabled set to true\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationsEnabled", "type": "boolean" } }, @@ -153116,21 +186422,31 @@ "additionalProperties": false, "properties": { "RuleName": { + "markdownDescription": "The name of the sampling rule\\. Specify a rule by either name or ARN, but not both\\. Used only when deleting a sampling rule\\. When creating or updating a sampling rule, use the `RuleName` or `RuleARN` properties within `SamplingRule` or `SamplingRuleUpdate`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleName", "type": "string" }, "SamplingRule": { - "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRule" + "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRule", + "markdownDescription": "The sampling rule to be created\\. \nMust be provided if creating a new sampling rule\\. Not valid when updating an existing sampling rule\\. \n*Required*: Conditional \n*Type*: [SamplingRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-xray-samplingrule-samplingrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SamplingRule" }, "SamplingRuleRecord": { - "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRuleRecord" + "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRuleRecord", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [SamplingRuleRecord](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-xray-samplingrule-samplingrulerecord.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SamplingRuleRecord" }, "SamplingRuleUpdate": { - "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRuleUpdate" + "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRuleUpdate", + "markdownDescription": "A document specifying changes to a sampling rule's configuration\\. \nMust be provided if updating an existing sampling rule\\. Not valid when creating a new sampling rule\\. \nThe `Version` of a sampling rule cannot be updated, and is not part of `SamplingRuleUpdate`\\.\n*Required*: Conditional \n*Type*: [SamplingRuleUpdate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-xray-samplingrule-samplingruleupdate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SamplingRuleUpdate" }, "Tags": { "items": { "$ref": "#/definitions/AWS::XRay::SamplingRule.TagsItems" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -153161,47 +186477,73 @@ "properties": { "Attributes": { "additionalProperties": true, + "markdownDescription": "Matches attributes derived from the request\\. \n*Map Entries:* Maximum number of 5 items\\. \n*Key Length Constraints:* Minimum length of 1\\. Maximum length of 32\\. \n*Value Length Constraints:* Minimum length of 1\\. Maximum length of 32\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Attributes", "type": "object" }, "FixedRate": { + "markdownDescription": "The percentage of matching requests to instrument, after the reservoir is exhausted\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FixedRate", "type": "number" }, "HTTPMethod": { + "markdownDescription": "Matches the HTTP method of a request\\. \n*Required*: No \n*Type*: String \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTPMethod", "type": "string" }, "Host": { + "markdownDescription": "Matches the hostname from a request URL\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", "type": "string" }, "Priority": { + "markdownDescription": "The priority of the sampling rule\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `9999` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" }, "ReservoirSize": { + "markdownDescription": "A fixed number of matching requests to instrument per second, prior to applying the fixed rate\\. The reservoir is not used directly by services, but applies to all services using the rule collectively\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReservoirSize", "type": "number" }, "ResourceARN": { + "markdownDescription": "Matches the ARN of the AWS resource on which the service runs\\. \n*Required*: No \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceARN", "type": "string" }, "RuleARN": { + "markdownDescription": "The ARN of the sampling rule\\. You must specify either RuleARN or RuleName, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleARN", "type": "string" }, "RuleName": { + "markdownDescription": "The name of the sampling rule\\. You must specify either RuleARN or RuleName, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleName", "type": "string" }, "ServiceName": { + "markdownDescription": "Matches the `name` that the service uses to identify itself in segments\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceName", "type": "string" }, "ServiceType": { + "markdownDescription": "Matches the `origin` that the service uses to identify its type in segments\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceType", "type": "string" }, "URLPath": { + "markdownDescription": "Matches the path from a request URL\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "URLPath", "type": "string" }, "Version": { + "markdownDescription": "The version of the sampling rule format \\(`1`\\)\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", "type": "number" } }, @@ -153211,13 +186553,19 @@ "additionalProperties": false, "properties": { "CreatedAt": { + "markdownDescription": "When the rule was created, in Unix time seconds\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedAt", "type": "string" }, "ModifiedAt": { + "markdownDescription": "When the rule was last modified, in Unix time seconds\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ModifiedAt", "type": "string" }, "SamplingRule": { - "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRule" + "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRule", + "markdownDescription": "The sampling rule\\. \n*Required*: No \n*Type*: [SamplingRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-xray-samplingrule-samplingrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SamplingRule" } }, "type": "object" @@ -153227,44 +186575,68 @@ "properties": { "Attributes": { "additionalProperties": true, + "markdownDescription": "Matches attributes derived from the request\\. \n*Map Entries:* Maximum number of 5 items\\. \n*Key Length Constraints:* Minimum length of 1\\. Maximum length of 32\\. \n*Value Length Constraints:* Minimum length of 1\\. Maximum length of 32\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "patternProperties": { "^[a-zA-Z0-9]+$": { "type": "string" } }, + "title": "Attributes", "type": "object" }, "FixedRate": { + "markdownDescription": "The percentage of matching requests to instrument, after the reservoir is exhausted\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FixedRate", "type": "number" }, "HTTPMethod": { + "markdownDescription": "Matches the HTTP method of a request\\. \n*Required*: No \n*Type*: String \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTPMethod", "type": "string" }, "Host": { + "markdownDescription": "Matches the hostname from a request URL\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", "type": "string" }, "Priority": { + "markdownDescription": "The priority of the sampling rule\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", "type": "number" }, "ReservoirSize": { + "markdownDescription": "A fixed number of matching requests to instrument per second, prior to applying the fixed rate\\. The reservoir is not used directly by services, but applies to all services using the rule collectively\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReservoirSize", "type": "number" }, "ResourceARN": { + "markdownDescription": "Matches the ARN of the AWS resource on which the service runs\\. \n*Required*: No \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceARN", "type": "string" }, "RuleARN": { + "markdownDescription": "The ARN of the sampling rule\\. You must specify either RuleARN or RuleName, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleARN", "type": "string" }, "RuleName": { + "markdownDescription": "The name of the sampling rule\\. You must specify either RuleARN or RuleName, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleName", "type": "string" }, "ServiceName": { + "markdownDescription": "Matches the `name` that the service uses to identify itself in segments\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceName", "type": "string" }, "ServiceType": { + "markdownDescription": "Matches the `origin` that the service uses to identify its type in segments\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceType", "type": "string" }, "URLPath": { + "markdownDescription": "Matches the path from a request URL\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "URLPath", "type": "string" } }, @@ -153322,12 +186694,18 @@ "additionalProperties": false, "properties": { "AuthenticationConfiguration": { - "$ref": "#/definitions/Alexa::ASK::Skill.AuthenticationConfiguration" + "$ref": "#/definitions/Alexa::ASK::Skill.AuthenticationConfiguration", + "markdownDescription": "Login with Amazon \\(LWA\\) configuration used to authenticate with the Alexa service\\. Only Login with Amazon clients created through the [Amazon Developer Console](https://developer.amazon.com/lwa/sp/overview.html) are supported\\. The client ID, client secret, and refresh token are required\\. \n*Required*: Yes \n*Type*: [AuthenticationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-authenticationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticationConfiguration" }, "SkillPackage": { - "$ref": "#/definitions/Alexa::ASK::Skill.SkillPackage" + "$ref": "#/definitions/Alexa::ASK::Skill.SkillPackage", + "markdownDescription": "Configuration for the skill package that contains the components of the Alexa skill\\. Skill packages are retrieved from an Amazon S3 bucket and key and used to create and update the skill\\. For more information about the skill package format, see the [Skill Package API Reference](https://developer.amazon.com/docs/smapi/skill-package-api-reference.html#skill-package-format)\\. \n*Required*: Yes \n*Type*: [SkillPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-skillpackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SkillPackage" }, "VendorId": { + "markdownDescription": "The vendor ID associated with the Amazon developer account that will host the skill\\. Details for retrieving the vendor ID are in [How to get your vendor ID](https://github.com/alexa/alexa-smarthome/wiki/How-to-get-your-vendor-ID)\\. The provided LWA credentials must be linked to the developer account associated with this vendor ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VendorId", "type": "string" } }, @@ -153363,12 +186741,18 @@ "additionalProperties": false, "properties": { "ClientId": { + "markdownDescription": "Client ID from Login with Amazon \\(LWA\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientId", "type": "string" }, "ClientSecret": { + "markdownDescription": "Client secret from Login with Amazon \\(LWA\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientSecret", "type": "string" }, "RefreshToken": { + "markdownDescription": "Refresh token from Login with Amazon \\(LWA\\)\\. This token is secret\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RefreshToken", "type": "string" } }, @@ -153383,6 +186767,8 @@ "additionalProperties": false, "properties": { "Manifest": { + "markdownDescription": "Overrides to apply to the skill manifest inside of the skill package\\. The skill manifest contains metadata about the skill\\. For more information, see [Skill Manifest Schemas](https://developer.amazon.com/docs/smapi/skill-manifest.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Manifest", "type": "object" } }, @@ -153392,18 +186778,28 @@ "additionalProperties": false, "properties": { "Overrides": { - "$ref": "#/definitions/Alexa::ASK::Skill.Overrides" + "$ref": "#/definitions/Alexa::ASK::Skill.Overrides", + "markdownDescription": "Overrides to the skill package to apply when creating or updating the skill\\. Values provided here do not modify the contents of the original skill package\\. Currently, only overriding values inside of the skill manifest component of the package is supported\\. \n*Required*: No \n*Type*: [Overrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-overrides.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Overrides" }, "S3Bucket": { + "markdownDescription": "The name of the Amazon S3 bucket where the \\.zip file that contains the skill package is stored\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Bucket", "type": "string" }, "S3BucketRole": { + "markdownDescription": "ARN of the IAM role that grants the Alexa service \\(`alexa-appkit.amazon.com`\\) permission to access the bucket and retrieve the skill package\\. This property is optional\\. If you do not provide it, the bucket must be publicly accessible or configured with a policy that allows this access\\. Otherwise, AWS CloudFormation cannot create the skill\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketRole", "type": "string" }, "S3Key": { + "markdownDescription": "The location and name of the skill package \\.zip file\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Key", "type": "string" }, "S3ObjectVersion": { + "markdownDescription": "If you have S3 versioning enabled, the version ID of the skill package\\.zip file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3ObjectVersion", "type": "string" } }, @@ -153482,10 +186878,10 @@ "InvokeRole": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -153495,7 +186891,7 @@ "ResourcePolicy": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ResourcePolicy" + "$ref": "#/definitions/schema_source__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\\.", @@ -153599,10 +186995,10 @@ "Version": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -153947,10 +187343,10 @@ "Role": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -153970,10 +187366,10 @@ "Type": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -153984,6 +187380,85 @@ "title": "DeploymentPreference", "type": "object" }, + "DocumentDBEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$ref": "#/definitions/DocumentDBEventProperties" + } + ], + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "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": [ + "DocumentDB" + ], + "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "DocumentDBEvent", + "type": "object" + }, + "DocumentDBEventProperties": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "$ref": "#/definitions/PassThroughProp" + }, + "Cluster": { + "$ref": "#/definitions/PassThroughProp" + }, + "CollectionName": { + "$ref": "#/definitions/PassThroughProp" + }, + "DatabaseName": { + "$ref": "#/definitions/PassThroughProp" + }, + "Enabled": { + "$ref": "#/definitions/PassThroughProp" + }, + "FilterCriteria": { + "$ref": "#/definitions/PassThroughProp" + }, + "FullDocument": { + "$ref": "#/definitions/PassThroughProp" + }, + "MaximumBatchingWindowInSeconds": { + "$ref": "#/definitions/PassThroughProp" + }, + "SecretsManagerKmsKeyId": { + "title": "Secretsmanagerkmskeyid", + "type": "string" + }, + "SourceAccessConfigurations": { + "$ref": "#/definitions/PassThroughProp" + }, + "StartingPosition": { + "$ref": "#/definitions/PassThroughProp" + }, + "StartingPositionTimestamp": { + "$ref": "#/definitions/PassThroughProp" + } + }, + "required": [ + "Cluster", + "DatabaseName", + "SourceAccessConfigurations" + ], + "title": "DocumentDBEventProperties", + "type": "object" + }, "DynamoDBEvent": { "additionalProperties": false, "properties": { @@ -154167,6 +187642,9 @@ "EmbeddedConnector": { "additionalProperties": false, "properties": { + "Condition": { + "$ref": "#/definitions/PassThroughProp" + }, "DeletionPolicy": { "$ref": "#/definitions/PassThroughProp" }, @@ -154179,7 +187657,7 @@ "Properties": { "$ref": "#/definitions/EmbeddedConnectorProperties" }, - "UpdatePolicy": { + "UpdateReplacePolicy": { "$ref": "#/definitions/PassThroughProp" } }, @@ -154193,9 +187671,15 @@ "additionalProperties": false, "properties": { "Destination": { - "allOf": [ + "anyOf": [ { "$ref": "#/definitions/ResourceReference" + }, + { + "items": { + "$ref": "#/definitions/ResourceReference" + }, + "type": "array" } ], "description": "The destination resource\\. \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", @@ -154315,10 +187799,10 @@ "Destination": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -154347,10 +187831,10 @@ "Destination": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -154379,7 +187863,7 @@ "DeadLetterConfig": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__DeadLetterConfig" + "$ref": "#/definitions/schema_source__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\\.", @@ -154495,10 +187979,10 @@ "PostTraffic": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -154508,10 +187992,10 @@ "PreTraffic": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -154579,10 +188063,10 @@ "ApiId": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -154614,10 +188098,10 @@ "PayloadFormatVersion": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -154933,10 +188417,10 @@ "FunctionInvokeRole": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -155505,8 +188989,8 @@ "$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\\.", + "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\\. \nProperties `issuer` and `audience` are case insensitive and can be used either lowercase as in OpenAPI or uppercase `Issuer` and `Audience` as in [ 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\\. \nProperties `issuer` and `audience` are case insensitive and can be used either lowercase as in OpenAPI or uppercase `Issuer` and `Audience` as in [ 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" } }, @@ -156040,7 +189524,7 @@ "DeadLetterConfig": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig" + "$ref": "#/definitions/schema_source__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\\.", @@ -156228,8 +189712,8 @@ "$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\\.", + "description": "An array of the authentication protocol, VPC components, or virtual host to secure and define your event source\\. \n*Valid values*: `BASIC_AUTH | CLIENT_CERTIFICATE_TLS_AUTH | SASL_SCRAM_256_AUTH | SASL_SCRAM_512_AUTH | SERVER_ROOT_CA_CERTIFICATE` \n*Type*: List of [SourceAccessConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) \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*Valid values*: `BASIC_AUTH | CLIENT_CERTIFICATE_TLS_AUTH | SASL_SCRAM_256_AUTH | SASL_SCRAM_512_AUTH | SERVER_ROOT_CA_CERTIFICATE` \n*Type*: List of [SourceAccessConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) \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": { @@ -156273,10 +189757,10 @@ "BatchSize": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -156427,22 +189911,22 @@ "additionalProperties": false, "properties": { "Api": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Globals" + "$ref": "#/definitions/schema_source__aws_serverless_api__Globals" }, "Function": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__Globals" + "$ref": "#/definitions/schema_source__aws_serverless_function__Globals" }, "HttpApi": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Globals" + "$ref": "#/definitions/schema_source__aws_serverless_httpapi__Globals" }, "SimpleTable": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_simpletable__Globals" + "$ref": "#/definitions/schema_source__aws_serverless_simpletable__Globals" } }, "title": "Globals", "type": "object" }, - "samtranslator__schema__aws_serverless_api__Auth": { + "schema_source__aws_serverless_api__Auth": { "additionalProperties": false, "properties": { "AddDefaultAuthorizerToCorsPreflight": { @@ -156491,7 +189975,7 @@ "ResourcePolicy": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__ResourcePolicy" + "$ref": "#/definitions/schema_source__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`\\.", @@ -156512,7 +189996,7 @@ "title": "Auth", "type": "object" }, - "samtranslator__schema__aws_serverless_api__DefinitionUri": { + "schema_source__aws_serverless_api__DefinitionUri": { "additionalProperties": false, "properties": { "Bucket": { @@ -156553,7 +190037,7 @@ "title": "DefinitionUri", "type": "object" }, - "samtranslator__schema__aws_serverless_api__Domain": { + "schema_source__aws_serverless_api__Domain": { "additionalProperties": false, "properties": { "BasePath": { @@ -156632,7 +190116,7 @@ "Route53": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Route53" + "$ref": "#/definitions/schema_source__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\\.", @@ -156657,7 +190141,7 @@ "title": "Domain", "type": "object" }, - "samtranslator__schema__aws_serverless_api__Globals": { + "schema_source__aws_serverless_api__Globals": { "additionalProperties": false, "properties": { "AccessLogSetting": { @@ -156673,7 +190157,7 @@ "Auth": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Auth" + "$ref": "#/definitions/schema_source__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\\.", @@ -156749,7 +190233,7 @@ "Domain": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Domain" + "$ref": "#/definitions/schema_source__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\\.", @@ -156839,7 +190323,7 @@ "title": "Globals", "type": "object" }, - "samtranslator__schema__aws_serverless_api__Properties": { + "schema_source__aws_serverless_api__Properties": { "additionalProperties": false, "properties": { "AccessLogSetting": { @@ -156865,7 +190349,7 @@ "Auth": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Auth" + "$ref": "#/definitions/schema_source__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\\.", @@ -156940,7 +190424,7 @@ "type": "string" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__DefinitionUri" + "$ref": "#/definitions/schema_source__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\\.", @@ -156970,7 +190454,7 @@ "Domain": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Domain" + "$ref": "#/definitions/schema_source__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\\.", @@ -157111,7 +190595,7 @@ "title": "Properties", "type": "object" }, - "samtranslator__schema__aws_serverless_api__Resource": { + "schema_source__aws_serverless_api__Resource": { "additionalProperties": false, "properties": { "Condition": { @@ -157134,7 +190618,7 @@ "$ref": "#/definitions/PassThroughProp" }, "Properties": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Properties" + "$ref": "#/definitions/schema_source__aws_serverless_api__Properties" }, "Type": { "enum": [ @@ -157143,9 +190627,6 @@ "title": "Type", "type": "string" }, - "UpdatePolicy": { - "$ref": "#/definitions/PassThroughProp" - }, "UpdateReplacePolicy": { "$ref": "#/definitions/PassThroughProp" } @@ -157157,7 +190638,7 @@ "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_api__ResourcePolicy": { + "schema_source__aws_serverless_api__ResourcePolicy": { "additionalProperties": false, "properties": { "AwsAccountBlacklist": { @@ -157340,7 +190821,7 @@ "title": "ResourcePolicy", "type": "object" }, - "samtranslator__schema__aws_serverless_api__Route53": { + "schema_source__aws_serverless_api__Route53": { "additionalProperties": false, "properties": { "DistributionDomainName": { @@ -157393,7 +190874,7 @@ "title": "Route53", "type": "object" }, - "samtranslator__schema__aws_serverless_application__Properties": { + "schema_source__aws_serverless_application__Properties": { "additionalProperties": false, "properties": { "Location": { @@ -157452,14 +190933,23 @@ "title": "Properties", "type": "object" }, - "samtranslator__schema__aws_serverless_application__Resource": { + "schema_source__aws_serverless_application__Resource": { "additionalProperties": false, "properties": { "Condition": { "$ref": "#/definitions/PassThroughProp" }, + "DeletionPolicy": { + "$ref": "#/definitions/PassThroughProp" + }, + "DependsOn": { + "$ref": "#/definitions/PassThroughProp" + }, + "Metadata": { + "$ref": "#/definitions/PassThroughProp" + }, "Properties": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_application__Properties" + "$ref": "#/definitions/schema_source__aws_serverless_application__Properties" }, "Type": { "enum": [ @@ -157467,6 +190957,9 @@ ], "title": "Type", "type": "string" + }, + "UpdateReplacePolicy": { + "$ref": "#/definitions/PassThroughProp" } }, "required": [ @@ -157476,13 +190969,19 @@ "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_connector__Properties": { + "schema_source__aws_serverless_connector__Properties": { "additionalProperties": false, "properties": { "Destination": { - "allOf": [ + "anyOf": [ { "$ref": "#/definitions/ResourceReference" + }, + { + "items": { + "$ref": "#/definitions/ResourceReference" + }, + "type": "array" } ], "description": "The destination resource\\. \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", @@ -157508,8 +191007,8 @@ "$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\\.", + "description": "The source resource\\. Required when using the `AWS::Serverless::Connector` syntax\\. \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The source resource\\. Required when using the `AWS::Serverless::Connector` syntax\\. \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Source" } }, @@ -157521,11 +191020,23 @@ "title": "Properties", "type": "object" }, - "samtranslator__schema__aws_serverless_connector__Resource": { + "schema_source__aws_serverless_connector__Resource": { "additionalProperties": false, "properties": { + "Condition": { + "$ref": "#/definitions/PassThroughProp" + }, + "DeletionPolicy": { + "$ref": "#/definitions/PassThroughProp" + }, + "DependsOn": { + "$ref": "#/definitions/PassThroughProp" + }, + "Metadata": { + "$ref": "#/definitions/PassThroughProp" + }, "Properties": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_connector__Properties" + "$ref": "#/definitions/schema_source__aws_serverless_connector__Properties" }, "Type": { "enum": [ @@ -157533,6 +191044,9 @@ ], "title": "Type", "type": "string" + }, + "UpdateReplacePolicy": { + "$ref": "#/definitions/PassThroughProp" } }, "required": [ @@ -157542,13 +191056,13 @@ "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_function__ApiEvent": { + "schema_source__aws_serverless_function__ApiEvent": { "additionalProperties": false, "properties": { "Properties": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ApiEventProperties" + "$ref": "#/definitions/schema_source__aws_serverless_function__ApiEventProperties" } ], "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", @@ -157572,7 +191086,7 @@ "title": "ApiEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_function__ApiEventProperties": { + "schema_source__aws_serverless_function__ApiEventProperties": { "additionalProperties": false, "properties": { "Auth": { @@ -157641,13 +191155,13 @@ "title": "ApiEventProperties", "type": "object" }, - "samtranslator__schema__aws_serverless_function__CloudWatchEvent": { + "schema_source__aws_serverless_function__CloudWatchEvent": { "additionalProperties": false, "properties": { "Properties": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__CloudWatchEventProperties" + "$ref": "#/definitions/schema_source__aws_serverless_function__CloudWatchEventProperties" } ], "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", @@ -157671,7 +191185,7 @@ "title": "CloudWatchEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_function__CloudWatchEventProperties": { + "schema_source__aws_serverless_function__CloudWatchEventProperties": { "additionalProperties": false, "properties": { "Enabled": { @@ -157734,7 +191248,7 @@ "title": "CloudWatchEventProperties", "type": "object" }, - "samtranslator__schema__aws_serverless_function__DeadLetterConfig": { + "schema_source__aws_serverless_function__DeadLetterConfig": { "additionalProperties": false, "properties": { "Arn": { @@ -157766,13 +191280,13 @@ "title": "DeadLetterConfig", "type": "object" }, - "samtranslator__schema__aws_serverless_function__EventBridgeRuleEvent": { + "schema_source__aws_serverless_function__EventBridgeRuleEvent": { "additionalProperties": false, "properties": { "Properties": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__EventBridgeRuleEventProperties" + "$ref": "#/definitions/schema_source__aws_serverless_function__EventBridgeRuleEventProperties" } ], "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", @@ -157796,13 +191310,13 @@ "title": "EventBridgeRuleEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_function__EventBridgeRuleEventProperties": { + "schema_source__aws_serverless_function__EventBridgeRuleEventProperties": { "additionalProperties": false, "properties": { "DeadLetterConfig": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__DeadLetterConfig" + "$ref": "#/definitions/schema_source__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\\.", @@ -157862,7 +191376,7 @@ "Target": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__EventBridgeRuleTarget" + "$ref": "#/definitions/schema_source__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\\.", @@ -157876,7 +191390,7 @@ "title": "EventBridgeRuleEventProperties", "type": "object" }, - "samtranslator__schema__aws_serverless_function__EventBridgeRuleTarget": { + "schema_source__aws_serverless_function__EventBridgeRuleTarget": { "additionalProperties": false, "properties": { "Id": { @@ -157896,7 +191410,7 @@ "title": "EventBridgeRuleTarget", "type": "object" }, - "samtranslator__schema__aws_serverless_function__Globals": { + "schema_source__aws_serverless_function__Globals": { "additionalProperties": false, "properties": { "Architectures": { @@ -157918,10 +191432,10 @@ "AutoPublishAlias": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -158103,8 +191617,8 @@ "$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\\.", + "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 [Improving startup performance with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [SnapStart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-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-properties-lambda-function-snapstart.html) 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 [Improving startup performance with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [SnapStart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-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-properties-lambda-function-snapstart.html) property of an `AWS::Lambda::Function` resource\\.", "title": "SnapStart" }, "Tags": { @@ -158154,7 +191668,7 @@ "title": "Globals", "type": "object" }, - "samtranslator__schema__aws_serverless_function__Properties": { + "schema_source__aws_serverless_function__Properties": { "additionalProperties": false, "properties": { "Architectures": { @@ -158176,23 +191690,27 @@ "AutoPublishAlias": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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" }, + "AutoPublishAliasAllProperties": { + "title": "Autopublishaliasallproperties", + "type": "boolean" + }, "AutoPublishCodeSha256": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -158202,10 +191720,10 @@ "CodeSigningConfigArn": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -158303,23 +191821,26 @@ { "$ref": "#/definitions/DynamoDBEvent" }, + { + "$ref": "#/definitions/DocumentDBEvent" + }, { "$ref": "#/definitions/SQSEvent" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ApiEvent" + "$ref": "#/definitions/schema_source__aws_serverless_function__ApiEvent" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ScheduleEvent" + "$ref": "#/definitions/schema_source__aws_serverless_function__ScheduleEvent" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ScheduleV2Event" + "$ref": "#/definitions/schema_source__aws_serverless_function__ScheduleV2Event" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__CloudWatchEvent" + "$ref": "#/definitions/schema_source__aws_serverless_function__CloudWatchEvent" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__EventBridgeRuleEvent" + "$ref": "#/definitions/schema_source__aws_serverless_function__EventBridgeRuleEvent" }, { "$ref": "#/definitions/CloudWatchLogsEvent" @@ -158521,10 +192042,10 @@ "Role": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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`\\.", @@ -158560,8 +192081,8 @@ "$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\\.", + "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 [Improving startup performance with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [SnapStart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-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-properties-lambda-function-snapstart.html) 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 [Improving startup performance with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [SnapStart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-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-properties-lambda-function-snapstart.html) property of an `AWS::Lambda::Function` resource\\.", "title": "SnapStart" }, "Tags": { @@ -158621,7 +192142,7 @@ "title": "Properties", "type": "object" }, - "samtranslator__schema__aws_serverless_function__Resource": { + "schema_source__aws_serverless_function__Resource": { "additionalProperties": false, "properties": { "Condition": { @@ -158644,7 +192165,7 @@ "$ref": "#/definitions/PassThroughProp" }, "Properties": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__Properties" + "$ref": "#/definitions/schema_source__aws_serverless_function__Properties" }, "Type": { "enum": [ @@ -158663,7 +192184,7 @@ "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_function__ResourcePolicy": { + "schema_source__aws_serverless_function__ResourcePolicy": { "additionalProperties": false, "properties": { "AwsAccountBlacklist": { @@ -158846,7 +192367,7 @@ "title": "ResourcePolicy", "type": "object" }, - "samtranslator__schema__aws_serverless_function__ScheduleEvent": { + "schema_source__aws_serverless_function__ScheduleEvent": { "additionalProperties": false, "properties": { "Properties": { @@ -158876,13 +192397,13 @@ "title": "ScheduleEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_function__ScheduleV2Event": { + "schema_source__aws_serverless_function__ScheduleV2Event": { "additionalProperties": false, "properties": { "Properties": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ScheduleV2EventProperties" + "$ref": "#/definitions/schema_source__aws_serverless_function__ScheduleV2EventProperties" } ], "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", @@ -158906,13 +192427,13 @@ "title": "ScheduleV2Event", "type": "object" }, - "samtranslator__schema__aws_serverless_function__ScheduleV2EventProperties": { + "schema_source__aws_serverless_function__ScheduleV2EventProperties": { "additionalProperties": false, "properties": { "DeadLetterConfig": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__DeadLetterConfig" + "$ref": "#/definitions/schema_source__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\\.", @@ -159063,7 +192584,7 @@ "title": "ScheduleV2EventProperties", "type": "object" }, - "samtranslator__schema__aws_serverless_httpapi__Auth": { + "schema_source__aws_serverless_httpapi__Auth": { "additionalProperties": false, "properties": { "Authorizers": { @@ -159098,7 +192619,7 @@ "title": "Auth", "type": "object" }, - "samtranslator__schema__aws_serverless_httpapi__DefinitionUri": { + "schema_source__aws_serverless_httpapi__DefinitionUri": { "additionalProperties": false, "properties": { "Bucket": { @@ -159127,7 +192648,7 @@ "title": "DefinitionUri", "type": "object" }, - "samtranslator__schema__aws_serverless_httpapi__Domain": { + "schema_source__aws_serverless_httpapi__Domain": { "additionalProperties": false, "properties": { "BasePath": { @@ -159198,7 +192719,7 @@ "Route53": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Route53" + "$ref": "#/definitions/schema_source__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\\.", @@ -159223,7 +192744,7 @@ "title": "Domain", "type": "object" }, - "samtranslator__schema__aws_serverless_httpapi__Globals": { + "schema_source__aws_serverless_httpapi__Globals": { "additionalProperties": false, "properties": { "AccessLogSettings": { @@ -159239,7 +192760,7 @@ "Auth": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Auth" + "$ref": "#/definitions/schema_source__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\\.", @@ -159269,7 +192790,7 @@ "Domain": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Domain" + "$ref": "#/definitions/schema_source__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\\.", @@ -159316,7 +192837,7 @@ "title": "Globals", "type": "object" }, - "samtranslator__schema__aws_serverless_httpapi__Properties": { + "schema_source__aws_serverless_httpapi__Properties": { "additionalProperties": false, "properties": { "AccessLogSettings": { @@ -159332,7 +192853,7 @@ "Auth": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Auth" + "$ref": "#/definitions/schema_source__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\\.", @@ -159371,7 +192892,7 @@ "type": "string" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__DefinitionUri" + "$ref": "#/definitions/schema_source__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\\.", @@ -159397,7 +192918,7 @@ "Domain": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Domain" + "$ref": "#/definitions/schema_source__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\\.", @@ -159457,7 +192978,7 @@ "title": "Properties", "type": "object" }, - "samtranslator__schema__aws_serverless_httpapi__Resource": { + "schema_source__aws_serverless_httpapi__Resource": { "additionalProperties": false, "properties": { "Condition": { @@ -159470,11 +192991,17 @@ "title": "Connectors", "type": "object" }, + "DeletionPolicy": { + "$ref": "#/definitions/PassThroughProp" + }, + "DependsOn": { + "$ref": "#/definitions/PassThroughProp" + }, "Metadata": { "$ref": "#/definitions/PassThroughProp" }, "Properties": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Properties" + "$ref": "#/definitions/schema_source__aws_serverless_httpapi__Properties" }, "Type": { "enum": [ @@ -159482,6 +193009,9 @@ ], "title": "Type", "type": "string" + }, + "UpdateReplacePolicy": { + "$ref": "#/definitions/PassThroughProp" } }, "required": [ @@ -159490,7 +193020,7 @@ "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_httpapi__Route53": { + "schema_source__aws_serverless_httpapi__Route53": { "additionalProperties": false, "properties": { "DistributionDomainName": { @@ -159543,7 +193073,7 @@ "title": "Route53", "type": "object" }, - "samtranslator__schema__aws_serverless_layerversion__Properties": { + "schema_source__aws_serverless_layerversion__Properties": { "additionalProperties": false, "properties": { "CompatibleArchitectures": { @@ -159612,10 +193142,10 @@ "RetentionPolicy": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -159629,7 +193159,7 @@ "title": "Properties", "type": "object" }, - "samtranslator__schema__aws_serverless_layerversion__Resource": { + "schema_source__aws_serverless_layerversion__Resource": { "additionalProperties": false, "properties": { "Condition": { @@ -159638,8 +193168,14 @@ "DeletionPolicy": { "$ref": "#/definitions/PassThroughProp" }, + "DependsOn": { + "$ref": "#/definitions/PassThroughProp" + }, + "Metadata": { + "$ref": "#/definitions/PassThroughProp" + }, "Properties": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_layerversion__Properties" + "$ref": "#/definitions/schema_source__aws_serverless_layerversion__Properties" }, "Type": { "enum": [ @@ -159647,6 +193183,9 @@ ], "title": "Type", "type": "string" + }, + "UpdateReplacePolicy": { + "$ref": "#/definitions/PassThroughProp" } }, "required": [ @@ -159656,7 +193195,7 @@ "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_simpletable__Globals": { + "schema_source__aws_serverless_simpletable__Globals": { "additionalProperties": false, "properties": { "SSESpecification": { @@ -159673,7 +193212,7 @@ "title": "Globals", "type": "object" }, - "samtranslator__schema__aws_serverless_simpletable__Properties": { + "schema_source__aws_serverless_simpletable__Properties": { "additionalProperties": false, "properties": { "PrimaryKey": { @@ -159726,9 +193265,12 @@ "title": "Properties", "type": "object" }, - "samtranslator__schema__aws_serverless_simpletable__Resource": { + "schema_source__aws_serverless_simpletable__Resource": { "additionalProperties": false, "properties": { + "Condition": { + "$ref": "#/definitions/PassThroughProp" + }, "Connectors": { "additionalProperties": { "$ref": "#/definitions/EmbeddedConnector" @@ -159736,8 +193278,17 @@ "title": "Connectors", "type": "object" }, + "DeletionPolicy": { + "$ref": "#/definitions/PassThroughProp" + }, + "DependsOn": { + "$ref": "#/definitions/PassThroughProp" + }, + "Metadata": { + "$ref": "#/definitions/PassThroughProp" + }, "Properties": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_simpletable__Properties" + "$ref": "#/definitions/schema_source__aws_serverless_simpletable__Properties" }, "Type": { "enum": [ @@ -159745,6 +193296,9 @@ ], "title": "Type", "type": "string" + }, + "UpdateReplacePolicy": { + "$ref": "#/definitions/PassThroughProp" } }, "required": [ @@ -159753,13 +193307,13 @@ "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__ApiEvent": { + "schema_source__aws_serverless_statemachine__ApiEvent": { "additionalProperties": false, "properties": { "Properties": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ApiEventProperties" + "$ref": "#/definitions/schema_source__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\\.", @@ -159783,13 +193337,13 @@ "title": "ApiEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__ApiEventProperties": { + "schema_source__aws_serverless_statemachine__ApiEventProperties": { "additionalProperties": false, "properties": { "Auth": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__Auth" + "$ref": "#/definitions/schema_source__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\\.", @@ -159811,10 +193365,10 @@ "RestApiId": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -159833,7 +193387,7 @@ "title": "ApiEventProperties", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__Auth": { + "schema_source__aws_serverless_statemachine__Auth": { "additionalProperties": false, "properties": { "ApiKeyRequired": { @@ -159860,7 +193414,7 @@ "ResourcePolicy": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ResourcePolicy" + "$ref": "#/definitions/schema_source__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\\.", @@ -159871,13 +193425,13 @@ "title": "Auth", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__CloudWatchEvent": { + "schema_source__aws_serverless_statemachine__CloudWatchEvent": { "additionalProperties": false, "properties": { "Properties": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__CloudWatchEventProperties" + "$ref": "#/definitions/schema_source__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\\.", @@ -159901,7 +193455,7 @@ "title": "CloudWatchEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__CloudWatchEventProperties": { + "schema_source__aws_serverless_statemachine__CloudWatchEventProperties": { "additionalProperties": false, "properties": { "EventBusName": { @@ -159948,7 +193502,7 @@ "title": "CloudWatchEventProperties", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig": { + "schema_source__aws_serverless_statemachine__DeadLetterConfig": { "additionalProperties": false, "properties": { "Arn": { @@ -159980,13 +193534,13 @@ "title": "DeadLetterConfig", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEvent": { + "schema_source__aws_serverless_statemachine__EventBridgeRuleEvent": { "additionalProperties": false, "properties": { "Properties": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEventProperties" + "$ref": "#/definitions/schema_source__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\\.", @@ -160010,13 +193564,13 @@ "title": "EventBridgeRuleEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEventProperties": { + "schema_source__aws_serverless_statemachine__EventBridgeRuleEventProperties": { "additionalProperties": false, "properties": { "DeadLetterConfig": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig" + "$ref": "#/definitions/schema_source__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\\.", @@ -160074,13 +193628,13 @@ "title": "RetryPolicy" }, "Target": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleTarget" + "$ref": "#/definitions/schema_source__aws_serverless_statemachine__EventBridgeRuleTarget" } }, "title": "EventBridgeRuleEventProperties", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleTarget": { + "schema_source__aws_serverless_statemachine__EventBridgeRuleTarget": { "additionalProperties": false, "properties": { "Id": { @@ -160093,7 +193647,7 @@ "title": "EventBridgeRuleTarget", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__Properties": { + "schema_source__aws_serverless_statemachine__Properties": { "additionalProperties": false, "properties": { "Definition": { @@ -160125,19 +193679,19 @@ "additionalProperties": { "anyOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ScheduleEvent" + "$ref": "#/definitions/schema_source__aws_serverless_statemachine__ScheduleEvent" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ScheduleV2Event" + "$ref": "#/definitions/schema_source__aws_serverless_statemachine__ScheduleV2Event" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__CloudWatchEvent" + "$ref": "#/definitions/schema_source__aws_serverless_statemachine__CloudWatchEvent" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEvent" + "$ref": "#/definitions/schema_source__aws_serverless_statemachine__EventBridgeRuleEvent" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ApiEvent" + "$ref": "#/definitions/schema_source__aws_serverless_statemachine__ApiEvent" } ] }, @@ -160245,7 +193799,7 @@ "title": "Properties", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__Resource": { + "schema_source__aws_serverless_statemachine__Resource": { "additionalProperties": false, "properties": { "Condition": { @@ -160258,8 +193812,17 @@ "title": "Connectors", "type": "object" }, + "DeletionPolicy": { + "$ref": "#/definitions/PassThroughProp" + }, + "DependsOn": { + "$ref": "#/definitions/PassThroughProp" + }, + "Metadata": { + "$ref": "#/definitions/PassThroughProp" + }, "Properties": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__Properties" + "$ref": "#/definitions/schema_source__aws_serverless_statemachine__Properties" }, "Type": { "enum": [ @@ -160267,6 +193830,9 @@ ], "title": "Type", "type": "string" + }, + "UpdateReplacePolicy": { + "$ref": "#/definitions/PassThroughProp" } }, "required": [ @@ -160276,7 +193842,7 @@ "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__ResourcePolicy": { + "schema_source__aws_serverless_statemachine__ResourcePolicy": { "additionalProperties": false, "properties": { "AwsAccountBlacklist": { @@ -160459,7 +194025,7 @@ "title": "ResourcePolicy", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__ScheduleEvent": { + "schema_source__aws_serverless_statemachine__ScheduleEvent": { "additionalProperties": false, "properties": { "Properties": { @@ -160489,13 +194055,13 @@ "title": "ScheduleEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__ScheduleV2Event": { + "schema_source__aws_serverless_statemachine__ScheduleV2Event": { "additionalProperties": false, "properties": { "Properties": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ScheduleV2EventProperties" + "$ref": "#/definitions/schema_source__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\\.", @@ -160519,13 +194085,13 @@ "title": "ScheduleV2Event", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__ScheduleV2EventProperties": { + "schema_source__aws_serverless_statemachine__ScheduleV2EventProperties": { "additionalProperties": false, "properties": { "DeadLetterConfig": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig" + "$ref": "#/definitions/schema_source__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\\.", @@ -160738,28 +194304,28 @@ "additionalProperties": { "anyOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_connector__Resource" + "$ref": "#/definitions/schema_source__aws_serverless_connector__Resource" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__Resource" + "$ref": "#/definitions/schema_source__aws_serverless_function__Resource" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_simpletable__Resource" + "$ref": "#/definitions/schema_source__aws_serverless_simpletable__Resource" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__Resource" + "$ref": "#/definitions/schema_source__aws_serverless_statemachine__Resource" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_layerversion__Resource" + "$ref": "#/definitions/schema_source__aws_serverless_layerversion__Resource" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Resource" + "$ref": "#/definitions/schema_source__aws_serverless_api__Resource" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Resource" + "$ref": "#/definitions/schema_source__aws_serverless_httpapi__Resource" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_application__Resource" + "$ref": "#/definitions/schema_source__aws_serverless_application__Resource" }, { "$ref": "#/definitions/AWS::ACMPCA::Certificate" @@ -161241,9 +194807,15 @@ { "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution" }, + { + "$ref": "#/definitions/AWS::CloudTrail::Channel" + }, { "$ref": "#/definitions/AWS::CloudTrail::EventDataStore" }, + { + "$ref": "#/definitions/AWS::CloudTrail::ResourcePolicy" + }, { "$ref": "#/definitions/AWS::CloudTrail::Trail" }, @@ -161382,6 +194954,9 @@ { "$ref": "#/definitions/AWS::Config::StoredQuery" }, + { + "$ref": "#/definitions/AWS::Connect::ApprovedOrigin" + }, { "$ref": "#/definitions/AWS::Connect::ContactFlow" }, @@ -161397,6 +194972,9 @@ { "$ref": "#/definitions/AWS::Connect::InstanceStorageConfig" }, + { + "$ref": "#/definitions/AWS::Connect::IntegrationAssociation" + }, { "$ref": "#/definitions/AWS::Connect::PhoneNumber" }, @@ -161406,6 +194984,9 @@ { "$ref": "#/definitions/AWS::Connect::Rule" }, + { + "$ref": "#/definitions/AWS::Connect::SecurityKey" + }, { "$ref": "#/definitions/AWS::Connect::TaskTemplate" }, @@ -161616,6 +195197,15 @@ { "$ref": "#/definitions/AWS::EC2::IPAMPool" }, + { + "$ref": "#/definitions/AWS::EC2::IPAMPoolCidr" + }, + { + "$ref": "#/definitions/AWS::EC2::IPAMResourceDiscovery" + }, + { + "$ref": "#/definitions/AWS::EC2::IPAMResourceDiscoveryAssociation" + }, { "$ref": "#/definitions/AWS::EC2::IPAMScope" }, @@ -162522,6 +196112,9 @@ { "$ref": "#/definitions/AWS::Kendra::Index" }, + { + "$ref": "#/definitions/AWS::KendraRanking::ExecutionPlan" + }, { "$ref": "#/definitions/AWS::Kinesis::Stream" }, @@ -162876,6 +196469,9 @@ { "$ref": "#/definitions/AWS::NetworkManager::SiteToSiteVpnAttachment" }, + { + "$ref": "#/definitions/AWS::NetworkManager::TransitGatewayPeering" + }, { "$ref": "#/definitions/AWS::NetworkManager::TransitGatewayRegistration" }, @@ -162900,6 +196496,24 @@ { "$ref": "#/definitions/AWS::Oam::Sink" }, + { + "$ref": "#/definitions/AWS::Omics::AnnotationStore" + }, + { + "$ref": "#/definitions/AWS::Omics::ReferenceStore" + }, + { + "$ref": "#/definitions/AWS::Omics::RunGroup" + }, + { + "$ref": "#/definitions/AWS::Omics::SequenceStore" + }, + { + "$ref": "#/definitions/AWS::Omics::VariantStore" + }, + { + "$ref": "#/definitions/AWS::Omics::Workflow" + }, { "$ref": "#/definitions/AWS::OpenSearchServerless::AccessPolicy" }, @@ -163461,6 +197075,9 @@ { "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition" }, + { + "$ref": "#/definitions/AWS::SageMaker::ModelCard" + }, { "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition" }, @@ -163488,6 +197105,9 @@ { "$ref": "#/definitions/AWS::SageMaker::Project" }, + { + "$ref": "#/definitions/AWS::SageMaker::Space" + }, { "$ref": "#/definitions/AWS::SageMaker::UserProfile" }, @@ -163596,6 +197216,9 @@ { "$ref": "#/definitions/AWS::Signer::SigningProfile" }, + { + "$ref": "#/definitions/AWS::SimSpaceWeaver::Simulation" + }, { "$ref": "#/definitions/AWS::StepFunctions::Activity" }, diff --git a/samtranslator/sdk/parameter.py b/samtranslator/sdk/parameter.py index 8b1bd815a..2458bcfcf 100644 --- a/samtranslator/sdk/parameter.py +++ b/samtranslator/sdk/parameter.py @@ -1,6 +1,7 @@ -import boto3 -from typing import Dict, Any import copy +from typing import Any, Dict + +import boto3 from samtranslator.translator.arn_generator import ArnGenerator, NoRegionFound diff --git a/samtranslator/sdk/resource.py b/samtranslator/sdk/resource.py index 28b154818..c84fab3fc 100644 --- a/samtranslator/sdk/resource.py +++ b/samtranslator/sdk/resource.py @@ -12,7 +12,7 @@ class SamResource: with any CloudFormation constructs, like DependsOn, Conditions etc. """ - type = None + type = None # noqa: builtin-attribute-shadowing properties: Dict[str, Any] = {} # TODO: Replace `Any` with something more specific def __init__(self, resource_dict: Dict[str, Any]) -> None: @@ -40,30 +40,21 @@ def valid(self) -> bool: # As long as the type is valid and type string. # validate the condition should be string # TODO Refactor this file so that it has logical id, can use sam_expect here after that - if self.condition: + if self.condition and not IS_STR(self.condition, should_raise=False): + raise InvalidDocumentException([InvalidTemplateException("Every Condition member must be a string.")]) - if not IS_STR(self.condition, should_raise=False): - raise InvalidDocumentException([InvalidTemplateException("Every Condition member must be a string.")]) + if self.deletion_policy and not IS_STR(self.deletion_policy, should_raise=False): + raise InvalidDocumentException([InvalidTemplateException("Every DeletionPolicy member must be a string.")]) - if self.deletion_policy: - - if not IS_STR(self.deletion_policy, should_raise=False): - raise InvalidDocumentException( - [InvalidTemplateException("Every DeletionPolicy member must be a string.")] - ) - - if self.update_replace_policy: - - if not IS_STR(self.update_replace_policy, should_raise=False): - raise InvalidDocumentException( - [InvalidTemplateException("Every UpdateReplacePolicy member must be a string.")] - ) + if self.update_replace_policy and not IS_STR(self.update_replace_policy, should_raise=False): + raise InvalidDocumentException( + [InvalidTemplateException("Every UpdateReplacePolicy member must be a string.")] + ) # TODO: should we raise exception if `self.type` is not a string? return isinstance(self.type, str) and SamResourceType.has_value(self.type) def to_dict(self) -> Dict[str, Any]: - if self.valid(): # Touch a resource dictionary ONLY if it is valid # Modify only Type & Properties section to preserve CloudFormation properties like DependsOn, Conditions etc diff --git a/samtranslator/sdk/template.py b/samtranslator/sdk/template.py index 5801238ab..6db43b0a4 100644 --- a/samtranslator/sdk/template.py +++ b/samtranslator/sdk/template.py @@ -31,7 +31,6 @@ def iterate(self, resource_types: Optional[Set[str]] = None) -> Iterator[Tuple[s if resource_types is None: resource_types = set() for logicalId, resource_dict in self.resources.items(): - resource = SamResource(resource_dict) needs_filter = resource.valid() if resource_types: @@ -40,7 +39,9 @@ def iterate(self, resource_types: Optional[Set[str]] = None) -> Iterator[Tuple[s if needs_filter: yield logicalId, resource - def set(self, logical_id: str, resource: Union[SamResource, Dict[str, Any]]) -> None: + def set( # noqa: builtin-attribute-shadowing + self, logical_id: str, resource: Union[SamResource, Dict[str, Any]] + ) -> None: """ Adds the resource to dictionary with given logical Id. It will overwrite, if the logical_id is already used. diff --git a/samtranslator/swagger/swagger.py b/samtranslator/swagger/swagger.py index 01a601eaa..d5a74909d 100644 --- a/samtranslator/swagger/swagger.py +++ b/samtranslator/swagger/swagger.py @@ -1,13 +1,13 @@ -import copy +import copy import re -from typing import Callable, Dict, Any, Optional, TypeVar +from typing import Any, Callable, Dict, Optional, TypeVar from samtranslator.metrics.method_decorator import cw_timer from samtranslator.model.apigateway import ApiGatewayAuthorizer -from samtranslator.model.intrinsics import ref, make_conditional, fnSub from samtranslator.model.exceptions import InvalidDocumentException, InvalidTemplateException +from samtranslator.model.intrinsics import fnSub, make_conditional, ref +from samtranslator.model.types import PassThrough from samtranslator.open_api.base_editor import BaseEditor -from samtranslator.schema.common import PassThrough from samtranslator.translator.arn_generator import ArnGenerator from samtranslator.utils.py27hash_fix import Py27Dict, Py27UniStr from samtranslator.utils.utils import InvalidValueType, dict_deep_set @@ -114,7 +114,7 @@ def add_disable_execute_api_endpoint_extension(self, disable_execute_api_endpoin [InvalidTemplateException(f"Invalid OpenAPI definition: {str(ex)}.")] ) from ex - def add_lambda_integration( + def add_lambda_integration( # noqa: too-many-arguments self, path: str, method: str, @@ -175,7 +175,7 @@ def add_lambda_integration( if condition: path_item[method] = make_conditional(condition, path_item[method]) - def add_state_machine_integration( # type: ignore[no-untyped-def] + def add_state_machine_integration( # type: ignore[no-untyped-def] # noqa: too-many-arguments self, path, method, @@ -271,7 +271,7 @@ def iter_on_all_methods_for_path(self, path_name, skip_methods_without_apigw_int normalized_method_name = self._normalize_method_name(method_name) yield normalized_method_name, method_definition - def add_cors( # type: ignore[no-untyped-def] + def add_cors( # type: ignore[no-untyped-def] # noqa: too-many-arguments self, path, allowed_origins, allowed_headers=None, allowed_methods=None, max_age=None, allow_credentials=None ): """ @@ -521,7 +521,7 @@ def add_apikey_security_definition(self) -> None: if "api_key" not in self.security_definitions: self.security_definitions.update(api_key_security_definition) - def set_path_default_authorizer( + def set_path_default_authorizer( # noqa: too-many-branches self, path: str, default_authorizer: str, @@ -582,7 +582,7 @@ def set_path_default_authorizer( # applied (Function Api Events first; then Api Resource) complicates it. # Check if Function/Path/Method specified 'NONE' for Authorizer for idx, security in enumerate(existing_non_authorizer_security): - is_none = any(key == "NONE" for key in security.keys()) + is_none = any(key == "NONE" for key in security) if is_none: none_idx = idx @@ -655,7 +655,7 @@ def set_path_default_apikey_required(self, path: str) -> None: # Check if Function/Path/Method specified 'False' for ApiKeyRequired apikeyfalse_idx = -1 for idx, security in enumerate(existing_apikey_security): - is_none = any(key == "api_key_false" for key in security.keys()) + is_none = any(key == "api_key_false" for key in security) if is_none: apikeyfalse_idx = idx @@ -712,7 +712,6 @@ def _set_method_authorizer(self, path, method_name, authorizer_name, authorizers authorizers = Py27Dict() for method_definition in self.iter_on_method_definitions_for_path_at_method(path, method_name): - security_dict = Py27Dict() security_dict[authorizer_name] = [] authorizer_security = [security_dict] @@ -755,7 +754,6 @@ def _set_method_apikey_handling(self, path, method_name, apikey_required): # ty :param bool apikey_required: Whether the apikey security is required """ for method_definition in self.iter_on_method_definitions_for_path_at_method(path, method_name): - if apikey_required: # We want to enable apikey required security security_dict = Py27Dict() @@ -825,7 +823,6 @@ def add_request_model_to_method(self, path, method_name, request_model): # type for method_definition in self.iter_on_method_definitions_for_path_at_method(path, method_name): if self._doc.get("swagger") is not None: - existing_parameters = method_definition.get("parameters", []) # construct parameter as py27 dict @@ -874,7 +871,6 @@ def add_models(self, models): # type: ignore[no-untyped-def] self.definitions = self.definitions or Py27Dict() for model_name, schema in models.items(): - model_type = schema.get("type") if not model_type: @@ -937,7 +933,7 @@ def add_resource_policy(self, resource_policy: Optional[Dict[str, Any]], path: s "IntrinsicVpceList": source_vpce_intrinsic_blacklist, } resource_list = self._get_method_path_uri_list(path, stage) # type: ignore[no-untyped-call] - self._add_vpc_resource_policy_for_method(blacklist_dict, "StringEquals", resource_list) # type: ignore[no-untyped-call] + self._add_vpc_resource_policy_for_method(blacklist_dict, "StringEquals", resource_list) if not SwaggerEditor._validate_list_property_is_resolved(source_vpc_whitelist): # type: ignore[no-untyped-call] raise InvalidDocumentException( @@ -953,7 +949,7 @@ def add_resource_policy(self, resource_policy: Optional[Dict[str, Any]], path: s "IntrinsicVpcList": source_vpc_intrinsic_whitelist, "IntrinsicVpceList": source_vpce_intrinsic_whitelist, } - self._add_vpc_resource_policy_for_method(whitelist_dict, "StringNotEquals", resource_list) # type: ignore[no-untyped-call] + self._add_vpc_resource_policy_for_method(whitelist_dict, "StringNotEquals", resource_list) self._doc[self._X_APIGW_POLICY] = self.resource_policy @@ -1067,7 +1063,9 @@ def _add_ip_resource_policy_for_method(self, ip_list, conditional, resource_list statement.extend([deny_statement]) self.resource_policy["Statement"] = statement - def _add_vpc_resource_policy_for_method(self, endpoint_dict, conditional, resource_list): # type: ignore[no-untyped-def] + def _add_vpc_resource_policy_for_method( # noqa: too-many-branches + self, endpoint_dict: Dict[str, Any], conditional: str, resource_list: PassThrough + ) -> None: """ This method generates a policy statement to grant/deny specific VPC/VPCE access to the API method and appends it to the swagger under `x-amazon-apigateway-policy` @@ -1166,7 +1164,6 @@ def add_request_parameters_to_method(self, path, method_name, request_parameters existing_parameters = method_definition.get("parameters", []) for request_parameter in request_parameters: - parameter_name = request_parameter["Name"] location_name = parameter_name.replace("method.request.", "") @@ -1203,7 +1200,7 @@ def swagger(self) -> Dict[str, Any]: # Make sure any changes to the paths are reflected back in output # iterate keys to make sure if "paths" is of Py27UniStr type, it won't be overriden as str - for key in self._doc.keys(): + for key in self._doc: if key == "paths": self._doc[key] = self.paths @@ -1255,8 +1252,7 @@ def gen_skeleton() -> Py27Dict: @staticmethod def get_openapi_versions_supported_regex() -> str: - openapi_version_supported_regex = r"\A[2-3](\.\d)(\.\d)?$" - return openapi_version_supported_regex + return r"\A[2-3](\.\d)(\.\d)?$" @staticmethod def get_path_without_trailing_slash(path): # type: ignore[no-untyped-def] diff --git a/samtranslator/third_party/py27hash/hash.py b/samtranslator/third_party/py27hash/hash.py index a40d29ed7..022a63447 100644 --- a/samtranslator/third_party/py27hash/hash.py +++ b/samtranslator/third_party/py27hash/hash.py @@ -29,9 +29,11 @@ class Hash: Various hashing methods using Python 2.7's algorithms """ + _FLOAT_ZERO = 0.0 + @staticmethod @lru_cache(maxsize=2048) - def hash(value): # type: ignore[no-untyped-def] + def hash(value): # type: ignore[no-untyped-def] # noqa: builtin-attribute-shadowing """ Returns a Python 2.7 hash for a value. @@ -104,7 +106,7 @@ def fhash(value): # type: ignore[no-untyped-def] """ fpart = math.modf(value) - if fpart[0] == 0.0: + if fpart[0] == Hash._FLOAT_ZERO: return hash(int(fpart[1])) v, e = math.frexp(value) diff --git a/samtranslator/translator/arn_generator.py b/samtranslator/translator/arn_generator.py index 509aae9a6..82f652461 100644 --- a/samtranslator/translator/arn_generator.py +++ b/samtranslator/translator/arn_generator.py @@ -1,9 +1,8 @@ from functools import lru_cache +from typing import Optional import boto3 -from typing import Optional - class NoRegionFound(Exception): pass @@ -17,19 +16,17 @@ def _get_region_from_session() -> str: @lru_cache(maxsize=1) # Only need to cache one as once deployed, it is not gonna deal with another region. def _region_to_partition(region: str) -> str: # setting default partition to aws, this will be overwritten by checking the region below - partition = "aws" - region_string = region.lower() if region_string.startswith("cn-"): - partition = "aws-cn" - elif region_string.startswith("us-iso-"): - partition = "aws-iso" - elif region_string.startswith("us-isob"): - partition = "aws-iso-b" - elif region_string.startswith("us-gov"): - partition = "aws-us-gov" + return "aws-cn" + if region_string.startswith("us-iso-"): + return "aws-iso" + if region_string.startswith("us-isob"): + return "aws-iso-b" + if region_string.startswith("us-gov"): + return "aws-us-gov" - return partition + return "aws" class ArnGenerator: @@ -77,10 +74,11 @@ def get_partition_name(cls, region: Optional[str] = None) -> str: # Use Boto3 to get the region where code is running. This uses Boto's regular region resolution # mechanism, starting from AWS_DEFAULT_REGION environment variable. - if ArnGenerator.BOTO_SESSION_REGION_NAME is None: - region = _get_region_from_session() - else: - region = ArnGenerator.BOTO_SESSION_REGION_NAME # type: ignore[unreachable] + region = ( + _get_region_from_session() + if ArnGenerator.BOTO_SESSION_REGION_NAME is None + else ArnGenerator.BOTO_SESSION_REGION_NAME + ) # If region is still None, then we could not find the region. This will only happen # in the local context. When this is deployed, we will be able to find the region like diff --git a/samtranslator/translator/logical_id_generator.py b/samtranslator/translator/logical_id_generator.py index 4b835d53c..9cf56544d 100644 --- a/samtranslator/translator/logical_id_generator.py +++ b/samtranslator/translator/logical_id_generator.py @@ -4,7 +4,6 @@ class LogicalIdGenerator: - # NOTE: Changing the length of the hash will change backwards compatibility. This will break the stability contract # given by this class HASH_LENGTH = 10 @@ -63,7 +62,7 @@ def get_hash(self, length: int = HASH_LENGTH) -> str: return data_hash encoded_data_str = self.data_str.encode("utf-8") - data_hash = hashlib.sha1(encoded_data_str).hexdigest() + data_hash = hashlib.sha1(encoded_data_str).hexdigest() # noqa: hashlib-insecure-hash-function return data_hash[:length] diff --git a/samtranslator/translator/transform.py b/samtranslator/translator/transform.py index d522db0e6..1fde39a90 100644 --- a/samtranslator/translator/transform.py +++ b/samtranslator/translator/transform.py @@ -1,5 +1,5 @@ -from samtranslator.translator.translator import Translator from samtranslator.parser.parser import Parser +from samtranslator.translator.translator import Translator from samtranslator.utils.py27hash_fix import to_py27_compatible_template, undo_mark_unicode_str_in_template @@ -13,7 +13,7 @@ def transform(input_fragment, parameter_values, managed_policy_loader, feature_t """ sam_parser = Parser() - to_py27_compatible_template(input_fragment, parameter_values) # type: ignore[no-untyped-call] + to_py27_compatible_template(input_fragment, parameter_values) translator = Translator(managed_policy_loader.load(), sam_parser) # type: ignore[no-untyped-call] transformed = translator.translate( input_fragment, @@ -21,5 +21,4 @@ def transform(input_fragment, parameter_values, managed_policy_loader, feature_t feature_toggle=feature_toggle, passthrough_metadata=passthrough_metadata, ) - transformed = undo_mark_unicode_str_in_template(transformed) # type: ignore[no-untyped-call] - return transformed + return undo_mark_unicode_str_in_template(transformed) # type: ignore[no-untyped-call] diff --git a/samtranslator/translator/translator.py b/samtranslator/translator/translator.py index 58137f157..944a63b93 100644 --- a/samtranslator/translator/translator.py +++ b/samtranslator/translator/translator.py @@ -1,40 +1,38 @@ import copy -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple -from samtranslator.metrics.method_decorator import MetricsMethodWrapperSingleton -from samtranslator.metrics.metrics import DummyMetricsPublisher, Metrics -from typing import Dict, Any, Optional, List, Tuple from samtranslator.feature_toggle.feature_toggle import ( FeatureToggle, FeatureToggleDefaultConfigProvider, ) -from samtranslator.model import ResourceResolver, ResourceTypeResolver, sam_resources +from samtranslator.intrinsics.actions import FindInMapAction +from samtranslator.intrinsics.resolver import IntrinsicsResolver +from samtranslator.intrinsics.resource_refs import SupportedResourceReferences +from samtranslator.metrics.method_decorator import MetricsMethodWrapperSingleton +from samtranslator.metrics.metrics import DummyMetricsPublisher, Metrics +from samtranslator.model import Resource, ResourceResolver, ResourceTypeResolver, sam_resources from samtranslator.model.api.api_generator import SharedApiUsagePlan -from samtranslator.translator.verify_logical_id import verify_unique_logical_id -from samtranslator.model.preferences.deployment_preference_collection import DeploymentPreferenceCollection +from samtranslator.model.eventsources.push import Api from samtranslator.model.exceptions import ( - InvalidDocumentException, - InvalidResourceException, DuplicateLogicalIdException, + InvalidDocumentException, InvalidEventException, + InvalidResourceException, InvalidTemplateException, ) -from samtranslator.intrinsics.resolver import IntrinsicsResolver -from samtranslator.intrinsics.actions import FindInMapAction -from samtranslator.intrinsics.resource_refs import SupportedResourceReferences +from samtranslator.model.preferences.deployment_preference_collection import DeploymentPreferenceCollection +from samtranslator.model.sam_resources import SamConnector +from samtranslator.plugins import LifeCycleEvents from samtranslator.plugins.api.default_definition_body_plugin import DefaultDefinitionBodyPlugin from samtranslator.plugins.application.serverless_app_plugin import ServerlessAppPlugin -from samtranslator.plugins import LifeCycleEvents -from samtranslator.plugins.sam_plugins import SamPlugins from samtranslator.plugins.globals.globals_plugin import GlobalsPlugin from samtranslator.plugins.policies.policy_templates_plugin import PolicyTemplatesForResourcePlugin +from samtranslator.plugins.sam_plugins import SamPlugins from samtranslator.policy_template_processor.processor import PolicyTemplatesProcessor 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 +from samtranslator.translator.verify_logical_id import verify_unique_logical_id from samtranslator.validator.value_validator import sam_expect -from samtranslator.model import Resource class Translator: @@ -91,7 +89,7 @@ def _get_function_names( self.function_names[api_name] += str(resolved_function_name) return self.function_names - def translate( + def translate( # noqa: too-many-branches self, sam_template: Dict[str, Any], parameter_values: Dict[Any, Any], @@ -185,9 +183,12 @@ def translate( 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: - if not template["Resources"].get(resource.logical_id): - _r[resource.logical_id]["Metadata"] = resource_dict["Metadata"] + if ( + resource_dict.get("Metadata") + and passthrough_metadata + and not template["Resources"].get(resource.logical_id) + ): + _r[resource.logical_id]["Metadata"] = resource_dict["Metadata"] template["Resources"].update(_r) else: self.document_errors.append( @@ -259,7 +260,6 @@ def _get_resources_to_iterate( resources = sam_template["Resources"] for logicalId, resource in resources.items(): - data = (logicalId, resource) # Skip over the resource if it is not a SAM defined Resource @@ -398,7 +398,7 @@ def prepare_plugins(plugins: List[Any], parameters: Optional[Dict[str, Any]] = N make_policy_template_for_function_plugin(), ] - plugins = [] if not plugins else plugins + plugins = plugins if plugins else [] # If a ServerlessAppPlugin does not yet exist, create one and add to the beginning of the required plugins list. if not any(isinstance(plugin, ServerlessAppPlugin) for plugin in plugins): @@ -410,8 +410,8 @@ def prepare_plugins(plugins: List[Any], parameters: Optional[Dict[str, Any]] = N if TYPE_CHECKING: - from samtranslator.plugins.api.implicit_rest_api_plugin import ImplicitRestApiPlugin from samtranslator.plugins.api.implicit_http_api_plugin import ImplicitHttpApiPlugin + from samtranslator.plugins.api.implicit_rest_api_plugin import ImplicitRestApiPlugin def make_implicit_rest_api_plugin() -> "ImplicitRestApiPlugin": diff --git a/samtranslator/translator/verify_logical_id.py b/samtranslator/translator/verify_logical_id.py index fb4c488a0..71e5b0471 100644 --- a/samtranslator/translator/verify_logical_id.py +++ b/samtranslator/translator/verify_logical_id.py @@ -1,5 +1,6 @@ +from typing import Any, Dict + from samtranslator.model import Resource -from typing import Dict, Any do_not_verify = { # type_after_transform: type_before_transform @@ -19,12 +20,15 @@ def verify_unique_logical_id(resource: Resource, existing_resources: Dict[str, Any]) -> bool: + """Return true if the logical id is unique.""" + # 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 - if ( - resource.resource_type not in do_not_verify - or existing_resources[resource.logical_id]["Type"] not in do_not_verify[resource.resource_type] - ): - return False - return True + if resource.logical_id is None or resource.logical_id not in existing_resources: + return True + # new resource logicalid is in the do_not_resolve list + if ( + resource.resource_type in do_not_verify + and existing_resources[resource.logical_id]["Type"] in do_not_verify[resource.resource_type] + ): + return True + return False diff --git a/samtranslator/utils/cfn_dynamic_references.py b/samtranslator/utils/cfn_dynamic_references.py index a0e97ad77..f5b340fdd 100644 --- a/samtranslator/utils/cfn_dynamic_references.py +++ b/samtranslator/utils/cfn_dynamic_references.py @@ -12,7 +12,6 @@ def is_dynamic_reference(_input: Any) -> bool: :return: True, if yes """ pattern = re.compile("^{{resolve:([a-z-]+):(.+)}}$") - if _input is not None and isinstance(_input, str): - if pattern.match(_input): - return True + if _input is not None and isinstance(_input, str) and pattern.match(_input): + return True return False diff --git a/samtranslator/utils/py27hash_fix.py b/samtranslator/utils/py27hash_fix.py index fc9d578b8..abd7de228 100644 --- a/samtranslator/utils/py27hash_fix.py +++ b/samtranslator/utils/py27hash_fix.py @@ -1,17 +1,15 @@ """ """ -import ctypes import copy +import ctypes import json import logging - -from typing import Any, Dict, Iterator, List, cast +from typing import Any, Dict, Iterator, List, Optional, cast from samtranslator.parser.parser import Parser from samtranslator.third_party.py27hash.hash import Hash - LOG = logging.getLogger(__name__) # Constants based on Python2.7 dictionary # See: https://github.com/python/cpython/blob/v2.7.18/Objects/dictobject.c @@ -22,7 +20,9 @@ long_int_type = int # TODO: remove it, python 2 legacy code -def to_py27_compatible_template(template, parameter_values=None): # type: ignore[no-untyped-def] +def to_py27_compatible_template( # noqa: too-many-branches + template: Dict[str, Any], parameter_values: Optional[Dict[str, Any]] = None +) -> None: """ Convert an input template to a py27hash-compatible template. This function has to be run before any manipulation occurs for sake of keeping the same initial state. This function modifies the input template, @@ -129,8 +129,8 @@ def split(self, sep=None, maxsplit=-1): # type: ignore[no-untyped-def] def __deepcopy__(self, memo): # type: ignore[no-untyped-def] return self # strings are immutable - def _get_py27_hash(self): # type: ignore[no-untyped-def] - h = getattr(self, "_py27_hash", None) + def _get_py27_hash(self) -> int: + h: Optional[int] = getattr(self, "_py27_hash", None) if h is None: self._py27_hash = h = ctypes.c_size_t(Hash.hash(self)).value return h @@ -165,6 +165,7 @@ class Py27Keys: # marker for deleted keys # we use DUMMY for a dummy key, force it to be treated as a str to avoid mypy unhappy DUMMY: str = cast(str, ["dummy"]) + _LARGE_DICT_SIZE_THRESHOLD = 50000 def __init__(self) -> None: super().__init__() @@ -178,7 +179,7 @@ def __deepcopy__(self, memo): # type: ignore[no-untyped-def] # add keys in the py2 order -- we can't do a straigh-up deep copy of keyorder because # in py2 copy.deepcopy of a dict may result in reordering of the keys ret = Py27Keys() - for k in self.keys(): + for k in self: if k is self.DUMMY: continue ret.add(copy.deepcopy(k, memo)) # type: ignore[no-untyped-call] @@ -188,11 +189,7 @@ def _get_key_idx(self, k): # type: ignore[no-untyped-def] """Gets insert location for k""" # Py27UniStr caches the hash to improve performance so use its method instead of always computing the hash - if isinstance(k, Py27UniStr): - h = k._get_py27_hash() # type: ignore[no-untyped-call] - else: - h = ctypes.c_size_t(Hash.hash(k)).value - + h = k._get_py27_hash() if isinstance(k, Py27UniStr) else ctypes.c_size_t(Hash.hash(k)).value i = h & self.mask if i not in self.keyorder or self.keyorder[i] == k: @@ -241,10 +238,9 @@ def _resize(self, request): # type: ignore[no-untyped-def] def remove(self, key): # type: ignore[no-untyped-def] """Removes key""" i = self._get_key_idx(key) # type: ignore[no-untyped-call] - if i in self.keyorder: - if self.keyorder[i] is not self.DUMMY: - self.keyorder[i] = self.DUMMY - self.size -= 1 + if i in self.keyorder and self.keyorder[i] is not self.DUMMY: + self.keyorder[i] = self.DUMMY + self.size -= 1 def add(self, key): # type: ignore[no-untyped-def] """Adds key""" @@ -264,7 +260,7 @@ def add(self, key): # type: ignore[no-untyped-def] # Resize if 2/3 capacity if self.size > start_size and self.fill * 3 >= ((self.mask + 1) * 2): # Python2 dict increases size by a factor of 4 for small dict, and 2 for large dict - self._resize(self.size * (2 if self.size > 50000 else 4)) # type: ignore[no-untyped-call] + self._resize(self.size * (2 if self.size > self._LARGE_DICT_SIZE_THRESHOLD else 4)) # type: ignore[no-untyped-call] def keys(self) -> List[str]: """Return keys in Python2 order""" @@ -374,7 +370,6 @@ def __reduce__(self): # type: ignore[no-untyped-def] """ Method necessary to fully pickle Python 3 subclassed dict objects with attribute fields. """ - # pylint: disable = W0235 return super().__reduce__() def __setitem__(self, key, value): # type: ignore[no-untyped-def] @@ -552,8 +547,7 @@ def values(self): # type: ignore[no-untyped-def] list list of values """ - # pylint: disable=consider-using-dict-items - return [self[k] for k in self.keys()] # type: ignore[no-untyped-call] + return [self[k] for k in self] def items(self): # type: ignore[no-untyped-def] """ @@ -564,8 +558,7 @@ def items(self): # type: ignore[no-untyped-def] list list of items """ - # pylint: disable=consider-using-dict-items - return [(k, self[k]) for k in self.keys()] # type: ignore[no-untyped-call] + return [(k, self[k]) for k in self] def setdefault(self, key, default): # type: ignore[no-untyped-def] """ diff --git a/samtranslator/utils/utils.py b/samtranslator/utils/utils.py index 613a29456..c38417f6a 100644 --- a/samtranslator/utils/utils.py +++ b/samtranslator/utils/utils.py @@ -1,5 +1,5 @@ import copy -from typing import Optional, cast, Any, List +from typing import Any, List, Optional, cast def as_array(x: Any) -> List[Any]: diff --git a/samtranslator/validator/validator.py b/samtranslator/validator/validator.py index 1b811b55f..bbb98bdab 100644 --- a/samtranslator/validator/validator.py +++ b/samtranslator/validator/validator.py @@ -166,7 +166,7 @@ def _cleanup_error_message(self, error): # type: ignore[no-untyped-def] if final_message.endswith(" under any of the given schemas"): return "Is not valid" - if final_message.startswith("None is not of type ") or final_message.startswith("None is not one of "): + if final_message.startswith(("None is not of type ", "None is not one of ")): return "Must not be empty" if " does not match " in final_message and "patternError" in error.schema: return re.sub("does not match .+", error.schema.get("patternError"), final_message) diff --git a/samtranslator/validator/value_validator.py b/samtranslator/validator/value_validator.py index c6bcd584d..67446639f 100644 --- a/samtranslator/validator/value_validator.py +++ b/samtranslator/validator/value_validator.py @@ -4,9 +4,9 @@ from samtranslator.model.exceptions import ( ExpectedType, InvalidEventException, + InvalidResourceAttributeTypeException, InvalidResourceException, InvalidResourcePropertyTypeException, - InvalidResourceAttributeTypeException, ) T = TypeVar("T") diff --git a/samtranslator/schema/__init__.py b/schema_source/__init__.py similarity index 100% rename from samtranslator/schema/__init__.py rename to schema_source/__init__.py diff --git a/samtranslator/schema/any_cfn_resource.py b/schema_source/any_cfn_resource.py similarity index 68% rename from samtranslator/schema/any_cfn_resource.py rename to schema_source/any_cfn_resource.py index 30aa55dc1..bf0d8c762 100644 --- a/samtranslator/schema/any_cfn_resource.py +++ b/schema_source/any_cfn_resource.py @@ -1,9 +1,10 @@ import pydantic -from samtranslator.schema.common import LenientBaseModel +from schema_source.common import LenientBaseModel constr = pydantic.constr + # Anything goes if has string Type but is not AWS::Serverless::* class Resource(LenientBaseModel): - Type: constr(regex=r"^(?!AWS::Serverless::).+$") # type: ignore + Type: constr(regex=r"^(?!AWS::Serverless::).+$") # type: ignore # noqa: forward-annotation-syntax-error diff --git a/samtranslator/schema/aws_serverless_api.py b/schema_source/aws_serverless_api.py similarity index 96% rename from samtranslator/schema/aws_serverless_api.py rename to schema_source/aws_serverless_api.py index f5f9ff135..f1de76515 100644 --- a/samtranslator/schema/aws_serverless_api.py +++ b/schema_source/aws_serverless_api.py @@ -1,17 +1,18 @@ from __future__ import annotations -from typing import Optional, Dict, Union, List +from typing import Dict, List, Optional, Union from typing_extensions import Literal -from samtranslator.schema.common import ( - PassThroughProp, +from schema_source.aws_serverless_connector import EmbeddedConnector +from schema_source.common import ( BaseModel, + DictStrAny, + PassThroughProp, + ResourceAttributes, SamIntrinsicable, get_prop, - DictStrAny, ) -from samtranslator.schema.aws_serverless_connector import EmbeddedConnector resourcepolicy = get_prop("sam-property-api-resourcepolicystatement") cognitoauthorizeridentity = get_prop("sam-property-api-cognitoauthorizationidentity") @@ -219,13 +220,7 @@ class Globals(BaseModel): Domain: Optional[Domain] = properties("Domain") -class Resource(BaseModel): +class Resource(ResourceAttributes): Type: Literal["AWS::Serverless::Api"] Properties: Properties - Condition: Optional[PassThroughProp] - DeletionPolicy: Optional[PassThroughProp] Connectors: Optional[Dict[str, EmbeddedConnector]] - UpdatePolicy: Optional[PassThroughProp] - UpdateReplacePolicy: Optional[PassThroughProp] - DependsOn: Optional[PassThroughProp] - Metadata: Optional[PassThroughProp] diff --git a/samtranslator/schema/aws_serverless_application.py b/schema_source/aws_serverless_application.py similarity index 79% rename from samtranslator/schema/aws_serverless_application.py rename to schema_source/aws_serverless_application.py index 2c9fb89b6..0249164d5 100644 --- a/samtranslator/schema/aws_serverless_application.py +++ b/schema_source/aws_serverless_application.py @@ -1,10 +1,10 @@ from __future__ import annotations -from typing import Optional, Any, Dict, Union +from typing import Any, Dict, Optional, Union from typing_extensions import Literal -from samtranslator.schema.common import PassThroughProp, BaseModel, SamIntrinsicable, get_prop +from schema_source.common import BaseModel, PassThroughProp, ResourceAttributes, SamIntrinsicable, get_prop location = get_prop("sam-property-application-applicationlocationobject") properties = get_prop("sam-resource-application") @@ -23,7 +23,6 @@ class Properties(BaseModel): TimeoutInMinutes: Optional[PassThroughProp] = properties("TimeoutInMinutes") -class Resource(BaseModel): +class Resource(ResourceAttributes): Type: Literal["AWS::Serverless::Application"] Properties: Properties - Condition: Optional[PassThroughProp] diff --git a/samtranslator/schema/aws_serverless_connector.py b/schema_source/aws_serverless_connector.py similarity index 71% rename from samtranslator/schema/aws_serverless_connector.py rename to schema_source/aws_serverless_connector.py index 7aa4df9b6..44043f64e 100644 --- a/samtranslator/schema/aws_serverless_connector.py +++ b/schema_source/aws_serverless_connector.py @@ -1,8 +1,8 @@ -from typing import Optional, List +from typing import List, Optional, Union from typing_extensions import Literal -from samtranslator.schema.common import PassThroughProp, BaseModel, get_prop +from schema_source.common import BaseModel, PassThroughProp, ResourceAttributes, get_prop resourcereference = get_prop("sam-property-connector-resourcereference") properties = get_prop("sam-resource-connector") @@ -23,11 +23,11 @@ class ResourceReference(BaseModel): class Properties(BaseModel): Source: ResourceReference = properties("Source") - Destination: ResourceReference = properties("Destination") - Permissions: PermissionsType = properties("Permissions") + Destination: Union[ResourceReference, List[ResourceReference]] = properties("Destination") + Permissions: List[Literal["Read", "Write"]] = properties("Permissions") -class Resource(BaseModel): +class Resource(ResourceAttributes): Type: Literal["AWS::Serverless::Connector"] Properties: Properties @@ -38,14 +38,10 @@ class SourceReference(BaseModel): class EmbeddedConnectorProperties(BaseModel): SourceReference: Optional[SourceReference] # TODO: add docs for SourceReference - Destination: ResourceReference = properties("Destination") + Destination: Union[ResourceReference, List[ResourceReference]] = properties("Destination") Permissions: PermissionsType = properties("Permissions") # TODO make connectors a part of all CFN Resources -class EmbeddedConnector(BaseModel): +class EmbeddedConnector(ResourceAttributes): Properties: EmbeddedConnectorProperties - DependsOn: Optional[PassThroughProp] - DeletionPolicy: Optional[PassThroughProp] - Metadata: Optional[PassThroughProp] - UpdatePolicy: Optional[PassThroughProp] diff --git a/samtranslator/schema/aws_serverless_function.py b/schema_source/aws_serverless_function.py similarity index 95% rename from samtranslator/schema/aws_serverless_function.py rename to schema_source/aws_serverless_function.py index 11fe95277..3cd1cb176 100644 --- a/samtranslator/schema/aws_serverless_function.py +++ b/schema_source/aws_serverless_function.py @@ -1,19 +1,19 @@ from __future__ import annotations -from typing import Optional, Dict, Union, List +from typing import Dict, List, Optional, Union from typing_extensions import Literal -from samtranslator.schema.common import ( - PassThroughProp, +from schema_source.aws_serverless_connector import EmbeddedConnector +from schema_source.common import ( BaseModel, - SamIntrinsicable, - get_prop, DictStrAny, + PassThroughProp, Ref, + ResourceAttributes, + SamIntrinsicable, + get_prop, ) -from samtranslator.schema.aws_serverless_connector import EmbeddedConnector - alexaskilleventproperties = get_prop("sam-property-function-alexaskill") apiauth = get_prop("sam-property-function-apifunctionauth") @@ -199,6 +199,26 @@ class DynamoDBEvent(BaseModel): Properties: DynamoDBEventProperties = event("Properties") +class DocumentDBEventProperties(BaseModel): + BatchSize: Optional[PassThroughProp] # TODO: add documentation + Cluster: PassThroughProp # TODO: add documentation + CollectionName: Optional[PassThroughProp] # TODO: add documentation + DatabaseName: PassThroughProp # TODO: add documentation + Enabled: Optional[PassThroughProp] # TODO: add documentation + FilterCriteria: Optional[PassThroughProp] # TODO: add documentation + FullDocument: Optional[PassThroughProp] # TODO: add documentation + MaximumBatchingWindowInSeconds: Optional[PassThroughProp] # TODO: add documentation + SecretsManagerKmsKeyId: Optional[str] # TODO: add documentation + SourceAccessConfigurations: PassThroughProp # TODO: add documentation + StartingPosition: Optional[PassThroughProp] # TODO: add documentation + StartingPositionTimestamp: Optional[PassThroughProp] # TODO: add documentation + + +class DocumentDBEvent(BaseModel): + Type: Literal["DocumentDB"] = event("Type") + Properties: DocumentDBEventProperties = event("Properties") + + class SQSEventProperties(BaseModel): BatchSize: Optional[PassThroughProp] = sqseventproperties("BatchSize") Enabled: Optional[PassThroughProp] = sqseventproperties("Enabled") @@ -448,6 +468,7 @@ class ScheduleV2Event(BaseModel): KmsKeyArn = Optional[PassThroughProp] Layers = Optional[PassThroughProp] AutoPublishAlias = Optional[SamIntrinsicable[str]] +AutoPublishAliasAllProperties = Optional[bool] RolePath = Optional[PassThroughProp] PermissionsBoundary = Optional[PassThroughProp] ReservedConcurrentExecutions = Optional[PassThroughProp] @@ -463,6 +484,7 @@ class Properties(BaseModel): Architectures: Optional[Architectures] = prop("Architectures") AssumeRolePolicyDocument: Optional[AssumeRolePolicyDocument] = prop("AssumeRolePolicyDocument") AutoPublishAlias: Optional[AutoPublishAlias] = prop("AutoPublishAlias") + AutoPublishAliasAllProperties: Optional[AutoPublishAliasAllProperties] # TODO: add docs AutoPublishCodeSha256: Optional[SamIntrinsicable[str]] = prop("AutoPublishCodeSha256") CodeSigningConfigArn: Optional[SamIntrinsicable[str]] = prop("CodeSigningConfigArn") CodeUri: Optional[CodeUriType] = prop("CodeUri") @@ -480,6 +502,7 @@ class Properties(BaseModel): SNSEvent, KinesisEvent, DynamoDBEvent, + DocumentDBEvent, SQSEvent, ApiEvent, ScheduleEvent, @@ -552,12 +575,7 @@ class Globals(BaseModel): RuntimeManagementConfig: Optional[RuntimeManagementConfig] # TODO: add prop -class Resource(BaseModel): +class Resource(ResourceAttributes): Type: Literal["AWS::Serverless::Function"] Properties: Optional[Properties] Connectors: Optional[Dict[str, EmbeddedConnector]] - DeletionPolicy: Optional[PassThroughProp] - UpdateReplacePolicy: Optional[PassThroughProp] - Condition: Optional[PassThroughProp] - DependsOn: Optional[PassThroughProp] - Metadata: Optional[PassThroughProp] diff --git a/samtranslator/schema/aws_serverless_httpapi.py b/schema_source/aws_serverless_httpapi.py similarity index 95% rename from samtranslator/schema/aws_serverless_httpapi.py rename to schema_source/aws_serverless_httpapi.py index c529eb974..3384abc5a 100644 --- a/samtranslator/schema/aws_serverless_httpapi.py +++ b/schema_source/aws_serverless_httpapi.py @@ -1,17 +1,18 @@ from __future__ import annotations -from typing import Optional, Dict, Union, List +from typing import Dict, List, Optional, Union from typing_extensions import Literal -from samtranslator.schema.common import ( - PassThroughProp, +from schema_source.aws_serverless_connector import EmbeddedConnector +from schema_source.common import ( BaseModel, + DictStrAny, + PassThroughProp, + ResourceAttributes, SamIntrinsicable, get_prop, - DictStrAny, ) -from samtranslator.schema.aws_serverless_connector import EmbeddedConnector oauth2authorizer = get_prop("sam-property-httpapi-oauth2authorizer") lambdauthorizeridentity = get_prop("sam-property-httpapi-lambdaauthorizationidentity") @@ -138,9 +139,7 @@ class Globals(BaseModel): DefaultRouteSettings: Optional[DefaultRouteSettings] = properties("DefaultRouteSettings") -class Resource(BaseModel): +class Resource(ResourceAttributes): Type: Literal["AWS::Serverless::HttpApi"] Properties: Optional[Properties] - Metadata: Optional[PassThroughProp] - Condition: Optional[PassThroughProp] Connectors: Optional[Dict[str, EmbeddedConnector]] diff --git a/samtranslator/schema/aws_serverless_layerversion.py b/schema_source/aws_serverless_layerversion.py similarity index 83% rename from samtranslator/schema/aws_serverless_layerversion.py rename to schema_source/aws_serverless_layerversion.py index 08009614a..cc94d1d87 100644 --- a/samtranslator/schema/aws_serverless_layerversion.py +++ b/schema_source/aws_serverless_layerversion.py @@ -4,7 +4,7 @@ from typing_extensions import Literal -from samtranslator.schema.common import PassThroughProp, BaseModel, SamIntrinsicable, get_prop +from schema_source.common import BaseModel, PassThroughProp, ResourceAttributes, SamIntrinsicable, get_prop contenturi = get_prop("sam-property-layerversion-layercontent") properties = get_prop("sam-resource-layerversion") @@ -26,8 +26,6 @@ class Properties(BaseModel): RetentionPolicy: Optional[SamIntrinsicable[str]] = properties("RetentionPolicy") -class Resource(BaseModel): +class Resource(ResourceAttributes): Type: Literal["AWS::Serverless::LayerVersion"] Properties: Properties - Condition: Optional[PassThroughProp] - DeletionPolicy: Optional[PassThroughProp] diff --git a/samtranslator/schema/aws_serverless_simpletable.py b/schema_source/aws_serverless_simpletable.py similarity index 81% rename from samtranslator/schema/aws_serverless_simpletable.py rename to schema_source/aws_serverless_simpletable.py index 9fa8afbb9..cfb585162 100644 --- a/samtranslator/schema/aws_serverless_simpletable.py +++ b/schema_source/aws_serverless_simpletable.py @@ -1,11 +1,11 @@ from __future__ import annotations -from typing import Optional, Any, Dict +from typing import Any, Dict, Optional from typing_extensions import Literal -from samtranslator.schema.common import PassThroughProp, BaseModel, get_prop -from samtranslator.schema.aws_serverless_connector import EmbeddedConnector +from schema_source.aws_serverless_connector import EmbeddedConnector +from schema_source.common import BaseModel, PassThroughProp, ResourceAttributes, get_prop primarykey = get_prop("sam-property-simpletable-primarykeyobject") properties = get_prop("sam-resource-simpletable") @@ -31,7 +31,7 @@ class Globals(BaseModel): SSESpecification: Optional[SSESpecification] = properties("SSESpecification") -class Resource(BaseModel): +class Resource(ResourceAttributes): Type: Literal["AWS::Serverless::SimpleTable"] Properties: Optional[Properties] Connectors: Optional[Dict[str, EmbeddedConnector]] diff --git a/samtranslator/schema/aws_serverless_statemachine.py b/schema_source/aws_serverless_statemachine.py similarity index 97% rename from samtranslator/schema/aws_serverless_statemachine.py rename to schema_source/aws_serverless_statemachine.py index 314da1c6e..6c5256755 100644 --- a/samtranslator/schema/aws_serverless_statemachine.py +++ b/schema_source/aws_serverless_statemachine.py @@ -1,17 +1,18 @@ from __future__ import annotations -from typing import Optional, Dict, Union, List +from typing import Dict, List, Optional, Union from typing_extensions import Literal -from samtranslator.schema.common import ( - PassThroughProp, +from schema_source.aws_serverless_connector import EmbeddedConnector +from schema_source.common import ( BaseModel, - SamIntrinsicable, DictStrAny, + PassThroughProp, + ResourceAttributes, + SamIntrinsicable, get_prop, ) -from samtranslator.schema.aws_serverless_connector import EmbeddedConnector properties = get_prop("sam-resource-statemachine") deadletterconfig = get_prop("sam-property-statemachine-statemachinedeadletterconfig") @@ -168,8 +169,7 @@ class Properties(BaseModel): Type: Optional[PassThroughProp] = properties("Type") -class Resource(BaseModel): +class Resource(ResourceAttributes): Type: Literal["AWS::Serverless::StateMachine"] Properties: Properties - Condition: Optional[PassThroughProp] Connectors: Optional[Dict[str, EmbeddedConnector]] diff --git a/schema_source/cloudformation-docs.json b/schema_source/cloudformation-docs.json new file mode 100644 index 000000000..96f3466de --- /dev/null +++ b/schema_source/cloudformation-docs.json @@ -0,0 +1,23191 @@ +{ + "properties": { + "AWS::ACMPCA::Certificate": { + "ApiPassthrough": "Specifies X\\.509 certificate information to be included in the issued certificate\\. An `APIPassthrough` or `APICSRPassthrough` template variant must be selected, or else this parameter is ignored\\. \n*Required*: No \n*Type*: [ApiPassthrough](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-apipassthrough.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CertificateAuthorityArn": "The Amazon Resource Name \\(ARN\\) for the private CA issues the certificate\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CertificateSigningRequest": "The certificate signing request \\(CSR\\) for the certificate\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SigningAlgorithm": "The name of the algorithm that will be used to sign the certificate to be issued\\. \nThis parameter should not be confused with the `SigningAlgorithm` parameter used to sign a CSR in the `CreateCertificateAuthority` action\\. \nThe specified signing algorithm family \\(RSA or ECDSA\\) must match the algorithm family of the CA's secret key\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `SHA256WITHECDSA | SHA256WITHRSA | SHA384WITHECDSA | SHA384WITHRSA | SHA512WITHECDSA | SHA512WITHRSA` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TemplateArn": "Specifies a custom configuration template to use when issuing a certificate\\. If this parameter is not provided, ACM Private CA defaults to the `EndEntityCertificate/V1` template\\. For more information about ACM Private CA templates, see [Using Templates](https://docs.aws.amazon.com/acm-pca/latest/userguide/UsingTemplates.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Validity": "The period of time during which the certificate will be valid\\. \n*Required*: Yes \n*Type*: [Validity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-validity.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ValidityNotBefore": "Information describing the start of the validity period of the certificate\\. This parameter sets the \u201cNot Before\" date for the certificate\\. \nBy default, when issuing a certificate, ACM Private CA sets the \"Not Before\" date to the issuance time minus 60 minutes\\. This compensates for clock inconsistencies across computer systems\\. The `ValidityNotBefore` parameter can be used to customize the \u201cNot Before\u201d value\\. \nUnlike the `Validity` parameter, the `ValidityNotBefore` parameter is optional\\. \nThe `ValidityNotBefore` value is expressed as an explicit date and time, using the `Validity` type value `ABSOLUTE`\\. \n*Required*: No \n*Type*: [Validity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-validity.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ACMPCA::Certificate ApiPassthrough": { + "Extensions": "Specifies X\\.509 extension information for a certificate\\. \n*Required*: No \n*Type*: [Extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-extensions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Subject": "Contains information about the certificate subject\\. The Subject field in the certificate identifies the entity that owns or controls the public key in the certificate\\. The entity can be a user, computer, device, or service\\. The Subject must contain an X\\.500 distinguished name \\(DN\\)\\. A DN is a sequence of relative distinguished names \\(RDNs\\)\\. The RDNs are separated by commas in the certificate\\. \n*Required*: No \n*Type*: [Subject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-subject.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ACMPCA::Certificate EdiPartyName": { + "NameAssigner": "Specifies the name assigner\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PartyName": "Specifies the party name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ACMPCA::Certificate ExtendedKeyUsage": { + "ExtendedKeyUsageObjectIdentifier": "Specifies a custom `ExtendedKeyUsage` with an object identifier \\(OID\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `^([0-2])\\.([0-9]|([0-3][0-9]))((\\.([0-9]+)){0,126})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ExtendedKeyUsageType": "Specifies a standard `ExtendedKeyUsage` as defined as in [RFC 5280](https://tools.ietf.org/html/rfc5280#section-4.2.1.12)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CERTIFICATE_TRANSPARENCY | CLIENT_AUTH | CODE_SIGNING | DOCUMENT_SIGNING | EMAIL_PROTECTION | OCSP_SIGNING | SERVER_AUTH | SMART_CARD_LOGIN | TIME_STAMPING` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ACMPCA::Certificate Extensions": { + "CertificatePolicies": "Contains a sequence of one or more policy information terms, each of which consists of an object identifier \\(OID\\) and optional qualifiers\\. For more information, see NIST's definition of [Object Identifier \\(OID\\)](https://csrc.nist.gov/glossary/term/Object_Identifier)\\. \nIn an end\\-entity certificate, these terms indicate the policy under which the certificate was issued and the purposes for which it may be used\\. In a CA certificate, these terms limit the set of policies for certification paths that include this certificate\\. \n*Required*: No \n*Type*: List of [PolicyInformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-policyinformation.html) \n*Maximum*: `20` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ExtendedKeyUsage": "Specifies additional purposes for which the certified public key may be used other than basic purposes indicated in the `KeyUsage` extension\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-extendedkeyusage.html) of [ExtendedKeyUsage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-extendedkeyusage.html) \n*Maximum*: `20` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KeyUsage": "Defines one or more purposes for which the key contained in the certificate can be used\\. Default value for each option is false\\. \n*Required*: No \n*Type*: [KeyUsage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-keyusage.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubjectAlternativeNames": "The subject alternative name extension allows identities to be bound to the subject of the certificate\\. These identities may be included in addition to or in place of the identity in the subject field of the certificate\\. \n*Required*: No \n*Type*: List of [GeneralName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-generalname.html) \n*Maximum*: `20` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ACMPCA::Certificate GeneralName": { + "DirectoryName": "Contains information about the certificate subject\\. The certificate can be one issued by your private certificate authority \\(CA\\) or it can be your private CA certificate\\. The Subject field in the certificate identifies the entity that owns or controls the public key in the certificate\\. The entity can be a user, computer, device, or service\\. The Subject must contain an X\\.500 distinguished name \\(DN\\)\\. A DN is a sequence of relative distinguished names \\(RDNs\\)\\. The RDNs are separated by commas in the certificate\\. The DN must be unique for each entity, but your private CA can issue more than one certificate with the same DN to the same entity\\. \n*Required*: No \n*Type*: [Subject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-subject.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DnsName": "Represents `GeneralName` as a DNS name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `253` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EdiPartyName": "Represents `GeneralName` as an `EdiPartyName` object\\. \n*Required*: No \n*Type*: [EdiPartyName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-edipartyname.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IpAddress": "Represents `GeneralName` as an IPv4 or IPv6 address\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `39` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OtherName": "Represents `GeneralName` using an `OtherName` object\\. \n*Required*: No \n*Type*: [OtherName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-othername.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RegisteredId": "Represents `GeneralName` as an object identifier \\(OID\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `^([0-2])\\.([0-9]|([0-3][0-9]))((\\.([0-9]+)){0,126})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Rfc822Name": "Represents `GeneralName` as an [RFC 822](https://tools.ietf.org/html/rfc822) email address\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UniformResourceIdentifier": "Represents `GeneralName` as a URI\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `253` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ACMPCA::Certificate KeyUsage": { + "CRLSign": "Key can be used to sign CRLs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DataEncipherment": "Key can be used to decipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DecipherOnly": "Key can be used only to decipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DigitalSignature": "Key can be used for digital signing\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EncipherOnly": "Key can be used only to encipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KeyAgreement": "Key can be used in a key\\-agreement protocol\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KeyCertSign": "Key can be used to sign certificates\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KeyEncipherment": "Key can be used to encipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NonRepudiation": "Key can be used for non\\-repudiation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ACMPCA::Certificate OtherName": { + "TypeId": "Specifies an OID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `^([0-2])\\.([0-9]|([0-3][0-9]))((\\.([0-9]+)){0,126})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Value": "Specifies an OID value\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ACMPCA::Certificate PolicyInformation": { + "CertPolicyId": "Specifies the object identifier \\(OID\\) of the certificate policy under which the certificate was issued\\. For more information, see NIST's definition of [Object Identifier \\(OID\\)](https://csrc.nist.gov/glossary/term/Object_Identifier)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `^([0-2])\\.([0-9]|([0-3][0-9]))((\\.([0-9]+)){0,126})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PolicyQualifiers": "Modifies the given `CertPolicyId` with a qualifier\\. ACM Private CA supports the certification practice statement \\(CPS\\) qualifier\\. \n*Required*: No \n*Type*: List of [PolicyQualifierInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-policyqualifierinfo.html) \n*Maximum*: `20` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ACMPCA::Certificate PolicyQualifierInfo": { + "PolicyQualifierId": "Identifies the qualifier modifying a `CertPolicyId`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CPS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Qualifier": "Defines the qualifier type\\. ACM Private CA supports the use of a URI for a CPS qualifier in this field\\. \n*Required*: Yes \n*Type*: [Qualifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-qualifier.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ACMPCA::Certificate Qualifier": { + "CpsUri": "Contains a pointer to a certification practice statement \\(CPS\\) published by the CA\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ACMPCA::Certificate Subject": { + "CommonName": "For CA and end\\-entity certificates in a private PKI, the common name \\(CN\\) can be any string within the length limit\\. \nNote: In publicly trusted certificates, the common name must be a fully qualified domain name \\(FQDN\\) associated with the certificate subject\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Country": "Two\\-digit code that specifies the country in which the certificate subject located\\. \n*Required*: No \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `2` \n*Pattern*: `[A-Za-z]{2}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DistinguishedNameQualifier": "Disambiguating information for the certificate subject\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `[a-zA-Z0-9'()+-.?:/= ]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GenerationQualifier": "Typically a qualifier appended to the name of an individual\\. Examples include Jr\\. for junior, Sr\\. for senior, and III for third\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `3` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GivenName": "First name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `16` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Initials": "Concatenation that typically contains the first letter of the **GivenName**, the first letter of the middle name if one exists, and the first letter of the **Surname**\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `5` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Locality": "The locality \\(such as a city or town\\) in which the certificate subject is located\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Organization": "Legal name of the organization with which the certificate subject is affiliated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OrganizationalUnit": "A subdivision or unit of the organization \\(such as sales or finance\\) with which the certificate subject is affiliated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Pseudonym": "Typically a shortened version of a longer **GivenName**\\. For example, Jonathan is often shortened to John\\. Elizabeth is often shortened to Beth, Liz, or Eliza\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SerialNumber": "The certificate serial number\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `[a-zA-Z0-9'()+-.?:/= ]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "State": "State in which the subject of the certificate is located\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Surname": "Family name\\. In the US and the UK, for example, the surname of an individual is ordered last\\. In Asian cultures the surname is typically ordered first\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `40` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Title": "A title such as Mr\\. or Ms\\., which is pre\\-pended to the name to refer formally to the certificate subject\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ACMPCA::Certificate Validity": { + "Type": "Specifies whether the `Value` parameter represents days, months, or years\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ABSOLUTE | DAYS | END_DATE | MONTHS | YEARS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Value": "A long integer interpreted according to the value of `Type`, below\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ACMPCA::CertificateAuthority": { + "CsrExtensions": "Specifies information to be added to the extension section of the certificate signing request \\(CSR\\)\\. \n*Required*: No \n*Type*: [CsrExtensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-csrextensions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KeyAlgorithm": "Type of the public key algorithm and size, in bits, of the key pair that your CA creates when it issues a certificate\\. When you create a subordinate CA, you must use a key algorithm supported by the parent CA\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EC_prime256v1 | EC_secp384r1 | RSA_2048 | RSA_4096` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KeyStorageSecurityStandard": "Specifies a cryptographic key management compliance standard used for handling CA keys\\. \nDefault: FIPS\\_140\\_2\\_LEVEL\\_3\\_OR\\_HIGHER \nNote: `FIPS_140_2_LEVEL_3_OR_HIGHER` is not supported in Region ap\\-northeast\\-3\\. When creating a CA in the ap\\-northeast\\-3, you must provide `FIPS_140_2_LEVEL_2_OR_HIGHER` as the argument for `KeyStorageSecurityStandard`\\. Failure to do this results in an `InvalidArgsException` with the message, \"A certificate authority cannot be created in this region with the specified security standard\\.\" \n*Required*: No \n*Type*: String \n*Allowed values*: `FIPS_140_2_LEVEL_2_OR_HIGHER | FIPS_140_2_LEVEL_3_OR_HIGHER` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RevocationConfiguration": "Information about the certificate revocation list \\(CRL\\) created and maintained by your private CA\\. Certificate revocation information used by the CreateCertificateAuthority and UpdateCertificateAuthority actions\\. Your certificate authority can create and maintain a certificate revocation list \\(CRL\\)\\. A CRL contains information about certificates that have been revoked\\. \n*Required*: No \n*Type*: [RevocationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-revocationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SigningAlgorithm": "Name of the algorithm your private CA uses to sign certificate requests\\. \nThis parameter should not be confused with the `SigningAlgorithm` parameter used to sign certificates when they are issued\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SHA256WITHECDSA | SHA256WITHRSA | SHA384WITHECDSA | SHA384WITHRSA | SHA512WITHECDSA | SHA512WITHRSA` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Subject": "Structure that contains X\\.500 distinguished name information for your private CA\\. \n*Required*: Yes \n*Type*: [Subject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-subject.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Key\\-value pairs that will be attached to the new private CA\\. You can associate up to 50 tags with a private CA\\. For information using tags with IAM to manage permissions, see [Controlling Access Using IAM Tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "Type of your private CA\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ROOT | SUBORDINATE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ACMPCA::CertificateAuthority AccessDescription": { + "AccessLocation": "The location of `AccessDescription` information\\. \n*Required*: Yes \n*Type*: [GeneralName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-generalname.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AccessMethod": "The type and format of `AccessDescription` information\\. \n*Required*: Yes \n*Type*: [AccessMethod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-accessmethod.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ACMPCA::CertificateAuthority AccessMethod": { + "AccessMethodType": "Specifies the `AccessMethod`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CA_REPOSITORY | RESOURCE_PKI_MANIFEST | RESOURCE_PKI_NOTIFY` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CustomObjectIdentifier": "An object identifier \\(OID\\) specifying the `AccessMethod`\\. The OID must satisfy the regular expression shown below\\. For more information, see NIST's definition of [Object Identifier \\(OID\\)](https://csrc.nist.gov/glossary/term/Object_Identifier)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `^([0-2])\\.([0-9]|([0-3][0-9]))((\\.([0-9]+)){0,126})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ACMPCA::CertificateAuthority CrlConfiguration": { + "CustomCname": "Name inserted into the certificate **CRL Distribution Points** extension that enables the use of an alias for the CRL distribution point\\. Use this value if you don't want the name of your S3 bucket to be public\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `253` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Boolean value that specifies whether certificate revocation lists \\(CRLs\\) are enabled\\. You can use this value to enable certificate revocation for a new CA when you call the `CreateCertificateAuthority` operation or for an existing CA when you call the `UpdateCertificateAuthority` operation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExpirationInDays": "Validity period of the CRL in days\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `5000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3BucketName": "Name of the S3 bucket that contains the CRL\\. If you do not provide a value for the **CustomCname** argument, the name of your S3 bucket is placed into the **CRL Distribution Points** extension of the issued certificate\\. You can change the name of your bucket by calling the [UpdateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html) operation\\. You must specify a [bucket policy](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#s3-policies) that allows ACM Private CA to write the CRL to your bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3ObjectAcl": "Determines whether the CRL will be publicly readable or privately held in the CRL Amazon S3 bucket\\. If you choose PUBLIC\\_READ, the CRL will be accessible over the public internet\\. If you choose BUCKET\\_OWNER\\_FULL\\_CONTROL, only the owner of the CRL S3 bucket can access the CRL, and your PKI clients may need an alternative method of access\\. \nIf no value is specified, the default is PUBLIC\\_READ\\. \nThis default can cause CA creation to fail in some circumstances\\. If you have enabled the Block Public Access \\(BPA\\) feature in your S3 account, then you must specify the value of this parameter as `BUCKET_OWNER_FULL_CONTROL`, and not doing so results in an error\\. If you have disabled BPA in S3, then you can specify either `BUCKET_OWNER_FULL_CONTROL` or `PUBLIC_READ` as the value\\.\nFor more information, see [Blocking public access to the S3 bucket](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#s3-bpa)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ACMPCA::CertificateAuthority CsrExtensions": { + "KeyUsage": "Indicates the purpose of the certificate and of the key contained in the certificate\\. \n*Required*: No \n*Type*: [KeyUsage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-keyusage.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubjectInformationAccess": "For CA certificates, provides a path to additional information pertaining to the CA, such as revocation and policy\\. For more information, see [Subject Information Access](https://tools.ietf.org/html/rfc5280#section-4.2.2.2) in RFC 5280\\. \n*Required*: No \n*Type*: List of [AccessDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-accessdescription.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ACMPCA::CertificateAuthority EdiPartyName": { + "NameAssigner": "Specifies the name assigner\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PartyName": "Specifies the party name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ACMPCA::CertificateAuthority GeneralName": { + "DirectoryName": "Contains information about the certificate subject\\. The certificate can be one issued by your private certificate authority \\(CA\\) or it can be your private CA certificate\\. The Subject field in the certificate identifies the entity that owns or controls the public key in the certificate\\. The entity can be a user, computer, device, or service\\. The Subject must contain an X\\.500 distinguished name \\(DN\\)\\. A DN is a sequence of relative distinguished names \\(RDNs\\)\\. The RDNs are separated by commas in the certificate\\. The DN must be unique for each entity, but your private CA can issue more than one certificate with the same DN to the same entity\\. \n*Required*: No \n*Type*: [Subject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-subject.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DnsName": "Represents `GeneralName` as a DNS name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `253` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EdiPartyName": "Represents `GeneralName` as an `EdiPartyName` object\\. \n*Required*: No \n*Type*: [EdiPartyName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-edipartyname.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IpAddress": "Represents `GeneralName` as an IPv4 or IPv6 address\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `39` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OtherName": "Represents `GeneralName` using an `OtherName` object\\. \n*Required*: No \n*Type*: [OtherName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-othername.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RegisteredId": "Represents `GeneralName` as an object identifier \\(OID\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `^([0-2])\\.([0-9]|([0-3][0-9]))((\\.([0-9]+)){0,126})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Rfc822Name": "Represents `GeneralName` as an [RFC 822](https://tools.ietf.org/html/rfc822) email address\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UniformResourceIdentifier": "Represents `GeneralName` as a URI\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `253` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ACMPCA::CertificateAuthority KeyUsage": { + "CRLSign": "Key can be used to sign CRLs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DataEncipherment": "Key can be used to decipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DecipherOnly": "Key can be used only to decipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DigitalSignature": "Key can be used for digital signing\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EncipherOnly": "Key can be used only to encipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KeyAgreement": "Key can be used in a key\\-agreement protocol\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KeyCertSign": "Key can be used to sign certificates\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KeyEncipherment": "Key can be used to encipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NonRepudiation": "Key can be used for non\\-repudiation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ACMPCA::CertificateAuthority OcspConfiguration": { + "Enabled": "Flag enabling use of the Online Certificate Status Protocol \\(OCSP\\) for validating certificate revocation status\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OcspCustomCname": "By default, ACM Private CA injects an Amazon domain into certificates being validated by the Online Certificate Status Protocol \\(OCSP\\)\\. A customer can alternatively use this object to define a CNAME specifying a customized OCSP domain\\. \nNote: The value of the CNAME must not include a protocol prefix such as \"http://\" or \"https://\"\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `253` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ACMPCA::CertificateAuthority OtherName": { + "TypeId": "Specifies an OID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `^([0-2])\\.([0-9]|([0-3][0-9]))((\\.([0-9]+)){0,126})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Value": "Specifies an OID value\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ACMPCA::CertificateAuthority RevocationConfiguration": { + "CrlConfiguration": "Configuration of the certificate revocation list \\(CRL\\), if any, maintained by your private CA\\. \n*Required*: No \n*Type*: [CrlConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-crlconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OcspConfiguration": "Configuration of Online Certificate Status Protocol \\(OCSP\\) support, if any, maintained by your private CA\\. \n*Required*: No \n*Type*: [OcspConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-ocspconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ACMPCA::CertificateAuthority Subject": { + "CommonName": "Fully qualified domain name \\(FQDN\\) associated with the certificate subject\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Country": "Two\\-digit code that specifies the country in which the certificate subject located\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DistinguishedNameQualifier": "Disambiguating information for the certificate subject\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GenerationQualifier": "Typically a qualifier appended to the name of an individual\\. Examples include Jr\\. for junior, Sr\\. for senior, and III for third\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GivenName": "First name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Initials": "Concatenation that typically contains the first letter of the GivenName, the first letter of the middle name if one exists, and the first letter of the SurName\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Locality": "The locality \\(such as a city or town\\) in which the certificate subject is located\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Organization": "Legal name of the organization with which the certificate subject is affiliated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OrganizationalUnit": "A subdivision or unit of the organization \\(such as sales or finance\\) with which the certificate subject is affiliated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Pseudonym": "Typically a shortened version of a longer GivenName\\. For example, Jonathan is often shortened to John\\. Elizabeth is often shortened to Beth, Liz, or Eliza\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SerialNumber": "The certificate serial number\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "State": "State in which the subject of the certificate is located\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Surname": "Family name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Title": "A personal title such as Mr\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ACMPCA::CertificateAuthorityActivation": { + "Certificate": "The Base64 PEM\\-encoded certificate authority certificate\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CertificateAuthorityArn": "The Amazon Resource Name \\(ARN\\) of your private CA\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CertificateChain": "The Base64 PEM\\-encoded certificate chain that chains up to the root CA certificate that you used to sign your private CA certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Status": "Status of your private CA\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ACMPCA::Permission": { + "Actions": "The private CA actions that can be performed by the designated AWS service\\. Supported actions are `IssueCertificate`, `GetCertificate`, and `ListPermissions`\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CertificateAuthorityArn": "The Amazon Resource Number \\(ARN\\) of the private CA from which the permission was issued\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `5` \n*Maximum*: `200` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:[\\w+=/,.@-]*:[0-9]*:[\\w+=,.@-]+(/[\\w+=,.@-]+)*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Principal": "The AWS service or entity that holds the permission\\. At this time, the only valid principal is `acm.amazonaws.com`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^[^*]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceAccount": "The ID of the account that assigned the permission\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `[0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::APS::RuleGroupsNamespace": { + "Data": "The rules definition file for this namespace\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the rule groups namespace\\. This property is required\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A list of key and value pairs for the workspace resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Workspace": "The ARN of the workspace that contains this rule groups namespace\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::APS::Workspace": { + "AlertManagerDefinition": "The alert manager definition for the workspace, as a string\\. For more information, see [ Alert manager and templating](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-alert-manager.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Alias": "An alias that you assign to this workspace to help you identify it\\. It does not need to be unique\\. \n The alias can be as many as 100 characters and can include any type of characters\\. Amazon Managed Service for Prometheus automatically strips any blank spaces from the beginning and end of the alias that you specify\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A list of tag keys and values to associate with the workspace\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AccessAnalyzer::Analyzer": { + "AnalyzerName": "The name of the analyzer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ArchiveRules": "Specifies the archive rules to add for the analyzer\\. \n*Required*: No \n*Type*: List of [ArchiveRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-archiverule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to apply to the analyzer\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type represents the zone of trust for the analyzer\\. \n*Allowed Values*: ACCOUNT \\| ORGANIZATION \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AccessAnalyzer::Analyzer ArchiveRule": { + "Filter": "The criteria for the rule\\. \n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-filter.html) of [Filter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-filter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleName": "The name of the archive rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AccessAnalyzer::Analyzer Filter": { + "Contains": "A \"contains\" condition to match for the rule\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Eq": "An \"equals\" condition to match for the rule\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Exists": "An \"exists\" condition to match for the rule\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Neq": "A \"not equal\" condition to match for the rule\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Property": "The property used to define the criteria in the filter for the rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmazonMQ::Broker": { + "AuthenticationStrategy": "Optional\\. The authentication strategy used to secure the broker\\. The default is `SIMPLE`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AutoMinorVersionUpgrade": "Enables automatic upgrades to new minor versions for brokers, as new broker engine versions are released and supported by Amazon MQ\\. Automatic upgrades occur during the scheduled maintenance window of the broker or after a manual broker reboot\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BrokerName": "The name of the broker\\. This value must be unique in your AWS account, 1\\-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain white spaces, brackets, wildcard characters, or special characters\\. \n Do not add personally identifiable information \\(PII\\) or other confidential or sensitive information in broker names\\. Broker names are accessible to other AWS services, including CCloudWatch Logs\\. Broker names are not intended to be used for private or sensitive data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Configuration": "A list of information about the configuration\\. Does not apply to RabbitMQ brokers\\. \n*Required*: No \n*Type*: [ConfigurationId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-configurationid.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "DeploymentMode": "The deployment mode of the broker\\. Available values: \n+ `SINGLE_INSTANCE`\n+ `ACTIVE_STANDBY_MULTI_AZ`\n+ `CLUSTER_MULTI_AZ`\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EncryptionOptions": "Encryption options for the broker\\. Does not apply to RabbitMQ brokers\\. \n*Required*: No \n*Type*: [EncryptionOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-encryptionoptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EngineType": "The type of broker engine\\. Currently, Amazon MQ supports `ACTIVEMQ` and `RABBITMQ`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EngineVersion": "The version of the broker engine\\. For a list of supported engine versions, see [Engine](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/broker-engine.html) in the *Amazon MQ Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HostInstanceType": "The broker's instance type\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "LdapServerMetadata": "Optional\\. The metadata of the LDAP server used to authenticate and authorize connections to the broker\\. Does not apply to RabbitMQ brokers\\. \n*Required*: No \n*Type*: [LdapServerMetadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Logs": "Enables Amazon CloudWatch logging for brokers\\. \n*Required*: No \n*Type*: [LogList](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-loglist.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaintenanceWindowStartTime": "The scheduled time period relative to UTC during which Amazon MQ begins to apply pending updates or patches to the broker\\. \n*Required*: No \n*Type*: [MaintenanceWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-maintenancewindow.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PubliclyAccessible": "Enables connections from applications outside of the VPC that hosts the broker's subnets\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecurityGroups": "The list of rules \\(1 minimum, 125 maximum\\) that authorize connections to brokers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StorageType": "The broker's storage type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetIds": "The list of groups that define which subnets and IP ranges the broker can use from different Availability Zones\\. If you specify more than one subnet, the subnets must be in different Availability Zones\\. Amazon MQ will not be able to create VPC endpoints for your broker with multiple subnets in the same Availability Zone\\. A SINGLE\\_INSTANCE deployment requires one subnet \\(for example, the default subnet\\)\\. An ACTIVE\\_STANDBY\\_MULTI\\_AZ deployment \\(ACTIVEMQ\\) requires two subnets\\. A CLUSTER\\_MULTI\\_AZ deployment \\(RABBITMQ\\) has no subnet requirements when deployed with public accessibility, deployment without public accessibility requires at least one subnet\\. \n If you specify subnets in a shared VPC for a RabbitMQ broker, the associated VPC to which the specified subnets belong must be owned by your AWS account\\. Amazon MQ will not be able to create VPC enpoints in VPCs that are not owned by your AWS account\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs\\. For more information, see [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) in the *Billing and Cost Management User Guide*\\. \n*Required*: No \n*Type*: List of [TagsEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-tagsentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Users": "The list of broker users \\(persons or applications\\) who can access queues and topics\\. For Amazon MQ for RabbitMQ brokers, one and only one administrative user is accepted and created when a broker is first provisioned\\. All subsequent RabbitMQ users are created by via the RabbitMQ web console or by using the RabbitMQ management API\\. \n*Required*: Yes \n*Type*: List of [User](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-user.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmazonMQ::Broker ConfigurationId": { + "Id": "The unique ID that Amazon MQ generates for the configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Revision": "The revision number of the configuration\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmazonMQ::Broker EncryptionOptions": { + "KmsKeyId": "The customer master key \\(CMK\\) to use for the A AWS KMS \\(KMS\\)\\. This key is used to encrypt your data at rest\\. If not provided, Amazon MQ will use a default CMK to encrypt your data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UseAwsOwnedKey": "Enables the use of an AWS owned CMK using AWS KMS \\(KMS\\)\\. Set to `true` by default, if no value is provided, for example, for RabbitMQ brokers\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmazonMQ::Broker LdapServerMetadata": { + "Hosts": "Specifies the location of the LDAP server such as AWS Directory Service for Microsoft Active Directory\\. Optional failover server\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleBase": "The distinguished name of the node in the directory information tree \\(DIT\\) to search for roles or groups\\. For example, `ou=group`, `ou=corp`, `dc=corp`, `dc=example`, `dc=com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleName": "The group name attribute in a role entry whose value is the name of that role\\. For example, you can specify `cn` for a group entry's common name\\. If authentication succeeds, then the user is assigned the the value of the `cn` attribute for each role entry that they are a member of\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleSearchMatching": "The LDAP search filter used to find roles within the roleBase\\. The distinguished name of the user matched by userSearchMatching is substituted into the `{0}` placeholder in the search filter\\. The client's username is substituted into the `{1}` placeholder\\. For example, if you set this option to `(member=uid={1})` for the user janedoe, the search filter becomes `(member=uid=janedoe)` after string substitution\\. It matches all role entries that have a member attribute equal to `uid=janedoe` under the subtree selected by the `RoleBases`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleSearchSubtree": "The directory search scope for the role\\. If set to true, scope is to search the entire subtree\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceAccountPassword": "Service account password\\. A service account is an account in your LDAP server that has access to initiate a connection\\. For example, `cn=admin`,`dc=corp`, `dc=example`, `dc=com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceAccountUsername": "Service account username\\. A service account is an account in your LDAP server that has access to initiate a connection\\. For example, `cn=admin`, `ou=corp`, `dc=corp`, `dc=example`, `dc=com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserBase": "Select a particular subtree of the directory information tree \\(DIT\\) to search for user entries\\. The subtree is specified by a DN, which specifies the base node of the subtree\\. For example, by setting this option to `ou=Users`,`ou=corp`, `dc=corp`, `dc=example`, `dc=com`, the search for user entries is restricted to the subtree beneath `ou=Users`,`ou=corp`, `dc=corp`, `dc=example`, `dc=com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserRoleName": "The name of the LDAP attribute in the user's directory entry for the user's group membership\\. In some cases, user roles may be identified by the value of an attribute in the user's directory entry\\. The `UserRoleName` option allows you to provide the name of this attribute\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserSearchMatching": "The LDAP search filter used to find users within the `userBase`\\. The client's username is substituted into the `{0}` placeholder in the search filter\\. For example, if this option is set to `(uid={0})` and the received username is `janedoe`, the search filter becomes `(uid=janedoe)` after string substitution\\. It will result in matching an entry like `uid=janedoe`, `ou=Users`, `ou=corp`, `dc=corp`, `dc=example`, `dc=com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserSearchSubtree": "The directory search scope for the user\\. If set to true, scope is to search the entire subtree\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmazonMQ::Broker LogList": { + "Audit": "Enables audit logging\\. Every user management action made using JMX or the ActiveMQ Web Console is logged\\. Does not apply to RabbitMQ brokers\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "General": "Enables general logging\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmazonMQ::Broker MaintenanceWindow": { + "DayOfWeek": "The day of the week\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeOfDay": "The time, in 24\\-hour format\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeZone": "The time zone, UTC by default, in either the Country/City format, or the UTC offset format\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmazonMQ::Broker TagsEntry": { + "Key": "The key in a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value in a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmazonMQ::Broker User": { + "ConsoleAccess": "Enables access to the ActiveMQ web console for the ActiveMQ user\\. Does not apply to RabbitMQ brokers\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Groups": "The list of groups \\(20 maximum\\) to which the ActiveMQ user belongs\\. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes \\(\\- \\. \\_ \\~\\)\\. This value must be 2\\-100 characters long\\. Does not apply to RabbitMQ brokers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Password": "The password of the user\\. This value must be at least 12 characters long, must contain at least 4 unique characters, and must not contain commas, colons, or equal signs \\(,:=\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Username": "The username of the broker user\\. For Amazon MQ for ActiveMQ brokers, this value can contain only alphanumeric characters, dashes, periods, underscores, and tildes \\(\\- \\. \\_ \\~\\)\\. For Amazon MQ for RabbitMQ brokers, this value can contain only alphanumeric characters, dashes, periods, underscores \\(\\- \\. \\_\\)\\. This value must not contain a tilde \\(\\~\\) character\\. Amazon MQ prohibts using guest as a valid usename\\. This value must be 2\\-100 characters long\\. \n Do not add personally identifiable information \\(PII\\) or other confidential or sensitive information in broker usernames\\. Broker usernames are accessible to other AWS services, including CloudWatch Logs\\. Broker usernames are not intended to be used for private or sensitive data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmazonMQ::Configuration": { + "AuthenticationStrategy": "Optional\\. The authentication strategy associated with the configuration\\. The default is `SIMPLE`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Data": "The base64\\-encoded XML configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EngineType": "The type of broker engine\\. Note: Currently, Amazon MQ only supports ACTIVEMQ for creating and editing broker configurations\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EngineVersion": "The version of the broker engine\\. For a list of supported engine versions, see [https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/broker-engine.html](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/broker-engine.html) \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the configuration\\. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes \\(\\- \\. \\_ \\~\\)\\. This value must be 1\\-150 characters long\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Create tags when creating the configuration\\. \n*Required*: No \n*Type*: List of [TagsEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-configuration-tagsentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmazonMQ::Configuration TagsEntry": { + "Key": "The key in a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value in a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmazonMQ::ConfigurationAssociation": { + "Broker": "The broker to associate with a configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Configuration": "The configuration to associate with a broker\\. \n*Required*: Yes \n*Type*: [ConfigurationId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-configurationassociation-configurationid.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmazonMQ::ConfigurationAssociation ConfigurationId": { + "Id": "The unique ID that Amazon MQ generates for the configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Revision": "The revision number of the configuration\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Amplify::App": { + "AccessToken": "Personal Access token for 3rd party source control system for an Amplify app, used to create webhook and read\\-only deploy key\\. Token is not stored\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutoBranchCreationConfig": "Sets the configuration for your automatic branch creation\\. \n*Required*: No \n*Type*: [AutoBranchCreationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BasicAuthConfig": "The credentials for basic authorization for an Amplify app\\. You must base64\\-encode the authorization credentials and provide them in the format `user:password`\\. \n*Required*: No \n*Type*: [BasicAuthConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-basicauthconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BuildSpec": "The build specification \\(build spec\\) for an Amplify app\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 25000\\. \n*Pattern:* \\(?s\\)\\.\\+ \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomHeaders": "The custom HTTP headers for an Amplify app\\. \n*Length Constraints:* Minimum length of 0\\. Maximum length of 25000\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomRules": "The custom rewrite and redirect rules for an Amplify app\\. \n*Required*: No \n*Type*: List of [CustomRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-customrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description for an Amplify app\\. \n*Length Constraints:* Maximum length of 1000\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableBranchAutoDeletion": "Automatically disconnect a branch in the Amplify Console when you delete a branch from your Git repository\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnvironmentVariables": "The environment variables map for an Amplify app\\. \n*Required*: No \n*Type*: List of [EnvironmentVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-environmentvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IAMServiceRole": "The AWS Identity and Access Management \\(IAM\\) service role for the Amazon Resource Name \\(ARN\\) of the Amplify app\\. \n*Length Constraints:* Minimum length of 0\\. Maximum length of 1000\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name for an Amplify app\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Pattern:* \\(?s\\)\\.\\+ \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OauthToken": "The OAuth token for a third\\-party source control system for an Amplify app\\. The OAuth token is used to create a webhook and a read\\-only deploy key\\. The OAuth token is not stored\\. \n*Length Constraints:* Maximum length of 1000\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Repository": "The repository for an Amplify app\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tag for an Amplify app\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Amplify::App AutoBranchCreationConfig": { + "AutoBranchCreationPatterns": "Automated branch creation glob patterns for the Amplify app\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BasicAuthConfig": "Sets password protection for your auto created branch\\. \n*Required*: No \n*Type*: [BasicAuthConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-basicauthconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BuildSpec": "The build specification \\(build spec\\) for the autocreated branch\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 25000\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableAutoBranchCreation": "Enables automated branch creation for the Amplify app\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableAutoBuild": "Enables auto building for the auto created branch\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnablePerformanceMode": "Enables performance mode for the branch\\. \nPerformance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval\\. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnablePullRequestPreview": "Sets whether pull request previews are enabled for each branch that Amplify Console automatically creates for your app\\. Amplify Console creates previews by deploying your app to a unique URL whenever a pull request is opened for the branch\\. Development and QA teams can use this preview to test the pull request before it's merged into a production or integration branch\\. \nTo provide backend support for your preview, the Amplify Console automatically provisions a temporary backend environment that it deletes when the pull request is closed\\. If you want to specify a dedicated backend environment for your previews, use the `PullRequestEnvironmentName` property\\. \nFor more information, see [Web Previews](https://docs.aws.amazon.com/amplify/latest/userguide/pr-previews.html) in the *AWS Amplify Console User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnvironmentVariables": "Environment variables for the auto created branch\\. \n*Required*: No \n*Type*: List of [EnvironmentVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-environmentvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PullRequestEnvironmentName": "If pull request previews are enabled, you can use this property to specify a dedicated backend environment for your previews\\. For example, you could specify an environment named `prod`, `test`, or `dev` that you initialized with the Amplify CLI\\. \nTo enable pull request previews, set the `EnablePullRequestPreview` property to `true`\\. \nIf you don't specify an environment, the Amplify Console provides backend support for each preview by automatically provisioning a temporary backend environment\\. Amplify Console deletes this environment when the pull request is closed\\. \nFor more information about creating backend environments, see [Feature Branch Deployments and Team Workflows](https://docs.aws.amazon.com/amplify/latest/userguide/multi-environments.html) in the *AWS Amplify Console User Guide*\\. \n*Length Constraints:* Maximum length of 20\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Stage": "Stage for the auto created branch\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Amplify::App BasicAuthConfig": { + "EnableBasicAuth": "Enables basic authorization for the Amplify app's branches\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Password": "The password for basic authorization\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Username": "The user name for basic authorization\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Amplify::App CustomRule": { + "Condition": "The condition for a URL rewrite or redirect rule, such as a country code\\. \n*Length Constraints:* Minimum length of 0\\. Maximum length of 2048\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Source": "The source pattern for a URL rewrite or redirect rule\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 2048\\. \n*Pattern:* \\(?s\\)\\.\\+ \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Status": "The status code for a URL rewrite or redirect rule\\. \n200 \nRepresents a 200 rewrite rule\\. \n301 \nRepresents a 301 \\(moved pemanently\\) redirect rule\\. This and all future requests should be directed to the target URL\\. \n302 \nRepresents a 302 temporary redirect rule\\. \n404 \nRepresents a 404 redirect rule\\. \n404\\-200 \nRepresents a 404 rewrite rule\\.\n*Length Constraints:* Minimum length of 3\\. Maximum length of 7\\. \n*Pattern:* \\.\\{3,7\\} \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Target": "The target pattern for a URL rewrite or redirect rule\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 2048\\. \n*Pattern:* \\(?s\\)\\.\\+ \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Amplify::App EnvironmentVariable": { + "Name": "The environment variable name\\. \n*Length Constraints:* Maximum length of 255\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The environment variable value\\. \n*Length Constraints:* Maximum length of 5500\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Amplify::Branch": { + "AppId": "The unique ID for an Amplify app\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 20\\. \n*Pattern:* d\\[a\\-z0\\-9\\]\\+ \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BasicAuthConfig": "The basic authorization credentials for a branch of an Amplify app\\. You must base64\\-encode the authorization credentials and provide them in the format `user:password`\\. \n*Required*: No \n*Type*: [BasicAuthConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-branch-basicauthconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BranchName": "The name for the branch\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Pattern:* \\(?s\\)\\.\\+ \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BuildSpec": "The build specification \\(build spec\\) for the branch\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 25000\\. \n*Pattern:* \\(?s\\)\\.\\+ \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description for the branch that is part of an Amplify app\\. \n*Length Constraints:* Maximum length of 1000\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableAutoBuild": "Enables auto building for the branch\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnablePerformanceMode": "Enables performance mode for the branch\\. \nPerformance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval\\. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnablePullRequestPreview": "Sets whether the Amplify Console creates a preview for each pull request that is made for this branch\\. If this property is enabled, the Amplify Console deploys your app to a unique preview URL after each pull request is opened\\. Development and QA teams can use this preview to test the pull request before it's merged into a production or integration branch\\. \nTo provide backend support for your preview, the Amplify Console automatically provisions a temporary backend environment that it deletes when the pull request is closed\\. If you want to specify a dedicated backend environment for your previews, use the `PullRequestEnvironmentName` property\\. \nFor more information, see [Web Previews](https://docs.aws.amazon.com/amplify/latest/userguide/pr-previews.html) in the *AWS Amplify Console User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnvironmentVariables": "The environment variables for the branch\\. \n*Required*: No \n*Type*: List of [EnvironmentVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-branch-environmentvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PullRequestEnvironmentName": "If pull request previews are enabled for this branch, you can use this property to specify a dedicated backend environment for your previews\\. For example, you could specify an environment named `prod`, `test`, or `dev` that you initialized with the Amplify CLI and mapped to this branch\\. \nTo enable pull request previews, set the `EnablePullRequestPreview` property to `true`\\. \nIf you don't specify an environment, the Amplify Console provides backend support for each preview by automatically provisioning a temporary backend environment\\. Amplify Console deletes this environment when the pull request is closed\\. \nFor more information about creating backend environments, see [Feature Branch Deployments and Team Workflows](https://docs.aws.amazon.com/amplify/latest/userguide/multi-environments.html) in the *AWS Amplify Console User Guide*\\. \n*Length Constraints:* Maximum length of 20\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Stage": "Describes the current stage for the branch\\. \n*Valid Values:* PRODUCTION \\| BETA \\| DEVELOPMENT \\| EXPERIMENTAL \\| PULL\\_REQUEST \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tag for the branch\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Amplify::Branch BasicAuthConfig": { + "EnableBasicAuth": "Enables basic authorization for the branch\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Password": "The password for basic authorization\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Username": "The user name for basic authorization\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Amplify::Branch EnvironmentVariable": { + "Name": "The environment variable name\\. \n*Length Constraints:* Maximum length of 255\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The environment variable value\\. \n*Length Constraints:* Maximum length of 5500\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Amplify::Domain": { + "AppId": "The unique ID for an Amplify app\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 20\\. \n*Pattern:* d\\[a\\-z0\\-9\\]\\+ \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AutoSubDomainCreationPatterns": "Sets the branch patterns for automatic subdomain creation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutoSubDomainIAMRole": "The required AWS Identity and Access Management \\(IAM\\) service role for the Amazon Resource Name \\(ARN\\) for automatically creating subdomains\\. \n*Length Constraints:* Maximum length of 1000\\. \n*Pattern:* ^$\\|^arn:aws:iam::\\\\d\\{12\\}:role\\.\\+ \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainName": "The domain name for the domain association\\. \n*Length Constraints:* Maximum length of 255\\. \n*Pattern:* ^\\(\\(\\(?\\!\\-\\)\\[A\\-Za\\-z0\\-9\\-\\]\\{0,62\\}\\[A\\-Za\\-z0\\-9\\]\\)\\\\\\.\\)\\+\\(\\(?\\!\\-\\)\\[A\\-Za\\-z0\\-9\\-\\]\\{1,62\\}\\[A\\-Za\\-z0\\-9\\]\\)\\(\\\\\\.\\)?$ \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EnableAutoSubDomain": "Enables the automated creation of subdomains for branches\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubDomainSettings": "The setting for the subdomain\\. \n*Required*: Yes \n*Type*: List of [SubDomainSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-domain-subdomainsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Amplify::Domain SubDomainSetting": { + "BranchName": "The branch name setting for the subdomain\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Pattern:* \\(?s\\)\\.\\+ \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "The prefix setting for the subdomain\\. \n*Length Constraints:* Maximum length of 255\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmplifyUIBuilder::Component": { + "BindingProperties": "The information to connect a component's properties to data at runtime\\. You can't specify `tags` as a valid property for `bindingProperties`\\. \n \n*Required*: Yes \n*Type*: Map of [ComponentBindingPropertiesValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentbindingpropertiesvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Children": "A list of the component's `ComponentChild` instances\\. \n*Required*: No \n*Type*: List of [ComponentChild](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentchild.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CollectionProperties": "The data binding configuration for the component's properties\\. Use this for a collection component\\. You can't specify `tags` as a valid property for `collectionProperties`\\. \n*Required*: No \n*Type*: Map of [ComponentDataConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentdataconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ComponentType": "The type of the component\\. This can be an Amplify custom UI component or another custom component\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Events": "Describes the events that can be raised on the component\\. Use for the workflow feature in Amplify Studio that allows you to bind events and actions to components\\. \n*Required*: No \n*Type*: Map of [ComponentEvent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentevent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the component\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Overrides": "Describes the component's properties that can be overriden in a customized instance of the component\\. You can't specify `tags` as a valid property for `overrides`\\. \n*Required*: Yes \n*Type*: Map of [ComponentOverridesValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentoverridesvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Properties": "Describes the component's properties\\. You can't specify `tags` as a valid property for `properties`\\. \n*Required*: Yes \n*Type*: Map of [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SchemaVersion": "The schema version of the component when it was imported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceId": "The unique ID of the component in its original source system, such as Figma\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "One or more key\\-value pairs to use when tagging the component\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Variants": "A list of the component's variants\\. A variant is a unique style configuration of a main component\\. \n*Required*: Yes \n*Type*: List of [ComponentVariant](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentvariant.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmplifyUIBuilder::Component ActionParameters": { + "Anchor": "The HTML anchor link to the location to open\\. Specify this value for a navigation action\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Fields": "A dictionary of key\\-value pairs mapping Amplify Studio properties to fields in a data model\\. Use when the action performs an operation on an Amplify DataStore model\\. \n*Required*: No \n*Type*: [ComponentProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Global": "Specifies whether the user should be signed out globally\\. Specify this value for an auth sign out action\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "The unique ID of the component that the `ActionParameters` apply to\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Model": "The name of the data model\\. Use when the action performs an operation on an Amplify DataStore model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "State": "A key\\-value pair that specifies the state property name and its initial value\\. \n*Required*: No \n*Type*: [MutationActionSetStateParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-mutationactionsetstateparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Target": "The element within the same component to modify when the action occurs\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of navigation action\\. Valid values are `url` and `anchor`\\. This value is required for a navigation action\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Url": "The URL to the location to open\\. Specify this value for a navigation action\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmplifyUIBuilder::Component ComponentBindingPropertiesValue": { + "BindingProperties": "Describes the properties to customize with data at runtime\\. \n*Required*: No \n*Type*: [ComponentBindingPropertiesValueProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentbindingpropertiesvalueproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultValue": "The default value of the property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The property type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmplifyUIBuilder::Component ComponentBindingPropertiesValueProperties": { + "Bucket": "An Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultValue": "The default value to assign to the property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Field": "The field to bind the data to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Key": "The storage key for an Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Model": "An Amplify DataStore model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Predicates": "A list of predicates for binding a component's properties to data\\. \n*Required*: No \n*Type*: List of [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-predicate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserAttribute": "An authenticated user attribute\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmplifyUIBuilder::Component ComponentChild": { + "Children": "The list of `ComponentChild` instances for this component\\. \n*Required*: No \n*Type*: List of [ComponentChild](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-amplifyuibuilder-component-componentchild.html#aws-properties-amplifyuibuilder-component-componentchild) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ComponentType": "The type of the child component\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Events": "Describes the events that can be raised on the child component\\. Use for the workflow feature in Amplify Studio that allows you to bind events and actions to components\\. \n*Required*: No \n*Type*: [ComponentEvents](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentevents.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the child component\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Properties": "Describes the properties of the child component\\. You can't specify `tags` as a valid property for `properties`\\. \n*Required*: Yes \n*Type*: [ComponentProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmplifyUIBuilder::Component ComponentConditionProperty": { + "Else": "The value to assign to the property if the condition is not met\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Field": "The name of a field\\. Specify this when the property is a data model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Operand": "The value of the property to evaluate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OperandType": "The type of the property to evaluate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Operator": "The operator to use to perform the evaluation, such as `eq` to represent equals\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Property": "The name of the conditional property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Then": "The value to assign to the property if the condition is met\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmplifyUIBuilder::Component ComponentDataConfiguration": { + "Identifiers": "A list of IDs to use to bind data to a component\\. Use this property to bind specifically chosen data, rather than data retrieved from a query\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Model": "The name of the data model to use to bind data to a component\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Predicate": "Represents the conditional logic to use when binding data to a component\\. Use this property to retrieve only a subset of the data in a collection\\. \n*Required*: No \n*Type*: [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-predicate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Sort": "Describes how to sort the component's properties\\. \n*Required*: No \n*Type*: List of [SortProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-sortproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmplifyUIBuilder::Component ComponentEvent": { + "Action": "The action to perform when a specific event is raised\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "Describes information about the action\\. \n*Required*: No \n*Type*: [ActionParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-actionparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmplifyUIBuilder::Component ComponentProperty": { + "BindingProperties": "The information to bind the component property to data at runtime\\. \n*Required*: No \n*Type*: [ComponentPropertyBindingProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentpropertybindingproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Bindings": "The information to bind the component property to form data\\. \n*Required*: No \n*Type*: [FormBindings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-formbindings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CollectionBindingProperties": "The information to bind the component property to data at runtime\\. Use this for collection components\\. \n*Required*: No \n*Type*: [ComponentPropertyBindingProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentpropertybindingproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ComponentName": "The name of the component that is affected by an event\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Concat": "A list of component properties to concatenate to create the value to assign to this component property\\. \n*Required*: No \n*Type*: List of [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-amplifyuibuilder-component-componentproperty.html#aws-properties-amplifyuibuilder-component-componentproperty) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Condition": "The conditional expression to use to assign a value to the component property\\. \n*Required*: No \n*Type*: [ComponentConditionProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentconditionproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Configured": "Specifies whether the user configured the property in Amplify Studio after importing it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultValue": "The default value to assign to the component property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Event": "An event that occurs in your app\\. Use this for workflow data binding\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImportedValue": "The default value assigned to the property when the component is imported into an app\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Model": "The data model to use to assign a value to the component property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Property": "The name of the component's property that is affected by an event\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The component type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserAttribute": "An authenticated user attribute to use to assign a value to the component property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value to assign to the component property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmplifyUIBuilder::Component ComponentPropertyBindingProperties": { + "Field": "The data field to bind the property to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Property": "The component property to bind to the data field\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmplifyUIBuilder::Component ComponentVariant": { + "Overrides": "The properties of the component variant that can be overriden when customizing an instance of the component\\. You can't specify `tags` as a valid property for `overrides`\\. \n*Required*: No \n*Type*: [ComponentOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentoverrides.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VariantValues": "The combination of variants that comprise this variant\\. \n*Required*: No \n*Type*: [ComponentVariantValues](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentvariantvalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmplifyUIBuilder::Component MutationActionSetStateParameter": { + "ComponentName": "The name of the component that is being modified\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Property": "The name of the component property to apply the state configuration to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Set": "The state configuration to assign to the property\\. \n*Required*: Yes \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmplifyUIBuilder::Component Predicate": { + "And": "A list of predicates to combine logically\\. \n*Required*: No \n*Type*: List of [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-amplifyuibuilder-component-predicate.html#aws-properties-amplifyuibuilder-component-predicate) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Field": "The field to query\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Operand": "The value to use when performing the evaluation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Operator": "The operator to use to perform the evaluation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Or": "A list of predicates to combine logically\\. \n*Required*: No \n*Type*: List of [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-amplifyuibuilder-component-predicate.html#aws-properties-amplifyuibuilder-component-predicate) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmplifyUIBuilder::Component SortProperty": { + "Direction": "The direction of the sort, either ascending or descending\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Field": "The field to perform the sort on\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmplifyUIBuilder::Theme": { + "Name": "The name of the theme\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Overrides": "Describes the properties that can be overriden to customize a theme\\. \n*Required*: No \n*Type*: List of [ThemeValues](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-theme-themevalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "One or more key\\-value pairs to use when tagging the theme\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Values": "A list of key\\-value pairs that defines the properties of the theme\\. \n*Required*: Yes \n*Type*: List of [ThemeValues](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-theme-themevalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmplifyUIBuilder::Theme ThemeValue": { + "Children": "A list of key\\-value pairs that define the theme's properties\\. \n*Required*: No \n*Type*: List of [ThemeValues](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-theme-themevalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of a theme property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AmplifyUIBuilder::Theme ThemeValues": { + "Key": "The name of the property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of the property\\. \n*Required*: No \n*Type*: [ThemeValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-theme-themevalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::Account": { + "CloudWatchRoleArn": "The Amazon Resource Name \\(ARN\\) of an IAM role that has write access to CloudWatch Logs in your account\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::ApiKey": { + "CustomerId": "An AWS Marketplace customer identifier to use when integrating with the AWS SaaS Marketplace\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the purpose of the API key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Indicates whether the API key can be used by clients\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GenerateDistinctId": "Specifies whether the key identifier is distinct from the created API key value\\. This parameter is deprecated and should not be used\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "A name for the API key\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the API key name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StageKeys": "A list of stages to associate with this API key\\. \n*Required*: No \n*Type*: List of [StageKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-apikey-stagekey.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the API key\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of the API key\\. Must be at least 20 characters long\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ApiGateway::ApiKey StageKey": { + "RestApiId": "The ID of a `RestApi` resource that includes the stage with which you want to associate the API key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StageName": "The name of the stage with which to associate the API key\\. The stage must be included in the `RestApi` resource that you specified in the `RestApiId` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::Authorizer": { + "AuthType": "An optional customer\\-defined field that's used in OpenApi imports and exports without functional impact\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthorizerCredentials": "The credentials that are required for the authorizer\\. To specify an IAM role that API Gateway assumes, specify the role's Amazon Resource Name \\(ARN\\)\\. To use resource\\-based permissions on the Lambda function, specify null\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthorizerResultTtlInSeconds": "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*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthorizerUri": "The authorizer's Uniform Resource Identifier \\(URI\\)\\. If you specify `TOKEN` for the authorizer's `Type` property, specify a Lambda function URI that has the form `arn:aws:apigateway:region:lambda:path/path`\\. The path usually has the form /2015\\-03\\-31/functions/*LambdaFunctionARN*/invocations\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IdentitySource": "The source of the identity in an incoming request\\. \nIf you specify `TOKEN` or `COGNITO_USER_POOLS` for the `Type` property, this property is required\\. Specify a header mapping expression using the form `method.request.header.name`, where *name* is the name of a custom authorization header that clients submit as part of their requests\\. \nIf you specify `REQUEST` for the `Type` property, this property is required when authorization caching is enabled\\. Specify a comma\\-separated string of one or more mapping expressions of the specified request parameter using the form `method.request.parameter.name`\\. For supported parameter types, see [Configure Lambda Authorizer Using the API Gateway Console](https://docs.aws.amazon.com/apigateway/latest/developerguide/configure-api-gateway-lambda-authorization-with-console.html) in the *API Gateway Developer Guide*\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IdentityValidationExpression": "A validation expression for the incoming identity\\. If you specify `TOKEN` for the authorizer's `Type` property, specify a regular expression\\. API Gateway uses the expression to attempt to match the incoming client token, and proceeds if the token matches\\. If the token doesn't match, API Gateway responds with a 401 \\(unauthorized request\\) error code\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the authorizer\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProviderARNs": "A list of the Amazon Cognito user pool Amazon Resource Names \\(ARNs\\) to associate with this authorizer\\. Required if you specify `COGNITO_USER_POOLS` as the authorizer `Type`\\. For more information, see [Use Amazon Cognito User Pools](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html#apigateway-enable-cognito-user-pool) in the *API Gateway Developer Guide*\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RestApiId": "The ID of the `RestApi` resource that API Gateway creates the authorizer in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "The type of authorizer\\. Valid values include: \n+ `TOKEN`: A custom authorizer that uses a Lambda function\\.\n+ `COGNITO_USER_POOLS`: An authorizer that uses Amazon Cognito user pools\\.\n+ `REQUEST`: An authorizer that uses a Lambda function using incoming request parameters\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::BasePathMapping": { + "BasePath": "The base path name that callers of the API must provide in the URL after the domain name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DomainName": "The `DomainName` of an [AWS::ApiGateway::DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html) resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Id": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RestApiId": "The ID of the API\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Stage": "The name of the API's stage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::ClientCertificate": { + "Description": "A description of the client certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the client certificate\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::Deployment": { + "DeploymentCanarySettings": "Specifies settings for the canary deployment\\. \n*Required*: No \n*Type*: [DeploymentCanarySettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-deploymentcanarysettings.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "A description of the purpose of the API Gateway deployment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RestApiId": "The ID of the `RestApi` resource to deploy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StageDescription": "Configures the stage that API Gateway creates with this deployment\\. \n*Required*: No \n*Type*: [StageDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StageName": "A name for the stage that API Gateway creates with this deployment\\. Use only alphanumeric characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::Deployment AccessLogSetting": { + "DestinationArn": "The Amazon Resource Name \\(ARN\\) of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs\\. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with `amazon-apigateway-`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Format": "A single line format of the access logs of data, as specified by selected [$context variables](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference)\\. The format must include at least `$context.requestId`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::Deployment CanarySetting": { + "PercentTraffic": "The percent \\(0\\-100\\) of traffic diverted to a canary deployment\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StageVariableOverrides": "Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary\\. These stage variables are represented as a string\\-to\\-string map between stage variable names and their values\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UseStageCache": "Whether the canary deployment uses the stage cache or not\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::Deployment DeploymentCanarySettings": { + "PercentTraffic": "The percentage \\(0\\-100\\) of traffic diverted to a canary deployment\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StageVariableOverrides": "Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary\\. These stage variables are represented as a string\\-to\\-string map between stage variable names and their values\\. \nDuplicates are not allowed\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UseStageCache": "Whether the canary deployment uses the stage cache\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ApiGateway::Deployment MethodSetting": { + "CacheDataEncrypted": "Indicates whether the cached responses are encrypted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CacheTtlInSeconds": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches responses\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CachingEnabled": "Indicates whether responses are cached and returned for requests\\. You must enable a cache cluster on the stage to cache responses\\. For more information, see [Enable API Gateway Caching in a Stage to Enhance API Performance](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataTraceEnabled": "Indicates whether data trace logging is enabled for methods in the stage\\. API Gateway pushes these logs to Amazon CloudWatch Logs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HttpMethod": "The HTTP method\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoggingLevel": "The logging level for this method\\. For valid values, see the `loggingLevel` property of the [Stage](https://docs.aws.amazon.com/apigateway/api-reference/resource/stage/#loggingLevel) resource in the *Amazon API Gateway API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricsEnabled": "Indicates whether Amazon CloudWatch metrics are enabled for methods in the stage\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourcePath": "The resource path for this method\\. Forward slashes \\(`/`\\) are encoded as `~1` and the initial slash must include a forward slash\\. For example, the path value `/resource/subresource` must be encoded as `/~1resource~1subresource`\\. To specify the root path, use only a slash \\(`/`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThrottlingBurstLimit": "The number of burst requests per second that API Gateway permits across all APIs, stages, and methods in your AWS account\\. For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThrottlingRateLimit": "The number of steady\\-state requests per second that API Gateway permits across all APIs, stages, and methods in your AWS account\\. For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::Deployment StageDescription": { + "AccessLogSetting": "Specifies settings for logging access in this stage\\. \n*Required*: No \n*Type*: [AccessLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-accesslogsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CacheClusterEnabled": "Indicates whether cache clustering is enabled for the stage\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CacheClusterSize": "The size of the stage's cache cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CacheDataEncrypted": "Indicates whether the cached responses are encrypted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CacheTtlInSeconds": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches responses\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CachingEnabled": "Indicates whether responses are cached and returned for requests\\. You must enable a cache cluster on the stage to cache responses\\. For more information, see [Enable API Gateway Caching in a Stage to Enhance API Performance](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CanarySetting": "Specifies settings for the canary deployment in this stage\\. \n*Required*: No \n*Type*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-canarysetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientCertificateId": "The identifier of the client certificate that API Gateway uses to call your integration endpoints in the stage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataTraceEnabled": "Indicates whether data trace logging is enabled for methods in the stage\\. API Gateway pushes these logs to Amazon CloudWatch Logs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the purpose of the stage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DocumentationVersion": "The version identifier of the API documentation snapshot\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoggingLevel": "The logging level for this method\\. For valid values, see the `loggingLevel` property of the [Stage](https://docs.aws.amazon.com/apigateway/api-reference/resource/stage/#loggingLevel) resource in the *Amazon API Gateway API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MethodSettings": "Configures settings for all of the stage's methods\\. \n*Required*: No \n*Type*: List of [MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-methodsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricsEnabled": "Indicates whether Amazon CloudWatch metrics are enabled for methods in the stage\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the stage\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThrottlingBurstLimit": "The target request burst rate limit\\. This allows more requests through for a period of time than the target rate limit\\. For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThrottlingRateLimit": "The target request steady\\-state rate limit\\. For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TracingEnabled": "Specifies whether active tracing with X\\-ray is enabled for this stage\\. \nFor more information, see [Trace API Gateway API Execution with AWS X\\-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Variables": "A map that defines the stage variables\\. Variable names must consist of alphanumeric characters, and the values must match the following regular expression: `[A-Za-z0-9-._~:/?#&=,]+`\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::DocumentationPart": { + "Location": "The location of the API entity that the documentation applies to\\. \n*Required*: Yes \n*Type*: [Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-documentationpart-location.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Properties": "The documentation content map of the targeted API entity\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RestApiId": "The identifier of the targeted API entity\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ApiGateway::DocumentationPart Location": { + "Method": "The HTTP verb of a method\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the targeted API entity\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Path": "The URL path of the target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StatusCode": "The HTTP status code of a response\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "The type of API entity that the documentation content applies to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ApiGateway::DocumentationVersion": { + "Description": "The description of the API documentation snapshot\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DocumentationVersion": "The version identifier of the API documentation snapshot\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RestApiId": "The identifier of the API\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ApiGateway::DomainName": { + "CertificateArn": "The reference to an AWS\\-managed certificate for use by the edge\\-optimized endpoint for this domain name\\. AWS Certificate Manager is the only supported source\\. For requirements and additional information about setting up certificates, see [Get Certificates Ready in AWS Certificate Manager](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html#how-to-custom-domains-prerequisites) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainName": "The custom domain name for your API\\. Uppercase letters are not supported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EndpointConfiguration": "A list of the endpoint types of the domain name\\. \n*Required*: No \n*Type*: [EndpointConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-endpointconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MutualTlsAuthentication": "The mutual TLS authentication configuration for a custom domain name\\. \n*Required*: No \n*Type*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-mutualtlsauthentication.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OwnershipVerificationCertificateArn": "The ARN of the public certificate issued by ACM to validate ownership of your custom domain\\. Only required when configuring mutual TLS and using an ACM imported or private CA certificate ARN as the RegionalCertificateArn\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegionalCertificateArn": "The reference to an AWS\\-managed certificate for use by the regional endpoint for the domain name\\. AWS Certificate Manager is the only supported source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityPolicy": "The Transport Layer Security \\(TLS\\) version \\+ cipher suite for this domain name\\. \nValid values include `TLS_1_0` and `TLS_1_2`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the domain name\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::DomainName EndpointConfiguration": { + "Types": "A list of endpoint types of an API or its custom domain name\\. For an edge\\-optimized API and its custom domain name, the endpoint type is `EDGE`\\. For a regional API and its custom domain name, the endpoint type is `REGIONAL`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::DomainName MutualTlsAuthentication": { + "TruststoreUri": "An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`\\. The truststore can contain certificates from public or private certificate authorities\\. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version\\. To update the truststore, you must have permissions to access the S3 object\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TruststoreVersion": "The version of the S3 object that contains your truststore\\. To specify a version, you must have versioning enabled for the S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::GatewayResponse": { + "ResponseParameters": "The response parameters \\(paths, query strings, and headers\\) for the response\\. Duplicates not allowed\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResponseTemplates": "The response templates for the response\\. Duplicates not allowed\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResponseType": "The response type\\. For valid values, see [GatewayResponse](https://docs.aws.amazon.com/apigateway/api-reference/resource/gateway-response/) in the *API Gateway API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RestApiId": "The identifier of the API\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StatusCode": "The HTTP status code for the response\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::Method": { + "ApiKeyRequired": "Indicates whether the method requires clients to submit a valid API key\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthorizationScopes": "A list of authorization scopes configured on the method\\. The scopes are used with a `COGNITO_USER_POOLS` authorizer to authorize the method invocation\\. The authorization works by matching the method scopes against the scopes parsed from the access token in the incoming request\\. The method invocation is authorized if any method scopes match a claimed scope in the access token\\. Otherwise, the invocation is not authorized\\. When the method scope is configured, the client must provide an access token instead of an identity token for authorization purposes\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthorizationType": "The method's authorization type\\. This parameter is required\\. For valid values, see [Method](https://docs.aws.amazon.com/apigateway/api-reference/resource/method/) in the *API Gateway API Reference*\\. \nIf you specify the `AuthorizerId` property, specify `CUSTOM` or `COGNITO_USER_POOLS` for this property\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthorizerId": "The identifier of the [authorizer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html) to use on this method\\. If you specify this property, specify `CUSTOM` or `COGNITO_USER_POOLS` for the `AuthorizationType` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HttpMethod": "The HTTP method that clients use to call this method\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Integration": "The backend system that the method calls when it receives a request\\. \n*Required*: No \n*Type*: [Integration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MethodResponses": "The responses that can be sent to the client who calls the method\\. \n*Required*: No \n*Type*: List of [MethodResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-methodresponse.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OperationName": "A friendly operation name for the method\\. For example, you can assign the `OperationName` of `ListPets` for the `GET /pets` method\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequestModels": "The resources that are used for the request's content type\\. Specify request models as key\\-value pairs \\(string\\-to\\-string mapping\\), with a content type as the key and a `Model` resource name as the value\\. To use the same model regardless of the content type, specify `$default` as the key\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequestParameters": "The request parameters that API Gateway accepts\\. Specify request parameters as key\\-value pairs \\(string\\-to\\-Boolean mapping\\), with a source as the key and a Boolean as the value\\. The Boolean specifies whether a parameter is required\\. A source must match the format `method.request.location.name`, where the location is querystring, path, or header, and *name* is a valid, unique parameter name\\. \n*Required*: No \n*Type*: Map of Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequestValidatorId": "The ID of the associated request validator\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceId": "The ID of an API Gateway [resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html)\\. For root resource methods, specify the `RestApi` root resource ID, such as `{ \"Fn::GetAtt\": [\"MyRestApi\", \"RootResourceId\"] }`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RestApiId": "The ID of the [RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource in which API Gateway creates the method\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::Method Integration": { + "CacheKeyParameters": "A list of request parameters whose values API Gateway caches\\. For cases where the integration type allows for RequestParameters to be set, these parameters must also be specified in [RequestParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-requestparameters) to be supported in `CacheKeyParameters`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CacheNamespace": "An API\\-specific tag group of related cached parameters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectionId": "The ID of the `VpcLink` used for the integration when `connectionType=VPC_LINK`, otherwise undefined\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectionType": "The type of the network connection to the integration endpoint\\. The valid value is `INTERNET` for connections through the public routable internet or `VPC_LINK` for private connections between API Gateway and a network load balancer in a VPC\\. The default value is `INTERNET`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContentHandling": "Specifies how to handle request payload content type conversions\\. Valid values are: \n+ `CONVERT_TO_BINARY`: Converts a request payload from a base64\\-encoded string to a binary blob\\.\n+ `CONVERT_TO_TEXT`: Converts a request payload from a binary blob to a base64\\-encoded string\\.\nIf this property isn't defined, the request payload is passed through from the method request to the integration request without modification, provided that the `PassthroughBehaviors` property is configured to support payload pass\\-through\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Credentials": "The credentials that are required for the integration\\. To specify an AWS Identity and Access Management \\(IAM\\) role that API Gateway assumes, specify the role's Amazon Resource Name \\(ARN\\)\\. To require that the caller's identity be passed through from the request, specify arn:aws:iam::\\*:user/\\*\\. \nTo use resource\\-based permissions on the AWS Lambda \\(Lambda\\) function, don't specify this property\\. Use the [AWS::Lambda::Permission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html) resource to permit API Gateway to call the function\\. For more information, see [Allow Amazon API Gateway to Invoke a Lambda Function](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html#access-control-resource-based-example-apigateway-invoke-function) in the *AWS Lambda Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntegrationHttpMethod": "The integration's HTTP method type\\. \nFor the `Type` property, if you specify `MOCK`, this property is optional\\. For all other types, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntegrationResponses": "The response that API Gateway provides after a method's backend completes processing a request\\. API Gateway intercepts the response from the backend so that you can control how API Gateway surfaces backend responses\\. For example, you can map the backend status codes to codes that you define\\. \n*Required*: No \n*Type*: List of [IntegrationResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration-integrationresponse.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PassthroughBehavior": "Indicates when API Gateway passes requests to the targeted backend\\. This behavior depends on the request's `Content-Type` header and whether you defined a mapping template for it\\. \nFor more information and valid values, see the [passthroughBehavior](https://docs.aws.amazon.com/apigateway/api-reference/link-relation/integration-put/#passthroughBehavior) field in the *API Gateway API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequestParameters": "The request parameters that API Gateway sends with the backend request\\. Specify request parameters as key\\-value pairs \\(string\\-to\\-string mappings\\), with a destination as the key and a source as the value\\. \nSpecify the destination by using the following pattern `integration.request.location.name`, where *location* is query string, path, or header, and *name* is a valid, unique parameter name\\. \nThe source must be an existing method request parameter or a static value\\. You must enclose static values in single quotation marks and pre\\-encode these values based on their destination in the request\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequestTemplates": "A map of Apache Velocity templates that are applied on the request payload\\. The template that API Gateway uses is based on the value of the `Content-Type` header that's sent by the client\\. The content type value is the key, and the template is the value \\(specified as a string\\), such as the following snippet: \n`\"application/json\": \"{\\n \\\"statusCode\\\": 200\\n}\"` \nFor more information about templates, see [API Gateway Mapping Template and Access Logging Variable Reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeoutInMillis": "Custom timeout between 50 and 29,000 milliseconds\\. The default value is 29,000 milliseconds or 29 seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of backend that your method is running, such as `HTTP` or `MOCK`\\. For all of the valid values, see the [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/#type) property for the `Integration` resource in the *Amazon API Gateway REST API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Uri": "The Uniform Resource Identifier \\(URI\\) for the integration\\. \nIf you specify `HTTP` for the `Type` property, specify the API endpoint URL\\. \nIf you specify `MOCK` for the `Type` property, don't specify this property\\. \nIf you specify `AWS` for the `Type` property, specify an AWS service that follows this form: arn:aws:apigateway:*region*:*subdomain*\\.*service\\|service*:*path\\|action*/*service\\_api*\\. For example, a Lambda function URI follows this form: arn:aws:apigateway:*region*:lambda:path/*path*\\. The path is usually in the form /2015\\-03\\-31/functions/*LambdaFunctionARN*/invocations\\. For more information, see the `uri` property of the [Integration](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/) resource in the Amazon API Gateway REST API Reference\\. \nIf you specified `HTTP` or `AWS` for the `Type` property, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::Method IntegrationResponse": { + "ContentHandling": "Specifies how to handle request payload content type conversions\\. Valid values are: \n+ `CONVERT_TO_BINARY`: Converts a request payload from a base64\\-encoded string to a binary blob\\.\n+ `CONVERT_TO_TEXT`: Converts a request payload from a binary blob to a base64\\-encoded string\\.\nIf this property isn't defined, the request payload is passed through from the method request to the integration request without modification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResponseParameters": "The response parameters from the backend response that API Gateway sends to the method response\\. Specify response parameters as key\\-value pairs \\([string\\-to\\-string mappings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/mappings-section-structure.html)\\)\\. \nUse the destination as the key and the source as the value: \n+ The destination must be an existing response parameter in the [MethodResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-methodresponse.html) property\\.\n+ The source must be an existing method request parameter or a static value\\. You must enclose static values in single quotation marks and pre\\-encode these values based on the destination specified in the request\\.\nFor more information about templates, see [API Gateway Mapping Template and Access Logging Variable Reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResponseTemplates": "The templates that are used to transform the integration response body\\. Specify templates as key\\-value pairs \\(string\\-to\\-string mappings\\), with a content type as the key and a template as the value\\. For more information, see [API Gateway Mapping Template and Access Logging Variable Reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SelectionPattern": "A [regular expression](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-regexes.html) that specifies which error strings or status codes from the backend map to the integration response\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatusCode": "The status code that API Gateway uses to map the integration response to a [MethodResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-methodresponse.html) status code\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::Method MethodResponse": { + "ResponseModels": "The resources used for the response's content type\\. Specify response models as key\\-value pairs \\(string\\-to\\-string maps\\), with a content type as the key and a [Model](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html) resource name as the value\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResponseParameters": "Response parameters that API Gateway sends to the client that called a method\\. Specify response parameters as key\\-value pairs \\(string\\-to\\-Boolean maps\\), with a destination as the key and a Boolean as the value\\. Specify the destination using the following pattern: `method.response.header.name`, where *name* is a valid, unique header name\\. The Boolean specifies whether a parameter is required\\. \n*Required*: No \n*Type*: Map of Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatusCode": "The method response's status code, which you map to an [IntegrationResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration-integrationresponse.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::Model": { + "ContentType": "The content type for the model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "A description that identifies this model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A name for the model\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the model name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RestApiId": "The ID of a REST API with which to associate this model\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Schema": "The schema to use to transform data to one or more output formats\\. Specify null \\(`{}`\\) if you don't want to specify a schema\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::RequestValidator": { + "Name": "The name of this request validator\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RestApiId": "The identifier of the targeted API entity\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ValidateRequestBody": "Indicates whether to validate the request body according to the configured schema for the targeted API and method\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ValidateRequestParameters": "Indicates whether to validate request parameters\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::Resource": { + "ParentId": "If you want to create a child resource, the ID of the parent resource\\. For resources without a parent, specify the `RestApi` root resource ID, such as `{ \"Fn::GetAtt\": [\"MyRestApi\", \"RootResourceId\"] }`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PathPart": "A path name for the resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RestApiId": "The ID of the [RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource in which you want to create this resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ApiGateway::RestApi": { + "ApiKeySourceType": "The source of the API key for metering requests according to a usage plan\\. Valid values are: \n+ `HEADER` to read the API key from the `X-API-Key` header of a request\\.\n+ `AUTHORIZER` to read the API key from the `UsageIdentifierKey` from a Lambda authorizer\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BinaryMediaTypes": "The list of binary media types that are supported by the `RestApi` resource\\. Use `~1` instead of `/` in the media types, for example `image~1png` or `application~1octet-stream`\\. By default, `RestApi` supports only UTF\\-8\\-encoded text payloads\\. Duplicates are not allowed\\. For more information, see [Enable Support for Binary Payloads in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-payload-encodings.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Body": "An OpenAPI specification that defines a set of RESTful APIs in JSON format\\. For YAML templates, you can also provide the specification in YAML format\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BodyS3Location": "The Amazon Simple Storage Service \\(Amazon S3\\) location that points to an OpenAPI file, which defines a set of RESTful APIs in JSON or YAML format\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CloneFrom": "The ID of the `RestApi` resource that you want to clone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the `RestApi` resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisableExecuteApiEndpoint": "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 endpoint\\. To require that clients use a custom domain name to invoke your API, disable the default endpoint\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EndpointConfiguration": "A list of the endpoint types of the API\\. Use this property when creating an API\\. When importing an existing API, specify the endpoint configuration types using the `Parameters` property\\. \n*Required*: No \n*Type*: [EndpointConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FailOnWarnings": "Indicates whether to roll back the resource if a warning occurs while API Gateway is creating the `RestApi` resource\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinimumCompressionSize": "A nullable integer that is used to enable compression \\(with non\\-negative between 0 and 10485760 \\(10M\\) bytes, inclusive\\) or disable compression \\(with a null value\\) on an API\\. When compression is enabled, compression or decompression is not applied on the payload if the payload size is smaller than this value\\. Setting it to zero allows compression for any payload size\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Mode": "This property applies only when you use OpenAPI to define your REST API\\. The `Mode` determines how API Gateway handles resource updates\\. \nValid values are `overwrite` or `merge`\\. \nFor `overwrite`, the new API definition replaces the existing one\\. The existing API identifier remains unchanged\\. \n For `merge`, the new API definition takes precedence, but any container types such as endpoint configurations and binary media types are merged with the existing API\\. Use `merge` to define top\\-level `RestApi` properties in addition to using OpenAPI\\. Generally, it's preferred to use API Gateway's OpenAPI extensions to model these properties\\. \nIf you don't specify this property, a default value is chosen\\. For REST APIs created before March 29, 2021, the default is `overwrite`\\. Otherwise, the default value is `merge`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A name for the `RestApi` resource\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "Custom header parameters for the request\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Policy": "A policy document that contains the permissions for the `RestApi` resource\\. To set the ARN for the policy, use the `!Join` intrinsic function with `\"\"` as delimiter and values of `\"execute-api:/\"` and `\"*\"`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the API\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::RestApi EndpointConfiguration": { + "Types": "A list of endpoint types of an API or its custom domain name\\. Valid values include: \n+ `EDGE`: For an edge\\-optimized API and its custom domain name\\.\n+ `REGIONAL`: For a regional API and its custom domain name\\.\n+ `PRIVATE`: For a private API\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcEndpointIds": "A list of VPC endpoint IDs of an API \\([AWS::ApiGateway::RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html)\\) against which to create Route53 ALIASes\\. It is only supported for `PRIVATE` endpoint type\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::RestApi S3Location": { + "Bucket": "The name of the S3 bucket where the OpenAPI file is stored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ETag": "The Amazon S3 ETag \\(a file checksum\\) of the OpenAPI file\\. If you don't specify a value, API Gateway skips ETag validation of your OpenAPI file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Key": "The file name of the OpenAPI file \\(Amazon S3 object name\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "For versioning\\-enabled buckets, a specific version of the OpenAPI file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::Stage": { + "AccessLogSetting": "Specifies settings for logging access in this stage\\. \n*Required*: No \n*Type*: [AccessLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-accesslogsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CacheClusterEnabled": "Indicates whether cache clustering is enabled for the stage\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CacheClusterSize": "The stage's cache cluster size\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CanarySetting": "Specifies settings for the canary deployment in this stage\\. \n*Required*: No \n*Type*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientCertificateId": "The ID of the client certificate that API Gateway uses to call your integration endpoints in the stage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeploymentId": "The ID of the deployment that the stage is associated with\\. This parameter is required to create a stage\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the stage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DocumentationVersion": "The version ID of the API documentation snapshot\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MethodSettings": "Settings for all methods in the stage\\. \n*Required*: No \n*Type*: List of [MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RestApiId": "The ID of the `RestApi` resource that you're deploying with this stage\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StageName": "The name of the stage, which API Gateway uses as the first path segment in the invoked Uniform Resource Identifier \\(URI\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the stage\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TracingEnabled": "Specifies whether active X\\-Ray tracing is enabled for this stage\\. \nFor more information, see [Trace API Gateway API Execution with AWS X\\-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Variables": "A map \\(string\\-to\\-string map\\) 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*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::Stage AccessLogSetting": { + "DestinationArn": "The Amazon Resource Name \\(ARN\\) of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs\\. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with `amazon-apigateway-`\\. This parameter is required to enable access logging\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Format": "A single line format of the access logs of data, as specified by selected [$context variables](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference)\\. The format must include at least `$context.requestId`\\. This parameter is required to enable access logging\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::Stage CanarySetting": { + "DeploymentId": "The identifier of the deployment that the stage points to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PercentTraffic": "The percentage \\(0\\-100\\) of traffic diverted to a canary deployment\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StageVariableOverrides": "Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary\\. These stage variables are represented as a string\\-to\\-string map between stage variable names and their values\\. \nDuplicates are not allowed\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UseStageCache": "Whether the canary deployment uses the stage cache or not\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::Stage MethodSetting": { + "CacheDataEncrypted": "Indicates whether the cached responses are encrypted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CacheTtlInSeconds": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches responses\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CachingEnabled": "Indicates whether responses are cached and returned for requests\\. You must enable a cache cluster on the stage to cache responses\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataTraceEnabled": "Indicates whether data trace logging is enabled for methods in the stage\\. API Gateway pushes these logs to Amazon CloudWatch Logs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HttpMethod": "The HTTP method\\. To apply settings to multiple resources and methods, specify an asterisk \\(`*`\\) for the `HttpMethod` and `/*` for the `ResourcePath`\\. This parameter is required when you specify a `MethodSetting`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoggingLevel": "The logging level for this method\\. For valid values, see the `loggingLevel` property of the [Stage](https://docs.aws.amazon.com/apigateway/api-reference/resource/stage/#loggingLevel) resource in the *Amazon API Gateway API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricsEnabled": "Indicates whether Amazon CloudWatch metrics are enabled for methods in the stage\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourcePath": "The resource path for this method\\. Forward slashes \\(`/`\\) are encoded as `~1` and the initial slash must include a forward slash\\. For example, the path value `/resource/subresource` must be encoded as `/~1resource~1subresource`\\. To specify the root path, use only a slash \\(`/`\\)\\. To apply settings to multiple resources and methods, specify an asterisk \\(`*`\\) for the `HttpMethod` and `/*` for the `ResourcePath`\\. This parameter is required when you specify a `MethodSetting`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThrottlingBurstLimit": "The number of burst requests per second that API Gateway permits across all APIs, stages, and methods in your AWS account\\. For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThrottlingRateLimit": "The number of steady\\-state requests per second that API Gateway permits across all APIs, stages, and methods in your AWS account\\. For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::UsagePlan": { + "ApiStages": "The API stages to associate with this usage plan\\. \n*Required*: No \n*Type*: List of [ApiStage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-apistage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the usage plan\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Quota": "Configures the number of requests that users can make within a given interval\\. \n*Required*: No \n*Type*: [QuotaSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-quotasettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the usage plan\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Throttle": "Configures the overall request rate \\(average requests per second\\) and burst capacity\\. \n*Required*: No \n*Type*: [ThrottleSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-throttlesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UsagePlanName": "A name for the usage plan\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::UsagePlan ApiStage": { + "ApiId": "The ID of an API that is in the specified `Stage` property that you want to associate with the usage plan\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Stage": "The name of the stage to associate with the usage plan\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Throttle": "Map containing method\\-level throttling information for an API stage in a usage plan\\. The key for the map is the path and method for which to configure custom throttling, for example, \"/pets/GET\"\\. \nDuplicates are not allowed\\. \n*Required*: No \n*Type*: Map of [ThrottleSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-throttlesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::UsagePlan QuotaSettings": { + "Limit": "The target maximum number of requests that can be made in a given time period\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Offset": "The day that a time period starts\\. For example, with a time period of `WEEK`, an offset of `0` starts on Sunday, and an offset of `1` starts on Monday\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Period": "The time period for which the target maximum limit of requests applies, such as `DAY` or `WEEK`\\. For valid values, see the period property for the [UsagePlan](https://docs.aws.amazon.com/apigateway/api-reference/resource/usage-plan) resource in the *Amazon API Gateway REST API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::UsagePlan ThrottleSettings": { + "BurstLimit": "The API target request burst rate limit\\. This allows more requests through for a period of time than the target rate limit\\. For more information about request throttling, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RateLimit": "The API target request steady\\-state rate limit\\. For more information about request throttling, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGateway::UsagePlanKey": { + "KeyId": "The ID of the usage plan key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KeyType": "The type of usage plan key\\. Currently, the only valid key type is `API_KEY`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UsagePlanId": "The ID of the usage plan\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ApiGateway::VpcLink": { + "Description": "A description of the VPC link\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A name for the VPC link\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the VPC link\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetArns": "The ARN of network load balancer of the VPC targeted by the VPC link\\. The network load balancer must be owned by the same AWS account of the API owner\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ApiGatewayV2::Api": { + "ApiKeySelectionExpression": "An API key selection expression\\. Supported only for WebSocket APIs\\. See [API Key Selection Expressions](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BasePath": "Specifies how to interpret the base path of the API during import\\. Valid values are `ignore`, `prepend`, and `split`\\. The default value is `ignore`\\. To learn more, see [Set the OpenAPI basePath Property](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api-basePath.html)\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Body": "The OpenAPI definition\\. Supported only for HTTP APIs\\. To import an HTTP API, you must specify a `Body` or `BodyS3Location`\\. If you specify a `Body` or `BodyS3Location`, don't specify CloudFormation resources such as `AWS::ApiGatewayV2::Authorizer` or `AWS::ApiGatewayV2::Route`\\. API Gateway doesn't support the combination of OpenAPI and CloudFormation resources\\. \n*Required*: Conditional \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BodyS3Location": "The S3 location of an OpenAPI definition\\. Supported only for HTTP APIs\\. To import an HTTP API, you must specify a `Body` or `BodyS3Location`\\. If you specify a `Body` or `BodyS3Location`, don't specify CloudFormation resources such as `AWS::ApiGatewayV2::Authorizer` or `AWS::ApiGatewayV2::Route`\\. API Gateway doesn't support the combination of OpenAPI and CloudFormation resources\\. \n*Required*: Conditional \n*Type*: [BodyS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CorsConfiguration": "A CORS configuration\\. Supported only for HTTP APIs\\. See [Configuring CORS](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) for more information\\. \n*Required*: No \n*Type*: [Cors](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-cors.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CredentialsArn": "This property is part of quick create\\. It specifies the credentials required for the integration, if any\\. For a Lambda integration, three options are available\\. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name \\(ARN\\)\\. To require that the caller's identity be passed through from the request, specify `arn:aws:iam::*:user/*`\\. To use resource\\-based permissions on supported AWS services, specify `null`\\. Currently, this property is not used for HTTP integrations\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the API\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisableExecuteApiEndpoint": "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 endpoint\\. To require that clients use a custom domain name to invoke your API, disable the default endpoint\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisableSchemaValidation": "Avoid validating models when creating a deployment\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FailOnWarnings": "Specifies whether to rollback the API creation when a warning is encountered\\. By default, API creation continues if a warning is encountered\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the API\\. Required unless you specify an OpenAPI definition for `Body` or `S3BodyLocation`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProtocolType": "The API protocol\\. Valid values are `WEBSOCKET` or `HTTP`\\. Required unless you specify an OpenAPI definition for `Body` or `S3BodyLocation`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RouteKey": "This property is part of quick create\\. If you don't specify a `routeKey`, a default route of `$default` is created\\. The `$default` route acts as a catch\\-all for any request made to your API, for a particular stage\\. The `$default` route key can't be modified\\. You can add routes after creating the API, and you can update the route keys of additional routes\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RouteSelectionExpression": "The route selection expression for the API\\. For HTTP APIs, the `routeSelectionExpression` must be `${request.method} ${request.path}`\\. If not provided, this will be the default for HTTP APIs\\. This property is required for WebSocket APIs\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The collection of tags\\. Each tag element is associated with a given resource\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Target": "This property is part of quick create\\. Quick create produces an API with an integration, a default catch\\-all route, and a default stage which is configured to automatically deploy changes\\. For HTTP integrations, specify a fully qualified URL\\. For Lambda integrations, specify a function ARN\\. The type of the integration will be HTTP\\_PROXY or AWS\\_PROXY, respectively\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "A version identifier for the API\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::Api BodyS3Location": { + "Bucket": "The S3 bucket that contains the OpenAPI definition to import\\. Required if you specify a `BodyS3Location` for an API\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Etag": "The Etag of the S3 object\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Key": "The key of the S3 object\\. Required if you specify a `BodyS3Location` for an API\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "The version of the S3 object\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::Api Cors": { + "AllowCredentials": "Specifies whether credentials are included in the CORS request\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AllowHeaders": "Represents a collection of allowed headers\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AllowMethods": "Represents a collection of allowed HTTP methods\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AllowOrigins": "Represents a collection of allowed origins\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExposeHeaders": "Represents a collection of exposed headers\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxAge": "The number of seconds that the browser should cache preflight request results\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::ApiGatewayManagedOverrides": { + "ApiId": "The ID of the API for which to override the configuration of API Gateway\\-managed resources\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Integration": "Overrides the integration configuration for an API Gateway\\-managed integration\\. \n*Required*: No \n*Type*: [IntegrationOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Route": "Overrides the route configuration for an API Gateway\\-managed route\\. \n*Required*: No \n*Type*: [RouteOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routeoverrides.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Stage": "Overrides the stage configuration for an API Gateway\\-managed stage\\. \n*Required*: No \n*Type*: [StageOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::ApiGatewayManagedOverrides AccessLogSettings": { + "DestinationArn": "The ARN of the CloudWatch Logs log group to receive access logs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Format": "A single line format of the access logs of data, as specified by selected $context variables\\. The format must include at least $context\\.requestId\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::ApiGatewayManagedOverrides IntegrationOverrides": { + "Description": "The description of the integration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntegrationMethod": "Specifies the integration's HTTP method type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PayloadFormatVersion": "Specifies the format of the payload sent to an integration\\. Required for HTTP APIs\\. For HTTP APIs, supported values for Lambda proxy integrations are `1.0` and `2.0`\\. For all other integrations, `1.0` is the only supported value\\. To learn more, see [Working with AWS Lambda proxy integrations for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeoutInMillis": "Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs\\. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::ApiGatewayManagedOverrides RouteOverrides": { + "AuthorizationScopes": "The authorization scopes supported by this route\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthorizationType": "The authorization type for the route\\. To learn more, see [AuthorizationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-authorizationtype)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthorizerId": "The identifier of the `Authorizer` resource to be associated with this route\\. The authorizer identifier is generated by API Gateway when you created the authorizer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OperationName": "The operation name for the route\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Target": "For HTTP integrations, specify a fully qualified URL\\. For Lambda integrations, specify a function ARN\\. The type of the integration will be HTTP\\_PROXY or AWS\\_PROXY, respectively\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::ApiGatewayManagedOverrides RouteSettings": { + "DataTraceEnabled": "Specifies whether \\(`true`\\) or not \\(`false`\\) data trace logging is enabled for this route\\. This property affects the log entries pushed to Amazon CloudWatch Logs\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DetailedMetricsEnabled": "Specifies whether detailed metrics are enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoggingLevel": "Specifies the logging level for this route: `INFO`, `ERROR`, or `OFF`\\. This property affects the log entries pushed to Amazon CloudWatch Logs\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThrottlingBurstLimit": "Specifies the throttling burst limit\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThrottlingRateLimit": "Specifies the throttling rate limit\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::ApiGatewayManagedOverrides StageOverrides": { + "AccessLogSettings": "Settings for logging access in a stage\\. \n*Required*: No \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutoDeploy": "Specifies whether updates to an API automatically trigger a new deployment\\. The default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultRouteSettings": "The default route settings for the stage\\. \n*Required*: No \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description for the API stage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RouteSettings": "Route settings for the stage\\. \n*Required*: No \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StageVariables": "A map that defines the stage variables for a `Stage`\\. Variable names can have alphanumeric and underscore characters, and the values must match \\[A\\-Za\\-z0\\-9\\-\\.\\_\\~:/?\\#&=,\\]\\+\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::ApiMapping": { + "ApiId": "The identifier of the API\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ApiMappingKey": "The API mapping key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainName": "The domain name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Stage": "The API stage\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::Authorizer": { + "ApiId": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AuthorizerCredentialsArn": "Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer\\. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name \\(ARN\\)\\. To use resource\\-based permissions on the Lambda function, specify null\\. Supported only for `REQUEST` authorizers\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthorizerPayloadFormatVersion": "Specifies the format of the payload sent to an HTTP API Lambda authorizer\\. Required for HTTP API Lambda authorizers\\. Supported values are `1.0` and `2.0`\\. To learn more, see [Working with AWS Lambda authorizers for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthorizerResultTtlInSeconds": "The time to live \\(TTL\\) for cached authorizer results, in seconds\\. If it equals 0, authorization caching is disabled\\. If it is greater than 0, API Gateway caches authorizer responses\\. The maximum value is 3600, or 1 hour\\. Supported only for HTTP API Lambda authorizers\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthorizerType": "The authorizer type\\. Specify `REQUEST` for a Lambda function using incoming request parameters\\. Specify `JWT` to use JSON Web Tokens \\(supported only for HTTP APIs\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthorizerUri": "The authorizer's Uniform Resource Identifier \\(URI\\)\\. For `REQUEST` authorizers, this must be a well\\-formed Lambda function URI, for example, `arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations`\\. In general, the URI has this form: `arn:aws:apigateway:{region}:lambda:path/{service_api} `, where *\\{region\\}* is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial `/`\\. For Lambda functions, this is usually of the form `/2015-03-31/functions/[FunctionARN]/invocations`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableSimpleResponses": "Specifies whether a Lambda authorizer returns a response in a simple format\\. By default, a Lambda authorizer must return an IAM policy\\. If enabled, the Lambda authorizer can return a boolean value instead of an IAM policy\\. Supported only for HTTP APIs\\. To learn more, see [Working with AWS Lambda authorizers for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IdentitySource": "The identity source for which authorization is requested\\. \nFor a `REQUEST` authorizer, this is optional\\. The value is a set of one or more mapping expressions of the specified request parameters\\. The identity source can be headers, query string parameters, stage variables, and context parameters\\. For example, if an Auth header and a Name query string parameter are defined as identity sources, this value is route\\.request\\.header\\.Auth, route\\.request\\.querystring\\.Name for WebSocket APIs\\. For HTTP APIs, use selection expressions prefixed with `$`, for example, `$request.header.Auth`, `$request.querystring.Name`\\. These parameters are used to perform runtime validation for Lambda\\-based authorizers by verifying all of the identity\\-related request parameters are present in the request, not null, and non\\-empty\\. Only when this is true does the authorizer invoke the authorizer Lambda function\\. Otherwise, it returns a 401 Unauthorized response without calling the Lambda function\\. For HTTP APIs, identity sources are also used as the cache key when caching is enabled\\. To learn more, see [Working with AWS Lambda authorizers for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html)\\. \nFor `JWT`, a single entry that specifies where to extract the JSON Web Token \\(JWT\\) from inbound requests\\. Currently only header\\-based and query parameter\\-based selections are supported, for example `$request.header.Authorization`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IdentityValidationExpression": "This parameter is not used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JwtConfiguration": "The `JWTConfiguration` property specifies the configuration of a JWT authorizer\\. Required for the `JWT` authorizer type\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: [JWTConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-authorizer-jwtconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the authorizer\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::Authorizer JWTConfiguration": { + "Audience": "A list of the intended recipients of the JWT\\. A valid JWT must provide an `aud` that matches at least one entry in this list\\. See [RFC 7519](https://tools.ietf.org/html/rfc7519#section-4.1.3)\\. Required for the `JWT` authorizer type\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Issuer": "The base domain of the identity provider that issues JSON Web Tokens\\. For example, an Amazon Cognito user pool has the following format: `https://cognito-idp.{region}.amazonaws.com/{userPoolId} `\\. Required for the `JWT` authorizer type\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::Deployment": { + "ApiId": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "The description for the deployment resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StageName": "The name of an existing stage to associate with the deployment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::DomainName": { + "DomainName": "The custom domain name for your API in Amazon API Gateway\\. Uppercase letters are not supported\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DomainNameConfigurations": "The domain name configurations\\. \n*Required*: No \n*Type*: List of [DomainNameConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MutualTlsAuthentication": "The mutual TLS authentication configuration for a custom domain name\\. \n*Required*: No \n*Type*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-mutualtlsauthentication.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The collection of tags associated with a domain name\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::DomainName DomainNameConfiguration": { + "CertificateArn": "An AWS\\-managed certificate that will be used by the edge\\-optimized endpoint for this domain name\\. AWS Certificate Manager is the only supported source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CertificateName": "The user\\-friendly name of the certificate that will be used by the edge\\-optimized endpoint for this domain name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EndpointType": "The endpoint type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OwnershipVerificationCertificateArn": "The ARN of the public certificate issued by ACM to validate ownership of your custom domain\\. Only required when configuring mutual TLS and using an ACM imported or private CA certificate ARN as the RegionalCertificateArn\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityPolicy": "The Transport Layer Security \\(TLS\\) version of the security policy for this domain name\\. The valid values are `TLS_1_0` and `TLS_1_2`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::DomainName MutualTlsAuthentication": { + "TruststoreUri": "An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name `\\. The truststore can contain certificates from public or private certificate authorities\\. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version\\. To update the truststore, you must have permissions to access the S3 object\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TruststoreVersion": "The version of the S3 object that contains your truststore\\. To specify a version, you must have versioning enabled for the S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::Integration": { + "ApiId": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ConnectionId": "The ID of the VPC link for a private integration\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectionType": "The type of the network connection to the integration endpoint\\. Specify `INTERNET` for connections through the public routable internet or `VPC_LINK` for private connections between API Gateway and resources in a VPC\\. The default value is `INTERNET`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContentHandlingStrategy": "Supported only for WebSocket APIs\\. Specifies how to handle response payload content type conversions\\. Supported values are `CONVERT_TO_BINARY` and `CONVERT_TO_TEXT`, with the following behaviors: \n `CONVERT_TO_BINARY`: Converts a response payload from a Base64\\-encoded string to the corresponding binary blob\\. \n `CONVERT_TO_TEXT`: Converts a response payload from a binary blob to a Base64\\-encoded string\\. \nIf this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CredentialsArn": "Specifies the credentials required for the integration, if any\\. For AWS integrations, three options are available\\. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name \\(ARN\\)\\. To require that the caller's identity be passed through from the request, specify the string `arn:aws:iam::*:user/*`\\. To use resource\\-based permissions on supported AWS services, don't specify this parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the integration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntegrationMethod": "Specifies the integration's HTTP method type\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntegrationSubtype": "Supported only for HTTP API `AWS_PROXY` integrations\\. Specifies the AWS service action to invoke\\. To learn more, see [Integration subtype reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntegrationType": "The integration type of an integration\\. One of the following: \n `AWS`: for integrating the route or method request with an AWS service action, including the Lambda function\\-invoking action\\. With the Lambda function\\-invoking action, this is referred to as the Lambda custom integration\\. With any other AWS service action, this is known as AWS integration\\. Supported only for WebSocket APIs\\. \n `AWS_PROXY`: for integrating the route or method request with a Lambda function or other AWS service action\\. This integration is also referred to as a Lambda proxy integration\\. \n `HTTP`: for integrating the route or method request with an HTTP endpoint\\. This integration is also referred to as the HTTP custom integration\\. Supported only for WebSocket APIs\\. \n `HTTP_PROXY`: for integrating the route or method request with an HTTP endpoint, with the client request passed through as\\-is\\. This is also referred to as HTTP proxy integration\\. For HTTP API private integrations, use an `HTTP_PROXY` integration\\. \n `MOCK`: for integrating the route or method request with API Gateway as a \"loopback\" endpoint without invoking any backend\\. Supported only for WebSocket APIs\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntegrationUri": "For a Lambda integration, specify the URI of a Lambda function\\. \nFor an HTTP integration, specify a fully\\-qualified URL\\. \nFor an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service\\. If you specify the ARN of an AWS Cloud Map service, API Gateway uses `DiscoverInstances` to identify resources\\. You can use query parameters to target specific resources\\. To learn more, see [DiscoverInstances](https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html)\\. For private integrations, all resources must be owned by the same AWS account\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PassthroughBehavior": "Specifies the pass\\-through behavior for incoming requests based on the `Content-Type` header in the request, and the available mapping templates specified as the `requestTemplates` property on the `Integration` resource\\. There are three valid values: `WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, and `NEVER`\\. Supported only for WebSocket APIs\\. \n `WHEN_NO_MATCH` passes the request body for unmapped content types through to the integration backend without transformation\\. \n `NEVER` rejects unmapped content types with an `HTTP 415 Unsupported Media Type` response\\. \n `WHEN_NO_TEMPLATES` allows pass\\-through when the integration has no content types mapped to templates\\. However, if there is at least one content type defined, unmapped content types will be rejected with the same `HTTP 415 Unsupported Media Type` response\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PayloadFormatVersion": "Specifies the format of the payload sent to an integration\\. Required for HTTP APIs\\. For HTTP APIs, supported values for Lambda proxy integrations are `1.0` and `2.0`\\. For all other integrations, `1.0` is the only supported value\\. To learn more, see [Working with AWS Lambda proxy integrations for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html)\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequestParameters": "For WebSocket APIs, a key\\-value map specifying request parameters that are passed from the method request to the backend\\. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre\\-encoded as required by the backend\\. The method request parameter value must match the pattern of `method.request.{location}.{name} `, where ` {location} ` is `querystring`, `path`, or `header`; and ` {name} ` must be a valid and unique method request parameter name\\. \nFor HTTP API integrations with a specified `integrationSubtype`, request parameters are a key\\-value map specifying parameters that are passed to `AWS_PROXY` integrations\\. You can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime\\. To learn more, see [Working with AWS service integrations for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html)\\. \nFor HTTP API integrations without a specified `integrationSubtype` request parameters are a key\\-value map specifying how to transform HTTP requests before sending them to the backend\\. The key should follow the pattern :\\. where action can be `append`, `overwrite` or` remove`\\. For values, you can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime\\. To learn more, see [Transforming API requests and responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequestTemplates": "Represents a map of Velocity templates that are applied on the request payload based on the value of the Content\\-Type header sent by the client\\. The content type value is the key in this map, and the template \\(as a String\\) is the value\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResponseParameters": "Supported only for HTTP APIs\\. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients\\. Specify a key\\-value map from a selection key to response parameters\\. The selection key must be a valid HTTP status code within the range of 200\\-599\\. The value is of type [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-responseparameterlist.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-responseparameterlist.html)\\. To learn more, see [Transforming API requests and responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateSelectionExpression": "The template selection expression for the integration\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeoutInMillis": "Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs\\. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TlsConfig": "The TLS configuration for a private integration\\. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: [TlsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-tlsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::Integration ResponseParameter": { + "Destination": "Specifies the location of the response to modify, and how to modify it\\. To learn more, see [Transforming API requests and responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Source": "Specifies the data to update the parameter with\\. To learn more, see [Transforming API requests and responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::Integration ResponseParameterList": { + "ResponseParameters": "Supported only for HTTP APIs\\. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients\\. Specify a key\\-value map from a selection key to response parameters\\. The selection key must be a valid HTTP status code within the range of 200\\-599\\. Response parameters are a key\\-value map\\. The key must match the pattern `:
.` or `overwrite.statuscode`\\. The action can be `append`, `overwrite` or `remove`\\. The value can be a static value, or map to response data, stage variables, or context variables that are evaluated at runtime\\. To learn more, see [Transforming API requests and responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html)\\. \n*Required*: No \n*Type*: List of [ResponseParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-responseparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::Integration TlsConfig": { + "ServerNameToVerify": "If you specify a server name, API Gateway uses it to verify the hostname on the integration's certificate\\. The server name is also included in the TLS handshake to support Server Name Indication \\(SNI\\) or virtual hosting\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::IntegrationResponse": { + "ApiId": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContentHandlingStrategy": "Supported only for WebSocket APIs\\. Specifies how to handle response payload content type conversions\\. Supported values are `CONVERT_TO_BINARY` and `CONVERT_TO_TEXT`, with the following behaviors: \n `CONVERT_TO_BINARY`: Converts a response payload from a Base64\\-encoded string to the corresponding binary blob\\. \n `CONVERT_TO_TEXT`: Converts a response payload from a binary blob to a Base64\\-encoded string\\. \nIf this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntegrationId": "The integration ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntegrationResponseKey": "The integration response key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResponseParameters": "A key\\-value map specifying response parameters that are passed to the method response from the backend\\. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body\\. The mapping key must match the pattern of `method.response.header.{name} `, where name is a valid and unique header name\\. The mapped non\\-static value must match the pattern of `integration.response.header.{name} ` or `integration.response.body.{JSON-expression} `, where ` {name} ` is a valid and unique response header name and ` {JSON-expression} ` is a valid JSON expression without the `$` prefix\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResponseTemplates": "The collection of response templates for the integration response as a string\\-to\\-string map of key\\-value pairs\\. Response templates are represented as a key/value map, with a content\\-type as the key and a template as the value\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateSelectionExpression": "The template selection expression for the integration response\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::Model": { + "ApiId": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ContentType": "The content\\-type for the model, for example, \"application/json\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the model\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Schema": "The schema for the model\\. For application/json models, this should be JSON schema draft 4 model\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::Route": { + "ApiId": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ApiKeyRequired": "Specifies whether an API key is required for the route\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthorizationScopes": "The authorization scopes supported by this route\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthorizationType": "The authorization type for the route\\. For WebSocket APIs, valid values are `NONE` for open access, `AWS_IAM` for using AWS IAM permissions, and `CUSTOM` for using a Lambda authorizer\\. For HTTP APIs, valid values are `NONE` for open access, `JWT` for using JSON Web Tokens, `AWS_IAM` for using AWS IAM permissions, and `CUSTOM` for using a Lambda authorizer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthorizerId": "The identifier of the `Authorizer` resource to be associated with this route\\. The authorizer identifier is generated by API Gateway when you created the authorizer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ModelSelectionExpression": "The model selection expression for the route\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OperationName": "The operation name for the route\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequestModels": "The request models for the route\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequestParameters": "The request parameters for the route\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RouteKey": "The route key for the route\\. For HTTP APIs, the route key can be either `$default`, or a combination of an HTTP method and resource path, for example, `GET /pets`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RouteResponseSelectionExpression": "The route response selection expression for the route\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Target": "The target for the route\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::Route ParameterConstraints": { + "Required": "Specifies whether the parameter is required\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::RouteResponse": { + "ApiId": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ModelSelectionExpression": "The model selection expression for the route response\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResponseModels": "The response models for the route response\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResponseParameters": "The route response parameters\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RouteId": "The route ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RouteResponseKey": "The route response key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::RouteResponse ParameterConstraints": { + "Required": "Specifies whether the parameter is required\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::Stage": { + "AccessLogSettings": "Settings for logging access in this stage\\. \n*Required*: No \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-accesslogsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AccessPolicyId": "This parameter is not currently supported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ApiId": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AutoDeploy": "Specifies whether updates to an API automatically trigger a new deployment\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientCertificateId": "The identifier of a client certificate for a `Stage`\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultRouteSettings": "The default route settings for the stage\\. \n*Required*: No \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeploymentId": "The deployment identifier for the API stage\\. Can't be updated if `autoDeploy` is enabled\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description for the API stage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RouteSettings": "Route settings for the stage\\. \n*Required*: No \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StageName": "The stage name\\. Stage names can contain only alphanumeric characters, hyphens, and underscores, or be `$default`\\. Maximum length is 128 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StageVariables": "A map that defines the stage variables for a `Stage`\\. Variable names can have alphanumeric and underscore characters, and the values must match \\[A\\-Za\\-z0\\-9\\-\\.\\_\\~:/?\\#&=,\\]\\+\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The collection of tags\\. Each tag element is associated with a given resource\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::Stage AccessLogSettings": { + "DestinationArn": "The ARN of the CloudWatch Logs log group to receive access logs\\. This parameter is required to enable access logging\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Format": "A single line format of the access logs of data, as specified by selected $context variables\\. The format must include at least $context\\.requestId\\. This parameter is required to enable access logging\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::Stage RouteSettings": { + "DataTraceEnabled": "Specifies whether \\(`true`\\) or not \\(`false`\\) data trace logging is enabled for this route\\. This property affects the log entries pushed to Amazon CloudWatch Logs\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DetailedMetricsEnabled": "Specifies whether detailed metrics are enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoggingLevel": "Specifies the logging level for this route: `INFO`, `ERROR`, or `OFF`\\. This property affects the log entries pushed to Amazon CloudWatch Logs\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThrottlingBurstLimit": "Specifies the throttling burst limit\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThrottlingRateLimit": "Specifies the throttling rate limit\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApiGatewayV2::VpcLink": { + "Name": "The name of the VPC link\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroupIds": "A list of security group IDs for the VPC link\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetIds": "A list of subnet IDs to include in the VPC link\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The collection of tags\\. Each tag element is associated with a given resource\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppConfig::Application": { + "Description": "A description of the application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A name for the application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Metadata to assign to the application\\. Tags help organize and categorize your AWS AppConfig resources\\. Each tag consists of a key and an optional value, both of which you define\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-application-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-application-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppConfig::Application Tags": { + "Key": "The key\\-value string map\\. The valid character set is `[a-zA-Z+-=._:/]`\\. The tag key can be up to 128 characters and must not start with `aws:`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The tag value can be up to 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppConfig::ConfigurationProfile": { + "ApplicationId": "The application ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "A description of the configuration profile\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LocationUri": "A URI to locate the configuration\\. You can specify the AWS AppConfig hosted configuration store, Systems Manager \\(SSM\\) document, an SSM Parameter Store parameter, or an Amazon S3 object\\. For the hosted configuration store and for feature flags, specify `hosted`\\. For an SSM document, specify either the document name in the format `ssm-document://` or the Amazon Resource Name \\(ARN\\)\\. For a parameter, specify either the parameter name in the format `ssm-parameter://` or the ARN\\. For an Amazon S3 object, specify the URI in the following format: `s3:/// `\\. Here is an example: `s3://my-bucket/my-app/us-east-1/my-config.json` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "A name for the configuration profile\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetrievalRoleArn": "The ARN of an IAM role with permission to access the configuration at the specified `LocationUri`\\. \nA retrieval role ARN is not required for configurations stored in the AWS AppConfig hosted configuration store\\. It is required for all other sources that store your configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^((https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/arn.html):(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/iam.html)::\\d{12}:role[/].*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Metadata to assign to the configuration profile\\. Tags help organize and categorize your AWS AppConfig resources\\. Each tag consists of a key and an optional value, both of which you define\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-configurationprofile-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-configurationprofile-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of configurations contained in the profile\\. AWS AppConfig supports `feature flags` and `freeform` configurations\\. We recommend you create feature flag configurations to enable or disable new features and freeform configurations to distribute configurations to an application\\. When calling this API, enter one of the following values for `Type`: \n `AWS.AppConfig.FeatureFlags` \n `AWS.Freeform` \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z\\.]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Validators": "A list of methods for validating the configuration\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-configurationprofile-validators.html) of [Validators](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-configurationprofile-validators.html) \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppConfig::ConfigurationProfile Tags": { + "Key": "The key\\-value string map\\. The valid character set is `[a-zA-Z+-=._:/]`\\. The tag key can be up to 128 characters and must not start with `aws:`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The tag value can be up to 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppConfig::ConfigurationProfile Validators": { + "Content": "Either the JSON Schema content or the Amazon Resource Name \\(ARN\\) of an Lambda function\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `32768` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "AWS AppConfig supports validators of type `JSON_SCHEMA` and `LAMBDA` \n*Required*: No \n*Type*: String \n*Allowed values*: `JSON_SCHEMA | LAMBDA` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppConfig::Deployment": { + "ApplicationId": "The application ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ConfigurationProfileId": "The configuration profile ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ConfigurationVersion": "The configuration version to deploy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DeploymentStrategyId": "The deployment strategy ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "A description of the deployment\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EnvironmentId": "The environment ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Metadata to assign to the deployment\\. Tags help organize and categorize your AWS AppConfig resources\\. Each tag consists of a key and an optional value, both of which you define\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deployment-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deployment-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppConfig::Deployment Tags": { + "Key": "The key\\-value string map\\. The valid character set is `[a-zA-Z+-=._:/]`\\. The tag key can be up to 128 characters and must not start with `aws:`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The tag value can be up to 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppConfig::DeploymentStrategy": { + "DeploymentDurationInMinutes": "Total amount of time for a deployment to last\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `0` \n*Maximum*: `1440` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the deployment strategy\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FinalBakeTimeInMinutes": "The amount of time AWS AppConfig monitors for alarms before considering the deployment to be complete and no longer eligible for automatic roll back\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `0` \n*Maximum*: `1440` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GrowthFactor": "The percentage of targets to receive a deployed configuration during each interval\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GrowthType": "The algorithm used to define how percentage grows over time\\. AWS AppConfig supports the following growth types: \n **Linear**: For this type, AWS AppConfig processes the deployment by dividing the total number of targets by the value specified for `Step percentage`\\. For example, a linear deployment that uses a `Step percentage` of 10 deploys the configuration to 10 percent of the hosts\\. After those deployments are complete, the system deploys the configuration to the next 10 percent\\. This continues until 100% of the targets have successfully received the configuration\\. \n **Exponential**: For this type, AWS AppConfig processes the deployment exponentially using the following formula: `G*(2^N)`\\. In this formula, `G` is the growth factor specified by the user and `N` is the number of steps until the configuration is deployed to all targets\\. For example, if you specify a growth factor of 2, then the system rolls out the configuration as follows: \n `2*(2^0)` \n `2*(2^1)` \n `2*(2^2)` \nExpressed numerically, the deployment rolls out as follows: 2% of the targets, 4% of the targets, 8% of the targets, and continues until the configuration has been deployed to all targets\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `EXPONENTIAL | LINEAR` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A name for the deployment strategy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ReplicateTo": "Save the deployment strategy to a Systems Manager \\(SSM\\) document\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `NONE | SSM_DOCUMENT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Assigns metadata to an AWS AppConfig resource\\. Tags help organize and categorize your AWS AppConfig resources\\. Each tag consists of a key and an optional value, both of which you define\\. You can specify a maximum of 50 tags for a resource\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deploymentstrategy-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deploymentstrategy-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppConfig::DeploymentStrategy Tags": { + "Key": "The key\\-value string map\\. The valid character set is `[a-zA-Z+-=._:/]`\\. The tag key can be up to 128 characters and must not start with `aws:`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The tag value can be up to 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppConfig::Environment": { + "ApplicationId": "The application ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "A description of the environment\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Monitors": "Amazon CloudWatch alarms to monitor during the deployment process\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-environment-monitors.html) of [Monitors](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-environment-monitors.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A name for the environment\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Metadata to assign to the environment\\. Tags help organize and categorize your AWS AppConfig resources\\. Each tag consists of a key and an optional value, both of which you define\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-environment-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-environment-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppConfig::Environment Monitors": { + "AlarmArn": "Amazon Resource Name \\(ARN\\) of the Amazon CloudWatch alarm\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AlarmRoleArn": "ARN of an AWS Identity and Access Management \\(IAM\\) role for AWS AppConfig to monitor `AlarmArn`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^((https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/arn.html):(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/iam.html)::\\d{12}:role[/].*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppConfig::Environment Tags": { + "Key": "The key\\-value string map\\. The valid character set is `[a-zA-Z+-=._:/]`\\. The tag key can be up to 128 characters and must not start with `aws:`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The tag value can be up to 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppConfig::HostedConfigurationVersion": { + "ApplicationId": "The application ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ConfigurationProfileId": "The configuration profile ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Content": "The content of the configuration or the configuration data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ContentType": "A standard MIME type describing the format of the configuration content\\. For more information, see [Content\\-Type](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "A description of the configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LatestVersionNumber": "An optional locking token used to prevent race conditions from overwriting configuration updates when creating a new version\\. To ensure your data is not overwritten when creating multiple hosted configuration versions in rapid succession, specify the version number of the latest hosted configuration version\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppFlow::ConnectorProfile": { + "ConnectionMode": "Indicates the connection mode and if it is public or private\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Private | Public` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectorProfileConfig": "Defines the connector\\-specific configuration and credentials\\. \n*Required*: No \n*Type*: [ConnectorProfileConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectorProfileName": "The name of the connector profile\\. The name is unique for each `ConnectorProfile` in the AWS account\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `[\\w/!@#+=.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ConnectorType": "The type of connector, such as Salesforce, Amplitude, and so on\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Amplitude | CustomConnector | CustomerProfiles | Datadog | Dynatrace | EventBridge | Googleanalytics | Honeycode | Infornexus | LookoutMetrics | Marketo | Redshift | S3 | Salesforce | SAPOData | Servicenow | Singular | Slack | Snowflake | Trendmicro | Upsolver | Veeva | Zendesk` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KMSArn": "The ARN \\(Amazon Resource Name\\) of the Key Management Service \\(KMS\\) key you provide for encryption\\. This is required if you do not want to use the Amazon AppFlow\\-managed KMS key\\. If you don't provide anything here, Amazon AppFlow uses the Amazon AppFlow\\-managed KMS key\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:aws:kms:.*:[0-9]+:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppFlow::ConnectorProfile AmplitudeConnectorProfileCredentials": { + "ApiKey": "A unique alphanumeric identifier used to authenticate a user, developer, or calling program to your API\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretKey": "The Secret Access Key portion of the credentials\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile ConnectorOAuthRequest": { + "AuthCode": "The code provided by the connector when it has been authenticated via the connected app\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RedirectUri": "The URL to which the authentication server redirects the browser after authorization has been granted\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile ConnectorProfileConfig": { + "ConnectorProfileCredentials": "The connector\\-specific credentials required by each connector\\. \n*Required*: Yes \n*Type*: [ConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectorProfileProperties": "The connector\\-specific properties of the profile configuration\\. \n*Required*: No \n*Type*: [ConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile ConnectorProfileCredentials": { + "Amplitude": "The connector\\-specific credentials required when using Amplitude\\. \n*Required*: No \n*Type*: [AmplitudeConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-amplitudeconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Datadog": "The connector\\-specific credentials required when using Datadog\\. \n*Required*: No \n*Type*: [DatadogConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-datadogconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Dynatrace": "The connector\\-specific credentials required when using Dynatrace\\. \n*Required*: No \n*Type*: [DynatraceConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-dynatraceconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GoogleAnalytics": "The connector\\-specific credentials required when using Google Analytics\\. \n*Required*: No \n*Type*: [GoogleAnalyticsConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InforNexus": "The connector\\-specific credentials required when using Infor Nexus\\. \n*Required*: No \n*Type*: [InforNexusConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-infornexusconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Marketo": "The connector\\-specific credentials required when using Marketo\\. \n*Required*: No \n*Type*: [MarketoConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-marketoconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Redshift": "The connector\\-specific credentials required when using Amazon Redshift\\. \n*Required*: No \n*Type*: [RedshiftConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SAPOData": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [SAPODataConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Salesforce": "The connector\\-specific credentials required when using Salesforce\\. \n*Required*: No \n*Type*: [SalesforceConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceNow": "The connector\\-specific credentials required when using ServiceNow\\. \n*Required*: No \n*Type*: [ServiceNowConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-servicenowconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Singular": "The connector\\-specific credentials required when using Singular\\. \n*Required*: No \n*Type*: [SingularConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-singularconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Slack": "The connector\\-specific credentials required when using Slack\\. \n*Required*: No \n*Type*: [SlackConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-slackconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Snowflake": "The connector\\-specific credentials required when using Snowflake\\. \n*Required*: No \n*Type*: [SnowflakeConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Trendmicro": "The connector\\-specific credentials required when using Trend Micro\\. \n*Required*: No \n*Type*: [TrendmicroConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-trendmicroconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Veeva": "The connector\\-specific credentials required when using Veeva\\. \n*Required*: No \n*Type*: [VeevaConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-veevaconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Zendesk": "The connector\\-specific credentials required when using Zendesk\\. \n*Required*: No \n*Type*: [ZendeskConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-zendeskconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile ConnectorProfileProperties": { + "Datadog": "The connector\\-specific properties required by Datadog\\. \n*Required*: No \n*Type*: [DatadogConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-datadogconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Dynatrace": "The connector\\-specific properties required by Dynatrace\\. \n*Required*: No \n*Type*: [DynatraceConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-dynatraceconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InforNexus": "The connector\\-specific properties required by Infor Nexus\\. \n*Required*: No \n*Type*: [InforNexusConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-infornexusconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Marketo": "The connector\\-specific properties required by Marketo\\. \n*Required*: No \n*Type*: [MarketoConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-marketoconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Redshift": "The connector\\-specific properties required by Amazon Redshift\\. \n*Required*: No \n*Type*: [RedshiftConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SAPOData": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [SAPODataConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Salesforce": "The connector\\-specific properties required by Salesforce\\. \n*Required*: No \n*Type*: [SalesforceConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceNow": "The connector\\-specific properties required by serviceNow\\. \n*Required*: No \n*Type*: [ServiceNowConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-servicenowconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Slack": "The connector\\-specific properties required by Slack\\. \n*Required*: No \n*Type*: [SlackConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-slackconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Snowflake": "The connector\\-specific properties required by Snowflake\\. \n*Required*: No \n*Type*: [SnowflakeConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Veeva": "The connector\\-specific properties required by Veeva\\. \n*Required*: No \n*Type*: [VeevaConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-veevaconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Zendesk": "The connector\\-specific properties required by Zendesk\\. \n*Required*: No \n*Type*: [ZendeskConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-zendeskconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile DatadogConnectorProfileCredentials": { + "ApiKey": "A unique alphanumeric identifier used to authenticate a user, developer, or calling program to your API\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ApplicationKey": "Application keys, in conjunction with your API key, give you full access to Datadog\u2019s programmatic API\\. Application keys are associated with the user account that created them\\. The application key is used to log all requests made to the API\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile DatadogConnectorProfileProperties": { + "InstanceUrl": "The location of the Datadog resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile DynatraceConnectorProfileCredentials": { + "ApiToken": "The API tokens used by Dynatrace API to authenticate various API calls\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile DynatraceConnectorProfileProperties": { + "InstanceUrl": "The location of the Dynatrace resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile GoogleAnalyticsConnectorProfileCredentials": { + "AccessToken": "The credentials used to access protected Google Analytics resources\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientId": "The identifier for the desired client\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientSecret": "The client secret used by the OAuth client to authenticate to the authorization server\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectorOAuthRequest": "Used by select connectors for which the OAuth workflow is supported, such as Salesforce, Google Analytics, Marketo, Zendesk, and Slack\\. \n*Required*: No \n*Type*: [ConnectorOAuthRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectoroauthrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RefreshToken": "The credentials used to acquire new access tokens\\. This is required only for OAuth2 access tokens, and is not required for OAuth1 access tokens\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile InforNexusConnectorProfileCredentials": { + "AccessKeyId": "The Access Key portion of the credentials\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Datakey": "The encryption keys used to encrypt data\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretAccessKey": "The secret key used to sign requests\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserId": "The identifier for the user\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile InforNexusConnectorProfileProperties": { + "InstanceUrl": "The location of the Infor Nexus resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile MarketoConnectorProfileCredentials": { + "AccessToken": "The credentials used to access protected Marketo resources\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientId": "The identifier for the desired client\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientSecret": "The client secret used by the OAuth client to authenticate to the authorization server\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectorOAuthRequest": "Used by select connectors for which the OAuth workflow is supported, such as Salesforce, Google Analytics, Marketo, Zendesk, and Slack\\. \n*Required*: No \n*Type*: [ConnectorOAuthRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectoroauthrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile MarketoConnectorProfileProperties": { + "InstanceUrl": "The location of the Marketo resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile OAuthProperties": { + "AuthCodeUrl": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OAuthScopes": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TokenUrl": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile RedshiftConnectorProfileCredentials": { + "Password": "The password that corresponds to the user name\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Username": "The name of the user\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile RedshiftConnectorProfileProperties": { + "BucketName": "A name for the associated Amazon S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BucketPrefix": "The object key for the destination bucket in which Amazon AppFlow places the files\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseUrl": "The JDBC URL of the Amazon Redshift cluster\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM role\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `arn:aws:iam:.*:[0-9]+:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile SAPODataConnectorProfileCredentials": { + "BasicAuthCredentials": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OAuthCredentials": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile SAPODataConnectorProfileProperties": { + "ApplicationHostUrl": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ApplicationServicePath": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientNumber": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogonLanguage": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OAuthProperties": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [OAuthProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauthproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PortNumber": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrivateLinkServiceName": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile SalesforceConnectorProfileCredentials": { + "AccessToken": "The credentials used to access protected Salesforce resources\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientCredentialsArn": "The secret manager ARN, which contains the client ID and client secret of the connected app\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:aws:secretsmanager:.*:[0-9]+:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectorOAuthRequest": "Used by select connectors for which the OAuth workflow is supported, such as Salesforce, Google Analytics, Marketo, Zendesk, and Slack\\. \n*Required*: No \n*Type*: [ConnectorOAuthRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectoroauthrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RefreshToken": "The credentials used to acquire new access tokens\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile SalesforceConnectorProfileProperties": { + "InstanceUrl": "The location of the Salesforce resource\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "isSandboxEnvironment": "Indicates whether the connector profile applies to a sandbox or production environment\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile ServiceNowConnectorProfileCredentials": { + "Password": "The password that corresponds to the user name\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Username": "The name of the user\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile ServiceNowConnectorProfileProperties": { + "InstanceUrl": "The location of the ServiceNow resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile SingularConnectorProfileCredentials": { + "ApiKey": "A unique alphanumeric identifier used to authenticate a user, developer, or calling program to your API\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile SlackConnectorProfileCredentials": { + "AccessToken": "The credentials used to access protected Slack resources\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientId": "The identifier for the client\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientSecret": "The client secret used by the OAuth client to authenticate to the authorization server\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectorOAuthRequest": "Used by select connectors for which the OAuth workflow is supported, such as Salesforce, Google Analytics, Marketo, Zendesk, and Slack\\. \n*Required*: No \n*Type*: [ConnectorOAuthRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectoroauthrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile SlackConnectorProfileProperties": { + "InstanceUrl": "The location of the Slack resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile SnowflakeConnectorProfileCredentials": { + "Password": "The password that corresponds to the user name\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Username": "The name of the user\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile SnowflakeConnectorProfileProperties": { + "AccountName": "The name of the account\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BucketName": "The name of the Amazon S3 bucket associated with Snowflake\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BucketPrefix": "The bucket path that refers to the Amazon S3 bucket associated with Snowflake\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrivateLinkServiceName": "The Snowflake Private Link service name to be used for private data transfers\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `^$|com.amazonaws.vpce.[\\w/!:@#.\\-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Region": "The AWS Region of the Snowflake account\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Stage": "The name of the Amazon S3 stage that was created while setting up an Amazon S3 stage in the Snowflake account\\. This is written in the following format: < Database>< Schema>\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Warehouse": "The name of the Snowflake warehouse\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[\\s\\w/!@#+=.-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile TrendmicroConnectorProfileCredentials": { + "ApiSecretKey": "The Secret Access Key portion of the credentials\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile VeevaConnectorProfileCredentials": { + "Password": "The password that corresponds to the user name\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Username": "The name of the user\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile VeevaConnectorProfileProperties": { + "InstanceUrl": "The location of the Veeva resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile ZendeskConnectorProfileCredentials": { + "AccessToken": "The credentials used to access protected Zendesk resources\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientId": "The identifier for the desired client\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientSecret": "The client secret used by the OAuth client to authenticate to the authorization server\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectorOAuthRequest": "Used by select connectors for which the OAuth workflow is supported, such as Salesforce, Google Analytics, Marketo, Zendesk, and Slack\\. \n*Required*: No \n*Type*: [ConnectorOAuthRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectoroauthrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::ConnectorProfile ZendeskConnectorProfileProperties": { + "InstanceUrl": "The location of the Zendesk resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow": { + "Description": "A user\\-entered description of the flow\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `[\\w!@#\\-.?,\\s]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationFlowConfigList": "The configuration that controls how Amazon AppFlow places data in the destination connector\\. \n*Required*: Yes \n*Type*: List of [DestinationFlowConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationflowconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FlowName": "The specified name of the flow\\. Spaces are not allowed\\. Use underscores \\(\\_\\) or hyphens \\(\\-\\) only\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z0-9][\\w!@#.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KMSArn": "The ARN \\(Amazon Resource Name\\) of the Key Management Service \\(KMS\\) key you provide for encryption\\. This is required if you do not want to use the Amazon AppFlow\\-managed KMS key\\. If you don't provide anything here, Amazon AppFlow uses the Amazon AppFlow\\-managed KMS key\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:aws:kms:.*:[0-9]+:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceFlowConfig": "Contains information about the configuration of the source connector used in the flow\\. \n*Required*: Yes \n*Type*: [SourceFlowConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceflowconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags used to organize, track, or control access for your flow\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tasks": "A list of tasks that Amazon AppFlow performs while transferring the data in the flow run\\. \n*Required*: Yes \n*Type*: List of [Task](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-task.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TriggerConfig": "The trigger settings that determine how and when Amazon AppFlow runs the specified flow\\. \n*Required*: Yes \n*Type*: [TriggerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-triggerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow AggregationConfig": { + "AggregationType": "Specifies whether Amazon AppFlow aggregates the flow records into a single file, or leave them unaggregated\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `None | SingleFile` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow AmplitudeSourceProperties": { + "Object": "The object specified in the Amplitude flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow ConnectorOperator": { + "Amplitude": "The operation to be performed on the provided Amplitude source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BETWEEN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Datadog": "The operation to be performed on the provided Datadog source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | DIVISION | EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Dynatrace": "The operation to be performed on the provided Dynatrace source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | DIVISION | EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GoogleAnalytics": "The operation to be performed on the provided Google Analytics source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BETWEEN | PROJECTION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InforNexus": "The operation to be performed on the provided Infor Nexus source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | DIVISION | EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Marketo": "The operation to be performed on the provided Marketo source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | DIVISION | GREATER_THAN | LESS_THAN | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3": "The operation to be performed on the provided Amazon S3 source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | DIVISION | EQUAL_TO | GREATER_THAN | GREATER_THAN_OR_EQUAL_TO | LESS_THAN | LESS_THAN_OR_EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | NOT_EQUAL_TO | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SAPOData": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Salesforce": "The operation to be performed on the provided Salesforce source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | CONTAINS | DIVISION | EQUAL_TO | GREATER_THAN | GREATER_THAN_OR_EQUAL_TO | LESS_THAN | LESS_THAN_OR_EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | NOT_EQUAL_TO | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceNow": "The operation to be performed on the provided ServiceNow source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | CONTAINS | DIVISION | EQUAL_TO | GREATER_THAN | GREATER_THAN_OR_EQUAL_TO | LESS_THAN | LESS_THAN_OR_EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | NOT_EQUAL_TO | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Singular": "The operation to be performed on the provided Singular source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | DIVISION | EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Slack": "The operation to be performed on the provided Slack source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | DIVISION | EQUAL_TO | GREATER_THAN | GREATER_THAN_OR_EQUAL_TO | LESS_THAN | LESS_THAN_OR_EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Trendmicro": "The operation to be performed on the provided Trend Micro source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | DIVISION | EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Veeva": "The operation to be performed on the provided Veeva source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | CONTAINS | DIVISION | EQUAL_TO | GREATER_THAN | GREATER_THAN_OR_EQUAL_TO | LESS_THAN | LESS_THAN_OR_EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | NOT_EQUAL_TO | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Zendesk": "The operation to be performed on the provided Zendesk source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | DIVISION | GREATER_THAN | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow DatadogSourceProperties": { + "Object": "The object specified in the Datadog flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow DestinationConnectorProperties": { + "EventBridge": "The properties required to query Amazon EventBridge\\. \n*Required*: No \n*Type*: [EventBridgeDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-eventbridgedestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LookoutMetrics": "The properties required to query Amazon Lookout for Metrics\\. \n*Required*: No \n*Type*: [LookoutMetricsDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-lookoutmetricsdestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Marketo": "The properties required to query Marketo\\. \n*Required*: No \n*Type*: [MarketoDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-marketodestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Redshift": "The properties required to query Amazon Redshift\\. \n*Required*: No \n*Type*: [RedshiftDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-redshiftdestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3": "The properties required to query Amazon S3\\. \n*Required*: No \n*Type*: [S3DestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3destinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SAPOData": "The properties required to query SAPOData\\. \n*Required*: No \n*Type*: [SAPODataDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodatadestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Salesforce": "The properties required to query Salesforce\\. \n*Required*: No \n*Type*: [SalesforceDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcedestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Snowflake": "The properties required to query Snowflake\\. \n*Required*: No \n*Type*: [SnowflakeDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-snowflakedestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Upsolver": "The properties required to query Upsolver\\. \n*Required*: No \n*Type*: [UpsolverDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-upsolverdestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Zendesk": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ZendeskDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-zendeskdestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow DestinationFlowConfig": { + "ConnectorProfileName": "The name of the connector profile\\. This name must be unique for each connector profile in the AWS account\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `[\\w/!@#+=.-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectorType": "The type of destination connector, such as Sales force, Amazon S3, and so on\\. \n*Allowed Values*: `EventBridge | Redshift | S3 | Salesforce | Snowflake` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationConnectorProperties": "This stores the information that is required to query a particular connector\\. \n*Required*: Yes \n*Type*: [DestinationConnectorProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow DynatraceSourceProperties": { + "Object": "The object specified in the Dynatrace flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow ErrorHandlingConfig": { + "BucketName": "Specifies the name of the Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BucketPrefix": "Specifies the Amazon S3 bucket prefix\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FailOnFirstError": "Specifies if the flow should fail after the first instance of a failure when attempting to place data in the destination\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow EventBridgeDestinationProperties": { + "ErrorHandlingConfig": "The object specified in the Amplitude flow source\\. \n*Required*: No \n*Type*: [ErrorHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html) \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Object": "The object specified in the Amazon EventBridge flow destination\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow GoogleAnalyticsSourceProperties": { + "Object": "The object specified in the Google Analytics flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow IncrementalPullConfig": { + "DatetimeTypeFieldName": "A field that specifies the date time or timestamp field as the criteria to use when importing incremental records from the source\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow InforNexusSourceProperties": { + "Object": "The object specified in the Infor Nexus flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow LookoutMetricsDestinationProperties": { + "Object": "The object specified in the Amazon Lookout for Metrics flow destination\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow MarketoDestinationProperties": { + "ErrorHandlingConfig": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ErrorHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Object": "The object specified in the Marketo flow destination\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow MarketoSourceProperties": { + "Object": "The object specified in the Marketo flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow PrefixConfig": { + "PrefixFormat": "Determines the level of granularity that's included in the prefix\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DAY | HOUR | MINUTE | MONTH | YEAR` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrefixType": "Determines the format of the prefix, and whether it applies to the file name, file path, or both\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `FILENAME | PATH | PATH_AND_FILENAME` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow RedshiftDestinationProperties": { + "BucketPrefix": "The object key for the bucket in which Amazon AppFlow places the destination files\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ErrorHandlingConfig": "The settings that determine how Amazon AppFlow handles an error when placing data in the Amazon Redshift destination\\. For example, this setting would determine if the flow should fail after one insertion error, or continue and attempt to insert every record regardless of the initial failure\\. `ErrorHandlingConfig` is a part of the destination connector details\\. \n*Required*: No \n*Type*: [ErrorHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntermediateBucketName": "The intermediate bucket that Amazon AppFlow uses when moving data into Amazon Redshift\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Object": "The object specified in the Amazon Redshift flow destination\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow S3DestinationProperties": { + "BucketName": "The Amazon S3 bucket name in which Amazon AppFlow places the transferred data\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BucketPrefix": "The object key for the destination bucket in which Amazon AppFlow places the files\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3OutputFormatConfig": "The configuration that determines how Amazon AppFlow should format the flow output data when Amazon S3 is used as the destination\\. \n*Required*: No \n*Type*: [S3OutputFormatConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3outputformatconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow S3InputFormatConfig": { + "S3InputFileType": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow S3OutputFormatConfig": { + "AggregationConfig": "The aggregation settings that you can use to customize the output format of your flow data\\. \n*Required*: No \n*Type*: [AggregationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-aggregationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FileType": "Indicates the file type that Amazon AppFlow places in the Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CSV | JSON | PARQUET` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrefixConfig": "Determines the prefix that Amazon AppFlow applies to the folder name in the Amazon S3 bucket\\. You can name folders according to the flow frequency and date\\. \n*Required*: No \n*Type*: [PrefixConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-prefixconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow S3SourceProperties": { + "BucketName": "The Amazon S3 bucket name where the source files are stored\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BucketPrefix": "The object key for the Amazon S3 bucket in which the source files are stored\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3InputFormatConfig": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [S3InputFormatConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3inputformatconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow SAPODataDestinationProperties": { + "ErrorHandlingConfig": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ErrorHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IdFieldNames": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ObjectPath": "The object path specified in the SAPOData flow destination\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SuccessResponseHandlingConfig": "Determines how Amazon AppFlow handles the success response that it gets from the connector after placing data\\. \nFor example, this setting would determine where to write the response from a destination connector upon a successful insert operation\\. \n*Required*: No \n*Type*: [SuccessResponseHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-successresponsehandlingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WriteOperationType": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow SAPODataSourceProperties": { + "ObjectPath": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow SalesforceDestinationProperties": { + "ErrorHandlingConfig": "The settings that determine how Amazon AppFlow handles an error when placing data in the Salesforce destination\\. For example, this setting would determine if the flow should fail after one insertion error, or continue and attempt to insert every record regardless of the initial failure\\. `ErrorHandlingConfig` is a part of the destination connector details\\. \n*Required*: No \n*Type*: [ErrorHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IdFieldNames": "The name of the field that Amazon AppFlow uses as an ID when performing a write operation such as update or delete\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Object": "The object specified in the Salesforce flow destination\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WriteOperationType": "This specifies the type of write operation to be performed in Salesforce\\. When the value is `UPSERT`, then `idFieldNames` is required\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DELETE | INSERT | UPDATE | UPSERT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow SalesforceSourceProperties": { + "EnableDynamicFieldUpdate": "The flag that enables dynamic fetching of new \\(recently added\\) fields in the Salesforce objects while running a flow\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeDeletedRecords": "Indicates whether Amazon AppFlow includes deleted files in the flow run\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Object": "The object specified in the Salesforce flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow ScheduledTriggerProperties": { + "DataPullMode": "Specifies whether a scheduled flow has an incremental data transfer or a complete data transfer for each flow run\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Complete | Incremental` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduleEndTime": "Specifies the scheduled end time for a schedule\\-triggered flow\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduleExpression": "The scheduling expression that determines the rate at which the scheduled flow will run, for example: `rate(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/5minutes.html)`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduleOffset": "Specifies the optional offset that is added to the time interval for a schedule\\-triggered flow\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduleStartTime": "Specifies the scheduled start time for a schedule\\-triggered flow\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeZone": "Specifies the time zone used when referring to the date and time of a scheduled\\-triggered flow, such as `America/New_York`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow ServiceNowSourceProperties": { + "Object": "The object specified in the ServiceNow flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow SingularSourceProperties": { + "Object": "The object specified in the Singular flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow SlackSourceProperties": { + "Object": "The object specified in the Slack flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow SnowflakeDestinationProperties": { + "BucketPrefix": "The object key for the destination bucket in which Amazon AppFlow places the files\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ErrorHandlingConfig": "The settings that determine how Amazon AppFlow handles an error when placing data in the Snowflake destination\\. For example, this setting would determine if the flow should fail after one insertion error, or continue and attempt to insert every record regardless of the initial failure\\. `ErrorHandlingConfig` is a part of the destination connector details\\. \n*Required*: No \n*Type*: [ErrorHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntermediateBucketName": "The intermediate bucket that Amazon AppFlow uses when moving data into Snowflake\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Object": "The object specified in the Snowflake flow destination\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow SourceConnectorProperties": { + "Amplitude": "Specifies the information that is required for querying Amplitude\\. \n*Required*: No \n*Type*: [AmplitudeSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-amplitudesourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Datadog": "Specifies the information that is required for querying Datadog\\. \n*Required*: No \n*Type*: [DatadogSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-datadogsourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Dynatrace": "Specifies the information that is required for querying Dynatrace\\. \n*Required*: No \n*Type*: [DynatraceSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-dynatracesourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GoogleAnalytics": "Specifies the information that is required for querying Google Analytics\\. \n*Required*: No \n*Type*: [GoogleAnalyticsSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-googleanalyticssourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InforNexus": "Specifies the information that is required for querying Infor Nexus\\. \n*Required*: No \n*Type*: [InforNexusSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-infornexussourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Marketo": "Specifies the information that is required for querying Marketo\\. \n*Required*: No \n*Type*: [MarketoSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-marketosourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3": "Specifies the information that is required for querying Amazon S3\\. \n*Required*: No \n*Type*: [S3SourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3sourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SAPOData": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [SAPODataSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodatasourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Salesforce": "Specifies the information that is required for querying Salesforce\\. \n*Required*: No \n*Type*: [SalesforceSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcesourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceNow": "Specifies the information that is required for querying ServiceNow\\. \n*Required*: No \n*Type*: [ServiceNowSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-servicenowsourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Singular": "Specifies the information that is required for querying Singular\\. \n*Required*: No \n*Type*: [SingularSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-singularsourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Slack": "Specifies the information that is required for querying Slack\\. \n*Required*: No \n*Type*: [SlackSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-slacksourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Trendmicro": "Specifies the information that is required for querying Trend Micro\\. \n*Required*: No \n*Type*: [TrendmicroSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-trendmicrosourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Veeva": "Specifies the information that is required for querying Veeva\\. \n*Required*: No \n*Type*: [VeevaSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-veevasourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Zendesk": "Specifies the information that is required for querying Zendesk\\. \n*Required*: No \n*Type*: [ZendeskSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-zendesksourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow SourceFlowConfig": { + "ConnectorProfileName": "The name of the connector profile\\. This name must be unique for each connector profile in the AWS account\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `[\\w/!@#+=.-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectorType": "The type of source connector, such as Salesforce, Amplitude, and so on\\. \n*Allowed Values*: S3 \\| Amplitude \\| Datadog \\| Dynatrace \\| Googleanalytics \\| Infornexus \\| Salesforce \\| Servicenow \\| Singular \\| Slack \\| Trendmicro \\| Veeva \\| Zendesk \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncrementalPullConfig": "Defines the configuration for a scheduled incremental data pull\\. If a valid configuration is provided, the fields specified in the configuration are used when querying for the incremental data pull\\. \n*Required*: No \n*Type*: [IncrementalPullConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-incrementalpullconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceConnectorProperties": "Specifies the information that is required to query a particular source connector\\. \n*Required*: Yes \n*Type*: [SourceConnectorProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow SuccessResponseHandlingConfig": { + "BucketName": "The name of the Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BucketPrefix": "The Amazon S3 bucket prefix\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow Task": { + "ConnectorOperator": "The operation to be performed on the provided source fields\\. \n*Required*: No \n*Type*: [ConnectorOperator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationField": "A field in a destination connector, or a field value against which Amazon AppFlow validates a source field\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceFields": "The source fields to which a particular task is applied\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TaskProperties": "A map used to store task\\-related information\\. The execution service looks for particular information based on the `TaskType`\\. \n*Required*: No \n*Type*: List of [TaskPropertiesObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-taskpropertiesobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TaskType": "Specifies the particular task implementation that Amazon AppFlow performs\\. \n*Allowed values*: `Arithmetic` \\| `Filter` \\| `Map` \\| `Map_all` \\| `Mask` \\| `Merge` \\| `Truncate` \\| `Validate` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow TaskPropertiesObject": { + "Key": "The task property key\\. \n*Allowed Values*: `VALUE | VALUES | DATA_TYPE | UPPER_BOUND | LOWER_BOUND | SOURCE_DATA_TYPE | DESTINATION_DATA_TYPE | VALIDATION_ACTION | MASK_VALUE | MASK_LENGTH | TRUNCATE_LENGTH | MATH_OPERATION_FIELDS_ORDER | CONCAT_FORMAT | SUBFIELD_CATEGORY_MAP` \\| `EXCLUDE_SOURCE_FIELDS_LIST` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The task property value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow TrendmicroSourceProperties": { + "Object": "The object specified in the Trend Micro flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow TriggerConfig": { + "TriggerProperties": "Specifies the configuration details of a schedule\\-triggered flow as defined by the user\\. Currently, these settings only apply to the `Scheduled` trigger type\\. \n*Required*: No \n*Type*: [ScheduledTriggerProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-scheduledtriggerproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TriggerType": "Specifies the type of flow trigger\\. This can be `OnDemand`, `Scheduled`, or `Event`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Event | OnDemand | Scheduled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow UpsolverDestinationProperties": { + "BucketName": "The Upsolver Amazon S3 bucket name in which Amazon AppFlow places the transferred data\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `16` \n*Maximum*: `63` \n*Pattern*: `^(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/upsolver-appflow.html)\\S*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BucketPrefix": "The object key for the destination Upsolver Amazon S3 bucket in which Amazon AppFlow places the files\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3OutputFormatConfig": "The configuration that determines how data is formatted when Upsolver is used as the flow destination\\. \n*Required*: Yes \n*Type*: [UpsolverS3OutputFormatConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-upsolvers3outputformatconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow UpsolverS3OutputFormatConfig": { + "AggregationConfig": "The aggregation settings that you can use to customize the output format of your flow data\\. \n*Required*: No \n*Type*: [AggregationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-aggregationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FileType": "Indicates the file type that Amazon AppFlow places in the Upsolver Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CSV | JSON | PARQUET` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrefixConfig": "Determines the prefix that Amazon AppFlow applies to the destination folder name\\. You can name your destination folders according to the flow frequency and date\\. \n*Required*: Yes \n*Type*: [PrefixConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-prefixconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow VeevaSourceProperties": { + "DocumentType": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeAllVersions": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeRenditions": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeSourceFiles": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Object": "The object specified in the Veeva flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow ZendeskDestinationProperties": { + "ErrorHandlingConfig": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ErrorHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IdFieldNames": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Object": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WriteOperationType": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppFlow::Flow ZendeskSourceProperties": { + "Object": "The object specified in the Zendesk flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppIntegrations::DataIntegration": { + "Description": "A description of the DataIntegration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKey": "The KMS key for the DataIntegration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the DataIntegration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduleConfig": "The name of the data and how often it should be pulled from the source\\. \n*Required*: Yes \n*Type*: [ScheduleConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-dataintegration-scheduleconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceURI": "The URI of the data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppIntegrations::DataIntegration ScheduleConfig": { + "FirstExecutionFrom": "The start date for objects to import in the first flow run as an Unix/epoch timestamp in milliseconds or in ISO\\-8601 format\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Object": "The name of the object to pull from the data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ScheduleExpression": "How often the data should be pulled from data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppIntegrations::EventIntegration": { + "Description": "The event integration description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventBridgeBus": "The Amazon EventBridge bus for the event integration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EventFilter": "The event integration filter\\. \n*Required*: Yes \n*Type*: [EventFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-eventintegration-eventfilter.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the event integration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppIntegrations::EventIntegration EventFilter": { + "Source": "The source of the events\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppIntegrations::EventIntegration EventIntegrationAssociation": { + "ClientAssociationMetadata": "The metadata associated with the client\\. \n*Required*: No \n*Type*: List of [Metadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-eventintegration-metadata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientId": "The identifier for the client that is associated with the event integration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventBridgeRuleName": "The name of the EventBridge rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventIntegrationAssociationArn": "The Amazon Resource Name \\(ARN\\) for the event integration association\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventIntegrationAssociationId": "The identifier for the event integration association\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppIntegrations::EventIntegration Metadata": { + "Key": "The key name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute": { + "GatewayRouteName": "The name of the gateway route\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MeshName": "The name of the service mesh that the resource resides in\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MeshOwner": "The AWS IAM account ID of the service mesh owner\\. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account\\. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Spec": "The specifications of the gateway route\\. \n*Required*: Yes \n*Type*: [GatewayRouteSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutespec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Optional metadata that you can apply to the gateway route to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VirtualGatewayName": "The virtual gateway that the gateway route is associated with\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppMesh::GatewayRoute GatewayRouteHostnameMatch": { + "Exact": "The exact host name to match on\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `253` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Suffix": "The specified ending characters of the host name to match on\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `253` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute GatewayRouteHostnameRewrite": { + "DefaultTargetHostname": "The default target host name to write to\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute GatewayRouteMetadataMatch": { + "Exact": "The exact method header to be matched on\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "The specified beginning characters of the method header to be matched on\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Range": "An object that represents the range of values to match on\\. \n*Required*: No \n*Type*: [GatewayRouteRangeMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayrouterangematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Regex": "The regex used to match the method header\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Suffix": "The specified ending characters of the method header to match on\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute GatewayRouteRangeMatch": { + "End": "The end of the range\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Start": "The start of the range\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute GatewayRouteSpec": { + "GrpcRoute": "An object that represents the specification of a gRPC gateway route\\. \n*Required*: No \n*Type*: [GrpcGatewayRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Http2Route": "An object that represents the specification of an HTTP/2 gateway route\\. \n*Required*: No \n*Type*: [HttpGatewayRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HttpRoute": "An object that represents the specification of an HTTP gateway route\\. \n*Required*: No \n*Type*: [HttpGatewayRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Priority": "The ordering of the gateway routes spec\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute GatewayRouteTarget": { + "VirtualService": "An object that represents a virtual service gateway route target\\. \n*Required*: Yes \n*Type*: [GatewayRouteVirtualService](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutevirtualservice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute GatewayRouteVirtualService": { + "VirtualServiceName": "The name of the virtual service that traffic is routed to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute GrpcGatewayRoute": { + "Action": "An object that represents the action to take if a match is determined\\. \n*Required*: Yes \n*Type*: [GrpcGatewayRouteAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayrouteaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Match": "An object that represents the criteria for determining a request match\\. \n*Required*: Yes \n*Type*: [GrpcGatewayRouteMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroutematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute GrpcGatewayRouteAction": { + "Rewrite": "The gateway route action to rewrite\\. \n*Required*: No \n*Type*: [GrpcGatewayRouteRewrite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayrouterewrite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Target": "An object that represents the target that traffic is routed to when a request matches the gateway route\\. \n*Required*: Yes \n*Type*: [GatewayRouteTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutetarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute GrpcGatewayRouteMatch": { + "Hostname": "The gateway route host name to be matched on\\. \n*Required*: No \n*Type*: [GatewayRouteHostnameMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutehostnamematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Metadata": "The gateway route metadata to be matched on\\. \n*Required*: No \n*Type*: List of [GrpcGatewayRouteMetadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroutemetadata.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceName": "The fully qualified domain name for the service to match from the request\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute GrpcGatewayRouteMetadata": { + "Invert": "Specify `True` to match anything except the match criteria\\. The default value is `False`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Match": "The criteria for determining a metadata match\\. \n*Required*: No \n*Type*: [GatewayRouteMetadataMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutemetadatamatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A name for the gateway route metadata\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute GrpcGatewayRouteRewrite": { + "Hostname": "The host name of the gateway route to rewrite\\. \n*Required*: No \n*Type*: [GatewayRouteHostnameRewrite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutehostnamerewrite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute HttpGatewayRoute": { + "Action": "An object that represents the action to take if a match is determined\\. \n*Required*: Yes \n*Type*: [HttpGatewayRouteAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Match": "An object that represents the criteria for determining a request match\\. \n*Required*: Yes \n*Type*: [HttpGatewayRouteMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroutematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute HttpGatewayRouteAction": { + "Rewrite": "The gateway route action to rewrite\\. \n*Required*: No \n*Type*: [HttpGatewayRouteRewrite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouterewrite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Target": "An object that represents the target that traffic is routed to when a request matches the gateway route\\. \n*Required*: Yes \n*Type*: [GatewayRouteTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutetarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute HttpGatewayRouteHeader": { + "Invert": "Specify `True` to match anything except the match criteria\\. The default value is `False`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Match": "An object that represents the method and value to match with the header value sent in a request\\. Specify one match method\\. \n*Required*: No \n*Type*: [HttpGatewayRouteHeaderMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteheadermatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A name for the HTTP header in the gateway route that will be matched on\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute HttpGatewayRouteHeaderMatch": { + "Exact": "The value sent by the client must match the specified value exactly\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "The value sent by the client must begin with the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Range": "An object that represents the range of values to match on\\. \n*Required*: No \n*Type*: [GatewayRouteRangeMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayrouterangematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Regex": "The value sent by the client must include the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Suffix": "The value sent by the client must end with the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute HttpGatewayRouteMatch": { + "Headers": "The client request headers to match on\\. \n*Required*: No \n*Type*: List of [HttpGatewayRouteHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteheader.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Hostname": "The host name to match on\\. \n*Required*: No \n*Type*: [GatewayRouteHostnameMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutehostnamematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Method": "The method to match on\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CONNECT | DELETE | GET | HEAD | OPTIONS | PATCH | POST | PUT | TRACE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Path": "The path to match on\\. \n*Required*: No \n*Type*: [HttpPathMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httppathmatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "Specifies the path to match requests with\\. This parameter must always start with `/`, which by itself matches all requests to the virtual service name\\. You can also match for path\\-based routing of requests\\. For example, if your virtual service name is `my-service.local` and you want the route to match requests to `my-service.local/metrics`, your prefix should be `/metrics`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryParameters": "The query parameter to match on\\. \n*Required*: No \n*Type*: List of [QueryParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-queryparameter.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute HttpGatewayRoutePathRewrite": { + "Exact": "The exact path to rewrite\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute HttpGatewayRoutePrefixRewrite": { + "DefaultPrefix": "The default prefix used to replace the incoming route prefix when rewritten\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value used to replace the incoming route prefix when rewritten\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute HttpGatewayRouteRewrite": { + "Hostname": "The host name to rewrite\\. \n*Required*: No \n*Type*: [GatewayRouteHostnameRewrite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutehostnamerewrite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Path": "The path to rewrite\\. \n*Required*: No \n*Type*: [HttpGatewayRoutePathRewrite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroutepathrewrite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "The specified beginning characters to rewrite\\. \n*Required*: No \n*Type*: [HttpGatewayRoutePrefixRewrite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteprefixrewrite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute HttpPathMatch": { + "Exact": "The exact path to match on\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Regex": "The regex used to match the path\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute HttpQueryParameterMatch": { + "Exact": "The exact query parameter to match on\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::GatewayRoute QueryParameter": { + "Match": "The query parameter to match on\\. \n*Required*: No \n*Type*: [HttpQueryParameterMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpqueryparametermatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A name for the query parameter that will be matched on\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Mesh": { + "MeshName": "The name to use for the service mesh\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Spec": "The service mesh specification to apply\\. \n*Required*: No \n*Type*: [MeshSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-mesh-meshspec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Optional metadata that you can apply to the service mesh to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Mesh EgressFilter": { + "Type": "The egress filter type\\. By default, the type is `DROP_ALL`, which allows egress only from virtual nodes to other defined resources in the service mesh \\(and any traffic to `*.amazonaws.com` for AWS API calls\\)\\. You can set the egress filter type to `ALLOW_ALL` to allow egress to any endpoint inside or outside of the service mesh\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALLOW_ALL | DROP_ALL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Mesh MeshSpec": { + "EgressFilter": "The egress filter rules for the service mesh\\. \n*Required*: No \n*Type*: [EgressFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-mesh-egressfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route": { + "MeshName": "The name of the service mesh to create the route in\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MeshOwner": "The AWS IAM account ID of the service mesh owner\\. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh\\. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RouteName": "The name to use for the route\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Spec": "The route specification to apply\\. \n*Required*: Yes \n*Type*: [RouteSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-routespec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Optional metadata that you can apply to the route to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VirtualRouterName": "The name of the virtual router in which to create the route\\. If the virtual router is in a shared mesh, then you must be the owner of the virtual router resource\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppMesh::Route Duration": { + "Unit": "A unit of time\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ms | s` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "A number of time units\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route GrpcRetryPolicy": { + "GrpcRetryEvents": "Specify at least one of the valid values\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HttpRetryEvents": "Specify at least one of the following values\\. \n+ **server\\-error** \u2013 HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511\n+ **gateway\\-error** \u2013 HTTP status codes 502, 503, and 504\n+ **client\\-error** \u2013 HTTP status code 409\n+ **stream\\-error** \u2013 Retry on refused stream\n*Required*: No \n*Type*: List of String \n*Maximum*: `25` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxRetries": "The maximum number of retry attempts\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PerRetryTimeout": "The timeout for each retry attempt\\. \n*Required*: Yes \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TcpRetryEvents": "Specify a valid value\\. The event occurs before any processing of a request has started and is encountered when the upstream is temporarily or permanently unavailable\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route GrpcRoute": { + "Action": "An object that represents the action to take if a match is determined\\. \n*Required*: Yes \n*Type*: [GrpcRouteAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcrouteaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Match": "An object that represents the criteria for determining a request match\\. \n*Required*: Yes \n*Type*: [GrpcRouteMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetryPolicy": "An object that represents a retry policy\\. \n*Required*: No \n*Type*: [GrpcRetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcretrypolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Timeout": "An object that represents types of timeouts\\. \n*Required*: No \n*Type*: [GrpcTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpctimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route GrpcRouteAction": { + "WeightedTargets": "An object that represents the targets that traffic is routed to when a request matches the route\\. \n*Required*: Yes \n*Type*: List of [WeightedTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-weightedtarget.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route GrpcRouteMatch": { + "Metadata": "An object that represents the data to match from the request\\. \n*Required*: No \n*Type*: List of [GrpcRouteMetadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutemetadata.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MethodName": "The method name to match from the request\\. If you specify a name, you must also specify a `serviceName`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceName": "The fully qualified domain name for the service to match from the request\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route GrpcRouteMetadata": { + "Invert": "Specify `True` to match anything except the match criteria\\. The default value is `False`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Match": "An object that represents the data to match from the request\\. \n*Required*: No \n*Type*: [GrpcRouteMetadataMatchMethod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutemetadatamatchmethod.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the route\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route GrpcRouteMetadataMatchMethod": { + "Exact": "The value sent by the client must match the specified value exactly\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "The value sent by the client must begin with the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Range": "An object that represents the range of values to match on\\. \n*Required*: No \n*Type*: [MatchRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-matchrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Regex": "The value sent by the client must include the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Suffix": "The value sent by the client must end with the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route GrpcTimeout": { + "Idle": "An object that represents an idle timeout\\. An idle timeout bounds the amount of time that a connection may be idle\\. The default value is none\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PerRequest": "An object that represents a per request timeout\\. The default value is 15 seconds\\. If you set a higher timeout, then make sure that the higher value is set for each App Mesh resource in a conversation\\. For example, if a virtual node backend uses a virtual router provider to route to another virtual node, then the timeout should be greater than 15 seconds for the source and destination virtual node and the route\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route HeaderMatchMethod": { + "Exact": "The value sent by the client must match the specified value exactly\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "The value sent by the client must begin with the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Range": "An object that represents the range of values to match on\\. \n*Required*: No \n*Type*: [MatchRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-matchrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Regex": "The value sent by the client must include the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Suffix": "The value sent by the client must end with the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route HttpPathMatch": { + "Exact": "The exact path to match on\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Regex": "The regex used to match the path\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route HttpQueryParameterMatch": { + "Exact": "The exact query parameter to match on\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route HttpRetryPolicy": { + "HttpRetryEvents": "Specify at least one of the following values\\. \n+ **server\\-error** \u2013 HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511\n+ **gateway\\-error** \u2013 HTTP status codes 502, 503, and 504\n+ **client\\-error** \u2013 HTTP status code 409\n+ **stream\\-error** \u2013 Retry on refused stream\n*Required*: No \n*Type*: List of String \n*Maximum*: `25` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxRetries": "The maximum number of retry attempts\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PerRetryTimeout": "The timeout for each retry attempt\\. \n*Required*: Yes \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TcpRetryEvents": "Specify a valid value\\. The event occurs before any processing of a request has started and is encountered when the upstream is temporarily or permanently unavailable\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route HttpRoute": { + "Action": "An object that represents the action to take if a match is determined\\. \n*Required*: Yes \n*Type*: [HttpRouteAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httprouteaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Match": "An object that represents the criteria for determining a request match\\. \n*Required*: Yes \n*Type*: [HttpRouteMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproutematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetryPolicy": "An object that represents a retry policy\\. \n*Required*: No \n*Type*: [HttpRetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httpretrypolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Timeout": "An object that represents types of timeouts\\. \n*Required*: No \n*Type*: [HttpTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httptimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route HttpRouteAction": { + "WeightedTargets": "An object that represents the targets that traffic is routed to when a request matches the route\\. \n*Required*: Yes \n*Type*: List of [WeightedTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-weightedtarget.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route HttpRouteHeader": { + "Invert": "Specify `True` to match anything except the match criteria\\. The default value is `False`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Match": "The `HeaderMatchMethod` object\\. \n*Required*: No \n*Type*: [HeaderMatchMethod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-headermatchmethod.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A name for the HTTP header in the client request that will be matched on\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route HttpRouteMatch": { + "Headers": "The client request headers to match on\\. \n*Required*: No \n*Type*: List of [HttpRouteHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httprouteheader.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Method": "The client request method to match on\\. Specify only one\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CONNECT | DELETE | GET | HEAD | OPTIONS | PATCH | POST | PUT | TRACE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Path": "The client request path to match on\\. \n*Required*: No \n*Type*: [HttpPathMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httppathmatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "Specifies the path to match requests with\\. This parameter must always start with `/`, which by itself matches all requests to the virtual service name\\. You can also match for path\\-based routing of requests\\. For example, if your virtual service name is `my-service.local` and you want the route to match requests to `my-service.local/metrics`, your prefix should be `/metrics`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryParameters": "The client request query parameters to match on\\. \n*Required*: No \n*Type*: List of [QueryParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-queryparameter.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scheme": "The client request scheme to match on\\. Specify only one\\. Applicable only for HTTP2 routes\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `http | https` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route HttpTimeout": { + "Idle": "An object that represents an idle timeout\\. An idle timeout bounds the amount of time that a connection may be idle\\. The default value is none\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PerRequest": "An object that represents a per request timeout\\. The default value is 15 seconds\\. If you set a higher timeout, then make sure that the higher value is set for each App Mesh resource in a conversation\\. For example, if a virtual node backend uses a virtual router provider to route to another virtual node, then the timeout should be greater than 15 seconds for the source and destination virtual node and the route\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route MatchRange": { + "End": "The end of the range\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Start": "The start of the range\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route QueryParameter": { + "Match": "The query parameter to match on\\. \n*Required*: No \n*Type*: [HttpQueryParameterMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httpqueryparametermatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A name for the query parameter that will be matched on\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route RouteSpec": { + "GrpcRoute": "An object that represents the specification of a gRPC route\\. \n*Required*: No \n*Type*: [GrpcRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Http2Route": "An object that represents the specification of an HTTP/2 route\\. \n*Required*: No \n*Type*: [HttpRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HttpRoute": "An object that represents the specification of an HTTP route\\. \n*Required*: No \n*Type*: [HttpRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Priority": "The priority for the route\\. Routes are matched based on the specified value, where 0 is the highest priority\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TcpRoute": "An object that represents the specification of a TCP route\\. \n*Required*: No \n*Type*: [TcpRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcproute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route TcpRoute": { + "Action": "The action to take if a match is determined\\. \n*Required*: Yes \n*Type*: [TcpRouteAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcprouteaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Timeout": "An object that represents types of timeouts\\. \n*Required*: No \n*Type*: [TcpTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcptimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route TcpRouteAction": { + "WeightedTargets": "An object that represents the targets that traffic is routed to when a request matches the route\\. \n*Required*: Yes \n*Type*: List of [WeightedTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-weightedtarget.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route TcpTimeout": { + "Idle": "An object that represents an idle timeout\\. An idle timeout bounds the amount of time that a connection may be idle\\. The default value is none\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::Route WeightedTarget": { + "VirtualNode": "The virtual node to associate with the weighted target\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Weight": "The relative weight of the weighted target\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway": { + "MeshName": "The name of the service mesh that the virtual gateway resides in\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MeshOwner": "The AWS IAM account ID of the service mesh owner\\. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account\\. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Spec": "The specifications of the virtual gateway\\. \n*Required*: Yes \n*Type*: [VirtualGatewaySpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayspec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Optional metadata that you can apply to the virtual gateway to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VirtualGatewayName": "The name of the virtual gateway\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppMesh::VirtualGateway SubjectAlternativeNameMatchers": { + "Exact": "The values sent must match the specified values exactly\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway SubjectAlternativeNames": { + "Match": "An object that represents the criteria for determining a SANs match\\. \n*Required*: Yes \n*Type*: [SubjectAlternativeNameMatchers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-subjectalternativenamematchers.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayAccessLog": { + "File": "The file object to send virtual gateway access logs to\\. \n*Required*: No \n*Type*: [VirtualGatewayFileAccessLog](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayfileaccesslog.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayBackendDefaults": { + "ClientPolicy": "A reference to an object that represents a client policy\\. \n*Required*: No \n*Type*: [VirtualGatewayClientPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayclientpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayClientPolicy": { + "TLS": "A reference to an object that represents a Transport Layer Security \\(TLS\\) client policy\\. \n*Required*: No \n*Type*: [VirtualGatewayClientPolicyTls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayclientpolicytls.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayClientPolicyTls": { + "Certificate": "A reference to an object that represents a virtual gateway's client's Transport Layer Security \\(TLS\\) certificate\\. \n*Required*: No \n*Type*: [VirtualGatewayClientTlsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayclienttlscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enforce": "Whether the policy is enforced\\. The default is `True`, if a value isn't specified\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ports": "One or more ports that the policy is enforced for\\. \n*Required*: No \n*Type*: List of Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Validation": "A reference to an object that represents a Transport Layer Security \\(TLS\\) validation context\\. \n*Required*: Yes \n*Type*: [VirtualGatewayTlsValidationContext](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontext.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayClientTlsCertificate": { + "File": "An object that represents a local file certificate\\. The certificate must meet specific requirements and you must have proxy authorization enabled\\. For more information, see [ Transport Layer Security \\(TLS\\) ](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html)\\. \n*Required*: No \n*Type*: [VirtualGatewayListenerTlsFileCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsfilecertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SDS": "A reference to an object that represents a virtual gateway's client's Secret Discovery Service certificate\\. \n*Required*: No \n*Type*: [VirtualGatewayListenerTlsSdsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlssdscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayConnectionPool": { + "GRPC": "An object that represents a type of connection pool\\. \n*Required*: No \n*Type*: [VirtualGatewayGrpcConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaygrpcconnectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HTTP": "An object that represents a type of connection pool\\. \n*Required*: No \n*Type*: [VirtualGatewayHttpConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhttpconnectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HTTP2": "An object that represents a type of connection pool\\. \n*Required*: No \n*Type*: [VirtualGatewayHttp2ConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhttp2connectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayFileAccessLog": { + "Path": "The file path to write access logs to\\. You can use `/dev/stdout` to send access logs to standard out and configure your Envoy container to use a log driver, such as `awslogs`, to export the access logs to a log storage service such as Amazon CloudWatch Logs\\. You can also specify a path in the Envoy container's file system to write the files to disk\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayGrpcConnectionPool": { + "MaxRequests": "Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayHealthCheckPolicy": { + "HealthyThreshold": "The number of consecutive successful health checks that must occur before declaring the listener healthy\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntervalMillis": "The time period in milliseconds between each health check execution\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Path": "The destination path for the health check request\\. This value is only used if the specified protocol is HTTP or HTTP/2\\. For any other protocol, this value is ignored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "The destination port for the health check request\\. This port must match the port defined in the [PortMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html#cfn-appmesh-virtualnode-listener-portmapping) for the listener\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "The protocol for the health check request\\. If you specify `grpc`, then your service must conform to the [GRPC Health Checking Protocol](https://github.com/grpc/grpc/blob/master/doc/health-checking.md)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `grpc | http | http2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeoutMillis": "The amount of time to wait when receiving a response from the health check, in milliseconds\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UnhealthyThreshold": "The number of consecutive failed health checks that must occur before declaring a virtual gateway unhealthy\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayHttp2ConnectionPool": { + "MaxRequests": "Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayHttpConnectionPool": { + "MaxConnections": "Maximum number of outbound TCP connections Envoy can establish concurrently with all hosts in upstream cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxPendingRequests": "Number of overflowing requests after `max_connections` Envoy will queue to upstream cluster\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayListener": { + "ConnectionPool": "The connection pool information for the listener\\. \n*Required*: No \n*Type*: [VirtualGatewayConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayconnectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthCheck": "The health check information for the listener\\. \n*Required*: No \n*Type*: [VirtualGatewayHealthCheckPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PortMapping": "The port mapping information for the listener\\. \n*Required*: Yes \n*Type*: [VirtualGatewayPortMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayportmapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TLS": "A reference to an object that represents the Transport Layer Security \\(TLS\\) properties for the listener\\. \n*Required*: No \n*Type*: [VirtualGatewayListenerTls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertls.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayListenerTls": { + "Certificate": "An object that represents a Transport Layer Security \\(TLS\\) certificate\\. \n*Required*: Yes \n*Type*: [VirtualGatewayListenerTlsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Mode": "Specify one of the following modes\\. \n+ ****STRICT \u2013 Listener only accepts connections with TLS enabled\\. \n+ ****PERMISSIVE \u2013 Listener accepts connections with or without TLS enabled\\.\n+ ****DISABLED \u2013 Listener only accepts connections without TLS\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | PERMISSIVE | STRICT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Validation": "A reference to an object that represents a virtual gateway's listener's Transport Layer Security \\(TLS\\) validation context\\. \n*Required*: No \n*Type*: [VirtualGatewayListenerTlsValidationContext](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsvalidationcontext.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayListenerTlsAcmCertificate": { + "CertificateArn": "The Amazon Resource Name \\(ARN\\) for the certificate\\. The certificate must meet specific requirements and you must have proxy authorization enabled\\. For more information, see [Transport Layer Security \\(TLS\\)](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#virtual-node-tls-prerequisites)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayListenerTlsCertificate": { + "ACM": "A reference to an object that represents an AWS Certificate Manager certificate\\. \n*Required*: No \n*Type*: [VirtualGatewayListenerTlsAcmCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsacmcertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "File": "A reference to an object that represents a local file certificate\\. \n*Required*: No \n*Type*: [VirtualGatewayListenerTlsFileCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsfilecertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SDS": "A reference to an object that represents a virtual gateway's listener's Secret Discovery Service certificate\\. \n*Required*: No \n*Type*: [VirtualGatewayListenerTlsSdsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlssdscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayListenerTlsFileCertificate": { + "CertificateChain": "The certificate chain for the certificate\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrivateKey": "The private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayListenerTlsSdsCertificate": { + "SecretName": "A reference to an object that represents the name of the secret secret requested from the Secret Discovery Service provider representing Transport Layer Security \\(TLS\\) materials like a certificate or certificate chain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayListenerTlsValidationContext": { + "SubjectAlternativeNames": "A reference to an object that represents the SANs for a virtual gateway listener's Transport Layer Security \\(TLS\\) validation context\\. \n*Required*: No \n*Type*: [SubjectAlternativeNames](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-subjectalternativenames.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Trust": "A reference to where to retrieve the trust chain when validating a peer\u2019s Transport Layer Security \\(TLS\\) certificate\\. \n*Required*: Yes \n*Type*: [VirtualGatewayListenerTlsValidationContextTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsvalidationcontexttrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayListenerTlsValidationContextTrust": { + "File": "An object that represents a Transport Layer Security \\(TLS\\) validation context trust for a local file\\. \n*Required*: No \n*Type*: [VirtualGatewayTlsValidationContextFileTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextfiletrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SDS": "A reference to an object that represents a virtual gateway's listener's Transport Layer Security \\(TLS\\) Secret Discovery Service validation context trust\\. \n*Required*: No \n*Type*: [VirtualGatewayTlsValidationContextSdsTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextsdstrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayLogging": { + "AccessLog": "The access log configuration\\. \n*Required*: No \n*Type*: [VirtualGatewayAccessLog](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayaccesslog.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayPortMapping": { + "Port": "The port used for the port mapping\\. Specify one protocol\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "The protocol used for the port mapping\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `grpc | http | http2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewaySpec": { + "BackendDefaults": "A reference to an object that represents the defaults for backends\\. \n*Required*: No \n*Type*: [VirtualGatewayBackendDefaults](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaybackenddefaults.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Listeners": "The listeners that the mesh endpoint is expected to receive inbound traffic from\\. You can specify one listener\\. \n*Required*: Yes \n*Type*: List of [VirtualGatewayListener](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistener.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Logging": "An object that represents logging information\\. \n*Required*: No \n*Type*: [VirtualGatewayLogging](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylogging.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayTlsValidationContext": { + "SubjectAlternativeNames": "A reference to an object that represents the SANs for a virtual gateway's listener's Transport Layer Security \\(TLS\\) validation context\\. \n*Required*: No \n*Type*: [SubjectAlternativeNames](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-subjectalternativenames.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Trust": "A reference to where to retrieve the trust chain when validating a peer\u2019s Transport Layer Security \\(TLS\\) certificate\\. \n*Required*: Yes \n*Type*: [VirtualGatewayTlsValidationContextTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontexttrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayTlsValidationContextAcmTrust": { + "CertificateAuthorityArns": "One or more ACM Amazon Resource Name \\(ARN\\)s\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayTlsValidationContextFileTrust": { + "CertificateChain": "The certificate trust chain for a certificate stored on the file system of the virtual node that the proxy is running on\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayTlsValidationContextSdsTrust": { + "SecretName": "A reference to an object that represents the name of the secret for a virtual gateway's Transport Layer Security \\(TLS\\) Secret Discovery Service validation context trust\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualGateway VirtualGatewayTlsValidationContextTrust": { + "ACM": "A reference to an object that represents a Transport Layer Security \\(TLS\\) validation context trust for an AWS Certificate Manager certificate\\. \n*Required*: No \n*Type*: [VirtualGatewayTlsValidationContextAcmTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextacmtrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "File": "An object that represents a Transport Layer Security \\(TLS\\) validation context trust for a local file\\. \n*Required*: No \n*Type*: [VirtualGatewayTlsValidationContextFileTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextfiletrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SDS": "A reference to an object that represents a virtual gateway's Transport Layer Security \\(TLS\\) Secret Discovery Service validation context trust\\. \n*Required*: No \n*Type*: [VirtualGatewayTlsValidationContextSdsTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextsdstrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode": { + "MeshName": "The name of the service mesh to create the virtual node in\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MeshOwner": "The AWS IAM account ID of the service mesh owner\\. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh\\. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Spec": "The virtual node specification to apply\\. \n*Required*: Yes \n*Type*: [VirtualNodeSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodespec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Optional metadata that you can apply to the virtual node to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VirtualNodeName": "The name to use for the virtual node\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppMesh::VirtualNode AccessLog": { + "File": "The file object to send virtual node access logs to\\. \n*Required*: No \n*Type*: [FileAccessLog](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-fileaccesslog.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode AwsCloudMapInstanceAttribute": { + "Key": "The name of an AWS Cloud Map service instance attribute key\\. Any AWS Cloud Map service instance that contains the specified key and value is returned\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9!-~]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of an AWS Cloud Map service instance attribute key\\. Any AWS Cloud Map service instance that contains the specified key and value is returned\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `^([a-zA-Z0-9!-~][ a-zA-Z0-9!-~]*){0,1}[a-zA-Z0-9!-~]{0,1}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode AwsCloudMapServiceDiscovery": { + "Attributes": "A string map that contains attributes with values that you can use to filter instances by any custom attribute that you specified when you registered the instance\\. Only instances that match all of the specified key/value pairs will be returned\\. \n*Required*: No \n*Type*: List of [AwsCloudMapInstanceAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-awscloudmapinstanceattribute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NamespaceName": "The name of the AWS Cloud Map namespace to use\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceName": "The name of the AWS Cloud Map service to use\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode Backend": { + "VirtualService": "Specifies a virtual service to use as a backend\\. \n*Required*: No \n*Type*: [VirtualServiceBackend](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualservicebackend.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode BackendDefaults": { + "ClientPolicy": "A reference to an object that represents a client policy\\. \n*Required*: No \n*Type*: [ClientPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clientpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode ClientPolicy": { + "TLS": "A reference to an object that represents a Transport Layer Security \\(TLS\\) client policy\\. \n*Required*: No \n*Type*: [ClientPolicyTls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clientpolicytls.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode ClientPolicyTls": { + "Certificate": "A reference to an object that represents a client's TLS certificate\\. \n*Required*: No \n*Type*: [ClientTlsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clienttlscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enforce": "Whether the policy is enforced\\. The default is `True`, if a value isn't specified\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ports": "One or more ports that the policy is enforced for\\. \n*Required*: No \n*Type*: List of Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Validation": "A reference to an object that represents a TLS validation context\\. \n*Required*: Yes \n*Type*: [TlsValidationContext](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontext.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode ClientTlsCertificate": { + "File": "An object that represents a local file certificate\\. The certificate must meet specific requirements and you must have proxy authorization enabled\\. For more information, see [Transport Layer Security \\(TLS\\)](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html)\\. \n*Required*: No \n*Type*: [ListenerTlsFileCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsfilecertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SDS": "A reference to an object that represents a client's TLS Secret Discovery Service certificate\\. \n*Required*: No \n*Type*: [ListenerTlsSdsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlssdscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode DnsServiceDiscovery": { + "Hostname": "Specifies the DNS service discovery hostname for the virtual node\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResponseType": "Specifies the DNS response type for the virtual node\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ENDPOINTS | LOADBALANCER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode Duration": { + "Unit": "A unit of time\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ms | s` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "A number of time units\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode FileAccessLog": { + "Path": "The file path to write access logs to\\. You can use `/dev/stdout` to send access logs to standard out and configure your Envoy container to use a log driver, such as `awslogs`, to export the access logs to a log storage service such as Amazon CloudWatch Logs\\. You can also specify a path in the Envoy container's file system to write the files to disk\\. \nThe Envoy process must have write permissions to the path that you specify here\\. Otherwise, Envoy fails to bootstrap properly\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode GrpcTimeout": { + "Idle": "An object that represents an idle timeout\\. An idle timeout bounds the amount of time that a connection may be idle\\. The default value is none\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PerRequest": "An object that represents a per request timeout\\. The default value is 15 seconds\\. If you set a higher timeout, then make sure that the higher value is set for each App Mesh resource in a conversation\\. For example, if a virtual node backend uses a virtual router provider to route to another virtual node, then the timeout should be greater than 15 seconds for the source and destination virtual node and the route\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode HealthCheck": { + "HealthyThreshold": "The number of consecutive successful health checks that must occur before declaring listener healthy\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntervalMillis": "The time period in milliseconds between each health check execution\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Path": "The destination path for the health check request\\. This value is only used if the specified protocol is HTTP or HTTP/2\\. For any other protocol, this value is ignored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "The destination port for the health check request\\. This port must match the port defined in the [PortMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html#cfn-appmesh-virtualnode-listener-portmapping) for the listener\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "The protocol for the health check request\\. If you specify `grpc`, then your service must conform to the [GRPC Health Checking Protocol](https://github.com/grpc/grpc/blob/master/doc/health-checking.md)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `grpc | http | http2 | tcp` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeoutMillis": "The amount of time to wait when receiving a response from the health check, in milliseconds\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UnhealthyThreshold": "The number of consecutive failed health checks that must occur before declaring a virtual node unhealthy\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode HttpTimeout": { + "Idle": "An object that represents an idle timeout\\. An idle timeout bounds the amount of time that a connection may be idle\\. The default value is none\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PerRequest": "An object that represents a per request timeout\\. The default value is 15 seconds\\. If you set a higher timeout, then make sure that the higher value is set for each App Mesh resource in a conversation\\. For example, if a virtual node backend uses a virtual router provider to route to another virtual node, then the timeout should be greater than 15 seconds for the source and destination virtual node and the route\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode Listener": { + "ConnectionPool": "The connection pool information for the listener\\. \n*Required*: No \n*Type*: [VirtualNodeConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodeconnectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthCheck": "The health check information for the listener\\. \n*Required*: No \n*Type*: [HealthCheck](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-healthcheck.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutlierDetection": "The outlier detection information for the listener\\. \n*Required*: No \n*Type*: [OutlierDetection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-outlierdetection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PortMapping": "The port mapping information for the listener\\. \n*Required*: Yes \n*Type*: [PortMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-portmapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TLS": "A reference to an object that represents the Transport Layer Security \\(TLS\\) properties for a listener\\. \n*Required*: No \n*Type*: [ListenerTls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertls.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Timeout": "An object that represents timeouts for different protocols\\. \n*Required*: No \n*Type*: [ListenerTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode ListenerTimeout": { + "GRPC": "An object that represents types of timeouts\\. \n*Required*: No \n*Type*: [GrpcTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-grpctimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HTTP": "An object that represents types of timeouts\\. \n*Required*: No \n*Type*: [HttpTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-httptimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HTTP2": "An object that represents types of timeouts\\. \n*Required*: No \n*Type*: [HttpTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-httptimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TCP": "An object that represents types of timeouts\\. \n*Required*: No \n*Type*: [TcpTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tcptimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode ListenerTls": { + "Certificate": "A reference to an object that represents a listener's Transport Layer Security \\(TLS\\) certificate\\. \n*Required*: Yes \n*Type*: [ListenerTlsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Mode": "Specify one of the following modes\\. \n+ ****STRICT \u2013 Listener only accepts connections with TLS enabled\\. \n+ ****PERMISSIVE \u2013 Listener accepts connections with or without TLS enabled\\.\n+ ****DISABLED \u2013 Listener only accepts connections without TLS\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | PERMISSIVE | STRICT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Validation": "A reference to an object that represents a listener's Transport Layer Security \\(TLS\\) validation context\\. \n*Required*: No \n*Type*: [ListenerTlsValidationContext](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsvalidationcontext.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode ListenerTlsAcmCertificate": { + "CertificateArn": "The Amazon Resource Name \\(ARN\\) for the certificate\\. The certificate must meet specific requirements and you must have proxy authorization enabled\\. For more information, see [Transport Layer Security \\(TLS\\)](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#virtual-node-tls-prerequisites)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode ListenerTlsCertificate": { + "ACM": "A reference to an object that represents an AWS Certificate Manager certificate\\. \n*Required*: No \n*Type*: [ListenerTlsAcmCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsacmcertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "File": "A reference to an object that represents a local file certificate\\. \n*Required*: No \n*Type*: [ListenerTlsFileCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsfilecertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SDS": "A reference to an object that represents a listener's Secret Discovery Service certificate\\. \n*Required*: No \n*Type*: [ListenerTlsSdsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlssdscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode ListenerTlsFileCertificate": { + "CertificateChain": "The certificate chain for the certificate\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrivateKey": "The private key for a certificate stored on the file system of the virtual node that the proxy is running on\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode ListenerTlsSdsCertificate": { + "SecretName": "A reference to an object that represents the name of the secret requested from the Secret Discovery Service provider representing Transport Layer Security \\(TLS\\) materials like a certificate or certificate chain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode ListenerTlsValidationContext": { + "SubjectAlternativeNames": "A reference to an object that represents the SANs for a listener's Transport Layer Security \\(TLS\\) validation context\\. \n*Required*: No \n*Type*: [SubjectAlternativeNames](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-subjectalternativenames.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Trust": "A reference to where to retrieve the trust chain when validating a peer\u2019s Transport Layer Security \\(TLS\\) certificate\\. \n*Required*: Yes \n*Type*: [ListenerTlsValidationContextTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsvalidationcontexttrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode ListenerTlsValidationContextTrust": { + "File": "An object that represents a Transport Layer Security \\(TLS\\) validation context trust for a local file\\. \n*Required*: No \n*Type*: [TlsValidationContextFileTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextfiletrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SDS": "A reference to an object that represents a listener's Transport Layer Security \\(TLS\\) Secret Discovery Service validation context trust\\. \n*Required*: No \n*Type*: [TlsValidationContextSdsTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextsdstrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode Logging": { + "AccessLog": "The access log configuration for a virtual node\\. \n*Required*: No \n*Type*: [AccessLog](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-accesslog.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode OutlierDetection": { + "BaseEjectionDuration": "The base amount of time for which a host is ejected\\. \n*Required*: Yes \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Interval": "The time interval between ejection sweep analysis\\. \n*Required*: Yes \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxEjectionPercent": "Maximum percentage of hosts in load balancing pool for upstream service that can be ejected\\. Will eject at least one host regardless of the value\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxServerErrors": "Number of consecutive `5xx` errors required for ejection\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode PortMapping": { + "Port": "The port used for the port mapping\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "The protocol used for the port mapping\\. Specify `http`, `http2`, `grpc`, or `tcp`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `grpc | http | http2 | tcp` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode ServiceDiscovery": { + "AWSCloudMap": "Specifies any AWS Cloud Map information for the virtual node\\. \n*Required*: No \n*Type*: [AwsCloudMapServiceDiscovery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-awscloudmapservicediscovery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DNS": "Specifies the DNS information for the virtual node\\. \n*Required*: No \n*Type*: [DnsServiceDiscovery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-dnsservicediscovery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode SubjectAlternativeNameMatchers": { + "Exact": "The values sent must match the specified values exactly\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode SubjectAlternativeNames": { + "Match": "An object that represents the criteria for determining a SANs match\\. \n*Required*: Yes \n*Type*: [SubjectAlternativeNameMatchers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-subjectalternativenamematchers.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode TcpTimeout": { + "Idle": "An object that represents an idle timeout\\. An idle timeout bounds the amount of time that a connection may be idle\\. The default value is none\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode TlsValidationContext": { + "SubjectAlternativeNames": "A reference to an object that represents the SANs for a Transport Layer Security \\(TLS\\) validation context\\. \n*Required*: No \n*Type*: [SubjectAlternativeNames](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-subjectalternativenames.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Trust": "A reference to where to retrieve the trust chain when validating a peer\u2019s Transport Layer Security \\(TLS\\) certificate\\. \n*Required*: Yes \n*Type*: [TlsValidationContextTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontexttrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode TlsValidationContextAcmTrust": { + "CertificateAuthorityArns": "One or more ACM Amazon Resource Name \\(ARN\\)s\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode TlsValidationContextFileTrust": { + "CertificateChain": "The certificate trust chain for a certificate stored on the file system of the virtual node that the proxy is running on\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode TlsValidationContextSdsTrust": { + "SecretName": "A reference to an object that represents the name of the secret for a Transport Layer Security \\(TLS\\) Secret Discovery Service validation context trust\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode TlsValidationContextTrust": { + "ACM": "A reference to an object that represents a Transport Layer Security \\(TLS\\) validation context trust for an AWS Certificate Manager certificate\\. \n*Required*: No \n*Type*: [TlsValidationContextAcmTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextacmtrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "File": "An object that represents a Transport Layer Security \\(TLS\\) validation context trust for a local file\\. \n*Required*: No \n*Type*: [TlsValidationContextFileTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextfiletrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SDS": "A reference to an object that represents a Transport Layer Security \\(TLS\\) Secret Discovery Service validation context trust\\. \n*Required*: No \n*Type*: [TlsValidationContextSdsTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextsdstrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode VirtualNodeConnectionPool": { + "GRPC": "An object that represents a type of connection pool\\. \n*Required*: No \n*Type*: [VirtualNodeGrpcConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodegrpcconnectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HTTP": "An object that represents a type of connection pool\\. \n*Required*: No \n*Type*: [VirtualNodeHttpConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodehttpconnectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HTTP2": "An object that represents a type of connection pool\\. \n*Required*: No \n*Type*: [VirtualNodeHttp2ConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodehttp2connectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TCP": "An object that represents a type of connection pool\\. \n*Required*: No \n*Type*: [VirtualNodeTcpConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodetcpconnectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode VirtualNodeGrpcConnectionPool": { + "MaxRequests": "Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode VirtualNodeHttp2ConnectionPool": { + "MaxRequests": "Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode VirtualNodeHttpConnectionPool": { + "MaxConnections": "Maximum number of outbound TCP connections Envoy can establish concurrently with all hosts in upstream cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxPendingRequests": "Number of overflowing requests after `max_connections` Envoy will queue to upstream cluster\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode VirtualNodeSpec": { + "BackendDefaults": "A reference to an object that represents the defaults for backends\\. \n*Required*: No \n*Type*: [BackendDefaults](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-backenddefaults.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Backends": "The backends that the virtual node is expected to send outbound traffic to\\. \n*Required*: No \n*Type*: List of [Backend](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-backend.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Listeners": "The listener that the virtual node is expected to receive inbound traffic from\\. You can specify one listener\\. \n*Required*: No \n*Type*: List of [Listener](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Logging": "The inbound and outbound access logging information for the virtual node\\. \n*Required*: No \n*Type*: [Logging](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-logging.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceDiscovery": "The service discovery information for the virtual node\\. If your virtual node does not expect ingress traffic, you can omit this parameter\\. If you specify a `listener`, then you must specify service discovery information\\. \n*Required*: No \n*Type*: [ServiceDiscovery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-servicediscovery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode VirtualNodeTcpConnectionPool": { + "MaxConnections": "Maximum number of outbound TCP connections Envoy can establish concurrently with all hosts in upstream cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualNode VirtualServiceBackend": { + "ClientPolicy": "A reference to an object that represents the client policy for a backend\\. \n*Required*: No \n*Type*: [ClientPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clientpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VirtualServiceName": "The name of the virtual service that is acting as a virtual node backend\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualRouter": { + "MeshName": "The name of the service mesh to create the virtual router in\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MeshOwner": "The AWS IAM account ID of the service mesh owner\\. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh\\. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Spec": "The virtual router specification to apply\\. \n*Required*: Yes \n*Type*: [VirtualRouterSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-virtualrouterspec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Optional metadata that you can apply to the virtual router to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VirtualRouterName": "The name to use for the virtual router\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppMesh::VirtualRouter PortMapping": { + "Port": "The port used for the port mapping\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "The protocol used for the port mapping\\. Specify one protocol\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `grpc | http | http2 | tcp` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualRouter VirtualRouterListener": { + "PortMapping": "The port mapping information for the listener\\. \n*Required*: Yes \n*Type*: [PortMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-portmapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualRouter VirtualRouterSpec": { + "Listeners": "The listeners that the virtual router is expected to receive inbound traffic from\\. You can specify one listener\\. \n*Required*: Yes \n*Type*: List of [VirtualRouterListener](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-virtualrouterlistener.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualService": { + "MeshName": "The name of the service mesh to create the virtual service in\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MeshOwner": "The AWS IAM account ID of the service mesh owner\\. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh\\. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Spec": "The virtual service specification to apply\\. \n*Required*: Yes \n*Type*: [VirtualServiceSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualservicespec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Optional metadata that you can apply to the virtual service to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VirtualServiceName": "The name to use for the virtual service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppMesh::VirtualService VirtualNodeServiceProvider": { + "VirtualNodeName": "The name of the virtual node that is acting as a service provider\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualService VirtualRouterServiceProvider": { + "VirtualRouterName": "The name of the virtual router that is acting as a service provider\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualService VirtualServiceProvider": { + "VirtualNode": "The virtual node associated with a virtual service\\. \n*Required*: No \n*Type*: [VirtualNodeServiceProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualnodeserviceprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VirtualRouter": "The virtual router associated with a virtual service\\. \n*Required*: No \n*Type*: [VirtualRouterServiceProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualrouterserviceprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppMesh::VirtualService VirtualServiceSpec": { + "Provider": "The App Mesh object that is acting as the provider for a virtual service\\. You can specify a single virtual node or virtual router\\. \n*Required*: No \n*Type*: [VirtualServiceProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualserviceprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppRunner::Service": { + "AutoScalingConfigurationArn": "The Amazon Resource Name \\(ARN\\) of an App Runner automatic scaling configuration resource that you want to associate with the App Runner service\\. If not provided, App Runner associates the latest revision of a default auto scaling configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1011` \n*Pattern*: `arn:aws(-[\\w]+)*:[a-z0-9-\\\\.]{0,63}:[a-z0-9-\\\\.]{0,63}:[0-9]{12}:(\\w|\\/|-){1,1011}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EncryptionConfiguration": "An optional custom encryption key that App Runner uses to encrypt the copy of your source repository that it maintains and your service logs\\. By default, App Runner uses an AWS managed key\\. \n*Required*: No \n*Type*: [EncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-encryptionconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "HealthCheckConfiguration": "The settings for the health check that AWS App Runner performs to monitor the health of the App Runner service\\. \n*Required*: No \n*Type*: [HealthCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-healthcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceConfiguration": "The runtime configuration of instances \\(scaling units\\) of the App Runner service\\. \n*Required*: No \n*Type*: [InstanceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-instanceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkConfiguration": "Configuration settings related to network traffic of the web application that the App Runner service runs\\. \n*Required*: No \n*Type*: [NetworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-networkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceName": "A name for the App Runner service\\. It must be unique across all the running App Runner services in your AWS account in the AWS Region\\. \nIf you don't specify a name, AWS CloudFormation generates a name for your Service\\. \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `40` \n*Pattern*: `[A-Za-z0-9][A-Za-z0-9-_]{3,39}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceConfiguration": "The source to deploy to the App Runner service\\. It can be a code or an image repository\\. \n*Required*: Yes \n*Type*: [SourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-sourceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An optional list of metadata items that you can associate with the App Runner service resource\\. A tag is a key\\-value pair\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppRunner::Service AuthenticationConfiguration": { + "AccessRoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM role that grants the App Runner service access to a source repository\\. It's required for ECR image repositories \\(but not for ECR Public repositories\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `29` \n*Maximum*: `1024` \n*Pattern*: `arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):iam::[0-9]{12}:(role|role\\/service-role)\\/[\\w+=,.@\\-/]{1,1000}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectionArn": "The Amazon Resource Name \\(ARN\\) of the App Runner connection that enables the App Runner service to connect to a source repository\\. It's required for GitHub code repositories\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1011` \n*Pattern*: `arn:aws(-[\\w]+)*:[a-z0-9-\\\\.]{0,63}:[a-z0-9-\\\\.]{0,63}:[0-9]{12}:(\\w|\\/|-){1,1011}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppRunner::Service CodeConfiguration": { + "CodeConfigurationValues": "The basic configuration for building and running the App Runner service\\. Use it to quickly launch an App Runner service without providing a `apprunner.yaml` file in the source code repository \\(or ignoring the file if it exists\\)\\. \n*Required*: No \n*Type*: [CodeConfigurationValues](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-codeconfigurationvalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConfigurationSource": "The source of the App Runner configuration\\. Values are interpreted as follows: \n+ `REPOSITORY` \u2013 App Runner reads configuration values from the `apprunner.yaml` file in the source code repository and ignores `CodeConfigurationValues`\\.\n+ `API` \u2013 App Runner uses configuration values provided in `CodeConfigurationValues` and ignores the `apprunner.yaml` file in the source code repository\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `API | REPOSITORY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppRunner::Service CodeConfigurationValues": { + "BuildCommand": "The command App Runner runs to build your application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "The port that your application listens to in the container\\. \nDefault: `8080` \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `51200` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Runtime": "A runtime environment type for building and running an App Runner service\\. It represents a programming language runtime\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CORRETTO_11 | CORRETTO_8 | NODEJS_12 | NODEJS_14 | PYTHON_3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuntimeEnvironmentVariables": "The environment variables that are available to your running App Runner service\\. An array of key\\-value pairs\\. Keys with a prefix of `AWSAPPRUNNER` are reserved for system use and aren't valid\\. \n*Required*: No \n*Type*: List of [KeyValuePair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-keyvaluepair.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StartCommand": "The command App Runner runs to start your application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppRunner::Service CodeRepository": { + "CodeConfiguration": "Configuration for building and running the service from a source code repository\\. \n*Required*: No \n*Type*: [CodeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-codeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RepositoryUrl": "The location of the repository that contains the source code\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `51200` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceCodeVersion": "The version that should be used within the source code repository\\. \n*Required*: Yes \n*Type*: [SourceCodeVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-sourcecodeversion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppRunner::Service EgressConfiguration": { + "EgressType": "The type of egress configuration\\. \nSet to `DEFAULT` for access to resources hosted on public networks\\. \nSet to `VPC` to associate your service to a custom VPC specified by `VpcConnectorArn`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DEFAULT | VPC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcConnectorArn": "The Amazon Resource Name \\(ARN\\) of the App Runner VPC connector that you want to associate with your App Runner service\\. Only valid when `EgressType = VPC`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1011` \n*Pattern*: `arn:aws(-[\\w]+)*:[a-z0-9-\\\\.]{0,63}:[a-z0-9-\\\\.]{0,63}:[0-9]{12}:(\\w|\\/|-){1,1011}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppRunner::Service EncryptionConfiguration": { + "KmsKey": "The ARN of the KMS key that's used for encryption\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `arn:aws(-[\\w]+)*:kms:[a-z\\-]+-[0-9]{1}:[0-9]{12}:key\\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppRunner::Service HealthCheckConfiguration": { + "HealthyThreshold": "The number of consecutive checks that must succeed before App Runner decides that the service is healthy\\. \nDefault: `1` \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Interval": "The time interval, in seconds, between health checks\\. \nDefault: `5` \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Path": "The URL that health check requests are sent to\\. \n `Path` is only applicable when you set `Protocol` to `HTTP`\\. \nDefault: `\"/\"` \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "The IP protocol that App Runner uses to perform health checks for your service\\. \nIf you set `Protocol` to `HTTP`, App Runner sends health check requests to the HTTP path specified by `Path`\\. \nDefault: `TCP` \n*Required*: No \n*Type*: String \n*Allowed values*: `HTTP | TCP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Timeout": "The time, in seconds, to wait for a health check response before deciding it failed\\. \nDefault: `2` \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UnhealthyThreshold": "The number of consecutive checks that must fail before App Runner decides that the service is unhealthy\\. \nDefault: `5` \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppRunner::Service ImageConfiguration": { + "Port": "The port that your application listens to in the container\\. \nDefault: `8080` \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `51200` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuntimeEnvironmentVariables": "Environment variables that are available to your running App Runner service\\. An array of key\\-value pairs\\. Keys with a prefix of `AWSAPPRUNNER` are reserved for system use and aren't valid\\. \n*Required*: No \n*Type*: List of [KeyValuePair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-keyvaluepair.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StartCommand": "An optional command that App Runner runs to start the application in the source image\\. If specified, this command overrides the Docker image\u2019s default start command\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `51200` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppRunner::Service ImageRepository": { + "ImageConfiguration": "Configuration for running the identified image\\. \n*Required*: No \n*Type*: [ImageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-imageconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageIdentifier": "The identifier of an image\\. \nFor an image in Amazon Elastic Container Registry \\(Amazon ECR\\), this is an image name\\. For the image name format, see [Pulling an image](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-pull-ecr-image.html) in the *Amazon ECR User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `([0-9]{12}.dkr.ecr.[a-z\\-]+-[0-9]{1}.amazonaws.com\\/((?:[a-z0-9]+(?:[._-][a-z0-9]+)*\\/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)(:([\\w\\d+\\-=._:\\/@])+|@([\\w\\d\\:]+))?)|(^public\\.ecr\\.aws\\/.+\\/((?:[a-z0-9]+(?:[._-][a-z0-9]+)*\\/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)(:([\\w\\d+\\-=._:\\/@])+|@([\\w\\d\\:]+))?)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageRepositoryType": "The type of the image repository\\. This reflects the repository provider and whether the repository is private or public\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ECR | ECR_PUBLIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppRunner::Service InstanceConfiguration": { + "Cpu": "The number of CPU units reserved for each instance of your App Runner service\\. \nDefault: `1 vCPU` \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `6` \n*Pattern*: `1024|2048|(1|2) vCPU` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceRoleArn": "The Amazon Resource Name \\(ARN\\) of an IAM role that provides permissions to your App Runner service\\. These are permissions that your code needs when it calls any AWS APIs\\. \n*Required*: No \n*Type*: String \n*Minimum*: `29` \n*Maximum*: `1024` \n*Pattern*: `arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):iam::[0-9]{12}:(role|role\\/service-role)\\/[\\w+=,.@\\-/]{1,1000}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Memory": "The amount of memory, in MB or GB, reserved for each instance of your App Runner service\\. \nDefault: `2 GB` \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `4` \n*Pattern*: `2048|3072|4096|(2|3|4) GB` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppRunner::Service KeyValuePair": { + "Name": "The key name string to map to a value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value string to which the key name is mapped\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppRunner::Service NetworkConfiguration": { + "EgressConfiguration": "Network configuration settings for outbound message traffic\\. \n*Required*: Yes \n*Type*: [EgressConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-egressconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppRunner::Service SourceCodeVersion": { + "Type": "The type of version identifier\\. \nFor a git\\-based repository, branches represent versions\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BRANCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "A source code version\\. \nFor a git\\-based repository, a branch name maps to a specific version\\. App Runner uses the most recent commit to the branch\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `51200` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppRunner::Service SourceConfiguration": { + "AuthenticationConfiguration": "Describes the resources that are needed to authenticate access to some source repositories\\. \n*Required*: No \n*Type*: [AuthenticationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-authenticationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutoDeploymentsEnabled": "If `true`, continuous integration from the source repository is enabled for the App Runner service\\. Each repository change \\(including any source code commit or new image version\\) starts a deployment\\. \nDefault: App Runner sets to `false` for a source image that uses an ECR Public repository or an ECR repository that's in an AWS account other than the one that the service is in\\. App Runner sets to `true` in all other cases \\(which currently include a source code repository or a source image using a same\\-account ECR repository\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CodeRepository": "The description of a source code repository\\. \nYou must provide either this member or `ImageRepository` \\(but not both\\)\\. \n*Required*: No \n*Type*: [CodeRepository](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-coderepository.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageRepository": "The description of a source image repository\\. \nYou must provide either this member or `CodeRepository` \\(but not both\\)\\. \n*Required*: No \n*Type*: [ImageRepository](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-imagerepository.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppRunner::VpcConnector": { + "SecurityGroups": "A list of IDs of security groups that App Runner should use for access to AWS resources under the specified subnets\\. If not specified, App Runner uses the default security group of the Amazon VPC\\. The default security group allows all outbound traffic\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Subnets": "A list of IDs of subnets that App Runner should use when it associates your service with a custom Amazon VPC\\. Specify IDs of subnets of a single Amazon VPC\\. App Runner determines the Amazon VPC from the subnets you specify\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A list of metadata items that you can associate with your VPC connector resource\\. A tag is a key\\-value pair\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpcConnectorName": "A name for the VPC connector\\. \nIf you don't specify a name, AWS CloudFormation generates a name for your VPC connector\\. \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `40` \n*Pattern*: `[A-Za-z0-9][A-Za-z0-9\\-_]{3,39}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppStream::AppBlock": { + "Description": "The description of the app block\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DisplayName": "The display name of the app block\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the app block\\. \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SetupScriptDetails": "The setup script details of the app block\\. \n*Required*: Yes \n*Type*: [ScriptDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-appblock-scriptdetails.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceS3Location": "The source S3 location of the app block\\. \n*Required*: Yes \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-appblock-s3location.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags of the app block\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppStream::AppBlock S3Location": { + "S3Bucket": "The S3 bucket of the app block\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "S3Key": "The S3 key of the S3 object of the virtual hard disk\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppStream::AppBlock ScriptDetails": { + "ExecutableParameters": "The parameters used in the run path for the script\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ExecutablePath": "The run path for the script\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ScriptS3Location": "The S3 object location of the script\\. \n*Required*: Yes \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-appblock-s3location.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TimeoutInSeconds": "The run timeout, in seconds, for the script\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppStream::Application": { + "AppBlockArn": "The app block ARN with which the application should be associated\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AttributesToDelete": "A list of attributes to delete from an application\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisplayName": "The display name of the application\\. This name is visible to users in the application catalog\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IconS3Location": "The icon S3 location of the application\\. \n*Required*: Yes \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-application-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceFamilies": "The instance families the application supports\\. \n*Allowed Values*: `GENERAL_PURPOSE` \\| `GRAPHICS_G4` \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LaunchParameters": "The launch parameters of the application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LaunchPath": "The launch path of the application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the application\\. This name is visible to users when a name is not specified in the DisplayName property\\. \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Platforms": "The platforms the application supports\\. \n*Allowed Values*: `WINDOWS_SERVER_2019` \\| `AMAZON_LINUX2` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags of the application\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WorkingDirectory": "The working directory of the application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppStream::Application S3Location": { + "S3Bucket": "The S3 bucket of the S3 object\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Key": "The S3 key of the S3 object\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppStream::ApplicationEntitlementAssociation": { + "ApplicationIdentifier": "The identifier of the application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EntitlementName": "The name of the entitlement\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StackName": "The name of the stack\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppStream::ApplicationFleetAssociation": { + "ApplicationArn": "The ARN of the application\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FleetName": "The name of the fleet\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppStream::DirectoryConfig": { + "DirectoryName": "The fully qualified name of the directory \\(for example, corp\\.example\\.com\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OrganizationalUnitDistinguishedNames": "The distinguished names of the organizational units for computer accounts\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceAccountCredentials": "The credentials for the service account used by the streaming instance to connect to the directory\\. Do not use this parameter directly\\. Use `ServiceAccountCredentials` as an input parameter with `noEcho` as shown in the [Parameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html)\\. For best practices information, see [Do Not Embed Credentials in Your Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#creds)\\. \n*Required*: Yes \n*Type*: [ServiceAccountCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-directoryconfig-serviceaccountcredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppStream::DirectoryConfig ServiceAccountCredentials": { + "AccountName": "The user name of the account\\. This account must have the following privileges: create computer objects, join computers to the domain, and change/reset the password on descendant computer objects for the organizational units specified\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AccountPassword": "The password for the account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `127` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppStream::Entitlement": { + "AppVisibility": "Specifies whether to entitle all apps or only selected apps\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL | ASSOCIATED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Attributes": "The attributes of the entitlement\\. \n*Required*: Yes \n*Type*: List of [Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-entitlement-attribute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the entitlement\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the entitlement\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StackName": "The name of the stack\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppStream::Entitlement Attribute": { + "Name": "A supported AWS IAM SAML PrincipalTag attribute that is matched to a value when a user identity federates to an AppStream 2\\.0 SAML application\\. \nThe following are supported values: \n+ roles \n+ department \n+ organization \n+ groups \n+ title \n+ costCenter \n+ userType\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "A value that is matched to a supported SAML attribute name when a user identity federates to an AppStream 2\\.0 SAML application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppStream::Fleet": { + "ComputeCapacity": "The desired capacity for the fleet\\. This is not allowed for Elastic fleets\\. \n*Required*: No \n*Type*: [ComputeCapacity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-fleet-computecapacity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description to display\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisconnectTimeoutInSeconds": "The amount of time that a streaming session remains active after users disconnect\\. If users try to reconnect to the streaming session after a disconnection or network interruption within this time interval, they are connected to their previous session\\. Otherwise, they are connected to a new session with a new streaming instance\\. \nSpecify a value between 60 and 360000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisplayName": "The fleet name to display\\. \n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainJoinInfo": "The name of the directory and organizational unit \\(OU\\) to use to join the fleet to a Microsoft Active Directory domain\\. This is not allowed for Elastic fleets\\. \n*Required*: No \n*Type*: [DomainJoinInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-fleet-domainjoininfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableDefaultInternetAccess": "Enables or disables default internet access for the fleet\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FleetType": "The fleet type\\. \nALWAYS\\_ON \nProvides users with instant\\-on access to their apps\\. You are charged for all running instances in your fleet, even if no users are streaming apps\\. \nON\\_DEMAND \nProvide users with access to applications after they connect, which takes one to two minutes\\. You are charged for instance streaming when users are connected and a small hourly fee for instances that are not streaming apps\\. \nELASTIC \nThe pool of streaming instances is managed by Amazon AppStream 2\\.0\\. When a user selects their application or desktop to launch, they will start streaming after the app block has been downloaded and mounted to a streaming instance\\.\n*Allowed Values*: `ALWAYS_ON` \\| `ELASTIC` \\| `ON_DEMAND` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IamRoleArn": "The ARN of the IAM role that is applied to the fleet\\. To assume a role, the fleet instance calls the AWS Security Token Service `AssumeRole` API operation and passes the ARN of the role to use\\. The operation creates a new session with temporary credentials\\. AppStream 2\\.0 retrieves the temporary credentials and creates the **appstream\\_machine\\_role** credential profile on the instance\\. \nFor more information, see [Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2\\.0 Streaming Instances](https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html) in the *Amazon AppStream 2\\.0 Administration Guide*\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IdleDisconnectTimeoutInSeconds": "The amount of time that users can be idle \\(inactive\\) before they are disconnected from their streaming session and the `DisconnectTimeoutInSeconds` time interval begins\\. Users are notified before they are disconnected due to inactivity\\. If they try to reconnect to the streaming session before the time interval specified in `DisconnectTimeoutInSeconds` elapses, they are connected to their previous session\\. Users are considered idle when they stop providing keyboard or mouse input during their streaming session\\. File uploads and downloads, audio in, audio out, and pixels changing do not qualify as user activity\\. If users continue to be idle after the time interval in `IdleDisconnectTimeoutInSeconds` elapses, they are disconnected\\. \nTo prevent users from being disconnected due to inactivity, specify a value of 0\\. Otherwise, specify a value between 60 and 3600\\. \nIf you enable this feature, we recommend that you specify a value that corresponds exactly to a whole number of minutes \\(for example, 60, 120, and 180\\)\\. If you don't do this, the value is rounded to the nearest minute\\. For example, if you specify a value of 70, users are disconnected after 1 minute of inactivity\\. If you specify a value that is at the midpoint between two different minutes, the value is rounded up\\. For example, if you specify a value of 90, users are disconnected after 2 minutes of inactivity\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageArn": "The ARN of the public, private, or shared image to use\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageName": "The name of the image used to create the fleet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceType": "The instance type to use when launching fleet instances\\. The following instance types are available for non\\-Elastic fleets: \n+ stream\\.standard\\.small\n+ stream\\.standard\\.medium\n+ stream\\.standard\\.large\n+ stream\\.compute\\.large\n+ stream\\.compute\\.xlarge\n+ stream\\.compute\\.2xlarge\n+ stream\\.compute\\.4xlarge\n+ stream\\.compute\\.8xlarge\n+ stream\\.memory\\.large\n+ stream\\.memory\\.xlarge\n+ stream\\.memory\\.2xlarge\n+ stream\\.memory\\.4xlarge\n+ stream\\.memory\\.8xlarge\n+ stream\\.memory\\.z1d\\.large\n+ stream\\.memory\\.z1d\\.xlarge\n+ stream\\.memory\\.z1d\\.2xlarge\n+ stream\\.memory\\.z1d\\.3xlarge\n+ stream\\.memory\\.z1d\\.6xlarge\n+ stream\\.memory\\.z1d\\.12xlarge\n+ stream\\.graphics\\-design\\.large\n+ stream\\.graphics\\-design\\.xlarge\n+ stream\\.graphics\\-design\\.2xlarge\n+ stream\\.graphics\\-design\\.4xlarge\n+ stream\\.graphics\\-desktop\\.2xlarge\n+ stream\\.graphics\\.g4dn\\.xlarge\n+ stream\\.graphics\\.g4dn\\.2xlarge\n+ stream\\.graphics\\.g4dn\\.4xlarge\n+ stream\\.graphics\\.g4dn\\.8xlarge\n+ stream\\.graphics\\.g4dn\\.12xlarge\n+ stream\\.graphics\\.g4dn\\.16xlarge\n+ stream\\.graphics\\-pro\\.4xlarge\n+ stream\\.graphics\\-pro\\.8xlarge\n+ stream\\.graphics\\-pro\\.16xlarge\nThe following instance types are available for Elastic fleets: \n+ stream\\.standard\\.small\n+ stream\\.standard\\.medium\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxConcurrentSessions": "The maximum number of concurrent sessions that can be run on an Elastic fleet\\. This setting is required for Elastic fleets, but is not used for other fleet types\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxUserDurationInSeconds": "The maximum amount of time that a streaming session can remain active, in seconds\\. If users are still connected to a streaming instance five minutes before this limit is reached, they are prompted to save any open documents before being disconnected\\. After this time elapses, the instance is terminated and replaced by a new instance\\. \nSpecify a value between 600 and 360000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A unique name for the fleet\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Platform": "The platform of the fleet\\. Platform is a required setting for Elastic fleets, and is not used for other fleet types\\. \n*Allowed Values*: `WINDOWS_SERVER_2019` \\| `AMAZON_LINUX2` \n*Required*: No \n*Type*: String \n*Allowed values*: `AMAZON_LINUX2 | WINDOWS | WINDOWS_SERVER_2016 | WINDOWS_SERVER_2019` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamView": "The AppStream 2\\.0 view that is displayed to your users when they stream from the fleet\\. When `APP` is specified, only the windows of applications opened by users display\\. When `DESKTOP` is specified, the standard desktop that is provided by the operating system displays\\. \nThe default value is `APP`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `APP | DESKTOP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UsbDeviceFilterStrings": "The USB device filter strings that specify which USB devices a user can redirect to the fleet streaming session, when using the Windows native client\\. This is allowed but not required for Elastic fleets\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcConfig": "The VPC configuration for the fleet\\. This is required for Elastic fleets, but not required for other fleet types\\. \n*Required*: No \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-fleet-vpcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppStream::Fleet ComputeCapacity": { + "DesiredInstances": "The desired number of streaming instances\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppStream::Fleet DomainJoinInfo": { + "DirectoryName": "The fully qualified name of the directory \\(for example, corp\\.example\\.com\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OrganizationalUnitDistinguishedName": "The distinguished name of the organizational unit for computer accounts\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppStream::Fleet VpcConfig": { + "SecurityGroupIds": "The identifiers of the security groups for the fleet\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetIds": "The identifiers of the subnets to which a network interface is attached from the fleet instance\\. Fleet instances can use one or two subnets\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppStream::ImageBuilder": { + "AccessEndpoints": "The list of virtual private cloud \\(VPC\\) interface endpoint objects\\. Administrators can connect to the image builder only through the specified endpoints\\. \n*Required*: No \n*Type*: List of [AccessEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-imagebuilder-accessendpoint.html) \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AppstreamAgentVersion": "The version of the AppStream 2\\.0 agent to use for this image builder\\. To use the latest version of the AppStream 2\\.0 agent, specify \\[LATEST\\]\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description to display\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisplayName": "The image builder name to display\\. \n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainJoinInfo": "The name of the directory and organizational unit \\(OU\\) to use to join the image builder to a Microsoft Active Directory domain\\. \n*Required*: No \n*Type*: [DomainJoinInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-imagebuilder-domainjoininfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableDefaultInternetAccess": "Enables or disables default internet access for the image builder\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IamRoleArn": "The ARN of the IAM role that is applied to the image builder\\. To assume a role, the image builder calls the AWS Security Token Service `AssumeRole` API operation and passes the ARN of the role to use\\. The operation creates a new session with temporary credentials\\. AppStream 2\\.0 retrieves the temporary credentials and creates the **appstream\\_machine\\_role** credential profile on the instance\\. \nFor more information, see [Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2\\.0 Streaming Instances](https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html) in the *Amazon AppStream 2\\.0 Administration Guide*\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageArn": "The ARN of the public, private, or shared image to use\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageName": "The name of the image used to create the image builder\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceType": "The instance type to use when launching the image builder\\. The following instance types are available: \n+ stream\\.standard\\.small\n+ stream\\.standard\\.medium\n+ stream\\.standard\\.large\n+ stream\\.compute\\.large\n+ stream\\.compute\\.xlarge\n+ stream\\.compute\\.2xlarge\n+ stream\\.compute\\.4xlarge\n+ stream\\.compute\\.8xlarge\n+ stream\\.memory\\.large\n+ stream\\.memory\\.xlarge\n+ stream\\.memory\\.2xlarge\n+ stream\\.memory\\.4xlarge\n+ stream\\.memory\\.8xlarge\n+ stream\\.memory\\.z1d\\.large\n+ stream\\.memory\\.z1d\\.xlarge\n+ stream\\.memory\\.z1d\\.2xlarge\n+ stream\\.memory\\.z1d\\.3xlarge\n+ stream\\.memory\\.z1d\\.6xlarge\n+ stream\\.memory\\.z1d\\.12xlarge\n+ stream\\.graphics\\-design\\.large\n+ stream\\.graphics\\-design\\.xlarge\n+ stream\\.graphics\\-design\\.2xlarge\n+ stream\\.graphics\\-design\\.4xlarge\n+ stream\\.graphics\\-desktop\\.2xlarge\n+ stream\\.graphics\\.g4dn\\.xlarge\n+ stream\\.graphics\\.g4dn\\.2xlarge\n+ stream\\.graphics\\.g4dn\\.4xlarge\n+ stream\\.graphics\\.g4dn\\.8xlarge\n+ stream\\.graphics\\.g4dn\\.12xlarge\n+ stream\\.graphics\\.g4dn\\.16xlarge\n+ stream\\.graphics\\-pro\\.4xlarge\n+ stream\\.graphics\\-pro\\.8xlarge\n+ stream\\.graphics\\-pro\\.16xlarge\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A unique name for the image builder\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcConfig": "The VPC configuration for the image builder\\. You can specify only one subnet\\. \n*Required*: No \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-imagebuilder-vpcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppStream::ImageBuilder AccessEndpoint": { + "EndpointType": "The type of interface endpoint\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `STREAMING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpceId": "The identifier \\(ID\\) of the VPC in which the interface endpoint is used\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppStream::ImageBuilder DomainJoinInfo": { + "DirectoryName": "The fully qualified name of the directory \\(for example, corp\\.example\\.com\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OrganizationalUnitDistinguishedName": "The distinguished name of the organizational unit for computer accounts\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppStream::ImageBuilder VpcConfig": { + "SecurityGroupIds": "The identifiers of the security groups for the image builder\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetIds": "The identifier of the subnet to which a network interface is attached from the image builder instance\\. An image builder instance can use one subnet\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppStream::Stack": { + "AccessEndpoints": "The list of virtual private cloud \\(VPC\\) interface endpoint objects\\. Users of the stack can connect to AppStream 2\\.0 only through the specified endpoints\\. \n*Required*: No \n*Type*: List of [AccessEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-accessendpoint.html) \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ApplicationSettings": "The persistent application settings for users of the stack\\. When these settings are enabled, changes that users make to applications and Windows settings are automatically saved after each session and applied to the next session\\. \n*Required*: No \n*Type*: [ApplicationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-applicationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AttributesToDelete": "The stack attributes to delete\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeleteStorageConnectors": "*This parameter has been deprecated\\.* \nDeletes the storage connectors currently enabled for the stack\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description to display\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisplayName": "The stack name to display\\. \n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EmbedHostDomains": "The domains where AppStream 2\\.0 streaming sessions can be embedded in an iframe\\. You must approve the domains that you want to host embedded AppStream 2\\.0 streaming sessions\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FeedbackURL": "The URL that users are redirected to after they click the Send Feedback link\\. If no URL is specified, no Send Feedback link is displayed\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the stack\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RedirectURL": "The URL that users are redirected to after their streaming session ends\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StorageConnectors": "The storage connectors to enable\\. \n*Required*: No \n*Type*: List of [StorageConnector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-storageconnector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserSettings": "The actions that are enabled or disabled for users during their streaming sessions\\. By default, these actions are enabled\\. \n*Required*: No \n*Type*: List of [UserSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-usersetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppStream::Stack AccessEndpoint": { + "EndpointType": "The type of interface endpoint\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `STREAMING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpceId": "The identifier \\(ID\\) of the VPC in which the interface endpoint is used\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppStream::Stack ApplicationSettings": { + "Enabled": "Enables or disables persistent application settings for users during their streaming sessions\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SettingsGroup": "The path prefix for the S3 bucket where users\u2019 persistent application settings are stored\\. You can allow the same persistent application settings to be used across multiple stacks by specifying the same settings group for each stack\\. \n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppStream::Stack StorageConnector": { + "ConnectorType": "The type of storage connector\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GOOGLE_DRIVE | HOMEFOLDERS | ONE_DRIVE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Domains": "The names of the domains for the account\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceIdentifier": "The ARN of the storage connector\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppStream::Stack UserSetting": { + "Action": "The action that is enabled or disabled\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CLIPBOARD_COPY_FROM_LOCAL_DEVICE | CLIPBOARD_COPY_TO_LOCAL_DEVICE | DOMAIN_PASSWORD_SIGNIN | DOMAIN_SMART_CARD_SIGNIN | FILE_DOWNLOAD | FILE_UPLOAD | PRINTING_TO_LOCAL_DEVICE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Permission": "Indicates whether the action is enabled or disabled\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppStream::StackFleetAssociation": { + "FleetName": "The name of the fleet\\. \nTo associate a fleet with a stack, you must specify a dependency on the fleet resource\\. For more information, see [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StackName": "The name of the stack\\. \nTo associate a fleet with a stack, you must specify a dependency on the stack resource\\. For more information, see [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppStream::StackUserAssociation": { + "AuthenticationType": "The authentication type for the user who is associated with the stack\\. You must specify USERPOOL\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `API | SAML | USERPOOL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SendEmailNotification": "Specifies whether a welcome email is sent to a user after the user is created in the user pool\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StackName": "The name of the stack that is associated with the user\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UserName": "The email address of the user who is associated with the stack\\. \nUsers' email addresses are case\\-sensitive\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppStream::User": { + "AuthenticationType": "The authentication type for the user\\. You must specify USERPOOL\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `API | SAML | USERPOOL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FirstName": "The first name, or given name, of the user\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `^[A-Za-z0-9_\\-\\s]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LastName": "The last name, or surname, of the user\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `^[A-Za-z0-9_\\-\\s]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MessageAction": "The action to take for the welcome email that is sent to a user after the user is created in the user pool\\. If you specify SUPPRESS, no email is sent\\. If you specify RESEND, do not specify the first name or last name of the user\\. If the value is null, the email is sent\\. \nThe temporary password in the welcome email is valid for only 7 days\\. If users don\u2019t set their passwords within 7 days, you must send them a new welcome email\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `RESEND | SUPPRESS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UserName": "The email address of the user\\. \nUsers' email addresses are case\\-sensitive\\. During login, if they specify an email address that doesn't use the same capitalization as the email address specified when their user pool account was created, a \"user does not exist\" error message displays\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppSync::ApiCache": { + "ApiCachingBehavior": "Caching behavior\\. \n+ **FULL\\_REQUEST\\_CACHING**: All requests are fully cached\\.\n+ **PER\\_RESOLVER\\_CACHING**: Individual resolvers that you specify are cached\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ApiId": "The GraphQL API ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AtRestEncryptionEnabled": "At\\-rest encryption flag for cache\\. You cannot update this setting after creation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitEncryptionEnabled": "Transit encryption flag when connecting to cache\\. You cannot update this setting after creation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ttl": "TTL in seconds for cache entries\\. \nValid values are 1\u20133,600 seconds\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The cache instance type\\. Valid values are \n+ `SMALL` \n+ `MEDIUM` \n+ `LARGE` \n+ `XLARGE` \n+ `LARGE_2X` \n+ `LARGE_4X` \n+ `LARGE_8X` \\(not available in all regions\\)\n+ `LARGE_12X` \nHistorically, instance types were identified by an EC2\\-style value\\. As of July 2020, this is deprecated, and the generic identifiers above should be used\\. \nThe following legacy instance types are available, but their use is discouraged: \n+ **T2\\_SMALL**: A t2\\.small instance type\\.\n+ **T2\\_MEDIUM**: A t2\\.medium instance type\\.\n+ **R4\\_LARGE**: A r4\\.large instance type\\.\n+ **R4\\_XLARGE**: A r4\\.xlarge instance type\\.\n+ **R4\\_2XLARGE**: A r4\\.2xlarge instance type\\.\n+ **R4\\_4XLARGE**: A r4\\.4xlarge instance type\\.\n+ **R4\\_8XLARGE**: A r4\\.8xlarge instance type\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::ApiKey": { + "ApiId": "Unique AWS AppSync GraphQL API ID for this API key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ApiKeyId": "The API key ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "Unique description of your API key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Expires": "The time after which the API key expires\\. The date is represented as seconds since the epoch, rounded down to the nearest hour\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::DataSource": { + "ApiId": "Unique AWS AppSync GraphQL API identifier where this data source will be created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "The description of the data source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DynamoDBConfig": "AWS Region and TableName for an Amazon DynamoDB table in your account\\. \n*Required*: No \n*Type*: [DynamoDBConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ElasticsearchConfig": "AWS Region and Endpoints for an Amazon OpenSearch Service domain in your account\\. \nAs of September 2021, Amazon Elasticsearch Service is Amazon OpenSearch Service\\. This property is deprecated\\. For new data sources, use *OpenSearchServiceConfig* to specify an OpenSearch Service data source\\. \n*Required*: No \n*Type*: [ElasticsearchConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-elasticsearchconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HttpConfig": "Endpoints for an HTTP data source\\. \n*Required*: No \n*Type*: [HttpConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-httpconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LambdaConfig": "An ARN of a Lambda function in valid ARN format\\. This can be the ARN of a Lambda function that exists in the current account or in another account\\. \n*Required*: No \n*Type*: [LambdaConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-lambdaconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "Friendly name for you to identify your AppSync data source after creation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OpenSearchServiceConfig": "AWS Region and Endpoints for an Amazon OpenSearch Service domain in your account\\. \n*Required*: No \n*Type*: [OpenSearchServiceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-opensearchserviceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RelationalDatabaseConfig": "Relational Database configuration of the relational database data source\\. \n*Required*: No \n*Type*: [RelationalDatabaseConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-relationaldatabaseconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceRoleArn": "The AWS Identity and Access Management service role ARN for the data source\\. The system assumes this role when accessing the data source\\. \nRequired if `Type` is specified as `AWS_LAMBDA`, `AMAZON_DYNAMODB`, `AMAZON_ELASTICSEARCH`, or `AMAZON_OPENSEARCH_SERVICE`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of the data source\\. \n+ **AWS\\_LAMBDA**: The data source is an AWS Lambda function\\.\n+ **AMAZON\\_DYNAMODB**: The data source is an Amazon DynamoDB table\\.\n+ **AMAZON\\_ELASTICSEARCH**: The data source is an Amazon OpenSearch Service domain\\.\n+ **AMAZON\\_OPENSEARCH\\_SERVICE**: The data source is an Amazon OpenSearch Service domain\\.\n+ **NONE**: There is no data source\\. This type is used when you wish to invoke a GraphQL operation without connecting to a data source, such as performing data transformation with resolvers or triggering a subscription to be invoked from a mutation\\.\n+ **HTTP**: The data source is an HTTP endpoint\\.\n+ **RELATIONAL\\_DATABASE**: The data source is a relational database\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::DataSource AuthorizationConfig": { + "AuthorizationType": "The authorization type that the HTTP endpoint requires\\. \n+ **AWS\\_IAM**: The authorization type is Signature Version 4 \\(SigV4\\)\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AwsIamConfig": "The AWS Identity and Access Management settings\\. \n*Required*: No \n*Type*: [AwsIamConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-awsiamconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::DataSource AwsIamConfig": { + "SigningRegion": "The signing Region for AWS Identity and Access Management authorization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SigningServiceName": "The signing service name for AWS Identity and Access Management authorization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::DataSource DeltaSyncConfig": { + "BaseTableTTL": "The number of minutes that an Item is stored in the data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeltaSyncTableName": "The Delta Sync table name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeltaSyncTableTTL": "The number of minutes that a Delta Sync log entry is stored in the Delta Sync table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::DataSource DynamoDBConfig": { + "AwsRegion": "The AWS Region\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeltaSyncConfig": "The `DeltaSyncConfig` for a versioned datasource\\. \n*Required*: No \n*Type*: [DeltaSyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-deltasyncconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TableName": "The table name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UseCallerCredentials": "Set to `TRUE` to use AWS Identity and Access Management with this data source\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Versioned": "Set to TRUE to use Conflict Detection and Resolution with this data source\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::DataSource ElasticsearchConfig": { + "AwsRegion": "The AWS Region\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Endpoint": "The endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::DataSource HttpConfig": { + "AuthorizationConfig": "The authorization configuration\\. \n*Required*: No \n*Type*: [AuthorizationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-authorizationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Endpoint": "The endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::DataSource LambdaConfig": { + "LambdaFunctionArn": "The ARN for the Lambda function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::DataSource OpenSearchServiceConfig": { + "AwsRegion": "The AWS Region\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Endpoint": "The endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::DataSource RdsHttpEndpointConfig": { + "AwsRegion": "AWS Region for RDS HTTP endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AwsSecretStoreArn": "The ARN for database credentials stored in AWS Secrets Manager\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseName": "Logical database name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DbClusterIdentifier": "Amazon RDS cluster Amazon Resource Name \\(ARN\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Schema": "Logical schema name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::DataSource RelationalDatabaseConfig": { + "RdsHttpEndpointConfig": "Information about the Amazon RDS resource\\. \n*Required*: No \n*Type*: [RdsHttpEndpointConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-rdshttpendpointconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RelationalDatabaseSourceType": "The type of relational data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::DomainName": { + "CertificateArn": "The Amazon Resource Name \\(ARN\\) of the certificate\\. This will be an AWS Certificate Manager certificate\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "The decription for your domain name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainName": "The domain name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppSync::DomainNameApiAssociation": { + "ApiId": "The API ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainName": "The domain name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppSync::FunctionConfiguration": { + "ApiId": "The AWS AppSync GraphQL API that you want to attach using this function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DataSourceName": "The name of data source this function will attach\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The `Function` description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FunctionVersion": "The version of the request mapping template\\. Currently, only the 2018\\-05\\-29 version of the template is supported\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxBatchSize": "The maximum number of resolver request inputs that will be sent to a single AWS Lambda function in a `BatchInvoke` operation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequestMappingTemplate": "The `Function` request mapping template\\. Functions support only the 2018\\-05\\-29 version of the request mapping template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequestMappingTemplateS3Location": "Describes a Sync configuration for a resolver\\. \nContains information on which Conflict Detection, as well as Resolution strategy, should be performed when the resolver is invoked\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResponseMappingTemplate": "The `Function` response mapping template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResponseMappingTemplateS3Location": "The location of a response mapping template in an Amazon S3 bucket\\. Use this if you want to provision with a template file in Amazon S3 rather than embedding it in your CloudFormation template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SyncConfig": "Describes a Sync configuration for a resolver\\. \nSpecifies which Conflict Detection strategy and Resolution strategy to use when the resolver is invoked\\. \n*Required*: No \n*Type*: [SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-syncconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::FunctionConfiguration LambdaConflictHandlerConfig": { + "LambdaConflictHandlerArn": "The Amazon Resource Name \\(ARN\\) for the Lambda function to use as the Conflict Handler\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::FunctionConfiguration SyncConfig": { + "ConflictDetection": "The Conflict Detection strategy to use\\. \n+ **VERSION**: Detect conflicts based on object versions for this resolver\\.\n+ **NONE**: Do not detect conflicts when invoking this resolver\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConflictHandler": "The Conflict Resolution strategy to perform in the event of a conflict\\. \n+ **OPTIMISTIC\\_CONCURRENCY**: Resolve conflicts by rejecting mutations when versions don't match the latest version at the server\\.\n+ **AUTOMERGE**: Resolve conflicts with the Automerge conflict resolution strategy\\.\n+ **LAMBDA**: Resolve conflicts with an AWS Lambda function supplied in the `LambdaConflictHandlerConfig`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LambdaConflictHandlerConfig": "The `LambdaConflictHandlerConfig` when configuring `LAMBDA` as the Conflict Handler\\. \n*Required*: No \n*Type*: [LambdaConflictHandlerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-lambdaconflicthandlerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::GraphQLApi": { + "AdditionalAuthenticationProviders": "A list of additional authentication providers for the `GraphqlApi` API\\. \n*Required*: No \n*Type*: [AdditionalAuthenticationProviders](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationproviders.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthenticationType": "Security configuration for your GraphQL API\\. For allowed values \\(such as `API_KEY`, `AWS_IAM`, `AMAZON_COGNITO_USER_POOLS`, `OPENID_CONNECT`, or `AWS_LAMBDA`\\), see [Security](https://docs.aws.amazon.com/appsync/latest/devguide/security.html) in the *AWS AppSync Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LambdaAuthorizerConfig": "A `LambdaAuthorizerConfig` holds configuration on how to authorize AWS AppSync API access when using the `AWS_LAMBDA` authorizer mode\\. Be aware that an AWS AppSync API may have only one Lambda authorizer configured at a time\\. \n*Required*: No \n*Type*: [LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogConfig": "The Amazon CloudWatch Logs configuration\\. \n*Required*: No \n*Type*: [LogConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-logconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The API name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OpenIDConnectConfig": "The OpenID Connect configuration\\. \n*Required*: No \n*Type*: [OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An arbitrary set of tags \\(key\\-value pairs\\) for this GraphQL API\\. \n*Required*: No \n*Type*: [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserPoolConfig": "Optional authorization configuration for using Amazon Cognito user pools with your GraphQL endpoint\\. \n*Required*: No \n*Type*: [UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "XrayEnabled": "A flag indicating whether to use AWS X\\-Ray tracing for this `GraphqlApi`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::GraphQLApi AdditionalAuthenticationProvider": { + "AuthenticationType": "The authentication type for API key, AWS Identity and Access Management, OIDC, Amazon Cognito user pools, or AWS Lambda\\. \nValid Values: `API_KEY` \\| `AWS_IAM` \\| `OPENID_CONNECT` \\| `AMAZON_COGNITO_USER_POOLS` \\| `AWS_LAMBDA` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LambdaAuthorizerConfig": "Configuration for AWS Lambda function authorization\\. \n*Required*: No \n*Type*: [LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OpenIDConnectConfig": "The OIDC configuration\\. \n*Required*: No \n*Type*: [OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserPoolConfig": "The Amazon Cognito user pool configuration\\. \n*Required*: No \n*Type*: [CognitoUserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-cognitouserpoolconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::GraphQLApi CognitoUserPoolConfig": { + "AppIdClientRegex": "A regular expression for validating the incoming Amazon Cognito user pool app client ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AwsRegion": "The AWS Region in which the user pool was created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserPoolId": "The user pool ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::GraphQLApi LambdaAuthorizerConfig": { + "AuthorizerResultTtlInSeconds": "The number of seconds a response should be cached for\\. The default is 5 minutes \\(300 seconds\\)\\. The Lambda function can override this by returning a `ttlOverride` key in its response\\. A value of 0 disables caching of responses\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthorizerUri": "The ARN of the Lambda function to be called for authorization\\. This may be a standard Lambda ARN, a version ARN \\(`.../v3`\\) or alias ARN\\. \n*Note*: This Lambda function must have the following resource\\-based policy assigned to it\\. When configuring Lambda authorizers in the console, this is done for you\\. To do so with the AWS CLI, run the following: \n`aws lambda add-permission --function-name \"arn:aws:lambda:us-east-2:111122223333:function:my-function\" --statement-id \"appsync\" --principal appsync.amazonaws.com --action lambda:InvokeFunction` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IdentityValidationExpression": "A regular expression for validation of tokens before the Lambda function is called\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::GraphQLApi LogConfig": { + "CloudWatchLogsRoleArn": "The service role that AWS AppSync will assume to publish to Amazon CloudWatch Logs in your account\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExcludeVerboseContent": "Set to TRUE to exclude sections that contain information such as headers, context, and evaluated mapping templates, regardless of logging level\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FieldLogLevel": "The field logging level\\. Values can be NONE, ERROR, or ALL\\. \n+ **NONE**: No field\\-level logs are captured\\.\n+ **ERROR**: Logs the following information only for the fields that are in error:\n + The error section in the server response\\.\n + Field\\-level errors\\.\n + The generated request/response functions that got resolved for error fields\\.\n+ **ALL**: The following information is logged for all fields in the query:\n + Field\\-level tracing information\\.\n + The generated request/response functions that got resolved for each field\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::GraphQLApi OpenIDConnectConfig": { + "AuthTTL": "The number of milliseconds that a token is valid after being authenticated\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientId": "The client identifier of the Relying party at the OpenID identity provider\\. This identifier is typically obtained when the Relying party is registered with the OpenID identity provider\\. You can specify a regular expression so that AWS AppSync can validate against multiple client identifiers at a time\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IatTTL": "The number of milliseconds that a token is valid after it's issued to a user\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Issuer": "The issuer for the OIDC configuration\\. The issuer returned by discovery must exactly match the value of `iss` in the ID token\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::GraphQLApi UserPoolConfig": { + "AppIdClientRegex": "A regular expression for validating the incoming Amazon Cognito user pool app client ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AwsRegion": "The AWS Region in which the user pool was created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultAction": "The action that you want your GraphQL API to take when a request that uses Amazon Cognito user pool authentication doesn't match the Amazon Cognito user pool configuration\\. \nWhen specifying Amazon Cognito user pools as the default authentication, you must set the value for `DefaultAction` to `ALLOW` if specifying `AdditionalAuthenticationProviders`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserPoolId": "The user pool ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::GraphQLSchema": { + "ApiId": "The AWS AppSync GraphQL API identifier to which you want to apply this schema\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Definition": "The text representation of a GraphQL schema in SDL format\\. \nFor more information about using the `Ref` function, see [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefinitionS3Location": "The location of a GraphQL schema file in an Amazon S3 bucket\\. Use this if you want to provision with the schema living in Amazon S3 rather than embedding it in your CloudFormation template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::Resolver": { + "ApiId": "The AWS AppSync GraphQL API to which you want to attach this resolver\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CachingConfig": "The caching configuration for the resolver\\. \n*Required*: No \n*Type*: [CachingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-cachingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataSourceName": "The resolver data source name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FieldName": "The GraphQL field on a type that invokes the resolver\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Kind": "The resolver type\\. \n+ **UNIT**: A UNIT resolver type\\. A UNIT resolver is the default resolver type\\. You can use a UNIT resolver to run a GraphQL query against a single data source\\.\n+ **PIPELINE**: A PIPELINE resolver type\\. You can use a PIPELINE resolver to invoke a series of `Function` objects in a serial manner\\. You can use a pipeline resolver to run a GraphQL query against multiple data sources\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxBatchSize": "The maximum number of resolver request inputs that will be sent to a single AWS Lambda function in a `BatchInvoke` operation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PipelineConfig": "Functions linked with the pipeline resolver\\. \n*Required*: No \n*Type*: [PipelineConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-pipelineconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequestMappingTemplate": "The request mapping template\\. \nRequest mapping templates are optional when using a Lambda data source\\. For all other data sources, a request mapping template is required\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequestMappingTemplateS3Location": "The location of a request mapping template in an Amazon S3 bucket\\. Use this if you want to provision with a template file in Amazon S3 rather than embedding it in your CloudFormation template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResponseMappingTemplate": "The response mapping template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResponseMappingTemplateS3Location": "The location of a response mapping template in an Amazon S3 bucket\\. Use this if you want to provision with a template file in Amazon S3 rather than embedding it in your CloudFormation template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SyncConfig": "The `SyncConfig` for a resolver attached to a versioned data source\\. \n*Required*: No \n*Type*: [SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-syncconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TypeName": "The GraphQL type that invokes this resolver\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AppSync::Resolver CachingConfig": { + "CachingKeys": "The caching keys for a resolver that has caching activated\\. \nValid values are entries from the `$context.arguments`, `$context.source`, and `$context.identity` maps\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ttl": "The TTL in seconds for a resolver that has caching activated\\. \nValid values are 1\u20133,600 seconds\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::Resolver LambdaConflictHandlerConfig": { + "LambdaConflictHandlerArn": "The Amazon Resource Name \\(ARN\\) for the Lambda function to use as the Conflict Handler\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::Resolver PipelineConfig": { + "Functions": "A list of `Function` objects\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AppSync::Resolver SyncConfig": { + "ConflictDetection": "The Conflict Detection strategy to use\\. \n+ **VERSION**: Detect conflicts based on object versions for this resolver\\.\n+ **NONE**: Do not detect conflicts when invoking this resolver\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConflictHandler": "The Conflict Resolution strategy to perform in the event of a conflict\\. \n+ **OPTIMISTIC\\_CONCURRENCY**: Resolve conflicts by rejecting mutations when versions don't match the latest version at the server\\.\n+ **AUTOMERGE**: Resolve conflicts with the Automerge conflict resolution strategy\\.\n+ **LAMBDA**: Resolve conflicts with an AWS Lambda function supplied in the `LambdaConflictHandlerConfig`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LambdaConflictHandlerConfig": "The `LambdaConflictHandlerConfig` when configuring `LAMBDA` as the Conflict Handler\\. \n*Required*: No \n*Type*: [LambdaConflictHandlerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-lambdaconflicthandlerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationAutoScaling::ScalableTarget": { + "MaxCapacity": "The maximum value that you plan to scale out to\\. When a scaling policy is in effect, Application Auto Scaling can scale out \\(expand\\) as needed to the maximum capacity limit in response to changing demand\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinCapacity": "The minimum value that you plan to scale in to\\. When a scaling policy is in effect, Application Auto Scaling can scale in \\(contract\\) as needed to the minimum capacity limit in response to changing demand\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceId": "The identifier of the resource associated with the scalable target\\. This string consists of the resource type and unique identifier\\. \n+ ECS service \\- The resource type is `service` and the unique identifier is the cluster name and service name\\. Example: `service/default/sample-webapp`\\.\n+ Spot Fleet \\- The resource type is `spot-fleet-request` and the unique identifier is the Spot Fleet request ID\\. Example: `spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE`\\.\n+ EMR cluster \\- The resource type is `instancegroup` and the unique identifier is the cluster ID and instance group ID\\. Example: `instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0`\\.\n+ AppStream 2\\.0 fleet \\- The resource type is `fleet` and the unique identifier is the fleet name\\. Example: `fleet/sample-fleet`\\.\n+ DynamoDB table \\- The resource type is `table` and the unique identifier is the table name\\. Example: `table/my-table`\\.\n+ DynamoDB global secondary index \\- The resource type is `index` and the unique identifier is the index name\\. Example: `table/my-table/index/my-table-index`\\.\n+ Aurora DB cluster \\- The resource type is `cluster` and the unique identifier is the cluster name\\. Example: `cluster:my-db-cluster`\\.\n+ SageMaker endpoint variant \\- The resource type is `variant` and the unique identifier is the resource ID\\. Example: `endpoint/my-end-point/variant/KMeansClustering`\\.\n+ Custom resources are not supported with a resource type\\. This parameter must specify the `OutputValue` from the CloudFormation template stack used to access the resources\\. The unique identifier is defined by the service provider\\. More information is available in our [GitHub repository](https://github.com/aws/aws-auto-scaling-custom-resource)\\.\n+ Amazon Comprehend document classification endpoint \\- The resource type and unique identifier are specified using the endpoint ARN\\. Example: `arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE`\\.\n+ Amazon Comprehend entity recognizer endpoint \\- The resource type and unique identifier are specified using the endpoint ARN\\. Example: `arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE`\\.\n+ Lambda provisioned concurrency \\- The resource type is `function` and the unique identifier is the function name with a function version or alias name suffix that is not `$LATEST`\\. Example: `function:my-function:prod` or `function:my-function:1`\\.\n+ Amazon Keyspaces table \\- The resource type is `table` and the unique identifier is the table name\\. Example: `keyspace/mykeyspace/table/mytable`\\.\n+ Amazon MSK cluster \\- The resource type and unique identifier are specified using the cluster ARN\\. Example: `arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5`\\.\n+ Amazon ElastiCache replication group \\- The resource type is `replication-group` and the unique identifier is the replication group name\\. Example: `replication-group/mycluster`\\.\n+ Neptune cluster \\- The resource type is `cluster` and the unique identifier is the cluster name\\. Example: `cluster:mycluster`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RoleARN": "Specify the Amazon Resource Name \\(ARN\\) of an Identity and Access Management \\(IAM\\) role that allows Application Auto Scaling to modify the scalable target on your behalf\\. This can be either an IAM service role that Application Auto Scaling can assume to make calls to other AWS resources on your behalf, or a service\\-linked role for the specified service\\. For more information, see [How Application Auto Scaling works with IAM](https://docs.aws.amazon.com/autoscaling/application/userguide/security_iam_service-with-iam.html) in the *Application Auto Scaling User Guide*\\. \nTo automatically create a service\\-linked role \\(recommended\\), specify the full ARN of the service\\-linked role in your stack template\\. To find the exact ARN of the service\\-linked role for your AWS or custom resource, see the [Service\\-linked roles](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-service-linked-roles.html) topic in the *Application Auto Scaling User Guide*\\. Look for the ARN in the table at the bottom of the page\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScalableDimension": "The scalable dimension associated with the scalable target\\. This string consists of the service namespace, resource type, and scaling property\\. \n+ `ecs:service:DesiredCount` \\- The desired task count of an ECS service\\.\n+ `elasticmapreduce:instancegroup:InstanceCount` \\- The instance count of an EMR Instance Group\\.\n+ `ec2:spot-fleet-request:TargetCapacity` \\- The target capacity of a Spot Fleet\\.\n+ `appstream:fleet:DesiredCapacity` \\- The desired capacity of an AppStream 2\\.0 fleet\\.\n+ `dynamodb:table:ReadCapacityUnits` \\- The provisioned read capacity for a DynamoDB table\\.\n+ `dynamodb:table:WriteCapacityUnits` \\- The provisioned write capacity for a DynamoDB table\\.\n+ `dynamodb:index:ReadCapacityUnits` \\- The provisioned read capacity for a DynamoDB global secondary index\\.\n+ `dynamodb:index:WriteCapacityUnits` \\- The provisioned write capacity for a DynamoDB global secondary index\\.\n+ `rds:cluster:ReadReplicaCount` \\- The count of Aurora Replicas in an Aurora DB cluster\\. Available for Aurora MySQL\\-compatible edition and Aurora PostgreSQL\\-compatible edition\\.\n+ `sagemaker:variant:DesiredInstanceCount` \\- The number of EC2 instances for a SageMaker model endpoint variant\\.\n+ `custom-resource:ResourceType:Property` \\- The scalable dimension for a custom resource provided by your own application or service\\.\n+ `comprehend:document-classifier-endpoint:DesiredInferenceUnits` \\- The number of inference units for an Amazon Comprehend document classification endpoint\\.\n+ `comprehend:entity-recognizer-endpoint:DesiredInferenceUnits` \\- The number of inference units for an Amazon Comprehend entity recognizer endpoint\\.\n+ `lambda:function:ProvisionedConcurrency` \\- The provisioned concurrency for a Lambda function\\.\n+ `cassandra:table:ReadCapacityUnits` \\- The provisioned read capacity for an Amazon Keyspaces table\\.\n+ `cassandra:table:WriteCapacityUnits` \\- The provisioned write capacity for an Amazon Keyspaces table\\.\n+ `kafka:broker-storage:VolumeSize` \\- The provisioned volume size \\(in GiB\\) for brokers in an Amazon MSK cluster\\.\n+ `elasticache:replication-group:NodeGroups` \\- The number of node groups for an Amazon ElastiCache replication group\\.\n+ `elasticache:replication-group:Replicas` \\- The number of replicas per node group for an Amazon ElastiCache replication group\\.\n+ `neptune:cluster:ReadReplicaCount` \\- The count of read replicas in an Amazon Neptune DB cluster\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `appstream:fleet:DesiredCapacity | cassandra:table:ReadCapacityUnits | cassandra:table:WriteCapacityUnits | comprehend:document-classifier-endpoint:DesiredInferenceUnits | comprehend:entity-recognizer-endpoint:DesiredInferenceUnits | custom-resource:ResourceType:Property | dynamodb:index:ReadCapacityUnits | dynamodb:index:WriteCapacityUnits | dynamodb:table:ReadCapacityUnits | dynamodb:table:WriteCapacityUnits | ec2:spot-fleet-request:TargetCapacity | ecs:service:DesiredCount | elasticache:replication-group:NodeGroups | elasticache:replication-group:Replicas | elasticmapreduce:instancegroup:InstanceCount | kafka:broker-storage:VolumeSize | lambda:function:ProvisionedConcurrency | neptune:cluster:ReadReplicaCount | rds:cluster:ReadReplicaCount | sagemaker:variant:DesiredInstanceCount` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ScheduledActions": "The scheduled actions for the scalable target\\. Duplicates aren't allowed\\. \nFor more information about using scheduled scaling, see [Scheduled scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scheduled-scaling.html) in the *Application Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: List of [ScheduledAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceNamespace": "The namespace of the AWS service that provides the resource, or a `custom-resource`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `appstream | cassandra | comprehend | custom-resource | dynamodb | ec2 | ecs | elasticache | elasticmapreduce | kafka | lambda | neptune | rds | sagemaker` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SuspendedState": "An embedded object that contains attributes and attribute values that are used to suspend and resume automatic scaling\\. Setting the value of an attribute to `true` suspends the specified scaling activities\\. Setting it to `false` \\(default\\) resumes the specified scaling activities\\. \n**Suspension Outcomes** \n+ For `DynamicScalingInSuspended`, while a suspension is in effect, all scale\\-in activities that are triggered by a scaling policy are suspended\\.\n+ For `DynamicScalingOutSuspended`, while a suspension is in effect, all scale\\-out activities that are triggered by a scaling policy are suspended\\.\n+ For `ScheduledScalingSuspended`, while a suspension is in effect, all scaling activities that involve scheduled actions are suspended\\. \nFor more information, see [Suspending and resuming scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-suspend-resume-scaling.html) in the *Application Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: [SuspendedState](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-suspendedstate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationAutoScaling::ScalableTarget ScalableTargetAction": { + "MaxCapacity": "The maximum capacity\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinCapacity": "The minimum capacity\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationAutoScaling::ScalableTarget ScheduledAction": { + "EndTime": "The date and time that the action is scheduled to end, in UTC\\. \n*Required*: No \n*Type*: Timestamp \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScalableTargetAction": "The new minimum and maximum capacity\\. You can set both values or just one\\. At the scheduled time, if the current capacity is below the minimum capacity, Application Auto Scaling scales out to the minimum capacity\\. If the current capacity is above the maximum capacity, Application Auto Scaling scales in to the maximum capacity\\. \n*Required*: No \n*Type*: [ScalableTargetAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scalabletargetaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Schedule": "The schedule for this action\\. The following formats are supported: \n+ At expressions \\- \"`at(yyyy-mm-ddThh:mm:ss)`\"\n+ Rate expressions \\- \"`rate(value unit)`\"\n+ Cron expressions \\- \"`cron(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/fields.html)`\"\nAt expressions are useful for one\\-time schedules\\. Cron expressions are useful for scheduled actions that run periodically at a specified date and time, and rate expressions are useful for scheduled actions that run at a regular interval\\. \nAt and cron expressions use Universal Coordinated Time \\(UTC\\) by default\\. \nThe cron format consists of six https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/fields.html separated by white spaces: \\[Minutes\\] \\[Hours\\] \\[Day\\_of\\_Month\\] \\[Month\\] \\[Day\\_of\\_Week\\] \\[Year\\]\\. \nFor rate expressions, *value* is a positive integer and *unit* is `minute` \\| `minutes` \\| `hour` \\| `hours` \\| `day` \\| `days`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduledActionName": "The name of the scheduled action\\. This name must be unique among all other scheduled actions on the specified scalable target\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `(?!((^[ ]+.*)|(.*([\\u0000-\\u001f]|[\\u007f-\\u009f]|[:/|])+.*)|(.*[ ]+$))).+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StartTime": "The date and time that the action is scheduled to begin, in UTC\\. \n*Required*: No \n*Type*: Timestamp \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Timezone": "The time zone used when referring to the date and time of a scheduled action, when the scheduled action uses an at or cron expression\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationAutoScaling::ScalableTarget SuspendedState": { + "DynamicScalingInSuspended": "Whether scale in by a target tracking scaling policy or a step scaling policy is suspended\\. Set the value to `true` if you don't want Application Auto Scaling to remove capacity when a scaling policy is triggered\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DynamicScalingOutSuspended": "Whether scale out by a target tracking scaling policy or a step scaling policy is suspended\\. Set the value to `true` if you don't want Application Auto Scaling to add capacity when a scaling policy is triggered\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduledScalingSuspended": "Whether scheduled scaling is suspended\\. Set the value to `true` if you don't want Application Auto Scaling to add or remove capacity by initiating scheduled actions\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy": { + "PolicyName": "The name of the scaling policy\\. \nUpdates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling\\. To change only a target tracking scaling policy's name, first delete the policy by removing the existing `AWS::ApplicationAutoScaling::ScalingPolicy` resource from the template and updating the stack\\. Then, recreate the resource with the same settings and a different name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `\\p{Print}+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PolicyType": "The scaling policy type\\. \nThe following policy types are supported: \n `TargetTrackingScaling`\u2014Not supported for Amazon EMR \n `StepScaling`\u2014Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `StepScaling | TargetTrackingScaling` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceId": "The identifier of the resource associated with the scaling policy\\. This string consists of the resource type and unique identifier\\. \n+ ECS service \\- The resource type is `service` and the unique identifier is the cluster name and service name\\. Example: `service/default/sample-webapp`\\.\n+ Spot Fleet \\- The resource type is `spot-fleet-request` and the unique identifier is the Spot Fleet request ID\\. Example: `spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE`\\.\n+ EMR cluster \\- The resource type is `instancegroup` and the unique identifier is the cluster ID and instance group ID\\. Example: `instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0`\\.\n+ AppStream 2\\.0 fleet \\- The resource type is `fleet` and the unique identifier is the fleet name\\. Example: `fleet/sample-fleet`\\.\n+ DynamoDB table \\- The resource type is `table` and the unique identifier is the table name\\. Example: `table/my-table`\\.\n+ DynamoDB global secondary index \\- The resource type is `index` and the unique identifier is the index name\\. Example: `table/my-table/index/my-table-index`\\.\n+ Aurora DB cluster \\- The resource type is `cluster` and the unique identifier is the cluster name\\. Example: `cluster:my-db-cluster`\\.\n+ SageMaker endpoint variant \\- The resource type is `variant` and the unique identifier is the resource ID\\. Example: `endpoint/my-end-point/variant/KMeansClustering`\\.\n+ Custom resources are not supported with a resource type\\. This parameter must specify the `OutputValue` from the CloudFormation template stack used to access the resources\\. The unique identifier is defined by the service provider\\. More information is available in our [GitHub repository](https://github.com/aws/aws-auto-scaling-custom-resource)\\.\n+ Amazon Comprehend document classification endpoint \\- The resource type and unique identifier are specified using the endpoint ARN\\. Example: `arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE`\\.\n+ Amazon Comprehend entity recognizer endpoint \\- The resource type and unique identifier are specified using the endpoint ARN\\. Example: `arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE`\\.\n+ Lambda provisioned concurrency \\- The resource type is `function` and the unique identifier is the function name with a function version or alias name suffix that is not `$LATEST`\\. Example: `function:my-function:prod` or `function:my-function:1`\\.\n+ Amazon Keyspaces table \\- The resource type is `table` and the unique identifier is the table name\\. Example: `keyspace/mykeyspace/table/mytable`\\.\n+ Amazon MSK cluster \\- The resource type and unique identifier are specified using the cluster ARN\\. Example: `arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5`\\.\n+ Amazon ElastiCache replication group \\- The resource type is `replication-group` and the unique identifier is the replication group name\\. Example: `replication-group/mycluster`\\.\n+ Neptune cluster \\- The resource type is `cluster` and the unique identifier is the cluster name\\. Example: `cluster:mycluster`\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ScalableDimension": "The scalable dimension\\. This string consists of the service namespace, resource type, and scaling property\\. \n+ `ecs:service:DesiredCount` \\- The desired task count of an ECS service\\.\n+ `elasticmapreduce:instancegroup:InstanceCount` \\- The instance count of an EMR Instance Group\\.\n+ `ec2:spot-fleet-request:TargetCapacity` \\- The target capacity of a Spot Fleet\\.\n+ `appstream:fleet:DesiredCapacity` \\- The desired capacity of an AppStream 2\\.0 fleet\\.\n+ `dynamodb:table:ReadCapacityUnits` \\- The provisioned read capacity for a DynamoDB table\\.\n+ `dynamodb:table:WriteCapacityUnits` \\- The provisioned write capacity for a DynamoDB table\\.\n+ `dynamodb:index:ReadCapacityUnits` \\- The provisioned read capacity for a DynamoDB global secondary index\\.\n+ `dynamodb:index:WriteCapacityUnits` \\- The provisioned write capacity for a DynamoDB global secondary index\\.\n+ `rds:cluster:ReadReplicaCount` \\- The count of Aurora Replicas in an Aurora DB cluster\\. Available for Aurora MySQL\\-compatible edition and Aurora PostgreSQL\\-compatible edition\\.\n+ `sagemaker:variant:DesiredInstanceCount` \\- The number of EC2 instances for a SageMaker model endpoint variant\\.\n+ `custom-resource:ResourceType:Property` \\- The scalable dimension for a custom resource provided by your own application or service\\.\n+ `comprehend:document-classifier-endpoint:DesiredInferenceUnits` \\- The number of inference units for an Amazon Comprehend document classification endpoint\\.\n+ `comprehend:entity-recognizer-endpoint:DesiredInferenceUnits` \\- The number of inference units for an Amazon Comprehend entity recognizer endpoint\\.\n+ `lambda:function:ProvisionedConcurrency` \\- The provisioned concurrency for a Lambda function\\.\n+ `cassandra:table:ReadCapacityUnits` \\- The provisioned read capacity for an Amazon Keyspaces table\\.\n+ `cassandra:table:WriteCapacityUnits` \\- The provisioned write capacity for an Amazon Keyspaces table\\.\n+ `kafka:broker-storage:VolumeSize` \\- The provisioned volume size \\(in GiB\\) for brokers in an Amazon MSK cluster\\.\n+ `elasticache:replication-group:NodeGroups` \\- The number of node groups for an Amazon ElastiCache replication group\\.\n+ `elasticache:replication-group:Replicas` \\- The number of replicas per node group for an Amazon ElastiCache replication group\\.\n+ `neptune:cluster:ReadReplicaCount` \\- The count of read replicas in an Amazon Neptune DB cluster\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `appstream:fleet:DesiredCapacity | cassandra:table:ReadCapacityUnits | cassandra:table:WriteCapacityUnits | comprehend:document-classifier-endpoint:DesiredInferenceUnits | comprehend:entity-recognizer-endpoint:DesiredInferenceUnits | custom-resource:ResourceType:Property | dynamodb:index:ReadCapacityUnits | dynamodb:index:WriteCapacityUnits | dynamodb:table:ReadCapacityUnits | dynamodb:table:WriteCapacityUnits | ec2:spot-fleet-request:TargetCapacity | ecs:service:DesiredCount | elasticache:replication-group:NodeGroups | elasticache:replication-group:Replicas | elasticmapreduce:instancegroup:InstanceCount | kafka:broker-storage:VolumeSize | lambda:function:ProvisionedConcurrency | neptune:cluster:ReadReplicaCount | rds:cluster:ReadReplicaCount | sagemaker:variant:DesiredInstanceCount` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ScalingTargetId": "The CloudFormation\\-generated ID of an Application Auto Scaling scalable target\\. For more information about the ID, see the Return Value section of the `AWS::ApplicationAutoScaling::ScalableTarget` resource\\. \nYou must specify either the `ScalingTargetId` property, or the `ResourceId`, `ScalableDimension`, and `ServiceNamespace` properties, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ServiceNamespace": "The namespace of the AWS service that provides the resource, or a `custom-resource`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `appstream | cassandra | comprehend | custom-resource | dynamodb | ec2 | ecs | elasticache | elasticmapreduce | kafka | lambda | neptune | rds | sagemaker` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StepScalingPolicyConfiguration": "A step scaling policy\\. \n*Required*: No \n*Type*: [StepScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetTrackingScalingPolicyConfiguration": "A target tracking scaling policy\\. \n*Required*: No \n*Type*: [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy CustomizedMetricSpecification": { + "Dimensions": "The dimensions of the metric\\. \nConditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy\\. \n*Required*: No \n*Type*: List of [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricName": "The name of the metric\\. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Namespace": "The namespace of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Statistic": "The statistic of the metric\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Average | Maximum | Minimum | SampleCount | Sum` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Unit": "The unit of the metric\\. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy MetricDimension": { + "Name": "The name of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy PredefinedMetricSpecification": { + "PredefinedMetricType": "The metric type\\. The `ALBRequestCountPerTarget` metric type applies only to Spot fleet requests and ECS services\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALBRequestCountPerTarget | AppStreamAverageCapacityUtilization | CassandraReadCapacityUtilization | CassandraWriteCapacityUtilization | ComprehendInferenceUtilization | DynamoDBReadCapacityUtilization | DynamoDBWriteCapacityUtilization | EC2SpotFleetRequestAverageCPUUtilization | EC2SpotFleetRequestAverageNetworkIn | EC2SpotFleetRequestAverageNetworkOut | ECSServiceAverageCPUUtilization | ECSServiceAverageMemoryUtilization | ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage | ElastiCachePrimaryEngineCPUUtilization | ElastiCacheReplicaEngineCPUUtilization | KafkaBrokerStorageUtilization | LambdaProvisionedConcurrencyUtilization | NeptuneReaderAverageCPUUtilization | RDSReaderAverageCPUUtilization | RDSReaderAverageDatabaseConnections | SageMakerVariantInvocationsPerInstance` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceLabel": "Identifies the resource associated with the metric type\\. You can't specify a resource label unless the metric type is `ALBRequestCountPerTarget` and there is a target group attached to the Spot Fleet or ECS service\\. \nYou create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash \\(/\\)\\. The format of the resource label is: \n `app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff`\\. \nWhere: \n+ app// is the final portion of the load balancer ARN\n+ targetgroup// is the final portion of the target group ARN\\.\nTo find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation\\. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1023` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy StepAdjustment": { + "MetricIntervalLowerBound": "The lower bound for the difference between the alarm threshold and the CloudWatch metric\\. If the metric value is above the breach threshold, the lower bound is inclusive \\(the metric must be greater than or equal to the threshold plus the lower bound\\)\\. Otherwise, it is exclusive \\(the metric must be greater than the threshold plus the lower bound\\)\\. A null value indicates negative infinity\\. \nYou must specify at least one upper or lower bound\\. \n*Required*: Conditional \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricIntervalUpperBound": "The upper bound for the difference between the alarm threshold and the CloudWatch metric\\. If the metric value is above the breach threshold, the upper bound is exclusive \\(the metric must be less than the threshold plus the upper bound\\)\\. Otherwise, it is inclusive \\(the metric must be less than or equal to the threshold plus the upper bound\\)\\. A null value indicates positive infinity\\. \nYou must specify at least one upper or lower bound\\. \n*Required*: Conditional \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScalingAdjustment": "The amount by which to scale\\. The adjustment is based on the value that you specified in the `AdjustmentType` property \\(either an absolute number or a percentage\\)\\. A positive value adds to the current capacity and a negative number subtracts from the current capacity\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy StepScalingPolicyConfiguration": { + "AdjustmentType": "Specifies whether the `ScalingAdjustment` value in the `StepAdjustment` property is an absolute number or a percentage of the current capacity\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ChangeInCapacity | ExactCapacity | PercentChangeInCapacity` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Cooldown": "The amount of time, in seconds, to wait for a previous scaling activity to take effect\\. \nWith scale\\-out policies, the intention is to continuously \\(but not excessively\\) scale out\\. After Application Auto Scaling successfully scales out using a step scaling policy, it starts to calculate the cooldown time\\. The scaling policy won't increase the desired capacity again unless either a larger scale out is triggered or the cooldown period ends\\. While the cooldown period is in effect, capacity added by the initiating scale\\-out activity is calculated as part of the desired capacity for the next scale\\-out activity\\. For example, when an alarm triggers a step scaling policy to increase the capacity by 2, the scaling activity completes successfully, and a cooldown period starts\\. If the alarm triggers again during the cooldown period but at a more aggressive step adjustment of 3, the previous increase of 2 is considered part of the current capacity\\. Therefore, only 1 is added to the capacity\\. \nWith scale\\-in policies, the intention is to scale in conservatively to protect your application\u2019s availability, so scale\\-in activities are blocked until the cooldown period has expired\\. However, if another alarm triggers a scale\\-out activity during the cooldown period after a scale\\-in activity, Application Auto Scaling scales out the target immediately\\. In this case, the cooldown period for the scale\\-in activity stops and doesn't complete\\. \nApplication Auto Scaling provides a default value of 600 for Amazon ElastiCache replication groups and a default value of 300 for the following scalable targets: \n+ AppStream 2\\.0 fleets\n+ Aurora DB clusters\n+ ECS services\n+ EMR clusters\n+ Neptune clusters\n+ SageMaker endpoint variants\n+ Spot Fleets\n+ Custom resources\nFor all other scalable targets, the default value is 0: \n+ Amazon Comprehend document classification and entity recognizer endpoints\n+ DynamoDB tables and global secondary indexes\n+ Amazon Keyspaces tables\n+ Lambda provisioned concurrency\n+ Amazon MSK broker storage\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricAggregationType": "The aggregation type for the CloudWatch metrics\\. Valid values are `Minimum`, `Maximum`, and `Average`\\. If the aggregation type is null, the value is treated as `Average`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Average | Maximum | Minimum` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinAdjustmentMagnitude": "The minimum value to scale by when the adjustment type is `PercentChangeInCapacity`\\. For example, suppose that you create a step scaling policy to scale out an Amazon ECS service by 25 percent and you specify a `MinAdjustmentMagnitude` of 2\\. If the service has 4 tasks and the scaling policy is performed, 25 percent of 4 is 1\\. However, because you specified a `MinAdjustmentMagnitude` of 2, Application Auto Scaling scales out the service by 2 tasks\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StepAdjustments": "A set of adjustments that enable you to scale based on the size of the alarm breach\\. \nAt least one step adjustment is required if you are adding a new step scaling policy configuration\\. \n*Required*: No \n*Type*: List of [StepAdjustment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy TargetTrackingScalingPolicyConfiguration": { + "CustomizedMetricSpecification": "A customized metric\\. You can specify either a predefined metric or a customized metric\\. \n*Required*: No \n*Type*: [CustomizedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisableScaleIn": "Indicates whether scale in by the target tracking scaling policy is disabled\\. If the value is `true`, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target\\. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PredefinedMetricSpecification": "A predefined metric\\. You can specify either a predefined metric or a customized metric\\. \n*Required*: No \n*Type*: [PredefinedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predefinedmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScaleInCooldown": "The amount of time, in seconds, after a scale\\-in activity completes before another scale\\-in activity can start\\. \nWith the *scale\\-in cooldown period*, the intention is to scale in conservatively to protect your application\u2019s availability, so scale\\-in activities are blocked until the cooldown period has expired\\. However, if another alarm triggers a scale\\-out activity during the scale\\-in cooldown period, Application Auto Scaling scales out the target immediately\\. In this case, the scale\\-in cooldown period stops and doesn't complete\\. \nApplication Auto Scaling provides a default value of 600 for Amazon ElastiCache replication groups and a default value of 300 for the following scalable targets: \n+ AppStream 2\\.0 fleets\n+ Aurora DB clusters\n+ ECS services\n+ EMR clusters\n+ Neptune clusters\n+ SageMaker endpoint variants\n+ Spot Fleets\n+ Custom resources\nFor all other scalable targets, the default value is 0: \n+ Amazon Comprehend document classification and entity recognizer endpoints\n+ DynamoDB tables and global secondary indexes\n+ Amazon Keyspaces tables\n+ Lambda provisioned concurrency\n+ Amazon MSK broker storage\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScaleOutCooldown": "The amount of time, in seconds, to wait for a previous scale\\-out activity to take effect\\. \nWith the *scale\\-out cooldown period*, the intention is to continuously \\(but not excessively\\) scale out\\. After Application Auto Scaling successfully scales out using a target tracking scaling policy, it starts to calculate the cooldown time\\. The scaling policy won't increase the desired capacity again unless either a larger scale out is triggered or the cooldown period ends\\. While the cooldown period is in effect, the capacity added by the initiating scale\\-out activity is calculated as part of the desired capacity for the next scale\\-out activity\\. \nApplication Auto Scaling provides a default value of 600 for Amazon ElastiCache replication groups and a default value of 300 for the following scalable targets: \n+ AppStream 2\\.0 fleets\n+ Aurora DB clusters\n+ ECS services\n+ EMR clusters\n+ Neptune clusters\n+ SageMaker endpoint variants\n+ Spot Fleets\n+ Custom resources\nFor all other scalable targets, the default value is 0: \n+ Amazon Comprehend document classification and entity recognizer endpoints\n+ DynamoDB tables and global secondary indexes\n+ Amazon Keyspaces tables\n+ Lambda provisioned concurrency\n+ Amazon MSK broker storage\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetValue": "The target value for the metric\\. Although this property accepts numbers of type Double, it won't accept values that are either too small or too large\\. Values must be in the range of \\-2^360 to 2^360\\. The value must be a valid number based on the choice of metric\\. For example, if the metric is CPU utilization, then the target value is a percent value that represents how much of the CPU can be used before scaling out\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationInsights::Application": { + "AutoConfigurationEnabled": "If set to `true`, the application components will be configured with the monitoring configuration recommended by Application Insights\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CWEMonitorEnabled": "Indicates whether Application Insights can listen to CloudWatch events for the application resources, such as `instance terminated`, `failed deployment`, and others\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ComponentMonitoringSettings": "The monitoring settings of the components\\. \n*Required*: No \n*Type*: List of [ComponentMonitoringSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomComponents": "Describes a custom component by grouping similar standalone instances to monitor\\. \n*Required*: No \n*Type*: List of [CustomComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-customcomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogPatternSets": "The log pattern sets\\. \n*Required*: No \n*Type*: List of [LogPatternSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-logpatternset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OpsCenterEnabled": "Indicates whether Application Insights will create OpsItems for any problem that is detected by Application Insights for an application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OpsItemSNSTopicArn": "The SNS topic provided to Application Insights that is associated with the created OpsItems to receive SNS notifications for opsItem updates\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `300` \n*Pattern*: `^arn:aws(-\\w+)*:[\\w\\d-]+:([\\w\\d-]*)?:[\\w\\d_-]*([:/].+)*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceGroupName": "The name of the resource group used for the application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z0-9\\.\\-_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of `Tags`\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationInsights::Application Alarm": { + "AlarmName": "The name of the CloudWatch alarm to be monitored for the component\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Severity": "Indicates the degree of outage when the alarm goes off\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationInsights::Application AlarmMetric": { + "AlarmMetricName": "The name of the metric to be monitored for the component\\. For metrics supported by Application Insights, see [Logs and metrics supported by Amazon CloudWatch Application Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/appinsights-logs-and-metrics.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationInsights::Application ComponentConfiguration": { + "ConfigurationDetails": "The configuration settings\\. \n*Required*: No \n*Type*: [ConfigurationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-configurationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubComponentTypeConfigurations": "Sub\\-component configurations of the component\\. \n*Required*: No \n*Type*: List of [SubComponentTypeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-subcomponenttypeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationInsights::Application ComponentMonitoringSetting": { + "ComponentARN": "The ARN of the component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ComponentConfigurationMode": "Component monitoring can be configured in one of the following three modes: \n+ `DEFAULT`: The component will be configured with the recommended default monitoring settings of the selected `Tier`\\.\n+ `CUSTOM`: The component will be configured with the customized monitoring settings that are specified in `CustomComponentConfiguration`\\. If used, `CustomComponentConfiguration` must be provided\\.\n+ `DEFAULT_WITH_OVERWRITE`: The component will be configured with the recommended default monitoring settings of the selected `Tier`, and merged with customized overwrite settings that are specified in `DefaultOverwriteComponentConfiguration`\\. If used, `DefaultOverwriteComponentConfiguration` must be provided\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ComponentName": "The name of the component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomComponentConfiguration": "Customized monitoring settings\\. Required if CUSTOM mode is configured in `ComponentConfigurationMode`\\. \n*Required*: No \n*Type*: [ComponentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultOverwriteComponentConfiguration": "Customized overwrite monitoring settings\\. Required if CUSTOM mode is configured in `ComponentConfigurationMode`\\. \n*Required*: No \n*Type*: [ComponentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tier": "The tier of the application component\\. Supported tiers include `DOT_NET_CORE`, `DOT_NET_WORKER`, `DOT_NET_WEB`, `SQL_SERVER`, `SQL_SERVER_ALWAYSON_AVAILABILITY_GROUP`, `SQL_SERVER_FAILOVER_CLUSTER_INSTANCE`, `MYSQL`, `POSTGRESQL`, `JAVA_JMX`, `ORACLE`, `SAP_HANA_MULTI_NODE`, `SAP_HANA_SINGLE_NODE`, `SAP_HANA_HIGH_AVAILABILITY`, `SHAREPOINT`\\. `ACTIVE_DIRECTORY`, and `DEFAULT`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationInsights::Application ConfigurationDetails": { + "AlarmMetrics": "A list of metrics to monitor for the component\\. All component types can use `AlarmMetrics`\\. \n*Required*: No \n*Type*: List of [AlarmMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-alarmmetric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Alarms": "A list of alarms to monitor for the component\\. All component types can use `Alarm`\\. \n*Required*: No \n*Type*: List of [Alarm](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-alarm.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HAClusterPrometheusExporter": "The HA cluster Prometheus Exporter settings\\. \n*Required*: No \n*Type*: [HAClusterPrometheusExporter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-haclusterprometheusexporter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HANAPrometheusExporter": "The HANA DB Prometheus Exporter settings\\. \n*Required*: No \n*Type*: [HANAPrometheusExporter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-hanaprometheusexporter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JMXPrometheusExporter": "A list of Java metrics to monitor for the component\\. \n*Required*: No \n*Type*: [JMXPrometheusExporter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-jmxprometheusexporter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Logs": "A list of logs to monitor for the component\\. Only Amazon EC2 instances can use `Logs`\\. \n*Required*: No \n*Type*: List of [Log](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-log.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WindowsEvents": "A list of Windows Events to monitor for the component\\. Only Amazon EC2 instances running on Windows can use `WindowsEvents`\\. \n*Required*: No \n*Type*: List of [WindowsEvent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-windowsevent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationInsights::Application CustomComponent": { + "ComponentName": "The name of the component\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\d\\w\\-_\\.+]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceList": "The list of resource ARNs that belong to the component\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationInsights::Application HAClusterPrometheusExporter": { + "PrometheusPort": "The target port to which Prometheus sends metrics\\. If not specified, the default port 9668 is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationInsights::Application HANAPrometheusExporter": { + "AgreeToInstallHANADBClient": "Designates whether you agree to install the HANA DB client\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HANAPort": "The HANA database port by which the exporter will query HANA metrics\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HANASID": "The three\\-character SAP system ID \\(SID\\) of the SAP HANA system\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HANASecretName": "The AWS Secrets Manager secret that stores HANA monitoring user credentials\\. The HANA Prometheus exporter uses these credentials to connect to the database and query HANA metrics\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrometheusPort": "The target port to which Prometheus sends metrics\\. If not specified, the default port 9668 is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationInsights::Application JMXPrometheusExporter": { + "HostPort": "The host and port to connect to through remote JMX\\. Only one of `jmxURL` and `hostPort` can be specified\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JMXURL": "The complete JMX URL to connect to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrometheusPort": "The target port to send Prometheus metrics to\\. If not specified, the default port `9404` is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationInsights::Application Log": { + "Encoding": "The type of encoding of the logs to be monitored\\. The specified encoding should be included in the list of CloudWatch agent supported encodings\\. If not provided, CloudWatch Application Insights uses the default encoding type for the log type: \n+ `APPLICATION/DEFAULT`: utf\\-8 encoding\n+ `SQL_SERVER`: utf\\-16 encoding\n+ `IIS`: ascii encoding\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogGroupName": "The CloudWatch log group name to be associated with the monitored log\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogPath": "The path of the logs to be monitored\\. The log path must be an absolute Windows or Linux system file path\\. For more information, see [CloudWatch Agent Configuration File: Logs Section](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html#CloudWatch-Agent-Configuration-File-Logssection)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogType": "The log type decides the log patterns against which Application Insights analyzes the log\\. The log type is selected from the following: `SQL_SERVER`, `MYSQL`, `MYSQL_SLOW_QUERY`, `POSTGRESQL`, `ORACLE_ALERT`, `ORACLE_LISTENER`, `IIS`, `APPLICATION`, `WINDOWS_EVENTS`, `WINDOWS_EVENTS_ACTIVE_DIRECTORY`, `WINDOWS_EVENTS_DNS `, `WINDOWS_EVENTS_IIS `, `WINDOWS_EVENTS_SHAREPOINT`, `SQL_SERVER_ALWAYSON_AVAILABILITY_GROUP`, `SQL_SERVER_FAILOVER_CLUSTER_INSTANCE`, `STEP_FUNCTION`, `API_GATEWAY_ACCESS`, `API_GATEWAY_EXECUTION`, `SAP_HANA_LOGS`, `SAP_HANA_TRACE`, `SAP_HANA_HIGH_AVAILABILITY`, and `DEFAULT`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PatternSet": "The log pattern set\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationInsights::Application LogPattern": { + "Pattern": "A regular expression that defines the log pattern\\. A log pattern can contain up to 50 characters, and it cannot be empty\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `[\\S\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PatternName": "The name of the log pattern\\. A log pattern name can contain up to 50 characters, and it cannot be empty\\. The characters can be Unicode letters, digits, or one of the following symbols: period, dash, underscore\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `[a-zA-Z0-9\\.\\-_]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Rank": "The rank of the log pattern\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationInsights::Application LogPatternSet": { + "LogPatterns": "A list of objects that define the log patterns that belong to `LogPatternSet`\\. \n*Required*: Yes \n*Type*: List of [LogPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-logpattern.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PatternSetName": "The name of the log pattern\\. A log pattern name can contain up to 30 characters, and it cannot be empty\\. The characters can be Unicode letters, digits, or one of the following symbols: period, dash, underscore\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `30` \n*Pattern*: `[a-zA-Z0-9\\.\\-_]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationInsights::Application SubComponentConfigurationDetails": { + "AlarmMetrics": "A list of metrics to monitor for the component\\. All component types can use `AlarmMetrics`\\. \n*Required*: No \n*Type*: List of [AlarmMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-alarmmetric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Logs": "A list of logs to monitor for the component\\. Only Amazon EC2 instances can use `Logs`\\. \n*Required*: No \n*Type*: List of [Log](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-log.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WindowsEvents": "A list of Windows Events to monitor for the component\\. Only Amazon EC2 instances running on Windows can use `WindowsEvents`\\. \n*Required*: No \n*Type*: List of [WindowsEvent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-windowsevent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationInsights::Application SubComponentTypeConfiguration": { + "SubComponentConfigurationDetails": "The configuration settings of the sub\\-components\\. \n*Required*: Yes \n*Type*: [SubComponentConfigurationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-subcomponentconfigurationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubComponentType": "The sub\\-component type\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ApplicationInsights::Application WindowsEvent": { + "EventLevels": "The levels of event to log\\. You must specify each level to log\\. Possible values include `INFORMATION`, `WARNING`, `ERROR`, `CRITICAL`, and `VERBOSE`\\. This field is required for each type of Windows Event to log\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventName": "The type of Windows Events to log, equivalent to the Windows Event log channel name\\. For example, System, Security, CustomEventName, and so on\\. This field is required for each type of Windows event to log\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogGroupName": "The CloudWatch log group name to be associated with the monitored log\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PatternSet": "The log pattern set\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Athena::DataCatalog": { + "Description": "A description of the data catalog\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the data catalog\\. The catalog name must be unique for the AWS account and can use a maximum of 128 alphanumeric, underscore, at sign, or hyphen characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Parameters": "Specifies the Lambda function or functions to use for the data catalog\\. The mapping used depends on the catalog type\\. \n+ The `HIVE` data catalog type uses the following syntax\\. The `metadata-function` parameter is required\\. `The sdk-version` parameter is optional and defaults to the currently supported version\\.", + "Tags": "The tags \\(key\\-value pairs\\) to associate with this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of data catalog: `LAMBDA` for a federated catalog, `GLUE` for AWS Glue Catalog, or `HIVE` for an external hive metastore\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Athena::NamedQuery": { + "Database": "The database to which the query belongs\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "The query description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The query name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "QueryString": "The SQL statements that make up the query\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `262144` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "WorkGroup": "The name of the workgroup that contains the named query\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[a-zA-Z0-9._-]{1,128}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Athena::PreparedStatement": { + "Description": "The description of the prepared statement\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryStatement": "The query string for the prepared statement\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `262144` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatementName": "The name of the prepared statement\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z_][a-zA-Z0-9_@:]{1,256}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "WorkGroup": "The workgroup to which the prepared statement belongs\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Athena::WorkGroup": { + "Description": "The workgroup description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The workgroup name\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-zA-Z0-9._-]{1,128}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RecursiveDeleteOption": "The option to delete a workgroup and its contents even if the workgroup contains any named queries\\. The default is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "State": "The state of the workgroup: ENABLED or DISABLED\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags \\(key\\-value pairs\\) to associate with this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WorkGroupConfiguration": "The configuration of the workgroup, which includes the location in Amazon S3 where query results are stored, the encryption option, if any, used for query results, whether Amazon CloudWatch Metrics are enabled for the workgroup, and the limit for the amount of bytes scanned \\(cutoff\\) per query, if it is specified\\. The [EnforceWorkGroupConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-enforceworkgroupconfiguration) option determines whether workgroup settings override client\\-side query settings\\. \n*Required*: No \n*Type*: [WorkGroupConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WorkGroupConfigurationUpdates": "The configuration information that will be updated for this workgroup, which includes the location in Amazon S3 where query results are stored, the encryption option, if any, used for query results, whether the Amazon CloudWatch Metrics are enabled for the workgroup, whether the workgroup settings override the client\\-side settings, and the data usage limit for the amount of bytes scanned per query, if it is specified\\. \n*Required*: No \n*Type*: [WorkGroupConfigurationUpdates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Athena::WorkGroup EncryptionConfiguration": { + "EncryptionOption": "Indicates whether Amazon S3 server\\-side encryption with Amazon S3\\-managed keys \\(`SSE_S3`\\), server\\-side encryption with KMS\\-managed keys \\(`SSE_KMS`\\), or client\\-side encryption with KMS\\-managed keys \\(`CSE_KMS`\\) is used\\. \nIf a query runs in a workgroup and the workgroup overrides client\\-side settings, then the workgroup's setting for encryption is used\\. It specifies whether query results must be encrypted, for all queries that run in this workgroup\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CSE_KMS | SSE_KMS | SSE_S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKey": "For `SSE_KMS` and `CSE_KMS`, this is the KMS key ARN or ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Athena::WorkGroup EngineVersion": { + "EffectiveEngineVersion": "Read only\\. The engine version on which the query runs\\. If the user requests a valid engine version other than Auto, the effective engine version is the same as the engine version that the user requested\\. If the user requests Auto, the effective engine version is chosen by Athena\\. When a request to update the engine version is made by a `CreateWorkGroup` or `UpdateWorkGroup` operation, the `EffectiveEngineVersion` field is ignored\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SelectedEngineVersion": "The engine version requested by the user\\. Possible values are determined by the output of `ListEngineVersions`, including Auto\\. The default is Auto\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Athena::WorkGroup ResultConfiguration": { + "EncryptionConfiguration": "If query results are encrypted in Amazon S3, indicates the encryption option used \\(for example, `SSE_KMS` or `CSE_KMS`\\) and key information\\. This is a client\\-side setting\\. If workgroup settings override client\\-side settings, then the query uses the encryption configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup\\. See [EnforceWorkGroupConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-enforceworkgroupconfiguration) and [Workgroup Settings Override Client\\-Side Settings](https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html)\\. \n*Required*: No \n*Type*: [EncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-encryptionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutputLocation": "The location in Amazon S3 where your query results are stored, such as `s3://path/to/query/bucket/`\\. To run a query, you must specify the query results location using either a client\\-side setting for individual queries or a location specified by the workgroup\\. If workgroup settings override client\\-side settings, then the query uses the location specified for the workgroup\\. If no query location is set, Athena issues an error\\. For more information, see [Working with Query Results, Output Files, and Query History](https://docs.aws.amazon.com/athena/latest/ug/querying.html) and [EnforceWorkGroupConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-enforceworkgroupconfiguration)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Athena::WorkGroup ResultConfigurationUpdates": { + "EncryptionConfiguration": "The encryption configuration for the query results\\. \n*Required*: No \n*Type*: [EncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-encryptionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutputLocation": "The location in Amazon S3 where your query results are stored, such as `s3://path/to/query/bucket/`\\. For more information, see [Query Results](https://docs.aws.amazon.com/athena/latest/ug/querying.html) If workgroup settings override client\\-side settings, then the query uses the location for the query results and the encryption configuration that are specified for the workgroup\\. The \"workgroup settings override\" is specified in EnforceWorkGroupConfiguration \\(true/false\\) in the WorkGroupConfiguration\\. See [EnforceWorkGroupConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-enforceworkgroupconfiguration)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RemoveEncryptionConfiguration": "If set to \"true\", indicates that the previously\\-specified encryption configuration \\(also known as the client\\-side setting\\) for queries in this workgroup should be ignored and set to null\\. If set to \"false\" or not set, and a value is present in the EncryptionConfiguration in ResultConfigurationUpdates \\(the client\\-side setting\\), the EncryptionConfiguration in the workgroup's ResultConfiguration will be updated with the new value\\. For more information, see [Workgroup Settings Override Client\\-Side Settings](https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RemoveOutputLocation": "If set to \"true\", indicates that the previously\\-specified query results location \\(also known as a client\\-side setting\\) for queries in this workgroup should be ignored and set to null\\. If set to \"false\" or not set, and a value is present in the OutputLocation in ResultConfigurationUpdates \\(the client\\-side setting\\), the OutputLocation in the workgroup's ResultConfiguration will be updated with the new value\\. For more information, see [Workgroup Settings Override Client\\-Side Settings](https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Athena::WorkGroup WorkGroupConfiguration": { + "BytesScannedCutoffPerQuery": "The upper limit \\(cutoff\\) for the amount of bytes a single query in a workgroup is allowed to scan\\. No default is defined\\. \nThis property currently supports integer types\\. Support for long values is planned\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnforceWorkGroupConfiguration": "If set to \"true\", the settings for the workgroup override client\\-side settings\\. If set to \"false\", client\\-side settings are used\\. For more information, see [Workgroup Settings Override Client\\-Side Settings](https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EngineVersion": "The engine version that all queries running on the workgroup use\\. Queries on the `AmazonAthenaPreviewFunctionality` workgroup run on the preview engine regardless of this setting\\. \n*Required*: No \n*Type*: [EngineVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-engineversion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PublishCloudWatchMetricsEnabled": "Indicates that the Amazon CloudWatch metrics are enabled for the workgroup\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequesterPaysEnabled": "If set to `true`, allows members assigned to a workgroup to reference Amazon S3 Requester Pays buckets in queries\\. If set to `false`, workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error\\. The default is `false`\\. For more information about Requester Pays buckets, see [Requester Pays Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) in the *Amazon Simple Storage Service Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResultConfiguration": "Specifies the location in Amazon S3 where query results are stored and the encryption option, if any, used for query results\\. For more information, see [Working with Query Results, Output Files, and Query History](https://docs.aws.amazon.com/athena/latest/ug/querying.html)\\. \n*Required*: No \n*Type*: [ResultConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-resultconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Athena::WorkGroup WorkGroupConfigurationUpdates": { + "BytesScannedCutoffPerQuery": "The upper limit \\(cutoff\\) for the amount of bytes a single query in a workgroup is allowed to scan\\. No default is defined\\. \nThis property currently supports integer types\\. Support for long values is planned\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnforceWorkGroupConfiguration": "If set to \"true\", the settings for the workgroup override client\\-side settings\\. If set to \"false\" client\\-side settings are used\\. For more information, see [Workgroup Settings Override Client\\-Side Settings](https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EngineVersion": "The engine version requested when a workgroup is updated\\. After the update, all queries on the workgroup run on the requested engine version\\. If no value was previously set, the default is Auto\\. Queries on the `AmazonAthenaPreviewFunctionality` workgroup run on the preview engine regardless of this setting\\. \n*Required*: No \n*Type*: [EngineVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-engineversion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PublishCloudWatchMetricsEnabled": "Indicates whether this workgroup enables publishing metrics to Amazon CloudWatch\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RemoveBytesScannedCutoffPerQuery": "Indicates that the data usage control limit per query is removed\\. See [BytesScannedCutoffPerQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-bytesscannedcutoffperquery)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequesterPaysEnabled": "If set to `true`, allows members assigned to a workgroup to specify Amazon S3 Requester Pays buckets in queries\\. If set to `false`, workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error\\. The default is `false`\\. For more information about Requester Pays buckets, see [Requester Pays Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) in the *Amazon Simple Storage Service Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResultConfigurationUpdates": "The result configuration information about the queries in this workgroup that will be updated\\. Includes the updated results location and an updated option for encrypting query results\\. \n*Required*: No \n*Type*: [ResultConfigurationUpdates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-resultconfigurationupdates.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AuditManager::Assessment": { + "AssessmentReportsDestination": "The destination that evidence reports are stored in for the assessment\\. \n*Required*: No \n*Type*: [AssessmentReportsDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-assessmentreportsdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AwsAccount": "The AWS account that's associated with the assessment\\. \n*Required*: No \n*Type*: [AWSAccount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-awsaccount.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "The description of the assessment\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Pattern*: `^[\\w\\W\\s\\S]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FrameworkId": "The unique identifier for the framework\\. \n*Required*: No \n*Type*: String \n*Minimum*: `36` \n*Maximum*: `36` \n*Pattern*: `^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the assessment\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Pattern*: `^[^\\\\]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Roles": "The roles that are associated with the assessment\\. \n*Required*: No \n*Type*: List of [Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-role.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scope": "The wrapper of AWS accounts and services that are in scope for the assessment\\. \n*Required*: No \n*Type*: [Scope](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-scope.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Status": "The overall status of the assessment\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ACTIVE | INACTIVE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags that are associated with the assessment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AuditManager::Assessment AWSAccount": { + "EmailAddress": "The email address that's associated with the AWS account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `320` \n*Pattern*: `^.*@.*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Id": "The identifier for the AWS account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the AWS account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `^[\\u0020-\\u007E]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AuditManager::Assessment AWSService": { + "ServiceName": "The name of the AWS service\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `40` \n*Pattern*: `^[a-zA-Z0-9-\\s().]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AuditManager::Assessment AssessmentReportsDestination": { + "Destination": "The destination of the assessment report\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `^(S|s)3:\\/\\/[a-zA-Z0-9\\-\\.\\(\\)\\'\\*\\_\\!\\/]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationType": "The destination type, such as Amazon S3\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AuditManager::Assessment Delegation": { + "AssessmentId": "The identifier for the assessment that's associated with the delegation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `36` \n*Maximum*: `36` \n*Pattern*: `^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AssessmentName": "The name of the assessment that's associated with the delegation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Pattern*: `^[^\\\\]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Comment": "The comment that's related to the delegation\\. \n*Required*: No \n*Type*: String \n*Maximum*: `350` \n*Pattern*: `^[\\w\\W\\s\\S]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ControlSetId": "The identifier for the control set that's associated with the delegation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Pattern*: `^[\\w\\W\\s\\S]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CreatedBy": "The IAM user or role that created the delegation\\. \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9-_()\\\\[\\\\]\\\\s]+$` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CreationTime": "Specifies when the delegation was created\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "The unique identifier for the delegation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `36` \n*Maximum*: `36` \n*Pattern*: `^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LastUpdated": "Specifies when the delegation was last updated\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM role\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^arn:.*:iam:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleType": "The type of customer persona\\. \nIn `CreateAssessment`, `roleType` can only be `PROCESS_OWNER`\\. \nIn `UpdateSettings`, `roleType` can only be `PROCESS_OWNER`\\. \nIn `BatchCreateDelegationByAssessment`, `roleType` can only be `RESOURCE_OWNER`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `PROCESS_OWNER | RESOURCE_OWNER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Status": "The status of the delegation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `COMPLETE | IN_PROGRESS | UNDER_REVIEW` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AuditManager::Assessment Role": { + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM role\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^arn:.*:iam:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleType": "The type of customer persona\\. \nIn `CreateAssessment`, `roleType` can only be `PROCESS_OWNER`\\. \nIn `UpdateSettings`, `roleType` can only be `PROCESS_OWNER`\\. \nIn `BatchCreateDelegationByAssessment`, `roleType` can only be `RESOURCE_OWNER`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `PROCESS_OWNER | RESOURCE_OWNER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AuditManager::Assessment Scope": { + "AwsAccounts": "The AWS accounts that are included in the scope of the assessment\\. \n*Required*: No \n*Type*: List of [AWSAccount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-awsaccount.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AwsServices": "The AWS services that are included in the scope of the assessment\\. \n*Required*: No \n*Type*: List of [AWSService](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-awsservice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::AutoScalingGroup": { + "AutoScalingGroupName": "The name of the Auto Scaling group\\. This name must be unique per Region per account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AvailabilityZones": "A list of Availability Zones where instances in the Auto Scaling group can be created\\. You must specify one of the following properties: `VPCZoneIdentifier` or `AvailabilityZones`\\. If your account supports EC2\\-Classic and VPC, this property is required to create an Auto Scaling group that launches instances into EC2\\-Classic\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CapacityRebalance": "Indicates whether Capacity Rebalancing is enabled\\. For more information, see [Amazon EC2 Auto Scaling Capacity Rebalancing](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Context": "Reserved\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Cooldown": "The amount of time, in seconds, after a scaling activity completes before another scaling activity can start\\. The default value is `300`\\. This setting applies when using simple scaling policies, but not when using other scaling policies or scheduled scaling\\. For more information, see [Scaling cooldowns for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DesiredCapacity": "The desired capacity is the initial capacity of the Auto Scaling group at the time of its creation and the capacity it attempts to maintain\\. It can scale beyond this capacity if you configure automatic scaling\\. \nThe number must be greater than or equal to the minimum size of the group and less than or equal to the maximum size of the group\\. If you do not specify a desired capacity when creating the stack, the default is the minimum size of the group\\. \nCloudFormation marks the Auto Scaling group as successful \\(by setting its status to CREATE\\_COMPLETE\\) when the desired capacity is reached\\. However, if a maximum Spot price is set in the launch template or launch configuration that you specified, then desired capacity is not used as a criteria for success\\. Whether your request is fulfilled depends on Spot Instance capacity and your maximum price\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DesiredCapacityType": "The unit of measurement for the value specified for desired capacity\\. Amazon EC2 Auto Scaling supports `DesiredCapacityType` for attribute\\-based instance type selection only\\. For more information, see [Creating an Auto Scaling group using attribute\\-based instance type selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \nBy default, Amazon EC2 Auto Scaling specifies `units`, which translates into number of instances\\. \nValid values: `units` \\| `vcpu` \\| `memory-mib` \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthCheckGracePeriod": "The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service and marking it unhealthy due to a failed health check\\. The default value is `0`\\. For more information, see [Health checks for Auto Scaling instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \nIf you are adding an `ELB` health check, you must specify this property\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthCheckType": "The service to use for the health checks\\. The valid values are `EC2` \\(default\\) and `ELB`\\. If you configure an Auto Scaling group to use load balancer \\(ELB\\) health checks, it considers the instance unhealthy if it fails either the EC2 status checks or the load balancer health checks\\. For more information, see [Health checks for Auto Scaling instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceId": "The ID of the instance used to base the launch configuration on\\. If specified, Amazon EC2 Auto Scaling uses the configuration values from the specified instance to create a new launch configuration\\. For more information, see [Creating an Auto Scaling group using an EC2 instance](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-from-instance.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \nTo get the instance ID, use the EC2 [DescribeInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html) API operation\\. \nIf you specify `LaunchTemplate`, `MixedInstancesPolicy`, or `LaunchConfigurationName`, don't specify `InstanceId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LaunchConfigurationName": "The name of the [launch configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html) to use to launch instances\\. \nIf you specify `LaunchTemplate`, `MixedInstancesPolicy`, or `InstanceId`, don't specify `LaunchConfigurationName`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LaunchTemplate": "Properties used to specify the [launch template](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html) and version to use to launch instances\\. You can alternatively associate a launch template to the Auto Scaling group by specifying a `MixedInstancesPolicy`\\. \nIf you omit this property, you must specify `MixedInstancesPolicy`, `LaunchConfigurationName`, or `InstanceId`\\. \n*Required*: Conditional \n*Type*: [LaunchTemplateSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplatespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LifecycleHookSpecificationList": "One or more lifecycle hooks for the group, which specify actions to perform when Amazon EC2 Auto Scaling launches or terminates instances\\. \n*Required*: No \n*Type*: List of [LifecycleHookSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-lifecyclehookspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoadBalancerNames": "A list of Classic Load Balancers associated with this Auto Scaling group\\. For Application Load Balancers, Network Load Balancers, and Gateway Load Balancers, specify the `TargetGroupARNs` property instead\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxInstanceLifetime": "The maximum amount of time, in seconds, that an instance can be in service\\. The default is null\\. If specified, the value must be either 0 or a number equal to or greater than 86,400 seconds \\(1 day\\)\\. For more information, see [Replacing Auto Scaling instances based on maximum instance lifetime](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxSize": "The maximum size of the group\\. \nWith a mixed instances policy that uses instance weighting, Amazon EC2 Auto Scaling may need to go above `MaxSize` to meet your capacity requirements\\. In this event, Amazon EC2 Auto Scaling will never go above `MaxSize` by more than your largest instance weight \\(weights that define how many units each instance contributes to the desired capacity of the group\\)\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricsCollection": "Enables the monitoring of group metrics of an Auto Scaling group\\. By default, these metrics are disabled\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-metricscollection.html) of [MetricsCollection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-metricscollection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinSize": "The minimum size of the group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MixedInstancesPolicy": "An embedded object that specifies a mixed instances policy\\. \nThe policy includes properties that not only define the distribution of On\\-Demand Instances and Spot Instances, the maximum price to pay for Spot Instances \\(optional\\), and how the Auto Scaling group allocates instance types to fulfill On\\-Demand and Spot capacities, but also the properties that specify the instance configuration information\u2014the launch template and instance types\\. The policy can also include a weight for each instance type and different launch templates for individual instance types\\. \nFor more information, see [Auto Scaling groups with multiple instance types and purchase options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \nIf you specify `LaunchTemplate`, `InstanceId`, or `LaunchConfigurationName`, don't specify `MixedInstancesPolicy`\\. \n*Required*: Conditional \n*Type*: [MixedInstancesPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-mixedinstancespolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NewInstancesProtectedFromScaleIn": "Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto Scaling when scaling in\\. For more information about preventing instances from terminating on scale in, see [Instance Protection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotificationConfigurations": "Configures an Auto Scaling group to send notifications when specified events take place\\. \n*Required*: No \n*Type*: List of [NotificationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-notificationconfigurations.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PlacementGroup": "The name of the placement group into which you want to launch your instances\\. For more information, see [Placement groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \nA *cluster* placement group is a logical grouping of instances within a single Availability Zone\\. You cannot specify multiple Availability Zones and a cluster placement group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceLinkedRoleARN": "The Amazon Resource Name \\(ARN\\) of the service\\-linked role that the Auto Scaling group uses to call other AWS services on your behalf\\. By default, Amazon EC2 Auto Scaling uses a service\\-linked role named `AWSServiceRoleForAutoScaling`, which it creates if it does not exist\\. For more information, see [Service\\-linked roles for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "One or more tags\\. You can tag your Auto Scaling group and propagate the tags to the Amazon EC2 instances it launches\\. For more information, see [Tagging Auto Scaling groups and instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: List of [TagProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetGroupARNs": "One or more Amazon Resource Names \\(ARN\\) of load balancer target groups to associate with the Auto Scaling group\\. Instances are registered as targets in a target group, and traffic is routed to the target group\\. For more information, see [Elastic Load Balancing and Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TerminationPolicies": "A policy or a list of policies that are used to select the instances to terminate\\. The policies are executed in the order that you list them\\. The termination policies supported by Amazon EC2 Auto Scaling: `OldestInstance`, `OldestLaunchConfiguration`, `NewestInstance`, `ClosestToNextInstanceHour`, `Default`, `OldestLaunchTemplate`, and `AllocationStrategy`\\. For more information, see [Controlling which Auto Scaling instances terminate during scale in](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VPCZoneIdentifier": "A list of subnet IDs for a virtual private cloud \\(VPC\\) where instances in the Auto Scaling group can be created\\. If you specify `VPCZoneIdentifier` with `AvailabilityZones`, the subnets that you specify for this property must reside in those Availability Zones\\. \nIf this resource specifies public subnets and is also in a VPC that is defined in the same stack template, you must use the [DependsOn attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) to declare a dependency on the [VPC\\-gateway attachment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html)\\. \nWhen you update `VPCZoneIdentifier`, this retains the same Auto Scaling group and replaces old instances with new ones, according to the specified subnets\\. You can optionally specify how CloudFormation handles these updates by using an [UpdatePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html)\\.\n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)" + }, + "AWS::AutoScaling::AutoScalingGroup AcceleratorCountRequest": { + "Max": "The maximum value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Min": "The minimum value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::AutoScalingGroup AcceleratorTotalMemoryMiBRequest": { + "Max": "The memory maximum in MiB\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Min": "The memory minimum in MiB\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::AutoScalingGroup BaselineEbsBandwidthMbpsRequest": { + "Max": "The maximum value in Mbps\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Min": "The minimum value in Mbps\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::AutoScalingGroup InstanceRequirements": { + "AcceleratorCount": "The minimum and maximum number of accelerators \\(GPUs, FPGAs, or AWS Inferentia chips\\) for an instance type\\. \nTo exclude accelerator\\-enabled instance types, set `Max` to `0`\\. \nDefault: No minimum or maximum \n*Required*: No \n*Type*: [AcceleratorCountRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-acceleratorcountrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AcceleratorManufacturers": "Indicates whether instance types must have accelerators by specific manufacturers\\. \n+ For instance types with NVIDIA devices, specify `nvidia`\\.\n+ For instance types with AMD devices, specify `amd`\\.\n+ For instance types with AWS devices, specify `amazon-web-services`\\.\n+ For instance types with Xilinx devices, specify `xilinx`\\.\nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AcceleratorNames": "Lists the accelerators that must be on an instance type\\. \n+ For instance types with NVIDIA A100 GPUs, specify `a100`\\.\n+ For instance types with NVIDIA V100 GPUs, specify `v100`\\.\n+ For instance types with NVIDIA K80 GPUs, specify `k80`\\.\n+ For instance types with NVIDIA T4 GPUs, specify `t4`\\.\n+ For instance types with NVIDIA M60 GPUs, specify `m60`\\.\n+ For instance types with AMD Radeon Pro V520 GPUs, specify `radeon-pro-v520`\\.\n+ For instance types with Xilinx VU9P FPGAs, specify `vu9p`\\.\nDefault: Any accelerator \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AcceleratorTotalMemoryMiB": "The minimum and maximum total memory size for the accelerators on an instance type, in MiB\\. \nDefault: No minimum or maximum \n*Required*: No \n*Type*: [AcceleratorTotalMemoryMiBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-acceleratortotalmemorymibrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AcceleratorTypes": "Lists the accelerator types that must be on an instance type\\. \n+ For instance types with GPU accelerators, specify `gpu`\\.\n+ For instance types with FPGA accelerators, specify `fpga`\\.\n+ For instance types with inference accelerators, specify `inference`\\.\nDefault: Any accelerator type \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BareMetal": "Indicates whether bare metal instance types are included, excluded, or required\\. \nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BaselineEbsBandwidthMbps": "The minimum and maximum baseline bandwidth performance for an instance type, in Mbps\\. For more information, see [Amazon EBS\u2013optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \nDefault: No minimum or maximum \n*Required*: No \n*Type*: [BaselineEbsBandwidthMbpsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-baselineebsbandwidthmbpsrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BurstablePerformance": "Indicates whether burstable performance instance types are included, excluded, or required\\. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CpuManufacturers": "Lists which specific CPU manufacturers to include\\. \n+ For instance types with Intel CPUs, specify `intel`\\.\n+ For instance types with AMD CPUs, specify `amd`\\.\n+ For instance types with AWS CPUs, specify `amazon-web-services`\\.\nDon't confuse the CPU hardware manufacturer with the CPU hardware architecture\\. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image \\(AMI\\) that you specify in your launch template\\. \nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExcludedInstanceTypes": "Lists which instance types to exclude\\. You can use strings with one or more wild cards, represented by an asterisk \\(`*`\\)\\. The following are examples: `c5*`, `m5a.*`, `r*`, `*3*`\\. \nFor example, if you specify `c5*`, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types\\. If you specify `m5a.*`, you are excluding all the M5a instance types, but not the M5n instance types\\. \nDefault: No excluded instance types \n*Required*: No \n*Type*: List of String \n*Maximum*: `400` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceGenerations": "Indicates whether current or previous generation instance types are included\\. \n+ For current generation instance types, specify `current`\\. The current generation includes EC2 instance types currently recommended for use\\. This typically includes the latest two to three generations in each instance family\\. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide for Linux Instances*\\.\n+ For previous generation instance types, specify `previous`\\.\nDefault: Any current or previous generation \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LocalStorage": "Indicates whether instance types with instance store volumes are included, excluded, or required\\. For more information, see [Amazon EC2 instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \nDefault: `included` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LocalStorageTypes": "Indicates the type of local storage that is required\\. \n+ For instance types with hard disk drive \\(HDD\\) storage, specify `hdd`\\.\n+ For instance types with solid state drive \\(SSD\\) storage, specify `sdd`\\.\nDefault: Any local storage type \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MemoryGiBPerVCpu": "The minimum and maximum amount of memory per vCPU for an instance type, in GiB\\. \nDefault: No minimum or maximum \n*Required*: No \n*Type*: [MemoryGiBPerVCpuRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-memorygibpervcpurequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MemoryMiB": "The minimum and maximum instance memory size for an instance type, in MiB\\. \n*Required*: No \n*Type*: [MemoryMiBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-memorymibrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkInterfaceCount": "The minimum and maximum number of network interfaces for an instance type\\. \nDefault: No minimum or maximum \n*Required*: No \n*Type*: [NetworkInterfaceCountRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-networkinterfacecountrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OnDemandMaxPricePercentageOverLowestPrice": "The price protection threshold for On\\-Demand Instances\\. This is the maximum you\u2019ll pay for an On\\-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes\\. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold\\. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage\\. To turn off price protection, specify a high value, such as `999999`\\. \nIf you set `DesiredCapacityType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price\\. \nDefault: `20` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequireHibernateSupport": "Indicates whether instance types must provide On\\-Demand Instance hibernation support\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SpotMaxPricePercentageOverLowestPrice": "The price protection threshold for Spot Instances\\. This is the maximum you\u2019ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes\\. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold\\. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage\\. To turn off price protection, specify a high value, such as `999999`\\. \nIf you set `DesiredCapacityType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price\\. \nDefault: `100` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TotalLocalStorageGB": "The minimum and maximum total local storage size for an instance type, in GB\\. \nDefault: No minimum or maximum \n*Required*: No \n*Type*: [TotalLocalStorageGBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-totallocalstoragegbrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VCpuCount": "The minimum and maximum number of vCPUs for an instance type\\. \n*Required*: No \n*Type*: [VCpuCountRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-vcpucountrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::AutoScalingGroup InstancesDistribution": { + "OnDemandAllocationStrategy": "The order of the launch template overrides to use in fulfilling On\\-Demand capacity\\. \nIf you specify `lowest-price`, Amazon EC2 Auto Scaling uses price to determine the order, launching the lowest price first\\. \nIf you specify `prioritized`, Amazon EC2 Auto Scaling uses the priority that you assigned to each launch template override, launching the highest priority first\\. If all your On\\-Demand capacity cannot be fulfilled using your highest priority instance, then Amazon EC2 Auto Scaling launches the remaining capacity using the second priority instance type, and so on\\. \nDefault: `lowest-price` for Auto Scaling groups that specify the `InstanceRequirements` property in the overrides and `prioritized` for Auto Scaling groups that don't\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OnDemandBaseCapacity": "The minimum amount of the Auto Scaling group's capacity that must be fulfilled by On\\-Demand Instances\\. This base portion is launched first as your group scales\\. \nIf you specify weights for the instance types in the overrides, the base capacity is measured in the same unit of measurement as the instance types\\. If you specify the `InstanceRequirements` property in the overrides, the base capacity is measured in the same unit of measurement as your group's desired capacity\\. \nDefault: `0` \nAn update to this setting means a gradual replacement of instances to adjust the current On\\-Demand Instance levels\\. When replacing instances, Amazon EC2 Auto Scaling launches new instances before terminating the previous ones\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "OnDemandPercentageAboveBaseCapacity": "Controls the percentages of On\\-Demand Instances and Spot Instances for your additional capacity beyond `OnDemandBaseCapacity`\\. Expressed as a number \\(for example, 20 specifies 20% On\\-Demand Instances, 80% Spot Instances\\)\\. If set to 100, only On\\-Demand Instances are used\\. \nDefault: `100` \nAn update to this setting means a gradual replacement of instances to adjust the current On\\-Demand and Spot Instance levels for your additional capacity higher than the base capacity\\. When replacing instances, Amazon EC2 Auto Scaling launches new instances before terminating the previous ones\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "SpotAllocationStrategy": "If the allocation strategy is `lowest-price`, the Auto Scaling group launches instances using the Spot pools with the lowest price, and evenly allocates your instances across the number of Spot pools that you specify\\. \nIf the allocation strategy is `capacity-optimized` \\(recommended\\), the Auto Scaling group launches instances using Spot pools that are optimally chosen based on the available Spot capacity\\. Alternatively, you can use `capacity-optimized-prioritized` and set the order of instance types in the list of launch template overrides from highest to lowest priority \\(from first to last in the list\\)\\. Amazon EC2 Auto Scaling honors the instance type priorities on a best\\-effort basis but optimizes for capacity first\\. \nDefault: `lowest-price` \nValid values: `lowest-price` \\| `capacity-optimized` \\| `capacity-optimized-prioritized` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SpotInstancePools": "The number of Spot Instance pools to use to allocate your Spot capacity\\. The Spot pools are determined from the different instance types in the overrides\\. Valid only when the Spot allocation strategy is `lowest-price`\\. Value must be in the range of 1\u201320\\. \nDefault: `2` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SpotMaxPrice": "The maximum price per unit hour that you are willing to pay for a Spot Instance\\. If you leave the value at its default \\(empty\\), Amazon EC2 Auto Scaling uses the On\\-Demand price as the maximum Spot price\\. To remove a value that you previously set, include the property but specify an empty string \\(\"\"\\) for the value\\. \nIf your maximum price is lower than the Spot price for the instance types that you selected, your Spot Instances are not launched\\.\nValid Range: Minimum value of 0\\.001 \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::AutoScalingGroup LaunchTemplate": { + "LaunchTemplateSpecification": "The launch template to use\\. \n*Required*: Yes \n*Type*: [LaunchTemplateSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplatespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Overrides": "Any properties that you specify override the same properties in the launch template\\. If not provided, Amazon EC2 Auto Scaling uses the instance type or instance requirements specified in the launch template when it launches an instance\\. \nThe overrides can include either one or more instance types or a set of instance requirements, but not both\\. \n*Required*: No \n*Type*: List of [LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::AutoScalingGroup LaunchTemplateOverrides": { + "InstanceRequirements": "The instance requirements\\. When you specify instance requirements, Amazon EC2 Auto Scaling finds instance types that satisfy your requirements, and then uses your On\\-Demand and Spot allocation strategies to launch instances from these instance types, in the same way as when you specify a list of specific instance types\\. \n`InstanceRequirements` are incompatible with the `InstanceType` property\\. If you specify both of these properties, Amazon EC2 Auto Scaling will return a `ValidationException` exception\\. \n*Required*: No \n*Type*: [InstanceRequirements](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-instancerequirements.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceType": "The instance type, such as `m3.xlarge`\\. You must use an instance type that is supported in your requested Region and Availability Zones\\. For more information, see [Available instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes) in the *Amazon EC2 User Guide for Linux Instances\\.* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LaunchTemplateSpecification": "Provides a launch template for the specified instance type or instance requirements\\. For example, some instance types might require a launch template with a different AMI\\. If not provided, Amazon EC2 Auto Scaling uses the launch template that's defined for your mixed instances policy\\. For more information, see [Specifying a different launch template for an instance type](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups-launch-template-overrides.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: [LaunchTemplateSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplatespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WeightedCapacity": "The number of capacity units provided by the instance type specified in `InstanceType` in terms of virtual CPUs, memory, storage, throughput, or other relative performance characteristic\\. When a Spot or On\\-Demand Instance is provisioned, the capacity units count toward the desired capacity\\. Amazon EC2 Auto Scaling provisions instances until the desired capacity is totally fulfilled, even if this results in an overage\\. For example, if there are 2 units remaining to fulfill capacity, and Amazon EC2 Auto Scaling can only provision an instance with a `WeightedCapacity` of 5 units, the instance is provisioned, and the desired capacity is exceeded by 3 units\\. For more information, see [Instance weighting for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups-instance-weighting.html) in the *Amazon EC2 Auto Scaling User Guide*\\. Value must be in the range of 1\\-999\\. \nEvery Auto Scaling group has three size parameters \\(`DesiredCapacity`, `MaxSize`, and `MinSize`\\)\\. Usually, you set these sizes based on a specific number of instances\\. However, if you configure a mixed instances policy that defines weights for the instance types, you must specify these sizes with the same units that you use for weighting instances\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::AutoScalingGroup LaunchTemplateSpecification": { + "LaunchTemplateId": "The ID of the [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html)\\. You must specify either a `LaunchTemplateName` or a `LaunchTemplateId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LaunchTemplateName": "The name of the [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html)\\. You must specify either a `LaunchTemplateName` or a `LaunchTemplateId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "The version number\\. CloudFormation does not support specifying $Latest, or $Default for the template version number\\. However, you can specify `LatestVersionNumber` or `DefaultVersionNumber` using the `Fn::GetAtt` function\\. \nFor an example of using the `Fn::GetAtt` function, see the [Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#aws-properties-as-group--examples) section of the `AWS::AutoScaling::AutoScalingGroup` documentation\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::AutoScalingGroup LifecycleHookSpecification": { + "DefaultResult": "The action the Auto Scaling group takes when the lifecycle hook timeout elapses or if an unexpected failure occurs\\. The valid values are `CONTINUE` and `ABANDON` \\(default\\)\\. \nFor more information, see [Adding lifecycle hooks](https://docs.aws.amazon.com/autoscaling/ec2/userguide/adding-lifecycle-hooks.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HeartbeatTimeout": "The maximum time, in seconds, that can elapse before the lifecycle hook times out\\. If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the default action\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LifecycleHookName": "The name of the lifecycle hook\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[A-Za-z0-9\\-_\\/]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LifecycleTransition": "The state of the EC2 instance to attach the lifecycle hook to\\. The valid values are: \n+ autoscaling:EC2\\_INSTANCE\\_LAUNCHING\n+ autoscaling:EC2\\_INSTANCE\\_TERMINATING\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotificationMetadata": "Additional information that you want to include any time Amazon EC2 Auto Scaling sends a message to the notification target\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1023` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotificationTargetARN": "The Amazon Resource Name \\(ARN\\) of the notification target that Amazon EC2 Auto Scaling uses to notify you when an instance is in the transition state for the lifecycle hook\\. You can specify an Amazon SQS queue or an Amazon SNS topic\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleARN": "The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target, for example, an Amazon SNS topic or an Amazon SQS queue\\. For information about creating this role, see [Configuring a notification target for a lifecycle hook](https://docs.aws.amazon.com/autoscaling/ec2/userguide/configuring-lifecycle-hook-notifications.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::AutoScalingGroup MemoryGiBPerVCpuRequest": { + "Max": "The memory maximum in GiB\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Min": "The memory minimum in GiB\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::AutoScalingGroup MemoryMiBRequest": { + "Max": "The memory maximum in MiB\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Min": "The memory minimum in MiB\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::AutoScalingGroup MetricsCollection": { + "Granularity": "The frequency at which Amazon EC2 Auto Scaling sends aggregated data to CloudWatch\\. \n*Allowed Values*: `1Minute` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Metrics": "Specifies which group\\-level metrics to start collecting\\. \n*Allowed Values*: \n+ `GroupMinSize` \n+ `GroupMaxSize` \n+ `GroupDesiredCapacity` \n+ `GroupInServiceInstances` \n+ `GroupPendingInstances` \n+ `GroupStandbyInstances` \n+ `GroupTerminatingInstances` \n+ `GroupTotalInstances` \n+ `GroupInServiceCapacity` \n+ `GroupPendingCapacity` \n+ `GroupStandbyCapacity` \n+ `GroupTerminatingCapacity` \n+ `GroupTotalCapacity` \n+ `WarmPoolDesiredCapacity` \n+ `WarmPoolWarmedCapacity` \n+ `WarmPoolPendingCapacity` \n+ `WarmPoolTerminatingCapacity` \n+ `WarmPoolTotalCapacity` \n+ `GroupAndWarmPoolDesiredCapacity` \n+ `GroupAndWarmPoolTotalCapacity` \nIf you specify `Granularity` and don't specify any metrics, all metrics are enabled\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::AutoScalingGroup MixedInstancesPolicy": { + "InstancesDistribution": "The instances distribution to use\\. If you leave this property unspecified, the value for each property in `InstancesDistribution` uses a default value\\. \n*Required*: No \n*Type*: [InstancesDistribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-instancesdistribution.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LaunchTemplate": "Specifies the launch template to use and optionally the instance types \\(overrides\\) that are used to provision EC2 instances to fulfill On\\-Demand and Spot capacities\\. \n*Required*: Yes \n*Type*: [LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::AutoScalingGroup NetworkInterfaceCountRequest": { + "Max": "The maximum number of network interfaces\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Min": "The minimum number of network interfaces\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::AutoScalingGroup NotificationConfiguration": { + "NotificationTypes": "A list of event types that trigger a notification\\. Event types can include any of the following types\\. \n*Allowed Values*: \n+ `autoscaling:EC2_INSTANCE_LAUNCH` \n+ `autoscaling:EC2_INSTANCE_LAUNCH_ERROR` \n+ `autoscaling:EC2_INSTANCE_TERMINATE` \n+ `autoscaling:EC2_INSTANCE_TERMINATE_ERROR` \n+ `autoscaling:TEST_NOTIFICATION` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TopicARN": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::AutoScalingGroup TagProperty": { + "Key": "The tag key\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PropagateAtLaunch": "Set to `true` if you want CloudFormation to copy the tag to EC2 instances that are launched as part of the Auto Scaling group\\. Set to `false` if you want the tag attached only to the Auto Scaling group and not copied to any instances launched as part of the Auto Scaling group\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The tag value\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::AutoScalingGroup TotalLocalStorageGBRequest": { + "Max": "The storage maximum in GB\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Min": "The storage minimum in GB\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::AutoScalingGroup VCpuCountRequest": { + "Max": "The maximum number of vCPUs\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Min": "The minimum number of vCPUs\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::LaunchConfiguration": { + "AssociatePublicIpAddress": "For Auto Scaling groups that are running in a virtual private cloud \\(VPC\\), specifies whether to assign a public IP address to the group's instances\\. If you specify `true`, each instance in the Auto Scaling group receives a unique public IP address\\. For more information, see [Launching Auto Scaling instances in a VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \nIf an instance receives a public IP address and is also in a VPC that is defined in the same stack template, you must use the [DependsOn attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) to declare a dependency on the [VPC\\-gateway attachment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html)\\. \nIf the instance is launched into a default subnet, the default is to assign a public IP address, unless you disabled the option to assign a public IP address on the subnet\\. If the instance is launched into a nondefault subnet, the default is not to assign a public IP address, unless you enabled the option to assign a public IP address on the subnet\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BlockDeviceMappings": "Specifies how block devices are exposed to the instance\\. You can specify virtual devices and EBS volumes\\. \n*Required*: No \n*Type*: List of [BlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-blockdevicemapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ClassicLinkVPCId": "*EC2\\-Classic retires on August 15, 2022\\. This parameter is not supported after that date\\.* \nThe ID of a ClassicLink\\-enabled VPC to link your EC2\\-Classic instances to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ClassicLinkVPCSecurityGroups": "*EC2\\-Classic retires on August 15, 2022\\. This parameter is not supported after that date\\.* \nThe IDs of one or more security groups for the VPC that you specified in the `ClassicLinkVPCId` property\\. \nIf you specify the `ClassicLinkVPCId` property, you must specify this property\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EbsOptimized": "Specifies whether the launch configuration is optimized for EBS I/O \\(`true`\\) or not \\(`false`\\)\\. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance\\. Additional fees are incurred when you enable EBS optimization for an instance type that is not EBS\\-optimized by default\\. For more information, see [Amazon EBS\u2013optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \nThe default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IamInstanceProfile": "Provides the name or the Amazon Resource Name \\(ARN\\) of the instance profile associated with the IAM role for the instance\\. The instance profile contains the IAM role\\. \nFor more information, see [IAM role for applications that run on Amazon EC2 instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/us-iam-role.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ImageId": "Provides the unique ID of the Amazon Machine Image \\(AMI\\) that was assigned during registration\\. For more information, see [Finding a Linux AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceId": "The ID of the Amazon EC2 instance you want to use to create the launch configuration\\. Use this property if you want the launch configuration to use settings from an existing Amazon EC2 instance\\. When you use an instance to create a launch configuration, all properties are derived from the instance with the exception of `BlockDeviceMapping` and `AssociatePublicIpAddress`\\. You can override any properties from the instance by specifying them in the launch configuration\\. \n \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceMonitoring": "Controls whether instances in this group are launched with detailed \\(`true`\\) or basic \\(`false`\\) monitoring\\. The default value is `true` \\(enabled\\)\\. \nWhen detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and your account is charged a fee\\. When you disable detailed monitoring, CloudWatch generates metrics every 5 minutes\\. For more information, see [Configure monitoring for Auto Scaling instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/as-instance-monitoring.html#enable-as-instance-metrics) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceType": "Specifies the instance type of the EC2 instance\\. For information about available instance types, see [Available instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KernelId": "Provides the ID of the kernel associated with the EC2 AMI\\. \nWe recommend that you use PV\\-GRUB instead of kernels and RAM disks\\. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedKernels.html) in the *Amazon EC2 User Guide for Linux Instances*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KeyName": "Provides the name of the EC2 key pair\\. \nIf you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in\\. For information on creating a key pair, see [Amazon EC2 key pairs and Linux instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LaunchConfigurationName": "The name of the launch configuration\\. This name must be unique per Region per account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MetadataOptions": "The metadata options for the instances\\. For more information, see [Configuring the Instance Metadata Options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: [MetadataOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-metadataoptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PlacementTenancy": "The tenancy of the instance, either `default` or `dedicated`\\. An instance with `dedicated` tenancy runs on isolated, single\\-tenant hardware and can only be launched into a VPC\\. You must set the value of this property to `dedicated` if want to launch dedicated instances in a shared tenancy VPC \\(a VPC with the instance placement tenancy attribute set to default\\)\\. \nIf you specify this property, you must specify at least one subnet in the `VPCZoneIdentifier` property of the [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html) resource\\. \nFor more information, see [Configuring instance tenancy with Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-dedicated-instances.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RamDiskId": "The ID of the RAM disk to select\\. \nWe recommend that you use PV\\-GRUB instead of kernels and RAM disks\\. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedKernels.html) in the *Amazon EC2 User Guide for Linux Instances*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecurityGroups": "A list that contains the security groups to assign to the instances in the Auto Scaling group\\. The list can contain both the IDs of existing security groups and references to [SecurityGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html) resources created in the template\\. \nFor more information, see [Security groups for your VPC](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html) in the *Amazon Virtual Private Cloud User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SpotPrice": "The maximum hourly price you are willing to pay for any Spot Instances launched to fulfill the request\\. Spot Instances are launched when the price you specify exceeds the current Spot price\\. For more information, see [Requesting Spot Instances for fault\\-tolerant and flexible applications ](https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-configuration-requesting-spot-instances.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \nWhen you change your maximum price by creating a new launch configuration, running instances will continue to run as long as the maximum price for those running instances is higher than the current Spot price\\.\nValid Range: Minimum value of 0\\.001 \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UserData": "The Base64\\-encoded user data to make available to the launched EC2 instances\\. \nFor more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: No \n*Type*: String \n*Maximum*: `21847` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AutoScaling::LaunchConfiguration BlockDevice": { + "DeleteOnTermination": "Indicates whether the volume is deleted on instance termination\\. For Amazon EC2 Auto Scaling, the default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Encrypted": "Specifies whether the volume should be encrypted\\. Encrypted EBS volumes can only be attached to instances that support Amazon EBS encryption\\. For more information, see [Supported instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances)\\. If your AMI uses encrypted volumes, you can also only launch it on supported instance types\\. \nIf you are creating a volume from a snapshot, you cannot create an unencrypted volume from an encrypted snapshot\\. Also, you cannot specify a KMS key ID when using a launch configuration\\. \nIf you enable encryption by default, the EBS volumes that you create are always encrypted, either using the AWS managed KMS key or a customer\\-managed KMS key, regardless of whether the snapshot was encrypted\\. \nFor more information, see [Using AWS KMS keys to encrypt Amazon EBS volumes](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-data-protection.html#encryption) in the *Amazon EC2 Auto Scaling User Guide*\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Iops": "The number of input/output \\(I/O\\) operations per second \\(IOPS\\) to provision for the volume\\. For `gp3` and `io1` volumes, this represents the number of IOPS that are provisioned for the volume\\. For `gp2` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting\\. \nThe following are the supported values for each volume type: \n+ `gp3`: 3,000\\-16,000 IOPS\n+ `io1`: 100\\-64,000 IOPS\nFor `io1` volumes, we guarantee 64,000 IOPS only for [Instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)\\. Other instance families guarantee performance up to 32,000 IOPS\\. \n `Iops` is supported when the volume type is `gp3` or `io1` and required only when the volume type is `io1`\\. \\(Not used with `standard`, `gp2`, `st1`, or `sc1` volumes\\.\\) \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SnapshotId": "The snapshot ID of the volume to use\\. \nYou must specify either a `VolumeSize` or a `SnapshotId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Throughput": "The throughput \\(MiBps\\) to provision for a `gp3` volume\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `125` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VolumeSize": "The volume size, in GiBs\\. The following are the supported volumes sizes for each volume type: \n+ `gp2` and `gp3`: 1\\-16,384\n+ `io1`: 4\\-16,384\n+ `st1` and `sc1`: 125\\-16,384\n+ `standard`: 1\\-1,024\nYou must specify either a `SnapshotId` or a `VolumeSize`\\. If you specify both `SnapshotId` and `VolumeSize`, the volume size must be equal or greater than the size of the snapshot\\. \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `16384` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VolumeType": "The volume type\\. For more information, see [Amazon EBS Volume Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \nValid Values: `standard` \\| `io1` \\| `gp2` \\| `st1` \\| `sc1` \\| `gp3` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AutoScaling::LaunchConfiguration BlockDeviceMapping": { + "DeviceName": "The device name exposed to the EC2 instance \\(for example, `/dev/sdh` or `xvdh`\\)\\. For more information, see [Device naming on Linux instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Ebs": "Parameters used to automatically set up EBS volumes when an instance is launched\\. \nYou can specify either `VirtualName` or `Ebs`, but not both\\. \n*Required*: No \n*Type*: [BlockDevice](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-blockdevice.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NoDevice": "Setting this value to `true` suppresses the specified device included in the block device mapping of the AMI\\. \nIf `NoDevice` is `true` for the root device, instances might fail the EC2 health check\\. In that case, Amazon EC2 Auto Scaling launches replacement instances\\. \nIf you specify `NoDevice`, you cannot specify `Ebs`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VirtualName": "The name of the virtual device\\. The name must be in the form ephemeral*X* where *X* is a number starting from zero \\(0\\), for example, `ephemeral0`\\. \nYou can specify either `VirtualName` or `Ebs`, but not both\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AutoScaling::LaunchConfiguration MetadataOptions": { + "HttpEndpoint": "This parameter enables or disables the HTTP metadata endpoint on your instances\\. If the parameter is not specified, the default state is `enabled`\\. \nIf you specify a value of `disabled`, you will not be able to access your instance metadata\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disabled | enabled` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "HttpPutResponseHopLimit": "The desired HTTP PUT response hop limit for instance metadata requests\\. The larger the number, the further instance metadata requests can travel\\. \nDefault: 1 \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "HttpTokens": "The state of token usage for your instance metadata requests\\. If the parameter is not specified in the request, the default state is `optional`\\. \nIf the state is `optional`, you can choose to retrieve instance metadata with or without a signed token header on your request\\. If you retrieve the IAM role credentials without a token, the version 1\\.0 role credentials are returned\\. If you retrieve the IAM role credentials using a valid signed token, the version 2\\.0 role credentials are returned\\. \nIf the state is `required`, you must send a signed token header with any instance metadata retrieval requests\\. In this state, retrieving the IAM role credentials always returns the version 2\\.0 credentials; the version 1\\.0 credentials are not available\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `optional | required` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::AutoScaling::LifecycleHook": { + "AutoScalingGroupName": "The name of the Auto Scaling group for the lifecycle hook\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DefaultResult": "The action the Auto Scaling group takes when the lifecycle hook timeout elapses or if an unexpected failure occurs\\. The valid values are `CONTINUE` and `ABANDON` \\(default\\)\\. \nFor more information, see [Adding lifecycle hooks](https://docs.aws.amazon.com/autoscaling/ec2/userguide/adding-lifecycle-hooks.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HeartbeatTimeout": "The maximum time, in seconds, that can elapse before the lifecycle hook times out\\. The range is from `30` to `7200` seconds\\. The default value is `3600` seconds \\(1 hour\\)\\. If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the action that you specified in the `DefaultResult` property\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LifecycleHookName": "The name of the lifecycle hook\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[A-Za-z0-9\\-_\\/]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LifecycleTransition": "The instance state to which you want to attach the lifecycle hook\\. The valid values are: \n+ autoscaling:EC2\\_INSTANCE\\_LAUNCHING\n+ autoscaling:EC2\\_INSTANCE\\_TERMINATING\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotificationMetadata": "Additional information that is included any time Amazon EC2 Auto Scaling sends a message to the notification target\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1023` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotificationTargetARN": "The Amazon Resource Name \\(ARN\\) of the notification target that Amazon EC2 Auto Scaling uses to notify you when an instance is in the transition state for the lifecycle hook\\. You can specify an Amazon SQS queue or an Amazon SNS topic\\. The notification message includes the following information: lifecycle action token, user account ID, Auto Scaling group name, lifecycle hook name, instance ID, lifecycle transition, and notification metadata\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleARN": "The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target, for example, an Amazon SNS topic or an Amazon SQS queue\\. For information about creating this role, see [Configuring a notification target for a lifecycle hook](https://docs.aws.amazon.com/autoscaling/ec2/userguide/configuring-lifecycle-hook-notifications.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::ScalingPolicy": { + "AdjustmentType": "Specifies how the scaling adjustment is interpreted\\. The valid values are `ChangeInCapacity`, `ExactCapacity`, and `PercentChangeInCapacity`\\. \nRequired if the policy type is `StepScaling` or `SimpleScaling`\\. For more information, see [Scaling adjustment types](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html#as-scaling-adjustment) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutoScalingGroupName": "The name of the Auto Scaling group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Cooldown": "The duration of the policy's cooldown period, in seconds\\. When a cooldown period is specified here, it overrides the default cooldown period defined for the Auto Scaling group\\. \nValid only if the policy type is `SimpleScaling`\\. For more information, see [Scaling cooldowns for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EstimatedInstanceWarmup": "The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics\\. If not provided, the default is to use the value from the default cooldown period for the Auto Scaling group\\. \nValid only if the policy type is `TargetTrackingScaling` or `StepScaling`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricAggregationType": "The aggregation type for the CloudWatch metrics\\. The valid values are `Minimum`, `Maximum`, and `Average`\\. If the aggregation type is null, the value is treated as `Average`\\. \nValid only if the policy type is `StepScaling`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinAdjustmentMagnitude": "The minimum value to scale by when the adjustment type is `PercentChangeInCapacity`\\. For example, suppose that you create a step scaling policy to scale out an Auto Scaling group by 25 percent and you specify a `MinAdjustmentMagnitude` of 2\\. If the group has 4 instances and the scaling policy is performed, 25 percent of 4 is 1\\. However, because you specified a `MinAdjustmentMagnitude` of 2, Amazon EC2 Auto Scaling scales out the group by 2 instances\\. \nValid only if the policy type is `StepScaling` or `SimpleScaling`\\. For more information, see [Scaling adjustment types](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html#as-scaling-adjustment) in the *Amazon EC2 Auto Scaling User Guide*\\. \nSome Auto Scaling groups use instance weights\\. In this case, set the `MinAdjustmentMagnitude` to a value that is at least as large as your largest instance weight\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PolicyType": "One of the following policy types: \n+ `TargetTrackingScaling` \n+ `StepScaling` \n+ `SimpleScaling` \\(default\\)\n+ `PredictiveScaling` \nFor more information, see [Target tracking scaling policies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html) and [Step and simple scaling policies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PredictiveScalingConfiguration": "A predictive scaling policy\\. Provides support for predefined and custom metrics\\. \nPredefined metrics include CPU utilization, network in/out, and the Application Load Balancer request count\\. \n*Required*: Conditional \n*Type*: [PredictiveScalingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScalingAdjustment": "The amount by which to scale, based on the specified adjustment type\\. A positive value adds to the current capacity while a negative number removes from the current capacity\\. For exact capacity, you must specify a positive value\\. \nRequired if the policy type is `SimpleScaling`\\. \\(Not used with any other policy type\\.\\) \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StepAdjustments": "A set of adjustments that enable you to scale based on the size of the alarm breach\\. \nRequired if the policy type is `StepScaling`\\. \\(Not used with any other policy type\\.\\) \n*Required*: Conditional \n*Type*: List of [StepAdjustment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-stepadjustments.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetTrackingConfiguration": "A target tracking scaling policy\\. Includes support for predefined or customized metrics\\. \nThe following predefined metrics are available: \n+ `ASGAverageCPUUtilization` \n+ `ASGAverageNetworkIn` \n+ `ASGAverageNetworkOut` \n+ `ALBRequestCountPerTarget` \nIf you specify `ALBRequestCountPerTarget` for the metric, you must specify the `ResourceLabel` property with the `PredefinedMetricSpecification`\\. \n*Required*: Conditional \n*Type*: [TargetTrackingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-targettrackingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::ScalingPolicy CustomizedMetricSpecification": { + "Dimensions": "The dimensions of the metric\\. \nConditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy\\. \n*Required*: No \n*Type*: List of [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricName": "The name of the metric\\. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Namespace": "The namespace of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Statistic": "The statistic of the metric\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Average | Maximum | Minimum | SampleCount | Sum` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Unit": "The unit of the metric\\. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::ScalingPolicy Metric": { + "Dimensions": "The dimensions for the metric\\. For the list of available dimensions, see the AWS documentation available from the table in [AWS services that publish CloudWatch metrics ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*\\. \nConditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy\\. \n*Required*: No \n*Type*: List of [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricName": "The name of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Namespace": "The namespace of the metric\\. For more information, see the table in [AWS services that publish CloudWatch metrics ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::ScalingPolicy MetricDataQuery": { + "Expression": "The math expression to perform on the returned data, if this object is performing a math expression\\. This expression can use the `Id` of the other metrics to refer to those metrics, and can also use the `Id` of other expressions to use the result of those expressions\\. \nConditional: Within each `MetricDataQuery` object, you must specify either `Expression` or `MetricStat`, but not both\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1023` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "A short name that identifies the object's results in the response\\. This name must be unique among all `MetricDataQuery` objects specified for a single scaling policy\\. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression\\. The valid characters are letters, numbers, and underscores\\. The first character must be a lowercase letter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Label": "A human\\-readable label for this metric or expression\\. This is especially useful if this is a math expression, so that you know what the value represents\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2047` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricStat": "Information about the metric data to return\\. \nConditional: Within each `MetricDataQuery` object, you must specify either `Expression` or `MetricStat`, but not both\\. \n*Required*: No \n*Type*: [MetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricstat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReturnData": "Indicates whether to return the timestamps and raw data values of this metric\\. \nIf you use any math expressions, specify `true` for this value for only the final math expression that the metric specification is based on\\. You must specify `false` for `ReturnData` for all the other metrics and expressions used in the metric specification\\. \nIf you are only retrieving metrics and not performing any math expressions, do not specify anything for `ReturnData`\\. This sets it to its default \\(`true`\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::ScalingPolicy MetricDimension": { + "Name": "The name of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::ScalingPolicy MetricStat": { + "Metric": "The CloudWatch metric to return, including the metric name, namespace, and dimensions\\. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html)\\. \n*Required*: Yes \n*Type*: [Metric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Stat": "The statistic to return\\. It can include any CloudWatch statistic or extended statistic\\. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *Amazon CloudWatch User Guide*\\. \nThe most commonly used metrics for predictive scaling are `Average` and `Sum`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Unit": "The unit to use for the returned data points\\. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::ScalingPolicy PredefinedMetricSpecification": { + "PredefinedMetricType": "The metric type\\. The following predefined metrics are available\\. \n+ `ASGAverageCPUUtilization` \\- Average CPU utilization of the Auto Scaling group\\.\n+ `ASGAverageNetworkIn` \\- Average number of bytes received on all network interfaces by the Auto Scaling group\\.\n+ `ASGAverageNetworkOut` \\- Average number of bytes sent out on all network interfaces by the Auto Scaling group\\.\n+ `ALBRequestCountPerTarget` \\- Number of requests completed per target in an Application Load Balancer target group\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALBRequestCountPerTarget | ASGAverageCPUUtilization | ASGAverageNetworkIn | ASGAverageNetworkOut` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceLabel": "Identifies the resource associated with the metric type\\. You can't specify a resource label unless the metric type is `ALBRequestCountPerTarget` and there is a target group attached to the Auto Scaling group\\. \nThe format is `app/load-balancer-name/load-balancer-id/targetgroup/target-group-name/target-group-id `, where \n+ `app/load-balancer-name/load-balancer-id ` is the final portion of the load balancer ARN, and\n+ `targetgroup/target-group-name/target-group-id ` is the final portion of the target group ARN\\.\n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1023` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::ScalingPolicy PredictiveScalingConfiguration": { + "MaxCapacityBreachBehavior": "Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity of the Auto Scaling group\\. Defaults to `HonorMaxCapacity` if not specified\\. \nThe following are possible values: \n+ `HonorMaxCapacity` \\- Amazon EC2 Auto Scaling cannot scale out capacity higher than the maximum capacity\\. The maximum capacity is enforced as a hard limit\\. \n+ `IncreaseMaxCapacity` \\- Amazon EC2 Auto Scaling can scale out capacity higher than the maximum capacity when the forecast capacity is close to or exceeds the maximum capacity\\. The upper limit is determined by the forecasted capacity and the value for `MaxCapacityBuffer`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `HonorMaxCapacity | IncreaseMaxCapacity` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxCapacityBuffer": "The size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity\\. The value is specified as a percentage relative to the forecast capacity\\. For example, if the buffer is 10, this means a 10 percent buffer, such that if the forecast capacity is 50, and the maximum capacity is 40, then the effective maximum capacity is 55\\. \nIf set to 0, Amazon EC2 Auto Scaling may scale capacity higher than the maximum capacity to equal but not exceed forecast capacity\\. \nRequired if the `MaxCapacityBreachBehavior` property is set to `IncreaseMaxCapacity`, and cannot be used otherwise\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricSpecifications": "An array that contains information about the metrics and target utilization to use for predictive scaling\\. \nAdding more than one predictive scaling metric specification to the array is currently not supported\\.\n*Required*: Yes \n*Type*: List of [PredictiveScalingMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Mode": "The predictive scaling mode\\. Defaults to `ForecastOnly` if not specified\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ForecastAndScale | ForecastOnly` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SchedulingBufferTime": "The amount of time, in seconds, by which the instance launch time can be advanced\\. For example, the forecast says to add capacity at 10:00 AM, and you choose to pre\\-launch instances by 5 minutes\\. In that case, the instances will be launched at 9:55 AM\\. The intention is to give resources time to be provisioned\\. It can take a few minutes to launch an EC2 instance\\. The actual amount of time required depends on several factors, such as the size of the instance and whether there are startup scripts to complete\\. \nThe value must be less than the forecast interval duration of 3600 seconds \\(60 minutes\\)\\. Defaults to 300 seconds if not specified\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::ScalingPolicy PredictiveScalingCustomizedCapacityMetric": { + "MetricDataQueries": "One or more metric data queries to provide the data points for a capacity metric\\. Use multiple metric data queries only if you are performing a math expression on returned data\\. \n*Required*: Yes \n*Type*: List of [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricdataquery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::ScalingPolicy PredictiveScalingCustomizedLoadMetric": { + "MetricDataQueries": "One or more metric data queries to provide the data points for a load metric\\. Use multiple metric data queries only if you are performing a math expression on returned data\\. \n*Required*: Yes \n*Type*: List of [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricdataquery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::ScalingPolicy PredictiveScalingCustomizedScalingMetric": { + "MetricDataQueries": "One or more metric data queries to provide the data points for a scaling metric\\. Use multiple metric data queries only if you are performing a math expression on returned data\\. \n*Required*: Yes \n*Type*: List of [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricdataquery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::ScalingPolicy PredictiveScalingMetricSpecification": { + "CustomizedCapacityMetricSpecification": "The customized capacity metric specification\\. \n*Required*: No \n*Type*: [PredictiveScalingCustomizedCapacityMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingcustomizedcapacitymetric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomizedLoadMetricSpecification": "The customized load metric specification\\. \n*Required*: No \n*Type*: [PredictiveScalingCustomizedLoadMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingcustomizedloadmetric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomizedScalingMetricSpecification": "The customized scaling metric specification\\. \n*Required*: No \n*Type*: [PredictiveScalingCustomizedScalingMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingcustomizedscalingmetric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PredefinedLoadMetricSpecification": "The load metric specification\\. \nIf you specify `PredefinedMetricPairSpecification`, don't specify this property\\. \n*Required*: No \n*Type*: [PredictiveScalingPredefinedLoadMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedloadmetric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PredefinedMetricPairSpecification": "The metric pair specification from which Amazon EC2 Auto Scaling determines the appropriate scaling metric and load metric to use\\. \nWith predictive scaling, you must specify either a metric pair, or a load metric and a scaling metric individually\\. Specifying a metric pair instead of individual metrics provides a simpler way to configure metrics for a scaling policy\\. You choose the metric pair, and the policy automatically knows the correct sum and average statistics to use for the load metric and the scaling metric\\.\n*Required*: No \n*Type*: [PredictiveScalingPredefinedMetricPair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedmetricpair.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PredefinedScalingMetricSpecification": "The scaling metric specification\\. \nIf you specify `PredefinedMetricPairSpecification`, don't specify this property\\. \n*Required*: No \n*Type*: [PredictiveScalingPredefinedScalingMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedscalingmetric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetValue": "Specifies the target utilization\\. \nSome metrics are based on a count instead of a percentage, such as the request count for an Application Load Balancer or the number of messages in an SQS queue\\. If the scaling policy specifies one of these metrics, specify the target utilization as the optimal average request or message count per instance during any one\\-minute interval\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::ScalingPolicy PredictiveScalingPredefinedLoadMetric": { + "PredefinedMetricType": "The metric type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALBTargetGroupRequestCount | ASGTotalCPUUtilization | ASGTotalNetworkIn | ASGTotalNetworkOut` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceLabel": "A label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group\\. You can't specify a resource label unless the target group is attached to the Auto Scaling group\\. \nYou create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash \\(/\\)\\. The format of the resource label is: \n `app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff`\\. \nWhere: \n+ app// is the final portion of the load balancer ARN\n+ targetgroup// is the final portion of the target group ARN\\.\nTo find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation\\. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::ScalingPolicy PredictiveScalingPredefinedMetricPair": { + "PredefinedMetricType": "Indicates which metrics to use\\. There are two different types of metrics for each metric type: one is a load metric and one is a scaling metric\\. For example, if the metric type is `ASGCPUUtilization`, the Auto Scaling group's total CPU metric is used as the load metric, and the average CPU metric is used for the scaling metric\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALBRequestCount | ASGCPUUtilization | ASGNetworkIn | ASGNetworkOut` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceLabel": "A label that uniquely identifies a specific Application Load Balancer target group from which to determine the total and average request count served by your Auto Scaling group\\. You can't specify a resource label unless the target group is attached to the Auto Scaling group\\. \nYou create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash \\(/\\)\\. The format of the resource label is: \n `app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff`\\. \nWhere: \n+ app// is the final portion of the load balancer ARN\n+ targetgroup// is the final portion of the target group ARN\\.\nTo find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation\\. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::ScalingPolicy PredictiveScalingPredefinedScalingMetric": { + "PredefinedMetricType": "The metric type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALBRequestCountPerTarget | ASGAverageCPUUtilization | ASGAverageNetworkIn | ASGAverageNetworkOut` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceLabel": "A label that uniquely identifies a specific Application Load Balancer target group from which to determine the average request count served by your Auto Scaling group\\. You can't specify a resource label unless the target group is attached to the Auto Scaling group\\. \nYou create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash \\(/\\)\\. The format of the resource label is: \n `app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff`\\. \nWhere: \n+ app// is the final portion of the load balancer ARN\n+ targetgroup// is the final portion of the target group ARN\\.\nTo find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation\\. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::ScalingPolicy StepAdjustment": { + "MetricIntervalLowerBound": "The lower bound for the difference between the alarm threshold and the CloudWatch metric\\. If the metric value is above the breach threshold, the lower bound is inclusive \\(the metric must be greater than or equal to the threshold plus the lower bound\\)\\. Otherwise, it is exclusive \\(the metric must be greater than the threshold plus the lower bound\\)\\. A null value indicates negative infinity\\. \n*Required*: Conditional \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricIntervalUpperBound": "The upper bound for the difference between the alarm threshold and the CloudWatch metric\\. If the metric value is above the breach threshold, the upper bound is exclusive \\(the metric must be less than the threshold plus the upper bound\\)\\. Otherwise, it is inclusive \\(the metric must be less than or equal to the threshold plus the upper bound\\)\\. A null value indicates positive infinity\\. \n*Required*: Conditional \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScalingAdjustment": "The amount by which to scale\\. The adjustment is based on the value that you specified in the `AdjustmentType` property \\(either an absolute number or a percentage\\)\\. A positive value adds to the current capacity and a negative number subtracts from the current capacity\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::ScalingPolicy TargetTrackingConfiguration": { + "CustomizedMetricSpecification": "A customized metric\\. You must specify either a predefined metric or a customized metric\\. \n*Required*: Conditional \n*Type*: [CustomizedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-customizedmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisableScaleIn": "Indicates whether scaling in by the target tracking scaling policy is disabled\\. If scaling in is disabled, the target tracking scaling policy doesn't remove instances from the Auto Scaling group\\. Otherwise, the target tracking scaling policy can remove instances from the Auto Scaling group\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PredefinedMetricSpecification": "A predefined metric\\. You must specify either a predefined metric or a customized metric\\. \n*Required*: Conditional \n*Type*: [PredefinedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predefinedmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetValue": "The target value for the metric\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::ScheduledAction": { + "AutoScalingGroupName": "The name of the Auto Scaling group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DesiredCapacity": "The desired capacity is the initial capacity of the Auto Scaling group after the scheduled action runs and the capacity it attempts to maintain\\. It can scale beyond this capacity if you add more scaling conditions\\. \nYou must specify at least one of the following properties: `MaxSize`, `MinSize`, or `DesiredCapacity`\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EndTime": "The date and time for the recurring schedule to end, in UTC\\. For example, `\"2021-06-01T00:00:00Z\"`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxSize": "The maximum size of the Auto Scaling group\\. \nYou must specify at least one of the following properties: `MaxSize`, `MinSize`, or `DesiredCapacity`\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinSize": "The minimum size of the Auto Scaling group\\. \nYou must specify at least one of the following properties: `MaxSize`, `MinSize`, or `DesiredCapacity`\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Recurrence": "The recurring schedule for this action\\. This format consists of five fields separated by white spaces: \\[Minute\\] \\[Hour\\] \\[Day\\_of\\_Month\\] \\[Month\\_of\\_Year\\] \\[Day\\_of\\_Week\\]\\. For more information about this format, see [Crontab](http://crontab.org)\\. \nWhen `StartTime` and `EndTime` are specified with `Recurrence`, they form the boundaries of when the recurring action starts and stops\\. \nCron expressions use Universal Coordinated Time \\(UTC\\) by default\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StartTime": "The date and time for this action to start, in YYYY\\-MM\\-DDThh:mm:ssZ format in UTC/GMT only\\. For example, `\"2021-06-01T00:00:00Z\"`\\. \nIf you specify `Recurrence` and `StartTime`, Amazon EC2 Auto Scaling performs the action at this time, and then performs the action based on the specified recurrence\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeZone": "Specifies the time zone for a cron expression\\. If a time zone is not provided, UTC is used by default\\. \nValid values are the canonical names of the IANA time zones, derived from the IANA Time Zone Database \\(such as `Etc/GMT+9` or `Pacific/Tahiti`\\)\\. For more information, see [https://en\\.wikipedia\\.org/wiki/List\\_of\\_tz\\_database\\_time\\_zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::WarmPool": { + "AutoScalingGroupName": "The name of the Auto Scaling group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceReusePolicy": "Indicates whether instances in the Auto Scaling group can be returned to the warm pool on scale in\\. The default is to terminate instances in the Auto Scaling group when the group scales in\\. \n*Required*: No \n*Type*: [InstanceReusePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-warmpool-instancereusepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxGroupPreparedCapacity": "Specifies the maximum number of instances that are allowed to be in the warm pool or in any state except `Terminated` for the Auto Scaling group\\. This is an optional property\\. Specify it only if you do not want the warm pool size to be determined by the difference between the group's maximum capacity and its desired capacity\\. \nIf a value for `MaxGroupPreparedCapacity` is not specified, Amazon EC2 Auto Scaling launches and maintains the difference between the group's maximum capacity and its desired capacity\\. If you specify a value for `MaxGroupPreparedCapacity`, Amazon EC2 Auto Scaling uses the difference between the `MaxGroupPreparedCapacity` and the desired capacity instead\\. \nThe size of the warm pool is dynamic\\. Only when `MaxGroupPreparedCapacity` and `MinSize` are set to the same value does the warm pool have an absolute size\\.\nIf the desired capacity of the Auto Scaling group is higher than the `MaxGroupPreparedCapacity`, the capacity of the warm pool is 0, unless you specify a value for `MinSize`\\. To remove a value that you previously set, include the property but specify \\-1 for the value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `-1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinSize": "Specifies the minimum number of instances to maintain in the warm pool\\. This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes\\. Defaults to 0 if not specified\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PoolState": "Sets the instance state to transition to after the lifecycle actions are complete\\. Default is `Stopped`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Hibernated | Running | Stopped` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScaling::WarmPool InstanceReusePolicy": { + "ReuseOnScaleIn": "Specifies whether instances in the Auto Scaling group can be returned to the warm pool on scale in\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScalingPlans::ScalingPlan": { + "ApplicationSource": "A CloudFormation stack or a set of tags\\. You can create one scaling plan per application source\\. The `ApplicationSource` property must be present to ensure interoperability with the AWS Auto Scaling console\\. \n*Required*: Yes \n*Type*: [ApplicationSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-applicationsource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScalingInstructions": "The scaling instructions\\. \n*Required*: Yes \n*Type*: List of [ScalingInstruction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScalingPlans::ScalingPlan ApplicationSource": { + "CloudFormationStackARN": "The Amazon Resource Name \\(ARN\\) of a CloudFormation stack\\. \nYou must specify either a `CloudFormationStackARN` or `TagFilters`\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TagFilters": "A set of tag filters \\(keys and values\\)\\. Each tag filter specified must contain a key with values as optional\\. Each scaling plan can include up to 50 keys, and each key can include up to 20 values\\. \nTags are part of the syntax that you use to specify the resources you want returned when configuring a scaling plan from the AWS Auto Scaling console\\. You do not need to specify valid tag filter values when you create a scaling plan with CloudFormation\\. The `Key` and `Values` properties can accept any value as long as the combination of values is unique across scaling plans\\. However, if you also want to use the AWS Auto Scaling console to edit the scaling plan, then you must specify valid values\\. \nYou must specify either a `CloudFormationStackARN` or `TagFilters`\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScalingPlans::ScalingPlan CustomizedLoadMetricSpecification": { + "Dimensions": "The dimensions of the metric\\. \nConditional: If you published your metric with dimensions, you must specify the same dimensions in your customized load metric specification\\. \n*Required*: No \n*Type*: List of [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricName": "The name of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Namespace": "The namespace of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Statistic": "The statistic of the metric\\. \n*Allowed Values*: `Sum` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Unit": "The unit of the metric\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScalingPlans::ScalingPlan CustomizedScalingMetricSpecification": { + "Dimensions": "The dimensions of the metric\\. \nConditional: If you published your metric with dimensions, you must specify the same dimensions in your customized scaling metric specification\\. \n*Required*: No \n*Type*: List of [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricName": "The name of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Namespace": "The namespace of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Statistic": "The statistic of the metric\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Average | Maximum | Minimum | SampleCount | Sum` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Unit": "The unit of the metric\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScalingPlans::ScalingPlan MetricDimension": { + "Name": "The name of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScalingPlans::ScalingPlan PredefinedLoadMetricSpecification": { + "PredefinedLoadMetricType": "The metric type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALBTargetGroupRequestCount | ASGTotalCPUUtilization | ASGTotalNetworkIn | ASGTotalNetworkOut` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceLabel": "Identifies the resource associated with the metric type\\. You can't specify a resource label unless the metric type is `ALBTargetGroupRequestCount` and there is a target group for an Application Load Balancer attached to the Auto Scaling group\\. \nYou create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash \\(/\\)\\. The format is app///targetgroup//, where: \n+ app// is the final portion of the load balancer ARN\n+ targetgroup// is the final portion of the target group ARN\\.\nThis is an example: app/EC2Co\\-EcsEl\\-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co\\-Defau\\-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d\\. \nTo find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation\\. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1023` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScalingPlans::ScalingPlan PredefinedScalingMetricSpecification": { + "PredefinedScalingMetricType": "The metric type\\. The `ALBRequestCountPerTarget` metric type applies only to Auto Scaling groups, Spot Fleet requests, and ECS services\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALBRequestCountPerTarget | ASGAverageCPUUtilization | ASGAverageNetworkIn | ASGAverageNetworkOut | DynamoDBReadCapacityUtilization | DynamoDBWriteCapacityUtilization | EC2SpotFleetRequestAverageCPUUtilization | EC2SpotFleetRequestAverageNetworkIn | EC2SpotFleetRequestAverageNetworkOut | ECSServiceAverageCPUUtilization | ECSServiceAverageMemoryUtilization | RDSReaderAverageCPUUtilization | RDSReaderAverageDatabaseConnections` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceLabel": "Identifies the resource associated with the metric type\\. You can't specify a resource label unless the metric type is `ALBRequestCountPerTarget` and there is a target group for an Application Load Balancer attached to the Auto Scaling group, Spot Fleet request, or ECS service\\. \nYou create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash \\(/\\)\\. The format is app///targetgroup//, where: \n+ app// is the final portion of the load balancer ARN\n+ targetgroup// is the final portion of the target group ARN\\.\nThis is an example: app/EC2Co\\-EcsEl\\-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co\\-Defau\\-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d\\. \nTo find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation\\. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1023` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScalingPlans::ScalingPlan ScalingInstruction": { + "CustomizedLoadMetricSpecification": "The customized load metric to use for predictive scaling\\. This property or a **PredefinedLoadMetricSpecification** is required when configuring predictive scaling, and cannot be used otherwise\\. \n*Required*: Conditional \n*Type*: [CustomizedLoadMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedloadmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisableDynamicScaling": "Controls whether dynamic scaling by AWS Auto Scaling is disabled\\. When dynamic scaling is enabled, AWS Auto Scaling creates target tracking scaling policies based on the specified target tracking configurations\\. \nThe default is enabled \\(`false`\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxCapacity": "The maximum capacity of the resource\\. The exception to this upper limit is if you specify a non\\-default setting for **PredictiveScalingMaxCapacityBehavior**\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinCapacity": "The minimum capacity of the resource\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PredefinedLoadMetricSpecification": "The predefined load metric to use for predictive scaling\\. This property or a **CustomizedLoadMetricSpecification** is required when configuring predictive scaling, and cannot be used otherwise\\. \n*Required*: Conditional \n*Type*: [PredefinedLoadMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-predefinedloadmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PredictiveScalingMaxCapacityBehavior": "Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity specified for the resource\\. The default value is `SetForecastCapacityToMaxCapacity`\\. \nThe following are possible values: \n+ `SetForecastCapacityToMaxCapacity` \\- AWS Auto Scaling cannot scale resource capacity higher than the maximum capacity\\. The maximum capacity is enforced as a hard limit\\. \n+ `SetMaxCapacityToForecastCapacity` \\- AWS Auto Scaling can scale resource capacity higher than the maximum capacity to equal but not exceed forecast capacity\\.\n+ `SetMaxCapacityAboveForecastCapacity` \\- AWS Auto Scaling can scale resource capacity higher than the maximum capacity by a specified buffer value\\. The intention is to give the target tracking scaling policy extra capacity if unexpected traffic occurs\\. \nValid only when configuring predictive scaling\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `SetForecastCapacityToMaxCapacity | SetMaxCapacityAboveForecastCapacity | SetMaxCapacityToForecastCapacity` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PredictiveScalingMaxCapacityBuffer": "The size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity\\. The value is specified as a percentage relative to the forecast capacity\\. For example, if the buffer is 10, this means a 10 percent buffer\\. With a 10 percent buffer, if the forecast capacity is 50, and the maximum capacity is 40, then the effective maximum capacity is 55\\. \nValid only when configuring predictive scaling\\. Required if **PredictiveScalingMaxCapacityBehavior** is set to `SetMaxCapacityAboveForecastCapacity`, and cannot be used otherwise\\. \nThe range is 1\\-100\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PredictiveScalingMode": "The predictive scaling mode\\. The default value is `ForecastAndScale`\\. Otherwise, AWS Auto Scaling forecasts capacity but does not apply any scheduled scaling actions based on the capacity forecast\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ForecastAndScale | ForecastOnly` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceId": "The ID of the resource\\. This string consists of the resource type and unique identifier\\. \n+ Auto Scaling group \\- The resource type is `autoScalingGroup` and the unique identifier is the name of the Auto Scaling group\\. Example: `autoScalingGroup/my-asg`\\.\n+ ECS service \\- The resource type is `service` and the unique identifier is the cluster name and service name\\. Example: `service/default/sample-webapp`\\.\n+ Spot Fleet request \\- The resource type is `spot-fleet-request` and the unique identifier is the Spot Fleet request ID\\. Example: `spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE`\\.\n+ DynamoDB table \\- The resource type is `table` and the unique identifier is the resource ID\\. Example: `table/my-table`\\.\n+ DynamoDB global secondary index \\- The resource type is `index` and the unique identifier is the resource ID\\. Example: `table/my-table/index/my-table-index`\\.\n+ Aurora DB cluster \\- The resource type is `cluster` and the unique identifier is the cluster name\\. Example: `cluster:my-db-cluster`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScalableDimension": "The scalable dimension associated with the resource\\. \n+ `autoscaling:autoScalingGroup:DesiredCapacity` \\- The desired capacity of an Auto Scaling group\\.\n+ `ecs:service:DesiredCount` \\- The desired task count of an ECS service\\.\n+ `ec2:spot-fleet-request:TargetCapacity` \\- The target capacity of a Spot Fleet request\\.\n+ `dynamodb:table:ReadCapacityUnits` \\- The provisioned read capacity for a DynamoDB table\\.\n+ `dynamodb:table:WriteCapacityUnits` \\- The provisioned write capacity for a DynamoDB table\\.\n+ `dynamodb:index:ReadCapacityUnits` \\- The provisioned read capacity for a DynamoDB global secondary index\\.\n+ `dynamodb:index:WriteCapacityUnits` \\- The provisioned write capacity for a DynamoDB global secondary index\\.\n+ `rds:cluster:ReadReplicaCount` \\- The count of Aurora Replicas in an Aurora DB cluster\\. Available for Aurora MySQL\\-compatible edition and Aurora PostgreSQL\\-compatible edition\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `autoscaling:autoScalingGroup:DesiredCapacity | dynamodb:index:ReadCapacityUnits | dynamodb:index:WriteCapacityUnits | dynamodb:table:ReadCapacityUnits | dynamodb:table:WriteCapacityUnits | ec2:spot-fleet-request:TargetCapacity | ecs:service:DesiredCount | rds:cluster:ReadReplicaCount` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScalingPolicyUpdateBehavior": "Controls whether your scaling policies that are external to AWS Auto Scaling are deleted and new target tracking scaling policies created\\. The default value is `KeepExternalPolicies`\\. \nValid only when configuring dynamic scaling\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `KeepExternalPolicies | ReplaceExternalPolicies` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduledActionBufferTime": "The amount of time, in seconds, to buffer the run time of scheduled scaling actions when scaling out\\. For example, if the forecast says to add capacity at 10:00 AM, and the buffer time is 5 minutes, then the run time of the corresponding scheduled scaling action will be 9:55 AM\\. The intention is to give resources time to be provisioned\\. For example, it can take a few minutes to launch an EC2 instance\\. The actual amount of time required depends on several factors, such as the size of the instance and whether there are startup scripts to complete\\. \nThe value must be less than the forecast interval duration of 3600 seconds \\(60 minutes\\)\\. The default is 300 seconds\\. \nValid only when configuring predictive scaling\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceNamespace": "The namespace of the AWS service\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `autoscaling | dynamodb | ec2 | ecs | rds` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetTrackingConfigurations": "The target tracking configurations \\(up to 10\\)\\. Each of these structures must specify a unique scaling metric and a target value for the metric\\. \n*Required*: Yes \n*Type*: List of [TargetTrackingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-targettrackingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScalingPlans::ScalingPlan TagFilter": { + "Key": "The tag key\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "The tag values \\(0 to 20\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::AutoScalingPlans::ScalingPlan TargetTrackingConfiguration": { + "CustomizedScalingMetricSpecification": "A customized metric\\. You can specify either a predefined metric or a customized metric\\. \n*Required*: No \n*Type*: [CustomizedScalingMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedscalingmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisableScaleIn": "Indicates whether scale in by the target tracking scaling policy is disabled\\. If the value is `true`, scale in is disabled and the target tracking scaling policy doesn't remove capacity from the scalable resource\\. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable resource\\. \nThe default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EstimatedInstanceWarmup": "The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics\\. This value is used only if the resource is an Auto Scaling group\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PredefinedScalingMetricSpecification": "A predefined metric\\. You can specify either a predefined metric or a customized metric\\. \n*Required*: No \n*Type*: [PredefinedScalingMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-predefinedscalingmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScaleInCooldown": "The amount of time, in seconds, after a scale\\-in activity completes before another scale in activity can start\\. This value is not used if the scalable resource is an Auto Scaling group\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScaleOutCooldown": "The amount of time, in seconds, after a scale\\-out activity completes before another scale\\-out activity can start\\. This value is not used if the scalable resource is an Auto Scaling group\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetValue": "The target value for the metric\\. Although this property accepts numbers of type Double, it won't accept values that are either too small or too large\\. Values must be in the range of \\-2^360 to 2^360\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Backup::BackupPlan": { + "BackupPlan": "Uniquely identifies the backup plan to be associated with the selection of resources\\. \n*Required*: Yes \n*Type*: [BackupPlanResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupplanresourcetype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BackupPlanTags": "To help organize your resources, you can assign your own metadata to the resources that you create\\. Each tag is a key\\-value pair\\. The specified tags are assigned to all backups created with this plan\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Backup::BackupPlan AdvancedBackupSettingResourceType": { + "BackupOptions": "The backup option for the resource\\. Each option is a key\\-value pair\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceType": "The name of a resource type\\. The only supported resource type is EC2\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Backup::BackupPlan BackupPlanResourceType": { + "AdvancedBackupSettings": "A list of backup options for each resource type\\. \n*Required*: No \n*Type*: List of [AdvancedBackupSettingResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-advancedbackupsettingresourcetype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BackupPlanName": "The display name of a backup plan\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BackupPlanRule": "An array of `BackupRule` objects, each of which specifies a scheduled task that is used to back up a selection of resources\\. \n*Required*: Yes \n*Type*: List of [BackupRuleResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Backup::BackupPlan BackupRuleResourceType": { + "CompletionWindowMinutes": "A value in minutes after a backup job is successfully started before it must be completed or it is canceled by AWS Backup\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CopyActions": "An array of CopyAction objects, which contains the details of the copy operation\\. \n*Required*: No \n*Type*: List of [CopyActionResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-copyactionresourcetype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableContinuousBackup": "Enables continuous backup and point\\-in\\-time restores \\(PITR\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Lifecycle": "The lifecycle defines when a protected resource is transitioned to cold storage and when it expires\\. AWS Backup transitions and expires backups automatically according to the lifecycle that you define\\. \n*Required*: No \n*Type*: [LifecycleResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-lifecycleresourcetype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RecoveryPointTags": "To help organize your resources, you can assign your own metadata to the resources that you create\\. Each tag is a key\\-value pair\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleName": "A display name for a backup rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduleExpression": "A CRON expression specifying when AWS Backup initiates a backup job\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StartWindowMinutes": "An optional value that specifies a period of time in minutes after a backup is scheduled before a job is canceled if it doesn't start successfully\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetBackupVault": "The name of a logical container where backups are stored\\. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created\\. They consist of letters, numbers, and hyphens\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Backup::BackupPlan CopyActionResourceType": { + "DestinationBackupVaultArn": "An Amazon Resource Name \\(ARN\\) that uniquely identifies the destination backup vault for the copied backup\\. For example, `arn:aws:backup:us-east-1:123456789012:vault:aBackupVault.` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Lifecycle": "Defines when a protected resource is transitioned to cold storage and when it expires\\. AWS Backup transitions and expires backups automatically according to the lifecycle that you define\\. If you do not specify a lifecycle, AWS Backup applies the lifecycle policy of the source backup to the destination backup\\. \nBackups transitioned to cold storage must be stored in cold storage for a minimum of 90 days\\. \n*Required*: No \n*Type*: [LifecycleResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-lifecycleresourcetype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Backup::BackupPlan LifecycleResourceType": { + "DeleteAfterDays": "Specifies the number of days after creation that a recovery point is deleted\\. Must be greater than `MoveToColdStorageAfterDays`\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MoveToColdStorageAfterDays": "Specifies the number of days after creation that a recovery point is moved to cold storage\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Backup::BackupSelection": { + "BackupPlanId": "Uniquely identifies a backup plan\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BackupSelection": "Specifies the body of a request to assign a set of resources to a backup plan\\. \nIt includes an array of resources, an optional array of patterns to exclude resources, an optional role to provide access to the AWS service the resource belongs to, and an optional array of tags used to identify a set of resources\\. \n*Required*: Yes \n*Type*: [BackupSelectionResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-backupselectionresourcetype.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Backup::BackupSelection BackupSelectionResourceType": { + "Conditions": "A list of conditions that you define to assign resources to your backup plans using tags\\. For example, `\"StringEquals\": {\"Department\": \"accounting\"`\\. Condition operators are case sensitive\\. \n`Conditions` differs from `ListOfTags` as follows: \n+ When you specify more than one condition, you only assign the resources that match ALL conditions \\(using AND logic\\)\\.\n+ `Conditions` supports `StringEquals`, `StringLike`, `StringNotEquals`, and `StringNotLike`\\. `ListOfTags` only supports `StringEquals`\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IamRoleArn": "The ARN of the IAM role that AWS Backup uses to authenticate when backing up the target resource; for example, `arn:aws:iam::123456789012:role/S3Access`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ListOfTags": "An array of conditions used to specify a set of resources to assign to a backup plan; for example, `\"STRINGEQUALS\": {\"Department\":\"accounting\"`\\. \n*Required*: No \n*Type*: List of [ConditionResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-conditionresourcetype.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NotResources": "A list of Amazon Resource Names \\(ARNs\\) to exclude from a backup plan\\. The maximum number of ARNs is 500 without wildcards, or 30 ARNs with wildcards\\. \nIf you need to exclude many resources from a backup plan, consider a different resource selection strategy, such as assigning only one or a few resource types or refining your resource selection using tags\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Resources": "An array of strings that contain Amazon Resource Names \\(ARNs\\) of resources to assign to a backup plan\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SelectionName": "The display name of a resource selection document\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Backup::BackupSelection ConditionResourceType": { + "ConditionKey": "The key in a key\\-value pair\\. For example, in `\"Department\": \"accounting\"`, `\"Department\"` is the key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ConditionType": "An operation, such as `STRINGEQUALS`, that is applied to a key\\-value pair used to filter resources in a selection\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ConditionValue": "The value in a key\\-value pair\\. For example, in `\"Department\": \"accounting\"`, `\"accounting\"` is the value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Backup::BackupVault": { + "AccessPolicy": "A resource\\-based policy that is used to manage access permissions on the target backup vault\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BackupVaultName": "The name of a logical container where backups are stored\\. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created\\. They consist of lowercase letters, numbers, and hyphens\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9\\-\\_]{2,50}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BackupVaultTags": "Metadata that you can assign to help organize the resources that you create\\. Each tag is a key\\-value pair\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EncryptionKeyArn": "A server\\-side encryption key you can specify to encrypt your backups from services that support full AWS Backup management; for example, `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`\\. If you specify a key, you must specify its ARN, not its alias\\. If you do not specify a key, AWS Backup creates a KMS key for you by default\\. \nTo learn which AWS Backup services support full AWS Backup management and how AWS Backup handles encryption for backups from services that do not yet support full AWS Backup, see [ Encryption for backups in AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/encryption.html) \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LockConfiguration": "Configuration for [AWS Backup Vault Lock](https://docs.aws.amazon.com/aws-backup/latest/devguide/vault-lock.html)\\. \n*Required*: No \n*Type*: [LockConfigurationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-lockconfigurationtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Notifications": "The SNS event notifications for the specified backup vault\\. \n*Required*: No \n*Type*: [NotificationObjectType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-notificationobjecttype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Backup::BackupVault LockConfigurationType": { + "ChangeableForDays": "The AWS Backup Vault Lock configuration that specifies the number of days before the lock date\\. For example, setting `ChangeableForDays` to 30 on Jan\\. 1, 2022 at 8pm UTC will set the lock date to Jan\\. 31, 2022 at 8pm UTC\\. \nAWS Backup enforces a 72\\-hour cooling\\-off period before Vault Lock takes effect and becomes immutable\\. Therefore, you must set `ChangeableForDays` to 3 or greater\\. \nBefore the lock date, you can delete Vault Lock from the vault using `DeleteBackupVaultLockConfiguration` or change the Vault Lock configuration using `PutBackupVaultLockConfiguration`\\. On and after the lock date, the Vault Lock becomes immutable and cannot be changed or deleted\\. \nIf this parameter is not specified, you can delete Vault Lock from the vault using `DeleteBackupVaultLockConfiguration` or change the Vault Lock configuration using `PutBackupVaultLockConfiguration` at any time\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxRetentionDays": "The AWS Backup Vault Lock configuration that specifies the maximum retention period that the vault retains its recovery points\\. This setting can be useful if, for example, your organization's policies require you to destroy certain data after retaining it for four years \\(1460 days\\)\\. \nIf this parameter is not included, Vault Lock does not enforce a maximum retention period on the recovery points in the vault\\. If this parameter is included without a value, Vault Lock will not enforce a maximum retention period\\. \nIf this parameter is specified, any backup or copy job to the vault must have a lifecycle policy with a retention period equal to or shorter than the maximum retention period\\. If the job's retention period is longer than that maximum retention period, then the vault fails the backup or copy job, and you should either modify your lifecycle settings or use a different vault\\. Recovery points already saved in the vault prior to Vault Lock are not affected\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinRetentionDays": "The AWS Backup Vault Lock configuration that specifies the minimum retention period that the vault retains its recovery points\\. This setting can be useful if, for example, your organization's policies require you to retain certain data for at least seven years \\(2555 days\\)\\. \nIf this parameter is not specified, Vault Lock will not enforce a minimum retention period\\. \nIf this parameter is specified, any backup or copy job to the vault must have a lifecycle policy with a retention period equal to or longer than the minimum retention period\\. If the job's retention period is shorter than that minimum retention period, then the vault fails that backup or copy job, and you should either modify your lifecycle settings or use a different vault\\. Recovery points already saved in the vault prior to Vault Lock are not affected\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Backup::BackupVault NotificationObjectType": { + "BackupVaultEvents": "An array of events that indicate the status of jobs to back up resources to the backup vault\\. For valid events, see [ BackupVaultEvents](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_PutBackupVaultNotifications.html#API_PutBackupVaultNotifications_RequestSyntax) in the *AWS Backup API Guide*\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SNSTopicArn": "An ARN that uniquely identifies an Amazon Simple Notification Service \\(Amazon SNS\\) topic; for example, `arn:aws:sns:us-west-2:111122223333:MyTopic`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Backup::Framework": { + "FrameworkControls": "Contains detailed information about all of the controls of a framework\\. Each framework must contain at least one control\\. \n*Required*: Yes \n*Type*: List of [FrameworkControl](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-framework-frameworkcontrol.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FrameworkDescription": "An optional description of the framework with a maximum 1,024 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FrameworkName": "The unique name of a framework\\. This name is between 1 and 256 characters, starting with a letter, and consisting of letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), and underscores \\(\\_\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z][_a-zA-Z0-9]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FrameworkTags": "A list of tags with which to tag your framework\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Backup::Framework ControlInputParameter": { + "ParameterName": "The name of a parameter, for example, `BackupPlanFrequency`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParameterValue": "The value of parameter, for example, `hourly`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Backup::Framework FrameworkControl": { + "ControlInputParameters": "A list of `ParameterName` and `ParameterValue` pairs\\. \n*Required*: No \n*Type*: List of [ControlInputParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-framework-controlinputparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ControlName": "The name of a control\\. This name is between 1 and 256 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ControlScope": "The scope of a control\\. The control scope defines what the control will evaluate\\. Three examples of control scopes are: a specific backup plan, all backup plans with a specific tag, or all backup plans\\. For more information, see `ControlScope`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Backup::ReportPlan": { + "ReportDeliveryChannel": "Contains information about where and how to deliver your reports, specifically your Amazon S3 bucket name, S3 key prefix, and the formats of your reports\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReportPlanDescription": "An optional description of the report plan with a maximum 1,024 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReportPlanName": "The unique name of the report plan\\. This name is between 1 and 256 characters starting with a letter, and consisting of letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), and underscores \\(\\_\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z][_a-zA-Z0-9]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ReportPlanTags": "A list of tags to tag your report plan\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReportSetting": "Identifies the report template for the report\\. Reports are built using a report template\\. The report templates are: \n `RESOURCE_COMPLIANCE_REPORT | CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT | COPY_JOB_REPORT | RESTORE_JOB_REPORT` \nIf the report template is `RESOURCE_COMPLIANCE_REPORT` or `CONTROL_COMPLIANCE_REPORT`, this API resource also describes the report coverage by AWS Regions and frameworks\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::ComputeEnvironment": { + "ComputeEnvironmentName": "The name for your compute environment\\. It can be up to 128 characters long\\. It can contain uppercase and lowercase letters, numbers, hyphens \\(\\-\\), and underscores \\(\\_\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ComputeResources": "The ComputeResources property type specifies details of the compute resources managed by the compute environment\\. This parameter is required for managed compute environments\\. For more information, see [Compute Environments](https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html) in the *AWS Batch User Guide*\\. \n*Required*: No \n*Type*: [ComputeResources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EksConfiguration": "The details for the Amazon EKS cluster that supports the compute environment\\. \n*Required*: No \n*Type*: [EksConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-eksconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ReplaceComputeEnvironment": "Specifies whether the compute environment is replaced if an update is made that requires replacing the instances in the compute environment\\. The default value is `true`\\. To enable more properties to be updated, set this property to `false`\\. When changing the value of this property to `false`, do not change any other properties at the same time\\. If other properties are changed at the same time, and the change needs to be rolled back but it can't, it's possible for the stack to go into the `UPDATE_ROLLBACK_FAILED` state\\. You can't update a stack that is in the `UPDATE_ROLLBACK_FAILED` state\\. However, if you can continue to roll it back, you can return the stack to its original settings and then try to update it again\\. For more information, see [Continue rolling back an update](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html) in the *AWS CloudFormation User Guide*\\. \nThe properties that can't be changed without replacing the compute environment are in the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html) property type: [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-allocationstrategy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-allocationstrategy), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-bidpercentage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-bidpercentage), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2configuration), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2keypair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2keypair), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2keypair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2keypair), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-imageid](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-imageid), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancerole](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancerole), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancetypes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancetypes), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-launchtemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-launchtemplate), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-maxvcpus](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-maxvcpus), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-minvcpus](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-minvcpus), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-placementgroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-placementgroup), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-securitygroupids](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-securitygroupids), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-subnets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-subnets), [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-tags), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-type), and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-updatetolatestimageversion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-updatetolatestimageversion)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceRole": "The full Amazon Resource Name \\(ARN\\) of the IAM role that allows AWS Batch to make calls to other AWS services on your behalf\\. For more information, see [AWS Batch service IAM role](https://docs.aws.amazon.com/batch/latest/userguide/service_IAM_role.html) in the * AWS Batch User Guide*\\. \nIf your account already created the AWS Batch service\\-linked role, that role is used by default for your compute environment unless you specify a different role here\\. If the AWS Batch service\\-linked role doesn't exist in your account, and no role is specified here, the service attempts to create the AWS Batch service\\-linked role in your account\\.\nIf your specified role has a path other than `/`, then you must specify either the full role ARN \\(recommended\\) or prefix the role name with the path\\. For example, if a role with the name `bar` has a path of `/foo/`, specify `/foo/bar` as the role name\\. For more information, see [Friendly names and paths](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names) in the *IAM User Guide*\\. \nDepending on how you created your AWS Batch service role, its ARN might contain the `service-role` path prefix\\. When you only specify the name of the service role, AWS Batch assumes that your ARN doesn't use the `service-role` path prefix\\. Because of this, we recommend that you specify the full ARN of your service role when you create compute environments\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "State": "The state of the compute environment\\. If the state is `ENABLED`, then the compute environment accepts jobs from a queue and can scale out automatically based on queues\\. \nIf the state is `ENABLED`, then the AWS Batch scheduler can attempt to place jobs from an associated job queue on the compute resources within the environment\\. If the compute environment is managed, then it can scale its instances out or in automatically, based on the job queue demand\\. \nIf the state is `DISABLED`, then the AWS Batch scheduler doesn't attempt to place jobs within the environment\\. Jobs in a `STARTING` or `RUNNING` state continue to progress normally\\. Managed compute environments in the `DISABLED` state don't scale out\\. However, they scale in to `minvCpus` value after instances become idle\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags applied to the compute environment\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "The type of the compute environment: `MANAGED` or `UNMANAGED`\\. For more information, see [Compute Environments](https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html) in the * AWS Batch User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `MANAGED | UNMANAGED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UnmanagedvCpus": "The maximum number of vCPUs for an unmanaged compute environment\\. This parameter is only used for fair share scheduling to reserve vCPU capacity for new share identifiers\\. If this parameter isn't provided for a fair share job queue, no vCPU capacity is reserved\\. \nThis parameter is only supported when the `type` parameter is set to `UNMANAGED`\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UpdatePolicy": "Specifies the infrastructure update policy for the compute environment\\. For more information about infrastructure updates, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: [UpdatePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-updatepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::ComputeEnvironment ComputeResources": { + "AllocationStrategy": "The allocation strategy to use for the compute resource if not enough instances of the best fitting instance type can be allocated\\. This might be because of availability of the instance type in the Region or [Amazon EC2 service limits](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html)\\. For more information, see [Allocation strategies](https://docs.aws.amazon.com/batch/latest/userguide/allocation-strategies.html) in the * AWS Batch User Guide*\\. \nWhen updating a compute environment, changing the allocation strategy requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. `BEST_FIT` is not supported when updating a compute environment\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified\\. \nBEST\\_FIT \\(default\\) \nAWS Batch selects an instance type that best fits the needs of the jobs with a preference for the lowest\\-cost instance type\\. If additional instances of the selected instance type aren't available, AWS Batch waits for the additional instances to be available\\. If there aren't enough instances available, or if the user is reaching [Amazon EC2 service limits](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html) then additional jobs aren't run until the currently running jobs have completed\\. This allocation strategy keeps costs lower but can limit scaling\\. If you are using Spot Fleets with `BEST_FIT` then the Spot Fleet IAM role must be specified\\. \nBEST\\_FIT\\_PROGRESSIVE \n AWS Batch will select additional instance types that are large enough to meet the requirements of the jobs in the queue, with a preference for instance types with a lower cost per unit vCPU\\. If additional instances of the previously selected instance types aren't available, AWS Batch will select new instance types\\. \nSPOT\\_CAPACITY\\_OPTIMIZED \n AWS Batch will select one or more instance types that are large enough to meet the requirements of the jobs in the queue, with a preference for instance types that are less likely to be interrupted\\. This allocation strategy is only available for Spot Instance compute resources\\.\nWith both `BEST_FIT_PROGRESSIVE` and `SPOT_CAPACITY_OPTIMIZED` allocation strategies using On\\-Demand or Spot Instances, and the `BEST_FIT` strategy using Spot Instances, AWS Batch might need to go above `maxvCpus` to meet your capacity requirements\\. In this event, AWS Batch never exceeds `maxvCpus` by more than a single instance\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BEST_FIT_PROGRESSIVE | SPOT_CAPACITY_OPTIMIZED` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "BidPercentage": "The maximum percentage that a Spot Instance price can be when compared with the On\\-Demand price for that instance type before instances are launched\\. For example, if your maximum percentage is 20%, the Spot price must be less than 20% of the current On\\-Demand price for that Amazon EC2 instance\\. You always pay the lowest \\(market\\) price and never more than your maximum percentage\\. For most use cases, we recommend leaving this field empty\\. \nWhen updating a compute environment, changing the bid percentage requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "DesiredvCpus": "The desired number of Amazon EC2 vCPUS in the compute environment\\. AWS Batch modifies this value between the minimum and maximum values based on job queue demand\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n AWS Batch doesn't support changing the desired number of vCPUs of an existing compute environment\\. Don't specify this parameter for compute environments using Amazon EKS clusters\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ec2Configuration": "Provides information used to select Amazon Machine Images \\(AMIs\\) for EC2 instances in the compute environment\\. If `Ec2Configuration` isn't specified, the default is `ECS_AL2`\\. \nWhen updating a compute environment, changing this setting requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. To remove the EC2 configuration and any custom AMI ID specified in `imageIdOverride`, set this value to an empty string\\. \nOne or two values can be provided\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n*Required*: No \n*Type*: List of [Ec2ConfigurationObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-ec2configurationobject.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "Ec2KeyPair": "The Amazon EC2 key pair that's used for instances launched in the compute environment\\. You can use this key pair to log in to your instances with SSH\\. To remove the Amazon EC2 key pair, set this value to an empty string\\. \nWhen updating a compute environment, changing the EC2 key pair requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "ImageId": "The Amazon Machine Image \\(AMI\\) ID used for instances launched in the compute environment\\. This parameter is overridden by the `imageIdOverride` member of the `Ec2Configuration` structure\\. To remove the custom AMI ID and use the default AMI ID, set this value to an empty string\\. \nWhen updating a compute environment, changing the AMI ID requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\nThe AMI that you choose for a compute environment must match the architecture of the instance types that you intend to use for that compute environment\\. For example, if your compute environment uses A1 instance types, the compute resource AMI that you choose must support ARM instances\\. Amazon ECS vends both x86 and ARM versions of the Amazon ECS\\-optimized Amazon Linux 2 AMI\\. For more information, see [Amazon ECS\\-optimized Amazon Linux 2 AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#ecs-optimized-ami-linux-variants.html) in the *Amazon Elastic Container Service Developer Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "InstanceRole": "The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment\\. You can specify the short name or full Amazon Resource Name \\(ARN\\) of an instance profile\\. For example, ` ecsInstanceRole ` or `arn:aws:iam:::instance-profile/ecsInstanceRole `\\. For more information, see [Amazon ECS instance role](https://docs.aws.amazon.com/batch/latest/userguide/instance_IAM_role.html) in the * AWS Batch User Guide*\\. \nWhen updating a compute environment, changing this setting requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "InstanceTypes": "The instances types that can be launched\\. You can specify instance families to launch any instance type within those families \\(for example, `c5` or `p3`\\), or you can specify specific sizes within a family \\(such as `c5.8xlarge`\\)\\. You can also choose `optimal` to select instance types \\(from the C4, M4, and R4 instance families\\) that match the demand of your job queues\\. \nWhen updating a compute environment, changing this setting requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\nWhen you create a compute environment, the instance types that you select for the compute environment must share the same architecture\\. For example, you can't mix x86 and ARM instances in the same compute environment\\.\nCurrently, `optimal` uses instance types from the C4, M4, and R4 instance families\\. In Regions that don't have instance types from those instance families, instance types from the C5, M5, and R5 instance families are used\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "LaunchTemplate": "The launch template to use for your compute resources\\. Any other compute resource parameters that you specify in a [CreateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html) API operation override the same parameters in the launch template\\. You must specify either the launch template ID or launch template name in the request, but not both\\. For more information, see [Launch Template Support](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *AWS Batch User Guide*\\. Removing the launch template from a compute environment will not remove the AMI specified in the launch template\\. In order to update the AMI specified in a launch template, the `updateToLatestImageVersion` parameter must be set to `true`\\. \nWhen updating a compute environment, changing the launch template requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified\\.\n*Required*: No \n*Type*: [LaunchTemplateSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-launchtemplatespecification.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "MaxvCpus": "The maximum number of Amazon EC2 vCPUs that an environment can reach\\. \nWith both `BEST_FIT_PROGRESSIVE` and `SPOT_CAPACITY_OPTIMIZED` allocation strategies using On\\-Demand or Spot Instances, and the `BEST_FIT` strategy using Spot Instances, AWS Batch might need to exceed `maxvCpus` to meet your capacity requirements\\. In this event, AWS Batch never exceeds `maxvCpus` by more than a single instance\\. That is, no more than a single instance from among those specified in your compute environment\\.\n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinvCpus": "The minimum number of Amazon EC2 vCPUs that an environment should maintain \\(even if the compute environment is `DISABLED`\\)\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PlacementGroup": "The Amazon EC2 placement group to associate with your compute resources\\. If you intend to submit multi\\-node parallel jobs to your compute environment, you should consider creating a cluster placement group and associate it with your compute resources\\. This keeps your multi\\-node parallel job on a logical grouping of instances within a single Availability Zone with high network flow potential\\. For more information, see [Placement groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \nWhen updating a compute environment, changing the placement group requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "SecurityGroupIds": "The Amazon EC2 security groups that are associated with instances launched in the compute environment\\. This parameter is required for Fargate compute resources, where it can contain up to 5 security groups\\. For Fargate compute resources, providing an empty list is handled as if this parameter wasn't specified and no change is made\\. For EC2 compute resources, providing an empty list removes the security groups from the compute resource\\. \nWhen updating a compute environment, changing the EC2 security groups requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "SpotIamFleetRole": "The Amazon Resource Name \\(ARN\\) of the Amazon EC2 Spot Fleet IAM role applied to a `SPOT` compute environment\\. This role is required if the allocation strategy set to `BEST_FIT` or if the allocation strategy isn't specified\\. For more information, see [Amazon EC2 spot fleet role](https://docs.aws.amazon.com/batch/latest/userguide/spot_fleet_IAM_role.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\nTo tag your Spot Instances on creation, the Spot Fleet IAM role specified here must use the newer **AmazonEC2SpotFleetTaggingRole** managed policy\\. The previously recommended **AmazonEC2SpotFleetRole** managed policy doesn't have the required permissions to tag Spot Instances\\. For more information, see [Spot instances not tagged on creation](https://docs.aws.amazon.com/batch/latest/userguide/troubleshooting.html#spot-instance-no-tag) in the * AWS Batch User Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Subnets": "The VPC subnets where the compute resources are launched\\. Fargate compute resources can contain up to 16 subnets\\. For Fargate compute resources, providing an empty list will be handled as if this parameter wasn't specified and no change is made\\. For EC2 compute resources, providing an empty list removes the VPC subnets from the compute resource\\. For more information, see [VPCs and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html) in the *Amazon VPC User Guide*\\. \nWhen updating a compute environment, changing the VPC subnets requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \n AWS Batch on Amazon EC2 and AWS Batch on Amazon EKS support Local Zones\\. For more information, see [ Local Zones](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-local-zones) in the *Amazon EC2 User Guide for Linux Instances*, [Amazon EKS and AWS Local Zones](https://docs.aws.amazon.com/eks/latest/userguide/local-zones.html) in the *Amazon EKS User Guide* and [ Amazon ECS clusters in Local Zones, Wavelength Zones, and AWS Outposts](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-regions-zones.html#clusters-local-zones) in the *Amazon ECS Developer Guide*\\. \n AWS Batch on Fargate doesn't currently support Local Zones\\.\n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "Tags": "Key\\-value pair tags to be applied to EC2 resources that are launched in the compute environment\\. For AWS Batch, these take the form of `\"String1\": \"String2\"`, where `String1` is the tag key and `String2` is the tag value\\-for example, `{ \"Name\": \"Batch Instance - C4OnDemand\" }`\\. This is helpful for recognizing your AWS Batch instances in the Amazon EC2 console\\. These tags aren't seen when using the AWS Batch `ListTagsForResource` API operation\\. \nWhen updating a compute environment, changing this setting requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n*Required*: No \n*Type*: Map of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "Type": "The type of compute environment: `EC2`, `SPOT`, `FARGATE`, or `FARGATE_SPOT`\\. For more information, see [Compute environments](https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html) in the * AWS Batch User Guide*\\. \n If you choose `SPOT`, you must also specify an Amazon EC2 Spot Fleet role with the `spotIamFleetRole` parameter\\. For more information, see [Amazon EC2 spot fleet role](https://docs.aws.amazon.com/batch/latest/userguide/spot_fleet_IAM_role.html) in the * AWS Batch User Guide*\\. \nWhen updating compute environment, changing the type of a compute environment requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nWhen updating the type of a compute environment, changing between `EC2` and `SPOT` or between `FARGATE` and `FARGATE_SPOT` will initiate an infrastructure update, but if you switch between `EC2` and `FARGATE`, AWS CloudFormation will create a new compute environment\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EC2 | FARGATE | FARGATE_SPOT | SPOT` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "UpdateToLatestImageVersion": "Specifies whether the AMI ID is updated to the latest one that's supported by AWS Batch when the compute environment has an infrastructure update\\. The default value is `false`\\. \nAn AMI ID can either be specified in the `imageId` or `imageIdOverride` parameters or be determined by the launch template that's specified in the `launchTemplate` parameter\\. If an AMI ID is specified any of these ways, this parameter is ignored\\. For more information about to update AMI IDs during an infrastructure update, see [Updating the AMI ID](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html#updating-compute-environments-ami) in the * AWS Batch User Guide*\\.\nWhen updating a compute environment, changing this setting requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::ComputeEnvironment Ec2ConfigurationObject": { + "ImageIdOverride": "The AMI ID used for instances launched in the compute environment that match the image type\\. This setting overrides the `imageId` set in the `computeResource` object\\. \nThe AMI that you choose for a compute environment must match the architecture of the instance types that you intend to use for that compute environment\\. For example, if your compute environment uses A1 instance types, the compute resource AMI that you choose must support ARM instances\\. Amazon ECS vends both x86 and ARM versions of the Amazon ECS\\-optimized Amazon Linux 2 AMI\\. For more information, see [Amazon ECS\\-optimized Amazon Linux 2 AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#ecs-optimized-ami-linux-variants.html) in the *Amazon Elastic Container Service Developer Guide*\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "ImageKubernetesVersion": "The Kubernetes version for the compute environment\\. If you don't specify a value, the latest version that AWS Batch supports is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "ImageType": "The image type to match with the instance type to select an AMI\\. The supported values are different for `ECS` and `EKS` resources\\. \nECS \nIf the `imageIdOverride` parameter isn't specified, then a recent [Amazon ECS\\-optimized Amazon Linux 2 AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami) \\(`ECS_AL2`\\) is used\\. If a new image type is specified in an update, but neither an `imageId` nor a `imageIdOverride` parameter is specified, then the latest Amazon ECS optimized AMI for that image type that's supported by AWS Batch is used\\. \nECS\\_AL2 \n [Amazon Linux 2](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami): Default for all non\\-GPU instance families\\. \nECS\\_AL2\\_NVIDIA \n [Amazon Linux 2 \\(GPU\\)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#gpuami): Default for all GPU instance families \\(for example `P4` and `G4`\\) and can be used for all non AWS Graviton\\-based instance types\\. \nECS\\_AL1 \n [Amazon Linux](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#alami)\\. Amazon Linux has reached the end\\-of\\-life of standard support\\. For more information, see [Amazon Linux AMI](http://aws.amazon.com/amazon-linux-ami/)\\. \nEKS \nIf the `imageIdOverride` parameter isn't specified, then a recent [Amazon EKS\\-optimized Amazon Linux AMI](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html) \\(`EKS_AL2`\\) is used\\. If a new image type is specified in an update, but neither an `imageId` nor a `imageIdOverride` parameter is specified, then the latest Amazon EKS optimized AMI for that image type that AWS Batch supports is used\\. \nEKS\\_AL2 \n [Amazon Linux 2](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html): Default for all non\\-GPU instance families\\. \nEKS\\_AL2\\_NVIDIA \n [Amazon Linux 2 \\(accelerated\\)](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html): Default for all GPU instance families \\(for example, `P4` and `G4`\\) and can be used for all non AWS Graviton\\-based instance types\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)" + }, + "AWS::Batch::ComputeEnvironment EksConfiguration": { + "EksClusterArn": "The Amazon Resource Name \\(ARN\\) of the Amazon EKS cluster\\. An example is `arn:aws:eks:us-east-1:123456789012:cluster/ClusterForBatch `\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KubernetesNamespace": "The namespace of the Amazon EKS cluster\\. AWS Batch manages pods in this namespace\\. The value can't left empty or null\\. It must be fewer than 64 characters long, can't be set to `default`, can't start with \"`kube-`,\" and must match this regular expression: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$`\\. For more information, see [Namespaces](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/) in the Kubernetes documentation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Batch::ComputeEnvironment LaunchTemplateSpecification": { + "LaunchTemplateId": "The ID of the launch template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "LaunchTemplateName": "The name of the launch template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "Version": "The version number of the launch template, `$Latest`, or `$Default`\\. \nIf the value is `$Latest`, the latest version of the launch template is used\\. If the value is `$Default`, the default version of the launch template is used\\. \nIf the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated\\. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true`\\. During an infrastructure update, if either `$Latest` or `$Default` is specified, AWS Batch re\\-evaluates the launch template version, and it might use a different version of the launch template\\. This is the case even if the launch template isn't specified in the update\\. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\.\nDefault: `$Default`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)" + }, + "AWS::Batch::ComputeEnvironment UpdatePolicy": { + "JobExecutionTimeoutMinutes": "Specifies the job timeout \\(in minutes\\) when the compute environment infrastructure is updated\\. The default value is 30\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TerminateJobsOnUpdate": "Specifies whether jobs are automatically terminated when the computer environment infrastructure is updated\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition": { + "ContainerProperties": "An object with various properties specific to Amazon ECS based jobs\\. Valid values are `containerProperties`, `eksProperties`, and `nodeProperties`\\. Only one can be specified\\. \n*Required*: No \n*Type*: [ContainerProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EksProperties": "An object with various properties that are specific to Amazon EKS based jobs\\. Valid values are `containerProperties`, `eksProperties`, and `nodeProperties`\\. Only one can be specified\\. \n*Required*: No \n*Type*: [EksProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-eksproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JobDefinitionName": "The name of the job definition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NodeProperties": "An object with various properties that are specific to multi\\-node parallel jobs\\. Valid values are `containerProperties`, `eksProperties`, and `nodeProperties`\\. Only one can be specified\\. \nIf the job runs on Fargate resources, don't specify `nodeProperties`\\. Use `containerProperties` instead\\.\n*Required*: No \n*Type*: [NodeProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-nodeproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "Default parameters or parameter substitution placeholders that are set in the job definition\\. Parameters are specified as a key\\-value pair mapping\\. Parameters in a `SubmitJob` request override any corresponding parameter defaults from the job definition\\. For more information about specifying parameters, see [Job definition parameters](https://docs.aws.amazon.com/batch/latest/userguide/job_definition_parameters.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PlatformCapabilities": "The platform capabilities required by the job definition\\. If no value is specified, it defaults to `EC2`\\. Jobs run on Fargate resources specify `FARGATE`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PropagateTags": "Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task\\. If no value is specified, the tags aren't propagated\\. Tags can only be propagated to the tasks when the tasks are created\\. For tags with the same name, job tags are given priority over job definitions tags\\. If the total number of combined tags from the job and job definition is over 50, the job is moved to the `FAILED` state\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetryStrategy": "The retry strategy to use for failed jobs that are submitted with this job definition\\. \n*Required*: No \n*Type*: [RetryStrategy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-retrystrategy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SchedulingPriority": "The scheduling priority of the job definition\\. This only affects jobs in job queues with a fair share policy\\. Jobs with a higher scheduling priority are scheduled before jobs with a lower scheduling priority\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags that are applied to the job definition\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Timeout": "The timeout time for jobs that are submitted with this job definition\\. After the amount of time you specify passes, AWS Batch terminates your jobs if they aren't finished\\. \n*Required*: No \n*Type*: [Timeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-timeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of job definition\\. For more information about multi\\-node parallel jobs, see [Creating a multi\\-node parallel job definition](https://docs.aws.amazon.com/batch/latest/userguide/multi-node-job-def.html) in the * AWS Batch User Guide*\\. \nIf the job is run on Fargate resources, then `multinode` isn't supported\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `container | multinode` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition AuthorizationConfig": { + "AccessPointId": "The Amazon EFS access point ID to use\\. If an access point is specified, the root directory value specified in the `EFSVolumeConfiguration` must either be omitted or set to `/` which enforces the path set on the EFS access point\\. If an access point is used, transit encryption must be enabled in the `EFSVolumeConfiguration`\\. For more information, see [Working with Amazon EFS access points](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html) in the *Amazon Elastic File System User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Iam": "Whether or not to use the AWS Batch job IAM role defined in a job definition when mounting the Amazon EFS file system\\. If enabled, transit encryption must be enabled in the `EFSVolumeConfiguration`\\. If this parameter is omitted, the default value of `DISABLED` is used\\. For more information, see [Using Amazon EFS access points](https://docs.aws.amazon.com/batch/latest/userguide/efs-volumes.html#efs-volume-accesspoints) in the * AWS Batch User Guide*\\. EFS IAM authorization requires that `TransitEncryption` be `ENABLED` and that a `JobRoleArn` is specified\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition ContainerProperties": { + "Command": "The command that's passed to the container\\. This parameter maps to `Cmd` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `COMMAND` parameter to [docker run](https://docs.docker.com/engine/reference/run/)\\. For more information, see [https://docs\\.docker\\.com/engine/reference/builder/\\#cmd](https://docs.docker.com/engine/reference/builder/#cmd)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Environment": "The environment variables to pass to a container\\. This parameter maps to `Env` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--env` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \nWe don't recommend using plaintext environment variables for sensitive information, such as credential data\\.\nEnvironment variables cannot start with \"`AWS_BATCH`\"\\. This naming convention is reserved for variables that AWS Batch sets\\.\n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-environment.html) of [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-environment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExecutionRoleArn": "The Amazon Resource Name \\(ARN\\) of the execution role that AWS Batch can assume\\. For jobs that run on Fargate resources, you must provide an execution role\\. For more information, see [AWS Batch execution IAM role](https://docs.aws.amazon.com/batch/latest/userguide/execution-IAM-role.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FargatePlatformConfiguration": "The platform configuration for jobs that are running on Fargate resources\\. Jobs that are running on EC2 resources must not specify this parameter\\. \n*Required*: No \n*Type*: [FargatePlatformConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-fargateplatformconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Image": "The image used to start a container\\. This string is passed directly to the Docker daemon\\. Images in the Docker Hub registry are available by default\\. Other repositories are specified with ` repository-url/image:tag `\\. It can be 255 characters long\\. It can contain uppercase and lowercase letters, numbers, hyphens \\(\\-\\), underscores \\(\\_\\), colons \\(:\\), periods \\(\\.\\), forward slashes \\(/\\), and number signs \\(\\#\\)\\. This parameter maps to `Image` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `IMAGE` parameter of [docker run](https://docs.docker.com/engine/reference/run/)\\. \nDocker image architecture must match the processor architecture of the compute resources that they're scheduled on\\. For example, ARM\\-based Docker images can only run on ARM\\-based compute resources\\.\n+ Images in Amazon ECR Public repositories use the full `registry/repository[:tag]` or `registry/repository[@digest]` naming conventions\\. For example, `public.ecr.aws/registry_alias/my-web-app:latest `\\.\n+ Images in Amazon ECR repositories use the full registry and repository URI \\(for example, `123456789012.dkr.ecr..amazonaws.com/`\\)\\.\n+ Images in official repositories on Docker Hub use a single name \\(for example, `ubuntu` or `mongo`\\)\\.\n+ Images in other repositories on Docker Hub are qualified with an organization name \\(for example, `amazon/amazon-ecs-agent`\\)\\.\n+ Images in other online repositories are qualified further by a domain name \\(for example, `quay.io/assemblyline/ubuntu`\\)\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceType": "The instance type to use for a multi\\-node parallel job\\. All node groups in a multi\\-node parallel job must use the same instance type\\. \nThis parameter isn't applicable to single\\-node container jobs or jobs that run on Fargate resources, and shouldn't be provided\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JobRoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM role that the container can assume for AWS permissions\\. For more information, see [IAM roles for tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LinuxParameters": "Linux\\-specific modifications that are applied to the container, such as details for device mappings\\. \n*Required*: No \n*Type*: [LinuxParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-linuxparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogConfiguration": "The log configuration specification for the container\\. \nThis parameter maps to `LogConfig` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--log-driver` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. By default, containers use the same logging driver that the Docker daemon uses\\. However the container might use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition\\. To use a different logging driver for a container, the log system must be configured properly on the container instance \\(or on a different log server for remote logging options\\)\\. For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.docker.com/engine/admin/logging/overview/) in the Docker documentation\\. \n AWS Batch currently supports a subset of the logging drivers available to the Docker daemon \\(shown in the [LogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-logconfiguration) data type\\)\\.\nThis parameter requires version 1\\.18 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version | grep \"Server API version\"` \nThe Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the `ECS_AVAILABLE_LOGGING_DRIVERS` environment variable before containers placed on that instance can use these log configuration options\\. For more information, see [Amazon ECS container agent configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*\\.\n*Required*: No \n*Type*: [LogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-logconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Memory": "This parameter is deprecated, use `resourceRequirements` to specify the memory requirements for the job definition\\. It's not supported for jobs running on Fargate resources\\. For jobs that run on EC2 resources, it specifies the memory hard limit \\(in MiB\\) for a container\\. If your container attempts to exceed the specified number, it's terminated\\. You must specify at least 4 MiB of memory for a job using this parameter\\. The memory hard limit can be specified in several places\\. It must be specified for each node at least once\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MountPoints": "The mount points for data volumes in your container\\. This parameter maps to `Volumes` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--volume` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html) of [MountPoints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkConfiguration": "The network configuration for jobs that are running on Fargate resources\\. Jobs that are running on EC2 resources must not specify this parameter\\. \n*Required*: No \n*Type*: [NetworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-networkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Privileged": "When this parameter is true, the container is given elevated permissions on the host container instance \\(similar to the `root` user\\)\\. This parameter maps to `Privileged` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--privileged` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. The default value is false\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided, or specified as false\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReadonlyRootFilesystem": "When this parameter is true, the container is given read\\-only access to its root file system\\. This parameter maps to `ReadonlyRootfs` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--read-only` option to `docker run`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceRequirements": "The type and amount of resources to assign to a container\\. The supported resources include `GPU`, `MEMORY`, and `VCPU`\\. \n*Required*: No \n*Type*: List of [ResourceRequirement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-resourcerequirement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Secrets": "The secrets for the container\\. For more information, see [Specifying sensitive data](https://docs.aws.amazon.com/batch/latest/userguide/specifying-sensitive-data.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: List of [Secret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-secret.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ulimits": "A list of `ulimits` to set in the container\\. This parameter maps to `Ulimits` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--ulimit` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided\\.\n*Required*: No \n*Type*: List of [Ulimit](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "User": "The user name to use inside the container\\. This parameter maps to `User` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--user` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Vcpus": "This parameter is deprecated, use `resourceRequirements` to specify the vCPU requirements for the job definition\\. It's not supported for jobs running on Fargate resources\\. For jobs running on EC2 resources, it specifies the number of vCPUs reserved for the job\\. \nEach vCPU is equivalent to 1,024 CPU shares\\. This parameter maps to `CpuShares` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--cpu-shares` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. The number of vCPUs must be specified but can be specified in several places\\. You must specify it at least once for each node\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Volumes": "A list of data volumes used in a job\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html) of [Volumes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition Device": { + "ContainerPath": "The path inside the container that's used to expose the host device\\. By default, the `hostPath` value is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HostPath": "The path for the device on the host container instance\\. \n*Required*: No \n*Type*: [String](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-eksvolume-hostpath.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Permissions": "The explicit permissions to provide to the container for the device\\. By default, the container has permissions for `read`, `write`, and `mknod` for the device\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition EfsVolumeConfiguration": { + "AuthorizationConfig": "The authorization configuration details for the Amazon EFS file system\\. \n*Required*: No \n*Type*: [AuthorizationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-authorizationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FileSystemId": "The Amazon EFS file system ID to use\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RootDirectory": "The directory within the Amazon EFS file system to mount as the root directory inside the host\\. If this parameter is omitted, the root of the Amazon EFS volume is used instead\\. Specifying `/` has the same effect as omitting this parameter\\. The maximum length is 4,096 characters\\. \nIf an EFS access point is specified in the `authorizationConfig`, the root directory parameter must either be omitted or set to `/`, which enforces the path set on the Amazon EFS access point\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitEncryption": "Determines whether to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server\\. Transit encryption must be enabled if Amazon EFS IAM authorization is used\\. If this parameter is omitted, the default value of `DISABLED` is used\\. For more information, see [Encrypting data in transit](https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html) in the *Amazon Elastic File System User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitEncryptionPort": "The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server\\. If you don't specify a transit encryption port, it uses the port selection strategy that the Amazon EFS mount helper uses\\. The value must be between 0 and 65,535\\. For more information, see [EFS mount helper](https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html) in the *Amazon Elastic File System User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition EksContainer": { + "Args": "An array of arguments to the entrypoint\\. If this isn't specified, the `CMD` of the container image is used\\. This corresponds to the `args` member in the [Entrypoint](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint) portion of the [Pod](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/) in Kubernetes\\. Environment variable references are expanded using the container's environment\\. \nIf the referenced environment variable doesn't exist, the reference in the command isn't changed\\. For example, if the reference is to \"`$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/NAME1.html.html)`\" and the `https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/NAME1.html.html` environment variable doesn't exist, the command string will remain \"`$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/NAME1.html.html)`\\.\" `$$` is replaced with `$`, and the resulting string isn't expanded\\. For example, `$$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/VAR_NAME.html.html)` is passed as `$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/VAR_NAME.html.html)` whether or not the `https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/VAR_NAME.html.html` environment variable exists\\. For more information, see [CMD](https://docs.docker.com/engine/reference/builder/#cmd) in the *Dockerfile reference* and [Define a command and arguments for a pod](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Command": "The entrypoint for the container\\. This isn't run within a shell\\. If this isn't specified, the `ENTRYPOINT` of the container image is used\\. Environment variable references are expanded using the container's environment\\. \nIf the referenced environment variable doesn't exist, the reference in the command isn't changed\\. For example, if the reference is to \"`$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/NAME1.html.html)`\" and the `https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/NAME1.html.html` environment variable doesn't exist, the command string will remain \"`$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/NAME1.html.html)`\\.\" `$$` is replaced with `$` and the resulting string isn't expanded\\. For example, `$$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/VAR_NAME.html.html)` will be passed as `$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/VAR_NAME.html.html)` whether or not the `https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/VAR_NAME.html.html` environment variable exists\\. The entrypoint can't be updated\\. For more information, see [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint) in the *Dockerfile reference* and [Define a command and arguments for a container](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/) and [Entrypoint](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Env": "The environment variables to pass to a container\\. \nEnvironment variables cannot start with \"`AWS_BATCH`\"\\. This naming convention is reserved for variables that AWS Batch sets\\.\n*Required*: No \n*Type*: List of [EksContainerEnvironmentVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekscontainerenvironmentvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Image": "The Docker image used to start the container\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImagePullPolicy": "The image pull policy for the container\\. Supported values are `Always`, `IfNotPresent`, and `Never`\\. This parameter defaults to `IfNotPresent`\\. However, if the `:latest` tag is specified, it defaults to `Always`\\. For more information, see [Updating images](https://kubernetes.io/docs/concepts/containers/images/#updating-images) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the container\\. If the name isn't specified, the default name \"`Default`\" is used\\. Each container in a pod must have a unique name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Resources": "The type and amount of resources to assign to a container\\. The supported resources include `memory`, `cpu`, and `nvidia.com/gpu`\\. For more information, see [Resource management for pods and containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: [Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekscontainer-resources.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityContext": "The security context for a job\\. For more information, see [Configure a security context for a pod or container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: [SecurityContext](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekscontainer-securitycontext.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VolumeMounts": "The volume mounts for the container\\. AWS Batch supports `emptyDir`, `hostPath`, and `secret` volume types\\. For more information about volumes and volume mounts in Kubernetes, see [Volumes](https://kubernetes.io/docs/concepts/storage/volumes/) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: List of [EksContainerVolumeMount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekscontainervolumemount.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition EksContainerEnvironmentVariable": { + "Name": "The name of the environment variable\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of the environment variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition EksContainerVolumeMount": { + "MountPath": "The path on the container where the volume is mounted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name the volume mount\\. This must match the name of one of the volumes in the pod\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReadOnly": "If this value is `true`, the container has read\\-only access to the volume\\. Otherwise, the container can write to the volume\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition EksProperties": { + "PodProperties": "The properties for the Kubernetes pod resources of a job\\. \n*Required*: No \n*Type*: [PodProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-podproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition EksVolume": { + "EmptyDir": "Specifies the configuration of a Kubernetes `emptyDir` volume\\. For more information, see [emptyDir](https://kubernetes.io/docs/concepts/storage/volumes/#emptydir) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: [EmptyDir](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-eksvolume-emptydir.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HostPath": "Specifies the configuration of a Kubernetes `hostPath` volume\\. For more information, see [hostPath](https://kubernetes.io/docs/concepts/storage/volumes/#hostpath) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: [HostPath](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-eksvolume-hostpath.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the volume\\. The name must be allowed as a DNS subdomain name\\. For more information, see [DNS subdomain names](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names) in the *Kubernetes documentation*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Secret": "Specifies the configuration of a Kubernetes `secret` volume\\. For more information, see [secret](https://kubernetes.io/docs/concepts/storage/volumes/#secret) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: [Secret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-secret.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition EmptyDir": { + "Medium": "The medium to store the volume\\. The default value is an empty string, which uses the storage of the node\\. \n\"\" \n **\\(Default\\)** Use the disk storage of the node\\. \n\"Memory\" \nUse the `tmpfs` volume that's backed by the RAM of the node\\. Contents of the volume are lost when the node reboots, and any storage on the volume counts against the container's memory limit\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SizeLimit": "The maximum size of the volume\\. By default, there's no maximum size defined\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition Environment": { + "Name": "The name of the environment variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of the environment variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition EvaluateOnExit": { + "Action": "Specifies the action to take if all of the specified conditions \\(`onStatusReason`, `onReason`, and `onExitCode`\\) are met\\. The values aren't case sensitive\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EXIT | RETRY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OnExitCode": "Contains a glob pattern to match against the decimal representation of the `ExitCode` returned for a job\\. The pattern can be up to 512 characters long\\. It can contain only numbers, and can end with an asterisk \\(\\*\\) so that only the start of the string needs to be an exact match\\. \nThe string can contain up to 512 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OnReason": "Contains a glob pattern to match against the `Reason` returned for a job\\. The pattern can contain up to 512 characters\\. It can contain letters, numbers, periods \\(\\.\\), colons \\(:\\), and white space \\(including spaces and tabs\\)\\. It can optionally end with an asterisk \\(\\*\\) so that only the start of the string needs to be an exact match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OnStatusReason": "Contains a glob pattern to match against the `StatusReason` returned for a job\\. The pattern can contain up to 512 characters\\. It can contain letters, numbers, periods \\(\\.\\), colons \\(:\\), and white spaces \\(including spaces or tabs\\)\\. It can optionally end with an asterisk \\(\\*\\) so that only the start of the string needs to be an exact match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition FargatePlatformConfiguration": { + "PlatformVersion": "The AWS Fargate platform version where the jobs are running\\. A platform version is specified only for jobs that are running on Fargate resources\\. If one isn't specified, the `LATEST` platform version is used by default\\. This uses a recent, approved version of the AWS Fargate platform for compute resources\\. For more information, see [AWS Fargate platform versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition HostPath": { + "Path": "The path of the file or directory on the host to mount into containers on the pod\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition LinuxParameters": { + "Devices": "Any of the host devices to expose to the container\\. This parameter maps to `Devices` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--device` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't provide it for these jobs\\.\n*Required*: No \n*Type*: List of [Device](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-device.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InitProcessEnabled": "If true, run an `init` process inside the container that forwards signals and reaps processes\\. This parameter maps to the `--init` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. This parameter requires version 1\\.25 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version | grep \"Server API version\"` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxSwap": "The total amount of swap memory \\(in MiB\\) a container can use\\. This parameter is translated to the `--memory-swap` option to [docker run](https://docs.docker.com/engine/reference/run/) where the value is the sum of the container memory plus the `maxSwap` value\\. For more information, see [`--memory-swap` details](https://docs.docker.com/config/containers/resource_constraints/#--memory-swap-details) in the Docker documentation\\. \nIf a `maxSwap` value of `0` is specified, the container doesn't use swap\\. Accepted values are `0` or any positive integer\\. If the `maxSwap` parameter is omitted, the container doesn't use the swap configuration for the container instance that it's running on\\. A `maxSwap` value must be set for the `swappiness` parameter to be used\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't provide it for these jobs\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SharedMemorySize": "The value for the size \\(in MiB\\) of the `/dev/shm` volume\\. This parameter maps to the `--shm-size` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't provide it for these jobs\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Swappiness": "You can use this parameter to tune a container's memory swappiness behavior\\. A `swappiness` value of `0` causes swapping to not occur unless absolutely necessary\\. A `swappiness` value of `100` causes pages to be swapped aggressively\\. Valid values are whole numbers between `0` and `100`\\. If the `swappiness` parameter isn't specified, a default value of `60` is used\\. If a value isn't specified for `maxSwap`, then this parameter is ignored\\. If `maxSwap` is set to 0, the container doesn't use swap\\. This parameter maps to the `--memory-swappiness` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \nConsider the following when you use a per\\-container swap configuration\\. \n+ Swap space must be enabled and allocated on the container instance for the containers to use\\.\n**Note** \nBy default, the Amazon ECS optimized AMIs don't have swap enabled\\. You must enable swap on the instance to use this feature\\. For more information, see [Instance store swap volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-store-swap-volumes.html) in the *Amazon EC2 User Guide for Linux Instances* or [How do I allocate memory to work as swap space in an Amazon EC2 instance by using a swap file?](http://aws.amazon.com/premiumsupport/knowledge-center/ec2-memory-swap-file/) \n+ The swap space parameters are only supported for job definitions using EC2 resources\\.\n+ If the `maxSwap` and `swappiness` parameters are omitted from a job definition, each container has a default `swappiness` value of 60\\. Moreover, the total swap usage is limited to two times the memory reservation of the container\\.\nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't provide it for these jobs\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tmpfs": "The container path, mount options, and size \\(in MiB\\) of the `tmpfs` mount\\. This parameter maps to the `--tmpfs` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't provide this parameter for this resource type\\.\n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-tmpfs.html) of [Tmpfs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-tmpfs.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition LogConfiguration": { + "LogDriver": "The log driver to use for the container\\. The valid values that are listed for this parameter are log drivers that the Amazon ECS container agent can communicate with by default\\. \nThe supported log drivers are `awslogs`, `fluentd`, `gelf`, `json-file`, `journald`, `logentries`, `syslog`, and `splunk`\\. \nJobs that are running on Fargate resources are restricted to the `awslogs` and `splunk` log drivers\\. \nawslogs \nSpecifies the Amazon CloudWatch Logs logging driver\\. For more information, see [Using the awslogs log driver](https://docs.aws.amazon.com/batch/latest/userguide/using_awslogs.html) in the * AWS Batch User Guide* and [Amazon CloudWatch Logs logging driver](https://docs.docker.com/config/containers/logging/awslogs/) in the Docker documentation\\. \nfluentd \nSpecifies the Fluentd logging driver\\. For more information including usage and options, see [Fluentd logging driver](https://docs.docker.com/config/containers/logging/fluentd/) in the *Docker documentation*\\. \ngelf \nSpecifies the Graylog Extended Format \\(GELF\\) logging driver\\. For more information including usage and options, see [Graylog Extended Format logging driver](https://docs.docker.com/config/containers/logging/gelf/) in the *Docker documentation*\\. \njournald \nSpecifies the journald logging driver\\. For more information including usage and options, see [Journald logging driver](https://docs.docker.com/config/containers/logging/journald/) in the *Docker documentation*\\. \njson\\-file \nSpecifies the JSON file logging driver\\. For more information including usage and options, see [JSON File logging driver](https://docs.docker.com/config/containers/logging/json-file/) in the *Docker documentation*\\. \nsplunk \nSpecifies the Splunk logging driver\\. For more information including usage and options, see [Splunk logging driver](https://docs.docker.com/config/containers/logging/splunk/) in the *Docker documentation*\\. \nsyslog \nSpecifies the syslog logging driver\\. For more information including usage and options, see [Syslog logging driver](https://docs.docker.com/config/containers/logging/syslog/) in the *Docker documentation*\\.\nIf you have a custom driver that's not listed earlier that you want to work with the Amazon ECS container agent, you can fork the Amazon ECS container agent project that's [available on GitHub](https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver\\. We encourage you to submit pull requests for changes that you want to have included\\. However, Amazon Web Services doesn't currently support running modified copies of this software\\.\nThis parameter requires version 1\\.18 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version | grep \"Server API version\"` \n*Required*: Yes \n*Type*: String \n*Allowed values*: `awslogs | fluentd | gelf | journald | json-file | splunk | syslog` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Options": "The configuration options to send to the log driver\\. This parameter requires version 1\\.19 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version | grep \"Server API version\"` \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretOptions": "The secrets to pass to the log configuration\\. For more information, see [Specifying sensitive data](https://docs.aws.amazon.com/batch/latest/userguide/specifying-sensitive-data.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: List of [Secret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-secret.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition MountPoints": { + "ContainerPath": "The path on the container where the host volume is mounted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReadOnly": "If this value is `true`, the container has read\\-only access to the volume\\. Otherwise, the container can write to the volume\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceVolume": "The name of the volume to mount\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition NetworkConfiguration": { + "AssignPublicIp": "Indicates whether the job has a public IP address\\. For a job that's running on Fargate resources in a private subnet to send outbound traffic to the internet \\(for example, to pull container images\\), the private subnet requires a NAT gateway be attached to route requests to the internet\\. For more information, see [Amazon ECS task networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*\\. The default value is \"`DISABLED`\"\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition NodeProperties": { + "MainNode": "Specifies the node index for the main node of a multi\\-node parallel job\\. This node index value must be fewer than the number of nodes\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NodeRangeProperties": "A list of node ranges and their properties that are associated with a multi\\-node parallel job\\. \n*Required*: Yes \n*Type*: List of [NodeRangeProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-noderangeproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumNodes": "The number of nodes that are associated with a multi\\-node parallel job\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition NodeRangeProperty": { + "Container": "The container details for the node range\\. \n*Required*: No \n*Type*: [ContainerProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetNodes": "The range of nodes, using node index values\\. A range of `0:3` indicates nodes with index values of `0` through `3`\\. If the starting range value is omitted \\(`:n`\\), then `0` is used to start the range\\. If the ending range value is omitted \\(`n:`\\), then the highest possible node index is used to end the range\\. Your accumulative node ranges must account for all nodes \\(`0:n`\\)\\. You can nest node ranges \\(for example, `0:10` and `4:5`\\)\\. In this case, the `4:5` range properties override the `0:10` properties\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition PodProperties": { + "Containers": "The properties of the container that's used on the Amazon EKS pod\\. \n*Required*: No \n*Type*: List of [EksContainer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekscontainer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DnsPolicy": "The DNS policy for the pod\\. The default value is `ClusterFirst`\\. If the `hostNetwork` parameter is not specified, the default is `ClusterFirstWithHostNet`\\. `ClusterFirst` indicates that any DNS query that does not match the configured cluster domain suffix is forwarded to the upstream nameserver inherited from the node\\. If no value was specified for `dnsPolicy` in the [RegisterJobDefinition](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html) API operation, then no value will be returned for `dnsPolicy` by either of [DescribeJobDefinitions](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobDefinitions.html) or [DescribeJobs](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobs.html) API operations\\. The pod spec setting will contain either `ClusterFirst` or `ClusterFirstWithHostNet`, depending on the value of the `hostNetwork` parameter\\. For more information, see [Pod's DNS policy](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy) in the *Kubernetes documentation*\\. \nValid values: `Default` \\| `ClusterFirst` \\| `ClusterFirstWithHostNet` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HostNetwork": "Indicates if the pod uses the hosts' network IP address\\. The default value is `true`\\. Setting this to `false` enables the Kubernetes pod networking model\\. Most AWS Batch workloads are egress\\-only and don't require the overhead of IP allocation for each pod for incoming connections\\. For more information, see [Host namespaces](https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces) and [Pod networking](https://kubernetes.io/docs/concepts/workloads/pods/#pod-networking) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceAccountName": "The name of the service account that's used to run the pod\\. For more information, see [Kubernetes service accounts](https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html) and [Configure a Kubernetes service account to assume an IAM role](https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html) in the *Amazon EKS User Guide* and [Configure service accounts for pods](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Volumes": "Specifies the volumes for a job definition that uses Amazon EKS resources\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html) of [EksVolume](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-eksvolume.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition ResourceRequirement": { + "Type": "The type of resource to assign to a container\\. The supported resources include `GPU`, `MEMORY`, and `VCPU`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GPU | MEMORY | VCPU` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The quantity of the specified resource to reserve for the container\\. The values vary based on the `type` specified\\. \ntype=\"GPU\" \nThe number of physical GPUs to reserve for the container\\. Make sure that the number of GPUs reserved for all containers in a job doesn't exceed the number of available GPUs on the compute resource that the job is launched on\\. \nGPUs aren't available for jobs that are running on Fargate resources\\. \ntype=\"MEMORY\" \nThe memory hard limit \\(in MiB\\) present to the container\\. This parameter is supported for jobs that are running on EC2 resources\\. If your container attempts to exceed the memory specified, the container is terminated\\. This parameter maps to `Memory` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--memory` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. You must specify at least 4 MiB of memory for a job\\. This is required but can be specified in several places for multi\\-node parallel \\(MNP\\) jobs\\. It must be specified for each node at least once\\. This parameter maps to `Memory` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--memory` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \nIf you're trying to maximize your resource utilization by providing your jobs as much memory as possible for a particular instance type, see [Memory management](https://docs.aws.amazon.com/batch/latest/userguide/memory-management.html) in the * AWS Batch User Guide*\\.\nFor jobs that are running on Fargate resources, then `value` is the hard limit \\(in MiB\\), and must match one of the supported values and the `VCPU` values must be one of the values supported for that memory value\\. \nvalue = 512 \n `VCPU` = 0\\.25 \nvalue = 1024 \n `VCPU` = 0\\.25 or 0\\.5 \nvalue = 2048 \n `VCPU` = 0\\.25, 0\\.5, or 1 \nvalue = 3072 \n `VCPU` = 0\\.5, or 1 \nvalue = 4096 \n `VCPU` = 0\\.5, 1, or 2 \nvalue = 5120, 6144, or 7168 \n `VCPU` = 1 or 2 \nvalue = 8192 \n `VCPU` = 1, 2, or 4 \nvalue = 9216, 10240, 11264, 12288, 13312, 14336, or 15360 \n `VCPU` = 2 or 4 \nvalue = 16384 \n `VCPU` = 2, 4, or 8 \nvalue = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, 29696, or 30720 \n `VCPU` = 4 \nvalue = 20480, 24576, or 28672 \n `VCPU` = 4 or 8 \nvalue = 36864, 45056, 53248, or 61440 \n `VCPU` = 8 \nvalue = 32768, 40960, 49152, or 57344 \n `VCPU` = 8 or 16 \nvalue = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880 \n `VCPU` = 16 \ntype=\"VCPU\" \nThe number of vCPUs reserved for the container\\. This parameter maps to `CpuShares` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--cpu-shares` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. Each vCPU is equivalent to 1,024 CPU shares\\. For EC2 resources, you must specify at least one vCPU\\. This is required but can be specified in several places; it must be specified for each node at least once\\. \nThe default for the Fargate On\\-Demand vCPU resource count quota is 6 vCPUs\\. For more information about Fargate quotas, see [AWS Fargate quotas](https://docs.aws.amazon.com/general/latest/gr/ecs-service.html#service-quotas-fargate) in the * AWS General Reference*\\. \nFor jobs that are running on Fargate resources, then `value` must match one of the supported values and the `MEMORY` values must be one of the values supported for that `VCPU` value\\. The supported values are 0\\.25, 0\\.5, 1, 2, 4, 8, and 16 \nvalue = 0\\.25 \n `MEMORY` = 512, 1024, or 2048 \nvalue = 0\\.5 \n `MEMORY` = 1024, 2048, 3072, or 4096 \nvalue = 1 \n `MEMORY` = 2048, 3072, 4096, 5120, 6144, 7168, or 8192 \nvalue = 2 \n `MEMORY` = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384 \nvalue = 4 \n `MEMORY` = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720 \nvalue = 8 \n `MEMORY` = 16384, 20480, 24576, 28672, 32768, 36864, 40960, 45056, 49152, 53248, 57344, or 61440 \nvalue = 16 \n `MEMORY` = 32768, 40960, 49152, 57344, 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880 \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition Resources": { + "Limits": "The type and quantity of the resources to reserve for the container\\. The values vary based on the `name` that's specified\\. Resources can be requested using either the `limits` or the `requests` objects\\. \nmemory \nThe memory hard limit \\(in MiB\\) for the container, using whole integers, with a \"Mi\" suffix\\. If your container attempts to exceed the memory specified, the container is terminated\\. You must specify at least 4 MiB of memory for a job\\. `memory` can be specified in `limits`, `requests`, or both\\. If `memory` is specified in both places, then the value that's specified in `limits` must be equal to the value that's specified in `requests`\\. \nTo maximize your resource utilization, provide your jobs with as much memory as possible for the specific instance type that you are using\\. To learn how, see [Memory management](https://docs.aws.amazon.com/batch/latest/userguide/memory-management.html) in the * AWS Batch User Guide*\\. \ncpu \nThe number of CPUs that's reserved for the container\\. Values must be an even multiple of `0.25`\\. `cpu` can be specified in `limits`, `requests`, or both\\. If `cpu` is specified in both places, then the value that's specified in `limits` must be at least as large as the value that's specified in `requests`\\. \nnvidia\\.com/gpu \nThe number of GPUs that's reserved for the container\\. Values must be a whole integer\\. `memory` can be specified in `limits`, `requests`, or both\\. If `memory` is specified in both places, then the value that's specified in `limits` must be equal to the value that's specified in `requests`\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Requests": "The type and quantity of the resources to request for the container\\. The values vary based on the `name` that's specified\\. Resources can be requested by using either the `limits` or the `requests` objects\\. \nmemory \nThe memory hard limit \\(in MiB\\) for the container, using whole integers, with a \"Mi\" suffix\\. If your container attempts to exceed the memory specified, the container is terminated\\. You must specify at least 4 MiB of memory for a job\\. `memory` can be specified in `limits`, `requests`, or both\\. If `memory` is specified in both, then the value that's specified in `limits` must be equal to the value that's specified in `requests`\\. \nIf you're trying to maximize your resource utilization by providing your jobs as much memory as possible for a particular instance type, see [Memory management](https://docs.aws.amazon.com/batch/latest/userguide/memory-management.html) in the * AWS Batch User Guide*\\. \ncpu \nThe number of CPUs that are reserved for the container\\. Values must be an even multiple of `0.25`\\. `cpu` can be specified in `limits`, `requests`, or both\\. If `cpu` is specified in both, then the value that's specified in `limits` must be at least as large as the value that's specified in `requests`\\. \nnvidia\\.com/gpu \nThe number of GPUs that are reserved for the container\\. Values must be a whole integer\\. `nvidia.com/gpu` can be specified in `limits`, `requests`, or both\\. If `nvidia.com/gpu` is specified in both, then the value that's specified in `limits` must be equal to the value that's specified in `requests`\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition RetryStrategy": { + "Attempts": "The number of times to move a job to the `RUNNABLE` status\\. You can specify between 1 and 10 attempts\\. If the value of `attempts` is greater than one, the job is retried on failure the same number of attempts as the value\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EvaluateOnExit": "Array of up to 5 objects that specify the conditions where jobs are retried or failed\\. If this parameter is specified, then the `attempts` parameter must also be specified\\. If none of the listed conditions match, then the job is retried\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-evaluateonexit.html) of [EvaluateOnExit](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-evaluateonexit.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition Secret": { + "Name": "The name of the secret\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ValueFrom": "The secret to expose to the container\\. The supported values are either the full Amazon Resource Name \\(ARN\\) of the AWS Secrets Manager secret or the full ARN of the parameter in the AWS Systems Manager Parameter Store\\. \nIf the AWS Systems Manager Parameter Store parameter exists in the same Region as the job you're launching, then you can use either the full Amazon Resource Name \\(ARN\\) or name of the parameter\\. If the parameter exists in a different Region, then the full ARN must be specified\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition SecurityContext": { + "Privileged": "When this parameter is `true`, the container is given elevated permissions on the host container instance\\. The level of permissions are similar to the `root` user permissions\\. The default value is `false`\\. This parameter maps to `privileged` policy in the [Privileged pod security policies](https://kubernetes.io/docs/concepts/security/pod-security-policy/#privileged) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReadOnlyRootFilesystem": "When this parameter is `true`, the container is given read\\-only access to its root file system\\. The default value is `false`\\. This parameter maps to `ReadOnlyRootFilesystem` policy in the [Volumes and file systems pod security policies](https://kubernetes.io/docs/concepts/security/pod-security-policy/#volumes-and-file-systems) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RunAsGroup": "When this parameter is specified, the container is run as the specified group ID \\(`gid`\\)\\. If this parameter isn't specified, the default is the group that's specified in the image metadata\\. This parameter maps to `RunAsGroup` and `MustRunAs` policy in the [Users and groups pod security policies](https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RunAsNonRoot": "When this parameter is specified, the container is run as a user with a `uid` other than 0\\. If this parameter isn't specified, so such rule is enforced\\. This parameter maps to `RunAsUser` and `MustRunAsNonRoot` policy in the [Users and groups pod security policies](https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RunAsUser": "When this parameter is specified, the container is run as the specified user ID \\(`uid`\\)\\. If this parameter isn't specified, the default is the user that's specified in the image metadata\\. This parameter maps to `RunAsUser` and `MustRanAs` policy in the [Users and groups pod security policies](https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition Timeout": { + "AttemptDurationSeconds": "The job timeout time \\(in seconds\\) that's measured from the job attempt's `startedAt` timestamp\\. After this time passes, AWS Batch terminates your jobs if they aren't finished\\. The minimum value for the timeout is 60 seconds\\. \nFor array jobs, the timeout applies to the child jobs, not to the parent array job\\. \nFor multi\\-node parallel \\(MNP\\) jobs, the timeout applies to the whole job, not to the individual nodes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition Tmpfs": { + "ContainerPath": "The absolute file path in the container where the `tmpfs` volume is mounted\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MountOptions": "The list of `tmpfs` volume mount options\\. \nValid values: \"`defaults`\" \\| \"`ro`\" \\| \"`rw`\" \\| \"`suid`\" \\| \"`nosuid`\" \\| \"`dev`\" \\| \"`nodev`\" \\| \"`exec`\" \\| \"`noexec`\" \\| \"`sync`\" \\| \"`async`\" \\| \"`dirsync`\" \\| \"`remount`\" \\| \"`mand`\" \\| \"`nomand`\" \\| \"`atime`\" \\| \"`noatime`\" \\| \"`diratime`\" \\| \"`nodiratime`\" \\| \"`bind`\" \\| \"`rbind\" | \"unbindable\" | \"runbindable\" | \"private\" | \"rprivate\" | \"shared\" | \"rshared\" | \"slave\" | \"rslave\" | \"relatime`\" \\| \"`norelatime`\" \\| \"`strictatime`\" \\| \"`nostrictatime`\" \\| \"`mode`\" \\| \"`uid`\" \\| \"`gid`\" \\| \"`nr_inodes`\" \\| \"`nr_blocks`\" \\| \"`mpol`\" \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Size": "The size \\(in MiB\\) of the `tmpfs` volume\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition Ulimit": { + "HardLimit": "The hard limit for the `ulimit` type\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The `type` of the `ulimit`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SoftLimit": "The soft limit for the `ulimit` type\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition Volumes": { + "EfsVolumeConfiguration": "This is used when you're using an Amazon Elastic File System file system for job storage\\. For more information, see [Amazon EFS Volumes](https://docs.aws.amazon.com/batch/latest/userguide/efs-volumes.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: [EfsVolumeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Host": "The contents of the `host` parameter determine whether your data volume persists on the host container instance and where it's stored\\. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume\\. However, the data isn't guaranteed to persist after the containers that are associated with it stop running\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided\\.\n*Required*: No \n*Type*: [VolumesHost](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumeshost.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the volume\\. It can be up to 255 characters long\\. It can contain uppercase and lowercase letters, numbers, hyphens \\(\\-\\), and underscores \\(\\_\\)\\. This name is referenced in the `sourceVolume` parameter of container definition `mountPoints`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobDefinition VolumesHost": { + "SourcePath": "The path on the host container instance that's presented to the container\\. If this parameter is empty, then the Docker daemon has assigned a host path for you\\. If this parameter contains a file location, then the data volume persists at the specified location on the host container instance until you delete it manually\\. If the source path location doesn't exist on the host container instance, the Docker daemon creates it\\. If the location does exist, the contents of the source path folder are exported\\. \nThis parameter isn't applicable to jobs that run on Fargate resources\\. Don't provide this for these jobs\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::JobQueue": { + "ComputeEnvironmentOrder": "The set of compute environments mapped to a job queue and their order relative to each other\\. The job scheduler uses this parameter to determine which compute environment runs a specific job\\. Compute environments must be in the `VALID` state before you can associate them with a job queue\\. You can associate up to three compute environments with a job queue\\. All of the compute environments must be either EC2 \\(`EC2` or `SPOT`\\) or Fargate \\(`FARGATE` or `FARGATE_SPOT`\\); EC2 and Fargate compute environments can't be mixed\\. \nAll compute environments that are associated with a job queue must share the same architecture\\. AWS Batch doesn't support mixing compute environment architecture types in a single job queue\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-computeenvironmentorder.html) of [ComputeEnvironmentOrder](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-computeenvironmentorder.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JobQueueName": "The name of the job queue\\. It can be up to 128 letters long\\. It can contain uppercase and lowercase letters, numbers, hyphens \\(\\-\\), and underscores \\(\\_\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Priority": "The priority of the job queue\\. Job queues with a higher priority \\(or a higher integer value for the `priority` parameter\\) are evaluated first when associated with the same compute environment\\. Priority is determined in descending order\\. For example, a job queue with a priority value of `10` is given scheduling preference over a job queue with a priority value of `1`\\. All of the compute environments must be either EC2 \\(`EC2` or `SPOT`\\) or Fargate \\(`FARGATE` or `FARGATE_SPOT`\\); EC2 and Fargate compute environments can't be mixed\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SchedulingPolicyArn": "The Amazon Resource Name \\(ARN\\) of the scheduling policy\\. The format is `aws:Partition:batch:Region:Account:scheduling-policy/Name `\\. For example, `aws:aws:batch:us-west-2:123456789012:scheduling-policy/MySchedulingPolicy`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "State": "The state of the job queue\\. If the job queue state is `ENABLED`, it is able to accept jobs\\. If the job queue state is `DISABLED`, new jobs can't be added to the queue, but jobs already in the queue can finish\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags that are applied to the job queue\\. For more information, see [Tagging your AWS Batch resources](https://docs.aws.amazon.com/batch/latest/userguide/using-tags.html) in * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Batch::JobQueue ComputeEnvironmentOrder": { + "ComputeEnvironment": "The Amazon Resource Name \\(ARN\\) of the compute environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Order": "The order of the compute environment\\. Compute environments are tried in ascending order\\. For example, if two compute environments are associated with a job queue, the compute environment with a lower `order` integer value is tried for job placement first\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::SchedulingPolicy": { + "FairsharePolicy": "The fair share policy of the scheduling policy\\. \n*Required*: No \n*Type*: [FairsharePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-schedulingpolicy-fairsharepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the scheduling policy\\. It can be up to 128 letters long\\. It can contain uppercase and lowercase letters, numbers, hyphens \\(\\-\\), and underscores \\(\\_\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags that you apply to the scheduling policy to help you categorize and organize your resources\\. Each tag consists of a key and an optional value\\. For more information, see [Tagging AWS Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in * AWS General Reference*\\. \nThese tags can be updated or removed using the [TagResource](https://docs.aws.amazon.com/batch/latest/APIReference/API_TagResource.html) and [UntagResource](https://docs.aws.amazon.com/batch/latest/APIReference/API_UntagResource.html) API operations\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Batch::SchedulingPolicy FairsharePolicy": { + "ComputeReservation": "A value used to reserve some of the available maximum vCPU for fair share identifiers that aren't already used\\. \nThe reserved ratio is `(computeReservation/100)^ActiveFairShares ` where ` ActiveFairShares ` is the number of active fair share identifiers\\. \nFor example, a `computeReservation` value of 50 indicates that AWS Batchreserves 50% of the maximum available vCPU if there's only one fair share identifier\\. It reserves 25% if there are two fair share identifiers\\. It reserves 12\\.5% if there are three fair share identifiers\\. A `computeReservation` value of 25 indicates that AWS Batch should reserve 25% of the maximum available vCPU if there's only one fair share identifier, 6\\.25% if there are two fair share identifiers, and 1\\.56% if there are three fair share identifiers\\. \nThe minimum value is 0 and the maximum value is 99\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ShareDecaySeconds": "The amount of time \\(in seconds\\) to use to calculate a fair share percentage for each fair share identifier in use\\. A value of zero \\(0\\) indicates that only current usage is measured\\. The decay allows for more recently run jobs to have more weight than jobs that ran earlier\\. The maximum supported value is 604800 \\(1 week\\)\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ShareDistribution": "An array of `SharedIdentifier` objects that contain the weights for the fair share identifiers for the fair share policy\\. Fair share identifiers that aren't included have a default weight of `1.0`\\. \n*Required*: No \n*Type*: List of [ShareAttributes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-schedulingpolicy-shareattributes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Batch::SchedulingPolicy ShareAttributes": { + "ShareIdentifier": "A fair share identifier or fair share identifier prefix\\. If the string ends with an asterisk \\(\\*\\), this entry specifies the weight factor to use for fair share identifiers that start with that prefix\\. The list of fair share identifiers in a fair share policy can't overlap\\. For example, you can't have one that specifies a `shareIdentifier` of `UserA*` and another that specifies a `shareIdentifier` of `UserA-1`\\. \nThere can be no more than 500 fair share identifiers active in a job queue\\. \nThe string is limited to 255 alphanumeric characters, and can be followed by an asterisk \\(\\*\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WeightFactor": "The weight factor for the fair share identifier\\. The default value is 1\\.0\\. A lower value has a higher priority for compute resources\\. For example, jobs that use a share identifier with a weight factor of 0\\.125 \\(1/8\\) get 8 times the compute resources of jobs that use a share identifier with a weight factor of 1\\. \nThe smallest supported value is 0\\.0001, and the largest supported value is 999\\.9999\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::BillingConductor::BillingGroup": { + "AccountGrouping": "The set of accounts that will be under the billing group\\. The set of accounts resemble the linked accounts in a consolidated family\\. \n*Required*: Yes \n*Type*: [AccountGrouping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-billinggroup-accountgrouping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ComputationPreference": "The preferences and settings that will be used to compute the AWS charges for a billing group\\. \n*Required*: Yes \n*Type*: [ComputationPreference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-billinggroup-computationpreference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The billing group description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The billing group's name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrimaryAccountId": "The account ID that serves as the main account in a billing group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::BillingConductor::BillingGroup AccountGrouping": { + "LinkedAccountIds": "The account IDs that make up the billing group\\. Account IDs must be a part of the consolidated billing family, and not associated with another billing group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::BillingConductor::BillingGroup ComputationPreference": { + "PricingPlanArn": "The Amazon Resource Name \\(ARN\\) of the pricing plan used to compute the AWS charges for a billing group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::BillingConductor::CustomLineItem": { + "BillingGroupArn": "The Amazon Resource Name \\(ARN\\) that references the billing group where the custom line item applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BillingPeriodRange": "A time range for which the custom line item is effective\\. \n*Required*: No \n*Type*: [BillingPeriodRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-billingperiodrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomLineItemChargeDetails": "The charge details of a custom line item\\. It should contain only one of `Flat` or `Percentage`\\. \n*Required*: No \n*Type*: [CustomLineItemChargeDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitemchargedetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The custom line item's description\\. This is shown on the Bills page in association with the charge value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The custom line item's name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A map that contains tag keys and tag values that are attached to a custom line item\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::BillingConductor::CustomLineItem BillingPeriodRange": { + "ExclusiveEndBillingPeriod": "The inclusive end billing period that defines a billing period range where a custom line is applied\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InclusiveStartBillingPeriod": "The inclusive start billing period that defines a billing period range where a custom line is applied\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::BillingConductor::CustomLineItem CustomLineItemChargeDetails": { + "Flat": "A `CustomLineItemFlatChargeDetails` that describes the charge details of a flat custom line item\\. \n*Required*: No \n*Type*: [CustomLineItemFlatChargeDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitemflatchargedetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Percentage": "A `CustomLineItemPercentageChargeDetails` that describes the charge details of a percentage custom line item\\. \n*Required*: No \n*Type*: [CustomLineItemPercentageChargeDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitempercentagechargedetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of the custom line item that indicates whether the charge is a fee or credit\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::BillingConductor::CustomLineItem CustomLineItemFlatChargeDetails": { + "ChargeValue": "The custom line item's fixed charge value in USD\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::BillingConductor::CustomLineItem CustomLineItemPercentageChargeDetails": { + "ChildAssociatedResources": "A list of resource ARNs to associate to the percentage custom line item\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PercentageValue": "The custom line item's percentage value\\. This will be multiplied against the combined value of its associated resources to determine its charge value\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::BillingConductor::PricingPlan": { + "Description": "The pricing plan description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of a pricing plan\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PricingRuleArns": "The `PricingRuleArns` that are associated with the Pricing Plan\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A map that contains tag keys and tag values that are attached to a pricing plan\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::BillingConductor::PricingRule": { + "Description": "The pricing rule description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ModifierPercentage": "A percentage modifier applied on the public pricing rates\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of a pricing rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scope": "The scope of pricing rule that indicates if it is globally applicable, or if it is service\\-specific\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Service": "If the `Scope` attribute is `SERVICE`, this attribute indicates which service the `PricingRule` is applicable for\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A map that contains tag keys and tag values that are attached to a pricing rule\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of pricing rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Budgets::Budget": { + "Budget": "The budget object that you want to create\\. \n*Required*: Yes \n*Type*: [BudgetData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotificationsWithSubscribers": "A notification that you want to associate with a budget\\. A budget can have up to five notifications, and each notification can have one SNS subscriber and up to 10 email subscribers\\. If you include notifications and subscribers in your `CreateBudget` call, AWS creates the notifications and subscribers for you\\. \n*Required*: No \n*Type*: List of [NotificationWithSubscribers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notificationwithsubscribers.html) \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Budgets::Budget BudgetData": { + "BudgetLimit": "The total amount of cost, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage that you want to track with your budget\\. \n `BudgetLimit` is required for cost or usage budgets, but optional for RI or Savings Plans utilization or coverage budgets\\. RI and Savings Plans utilization or coverage budgets default to `100`\\. This is the only valid value for RI or Savings Plans utilization or coverage budgets\\. You can't use `BudgetLimit` with `PlannedBudgetLimits` for `CreateBudget` and `UpdateBudget` actions\\. \n*Required*: No \n*Type*: [Spend](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-spend.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BudgetName": "The name of a budget\\. The value must be unique within an account\\. `BudgetName` can't include `:` and `\\` characters\\. If you don't include value for `BudgetName` in the template, Billing and Cost Management assigns your budget a randomly generated name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BudgetType": "Specifies whether this budget tracks costs, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `COST | RI_COVERAGE | RI_UTILIZATION | SAVINGS_PLANS_COVERAGE | SAVINGS_PLANS_UTILIZATION | USAGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CostFilters": "The cost filters, such as `Region`, `Service`, `member account`, `Tag`, or `Cost Category`, that are applied to a budget\\. \n AWS Budgets supports the following services as a `Service` filter for RI budgets: \n+ Amazon EC2\n+ Amazon Redshift\n+ Amazon Relational Database Service\n+ Amazon ElastiCache\n+ Amazon OpenSearch Service \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CostTypes": "The types of costs that are included in this `COST` budget\\. \n `USAGE`, `RI_UTILIZATION`, `RI_COVERAGE`, `SAVINGS_PLANS_UTILIZATION`, and `SAVINGS_PLANS_COVERAGE` budgets do not have `CostTypes`\\. \n*Required*: No \n*Type*: [CostTypes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PlannedBudgetLimits": "A map containing multiple `BudgetLimit`, including current or future limits\\. \n `PlannedBudgetLimits` is available for cost or usage budget and supports both monthly and quarterly `TimeUnit`\\. \nFor monthly budgets, provide 12 months of `PlannedBudgetLimits` values\\. This must start from the current month and include the next 11 months\\. The `key` is the start of the month, `UTC` in epoch seconds\\. \nFor quarterly budgets, provide four quarters of `PlannedBudgetLimits` value entries in standard calendar quarter increments\\. This must start from the current quarter and include the next three quarters\\. The `key` is the start of the quarter, `UTC` in epoch seconds\\. \nIf the planned budget expires before 12 months for monthly or four quarters for quarterly, provide the `PlannedBudgetLimits` values only for the remaining periods\\. \nIf the budget begins at a date in the future, provide `PlannedBudgetLimits` values from the start date of the budget\\. \nAfter all of the `BudgetLimit` values in `PlannedBudgetLimits` are used, the budget continues to use the last limit as the `BudgetLimit`\\. At that point, the planned budget provides the same experience as a fixed budget\\. \n `DescribeBudget` and `DescribeBudgets` response along with `PlannedBudgetLimits` also contain `BudgetLimit` representing the current month or quarter limit present in `PlannedBudgetLimits`\\. This only applies to budgets that are created with `PlannedBudgetLimits`\\. Budgets that are created without `PlannedBudgetLimits` only contain `BudgetLimit`\\. They don't contain `PlannedBudgetLimits`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TimePeriod": "The period of time that is covered by a budget\\. The period has a start date and an end date\\. The start date must come before the end date\\. There are no restrictions on the end date\\. \nThe start date for a budget\\. If you created your budget and didn't specify a start date, the start date defaults to the start of the chosen time period \\(MONTHLY, QUARTERLY, or ANNUALLY\\)\\. For example, if you create your budget on January 24, 2019, choose `MONTHLY`, and don't set a start date, the start date defaults to `01/01/19 00:00 UTC`\\. The defaults are the same for the AWS Billing and Cost Management console and the API\\. \nYou can change your start date with the `UpdateBudget` operation\\. \nAfter the end date, AWS deletes the budget and all associated notifications and subscribers\\. \n*Required*: No \n*Type*: [TimePeriod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-timeperiod.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeUnit": "The length of time until a budget resets the actual and forecasted spend\\. `DAILY` is available only for `RI_UTILIZATION` and `RI_COVERAGE` budgets\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ANNUALLY | DAILY | MONTHLY | QUARTERLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Budgets::Budget CostTypes": { + "IncludeCredit": "Specifies whether a budget includes credits\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeDiscount": "Specifies whether a budget includes discounts\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeOtherSubscription": "Specifies whether a budget includes non\\-RI subscription costs\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeRecurring": "Specifies whether a budget includes recurring fees such as monthly RI fees\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeRefund": "Specifies whether a budget includes refunds\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeSubscription": "Specifies whether a budget includes subscriptions\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeSupport": "Specifies whether a budget includes support subscription fees\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeTax": "Specifies whether a budget includes taxes\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeUpfront": "Specifies whether a budget includes upfront RI costs\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UseAmortized": "Specifies whether a budget uses the amortized rate\\. \nThe default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UseBlended": "Specifies whether a budget uses a blended rate\\. \nThe default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Budgets::Budget Notification": { + "ComparisonOperator": "The comparison that's used for this notification\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EQUAL_TO | GREATER_THAN | LESS_THAN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotificationType": "Specifies whether the notification is for how much you have spent \\(`ACTUAL`\\) or for how much that you're forecasted to spend \\(`FORECASTED`\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ACTUAL | FORECASTED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Threshold": "The threshold that's associated with a notification\\. Thresholds are always a percentage, and many customers find value being alerted between 50% \\- 200% of the budgeted amount\\. The maximum limit for your threshold is 1,000,000% above the budgeted amount\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThresholdType": "The type of threshold for a notification\\. For `ABSOLUTE_VALUE` thresholds, AWS notifies you when you go over or are forecasted to go over your total cost threshold\\. For `PERCENTAGE` thresholds, AWS notifies you when you go over or are forecasted to go over a certain percentage of your forecasted spend\\. For example, if you have a budget for 200 dollars and you have a `PERCENTAGE` threshold of 80%, AWS notifies you when you go over 160 dollars\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ABSOLUTE_VALUE | PERCENTAGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Budgets::Budget NotificationWithSubscribers": { + "Notification": "The notification that's associated with a budget\\. \n*Required*: Yes \n*Type*: [Notification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Subscribers": "A list of subscribers who are subscribed to this notification\\. \n*Required*: Yes \n*Type*: List of [Subscriber](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-subscriber.html) \n*Maximum*: `11` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Budgets::Budget Spend": { + "Amount": "The cost or usage amount that's associated with a budget forecast, actual spend, or budget threshold\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Unit": "The unit of measurement that's used for the budget forecast, actual spend, or budget threshold, such as USD or GBP\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Budgets::Budget Subscriber": { + "Address": "The address that AWS sends budget notifications to, either an SNS topic or an email\\. \nWhen you create a subscriber, the value of `Address` can't contain line breaks\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubscriptionType": "The type of notification that AWS sends to a subscriber\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EMAIL | SNS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Budgets::Budget TimePeriod": { + "End": "The end date for a budget\\. If you didn't specify an end date, AWS set your end date to `06/15/87 00:00 UTC`\\. The defaults are the same for the AWS Billing and Cost Management console and the API\\. \nAfter the end date, AWS deletes the budget and all the associated notifications and subscribers\\. You can change your end date with the `UpdateBudget` operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Start": "The start date for a budget\\. If you created your budget and didn't specify a start date, the start date defaults to the start of the chosen time period \\(MONTHLY, QUARTERLY, or ANNUALLY\\)\\. For example, if you create your budget on January 24, 2019, choose `MONTHLY`, and don't set a start date, the start date defaults to `01/01/19 00:00 UTC`\\. The defaults are the same for the AWS Billing and Cost Management console and the API\\. \nYou can change your start date with the `UpdateBudget` operation\\. \nValid values depend on the value of `BudgetType`: \n+ If `BudgetType` is `COST` or `USAGE`: Valid values are `MONTHLY`, `QUARTERLY`, and `ANNUALLY`\\.\n+ If `BudgetType` is `RI_UTILIZATION` or `RI_COVERAGE`: Valid values are `DAILY`, `MONTHLY`, `QUARTERLY`, and `ANNUALLY`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Budgets::BudgetsAction": { + "ActionThreshold": "The trigger threshold of the action\\. \n*Required*: Yes \n*Type*: [ActionThreshold](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-actionthreshold.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ActionType": "The type of action\\. This defines the type of tasks that can be carried out by this action\\. This field also determines the format for definition\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `APPLY_IAM_POLICY | APPLY_SCP_POLICY | RUN_SSM_DOCUMENTS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ApprovalModel": "This specifies if the action needs manual or automatic approval\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUTOMATIC | MANUAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BudgetName": "A string that represents the budget name\\. \":\" and \"\\\\\" characters aren't allowed\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Definition": "Specifies all of the type\\-specific parameters\\. \n*Required*: Yes \n*Type*: [Definition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-definition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExecutionRoleArn": "The role passed for action execution and reversion\\. Roles and actions must be in the same account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `32` \n*Maximum*: `618` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|us-iso-east-1|us-isob-east-1):iam::\\d{12}:role(\\u002F[\\u0021-\\u007F]+\\u002F|\\u002F)[\\w+=,.@-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotificationType": "The type of a notification\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ACTUAL | FORECASTED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Subscribers": "A list of subscribers\\. \n*Required*: Yes \n*Type*: List of [Subscriber](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-subscriber.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Budgets::BudgetsAction ActionThreshold": { + "Type": "The type of threshold for a notification\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ABSOLUTE_VALUE | PERCENTAGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The threshold of a notification\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Budgets::BudgetsAction Definition": { + "IamActionDefinition": "The AWS Identity and Access Management \\(IAM\\) action definition details\\. \n*Required*: No \n*Type*: [IamActionDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-iamactiondefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScpActionDefinition": "The service control policies \\(SCP\\) action definition details\\. \n*Required*: No \n*Type*: [ScpActionDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-scpactiondefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SsmActionDefinition": "The Amazon EC2 Systems Manager \\(SSM\\) action definition details\\. \n*Required*: No \n*Type*: [SsmActionDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-ssmactiondefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Budgets::BudgetsAction IamActionDefinition": { + "Groups": "A list of groups to be attached\\. There must be at least one group\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PolicyArn": "The Amazon Resource Name \\(ARN\\) of the policy to be attached\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `25` \n*Maximum*: `684` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|us-iso-east-1|us-isob-east-1):iam::(\\d{12}|aws):policy(\\u002F[\\u0021-\\u007F]+\\u002F|\\u002F)[\\w+=,.@-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Roles": "A list of roles to be attached\\. There must be at least one role\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Users": "A list of users to be attached\\. There must be at least one user\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Budgets::BudgetsAction ScpActionDefinition": { + "PolicyId": "The policy ID attached\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `130` \n*Pattern*: `^p-[0-9a-zA-Z_]{8,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetIds": "A list of target IDs\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Budgets::BudgetsAction SsmActionDefinition": { + "InstanceIds": "The EC2 and RDS instance IDs\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Region": "The Region to run the \\(SSM\\) document\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `9` \n*Maximum*: `20` \n*Pattern*: `^\\w{2}-\\w+(-\\w+)?-\\d$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Subtype": "The action subType\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `STOP_EC2_INSTANCES | STOP_RDS_INSTANCES` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Budgets::BudgetsAction Subscriber": { + "Address": "The address that AWS sends budget notifications to, either an SNS topic or an email\\. \nWhen you create a subscriber, the value of `Address` can't contain line breaks\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of notification that AWS sends to a subscriber\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CE::AnomalyMonitor": { + "MonitorDimension": "The dimensions to evaluate\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `SERVICE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MonitorName": "The name of the monitor\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `[\\S\\s]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MonitorSpecification": "The array of `MonitorSpecification` in JSON array format\\. For instance, you can use `MonitorSpecification` to specify a tag, Cost Category, or linked account for your custom anomaly monitor\\. For further information, see the [Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalymonitor.html#aws-resource-ce-anomalymonitor--examples) section of this page\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MonitorType": "The possible type values\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CUSTOM | DIMENSIONAL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CE::AnomalySubscription": { + "Frequency": "The frequency that anomaly reports are sent over email\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DAILY | IMMEDIATE | WEEKLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MonitorArnList": "A list of cost anomaly monitors\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Subscribers": "A list of subscribers to notify\\. \n*Required*: Yes \n*Type*: List of [Subscriber](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ce-anomalysubscription-subscriber.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubscriptionName": "The name for the subscription\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `[\\S\\s]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Threshold": "The dollar value that triggers a notification if the threshold is exceeded\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CE::AnomalySubscription Subscriber": { + "Address": "The email address or SNS Topic Amazon Resource Name \\(ARN\\), depending on the `Type`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `302` \n*Pattern*: `(^[a-zA-Z0-9.!#$%&'*+=?^_\u2018{|}~-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$)|(^arn:(aws[a-zA-Z-]*):sns:[a-zA-Z0-9-]+:[0-9]{12}:[a-zA-Z0-9_-]+(\\.fifo)?$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Status": "Indicates if the subscriber accepts the notifications\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CONFIRMED | DECLINED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The notification delivery channel\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EMAIL | SNS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CE::CostCategory": { + "DefaultValue": "The default value for the cost category\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The unique name of the Cost Category\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RuleVersion": "The rule schema version in this particular Cost Category\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Rules": "The array of CostCategoryRule in JSON array format\\. \nRules are processed in order\\. If there are multiple rules that match the line item, then the first rule to match is used to determine that Cost Category value\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SplitChargeRules": "The split charge rules that are used to allocate your charges between your Cost Category values\\. \n*Required*: No \n*Type*: String \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CUR::ReportDefinition": { + "AdditionalArtifacts": "A list of manifests that you want Amazon Web Services to create for this report\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AdditionalSchemaElements": "A list of strings that indicate additional content that Amazon Web Services includes in the report, such as individual resource IDs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BillingViewArn": "The Amazon Resource Name \\(ARN\\) of the billing view\\. You can get this value by using the billing view service public APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Compression": "The compression format that Amazon Web Services uses for the report\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Format": "The format that Amazon Web Services saves the report in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RefreshClosedReports": "Whether you want Amazon Web Services to update your reports after they have been finalized if Amazon Web Services detects charges related to previous months\\. These charges can include refunds, credits, or support fees\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReportName": "The name of the report that you want to create\\. The name must be unique, is case sensitive, and can't include spaces\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ReportVersioning": "Whether you want Amazon Web Services to overwrite the previous version of each report or to deliver the report in addition to the previous versions\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CREATE_NEW_REPORT | OVERWRITE_REPORT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "S3Bucket": "The S3 bucket where Amazon Web Services delivers the report\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Prefix": "The prefix that Amazon Web Services adds to the report name when Amazon Web Services delivers the report\\. Your prefix can't include spaces\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Region": "The Region of the S3 bucket that Amazon Web Services delivers the report into\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeUnit": "The granularity of the line items in the report\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Cassandra::Keyspace": { + "KeyspaceName": "The name of the keyspace to be created\\. The keyspace name is case sensitive\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the keyspace name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \n*Length constraints:* Minimum length of 3\\. Maximum length of 255\\. \n*Pattern:* `^[a-zA-Z0-9][a-zA-Z0-9_]{1,47}$` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A list of key\\-value pair tags to be attached to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cassandra::Table": { + "BillingMode": "The billing mode for the table, which determines how you'll be charged for reads and writes: \n+ **On\\-demand mode** \\(default\\) \\- You pay based on the actual reads and writes your application performs\\.\n+ **Provisioned mode** \\- Lets you specify the number of reads and writes per second that you need for your application\\.\nIf you don't specify a value for this property, then the table will use on\\-demand mode\\. \n*Required*: No \n*Type*: [BillingMode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-billingmode.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClusteringKeyColumns": "One or more columns that determine how the table data is sorted\\. \n*Required*: No \n*Type*: List of [ClusteringKeyColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-clusteringkeycolumn.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DefaultTimeToLive": "The default Time To Live \\(TTL\\) value for all rows in a table in seconds\\. The maximum configurable value is 630,720,000 seconds, which is the equivalent of 20 years\\. By default, the TTL value for a table is 0, which means data does not expire\\. \nFor more information, see [Setting the default TTL value for a table](https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL-how-it-works.html#ttl-howitworks_default_ttl) in the *Amazon Keyspaces Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EncryptionSpecification": "The encryption at rest options for the table\\. \n+ **AWS owned key** \\(default\\) \\- The key is owned by Amazon Keyspaces\\.\n+ **Customer managed key** \\- The key is stored in your account and is created, owned, and managed by you\\.\n**Note** \nIf you choose encryption with a customer managed key, you must specify a valid customer managed KMS key with permissions granted to Amazon Keyspaces\\.\nFor more information, see [Encryption at rest in Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/latest/devguide/EncryptionAtRest.html) in the *Amazon Keyspaces Developer Guide*\\. \n*Required*: No \n*Type*: [EncryptionSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-encryptionspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeyspaceName": "The name of the keyspace in which to create the table\\. The keyspace must already exist\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PartitionKeyColumns": "One or more columns that uniquely identify every row in the table\\. Every table must have a partition key\\. \n*Required*: Yes \n*Type*: List of [Column](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-column.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PointInTimeRecoveryEnabled": "Specifies if point\\-in\\-time recovery is enabled or disabled for the table\\. The options are `PointInTimeRecoveryEnabled=true` and `PointInTimeRecoveryEnabled=false`\\. If not specified, the default is `PointInTimeRecoveryEnabled=false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegularColumns": "One or more columns that are not part of the primary key \\- that is, columns that are *not* defined as partition key columns or clustering key columns\\. \nYou can add regular columns to existing tables by adding them to the template\\. \n*Required*: No \n*Type*: List of [Column](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-column.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TableName": "The name of the table to be created\\. The table name is case sensitive\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the table name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Length constraints:* Minimum length of 3\\. Maximum length of 255\\. \n*Pattern:* `^[a-zA-Z0-9][a-zA-Z0-9_]{1,47}$` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A list of key\\-value pair tags to be attached to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cassandra::Table BillingMode": { + "Mode": "The billing mode for the table: \n+ On\\-demand mode \\- `ON_DEMAND`\n+ Provisioned mode \\- `PROVISIONED`\n**Note** \nIf you choose `PROVISIONED` mode, then you also need to specify provisioned throughput \\(read and write capacity\\) for the table\\.\nValid values: `ON_DEMAND` \\| `PROVISIONED` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProvisionedThroughput": "The provisioned read capacity and write capacity for the table\\. For more information, see [Provisioned throughput capacity mode](https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html#ReadWriteCapacityMode.Provisioned) in the *Amazon Keyspaces Developer Guide*\\. \n*Required*: No \n*Type*: [ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-provisionedthroughput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cassandra::Table ClusteringKeyColumn": { + "Column": "The name and data type of this clustering key column\\. \n*Required*: Yes \n*Type*: [Column](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-column.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OrderBy": "The order in which this column's data is stored: \n+ `ASC` \\(default\\) \\- The column's data is stored in ascending order\\.\n+ `DESC` \\- The column's data is stored in descending order\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Cassandra::Table Column": { + "ColumnName": "The name of the column\\. For more information, see [Identifiers](https://docs.aws.amazon.com/keyspaces/latest/devguide/cql.elements.html#cql.elements.identifier) in the *Amazon Keyspaces Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ColumnType": "The data type of the column\\. For more information, see [Data types](https://docs.aws.amazon.com/keyspaces/latest/devguide/cql.elements.html#cql.data-types) in the *Amazon Keyspaces Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cassandra::Table EncryptionSpecification": { + "EncryptionType": "The encryption at rest options for the table\\. \n+ **AWS owned key** \\(default\\) \\- `AWS_OWNED_KMS_KEY`\n+ **Customer managed key** \\- `CUSTOMER_MANAGED_KMS_KEY`\n**Important** \nIf you choose `CUSTOMER_MANAGED_KMS_KEY`, a `kms_key_identifier` in the format of a key ARN is required\\. \nValid values: `CUSTOMER_MANAGED_KMS_KEY` \\| `AWS_OWNED_KMS_KEY`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKeyIdentifier": "Requires a `kms_key_identifier` in the format of a key ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cassandra::Table ProvisionedThroughput": { + "ReadCapacityUnits": "The amount of read capacity that's provisioned for the table\\. For more information, see [Read/write capacity mode](https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html) in the *Amazon Keyspaces Developer Guide*\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WriteCapacityUnits": "The amount of write capacity that's provisioned for the table\\. For more information, see [Read/write capacity mode](https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html) in the *Amazon Keyspaces Developer Guide*\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CertificateManager::Account": { + "ExpiryEventsConfiguration": "Object containing expiration events options associated with an AWS account\\. For more information, see [ExpiryEventsConfiguration](https://docs.aws.amazon.com/acm/latest/APIReference/API_ExpiryEventsConfiguration.html) in the API reference\\. \n*Required*: Yes \n*Type*: [ExpiryEventsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-account-expiryeventsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CertificateManager::Account ExpiryEventsConfiguration": { + "DaysBeforeExpiry": "This option specifies the number of days prior to certificate expiration when ACM starts generating `EventBridge` events\\. ACM sends one event per day per certificate until the certificate expires\\. By default, accounts receive events starting 45 days before certificate expiration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CertificateManager::Certificate": { + "CertificateAuthorityArn": "The Amazon Resource Name \\(ARN\\) of the private certificate authority \\(CA\\) that will be used to issue the certificate\\. If you do not provide an ARN and you are trying to request a private certificate, ACM will attempt to issue a public certificate\\. For more information about private CAs, see the [AWS Certificate Manager Private Certificate Authority \\(PCA\\)](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaWelcome.html) user guide\\. The ARN must have the following form: \n `arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012` \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:[\\w+=/,.@-]*:[0-9]+:[\\w+=,.@-]+(/[\\w+=,.@-]+)*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CertificateTransparencyLoggingPreference": "You can opt out of certificate transparency logging by specifying the `DISABLED` option\\. Opt in by specifying `ENABLED`\\. \nIf you do not specify a certificate transparency logging preference on a new CloudFormation template, or if you remove the logging preference from an existing template, this is the same as explicitly enabling the preference\\. \nChanging the certificate transparency logging preference will update the existing resource by calling `UpdateCertificateOptions` on the certificate\\. This action will not create a new resource\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainName": "The fully qualified domain name \\(FQDN\\), such as www\\.example\\.com, with which you want to secure an ACM certificate\\. Use an asterisk \\(\\*\\) to create a wildcard certificate that protects several sites in the same domain\\. For example, `*.example.com` protects `www.example.com`, `site.example.com`, and `images.example.com.` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `253` \n*Pattern*: `^(\\*\\.)?(((?!-)[A-Za-z0-9-]{0,62}[A-Za-z0-9])\\.)+((?!-)[A-Za-z0-9-]{1,62}[A-Za-z0-9])$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DomainValidationOptions": "Domain information that domain name registrars use to verify your identity\\. \nIn order for a AWS::CertificateManager::Certificate to be provisioned and validated in CloudFormation automatically, the `DomainName` property needs to be identical to one of the `DomainName` property supplied in DomainValidationOptions, if the ValidationMethod is \\*\\*DNS\\*\\*\\. Failing to keep them like\\-for\\-like will result in failure to create the domain validation records in Route53\\.\n*Required*: No \n*Type*: List of [DomainValidationOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-certificate-domainvalidationoption.html) \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubjectAlternativeNames": "Additional FQDNs to be included in the Subject Alternative Name extension of the ACM certificate\\. For example, you can add www\\.example\\.net to a certificate for which the `DomainName` field is www\\.example\\.com if users can reach your site by using either name\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Key\\-value pairs that can identify the certificate\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ValidationMethod": "The method you want to use to validate that you own or control the domain associated with a public certificate\\. You can [validate with DNS](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html) or [validate with email](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html)\\. We recommend that you use DNS validation\\. \nIf not specified, this property defaults to email validation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DNS | EMAIL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CertificateManager::Certificate DomainValidationOption": { + "DomainName": "A fully qualified domain name \\(FQDN\\) in the certificate request\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `253` \n*Pattern*: `^(\\*\\.)?(((?!-)[A-Za-z0-9-]{0,62}[A-Za-z0-9])\\.)+((?!-)[A-Za-z0-9-]{1,62}[A-Za-z0-9])$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HostedZoneId": "The `HostedZoneId` option, which is available if you are using Route 53 as your domain registrar, causes ACM to add your CNAME to the domain record\\. Your list of `DomainValidationOptions` must contain one and only one of the domain\\-validation options, and the `HostedZoneId` can be used only when `DNS` is specified as your validation method\\. \nUse the Route 53 `ListHostedZones` API to discover IDs for available hosted zones\\. \nThis option is required for publicly trusted certificates\\. \nThe `ListHostedZones` API returns IDs in the format \"/hostedzone/Z111111QQQQQQQ\", but CloudFormation requires the IDs to be in the format \"Z111111QQQQQQQ\"\\.\nWhen you change your `DomainValidationOptions`, a new resource is created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ValidationDomain": "The domain name to which you want ACM to send validation emails\\. This domain name is the suffix of the email addresses that you want ACM to use\\. This must be the same as the `DomainName` value or a superdomain of the `DomainName` value\\. For example, if you request a certificate for `testing.example.com`, you can specify `example.com` as this value\\. In that case, ACM sends domain validation emails to the following five addresses: \n+ admin@example\\.com\n+ administrator@example\\.com\n+ hostmaster@example\\.com\n+ postmaster@example\\.com\n+ webmaster@example\\.com\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `253` \n*Pattern*: `^(\\*\\.)?(((?!-)[A-Za-z0-9-]{0,62}[A-Za-z0-9])\\.)+((?!-)[A-Za-z0-9-]{1,62}[A-Za-z0-9])$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Chatbot::SlackChannelConfiguration": { + "ConfigurationName": "The name of the configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GuardrailPolicies": "The list of IAM policy ARNs that are applied as channel guardrails\\. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set\\. Currently, only 1 IAM policy is supported\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IamRoleArn": "The ARN of the IAM role that defines the permissions for AWS Chatbot\\. \nThis is a user\\-definworked role that AWS Chatbot will assume\\. This is not the service\\-linked role\\. For more information, see [IAM Policies for AWS Chatbot](https://docs.aws.amazon.com/chatbot/latest/adminguide/chatbot-iam-policies.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoggingLevel": "Specifies the logging level for this configuration\\. This property affects the log entries pushed to Amazon CloudWatch Logs\\. \nLogging levels include `ERROR`, `INFO`, or `NONE`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SlackChannelId": "The ID of the Slack channel\\. \nTo get the ID, open Slack, right click on the channel name in the left pane, then choose Copy Link\\. The channel ID is the 9\\-character string at the end of the URL\\. For example, `ABCBBLZZZ`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SlackWorkspaceId": "The ID of the Slack workspace authorized with AWS Chatbot\\. \nTo get the workspace ID, you must perform the initial authorization flow with Slack in the AWS Chatbot console\\. Then you can copy and paste the workspace ID from the console\\. For more details, see steps 1\\-4 in [Setting Up AWS Chatbot with Slack](https://docs.aws.amazon.com/chatbot/latest/adminguide/setting-up.html#Setup_intro) in the *AWS Chatbot User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SnsTopicArns": "The ARNs of the SNS topics that deliver notifications to AWS Chatbot\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserRoleRequired": "Enables use of a user role requirement in your chat configuration\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cloud9::EnvironmentEC2": { + "AutomaticStopTimeMinutes": "The number of minutes until the running instance is shut down after the environment was last used\\. \n*Required*: No \n*Type*: Integer \n*Maximum*: `20160` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ConnectionType": "The connection type used for connecting to an Amazon EC2 environment\\. Valid values are `CONNECT_SSH` \\(default\\) and `CONNECT_SSM` \\(connected through AWS Systems Manager\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CONNECT_SSH | CONNECT_SSM` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "The description of the environment to create\\. \n*Required*: No \n*Type*: String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageId": "The identifier for the Amazon Machine Image \\(AMI\\) that's used to create the EC2 instance\\. To choose an AMI for the instance, you must specify a valid AMI alias or a valid AWS Systems Manager path\\. \nThe default AMI is used if the parameter isn't explicitly assigned a value in the request\\. \n**AMI aliases ** \n+ **Amazon Linux \\(default\\): `amazonlinux-1-x86_64`** \n+ Amazon Linux 2: `amazonlinux-2-x86_64`\n+ Ubuntu 18\\.04: `ubuntu-18.04-x86_64`\n**SSM paths** \n+ **Amazon Linux \\(default\\): `resolve:ssm:/aws/service/cloud9/amis/amazonlinux-1-x86_64`**\n+ Amazon Linux 2: `resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2-x86_64`\n+ Ubuntu 18\\.04: `resolve:ssm:/aws/service/cloud9/amis/ubuntu-18.04-x86_64`\n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceType": "The type of instance to connect to the environment \\(for example, `t2.micro`\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `5` \n*Maximum*: `20` \n*Pattern*: `^[a-z][1-9][.][a-z0-9]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the environment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OwnerArn": "The Amazon Resource Name \\(ARN\\) of the environment owner\\. This ARN can be the ARN of any AWS Identity and Access Management principal\\. If this value is not specified, the ARN defaults to this environment's creator\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):(iam|sts)::\\d+:(root|(user\\/[\\w+=/:,.@-]{1,64}|federated-user\\/[\\w+=/:,.@-]{2,32}|assumed-role\\/[\\w+=:,.@-]{1,64}\\/[\\w+=,.@-]{1,64}))$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Repositories": "Any AWS CodeCommit source code repositories to be cloned into the development environment\\. \n*Required*: No \n*Type*: List of [Repository](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloud9-environmentec2-repository.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetId": "The ID of the subnet in Amazon Virtual Private Cloud \\(Amazon VPC\\) that AWS Cloud9 will use to communicate with the Amazon Elastic Compute Cloud \\(Amazon EC2\\) instance\\. \n*Required*: No \n*Type*: String \n*Minimum*: `15` \n*Maximum*: `24` \n*Pattern*: `^(subnet-[0-9a-f]{8}|subnet-[0-9a-f]{17})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs that will be associated with the new AWS Cloud9 development environment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cloud9::EnvironmentEC2 Repository": { + "PathComponent": "The path within the development environment's default file system location to clone the AWS CodeCommit repository into\\. For example, `/REPOSITORY_NAME` would clone the repository into the `/home/USER_NAME/environment/REPOSITORY_NAME` directory in the environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RepositoryUrl": "The clone URL of the AWS CodeCommit repository to be cloned\\. For example, for an AWS CodeCommit repository this might be `https://git-codecommit.us-east-2.amazonaws.com/v1/repos/REPOSITORY_NAME`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFormation::CustomResource": { + "ServiceToken": "Only one property is defined by AWS for a custom resource: `ServiceToken`\\. All other properties are defined by the service provider\\.\nThe service token that was given to the template developer by the service provider to access the service, such as an Amazon SNS topic ARN or Lambda function ARN\\. The service token must be from the same Region in which you are creating the stack\\. \nUpdates aren't supported\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CloudFormation::HookDefaultVersion": { + "TypeName": "The name of the hook\\. \nYou must specify either `TypeVersionArn`, or `TypeName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TypeVersionArn": "The version ID of the type configuration\\. \nYou must specify either `TypeVersionArn`, or `TypeName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[A-Za-z0-9-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VersionId": "The version ID of the type specified\\. \nYou must specify either `TypeVersionArn`, or `TypeName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[A-Za-z0-9-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFormation::HookTypeConfig": { + "Configuration": "Specifies the activated hook type configuration, in this AWS account and AWS Region\\. \nYou must specify either `TypeName` and `Configuration` or `TypeARN` and `Configuration`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConfigurationAlias": "Specifies the activated hook type configuration, in this AWS account and AWS Region\\. \nDefaults to `default` alias\\. Hook types currently support default configuration alias\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TypeArn": "The Amazon Resource Number \\(ARN\\) for the hook to set `Configuration` for\\. \nYou must specify either `TypeName` and `Configuration` or `TypeARN` and `Configuration`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TypeName": "The unique name for your hook\\. Specifies a three\\-part namespace for your hook, with a recommended pattern of `Organization::Service::Hook`\\. \nYou must specify either `TypeName` and `Configuration` or `TypeARN` and `Configuration`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `196` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFormation::HookVersion": { + "ExecutionRoleArn": "The Amazon Resource Name \\(ARN\\) of the task execution role that grants the hook permission\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LoggingConfig": "Contains logging configuration information for an extension\\. \n*Required*: No \n*Type*: [LoggingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-hookversion-loggingconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SchemaHandlerPackage": "A URL to the Amazon S3 bucket containing the hook project package that contains the necessary files for the hook you want to register\\. \nFor information on generating a schema handler package for the resource you want to register, see [submit](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html) in the *CloudFormation CLI User Guide for Extension Development*\\. \nThe user registering the resource must be able to access the package in the S3 bucket\\. That's, the user must have [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) permissions for the schema handler package\\. For more information, see [Actions, Resources, and Condition Keys for Amazon S3](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html) in the *AWS Identity and Access Management User Guide*\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TypeName": "The unique name for your hook\\. Specifies a three\\-part namespace for your hook, with a recommended pattern of `Organization::Service::Hook`\\. \nThe following organization namespaces are reserved and can't be used in your hook type names: \n+ `Alexa` \n+ `AMZN` \n+ `Amazon` \n+ `ASK` \n+ `AWS` \n+ `Custom` \n+ `Dev` \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `196` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CloudFormation::HookVersion LoggingConfig": { + "LogGroupName": "The Amazon CloudWatch Logs group to which CloudFormation sends error logging information when invoking the extension's handlers\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LogRoleArn": "The Amazon Resource Name \\(ARN\\) of the role that CloudFormation should assume when sending log entries to CloudWatch Logs\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `arn:.+:iam::[0-9]{12}:role/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CloudFormation::Interface ParameterGroup": { + "Label": "A name for the parameter group\\. \n*Required*: No \n*Type*: [`AWS::CloudFormation::Interface Label`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-interface-label.html)", + "Parameters": "A list of case\\-sensitive parameter logical IDs to include in the group\\. Parameters must already be defined in the `Parameters` section of the template\\. A parameter can be included in only one parameter group\\. \nThe console lists the parameters that you don't associate with a parameter group in alphabetical order in the `Other parameters` group\\. \n*Required*: No \n*Type*: List of String values" + }, + "AWS::CloudFormation::Macro": { + "Description": "A description of the macro\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FunctionName": "The Amazon Resource Name \\(ARN\\) of the underlying AWS Lambda function that you want AWS CloudFormation to invoke when the macro is run\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogGroupName": "The CloudWatch Logs group to which AWS CloudFormation sends error logging information when invoking the macro's underlying AWS Lambda function\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogRoleARN": "The ARN of the role AWS CloudFormation should assume when sending log entries to CloudWatch Logs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the macro\\. The name of the macro must be unique across all macros in the account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CloudFormation::ModuleDefaultVersion": { + "Arn": "The Amazon Resource Name \\(ARN\\) of the module version to set as the default version\\. \nConditional: You must specify either `Arn`, or `ModuleName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `arn:aws[A-Za-z0-9-]{0,64}:cloudformation:[A-Za-z0-9-]{1,64}:[0-9]{12}:type/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ModuleName": "The name of the module\\. \nConditional: You must specify either `Arn`, or `ModuleName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `204` \n*Pattern*: `[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VersionId": "The ID for the specific version of the module\\. \nConditional: You must specify either `Arn`, or `ModuleName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[A-Za-z0-9-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CloudFormation::ModuleVersion": { + "ModuleName": "The name of the module being registered\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `204` \n*Pattern*: `[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ModulePackage": "A URL to the S3 bucket containing the package that contains the template fragment and schema files for the module version to register\\. \nThe user registering the module version must be able to access the module package in the S3 bucket\\. That's, the user needs to have [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) permissions for the package\\. For more information, see [Actions, Resources, and Condition Keys for Amazon S3](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html) in the *AWS Identity and Access Management User Guide*\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CloudFormation::PublicTypeVersion": { + "Arn": "The Amazon Resource Number \\(ARN\\) of the extension\\. \nConditional: You must specify `Arn`, or `TypeName` and `Type`\\. \n*Required*: Conditional \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `arn:aws[A-Za-z0-9-]{0,64}:cloudformation:[A-Za-z0-9-]{1,64}:([0-9]{12})?:type/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LogDeliveryBucket": "The S3 bucket to which CloudFormation delivers the contract test execution logs\\. \nCloudFormation delivers the logs by the time contract testing has completed and the extension has been assigned a test type status of `PASSED` or `FAILED`\\. \nThe user initiating the stack operation must be able to access items in the specified S3 bucket\\. Specifically, the user needs the following permissions: \n+ GetObject\n+ PutObject\nFor more information, see [Actions, Resources, and Condition Keys for Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html) in the *AWS Identity and Access Management User Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `[\\s\\S]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PublicVersionNumber": "The version number to assign to this version of the extension\\. \nUse the following format, and adhere to semantic versioning when assigning a version number to your extension: \n `MAJOR.MINOR.PATCH` \nFor more information, see [Semantic Versioning 2\\.0\\.0](https://semver.org/)\\. \nIf you don't specify a version number, CloudFormation increments the version number by one minor version release\\. \nYou cannot specify a version number the first time you publish a type\\. AWS CloudFormation automatically sets the first version number to be `1.0.0`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `5` \n*Pattern*: `^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(.*)$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "The type of the extension to test\\. \nConditional: You must specify `Arn`, or `TypeName` and `Type`\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `HOOK | MODULE | RESOURCE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TypeName": "The name of the extension to test\\. \nConditional: You must specify `Arn`, or `TypeName` and `Type`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `204` \n*Pattern*: `[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CloudFormation::Publisher": { + "AcceptTermsAndConditions": "Whether you accept the [Terms and Conditions](https://cloudformation-registry-documents.s3.amazonaws.com/Terms_and_Conditions_for_AWS_CloudFormation_Registry_Publishers.pdf) for publishing extensions in the CloudFormation registry\\. You must accept the terms and conditions in order to register to publish public extensions to the CloudFormation registry\\. \nThe default is `false`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ConnectionArn": "If you are using a Bitbucket or GitHub account for identity verification, the Amazon Resource Name \\(ARN\\) for your connection to that account\\. \nFor more information, see [Registering your account to publish CloudFormation extensions](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs) in the *CloudFormation CLI User Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `arn:aws(-[\\w]+)*:.+:.+:[0-9]{12}:.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CloudFormation::ResourceDefaultVersion": { + "TypeName": "The name of the resource\\. \nConditional: You must specify either `TypeVersionArn`, or `TypeName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `204` \n*Pattern*: `[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TypeVersionArn": "The Amazon Resource Name \\(ARN\\) of the resource version\\. \nConditional: You must specify either `TypeVersionArn`, or `TypeName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `arn:aws[A-Za-z0-9-]{0,64}:cloudformation:[A-Za-z0-9-]{1,64}:[0-9]{12}:type/.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VersionId": "The ID of a specific version of the resource\\. The version ID is the value at the end of the Amazon Resource Name \\(ARN\\) assigned to the resource version when it's registered\\. \nConditional: You must specify either `TypeVersionArn`, or `TypeName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[A-Za-z0-9-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFormation::ResourceVersion": { + "ExecutionRoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM role for CloudFormation to assume when invoking the resource\\. If your resource calls AWS APIs in any of its handlers, you must create an *[IAM execution role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* that includes the necessary permissions to call those AWS APIs, and provision that execution role in your account\\. When CloudFormation needs to invoke the resource type handler, CloudFormation assumes this execution role to create a temporary session token, which it then passes to the resource type handler, thereby supplying your resource type with the appropriate credentials\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `arn:.+:iam::[0-9]{12}:role/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LoggingConfig": "Logging configuration information for a resource\\. \n*Required*: No \n*Type*: [LoggingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-resourceversion-loggingconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SchemaHandlerPackage": "A URL to the S3 bucket containing the resource project package that contains the necessary files for the resource you want to register\\. \nFor information on generating a schema handler package for the resource you want to register, see [submit](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html) in the *CloudFormation CLI User Guide*\\. \nThe user registering the resource must be able to access the package in the S3 bucket\\. That is, the user needs to have [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) permissions for the schema handler package\\. For more information, see [Actions, Resources, and Condition Keys for Amazon S3](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html) in the *AWS Identity and Access Management User Guide*\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TypeName": "The name of the resource being registered\\. \nWe recommend that resource names adhere to the following pattern: *company\\_or\\_organization*::*service*::*type*\\. \nThe following organization namespaces are reserved and can't be used in your resource names: \n+ `Alexa`\n+ `AMZN`\n+ `Amazon`\n+ `AWS`\n+ `Custom`\n+ `Dev`\n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `204` \n*Pattern*: `[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CloudFormation::ResourceVersion LoggingConfig": { + "LogGroupName": "The Amazon CloudWatch log group to which CloudFormation sends error logging information when invoking the type's handlers\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LogRoleArn": "The ARN of the role that CloudFormation should assume when sending log entries to CloudWatch logs\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `arn:.+:iam::[0-9]{12}:role/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CloudFormation::Stack": { + "NotificationARNs": "The Amazon Simple Notification Service \\(Amazon SNS\\) topic ARNs to publish stack related events\\. You can find your Amazon SNS topic ARNs using the Amazon SNS console or your Command Line Interface \\(CLI\\)\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "The set value pairs that represent the parameters passed to CloudFormation when this nested stack is created\\. Each parameter has a name corresponding to a parameter defined in the embedded template and a value representing the value that you want to set for the parameter\\. \nIf you use the `Ref` function to pass a parameter value to a nested stack, comma\\-delimited list parameters must be of type `String`\\. In other words, you can't pass values that are of type `CommaDelimitedList` to nested stacks\\.\nConditional\\. Required if the nested stack requires input parameters\\. \nWhether an update causes interruptions depends on the resources that are being updated\\. An update never causes a nested stack to be replaced\\. \n*Required*: Conditional \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Key\\-value pairs to associate with this stack\\. AWS CloudFormation also propagates these tags to the resources created in the stack\\. A maximum number of 50 tags can be specified\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateURL": "Location of file containing the template body\\. The URL must point to a template \\(max size: 460,800 bytes\\) that's located in an Amazon S3 bucket\\. For more information, see [Template anatomy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)\\. \nWhether an update causes interruptions depends on the resources that are being updated\\. An update never causes a nested stack to be replaced\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeoutInMinutes": "The length of time, in minutes, that CloudFormation waits for the nested stack to reach the `CREATE_COMPLETE` state\\. The default is no timeout\\. When 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`, CloudFormation marks the nested stack as failed and rolls back both the nested stack and parent stack\\. \nUpdates aren't supported\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFormation::StackSet": { + "AdministrationRoleARN": "The Amazon Resource Number \\(ARN\\) of the IAM role to use to create this stack set\\. Specify an IAM role only if you are using customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account\\. \nUse customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account\\. For more information, see [Prerequisites: Granting Permissions for Stack Set Operations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html) in the *AWS CloudFormation User Guide*\\. \n*Minimum*: `20` \n*Maximum*: `2048` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutoDeployment": "\\[`Service-managed` permissions\\] Describes whether StackSets automatically deploys to AWS Organizations accounts that are added to a target organization or organizational unit \\(OU\\)\\. \n*Required*: No \n*Type*: [AutoDeployment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-autodeployment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CallAs": "\\[Service\\-managed permissions\\] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account\\. \nBy default, `SELF` is specified\\. Use `SELF` for stack sets with self\\-managed permissions\\. \n+ To create a stack set with service\\-managed permissions while signed in to the management account, specify `SELF`\\.\n+ To create a stack set with service\\-managed permissions while signed in to a delegated administrator account, specify `DELEGATED_ADMIN`\\.", + "Capabilities": "The capabilities that are allowed in the stack set\\. Some stack set templates might include resources that can affect permissions in your AWS account\u2014for example, by creating new AWS Identity and Access Management \\(IAM\\) users\\. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the stack set\\. \n*Minimum*: `1` \n*Maximum*: `1024` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExecutionRoleName": "The name of the IAM execution role to use to create the stack set\\. If you don't specify an execution role, AWS CloudFormation uses the `AWSCloudFormationStackSetExecutionRole` role for the stack set operation\\. \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[a-zA-Z_0-9+=,.@-]+` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ManagedExecution": "Describes whether StackSets performs non\\-conflicting operations concurrently and queues conflicting operations\\. \nWhen active, StackSets performs non\\-conflicting operations concurrently and queues conflicting operations\\. After conflicting operations finish, StackSets starts queued operations in request order\\. \nIf there are already running or queued operations, StackSets queues all incoming operations even if they are non\\-conflicting\\. \nYou can't modify your stack set's execution configuration while there are running or queued operations for that stack set\\.\nWhen inactive \\(default\\), StackSets performs one operation at a time in request order\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OperationPreferences": "The user\\-specified preferences for how AWS CloudFormation performs a stack set operation\\. \n*Required*: No \n*Type*: [OperationPreferences](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-operationpreferences.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "The input parameters for the stack set template\\. \n*Required*: No \n*Type*: List of [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-parameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PermissionModel": "Describes how the IAM roles required for stack set operations are created\\. \n+ With `SELF_MANAGED` permissions, you must create the administrator and execution roles required to deploy to target accounts\\. For more information, see [Grant Self\\-Managed Stack Set Permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html)\\.\n+ With `SERVICE_MANAGED` permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by AWS Organizations\\. For more information, see [Grant Service\\-Managed Stack Set Permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html)\\.\n*Allowed Values*: `SERVICE_MANAGED` \\| `SELF_MANAGED` \nThe `PermissionModel` property is required\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StackInstancesGroup": "A group of stack instances with parameters in some specific accounts and Regions\\. \n*Required*: No \n*Type*: List of [StackInstances](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-stackinstances.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StackSetName": "The name to associate with the stack set\\. The name must be unique in the Region where you create your stack set\\. \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9-]{0,127}$` \nThe `StackSetName` property is required\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The key\\-value pairs to associate with this stack set and the stacks created from it\\. AWS CloudFormation also propagates these tags to supported resources that are created in the stacks\\. A maximum number of 50 tags can be specified\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateBody": "The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes\\. \nYou must include either `TemplateURL` or `TemplateBody` in a StackSet, but you can't use both\\. Dynamic references in the `TemplateBody` may not work correctly in all cases\\. It's recommended to pass templates containing dynamic references through `TemplateUrl` instead\\. \n*Minimum*: `1` \n*Maximum*: `51200` \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateURL": "Location of file containing the template body\\. The URL must point to a template \\(max size: 460,800 bytes\\) that's located in an Amazon S3 bucket\\. \nYou must include either `TemplateURL` or `TemplateBody` in a StackSet, but you can't use both\\. \n*Minimum*: `1` \n*Maximum*: `1024` \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFormation::StackSet AutoDeployment": { + "Enabled": "If set to `true`, StackSets automatically deploys additional stack instances to AWS Organizations accounts that are added to a target organization or organizational unit \\(OU\\) in the specified Regions\\. If an account is removed from a target organization or OU, StackSets deletes stack instances from the account in the specified Regions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetainStacksOnAccountRemoval": "If set to `true`, stack resources are retained when an account is removed from a target organization or OU\\. If set to `false`, stack resources are deleted\\. Specify only if `Enabled` is set to `True`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFormation::StackSet DeploymentTargets": { + "Accounts": "The names of one or more AWS accounts for which you want to deploy stack set updates\\. \n*Pattern*: `^[0-9]{12}$` \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OrganizationalUnitIds": "The organization root ID or organizational unit \\(OU\\) IDs to which StackSets deploys\\. \n*Pattern*: `^(ou-[a-z0-9]{4,32}-[a-z0-9]{8,32}|r-[a-z0-9]{4,32})$` \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFormation::StackSet OperationPreferences": { + "FailureToleranceCount": "The number of accounts, per Region, for which this operation can fail before AWS CloudFormation stops the operation in that Region\\. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions\\. \nConditional: You must specify either `FailureToleranceCount` or `FailureTolerancePercentage` \\(but not both\\)\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FailureTolerancePercentage": "The percentage of accounts, per Region, for which this stack operation can fail before AWS CloudFormation stops the operation in that Region\\. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions\\. \nWhen calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds *down* to the next whole number\\. \nConditional: You must specify either `FailureToleranceCount` or `FailureTolerancePercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxConcurrentCount": "The maximum number of accounts in which to perform this operation at one time\\. This is dependent on the value of `FailureToleranceCount`\\. `MaxConcurrentCount` is at most one more than the `FailureToleranceCount`\\. \nNote that this setting lets you specify the *maximum* for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nConditional: You must specify either `MaxConcurrentCount` or `MaxConcurrentPercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxConcurrentPercentage": "The maximum percentage of accounts in which to perform this operation at one time\\. \nWhen calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number\\. This is true except in cases where rounding down would result is zero\\. In this case, CloudFormation sets the number as one instead\\. \nNote that this setting lets you specify the *maximum* for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nConditional: You must specify either `MaxConcurrentCount` or `MaxConcurrentPercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegionConcurrencyType": "The concurrency type of deploying StackSets operations in Regions, could be in parallel or one Region at a time\\. \n*Allowed values*: `SEQUENTIAL` \\| `PARALLEL` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegionOrder": "The order of the Regions where you want to perform the stack operation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFormation::StackSet Parameter": { + "ParameterKey": "The key associated with the parameter\\. If you don't specify a key and value for a particular parameter, AWS CloudFormation uses the default value that's specified in your template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParameterValue": "The input value associated with the parameter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFormation::StackSet StackInstances": { + "DeploymentTargets": "The AWS `OrganizationalUnitIds` or `Accounts` for which to create stack instances in the specified Regions\\. \n*Required*: Yes \n*Type*: [DeploymentTargets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-deploymenttargets.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParameterOverrides": "A list of stack set parameters whose values you want to override in the selected stack instances\\. \n*Required*: No \n*Type*: List of [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-parameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Regions": "The names of one or more Regions where you want to create stack instances using the specified AWS accounts\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFormation::TypeActivation": { + "AutoUpdate": "Whether to automatically update the extension in this account and region when a new *minor* version is published by the extension publisher\\. Major versions released by the publisher must be manually updated\\. \nThe default is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExecutionRoleArn": "The name of the IAM execution role to use to activate the extension\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `arn:.+:iam::[0-9]{12}:role/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LoggingConfig": "Specifies logging configuration information for an extension\\. \n*Required*: No \n*Type*: [LoggingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-typeactivation-loggingconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MajorVersion": "The major version of this extension you want to activate, if multiple major versions are available\\. The default is the latest major version\\. CloudFormation uses the latest available *minor* version of the major version selected\\. \nYou can specify `MajorVersion` or `VersionBump`, but not both\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PublicTypeArn": "The Amazon Resource Number \\(ARN\\) of the public extension\\. \nConditional: You must specify `PublicTypeArn`, or `TypeName`, `Type`, and `PublisherId`\\. \n*Required*: Conditional \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `arn:aws[A-Za-z0-9-]{0,64}:cloudformation:[A-Za-z0-9-]{1,64}::type/.+/[0-9a-zA-Z]{12,40}/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PublisherId": "The ID of the extension publisher\\. \nConditional: You must specify `PublicTypeArn`, or `TypeName`, `Type`, and `PublisherId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `40` \n*Pattern*: `[0-9a-zA-Z]{12,40}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "The extension type\\. \nConditional: You must specify `PublicTypeArn`, or `TypeName`, `Type`, and `PublisherId`\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `HOOK | MODULE | RESOURCE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TypeName": "The name of the extension\\. \nConditional: You must specify `PublicTypeArn`, or `TypeName`, `Type`, and `PublisherId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `204` \n*Pattern*: `[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TypeNameAlias": "An alias to assign to the public extension, in this account and region\\. If you specify an alias for the extension, CloudFormation treats the alias as the extension type name within this account and region\\. You must use the alias to refer to the extension in your templates, API calls, and CloudFormation console\\. \nAn extension alias must be unique within a given account and region\\. You can activate the same public resource multiple times in the same account and region, using different type name aliases\\. \n*Required*: No \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `204` \n*Pattern*: `[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VersionBump": "Manually updates a previously\\-activated type to a new major or minor version, if available\\. You can also use this parameter to update the value of `AutoUpdate`\\. \n+ `MAJOR`: CloudFormation updates the extension to the newest major version, if one is available\\.\n+ `MINOR`: CloudFormation updates the extension to the newest minor version, if one is available\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `MAJOR | MINOR` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFormation::TypeActivation LoggingConfig": { + "LogGroupName": "The Amazon CloudWatch Logs group to which CloudFormation sends error logging information when invoking the extension's handlers\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LogRoleArn": "The Amazon Resource Name \\(ARN\\) of the role that CloudFormation should assume when sending log entries to CloudWatch Logs\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `arn:.+:iam::[0-9]{12}:role/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CloudFormation::WaitCondition": { + "Count": "The number of success signals that CloudFormation must receive before it continues the stack creation process\\. When the wait condition receives the requisite number of success signals, CloudFormation resumes the creation of the stack\\. If the wait condition doesn't receive the specified number of success signals before the Timeout period expires, CloudFormation assumes that the wait condition has failed and rolls the stack back\\. \nUpdates aren't supported\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Handle": "A reference to the wait condition handle used to signal this wait condition\\. Use the `Ref` intrinsic function to specify an [AWS::CloudFormation::WaitConditionHandle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitconditionhandle.html) resource\\. \nAnytime you add a WaitCondition resource during a stack update, you must associate the wait condition with a new WaitConditionHandle resource\\. Don't reuse an old wait condition handle that has already been defined in the template\\. If you reuse a wait condition handle, the wait condition might evaluate old signals from a previous create or update stack command\\. \nUpdates aren't supported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Timeout": "The length of time \\(in seconds\\) to wait for the number of signals that the `Count` property specifies\\. `Timeout` is a minimum\\-bound property, meaning the timeout occurs no sooner than the time you specify, but can occur shortly thereafter\\. The maximum time that can be specified for this property is 12 hours \\(43200 seconds\\)\\. \nUpdates aren't supported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::CachePolicy": { + "CachePolicyConfig": "The cache policy configuration\\. \n*Required*: Yes \n*Type*: [CachePolicyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cachepolicyconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::CachePolicy CachePolicyConfig": { + "Comment": "A comment to describe the cache policy\\. The comment cannot be longer than 128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultTTL": "The default amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated\\. CloudFront uses this value as the object\u2019s time to live \\(TTL\\) only when the origin does *not* send `Cache-Control` or `Expires` headers with the object\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \nThe default value for this field is 86400 seconds \\(one day\\)\\. If the value of `MinTTL` is more than 86400 seconds, then the default value for this field is the same as the value of `MinTTL`\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxTTL": "The maximum amount of time, in seconds, that objects stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated\\. CloudFront uses this value only when the origin sends `Cache-Control` or `Expires` headers with the object\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \nThe default value for this field is 31536000 seconds \\(one year\\)\\. If the value of `MinTTL` or `DefaultTTL` is more than 31536000 seconds, then the default value for this field is the same as the value of `DefaultTTL`\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinTTL": "The minimum amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A unique name to identify the cache policy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParametersInCacheKeyAndForwardedToOrigin": "The HTTP headers, cookies, and URL query strings to include in the cache key\\. The values included in the cache key are automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [ParametersInCacheKeyAndForwardedToOrigin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::CachePolicy CookiesConfig": { + "CookieBehavior": "Determines whether any cookies in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Cookies in viewer requests are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any cookies that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The cookies in viewer requests that are listed in the `CookieNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All cookies in viewer requests that are * **not** * listed in the `CookieNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All cookies in viewer requests are included in the cache key and are automatically included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Cookies": "Contains a list of cookie names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::CachePolicy HeadersConfig": { + "HeaderBehavior": "Determines whether any HTTP headers are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 HTTP headers are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any headers that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The HTTP headers that are listed in the `Headers` type are included in the cache key and are automatically included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Headers": "Contains a list of HTTP header names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::CachePolicy ParametersInCacheKeyAndForwardedToOrigin": { + "CookiesConfig": "An object that determines whether any cookies in viewer requests \\(and if so, which cookies\\) are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [CookiesConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cookiesconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableAcceptEncodingBrotli": "A flag that can affect whether the `Accept-Encoding` HTTP header is included in the cache key and included in requests that CloudFront sends to the origin\\. \nThis field is related to the `EnableAcceptEncodingGzip` field\\. If one or both of these fields is `true` *and* the viewer request includes the `Accept-Encoding` header, then CloudFront does the following: \n+ Normalizes the value of the viewer\u2019s `Accept-Encoding` header\n+ Includes the normalized header in the cache key\n+ Includes the normalized header in the request to the origin, if a request is necessary\nFor more information, see [Compression support](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-policy-compressed-objects) in the *Amazon CloudFront Developer Guide*\\. \nIf you set this value to `true`, and this cache behavior also has an origin request policy attached, do not include the `Accept-Encoding` header in the origin request policy\\. CloudFront always includes the `Accept-Encoding` header in origin requests when the value of this field is `true`, so including this header in an origin request policy has no effect\\. \nIf both of these fields are `false`, then CloudFront treats the `Accept-Encoding` header the same as any other HTTP header in the viewer request\\. By default, it\u2019s not included in the cache key and it\u2019s not included in origin requests\\. In this case, you can manually add `Accept-Encoding` to the headers whitelist like any other HTTP header\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableAcceptEncodingGzip": "A flag that can affect whether the `Accept-Encoding` HTTP header is included in the cache key and included in requests that CloudFront sends to the origin\\. \nThis field is related to the `EnableAcceptEncodingBrotli` field\\. If one or both of these fields is `true` *and* the viewer request includes the `Accept-Encoding` header, then CloudFront does the following: \n+ Normalizes the value of the viewer\u2019s `Accept-Encoding` header\n+ Includes the normalized header in the cache key\n+ Includes the normalized header in the request to the origin, if a request is necessary\nFor more information, see [Compression support](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-policy-compressed-objects) in the *Amazon CloudFront Developer Guide*\\. \nIf you set this value to `true`, and this cache behavior also has an origin request policy attached, do not include the `Accept-Encoding` header in the origin request policy\\. CloudFront always includes the `Accept-Encoding` header in origin requests when the value of this field is `true`, so including this header in an origin request policy has no effect\\. \nIf both of these fields are `false`, then CloudFront treats the `Accept-Encoding` header the same as any other HTTP header in the viewer request\\. By default, it\u2019s not included in the cache key and it\u2019s not included in origin requests\\. In this case, you can manually add `Accept-Encoding` to the headers whitelist like any other HTTP header\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HeadersConfig": "An object that determines whether any HTTP headers \\(and if so, which headers\\) are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [HeadersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-headersconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryStringsConfig": "An object that determines whether any URL query strings in viewer requests \\(and if so, which query strings\\) are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [QueryStringsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-querystringsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::CachePolicy QueryStringsConfig": { + "QueryStringBehavior": "Determines whether any URL query strings in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Query strings in viewer requests are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any query strings that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The query strings in viewer requests that are listed in the `QueryStringNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All query strings in viewer requests that are * **not** * listed in the `QueryStringNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All query strings in viewer requests are included in the cache key and are automatically included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryStrings": "Contains a list of query string names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::CloudFrontOriginAccessIdentity": { + "CloudFrontOriginAccessIdentityConfig": "The current configuration information for the identity\\. \n*Required*: Yes \n*Type*: [CloudFrontOriginAccessIdentityConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cloudfrontoriginaccessidentity-cloudfrontoriginaccessidentityconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::CloudFrontOriginAccessIdentity CloudFrontOriginAccessIdentityConfig": { + "Comment": "A comment to describe the origin access identity\\. The comment cannot be longer than 128 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution": { + "DistributionConfig": "The current configuration information for the distribution\\. Send a `GET` request to the `/CloudFront API version/distribution ID/config` resource\\. \n*Required*: Yes \n*Type*: [DistributionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A complex type that contains zero or more `Tag` elements\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution CacheBehavior": { + "AllowedMethods": "A complex type that controls which HTTP methods CloudFront processes and forwards to your Amazon S3 bucket or your custom origin\\. There are three choices: \n+ CloudFront forwards only `GET` and `HEAD` requests\\.\n+ CloudFront forwards only `GET`, `HEAD`, and `OPTIONS` requests\\.\n+ CloudFront forwards `GET, HEAD, OPTIONS, PUT, PATCH, POST`, and `DELETE` requests\\.\nIf you pick the third choice, you may need to restrict access to your Amazon S3 bucket or to your custom origin so users can't perform operations that you don't want them to\\. For example, you might not want users to have permissions to delete objects from your origin\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CachePolicyId": "The unique identifier of the cache policy that is attached to this cache behavior\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nA `CacheBehavior` must include either a `CachePolicyId` or `ForwardedValues`\\. We recommend that you use a `CachePolicyId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CachedMethods": "A complex type that controls whether CloudFront caches the response to requests using the specified HTTP methods\\. There are two choices: \n+ CloudFront caches responses to `GET` and `HEAD` requests\\.\n+ CloudFront caches responses to `GET`, `HEAD`, and `OPTIONS` requests\\.\nIf you pick the second choice for your Amazon S3 Origin, you may need to forward Access\\-Control\\-Request\\-Method, Access\\-Control\\-Request\\-Headers, and Origin headers for the responses to be cached correctly\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Compress": "Whether you want CloudFront to automatically compress certain files for this cache behavior\\. If so, specify true; if not, specify false\\. For more information, see [Serving Compressed Files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultTTL": "This field is deprecated\\. We recommend that you use the `DefaultTTL` field in a cache policy instead of this field\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nThe default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated\\. The value that you specify applies only when your origin does not add HTTP headers such as `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to objects\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FieldLevelEncryptionId": "The value of `ID` for the field\\-level encryption configuration that you want CloudFront to use for encrypting specific fields of data for this cache behavior\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ForwardedValues": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to include values in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send values to the origin but not include them in the cache key, use an origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nA `CacheBehavior` must include either a `CachePolicyId` or `ForwardedValues`\\. We recommend that you use a `CachePolicyId`\\. \nA complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers\\. \n*Required*: Conditional \n*Type*: [ForwardedValues](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-forwardedvalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FunctionAssociations": "A list of CloudFront functions that are associated with this cache behavior\\. CloudFront functions must be published to the `LIVE` stage to associate them with a cache behavior\\. \n*Required*: No \n*Type*: List of [FunctionAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-functionassociation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LambdaFunctionAssociations": "A complex type that contains zero or more Lambda@Edge function associations for a cache behavior\\. \n*Required*: No \n*Type*: List of [LambdaFunctionAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-lambdafunctionassociation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxTTL": "This field is deprecated\\. We recommend that you use the `MaxTTL` field in a cache policy instead of this field\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nThe maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated\\. The value that you specify applies only when your origin adds HTTP headers such as `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to objects\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinTTL": "This field is deprecated\\. We recommend that you use the `MinTTL` field in a cache policy instead of this field\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nThe minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated\\. For more information, see [ Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the * Amazon CloudFront Developer Guide*\\. \nYou must specify `0` for `MinTTL` if you configure CloudFront to forward all headers to your origin \\(under `Headers`, if you specify `1` for `Quantity` and `*` for `Name`\\)\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OriginRequestPolicyId": "The unique identifier of the origin request policy that is attached to this cache behavior\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PathPattern": "The pattern \\(for example, `images/*.jpg`\\) that specifies which requests to apply the behavior to\\. When CloudFront receives a viewer request, the requested path is compared with path patterns in the order in which cache behaviors are listed in the distribution\\. \nYou can optionally include a slash \\(`/`\\) at the beginning of the path pattern\\. For example, `/images/*.jpg`\\. CloudFront behavior is the same with or without the leading `/`\\.\nThe path pattern for the default cache behavior is `*` and cannot be changed\\. If the request for an object does not match the path pattern for any cache behaviors, CloudFront applies the behavior in the default cache behavior\\. \nFor more information, see [Path Pattern](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesPathPattern) in the * Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RealtimeLogConfigArn": "The Amazon Resource Name \\(ARN\\) of the real\\-time log configuration that is attached to this cache behavior\\. For more information, see [Real\\-time logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResponseHeadersPolicyId": "The identifier for a response headers policy\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SmoothStreaming": "Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior\\. If so, specify `true`; if not, specify `false`\\. If you specify `true` for `SmoothStreaming`, you can still distribute other content using this cache behavior if the content matches the value of `PathPattern`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetOriginId": "The value of `ID` for the origin that you want CloudFront to route requests to when they match this cache behavior\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TrustedKeyGroups": "A list of key groups that CloudFront can use to validate signed URLs or signed cookies\\. \nWhen a cache behavior contains trusted key groups, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior\\. The URLs or cookies must be signed with a private key whose corresponding public key is in the key group\\. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature\\. For more information, see [Serving private content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TrustedSigners": "We recommend using `TrustedKeyGroups` instead of `TrustedSigners`\\.\nA list of AWS account IDs whose public keys CloudFront can use to validate signed URLs or signed cookies\\. \nWhen a cache behavior contains trusted signers, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior\\. The URLs or cookies must be signed with the private key of a CloudFront key pair in the trusted signer\u2019s AWS account\\. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature\\. For more information, see [Serving private content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ViewerProtocolPolicy": "The protocol that viewers can use to access the files in the origin specified by `TargetOriginId` when a request matches the path pattern in `PathPattern`\\. You can specify the following options: \n+ `allow-all`: Viewers can use HTTP or HTTPS\\.\n+ `redirect-to-https`: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 \\(Moved Permanently\\) to the viewer along with the HTTPS URL\\. The viewer then resubmits the request using the new URL\\. \n+ `https-only`: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 \\(Forbidden\\)\\. \nFor more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*\\. \nThe only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object\\. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects\u2019 cache because cached objects are protocol agnostic\\. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously\\. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `allow-all | https-only | redirect-to-https` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution Cookies": { + "Forward": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. \nIf you want to include cookies in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send cookies to the origin but not include them in the cache key, use origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*\\. \nSpecifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the `WhitelistedNames` complex type\\. \nAmazon S3 doesn't process cookies\\. When the cache behavior is forwarding requests to an Amazon S3 origin, specify none for the `Forward` element\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WhitelistedNames": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. \nIf you want to include cookies in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send cookies to the origin but not include them in the cache key, use an origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*\\. \nRequired if you specify `whitelist` for the value of `Forward`\\. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward selected cookies, the names of those cookies\\. \nIf you specify `all` or `none` for the value of `Forward`, omit `WhitelistedNames`\\. If you change the value of `Forward` from `whitelist` to `all` or `none` and you don't delete the `WhitelistedNames` element and its child elements, CloudFront deletes them automatically\\. \nFor the current limit on the number of cookie names that you can whitelist for each cache behavior, see [ CloudFront Limits](https://docs.aws.amazon.com/general/latest/gr/xrefaws_service_limits.html#limits_cloudfront) in the * AWS General Reference*\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution CustomErrorResponse": { + "ErrorCachingMinTTL": "The minimum amount of time, in seconds, that you want CloudFront to cache the HTTP status code specified in `ErrorCode`\\. When this time period has elapsed, CloudFront queries your origin to see whether the problem that caused the error has been resolved and the requested object is now available\\. \nFor more information, see [Customizing Error Responses](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ErrorCode": "The HTTP status code for which you want to specify a custom error page and/or a caching duration\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResponseCode": "The HTTP status code that you want CloudFront to return to the viewer along with the custom error page\\. There are a variety of reasons that you might want CloudFront to return a status code different from the status code that your origin returned to CloudFront, for example: \n+ Some Internet devices \\(some firewalls and corporate proxies, for example\\) intercept HTTP 4xx and 5xx and prevent the response from being returned to the viewer\\. If you substitute `200`, the response typically won't be intercepted\\.\n+ If you don't care about distinguishing among different client errors or server errors, you can specify `400` or `500` as the `ResponseCode` for all 4xx or 5xx errors\\.\n+ You might want to return a `200` status code \\(OK\\) and static website so your customers don't know that your website is down\\.\nIf you specify a value for `ResponseCode`, you must also specify a value for `ResponsePagePath`\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResponsePagePath": "The path to the custom error page that you want CloudFront to return to a viewer when your origin returns the HTTP status code specified by `ErrorCode`, for example, `/4xx-errors/403-forbidden.html`\\. If you want to store your objects and your custom error pages in different locations, your distribution must include a cache behavior for which the following is true: \n+ The value of `PathPattern` matches the path to your custom error messages\\. For example, suppose you saved custom error pages for 4xx errors in an Amazon S3 bucket in a directory named `/4xx-errors`\\. Your distribution must include a cache behavior for which the path pattern routes requests for your custom error pages to that location, for example, `/4xx-errors/*`\\. \n+ The value of `TargetOriginId` specifies the value of the `ID` element for the origin that contains your custom error pages\\.\nIf you specify a value for `ResponsePagePath`, you must also specify a value for `ResponseCode`\\. \nWe recommend that you store custom error pages in an Amazon S3 bucket\\. If you store custom error pages on an HTTP server and the server starts to return 5xx errors, CloudFront can't get the files that you want to return to viewers because the origin server is unavailable\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution CustomOriginConfig": { + "HTTPPort": "The HTTP port that CloudFront uses to connect to the origin\\. Specify the HTTP port that the origin listens on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HTTPSPort": "The HTTPS port that CloudFront uses to connect to the origin\\. Specify the HTTPS port that the origin listens on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OriginKeepaliveTimeout": "Specifies how long, in seconds, CloudFront persists its connection to the origin\\. The minimum timeout is 1 second, the maximum is 60 seconds, and the default \\(if you don\u2019t specify otherwise\\) is 5 seconds\\. \nFor more information, see [Origin Keep\\-alive Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginKeepaliveTimeout) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OriginProtocolPolicy": "Specifies the protocol \\(HTTP or HTTPS\\) that CloudFront uses to connect to the origin\\. Valid values are: \n+ `http-only` \u2013 CloudFront always uses HTTP to connect to the origin\\.\n+ `match-viewer` \u2013 CloudFront connects to the origin using the same protocol that the viewer used to connect to CloudFront\\.\n+ `https-only` \u2013 CloudFront always uses HTTPS to connect to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `http-only | https-only | match-viewer` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OriginReadTimeout": "Specifies how long, in seconds, CloudFront waits for a response from the origin\\. This is also known as the *origin response timeout*\\. The minimum timeout is 1 second, the maximum is 60 seconds, and the default \\(if you don\u2019t specify otherwise\\) is 30 seconds\\. \nFor more information, see [Origin Response Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OriginSSLProtocols": "Specifies the minimum SSL/TLS protocol that CloudFront uses when connecting to your origin over HTTPS\\. Valid values include `SSLv3`, `TLSv1`, `TLSv1.1`, and `TLSv1.2`\\. \nFor more information, see [Minimum Origin SSL Protocol](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginSSLProtocols) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution DefaultCacheBehavior": { + "AllowedMethods": "A complex type that controls which HTTP methods CloudFront processes and forwards to your Amazon S3 bucket or your custom origin\\. There are three choices: \n+ CloudFront forwards only `GET` and `HEAD` requests\\.\n+ CloudFront forwards only `GET`, `HEAD`, and `OPTIONS` requests\\.\n+ CloudFront forwards `GET, HEAD, OPTIONS, PUT, PATCH, POST`, and `DELETE` requests\\.\nIf you pick the third choice, you may need to restrict access to your Amazon S3 bucket or to your custom origin so users can't perform operations that you don't want them to\\. For example, you might not want users to have permissions to delete objects from your origin\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CachePolicyId": "The unique identifier of the cache policy that is attached to the default cache behavior\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nA `DefaultCacheBehavior` must include either a `CachePolicyId` or `ForwardedValues`\\. We recommend that you use a `CachePolicyId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CachedMethods": "A complex type that controls whether CloudFront caches the response to requests using the specified HTTP methods\\. There are two choices: \n+ CloudFront caches responses to `GET` and `HEAD` requests\\.\n+ CloudFront caches responses to `GET`, `HEAD`, and `OPTIONS` requests\\.\nIf you pick the second choice for your Amazon S3 Origin, you may need to forward Access\\-Control\\-Request\\-Method, Access\\-Control\\-Request\\-Headers, and Origin headers for the responses to be cached correctly\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Compress": "Whether you want CloudFront to automatically compress certain files for this cache behavior\\. If so, specify `true`; if not, specify `false`\\. For more information, see [Serving Compressed Files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultTTL": "This field is deprecated\\. We recommend that you use the `DefaultTTL` field in a cache policy instead of this field\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nThe default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated\\. The value that you specify applies only when your origin does not add HTTP headers such as `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to objects\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FieldLevelEncryptionId": "The value of `ID` for the field\\-level encryption configuration that you want CloudFront to use for encrypting specific fields of data for the default cache behavior\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ForwardedValues": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to include values in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send values to the origin but not include them in the cache key, use an origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nA `DefaultCacheBehavior` must include either a `CachePolicyId` or `ForwardedValues`\\. We recommend that you use a `CachePolicyId`\\. \nA complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers\\. \n*Required*: Conditional \n*Type*: [ForwardedValues](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-forwardedvalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FunctionAssociations": "A list of CloudFront functions that are associated with this cache behavior\\. CloudFront functions must be published to the `LIVE` stage to associate them with a cache behavior\\. \n*Required*: No \n*Type*: List of [FunctionAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-functionassociation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LambdaFunctionAssociations": "A complex type that contains zero or more Lambda@Edge function associations for a cache behavior\\. \n*Required*: No \n*Type*: List of [LambdaFunctionAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-lambdafunctionassociation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxTTL": "This field is deprecated\\. We recommend that you use the `MaxTTL` field in a cache policy instead of this field\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nThe maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated\\. The value that you specify applies only when your origin adds HTTP headers such as `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to objects\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinTTL": "This field is deprecated\\. We recommend that you use the `MinTTL` field in a cache policy instead of this field\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nThe minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \nYou must specify `0` for `MinTTL` if you configure CloudFront to forward all headers to your origin \\(under `Headers`, if you specify `1` for `Quantity` and `*` for `Name`\\)\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OriginRequestPolicyId": "The unique identifier of the origin request policy that is attached to the default cache behavior\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RealtimeLogConfigArn": "The Amazon Resource Name \\(ARN\\) of the real\\-time log configuration that is attached to this cache behavior\\. For more information, see [Real\\-time logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResponseHeadersPolicyId": "The identifier for a response headers policy\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SmoothStreaming": "Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior\\. If so, specify `true`; if not, specify `false`\\. If you specify `true` for `SmoothStreaming`, you can still distribute other content using this cache behavior if the content matches the value of `PathPattern`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetOriginId": "The value of `ID` for the origin that you want CloudFront to route requests to when they use the default cache behavior\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TrustedKeyGroups": "A list of key groups that CloudFront can use to validate signed URLs or signed cookies\\. \nWhen a cache behavior contains trusted key groups, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior\\. The URLs or cookies must be signed with a private key whose corresponding public key is in the key group\\. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature\\. For more information, see [Serving private content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TrustedSigners": "We recommend using `TrustedKeyGroups` instead of `TrustedSigners`\\.\nA list of AWS account IDs whose public keys CloudFront can use to validate signed URLs or signed cookies\\. \nWhen a cache behavior contains trusted signers, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior\\. The URLs or cookies must be signed with the private key of a CloudFront key pair in a trusted signer\u2019s AWS account\\. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature\\. For more information, see [Serving private content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ViewerProtocolPolicy": "The protocol that viewers can use to access the files in the origin specified by `TargetOriginId` when a request matches the path pattern in `PathPattern`\\. You can specify the following options: \n+ `allow-all`: Viewers can use HTTP or HTTPS\\.\n+ `redirect-to-https`: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 \\(Moved Permanently\\) to the viewer along with the HTTPS URL\\. The viewer then resubmits the request using the new URL\\.\n+ `https-only`: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 \\(Forbidden\\)\\.\nFor more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*\\. \nThe only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object\\. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects\u2019 cache because cached objects are protocol agnostic\\. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously\\. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `allow-all | https-only | redirect-to-https` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution DistributionConfig": { + "Aliases": "A complex type that contains information about CNAMEs \\(alternate domain names\\), if any, for this distribution\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CNAMEs": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CacheBehaviors": "A complex type that contains zero or more `CacheBehavior` elements\\. \n*Required*: No \n*Type*: List of [CacheBehavior](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Comment": "An optional comment to describe the distribution\\. The comment cannot be longer than 128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomErrorResponses": "A complex type that controls the following: \n+ Whether CloudFront replaces HTTP status codes in the 4xx and 5xx range with custom error messages before returning the response to the viewer\\.\n+ How long CloudFront caches HTTP status codes in the 4xx and 5xx range\\.\nFor more information about custom error pages, see [Customizing Error Responses](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of [CustomErrorResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customerrorresponse.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomOrigin": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [LegacyCustomOrigin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacycustomorigin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultCacheBehavior": "A complex type that describes the default cache behavior if you don't specify a `CacheBehavior` element or if files don't match any of the values of `PathPattern` in `CacheBehavior` elements\\. You must create exactly one default cache behavior\\. \n*Required*: No \n*Type*: [DefaultCacheBehavior](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultRootObject": "The object that you want CloudFront to request from your origin \\(for example, `index.html`\\) when a viewer requests the root URL for your distribution \\(`http://www.example.com`\\) instead of an object in your distribution \\(`http://www.example.com/product-description.html`\\)\\. Specifying a default root object avoids exposing the contents of your distribution\\. \nSpecify only the object name, for example, `index.html`\\. Don't add a `/` before the object name\\. \nIf you don't want to specify a default root object when you create a distribution, include an empty `DefaultRootObject` element\\. \nTo delete the default root object from an existing distribution, update the distribution configuration and include an empty `DefaultRootObject` element\\. \nTo replace the default root object, update the distribution configuration and specify the new object\\. \nFor more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "From this field, you can enable or disable the selected distribution\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HttpVersion": "\\(Optional\\) Specify the maximum HTTP version that you want viewers to use to communicate with CloudFront\\. The default value for new web distributions is `http1.1`\\. \nFor viewers and CloudFront to use HTTP/2, viewers must support TLS 1\\.2 or later, and must support server name identification \\(SNI\\)\\. \nIn general, configuring CloudFront to communicate with viewers using HTTP/2 reduces latency\\. You can improve performance by optimizing for HTTP/2\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `http1.1 | http2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IPV6Enabled": "If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify `true`\\. If you specify `false`, CloudFront responds to IPv6 DNS requests with the DNS response code `NOERROR` and with no IP addresses\\. This allows viewers to submit a second request, for an IPv4 address for your distribution\\. \nIn general, you should enable IPv6 if you have users on IPv6 networks who want to access your content\\. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the `IpAddress` parameter to restrict the IP addresses that can access your content, don't enable IPv6\\. If you want to restrict access to some content by IP address and not restrict access to other content \\(or restrict access but not by IP address\\), you can create two distributions\\. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html) in the *Amazon CloudFront Developer Guide*\\. \nIf you're using an Amazon Route\u00a053 AWS Integration alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true: \n+ You enable IPv6 for the distribution\n+ You're using alternate domain names in the URLs for your objects\nFor more information, see [Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html) in the * Amazon Route\u00a053 AWS Integration Developer Guide*\\. \nIf you created a CNAME resource record set, either with Amazon Route\u00a053 AWS Integration or with another DNS service, you don't need to make any changes\\. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Logging": "A complex type that controls whether access logs are written for the distribution\\. \nFor more information about logging, see [Access Logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: [Logging](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-logging.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OriginGroups": "A complex type that contains information about origin groups for this distribution\\. \n*Required*: No \n*Type*: [OriginGroups](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroups.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Origins": "A complex type that contains information about origins for this distribution\\. \n*Required*: No \n*Type*: List of [Origin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PriceClass": "The price class that corresponds with the maximum price that you want to pay for CloudFront service\\. If you specify `PriceClass_All`, CloudFront responds to requests for your objects from all CloudFront edge locations\\. \nIf you specify a price class other than `PriceClass_All`, CloudFront serves your objects from the CloudFront edge location that has the lowest latency among the edge locations in your price class\\. Viewers who are in or near regions that are excluded from your specified price class may encounter slower performance\\. \nFor more information about price classes, see [Choosing the Price Class for a CloudFront Distribution](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PriceClass.html) in the *Amazon CloudFront Developer Guide*\\. For information about CloudFront pricing, including how price classes \\(such as Price Class 100\\) map to CloudFront regions, see [Amazon CloudFront Pricing](http://aws.amazon.com/cloudfront/pricing/)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PriceClass_100 | PriceClass_200 | PriceClass_All` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Restrictions": "A complex type that identifies ways in which you want to restrict distribution of your content\\. \n*Required*: No \n*Type*: [Restrictions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-restrictions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Origin": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [LegacyS3Origin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacys3origin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ViewerCertificate": "A complex type that determines the distribution\u2019s SSL/TLS configuration for communicating with viewers\\. \n*Required*: No \n*Type*: [ViewerCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WebACLId": "A unique identifier that specifies the AWS WAF web ACL, if any, to associate with this distribution\\. To specify a web ACL created using the latest version of AWS WAF, use the ACL ARN, for example `arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a`\\. To specify a web ACL created using AWS WAF Classic, use the ACL ID, for example `473e64fd-f30b-4765-81a0-62ad96dd167a`\\. \n AWS WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content\\. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code \\(Forbidden\\)\\. You can also configure CloudFront to return a custom error page when a request is blocked\\. For more information about AWS WAF, see the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution ForwardedValues": { + "Cookies": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. \nIf you want to include cookies in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send cookies to the origin but not include them in the cache key, use an origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*\\. \nA complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones\\. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: [Cookies](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cookies.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Headers": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. \nIf you want to include headers in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send headers to the origin but not include them in the cache key, use an origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*\\. \nA complex type that specifies the `Headers`, if any, that you want CloudFront to forward to the origin for this cache behavior \\(whitelisted headers\\)\\. For the headers that you specify, CloudFront also caches separate versions of a specified object that is based on the header values in viewer requests\\. \nFor more information, see [ Caching Content Based on Request Headers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryString": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. \nIf you want to include query strings in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send query strings to the origin but not include them in the cache key, use an origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*\\. \nIndicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters\\. CloudFront behavior depends on the value of `QueryString` and on the values that you specify for `QueryStringCacheKeys`, if any: \nIf you specify true for `QueryString` and you don't specify any values for `QueryStringCacheKeys`, CloudFront forwards all query string parameters to the origin and caches based on all query string parameters\\. Depending on how many query string parameters and values you have, this can adversely affect performance because CloudFront must forward more requests to the origin\\. \nIf you specify true for `QueryString` and you specify one or more values for `QueryStringCacheKeys`, CloudFront forwards all query string parameters to the origin, but it only caches based on the query string parameters that you specify\\. \nIf you specify false for `QueryString`, CloudFront doesn't forward any query string parameters to the origin, and doesn't cache based on query string parameters\\. \nFor more information, see [Configuring CloudFront to Cache Based on Query String Parameters](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryStringCacheKeys": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. \nIf you want to include query strings in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send query strings to the origin but not include them in the cache key, use an origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*\\. \nA complex type that contains information about the query string parameters that you want CloudFront to use for caching for this cache behavior\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution FunctionAssociation": { + "EventType": "The event type of the function, either `viewer-request` or `viewer-response`\\. You cannot use origin\\-facing event types \\(`origin-request` and `origin-response`\\) with a CloudFront function\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `origin-request | origin-response | viewer-request | viewer-response` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FunctionARN": "The Amazon Resource Name \\(ARN\\) of the function\\. \n*Required*: No \n*Type*: String \n*Maximum*: `108` \n*Pattern*: `arn:aws:cloudfront::[0-9]{12}:function\\/[a-zA-Z0-9-_]{1,64}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution GeoRestriction": { + "Locations": "A complex type that contains a `Location` element for each country in which you want CloudFront either to distribute your content \\(`whitelist`\\) or not distribute your content \\(`blacklist`\\)\\. \nThe `Location` element is a two\\-letter, uppercase country code for a country that you want to include in your `blacklist` or `whitelist`\\. Include one `Location` element for each country\\. \nCloudFront and `MaxMind` both use `ISO 3166` country codes\\. For the current list of countries and the corresponding codes, see `ISO 3166-1-alpha-2` code on the *International Organization for Standardization* website\\. You can also refer to the country list on the CloudFront console, which includes both country names and codes\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RestrictionType": "The method that you want to use to restrict distribution of your content by country: \n+ `none`: No geo restriction is enabled, meaning access to content is not restricted by client geo location\\.\n+ `blacklist`: The `Location` elements specify the countries in which you don't want CloudFront to distribute your content\\.\n+ `whitelist`: The `Location` elements specify the countries in which you want CloudFront to distribute your content\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `blacklist | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution LambdaFunctionAssociation": { + "EventType": "Specifies the event type that triggers a Lambda@Edge function invocation\\. You can specify the following values: \n+ `viewer-request`: The function executes when CloudFront receives a request from a viewer and before it checks to see whether the requested object is in the edge cache\\. \n+ `origin-request`: The function executes only when CloudFront sends a request to your origin\\. When the requested object is in the edge cache, the function doesn't execute\\.\n+ `origin-response`: The function executes after CloudFront receives a response from the origin and before it caches the object in the response\\. When the requested object is in the edge cache, the function doesn't execute\\.\n+ `viewer-response`: The function executes before CloudFront returns the requested object to the viewer\\. The function executes regardless of whether the object was already in the edge cache\\.", + "IncludeBody": "A flag that allows a Lambda@Edge function to have read access to the body content\\. For more information, see [Accessing the Request Body by Choosing the Include Body Option](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-include-body-access.html) in the Amazon CloudFront Developer Guide\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LambdaFunctionARN": "The ARN of the Lambda@Edge function\\. You must specify the ARN of a function version; you can't specify an alias or $LATEST\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution LegacyCustomOrigin": { + "DNSName": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HTTPPort": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HTTPSPort": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OriginProtocolPolicy": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OriginSSLProtocols": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution LegacyS3Origin": { + "DNSName": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OriginAccessIdentity": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution Logging": { + "Bucket": "The Amazon S3 bucket to store the access logs in, for example, `myawslogbucket.s3.amazonaws.com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeCookies": "Specifies whether you want CloudFront to include cookies in access logs, specify `true` for `IncludeCookies`\\. If you choose to include cookies in logs, CloudFront logs all cookies regardless of how you configure the cache behaviors for this distribution\\. If you don't want to include cookies when you create a distribution or if you want to disable include cookies for an existing distribution, specify `false` for `IncludeCookies`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "An optional string that you want CloudFront to prefix to the access log `filenames` for this distribution, for example, `myprefix/`\\. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty `Prefix` element in the `Logging` element\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution Origin": { + "ConnectionAttempts": "The number of times that CloudFront attempts to connect to the origin\\. The minimum number is 1, the maximum is 3, and the default \\(if you don\u2019t specify otherwise\\) is 3\\. \nFor a custom origin \\(including an Amazon S3 bucket that\u2019s configured with static website hosting\\), this value also specifies the number of times that CloudFront attempts to get a response from the origin, in the case of an [Origin Response Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout)\\. \nFor more information, see [Origin Connection Attempts](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#origin-connection-attempts) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectionTimeout": "The number of seconds that CloudFront waits when trying to establish a connection to the origin\\. The minimum timeout is 1 second, the maximum is 10 seconds, and the default \\(if you don\u2019t specify otherwise\\) is 10 seconds\\. \nFor more information, see [Origin Connection Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#origin-connection-timeout) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomOriginConfig": "Use this type to specify an origin that is not an Amazon S3 bucket, with one exception\\. If the Amazon S3 bucket is configured with static website hosting, use this type\\. If the Amazon S3 bucket is not configured with static website hosting, use the `S3OriginConfig` type instead\\. \n*Required*: Conditional \n*Type*: [CustomOriginConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customoriginconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainName": "The domain name for the origin\\. \nFor more information, see [Origin Domain Name](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesDomainName) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "A unique identifier for the origin\\. This value must be unique within the distribution\\. \nUse this value to specify the `TargetOriginId` in a `CacheBehavior` or `DefaultCacheBehavior`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OriginCustomHeaders": "A list of HTTP header names and values that CloudFront adds to the requests that it sends to the origin\\. \nFor more information, see [Adding Custom Headers to Origin Requests](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/add-origin-custom-headers.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of [OriginCustomHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origincustomheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OriginPath": "An optional path that CloudFront appends to the origin domain name when CloudFront requests content from the origin\\. \nFor more information, see [Origin Path](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginPath) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OriginShield": "CloudFront Origin Shield\\. Using Origin Shield can help reduce the load on your origin\\. \nFor more information, see [Using Origin Shield](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: [OriginShield](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-originshield.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3OriginConfig": "Use this type to specify an origin that is an Amazon S3 bucket that is not configured with static website hosting\\. To specify any other type of origin, including an Amazon S3 bucket that is configured with static website hosting, use the `CustomOriginConfig` type instead\\. \n*Required*: Conditional \n*Type*: [S3OriginConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-s3originconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution OriginCustomHeader": { + "HeaderName": "The name of a header that you want CloudFront to send to your origin\\. For more information, see [Adding Custom Headers to Origin Requests](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/forward-custom-headers.html) in the * Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HeaderValue": "The value for the header that you specified in the `HeaderName` field\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution OriginGroup": { + "FailoverCriteria": "A complex type that contains information about the failover criteria for an origin group\\. \n*Required*: Yes \n*Type*: [OriginGroupFailoverCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupfailovercriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "The origin group's ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Members": "A complex type that contains information about the origins in an origin group\\. \n*Required*: Yes \n*Type*: [OriginGroupMembers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupmembers.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution OriginGroupFailoverCriteria": { + "StatusCodes": "The status codes that, when returned from the primary origin, will trigger CloudFront to failover to the second origin\\. \n*Required*: Yes \n*Type*: [StatusCodes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-statuscodes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution OriginGroupMember": { + "OriginId": "The ID for an origin in an origin group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution OriginGroupMembers": { + "Items": "Items \\(origins\\) in an origin group\\. \n*Required*: Yes \n*Type*: List of [OriginGroupMember](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupmember.html) \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Quantity": "The number of origins in an origin group\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution OriginGroups": { + "Items": "The items \\(origin groups\\) in a distribution\\. \n*Required*: No \n*Type*: List of [OriginGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Quantity": "The number of origin groups\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution OriginShield": { + "Enabled": "A flag that specifies whether Origin Shield is enabled\\. \nWhen it\u2019s enabled, CloudFront routes all requests through Origin Shield, which can help protect your origin\\. When it\u2019s disabled, CloudFront might send requests directly to your origin from multiple edge locations or regional edge caches\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OriginShieldRegion": "The AWS Region for Origin Shield\\. \nSpecify the AWS Region that has the lowest latency to your origin\\. To specify a region, use the region code, not the region name\\. For example, specify the US East \\(Ohio\\) region as `us-east-2`\\. \nWhen you enable CloudFront Origin Shield, you must specify the AWS Region for Origin Shield\\. For the list of AWS Regions that you can specify, and for help choosing the best Region for your origin, see [Choosing the AWS Region for Origin Shield](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html#choose-origin-shield-region) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `[a-z]{2}-[a-z]+-\\d` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution Restrictions": { + "GeoRestriction": "A complex type that controls the countries in which your content is distributed\\. CloudFront determines the location of your users using `MaxMind` GeoIP databases\\. To disable geo restriction, remove the [Restrictions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-restrictions) property from your stack template\\. \n*Required*: Yes \n*Type*: [GeoRestriction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-georestriction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution S3OriginConfig": { + "OriginAccessIdentity": "The CloudFront origin access identity to associate with the origin\\. Use an origin access identity to configure the origin so that viewers can *only* access objects in an Amazon S3 bucket through CloudFront\\. The format of the value is: \norigin\\-access\\-identity/cloudfront/*ID\\-of\\-origin\\-access\\-identity* \nwhere ` ID-of-origin-access-identity ` is the value that CloudFront returned in the `ID` element when you created the origin access identity\\. \nIf you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty `OriginAccessIdentity` element\\. \nTo delete the origin access identity from an existing distribution, update the distribution configuration and include an empty `OriginAccessIdentity` element\\. \nTo replace the origin access identity, update the distribution configuration and specify the new origin access identity\\. \nFor more information about the origin access identity, see [Serving Private Content through CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution StatusCodes": { + "Items": "The items \\(status codes\\) for an origin group\\. \n*Required*: Yes \n*Type*: List of Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Quantity": "The number of status codes\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Distribution ViewerCertificate": { + "AcmCertificateArn": "In CloudFormation, this field name is `AcmCertificateArn`\\. Note the different capitalization\\.\nIf the distribution uses `Aliases` \\(alternate domain names or CNAMEs\\) and the SSL/TLS certificate is stored in [AWS Certificate Manager \\(ACM\\)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html), provide the Amazon Resource Name \\(ARN\\) of the ACM certificate\\. CloudFront only supports ACM certificates in the US East \\(N\\. Virginia\\) Region \\(`us-east-1`\\)\\. \nIf you specify an ACM certificate ARN, you must also specify values for `MinimumProtocolVersion` and `SSLSupportMethod`\\. \\(In CloudFormation, the field name is `SslSupportMethod`\\. Note the different capitalization\\.\\) \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CloudFrontDefaultCertificate": "If the distribution uses the CloudFront domain name such as `d111111abcdef8.cloudfront.net`, set this field to `true`\\. \nIf the distribution uses `Aliases` \\(alternate domain names or CNAMEs\\), set this field to `false` and specify values for the following fields: \n+ `ACMCertificateArn` or `IAMCertificateId` \\(specify a value for one, not both\\)", + "IamCertificateId": "In CloudFormation, this field name is `IamCertificateId`\\. Note the different capitalization\\.\nIf the distribution uses `Aliases` \\(alternate domain names or CNAMEs\\) and the SSL/TLS certificate is stored in [AWS Identity and Access Management \\(IAM\\)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html), provide the ID of the IAM certificate\\. \nIf you specify an IAM certificate ID, you must also specify values for `MinimumProtocolVersion` and `SSLSupportMethod`\\. \\(In CloudFormation, the field name is `SslSupportMethod`\\. Note the different capitalization\\.\\) \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinimumProtocolVersion": "If the distribution uses `Aliases` \\(alternate domain names or CNAMEs\\), specify the security policy that you want CloudFront to use for HTTPS connections with viewers\\. The security policy determines two settings: \n+ The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers\\.\n+ The ciphers that CloudFront can use to encrypt the content that it returns to viewers\\.\nFor more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*\\. \nOn the CloudFront console, this setting is called **Security Policy**\\.\nWhen you\u2019re using SNI only \\(you set `SSLSupportMethod` to `sni-only`\\), you must specify `TLSv1` or higher\\. \\(In CloudFormation, the field name is `SslSupportMethod`\\. Note the different capitalization\\.\\) \nIf the distribution uses the CloudFront domain name such as `d111111abcdef8.cloudfront.net` \\(you set `CloudFrontDefaultCertificate` to `true`\\), CloudFront automatically sets the security policy to `TLSv1` regardless of the value that you set here\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `SSLv3 | TLSv1 | TLSv1.1_2016 | TLSv1.2_2018 | TLSv1.2_2019 | TLSv1.2_2021 | TLSv1_2016` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SslSupportMethod": "In CloudFormation, this field name is `SslSupportMethod`\\. Note the different capitalization\\.\nIf the distribution uses `Aliases` \\(alternate domain names or CNAMEs\\), specify which viewers the distribution accepts HTTPS connections from\\. \n+ `sni-only` \u2013 The distribution accepts HTTPS connections from only viewers that support [server name indication \\(SNI\\)](https://en.wikipedia.org/wiki/Server_Name_Indication)\\. This is recommended\\. Most browsers and clients support SNI\\.\n+ `vip` \u2013 The distribution accepts HTTPS connections from all viewers including those that don\u2019t support SNI\\. This is not recommended, and results in additional monthly charges from CloudFront\\.\n+ `static-ip` \\- Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team\\. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [AWS Support Center](https://console.aws.amazon.com/support/home)\\.\nIf the distribution uses the CloudFront domain name such as `d111111abcdef8.cloudfront.net`, don\u2019t set a value for this field\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `sni-only | static-ip | vip` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Function": { + "AutoPublish": "A flag that determines whether to automatically publish the function to the `LIVE` stage when it\u2019s created\\. To automatically publish to the `LIVE` stage, set this property to `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FunctionCode": "The function code\\. For more information about writing a CloudFront function, see [Writing function code for CloudFront Functions](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/writing-function-code.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FunctionConfig": "Contains configuration information about a CloudFront function\\. \n*Required*: No \n*Type*: [FunctionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-function-functionconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A name to identify the function\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9-_]{1,64}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Function FunctionConfig": { + "Comment": "A comment to describe the function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Runtime": "The function\u2019s runtime environment\\. The only valid value is `cloudfront-js-1.0`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `cloudfront-js-1.0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::Function FunctionMetadata": { + "FunctionARN": "The Amazon Resource Name \\(ARN\\) of the function\\. The ARN uniquely identifies the function\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::KeyGroup": { + "KeyGroupConfig": "The key group configuration\\. \n*Required*: Yes \n*Type*: [KeyGroupConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-keygroup-keygroupconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::KeyGroup KeyGroupConfig": { + "Comment": "A comment to describe the key group\\. The comment cannot be longer than 128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Items": "A list of the identifiers of the public keys in the key group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A name to identify the key group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::OriginRequestPolicy": { + "OriginRequestPolicyConfig": "The origin request policy configuration\\. \n*Required*: Yes \n*Type*: [OriginRequestPolicyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-originrequestpolicyconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::OriginRequestPolicy CookiesConfig": { + "CookieBehavior": "Determines whether cookies in viewer requests are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Cookies in viewer requests are not included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any cookies that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The cookies in viewer requests that are listed in the `CookieNames` type are included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All cookies in viewer requests are included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Cookies": "Contains a list of cookie names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::OriginRequestPolicy HeadersConfig": { + "HeaderBehavior": "Determines whether any HTTP headers are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 HTTP headers are not included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any headers that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The HTTP headers that are listed in the `Headers` type are included in requests that CloudFront sends to the origin\\.\n+ `allViewer` \u2013 All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin\\.\n+ `allViewerAndWhitelistCloudFront` \u2013 All HTTP headers in viewer requests and the additional CloudFront headers that are listed in the `Headers` type are included in requests that CloudFront sends to the origin\\. The additional headers are added by CloudFront\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `allViewer | allViewerAndWhitelistCloudFront | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Headers": "Contains a list of HTTP header names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::OriginRequestPolicy OriginRequestPolicyConfig": { + "Comment": "A comment to describe the origin request policy\\. The comment cannot be longer than 128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CookiesConfig": "The cookies from viewer requests to include in origin requests\\. \n*Required*: Yes \n*Type*: [CookiesConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-cookiesconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HeadersConfig": "The HTTP headers to include in origin requests\\. These can include headers from viewer requests and additional headers added by CloudFront\\. \n*Required*: Yes \n*Type*: [HeadersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-headersconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A unique name to identify the origin request policy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryStringsConfig": "The URL query strings from viewer requests to include in origin requests\\. \n*Required*: Yes \n*Type*: [QueryStringsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-querystringsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::OriginRequestPolicy QueryStringsConfig": { + "QueryStringBehavior": "Determines whether any URL query strings in viewer requests are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Query strings in viewer requests are not included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any query strings that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The query strings in viewer requests that are listed in the `QueryStringNames` type are included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All query strings in viewer requests are included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryStrings": "Contains a list of query string names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::PublicKey": { + "PublicKeyConfig": "Configuration information about a public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field\\-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html)\\. \n*Required*: Yes \n*Type*: [PublicKeyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-publickey-publickeyconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::PublicKey PublicKeyConfig": { + "CallerReference": "A string included in the request to help make sure that the request can\u2019t be replayed\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Comment": "A comment to describe the public key\\. The comment cannot be longer than 128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EncodedKey": "The public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field\\-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A name to help identify the public key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::RealtimeLogConfig": { + "EndPoints": "Contains information about the Amazon Kinesis data stream where you are sending real\\-time log data for this real\\-time log configuration\\. \n*Required*: Yes \n*Type*: List of [EndPoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-realtimelogconfig-endpoint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Fields": "A list of fields that are included in each real\\-time log record\\. In an API response, the fields are provided in the same order in which they are sent to the Amazon Kinesis data stream\\. \nFor more information about fields, see [Real\\-time log configuration fields](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-fields) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The unique name of this real\\-time log configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SamplingRate": "The sampling rate for this real\\-time log configuration\\. The sampling rate determines the percentage of viewer requests that are represented in the real\\-time log data\\. The sampling rate is an integer between 1 and 100, inclusive\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::RealtimeLogConfig EndPoint": { + "KinesisStreamConfig": "Contains information about the Amazon Kinesis data stream where you are sending real\\-time log data\\. \n*Required*: Yes \n*Type*: [KinesisStreamConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-realtimelogconfig-kinesisstreamconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamType": "The type of data stream where you are sending real\\-time log data\\. The only valid value is `Kinesis`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::RealtimeLogConfig KinesisStreamConfig": { + "RoleArn": "The Amazon Resource Name \\(ARN\\) of an AWS Identity and Access Management \\(IAM\\) role that CloudFront can use to send real\\-time log data to your Kinesis data stream\\. \nFor more information the IAM role, see [Real\\-time log configuration IAM role](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-iam-role) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamArn": "The Amazon Resource Name \\(ARN\\) of the Kinesis data stream where you are sending real\\-time log data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::ResponseHeadersPolicy": { + "ResponseHeadersPolicyConfig": "A response headers policy configuration\\. \nA response headers policy contains information about a set of HTTP response headers and their values\\. CloudFront adds the headers in the policy to HTTP responses that it sends for requests that match a cache behavior that\u2019s associated with the policy\\. \n*Required*: Yes \n*Type*: [ResponseHeadersPolicyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::ResponseHeadersPolicy AccessControlAllowHeaders": { + "Items": "The list of HTTP header names\\. You can specify `*` to allow all headers\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::ResponseHeadersPolicy AccessControlAllowMethods": { + "Items": "The list of HTTP methods\\. Valid values are: \n+ `GET` \n+ `DELETE` \n+ `HEAD` \n+ `OPTIONS` \n+ `PATCH` \n+ `POST` \n+ `PUT` \n+ `ALL` \n `ALL` is a special value that includes all of the listed HTTP methods\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::ResponseHeadersPolicy AccessControlAllowOrigins": { + "Items": "The list of origins \\(domain names\\)\\. You can specify `*` to allow all origins\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::ResponseHeadersPolicy AccessControlExposeHeaders": { + "Items": "The list of HTTP headers\\. You can specify `*` to expose all headers\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::ResponseHeadersPolicy ContentSecurityPolicy": { + "ContentSecurityPolicy": "The policy directives and their values that CloudFront includes as values for the `Content-Security-Policy` HTTP response header\\. \n*Required*: Yes \n*Type*: [String](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-cloudfront-responseheaderspolicy-contentsecuritypolicy.html#aws-properties-cloudfront-responseheaderspolicy-contentsecuritypolicy) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Override": "A Boolean that determines whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::ResponseHeadersPolicy ContentTypeOptions": { + "Override": "A Boolean that determines whether CloudFront overrides the `X-Content-Type-Options` HTTP response header received from the origin with the one specified in this response headers policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::ResponseHeadersPolicy CorsConfig": { + "AccessControlAllowCredentials": "A Boolean that CloudFront uses as the value for the `Access-Control-Allow-Credentials` HTTP response header\\. \nFor more information about the `Access-Control-Allow-Credentials` HTTP response header, see [Access\\-Control\\-Allow\\-Credentials](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials) in the MDN Web Docs\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AccessControlAllowHeaders": "A list of HTTP header names that CloudFront includes as values for the `Access-Control-Allow-Headers` HTTP response header\\. \nFor more information about the `Access-Control-Allow-Headers` HTTP response header, see [Access\\-Control\\-Allow\\-Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers) in the MDN Web Docs\\. \n*Required*: Yes \n*Type*: [AccessControlAllowHeaders](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolallowheaders.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AccessControlAllowMethods": "A list of HTTP methods that CloudFront includes as values for the `Access-Control-Allow-Methods` HTTP response header\\. \nFor more information about the `Access-Control-Allow-Methods` HTTP response header, see [Access\\-Control\\-Allow\\-Methods](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods) in the MDN Web Docs\\. \n*Required*: Yes \n*Type*: [AccessControlAllowMethods](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolallowmethods.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AccessControlAllowOrigins": "A list of origins \\(domain names\\) that CloudFront can use as the value for the `Access-Control-Allow-Origin` HTTP response header\\. \nFor more information about the `Access-Control-Allow-Origin` HTTP response header, see [Access\\-Control\\-Allow\\-Origin](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin) in the MDN Web Docs\\. \n*Required*: Yes \n*Type*: [AccessControlAllowOrigins](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolalloworigins.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AccessControlExposeHeaders": "A list of HTTP headers that CloudFront includes as values for the `Access-Control-Expose-Headers` HTTP response header\\. \nFor more information about the `Access-Control-Expose-Headers` HTTP response header, see [Access\\-Control\\-Expose\\-Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers) in the MDN Web Docs\\. \n*Required*: No \n*Type*: [AccessControlExposeHeaders](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolexposeheaders.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AccessControlMaxAgeSec": "A number that CloudFront uses as the value for the `Access-Control-Max-Age` HTTP response header\\. \nFor more information about the `Access-Control-Max-Age` HTTP response header, see [Access\\-Control\\-Max\\-Age](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age) in the MDN Web Docs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OriginOverride": "A Boolean that determines whether CloudFront overrides HTTP response headers received from the origin with the ones specified in this response headers policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::ResponseHeadersPolicy CustomHeader": { + "Header": "The HTTP response header name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Override": "A Boolean that determines whether CloudFront overrides a response header with the same name received from the origin with the header specified here\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value for the HTTP response header\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::ResponseHeadersPolicy CustomHeadersConfig": { + "Items": "The list of HTTP response headers and their values\\. \n*Required*: Yes \n*Type*: List of [CustomHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-customheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::ResponseHeadersPolicy FrameOptions": { + "FrameOption": "The value of the `X-Frame-Options` HTTP response header\\. Valid values are `DENY` and `SAMEORIGIN`\\. \nFor more information about these values, see [X\\-Frame\\-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options) in the MDN Web Docs\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DENY | SAMEORIGIN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Override": "A Boolean that determines whether CloudFront overrides the `X-Frame-Options` HTTP response header received from the origin with the one specified in this response headers policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::ResponseHeadersPolicy ReferrerPolicy": { + "Override": "A Boolean that determines whether CloudFront overrides the `Referrer-Policy` HTTP response header received from the origin with the one specified in this response headers policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReferrerPolicy": "The value of the `Referrer-Policy` HTTP response header\\. Valid values are: \n+ `no-referrer` \n+ `no-referrer-when-downgrade` \n+ `origin` \n+ `origin-when-cross-origin` \n+ `same-origin` \n+ `strict-origin` \n+ `strict-origin-when-cross-origin` \n+ `unsafe-url` \nFor more information about these values, see [Referrer\\-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy) in the MDN Web Docs\\. \n*Required*: Yes \n*Type*: [String](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-cloudfront-responseheaderspolicy-referrerpolicy.html#aws-properties-cloudfront-responseheaderspolicy-referrerpolicy) \n*Allowed values*: `no-referrer | no-referrer-when-downgrade | origin | origin-when-cross-origin | same-origin | strict-origin | strict-origin-when-cross-origin | unsafe-url` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::ResponseHeadersPolicy ResponseHeadersPolicyConfig": { + "Comment": "A comment to describe the response headers policy\\. \nThe comment cannot be longer than 128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CorsConfig": "A configuration for a set of HTTP response headers that are used for cross\\-origin resource sharing \\(CORS\\)\\. \n*Required*: No \n*Type*: [CorsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-corsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomHeadersConfig": "A configuration for a set of custom HTTP response headers\\. \n*Required*: No \n*Type*: [CustomHeadersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-customheadersconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A name to identify the response headers policy\\. \nThe name must be unique for response headers policies in this AWS account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityHeadersConfig": "A configuration for a set of security\\-related HTTP response headers\\. \n*Required*: No \n*Type*: [SecurityHeadersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-securityheadersconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::ResponseHeadersPolicy SecurityHeadersConfig": { + "ContentSecurityPolicy": "The policy directives and their values that CloudFront includes as values for the `Content-Security-Policy` HTTP response header\\. \nFor more information about the `Content-Security-Policy` HTTP response header, see [Content\\-Security\\-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy) in the MDN Web Docs\\. \n*Required*: No \n*Type*: [ContentSecurityPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-contentsecuritypolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContentTypeOptions": "Determines whether CloudFront includes the `X-Content-Type-Options` HTTP response header with its value set to `nosniff`\\. \nFor more information about the `X-Content-Type-Options` HTTP response header, see [X\\-Content\\-Type\\-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options) in the MDN Web Docs\\. \n*Required*: No \n*Type*: [ContentTypeOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-contenttypeoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FrameOptions": "Determines whether CloudFront includes the `X-Frame-Options` HTTP response header and the header\u2019s value\\. \nFor more information about the `X-Frame-Options` HTTP response header, see [X\\-Frame\\-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options) in the MDN Web Docs\\. \n*Required*: No \n*Type*: [FrameOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-frameoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReferrerPolicy": "Determines whether CloudFront includes the `Referrer-Policy` HTTP response header and the header\u2019s value\\. \nFor more information about the `Referrer-Policy` HTTP response header, see [Referrer\\-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy) in the MDN Web Docs\\. \n*Required*: No \n*Type*: [ReferrerPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-referrerpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StrictTransportSecurity": "Determines whether CloudFront includes the `Strict-Transport-Security` HTTP response header and the header\u2019s value\\. \nFor more information about the `Strict-Transport-Security` HTTP response header, see [Strict\\-Transport\\-Security](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security) in the MDN Web Docs\\. \n*Required*: No \n*Type*: [StrictTransportSecurity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-stricttransportsecurity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "XSSProtection": "Determines whether CloudFront includes the `X-XSS-Protection` HTTP response header and the header\u2019s value\\. \nFor more information about the `X-XSS-Protection` HTTP response header, see [X\\-XSS\\-Protection](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection) in the MDN Web Docs\\. \n*Required*: No \n*Type*: [XSSProtection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-xssprotection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::ResponseHeadersPolicy StrictTransportSecurity": { + "AccessControlMaxAgeSec": "A number that CloudFront uses as the value for the `max-age` directive in the `Strict-Transport-Security` HTTP response header\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeSubdomains": "A Boolean that determines whether CloudFront includes the `includeSubDomains` directive in the `Strict-Transport-Security` HTTP response header\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Override": "A Boolean that determines whether CloudFront overrides the `Strict-Transport-Security` HTTP response header received from the origin with the one specified in this response headers policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Preload": "A Boolean that determines whether CloudFront includes the `preload` directive in the `Strict-Transport-Security` HTTP response header\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::ResponseHeadersPolicy XSSProtection": { + "ModeBlock": "A Boolean that determines whether CloudFront includes the `mode=block` directive in the `X-XSS-Protection` header\\. \nFor more information about this directive, see [X\\-XSS\\-Protection](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection) in the MDN Web Docs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Override": "A Boolean that determines whether CloudFront overrides the `X-XSS-Protection` HTTP response header received from the origin with the one specified in this response headers policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protection": "A Boolean that determines the value of the `X-XSS-Protection` HTTP response header\\. When this setting is `true`, the value of the `X-XSS-Protection` header is `1`\\. When this setting is `false`, the value of the `X-XSS-Protection` header is `0`\\. \nFor more information about these settings, see [X\\-XSS\\-Protection](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection) in the MDN Web Docs\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReportUri": "A reporting URI, which CloudFront uses as the value of the `report` directive in the `X-XSS-Protection` header\\. \nYou cannot specify a `ReportUri` when `ModeBlock` is `true`\\. \nFor more information about using a reporting URL, see [X\\-XSS\\-Protection](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection) in the MDN Web Docs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::StreamingDistribution": { + "StreamingDistributionConfig": "The current configuration information for the RTMP distribution\\. \n*Required*: Yes \n*Type*: [StreamingDistributionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A complex type that contains zero or more `Tag` elements\\. \n*Required*: Yes \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::StreamingDistribution Logging": { + "Bucket": "The Amazon S3 bucket to store the access logs in, for example, `myawslogbucket.s3.amazonaws.com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket\\. If you don't want to enable logging when you create a streaming distribution or if you want to disable logging for an existing streaming distribution, specify `false` for `Enabled`, and specify `empty Bucket` and `Prefix` elements\\. If you specify `false` for `Enabled` but you specify values for `Bucket` and `Prefix`, the values are automatically deleted\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "An optional string that you want CloudFront to prefix to the access log filenames for this streaming distribution, for example, `myprefix/`\\. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty `Prefix` element in the `Logging` element\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::StreamingDistribution S3Origin": { + "DomainName": "The DNS name of the Amazon S3 origin\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OriginAccessIdentity": "The CloudFront origin access identity to associate with the distribution\\. Use an origin access identity to configure the distribution so that end users can only access objects in an Amazon S3 bucket through CloudFront\\. \nIf you want end users to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty `OriginAccessIdentity` element\\. \nTo delete the origin access identity from an existing distribution, update the distribution configuration and include an empty `OriginAccessIdentity` element\\. \nTo replace the origin access identity, update the distribution configuration and specify the new origin access identity\\. \nFor more information, see [Using an Origin Access Identity to Restrict Access to Your Amazon S3 Content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) in the * Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::StreamingDistribution StreamingDistributionConfig": { + "Aliases": "A complex type that contains information about CNAMEs \\(alternate domain names\\), if any, for this streaming distribution\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Comment": "Any comments you want to include about the streaming distribution\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Whether the streaming distribution is enabled to accept user requests for content\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Logging": "A complex type that controls whether access logs are written for the streaming distribution\\. \n*Required*: No \n*Type*: [Logging](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-logging.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PriceClass": "A complex type that contains information about price class for this streaming distribution\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PriceClass_100 | PriceClass_200 | PriceClass_All` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Origin": "A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution\\. \n*Required*: Yes \n*Type*: [S3Origin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-s3origin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TrustedSigners": "A complex type that specifies any AWS accounts that you want to permit to create signed URLs for private content\\. If you want the distribution to use signed URLs, include this element; if you want the distribution to use public URLs, remove this element\\. For more information, see [Serving Private Content through CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: [TrustedSigners](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-trustedsigners.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudFront::StreamingDistribution TrustedSigners": { + "AwsAccountNumbers": "An AWS account number that contains active CloudFront key pairs that CloudFront can use to verify the signatures of signed URLs and signed cookies\\. If the AWS account that owns the key pairs is the same account that owns the CloudFront distribution, the value of this field is `self`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "This field is `true` if any of the AWS accounts have public keys that CloudFront can use to verify the signatures of signed URLs and signed cookies\\. If not, this field is `false`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudTrail::Trail": { + "CloudWatchLogsLogGroupArn": "Specifies a log group name using an Amazon Resource Name \\(ARN\\), a unique identifier that represents the log group to which CloudTrail logs are delivered\\. Not required unless you specify `CloudWatchLogsRoleArn`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CloudWatchLogsRoleArn": "Specifies the role for the CloudWatch Logs endpoint to assume to write to a user's log group\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableLogFileValidation": "Specifies whether log file validation is enabled\\. The default is false\\. \nWhen you disable log file integrity validation, the chain of digest files is broken after one hour\\. CloudTrail does not create digest files for log files that were delivered during a period in which log file integrity validation was disabled\\. For example, if you enable log file integrity validation at noon on January 1, disable it at noon on January 2, and re\\-enable it at noon on January 10, digest files will not be created for the log files delivered from noon on January 2 to noon on January 10\\. The same applies whenever you stop CloudTrail logging or delete a trail\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventSelectors": "Use event selectors to further specify the management and data event settings for your trail\\. By default, trails created without specific event selectors will be configured to log all read and write management events, and no data events\\. When an event occurs in your account, CloudTrail evaluates the event selector for all trails\\. For each trail, if the event matches any event selector, the trail processes and logs the event\\. If the event doesn't match any event selector, the trail doesn't log the event\\. \nYou can configure up to five event selectors for a trail\\. \nYou cannot apply both event selectors and advanced event selectors to a trail\\. \n*Required*: No \n*Type*: List of [EventSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-eventselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeGlobalServiceEvents": "Specifies whether the trail is publishing events from global services such as IAM to the log files\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InsightSelectors": "Specifies whether a trail has insight types specified in an `InsightSelector` list\\. \n*Required*: No \n*Type*: List of [InsightSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-insightselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IsLogging": "Whether the CloudTrail trail is currently logging AWS API calls\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IsMultiRegionTrail": "Specifies whether the trail applies only to the current region or to all regions\\. The default is false\\. If the trail exists only in the current region and this value is set to true, shadow trails \\(replications of the trail\\) will be created in the other regions\\. If the trail exists in all regions and this value is set to false, the trail will remain in the region where it was created, and its shadow trails in other regions will be deleted\\. As a best practice, consider using trails that log events in all regions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IsOrganizationTrail": "Specifies whether the trail is created for all accounts in an organization in AWS Organizations, or only for the current AWS account\\. The default is false, and cannot be true unless the call is made on behalf of an AWS account that is the management account for an organization in AWS Organizations\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KMSKeyId": "Specifies the AWS KMS key ID to use to encrypt the logs delivered by CloudTrail\\. The value can be an alias name prefixed by \"alias/\", a fully specified ARN to an alias, a fully specified ARN to a key, or a globally unique identifier\\. \nCloudTrail also supports AWS KMS multi\\-Region keys\\. For more information about multi\\-Region keys, see [Using multi\\-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in the * AWS Key Management Service Developer Guide*\\. \nExamples: \n+ alias/MyAliasName\n+ arn:aws:kms:us\\-east\\-2:123456789012:alias/MyAliasName\n+ arn:aws:kms:us\\-east\\-2:123456789012:key/12345678\\-1234\\-1234\\-1234\\-123456789012\n+ 12345678\\-1234\\-1234\\-1234\\-123456789012\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3BucketName": "Specifies the name of the Amazon S3 bucket designated for publishing log files\\. See [Amazon S3 Bucket Naming Requirements](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create_trail_naming_policy.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3KeyPrefix": "Specifies the Amazon S3 key prefix that comes after the name of the bucket you have designated for log file delivery\\. For more information, see [Finding Your CloudTrail Log Files](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html)\\. The maximum length is 200 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnsTopicName": "Specifies the name of the Amazon SNS topic defined for notification of log file delivery\\. The maximum length is 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A custom set of tags \\(key\\-value pairs\\) for this trail\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TrailName": "Specifies the name of the trail\\. The name must meet the following requirements: \n+ Contain only ASCII letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), periods \\(\\.\\), underscores \\(\\_\\), or dashes \\(\\-\\)\n+ Start with a letter or number, and end with a letter or number\n+ Be between 3 and 128 characters\n+ Have no adjacent periods, underscores or dashes\\. Names like `my-_namespace` and `my--namespace` are not valid\\.\n+ Not be in IP address format \\(for example, 192\\.168\\.5\\.4\\)\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CloudTrail::Trail DataResource": { + "Type": "The resource type in which you want to log data events\\. You can specify the following *basic* event selector resource types: \n+ `AWS::S3::Object` \n+ `AWS::Lambda::Function` \n+ `AWS::DynamoDB::Table` \nThe following resource types are also availble through *advanced* event selectors\\. Basic event selector resource types are valid in advanced event selectors, but advanced event selector resource types are not valid in basic event selectors\\. For more information, see [AdvancedFieldSelector:Field](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html#awscloudtrail-Type-AdvancedFieldSelector-Field)\\. \n+ `AWS::S3Outposts::Object` \n+ `AWS::ManagedBlockchain::Node` \n+ `AWS::S3ObjectLambda::AccessPoint` \n+ `AWS::EC2::Snapshot` \n+ `AWS::S3::AccessPoint` \n+ `AWS::DynamoDB::Stream` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "An array of Amazon Resource Name \\(ARN\\) strings or partial ARN strings for the specified objects\\. \n+ To log data events for all objects in all S3 buckets in your AWS account, specify the prefix as `arn:aws:s3:::`\\.\n**Note** \nThis also enables logging of data event activity performed by any user or role in your AWS account, even if that activity is performed on a bucket that belongs to another AWS account\\.\n+ To log data events for all objects in an S3 bucket, specify the bucket and an empty object prefix such as `arn:aws:s3:::bucket-1/`\\. The trail logs data events for all objects in this S3 bucket\\.\n+ To log data events for specific objects, specify the S3 bucket and object prefix such as `arn:aws:s3:::bucket-1/example-images`\\. The trail logs data events for objects in this S3 bucket that match the prefix\\.\n+ To log data events for all Lambda functions in your AWS account, specify the prefix as `arn:aws:lambda`\\.\n**Note** \nThis also enables logging of `Invoke` activity performed by any user or role in your AWS account, even if that activity is performed on a function that belongs to another AWS account\\. \n+ To log data events for a specific Lambda function, specify the function ARN\\.\n**Note** \nLambda function ARNs are exact\\. For example, if you specify a function ARN *arn:aws:lambda:us\\-west\\-2:111111111111:function:helloworld*, data events will only be logged for *arn:aws:lambda:us\\-west\\-2:111111111111:function:helloworld*\\. They will not be logged for *arn:aws:lambda:us\\-west\\-2:111111111111:function:helloworld2*\\.\n+ To log data events for all DynamoDB tables in your AWS account, specify the prefix as `arn:aws:dynamodb`\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudTrail::Trail EventSelector": { + "DataResources": "CloudTrail supports data event logging for Amazon S3 objects and AWS Lambda functions\\. You can specify up to 250 resources for an individual event selector, but the total number of data resources cannot exceed 250 across all event selectors in a trail\\. This limit does not apply if you configure resource logging for all data events\\. \nFor more information, see [Data Events](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html#logging-data-events) and [Limits in AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html) in the *AWS CloudTrail User Guide*\\. \n*Required*: Conditional \n*Type*: List of [DataResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-dataresource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExcludeManagementEventSources": "An optional list of service event sources from which you do not want management events to be logged on your trail\\. In this release, the list can be empty \\(disables the filter\\), or it can filter out AWS Key Management Service or Amazon RDS Data API events by containing `kms.amazonaws.com` or `rdsdata.amazonaws.com`\\. By default, `ExcludeManagementEventSources` is empty, and AWS KMS and Amazon RDS Data API events are logged to your trail\\. You can exclude management event sources only in regions that support the event source\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeManagementEvents": "Specify if you want your event selector to include management events for your trail\\. \n For more information, see [Management Events](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html#logging-management-events) in the * AWS CloudTrail User Guide*\\. \nBy default, the value is `true`\\. \nThe first copy of management events is free\\. You are charged for additional copies of management events that you are logging on any subsequent trail in the same region\\. For more information about CloudTrail pricing, see [AWS CloudTrail Pricing](http://aws.amazon.com/cloudtrail/pricing/)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReadWriteType": "Specify if you want your trail to log read\\-only events, write\\-only events, or all\\. For example, the EC2 `GetConsoleOutput` is a read\\-only API operation and `RunInstances` is a write\\-only API operation\\. \n By default, the value is `All`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `All | ReadOnly | WriteOnly` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudTrail::Trail InsightSelector": { + "InsightType": "The type of insights to log on a trail\\. `ApiCallRateInsight` and `ApiErrorRateInsight` are valid insight types\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ApiCallRateInsight | ApiErrorRateInsight` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudWatch::Alarm": { + "ActionsEnabled": "Indicates whether actions should be executed during any changes to the alarm state\\. The default is TRUE\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AlarmActions": "The list of actions to execute when this alarm transitions into an ALARM state from any other state\\. Specify each action as an Amazon Resource Name \\(ARN\\)\\. For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *Amazon CloudWatch API Reference*\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AlarmDescription": "The description of the alarm\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AlarmName": "The name of the alarm\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the alarm name\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ComparisonOperator": "The arithmetic operation to use when comparing the specified statistic and threshold\\. The specified statistic value is used as the first operand\\. \nYou can specify the following values: `GreaterThanThreshold`, `GreaterThanOrEqualToThreshold`, `LessThanThreshold`, or `LessThanOrEqualToThreshold`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GreaterThanOrEqualToThreshold | GreaterThanThreshold | GreaterThanUpperThreshold | LessThanLowerOrGreaterThanUpperThreshold | LessThanLowerThreshold | LessThanOrEqualToThreshold | LessThanThreshold` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatapointsToAlarm": "The number of datapoints that must be breaching to trigger the alarm\\. This is used only if you are setting an \"M out of N\" alarm\\. In that case, this value is the M, and the value that you set for `EvaluationPeriods` is the N value\\. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *Amazon CloudWatch User Guide*\\. \nIf you omit this parameter, CloudWatch uses the same value here that you set for `EvaluationPeriods`, and the alarm goes to alarm state if that many consecutive periods are breaching\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Dimensions": "The dimensions for the metric associated with the alarm\\. For an alarm based on a math expression, you can't specify `Dimensions`\\. Instead, you use `Metrics`\\. \n*Required*: No \n*Type*: List of [Dimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-dimension.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EvaluateLowSampleCountPercentile": "Used only for alarms based on percentiles\\. If `ignore`, the alarm state does not change during periods with too few data points to be statistically significant\\. If `evaluate` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EvaluationPeriods": "The number of periods over which data is compared to the specified threshold\\. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number\\. If you are setting an \"M out of N\" alarm, this value is the N, and `DatapointsToAlarm` is the M\\. \nFor more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *Amazon CloudWatch User Guide*\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExtendedStatistic": "The percentile statistic for the metric associated with the alarm\\. Specify a value between p0\\.0 and p100\\. \nFor an alarm based on a metric, you must specify either `Statistic` or `ExtendedStatistic` but not both\\. \nFor an alarm based on a math expression, you can't specify `ExtendedStatistic`\\. Instead, you use `Metrics`\\. \n*Required*: No \n*Type*: String \n*Pattern*: `p(\\d{1,2}(\\.\\d{0,2})?|100)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InsufficientDataActions": "The actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state\\. Each action is specified as an Amazon Resource Name \\(ARN\\)\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricName": "The name of the metric associated with the alarm\\. This is required for an alarm based on a metric\\. For an alarm based on a math expression, you use `Metrics` instead and you can't specify `MetricName`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Metrics": "An array that enables you to create an alarm based on the result of a metric math expression\\. Each item in the array either retrieves a metric or performs a math expression\\. \nIf you specify the `Metrics` parameter, you cannot specify `MetricName`, `Dimensions`, `Period`, `Namespace`, `Statistic`, `ExtendedStatistic`, or `Unit`\\. \n*Required*: No \n*Type*: List of [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Namespace": "The namespace of the metric associated with the alarm\\. This is required for an alarm based on a metric\\. For an alarm based on a math expression, you can't specify `Namespace` and you use `Metrics` instead\\. \nFor a list of namespaces for metrics from AWS services, see [AWS Services That Publish CloudWatchMetrics\\. ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[^:].*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OKActions": "The actions to execute when this alarm transitions to the `OK` state from any other state\\. Each action is specified as an Amazon Resource Name \\(ARN\\)\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Period": "The period, in seconds, over which the statistic is applied\\. This is required for an alarm based on a metric\\. Valid values are 10, 30, 60, and any multiple of 60\\. \nFor an alarm based on a math expression, you can't specify `Period`, and instead you use the `Metrics` parameter\\. \n*Minimum:* 10 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Statistic": "The statistic for the metric associated with the alarm, other than percentile\\. For percentile statistics, use `ExtendedStatistic`\\. \nFor an alarm based on a metric, you must specify either `Statistic` or `ExtendedStatistic` but not both\\. \nFor an alarm based on a math expression, you can't specify `Statistic`\\. Instead, you use `Metrics`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Average | Maximum | Minimum | SampleCount | Sum` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Threshold": "The value to compare with the specified statistic\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThresholdMetricId": "In an alarm based on an anomaly detection model, this is the ID of the `ANOMALY_DETECTION_BAND` function used as the threshold for the alarm\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TreatMissingData": "Sets how this alarm is to handle missing data points\\. Valid values are `breaching`, `notBreaching`, `ignore`, and `missing`\\. For more information, see [ Configuring How CloudWatchAlarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon CloudWatchUser Guide*\\. \nIf you omit this parameter, the default behavior of `missing` is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Unit": "The unit of the metric associated with the alarm\\. Specify this only if you are creating an alarm based on a single metric\\. Do not specify this if you are specifying a `Metrics` array\\. \n You can specify the following values: Seconds, Microseconds, Milliseconds, Bytes, Kilobytes, Megabytes, Gigabytes, Terabytes, Bits, Kilobits, Megabits, Gigabits, Terabits, Percent, Count, Bytes/Second, Kilobytes/Second, Megabytes/Second, Gigabytes/Second, Terabytes/Second, Bits/Second, Kilobits/Second, Megabits/Second, Gigabits/Second, Terabits/Second, Count/Second, or None\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Bits | Bits/Second | Bytes | Bytes/Second | Count | Count/Second | Gigabits | Gigabits/Second | Gigabytes | Gigabytes/Second | Kilobits | Kilobits/Second | Kilobytes | Kilobytes/Second | Megabits | Megabits/Second | Megabytes | Megabytes/Second | Microseconds | Milliseconds | None | Percent | Seconds | Terabits | Terabits/Second | Terabytes | Terabytes/Second` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudWatch::Alarm Dimension": { + "Name": "The name of the dimension, from 1\u2013255 characters in length\\. This dimension name must have been included when the metric was published\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value for the dimension, from 1\u2013255 characters in length\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudWatch::Alarm Metric": { + "Dimensions": "The metric dimensions that you want to be used for the metric that the alarm will watch\\.\\. \n*Required*: No \n*Type*: List of [Dimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-dimension.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricName": "The name of the metric that you want the alarm to watch\\. This is a required field\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Namespace": "The namespace of the metric that the alarm will watch\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[^:].*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudWatch::Alarm MetricDataQuery": { + "AccountId": "The ID of the account where the metrics are located, if this is a cross\\-account alarm\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Expression": "The math expression to be performed on the returned data, if this object is performing a math expression\\. This expression can use the `Id` of the other metrics to refer to those metrics, and can also use the `Id` of other expressions to use the result of those expressions\\. For more information about metric math expressions, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *Amazon CloudWatch User Guide*\\. \nWithin each MetricDataQuery object, you must specify either `Expression` or `MetricStat` but not both\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "A short name used to tie this object to the results in the response\\. This name must be unique within a single call to `GetMetricData`\\. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression\\. The valid characters are letters, numbers, and underscore\\. The first character must be a lowercase letter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Label": "A human\\-readable label for this metric or expression\\. This is especially useful if this is an expression, so that you know what the value represents\\. If the metric or expression is shown in a CloudWatch dashboard widget, the label is shown\\. If `Label` is omitted, CloudWatch generates a default\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricStat": "The metric to be returned, along with statistics, period, and units\\. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data\\. \nWithin one MetricDataQuery object, you must specify either `Expression` or `MetricStat` but not both\\. \n*Required*: No \n*Type*: [MetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Period": "The granularity, in seconds, of the returned data points\\. For metrics with regular resolution, a period can be as short as one minute \\(60 seconds\\) and must be a multiple of 60\\. For high\\-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60\\. High\\-resolution metrics are those metrics stored by a `PutMetricData` operation that includes a `StorageResolution of 1 second`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReturnData": "This option indicates whether to return the timestamps and raw data values of this metric\\. \nWhen you create an alarm based on a metric math expression, specify `True` for this value for only the one math expression that the alarm is based on\\. You must specify `False` for `ReturnData` for all the other metrics and expressions used in the alarm\\. \nThis field is required\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudWatch::Alarm MetricStat": { + "Metric": "The metric to return, including the metric name, namespace, and dimensions\\. \n*Required*: Yes \n*Type*: [Metric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Period": "The granularity, in seconds, of the returned data points\\. For metrics with regular resolution, a period can be as short as one minute \\(60 seconds\\) and must be a multiple of 60\\. For high\\-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60\\. High\\-resolution metrics are those metrics stored by a `PutMetricData` call that includes a `StorageResolution` of 1 second\\. \nIf the `StartTime` parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: \n+ Start time between 3 hours and 15 days ago \\- Use a multiple of 60 seconds \\(1 minute\\)\\.\n+ Start time between 15 and 63 days ago \\- Use a multiple of 300 seconds \\(5 minutes\\)\\.\n+ Start time greater than 63 days ago \\- Use a multiple of 3600 seconds \\(1 hour\\)\\.\n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Stat": "The statistic to return\\. It can include any CloudWatch statistic or extended statistic\\. For a list of valid values, see the table in [ Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *Amazon CloudWatch User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Unit": "The unit to use for the returned data points\\. \nValid values are: Seconds, Microseconds, Milliseconds, Bytes, Kilobytes, Megabytes, Gigabytes, Terabytes, Bits, Kilobits, Megabits, Gigabits, Terabits, Percent, Count, Bytes/Second, Kilobytes/Second, Megabytes/Second, Gigabytes/Second, Terabytes/Second, Bits/Second, Kilobits/Second, Megabits/Second, Gigabits/Second, Terabits/Second, Count/Second, or None\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Bits | Bits/Second | Bytes | Bytes/Second | Count | Count/Second | Gigabits | Gigabits/Second | Gigabytes | Gigabytes/Second | Kilobits | Kilobits/Second | Kilobytes | Kilobytes/Second | Megabits | Megabits/Second | Megabytes | Megabytes/Second | Microseconds | Milliseconds | None | Percent | Seconds | Terabits | Terabits/Second | Terabytes | Terabytes/Second` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudWatch::AnomalyDetector": { + "Configuration": "Specifies details about how the anomaly detection model is to be trained, including time ranges to exclude when training and updating the model\\. The configuration can also include the time zone to use for the metric\\. \n*Required*: No \n*Type*: [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-configuration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Dimensions": "The dimensions of the metric associated with the anomaly detection band\\. \n*Required*: No \n*Type*: List of [Dimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-dimension.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MetricMathAnomalyDetector": "The CloudWatch metric math expression for this anomaly detector\\. \n*Required*: No \n*Type*: [MetricMathAnomalyDetector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricmathanomalydetector.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MetricName": "The name of the metric associated with the anomaly detection band\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Namespace": "The namespace of the metric associated with the anomaly detection band\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SingleMetricAnomalyDetector": "The CloudWatch metric and statistic for this anomaly detector\\. \n*Required*: No \n*Type*: [SingleMetricAnomalyDetector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-singlemetricanomalydetector.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Stat": "The statistic of the metric associated with the anomaly detection band\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CloudWatch::AnomalyDetector Configuration": { + "ExcludedTimeRanges": "Specifies an array of time ranges to exclude from use when the anomaly detection model is trained and updated\\. Use this to make sure that events that could cause unusual values for the metric, such as deployments, aren't used when CloudWatch creates or updates the model\\. \n*Required*: No \n*Type*: List of [Range](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-range.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricTimeZone": "The time zone to use for the metric\\. This is useful to enable the model to automatically account for daylight savings time changes if the metric is sensitive to such time changes\\. \nTo specify a time zone, use the name of the time zone as specified in the standard tz database\\. For more information, see [tz database](https://en.wikipedia.org/wiki/Tz_database)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudWatch::AnomalyDetector Dimension": { + "Name": "The name of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Value": "The value of the dimension\\. Dimension values must contain only ASCII characters and must include at least one non\\-whitespace character\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CloudWatch::AnomalyDetector Metric": { + "Dimensions": "The dimensions for the metric\\. \n*Required*: No \n*Type*: List of [Dimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-dimension.html) \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MetricName": "The name of the metric\\. This is a required field\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Namespace": "The namespace of the metric\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[^:].*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CloudWatch::AnomalyDetector MetricDataQuery": { + "AccountId": "The ID of the account where the metrics are located, if this is a cross\\-account alarm\\. \nUse this field only for `PutMetricAlarm` operations\\. It is not used in `GetMetricData` operations\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Expression": "This field can contain either a Metrics Insights query, or a metric math expression to be performed on the returned data\\. For more information about Metrics Insights queries, see [Metrics Insights query components and syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-metrics-insights-querylanguage) in the *Amazon CloudWatch User Guide*\\. \nA math expression can use the `Id` of the other metrics or queries to refer to those metrics, and can also use the `Id` of other expressions to use the result of those expressions\\. For more information about metric math expressions, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *Amazon CloudWatch User Guide*\\. \nWithin each MetricDataQuery object, you must specify either `Expression` or `MetricStat` but not both\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Id": "A short name used to tie this object to the results in the response\\. This name must be unique within a single call to `GetMetricData`\\. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression\\. The valid characters are letters, numbers, and underscore\\. The first character must be a lowercase letter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Label": "A human\\-readable label for this metric or expression\\. This is especially useful if this is an expression, so that you know what the value represents\\. If the metric or expression is shown in a CloudWatch dashboard widget, the label is shown\\. If Label is omitted, CloudWatch generates a default\\. \nYou can put dynamic expressions into a label, so that it is more descriptive\\. For more information, see [Using Dynamic Labels](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph-dynamic-labels.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricStat": "The metric to be returned, along with statistics, period, and units\\. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data\\. \nWithin one MetricDataQuery object, you must specify either `Expression` or `MetricStat` but not both\\. \n*Required*: No \n*Type*: [MetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricstat.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Period": "The granularity, in seconds, of the returned data points\\. For metrics with regular resolution, a period can be as short as one minute \\(60 seconds\\) and must be a multiple of 60\\. For high\\-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60\\. High\\-resolution metrics are those metrics stored by a `PutMetricData` operation that includes a `StorageResolution of 1 second`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ReturnData": "When used in `GetMetricData`, this option indicates whether to return the timestamps and raw data values of this metric\\. If you are performing this call just to do math expressions and do not also need the raw data returned, you can specify `False`\\. If you omit this, the default of `True` is used\\. \nWhen used in `PutMetricAlarm`, specify `True` for the one expression result to use as the alarm\\. For all other metrics and expressions in the same `PutMetricAlarm` operation, specify `ReturnData` as False\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudWatch::AnomalyDetector MetricMathAnomalyDetector": { + "MetricDataQueries": "An array of metric data query structures that enables you to create an anomaly detector based on the result of a metric math expression\\. Each item in `MetricDataQueries` gets a metric or performs a math expression\\. One item in `MetricDataQueries` is the expression that provides the time series that the anomaly detector uses as input\\. Designate the expression by setting `ReturnData` to `True` for this object in the array\\. For all other expressions and metrics, set `ReturnData` to `False`\\. The designated expression must return a single time series\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataqueries.html) of [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataquery.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CloudWatch::AnomalyDetector MetricStat": { + "Metric": "The metric to return, including the metric name, namespace, and dimensions\\. \n*Required*: Yes \n*Type*: [Metric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metric.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Period": "The granularity, in seconds, of the returned data points\\. For metrics with regular resolution, a period can be as short as one minute \\(60 seconds\\) and must be a multiple of 60\\. For high\\-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60\\. High\\-resolution metrics are those metrics stored by a `PutMetricData` call that includes a `StorageResolution` of 1 second\\. \nIf the `StartTime` parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: \n+ Start time between 3 hours and 15 days ago \\- Use a multiple of 60 seconds \\(1 minute\\)\\.\n+ Start time between 15 and 63 days ago \\- Use a multiple of 300 seconds \\(5 minutes\\)\\.\n+ Start time greater than 63 days ago \\- Use a multiple of 3600 seconds \\(1 hour\\)\\.\n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Stat": "The statistic to return\\. It can include any CloudWatch statistic or extended statistic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Unit": "When you are using a `Put` operation, this defines what unit you want to use when storing the metric\\. \nIn a `Get` operation, if you omit `Unit` then all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch\\. If you specify a unit, the operation returns only data that was collected with that unit specified\\. If you specify a unit that does not match the data collected, the results of the operation are null\\. CloudWatch does not perform unit conversions\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Bits | Bits/Second | Bytes | Bytes/Second | Count | Count/Second | Gigabits | Gigabits/Second | Gigabytes | Gigabytes/Second | Kilobits | Kilobits/Second | Kilobytes | Kilobytes/Second | Megabits | Megabits/Second | Megabytes | Megabytes/Second | Microseconds | Milliseconds | None | Percent | Seconds | Terabits | Terabits/Second | Terabytes | Terabytes/Second` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CloudWatch::AnomalyDetector Range": { + "EndTime": "The end time of the range to exclude\\. The format is `yyyy-MM-dd'T'HH:mm:ss`\\. For example, `2019-07-01T23:59:59`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StartTime": "The start time of the range to exclude\\. The format is `yyyy-MM-dd'T'HH:mm:ss`\\. For example, `2019-07-01T23:59:59`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudWatch::AnomalyDetector SingleMetricAnomalyDetector": { + "Dimensions": "The metric dimensions to create the anomaly detection model for\\. \n*Required*: No \n*Type*: List of [Dimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-dimension.html) \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MetricName": "The name of the metric to create the anomaly detection model for\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Namespace": "The namespace of the metric to create the anomaly detection model for\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[^:].*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Stat": "The statistic to use for the metric and anomaly detection model\\. \n*Required*: No \n*Type*: String \n*Maximum*: `50` \n*Pattern*: `(SampleCount|Average|Sum|Minimum|Maximum|IQM|(p|tc|tm|ts|wm)(\\d{1,2}(\\.\\d{0,10})?|100)|[ou]\\d+(\\.\\d*)?)(_E|_L|_H)?|(TM|TC|TS|WM)\\(((((\\d{1,2})(\\.\\d{0,10})?|100(\\.0{0,10})?)%)?:((\\d{1,2})(\\.\\d{0,10})?|100(\\.0{0,10})?)%|((\\d{1,2})(\\.\\d{0,10})?|100(\\.0{0,10})?)%:(((\\d{1,2})(\\.\\d{0,10})?|100(\\.0{0,10})?)%)?)\\)|(TM|TC|TS|WM|PR)\\(((\\d+(\\.\\d{0,10})?|(\\d+(\\.\\d{0,10})?[Ee][+-]?\\d+)):((\\d+(\\.\\d{0,10})?|(\\d+(\\.\\d{0,10})?[Ee][+-]?\\d+)))?|((\\d+(\\.\\d{0,10})?|(\\d+(\\.\\d{0,10})?[Ee][+-]?\\d+)))?:(\\d+(\\.\\d{0,10})?|(\\d+(\\.\\d{0,10})?[Ee][+-]?\\d+)))\\)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CloudWatch::CompositeAlarm": { + "ActionsEnabled": "Indicates whether actions should be executed during any changes to the alarm state of the composite alarm\\. The default is TRUE\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AlarmActions": "The actions to execute when this alarm transitions to the ALARM state from any other state\\. Each action is specified as an Amazon Resource Name \\(ARN\\)\\. For more information about creating alarms and the actions that you can specify, see [PutCompositeAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutCompositeAlarm.html) in the *Amazon CloudWatch API Reference*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AlarmDescription": "The description for the composite alarm\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AlarmName": "The name for the composite alarm\\. This name must be unique within your AWS account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AlarmRule": "An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state\\. For each alarm that you reference, you designate a function that specifies whether that alarm needs to be in ALARM state, OK state, or INSUFFICIENT\\_DATA state\\. You can use operators \\(AND, OR and NOT\\) to combine multiple functions in a single expression\\. You can use parenthesis to logically group the functions in your expression\\. \nYou can use either alarm names or ARNs to reference the other alarms that are to be evaluated\\. \nFunctions can include the following: \n+ ALARM\\(\"alarm\\-name or alarm\\-ARN\"\\) is TRUE if the named alarm is in ALARM state\\. \n+ OK\\(\"alarm\\-name or alarm\\-ARN\"\\) is TRUE if the named alarm is in OK state\\. \n+ INSUFFICIENT\\_DATA\\(\"alarm\\-name or alarm\\-ARN\"\\) is TRUE if the named alarm is in INSUFFICIENT\\_DATA state\\. \n+ TRUE always evaluates to TRUE\\.\n+ FALSE always evaluates to FALSE\\.\n TRUE and FALSE are useful for testing a complex AlarmRule structure, and for testing your alarm actions\\. \nFor more information about `AlarmRule` syntax, see [PutCompositeAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutCompositeAlarm.html) in the *Amazon CloudWatch API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InsufficientDataActions": "The actions to execute when this alarm transitions to the INSUFFICIENT\\_DATA state from any other state\\. Each action is specified as an Amazon Resource Name \\(ARN\\)\\. For more information about creating alarms and the actions that you can specify, see [PutCompositeAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutCompositeAlarm.html) in the *Amazon CloudWatch API Reference*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OKActions": "The actions to execute when this alarm transitions to the OK state from any other state\\. Each action is specified as an Amazon Resource Name \\(ARN\\)\\. For more information about creating alarms and the actions that you can specify, see [PutCompositeAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutCompositeAlarm.html) in the *Amazon CloudWatch API Reference*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudWatch::Dashboard": { + "DashboardBody": "The detailed information about the dashboard in JSON format, including the widgets to include and their location on the dashboard\\. This parameter is required\\. \nFor more information about the syntax, see [Dashboard Body Structure and Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Dashboard-Body-Structure.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DashboardName": "The name of the dashboard\\. The name must be between 1 and 255 characters\\. If you do not specify a name, one will be generated automatically\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CloudWatch::InsightRule": { + "RuleBody": "The definition of the rule, as a JSON object\\. For details about the syntax, see [ Contributor Insights Rule Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights-RuleSyntax.html) in the *Amazon CloudWatch User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleName": "The name of the rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RuleState": "The current state of the rule\\. Valid values are `ENABLED` and `DISABLED`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A list of key\\-value pairs to associate with the Contributor Insights rule\\. You can associate as many as 50 tags with a rule\\. \nTags can help you organize and categorize your resources\\. For more information, see [ Tagging Your Amazon CloudWatch Resources](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Tagging.html)\\. \nTo be able to associate tags with a rule, you must have the `cloudwatch:TagResource` permission in addition to the `cloudwatch:PutInsightRule` permission\\. \n*Required*: No \n*Type*: [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-insightrule-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudWatch::MetricStream": { + "ExcludeFilters": "If you specify this parameter, the stream sends metrics from all metric namespaces except for the namespaces that you specify here\\. You cannot specify both `IncludeFilters` and `ExcludeFilters` in the same metric stream\\. \nWhen you modify the `IncludeFilters` or `ExcludeFilters` of an existing metric stream in any way, the metric stream is effectively restarted, so after such a change you will get only the datapoints that have a timestamp after the time of the update\\. \n*Required*: No \n*Type*: List of [MetricStreamFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-metricstream-metricstreamfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FirehoseArn": "The ARN of the Amazon Kinesis Firehose delivery stream to use for this metric stream\\. This Amazon Kinesis Firehose delivery stream must already exist and must be in the same account as the metric stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeFilters": "If you specify this parameter, the stream sends only the metrics from the metric namespaces that you specify here\\. You cannot specify both `IncludeFilters` and `ExcludeFilters` in the same metric stream\\. \nWhen you modify the `IncludeFilters` or `ExcludeFilters` of an existing metric stream in any way, the metric stream is effectively restarted, so after such a change you will get only the datapoints that have a timestamp after the time of the update\\. \n*Required*: No \n*Type*: List of [MetricStreamFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-metricstream-metricstreamfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "If you are creating a new metric stream, this is the name for the new stream\\. The name must be different than the names of other metric streams in this account and Region\\. \nIf you are updating a metric stream, specify the name of that stream here\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OutputFormat": "The output format for the stream\\. Valid values are `json` and `opentelemetry0.7` For more information about metric stream output formats, see [ Metric streams output formats](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-metric-streams-formats.html)\\. \nThis parameter is required\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of an IAM role that this metric stream will use to access Amazon Kinesis Firehose resources\\. This IAM role must already exist and must be in the same account as the metric stream\\. This IAM role must include the `firehose:PutRecord` and `firehose:PutRecordBatch` permissions\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to the metric stream\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CloudWatch::MetricStream MetricStreamFilter": { + "Namespace": "The name of the metric namespace in the filter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeArtifact::Domain": { + "DomainName": "A string that specifies the name of the requested domain\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `50` \n*Pattern*: `[a-z][a-z0-9\\-]{0,48}[a-z0-9]` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EncryptionKey": "The key used to encrypt the domain\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1011` \n*Pattern*: `\\S+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PermissionsPolicyDocument": "The document that defines the resource policy that is set on a domain\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A list of tags to be applied to the domain\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeArtifact::Repository": { + "Description": "A text description of the repository\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Pattern*: `\\P{C}*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainName": "The name of the domain that contains the repository\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `50` \n*Pattern*: `[a-z][a-z0-9\\-]{0,48}[a-z0-9]` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DomainOwner": "The 12\\-digit account number of the AWS account that owns the domain that contains the repository\\. It does not include dashes or spaces\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `[0-9]{12}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ExternalConnections": "An array of external connections associated with the repository\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PermissionsPolicyDocument": "The document that defines the resource policy that is set on a repository\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RepositoryName": "The name of an upstream repository\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9][A-Za-z0-9._\\-]{1,99}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A list of tags to be applied to the repository\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Upstreams": "A list of upstream repositories to associate with the repository\\. The order of the upstream repositories in the list determines their priority order when AWS CodeArtifact looks for a requested package version\\. For more information, see [Working with upstream repositories](https://docs.aws.amazon.com/codeartifact/latest/ug/repos-upstream.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::Project": { + "Artifacts": "`Artifacts` is a property of the [ AWS::CodeBuild::Project](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html) resource that specifies output settings for artifacts generated by an AWS CodeBuild build\\. \n*Required*: Yes \n*Type*: [Artifacts](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BadgeEnabled": "Indicates whether AWS CodeBuild generates a publicly accessible URL for your project's build badge\\. For more information, see [Build Badges Sample](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-build-badges.html) in the *AWS CodeBuild User Guide*\\. \n Including build badges with your project is currently not supported if the source type is CodePipeline\\. If you specify `CODEPIPELINE` for the `Source` property, do not specify the `BadgeEnabled` property\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BuildBatchConfig": "A `ProjectBuildBatchConfig` object that defines the batch build options for the project\\. \n*Required*: No \n*Type*: [ProjectBuildBatchConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectbuildbatchconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Cache": "Settings that AWS CodeBuild uses to store and reuse build dependencies\\. \n*Required*: No \n*Type*: [ProjectCache](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConcurrentBuildLimit": "The maximum number of concurrent builds that are allowed for this project\\. \nNew builds are only started if the current number of builds is less than or equal to this limit\\. If the current build count meets this limit, new builds are throttled and are not run\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description that makes the build project easy to identify\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EncryptionKey": "The AWS Key Management Service customer master key \\(CMK\\) to be used for encrypting the build output artifacts\\. \nYou can use a cross\\-account KMS key to encrypt the build output artifacts if your service role has permission to that key\\. \nYou can specify either the Amazon Resource Name \\(ARN\\) of the CMK or, if available, the CMK's alias \\(using the format `alias/`\\)\\. If you don't specify a value, CodeBuild uses the managed CMK for Amazon Simple Storage Service \\(Amazon S3\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Environment": "The build environment settings for the project, such as the environment type or the environment variables to use for the build environment\\. \n*Required*: Yes \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FileSystemLocations": "An array of `ProjectFileSystemLocation` objects for a CodeBuild build project\\. A `ProjectFileSystemLocation` object specifies the `identifier`, `location`, `mountOptions`, `mountPoint`, and `type` of a file system created using Amazon Elastic File System\\. \n*Required*: No \n*Type*: List of [ProjectFileSystemLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectfilesystemlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogsConfig": "Information about logs for the build project\\. A project can create logs in CloudWatch Logs, an S3 bucket, or both\\. \n*Required*: No \n*Type*: [LogsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-logsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the build project\\. The name must be unique across all of the projects in your AWS account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `255` \n*Pattern*: `[A-Za-z0-9][A-Za-z0-9\\-_]{1,254}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "QueuedTimeoutInMinutes": "The number of minutes a build is allowed to be queued before it times out\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `5` \n*Maximum*: `480` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceAccessRole": "The ARN of the IAM role that enables CodeBuild to access the CloudWatch Logs and Amazon S3 artifacts for the project's builds\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecondaryArtifacts": "A list of `Artifacts` objects\\. Each artifacts object specifies output settings that the project generates during a build\\. \n*Required*: No \n*Type*: List of [Artifacts](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html) \n*Maximum*: `12` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecondarySourceVersions": "An array of `ProjectSourceVersion` objects\\. If `secondarySourceVersions` is specified at the build level, then they take over these `secondarySourceVersions` \\(at the project level\\)\\. \n*Required*: No \n*Type*: List of [ProjectSourceVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectsourceversion.html) \n*Maximum*: `12` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecondarySources": "An array of `ProjectSource` objects\\. \n*Required*: No \n*Type*: List of [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html) \n*Maximum*: `12` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceRole": "The ARN of the IAM role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Source": "The source code settings for the project, such as the source code's repository type and location\\. \n*Required*: Yes \n*Type*: [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceVersion": "A version of the build input to be built for this project\\. If not specified, the latest version is used\\. If specified, it must be one of: \n+ For CodeCommit: the commit ID, branch, or Git tag to use\\.\n+ For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build\\. If a pull request ID is specified, it must use the format `pr/pull-request-ID` \\(for example `pr/25`\\)\\. If a branch name is specified, the branch's HEAD commit ID is used\\. If not specified, the default branch's HEAD commit ID is used\\.\n+ For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build\\. If a branch name is specified, the branch's HEAD commit ID is used\\. If not specified, the default branch's HEAD commit ID is used\\.\n+ For Amazon S3: the version ID of the object that represents the build input ZIP file to use\\.\nIf `sourceVersion` is specified at the build level, then that version takes precedence over this `sourceVersion` \\(at the project level\\)\\. \nFor more information, see [Source Version Sample with CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-source-version.html) in the * AWS CodeBuild User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An arbitrary set of tags \\(key\\-value pairs\\) for the AWS CodeBuild project\\. \nThese tags are available for use by AWS services that support AWS CodeBuild build project tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeoutInMinutes": "How long, in minutes, from 5 to 480 \\(8 hours\\), for AWS CodeBuild to wait before timing out any related build that did not get marked as completed\\. The default is 60 minutes\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `5` \n*Maximum*: `480` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Triggers": "For an existing AWS CodeBuild build project that has its source code stored in a GitHub repository, enables AWS CodeBuild to begin automatically rebuilding the source code every time a code change is pushed to the repository\\. \n*Required*: No \n*Type*: [ProjectTriggers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projecttriggers.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Visibility": "Specifies the visibility of the project's builds\\. Possible values are: \nPUBLIC\\_READ \nThe project builds are visible to the public\\. \nPRIVATE \nThe project builds are not visible to the public\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcConfig": "`VpcConfig` specifies settings that enable AWS CodeBuild to access resources in an Amazon VPC\\. For more information, see [Use AWS CodeBuild with Amazon Virtual Private Cloud](https://docs.aws.amazon.com/codebuild/latest/userguide/vpc-support.html) in the *AWS CodeBuild User Guide*\\. \n*Required*: No \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::Project Artifacts": { + "ArtifactIdentifier": "An identifier for this artifact definition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EncryptionDisabled": "Set to true if you do not want your output artifacts encrypted\\. This option is valid only if your artifacts type is Amazon Simple Storage Service \\(Amazon S3\\)\\. If this is set with another artifacts type, an `invalidInputException` is thrown\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Location": "Information about the build output artifact location: \n+ If `type` is set to `CODEPIPELINE`, AWS CodePipeline ignores this value if specified\\. This is because CodePipeline manages its build output locations instead of CodeBuild\\.\n+ If `type` is set to `NO_ARTIFACTS`, this value is ignored if specified, because no build output is produced\\.\n+ If `type` is set to `S3`, this is the name of the output bucket\\.\n If you specify `CODEPIPELINE` or `NO_ARTIFACTS` for the `Type` property, don't specify this property\\. For all of the other types, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "Along with `path` and `namespaceType`, the pattern that AWS CodeBuild uses to name and store the output artifact: \n+ If `type` is set to `CODEPIPELINE`, AWS CodePipeline ignores this value if specified\\. This is because CodePipeline manages its build output names instead of AWS CodeBuild\\.\n+ If `type` is set to `NO_ARTIFACTS`, this value is ignored if specified, because no build output is produced\\.\n+ If `type` is set to `S3`, this is the name of the output artifact object\\. If you set the name to be a forward slash \\(\"/\"\\), the artifact is stored in the root of the output bucket\\.\nFor example: \n+ If `path` is set to `MyArtifacts`, `namespaceType` is set to `BUILD_ID`, and `name` is set to `MyArtifact.zip`, then the output artifact is stored in `MyArtifacts/build-ID/MyArtifact.zip`\\. \n+ If `path` is empty, `namespaceType` is set to `NONE`, and `name` is set to \"`/`\", the output artifact is stored in the root of the output bucket\\. \n+ If `path` is set to `MyArtifacts`, `namespaceType` is set to `BUILD_ID`, and `name` is set to \"`/`\", the output artifact is stored in `MyArtifacts/build-ID `\\. \n If you specify `CODEPIPELINE` or `NO_ARTIFACTS` for the `Type` property, don't specify this property\\. For all of the other types, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NamespaceType": "Along with `path` and `name`, the pattern that AWS CodeBuild uses to determine the name and location to store the output artifact: \n+ If `type` is set to `CODEPIPELINE`, CodePipeline ignores this value if specified\\. This is because CodePipeline manages its build output names instead of AWS CodeBuild\\.\n+ If `type` is set to `NO_ARTIFACTS`, this value is ignored if specified, because no build output is produced\\.\n+ If `type` is set to `S3`, valid values include:\n + `BUILD_ID`: Include the build ID in the location of the build output artifact\\.\n + `NONE`: Do not include the build ID\\. This is the default if `namespaceType` is not specified\\.\nFor example, if `path` is set to `MyArtifacts`, `namespaceType` is set to `BUILD_ID`, and `name` is set to `MyArtifact.zip`, the output artifact is stored in `MyArtifacts//MyArtifact.zip`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BUILD_ID | NONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OverrideArtifactName": "If set to true a name specified in the buildspec file overrides the artifact name\\. The name specified in a buildspec file is calculated at build time and uses the Shell command language\\. For example, you can append a date and time to your artifact name so that it is always unique\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Packaging": "The type of build output artifact to create: \n+ If `type` is set to `CODEPIPELINE`, CodePipeline ignores this value if specified\\. This is because CodePipeline manages its build output artifacts instead of AWS CodeBuild\\.\n+ If `type` is set to `NO_ARTIFACTS`, this value is ignored if specified, because no build output is produced\\.\n+ If `type` is set to `S3`, valid values include:\n + `NONE`: AWS CodeBuild creates in the output bucket a folder that contains the build output\\. This is the default if `packaging` is not specified\\.\n + `ZIP`: AWS CodeBuild creates in the output bucket a ZIP file that contains the build output\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | ZIP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Path": "Along with `namespaceType` and `name`, the pattern that AWS CodeBuild uses to name and store the output artifact: \n+ If `type` is set to `CODEPIPELINE`, CodePipeline ignores this value if specified\\. This is because CodePipeline manages its build output names instead of AWS CodeBuild\\.\n+ If `type` is set to `NO_ARTIFACTS`, this value is ignored if specified, because no build output is produced\\.\n+ If `type` is set to `S3`, this is the path to the output artifact\\. If `path` is not specified, `path` is not used\\.\nFor example, if `path` is set to `MyArtifacts`, `namespaceType` is set to `NONE`, and `name` is set to `MyArtifact.zip`, the output artifact is stored in the output bucket at `MyArtifacts/MyArtifact.zip`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of build output artifact\\. Valid values include: \n+ `CODEPIPELINE`: The build project has build output generated through CodePipeline\\. \n**Note** \nThe `CODEPIPELINE` type is not supported for `secondaryArtifacts`\\.\n+ `NO_ARTIFACTS`: The build project does not produce any build output\\.\n+ `S3`: The build project stores build output in Amazon S3\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `CODEPIPELINE | NO_ARTIFACTS | S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::Project BatchRestrictions": { + "ComputeTypesAllowed": "An array of strings that specify the compute types that are allowed for the batch build\\. See [Build environment compute types](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) in the * AWS CodeBuild User Guide* for these values\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaximumBuildsAllowed": "Specifies the maximum number of builds allowed\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::Project BuildStatusConfig": { + "Context": "Specifies the context of the build status CodeBuild sends to the source provider\\. The usage of this parameter depends on the source provider\\. \nBitbucket \nThis parameter is used for the `name` parameter in the Bitbucket commit status\\. For more information, see [build](https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/commit/%7Bnode%7D/statuses/build) in the Bitbucket API documentation\\. \nGitHub/GitHub Enterprise Server \nThis parameter is used for the `context` parameter in the GitHub commit status\\. For more information, see [Create a commit status](https://developer.github.com/v3/repos/statuses/#create-a-commit-status) in the GitHub developer guide\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetUrl": "Specifies the target url of the build status CodeBuild sends to the source provider\\. The usage of this parameter depends on the source provider\\. \nBitbucket \nThis parameter is used for the `url` parameter in the Bitbucket commit status\\. For more information, see [build](https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/commit/%7Bnode%7D/statuses/build) in the Bitbucket API documentation\\. \nGitHub/GitHub Enterprise Server \nThis parameter is used for the `target_url` parameter in the GitHub commit status\\. For more information, see [Create a commit status](https://developer.github.com/v3/repos/statuses/#create-a-commit-status) in the GitHub developer guide\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::Project CloudWatchLogsConfig": { + "GroupName": "The group name of the logs in CloudWatch Logs\\. For more information, see [Working with Log Groups and Log Streams](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Status": "The current status of the logs in CloudWatch Logs for a build project\\. Valid values are: \n+ `ENABLED`: CloudWatch Logs are enabled for this build project\\.\n+ `DISABLED`: CloudWatch Logs are not enabled for this build project\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamName": "The prefix of the stream name of the CloudWatch Logs\\. For more information, see [Working with Log Groups and Log Streams](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::Project Environment": { + "Certificate": "The ARN of the Amazon S3 bucket, path prefix, and object key that contains the PEM\\-encoded certificate for the build project\\. For more information, see [certificate](https://docs.aws.amazon.com/codebuild/latest/userguide/create-project-cli.html#cli.environment.certificate) in the * AWS CodeBuild User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ComputeType": "The type of compute environment\\. This determines the number of CPU cores and memory the build environment uses\\. Available values include: \n+ `BUILD_GENERAL1_SMALL`: Use up to 3 GB memory and 2 vCPUs for builds\\.\n+ `BUILD_GENERAL1_MEDIUM`: Use up to 7 GB memory and 4 vCPUs for builds\\.\n+ `BUILD_GENERAL1_LARGE`: Use up to 15 GB memory and 8 vCPUs for builds\\.\n For more information, see [Build Environment Compute Types](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) in the *AWS CodeBuild User Guide\\.* \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnvironmentVariables": "A set of environment variables to make available to builds for this build project\\. \n*Required*: No \n*Type*: List of [EnvironmentVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environmentvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Image": "The image tag or image digest that identifies the Docker image to use for this build project\\. Use the following formats: \n+ For an image tag: `/:`\\. For example, in the Docker repository that CodeBuild uses to manage its Docker images, this would be `aws/codebuild/standard:4.0`\\. \n+ For an image digest: `/@`\\. For example, to specify an image with the digest \"sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf,\" use `/@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf`\\.\nFor more information, see [Docker images provided by CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html) in the * AWS CodeBuild user guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImagePullCredentialsType": "The type of credentials AWS CodeBuild uses to pull images in your build\\. There are two valid values: \n+ `CODEBUILD` specifies that AWS CodeBuild uses its own credentials\\. This requires that you modify your ECR repository policy to trust AWS CodeBuild service principal\\. \n+ `SERVICE_ROLE` specifies that AWS CodeBuild uses your build project's service role\\. \n When you use a cross\\-account or private registry image, you must use SERVICE\\_ROLE credentials\\. When you use an AWS CodeBuild curated image, you must use CODEBUILD credentials\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CODEBUILD | SERVICE_ROLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrivilegedMode": "Enables running the Docker daemon inside a Docker container\\. Set to true only if the build project is used to build Docker images\\. Otherwise, a build that attempts to interact with the Docker daemon fails\\. The default setting is `false`\\. \nYou can initialize the Docker daemon during the install phase of your build by adding one of the following sets of commands to the install phase of your buildspec file: \nIf the operating system's base image is Ubuntu Linux: \n`- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&` \n`- timeout 15 sh -c \"until docker info; do echo .; sleep 1; done\"` \nIf the operating system's base image is Alpine Linux and the previous command does not work, add the `-t` argument to `timeout`: \n`- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&` \n`- timeout -t 15 sh -c \"until docker info; do echo .; sleep 1; done\"` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegistryCredential": "`RegistryCredential` is a property of the [AWS::CodeBuild::Project Environment ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-environment) property that specifies information about credentials that provide access to a private Docker registry\\. When this is set: \n+ `imagePullCredentialsType` must be set to `SERVICE_ROLE`\\. \n+ images cannot be curated or an Amazon ECR image\\. \n*Required*: No \n*Type*: [RegistryCredential](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-registrycredential.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of build environment to use for related builds\\. \n+ The environment type `ARM_CONTAINER` is available only in regions US East \\(N\\. Virginia\\), US East \\(Ohio\\), US West \\(Oregon\\), EU \\(Ireland\\), Asia Pacific \\(Mumbai\\), Asia Pacific \\(Tokyo\\), Asia Pacific \\(Sydney\\), and EU \\(Frankfurt\\)\\.\n+ The environment type `LINUX_CONTAINER` with compute type `build.general1.2xlarge` is available only in regions US East \\(N\\. Virginia\\), US East \\(Ohio\\), US West \\(Oregon\\), Canada \\(Central\\), EU \\(Ireland\\), EU \\(London\\), EU \\(Frankfurt\\), Asia Pacific \\(Tokyo\\), Asia Pacific \\(Seoul\\), Asia Pacific \\(Singapore\\), Asia Pacific \\(Sydney\\), China \\(Beijing\\), and China \\(Ningxia\\)\\.\n+ The environment type `LINUX_GPU_CONTAINER` is available only in regions US East \\(N\\. Virginia\\), US East \\(Ohio\\), US West \\(Oregon\\), Canada \\(Central\\), EU \\(Ireland\\), EU \\(London\\), EU \\(Frankfurt\\), Asia Pacific \\(Tokyo\\), Asia Pacific \\(Seoul\\), Asia Pacific \\(Singapore\\), Asia Pacific \\(Sydney\\) , China \\(Beijing\\), and China \\(Ningxia\\)\\.\n+ The environment types `WINDOWS_CONTAINER` and `WINDOWS_SERVER_2019_CONTAINER` are available only in regions US East \\(N\\. Virginia\\), US East \\(Ohio\\), US West \\(Oregon\\), and EU \\(Ireland\\)\\.\nFor more information, see [Build environment compute types](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) in the * AWS CodeBuild user guide*\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ARM_CONTAINER | LINUX_CONTAINER | LINUX_GPU_CONTAINER | WINDOWS_CONTAINER | WINDOWS_SERVER_2019_CONTAINER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::Project EnvironmentVariable": { + "Name": "The name or key of the environment variable\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of environment variable\\. Valid values include: \n+ `PARAMETER_STORE`: An environment variable stored in Systems Manager Parameter Store\\. To learn how to specify a parameter store environment variable, see [env/parameter\\-store](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.parameter-store) in the * AWS CodeBuild User Guide*\\.\n+ `PLAINTEXT`: An environment variable in plain text format\\. This is the default value\\.\n+ `SECRETS_MANAGER`: An environment variable stored in AWS Secrets Manager\\. To learn how to specify a secrets manager environment variable, see [env/secrets\\-manager](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.secrets-manager) in the * AWS CodeBuild User Guide*\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `PARAMETER_STORE | PLAINTEXT | SECRETS_MANAGER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of the environment variable\\. \nWe strongly discourage the use of `PLAINTEXT` environment variables to store sensitive values, especially AWS secret key IDs and secret access keys\\. `PLAINTEXT` environment variables can be displayed in plain text using the AWS CodeBuild console and the AWS CLI\\. For sensitive values, we recommend you use an environment variable of type `PARAMETER_STORE` or `SECRETS_MANAGER`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::Project GitSubmodulesConfig": { + "FetchSubmodules": "Set to true to fetch Git submodules for your AWS CodeBuild build project\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::Project LogsConfig": { + "CloudWatchLogs": "Information about CloudWatch Logs for a build project\\. CloudWatch Logs are enabled by default\\. \n*Required*: No \n*Type*: [CloudWatchLogsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-cloudwatchlogsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Logs": "Information about logs built to an S3 bucket for a build project\\. S3 logs are not enabled by default\\. \n*Required*: No \n*Type*: [S3LogsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-s3logsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::Project ProjectBuildBatchConfig": { + "BatchReportMode": "Specifies how build status reports are sent to the source provider for the batch build\\. This property is only used when the source provider for your project is Bitbucket, GitHub, or GitHub Enterprise, and your project is configured to report build statuses to the source provider\\. \nREPORT\\_AGGREGATED\\_BATCH \n\\(Default\\) Aggregate all of the build statuses into a single status report\\. \nREPORT\\_INDIVIDUAL\\_BUILDS \nSend a separate status report for each individual build\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `REPORT_AGGREGATED_BATCH | REPORT_INDIVIDUAL_BUILDS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CombineArtifacts": "Specifies if the build artifacts for the batch build should be combined into a single artifact location\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Restrictions": "A `BatchRestrictions` object that specifies the restrictions for the batch build\\. \n*Required*: No \n*Type*: [BatchRestrictions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-batchrestrictions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceRole": "Specifies the service role ARN for the batch build project\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeoutInMins": "Specifies the maximum amount of time, in minutes, that the batch build must be completed in\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::Project ProjectCache": { + "Location": "Information about the cache location: \n+ `NO_CACHE` or `LOCAL`: This value is ignored\\.\n+ `S3`: This is the S3 bucket name/prefix\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Modes": "An array of strings that specify the local cache modes\\. You can use one or more local cache modes at the same time\\. This is only used for `LOCAL` cache types\\. \nPossible values are: \nLOCAL\\_SOURCE\\_CACHE \nCaches Git metadata for primary and secondary sources\\. After the cache is created, subsequent builds pull only the change between commits\\. This mode is a good choice for projects with a clean working directory and a source that is a large Git repository\\. If you choose this option and your project does not use a Git repository \\(GitHub, GitHub Enterprise, or Bitbucket\\), the option is ignored\\. \nLOCAL\\_DOCKER\\_LAYER\\_CACHE \nCaches existing Docker layers\\. This mode is a good choice for projects that build or pull large Docker images\\. It can prevent the performance issues caused by pulling large Docker images down from the network\\. \n+ You can use a Docker layer cache in the Linux environment only\\. \n+ The `privileged` flag must be set so that your project has the required Docker permissions\\. \n+ You should consider the security implications before you use a Docker layer cache\\. \nLOCAL\\_CUSTOM\\_CACHE \nCaches directories you specify in the buildspec file\\. This mode is a good choice if your build scenario is not suited to one of the other three local cache modes\\. If you use a custom cache: \n+ Only directories can be specified for caching\\. You cannot specify individual files\\. \n+ Symlinks are used to reference cached directories\\. \n+ Cached directories are linked to your build before it downloads its project sources\\. Cached items are overridden if a source item has the same name\\. Directories are specified using cache paths in the buildspec file\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of cache used by the build project\\. Valid values include: \n+ `NO_CACHE`: The build project does not use any cache\\.\n+ `S3`: The build project reads and writes from and to S3\\.\n+ `LOCAL`: The build project stores a cache locally on a build host that is only available to that build host\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `LOCAL | NO_CACHE | S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::Project ProjectFileSystemLocation": { + "Identifier": "The name used to access a file system created by Amazon EFS\\. CodeBuild creates an environment variable by appending the `identifier` in all capital letters to `CODEBUILD_`\\. For example, if you specify `my_efs` for `identifier`, a new environment variable is create named `CODEBUILD_MY_EFS`\\. \n The `identifier` is used to mount your file system\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Location": "A string that specifies the location of the file system created by Amazon EFS\\. Its format is `efs-dns-name:/directory-path`\\. You can find the DNS name of file system when you view it in the Amazon EFS console\\. The directory path is a path to a directory in the file system that CodeBuild mounts\\. For example, if the DNS name of a file system is `fs-abcd1234.efs.us-west-2.amazonaws.com`, and its mount directory is `my-efs-mount-directory`, then the `location` is `fs-abcd1234.efs.us-west-2.amazonaws.com:/my-efs-mount-directory`\\. \nThe directory path in the format `efs-dns-name:/directory-path` is optional\\. If you do not specify a directory path, the location is only the DNS name and CodeBuild mounts the entire file system\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MountOptions": "The mount options for a file system created by Amazon EFS\\. The default mount options used by CodeBuild are `nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2`\\. For more information, see [Recommended NFS Mount Options](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-nfs-mount-settings.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MountPoint": "The location in the container where you mount the file system\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of the file system\\. The one supported type is `EFS`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EFS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::Project ProjectSourceVersion": { + "SourceIdentifier": "An identifier for a source in the build project\\. The identifier can only contain alphanumeric characters and underscores, and must be less than 128 characters in length\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceVersion": "The source version for the corresponding source identifier\\. If specified, must be one of: \n+ For CodeCommit: the commit ID, branch, or Git tag to use\\.\n+ For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build\\. If a pull request ID is specified, it must use the format `pr/pull-request-ID` \\(for example, `pr/25`\\)\\. If a branch name is specified, the branch's HEAD commit ID is used\\. If not specified, the default branch's HEAD commit ID is used\\.\n+ For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build\\. If a branch name is specified, the branch's HEAD commit ID is used\\. If not specified, the default branch's HEAD commit ID is used\\.\n+ For Amazon S3: the version ID of the object that represents the build input ZIP file to use\\.\n For more information, see [Source Version Sample with CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-source-version.html) in the * AWS CodeBuild User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::Project ProjectTriggers": { + "BuildType": "Specifies the type of build this webhook will trigger\\. Allowed values are: \nBUILD \nA single build \nBUILD\\_BATCH \nA batch build\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FilterGroups": "A list of lists of `WebhookFilter` objects used to determine which webhook events are triggered\\. At least one `WebhookFilter` in the array must specify `EVENT` as its type\\. \n*Required*: No \n*Type*: List of [FilterGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-filtergroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Webhook": "Specifies whether or not to begin automatically rebuilding the source code every time a code change is pushed to the repository\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::Project RegistryCredential": { + "Credential": "The Amazon Resource Name \\(ARN\\) or name of credentials created using AWS Secrets Manager\\. \n The `credential` can use the name of the credentials only if they exist in your current AWS Region\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CredentialProvider": "The service that created the credentials to access a private Docker registry\\. The valid value, SECRETS\\_MANAGER, is for AWS Secrets Manager\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SECRETS_MANAGER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::Project S3LogsConfig": { + "EncryptionDisabled": "Set to true if you do not want your S3 build log output encrypted\\. By default S3 build logs are encrypted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Location": "The ARN of an S3 bucket and the path prefix for S3 logs\\. If your Amazon S3 bucket name is `my-bucket`, and your path prefix is `build-log`, then acceptable formats are `my-bucket/build-log` or `arn:aws:s3:::my-bucket/build-log`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Status": "The current status of the S3 build logs\\. Valid values are: \n+ `ENABLED`: S3 build logs are enabled for this build project\\.\n+ `DISABLED`: S3 build logs are not enabled for this build project\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::Project Source": { + "Auth": "Information about the authorization settings for AWS CodeBuild to access the source code to be built\\. \nThis information is for the AWS CodeBuild console's use only\\. Your code should not get or set `Auth` directly\\. \n*Required*: No \n*Type*: [SourceAuth](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-sourceauth.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BuildSpec": "The build specification for the project\\. If this value is not provided, then the source code must contain a buildspec file named `buildspec.yml` at the root level\\. If this value is provided, it can be either a single string containing the entire build specification, or the path to an alternate buildspec file relative to the value of the built\\-in environment variable `CODEBUILD_SRC_DIR`\\. The alternate buildspec file can have a name other than `buildspec.yml`, for example `myspec.yml` or `build_spec_qa.yml` or similar\\. For more information, see the [Build Spec Reference](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-example) in the *AWS CodeBuild User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BuildStatusConfig": "Contains information that defines how the build project reports the build status to the source provider\\. This option is only used when the source provider is `GITHUB`, `GITHUB_ENTERPRISE`, or `BITBUCKET`\\. \n*Required*: No \n*Type*: [BuildStatusConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-buildstatusconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GitCloneDepth": "The depth of history to download\\. Minimum value is 0\\. If this value is 0, greater than 25, or not provided, then the full history is downloaded with each build project\\. If your source type is Amazon S3, this value is not supported\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GitSubmodulesConfig": "Information about the Git submodules configuration for the build project\\. \n*Required*: No \n*Type*: [GitSubmodulesConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-gitsubmodulesconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InsecureSsl": "This is used with GitHub Enterprise only\\. Set to true to ignore SSL warnings while connecting to your GitHub Enterprise project repository\\. The default value is `false`\\. `InsecureSsl` should be used for testing purposes only\\. It should not be used in a production environment\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Location": "Information about the location of the source code to be built\\. Valid values include: \n+ For source code settings that are specified in the source action of a pipeline in CodePipeline, `location` should not be specified\\. If it is specified, CodePipeline ignores it\\. This is because CodePipeline uses the settings in a pipeline's source action instead of this value\\.\n+ For source code in an CodeCommit repository, the HTTPS clone URL to the repository that contains the source code and the buildspec file \\(for example, `https://git-codecommit..amazonaws.com/v1/repos/`\\)\\.\n+ For source code in an Amazon S3 input bucket, one of the following\\. \n + The path to the ZIP file that contains the source code \\(for example, `//.zip`\\)\\. \n + The path to the folder that contains the source code \\(for example, `///`\\)\\. \n+ For source code in a GitHub repository, the HTTPS clone URL to the repository that contains the source and the buildspec file\\. You must connect your AWS account to your GitHub account\\. Use the AWS CodeBuild console to start creating a build project\\. When you use the console to connect \\(or reconnect\\) with GitHub, on the GitHub **Authorize application** page, for **Organization access**, choose **Request access** next to each repository you want to allow AWS CodeBuild to have access to, and then choose **Authorize application**\\. \\(After you have connected to your GitHub account, you do not need to finish creating the build project\\. You can leave the AWS CodeBuild console\\.\\) To instruct AWS CodeBuild to use this connection, in the `source` object, set the `auth` object's `type` value to `OAUTH`\\.\n+ For source code in a Bitbucket repository, the HTTPS clone URL to the repository that contains the source and the buildspec file\\. You must connect your AWS account to your Bitbucket account\\. Use the AWS CodeBuild console to start creating a build project\\. When you use the console to connect \\(or reconnect\\) with Bitbucket, on the Bitbucket **Confirm access to your account** page, choose **Grant access**\\. \\(After you have connected to your Bitbucket account, you do not need to finish creating the build project\\. You can leave the AWS CodeBuild console\\.\\) To instruct AWS CodeBuild to use this connection, in the `source` object, set the `auth` object's `type` value to `OAUTH`\\.\n If you specify `CODEPIPELINE` for the `Type` property, don't specify this property\\. For all of the other types, you must specify `Location`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReportBuildStatus": "Set to true to report the status of a build's start and finish to your source provider\\. This option is valid only when your source provider is GitHub, GitHub Enterprise, or Bitbucket\\. If this is set and you use a different source provider, an `invalidInputException` is thrown\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceIdentifier": "An identifier for this project source\\. The identifier can only contain alphanumeric characters and underscores, and must be less than 128 characters in length\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of repository that contains the source code to be built\\. Valid values include: \n+ `BITBUCKET`: The source code is in a Bitbucket repository\\.\n+ `CODECOMMIT`: The source code is in an CodeCommit repository\\.\n+ `CODEPIPELINE`: The source code settings are specified in the source action of a pipeline in CodePipeline\\.\n+ `GITHUB`: The source code is in a GitHub or GitHub Enterprise Cloud repository\\.\n+ `GITHUB_ENTERPRISE`: The source code is in a GitHub Enterprise Server repository\\.\n+ `NO_SOURCE`: The project does not have input source code\\.\n+ `S3`: The source code is in an Amazon S3 bucket\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `BITBUCKET | CODECOMMIT | CODEPIPELINE | GITHUB | GITHUB_ENTERPRISE | NO_SOURCE | S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::Project SourceAuth": { + "Resource": "The resource value that applies to the specified authorization type\\. \n This data type is used by the AWS CodeBuild console only\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The authorization type to use\\. The only valid value is `OAUTH`, which represents the OAuth authorization type\\. \n This data type is used by the AWS CodeBuild console only\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `OAUTH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::Project VpcConfig": { + "SecurityGroupIds": "A list of one or more security groups IDs in your Amazon VPC\\. The maximum count is 5\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Subnets": "A list of one or more subnet IDs in your Amazon VPC\\. The maximum count is 16\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `16` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcId": "The ID of the Amazon VPC\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::Project WebhookFilter": { + "ExcludeMatchedPattern": "Used to indicate that the `pattern` determines which webhook events do not trigger a build\\. If true, then a webhook event that does not match the `pattern` triggers a build\\. If false, then a webhook event that matches the `pattern` triggers a build\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Pattern": "For a `WebHookFilter` that uses `EVENT` type, a comma\\-separated string that specifies one or more events\\. For example, the webhook filter `PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED` allows all push, pull request created, and pull request updated events to trigger a build\\. \n For a `WebHookFilter` that uses any of the other filter types, a regular expression pattern\\. For example, a `WebHookFilter` that uses `HEAD_REF` for its `type` and the pattern `^refs/heads/` triggers a build when the head reference is a branch with a reference name `refs/heads/branch-name`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of webhook filter\\. There are six webhook filter types: `EVENT`, `ACTOR_ACCOUNT_ID`, `HEAD_REF`, `BASE_REF`, `FILE_PATH`, and `COMMIT_MESSAGE`\\. \n EVENT \n A webhook event triggers a build when the provided `pattern` matches one of five event types: `PUSH`, `PULL_REQUEST_CREATED`, `PULL_REQUEST_UPDATED`, `PULL_REQUEST_REOPENED`, and `PULL_REQUEST_MERGED`\\. The `EVENT` patterns are specified as a comma\\-separated string\\. For example, `PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED` filters all push, pull request created, and pull request updated events\\. \n The `PULL_REQUEST_REOPENED` works with GitHub and GitHub Enterprise only\\. \n ACTOR\\_ACCOUNT\\_ID \n A webhook event triggers a build when a GitHub, GitHub Enterprise, or Bitbucket account ID matches the regular expression `pattern`\\. \n HEAD\\_REF \n A webhook event triggers a build when the head reference matches the regular expression `pattern`\\. For example, `refs/heads/branch-name` and `refs/tags/tag-name`\\. \n Works with GitHub and GitHub Enterprise push, GitHub and GitHub Enterprise pull request, Bitbucket push, and Bitbucket pull request events\\. \n BASE\\_REF \n A webhook event triggers a build when the base reference matches the regular expression `pattern`\\. For example, `refs/heads/branch-name`\\. \n Works with pull request events only\\. \n FILE\\_PATH \n A webhook triggers a build when the path of a changed file matches the regular expression `pattern`\\. \n Works with GitHub and Bitbucket events push and pull requests events\\. Also works with GitHub Enterprise push events, but does not work with GitHub Enterprise pull request events\\. \nCOMMIT\\_MESSAGE \nA webhook triggers a build when the head commit message matches the regular expression `pattern`\\. \n Works with GitHub and Bitbucket events push and pull requests events\\. Also works with GitHub Enterprise push events, but does not work with GitHub Enterprise pull request events\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ACTOR_ACCOUNT_ID | BASE_REF | COMMIT_MESSAGE | EVENT | FILE_PATH | HEAD_REF` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::ReportGroup": { + "DeleteReports": "When deleting a report group, specifies if reports within the report group should be deleted\\. \ntrue \nDeletes any reports that belong to the report group before deleting the report group\\. \nfalse \nYou must delete any reports in the report group\\. This is the default value\\. If you delete a report group that contains one or more reports, an exception is thrown\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExportConfig": "Information about the destination where the raw data of this `ReportGroup` is exported\\. \n*Required*: Yes \n*Type*: [ReportExportConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-reportgroup-reportexportconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the `ReportGroup`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `128` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A list of tag key and value pairs associated with this report group\\. \nThese tags are available for use by AWS services that support AWS CodeBuild report group tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of the `ReportGroup`\\. This can be one of the following values: \nCODE\\_COVERAGE \nThe report group contains code coverage reports\\. \nTEST \nThe report group contains test reports\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `CODE_COVERAGE | TEST` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CodeBuild::ReportGroup ReportExportConfig": { + "ExportConfigType": "The export configuration type\\. Valid values are: \n+ `S3`: The report results are exported to an S3 bucket\\. \n+ `NO_EXPORT`: The report results are not exported\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `NO_EXPORT | S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Destination": "A `S3ReportExportConfig` object that contains information about the S3 bucket where the run of a report is exported\\. \n*Required*: No \n*Type*: [S3ReportExportConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-reportgroup-s3reportexportconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::ReportGroup S3ReportExportConfig": { + "Bucket": "The name of the S3 bucket where the raw data of a report are exported\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BucketOwner": "The AWS account identifier of the owner of the Amazon S3 bucket\\. This allows report data to be exported to an Amazon S3 bucket that is owned by an account other than the account running the build\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EncryptionDisabled": "A boolean value that specifies if the results of a report are encrypted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EncryptionKey": "The encryption key for the report's encrypted raw data\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Packaging": "The type of build output artifact to create\\. Valid values include: \n+ `NONE`: CodeBuild creates the raw data in the output bucket\\. This is the default if packaging is not specified\\. \n+ `ZIP`: CodeBuild creates a ZIP file with the raw data in the output bucket\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | ZIP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Path": "The path to the exported report's raw data results\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeBuild::SourceCredential": { + "AuthType": "The type of authentication used by the credentials\\. Valid options are OAUTH, BASIC\\_AUTH, or PERSONAL\\_ACCESS\\_TOKEN\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BASIC_AUTH | OAUTH | PERSONAL_ACCESS_TOKEN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServerType": "The type of source provider\\. The valid options are GITHUB, GITHUB\\_ENTERPRISE, or BITBUCKET\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BITBUCKET | GITHUB | GITHUB_ENTERPRISE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Token": "For GitHub or GitHub Enterprise, this is the personal access token\\. For Bitbucket, this is the app password\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Username": "The Bitbucket username when the `authType` is BASIC\\_AUTH\\. This parameter is not valid for other types of source providers or connections\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeCommit::Repository": { + "Code": "Information about code to be committed to a repository after it is created in an AWS CloudFormation stack\\. Information about code is only used in resource creation\\. Updates to a stack will not reflect changes made to code properties after initial resource creation\\. \nYou can only use this property to add code when creating a repository with a AWS CloudFormation template at creation time\\. This property cannot be used for updating code to an existing repository\\.\n*Required*: No \n*Type*: [Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-code.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RepositoryDescription": "A comment or description about the new repository\\. \nThe description field for a repository accepts all HTML characters and all valid Unicode characters\\. Applications that do not HTML\\-encode the description and display it in a webpage can expose users to potentially malicious code\\. Make sure that you HTML\\-encode the description field in any application that uses this API to display the repository description on a webpage\\.\n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RepositoryName": "The name of the new repository to be created\\. \nThe repository name must be unique across the calling AWS account\\. Repository names are limited to 100 alphanumeric, dash, and underscore characters, and cannot include certain characters\\. For more information about the limits on repository names, see [Quotas](https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html) in the * AWS CodeCommit User Guide*\\. The suffix \\.git is prohibited\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[\\w\\.-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "One or more tag key\\-value pairs to use when tagging this repository\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Triggers": "The JSON block of configuration information for each trigger\\. \n*Required*: No \n*Type*: List of [RepositoryTrigger](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)" + }, + "AWS::CodeCommit::Repository Code": { + "BranchName": "Optional\\. Specifies a branch name to be used as the default branch when importing code into a repository on initial creation\\. If this property is not set, the name *main* will be used for the default branch for the repository\\. Changes to this property are ignored after initial resource creation\\. We recommend using this parameter to set the name to *main* to align with the default behavior of CodeCommit unless another name is needed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3": "Information about the Amazon S3 bucket that contains a ZIP file of code to be committed to the repository\\. Changes to this property are ignored after initial resource creation\\. \n*Required*: Yes \n*Type*: [S3](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-s3.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeCommit::Repository RepositoryTrigger": { + "Branches": "The branches to be included in the trigger configuration\\. If you specify an empty array, the trigger applies to all branches\\. \nAlthough no content is required in the array, you must include the array itself\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomData": "Any custom data associated with the trigger to be included in the information sent to the target of the trigger\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationArn": "The ARN of the resource that is the target for a trigger \\(for example, the ARN of a topic in Amazon SNS\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Events": "The repository events that cause the trigger to run actions in another service, such as sending a notification through Amazon SNS\\. \nThe valid value \"all\" cannot be used with any other values\\.\n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the trigger\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeCommit::Repository S3": { + "Bucket": "The name of the Amazon S3 bucket that contains the ZIP file with the content that will be committed to the new repository\\. This can be specified using the name of the bucket in the AWS account\\. Changes to this property are ignored after initial resource creation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Key": "The key to use for accessing the Amazon S3 bucket\\. Changes to this property are ignored after initial resource creation\\. For more information, see [Creating object key names](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html) and [Uploading objects](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) in the Amazon S3 User Guide\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ObjectVersion": "The object version of the ZIP file, if versioning is enabled for the Amazon S3 bucket\\. Changes to this property are ignored after initial resource creation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::Application": { + "ApplicationName": "A name for the application\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the application name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \n Updates to `ApplicationName` are not supported\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ComputePlatform": "The compute platform that CodeDeploy deploys the application to\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ECS | Lambda | Server` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The metadata that you apply to CodeDeploy applications to help you organize and categorize them\\. Each tag consists of a key and an optional value, both of which you define\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentConfig": { + "ComputePlatform": "The destination platform type for the deployment \\(`Lambda`, `Server`, or `ECS`\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ECS | Lambda | Server` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DeploymentConfigName": "A name for the deployment configuration\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the deployment configuration name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \n If you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MinimumHealthyHosts": "The minimum number of healthy instances that should be available at any time during the deployment\\. There are two parameters expected in the input: type and value\\. \nThe type parameter takes either of the following values: \n+ HOST\\_COUNT: The value parameter represents the minimum number of healthy instances as an absolute value\\.\n+ FLEET\\_PERCENT: The value parameter represents the minimum number of healthy instances as a percentage of the total number of instances in the deployment\\. If you specify FLEET\\_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances\\.\nThe value parameter takes an integer\\. \nFor example, to set a minimum of 95% healthy instance, specify a type of FLEET\\_PERCENT and a value of 95\\. \n For more information about instance health, see [CodeDeploy Instance Health](https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-health.html) in the AWS CodeDeploy User Guide\\. \n*Required*: No \n*Type*: [MinimumHealthyHosts](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-minimumhealthyhosts.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TrafficRoutingConfig": "The configuration that specifies how the deployment traffic is routed\\. \n*Required*: No \n*Type*: [TrafficRoutingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-trafficroutingconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CodeDeploy::DeploymentConfig MinimumHealthyHosts": { + "Type": "The minimum healthy instance type: \n+ HOST\\_COUNT: The minimum number of healthy instance as an absolute value\\.\n+ FLEET\\_PERCENT: The minimum number of healthy instance as a percentage of the total number of instance in the deployment\\.\nIn an example of nine instance, if a HOST\\_COUNT of six is specified, deploy to up to three instances at a time\\. The deployment is successful if six or more instances are deployed to successfully\\. Otherwise, the deployment fails\\. If a FLEET\\_PERCENT of 40 is specified, deploy to up to five instance at a time\\. The deployment is successful if four or more instance are deployed to successfully\\. Otherwise, the deployment fails\\. \nIn a call to `GetDeploymentConfig`, CodeDeployDefault\\.OneAtATime returns a minimum healthy instance type of MOST\\_CONCURRENCY and a value of 1\\. This means a deployment to only one instance at a time\\. \\(You cannot set the type to MOST\\_CONCURRENCY, only to HOST\\_COUNT or FLEET\\_PERCENT\\.\\) In addition, with CodeDeployDefault\\.OneAtATime, AWS CodeDeploy attempts to ensure that all instances but one are kept in a healthy state during the deployment\\. Although this allows one instance at a time to be taken offline for a new deployment, it also means that if the deployment to the last instance fails, the overall deployment is still successful\\.\nFor more information, see [AWS CodeDeploy Instance Health](https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-health.html) in the *AWS CodeDeploy User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `FLEET_PERCENT | HOST_COUNT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The minimum healthy instance value\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentConfig TimeBasedCanary": { + "CanaryInterval": "The number of minutes between the first and second traffic shifts of a `TimeBasedCanary` deployment\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CanaryPercentage": "The percentage of traffic to shift in the first increment of a `TimeBasedCanary` deployment\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentConfig TimeBasedLinear": { + "LinearInterval": "The number of minutes between each incremental traffic shift of a `TimeBasedLinear` deployment\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LinearPercentage": "The percentage of traffic that is shifted at the start of each increment of a `TimeBasedLinear` deployment\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentConfig TrafficRoutingConfig": { + "TimeBasedCanary": "A configuration that shifts traffic from one version of a Lambda function or ECS task set to another in two increments\\. The original and target Lambda function versions or ECS task sets are specified in the deployment's AppSpec file\\. \n*Required*: No \n*Type*: [TimeBasedCanary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-timebasedcanary.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeBasedLinear": "A configuration that shifts traffic from one version of a Lambda function or Amazon ECS task set to another in equal increments, with an equal number of minutes between each increment\\. The original and target Lambda function versions or Amazon ECS task sets are specified in the deployment's AppSpec file\\. \n*Required*: No \n*Type*: [TimeBasedLinear](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-timebasedlinear.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of traffic shifting \\(`TimeBasedCanary` or `TimeBasedLinear`\\) used by a deployment configuration\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AllAtOnce | TimeBasedCanary | TimeBasedLinear` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup": { + "AlarmConfiguration": "Information about the Amazon CloudWatch alarms that are associated with the deployment group\\. \n*Required*: No \n*Type*: [AlarmConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarmconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ApplicationName": "The name of an existing CodeDeploy application to associate this deployment group with\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AutoRollbackConfiguration": "Information about the automatic rollback configuration that is associated with the deployment group\\. If you specify this property, don't specify the `Deployment` property\\. \n*Required*: No \n*Type*: [AutoRollbackConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-autorollbackconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutoScalingGroups": "A list of associated Auto Scaling groups that CodeDeploy automatically deploys revisions to when new instances are created\\. Duplicates are not allowed\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BlueGreenDeploymentConfiguration": "Information about blue/green deployment options for a deployment group\\. \n*Required*: No \n*Type*: [BlueGreenDeploymentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Deployment": "The application revision to deploy to this deployment group\\. If you specify this property, your target application revision is deployed as soon as the provisioning process is complete\\. If you specify this property, don't specify the `AutoRollbackConfiguration` property\\. \n*Required*: No \n*Type*: [Deployment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeploymentConfigName": "A deployment configuration name or a predefined configuration name\\. With predefined configurations, you can deploy application revisions to one instance at a time \\(`CodeDeployDefault.OneAtATime`\\), half of the instances at a time \\(`CodeDeployDefault.HalfAtATime`\\), or all the instances at once \\(`CodeDeployDefault.AllAtOnce`\\)\\. For more information and valid values, see [Working with Deployment Configurations](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html) in the *AWS CodeDeploy User Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeploymentGroupName": "A name for the deployment group\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the deployment group name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \n If you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DeploymentStyle": "Attributes that determine the type of deployment to run and whether to route deployment traffic behind a load balancer\\. \n If you specify this property with a blue/green deployment type, don't specify the `AutoScalingGroups`, `LoadBalancerInfo`, or `Deployment` properties\\. \n For blue/green deployments, AWS CloudFormation supports deployments on Lambda compute platforms only\\. You can perform Amazon ECS blue/green deployments using `AWS::CodeDeploy::BlueGreen ` hook\\. See [Perform Amazon ECS blue/green deployments through CodeDeploy using AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/blue-green.html) for more information\\. \n*Required*: No \n*Type*: [DeploymentStyle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentstyle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ECSServices": "The target Amazon ECS services in the deployment group\\. This applies only to deployment groups that use the Amazon ECS compute platform\\. A target Amazon ECS service is specified as an Amazon ECS cluster and service name pair using the format `:`\\. \n*Required*: No \n*Type*: List of [ECSService](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ecsservice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ec2TagFilters": "The Amazon EC2 tags that are already applied to Amazon EC2 instances that you want to include in the deployment group\\. CodeDeploy includes all Amazon EC2 instances identified by any of the tags you specify in this deployment group\\. Duplicates are not allowed\\. \n You can specify `EC2TagFilters` or `Ec2TagSet`, but not both\\. \n*Required*: No \n*Type*: List of [EC2TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ec2TagSet": "Information about groups of tags applied to Amazon EC2 instances\\. The deployment group includes only Amazon EC2 instances identified by all the tag groups\\. Cannot be used in the same call as `ec2TagFilter`\\. \n*Required*: No \n*Type*: [EC2TagSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoadBalancerInfo": "Information about the load balancer to use in a deployment\\. For more information, see [ Integrating CodeDeploy with Elastic Load Balancing](https://docs.aws.amazon.com/codedeploy/latest/userguide/integrations-aws-elastic-load-balancing.html) in the *AWS CodeDeploy User Guide*\\. \n*Required*: No \n*Type*: [LoadBalancerInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-loadbalancerinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OnPremisesInstanceTagFilters": "The on\\-premises instance tags already applied to on\\-premises instances that you want to include in the deployment group\\. CodeDeploy includes all on\\-premises instances identified by any of the tags you specify in this deployment group\\. To register on\\-premises instances with CodeDeploy, see [Working with On\\-Premises Instances for CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-on-premises.html) in the *AWS CodeDeploy User Guide*\\. Duplicates are not allowed\\. \n You can specify `OnPremisesInstanceTagFilters` or `OnPremisesInstanceTagSet`, but not both\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OnPremisesTagSet": "Information about groups of tags applied to on\\-premises instances\\. The deployment group includes only on\\-premises instances identified by all the tag groups\\. \n You can specify `OnPremisesInstanceTagFilters` or `OnPremisesInstanceTagSet`, but not both\\. \n*Required*: No \n*Type*: [OnPremisesTagSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisestagset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceRoleArn": "A service role Amazon Resource Name \\(ARN\\) that grants CodeDeploy permission to make calls to AWS services on your behalf\\. For more information, see [Create a Service Role for AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-create-service-role.html) in the *AWS CodeDeploy User Guide*\\. \n In some cases, you might need to add a dependency on the service role's policy\\. For more information, see IAM role policy in [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html)\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TriggerConfigurations": "Information about triggers associated with the deployment group\\. Duplicates are not allowed \n*Required*: No \n*Type*: List of [TriggerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-triggerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup Alarm": { + "Name": "The name of the alarm\\. Maximum length is 255 characters\\. Each alarm name can be used only once in a list of alarms\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup AlarmConfiguration": { + "Alarms": "A list of alarms configured for the deployment group\\. A maximum of 10 alarms can be added to a deployment group\\. \n*Required*: No \n*Type*: List of [Alarm](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarm.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Indicates whether the alarm configuration is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IgnorePollAlarmFailure": "Indicates whether a deployment should continue if information about the current state of alarms cannot be retrieved from Amazon CloudWatch\\. The default value is `false`\\. \n+ `true`: The deployment proceeds even if alarm status information can't be retrieved from CloudWatch\\.\n+ `false`: The deployment stops if alarm status information can't be retrieved from CloudWatch\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup AutoRollbackConfiguration": { + "Enabled": "Indicates whether a defined automatic rollback configuration is currently enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Events": "The event type or types that trigger a rollback\\. Valid values are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM`, or `DEPLOYMENT_STOP_ON_REQUEST`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup BlueGreenDeploymentConfiguration": { + "DeploymentReadyOption": "Information about the action to take when newly provisioned instances are ready to receive traffic in a blue/green deployment\\. \n*Required*: No \n*Type*: [DeploymentReadyOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentreadyoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GreenFleetProvisioningOption": "Information about how instances are provisioned for a replacement environment in a blue/green deployment\\. \n*Required*: No \n*Type*: [GreenFleetProvisioningOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-greenfleetprovisioningoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TerminateBlueInstancesOnDeploymentSuccess": "Information about whether to terminate instances in the original fleet during a blue/green deployment\\. \n*Required*: No \n*Type*: [BlueInstanceTerminationOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-blueinstanceterminationoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup BlueInstanceTerminationOption": { + "Action": "The action to take on instances in the original environment after a successful blue/green deployment\\. \n+ `TERMINATE`: Instances are terminated after a specified wait time\\.\n+ `KEEP_ALIVE`: Instances are left running after they are deregistered from the load balancer and removed from the deployment group\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `KEEP_ALIVE | TERMINATE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TerminationWaitTimeInMinutes": "For an Amazon EC2 deployment, the number of minutes to wait after a successful blue/green deployment before terminating instances from the original environment\\. \n For an Amazon ECS deployment, the number of minutes before deleting the original \\(blue\\) task set\\. During an Amazon ECS deployment, CodeDeploy shifts traffic from the original \\(blue\\) task set to a replacement \\(green\\) task set\\. \n The maximum setting is 2880 minutes \\(2 days\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup Deployment": { + "Description": "A comment about the deployment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IgnoreApplicationStopFailures": "If true, then if an `ApplicationStop`, `BeforeBlockTraffic`, or `AfterBlockTraffic` deployment lifecycle event to an instance fails, then the deployment continues to the next deployment lifecycle event\\. For example, if `ApplicationStop` fails, the deployment continues with DownloadBundle\\. If `BeforeBlockTraffic` fails, the deployment continues with `BlockTraffic`\\. If `AfterBlockTraffic` fails, the deployment continues with `ApplicationStop`\\. \n If false or not specified, then if a lifecycle event fails during a deployment to an instance, that deployment fails\\. If deployment to that instance is part of an overall deployment and the number of healthy hosts is not less than the minimum number of healthy hosts, then a deployment to the next instance is attempted\\. \n During a deployment, the AWS CodeDeploy agent runs the scripts specified for `ApplicationStop`, `BeforeBlockTraffic`, and `AfterBlockTraffic` in the AppSpec file from the previous successful deployment\\. \\(All other scripts are run from the AppSpec file in the current deployment\\.\\) If one of these scripts contains an error and does not run successfully, the deployment can fail\\. \n If the cause of the failure is a script from the last successful deployment that will never run successfully, create a new deployment and use `ignoreApplicationStopFailures` to specify that the `ApplicationStop`, `BeforeBlockTraffic`, and `AfterBlockTraffic` failures should be ignored\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Revision": "Information about the location of stored application artifacts and the service from which to retrieve them\\. \n*Required*: Yes \n*Type*: [RevisionLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup DeploymentReadyOption": { + "ActionOnTimeout": "Information about when to reroute traffic from an original environment to a replacement environment in a blue/green deployment\\. \n+ CONTINUE\\_DEPLOYMENT: Register new instances with the load balancer immediately after the new application revision is installed on the instances in the replacement environment\\.\n+ STOP\\_DEPLOYMENT: Do not register new instances with a load balancer unless traffic rerouting is started using [ContinueDeployment ](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ContinueDeployment.html)\\. If traffic rerouting is not started before the end of the specified wait period, the deployment status is changed to Stopped\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `CONTINUE_DEPLOYMENT | STOP_DEPLOYMENT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WaitTimeInMinutes": "The number of minutes to wait before the status of a blue/green deployment is changed to Stopped if rerouting is not started manually\\. Applies only to the `STOP_DEPLOYMENT` option for `actionOnTimeout`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup DeploymentStyle": { + "DeploymentOption": "Indicates whether to route deployment traffic behind a load balancer\\. \n An Amazon EC2 Application Load Balancer or Network Load Balancer is required for an Amazon ECS deployment\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `WITH_TRAFFIC_CONTROL | WITHOUT_TRAFFIC_CONTROL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeploymentType": "Indicates whether to run an in\\-place or blue/green deployment\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BLUE_GREEN | IN_PLACE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup EC2TagFilter": { + "Key": "The tag filter key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The tag filter type: \n+ `KEY_ONLY`: Key only\\.\n+ `VALUE_ONLY`: Value only\\.\n+ `KEY_AND_VALUE`: Key and value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `KEY_AND_VALUE | KEY_ONLY | VALUE_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The tag filter value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup EC2TagSet": { + "Ec2TagSetList": "The Amazon EC2 tags that are already applied to Amazon EC2 instances that you want to include in the deployment group\\. CodeDeploy includes all Amazon EC2 instances identified by any of the tags you specify in this deployment group\\. \n Duplicates are not allowed\\. \n*Required*: No \n*Type*: List of [EC2TagSetListObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagsetlistobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup EC2TagSetListObject": { + "Ec2TagGroup": "A list that contains other lists of Amazon EC2 instance tag groups\\. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list\\. \n*Required*: No \n*Type*: List of [EC2TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup ECSService": { + "ClusterName": "The name of the cluster that the Amazon ECS service is associated with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceName": "The name of the target Amazon ECS service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup ELBInfo": { + "Name": "For blue/green deployments, the name of the load balancer that is used to route traffic from original instances to replacement instances in a blue/green deployment\\. For in\\-place deployments, the name of the load balancer that instances are deregistered from so they are not serving traffic during a deployment, and then re\\-registered with after the deployment is complete\\. \nAWS CloudFormation supports blue/green deployments on AWS Lambda compute platforms only\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup GitHubLocation": { + "CommitId": "The SHA1 commit ID of the GitHub commit that represents the bundled artifacts for the application revision\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Repository": "The GitHub account and repository pair that stores a reference to the commit that represents the bundled artifacts for the application revision\\. \nSpecify the value as `account/repository`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup GreenFleetProvisioningOption": { + "Action": "The method used to add instances to a replacement environment\\. \n+ `DISCOVER_EXISTING`: Use instances that already exist or will be created manually\\.\n+ `COPY_AUTO_SCALING_GROUP`: Use settings from a specified Auto Scaling group to define and create instances in a new Auto Scaling group\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `COPY_AUTO_SCALING_GROUP | DISCOVER_EXISTING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup LoadBalancerInfo": { + "ElbInfoList": "An array that contains information about the load balancer to use for load balancing in a deployment\\. In Elastic Load Balancing, load balancers are used with Classic Load Balancers\\. \n Adding more than one load balancer to the array is not supported\\. \n*Required*: No \n*Type*: List of [ELBInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-elbinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetGroupInfoList": "An array that contains information about the target group to use for load balancing in a deployment\\. In Elastic Load Balancing, target groups are used with Application Load Balancers\\. \n Adding more than one target group to the array is not supported\\. \n*Required*: Conditional \n*Type*: List of [TargetGroupInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-targetgroupinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup OnPremisesTagSet": { + "OnPremisesTagSetList": "A list that contains other lists of on\\-premises instance tag groups\\. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list\\. \nDuplicates are not allowed\\. \n*Required*: No \n*Type*: List of [OnPremisesTagSetListObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisestagsetlistobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup OnPremisesTagSetListObject": { + "OnPremisesTagGroup": "Information about groups of on\\-premises instance tags\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup RevisionLocation": { + "GitHubLocation": "Information about the location of application artifacts stored in GitHub\\. \n*Required*: No \n*Type*: [GitHubLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-githublocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RevisionType": "The type of application revision: \n+ S3: An application revision stored in Amazon S3\\.\n+ GitHub: An application revision stored in GitHub \\(EC2/On\\-premises deployments only\\)\\.\n+ String: A YAML\\-formatted or JSON\\-formatted string \\(AWS Lambda deployments only\\)\\.\n+ AppSpecContent: An `AppSpecContent` object that contains the contents of an AppSpec file for an AWS Lambda or Amazon ECS deployment\\. The content is formatted as JSON or YAML stored as a RawString\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `AppSpecContent | GitHub | S3 | String` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Location": "Information about the location of a revision stored in Amazon S3\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup S3Location": { + "Bucket": "The name of the Amazon S3 bucket where the application revision is stored\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BundleType": "The file type of the application revision\\. Must be one of the following: \n+ JSON\n+ tar: A tar archive file\\.\n+ tgz: A compressed tar archive file\\.\n+ YAML\n+ zip: A zip archive file\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `JSON | tar | tgz | YAML | zip` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ETag": "The ETag of the Amazon S3 object that represents the bundled artifacts for the application revision\\. \nIf the ETag is not specified as an input parameter, ETag validation of the object is skipped\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Key": "The name of the Amazon S3 object that represents the bundled artifacts for the application revision\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "A specific version of the Amazon S3 object that represents the bundled artifacts for the application revision\\. \nIf the version is not specified, the system uses the most recent version by default\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup TagFilter": { + "Key": "The on\\-premises instance tag filter key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The on\\-premises instance tag filter type: \n+ KEY\\_ONLY: Key only\\.\n+ VALUE\\_ONLY: Value only\\.\n+ KEY\\_AND\\_VALUE: Key and value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `KEY_AND_VALUE | KEY_ONLY | VALUE_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The on\\-premises instance tag filter value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup TargetGroupInfo": { + "Name": "For blue/green deployments, the name of the target group that instances in the original environment are deregistered from, and instances in the replacement environment registered with\\. For in\\-place deployments, the name of the target group that instances are deregistered from, so they are not serving traffic during a deployment, and then re\\-registered with after the deployment completes\\. No duplicates allowed\\. \nAWS CloudFormation supports blue/green deployments on AWS Lambda compute platforms only\\.\nThis value cannot exceed 32 characters, so you should use the `Name` property of the target group, or the `TargetGroupName` attribute with the `Fn::GetAtt` intrinsic function, as shown in the following example\\. Don't use the group's Amazon Resource Name \\(ARN\\) or `TargetGroupFullName` attribute\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeDeploy::DeploymentGroup TriggerConfig": { + "TriggerEvents": "The event type or types that trigger notifications\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TriggerName": "The name of the notification trigger\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TriggerTargetArn": "The Amazon Resource Name \\(ARN\\) of the Amazon Simple Notification Service topic through which notifications about deployment or instance events are sent\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeGuruProfiler::ProfilingGroup": { + "AgentPermissions": "The agent permissions attached to this profiling group\\. This action group grants `ConfigureAgent` and `PostAgentProfile` permissions to perform actions required by the profiling agent\\. The Json consists of key `Principals`\\. \n*Principals*: A list of string ARNs for the roles and users you want to grant access to the profiling group\\. Wildcards are not supported in the ARNs\\. You are allowed to provide up to 50 ARNs\\. An empty list is not permitted\\. This is a required key\\. \nFor more information, see [Resource\\-based policies in CodeGuru Profiler](https://docs.aws.amazon.com/codeguru/latest/profiler-ug/resource-based-policies.html) in the *Amazon CodeGuru Profiler user guide*, [ConfigureAgent](https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html), and [PostAgentProfile](https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_PostAgentProfile.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AnomalyDetectionNotificationConfiguration": "Adds anomaly notifications for a profiling group\\. \n*Required*: No \n*Type*: List of [Channel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codeguruprofiler-profilinggroup-channel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ComputePlatform": "The compute platform of the profiling group\\. Use `AWSLambda` if your application runs on AWS Lambda\\. Use `Default` if your application runs on a compute platform that is not AWS Lambda, such an Amazon EC2 instance, an on\\-premises server, or a different platform\\. If not specified, `Default` is used\\. This property is immutable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProfilingGroupName": "The name of the profiling group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A list of tags to add to the created profiling group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeGuruProfiler::ProfilingGroup Channel": { + "channelId": "The channel ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "channelUri": "The channel URI\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeGuruReviewer::RepositoryAssociation": { + "BucketName": "The name of the bucket\\. This is required for your S3Bucket repositoryThe name must start with the prefix, `codeguru-reviewer-*`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ConnectionArn": "The Amazon Resource Name \\(ARN\\) of an AWS CodeStar Connections connection\\. Its format is `arn:aws:codestar-connections:region-id:aws-account_id:connection/connection-id`\\. For more information, see [Connection](https://docs.aws.amazon.com/codestar-connections/latest/APIReference/API_Connection.html) in the *AWS CodeStar Connections API Reference*\\. \n `ConnectionArn` must be specified for Bitbucket and GitHub Enterprise Server repositories\\. It has no effect if it is specified for an AWS CodeCommit repository\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `arn:aws(-[\\w]+)*:.+:.+:[0-9]{12}:.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the repository\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^\\S[\\w.-]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Owner": "The owner of the repository\\. For a GitHub Enterprise Server or Bitbucket repository, this is the username for the account that owns the repository\\. \n `Owner` must be specified for Bitbucket and GitHub Enterprise Server repositories\\. It has no effect if it is specified for an AWS CodeCommit repository\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^\\S(.*\\S)?$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs used to tag an associated repository\\. A tag is a custom attribute label with two parts: \n+ A *tag key* \\(for example, `CostCenter`, `Environment`, `Project`, or `Secret`\\)\\. Tag keys are case sensitive\\.\n+ An optional field known as a *tag value* \\(for example, `111122223333`, `Production`, or a team name\\)\\. Omitting the tag value is the same as using an empty string\\. Like tag keys, tag values are case sensitive\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "The type of repository that contains the source code to be reviewed\\. The valid values are: \n+ `CodeCommit`\n+ `Bitbucket`\n+ `GitHubEnterpriseServer`\n+ `S3Bucket`\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CodePipeline::CustomActionType": { + "Category": "The category of the custom action, such as a build action or a test action\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Approval | Build | Deploy | Invoke | Source | Test` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ConfigurationProperties": "The configuration properties for the custom action\\. \nYou can refer to a name in the configuration properties of the custom action within the URL templates by following the format of \\{Config:name\\}, as long as the configuration property is both required and not secret\\. For more information, see [Create a Custom Action for a Pipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/how-to-create-custom-action.html)\\.\n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html) of [ConfigurationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html) \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InputArtifactDetails": "The details of the input artifact for the action, such as its commit ID\\. \n*Required*: Yes \n*Type*: [ArtifactDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-artifactdetails.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OutputArtifactDetails": "The details of the output artifact of the action, such as its commit ID\\. \n*Required*: Yes \n*Type*: [ArtifactDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-artifactdetails.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Provider": "The provider of the service used in the custom action, such as CodeDeploy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `35` \n*Pattern*: `[0-9A-Za-z_-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Settings": "URLs that provide users information about this custom action\\. \n*Required*: No \n*Type*: [Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-settings.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags for the custom action\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "The version identifier of the custom action\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `9` \n*Pattern*: `[0-9A-Za-z_-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CodePipeline::CustomActionType ArtifactDetails": { + "MaximumCount": "The maximum number of artifacts allowed for the action type\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinimumCount": "The minimum number of artifacts allowed for the action type\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodePipeline::CustomActionType ConfigurationProperties": { + "Description": "The description of the action configuration property that is displayed to users\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `160` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Key": "Whether the configuration property is a key\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the action configuration property\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Queryable": "Indicates that the property is used with `PollForJobs`\\. When creating a custom action, an action can have up to one queryable property\\. If it has one, that property must be both required and not secret\\. \nIf you create a pipeline with a custom action type, and that custom action contains a queryable property, the value for that configuration property is subject to other restrictions\\. The value must be less than or equal to twenty \\(20\\) characters\\. The value can contain only alphanumeric characters, underscores, and hyphens\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Required": "Whether the configuration property is a required value\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Secret": "Whether the configuration property is secret\\. Secrets are hidden from all calls except for `GetJobDetails`, `GetThirdPartyJobDetails`, `PollForJobs`, and `PollForThirdPartyJobs`\\. \nWhen updating a pipeline, passing \\* \\* \\* \\* \\* without changing any other values of the action preserves the previous value of the secret\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of the configuration property\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Boolean | Number | String` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodePipeline::CustomActionType Settings": { + "EntityUrlTemplate": "The URL returned to the CodePipeline console that provides a deep link to the resources of the external system, such as the configuration page for a CodeDeploy deployment group\\. This link is provided as part of the action display in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExecutionUrlTemplate": "The URL returned to the CodePipeline console that contains a link to the top\\-level landing page for the external system, such as the console page for CodeDeploy\\. This link is shown on the pipeline view page in the CodePipeline console and provides a link to the execution entity of the external action\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RevisionUrlTemplate": "The URL returned to the CodePipeline console that contains a link to the page where customers can update or change the configuration of the external action\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThirdPartyConfigurationUrl": "The URL of a sign\\-up page where users can sign up for an external service and perform initial configuration of the action provided by that service\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodePipeline::Pipeline": { + "ArtifactStore": "The S3 bucket where artifacts for the pipeline are stored\\. \nYou must include either `artifactStore` or `artifactStores` in your pipeline, but you cannot use both\\. If you create a cross\\-region action in your pipeline, you must use `artifactStores`\\.\n*Required*: Conditional \n*Type*: [ArtifactStore](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ArtifactStores": "A mapping of `artifactStore` objects and their corresponding AWS Regions\\. There must be an artifact store for the pipeline Region and for each cross\\-region action in the pipeline\\. \nYou must include either `artifactStore` or `artifactStores` in your pipeline, but you cannot use both\\. If you create a cross\\-region action in your pipeline, you must use `artifactStores`\\.\n*Required*: Conditional \n*Type*: List of [ArtifactStoreMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstoremap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisableInboundStageTransitions": "Represents the input of a `DisableStageTransition` action\\. \n*Required*: No \n*Type*: List of [StageTransition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-disableinboundstagetransitions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9.@\\-_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RestartExecutionOnUpdate": "Indicates whether to rerun the CodePipeline pipeline after you update it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) for CodePipeline to use to either perform actions with no `actionRoleArn`, or to use to assume roles for actions with an `actionRoleArn`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `arn:aws(-[\\w]+)*:iam::[0-9]{12}:role/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Stages": "Represents information about a stage and its definition\\. \n*Required*: Yes \n*Type*: List of [StageDeclaration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Specifies the tags applied to the pipeline\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodePipeline::Pipeline ActionDeclaration": { + "ActionTypeId": "Specifies the action type and the provider of the action\\. \n*Required*: Yes \n*Type*: [ActionTypeId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Configuration": "The action's configuration\\. These are key\\-value pairs that specify input values for an action\\. For more information, see [Action Structure Requirements in CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements)\\. For the list of configuration properties for the AWS CloudFormation action type in CodePipeline, see [Configuration Properties Reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-action-reference.html) in the * AWS CloudFormation User Guide*\\. For template snippets with examples, see [Using Parameter Override Functions with CodePipeline Pipelines](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-parameter-override-functions.html) in the * AWS CloudFormation User Guide*\\. \nThe values can be represented in either JSON or YAML format\\. For example, the JSON configuration item format is as follows: \n *JSON:* \n `\"Configuration\" : { Key : Value },` \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputArtifacts": "The name or ID of the artifact consumed by the action, such as a test or build artifact\\. \nFor a CodeBuild action with multiple input artifacts, one of your input sources must be designated the PrimarySource\\. For more information, see the [CodeBuild action reference page](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodeBuild.html) in the *AWS CodePipeline User Guide*\\.\n*Required*: No \n*Type*: List of [InputArtifact](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-inputartifacts.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The action declaration's name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9.@\\-_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Namespace": "The variable namespace associated with the action\\. All variables produced as output by this action fall under this namespace\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9@\\-_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutputArtifacts": "The name or ID of the result of the action declaration, such as a test or build artifact\\. \n*Required*: No \n*Type*: List of [OutputArtifact](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-outputartifacts.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Region": "The action declaration's AWS Region, such as us\\-east\\-1\\. \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the IAM service role that performs the declared action\\. This is assumed through the roleArn for the pipeline\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `arn:aws(-[\\w]+)*:iam::[0-9]{12}:role/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RunOrder": "The order in which actions are run\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `999` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodePipeline::Pipeline ActionTypeId": { + "Category": "A category defines what kind of action can be taken in the stage, and constrains the provider type for the action\\. Valid categories are limited to one of the values below\\. \n+ `Source`\n+ `Build`\n+ `Test`\n+ `Deploy`\n+ `Invoke`\n+ `Approval`\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Owner": "The creator of the action being called\\. There are three valid values for the `Owner` field in the action category section within your pipeline structure: `AWS`, `ThirdParty`, and `Custom`\\. For more information, see [Valid Action Types and Providers in CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#actions-valid-providers)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Provider": "The provider of the service being called by the action\\. Valid providers are determined by the action category\\. For example, an action in the Deploy category type might have a provider of CodeDeploy, which would be specified as `CodeDeploy`\\. For more information, see [Valid Action Types and Providers in CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#actions-valid-providers)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "A string that describes the action version\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodePipeline::Pipeline ArtifactStore": { + "EncryptionKey": "The encryption key used to encrypt the data in the artifact store, such as an AWS Key Management Service \\(AWS KMS\\) key\\. If this is undefined, the default key for Amazon S3 is used\\. To see an example artifact store encryption key field, see the example structure here: [AWS::CodePipeline::Pipeline](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html)\\. \n*Required*: No \n*Type*: [EncryptionKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore-encryptionkey.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Location": "The S3 bucket used for storing the artifacts for a pipeline\\. You can specify the name of an S3 bucket but not a folder in the bucket\\. A folder to contain the pipeline artifacts is created for you based on the name of the pipeline\\. You can use any S3 bucket in the same AWS Region as the pipeline to store your pipeline artifacts\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `[a-zA-Z0-9\\-\\.]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of the artifact store, such as S3\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodePipeline::Pipeline ArtifactStoreMap": { + "ArtifactStore": "Represents information about the S3 bucket where artifacts are stored for the pipeline\\. \nYou must include either `artifactStore` or `artifactStores` in your pipeline, but you cannot use both\\. If you create a cross\\-region action in your pipeline, you must use `artifactStores`\\.\n*Required*: Conditional \n*Type*: [ArtifactStore](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Region": "The action declaration's AWS Region, such as us\\-east\\-1\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodePipeline::Pipeline BlockerDeclaration": { + "Name": "Reserved for future use\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "Reserved for future use\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Schedule` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodePipeline::Pipeline EncryptionKey": { + "Id": "The ID used to identify the key\\. For an AWS KMS key, you can use the key ID, the key ARN, or the alias ARN\\. \nAliases are recognized only in the account that created the AWS KMS key\\. For cross\\-account actions, you can only use the key ID or key ARN to identify the key\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of encryption key, such as an AWS KMS key\\. When creating or updating a pipeline, the value must be set to 'KMS'\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodePipeline::Pipeline InputArtifact": { + "Name": "The name of the artifact to be worked on \\(for example, \"My App\"\\)\\. \nThe input artifact of an action must exactly match the output artifact declared in a preceding action, but the input artifact does not have to be the next action in strict sequence from the action that provided the output artifact\\. Actions in parallel can declare different output artifacts, which are in turn consumed by different following actions\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[a-zA-Z0-9_\\-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodePipeline::Pipeline OutputArtifact": { + "Name": "The name of the output of an artifact, such as \"My App\"\\. \nThe output artifact name must exactly match the input artifact declared for a downstream action\\. However, the downstream action's input artifact does not have to be the next action in strict sequence from the action that provided the output artifact\\. Actions in parallel can declare different output artifacts, which are in turn consumed by different following actions\\. \nOutput artifact names must be unique within a pipeline\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[a-zA-Z0-9_\\-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodePipeline::Pipeline StageDeclaration": { + "Actions": "The actions included in a stage\\. \n*Required*: Yes \n*Type*: List of [ActionDeclaration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Blockers": "Reserved for future use\\. \n*Required*: No \n*Type*: List of [BlockerDeclaration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-blockers.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the stage\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9.@\\-_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodePipeline::Pipeline StageTransition": { + "Reason": "The reason given to the user that a stage is disabled, such as waiting for manual approval or manual tests\\. This message is displayed in the pipeline console UI\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Pattern*: `[a-zA-Z0-9!@ \\(\\)\\.\\*\\?\\-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StageName": "The name of the stage where you want to disable the inbound or outbound transition of artifacts\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9.@\\-_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodePipeline::Webhook": { + "Authentication": "Supported options are GITHUB\\_HMAC, IP, and UNAUTHENTICATED\\. \n+ For information about the authentication scheme implemented by GITHUB\\_HMAC, see [Securing your webhooks](https://developer.github.com/webhooks/securing/) on the GitHub Developer website\\.\n+ IP rejects webhooks trigger requests unless they originate from an IP address in the IP range whitelisted in the authentication configuration\\.\n+ UNAUTHENTICATED accepts all webhook trigger requests regardless of origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `GITHUB_HMAC | IP | UNAUTHENTICATED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthenticationConfiguration": "Properties that configure the authentication applied to incoming webhook trigger requests\\. The required properties depend on the authentication type\\. For GITHUB\\_HMAC, only the `SecretToken `property must be set\\. For IP, only the `AllowedIPRange `property must be set to a valid CIDR range\\. For UNAUTHENTICATED, no properties can be set\\. \n*Required*: Yes \n*Type*: [WebhookAuthConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-webhook-webhookauthconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Filters": "A list of rules applied to the body/payload sent in the POST request to a webhook URL\\. All defined rules must pass for the request to be accepted and the pipeline started\\. \n*Required*: Yes \n*Type*: List of [WebhookFilterRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-webhook-webhookfilterrule.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the webhook\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9.@\\-_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RegisterWithThirdParty": "Configures a connection between the webhook that was created and the external tool with events to be detected\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetAction": "The name of the action in a pipeline you want to connect to the webhook\\. The action must be from the source \\(first\\) stage of the pipeline\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9.@\\-_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetPipeline": "The name of the pipeline you want to connect to the webhook\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9.@\\-_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetPipelineVersion": "The version number of the pipeline to be connected to the trigger request\\. \nRequired: Yes \nType: Integer \n Update requires: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt) \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodePipeline::Webhook WebhookAuthConfiguration": { + "AllowedIPRange": "The property used to configure acceptance of webhooks in an IP address range\\. For IP, only the `AllowedIPRange` property must be set\\. This property must be set to a valid CIDR range\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretToken": "The property used to configure GitHub authentication\\. For GITHUB\\_HMAC, only the `SecretToken` property must be set\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodePipeline::Webhook WebhookFilterRule": { + "JsonPath": "A JsonPath expression that is applied to the body/payload of the webhook\\. The value selected by the JsonPath expression must match the value specified in the `MatchEquals` field\\. Otherwise, the request is ignored\\. For more information, see [Java JsonPath implementation](https://github.com/json-path/JsonPath) in GitHub\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `150` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MatchEquals": "The value selected by the `JsonPath` expression must match what is supplied in the `MatchEquals` field\\. Otherwise, the request is ignored\\. Properties from the target action configuration can be included as placeholders in this value by surrounding the action configuration key with curly brackets\\. For example, if the value supplied here is \"refs/heads/\\{Branch\\}\" and the target action has an action configuration property called \"Branch\" with a value of \"main\", the `MatchEquals` value is evaluated as \"refs/heads/main\"\\. For a list of action configuration properties for built\\-in action types, see [Pipeline Structure Reference Action Requirements](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `150` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeStar::GitHubRepository": { + "Code": "Information about code to be committed to a repository after it is created in an AWS CloudFormation stack\\. \n*Required*: No \n*Type*: [Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codestar-githubrepository-code.html) \n*Update requires*: Updates are not supported\\.", + "ConnectionArn": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableIssues": "Indicates whether to enable issues for the GitHub repository\\. You can use GitHub issues to track information and bugs for your repository\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: Updates are not supported\\.", + "IsPrivate": "Indicates whether the GitHub repository is a private repository\\. If so, you choose who can see and commit to this repository\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: Updates are not supported\\.", + "RepositoryAccessToken": "The GitHub user's personal access token for the GitHub repository\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "RepositoryDescription": "A comment or description about the new repository\\. This description is displayed in GitHub after the repository is created\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "RepositoryName": "The name of the repository you want to create in GitHub with AWS CloudFormation stack creation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "RepositoryOwner": "The GitHub user name for the owner of the GitHub repository to be created\\. If this repository should be owned by a GitHub organization, provide its name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\." + }, + "AWS::CodeStar::GitHubRepository Code": { + "S3": "Information about the Amazon S3 bucket that contains a ZIP file of code to be committed to the repository\\. \n*Required*: Yes \n*Type*: [S3](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codestar-githubrepository-s3.html) \n*Update requires*: Updates are not supported\\." + }, + "AWS::CodeStar::GitHubRepository S3": { + "Bucket": "The name of the Amazon S3 bucket that contains the ZIP file with the content to be committed to the new repository\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "Key": "The S3 object key or file name for the ZIP file\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "ObjectVersion": "The object version of the ZIP file, if versioning is enabled for the Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\." + }, + "AWS::CodeStarConnections::Connection": { + "ConnectionName": "The name of the connection\\. Connection names must be unique in an AWS user account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "HostArn": "The Amazon Resource Name \\(ARN\\) of the host associated with the connection\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `arn:aws(-[\\w]+)*:codestar-connections:.+:[0-9]{12}:host\\/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProviderType": "The name of the external provider where your third\\-party code repository is configured\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Bitbucket | GitHub | GitHubEnterpriseServer` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Specifies the tags applied to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeStarNotifications::NotificationRule": { + "CreatedBy": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DetailType": "The level of detail to include in the notifications for this resource\\. `BASIC` will include only the contents of the event as it would appear in Amazon CloudWatch\\. `FULL` will include any supplemental information provided by AWS CodeStar Notifications and/or the service for the resource for which the notification is created\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BASIC | FULL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventTypeId": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventTypeIds": "A list of event types associated with this notification rule\\. For a complete list of event types and IDs, see [Notification concepts](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/concepts.html#concepts-api) in the *Developer Tools Console User Guide*\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name for the notification rule\\. Notification rule names must be unique in your AWS account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[A-Za-z0-9\\-_ ]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Resource": "The Amazon Resource Name \\(ARN\\) of the resource to associate with the notification rule\\. Supported resources include pipelines in AWS CodePipeline, repositories in AWS CodeCommit, and build projects in AWS CodeBuild\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^arn:aws[^:\\s]*:[^:\\s]*:[^:\\s]*:[0-9]{12}:[^\\s]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Status": "The status of the notification rule\\. The default value is `ENABLED`\\. If the status is set to `DISABLED`, notifications aren't sent for the notification rule\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A list of tags to apply to this notification rule\\. Key names cannot start with \"`aws`\"\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TargetAddress": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Targets": "A list of Amazon Resource Names \\(ARNs\\) of AWS Chatbot topics and AWS Chatbot clients to associate with the notification rule\\. \n*Required*: Yes \n*Type*: List of [Target](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codestarnotifications-notificationrule-target.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CodeStarNotifications::NotificationRule Target": { + "TargetAddress": "The Amazon Resource Name \\(ARN\\) of the AWS Chatbot topic or AWS Chatbot client\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `320` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetType": "The target type\\. Can be an Amazon Simple Notification Service topic or AWS Chatbot client\\. \n+ Amazon Simple Notification Service topics are specified as `SNS`\\.\n+ AWS Chatbot clients are specified as `AWSChatbotSlack`\\.\n*Required*: Yes \n*Type*: String \n*Pattern*: `^[A-Za-z]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::IdentityPool": { + "AllowClassicFlow": "Enables the Basic \\(Classic\\) authentication flow\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AllowUnauthenticatedIdentities": "Specifies whether the identity pool supports unauthenticated logins\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CognitoEvents": "The events to configure\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CognitoIdentityProviders": "The Amazon Cognito user pools and their client IDs\\. \n*Required*: No \n*Type*: List of [CognitoIdentityProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitoidentityprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CognitoStreams": "Configuration options for configuring Amazon Cognito streams\\. \n*Required*: No \n*Type*: [CognitoStreams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitostreams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeveloperProviderName": "The \"domain\" Amazon Cognito uses when referencing your users\\. This name acts as a placeholder that allows your backend and the Amazon Cognito service to communicate about the developer provider\\. For the `DeveloperProviderName`, you can use letters and periods \\(\\.\\), underscores \\(\\_\\), and dashes \\(\\-\\)\\. \n*Minimum length*: 1 \n*Maximum length*: 100 \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IdentityPoolName": "The name of your Amazon Cognito identity pool\\. \n*Minimum length*: 1 \n*Maximum length*: 128 \n*Pattern*: `[\\w\\s+=,.@-]+` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OpenIdConnectProviderARNs": "The Amazon Resource Names \\(ARNs\\) of the OpenID connect providers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PushSync": "The configuration options to be applied to the identity pool\\. \n*Required*: No \n*Type*: [PushSync](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-pushsync.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SamlProviderARNs": "The Amazon Resource Names \\(ARNs\\) of the Security Assertion Markup Language \\(SAML\\) providers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SupportedLoginProviders": "Key\\-value pairs that map provider names to provider app IDs\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::IdentityPool CognitoIdentityProvider": { + "ClientId": "The client ID for the Amazon Cognito user pool\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProviderName": "The provider name for an Amazon Cognito user pool\\. For example: `cognito-idp.us-east-2.amazonaws.com/us-east-2_123456789`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServerSideTokenCheck": "TRUE if server\\-side token validation is enabled for the identity provider\u2019s token\\. \nAfter you set the `ServerSideTokenCheck` to TRUE for an identity pool, that identity pool checks with the integrated user pools to make sure the user has not been globally signed out or deleted before the identity pool provides an OIDC token or AWS credentials for the user\\. \nIf the user is signed out or deleted, the identity pool returns a 400 Not Authorized error\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::IdentityPool CognitoStreams": { + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the role Amazon Cognito can assume to publish to the stream\\. This role must grant access to Amazon Cognito \\(cognito\\-sync\\) to invoke `PutRecord` on your Amazon Cognito stream\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamName": "The name of the Amazon Cognito stream to receive updates\\. This stream must be in the developer's account and in the same Region as the identity pool\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamingStatus": "Status of the Amazon Cognito streams\\. Valid values are: `ENABLED` or `DISABLED`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::IdentityPool PushSync": { + "ApplicationArns": "The ARNs of the Amazon SNS platform applications that could be used by clients\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "An IAM role configured to allow Amazon Cognito to call Amazon SNS on behalf of the developer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::IdentityPoolRoleAttachment": { + "IdentityPoolId": "An identity pool ID in the format `REGION:GUID`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RoleMappings": "How users for a specific identity provider are mapped to roles\\. This is a string to the `RoleMapping` object map\\. The string identifies the identity provider\\. For example: `graph.facebook.com` or `cognito-idp.us-east-1.amazonaws.com/us-east-1_abcdefghi:app_client_id`\\. \nIf the `IdentityProvider` field isn't provided in this object, the string is used as the identity provider name\\. \nFor more information, see the [RoleMapping property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rolemapping.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Roles": "The map of the roles associated with this pool\\. For a given role, the key is either \"authenticated\" or \"unauthenticated\"\\. The value is the role ARN\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::IdentityPoolRoleAttachment MappingRule": { + "Claim": "The claim name that must be present in the token\\. For example: \"isAdmin\" or \"paid\"\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MatchType": "The match condition that specifies how closely the claim value in the IdP token must match `Value`\\. \nValid values are: `Equals`, `Contains`, `StartsWith`, and `NotEqual`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleARN": "The Amazon Resource Name \\(ARN\\) of the role\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "A brief string that the claim must match\\. For example, \"paid\" or \"yes\"\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::IdentityPoolRoleAttachment RoleMapping": { + "AmbiguousRoleResolution": "Specifies the action to be taken if either no rules match the claim value for the Rules type, or there is no `cognito:preferred_role` claim and there are multiple `cognito:roles` matches for the Token type\\. If you specify Token or Rules as the Type, AmbiguousRoleResolution is required\\. \nValid values are `AuthenticatedRole` or `Deny`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IdentityProvider": "Identifier for the identity provider for which the role is mapped\\. For example: `graph.facebook.com` or `cognito-idp.us-east-1.amazonaws.com/us-east-1_abcdefghi:app_client_id (http://cognito-idp.us-east-1.amazonaws.com/us-east-1_abcdefghi:app_client_id)`\\. This is the identity provider that is used by the user for authentication\\. \nIf the identity provider property isn't provided, the key of the entry in the `RoleMappings` map is used as the identity provider\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RulesConfiguration": "The rules to be used for mapping users to roles\\. If you specify \"Rules\" as the role\\-mapping type, RulesConfiguration is required\\. \n*Required*: No \n*Type*: [RulesConfigurationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rulesconfigurationtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The role\\-mapping type\\. `Token` uses `cognito:roles` and `cognito:preferred_role` claims from the Amazon Cognito identity provider token to map groups to roles\\. `Rules` attempts to match claims from the token to map to a role\\. \nValid values are `Token` or `Rules`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::IdentityPoolRoleAttachment RulesConfigurationType": { + "Rules": "The rules\\. You can specify up to 25 rules per identity provider\\. \n*Required*: Yes \n*Type*: List of [MappingRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-mappingrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPool": { + "AccountRecoverySetting": "Use this setting to define which verified available method a user can use to recover their password when they call `ForgotPassword`\\. It allows you to define a preferred method when a user has more than one method available\\. With this setting, SMS does not qualify for a valid password recovery mechanism if the user also has SMS MFA enabled\\. In the absence of this setting, Cognito uses the legacy behavior to determine the recovery method where SMS is preferred over email\\. \n*Required*: No \n*Type*: [AccountRecoverySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-accountrecoverysetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AdminCreateUserConfig": "The configuration for creating a new user profile\\. \n*Required*: No \n*Type*: [AdminCreateUserConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-admincreateuserconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AliasAttributes": "Attributes supported as an alias for this user pool\\. Possible values: **phone\\_number**, **email**, or **preferred\\_username**\\. \nThis user pool property cannot be updated\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutoVerifiedAttributes": "The attributes to be auto\\-verified\\. Possible values: **email**, **phone\\_number**\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeviceConfiguration": "The device configuration\\. \n*Required*: No \n*Type*: [DeviceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-deviceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EmailConfiguration": "The email configuration\\. \n*Required*: No \n*Type*: [EmailConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-emailconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EmailVerificationMessage": "A string representing the email verification message\\. EmailVerificationMessage is allowed only if [EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `20000` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*\\{####\\}[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EmailVerificationSubject": "A string representing the email verification subject\\. EmailVerificationSubject is allowed only if [EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `140` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnabledMfas": "Enables MFA on a specified user pool\\. To disable all MFAs after it has been enabled, set MfaConfiguration to \u201cOFF\u201d and remove EnabledMfas\\. MFAs can only be all disabled if MfaConfiguration is OFF\\. Once SMS\\_MFA is enabled, SMS\\_MFA can only be disabled by setting MfaConfiguration to \u201cOFF\u201d\\. Can be one of the following values: \n+ `SMS_MFA` \\- Enables SMS MFA for the user pool\\. SMS\\_MFA can only be enabled if SMS configuration is provided\\.\n+ `SOFTWARE_TOKEN_MFA` \\- Enables software token MFA for the user pool\\.\nAllowed values: `SMS_MFA` \\| `SOFTWARE_TOKEN_MFA` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LambdaConfig": "The Lambda trigger configuration information for the new user pool\\. \nIn a push model, event sources \\(such as Amazon S3 and custom applications\\) need permission to invoke a function\\. So you must make an extra call to add permission for these event sources to invoke your Lambda function\\. \n \nFor more information on using the Lambda API to add permission, see[ AddPermission ](https://docs.aws.amazon.com/lambda/latest/dg/API_AddPermission.html)\\. \nFor adding permission using the AWS CLI, see[ add\\-permission ](https://docs.aws.amazon.com/cli/latest/reference/lambda/add-permission.html)\\.\n*Required*: No \n*Type*: [LambdaConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MfaConfiguration": "The multi\\-factor \\(MFA\\) configuration\\. Valid values include: \n+ `OFF` MFA won't be used for any users\\.\n+ `ON` MFA is required for all users to sign in\\.\n+ `OPTIONAL` MFA will be required only for individual users who have an MFA factor activated\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `OFF | ON | OPTIONAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Policies": "The policy associated with a user pool\\. \n*Required*: No \n*Type*: [Policies](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-policies.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Schema": "The schema attributes for the new user pool\\. These attributes can be standard or custom attributes\\. \n During a user pool update, you can add new schema attributes but you cannot modify or delete an existing schema attribute\\.\n*Required*: No \n*Type*: List of [SchemaAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-schemaattribute.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SmsAuthenticationMessage": "A string representing the SMS authentication message\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `140` \n*Pattern*: `.*\\{####\\}.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SmsConfiguration": "The SMS configuration\\. \n*Required*: No \n*Type*: [SmsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-smsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SmsVerificationMessage": "A string representing the SMS verification message\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `140` \n*Pattern*: `.*\\{####\\}.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserPoolAddOns": "Enables advanced security risk detection\\. Set the key `AdvancedSecurityMode` to the value \"AUDIT\"\\. \n*Required*: No \n*Type*: [UserPoolAddOns](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-userpooladdons.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserPoolName": "A string used to name the user pool\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w\\s+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserPoolTags": "The tag keys and values to assign to the user pool\\. A tag is a label that you can use to categorize and manage user pools in different ways, such as by purpose, owner, environment, or other criteria\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UsernameAttributes": "Determines whether email addresses or phone numbers can be specified as user names when a user signs up\\. Possible values: `phone_number` or `email`\\. \nThis user pool property cannot be updated\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UsernameConfiguration": "You can choose to set case sensitivity on the username input for the selected sign\\-in option\\. For example, when this is set to `False`, users will be able to sign in using either \"username\" or \"Username\"\\. This configuration is immutable once it has been set\\. \n*Required*: No \n*Type*: [UsernameConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-usernameconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VerificationMessageTemplate": "The template for the verification message that the user sees when the app requests permission to access the user's information\\. \n*Required*: No \n*Type*: [VerificationMessageTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-verificationmessagetemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPool AccountRecoverySetting": { + "RecoveryMechanisms": "The list of `RecoveryOptionTypes`\\. \n*Required*: No \n*Type*: List of [RecoveryOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-recoveryoption.html) \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPool AdminCreateUserConfig": { + "AllowAdminCreateUserOnly": "Set to `True` if only the administrator is allowed to create user profiles\\. Set to `False` if users can sign themselves up via an app\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InviteMessageTemplate": "The message template to be used for the welcome message to new users\\. \nSee also [Customizing User Invitation Messages](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-message-customizations.html#cognito-user-pool-settings-user-invitation-message-customization)\\. \n*Required*: No \n*Type*: [InviteMessageTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-invitemessagetemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UnusedAccountValidityDays": "The user account expiration limit, in days, after which the account is no longer usable\\. To reset the account after that time limit, you must call `AdminCreateUser` again, specifying `\"RESEND\"` for the `MessageAction` parameter\\. The default value for this parameter is 7\\. \nIf you set a value for `TemporaryPasswordValidityDays` in `PasswordPolicy`, that value will be used, and `UnusedAccountValidityDays` will be no longer be an available parameter for that user pool\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `365` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPool CustomEmailSender": { + "LambdaArn": "The Amazon Resource Name \\(ARN\\) of the AWS Lambda function that Amazon Cognito triggers to send email notifications to users\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LambdaVersion": "The Lambda version represents the signature of the \"request\" attribute in the \"event\" information that Amazon Cognito passes to your custom email sender AWS Lambda function\\. The only supported value is `V1_0`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPool CustomSMSSender": { + "LambdaArn": "The Amazon Resource Name \\(ARN\\) of the AWS Lambda function that Amazon Cognito triggers to send SMS notifications to users\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LambdaVersion": "The Lambda version represents the signature of the \"request\" attribute in the \"event\" information Amazon Cognito passes to your custom SMS sender Lambda function\\. The only supported value is `V1_0`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPool DeviceConfiguration": { + "ChallengeRequiredOnNewDevice": "When true, device authentication can replace SMS and time\\-based one\\-time password \\(TOTP\\) factors for multi\\-factor authentication \\(MFA\\)\\. \nUsers that sign in with devices that have not been confirmed or remembered will still have to provide a second factor, whether or not ChallengeRequiredOnNewDevice is true, when your user pool requires MFA\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeviceOnlyRememberedOnUserPrompt": "When true, users can opt in to remembering their device\\. Your app code must use callback functions to return the user's choice\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPool EmailConfiguration": { + "ConfigurationSet": "The set of configuration rules that can be applied to emails sent using Amazon SES\\. A configuration set is applied to an email by including a reference to the configuration set in the headers of the email\\. Once applied, all of the rules in that configuration set are applied to the email\\. Configuration sets can be used to apply the following types of rules to emails: \n+ Event publishing \u2013 Amazon SES can track the number of send, delivery, open, click, bounce, and complaint events for each email sent\\. Use event publishing to send information about these events to other AWS services such as SNS and CloudWatch\\.\n+ IP pool management \u2013 When leasing dedicated IP addresses with Amazon SES, you can create groups of IP addresses, called dedicated IP pools\\. You can then associate the dedicated IP pools with configuration sets\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9_-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EmailSendingAccount": "Specifies whether Amazon Cognito emails your users by using its built\\-in email functionality or your Amazon Simple Email Service email configuration\\. Specify one of the following values: \nCOGNITO\\_DEFAULT \nWhen Amazon Cognito emails your users, it uses its built\\-in email functionality\\. When you use the default option, Amazon Cognito allows only a limited number of emails each day for your user pool\\. For typical production environments, the default email limit is less than the required delivery volume\\. To achieve a higher delivery volume, specify DEVELOPER to use your Amazon SES email configuration\\. \nTo look up the email delivery limit for the default option, see [Limits in ](https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html) in the * Developer Guide*\\. \nThe default FROM address is `no-reply@verificationemail.com`\\. To customize the FROM address, provide the Amazon Resource Name \\(ARN\\) of an Amazon SES verified email address for the `SourceArn` parameter\\. \n If EmailSendingAccount is COGNITO\\_DEFAULT, you can't use the following parameters: \n+ EmailVerificationMessage\n+ EmailVerificationSubject\n+ InviteMessageTemplate\\.EmailMessage\n+ InviteMessageTemplate\\.EmailSubject\n+ VerificationMessageTemplate\\.EmailMessage\n+ VerificationMessageTemplate\\.EmailMessageByLink\n+ VerificationMessageTemplate\\.EmailSubject,\n+ VerificationMessageTemplate\\.EmailSubjectByLink\nDEVELOPER EmailSendingAccount is required\\. \nDEVELOPER \nWhen Amazon Cognito emails your users, it uses your Amazon SES configuration\\. Amazon Cognito calls Amazon SES on your behalf to send email from your verified email address\\. When you use this option, the email delivery limits are the same limits that apply to your Amazon SES verified email address in your AWS account\\. \nIf you use this option, you must provide the ARN of an Amazon SES verified email address for the `SourceArn` parameter\\. \nBefore Amazon Cognito can email your users, it requires additional permissions to call Amazon SES on your behalf\\. When you update your user pool with this option, Amazon Cognito creates a *service\\-linked role*, which is a type of role, in your AWS account\\. This role contains the permissions that allow to access Amazon SES and send email messages with your address\\. For more information about the service\\-linked role that Amazon Cognito creates, see [Using Service\\-Linked Roles for Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/using-service-linked-roles.html) in the *Amazon Cognito Developer Guide*\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `COGNITO_DEFAULT | DEVELOPER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "From": "Identifies either the sender's email address or the sender's name with their email address\\. For example, `testuser@example.com` or `Test User `\\. This address appears before the body of the email\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReplyToEmailAddress": "The destination to which the receiver of the email should reply\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+@[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceArn": "The ARN of a verified email address in Amazon SES\\. Amazon Cognito uses this email address in one of the following ways, depending on the value that you specify for the `EmailSendingAccount` parameter: \n+ If you specify `COGNITO_DEFAULT`, Amazon Cognito uses this address as the custom FROM address when it emails your users using its built\\-in email account\\.\n+ If you specify `DEVELOPER`, Amazon Cognito emails your users with this address by calling Amazon SES on your behalf\\.\n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPool InviteMessageTemplate": { + "EmailMessage": "The message template for email messages\\. EmailMessage is allowed only if [EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `20000` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*\\{####\\}[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EmailSubject": "The subject line for email messages\\. EmailSubject is allowed only if [EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `140` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SMSMessage": "The message template for SMS messages\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `140` \n*Pattern*: `.*\\{####\\}.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPool LambdaConfig": { + "CreateAuthChallenge": "Creates an authentication challenge\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomEmailSender": "A custom email sender AWS Lambda trigger\\. \n*Required*: No \n*Type*: [CustomEmailSender](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-customemailsender.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomMessage": "A custom Message AWS Lambda trigger\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomSMSSender": "A custom SMS sender AWS Lambda trigger\\. \n*Required*: No \n*Type*: [CustomSMSSender](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-customsmssender.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefineAuthChallenge": "Defines the authentication challenge\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KMSKeyID": "The Amazon Resource Name of a AWS Key Management Service \\(AWS KMS\\) key\\. Amazon Cognito uses the key to encrypt codes and temporary passwords sent to `CustomEmailSender` and `CustomSMSSender`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PostAuthentication": "A post\\-authentication AWS Lambda trigger\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PostConfirmation": "A post\\-confirmation AWS Lambda trigger\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreAuthentication": "A pre\\-authentication AWS Lambda trigger\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreSignUp": "A pre\\-registration AWS Lambda trigger\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreTokenGeneration": "A Lambda trigger that is invoked before token generation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserMigration": "The user migration Lambda config type\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VerifyAuthChallengeResponse": "Verifies the authentication challenge response\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPool NumberAttributeConstraints": { + "MaxValue": "The maximum value of an attribute that is of the number data type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinValue": "The minimum value of an attribute that is of the number data type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPool PasswordPolicy": { + "MinimumLength": "The minimum length of the password in the policy that you have set\\. This value can't be less than 6\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `6` \n*Maximum*: `99` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequireLowercase": "In the password policy that you have set, refers to whether you have required users to use at least one lowercase letter in their password\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequireNumbers": "In the password policy that you have set, refers to whether you have required users to use at least one number in their password\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequireSymbols": "In the password policy that you have set, refers to whether you have required users to use at least one symbol in their password\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequireUppercase": "In the password policy that you have set, refers to whether you have required users to use at least one uppercase letter in their password\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemporaryPasswordValidityDays": "The number of days a temporary password is valid in the password policy\\. If the user doesn't sign in during this time, an administrator must reset their password\\. \nWhen you set `TemporaryPasswordValidityDays` for a user pool, you can no longer set the deprecated `UnusedAccountValidityDays` value for that user pool\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `365` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPool Policies": { + "PasswordPolicy": "The password policy\\. \n*Required*: No \n*Type*: [PasswordPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-passwordpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPool RecoveryOption": { + "Name": "Specifies the recovery method for a user\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `admin_only | verified_email | verified_phone_number` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Priority": "A positive integer specifying priority of a method with 1 being the highest priority\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPool SchemaAttribute": { + "AttributeDataType": "The attribute data type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Boolean | DateTime | Number | String` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeveloperOnlyAttribute": "We recommend that you use [WriteAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UserPoolClientType.html#CognitoUserPools-Type-UserPoolClientType-WriteAttributes) in the user pool client to control how attributes can be mutated for new use cases instead of using `DeveloperOnlyAttribute`\\.\nSpecifies whether the attribute type is developer only\\. This attribute can only be modified by an administrator\\. Users will not be able to modify this attribute using their access token\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Mutable": "Specifies whether the value of the attribute can be changed\\. \nFor any user pool attribute that is mapped to an identity provider attribute, you must set this parameter to `true`\\. Amazon Cognito updates mapped attributes when users sign in to your application through an identity provider\\. If an attribute is immutable, Amazon Cognito throws an error when it attempts to update the attribute\\. For more information, see [Specifying Identity Provider Attribute Mappings for Your User Pool](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-specifying-attribute-mapping.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A schema attribute of the name type\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `20` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumberAttributeConstraints": "Specifies the constraints for an attribute of the number type\\. \n*Required*: No \n*Type*: [NumberAttributeConstraints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-numberattributeconstraints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Required": "Specifies whether a user pool attribute is required\\. If the attribute is required and the user doesn't provide a value, registration or sign\\-in will fail\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StringAttributeConstraints": "Specifies the constraints for an attribute of the string type\\. \n*Required*: No \n*Type*: [StringAttributeConstraints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-stringattributeconstraints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPool SmsConfiguration": { + "ExternalId": "The external ID is a value\\. We recommend you use `ExternalId`to add security to your IAM role, which is used to call Amazon SNS to send SMS messages for your user pool\\. If you provide an `ExternalId`, the Cognito User Pool uses it when attempting to assume your IAM role\\. You can also set your roles trust policy to require the `ExternalID`\\. If you use the Cognito Management Console to create a role for SMS MFA, Cognito creates a role with the required permissions and a trust policy that uses `ExternalId`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnsCallerArn": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS caller\\. This is the ARN of the IAM role in your AWS account that Amazon Cognito will use to send SMS messages\\. SMS messages are subject to a [spending limit](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-email-phone-verification.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnsRegion": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPool StringAttributeConstraints": { + "MaxLength": "The maximum length\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinLength": "The minimum length\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPool UserPoolAddOns": { + "AdvancedSecurityMode": "The advanced security mode\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUDIT | ENFORCED | OFF` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPool UsernameConfiguration": { + "CaseSensitive": "Specifies whether username case sensitivity will be applied for all users in the user pool through Amazon Cognito APIs\\. \nValid values include: \n+ ** `True` **: Enables case sensitivity for all username input\\. When this option is set to `True`, users must sign in using the exact capitalization of their given username, such as \u201cUserName\u201d\\. This is the default value\\.\n+ ** `False` **: Enables case insensitivity for all username input\\. For example, when this option is set to `False`, users can sign in using either \"username\" or \"Username\"\\. This option also enables both `preferred_username` and `email` alias to be case insensitive, in addition to the `username` attribute\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPool VerificationMessageTemplate": { + "DefaultEmailOption": "The default email option\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CONFIRM_WITH_CODE | CONFIRM_WITH_LINK` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EmailMessage": "The email message template\\. EmailMessage is allowed only if [ EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `20000` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*\\{####\\}[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EmailMessageByLink": "The email message template for sending a confirmation link to the user\\. EmailMessageByLink is allowed only if [ EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `20000` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*\\{##[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*##\\}[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EmailSubject": "The subject line for the email message template\\. EmailSubject is allowed only if [EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `140` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EmailSubjectByLink": "The subject line for the email message template for sending a confirmation link to the user\\. EmailSubjectByLink is allowed only [ EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `140` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SmsMessage": "The SMS message template\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `140` \n*Pattern*: `.*\\{####\\}.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPoolClient": { + "AccessTokenValidity": "The time limit, after which the access token is no longer valid and cannot be used\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AllowedOAuthFlows": "The allowed OAuth flows\\. \nSet to `code` to initiate a code grant flow, which provides an authorization code as the response\\. This code can be exchanged for access tokens with the token endpoint\\. \nSet to `implicit` to specify that the client should get the access token \\(and, optionally, ID token, based on scopes\\) directly\\. \nSet to `client_credentials` to specify that the client should get the access token \\(and, optionally, ID token, based on scopes\\) from the token endpoint using a combination of client and client\\_secret\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AllowedOAuthFlowsUserPoolClient": "Set to true if the client is allowed to follow the OAuth protocol when interacting with Amazon Cognito user pools\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AllowedOAuthScopes": "The allowed OAuth scopes\\. Possible values provided by OAuth are: `phone`, `email`, `openid`, and `profile`\\. Possible values provided by AWS are: `aws.cognito.signin.user.admin`\\. Custom scopes created in Resource Servers are also supported\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AnalyticsConfiguration": "The Amazon Pinpoint analytics configuration for collecting metrics for this user pool\\. \nIn AWS Regions where isn't available, User Pools only supports sending events to Amazon Pinpoint projects in AWS Region us\\-east\\-1\\. In Regions where is available, User Pools will support sending events to Amazon Pinpoint projects within that same Region\\. \n*Required*: No \n*Type*: [AnalyticsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolclient-analyticsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CallbackURLs": "A list of allowed redirect \\(callback\\) URLs for the identity providers\\. \nA redirect URI must: \n+ Be an absolute URI\\.\n+ Be registered with the authorization server\\.\n+ Not include a fragment component\\.\nSee [OAuth 2\\.0 \\- Redirection Endpoint](https://tools.ietf.org/html/rfc6749#section-3.1.2)\\. \nAmazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes only\\. \nApp callback URLs such as myapp://example are also supported\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientName": "The client name for the user pool client you would like to create\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w\\s+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultRedirectURI": "The default redirect URI\\. Must be in the `CallbackURLs` list\\. \nA redirect URI must: \n+ Be an absolute URI\\.\n+ Be registered with the authorization server\\.\n+ Not include a fragment component\\.\nSee [OAuth 2\\.0 \\- Redirection Endpoint](https://tools.ietf.org/html/rfc6749#section-3.1.2)\\. \nAmazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes only\\. \nApp callback URLs such as myapp://example are also supported\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableTokenRevocation": "Activates or deactivates token revocation\\. For more information about revoking tokens, see [RevokeToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RevokeToken.html)\\. \nIf you don't include this parameter, token revocation is automatically activated for the new user pool client\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExplicitAuthFlows": "The authentication flows that are supported by the user pool clients\\. Flow names without the `ALLOW_` prefix are no longer supported, in favor of new names with the `ALLOW_` prefix\\. Note that values with `ALLOW_` prefix must be used only along with the `ALLOW_` prefix\\. \nValid values include: \n+ `ALLOW_ADMIN_USER_PASSWORD_AUTH`: Enable admin based user password authentication flow `ADMIN_USER_PASSWORD_AUTH`\\. This setting replaces the `ADMIN_NO_SRP_AUTH` setting\\. With this authentication flow, Amazon Cognito receives the password in the request instead of using the Secure Remote Password \\(SRP\\) protocol to verify passwords\\.\n+ `ALLOW_CUSTOM_AUTH`: Enable AWS Lambda trigger based authentication\\.\n+ `ALLOW_USER_PASSWORD_AUTH`: Enable user password\\-based authentication\\. In this flow, Amazon Cognito receives the password in the request instead of using the SRP protocol to verify passwords\\.\n+ `ALLOW_USER_SRP_AUTH`: Enable SRP\\-based authentication\\.\n+ `ALLOW_REFRESH_TOKEN_AUTH`: Enable authflow to refresh tokens\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GenerateSecret": "Boolean to specify whether you want to generate a secret for the user pool client being created\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IdTokenValidity": "The time limit, after which the ID token is no longer valid and cannot be used\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogoutURLs": "A list of allowed logout URLs for the identity providers\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreventUserExistenceErrors": "Use this setting to choose which errors and responses are returned by Cognito APIs during authentication, account confirmation, and password recovery when the user does not exist in the user pool\\. When set to `ENABLED` and the user does not exist, authentication returns an error indicating either the username or password was incorrect, and account confirmation and password recovery return a response indicating a code was sent to a simulated destination\\. When set to `LEGACY`, those APIs will return a `UserNotFoundException` exception if the user does not exist in the user pool\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ENABLED | LEGACY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReadAttributes": "The read attributes\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RefreshTokenValidity": "The time limit, in days, after which the refresh token is no longer valid and can't be used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `315360000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SupportedIdentityProviders": "A list of provider names for the identity providers that are supported on this client\\. The following are supported: `COGNITO`, `Facebook`, `SignInWithApple`, `Google` and `LoginWithAmazon`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TokenValidityUnits": "The units in which the validity times are represented in\\. Default for RefreshToken is days, and default for ID and access tokens are hours\\. \n*Required*: No \n*Type*: [TokenValidityUnits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolclient-tokenvalidityunits.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserPoolId": "The user pool ID for the user pool where you want to create a user pool client\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "WriteAttributes": "The user pool attributes that the app client can write to\\. \nIf your app client allows users to sign in through an identity provider, this array must include all attributes that are mapped to identity provider attributes\\. Amazon Cognito updates mapped attributes when users sign in to your application through an identity provider\\. If your app client lacks write access to a mapped attribute, Amazon Cognito throws an error when it tries to update the attribute\\. For more information, see [Specifying Identity Provider Attribute Mappings for Your User Pool](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-specifying-attribute-mapping.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPoolClient AnalyticsConfiguration": { + "ApplicationArn": "The Amazon Resource Name \\(ARN\\) of an Amazon Pinpoint project\\. You can use the Amazon Pinpoint project for integration with the chosen user pool client\\. Amazon Cognito publishes events to the Amazon Pinpoint project that the app ARN declares\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ApplicationId": "The application ID for an Amazon Pinpoint application\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[0-9a-fA-F]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExternalId": "The external ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of an AWS Identity and Access Management role that authorizes Amazon Cognito to publish events to Amazon Pinpoint analytics\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserDataShared": "If `UserDataShared` is `true`, Amazon Cognito will include user data in the events it publishes to Amazon Pinpoint analytics\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPoolClient TokenValidityUnits": { + "AccessToken": "A time unit in \u201cseconds\u201d, \u201cminutes\u201d, \u201chours\u201d or \u201cdays\u201d for the value in AccessTokenValidity, defaults to hours\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IdToken": "A time unit in \u201cseconds\u201d, \u201cminutes\u201d, \u201chours\u201d or \u201cdays\u201d for the value in IdTokenValidity, defaults to hours\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RefreshToken": "A time unit in \u201cseconds\u201d, \u201cminutes\u201d, \u201chours\u201d or \u201cdays\u201d for the value in RefreshTokenValidity, defaults to days\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPoolDomain": { + "CustomDomainConfig": "The configuration for a custom domain that hosts the sign\\-up and sign\\-in pages for your application\\. Use this object to specify an SSL certificate that is managed by ACM\\. \n*Required*: No \n*Type*: [CustomDomainConfigType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpooldomain-customdomainconfigtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Domain": "The domain name for the domain that hosts the sign\\-up and sign\\-in pages for your application\\. For example: `auth.example.com`\\. If you're using a prefix domain, this field denotes the first part of the domain before `.auth.[region].amazoncognito.com`\\. \nThis string can include only lowercase letters, numbers, and hyphens\\. Don't use a hyphen for the first or last character\\. Use periods to separate subdomain names\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-z0-9](?:[a-z0-9\\-]{0,61}[a-z0-9])?$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UserPoolId": "The user pool ID for the user pool where you want to associate a user pool domain\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Cognito::UserPoolDomain CustomDomainConfigType": { + "CertificateArn": "The Amazon Resource Name \\(ARN\\) of an AWS Certificate Manager SSL certificate\\. You use this certificate for the subdomain of your custom domain\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPoolGroup": { + "Description": "A string containing the description of the group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GroupName": "The name of the group\\. Must be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Precedence": "A non\\-negative integer value that specifies the precedence of this group relative to the other groups that a user can belong to in the user pool\\. Zero is the highest precedence value\\. Groups with lower `Precedence` values take precedence over groups with higher ornull `Precedence` values\\. If a user belongs to two or more groups, it is the group with the lowest precedence value whose role ARN is given in the user's tokens for the `cognito:roles` and `cognito:preferred_role` claims\\. \nTwo groups can have the same `Precedence` value\\. If this happens, neither group takes precedence over the other\\. If two groups with the same `Precedence` have the same role ARN, that role is used in the `cognito:preferred_role` claim in tokens for users in each group\\. If the two groups have different role ARNs, the `cognito:preferred_role` claim isn't set in users' tokens\\. \nThe default `Precedence` value is null\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The role Amazon Resource Name \\(ARN\\) for the group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserPoolId": "The user pool ID for the user pool\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Cognito::UserPoolIdentityProvider": { + "AttributeMapping": "A mapping of identity provider attributes to standard and custom user pool attributes\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IdpIdentifiers": "A list of identity provider identifiers\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProviderDetails": "The identity provider details\\. The following list describes the provider detail keys for each identity provider type\\. \n+ For Google and Login with Amazon:\n + client\\_id\n + client\\_secret\n + authorize\\_scopes\n+ For Facebook:\n + client\\_id\n + client\\_secret\n + authorize\\_scopes\n + api\\_version\n+ For Sign in with Apple:\n + client\\_id\n + team\\_id\n + key\\_id\n + private\\_key\n + authorize\\_scopes\n+ For OpenID Connect \\(OIDC\\) providers:\n + client\\_id\n + client\\_secret\n + attributes\\_request\\_method\n + oidc\\_issuer\n + authorize\\_scopes\n + authorize\\_url *if not available from discovery URL specified by oidc\\_issuer key* \n + token\\_url *if not available from discovery URL specified by oidc\\_issuer key* \n + attributes\\_url *if not available from discovery URL specified by oidc\\_issuer key* \n + jwks\\_uri *if not available from discovery URL specified by oidc\\_issuer key* \n + attributes\\_url\\_add\\_attributes *a read\\-only property that is set automatically* \n+ For SAML providers:\n + MetadataFile OR MetadataURL\n + IDPSignout \\(optional\\)\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProviderName": "The identity provider name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `[^_][\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}][^_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProviderType": "The identity provider type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Facebook | Google | LoginWithAmazon | OIDC | SAML | SignInWithApple` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UserPoolId": "The user pool ID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Cognito::UserPoolResourceServer": { + "Identifier": "A unique resource server identifier for the resource server\\. This could be an HTTPS endpoint where the resource server is located\\. For example: `https://my-weather-api.example.com`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\x21\\x23-\\x5B\\x5D-\\x7E]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "A friendly name for the resource server\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\w\\s+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scopes": "A list of scopes\\. Each scope is a map with keys `ScopeName` and `ScopeDescription`\\. \n*Required*: No \n*Type*: List of [ResourceServerScopeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolresourceserver-resourceserverscopetype.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserPoolId": "The user pool ID for the user pool\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Cognito::UserPoolResourceServer ResourceServerScopeType": { + "ScopeDescription": "A description of the scope\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScopeName": "The name of the scope\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\x21\\x23-\\x2E\\x30-\\x5B\\x5D-\\x7E]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment": { + "AccountTakeoverRiskConfiguration": "The account takeover risk configuration object, including the `NotifyConfiguration` object and `Actions` to take if there is an account takeover\\. \n*Required*: No \n*Type*: [AccountTakeoverRiskConfigurationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoverriskconfigurationtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientId": "The app client ID\\. You can specify the risk configuration for a single client \\(with a specific ClientId\\) or for all clients \\(by setting the ClientId to `ALL`\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CompromisedCredentialsRiskConfiguration": "The compromised credentials risk configuration object, including the `EventFilter` and the `EventAction`\\. \n*Required*: No \n*Type*: [CompromisedCredentialsRiskConfigurationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-compromisedcredentialsriskconfigurationtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RiskExceptionConfiguration": "The configuration to override the risk decision\\. \n*Required*: No \n*Type*: [RiskExceptionConfigurationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-riskexceptionconfigurationtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserPoolId": "The user pool ID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment AccountTakeoverActionType": { + "EventAction": "The event action\\. \n+ `BLOCK` Choosing this action will block the request\\.\n+ `MFA_IF_CONFIGURED` Present an MFA challenge if user has configured it, else allow the request\\.\n+ `MFA_REQUIRED` Present an MFA challenge if user has configured it, else block the request\\.\n+ `NO_ACTION` Allow the user to sign in\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `BLOCK | MFA_IF_CONFIGURED | MFA_REQUIRED | NO_ACTION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Notify": "Flag specifying whether to send a notification\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment AccountTakeoverActionsType": { + "HighAction": "Action to take for a high risk\\. \n*Required*: No \n*Type*: [AccountTakeoverActionType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractiontype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LowAction": "Action to take for a low risk\\. \n*Required*: No \n*Type*: [AccountTakeoverActionType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractiontype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MediumAction": "Action to take for a medium risk\\. \n*Required*: No \n*Type*: [AccountTakeoverActionType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractiontype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment AccountTakeoverRiskConfigurationType": { + "Actions": "Account takeover risk configuration actions\\. \n*Required*: Yes \n*Type*: [AccountTakeoverActionsType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractionstype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotifyConfiguration": "The notify configuration used to construct email notifications\\. \n*Required*: No \n*Type*: [NotifyConfigurationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyconfigurationtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment CompromisedCredentialsActionsType": { + "EventAction": "The event action\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BLOCK | NO_ACTION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment CompromisedCredentialsRiskConfigurationType": { + "Actions": "The compromised credentials risk configuration actions\\. \n*Required*: Yes \n*Type*: [CompromisedCredentialsActionsType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-compromisedcredentialsactionstype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventFilter": "Perform the action for these events\\. The default is to perform all events if no event filter is specified\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment NotifyConfigurationType": { + "BlockEmail": "Email template used when a detected risk event is blocked\\. \n*Required*: No \n*Type*: [NotifyEmailType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyemailtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "From": "The email address that is sending the email\\. The address must be either individually verified with Amazon Simple Email Service, or from a domain that has been verified with Amazon SES\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MfaEmail": "The multi\\-factor authentication \\(MFA\\) email template used when MFA is challenged as part of a detected risk\\. \n*Required*: No \n*Type*: [NotifyEmailType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyemailtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NoActionEmail": "The email template used when a detected risk event is allowed\\. \n*Required*: No \n*Type*: [NotifyEmailType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyemailtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReplyTo": "The destination to which the receiver of an email should reply to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceArn": "The Amazon Resource Name \\(ARN\\) of the identity that is associated with the sending authorization policy\\. This identity permits Amazon Cognito to send for the email address specified in the `From` parameter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment NotifyEmailType": { + "HtmlBody": "The email HTML body\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `20000` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Subject": "The email subject\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `140` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextBody": "The email text body\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `20000` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment RiskExceptionConfigurationType": { + "BlockedIPRangeList": "Overrides the risk decision to always block the pre\\-authentication requests\\. The IP range is in CIDR notation, a compact representation of an IP address and its routing prefix\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SkippedIPRangeList": "Risk detection isn't performed on the IP addresses in this range list\\. The IP range is in CIDR notation\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPoolUICustomizationAttachment": { + "CSS": "The CSS values in the UI customization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientId": "The client ID for the client app\\. You can specify the UI customization settings for a single client \\(with a specific clientId\\) or for all clients \\(by setting the clientId to `ALL`\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UserPoolId": "The user pool ID for the user pool\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Cognito::UserPoolUser": { + "ClientMetadata": "A map of custom key\\-value pairs that you can provide as input for the custom workflow that is invoked by the *pre sign\\-up* trigger\\. \nYou create custom workflows by assigning AWS Lambda functions to user pool triggers\\. When you create a `UserPoolUser` resource and include the `ClientMetadata` property, Amazon Cognito invokes the function that is assigned to the *pre sign\\-up* trigger\\. When Amazon Cognito invokes this function, it passes a JSON payload, which the function receives as input\\. This payload contains a `clientMetadata` attribute, which provides the data that you assigned to the ClientMetadata property\\. In your function code in AWS Lambda, you can process the `clientMetadata` value to enhance your workflow for your specific needs\\. \nFor more information, see [Customizing User Pool Workflows with Lambda Triggers](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html) in the *Amazon Cognito Developer Guide*\\. \nTake the following limitations into consideration when you use the ClientMetadata parameter: \n+ Amazon Cognito does not store the ClientMetadata value\\. This data is available only to AWS Lambda triggers that are assigned to a user pool to support custom workflows\\. If your user pool configuration does not include triggers, the ClientMetadata parameter serves no purpose\\.\n+ Amazon Cognito does not validate the ClientMetadata value\\.\n+ Amazon Cognito does not encrypt the the ClientMetadata value, so don't use it to provide sensitive information\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DesiredDeliveryMediums": "Specify `\"EMAIL\"` if email will be used to send the welcome message\\. Specify `\"SMS\"` if the phone number will be used\\. The default value is `\"SMS\"`\\. You can specify more than one value\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ForceAliasCreation": "This parameter is used only if the `phone_number_verified` or `email_verified` attribute is set to `True`\\. Otherwise, it is ignored\\. \nIf this parameter is set to `True` and the phone number or email address specified in the UserAttributes parameter already exists as an alias with a different user, the API call will migrate the alias from the previous user to the newly created user\\. The previous user will no longer be able to log in using that alias\\. \nIf this parameter is set to `False`, the API throws an `AliasExistsException` error if the alias already exists\\. The default value is `False`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MessageAction": "Set to `RESEND` to resend the invitation message to a user that already exists and reset the expiration limit on the user's account\\. Set to `SUPPRESS` to suppress sending the message\\. You can specify only one value\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `RESEND | SUPPRESS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UserAttributes": "The user attributes and attribute values to be set for the user to be created\\. These are name\\-value pairs You can create a user without specifying any attributes other than `Username`\\. However, any attributes that you specify as required \\(in [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html) or in the **Attributes** tab of the console\\) must be supplied either by you \\(in your call to `AdminCreateUser`\\) or by the user \\(when they sign up in response to your welcome message\\)\\. \nFor custom attributes, you must prepend the `custom:` prefix to the attribute name\\. \nTo send a message inviting the user to sign up, you must specify the user's email address or phone number\\. This can be done in your call to AdminCreateUser or in the **Users** tab of the Amazon Cognito console for managing your user pools\\. \nIn your call to `AdminCreateUser`, you can set the `email_verified` attribute to `True`, and you can set the `phone_number_verified` attribute to `True`\\. \\(You can also do this by calling [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)\\.\\) \n+ **email**: The email address of the user to whom the message that contains the code and user name will be sent\\. Required if the `email_verified` attribute is set to `True`, or if `\"EMAIL\"` is specified in the `DesiredDeliveryMediums` parameter\\.\n+ **phone\\_number**: The phone number of the user to whom the message that contains the code and user name will be sent\\. Required if the `phone_number_verified` attribute is set to `True`, or if `\"SMS\"` is specified in the `DesiredDeliveryMediums` parameter\\.\n*Required*: No \n*Type*: List of [AttributeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpooluser-attributetype.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UserPoolId": "The user pool ID for the user pool where the user will be created\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Username": "The username for the user\\. Must be unique within the user pool\\. Must be a UTF\\-8 string between 1 and 128 characters\\. After the user is created, the username can't be changed\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ValidationData": "The user's validation data\\. This is an array of name\\-value pairs that contain user attributes and attribute values that you can use for custom validation, such as restricting the types of user accounts that can be registered\\. For example, you might choose to allow or disallow user sign\\-up based on the user's domain\\. \nTo configure custom validation, you must create a Pre Sign\\-up AWS Lambda trigger for the user pool as described in the Amazon Cognito Developer Guide\\. The Lambda trigger receives the validation data and uses it in the validation process\\. \nThe user's validation data isn't persisted\\. \n*Required*: No \n*Type*: List of [AttributeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpooluser-attributetype.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Cognito::UserPoolUser AttributeType": { + "Name": "The name of the attribute\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of the attribute\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Cognito::UserPoolUserToGroupAttachment": { + "GroupName": "The group name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UserPoolId": "The user pool ID for the user pool\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Username": "The username for the user\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Config::AggregationAuthorization": { + "AuthorizedAccountId": "The 12\\-digit account ID of the account authorized to aggregate data\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `\\d{12}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AuthorizedAwsRegion": "The region authorized to collect aggregated data\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of tag object\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::ConfigRule": { + "ConfigRuleName": "A name for the AWS Config rule\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the rule name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "The description that you provide for the AWS Config rule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputParameters": "A string, in JSON format, that is passed to the AWS Config rule Lambda function\\. \n*Required*: No \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaximumExecutionFrequency": "The maximum frequency with which AWS Config runs evaluations for a rule\\. You can specify a value for `MaximumExecutionFrequency` when: \n+ You are using an AWS managed rule that is triggered at a periodic frequency\\.\n+ Your custom rule is triggered when AWS Config delivers the configuration snapshot\\. For more information, see [ConfigSnapshotDeliveryProperties](https://docs.aws.amazon.com/config/latest/APIReference/API_ConfigSnapshotDeliveryProperties.html)\\.\nBy default, rules with a periodic trigger are evaluated every 24 hours\\. To change the frequency, specify a valid value for the `MaximumExecutionFrequency` parameter\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `One_Hour | Six_Hours | Three_Hours | Twelve_Hours | TwentyFour_Hours` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scope": "Defines which resources can trigger an evaluation for the rule\\. The scope can include one or more resource types, a combination of one resource type and one resource ID, or a combination of a tag key and value\\. Specify a scope to constrain the resources that can trigger an evaluation for the rule\\. If you do not specify a scope, evaluations are triggered when any resource in the recording group changes\\. \nThe scope can be empty\\. \n*Required*: No \n*Type*: [Scope](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-scope.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Source": "Provides the rule owner \\(AWS or customer\\), the rule identifier, and the notifications that cause the function to evaluate your AWS resources\\. \n*Required*: Yes \n*Type*: [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::ConfigRule Scope": { + "ComplianceResourceId": "The ID of the only AWS resource that you want to trigger an evaluation for the rule\\. If you specify a resource ID, you must specify one resource type for `ComplianceResourceTypes`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `768` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ComplianceResourceTypes": "The resource types of only those AWS resources that you want to trigger an evaluation for the rule\\. You can only specify one type if you also specify a resource ID for `ComplianceResourceId`\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TagKey": "The tag key that is applied to only those AWS resources that you want to trigger an evaluation for the rule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TagValue": "The tag value applied to only those AWS resources that you want to trigger an evaluation for the rule\\. If you specify a value for `TagValue`, you must also specify a value for `TagKey`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::ConfigRule Source": { + "Owner": "Indicates whether AWS or the customer owns and manages the AWS Config rule\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AWS | CUSTOM_LAMBDA` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceDetails": "Provides the source and type of the event that causes AWS Config to evaluate your AWS resources\\. \n*Required*: No \n*Type*: List of [SourceDetail](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source-sourcedetails.html) \n*Maximum*: `25` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceIdentifier": "For AWS Config managed rules, a predefined identifier from a list\\. For example, `IAM_PASSWORD_POLICY` is a managed rule\\. To reference a managed rule, see [Using AWS Config managed rules](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html)\\. \nFor custom rules, the identifier is the Amazon Resource Name \\(ARN\\) of the rule's AWS Lambda function, such as `arn:aws:lambda:us-east-2:123456789012:function:custom_rule_name`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::ConfigRule SourceDetail": { + "EventSource": "The source of the event, such as an AWS service, that triggers AWS Config to evaluate your AWS resources\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `aws.config` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaximumExecutionFrequency": "The frequency at which you want AWS Config to run evaluations for a custom rule with a periodic trigger\\. If you specify a value for `MaximumExecutionFrequency`, then `MessageType` must use the `ScheduledNotification` value\\. \nBy default, rules with a periodic trigger are evaluated every 24 hours\\. To change the frequency, specify a valid value for the `MaximumExecutionFrequency` parameter\\. \nBased on the valid value you choose, AWS Config runs evaluations once for each valid value\\. For example, if you choose `Three_Hours`, AWS Config runs evaluations once every three hours\\. In this case, `Three_Hours` is the frequency of this rule\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `One_Hour | Six_Hours | Three_Hours | Twelve_Hours | TwentyFour_Hours` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MessageType": "The type of notification that triggers AWS Config to run an evaluation for a rule\\. You can specify the following notification types: \n+ `ConfigurationItemChangeNotification` \\- Triggers an evaluation when AWS Config delivers a configuration item as a result of a resource change\\.\n+ `OversizedConfigurationItemChangeNotification` \\- Triggers an evaluation when AWS Config delivers an oversized configuration item\\. AWS Config may generate this notification type when a resource changes and the notification exceeds the maximum size allowed by Amazon SNS\\.\n+ `ScheduledNotification` \\- Triggers a periodic evaluation at the frequency specified for `MaximumExecutionFrequency`\\.\n+ `ConfigurationSnapshotDeliveryCompleted` \\- Triggers a periodic evaluation when AWS Config delivers a configuration snapshot\\.\nIf you want your custom rule to be triggered by configuration changes, specify two SourceDetail objects, one for `ConfigurationItemChangeNotification` and one for `OversizedConfigurationItemChangeNotification`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ConfigurationItemChangeNotification | ConfigurationSnapshotDeliveryCompleted | OversizedConfigurationItemChangeNotification | ScheduledNotification` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::ConfigurationAggregator": { + "AccountAggregationSources": "Provides a list of source accounts and regions to be aggregated\\. \n*Required*: No \n*Type*: List of [AccountAggregationSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationaggregator-accountaggregationsource.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConfigurationAggregatorName": "The name of the aggregator\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\w\\-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OrganizationAggregationSource": "Provides an organization and list of regions to be aggregated\\. \n*Required*: No \n*Type*: [OrganizationAggregationSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationaggregator-organizationaggregationsource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of tag object\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::ConfigurationAggregator AccountAggregationSource": { + "AccountIds": "The 12\\-digit account ID of the account being aggregated\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AllAwsRegions": "If true, aggregate existing AWS Config regions and future regions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AwsRegions": "The source regions being aggregated\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::ConfigurationAggregator OrganizationAggregationSource": { + "AllAwsRegions": "If true, aggregate existing AWS Config regions and future regions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AwsRegions": "The source regions being aggregated\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "ARN of the IAM role used to retrieve AWS Organizations details associated with the aggregator account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::ConfigurationRecorder": { + "Name": "A name for the configuration recorder\\. If you don't specify a name, AWS CloudFormation CloudFormation generates a unique physical ID and uses that ID for the configuration recorder name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nAfter you create a configuration recorder, you cannot rename it\\. If you don't want a name that AWS CloudFormation generates, specify a value for this property\\. \nUpdates are not supported\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RecordingGroup": "Indicates whether to record configurations for all supported resources or for a list of resource types\\. The resource types that you list must be supported by AWS Config\\. \n*Required*: No \n*Type*: [RecordingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordinggroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleARN": "The Amazon Resource Name \\(ARN\\) of the IAM \\(IAM\\) role that is used to make read or write requests to the delivery channel that you specify and to get configuration details for supported AWS resources\\. For more information, see [Permissions for the IAM Role Assigned](https://docs.aws.amazon.com/config/latest/developerguide/iamrole-permissions.html) to AWS Config in the AWS Config Developer Guide\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::ConfigurationRecorder RecordingGroup": { + "AllSupported": "Specifies whether AWS Config records configuration changes for every supported type of regional resource\\. \nIf you set this option to `true`, when AWS Config adds support for a new type of regional resource, it starts recording resources of that type automatically\\. \nIf you set this option to `true`, you cannot enumerate a list of `resourceTypes`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeGlobalResourceTypes": "Specifies whether AWS Config includes all supported types of global resources \\(for example, IAM resources\\) with the resources that it records\\. \nBefore you can set this option to `true`, you must set the `AllSupported` option to `true`\\. \nIf you set this option to `true`, when AWS Config adds support for a new type of global resource, it starts recording resources of that type automatically\\. \nThe configuration details for any global resource are the same in all regions\\. To prevent duplicate configuration items, you should consider customizing AWS Config in only one region to record global resources\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceTypes": "A comma\\-separated list that specifies the types of AWS resources for which AWS Config records configuration changes \\(for example, `AWS::EC2::Instance` or `AWS::CloudTrail::Trail`\\)\\. \nTo record all configuration changes, you must set the `AllSupported` option to `false`\\. \nIf you set this option to `true`, when AWS Config adds support for a new type of resource, it will not record resources of that type unless you manually add that type to your recording group\\. \nFor a list of valid `resourceTypes` values, see the **resourceType Value** column in [Supported AWS Resource Types](https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::ConformancePack": { + "ConformancePackInputParameters": "A list of ConformancePackInputParameter objects\\. \n*Required*: No \n*Type*: List of [ConformancePackInputParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-conformancepack-conformancepackinputparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConformancePackName": "Name of the conformance pack you want to create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DeliveryS3Bucket": "The name of the Amazon S3 bucket where AWS Config stores conformance pack templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeliveryS3KeyPrefix": "The prefix for the Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateBody": "A string containing full conformance pack template body\\. Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes\\. \nYou can only use a YAML template with two resource types: config rule \\(`AWS::Config::ConfigRule`\\) and a remediation action \\(`AWS::Config::RemediationConfiguration`\\)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateS3Uri": "Location of file containing the template body \\(s3://bucketname/prefix\\)\\. The uri must point to the conformance pack template \\(max size: 300 KB\\) that is located in an Amazon S3 bucket\\. \nYou must have access to read Amazon S3 bucket\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::ConformancePack ConformancePackInputParameter": { + "ParameterName": "One part of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParameterValue": "Another part of the key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::DeliveryChannel": { + "ConfigSnapshotDeliveryProperties": "The options for how often AWS Config delivers configuration snapshots to the Amazon S3 bucket\\. \n*Required*: No \n*Type*: [ConfigSnapshotDeliveryProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-deliverychannel-configsnapshotdeliveryproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A name for the delivery channel\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the delivery channel name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nUpdates are not supported\\. To change the name, you must run two separate updates\\. In the first update, delete this resource, and then recreate it with a new name in the second update\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "S3BucketName": "The name of the Amazon S3 bucket to which AWS Config delivers configuration snapshots and configuration history files\\. \nIf you specify a bucket that belongs to another AWS account, that bucket must have policies that grant access permissions to AWS Config\\. For more information, see [Permissions for the Amazon S3 Bucket](https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-policy.html) in the AWS Config Developer Guide\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3KeyPrefix": "The prefix for the specified Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3KmsKeyArn": "The Amazon Resource Name \\(ARN\\) of the AWS Key Management Service \\(AWS KMS \\) AWS KMS key \\(KMS key\\) used to encrypt objects delivered by AWS Config\\. Must belong to the same Region as the destination S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnsTopicARN": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to which AWS Config sends notifications about configuration changes\\. \nIf you choose a topic from another account, the topic must have policies that grant access permissions to AWS Config\\. For more information, see [Permissions for the Amazon SNS Topic](https://docs.aws.amazon.com/config/latest/developerguide/sns-topic-policy.html) in the AWS Config Developer Guide\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::DeliveryChannel ConfigSnapshotDeliveryProperties": { + "DeliveryFrequency": "The frequency with which AWS Config delivers configuration snapshots\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `One_Hour | Six_Hours | Three_Hours | Twelve_Hours | TwentyFour_Hours` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::OrganizationConfigRule": { + "ExcludedAccounts": "A comma\\-separated list of accounts excluded from organization config rule\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OrganizationConfigRuleName": "The name that you assign to organization config rule\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OrganizationCustomCodeRuleMetadata": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [OrganizationCustomCodeRuleMetadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomcoderulemetadata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OrganizationCustomRuleMetadata": "An `OrganizationCustomRuleMetadata` object\\. \n*Required*: No \n*Type*: [OrganizationCustomRuleMetadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OrganizationManagedRuleMetadata": "An `OrganizationManagedRuleMetadata` object\\. \n*Required*: No \n*Type*: [OrganizationManagedRuleMetadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationmanagedrulemetadata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::OrganizationConfigRule OrganizationCustomCodeRuleMetadata": { + "CodeText": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DebugLogDeliveryAccounts": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputParameters": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaximumExecutionFrequency": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OrganizationConfigRuleTriggerTypes": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceIdScope": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceTypesScope": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Runtime": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TagKeyScope": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TagValueScope": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::OrganizationConfigRule OrganizationCustomRuleMetadata": { + "Description": "The description that you provide for organization config rule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputParameters": "A string, in JSON format, that is passed to organization config rule Lambda function\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LambdaFunctionArn": "The lambda function ARN\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaximumExecutionFrequency": "The maximum frequency with which AWS Config runs evaluations for a rule\\. Your custom rule is triggered when AWS Config delivers the configuration snapshot\\. For more information, see [ConfigSnapshotDeliveryProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-deliverychannel.html#cfn-config-deliverychannel-configsnapshotdeliveryproperties)\\. \nBy default, rules with a periodic trigger are evaluated every 24 hours\\. To change the frequency, specify a valid value for the `MaximumExecutionFrequency` parameter\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `One_Hour | Six_Hours | Three_Hours | Twelve_Hours | TwentyFour_Hours` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OrganizationConfigRuleTriggerTypes": "The type of notification that triggers AWS Config to run an evaluation for a rule\\. You can specify the following notification types: \n+ `ConfigurationItemChangeNotification` \\- Triggers an evaluation when AWS Config delivers a configuration item as a result of a resource change\\.\n+ `OversizedConfigurationItemChangeNotification` \\- Triggers an evaluation when AWS Config delivers an oversized configuration item\\. AWS Config may generate this notification type when a resource changes and the notification exceeds the maximum size allowed by Amazon SNS\\.\n+ `ScheduledNotification` \\- Triggers a periodic evaluation at the frequency specified for `MaximumExecutionFrequency`\\.\n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceIdScope": "The ID of the AWS resource that was evaluated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `768` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceTypesScope": "The type of the AWS resource that was evaluated\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TagKeyScope": "One part of a key\\-value pair that make up a tag\\. A key is a general label that acts like a category for more specific tag values\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TagValueScope": "The optional part of a key\\-value pair that make up a tag\\. A value acts as a descriptor within a tag category \\(key\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::OrganizationConfigRule OrganizationManagedRuleMetadata": { + "Description": "The description that you provide for organization config rule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputParameters": "A string, in JSON format, that is passed to organization config rule Lambda function\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaximumExecutionFrequency": "The maximum frequency with which AWS Config runs evaluations for a rule\\. You are using an AWS Config managed rule that is triggered at a periodic frequency\\. \nBy default, rules with a periodic trigger are evaluated every 24 hours\\. To change the frequency, specify a valid value for the `MaximumExecutionFrequency` parameter\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `One_Hour | Six_Hours | Three_Hours | Twelve_Hours | TwentyFour_Hours` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceIdScope": "The ID of the AWS resource that was evaluated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `768` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceTypesScope": "The type of the AWS resource that was evaluated\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleIdentifier": "For organization config managed rules, a predefined identifier from a list\\. For example, `IAM_PASSWORD_POLICY` is a managed rule\\. To reference a managed rule, see [Using AWS Config managed rules](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TagKeyScope": "One part of a key\\-value pair that make up a tag\\. A key is a general label that acts like a category for more specific tag values\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TagValueScope": "The optional part of a key\\-value pair that make up a tag\\. A value acts as a descriptor within a tag category \\(key\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::OrganizationConformancePack": { + "ConformancePackInputParameters": "A list of `ConformancePackInputParameter` objects\\. \n*Required*: No \n*Type*: List of [ConformancePackInputParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconformancepack-conformancepackinputparameter.html) \n*Maximum*: `60` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeliveryS3Bucket": "The name of the Amazon S3 bucket where AWS Config stores conformance pack templates\\. \nThis field is optional\\.\n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeliveryS3KeyPrefix": "Any folder structure you want to add to an Amazon S3 bucket\\. \nThis field is optional\\.\n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExcludedAccounts": "A comma\\-separated list of accounts excluded from organization conformance pack\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OrganizationConformancePackName": "The name you assign to an organization conformance pack\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z][-a-zA-Z0-9]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TemplateBody": "A string containing full conformance pack template body\\. Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateS3Uri": "Location of file containing the template body\\. The uri must point to the conformance pack template \\(max size: 300 KB\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::OrganizationConformancePack ConformancePackInputParameter": { + "ParameterName": "One part of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParameterValue": "One part of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::RemediationConfiguration": { + "Automatic": "The remediation is triggered automatically\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConfigRuleName": "The name of the AWS Config rule\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ExecutionControls": "An ExecutionControls object\\. \n*Required*: No \n*Type*: [ExecutionControls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-executioncontrols.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaximumAutomaticAttempts": "The maximum number of failed attempts for auto\\-remediation\\. If you do not select a number, the default is 5\\. \nFor example, if you specify MaximumAutomaticAttempts as 5 with RetryAttemptSeconds as 50 seconds, AWS Config will put a RemediationException on your behalf for the failing resource after the 5th failed attempt within 50 seconds\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `25` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "An object of the RemediationParameterValue\\. \nThe type is a map of strings to RemediationParameterValue\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceType": "The type of a resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetryAttemptSeconds": "Maximum time in seconds that AWS Config runs auto\\-remediation\\. If you do not select a number, the default is 60 seconds\\. \nFor example, if you specify RetryAttemptSeconds as 50 seconds and MaximumAutomaticAttempts as 5, AWS Config will run auto\\-remediations 5 times within 50 seconds before throwing an exception\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetId": "Target ID is the name of the public document\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetType": "The type of the target\\. Target executes remediation\\. For example, SSM document\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SSM_DOCUMENT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetVersion": "Version of the target\\. For example, version of the SSM document\\. \nIf you make backward incompatible changes to the SSM document, you must call PutRemediationConfiguration API again to ensure the remediations can run\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::RemediationConfiguration ExecutionControls": { + "SsmControls": "A SsmControls object\\. \n*Required*: No \n*Type*: [SsmControls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-ssmcontrols.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::RemediationConfiguration RemediationParameterValue": { + "ResourceValue": "The value is dynamic and changes at run\\-time\\. \n*Required*: No \n*Type*: [ResourceValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-resourcevalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StaticValue": "The value is static and does not change at run\\-time\\. \n*Required*: No \n*Type*: [StaticValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-staticvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::RemediationConfiguration ResourceValue": { + "Value": "The value is a resource ID\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `RESOURCE_ID` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::RemediationConfiguration SsmControls": { + "ConcurrentExecutionRatePercentage": "The maximum percentage of remediation actions allowed to run in parallel on the non\\-compliant resources for that specific rule\\. You can specify a percentage, such as 10%\\. The default value is 10\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ErrorPercentage": "The percentage of errors that are allowed before SSM stops running automations on non\\-compliant resources for that specific rule\\. You can specify a percentage of errors, for example 10%\\. If you do not specifiy a percentage, the default is 50%\\. For example, if you set the ErrorPercentage to 40% for 10 non\\-compliant resources, then SSM stops running the automations when the fifth error is received\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::RemediationConfiguration StaticValue": { + "Values": "A list of values\\. For example, the ARN of the assumed role\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `25` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Config::StoredQuery": { + "QueryDescription": "A unique description for the query\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryExpression": "The expression of the query\\. For example, `SELECT resourceId, resourceType, supplementaryConfiguration.BucketVersioningConfiguration.status WHERE resourceType = 'AWS::S3::Bucket' AND supplementaryConfiguration.BucketVersioningConfiguration.status = 'Off'.` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryName": "The name of the query\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9-_]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Connect::ContactFlow": { + "Content": "The content of the contact flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the contact flow\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceArn": "The Amazon Resource Name \\(ARN\\) of the Amazon Connect instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the contact flow\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "State": "The state of the contact flow\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ACTIVE | ARCHIVED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of the contact flow\\. For descriptions of the available types, see [Choose a Contact Flow Type](https://docs.aws.amazon.com/connect/latest/adminguide/create-contact-flow.html#contact-flow-types) in the *Amazon Connect Administrator Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AGENT_HOLD | AGENT_TRANSFER | AGENT_WHISPER | CONTACT_FLOW | CUSTOMER_HOLD | CUSTOMER_QUEUE | CUSTOMER_WHISPER | OUTBOUND_WHISPER | QUEUE_TRANSFER` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Connect::ContactFlowModule": { + "Content": "The content of the contact flow module\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the contact flow module\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `500` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceArn": "The Amazon Resource Name \\(ARN\\) of the Amazon Connect instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the contact flow module\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `127` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "State": "The state of the contact flow module\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ACTIVE | ARCHIVED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Connect::HoursOfOperation": { + "Config": "Configuration information for the hours of operation\\. \n*Required*: Yes \n*Type*: List of [HoursOfOperationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationconfig.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description for the hours of operation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `250` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceArn": "The Amazon Resource Name \\(ARN\\) for the instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name for the hours of operation\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `127` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeZone": "The time zone for the hours of operation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Connect::HoursOfOperation HoursOfOperationConfig": { + "Day": "The day that the hours of operation applies to\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `FRIDAY | MONDAY | SATURDAY | SUNDAY | THURSDAY | TUESDAY | WEDNESDAY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EndTime": "The end time that your contact center closes\\. \n*Required*: Yes \n*Type*: [HoursOfOperationTimeSlice](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationtimeslice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StartTime": "The start time that your contact center opens\\. \n*Required*: Yes \n*Type*: [HoursOfOperationTimeSlice](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationtimeslice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Connect::HoursOfOperation HoursOfOperationTimeSlice": { + "Hours": "The hours\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `23` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Minutes": "The minutes\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `59` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Connect::QuickConnect": { + "Description": "The description of the quick connect\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `250` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceArn": "The Amazon Resource Name \\(ARN\\) of the instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the quick connect\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `127` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QuickConnectConfig": "Contains information about the quick connect\\. \n*Required*: Yes \n*Type*: [QuickConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-quickconnectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Connect::QuickConnect PhoneNumberQuickConnectConfig": { + "PhoneNumber": "The phone number in E\\.164 format\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Connect::QuickConnect QueueQuickConnectConfig": { + "ContactFlowArn": "The Amazon Resource Name \\(ARN\\) of the contact flow\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueueArn": "The Amazon Resource Name \\(ARN\\) of the queue\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Connect::QuickConnect QuickConnectConfig": { + "PhoneConfig": "The phone configuration\\. This is required only if QuickConnectType is PHONE\\_NUMBER\\. \n*Required*: No \n*Type*: [PhoneNumberQuickConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-phonenumberquickconnectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueueConfig": "The queue configuration\\. This is required only if QuickConnectType is QUEUE\\. \n*Required*: No \n*Type*: [QueueQuickConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-queuequickconnectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QuickConnectType": "The type of quick connect\\. In the Amazon Connect console, when you create a quick connect, you are prompted to assign one of the following types: Agent \\(USER\\), External \\(PHONE\\_NUMBER\\), or Queue \\(QUEUE\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `PHONE_NUMBER | QUEUE | USER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserConfig": "The user configuration\\. This is required only if QuickConnectType is USER\\. \n*Required*: No \n*Type*: [UserQuickConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-userquickconnectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Connect::QuickConnect UserQuickConnectConfig": { + "ContactFlowArn": "The Amazon Resource Name \\(ARN\\) of the contact flow\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserArn": "The Amazon Resource Name \\(ARN\\) of the user\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Connect::User": { + "DirectoryUserId": "The identifier of the user account in the directory used for identity management\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HierarchyGroupArn": "The Amazon Resource Name \\(ARN\\) of the user's hierarchy group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IdentityInfo": "Information about the user identity\\. \n*Required*: No \n*Type*: [UserIdentityInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-useridentityinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceArn": "The Amazon Resource Name \\(ARN\\) of the instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Password": "The user's password\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PhoneConfig": "Information about the phone configuration for the user\\. \n*Required*: Yes \n*Type*: [UserPhoneConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-userphoneconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoutingProfileArn": "The Amazon Resource Name \\(ARN\\) of the user's routing profile\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityProfileArns": "The Amazon Resource Name \\(ARN\\) of the user's security profile\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Username": "The user name assigned to the user account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Connect::User UserIdentityInfo": { + "Email": "The email address\\. If you are using SAML for identity management and include this parameter, an error is returned\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FirstName": "The first name\\. This is required if you are using Amazon Connect or SAML for identity management\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LastName": "The last name\\. This is required if you are using Amazon Connect or SAML for identity management\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Connect::User UserPhoneConfig": { + "AfterContactWorkTimeLimit": "The After Call Work \\(ACW\\) timeout setting, in seconds\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutoAccept": "The Auto accept setting\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeskPhoneNumber": "The phone number for the user's desk phone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PhoneType": "The phone type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DESK_PHONE | SOFT_PHONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Connect::UserHierarchyGroup": { + "InstanceArn": "The Amazon Resource Name \\(ARN\\) of the user hierarchy group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the user hierarchy group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParentGroupArn": "The Amazon Resource Name \\(ARN\\) of the parent group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CustomerProfiles::Domain": { + "DeadLetterQueueUrl": "The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications\\. You must set up a policy on the DeadLetterQueue for the SendMessage operation to enable Amazon Connect Customer Profiles to send messages to the DeadLetterQueue\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultEncryptionKey": "The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is specified\\. It is used to encrypt all data before it is placed in permanent or semi\\-permanent storage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultExpirationDays": "The default number of days until the data within the domain expires\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainName": "The unique name of the domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CustomerProfiles::Integration": { + "DomainName": "The unique name of the domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FlowDefinition": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [FlowDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-flowdefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ObjectTypeName": "The name of the profile object type mapping to use\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ObjectTypeNames": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of [ObjectTypeMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-objecttypemapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Uri": "The URI of the S3 bucket or any other type of data source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::CustomerProfiles::Integration ConnectorOperator": { + "Marketo": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Salesforce": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceNow": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Zendesk": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CustomerProfiles::Integration FlowDefinition": { + "Description": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FlowName": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsArn": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceFlowConfig": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: [SourceFlowConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-sourceflowconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tasks": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: List of [Task](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-task.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TriggerConfig": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: [TriggerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-triggerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CustomerProfiles::Integration IncrementalPullConfig": { + "DatetimeTypeFieldName": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CustomerProfiles::Integration MarketoSourceProperties": { + "Object": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CustomerProfiles::Integration ObjectTypeMapping": { + "Key": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CustomerProfiles::Integration S3SourceProperties": { + "BucketName": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BucketPrefix": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CustomerProfiles::Integration SalesforceSourceProperties": { + "EnableDynamicFieldUpdate": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeDeletedRecords": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Object": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CustomerProfiles::Integration ScheduledTriggerProperties": { + "DataPullMode": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FirstExecutionFrom": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduleEndTime": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduleExpression": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduleOffset": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduleStartTime": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Timezone": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CustomerProfiles::Integration ServiceNowSourceProperties": { + "Object": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CustomerProfiles::Integration SourceConnectorProperties": { + "Marketo": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [MarketoSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-marketosourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [S3SourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-s3sourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Salesforce": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [SalesforceSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-salesforcesourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceNow": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ServiceNowSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-servicenowsourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Zendesk": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ZendeskSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-zendesksourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CustomerProfiles::Integration SourceFlowConfig": { + "ConnectorProfileName": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectorType": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncrementalPullConfig": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [IncrementalPullConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-incrementalpullconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceConnectorProperties": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: [SourceConnectorProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-sourceconnectorproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CustomerProfiles::Integration Task": { + "ConnectorOperator": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ConnectorOperator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-connectoroperator.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationField": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceFields": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TaskProperties": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of [TaskPropertiesMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-taskpropertiesmap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TaskType": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CustomerProfiles::Integration TaskPropertiesMap": { + "OperatorPropertyKey": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Property": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CustomerProfiles::Integration TriggerConfig": { + "TriggerProperties": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [TriggerProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-triggerproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TriggerType": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CustomerProfiles::Integration TriggerProperties": { + "Scheduled": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ScheduledTriggerProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-scheduledtriggerproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CustomerProfiles::Integration ZendeskSourceProperties": { + "Object": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CustomerProfiles::ObjectType": { + "AllowProfileCreation": "Indicates whether a profile should be created when data is received if one doesn\u2019t exist for an object of this type\\. The default is `FALSE`\\. If the AllowProfileCreation flag is set to `FALSE`, then the service tries to fetch a standard profile and associate this object with the profile\\. If it is set to `TRUE`, and if no match is found, then the service creates a new standard profile\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the profile object type mapping\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainName": "The unique name of the domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EncryptionKey": "The customer\\-provided key to encrypt the profile object that will be created in this profile object type mapping\\. If not specified the system will use the encryption key of the domain\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExpirationDays": "The number of days until the data of this type expires\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Fields": "A list of field definitions for the object type mapping\\. \n*Required*: No \n*Type*: List of [FieldMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-fieldmap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Keys": "A list of keys that can be used to map data to the profile or search for the profile\\. \n*Required*: No \n*Type*: List of [KeyMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-keymap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ObjectTypeName": "The name of the profile object type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateId": "A unique identifier for the template mapping\\. This can be used instead of specifying the Keys and Fields properties directly\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CustomerProfiles::ObjectType FieldMap": { + "Name": "Name of the field\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ObjectTypeField": "Represents a field in a ProfileObjectType\\. \n*Required*: No \n*Type*: [ObjectTypeField](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-objecttypefield.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CustomerProfiles::ObjectType KeyMap": { + "Name": "Name of the key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ObjectTypeKeyList": "A list of ObjectTypeKey\\. \n*Required*: No \n*Type*: List of [ObjectTypeKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-objecttypekey.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CustomerProfiles::ObjectType ObjectTypeField": { + "ContentType": "The content type of the field\\. Used for determining equality when searching\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Source": "A field of a ProfileObject\\. For example: \\_source\\.FirstName, where \u201c\\_source\u201d is a ProfileObjectType of a Zendesk user and \u201cFirstName\u201d is a field in that ObjectType\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Target": "The location of the data in the standard ProfileObject model\\. For example: \\_profile\\.Address\\.PostalCode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::CustomerProfiles::ObjectType ObjectTypeKey": { + "FieldNames": "The reference for the key name of the fields map\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StandardIdentifiers": "The types of keys that a ProfileObject can have\\. Each ProfileObject can have only 1 UNIQUE key but multiple PROFILE keys\\. PROFILE means that this key can be used to tie an object to a PROFILE\\. UNIQUE means that it can be used to uniquely identify an object\\. If a key a is marked as SECONDARY, it will be used to search for profiles after all other PROFILE keys have been searched\\. A LOOKUP\\_ONLY key is only used to match a profile but is not persisted to be used for searching of the profile\\. A NEW\\_ONLY key is only used if the profile does not already exist before the object is ingested, otherwise it is only used for matching objects to profiles\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DAX::Cluster": { + "AvailabilityZones": "The Availability Zones \\(AZs\\) in which the cluster nodes will reside after the cluster has been created or updated\\. If provided, the length of this list must equal the `ReplicationFactor` parameter\\. If you omit this parameter, DAX will spread the nodes across Availability Zones for the highest availability\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClusterEndpointEncryptionType": "The encryption type of the cluster's endpoint\\. Available values are: \n+ `NONE` \\- The cluster's endpoint will be unencrypted\\.\n+ `TLS` \\- The cluster's endpoint will be encrypted with Transport Layer Security, and will provide an x509 certificate for authentication\\.\nThe default value is `NONE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | TLS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ClusterName": "The name of the DAX cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "Description": "The description of the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IAMRoleARN": "A valid Amazon Resource Name \\(ARN\\) that identifies an IAM role\\. At runtime, DAX will assume this role and use the role's permissions to access DynamoDB on your behalf\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "NodeType": "The node type for the nodes in the cluster\\. \\(All nodes in a DAX cluster are of the same type\\.\\) \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NotificationTopicARN": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to which notifications will be sent\\. \nThe Amazon SNS topic owner must be same as the DAX cluster owner\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParameterGroupName": "The parameter group to be associated with the DAX cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreferredMaintenanceWindow": "A range of time when maintenance of DAX cluster software will be performed\\. For example: `sun:01:00-sun:09:00`\\. Cluster maintenance normally takes less than 30 minutes, and is performed automatically within the maintenance window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReplicationFactor": "The number of nodes in the DAX cluster\\. A replication factor of 1 will create a single\\-node cluster, without any read replicas\\. For additional fault tolerance, you can create a multiple node cluster with one or more read replicas\\. To do this, set `ReplicationFactor` to a number between 3 \\(one primary and two read replicas\\) and 10 \\(one primary and nine read replicas\\)\\. `If the AvailabilityZones` parameter is provided, its length must equal the `ReplicationFactor`\\. \n AWS recommends that you have at least two read replicas per cluster\\.\n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SSESpecification": "Represents the settings used to enable server\\-side encryption on the cluster\\. \n*Required*: No \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dax-cluster-ssespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecurityGroupIds": "A list of security group IDs to be assigned to each node in the DAX cluster\\. \\(Each of the security group ID is system\\-generated\\.\\) \nIf this parameter is not specified, DAX assigns the default VPC security group to each node\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetGroupName": "The name of the subnet group to be used for the replication group\\. \nDAX clusters can only run in an Amazon VPC environment\\. All of the subnets that you specify in a subnet group must exist in the same VPC\\.\n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "Tags": "A set of tags to associate with the DAX cluster\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DAX::Cluster SSESpecification": { + "SSEEnabled": "Indicates whether server\\-side encryption is enabled \\(true\\) or disabled \\(false\\) on the cluster\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DAX::ParameterGroup": { + "Description": "A description of the parameter group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParameterGroupName": "The name of the parameter group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ParameterNameValues": "An array of name\\-value pairs for the parameters in the group\\. Each element in the array represents a single parameter\\. \n `record-ttl-millis` and `query-ttl-millis` are the only supported parameter names\\. For more details, see [Configuring TTL Settings](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.cluster-management.html#DAX.cluster-management.custom-settings.ttl)\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DAX::SubnetGroup": { + "Description": "The description of the subnet group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetGroupName": "The name of the subnet group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetIds": "A list of VPC subnet IDs for the subnet group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DLM::LifecyclePolicy": { + "Description": "A description of the lifecycle policy\\. The characters ^\\[0\\-9A\\-Za\\-z \\_\\-\\]\\+$ are supported\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `500` \n*Pattern*: `[0-9A-Za-z _-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExecutionRoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM role used to run the operations specified by the lifecycle policy\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2048` \n*Pattern*: `arn:aws(-[a-z]{1,3}){0,2}:iam::\\d+:role/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PolicyDetails": "The configuration details of the lifecycle policy\\. \n*Required*: Conditional \n*Type*: [PolicyDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "State": "The activation state of the lifecycle policy\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED | ERROR` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to apply to the lifecycle policy during creation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DLM::LifecyclePolicy Action": { + "CrossRegionCopy": "The rule for copying shared snapshots across Regions\\. \n*Required*: Yes \n*Type*: List of [CrossRegionCopyAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyaction.html) \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A descriptive name for the action\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `120` \n*Pattern*: `[0-9A-Za-z _-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DLM::LifecyclePolicy CreateRule": { + "CronExpression": "The schedule, as a Cron expression\\. The schedule interval must be between 1 hour and 1 year\\. For more information, see [Cron expressions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions) in the *Amazon CloudWatch User Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `17` \n*Maximum*: `106` \n*Pattern*: `cron\\([^\\n]{11,100}\\)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Interval": "The interval between snapshots\\. The supported values are 1, 2, 3, 4, 6, 8, 12, and 24\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntervalUnit": "The interval unit\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `HOURS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Location": "Specifies the destination for snapshots created by the policy\\. To create snapshots in the same Region as the source resource, specify `CLOUD`\\. To create snapshots on the same Outpost as the source resource, specify `OUTPOST_LOCAL`\\. If you omit this parameter, `CLOUD` is used by default\\. \nIf the policy targets resources in an AWS Region, then you must create snapshots in the same Region as the source resource\\. \nIf the policy targets resources on an Outpost, then you can create snapshots on the same Outpost as the source resource, or in the Region of that Outpost\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CLOUD | OUTPOST_LOCAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Times": "The time, in UTC, to start the operation\\. The supported format is hh:mm\\. \nThe operation occurs within a one\\-hour window following the specified time\\. If you do not specify a time, Amazon DLM selects a time within the next 24 hours\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DLM::LifecyclePolicy CrossRegionCopyAction": { + "EncryptionConfiguration": "The encryption settings for the copied snapshot\\. \n*Required*: Yes \n*Type*: [EncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-encryptionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetainRule": "Specifies the retention rule for cross\\-Region snapshot copies\\. \n*Required*: No \n*Type*: [CrossRegionCopyRetainRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyretainrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Target": "The target Region\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2048` \n*Pattern*: `^[\\w:\\-\\/\\*]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DLM::LifecyclePolicy CrossRegionCopyDeprecateRule": { + "Interval": "The period after which to deprecate the cross\\-Region AMI copies\\. The period must be less than or equal to the cross\\-Region AMI copy retention period, and it can't be greater than 10 years\\. This is equivalent to 120 months, 520 weeks, or 3650 days\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntervalUnit": "The unit of time in which to measure the **Interval**\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DAYS | MONTHS | WEEKS | YEARS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DLM::LifecyclePolicy CrossRegionCopyRetainRule": { + "Interval": "The amount of time to retain each snapshot\\. The maximum is 100 years\\. This is equivalent to 1200 months, 5200 weeks, or 36500 days\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntervalUnit": "The unit of time for time\\-based retention\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DAYS | MONTHS | WEEKS | YEARS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DLM::LifecyclePolicy CrossRegionCopyRule": { + "CmkArn": "The Amazon Resource Name \\(ARN\\) of the AWS KMS key to use for EBS encryption\\. If this parameter is not specified, the default KMS key for the account is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2048` \n*Pattern*: `arn:aws(-[a-z]{1,3}){0,2}:kms:([a-z]+-){2,3}\\d:\\d+:key/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CopyTags": "Indicates whether to copy all user\\-defined tags from the source snapshot to the cross\\-Region snapshot copy\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeprecateRule": "The AMI deprecation rule for cross\\-Region AMI copies created by the rule\\. \n*Required*: No \n*Type*: [CrossRegionCopyDeprecateRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopydeprecaterule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Encrypted": "To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter\\. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetainRule": "The retention rule that indicates how long snapshot copies are to be retained in the destination Region\\. \n*Required*: No \n*Type*: [CrossRegionCopyRetainRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyretainrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Target": "The target Region or the Amazon Resource Name \\(ARN\\) of the target Outpost for the snapshot copies\\. \nUse this parameter instead of **TargetRegion**\\. Do not specify both\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2048` \n*Pattern*: `^[\\w:\\-\\/\\*]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetRegion": "Avoid using this parameter when creating new policies\\. Instead, use **Target** to specify a target Region or a target Outpost for snapshot copies\\. \nFor policies created before the **Target** parameter was introduced, this parameter indicates the target Region for snapshot copies\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `16` \n*Pattern*: `([a-z]+-){2,3}\\d` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DLM::LifecyclePolicy DeprecateRule": { + "Count": "If the schedule has a count\\-based retention rule, this parameter specifies the number of oldest AMIs to deprecate\\. The count must be less than or equal to the schedule's retention count, and it can't be greater than 1000\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Interval": "If the schedule has an age\\-based retention rule, this parameter specifies the period after which to deprecate AMIs created by the schedule\\. The period must be less than or equal to the schedule's retention period, and it can't be greater than 10 years\\. This is equivalent to 120 months, 520 weeks, or 3650 days\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntervalUnit": "The unit of time in which to measure the **Interval**\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DAYS | MONTHS | WEEKS | YEARS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DLM::LifecyclePolicy EncryptionConfiguration": { + "CmkArn": "The Amazon Resource Name \\(ARN\\) of the AWS KMS key to use for EBS encryption\\. If this parameter is not specified, the default KMS key for the account is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2048` \n*Pattern*: `arn:aws(-[a-z]{1,3}){0,2}:kms:([a-z]+-){2,3}\\d:\\d+:key/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Encrypted": "To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter\\. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DLM::LifecyclePolicy EventParameters": { + "DescriptionRegex": "The snapshot description that can trigger the policy\\. The description pattern is specified using a regular expression\\. The policy runs only if a snapshot with a description that matches the specified pattern is shared with your account\\. \nFor example, specifying `^.*Created for policy: policy-1234567890abcdef0.*$` configures the policy to run only if snapshots created by policy `policy-1234567890abcdef0` are shared with your account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Pattern*: `[\\p{all}]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventType": "The type of event\\. Currently, only snapshot sharing events are supported\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `shareSnapshot` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnapshotOwner": "The IDs of the AWS accounts that can trigger policy by sharing snapshots with your account\\. The policy only runs if one of the specified AWS accounts shares a snapshot with your account\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DLM::LifecyclePolicy EventSource": { + "Parameters": "Information about the event\\. \n*Required*: No \n*Type*: [EventParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-eventparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The source of the event\\. Currently only managed CloudWatch Events rules are supported\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `MANAGED_CWE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DLM::LifecyclePolicy FastRestoreRule": { + "AvailabilityZones": "The Availability Zones in which to enable fast snapshot restore\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Count": "The number of snapshots to be enabled with fast snapshot restore\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Interval": "The amount of time to enable fast snapshot restore\\. The maximum is 100 years\\. This is equivalent to 1200 months, 5200 weeks, or 36500 days\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntervalUnit": "The unit of time for enabling fast snapshot restore\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DAYS | MONTHS | WEEKS | YEARS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DLM::LifecyclePolicy Parameters": { + "ExcludeBootVolume": "\\[EBS Snapshot Management \u2013 Instance policies only\\] Indicates whether to exclude the root volume from snapshots created using [CreateSnapshots](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSnapshots.html)\\. The default is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NoReboot": "Applies to AMI lifecycle policies only\\. Indicates whether targeted instances are rebooted when the lifecycle policy runs\\. `true` indicates that targeted instances are not rebooted when the policy runs\\. `false` indicates that target instances are rebooted when the policy runs\\. The default is `true` \\(instances are not rebooted\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DLM::LifecyclePolicy PolicyDetails": { + "Actions": "The actions to be performed when the event\\-based policy is triggered\\. You can specify only one action per policy\\. \nThis parameter is required for event\\-based policies only\\. If you are creating a snapshot or AMI policy, omit this parameter\\. \n*Required*: No \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-action.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventSource": "The event that triggers the event\\-based policy\\. \nThis parameter is required for event\\-based policies only\\. If you are creating a snapshot or AMI policy, omit this parameter\\. \n*Required*: No \n*Type*: [EventSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-eventsource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "A set of optional parameters for snapshot and AMI lifecycle policies\\. \nThis parameter is required for snapshot and AMI policies only\\. If you are creating an event\\-based policy, omit this parameter\\. \nIf you are modifying a policy that was created or previously modified using the Amazon Data Lifecycle Manager console, then you must include this parameter and specify either the default values or the new values that you require\\. You can't omit this parameter or set its values to null\\.\n*Required*: No \n*Type*: [Parameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-parameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PolicyType": "The valid target resource types and actions a policy can manage\\. Specify `EBS_SNAPSHOT_MANAGEMENT` to create a lifecycle policy that manages the lifecycle of Amazon EBS snapshots\\. Specify `IMAGE_MANAGEMENT` to create a lifecycle policy that manages the lifecycle of EBS\\-backed AMIs\\. Specify `EVENT_BASED_POLICY ` to create an event\\-based policy that performs specific actions when a defined event occurs in your AWS account\\. \nThe default is `EBS_SNAPSHOT_MANAGEMENT`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `EBS_SNAPSHOT_MANAGEMENT | EVENT_BASED_POLICY | IMAGE_MANAGEMENT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceLocations": "The location of the resources to backup\\. If the source resources are located in an AWS Region, specify `CLOUD`\\. If the source resources are located on an Outpost in your account, specify `OUTPOST`\\. \nIf you specify `OUTPOST`, Amazon Data Lifecycle Manager backs up all resources of the specified type with matching target tags across all of the Outposts in your account\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceTypes": "The target resource type for snapshot and AMI lifecycle policies\\. Use `VOLUME `to create snapshots of individual volumes or use `INSTANCE` to create multi\\-volume snapshots from the volumes for an instance\\. \nThis parameter is required for snapshot and AMI policies only\\. If you are creating an event\\-based policy, omit this parameter\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Schedules": "The schedules of policy\\-defined actions for snapshot and AMI lifecycle policies\\. A policy can have up to four schedules\u2014one mandatory schedule and up to three optional schedules\\. \nThis parameter is required for snapshot and AMI policies only\\. If you are creating an event\\-based policy, omit this parameter\\. \n*Required*: No \n*Type*: List of [Schedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html) \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetTags": "The single tag that identifies targeted resources for this policy\\. \nThis parameter is required for snapshot and AMI policies only\\. If you are creating an event\\-based policy, omit this parameter\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DLM::LifecyclePolicy RetainRule": { + "Count": "The number of snapshots to retain for each volume, up to a maximum of 1000\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Interval": "The amount of time to retain each snapshot\\. The maximum is 100 years\\. This is equivalent to 1200 months, 5200 weeks, or 36500 days\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntervalUnit": "The unit of time for time\\-based retention\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DAYS | MONTHS | WEEKS | YEARS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DLM::LifecyclePolicy Schedule": { + "CopyTags": "Copy all user\\-defined tags on a source volume to snapshots of the volume created by this policy\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CreateRule": "The creation rule\\. \n*Required*: No \n*Type*: [CreateRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-createrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CrossRegionCopyRules": "The rule for cross\\-Region snapshot copies\\. \nYou can only specify cross\\-Region copy rules for policies that create snapshots in a Region\\. If the policy creates snapshots on an Outpost, then you cannot copy the snapshots to a Region or to an Outpost\\. If the policy creates snapshots in a Region, then snapshots can be copied to up to three Regions or Outposts\\. \n*Required*: No \n*Type*: List of [CrossRegionCopyRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyrule.html) \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeprecateRule": "The AMI deprecation rule for the schedule\\. \n*Required*: No \n*Type*: [DeprecateRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-deprecaterule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FastRestoreRule": "The rule for enabling fast snapshot restore\\. \n*Required*: No \n*Type*: [FastRestoreRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-fastrestorerule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the schedule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `120` \n*Pattern*: `[0-9A-Za-z _-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetainRule": "The retention rule\\. \n*Required*: No \n*Type*: [RetainRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-retainrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ShareRules": "The rule for sharing snapshots with other AWS accounts\\. \n*Required*: No \n*Type*: List of [ShareRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-sharerule.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TagsToAdd": "The tags to apply to policy\\-created resources\\. These user\\-defined tags are in addition to the AWS\\-added lifecycle tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `45` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VariableTags": "A collection of key/value pairs with values determined dynamically when the policy is executed\\. Keys may be any valid Amazon EC2 tag key\\. Values must be in one of the two following formats: `$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/instance-id.html)` or `$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/timestamp.html)`\\. Variable tags are only valid for EBS Snapshot Management \u2013 Instance policies\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `45` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DLM::LifecyclePolicy ShareRule": { + "TargetAccounts": "The IDs of the AWS accounts with which to share the snapshots\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UnshareInterval": "The period after which snapshots that are shared with other AWS accounts are automatically unshared\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UnshareIntervalUnit": "The unit of time for the automatic unsharing interval\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DAYS | MONTHS | WEEKS | YEARS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DMS::Certificate": { + "CertificateIdentifier": "A customer\\-assigned name for the certificate\\. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens\\. They can't end with a hyphen or contain two consecutive hyphens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CertificatePem": "The contents of a `.pem` file, which contains an X\\.509 certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CertificateWallet": "The location of an imported Oracle Wallet certificate for use with SSL\\. Example: `filebase64(\"${path.root}/rds-ca-2019-root.sso\")` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::DMS::Endpoint": { + "CertificateArn": "The Amazon Resource Name \\(ARN\\) for the certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseName": "The name of the endpoint database\\. For a MySQL source or target endpoint, do not specify DatabaseName\\. To migrate to a specific database, use this setting and `targetDbType`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DocDbSettings": "Settings in JSON format for the source DocumentDB endpoint\\. For more information about the available settings, see the configuration properties section in [ Using DocumentDB as a Target for AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.DocumentDB.html) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [DocDbSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-docdbsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DynamoDbSettings": "Settings in JSON format for the target Amazon DynamoDB endpoint\\. For information about other available settings, see [Using Object Mapping to Migrate Data to DynamoDB](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.DynamoDB.html#CHAP_Target.DynamoDB.ObjectMapping) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [DynamoDbSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-dynamodbsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ElasticsearchSettings": "Settings in JSON format for the target OpenSearch endpoint\\. For more information about the available settings, see [Extra Connection Attributes When Using OpenSearch as a Target for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Elasticsearch.html#CHAP_Target.Elasticsearch.Configuration) in the * AWS Database Migration Service User Guide*\\. \n*Required*: No \n*Type*: [ElasticsearchSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EndpointIdentifier": "The database endpoint identifier\\. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens\\. They can't end with a hyphen, or contain two consecutive hyphens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EndpointType": "The type of endpoint\\. Valid values are `source` and `target`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `source | target` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EngineName": "The type of engine for the endpoint\\. Valid values, depending on the `EndpointType` value, include `\"mysql\"`, `\"oracle\"`, `\"postgres\"`, `\"mariadb\"`, `\"aurora\"`, `\"aurora-postgresql\"`, `\"opensearch\"`, `\"redshift\"`, `\"s3\"`, `\"db2\"`, `\"azuredb\"`, `\"sybase\"`, `\"dynamodb\"`, `\"mongodb\"`, `\"kinesis\"`, `\"kafka\"`, `\"elasticsearch\"`, `\"docdb\"`, `\"sqlserver\"`, and `\"neptune\"`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExtraConnectionAttributes": "Additional attributes associated with the connection\\. Each attribute is specified as a name\\-value pair associated by an equal sign \\(=\\)\\. Multiple attributes are separated by a semicolon \\(;\\) with no additional white space\\. For information on the attributes available for connecting your source or target endpoint, see [Working with AWS DMS Endpoints](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.html) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GcpMySQLSettings": "Settings in JSON format for the source GCP MySQL endpoint\\. \n*Required*: No \n*Type*: [GcpMySQLSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IbmDb2Settings": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [IbmDb2Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-ibmdb2settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KafkaSettings": "Settings in JSON format for the target Apache Kafka endpoint\\. For more information about the available settings, see [Using object mapping to migrate data to a Kafka topic](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kafka.html#CHAP_Target.Kafka.ObjectMapping) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [KafkaSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KinesisSettings": "Settings in JSON format for the target endpoint for Amazon Kinesis Data Streams\\. For more information about the available settings, see [Using Amazon Kinesis Data Streams as a Target for AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kinesis.html) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [KinesisSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKeyId": "An AWS KMS key identifier that is used to encrypt the connection parameters for the endpoint\\. \nIf you don't specify a value for the `KmsKeyId` parameter, then AWS DMS uses your default encryption key\\. \n AWS KMS creates the default encryption key for your AWS account\\. Your AWS account has a different default encryption key for each AWS Region\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MicrosoftSqlServerSettings": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [MicrosoftSqlServerSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MongoDbSettings": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [MongoDbSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MySqlSettings": "Settings in JSON format for the source and target MySQL endpoint\\. For information about other available settings, see [Extra connection attributes when using MySQL as a source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MySQL.html#CHAP_Source.MySQL.ConnectionAttrib) and [Extra connection attributes when using a MySQL\\-compatible database as a target for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html#CHAP_Target.MySQL.ConnectionAttrib) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [MySqlSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mysqlsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NeptuneSettings": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [NeptuneSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-neptunesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OracleSettings": "Settings in JSON format for the source and target Oracle endpoint\\. For information about other available settings, see [Extra connection attributes when using Oracle as a source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.ConnectionAttrib) and [ Extra connection attributes when using Oracle as a target for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html#CHAP_Target.Oracle.ConnectionAttrib) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [OracleSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Password": "The password to be used to log in to the endpoint database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "The port used by the endpoint database\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PostgreSqlSettings": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [PostgreSqlSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RedisSettings": "Settings in JSON format for the target Redis endpoint\\. \n*Required*: No \n*Type*: [RedisSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RedshiftSettings": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [RedshiftSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceIdentifier": "A friendly name for the resource identifier at the end of the `EndpointArn` response parameter that is returned in the created `Endpoint` object\\. The value for this parameter can have up to 31 characters\\. It can contain only ASCII letters, digits, and hyphen \\('\\-'\\)\\. Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as `Example-App-ARN1`\\. For example, this value might result in the `EndpointArn` value `arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1`\\. If you don't specify a `ResourceIdentifier` value, AWS DMS generates a default identifier value for the end of `EndpointArn`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "S3Settings": "Settings in JSON format for the target Amazon S3 endpoint\\. For more information about the available settings, see [Extra Connection Attributes When Using Amazon S3 as a Target for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [S3Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServerName": "The name of the server where the endpoint database resides\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SslMode": "The Secure Sockets Layer \\(SSL\\) mode to use for the SSL connection\\. The default is `none`\\. \nWhen `engine_name` is set to S3, then the only allowed value is `none`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `none | require | verify-ca | verify-full` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SybaseSettings": "Settings in JSON format for the source and target SAP ASE endpoint\\. For information about other available settings, see [Extra connection attributes when using SAP ASE as a source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html#CHAP_Source.SAP.ConnectionAttrib) and [Extra connection attributes when using SAP ASE as a target for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SAP.html#CHAP_Target.SAP.ConnectionAttrib) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [SybaseSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-sybasesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "One or more tags to be assigned to the endpoint\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Username": "The user name to be used to log in to the endpoint database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DMS::Endpoint DocDbSettings": { + "SecretsManagerAccessRoleArn": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretsManagerSecretId": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DMS::Endpoint DynamoDbSettings": { + "ServiceAccessRoleArn": "The Amazon Resource Name \\(ARN\\) used by the service to access the IAM role\\. The role must allow the `iam:PassRole` action\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DMS::Endpoint ElasticsearchSettings": { + "EndpointUri": "The endpoint for the OpenSearch cluster\\. AWS DMS uses HTTPS if a transport protocol \\(http/https\\) is not specified\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ErrorRetryDuration": "The maximum number of seconds for which DMS retries failed API requests to the OpenSearch cluster\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FullLoadErrorPercentage": "The maximum percentage of records that can fail to be written before a full load operation stops\\. \nTo avoid early failure, this counter is only effective after 1000 records are transferred\\. OpenSearch also has the concept of error monitoring during the last 10 minutes of an Observation Window\\. If transfer of all records fail in the last 10 minutes, the full load operation stops\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceAccessRoleArn": "The Amazon Resource Name \\(ARN\\) used by the service to access the IAM role\\. The role must allow the `iam:PassRole` action\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DMS::Endpoint GcpMySQLSettings": { + "AfterConnectScript": "Specifies a script to run immediately after AWS DMS connects to the endpoint\\. The migration task continues running regardless if the SQL statement succeeds or fails\\. \nFor this parameter, provide the code of the script itself, not the name of a file containing the script\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CleanSourceMetadataOnMismatch": "Adjusts the behavior of AWS DMS when migrating from an SQL Server source database that is hosted as part of an Always On availability group cluster\\. If you need AWS DMS to poll all the nodes in the Always On cluster for transaction backups, set this attribute to `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseName": "Database name for the endpoint\\. For a MySQL source or target endpoint, don't explicitly specify the database using the `DatabaseName` request parameter on either the `CreateEndpoint` or `ModifyEndpoint` API call\\. Specifying `DatabaseName` when you create or modify a MySQL endpoint replicates all the task tables to this single database\\. For MySQL endpoints, you specify the database only when you specify the schema in the table\\-mapping rules of the AWS DMS task\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventsPollInterval": "Specifies how often to check the binary log for new changes/events when the database is idle\\. The default is five seconds\\. \nExample: `eventsPollInterval=5;` \nIn the example, AWS DMS checks for changes in the binary logs every five seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxFileSize": "Specifies the maximum size \\(in KB\\) of any \\.csv file used to transfer data to a MySQL\\-compatible database\\. \nExample: `maxFileSize=512` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParallelLoadThreads": "Improves performance when loading data into the MySQL\\-compatible target database\\. Specifies how many threads to use to load the data into the MySQL\\-compatible target database\\. Setting a large number of threads can have an adverse effect on database performance, because a separate connection is required for each thread\\. The default is one\\. \nExample: `parallelLoadThreads=1` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Password": "Endpoint connection password\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretsManagerAccessRoleArn": "The full Amazon Resource Name \\(ARN\\) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in `SecretsManagerSecret.` The role must allow the `iam:PassRole` action\\. `SecretsManagerSecret` has the value of the AWS Secrets Manager secret that allows access to the MySQL endpoint\\. \nYou can specify one of two sets of values for these permissions\\. You can specify the values for this setting and `SecretsManagerSecretId`\\. Or you can specify clear\\-text values for `UserName`, `Password`, `ServerName`, and `Port`\\. You can't specify both\\. For more information on creating this `SecretsManagerSecret` and the `SecretsManagerAccessRoleArn` and `SecretsManagerSecretId` required to access it, see [Using secrets to access AWS Database Migration Service resources](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager) in the AWS Database Migration Service User Guide\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretsManagerSecretId": "The full ARN, partial ARN, or friendly name of the `SecretsManagerSecret` that contains the MySQL endpoint connection details\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServerName": "Endpoint TCP port\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServerTimezone": "Specifies the time zone for the source MySQL database\\. \nExample: `serverTimezone=US/Pacific;` \nNote: Do not enclose time zones in single quotes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Username": "Endpoint connection user name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DMS::Endpoint IbmDb2Settings": { + "SecretsManagerAccessRoleArn": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretsManagerSecretId": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DMS::Endpoint KafkaSettings": { + "Broker": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeControlDetails": "Shows detailed control information for table definition, column definition, and table and column changes in the Kafka message output\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeNullAndEmpty": "Include NULL and empty columns for records migrated to the endpoint\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeTableAlterOperations": "Includes any data definition language \\(DDL\\) operations that change the table in the control data, such as `rename-table`, `drop-table`, `add-column`, `drop-column`, and `rename-column`\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeTransactionDetails": "Provides detailed transaction information from the source database\\. This information includes a commit timestamp, a log position, and values for `transaction_id`, previous `transaction_id`, and `transaction_record_id` \\(the record offset within a transaction\\)\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NoHexPrefix": "Set this optional parameter to `true` to avoid adding a '0x' prefix to raw data in hexadecimal format\\. For example, by default, AWS DMS adds a '0x' prefix to the LOB column type in hexadecimal format moving from an Oracle source to a Kafka target\\. Use the `NoHexPrefix` endpoint setting to enable migration of RAW data type columns without adding the '0x' prefix\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PartitionIncludeSchemaTable": "Prefixes schema and table names to partition values, when the partition type is `primary-key-type`\\. Doing this increases data distribution among Kafka partitions\\. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key\\. In this case, the same primary key is sent from thousands of tables to the same partition, which causes throttling\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SaslPassword": "The secure password you created when you first set up your MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL\\-SSL authentication\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SaslUserName": "The secure user name you created when you first set up your MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL\\-SSL authentication\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityProtocol": "Set secure connection to a Kafka target endpoint using Transport Layer Security \\(TLS\\)\\. Options include `ssl-encryption`, `ssl-authentication`, and `sasl-ssl`\\. `sasl-ssl` requires `SaslUsername` and `SaslPassword`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `plaintext | sasl-ssl | ssl-authentication | ssl-encryption` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SslCaCertificateArn": "The Amazon Resource Name \\(ARN\\) for the private certificate authority \\(CA\\) cert that AWS DMS uses to securely connect to your Kafka target endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SslClientCertificateArn": "The Amazon Resource Name \\(ARN\\) of the client certificate used to securely connect to a Kafka target endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SslClientKeyArn": "The Amazon Resource Name \\(ARN\\) for the client private key used to securely connect to a Kafka target endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SslClientKeyPassword": "The password for the client private key used to securely connect to a Kafka target endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Topic": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DMS::Endpoint KinesisSettings": { + "IncludeControlDetails": "Shows detailed control information for table definition, column definition, and table and column changes in the Kinesis message output\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeNullAndEmpty": "Include NULL and empty columns for records migrated to the endpoint\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeTableAlterOperations": "Includes any data definition language \\(DDL\\) operations that change the table in the control data, such as `rename-table`, `drop-table`, `add-column`, `drop-column`, and `rename-column`\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeTransactionDetails": "Provides detailed transaction information from the source database\\. This information includes a commit timestamp, a log position, and values for `transaction_id`, previous `transaction_id`, and `transaction_record_id` \\(the record offset within a transaction\\)\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MessageFormat": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `json | json-unformatted` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NoHexPrefix": "Set this optional parameter to `true` to avoid adding a '0x' prefix to raw data in hexadecimal format\\. For example, by default, AWS DMS adds a '0x' prefix to the LOB column type in hexadecimal format moving from an Oracle source to an Amazon Kinesis target\\. Use the `NoHexPrefix` endpoint setting to enable migration of RAW data type columns without adding the '0x' prefix\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PartitionIncludeSchemaTable": "Prefixes schema and table names to partition values, when the partition type is `primary-key-type`\\. Doing this increases data distribution among Kinesis shards\\. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key\\. In this case, the same primary key is sent from thousands of tables to the same shard, which causes throttling\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceAccessRoleArn": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamArn": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DMS::Endpoint MicrosoftSqlServerSettings": { + "SecretsManagerAccessRoleArn": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretsManagerSecretId": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DMS::Endpoint MongoDbSettings": { + "AuthMechanism": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `default | mongodb_cr | scram_sha_1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthSource": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthType": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `no | password` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseName": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DocsToInvestigate": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExtractDocId": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NestingLevel": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `none | one` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Password": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretsManagerAccessRoleArn": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretsManagerSecretId": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServerName": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Username": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DMS::Endpoint MySqlSettings": { + "SecretsManagerAccessRoleArn": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretsManagerSecretId": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DMS::Endpoint NeptuneSettings": { + "ErrorRetryDuration": "The number of milliseconds for AWS DMS to wait to retry a bulk\\-load of migrated graph data to the Neptune target database before raising an error\\. The default is 250\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IamAuthEnabled": "If you want AWS Identity and Access Management \\(IAM\\) authorization enabled for this endpoint, set this parameter to `true`\\. Then attach the appropriate IAM policy document to your service role specified by `ServiceAccessRoleArn`\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxFileSize": "The maximum size in kilobytes of migrated graph data stored in a \\.csv file before AWS DMS bulk\\-loads the data to the Neptune target database\\. The default is 1,048,576 KB\\. If the bulk load is successful, AWS DMS clears the bucket, ready to store the next batch of migrated graph data\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxRetryCount": "The number of times for AWS DMS to retry a bulk load of migrated graph data to the Neptune target database before raising an error\\. The default is 5\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3BucketFolder": "A folder path where you want AWS DMS to store migrated graph data in the S3 bucket specified by `S3BucketName` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3BucketName": "The name of the Amazon S3 bucket where AWS DMS can temporarily store migrated graph data in \\.csv files before bulk\\-loading it to the Neptune target database\\. AWS DMS maps the SQL source data to graph data before storing it in these \\.csv files\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceAccessRoleArn": "The Amazon Resource Name \\(ARN\\) of the service role that you created for the Neptune target endpoint\\. The role must allow the `iam:PassRole` action\\. For more information, see [Creating an IAM Service Role for Accessing Amazon Neptune as a Target](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Neptune.html#CHAP_Target.Neptune.ServiceRole) in the * AWS Database Migration Service User Guide\\. * \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DMS::Endpoint OracleSettings": { + "SecretsManagerAccessRoleArn": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretsManagerOracleAsmAccessRoleArn": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretsManagerOracleAsmSecretId": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretsManagerSecretId": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DMS::Endpoint PostgreSqlSettings": { + "SecretsManagerAccessRoleArn": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretsManagerSecretId": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DMS::Endpoint RedisSettings": { + "AuthPassword": "The password provided with the `auth-role` and `auth-token` options of the `AuthType` setting for a Redis target endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthType": "The type of authentication to perform when connecting to a Redis target\\. Options include `none`, `auth-token`, and `auth-role`\\. The `auth-token` option requires an `AuthPassword` value to be provided\\. The `auth-role` option requires `AuthUserName` and `AuthPassword` values to be provided\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `auth-role | auth-token | none` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthUserName": "The user name provided with the `auth-role` option of the `AuthType` setting for a Redis target endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "Transmission Control Protocol \\(TCP\\) port for the endpoint\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServerName": "Fully qualified domain name of the endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SslCaCertificateArn": "The Amazon Resource Name \\(ARN\\) for the certificate authority \\(CA\\) that DMS uses to connect to your Redis target endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SslSecurityProtocol": "The connection to a Redis target endpoint using Transport Layer Security \\(TLS\\)\\. Valid values include `plaintext` and `ssl-encryption`\\. The default is `ssl-encryption`\\. The `ssl-encryption` option makes an encrypted connection\\. Optionally, you can identify an Amazon Resource Name \\(ARN\\) for an SSL certificate authority \\(CA\\) using the `SslCaCertificateArn `setting\\. If an ARN isn't given for a CA, DMS uses the Amazon root CA\\. \nThe `plaintext` option doesn't provide Transport Layer Security \\(TLS\\) encryption for traffic between endpoint and database\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `plaintext | ssl-encryption` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DMS::Endpoint RedshiftSettings": { + "SecretsManagerAccessRoleArn": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretsManagerSecretId": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DMS::Endpoint S3Settings": { + "AddColumnName": "An optional parameter that, when set to `true` or `y`, you can use to add column name information to the \\.csv output file\\. \nThe default value is `false`\\. Valid values are `true`, `false`, `y`, and `n`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BucketFolder": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BucketName": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CannedAclForObjects": "A value that enables AWS DMS to specify a predefined \\(canned\\) access control list for objects created in an Amazon S3 bucket as \\.csv or \\.parquet files\\. For more information about Amazon S3 canned ACLs, see [Canned ACL](http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) in the *Amazon S3 Developer Guide\\.* \nThe default value is NONE\\. Valid values include NONE, PRIVATE, PUBLIC\\_READ, PUBLIC\\_READ\\_WRITE, AUTHENTICATED\\_READ, AWS\\_EXEC\\_READ, BUCKET\\_OWNER\\_READ, and BUCKET\\_OWNER\\_FULL\\_CONTROL\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `authenticated-read | aws-exec-read | bucket-owner-full-control | bucket-owner-read | none | private | public-read | public-read-write` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CdcInsertsAndUpdates": "A value that enables a change data capture \\(CDC\\) load to write INSERT and UPDATE operations to \\.csv or \\.parquet \\(columnar storage\\) output files\\. The default setting is `false`, but when `CdcInsertsAndUpdates` is set to `true` or `y`, only INSERTs and UPDATEs from the source database are migrated to the \\.csv or \\.parquet file\\. \nFor \\.csv file format only, how these INSERTs and UPDATEs are recorded depends on the value of the `IncludeOpForFullLoad` parameter\\. If `IncludeOpForFullLoad` is set to `true`, the first field of every CDC record is set to either `I` or `U` to indicate INSERT and UPDATE operations at the source\\. But if `IncludeOpForFullLoad` is set to `false`, CDC records are written without an indication of INSERT or UPDATE operations at the source\\. For more information about how these settings work together, see [Indicating Source DB Operations in Migrated S3 Data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps) in the * AWS Database Migration Service User Guide\\.*\\. \n AWS DMS supports the use of the `CdcInsertsAndUpdates` parameter in versions 3\\.3\\.1 and later\\. \n `CdcInsertsOnly` and `CdcInsertsAndUpdates` can't both be set to `true` for the same endpoint\\. Set either `CdcInsertsOnly` or `CdcInsertsAndUpdates` to `true` for the same endpoint, but not both\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CdcInsertsOnly": "A value that enables a change data capture \\(CDC\\) load to write only INSERT operations to \\.csv or columnar storage \\(\\.parquet\\) output files\\. By default \\(the `false` setting\\), the first field in a \\.csv or \\.parquet record contains the letter I \\(INSERT\\), U \\(UPDATE\\), or D \\(DELETE\\)\\. These values indicate whether the row was inserted, updated, or deleted at the source database for a CDC load to the target\\. \nIf `CdcInsertsOnly` is set to `true` or `y`, only INSERTs from the source database are migrated to the \\.csv or \\.parquet file\\. For \\.csv format only, how these INSERTs are recorded depends on the value of `IncludeOpForFullLoad`\\. If `IncludeOpForFullLoad` is set to `true`, the first field of every CDC record is set to I to indicate the INSERT operation at the source\\. If `IncludeOpForFullLoad` is set to `false`, every CDC record is written without a first field to indicate the INSERT operation at the source\\. For more information about how these settings work together, see [Indicating Source DB Operations in Migrated S3 Data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps) in the * AWS Database Migration Service User Guide\\.*\\. \n AWS DMS supports the interaction described preceding between the `CdcInsertsOnly` and `IncludeOpForFullLoad` parameters in versions 3\\.1\\.4 and later\\. \n `CdcInsertsOnly` and `CdcInsertsAndUpdates` can't both be set to `true` for the same endpoint\\. Set either `CdcInsertsOnly` or `CdcInsertsAndUpdates` to `true` for the same endpoint, but not both\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CdcMaxBatchInterval": "Maximum length of the interval, defined in seconds, after which to output a file to Amazon S3\\. \nWhen `CdcMaxBatchInterval` and `CdcMinFileSize` are both specified, the file write is triggered by whichever parameter condition is met first within an AWS DMS CloudFormation template\\. \nThe default value is 60 seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CdcMinFileSize": "Minimum file size, defined in megabytes, to reach for a file output to Amazon S3\\. \nWhen `CdcMinFileSize` and `CdcMaxBatchInterval` are both specified, the file write is triggered by whichever parameter condition is met first within an AWS DMS CloudFormation template\\. \nThe default value is 32 MB\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CdcPath": "Specifies the folder path of CDC files\\. For an S3 source, this setting is required if a task captures change data; otherwise, it's optional\\. If `CdcPath` is set, AWS DMS reads CDC files from this path and replicates the data changes to the target endpoint\\. For an S3 target if you set [https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-PreserveTransactions](https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-PreserveTransactions) to `true`, AWS DMS verifies that you have set this parameter to a folder path on your S3 target where AWS DMS can save the transaction order for the CDC load\\. AWS DMS creates this CDC folder path in either your S3 target working directory or the S3 target location specified by [https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-BucketFolder](https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-BucketFolder) and [https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-BucketName](https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-BucketName)\\. \nFor example, if you specify `CdcPath` as `MyChangedData`, and you specify `BucketName` as `MyTargetBucket` but do not specify `BucketFolder`, AWS DMS creates the CDC folder path following: `MyTargetBucket/MyChangedData`\\. \nIf you specify the same `CdcPath`, and you specify `BucketName` as `MyTargetBucket` and `BucketFolder` as `MyTargetData`, AWS DMS creates the CDC folder path following: `MyTargetBucket/MyTargetData/MyChangedData`\\. \nFor more information on CDC including transaction order on an S3 target, see [Capturing data changes \\(CDC\\) including transaction order on the S3 target](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.EndpointSettings.CdcPath)\\. \nThis setting is supported in AWS DMS versions 3\\.4\\.2 and later\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CompressionType": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `gzip | none` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CsvDelimiter": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CsvNoSupValue": "This setting only applies if your Amazon S3 output files during a change data capture \\(CDC\\) load are written in \\.csv format\\. If [https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-UseCsvNoSupValue](https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-UseCsvNoSupValue) is set to true, specify a string value that you want AWS DMS to use for all columns not included in the supplemental log\\. If you do not specify a string value, AWS DMS uses the null value for these columns regardless of the `UseCsvNoSupValue` setting\\. \nThis setting is supported in AWS DMS versions 3\\.4\\.1 and later\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CsvNullValue": "An optional parameter that specifies how AWS DMS treats null values\\. While handling the null value, you can use this parameter to pass a user\\-defined string as null when writing to the target\\. For example, when target columns are not nullable, you can use this option to differentiate between the empty string value and the null value\\. So, if you set this parameter value to the empty string \\(\"\" or ''\\), AWS DMS treats the empty string as the null value instead of `NULL`\\. \nThe default value is `NULL`\\. Valid values include any valid string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CsvRowDelimiter": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataFormat": "The format of the data that you want to use for output\\. You can choose one of the following: \n+ `csv` : This is a row\\-based file format with comma\\-separated values \\(\\.csv\\)\\. \n+ `parquet` : Apache Parquet \\(\\.parquet\\) is a columnar storage file format that features efficient compression and provides faster query response\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `csv | parquet` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataPageSize": "The size of one data page in bytes\\. This parameter defaults to 1024 \\* 1024 bytes \\(1 MiB\\)\\. This number is used for \\.parquet file format only\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatePartitionDelimiter": "Specifies a date separating delimiter to use during folder partitioning\\. The default value is `SLASH`\\. Use this parameter when `DatePartitionedEnabled` is set to `true`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DASH | NONE | SLASH | UNDERSCORE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatePartitionEnabled": "When set to `true`, this parameter partitions S3 bucket folders based on transaction commit dates\\. The default value is `false`\\. For more information about date\\-based folder partitioning, see [Using date\\-based folder partitioning](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.DatePartitioning)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatePartitionSequence": "Identifies the sequence of the date format to use during folder partitioning\\. The default value is `YYYYMMDD`\\. Use this parameter when `DatePartitionedEnabled` is set to `true`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DDMMYYYY | MMYYYYDD | YYYYMM | YYYYMMDD | YYYYMMDDHH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatePartitionTimezone": "When creating an S3 target endpoint, set `DatePartitionTimezone` to convert the current UTC time into a specified time zone\\. The conversion occurs when a date partition folder is created and a CDC filename is generated\\. The time zone format is Area/Location\\. Use this parameter when `DatePartitionedEnabled` is set to `true`, as shown in the following example\\. \n `s3-settings='{\"DatePartitionEnabled\": true, \"DatePartitionSequence\": \"YYYYMMDDHH\", \"DatePartitionDelimiter\": \"SLASH\", \"DatePartitionTimezone\":\"Asia/Seoul\", \"BucketName\": \"dms-nattarat-test\"}'` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DictPageSizeLimit": "The maximum size of an encoded dictionary page of a column\\. If the dictionary page exceeds this, this column is stored using an encoding type of `PLAIN`\\. This parameter defaults to 1024 \\* 1024 bytes \\(1 MiB\\), the maximum size of a dictionary page before it reverts to `PLAIN` encoding\\. This size is used for \\.parquet file format only\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableStatistics": "A value that enables statistics for Parquet pages and row groups\\. Choose `true` to enable statistics, `false` to disable\\. Statistics include `NULL`, `DISTINCT`, `MAX`, and `MIN` values\\. This parameter defaults to `true`\\. This value is used for \\.parquet file format only\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EncodingType": "The type of encoding you are using: \n+ `RLE_DICTIONARY` uses a combination of bit\\-packing and run\\-length encoding to store repeated values more efficiently\\. This is the default\\.\n+ `PLAIN` doesn't use encoding at all\\. Values are stored as they are\\.\n+ `PLAIN_DICTIONARY` builds a dictionary of the values encountered in a given column\\. The dictionary is stored in a dictionary page for each column chunk\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `plain | plain-dictionary | rle-dictionary` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EncryptionMode": "The type of server\\-side encryption that you want to use for your data\\. This encryption type is part of the endpoint settings or the extra connections attributes for Amazon S3\\. You can choose either `SSE_S3` \\(the default\\) or `SSE_KMS`\\. \nFor the `ModifyEndpoint` operation, you can change the existing value of the `EncryptionMode` parameter from `SSE_KMS` to `SSE_S3`\\. But you can\u2019t change the existing value from `SSE_S3` to `SSE_KMS`\\.\nTo use `SSE_S3`, you need an AWS Identity and Access Management \\(IAM\\) role with permission to allow `\"arn:aws:s3:::dms-*\"` to use the following actions: \n+ `s3:CreateBucket` \n+ `s3:ListBucket` \n+ `s3:DeleteBucket` \n+ `s3:GetBucketLocation` \n+ `s3:GetObject` \n+ `s3:PutObject` \n+ `s3:DeleteObject` \n+ `s3:GetObjectVersion` \n+ `s3:GetBucketPolicy` \n+ `s3:PutBucketPolicy` \n+ `s3:DeleteBucketPolicy` \n*Required*: No \n*Type*: String \n*Allowed values*: `sse-kms | sse-s3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExternalTableDefinition": "Not currently supported by AWS CloudFormation\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IgnoreHeaderRows": "When this value is set to 1, AWS DMS ignores the first row header in a \\.csv file\\. A value of 1 turns on the feature; a value of 0 turns off the feature\\. \nThe default is 0\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeOpForFullLoad": "A value that enables a full load to write INSERT operations to the comma\\-separated value \\(\\.csv\\) output files only to indicate how the rows were added to the source database\\. \n AWS DMS supports the `IncludeOpForFullLoad` parameter in versions 3\\.1\\.4 and later\\.\nFor full load, records can only be inserted\\. By default \\(the `false` setting\\), no information is recorded in these output files for a full load to indicate that the rows were inserted at the source database\\. If `IncludeOpForFullLoad` is set to `true` or `y`, the INSERT is recorded as an I annotation in the first field of the \\.csv file\\. This allows the format of your target records from a full load to be consistent with the target records from a CDC load\\. \nThis setting works together with the `CdcInsertsOnly` and the `CdcInsertsAndUpdates` parameters for output to \\.csv files only\\. For more information about how these settings work together, see [Indicating Source DB Operations in Migrated S3 Data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps) in the * AWS Database Migration Service User Guide\\.*\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxFileSize": "A value that specifies the maximum size \\(in KB\\) of any \\.csv file to be created while migrating to an S3 target during full load\\. \nThe default value is 1,048,576 KB \\(1 GB\\)\\. Valid values include 1 to 1,048,576\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParquetTimestampInMillisecond": "A value that specifies the precision of any `TIMESTAMP` column values that are written to an Amazon S3 object file in \\.parquet format\\. \n AWS DMS supports the `ParquetTimestampInMillisecond` parameter in versions 3\\.1\\.4 and later\\.\nWhen `ParquetTimestampInMillisecond` is set to `true` or `y`, AWS DMS writes all `TIMESTAMP` columns in a \\.parquet formatted file with millisecond precision\\. Otherwise, DMS writes them with microsecond precision\\. \nCurrently, Amazon Athena and AWS Glue can handle only millisecond precision for `TIMESTAMP` values\\. Set this parameter to `true` for S3 endpoint object files that are \\.parquet formatted only if you plan to query or process the data with Athena or AWS Glue\\. \n AWS DMS writes any `TIMESTAMP` column values written to an S3 file in \\.csv format with microsecond precision\\. \nSetting `ParquetTimestampInMillisecond` has no effect on the string format of the timestamp column value that is inserted by setting the `TimestampColumnName` parameter\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParquetVersion": "The version of the Apache Parquet format that you want to use: `parquet_1_0` \\(the default\\) or `parquet_2_0`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `parquet-1-0 | parquet-2-0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreserveTransactions": "If set to `true`, AWS DMS saves the transaction order for a change data capture \\(CDC\\) load on the Amazon S3 target specified by [https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-CdcPath](https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-CdcPath)\\. For more information, see [Capturing data changes \\(CDC\\) including transaction order on the S3 target](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.EndpointSettings.CdcPath)\\. \nThis setting is supported in AWS DMS versions 3\\.4\\.2 and later\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Rfc4180": "For an S3 source, when this value is set to `true` or `y`, each leading double quotation mark has to be followed by an ending double quotation mark\\. This formatting complies with RFC 4180\\. When this value is set to `false` or `n`, string literals are copied to the target as is\\. In this case, a delimiter \\(row or column\\) signals the end of the field\\. Thus, you can't use a delimiter as part of the string, because it signals the end of the value\\. \nFor an S3 target, an optional parameter used to set behavior to comply with RFC 4180 for data migrated to Amazon S3 using \\.csv file format only\\. When this value is set to `true` or `y` using Amazon S3 as a target, if the data has quotation marks or newline characters in it, AWS DMS encloses the entire column with an additional pair of double quotation marks \\(\"\\)\\. Every quotation mark within the data is repeated twice\\. \nThe default value is `true`\\. Valid values include `true`, `false`, `y`, and `n`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RowGroupLength": "The number of rows in a row group\\. A smaller row group size provides faster reads\\. But as the number of row groups grows, the slower writes become\\. This parameter defaults to 10,000 rows\\. This number is used for \\.parquet file format only\\. \nIf you choose a value larger than the maximum, `RowGroupLength` is set to the max row group length in bytes \\(64 \\* 1024 \\* 1024\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServerSideEncryptionKmsKeyId": "If you are using `SSE_KMS` for the `EncryptionMode`, provide the AWS KMS key ID\\. The key that you use needs an attached policy that enables AWS Identity and Access Management \\(IAM\\) user permissions and allows use of the key\\. \nHere is a CLI example: `aws dms create-endpoint --endpoint-identifier value --endpoint-type target --engine-name s3 --s3-settings ServiceAccessRoleArn=value,BucketFolder=value,BucketName=value,EncryptionMode=SSE_KMS,ServerSideEncryptionKmsKeyId=value ` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceAccessRoleArn": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimestampColumnName": "A value that when nonblank causes AWS DMS to add a column with timestamp information to the endpoint data for an Amazon S3 target\\. \n AWS DMS supports the `TimestampColumnName` parameter in versions 3\\.1\\.4 and later\\.\nDMS includes an additional `STRING` column in the \\.csv or \\.parquet object files of your migrated data when you set `TimestampColumnName` to a nonblank value\\. \nFor a full load, each row of this timestamp column contains a timestamp for when the data was transferred from the source to the target by DMS\\. \nFor a change data capture \\(CDC\\) load, each row of the timestamp column contains the timestamp for the commit of that row in the source database\\. \nThe string format for this timestamp column value is `yyyy-MM-dd HH:mm:ss.SSSSSS`\\. By default, the precision of this value is in microseconds\\. For a CDC load, the rounding of the precision depends on the commit timestamp supported by DMS for the source database\\. \nWhen the `AddColumnName` parameter is set to `true`, DMS also includes a name for the timestamp column that you set with `TimestampColumnName`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UseCsvNoSupValue": "This setting applies if the S3 output files during a change data capture \\(CDC\\) load are written in \\.csv format\\. If set to `true` for columns not included in the supplemental log, AWS DMS uses the value specified by [https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-CsvNoSupValue](https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-CsvNoSupValue)\\. If not set or set to `false`, AWS DMS uses the null value for these columns\\. \nThis setting is supported in AWS DMS versions 3\\.4\\.1 and later\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UseTaskStartTimeForFullLoadTimestamp": "When set to true, this parameter uses the task start time as the timestamp column value instead of the time data is written to target\\. For full load, when `useTaskStartTimeForFullLoadTimestamp` is set to `true`, each row of the timestamp column contains the task start time\\. For CDC loads, each row of the timestamp column contains the transaction commit time\\. \nWhen `useTaskStartTimeForFullLoadTimestamp` is set to `false`, the full load timestamp in the timestamp column increments with the time data arrives at the target\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DMS::Endpoint SybaseSettings": { + "SecretsManagerAccessRoleArn": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretsManagerSecretId": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DMS::EventSubscription": { + "Enabled": "Indicates whether to activate the subscription\\. If you don't specify this property, AWS CloudFormation activates the subscription\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventCategories": "A list of event categories for a source type that you want to subscribe to\\. If you don't specify this property, you are notified about all event categories\\. For more information, see [Working with Events and Notifications](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Events.html) in the *AWS DMS User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnsTopicArn": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic created for event notification\\. The ARN is created by Amazon SNS when you create a topic and subscribe to it\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceIds": "A list of identifiers for which AWS DMS provides notification events\\. \nIf you don't specify a value, notifications are provided for all sources\\. \nIf you specify multiple values, they must be of the same type\\. For example, if you specify a database instance ID, then all of the other values must be database instance IDs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceType": "The type of AWS DMS resource that generates the events\\. For example, if you want to be notified of events generated by a replication instance, you set this parameter to `replication-instance`\\. If this value isn't specified, all events are returned\\. \nValid values: `replication-instance` \\| `replication-task` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubscriptionName": "The name of the AWS DMS event notification subscription\\. This name must be less than 255 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "One or more tags to be assigned to the event subscription\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::DMS::ReplicationInstance": { + "AllocatedStorage": "The amount of storage \\(in gigabytes\\) to be initially allocated for the replication instance\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AllowMajorVersionUpgrade": "Indicates that major version upgrades are allowed\\. Changing this parameter does not result in an outage, and the change is asynchronously applied as soon as possible\\. \nThis parameter must be set to `true` when specifying a value for the `EngineVersion` parameter that is a different major version than the replication instance's current version\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutoMinorVersionUpgrade": "A value that indicates whether minor engine upgrades are applied automatically to the replication instance during the maintenance window\\. This parameter defaults to `true`\\. \nDefault: `true` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AvailabilityZone": "The Availability Zone that the replication instance will be created in\\. \nThe default value is a random, system\\-chosen Availability Zone in the endpoint's , for example: `us-east-1d` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EngineVersion": "The engine version number of the replication instance\\. \nIf an engine version number is not specified when a replication instance is created, the default is the latest engine version available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKeyId": "An AWS KMS key identifier that is used to encrypt the data on the replication instance\\. \nIf you don't specify a value for the `KmsKeyId` parameter, then AWS DMS uses your default encryption key\\. \n AWS KMS creates the default encryption key for your AWS account\\. Your AWS account has a different default encryption key for each AWS Region\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MultiAZ": "Specifies whether the replication instance is a Multi\\-AZ deployment\\. You can't set the `AvailabilityZone` parameter if the Multi\\-AZ parameter is set to `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreferredMaintenanceWindow": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time \\(UTC\\)\\. \n Format: `ddd:hh24:mi-ddd:hh24:mi` \nDefault: A 30\\-minute window selected at random from an 8\\-hour block of time per AWS Region, occurring on a random day of the week\\. \nValid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun \nConstraints: Minimum 30\\-minute window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PubliclyAccessible": "Specifies the accessibility options for the replication instance\\. A value of `true` represents an instance with a public IP address\\. A value of `false` represents an instance with a private IP address\\. The default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ReplicationInstanceClass": "The compute and memory capacity of the replication instance as defined for the specified replication instance class\\. For example to specify the instance class dms\\.c4\\.large, set this parameter to `\"dms.c4.large\"`\\. \nFor more information on the settings and capacities for the available replication instance classes, see [ Selecting the right AWS DMS replication instance for your migration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.InDepth)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReplicationInstanceIdentifier": "The replication instance identifier\\. This parameter is stored as a lowercase string\\. \nConstraints: \n+ Must contain 1\\-63 alphanumeric characters or hyphens\\.\n+ First character must be a letter\\.\n+ Can't end with a hyphen or contain two consecutive hyphens\\.\nExample: `myrepinstance` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReplicationSubnetGroupIdentifier": "A subnet group to associate with the replication instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceIdentifier": "A friendly name for the resource identifier at the end of the `EndpointArn` response parameter that is returned in the created `Endpoint` object\\. The value for this parameter can have up to 31 characters\\. It can contain only ASCII letters, digits, and hyphen \\('\\-'\\)\\. Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as `Example-App-ARN1`\\. For example, this value might result in the `EndpointArn` value `arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1`\\. If you don't specify a `ResourceIdentifier` value, AWS DMS generates a default identifier value for the end of `EndpointArn`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "One or more tags to be assigned to the replication instance\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpcSecurityGroupIds": "Specifies the VPC security group to be used with the replication instance\\. The VPC security group must work with the VPC containing the replication instance\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DMS::ReplicationSubnetGroup": { + "ReplicationSubnetGroupDescription": "The description for the subnet group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReplicationSubnetGroupIdentifier": "The identifier for the replication subnet group\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the identifier\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetIds": "One or more subnet IDs to be assigned to the subnet group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "One or more tags to be assigned to the subnet group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::DMS::ReplicationTask": { + "CdcStartPosition": "Indicates when you want a change data capture \\(CDC\\) operation to start\\. Use either CdcStartPosition or CdcStartTime to specify when you want a CDC operation to start\\. Specifying both values results in an error\\. \n The value can be in date, checkpoint, or LSN/SCN format\\. \nDate Example: \\-\\-cdc\\-start\\-position \u201c2018\\-03\\-08T12:12:12\u201d \nCheckpoint Example: \\-\\-cdc\\-start\\-position \"checkpoint:V1\\#27\\#mysql\\-bin\\-changelog\\.157832:1975:\\-1:2002:677883278264080:mysql\\-bin\\-changelog\\.157832:1876\\#0\\#0\\#\\*\\#0\\#93\" \nLSN Example: \\-\\-cdc\\-start\\-position \u201cmysql\\-bin\\-changelog\\.000024:373\u201d \nWhen you use this task setting with a source PostgreSQL database, a logical replication slot should already be created and associated with the source endpoint\\. You can verify this by setting the `slotName` extra connection attribute to the name of this logical replication slot\\. For more information, see [Extra Connection Attributes When Using PostgreSQL as a Source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.ConnectionAttrib)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CdcStartTime": "Indicates the start time for a change data capture \\(CDC\\) operation\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CdcStopPosition": "Indicates when you want a change data capture \\(CDC\\) operation to stop\\. The value can be either server time or commit time\\. \nServer time example: \\-\\-cdc\\-stop\\-position \u201cserver\\_time:2018\\-02\\-09T12:12:12\u201d \nCommit time example: \\-\\-cdc\\-stop\\-position \u201ccommit\\_time: 2018\\-02\\-09T12:12:12 \u201c \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MigrationType": "The migration type\\. Valid values: `full-load` \\| `cdc` \\| `full-load-and-cdc` \n*Required*: Yes \n*Type*: String \n*Allowed values*: `cdc | full-load | full-load-and-cdc` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReplicationInstanceArn": "The Amazon Resource Name \\(ARN\\) of a replication instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ReplicationTaskIdentifier": "An identifier for the replication task\\. \nConstraints: \n+ Must contain 1\\-255 alphanumeric characters or hyphens\\.\n+ First character must be a letter\\.\n+ Cannot end with a hyphen or contain two consecutive hyphens\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReplicationTaskSettings": "Overall settings for the task, in JSON format\\. For more information, see [Specifying Task Settings for AWS Database Migration Service Tasks](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.html) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceIdentifier": "A friendly name for the resource identifier at the end of the `EndpointArn` response parameter that is returned in the created `Endpoint` object\\. The value for this parameter can have up to 31 characters\\. It can contain only ASCII letters, digits, and hyphen \\('\\-'\\)\\. Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as `Example-App-ARN1`\\. For example, this value might result in the `EndpointArn` value `arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1`\\. If you don't specify a `ResourceIdentifier` value, AWS DMS generates a default identifier value for the end of `EndpointArn`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceEndpointArn": "An Amazon Resource Name \\(ARN\\) that uniquely identifies the source endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TableMappings": "The table mappings for the task, in JSON format\\. For more information, see [Using Table Mapping to Specify Task Settings](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.html) in the * AWS Database Migration Service User Guide\\.* \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "One or more tags to be assigned to the replication task\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TargetEndpointArn": "An Amazon Resource Name \\(ARN\\) that uniquely identifies the target endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TaskData": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Dataset": { + "Format": "The file format of a dataset that is created from an Amazon S3 file or folder\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CSV | EXCEL | JSON | PARQUET` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FormatOptions": "A set of options that define how DataBrew interprets the data in the dataset\\. \n*Required*: No \n*Type*: [FormatOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-formatoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Input": "Information on how DataBrew can find the dataset, in either the AWS Glue Data Catalog or Amazon S3\\. \n*Required*: Yes \n*Type*: [Input](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-input.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The unique name of the dataset\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PathOptions": "A set of options that defines how DataBrew interprets an Amazon S3 path of the dataset\\. \n*Required*: No \n*Type*: [PathOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-pathoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Metadata tags that have been applied to the dataset\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::DataBrew::Dataset CsvOptions": { + "Delimiter": "A single character that specifies the delimiter being used in the CSV file\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HeaderRow": "A variable that specifies whether the first row in the file is parsed as the header\\. If this value is false, column names are auto\\-generated\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Dataset DataCatalogInputDefinition": { + "CatalogId": "The unique identifier of the AWS account that holds the Data Catalog that stores the data\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseName": "The name of a database in the Data Catalog\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TableName": "The name of a database table in the Data Catalog\\. This table corresponds to a DataBrew dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TempDirectory": "An Amazon location that AWS Glue Data Catalog can use as a temporary directory\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Dataset DatabaseInputDefinition": { + "DatabaseTableName": "The table within the target database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GlueConnectionName": "The AWS Glue Connection that stores the connection information for the target database\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryString": "Custom SQL to run against the provided AWS Glue connection\\. This SQL will be used as the input for DataBrew projects and jobs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TempDirectory": "An Amazon location that AWS Glue Data Catalog can use as a temporary directory\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Dataset DatasetParameter": { + "CreateColumn": "Optional boolean value that defines whether the captured value of this parameter should be loaded as an additional column in the dataset\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatetimeOptions": "Additional parameter options such as a format and a timezone\\. Required for datetime parameters\\. \n*Required*: No \n*Type*: [DatetimeOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datetimeoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Filter": "The optional filter expression structure to apply additional matching criteria to the parameter\\. \n*Required*: No \n*Type*: [FilterExpression](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-filterexpression.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the parameter that is used in the dataset's Amazon S3 path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of the dataset parameter, can be one of a 'String', 'Number' or 'Datetime'\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Dataset DatetimeOptions": { + "Format": "Required option, that defines the datetime format used for a date parameter in the Amazon S3 path\\. Should use only supported datetime specifiers and separation characters, all litera a\\-z or A\\-Z character should be escaped with single quotes\\. E\\.g\\. \"MM\\.dd\\.yyyy\\-'at'\\-HH:mm\"\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LocaleCode": "Optional value for a non\\-US locale code, needed for correct interpretation of some date formats\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimezoneOffset": "Optional value for a timezone offset of the datetime parameter value in the Amazon S3 path\\. Shouldn't be used if Format for this parameter includes timezone fields\\. If no offset specified, UTC is assumed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Dataset ExcelOptions": { + "HeaderRow": "A variable that specifies whether the first row in the file is parsed as the header\\. If this value is false, column names are auto\\-generated\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SheetIndexes": "One or more sheet numbers in the Excel file that will be included in the dataset\\. \n*Required*: No \n*Type*: List of Integer \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SheetNames": "One or more named sheets in the Excel file that will be included in the dataset\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Dataset FilesLimit": { + "MaxFiles": "The number of Amazon S3 files to select\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Order": "A criteria to use for Amazon S3 files sorting before their selection\\. By default uses DESCENDING order, i\\.e\\. most recent files are selected first\\. Anotherpossible value is ASCENDING\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OrderedBy": "A criteria to use for Amazon S3 files sorting before their selection\\. By default uses LAST\\_MODIFIED\\_DATE as a sorting criteria\\. Currently it's the only allowed value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Dataset FilterExpression": { + "Expression": "The expression which includes condition names followed by substitution variables, possibly grouped and combined with other conditions\\. For example, \"\\(starts\\_with :prefix1 or starts\\_with :prefix2\\) and \\(ends\\_with :suffix1 or ends\\_with :suffix2\\)\"\\. Substitution variables should start with ':' symbol\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ValuesMap": "The map of substitution variable names to their values used in this filter expression\\. \n*Required*: Yes \n*Type*: List of [FilterValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-filtervalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Dataset FilterValue": { + "Value": "The value to be associated with the substitution variable\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ValueReference": "The substitution variable reference\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Dataset FormatOptions": { + "Csv": "Options that define how CSV input is to be interpreted by DataBrew\\. \n*Required*: No \n*Type*: [CsvOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-csvoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Excel": "Options that define how Excel input is to be interpreted by DataBrew\\. \n*Required*: No \n*Type*: [ExcelOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-exceloptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Json": "Options that define how JSON input is to be interpreted by DataBrew\\. \n*Required*: No \n*Type*: [JsonOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-jsonoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Dataset Input": { + "DataCatalogInputDefinition": "The AWS Glue Data Catalog parameters for the data\\. \n*Required*: No \n*Type*: [DataCatalogInputDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datacataloginputdefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseInputDefinition": "Connection information for dataset input files stored in a database\\. \n*Required*: No \n*Type*: [DatabaseInputDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-databaseinputdefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Metadata": "Contains additional resource information needed for specific datasets\\. \n*Required*: No \n*Type*: [Metadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-metadata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3InputDefinition": "The Amazon S3 location where the data is stored\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Dataset JsonOptions": { + "MultiLine": "A value that specifies whether JSON input contains embedded new line characters\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Dataset Metadata": { + "SourceArn": "The Amazon Resource Name \\(ARN\\) associated with the dataset\\. Currently, DataBrew only supports ARNs from Amazon AppFlow\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Dataset PathOptions": { + "FilesLimit": "If provided, this structure imposes a limit on a number of files that should be selected\\. \n*Required*: No \n*Type*: [FilesLimit](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-fileslimit.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LastModifiedDateCondition": "If provided, this structure defines a date range for matching Amazon S3 objects based on their LastModifiedDate attribute in Amazon S3\\. \n*Required*: No \n*Type*: [FilterExpression](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-filterexpression.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "A structure that maps names of parameters used in the Amazon S3 path of a dataset to their definitions\\. \n*Required*: No \n*Type*: List of [PathParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-pathparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Dataset PathParameter": { + "DatasetParameter": "The path parameter definition\\. \n*Required*: Yes \n*Type*: [DatasetParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datasetparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PathParameterName": "The name of the path parameter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Dataset S3Location": { + "Bucket": "The Amazon S3 bucket name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Key": "The unique name of the object in the bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1280` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Job": { + "DataCatalogOutputs": "One or more artifacts that represent the AWS Glue Data Catalog output from running the job\\. \n*Required*: No \n*Type*: List of [DataCatalogOutput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseOutputs": "Represents a list of JDBC database output objects which defines the output destination for a DataBrew recipe job to write into\\. \n*Required*: No \n*Type*: List of [DatabaseOutput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databaseoutput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatasetName": "A dataset that the job is to process\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EncryptionKeyArn": "The Amazon Resource Name \\(ARN\\) of an encryption key that is used to protect the job output\\. For more information, see [Encrypting data written by DataBrew jobs](https://docs.aws.amazon.com/databrew/latest/dg/encryption-security-configuration.html) \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EncryptionMode": "The encryption mode for the job, which can be one of the following: \n+ `SSE-KMS` \\- Server\\-side encryption with keys managed by AWS KMS\\.\n+ `SSE-S3` \\- Server\\-side encryption with keys managed by Amazon S3\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `SSE-KMS | SSE-S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JobSample": "A sample configuration for profile jobs only, which determines the number of rows on which the profile job is run\\. If a `JobSample` value isn't provided, the default value is used\\. The default value is CUSTOM\\_ROWS for the mode parameter and 20,000 for the size parameter\\. \n*Required*: No \n*Type*: [JobSample](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-jobsample.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogSubscription": "The current status of Amazon CloudWatch logging for the job\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLE | ENABLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxCapacity": "The maximum number of nodes that can be consumed when the job processes data\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxRetries": "The maximum number of times to retry the job after a job run fails\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The unique name of the job\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `240` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OutputLocation": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [OutputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-outputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Outputs": "One or more artifacts that represent output from running the job\\. \n*Required*: No \n*Type*: List of [Output](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProfileConfiguration": "Configuration for profile jobs\\. Configuration can be used to select columns, do evaluations, and override default parameters of evaluations\\. When configuration is undefined, the profile job will apply default settings to all supported columns\\. \n*Required*: No \n*Type*: [ProfileConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-profileconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProjectName": "The name of the project that the job is associated with\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Recipe": "A series of data transformation steps that the job runs\\. \n*Required*: No \n*Type*: [Recipe](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-recipe.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the role to be assumed for this job\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Metadata tags that have been applied to the job\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Timeout": "The job's timeout in minutes\\. A job that attempts to run longer than this timeout period ends with a status of `TIMEOUT`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The job type of the job, which must be one of the following: \n+ `PROFILE` \\- A job to analyze a dataset, to determine its size, data types, data distribution, and more\\.\n+ `RECIPE` \\- A job to apply one or more transformations to a dataset\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `PROFILE | RECIPE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ValidationConfigurations": "List of validation configurations that are applied to the profile job\\. \n*Required*: No \n*Type*: List of [ValidationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-validationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Job AllowedStatistics": { + "Statistics": "One or more column statistics to allow for columns that contain detected entities\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Job ColumnSelector": { + "Name": "The name of a column from a dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Regex": "A regular expression for selecting a column from a dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Job ColumnStatisticsConfiguration": { + "Selectors": "List of column selectors\\. Selectors can be used to select columns from the dataset\\. When selectors are undefined, configuration will be applied to all supported columns\\. \n*Required*: No \n*Type*: List of [ColumnSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-columnselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Statistics": "Configuration for evaluations\\. Statistics can be used to select evaluations and override parameters of evaluations\\. \n*Required*: Yes \n*Type*: [StatisticsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-statisticsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Job CsvOutputOptions": { + "Delimiter": "A single character that specifies the delimiter used to create CSV job output\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Job DataCatalogOutput": { + "CatalogId": "The unique identifier of the AWS account that holds the Data Catalog that stores the data\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseName": "The name of a database in the Data Catalog\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseOptions": "Represents options that specify how and where DataBrew writes the database output generated by recipe jobs\\. \n*Required*: No \n*Type*: [DatabaseTableOutputOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databasetableoutputoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Overwrite": "A value that, if true, means that any data in the location specified for output is overwritten with new output\\. Not supported with DatabaseOptions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Options": "Represents options that specify how and where DataBrew writes the Amazon S3 output generated by recipe jobs\\. \n*Required*: No \n*Type*: [S3TableOutputOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3tableoutputoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TableName": "The name of a table in the Data Catalog\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Job DatabaseOutput": { + "DatabaseOptions": "Represents options that specify how and where DataBrew writes the database output generated by recipe jobs\\. \n*Required*: Yes \n*Type*: [DatabaseTableOutputOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databasetableoutputoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseOutputMode": "The output mode to write into the database\\. Currently supported option: NEW\\_TABLE\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NEW_TABLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GlueConnectionName": "The AWS Glue connection that stores the connection information for the target database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Job DatabaseTableOutputOptions": { + "TableName": "A prefix for the name of a table DataBrew will create in the database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TempDirectory": "Represents an Amazon S3 location \\(bucket name and object key\\) where DataBrew can store intermediate results\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Job EntityDetectorConfiguration": { + "AllowedStatistics": "Configuration of statistics that are allowed to be run on columns that contain detected entities\\. When undefined, no statistics will be computed on columns that contain detected entities\\. \n*Required*: No \n*Type*: [AllowedStatistics](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-allowedstatistics.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EntityTypes": "Entity types to detect\\. Can be any of the following: \n+ USA\\_SSN\n+ EMAIL\n+ USA\\_ITIN\n+ USA\\_PASSPORT\\_NUMBER\n+ PHONE\\_NUMBER\n+ USA\\_DRIVING\\_LICENSE\n+ BANK\\_ACCOUNT\n+ CREDIT\\_CARD\n+ IP\\_ADDRESS\n+ MAC\\_ADDRESS\n+ USA\\_DEA\\_NUMBER\n+ USA\\_HCPCS\\_CODE\n+ USA\\_NATIONAL\\_PROVIDER\\_IDENTIFIER\n+ USA\\_NATIONAL\\_DRUG\\_CODE\n+ USA\\_HEALTH\\_INSURANCE\\_CLAIM\\_NUMBER\n+ USA\\_MEDICARE\\_BENEFICIARY\\_IDENTIFIER\n+ USA\\_CPT\\_CODE\n+ PERSON\\_NAME\n+ DATE\nThe Entity type group USA\\_ALL is also supported, and includes all of the above entity types except PERSON\\_NAME and DATE\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Job JobSample": { + "Mode": "A value that determines whether the profile job is run on the entire dataset or a specified number of rows\\. This value must be one of the following: \n+ FULL\\_DATASET \\- The profile job is run on the entire dataset\\.\n+ CUSTOM\\_ROWS \\- The profile job is run on the number of rows specified in the `Size` parameter\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `CUSTOM_ROWS | FULL_DATASET` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Size": "The `Size` parameter is only required when the mode is CUSTOM\\_ROWS\\. The profile job is run on the specified number of rows\\. The maximum value for size is Long\\.MAX\\_VALUE\\. \nLong\\.MAX\\_VALUE = 9223372036854775807 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Job Output": { + "CompressionFormat": "The compression algorithm used to compress the output text of the job\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BROTLI | BZIP2 | DEFLATE | GZIP | LZ4 | LZO | SNAPPY | ZLIB | ZSTD` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Format": "The data format of the output of the job\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AVRO | CSV | GLUEPARQUET | JSON | ORC | PARQUET | TABLEAUHYPER | XML` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FormatOptions": "Represents options that define how DataBrew formats job output files\\. \n*Required*: No \n*Type*: [OutputFormatOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-outputformatoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Location": "The location in Amazon S3 where the job writes its output\\. \n*Required*: Yes \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxOutputFiles": "The maximum number of files to be generated by the job and written to the output folder\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Overwrite": "A value that, if true, means that any data in the location specified for output is overwritten with new output\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PartitionColumns": "The names of one or more partition columns for the output of the job\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Job OutputFormatOptions": { + "Csv": "Represents a set of options that define the structure of comma\\-separated value \\(CSV\\) job output\\. \n*Required*: No \n*Type*: [CsvOutputOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-csvoutputoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Job OutputLocation": { + "Bucket": "The Amazon S3 bucket name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BucketOwner": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Key": "The unique name of the object in the bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Job ProfileConfiguration": { + "ColumnStatisticsConfigurations": "List of configurations for column evaluations\\. ColumnStatisticsConfigurations are used to select evaluations and override parameters of evaluations for particular columns\\. When ColumnStatisticsConfigurations is undefined, the profile job will profile all supported columns and run all supported evaluations\\. \n*Required*: No \n*Type*: List of [ColumnStatisticsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-columnstatisticsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatasetStatisticsConfiguration": "Configuration for inter\\-column evaluations\\. Configuration can be used to select evaluations and override parameters of evaluations\\. When configuration is undefined, the profile job will run all supported inter\\-column evaluations\\. \n*Required*: No \n*Type*: [StatisticsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-statisticsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EntityDetectorConfiguration": "Configuration of entity detection for a profile job\\. When undefined, entity detection is disabled\\. \n*Required*: No \n*Type*: [EntityDetectorConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-entitydetectorconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProfileColumns": "List of column selectors\\. ProfileColumns can be used to select columns from the dataset\\. When ProfileColumns is undefined, the profile job will profile all supported columns\\. \n*Required*: No \n*Type*: List of [ColumnSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-columnselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Job Recipe": { + "Name": "The unique name for the recipe\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "The identifier for the version for the recipe\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Job S3Location": { + "Bucket": "The Amazon S3 bucket name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BucketOwner": "The AWS account ID of the bucket owner\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Key": "The unique name of the object in the bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1280` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Job S3TableOutputOptions": { + "Location": "Represents an Amazon S3 location \\(bucket name and object key\\) where DataBrew can write output from a job\\. \n*Required*: Yes \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Job StatisticOverride": { + "Parameters": "A map that includes overrides of an evaluation\u2019s parameters\\. \n*Required*: Yes \n*Type*: [ParameterMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-parametermap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Statistic": "The name of an evaluation \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[A-Z\\_]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Job StatisticsConfiguration": { + "IncludedStatistics": "List of included evaluations\\. When the list is undefined, all supported evaluations will be included\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Overrides": "List of overrides for evaluations\\. \n*Required*: No \n*Type*: List of [StatisticOverride](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-statisticoverride.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Job ValidationConfiguration": { + "RulesetArn": "The Amazon Resource Name \\(ARN\\) for the ruleset to be validated in the profile job\\. The TargetArn of the selected ruleset should be the same as the Amazon Resource Name \\(ARN\\) of the dataset that is associated with the profile job\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ValidationMode": "Mode of data quality validation\\. Default mode is \u201cCHECK\\_ALL\u201d which verifies all rules defined in the selected ruleset\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Project": { + "DatasetName": "The dataset that the project is to act upon\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The unique name of a project\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RecipeName": "The name of a recipe that will be developed during a project session\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the role that will be assumed for this project\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Sample": "The sample size and sampling type to apply to the data\\. If this parameter isn't specified, then the sample consists of the first 500 rows from the dataset\\. \n*Required*: No \n*Type*: [Sample](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-project-sample.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Metadata tags that have been applied to the project\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::DataBrew::Project Sample": { + "Size": "The number of rows in the sample\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `5000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The way in which DataBrew obtains rows from a dataset\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `FIRST_N | LAST_N | RANDOM` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Recipe": { + "Description": "The description of the recipe\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The unique name for the recipe\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Steps": "A list of steps that are defined by the recipe\\. \n*Required*: Yes \n*Type*: List of [RecipeStep](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipestep.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Metadata tags that have been applied to the recipe\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::DataBrew::Recipe Action": { + "Operation": "The name of a valid DataBrew transformation to be performed on the data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "Contextual parameters for the transformation\\. \n*Required*: No \n*Type*: [ParameterMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-parametermap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Recipe ConditionExpression": { + "Condition": "A specific condition to apply to a recipe action\\. For more information, see [Recipe structure](https://docs.aws.amazon.com/databrew/latest/dg/recipe-structure.html) in the *AWS Glue DataBrew Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[A-Z\\_]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetColumn": "A column to apply this condition to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "A value that the condition must evaluate to for the condition to succeed\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Recipe DataCatalogInputDefinition": { + "CatalogId": "The unique identifier of the AWS account that holds the Data Catalog that stores the data\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseName": "The name of a database in the Data Catalog\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TableName": "The name of a database table in the Data Catalog\\. This table corresponds to a DataBrew dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TempDirectory": "Represents an Amazon location where DataBrew can store intermediate results\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Recipe RecipeParameters": { + "AggregateFunction": "The name of an aggregation function to apply\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Base": "The number of digits used in a counting system\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CaseStatement": "A case statement associated with a recipe\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CategoryMap": "A category map used for one\\-hot encoding\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CharsToRemove": "Characters to remove from a step that applies one\\-hot encoding or tokenization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CollapseConsecutiveWhitespace": "Remove any non\\-word non\\-punctuation character\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ColumnDataType": "The data type of the column\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ColumnRange": "A range of columns to which a step is applied\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Count": "The number of times a string needs to be repeated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomCharacters": "One or more characters that can be substituted or removed, depending on the context\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomStopWords": "A list of words to ignore in a step that applies word tokenization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomValue": "A list of custom values to use in a step that requires that you provide a value to finish the operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatasetsColumns": "A list of the dataset columns included in a project\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DateAddValue": "A value that specifies how many units of time to add or subtract for a date math operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DateTimeFormat": "A date format to apply to a date\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DateTimeParameters": "A set of parameters associated with a datetime\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeleteOtherRows": "Determines whether unmapped rows in a categorical mapping should be deleted \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Delimiter": "The delimiter to use when parsing separated values in a text file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EndPattern": "The end pattern to locate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EndPosition": "The end position to locate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EndValue": "The end value to locate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExpandContractions": "A list of word contractions and what they expand to\\. For eample: *can't*; *cannot*; *can not*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Exponent": "The exponent to apply in an exponential operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FalseString": "A value that represents `FALSE`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GroupByAggFunctionOptions": "Specifies options to apply to the `GROUP BY` used in an aggregation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GroupByColumns": "The columns to use in the `GROUP BY` clause\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HiddenColumns": "A list of columns to hide\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IgnoreCase": "Indicates that lower and upper case letters are treated equally\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeInSplit": "Indicates if this column is participating in a split transform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Input": "The input location to load the dataset from \\- Amazon S3 or AWS Glue Data Catalog\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Interval": "The number of characters to split by\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IsText": "Indicates if the content is text\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JoinKeys": "The keys or columns involved in a join\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JoinType": "The type of join to use, for example, `INNER JOIN`, `OUTER JOIN`, and so on\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LeftColumns": "The columns on the left side of the join\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Limit": "The number of times to perform `split` or `replaceBy` in a string \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LowerBound": "The lower boundary for a value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MapType": "The type of mappings to apply to construct a new dynamic frame\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ModeType": "Determines the manner in which mode value is calculated, in case there is more than one mode value\\. Valid values: `NONE` \\| `AVERAGE` \\| `MINIMUM` \\| `MAXIMUM` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MultiLine": "Specifies whether JSON input contains embedded new line characters\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumRows": "The number of rows to consider in a window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumRowsAfter": "The number of rows to consider after the current row in a window \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumRowsBefore": "The number of rows to consider before the current row in a window \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OrderByColumn": "A column to sort the results by\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OrderByColumns": "The columns to sort the results by\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Other": "The value to assign to unmapped cells, in categorical mapping \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Pattern": "The pattern to locate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PatternOption1": "The starting pattern to split between\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PatternOption2": "The ending pattern to split between\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PatternOptions": "For splitting by multiple delimiters: A JSON\\-encoded string that lists the patterns in the format\\. For example: `[{\\\"pattern\\\":\\\"1\\\",\\\"includeInSplit\\\":true}]` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Period": "The size of the rolling window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Position": "The character index within a string \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RemoveAllPunctuation": "If `true`, removes all of the following characters: `.` `.!` `.,` `.?` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RemoveAllQuotes": "If `true`, removes all single quotes and double quotes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RemoveAllWhitespace": "If `true`, removes all whitespaces from the value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RemoveCustomCharacters": "If `true`, removes all chraracters specified by `CustomCharacters`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RemoveCustomValue": "If `true`, removes all chraracters specified by `CustomValue`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RemoveLeadingAndTrailingPunctuation": "If `true`, removes the following characters if they occur at the start or end of the value: `.` `!` `,` `?` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RemoveLeadingAndTrailingQuotes": "If `true`, removes single quotes and double quotes from the beginning and end of the value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RemoveLeadingAndTrailingWhitespace": "If `true`, removes all whitespaces from the beginning and end of the value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RemoveLetters": "If `true`, removes all uppercase and lowercase alphabetic characters \\(A through Z; a through z\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RemoveNumbers": "If `true`, removes all numeric characters \\(0 through 9\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RemoveSourceColumn": "If `true`, the source column will be removed after un\\-nesting that column\\. \\(Used with nested column types, such as Map, Struct, or Array\\.\\) \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RemoveSpecialCharacters": "If `true`, removes all of the following characters: `! \" # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \\ ] ^ _ ` { | } ~` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RightColumns": "The columns on the right side of a join\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SampleSize": "The number of rows in the sample\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SampleType": "The sampling type to apply to the dataset\\. Valid values: `FIRST_N` \\| `LAST_N` \\| `RANDOM` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecondInput": "A object value to indicate the second dataset used in a join\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecondaryInputs": "A list of secondary inputs in a UNION transform \n*Required*: No \n*Type*: List of [SecondaryInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-secondaryinput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SheetIndexes": "One or more sheet numbers in the Excel file, which will be included in a dataset\\. \n*Required*: No \n*Type*: List of Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SheetNames": "Oone or more named sheets in the Excel file, which will be included in a dataset\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceColumn": "A source column needed for an operation, step, or transform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceColumn1": "A source column needed for an operation, step, or transform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceColumn2": "A source column needed for an operation, step, or transform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceColumns": "A list of source columns needed for an operation, step, or transform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StartColumnIndex": "The index number of the first column used by an operation, step, or transform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StartPattern": "The starting pattern to locate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StartPosition": "The starting position to locate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StartValue": "The starting value to locate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StemmingMode": "Indicates this operation uses stems and lemmas \\(base words\\) for word tokenization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StepCount": "The total number of transforms in this recipe\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StepIndex": "The index ID of a step\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StopWordsMode": "Indicates this operation uses stop words as part of word tokenization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Strategy": "The resolution strategy to apply in resolving ambiguities\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetColumn": "The column targeted by this operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetColumnNames": "The names to give columns altered by this operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetDateFormat": "The date format to convert to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetIndex": "The index number of an object that is targeted by this operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeZone": "The current timezone that you want to use for dates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TokenizerPattern": "A regex expression to use when splitting text into terms, also called words or tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TrueString": "A value to use to represent `TRUE`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UdfLang": "The language that's used in the user\\-defined function\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Units": "Specifies a unit of time\\. For example: `MINUTES`; `SECONDS`; `HOURS`; etc\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UnpivotColumn": "Cast columns as rows, so that each value is a different row in a single column\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UpperBound": "The upper boundary for a value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UseNewDataFrame": "Create a new container to hold a dataset\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "A static value that can be used in a comparison, a substitution, or in another context\\-specific way\\. A `Value` can be a number, string, or other datatype, depending on the recipe action in which it's used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value1": "A value that's used by this operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value2": "A value that's used by this operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ValueColumn": "The column that is provided as a value that's used by this operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ViewFrame": "The subset of rows currently available for viewing\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Recipe RecipeStep": { + "Action": "The particular action to be performed in the recipe step\\. \n*Required*: Yes \n*Type*: [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConditionExpressions": "One or more conditions that must be met for the recipe step to succeed\\. \nAll of the conditions in the array must be met\\. In other words, all of the conditions must be combined using a logical AND operation\\.\n*Required*: No \n*Type*: List of [ConditionExpression](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-conditionexpression.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Recipe S3Location": { + "Bucket": "The Amazon S3 bucket name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Key": "The unique name of the object in the bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1280` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Recipe SecondaryInput": { + "DataCatalogInputDefinition": "The AWS Glue Data Catalog parameters for the data\\. \n*Required*: No \n*Type*: [DataCatalogInputDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-datacataloginputdefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3InputDefinition": "The Amazon S3 location where the data is stored\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Ruleset": { + "Description": "The description of the ruleset\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the ruleset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Rules": "Contains metadata about the ruleset\\. \n*Required*: Yes \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetArn": "The Amazon Resource Name \\(ARN\\) of a resource \\(dataset\\) that the ruleset is associated with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::DataBrew::Ruleset ColumnSelector": { + "Name": "The name of a column from a dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Regex": "A regular expression for selecting a column from a dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Ruleset Rule": { + "CheckExpression": "The expression which includes column references, condition names followed by variable references, possibly grouped and combined with other conditions\\. For example, `(:col1 starts_with :prefix1 or :col1 starts_with :prefix2) and (:col1 ends_with :suffix1 or :col1 ends_with :suffix2)`\\. Column and value references are substitution variables that should start with the ':' symbol\\. Depending on the context, substitution variables' values can be either an actual value or a column name\\. These values are defined in the SubstitutionMap\\. If a CheckExpression starts with a column reference, then ColumnSelectors in the rule should be null\\. If ColumnSelectors has been defined, then there should be no columnn reference in the left side of a condition, for example, `is_between :val1 and :val2`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ColumnSelectors": "List of column selectors\\. Selectors can be used to select columns using a name or regular expression from the dataset\\. Rule will be applied to selected columns\\. \n*Required*: No \n*Type*: List of [ColumnSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-columnselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Disabled": "A value that specifies whether the rule is disabled\\. Once a rule is disabled, a profile job will not validate it during a job run\\. Default value is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubstitutionMap": "The map of substitution variable names to their values used in a check expression\\. Variable names should start with a ':' \\(colon\\)\\. Variable values can either be actual values or column names\\. To differentiate between the two, column names should be enclosed in backticks, for example, `\":col1\": \"`Column A`\".` \n*Required*: No \n*Type*: List of [SubstitutionValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-substitutionvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Threshold": "The threshold used with a non\\-aggregate check expression\\. Non\\-aggregate check expressions will be applied to each row in a specific column, and the threshold will be used to determine whether the validation succeeds\\. \n*Required*: No \n*Type*: [Threshold](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-threshold.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Ruleset SubstitutionValue": { + "Value": "Value or column name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ValueReference": "Variable name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Ruleset Threshold": { + "Type": "The type of a threshold\\. Used for comparison of an actual count of rows that satisfy the rule to the threshold value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Unit": "Unit of threshold value\\. Can be either a COUNT or PERCENTAGE of the full sample size used for validation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of a threshold\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataBrew::Schedule": { + "CronExpression": "The dates and times when the job is to run\\. For more information, see [Cron expressions](https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html) in the * AWS Glue DataBrew Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JobNames": "A list of jobs to be run, according to the schedule\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the schedule\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Metadata tags that have been applied to the schedule\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::DataPipeline::Pipeline": { + "Activate": "Indicates whether to validate and start the pipeline or stop an active pipeline\\. By default, the value is set to `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the pipeline\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ParameterObjects": "The parameter objects used with the pipeline\\. \n*Required*: Yes \n*Type*: List of [ParameterObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParameterValues": "The parameter values used with the pipeline\\. \n*Required*: No \n*Type*: List of [ParameterValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parametervalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PipelineObjects": "The objects that define the pipeline\\. These objects overwrite the existing pipeline definition\\. Not all objects, fields, and values can be updated\\. For information about restrictions, see [Editing Your Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-manage-pipeline-modify-console.html) in the *AWS Data Pipeline Developer Guide*\\. \n*Required*: No \n*Type*: List of [PipelineObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PipelineTags": "A list of arbitrary tags \\(key\\-value pairs\\) to associate with the pipeline, which you can use to control permissions\\. For more information, see [Controlling Access to Pipelines and Resources](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-control-access.html) in the *AWS Data Pipeline Developer Guide*\\. \n*Required*: No \n*Type*: List of [PipelineTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelinetags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataPipeline::Pipeline Field": { + "Key": "Specifies the name of a field for a particular object\\. To view valid values for a particular field, see [Pipeline Object Reference](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-pipeline-objects.html) in the *AWS Data Pipeline Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RefValue": "A field value that you specify as an identifier of another object in the same pipeline definition\\. \nYou can specify the field value as either a string value \\(`StringValue`\\) or a reference to another object \\(`RefValue`\\), but not both\\.\nRequired if the key that you are using requires it\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StringValue": "A field value that you specify as a string\\. To view valid values for a particular field, see [Pipeline Object Reference](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-pipeline-objects.html) in the *AWS Data Pipeline Developer Guide*\\. \nYou can specify the field value as either a string value \\(`StringValue`\\) or a reference to another object \\(`RefValue`\\), but not both\\.\nRequired if the key that you are using requires it\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10240` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataPipeline::Pipeline ParameterAttribute": { + "Key": "The field identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StringValue": "The field value, expressed as a String\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10240` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataPipeline::Pipeline ParameterObject": { + "Attributes": "The attributes of the parameter object\\. \n*Required*: Yes \n*Type*: List of [ParameterAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects-attributes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "The ID of the parameter object\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataPipeline::Pipeline ParameterValue": { + "Id": "The ID of the parameter value\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StringValue": "The field value, expressed as a String\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10240` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataPipeline::Pipeline PipelineObject": { + "Fields": "Key\\-value pairs that define the properties of the object\\. \n*Required*: Yes \n*Type*: List of [Field](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects-fields.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "The ID of the object\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the object\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataPipeline::Pipeline PipelineTag": { + "Key": "The key name of a tag\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value to associate with the key name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataSync::Agent": { + "ActivationKey": "Your agent activation key\\. You can get the activation key either by sending an HTTP GET request with redirects that enable you to get the agent IP address \\(port 80\\)\\. Alternatively, you can get it from the DataSync console\\. \nThe redirect URL returned in the response provides you the activation key for your agent in the query string parameter `activationKey`\\. It might also include other activation\\-related parameters; however, these are merely defaults\\. The arguments you pass to this API call determine the actual configuration of your agent\\. \nFor more information, see [Creating and activating an agent](https://docs.aws.amazon.com/datasync/latest/userguide/activating-agent.html) in the * AWS DataSync User Guide\\.* \n*Required*: Yes \n*Type*: String \n*Maximum*: `29` \n*Pattern*: `[A-Z0-9]{5}(-[A-Z0-9]{5}){4}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AgentName": "The name you configured for your agent\\. This value is a text reference that is used to identify the agent in the console\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[a-zA-Z0-9\\s+=._:@/-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroupArns": "The Amazon Resource Names \\(ARNs\\) of the security groups used to protect your data transfer task subnets\\. See [SecurityGroupArns](https://docs.aws.amazon.com/datasync/latest/userguide/API_Ec2Config.html#DataSync-Type-Ec2Config-SecurityGroupArns)\\. \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/.*$` \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetArns": "The Amazon Resource Names \\(ARNs\\) of the subnets in which DataSync will create elastic network interfaces for each data transfer task\\. The agent that runs a task must be private\\. When you start a task that is associated with an agent created in a VPC, or one that has access to an IP address in a VPC, then the task is also private\\. In this case, DataSync creates four network interfaces for each task in your subnet\\. For a data transfer to work, the agent must be able to route to all these four network interfaces\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The key\\-value pair that represents the tag that you want to associate with the agent\\. The value can be an empty string\\. This value helps you manage, filter, and search for your agents\\. \nValid characters for key and value are letters, spaces, and numbers representable in UTF\\-8 format, and the following special characters: \\+ \\- = \\. \\_ : / @\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcEndpointId": "The ID of the virtual private cloud \\(VPC\\) endpoint that the agent has access to\\. This is the client\\-side VPC endpoint, powered by AWS PrivateLink\\. If you don't have an AWS PrivateLink VPC endpoint, see [AWS PrivateLink and VPC endpoints](https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-overview.html) in the *Amazon VPC User Guide*\\. \nFor more information about activating your agent in a private network based on a VPC, see [Using AWS DataSync in a Virtual Private Cloud](https://docs.aws.amazon.com/datasync/latest/userguide/datasync-in-vpc.html) in the *AWS DataSync User Guide\\.* \nA VPC endpoint ID looks like this: `vpce-01234d5aff67890e1`\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^vpce-[0-9a-f]{17}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::DataSync::LocationEFS": { + "Ec2Config": "The subnet and security group that the Amazon EFS file system uses\\. The security group that you provide needs to be able to communicate with the security group on the mount target in the subnet specified\\. \nThe exact relationship between security group M \\(of the mount target\\) and security group S \\(which you provide for DataSync to use at this stage\\) is as follows: \n+ Security group M \\(which you associate with the mount target\\) must allow inbound access for the Transmission Control Protocol \\(TCP\\) on the NFS port \\(2049\\) from security group S\\. You can enable inbound connections either by IP address \\(CIDR range\\) or security group\\. \n+ Security group S \\(provided to DataSync to access EFS\\) should have a rule that enables outbound connections to the NFS port on one of the file system\u2019s mount targets\\. You can enable outbound connections either by IP address \\(CIDR range\\) or security group\\.", + "EfsFilesystemArn": "The Amazon Resource Name \\(ARN\\) for the Amazon EFS file system\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):elasticfilesystem:[a-z\\-0-9]*:[0-9]{12}:file-system/fs-.*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Subdirectory": "A subdirectory in the location\u2019s path\\. This subdirectory in the EFS file system is used to read data from the EFS source location or write data to the EFS destination\\. By default, AWS DataSync uses the root directory\\. \n `Subdirectory` must be specified with forward slashes\\. For example, `/path/to/folder`\\.\n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\p{Zs}]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The key\\-value pair that represents a tag that you want to add to the resource\\. The value can be an empty string\\. This value helps you manage, filter, and search for your resources\\. We recommend that you create a name tag for your location\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataSync::LocationEFS Ec2Config": { + "SecurityGroupArns": "The Amazon Resource Names \\(ARNs\\) of the security groups that are configured for the Amazon EC2 resource\\. \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/.*$` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetArn": "The Amazon Resource Name \\(ARN\\) of the subnet that DataSync uses to access the target EFS file system\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:subnet/.*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::DataSync::LocationFSxLustre": { + "FsxFilesystemArn": "The Amazon Resource Name \\(ARN\\) for the FSx for Lustre file system\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):fsx:[a-z\\-0-9]*:[0-9]{12}:file-system/fs-.*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecurityGroupArns": "The ARNs of the security groups that are used to configure the FSx for Lustre file system\\. \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/.*$` \n*Length constraints*: Maximum length of 128\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Subdirectory": "A subdirectory in the location's path\\. This subdirectory in the FSx for Lustre file system is used to read data from the FSx for Lustre source location or write data to the FSx for Lustre destination\\. \n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\$\\p{Zs}]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The key\\-value pair that represents a tag that you want to add to the resource\\. The value can be an empty string\\. This value helps you manage, filter, and search for your resources\\. We recommend that you create a name tag for your location\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataSync::LocationFSxWindows": { + "Domain": "The name of the Windows domain that the FSx for Windows File Server belongs to\\. \n*Required*: No \n*Type*: String \n*Maximum*: `253` \n*Pattern*: `^([A-Za-z0-9]+[A-Za-z0-9-.]*)*[A-Za-z0-9-]*[A-Za-z0-9]$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FsxFilesystemArn": "The Amazon Resource Name \\(ARN\\) for the FSx for Windows File Server file system\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):fsx:[a-z\\-0-9]*:[0-9]{12}:file-system/fs-.*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Password": "The password of the user who has the permissions to access files and folders in the FSx for Windows File Server file system\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `104` \n*Pattern*: `^.{0,104}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecurityGroupArns": "The Amazon Resource Names \\(ARNs\\) of the security groups that are used to configure the FSx for Windows File Server file system\\. \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/.*$` \n*Length constraints*: Maximum length of 128\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Subdirectory": "A subdirectory in the location's path\\. This subdirectory in the Amazon FSx for Windows File Server file system is used to read data from the Amazon FSx for Windows File Server source location or write data to the FSx for Windows File Server destination\\. \n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\$\\p{Zs}]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The key\\-value pair that represents a tag that you want to add to the resource\\. The value can be an empty string\\. This value helps you manage, filter, and search for your resources\\. We recommend that you create a name tag for your location\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "User": "The user who has the permissions to access files and folders in the FSx for Windows File Server file system\\. \nFor information about choosing a user name that ensures sufficient permissions to files, folders, and metadata, see [user](https://docs.aws.amazon.com/datasync/latest/userguide/create-fsx-location.html#FSxWuser)\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `104` \n*Pattern*: `^[^\\x5B\\x5D\\\\/:;|=,+*?]{1,104}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::DataSync::LocationHDFS": { + "AgentArns": "The Amazon Resource Names \\(ARNs\\) of the agents that are used to connect to the HDFS cluster\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthenticationType": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BlockSize": "The size of data blocks to write into the HDFS cluster\\. The block size must be a multiple of 512 bytes\\. The default block size is 128 mebibytes \\(MiB\\)\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1048576` \n*Maximum*: `1073741824` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KerberosKeytab": "The Kerberos key table \\(keytab\\) that contains mappings between the defined Kerberos principal and the encrypted keys\\. Provide the base64\\-encoded file text\\. If `KERBEROS` is specified for `AuthType`, this value is required\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KerberosKrb5Conf": "The `krb5.conf` file that contains the Kerberos configuration information\\. You can load the `krb5.conf` by providing a string of the file's contents or an Amazon S3 presigned URL of the file\\. If`KERBEROS` is specified for `AuthType`, this value is required\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KerberosPrincipal": "The Kerberos principal with access to the files and folders on the HDFS cluster\\. \nIf `KERBEROS` is specified for `AuthenticationType`, this parameter is required\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKeyProviderUri": "The URI of the HDFS cluster's Key Management Server \\(KMS\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^kms:\\/\\/http[s]?@(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9])(;(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9]))*:[0-9]{1,5}\\/kms$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NameNodes": "The NameNode that manages the HDFS namespace\\. The NameNode performs operations such as opening, closing, and renaming files and directories\\. The NameNode contains the information to map blocks of data to the DataNodes\\. You can use only one NameNode\\. \n*Required*: Yes \n*Type*: List of [NameNode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationhdfs-namenode.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QopConfiguration": "The Quality of Protection \\(QOP\\) configuration specifies the Remote Procedure Call \\(RPC\\) and data transfer protection settings configured on the Hadoop Distributed File System \\(HDFS\\) cluster\\. If `QopConfiguration` isn't specified, `RpcProtection` and `DataTransferProtection` default to `PRIVACY`\\. If you set `RpcProtection` or `DataTransferProtection`, the other parameter assumes the same value\\. \n*Required*: No \n*Type*: [QopConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationhdfs-qopconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReplicationFactor": "The number of DataNodes to replicate the data to when writing to the HDFS cluster\\. By default, data is replicated to three DataNodes\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SimpleUser": "The user name used to identify the client on the host operating system\\. \nIf `SIMPLE` is specified for `AuthenticationType`, this parameter is required\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[_.A-Za-z0-9][-_.A-Za-z0-9]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Subdirectory": "A subdirectory in the HDFS cluster\\. This subdirectory is used to read data from or write data to the HDFS cluster\\. If the subdirectory isn't specified, it will default to `/`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\$\\p{Zs}]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The key\\-value pair that represents the tag that you want to add to the location\\. The value can be an empty string\\. We recommend using tags to name your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataSync::LocationHDFS NameNode": { + "Hostname": "The hostname of the NameNode in the HDFS cluster\\. This value is the IP address or Domain Name Service \\(DNS\\) name of the NameNode\\. An agent that's installed on\\-premises uses this hostname to communicate with the NameNode in the network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9])$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "The port that the NameNode uses to listen to client requests\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65536` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataSync::LocationHDFS QopConfiguration": { + "DataTransferProtection": "The data transfer protection setting configured on the HDFS cluster\\. This setting corresponds to your `dfs.data.transfer.protection` setting in the `hdfs-site.xml` file on your Hadoop cluster\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUTHENTICATION | DISABLED | INTEGRITY | PRIVACY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RpcProtection": "The Remote Procedure Call \\(RPC\\) protection setting configured on the HDFS cluster\\. This setting corresponds to your `hadoop.rpc.protection` setting in your `core-site.xml` file on your Hadoop cluster\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUTHENTICATION | DISABLED | INTEGRITY | PRIVACY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataSync::LocationNFS": { + "MountOptions": "The NFS mount options that DataSync can use to mount your NFS share\\. \n*Required*: No \n*Type*: [MountOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationnfs-mountoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OnPremConfig": "Contains a list of Amazon Resource Names \\(ARNs\\) of agents that are used to connect to an NFS server\\. \nIf you are copying data to or from your AWS Snowcone device, see [NFS Server on AWS Snowcone](https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone) for more information\\. \n*Required*: Yes \n*Type*: [OnPremConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationnfs-onpremconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServerHostname": "The name of the NFS server\\. This value is the IP address or Domain Name Service \\(DNS\\) name of the NFS server\\. An agent that is installed on\\-premises uses this host name to mount the NFS server in a network\\. \nIf you are copying data to or from your AWS Snowcone device, see [NFS Server on AWS Snowcone](https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone) for more information\\. \nThis name must either be DNS\\-compliant or must be an IP version 4 \\(IPv4\\) address\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `^(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9])$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Subdirectory": "The subdirectory in the NFS file system that is used to read data from the NFS source location or write data to the NFS destination\\. The NFS path should be a path that's exported by the NFS server, or a subdirectory of that path\\. The path should be such that it can be mounted by other NFS clients in your network\\. \nTo see all the paths exported by your NFS server, run \"`showmount -e nfs-server-name`\" from an NFS client that has access to your server\\. You can specify any directory that appears in the results, and any subdirectory of that directory\\. Ensure that the NFS export is accessible without Kerberos authentication\\. \nTo transfer all the data in the folder you specified, DataSync needs to have permissions to read all the data\\. To ensure this, either configure the NFS export with `no_root_squash,` or ensure that the permissions for all of the files that you want DataSync allow read access for all users\\. Doing either enables the agent to read the files\\. For the agent to access directories, you must additionally enable all execute access\\. \nIf you are copying data to or from your AWS Snowcone device, see [NFS Server on AWS Snowcone](https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone) for more information\\. \nFor information about NFS export configuration, see [18\\.7\\. The /etc/exports Configuration File](http://web.mit.edu/rhel-doc/5/RHEL-5-manual/Deployment_Guide-en-US/s1-nfs-server-config-exports.html) in the Red Hat Enterprise Linux documentation\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\p{Zs}]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The key\\-value pair that represents the tag that you want to add to the location\\. The value can be an empty string\\. We recommend using tags to name your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataSync::LocationNFS MountOptions": { + "Version": "The specific NFS version that you want DataSync to use to mount your NFS share\\. If the server refuses to use the version specified, the sync will fail\\. If you don't specify a version, DataSync defaults to `AUTOMATIC`\\. That is, DataSync automatically selects a version based on negotiation with the NFS server\\. \nYou can specify the following NFS versions: \n+ ** [NFSv3](https://tools.ietf.org/html/rfc1813) ** \\- stateless protocol version that allows for asynchronous writes on the server\\.\n+ ** [NFSv4\\.0](https://tools.ietf.org/html/rfc3530) ** \\- stateful, firewall\\-friendly protocol version that supports delegations and pseudo file systems\\.\n+ ** [NFSv4\\.1](https://tools.ietf.org/html/rfc5661) ** \\- stateful protocol version that supports sessions, directory delegations, and parallel data processing\\. Version 4\\.1 also includes all features available in version 4\\.0\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `AUTOMATIC | NFS3 | NFS4_0 | NFS4_1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataSync::LocationNFS OnPremConfig": { + "AgentArns": "ARNs of the agents to use for an NFS location\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataSync::LocationObjectStorage": { + "AccessKey": "Optional\\. The access key is used if credentials are required to access the self\\-managed object storage server\\. If your object storage requires a user name and password to authenticate, use `AccessKey` and `SecretKey` to provide the user name and password, respectively\\. \n*Required*: No \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `200` \n*Pattern*: `^.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AgentArns": "The Amazon Resource Name \\(ARN\\) of the agents associated with the self\\-managed object storage server location\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BucketName": "The bucket on the self\\-managed object storage server that is used to read data from\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\$\\p{Zs}]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecretKey": "Optional\\. The secret key is used if credentials are required to access the self\\-managed object storage server\\. If your object storage requires a user name and password to authenticate, use `AccessKey` and `SecretKey` to provide the user name and password, respectively\\. \n*Required*: No \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `200` \n*Pattern*: `^.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServerHostname": "The name of the self\\-managed object storage server\\. This value is the IP address or Domain Name Service \\(DNS\\) name of the object storage server\\. An agent uses this host name to mount the object storage server in a network\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `^(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9])$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ServerPort": "The port that your self\\-managed object storage server accepts inbound network traffic on\\. The server port is set by default to TCP 80 \\(HTTP\\) or TCP 443 \\(HTTPS\\)\\. You can specify a custom port if your self\\-managed object storage server requires one\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65536` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServerProtocol": "The protocol that the object storage server uses to communicate\\. Valid values are HTTP or HTTPS\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `HTTP | HTTPS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Subdirectory": "The subdirectory in the self\\-managed object storage server that is used to read data from\\. \n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\p{Zs}]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The key\\-value pair that represents the tag that you want to add to the location\\. The value can be an empty string\\. We recommend using tags to name your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataSync::LocationS3": { + "S3BucketArn": "The ARN of the Amazon S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `156` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):(s3|s3-outposts):[a-z\\-0-9]*:[0-9]*:.*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "S3Config": "The Amazon Resource Name \\(ARN\\) of the AWS Identity and Access Management \\(IAM\\) role that is used to access an Amazon S3 bucket\\. \nFor detailed information about using such a role, see [Creating a Location for Amazon S3](https://docs.aws.amazon.com/datasync/latest/userguide/working-with-locations.html#create-s3-location) in the *AWS DataSync User Guide*\\. \n*Required*: Yes \n*Type*: [S3Config](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locations3-s3config.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "S3StorageClass": "The Amazon S3 storage class that you want to store your files in when this location is used as a task destination\\. For buckets in AWS Regions, the storage class defaults to S3 Standard\\. \nFor more information about S3 storage classes, see [Amazon S3 Storage Classes](http://aws.amazon.com/s3/storage-classes/)\\. Some storage classes have behaviors that can affect your S3 storage costs\\. For detailed information, see [Considerations When Working with Amazon S3 Storage Classes in DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DEEP_ARCHIVE | GLACIER | INTELLIGENT_TIERING | ONEZONE_IA | OUTPOSTS | STANDARD | STANDARD_IA` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Subdirectory": "A subdirectory in the Amazon S3 bucket\\. This subdirectory in Amazon S3 is used to read data from the S3 source location or write data to the S3 destination\\. \n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\p{Zs}]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The key\\-value pair that represents the tag that you want to add to the location\\. The value can be an empty string\\. We recommend using tags to name your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataSync::LocationS3 S3Config": { + "BucketAccessRoleArn": "The ARN of the IAM role for accessing the S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::DataSync::LocationSMB": { + "AgentArns": "The Amazon Resource Names \\(ARNs\\) of agents to use for a Server Message Block \\(SMB\\) location\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Domain": "The name of the Windows domain that the SMB server belongs to\\. \n*Required*: No \n*Type*: String \n*Maximum*: `253` \n*Pattern*: `^([A-Za-z0-9]+[A-Za-z0-9-.]*)*[A-Za-z0-9-]*[A-Za-z0-9]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MountOptions": "The mount options used by DataSync to access the SMB server\\. \n*Required*: No \n*Type*: [MountOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationsmb-mountoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Password": "The password of the user who can mount the share and has the permissions to access files and folders in the SMB share\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `104` \n*Pattern*: `^.{0,104}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServerHostname": "The name of the SMB server\\. This value is the IP address or Domain Name Service \\(DNS\\) name of the SMB server\\. An agent that is installed on\\-premises uses this hostname to mount the SMB server in a network\\. \nThis name must either be DNS\\-compliant or must be an IP version 4 \\(IPv4\\) address\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `^(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9])$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Subdirectory": "The subdirectory in the SMB file system that is used to read data from the SMB source location or write data to the SMB destination\\. The SMB path should be a path that's exported by the SMB server, or a subdirectory of that path\\. The path should be such that it can be mounted by other SMB clients in your network\\. \n `Subdirectory` must be specified with forward slashes\\. For example, `/path/to/folder`\\.\nTo transfer all the data in the folder you specified, DataSync must have permissions to mount the SMB share, as well as to access all the data in that share\\. To ensure this, either make sure that the user name and password specified belongs to the user who can mount the share, and who has the appropriate permissions for all of the files and directories that you want DataSync to access, or use credentials of a member of the Backup Operators group to mount the share\\. Doing either one enables the agent to access the data\\. For the agent to access directories, you must additionally enable all execute access\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\$\\p{Zs}]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The key\\-value pair that represents the tag that you want to add to the location\\. The value can be an empty string\\. We recommend using tags to name your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "User": "The user who can mount the share and has the permissions to access files and folders in the SMB share\\. \nFor information about choosing a user name that ensures sufficient permissions to files, folders, and metadata, see [user](https://docs.aws.amazon.com/datasync/latest/userguide/create-smb-location.html#SMBuser)\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `104` \n*Pattern*: `^[^\\x5B\\x5D\\\\/:;|=,+*?]{1,104}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataSync::LocationSMB MountOptions": { + "Version": "The specific SMB version that you want DataSync to use to mount your SMB share\\. If you don't specify a version, DataSync defaults to `AUTOMATIC`\\. That is, DataSync automatically selects a version based on negotiation with the SMB server\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUTOMATIC | SMB2 | SMB3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataSync::Task": { + "CloudWatchLogGroupArn": "The Amazon Resource Name \\(ARN\\) of the Amazon CloudWatch log group that is used to monitor and log events in the task\\. \nFor more information about how to use CloudWatch Logs with DataSync, see [Monitoring Your Task](https://docs.aws.amazon.com/datasync/latest/userguide/monitor-datasync.html#cloudwatchlogs) in the * AWS DataSync User Guide\\.* \nFor more information about these groups, see [Working with Log Groups and Log Streams](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) in the *Amazon CloudWatch Logs User Guide*\\. \n*Required*: No \n*Type*: String \n*Maximum*: `562` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):logs:[a-z\\-0-9]*:[0-9]{12}:log-group:([^:\\*]*)(:\\*)?$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationLocationArn": "The Amazon Resource Name \\(ARN\\) of an AWS storage resource's location\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Excludes": "A list of filter rules that determines which files to exclude from a task\\. The list should contain a single filter string that consists of the patterns to exclude\\. The patterns are delimited by \"\\|\" \\(that is, a pipe\\), for example, `\"/folder1|/folder2\"`\\. \n \n*Required*: No \n*Type*: List of [FilterRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-filterrule.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Includes": "A list of filter rules that determines which files to include when running a task\\. The pattern contains a single filter string that consists of the patterns to include\\. The patterns are delimited by \"\\|\" \\(that is, a pipe\\), for example, `\"/folder1|/folder2\"`\\. \n*Required*: No \n*Type*: List of [FilterRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-filterrule.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of a task\\. This value is a text reference that is used to identify the task in the console\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[a-zA-Z0-9\\s+=._:@/-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Options": "The set of configuration options that control the behavior of a single execution of the task that occurs when you call `StartTaskExecution`\\. You can configure these options to preserve metadata such as user ID \\(UID\\) and group ID \\(GID\\), file permissions, data integrity verification, and so on\\. \nFor each individual task execution, you can override these options by specifying the `OverrideOptions` before starting the task execution\\. For more information, see the [StartTaskExecution](https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html) operation\\. \n*Required*: No \n*Type*: [Options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-options.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Schedule": "Specifies a schedule used to periodically transfer files from a source to a destination location\\. The schedule should be specified in UTC time\\. For more information, see [Scheduling your task](https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html)\\. \n*Required*: No \n*Type*: [TaskSchedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-taskschedule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceLocationArn": "The Amazon Resource Name \\(ARN\\) of the source location for the task\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The key\\-value pair that represents the tag that you want to add to the resource\\. The value can be an empty string\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataSync::Task FilterRule": { + "FilterType": "The type of filter rule to apply\\. AWS DataSync only supports the SIMPLE\\_PATTERN rule type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `SIMPLE_PATTERN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "A single filter string that consists of the patterns to include or exclude\\. The patterns are delimited by \"\\|\" \\(that is, a pipe\\), for example: `/folder1|/folder2` \n \n*Required*: No \n*Type*: String \n*Maximum*: `409600` \n*Pattern*: `^[^\\x00]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataSync::Task Options": { + "Atime": "A file metadata value that shows the last time that a file was accessed \\(that is, when the file was read or written to\\)\\. If you set `Atime` to `BEST_EFFORT`, AWS DataSync attempts to preserve the original `Atime` attribute on all source files \\(that is, the version before the PREPARING phase\\)\\. However, `Atime`'s behavior is not fully standard across platforms, so AWS DataSync can only do this on a best\\-effort basis\\. \nDefault value: `BEST_EFFORT` \n`BEST_EFFORT`: Attempt to preserve the per\\-file `Atime` value \\(recommended\\)\\. \n`NONE`: Ignore `Atime`\\. \nIf `Atime` is set to `BEST_EFFORT`, `Mtime` must be set to `PRESERVE`\\. \nIf `Atime` is set to `NONE`, `Mtime` must also be `NONE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BEST_EFFORT | NONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BytesPerSecond": "A value that limits the bandwidth used by AWS DataSync\\. For example, if you want AWS DataSync to use a maximum of 1 MB, set this value to `1048576` \\(=1024\\*1024\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Gid": "The group ID \\(GID\\) of the file's owners\\. \nDefault value: `INT_VALUE` \n`INT_VALUE`: Preserve the integer value of the user ID \\(UID\\) and group ID \\(GID\\) \\(recommended\\)\\. \n`NAME`: Currently not supported\\. \n`NONE`: Ignore the UID and GID\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BOTH | INT_VALUE | NAME | NONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogLevel": "A value that determines the type of logs that DataSync publishes to a log stream in the Amazon CloudWatch log group that you provide\\. For more information about providing a log group for DataSync, see [CloudWatchLogGroupArn](https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateTask.html#DataSync-CreateTask-request-CloudWatchLogGroupArn)\\. If set to `OFF`, no logs are published\\. `BASIC` publishes logs on errors for individual files transferred, and `TRANSFER` publishes logs for every file or object that is transferred and integrity checked\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BASIC | OFF | TRANSFER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Mtime": "A value that indicates the last time that a file was modified \\(that is, a file was written to\\) before the PREPARING phase\\. This option is required for cases when you need to run the same task more than one time\\. \nDefault value: `PRESERVE` \n`PRESERVE`: Preserve original `Mtime` \\(recommended\\) \n `NONE`: Ignore `Mtime`\\. \nIf `Mtime` is set to `PRESERVE`, `Atime` must be set to `BEST_EFFORT`\\. \nIf `Mtime` is set to `NONE`, `Atime` must also be set to `NONE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | PRESERVE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OverwriteMode": "A value that determines whether files at the destination should be overwritten or preserved when copying files\\. If set to `NEVER` a destination file will not be replaced by a source file, even if the destination file differs from the source file\\. If you modify files in the destination and you sync the files, you can use this value to protect against overwriting those changes\\. \nSome storage classes have specific behaviors that can affect your S3 storage cost\\. For detailed information, see [Considerations when working with Amazon S3 storage classes in DataSync ](https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes) in the * AWS DataSync User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ALWAYS | NEVER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PosixPermissions": "A value that determines which users or groups can access a file for a specific purpose, such as reading, writing, or execution of the file\\. This option should be set only for Network File System \\(NFS\\), Amazon EFS, and Amazon S3 locations\\. For more information about what metadata is copied by DataSync, see [Metadata Copied by DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied)\\. \nDefault value: `PRESERVE` \n`PRESERVE`: Preserve POSIX\\-style permissions \\(recommended\\)\\. \n`NONE`: Ignore permissions\\. \n AWS DataSync can preserve extant permissions of a source location\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | PRESERVE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreserveDeletedFiles": "A value that specifies whether files in the destination that don't exist in the source file system are preserved\\. This option can affect your storage costs\\. If your task deletes objects, you might incur minimum storage duration charges for certain storage classes\\. For detailed information, see [Considerations when working with Amazon S3 storage classes in DataSync ](https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes) in the * AWS DataSync User Guide*\\. \nDefault value: `PRESERVE` \n`PRESERVE`: Ignore destination files that aren't present in the source \\(recommended\\)\\. \n`REMOVE`: Delete destination files that aren't present in the source\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PRESERVE | REMOVE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreserveDevices": "A value that determines whether AWS DataSync should preserve the metadata of block and character devices in the source file system, and re\\-create the files with that device name and metadata on the destination\\. DataSync does not copy the contents of such devices, only the name and metadata\\. \n AWS DataSync can't sync the actual contents of such devices, because they are nonterminal and don't return an end\\-of\\-file \\(EOF\\) marker\\.\nDefault value: `NONE` \n`NONE`: Ignore special devices \\(recommended\\)\\. \n`PRESERVE`: Preserve character and block device metadata\\. This option isn't currently supported for Amazon EFS\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | PRESERVE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityDescriptorCopyFlags": "A value that determines which components of the SMB security descriptor are copied from source to destination objects\\. \nThis value is only used for transfers between SMB and Amazon FSx for Windows File Server locations, or between two Amazon FSx for Windows File Server locations\\. For more information about how DataSync handles metadata, see [How DataSync Handles Metadata and Special Files](https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html)\\. \nDefault value: `OWNER_DACL` \n `OWNER_DACL`: For each copied object, DataSync copies the following metadata: \n+ Object owner\\.\n+ NTFS discretionary access control lists \\(DACLs\\), which determine whether to grant access to an object\\.\nWhen you use option, DataSync does NOT copy the NTFS system access control lists \\(SACLs\\), which are used by administrators to log attempts to access a secured object\\. \n `OWNER_DACL_SACL`: For each copied object, DataSync copies the following metadata: \n+ Object owner\\.\n+ NTFS discretionary access control lists \\(DACLs\\), which determine whether to grant access to an object\\.\n+ NTFS system access control lists \\(SACLs\\), which are used by administrators to log attempts to access a secured object\\.\nCopying SACLs requires granting additional permissions to the Windows user that DataSync uses to access your SMB location\\. For information about choosing a user that ensures sufficient permissions to files, folders, and metadata, see [user](https://docs.aws.amazon.com/datasync/latest/userguide/create-smb-location.html#SMBuser)\\. \n`NONE`: None of the SMB security descriptor components are copied\\. Destination objects are owned by the user that was provided for accessing the destination location\\. DACLs and SACLs are set based on the destination server\u2019s configuration\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | OWNER_DACL | OWNER_DACL_SACL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TaskQueueing": "A value that determines whether tasks should be queued before executing the tasks\\. If set to `ENABLED`, the tasks will be queued\\. The default is `ENABLED`\\. \nIf you use the same agent to run multiple tasks, you can enable the tasks to run in series\\. For more information, see [Queueing task executions](https://docs.aws.amazon.com/datasync/latest/userguide/run-task.html#queue-task-execution)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransferMode": "A value that determines whether DataSync transfers only the data and metadata that differ between the source and the destination location, or whether DataSync transfers all the content from the source, without comparing it to the destination location\\. \n`CHANGED`: DataSync copies only data or metadata that is new or different from the source location to the destination location\\. \n`ALL`: DataSync copies all source location content to the destination, without comparing it to existing content on the destination\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ALL | CHANGED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Uid": "The user ID \\(UID\\) of the file's owner\\. \nDefault value: `INT_VALUE` \n`INT_VALUE`: Preserve the integer value of the UID and group ID \\(GID\\) \\(recommended\\)\\. \n`NAME`: Currently not supported \n`NONE`: Ignore the UID and GID\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BOTH | INT_VALUE | NAME | NONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VerifyMode": "A value that determines whether a data integrity verification is performed at the end of a task execution after all data and metadata have been transferred\\. For more information, see [Configure task settings](https://docs.aws.amazon.com/datasync/latest/userguide/create-task.html)\\. \nDefault value: `POINT_IN_TIME_CONSISTENT` \n`ONLY_FILES_TRANSFERRED` \\(recommended\\): Perform verification only on files that were transferred\\. \n`POINT_IN_TIME_CONSISTENT`: Scan the entire source and entire destination at the end of the transfer to verify that the source and destination are fully synchronized\\. This option isn't supported when transferring to S3 Glacier or S3 Glacier Deep Archive storage classes\\. \n`NONE`: No additional verification is done at the end of the transfer, but all data transmissions are integrity\\-checked with checksum verification during the transfer\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | ONLY_FILES_TRANSFERRED | POINT_IN_TIME_CONSISTENT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DataSync::Task TaskSchedule": { + "ScheduleExpression": "A cron expression that specifies when AWS DataSync initiates a scheduled transfer from a source to a destination location\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^[a-zA-Z0-9\\ \\_\\*\\?\\,\\|\\^\\-\\/\\#\\s\\(\\)\\+]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Detective::Graph": { + "Tags": "The tag values to assign to the new behavior graph\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Detective::MemberInvitation": { + "DisableEmailNotification": "Whether to send an invitation email to the member account\\. If set to true, the member account does not receive an invitation email\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GraphArn": "The ARN of the behavior graph to invite the account to contribute data to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MemberEmailAddress": "The root user email address of the invited account\\. If the email address provided is not the root user email address for the provided account, the invitation creation fails\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MemberId": "The AWS account identifier of the invited account \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Message": "Customized text to include in the invitation email message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DevOpsGuru::NotificationChannel": { + "Config": "A `NotificationChannelConfig` object that contains information about configured notification channels\\. \n*Required*: Yes \n*Type*: [NotificationChannelConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-notificationchannel-notificationchannelconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::DevOpsGuru::NotificationChannel NotificationChannelConfig": { + "Sns": "Information about a notification channel configured in DevOps Guru to send notifications when insights are created\\. \nIf you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications\\. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account\\. DevOps Guru only supports standard SNS topics\\. For more information, see [Permissions for cross account Amazon SNS topics](https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html)\\. \nIf you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications\\. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account\\. For more information, see Permissions for cross account Amazon SNS topics\\. \nIf you use an Amazon SNS topic that is encrypted by an AWS Key Management Service customer\\-managed key \\(CMK\\), then you must add permissions to the CMK\\. For more information, see [Permissions for AWS KMS\u2013encrypted Amazon SNS topics](https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html)\\. \n*Required*: No \n*Type*: [SnsChannelConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-notificationchannel-snschannelconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::DevOpsGuru::NotificationChannel SnsChannelConfig": { + "TopicArn": "The Amazon Resource Name \\(ARN\\) of an Amazon Simple Notification Service topic\\. \n*Required*: No \n*Type*: String \n*Minimum*: `36` \n*Maximum*: `1024` \n*Pattern*: `^arn:aws[a-z0-9-]*:sns:[a-z0-9-]+:\\d{12}:[^:]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::DevOpsGuru::ResourceCollection": { + "ResourceCollectionFilter": "Information about a filter used to specify which AWS resources are analyzed for anomalous behavior by DevOps Guru\\. \n*Required*: Yes \n*Type*: [ResourceCollectionFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-resourcecollection-resourcecollectionfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DevOpsGuru::ResourceCollection CloudFormationCollectionFilter": { + "StackNames": "An array of CloudFormation stack names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DevOpsGuru::ResourceCollection ResourceCollectionFilter": { + "CloudFormation": "Information about AWS CloudFormation stacks\\. You can use up to 500 stacks to specify which AWS resources in your account to analyze\\. For more information, see [Stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html) in the * AWS CloudFormation User Guide*\\. \n*Required*: No \n*Type*: [CloudFormationCollectionFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-resourcecollection-cloudformationcollectionfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DeviceFarm::DevicePool": { + "Description": "The device pool's description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `16384` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxDevices": "The number of devices that Device Farm can add to your device pool\\. Device Farm adds devices that are available and meet the criteria that you assign for the `rules` parameter\\. Depending on how many devices meet these constraints, your device pool might contain fewer devices than the value for this parameter\\. \nBy specifying the maximum number of devices, you can control the costs that you incur by running tests\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The device pool's name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProjectArn": "The ARN of the project for the device pool\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `32` \n*Maximum*: `1011` \n*Pattern*: `^arn:.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Rules": "The device pool's rules\\. \n*Required*: Yes \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devicefarm-devicepool-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation resource type reference guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DeviceFarm::DevicePool Rule": { + "Attribute": "The rule's stringified attribute\\. For example, specify the value as `\"\\\"abc\\\"\"`\\. \nThe supported operators for each attribute are provided in the following list\\. \nAPPIUM\\_VERSION \nThe Appium version for the test\\. \nSupported operators: `CONTAINS` \nARN \nThe Amazon Resource Name \\(ARN\\) of the device \\(for example, `arn:aws:devicefarm:us-west-2::device:12345Example`\\. \nSupported operators: `EQUALS`, `IN`, `NOT_IN` \nAVAILABILITY \nThe current availability of the device\\. Valid values are AVAILABLE, HIGHLY\\_AVAILABLE, BUSY, or TEMPORARY\\_NOT\\_AVAILABLE\\. \nSupported operators: `EQUALS` \nFLEET\\_TYPE \nThe fleet type\\. Valid values are PUBLIC or PRIVATE\\. \nSupported operators: `EQUALS` \nFORM\\_FACTOR \nThe device form factor\\. Valid values are PHONE or TABLET\\. \nSupported operators: `EQUALS`, `IN`, `NOT_IN` \nINSTANCE\\_ARN \nThe Amazon Resource Name \\(ARN\\) of the device instance\\. \nSupported operators: `IN`, `NOT_IN` \nINSTANCE\\_LABELS \nThe label of the device instance\\. \nSupported operators: `CONTAINS` \nMANUFACTURER \nThe device manufacturer \\(for example, Apple\\)\\. \nSupported operators: `EQUALS`, `IN`, `NOT_IN` \nMODEL \nThe device model, such as Apple iPad Air 2 or Google Pixel\\. \nSupported operators: `CONTAINS`, `EQUALS`, `IN`, `NOT_IN` \nOS\\_VERSION \nThe operating system version \\(for example, 10\\.3\\.2\\)\\. \nSupported operators: `EQUALS`, `GREATER_THAN`, `GREATER_THAN_OR_EQUALS`, `IN`, `LESS_THAN`, `LESS_THAN_OR_EQUALS`, `NOT_IN` \nPLATFORM \nThe device platform\\. Valid values are ANDROID or IOS\\. \nSupported operators: `EQUALS`, `IN`, `NOT_IN` \nREMOTE\\_ACCESS\\_ENABLED \nWhether the device is enabled for remote access\\. Valid values are TRUE or FALSE\\. \nSupported operators: `EQUALS` \nREMOTE\\_DEBUG\\_ENABLED \nWhether the device is enabled for remote debugging\\. Valid values are TRUE or FALSE\\. \nSupported operators: `EQUALS` \nBecause remote debugging is [no longer supported](https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html), this filter is ignored\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `APPIUM_VERSION | ARN | AVAILABILITY | FLEET_TYPE | FORM_FACTOR | INSTANCE_ARN | INSTANCE_LABELS | MANUFACTURER | MODEL | OS_VERSION | PLATFORM | REMOTE_ACCESS_ENABLED | REMOTE_DEBUG_ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Operator": "Specifies how Device Farm compares the rule's attribute to the value\\. For the operators that are supported by each attribute, see the attribute descriptions\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CONTAINS | EQUALS | GREATER_THAN | GREATER_THAN_OR_EQUALS | IN | LESS_THAN | LESS_THAN_OR_EQUALS | NOT_IN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The rule's value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DeviceFarm::InstanceProfile": { + "Description": "The description of the instance profile\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `16384` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExcludeAppPackagesFromCleanup": "An array of strings containing the list of app packages that should not be cleaned up from the device after a test run completes\\. \nThe list of packages is considered only if you set `packageCleanup` to `true`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the instance profile\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PackageCleanup": "When set to `true`, Device Farm removes app packages after a test run\\. The default value is `false` for private devices\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RebootAfterUse": "When set to `true`, Device Farm reboots the instance after a test run\\. The default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation resource type reference guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DeviceFarm::NetworkProfile": { + "Description": "The description of the network profile\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `16384` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DownlinkBandwidthBits": "The data throughput rate in bits per second, as an integer from 0 to 104857600\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DownlinkDelayMs": "Delay time for all packets to destination in milliseconds as an integer from 0 to 2000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DownlinkJitterMs": "Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DownlinkLossPercent": "Proportion of received packets that fail to arrive from 0 to 100 percent\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the network profile\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProjectArn": "The Amazon Resource Name \\(ARN\\) of the specified project\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation resource type reference guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UplinkBandwidthBits": "The data throughput rate in bits per second, as an integer from 0 to 104857600\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UplinkDelayMs": "Delay time for all packets to destination in milliseconds as an integer from 0 to 2000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UplinkJitterMs": "Time variation in the delay of received packets in milliseconds as an integer from 0 to 2000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UplinkLossPercent": "Proportion of transmitted packets that fail to arrive from 0 to 100 percent\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DeviceFarm::Project": { + "DefaultJobTimeoutMinutes": "Sets the execution timeout value \\(in minutes\\) for a project\\. All test runs in this project use the specified execution timeout value unless overridden when scheduling a run\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The project's name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to add to the resource\\. A tag is an array of key\\-value pairs\\. Tag keys can have a maximum character length of 128 characters\\. Tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DeviceFarm::TestGridProject": { + "Description": "A human\\-readable description for the project\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A human\\-readable name for the project\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation resource type reference guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcConfig": "The VPC security groups and subnets that are attached to a project\\. \n*Required*: No \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devicefarm-testgridproject-vpcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DeviceFarm::TestGridProject VpcConfig": { + "SecurityGroupIds": "A list of VPC security group IDs\\. \nA security group allows inbound traffic from network interfaces \\(and their associated instances\\) that are assigned to the same security group\\. See [Security groups](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) in the *Amazon Virtual Private Cloud user guide*\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetIds": "A list of VPC subnet IDs\\. \nA subnet is a range of IP addresses in your VPC\\. You can launch Amazon resources, such as EC2 instances, into a specific subnet\\. When you create a subnet, you specify the IPv4 CIDR block for the subnet, which is a subset of the VPC CIDR block\\. See [VPCs and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html) in the *Amazon Virtual Private Cloud user guide*\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcId": "A list of VPC IDs\\. \nEach VPC is given a unique ID upon creation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DeviceFarm::VPCEConfiguration": { + "ServiceDnsName": "The DNS name that Device Farm will use to map to the private service you want to access\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation resource type reference guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpceConfigurationDescription": "An optional description that provides details about your VPC endpoint configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpceConfigurationName": "The friendly name you give to your VPC endpoint configuration to manage your configurations more easily\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpceServiceName": "The name of the VPC endpoint service that you want to access from Device Farm\\. \nThe name follows the format `com.amazonaws.vpce.us-west-2.vpce-svc-id`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DirectoryService::MicrosoftAD": { + "CreateAlias": "Specifies an alias for a directory and assigns the alias to the directory\\. The alias is used to construct the access URL for the directory, such as `http://.awsapps.com`\\. By default, AWS CloudFormation does not create an alias\\. \nAfter an alias has been created, it cannot be deleted or reused, so this operation should only be used when absolutely necessary\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Edition": "AWS Managed Microsoft AD is available in two editions: `Standard` and `Enterprise`\\. `Enterprise` is the default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Enterprise | Standard` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EnableSso": "Whether to enable single sign\\-on for a Microsoft Active Directory in AWS\\. Single sign\\-on allows users in your directory to access certain AWS services from a computer joined to the directory without having to enter their credentials separately\\. If you don't specify a value, AWS CloudFormation disables single sign\\-on by default\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The fully qualified domain name for the AWS Managed Microsoft AD directory, such as `corp.example.com`\\. This name will resolve inside your VPC only\\. It does not need to be publicly resolvable\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^([a-zA-Z0-9]+[\\\\.-])+([a-zA-Z0-9])+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Password": "The password for the default administrative user named `Admin`\\. \nIf you need to change the password for the administrator account, see the [ResetUserPassword](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_ResetUserPassword.html) API call in the *AWS Directory Service API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `(?=^.{8,64}$)((?=.*\\d)(?=.*[A-Z])(?=.*[a-z])|(?=.*\\d)(?=.*[^A-Za-z0-9\\s])(?=.*[a-z])|(?=.*[^A-Za-z0-9\\s])(?=.*[A-Z])(?=.*[a-z])|(?=.*\\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9\\s]))^.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ShortName": "The NetBIOS name for your domain, such as `CORP`\\. If you don't specify a NetBIOS name, it will default to the first part of your directory DNS\\. For example, `CORP` for the directory DNS `corp.example.com`\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[^\\\\/:*?\"<>|.]+[^\\\\/:*?\"<>|]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpcSettings": "Specifies the VPC settings of the Microsoft AD directory server in AWS\\. \n*Required*: Yes \n*Type*: [VpcSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-microsoftad-vpcsettings.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::DirectoryService::MicrosoftAD VpcSettings": { + "SubnetIds": "The identifiers of the subnets for the directory servers\\. The two subnets must be in different Availability Zones\\. AWS Directory Service specifies a directory server and a DNS server in each of these subnets\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcId": "The identifier of the VPC in which to create the directory\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^(vpc-[0-9a-f]{8}|vpc-[0-9a-f]{17})$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DirectoryService::SimpleAD": { + "CreateAlias": "If set to `true`, specifies an alias for a directory and assigns the alias to the directory\\. The alias is used to construct the access URL for the directory, such as `http://.awsapps.com`\\. By default, this property is set to `false`\\. \nAfter an alias has been created, it cannot be deleted or reused, so this operation should only be used when absolutely necessary\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "A description for the directory\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^([a-zA-Z0-9_])[\\\\a-zA-Z0-9_@#%*+=:?./!\\s-]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EnableSso": "Whether to enable single sign\\-on for a directory\\. If you don't specify a value, AWS CloudFormation disables single sign\\-on by default\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The fully qualified name for the directory, such as `corp.example.com`\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^([a-zA-Z0-9]+[\\\\.-])+([a-zA-Z0-9])+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Password": "The password for the directory administrator\\. The directory creation process creates a directory administrator account with the user name `Administrator` and this password\\. \nIf you need to change the password for the administrator account, see the [ResetUserPassword](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_ResetUserPassword.html) API call in the *AWS Directory Service API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `(?=^.{8,64}$)((?=.*\\d)(?=.*[A-Z])(?=.*[a-z])|(?=.*\\d)(?=.*[^A-Za-z0-9\\s])(?=.*[a-z])|(?=.*[^A-Za-z0-9\\s])(?=.*[A-Z])(?=.*[a-z])|(?=.*\\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9\\s]))^.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ShortName": "The NetBIOS name of the directory, such as `CORP`\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[^\\\\/:*?\"<>|.]+[^\\\\/:*?\"<>|]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Size": "The size of the directory\\. For valid values, see [CreateDirectory](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_CreateDirectory.html) in the *AWS Directory Service API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Large | Small` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpcSettings": "A [DirectoryVpcSettings](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_DirectoryVpcSettings.html) object that contains additional information for the operation\\. \n*Required*: Yes \n*Type*: [VpcSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-simplead-vpcsettings.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::DirectoryService::SimpleAD VpcSettings": { + "SubnetIds": "The identifiers of the subnets for the directory servers\\. The two subnets must be in different Availability Zones\\. AWS Directory Service specifies a directory server and a DNS server in each of these subnets\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcId": "The identifier of the VPC in which to create the directory\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^(vpc-[0-9a-f]{8}|vpc-[0-9a-f]{17})$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DocDB::DBCluster": { + "AvailabilityZones": "A list of Amazon EC2 Availability Zones that instances in the cluster can be created in\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BackupRetentionPeriod": "The number of days for which automated backups are retained\\. You must specify a minimum value of 1\\. \nDefault: 1 \nConstraints: \n+ Must be a value from 1 to 35\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CopyTagsToSnapshot": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DBClusterIdentifier": "The cluster identifier\\. This parameter is stored as a lowercase string\\. \nConstraints: \n+ Must contain from 1 to 63 letters, numbers, or hyphens\\. \n+ The first character must be a letter\\.\n+ Cannot end with a hyphen or contain two consecutive hyphens\\. \nExample: `my-cluster` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DBClusterParameterGroupName": "The name of the cluster parameter group to associate with this cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DBSubnetGroupName": "A subnet group to associate with this cluster\\. \nConstraints: Must match the name of an existing `DBSubnetGroup`\\. Must not be default\\. \nExample: `mySubnetgroup` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DeletionProtection": "Protects clusters from being accidentally deleted\\. If enabled, the cluster cannot be deleted unless it is modified and `DeletionProtection` is disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableCloudwatchLogsExports": "The list of log types that need to be enabled for exporting to Amazon CloudWatch Logs\\. You can enable audit logs or profiler logs\\. For more information, see [Auditing Amazon DocumentDB Events](https://docs.aws.amazon.com/documentdb/latest/developerguide/event-auditing.html) and [Profiling Amazon DocumentDB Operations](https://docs.aws.amazon.com/documentdb/latest/developerguide/profiling.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EngineVersion": "The version number of the database engine to use\\. The `--engine-version` will default to the latest major engine version\\. For production workloads, we recommend explicitly declaring this parameter with the intended major engine version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KmsKeyId": "The AWS KMS key identifier for an encrypted cluster\\. \nThe AWS KMS key identifier is the Amazon Resource Name \\(ARN\\) for the AWS KMS encryption key\\. If you are creating a cluster using the same AWS account that owns the AWS KMS encryption key that is used to encrypt the new cluster, you can use the AWS KMS key alias instead of the ARN for the AWS KMS encryption key\\. \nIf an encryption key is not specified in `KmsKeyId`: \n+ If the `StorageEncrypted` parameter is `true`, Amazon DocumentDB uses your default encryption key\\. \n AWS KMS creates the default encryption key for your AWS account\\. Your AWS account has a different default encryption key for each AWS Regions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MasterUserPassword": "The password for the master database user\\. This password can contain any printable ASCII character except forward slash \\(/\\), double quote \\(\"\\), or the \"at\" symbol \\(@\\)\\. \nConstraints: Must contain from 8 to 100 characters\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MasterUsername": "The name of the master user for the cluster\\. \nConstraints: \n+ Must be from 1 to 63 letters or numbers\\.\n+ The first character must be a letter\\.\n+ Cannot be a reserved word for the chosen database engine\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Port": "Specifies the port that the database engine is listening on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreferredBackupWindow": "The daily time range during which automated backups are created if automated backups are enabled using the `BackupRetentionPeriod` parameter\\. \nThe default is a 30\\-minute window selected at random from an 8\\-hour block of time for each AWS Region\\. \nConstraints: \n+ Must be in the format `hh24:mi-hh24:mi`\\.\n+ Must be in Universal Coordinated Time \\(UTC\\)\\.\n+ Must not conflict with the preferred maintenance window\\. \n+ Must be at least 30 minutes\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreferredMaintenanceWindow": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time \\(UTC\\)\\. \nFormat: `ddd:hh24:mi-ddd:hh24:mi` \nThe default is a 30\\-minute window selected at random from an 8\\-hour block of time for each AWS Region, occurring on a random day of the week\\. \nValid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun \nConstraints: Minimum 30\\-minute window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnapshotIdentifier": "The identifier for the snapshot or cluster snapshot to restore from\\. \nYou can use either the name or the Amazon Resource Name \\(ARN\\) to specify a cluster snapshot\\. However, you can use only the ARN to specify a snapshot\\. \nConstraints: \n+ Must match the identifier of an existing snapshot\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StorageEncrypted": "Specifies whether the cluster is encrypted\\. \n*Required*: Conditional \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags to be assigned to the cluster\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcSecurityGroupIds": "A list of EC2 VPC security groups to associate with this cluster\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DocDB::DBClusterParameterGroup": { + "Description": "The description for the cluster parameter group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Family": "The cluster parameter group family name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the DB cluster parameter group\\. \nConstraints: \n+ Must not match the name of an existing `DBClusterParameterGroup`\\.\nThis value is stored as a lowercase string\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Parameters": "Provides a list of parameters for the cluster parameter group\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to be assigned to the cluster parameter group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DocDB::DBInstance": { + "AutoMinorVersionUpgrade": "This parameter does not apply to Amazon DocumentDB\\. Amazon DocumentDB does not perform minor version upgrades regardless of the value set\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AvailabilityZone": "The Amazon EC2 Availability Zone that the instance is created in\\. \nDefault: A random, system\\-chosen Availability Zone in the endpoint's AWS Region\\. \nExample: `us-east-1d` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DBClusterIdentifier": "The identifier of the cluster that the instance will belong to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DBInstanceClass": "The compute and memory capacity of the instance; for example, `db.m4.large`\\. If you change the class of an instance there can be some interruption in the cluster's service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DBInstanceIdentifier": "The instance identifier\\. This parameter is stored as a lowercase string\\. \nConstraints: \n+ Must contain from 1 to 63 letters, numbers, or hyphens\\.\n+ The first character must be a letter\\.\n+ Cannot end with a hyphen or contain two consecutive hyphens\\.\nExample: `mydbinstance` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PreferredMaintenanceWindow": "The time range each week during which system maintenance can occur, in Universal Coordinated Time \\(UTC\\)\\. \n Format: `ddd:hh24:mi-ddd:hh24:mi` \nThe default is a 30\\-minute window selected at random from an 8\\-hour block of time for each AWS Region, occurring on a random day of the week\\. \nValid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun \nConstraints: Minimum 30\\-minute window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to be assigned to the instance\\. You can assign up to 10 tags to an instance\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DocDB::DBSubnetGroup": { + "DBSubnetGroupDescription": "The description for the subnet group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DBSubnetGroupName": "The name for the subnet group\\. This value is stored as a lowercase string\\. \nConstraints: Must contain no more than 255 letters, numbers, periods, underscores, spaces, or hyphens\\. Must not be default\\. \nExample: `mySubnetgroup` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetIds": "The Amazon EC2 subnet IDs for the subnet group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to be assigned to the subnet group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::GlobalTable": { + "AttributeDefinitions": "A list of attributes that describe the key schema for the global table and indexes\\. \n*Required*: Yes \n*Type*: List of [AttributeDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-attributedefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BillingMode": "Specifies how you are charged for read and write throughput and how you manage capacity\\. Valid values are: \n+ `PAY_PER_REQUEST`\n+ `PROVISIONED`\nAll replicas in your global table will have the same billing mode\\. If you use `PROVISIONED` billing mode, you must provide an auto scaling configuration via the `WriteProvisionedThroughputSettings` property\\. The default value of this property is `PROVISIONED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PAY_PER_REQUEST | PROVISIONED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GlobalSecondaryIndexes": "Global secondary indexes to be created on the global table\\. You can create up to 20 global secondary indexes\\. Each replica in your global table will have the same global secondary index settings\\. You can only create or delete one global secondary index in a single stack operation\\. \nSince the backfilling of an index could take a long time, CloudFormation does not wait for the index to become active\\. If a stack operation rolls back, CloudFormation might not delete an index that has been added\\. In that case, you will need to delete the index manually\\. \n*Required*: No \n*Type*: List of [GlobalSecondaryIndex](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-globalsecondaryindex.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeySchema": "Specifies the attributes that make up the primary key for the table\\. The attributes in the `KeySchema` property must also be defined in the `AttributeDefinitions` property\\. \n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LocalSecondaryIndexes": "Local secondary indexes to be created on the table\\. You can create up to five local secondary indexes\\. Each index is scoped to a given hash key value\\. The size of each hash key can be up to 10 gigabytes\\. Each replica in your global table will have the same local secondary index settings\\. \n*Required*: No \n*Type*: List of [LocalSecondaryIndex](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-localsecondaryindex.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Replicas": "Specifies the list of replicas for your global table\\. The list must contain at least one element, the region where the stack defining the global table is deployed\\. For example, if you define your table in a stack deployed to us\\-east\\-1, you must have an entry in `Replicas` with the region us\\-east\\-1\\. You cannot remove the replica in the stack region\\. \nAdding a replica might take a few minutes for an empty table, or up to several hours for large tables\\. If you want to add or remove a replica, we recommend submitting an `UpdateStack` operation containing only that change\\. \nIf you add or delete a replica during an update, we recommend that you don't update any other resources\\. If your stack fails to update and is rolled back while adding a new replica, you might need to manually delete the replica\\.\nYou can create a new global table with as many replicas as needed\\. You can add or remove replicas after table creation, but you can only add or remove a single replica in each update\\. \n*Required*: Yes \n*Type*: List of [ReplicaSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SSESpecification": "Specifies the settings to enable server\\-side encryption\\. These settings will be applied to all replicas\\. If you plan to use customer\\-managed KMS keys, you must provide a key for each replica using the `ReplicaSpecification.ReplicaSSESpecification` property\\. \n*Required*: No \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-ssespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamSpecification": "Specifies the streams settings on your global table\\. You must provide a value for this property if your global table contains more than one replica\\. You can only change the streams settings if your global table has only one replica\\. \n*Required*: No \n*Type*: [StreamSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-streamspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TableName": "A name for the global table\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID as the table name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TimeToLiveSpecification": "Specifies the time to live \\(TTL\\) settings for the table\\. This setting will be applied to all replicas\\. \n*Required*: No \n*Type*: [TimeToLiveSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-timetolivespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WriteProvisionedThroughputSettings": "Specifies an auto scaling policy for write capacity\\. This policy will be applied to all replicas\\. This setting must be specified if `BillingMode` is set to `PROVISIONED`\\. \n*Required*: No \n*Type*: [WriteProvisionedThroughputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-writeprovisionedthroughputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::GlobalTable AttributeDefinition": { + "AttributeName": "A name for the attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AttributeType": "The data type for the attribute, where: \n+ `S` \\- the attribute is of type String\n+ `N` \\- the attribute is of type Number\n+ `B` \\- the attribute is of type Binary\n*Required*: Yes \n*Type*: String \n*Allowed values*: `B | N | S` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::GlobalTable CapacityAutoScalingSettings": { + "MaxCapacity": "The maximum provisioned capacity units for the global table\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinCapacity": "The minimum provisioned capacity units for the global table\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SeedCapacity": "When switching billing mode from `PAY_PER_REQUEST` to `PROVISIONED`, DynamoDB requires you to specify read and write capacity unit values for the table and for each global secondary index\\. These values will be applied to all replicas\\. The table will use these provisioned values until CloudFormation creates the autoscaling policies you configured in your template\\. CloudFormation cannot determine what capacity the table and its global secondary indexes will require in this time period, since they are application\\-dependent\\. \nIf you want to switch a table's billing mode from `PAY_PER_REQUEST` to `PROVISIONED`, you must specify a value for this property for each autoscaled resource\\. If you specify different values for the same resource in different regions, CloudFormation will use the highest value found in either the `SeedCapacity` or `ReadCapacityUnits` properties\\. For example, if your global secondary index `myGSI` has a `SeedCapacity` of 10 in us\\-east\\-1 and a fixed `ReadCapacityUnits` of 20 in eu\\-west\\-1, CloudFormation will initially set the read capacity for `myGSI` to 20\\. Note that if you disable `ScaleIn` for `myGSI` in us\\-east\\-1, its read capacity units might not be set back to 10\\. \nYou must also specify a value for `SeedCapacity` when you plan to switch a table's billing mode from `PROVISIONED` to `PAY_PER_REQUEST`, because CloudFormation might need to roll back the operation \\(reverting the billing mode to `PROVISIONED`\\) and this cannot succeed without specifying a value for `SeedCapacity`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetTrackingScalingPolicyConfiguration": "Defines a target tracking scaling policy\\. \n*Required*: Yes \n*Type*: [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-targettrackingscalingpolicyconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::GlobalTable ContributorInsightsSpecification": { + "Enabled": "Indicates whether CloudWatch Contributor Insights are to be enabled \\(true\\) or disabled \\(false\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Allowed values*: `DISABLE | ENABLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::GlobalTable GlobalSecondaryIndex": { + "IndexName": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", + "KeySchema": "The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", + "Projection": "Represents attributes that are copied \\(projected\\) from the table into the global secondary index\\. These are in addition to the primary key attributes and index key attributes, which are automatically projected\\. \n*Required*: Yes \n*Type*: [Projection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-projection.html) \n*Update requires*: Updates are not supported\\.", + "WriteProvisionedThroughputSettings": "Defines write capacity settings for the global secondary index\\. You must specify a value for this property if the table's `BillingMode` is `PROVISIONED`\\. All replicas will have the same write capacity settings for this global secondary index\\. \n*Required*: No \n*Type*: [WriteProvisionedThroughputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-writeprovisionedthroughputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::GlobalTable KeySchema": { + "AttributeName": "The name of a key attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KeyType": "The role that this key attribute will assume: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `HASH | RANGE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::DynamoDB::GlobalTable LocalSecondaryIndex": { + "IndexName": "The name of the local secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", + "KeySchema": "The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", + "Projection": "Represents attributes that are copied \\(projected\\) from the table into the local secondary index\\. These are in addition to the primary key attributes and index key attributes, which are automatically projected\\. \n*Required*: Yes \n*Type*: [Projection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-projection.html) \n*Update requires*: Updates are not supported\\." + }, + "AWS::DynamoDB::GlobalTable PointInTimeRecoverySpecification": { + "PointInTimeRecoveryEnabled": "Indicates whether point in time recovery is enabled \\(true\\) or disabled \\(false\\) on the table\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::GlobalTable Projection": { + "NonKeyAttributes": "Represents the non\\-key attribute names which will be projected into the index\\. \nFor local secondary indexes, the total count of `NonKeyAttributes` summed across all of the local secondary indexes, must not exceed 20\\. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProjectionType": "The set of attributes that are projected into the index: \n+ `KEYS_ONLY` \\- Only the index and primary keys are projected into the index\\.\n+ `INCLUDE` \\- In addition to the attributes described in `KEYS_ONLY`, the secondary index will include other non\\-key attributes that you specify\\.\n+ `ALL` \\- All of the table attributes are projected into the index\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ALL | INCLUDE | KEYS_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::GlobalTable ReadProvisionedThroughputSettings": { + "ReadCapacityAutoScalingSettings": "Specifies auto scaling settings for the replica table or global secondary index\\. \n*Required*: No \n*Type*: [CapacityAutoScalingSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-capacityautoscalingsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReadCapacityUnits": "Specifies a fixed read capacity for the replica table or global secondary index\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::GlobalTable ReplicaGlobalSecondaryIndexSpecification": { + "ContributorInsightsSpecification": "Updates the status for contributor insights for a specific table or index\\. CloudWatch Contributor Insights for DynamoDB graphs display the partition key and \\(if applicable\\) sort key of frequently accessed items and frequently throttled items in plaintext\\. If you require the use of AWS Key Management Service \\(KMS\\) to encrypt this table\u2019s partition key and sort key data with an AWS managed key or customer managed key, you should not enable CloudWatch Contributor Insights for DynamoDB for this table\\. \n*Required*: No \n*Type*: [ContributorInsightsSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-contributorinsightsspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IndexName": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ReadProvisionedThroughputSettings": "Allows you to specify the read capacity settings for a replica global secondary index when the `BillingMode` is set to `PROVISIONED`\\. \n*Required*: No \n*Type*: [ReadProvisionedThroughputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-readprovisionedthroughputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::GlobalTable ReplicaSSESpecification": { + "KMSMasterKeyId": "The AWS KMS key that should be used for the AWS KMS encryption\\. To specify a key, use its key ID, Amazon Resource Name \\(ARN\\), alias name, or alias ARN\\. Note that you should only provide this parameter if the key is different from the default DynamoDB key `alias/aws/dynamodb`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::GlobalTable ReplicaSpecification": { + "ContributorInsightsSpecification": "The settings used to enable or disable CloudWatch Contributor Insights for the specified replica\\. When not specified, defaults to contributor insights disabled for the replica\\. \n*Required*: No \n*Type*: [ContributorInsightsSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-contributorinsightsspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GlobalSecondaryIndexes": "Defines additional settings for the global secondary indexes of this replica\\. \n*Required*: No \n*Type*: List of [ReplicaGlobalSecondaryIndexSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaglobalsecondaryindexspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PointInTimeRecoverySpecification": "The settings used to enable point in time recovery\\. When not specified, defaults to point in time recovery disabled for the replica\\. \n*Required*: No \n*Type*: [PointInTimeRecoverySpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-pointintimerecoveryspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReadProvisionedThroughputSettings": "Defines read capacity settings for the replica table\\. \n*Required*: No \n*Type*: [ReadProvisionedThroughputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-readprovisionedthroughputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Region": "The region in which this replica exists\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SSESpecification": "Allows you to specify a customer\\-managed key for the replica\\. When using customer\\-managed keys for server\\-side encryption, this property must have a value in all replicas\\. \n*Required*: No \n*Type*: [ReplicaSSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicassespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TableClass": "The table class of the specified table\\. Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `STANDARD | STANDARD_INFREQUENT_ACCESS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this replica\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::GlobalTable SSESpecification": { + "SSEEnabled": "Indicates whether server\\-side encryption is performed using an AWS managed key or an AWS owned key\\. If disabled \\(false\\) or not specified, server\\-side encryption uses an AWS owned key\\. If enabled \\(true\\), the server\\-side encryption type is set to KMS and an AWS managed key is used \\(AWS KMS charges apply\\)\\. If you choose to use KMS encryption, you can also use customer managed KMS keys by specifying them in the `ReplicaSpecification.SSESpecification` object\\. You cannot mix AWS managed and customer managed KMS keys\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SSEType": "Server\\-side encryption type\\. The only supported value is: \n+ `KMS` \\- Server\\-side encryption that uses AWS Key Management Service\\. The key is stored in your account and is managed by AWS KMS \\(AWS KMS charges apply\\)\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `AES256 | KMS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::GlobalTable StreamSpecification": { + "StreamViewType": "When an item in the table is modified, `StreamViewType` determines what information is written to the stream for this table\\. Valid values for `StreamViewType` are: \n+ `KEYS_ONLY` \\- Only the key attributes of the modified item are written to the stream\\.\n+ `NEW_IMAGE` \\- The entire item, as it appears after it was modified, is written to the stream\\.\n+ `OLD_IMAGE` \\- The entire item, as it appeared before it was modified, is written to the stream\\.\n+ `NEW_AND_OLD_IMAGES` \\- Both the new and the old item images of the item are written to the stream\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `KEYS_ONLY | NEW_AND_OLD_IMAGES | NEW_IMAGE | OLD_IMAGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::GlobalTable TargetTrackingScalingPolicyConfiguration": { + "DisableScaleIn": "Indicates whether scale in by the target tracking scaling policy is disabled\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScaleInCooldown": "The amount of time, in seconds, after a scale\\-in activity completes before another scale\\-in activity can start\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScaleOutCooldown": "The amount of time, in seconds, after a scale\\-out activity completes before another scale\\-out activity can start\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetValue": "Defines a target value for the scaling policy\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::GlobalTable TimeToLiveSpecification": { + "AttributeName": "The name of the attribute used to store the expiration time for items in the table\\. \nCurrently, you cannot directly change the attribute name used to evaluate time to live\\. In order to do so, you must first disable time to live, and then re\\-enable it with the new attribute name\\. It can take up to one hour for changes to time to live to take effect\\. If you attempt to modify time to live within that time window, your stack operation might be delayed\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Indicates whether TTL is to be enabled \\(true\\) or disabled \\(false\\) on the table\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::GlobalTable WriteProvisionedThroughputSettings": { + "WriteCapacityAutoScalingSettings": "Specifies auto scaling settings for the replica table or global secondary index\\. \n*Required*: No \n*Type*: [CapacityAutoScalingSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-capacityautoscalingsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::Table": { + "AttributeDefinitions": "A list of attributes that describe the key schema for the table and indexes\\. \nThis property is required to create a DynamoDB table\\. \nUpdate requires: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)\\. Replacement if you edit an existing AttributeDefinition\\. \n*Required*: Conditional \n*Type*: List of [AttributeDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "BillingMode": "Specify how you are charged for read and write throughput and how you manage capacity\\. \nValid values include: \n+ `PROVISIONED` \\- We recommend using `PROVISIONED` for predictable workloads\\. `PROVISIONED` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual)\\.\n+ `PAY_PER_REQUEST` \\- We recommend using `PAY_PER_REQUEST` for unpredictable workloads\\. `PAY_PER_REQUEST` sets the billing mode to [On\\-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand)\\.\nIf not specified, the default is `PROVISIONED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PAY_PER_REQUEST | PROVISIONED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContributorInsightsSpecification": "The settings used to enable or disable CloudWatch Contributor Insights for the specified table\\. \n*Required*: No \n*Type*: [ContributorInsightsSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-contributorinsightsspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GlobalSecondaryIndexes": "Global secondary indexes to be created on the table\\. You can create up to 20 global secondary indexes\\. \nIf you update a table to include a new global secondary index, AWS CloudFormation initiates the index creation and then proceeds with the stack update\\. AWS CloudFormation doesn't wait for the index to complete creation because the backfilling phase can take a long time, depending on the size of the table\\. You can't use the index or update the table until the index's status is `ACTIVE`\\. You can track its status by using the DynamoDB [DescribeTable](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/describe-table.html) command\\. \nIf you add or delete an index during an update, we recommend that you don't update any other resources\\. If your stack fails to update and is rolled back while adding a new index, you must manually delete the index\\. \nUpdates are not supported\\. The following are exceptions: \n+ If you update either the contributor insights specification or the provisioned throughput values of global secondary indexes, you can update the table without interruption\\.\n+ You can delete or add one global secondary index without interruption\\. If you do both in the same update \\(for example, by changing the index's logical ID\\), the update fails\\.\n*Required*: No \n*Type*: List of [GlobalSecondaryIndex](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeySchema": "Specifies the attributes that make up the primary key for the table\\. The attributes in the `KeySchema` property must also be defined in the `AttributeDefinitions` property\\. \n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KinesisStreamSpecification": "The Kinesis Data Streams configuration for the specified table\\. \n*Required*: No \n*Type*: [KinesisStreamSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-kinesisstreamspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LocalSecondaryIndexes": "Local secondary indexes to be created on the table\\. You can create up to 5 local secondary indexes\\. Each index is scoped to a given hash key value\\. The size of each hash key can be up to 10 gigabytes\\. \n*Required*: No \n*Type*: List of [LocalSecondaryIndex](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-lsi.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PointInTimeRecoverySpecification": "The settings used to enable point in time recovery\\. \n*Required*: No \n*Type*: [PointInTimeRecoverySpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-pointintimerecoveryspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProvisionedThroughput": "Throughput for the specified table, which consists of values for `ReadCapacityUnits` and `WriteCapacityUnits`\\. For more information about the contents of a provisioned throughput structure, see [Amazon DynamoDB Table ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html)\\. \nIf you set `BillingMode` as `PROVISIONED`, you must specify this property\\. If you set `BillingMode` as `PAY_PER_REQUEST`, you cannot specify this property\\. \n*Required*: Conditional \n*Type*: [ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SSESpecification": "Specifies the settings to enable server\\-side encryption\\. \n*Required*: No \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "StreamSpecification": "The settings for the DynamoDB table stream, which capture changes to items stored in the table\\. \n*Required*: No \n*Type*: [StreamSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-streamspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TableClass": "The table class of the new table\\. Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `STANDARD | STANDARD_INFREQUENT_ACCESS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TableName": "A name for the table\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the table name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeToLiveSpecification": "Specifies the Time to Live \\(TTL\\) settings for the table\\. \nFor detailed information about the limits in DynamoDB, see [Limits in Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the Amazon DynamoDB Developer Guide\\. \n*Required*: No \n*Type*: [TimeToLiveSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-timetolivespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::Table AttributeDefinition": { + "AttributeName": "A name for the attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AttributeType": "The data type for the attribute, where: \n+ `S` \\- the attribute is of type String\n+ `N` \\- the attribute is of type Number\n+ `B` \\- the attribute is of type Binary\n*Required*: Yes \n*Type*: String \n*Allowed values*: `B | N | S` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::Table ContributorInsightsSpecification": { + "Enabled": "Indicates whether CloudWatch Contributor Insights are to be enabled \\(true\\) or disabled \\(false\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Allowed values*: `DISABLE | ENABLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::Table GlobalSecondaryIndex": { + "ContributorInsightsSpecification": "The settings used to enable or disable CloudWatch Contributor Insights for the specified global secondary index\\. \n*Required*: No \n*Type*: [ContributorInsightsSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-contributorinsightsspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IndexName": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", + "KeySchema": "The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", + "Projection": "Represents attributes that are copied \\(projected\\) from the table into the global secondary index\\. These are in addition to the primary key attributes and index key attributes, which are automatically projected\\. \n*Required*: Yes \n*Type*: [Projection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-projectionobject.html) \n*Update requires*: Updates are not supported\\.", + "ProvisionedThroughput": "Represents the provisioned throughput settings for the specified global secondary index\\. \nFor current minimum and maximum provisioned throughput values, see [Service, Account, and Table Quotas](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the *Amazon DynamoDB Developer Guide*\\. \n*Required*: No \n*Type*: [ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::Table KeySchema": { + "AttributeName": "The name of a key attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeyType": "The role that this key attribute will assume: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `HASH | RANGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::Table KinesisStreamSpecification": { + "StreamArn": "The ARN for a specific Kinesis data stream\\. \nLength Constraints: Minimum length of 37\\. Maximum length of 1024\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `37` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::Table LocalSecondaryIndex": { + "IndexName": "The name of the local secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", + "KeySchema": "The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", + "Projection": "Represents attributes that are copied \\(projected\\) from the table into the local secondary index\\. These are in addition to the primary key attributes and index key attributes, which are automatically projected\\. \n*Required*: Yes \n*Type*: [Projection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-projectionobject.html) \n*Update requires*: Updates are not supported\\." + }, + "AWS::DynamoDB::Table PointInTimeRecoverySpecification": { + "PointInTimeRecoveryEnabled": "Indicates whether point in time recovery is enabled \\(true\\) or disabled \\(false\\) on the table\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::Table Projection": { + "NonKeyAttributes": "Represents the non\\-key attribute names which will be projected into the index\\. \nFor local secondary indexes, the total count of `NonKeyAttributes` summed across all of the local secondary indexes, must not exceed 20\\. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProjectionType": "The set of attributes that are projected into the index: \n+ `KEYS_ONLY` \\- Only the index and primary keys are projected into the index\\.\n+ `INCLUDE` \\- In addition to the attributes described in `KEYS_ONLY`, the secondary index will include other non\\-key attributes that you specify\\.\n+ `ALL` \\- All of the table attributes are projected into the index\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ALL | INCLUDE | KEYS_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::Table ProvisionedThroughput": { + "ReadCapacityUnits": "The maximum number of strongly consistent reads consumed per second before DynamoDB returns a `ThrottlingException`\\. For more information, see [Specifying Read and Write Requirements](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput) in the *Amazon DynamoDB Developer Guide*\\. \nIf read/write capacity mode is `PAY_PER_REQUEST` the value is set to 0\\. \n*Required*: Yes \n*Type*: Long \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WriteCapacityUnits": "The maximum number of writes consumed per second before DynamoDB returns a `ThrottlingException`\\. For more information, see [Specifying Read and Write Requirements](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput) in the *Amazon DynamoDB Developer Guide*\\. \nIf read/write capacity mode is `PAY_PER_REQUEST` the value is set to 0\\. \n*Required*: Yes \n*Type*: Long \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::Table SSESpecification": { + "KMSMasterKeyId": "The AWS KMS key that should be used for the AWS KMS encryption\\. To specify a key, use its key ID, Amazon Resource Name \\(ARN\\), alias name, or alias ARN\\. Note that you should only provide this parameter if the key is different from the default DynamoDB key `alias/aws/dynamodb`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SSEEnabled": "Indicates whether server\\-side encryption is done using an AWS managed key or an AWS owned key\\. If enabled \\(true\\), server\\-side encryption type is set to `KMS` and an AWS managed key is used \\(AWS KMS charges apply\\)\\. If disabled \\(false\\) or not specified, server\\-side encryption is set to AWS owned key\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SSEType": "Server\\-side encryption type\\. The only supported value is: \n+ `KMS` \\- Server\\-side encryption that uses AWS Key Management Service\\. The key is stored in your account and is managed by AWS KMS \\(AWS KMS charges apply\\)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::Table StreamSpecification": { + "StreamViewType": "When an item in the table is modified, `StreamViewType` determines what information is written to the stream for this table\\. Valid values for `StreamViewType` are: \n+ `KEYS_ONLY` \\- Only the key attributes of the modified item are written to the stream\\.\n+ `NEW_IMAGE` \\- The entire item, as it appears after it was modified, is written to the stream\\.\n+ `OLD_IMAGE` \\- The entire item, as it appeared before it was modified, is written to the stream\\.\n+ `NEW_AND_OLD_IMAGES` \\- Both the new and the old item images of the item are written to the stream\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `KEYS_ONLY | NEW_AND_OLD_IMAGES | NEW_IMAGE | OLD_IMAGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::DynamoDB::Table TimeToLiveSpecification": { + "AttributeName": "The name of the TTL attribute used to store the expiration time for items in the table\\. \nTo update this property, you must first disable TTL then enable TTL with the new attribute name\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Indicates whether TTL is to be enabled \\(true\\) or disabled \\(false\\) on the table\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::CapacityReservation": { + "AvailabilityZone": "The Availability Zone in which to create the Capacity Reservation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EbsOptimized": "Indicates whether the Capacity Reservation supports EBS\\-optimized instances\\. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance\\. This optimization isn't available with all instance types\\. Additional usage charges apply when using an EBS\\- optimized instance\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EndDate": "The date and time at which the Capacity Reservation expires\\. When a Capacity Reservation expires, the reserved capacity is released and you can no longer launch instances into it\\. The Capacity Reservation's state changes to `expired` when it reaches its end date and time\\. \nYou must provide an `EndDate` value if `EndDateType` is `limited`\\. Omit `EndDate` if `EndDateType` is `unlimited`\\. \nIf the `EndDateType` is `limited`, the Capacity Reservation is cancelled within an hour from the specified time\\. For example, if you specify 5/31/2019, 13:30:55, the Capacity Reservation is guaranteed to end between 13:30:55 and 14:30:55 on 5/31/2019\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EndDateType": "Indicates the way in which the Capacity Reservation ends\\. A Capacity Reservation can have one of the following end types: \n+ `unlimited` \\- The Capacity Reservation remains active until you explicitly cancel it\\. Do not provide an `EndDate` if the `EndDateType` is `unlimited`\\.\n+ `limited` \\- The Capacity Reservation expires automatically at a specified date and time\\. You must provide an `EndDate` value if the `EndDateType` value is `limited`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `limited | unlimited` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EphemeralStorage": "*Deprecated\\.* \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceCount": "The number of instances for which to reserve capacity\\. \nValid range: 1 \\- 1000 \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceMatchCriteria": "Indicates the type of instance launches that the Capacity Reservation accepts\\. The options include: \n+ `open` \\- The Capacity Reservation automatically matches all instances that have matching attributes \\(instance type, platform, and Availability Zone\\)\\. Instances that have matching attributes run in the Capacity Reservation automatically without specifying any additional parameters\\.\n+ `targeted` \\- The Capacity Reservation only accepts instances that have matching attributes \\(instance type, platform, and Availability Zone\\), and explicitly target the Capacity Reservation\\. This ensures that only permitted instances can use the reserved capacity\\. \nDefault: `open` \n*Required*: No \n*Type*: String \n*Allowed values*: `open | targeted` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstancePlatform": "The type of operating system for which to reserve capacity\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Linux with SQL Server Enterprise | Linux with SQL Server Standard | Linux with SQL Server Web | Linux/UNIX | Red Hat Enterprise Linux | RHEL with HA | RHEL with HA and SQL Server Enterprise | RHEL with HA and SQL Server Standard | RHEL with SQL Server Enterprise | RHEL with SQL Server Standard | RHEL with SQL Server Web | SUSE Linux | Windows | Windows with SQL Server | Windows with SQL Server Enterprise | Windows with SQL Server Standard | Windows with SQL Server Web` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceType": "The instance type for which to reserve capacity\\. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OutPostArn": "The Amazon Resource Name \\(ARN\\) of the Outpost on which to create the Capacity Reservation\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:outpost/op-[a-f0-9]{17}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PlacementGroupArn": "The Amazon Resource Name \\(ARN\\) of the cluster placement group in which to create the Capacity Reservation\\. For more information, see [ Capacity Reservations for cluster placement groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cr-cpg.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws([a-z-]+)?:ec2:[a-z\\d-]+:\\d{12}:placement-group/([^\\s].+[^\\s]){1,255}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TagSpecifications": "The tags to apply to the Capacity Reservation during launch\\. \n*Required*: No \n*Type*: List of [TagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservation-tagspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tenancy": "Indicates the tenancy of the Capacity Reservation\\. A Capacity Reservation can have one of the following tenancy settings: \n+ `default` \\- The Capacity Reservation is created on hardware that is shared with other AWS accounts\\.\n+ `dedicated` \\- The Capacity Reservation is created on single\\-tenant hardware that is dedicated to a single AWS account\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `dedicated | default` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::CapacityReservation TagSpecification": { + "ResourceType": "The type of resource to tag\\. Specify `capacity-reservation`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `capacity-reservation | capacity-reservation-fleet | carrier-gateway | client-vpn-endpoint | coip-pool | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | instance-event-window | internet-gateway | ipam | ipam-pool | ipam-resource-discovery | ipam-resource-discovery-association | ipam-scope | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | launch-template | local-gateway | local-gateway-route-table | local-gateway-route-table-virtual-interface-group-association | local-gateway-route-table-vpc-association | local-gateway-virtual-interface | local-gateway-virtual-interface-group | natgateway | network-acl | network-insights-access-scope | network-insights-access-scope-analysis | network-insights-analysis | network-insights-path | network-interface | placement-group | prefix-list | replace-root-volume-task | reserved-instances | route-server | route-server-endpoint | route-server-peer | route-table | security-group | security-group-rule | snapshot | spot-fleet-request | spot-instances-request | subnet | subnet-cidr-reservation | traffic-mirror-filter | traffic-mirror-filter-rule | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-policy-table | transit-gateway-route-table | transit-gateway-route-table-announcement | verified-access-endpoint | verified-access-group | verified-access-instance | verified-access-policy | verified-access-trust-provider | volume | vpc | vpc-block-public-access-exclusion | vpc-endpoint | vpc-endpoint-connection | vpc-endpoint-connection-device-type | vpc-endpoint-service | vpc-endpoint-service-permission | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-connection-device-type | vpn-gateway` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags to apply to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::CapacityReservationFleet": { + "AllocationStrategy": "The strategy used by the Capacity Reservation Fleet to determine which of the specified instance types to use\\. Currently, only the `prioritized` allocation strategy is supported\\. For more information, see [ Allocation strategy](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#allocation-strategy) in the Amazon EC2 User Guide\\. \nValid values: `prioritized` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EndDate": "The date and time at which the Capacity Reservation Fleet expires\\. When the Capacity Reservation Fleet expires, its state changes to `expired` and all of the Capacity Reservations in the Fleet expire\\. \nThe Capacity Reservation Fleet expires within an hour after the specified time\\. For example, if you specify `5/31/2019`, `13:30:55`, the Capacity Reservation Fleet is guaranteed to expire between `13:30:55` and `14:30:55` on `5/31/2019`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceMatchCriteria": "Indicates the type of instance launches that the Capacity Reservation Fleet accepts\\. All Capacity Reservations in the Fleet inherit this instance matching criteria\\. \nCurrently, Capacity Reservation Fleets support `open` instance matching criteria only\\. This means that instances that have matching attributes \\(instance type, platform, and Availability Zone\\) run in the Capacity Reservations automatically\\. Instances do not need to explicitly target a Capacity Reservation Fleet to use its reserved capacity\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `open` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceTypeSpecifications": "Information about the instance types for which to reserve the capacity\\. \n*Required*: No \n*Type*: List of [InstanceTypeSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-instancetypespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NoRemoveEndDate": "Property description not available\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RemoveEndDate": "Property description not available\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TagSpecifications": "The tags to assign to the Capacity Reservation Fleet\\. The tags are automatically assigned to the Capacity Reservations in the Fleet\\. \n*Required*: No \n*Type*: List of [TagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-tagspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tenancy": "Indicates the tenancy of the Capacity Reservation Fleet\\. All Capacity Reservations in the Fleet inherit this tenancy\\. The Capacity Reservation Fleet can have one of the following tenancy settings: \n+ `default` \\- The Capacity Reservation Fleet is created on hardware that is shared with other AWS accounts\\.\n+ `dedicated` \\- The Capacity Reservations are created on single\\-tenant hardware that is dedicated to a single AWS account\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `default` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TotalTargetCapacity": "The total number of capacity units to be reserved by the Capacity Reservation Fleet\\. This value, together with the instance type weights that you assign to each instance type used by the Fleet determine the number of instances for which the Fleet reserves capacity\\. Both values are based on units that make sense for your workload\\. For more information, see [ Total target capacity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity) in the Amazon EC2 User Guide\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::CapacityReservationFleet InstanceTypeSpecification": { + "AvailabilityZone": "The Availability Zone in which the Capacity Reservation Fleet reserves the capacity\\. A Capacity Reservation Fleet can't span Availability Zones\\. All instance type specifications that you specify for the Fleet must use the same Availability Zone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AvailabilityZoneId": "The ID of the Availability Zone in which the Capacity Reservation Fleet reserves the capacity\\. A Capacity Reservation Fleet can't span Availability Zones\\. All instance type specifications that you specify for the Fleet must use the same Availability Zone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EbsOptimized": "Indicates whether the Capacity Reservation Fleet supports EBS\\-optimized instances types\\. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance\\. This optimization isn't available with all instance types\\. Additional usage charges apply when using EBS\\-optimized instance types\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstancePlatform": "The type of operating system for which the Capacity Reservation Fleet reserves capacity\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Linux with SQL Server Enterprise | Linux with SQL Server Standard | Linux with SQL Server Web | Linux/UNIX | Red Hat Enterprise Linux | RHEL with HA | RHEL with HA and SQL Server Enterprise | RHEL with HA and SQL Server Standard | RHEL with SQL Server Enterprise | RHEL with SQL Server Standard | RHEL with SQL Server Web | SUSE Linux | Windows | Windows with SQL Server | Windows with SQL Server Enterprise | Windows with SQL Server Standard | Windows with SQL Server Web` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceType": "The instance type for which the Capacity Reservation Fleet reserves capacity\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | mac1.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6ad.12xlarge | r6ad.16xlarge | r6ad.24xlarge | r6ad.2xlarge | r6ad.32xlarge | r6ad.48xlarge | r6ad.4xlarge | r6ad.8xlarge | r6ad.large | r6ad.metal | r6ad.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Priority": "The priority to assign to the instance type\\. This value is used to determine which of the instance types specified for the Fleet should be prioritized for use\\. A lower value indicates a high priority\\. For more information, see [Instance type priority](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#instance-priority) in the Amazon EC2 User Guide\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Weight": "The number of capacity units provided by the specified instance type\\. This value, together with the total target capacity that you specify for the Fleet determine the number of instances for which the Fleet reserves capacity\\. Both values are based on units that make sense for your workload\\. For more information, see [Total target capacity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity) in the Amazon EC2 User Guide\\. \nValid Range: Minimum value of `0.001`\\. Maximum value of `99.999`\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::CapacityReservationFleet TagSpecification": { + "ResourceType": "The type of resource to tag on creation\\. Specify `capacity-reservation-fleet`\\. \nTo tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags to apply to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::CarrierGateway": { + "Tags": "The tags assigned to the carrier gateway\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcId": "The ID of the VPC associated with the carrier gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::ClientVpnAuthorizationRule": { + "AccessGroupId": "The ID of the group to grant access to, for example, the Active Directory group or identity provider \\(IdP\\) group\\. Required if `AuthorizeAllGroups` is `false` or not specified\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AuthorizeAllGroups": "Indicates whether to grant access to all clients\\. Specify `true` to grant all clients who successfully establish a VPN connection access to the network\\. Must be set to `true` if `AccessGroupId` is not specified\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ClientVpnEndpointId": "The ID of the Client VPN endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "A brief description of the authorization rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TargetNetworkCidr": "The IPv4 address range, in CIDR notation, of the network for which access is being authorized\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::ClientVpnEndpoint": { + "AuthenticationOptions": "Information about the authentication method to be used to authenticate clients\\. \n*Required*: Yes \n*Type*: List of [ClientAuthenticationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientauthenticationrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ClientCidrBlock": "The IPv4 address range, in CIDR notation, from which to assign client IP addresses\\. The address range cannot overlap with the local CIDR of the VPC in which the associated subnet is located, or the routes that you add manually\\. The address range cannot be changed after the Client VPN endpoint has been created\\. Client CIDR range must have a size of at least /22 and must not be greater than /12\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ClientConnectOptions": "The options for managing connection authorization for new client connections\\. \n*Required*: No \n*Type*: [ClientConnectOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientconnectoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientLoginBannerOptions": "Options for enabling a customizable text banner that will be displayed on AWS provided clients when a VPN session is established\\. \n*Required*: No \n*Type*: [ClientLoginBannerOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientloginbanneroptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectionLogOptions": "Information about the client connection logging options\\. \nIf you enable client connection logging, data about client connections is sent to a Cloudwatch Logs log stream\\. The following information is logged: \n+ Client connection requests\n+ Client connection results \\(successful and unsuccessful\\)\n+ Reasons for unsuccessful client connection requests\n+ Client connection termination time\n*Required*: Yes \n*Type*: [ConnectionLogOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-connectionlogoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A brief description of the Client VPN endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DnsServers": "Information about the DNS servers to be used for DNS resolution\\. A Client VPN endpoint can have up to two DNS servers\\. If no DNS server is specified, the DNS address configured on the device is used for the DNS server\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroupIds": "The IDs of one or more security groups to apply to the target network\\. You must also specify the ID of the VPC that contains the security groups\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SelfServicePortal": "Specify whether to enable the self\\-service portal for the Client VPN endpoint\\. \nDefault Value: `enabled` \n*Required*: No \n*Type*: String \n*Allowed values*: `disabled | enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServerCertificateArn": "The ARN of the server certificate\\. For more information, see the [AWS Certificate Manager User Guide](https://docs.aws.amazon.com/acm/latest/userguide/)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SessionTimeoutHours": "The maximum VPN session duration time in hours\\. \nValid values: `8 | 10 | 12 | 24` \nDefault value: `24` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SplitTunnel": "Indicates whether split\\-tunnel is enabled on the AWS Client VPN endpoint\\. \nBy default, split\\-tunnel on a VPN endpoint is disabled\\. \nFor information about split\\-tunnel VPN endpoints, see [Split\\-tunnel AWS Client VPN endpoint](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html) in the * AWS Client VPN Administrator Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TagSpecifications": "The tags to apply to the Client VPN endpoint during creation\\. \n*Required*: No \n*Type*: List of [TagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-tagspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TransportProtocol": "The transport protocol to be used by the VPN session\\. \nDefault value: `udp` \n*Required*: No \n*Type*: String \n*Allowed values*: `tcp | udp` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpcId": "The ID of the VPC to associate with the Client VPN endpoint\\. If no security group IDs are specified in the request, the default security group for the VPC is applied\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpnPort": "The port number to assign to the Client VPN endpoint for TCP and UDP traffic\\. \nValid Values: `443` \\| `1194` \nDefault Value: `443` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::ClientVpnEndpoint CertificateAuthenticationRequest": { + "ClientRootCertificateChainArn": "The ARN of the client certificate\\. The certificate must be signed by a certificate authority \\(CA\\) and it must be provisioned in AWS Certificate Manager \\(ACM\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::ClientVpnEndpoint ClientAuthenticationRequest": { + "ActiveDirectory": "Information about the Active Directory to be used, if applicable\\. You must provide this information if **Type** is `directory-service-authentication`\\. \n*Required*: No \n*Type*: [DirectoryServiceAuthenticationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-directoryserviceauthenticationrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FederatedAuthentication": "Information about the IAM SAML identity provider, if applicable\\. \n*Required*: No \n*Type*: [FederatedAuthenticationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-federatedauthenticationrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MutualAuthentication": "Information about the authentication certificates to be used, if applicable\\. You must provide this information if **Type** is `certificate-authentication`\\. \n*Required*: No \n*Type*: [CertificateAuthenticationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-certificateauthenticationrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of client authentication to be used\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `certificate-authentication | directory-service-authentication | federated-authentication` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::ClientVpnEndpoint ClientConnectOptions": { + "Enabled": "Indicates whether client connect options are enabled\\. The default is `false` \\(not enabled\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LambdaFunctionArn": "The Amazon Resource Name \\(ARN\\) of the AWS Lambda function used for connection authorization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::ClientVpnEndpoint ClientLoginBannerOptions": { + "BannerText": "Customizable text that will be displayed in a banner on AWS provided clients when a VPN session is established\\. UTF\\-8 encoded characters only\\. Maximum of 1400 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Enable or disable a customizable text banner that will be displayed on AWS provided clients when a VPN session is established\\. \nValid values: `true | false` \nDefault value: `false` \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::ClientVpnEndpoint ConnectionLogOptions": { + "CloudwatchLogGroup": "The name of the CloudWatch Logs log group\\. Required if connection logging is enabled\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CloudwatchLogStream": "The name of the CloudWatch Logs log stream to which the connection data is published\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Indicates whether connection logging is enabled\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::ClientVpnEndpoint DirectoryServiceAuthenticationRequest": { + "DirectoryId": "The ID of the Active Directory to be used for authentication\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::ClientVpnEndpoint FederatedAuthenticationRequest": { + "SAMLProviderArn": "The Amazon Resource Name \\(ARN\\) of the IAM SAML identity provider\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SelfServiceSAMLProviderArn": "The Amazon Resource Name \\(ARN\\) of the IAM SAML identity provider for the self\\-service portal\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::ClientVpnEndpoint TagSpecification": { + "ResourceType": "The type of resource to tag\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `capacity-reservation | capacity-reservation-fleet | carrier-gateway | client-vpn-endpoint | coip-pool | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | instance-event-window | internet-gateway | ipam | ipam-pool | ipam-resource-discovery | ipam-resource-discovery-association | ipam-scope | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | launch-template | local-gateway | local-gateway-route-table | local-gateway-route-table-virtual-interface-group-association | local-gateway-route-table-vpc-association | local-gateway-virtual-interface | local-gateway-virtual-interface-group | natgateway | network-acl | network-insights-access-scope | network-insights-access-scope-analysis | network-insights-analysis | network-insights-path | network-interface | placement-group | prefix-list | replace-root-volume-task | reserved-instances | route-server | route-server-endpoint | route-server-peer | route-table | security-group | security-group-rule | snapshot | spot-fleet-request | spot-instances-request | subnet | subnet-cidr-reservation | traffic-mirror-filter | traffic-mirror-filter-rule | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-policy-table | transit-gateway-route-table | transit-gateway-route-table-announcement | verified-access-endpoint | verified-access-group | verified-access-instance | verified-access-policy | verified-access-trust-provider | volume | vpc | vpc-block-public-access-exclusion | vpc-endpoint | vpc-endpoint-connection | vpc-endpoint-connection-device-type | vpc-endpoint-service | vpc-endpoint-service-permission | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-connection-device-type | vpn-gateway` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to apply to the resource\\. \n*Required*: Yes \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::ClientVpnRoute": { + "ClientVpnEndpointId": "The ID of the Client VPN endpoint to which to add the route\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "A brief description of the route\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DestinationCidrBlock": "The IPv4 address range, in CIDR notation, of the route destination\\. For example: \n+ To add a route for Internet access, enter `0.0.0.0/0` \n+ To add a route for a peered VPC, enter the peered VPC's IPv4 CIDR range\n+ To add a route for an on\\-premises network, enter the AWS Site\\-to\\-Site VPN connection's IPv4 CIDR range\n+ To add a route for the local network, enter the client CIDR range\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TargetVpcSubnetId": "The ID of the subnet through which you want to route traffic\\. The specified subnet must be an existing target network of the Client VPN endpoint\\. \nAlternatively, if you're adding a route for the local network, specify `local`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::ClientVpnTargetNetworkAssociation": { + "ClientVpnEndpointId": "The ID of the Client VPN endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetId": "The ID of the subnet to associate with the Client VPN endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::CustomerGateway": { + "BgpAsn": "For devices that support BGP, the customer gateway's BGP ASN\\. \nDefault: 65000 \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DeviceName": "The name of customer gateway device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IpAddress": "IPv4 address for the customer gateway device's outside interface\\. The address must be static\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "One or more tags for the customer gateway\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of VPN connection that this customer gateway supports \\(`ipsec.1`\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ipsec.1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::DHCPOptions": { + "DomainName": "This value is used to complete unqualified DNS hostnames\\. If you're using AmazonProvidedDNS in `us-east-1`, specify `ec2.internal`\\. If you're using AmazonProvidedDNS in another Region, specify *region*\\.`compute.internal` \\(for example, `ap-northeast-1.compute.internal`\\)\\. Otherwise, specify a domain name \\(for example, *MyCompany\\.com*\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DomainNameServers": "The IPv4 addresses of up to four domain name servers, or `AmazonProvidedDNS`\\. The default is `AmazonProvidedDNS`\\. To have your instance receive a custom DNS hostname as specified in `DomainName`, you must set this property to a custom DNS server\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NetbiosNameServers": "The IPv4 addresses of up to four NetBIOS name servers\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NetbiosNodeType": "The NetBIOS node type \\(1, 2, 4, or 8\\)\\. We recommend that you specify 2 \\(broadcast and multicast are not currently supported\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NtpServers": "The IPv4 addresses of up to four Network Time Protocol \\(NTP\\) servers\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Any tags assigned to the DHCP options set\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::EC2Fleet": { + "Context": "Reserved\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExcessCapacityTerminationPolicy": "Indicates whether running instances should be terminated if the total target capacity of the EC2 Fleet is decreased below the current size of the EC2 Fleet\\. \nSupported only for fleets of type `maintain`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `no-termination | termination` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LaunchTemplateConfigs": "The configuration for the EC2 Fleet\\. \n*Required*: Yes \n*Type*: List of [FleetLaunchTemplateConfigRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateconfigrequest.html) \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OnDemandOptions": "Describes the configuration of On\\-Demand Instances in an EC2 Fleet\\. \n*Required*: No \n*Type*: [OnDemandOptionsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ondemandoptionsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ReplaceUnhealthyInstances": "Indicates whether EC2 Fleet should replace unhealthy Spot Instances\\. Supported only for fleets of type `maintain`\\. For more information, see [EC2 Fleet health checks](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#ec2-fleet-health-checks) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SpotOptions": "Describes the configuration of Spot Instances in an EC2 Fleet\\. \n*Required*: No \n*Type*: [SpotOptionsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TagSpecifications": "The key\\-value pair for tagging the EC2 Fleet request on creation\\. For more information, see [Tagging your resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources)\\. \nIf the fleet type is `instant`, specify a resource type of `fleet` to tag the fleet or `instance` to tag the instances at launch\\. \nIf the fleet type is `maintain` or `request`, specify a resource type of `fleet` to tag the fleet\\. You cannot specify a resource type of `instance`\\. To tag instances at launch, specify the tags in a [launch template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template)\\. \n*Required*: No \n*Type*: List of [TagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-tagspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TargetCapacitySpecification": "The number of units to request\\. \n*Required*: Yes \n*Type*: [TargetCapacitySpecificationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-targetcapacityspecificationrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TerminateInstancesWithExpiration": "Indicates whether running instances should be terminated when the EC2 Fleet expires\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "The fleet type\\. The default value is `maintain`\\. \n+ `maintain` \\- The EC2 Fleet places an asynchronous request for your desired capacity, and continues to maintain your desired Spot capacity by replenishing interrupted Spot Instances\\.\n+ `request` \\- The EC2 Fleet places an asynchronous one\\-time request for your desired capacity, but does submit Spot requests in alternative capacity pools if Spot capacity is unavailable, and does not maintain Spot capacity if Spot Instances are interrupted\\.\n+ `instant` \\- The EC2 Fleet places a synchronous one\\-time request for your desired capacity, and returns errors for any instances that could not be launched\\.\nFor more information, see [EC2 Fleet request types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-request-type.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `instant | maintain | request` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ValidFrom": "The start date and time of the request, in UTC format \\(for example, *YYYY*\\-*MM*\\-*DD*T*HH*:*MM*:*SS*Z\\)\\. The default is to start fulfilling the request immediately\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ValidUntil": "The end date and time of the request, in UTC format \\(for example, *YYYY*\\-*MM*\\-*DD*T*HH*:*MM*:*SS*Z\\)\\. At this point, no new EC2 Fleet requests are placed or able to fulfill the request\\. If no value is specified, the request remains until you cancel it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EC2Fleet AcceleratorCountRequest": { + "Max": "The maximum number of accelerators\\. To specify no maximum limit, omit this parameter\\. To exclude accelerator\\-enabled instance types, set `Max` to `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Min": "The minimum number of accelerators\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EC2Fleet AcceleratorTotalMemoryMiBRequest": { + "Max": "The maximum amount of accelerator memory, in MiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Min": "The minimum amount of accelerator memory, in MiB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EC2Fleet BaselineEbsBandwidthMbpsRequest": { + "Max": "The maximum baseline bandwidth, in Mbps\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Min": "The minimum baseline bandwidth, in Mbps\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EC2Fleet CapacityRebalance": { + "ReplacementStrategy": "The replacement strategy to use\\. Only available for fleets of type `maintain`\\. \n `launch` \\- EC2 Fleet launches a replacement Spot Instance when a rebalance notification is emitted for an existing Spot Instance in the fleet\\. EC2 Fleet does not terminate the instances that receive a rebalance notification\\. You can terminate the old instances, or you can leave them running\\. You are charged for all instances while they are running\\. \n `launch-before-terminate` \\- EC2 Fleet launches a replacement Spot Instance when a rebalance notification is emitted for an existing Spot Instance in the fleet, and then, after a delay that you specify \\(in `TerminationDelay`\\), terminates the instances that received a rebalance notification\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `launch | launch-before-terminate` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TerminationDelay": "The amount of time \\(in seconds\\) that Amazon EC2 waits before terminating the old Spot Instance after launching a new replacement Spot Instance\\. \nRequired when `ReplacementStrategy` is set to `launch-before-terminate`\\. \nNot valid when `ReplacementStrategy` is set to `launch`\\. \nValid values: Minimum value of `120` seconds\\. Maximum value of `7200` seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EC2Fleet CapacityReservationOptionsRequest": { + "UsageStrategy": "Indicates whether to use unused Capacity Reservations for fulfilling On\\-Demand capacity\\. \nIf you specify `use-capacity-reservations-first`, the fleet uses unused Capacity Reservations to fulfill On\\-Demand capacity up to the target On\\-Demand capacity\\. If multiple instance pools have unused Capacity Reservations, the On\\-Demand allocation strategy \\(`lowest-price` or `prioritized`\\) is applied\\. If the number of unused Capacity Reservations is less than the On\\-Demand target capacity, the remaining On\\-Demand target capacity is launched according to the On\\-Demand allocation strategy \\(`lowest-price` or `prioritized`\\)\\. \nIf you do not specify a value, the fleet fulfils the On\\-Demand capacity according to the chosen On\\-Demand allocation strategy\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `use-capacity-reservations-first` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EC2Fleet FleetLaunchTemplateConfigRequest": { + "LaunchTemplateSpecification": "The launch template to use\\. You must specify either the launch template ID or launch template name in the request\\. \n*Required*: No \n*Type*: [FleetLaunchTemplateSpecificationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplatespecificationrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Overrides": "Any parameters that you specify override the same parameters in the launch template\\. \nFor fleets of type `request` and `maintain`, a maximum of 300 items is allowed across all launch templates\\. \n*Required*: No \n*Type*: List of [FleetLaunchTemplateOverridesRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EC2Fleet FleetLaunchTemplateOverridesRequest": { + "AvailabilityZone": "The Availability Zone in which to launch the instances\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceRequirements": "The attributes for the instance types\\. When you specify instance attributes, Amazon EC2 will identify instance types with those attributes\\. \nIf you specify `InstanceRequirements`, you can't specify `InstanceType`\\.\n*Required*: No \n*Type*: [InstanceRequirementsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceType": "The instance type\\. \nIf you specify `InstanceType`, you can't specify `InstanceRequirements`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | mac1.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6ad.12xlarge | r6ad.16xlarge | r6ad.24xlarge | r6ad.2xlarge | r6ad.32xlarge | r6ad.48xlarge | r6ad.4xlarge | r6ad.8xlarge | r6ad.large | r6ad.metal | r6ad.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MaxPrice": "The maximum price per unit hour that you are willing to pay for a Spot Instance\\. We do not recommend using this parameter because it can lead to increased interruptions\\. If you do not specify this parameter, you will pay the current Spot price\\. \nIf you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Placement": "The location where the instance launched, if applicable\\. \n*Required*: No \n*Type*: [Placement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-placement.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Priority": "The priority for the launch template override\\. The highest priority is launched first\\. \nIf the On\\-Demand `AllocationStrategy` is set to `prioritized`, EC2 Fleet uses priority to determine which launch template override to use first in fulfilling On\\-Demand capacity\\. \nIf the Spot `AllocationStrategy` is set to `capacity-optimized-prioritized`, EC2 Fleet uses priority on a best\\-effort basis to determine which launch template override to use in fulfilling Spot capacity, but optimizes for capacity first\\. \nValid values are whole numbers starting at `0`\\. The lower the number, the higher the priority\\. If no number is set, the launch template override has the lowest priority\\. You can set the same priority for different launch template overrides\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetId": "The IDs of the subnets in which to launch the instances\\. Separate multiple subnet IDs using commas \\(for example, `subnet-1234abcdeexample1, subnet-0987cdef6example2`\\)\\. A request of type `instant` can have only one subnet ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "WeightedCapacity": "The number of units provided by the specified instance type\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EC2Fleet FleetLaunchTemplateSpecificationRequest": { + "LaunchTemplateId": "The ID of the launch template\\. \nYou must specify the `LaunchTemplateId` or the `LaunchTemplateName`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LaunchTemplateName": "The name of the launch template\\. \nYou must specify the `LaunchTemplateName` or the `LaunchTemplateId`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9\\(\\)\\.\\-/_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Version": "The launch template version number, `$Latest`, or `$Default`\\. You must specify a value, otherwise the request fails\\. \nIf the value is `$Latest`, Amazon EC2 uses the latest version of the launch template\\. \nIf the value is `$Default`, Amazon EC2 uses the default version of the launch template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EC2Fleet InstanceRequirementsRequest": { + "AcceleratorCount": "The minimum and maximum number of accelerators \\(GPUs, FPGAs, or AWS Inferentia chips\\) on an instance\\. \nTo exclude accelerator\\-enabled instance types, set `Max` to `0`\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [AcceleratorCountRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-acceleratorcountrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AcceleratorManufacturers": "Indicates whether instance types must have accelerators by specific manufacturers\\. \n+ For instance types with NVIDIA devices, specify `nvidia`\\.\n+ For instance types with AMD devices, specify `amd`\\.\n+ For instance types with AWS devices, specify `amazon-web-services`\\.\n+ For instance types with Xilinx devices, specify `xilinx`\\.\nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AcceleratorNames": "The accelerators that must be on the instance type\\. \n+ For instance types with NVIDIA A100 GPUs, specify `a100`\\.\n+ For instance types with NVIDIA V100 GPUs, specify `v100`\\.\n+ For instance types with NVIDIA K80 GPUs, specify `k80`\\.\n+ For instance types with NVIDIA T4 GPUs, specify `t4`\\.\n+ For instance types with NVIDIA M60 GPUs, specify `m60`\\.\n+ For instance types with AMD Radeon Pro V520 GPUs, specify `radeon-pro-v520`\\.\n+ For instance types with Xilinx VU9P FPGAs, specify ` vu9p`\\.\n+ For instance types with AWS Inferentia chips, specify `inferentia`\\.\n+ For instance types with NVIDIA GRID K520 GPUs, specify `k520`\\.\nDefault: Any accelerator \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AcceleratorTotalMemoryMiB": "The minimum and maximum amount of total accelerator memory, in MiB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [AcceleratorTotalMemoryMiBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-acceleratortotalmemorymibrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AcceleratorTypes": "The accelerator types that must be on the instance type\\. \n+ To include instance types with GPU hardware, specify `gpu`\\.\n+ To include instance types with FPGA hardware, specify `fpga`\\.\n+ To include instance types with inference hardware, specify `inference`\\.\nDefault: Any accelerator type \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AllowedInstanceTypes": "The instance types to apply your specified attributes against\\. All other instance types are ignored, even if they match your specified attributes\\. \nYou can use strings with one or more wild cards, represented by an asterisk \\(`*`\\), to allow an instance type, size, or generation\\. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`\\. \nFor example, if you specify `c5*`,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types\\. If you specify `m5a.*`, Amazon EC2 will allow all the M5a instance types, but not the M5n instance types\\. \nIf you specify `AllowedInstanceTypes`, you can't specify `ExcludedInstanceTypes`\\.\nDefault: All instance types \n*Required*: No \n*Type*: List of String \n*Maximum*: `400` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BareMetal": "Indicates whether bare metal instance types must be included, excluded, or required\\. \n+ To include bare metal instance types, specify `included`\\.\n+ To require only bare metal instance types, specify `required`\\.\n+ To exclude bare metal instance types, specify `excluded`\\.\nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BaselineEbsBandwidthMbps": "The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps\\. For more information, see [Amazon EBS\u2013optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide*\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [BaselineEbsBandwidthMbpsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-baselineebsbandwidthmbpsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BurstablePerformance": "Indicates whether burstable performance T instance types are included, excluded, or required\\. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html)\\. \n+ To include burstable performance instance types, specify `included`\\.\n+ To require only burstable performance instance types, specify `required`\\.\n+ To exclude burstable performance instance types, specify `excluded`\\.\nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CpuManufacturers": "The CPU manufacturers to include\\. \n+ For instance types with Intel CPUs, specify `intel`\\.\n+ For instance types with AMD CPUs, specify `amd`\\.\n+ For instance types with AWS CPUs, specify `amazon-web-services`\\.\nDon't confuse the CPU manufacturer with the CPU architecture\\. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image \\(AMI\\) that you specify in your launch template\\.\nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ExcludedInstanceTypes": "The instance types to exclude\\. \nYou can use strings with one or more wild cards, represented by an asterisk \\(`*`\\), to exclude an instance family, type, size, or generation\\. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`\\. \nFor example, if you specify `c5*`,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types\\. If you specify `m5a.*`, Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types\\. \nIf you specify `ExcludedInstanceTypes`, you can't specify `AllowedInstanceTypes`\\.\nDefault: No excluded instance types \n*Required*: No \n*Type*: List of String \n*Maximum*: `400` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceGenerations": "Indicates whether current or previous generation instance types are included\\. The current generation instance types are recommended for use\\. Current generation instance types are typically the latest two to three generations in each instance family\\. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*\\. \nFor current generation instance types, specify `current`\\. \nFor previous generation instance types, specify `previous`\\. \nDefault: Current and previous generation instance types \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LocalStorage": "Indicates whether instance types with instance store volumes are included, excluded, or required\\. For more information, [Amazon EC2 instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in the *Amazon EC2 User Guide*\\. \n+ To include instance types with instance store volumes, specify `included`\\.\n+ To require only instance types with instance store volumes, specify `required`\\.\n+ To exclude instance types with instance store volumes, specify `excluded`\\.\nDefault: `included` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LocalStorageTypes": "The type of local storage that is required\\. \n+ For instance types with hard disk drive \\(HDD\\) storage, specify `hdd`\\.\n+ For instance types with solid state drive \\(SSD\\) storage, specify `ssd`\\.\nDefault: `hdd` and `ssd` \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MemoryGiBPerVCpu": "The minimum and maximum amount of memory per vCPU, in GiB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [MemoryGiBPerVCpuRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-memorygibpervcpurequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MemoryMiB": "The minimum and maximum amount of memory, in MiB\\. \n*Required*: No \n*Type*: [MemoryMiBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-memorymibrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NetworkBandwidthGbps": "The minimum and maximum amount of network bandwidth, in gigabits per second \\(Gbps\\)\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [NetworkBandwidthGbpsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-networkbandwidthgbpsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NetworkInterfaceCount": "The minimum and maximum number of network interfaces\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [NetworkInterfaceCountRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-networkinterfacecountrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OnDemandMaxPricePercentageOverLowestPrice": "The price protection threshold for On\\-Demand Instances\\. This is the maximum you\u2019ll pay for an On\\-Demand Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes\\. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold\\. \nThe parameter accepts an integer, which Amazon EC2 interprets as a percentage\\. \nTo turn off price protection, specify a high value, such as `999999`\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html)\\. \nIf you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per\\-vCPU or per\\-memory price instead of the per\\-instance price\\.\nDefault: `20` \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RequireHibernateSupport": "Indicates whether instance types must support hibernation for On\\-Demand Instances\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html)\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SpotMaxPricePercentageOverLowestPrice": "The price protection threshold for Spot Instance\\. This is the maximum you\u2019ll pay for an Spot Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes\\. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold\\. \nThe parameter accepts an integer, which Amazon EC2 interprets as a percentage\\. \nTo turn off price protection, specify a high value, such as `999999`\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html)\\. \nIf you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per\\-vCPU or per\\-memory price instead of the per\\-instance price\\.\nDefault: `100` \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TotalLocalStorageGB": "The minimum and maximum amount of total local storage, in GB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [TotalLocalStorageGBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-totallocalstoragegbrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VCpuCount": "The minimum and maximum number of vCPUs\\. \n*Required*: No \n*Type*: [VCpuCountRangeRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-vcpucountrangerequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EC2Fleet MaintenanceStrategies": { + "CapacityRebalance": "The strategy to use when Amazon EC2 emits a signal that your Spot Instance is at an elevated risk of being interrupted\\. \n*Required*: No \n*Type*: [CapacityRebalance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-capacityrebalance.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EC2Fleet MemoryGiBPerVCpuRequest": { + "Max": "The maximum amount of memory per vCPU, in GiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Min": "The minimum amount of memory per vCPU, in GiB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EC2Fleet MemoryMiBRequest": { + "Max": "The maximum amount of memory, in MiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Min": "The minimum amount of memory, in MiB\\. To specify no minimum limit, specify `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EC2Fleet NetworkBandwidthGbpsRequest": { + "Max": "The maximum amount of network bandwidth, in Gbps\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Min": "The minimum amount of network bandwidth, in Gbps\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EC2Fleet NetworkInterfaceCountRequest": { + "Max": "The maximum number of network interfaces\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Min": "The minimum number of network interfaces\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EC2Fleet OnDemandOptionsRequest": { + "AllocationStrategy": "The strategy that determines the order of the launch template overrides to use in fulfilling On\\-Demand capacity\\. \n `lowest-price` \\- EC2 Fleet uses price to determine the order, launching the lowest price first\\. \n `prioritized` \\- EC2 Fleet uses the priority that you assigned to each launch template override, launching the highest priority first\\. \nDefault: `lowest-price` \n*Required*: No \n*Type*: String \n*Allowed values*: `lowest-price | prioritized` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CapacityReservationOptions": "The strategy for using unused Capacity Reservations for fulfilling On\\-Demand capacity\\. \nSupported only for fleets of type `instant`\\. \n*Required*: No \n*Type*: [CapacityReservationOptionsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-capacityreservationoptionsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MaxTotalPrice": "The maximum amount per hour for On\\-Demand Instances that you're willing to pay\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MinTargetCapacity": "The minimum target capacity for On\\-Demand Instances in the fleet\\. If the minimum target capacity is not reached, the fleet launches no instances\\. \nSupported only for fleets of type `instant`\\. \nAt least one of the following must be specified: `SingleAvailabilityZone` \\| `SingleInstanceType` \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SingleAvailabilityZone": "Indicates that the fleet launches all On\\-Demand Instances into a single Availability Zone\\. \nSupported only for fleets of type `instant`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SingleInstanceType": "Indicates that the fleet uses a single instance type to launch all On\\-Demand Instances in the fleet\\. \nSupported only for fleets of type `instant`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EC2Fleet Placement": { + "Affinity": "The affinity setting for the instance on the Dedicated Host\\. \nThis parameter is not supported for [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet) or [ImportInstance](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportInstance.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AvailabilityZone": "The Availability Zone of the instance\\. \nIf not specified, an Availability Zone will be automatically chosen for you based on the load balancing criteria for the Region\\. \nThis parameter is not supported for [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GroupName": "The name of the placement group that the instance is in\\. If you specify `GroupName`, you can't specify `GroupId`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "HostId": "The ID of the Dedicated Host on which the instance resides\\. \nThis parameter is not supported for [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet) or [ImportInstance](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportInstance.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "HostResourceGroupArn": "The ARN of the host resource group in which to launch the instances\\. \nIf you specify this parameter, either omit the **Tenancy** parameter or set it to `host`\\. \nThis parameter is not supported for [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PartitionNumber": "The number of the partition that the instance is in\\. Valid only if the placement group strategy is set to `partition`\\. \nThis parameter is not supported for [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SpreadDomain": "Reserved for future use\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tenancy": "The tenancy of the instance \\(if the instance is running in a VPC\\)\\. An instance with a tenancy of `dedicated` runs on single\\-tenant hardware\\. \nThis parameter is not supported for [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet)\\. The `host` tenancy is not supported for [ImportInstance](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportInstance.html) or for T3 instances that are configured for the `unlimited` CPU credit option\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dedicated | default | host` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EC2Fleet SpotOptionsRequest": { + "AllocationStrategy": "Indicates how to allocate the target Spot Instance capacity across the Spot Instance pools specified by the EC2 Fleet\\. \nIf the allocation strategy is `lowestPrice`, EC2 Fleet launches instances from the Spot Instance pools with the lowest price\\. This is the default allocation strategy\\. \nIf the allocation strategy is `diversified`, EC2 Fleet launches instances from all the Spot Instance pools that you specify\\. \nIf the allocation strategy is `capacityOptimized`, EC2 Fleet launches instances from Spot Instance pools that are optimally chosen based on the available Spot Instance capacity\\. \n*Allowed Values*: `lowestPrice` \\| `diversified` \\| `capacityOptimized` \\| `capacityOptimizedPrioritized` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceInterruptionBehavior": "The behavior when a Spot Instance is interrupted\\. \nDefault: `terminate` \n*Required*: No \n*Type*: String \n*Allowed values*: `hibernate | stop | terminate` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstancePoolsToUseCount": "The number of Spot pools across which to allocate your target Spot capacity\\. Supported only when Spot `AllocationStrategy` is set to `lowest-price`\\. EC2 Fleet selects the cheapest Spot pools and evenly allocates your target Spot capacity across the number of Spot pools that you specify\\. \nNote that EC2 Fleet attempts to draw Spot Instances from the number of pools that you specify on a best effort basis\\. If a pool runs out of Spot capacity before fulfilling your target capacity, EC2 Fleet will continue to fulfill your request by drawing from the next cheapest pool\\. To ensure that your target capacity is met, you might receive Spot Instances from more than the number of pools that you specified\\. Similarly, if most of the pools have no Spot capacity, you might receive your full target capacity from fewer than the number of pools that you specified\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MaintenanceStrategies": "The strategies for managing your Spot Instances that are at an elevated risk of being interrupted\\. \n*Required*: No \n*Type*: [MaintenanceStrategies](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-maintenancestrategies.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MaxTotalPrice": "The maximum amount per hour for Spot Instances that you're willing to pay\\. We do not recommend using this parameter because it can lead to increased interruptions\\. If you do not specify this parameter, you will pay the current Spot price\\. \nIf you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MinTargetCapacity": "The minimum target capacity for Spot Instances in the fleet\\. If the minimum target capacity is not reached, the fleet launches no instances\\. \nSupported only for fleets of type `instant`\\. \nAt least one of the following must be specified: `SingleAvailabilityZone` \\| `SingleInstanceType` \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SingleAvailabilityZone": "Indicates that the fleet launches all Spot Instances into a single Availability Zone\\. \nSupported only for fleets of type `instant`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SingleInstanceType": "Indicates that the fleet uses a single instance type to launch all Spot Instances in the fleet\\. \nSupported only for fleets of type `instant`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EC2Fleet TagSpecification": { + "ResourceType": "The type of resource to tag\\. `ResourceType` must be `fleet`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `capacity-reservation | capacity-reservation-fleet | carrier-gateway | client-vpn-endpoint | coip-pool | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | instance-event-window | internet-gateway | ipam | ipam-pool | ipam-resource-discovery | ipam-resource-discovery-association | ipam-scope | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | launch-template | local-gateway | local-gateway-route-table | local-gateway-route-table-virtual-interface-group-association | local-gateway-route-table-vpc-association | local-gateway-virtual-interface | local-gateway-virtual-interface-group | natgateway | network-acl | network-insights-access-scope | network-insights-access-scope-analysis | network-insights-analysis | network-insights-path | network-interface | placement-group | prefix-list | replace-root-volume-task | reserved-instances | route-server | route-server-endpoint | route-server-peer | route-table | security-group | security-group-rule | snapshot | spot-fleet-request | spot-instances-request | subnet | subnet-cidr-reservation | traffic-mirror-filter | traffic-mirror-filter-rule | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-policy-table | transit-gateway-route-table | transit-gateway-route-table-announcement | verified-access-endpoint | verified-access-group | verified-access-instance | verified-access-policy | verified-access-trust-provider | volume | vpc | vpc-block-public-access-exclusion | vpc-endpoint | vpc-endpoint-connection | vpc-endpoint-connection-device-type | vpc-endpoint-service | vpc-endpoint-service-permission | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-connection-device-type | vpn-gateway` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags to apply to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EC2Fleet TargetCapacitySpecificationRequest": { + "DefaultTargetCapacityType": "The default `TotalTargetCapacity`, which is either `Spot` or `On-Demand`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `on-demand | spot` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OnDemandTargetCapacity": "The number of On\\-Demand units to request\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SpotTargetCapacity": "The number of Spot units to request\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetCapacityUnitType": "The unit for the target capacity\\. `TargetCapacityUnitType` can only be specified when `InstanceRequirements` is specified\\. \nDefault: `units` \\(translates to number of instances\\) \n*Required*: No \n*Type*: String \n*Allowed values*: `memory-mib | units | vcpu` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TotalTargetCapacity": "The number of units to request, filled using `DefaultTargetCapacityType`\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::EC2Fleet TotalLocalStorageGBRequest": { + "Max": "The maximum amount of total local storage, in GB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Min": "The minimum amount of total local storage, in GB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EC2Fleet VCpuCountRangeRequest": { + "Max": "The maximum number of vCPUs\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Min": "The minimum number of vCPUs\\. To specify no minimum limit, specify `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EIP": { + "Domain": "Indicates whether the Elastic IP address is for use with instances in a VPC or instance in EC2\\-Classic\\. \nDefault: If the Region supports EC2\\-Classic, the default is `standard`\\. Otherwise, the default is `vpc`\\. \nUse when allocating an address for use with a VPC if the Region supports EC2\\-Classic\\. \nIf you define an Elastic IP address and associate it with a VPC that is defined in the same template, you must declare a dependency on the VPC\\-gateway attachment by using the [ DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) on this resource\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `standard | vpc` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceId": "The ID of the instance\\. \nUpdates to the `InstanceId` property may require *some interruptions*\\. Updates on an EIP reassociates the address on its associated resource\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkBorderGroup": "A unique set of Availability Zones, Local Zones, or Wavelength Zones from which AWS advertises IP addresses\\. Use this parameter to limit the IP address to this location\\. IP addresses cannot move between network border groups\\. \nUse [DescribeAvailabilityZones](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html) to view the network border groups\\. \nYou cannot use a network border group with EC2 Classic\\. If you attempt this operation on EC2 Classic, you receive an `InvalidParameterCombination` error\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PublicIpv4Pool": "The ID of an address pool that you own\\. Use this parameter to let Amazon EC2 select an address from the address pool\\. \nUpdates to the `PublicIpv4Pool` property may require *some interruptions*\\. Updates on an EIP reassociates the address on its associated resource\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Any tags assigned to the Elastic IP address\\. \nUpdates to the `Tags` property may require *some interruptions*\\. Updates on an EIP reassociates the address on its associated resource\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransferAddress": "The Elastic IP address you are accepting for transfer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EIPAssociation": { + "AllocationId": "\\[EC2\\-VPC\\] The allocation ID\\. This is required for EC2\\-VPC\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "EIP": "\\[EC2\\-Classic\\] The Elastic IP address to associate with the instance\\. This is required for EC2\\-Classic\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "InstanceId": "The ID of the instance\\. The instance must have exactly one attached network interface\\. For EC2\\-VPC, you can specify either the instance ID or the network interface ID, but not both\\. For EC2\\-Classic, you must specify an instance ID and the instance must be in the running state\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "NetworkInterfaceId": "\\[EC2\\-VPC\\] The ID of the network interface\\. If the instance has more than one network interface, you must specify a network interface ID\\. \nFor EC2\\-VPC, you can specify either the instance ID or the network interface ID, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "PrivateIpAddress": "\\[EC2\\-VPC\\] The primary or secondary private IP address to associate with the Elastic IP address\\. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::EgressOnlyInternetGateway": { + "VpcId": "The ID of the VPC for which to create the egress\\-only internet gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::EnclaveCertificateIamRoleAssociation": { + "CertificateArn": "The ARN of the ACM certificate with which to associate the IAM role\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1283` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RoleArn": "The ARN of the IAM role to associate with the ACM certificate\\. You can associate up to 16 IAM roles with an ACM certificate\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1283` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::FlowLog": { + "DeliverLogsPermissionArn": "The ARN of the IAM role that allows Amazon EC2 to publish flow logs to a CloudWatch Logs log group in your account\\. \nThis parameter is required if the destination type is `cloud-watch-logs` and unsupported otherwise\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DestinationOptions": "The destination options\\. The following options are supported: \n+ `FileFormat` \\- The format for the flow log \\(`plain-text` \\| `parquet`\\)\\. The default is `plain-text`\\.\n+ `HiveCompatiblePartitions` \\- Indicates whether to use Hive\\-compatible prefixes for flow logs stored in Amazon S3 \\(`true` \\| `false`\\)\\. The default is `false`\\.\n+ `PerHourPartition` \\- Indicates whether to partition the flow log per hour \\(`true` \\| `false`\\)\\. The default is `false`\\.\n*Required*: No \n*Type*: [DestinationOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-flowlog-destinationoptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LogDestination": "The destination for the flow log data\\. The meaning of this parameter depends on the destination type\\. \n+ If the destination type is `cloud-watch-logs`, specify the ARN of a CloudWatch Logs log group\\. For example:", + "LogDestinationType": "The type of destination for the flow log data\\. \nDefault: `cloud-watch-logs` \n*Required*: No \n*Type*: String \n*Allowed values*: `cloud-watch-logs | kinesis-data-firehose | s3` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LogFormat": "The fields to include in the flow log record, in the order in which they should appear\\. If you omit this parameter, the flow log is created using the default format\\. If you specify this parameter, you must include at least one field\\. For more information about the available fields, see [Flow log records](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-log-records) in the *Amazon VPC User Guide* or [Transit Gateway Flow Log records](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-flow-logs.html#flow-log-records) in the *AWS Transit Gateway Guide*\\. \nSpecify the fields using the `${field-id}` format, separated by spaces\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LogGroupName": "The name of a new or existing CloudWatch Logs log group where Amazon EC2 publishes your flow logs\\. \nThis parameter is valid only if the destination type is `cloud-watch-logs`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MaxAggregationInterval": "The maximum interval of time during which a flow of packets is captured and aggregated into a flow log record\\. The possible values are 60 seconds \\(1 minute\\) or 600 seconds \\(10 minutes\\)\\. This parameter must be 60 seconds for transit gateway resource types\\. \nWhen a network interface is attached to a [Nitro\\-based instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances), the aggregation interval is always 60 seconds or less, regardless of the value that you specify\\. \nDefault: 600 \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceId": "The ID of the resource to monitor\\. For example, if the resource type is `VPC`, specify the ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceType": "The type of resource to monitor\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `NetworkInterface | Subnet | TransitGateway | TransitGatewayAttachment | VPC` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags to apply to the flow logs\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TrafficType": "The type of traffic to monitor \\(accepted traffic, rejected traffic, or all traffic\\)\\. This parameter is not supported for transit gateway resource types\\. It is required for the other resource types\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ACCEPT | ALL | REJECT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::FlowLog DestinationOptions": { + "FileFormat": "The format for the flow log\\. The default is `plain-text`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `parquet | plain-text` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "HiveCompatiblePartitions": "Indicates whether to use Hive\\-compatible prefixes for flow logs stored in Amazon S3\\. The default is `false`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PerHourPartition": "Indicates whether to partition the flow log per hour\\. This reduces the cost and response time for queries\\. The default is `false`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::GatewayRouteTableAssociation": { + "GatewayId": "The ID of the gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RouteTableId": "The ID of the route table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::Host": { + "AutoPlacement": "Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID\\. For more information, see [ Understanding auto\\-placement and affinity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-dedicated-hosts-work.html#dedicated-hosts-understanding) in the *Amazon EC2 User Guide*\\. \nDefault: `on` \n*Required*: No \n*Type*: String \n*Allowed values*: `off | on` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AvailabilityZone": "The Availability Zone in which to allocate the Dedicated Host\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "HostRecovery": "Indicates whether to enable or disable host recovery for the Dedicated Host\\. Host recovery is disabled by default\\. For more information, see [ Host recovery](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-recovery.html) in the *Amazon EC2 User Guide*\\. \nDefault: `off` \n*Required*: No \n*Type*: String \n*Allowed values*: `off | on` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceFamily": "The instance family supported by the Dedicated Host\\. For example, `m5`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceType": "Specifies the instance type to be supported by the Dedicated Hosts\\. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OutpostArn": "The Amazon Resource Name \\(ARN\\) of the AWS Outpost on which the Dedicated Host is allocated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::IPAM": { + "Description": "The description for the IPAM\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OperatingRegions": "The operating Regions for an IPAM\\. Operating Regions are AWS Regions where the IPAM is allowed to manage IP address CIDRs\\. IPAM only discovers and monitors resources in the AWS Regions you select as operating Regions\\. \nFor more information about operating Regions, see [Create an IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/create-ipam.html) in the *Amazon VPC IPAM User Guide*\\. \n*Required*: No \n*Type*: List of [IpamOperatingRegion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipam-ipamoperatingregion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The key/value combination of a tag assigned to the resource\\. Use the tag key in the filter name and the tag value as the filter value\\. For example, to find all resources that have a tag with the key `Owner` and the value `TeamA`, specify `tag:Owner` for the filter name and `TeamA` for the filter value\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::IPAM IpamOperatingRegion": { + "RegionName": "The name of the operating Region\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::IPAMAllocation": { + "Cidr": "The CIDR you would like to allocate from the IPAM pool\\. Note the following: \n+ If there is no DefaultNetmaskLength allocation rule set on the pool, you must specify either the NetmaskLength or the CIDR\\.\n+ If the DefaultNetmaskLength allocation rule is set on the pool, you can specify either the NetmaskLength or the CIDR and the DefaultNetmaskLength allocation rule will be ignored\\.\nPossible values: Any available IPv4 or IPv6 CIDR\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "A description for the allocation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IpamPoolId": "The ID of the IPAM pool from which you would like to allocate a CIDR\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NetmaskLength": "The netmask length of the CIDR you would like to allocate from the IPAM pool\\. Note the following: \n+ If there is no DefaultNetmaskLength allocation rule set on the pool, you must specify either the NetmaskLength or the CIDR\\.\n+ If the DefaultNetmaskLength allocation rule is set on the pool, you can specify either the NetmaskLength or the CIDR and the DefaultNetmaskLength allocation rule will be ignored\\.\nPossible netmask lengths for IPv4 addresses are 0 \\- 32\\. Possible netmask lengths for IPv6 addresses are 0 \\- 128\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::IPAMPool": { + "AddressFamily": "The address family of the pool\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ipv4 | ipv6` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AllocationDefaultNetmaskLength": "The default netmask length for allocations added to this pool\\. If, for example, the CIDR assigned to this pool is 10\\.0\\.0\\.0/8 and you enter 16 here, new allocations will default to 10\\.0\\.0\\.0/16\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AllocationMaxNetmaskLength": "The maximum netmask length possible for CIDR allocations in this IPAM pool to be compliant\\. The maximum netmask length must be greater than the minimum netmask length\\. Possible netmask lengths for IPv4 addresses are 0 \\- 32\\. Possible netmask lengths for IPv6 addresses are 0 \\- 128\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AllocationMinNetmaskLength": "The minimum netmask length required for CIDR allocations in this IPAM pool to be compliant\\. The minimum netmask length must be less than the maximum netmask length\\. Possible netmask lengths for IPv4 addresses are 0 \\- 32\\. Possible netmask lengths for IPv6 addresses are 0 \\- 128\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AllocationResourceTags": "Tags that are required for resources that use CIDRs from this IPAM pool\\. Resources that do not have these tags will not be allowed to allocate space from the pool\\. If the resources have their tags changed after they have allocated space or if the allocation tagging requirements are changed on the pool, the resource may be marked as noncompliant\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutoImport": "If selected, IPAM will continuously look for resources within the CIDR range of this pool and automatically import them as allocations into your IPAM\\. The CIDRs that will be allocated for these resources must not already be allocated to other resources in order for the import to succeed\\. IPAM will import a CIDR regardless of its compliance with the pool's allocation rules, so a resource might be imported and subsequently marked as noncompliant\\. If IPAM discovers multiple CIDRs that overlap, IPAM will import the largest CIDR only\\. If IPAM discovers multiple CIDRs with matching CIDRs, IPAM will randomly import one of them only\\. \nA locale must be set on the pool for this feature to work\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AwsService": "Limits which service in AWS that the pool can be used in\\. \"ec2\", for example, allows users to use space for Elastic IP addresses and VPCs\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ec2` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "The description of the IPAM pool\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IpamScopeId": "The ID of the scope in which you would like to create the IPAM pool\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Locale": "The locale of the IPAM pool\\. In IPAM, the locale is the AWS Region where you want to make an IPAM pool available for allocations\\. Only resources in the same Region as the locale of the pool can get IP address allocations from the pool\\. You can only allocate a CIDR for a VPC, for example, from an IPAM pool that shares a locale with the VPC\u2019s Region\\. Note that once you choose a Locale for a pool, you cannot modify it\\. If you choose an AWS Region for locale that has not been configured as an operating Region for the IPAM, you'll get an error\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProvisionedCidrs": "Information about the CIDRs provisioned to an IPAM pool\\. \n*Required*: No \n*Type*: List of [ProvisionedCidr](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipampool-provisionedcidr.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PubliclyAdvertisable": "Determines if a pool is publicly advertisable\\. This option is not available for pools with AddressFamily set to `ipv4`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceIpamPoolId": "The ID of the source IPAM pool\\. You can use this option to create an IPAM pool within an existing source pool\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The key/value combination of a tag assigned to the resource\\. Use the tag key in the filter name and the tag value as the filter value\\. For example, to find all resources that have a tag with the key `Owner` and the value `TeamA`, specify `tag:Owner` for the filter name and `TeamA` for the filter value\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::IPAMPool ProvisionedCidr": { + "Cidr": "The CIDR provisioned to the IPAM pool\\. A CIDR is a representation of an IP address and its associated network mask \\(or netmask\\) and refers to a range of IP addresses\\. An IPv4 CIDR example is `10.24.34.0/23`\\. An IPv6 CIDR example is `2001:DB8::/32`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::IPAMScope": { + "Description": "The description of the scope\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IpamId": "The ID of the IPAM for which you're creating this scope\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The key/value combination of a tag assigned to the resource\\. Use the tag key in the filter name and the tag value as the filter value\\. For example, to find all resources that have a tag with the key `Owner` and the value `TeamA`, specify `tag:Owner` for the filter name and `TeamA` for the filter value\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::Instance": { + "AdditionalInfo": "This property is reserved for internal use\\. If you use it, the stack fails with this error: `Bad property set: [Testing this property] (Service: AmazonEC2; Status Code: 400; Error Code: InvalidParameterCombination; Request ID: 0XXXXXX-49c7-4b40-8bcc-76885dcXXXXX)`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "Affinity": "Indicates whether the instance is associated with a dedicated host\\. If you want the instance to always restart on the same host on which it was launched, specify `host`\\. If you want the instance to restart on any available host, but try to launch onto the last host it ran on \\(on a best\\-effort basis\\), specify `default`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "AvailabilityZone": "The Availability Zone of the instance\\. \nIf not specified, an Availability Zone will be automatically chosen for you based on the load balancing criteria for the Region\\. \nThis parameter is not supported by [DescribeImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImageAttribute.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BlockDeviceMappings": "The block device mapping entries that defines the block devices to attach to the instance at launch\\. \nBy default, the block devices specified in the block device mapping for the AMI are used\\. You can override the AMI block device mapping using the instance block device mapping\\. For the root volume, you can override only the volume size, volume type, volume encryption settings, and the `DeleteOnTermination` setting\\. \nAfter the instance is running, you can modify only the `DeleteOnTermination` parameter for the attached volumes without interrupting the instance\\. Modifying any other parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: No \n*Type*: List of [BlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-mapping.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "CpuOptions": "The CPU options for the instance\\. For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: [CpuOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-cpuoptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CreditSpecification": "The credit option for CPU usage of the burstable performance instance\\. Valid values are `standard` and `unlimited`\\. To change this attribute after launch, use [ ModifyInstanceCreditSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceCreditSpecification.html)\\. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide*\\. \nDefault: `standard` \\(T2 instances\\) or `unlimited` \\(T3/T3a/T4g instances\\) \nFor T3 instances with `host` tenancy, only `standard` is supported\\. \n*Required*: No \n*Type*: [CreditSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-creditspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisableApiTermination": "If you set this parameter to `true`, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can\\. To change this attribute after launch, use [ModifyInstanceAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html)\\. Alternatively, if you set `InstanceInitiatedShutdownBehavior` to `terminate`, you can terminate the instance by running the shutdown command from the instance\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EbsOptimized": "Indicates whether the instance is optimized for Amazon EBS I/O\\. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance\\. This optimization isn't available with all instance types\\. Additional usage charges apply when using an EBS\\-optimized instance\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "ElasticGpuSpecifications": "An elastic GPU to associate with the instance\\. An Elastic GPU is a GPU resource that you can attach to your Windows instance to accelerate the graphics performance of your applications\\. For more information, see [Amazon EC2 Elastic GPUs](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: List of [ElasticGpuSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-elasticgpuspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ElasticInferenceAccelerators": "An elastic inference accelerator to associate with the instance\\. Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to accelerate your Deep Learning \\(DL\\) inference workloads\\. \nYou cannot specify accelerators from different generations in the same request\\. \n*Required*: No \n*Type*: List of [ElasticInferenceAccelerator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-elasticinferenceaccelerator.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EnclaveOptions": "Indicates whether the instance is enabled for AWS Nitro Enclaves\\. \n*Required*: No \n*Type*: [EnclaveOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-enclaveoptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "HibernationOptions": "Indicates whether an instance is enabled for hibernation\\. For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon EC2 User Guide*\\. \nYou can't enable hibernation and AWS Nitro Enclaves on the same instance\\. \n*Required*: No \n*Type*: [HibernationOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-hibernationoptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "HostId": "If you specify host for the `Affinity` property, the ID of a dedicated host that the instance is associated with\\. If you don't specify an ID, Amazon EC2 launches the instance onto any available, compatible dedicated host in your account\\. This type of launch is called an untargeted launch\\. Note that for untargeted launches, you must have a compatible, dedicated host available to successfully launch instances\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "HostResourceGroupArn": "The ARN of the host resource group in which to launch the instances\\. If you specify a host resource group ARN, omit the **Tenancy** parameter or set it to `host`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IamInstanceProfile": "The name of an IAM instance profile\\. To create a new IAM instance profile, use the [AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html) resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageId": "The ID of the AMI\\. An AMI ID is required to launch an instance and must be specified here or in a launch template\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceInitiatedShutdownBehavior": "Indicates whether an instance stops or terminates when you initiate shutdown from the instance \\(using the operating system command for system shutdown\\)\\. \nDefault: `stop` \n*Required*: No \n*Type*: String \n*Allowed values*: `stop | terminate` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceType": "The instance type\\. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*\\. \nDefault: `m1.small` \n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | mac1.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6ad.12xlarge | r6ad.16xlarge | r6ad.24xlarge | r6ad.2xlarge | r6ad.32xlarge | r6ad.48xlarge | r6ad.4xlarge | r6ad.8xlarge | r6ad.large | r6ad.metal | r6ad.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "Ipv6AddressCount": "\\[EC2\\-VPC\\] The number of IPv6 addresses to associate with the primary network interface\\. Amazon EC2 chooses the IPv6 addresses from the range of your subnet\\. You cannot specify this option and the option to assign specific IPv6 addresses in the same request\\. You can specify this option if you've specified a minimum number of instances to launch\\. \nYou cannot specify this option and the network interfaces option in the same request\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Ipv6Addresses": "\\[EC2\\-VPC\\] The IPv6 addresses from the range of the subnet to associate with the primary network interface\\. You cannot specify this option and the option to assign a number of IPv6 addresses in the same request\\. You cannot specify this option if you've specified a minimum number of instances to launch\\. \nYou cannot specify this option and the network interfaces option in the same request\\. \n*Required*: No \n*Type*: List of [InstanceIpv6Address](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-instanceipv6address.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KernelId": "The ID of the kernel\\. \nWe recommend that you use PV\\-GRUB instead of kernels and RAM disks\\. For more information, see [PV\\-GRUB](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "KeyName": "The name of the key pair\\. You can create a key pair using [CreateKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html) or [ImportKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html)\\. \nIf you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LaunchTemplate": "The launch template to use to launch the instances\\. Any parameters that you specify in the AWS CloudFormation template override the same parameters in the launch template\\. You can specify either the name or ID of a launch template, but not both\\. \n*Required*: No \n*Type*: [LaunchTemplateSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-launchtemplatespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LicenseSpecifications": "The license configurations\\. \n*Required*: No \n*Type*: List of [LicenseSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-licensespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Monitoring": "Specifies whether detailed monitoring is enabled for the instance\\. Specify `true` to enable detailed monitoring\\. Otherwise, basic monitoring is enabled\\. For more information about detailed monitoring, see [Enable or turn off detailed monitoring for your instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch-new.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkInterfaces": "The network interfaces to associate with the instance\\. \nIf you use this property to point to a network interface, you must terminate the original interface before attaching a new one to allow the update of the instance to succeed\\. \nIf this resource has a public IP address and is also in a VPC that is defined in the same template, you must use the [ DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) to declare a dependency on the VPC\\-gateway attachment\\.\n*Required*: No \n*Type*: List of [NetworkInterface](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PlacementGroupName": "The name of an existing placement group that you want to launch the instance into \\(cluster \\| partition \\| spread\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PrivateDnsNameOptions": "The options for the instance hostname\\. \n*Required*: No \n*Type*: [PrivateDnsNameOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-privatednsnameoptions.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "PrivateIpAddress": "\\[EC2\\-VPC\\] The primary IPv4 address\\. You must specify a value from the IPv4 address range of the subnet\\. \nOnly one private IP address can be designated as primary\\. You can't specify this option if you've specified the option to designate a private IP address as the primary IP address in a network interface specification\\. You cannot specify this option if you're launching more than one instance in the request\\. \nYou cannot specify this option and the network interfaces option in the same request\\. \nIf you make an update to an instance that requires replacement, you must assign a new private IP address\\. During a replacement, AWS CloudFormation creates a new instance but doesn't delete the old instance until the stack has successfully updated\\. If the stack update fails, AWS CloudFormation uses the old instance to roll back the stack to the previous working state\\. The old and new instances cannot have the same private IP address\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PropagateTagsToVolumeOnCreation": "Indicates whether to assign the tags from the instance to all of the volumes attached to the instance at launch\\. If you specify `true` and you assign tags to the instance, those tags are automatically assigned to all of the volumes that you attach to the instance at launch\\. If you specify `false`, those tags are not assigned to the attached volumes\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RamdiskId": "The ID of the RAM disk to select\\. Some kernels require additional drivers at launch\\. Check the kernel requirements for information about whether you need to specify a RAM disk\\. To find kernel requirements, go to the AWS Resource Center and search for the kernel ID\\. \nWe recommend that you use PV\\-GRUB instead of kernels and RAM disks\\. For more information, see [PV\\-GRUB](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "SecurityGroupIds": "The IDs of the security groups\\. You can create a security group using [CreateSecurityGroup](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html)\\. \nIf you specify a network interface, you must specify any security groups as part of the network interface\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "SecurityGroups": "\\[EC2\\-Classic, default VPC\\] The names of the security groups\\. For a nondefault VPC, you must use security group IDs instead\\. \nYou cannot specify this option and the network interfaces option in the same request\\. The list can contain both the name of existing Amazon EC2 security groups or references to AWS::EC2::SecurityGroup resources created in the template\\. \nDefault: Amazon EC2 uses the default security group\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceDestCheck": "Enable or disable source/destination checks, which ensure that the instance is either the source or the destination of any traffic that it receives\\. If the value is `true`, source/destination checks are enabled; otherwise, they are disabled\\. The default value is `true`\\. You must disable source/destination checks if the instance runs services such as network address translation, routing, or firewalls\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SsmAssociations": "The SSM [ document](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html) and parameter values in AWS Systems Manager to associate with this instance\\. To use this property, you must specify an IAM instance profile role for the instance\\. For more information, see [Create an IAM instance profile for Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-configuring-access-role.html) in the *AWS Systems Manager User Guide*\\. \nYou can currently associate only one document with an instance\\.\n*Required*: No \n*Type*: List of [SsmAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetId": "\\[EC2\\-VPC\\] The ID of the subnet to launch the instance into\\. \nIf you specify a network interface, you must specify any subnets as part of the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags to add to the instance\\. These tags are not applied to the EBS volumes, such as the root volume\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tenancy": "The tenancy of the instance \\(if the instance is running in a VPC\\)\\. An instance with a tenancy of `dedicated` runs on single\\-tenant hardware\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dedicated | default | host` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "UserData": "The user data script to make available to the instance\\. User data is limited to 16 KB\\. You must provide base64\\-encoded text\\. For more information, see [Fn::Base64](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-base64.html)\\. \nUser data runs only at instance launch\\. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) and [Run commands on your Windows instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-windows-user-data.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "Volumes": "The volumes to attach to the instance\\. \n*Required*: No \n*Type*: List of [Volume](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-mount-point.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::Instance AssociationParameter": { + "Key": "The name of an input parameter that is in the associated SSM document\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of an input parameter\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::Instance BlockDeviceMapping": { + "DeviceName": "The device name \\(for example, `/dev/sdh` or `xvdh`\\)\\. \nAfter the instance is running, this parameter is used to specify the device name of the block device mapping to update\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ebs": "Parameters used to automatically set up EBS volumes when the instance is launched\\. \nAfter the instance is running, you can modify only the `DeleteOnTermination` parameter for the attached volumes without interrupting the instance\\. Modifying any other parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)\\.\n*Required*: Conditional \n*Type*: [Ebs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NoDevice": "To omit the device from the block device mapping, specify an empty string\\. \nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: Conditional \n*Type*: [NoDevice](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-nodevice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VirtualName": "The virtual device name \\(`ephemeral`N\\)\\. The name must be in the form `ephemeral`*X* where *X* is a number starting from zero \\(0\\)\\. For example, an instance type with 2 available instance store volumes can specify mappings for `ephemeral0` and `ephemeral1`\\. The number of available instance store volumes depends on the instance type\\. After you connect to the instance, you must mount the volume\\. \nNVMe instance store volumes are automatically enumerated and assigned a device name\\. Including them in your block device mapping has no effect\\. \n *Constraints*: For M3 instances, you must specify instance store volumes in the block device mapping for the instance\\. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI\\. \nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::Instance CpuOptions": { + "CoreCount": "The number of CPU cores for the instance\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThreadsPerCore": "The number of threads per CPU core\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::Instance CreditSpecification": { + "CPUCredits": "The credit option for CPU usage of the instance\\. \nValid values: `standard` \\| `unlimited` \nT3 instances with `host` tenancy do not support the `unlimited` CPU credit option\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::Instance Ebs": { + "DeleteOnTermination": "Indicates whether the EBS volume is deleted on instance termination\\. For more information, see [Preserving Amazon EBS volumes on instance termination](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#preserving-volumes-on-termination) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Encrypted": "Indicates whether the volume should be encrypted\\. The effect of setting the encryption state to `true` depends on the volume origin \\(new or from a snapshot\\), starting encryption state, ownership, and whether encryption by default is enabled\\. For more information, see [Encryption by default](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default) in the *Amazon Elastic Compute Cloud User Guide*\\. \nEncrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption\\. For more information, see [Supported instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances)\\. \nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Iops": "The number of I/O operations per second \\(IOPS\\)\\. For `gp3`, `io1`, and `io2` volumes, this represents the number of IOPS that are provisioned for the volume\\. For `gp2` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting\\. \nThe following are the supported values for each volume type: \n+ `gp3`: 3,000\\-16,000 IOPS\n+ `io1`: 100\\-64,000 IOPS\n+ `io2`: 100\\-64,000 IOPS\nFor `io1` and `io2` volumes, we guarantee 64,000 IOPS only for [Instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)\\. Other instance families guarantee performance up to 32,000 IOPS\\. \nThis parameter is required for `io1` and `io2` volumes\\. The default for `gp3` volumes is 3,000 IOPS\\. This parameter is not supported for `gp2`, `st1`, `sc1`, or `standard` volumes\\. \nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKeyId": "The identifier of the AWS KMS key to use for Amazon EBS encryption\\. If `KmsKeyId` is specified, the encrypted state must be `true`\\. If the encrypted state is `true` but you do not specify `KmsKeyId`, your KMS key for EBS is used\\. \nYou can specify the KMS key using any of the following: \n+ Key ID\\. For example, 1234abcd\\-12ab\\-34cd\\-56ef\\-1234567890ab\\.\n+ Key alias\\. For example, alias/ExampleAlias\\.\n+ Key ARN\\. For example, arn:aws:kms:us\\-west\\-2:111122223333:key/1234abcd\\-12ab\\-34cd\\-56ef\\-1234567890ab\\.\n+ Alias ARN\\. For example, arn:aws:kms:us\\-west\\-2:111122223333:alias/ExampleAlias\\.\nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SnapshotId": "The ID of the snapshot\\. \nIf you specify both `SnapshotId` and `VolumeSize`, `VolumeSize` must be equal or greater than the size of the snapshot\\. \nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VolumeSize": "The size of the volume, in GiBs\\. You must specify either a snapshot ID or a volume size\\. If you specify a snapshot, the default is the snapshot size\\. You can specify a volume size that is equal to or larger than the snapshot size\\. \nThe following are the supported volumes sizes for each volume type: \n+ `gp2` and `gp3`:1\\-16,384\n+ `io1` and `io2`: 4\\-16,384\n+ `st1` and `sc1`: 125\\-16,384\n+ `standard`: 1\\-1,024\nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VolumeType": "The volume type\\. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon EC2 User Guide*\\. If the volume type is `io1` or `io2`, you must specify the IOPS that the volume supports\\. \nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `gp2 | gp3 | io1 | io2 | sc1 | st1 | standard` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::Instance ElasticGpuSpecification": { + "Type": "The type of Elastic Graphics accelerator\\. For more information about the values to specify for `Type`, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::Instance ElasticInferenceAccelerator": { + "Count": "The number of elastic inference accelerators to attach to the instance\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of elastic inference accelerator\\. The possible values are `eia1.medium`, `eia1.large`, `eia1.xlarge`, `eia2.medium`, `eia2.large`, and `eia2.xlarge`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::Instance EnclaveOptions": { + "Enabled": "If this parameter is set to `true`, the instance is enabled for AWS Nitro Enclaves; otherwise, it is not enabled for AWS Nitro Enclaves\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::Instance HibernationOptions": { + "Configured": "If you set this parameter to `true`, your instance is enabled for hibernation\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::Instance InstanceIpv6Address": { + "Ipv6Address": "The IPv6 address\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::Instance LaunchTemplateSpecification": { + "LaunchTemplateId": "The ID of the launch template\\. \nYou must specify the `LaunchTemplateId` or the `LaunchTemplateName`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LaunchTemplateName": "The name of the launch template\\. \nYou must specify the `LaunchTemplateName` or the `LaunchTemplateId`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "The version number of the launch template\\. \nSpecifying `$Latest` or `$Default` for the template version number is not supported\\. However, you can specify `LatestVersionNumber` or `DefaultVersionNumber` using the `Fn::GetAtt` intrinsic function\\. For more information, see [Fn::GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#aws-resource-ec2-launchtemplate-return-values-fn--getatt)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::Instance LicenseSpecification": { + "LicenseConfigurationArn": "The Amazon Resource Name \\(ARN\\) of the license configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::Instance NetworkInterface": { + "AssociateCarrierIpAddress": "Indicates whether to assign a carrier IP address to the network interface\\. \nYou can only assign a carrier IP address to a network interface that is in a subnet in a Wavelength Zone\\. For more information about carrier IP addresses, see [Carrier IP address](https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#provider-owned-ip) in the * AWS Wavelength Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AssociatePublicIpAddress": "Indicates whether to assign a public IPv4 address to an instance\\. Applies only if creating a network interface when launching an instance\\. The network interface must be the primary network interface\\. If launching into a default subnet, the default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeleteOnTermination": "Indicates whether the network interface is deleted when the instance is terminated\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the network interface\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeviceIndex": "The position of the network interface in the attachment order\\. A primary network interface has a device index of 0\\. \nIf you create a network interface when launching an instance, you must specify the device index\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GroupSet": "The IDs of the security groups for the network interface\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ipv6AddressCount": "A number of IPv6 addresses to assign to the network interface\\. Amazon EC2 chooses the IPv6 addresses from the range of the subnet\\. You cannot specify this option and the option to assign specific IPv6 addresses in the same request\\. You can specify this option if you've specified a minimum number of instances to launch\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ipv6Addresses": "The IPv6 addresses to assign to the network interface\\. You cannot specify this option and the option to assign a number of IPv6 addresses in the same request\\. You cannot specify this option if you've specified a minimum number of instances to launch\\. \n*Required*: No \n*Type*: List of [InstanceIpv6Address](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-instanceipv6address.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkInterfaceId": "The ID of the network interface, when attaching an existing network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrivateIpAddress": "The private IPv4 address of the network interface\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrivateIpAddresses": "One or more private IPv4 addresses to assign to the network interface\\. Only one private IPv4 address can be designated as primary\\. \n*Required*: No \n*Type*: List of [PrivateIpAddressSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-interface-privateipspec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecondaryPrivateIpAddressCount": "The number of secondary private IPv4 addresses\\. You can't specify this option and specify more than one private IP address using the private IP addresses option\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetId": "The ID of the subnet associated with the network interface\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::Instance PrivateDnsNameOptions": { + "EnableResourceNameDnsAAAARecord": "Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records\\. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableResourceNameDnsARecord": "Indicates whether to respond to DNS queries for instance hostnames with DNS A records\\. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HostnameType": "The type of hostnames to assign to instances in the subnet at launch\\. For IPv4 only subnets, an instance DNS name must be based on the instance IPv4 address\\. For IPv6 only subnets, an instance DNS name must be based on the instance ID\\. For dual\\-stack subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID\\. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ip-name | resource-name` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::Instance PrivateIpAddressSpecification": { + "Primary": "Indicates whether the private IPv4 address is the primary private IPv4 address\\. Only one IPv4 address can be designated as primary\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrivateIpAddress": "The private IPv4 address\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::Instance SsmAssociation": { + "AssociationParameters": "The input parameter values to use with the associated SSM document\\. \n*Required*: No \n*Type*: List of [AssociationParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations-associationparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DocumentName": "The name of an SSM document to associate with the instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::Instance Volume": { + "Device": "The device name \\(for example, `/dev/sdh` or `xvdh`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VolumeId": "The ID of the EBS volume\\. The volume and instance must be within the same Availability Zone\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::InternetGateway": { + "Tags": "Any tags to assign to the internet gateway\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::KeyPair": { + "KeyName": "A unique name for the key pair\\. \nConstraints: Up to 255 ASCII characters \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KeyType": "The type of key pair\\. Note that ED25519 keys are not supported for Windows instances\\. \nIf the `PublicKeyMaterial` property is specified, the `KeyType` property is ignored, and the key type is inferred from the `PublicKeyMaterial` value\\. \nDefault: `rsa` \n*Required*: No \n*Type*: String \n*Allowed values*: `ed25519 | rsa` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PublicKeyMaterial": "The public key material\\. The `PublicKeyMaterial` property is used to import a key pair\\. If this property is not specified, then a new key pair will be created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to apply to the key pair\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate": { + "LaunchTemplateData": "The information for the launch template\\. \n*Required*: Yes \n*Type*: [LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LaunchTemplateName": "A name for the launch template\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9\\(\\)\\.\\-/_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TagSpecifications": "The tags to apply to the launch template on creation\\. To tag the launch template, the resource type must be `launch-template`\\. \nTo specify the tags for the resources that are created when an instance is launched, you must use the `TagSpecifications` parameter in the [launch template data](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestLaunchTemplateData.html) structure\\.\n*Required*: No \n*Type*: List of [LaunchTemplateTagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatetagspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VersionDescription": "A description for the first version of the launch template\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate AcceleratorCount": { + "Max": "The maximum number of accelerators\\. To specify no maximum limit, omit this parameter\\. To exclude accelerator\\-enabled instance types, set `Max` to `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Min": "The minimum number of accelerators\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate AcceleratorTotalMemoryMiB": { + "Max": "The maximum amount of accelerator memory, in MiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Min": "The minimum amount of accelerator memory, in MiB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate BaselineEbsBandwidthMbps": { + "Max": "The maximum baseline bandwidth, in Mbps\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Min": "The minimum baseline bandwidth, in Mbps\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate BlockDeviceMapping": { + "DeviceName": "The device name \\(for example, /dev/sdh or xvdh\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ebs": "Parameters used to automatically set up EBS volumes when the instance is launched\\. \n*Required*: No \n*Type*: [Ebs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping-ebs.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NoDevice": "To omit the device from the block device mapping, specify an empty string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VirtualName": "The virtual device name \\(ephemeralN\\)\\. Instance store volumes are numbered starting from 0\\. An instance type with 2 available instance store volumes can specify mappings for ephemeral0 and ephemeral1\\. The number of available instance store volumes depends on the instance type\\. After you connect to the instance, you must mount the volume\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate CapacityReservationSpecification": { + "CapacityReservationPreference": "Indicates the instance's Capacity Reservation preferences\\. Possible preferences include: \n+ `open` \\- The instance can run in any `open` Capacity Reservation that has matching attributes \\(instance type, platform, Availability Zone\\)\\.\n+ `none` \\- The instance avoids running in a Capacity Reservation even if one is available\\. The instance runs in On\\-Demand capacity\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `none | open` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CapacityReservationTarget": "Information about the target Capacity Reservation or Capacity Reservation group\\. \n*Required*: No \n*Type*: [CapacityReservationTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-capacityreservationtarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate CapacityReservationTarget": { + "CapacityReservationId": "The ID of the Capacity Reservation in which to run the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CapacityReservationResourceGroupArn": "The ARN of the Capacity Reservation resource group in which to run the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate CpuOptions": { + "CoreCount": "The number of CPU cores for the instance\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThreadsPerCore": "The number of threads per CPU core\\. To disable multithreading for the instance, specify a value of `1`\\. Otherwise, specify the default value of `2`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate CreditSpecification": { + "CpuCredits": "The credit option for CPU usage of a T instance\\. \nValid values: `standard` \\| `unlimited` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate Ebs": { + "DeleteOnTermination": "Indicates whether the EBS volume is deleted on instance termination\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Encrypted": "Indicates whether the EBS volume is encrypted\\. Encrypted volumes can only be attached to instances that support Amazon EBS encryption\\. If you are creating a volume from a snapshot, you can't specify an encryption value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Iops": "The number of I/O operations per second \\(IOPS\\)\\. For `gp3`, `io1`, and `io2` volumes, this represents the number of IOPS that are provisioned for the volume\\. For `gp2` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting\\. \nThe following are the supported values for each volume type: \n+ `gp3`: 3,000\\-16,000 IOPS\n+ `io1`: 100\\-64,000 IOPS\n+ `io2`: 100\\-64,000 IOPS\nFor `io1` and `io2` volumes, we guarantee 64,000 IOPS only for [Instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)\\. Other instance families guarantee performance up to 32,000 IOPS\\. \nThis parameter is supported for `io1`, `io2`, and `gp3` volumes only\\. This parameter is not supported for `gp2`, `st1`, `sc1`, or `standard` volumes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKeyId": "The ARN of the symmetric AWS Key Management Service \\(AWS KMS\\) CMK used for encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnapshotId": "The ID of the snapshot\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Throughput": "The throughput to provision for a `gp3` volume, with a maximum of 1,000 MiB/s\\. \nValid Range: Minimum value of 125\\. Maximum value of 1000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VolumeSize": "The size of the volume, in GiBs\\. You must specify either a snapshot ID or a volume size\\. The following are the supported volumes sizes for each volume type: \n+ `gp2` and `gp3`: 1\\-16,384\n+ `io1` and `io2`: 4\\-16,384\n+ `st1` and `sc1`: 125\\-16,384\n+ `standard`: 1\\-1,024\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VolumeType": "The volume type\\. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `gp2 | gp3 | io1 | io2 | sc1 | st1 | standard` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate ElasticGpuSpecification": { + "Type": "The type of Elastic Graphics accelerator\\. For more information about the values to specify for `Type`, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate EnclaveOptions": { + "Enabled": "If this parameter is set to `true`, the instance is enabled for AWS Nitro Enclaves; otherwise, it is not enabled for AWS Nitro Enclaves\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate HibernationOptions": { + "Configured": "If you set this parameter to `true`, the instance is enabled for hibernation\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate IamInstanceProfile": { + "Arn": "The Amazon Resource Name \\(ARN\\) of the instance profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the instance profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate InstanceMarketOptions": { + "MarketType": "The market type\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `spot` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SpotOptions": "The options for Spot Instances\\. \n*Required*: No \n*Type*: [SpotOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate InstanceRequirements": { + "AcceleratorCount": "The minimum and maximum number of accelerators \\(GPUs, FPGAs, or AWS Inferentia chips\\) on an instance\\. \nTo exclude accelerator\\-enabled instance types, set `Max` to `0`\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [AcceleratorCount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-acceleratorcount.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AcceleratorManufacturers": "Indicates whether instance types must have accelerators by specific manufacturers\\. \n+ For instance types with NVIDIA devices, specify `nvidia`\\.\n+ For instance types with AMD devices, specify `amd`\\.\n+ For instance types with AWS devices, specify `amazon-web-services`\\.\n+ For instance types with Xilinx devices, specify `xilinx`\\.\nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AcceleratorNames": "The accelerators that must be on the instance type\\. \n+ For instance types with NVIDIA A100 GPUs, specify `a100`\\.\n+ For instance types with NVIDIA V100 GPUs, specify `v100`\\.\n+ For instance types with NVIDIA K80 GPUs, specify `k80`\\.\n+ For instance types with NVIDIA T4 GPUs, specify `t4`\\.\n+ For instance types with NVIDIA M60 GPUs, specify `m60`\\.\n+ For instance types with AMD Radeon Pro V520 GPUs, specify `radeon-pro-v520`\\.\n+ For instance types with Xilinx VU9P FPGAs, specify `vu9p`\\.\n+ For instance types with AWS Inferentia chips, specify `inferentia`\\.\n+ For instance types with NVIDIA GRID K520 GPUs, specify `k520`\\.\nDefault: Any accelerator \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AcceleratorTotalMemoryMiB": "The minimum and maximum amount of total accelerator memory, in MiB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [AcceleratorTotalMemoryMiB](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-acceleratortotalmemorymib.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AcceleratorTypes": "The accelerator types that must be on the instance type\\. \n+ For instance types with GPU accelerators, specify `gpu`\\.\n+ For instance types with FPGA accelerators, specify `fpga`\\.\n+ For instance types with inference accelerators, specify `inference`\\.\nDefault: Any accelerator type \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AllowedInstanceTypes": "The instance types to apply your specified attributes against\\. All other instance types are ignored, even if they match your specified attributes\\. \nYou can use strings with one or more wild cards, represented by an asterisk \\(`*`\\), to allow an instance type, size, or generation\\. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`\\. \nFor example, if you specify `c5*`,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types\\. If you specify `m5a.*`, Amazon EC2 will allow all the M5a instance types, but not the M5n instance types\\. \nIf you specify `AllowedInstanceTypes`, you can't specify `ExcludedInstanceTypes`\\.\nDefault: All instance types \n*Required*: No \n*Type*: List of String \n*Maximum*: `400` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BareMetal": "Indicates whether bare metal instance types must be included, excluded, or required\\. \n+ To include bare metal instance types, specify `included`\\.\n+ To require only bare metal instance types, specify `required`\\.\n+ To exclude bare metal instance types, specify `excluded`\\.\nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BaselineEbsBandwidthMbps": "The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps\\. For more information, see [Amazon EBS\u2013optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide*\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [BaselineEbsBandwidthMbps](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-baselineebsbandwidthmbps.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BurstablePerformance": "Indicates whether burstable performance T instance types are included, excluded, or required\\. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html)\\. \n+ To include burstable performance instance types, specify `included`\\.\n+ To require only burstable performance instance types, specify `required`\\.\n+ To exclude burstable performance instance types, specify `excluded`\\.\nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CpuManufacturers": "The CPU manufacturers to include\\. \n+ For instance types with Intel CPUs, specify `intel`\\.\n+ For instance types with AMD CPUs, specify `amd`\\.\n+ For instance types with AWS CPUs, specify `amazon-web-services`\\.\nDon't confuse the CPU manufacturer with the CPU architecture\\. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image \\(AMI\\) that you specify in your launch template\\.\nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExcludedInstanceTypes": "The instance types to exclude\\. \nYou can use strings with one or more wild cards, represented by an asterisk \\(`*`\\), to exclude an instance type, size, or generation\\. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`\\. \nFor example, if you specify `c5*`,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types\\. If you specify `m5a.*`, Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types\\. \nIf you specify `ExcludedInstanceTypes`, you can't specify `AllowedInstanceTypes`\\.\nDefault: No excluded instance types \n*Required*: No \n*Type*: List of String \n*Maximum*: `400` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceGenerations": "Indicates whether current or previous generation instance types are included\\. The current generation instance types are recommended for use\\. Current generation instance types are typically the latest two to three generations in each instance family\\. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*\\. \nFor current generation instance types, specify `current`\\. \nFor previous generation instance types, specify `previous`\\. \nDefault: Current and previous generation instance types \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LocalStorage": "Indicates whether instance types with instance store volumes are included, excluded, or required\\. For more information, [Amazon EC2 instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in the *Amazon EC2 User Guide*\\. \n+ To include instance types with instance store volumes, specify `included`\\.\n+ To require only instance types with instance store volumes, specify `required`\\.\n+ To exclude instance types with instance store volumes, specify `excluded`\\.\nDefault: `included` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LocalStorageTypes": "The type of local storage that is required\\. \n+ For instance types with hard disk drive \\(HDD\\) storage, specify `hdd`\\.\n+ For instance types with solid state drive \\(SSD\\) storage, specify `ssd`\\.\nDefault: `hdd` and `ssd` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MemoryGiBPerVCpu": "The minimum and maximum amount of memory per vCPU, in GiB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [MemoryGiBPerVCpu](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-memorygibpervcpu.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MemoryMiB": "The minimum and maximum amount of memory, in MiB\\. \n*Required*: No \n*Type*: [MemoryMiB](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-memorymib.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkBandwidthGbps": "The minimum and maximum amount of network bandwidth, in gigabits per second \\(Gbps\\)\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [NetworkBandwidthGbps](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkbandwidthgbps.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkInterfaceCount": "The minimum and maximum number of network interfaces\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [NetworkInterfaceCount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterfacecount.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OnDemandMaxPricePercentageOverLowestPrice": "The price protection threshold for On\\-Demand Instances\\. This is the maximum you\u2019ll pay for an On\\-Demand Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes\\. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold\\. \nThe parameter accepts an integer, which Amazon EC2 interprets as a percentage\\. \nTo turn off price protection, specify a high value, such as `999999`\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html)\\. \nIf you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per\\-vCPU or per\\-memory price instead of the per\\-instance price\\.\nDefault: `20` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequireHibernateSupport": "Indicates whether instance types must support hibernation for On\\-Demand Instances\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html)\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SpotMaxPricePercentageOverLowestPrice": "The price protection threshold for Spot Instances\\. This is the maximum you\u2019ll pay for a Spot Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes\\. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold\\. \nThe parameter accepts an integer, which Amazon EC2 interprets as a percentage\\. \nTo turn off price protection, specify a high value, such as `999999`\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html)\\. \nIf you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per\\-vCPU or per\\-memory price instead of the per\\-instance price\\.\nDefault: `100` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TotalLocalStorageGB": "The minimum and maximum amount of total local storage, in GB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [TotalLocalStorageGB](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-totallocalstoragegb.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VCpuCount": "The minimum and maximum number of vCPUs\\. \n*Required*: No \n*Type*: [VCpuCount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-vcpucount.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate Ipv4PrefixSpecification": { + "Ipv4Prefix": "The IPv4 prefix\\. For information, see [ Assigning prefixes to Amazon EC2 network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate Ipv6Add": { + "Ipv6Address": "One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet\\. You can't use this option if you're specifying a number of IPv6 addresses\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate Ipv6PrefixSpecification": { + "Ipv6Prefix": "The IPv6 prefix\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate LaunchTemplateData": { + "BlockDeviceMappings": "The block device mapping\\. \n*Required*: No \n*Type*: List of [BlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CapacityReservationSpecification": "The Capacity Reservation targeting option\\. If you do not specify this parameter, the instance's Capacity Reservation preference defaults to `open`, which enables it to run in any open Capacity Reservation that has matching attributes \\(instance type, platform, Availability Zone\\)\\. \n*Required*: No \n*Type*: [CapacityReservationSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-capacityreservationspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CpuOptions": "The CPU options for the instance\\. For more information, see [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: [CpuOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-cpuoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CreditSpecification": "The credit option for CPU usage of the instance\\. Valid only for T instances\\. \n*Required*: No \n*Type*: [CreditSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-creditspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisableApiStop": "Indicates whether to enable the instance for stop protection\\. For more information, see [Stop protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisableApiTermination": "If you set this parameter to `true`, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can\\. To change this attribute after launch, use [ModifyInstanceAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html)\\. Alternatively, if you set `InstanceInitiatedShutdownBehavior` to `terminate`, you can terminate the instance by running the shutdown command from the instance\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EbsOptimized": "Indicates whether the instance is optimized for Amazon EBS I/O\\. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance\\. This optimization isn't available with all instance types\\. Additional usage charges apply when using an EBS\\-optimized instance\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ElasticGpuSpecifications": "An elastic GPU to associate with the instance\\. \n*Required*: No \n*Type*: List of [ElasticGpuSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-elasticgpuspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ElasticInferenceAccelerators": "The elastic inference accelerator for the instance\\. \n*Required*: No \n*Type*: List of [LaunchTemplateElasticInferenceAccelerator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplateelasticinferenceaccelerator.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnclaveOptions": "Indicates whether the instance is enabled for AWS Nitro Enclaves\\. For more information, see [ What is AWS Nitro Enclaves?](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html) in the * AWS Nitro Enclaves User Guide*\\. \nYou can't enable AWS Nitro Enclaves and hibernation on the same instance\\. \n*Required*: No \n*Type*: [EnclaveOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-enclaveoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HibernationOptions": "Indicates whether an instance is enabled for hibernation\\. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html)\\. For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: [HibernationOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-hibernationoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IamInstanceProfile": "The name or Amazon Resource Name \\(ARN\\) of an IAM instance profile\\. \n*Required*: No \n*Type*: [IamInstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-iaminstanceprofile.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageId": "The ID of the AMI\\. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch\\. \nValid formats: \n+ `ami-17characters00000` \n+ `resolve:ssm:parameter-name` \n+ `resolve:ssm:parameter-name:version-number` \n+ `resolve:ssm:parameter-name:label` \nFor more information, see [Use a Systems Manager parameter to find an AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html#using-systems-manager-parameter-to-find-AMI) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceInitiatedShutdownBehavior": "Indicates whether an instance stops or terminates when you initiate shutdown from the instance \\(using the operating system command for system shutdown\\)\\. \nDefault: `stop` \n*Required*: No \n*Type*: String \n*Allowed values*: `stop | terminate` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceMarketOptions": "The market \\(purchasing\\) option for the instances\\. \n*Required*: No \n*Type*: [InstanceMarketOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceRequirements": "The attributes for the instance types\\. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes\\. \nIf you specify `InstanceRequirements`, you can't specify `InstanceType`\\. \n*Required*: No \n*Type*: [InstanceRequirements](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancerequirements.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceType": "The instance type\\. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \nIf you specify `InstanceType`, you can't specify `InstanceRequirements`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | mac1.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6ad.12xlarge | r6ad.16xlarge | r6ad.24xlarge | r6ad.2xlarge | r6ad.32xlarge | r6ad.48xlarge | r6ad.4xlarge | r6ad.8xlarge | r6ad.large | r6ad.metal | r6ad.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KernelId": "The ID of the kernel\\. \nWe recommend that you use PV\\-GRUB instead of kernels and RAM disks\\. For more information, see [User Provided Kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeyName": "The name of the key pair\\. You can create a key pair using [CreateKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html) or [ImportKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html)\\. \nIf you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LicenseSpecifications": "The license configurations\\. \n*Required*: No \n*Type*: List of [LicenseSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-licensespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaintenanceOptions": "The maintenance options of your instance\\. \n*Required*: No \n*Type*: [MaintenanceOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-maintenanceoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetadataOptions": "The metadata options for the instance\\. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: [MetadataOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-metadataoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Monitoring": "The monitoring for the instance\\. \n*Required*: No \n*Type*: [Monitoring](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-monitoring.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkInterfaces": "One or more network interfaces\\. If you specify a network interface, you must specify any security groups and subnets as part of the network interface\\. \n*Required*: No \n*Type*: List of [NetworkInterface](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Placement": "The placement for the instance\\. \n*Required*: No \n*Type*: [Placement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-placement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrivateDnsNameOptions": "The options for the instance hostname\\. The default values are inherited from the subnet\\. \n*Required*: No \n*Type*: [PrivateDnsNameOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-privatednsnameoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RamDiskId": "The ID of the RAM disk\\. \nWe recommend that you use PV\\-GRUB instead of kernels and RAM disks\\. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon Elastic Compute Cloud User Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroupIds": "One or more security group IDs\\. You can create a security group using [CreateSecurityGroup](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html)\\. You cannot specify both a security group ID and security name in the same request\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroups": "One or more security group names\\. For a nondefault VPC, you must use security group IDs instead\\. You cannot specify both a security group ID and security name in the same request\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TagSpecifications": "The tags to apply to the resources that are created during instance launch\\. \nYou can specify tags for the following resources only: \n+ Instances\n+ Volumes\n+ Elastic graphics\n+ Spot Instance requests\n+ Network interfaces\nTo tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html)\\. \nTo tag the launch template itself, you must use the [TagSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html) parameter\\.\n*Required*: No \n*Type*: List of [TagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-tagspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserData": "The user data to make available to the instance\\. You must provide base64\\-encoded text\\. User data is limited to 16 KB\\. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) \\(Linux\\) or [Work with instance user data](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instancedata-add-user-data.html) \\(Windows\\) in the *Amazon Elastic Compute Cloud User Guide*\\. \nIf you are creating the launch template for use with AWS Batch, the user data must be provided in the [ MIME multi\\-part archive format](https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive)\\. For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate LaunchTemplateElasticInferenceAccelerator": { + "Count": "The number of elastic inference accelerators to attach to the instance\\. \nDefault: 1 \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of elastic inference accelerator\\. The possible values are eia1\\.medium, eia1\\.large, and eia1\\.xlarge\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate LaunchTemplateTagSpecification": { + "ResourceType": "The type of resource\\. To tag the launch template, `ResourceType` must be `launch-template`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `capacity-reservation | capacity-reservation-fleet | carrier-gateway | client-vpn-endpoint | coip-pool | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | instance-event-window | internet-gateway | ipam | ipam-pool | ipam-resource-discovery | ipam-resource-discovery-association | ipam-scope | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | launch-template | local-gateway | local-gateway-route-table | local-gateway-route-table-virtual-interface-group-association | local-gateway-route-table-vpc-association | local-gateway-virtual-interface | local-gateway-virtual-interface-group | natgateway | network-acl | network-insights-access-scope | network-insights-access-scope-analysis | network-insights-analysis | network-insights-path | network-interface | placement-group | prefix-list | replace-root-volume-task | reserved-instances | route-server | route-server-endpoint | route-server-peer | route-table | security-group | security-group-rule | snapshot | spot-fleet-request | spot-instances-request | subnet | subnet-cidr-reservation | traffic-mirror-filter | traffic-mirror-filter-rule | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-policy-table | transit-gateway-route-table | transit-gateway-route-table-announcement | verified-access-endpoint | verified-access-group | verified-access-instance | verified-access-policy | verified-access-trust-provider | volume | vpc | vpc-block-public-access-exclusion | vpc-endpoint | vpc-endpoint-connection | vpc-endpoint-connection-device-type | vpc-endpoint-service | vpc-endpoint-service-permission | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-connection-device-type | vpn-gateway` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags for the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate LicenseSpecification": { + "LicenseConfigurationArn": "The Amazon Resource Name \\(ARN\\) of the license configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate MaintenanceOptions": { + "AutoRecovery": "Disables the automatic recovery behavior of your instance or sets it to default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `default | disabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate MemoryGiBPerVCpu": { + "Max": "The maximum amount of memory per vCPU, in GiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Min": "The minimum amount of memory per vCPU, in GiB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate MemoryMiB": { + "Max": "The maximum amount of memory, in MiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Min": "The minimum amount of memory, in MiB\\. To specify no minimum limit, specify `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate MetadataOptions": { + "HttpEndpoint": "Enables or disables the HTTP metadata endpoint on your instances\\. If the parameter is not specified, the default state is `enabled`\\. \nIf you specify a value of `disabled`, you will not be able to access your instance metadata\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disabled | enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HttpProtocolIpv6": "Enables or disables the IPv6 endpoint for the instance metadata service\\. \nDefault: `disabled` \n*Required*: No \n*Type*: String \n*Allowed values*: `disabled | enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HttpPutResponseHopLimit": "The desired HTTP PUT response hop limit for instance metadata requests\\. The larger the number, the further instance metadata requests can travel\\. \nDefault: `1` \nPossible values: Integers from 1 to 64 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HttpTokens": "IMDSv2 uses token\\-backed sessions\\. Set the use of HTTP tokens to `optional` \\(in other words, set the use of IMDSv2 to `optional`\\) or `required` \\(in other words, set the use of IMDSv2 to `required`\\)\\. \n+ `optional` \\- When IMDSv2 is optional, you can choose to retrieve instance metadata with or without a session token in your request\\. If you retrieve the IAM role credentials without a token, the IMDSv1 role credentials are returned\\. If you retrieve the IAM role credentials using a valid session token, the IMDSv2 role credentials are returned\\.\n+ `required` \\- When IMDSv2 is required, you must send a session token with any instance metadata retrieval requests\\. In this state, retrieving the IAM role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not available\\.\nDefault: `optional` \n*Required*: No \n*Type*: String \n*Allowed values*: `optional | required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceMetadataTags": "Set to `enabled` to allow access to instance tags from the instance metadata\\. Set to `disabled` to turn off access to instance tags from the instance metadata\\. For more information, see [Work with instance tags using the instance metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#work-with-tags-in-IMDS)\\. \nDefault: `disabled` \n*Required*: No \n*Type*: String \n*Allowed values*: `disabled | enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate Monitoring": { + "Enabled": "Specify `true` to enable detailed monitoring\\. Otherwise, basic monitoring is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate NetworkBandwidthGbps": { + "Max": "The maximum amount of network bandwidth, in Gbps\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Min": "The minimum amount of network bandwidth, in Gbps\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate NetworkInterface": { + "AssociateCarrierIpAddress": "Indicates whether to associate a Carrier IP address with eth0 for a new network interface\\. \nUse this option when you launch an instance in a Wavelength Zone and want to associate a Carrier IP address with the network interface\\. For more information about Carrier IP addresses, see [Carrier IP addresses](https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#provider-owned-ip) in the * AWS Wavelength Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AssociatePublicIpAddress": "Associates a public IPv4 address with eth0 for a new network interface\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeleteOnTermination": "Indicates whether the network interface is deleted when the instance is terminated\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description for the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeviceIndex": "The device index for the network interface attachment\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Groups": "The IDs of one or more security groups\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InterfaceType": "The type of network interface\\. To create an Elastic Fabric Adapter \\(EFA\\), specify `efa`\\. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \nIf you are not creating an EFA, specify `interface` or omit this parameter\\. \nValid values: `interface` \\| `efa` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ipv4PrefixCount": "The number of IPv4 prefixes to be automatically assigned to the network interface\\. You cannot use this option if you use the `Ipv4Prefix` option\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ipv4Prefixes": "One or more IPv4 prefixes to be assigned to the network interface\\. You cannot use this option if you use the `Ipv4PrefixCount` option\\. \n*Required*: No \n*Type*: List of [Ipv4PrefixSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ipv4prefixspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ipv6AddressCount": "The number of IPv6 addresses to assign to a network interface\\. Amazon EC2 automatically selects the IPv6 addresses from the subnet range\\. You can't use this option if specifying specific IPv6 addresses\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ipv6Addresses": "One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet\\. You can't use this option if you're specifying a number of IPv6 addresses\\. \n*Required*: No \n*Type*: List of [Ipv6Add](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ipv6add.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ipv6PrefixCount": "The number of IPv6 prefixes to be automatically assigned to the network interface\\. You cannot use this option if you use the `Ipv6Prefix` option\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ipv6Prefixes": "One or more IPv6 prefixes to be assigned to the network interface\\. You cannot use this option if you use the `Ipv6PrefixCount` option\\. \n*Required*: No \n*Type*: List of [Ipv6PrefixSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ipv6prefixspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkCardIndex": "The index of the network card\\. Some instance types support multiple network cards\\. The primary network interface must be assigned to network card index 0\\. The default is network card index 0\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkInterfaceId": "The ID of the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrivateIpAddress": "The primary private IPv4 address of the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrivateIpAddresses": "One or more private IPv4 addresses\\. \n*Required*: No \n*Type*: List of [PrivateIpAdd](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-privateipadd.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecondaryPrivateIpAddressCount": "The number of secondary private IPv4 addresses to assign to a network interface\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetId": "The ID of the subnet for the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate NetworkInterfaceCount": { + "Max": "The maximum number of network interfaces\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Min": "The minimum number of network interfaces\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate Placement": { + "Affinity": "The affinity setting for an instance on a Dedicated Host\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AvailabilityZone": "The Availability Zone for the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GroupId": "The Group Id of a placement group\\. You must specify the Placement Group **Group Id** to launch an instance in a shared placement group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GroupName": "The name of the placement group for the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HostId": "The ID of the Dedicated Host for the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HostResourceGroupArn": "The ARN of the host resource group in which to launch the instances\\. If you specify a host resource group ARN, omit the **Tenancy** parameter or set it to `host`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PartitionNumber": "The number of the partition the instance should launch in\\. Valid only if the placement group strategy is set to `partition`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SpreadDomain": "Reserved for future use\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tenancy": "The tenancy of the instance \\(if the instance is running in a VPC\\)\\. An instance with a tenancy of dedicated runs on single\\-tenant hardware\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dedicated | default | host` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate PrivateDnsNameOptions": { + "EnableResourceNameDnsAAAARecord": "Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableResourceNameDnsARecord": "Indicates whether to respond to DNS queries for instance hostnames with DNS A records\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HostnameType": "The type of hostname for EC2 instances\\. For IPv4 only subnets, an instance DNS name must be based on the instance IPv4 address\\. For IPv6 only subnets, an instance DNS name must be based on the instance ID\\. For dual\\-stack subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID\\. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ip-name | resource-name` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate PrivateIpAdd": { + "Primary": "Indicates whether the private IPv4 address is the primary private IPv4 address\\. Only one IPv4 address can be designated as primary\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrivateIpAddress": "The private IPv4 address\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate SpotOptions": { + "BlockDurationMinutes": "Deprecated\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceInterruptionBehavior": "The behavior when a Spot Instance is interrupted\\. The default is `terminate`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `hibernate | stop | terminate` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxPrice": "The maximum hourly price you're willing to pay for the Spot Instances\\. We do not recommend using this parameter because it can lead to increased interruptions\\. If you do not specify this parameter, you will pay the current Spot price\\. \nIf you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SpotInstanceType": "The Spot Instance request type\\. \nIf you are using Spot Instances with an Auto Scaling group, use `one-time` requests, as the Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is below its desired capacity\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `one-time | persistent` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ValidUntil": "The end date of the request, in UTC format \\(*YYYY\\-MM\\-DD*T*HH:MM:SS*Z\\)\\. Supported only for persistent requests\\. \n+ For a persistent request, the request remains active until the `ValidUntil` date and time is reached\\. Otherwise, the request remains active until you cancel it\\.\n+ For a one\\-time request, `ValidUntil` is not supported\\. The request remains active until all instances launch or you cancel the request\\.\nDefault: 7 days from the current date \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate TagSpecification": { + "ResourceType": "The type of resource to tag\\. \nThe `Valid Values` are all the resource types that can be tagged\\. However, when creating a launch template, you can specify tags for the following resource types only: `instance` \\| `volume` \\| `elastic-gpu` \\| `network-interface` \\| `spot-instances-request` \nTo tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `capacity-reservation | capacity-reservation-fleet | carrier-gateway | client-vpn-endpoint | coip-pool | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | instance-event-window | internet-gateway | ipam | ipam-pool | ipam-resource-discovery | ipam-resource-discovery-association | ipam-scope | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | launch-template | local-gateway | local-gateway-route-table | local-gateway-route-table-virtual-interface-group-association | local-gateway-route-table-vpc-association | local-gateway-virtual-interface | local-gateway-virtual-interface-group | natgateway | network-acl | network-insights-access-scope | network-insights-access-scope-analysis | network-insights-analysis | network-insights-path | network-interface | placement-group | prefix-list | replace-root-volume-task | reserved-instances | route-server | route-server-endpoint | route-server-peer | route-table | security-group | security-group-rule | snapshot | spot-fleet-request | spot-instances-request | subnet | subnet-cidr-reservation | traffic-mirror-filter | traffic-mirror-filter-rule | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-policy-table | transit-gateway-route-table | transit-gateway-route-table-announcement | verified-access-endpoint | verified-access-group | verified-access-instance | verified-access-policy | verified-access-trust-provider | volume | vpc | vpc-block-public-access-exclusion | vpc-endpoint | vpc-endpoint-connection | vpc-endpoint-connection-device-type | vpc-endpoint-service | vpc-endpoint-service-permission | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-connection-device-type | vpn-gateway` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to apply to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate TotalLocalStorageGB": { + "Max": "The maximum amount of total local storage, in GB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Min": "The minimum amount of total local storage, in GB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LaunchTemplate VCpuCount": { + "Max": "The maximum number of vCPUs\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Min": "The minimum number of vCPUs\\. To specify no minimum limit, specify `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LocalGatewayRoute": { + "DestinationCidrBlock": "The CIDR block used for destination matches\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LocalGatewayRouteTableId": "The ID of the local gateway route table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LocalGatewayVirtualInterfaceGroupId": "The ID of the virtual interface group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkInterfaceId": "The ID of the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::LocalGatewayRouteTableVPCAssociation": { + "LocalGatewayRouteTableId": "The ID of the local gateway route table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags assigned to the association\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcId": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::NatGateway": { + "AllocationId": "\\[Public NAT gateway only\\] The allocation ID of the Elastic IP address that's associated with the NAT gateway\\. This property is required for a public NAT gateway and cannot be specified with a private NAT gateway\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ConnectivityType": "Indicates whether the NAT gateway supports public or private connectivity\\. The default is public connectivity\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `private | public` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MaxDrainDurationSeconds": "Property description not available\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrivateIpAddress": "The private IPv4 address to assign to the NAT gateway\\. If you don't provide an address, a private IPv4 address will be automatically assigned\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecondaryAllocationIds": "Property description not available\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecondaryPrivateIpAddressCount": "Property description not available\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecondaryPrivateIpAddresses": "Property description not available\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetId": "The ID of the subnet in which the NAT gateway is located\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags for the NAT gateway\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkAcl": { + "Tags": "The tags for the network ACL\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcId": "The ID of the VPC for the network ACL\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::NetworkAclEntry": { + "CidrBlock": "The IPv4 CIDR range to allow or deny, in CIDR notation \\(for example, 172\\.16\\.0\\.0/24\\)\\. Requirement is conditional: You must specify the `CidrBlock` or `Ipv6CidrBlock` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Egress": "Whether this rule applies to egress traffic from the subnet \\(`true`\\) or ingress traffic to the subnet \\(`false`\\)\\. By default, AWS CloudFormation specifies `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Icmp": "The Internet Control Message Protocol \\(ICMP\\) code and type\\. Requirement is conditional: Required if specifying 1 \\(ICMP\\) for the protocol parameter\\. \n*Required*: No \n*Type*: [Icmp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-icmp.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ipv6CidrBlock": "The IPv6 network range to allow or deny, in CIDR notation\\. Requirement is conditional: You must specify the `CidrBlock` or `Ipv6CidrBlock` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkAclId": "The ID of the ACL for the entry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PortRange": "The range of port numbers for the UDP/TCP protocol\\. Conditional required if specifying 6 \\(TCP\\) or 17 \\(UDP\\) for the protocol parameter\\. \n*Required*: No \n*Type*: [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "The IP protocol that the rule applies to\\. You must specify \\-1 or a protocol number\\. You can specify \\-1 for all protocols\\. \nIf you specify \\-1, all ports are opened and the `PortRange` property is ignored\\.\n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleAction": "Whether to allow or deny traffic that matches the rule; valid values are \"allow\" or \"deny\"\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `allow | deny` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleNumber": "Rule number to assign to the entry, such as 100\\. ACL entries are processed in ascending order by rule number\\. Entries can't use the same rule number unless one is an egress rule and the other is an ingress rule\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::NetworkAclEntry Icmp": { + "Code": "The Internet Control Message Protocol \\(ICMP\\) code\\. You can use \\-1 to specify all ICMP codes for the given ICMP type\\. Requirement is conditional: Required if you specify 1 \\(ICMP\\) for the protocol parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The Internet Control Message Protocol \\(ICMP\\) type\\. You can use \\-1 to specify all ICMP types\\. Conditional requirement: Required if you specify 1 \\(ICMP\\) for the `CreateNetworkAclEntry` protocol parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkAclEntry PortRange": { + "From": "The first port in the range\\. Required if you specify 6 \\(TCP\\) or 17 \\(UDP\\) for the protocol parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "To": "The last port in the range\\. Required if you specify 6 \\(TCP\\) or 17 \\(UDP\\) for the protocol parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkInsightsAccessScope": { + "ExcludePaths": "The paths to exclude\\. \n*Required*: No \n*Type*: List of [AccessScopePathRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-accessscopepathrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MatchPaths": "The paths to match\\. \n*Required*: No \n*Type*: List of [AccessScopePathRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-accessscopepathrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkInsightsAccessScope AccessScopePathRequest": { + "Destination": "The destination\\. \n*Required*: No \n*Type*: [PathStatementRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-pathstatementrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Source": "The source\\. \n*Required*: No \n*Type*: [PathStatementRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-pathstatementrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ThroughResources": "The through resources\\. \n*Required*: No \n*Type*: List of [ThroughResourcesStatementRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-throughresourcesstatementrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::NetworkInsightsAccessScope PacketHeaderStatementRequest": { + "DestinationAddresses": "The destination addresses\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DestinationPorts": "The destination ports\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DestinationPrefixLists": "The destination prefix lists\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Protocols": "The protocols\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceAddresses": "The source addresses\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourcePorts": "The source ports\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourcePrefixLists": "The source prefix lists\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::NetworkInsightsAccessScope PathStatementRequest": { + "PacketHeaderStatement": "The packet header statement\\. \n*Required*: No \n*Type*: [PacketHeaderStatementRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-packetheaderstatementrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceStatement": "The resource statement\\. \n*Required*: No \n*Type*: [ResourceStatementRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-resourcestatementrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::NetworkInsightsAccessScope ResourceStatementRequest": { + "ResourceTypes": "The resource types\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Resources": "The resources\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::NetworkInsightsAccessScope ThroughResourcesStatementRequest": { + "ResourceStatement": "The resource statement\\. \n*Required*: No \n*Type*: [ResourceStatementRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-resourcestatementrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::NetworkInsightsAccessScopeAnalysis": { + "NetworkInsightsAccessScopeId": "The ID of the Network Access Scope\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkInsightsAnalysis": { + "AdditionalAccounts": "The member accounts that contain resources that the path can traverse\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FilterInArns": "The Amazon Resource Names \\(ARN\\) of the resources that the path must traverse\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NetworkInsightsPathId": "The ID of the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags to apply\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkInsightsAnalysis AdditionalDetail": { + "AdditionalDetailType": "The information type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Component": "The path component\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkInsightsAnalysis AlternatePathHint": { + "ComponentArn": "The Amazon Resource Name \\(ARN\\) of the component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ComponentId": "The ID of the component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkInsightsAnalysis AnalysisAclRule": { + "Cidr": "The IPv4 address range, in CIDR notation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Egress": "Indicates whether the rule is an outbound rule\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PortRange": "The range of ports\\. \n*Required*: No \n*Type*: [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "The protocol\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleAction": "Indicates whether to allow or deny traffic that matches the rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleNumber": "The rule number\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkInsightsAnalysis AnalysisComponent": { + "Arn": "The Amazon Resource Name \\(ARN\\) of the component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "The ID of the component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkInsightsAnalysis AnalysisLoadBalancerListener": { + "InstancePort": "\\[Classic Load Balancers\\] The back\\-end port for the listener\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoadBalancerPort": "The port on which the load balancer is listening\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkInsightsAnalysis AnalysisLoadBalancerTarget": { + "Address": "The IP address\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `15` \n*Pattern*: `^([0-9]{1,3}.){3}[0-9]{1,3}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AvailabilityZone": "The Availability Zone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Instance": "Information about the instance\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "The port on which the target is listening\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkInsightsAnalysis AnalysisPacketHeader": { + "DestinationAddresses": "The destination addresses\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationPortRanges": "The destination port ranges\\. \n*Required*: No \n*Type*: List of [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "The protocol\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceAddresses": "The source addresses\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourcePortRanges": "The source port ranges\\. \n*Required*: No \n*Type*: List of [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkInsightsAnalysis AnalysisRouteTableRoute": { + "NatGatewayId": "The ID of a NAT gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkInterfaceId": "The ID of a network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Origin": "Describes how the route was created\\. The following are the possible values: \n+ CreateRouteTable \\- The route was automatically created when the route table was created\\.\n+ CreateRoute \\- The route was manually added to the route table\\.\n+ EnableVgwRoutePropagation \\- The route was propagated by route propagation\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "State": "The state\\. The following are the possible values: \n+ active\n+ blackhole\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitGatewayId": "The ID of a transit gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcPeeringConnectionId": "The ID of a VPC peering connection\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "destinationCidr": "The destination IPv4 address, in CIDR notation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "destinationPrefixListId": "The prefix of the AWS service\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "egressOnlyInternetGatewayId": "The ID of an egress\\-only internet gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "gatewayId": "The ID of the gateway, such as an internet gateway or virtual private gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "instanceId": "The ID of the instance, such as a NAT instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkInsightsAnalysis AnalysisSecurityGroupRule": { + "Cidr": "The IPv4 address range, in CIDR notation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Direction": "The direction\\. The following are the possible values: \n+ egress\n+ ingress\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PortRange": "The port range\\. \n*Required*: No \n*Type*: [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrefixListId": "The prefix list ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "The protocol name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroupId": "The security group ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkInsightsAnalysis Explanation": { + "Acl": "The network ACL\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AclRule": "The network ACL rule\\. \n*Required*: No \n*Type*: [AnalysisAclRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisaclrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Address": "The IPv4 address, in CIDR notation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `15` \n*Pattern*: `^([0-9]{1,3}.){3}[0-9]{1,3}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Addresses": "The IPv4 addresses, in CIDR notation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AttachedTo": "The resource to which the component is attached\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AvailabilityZones": "The Availability Zones\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Cidrs": "The CIDR ranges\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClassicLoadBalancerListener": "The listener for a Classic Load Balancer\\. \n*Required*: No \n*Type*: [AnalysisLoadBalancerListener](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisloadbalancerlistener.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Component": "The component\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ComponentAccount": "The AWS account for the component\\. \n*Required*: No \n*Type*: String \n*Pattern*: `\\d{12}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ComponentRegion": "The Region for the component\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[a-z]{2}-[a-z]+-[1-9]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomerGateway": "The customer gateway\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Destination": "The destination\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationVpc": "The destination VPC\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Direction": "The direction\\. The following are the possible values: \n+ egress\n+ ingress\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ElasticLoadBalancerListener": "The load balancer listener\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExplanationCode": "The explanation code\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IngressRouteTable": "The route table\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InternetGateway": "The internet gateway\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoadBalancerArn": "The Amazon Resource Name \\(ARN\\) of the load balancer\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1283` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoadBalancerListenerPort": "The listener port of the load balancer\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoadBalancerTarget": "The target\\. \n*Required*: No \n*Type*: [AnalysisLoadBalancerTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisloadbalancertarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoadBalancerTargetGroup": "The target group\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoadBalancerTargetGroups": "The target groups\\. \n*Required*: No \n*Type*: List of [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoadBalancerTargetPort": "The target port\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MissingComponent": "The missing component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NatGateway": "The NAT gateway\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkInterface": "The network interface\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PacketField": "The packet field\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "The port\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PortRanges": "The port ranges\\. \n*Required*: No \n*Type*: List of [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrefixList": "The prefix list\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocols": "The protocols\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RouteTable": "The route table\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RouteTableRoute": "The route table route\\. \n*Required*: No \n*Type*: [AnalysisRouteTableRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisroutetableroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroup": "The security group\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroupRule": "The security group rule\\. \n*Required*: No \n*Type*: [AnalysisSecurityGroupRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysissecuritygrouprule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroups": "The security groups\\. \n*Required*: No \n*Type*: List of [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceVpc": "The source VPC\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "State": "The state\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Subnet": "The subnet\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetRouteTable": "The route table for the subnet\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitGateway": "The transit gateway\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitGatewayAttachment": "The transit gateway attachment\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitGatewayRouteTable": "The transit gateway route table\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitGatewayRouteTableRoute": "The transit gateway route table route\\. \n*Required*: No \n*Type*: [TransitGatewayRouteTableRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-transitgatewayroutetableroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Vpc": "The component VPC\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcPeeringConnection": "The VPC peering connection\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpnConnection": "The VPN connection\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpnGateway": "The VPN gateway\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "vpcEndpoint": "The VPC endpoint\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkInsightsAnalysis PathComponent": { + "AclRule": "The network ACL rule\\. \n*Required*: No \n*Type*: [AnalysisAclRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisaclrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AdditionalDetails": "The additional details\\. \n*Required*: No \n*Type*: List of [AdditionalDetail](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-additionaldetail.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Component": "The component\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationVpc": "The destination VPC\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ElasticLoadBalancerListener": "The load balancer listener\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Explanations": "The explanation codes\\. \n*Required*: No \n*Type*: List of [Explanation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InboundHeader": "The inbound header\\. \n*Required*: No \n*Type*: [AnalysisPacketHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysispacketheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutboundHeader": "The outbound header\\. \n*Required*: No \n*Type*: [AnalysisPacketHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysispacketheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RouteTableRoute": "The route table route\\. \n*Required*: No \n*Type*: [AnalysisRouteTableRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisroutetableroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroupRule": "The security group rule\\. \n*Required*: No \n*Type*: [AnalysisSecurityGroupRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysissecuritygrouprule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SequenceNumber": "The sequence number\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceVpc": "The source VPC\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Subnet": "The subnet\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitGateway": "The transit gateway\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitGatewayRouteTableRoute": "The route in a transit gateway route table\\. \n*Required*: No \n*Type*: [TransitGatewayRouteTableRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-transitgatewayroutetableroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Vpc": "The component VPC\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkInsightsAnalysis PortRange": { + "From": "The first port in the range\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "To": "The last port in the range\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkInsightsAnalysis TransitGatewayRouteTableRoute": { + "AttachmentId": "The ID of the route attachment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationCidr": "The CIDR block used for destination matches\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrefixListId": "The ID of the prefix list\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceId": "The ID of the resource for the route attachment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceType": "The resource type for the route attachment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RouteOrigin": "The route origin\\. The following are the possible values: \n+ static\n+ propagated\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "State": "The state of the route\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkInsightsPath": { + "Destination": "The AWS resource that is the destination of the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DestinationIp": "The IP address of the AWS resource that is the destination of the path\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `15` \n*Pattern*: `^([0-9]{1,3}.){3}[0-9]{1,3}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DestinationPort": "The destination port\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Protocol": "The protocol\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `tcp | udp` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Source": "The AWS resource that is the source of the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceIp": "The IP address of the AWS resource that is the source of the path\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `15` \n*Pattern*: `^([0-9]{1,3}.){3}[0-9]{1,3}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags to add to the path\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkInterface": { + "Description": "A description for the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GroupSet": "The security group IDs associated with this network interface\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InterfaceType": "The type of network interface\\. The default is `interface`\\. The supported values are `efa` and `trunk`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `branch | efa | trunk` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Ipv6AddressCount": "The number of IPv6 addresses to assign to a network interface\\. Amazon EC2 automatically selects the IPv6 addresses from the subnet range\\. To specify specific IPv6 addresses, use the `Ipv6Addresses` property and don't specify this property\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ipv6Addresses": "One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet to associate with the network interface\\. If you're specifying a number of IPv6 addresses, use the `Ipv6AddressCount` property and don't specify this property\\. \n*Required*: No \n*Type*: List of [InstanceIpv6Address](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinterface-instanceipv6address.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrivateIpAddress": "Assigns a single private IP address to the network interface, which is used as the primary private IP address\\. If you want to specify multiple private IP address, use the `PrivateIpAddresses` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PrivateIpAddresses": "Assigns private IP addresses to the network interface\\. You can specify a primary private IP address by setting the value of the `Primary` property to `true` in the `PrivateIpAddressSpecification` property\\. If you want EC2 to automatically assign private IP addresses, use the `SecondaryPrivateIpAddressCount` property and do not specify this property\\. \n*Required*: No \n*Type*: List of [PrivateIpAddressSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinterface-privateipaddressspecification.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "SecondaryPrivateIpAddressCount": "The number of secondary private IPv4 addresses to assign to a network interface\\. When you specify a number of secondary IPv4 addresses, Amazon EC2 selects these IP addresses within the subnet's IPv4 CIDR range\\. You can't specify this option and specify more than one private IP address using `privateIpAddresses`\\. \nYou can't specify a count of private IPv4 addresses if you've specified one of the following: specific private IPv4 addresses, specific IPv4 prefixes, or a count of IPv4 prefixes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceDestCheck": "Enable or disable source/destination checks, which ensure that the instance is either the source or the destination of any traffic that it receives\\. If the value is `true`, source/destination checks are enabled; otherwise, they are disabled\\. The default value is `true`\\. You must disable source/destination checks if the instance runs services such as network address translation, routing, or firewalls\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetId": "The ID of the subnet to associate with the network interface\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An arbitrary set of tags \\(key\\-value pairs\\) for this network interface\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkInterface InstanceIpv6Address": { + "Ipv6Address": "An IPv6 address to associate with the network interface\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkInterface PrivateIpAddressSpecification": { + "Primary": "Sets the private IP address as the primary private address\\. You can set only one primary private IP address\\. If you don't specify a primary private IP address, Amazon EC2 automatically assigns a primary private IP address\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "PrivateIpAddress": "The private IP address of the network interface\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)" + }, + "AWS::EC2::NetworkInterfaceAttachment": { + "DeleteOnTermination": "Whether to delete the network interface when the instance terminates\\. By default, this value is set to `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeviceIndex": "The network interface's position in the attachment order\\. For example, the first attached network interface has a `DeviceIndex` of 0\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceId": "The ID of the instance to which you will attach the ENI\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkInterfaceId": "The ID of the ENI that you want to attach\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::NetworkInterfacePermission": { + "AwsAccountId": "The AWS account ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NetworkInterfaceId": "The ID of the network interface\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Permission": "The type of permission to grant: `INSTANCE-ATTACH` or `EIP-ASSOCIATE`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EIP-ASSOCIATE | INSTANCE-ATTACH` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::NetworkPerformanceMetricSubscription": { + "Destination": "The Region or Availability Zone that's the target for the subscription\\. For example, `eu-west-1`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Metric": "The metric used for the subscription\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `aggregate-latency` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Source": "The Region or Availability Zone that's the source for the subscription\\. For example, `us-east-1`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Statistic": "The statistic used for the subscription\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `p50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::PlacementGroup": { + "PartitionCount": "The number of partitions\\. Valid only when **Strategy** is set to `partition`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SpreadLevel": "Determines how placement groups spread instances\\. \n+ Host \u2013 You can use `host` only with Outpost placement groups\\.\n+ Rack \u2013 No usage restrictions\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `host | rack` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Strategy": "The placement strategy\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `cluster | partition | spread` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags to apply to the new placement group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::PrefixList": { + "AddressFamily": "The IP address type\\. \nValid Values: `IPv4` \\| `IPv6` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Entries": "One or more entries for the prefix list\\. \n*Required*: No \n*Type*: List of [Entry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-prefixlist-entry.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxEntries": "The maximum number of entries for the prefix list\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrefixListName": "A name for the prefix list\\. \nConstraints: Up to 255 characters in length\\. The name cannot start with `com.amazonaws`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags for the prefix list\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::PrefixList Entry": { + "Cidr": "The CIDR block\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description for the entry\\. \nConstraints: Up to 255 characters in length\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::Route": { + "CarrierGatewayId": "The ID of the carrier gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationCidrBlock": "The IPv4 CIDR block used for the destination match\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DestinationIpv6CidrBlock": "The IPv6 CIDR block used for the destination match\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EgressOnlyInternetGatewayId": "The ID of the egress\\-only internet gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GatewayId": "The ID of an internet gateway or virtual private gateway attached to your VPC\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceId": "The ID of a NAT instance in your VPC\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LocalGatewayId": "The ID of the local gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NatGatewayId": "The ID of a NAT gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkInterfaceId": "The ID of the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RouteTableId": "The ID of the route table\\. The routing table must be associated with the same VPC that the virtual private gateway is attached to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TransitGatewayId": "The ID of a transit gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcEndpointId": "The ID of a VPC endpoint\\. Supported for Gateway Load Balancer endpoints only\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcPeeringConnectionId": "The ID of a VPC peering connection\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::RouteTable": { + "Tags": "Any tags assigned to the route table\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcId": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SecurityGroup": { + "GroupDescription": "A description for the security group\\. This is informational only\\. \nConstraints: Up to 255 characters in length \nConstraints for EC2\\-Classic: ASCII characters \nConstraints for EC2\\-VPC: a\\-z, A\\-Z, 0\\-9, spaces, and \\.\\_\\-:/\\(\\)\\#,@\\[\\]\\+=&;\\{\\}\\!$\\* \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GroupName": "The name of the security group\\. \nConstraints: Up to 255 characters in length\\. Cannot start with `sg-`\\. \nConstraints for EC2\\-Classic: ASCII characters \nConstraints for EC2\\-VPC: a\\-z, A\\-Z, 0\\-9, spaces, and \\.\\_\\-:/\\(\\)\\#,@\\[\\]\\+=&;\\{\\}\\!$\\* \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecurityGroupEgress": "\\[VPC only\\] The outbound rules associated with the security group\\. There is a short interruption during which you cannot connect to the security group\\. \n*Required*: No \n*Type*: List of [Egress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "SecurityGroupIngress": "The inbound rules associated with the security group\\. There is a short interruption during which you cannot connect to the security group\\. \n*Required*: No \n*Type*: List of [Ingress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule-1.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "Tags": "Any tags assigned to the security group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcId": "\\[VPC only\\] The ID of the VPC for the security group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SecurityGroup Egress": { + "CidrIp": "The IPv4 address range, in CIDR format\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CidrIpv6": "The IPv6 address range, in CIDR format\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description for the security group rule\\. \nConstraints: Up to 255 characters in length\\. Allowed characters are a\\-z, A\\-Z, 0\\-9, spaces, and \\.\\_\\-:/\\(\\)\\#,@\\[\\]\\+=;\\{\\}\\!$\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationPrefixListId": "\\[EC2\\-VPC only\\] The prefix list IDs for the destination AWS service\\. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationSecurityGroupId": "The ID of the destination VPC security group\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FromPort": "If the protocol is TCP or UDP, this is the start of the port range\\. If the protocol is ICMP or ICMPv6, this is the type number\\. A value of \\-1 indicates all ICMP/ICMPv6 types\\. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IpProtocol": "The IP protocol name \\(`tcp`, `udp`, `icmp`, `icmpv6`\\) or number \\(see [Protocol Numbers](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)\\)\\. \n\\[VPC only\\] Use `-1` to specify all protocols\\. When authorizing security group rules, specifying `-1` or a protocol number other than `tcp`, `udp`, `icmp`, or `icmpv6` allows traffic on all ports, regardless of any port range you specify\\. For `tcp`, `udp`, and `icmp`, you must specify a port range\\. For `icmpv6`, the port range is optional; if you omit the port range, traffic for all types and codes is allowed\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ToPort": "If the protocol is TCP or UDP, this is the end of the port range\\. If the protocol is ICMP or ICMPv6, this is the code\\. A value of \\-1 indicates all ICMP/ICMPv6 codes\\. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::SecurityGroup Ingress": { + "CidrIp": "The IPv4 address range, in CIDR format\\. \nYou must specify a source security group \\(`SourcePrefixListId` or `SourceSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CidrIpv6": "The IPv6 address range, in CIDR format\\. \nYou must specify a source security group \\(`SourcePrefixListId` or `SourceSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "Updates the description of an ingress \\(inbound\\) security group rule\\. You can replace an existing description, or add a description to a rule that did not have one previously\\. \nConstraints: Up to 255 characters in length\\. Allowed characters are a\\-z, A\\-Z, 0\\-9, spaces, and \\.\\_\\-:/\\(\\)\\#,@\\[\\]\\+=;\\{\\}\\!$\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FromPort": "If the protocol is TCP or UDP, this is the start of the port range\\. If the protocol is ICMP or ICMPv6, this is the type number\\. A value of \\-1 indicates all ICMP/ICMPv6 types\\. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IpProtocol": "The IP protocol name \\(`tcp`, `udp`, `icmp`, `icmpv6`\\) or number \\(see [Protocol Numbers](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)\\)\\. \n\\[VPC only\\] Use `-1` to specify all protocols\\. When authorizing security group rules, specifying `-1` or a protocol number other than `tcp`, `udp`, `icmp`, or `icmpv6` allows traffic on all ports, regardless of any port range you specify\\. For `tcp`, `udp`, and `icmp`, you must specify a port range\\. For `icmpv6`, the port range is optional; if you omit the port range, traffic for all types and codes is allowed\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourcePrefixListId": "\\[EC2\\-VPC only\\] The ID of a prefix list\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceSecurityGroupId": "The ID of the security group\\. You must specify either the security group ID or the security group name in the request\\. For security groups in a nondefault VPC, you must specify the security group ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceSecurityGroupName": "\\[EC2\\-Classic, default VPC\\] The name of the source security group\\. You can't specify this parameter in combination with an IP address range\\. Creates rules that grant full ICMP, UDP, and TCP access\\. \nYou must specify the `GroupName` property or the `GroupId` property\\. For security groups that are in a VPC, you must use the `GroupId` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceSecurityGroupOwnerId": "\\[nondefault VPC\\] The AWS account ID for the source security group, if the source security group is in a different account\\. You can't specify this property with an IP address range\\. Creates rules that grant full ICMP, UDP, and TCP access\\. \nIf you specify `SourceSecurityGroupName` or `SourceSecurityGroupId` and that security group is owned by a different account than the account creating the stack, you must specify the `SourceSecurityGroupOwnerId`; otherwise, this property is optional\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ToPort": "If the protocol is TCP or UDP, this is the end of the port range\\. If the protocol is ICMP or ICMPv6, this is the code\\. A value of \\-1 indicates all ICMP/ICMPv6 codes\\. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::SecurityGroupEgress": { + "CidrIp": "The IPv4 address range, in CIDR format\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CidrIpv6": "The IPv6 address range, in CIDR format\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "The description of an egress \\(outbound\\) security group rule\\. \nConstraints: Up to 255 characters in length\\. Allowed characters are a\\-z, A\\-Z, 0\\-9, spaces, and \\.\\_\\-:/\\(\\)\\#,@\\[\\]\\+=;\\{\\}\\!$\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationPrefixListId": "\\[EC2\\-VPC only\\] The prefix list IDs for an AWS service\\. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DestinationSecurityGroupId": "The ID of the security group\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FromPort": "If the protocol is TCP or UDP, this is the start of the port range\\. If the protocol is ICMP or ICMPv6, this is the type number\\. A value of \\-1 indicates all ICMP/ICMPv6 types\\. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GroupId": "The ID of the security group\\. You must specify either the security group ID or the security group name in the request\\. For security groups in a nondefault VPC, you must specify the security group ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IpProtocol": "The IP protocol name \\(`tcp`, `udp`, `icmp`, `icmpv6`\\) or number \\(see [Protocol Numbers](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)\\)\\. \n\\[VPC only\\] Use `-1` to specify all protocols\\. When authorizing security group rules, specifying `-1` or a protocol number other than `tcp`, `udp`, `icmp`, or `icmpv6` allows traffic on all ports, regardless of any port range you specify\\. For `tcp`, `udp`, and `icmp`, you must specify a port range\\. For `icmpv6`, the port range is optional; if you omit the port range, traffic for all types and codes is allowed\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ToPort": "If the protocol is TCP or UDP, this is the end of the port range\\. If the protocol is ICMP or ICMPv6, this is the code\\. A value of \\-1 indicates all ICMP/ICMPv6 codes\\. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SecurityGroupIngress": { + "CidrIp": "The IPv4 address range, in CIDR format\\. \nYou must specify a source security group \\(`SourcePrefixListId` or `SourceSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CidrIpv6": "The IPv6 address range, in CIDR format\\. \nYou must specify a source security group \\(`SourcePrefixListId` or `SourceSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "Updates the description of an ingress \\(inbound\\) security group rule\\. You can replace an existing description, or add a description to a rule that did not have one previously\\. \nConstraints: Up to 255 characters in length\\. Allowed characters are a\\-z, A\\-Z, 0\\-9, spaces, and \\.\\_\\-:/\\(\\)\\#,@\\[\\]\\+=;\\{\\}\\!$\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FromPort": "The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number\\. A value of `-1` indicates all ICMP/ICMPv6 types\\. If you specify all ICMP/ICMPv6 types, you must specify all codes\\. \nUse this for ICMP and any protocol that uses ports\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GroupId": "The ID of the security group\\. You must specify either the security group ID or the security group name in the request\\. For security groups in a nondefault VPC, you must specify the security group ID\\. \nYou must specify the `GroupName` property or the `GroupId` property\\. For security groups that are in a VPC, you must use the `GroupId` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GroupName": "The name of the security group\\. \nConstraints: Up to 255 characters in length\\. Cannot start with `sg-`\\. \nConstraints for EC2\\-Classic: ASCII characters \nConstraints for EC2\\-VPC: a\\-z, A\\-Z, 0\\-9, spaces, and \\.\\_\\-:/\\(\\)\\#,@\\[\\]\\+=&;\\{\\}\\!$\\* \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IpProtocol": "The IP protocol name \\(`tcp`, `udp`, `icmp`, `icmpv6`\\) or number \\(see [Protocol Numbers](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)\\)\\. \n\\[VPC only\\] Use `-1` to specify all protocols\\. When authorizing security group rules, specifying `-1` or a protocol number other than `tcp`, `udp`, `icmp`, or `icmpv6` allows traffic on all ports, regardless of any port range you specify\\. For `tcp`, `udp`, and `icmp`, you must specify a port range\\. For `icmpv6`, the port range is optional; if you omit the port range, traffic for all types and codes is allowed\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourcePrefixListId": "\\[EC2\\-VPC only\\] The ID of a prefix list\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceSecurityGroupId": "The ID of the security group\\. You must specify either the security group ID or the security group name\\. For security groups in a nondefault VPC, you must specify the security group ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceSecurityGroupName": "\\[EC2\\-Classic, default VPC\\] The name of the source security group\\. You can't specify this parameter in combination with an IP address range\\. Creates rules that grant full ICMP, UDP, and TCP access\\. \nYou must specify the `GroupName` property or the `GroupId` property\\. For security groups that are in a VPC, you must use the `GroupId` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceSecurityGroupOwnerId": "\\[nondefault VPC\\] The AWS account ID for the source security group, if the source security group is in a different account\\. You can't specify this property with an IP address range\\. Creates rules that grant full ICMP, UDP, and TCP access\\. \nIf you specify `SourceSecurityGroupName` or `SourceSecurityGroupId` and that security group is owned by a different account than the account creating the stack, you must specify the `SourceSecurityGroupOwnerId`; otherwise, this property is optional\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ToPort": "The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code\\. A value of `-1` indicates all ICMP/ICMPv6 codes for the specified ICMP type\\. If you specify all ICMP/ICMPv6 types, you must specify all codes\\. \nUse this for ICMP and any protocol that uses ports\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet": { + "SpotFleetRequestConfigData": "Describes the configuration of a Spot Fleet request\\. \n*Required*: Yes \n*Type*: [SpotFleetRequestConfigData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::SpotFleet AcceleratorCountRequest": { + "Max": "The maximum number of accelerators\\. To specify no maximum limit, omit this parameter\\. To exclude accelerator\\-enabled instance types, set `Max` to `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Min": "The minimum number of accelerators\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet AcceleratorTotalMemoryMiBRequest": { + "Max": "The maximum amount of accelerator memory, in MiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Min": "The minimum amount of accelerator memory, in MiB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet BaselineEbsBandwidthMbpsRequest": { + "Max": "The maximum baseline bandwidth, in Mbps\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Min": "The minimum baseline bandwidth, in Mbps\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet BlockDeviceMapping": { + "DeviceName": "The device name \\(for example, `/dev/sdh` or `xvdh`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Ebs": "Parameters used to automatically set up EBS volumes when the instance is launched\\. \n*Required*: Conditional \n*Type*: [EbsBlockDevice](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-ebsblockdevice.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NoDevice": "To omit the device from the block device mapping, specify an empty string\\. When this property is specified, the device is removed from the block device mapping regardless of the assigned value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VirtualName": "The virtual device name \\(`ephemeral`N\\)\\. Instance store volumes are numbered starting from 0\\. An instance type with 2 available instance store volumes can specify mappings for `ephemeral0` and `ephemeral1`\\. The number of available instance store volumes depends on the instance type\\. After you connect to the instance, you must mount the volume\\. \nNVMe instance store volumes are automatically enumerated and assigned a device name\\. Including them in your block device mapping has no effect\\. \nConstraints: For M3 instances, you must specify instance store volumes in the block device mapping for the instance\\. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet ClassicLoadBalancer": { + "Name": "The name of the load balancer\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet ClassicLoadBalancersConfig": { + "ClassicLoadBalancers": "One or more Classic Load Balancers\\. \n*Required*: Yes \n*Type*: List of [ClassicLoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-classicloadbalancer.html) \n*Maximum*: `5` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet EbsBlockDevice": { + "DeleteOnTermination": "Indicates whether the EBS volume is deleted on instance termination\\. For more information, see [Preserving Amazon EBS volumes on instance termination](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#preserving-volumes-on-termination) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Encrypted": "Indicates whether the encryption state of an EBS volume is changed while being restored from a backing snapshot\\. The effect of setting the encryption state to `true` depends on the volume origin \\(new or from a snapshot\\), starting encryption state, ownership, and whether encryption by default is enabled\\. For more information, see [Amazon EBS Encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-parameters) in the *Amazon EC2 User Guide*\\. \nIn no case can you remove encryption from an encrypted volume\\. \nEncrypted volumes can only be attached to instances that support Amazon EBS encryption\\. For more information, see [Supported Instance Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances)\\. \nThis parameter is not returned by [DescribeImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImageAttribute.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Iops": "The number of I/O operations per second \\(IOPS\\)\\. For `gp3`, `io1`, and `io2` volumes, this represents the number of IOPS that are provisioned for the volume\\. For `gp2` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting\\. \nThe following are the supported values for each volume type: \n+ `gp3`: 3,000\\-16,000 IOPS\n+ `io1`: 100\\-64,000 IOPS\n+ `io2`: 100\\-64,000 IOPS\nFor `io1` and `io2` volumes, we guarantee 64,000 IOPS only for [Instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)\\. Other instance families guarantee performance up to 32,000 IOPS\\. \nThis parameter is required for `io1` and `io2` volumes\\. The default for `gp3` volumes is 3,000 IOPS\\. This parameter is not supported for `gp2`, `st1`, `sc1`, or `standard` volumes\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SnapshotId": "The ID of the snapshot\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VolumeSize": "The size of the volume, in GiBs\\. You must specify either a snapshot ID or a volume size\\. If you specify a snapshot, the default is the snapshot size\\. You can specify a volume size that is equal to or larger than the snapshot size\\. \nThe following are the supported volumes sizes for each volume type: \n+ `gp2` and `gp3`:1\\-16,384\n+ `io1` and `io2`: 4\\-16,384\n+ `st1` and `sc1`: 125\\-16,384\n+ `standard`: 1\\-1,024\n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VolumeType": "The volume type\\. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon EC2 User Guide*\\. If the volume type is `io1` or `io2`, you must specify the IOPS that the volume supports\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `gp2 | gp3 | io1 | io2 | sc1 | st1 | standard` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet FleetLaunchTemplateSpecification": { + "LaunchTemplateId": "The ID of the launch template\\. \nYou must specify the `LaunchTemplateId` or the `LaunchTemplateName`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LaunchTemplateName": "The name of the launch template\\. \nYou must specify the `LaunchTemplateName` or the `LaunchTemplateId`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9\\(\\)\\.\\-/_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Version": "The version number of the launch template\\. \nSpecifying `$Latest` or `$Default` for the template version number is not supported\\. However, you can specify `LatestVersionNumber` or `DefaultVersionNumber` using the `Fn::GetAtt` intrinsic function\\. For more information, see [Fn::GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#aws-resource-ec2-launchtemplate-return-values-fn--getatt)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet GroupIdentifier": { + "GroupId": "The ID of the security group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet IamInstanceProfileSpecification": { + "Arn": "The Amazon Resource Name \\(ARN\\) of the instance profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet InstanceIpv6Address": { + "Ipv6Address": "The IPv6 address\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet InstanceNetworkInterfaceSpecification": { + "AssociatePublicIpAddress": "Indicates whether to assign a public IPv4 address to an instance you launch in a VPC\\. The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one\\. You cannot specify more than one network interface in the request\\. If launching into a default subnet, the default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DeleteOnTermination": "Indicates whether the network interface is deleted when the instance is terminated\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "The description of the network interface\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DeviceIndex": "The position of the network interface in the attachment order\\. A primary network interface has a device index of 0\\. \nIf you specify a network interface when launching an instance, you must specify the device index\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Groups": "The IDs of the security groups for the network interface\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Ipv6AddressCount": "A number of IPv6 addresses to assign to the network interface\\. Amazon EC2 chooses the IPv6 addresses from the range of the subnet\\. You cannot specify this option and the option to assign specific IPv6 addresses in the same request\\. You can specify this option if you've specified a minimum number of instances to launch\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Ipv6Addresses": "The IPv6 addresses to assign to the network interface\\. You cannot specify this option and the option to assign a number of IPv6 addresses in the same request\\. You cannot specify this option if you've specified a minimum number of instances to launch\\. \n*Required*: No \n*Type*: List of [InstanceIpv6Address](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instanceipv6address.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NetworkInterfaceId": "The ID of the network interface\\. \nIf you are creating a Spot Fleet, omit this parameter because you can\u2019t specify a network interface ID in a launch specification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PrivateIpAddresses": "The private IPv4 addresses to assign to the network interface\\. Only one private IPv4 address can be designated as primary\\. You cannot specify this option if you're launching more than one instance in a [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) request\\. \n*Required*: No \n*Type*: List of [PrivateIpAddressSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-privateipaddressspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecondaryPrivateIpAddressCount": "The number of secondary private IPv4 addresses\\. You can't specify this option and specify more than one private IP address using the private IP addresses option\\. You cannot specify this option if you're launching more than one instance in a [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) request\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetId": "The ID of the subnet associated with the network interface\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet InstanceRequirementsRequest": { + "AcceleratorCount": "The minimum and maximum number of accelerators \\(GPUs, FPGAs, or AWS Inferentia chips\\) on an instance\\. \nTo exclude accelerator\\-enabled instance types, set `Max` to `0`\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [AcceleratorCountRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-acceleratorcountrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AcceleratorManufacturers": "Indicates whether instance types must have accelerators by specific manufacturers\\. \n+ For instance types with NVIDIA devices, specify `nvidia`\\.\n+ For instance types with AMD devices, specify `amd`\\.\n+ For instance types with AWS devices, specify `amazon-web-services`\\.\n+ For instance types with Xilinx devices, specify `xilinx`\\.\nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AcceleratorNames": "The accelerators that must be on the instance type\\. \n+ For instance types with NVIDIA A100 GPUs, specify `a100`\\.\n+ For instance types with NVIDIA V100 GPUs, specify `v100`\\.\n+ For instance types with NVIDIA K80 GPUs, specify `k80`\\.\n+ For instance types with NVIDIA T4 GPUs, specify `t4`\\.\n+ For instance types with NVIDIA M60 GPUs, specify `m60`\\.\n+ For instance types with AMD Radeon Pro V520 GPUs, specify `radeon-pro-v520`\\.\n+ For instance types with Xilinx VU9P FPGAs, specify ` vu9p`\\.\n+ For instance types with AWS Inferentia chips, specify `inferentia`\\.\n+ For instance types with NVIDIA GRID K520 GPUs, specify `k520`\\.\nDefault: Any accelerator \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AcceleratorTotalMemoryMiB": "The minimum and maximum amount of total accelerator memory, in MiB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [AcceleratorTotalMemoryMiBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-acceleratortotalmemorymibrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AcceleratorTypes": "The accelerator types that must be on the instance type\\. \n+ To include instance types with GPU hardware, specify `gpu`\\.\n+ To include instance types with FPGA hardware, specify `fpga`\\.\n+ To include instance types with inference hardware, specify `inference`\\.\nDefault: Any accelerator type \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AllowedInstanceTypes": "The instance types to apply your specified attributes against\\. All other instance types are ignored, even if they match your specified attributes\\. \nYou can use strings with one or more wild cards, represented by an asterisk \\(`*`\\), to allow an instance type, size, or generation\\. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`\\. \nFor example, if you specify `c5*`,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types\\. If you specify `m5a.*`, Amazon EC2 will allow all the M5a instance types, but not the M5n instance types\\. \nIf you specify `AllowedInstanceTypes`, you can't specify `ExcludedInstanceTypes`\\.\nDefault: All instance types \n*Required*: No \n*Type*: List of String \n*Maximum*: `400` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BareMetal": "Indicates whether bare metal instance types must be included, excluded, or required\\. \n+ To include bare metal instance types, specify `included`\\.\n+ To require only bare metal instance types, specify `required`\\.\n+ To exclude bare metal instance types, specify `excluded`\\.\nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BaselineEbsBandwidthMbps": "The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps\\. For more information, see [Amazon EBS\u2013optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide*\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [BaselineEbsBandwidthMbpsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-baselineebsbandwidthmbpsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BurstablePerformance": "Indicates whether burstable performance T instance types are included, excluded, or required\\. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html)\\. \n+ To include burstable performance instance types, specify `included`\\.\n+ To require only burstable performance instance types, specify `required`\\.\n+ To exclude burstable performance instance types, specify `excluded`\\.\nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CpuManufacturers": "The CPU manufacturers to include\\. \n+ For instance types with Intel CPUs, specify `intel`\\.\n+ For instance types with AMD CPUs, specify `amd`\\.\n+ For instance types with AWS CPUs, specify `amazon-web-services`\\.\nDon't confuse the CPU manufacturer with the CPU architecture\\. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image \\(AMI\\) that you specify in your launch template\\.\nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ExcludedInstanceTypes": "The instance types to exclude\\. \nYou can use strings with one or more wild cards, represented by an asterisk \\(`*`\\), to exclude an instance family, type, size, or generation\\. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`\\. \nFor example, if you specify `c5*`,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types\\. If you specify `m5a.*`, Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types\\. \nIf you specify `ExcludedInstanceTypes`, you can't specify `AllowedInstanceTypes`\\.\nDefault: No excluded instance types \n*Required*: No \n*Type*: List of String \n*Maximum*: `400` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceGenerations": "Indicates whether current or previous generation instance types are included\\. The current generation instance types are recommended for use\\. Current generation instance types are typically the latest two to three generations in each instance family\\. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*\\. \nFor current generation instance types, specify `current`\\. \nFor previous generation instance types, specify `previous`\\. \nDefault: Current and previous generation instance types \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LocalStorage": "Indicates whether instance types with instance store volumes are included, excluded, or required\\. For more information, [Amazon EC2 instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in the *Amazon EC2 User Guide*\\. \n+ To include instance types with instance store volumes, specify `included`\\.\n+ To require only instance types with instance store volumes, specify `required`\\.\n+ To exclude instance types with instance store volumes, specify `excluded`\\.\nDefault: `included` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LocalStorageTypes": "The type of local storage that is required\\. \n+ For instance types with hard disk drive \\(HDD\\) storage, specify `hdd`\\.\n+ For instance types with solid state drive \\(SSD\\) storage, specify `ssd`\\.\nDefault: `hdd` and `ssd` \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MemoryGiBPerVCpu": "The minimum and maximum amount of memory per vCPU, in GiB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [MemoryGiBPerVCpuRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-memorygibpervcpurequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MemoryMiB": "The minimum and maximum amount of memory, in MiB\\. \n*Required*: No \n*Type*: [MemoryMiBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-memorymibrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NetworkBandwidthGbps": "The minimum and maximum amount of network bandwidth, in gigabits per second \\(Gbps\\)\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [NetworkBandwidthGbpsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-networkbandwidthgbpsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NetworkInterfaceCount": "The minimum and maximum number of network interfaces\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [NetworkInterfaceCountRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-networkinterfacecountrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OnDemandMaxPricePercentageOverLowestPrice": "The price protection threshold for On\\-Demand Instances\\. This is the maximum you\u2019ll pay for an On\\-Demand Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes\\. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold\\. \nThe parameter accepts an integer, which Amazon EC2 interprets as a percentage\\. \nTo turn off price protection, specify a high value, such as `999999`\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html)\\. \nIf you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per\\-vCPU or per\\-memory price instead of the per\\-instance price\\.\nDefault: `20` \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RequireHibernateSupport": "Indicates whether instance types must support hibernation for On\\-Demand Instances\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html)\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SpotMaxPricePercentageOverLowestPrice": "The price protection threshold for Spot Instance\\. This is the maximum you\u2019ll pay for an Spot Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes\\. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold\\. \nThe parameter accepts an integer, which Amazon EC2 interprets as a percentage\\. \nTo turn off price protection, specify a high value, such as `999999`\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html)\\. \nIf you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per\\-vCPU or per\\-memory price instead of the per\\-instance price\\.\nDefault: `100` \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TotalLocalStorageGB": "The minimum and maximum amount of total local storage, in GB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [TotalLocalStorageGBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-totallocalstoragegbrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VCpuCount": "The minimum and maximum number of vCPUs\\. \n*Required*: No \n*Type*: [VCpuCountRangeRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-vcpucountrangerequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet LaunchTemplateConfig": { + "LaunchTemplateSpecification": "The launch template\\. \n*Required*: No \n*Type*: [FleetLaunchTemplateSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-fleetlaunchtemplatespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Overrides": "Any parameters that you specify override the same parameters in the launch template\\. \n*Required*: No \n*Type*: List of [LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateoverrides.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet LaunchTemplateOverrides": { + "AvailabilityZone": "The Availability Zone in which to launch the instances\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceRequirements": "The instance requirements\\. When you specify instance requirements, Amazon EC2 will identify instance types with the provided requirements, and then use your On\\-Demand and Spot allocation strategies to launch instances from these instance types, in the same way as when you specify a list of instance types\\. \nIf you specify `InstanceRequirements`, you can't specify `InstanceType`\\.\n*Required*: No \n*Type*: [InstanceRequirementsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceType": "The instance type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | mac1.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6ad.12xlarge | r6ad.16xlarge | r6ad.24xlarge | r6ad.2xlarge | r6ad.32xlarge | r6ad.48xlarge | r6ad.4xlarge | r6ad.8xlarge | r6ad.large | r6ad.metal | r6ad.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Priority": "The priority for the launch template override\\. The highest priority is launched first\\. \nIf `OnDemandAllocationStrategy` is set to `prioritized`, Spot Fleet uses priority to determine which launch template override to use first in fulfilling On\\-Demand capacity\\. \nIf the Spot `AllocationStrategy` is set to `capacityOptimizedPrioritized`, Spot Fleet uses priority on a best\\-effort basis to determine which launch template override to use in fulfilling Spot capacity, but optimizes for capacity first\\. \nValid values are whole numbers starting at `0`\\. The lower the number, the higher the priority\\. If no number is set, the launch template override has the lowest priority\\. You can set the same priority for different launch template overrides\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SpotPrice": "The maximum price per unit hour that you are willing to pay for a Spot Instance\\. We do not recommend using this parameter because it can lead to increased interruptions\\. If you do not specify this parameter, you will pay the current Spot price\\. \nIf you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetId": "The ID of the subnet in which to launch the instances\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "WeightedCapacity": "The number of units provided by the specified instance type\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet LoadBalancersConfig": { + "ClassicLoadBalancersConfig": "The Classic Load Balancers\\. \n*Required*: No \n*Type*: [ClassicLoadBalancersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-classicloadbalancersconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TargetGroupsConfig": "The target groups\\. \n*Required*: No \n*Type*: [TargetGroupsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-targetgroupsconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet MemoryGiBPerVCpuRequest": { + "Max": "The maximum amount of memory per vCPU, in GiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Min": "The minimum amount of memory per vCPU, in GiB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet MemoryMiBRequest": { + "Max": "The maximum amount of memory, in MiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Min": "The minimum amount of memory, in MiB\\. To specify no minimum limit, specify `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet NetworkBandwidthGbpsRequest": { + "Max": "The maximum amount of network bandwidth, in Gbps\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Min": "The minimum amount of network bandwidth, in Gbps\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet NetworkInterfaceCountRequest": { + "Max": "The maximum number of network interfaces\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Min": "The minimum number of network interfaces\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet PrivateIpAddressSpecification": { + "Primary": "Indicates whether the private IPv4 address is the primary private IPv4 address\\. Only one IPv4 address can be designated as primary\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PrivateIpAddress": "The private IPv4 address\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet SpotCapacityRebalance": { + "ReplacementStrategy": "The replacement strategy to use\\. Only available for fleets of type `maintain`\\. \n `launch` \\- Spot Fleet launches a new replacement Spot Instance when a rebalance notification is emitted for an existing Spot Instance in the fleet\\. Spot Fleet does not terminate the instances that receive a rebalance notification\\. You can terminate the old instances, or you can leave them running\\. You are charged for all instances while they are running\\. \n `launch-before-terminate` \\- Spot Fleet launches a new replacement Spot Instance when a rebalance notification is emitted for an existing Spot Instance in the fleet, and then, after a delay that you specify \\(in `TerminationDelay`\\), terminates the instances that received a rebalance notification\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `launch | launch-before-terminate` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TerminationDelay": "The amount of time \\(in seconds\\) that Amazon EC2 waits before terminating the old Spot Instance after launching a new replacement Spot Instance\\. \nRequired when `ReplacementStrategy` is set to `launch-before-terminate`\\. \nNot valid when `ReplacementStrategy` is set to `launch`\\. \nValid values: Minimum value of `120` seconds\\. Maximum value of `7200` seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet SpotFleetLaunchSpecification": { + "BlockDeviceMappings": "One or more block devices that are mapped to the Spot Instances\\. You can't specify both a snapshot ID and an encryption value\\. This is because only blank volumes can be encrypted on creation\\. If a snapshot is the basis for a volume, it is not blank and its encryption status is used for the volume encryption status\\. \n*Required*: No \n*Type*: List of [BlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-blockdevicemapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EbsOptimized": "Indicates whether the instances are optimized for EBS I/O\\. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance\\. This optimization isn't available with all instance types\\. Additional usage charges apply when using an EBS Optimized instance\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IamInstanceProfile": "The IAM instance profile\\. \n*Required*: No \n*Type*: [IamInstanceProfileSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-iaminstanceprofilespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ImageId": "The ID of the AMI\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceRequirements": "The attributes for the instance types\\. When you specify instance attributes, Amazon EC2 will identify instance types with those attributes\\. \nIf you specify `InstanceRequirements`, you can't specify `InstanceType`\\.\n*Required*: No \n*Type*: [InstanceRequirementsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceType": "The instance type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | mac1.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6ad.12xlarge | r6ad.16xlarge | r6ad.24xlarge | r6ad.2xlarge | r6ad.32xlarge | r6ad.48xlarge | r6ad.4xlarge | r6ad.8xlarge | r6ad.large | r6ad.metal | r6ad.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KernelId": "The ID of the kernel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KeyName": "The name of the key pair\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Monitoring": "Enable or disable monitoring for the instances\\. \n*Required*: No \n*Type*: [SpotFleetMonitoring](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetmonitoring.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NetworkInterfaces": "One or more network interfaces\\. If you specify a network interface, you must specify subnet IDs and security group IDs using the network interface\\. \n `SpotFleetLaunchSpecification` currently does not support Elastic Fabric Adapter \\(EFA\\)\\. To specify an EFA, you must use [LaunchTemplateConfig](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_LaunchTemplateConfig.html)\\.\n*Required*: No \n*Type*: List of [InstanceNetworkInterfaceSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Placement": "The placement information\\. \n*Required*: No \n*Type*: [SpotPlacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotplacement.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RamdiskId": "The ID of the RAM disk\\. Some kernels require additional drivers at launch\\. Check the kernel requirements for information about whether you need to specify a RAM disk\\. To find kernel requirements, refer to the AWS Resource Center and search for the kernel ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecurityGroups": "One or more security groups\\. When requesting instances in a VPC, you must specify the IDs of the security groups\\. When requesting instances in EC2\\-Classic, you can specify the names or the IDs of the security groups\\. \n*Required*: No \n*Type*: List of [GroupIdentifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-groupidentifier.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SpotPrice": "The maximum price per unit hour that you are willing to pay for a Spot Instance\\. We do not recommend using this parameter because it can lead to increased interruptions\\. If you do not specify this parameter, you will pay the current Spot price\\. \nIf you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetId": "The IDs of the subnets in which to launch the instances\\. To specify multiple subnets, separate them using commas; for example, \"subnet\\-1234abcdeexample1, subnet\\-0987cdef6example2\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TagSpecifications": "The tags to apply during creation\\. \n*Required*: No \n*Type*: List of [SpotFleetTagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleettagspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UserData": "The Base64\\-encoded user data that instances use when starting up\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "WeightedCapacity": "The number of units provided by the specified instance type\\. These are the same units that you chose to set the target capacity in terms of instances, or a performance characteristic such as vCPUs, memory, or I/O\\. \nIf the target capacity divided by this value is not a whole number, Amazon EC2 rounds the number of instances to the next whole number\\. If this value is not specified, the default is 1\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet SpotFleetMonitoring": { + "Enabled": "Enables monitoring for the instance\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet SpotFleetRequestConfigData": { + "AllocationStrategy": "The strategy that determines how to allocate the target Spot Instance capacity across the Spot Instance pools specified by the Spot Fleet launch configuration\\. For more information, see [Allocation strategies for Spot Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-allocation-strategy.html) in the *Amazon EC2 User Guide*\\. \npriceCapacityOptimized \\(recommended\\) \nSpot Fleet identifies the pools with the highest capacity availability for the number of instances that are launching\\. This means that we will request Spot Instances from the pools that we believe have the lowest chance of interruption in the near term\\. Spot Fleet then requests Spot Instances from the lowest priced of these pools\\. \ncapacityOptimized \nSpot Fleet identifies the pools with the highest capacity availability for the number of instances that are launching\\. This means that we will request Spot Instances from the pools that we believe have the lowest chance of interruption in the near term\\. To give certain instance types a higher chance of launching first, use `capacityOptimizedPrioritized`\\. Set a priority for each instance type by using the `Priority` parameter for `LaunchTemplateOverrides`\\. You can assign the same priority to different `LaunchTemplateOverrides`\\. EC2 implements the priorities on a best\\-effort basis, but optimizes for capacity first\\. `capacityOptimizedPrioritized` is supported only if your Spot Fleet uses a launch template\\. Note that if the `OnDemandAllocationStrategy` is set to `prioritized`, the same priority is applied when fulfilling On\\-Demand capacity\\. \ndiversified \nSpot Fleet requests instances from all of the Spot Instance pools that you specify\\. \nlowestPrice \nSpot Fleet requests instances from the lowest priced Spot Instance pool that has available capacity\\. If the lowest priced pool doesn't have available capacity, the Spot Instances come from the next lowest priced pool that has available capacity\\. If a pool runs out of capacity before fulfilling your desired capacity, Spot Fleet will continue to fulfill your request by drawing from the next lowest priced pool\\. To ensure that your desired capacity is met, you might receive Spot Instances from several pools\\. Because this strategy only considers instance price and not capacity availability, it might lead to high interruption rates\\.\nDefault: `lowestPrice` \n*Required*: No \n*Type*: String \n*Allowed values*: `capacityOptimized | capacityOptimizedPrioritized | diversified | lowestPrice | priceCapacityOptimized` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Context": "Reserved\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExcessCapacityTerminationPolicy": "Indicates whether running Spot Instances should be terminated if you decrease the target capacity of the Spot Fleet request below the current size of the Spot Fleet\\. \nSupported only for fleets of type `maintain`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `default | noTermination` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IamFleetRole": "The Amazon Resource Name \\(ARN\\) of an AWS Identity and Access Management \\(IAM\\) role that grants the Spot Fleet the permission to request, launch, terminate, and tag instances on your behalf\\. For more information, see [Spot Fleet Prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html#spot-fleet-prerequisites) in the *Amazon EC2 User Guide for Linux Instances*\\. Spot Fleet can terminate Spot Instances on your behalf when you cancel its Spot Fleet request or when the Spot Fleet request expires, if you set `TerminateInstancesWithExpiration`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceInterruptionBehavior": "The behavior when a Spot Instance is interrupted\\. The default is `terminate`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `hibernate | stop | terminate` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstancePoolsToUseCount": "The number of Spot pools across which to allocate your target Spot capacity\\. Valid only when Spot **AllocationStrategy** is set to `lowest-price`\\. Spot Fleet selects the cheapest Spot pools and evenly allocates your target Spot capacity across the number of Spot pools that you specify\\. \nNote that Spot Fleet attempts to draw Spot Instances from the number of pools that you specify on a best effort basis\\. If a pool runs out of Spot capacity before fulfilling your target capacity, Spot Fleet will continue to fulfill your request by drawing from the next cheapest pool\\. To ensure that your target capacity is met, you might receive Spot Instances from more than the number of pools that you specified\\. Similarly, if most of the pools have no Spot capacity, you might receive your full target capacity from fewer than the number of pools that you specified\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LaunchSpecifications": "The launch specifications for the Spot Fleet request\\. If you specify `LaunchSpecifications`, you can't specify `LaunchTemplateConfigs`\\. \n*Required*: Conditional \n*Type*: List of [SpotFleetLaunchSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LaunchTemplateConfigs": "The launch template and overrides\\. If you specify `LaunchTemplateConfigs`, you can't specify `LaunchSpecifications`\\. \n*Required*: Conditional \n*Type*: List of [LaunchTemplateConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LoadBalancersConfig": "One or more Classic Load Balancers and target groups to attach to the Spot Fleet request\\. Spot Fleet registers the running Spot Instances with the specified Classic Load Balancers and target groups\\. \nWith Network Load Balancers, Spot Fleet cannot register instances that have the following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1\\. \n*Required*: No \n*Type*: [LoadBalancersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-loadbalancersconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OnDemandAllocationStrategy": "The order of the launch template overrides to use in fulfilling On\\-Demand capacity\\. If you specify `lowestPrice`, Spot Fleet uses price to determine the order, launching the lowest price first\\. If you specify `prioritized`, Spot Fleet uses the priority that you assign to each Spot Fleet launch template override, launching the highest priority first\\. If you do not specify a value, Spot Fleet defaults to `lowestPrice`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `lowestPrice | prioritized` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OnDemandMaxTotalPrice": "The maximum amount per hour for On\\-Demand Instances that you're willing to pay\\. You can use the `onDemandMaxTotalPrice` parameter, the `spotMaxTotalPrice` parameter, or both parameters to ensure that your fleet cost does not exceed your budget\\. If you set a maximum price per hour for the On\\-Demand Instances and Spot Instances in your request, Spot Fleet will launch instances until it reaches the maximum amount you're willing to pay\\. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn\u2019t met the target capacity\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OnDemandTargetCapacity": "The number of On\\-Demand units to request\\. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O\\. If the request type is `maintain`, you can specify a target capacity of 0 and add capacity later\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ReplaceUnhealthyInstances": "Indicates whether Spot Fleet should replace unhealthy instances\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SpotMaintenanceStrategies": "The strategies for managing your Spot Instances that are at an elevated risk of being interrupted\\. \n*Required*: No \n*Type*: [SpotMaintenanceStrategies](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotmaintenancestrategies.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SpotMaxTotalPrice": "The maximum amount per hour for Spot Instances that you're willing to pay\\. You can use the `spotdMaxTotalPrice` parameter, the `onDemandMaxTotalPrice` parameter, or both parameters to ensure that your fleet cost does not exceed your budget\\. If you set a maximum price per hour for the On\\-Demand Instances and Spot Instances in your request, Spot Fleet will launch instances until it reaches the maximum amount you're willing to pay\\. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn\u2019t met the target capacity\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SpotPrice": "The maximum price per unit hour that you are willing to pay for a Spot Instance\\. We do not recommend using this parameter because it can lead to increased interruptions\\. If you do not specify this parameter, you will pay the current Spot price\\. \nIf you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TagSpecifications": "The key\\-value pair for tagging the Spot Fleet request on creation\\. The value for `ResourceType` must be `spot-fleet-request`, otherwise the Spot Fleet request fails\\. To tag instances at launch, specify the tags in the [launch template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template) \\(valid only if you use `LaunchTemplateConfigs`\\) or in the ` [SpotFleetTagSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetTagSpecification.html) ` \\(valid only if you use `LaunchSpecifications`\\)\\. For information about tagging after launch, see [Tagging Your Resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources)\\. \n*Required*: No \n*Type*: List of [SpotFleetTagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleettagspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TargetCapacity": "The number of units to request for the Spot Fleet\\. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O\\. If the request type is `maintain`, you can specify a target capacity of 0 and add capacity later\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetCapacityUnitType": "The unit for the target capacity\\. `TargetCapacityUnitType` can only be specified when `InstanceRequirements` is specified\\. \nDefault: `units` \\(translates to number of instances\\) \n*Required*: No \n*Type*: String \n*Allowed values*: `memory-mib | units | vcpu` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TerminateInstancesWithExpiration": "Indicates whether running Spot Instances are terminated when the Spot Fleet request expires\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "The type of request\\. Indicates whether the Spot Fleet only requests the target capacity or also attempts to maintain it\\. When this value is `request`, the Spot Fleet only places the required requests\\. It does not attempt to replenish Spot Instances if capacity is diminished, nor does it submit requests in alternative Spot pools if capacity is not available\\. When this value is `maintain`, the Spot Fleet maintains the target capacity\\. The Spot Fleet places the required requests to meet capacity and automatically replenishes any interrupted instances\\. Default: `maintain`\\. `instant` is listed but is not used by Spot Fleet\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `instant | maintain | request` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ValidFrom": "The start date and time of the request, in UTC format \\(*YYYY*\\-*MM*\\-*DD*T*HH*:*MM*:*SS*Z\\)\\. By default, Amazon EC2 starts fulfilling the request immediately\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ValidUntil": "The end date and time of the request, in UTC format \\(*YYYY*\\-*MM*\\-*DD*T*HH*:*MM*:*SS*Z\\)\\. After the end date and time, no new Spot Instance requests are placed or able to fulfill the request\\. If no value is specified, the Spot Fleet request remains until you cancel it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet SpotFleetTagSpecification": { + "ResourceType": "The type of resource\\. Currently, the only resource type that is supported is `instance`\\. To tag the Spot Fleet request on creation, use the `TagSpecifications` parameter in ` [SpotFleetRequestConfigData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetRequestConfigData.html) `\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `capacity-reservation | capacity-reservation-fleet | carrier-gateway | client-vpn-endpoint | coip-pool | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | instance-event-window | internet-gateway | ipam | ipam-pool | ipam-resource-discovery | ipam-resource-discovery-association | ipam-scope | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | launch-template | local-gateway | local-gateway-route-table | local-gateway-route-table-virtual-interface-group-association | local-gateway-route-table-vpc-association | local-gateway-virtual-interface | local-gateway-virtual-interface-group | natgateway | network-acl | network-insights-access-scope | network-insights-access-scope-analysis | network-insights-analysis | network-insights-path | network-interface | placement-group | prefix-list | replace-root-volume-task | reserved-instances | route-server | route-server-endpoint | route-server-peer | route-table | security-group | security-group-rule | snapshot | spot-fleet-request | spot-instances-request | subnet | subnet-cidr-reservation | traffic-mirror-filter | traffic-mirror-filter-rule | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-policy-table | transit-gateway-route-table | transit-gateway-route-table-announcement | verified-access-endpoint | verified-access-group | verified-access-instance | verified-access-policy | verified-access-trust-provider | volume | vpc | vpc-block-public-access-exclusion | vpc-endpoint | vpc-endpoint-connection | vpc-endpoint-connection-device-type | vpc-endpoint-service | vpc-endpoint-service-permission | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-connection-device-type | vpn-gateway` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet SpotMaintenanceStrategies": { + "CapacityRebalance": "The Spot Instance replacement strategy to use when Amazon EC2 emits a signal that your Spot Instance is at an elevated risk of being interrupted\\. For more information, see [Capacity rebalancing](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-capacity-rebalance.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: No \n*Type*: [SpotCapacityRebalance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotcapacityrebalance.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet SpotPlacement": { + "AvailabilityZone": "The Availability Zone\\. \nTo specify multiple Availability Zones, separate them using commas; for example, \"us\\-west\\-2a, us\\-west\\-2b\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GroupName": "The name of the placement group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tenancy": "The tenancy of the instance \\(if the instance is running in a VPC\\)\\. An instance with a tenancy of `dedicated` runs on single\\-tenant hardware\\. The `host` tenancy is not supported for Spot Instances\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dedicated | default | host` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet TargetGroup": { + "Arn": "The Amazon Resource Name \\(ARN\\) of the target group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet TargetGroupsConfig": { + "TargetGroups": "One or more target groups\\. \n*Required*: Yes \n*Type*: List of [TargetGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-targetgroup.html) \n*Maximum*: `5` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet TotalLocalStorageGBRequest": { + "Max": "The maximum amount of total local storage, in GB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Min": "The minimum amount of total local storage, in GB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SpotFleet VCpuCountRangeRequest": { + "Max": "The maximum number of vCPUs\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Min": "The minimum number of vCPUs\\. To specify no minimum limit, specify `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::Subnet": { + "AssignIpv6AddressOnCreation": "Indicates whether a network interface created in this subnet receives an IPv6 address\\. The default value is `false`\\. \nIf you specify `AssignIpv6AddressOnCreation`, you must also specify `Ipv6CidrBlock`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AvailabilityZone": "The Availability Zone of the subnet\\. \nIf you update this property, you must also update the `CidrBlock` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AvailabilityZoneId": "The AZ ID of the subnet\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CidrBlock": "The IPv4 CIDR block assigned to the subnet\\. \nIf you update this property, we create a new subnet, and then delete the existing one\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EnableDns64": "Indicates whether DNS queries made to the Amazon\\-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4\\-only destinations\\. For more information, see [DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) in the *Amazon Virtual Private Cloud User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ipv6CidrBlock": "The IPv6 CIDR block\\. \nIf you specify `AssignIpv6AddressOnCreation`, you must also specify `Ipv6CidrBlock`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "Ipv6Native": "Indicates whether this is an IPv6 only subnet\\. For more information, see [Subnet basics](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#subnet-basics) in the *Amazon Virtual Private Cloud User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MapPublicIpOnLaunch": "Indicates whether instances launched in this subnet receive a public IPv4 address\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutpostArn": "The Amazon Resource Name \\(ARN\\) of the Outpost\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PrivateDnsNameOptionsOnLaunch": "The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled\\. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \nAvailable options: \n+ EnableResourceNameDnsAAAARecord \\(true \\| false\\)\n+ EnableResourceNameDnsARecord \\(true \\| false\\)\n+ HostnameType \\(ip\\-name \\| resource\\-name\\)\n*Required*: No \n*Type*: [PrivateDnsNameOptionsOnLaunch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-subnet-privatednsnameoptionsonlaunch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Any tags assigned to the subnet\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcId": "The ID of the VPC the subnet is in\\. \nIf you update this property, you must also update the `CidrBlock` property\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::Subnet PrivateDnsNameOptionsOnLaunch": { + "EnableResourceNameDnsAAAARecord": "Indicates whether to respond to DNS queries for instance hostname with DNS AAAA records\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableResourceNameDnsARecord": "Indicates whether to respond to DNS queries for instance hostnames with DNS A records\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HostnameType": "The type of hostname for EC2 instances\\. For IPv4 only subnets, an instance DNS name must be based on the instance IPv4 address\\. For IPv6 only subnets, an instance DNS name must be based on the instance ID\\. For dual\\-stack subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ip-name | resource-name` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::SubnetCidrBlock": { + "Ipv6CidrBlock": "The IPv6 network range for the subnet, in CIDR notation\\. The subnet size must use a /64 prefix length\\. \nThis parameter is required for an IPv6 only subnet\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetId": "The ID of the subnet\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SubnetNetworkAclAssociation": { + "NetworkAclId": "The ID of the network ACL\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetId": "The ID of the subnet\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::SubnetRouteTableAssociation": { + "RouteTableId": "The ID of the route table\\. \nThe physical ID changes when the route table ID is changed\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetId": "The ID of the subnet\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::TrafficMirrorFilter": { + "Description": "The description of the Traffic Mirror filter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NetworkServices": "The network service traffic that is associated with the Traffic Mirror filter\\. \nValid values are `amazon-dns`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to assign to a Traffic Mirror filter\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::TrafficMirrorFilterRule": { + "Description": "The description of the Traffic Mirror rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationCidrBlock": "The destination CIDR block to assign to the Traffic Mirror rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationPortRange": "The destination port range\\. \n*Required*: No \n*Type*: [TrafficMirrorPortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-trafficmirrorfilterrule-trafficmirrorportrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "The protocol, for example UDP, to assign to the Traffic Mirror rule\\. \nFor information about the protocol value, see [Protocol Numbers](https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml) on the Internet Assigned Numbers Authority \\(IANA\\) website\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleAction": "The action to take on the filtered traffic\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `accept | reject` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleNumber": "The number of the Traffic Mirror rule\\. This number must be unique for each Traffic Mirror rule in a given direction\\. The rules are processed in ascending order by rule number\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceCidrBlock": "The source CIDR block to assign to the Traffic Mirror rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourcePortRange": "The source port range\\. \n*Required*: No \n*Type*: [TrafficMirrorPortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-trafficmirrorfilterrule-trafficmirrorportrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TrafficDirection": "The type of traffic\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `egress | ingress` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TrafficMirrorFilterId": "The ID of the filter that this rule is associated with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::TrafficMirrorFilterRule TrafficMirrorPortRange": { + "FromPort": "The start of the Traffic Mirror port range\\. This applies to the TCP and UDP protocols\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ToPort": "The end of the Traffic Mirror port range\\. This applies to the TCP and UDP protocols\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::TrafficMirrorSession": { + "Description": "The description of the Traffic Mirror session\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkInterfaceId": "The ID of the source network interface\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PacketLength": "The number of bytes in each packet to mirror\\. These are bytes after the VXLAN header\\. Do not specify this parameter when you want to mirror the entire packet\\. To mirror a subset of the packet, set this to the length \\(in bytes\\) that you want to mirror\\. For example, if you set this value to 100, then the first 100 bytes that meet the filter criteria are copied to the target\\. \nIf you do not want to mirror the entire packet, use the `PacketLength` parameter to specify the number of bytes in each packet to mirror\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SessionNumber": "The session number determines the order in which sessions are evaluated when an interface is used by multiple sessions\\. The first session with a matching filter is the one that mirrors the packets\\. \nValid values are 1\\-32766\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to assign to a Traffic Mirror session\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TrafficMirrorFilterId": "The ID of the Traffic Mirror filter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TrafficMirrorTargetId": "The ID of the Traffic Mirror target\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VirtualNetworkId": "The VXLAN ID for the Traffic Mirror session\\. For more information about the VXLAN protocol, see [RFC 7348](https://tools.ietf.org/html/rfc7348)\\. If you do not specify a `VirtualNetworkId`, an account\\-wide unique id is chosen at random\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::TrafficMirrorTarget": { + "Description": "The description of the Traffic Mirror target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GatewayLoadBalancerEndpointId": "The ID of the Gateway Load Balancer endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NetworkInterfaceId": "The network interface ID that is associated with the target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NetworkLoadBalancerArn": "The Amazon Resource Name \\(ARN\\) of the Network Load Balancer that is associated with the target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags to assign to the Traffic Mirror target\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::TransitGateway": { + "AmazonSideAsn": "A private Autonomous System Number \\(ASN\\) for the Amazon side of a BGP session\\. The range is 64512 to 65534 for 16\\-bit ASNs\\. The default is 64512\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AssociationDefaultRouteTableId": "The ID of the default association route table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutoAcceptSharedAttachments": "Enable or disable automatic acceptance of attachment requests\\. Disabled by default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultRouteTableAssociation": "Enable or disable automatic association with the default association route table\\. Enabled by default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultRouteTablePropagation": "Enable or disable automatic propagation of routes to the default propagation route table\\. Enabled by default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the transit gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DnsSupport": "Enable or disable DNS support\\. Enabled by default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MulticastSupport": "Indicates whether multicast is enabled on the transit gateway \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PropagationDefaultRouteTableId": "The ID of the default propagation route table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags for the transit gateway\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitGatewayCidrBlocks": "The transit gateway CIDR blocks\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpnEcmpSupport": "Enable or disable Equal Cost Multipath Protocol support\\. Enabled by default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::TransitGatewayAttachment": { + "Options": "The VPC attachment options, in JSON or YAML\\. \n+ `ApplianceModeSupport` \\- Set to `enable` or `disable`\\. The default is `disable`\\.\n+ `DnsSupport` \\- Set to `enable` or `disable`\\. The default is `enable`\\.\n+ `Ipv6Support` \\- Set to `enable` or `disable`\\. The default is `disable`\\.\n*Required*: No \n*Type*: [Options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewayattachment-options.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetIds": "The IDs of one or more subnets\\. You can specify only one subnet per Availability Zone\\. You must specify at least one subnet, but we recommend that you specify two subnets for better availability\\. The transit gateway uses one IP address from each specified subnet\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags for the attachment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitGatewayId": "The ID of the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpcId": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::TransitGatewayAttachment Options": { + "ApplianceModeSupport": "Indicates whether appliance mode support is enabled\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DnsSupport": "Indicates whether DNS support is enabled\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ipv6Support": "Indicates whether IPv6 support is disabled\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::TransitGatewayConnect": { + "Options": "The Connect attachment options\\. \n+ protocol \\(gre\\)\n*Required*: Yes \n*Type*: [TransitGatewayConnectOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewayconnect-transitgatewayconnectoptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags for the attachment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransportTransitGatewayAttachmentId": "The ID of the attachment from which the Connect attachment was created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::TransitGatewayConnect TransitGatewayConnectOptions": { + "Protocol": "The tunnel protocol\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `gre` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::TransitGatewayMulticastDomain": { + "Options": "The options for the transit gateway multicast domain\\. \n+ AutoAcceptSharedAssociations \\(enable \\| disable\\)\n+ Igmpv2Support \\(enable \\| disable\\)\n+ StaticSourcesSupport \\(enable \\| disable\\)\n*Required*: No \n*Type*: [Options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewaymulticastdomain-options.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags for the transit gateway multicast domain\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitGatewayId": "The ID of the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::TransitGatewayMulticastDomain Options": { + "AutoAcceptSharedAssociations": "Indicates whether to automatically accept cross\\-account subnet associations that are associated with the transit gateway multicast domain\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Igmpv2Support": "Specify whether to enable Internet Group Management Protocol \\(IGMP\\) version 2 for the transit gateway multicast domain\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StaticSourcesSupport": "Specify whether to enable support for statically configuring multicast group sources for a domain\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::TransitGatewayMulticastDomainAssociation": { + "SubnetId": "The IDs of the subnets to associate with the transit gateway multicast domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TransitGatewayAttachmentId": "The ID of the transit gateway attachment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TransitGatewayMulticastDomainId": "The ID of the transit gateway multicast domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::TransitGatewayMulticastGroupMember": { + "GroupIpAddress": "The IP address assigned to the transit gateway multicast group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NetworkInterfaceId": "The group members' network interface IDs to register with the transit gateway multicast group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TransitGatewayMulticastDomainId": "The ID of the transit gateway multicast domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::TransitGatewayMulticastGroupSource": { + "GroupIpAddress": "The IP address assigned to the transit gateway multicast group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NetworkInterfaceId": "The group sources' network interface IDs to register with the transit gateway multicast group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TransitGatewayMulticastDomainId": "The ID of the transit gateway multicast domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::TransitGatewayPeeringAttachment": { + "PeerAccountId": "The ID of the AWS account that owns the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PeerRegion": "The Region of the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PeerTransitGatewayId": "The ID of the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags for the transit gateway peering attachment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitGatewayId": "The ID of the transit gateway peering attachment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::TransitGatewayPeeringAttachment PeeringAttachmentStatus": { + "Code": "The status code\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Message": "The status message, if applicable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::TransitGatewayRoute": { + "Blackhole": "Indicates whether to drop traffic that matches this route\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DestinationCidrBlock": "The CIDR block used for destination matches\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TransitGatewayAttachmentId": "The ID of the attachment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TransitGatewayRouteTableId": "The ID of the transit gateway route table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::TransitGatewayRouteTable": { + "Tags": "Any tags assigned to the route table\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TransitGatewayId": "The ID of the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::TransitGatewayRouteTableAssociation": { + "TransitGatewayAttachmentId": "The ID of the attachment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TransitGatewayRouteTableId": "The ID of the route table for the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::TransitGatewayRouteTablePropagation": { + "TransitGatewayAttachmentId": "The ID of the attachment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TransitGatewayRouteTableId": "The ID of the propagation route table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::TransitGatewayVpcAttachment": { + "AddSubnetIds": "The IDs of one or more subnets to add\\. You can specify at most one subnet per Availability Zone\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Options": "The VPC attachment options, in JSON or YAML\\. \n+ `ApplianceModeSupport` \\- Set to `enable` or `disable`\\. The default is `disable`\\.\n+ `DnsSupport` \\- Set to `enable` or `disable`\\. The default is `enable`\\.\n+ `Ipv6Support` \\- Set to `enable` or `disable`\\. The default is `disable`\\.\n*Required*: No \n*Type*: [Options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewayvpcattachment-options.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RemoveSubnetIds": "The IDs of one or more subnets to remove\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetIds": "The IDs of the subnets\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags for the VPC attachment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitGatewayId": "The ID of the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpcId": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::TransitGatewayVpcAttachment Options": { + "ApplianceModeSupport": "Indicates whether appliance mode support is enabled\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DnsSupport": "Indicates whether DNS support is enabled\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ipv6Support": "Indicates whether IPv6 support is disabled\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::VPC": { + "CidrBlock": "The IPv4 network range for the VPC, in CIDR notation\\. For example, `10.0.0.0/16`\\. We modify the specified CIDR block to its canonical form; for example, if you specify `100.68.0.18/18`, we modify it to `100.68.0.0/18`\\. \nYou must specify either`CidrBlock` or `Ipv4IpamPoolId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EnableDnsHostnames": "Indicates whether the instances launched in the VPC get DNS hostnames\\. If enabled, instances in the VPC get DNS hostnames; otherwise, they do not\\. Disabled by default for nondefault VPCs\\. For more information, see [DNS attributes in your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support)\\. \nYou can only enable DNS hostnames if you've enabled DNS support\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableDnsSupport": "Indicates whether the DNS resolution is supported for the VPC\\. If enabled, queries to the Amazon provided DNS server at the 169\\.254\\.169\\.253 IP address, or the reserved IP address at the base of the VPC network range \"plus two\" succeed\\. If disabled, the Amazon provided DNS service in the VPC that resolves public DNS hostnames to IP addresses is not enabled\\. Enabled by default\\. For more information, see [DNS attributes in your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceTenancy": "The allowed tenancy of instances launched into the VPC\\. \n+ `default`: An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch\\.\n+ `dedicated`: An instance launched into the VPC runs on dedicated hardware by default, unless you explicitly specify a tenancy of `host` during instance launch\\. You cannot specify a tenancy of `default` during instance launch\\.\nUpdating `InstanceTenancy` requires no replacement only if you are updating its value from `dedicated` to `default`\\. Updating `InstanceTenancy` from `default` to `dedicated` requires replacement\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dedicated | default | host` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "Ipv4IpamPoolId": "The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR\\. For more information, see [What is IPAM?](/vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*\\. \nYou must specify either`CidrBlock` or `Ipv4IpamPoolId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Ipv4NetmaskLength": "The netmask length of the IPv4 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager \\(IPAM\\) pool\\. For more information about IPAM, see [What is IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags for the VPC\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::VPCCidrBlock": { + "AmazonProvidedIpv6CidrBlock": "Requests an Amazon\\-provided IPv6 CIDR block with a /56 prefix length for the VPC\\. You cannot specify the range of IPv6 addresses, or the size of the CIDR block\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CidrBlock": "An IPv4 CIDR block to associate with the VPC\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Ipv4IpamPoolId": "Associate a CIDR allocated from an IPv4 IPAM pool to a VPC\\. For more information about Amazon VPC IP Address Manager \\(IPAM\\), see [What is IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Ipv4NetmaskLength": "The netmask length of the IPv4 CIDR you would like to associate from an Amazon VPC IP Address Manager \\(IPAM\\) pool\\. For more information about IPAM, see [What is IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Ipv6CidrBlock": "An IPv6 CIDR block from the IPv6 address pool\\. You must also specify `Ipv6Pool` in the request\\. \nTo let Amazon choose the IPv6 CIDR block for you, omit this parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Ipv6IpamPoolId": "Associates a CIDR allocated from an IPv6 IPAM pool to a VPC\\. For more information about Amazon VPC IP Address Manager \\(IPAM\\), see [What is IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Ipv6NetmaskLength": "The netmask length of the IPv6 CIDR you would like to associate from an Amazon VPC IP Address Manager \\(IPAM\\) pool\\. For more information about IPAM, see [What is IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Ipv6Pool": "The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpcId": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::VPCDHCPOptionsAssociation": { + "DhcpOptionsId": "The ID of the DHCP options set, or `default` to associate no DHCP options with the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpcId": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::VPCEndpoint": { + "PolicyDocument": "A policy that controls access to the service from the VPC\\. If this parameter is not specified, the default policy allows full access to the service\\. Endpoint policies are supported only for gateway and interface endpoints\\. \nFor CloudFormation templates in YAML, you can provide the policy in JSON or YAML format\\. AWS CloudFormation converts YAML policies to JSON format before calling the API to create or modify the VPC endpoint\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrivateDnsEnabled": "Indicate whether to associate a private hosted zone with the specified VPC\\. The private hosted zone contains a record set for the default public DNS name for the service for the Region \\(for example, `kinesis.us-east-1.amazonaws.com`\\), which resolves to the private IP addresses of the endpoint network interfaces in the VPC\\. This enables you to make requests to the default public DNS name for the service instead of the public DNS names that are automatically generated by the VPC endpoint service\\. \nTo use a private hosted zone, you must set the following VPC attributes to `true`: `enableDnsHostnames` and `enableDnsSupport`\\. \nThis property is supported only for interface endpoints\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RouteTableIds": "The IDs of the route tables\\. Routing is supported only for gateway endpoints\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroupIds": "The IDs of the security groups to associate with the endpoint network interfaces\\. If this parameter is not specified, we use the default security group for the VPC\\. Security groups are supported only for interface endpoints\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceName": "The service name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetIds": "The IDs of the subnets in which to create endpoint network interfaces\\. You must specify this property for an interface endpoint or a Gateway Load Balancer endpoint\\. You can't specify this property for a gateway endpoint\\. For a Gateway Load Balancer endpoint, you can specify only one subnet\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcEndpointType": "The type of endpoint\\. \nDefault: Gateway \n*Required*: No \n*Type*: String \n*Allowed values*: `Gateway | GatewayLoadBalancer | Interface` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpcId": "The ID of the VPC for the endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::VPCEndpointConnectionNotification": { + "ConnectionEvents": "The endpoint events for which to receive notifications\\. Valid values are `Accept`, `Connect`, `Delete`, and `Reject`\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectionNotificationArn": "The ARN of the SNS topic for the notifications\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceId": "The ID of the endpoint service\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VPCEndpointId": "The ID of the endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::VPCEndpointService": { + "AcceptanceRequired": "Indicates whether requests from service consumers to create an endpoint to your service must be accepted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContributorInsightsEnabled": "Indicates whether to enable the built\\-in Contributor Insights rules\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GatewayLoadBalancerArns": "The Amazon Resource Names \\(ARNs\\) of the Gateway Load Balancers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkLoadBalancerArns": "The Amazon Resource Names \\(ARNs\\) of the Network Load Balancers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PayerResponsibility": "The entity that is responsible for the endpoint costs\\. The default is the endpoint owner\\. If you set the payer responsibility to the service owner, you cannot set it back to the endpoint owner\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ServiceOwner` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::VPCEndpointServicePermissions": { + "AllowedPrincipals": "The Amazon Resource Names \\(ARN\\) of one or more principals \\(users, IAM roles, and AWS accounts\\)\\. Permissions are granted to the principals in this list\\. To grant permissions to all principals, specify an asterisk \\(\\*\\)\\. Permissions are revoked for principals not in this list\\. If the list is empty, then all permissions are revoked\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceId": "The ID of the service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::VPCGatewayAttachment": { + "InternetGatewayId": "The ID of the internet gateway\\. \nYou must specify either `InternetGatewayId` or `VpnGatewayId`, but not both\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcId": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpnGatewayId": "The ID of the virtual private gateway\\. \nYou must specify either `InternetGatewayId` or `VpnGatewayId`, but not both\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::VPCPeeringConnection": { + "PeerOwnerId": "The AWS account ID of the owner of the accepter VPC\\. \nDefault: Your AWS account ID \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PeerRegion": "The Region code for the accepter VPC, if the accepter VPC is located in a Region other than the Region in which you make the request\\. \nDefault: The Region in which you make the request\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PeerRoleArn": "The Amazon Resource Name \\(ARN\\) of the VPC peer role for the peering connection in another AWS account\\. \nThis is required when you are peering a VPC in a different AWS account\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PeerVpcId": "The ID of the VPC with which you are creating the VPC peering connection\\. You must specify this parameter in the request\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Any tags assigned to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcId": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::VPNConnection": { + "CustomerGatewayId": "The ID of the customer gateway at your end of the VPN connection\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StaticRoutesOnly": "Indicates whether the VPN connection uses static routes only\\. Static routes must be used for devices that don't support BGP\\. \nIf you are creating a VPN connection for a device that does not support Border Gateway Protocol \\(BGP\\), you must specify `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Any tags assigned to the VPN connection\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitGatewayId": "The ID of the transit gateway associated with the VPN connection\\. \nYou must specify either `TransitGatewayId` or `VpnGatewayId`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "The type of VPN connection\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ipsec.1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpnGatewayId": "The ID of the virtual private gateway at the AWS side of the VPN connection\\. \nYou must specify either `TransitGatewayId` or `VpnGatewayId`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpnTunnelOptionsSpecifications": "The tunnel options for the VPN connection\\. \n*Required*: No \n*Type*: List of [VpnTunnelOptionsSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::VPNConnection VpnTunnelOptionsSpecification": { + "PreSharedKey": "The pre\\-shared key \\(PSK\\) to establish initial authentication between the virtual private gateway and customer gateway\\. \nConstraints: Allowed characters are alphanumeric characters, periods \\(\\.\\), and underscores \\(\\_\\)\\. Must be between 8 and 64 characters in length and cannot start with zero \\(0\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TunnelInsideCidr": "The range of inside IP addresses for the tunnel\\. Any specified CIDR blocks must be unique across all VPN connections that use the same virtual private gateway\\. \nConstraints: A size /30 CIDR block from the `169.254.0.0/16` range\\. The following CIDR blocks are reserved and cannot be used: \n+ `169.254.0.0/30` \n+ `169.254.1.0/30` \n+ `169.254.2.0/30` \n+ `169.254.3.0/30` \n+ `169.254.4.0/30` \n+ `169.254.5.0/30` \n+ `169.254.169.252/30` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::VPNConnectionRoute": { + "DestinationCidrBlock": "The CIDR block associated with the local subnet of the customer network\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpnConnectionId": "The ID of the VPN connection\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::VPNGateway": { + "AmazonSideAsn": "The private Autonomous System Number \\(ASN\\) for the Amazon side of a BGP session\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Any tags assigned to the virtual private gateway\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of VPN connection the virtual private gateway supports\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ipsec.1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EC2::VPNGatewayRoutePropagation": { + "RouteTableIds": "The ID of the route table\\. The routing table must be associated with the same VPC that the virtual private gateway is attached to\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpnGatewayId": "The ID of the virtual private gateway that is attached to a VPC\\. The virtual private gateway must be attached to the same VPC that the routing tables are associated with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::Volume": { + "AutoEnableIO": "Indicates whether the volume is auto\\-enabled for I/O operations\\. By default, Amazon EBS disables I/O to the volume from attached EC2 instances when it determines that a volume's data is potentially inconsistent\\. If the consistency of the volume is not a concern, and you prefer that the volume be made available immediately if it's impaired, you can configure the volume to automatically enable I/O\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AvailabilityZone": "The Availability Zone in which to create the volume\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "Encrypted": "Indicates whether the volume should be encrypted\\. The effect of setting the encryption state to `true` depends on the volume origin \\(new or from a snapshot\\), starting encryption state, ownership, and whether encryption by default is enabled\\. For more information, see [Encryption by default](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default) in the *Amazon Elastic Compute Cloud User Guide*\\. \nEncrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption\\. For more information, see [Supported instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: Updates are not supported\\.", + "Iops": "The number of I/O operations per second \\(IOPS\\)\\. For `gp3`, `io1`, and `io2` volumes, this represents the number of IOPS that are provisioned for the volume\\. For `gp2` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting\\. \nThe following are the supported values for each volume type: \n+ `gp3`: 3,000\\-16,000 IOPS\n+ `io1`: 100\\-64,000 IOPS\n+ `io2`: 100\\-64,000 IOPS\n `io1` and `io2` volumes support up to 64,000 IOPS only on [Instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)\\. Other instance families support performance up to 32,000 IOPS\\. \nThis parameter is required for `io1` and `io2` volumes\\. The default for `gp3` volumes is 3,000 IOPS\\. This parameter is not supported for `gp2`, `st1`, `sc1`, or `standard` volumes\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKeyId": "The identifier of the AWS KMS key to use for Amazon EBS encryption\\. If `KmsKeyId` is specified, the encrypted state must be `true`\\. \nIf you omit this property and your account is enabled for encryption by default, or **Encrypted** is set to `true`, then the volume is encrypted using the default key specified for your account\\. If your account does not have a default key, then the volume is encrypted using the AWS managed key\\. \nAlternatively, if you want to specify a different key, you can specify one of the following: \n+ Key ID\\. For example, 1234abcd\\-12ab\\-34cd\\-56ef\\-1234567890ab\\.\n+ Key alias\\. Specify the alias for the key, prefixed with `alias/`\\. For example, for a key with the alias `my_cmk`, use `alias/my_cmk`\\. Or to specify the AWS managed key, use `alias/aws/ebs`\\.\n+ Key ARN\\. For example, arn:aws:kms:us\\-east\\-1:012345678910:key/1234abcd\\-12ab\\-34cd\\-56ef\\-1234567890ab\\.\n+ Alias ARN\\. For example, arn:aws:kms:us\\-east\\-1:012345678910:alias/ExampleAlias\\.\n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "MultiAttachEnabled": "Indicates whether Amazon EBS Multi\\-Attach is enabled\\. \nAWS CloudFormation does not currently support updating a single\\-attach volume to be multi\\-attach enabled, updating a multi\\-attach enabled volume to be single\\-attach, or updating the size or number of I/O operations per second \\(IOPS\\) of a multi\\-attach enabled volume\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutpostArn": "The Amazon Resource Name \\(ARN\\) of the Outpost\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Size": "The size of the volume, in GiBs\\. You must specify either a snapshot ID or a volume size\\. If you specify a snapshot, the default is the snapshot size\\. You can specify a volume size that is equal to or larger than the snapshot size\\. \nThe following are the supported volumes sizes for each volume type: \n+ `gp2` and `gp3`: 1\\-16,384\n+ `io1` and `io2`: 4\\-16,384\n+ `st1` and `sc1`: 125\\-16,384\n+ `standard`: 1\\-1,024\n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnapshotId": "The snapshot from which to create the volume\\. You must specify either a snapshot ID or a volume size\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "Tags": "The tags to apply to the volume during creation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Throughput": "The throughput to provision for a volume, with a maximum of 1,000 MiB/s\\. \nThis parameter is valid only for `gp3` volumes\\. The default value is 125\\. \nValid Range: Minimum value of 125\\. Maximum value of 1000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VolumeType": "The volume type\\. This parameter can be one of the following values: \n+ General Purpose SSD: `gp2` \\| `gp3` \n+ Provisioned IOPS SSD: `io1` \\| `io2` \n+ Throughput Optimized HDD: `st1` \n+ Cold HDD: `sc1` \n+ Magnetic: `standard` \nThroughput Optimized HDD \\(`st1`\\) and Cold HDD \\(`sc1`\\) volumes can't be used as boot volumes\\.\nFor more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \nDefault: `gp2` \n*Required*: No \n*Type*: String \n*Allowed values*: `gp2 | gp3 | io1 | io2 | sc1 | st1 | standard` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EC2::VolumeAttachment": { + "Device": "The device name \\(for example, `/dev/sdh` or `xvdh`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceId": "The ID of the instance to which the volume attaches\\. This value can be a reference to an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) resource, or it can be the physical ID of an existing EC2 instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VolumeId": "The ID of the Amazon EBS volume\\. The volume and instance must be within the same Availability Zone\\. This value can be a reference to an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html) resource, or it can be the volume ID of an existing Amazon EBS volume\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECR::PublicRepository": { + "RepositoryCatalogData": "The details about the repository that are publicly visible in the Amazon ECR Public Gallery\\. For more information, see [Amazon ECR Public repository catalog data](https://docs.aws.amazon.com/AmazonECR/latest/public/public-repository-catalog-data.html) in the *Amazon ECR Public User Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RepositoryName": "The name to use for the public repository\\. The repository name may be specified on its own \\(such as `nginx-web-app`\\) or it can be prepended with a namespace to group the repository into a category \\(such as `project-a/nginx-web-app`\\)\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the repository name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RepositoryPolicyText": "The JSON repository policy text to apply to the public repository\\. For more information, see [Amazon ECR Public repository policies](https://docs.aws.amazon.com/AmazonECR/latest/public/public-repository-policies.html) in the *Amazon ECR Public User Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECR::PullThroughCacheRule": { + "EcrRepositoryPrefix": "The Amazon ECR repository prefix associated with the pull through cache rule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `20` \n*Pattern*: `[a-z0-9]+(?:[._-][a-z0-9]+)*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UpstreamRegistryUrl": "The upstream registry URL associated with the pull through cache rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECR::RegistryPolicy": { + "PolicyText": "The JSON policy text for your registry\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECR::ReplicationConfiguration": { + "ReplicationConfiguration": "The replication configuration for a registry\\. \n*Required*: Yes \n*Type*: [ReplicationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-replicationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECR::ReplicationConfiguration ReplicationConfiguration": { + "Rules": "An array of objects representing the replication destinations and repository filters for a replication configuration\\. \n*Required*: Yes \n*Type*: List of [ReplicationRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-replicationrule.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECR::ReplicationConfiguration ReplicationDestination": { + "Region": "The Region to replicate to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `25` \n*Pattern*: `[0-9a-z-]{2,25}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegistryId": "The AWS account ID of the Amazon ECR private registry to replicate to\\. When configuring cross\\-Region replication within your own registry, specify your own account ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[0-9]{12}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECR::ReplicationConfiguration ReplicationRule": { + "Destinations": "An array of objects representing the destination for a replication rule\\. \n*Required*: Yes \n*Type*: List of [ReplicationDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-replicationdestination.html) \n*Maximum*: `25` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RepositoryFilters": "An array of objects representing the filters for a replication rule\\. Specifying a repository filter for a replication rule provides a method for controlling which repositories in a private registry are replicated\\. \n*Required*: No \n*Type*: List of [RepositoryFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-repositoryfilter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECR::ReplicationConfiguration RepositoryFilter": { + "Filter": "The repository filter details\\. When the `PREFIX_MATCH` filter type is specified, this value is required and should be the repository name prefix to configure replication for\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `256` \n*Pattern*: `^(?:[a-z0-9]+(?:[._-][a-z0-9]*)*/)*[a-z0-9]*(?:[._-][a-z0-9]*)*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FilterType": "The repository filter type\\. The only supported value is `PREFIX_MATCH`, which is a repository name prefix specified with the `filter` parameter\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `PREFIX_MATCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECR::Repository": { + "EncryptionConfiguration": "The encryption configuration for the repository\\. This determines how the contents of your repository are encrypted at rest\\. \n*Required*: No \n*Type*: [EncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-encryptionconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ImageScanningConfiguration": "The image scanning configuration for the repository\\. This determines whether images are scanned for known vulnerabilities after being pushed to the repository\\. \n*Required*: No \n*Type*: [ImageScanningConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-imagescanningconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageTagMutability": "The tag mutability setting for the repository\\. If this parameter is omitted, the default setting of `MUTABLE` will be used which will allow image tags to be overwritten\\. If `IMMUTABLE` is specified, all image tags within the repository will be immutable which will prevent them from being overwritten\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `IMMUTABLE | MUTABLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LifecyclePolicy": "Creates or updates a lifecycle policy\\. For information about lifecycle policy syntax, see [Lifecycle policy template](https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html)\\. \n*Required*: No \n*Type*: [LifecyclePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-lifecyclepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RepositoryName": "The name to use for the repository\\. The repository name may be specified on its own \\(such as `nginx-web-app`\\) or it can be prepended with a namespace to group the repository into a category \\(such as `project-a/nginx-web-app`\\)\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the repository name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `256` \n*Pattern*: `(?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RepositoryPolicyText": "The JSON repository policy text to apply to the repository\\. For more information, see [Amazon ECR repository policies](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html) in the *Amazon Elastic Container Registry User Guide*\\. \n*Required*: No \n*Type*: Json \n*Minimum*: `0` \n*Maximum*: `10240` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECR::Repository EncryptionConfiguration": { + "EncryptionType": "The encryption type to use\\. \nIf you use the `KMS` encryption type, the contents of the repository will be encrypted using server\\-side encryption with AWS Key Management Service key stored in AWS KMS\\. When you use AWS KMS to encrypt your data, you can either use the default AWS managed AWS KMS key for Amazon ECR, or specify your own AWS KMS key, which you already created\\. For more information, see [Protecting data using server\\-side encryption with an AWS KMS key stored in AWS Key Management Service \\(SSE\\-KMS\\)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*\\. \nIf you use the `AES256` encryption type, Amazon ECR uses server\\-side encryption with Amazon S3\\-managed encryption keys which encrypts the images in the repository using an AES\\-256 encryption algorithm\\. For more information, see [Protecting data using server\\-side encryption with Amazon S3\\-managed encryption keys \\(SSE\\-S3\\)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AES256 | KMS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KmsKey": "If you use the `KMS` encryption type, specify the AWS KMS key to use for encryption\\. The alias, key ID, or full ARN of the AWS KMS key can be specified\\. The key must exist in the same Region as the repository\\. If no key is specified, the default AWS managed AWS KMS key for Amazon ECR will be used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECR::Repository ImageScanningConfiguration": { + "ScanOnPush": "The setting that determines whether images are scanned after being pushed to a repository\\. If set to `true`, images will be scanned after being pushed\\. If this parameter is not specified, it will default to `false` and images will not be scanned unless a scan is manually started\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECR::Repository LifecyclePolicy": { + "LifecyclePolicyText": "The JSON repository policy text to apply to the repository\\. \n*Required*: No \n*Type*: String \n*Minimum*: `100` \n*Maximum*: `30720` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegistryId": "The AWS account ID associated with the registry that contains the repository\\. If you do\u2028 not specify a registry, the default registry is assumed\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[0-9]{12}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECS::CapacityProvider": { + "AutoScalingGroupProvider": "The Auto Scaling group settings for the capacity provider\\. \n*Required*: Yes \n*Type*: [AutoScalingGroupProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-autoscalinggroupprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the capacity provider\\. If a name is specified, it cannot start with `aws`, `ecs`, or `fargate`\\. If no name is specified, a default name in the `CFNStackName-CFNResourceName-RandomString` format is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The metadata that you apply to the capacity provider to help you categorize and organize it\\. Each tag consists of a key and an optional value\\. You define both\\. \nThe following basic restrictions apply to tags: \n+ Maximum number of tags per resource \\- 50\n+ For each resource, each tag key must be unique, and each tag key can have only one value\\.\n+ Maximum key length \\- 128 Unicode characters in UTF\\-8\n+ Maximum value length \\- 256 Unicode characters in UTF\\-8\n+ If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters\\. Generally allowed characters are: letters, numbers, and spaces representable in UTF\\-8, and the following characters: \\+ \\- = \\. \\_ : / @\\.\n+ Tag keys and values are case\\-sensitive\\.\n+ Do not use `aws:`, `AWS:`, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use\\. You cannot edit or delete tag keys or values with this prefix\\. Tags with this prefix do not count against your tags per resource limit\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECS::CapacityProvider AutoScalingGroupProvider": { + "AutoScalingGroupArn": "The Amazon Resource Name \\(ARN\\) or short name that identifies the Auto Scaling group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ManagedScaling": "The managed scaling settings for the Auto Scaling group capacity provider\\. \n*Required*: No \n*Type*: [ManagedScaling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedscaling.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ManagedTerminationProtection": "The managed termination protection setting to use for the Auto Scaling group capacity provider\\. This determines whether the Auto Scaling group has managed termination protection\\. The default is disabled\\. \nWhen using managed termination protection, managed scaling must also be used otherwise managed termination protection doesn't work\\.\nWhen managed termination protection is enabled, Amazon ECS prevents the Amazon EC2 instances in an Auto Scaling group that contain tasks from being terminated during a scale\\-in action\\. The Auto Scaling group and each instance in the Auto Scaling group must have instance protection from scale\\-in actions enabled as well\\. For more information, see [Instance Protection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection) in the * AWS Auto Scaling User Guide*\\. \nWhen managed termination protection is disabled, your Amazon EC2 instances aren't protected from termination when the Auto Scaling group scales in\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECS::CapacityProvider ManagedScaling": { + "InstanceWarmupPeriod": "The period of time, in seconds, after a newly launched Amazon EC2 instance can contribute to CloudWatch metrics for Auto Scaling group\\. If this parameter is omitted, the default value of `300` seconds is used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `10000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaximumScalingStepSize": "The maximum number of container instances that Amazon ECS scales in or scales out at one time\\. If this parameter is omitted, the default value of `10000` is used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `10000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinimumScalingStepSize": "The minimum number of container instances that Amazon ECS scales in or scales out at one time\\. If this parameter is omitted, the default value of `1` is used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `10000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Status": "Determines whether to use managed scaling for the capacity provider\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetCapacity": "The target capacity value for the capacity provider\\. The specified value must be greater than `0` and less than or equal to `100`\\. A value of `100` results in the Amazon EC2 instances in your Auto Scaling group being completely used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECS::Cluster": { + "CapacityProviders": "The short name of one or more capacity providers to associate with the cluster\\. A capacity provider must be associated with a cluster before it can be included as part of the default capacity provider strategy of the cluster or used in a capacity provider strategy\\. \nIf specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created and not already associated with another cluster\\. \nTo use an AWS Fargate capacity provider, specify either the `FARGATE` or `FARGATE_SPOT` capacity providers\\. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClusterName": "A user\\-generated string that you use to identify your cluster\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID for the name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ClusterSettings": "The setting to use when creating a cluster\\. This parameter is used to enable CloudWatch Container Insights for a cluster\\. If this value is specified, it will override the `containerInsights` value set with [PutAccountSetting](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSetting.html) or [PutAccountSettingDefault](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSettingDefault.html)\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clustersettings.html) of [ClusterSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clustersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Configuration": "The execute command configuration for the cluster\\. \n*Required*: No \n*Type*: [ClusterConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clusterconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultCapacityProviderStrategy": "The default capacity provider strategy for the cluster\\. When services or tasks are run in the cluster with no launch type or capacity provider strategy specified, the default capacity provider strategy is used\\. \n*Required*: No \n*Type*: List of [CapacityProviderStrategyItem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-capacityproviderstrategyitem.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The metadata that you apply to the cluster to help you categorize and organize them\\. Each tag consists of a key and an optional value\\. You define both\\. \nThe following basic restrictions apply to tags: \n+ Maximum number of tags per resource \\- 50\n+ For each resource, each tag key must be unique, and each tag key can have only one value\\.\n+ Maximum key length \\- 128 Unicode characters in UTF\\-8\n+ Maximum value length \\- 256 Unicode characters in UTF\\-8\n+ If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters\\. Generally allowed characters are: letters, numbers, and spaces representable in UTF\\-8, and the following characters: \\+ \\- = \\. \\_ : / @\\.\n+ Tag keys and values are case\\-sensitive\\.\n+ Do not use `aws:`, `AWS:`, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use\\. You cannot edit or delete tag keys or values with this prefix\\. Tags with this prefix do not count against your tags per resource limit\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECS::Cluster CapacityProviderStrategyItem": { + "Base": "The *base* value designates how many tasks, at a minimum, to run on the specified capacity provider\\. Only one capacity provider in a capacity provider strategy can have a *base* defined\\. If no value is specified, the default value of `0` is used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CapacityProvider": "The short name of the capacity provider\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Weight": "The *weight* value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider\\. The `weight` value is taken into consideration after the `base` value, if defined, is satisfied\\. \nIf no `weight` value is specified, the default value of `0` is used\\. When multiple capacity providers are specified within a capacity provider strategy, at least one of the capacity providers must have a weight value greater than zero and any capacity providers with a weight of `0` can't be used to place tasks\\. If you specify multiple capacity providers in a strategy that all have a weight of `0`, any `RunTask` or `CreateService` actions using the capacity provider strategy will fail\\. \nAn example scenario for using weights is defining a strategy that contains two capacity providers and both have a weight of `1`, then when the `base` is satisfied, the tasks will be split evenly across the two capacity providers\\. Using that same logic, if you specify a weight of `1` for *capacityProviderA* and a weight of `4` for *capacityProviderB*, then for every one task that's run using *capacityProviderA*, four tasks would use *capacityProviderB*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECS::Cluster ClusterConfiguration": { + "ExecuteCommandConfiguration": "The details of the execute command configuration\\. \n*Required*: No \n*Type*: [ExecuteCommandConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECS::Cluster ClusterSettings": { + "Name": "The name of the cluster setting\\. The only supported value is `containerInsights`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `containerInsights` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value to set for the cluster setting\\. The supported values are `enabled` and `disabled`\\. If `enabled` is specified, CloudWatch Container Insights will be enabled for the cluster, otherwise it will be disabled unless the `containerInsights` account setting is enabled\\. If a cluster value is specified, it will override the `containerInsights` value set with [PutAccountSetting](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSetting.html) or [PutAccountSettingDefault](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSettingDefault.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECS::Cluster ExecuteCommandConfiguration": { + "KmsKeyId": "Specify an AWS Key Management Service key ID to encrypt the data between the local client and the container\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogConfiguration": "The log configuration for the results of the execute command actions\\. The logs can be sent to CloudWatch Logs or an Amazon S3 bucket\\. When `logging=OVERRIDE` is specified, a `logConfiguration` must be provided\\. \n*Required*: No \n*Type*: [ExecuteCommandLogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Logging": "The log setting to use for redirecting logs for your execute command results\\. The following log settings are available\\. \n+ `NONE`: The execute command session is not logged\\.\n+ `DEFAULT`: The `awslogs` configuration in the task definition is used\\. If no logging parameter is specified, it defaults to this value\\. If no `awslogs` log driver is configured in the task definition, the output won't be logged\\.\n+ `OVERRIDE`: Specify the logging details as a part of `logConfiguration`\\. If the `OVERRIDE` logging option is specified, the `logConfiguration` is required\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `DEFAULT | NONE | OVERRIDE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECS::Cluster ExecuteCommandLogConfiguration": { + "CloudWatchEncryptionEnabled": "Determines whether to use encryption on the CloudWatch logs\\. If not specified, encryption will be disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CloudWatchLogGroupName": "The name of the CloudWatch log group to send logs to\\. \nThe CloudWatch log group must already be created\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3BucketName": "The name of the S3 bucket to send logs to\\. \nThe S3 bucket must already be created\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3EncryptionEnabled": "Determines whether to use encryption on the S3 logs\\. If not specified, encryption is not used\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3KeyPrefix": "An optional folder in the S3 bucket to place logs in\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECS::ClusterCapacityProviderAssociations": { + "CapacityProviders": "The capacity providers to associate with the cluster\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Cluster": "The cluster the capacity provider association is the target of\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DefaultCapacityProviderStrategy": "The default capacity provider strategy to associate with the cluster\\. \n*Required*: Yes \n*Type*: List of [CapacityProviderStrategy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-clustercapacityproviderassociations-capacityproviderstrategy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECS::ClusterCapacityProviderAssociations CapacityProviderStrategy": { + "Base": "The *base* value designates how many tasks, at a minimum, to run on the specified capacity provider\\. Only one capacity provider in a capacity provider strategy can have a *base* defined\\. If no value is specified, the default value of `0` is used\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CapacityProvider": "The short name of the capacity provider\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Weight": "The *weight* value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider\\. The `weight` value is taken into consideration after the `base` value, if defined, is satisfied\\. \nIf no `weight` value is specified, the default value of `0` is used\\. When multiple capacity providers are specified within a capacity provider strategy, at least one of the capacity providers must have a weight value greater than zero and any capacity providers with a weight of `0` will not be used to place tasks\\. If you specify multiple capacity providers in a strategy that all have a weight of `0`, any `RunTask` or `CreateService` actions using the capacity provider strategy will fail\\. \nAn example scenario for using weights is defining a strategy that contains two capacity providers and both have a weight of `1`, then when the `base` is satisfied, the tasks will be split evenly across the two capacity providers\\. Using that same logic, if you specify a weight of `1` for *capacityProviderA* and a weight of `4` for *capacityProviderB*, then for every one task that is run using *capacityProviderA*, four tasks would use *capacityProviderB*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECS::PrimaryTaskSet": { + "Cluster": "The short name or full Amazon Resource Name \\(ARN\\) of the cluster that hosts the service that the task set exists in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Service": "The short name or full Amazon Resource Name \\(ARN\\) of the service that the task set exists in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TaskSetId": "The short name or full Amazon Resource Name \\(ARN\\) of the task set to set as the primary task set in the deployment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECS::Service": { + "CapacityProviderStrategy": "The capacity provider strategy to use for the service\\. \nA capacity provider strategy consists of one or more capacity providers along with the `base` and `weight` to assign to them\\. A capacity provider must be associated with the cluster to be used in a capacity provider strategy\\. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster\\. Only capacity providers with an `ACTIVE` or `UPDATING` status can be used\\. \nReview the [Capacity provider considerations](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-capacity-providers.html#capacity-providers-considerations) in the *Amazon Elastic Container Service Developer Guide\\.* \nIf a `capacityProviderStrategy` is specified, the `launchType` parameter must be omitted\\. If no `capacityProviderStrategy` or `launchType` is specified, the `defaultCapacityProviderStrategy` for the cluster is used\\. \nIf specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created\\. New capacity providers can be created with the CreateCapacityProvider API operation\\. \nTo use an AWS Fargate capacity provider, specify either the `FARGATE` or `FARGATE_SPOT` capacity providers\\. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used\\. \nThe PutClusterCapacityProviders API operation is used to update the list of available capacity providers for a cluster after the cluster is created\\. \n*Required*: No \n*Type*: List of [CapacityProviderStrategyItem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-capacityproviderstrategyitem.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Cluster": "The short name or full Amazon Resource Name \\(ARN\\) of the cluster that you run your service on\\. If you do not specify a cluster, the default cluster is assumed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DeploymentConfiguration": "Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks\\. \n*Required*: No \n*Type*: [DeploymentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeploymentController": "The deployment controller to use for the service\\. If no deployment controller is specified, the default value of `ECS` is used\\. \n*Required*: No \n*Type*: [DeploymentController](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentcontroller.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DesiredCount": "The number of instantiations of the specified task definition to place and keep running on your cluster\\. \nFor new services, if a desired count is not specified, a default value of `1` is used\\. When using the `DAEMON` scheduling strategy, the desired count is not required\\. \nFor existing services, if a desired count is not specified, it is omitted from the operation\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableECSManagedTags": "Specifies whether to turn on Amazon ECS managed tags for the tasks within the service\\. For more information, see [Tagging Your Amazon ECS Resources](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableExecuteCommand": "Determines whether the execute command functionality is enabled for the service\\. If `true`, the execute command functionality is enabled for all containers in tasks as part of the service\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthCheckGracePeriodSeconds": "The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started\\. This is only used when your service is configured to use a load balancer\\. If your service has a load balancer defined and you don't specify a health check grace period value, the default value of `0` is used\\. \nIf you do not use an Elastic Load Balancing, we recomend that you use the `startPeriod` in the task definition healtch check parameters\\. For more information, see [Health check](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_HealthCheck.html)\\. \nIf your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you can specify a health check grace period of up to 2,147,483,647 seconds \\(about 69 years\\)\\. During that time, the Amazon ECS service scheduler ignores health check status\\. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LaunchType": "The launch type on which to run your service\\. For more information, see [Amazon ECS Launch Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `EC2 | EXTERNAL | FARGATE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LoadBalancers": "A list of load balancer objects to associate with the service\\. If you specify the `Role` property, `LoadBalancers` must be specified as well\\. For information about the number of load balancers that you can specify per service, see [Service Load Balancing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: List of [LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-loadbalancer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkConfiguration": "The network configuration for the service\\. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own elastic network interface, and it is not supported for other network modes\\. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: Conditional \n*Type*: [NetworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-networkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PlacementConstraints": "An array of placement constraint objects to use for tasks in your service\\. You can specify a maximum of 10 constraints for each task\\. This limit includes constraints in the task definition and those specified at runtime\\. \n*Required*: No \n*Type*: List of [PlacementConstraint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementconstraint.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PlacementStrategies": "The placement strategy objects to use for tasks in your service\\. You can specify a maximum of five strategy rules per service\\. For more information, see [Task Placement Strategies](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: List of [PlacementStrategy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementstrategy.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PlatformVersion": "The platform version that your tasks in the service are running on\\. A platform version is specified only for tasks using the Fargate launch type\\. If one isn't specified, the `LATEST` platform version is used\\. For more information, see [AWS Fargate platform versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PropagateTags": "Specifies whether to propagate the tags from the task definition or the service to the tasks in the service\\. If no value is specified, the tags are not propagated\\. Tags can only be propagated to the tasks within the service during service creation\\. To add tags to a task after service creation, use the [TagResource](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TagResource.html) API action\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | SERVICE | TASK_DEFINITION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Role": "The name or full Amazon Resource Name \\(ARN\\) of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf\\. This parameter is only permitted if you are using a load balancer with your service and your task definition doesn't use the `awsvpc` network mode\\. If you specify the `role` parameter, you must also specify a load balancer object with the `loadBalancers` parameter\\. \nIf your account has already created the Amazon ECS service\\-linked role, that role is used for your service unless you specify a role here\\. The service\\-linked role is required if your task definition uses the `awsvpc` network mode or if the service is configured to use service discovery, an external deployment controller, multiple target groups, or Elastic Inference accelerators in which case you don't specify a role here\\. For more information, see [Using service\\-linked roles for Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html) in the *Amazon Elastic Container Service Developer Guide*\\.\nIf your specified role has a path other than `/`, then you must either specify the full role ARN \\(this is recommended\\) or prefix the role name with the path\\. For example, if a role with the name `bar` has a path of `/foo/` then you would specify `/foo/bar` as the role name\\. For more information, see [Friendly names and paths](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SchedulingStrategy": "The scheduling strategy to use for the service\\. For more information, see [Services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html)\\. \nThere are two service scheduler strategies available: \n+ `REPLICA`\\-The replica scheduling strategy places and maintains the desired number of tasks across your cluster\\. By default, the service scheduler spreads tasks across Availability Zones\\. You can use task placement strategies and constraints to customize task placement decisions\\. This scheduler strategy is required if the service uses the `CODE_DEPLOY` or `EXTERNAL` deployment controller types\\.\n+ `DAEMON`\\-The daemon scheduling strategy deploys exactly one task on each active container instance that meets all of the task placement constraints that you specify in your cluster\\. The service scheduler also evaluates the task placement constraints for running tasks and will stop tasks that don't meet the placement constraints\\. When you're using this strategy, you don't need to specify a desired number of tasks, a task placement strategy, or use Service Auto Scaling policies\\.\n**Note** \nTasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `DAEMON | REPLICA` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ServiceName": "The name of your service\\. Up to 255 letters \\(uppercase and lowercase\\), numbers, underscores, and hyphens are allowed\\. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a Region or across multiple Regions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ServiceRegistries": "The details of the service discovery registry to associate with this service\\. For more information, see [Service discovery](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html)\\. \nEach service may be associated with one service registry\\. Multiple service registries for each service isn't supported\\.\n*Required*: No \n*Type*: List of [ServiceRegistry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceregistry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The metadata that you apply to the service to help you categorize and organize them\\. Each tag consists of a key and an optional value, both of which you define\\. When a service is deleted, the tags are deleted as well\\. \nThe following basic restrictions apply to tags: \n+ Maximum number of tags per resource \\- 50\n+ For each resource, each tag key must be unique, and each tag key can have only one value\\.\n+ Maximum key length \\- 128 Unicode characters in UTF\\-8\n+ Maximum value length \\- 256 Unicode characters in UTF\\-8\n+ If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters\\. Generally allowed characters are: letters, numbers, and spaces representable in UTF\\-8, and the following characters: \\+ \\- = \\. \\_ : / @\\.\n+ Tag keys and values are case\\-sensitive\\.\n+ Do not use `aws:`, `AWS:`, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use\\. You cannot edit or delete tag keys or values with this prefix\\. Tags with this prefix do not count against your tags per resource limit\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TaskDefinition": "The `family` and `revision` \\(`family:revision`\\) or full ARN of the task definition to run in your service\\. The `revision` is required in order for the resource to stabilize\\. \nA task definition must be specified if the service is using either the `ECS` or `CODE_DEPLOY` deployment controllers\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECS::Service AwsVpcConfiguration": { + "AssignPublicIp": "Whether the task's elastic network interface receives a public IP address\\. The default value is `DISABLED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroups": "The IDs of the security groups associated with the task or service\\. If you don't specify a security group, the default security group for the VPC is used\\. There's a limit of 5 security groups that can be specified per `AwsVpcConfiguration`\\. \nAll specified security groups must be from the same VPC\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Subnets": "The IDs of the subnets associated with the task or service\\. There's a limit of 16 subnets that can be specified per `AwsVpcConfiguration`\\. \nAll specified subnets must be from the same VPC\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECS::Service CapacityProviderStrategyItem": { + "Base": "The *base* value designates how many tasks, at a minimum, to run on the specified capacity provider\\. Only one capacity provider in a capacity provider strategy can have a *base* defined\\. If no value is specified, the default value of `0` is used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CapacityProvider": "The short name of the capacity provider\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Weight": "The *weight* value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider\\. The `weight` value is taken into consideration after the `base` value, if defined, is satisfied\\. \nIf no `weight` value is specified, the default value of `0` is used\\. When multiple capacity providers are specified within a capacity provider strategy, at least one of the capacity providers must have a weight value greater than zero and any capacity providers with a weight of `0` can't be used to place tasks\\. If you specify multiple capacity providers in a strategy that all have a weight of `0`, any `RunTask` or `CreateService` actions using the capacity provider strategy will fail\\. \nAn example scenario for using weights is defining a strategy that contains two capacity providers and both have a weight of `1`, then when the `base` is satisfied, the tasks will be split evenly across the two capacity providers\\. Using that same logic, if you specify a weight of `1` for *capacityProviderA* and a weight of `4` for *capacityProviderB*, then for every one task that's run using *capacityProviderA*, four tasks would use *capacityProviderB*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECS::Service DeploymentCircuitBreaker": { + "Enable": "Determines whether to use the deployment circuit breaker logic for the service\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Rollback": "Determines whether to configure Amazon ECS to roll back the service if a service deployment fails\\. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECS::Service DeploymentConfiguration": { + "DeploymentCircuitBreaker": "The deployment circuit breaker can only be used for services using the rolling update \\(`ECS`\\) deployment type that are not behind a Classic Load Balancer\\.\nThe **deployment circuit breaker** determines whether a service deployment will fail if the service can't reach a steady state\\. If enabled, a service deployment will transition to a failed state and stop launching new tasks\\. You can also enable Amazon ECS to roll back your service to the last completed deployment after a failure\\. For more information, see [Rolling update](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: [DeploymentCircuitBreaker](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentcircuitbreaker.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaximumPercent": "If a service is using the rolling update \\(`ECS`\\) deployment type, the **maximum percent** parameter represents an upper limit on the number of tasks in a service that are allowed in the `RUNNING` or `PENDING` state during a deployment, as a percentage of the desired number of tasks \\(rounded down to the nearest integer\\), and while any container instances are in the `DRAINING` state if the service contains tasks using the EC2 launch type\\. This parameter enables you to define the deployment batch size\\. For example, if your service has a desired number of four tasks and a maximum percent value of 200%, the scheduler may start four new tasks before stopping the four older tasks \\(provided that the cluster resources required to do this are available\\)\\. The default value for maximum percent is 200%\\. \nIf a service is using the blue/green \\(`CODE_DEPLOY`\\) or `EXTERNAL` deployment types and tasks that use the EC2 launch type, the **maximum percent** value is set to the default value and is used to define the upper limit on the number of the tasks in the service that remain in the `RUNNING` state while the container instances are in the `DRAINING` state\\. If the tasks in the service use the Fargate launch type, the maximum percent value is not used, although it is returned when describing your service\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinimumHealthyPercent": "If a service is using the rolling update \\(`ECS`\\) deployment type, the **minimum healthy percent** represents a lower limit on the number of tasks in a service that must remain in the `RUNNING` state during a deployment, as a percentage of the desired number of tasks \\(rounded up to the nearest integer\\), and while any container instances are in the `DRAINING` state if the service contains tasks using the EC2 launch type\\. This parameter enables you to deploy without using additional cluster capacity\\. For example, if your service has a desired number of four tasks and a minimum healthy percent of 50%, the scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks\\. Tasks for services that *do not* use a load balancer are considered healthy if they're in the `RUNNING` state; tasks for services that *do* use a load balancer are considered healthy if they're in the `RUNNING` state and they're reported as healthy by the load balancer\\. The default value for minimum healthy percent is 100%\\. \nIf a service is using the blue/green \\(`CODE_DEPLOY`\\) or `EXTERNAL` deployment types and tasks that use the EC2 launch type, the **minimum healthy percent** value is set to the default value and is used to define the lower limit on the number of the tasks in the service that remain in the `RUNNING` state while the container instances are in the `DRAINING` state\\. If the tasks in the service use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECS::Service DeploymentController": { + "Type": "The deployment controller type to use\\. There are three deployment controller types available: \nECS \nThe rolling update \\(`ECS`\\) deployment type involves replacing the current running version of the container with the latest version\\. The number of containers Amazon ECS adds or removes from the service during a rolling update is controlled by adjusting the minimum and maximum number of healthy tasks allowed during a service deployment, as specified in the [DeploymentConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeploymentConfiguration.html)\\. \nCODE\\_DEPLOY \nThe blue/green \\(`CODE_DEPLOY`\\) deployment type uses the blue/green deployment model powered by AWS CodeDeploy, which allows you to verify a new deployment of a service before sending production traffic to it\\. \nEXTERNAL \nThe external \\(`EXTERNAL`\\) deployment type enables you to use any third\\-party deployment controller for full control over the deployment process for an Amazon ECS service\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `CODE_DEPLOY | ECS | EXTERNAL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::Service LoadBalancer": { + "ContainerName": "The name of the container \\(as it appears in a container definition\\) to associate with the load balancer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContainerPort": "The port on the container to associate with the load balancer\\. This port must correspond to a `containerPort` in the task definition the tasks in the service are using\\. For tasks that use the EC2 launch type, the container instance they're launched on must allow ingress traffic on the `hostPort` of the port mapping\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoadBalancerName": "The name of the load balancer to associate with the Amazon ECS service or task set\\. \nA load balancer name is only specified when using a Classic Load Balancer\\. If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetGroupArn": "The full Amazon Resource Name \\(ARN\\) of the Elastic Load Balancing target group or groups associated with a service or task set\\. \nA target group ARN is only specified when using an Application Load Balancer or Network Load Balancer\\. If you're using a Classic Load Balancer, omit the target group ARN\\. \nFor services using the `ECS` deployment controller, you can specify one or multiple target groups\\. For more information, see [Registering Multiple Target Groups with a Service](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nFor services using the `CODE_DEPLOY` deployment controller, you're required to define two target groups for the load balancer\\. For more information, see [Blue/Green Deployment with CodeDeploy](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nIf your service's task definition uses the `awsvpc` network mode, you must choose `ip` as the target type, not `instance`\\. Do this when creating your target groups because tasks that use the `awsvpc` network mode are associated with an elastic network interface, not an Amazon EC2 instance\\. This network mode is required for the Fargate launch type\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECS::Service NetworkConfiguration": { + "AwsvpcConfiguration": "The VPC subnets and security groups that are associated with a task\\. \nAll specified subnets and security groups must be from the same VPC\\.\n*Required*: No \n*Type*: [AwsVpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-awsvpcconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECS::Service PlacementConstraint": { + "Expression": "A cluster query language expression to apply to the constraint\\. The expression can have a maximum length of 2000 characters\\. You can't specify an expression if the constraint type is `distinctInstance`\\. For more information, see [Cluster query language](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "The type of constraint\\. Use `distinctInstance` to ensure that each task in a particular group is running on a different container instance\\. Use `memberOf` to restrict the selection to a group of valid candidates\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `distinctInstance | memberOf` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::Service PlacementStrategy": { + "Field": "The field to apply the placement strategy against\\. For the `spread` placement strategy, valid values are `instanceId` \\(or `host`, which has the same effect\\), or any platform or custom attribute that's applied to a container instance, such as `attribute:ecs.availability-zone`\\. For the `binpack` placement strategy, valid values are `cpu` and `memory`\\. For the `random` placement strategy, this field is not used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "The type of placement strategy\\. The `random` placement strategy randomly places tasks on available candidates\\. The `spread` placement strategy spreads placement across available candidates evenly based on the `field` parameter\\. The `binpack` strategy places tasks on available candidates that have the least available amount of the resource that's specified with the `field` parameter\\. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory but still enough to run the task\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `binpack | random | spread` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::Service ServiceRegistry": { + "ContainerName": "The container name value to be used for your service discovery service\\. It's already specified in the task definition\\. If the task definition that your service task specifies uses the `bridge` or `host` network mode, you must specify a `containerName` and `containerPort` combination from the task definition\\. If the task definition that your service task specifies uses the `awsvpc` network mode and a type SRV DNS record is used, you must specify either a `containerName` and `containerPort` combination or a `port` value\\. However, you can't specify both\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContainerPort": "The port value to be used for your service discovery service\\. It's already specified in the task definition\\. If the task definition your service task specifies uses the `bridge` or `host` network mode, you must specify a `containerName` and `containerPort` combination from the task definition\\. If the task definition your service task specifies uses the `awsvpc` network mode and a type SRV DNS record is used, you must specify either a `containerName` and `containerPort` combination or a `port` value\\. However, you can't specify both\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "The port value used if your service discovery service specified an SRV record\\. This field might be used if both the `awsvpc` network mode and SRV records are used\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegistryArn": "The Amazon Resource Name \\(ARN\\) of the service registry\\. The currently supported service registry is AWS Cloud Map\\. For more information, see [CreateService](https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECS::TaskDefinition": { + "ContainerDefinitions": "A list of container definitions in JSON format that describe the different containers that make up your task\\. For more information about container definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: List of [ContainerDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Cpu": "The number of `cpu` units used by the task\\. If you use the EC2 launch type, this field is optional\\. Any value can be used\\. If you use the Fargate launch type, this field is required\\. You must use one of the following values\\. The value that you choose determines your range of valid values for the `memory` parameter\\. \nThe CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate\\. \n+ 256 \\(\\.25 vCPU\\) \\- Available `memory` values: 512 \\(0\\.5 GB\\), 1024 \\(1 GB\\), 2048 \\(2 GB\\)\n+ 512 \\(\\.5 vCPU\\) \\- Available `memory` values: 1024 \\(1 GB\\), 2048 \\(2 GB\\), 3072 \\(3 GB\\), 4096 \\(4 GB\\)\n+ 1024 \\(1 vCPU\\) \\- Available `memory` values: 2048 \\(2 GB\\), 3072 \\(3 GB\\), 4096 \\(4 GB\\), 5120 \\(5 GB\\), 6144 \\(6 GB\\), 7168 \\(7 GB\\), 8192 \\(8 GB\\)\n+ 2048 \\(2 vCPU\\) \\- Available `memory` values: Between 4096 \\(4 GB\\) and 16384 \\(16 GB\\) in increments of 1024 \\(1 GB\\)\n+ 4096 \\(4 vCPU\\) \\- Available `memory` values: Between 8192 \\(8 GB\\) and 30720 \\(30 GB\\) in increments of 1024 \\(1 GB\\)\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EphemeralStorage": "The ephemeral storage settings to use for tasks run with the task definition\\. \n*Required*: No \n*Type*: [EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-ephemeralstorage.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ExecutionRoleArn": "The Amazon Resource Name \\(ARN\\) of the task execution role that grants the Amazon ECS container agent permission to make AWS API calls on your behalf\\. The task execution IAM role is required depending on the requirements of your task\\. For more information, see [Amazon ECS task execution IAM role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Family": "The name of a family that this task definition is registered to\\. Up to 255 letters \\(uppercase and lowercase\\), numbers, hyphens, and underscores are allowed\\. \nA family groups multiple versions of a task definition\\. Amazon ECS gives the first task definition that you registered to a family a revision number of 1\\. Amazon ECS gives sequential revision numbers to each task definition that you add\\. \nTo use revision numbers when you update a task definition, specify this property\\. If you don't specify a value, AWS CloudFormation generates a new task definition each time that you update it\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InferenceAccelerators": "The Elastic Inference accelerators to use for the containers in the task\\. \n*Required*: No \n*Type*: List of [InferenceAccelerator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-inferenceaccelerator.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IpcMode": "The IPC resource namespace to use for the containers in the task\\. The valid values are `host`, `task`, or `none`\\. If `host` is specified, then all containers within the tasks that specified the `host` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance\\. If `task` is specified, all containers within the specified task share the same IPC resources\\. If `none` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance\\. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance\\. For more information, see [IPC settings](https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*\\. \nIf the `host` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose\\. For more information, see [Docker security](https://docs.docker.com/engine/security/security/)\\. \nIf you are setting namespaced kernel parameters using `systemControls` for the containers in the task, the following will apply to your IPC resource namespace\\. For more information, see [System Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n+ For tasks that use the `host` IPC mode, IPC namespace related `systemControls` are not supported\\.\n+ For tasks that use the `task` IPC mode, IPC namespace related `systemControls` will apply to all containers within a task\\.\nThis parameter is not supported for Windows containers or tasks run on AWS Fargate\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `host | none | task` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Memory": "The amount \\(in MiB\\) of memory used by the task\\. \nIf your tasks runs on Amazon EC2 instances, you must specify either a task\\-level memory value or a container\\-level memory value\\. This field is optional and any value can be used\\. If a task\\-level memory value is specified, the container\\-level memory value is optional\\. For more information regarding container\\-level memory and memory reservation, see [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html)\\. \nIf your tasks runs on AWS Fargate, this field is required\\. You must use one of the following values\\. The value you choose determines your range of valid values for the `cpu` parameter\\. \n+ 512 \\(0\\.5 GB\\), 1024 \\(1 GB\\), 2048 \\(2 GB\\) \\- Available `cpu` values: 256 \\(\\.25 vCPU\\)\n+ 1024 \\(1 GB\\), 2048 \\(2 GB\\), 3072 \\(3 GB\\), 4096 \\(4 GB\\) \\- Available `cpu` values: 512 \\(\\.5 vCPU\\)\n+ 2048 \\(2 GB\\), 3072 \\(3 GB\\), 4096 \\(4 GB\\), 5120 \\(5 GB\\), 6144 \\(6 GB\\), 7168 \\(7 GB\\), 8192 \\(8 GB\\) \\- Available `cpu` values: 1024 \\(1 vCPU\\)\n+ Between 4096 \\(4 GB\\) and 16384 \\(16 GB\\) in increments of 1024 \\(1 GB\\) \\- Available `cpu` values: 2048 \\(2 vCPU\\)\n+ Between 8192 \\(8 GB\\) and 30720 \\(30 GB\\) in increments of 1024 \\(1 GB\\) \\- Available `cpu` values: 4096 \\(4 vCPU\\)\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NetworkMode": "The Docker networking mode to use for the containers in the task\\. The valid values are `none`, `bridge`, `awsvpc`, and `host`\\. The default Docker network mode is `bridge`\\. If you are using the Fargate launch type, the `awsvpc` network mode is required\\. If you are using the EC2 launch type, any network mode can be used\\. If the network mode is set to `none`, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity\\. The `host` and `awsvpc` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the `bridge` mode\\. \nWith the `host` and `awsvpc` network modes, exposed container ports are mapped directly to the corresponding host port \\(for the `host` network mode\\) or the attached elastic network interface port \\(for the `awsvpc` network mode\\), so you cannot take advantage of dynamic host port mappings\\. \nIf the network mode is `awsvpc`, the task is allocated an elastic network interface, and you must specify a [NetworkConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_NetworkConfiguration.html) value when you create a service or run a task with the task definition\\. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nCurrently, only Amazon ECS\\-optimized AMIs, other Amazon Linux variants with the `ecs-init` package, or AWS Fargate infrastructure support the `awsvpc` network mode\\. \nIf the network mode is `host`, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used\\. \nDocker for Windows uses different network modes than Docker for Linux\\. When you register a task definition with Windows containers, you must not specify a network mode\\. If you use the console to register a task definition with Windows containers, you must choose the `` network mode object\\. \nFor more information, see [Network settings](https://docs.docker.com/engine/reference/run/#network-settings) in the *Docker run reference*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `awsvpc | bridge | host | none` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PidMode": "The process namespace to use for the containers in the task\\. The valid values are `host` or `task`\\. If `host` is specified, then all containers within the tasks that specified the `host` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance\\. If `task` is specified, all containers within the specified task share the same process namespace\\. If no value is specified, the default is a private namespace\\. For more information, see [PID settings](https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*\\. \nIf the `host` PID mode is used, be aware that there is a heightened risk of undesired process namespace expose\\. For more information, see [Docker security](https://docs.docker.com/engine/security/security/)\\. \nThis parameter is not supported for Windows containers or tasks run on AWS Fargate\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `host | task` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PlacementConstraints": "An array of placement constraint objects to use for tasks\\. \nThis parameter isn't supported for tasks run on AWS Fargate\\.\n*Required*: No \n*Type*: List of [TaskDefinitionPlacementConstraint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-taskdefinitionplacementconstraint.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProxyConfiguration": "The `ProxyConfiguration` property specifies the configuration details for the App Mesh proxy\\. \nYour Amazon ECS container instances require at least version 1\\.26\\.0 of the container agent and at least version 1\\.26\\.0\\-1 of the `ecs-init` package to enable a proxy configuration\\. If your container instances are launched from the Amazon ECS\\-optimized AMI version `20190301` or later, then they contain the required versions of the container agent and `ecs-init`\\. For more information, see [Amazon ECS\\-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: [ProxyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-proxyconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RequiresCompatibilities": "The task launch types the task definition was validated against\\. To determine which task launch types the task definition is validated for, see the `TaskDefinition$compatibilities` parameter\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RuntimePlatform": "The operating system that your tasks definitions run on\\. A platform family is specified only for tasks using the Fargate launch type\\. \nWhen you specify a task definition in a service, this value must match the `runtimePlatform` value of the service\\. \n*Required*: No \n*Type*: [RuntimePlatform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-runtimeplatform.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The metadata that you apply to the task definition to help you categorize and organize them\\. Each tag consists of a key and an optional value\\. You define both of them\\. \nThe following basic restrictions apply to tags: \n+ Maximum number of tags per resource \\- 50\n+ For each resource, each tag key must be unique, and each tag key can have only one value\\.\n+ Maximum key length \\- 128 Unicode characters in UTF\\-8\n+ Maximum value length \\- 256 Unicode characters in UTF\\-8\n+ If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters\\. Generally allowed characters are: letters, numbers, and spaces representable in UTF\\-8, and the following characters: \\+ \\- = \\. \\_ : / @\\.\n+ Tag keys and values are case\\-sensitive\\.\n+ Do not use `aws:`, `AWS:`, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use\\. You cannot edit or delete tag keys or values with this prefix\\. Tags with this prefix do not count against your tags per resource limit\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TaskRoleArn": "The short name or full Amazon Resource Name \\(ARN\\) of the AWS Identity and Access Management role that grants containers in the task permission to call AWS APIs on your behalf\\. For more information, see [Amazon ECS Task Role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nIAM roles for tasks on Windows require that the `-EnableTaskIAMRole` option is set when you launch the Amazon ECS\\-optimized Windows AMI\\. Your containers must also run some configuration code to use the feature\\. For more information, see [Windows IAM roles for tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Volumes": "The list of data volume definitions for the task\\. For more information, see [Using data volumes in tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nThe `host` and `sourcePath` parameters aren't supported for tasks run on AWS Fargate\\.\n*Required*: No \n*Type*: List of [Volume](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition AuthorizationConfig": { + "AccessPointId": "The Amazon EFS access point ID to use\\. If an access point is specified, the root directory value specified in the `EFSVolumeConfiguration` must either be omitted or set to `/` which will enforce the path set on the EFS access point\\. If an access point is used, transit encryption must be enabled in the `EFSVolumeConfiguration`\\. For more information, see [Working with Amazon EFS Access Points](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html) in the *Amazon Elastic File System User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IAM": "Determines whether to use the Amazon ECS task IAM role defined in a task definition when mounting the Amazon EFS file system\\. If enabled, transit encryption must be enabled in the `EFSVolumeConfiguration`\\. If this parameter is omitted, the default value of `DISABLED` is used\\. For more information, see [Using Amazon EFS Access Points](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html#efs-volume-accesspoints) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition ContainerDefinition": { + "Command": "The command that's passed to the container\\. This parameter maps to `Cmd` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `COMMAND` parameter to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. For more information, see [https://docs\\.docker\\.com/engine/reference/builder/\\#cmd](https://docs.docker.com/engine/reference/builder/#cmd)\\. If there are multiple arguments, each argument is a separated string in the array\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Cpu": "The number of `cpu` units reserved for the container\\. This parameter maps to `CpuShares` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--cpu-shares` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThis field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task\\-level `cpu` value\\. \nYou can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](http://aws.amazon.com/ec2/instance-types/) detail page by 1,024\\.\nLinux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount\\. For example, if you run a single\\-container task on a single\\-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time\\. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed\\. Moreover, each container could float to higher CPU usage if the other container was not using it\\. If both tasks were 100% active all of the time, they would be limited to 512 CPU units\\. \nOn Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers\\. For more information, see [CPU share constraint](https://docs.docker.com/engine/reference/run/#cpu-share-constraint) in the Docker documentation\\. The minimum valid CPU share value that the Linux kernel allows is 2\\. However, the CPU parameter isn't required, and you can use CPU values below 2 in your container definitions\\. For CPU values below 2 \\(including null\\), the behavior varies based on your Amazon ECS container agent version: \n+ **Agent versions less than or equal to 1\\.1\\.0:** Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares\\. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares\\.\n+ **Agent versions greater than or equal to 1\\.2\\.0:** Null, zero, and CPU values of 1 are passed to Docker as 2\\.\nOn Windows container instances, the CPU limit is enforced as an absolute limit, or a quota\\. Windows containers only have access to the specified amount of CPU that's described in the task definition\\. A null or zero CPU value is passed to Docker as `0`, which Windows interprets as 1% of one CPU\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DependsOn": "The dependencies defined for container startup and shutdown\\. A container can contain multiple dependencies\\. When a dependency is defined for container startup, for container shutdown it is reversed\\. \nFor tasks using the EC2 launch type, the container instances require at least version 1\\.26\\.0 of the container agent to turn on container dependencies\\. However, we recommend using the latest container agent version\\. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*\\. If you're using an Amazon ECS\\-optimized Linux AMI, your instance needs at least version 1\\.26\\.0\\-1 of the `ecs-init` package\\. If your container instances are launched from version `20190301` or later, then they contain the required versions of the container agent and `ecs-init`\\. For more information, see [Amazon ECS\\-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nFor tasks using the Fargate launch type, the task or service requires the following platforms: \n+ Linux platform version `1.3.0` or later\\.\n+ Windows platform version `1.0.0` or later\\.\n*Required*: No \n*Type*: List of [ContainerDependency](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdependency.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DisableNetworking": "When this parameter is true, networking is disabled within the container\\. This parameter maps to `NetworkDisabled` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/)\\. \nThis parameter is not supported for Windows containers\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DnsSearchDomains": "A list of DNS search domains that are presented to the container\\. This parameter maps to `DnsSearch` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--dns-search` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThis parameter is not supported for Windows containers\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DnsServers": "A list of DNS servers that are presented to the container\\. This parameter maps to `Dns` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--dns` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThis parameter is not supported for Windows containers\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DockerLabels": "A key/value map of labels to add to the container\\. This parameter maps to `Labels` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--label` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. This parameter requires version 1\\.18 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version --format '{{.Server.APIVersion}}'` \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DockerSecurityOptions": "A list of strings to provide custom labels for SELinux and AppArmor multi\\-level security systems\\. This field isn't valid for containers in tasks using the Fargate launch type\\. \nWith Windows containers, this parameter can be used to reference a credential spec file when configuring a container for Active Directory authentication\\. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nThis parameter maps to `SecurityOpt` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--security-opt` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThe Amazon ECS container agent running on a container instance must register with the `ECS_SELINUX_CAPABLE=true` or `ECS_APPARMOR_CAPABLE=true` environment variables before containers placed on that instance can use these security options\\. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*\\.\nFor more information about valid values, see [Docker Run Security Configuration](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nValid values: \"no\\-new\\-privileges\" \\| \"apparmor:PROFILE\" \\| \"label:value\" \\| \"credentialspec:CredentialSpecFilePath\" \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EntryPoint": "Early versions of the Amazon ECS container agent don't properly handle `entryPoint` parameters\\. If you have problems using `entryPoint`, update your container agent or enter your commands and arguments as `command` array items instead\\.\nThe entry point that's passed to the container\\. This parameter maps to `Entrypoint` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--entrypoint` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. For more information, see [https://docs\\.docker\\.com/engine/reference/builder/\\#entrypoint](https://docs.docker.com/engine/reference/builder/#entrypoint)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Environment": "The environment variables to pass to a container\\. This parameter maps to `Env` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--env` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nWe don't recommend that you use plaintext environment variables for sensitive information, such as credential data\\.\n*Required*: No \n*Type*: List of [KeyValuePair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-environment.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EnvironmentFiles": "A list of files containing the environment variables to pass to a container\\. This parameter maps to the `--env-file` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nYou can specify up to ten environment files\\. The file must have a `.env` file extension\\. Each line in an environment file contains an environment variable in `VARIABLE=VALUE` format\\. Lines beginning with `#` are treated as comments and are ignored\\. For more information about the environment variable file syntax, see [Declare default environment variables in file](https://docs.docker.com/compose/env-file/)\\. \nIf there are environment variables specified using the `environment` parameter in a container definition, they take precedence over the variables contained within an environment file\\. If multiple environment files are specified that contain the same variable, they're processed from the top down\\. We recommend that you use unique variable names\\. For more information, see [Specifying Environment Variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: List of [EnvironmentFile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-environmentfile.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Essential": "If the `essential` parameter of a container is marked as `true`, and that container fails or stops for any reason, all other containers that are part of the task are stopped\\. If the `essential` parameter of a container is marked as `false`, its failure doesn't affect the rest of the containers in a task\\. If this parameter is omitted, a container is assumed to be essential\\. \nAll tasks must have at least one essential container\\. If you have an application that's composed of multiple containers, group containers that are used for a common purpose into components, and separate the different components into multiple task definitions\\. For more information, see [Application Architecture](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ExtraHosts": "A list of hostnames and IP address mappings to append to the `/etc/hosts` file on the container\\. This parameter maps to `ExtraHosts` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--add-host` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThis parameter isn't supported for Windows containers or tasks that use the `awsvpc` network mode\\.\n*Required*: No \n*Type*: List of [HostEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-hostentry.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FirelensConfiguration": "The FireLens configuration for the container\\. This is used to specify and configure a log router for container logs\\. For more information, see [Custom Log Routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: [FirelensConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-firelensconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "HealthCheck": "The container health check command and associated configuration parameters for the container\\. This parameter maps to `HealthCheck` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `HEALTHCHECK` parameter of [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \n*Required*: No \n*Type*: [HealthCheck](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Hostname": "The hostname to use for your container\\. This parameter maps to `Hostname` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--hostname` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThe `hostname` parameter is not supported if you're using the `awsvpc` network mode\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Image": "The image used to start a container\\. This string is passed directly to the Docker daemon\\. By default, images in the Docker Hub registry are available\\. Other repositories are specified with either ` repository-url/image:tag ` or ` repository-url/image@digest `\\. Up to 255 letters \\(uppercase and lowercase\\), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed\\. This parameter maps to `Image` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `IMAGE` parameter of [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \n+ When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use\\. However, subsequent updates to a repository image aren't propagated to already running tasks\\.\n+ Images in Amazon ECR repositories can be specified by either using the full `registry/repository:tag` or `registry/repository@digest`\\. For example, `012345678910.dkr.ecr..amazonaws.com/:latest` or `012345678910.dkr.ecr..amazonaws.com/@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE`\\. \n+ Images in official repositories on Docker Hub use a single name \\(for example, `ubuntu` or `mongo`\\)\\.\n+ Images in other repositories on Docker Hub are qualified with an organization name \\(for example, `amazon/amazon-ecs-agent`\\)\\.\n+ Images in other online repositories are qualified further by a domain name \\(for example, `quay.io/assemblyline/ubuntu`\\)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Interactive": "When this parameter is `true`, you can deploy containerized applications that require `stdin` or a `tty` to be allocated\\. This parameter maps to `OpenStdin` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--interactive` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Links": "The `links` parameter allows containers to communicate with each other without the need for port mappings\\. This parameter is only supported if the network mode of a task definition is `bridge`\\. The `name:internalName` construct is analogous to `name:alias` in Docker links\\. Up to 255 letters \\(uppercase and lowercase\\), numbers, underscores, and hyphens are allowed\\. For more information about linking Docker containers, go to [Legacy container links](https://docs.docker.com/network/links/) in the Docker documentation\\. This parameter maps to `Links` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--link` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThis parameter is not supported for Windows containers\\.\nContainers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings\\. Network isolation is achieved on the container instance using security groups and VPC settings\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LinuxParameters": "Linux\\-specific modifications that are applied to the container, such as Linux kernel capabilities\\. For more information see [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html)\\. \nThis parameter is not supported for Windows containers\\.\n*Required*: No \n*Type*: [LinuxParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LogConfiguration": "The log configuration specification for the container\\. \nThis parameter maps to `LogConfig` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--log-driver` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. By default, containers use the same logging driver that the Docker daemon uses\\. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition\\. To use a different logging driver for a container, the log system must be configured properly on the container instance \\(or on a different log server for remote logging options\\)\\. For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.docker.com/engine/admin/logging/overview/) in the Docker documentation\\. \nAmazon ECS currently supports a subset of the logging drivers available to the Docker daemon \\(shown in the [LogConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html) data type\\)\\. Additional log drivers may be available in future releases of the Amazon ECS container agent\\.\nThis parameter requires version 1\\.18 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version --format '{{.Server.APIVersion}}'` \nThe Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the `ECS_AVAILABLE_LOGGING_DRIVERS` environment variable before containers placed on that instance can use these log configuration options\\. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*\\.\n*Required*: No \n*Type*: [LogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-logconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Memory": "The amount \\(in MiB\\) of memory to present to the container\\. If your container attempts to exceed the memory specified here, the container is killed\\. The total amount of memory reserved for all containers within a task must be lower than the task `memory` value, if one is specified\\. This parameter maps to `Memory` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--memory` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nIf using the Fargate launch type, this parameter is optional\\. \nIf using the EC2 launch type, you must specify either a task\\-level memory value or a container\\-level memory value\\. If you specify both a container\\-level `memory` and `memoryReservation` value, `memory` must be greater than `memoryReservation`\\. If you specify `memoryReservation`, then that value is subtracted from the available memory resources for the container instance where the container is placed\\. Otherwise, the value of `memory` is used\\. \nThe Docker 20\\.10\\.0 or later daemon reserves a minimum of 6 MiB of memory for a container, so you should not specify fewer than 6 MiB of memory for your containers\\. \nThe Docker 19\\.03\\.13\\-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MemoryReservation": "The soft limit \\(in MiB\\) of memory to reserve for the container\\. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit\\. However, your container can consume more memory when it needs to, up to either the hard limit specified with the `memory` parameter \\(if applicable\\), or all of the available memory on the container instance, whichever comes first\\. This parameter maps to `MemoryReservation` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--memory-reservation` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nIf a task\\-level memory value is not specified, you must specify a non\\-zero integer for one or both of `memory` or `memoryReservation` in a container definition\\. If you specify both, `memory` must be greater than `memoryReservation`\\. If you specify `memoryReservation`, then that value is subtracted from the available memory resources for the container instance where the container is placed\\. Otherwise, the value of `memory` is used\\. \nFor example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a `memoryReservation` of 128 MiB, and a `memory` hard limit of 300 MiB\\. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed\\. \nThe Docker daemon reserves a minimum of 4 MiB of memory for a container\\. Therefore, we recommend that you specify fewer than 4 MiB of memory for your containers\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MountPoints": "The mount points for data volumes in your container\\. \nThis parameter maps to `Volumes` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--volume` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nWindows containers can mount whole directories on the same drive as `$env:ProgramData`\\. Windows containers can't mount directories on a different drive, and mount point can't be across drives\\. \n*Required*: No \n*Type*: List of [MountPoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-mountpoints.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of a container\\. If you're linking multiple containers together in a task definition, the `name` of one container can be entered in the `links` of another container to connect the containers\\. Up to 255 letters \\(uppercase and lowercase\\), numbers, underscores, and hyphens are allowed\\. This parameter maps to `name` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--name` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PortMappings": "The list of port mappings for the container\\. Port mappings allow containers to access ports on the host container instance to send or receive traffic\\. \nFor task definitions that use the `awsvpc` network mode, you should only specify the `containerPort`\\. The `hostPort` can be left blank or it must be the same value as the `containerPort`\\. \nPort mappings on Windows use the `NetNAT` gateway address rather than `localhost`\\. There is no loopback for port mappings on Windows, so you cannot access a container's mapped port from the host itself\\. \nThis parameter maps to `PortBindings` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--publish` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. If the network mode of a task definition is set to `none`, then you can't specify port mappings\\. If the network mode of a task definition is set to `host`, then host ports must either be undefined or they must match the container port in the port mapping\\. \nAfter a task reaches the `RUNNING` status, manual and automatic host and container port assignments are visible in the **Network Bindings** section of a container description for a selected task in the Amazon ECS console\\. The assignments are also visible in the `networkBindings` section [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) responses\\.\n*Required*: No \n*Type*: List of [PortMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-portmappings.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Privileged": "When this parameter is true, the container is given elevated privileges on the host container instance \\(similar to the `root` user\\)\\. This parameter maps to `Privileged` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--privileged` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThis parameter is not supported for Windows containers or tasks run on AWS Fargate\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PseudoTerminal": "When this parameter is `true`, a TTY is allocated\\. This parameter maps to `Tty` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--tty` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ReadonlyRootFilesystem": "When this parameter is true, the container is given read\\-only access to its root file system\\. This parameter maps to `ReadonlyRootfs` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--read-only` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThis parameter is not supported for Windows containers\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RepositoryCredentials": "The private repository authentication credentials to use\\. \n*Required*: No \n*Type*: [RepositoryCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-repositorycredentials.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceRequirements": "The type and amount of a resource to assign to a container\\. The only supported resource is a GPU\\. \n*Required*: No \n*Type*: List of [ResourceRequirement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-resourcerequirement.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Secrets": "The secrets to pass to the container\\. For more information, see [Specifying Sensitive Data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: List of [Secret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-secret.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StartTimeout": "Time duration \\(in seconds\\) to wait before giving up on resolving dependencies for a container\\. For example, you specify two containers in a task definition with containerA having a dependency on containerB reaching a `COMPLETE`, `SUCCESS`, or `HEALTHY` status\\. If a `startTimeout` value is specified for containerB and it doesn't reach the desired status within that time then containerA gives up and not start\\. This results in the task transitioning to a `STOPPED` state\\. \nWhen the `ECS_CONTAINER_START_TIMEOUT` container agent configuration variable is used, it's enforced independently from this start timeout value\\.\nFor tasks using the Fargate launch type, the task or service requires the following platforms: \n+ Linux platform version `1.3.0` or later\\.\n+ Windows platform version `1.0.0` or later\\.\nFor tasks using the EC2 launch type, your container instances require at least version `1.26.0` of the container agent to use a container start timeout value\\. However, we recommend using the latest container agent version\\. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*\\. If you're using an Amazon ECS\\-optimized Linux AMI, your instance needs at least version `1.26.0-1` of the `ecs-init` package\\. If your container instances are launched from version `20190301` or later, then they contain the required versions of the container agent and `ecs-init`\\. For more information, see [Amazon ECS\\-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StopTimeout": "Time duration \\(in seconds\\) to wait before the container is forcefully killed if it doesn't exit normally on its own\\. \nFor tasks using the Fargate launch type, the task or service requires the following platforms: \n+ Linux platform version `1.3.0` or later\\.\n+ Windows platform version `1.0.0` or later\\.\nThe max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used\\. \nFor tasks that use the EC2 launch type, if the `stopTimeout` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable `ECS_CONTAINER_STOP_TIMEOUT` is used\\. If neither the `stopTimeout` parameter or the `ECS_CONTAINER_STOP_TIMEOUT` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used\\. Your container instances require at least version 1\\.26\\.0 of the container agent to use a container stop timeout value\\. However, we recommend using the latest container agent version\\. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*\\. If you're using an Amazon ECS\\-optimized Linux AMI, your instance needs at least version 1\\.26\\.0\\-1 of the `ecs-init` package\\. If your container instances are launched from version `20190301` or later, then they contain the required versions of the container agent and `ecs-init`\\. For more information, see [Amazon ECS\\-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SystemControls": "A list of namespaced kernel parameters to set in the container\\. This parameter maps to `Sysctls` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--sysctl` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nWe don't recommended that you specify network\\-related `systemControls` parameters for multiple containers in a single task that also uses either the `awsvpc` or `host` network modes\\. For tasks that use the `awsvpc` network mode, the container that's started last determines which `systemControls` parameters take effect\\. For tasks that use the `host` network mode, it changes the container instance's namespaced kernel parameters as well as the containers\\.\n*Required*: No \n*Type*: List of [SystemControl](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-systemcontrol.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Ulimits": "A list of `ulimits` to set in the container\\. This parameter maps to `Ulimits` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--ulimit` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. Valid naming values are displayed in the [Ulimit](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Ulimit.html) data type\\. This parameter requires version 1\\.18 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version --format '{{.Server.APIVersion}}'` \nThis parameter is not supported for Windows containers\\.\n*Required*: No \n*Type*: List of [Ulimit](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-ulimit.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "User": "The user to use inside the container\\. This parameter maps to `User` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--user` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nWhen running tasks using the `host` network mode, don't run containers using the root user \\(UID 0\\)\\. We recommend using a non\\-root user for better security\\.\nYou can specify the `user` using the following formats\\. If specifying a UID or GID, you must specify it as a positive integer\\. \n+ `user` \n+ `user:group` \n+ `uid` \n+ `uid:gid` \n+ `user:gid` \n+ `uid:group` \nThis parameter is not supported for Windows containers\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VolumesFrom": "Data volumes to mount from another container\\. This parameter maps to `VolumesFrom` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--volumes-from` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \n*Required*: No \n*Type*: List of [VolumeFrom](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-volumesfrom.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "WorkingDirectory": "The working directory to run commands inside the container in\\. This parameter maps to `WorkingDir` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--workdir` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition ContainerDependency": { + "Condition": "The dependency condition of the container\\. The following are the available conditions and their behavior: \n+ `START` \\- This condition emulates the behavior of links and volumes today\\. It validates that a dependent container is started before permitting other containers to start\\.\n+ `COMPLETE` \\- This condition validates that a dependent container runs to completion \\(exits\\) before permitting other containers to start\\. This can be useful for nonessential containers that run a script and then exit\\. This condition can't be set on an essential container\\.\n+ `SUCCESS` \\- This condition is the same as `COMPLETE`, but it also requires that the container exits with a `zero` status\\. This condition can't be set on an essential container\\.\n+ `HEALTHY` \\- This condition validates that the dependent container passes its Docker health check before permitting other containers to start\\. This requires that the dependent container has health checks configured\\. This condition is confirmed only at task startup\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `COMPLETE | HEALTHY | START | SUCCESS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ContainerName": "The name of a container\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition Device": { + "ContainerPath": "The path inside the container at which to expose the host device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "HostPath": "The path for the device on the host container instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Permissions": "The explicit permissions to provide to the container for the device\\. By default, the container has permissions for `read`, `write`, and `mknod` for the device\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition DockerVolumeConfiguration": { + "Autoprovision": "If this value is `true`, the Docker volume is created if it doesn't already exist\\. \nThis field is only used if the `scope` is `shared`\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Driver": "The Docker volume driver to use\\. The driver value must match the driver name provided by Docker because it is used for task placement\\. If the driver was installed using the Docker plugin CLI, use `docker plugin ls` to retrieve the driver name from your container instance\\. If the driver was installed using another method, use Docker plugin discovery to retrieve the driver name\\. For more information, see [Docker plugin discovery](https://docs.docker.com/engine/extend/plugin_api/#plugin-discovery)\\. This parameter maps to `Driver` in the [Create a volume](https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `xxdriver` option to [docker volume create](https://docs.docker.com/engine/reference/commandline/volume_create/)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DriverOpts": "A map of Docker driver\\-specific options passed through\\. This parameter maps to `DriverOpts` in the [Create a volume](https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `xxopt` option to [docker volume create](https://docs.docker.com/engine/reference/commandline/volume_create/)\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Labels": "Custom metadata to add to your Docker volume\\. This parameter maps to `Labels` in the [Create a volume](https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `xxlabel` option to [docker volume create](https://docs.docker.com/engine/reference/commandline/volume_create/)\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Scope": "The scope for the Docker volume that determines its lifecycle\\. Docker volumes that are scoped to a `task` are automatically provisioned when the task starts and destroyed when the task stops\\. Docker volumes that are scoped as `shared` persist after the task stops\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `shared | task` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition EFSVolumeConfiguration": { + "AuthorizationConfig": "The authorization configuration details for the Amazon EFS file system\\. \n*Required*: No \n*Type*: [AuthorizationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-authorizationconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FilesystemId": "The Amazon EFS file system ID to use\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RootDirectory": "The directory within the Amazon EFS file system to mount as the root directory inside the host\\. If this parameter is omitted, the root of the Amazon EFS volume will be used\\. Specifying `/` will have the same effect as omitting this parameter\\. \nIf an EFS access point is specified in the `authorizationConfig`, the root directory parameter must either be omitted or set to `/` which will enforce the path set on the EFS access point\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TransitEncryption": "Determines whether to use encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server\\. Transit encryption must be enabled if Amazon EFS IAM authorization is used\\. If this parameter is omitted, the default value of `DISABLED` is used\\. For more information, see [Encrypting Data in Transit](https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html) in the *Amazon Elastic File System User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TransitEncryptionPort": "The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server\\. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses\\. For more information, see [EFS Mount Helper](https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html) in the *Amazon Elastic File System User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition EnvironmentFile": { + "Type": "The file type to use\\. The only supported value is `s3`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `s3` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Value": "The Amazon Resource Name \\(ARN\\) of the Amazon S3 object containing the environment variable file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition EphemeralStorage": { + "SizeInGiB": "The total amount, in GiB, of ephemeral storage to set for the task\\. The minimum supported value is `21` GiB and the maximum supported value is `200` GiB\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition FirelensConfiguration": { + "Options": "The options to use when configuring the log router\\. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event\\. \n If specified, valid option keys are: \n+ `enable-ecs-log-metadata`, which can be `true` or `false`\n+ `config-file-type`, which can be `s3` or `file`\n+ `config-file-value`, which is either an S3 ARN or a file path\n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "The log router to use\\. The valid values are `fluentd` or `fluentbit`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `fluentbit | fluentd` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition HealthCheck": { + "Command": "A string array representing the command that the container runs to determine if it is healthy\\. The string array must start with `CMD` to execute the command arguments directly, or `CMD-SHELL` to run the command with the container's default shell\\. \n When you use the AWS Management Console JSON panel, the AWS Command Line Interface, or the APIs, enclose the list of commands in brackets\\. \n `[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]` \nYou don't need to include the brackets when you use the AWS Management Console\\. \n ` \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ` \nAn exit code of 0 indicates success, and non\\-zero exit code indicates failure\\. For more information, see `HealthCheck` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Interval": "The time period in seconds between each health check execution\\. You may specify between 5 and 300 seconds\\. The default value is 30 seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Retries": "The number of times to retry a failed health check before the container is considered unhealthy\\. You may specify between 1 and 10 retries\\. The default value is 3\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StartPeriod": "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries\\. You can specify between 0 and 300 seconds\\. By default, the `startPeriod` is disabled\\. \nIf a health check succeeds within the `startPeriod`, then the container is considered healthy and any subsequent failures count toward the maximum number of retries\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Timeout": "The time period in seconds to wait for a health check to succeed before it is considered a failure\\. You may specify between 2 and 60 seconds\\. The default value is 5\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition HostEntry": { + "Hostname": "The hostname to use in the `/etc/hosts` entry\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IpAddress": "The IP address to use in the `/etc/hosts` entry\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition HostVolumeProperties": { + "SourcePath": "When the `host` parameter is used, specify a `sourcePath` to declare the path on the host container instance that's presented to the container\\. If this parameter is empty, then the Docker daemon has assigned a host path for you\\. If the `host` parameter contains a `sourcePath` file location, then the data volume persists at the specified location on the host container instance until you delete it manually\\. If the `sourcePath` value doesn't exist on the host container instance, the Docker daemon creates it\\. If the location does exist, the contents of the source path folder are exported\\. \nIf you're using the Fargate launch type, the `sourcePath` parameter is not supported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition InferenceAccelerator": { + "DeviceName": "The Elastic Inference accelerator device name\\. The `deviceName` must also be referenced in a container definition as a [ResourceRequirement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-resourcerequirement.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DeviceType": "The Elastic Inference accelerator type to use\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition KernelCapabilities": { + "Add": "The Linux capabilities for the container that have been added to the default configuration provided by Docker\\. This parameter maps to `CapAdd` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--cap-add` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nTasks launched on AWS Fargate only support adding the `SYS_PTRACE` kernel capability\\.\nValid values: `\"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" | \"WAKE_ALARM\"` \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Drop": "The Linux capabilities for the container that have been removed from the default configuration provided by Docker\\. This parameter maps to `CapDrop` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--cap-drop` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nValid values: `\"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" | \"WAKE_ALARM\"` \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition KeyValuePair": { + "Name": "The name of the key\\-value pair\\. For environment variables, this is the name of the environment variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Value": "The value of the key\\-value pair\\. For environment variables, this is the value of the environment variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition LinuxParameters": { + "Capabilities": "The Linux capabilities for the container that are added to or dropped from the default configuration provided by Docker\\. \nFor tasks that use the Fargate launch type, `capabilities` is supported for all platform versions but the `add` parameter is only supported if using platform version 1\\.4\\.0 or later\\.\n*Required*: No \n*Type*: [KernelCapabilities](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-kernelcapabilities.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Devices": "Any host devices to expose to the container\\. This parameter maps to `Devices` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--device` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nIf you're using tasks that use the Fargate launch type, the `devices` parameter isn't supported\\.\n*Required*: No \n*Type*: List of [Device](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-device.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InitProcessEnabled": "Run an `init` process inside the container that forwards signals and reaps processes\\. This parameter maps to the `--init` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. This parameter requires version 1\\.25 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version --format '{{.Server.APIVersion}}'` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MaxSwap": "The total amount of swap memory \\(in MiB\\) a container can use\\. This parameter will be translated to the `--memory-swap` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration) where the value would be the sum of the container memory plus the `maxSwap` value\\. \nIf a `maxSwap` value of `0` is specified, the container will not use swap\\. Accepted values are `0` or any positive integer\\. If the `maxSwap` parameter is omitted, the container will use the swap configuration for the container instance it is running on\\. A `maxSwap` value must be set for the `swappiness` parameter to be used\\. \nIf you're using tasks that use the Fargate launch type, the `maxSwap` parameter isn't supported\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SharedMemorySize": "The value for the size \\(in MiB\\) of the `/dev/shm` volume\\. This parameter maps to the `--shm-size` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nIf you are using tasks that use the Fargate launch type, the `sharedMemorySize` parameter is not supported\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Swappiness": "This allows you to tune a container's memory swappiness behavior\\. A `swappiness` value of `0` will cause swapping to not happen unless absolutely necessary\\. A `swappiness` value of `100` will cause pages to be swapped very aggressively\\. Accepted values are whole numbers between `0` and `100`\\. If the `swappiness` parameter is not specified, a default value of `60` is used\\. If a value is not specified for `maxSwap` then this parameter is ignored\\. This parameter maps to the `--memory-swappiness` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nIf you're using tasks that use the Fargate launch type, the `swappiness` parameter isn't supported\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tmpfs": "The container path, mount options, and size \\(in MiB\\) of the tmpfs mount\\. This parameter maps to the `--tmpfs` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nIf you're using tasks that use the Fargate launch type, the `tmpfs` parameter isn't supported\\.\n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-tmpfs.html) of [Tmpfs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-tmpfs.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition LogConfiguration": { + "LogDriver": "The log driver to use for the container\\. \nFor tasks on AWS Fargate, the supported log drivers are `awslogs`, `splunk`, and `awsfirelens`\\. \nFor tasks hosted on Amazon EC2 instances, the supported log drivers are `awslogs`, `fluentd`, `gelf`, `json-file`, `journald`, `logentries`,`syslog`, `splunk`, and `awsfirelens`\\. \nFor more information about using the `awslogs` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nFor more information about using the `awsfirelens` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nIf you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver\\. We encourage you to submit pull requests for changes that you would like to have included\\. However, we don't currently provide support for running modified copies of this software\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `awsfirelens | awslogs | fluentd | gelf | journald | json-file | splunk | syslog` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Options": "The configuration options to send to the log driver\\. This parameter requires version 1\\.19 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version --format '{{.Server.APIVersion}}'` \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecretOptions": "The secrets to pass to the log configuration\\. For more information, see [Specifying Sensitive Data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: List of [Secret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-secret.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition MountPoint": { + "ContainerPath": "The path on the container to mount the host volume at\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ReadOnly": "If this value is `true`, the container has read\\-only access to the volume\\. If this value is `false`, then the container can write to the volume\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceVolume": "The name of the volume to mount\\. Must be a volume name referenced in the `name` parameter of task definition `volume`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition PortMapping": { + "ContainerPort": "The port number on the container that's bound to the user\\-specified or automatically assigned host port\\. \nIf you use containers in a task with the `awsvpc` or `host` network mode, specify the exposed ports using `containerPort`\\. \nIf you use containers in a task with the `bridge` network mode and you specify a container port and not a host port, your container automatically receives a host port in the ephemeral port range\\. For more information, see `hostPort`\\. Port mappings that are automatically assigned in this way do not count toward the 100 reserved ports limit of a container instance\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "HostPort": "The port number on the container instance to reserve for your container\\. \nIf you are using containers in a task with the `awsvpc` or `host` network mode, the `hostPort` can either be left blank or set to the same value as the `containerPort`\\. \nIf you are using containers in a task with the `bridge` network mode, you can specify a non\\-reserved host port for your container port mapping, or you can omit the `hostPort` \\(or set it to `0`\\) while specifying a `containerPort` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version\\. \nThe default ephemeral port range for Docker version 1\\.6\\.0 and later is listed on the instance under `/proc/sys/net/ipv4/ip_local_port_range`\\. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 is used\\. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment\\. In general, ports below 32768 are outside of the ephemeral port range\\. \nThe default ephemeral port range from 49153 through 65535 is always used for Docker versions before 1\\.6\\.0\\.\nThe default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678\\-51680\\. Any host port that was previously specified in a running task is also reserved while the task is running \\(after a task stops, the host port is released\\)\\. The current reserved ports are displayed in the `remainingResources` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output\\. A container instance can have up to 100 reserved ports at a time, including the default reserved ports\\. Automatically assigned ports don't count toward the 100 reserved ports limit\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Protocol": "The protocol used for the port mapping\\. Valid values are `tcp` and `udp`\\. The default is `tcp`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `tcp | udp` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition ProxyConfiguration": { + "ContainerName": "The name of the container that will serve as the App Mesh proxy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProxyConfigurationProperties": "The set of network configuration parameters to provide the Container Network Interface \\(CNI\\) plugin, specified as key\\-value pairs\\. \n+ `IgnoredUID` \\- \\(Required\\) The user ID \\(UID\\) of the proxy container as defined by the `user` parameter in a container definition\\. This is used to ensure the proxy ignores its own traffic\\. If `IgnoredGID` is specified, this field can be empty\\.\n+ `IgnoredGID` \\- \\(Required\\) The group ID \\(GID\\) of the proxy container as defined by the `user` parameter in a container definition\\. This is used to ensure the proxy ignores its own traffic\\. If `IgnoredUID` is specified, this field can be empty\\.\n+ `AppPorts` \\- \\(Required\\) The list of ports that the application uses\\. Network traffic to these ports is forwarded to the `ProxyIngressPort` and `ProxyEgressPort`\\.\n+ `ProxyIngressPort` \\- \\(Required\\) Specifies the port that incoming traffic to the `AppPorts` is directed to\\.\n+ `ProxyEgressPort` \\- \\(Required\\) Specifies the port that outgoing traffic from the `AppPorts` is directed to\\.\n+ `EgressIgnoredPorts` \\- \\(Required\\) The egress traffic going to the specified ports is ignored and not redirected to the `ProxyEgressPort`\\. It can be an empty list\\.\n+ `EgressIgnoredIPs` \\- \\(Required\\) The egress traffic going to the specified IP addresses is ignored and not redirected to the `ProxyEgressPort`\\. It can be an empty list\\.\n*Required*: No \n*Type*: List of [KeyValuePair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-environment.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "The proxy type\\. The only supported value is `APPMESH`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `APPMESH` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition RepositoryCredentials": { + "CredentialsParameter": "The Amazon Resource Name \\(ARN\\) of the secret containing the private repository credentials\\. \nWhen you use the Amazon ECS API, AWS CLI, or AWS SDK, if the secret exists in the same Region as the task that you're launching then you can use either the full ARN or the name of the secret\\. When you use the AWS Management Console, you must specify the full ARN of the secret\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition ResourceRequirement": { + "Type": "The type of resource to assign to a container\\. The supported values are `GPU` or `InferenceAccelerator`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GPU | InferenceAccelerator` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Value": "The value for the specified resource type\\. \nIf the `GPU` type is used, the value is the number of physical `GPUs` the Amazon ECS container agent will reserve for the container\\. The number of GPUs reserved for all containers in a task should not exceed the number of available GPUs on the container instance the task is launched on\\. \nIf the `InferenceAccelerator` type is used, the `value` should match the `DeviceName` for an [InferenceAccelerator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-inferenceaccelerator.html) specified in a task definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition RuntimePlatform": { + "CpuArchitecture": "The CPU architecture\\. \nYou can run your Linux tasks on an ARM\\-based platform by setting the value to `ARM64`\\. This option is avaiable for tasks that run on Linuc Amazon EC2 instance or Linux containers on Fargate\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ARM64 | X86_64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OperatingSystemFamily": "The operating system\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `LINUX | WINDOWS_SERVER_2004_CORE | WINDOWS_SERVER_2016_FULL | WINDOWS_SERVER_2019_CORE | WINDOWS_SERVER_2019_FULL | WINDOWS_SERVER_2022_CORE | WINDOWS_SERVER_2022_FULL | WINDOWS_SERVER_20H2_CORE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition Secret": { + "Name": "The name of the secret\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ValueFrom": "The secret to expose to the container\\. The supported values are either the full ARN of the AWS Secrets Manager secret or the full ARN of the parameter in the SSM Parameter Store\\. \nFor information about the require AWS Identity and Access Management permissions, see [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html#secrets-iam) \\(for Secrets Manager\\) or [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-parameters.html) \\(for Systems Manager Parameter store\\) in the *Amazon Elastic Container Service Developer Guide*\\. \nIf the SSM Parameter Store parameter exists in the same Region as the task you're launching, then you can use either the full ARN or name of the parameter\\. If the parameter exists in a different Region, then the full ARN must be specified\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition SystemControl": { + "Namespace": "The namespaced kernel parameter to set a `value` for\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Value": "The value for the namespaced kernel parameter that's specified in `namespace`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition TaskDefinitionPlacementConstraint": { + "Expression": "A cluster query language expression to apply to the constraint\\. For more information, see [Cluster query language](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "The type of constraint\\. The `MemberOf` constraint restricts selection to be from a group of valid candidates\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `memberOf` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition Tmpfs": { + "ContainerPath": "The absolute file path where the tmpfs volume is to be mounted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MountOptions": "The list of tmpfs volume mount options\\. \nValid values: `\"defaults\" | \"ro\" | \"rw\" | \"suid\" | \"nosuid\" | \"dev\" | \"nodev\" | \"exec\" | \"noexec\" | \"sync\" | \"async\" | \"dirsync\" | \"remount\" | \"mand\" | \"nomand\" | \"atime\" | \"noatime\" | \"diratime\" | \"nodiratime\" | \"bind\" | \"rbind\" | \"unbindable\" | \"runbindable\" | \"private\" | \"rprivate\" | \"shared\" | \"rshared\" | \"slave\" | \"rslave\" | \"relatime\" | \"norelatime\" | \"strictatime\" | \"nostrictatime\" | \"mode\" | \"uid\" | \"gid\" | \"nr_inodes\" | \"nr_blocks\" | \"mpol\"` \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Size": "The maximum size \\(in MiB\\) of the tmpfs volume\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition Ulimit": { + "HardLimit": "The hard limit for the ulimit type\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The `type` of the `ulimit`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `core | cpu | data | fsize | locks | memlock | msgqueue | nice | nofile | nproc | rss | rtprio | rttime | sigpending | stack` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SoftLimit": "The soft limit for the ulimit type\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition Volume": { + "DockerVolumeConfiguration": "This parameter is specified when you use Docker volumes\\. \nWindows containers only support the use of the `local` driver\\. To use bind mounts, specify the `host` parameter instead\\. \nDocker volumes aren't supported by tasks run on AWS Fargate\\.\n*Required*: No \n*Type*: [DockerVolumeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EFSVolumeConfiguration": "This parameter is specified when you use an Amazon Elastic File System file system for task storage\\. \n*Required*: No \n*Type*: [EFSVolumeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-efsvolumeconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Host": "This parameter is specified when you use bind mount host volumes\\. The contents of the `host` parameter determine whether your bind mount host volume persists on the host container instance and where it's stored\\. If the `host` parameter is empty, then the Docker daemon assigns a host path for your data volume\\. However, the data isn't guaranteed to persist after the containers that are associated with it stop running\\. \nWindows containers can mount whole directories on the same drive as `$env:ProgramData`\\. Windows containers can't mount directories on a different drive, and mount point can't be across drives\\. For example, you can mount `C:\\my\\path:C:\\my\\path` and `D:\\:D:\\`, but not `D:\\my\\path:C:\\my\\path` or `D:\\:C:\\my\\path`\\. \n*Required*: No \n*Type*: [HostVolumeProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes-host.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the volume\\. Up to 255 letters \\(uppercase and lowercase\\), numbers, underscores, and hyphens are allowed\\. This name is referenced in the `sourceVolume` parameter of container definition `mountPoints`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskDefinition VolumeFrom": { + "ReadOnly": "If this value is `true`, the container has read\\-only access to the volume\\. If this value is `false`, then the container can write to the volume\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceContainer": "The name of another container within the same task definition to mount volumes from\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskSet": { + "Cluster": "The short name or full Amazon Resource Name \\(ARN\\) of the cluster that hosts the service to create the task set in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ExternalId": "An optional non\\-unique tag that identifies this task set in external systems\\. If the task set is associated with a service discovery registry, the tasks in this task set will have the `ECS_TASK_SET_EXTERNAL_ID` AWS Cloud Map attribute set to the provided value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LaunchType": "The launch type that new tasks in the task set uses\\. For more information, see [Amazon ECS Launch Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nIf a `launchType` is specified, the `capacityProviderStrategy` parameter must be omitted\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `EC2 | EXTERNAL | FARGATE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LoadBalancers": "A load balancer object representing the load balancer to use with the task set\\. The supported load balancer types are either an Application Load Balancer or a Network Load Balancer\\. \n*Required*: No \n*Type*: List of [LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-loadbalancer.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NetworkConfiguration": "The network configuration for the task set\\. \n*Required*: No \n*Type*: [NetworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-networkconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PlatformVersion": "The platform version that the tasks in the task set uses\\. A platform version is specified only for tasks using the Fargate launch type\\. If one isn't specified, the `LATEST` platform version is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Scale": "A floating\\-point percentage of your desired number of tasks to place and keep running in the task set\\. \n*Required*: No \n*Type*: [Scale](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-scale.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Service": "The short name or full Amazon Resource Name \\(ARN\\) of the service to create the task set in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ServiceRegistries": "The details of the service discovery registries to assign to this task set\\. For more information, see [Service Discovery](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html)\\. \n*Required*: No \n*Type*: List of [ServiceRegistry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-serviceregistry.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TaskDefinition": "The task definition for the tasks in the task set to use\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskSet AwsVpcConfiguration": { + "AssignPublicIp": "Whether the task's elastic network interface receives a public IP address\\. The default value is `DISABLED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecurityGroups": "The IDs of the security groups associated with the task or service\\. If you don't specify a security group, the default security group for the VPC is used\\. There's a limit of 5 security groups that can be specified per `AwsVpcConfiguration`\\. \nAll specified security groups must be from the same VPC\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Subnets": "The IDs of the subnets associated with the task or service\\. There's a limit of 16 subnets that can be specified per `AwsVpcConfiguration`\\. \nAll specified subnets must be from the same VPC\\.\n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskSet LoadBalancer": { + "ContainerName": "The name of the container \\(as it appears in a container definition\\) to associate with the load balancer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ContainerPort": "The port on the container to associate with the load balancer\\. This port must correspond to a `containerPort` in the task definition the tasks in the service are using\\. For tasks that use the EC2 launch type, the container instance they're launched on must allow ingress traffic on the `hostPort` of the port mapping\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LoadBalancerName": "The name of the load balancer to associate with the Amazon ECS service or task set\\. \nA load balancer name is only specified when using a Classic Load Balancer\\. If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TargetGroupArn": "The full Amazon Resource Name \\(ARN\\) of the Elastic Load Balancing target group or groups associated with a service or task set\\. \nA target group ARN is only specified when using an Application Load Balancer or Network Load Balancer\\. If you're using a Classic Load Balancer, omit the target group ARN\\. \nFor services using the `ECS` deployment controller, you can specify one or multiple target groups\\. For more information, see [Registering Multiple Target Groups with a Service](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nFor services using the `CODE_DEPLOY` deployment controller, you're required to define two target groups for the load balancer\\. For more information, see [Blue/Green Deployment with CodeDeploy](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nIf your service's task definition uses the `awsvpc` network mode, you must choose `ip` as the target type, not `instance`\\. Do this when creating your target groups because tasks that use the `awsvpc` network mode are associated with an elastic network interface, not an Amazon EC2 instance\\. This network mode is required for the Fargate launch type\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskSet NetworkConfiguration": { + "AwsVpcConfiguration": "The VPC subnets and security groups that are associated with a task\\. \nAll specified subnets and security groups must be from the same VPC\\.\n*Required*: No \n*Type*: [AwsVpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-awsvpcconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ECS::TaskSet Scale": { + "Unit": "The unit of measure for the scale value\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PERCENT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value, specified as a percent total of a service's `desiredCount`, to scale the task set\\. Accepted values are numbers between 0 and 100\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ECS::TaskSet ServiceRegistry": { + "ContainerName": "The container name value to be used for your service discovery service\\. It's already specified in the task definition\\. If the task definition that your service task specifies uses the `bridge` or `host` network mode, you must specify a `containerName` and `containerPort` combination from the task definition\\. If the task definition that your service task specifies uses the `awsvpc` network mode and a type SRV DNS record is used, you must specify either a `containerName` and `containerPort` combination or a `port` value\\. However, you can't specify both\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ContainerPort": "The port value to be used for your service discovery service\\. It's already specified in the task definition\\. If the task definition your service task specifies uses the `bridge` or `host` network mode, you must specify a `containerName` and `containerPort` combination from the task definition\\. If the task definition your service task specifies uses the `awsvpc` network mode and a type SRV DNS record is used, you must specify either a `containerName` and `containerPort` combination or a `port` value\\. However, you can't specify both\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Port": "The port value used if your service discovery service specified an SRV record\\. This field might be used if both the `awsvpc` network mode and SRV records are used\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RegistryArn": "The Amazon Resource Name \\(ARN\\) of the service registry\\. The currently supported service registry is AWS Cloud Map\\. For more information, see [CreateService](https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EFS::AccessPoint": { + "AccessPointTags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [AccessPointTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-accesspointtag.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientToken": "The opaque string specified in the request to ensure idempotent creation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FileSystemId": "The ID of the EFS file system that the access point applies to\\. Accepts only the ID format for input when specifying a file system, for example `fs-0123456789abcedf2`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:file-system/fs-[0-9a-f]{8,40}|fs-[0-9a-f]{8,40})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PosixUser": "The full POSIX identity, including the user ID, group ID, and secondary group IDs on the access point that is used for all file operations by NFS clients using the access point\\. \n*Required*: No \n*Type*: [PosixUser](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-posixuser.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RootDirectory": "The directory on the Amazon EFS file system that the access point exposes as the root directory to NFS clients using the access point\\. \n*Required*: No \n*Type*: [RootDirectory](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-rootdirectory.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EFS::AccessPoint AccessPointTag": { + "Key": "The tag key \\(String\\)\\. The key can't start with `aws:`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^(?![aA]{1}[wW]{1}[sS]{1}:)([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]+)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of the tag key\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EFS::AccessPoint CreationInfo": { + "OwnerGid": "Specifies the POSIX group ID to apply to the `RootDirectory`\\. Accepts values from 0 to 2^32 \\(4294967295\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OwnerUid": "Specifies the POSIX user ID to apply to the `RootDirectory`\\. Accepts values from 0 to 2^32 \\(4294967295\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Permissions": "Specifies the POSIX permissions to apply to the `RootDirectory`, in the format of an octal number representing the file's mode bits\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `4` \n*Pattern*: `^[0-7]{3,4}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EFS::AccessPoint PosixUser": { + "Gid": "The POSIX group ID used for all file system operations using this access point\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecondaryGids": "Secondary POSIX group IDs used for all file system operations using this access point\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `16` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Uid": "The POSIX user ID used for all file system operations using this access point\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EFS::AccessPoint RootDirectory": { + "CreationInfo": "\\(Optional\\) Specifies the POSIX IDs and permissions to apply to the access point's `RootDirectory`\\. If the `RootDirectory` > `Path` specified does not exist, EFS creates the root directory using the `CreationInfo` settings when a client connects to an access point\\. When specifying the `CreationInfo`, you must provide values for all properties\\. \nIf you do not provide `CreationInfo` and the specified `RootDirectory` > `Path` does not exist, attempts to mount the file system using the access point will fail\\.\n*Required*: No \n*Type*: [CreationInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-creationinfo.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Path": "Specifies the path on the EFS file system to expose as the root directory to NFS clients using the access point to access the EFS file system\\. A path can have up to four subdirectories\\. If the specified path does not exist, you are required to provide the `CreationInfo`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^(\\/|(\\/(?!\\.)+[^$#<>;`|&?{}^*/\\n]+){1,4})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EFS::FileSystem": { + "AvailabilityZoneName": "Used to create a file system that uses One Zone storage classes\\. It specifies the AWS Availability Zone in which to create the file system\\. Use the format `us-east-1a` to specify the Availability Zone\\. For more information about One Zone storage classes, see [Using EFS storage classes](https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html) in the *Amazon EFS User Guide*\\. \nOne Zone storage classes are not available in all Availability Zones in AWS Regions where Amazon EFS is available\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BackupPolicy": "Use the `BackupPolicy` to turn automatic backups on or off for the file system\\. \n*Required*: No \n*Type*: [BackupPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-backuppolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BypassPolicyLockoutSafetyCheck": "\\(Optional\\) Use this boolean to use or bypass the `FileSystemPolicy` lockout safety check\\. The policy lockout safety check determines if the `FileSystemPolicy` in the request will lock out the IAM principal making the request, preventing them from making future `PutFileSystemPolicy` requests on the file system\\. Set `BypassPolicyLockoutSafetyCheck` to `True` only when you intend to prevent the IAM principal that is making the request from making a subsequent `PutFileSystemPolicy` request on the file system\\. The default value is `False`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Encrypted": "A Boolean value that, if true, creates an encrypted file system\\. When creating an encrypted file system, you have the option of specifying a KmsKeyId for an existing AWS KMS key\\. If you don't specify a KMS key, then the default KMS key for Amazon EFS, `/aws/elasticfilesystem`, is used to protect the encrypted file system\\. \n*Required*: Conditional \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FileSystemPolicy": "The `FileSystemPolicy` for the EFS file system\\. A file system policy is an IAM resource policy used to control NFS access to an EFS file system\\. For more information, see [Using IAM to control NFS access to Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html) in the *Amazon EFS User Guide*\\. \n*Required*: No \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `20000` \n*Pattern*: `[\\s\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FileSystemTags": "Use to create one or more tags associated with the file system\\. Each tag is a user\\-defined key\\-value pair\\. Name your file system on creation by including a `\"Key\":\"Name\",\"Value\":\"{value}\"` key\\-value pair\\. Each key must be unique\\. For more information, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the * AWS General Reference Guide*\\. \n*Required*: No \n*Type*: List of [ElasticFileSystemTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-elasticfilesystemtag.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKeyId": "The ID of the AWS KMS key to be used to protect the encrypted file system\\. This parameter is only required if you want to use a nondefault KMS key\\. If this parameter is not specified, the default KMS key for Amazon EFS is used\\. This ID can be in one of the following formats: \n+ Key ID \\- A unique identifier of the key, for example `1234abcd-12ab-34cd-56ef-1234567890ab`\\.\n+ ARN \\- An Amazon Resource Name \\(ARN\\) for the key, for example `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`\\.\n+ Key alias \\- A previously created display name for a key, for example `alias/projectKey1`\\.\n+ Key alias ARN \\- An ARN for a key alias, for example `arn:aws:kms:us-west-2:444455556666:alias/projectKey1`\\.\nIf `KmsKeyId` is specified, the `Encrypted` parameter must be set to true\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `^([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|mrk-[0-9a-f]{32}|alias/[a-zA-Z0-9/_-]+|(arn:aws[-a-z]*:kms:[a-z0-9-]+:\\d{12}:((key/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(key/mrk-[0-9a-f]{32})|(alias/[a-zA-Z0-9/_-]+))))$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LifecyclePolicies": "A list of one LifecyclePolicy that tells EFS lifecycle management when to transition files to the Infrequent Access \\(IA\\) storage classes\\. \n*Required*: No \n*Type*: List of [LifecyclePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-lifecyclepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PerformanceMode": "The performance mode of the file system\\. We recommend `generalPurpose` performance mode for most file systems\\. File systems using the `maxIO` performance mode can scale to higher levels of aggregate throughput and operations per second with a tradeoff of slightly higher latencies for most file operations\\. The performance mode can't be changed after the file system has been created\\. \nThe `maxIO` mode is not supported on file systems using One Zone storage classes\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `generalPurpose | maxIO` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProvisionedThroughputInMibps": "The throughput, measured in MiB/s, that you want to provision for a file system that you're creating\\. Valid values are 1\\-1024\\. Required if `ThroughputMode` is set to `provisioned`\\. The upper limit for throughput is 1024 MiB/s\\. To increase this limit, contact AWS Support\\. For more information, see [Amazon EFS quotas that you can increase](https://docs.aws.amazon.com/efs/latest/ug/limits.html#soft-limits) in the *Amazon EFS User Guide*\\. \n*Required*: Conditional \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThroughputMode": "Specifies the throughput mode for the file system, either `bursting` or `provisioned`\\. If you set `ThroughputMode` to `provisioned`, you must also set a value for `ProvisionedThroughputInMibps`\\. After you create the file system, you can decrease your file system's throughput in Provisioned Throughput mode or change between the throughput modes, as long as it\u2019s been more than 24 hours since the last decrease or throughput mode change\\. For more information, see [Specifying throughput with provisioned mode](https://docs.aws.amazon.com/efs/latest/ug/performance.html#provisioned-throughput) in the *Amazon EFS User Guide*\\. \nDefault is `bursting`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `bursting | provisioned` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EFS::FileSystem BackupPolicy": { + "Status": "Set the backup policy status for the file system\\. \n+ ** `ENABLED`** \\- Turns automatic backups on for the file system\\. \n+ ** `DISABLED`** \\- Turns automatic backups off for the file system\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | DISABLING | ENABLED | ENABLING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EFS::FileSystem ElasticFileSystemTag": { + "Key": "The tag key \\(String\\)\\. The key can't start with `aws:`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^(?![aA]{1}[wW]{1}[sS]{1}:)([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]+)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of the tag key\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EFS::FileSystem LifecyclePolicy": { + "TransitionToIA": "Describes the period of time that a file is not accessed, after which it transitions to IA storage\\. Metadata operations such as listing the contents of a directory don't count as file access events\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AFTER_14_DAYS | AFTER_30_DAYS | AFTER_60_DAYS | AFTER_7_DAYS | AFTER_90_DAYS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitionToPrimaryStorageClass": "Describes when to transition a file from IA storage to primary storage\\. Metadata operations such as listing the contents of a directory don't count as file access events\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AFTER_1_ACCESS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EFS::MountTarget": { + "FileSystemId": "The ID of the file system for which to create the mount target\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:file-system/fs-[0-9a-f]{8,40}|fs-[0-9a-f]{8,40})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IpAddress": "Valid IPv4 address within the address range of the specified subnet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `7` \n*Maximum*: `15` \n*Pattern*: `^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecurityGroups": "Up to five VPC security group IDs, of the form `sg-xxxxxxxx`\\. These must be for the same VPC as subnet specified\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetId": "The ID of the subnet to add the mount target in\\. For file systems that use One Zone storage classes, use the subnet that is associated with the file system's Availability Zone\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `15` \n*Maximum*: `47` \n*Pattern*: `^subnet-[0-9a-f]{8,40}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EKS::Addon": { + "AddonName": "The name of the add\\-on\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AddonVersion": "The version of the add\\-on\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClusterName": "The name of the cluster\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[0-9A-Za-z][A-Za-z0-9\\-_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResolveConflicts": "How to resolve parameter value conflicts when migrating an existing add\\-on to an Amazon EKS add\\-on\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | OVERWRITE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceAccountRoleArn": "The Amazon Resource Name \\(ARN\\) of an existing IAM role to bind to the add\\-on's service account\\. The role must be assigned the IAM permissions required by the add\\-on\\. If you don't specify an existing IAM role, then the add\\-on uses the permissions assigned to the node IAM role\\. For more information, see [Amazon EKS node IAM role](https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html) in the *Amazon EKS User Guide*\\. \nTo specify an existing IAM role, you must have an IAM OpenID Connect \\(OIDC\\) provider created for your cluster\\. For more information, see [Enabling IAM roles for service accounts on your cluster](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html) in the *Amazon EKS User Guide*\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The metadata that you apply to the add\\-on to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Add\\-on tags do not propagate to any other resources associated with the cluster\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EKS::Cluster": { + "EncryptionConfig": "The encryption configuration for the cluster\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-encryptionconfig.html) of [EncryptionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-encryptionconfig.html) \n*Maximum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KubernetesNetworkConfig": "The Kubernetes network configuration for the cluster\\. \n*Required*: No \n*Type*: [KubernetesNetworkConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-kubernetesnetworkconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Logging": "The logging configuration for your cluster\\. \n*Required*: No \n*Type*: [Logging](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-logging.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The unique name to give to your cluster\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[0-9A-Za-z][A-Za-z0-9\\-_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourcesVpcConfig": "The VPC configuration that's used by the cluster control plane\\. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes\\. For more information, see [Cluster VPC Considerations](https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html) and [Cluster Security Group Considerations](https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html) in the *Amazon EKS User Guide*\\. You must specify at least two subnets\\. You can specify up to five security groups, but we recommend that you use a dedicated security group for your cluster control plane\\. \nUpdates require replacement of the `SecurityGroupIds` and `SubnetIds` sub\\-properties\\.\n*Required*: Yes \n*Type*: [ResourcesVpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf\\. For more information, see [Amazon EKS Service IAM Role](https://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html) in the * *Amazon EKS User Guide* *\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The metadata that you apply to the cluster to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Cluster tags don't propagate to any other resources associated with the cluster\\. \nYou must have the `eks:TagResource` and `eks:UntagResource` permissions in your IAM user or IAM role used to manage the CloudFormation stack\\. If you don't have these permissions, there might be unexpected behavior with stack\\-level tags propagating to the resource during resource creation and update\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "The desired Kubernetes version for your cluster\\. If you don't specify a value here, the latest version available in Amazon EKS is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EKS::Cluster ClusterLogging": { + "EnabledTypes": "The enabled control plane logs for your cluster\\. All log types are disabled if the array is empty\\. \nWhen updating a resource, you must include this `EnabledTypes` property if the previous CloudFormation template of the resource had it\\.\n*Required*: No \n*Type*: List of [LoggingTypeConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-loggingtypeconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EKS::Cluster EncryptionConfig": { + "Provider": "The encryption provider for the cluster\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Resources": "Specifies the resources to be encrypted\\. The only supported value is \"secrets\"\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EKS::Cluster KubernetesNetworkConfig": { + "IpFamily": "Specify which IP family is used to assign Kubernetes pod and service IP addresses\\. If you don't specify a value, `ipv4` is used by default\\. You can only specify an IP family when you create a cluster and can't change this value once the cluster is created\\. If you specify `ipv6`, the VPC and subnets that you specify for cluster creation must have both IPv4 and IPv6 CIDR blocks assigned to them\\. You can't specify `ipv6` for clusters in China Regions\\. \nYou can only specify `ipv6` for 1\\.21 and later clusters that use version 1\\.10\\.1 or later of the Amazon VPC CNI add\\-on\\. If you specify `ipv6`, then ensure that your VPC meets the requirements listed in the considerations listed in [Assigning IPv6 addresses to pods and services](https://docs.aws.amazon.com/eks/latest/userguide/cni-ipv6.html) in the Amazon EKS User Guide\\. Kubernetes assigns services IPv6 addresses from the unique local address range \\(fc00::/7\\)\\. You can't specify a custom IPv6 CIDR block\\. Pod addresses are assigned from the subnet's IPv6 CIDR\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ipv4 | ipv6` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ServiceIpv4Cidr": "Don't specify a value if you select `ipv6` for **ipFamily**\\. The CIDR block to assign Kubernetes service IP addresses from\\. If you don't specify a block, Kubernetes assigns addresses from either the 10\\.100\\.0\\.0/16 or 172\\.20\\.0\\.0/16 CIDR blocks\\. We recommend that you specify a block that does not overlap with resources in other networks that are peered or connected to your VPC\\. The block must meet the following requirements: \n+ Within one of the following private IP address blocks: 10\\.0\\.0\\.0/8, 172\\.16\\.0\\.0/12, or 192\\.168\\.0\\.0/16\\.\n+ Doesn't overlap with any CIDR block assigned to the VPC that you selected for VPC\\.\n+ Between /24 and /12\\.\nYou can only specify a custom CIDR block when you create a cluster and can't change this value once the cluster is created\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ServiceIpv6Cidr": "The CIDR block that Kubernetes pod and service IP addresses are assigned from if you created a 1\\.21 or later cluster with version 1\\.10\\.1 or later of the Amazon VPC CNI add\\-on and specified `ipv6` for **ipFamily** when you created the cluster\\. Kubernetes assigns service addresses from the unique local address range \\(`fc00::/7`\\) because you can't specify a custom IPv6 CIDR block when you create the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EKS::Cluster Logging": { + "ClusterLogging": "The cluster control plane logging configuration for your cluster\\. \n*Required*: No \n*Type*: [ClusterLogging](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-clusterlogging.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EKS::Cluster LoggingTypeConfig": { + "Type": "The name of the log type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EKS::Cluster ResourcesVpcConfig": { + "EndpointPrivateAccess": "Set this value to `true` to enable private access for your cluster's Kubernetes API server endpoint\\. If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint\\. The default value for this parameter is `false`, which disables private access for your Kubernetes API server\\. If you disable private access and you have nodes or AWS Fargate pods in the cluster, then ensure that `publicAccessCidrs` includes the necessary CIDR blocks for communication with the nodes or Fargate pods\\. For more information, see [Amazon EKS cluster endpoint access control](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) in the * *Amazon EKS User Guide* *\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EndpointPublicAccess": "Set this value to `false` to disable public access to your cluster's Kubernetes API server endpoint\\. If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC\\. The default value for this parameter is `true`, which enables public access for your Kubernetes API server\\. For more information, see [Amazon EKS cluster endpoint access control](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) in the * *Amazon EKS User Guide* *\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PublicAccessCidrs": "The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint\\. Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied\\. The default value is `0.0.0.0/0`\\. If you've disabled private endpoint access and you have nodes or AWS Fargate pods in the cluster, then ensure that you specify the necessary CIDR blocks\\. For more information, see [Amazon EKS cluster endpoint access control](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) in the * *Amazon EKS User Guide* *\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroupIds": "Specify one or more security groups for the cross\\-account elastic network interfaces that Amazon EKS creates to use that allow communication between your nodes and the Kubernetes control plane\\. If you don't specify any security groups, then familiarize yourself with the difference between Amazon EKS defaults for clusters deployed with Kubernetes: \n+ 1\\.14 Amazon EKS platform version `eks.2` and earlier\n+ 1\\.14 Amazon EKS platform version `eks.3` and later \nFor more information, see [Amazon EKS security group considerations](https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html) in the * *Amazon EKS User Guide* *\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetIds": "Specify subnets for your Amazon EKS nodes\\. Amazon EKS creates cross\\-account elastic network interfaces in these subnets to allow communication between your nodes and the Kubernetes control plane\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EKS::FargateProfile": { + "ClusterName": "The name of the Amazon EKS cluster to apply the Fargate profile to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FargateProfileName": "The name of the Fargate profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PodExecutionRoleArn": "The Amazon Resource Name \\(ARN\\) of the pod execution role to use for pods that match the selectors in the Fargate profile\\. The pod execution role allows Fargate infrastructure to register with your cluster as a node, and it provides read access to Amazon ECR image repositories\\. For more information, see [Pod Execution Role](https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html) in the *Amazon EKS User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Selectors": "The selectors to match for pods to use this Fargate profile\\. Each selector must have an associated namespace\\. Optionally, you can also specify labels for a namespace\\. You may specify up to five selectors in a Fargate profile\\. \n*Required*: Yes \n*Type*: List of [Selector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-fargateprofile-selector.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Subnets": "The IDs of subnets to launch your pods into\\. At this time, pods running on Fargate are not assigned public IP addresses, so only private subnets \\(with no direct route to an Internet Gateway\\) are accepted for this parameter\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The metadata to apply to the Fargate profile to assist with categorization and organization\\. Each tag consists of a key and an optional value\\. You define both\\. Fargate profile tags do not propagate to any other resources associated with the Fargate profile, such as the pods that are scheduled with it\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EKS::FargateProfile Label": { + "Key": "Enter a key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Value": "Enter a value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EKS::FargateProfile Selector": { + "Labels": "The Kubernetes labels that the selector should match\\. A pod must contain all of the labels that are specified in the selector for it to be considered a match\\. \n*Required*: No \n*Type*: List of [Label](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-fargateprofile-label.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Namespace": "The Kubernetes namespace that the selector should match\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EKS::IdentityProviderConfig": { + "ClusterName": "The cluster that the configuration is associated to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IdentityProviderConfigName": "The name of the configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Oidc": "An object that represents an OpenID Connect \\(OIDC\\) identity provider configuration\\. \n*Required*: No \n*Type*: [OidcIdentityProviderConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The metadata to apply to the provider configuration to assist with categorization and organization\\. Each tag consists of a key and an optional value\\. You define both\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of the identity provider configuration\\. The only type available is `oidc`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EKS::IdentityProviderConfig OidcIdentityProviderConfig": { + "ClientId": "This is also known as *audience*\\. The ID of the client application that makes authentication requests to the OIDC identity provider\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GroupsClaim": "The JSON web token \\(JWT\\) claim that the provider uses to return your groups\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GroupsPrefix": "The prefix that is prepended to group claims to prevent clashes with existing names \\(such as `system:` groups\\)\\. For example, the value` oidc:` creates group names like `oidc:engineering` and `oidc:infra`\\. The prefix can't contain `system:` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IssuerUrl": "The URL of the OIDC identity provider that allows the API server to discover public signing keys for verifying tokens\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RequiredClaims": "The key\\-value pairs that describe required claims in the identity token\\. If set, each claim is verified to be present in the token with a matching value\\. \n*Required*: No \n*Type*: List of [RequiredClaim](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-requiredclaim.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UsernameClaim": "The JSON Web token \\(JWT\\) claim that is used as the username\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UsernamePrefix": "The prefix that is prepended to username claims to prevent clashes with existing names\\. The prefix can't contain `system:` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EKS::IdentityProviderConfig RequiredClaim": { + "Key": "The key to match from the token\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Value": "The value for the key from the token\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EKS::Nodegroup": { + "AmiType": "The AMI type for your node group\\. GPU instance types should use the `AL2_x86_64_GPU` AMI type\\. Non\\-GPU instances should use the `AL2_x86_64` AMI type\\. Arm instances should use the `AL2_ARM_64` AMI type\\. All types use the Amazon EKS optimized Amazon Linux 2 AMI\\. If you specify `launchTemplate`, and your launch template uses a custom AMI, then don't specify `amiType`, or the node group deployment will fail\\. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AL2_ARM_64 | AL2_x86_64 | AL2_x86_64_GPU | BOTTLEROCKET_ARM_64 | BOTTLEROCKET_x86_64 | CUSTOM` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CapacityType": "The capacity type of your managed node group\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ON_DEMAND | SPOT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ClusterName": "The name of the cluster to create the node group in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DiskSize": "The root device disk size \\(in GiB\\) for your node group instances\\. The default disk size is 20 GiB\\. If you specify `launchTemplate`, then don't specify `diskSize`, or the node group deployment will fail\\. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ForceUpdateEnabled": "Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue\\. If an update fails because pods could not be drained, you can force the update after it fails to terminate the old node whether or not any pods are running on the node\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceTypes": "Specify the instance types for a node group\\. If you specify a GPU instance type, be sure to specify `AL2_x86_64_GPU` with the `amiType` parameter\\. If you specify `launchTemplate`, then you can specify zero or one instance type in your launch template *or* you can specify 0\\-20 instance types for `instanceTypes`\\. If however, you specify an instance type in your launch template *and* specify any `instanceTypes`, the node group deployment will fail\\. If you don't specify an instance type in a launch template or for `instanceTypes`, then `t3.medium` is used, by default\\. If you specify `Spot` for `capacityType`, then we recommend specifying multiple values for `instanceTypes`\\. For more information, see [Managed node group capacity types](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types) and [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Labels": "The Kubernetes labels to be applied to the nodes in the node group when they are created\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LaunchTemplate": "An object representing a node group's launch template specification\\. If specified, then do not specify `instanceTypes`, `diskSize`, or `remoteAccess` and make sure that the launch template meets the requirements in `launchTemplateSpecification`\\. \n*Required*: No \n*Type*: [LaunchTemplateSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-launchtemplatespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NodeRole": "The Amazon Resource Name \\(ARN\\) of the IAM role to associate with your node group\\. The Amazon EKS worker node `kubelet` daemon makes calls to AWS APIs on your behalf\\. Nodes receive permissions for these API calls through an IAM instance profile and associated policies\\. Before you can launch nodes and register them into a cluster, you must create an IAM role for those nodes to use when they are launched\\. For more information, see [Amazon EKS node IAM role](https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html) in the * *Amazon EKS User Guide* *\\. If you specify `launchTemplate`, then don't specify [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html) in your launch template, or the node group deployment will fail\\. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NodegroupName": "The unique name to give your node group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ReleaseVersion": "The AMI version of the Amazon EKS optimized AMI to use with your node group \\(for example, `1.14.7-YYYYMMDD`\\)\\. By default, the latest available AMI version for the node group's current Kubernetes version is used\\. For more information, see [Amazon EKS optimized Linux AMI Versions](https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html) in the *Amazon EKS User Guide*\\. \nChanging this value triggers an update of the node group if one is available\\. You can't update other properties at the same time as updating `Release Version`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RemoteAccess": "The remote access \\(SSH\\) configuration to use with your node group\\. If you specify `launchTemplate`, then don't specify `remoteAccess`, or the node group deployment will fail\\. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide*\\. \n*Required*: No \n*Type*: [RemoteAccess](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-remoteaccess.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ScalingConfig": "The scaling configuration details for the Auto Scaling group that is created for your node group\\. \n*Required*: No \n*Type*: [ScalingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-scalingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Subnets": "The subnets to use for the Auto Scaling group that is created for your node group\\. If you specify `launchTemplate`, then don't specify [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html) in your launch template, or the node group deployment will fail\\. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide*\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The metadata to apply to the node group to assist with categorization and organization\\. Each tag consists of a key and an optional value\\. You define both\\. Node group tags don't propagate to any other resources associated with the node group, such as the Amazon EC2 instances or subnets\\. \nUpdates to `Tags` can't be combined with updates to `ReleaseVersion`, `Version`, or `LaunchTemplate`\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Taints": "The Kubernetes taints to be applied to the nodes in the node group when they are created\\. Effect is one of `No_Schedule`, `Prefer_No_Schedule`, or `No_Execute`\\. Kubernetes taints can be used together with tolerations to control how workloads are scheduled to your nodes\\. For more information, see [Node taints on managed node groups](https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html)\\. \n*Required*: No \n*Type*: List of [Taint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-taint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UpdateConfig": "The node group update configuration\\. \n*Required*: No \n*Type*: [UpdateConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-updateconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "The Kubernetes version to use for your managed nodes\\. By default, the Kubernetes version of the cluster is used, and this is the only accepted specified value\\. If you specify `launchTemplate`, and your launch template uses a custom AMI, then don't specify `version`, or the node group deployment will fail\\. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide*\\. \nYou can't update other properties at the same time as updating `Version`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EKS::Nodegroup LaunchTemplateSpecification": { + "Id": "The ID of the launch template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the launch template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "The version of the launch template to use\\. If no version is specified, then the template's default version is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EKS::Nodegroup RemoteAccess": { + "Ec2SshKey": "The Amazon EC2 SSH key that provides access for SSH communication with the nodes in the managed node group\\. For more information, see [Amazon EC2 key pairs and Linux instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) in the *Amazon Elastic Compute Cloud User Guide for Linux Instances*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceSecurityGroups": "The security groups that are allowed SSH access \\(port 22\\) to the nodes\\. If you specify an Amazon EC2 SSH key but do not specify a source security group when you create a managed node group, then port 22 on the nodes is opened to the internet \\(0\\.0\\.0\\.0/0\\)\\. For more information, see [Security Groups for Your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) in the *Amazon Virtual Private Cloud User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EKS::Nodegroup ScalingConfig": { + "DesiredSize": "The current number of nodes that the managed node group should maintain\\. \nIf you use Cluster Autoscaler, you shouldn't change the desiredSize value directly, as this can cause the Cluster Autoscaler to suddenly scale up or scale down\\.\nWhenever this parameter changes, the number of worker nodes in the node group is updated to the specified size\\. If this parameter is given a value that is smaller than the current number of running worker nodes, the necessary number of worker nodes are terminated to match the given value\\. When using CloudFormation, no action occurs if you remove this parameter from your CFN template\\. \nThis parameter can be different from minSize in some cases, such as when starting with extra hosts for testing\\. This parameter can also be different when you want to start with an estimated number of needed hosts, but let Cluster Autoscaler reduce the number if there are too many\\. When Cluster Autoscaler is used, the desiredSize parameter is altered by Cluster Autoscaler \\(but can be out\\-of\\-date for short periods of time\\)\\. Cluster Autoscaler doesn't scale a managed node group lower than minSize or higher than maxSize\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxSize": "The maximum number of nodes that the managed node group can scale out to\\. For information about the maximum number that you can specify, see [Amazon EKS service quotas](https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html) in the *Amazon EKS User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinSize": "The minimum number of nodes that the managed node group can scale in to\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EKS::Nodegroup Taint": { + "Effect": "The effect of the taint\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NO_EXECUTE | NO_SCHEDULE | PREFER_NO_SCHEDULE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Key": "The key of the taint\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of the taint\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EKS::Nodegroup UpdateConfig": { + "MaxUnavailable": "The maximum number of nodes unavailable at once during a version update\\. Nodes will be updated in parallel\\. This value or `maxUnavailablePercentage` is required to have a value\\.The maximum number is 100\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxUnavailablePercentage": "The maximum percentage of nodes unavailable during a version update\\. This percentage of nodes will be updated in parallel, up to 100 nodes at once\\. This value or `maxUnavailable` is required to have a value\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster": { + "AdditionalInfo": "A JSON string for selecting additional features\\. \n*Required*: No \n*Type*: Json \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Applications": "The applications to install on this cluster, for example, Spark, Flink, Oozie, Zeppelin, and so on\\. \n*Required*: No \n*Type*: List of [Application](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-application.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AutoScalingRole": "An IAM role for automatic scaling policies\\. The default role is `EMR_AutoScaling_DefaultRole`\\. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BootstrapActions": "A list of bootstrap actions to run before Hadoop starts on the cluster nodes\\. \n*Required*: No \n*Type*: List of [BootstrapActionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-bootstrapactionconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Configurations": "Applies only to Amazon EMR releases 4\\.x and later\\. The list of Configurations supplied to the EMR cluster\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-configuration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CustomAmiId": "Available only in Amazon EMR version 5\\.7\\.0 and later\\. The ID of a custom Amazon EBS\\-backed Linux AMI if the cluster uses a custom AMI\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EbsRootVolumeSize": "The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that is used for each EC2 instance\\. Available in Amazon EMR version 4\\.x and later\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Instances": "A specification of the number and type of Amazon EC2 instances\\. \n*Required*: Yes \n*Type*: [JobFlowInstancesConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "JobFlowRole": "Also called instance profile and EC2 role\\. An IAM role for an EMR cluster\\. The EC2 instances of the cluster assume this role\\. The default role is `EMR_EC2_DefaultRole`\\. In order to use the default role, you must have already created it using the CLI or console\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KerberosAttributes": "Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration\\. For more information see [Use Kerberos Authentication](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html) in the *Amazon EMR Management Guide*\\. \n*Required*: No \n*Type*: [KerberosAttributes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-kerberosattributes.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LogEncryptionKmsKeyId": "The AWS KMS key used for encrypting log files\\. This attribute is only available with EMR version 5\\.30\\.0 and later, excluding EMR 6\\.0\\.0\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LogUri": "The path to the Amazon S3 location where logs for this cluster are stored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ManagedScalingPolicy": "Creates or updates a managed scaling policy for an Amazon EMR cluster\\. The managed scaling policy defines the limits for resources, such as EC2 instances that can be added or terminated from a cluster\\. The policy only applies to the core and task nodes\\. The master node cannot be scaled after initial configuration\\. \n*Required*: No \n*Type*: [ManagedScalingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-managedscalingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ReleaseLabel": "The Amazon EMR release label, which determines the version of open\\-source application packages installed on the cluster\\. Release labels are in the form `emr-x.x.x`, where x\\.x\\.x is an Amazon EMR release version such as `emr-5.14.0`\\. For more information about Amazon EMR release versions and included application versions and features, see [https://docs.aws.amazon.com/emr/latest/ReleaseGuide/](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/)\\. The release label applies only to Amazon EMR releases version 4\\.0 and later\\. Earlier versions use `AmiVersion`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ScaleDownBehavior": "The way that individual Amazon EC2 instances terminate when an automatic scale\\-in activity occurs or an instance group is resized\\. `TERMINATE_AT_INSTANCE_HOUR` indicates that Amazon EMR terminates nodes at the instance\\-hour boundary, regardless of when the request to terminate the instance was submitted\\. This option is only available with Amazon EMR 5\\.1\\.0 and later and is the default for clusters created using that version\\. `TERMINATE_AT_TASK_COMPLETION` indicates that Amazon EMR adds nodes to a deny list and drains tasks from nodes before terminating the Amazon EC2 instances, regardless of the instance\\-hour boundary\\. With either behavior, Amazon EMR removes the least active nodes first and blocks instance termination if it could lead to HDFS corruption\\. `TERMINATE_AT_TASK_COMPLETION` is available only in Amazon EMR version 4\\.1\\.0 and later, and is the default for versions of Amazon EMR earlier than 5\\.1\\.0\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `TERMINATE_AT_INSTANCE_HOUR | TERMINATE_AT_TASK_COMPLETION` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecurityConfiguration": "The name of the security configuration applied to the cluster\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ServiceRole": "The IAM role that Amazon EMR assumes in order to access AWS resources on your behalf\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StepConcurrencyLevel": "Specifies the number of steps that can be executed concurrently\\. The default value is `1`\\. The maximum value is `256`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Steps": "A list of steps to run\\. \n*Required*: No \n*Type*: List of [StepConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-stepconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A list of tags associated with a cluster\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VisibleToAllUsers": "Indicates whether the cluster is visible to all IAM users of the AWS account associated with the cluster\\. If this value is set to `true`, all IAM users of that AWS account can view and manage the cluster if they have the proper policy permissions set\\. If this value is `false`, only the IAM user that created the cluster can view and manage it\\. This value can be changed using the SetVisibleToAllUsers action\\. \nWhen you create clusters directly through the EMR console or API, this value is set to `true` by default\\. However, for `AWS::EMR::Cluster` resources in CloudFormation, the default is `false`\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster Application": { + "AdditionalInfo": "This option is for advanced users only\\. This is meta information about clusters and applications that are used for testing and troubleshooting\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Args": "Arguments for Amazon EMR to pass to the application\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "The version of the application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster AutoScalingPolicy": { + "Constraints": "The upper and lower EC2 instance limits for an automatic scaling policy\\. Automatic scaling activity will not cause an instance group to grow above or below these limits\\. \n*Required*: Yes \n*Type*: [ScalingConstraints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingconstraints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Rules": "The scale\\-in and scale\\-out rules that comprise the automatic scaling policy\\. \n*Required*: Yes \n*Type*: List of [ScalingRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster BootstrapActionConfig": { + "Name": "The name of the bootstrap action\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScriptBootstrapAction": "The script run by the bootstrap action\\. \n*Required*: Yes \n*Type*: [ScriptBootstrapActionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scriptbootstrapactionconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster CloudWatchAlarmDefinition": { + "ComparisonOperator": "Determines how the metric specified by `MetricName` is compared to the value specified by `Threshold`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GREATER_THAN | GREATER_THAN_OR_EQUAL | LESS_THAN | LESS_THAN_OR_EQUAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Dimensions": "A CloudWatch metric dimension\\. \n*Required*: No \n*Type*: List of [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EvaluationPeriods": "The number of periods, in five\\-minute increments, during which the alarm condition must exist before the alarm triggers automatic scaling activity\\. The default value is `1`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricName": "The name of the CloudWatch metric that is watched to determine an alarm condition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Namespace": "The namespace for the CloudWatch metric\\. The default is `AWS/ElasticMapReduce`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Period": "The period, in seconds, over which the statistic is applied\\. EMR CloudWatch metrics are emitted every five minutes \\(300 seconds\\), so if an EMR CloudWatch metric is specified, specify `300`\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Statistic": "The statistic to apply to the metric associated with the alarm\\. The default is `AVERAGE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AVERAGE | MAXIMUM | MINIMUM | SAMPLE_COUNT | SUM` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Threshold": "The value against which the specified statistic is compared\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Unit": "The unit of measure associated with the CloudWatch metric being watched\\. The value specified for `Unit` must correspond to the units specified in the CloudWatch metric\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BITS | BITS_PER_SECOND | BYTES | BYTES_PER_SECOND | COUNT | COUNT_PER_SECOND | GIGA_BITS | GIGA_BITS_PER_SECOND | GIGA_BYTES | GIGA_BYTES_PER_SECOND | KILO_BITS | KILO_BITS_PER_SECOND | KILO_BYTES | KILO_BYTES_PER_SECOND | MEGA_BITS | MEGA_BITS_PER_SECOND | MEGA_BYTES | MEGA_BYTES_PER_SECOND | MICRO_SECONDS | MILLI_SECONDS | NONE | PERCENT | SECONDS | TERA_BITS | TERA_BITS_PER_SECOND | TERA_BYTES | TERA_BYTES_PER_SECOND` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster ComputeLimits": { + "MaximumCapacityUnits": "The upper boundary of EC2 units\\. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets\\. Managed scaling activities are not allowed beyond this boundary\\. The limit only applies to the core and task nodes\\. The master node cannot be scaled after initial configuration\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaximumCoreCapacityUnits": "The upper boundary of EC2 units for core node type in a cluster\\. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets\\. The core units are not allowed to scale beyond this boundary\\. The parameter is used to split capacity allocation between core and task nodes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaximumOnDemandCapacityUnits": "The upper boundary of On\\-Demand EC2 units\\. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets\\. The On\\-Demand units are not allowed to scale beyond this boundary\\. The parameter is used to split capacity allocation between On\\-Demand and Spot Instances\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinimumCapacityUnits": "The lower boundary of EC2 units\\. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets\\. Managed scaling activities are not allowed beyond this boundary\\. The limit only applies to the core and task nodes\\. The master node cannot be scaled after initial configuration\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UnitType": "The unit type used for specifying a managed scaling policy\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `InstanceFleetUnits | Instances | VCPU` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster Configuration": { + "Classification": "The classification within a configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConfigurationProperties": "A list of additional configurations to apply within a configuration object\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Configurations": "A list of additional configurations to apply within a configuration object\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-elasticmapreduce-cluster-configuration.html#aws-properties-elasticmapreduce-cluster-configuration) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster EbsBlockDeviceConfig": { + "VolumeSpecification": "EBS volume specifications such as volume type, IOPS, and size \\(GiB\\) that will be requested for the EBS volume attached to an EC2 instance in the cluster\\. \n*Required*: Yes \n*Type*: [VolumeSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-volumespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VolumesPerInstance": "Number of EBS volumes with a specific volume configuration that will be associated with every instance in the instance group \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster EbsConfiguration": { + "EbsBlockDeviceConfigs": "An array of Amazon EBS volume specifications attached to a cluster instance\\. \n*Required*: No \n*Type*: List of [EbsBlockDeviceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsblockdeviceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EbsOptimized": "Indicates whether an Amazon EBS volume is EBS\\-optimized\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster HadoopJarStepConfig": { + "Args": "A list of command line arguments passed to the JAR file's main function when executed\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Jar": "A path to a JAR file run during the step\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MainClass": "The name of the main class in the specified Java file\\. If not specified, the JAR file should specify a Main\\-Class in its manifest file\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StepProperties": "A list of Java properties that are set when the step runs\\. You can use these properties to pass key\\-value pairs to your main function\\. \n*Required*: No \n*Type*: List of [KeyValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-keyvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster InstanceFleetConfig": { + "InstanceTypeConfigs": "The instance type configurations that define the EC2 instances in the instance fleet\\. \n*Required*: No \n*Type*: List of [InstanceTypeConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancetypeconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LaunchSpecifications": "The launch specification for the instance fleet\\. \n*Required*: No \n*Type*: [InstanceFleetProvisioningSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetprovisioningspecifications.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The friendly name of the instance fleet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TargetOnDemandCapacity": "The target capacity of On\\-Demand units for the instance fleet, which determines how many On\\-Demand instances to provision\\. When the instance fleet launches, Amazon EMR tries to provision On\\-Demand instances as specified by `InstanceTypeConfig`\\. Each instance configuration has a specified `WeightedCapacity`\\. When an On\\-Demand instance is provisioned, the `WeightedCapacity` units count toward the target capacity\\. Amazon EMR provisions instances until the target capacity is totally fulfilled, even if this results in an overage\\. For example, if there are 2 units remaining to fulfill capacity, and Amazon EMR can only provision an instance with a `WeightedCapacity` of 5 units, the instance is provisioned, and the target capacity is exceeded by 3 units\\. \nIf not specified or set to 0, only Spot instances are provisioned for the instance fleet using `TargetSpotCapacity`\\. At least one of `TargetSpotCapacity` and `TargetOnDemandCapacity` should be greater than 0\\. For a master instance fleet, only one of `TargetSpotCapacity` and `TargetOnDemandCapacity` can be specified, and its value must be 1\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetSpotCapacity": "The target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision\\. When the instance fleet launches, Amazon EMR tries to provision Spot instances as specified by `InstanceTypeConfig`\\. Each instance configuration has a specified `WeightedCapacity`\\. When a Spot instance is provisioned, the `WeightedCapacity` units count toward the target capacity\\. Amazon EMR provisions instances until the target capacity is totally fulfilled, even if this results in an overage\\. For example, if there are 2 units remaining to fulfill capacity, and Amazon EMR can only provision an instance with a `WeightedCapacity` of 5 units, the instance is provisioned, and the target capacity is exceeded by 3 units\\. \nIf not specified or set to 0, only On\\-Demand instances are provisioned for the instance fleet\\. At least one of `TargetSpotCapacity` and `TargetOnDemandCapacity` should be greater than 0\\. For a master instance fleet, only one of `TargetSpotCapacity` and `TargetOnDemandCapacity` can be specified, and its value must be 1\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster InstanceFleetProvisioningSpecifications": { + "OnDemandSpecification": "The launch specification for On\\-Demand Instances in the instance fleet, which determines the allocation strategy\\. \nThe instance fleet configuration is available only in Amazon EMR versions 4\\.8\\.0 and later, excluding 5\\.0\\.x versions\\. On\\-Demand Instances allocation strategy is available in Amazon EMR version 5\\.12\\.1 and later\\.\n*Required*: No \n*Type*: [OnDemandProvisioningSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ondemandprovisioningspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SpotSpecification": "The launch specification for Spot Instances in the fleet, which determines the defined duration, provisioning timeout behavior, and allocation strategy\\. \n*Required*: No \n*Type*: [SpotProvisioningSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-spotprovisioningspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster InstanceGroupConfig": { + "AutoScalingPolicy": "`AutoScalingPolicy` is a subproperty of the [InstanceGroupConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-jobflowinstancesconfig-instancegroupconfig.html) property type that specifies the constraints and rules of an automatic scaling policy in Amazon EMR\\. The automatic scaling policy defines how an instance group dynamically adds and terminates EC2 instances in response to the value of a CloudWatch metric\\. Only core and task instance groups can use automatic scaling policies\\. For more information, see [Using Automatic Scaling in Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html)\\. \n*Required*: No \n*Type*: [AutoScalingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-autoscalingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BidPrice": "If specified, indicates that the instance group uses Spot Instances\\. This is the maximum price you are willing to pay for Spot Instances\\. Specify `OnDemandPrice` to set the amount equal to the On\\-Demand price, or specify an amount in USD\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Configurations": "Amazon EMR releases 4\\.x or later\\.\nThe list of configurations supplied for an EMR cluster instance group\\. You can specify a separate configuration for each instance group \\(master, core, and task\\)\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-configuration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CustomAmiId": "The custom AMI ID to use for the provisioned instance group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EbsConfiguration": "EBS configurations that will be attached to each EC2 instance in the instance group\\. \n*Required*: No \n*Type*: [EbsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceCount": "Target number of instances for the instance group\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceType": "The EC2 instance type for all instances in the instance group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Market": "Market type of the EC2 instances used to create a cluster node\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ON_DEMAND | SPOT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "Friendly name given to the instance group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EMR::Cluster InstanceTypeConfig": { + "BidPrice": "The bid price for each EC2 Spot Instance type as defined by `InstanceType`\\. Expressed in USD\\. If neither `BidPrice` nor `BidPriceAsPercentageOfOnDemandPrice` is provided, `BidPriceAsPercentageOfOnDemandPrice` defaults to 100%\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BidPriceAsPercentageOfOnDemandPrice": "The bid price, as a percentage of On\\-Demand price, for each EC2 Spot Instance as defined by `InstanceType`\\. Expressed as a number \\(for example, 20 specifies 20%\\)\\. If neither `BidPrice` nor `BidPriceAsPercentageOfOnDemandPrice` is provided, `BidPriceAsPercentageOfOnDemandPrice` defaults to 100%\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Configurations": "A configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-configuration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CustomAmiId": "The custom AMI ID to use for the instance type\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EbsConfiguration": "The configuration of Amazon Elastic Block Store \\(Amazon EBS\\) attached to each instance as defined by `InstanceType`\\. \n*Required*: No \n*Type*: [EbsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceType": "An EC2 instance type, such as `m3.xlarge`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "WeightedCapacity": "The number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in `InstanceFleetConfig`\\. This value is 1 for a master instance fleet, and must be 1 or greater for core and task instance fleets\\. Defaults to 1 if not specified\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EMR::Cluster JobFlowInstancesConfig": { + "AdditionalMasterSecurityGroups": "A list of additional Amazon EC2 security group IDs for the master node\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AdditionalSlaveSecurityGroups": "A list of additional Amazon EC2 security group IDs for the core and task nodes\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CoreInstanceFleet": "Describes the EC2 instances and instance configurations for the core instance fleet when using clusters with the instance fleet configuration\\. \n*Required*: No \n*Type*: [InstanceFleetConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CoreInstanceGroup": "Describes the EC2 instances and instance configurations for core instance groups when using clusters with the uniform instance group configuration\\. \n*Required*: No \n*Type*: [InstanceGroupConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Ec2KeyName": "The name of the EC2 key pair that can be used to connect to the master node using SSH as the user called \"hadoop\\.\" \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Ec2SubnetId": "Applies to clusters that use the uniform instance group configuration\\. To launch the cluster in Amazon Virtual Private Cloud \\(Amazon VPC\\), set this parameter to the identifier of the Amazon VPC subnet where you want the cluster to launch\\. If you do not specify this value and your account supports EC2\\-Classic, the cluster launches in EC2\\-Classic\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Ec2SubnetIds": "Applies to clusters that use the instance fleet configuration\\. When multiple EC2 subnet IDs are specified, Amazon EMR evaluates them and launches instances in the optimal subnet\\. \nThe instance fleet configuration is available only in Amazon EMR versions 4\\.8\\.0 and later, excluding 5\\.0\\.x versions\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EmrManagedMasterSecurityGroup": "The identifier of the Amazon EC2 security group for the master node\\. If you specify `EmrManagedMasterSecurityGroup`, you must also specify `EmrManagedSlaveSecurityGroup`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EmrManagedSlaveSecurityGroup": "The identifier of the Amazon EC2 security group for the core and task nodes\\. If you specify `EmrManagedSlaveSecurityGroup`, you must also specify `EmrManagedMasterSecurityGroup`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "HadoopVersion": "Applies only to Amazon EMR release versions earlier than 4\\.0\\. The Hadoop version for the cluster\\. Valid inputs are \"0\\.18\" \\(no longer maintained\\), \"0\\.20\" \\(no longer maintained\\), \"0\\.20\\.205\" \\(no longer maintained\\), \"1\\.0\\.3\", \"2\\.2\\.0\", or \"2\\.4\\.0\"\\. If you do not set this value, the default of 0\\.18 is used, unless the `AmiVersion` parameter is set in the RunJobFlow call, in which case the default version of Hadoop for that AMI version is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KeepJobFlowAliveWhenNoSteps": "Specifies whether the cluster should remain available after completing all steps\\. Defaults to `true`\\. For more information about configuring cluster termination, see [Control Cluster Termination](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html) in the *EMR Management Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MasterInstanceFleet": "Describes the EC2 instances and instance configurations for the master instance fleet when using clusters with the instance fleet configuration\\. \n*Required*: No \n*Type*: [InstanceFleetConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MasterInstanceGroup": "Describes the EC2 instances and instance configurations for the master instance group when using clusters with the uniform instance group configuration\\. \n*Required*: No \n*Type*: [InstanceGroupConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Placement": "The Availability Zone in which the cluster runs\\. \n*Required*: No \n*Type*: [PlacementType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-placementtype.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ServiceAccessSecurityGroup": "The identifier of the Amazon EC2 security group for the Amazon EMR service to access clusters in VPC private subnets\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TerminationProtected": "Specifies whether to lock the cluster to prevent the Amazon EC2 instances from being terminated by API call, user intervention, or in the event of a job\\-flow error\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster KerberosAttributes": { + "ADDomainJoinPassword": "The Active Directory password for `ADDomainJoinUser`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ADDomainJoinUser": "Required only when establishing a cross\\-realm trust with an Active Directory domain\\. A user with sufficient privileges to join resources to the domain\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CrossRealmTrustPrincipalPassword": "Required only when establishing a cross\\-realm trust with a KDC in a different realm\\. The cross\\-realm principal password, which must be identical across realms\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KdcAdminPassword": "The password used within the cluster for the kadmin service on the cluster\\-dedicated KDC, which maintains Kerberos principals, password policies, and keytabs for the cluster\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Realm": "The name of the Kerberos realm to which all nodes in a cluster belong\\. For example, `EC2.INTERNAL`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster KeyValue": { + "Key": "The unique identifier of a key\\-value pair\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value part of the identified key\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster ManagedScalingPolicy": { + "ComputeLimits": "The EC2 unit limits for a managed scaling policy\\. The managed scaling activity of a cluster is not allowed to go above or below these limits\\. The limit only applies to the core and task nodes\\. The master node cannot be scaled after initial configuration\\. \n*Required*: No \n*Type*: [ComputeLimits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-computelimits.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster MetricDimension": { + "Key": "The dimension name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The dimension value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster OnDemandProvisioningSpecification": { + "AllocationStrategy": "Specifies the strategy to use in launching On\\-Demand instance fleets\\. Currently, the only option is `lowest-price` \\(the default\\), which launches the lowest price first\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `lowest-price` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster PlacementType": { + "AvailabilityZone": "The Amazon EC2 Availability Zone for the cluster\\. `AvailabilityZone` is used for uniform instance groups, while `AvailabilityZones` \\(plural\\) is used for instance fleets\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EMR::Cluster ScalingAction": { + "Market": "Not available for instance groups\\. Instance groups use the market type specified for the group\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ON_DEMAND | SPOT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SimpleScalingPolicyConfiguration": "The type of adjustment the automatic scaling activity makes when triggered, and the periodicity of the adjustment\\. \n*Required*: Yes \n*Type*: [SimpleScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-simplescalingpolicyconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster ScalingConstraints": { + "MaxCapacity": "The upper boundary of EC2 instances in an instance group beyond which scaling activities are not allowed to grow\\. Scale\\-out activities will not add instances beyond this boundary\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinCapacity": "The lower boundary of EC2 instances in an instance group below which scaling activities are not allowed to shrink\\. Scale\\-in activities will not terminate instances below this boundary\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster ScalingRule": { + "Action": "The conditions that trigger an automatic scaling activity\\. \n*Required*: Yes \n*Type*: [ScalingAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A friendly, more verbose description of the automatic scaling rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name used to identify an automatic scaling rule\\. Rule names must be unique within a scaling policy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Trigger": "The CloudWatch alarm definition that determines when automatic scaling activity is triggered\\. \n*Required*: Yes \n*Type*: [ScalingTrigger](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingtrigger.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster ScalingTrigger": { + "CloudWatchAlarmDefinition": "The definition of a CloudWatch metric alarm\\. When the defined alarm conditions are met along with other trigger parameters, scaling activity begins\\. \n*Required*: Yes \n*Type*: [CloudWatchAlarmDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster ScriptBootstrapActionConfig": { + "Args": "A list of command line arguments to pass to the bootstrap action script\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Path": "Location in Amazon S3 of the script to run during a bootstrap action\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster SimpleScalingPolicyConfiguration": { + "AdjustmentType": "The way in which EC2 instances are added \\(if `ScalingAdjustment` is a positive number\\) or terminated \\(if `ScalingAdjustment` is a negative number\\) each time the scaling activity is triggered\\. `CHANGE_IN_CAPACITY` is the default\\. `CHANGE_IN_CAPACITY` indicates that the EC2 instance count increments or decrements by `ScalingAdjustment`, which should be expressed as an integer\\. `PERCENT_CHANGE_IN_CAPACITY` indicates the instance count increments or decrements by the percentage specified by `ScalingAdjustment`, which should be expressed as an integer\\. For example, 20 indicates an increase in 20% increments of cluster capacity\\. `EXACT_CAPACITY` indicates the scaling activity results in an instance group with the number of EC2 instances specified by `ScalingAdjustment`, which should be expressed as a positive integer\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CHANGE_IN_CAPACITY | EXACT_CAPACITY | PERCENT_CHANGE_IN_CAPACITY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CoolDown": "The amount of time, in seconds, after a scaling activity completes before any further trigger\\-related scaling activities can start\\. The default value is 0\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScalingAdjustment": "The amount by which to scale in or scale out, based on the specified `AdjustmentType`\\. A positive value adds to the instance group's EC2 instance count while a negative number removes instances\\. If `AdjustmentType` is set to `EXACT_CAPACITY`, the number should only be a positive integer\\. If `AdjustmentType` is set to `PERCENT_CHANGE_IN_CAPACITY`, the value should express the percentage as an integer\\. For example, \\-20 indicates a decrease in 20% increments of cluster capacity\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster SpotProvisioningSpecification": { + "AllocationStrategy": "Specifies the strategy to use in launching Spot Instance fleets\\. Currently, the only option is capacity\\-optimized \\(the default\\), which launches instances from Spot Instance pools with optimal capacity for the number of instances that are launching\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `capacity-optimized` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BlockDurationMinutes": "The defined duration for Spot Instances \\(also known as Spot blocks\\) in minutes\\. When specified, the Spot Instance does not terminate before the defined duration expires, and defined duration pricing for Spot Instances applies\\. Valid values are 60, 120, 180, 240, 300, or 360\\. The duration period starts as soon as a Spot Instance receives its instance ID\\. At the end of the duration, Amazon EC2 marks the Spot Instance for termination and provides a Spot Instance termination notice, which gives the instance a two\\-minute warning before it terminates\\. \nSpot Instances with a defined duration \\(also known as Spot blocks\\) are no longer available to new customers from July 1, 2021\\. For customers who have previously used the feature, we will continue to support Spot Instances with a defined duration until December 31, 2022\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeoutAction": "The action to take when `TargetSpotCapacity` has not been fulfilled when the `TimeoutDurationMinutes` has expired; that is, when all Spot Instances could not be provisioned within the Spot provisioning timeout\\. Valid values are `TERMINATE_CLUSTER` and `SWITCH_TO_ON_DEMAND`\\. SWITCH\\_TO\\_ON\\_DEMAND specifies that if no Spot Instances are available, On\\-Demand Instances should be provisioned to fulfill any remaining Spot capacity\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SWITCH_TO_ON_DEMAND | TERMINATE_CLUSTER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeoutDurationMinutes": "The spot provisioning timeout period in minutes\\. If Spot Instances are not provisioned within this time period, the `TimeOutAction` is taken\\. Minimum value is 5 and maximum value is 1440\\. The timeout applies only during initial provisioning, when the cluster is first created\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster StepConfig": { + "ActionOnFailure": "The action to take when the cluster step fails\\. Possible values are `CANCEL_AND_WAIT` and `CONTINUE`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HadoopJarStep": "The JAR file used for the step\\. \n*Required*: Yes \n*Type*: [HadoopJarStepConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-hadoopjarstepconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the step\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::Cluster VolumeSpecification": { + "Iops": "The number of I/O operations per second \\(IOPS\\) that the volume supports\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SizeInGB": "The volume size, in gibibytes \\(GiB\\)\\. This can be a number from 1 \\- 1024\\. If the volume type is EBS\\-optimized, the minimum value is 10\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VolumeType": "The volume type\\. Volume types supported are gp2, io1, and standard\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::InstanceFleetConfig": { + "ClusterId": "The unique identifier of the EMR cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceFleetType": "The node type that the instance fleet hosts\\. \n*Allowed Values*: TASK \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceTypeConfigs": "`InstanceTypeConfigs` determine the EC2 instances that Amazon EMR attempts to provision to fulfill On\\-Demand and Spot target capacities\\. \nThe instance fleet configuration is available only in Amazon EMR versions 4\\.8\\.0 and later, excluding 5\\.0\\.x versions\\.\n*Required*: No \n*Type*: List of [InstanceTypeConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancetypeconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LaunchSpecifications": "The launch specification for the instance fleet\\. \n*Required*: No \n*Type*: [InstanceFleetProvisioningSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancefleetprovisioningspecifications.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The friendly name of the instance fleet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TargetOnDemandCapacity": "The target capacity of On\\-Demand units for the instance fleet, which determines how many On\\-Demand instances to provision\\. When the instance fleet launches, Amazon EMR tries to provision On\\-Demand instances as specified by `InstanceTypeConfig`\\. Each instance configuration has a specified `WeightedCapacity`\\. When an On\\-Demand instance is provisioned, the `WeightedCapacity` units count toward the target capacity\\. Amazon EMR provisions instances until the target capacity is totally fulfilled, even if this results in an overage\\. For example, if there are 2 units remaining to fulfill capacity, and Amazon EMR can only provision an instance with a `WeightedCapacity` of 5 units, the instance is provisioned, and the target capacity is exceeded by 3 units\\. \nIf not specified or set to 0, only Spot instances are provisioned for the instance fleet using `TargetSpotCapacity`\\. At least one of `TargetSpotCapacity` and `TargetOnDemandCapacity` should be greater than 0\\. For a master instance fleet, only one of `TargetSpotCapacity` and `TargetOnDemandCapacity` can be specified, and its value must be 1\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetSpotCapacity": "The target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision\\. When the instance fleet launches, Amazon EMR tries to provision Spot instances as specified by `InstanceTypeConfig`\\. Each instance configuration has a specified `WeightedCapacity`\\. When a Spot instance is provisioned, the `WeightedCapacity` units count toward the target capacity\\. Amazon EMR provisions instances until the target capacity is totally fulfilled, even if this results in an overage\\. For example, if there are 2 units remaining to fulfill capacity, and Amazon EMR can only provision an instance with a `WeightedCapacity` of 5 units, the instance is provisioned, and the target capacity is exceeded by 3 units\\. \nIf not specified or set to 0, only On\\-Demand instances are provisioned for the instance fleet\\. At least one of `TargetSpotCapacity` and `TargetOnDemandCapacity` should be greater than 0\\. For a master instance fleet, only one of `TargetSpotCapacity` and `TargetOnDemandCapacity` can be specified, and its value must be 1\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::InstanceFleetConfig Configuration": { + "Classification": "The classification within a configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ConfigurationProperties": "Within a configuration classification, a set of properties that represent the settings that you want to change in the configuration file\\. Duplicates not allowed\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Configurations": "A list of additional configurations to apply within a configuration object\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-elasticmapreduce-instancefleetconfig-configuration.html#aws-properties-elasticmapreduce-instancefleetconfig-configuration) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EMR::InstanceFleetConfig EbsBlockDeviceConfig": { + "VolumeSpecification": "EBS volume specifications such as volume type, IOPS, and size \\(GiB\\) that will be requested for the EBS volume attached to an EC2 instance in the cluster\\. \n*Required*: Yes \n*Type*: [VolumeSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-volumespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VolumesPerInstance": "Number of EBS volumes with a specific volume configuration that will be associated with every instance in the instance group \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EMR::InstanceFleetConfig EbsConfiguration": { + "EbsBlockDeviceConfigs": "An array of Amazon EBS volume specifications attached to a cluster instance\\. \n*Required*: No \n*Type*: List of [EbsBlockDeviceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ebsblockdeviceconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EbsOptimized": "Indicates whether an Amazon EBS volume is EBS\\-optimized\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EMR::InstanceFleetConfig InstanceFleetProvisioningSpecifications": { + "OnDemandSpecification": "The launch specification for On\\-Demand Instances in the instance fleet, which determines the allocation strategy\\. \nThe instance fleet configuration is available only in Amazon EMR versions 4\\.8\\.0 and later, excluding 5\\.0\\.x versions\\. On\\-Demand Instances allocation strategy is available in Amazon EMR version 5\\.12\\.1 and later\\.\n*Required*: No \n*Type*: [OnDemandProvisioningSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ondemandprovisioningspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SpotSpecification": "The launch specification for Spot Instances in the fleet, which determines the defined duration, provisioning timeout behavior, and allocation strategy\\. \n*Required*: No \n*Type*: [SpotProvisioningSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-spotprovisioningspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::InstanceFleetConfig InstanceTypeConfig": { + "BidPrice": "The bid price for each EC2 Spot Instance type as defined by `InstanceType`\\. Expressed in USD\\. If neither `BidPrice` nor `BidPriceAsPercentageOfOnDemandPrice` is provided, `BidPriceAsPercentageOfOnDemandPrice` defaults to 100%\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BidPriceAsPercentageOfOnDemandPrice": "The bid price, as a percentage of On\\-Demand price, for each EC2 Spot Instance as defined by `InstanceType`\\. Expressed as a number \\(for example, 20 specifies 20%\\)\\. If neither `BidPrice` nor `BidPriceAsPercentageOfOnDemandPrice` is provided, `BidPriceAsPercentageOfOnDemandPrice` defaults to 100%\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Configurations": "Amazon EMR releases 4\\.x or later\\.\nAn optional configuration specification to be used when provisioning cluster instances, which can include configurations for applications and software bundled with Amazon EMR\\. A configuration consists of a classification, properties, and optional nested configurations\\. A classification refers to an application\\-specific configuration file\\. Properties are the settings you want to change in that file\\. For more information, see [Configuring Applications](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html)\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-configuration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CustomAmiId": "The custom AMI ID to use for the instance type\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EbsConfiguration": "The configuration of Amazon Elastic Block Store \\(Amazon EBS\\) attached to each instance as defined by `InstanceType`\\. \n*Required*: No \n*Type*: [EbsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ebsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceType": "An EC2 instance type, such as `m3.xlarge`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "WeightedCapacity": "The number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in `InstanceFleetConfig`\\. This value is 1 for a master instance fleet, and must be 1 or greater for core and task instance fleets\\. Defaults to 1 if not specified\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EMR::InstanceFleetConfig OnDemandProvisioningSpecification": { + "AllocationStrategy": "Specifies the strategy to use in launching On\\-Demand instance fleets\\. Currently, the only option is `lowest-price` \\(the default\\), which launches the lowest price first\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `lowest-price` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::InstanceFleetConfig SpotProvisioningSpecification": { + "AllocationStrategy": "Specifies the strategy to use in launching Spot Instance fleets\\. Currently, the only option is capacity\\-optimized \\(the default\\), which launches instances from Spot Instance pools with optimal capacity for the number of instances that are launching\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `capacity-optimized` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BlockDurationMinutes": "The defined duration for Spot Instances \\(also known as Spot blocks\\) in minutes\\. When specified, the Spot Instance does not terminate before the defined duration expires, and defined duration pricing for Spot Instances applies\\. Valid values are 60, 120, 180, 240, 300, or 360\\. The duration period starts as soon as a Spot Instance receives its instance ID\\. At the end of the duration, Amazon EC2 marks the Spot Instance for termination and provides a Spot Instance termination notice, which gives the instance a two\\-minute warning before it terminates\\. \nSpot Instances with a defined duration \\(also known as Spot blocks\\) are no longer available to new customers from July 1, 2021\\. For customers who have previously used the feature, we will continue to support Spot Instances with a defined duration until December 31, 2022\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeoutAction": "The action to take when `TargetSpotCapacity` has not been fulfilled when the `TimeoutDurationMinutes` has expired; that is, when all Spot Instances could not be provisioned within the Spot provisioning timeout\\. Valid values are `TERMINATE_CLUSTER` and `SWITCH_TO_ON_DEMAND`\\. SWITCH\\_TO\\_ON\\_DEMAND specifies that if no Spot Instances are available, On\\-Demand Instances should be provisioned to fulfill any remaining Spot capacity\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SWITCH_TO_ON_DEMAND | TERMINATE_CLUSTER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeoutDurationMinutes": "The spot provisioning timeout period in minutes\\. If Spot Instances are not provisioned within this time period, the `TimeOutAction` is taken\\. Minimum value is 5 and maximum value is 1440\\. The timeout applies only during initial provisioning, when the cluster is first created\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::InstanceFleetConfig VolumeSpecification": { + "Iops": "The number of I/O operations per second \\(IOPS\\) that the volume supports\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SizeInGB": "The volume size, in gibibytes \\(GiB\\)\\. This can be a number from 1 \\- 1024\\. If the volume type is EBS\\-optimized, the minimum value is 10\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VolumeType": "The volume type\\. Volume types supported are gp2, io1, and standard\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EMR::InstanceGroupConfig": { + "AutoScalingPolicy": "`AutoScalingPolicy` is a subproperty of `InstanceGroupConfig`\\. `AutoScalingPolicy` defines how an instance group dynamically adds and terminates EC2 instances in response to the value of a CloudWatch metric\\. For more information, see [Using Automatic Scaling in Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html) in the *Amazon EMR Management Guide*\\. \n*Required*: No \n*Type*: [AutoScalingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-autoscalingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BidPrice": "If specified, indicates that the instance group uses Spot Instances\\. This is the maximum price you are willing to pay for Spot Instances\\. Specify `OnDemandPrice` to set the amount equal to the On\\-Demand price, or specify an amount in USD\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Configurations": "Amazon EMR releases 4\\.x or later\\.\nThe list of configurations supplied for an EMR cluster instance group\\. You can specify a separate configuration for each instance group \\(master, core, and task\\)\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-configuration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CustomAmiId": "The custom AMI ID to use for the provisioned instance group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EbsConfiguration": "`EbsConfiguration` determines the EBS volumes to attach to EMR cluster instances\\. \n*Required*: No \n*Type*: [EbsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceCount": "Target number of instances for the instance group\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceRole": "The role of the instance group in the cluster\\. \n*Allowed Values*: TASK \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceType": "The EC2 instance type for all instances in the instance group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "JobFlowId": "The ID of an Amazon EMR cluster that you want to associate this instance group with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Market": "Market type of the EC2 instances used to create a cluster node\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ON_DEMAND | SPOT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "Friendly name given to the instance group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EMR::InstanceGroupConfig AutoScalingPolicy": { + "Constraints": "The upper and lower EC2 instance limits for an automatic scaling policy\\. Automatic scaling activity will not cause an instance group to grow above or below these limits\\. \n*Required*: Yes \n*Type*: [ScalingConstraints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingconstraints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Rules": "The scale\\-in and scale\\-out rules that comprise the automatic scaling policy\\. \n*Required*: Yes \n*Type*: List of [ScalingRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::InstanceGroupConfig CloudWatchAlarmDefinition": { + "ComparisonOperator": "Determines how the metric specified by `MetricName` is compared to the value specified by `Threshold`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GREATER_THAN | GREATER_THAN_OR_EQUAL | LESS_THAN | LESS_THAN_OR_EQUAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Dimensions": "A CloudWatch metric dimension\\. \n*Required*: No \n*Type*: List of [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EvaluationPeriods": "The number of periods, in five\\-minute increments, during which the alarm condition must exist before the alarm triggers automatic scaling activity\\. The default value is `1`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricName": "The name of the CloudWatch metric that is watched to determine an alarm condition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Namespace": "The namespace for the CloudWatch metric\\. The default is `AWS/ElasticMapReduce`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Period": "The period, in seconds, over which the statistic is applied\\. EMR CloudWatch metrics are emitted every five minutes \\(300 seconds\\), so if an EMR CloudWatch metric is specified, specify `300`\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Statistic": "The statistic to apply to the metric associated with the alarm\\. The default is `AVERAGE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AVERAGE | MAXIMUM | MINIMUM | SAMPLE_COUNT | SUM` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Threshold": "The value against which the specified statistic is compared\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Unit": "The unit of measure associated with the CloudWatch metric being watched\\. The value specified for `Unit` must correspond to the units specified in the CloudWatch metric\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BITS | BITS_PER_SECOND | BYTES | BYTES_PER_SECOND | COUNT | COUNT_PER_SECOND | GIGA_BITS | GIGA_BITS_PER_SECOND | GIGA_BYTES | GIGA_BYTES_PER_SECOND | KILO_BITS | KILO_BITS_PER_SECOND | KILO_BYTES | KILO_BYTES_PER_SECOND | MEGA_BITS | MEGA_BITS_PER_SECOND | MEGA_BYTES | MEGA_BYTES_PER_SECOND | MICRO_SECONDS | MILLI_SECONDS | NONE | PERCENT | SECONDS | TERA_BITS | TERA_BITS_PER_SECOND | TERA_BYTES | TERA_BYTES_PER_SECOND` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::InstanceGroupConfig Configuration": { + "Classification": "The classification within a configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ConfigurationProperties": "Within a configuration classification, a set of properties that represent the settings that you want to change in the configuration file\\. Duplicates not allowed\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Configurations": "A list of additional configurations to apply within a configuration object\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-emr-cluster-configuration.html#aws-properties-emr-cluster-configuration) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EMR::InstanceGroupConfig EbsBlockDeviceConfig": { + "VolumeSpecification": "EBS volume specifications such as volume type, IOPS, and size \\(GiB\\) that will be requested for the EBS volume attached to an EC2 instance in the cluster\\. \n*Required*: Yes \n*Type*: [VolumeSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig-volumespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VolumesPerInstance": "Number of EBS volumes with a specific volume configuration that will be associated with every instance in the instance group \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::InstanceGroupConfig EbsConfiguration": { + "EbsBlockDeviceConfigs": "An array of Amazon EBS volume specifications attached to a cluster instance\\. \n*Required*: No \n*Type*: List of [EbsBlockDeviceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EbsOptimized": "Indicates whether an Amazon EBS volume is EBS\\-optimized\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::InstanceGroupConfig MetricDimension": { + "Key": "The dimension name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The dimension value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::InstanceGroupConfig ScalingAction": { + "Market": "Not available for instance groups\\. Instance groups use the market type specified for the group\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ON_DEMAND | SPOT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SimpleScalingPolicyConfiguration": "The type of adjustment the automatic scaling activity makes when triggered, and the periodicity of the adjustment\\. \n*Required*: Yes \n*Type*: [SimpleScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-simplescalingpolicyconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::InstanceGroupConfig ScalingConstraints": { + "MaxCapacity": "The upper boundary of EC2 instances in an instance group beyond which scaling activities are not allowed to grow\\. Scale\\-out activities will not add instances beyond this boundary\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinCapacity": "The lower boundary of EC2 instances in an instance group below which scaling activities are not allowed to shrink\\. Scale\\-in activities will not terminate instances below this boundary\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::InstanceGroupConfig ScalingRule": { + "Action": "The conditions that trigger an automatic scaling activity\\. \n*Required*: Yes \n*Type*: [ScalingAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A friendly, more verbose description of the automatic scaling rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name used to identify an automatic scaling rule\\. Rule names must be unique within a scaling policy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Trigger": "The CloudWatch alarm definition that determines when automatic scaling activity is triggered\\. \n*Required*: Yes \n*Type*: [ScalingTrigger](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingtrigger.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::InstanceGroupConfig ScalingTrigger": { + "CloudWatchAlarmDefinition": "The definition of a CloudWatch metric alarm\\. When the defined alarm conditions are met along with other trigger parameters, scaling activity begins\\. \n*Required*: Yes \n*Type*: [CloudWatchAlarmDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::InstanceGroupConfig SimpleScalingPolicyConfiguration": { + "AdjustmentType": "The way in which EC2 instances are added \\(if `ScalingAdjustment` is a positive number\\) or terminated \\(if `ScalingAdjustment` is a negative number\\) each time the scaling activity is triggered\\. `CHANGE_IN_CAPACITY` is the default\\. `CHANGE_IN_CAPACITY` indicates that the EC2 instance count increments or decrements by `ScalingAdjustment`, which should be expressed as an integer\\. `PERCENT_CHANGE_IN_CAPACITY` indicates the instance count increments or decrements by the percentage specified by `ScalingAdjustment`, which should be expressed as an integer\\. For example, 20 indicates an increase in 20% increments of cluster capacity\\. `EXACT_CAPACITY` indicates the scaling activity results in an instance group with the number of EC2 instances specified by `ScalingAdjustment`, which should be expressed as a positive integer\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CHANGE_IN_CAPACITY | EXACT_CAPACITY | PERCENT_CHANGE_IN_CAPACITY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CoolDown": "The amount of time, in seconds, after a scaling activity completes before any further trigger\\-related scaling activities can start\\. The default value is 0\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScalingAdjustment": "The amount by which to scale in or scale out, based on the specified `AdjustmentType`\\. A positive value adds to the instance group's EC2 instance count while a negative number removes instances\\. If `AdjustmentType` is set to `EXACT_CAPACITY`, the number should only be a positive integer\\. If `AdjustmentType` is set to `PERCENT_CHANGE_IN_CAPACITY`, the value should express the percentage as an integer\\. For example, \\-20 indicates a decrease in 20% increments of cluster capacity\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::InstanceGroupConfig VolumeSpecification": { + "Iops": "The number of I/O operations per second \\(IOPS\\) that the volume supports\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SizeInGB": "The volume size, in gibibytes \\(GiB\\)\\. This can be a number from 1 \\- 1024\\. If the volume type is EBS\\-optimized, the minimum value is 10\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VolumeType": "The volume type\\. Volume types supported are gp2, io1, and standard\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMR::SecurityConfiguration": { + "Name": "The name of the security configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecurityConfiguration": "The security configuration details in JSON format\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EMR::Step": { + "ActionOnFailure": "This specifies what action to take when the cluster step fails\\. Possible values are `CANCEL_AND_WAIT` and `CONTINUE`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "HadoopJarStep": "The `HadoopJarStepConfig` property type specifies a job flow step consisting of a JAR file whose main function will be executed\\. The main function submits a job for the cluster to execute as a step on the master node, and then waits for the job to finish or fail before executing subsequent steps\\. \n*Required*: Yes \n*Type*: [HadoopJarStepConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-hadoopjarstepconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "JobFlowId": "A string that uniquely identifies the cluster \\(job flow\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the cluster step\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EMR::Step HadoopJarStepConfig": { + "Args": "A list of command line arguments passed to the JAR file's main function when executed\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Jar": "A path to a JAR file run during the step\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MainClass": "The name of the main class in the specified Java file\\. If not specified, the JAR file should specify a Main\\-Class in its manifest file\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StepProperties": "A list of Java properties that are set when the step runs\\. You can use these properties to pass key value pairs to your main function\\. \n*Required*: No \n*Type*: List of [KeyValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-keyvalue.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EMR::Step KeyValue": { + "Key": "The unique identifier of a key\\-value pair\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Value": "The value part of the identified key\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EMR::Studio": { + "AuthMode": "Specifies whether the Studio authenticates users using AWS SSO or IAM\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `IAM | SSO` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DefaultS3Location": "The Amazon S3 location to back up EMR Studio Workspaces and notebook files\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A detailed description of the Amazon EMR Studio\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EngineSecurityGroupId": "The ID of the Amazon EMR Studio Engine security group\\. The Engine security group allows inbound network traffic from the Workspace security group, and it must be in the same VPC specified by `VpcId`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IdpAuthUrl": "Your identity provider's authentication endpoint\\. Amazon EMR Studio redirects federated users to this endpoint for authentication when logging in to a Studio with the Studio URL\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IdpRelayStateParameterName": "The name of your identity provider's `RelayState` parameter\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A descriptive name for the Amazon EMR Studio\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceRole": "The Amazon Resource Name \\(ARN\\) of the IAM role that will be assumed by the Amazon EMR Studio\\. The service role provides a way for Amazon EMR Studio to interoperate with other AWS services\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetIds": "A list of subnet IDs to associate with the Amazon EMR Studio\\. A Studio can have a maximum of 5 subnets\\. The subnets must belong to the VPC specified by `VpcId`\\. Studio users can create a Workspace in any of the specified subnets\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserRole": "The Amazon Resource Name \\(ARN\\) of the IAM user role that will be assumed by users and groups logged in to a Studio\\. The permissions attached to this IAM role can be scoped down for each user or group using session policies\\. You only need to specify `UserRole` when you set `AuthMode` to `SSO`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpcId": "The ID of the Amazon Virtual Private Cloud \\(Amazon VPC\\) to associate with the Studio\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "WorkspaceSecurityGroupId": "The ID of the Workspace security group associated with the Amazon EMR Studio\\. The Workspace security group allows outbound network traffic to resources in the Engine security group and to the internet\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EMR::StudioSessionMapping": { + "IdentityName": "The name of the user or group\\. For more information, see [UserName](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName) and [DisplayName](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName) in the *AWS SSO Identity Store API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IdentityType": "Specifies whether the identity to map to the Amazon EMR Studio is a user or a group\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GROUP | USER` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SessionPolicyArn": "The Amazon Resource Name \\(ARN\\) for the session policy that will be applied to the user or group\\. Session policies refine Studio user permissions without the need to use multiple IAM user roles\\. For more information, see [Create an EMR Studio user role with session policies](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-user-role.html) in the *Amazon EMR Management Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StudioId": "The ID of the Amazon EMR Studio to which the user or group will be mapped\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EMRContainers::VirtualCluster": { + "ContainerProvider": "The container provider of the virtual cluster\\. \n*Required*: Yes \n*Type*: [ContainerProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-containerprovider.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the virtual cluster\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EMRContainers::VirtualCluster ContainerInfo": { + "EksInfo": "The information about the EKS cluster\\. \n*Required*: Yes \n*Type*: [EksInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-eksinfo.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EMRContainers::VirtualCluster ContainerProvider": { + "Id": "The ID of the container cluster\\. \n*Minimum*: 1 \n*Maximum*: 100 \n*Pattern*: `^[0-9A-Za-z][A-Za-z0-9\\-_]*` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Info": "The information about the container cluster\\. \n*Required*: Yes \n*Type*: [ContainerInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-containerinfo.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "The type of the container provider\\. EKS is the only supported type as of now\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EKS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::EMRContainers::VirtualCluster EksInfo": { + "Namespace": "The namespaces of the EKS cluster\\. \n*Minimum*: 1 \n*Maximum*: 63 \n*Pattern*: `[a-z0-9]([-a-z0-9]*[a-z0-9])?` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ElastiCache::CacheCluster": { + "AZMode": "Specifies whether the nodes in this Memcached cluster are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region\\. \nThis parameter is only supported for Memcached clusters\\. \nIf the `AZMode` and `PreferredAvailabilityZones` are not specified, ElastiCache assumes `single-az` mode\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `cross-az | single-az` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "AutoMinorVersionUpgrade": "If you are running Redis engine version 6\\.0 or later, set this parameter to yes if you want to opt\\-in to the next minor version upgrade campaign\\. This parameter is disabled for previous versions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CacheNodeType": "The compute and memory capacity of the nodes in the node group \\(shard\\)\\. \nThe following node types are supported by ElastiCache\\. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts\\. Changing the CacheNodeType of a Memcached instance is currently not supported\\. If you need to scale using Memcached, we recommend forcing a replacement update by changing the `LogicalResourceId` of the resource\\. \n+ General purpose:\n + Current generation:", + "CacheParameterGroupName": "The name of the parameter group to associate with this cluster\\. If this argument is omitted, the default parameter group for the specified engine is used\\. You cannot use any parameter group which has `cluster-enabled='yes'` when creating a cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CacheSecurityGroupNames": "A list of security group names to associate with this cluster\\. \nUse this parameter only when you are creating a cluster outside of an Amazon Virtual Private Cloud \\(Amazon VPC\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CacheSubnetGroupName": "The name of the subnet group to be used for the cluster\\. \nUse this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud \\(Amazon VPC\\)\\. \nIf you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster\\. For more information, see [AWS::ElastiCache::SubnetGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-subnetgroup.html)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ClusterName": "A name for the cache cluster\\. If you don't specify a name, AWSCloudFormation generates a unique physical ID and uses that ID for the cache cluster\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nThe name must contain 1 to 50 alphanumeric characters or hyphens\\. The name must start with a letter and cannot end with a hyphen or contain two consecutive hyphens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Engine": "The name of the cache engine to be used for this cluster\\. \nValid values for this parameter are: `memcached` \\| `redis` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EngineVersion": "The version number of the cache engine to be used for this cluster\\. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation\\. \n **Important:** You can upgrade to a newer engine version \\(see [Selecting a Cache Engine and Version](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement)\\), but you cannot downgrade to an earlier engine version\\. If you want to use an earlier engine version, you must delete the existing cluster or replication group and create it anew with the earlier engine version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogDeliveryConfigurations": "Specifies the destination, format and type of the logs\\. \n*Required*: No \n*Type*: List of [LogDeliveryConfigurationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-logdeliveryconfigurationrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotificationTopicArn": "The Amazon Resource Name \\(ARN\\) of the Amazon Simple Notification Service \\(SNS\\) topic to which notifications are sent\\. \nThe Amazon SNS topic owner must be the same as the cluster owner\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumCacheNodes": "The number of cache nodes that the cache cluster should have\\. \nHowever, if the `PreferredAvailabilityZone` and `PreferredAvailabilityZones `properties were not previously specified and you don't specify any new values, an update requires [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "Port": "The port number on which each of the cache nodes accepts connections\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PreferredAvailabilityZone": "The EC2 Availability Zone in which the cluster is created\\. \nAll nodes belonging to this cluster are placed in the preferred Availability Zone\\. If you want to create your nodes across multiple Availability Zones, use `PreferredAvailabilityZones`\\. \nDefault: System chosen Availability Zone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "PreferredAvailabilityZones": "A list of the Availability Zones in which cache nodes are created\\. The order of the zones in the list is not important\\. \nThis option is only supported on Memcached\\. \nIf you are creating your cluster in an Amazon VPC \\(recommended\\) you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group\\. \nThe number of Availability Zones listed must equal the value of `NumCacheNodes`\\.\nIf you want all the nodes in the same Availability Zone, use `PreferredAvailabilityZone` instead, or repeat the Availability Zone multiple times in the list\\. \nDefault: System chosen Availability Zones\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "PreferredMaintenanceWindow": "Specifies the weekly time range during which maintenance on the cluster is performed\\. It is specified as a range in the format ddd:hh24:mi\\-ddd:hh24:mi \\(24H Clock UTC\\)\\. The minimum maintenance window is a 60 minute period\\. Valid values for `ddd` are: \nSpecifies the weekly time range during which maintenance on the cluster is performed\\. It is specified as a range in the format ddd:hh24:mi\\-ddd:hh24:mi \\(24H Clock UTC\\)\\. The minimum maintenance window is a 60 minute period\\. \nValid values for `ddd` are: \n+ `sun` \n+ `mon` \n+ `tue` \n+ `wed` \n+ `thu` \n+ `fri` \n+ `sat` \nExample: `sun:23:00-mon:01:30` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnapshotArns": "A single\\-element string list containing an Amazon Resource Name \\(ARN\\) that uniquely identifies a Redis RDB snapshot file stored in Amazon S3\\. The snapshot file is used to populate the node group \\(shard\\)\\. The Amazon S3 object name in the ARN cannot contain any commas\\. \nThis parameter is only valid if the `Engine` parameter is `redis`\\.\nExample of an Amazon S3 ARN: `arn:aws:s3:::my_bucket/snapshot1.rdb` \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SnapshotName": "The name of a Redis snapshot from which to restore data into the new node group \\(shard\\)\\. The snapshot status changes to `restoring` while the new node group \\(shard\\) is being created\\. \nThis parameter is only valid if the `Engine` parameter is `redis`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SnapshotRetentionLimit": "The number of days for which ElastiCache retains automatic snapshots before deleting them\\. For example, if you set `SnapshotRetentionLimit` to 5, a snapshot taken today is retained for 5 days before being deleted\\. \nThis parameter is only valid if the `Engine` parameter is `redis`\\.\nDefault: 0 \\(i\\.e\\., automatic backups are disabled for this cache cluster\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnapshotWindow": "The daily time range \\(in UTC\\) during which ElastiCache begins taking a daily snapshot of your node group \\(shard\\)\\. \nExample: `05:00-09:00` \nIf you do not specify this parameter, ElastiCache automatically chooses an appropriate time range\\. \nThis parameter is only valid if the `Engine` parameter is `redis`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A list of tags to be added to this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcSecurityGroupIds": "One or more VPC security groups associated with the cluster\\. \nUse this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud \\(Amazon VPC\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElastiCache::CacheCluster CloudWatchLogsDestinationDetails": { + "LogGroup": "The name of the CloudWatch Logs log group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElastiCache::CacheCluster DestinationDetails": { + "CloudWatchLogsDetails": "The configuration details of the CloudWatch Logs destination\\. Note that this field is marked as required but only if CloudWatch Logs was chosen as the destination\\. \n*Required*: No \n*Type*: [CloudWatchLogsDestinationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-cloudwatchlogsdestinationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KinesisFirehoseDetails": "The configuration details of the Kinesis Data Firehose destination\\. Note that this field is marked as required but only if Kinesis Data Firehose was chosen as the destination\\. \n*Required*: No \n*Type*: [KinesisFirehoseDestinationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-kinesisfirehosedestinationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElastiCache::CacheCluster KinesisFirehoseDestinationDetails": { + "DeliveryStream": "The name of the Kinesis Data Firehose delivery stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElastiCache::CacheCluster LogDeliveryConfigurationRequest": { + "DestinationDetails": "Configuration details of either a CloudWatch Logs destination or Kinesis Data Firehose destination\\. \n*Required*: Yes \n*Type*: [DestinationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-destinationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationType": "Specify either CloudWatch Logs or Kinesis Data Firehose as the destination type\\. Valid values are either `cloudwatch-logs` or `kinesis-firehose`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogFormat": "Valid values are either `json` or `text`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogType": "Valid value is either `slow-log`, which refers to [slow\\-log](https://redis.io/commands/slowlog) or `engine-log`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElastiCache::GlobalReplicationGroup": { + "AutomaticFailoverEnabled": "Specifies whether a read\\-only replica is automatically promoted to read/write primary if the existing primary fails\\. \n `AutomaticFailoverEnabled` must be enabled for Redis \\(cluster mode enabled\\) replication groups\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CacheNodeType": "The cache node type of the Global datastore \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CacheParameterGroupName": "The name of the cache parameter group to use with the Global datastore\\. It must be compatible with the major engine version used by the Global datastore\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EngineVersion": "The Elasticache Redis engine version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GlobalNodeGroupCount": "The number of node groups that comprise the Global Datastore\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GlobalReplicationGroupDescription": "The optional description of the Global datastore \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GlobalReplicationGroupIdSuffix": "The suffix name of a Global Datastore\\. The suffix guarantees uniqueness of the Global Datastore name across multiple regions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Members": "The replication groups that comprise the Global datastore\\. \n*Required*: Yes \n*Type*: List of [GlobalReplicationGroupMember](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-globalreplicationgroupmember.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegionalConfigurations": "The Amazon Regions that comprise the Global Datastore\\. \n*Required*: No \n*Type*: List of [RegionalConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-regionalconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElastiCache::GlobalReplicationGroup GlobalReplicationGroupMember": { + "ReplicationGroupId": "The replication group id of the Global datastore member\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReplicationGroupRegion": "The Amazon region of the Global datastore member\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Role": "Indicates the role of the replication group, `PRIMARY` or `SECONDARY`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElastiCache::GlobalReplicationGroup RegionalConfiguration": { + "ReplicationGroupId": "The name of the secondary cluster \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReplicationGroupRegion": "The Amazon region where the cluster is stored \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReshardingConfigurations": "A list of PreferredAvailabilityZones objects that specifies the configuration of a node group in the resharded cluster\\. \n*Required*: No \n*Type*: List of [ReshardingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-reshardingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElastiCache::GlobalReplicationGroup ReshardingConfiguration": { + "NodeGroupId": "Either the ElastiCache for Redis supplied 4\\-digit id or a user supplied id for the node group these configuration values apply to\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4` \n*Pattern*: `\\d+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreferredAvailabilityZones": "A list of preferred availability zones for the nodes in this cluster\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElastiCache::ParameterGroup": { + "CacheParameterGroupFamily": "The name of the cache parameter group family that this cache parameter group is compatible with\\. \nValid values are: `memcached1.4` \\| `memcached1.5` \\| `memcached1.6` \\| `redis2.6` \\| `redis2.8` \\| `redis3.2` \\| `redis4.0` \\| `redis5.0` \\| `redis6.x` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "The description for this cache parameter group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Properties": "A comma\\-delimited list of parameter name/value pairs\\. For more information, see [ModifyCacheParameterGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheParameterGroup.html) in the *Amazon ElastiCache API Reference Guide*\\. \nFor example:", + "Tags": "A tag that can be added to an ElastiCache parameter group\\. Tags are composed of a Key/Value pair\\. You can use tags to categorize and track all your parameter groups\\. A tag with a null Value is permitted\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElastiCache::ReplicationGroup": { + "AtRestEncryptionEnabled": "A flag that enables encryption at rest when set to `true`\\. \nYou cannot modify the value of `AtRestEncryptionEnabled` after the replication group is created\\. To enable encryption at rest on a replication group you must set `AtRestEncryptionEnabled` to `true` when you create the replication group\\. \n **Required:** Only available when creating a replication group in an Amazon VPC using redis version `3.2.6` or `4.x` onward\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AuthToken": "**Reserved parameter\\.** The password used to access a password protected server\\. \n `AuthToken` can be specified only on replication groups where `TransitEncryptionEnabled` is `true`\\. For more information, see [Authenticating Users with the Redis AUTH Command](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/auth.html)\\. \nFor HIPAA compliance, you must specify `TransitEncryptionEnabled` as `true`, an `AuthToken`, and a `CacheSubnetGroup`\\.\nPassword constraints: \n+ Must be only printable ASCII characters\\.\n+ Must be at least 16 characters and no more than 128 characters in length\\.\n+ Nonalphanumeric characters are restricted to \\(\\!, &, \\#, $, ^, <, >, \\-, \\)\\. \nFor more information, see [AUTH password](http://redis.io/commands/AUTH) at http://redis\\.io/commands/AUTH\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "AutoMinorVersionUpgrade": "If you are running Redis engine version 6\\.0 or later, set this parameter to yes if you want to opt\\-in to the next minor version upgrade campaign\\. This parameter is disabled for previous versions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutomaticFailoverEnabled": "Specifies whether a read\\-only replica is automatically promoted to read/write primary if the existing primary fails\\. \n `AutomaticFailoverEnabled` must be enabled for Redis \\(cluster mode enabled\\) replication groups\\. \nDefault: false \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CacheNodeType": "The compute and memory capacity of the nodes in the node group \\(shard\\)\\. \nThe following node types are supported by ElastiCache\\. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts\\. \n+ General purpose:\n + Current generation:", + "CacheParameterGroupName": "The name of the parameter group to associate with this replication group\\. If this argument is omitted, the default cache parameter group for the specified engine is used\\. \nIf you are running Redis version 3\\.2\\.4 or later, only one node group \\(shard\\), and want to use a default parameter group, we recommend that you specify the parameter group by name\\. \n+ To create a Redis \\(cluster mode disabled\\) replication group, use `CacheParameterGroupName=default.redis3.2`\\.\n+ To create a Redis \\(cluster mode enabled\\) replication group, use `CacheParameterGroupName=default.redis3.2.cluster.on`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CacheSecurityGroupNames": "A list of cache security group names to associate with this replication group\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CacheSubnetGroupName": "The name of the cache subnet group to be used for the replication group\\. \nIf you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster\\. For more information, see [AWS::ElastiCache::SubnetGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-subnetgroup.html)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DataTieringEnabled": "Enables data tiering\\. Data tiering is only supported for replication groups using the r6gd node type\\. This parameter must be set to true when using r6gd nodes\\. For more information, see [Data tiering](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/data-tiering.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Engine": "The name of the cache engine to be used for the clusters in this replication group\\. Must be Redis\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EngineVersion": "The version number of the cache engine to be used for the clusters in this replication group\\. To view the supported cache engine versions, use the `DescribeCacheEngineVersions` operation\\. \n **Important:** You can upgrade to a newer engine version \\(see [Selecting a Cache Engine and Version](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement)\\) in the *ElastiCache User Guide*, but you cannot downgrade to an earlier engine version\\. If you want to use an earlier engine version, you must delete the existing cluster or replication group and create it anew with the earlier engine version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GlobalReplicationGroupId": "The name of the Global datastore \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KmsKeyId": "The ID of the KMS key used to encrypt the disk on the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LogDeliveryConfigurations": "Specifies the destination, format and type of the logs\\. \n*Required*: No \n*Type*: List of [LogDeliveryConfigurationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-logdeliveryconfigurationrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MultiAZEnabled": "A flag indicating if you have Multi\\-AZ enabled to enhance fault tolerance\\. For more information, see [Minimizing Downtime: Multi\\-AZ](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NodeGroupConfiguration": "`NodeGroupConfiguration ` is a property of the `AWS::ElastiCache::ReplicationGroup` resource that configures an Amazon ElastiCache \\(ElastiCache\\) Redis cluster node group\\. \nIf you set [UseOnlineResharding](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-useonlineresharding) to `true`, you can update `NodeGroupConfiguration` without interruption\\. When `UseOnlineResharding` is set to `false`, or is not specified, updating `NodeGroupConfiguration` results in [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html) of [NodeGroupConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "NotificationTopicArn": "The Amazon Resource Name \\(ARN\\) of the Amazon Simple Notification Service \\(SNS\\) topic to which notifications are sent\\. \nThe Amazon SNS topic owner must be the same as the cluster owner\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumCacheClusters": "The number of clusters this replication group initially has\\. \nThis parameter is not used if there is more than one node group \\(shard\\)\\. You should use `ReplicasPerNodeGroup` instead\\. \nIf `AutomaticFailoverEnabled` is `true`, the value of this parameter must be at least 2\\. If `AutomaticFailoverEnabled` is `false` you can omit this parameter \\(it will default to 1\\), or you can explicitly set it to a value between 2 and 6\\. \nThe maximum permitted value for `NumCacheClusters` is 6 \\(1 primary plus 5 replicas\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumNodeGroups": "An optional parameter that specifies the number of node groups \\(shards\\) for this Redis \\(cluster mode enabled\\) replication group\\. For Redis \\(cluster mode disabled\\) either omit this parameter or set it to 1\\. \nIf you set [UseOnlineResharding](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-useonlineresharding) to `true`, you can update `NumNodeGroups` without interruption\\. When `UseOnlineResharding` is set to `false`, or is not specified, updating `NumNodeGroups` results in [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\. \nDefault: 1 \n*Required*: No \n*Type*: Integer \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "Port": "The port number on which each member of the replication group accepts connections\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PreferredCacheClusterAZs": "A list of EC2 Availability Zones in which the replication group's clusters are created\\. The order of the Availability Zones in the list is the order in which clusters are allocated\\. The primary cluster is created in the first AZ in the list\\. \nThis parameter is not used if there is more than one node group \\(shard\\)\\. You should use `NodeGroupConfiguration` instead\\. \nIf you are creating your replication group in an Amazon VPC \\(recommended\\), you can only locate clusters in Availability Zones associated with the subnets in the selected subnet group\\. \nThe number of Availability Zones listed must equal the value of `NumCacheClusters`\\.\nDefault: system chosen Availability Zones\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PreferredMaintenanceWindow": "Specifies the weekly time range during which maintenance on the cluster is performed\\. It is specified as a range in the format ddd:hh24:mi\\-ddd:hh24:mi \\(24H Clock UTC\\)\\. The minimum maintenance window is a 60 minute period\\. \nValid values for `ddd` are: \n+ `sun` \n+ `mon` \n+ `tue` \n+ `wed` \n+ `thu` \n+ `fri` \n+ `sat` \nExample: `sun:23:00-mon:01:30` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrimaryClusterId": "The identifier of the cluster that serves as the primary for this replication group\\. This cluster must already exist and have a status of `available`\\. \nThis parameter is not required if `NumCacheClusters`, `NumNodeGroups`, or `ReplicasPerNodeGroup` is specified\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReplicasPerNodeGroup": "An optional parameter that specifies the number of replica nodes in each node group \\(shard\\)\\. Valid values are 0 to 5\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ReplicationGroupDescription": "A user\\-created description for the replication group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReplicationGroupId": "The replication group identifier\\. This parameter is stored as a lowercase string\\. \nConstraints: \n+ A name must contain from 1 to 40 alphanumeric characters or hyphens\\.\n+ The first character must be a letter\\.\n+ A name cannot end with a hyphen or contain two consecutive hyphens\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecurityGroupIds": "One or more Amazon VPC security groups associated with this replication group\\. \nUse this parameter only when you are creating a replication group in an Amazon Virtual Private Cloud \\(Amazon VPC\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnapshotArns": "A list of Amazon Resource Names \\(ARN\\) that uniquely identify the Redis RDB snapshot files stored in Amazon S3\\. The snapshot files are used to populate the new replication group\\. The Amazon S3 object name in the ARN cannot contain any commas\\. The new replication group will have the number of node groups \\(console: shards\\) specified by the parameter *NumNodeGroups* or the number of node groups configured by *NodeGroupConfiguration* regardless of the number of ARNs specified here\\. \nExample of an Amazon S3 ARN: `arn:aws:s3:::my_bucket/snapshot1.rdb` \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SnapshotName": "The name of a snapshot from which to restore data into the new replication group\\. The snapshot status changes to `restoring` while the new replication group is being created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SnapshotRetentionLimit": "The number of days for which ElastiCache retains automatic snapshots before deleting them\\. For example, if you set `SnapshotRetentionLimit` to 5, a snapshot that was taken today is retained for 5 days before being deleted\\. \nDefault: 0 \\(i\\.e\\., automatic backups are disabled for this cluster\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnapshotWindow": "The daily time range \\(in UTC\\) during which ElastiCache begins taking a daily snapshot of your node group \\(shard\\)\\. \nExample: `05:00-09:00` \nIf you do not specify this parameter, ElastiCache automatically chooses an appropriate time range\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnapshottingClusterId": "The cluster ID that is used as the daily snapshot source for the replication group\\. This parameter cannot be set for Redis \\(cluster mode enabled\\) replication groups\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A list of tags to be added to this resource\\. Tags are comma\\-separated key,value pairs \\(e\\.g\\. Key=`myKey`, Value=`myKeyValue`\\. You can include multiple tags as shown following: Key=`myKey`, Value=`myKeyValue` Key=`mySecondKey`, Value=`mySecondKeyValue`\\. Tags on replication groups will be replicated to all nodes\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitEncryptionEnabled": "A flag that enables in\\-transit encryption when set to `true`\\. \nYou cannot modify the value of `TransitEncryptionEnabled` after the cluster is created\\. To enable in\\-transit encryption on a cluster you must set `TransitEncryptionEnabled` to `true` when you create a cluster\\. \nThis parameter is valid only if the `Engine` parameter is `redis`, the `EngineVersion` parameter is `3.2.6` or `4.x` onward, and the cluster is being created in an Amazon VPC\\. \nIf you enable in\\-transit encryption, you must also specify a value for `CacheSubnetGroup`\\. \n **Required:** Only available when creating a replication group in an Amazon VPC using redis version `3.2.6` or `4.x` onward\\. \nDefault: `false` \nFor HIPAA compliance, you must specify `TransitEncryptionEnabled` as `true`, an `AuthToken`, and a `CacheSubnetGroup`\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UserGroupIds": "The list of user groups to associate with the replication group\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElastiCache::ReplicationGroup CloudWatchLogsDestinationDetails": { + "LogGroup": "The name of the CloudWatch Logs log group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElastiCache::ReplicationGroup DestinationDetails": { + "CloudWatchLogsDetails": "The configuration details of the CloudWatch Logs destination\\. Note that this field is marked as required but only if CloudWatch Logs was chosen as the destination\\. \n*Required*: No \n*Type*: [CloudWatchLogsDestinationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-cloudwatchlogsdestinationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KinesisFirehoseDetails": "The configuration details of the Kinesis Data Firehose destination\\. Note that this field is marked as required but only if Kinesis Data Firehose was chosen as the destination\\. \n*Required*: No \n*Type*: [KinesisFirehoseDestinationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-kinesisfirehosedestinationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElastiCache::ReplicationGroup KinesisFirehoseDestinationDetails": { + "DeliveryStream": "The name of the Kinesis Data Firehose delivery stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElastiCache::ReplicationGroup LogDeliveryConfigurationRequest": { + "DestinationDetails": "Configuration details of either a CloudWatch Logs destination or Kinesis Data Firehose destination\\. \n*Required*: Yes \n*Type*: [DestinationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-destinationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationType": "Specify either CloudWatch Logs or Kinesis Data Firehose as the destination type\\. Valid values are either `cloudwatch-logs` or `kinesis-firehose`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogFormat": "Valid values are either `json` or `text`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogType": "Valid value is either `slow-log`, which refers to [slow\\-log](https://redis.io/commands/slowlog) or `engine-log`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElastiCache::ReplicationGroup NodeGroupConfiguration": { + "NodeGroupId": "Either the ElastiCache for Redis supplied 4\\-digit id or a user supplied id for the node group these configuration values apply to\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4` \n*Pattern*: `\\d+` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "PrimaryAvailabilityZone": "The Availability Zone where the primary node of this node group \\(shard\\) is launched\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ReplicaAvailabilityZones": "A list of Availability Zones to be used for the read replicas\\. The number of Availability Zones in this list must match the value of `ReplicaCount` or `ReplicasPerNodeGroup` if not specified\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ReplicaCount": "The number of read replica nodes in this node group \\(shard\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Slots": "A string of comma\\-separated values where the first set of values are the slot numbers \\(zero based\\), and the second set of values are the keyspaces for each slot\\. The following example specifies three slots \\(numbered 0, 1, and 2\\): ` 0,1,2,0-4999,5000-9999,10000-16,383`\\. \n If you don't specify a value, ElastiCache allocates keys equally among each slot\\. \nWhen you use an `UseOnlineResharding` update policy to update the number of node groups without interruption, ElastiCache evenly distributes the keyspaces between the specified number of slots\\. This cannot be updated later\\. Therefore, after updating the number of node groups in this way, you should remove the value specified for the `Slots` property of each `NodeGroupConfiguration` from the stack template, as it no longer reflects the actual values in each node group\\. For more information, see [UseOnlineResharding Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-useonlineresharding)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ElastiCache::SecurityGroup": { + "Description": "A description for the cache security group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A tag that can be added to an ElastiCache security group\\. Tags are composed of a Key/Value pair\\. You can use tags to categorize and track all your security groups\\. A tag with a null Value is permitted\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElastiCache::SecurityGroupIngress": { + "CacheSecurityGroupName": "The name of the Cache Security Group to authorize\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EC2SecurityGroupName": "Name of the EC2 Security Group to include in the authorization\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EC2SecurityGroupOwnerId": "Specifies the Amazon Account ID of the owner of the EC2 security group specified in the EC2SecurityGroupName property\\. The Amazon access key ID is not an acceptable value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElastiCache::SubnetGroup": { + "CacheSubnetGroupName": "The name for the cache subnet group\\. This value is stored as a lowercase string\\. \nConstraints: Must contain no more than 255 alphanumeric characters or hyphens\\. \nExample: `mysubnetgroup` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "The description for the cache subnet group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetIds": "The EC2 subnet IDs for the cache subnet group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A tag that can be added to an ElastiCache subnet group\\. Tags are composed of a Key/Value pair\\. You can use tags to categorize and track all your subnet groups\\. A tag with a null Value is permitted\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElastiCache::User": { + "AccessString": "Access permissions string used for this user\\. \n*Required*: No \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Engine": "The current supported value is redis\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-zA-Z]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NoPasswordRequired": "Indicates a password is not required for this user\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Passwords": "Passwords used for this user\\. You can create up to two passwords for each user\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserId": "The ID of the user\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Pattern*: `[a-zA-Z][a-zA-Z0-9\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UserName": "The username of the user\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ElastiCache::UserGroup": { + "Engine": "The current supported value is redis\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-zA-Z]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UserGroupId": "The ID of the user group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UserIds": "The list of user IDs that belong to the user group\\. A user named `default` must be included\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticBeanstalk::Application": { + "ApplicationName": "A name for the Elastic Beanstalk application\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the application name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "Your description of the application\\. \n*Required*: No \n*Type*: String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceLifecycleConfig": "Specifies an application resource lifecycle configuration to prevent your application from accumulating too many versions\\. \n*Required*: No \n*Type*: [ApplicationResourceLifecycleConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationresourcelifecycleconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticBeanstalk::Application ApplicationResourceLifecycleConfig": { + "ServiceRole": "The ARN of an IAM service role that Elastic Beanstalk has permission to assume\\. \nThe `ServiceRole` property is required the first time that you provide a `ResourceLifecycleConfig` for the application\\. After you provide it once, Elastic Beanstalk persists the Service Role with the application, and you don't need to specify it again\\. You can, however, specify it in subsequent updates to change the Service Role to another value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VersionLifecycleConfig": "Defines lifecycle settings for application versions\\. \n*Required*: No \n*Type*: [ApplicationVersionLifecycleConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationversionlifecycleconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticBeanstalk::Application ApplicationVersionLifecycleConfig": { + "MaxAgeRule": "Specify a max age rule to restrict the length of time that application versions are retained for an application\\. \n*Required*: No \n*Type*: [MaxAgeRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxagerule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxCountRule": "Specify a max count rule to restrict the number of application versions that are retained for an application\\. \n*Required*: No \n*Type*: [MaxCountRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxcountrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticBeanstalk::Application MaxAgeRule": { + "DeleteSourceFromS3": "Set to `true` to delete a version's source bundle from Amazon S3 when Elastic Beanstalk deletes the application version\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Specify `true` to apply the rule, or `false` to disable it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxAgeInDays": "Specify the number of days to retain an application versions\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticBeanstalk::Application MaxCountRule": { + "DeleteSourceFromS3": "Set to `true` to delete a version's source bundle from Amazon S3 when Elastic Beanstalk deletes the application version\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Specify `true` to apply the rule, or `false` to disable it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxCount": "Specify the maximum number of application versions to retain\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticBeanstalk::ApplicationVersion": { + "ApplicationName": "The name of the Elastic Beanstalk application that is associated with this application version\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "A description of this application version\\. \n*Required*: No \n*Type*: String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceBundle": "The Amazon S3 bucket and key that identify the location of the source bundle for this version\\. \nThe Amazon S3 bucket must be in the same region as the environment\\.\n*Required*: Yes \n*Type*: [SourceBundle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-sourcebundle.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ElasticBeanstalk::ApplicationVersion SourceBundle": { + "S3Bucket": "The Amazon S3 bucket where the data is located\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "S3Key": "The Amazon S3 key where the data is located\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ElasticBeanstalk::ConfigurationTemplate": { + "ApplicationName": "The name of the Elastic Beanstalk application to associate with this configuration template\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "An optional description for this configuration\\. \n*Required*: No \n*Type*: String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnvironmentId": "The ID of an environment whose settings you want to use to create the configuration template\\. You must specify `EnvironmentId` if you don't specify `PlatformArn`, `SolutionStackName`, or `SourceConfiguration`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OptionSettings": "Option values for the Elastic Beanstalk configuration, such as the instance type\\. If specified, these values override the values obtained from the solution stack or the source configuration template\\. For a complete list of Elastic Beanstalk configuration options, see [Option Values](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html) in the * AWS Elastic Beanstalk Developer Guide*\\. \n*Required*: No \n*Type*: List of [ConfigurationOptionSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PlatformArn": "The Amazon Resource Name \\(ARN\\) of the custom platform\\. For more information, see [ Custom Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html) in the * AWS Elastic Beanstalk Developer Guide*\\. \nIf you specify `PlatformArn`, then don't specify `SolutionStackName`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SolutionStackName": "The name of an Elastic Beanstalk solution stack \\(platform version\\) that this configuration uses\\. For example, `64bit Amazon Linux 2013.09 running Tomcat 7 Java 7`\\. A solution stack specifies the operating system, runtime, and application server for a configuration template\\. It also determines the set of configuration options as well as the possible and default values\\. For more information, see [Supported Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html) in the * AWS Elastic Beanstalk Developer Guide*\\. \nYou must specify `SolutionStackName` if you don't specify `PlatformArn`, `EnvironmentId`, or `SourceConfiguration`\\. \nUse the [https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ListAvailableSolutionStacks.html](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ListAvailableSolutionStacks.html) API to obtain a list of available solution stacks\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceConfiguration": "An Elastic Beanstalk configuration template to base this one on\\. If specified, Elastic Beanstalk uses the configuration values from the specified configuration template to create a new configuration\\. \nValues specified in `OptionSettings` override any values obtained from the `SourceConfiguration`\\. \nYou must specify `SourceConfiguration` if you don't specify `PlatformArn`, `EnvironmentId`, or `SolutionStackName`\\. \nConstraint: If both solution stack name and source configuration are specified, the solution stack of the source configuration template must match the specified solution stack name\\. \n*Required*: Conditional \n*Type*: [SourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-sourceconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ElasticBeanstalk::ConfigurationTemplate ConfigurationOptionSetting": { + "Namespace": "A unique namespace that identifies the option's associated AWS resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OptionName": "The name of the configuration option\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceName": "A unique resource name for the option setting\\. Use it for a time\u2013based scaling configuration option\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The current value for the configuration option\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticBeanstalk::ConfigurationTemplate SourceConfiguration": { + "ApplicationName": "The name of the application associated with the configuration\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TemplateName": "The name of the configuration template\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ElasticBeanstalk::Environment": { + "ApplicationName": "The name of the application that is associated with this environment\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CNAMEPrefix": "If specified, the environment attempts to use this value as the prefix for the CNAME in your Elastic Beanstalk environment URL\\. If not specified, the CNAME is generated automatically by appending a random alphanumeric string to the environment name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `63` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "Your description for this environment\\. \n*Required*: No \n*Type*: String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnvironmentName": "A unique name for the environment\\. \nConstraint: Must be from 4 to 40 characters in length\\. The name can contain only letters, numbers, and hyphens\\. It can't start or end with a hyphen\\. This name must be unique within a region in your account\\. \nIf you don't specify the `CNAMEPrefix` parameter, the environment name becomes part of the CNAME, and therefore part of the visible URL for your application\\. \nIf you don't specify an environment name, AWS CloudFormation generates a unique physical ID and uses that ID for the environment name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `40` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OperationsRole": "The operations role feature of AWS Elastic Beanstalk is in beta release and is subject to change\\.\nThe Amazon Resource Name \\(ARN\\) of an existing IAM role to be used as the environment's operations role\\. If specified, Elastic Beanstalk uses the operations role for permissions to downstream services during this call and during subsequent calls acting on this environment\\. To specify an operations role, you must have the `iam:PassRole` permission for the role\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OptionSettings": "Key\\-value pairs defining configuration options for this environment, such as the instance type\\. These options override the values that are defined in the solution stack or the [configuration template](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-beanstalk-configurationtemplate.html)\\. If you remove any options during a stack update, the removed options retain their current values\\. \n*Required*: No \n*Type*: List of [OptionSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-environment-optionsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PlatformArn": "The Amazon Resource Name \\(ARN\\) of the custom platform to use with the environment\\. For more information, see [Custom Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html) in the * AWS Elastic Beanstalk Developer Guide*\\. \nIf you specify `PlatformArn`, don't specify `SolutionStackName`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SolutionStackName": "The name of an Elastic Beanstalk solution stack \\(platform version\\) to use with the environment\\. If specified, Elastic Beanstalk sets the configuration values to the default values associated with the specified solution stack\\. For a list of current solution stacks, see [Elastic Beanstalk Supported Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html) in the * AWS Elastic Beanstalk Platforms* guide\\. \nIf you specify `SolutionStackName`, don't specify `PlatformArn` or `TemplateName`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Specifies the tags applied to resources in the environment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateName": "The name of the Elastic Beanstalk configuration template to use with the environment\\. \nIf you specify `TemplateName`, then don't specify `SolutionStackName`\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tier": "Specifies the tier to use in creating this environment\\. The environment tier that you choose determines whether Elastic Beanstalk provisions resources to support a web application that handles HTTP\\(S\\) requests or a web application that handles background\\-processing tasks\\. \n*Required*: No \n*Type*: [Tier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-environment-tier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VersionLabel": "The name of the application version to deploy\\. \nDefault: If not specified, Elastic Beanstalk attempts to deploy the sample application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticBeanstalk::Environment OptionSetting": { + "Namespace": "A unique namespace that identifies the option's associated AWS resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OptionName": "The name of the configuration option\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceName": "A unique resource name for the option setting\\. Use it for a time\u2013based scaling configuration option\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The current value for the configuration option\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticBeanstalk::Environment Tier": { + "Name": "The name of this environment tier\\. \nValid values: \n+ For *Web server tier* \u2013 `WebServer` \n+ For *Worker tier* \u2013 `Worker` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "The type of this environment tier\\. \nValid values: \n+ For *Web server tier* \u2013 `Standard` \n+ For *Worker tier* \u2013 `SQS/HTTP` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Version": "The version of this environment tier\\. When you don't set a value to it, Elastic Beanstalk uses the latest compatible worker tier version\\. \nThis member is deprecated\\. Any specific version that you set may become out of date\\. We recommend leaving it unspecified\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancing::LoadBalancer": { + "AccessLoggingPolicy": "Information about where and how access logs are stored for the load balancer\\. \n*Required*: No \n*Type*: [AccessLoggingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-accessloggingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AppCookieStickinessPolicy": "Information about a policy for application\\-controlled session stickiness\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-AppCookieStickinessPolicy.html) of [AppCookieStickinessPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-AppCookieStickinessPolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AvailabilityZones": "The Availability Zones for the load balancer\\. For load balancers in a VPC, specify `Subnets` instead\\. \nUpdate requires replacement if you did not previously specify an Availability Zone or if you are removing all Availability Zones\\. Otherwise, update requires no interruption\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "ConnectionDrainingPolicy": "If enabled, the load balancer allows existing requests to complete before the load balancer shifts traffic away from a deregistered or unhealthy instance\\. \nFor more information, see [Configure Connection Draining](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-conn-drain.html) in the *Classic Load Balancers Guide*\\. \n*Required*: No \n*Type*: [ConnectionDrainingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectiondrainingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectionSettings": "If enabled, the load balancer allows the connections to remain idle \\(no data is sent over the connection\\) for the specified duration\\. \nBy default, Elastic Load Balancing maintains a 60\\-second idle connection timeout for both front\\-end and back\\-end connections of your load balancer\\. For more information, see [Configure Idle Connection Timeout](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html) in the *Classic Load Balancers Guide*\\. \n*Required*: No \n*Type*: [ConnectionSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectionsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CrossZone": "If enabled, the load balancer routes the request traffic evenly across all instances regardless of the Availability Zones\\. \nFor more information, see [Configure Cross\\-Zone Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-crosszone-lb.html) in the *Classic Load Balancers Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthCheck": "The health check settings to use when evaluating the health of your EC2 instances\\. \nUpdate requires replacement if you did not previously specify health check settings or if you are removing the health check settings\\. Otherwise, update requires no interruption\\. \n*Required*: No \n*Type*: [HealthCheck](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-health-check.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "Instances": "The IDs of the instances for the load balancer\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LBCookieStickinessPolicy": "Information about a policy for duration\\-based session stickiness\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-LBCookieStickinessPolicy.html) of [LBCookieStickinessPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-LBCookieStickinessPolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Listeners": "The listeners for the load balancer\\. You can specify at most one listener per port\\. \nIf you update the properties for a listener, AWS CloudFormation deletes the existing listener and creates a new one with the specified properties\\. While the new listener is being created, clients cannot connect to the load balancer\\. \n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html) of [Listeners](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoadBalancerName": "The name of the load balancer\\. This name must be unique within your set of load balancers for the region\\. \nIf you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates\\. To replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Policies": "The policies defined for your Classic Load Balancer\\. Specify only back\\-end server policies\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-policy.html) of [Policies](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-policy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scheme": "The type of load balancer\\. Valid only for load balancers in a VPC\\. \nIf `Scheme` is `internet-facing`, the load balancer has a public DNS name that resolves to a public IP address\\. \nIf `Scheme` is `internal`, the load balancer has a public DNS name that resolves to a private IP address\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecurityGroups": "The security groups for the load balancer\\. Valid only for load balancers in a VPC\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Subnets": "The IDs of the subnets for the load balancer\\. You can specify at most one subnet per Availability Zone\\. \nUpdate requires replacement if you did not previously specify a subnet or if you are removing all subnets\\. Otherwise, update requires no interruption\\. To update to a different subnet in the current Availability Zone, you must first update to a subnet in a different Availability Zone, then update to the new subnet in the original Availability Zone\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "Tags": "The tags associated with a load balancer\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancing::LoadBalancer AccessLoggingPolicy": { + "EmitInterval": "The interval for publishing the access logs\\. You can specify an interval of either 5 minutes or 60 minutes\\. \nDefault: 60 minutes \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Specifies whether access logs are enabled for the load balancer\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3BucketName": "The name of the Amazon S3 bucket where the access logs are stored\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3BucketPrefix": "The logical hierarchy you created for your Amazon S3 bucket, for example `my-bucket-prefix/prod`\\. If the prefix is not provided, the log is placed at the root level of the bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancing::LoadBalancer AppCookieStickinessPolicy": { + "CookieName": "The name of the application cookie used for stickiness\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PolicyName": "The mnemonic name for the policy being created\\. The name must be unique within a set of policies for this load balancer\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancing::LoadBalancer ConnectionDrainingPolicy": { + "Enabled": "Specifies whether connection draining is enabled for the load balancer\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Timeout": "The maximum time, in seconds, to keep the existing connections open before deregistering the instances\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancing::LoadBalancer ConnectionSettings": { + "IdleTimeout": "The time, in seconds, that the connection is allowed to be idle \\(no data has been sent over the connection\\) before it is closed by the load balancer\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `3600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancing::LoadBalancer HealthCheck": { + "HealthyThreshold": "The number of consecutive health checks successes required before moving the instance to the `Healthy` state\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Interval": "The approximate interval, in seconds, between health checks of an individual instance\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `5` \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Target": "The instance being checked\\. The protocol is either TCP, HTTP, HTTPS, or SSL\\. The range of valid ports is one \\(1\\) through 65535\\. \nTCP is the default, specified as a TCP: port pair, for example \"TCP:5000\"\\. In this case, a health check simply attempts to open a TCP connection to the instance on the specified port\\. Failure to connect within the configured timeout is considered unhealthy\\. \nSSL is also specified as SSL: port pair, for example, SSL:5000\\. \nFor HTTP/HTTPS, you must include a ping path in the string\\. HTTP is specified as a HTTP:port;/;PathToPing; grouping, for example \"HTTP:80/weather/us/wa/seattle\"\\. In this case, a HTTP GET request is issued to the instance on the given port and path\\. Any answer other than \"200 OK\" within the timeout period is considered unhealthy\\. \nThe total length of the HTTP ping target must be 1024 16\\-bit Unicode characters or less\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Timeout": "The amount of time, in seconds, during which no response means a failed health check\\. \nThis value must be less than the `Interval` value\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `60` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UnhealthyThreshold": "The number of consecutive health check failures required before moving the instance to the `Unhealthy` state\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancing::LoadBalancer LBCookieStickinessPolicy": { + "CookieExpirationPeriod": "The time period, in seconds, after which the cookie should be considered stale\\. If this parameter is not specified, the stickiness session lasts for the duration of the browser session\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PolicyName": "The name of the policy\\. This name must be unique within the set of policies for this load balancer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancing::LoadBalancer Listeners": { + "InstancePort": "The port on which the instance is listening\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "InstanceProtocol": "The protocol to use for routing traffic to instances: HTTP, HTTPS, TCP, or SSL\\. \nIf the front\\-end protocol is TCP or SSL, the back\\-end protocol must be TCP or SSL\\. If the front\\-end protocol is HTTP or HTTPS, the back\\-end protocol must be HTTP or HTTPS\\. \nIf there is another listener with the same `InstancePort` whose `InstanceProtocol` is secure, \\(HTTPS or SSL\\), the listener's `InstanceProtocol` must also be secure\\. \nIf there is another listener with the same `InstancePort` whose `InstanceProtocol` is HTTP or TCP, the listener's `InstanceProtocol` must be HTTP or TCP\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "LoadBalancerPort": "The port on which the load balancer is listening\\. On EC2\\-VPC, you can specify any port from the range 1\\-65535\\. On EC2\\-Classic, you can specify any port from the following list: 25, 80, 443, 465, 587, 1024\\-65535\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "PolicyNames": "The names of the policies to associate with the listener\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "Protocol": "The load balancer transport protocol to use for routing: HTTP, HTTPS, TCP, or SSL\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "SSLCertificateId": "The Amazon Resource Name \\(ARN\\) of the server certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)" + }, + "AWS::ElasticLoadBalancing::LoadBalancer Policies": { + "Attributes": "The policy attributes\\. \n*Required*: Yes \n*Type*: List of Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstancePorts": "The instance ports for the policy\\. Required only for some policy types\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoadBalancerPorts": "The load balancer ports for the policy\\. Required only for some policy types\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PolicyName": "The name of the policy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PolicyType": "The name of the policy type\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::Listener": { + "AlpnPolicy": "\\[TLS listener\\] The name of the Application\\-Layer Protocol Negotiation \\(ALPN\\) policy\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Certificates": "The default SSL server certificate for a secure listener\\. You must provide exactly one certificate if the listener protocol is HTTPS or TLS\\. \nTo create a certificate list for a secure listener, use [AWS::ElasticLoadBalancingV2::ListenerCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html)\\. \n*Required*: Conditional \n*Type*: List of [Certificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-certificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultActions": "The actions for the default rule\\. You cannot define a condition for a default rule\\. \nTo create additional rules for an Application Load Balancer, use [AWS::ElasticLoadBalancingV2::ListenerRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html)\\. \n*Required*: Yes \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoadBalancerArn": "The Amazon Resource Name \\(ARN\\) of the load balancer\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Port": "The port on which the load balancer is listening\\. You cannot specify a port for a Gateway Load Balancer\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "The protocol for connections from clients to the load balancer\\. For Application Load Balancers, the supported protocols are HTTP and HTTPS\\. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP\\_UDP\\. You can\u2019t specify the UDP or TCP\\_UDP protocol if dual\\-stack mode is enabled\\. You cannot specify a protocol for a Gateway Load Balancer\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GENEVE | HTTP | HTTPS | TCP | TCP_UDP | TLS | UDP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SslPolicy": "\\[HTTPS and TLS listeners\\] The security policy that defines which protocols and ciphers are supported\\. \nFor more information, see [Security policies](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies) in the *Application Load Balancers Guide* and [Security policies](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies) in the *Network Load Balancers Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::Listener Action": { + "AuthenticateCognitoConfig": "\\[HTTPS listeners\\] Information for using Amazon Cognito to authenticate users\\. Specify only when `Type` is `authenticate-cognito`\\. \n*Required*: No \n*Type*: [AuthenticateCognitoConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticatecognitoconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthenticateOidcConfig": "\\[HTTPS listeners\\] Information about an identity provider that is compliant with OpenID Connect \\(OIDC\\)\\. Specify only when `Type` is `authenticate-oidc`\\. \n*Required*: No \n*Type*: [AuthenticateOidcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticateoidcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FixedResponseConfig": "\\[Application Load Balancer\\] Information for creating an action that returns a custom HTTP response\\. Specify only when `Type` is `fixed-response`\\. \n*Required*: No \n*Type*: [FixedResponseConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-fixedresponseconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ForwardConfig": "Information for creating an action that distributes requests among one or more target groups\\. For Network Load Balancers, you can specify a single target group\\. Specify only when `Type` is `forward`\\. If you specify both `ForwardConfig` and `TargetGroupArn`, you can specify only one target group using `ForwardConfig` and it must be the same target group specified in `TargetGroupArn`\\. \n*Required*: No \n*Type*: [ForwardConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-forwardconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Order": "The order for the action\\. This value is required for rules with multiple actions\\. The action with the lowest value for order is performed first\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `50000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RedirectConfig": "\\[Application Load Balancer\\] Information for creating a redirect action\\. Specify only when `Type` is `redirect`\\. \n*Required*: No \n*Type*: [RedirectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-redirectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetGroupArn": "The Amazon Resource Name \\(ARN\\) of the target group\\. Specify only when `Type` is `forward` and you want to route to a single target group\\. To route to one or more target groups, use `ForwardConfig` instead\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of action\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `authenticate-cognito | authenticate-oidc | fixed-response | forward | redirect` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::Listener AuthenticateCognitoConfig": { + "AuthenticationRequestExtraParams": "The query parameters \\(up to 10\\) to include in the redirect request to the authorization endpoint\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OnUnauthenticatedRequest": "The behavior if the user is not authenticated\\. The following are possible values: \n+ deny`` \\- Return an HTTP 401 Unauthorized error\\.\n+ allow`` \\- Allow the request to be forwarded to the target\\.\n+ authenticate`` \\- Redirect the request to the IdP authorization endpoint\\. This is the default value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `allow | authenticate | deny` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scope": "The set of user claims to be requested from the IdP\\. The default is `openid`\\. \nTo verify which scope values your IdP supports and how to separate multiple values, see the documentation for your IdP\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SessionCookieName": "The name of the cookie used to maintain session information\\. The default is AWSELBAuthSessionCookie\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SessionTimeout": "The maximum duration of the authentication session, in seconds\\. The default is 604800 seconds \\(7 days\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserPoolArn": "The Amazon Resource Name \\(ARN\\) of the Amazon Cognito user pool\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserPoolClientId": "The ID of the Amazon Cognito user pool client\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserPoolDomain": "The domain prefix or fully\\-qualified domain name of the Amazon Cognito user pool\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::Listener AuthenticateOidcConfig": { + "AuthenticationRequestExtraParams": "The query parameters \\(up to 10\\) to include in the redirect request to the authorization endpoint\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthorizationEndpoint": "The authorization endpoint of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientId": "The OAuth 2\\.0 client identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientSecret": "The OAuth 2\\.0 client secret\\. This parameter is required if you are creating a rule\\. If you are modifying a rule, you can omit this parameter if you set `UseExistingClientSecret` to true\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Issuer": "The OIDC issuer identifier of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OnUnauthenticatedRequest": "The behavior if the user is not authenticated\\. The following are possible values: \n+ deny`` \\- Return an HTTP 401 Unauthorized error\\.\n+ allow`` \\- Allow the request to be forwarded to the target\\.\n+ authenticate`` \\- Redirect the request to the IdP authorization endpoint\\. This is the default value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `allow | authenticate | deny` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scope": "The set of user claims to be requested from the IdP\\. The default is `openid`\\. \nTo verify which scope values your IdP supports and how to separate multiple values, see the documentation for your IdP\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SessionCookieName": "The name of the cookie used to maintain session information\\. The default is AWSELBAuthSessionCookie\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SessionTimeout": "The maximum duration of the authentication session, in seconds\\. The default is 604800 seconds \\(7 days\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TokenEndpoint": "The token endpoint of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserInfoEndpoint": "The user info endpoint of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::Listener Certificate": { + "CertificateArn": "The Amazon Resource Name \\(ARN\\) of the certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::Listener FixedResponseConfig": { + "ContentType": "The content type\\. \nValid Values: text/plain \\| text/css \\| text/html \\| application/javascript \\| application/json \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MessageBody": "The message\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatusCode": "The HTTP response code \\(2XX, 4XX, or 5XX\\)\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^(2|4|5)\\d\\d$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::Listener ForwardConfig": { + "TargetGroupStickinessConfig": "Information about the target group stickiness for a rule\\. \n*Required*: No \n*Type*: [TargetGroupStickinessConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-targetgroupstickinessconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetGroups": "Information about how traffic will be distributed between multiple target groups in a forward rule\\. \n*Required*: No \n*Type*: List of [TargetGroupTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-targetgrouptuple.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::Listener RedirectConfig": { + "Host": "The hostname\\. This component is not percent\\-encoded\\. The hostname can contain \\#\\{host\\}\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Path": "The absolute path, starting with the leading \"/\"\\. This component is not percent\\-encoded\\. The path can contain \\#\\{host\\}, \\#\\{path\\}, and \\#\\{port\\}\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "The port\\. You can specify a value from 1 to 65535 or \\#\\{port\\}\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "The protocol\\. You can specify HTTP, HTTPS, or \\#\\{protocol\\}\\. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS\\. You cannot redirect HTTPS to HTTP\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^(HTTPS?|#\\{protocol\\})$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Query": "The query parameters, URL\\-encoded when necessary, but not percent\\-encoded\\. Do not include the leading \"?\", as it is automatically added\\. You can specify any of the reserved keywords\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatusCode": "The HTTP redirect code\\. The redirect is either permanent \\(HTTP 301\\) or temporary \\(HTTP 302\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `HTTP_301 | HTTP_302` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::Listener TargetGroupStickinessConfig": { + "DurationSeconds": "The time period, in seconds, during which requests from a client should be routed to the same target group\\. The range is 1\\-604800 seconds \\(7 days\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Indicates whether target group stickiness is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::Listener TargetGroupTuple": { + "TargetGroupArn": "The Amazon Resource Name \\(ARN\\) of the target group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Weight": "The weight\\. The range is 0 to 999\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::ListenerCertificate": { + "Certificates": "The certificate\\. You can specify one certificate per resource\\. \n*Required*: Yes \n*Type*: List of [Certificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-certificates.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ListenerArn": "The Amazon Resource Name \\(ARN\\) of the listener\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ElasticLoadBalancingV2::ListenerCertificate Certificate": { + "CertificateArn": "The Amazon Resource Name \\(ARN\\) of the certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule": { + "Actions": "The actions\\. \nThe rule must include exactly one of the following types of actions: `forward`, `fixed-response`, or `redirect`, and it must be the last action to be performed\\. If the rule is for an HTTPS listener, it can also optionally include an authentication action\\. \n*Required*: Yes \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Conditions": "The conditions\\. \nThe rule can optionally include up to one of each of the following conditions: `http-request-method`, `host-header`, `path-pattern`, and `source-ip`\\. A rule can also optionally include one or more of each of the following conditions: `http-header` and `query-string`\\. \n*Required*: Yes \n*Type*: List of [RuleCondition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-rulecondition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ListenerArn": "The Amazon Resource Name \\(ARN\\) of the listener\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Priority": "The rule priority\\. A listener can't have multiple rules with the same priority\\. \nIf you try to reorder rules by updating their priorities, do not specify a new priority if an existing rule already uses this priority, as this can cause an error\\. If you need to reuse a priority with a different rule, you must remove it as a priority first, and then specify it in a subsequent update\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `50000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule Action": { + "AuthenticateCognitoConfig": "\\[HTTPS listeners\\] Information for using Amazon Cognito to authenticate users\\. Specify only when `Type` is `authenticate-cognito`\\. \n*Required*: No \n*Type*: [AuthenticateCognitoConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticatecognitoconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthenticateOidcConfig": "\\[HTTPS listeners\\] Information about an identity provider that is compliant with OpenID Connect \\(OIDC\\)\\. Specify only when `Type` is `authenticate-oidc`\\. \n*Required*: No \n*Type*: [AuthenticateOidcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticateoidcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FixedResponseConfig": "\\[Application Load Balancer\\] Information for creating an action that returns a custom HTTP response\\. Specify only when `Type` is `fixed-response`\\. \n*Required*: No \n*Type*: [FixedResponseConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-fixedresponseconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ForwardConfig": "Information for creating an action that distributes requests among one or more target groups\\. For Network Load Balancers, you can specify a single target group\\. Specify only when `Type` is `forward`\\. If you specify both `ForwardConfig` and `TargetGroupArn`, you can specify only one target group using `ForwardConfig` and it must be the same target group specified in `TargetGroupArn`\\. \n*Required*: No \n*Type*: [ForwardConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-forwardconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Order": "The order for the action\\. This value is required for rules with multiple actions\\. The action with the lowest value for order is performed first\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `50000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RedirectConfig": "\\[Application Load Balancer\\] Information for creating a redirect action\\. Specify only when `Type` is `redirect`\\. \n*Required*: No \n*Type*: [RedirectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-redirectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetGroupArn": "The Amazon Resource Name \\(ARN\\) of the target group\\. Specify only when `Type` is `forward` and you want to route to a single target group\\. To route to one or more target groups, use `ForwardConfig` instead\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of action\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `authenticate-cognito | authenticate-oidc | fixed-response | forward | redirect` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule AuthenticateCognitoConfig": { + "AuthenticationRequestExtraParams": "The query parameters \\(up to 10\\) to include in the redirect request to the authorization endpoint\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OnUnauthenticatedRequest": "The behavior if the user is not authenticated\\. The following are possible values: \n+ deny`` \\- Return an HTTP 401 Unauthorized error\\.\n+ allow`` \\- Allow the request to be forwarded to the target\\.\n+ authenticate`` \\- Redirect the request to the IdP authorization endpoint\\. This is the default value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `allow | authenticate | deny` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scope": "The set of user claims to be requested from the IdP\\. The default is `openid`\\. \nTo verify which scope values your IdP supports and how to separate multiple values, see the documentation for your IdP\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SessionCookieName": "The name of the cookie used to maintain session information\\. The default is AWSELBAuthSessionCookie\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SessionTimeout": "The maximum duration of the authentication session, in seconds\\. The default is 604800 seconds \\(7 days\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserPoolArn": "The Amazon Resource Name \\(ARN\\) of the Amazon Cognito user pool\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserPoolClientId": "The ID of the Amazon Cognito user pool client\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserPoolDomain": "The domain prefix or fully\\-qualified domain name of the Amazon Cognito user pool\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule AuthenticateOidcConfig": { + "AuthenticationRequestExtraParams": "The query parameters \\(up to 10\\) to include in the redirect request to the authorization endpoint\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthorizationEndpoint": "The authorization endpoint of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientId": "The OAuth 2\\.0 client identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientSecret": "The OAuth 2\\.0 client secret\\. This parameter is required if you are creating a rule\\. If you are modifying a rule, you can omit this parameter if you set `UseExistingClientSecret` to true\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Issuer": "The OIDC issuer identifier of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OnUnauthenticatedRequest": "The behavior if the user is not authenticated\\. The following are possible values: \n+ deny`` \\- Return an HTTP 401 Unauthorized error\\.\n+ allow`` \\- Allow the request to be forwarded to the target\\.\n+ authenticate`` \\- Redirect the request to the IdP authorization endpoint\\. This is the default value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `allow | authenticate | deny` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scope": "The set of user claims to be requested from the IdP\\. The default is `openid`\\. \nTo verify which scope values your IdP supports and how to separate multiple values, see the documentation for your IdP\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SessionCookieName": "The name of the cookie used to maintain session information\\. The default is AWSELBAuthSessionCookie\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SessionTimeout": "The maximum duration of the authentication session, in seconds\\. The default is 604800 seconds \\(7 days\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TokenEndpoint": "The token endpoint of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UseExistingClientSecret": "Indicates whether to use the existing client secret when modifying a rule\\. If you are creating a rule, you can omit this parameter or set it to false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserInfoEndpoint": "The user info endpoint of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule FixedResponseConfig": { + "ContentType": "The content type\\. \nValid Values: text/plain \\| text/css \\| text/html \\| application/javascript \\| application/json \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MessageBody": "The message\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatusCode": "The HTTP response code \\(2XX, 4XX, or 5XX\\)\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^(2|4|5)\\d\\d$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule ForwardConfig": { + "TargetGroupStickinessConfig": "Information about the target group stickiness for a rule\\. \n*Required*: No \n*Type*: [TargetGroupStickinessConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-targetgroupstickinessconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetGroups": "Information about how traffic will be distributed between multiple target groups in a forward rule\\. \n*Required*: No \n*Type*: List of [TargetGroupTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-targetgrouptuple.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule HostHeaderConfig": { + "Values": "One or more host names\\. The maximum size of each name is 128 characters\\. The comparison is case insensitive\\. The following wildcard characters are supported: \\* \\(matches 0 or more characters\\) and ? \\(matches exactly 1 character\\)\\. \nIf you specify multiple strings, the condition is satisfied if one of the strings matches the host name\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule HttpHeaderConfig": { + "HttpHeaderName": "The name of the HTTP header field\\. The maximum size is 40 characters\\. The header name is case insensitive\\. The allowed characters are specified by RFC 7230\\. Wildcards are not supported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "One or more strings to compare against the value of the HTTP header\\. The maximum size of each string is 128 characters\\. The comparison strings are case insensitive\\. The following wildcard characters are supported: \\* \\(matches 0 or more characters\\) and ? \\(matches exactly 1 character\\)\\. \nIf the same header appears multiple times in the request, we search them in order until a match is found\\. \nIf you specify multiple strings, the condition is satisfied if one of the strings matches the value of the HTTP header\\. To require that all of the strings are a match, create one condition per string\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule HttpRequestMethodConfig": { + "Values": "The name of the request method\\. The maximum size is 40 characters\\. The allowed characters are A\\-Z, hyphen \\(\\-\\), and underscore \\(\\_\\)\\. The comparison is case sensitive\\. Wildcards are not supported; therefore, the method name must be an exact match\\. \nIf you specify multiple strings, the condition is satisfied if one of the strings matches the HTTP request method\\. We recommend that you route GET and HEAD requests in the same way, because the response to a HEAD request may be cached\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule PathPatternConfig": { + "Values": "One or more path patterns to compare against the request URL\\. The maximum size of each string is 128 characters\\. The comparison is case sensitive\\. The following wildcard characters are supported: \\* \\(matches 0 or more characters\\) and ? \\(matches exactly 1 character\\)\\. \nIf you specify multiple strings, the condition is satisfied if one of them matches the request URL\\. The path pattern is compared only to the path of the URL, not to its query string\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule QueryStringConfig": { + "Values": "One or more key/value pairs or values to find in the query string\\. The maximum size of each string is 128 characters\\. The comparison is case insensitive\\. The following wildcard characters are supported: \\* \\(matches 0 or more characters\\) and ? \\(matches exactly 1 character\\)\\. To search for a literal '\\*' or '?' character in a query string, you must escape these characters in `Values` using a '\\\\' character\\. \nIf you specify multiple key/value pairs or values, the condition is satisfied if one of them is found in the query string\\. \n*Required*: No \n*Type*: List of [QueryStringKeyValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-querystringkeyvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule QueryStringKeyValue": { + "Key": "The key\\. You can omit the key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule RedirectConfig": { + "Host": "The hostname\\. This component is not percent\\-encoded\\. The hostname can contain \\#\\{host\\}\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Path": "The absolute path, starting with the leading \"/\"\\. This component is not percent\\-encoded\\. The path can contain \\#\\{host\\}, \\#\\{path\\}, and \\#\\{port\\}\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "The port\\. You can specify a value from 1 to 65535 or \\#\\{port\\}\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "The protocol\\. You can specify HTTP, HTTPS, or \\#\\{protocol\\}\\. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS\\. You cannot redirect HTTPS to HTTP\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^(HTTPS?|#\\{protocol\\})$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Query": "The query parameters, URL\\-encoded when necessary, but not percent\\-encoded\\. Do not include the leading \"?\", as it is automatically added\\. You can specify any of the reserved keywords\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatusCode": "The HTTP redirect code\\. The redirect is either permanent \\(HTTP 301\\) or temporary \\(HTTP 302\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `HTTP_301 | HTTP_302` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule RuleCondition": { + "Field": "The field in the HTTP request\\. The following are the possible values: \n+ `http-header` \n+ `http-request-method` \n+ `host-header` \n+ `path-pattern` \n+ `query-string` \n+ `source-ip` \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HostHeaderConfig": "Information for a host header condition\\. Specify only when `Field` is `host-header`\\. \n*Required*: No \n*Type*: [HostHeaderConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-hostheaderconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HttpHeaderConfig": "Information for an HTTP header condition\\. Specify only when `Field` is `http-header`\\. \n*Required*: Conditional \n*Type*: [HttpHeaderConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-httpheaderconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HttpRequestMethodConfig": "Information for an HTTP method condition\\. Specify only when `Field` is `http-request-method`\\. \n*Required*: Conditional \n*Type*: [HttpRequestMethodConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-httprequestmethodconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PathPatternConfig": "Information for a path pattern condition\\. Specify only when `Field` is `path-pattern`\\. \n*Required*: No \n*Type*: [PathPatternConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-pathpatternconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryStringConfig": "Information for a query string condition\\. Specify only when `Field` is `query-string`\\. \n*Required*: Conditional \n*Type*: [QueryStringConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-querystringconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceIpConfig": "Information for a source IP condition\\. Specify only when `Field` is `source-ip`\\. \n*Required*: Conditional \n*Type*: [SourceIpConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-sourceipconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "The condition value\\. Specify only when `Field` is `host-header` or `path-pattern`\\. Alternatively, to specify multiple host names or multiple path patterns, use `HostHeaderConfig` or `PathPatternConfig`\\. \nIf `Field` is `host-header` and you're not using `HostHeaderConfig`, you can specify a single host name \\(for example, my\\.example\\.com\\)\\. A host name is case insensitive, can be up to 128 characters in length, and can contain any of the following characters\\. \n+ A\\-Z, a\\-z, 0\\-9\n+ \\- \\.\n+ \\* \\(matches 0 or more characters\\)\n+ ? \\(matches exactly 1 character\\)\nIf `Field` is `path-pattern` and you're not using `PathPatternConfig`, you can specify a single path pattern \\(for example, /img/\\*\\)\\. A path pattern is case\\-sensitive, can be up to 128 characters in length, and can contain any of the following characters\\. \n+ A\\-Z, a\\-z, 0\\-9\n+ \\_ \\- \\. $ / \\~ \" ' @ : \\+\n+ & \\(using &\\)\n+ \\* \\(matches 0 or more characters\\)\n+ ? \\(matches exactly 1 character\\)\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule SourceIpConfig": { + "Values": "One or more source IP addresses, in CIDR format\\. You can use both IPv4 and IPv6 addresses\\. Wildcards are not supported\\. \nIf you specify multiple addresses, the condition is satisfied if the source IP address of the request matches one of the CIDR blocks\\. This condition is not satisfied by the addresses in the X\\-Forwarded\\-For header\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule TargetGroupStickinessConfig": { + "DurationSeconds": "The time period, in seconds, during which requests from a client should be routed to the same target group\\. The range is 1\\-604800 seconds \\(7 days\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Indicates whether target group stickiness is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule TargetGroupTuple": { + "TargetGroupArn": "The Amazon Resource Name \\(ARN\\) of the target group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Weight": "The weight\\. The range is 0 to 999\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::LoadBalancer": { + "IpAddressType": "The IP address type\\. The possible values are `ipv4` \\(for IPv4 addresses\\) and `dualstack` \\(for IPv4 and IPv6 addresses\\)\\. You can\u2019t specify `dualstack` for a load balancer with a UDP or TCP\\_UDP listener\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dualstack | ipv4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoadBalancerAttributes": "The load balancer attributes\\. \n*Required*: No \n*Type*: List of [LoadBalancerAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattributes.html) \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the load balancer\\. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with \"internal\\-\"\\. \nIf you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer\\. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates\\. To replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Scheme": "The nodes of an Internet\\-facing load balancer have public IP addresses\\. The DNS name of an Internet\\-facing load balancer is publicly resolvable to the public IP addresses of the nodes\\. Therefore, Internet\\-facing load balancers can route requests from clients over the internet\\. \nThe nodes of an internal load balancer have only private IP addresses\\. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes\\. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer\\. \nThe default is an Internet\\-facing load balancer\\. \nYou cannot specify a scheme for a Gateway Load Balancer\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `internal | internet-facing` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecurityGroups": "\\[Application Load Balancers\\] The IDs of the security groups for the load balancer\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetMappings": "The IDs of the public subnets\\. You can specify only one subnet per Availability Zone\\. You must specify either subnets or subnet mappings, but not both\\. \n\\[Application Load Balancers\\] You must specify subnets from at least two Availability Zones\\. You cannot specify Elastic IP addresses for your subnets\\. \n\\[Application Load Balancers on Outposts\\] You must specify one Outpost subnet\\. \n\\[Application Load Balancers on Local Zones\\] You can specify subnets from one or more Local Zones\\. \n\\[Network Load Balancers\\] You can specify subnets from one or more Availability Zones\\. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet\\-facing load balancer\\. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet\\. For internet\\-facing load balancer, you can specify one IPv6 address per subnet\\. \n\\[Gateway Load Balancers\\] You can specify subnets from one or more Availability Zones\\. You cannot specify Elastic IP addresses for your subnets\\. \n*Required*: Conditional \n*Type*: List of [SubnetMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Subnets": "The IDs of the public subnets\\. You can specify only one subnet per Availability Zone\\. You must specify either subnets or subnet mappings, but not both\\. To specify an Elastic IP address, specify subnet mappings instead of subnets\\. \n\\[Application Load Balancers\\] You must specify subnets from at least two Availability Zones\\. \n\\[Application Load Balancers on Outposts\\] You must specify one Outpost subnet\\. \n\\[Application Load Balancers on Local Zones\\] You can specify subnets from one or more Local Zones\\. \n\\[Network Load Balancers\\] You can specify subnets from one or more Availability Zones\\. \n\\[Gateway Load Balancers\\] You can specify subnets from one or more Availability Zones\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to assign to the load balancer\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of load balancer\\. The default is `application`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `application | gateway | network` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ElasticLoadBalancingV2::LoadBalancer LoadBalancerAttribute": { + "Key": "The name of the attribute\\. \nThe following attribute is supported by all load balancers: \n+ `deletion_protection.enabled` \\- Indicates whether deletion protection is enabled\\. The value is `true` or `false`\\. The default is `false`\\.\nThe following attributes are supported by both Application Load Balancers and Network Load Balancers: \n+ `access_logs.s3.enabled` \\- Indicates whether access logs are enabled\\. The value is `true` or `false`\\. The default is `false`\\.\n+ `access_logs.s3.bucket` \\- The name of the S3 bucket for the access logs\\. This attribute is required if access logs are enabled\\. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket\\.\n+ `access_logs.s3.prefix` \\- The prefix for the location in the S3 bucket for the access logs\\.\n+ `ipv6.deny_all_igw_traffic` \\- Blocks internet gateway \\(IGW\\) access to the load balancer\\. It is set to `false` for internet\\-facing load balancers and `true` for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway\\.\nThe following attributes are supported by only Application Load Balancers: \n+ `idle_timeout.timeout_seconds` \\- The idle timeout value, in seconds\\. The valid range is 1\\-4000 seconds\\. The default is 60 seconds\\.\n+ `routing.http.desync_mitigation_mode` \\- Determines how the load balancer handles requests that might pose a security risk to your application\\. The possible values are `monitor`, `defensive`, and `strictest`\\. The default is `defensive`\\.\n+ `routing.http.drop_invalid_header_fields.enabled` \\- Indicates whether HTTP headers with invalid header fields are removed by the load balancer \\(`true`\\) or routed to targets \\(`false`\\)\\. The default is `false`\\.\n+ `routing.http.x_amzn_tls_version_and_cipher_suite.enabled` \\- Indicates whether the two headers \\(`x-amzn-tls-version` and `x-amzn-tls-cipher-suite`\\), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target\\. The `x-amzn-tls-version` header has information about the TLS protocol version negotiated with the client, and the `x-amzn-tls-cipher-suite` header has information about the cipher suite negotiated with the client\\. Both headers are in OpenSSL format\\. The possible values for the attribute are `true` and `false`\\. The default is `false`\\.\n+ `routing.http.xff_client_port.enabled` \\- Indicates whether the `X-Forwarded-For` header should preserve the source port that the client used to connect to the load balancer\\. The possible values are `true` and `false`\\. The default is `false`\\.\n+ `routing.http2.enabled` \\- Indicates whether HTTP/2 is enabled\\. The possible values are `true` and `false`\\. The default is `true`\\. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens\\.\n+ `waf.fail_open.enabled` \\- Indicates whether to allow a WAF\\-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF\\. The possible values are `true` and `false`\\. The default is `false`\\.\nThe following attribute is supported by Network Load Balancers and Gateway Load Balancers: \n+ `load_balancing.cross_zone.enabled` \\- Indicates whether cross\\-zone load balancing is enabled\\. The possible values are `true` and `false`\\. The default is `false`\\.\n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^[a-zA-Z0-9._]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of the attribute\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::LoadBalancer SubnetMapping": { + "AllocationId": "\\[Network Load Balancers\\] The allocation ID of the Elastic IP address for an internet\\-facing load balancer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IPv6Address": "\\[Network Load Balancers\\] The IPv6 address\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrivateIPv4Address": "\\[Network Load Balancers\\] The private IPv4 address for an internal load balancer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetId": "The ID of the subnet\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::TargetGroup": { + "HealthCheckEnabled": "Indicates whether health checks are enabled\\. If the target type is `lambda`, health checks are disabled by default but can be enabled\\. If the target type is `instance`, `ip`, or `alb`, health checks are always enabled and cannot be disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthCheckIntervalSeconds": "The approximate amount of time, in seconds, between health checks of an individual target\\. If the target group protocol is HTTP or HTTPS, the default is 30 seconds\\. If the target group protocol is TCP, TLS, UDP, or TCP\\_UDP, the supported values are 10 and 30 seconds and the default is 30 seconds\\. If the target group protocol is GENEVE, the default is 10 seconds\\. If the target type is `lambda`, the default is 35 seconds\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `5` \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthCheckPath": "\\[HTTP/HTTPS health checks\\] The destination for health checks on the targets\\. \n\\[HTTP1 or HTTP2 protocol version\\] The ping path\\. The default is /\\. \n\\[GRPC protocol version\\] The path of a custom health check method with the format /package\\.service/method\\. The default is /AWS\\.ALB/healthcheck\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthCheckPort": "The port the load balancer uses when performing health checks on targets\\. If the protocol is HTTP, HTTPS, TCP, TLS, UDP, or TCP\\_UDP, the default is `traffic-port`, which is the port on which each target receives traffic from the load balancer\\. If the protocol is GENEVE, the default is port 80\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthCheckProtocol": "The protocol the load balancer uses when performing health checks on targets\\. For Application Load Balancers, the default is HTTP\\. For Network Load Balancers and Gateway Load Balancers, the default is TCP\\. The TCP protocol is not supported for health checks if the protocol of the target group is HTTP or HTTPS\\. The GENEVE, TLS, UDP, and TCP\\_UDP protocols are not supported for health checks\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GENEVE | HTTP | HTTPS | TCP | TCP_UDP | TLS | UDP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthCheckTimeoutSeconds": "The amount of time, in seconds, during which no response from a target means a failed health check\\. For target groups with a protocol of HTTP, HTTPS, or GENEVE, the default is 5 seconds\\. For target groups with a protocol of TCP or TLS, this value must be 6 seconds for HTTP health checks and 10 seconds for TCP and HTTPS health checks\\. If the target type is `lambda`, the default is 30 seconds\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `120` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthyThresholdCount": "The number of consecutive health checks successes required before considering an unhealthy target healthy\\. For target groups with a protocol of HTTP or HTTPS, the default is 5\\. For target groups with a protocol of TCP, TLS, or GENEVE, the default is 3\\. If the target type is `lambda`, the default is 5\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IpAddressType": "The type of IP address used for this target group\\. The possible values are `ipv4` and `ipv6`\\. This is an optional parameter\\. If not specified, the IP address type defaults to `ipv4`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ipv4 | ipv6` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Matcher": "\\[HTTP/HTTPS health checks\\] The HTTP or gRPC codes to use when checking for a successful response from a target\\. \n*Required*: No \n*Type*: [Matcher](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-matcher.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the target group\\. \nThis name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Port": "The port on which the targets receive traffic\\. This port is used unless you specify a port override when registering the target\\. If the target is a Lambda function, this parameter does not apply\\. If the protocol is GENEVE, the supported port is 6081\\. \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Protocol": "The protocol to use for routing traffic to the targets\\. For Application Load Balancers, the supported protocols are HTTP and HTTPS\\. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, or TCP\\_UDP\\. For Gateway Load Balancers, the supported protocol is GENEVE\\. A TCP\\_UDP listener must be associated with a TCP\\_UDP target group\\. If the target is a Lambda function, this parameter does not apply\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `GENEVE | HTTP | HTTPS | TCP | TCP_UDP | TLS | UDP` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProtocolVersion": "\\[HTTP/HTTPS protocol\\] The protocol version\\. The possible values are `GRPC`, `HTTP1`, and `HTTP2`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetGroupAttributes": "The attributes\\. \n*Required*: No \n*Type*: List of [TargetGroupAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetgroupattribute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetType": "The type of target that you must specify when registering targets with this target group\\. You can't specify targets for a target group using more than one target type\\. \n+ `instance` \\- Register targets by instance ID\\. This is the default value\\.\n+ `ip` \\- Register targets by IP address\\. You can specify IP addresses from the subnets of the virtual private cloud \\(VPC\\) for the target group, the RFC 1918 range \\(10\\.0\\.0\\.0/8, 172\\.16\\.0\\.0/12, and 192\\.168\\.0\\.0/16\\), and the RFC 6598 range \\(100\\.64\\.0\\.0/10\\)\\. You can't specify publicly routable IP addresses\\.\n+ `lambda` \\- Register a single Lambda function as a target\\.\n+ `alb` \\- Register a single Application Load Balancer as a target\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `alb | instance | ip | lambda` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Targets": "The targets\\. \n*Required*: No \n*Type*: List of [TargetDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetdescription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UnhealthyThresholdCount": "The number of consecutive health check failures required before considering a target unhealthy\\. If the target group protocol is HTTP or HTTPS, the default is 2\\. If the target group protocol is TCP or TLS, this value must be the same as the healthy threshold count\\. If the target group protocol is GENEVE, the default is 3\\. If the target type is `lambda`, the default is 2\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcId": "The identifier of the virtual private cloud \\(VPC\\)\\. If the target is a Lambda function, this parameter does not apply\\. Otherwise, this parameter is required\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ElasticLoadBalancingV2::TargetGroup Matcher": { + "GrpcCode": "You can specify values between 0 and 99\\. You can specify multiple values \\(for example, \"0,1\"\\) or a range of values \\(for example, \"0\\-5\"\\)\\. The default value is 12\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HttpCode": "For Application Load Balancers, you can specify values between 200 and 499, and the default value is 200\\. You can specify multiple values \\(for example, \"200,202\"\\) or a range of values \\(for example, \"200\\-299\"\\)\\. \nFor Network Load Balancers and Gateway Load Balancers, this must be \"200\u2013399\"\\. \nNote that when using shorthand syntax, some values such as commas need to be escaped\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::TargetGroup TargetDescription": { + "AvailabilityZone": "An Availability Zone or `all`\\. This determines whether the target receives traffic from the load balancer nodes in the specified Availability Zone or from all enabled Availability Zones for the load balancer\\. \nThis parameter is not supported if the target type of the target group is `instance` or `alb`\\. \nIf the target type is `ip` and the IP address is in a subnet of the VPC for the target group, the Availability Zone is automatically detected and this parameter is optional\\. If the IP address is outside the VPC, this parameter is required\\. \nWith an Application Load Balancer, if the target type is `ip` and the IP address is outside the VPC for the target group, the only supported value is `all`\\. \nIf the target type is `lambda`, this parameter is optional and the only supported value is `all`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "The ID of the target\\. If the target type of the target group is `instance`, specify an instance ID\\. If the target type is `ip`, specify an IP address\\. If the target type is `lambda`, specify the ARN of the Lambda function\\. If the target type is `alb`, specify the ARN of the Application Load Balancer target\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "The port on which the target is listening\\. If the target group protocol is GENEVE, the supported port is 6081\\. If the target type is `alb`, the targeted Application Load Balancer must have at least one listener whose port matches the target group port\\. Not used if the target is a Lambda function\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ElasticLoadBalancingV2::TargetGroup TargetGroupAttribute": { + "Key": "The name of the attribute\\. \nThe following attribute is supported by all load balancers: \n+ `deregistration_delay.timeout_seconds` \\- The amount of time, in seconds, for Elastic Load Balancing to wait before changing the state of a deregistering target from `draining` to `unused`\\. The range is 0\\-3600 seconds\\. The default value is 300 seconds\\. If the target is a Lambda function, this attribute is not supported\\.\nThe following attributes are supported by both Application Load Balancers and Network Load Balancers: \n+ `stickiness.enabled` \\- Indicates whether sticky sessions are enabled\\. The value is `true` or `false`\\. The default is `false`\\.\n+ `stickiness.type` \\- The type of sticky sessions\\. The possible values are `lb_cookie` and `app_cookie` for Application Load Balancers or `source_ip` for Network Load Balancers\\.\nThe following attributes are supported only if the load balancer is an Application Load Balancer and the target is an instance or an IP address: \n+ `load_balancing.algorithm.type` \\- The load balancing algorithm determines how the load balancer selects targets when routing requests\\. The value is `round_robin` or `least_outstanding_requests`\\. The default is `round_robin`\\.\n+ `slow_start.duration_seconds` \\- The time period, in seconds, during which a newly registered target receives an increasing share of the traffic to the target group\\. After this time period ends, the target receives its full share of traffic\\. The range is 30\\-900 seconds \\(15 minutes\\)\\. The default is 0 seconds \\(disabled\\)\\.\n+ `stickiness.app_cookie.cookie_name` \\- Indicates the name of the application\\-based cookie\\. Names that start with the following prefixes are not allowed: `AWSALB`, `AWSALBAPP`, and `AWSALBTG`; they're reserved for use by the load balancer\\.\n+ `stickiness.app_cookie.duration_seconds` \\- The time period, in seconds, during which requests from a client should be routed to the same target\\. After this time period expires, the application\\-based cookie is considered stale\\. The range is 1 second to 1 week \\(604800 seconds\\)\\. The default value is 1 day \\(86400 seconds\\)\\.\n+ `stickiness.lb_cookie.duration_seconds` \\- The time period, in seconds, during which requests from a client should be routed to the same target\\. After this time period expires, the load balancer\\-generated cookie is considered stale\\. The range is 1 second to 1 week \\(604800 seconds\\)\\. The default value is 1 day \\(86400 seconds\\)\\.\nThe following attribute is supported only if the load balancer is an Application Load Balancer and the target is a Lambda function: \n+ `lambda.multi_value_headers.enabled` \\- Indicates whether the request and response headers that are exchanged between the load balancer and the Lambda function include arrays of values or strings\\. The value is `true` or `false`\\. The default is `false`\\. If the value is `false` and the request contains a duplicate header field name or query parameter key, the load balancer uses the last value sent by the client\\.\nThe following attributes are supported only by Network Load Balancers: \n+ `deregistration_delay.connection_termination.enabled` \\- Indicates whether the load balancer terminates connections at the end of the deregistration timeout\\. The value is `true` or `false`\\. The default is `false`\\.\n+ `preserve_client_ip.enabled` \\- Indicates whether client IP preservation is enabled\\. The value is `true` or `false`\\. The default is disabled if the target group type is IP address and the target group protocol is TCP or TLS\\. Otherwise, the default is enabled\\. Client IP preservation cannot be disabled for UDP and TCP\\_UDP target groups\\.\n+ `proxy_protocol_v2.enabled` \\- Indicates whether Proxy Protocol version 2 is enabled\\. The value is `true` or `false`\\. The default is `false`\\.\n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^[a-zA-Z0-9._]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of the attribute\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Elasticsearch::Domain": { + "AccessPolicies": "An AWS Identity and Access Management \\(IAM\\) policy document that specifies who can access the OpenSearch Service domain and their permissions\\. For more information, see [Configuring access policies](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ac.html#ac-creating) in the *Amazon OpenSearch Service Developer Guid*e\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AdvancedOptions": "Additional options to specify for the OpenSearch Service domain\\. For more information, see [Advanced cluster parameters](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-advanced-options) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AdvancedSecurityOptions": "Specifies options for fine\\-grained access control\\. \n*Required*: No \n*Type*: [AdvancedSecurityOptionsInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-advancedsecurityoptionsinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CognitoOptions": "Configures OpenSearch Service to use Amazon Cognito authentication for OpenSearch Dashboards\\. \n*Required*: No \n*Type*: [CognitoOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-cognitooptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainEndpointOptions": "Specifies additional options for the domain endpoint, such as whether to require HTTPS for all traffic or whether to use a custom endpoint rather than the default endpoint\\. \n*Required*: No \n*Type*: [DomainEndpointOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-domainendpointoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainName": "A name for the OpenSearch Service domain\\. For valid values, see the [DomainName](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/configuration-api.html#configuration-api-datatypes-domainname) data type in the *Amazon OpenSearch Service Developer Guide*\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the domain name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EBSOptions": "The configurations of Amazon Elastic Block Store \\(Amazon EBS\\) volumes that are attached to data nodes in the OpenSearch Service domain\\. For more information, see [EBS volume size limits](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#ebsresource) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: [EBSOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ElasticsearchClusterConfig": "ElasticsearchClusterConfig is a property of the AWS::Elasticsearch::Domain resource that configures the cluster of an Amazon OpenSearch Service domain\\. \n*Required*: No \n*Type*: [ElasticsearchClusterConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ElasticsearchVersion": "The version of Elasticsearch to use, such as 2\\.3\\. If not specified, 1\\.5 is used as the default\\. For information about the versions that OpenSearch Service supports, see [Supported versions of OpenSearch and Elasticsearch](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/what-is.html#choosing-version) in the *Amazon OpenSearch Service Developer Guide*\\. \nIf you set the [EnableVersionUpgrade](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-upgradeopensearchdomain) update policy to `true`, you can update `ElasticsearchVersion` without interruption\\. When `EnableVersionUpgrade` is set to `false`, or is not specified, updating `ElasticsearchVersion` results in [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "EncryptionAtRestOptions": "Whether the domain should encrypt data at rest, and if so, the AWS Key Management Service key to use\\. See [Encryption of data at rest for Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/encryption-at-rest.html)\\. \n*Required*: No \n*Type*: [EncryptionAtRestOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-encryptionatrestoptions.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "LogPublishingOptions": "An object with one or more of the following keys: `SEARCH_SLOW_LOGS`, `ES_APPLICATION_LOGS`, `INDEX_SLOW_LOGS`, `AUDIT_LOGS`, depending on the types of logs you want to publish\\. Each key needs a valid `LogPublishingOption` value\\. \n*Required*: No \n*Type*: Map of [LogPublishingOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-logpublishingoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NodeToNodeEncryptionOptions": "Specifies whether node\\-to\\-node encryption is enabled\\. See [Node\\-to\\-node encryption for Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ntn.html)\\. \n*Required*: No \n*Type*: [NodeToNodeEncryptionOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-nodetonodeencryptionoptions.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "SnapshotOptions": "**DEPRECATED**\\. The automated snapshot configuration for the OpenSearch Service domain indices\\. \n*Required*: No \n*Type*: [SnapshotOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-snapshotoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An arbitrary set of tags \\(key\u2013value pairs\\) to associate with the OpenSearch Service domain\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VPCOptions": "The virtual private cloud \\(VPC\\) configuration for the OpenSearch Service domain\\. For more information, see [Launching your Amazon OpenSearch Service domains within a VPC](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: [VPCOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-vpcoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Elasticsearch::Domain AdvancedSecurityOptionsInput": { + "Enabled": "True to enable fine\\-grained access control\\. You must also enable encryption of data at rest and node\\-to\\-node encryption\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InternalUserDatabaseEnabled": "True to enable the internal user database\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MasterUserOptions": "Specifies information about the master user\\. \n*Required*: No \n*Type*: [MasterUserOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-masteruseroptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Elasticsearch::Domain CognitoOptions": { + "Enabled": "Whether to enable or disable Amazon Cognito authentication for OpenSearch Dashboards\\. See [Amazon Cognito authentication for OpenSearch Dashboards](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/cognito-auth.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IdentityPoolId": "The Amazon Cognito identity pool ID that you want OpenSearch Service to use for OpenSearch Dashboards authentication\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The `AmazonESCognitoAccess` role that allows OpenSearch Service to configure your user pool and identity pool\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserPoolId": "The Amazon Cognito user pool ID that you want OpenSearch Service to use for OpenSearch Dashboards authentication\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Elasticsearch::Domain ColdStorageOptions": { + "Enabled": "Whether to enable or disable cold storage on the domain\\. You must enable UltraWarm storage in order to enable cold storage\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Elasticsearch::Domain DomainEndpointOptions": { + "CustomEndpoint": "The fully qualified URL for your custom endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomEndpointCertificateArn": "The AWS Certificate Manager ARN for your domain's SSL/TLS certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomEndpointEnabled": "True to enable a custom endpoint for the domain\\. If enabled, you must also provide values for `CustomEndpoint` and `CustomEndpointCertificateArn`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnforceHTTPS": "True to require that all traffic to the domain arrive over HTTPS\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TLSSecurityPolicy": "The minimum TLS version required for traffic to the domain\\. Valid values are TLS 1\\.0 \\(default\\) or 1\\.2: \n+ `Policy-Min-TLS-1-0-2019-07`\n+ `Policy-Min-TLS-1-2-2019-07`\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Elasticsearch::Domain EBSOptions": { + "EBSEnabled": "Specifies whether Amazon EBS volumes are attached to data nodes in the OpenSearch Service domain\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Iops": "The number of I/O operations per second \\(IOPS\\) that the volume supports\\. This property applies only to the Provisioned IOPS \\(SSD\\) EBS volume type\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VolumeSize": "The size \\(in GiB\\) of the EBS volume for each data node\\. The minimum and maximum size of an EBS volume depends on the EBS volume type and the instance type to which it is attached\\. For more information, see [EBS volume size limits](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#ebsresource) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VolumeType": "The EBS volume type to use with the OpenSearch Service domain, such as standard, gp2, or io1\\. For more information about each type, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Elasticsearch::Domain ElasticsearchClusterConfig": { + "ColdStorageOptions": "Specifies cold storage options for the domain\\. \n*Required*: No \n*Type*: [ColdStorageOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-coldstorageoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DedicatedMasterCount": "The number of instances to use for the master node\\. If you specify this property, you must specify true for the DedicatedMasterEnabled property\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DedicatedMasterEnabled": "Indicates whether to use a dedicated master node for the OpenSearch Service domain\\. A dedicated master node is a cluster node that performs cluster management tasks, but doesn't hold data or respond to data upload requests\\. Dedicated master nodes offload cluster management tasks to increase the stability of your search clusters\\. See [Dedicated master nodes in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-dedicatedmasternodes.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DedicatedMasterType": "The hardware configuration of the computer that hosts the dedicated master node, such as `m3.medium.elasticsearch`\\. If you specify this property, you must specify true for the `DedicatedMasterEnabled` property\\. For valid values, see [Supported instance types in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceCount": "The number of data nodes \\(instances\\) to use in the OpenSearch Service domain\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceType": "The instance type for your data nodes, such as `m3.medium.elasticsearch`\\. For valid values, see [Supported instance types in Amazon OpenSearch Service ](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WarmCount": "The number of warm nodes in the cluster\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WarmEnabled": "Whether to enable warm storage for the cluster\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WarmType": "The instance type for the cluster's warm nodes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ZoneAwarenessConfig": "Specifies zone awareness configuration options\\. Only use if `ZoneAwarenessEnabled` is `true`\\. \n*Required*: No \n*Type*: [ZoneAwarenessConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-zoneawarenessconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ZoneAwarenessEnabled": "Indicates whether to enable zone awareness for the OpenSearch Service domain\\. When you enable zone awareness, OpenSearch Service allocates the nodes and replica index shards that belong to a cluster across two Availability Zones \\(AZs\\) in the same region to prevent data loss and minimize downtime in the event of node or data center failure\\. Don't enable zone awareness if your cluster has no replica index shards or is a single\\-node cluster\\. For more information, see [Configuring a multi\\-AZ domain in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Elasticsearch::Domain EncryptionAtRestOptions": { + "Enabled": "Specify `true` to enable encryption at rest\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "KmsKeyId": "The KMS key ID\\. Takes the form `1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Elasticsearch::Domain LogPublishingOption": { + "CloudWatchLogsLogGroupArn": "Specifies the CloudWatch log group to publish to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "If `true`, enables the publishing of logs to CloudWatch\\. \nDefault: `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Elasticsearch::Domain MasterUserOptions": { + "MasterUserARN": "ARN for the master user\\. Only specify if `InternalUserDatabaseEnabled` is false in `AdvancedSecurityOptions`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MasterUserName": "Username for the master user\\. Only specify if `InternalUserDatabaseEnabled` is true in `AdvancedSecurityOptions`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MasterUserPassword": "Password for the master user\\. Only specify if `InternalUserDatabaseEnabled` is true in `AdvancedSecurityOptions`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Elasticsearch::Domain NodeToNodeEncryptionOptions": { + "Enabled": "Specifies whether node\\-to\\-node encryption is enabled, as a Boolean\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)" + }, + "AWS::Elasticsearch::Domain SnapshotOptions": { + "AutomatedSnapshotStartHour": "The hour in UTC during which the service takes an automated daily snapshot of the indices in the OpenSearch Service domain\\. For example, if you specify 0, OpenSearch Service takes an automated snapshot everyday between midnight and 1 am\\. You can specify a value between 0 and 23\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Elasticsearch::Domain VPCOptions": { + "SecurityGroupIds": "The list of security group IDs that are associated with the VPC endpoints for the domain\\. If you don't provide a security group ID, OpenSearch Service uses the default security group for the VPC\\. To learn more, see [Security groups for your VPC ](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) in the *Amazon VPC User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetIds": "Provide one subnet ID for each Availability Zone that your domain uses\\. For example, you must specify three subnet IDs for a three Availability Zone domain\\. To learn more, see [VPCs and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html) in the *Amazon VPC User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Elasticsearch::Domain ZoneAwarenessConfig": { + "AvailabilityZoneCount": "If you enabled multiple Availability Zones \\(AZs\\), the number of AZs that you want the domain to use\\. \nValid values are `2` and `3`\\. Default is 2\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EventSchemas::Discoverer": { + "CrossAccount": "Allows for the discovery of the event schemas that are sent to the event bus from another account\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description for the discoverer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceArn": "The ARN of the event bus\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Tags associated with the resource\\. \n*Required*: No \n*Type*: List of [TagsEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eventschemas-discoverer-tagsentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EventSchemas::Discoverer TagsEntry": { + "Key": "They key of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "They value of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EventSchemas::Registry": { + "Description": "A description of the registry to be created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegistryName": "The name of the schema registry\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Tags to associate with the registry\\. \n*Required*: No \n*Type*: List of [TagsEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eventschemas-registry-tagsentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EventSchemas::Registry TagsEntry": { + "Key": "They key of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "They value of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EventSchemas::RegistryPolicy": { + "Policy": "A resource\\-based policy\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegistryName": "The name of the registry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RevisionId": "The revision ID of the policy\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EventSchemas::Schema": { + "Content": "The source of the schema definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the schema\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegistryName": "The name of the schema registry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SchemaName": "The name of the schema\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Tags associated with the schema\\. \n*Required*: No \n*Type*: List of [TagsEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eventschemas-schema-tagsentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of schema\\. \nValid types include `OpenApi3` and `JSONSchemaDraft4`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::EventSchemas::Schema TagsEntry": { + "Key": "They key of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "They value of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::ApiDestination": { + "ConnectionArn": "The ARN of the connection to use for the API destination\\. The destination endpoint must support the authorization type specified for the connection\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `^arn:aws([a-z]|\\-)*:events:([a-z]|\\d|\\-)*:([0-9]{12})?:connection\\/[\\.\\-_A-Za-z0-9]+\\/[\\-A-Za-z0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description for the API destination to create\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HttpMethod": "The method to use for the request to the HTTP invocation endpoint\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DELETE | GET | HEAD | OPTIONS | PATCH | POST | PUT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InvocationEndpoint": "The URL to the HTTP invocation endpoint for the API destination\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InvocationRateLimitPerSecond": "The maximum number of requests per second to send to the HTTP invocation endpoint\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name for the API destination to create\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Events::Archive": { + "ArchiveName": "The name for the archive to create\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `48` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "A description for the archive\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventPattern": "An event pattern to use to filter events sent to the archive\\. \n*Required*: No \n*Type*: Json \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetentionDays": "The number of days to retain events for\\. Default value is 0\\. If set to 0, events are retained indefinitely \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceArn": "The ARN of the event bus that sends events to the archive\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Events::Connection": { + "AuthParameters": "A `CreateConnectionAuthRequestParameters` object that contains the authorization parameters to use to authorize with the endpoint\\. \n*Required*: Yes \n*Type*: [AuthParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-authparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthorizationType": "The type of authorization to use for the connection\\. \nOAUTH tokens are refreshed when a 401 or 407 response is returned\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `API_KEY | BASIC | OAUTH_CLIENT_CREDENTIALS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description for the connection to create\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name for the connection to create\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Events::Connection ApiKeyAuthParameters": { + "ApiKeyName": "The name of the API key to use for authorization\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ApiKeyValue": "The value for the API key to use for authorization\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Connection AuthParameters": { + "ApiKeyAuthParameters": "The API Key parameters to use for authorization\\. \n*Required*: No \n*Type*: [ApiKeyAuthParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-apikeyauthparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BasicAuthParameters": "The authorization parameters for Basic authorization\\. \n*Required*: No \n*Type*: [BasicAuthParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-basicauthparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InvocationHttpParameters": "Additional parameters for the connection that are passed through with every invocation to the HTTP endpoint\\. \n*Required*: No \n*Type*: [ConnectionHttpParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-connectionhttpparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OAuthParameters": "The OAuth parameters to use for authorization\\. \n*Required*: No \n*Type*: [OAuthParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-oauthparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Connection BasicAuthParameters": { + "Password": "The password associated with the user name to use for Basic authorization\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Username": "The user name to use for Basic authorization\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Connection ClientParameters": { + "ClientID": "The client ID to use for OAuth authorization\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientSecret": "The client secret assciated with the client ID to use for OAuth authorization\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Connection ConnectionHttpParameters": { + "BodyParameters": "Contains additional body string parameters for the connection\\. \n*Required*: No \n*Type*: List of [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-parameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HeaderParameters": "Contains additional header parameters for the connection\\. \n*Required*: No \n*Type*: List of [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-parameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryStringParameters": "Contains additional query string parameters for the connection\\. \n*Required*: No \n*Type*: List of [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-parameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Connection OAuthParameters": { + "AuthorizationEndpoint": "The URL to the authorization endpoint when OAuth is specified as the authorization type\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientParameters": "A `CreateConnectionOAuthClientRequestParameters` object that contains the client parameters for OAuth authorization\\. \n*Required*: Yes \n*Type*: [ClientParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-clientparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HttpMethod": "The method to use for the authorization request\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GET | POST | PUT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OAuthHttpParameters": "A `ConnectionHttpParameters` object that contains details about the additional parameters to use for the connection\\. \n*Required*: No \n*Type*: [ConnectionHttpParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-connectionhttpparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Connection Parameter": { + "IsValueSecret": "Specifies whether the value is secret\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Key": "The key for a query string parameter\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[^\\x00-\\x1F\\x7F]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value associated with the key for the query string parameter\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[^\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Endpoint": { + "Description": "A description for the endpoint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventBuses": "The event buses being used by the endpoint\\. \n*Exactly*: `2` \n*Required*: Yes \n*Type*: List of [EndpointEventBus](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-endpoint-endpointeventbus.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the endpoint\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ReplicationConfig": "Whether event replication was enabled or disabled for this endpoint\\. The default state is `ENABLED` which means you must supply a `RoleArn`\\. If you don't have a `RoleArn` or you don't want event replication enabled, set the state to `DISABLED`\\. \n*Required*: No \n*Type*: [ReplicationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-endpoint-replicationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the role used by event replication for the endpoint\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn:aws[a-z-]*:iam::\\d{12}:role\\/[\\w+=,.@/-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoutingConfig": "The routing configuration of the endpoint\\. \n*Required*: Yes \n*Type*: [RoutingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-endpoint-routingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Endpoint EndpointEventBus": { + "EventBusArn": "The ARN of the event bus the endpoint is associated with\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^arn:aws[a-z-]*:events:[a-z]{2}-[a-z-]+-\\d+:\\d{12}:event-bus/[\\w.-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Endpoint FailoverConfig": { + "Primary": "The main Region of the endpoint\\. \n*Required*: Yes \n*Type*: [Primary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-endpoint-primary.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Secondary": "The Region that events are routed to when failover is triggered or event replication is enabled\\. \n*Required*: Yes \n*Type*: [Secondary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-endpoint-secondary.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Endpoint Primary": { + "HealthCheck": "The ARN of the health check used by the endpoint to determine whether failover is triggered\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `^arn:aws([a-z]|\\-)*:route53:::healthcheck/[\\-a-z0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Endpoint ReplicationConfig": { + "State": "The state of event replication\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Endpoint RoutingConfig": { + "FailoverConfig": "The failover configuration for an endpoint\\. This includes what triggers failover and what happens when it's triggered\\. \n*Required*: Yes \n*Type*: [FailoverConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-endpoint-failoverconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Endpoint Secondary": { + "Route": "Defines the secondary Region\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `9` \n*Maximum*: `20` \n*Pattern*: `^[\\-a-z0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::EventBus": { + "EventSourceName": "If you are creating a partner event bus, this specifies the partner event source that the new event bus will be matched with\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `aws\\.partner(/[\\.\\-_A-Za-z0-9]+){2,}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the new event bus\\. \nCustom event bus names can't contain the `/` character, but you can use the `/` character in partner event bus names\\. In addition, for partner event buses, the name must exactly match the name of the partner event source that this event bus is matched to\\. \nYou can't use the name `default` for a custom event bus, as this name is already used for your account's default event bus\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[/\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Tags to associate with the event bus\\. \n*Required*: No \n*Type*: List of [TagEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-eventbus-tagentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::EventBus TagEntry": { + "Key": "A string you can use to assign a value\\. The combination of tag keys and values can help you organize and categorize your resources\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value for the specified tag key\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::EventBusPolicy": { + "Action": "The action that you are enabling the other account to perform\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `events:[a-zA-Z]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Condition": "This parameter enables you to limit the permission to accounts that fulfill a certain condition, such as being a member of a certain AWS organization\\. For more information about AWS Organizations, see [What Is AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) in the * AWS Organizations User Guide*\\. \nIf you specify `Condition` with an AWS organization ID, and specify \"\\*\" as the value for `Principal`, you grant permission to all the accounts in the named organization\\. \nThe `Condition` is a JSON string which must contain `Type`, `Key`, and `Value` fields\\. \n*Required*: No \n*Type*: [Condition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-eventbuspolicy-condition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventBusName": "The name of the event bus associated with the rule\\. If you omit this, the default event bus is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Principal": "The 12\\-digit AWS account ID that you are permitting to put events to your default event bus\\. Specify \"\\*\" to permit any account to put events to your default event bus\\. \nIf you specify \"\\*\" without specifying `Condition`, avoid creating rules that may match undesirable events\\. To create more secure rules, make sure that the event pattern for each rule contains an `account` field with a specific account ID from which to receive events\\. Rules with an account field do not match any events sent from other accounts\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `12` \n*Pattern*: `(\\d{12}|\\*)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Statement": "A JSON string that describes the permission policy statement\\. You can include a `Policy` parameter in the request instead of using the `StatementId`, `Action`, `Principal`, or `Condition` parameters\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatementId": "An identifier string for the external account that you are granting permissions to\\. If you later want to revoke the permission for this external account, specify this `StatementId` when you run [RemovePermission](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_RemovePermission.html)\\. \nEach `StatementId` must be unique\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[a-zA-Z0-9-_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Events::EventBusPolicy Condition": { + "Key": "Specifies the key for the condition\\. Currently the only supported key is `aws:PrincipalOrgID`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "Specifies the type of condition\\. Currently the only supported value is `StringEquals`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "Specifies the value for the key\\. Currently, this must be the ID of the organization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule": { + "Description": "The description of the rule\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventBusName": "The name or ARN of the event bus associated with the rule\\. If you omit this, the default event bus is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[/\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EventPattern": "The event pattern of the rule\\. For more information, see [Events and Event Patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Required*: Conditional \n*Type*: Json \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the rule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the role that is used for target invocation\\. \nIf you're setting an event bus in another account as the target and that account granted permission to your account through an organization instead of directly by the account ID, you must specify a `RoleArn` with proper permissions in the `Target` structure, instead of here in this parameter\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduleExpression": "The scheduling expression\\. For example, \"cron\\(0 20 \\* \\* ? \\*\\)\", \"rate\\(5 minutes\\)\"\\. For more information, see [Creating an Amazon EventBridge rule that runs on a schedule](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)\\. \n*Required*: Conditional \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "State": "The state of the rule\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Targets": "Adds the specified targets to the specified rule, or updates the targets if they are already associated with the rule\\. \nTargets are the resources that are invoked when a rule is triggered\\. \nEach rule can have up to five \\(5\\) targets associated with it at one time\\.\nYou can configure the following as targets for Events: \n+ [API destination](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-api-destinations.html) \n+ [API Gateway](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-api-gateway-target.html) \n+ Batch job queue\n+ CloudWatch group\n+ CodeBuild project\n+ CodePipeline\n+ EC2 `CreateSnapshot` API call\n+ EC2 Image Builder\n+ EC2 `RebootInstances` API call\n+ EC2 `StopInstances` API call\n+ EC2 `TerminateInstances` API call\n+ ECS task\n+ [Event bus in a different account or Region](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cross-account.html) \n+ [Event bus in the same account and Region](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-bus-to-bus.html) \n+ Firehose delivery stream\n+ Glue workflow\n+ [Incident Manager response plan](https://docs.aws.amazon.com/incident-manager/latest/userguide/incident-creation.html#incident-tracking-auto-eventbridge) \n+ Inspector assessment template\n+ Kinesis stream\n+ Lambda function\n+ Redshift cluster\n+ SageMaker Pipeline\n+ SNS topic\n+ SQS queue\n+ Step Functions state machine\n+ Systems Manager Automation\n+ Systems Manager OpsItem\n+ Systems Manager Run Command\nCreating rules with built\\-in targets is supported only in the AWS Management Console\\. The built\\-in targets are `EC2 CreateSnapshot API call`, `EC2 RebootInstances API call`, `EC2 StopInstances API call`, and `EC2 TerminateInstances API call`\\. \nFor some target types, `PutTargets` provides target\\-specific parameters\\. If the target is a Kinesis data stream, you can optionally specify which shard the event goes to by using the `KinesisParameters` argument\\. To invoke a command on multiple EC2 instances with one rule, you can use the `RunCommandParameters` field\\. \nTo be able to make API calls against the resources that you own, Amazon EventBridge needs the appropriate permissions\\. For AWS Lambda and Amazon SNS resources, EventBridge relies on resource\\-based policies\\. For EC2 instances, Kinesis Data Streams, AWS Step Functions state machines and API Gateway APIs, EventBridge relies on IAM roles that you specify in the `RoleARN` argument in `PutTargets`\\. For more information, see [Authentication and Access Control](https://docs.aws.amazon.com/eventbridge/latest/userguide/auth-and-access-control-eventbridge.html) in the *Amazon EventBridge User Guide*\\. \nIf another AWS account is in the same region and has granted you permission \\(using `PutPermission`\\), you can send events to that account\\. Set that account's event bus as a target of the rules in your account\\. To send the matched events to the other account, specify that account's event bus as the `Arn` value when you run `PutTargets`\\. If your account sends events to another account, your account is charged for each sent event\\. Each event sent to another account is charged as a custom event\\. The account receiving the event is not charged\\. For more information, see [Amazon EventBridge Pricing](http://aws.amazon.com/eventbridge/pricing/)\\. \n `Input`, `InputPath`, and `InputTransformer` are not available with `PutTarget` if the target is an event bus of a different AWS account\\.\nIf you are setting the event bus of another account as the target, and that account granted permission to your account through an organization instead of directly by the account ID, then you must specify a `RoleArn` with proper permissions in the `Target` structure\\. For more information, see [Sending and Receiving Events Between AWS Accounts](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-cross-account-event-delivery.html) in the *Amazon EventBridge User Guide*\\. \nFor more information about enabling cross\\-account events, see [PutPermission](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutPermission.html)\\. \n **Input**, **InputPath**, and **InputTransformer** are mutually exclusive and optional parameters of a target\\. When a rule is triggered due to a matched event: \n+ If none of the following arguments are specified for a target, then the entire event is passed to the target in JSON format \\(unless the target is Amazon EC2 Run Command or Amazon ECS task, in which case nothing from the event is passed to the target\\)\\.\n+ If **Input** is specified in the form of valid JSON, then the matched event is overridden with this constant\\.\n+ If **InputPath** is specified in the form of JSONPath \\(for example, `$.detail`\\), then only the part of the event specified in the path is passed to the target \\(for example, only the detail part of the event is passed\\)\\.\n+ If **InputTransformer** is specified, then one or more specified JSONPaths are extracted from the event and used as values in a template that you specify as the input to the target\\.\nWhen you specify `InputPath` or `InputTransformer`, you must use JSON dot notation, not bracket notation\\. \nWhen you add targets to a rule and the associated rule triggers soon after, new or updated targets might not be immediately invoked\\. Allow a short period of time for changes to take effect\\. \nThis action can partially fail if too many requests are made at the same time\\. If that happens, `FailedEntryCount` is non\\-zero in the response and each entry in `FailedEntries` provides the ID of the failed target and the error code\\. \n*Required*: No \n*Type*: List of [Target](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule AwsVpcConfiguration": { + "AssignPublicIp": "Specifies whether the task's elastic network interface receives a public IP address\\. You can specify `ENABLED` only when `LaunchType` in `EcsParameters` is set to `FARGATE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroups": "Specifies the security groups associated with the task\\. These security groups must all be in the same VPC\\. You can specify as many as five security groups\\. If you do not specify a security group, the default security group for the VPC is used\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Subnets": "Specifies the subnets associated with the task\\. These subnets must all be in the same VPC\\. You can specify as many as 16 subnets\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule BatchArrayProperties": { + "Size": "The size of the array, if this is an array batch job\\. Valid values are integers between 2 and 10,000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule BatchParameters": { + "ArrayProperties": "The array properties for the submitted job, such as the size of the array\\. The array size can be between 2 and 10,000\\. If you specify array properties for a job, it becomes an array job\\. This parameter is used only if the target is an AWS Batch job\\. \n*Required*: No \n*Type*: [BatchArrayProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-batcharrayproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JobDefinition": "The ARN or name of the job definition to use if the event target is an AWS Batch job\\. This job definition must already exist\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JobName": "The name to use for this execution of the job, if the target is an AWS Batch job\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetryStrategy": "The retry strategy to use for failed jobs, if the target is an AWS Batch job\\. The retry strategy is the number of times to retry the failed job execution\\. Valid values are 1\u201310\\. When you specify a retry strategy here, it overrides the retry strategy defined in the job definition\\. \n*Required*: No \n*Type*: [BatchRetryStrategy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-batchretrystrategy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule BatchRetryStrategy": { + "Attempts": "The number of times to attempt to retry, if the job fails\\. Valid values are 1\u201310\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule CapacityProviderStrategyItem": { + "Base": "The base value designates how many tasks, at a minimum, to run on the specified capacity provider\\. Only one capacity provider in a capacity provider strategy can have a base defined\\. If no value is specified, the default value of 0 is used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CapacityProvider": "The short name of the capacity provider\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Weight": "The weight value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider\\. The weight value is taken into consideration after the base value, if defined, is satisfied\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule DeadLetterConfig": { + "Arn": "The ARN of the SQS queue specified as the target for the dead\\-letter queue\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule EcsParameters": { + "CapacityProviderStrategy": "The capacity provider strategy to use for the task\\. \nIf a `capacityProviderStrategy` is specified, the `launchType` parameter must be omitted\\. If no `capacityProviderStrategy` or launchType is specified, the `defaultCapacityProviderStrategy` for the cluster is used\\. \n*Required*: No \n*Type*: List of [CapacityProviderStrategyItem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-capacityproviderstrategyitem.html) \n*Maximum*: `6` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableECSManagedTags": "Specifies whether to enable Amazon ECS managed tags for the task\\. For more information, see [Tagging Your Amazon ECS Resources](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) in the Amazon Elastic Container Service Developer Guide\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableExecuteCommand": "Whether or not to enable the execute command functionality for the containers in this task\\. If true, this enables execute command functionality on all containers in the task\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Group": "Specifies an ECS task group for the task\\. The maximum length is 255 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LaunchType": "Specifies the launch type on which your task is running\\. The launch type that you specify here must match one of the launch type \\(compatibilities\\) of the target task\\. The `FARGATE` value is supported only in the Regions where AWS Fargate with Amazon ECS is supported\\. For more information, see [AWS Fargate on Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS-Fargate.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `EC2 | EXTERNAL | FARGATE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkConfiguration": "Use this structure if the Amazon ECS task uses the `awsvpc` network mode\\. This structure specifies the VPC subnets and security groups associated with the task, and whether a public IP address is to be used\\. This structure is required if `LaunchType` is `FARGATE` because the `awsvpc` mode is required for Fargate tasks\\. \nIf you specify `NetworkConfiguration` when the target ECS task does not use the `awsvpc` network mode, the task fails\\. \n*Required*: No \n*Type*: [NetworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-networkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PlacementConstraints": "An array of placement constraint objects to use for the task\\. You can specify up to 10 constraints per task \\(including constraints in the task definition and those specified at runtime\\)\\. \n*Required*: No \n*Type*: List of [PlacementConstraint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-placementconstraint.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PlacementStrategies": "The placement strategy objects to use for the task\\. You can specify a maximum of five strategy rules per task\\. \n*Required*: No \n*Type*: List of [PlacementStrategy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-placementstrategy.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PlatformVersion": "Specifies the platform version for the task\\. Specify only the numeric portion of the platform version, such as `1.1.0`\\. \nThis structure is used only if `LaunchType` is `FARGATE`\\. For more information about valid platform versions, see [AWS Fargate Platform Versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PropagateTags": "Specifies whether to propagate the tags from the task definition to the task\\. If no value is specified, the tags are not propagated\\. Tags can only be propagated to the task during task creation\\. To add tags to a task after task creation, use the TagResource API action\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `TASK_DEFINITION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReferenceId": "The reference ID to use for the task\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TagList": "The metadata that you apply to the task to help you categorize and organize them\\. Each tag consists of a key and an optional value, both of which you define\\. To learn more, see [RunTask](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html#ECS-RunTask-request-tags) in the Amazon ECS API Reference\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-tag.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TaskCount": "The number of tasks to create based on `TaskDefinition`\\. The default is 1\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TaskDefinitionArn": "The ARN of the task definition to use if the event target is an Amazon ECS task\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule HttpParameters": { + "HeaderParameters": "The headers that need to be sent as part of request invoking the API Gateway API or EventBridge ApiDestination\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PathParameterValues": "The path parameter values to be used to populate API Gateway API or EventBridge ApiDestination path wildcards \\(\"\\*\"\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryStringParameters": "The query string keys/values that need to be sent as part of request invoking the API Gateway API or EventBridge ApiDestination\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule InputTransformer": { + "InputPathsMap": "Map of JSON paths to be extracted from the event\\. You can then insert these in the template in `InputTemplate` to produce the output you want to be sent to the target\\. \n `InputPathsMap` is an array key\\-value pairs, where each value is a valid JSON path\\. You can have as many as 100 key\\-value pairs\\. You must use JSON dot notation, not bracket notation\\. \nThe keys cannot start with \"AWS\\.\" \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputTemplate": "Input template where you specify placeholders that will be filled with the values of the keys from `InputPathsMap` to customize the data sent to the target\\. Enclose each `InputPathsMaps` value in brackets: <*value*> \nIf `InputTemplate` is a JSON object \\(surrounded by curly braces\\), the following restrictions apply: \n+ The placeholder cannot be used as an object key\\.\nThe following example shows the syntax for using `InputPathsMap` and `InputTemplate`\\. \n ` \"InputTransformer\":` \n `{` \n `\"InputPathsMap\": {\"instance\": \"$.detail.instance\",\"status\": \"$.detail.status\"},` \n `\"InputTemplate\": \" is in state \"` \n `}` \nTo have the `InputTemplate` include quote marks within a JSON string, escape each quote marks with a slash, as in the following example: \n ` \"InputTransformer\":` \n `{` \n `\"InputPathsMap\": {\"instance\": \"$.detail.instance\",\"status\": \"$.detail.status\"},` \n `\"InputTemplate\": \" is in state \\\"\\\"\"` \n `}` \nThe `InputTemplate` can also be valid JSON with varibles in quotes or out, as in the following example: \n ` \"InputTransformer\":` \n `{` \n `\"InputPathsMap\": {\"instance\": \"$.detail.instance\",\"status\": \"$.detail.status\"},` \n `\"InputTemplate\": '{\"myInstance\": ,\"myStatus\": \" is in state \\\"\\\"\"}'` \n `}` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `8192` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule KinesisParameters": { + "PartitionKeyPath": "The JSON path to be extracted from the event and used as the partition key\\. For more information, see [Amazon Kinesis Streams Key Concepts](https://docs.aws.amazon.com/streams/latest/dev/key-concepts.html#partition-key) in the *Amazon Kinesis Streams Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule NetworkConfiguration": { + "AwsVpcConfiguration": "Use this structure to specify the VPC subnets and security groups for the task, and whether a public IP address is to be used\\. This structure is relevant only for ECS tasks that use the `awsvpc` network mode\\. \n*Required*: No \n*Type*: [AwsVpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-awsvpcconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule PlacementConstraint": { + "Expression": "A cluster query language expression to apply to the constraint\\. You cannot specify an expression if the constraint type is `distinctInstance`\\. To learn more, see [Cluster Query Language](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html) in the Amazon Elastic Container Service Developer Guide\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of constraint\\. Use distinctInstance to ensure that each task in a particular group is running on a different container instance\\. Use memberOf to restrict the selection to a group of valid candidates\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `distinctInstance | memberOf` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule PlacementStrategy": { + "Field": "The field to apply the placement strategy against\\. For the spread placement strategy, valid values are instanceId \\(or host, which has the same effect\\), or any platform or custom attribute that is applied to a container instance, such as attribute:ecs\\.availability\\-zone\\. For the binpack placement strategy, valid values are cpu and memory\\. For the random placement strategy, this field is not used\\. \n*Required*: No \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of placement strategy\\. The random placement strategy randomly places tasks on available candidates\\. The spread placement strategy spreads placement across available candidates evenly based on the field parameter\\. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter\\. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory \\(but still enough to run the task\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `binpack | random | spread` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule RedshiftDataParameters": { + "Database": "The name of the database\\. Required when authenticating using temporary credentials\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DbUser": "The database user name\\. Required when authenticating using temporary credentials\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretManagerArn": "The name or ARN of the secret that enables access to the database\\. Required when authenticating using AWS Secrets Manager\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `(^arn:aws([a-z]|\\-)*:secretsmanager:[a-z0-9-.]+:.*)|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Sql": "The SQL statement text to run\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatementName": "The name of the SQL statement\\. You can name the SQL statement when you create it to identify the query\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WithEvent": "Indicates whether to send an event back to EventBridge after the SQL statement runs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule RetryPolicy": { + "MaximumEventAgeInSeconds": "The maximum amount of time, in seconds, to continue to make retry attempts\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `60` \n*Maximum*: `86400` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaximumRetryAttempts": "The maximum number of retry attempts to make before the request fails\\. Retry attempts continue until either the maximum number of attempts is made or until the duration of the `MaximumEventAgeInSeconds` is met\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `185` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule RunCommandParameters": { + "RunCommandTargets": "Currently, we support including only one RunCommandTarget block, which specifies either an array of InstanceIds or a tag\\. \n*Required*: Yes \n*Type*: List of [RunCommandTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandtarget.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule RunCommandTarget": { + "Key": "Can be either `tag:` *tag\\-key* or `InstanceIds`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "If `Key` is `tag:` *tag\\-key*, `Values` is a list of tag values\\. If `Key` is `InstanceIds`, `Values` is a list of Amazon EC2 instance IDs\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule SageMakerPipelineParameter": { + "Name": "Name of parameter to start execution of a SageMaker Model Building Pipeline\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9])*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "Value of parameter to start execution of a SageMaker Model Building Pipeline\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule SageMakerPipelineParameters": { + "PipelineParameterList": "List of Parameter names and values for SageMaker Model Building Pipeline execution\\. \n*Required*: No \n*Type*: List of [SageMakerPipelineParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-sagemakerpipelineparameter.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule SqsParameters": { + "MessageGroupId": "The FIFO message group ID to use as the target\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule Tag": { + "Key": "A string you can use to assign a value\\. The combination of tag keys and values can help you organize and categorize your resources\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value for the specified tag key\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Events::Rule Target": { + "Arn": "The Amazon Resource Name \\(ARN\\) of the target\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BatchParameters": "If the event target is an AWS Batch job, this contains the job definition, job name, and other parameters\\. For more information, see [Jobs](https://docs.aws.amazon.com/batch/latest/userguide/jobs.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: [BatchParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-batchparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeadLetterConfig": "The `DeadLetterConfig` that defines the target queue to send dead\\-letter queue events to\\. \n*Required*: No \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EcsParameters": "Contains the Amazon ECS task definition and task count to be used, if the event target is an Amazon ECS task\\. For more information about Amazon ECS tasks, see [Task Definitions ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon EC2 Container Service Developer Guide*\\. \n*Required*: No \n*Type*: [EcsParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HttpParameters": "Contains the HTTP parameters to use when the target is a API Gateway endpoint or EventBridge ApiDestination\\. \nIf you specify an API Gateway API or EventBridge ApiDestination as a target, you can use this parameter to specify headers, path parameters, and query string keys/values as part of your target invoking request\\. If you're using ApiDestinations, the corresponding Connection can also have these values configured\\. In case of any conflicting keys, values from the Connection take precedence\\. \n*Required*: No \n*Type*: [HttpParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-httpparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "The ID of the target within the specified rule\\. Use this ID to reference the target when updating the rule\\. We recommend using a memorable and unique string\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Input": "Valid JSON text passed to the target\\. In this case, nothing from the event itself is passed to the target\\. For more information, see [The JavaScript Object Notation \\(JSON\\) Data Interchange Format](http://www.rfc-editor.org/rfc/rfc7159.txt)\\. \n*Required*: No \n*Type*: String \n*Maximum*: `8192` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputPath": "The value of the JSONPath that is used for extracting part of the matched event when passing it to the target\\. You may use JSON dot notation or bracket notation\\. For more information about JSON paths, see [JSONPath](http://goessner.net/articles/JsonPath/)\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputTransformer": "Settings to enable you to provide custom input to a target based on certain event data\\. You can extract one or more key\\-value pairs from the event and then use that data to send customized input to the target\\. \n*Required*: No \n*Type*: [InputTransformer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KinesisParameters": "The custom parameter you can use to control the shard assignment, when the target is a Kinesis data stream\\. If you do not include this parameter, the default is to use the `eventId` as the partition key\\. \n*Required*: No \n*Type*: [KinesisParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-kinesisparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RedshiftDataParameters": "Contains the Amazon Redshift Data API parameters to use when the target is a Amazon Redshift cluster\\. \nIf you specify a Amazon Redshift Cluster as a Target, you can use this to specify parameters to invoke the Amazon Redshift Data API ExecuteStatement based on EventBridge events\\. \n*Required*: No \n*Type*: [RedshiftDataParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetryPolicy": "The `RetryPolicy` object that contains the retry policy configuration to use for the dead\\-letter queue\\. \n*Required*: No \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-retrypolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM role to be used for this target when the rule is triggered\\. If one rule triggers multiple targets, you can use a different IAM role for each target\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RunCommandParameters": "Parameters used when you are using the rule to invoke Amazon EC2 Run Command\\. \n*Required*: No \n*Type*: [RunCommandParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SageMakerPipelineParameters": "Contains the SageMaker Model Building Pipeline parameters to start execution of a SageMaker Model Building Pipeline\\. \nIf you specify a SageMaker Model Building Pipeline as a target, you can use this to specify parameters to start a pipeline execution based on EventBridge events\\. \n*Required*: No \n*Type*: [SageMakerPipelineParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-sagemakerpipelineparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SqsParameters": "Contains the message group ID to use when the target is a FIFO queue\\. \nIf you specify an SQS FIFO queue as a target, the queue must have content\\-based deduplication enabled\\. \n*Required*: No \n*Type*: [SqsParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-sqsparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Evidently::Experiment": { + "Description": "An optional description of the experiment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricGoals": "An array of structures that defines the metrics used for the experiment, and whether a higher or lower value for each metric is the goal\\. You can use up to three metrics in an experiment\\. \n*Required*: Yes \n*Type*: List of [MetricGoalObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-metricgoalobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A name for the new experiment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OnlineAbConfig": "A structure that contains the configuration of which variation to use as the \"control\" version\\. The \"control\" version is used for comparison with other variations\\. This structure also specifies how much experiment traffic is allocated to each variation\\. \n*Required*: Yes \n*Type*: [OnlineAbConfigObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-onlineabconfigobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Project": "The name or the ARN of the project where this experiment is to be created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RandomizationSalt": "When Evidently assigns a particular user session to an experiment, it must use a randomization ID to determine which variation the user session is served\\. This randomization ID is a combination of the entity ID and `randomizationSalt`\\. If you omit `randomizationSalt`, Evidently uses the experiment name as the `randomizationSalt`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SamplingRate": "The portion of the available audience that you want to allocate to this experiment, in thousandths of a percent\\. The available audience is the total audience minus the audience that you have allocated to overrides or current launches of this feature\\. \nThis is represented in thousandths of a percent\\. For example, specify 10,000 to allocate 10% of the available audience\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Assigns one or more tags \\(key\\-value pairs\\) to the experiment\\. \nTags can help you organize and categorize your resources\\. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values\\. \nTags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters\\. \nYou can associate as many as 50 tags with an experiment\\. \nFor more information, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Treatments": "An array of structures that describe the configuration of each feature variation used in the experiment\\. \n*Required*: Yes \n*Type*: List of [TreatmentObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmentobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Evidently::Experiment MetricGoalObject": { + "DesiredChange": "`INCREASE` means that a variation with a higher number for this metric is performing better\\. \n`DECREASE` means that a variation with a lower number for this metric is performing better\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EntityIdKey": "The entity, such as a user or session, that does an action that causes a metric value to be recorded\\. An example is `userDetails.userID`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventPattern": "The EventBridge event pattern that defines how the metric is recorded\\. \nFor more information about EventBridge event patterns, see [Amazon EventBridge event patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricName": "A name for the metric\\. It can include up to 255 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UnitLabel": "A label for the units that the metric is measuring\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ValueKey": "The JSON path to reference the numerical metric value in the event\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Evidently::Experiment OnlineAbConfigObject": { + "ControlTreatmentName": "The name of the variation that is to be the default variation that the other variations are compared to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TreatmentWeights": "A set of key\\-value pairs\\. The keys are treatment names, and the values are the portion of experiment traffic to be assigned to that treatment\\. Specify the traffic portion in thousandths of a percent, so 20,000 for a variation would allocate 20% of the experiment traffic to that variation\\. \n*Required*: No \n*Type*: List of [TreatmentToWeight](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmenttoweight.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Evidently::Experiment TreatmentObject": { + "Description": "The description of the treatment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Feature": "The name of the feature for this experiment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TreatmentName": "A name for this treatment\\. It can include up to 127 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Variation": "The name of the variation to use for this treatment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Evidently::Experiment TreatmentToWeight": { + "SplitWeight": "The portion of experiment traffic to allocate to this treatment\\. Specify the traffic portion in thousandths of a percent, so 20,000 allocated to a treatment would allocate 20% of the experiment traffic to that treatment\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Treatment": "The name of the treatment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Evidently::Feature": { + "DefaultVariation": "The name of the variation to use as the default variation\\. The default variation is served to users who are not allocated to any ongoing launches or experiments of this feature\\. \nThis variation must also be listed in the `Variations` structure\\. \nIf you omit `DefaultVariation`, the first variation listed in the `Variations` structure is used as the default variation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "An optional description of the feature\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EntityOverrides": "Specify users that should always be served a specific variation of a feature\\. Each user is specified by a key\\-value pair \\. For each key, specify a user by entering their user ID, account ID, or some other identifier\\. For the value, specify the name of the variation that they are to be served\\. \n*Required*: No \n*Type*: List of [EntityOverride](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-entityoverride.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EvaluationStrategy": "Specify `ALL_RULES` to activate the traffic allocation specified by any ongoing launches or experiments\\. Specify `DEFAULT_VARIATION` to serve the default variation to all users instead\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name for the feature\\. It can include up to 127 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Project": "The name or ARN of the project that is to contain the new feature\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Assigns one or more tags \\(key\\-value pairs\\) to the feature\\. \nTags can help you organize and categorize your resources\\. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values\\. \nTags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters\\. \nYou can associate as many as 50 tags with a feature\\. \nFor more information, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Variations": "An array of structures that contain the configuration of the feature's different variations\\. \nEach `VariationObject` in the `Variations` array for a feature must have the same type of value \\(`BooleanValue`, `DoubleValue`, `LongValue` or `StringValue`\\)\\. \n*Required*: Yes \n*Type*: List of [VariationObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-variationobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Evidently::Feature EntityOverride": { + "EntityId": "The entity ID to be served the variation specified in `Variation`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Variation": "The name of the variation to serve to the user session that matches the `EntityId`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Evidently::Feature VariationObject": { + "BooleanValue": "The value assigned to this variation, if the variation type is boolean\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DoubleValue": "The value assigned to this variation, if the variation type is a double\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LongValue": "The value assigned to this variation, if the variation type is a long\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StringValue": "The value assigned to this variation, if the variation type is a string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VariationName": "A name for the variation\\. It can include up to 127 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Evidently::Launch": { + "Description": "An optional description for the launch\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Groups": "An array of structures that contains the feature and variations that are to be used for the launch\\. You can up to five launch groups in a launch\\. \n*Required*: Yes \n*Type*: List of [LaunchGroupObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-launchgroupobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricMonitors": "An array of structures that define the metrics that will be used to monitor the launch performance\\. You can have up to three metric monitors in the array\\. \n*Required*: No \n*Type*: List of [MetricDefinitionObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-metricdefinitionobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name for the launch\\. It can include up to 127 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Project": "The name or ARN of the project that you want to create the launch in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RandomizationSalt": "When Evidently assigns a particular user session to a launch, it must use a randomization ID to determine which variation the user session is served\\. This randomization ID is a combination of the entity ID and `randomizationSalt`\\. If you omit `randomizationSalt`, Evidently uses the launch name as the `randomizationsSalt`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduledSplitsConfig": "An array of structures that define the traffic allocation percentages among the feature variations during each step of the launch\\. \n*Required*: Yes \n*Type*: List of [StepConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-stepconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Assigns one or more tags \\(key\\-value pairs\\) to the launch\\. \nTags can help you organize and categorize your resources\\. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values\\. \nTags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters\\. \nYou can associate as many as 50 tags with a launch\\. \nFor more information, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Evidently::Launch GroupToWeight": { + "GroupName": "The name of the launch group\\. It can include up to 127 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SplitWeight": "The portion of launch traffic to allocate to this launch group\\. \nThis is represented in thousandths of a percent\\. For example, specify 20,000 to allocate 20% of the launch audience to this launch group\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Evidently::Launch LaunchGroupObject": { + "Description": "A description of the launch group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Feature": "The feature that this launch is using\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GroupName": "A name for this launch group\\. It can include up to 127 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Variation": "The feature variation to use for this launch group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Evidently::Launch MetricDefinitionObject": { + "EntityIdKey": "The entity, such as a user or session, that does an action that causes a metric value to be recorded\\. An example is `userDetails.userID`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventPattern": "The EventBridge event pattern that defines how the metric is recorded\\. \nFor more information about EventBridge event patterns, see [Amazon EventBridge event patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricName": "A name for the metric\\. It can include up to 255 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UnitLabel": "A label for the units that the metric is measuring\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ValueKey": "The value that is tracked to produce the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Evidently::Launch StepConfig": { + "GroupWeights": "An array of structures that define how much launch traffic to allocate to each launch group during this step of the launch\\. \n*Required*: Yes \n*Type*: List of [GroupToWeight](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-grouptoweight.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StartTime": "The date and time to start this step of the launch\\. Use UTC format, `yyyy-MM-ddTHH:mm:ssZ`\\. For example, `2025-11-25T23:59:59Z` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Evidently::Project": { + "DataDelivery": "A structure that contains information about where Evidently is to store evaluation events for longer term storage, if you choose to do so\\. If you choose not to store these events, Evidently deletes them after using them to produce metrics and other experiment results that you can view\\. \nYou can't specify both `CloudWatchLogs` and `S3Destination` in the same operation\\. \n*Required*: No \n*Type*: [DataDeliveryObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-project-datadeliveryobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "An optional description of the project\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name for the project\\. It can include up to 127 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Assigns one or more tags \\(key\\-value pairs\\) to the project\\. \nTags can help you organize and categorize your resources\\. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values\\. \nTags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters\\. \nYou can associate as many as 50 tags with a project\\. \nFor more information, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Evidently::Project DataDeliveryObject": { + "LogGroup": "If the project stores evaluation events in CloudWatch Logs, this structure stores the log group name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3": "If the project stores evaluation events in an Amazon S3 bucket, this structure stores the bucket name and bucket prefix\\. \n*Required*: No \n*Type*: [S3Destination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-project-s3destination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Evidently::Project S3Destination": { + "BucketName": "The name of the bucket in which Evidently stores evaluation events\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "The bucket prefix in which Evidently stores evaluation events\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FIS::ExperimentTemplate": { + "Actions": "The actions for the experiment\\. \n*Required*: No \n*Type*: Map of [ExperimentTemplateAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplateaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description for the experiment template\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[\\s\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogConfiguration": "The configuration for experiment logging\\. \n*Required*: No \n*Type*: [ExperimentTemplateLogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatelogconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `[\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StopConditions": "The stop conditions\\. \n*Required*: Yes \n*Type*: List of [ExperimentTemplateStopCondition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatestopcondition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to apply to the experiment template\\. \n*Required*: Yes \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Targets": "The targets for the experiment\\. \n*Required*: Yes \n*Type*: Map of [ExperimentTemplateTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatetarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FIS::ExperimentTemplate ExperimentTemplateAction": { + "ActionId": "The ID of the action\\. The format of the action ID is: aws:*service\\-name*:*action\\-type*\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `[\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description for the action\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[\\s\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "The parameters for the action, if applicable\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StartAfter": "The name of the action that must be completed before the current action starts\\. Omit this parameter to run the action at the start of the experiment\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Targets": "The targets for the action\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FIS::ExperimentTemplate ExperimentTemplateLogConfiguration": { + "CloudWatchLogsConfiguration": "The configuration for experiment logging to Amazon CloudWatch Logs\\. The supported field is `logGroupArn`\\. For example: \n`{\"logGroupArn\": \"aws:arn:logs:region_name:account_id:log-group:log_group_name\"}` \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogSchemaVersion": "The schema version\\. The supported value is 1\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Configuration": "The configuration for experiment logging to Amazon S3\\. The following fields are supported: \n+ `bucketName` \\- The name of the destination bucket\\.\n+ `prefix` \\- An optional bucket prefix\\.\nFor example: \n`{\"bucketName\": \"my-s3-bucket\", \"prefix\": \"log-folder\"}` \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FIS::ExperimentTemplate ExperimentTemplateStopCondition": { + "Source": "The source for the stop condition\\. Specify `aws:cloudwatch:alarm` if the stop condition is defined by a CloudWatch alarm\\. Specify `none` if there is no stop condition\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `[\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The Amazon Resource Name \\(ARN\\) of the CloudWatch alarm\\. This is required if the source is a CloudWatch alarm\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `[\\s\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FIS::ExperimentTemplate ExperimentTemplateTarget": { + "Filters": "The filters to apply to identify target resources using specific attributes\\. \n*Required*: No \n*Type*: List of [ExperimentTemplateTargetFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatetargetfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "The parameters for the resource type\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceArns": "The Amazon Resource Names \\(ARNs\\) of the resources\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceTags": "The tags for the target resources\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceType": "The resource type\\. The resource type must be supported for the specified action\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `[\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SelectionMode": "Scopes the identified resources to a specific count of the resources at random, or a percentage of the resources\\. All identified resources are included in the target\\. \n+ ALL \\- Run the action on all identified targets\\. This is the default\\.\n+ COUNT\\(n\\) \\- Run the action on the specified number of targets, chosen from the identified targets at random\\. For example, COUNT\\(1\\) selects one of the targets\\.\n+ PERCENT\\(n\\) \\- Run the action on the specified percentage of targets, chosen from the identified targets at random\\. For example, PERCENT\\(25\\) selects 25% of the targets\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `[\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FIS::ExperimentTemplate ExperimentTemplateTargetFilter": { + "Path": "The attribute path for the filter\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `[\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "The attribute values for the filter\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FMS::NotificationChannel": { + "SnsRoleName": "The Amazon Resource Name \\(ARN\\) of the IAM role that allows Amazon SNS to record AWS Firewall Manager activity\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnsTopicArn": "The Amazon Resource Name \\(ARN\\) of the SNS topic that collects notifications from AWS Firewall Manager\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FMS::Policy": { + "DeleteAllPolicyResources": "Used when deleting a policy\\. If `true`, Firewall Manager performs cleanup according to the policy type\\. \nFor AWS WAF and Shield Advanced policies, Firewall Manager does the following: \n+ Deletes rule groups created by Firewall Manager\n+ Removes web ACLs from in\\-scope resources \n+ Deletes web ACLs that contain no rules or rule groups \nFor security group policies, Firewall Manager does the following for each security group in the policy: \n+ Disassociates the security group from in\\-scope resources \n+ Deletes the security group if it was created through Firewall Manager and if it's no longer associated with any resources through another policy \nAfter the cleanup, in\\-scope resources are no longer protected by web ACLs in this policy\\. Protection of out\\-of\\-scope resources remains unchanged\\. Scope is determined by tags that you create and accounts that you associate with the policy\\. When creating the policy, if you specify that only resources in specific accounts or with specific tags are in scope of the policy, those accounts and resources are handled by the policy\\. All others are out of scope\\. If you don't specify tags or accounts, all resources are in scope\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExcludeMap": "Specifies the AWS account IDs and AWS Organizations organizational units \\(OUs\\) to exclude from the policy\\. Specifying an OU is the equivalent of specifying all accounts in the OU and in any of its child OUs, including any child OUs and accounts that are added at a later time\\. \nYou can specify inclusions or exclusions, but not both\\. If you specify an `IncludeMap`, AWS Firewall Manager applies the policy to all accounts specified by the `IncludeMap`, and does not evaluate any `ExcludeMap` specifications\\. If you do not specify an `IncludeMap`, then Firewall Manager applies the policy to all accounts except for those specified by the `ExcludeMap`\\. \nYou can specify account IDs, OUs, or a combination: \n+ Specify account IDs by setting the key to `ACCOUNT`\\. For example, the following is a valid map: `{\u201cACCOUNT\u201d : [\u201caccountID1\u201d, \u201caccountID2\u201d]}`\\.\n+ Specify OUs by setting the key to `ORGUNIT`\\. For example, the following is a valid map: `{\u201cORGUNIT\u201d : [\u201couid111\u201d, \u201couid112\u201d]}`\\.\n+ Specify accounts and OUs together in a single map, separated with a comma\\. For example, the following is a valid map: `{\u201cACCOUNT\u201d : [\u201caccountID1\u201d, \u201caccountID2\u201d], \u201cORGUNIT\u201d : [\u201couid111\u201d, \u201couid112\u201d]}`\\.\n*Required*: No \n*Type*: [IEMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-iemap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExcludeResourceTags": "Used only when tags are specified in the `ResourceTags` property\\. If this property is `True`, resources with the specified tags are not in scope of the policy\\. If it's `False`, only resources with the specified tags are in scope of the policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeMap": "Specifies the AWS account IDs and AWS Organizations organizational units \\(OUs\\) to include in the policy\\. Specifying an OU is the equivalent of specifying all accounts in the OU and in any of its child OUs, including any child OUs and accounts that are added at a later time\\. \nYou can specify inclusions or exclusions, but not both\\. If you specify an `IncludeMap`, AWS Firewall Manager applies the policy to all accounts specified by the `IncludeMap`, and does not evaluate any `ExcludeMap` specifications\\. If you do not specify an `IncludeMap`, then Firewall Manager applies the policy to all accounts except for those specified by the `ExcludeMap`\\. \nYou can specify account IDs, OUs, or a combination: \n+ Specify account IDs by setting the key to `ACCOUNT`\\. For example, the following is a valid map: `{\u201cACCOUNT\u201d : [\u201caccountID1\u201d, \u201caccountID2\u201d]}`\\.\n+ Specify OUs by setting the key to `ORGUNIT`\\. For example, the following is a valid map: `{\u201cORGUNIT\u201d : [\u201couid111\u201d, \u201couid112\u201d]}`\\.\n+ Specify accounts and OUs together in a single map, separated with a comma\\. For example, the following is a valid map: `{\u201cACCOUNT\u201d : [\u201caccountID1\u201d, \u201caccountID2\u201d], \u201cORGUNIT\u201d : [\u201couid111\u201d, \u201couid112\u201d]}`\\.\n*Required*: No \n*Type*: [IEMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-iemap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PolicyName": "The name of the AWS Firewall Manager policy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RemediationEnabled": "Indicates if the policy should be automatically applied to new resources\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceTags": "An array of `ResourceTag` objects, used to explicitly include resources in the policy scope or explicitly exclude them\\. If this isn't set, then tags aren't used to modify policy scope\\. See also `ExcludeResourceTags`\\. \n*Required*: No \n*Type*: List of [ResourceTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-resourcetag.html) \n*Maximum*: `8` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceType": "The type of resource protected by or in scope of the policy\\. This is in the format shown in the [AWS Resource Types Reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)\\. To apply this policy to multiple resource types, specify a resource type of `ResourceTypeList` and then specify the resource types in a `ResourceTypeList`\\. \nFor AWS WAF and Shield Advanced, example resource types include `AWS::ElasticLoadBalancingV2::LoadBalancer` and `AWS::CloudFront::Distribution`\\. For a security group common policy, valid values are `AWS::EC2::NetworkInterface` and `AWS::EC2::Instance`\\. For a security group content audit policy, valid values are `AWS::EC2::SecurityGroup`, `AWS::EC2::NetworkInterface`, and `AWS::EC2::Instance`\\. For a security group usage audit policy, the value is `AWS::EC2::SecurityGroup`\\. For an AWS Network Firewall policy or DNS Firewall policy, the value is `AWS::EC2::VPC`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceTypeList": "An array of `ResourceType` objects\\. Use this only to specify multiple resource types\\. To specify a single resource type, use `ResourceType`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourcesCleanUp": "Indicates whether AWS Firewall Manager should automatically remove protections from resources that leave the policy scope and clean up resources that Firewall Manager is managing for accounts when those accounts leave policy scope\\. For example, Firewall Manager will disassociate a Firewall Manager managed web ACL from a protected customer resource when the customer resource leaves policy scope\\. \nBy default, Firewall Manager doesn't remove protections or delete Firewall Manager managed resources\\. \nThis option is not available for Shield Advanced or AWS WAF Classic policies\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityServicePolicyData": "Details about the security service that is being used to protect the resources\\. \nThis contains the following settings: \n+ Type \\- Indicates the service type that the policy uses to protect the resource\\. For security group policies, Firewall Manager supports one security group for each common policy and for each content audit policy\\. This is an adjustable limit that you can increase by contacting AWS Support\\.", + "Tags": "A collection of key:value pairs associated with an AWS resource\\. The key:value pair can be anything you define\\. Typically, the tag key represents a category \\(such as \"environment\"\\) and the tag value represents a specific value within that category \\(such as \"test,\" \"development,\" or \"production\"\\)\\. You can add up to 50 tags to each AWS resource\\. \n*Required*: No \n*Type*: List of [PolicyTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-policytag.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FMS::Policy IEMap": { + "ACCOUNT": "The account list for the map\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ORGUNIT": "The organizational unit list for the map\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FMS::Policy PolicyTag": { + "Key": "Part of the key:value pair that defines a tag\\. You can use a tag key to describe a category of information, such as \"customer\\.\" Tag keys are case\\-sensitive\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "Part of the key:value pair that defines a tag\\. You can use a tag value to describe a specific value within a category, such as \"companyA\" or \"companyB\\.\" Tag values are case\\-sensitive\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FMS::Policy ResourceTag": { + "Key": "The resource tag key\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The resource tag value\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FSx::FileSystem": { + "BackupId": "The ID of the source backup\\. Specifies the backup that you are copying\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FileSystemType": "The type of Amazon FSx file system, which can be `LUSTRE`, `WINDOWS`, `ONTAP`, or `OPENZFS`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FileSystemTypeVersion": "\\(Optional\\) For FSx for Lustre file systems, sets the Lustre version for the file system that you're creating\\. Valid values are `2.10` and `2.12`: \n+ 2\\.10 is supported by the Scratch and Persistent\\_1 Lustre deployment types\\.\n+ 2\\.12 is supported by all Lustre deployment types\\. `2.12` is required when setting FSx for Lustre `DeploymentType` to `PERSISTENT_2`\\.\nDefault value = `2.10`, except when `DeploymentType` is set to `PERSISTENT_2`, then the default is `2.12`\\. \nIf you set `FileSystemTypeVersion` to `2.10` for a `PERSISTENT_2` Lustre deployment type, the `CreateFileSystem` operation fails\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `20` \n*Pattern*: `^[0-9](.[0-9]*)*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KmsKeyId": "The ID of the AWS Key Management Service \\(AWS KMS\\) key used to encrypt the file system's data for Amazon FSx for Windows File Server file systems, Amazon FSx for NetApp ONTAP file systems, and `PERSISTENT` Amazon FSx for Lustre file systems at rest\\. If this ID isn't specified, the Amazon FSx\\-managed key for your account is used\\. The scratch Amazon FSx for Lustre file systems are always encrypted at rest using the Amazon FSx\\-managed key for your account\\. For more information, see [Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) in the * AWS Key Management Service API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LustreConfiguration": "The Lustre configuration for the file system being created\\. \nThe following parameters are not supported for file systems with the `Persistent_2` deployment type\\. Instead, use `CreateDataRepositoryAssociation` to create a data repository association to link your Lustre file system to a data repository\\. \n+ `AutoImportPolicy` \n+ `ExportPath` \n+ `ImportedChunkSize` \n+ `ImportPath` \n*Required*: No \n*Type*: [LustreConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OntapConfiguration": "The ONTAP configuration properties of the FSx for ONTAP file system that you are creating\\. \n*Required*: No \n*Type*: [OntapConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OpenZFSConfiguration": "The Amazon FSx for OpenZFS configuration properties for the file system that you are creating\\. \n*Required*: No \n*Type*: [OpenZFSConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroupIds": "A list of IDs specifying the security groups to apply to all network interfaces created for file system access\\. This list isn't returned in later requests to describe the file system\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StorageCapacity": "Sets the storage capacity of the file system that you're creating\\. `StorageCapacity` is required if you are creating a new file system\\. Do not include `StorageCapacity` if you are creating a file system from a backup\\. \nFor Lustre file systems: \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StorageType": "Sets the storage type for the file system that you're creating\\. Valid values are `SSD` and `HDD`\\. \n+ Set to `SSD` to use solid state drive storage\\. SSD is supported on all Windows, Lustre, ONTAP, and OpenZFS deployment types\\.\n+ Set to `HDD` to use hard disk drive storage\\. HDD is supported on `SINGLE_AZ_2` and `MULTI_AZ_1` Windows file system deployment types, and on `PERSISTENT` Lustre file system deployment types\\. \nDefault value is `SSD`\\. For more information, see [ Storage type options](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/optimize-fsx-costs.html#storage-type-options) in the *FSx for Windows File Server User Guide* and [Multiple storage options](https://docs.aws.amazon.com/fsx/latest/LustreGuide/what-is.html#storage-options) in the *FSx for Lustre User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `HDD | SSD` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetIds": "Specifies the IDs of the subnets that the file system will be accessible from\\. For Windows and ONTAP `MULTI_AZ_1` deployment types,provide exactly two subnet IDs, one for the preferred file server and one for the standby file server\\. You specify one of these subnets as the preferred subnet using the `WindowsConfiguration > PreferredSubnetID` or `OntapConfiguration > PreferredSubnetID` properties\\. For more information about Multi\\-AZ file system configuration, see [ Availability and durability: Single\\-AZ and Multi\\-AZ file systems](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html) in the *Amazon FSx for Windows User Guide* and [ Availability and durability](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/high-availability-multiAZ.html) in the *Amazon FSx for ONTAP User Guide*\\. \nFor Windows `SINGLE_AZ_1` and `SINGLE_AZ_2` and all Lustre deployment types, provide exactly one subnet ID\\. The file server is launched in that subnet's Availability Zone\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags to associate with the file system\\. For more information, see [Tagging your Amazon EC2 resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WindowsConfiguration": "The configuration object for the Microsoft Windows file system you are creating\\. This value is required if `FileSystemType` is set to `WINDOWS`\\. \n*Required*: Conditional \n*Type*: [WindowsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FSx::FileSystem AuditLogConfiguration": { + "AuditLogDestination": "The Amazon Resource Name \\(ARN\\) for the destination of the audit logs\\. The destination can be any Amazon CloudWatch Logs log group ARN or Amazon Kinesis Data Firehose delivery stream ARN\\. \nThe name of the Amazon CloudWatch Logs log group must begin with the `/aws/fsx` prefix\\. The name of the Amazon Kinesis Data Firehouse delivery stream must begin with the `aws-fsx` prefix\\. \nThe destination ARN \\(either CloudWatch Logs log group or Kinesis Data Firehose delivery stream\\) must be in the same AWS partition, AWS Region, and AWS account as your Amazon FSx file system\\. \n*Required*: No \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `1024` \n*Pattern*: `^arn:[^:]{1,63}:[^:]{0,63}:[^:]{0,63}:(?:|\\d{12}):[^/].{0,1023}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FileAccessAuditLogLevel": "Sets which attempt type is logged by Amazon FSx for file and folder accesses\\. \n+ `SUCCESS_ONLY` \\- only successful attempts to access files or folders are logged\\.\n+ `FAILURE_ONLY` \\- only failed attempts to access files or folders are logged\\.\n+ `SUCCESS_AND_FAILURE` \\- both successful attempts and failed attempts to access files or folders are logged\\.\n+ `DISABLED` \\- access auditing of files and folders is turned off\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | FAILURE_ONLY | SUCCESS_AND_FAILURE | SUCCESS_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FileShareAccessAuditLogLevel": "Sets which attempt type is logged by Amazon FSx for file share accesses\\. \n+ `SUCCESS_ONLY` \\- only successful attempts to access file shares are logged\\.\n+ `FAILURE_ONLY` \\- only failed attempts to access file shares are logged\\.\n+ `SUCCESS_AND_FAILURE` \\- both successful attempts and failed attempts to access file shares are logged\\.\n+ `DISABLED` \\- access auditing of file shares is turned off\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | FAILURE_ONLY | SUCCESS_AND_FAILURE | SUCCESS_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FSx::FileSystem ClientConfigurations": { + "Clients": "A value that specifies who can mount the file system\\. You can provide a wildcard character \\(`*`\\), an IP address \\(`0.0.0.0`\\), or a CIDR address \\(`192.0.2.0/24`\\)\\. By default, Amazon FSx uses the wildcard character when specifying the client\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[ -~]{1,128}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Options": "The options to use when mounting the file system\\. For a list of options that you can use with Network File System \\(NFS\\), see the [exports\\(5\\) \\- Linux man page](https://linux.die.net/man/5/exports)\\. When choosing your options, consider the following: \n+ `crossmnt` is used by default\\. If you don't specify `crossmnt` when changing the client configuration, you won't be able to see or access snapshots in your file system's snapshot directory\\.\n+ `sync` is used by default\\. If you instead specify `async`, the system acknowledges writes before writing to disk\\. If the system crashes before the writes are finished, you lose the unwritten data\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::FSx::FileSystem DiskIopsConfiguration": { + "Iops": "The total number of SSD IOPS provisioned for the file system\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Mode": "Specifies whether the number of IOPS for the file system is using the system default \\(`AUTOMATIC`\\) or was provisioned by the customer \\(`USER_PROVISIONED`\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUTOMATIC | USER_PROVISIONED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::FSx::FileSystem LustreConfiguration": { + "AutoImportPolicy": "\\(Optional\\) Available with `Scratch` and `Persistent_1` deployment types\\. When you create your file system, your existing S3 objects appear as file and directory listings\\. Use this property to choose how Amazon FSx keeps your file and directory listings up to date as you add or modify objects in your linked S3 bucket\\. `AutoImportPolicy` can have the following values: \n+ `NONE` \\- \\(Default\\) AutoImport is off\\. Amazon FSx only updates file and directory listings from the linked S3 bucket when the file system is created\\. FSx does not update file and directory listings for any new or changed objects after choosing this option\\.\n+ `NEW` \\- AutoImport is on\\. Amazon FSx automatically imports directory listings of any new objects added to the linked S3 bucket that do not currently exist in the FSx file system\\. \n+ `NEW_CHANGED` \\- AutoImport is on\\. Amazon FSx automatically imports file and directory listings of any new objects added to the S3 bucket and any existing objects that are changed in the S3 bucket after you choose this option\\.\n+ `NEW_CHANGED_DELETED` \\- AutoImport is on\\. Amazon FSx automatically imports file and directory listings of any new objects added to the S3 bucket, any existing objects that are changed in the S3 bucket, and any objects that were deleted in the S3 bucket\\.\nFor more information, see [ Automatically import updates from your S3 bucket](https://docs.aws.amazon.com/fsx/latest/LustreGuide/autoimport-data-repo.html)\\. \nThis parameter is not supported for file systems with the `Persistent_2` deployment type\\. Instead, use `CreateDataRepositoryAssociation` to create a data repository association to link your Lustre file system to a data repository\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `NEW | NEW_CHANGED | NEW_CHANGED_DELETED | NONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutomaticBackupRetentionDays": "The number of days to retain automatic backups\\. Setting this to 0 disables automatic backups\\. You can retain automatic backups for a maximum of 90 days\\. The default is 0\\. Only valid for use with `PERSISTENT_1` deployment types\\. For more information, see [Working with backups](https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html) in the *Amazon FSx for Lustre User Guide*\\. \\(Default = 0\\) \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `90` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CopyTagsToBackups": "A Boolean flag indicating whether tags for the file system should be copied to backups\\. This value defaults to false\\. If it's set to true, all tags for the file system are copied to all automatic and user\\-initiated backups where the user doesn't specify tags\\. If this value is true, and you specify one or more tags, only the specified tags are copied to backups\\. If you specify one or more tags when creating a user\\-initiated backup, no tags are copied from the file system, regardless of this value\\. Only valid for use with `PERSISTENT_1` deployment types\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DailyAutomaticBackupStartTime": "A recurring daily time, in the format` HH:MM`\\. `HH` is the zero\\-padded hour of the day \\(0\\-23\\), and `MM` is the zero\\-padded minute of the hour\\. For example, `05:00` specifies 5 AM daily\\. Only valid for use with `PERSISTENT_1` deployment types\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataCompressionType": "Sets the data compression configuration for the file system\\. `DataCompressionType` can have the following values: \n+ `NONE` \\- \\(Default\\) Data compression is turned off when the file system is created\\.\n+ `LZ4` \\- Data compression is turned on with the LZ4 algorithm\\.\nFor more information, see [Lustre data compression](https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-compression.html) in the *Amazon FSx for Lustre User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `LZ4 | NONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeploymentType": "\\(Optional\\) Choose `SCRATCH_1` and `SCRATCH_2` deployment types when you need temporary storage and shorter\\-term processing of data\\. The `SCRATCH_2` deployment type provides in\\-transit encryption of data and higher burst throughput capacity than `SCRATCH_1`\\. \nChoose `PERSISTENT_1` for longer\\-term storage and for throughput\\-focused workloads that aren\u2019t latency\\-sensitive\\. `PERSISTENT_1` supports encryption of data in transit, and is available in all AWS Regions in which FSx for Lustre is available\\. \nChoose `PERSISTENT_2` for longer\\-term storage and for latency\\-sensitive workloads that require the highest levels of IOPS/throughput\\. `PERSISTENT_2` supports SSD storage, and offers higher `PerUnitStorageThroughput` \\(up to 1000 MB/s/TiB\\)\\. `PERSISTENT_2` is available in a limited number of AWS Regions\\. For more information, and an up\\-to\\-date list of AWS Regions in which `PERSISTENT_2` is available, see [File system deployment options for FSx for Lustre](https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-fsx-lustre.html#lustre-deployment-types) in the *Amazon FSx for Lustre User Guide*\\. \nIf you choose `PERSISTENT_2`, and you set `FileSystemTypeVersion` to `2.10`, the `CreateFileSystem` operation fails\\.\nEncryption of data in transit is automatically turned on when you access `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` file systems from Amazon EC2 instances that [support automatic encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data- protection.html) in the AWS Regions where they are available\\. For more information about encryption in transit for FSx for Lustre file systems, see [Encrypting data in transit](https://docs.aws.amazon.com/fsx/latest/LustreGuide/encryption-in-transit-fsxl.html) in the *Amazon FSx for Lustre User Guide*\\. \n\\(Default = `SCRATCH_1`\\) \n*Required*: No \n*Type*: String \n*Allowed values*: `PERSISTENT_1 | PERSISTENT_2 | SCRATCH_1 | SCRATCH_2` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DriveCacheType": "The type of drive cache used by `PERSISTENT_1` file systems that are provisioned with HDD storage devices\\. This parameter is required when storage type is HDD\\. Set this property to `READ` to improve the performance for frequently accessed files by caching up to 20% of the total storage capacity of the file system\\. \nThis parameter is required when `StorageType` is set to `HDD`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | READ` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ExportPath": "\\(Optional\\) Available with `Scratch` and `Persistent_1` deployment types\\. Specifies the path in the Amazon S3 bucket where the root of your Amazon FSx file system is exported\\. The path must use the same Amazon S3 bucket as specified in ImportPath\\. You can provide an optional prefix to which new and changed data is to be exported from your Amazon FSx for Lustre file system\\. If an `ExportPath` value is not provided, Amazon FSx sets a default export path, `s3://import-bucket/FSxLustre[creation-timestamp]`\\. The timestamp is in UTC format, for example `s3://import-bucket/FSxLustre20181105T222312Z`\\. \nThe Amazon S3 export bucket must be the same as the import bucket specified by `ImportPath`\\. If you specify only a bucket name, such as `s3://import-bucket`, you get a 1:1 mapping of file system objects to S3 bucket objects\\. This mapping means that the input data in S3 is overwritten on export\\. If you provide a custom prefix in the export path, such as `s3://import-bucket/[custom-optional-prefix]`, Amazon FSx exports the contents of your file system to that export prefix in the Amazon S3 bucket\\. \nThis parameter is not supported for file systems with the `Persistent_2` deployment type\\. Instead, use `CreateDataRepositoryAssociation` to create a data repository association to link your Lustre file system to a data repository\\.\n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `4357` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{3,4357}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ImportPath": "\\(Optional\\) The path to the Amazon S3 bucket \\(including the optional prefix\\) that you're using as the data repository for your Amazon FSx for Lustre file system\\. The root of your FSx for Lustre file system will be mapped to the root of the Amazon S3 bucket you select\\. An example is `s3://import-bucket/optional-prefix`\\. If you specify a prefix after the Amazon S3 bucket name, only object keys with that prefix are loaded into the file system\\. \nThis parameter is not supported for file systems with the `Persistent_2` deployment type\\. Instead, use `CreateDataRepositoryAssociation`to create a data repository association to link your Lustre file system to a data repository\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `4357` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{3,4357}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ImportedFileChunkSize": "\\(Optional\\) For files imported from a data repository, this value determines the stripe count and maximum amount of data per file \\(in MiB\\) stored on a single physical disk\\. The maximum number of disks that a single file can be striped across is limited by the total number of disks that make up the file system\\. \nThe default chunk size is 1,024 MiB \\(1 GiB\\) and can go as high as 512,000 MiB \\(500 GiB\\)\\. Amazon S3 objects have a maximum size of 5 TB\\. \nThis parameter is not supported for file systems with the `Persistent_2` deployment type\\. Instead, use `CreateDataRepositoryAssociation` to create a data repository association to link your Lustre file system to a data repository\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `512000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PerUnitStorageThroughput": "Required with `PERSISTENT_1` and `PERSISTENT_2` deployment types, provisions the amount of read and write throughput for each 1 tebibyte \\(TiB\\) of file system storage capacity, in MB/s/TiB\\. File system throughput capacity is calculated by multiplying \ufb01le system storage capacity \\(TiB\\) by the `PerUnitStorageThroughput` \\(MB/s/TiB\\)\\. For a 2\\.4\\-TiB \ufb01le system, provisioning 50 MB/s/TiB of `PerUnitStorageThroughput` yields 120 MB/s of \ufb01le system throughput\\. You pay for the amount of throughput that you provision\\. \nValid values: \n+ For `PERSISTENT_1` SSD storage: 50, 100, 200 MB/s/TiB\\.\n+ For `PERSISTENT_1` HDD storage: 12, 40 MB/s/TiB\\.\n+ For `PERSISTENT_2` SSD storage: 125, 250, 500, 1000 MB/s/TiB\\.\n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `12` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "WeeklyMaintenanceStartTime": "\\(Optional\\) The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC time zone, where d is the weekday number, from 1 through 7, beginning with Monday and ending with Sunday\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FSx::FileSystem NfsExports": { + "ClientConfigurations": "A list of configuration objects that contain the client and options for mounting the OpenZFS file system\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-nfsexports-clientconfigurations.html) of [ClientConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-nfsexports-clientconfigurations.html) \n*Maximum*: `25` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::FSx::FileSystem OntapConfiguration": { + "AutomaticBackupRetentionDays": "The number of days to retain automatic backups\\. Setting this property to `0` disables automatic backups\\. You can retain automatic backups for a maximum of 90 days\\. The default is `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DailyAutomaticBackupStartTime": "A recurring daily time, in the format `HH:MM`\\. `HH` is the zero\\-padded hour of the day \\(0\\-23\\), and `MM` is the zero\\-padded minute of the hour\\. For example, `05:00` specifies 5 AM daily\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeploymentType": "Specifies the FSx for ONTAP file system deployment type to use in creating the file system\\. `MULTI_AZ_1` is the supported ONTAP deployment type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `MULTI_AZ_1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DiskIopsConfiguration": "The SSD IOPS configuration for the FSx for ONTAP file system\\. \n*Required*: No \n*Type*: [DiskIopsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-diskiopsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EndpointIpAddressRange": "Specifies the IP address range in which the endpoints to access your file system will be created\\. By default, Amazon FSx selects an unused IP address range for you from the 198\\.19\\.\\* range\\. \nThe Endpoint IP address range you select for your file system must exist outside the VPC's CIDR range and must be at least /30 or larger\\.\n*Required*: No \n*Type*: String \n*Minimum*: `9` \n*Maximum*: `17` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{9,17}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FsxAdminPassword": "The ONTAP administrative password for the `fsxadmin` user with which you administer your file system using the NetApp ONTAP CLI and REST API\\. \n*Required*: No \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `50` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{8,50}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreferredSubnetId": "Required when `DeploymentType` is set to `MULTI_AZ_1`\\. This specifies the subnet in which you want the preferred file server to be located\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RouteTableIds": "Specifies the virtual private cloud \\(VPC\\) route tables in which your file system's endpoints will be created\\. You should specify all VPC route tables associated with the subnets in which your clients are located\\. By default, Amazon FSx selects your VPC's default route table\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ThroughputCapacity": "Sets the throughput capacity for the file system that you're creating\\. Valid values are 128, 256, 512, 1024, and 2048 MBps\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `8` \n*Maximum*: `4096` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "WeeklyMaintenanceStartTime": "A recurring weekly time, in the format `D:HH:MM`\\. \n `D` is the day of the week, for which 1 represents Monday and 7 represents Sunday\\. For further details, see [the ISO\\-8601 spec as described on Wikipedia](https://en.wikipedia.org/wiki/ISO_week_date)\\. \n `HH` is the zero\\-padded hour of the day \\(0\\-23\\), and `MM` is the zero\\-padded minute of the hour\\. \nFor example, `1:05:00` specifies maintenance at 5 AM Monday\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FSx::FileSystem OpenZFSConfiguration": { + "AutomaticBackupRetentionDays": "The number of days to retain automatic backups\\. Setting this property to `0` disables automatic backups\\. You can retain automatic backups for a maximum of 90 days\\. The default is `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CopyTagsToBackups": "A Boolean value indicating whether tags for the file system should be copied to backups\\. This value defaults to `false`\\. If it's set to `true`, all tags for the file system are copied to all automatic and user\\-initiated backups where the user doesn't specify tags\\. If this value is `true`, and you specify one or more tags, only the specified tags are copied to backups\\. If you specify one or more tags when creating a user\\-initiated backup, no tags are copied from the file system, regardless of this value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CopyTagsToVolumes": "A Boolean value indicating whether tags for the volume should be copied to snapshots\\. This value defaults to `false`\\. If it's set to `true`, all tags for the volume are copied to snapshots where the user doesn't specify tags\\. If this value is `true`, and you specify one or more tags, only the specified tags are copied to snapshots\\. If you specify one or more tags when creating the snapshot, no tags are copied from the volume, regardless of this value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DailyAutomaticBackupStartTime": "A recurring daily time, in the format `HH:MM`\\. `HH` is the zero\\-padded hour of the day \\(0\\-23\\), and `MM` is the zero\\-padded minute of the hour\\. For example, `05:00` specifies 5 AM daily\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeploymentType": "Specifies the file system deployment type\\. Amazon FSx for OpenZFS supports `SINGLE_AZ_1`\\. `SINGLE_AZ_1` deployment type is configured for redundancy within a single Availability Zone\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SINGLE_AZ_1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DiskIopsConfiguration": "The SSD IOPS \\(input/output operations per second\\) configuration for an Amazon FSx for NetApp ONTAP or Amazon FSx for OpenZFS file system\\. The default is 3 IOPS per GB of storage capacity, but you can provision additional IOPS per GB of storage\\. The configuration consists of the total number of provisioned SSD IOPS and how the amount was provisioned \\(by the customer or by the system\\)\\. \n*Required*: No \n*Type*: [DiskIopsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-diskiopsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RootVolumeConfiguration": "The configuration Amazon FSx uses when creating the root value of the Amazon FSx for OpenZFS file system\\. All volumes are children of the root volume\\. \n*Required*: No \n*Type*: [RootVolumeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThroughputCapacity": "Specifies the throughput of an Amazon FSx for OpenZFS file system, measured in megabytes per second \\(MB/s\\)\\. Valid values are 64, 128, 256, 512, 1024, 2048, 3072, or 4096 MB/s\\. You pay for additional throughput capacity that you provision\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `8` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WeeklyMaintenanceStartTime": "A recurring weekly time, in the format `D:HH:MM`\\. \n `D` is the day of the week, for which 1 represents Monday and 7 represents Sunday\\. For further details, see [the ISO\\-8601 spec as described on Wikipedia](https://en.wikipedia.org/wiki/ISO_week_date)\\. \n `HH` is the zero\\-padded hour of the day \\(0\\-23\\), and `MM` is the zero\\-padded minute of the hour\\. \nFor example, `1:05:00` specifies maintenance at 5 AM Monday\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FSx::FileSystem RootVolumeConfiguration": { + "CopyTagsToSnapshots": "A Boolean value indicating whether tags for the volume should be copied to snapshots of the volume\\. This value defaults to `false`\\. If it's set to `true`, all tags for the volume are copied to snapshots where the user doesn't specify tags\\. If this value is `true` and you specify one or more tags, only the specified tags are copied to snapshots\\. If you specify one or more tags when creating the snapshot, no tags are copied from the volume, regardless of this value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DataCompressionType": "Specifies the method used to compress the data on the volume\\. The compression type is `NONE` by default\\. \n+ `NONE` \\- Doesn't compress the data on the volume\\. `NONE` is the default\\.\n+ `ZSTD` \\- Compresses the data in the volume using the Zstandard \\(ZSTD\\) compression algorithm\\. Compared to LZ4, Z\\-Standard provides a better compression ratio to minimize on\\-disk storage utilization\\.\n+ `LZ4` \\- Compresses the data in the volume using the LZ4 compression algorithm\\. Compared to Z\\-Standard, LZ4 is less compute\\-intensive and delivers higher write throughput speeds\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `LZ4 | NONE | ZSTD` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NfsExports": "The configuration object for mounting a file system\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-nfsexports.html) of [NfsExports](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-nfsexports.html) \n*Maximum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ReadOnly": "A Boolean value indicating whether the volume is read\\-only\\. Setting this value to `true` can be useful after you have completed changes to a volume and no longer want changes to occur\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UserAndGroupQuotas": "An object specifying how much storage users or groups can use on the volume\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-userandgroupquotas.html) of [UserAndGroupQuotas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-userandgroupquotas.html) \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::FSx::FileSystem SelfManagedActiveDirectoryConfiguration": { + "DnsIps": "A list of up to three IP addresses of DNS servers or domain controllers in the self\\-managed AD directory\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainName": "The fully qualified domain name of the self\\-managed AD directory, such as `corp.example.com`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,255}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FileSystemAdministratorsGroup": "\\(Optional\\) The name of the domain group whose members are granted administrative privileges for the file system\\. Administrative privileges include taking ownership of files and folders, setting audit controls \\(audit ACLs\\) on files and folders, and administering the file system remotely by using the FSx Remote PowerShell\\. The group that you specify must already exist in your domain\\. If you don't provide one, your AD domain's Domain Admins group is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,256}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OrganizationalUnitDistinguishedName": "\\(Optional\\) The fully qualified distinguished name of the organizational unit within your self\\-managed AD directory\\. Amazon FSx only accepts OU as the direct parent of the file system\\. An example is `OU=FSx,DC=yourdomain,DC=corp,DC=com`\\. To learn more, see [RFC 2253](https://tools.ietf.org/html/rfc2253)\\. If none is provided, the FSx file system is created in the default location of your self\\-managed AD directory\\. \nOnly Organizational Unit \\(OU\\) objects can be the direct parent of the file system that you're creating\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2000` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,2000}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Password": "The password for the service account on your self\\-managed AD domain that Amazon FSx will use to join to your AD domain\\. We strongly suggest that you follow best practices and *do not* embed passwords in your CFN templates\\. \nThe recommended approach is to use AWS Secrets Manager to store your passwords\\. You can retrieve them for use in your templates using the `secretsmanager` dynamic reference\\. There are additional costs associated with using AWS Secrets Manager\\. To learn more, see [Secrets Manager secrets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) in the *AWS CloudFormation User Guide*\\. \nAlternatively, you can use the `NoEcho` property to obfuscate the password parameter value\\. For more information, see [Do Not Embed Credentials in Your Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#creds) in the *AWS CloudFormation User Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^.{1,256}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserName": "The user name for the service account on your self\\-managed AD domain that Amazon FSx will use to join to your AD domain\\. This account must have the permission to join computers to the domain in the organizational unit provided in `OrganizationalUnitDistinguishedName`, or in the default location of your AD domain\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,256}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FSx::FileSystem UserAndGroupQuotas": { + "Id": "The ID of the user or group\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StorageCapacityQuotaGiB": "The amount of storage that the user or group can use in gibibytes \\(GiB\\)\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "A value that specifies whether the quota applies to a user or group\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GROUP | USER` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::FSx::FileSystem WindowsConfiguration": { + "ActiveDirectoryId": "The ID for an existing AWS Managed Microsoft Active Directory \\(AD\\) instance that the file system should join when it's created\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^d-[0-9a-f]{10}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Aliases": "An array of one or more DNS alias names that you want to associate with the Amazon FSx file system\\. Aliases allow you to use existing DNS names to access the data in your Amazon FSx file system\\. You can associate up to 50 aliases with a file system at any time\\. \nFor more information, see [Working with DNS Aliases](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html) and [Walkthrough 5: Using DNS aliases to access your file system](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/walkthrough05-file-system-custom-CNAME.html), including additional steps you must take to be able to access your file system using a DNS alias\\. \nAn alias name has to meet the following requirements: \n+ Formatted as a fully\\-qualified domain name \\(FQDN\\), `hostname.domain`, for example, `accounting.example.com`\\.\n+ Can contain alphanumeric characters, the underscore \\(\\_\\), and the hyphen \\(\\-\\)\\.\n+ Cannot start or end with a hyphen\\.\n+ Can start with a numeric\\.\nFor DNS alias names, Amazon FSx stores alphabetical characters as lowercase letters \\(a\\-z\\), regardless of how you specify them: as uppercase letters, lowercase letters, or the corresponding letters in escape codes\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuditLogConfiguration": "The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system\\. \n*Required*: No \n*Type*: [AuditLogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-auditlogconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutomaticBackupRetentionDays": "The number of days to retain automatic backups\\. The default is to retain backups for 7 days\\. Setting this value to 0 disables the creation of automatic backups\\. The maximum retention period for backups is 90 days\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `90` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CopyTagsToBackups": "A Boolean flag indicating whether tags for the file system should be copied to backups\\. This value defaults to false\\. If it's set to true, all tags for the file system are copied to all automatic and user\\-initiated backups where the user doesn't specify tags\\. If this value is true, and you specify one or more tags, only the specified tags are copied to backups\\. If you specify one or more tags when creating a user\\-initiated backup, no tags are copied from the file system, regardless of this value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DailyAutomaticBackupStartTime": "The preferred time to take daily automatic backups, formatted HH:MM in the UTC time zone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeploymentType": "Specifies the file system deployment type, valid values are the following: \n+ `MULTI_AZ_1` \\- Deploys a high availability file system that is configured for Multi\\-AZ redundancy to tolerate temporary Availability Zone \\(AZ\\) unavailability\\. You can only deploy a Multi\\-AZ file system in AWS Regions that have a minimum of three Availability Zones\\. Also supports HDD storage type\n+ `SINGLE_AZ_1` \\- \\(Default\\) Choose to deploy a file system that is configured for single AZ redundancy\\.\n+ `SINGLE_AZ_2` \\- The latest generation Single AZ file system\\. Specifies a file system that is configured for single AZ redundancy and supports HDD storage type\\.\nFor more information, see [ Availability and Durability: Single\\-AZ and Multi\\-AZ File Systems](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `MULTI_AZ_1 | SINGLE_AZ_1 | SINGLE_AZ_2` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PreferredSubnetId": "Required when `DeploymentType` is set to `MULTI_AZ_1`\\. This specifies the subnet in which you want the preferred file server to be located\\. For in\\-AWS applications, we recommend that you launch your clients in the same Availability Zone \\(AZ\\) as your preferred file server to reduce cross\\-AZ data transfer costs and minimize latency\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SelfManagedActiveDirectoryConfiguration": "The configuration that Amazon FSx uses to join a FSx for Windows File Server file system or an ONTAP storage virtual machine \\(SVM\\) to a self\\-managed \\(including on\\-premises\\) Microsoft Active Directory \\(AD\\) directory\\. For more information, see [ Using Amazon FSx with your self\\-managed Microsoft Active Directory](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/self-managed-AD.html) or [Managing SVMs](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-svms.html)\\. \n*Required*: No \n*Type*: [SelfManagedActiveDirectoryConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-selfmanagedactivedirectoryconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThroughputCapacity": "Sets the throughput capacity of an Amazon FSx file system, measured in megabytes per second \\(MB/s\\), in 2 to the *n*th increments, between 2^3 \\(8\\) and 2^11 \\(2048\\)\\. \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `8` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WeeklyMaintenanceStartTime": "The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC time zone, where d is the weekday number, from 1 through 7, beginning with Monday and ending with Sunday\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FinSpace::Environment": { + "DataBundles": "The list of Amazon Resource Names \\(ARN\\) of the data bundles to install\\. Currently supported data bundle ARNs: \n+ `arn:aws:finspace:${Region}::data-bundle/capital-markets-sample` \\- Contains sample Capital Markets datasets, categories and controlled vocabularies\\.\n+ `arn:aws:finspace:${Region}::data-bundle/taq` \\(default\\) \\- Contains trades and quotes data in addition to sample Capital Markets data\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "The description of the FinSpace environment\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Pattern*: `^[a-zA-Z0-9. ]{1,1000}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FederationMode": "The authentication mode for the environment\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `FEDERATED | LOCAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FederationParameters": "Configuration information when authentication mode is FEDERATED\\. \n*Required*: No \n*Type*: [FederationParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-finspace-environment-federationparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKeyId": "The KMS key id used to encrypt in the FinSpace environment\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Pattern*: `^[a-zA-Z-0-9-:\\/]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the FinSpace environment\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9]+[a-zA-Z0-9-]*[a-zA-Z0-9]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SuperuserParameters": "Configuration information for the superuser\\. \n*Required*: No \n*Type*: [SuperuserParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-finspace-environment-superuserparameters.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::FinSpace::Environment FederationParameters": { + "ApplicationCallBackURL": "The redirect or sign\\-in URL that should be entered into the SAML 2\\.0 compliant identity provider configuration \\(IdP\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Pattern*: `^https?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AttributeMap": "SAML attribute name and value\\. The name must always be `Email` and the value should be set to the attribute definition in which user email is set\\. For example, name would be `Email` and value `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`\\. Please check your SAML 2\\.0 compliant identity provider \\(IdP\\) documentation for details\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FederationProviderName": "Name of the identity provider \\(IdP\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `[^_\\p{Z}][\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}][^_\\p{Z}]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FederationURN": "The Uniform Resource Name \\(URN\\)\\. Also referred as Service Provider URN or Audience URI or Service Provider Entity ID\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[A-Za-z0-9._\\-:\\/#\\+]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SamlMetadataDocument": "SAML 2\\.0 Metadata document from identity provider \\(IdP\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1000` \n*Maximum*: `10000000` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SamlMetadataURL": "Provide the metadata URL from your SAML 2\\.0 compliant identity provider \\(IdP\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Pattern*: `^https?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FinSpace::Environment SuperuserParameters": { + "EmailAddress": "The email address of the superuser\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+[.]+[A-Za-z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FirstName": "The first name of the superuser\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `^[a-zA-Z0-9]{1,50}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LastName": "The last name of the superuser\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `^[a-zA-Z0-9]{1,50}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Forecast::Dataset": { + "DataFrequency": "The frequency of data collection\\. This parameter is required for RELATED\\_TIME\\_SERIES datasets\\. \nValid intervals are Y \\(Year\\), M \\(Month\\), W \\(Week\\), D \\(Day\\), H \\(Hour\\), 30min \\(30 minutes\\), 15min \\(15 minutes\\), 10min \\(10 minutes\\), 5min \\(5 minutes\\), and 1min \\(1 minute\\)\\. For example, \"D\" indicates every day and \"15min\" indicates every 15 minutes\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `5` \n*Pattern*: `^Y|M|W|D|H|30min|15min|10min|5min|1min$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatasetName": "The name of the dataset\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DatasetType": "The dataset type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ITEM_METADATA | RELATED_TIME_SERIES | TARGET_TIME_SERIES` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Domain": "The domain associated with the dataset\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CUSTOM | EC2_CAPACITY | INVENTORY_PLANNING | METRICS | RETAIL | WEB_TRAFFIC | WORK_FORCE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EncryptionConfig": "A Key Management Service \\(KMS\\) key and the Identity and Access Management \\(IAM\\) role that Amazon Forecast can assume to access the key\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Schema": "The schema for the dataset\\. The schema attributes and their order must match the fields in your data\\. The dataset `Domain` and `DatasetType` that you choose determine the minimum required fields in your training data\\. For information about the required fields for a specific dataset domain and type, see [Dataset Domains and Dataset Types](https://docs.aws.amazon.com/forecast/latest/dg/howitworks-domains-ds-types.html)\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Forecast::DatasetGroup": { + "DatasetArns": "An array of Amazon Resource Names \\(ARNs\\) of the datasets that you want to include in the dataset group\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatasetGroupName": "The name of the dataset group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Domain": "The domain associated with the dataset group\\. When you add a dataset to a dataset group, this value and the value specified for the `Domain` parameter of the [CreateDataset](https://docs.aws.amazon.com/forecast/latest/dg/API_CreateDataset.html) operation must match\\. \nThe `Domain` and `DatasetType` that you choose determine the fields that must be present in training data that you import to a dataset\\. For example, if you choose the `RETAIL` domain and `TARGET_TIME_SERIES` as the `DatasetType`, Amazon Forecast requires that `item_id`, `timestamp`, and `demand` fields are present in your data\\. For more information, see [Dataset groups](https://docs.aws.amazon.com/forecast/latest/dg/howitworks-datasets-groups.html)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CUSTOM | EC2_CAPACITY | INVENTORY_PLANNING | METRICS | RETAIL | WEB_TRAFFIC | WORK_FORCE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FraudDetector::Detector": { + "AssociatedModels": "The models to associate with this detector\\. You must provide the ARNs of all the models you want to associate\\. \n*Required*: No \n*Type*: List of [Model](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-model.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The detector description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DetectorId": "The name of the detector\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[0-9a-z_-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DetectorVersionStatus": "The status of the detector version\\. If a value is not provided for this property, AWS CloudFormation assumes `DRAFT` status\\. \n Valid values: `ACTIVE | DRAFT` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventType": "The event type associated with this detector\\. \n*Required*: Yes \n*Type*: [EventType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleExecutionMode": "The rule execution mode for the rules included in the detector version\\. \nValid values: `FIRST_MATCHED | ALL_MATCHED` Default value: `FIRST_MATCHED` \nYou can define and edit the rule mode at the detector version level, when it is in draft status\\. \nIf you specify `FIRST_MATCHED`, Amazon Fraud Detector evaluates rules sequentially, first to last, stopping at the first matched rule\\. Amazon Fraud dectector then provides the outcomes for that single rule\\. \nIf you specifiy `ALL_MATCHED`, Amazon Fraud Detector evaluates all rules and returns the outcomes for all matched rules\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Rules": "The rules to include in the detector version\\. \n*Required*: Yes \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FraudDetector::Detector EntityType": { + "Arn": "The entity type ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn\\:aws[a-z-]{0,15}\\:frauddetector\\:[a-z0-9-]{3,20}\\:[0-9]{12}\\:[^\\s]{2,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CreatedTime": "Timestamp of when the entity type was created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The entity type description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Inline": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::Detector` you must define at least two variables\\. You can set `Inline=true` for these Variables and CloudFormation will create/update/delete the variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your detector but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LastUpdatedTime": "Timestamp of when the entity type was last updated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The entity type name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FraudDetector::Detector EventType": { + "Arn": "The entity type ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn\\:aws[a-z-]{0,15}\\:frauddetector\\:[a-z0-9-]{3,20}\\:[0-9]{12}\\:[^\\s]{2,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CreatedTime": "Timestamp of when the event type was created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The event type description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EntityTypes": "The event type entity types\\. \n*Required*: No \n*Type*: List of [EntityType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-entitytype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventVariables": "The event type event variables\\. \n*Required*: No \n*Type*: List of [EventVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Inline": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::Detector` you must define at least two variables\\. You can set `Inline=true` for these variables and CloudFormation will create/update/delete the Variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your detector but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Labels": "The event type labels\\. \n*Required*: No \n*Type*: List of [Label](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-label.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LastUpdatedTime": "Timestamp of when the event type was last updated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The event type name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FraudDetector::Detector EventVariable": { + "Arn": "The event variable ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CreatedTime": "Timestamp for when the event variable was created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataSource": "The data source of the event variable\\. \nValid values: `EVENT | EXTERNAL_MODEL_SCORE` \nWhen defining a variable within a detector, you can only use the `EVENT` value for DataSource when the *Inline* property is set to true\\. If the *Inline* property is set false, you can use either `EVENT` or `MODEL_SCORE` for DataSource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataType": "The data type of the event variable\\. \nValid values: `STRING | INTEGER | BOOLEAN | FLOAT` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultValue": "The default value of the event variable\\. This is required if you are providing the details of your variables instead of the ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the event variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Inline": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::Detector` you must define at least two variables\\. You can set `Inline=true` for these variables and CloudFormation will create/update/delete the variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your detector but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LastUpdatedTime": "Timestamp for when the event variable was last updated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the event variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VariableType": "The type of event variable\\. For more information, see [Variable types](https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FraudDetector::Detector Label": { + "Arn": "The label ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn\\:aws[a-z-]{0,15}\\:frauddetector\\:[a-z0-9-]{3,20}\\:[0-9]{12}\\:[^\\s]{2,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CreatedTime": "Timestamp of when the event type was created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The label description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Inline": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::Detector` you must define at least two variables\\. You can set `Inline=true` for these variables and CloudFormation will create/update/delete the variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your detector but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LastUpdatedTime": "Timestamp of when the label was last updated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The label name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FraudDetector::Detector Model": { + "Arn": "The ARN of the model\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn\\:aws[a-z-]{0,15}\\:frauddetector\\:[a-z0-9-]{3,20}\\:[0-9]{12}\\:[^\\s]{2,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FraudDetector::Detector Outcome": { + "Arn": "The outcome ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn\\:aws[a-z-]{0,15}\\:frauddetector\\:[a-z0-9-]{3,20}\\:[0-9]{12}\\:[^\\s]{2,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CreatedTime": "The timestamp when the outcome was created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The outcome description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Inline": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::Detector` you must define at least two variables\\. You can set `Inline=true` for these variables and CloudFormation will create/update/delete the variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your detector but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LastUpdatedTime": "The timestamp when the outcome was last updated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The outcome name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[0-9a-z_-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FraudDetector::Detector Rule": { + "Arn": "The rule ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CreatedTime": "Timestamp for when the rule was created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The rule description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DetectorId": "The detector for which the rule is associated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[0-9a-z_-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Expression": "The rule expression\\. A rule expression captures the business logic\\. For more information, see [Rule language reference](https://docs.aws.amazon.com/frauddetector/latest/ug/rule-language-reference.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Language": "The rule language\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LastUpdatedTime": "Timestamp for when the rule was last updated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Outcomes": "The rule outcome\\. \n*Required*: No \n*Type*: List of [Outcome](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-outcome.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleId": "The rule ID\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[0-9a-z_-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleVersion": "The rule version\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `5` \n*Pattern*: `^([1-9][0-9]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FraudDetector::EntityType": { + "Description": "The entity type description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The entity type name\\. \nPattern: `^[0-9a-z_-]+$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A key and value pair\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FraudDetector::EventType": { + "Description": "The event type description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EntityTypes": "The event type entity types\\. \n*Required*: Yes \n*Type*: List of [EntityType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-entitytype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventVariables": "The event type event variables\\. \n*Required*: Yes \n*Type*: List of [EventVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-eventvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Labels": "The event type labels\\. \n*Required*: Yes \n*Type*: List of [Label](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-label.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The event type name\\. \nPattern : `^[0-9a-z_-]+$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FraudDetector::EventType EntityType": { + "Arn": "The entity type ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn\\:aws[a-z-]{0,15}\\:frauddetector\\:[a-z0-9-]{3,20}\\:[0-9]{12}\\:[^\\s]{2,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CreatedTime": "Timestamp of when the entity type was created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The entity type description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Inline": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::EventType` you must define at least two variables\\. You can set `Inline=true` for these variables and CloudFormation will create/update/delete the variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your event type but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LastUpdatedTime": "Timestamp of when the entity type was last updated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The entity type name\\. \n`^[0-9a-z_-]+$` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FraudDetector::EventType EventVariable": { + "Arn": "The event variable ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CreatedTime": "Timestamp for when event variable was created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataSource": "The source of the event variable\\. \nValid values: `EVENT | EXTERNAL_MODEL_SCORE` \nWhen defining a variable within a event type, you can only use the `EVENT` value for DataSource when the *Inline* property is set to true\\. If the *Inline* property is set false, you can use either `EVENT` or `MODEL_SCORE` for DataSource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataType": "The data type of the event variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultValue": "The default value of the event variable \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The event variable description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Inline": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::EventType` you must define at least two variables\\. You can set `Inline=true` for these variables and CloudFormation will create/update/delete the Variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your event type but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LastUpdatedTime": "Timestamp for when the event variable was last updated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the event variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VariableType": "The type of event variable\\. For more information, see [Variable types](https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FraudDetector::EventType Label": { + "Arn": "The label ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn\\:aws[a-z-]{0,15}\\:frauddetector\\:[a-z0-9-]{3,20}\\:[0-9]{12}\\:[^\\s]{2,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CreatedTime": "Timestamp of when the event type was created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The label description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Inline": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::EventType` you must define at least two variables\\. You can set `Inline=true` for these variables and CloudFormation will create/update/delete the variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your EventType but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LastUpdatedTime": "Timestamp of when the label was last updated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The label name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FraudDetector::Label": { + "Description": "The label description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The label name\\. \nPattern: `^[0-9a-z_-]+$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FraudDetector::Outcome": { + "Description": "The outcome description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The outcome name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[0-9a-z_-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::FraudDetector::Variable": { + "DataSource": "The data source of the variable\\. \nValid values: `EVENT | EXTERNAL_MODEL_SCORE` \nWhen defining a variable within a detector, you can only use the `EVENT` value for DataSource when the *Inline* property is set to true\\. If the *Inline* property is set false, you can use either `EVENT` or `MODEL_SCORE` for DataSource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataType": "The data type of the variable\\. \nValid data types: `STRING | INTEGER | BOOLEAN | FLOAT` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultValue": "The default value of the variable\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the variable\\. \nPattern: `^[0-9a-z_-]+$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VariableType": "The type of the variable\\. For more information see [Variable types](https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types)\\. \nValid Values: `AUTH_CODE | AVS | BILLING_ADDRESS_L1 | BILLING_ADDRESS_L2 | BILLING_CITY | BILLING_COUNTRY | BILLING_NAME | BILLING_PHONE | BILLING_STATE | BILLING_ZIP | CARD_BIN | CATEGORICAL | CURRENCY_CODE | EMAIL_ADDRESS | FINGERPRINT | FRAUD_LABEL | FREE_FORM_TEXT | IP_ADDRESS | NUMERIC | ORDER_ID | PAYMENT_TYPE | PHONE_NUMBER | PRICE | PRODUCT_CATEGORY | SHIPPING_ADDRESS_L1 | SHIPPING_ADDRESS_L2 | SHIPPING_CITY | SHIPPING_COUNTRY | SHIPPING_NAME | SHIPPING_PHONE | SHIPPING_STATE | SHIPPING_ZIP | USERAGENT ` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::Alias": { + "Description": "A human\\-readable description of the alias\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A descriptive label that is associated with an alias\\. Alias names do not need to be unique\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoutingStrategy": "The routing configuration, including routing type and fleet target, for the alias\\. \n*Required*: Yes \n*Type*: [RoutingStrategy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-alias-routingstrategy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::Alias RoutingStrategy": { + "FleetId": "A unique identifier for a fleet that the alias points to\\. If you specify `SIMPLE` for the `Type` property, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Pattern*: `^fleet-\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Message": "The message text to be used with a terminal routing strategy\\. If you specify `TERMINAL` for the `Type` property, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "A type of routing strategy\\. \nPossible routing types include the following: \n+ **SIMPLE** \\- The alias resolves to one specific fleet\\. Use this type when routing to active fleets\\.\n+ **TERMINAL** \\- The alias does not resolve to a fleet but instead can be used to display a message to the user\\. A terminal alias throws a `TerminalRoutingStrategyException` with the message that you specified in the `Message` property\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `SIMPLE | TERMINAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::Build": { + "Name": "A descriptive label that is associated with a build\\. Build names do not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OperatingSystem": "The operating system that the game server binaries are built to run on\\. This value determines the type of fleet resources that you can use for this build\\. If your game build contains multiple executables, they all must run on the same operating system\\. If an operating system is not specified when creating a build, Amazon GameLift uses the default value \\(WINDOWS\\_2012\\)\\. This value cannot be changed later\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AMAZON_LINUX | AMAZON_LINUX_2 | WINDOWS_2012` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StorageLocation": "Information indicating where your game build files are stored\\. Use this parameter only when creating a build with files stored in an Amazon S3 bucket that you own\\. The storage location must specify an Amazon S3 bucket name and key\\. The location must also specify a role ARN that you set up to allow Amazon Web Services to access your Amazon S3 bucket\\. The S3 bucket and your new build must be in the same Region\\. \nIf a `StorageLocation` is specified, the size of your file can be found in your Amazon S3 bucket\\. Amazon Web Services will report a `SizeOnDisk` of 0\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-build-storagelocation.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Version": "Version information that is associated with this build\\. Version strings do not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::Build S3Location": { + "Bucket": "An Amazon S3 bucket identifier\\. This is the name of the S3 bucket\\. \nGameLift currently does not support uploading from Amazon S3 buckets with names that contain a dot \\(\\.\\)\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Key": "The name of the zip file that contains the build files or script files\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ObjectVersion": "The version of the file, if object versioning is turned on for the bucket\\. Amazon GameLift uses this information when retrieving files from your S3 bucket\\. To retrieve a specific version of the file, provide an object version\\. To retrieve the latest version of the file, do not set this parameter\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RoleArn": "The Amazon Resource Name \\([ARN](https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html)\\) for an IAM role that allows Amazon Web Services to access the S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::GameLift::Fleet": { + "BuildId": "A unique identifier for a build to be deployed on the new fleet\\. If you are deploying the fleet with a custom game build, you must specify this property\\. The build must have been successfully uploaded to Amazon GameLift and be in a `READY` status\\. This fleet setting cannot be changed once the fleet is created\\. \n*Required*: Conditional \n*Type*: String \n*Pattern*: `^build-\\S+|^arn:.*:build\\/build-\\S+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CertificateConfiguration": "Prompts GameLift to generate a TLS/SSL certificate for the fleet\\. TLS certificates are used for encrypting traffic between game clients and the game servers that are running on GameLift\\. By default, the `CertificateConfiguration` is set to `DISABLED`\\. This property cannot be changed after the fleet is created\\. \nNote: This feature requires the AWS Certificate Manager \\(ACM\\) service, which is not available in all AWS regions\\. When working in a region that does not support this feature, a fleet creation request with certificate generation fails with a 4xx error\\. \n*Required*: No \n*Type*: [CertificateConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-certificateconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "A human\\-readable description of the fleet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DesiredEC2Instances": "The number of EC2 instances that you want this fleet to host\\. When creating a new fleet, GameLift automatically sets this value to \"1\" and initiates a single instance\\. Once the fleet is active, update this value to trigger GameLift to add or remove instances from the fleet\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EC2InboundPermissions": "The allowed IP address ranges and port settings that allow inbound traffic to access game sessions on this fleet\\. If the fleet is hosting a custom game build, this property must be set before players can connect to game sessions\\. For Realtime Servers fleets, GameLift automatically sets TCP and UDP ranges\\. \n*Required*: No \n*Type*: List of [IpPermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-ippermission.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EC2InstanceType": "The GameLift\\-supported Amazon EC2 instance type to use for all fleet instances\\. Instance type determines the computing resources that will be used to host your game servers, including CPU, memory, storage, and networking capacity\\. See [Amazon Elastic Compute Cloud Instance Types](http://aws.amazon.com/ec2/instance-types/) for detailed descriptions of Amazon EC2 instance types\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | t2.large | t2.medium | t2.micro | t2.small` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FleetType": "Indicates whether to use On\\-Demand or Spot instances for this fleet\\. By default, this property is set to `ON_DEMAND`\\. Learn more about when to use [ On\\-Demand versus Spot Instances](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-ec2-instances.html#gamelift-ec2-instances-spot)\\. This property cannot be changed after the fleet is created\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ON_DEMAND | SPOT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceRoleARN": "A unique identifier for an IAM role that manages access to your AWS services\\. With an instance role ARN set, any application that runs on an instance in this fleet can assume the role, including install scripts, server processes, and daemons \\(background processes\\)\\. Create a role or look up a role's ARN by using the [IAM dashboard](https://console.aws.amazon.com/iam/) in the AWS Management Console\\. Learn more about using on\\-box credentials for your game servers at [ Access external resources from a game server](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html)\\. This property cannot be changed after the fleet is created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Locations": "A set of remote locations to deploy additional instances to and manage as part of the fleet\\. This parameter can only be used when creating fleets in AWS Regions that support multiple locations\\. You can add any GameLift\\-supported AWS Region as a remote location, in the form of an AWS Region code such as `us-west-2`\\. To create a fleet with instances in the home Region only, omit this parameter\\. \n*Required*: No \n*Type*: List of [LocationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationconfiguration.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxSize": "The maximum number of instances that are allowed in the specified fleet location\\. If this parameter is not set, the default is 1\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricGroups": "The name of an AWS CloudWatch metric group to add this fleet to\\. A metric group is used to aggregate the metrics for multiple fleets\\. You can specify an existing metric group name or set a new name to create a new metric group\\. A fleet can be included in only one metric group at a time\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinSize": "The minimum number of instances that are allowed in the specified fleet location\\. If this parameter is not set, the default is 0\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A descriptive label that is associated with a fleet\\. Fleet names do not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NewGameSessionProtectionPolicy": "The status of termination protection for active game sessions on the fleet\\. By default, this property is set to `NoProtection`\\. \n+ **NoProtection** \\- Game sessions can be terminated during active gameplay as a result of a scale\\-down event\\. \n+ **FullProtection** \\- Game sessions in `ACTIVE` status cannot be terminated during a scale\\-down event\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `FullProtection | NoProtection` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PeerVpcAwsAccountId": "Used when peering your GameLift fleet with a VPC, the unique identifier for the AWS account that owns the VPC\\. You can find your account ID in the AWS Management Console under account settings\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PeerVpcId": "A unique identifier for a VPC with resources to be accessed by your GameLift fleet\\. The VPC must be in the same Region as your fleet\\. To look up a VPC ID, use the [VPC Dashboard](https://console.aws.amazon.com/vpc/) in the AWS Management Console\\. Learn more about VPC peering in [VPC Peering with GameLift Fleets](https://docs.aws.amazon.com/gamelift/latest/developerguide/vpc-peering.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceCreationLimitPolicy": "A policy that limits the number of game sessions that an individual player can create on instances in this fleet within a specified span of time\\. \n*Required*: No \n*Type*: [ResourceCreationLimitPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-resourcecreationlimitpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuntimeConfiguration": "Instructions for how to launch and maintain server processes on instances in the fleet\\. The runtime configuration defines one or more server process configurations, each identifying a build executable or Realtime script file and the number of processes of that type to run concurrently\\. \nThe `RuntimeConfiguration` parameter is required unless the fleet is being configured using the older parameters `ServerLaunchPath` and `ServerLaunchParameters`, which are still supported for backward compatibility\\.\n*Required*: Conditional \n*Type*: [RuntimeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-runtimeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScriptId": "The unique identifier for a Realtime configuration script to be deployed on fleet instances\\. You can use either the script ID or ARN\\. Scripts must be uploaded to GameLift prior to creating the fleet\\. This fleet property cannot be changed later\\. \nYou can't use the `!Ref` command to reference a script created with a CloudFormation template for the fleet property `ScriptId`\\. Instead, use `Fn::GetAtt Script.Arn` or `Fn::GetAtt Script.Id` to retrieve either of these properties as input for `ScriptId`\\. Alternatively, enter a `ScriptId` string manually\\.\n*Required*: Conditional \n*Type*: String \n*Pattern*: `^script-\\S+|^arn:.*:script\\/script-\\S+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::GameLift::Fleet CertificateConfiguration": { + "CertificateType": "Indicates whether a TLS/SSL certificate is generated for a fleet\\. \nValid values include: \n+ **GENERATED** \\- Generate a TLS/SSL certificate for this fleet\\.\n+ **DISABLED** \\- \\(default\\) Do not generate a TLS/SSL certificate for this fleet\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | GENERATED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::GameLift::Fleet IpPermission": { + "FromPort": "A starting value for a range of allowed port numbers\\. \nFor fleets using Windows and Linux builds, only ports 1026\\-60000 are valid\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `60000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IpRange": "A range of allowed IP addresses\\. This value must be expressed in CIDR notation\\. Example: \"`000.000.000.000/[subnet mask]`\" or optionally the shortened version \"`0.0.0.0/[subnet mask]`\"\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[^\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "The network communication protocol used by the fleet\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `TCP | UDP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ToPort": "An ending value for a range of allowed port numbers\\. Port numbers are end\\-inclusive\\. This value must be higher than `FromPort`\\. \nFor fleets using Windows and Linux builds, only ports 1026\\-60000 are valid\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `60000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::Fleet LocationCapacity": { + "DesiredEC2Instances": "The number of Amazon EC2 instances you want to maintain in the specified fleet location\\. This value must fall between the minimum and maximum size limits\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxSize": "The maximum number of instances that are allowed in the specified fleet location\\. If this parameter is not set, the default is 1\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinSize": "The minimum number of instances that are allowed in the specified fleet location\\. If this parameter is not set, the default is 0\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::Fleet LocationConfiguration": { + "Location": "An AWS Region code, such as `us-west-2`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-z]+(-([a-z]+|\\d))*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LocationCapacity": "Current resource capacity settings in a specified fleet or location\\. The location value might refer to a fleet's remote location or its home Region\\. \n **Related actions** \n [DescribeFleetCapacity](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetCapacity.html) \\| [DescribeFleetLocationCapacity](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html) \\| [UpdateFleetCapacity](https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateFleetCapacity.html) \n*Required*: No \n*Type*: [LocationCapacity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationcapacity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::Fleet ResourceCreationLimitPolicy": { + "NewGameSessionsPerCreator": "The maximum number of game sessions that an individual can create during the policy period\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PolicyPeriodInMinutes": "The time span used in evaluating the resource creation limit policy\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::Fleet RuntimeConfiguration": { + "GameSessionActivationTimeoutSeconds": "The maximum amount of time \\(in seconds\\) allowed to launch a new game session and have it report ready to host players\\. During this time, the game session is in status `ACTIVATING`\\. If the game session does not become active before the timeout, it is ended and the game session status is changed to `TERMINATED`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxConcurrentGameSessionActivations": "The number of game sessions in status `ACTIVATING` to allow on an instance\\. This setting limits the instance resources that can be used for new game activations at any one time\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServerProcesses": "A collection of server process configurations that identify what server processes to run on each instance in a fleet\\. \n*Required*: No \n*Type*: List of [ServerProcess](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-serverprocess.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::Fleet ServerProcess": { + "ConcurrentExecutions": "The number of server processes using this configuration that run concurrently on each instance\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LaunchPath": "The location of a game build executable or the Realtime script file that contains the `Init()` function\\. Game builds and Realtime scripts are installed on instances at the root: \n+ Windows \\(custom game builds only\\): `C:\\game`\\. Example: \"`C:\\game\\MyGame\\server.exe`\" \n+ Linux: `/local/game`\\. Examples: \"`/local/game/MyGame/server.exe`\" or \"`/local/game/MyRealtimeScript.js`\"\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[A-Za-z0-9_:.+\\/\\\\\\- ]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "An optional list of parameters to pass to the server executable or Realtime script on launch\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[A-Za-z0-9_:.+\\/\\\\\\- =@;{},?'\\[\\]\"]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::GameServerGroup": { + "AutoScalingPolicy": "Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting\\. The scaling policy uses the metric `\"PercentUtilizedGameServers\"` to maintain a buffer of idle game servers that can immediately accommodate new games and players\\. After the Auto Scaling group is created, update this value directly in the Auto Scaling group using the AWS console or APIs\\. \n*Required*: No \n*Type*: [AutoScalingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-autoscalingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BalancingStrategy": "Indicates how GameLift FleetIQ balances the use of Spot Instances and On\\-Demand Instances in the game server group\\. Method options include the following: \n+ `SPOT_ONLY` \\- Only Spot Instances are used in the game server group\\. If Spot Instances are unavailable or not viable for game hosting, the game server group provides no hosting capacity until Spot Instances can again be used\\. Until then, no new instances are started, and the existing nonviable Spot Instances are terminated \\(after current gameplay ends\\) and are not replaced\\.\n+ `SPOT_PREFERRED` \\- \\(default value\\) Spot Instances are used whenever available in the game server group\\. If Spot Instances are unavailable, the game server group continues to provide hosting capacity by falling back to On\\-Demand Instances\\. Existing nonviable Spot Instances are terminated \\(after current gameplay ends\\) and are replaced with new On\\-Demand Instances\\.\n+ `ON_DEMAND_ONLY` \\- Only On\\-Demand Instances are used in the game server group\\. No Spot Instances are used, even when available, while this balancing strategy is in force\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ON_DEMAND_ONLY | SPOT_ONLY | SPOT_PREFERRED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeleteOption": "The type of delete to perform\\. To delete a game server group, specify the `DeleteOption`\\. Options include the following: \n+ `SAFE_DELETE` \u2013 \\(default\\) Terminates the game server group and Amazon EC2 Auto Scaling group only when it has no game servers that are in `UTILIZED` status\\.\n+ `FORCE_DELETE` \u2013 Terminates the game server group, including all active game servers regardless of their utilization status, and the Amazon EC2 Auto Scaling group\\. \n+ `RETAIN` \u2013 Does a safe delete of the game server group but retains the Amazon EC2 Auto Scaling group as is\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `FORCE_DELETE | RETAIN | SAFE_DELETE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GameServerGroupName": "A developer\\-defined identifier for the game server group\\. The name is unique for each Region in each AWS account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9-\\.]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GameServerProtectionPolicy": "A flag that indicates whether instances in the game server group are protected from early termination\\. Unprotected instances that have active game servers running might be terminated during a scale\\-down event, causing players to be dropped from the game\\. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion \\(see \\)\\. An exception to this is with Spot Instances, which can be terminated by AWS regardless of protection status\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `FULL_PROTECTION | NO_PROTECTION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceDefinitions": "The set of Amazon EC2 instance types that GameLift FleetIQ can use when balancing and automatically scaling instances in the corresponding Auto Scaling group\\. \n*Required*: Yes \n*Type*: List of [InstanceDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-instancedefinition.html) \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LaunchTemplate": "The Amazon EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group\\. You can specify the template using either the template name or ID\\. For help with creating a launch template, see [Creating a Launch Template for an Auto Scaling Group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html) in the *Amazon Elastic Compute Cloud Auto Scaling User Guide*\\. After the Auto Scaling group is created, update this value directly in the Auto Scaling group using the AWS console or APIs\\. \nIf you specify network interfaces in your launch template, you must explicitly set the property `AssociatePublicIpAddress` to \"true\"\\. If no network interface is specified in the launch template, GameLift FleetIQ uses your account's default VPC\\.\n*Required*: Yes \n*Type*: [LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-launchtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxSize": "The maximum number of instances allowed in the Amazon EC2 Auto Scaling group\\. During automatic scaling events, GameLift FleetIQ and EC2 do not scale up the group above this maximum\\. After the Auto Scaling group is created, update this value directly in the Auto Scaling group using the AWS console or APIs\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinSize": "The minimum number of instances allowed in the Amazon EC2 Auto Scaling group\\. During automatic scaling events, GameLift FleetIQ and Amazon EC2 do not scale down the group below this minimum\\. In production, this value should be set to at least 1\\. After the Auto Scaling group is created, update this value directly in the Auto Scaling group using the AWS console or APIs\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\([ARN](https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html)\\) for an IAM role that allows Amazon Web Services to access your Amazon EC2 Auto Scaling groups\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn:.*:role\\/[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A list of labels to assign to the new game server group resource\\. Tags are developer\\-defined key\\-value pairs\\. Tagging AWS resources is useful for resource management, access management, and cost allocation\\. For more information, see [ Tagging AWS Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the * AWS General Reference*\\. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags, respectively\\. The maximum tag limit may be lower than stated\\. See the AWS General Reference for actual tagging limits\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcSubnets": "A list of virtual private cloud \\(VPC\\) subnets to use with instances in the game server group\\. By default, all GameLift FleetIQ\\-supported Availability Zones are used\\. You can use this parameter to specify VPCs that you've set up\\. This property cannot be updated after the game server group is created, and the corresponding Auto Scaling group will always use the property value that is set with this request, even if the Auto Scaling group is updated directly\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::GameServerGroup AutoScalingPolicy": { + "EstimatedInstanceWarmup": "Length of time, in seconds, it takes for a new instance to start new game server processes and register with GameLift FleetIQ\\. Specifying a warm\\-up time can be useful, particularly with game servers that take a long time to start up, because it avoids prematurely starting new instances\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetTrackingConfiguration": "Settings for a target\\-based scaling policy applied to Auto Scaling group\\. These settings are used to create a target\\-based policy that tracks the GameLift FleetIQ metric `PercentUtilizedGameServers` and specifies a target value for the metric\\. As player usage changes, the policy triggers to adjust the game server group capacity so that the metric returns to the target value\\. \n*Required*: Yes \n*Type*: [TargetTrackingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-targettrackingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::GameServerGroup InstanceDefinition": { + "InstanceType": "An Amazon EC2 instance type designation\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.xlarge | m4.10xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.xlarge` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WeightedCapacity": "Instance weighting that indicates how much this instance type contributes to the total capacity of a game server group\\. Instance weights are used by GameLift FleetIQ to calculate the instance type's cost per unit hour and better identify the most cost\\-effective options\\. For detailed information on weighting instance capacity, see [Instance Weighting](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-weighting.html) in the *Amazon Elastic Compute Cloud Auto Scaling User Guide*\\. Default value is \"1\"\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `3` \n*Pattern*: `^[\\u0031-\\u0039][\\u0030-\\u0039]{0,2}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::GameServerGroup LaunchTemplate": { + "LaunchTemplateId": "A unique identifier for an existing Amazon EC2 launch template\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LaunchTemplateName": "A readable identifier for an existing Amazon EC2 launch template\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9\\(\\)\\.\\-/_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "The version of the Amazon EC2 launch template to use\\. If no version is specified, the default version will be used\\. With Amazon EC2, you can specify a default version for a launch template\\. If none is set, the default is the first version created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::GameServerGroup TargetTrackingConfiguration": { + "TargetValue": "Desired value to use with a game server group target\\-based scaling policy\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::GameSessionQueue": { + "CustomEventData": "Information to be added to all events that are related to this game session queue\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Destinations": "A list of fleets and/or fleet aliases that can be used to fulfill game session placement requests in the queue\\. Destinations are identified by either a fleet ARN or a fleet alias ARN, and are listed in order of placement preference\\. \n*Required*: No \n*Type*: List of [Destination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-destination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FilterConfiguration": "A list of locations where a queue is allowed to place new game sessions\\. Locations are specified in the form of AWS Region codes, such as `us-west-2`\\. If this parameter is not set, game sessions can be placed in any queue location\\. \n*Required*: No \n*Type*: [FilterConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-filterconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A descriptive label that is associated with game session queue\\. Queue names must be unique within each Region\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NotificationTarget": "An SNS topic ARN that is set up to receive game session placement notifications\\. See [ Setting up notifications for game session placement](https://docs.aws.amazon.com/gamelift/latest/developerguide/queue-notification.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `300` \n*Pattern*: `[a-zA-Z0-9:_-]*(\\.fifo)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PlayerLatencyPolicies": "A set of policies that act as a sliding cap on player latency\\. FleetIQ works to deliver low latency for most players in a game session\\. These policies ensure that no individual player can be placed into a game with unreasonably high latency\\. Use multiple policies to gradually relax latency requirements a step at a time\\. Multiple policies are applied based on their maximum allowed latency, starting with the lowest value\\. \n*Required*: No \n*Type*: List of [PlayerLatencyPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-playerlatencypolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PriorityConfiguration": "Custom settings to use when prioritizing destinations and locations for game session placements\\. This configuration replaces the FleetIQ default prioritization process\\. Priority types that are not explicitly named will be automatically applied at the end of the prioritization process\\. \n*Required*: No \n*Type*: [PriorityConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-priorityconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A list of labels to assign to the new game session queue resource\\. Tags are developer\\-defined key\\-value pairs\\. Tagging AWS resources are useful for resource management, access management and cost allocation\\. For more information, see [ Tagging AWS Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the * AWS General Reference*\\. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags\\. The maximum tag limit may be lower than stated\\. See the AWS General Reference for actual tagging limits\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeoutInSeconds": "The maximum time, in seconds, that a new game session placement request remains in the queue\\. When a request exceeds this time, the game session placement changes to a `TIMED_OUT` status\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::GameSessionQueue Destination": { + "DestinationArn": "The Amazon Resource Name \\(ARN\\) that is assigned to fleet or fleet alias\\. ARNs, which include a fleet ID or alias ID and a Region name, provide a unique identifier across all Regions\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z0-9:/-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::GameSessionQueue FilterConfiguration": { + "AllowedLocations": "A list of locations to allow game session placement in, in the form of AWS Region codes such as `us-west-2`\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::GameSessionQueue PlayerLatencyPolicy": { + "MaximumIndividualPlayerLatencyMilliseconds": "The maximum latency value that is allowed for any player, in milliseconds\\. All policies must have a value set for this property\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PolicyDurationSeconds": "The length of time, in seconds, that the policy is enforced while placing a new game session\\. A null value for this property means that the policy is enforced until the queue times out\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::GameSessionQueue PriorityConfiguration": { + "LocationOrder": "The prioritization order to use for fleet locations, when the `PriorityOrder` property includes `LOCATION`\\. Locations are identified by AWS Region codes such as `us-west-2`\\. Each location can only be listed once\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PriorityOrder": "The recommended sequence to use when prioritizing where to place new game sessions\\. Each type can only be listed once\\. \n+ `LATENCY` \\-\\- FleetIQ prioritizes locations where the average player latency \\(provided in each game session request\\) is lowest\\. \n+ `COST` \\-\\- FleetIQ prioritizes destinations with the lowest current hosting costs\\. Cost is evaluated based on the location, instance type, and fleet type \\(Spot or On\\-Demand\\) for each destination in the queue\\.\n+ `DESTINATION` \\-\\- FleetIQ prioritizes based on the order that destinations are listed in the queue configuration\\.\n+ `LOCATION` \\-\\- FleetIQ prioritizes based on the provided order of locations, as defined in `LocationOrder`\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::MatchmakingConfiguration": { + "AcceptanceRequired": "A flag that determines whether a match that was created with this configuration must be accepted by the matched players\\. To require acceptance, set to `TRUE`\\. With this option enabled, matchmaking tickets use the status `REQUIRES_ACCEPTANCE` to indicate when a completed potential match is waiting for player acceptance\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AcceptanceTimeoutSeconds": "The length of time \\(in seconds\\) to wait for players to accept a proposed match, if acceptance is required\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AdditionalPlayerCount": "The number of player slots in a match to keep open for future players\\. For example, if the configuration's rule set specifies a match for a single 12\\-person team, and the additional player count is set to 2, only 10 players are selected for the match\\. This parameter is not used if `FlexMatchMode` is set to `STANDALONE`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BackfillMode": "The method used to backfill game sessions that are created with this matchmaking configuration\\. Specify `MANUAL` when your game manages backfill requests manually or does not use the match backfill feature\\. Specify `AUTOMATIC` to have GameLift create a `StartMatchBackfill` request whenever a game session has one or more open slots\\. Learn more about manual and automatic backfill in [Backfill Existing Games with FlexMatch](https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-backfill.html)\\. Automatic backfill is not available when `FlexMatchMode` is set to `STANDALONE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUTOMATIC | MANUAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomEventData": "Information to add to all events related to the matchmaking configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A descriptive label that is associated with matchmaking configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FlexMatchMode": "Indicates whether this matchmaking configuration is being used with GameLift hosting or as a standalone matchmaking solution\\. \n+ **STANDALONE** \\- FlexMatch forms matches and returns match information, including players and team assignments, in a [ MatchmakingSucceeded](https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-events.html#match-events-matchmakingsucceeded) event\\.\n+ **WITH\\_QUEUE** \\- FlexMatch forms matches and uses the specified GameLift queue to start a game session for the match\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `STANDALONE | WITH_QUEUE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GameProperties": "A set of custom properties for a game session, formatted as key\\-value pairs\\. These properties are passed to a game server process with a request to start a new game session\\. See [ Start a Game Session](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)\\. This parameter is not used if `FlexMatchMode` is set to `STANDALONE`\\. \n*Required*: No \n*Type*: List of [GameProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-matchmakingconfiguration-gameproperty.html) \n*Maximum*: `16` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GameSessionData": "A set of custom game session properties, formatted as a single string value\\. This data is passed to a game server process with a request to start a new game session\\. See [Start a Game Session](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)\\. This parameter is not used if`FlexMatchMode` is set to `STANDALONE`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GameSessionQueueArns": "The Amazon Resource Name \\([ARN](https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html)\\) that is assigned to a GameLift game session queue resource and uniquely identifies it\\. ARNs are unique across all Regions\\. Format is `arn:aws:gamelift:::gamesessionqueue/`\\. Queues can be located in any Region\\. Queues are used to start new GameLift\\-hosted game sessions for matches that are created with this matchmaking configuration\\. If `FlexMatchMode` is set to `STANDALONE`, do not set this parameter\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A unique identifier for the matchmaking configuration\\. This name is used to identify the configuration associated with a matchmaking request or ticket\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9-\\.]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NotificationTarget": "An SNS topic ARN that is set up to receive matchmaking notifications\\. See [ Setting up notifications for matchmaking](https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-notification.html) for more information\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `300` \n*Pattern*: `[a-zA-Z0-9:_/-]*(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/.html)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequestTimeoutSeconds": "The maximum duration, in seconds, that a matchmaking ticket can remain in process before timing out\\. Requests that fail due to timing out can be resubmitted as needed\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `43200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleSetName": "A unique identifier for the matchmaking rule set to use with this configuration\\. You can use either the rule set name or ARN value\\. A matchmaking configuration can only use rule sets that are defined in the same Region\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z0-9-\\.]*|^arn:.*:matchmakingruleset\\/[a-zA-Z0-9-\\.]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A list of labels to assign to the new matchmaking configuration resource\\. Tags are developer\\-defined key\\-value pairs\\. Tagging AWS resources are useful for resource management, access management and cost allocation\\. For more information, see [ Tagging AWS Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the * AWS General Reference*\\. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags\\. The maximum tag limit may be lower than stated\\. See the AWS General Reference for actual tagging limits\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::MatchmakingConfiguration GameProperty": { + "Key": "The game property identifier\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The game property value\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `96` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::MatchmakingRuleSet": { + "Name": "A unique identifier for the matchmaking rule set\\. A matchmaking configuration identifies the rule set it uses by this name value\\. Note that the rule set name is different from the optional `name` field in the rule set body\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9-\\.]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RuleSetBody": "A collection of matchmaking rules, formatted as a JSON string\\. Comments are not allowed in JSON, but most elements support a description field\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A list of labels to assign to the new matchmaking rule set resource\\. Tags are developer\\-defined key\\-value pairs\\. Tagging AWS resources are useful for resource management, access management and cost allocation\\. For more information, see [ Tagging AWS Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the * AWS General Reference*\\. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags\\. The maximum tag limit may be lower than stated\\. See the AWS General Reference for actual tagging limits\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::Script": { + "Name": "A descriptive label that is associated with a script\\. Script names do not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StorageLocation": "The location of the Amazon S3 bucket where a zipped file containing your Realtime scripts is stored\\. The storage location must specify the Amazon S3 bucket name, the zip file name \\(the \"key\"\\), and a role ARN that allows Amazon Web Services to access the Amazon S3 storage location\\. The S3 bucket must be in the same Region where you want to create a new script\\. By default, Amazon Web Services uploads the latest version of the zip file; if you have S3 object versioning turned on, you can use the `ObjectVersion` parameter to specify an earlier version\\. \n*Required*: Yes \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-script-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A list of labels to assign to the new script resource\\. Tags are developer\\-defined key\\-value pairs\\. Tagging AWS resources are useful for resource management, access management and cost allocation\\. For more information, see [ Tagging AWS Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the * AWS General Reference*\\. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags\\. The maximum tag limit may be lower than stated\\. See the AWS General Reference for actual tagging limits\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "The version that is associated with a build or script\\. Version strings do not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GameLift::Script S3Location": { + "Bucket": "An Amazon S3 bucket identifier\\. This is the name of the S3 bucket\\. \nGameLift currently does not support uploading from Amazon S3 buckets with names that contain a dot \\(\\.\\)\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Key": "The name of the zip file that contains the build files or script files\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ObjectVersion": "The version of the file, if object versioning is turned on for the bucket\\. Amazon Web Services uses this information when retrieving files from an S3 bucket that you own\\. Use this parameter to specify a specific version of the file\\. If not set, the latest version of the file is retrieved\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\([ARN](https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html)\\) for an IAM role that allows Amazon Web Services to access the S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GlobalAccelerator::Accelerator": { + "Enabled": "Indicates whether the accelerator is enabled\\. The value is true or false\\. The default value is true\\. \nIf the value is set to true, the accelerator cannot be deleted\\. If set to false, accelerator can be deleted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IpAddressType": "The value for the address type must be IPv4\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `IPV4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IpAddresses": "Optionally, if you've added your own IP address pool to Global Accelerator \\(BYOIP\\), you can choose IP addresses from your own pool to use for the accelerator's static IP addresses when you create an accelerator\\. You can specify one or two addresses, separated by a comma\\. Do not include the /32 suffix\\. \nOnly one IP address from each of your IP address ranges can be used for each accelerator\\. If you specify only one IP address from your IP address range, Global Accelerator assigns a second static IP address for the accelerator from the AWS IP address pool\\. \n Note that you can't update IP addresses for an existing accelerator\\. To change them, you must create a new accelerator with the new addresses\\. \nFor more information, see [Bring Your Own IP Addresses \\(BYOIP\\)](https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html) in the *AWS Global Accelerator Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the accelerator\\. The name must contain only alphanumeric characters or hyphens \\(\\-\\), and must not begin or end with a hyphen\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Create tags for an accelerator\\. \nFor more information, see [Tagging ](https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html) in the *AWS Global Accelerator Developer Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GlobalAccelerator::EndpointGroup": { + "EndpointConfigurations": "The list of endpoint objects\\. \n*Required*: No \n*Type*: List of [EndpointConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-endpointconfiguration.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EndpointGroupRegion": "The AWS Regions where the endpoint group is located\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "HealthCheckIntervalSeconds": "The time\u201410 seconds or 30 seconds\u2014between health checks for each endpoint\\. The default value is 30\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `10` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthCheckPath": "If the protocol is HTTP/S, then this value provides the ping path that Global Accelerator uses for the destination on the endpoints for health checks\\. The default is slash \\(/\\)\\. \n*Required*: No \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `^/[-a-zA-Z0-9@:%_\\\\+.~#?&/=]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthCheckPort": "The port that Global Accelerator uses to perform health checks on endpoints that are part of this endpoint group\\. \nThe default port is the port for the listener that this endpoint group is associated with\\. If the listener port is a list, Global Accelerator uses the first specified port in the list of ports\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthCheckProtocol": "The protocol that Global Accelerator uses to perform health checks on endpoints that are part of this endpoint group\\. The default value is TCP\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `HTTP | HTTPS | TCP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ListenerArn": "The Amazon Resource Name \\(ARN\\) of the listener\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PortOverrides": "Allows you to override the destination ports used to route traffic to an endpoint\\. Using a port override lets you to map a list of external destination ports \\(that your users send traffic to\\) to a list of internal destination ports that you want an application endpoint to receive traffic on\\. \n*Required*: No \n*Type*: List of [PortOverride](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-portoverride.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThresholdCount": "The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an unhealthy endpoint to healthy\\. The default value is 3\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TrafficDialPercentage": "The percentage of traffic to send to an AWS Regions\\. Additional traffic is distributed to other endpoint groups for this listener\\. \nUse this action to increase \\(dial up\\) or decrease \\(dial down\\) traffic to a specific Region\\. The percentage is applied to the traffic that would otherwise have been routed to the Region based on optimal routing\\. \nThe default value is 100\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GlobalAccelerator::EndpointGroup EndpointConfiguration": { + "ClientIPPreservationEnabled": "Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint\\. The value is true or false\\. The default value is true for new accelerators\\. \nIf the value is set to true, the client's IP address is preserved in the `X-Forwarded-For` request header as traffic travels to applications on the Application Load Balancer endpoint fronted by the accelerator\\. \nFor more information, see [ Preserve Client IP Addresses](https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html) in the *AWS Global Accelerator Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EndpointId": "An ID for the endpoint\\. If the endpoint is a Network Load Balancer or Application Load Balancer, this is the Amazon Resource Name \\(ARN\\) of the resource\\. If the endpoint is an Elastic IP address, this is the Elastic IP address allocation ID\\. For Amazon EC2 instances, this is the EC2 instance ID\\. A resource must be valid and active when you add it as an endpoint\\. \nAn Application Load Balancer can be either internal or internet\\-facing\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Weight": "The weight associated with the endpoint\\. When you add weights to endpoints, you configure Global Accelerator to route traffic based on proportions that you specify\\. For example, you might specify endpoint weights of 4, 5, 5, and 6 \\(sum=20\\)\\. The result is that 4/20 of your traffic, on average, is routed to the first endpoint, 5/20 is routed both to the second and third endpoints, and 6/20 is routed to the last endpoint\\. For more information, see [Endpoint Weights](https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoints-endpoint-weights.html) in the *AWS Global Accelerator Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GlobalAccelerator::EndpointGroup PortOverride": { + "EndpointPort": "The endpoint port that you want a listener port to be mapped to\\. This is the port on the endpoint, such as the Application Load Balancer or Amazon EC2 instance\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ListenerPort": "The listener port that you want to map to a specific endpoint port\\. This is the port that user traffic arrives to the Global Accelerator on\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GlobalAccelerator::Listener": { + "AcceleratorArn": "The Amazon Resource Name \\(ARN\\) of your accelerator\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ClientAffinity": "Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications, regardless of the port and protocol of the client request\\. Client affinity gives you control over whether to always route each client to the same specific endpoint\\. \nAWS Global Accelerator uses a consistent\\-flow hashing algorithm to choose the optimal endpoint for a connection\\. If client affinity is `NONE`, Global Accelerator uses the \"five\\-tuple\" \\(5\\-tuple\\) properties\u2014source IP address, source port, destination IP address, destination port, and protocol\u2014to select the hash value, and then chooses the best endpoint\\. However, with this setting, if someone uses different ports to connect to Global Accelerator, their connections might not be always routed to the same endpoint because the hash value changes\\. \nIf you want a given client to always be routed to the same endpoint, set client affinity to `SOURCE_IP` instead\\. When you use the `SOURCE_IP` setting, Global Accelerator uses the \"two\\-tuple\" \\(2\\-tuple\\) properties\u2014 source \\(client\\) IP address and destination IP address\u2014to select the hash value\\. \nThe default value is `NONE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | SOURCE_IP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PortRanges": "The list of port ranges for the connections from clients to the accelerator\\. \n*Required*: Yes \n*Type*: List of [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-listener-portrange.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "The protocol for the connections from clients to the accelerator\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `TCP | UDP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GlobalAccelerator::Listener PortRange": { + "FromPort": "The first port in the range of ports, inclusive\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ToPort": "The last port in the range of ports, inclusive\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Classifier": { + "CsvClassifier": "A classifier for comma\\-separated values \\(CSV\\)\\. \n*Required*: Conditional \n*Type*: [CsvClassifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-csvclassifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GrokClassifier": "A classifier that uses `grok`\\. \n*Required*: Conditional \n*Type*: [GrokClassifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-grokclassifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JsonClassifier": "A classifier for JSON content\\. \n*Required*: Conditional \n*Type*: [JsonClassifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-jsonclassifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "XMLClassifier": "A classifier for XML content\\. \n*Required*: Conditional \n*Type*: [XMLClassifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-xmlclassifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Classifier CsvClassifier": { + "AllowSingleColumn": "Enables the processing of files that contain only one column\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContainsHeader": "Indicates whether the CSV file contains a header\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Delimiter": "A custom symbol to denote what separates each column entry in the row\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisableValueTrimming": "Specifies not to trim values before identifying the type of column values\\. The default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Header": "A list of strings representing column names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the classifier\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "QuoteSymbol": "A custom symbol to denote what combines content into a single column value\\. It must be different from the column delimiter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Classifier GrokClassifier": { + "Classification": "An identifier of the data format that the classifier matches, such as Twitter, JSON, Omniture logs, and so on\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomPatterns": "Optional custom grok patterns defined by this classifier\\. For more information, see custom patterns in [Writing Custom Classifiers](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GrokPattern": "The grok pattern applied to a data store by this classifier\\. For more information, see built\\-in patterns in [Writing Custom Classifiers](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the classifier\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Glue::Classifier JsonClassifier": { + "JsonPath": "A `JsonPath` string defining the JSON data for the classifier to classify\\. AWS Glue supports a subset of `JsonPath`, as described in [Writing JsonPath Custom Classifiers](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html#custom-classifier-json)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the classifier\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Glue::Classifier XMLClassifier": { + "Classification": "An identifier of the data format that the classifier matches\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the classifier\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RowTag": "The XML tag designating the element that contains each record in an XML document being parsed\\. This can't identify a self\\-closing element \\(closed by `/>`\\)\\. An empty row element that contains only attributes can be parsed as long as it ends with a closing tag \\(for example, `` is okay, but `` is not\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Connection": { + "CatalogId": "The ID of the data catalog to create the catalog object in\\. Currently, this should be the AWS account ID\\. \nTo specify the account ID, you can use the `Ref` intrinsic function with the `AWS::AccountId` pseudo parameter\\. For example: `!Ref AWS::AccountId`\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ConnectionInput": "The connection that you want to create\\. \n*Required*: Yes \n*Type*: [ConnectionInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Connection ConnectionInput": { + "ConnectionProperties": "These key\\-value pairs define parameters for the connection\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectionType": "The type of the connection\\. Currently, these types are supported: \n+ `JDBC` \\- Designates a connection to a database through Java Database Connectivity \\(JDBC\\)\\.\n+ `KAFKA` \\- Designates a connection to an Apache Kafka streaming platform\\.\n+ `MONGODB` \\- Designates a connection to a MongoDB document database\\.\n+ `NETWORK` \\- Designates a network connection to a data source within an Amazon Virtual Private Cloud environment \\(Amazon VPC\\)\\.\nSFTP is not supported\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the connection\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MatchCriteria": "A list of criteria that can be used in selecting this connection\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the connection\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PhysicalConnectionRequirements": "A map of physical connection requirements, such as virtual private cloud \\(VPC\\) and `SecurityGroup`, that are needed to successfully make this connection\\. \n*Required*: No \n*Type*: [PhysicalConnectionRequirements](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-physicalconnectionrequirements.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Connection PhysicalConnectionRequirements": { + "AvailabilityZone": "The connection's Availability Zone\\. This field is redundant because the specified subnet implies the Availability Zone to be used\\. Currently the field must be populated, but it will be deprecated in the future\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroupIdList": "The security group ID list used by the connection\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetId": "The subnet ID used by the connection\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Crawler": { + "Classifiers": "A list of UTF\\-8 strings that specify the custom classifiers that are associated with the crawler\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Configuration": "Crawler configuration information\\. This versioned JSON string allows users to specify aspects of a crawler's behavior\\. For more information, see [Configuring a Crawler](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CrawlerSecurityConfiguration": "The name of the `SecurityConfiguration` structure to be used by this crawler\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseName": "The name of the database in which the crawler's output is stored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the crawler\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the crawler\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RecrawlPolicy": "A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run\\. \n*Required*: No \n*Type*: [RecrawlPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-recrawlpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Role": "The Amazon Resource Name \\(ARN\\) of an IAM role that's used to access customer resources, such as Amazon Simple Storage Service \\(Amazon S3\\) data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Schedule": "For scheduled crawlers, the schedule when the crawler runs\\. \n*Required*: No \n*Type*: [Schedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-schedule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SchemaChangePolicy": "The policy that specifies update and delete behaviors for the crawler\\. \n*Required*: No \n*Type*: [SchemaChangePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-schemachangepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TablePrefix": "The prefix added to the names of tables that are created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to use with this crawler\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Targets": "A collection of targets to crawl\\. \n*Required*: Yes \n*Type*: [Targets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-targets.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Crawler CatalogTarget": { + "DatabaseName": "The name of the database to be synchronized\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tables": "A list of the tables to be synchronized\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Crawler DynamoDBTarget": { + "Path": "The name of the DynamoDB table to crawl\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Crawler JdbcTarget": { + "ConnectionName": "The name of the connection to use to connect to the JDBC target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Exclusions": "A list of glob patterns used to exclude from the crawl\\. For more information, see [Catalog Tables with a Crawler](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Path": "The path of the JDBC target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Crawler MongoDBTarget": { + "ConnectionName": "The name of the connection to use to connect to the Amazon DocumentDB or MongoDB target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Path": "The path of the Amazon DocumentDB or MongoDB target \\(database/collection\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Crawler RecrawlPolicy": { + "RecrawlBehavior": "Specifies whether to crawl the entire dataset again or to crawl only folders that were added since the last crawler run\\. \nA value of `CRAWL_EVERYTHING` specifies crawling the entire dataset again\\. \nA value of `CRAWL_NEW_FOLDERS_ONLY` specifies crawling only folders that were added since the last crawler run\\. \nA value of `CRAWL_EVENT_MODE` specifies crawling only the changes identified by Amazon S3 events\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Crawler S3Target": { + "ConnectionName": "The name of a connection which allows a job or crawler to access data in Amazon S3 within an Amazon Virtual Private Cloud environment \\(Amazon VPC\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DlqEventQueueArn": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventQueueArn": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Exclusions": "A list of glob patterns used to exclude from the crawl\\. For more information, see [Catalog Tables with a Crawler](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Path": "The path to the Amazon S3 target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SampleSize": "Sets the number of files in each leaf folder to be crawled when crawling sample files in a dataset\\. If not set, all the files are crawled\\. A valid value is an integer between 1 and 249\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Crawler Schedule": { + "ScheduleExpression": "A `cron` expression used to specify the schedule\\. For more information, see [Time\\-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html)\\. For example, to run something every day at 12:15 UTC, specify `cron(15 12 * * ? *)`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Crawler SchemaChangePolicy": { + "DeleteBehavior": "The deletion behavior when the crawler finds a deleted object\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UpdateBehavior": "The update behavior when the crawler finds a changed schema\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Crawler Targets": { + "CatalogTargets": "Specifies AWS Glue Data Catalog targets\\. \n*Required*: No \n*Type*: List of [CatalogTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-catalogtarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DynamoDBTargets": "Specifies Amazon DynamoDB targets\\. \n*Required*: No \n*Type*: List of [DynamoDBTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-dynamodbtarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JdbcTargets": "Specifies JDBC targets\\. \n*Required*: No \n*Type*: List of [JdbcTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-jdbctarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MongoDBTargets": "A list of Mongo DB targets\\. \n*Required*: No \n*Type*: List of [MongoDBTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-mongodbtarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Targets": "Specifies Amazon Simple Storage Service \\(Amazon S3\\) targets\\. \n*Required*: No \n*Type*: List of [S3Target](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-s3target.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::DataCatalogEncryptionSettings": { + "CatalogId": "The ID of the Data Catalog in which the settings are created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DataCatalogEncryptionSettings": "Contains configuration information for maintaining Data Catalog security\\. \n*Required*: Yes \n*Type*: [DataCatalogEncryptionSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-datacatalogencryptionsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::DataCatalogEncryptionSettings ConnectionPasswordEncryption": { + "KmsKeyId": "An AWS KMS key that is used to encrypt the connection password\\. \nIf connection password protection is enabled, the caller of `CreateConnection` and `UpdateConnection` needs at least `kms:Encrypt` permission on the specified AWS KMS key, to encrypt passwords before storing them in the Data Catalog\\. You can set the decrypt permission to enable or restrict access on the password key according to your security requirements\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReturnConnectionPasswordEncrypted": "When the `ReturnConnectionPasswordEncrypted` flag is set to \"true\", passwords remain encrypted in the responses of `GetConnection` and `GetConnections`\\. This encryption takes effect independently from catalog encryption\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::DataCatalogEncryptionSettings DataCatalogEncryptionSettings": { + "ConnectionPasswordEncryption": "When connection password protection is enabled, the Data Catalog uses a customer\\-provided key to encrypt the password as part of `CreateConnection` or `UpdateConnection` and store it in the `ENCRYPTED_PASSWORD` field in the connection properties\\. You can enable catalog encryption or only password encryption\\. \n*Required*: No \n*Type*: [ConnectionPasswordEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-connectionpasswordencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EncryptionAtRest": "Specifies the encryption\\-at\\-rest configuration for the Data Catalog\\. \n*Required*: No \n*Type*: [EncryptionAtRest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-encryptionatrest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::DataCatalogEncryptionSettings EncryptionAtRest": { + "CatalogEncryptionMode": "The encryption\\-at\\-rest mode for encrypting Data Catalog data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SseAwsKmsKeyId": "The ID of the AWS KMS key to use for encryption at rest\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Database": { + "CatalogId": "The AWS account ID for the account in which to create the catalog object\\. \n To specify the account ID, you can use the `Ref` intrinsic function with the `AWS::AccountId` pseudo parameter\\. For example: `!Ref AWS::AccountId` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DatabaseInput": "The metadata for the database\\. \n*Required*: Yes \n*Type*: [DatabaseInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseinput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Database DataLakePrincipal": { + "DataLakePrincipalIdentifier": "An identifier for the AWS Lake Formation principal\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Database DatabaseIdentifier": { + "CatalogId": "The ID of the Data Catalog in which the database resides\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseName": "The name of the catalog database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Database DatabaseInput": { + "CreateTableDefaultPermissions": "Creates a set of default permissions on the table for principals\\. \n*Required*: No \n*Type*: List of [PrincipalPrivileges](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-principalprivileges.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LocationUri": "The location of the database \\(for example, an HDFS path\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the database\\. For Hive compatibility, this is folded to lowercase when it is stored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Parameters": "These key\\-value pairs define parameters and properties of the database\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetDatabase": "A `DatabaseIdentifier` structure that describes a target database for resource linking\\. \n*Required*: No \n*Type*: [DatabaseIdentifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseidentifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Database PrincipalPrivileges": { + "Permissions": "The permissions that are granted to the principal\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Principal": "The principal who is granted permissions\\. \n*Required*: No \n*Type*: [DataLakePrincipal](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-datalakeprincipal.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::DevEndpoint": { + "Arguments": "A map of arguments used to configure the `DevEndpoint`\\. \nValid arguments are: \n+ `\"--enable-glue-datacatalog\": \"\"`\n+ `\"GLUE_PYTHON_VERSION\": \"3\"`\n+ `\"GLUE_PYTHON_VERSION\": \"2\"`\nYou can specify a version of Python support for development endpoints by using the `Arguments` parameter in the `CreateDevEndpoint` or `UpdateDevEndpoint` APIs\\. If no arguments are provided, the version defaults to Python 2\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EndpointName": "The name of the `DevEndpoint`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ExtraJarsS3Path": "The path to one or more Java `.jar` files in an S3 bucket that should be loaded in your `DevEndpoint`\\. \nYou can only use pure Java/Scala libraries with a `DevEndpoint`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExtraPythonLibsS3Path": "The paths to one or more Python libraries in an Amazon S3 bucket that should be loaded in your `DevEndpoint`\\. Multiple values must be complete paths separated by a comma\\. \nYou can only use pure Python libraries with a `DevEndpoint`\\. Libraries that rely on C extensions, such as the [pandas](http://pandas.pydata.org/) Python data analysis library, are not currently supported\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GlueVersion": "The AWS Glue version determines the versions of Apache Spark and Python that AWS Glue supports\\. The Python version indicates the version supported for running your ETL scripts on development endpoints\\. \nFor more information about the available AWS Glue versions and corresponding Spark and Python versions, see [Glue version](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) in the developer guide\\. \nDevelopment endpoints that are created without specifying a Glue version default to Glue 0\\.9\\. \nYou can specify a version of Python support for development endpoints by using the `Arguments` parameter in the `CreateDevEndpoint` or `UpdateDevEndpoint` APIs\\. If no arguments are provided, the version defaults to Python 2\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumberOfNodes": "The number of AWS Glue Data Processing Units \\(DPUs\\) allocated to this `DevEndpoint`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumberOfWorkers": "The number of workers of a defined `workerType` that are allocated to the development endpoint\\. \nThe maximum number of workers you can define are 299 for `G.1X`, and 149 for `G.2X`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PublicKey": "The public key to be used by this `DevEndpoint` for authentication\\. This attribute is provided for backward compatibility because the recommended attribute to use is public keys\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PublicKeys": "A list of public keys to be used by the `DevEndpoints` for authentication\\. Using this attribute is preferred over a single public key because the public keys allow you to have a different private key per client\\. \nIf you previously created an endpoint with a public key, you must remove that key to be able to set a list of public keys\\. Call the `UpdateDevEndpoint` API operation with the public key content in the `deletePublicKeys` attribute, and the list of new keys in the `addPublicKeys` attribute\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM role used in this `DevEndpoint`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityConfiguration": "The name of the `SecurityConfiguration` structure to be used with this `DevEndpoint`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroupIds": "A list of security group identifiers used in this `DevEndpoint`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetId": "The subnet ID for this `DevEndpoint`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to use with this DevEndpoint\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WorkerType": "The type of predefined worker that is allocated to the development endpoint\\. Accepts a value of Standard, G\\.1X, or G\\.2X\\. \n+ For the `Standard` worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker\\.\n+ For the `G.1X` worker type, each worker maps to 1 DPU \\(4 vCPU, 16 GB of memory, 64 GB disk\\), and provides 1 executor per worker\\. We recommend this worker type for memory\\-intensive jobs\\.\n+ For the `G.2X` worker type, each worker maps to 2 DPU \\(8 vCPU, 32 GB of memory, 128 GB disk\\), and provides 1 executor per worker\\. We recommend this worker type for memory\\-intensive jobs\\.\nKnown issue: when a development endpoint is created with the `G.2X` `WorkerType` configuration, the Spark drivers for the development endpoint will run on 4 vCPU, 16 GB of memory, and a 64 GB disk\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Job": { + "AllocatedCapacity": "The number of capacity units that are allocated to this job\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Command": "The code that executes a job\\. \n*Required*: Yes \n*Type*: [JobCommand](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-jobcommand.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Connections": "The connections used for this job\\. \n*Required*: No \n*Type*: [ConnectionsList](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-connectionslist.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultArguments": "The default arguments for this job, specified as name\\-value pairs\\. \nYou can specify arguments here that your own job\\-execution script consumes, in addition to arguments that AWS Glue itself consumes\\. \nFor information about how to specify and consume your own job arguments, see [Calling AWS Glue APIs in Python](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) in the *AWS Glue Developer Guide*\\. \nFor information about the key\\-value pairs that AWS Glue consumes to set up your job, see [Special Parameters Used by AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html) in the *AWS Glue Developer Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the job\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExecutionProperty": "The maximum number of concurrent runs that are allowed for this job\\. \n*Required*: No \n*Type*: [ExecutionProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-executionproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GlueVersion": "Glue version determines the versions of Apache Spark and Python that AWS Glue supports\\. The Python version indicates the version supported for jobs of type Spark\\. \nFor more information about the available AWS Glue versions and corresponding Spark and Python versions, see [Glue version](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) in the developer guide\\. \nJobs that are created without specifying a Glue version default to Glue 0\\.9\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogUri": "This field is reserved for future use\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxCapacity": "The number of AWS Glue data processing units \\(DPUs\\) that can be allocated when this job runs\\. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory\\. \nDo not set `Max Capacity` if using `WorkerType` and `NumberOfWorkers`\\. \nThe value that can be allocated for `MaxCapacity` depends on whether you are running a Python shell job or an Apache Spark ETL job: \n+ When you specify a Python shell job \\(`JobCommand.Name`=\"pythonshell\"\\), you can allocate either 0\\.0625 or 1 DPU\\. The default is 0\\.0625 DPU\\.\n+ When you specify an Apache Spark ETL job \\(`JobCommand.Name`=\"glueetl\"\\), you can allocate from 2 to 100 DPUs\\. The default is 10 DPUs\\. This job type cannot have a fractional DPU allocation\\.\n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxRetries": "The maximum number of times to retry this job after a JobRun fails\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name you assign to this job definition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NotificationProperty": "Specifies configuration properties of a notification\\. \n*Required*: No \n*Type*: [NotificationProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-notificationproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumberOfWorkers": "The number of workers of a defined `workerType` that are allocated when a job runs\\. \nThe maximum number of workers you can define are 299 for `G.1X`, and 149 for `G.2X`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Role": "The name or Amazon Resource Name \\(ARN\\) of the IAM role associated with this job\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityConfiguration": "The name of the `SecurityConfiguration` structure to be used with this job\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to use with this job\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Timeout": "The job timeout in minutes\\. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status\\. The default is 2,880 minutes \\(48 hours\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WorkerType": "The type of predefined worker that is allocated when a job runs\\. Accepts a value of Standard, G\\.1X, or G\\.2X\\. \n+ For the `Standard` worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker\\.\n+ For the `G.1X` worker type, each worker maps to 1 DPU \\(4 vCPU, 16 GB of memory, 64 GB disk\\), and provides 1 executor per worker\\. We recommend this worker type for memory\\-intensive jobs\\.\n+ For the `G.2X` worker type, each worker maps to 2 DPU \\(8 vCPU, 32 GB of memory, 128 GB disk\\), and provides 1 executor per worker\\. We recommend this worker type for memory\\-intensive jobs\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Job ConnectionsList": { + "Connections": "A list of connections used by the job\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Job ExecutionProperty": { + "MaxConcurrentRuns": "The maximum number of concurrent runs allowed for the job\\. The default is 1\\. An error is returned when this threshold is reached\\. The maximum value you can specify is controlled by a service limit\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Job JobCommand": { + "Name": "The name of the job command\\. For an Apache Spark ETL job, this must be `glueetl`\\. For a Python shell job, it must be `pythonshell`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PythonVersion": "The Python version being used to execute a Python shell job\\. Allowed values are 2 or 3\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScriptLocation": "Specifies the Amazon Simple Storage Service \\(Amazon S3\\) path to a script that executes a job \\(required\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Job NotificationProperty": { + "NotifyDelayAfter": "After a job run starts, the number of minutes to wait before sending a job run delay notification\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::MLTransform": { + "Description": "A user\\-defined, long\\-form description text for the machine learning transform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GlueVersion": "This value determines which version of AWS Glue this machine learning transform is compatible with\\. Glue 1\\.0 is recommended for most customers\\. If the value is not set, the Glue compatibility defaults to Glue 0\\.9\\. For more information, see [AWS Glue Versions](https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions) in the developer guide\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputRecordTables": "A list of AWS Glue table definitions used by the transform\\. \n*Required*: Yes \n*Type*: [InputRecordTables](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-inputrecordtables.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MaxCapacity": "The number of AWS Glue data processing units \\(DPUs\\) that are allocated to task runs for this transform\\. You can allocate from 2 to 100 DPUs; the default is 10\\. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory\\. For more information, see the [AWS Glue pricing page](http://aws.amazon.com/glue/pricing/)\\. \n`MaxCapacity` is a mutually exclusive option with `NumberOfWorkers` and `WorkerType`\\. \n+ If either `NumberOfWorkers` or `WorkerType` is set, then `MaxCapacity` cannot be set\\.\n+ If `MaxCapacity` is set then neither `NumberOfWorkers` or `WorkerType` can be set\\.\n+ If `WorkerType` is set, then `NumberOfWorkers` is required \\(and vice versa\\)\\.\n+ `MaxCapacity` and `NumberOfWorkers` must both be at least 1\\.\nWhen the `WorkerType` field is set to a value other than `Standard`, the `MaxCapacity` field is set automatically and becomes read\\-only\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxRetries": "The maximum number of times to retry after an `MLTaskRun` of the machine learning transform fails\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A user\\-defined name for the machine learning transform\\. Names are required to be unique\\. `Name` is optional: \n+ If you supply `Name`, the stack cannot be repeatedly created\\.\n+ If `Name` is not provided, a randomly generated name will be used instead\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumberOfWorkers": "The number of workers of a defined `workerType` that are allocated when a task of the transform runs\\. \nIf `WorkerType` is set, then `NumberOfWorkers` is required \\(and vice versa\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Role": "The name or Amazon Resource Name \\(ARN\\) of the IAM role with the required permissions\\. The required permissions include both AWS Glue service role permissions to AWS Glue resources, and Amazon S3 permissions required by the transform\\. \n+ This role needs AWS Glue service role permissions to allow access to resources in AWS Glue\\. See [Attach a Policy to IAM Users That Access AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/attach-policy-iam-user.html)\\.\n+ This role needs permission to your Amazon Simple Storage Service \\(Amazon S3\\) sources, targets, temporary directory, scripts, and any libraries used by the task run for this transform\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to use with this machine learning transform\\. You may use tags to limit access to the machine learning transform\\. For more information about tags in AWS Glue, see [AWS Tags in AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html) in the developer guide\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Timeout": "The timeout in minutes of the machine learning transform\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransformEncryption": "The encryption\\-at\\-rest settings of the transform that apply to accessing user data\\. Machine learning transforms can access user data encrypted in Amazon S3 using KMS\\. \nAdditionally, imported labels and trained transforms can now be encrypted using a customer provided KMS key\\. \n*Required*: No \n*Type*: [TransformEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransformParameters": "The algorithm\\-specific parameters that are associated with the machine learning transform\\. \n*Required*: Yes \n*Type*: [TransformParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WorkerType": "The type of predefined worker that is allocated when a task of this transform runs\\. Accepts a value of Standard, G\\.1X, or G\\.2X\\. \n+ For the `Standard` worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker\\.\n+ For the `G.1X` worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker\\.\n+ For the `G.2X` worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker\\.\n`MaxCapacity` is a mutually exclusive option with `NumberOfWorkers` and `WorkerType`\\. \n+ If either `NumberOfWorkers` or `WorkerType` is set, then `MaxCapacity` cannot be set\\.\n+ If `MaxCapacity` is set then neither `NumberOfWorkers` or `WorkerType` can be set\\.\n+ If `WorkerType` is set, then `NumberOfWorkers` is required \\(and vice versa\\)\\.\n+ `MaxCapacity` and `NumberOfWorkers` must both be at least 1\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::MLTransform FindMatchesParameters": { + "AccuracyCostTradeoff": "The value that is selected when tuning your transform for a balance between accuracy and cost\\. A value of 0\\.5 means that the system balances accuracy and cost concerns\\. A value of 1\\.0 means a bias purely for accuracy, which typically results in a higher cost, sometimes substantially higher\\. A value of 0\\.0 means a bias purely for cost, which results in a less accurate `FindMatches` transform, sometimes with unacceptable accuracy\\. \nAccuracy measures how well the transform finds true positives and true negatives\\. Increasing accuracy requires more machine resources and cost\\. But it also results in increased recall\\. \nCost measures how many compute resources, and thus money, are consumed to run the transform\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnforceProvidedLabels": "The value to switch on or off to force the output to match the provided labels from users\\. If the value is `True`, the `find matches` transform forces the output to match the provided labels\\. The results override the normal conflation results\\. If the value is `False`, the `find matches` transform does not ensure all the labels provided are respected, and the results rely on the trained model\\. \nNote that setting this value to true may increase the conflation execution time\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrecisionRecallTradeoff": "The value selected when tuning your transform for a balance between precision and recall\\. A value of 0\\.5 means no preference; a value of 1\\.0 means a bias purely for precision, and a value of 0\\.0 means a bias for recall\\. Because this is a tradeoff, choosing values close to 1\\.0 means very low recall, and choosing values close to 0\\.0 results in very low precision\\. \nThe precision metric indicates how often your model is correct when it predicts a match\\. \nThe recall metric indicates that for an actual match, how often your model predicts the match\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrimaryKeyColumnName": "The name of a column that uniquely identifies rows in the source table\\. Used to help identify matching records\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Glue::MLTransform GlueTables": { + "CatalogId": "A unique identifier for the AWS Glue Data Catalog\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectionName": "The name of the connection to the AWS Glue Data Catalog\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseName": "A database name in the AWS Glue Data Catalog\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TableName": "A table name in the AWS Glue Data Catalog\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::MLTransform InputRecordTables": { + "GlueTables": "The database and table in the AWS Glue Data Catalog that is used for input or output data\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-inputrecordtables-gluetables.html) of [GlueTables](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-inputrecordtables-gluetables.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::MLTransform MLUserDataEncryption": { + "KmsKeyId": "The ID for the customer\\-provided KMS key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MLUserDataEncryptionMode": "The encryption mode applied to user data\\. Valid values are: \n+ DISABLED: encryption is disabled\\.\n+ SSEKMS: use of server\\-side encryption with AWS Key Management Service \\(SSE\\-KMS\\) for user data stored in Amazon S3\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::MLTransform TransformEncryption": { + "MLUserDataEncryption": "The encryption\\-at\\-rest settings of the transform that apply to accessing user data\\. \n*Required*: No \n*Type*: [MLUserDataEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformencryption-mluserdataencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TaskRunSecurityConfigurationName": "The name of the security configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::MLTransform TransformParameters": { + "FindMatchesParameters": "The parameters for the find matches algorithm\\. \n*Required*: No \n*Type*: [FindMatchesParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformparameters-findmatchesparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransformType": "The type of machine learning transform\\. `FIND_MATCHES` is the only option\\. \nFor information about the types of machine learning transforms, see [Creating Machine Learning Transforms](https://docs.aws.amazon.com/glue/latest/dg/add-job-machine-learning-transform.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Partition": { + "CatalogId": "The AWS account ID of the catalog in which the partion is to be created\\. \nTo specify the account ID, you can use the `Ref` intrinsic function with the `AWS::AccountId` pseudo parameter\\. For example: `!Ref AWS::AccountId` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DatabaseName": "The name of the catalog database in which to create the partition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PartitionInput": "The structure used to create and update a partition\\. \n*Required*: Yes \n*Type*: [PartitionInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-partitioninput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TableName": "The name of the metadata table in which the partition is to be created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Glue::Partition Column": { + "Comment": "A free\\-form text comment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the `Column`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The data type of the `Column`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Partition Order": { + "Column": "The name of the column\\. \n*Required*: Yes \n*Type*: [String](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-column.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SortOrder": "Indicates that the column is sorted in ascending order \\(`== 1`\\), or in descending order \\(`==0`\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Partition PartitionInput": { + "Parameters": "These key\\-value pairs define partition parameters\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StorageDescriptor": "Provides information about the physical location where the partition is stored\\. \n*Required*: No \n*Type*: [StorageDescriptor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "The values of the partition\\. Although this parameter is not required by the SDK, you must specify this parameter for a valid input\\. \nThe values for the keys for the new partition must be passed as an array of String objects that must be ordered in the same order as the partition keys appearing in the Amazon S3 prefix\\. Otherwise AWS Glue will add the values to the wrong keys\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Glue::Partition SchemaId": { + "RegistryName": "The name of the schema registry that contains the schema\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SchemaArn": "The Amazon Resource Name \\(ARN\\) of the schema\\. One of `SchemaArn` or `SchemaName` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SchemaName": "The name of the schema\\. One of `SchemaArn` or `SchemaName` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Partition SchemaReference": { + "SchemaId": "A structure that contains schema identity fields\\. Either this or the `SchemaVersionId` has to be provided\\. \n*Required*: No \n*Type*: [SchemaId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-schemaid.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SchemaVersionId": "The unique ID assigned to a version of the schema\\. Either this or the `SchemaId` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SchemaVersionNumber": "The version number of the schema\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Partition SerdeInfo": { + "Name": "Name of the SerDe\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "These key\\-value pairs define initialization parameters for the SerDe\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SerializationLibrary": "Usually the class that implements the SerDe\\. An example is `org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Partition SkewedInfo": { + "SkewedColumnNames": "A list of names of columns that contain skewed values\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SkewedColumnValueLocationMaps": "A mapping of skewed values to the columns that contain them\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SkewedColumnValues": "A list of values that appear so frequently as to be considered skewed\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Partition StorageDescriptor": { + "BucketColumns": "A list of reducer grouping columns, clustering columns, and bucketing columns in the table\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Columns": "A list of the `Columns` in the table\\. \n*Required*: No \n*Type*: List of [Column](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-column.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Compressed": "`True` if the data in the table is compressed, or `False` if not\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputFormat": "The input format: `SequenceFileInputFormat` \\(binary\\), or `TextInputFormat`, or a custom format\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Location": "The physical location of the table\\. By default, this takes the form of the warehouse location, followed by the database location in the warehouse, followed by the table name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumberOfBuckets": "The number of buckets\\. \nYou must specify this property if the partition contains any dimension columns\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutputFormat": "The output format: `SequenceFileOutputFormat` \\(binary\\), or `IgnoreKeyTextOutputFormat`, or a custom format\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "The user\\-supplied properties in key\\-value form\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SchemaReference": "An object that references a schema stored in the AWS Glue Schema Registry\\. \n*Required*: No \n*Type*: [SchemaReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-schemareference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SerdeInfo": "The serialization/deserialization \\(SerDe\\) information\\. \n*Required*: No \n*Type*: [SerdeInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-serdeinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SkewedInfo": "The information about values that appear frequently in a column \\(skewed values\\)\\. \n*Required*: No \n*Type*: [SkewedInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-skewedinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SortColumns": "A list specifying the sort order of each bucket in the table\\. \n*Required*: No \n*Type*: List of [Order](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-order.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StoredAsSubDirectories": "`True` if the table data is stored in subdirectories, or `False` if not\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Registry": { + "Description": "A description of the registry\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the registry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "AWS tags that contain a key value pair and may be searched by console, command line, or API\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Schema": { + "CheckpointVersion": "Specify the `VersionNumber` or the `IsLatest` for setting the checkpoint for the schema\\. This is only required for updating a checkpoint\\. \n*Required*: No \n*Type*: [SchemaVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schema-schemaversion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Compatibility": "The compatibility mode of the schema\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataFormat": "The data format of the schema definition\\. Currently only `AVRO` is supported\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "A description of the schema if specified when created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "Name of the schema to be created of max length of 255, and may only contain letters, numbers, hyphen, underscore, dollar sign, or hash mark\\. No whitespace\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Registry": "The registry where a schema is stored\\. \n*Required*: No \n*Type*: [Registry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schema-registry.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SchemaDefinition": "The schema definition using the `DataFormat` setting for `SchemaName`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "AWS tags that contain a key value pair and may be searched by console, command line, or API\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Schema Registry": { + "Arn": "The Amazon Resource Name \\(ARN\\) of the registry\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the registry\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Glue::Schema SchemaVersion": { + "IsLatest": "Indicates if this version is the latest version of the schema\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VersionNumber": "The version number of the schema\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::SchemaVersion": { + "Schema": "The schema that includes the schema version\\. \n*Required*: Yes \n*Type*: [Schema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schemaversion-schema.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SchemaDefinition": "The schema definition for the schema version\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Glue::SchemaVersion Schema": { + "RegistryName": "The name of the registry where the schema is stored\\. Either `SchemaArn`, or `SchemaName` and `RegistryName` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SchemaArn": "The Amazon Resource Name \\(ARN\\) of the schema\\. Either `SchemaArn`, or `SchemaName` and `RegistryName` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SchemaName": "The name of the schema\\. Either `SchemaArn`, or `SchemaName` and `RegistryName` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Glue::SchemaVersionMetadata": { + "Key": "A metadata key in a key\\-value pair for metadata\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SchemaVersionId": "The version number of the schema\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Value": "A metadata key's corresponding value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Glue::SecurityConfiguration": { + "EncryptionConfiguration": "The encryption configuration associated with this security configuration\\. \n*Required*: Yes \n*Type*: [EncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-encryptionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the security configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Glue::SecurityConfiguration CloudWatchEncryption": { + "CloudWatchEncryptionMode": "The encryption mode to use for CloudWatch data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKeyArn": "The Amazon Resource Name \\(ARN\\) of the KMS key to be used to encrypt the data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::SecurityConfiguration EncryptionConfiguration": { + "CloudWatchEncryption": "The encryption configuration for Amazon CloudWatch\\. \n*Required*: No \n*Type*: [CloudWatchEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-cloudwatchencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JobBookmarksEncryption": "The encryption configuration for job bookmarks\\. \n*Required*: No \n*Type*: [JobBookmarksEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-jobbookmarksencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Encryptions": "The encyption configuration for Amazon Simple Storage Service \\(Amazon S3\\) data\\. \n*Required*: No \n*Type*: [S3Encryptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-s3encryptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::SecurityConfiguration JobBookmarksEncryption": { + "JobBookmarksEncryptionMode": "The encryption mode to use for job bookmarks data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKeyArn": "The Amazon Resource Name \\(ARN\\) of the KMS key to be used to encrypt the data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::SecurityConfiguration S3Encryption": { + "KmsKeyArn": "The Amazon Resource Name \\(ARN\\) of the KMS key to be used to encrypt the data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3EncryptionMode": "The encryption mode to use for Amazon S3 data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Table": { + "CatalogId": "The ID of the Data Catalog in which to create the `Table`\\. If none is supplied, the AWS account ID is used by default\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DatabaseName": "The name of the database where the table metadata resides\\. For Hive compatibility, this must be all lowercase\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TableInput": "A structure used to define a table\\. \n*Required*: Yes \n*Type*: [TableInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Table Column": { + "Comment": "A free\\-form text comment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the `Column`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The data type of the `Column`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Table Order": { + "Column": "The name of the column\\. \n*Required*: Yes \n*Type*: [String](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-column.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SortOrder": "Indicates that the column is sorted in ascending order \\(`== 1`\\), or in descending order \\(`==0`\\)\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Table SchemaId": { + "RegistryName": "The name of the schema registry that contains the schema\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SchemaArn": "The Amazon Resource Name \\(ARN\\) of the schema\\. One of `SchemaArn` or `SchemaName` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SchemaName": "The name of the schema\\. One of `SchemaArn` or `SchemaName` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Table SchemaReference": { + "SchemaId": "A structure that contains schema identity fields\\. Either this or the `SchemaVersionId` has to be provided\\. \n*Required*: No \n*Type*: [SchemaId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-schemaid.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SchemaVersionId": "The unique ID assigned to a version of the schema\\. Either this or the `SchemaId` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SchemaVersionNumber": "The version number of the schema\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Table SerdeInfo": { + "Name": "Name of the SerDe\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "These key\\-value pairs define initialization parameters for the SerDe\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SerializationLibrary": "Usually the class that implements the SerDe\\. An example is `org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Table SkewedInfo": { + "SkewedColumnNames": "A list of names of columns that contain skewed values\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SkewedColumnValueLocationMaps": "A mapping of skewed values to the columns that contain them\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SkewedColumnValues": "A list of values that appear so frequently as to be considered skewed\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Table StorageDescriptor": { + "BucketColumns": "A list of reducer grouping columns, clustering columns, and bucketing columns in the table\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Columns": "A list of the `Columns` in the table\\. \n*Required*: No \n*Type*: List of [Column](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-column.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Compressed": "`True` if the data in the table is compressed, or `False` if not\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputFormat": "The input format: `SequenceFileInputFormat` \\(binary\\), or `TextInputFormat`, or a custom format\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Location": "The physical location of the table\\. By default, this takes the form of the warehouse location, followed by the database location in the warehouse, followed by the table name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumberOfBuckets": "Must be specified if the table contains any dimension columns\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutputFormat": "The output format: `SequenceFileOutputFormat` \\(binary\\), or `IgnoreKeyTextOutputFormat`, or a custom format\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "The user\\-supplied properties in key\\-value form\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SchemaReference": "An object that references a schema stored in the AWS Glue Schema Registry\\. \n*Required*: No \n*Type*: [SchemaReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-schemareference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SerdeInfo": "The serialization/deserialization \\(SerDe\\) information\\. \n*Required*: No \n*Type*: [SerdeInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-serdeinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SkewedInfo": "The information about values that appear frequently in a column \\(skewed values\\)\\. \n*Required*: No \n*Type*: [SkewedInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-skewedinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SortColumns": "A list specifying the sort order of each bucket in the table\\. \n*Required*: No \n*Type*: List of [Order](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-order.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StoredAsSubDirectories": "`True` if the table data is stored in subdirectories, or `False` if not\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Table TableIdentifier": { + "CatalogId": "The ID of the Data Catalog in which the table resides\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseName": "The name of the catalog database that contains the target table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the target table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Table TableInput": { + "Description": "A description of the table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The table name\\. For Hive compatibility, this is folded to lowercase when it is stored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Owner": "The table owner\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "These key\\-value pairs define properties associated with the table\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PartitionKeys": "A list of columns by which the table is partitioned\\. Only primitive types are supported as partition keys\\. \nWhen you create a table used by Amazon Athena, and you do not specify any `partitionKeys`, you must at least set the value of `partitionKeys` to an empty list\\. For example: \n `\"PartitionKeys\": []` \n*Required*: No \n*Type*: List of [Column](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-column.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Retention": "The retention time for this table\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StorageDescriptor": "A storage descriptor containing information about the physical storage of this table\\. \n*Required*: No \n*Type*: [StorageDescriptor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TableType": "The type of this table \\(`EXTERNAL_TABLE`, `VIRTUAL_VIEW`, etc\\.\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetTable": "A `TableIdentifier` structure that describes a target table for resource linking\\. \n*Required*: No \n*Type*: [TableIdentifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableidentifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ViewExpandedText": "If the table is a view, the expanded text of the view; otherwise `null`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ViewOriginalText": "If the table is a view, the original text of the view; otherwise `null`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Trigger": { + "Actions": "The actions initiated by this trigger\\. \n*Required*: Yes \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of this trigger\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the trigger\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Predicate": "The predicate of this trigger, which defines when it will fire\\. \n*Required*: No \n*Type*: [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-predicate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Schedule": "A `cron` expression used to specify the schedule\\. For more information, see [Time\\-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html) in the *AWS Glue Developer Guide*\\. For example, to run something every day at 12:15 UTC, specify `cron(15 12 * * ? *)`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StartOnCreation": "Set to true to start `SCHEDULED` and `CONDITIONAL` triggers when created\\. True is not supported for `ON_DEMAND` triggers\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to use with this trigger\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of trigger that this is\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WorkflowName": "The name of the workflow associated with the trigger\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Glue::Trigger Action": { + "Arguments": "The job arguments used when this trigger fires\\. For this job run, they replace the default arguments set in the job definition itself\\. \nYou can specify arguments here that your own job\\-execution script consumes, in addition to arguments that AWS Glue itself consumes\\. \nFor information about how to specify and consume your own job arguments, see [Calling AWS Glue APIs in Python](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) in the *AWS Glue Developer Guide*\\. \nFor information about the key\\-value pairs that AWS Glue consumes to set up your job, see the [Special Parameters Used by AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html) topic in the developer guide\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CrawlerName": "The name of the crawler to be used with this action\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JobName": "The name of a job to be executed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotificationProperty": "Specifies configuration properties of a job run notification\\. \n*Required*: No \n*Type*: [NotificationProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-notificationproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityConfiguration": "The name of the `SecurityConfiguration` structure to be used with this action\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Timeout": "The `JobRun` timeout in minutes\\. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status\\. The default is 2,880 minutes \\(48 hours\\)\\. This overrides the timeout value set in the parent job\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Trigger Condition": { + "CrawlState": "The state of the crawler to which this condition applies\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CrawlerName": "The name of the crawler to which this condition applies\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JobName": "The name of the job whose `JobRuns` this condition applies to, and on which this trigger waits\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogicalOperator": "A logical operator\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "State": "The condition state\\. Currently, the values supported are `SUCCEEDED`, `STOPPED`, `TIMEOUT`, and `FAILED`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Trigger NotificationProperty": { + "NotifyDelayAfter": "After a job run starts, the number of minutes to wait before sending a job run delay notification \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Trigger Predicate": { + "Conditions": "A list of the conditions that determine when the trigger will fire\\. \n*Required*: No \n*Type*: List of [Condition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-condition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Logical": "An optional field if only one condition is listed\\. If multiple conditions are listed, then this field is required\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Glue::Workflow": { + "DefaultRunProperties": "A collection of properties to be used as part of each execution of the workflow \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the workflow \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the workflow representing the flow \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags to use with this workflow\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Greengrass::ConnectorDefinition": { + "InitialVersion": "The connector definition version to include when the connector definition is created\\. A connector definition version contains a list of [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinition-connector.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinition-connector.html) property types\\. \nTo associate a connector definition version after the connector definition is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinitionversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinitionversion.html) resource and specify the ID of this connector definition\\.\n*Required*: No \n*Type*: [ConnectorDefinitionVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinition-connectordefinitionversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the connector definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Application\\-specific metadata to attach to the connector definition\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\." + }, + "AWS::Greengrass::ConnectorDefinition Connector": { + "ConnectorArn": "The Amazon Resource Name \\(ARN\\) of the connector\\. \nFor more information about connectors provided by AWS, see [Greengrass Connectors Provided by AWS](https://docs.aws.amazon.com/greengrass/latest/developerguide/connectors-list.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Id": "A descriptive or arbitrary ID for the connector\\. This value must be unique within the connector definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Parameters": "The parameters or configuration used by the connector\\. \nFor more information about connectors provided by AWS, see [Greengrass Connectors Provided by AWS](https://docs.aws.amazon.com/greengrass/latest/developerguide/connectors-list.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ConnectorDefinition ConnectorDefinitionVersion": { + "Connectors": "The connectors in this version\\. Only one instance of a given connector can be added to a connector definition version at a time\\. \n*Required*: Yes \n*Type*: List of [Connector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinition-connector.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ConnectorDefinitionVersion": { + "ConnectorDefinitionId": "The ID of the connector definition associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Connectors": "The connectors in this version\\. Only one instance of a given connector can be added to the connector definition version at a time\\. \n*Required*: Yes \n*Type*: List of [Connector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinitionversion-connector.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ConnectorDefinitionVersion Connector": { + "ConnectorArn": "The Amazon Resource Name \\(ARN\\) of the connector\\. \nFor more information about connectors provided by AWS, see [Greengrass Connectors Provided by AWS](https://docs.aws.amazon.com/greengrass/latest/developerguide/connectors-list.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Id": "A descriptive or arbitrary ID for the connector\\. This value must be unique within the connector definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Parameters": "The parameters or configuration that the connector uses\\. \nFor more information about connectors provided by AWS, see [Greengrass Connectors Provided by AWS](https://docs.aws.amazon.com/greengrass/latest/developerguide/connectors-list.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::CoreDefinition": { + "InitialVersion": "The core definition version to include when the core definition is created\\. Currently, a core definition version can contain only one [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinition-core.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinition-core.html)\\. \nTo associate a core definition version after the core definition is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinitionversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinitionversion.html) resource and specify the ID of this core definition\\.\n*Required*: No \n*Type*: [CoreDefinitionVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinition-coredefinitionversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the core definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Application\\-specific metadata to attach to the core definition\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\." + }, + "AWS::Greengrass::CoreDefinition Core": { + "CertificateArn": "The Amazon Resource Name \\(ARN\\) of the device certificate for the core\\. This X\\.509 certificate is used to authenticate the core with AWS IoT and AWS IoT Greengrass services\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Id": "A descriptive or arbitrary ID for the core\\. This value must be unique within the core definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SyncShadow": "Indicates whether the core's local shadow is synced with the cloud automatically\\. The default is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ThingArn": "The ARN of the core, which is an AWS IoT device \\(thing\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::CoreDefinition CoreDefinitionVersion": { + "Cores": "The Greengrass core in this version\\. Currently, the `Cores` property for a core definition version can contain only one core\\. \n*Required*: Yes \n*Type*: List of [Core](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinition-core.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::CoreDefinitionVersion": { + "CoreDefinitionId": "The ID of the core definition associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Cores": "The Greengrass core in this version\\. Currently, the `Cores` property for a core definition version can contain only one core\\. \n*Required*: Yes \n*Type*: List of [Core](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinitionversion-core.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::CoreDefinitionVersion Core": { + "CertificateArn": "The ARN of the device certificate for the core\\. This X\\.509 certificate is used to authenticate the core with AWS IoT and AWS IoT Greengrass services\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Id": "A descriptive or arbitrary ID for the core\\. This value must be unique within the core definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SyncShadow": "Indicates whether the core's local shadow is synced with the cloud automatically\\. The default is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ThingArn": "The Amazon Resource Name \\(ARN\\) of the core, which is an AWS IoT device \\(thing\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::DeviceDefinition": { + "InitialVersion": "The device definition version to include when the device definition is created\\. A device definition version contains a list of [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-device.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-device.html) property types\\. \nTo associate a device definition version after the device definition is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinitionversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinitionversion.html) resource and specify the ID of this device definition\\.\n*Required*: No \n*Type*: [DeviceDefinitionVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-devicedefinitionversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the device definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Application\\-specific metadata to attach to the device definition\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\." + }, + "AWS::Greengrass::DeviceDefinition Device": { + "CertificateArn": "The Amazon Resource Name \\(ARN\\) of the device certificate for the device\\. This X\\.509 certificate is used to authenticate the device with AWS IoT and AWS IoT Greengrass services\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Id": "A descriptive or arbitrary ID for the device\\. This value must be unique within the device definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SyncShadow": "Indicates whether the device's local shadow is synced with the cloud automatically\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ThingArn": "The ARN of the device, which is an AWS IoT device \\(thing\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::DeviceDefinition DeviceDefinitionVersion": { + "Devices": "The devices in this version\\. \n*Required*: Yes \n*Type*: List of [Device](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-device.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::DeviceDefinitionVersion": { + "DeviceDefinitionId": "The ID of the device definition associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Devices": "The devices in this version\\. \n*Required*: Yes \n*Type*: List of [Device](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinitionversion-device.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::DeviceDefinitionVersion Device": { + "CertificateArn": "The ARN of the device certificate for the device\\. This X\\.509 certificate is used to authenticate the device with AWS IoT and AWS IoT Greengrass services\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Id": "A descriptive or arbitrary ID for the device\\. This value must be unique within the device definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SyncShadow": "Indicates whether the device's local shadow is synced with the cloud automatically\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ThingArn": "The Amazon Resource Name \\(ARN\\) of the device, which is an AWS IoT device \\(thing\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::FunctionDefinition": { + "InitialVersion": "The function definition version to include when the function definition is created\\. A function definition version contains a list of [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-function.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-function.html) property types\\. \nTo associate a function definition version after the function definition is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinitionversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinitionversion.html) resource and specify the ID of this function definition\\.\n*Required*: No \n*Type*: [FunctionDefinitionVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-functiondefinitionversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the function definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Application\\-specific metadata to attach to the function definition\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\." + }, + "AWS::Greengrass::FunctionDefinition DefaultConfig": { + "Execution": "Configuration settings for the Lambda execution environment on the AWS IoT Greengrass core\\. \n*Required*: Yes \n*Type*: [Execution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-execution.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Greengrass::FunctionDefinition Environment": { + "AccessSysfs": "Indicates whether the function is allowed to access the `/sys` directory on the core device, which allows the read device information from `/sys`\\. \nThis property applies only to Lambda functions that run in a Greengrass container\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Execution": "Settings for the Lambda execution environment in AWS IoT Greengrass\\. \n*Required*: No \n*Type*: [Execution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-execution.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceAccessPolicies": "A list of the [resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourceinstance.html) in the group that the function can access, with the corresponding read\\-only or read\\-write permissions\\. The maximum is 10 resources\\. \nThis property applies only for Lambda functions that run in a Greengrass container\\.\n*Required*: No \n*Type*: List of [ResourceAccessPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-resourceaccesspolicy.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Variables": "Environment variables for the Lambda function\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::FunctionDefinition Execution": { + "IsolationMode": "The containerization that the Lambda function runs in\\. Valid values are `GreengrassContainer` or `NoContainer`\\. Typically, this is `GreengrassContainer`\\. For more information, see [Containerization](https://docs.aws.amazon.com/greengrass/latest/developerguide/lambda-group-config.html#lambda-function-containerization) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html) property of a function definition version, this setting is used as the default containerization for all Lambda functions in the function definition version\\.\n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html) property of a function, this setting applies to the individual function and overrides the default\\. Omit this value to run the function with the default containerization\\.\nWe recommend that you run in a Greengrass container unless your business case requires that you run without containerization\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RunAs": "The user and group permissions used to run the Lambda function\\. Typically, this is the ggc\\_user and ggc\\_group\\. For more information, see [Run as](https://docs.aws.amazon.com/greengrass/latest/developerguide/lambda-group-config.html#lambda-access-identity.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html) property of a function definition version, this setting is used as the default access identity for all Lambda functions in the function definition version\\.\n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html) property of a function, this setting applies to the individual function and overrides the default\\. You can override the user, group, or both\\. Omit this value to run the function with the default permissions\\.\nRunning as the root user increases risks to your data and device\\. Do not run as root \\(UID/GID=0\\) unless your business case requires it\\. For more information and requirements, see [Running a Lambda Function as Root](https://docs.aws.amazon.com/greengrass/latest/developerguide/lambda-group-config.html#lambda-running-as-root)\\. \n*Required*: No \n*Type*: [RunAs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-runas.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::FunctionDefinition Function": { + "FunctionArn": "The Amazon Resource Name \\(ARN\\) of the alias \\(recommended\\) or version of the referenced Lambda function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FunctionConfiguration": "The group\\-specific settings of the Lambda function\\. These settings configure the function's behavior in the Greengrass group\\. \n*Required*: Yes \n*Type*: [FunctionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-functionconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Id": "A descriptive or arbitrary ID for the function\\. This value must be unique within the function definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::FunctionDefinition FunctionConfiguration": { + "EncodingType": "The expected encoding type of the input payload for the function\\. Valid values are `json` \\(default\\) and `binary`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Environment": "The environment configuration of the function\\. \n*Required*: No \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-environment.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ExecArgs": "The execution arguments\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Executable": "The name of the function executable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MemorySize": "The memory size \\(in KB\\) required by the function\\. \nThis property applies only to Lambda functions that run in a Greengrass container\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Pinned": "Indicates whether the function is pinned \\(or *long\\-lived*\\)\\. Pinned functions start when the core starts and process all requests in the same container\\. The default value is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Timeout": "The allowed execution time \\(in seconds\\) after which the function should terminate\\. For pinned functions, this timeout applies for each request\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::FunctionDefinition FunctionDefinitionVersion": { + "DefaultConfig": "The default configuration that applies to all Lambda functions in the group\\. Individual Lambda functions can override these settings\\. \n*Required*: No \n*Type*: [DefaultConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-defaultconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Functions": "The functions in this version\\. \n*Required*: Yes \n*Type*: List of [Function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-function.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::FunctionDefinition ResourceAccessPolicy": { + "Permission": "The read\\-only or read\\-write access that the Lambda function has to the resource\\. Valid values are `ro` or `rw`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceId": "The ID of the resource\\. This ID is assigned to the resource when you create the resource definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::FunctionDefinition RunAs": { + "Gid": "The group ID whose permissions are used to run the Lambda function\\. You can use the getent group command on your core device to look up the group ID\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Uid": "The user ID whose permissions are used to run the Lambda function\\. You can use the getent passwd command on your core device to look up the user ID\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::FunctionDefinitionVersion": { + "DefaultConfig": "The default configuration that applies to all Lambda functions in the group\\. Individual Lambda functions can override these settings\\. \n*Required*: No \n*Type*: [DefaultConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FunctionDefinitionId": "The ID of the function definition associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Functions": "The functions in this version\\. \n*Required*: Yes \n*Type*: List of [Function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-function.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::FunctionDefinitionVersion DefaultConfig": { + "Execution": "Configuration settings for the Lambda execution environment on the AWS IoT Greengrass core\\. \n*Required*: Yes \n*Type*: [Execution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-execution.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Greengrass::FunctionDefinitionVersion Environment": { + "AccessSysfs": "Indicates whether the function is allowed to access the `/sys` directory on the core device, which allows the read device information from `/sys`\\. \nThis property applies only to Lambda functions that run in a Greengrass container\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Execution": "Settings for the Lambda execution environment in AWS IoT Greengrass\\. \n*Required*: No \n*Type*: [Execution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-execution.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceAccessPolicies": "A list of the [resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourceinstance.html) in the group that the function can access, with the corresponding read\\-only or read\\-write permissions\\. The maximum is 10 resources\\. \nThis property applies only to Lambda functions that run in a Greengrass container\\.\n*Required*: No \n*Type*: List of [ResourceAccessPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-resourceaccesspolicy.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Variables": "Environment variables for the Lambda function\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::FunctionDefinitionVersion Execution": { + "IsolationMode": "The containerization that the Lambda function runs in\\. Valid values are `GreengrassContainer` or `NoContainer`\\. Typically, this is `GreengrassContainer`\\. For more information, see [Containerization](https://docs.aws.amazon.com/greengrass/latest/developerguide/lambda-group-config.html#lambda-function-containerization) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html) property of a function definition version, this setting is used as the default containerization for all Lambda functions in the function definition version\\.\n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html) property of a function, this setting applies to the individual function and overrides the default\\. Omit this value to run the function with the default containerization\\.\nWe recommend that you run in a Greengrass container unless your business case requires that you run without containerization\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RunAs": "The user and group permissions used to run the Lambda function\\. Typically, this is the ggc\\_user and ggc\\_group\\. For more information, see [Run as](https://docs.aws.amazon.com/greengrass/latest/developerguide/lambda-group-config.html#lambda-access-identity.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html) property of a function definition version, this setting is used as the default access identity for all Lambda functions in the function definition version\\.\n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html) property of a function, this setting applies to the individual function and overrides the default\\. You can override the user, group, or both\\. Omit this value to run the function with the default permissions\\.\nRunning as the root user increases risks to your data and device\\. Do not run as root \\(UID/GID=0\\) unless your business case requires it\\. For more information and requirements, see [Running a Lambda Function as Root](https://docs.aws.amazon.com/greengrass/latest/developerguide/lambda-group-config.html#lambda-running-as-root)\\. \n*Required*: No \n*Type*: [RunAs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-runas.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::FunctionDefinitionVersion Function": { + "FunctionArn": "The Amazon Resource Name \\(ARN\\) of the alias \\(recommended\\) or version of the referenced Lambda function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FunctionConfiguration": "The group\\-specific settings of the Lambda function\\. These settings configure the function's behavior in the Greengrass group\\. \n*Required*: Yes \n*Type*: [FunctionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-functionconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Id": "A descriptive or arbitrary ID for the function\\. This value must be unique within the function definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::FunctionDefinitionVersion FunctionConfiguration": { + "EncodingType": "The expected encoding type of the input payload for the function\\. Valid values are `json` \\(default\\) and `binary`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Environment": "The environment configuration of the function\\. \n*Required*: No \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ExecArgs": "The execution arguments\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Executable": "The name of the function executable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MemorySize": "The memory size \\(in KB\\) required by the function\\. \nThis property applies only to Lambda functions that run in a Greengrass container\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Pinned": "Indicates whether the function is pinned \\(or *long\\-lived*\\)\\. Pinned functions start when the core starts and process all requests in the same container\\. The default value is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Timeout": "The allowed execution time \\(in seconds\\) after which the function should terminate\\. For pinned functions, this timeout applies for each request\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::FunctionDefinitionVersion ResourceAccessPolicy": { + "Permission": "The read\\-only or read\\-write access that the Lambda function has to the resource\\. Valid values are `ro` or `rw`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceId": "The ID of the resource\\. This ID is assigned to the resource when you create the resource definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::FunctionDefinitionVersion RunAs": { + "Gid": "The group ID whose permissions are used to run the Lambda function\\. You can use the getent group command on your core device to look up the group ID\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Uid": "The user ID whose permissions are used to run the Lambda function\\. You can use the getent passwd command on your core device to look up the user ID\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::Group": { + "InitialVersion": "The group version to include when the group is created\\. A group version references the Amazon Resource Name \\(ARN\\) of a core definition version, device definition version, subscription definition version, and other version types\\. The group version must reference a core definition version that contains one core\\. Other version types are optionally included, depending on your business need\\. \nTo associate a group version after the group is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-groupversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-groupversion.html) resource and specify the ID of this group\\.\n*Required*: No \n*Type*: [GroupVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-group-groupversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM role attached to the group\\. This role contains the permissions that Lambda functions and connectors use to interact with other AWS services\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Application\\-specific metadata to attach to the group\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\." + }, + "AWS::Greengrass::Group GroupVersion": { + "ConnectorDefinitionVersionArn": "The Amazon Resource Name \\(ARN\\) of the connector definition version that contains the connectors you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CoreDefinitionVersionArn": "The ARN of the core definition version that contains the core you want to deploy with the group version\\. Currently, the core definition version can contain only one core\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DeviceDefinitionVersionArn": "The ARN of the device definition version that contains the devices you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FunctionDefinitionVersionArn": "The ARN of the function definition version that contains the functions you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LoggerDefinitionVersionArn": "The ARN of the logger definition version that contains the loggers you want to deploy with the group version\\. \n \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceDefinitionVersionArn": "The ARN of the resource definition version that contains the resources you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubscriptionDefinitionVersionArn": "The ARN of the subscription definition version that contains the subscriptions you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::GroupVersion": { + "ConnectorDefinitionVersionArn": "The Amazon Resource Name \\(ARN\\) of the connector definition version that contains the connectors you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CoreDefinitionVersionArn": "The ARN of the core definition version that contains the core you want to deploy with the group version\\. Currently, the core definition version can contain only one core\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DeviceDefinitionVersionArn": "The ARN of the device definition version that contains the devices you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FunctionDefinitionVersionArn": "The ARN of the function definition version that contains the functions you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GroupId": "The ID of the group associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LoggerDefinitionVersionArn": "The ARN of the logger definition version that contains the loggers you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceDefinitionVersionArn": "The ARN of the resource definition version that contains the resources you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubscriptionDefinitionVersionArn": "The ARN of the subscription definition version that contains the subscriptions you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::LoggerDefinition": { + "InitialVersion": "The logger definition version to include when the logger definition is created\\. A logger definition version contains a list of [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-logger.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-logger.html) property types\\. \nTo associate a logger definition version after the logger definition is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinitionversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinitionversion.html) resource and specify the ID of this logger definition\\.\n*Required*: No \n*Type*: [LoggerDefinitionVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-loggerdefinitionversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the logger definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Application\\-specific metadata to attach to the logger definition\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\." + }, + "AWS::Greengrass::LoggerDefinition Logger": { + "Component": "The source of the log event\\. Valid values are `GreengrassSystem` or `Lambda`\\. When `GreengrassSystem` is used, events from Greengrass system components are logged\\. When `Lambda` is used, events from user\\-defined Lambda functions are logged\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Id": "A descriptive or arbitrary ID for the logger\\. This value must be unique within the logger definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Level": "The log\\-level threshold\\. Log events below this threshold are filtered out and aren't stored\\. Valid values are `DEBUG`, `INFO` \\(recommended\\), `WARN`, `ERROR`, or `FATAL`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Space": "The amount of file space \\(in KB\\) to use when writing logs to the local file system\\. This property does not apply for CloudWatch Logs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "The storage mechanism for log events\\. Valid values are `FileSystem` or `AWSCloudWatch`\\. When `AWSCloudWatch` is used, log events are sent to CloudWatch Logs\\. When `FileSystem` is used, log events are stored on the local file system\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::LoggerDefinition LoggerDefinitionVersion": { + "Loggers": "The loggers in this version\\. \n*Required*: Yes \n*Type*: List of [Logger](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-logger.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::LoggerDefinitionVersion": { + "LoggerDefinitionId": "The ID of the logger definition associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Loggers": "The loggers in this version\\. \n*Required*: Yes \n*Type*: List of [Logger](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinitionversion-logger.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::LoggerDefinitionVersion Logger": { + "Component": "The source of the log event\\. Valid values are `GreengrassSystem` or `Lambda`\\. When `GreengrassSystem` is used, events from Greengrass system components are logged\\. When `Lambda` is used, events from user\\-defined Lambda functions are logged\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Id": "A descriptive or arbitrary ID for the logger\\. This value must be unique within the logger definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Level": "The log\\-level threshold\\. Log events below this threshold are filtered out and aren't stored\\. Valid values are `DEBUG`, `INFO` \\(recommended\\), `WARN`, `ERROR`, or `FATAL`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Space": "The amount of file space \\(in KB\\) to use when writing logs to the local file system\\. This property does not apply for CloudWatch Logs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "The storage mechanism for log events\\. Valid values are `FileSystem` or `AWSCloudWatch`\\. When `AWSCloudWatch` is used, log events are sent to CloudWatch Logs\\. When `FileSystem` is used, log events are stored on the local file system\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ResourceDefinition": { + "InitialVersion": "The resource definition version to include when the resource definition is created\\. A resource definition version contains a list of [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourceinstance.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourceinstance.html) property types\\. \nTo associate a resource definition version after the resource definition is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinitionversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinitionversion.html) resource and specify the ID of this resource definition\\.\n*Required*: No \n*Type*: [ResourceDefinitionVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedefinitionversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the resource definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Application\\-specific metadata to attach to the resource definition\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\." + }, + "AWS::Greengrass::ResourceDefinition GroupOwnerSetting": { + "AutoAddGroupOwner": "Indicates whether to give the privileges of the Linux group that owns the resource to the Lambda process\\. This gives the Lambda process the file access permissions of the Linux group\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GroupOwner": "The name of the Linux group whose privileges you want to add to the Lambda process\\. This value is ignored if `AutoAddGroupOwner` is true\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ResourceDefinition LocalDeviceResourceData": { + "GroupOwnerSetting": "Settings that define additional Linux OS group permissions to give to the Lambda function process\\. \n*Required*: No \n*Type*: [GroupOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-groupownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourcePath": "The local absolute path of the device resource\\. The source path for a device resource can refer only to a character device or block device under `/dev`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ResourceDefinition LocalVolumeResourceData": { + "DestinationPath": "The absolute local path of the resource in the Lambda environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GroupOwnerSetting": "Settings that define additional Linux OS group permissions to give to the Lambda function process\\. \n*Required*: No \n*Type*: [GroupOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-groupownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourcePath": "The local absolute path of the volume resource on the host\\. The source path for a volume resource type cannot start with `/sys`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ResourceDefinition ResourceDataContainer": { + "LocalDeviceResourceData": "Settings for a local device resource\\. \n*Required*: No \n*Type*: [LocalDeviceResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-localdeviceresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LocalVolumeResourceData": "Settings for a local volume resource\\. \n*Required*: No \n*Type*: [LocalVolumeResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-localvolumeresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "S3MachineLearningModelResourceData": "Settings for a machine learning resource stored in Amazon S3\\. \n*Required*: No \n*Type*: [S3MachineLearningModelResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-s3machinelearningmodelresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SageMakerMachineLearningModelResourceData": "Settings for a machine learning resource saved as an SageMaker training job\\. \n*Required*: No \n*Type*: [SageMakerMachineLearningModelResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-sagemakermachinelearningmodelresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecretsManagerSecretResourceData": "Settings for a secret resource\\. \n*Required*: No \n*Type*: [SecretsManagerSecretResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-secretsmanagersecretresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ResourceDefinition ResourceDefinitionVersion": { + "Resources": "The resources in this version\\. \n*Required*: Yes \n*Type*: List of [ResourceInstance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourceinstance.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ResourceDefinition ResourceDownloadOwnerSetting": { + "GroupOwner": "The group owner of the machine learning resource\\. This is the group ID \\(GID\\) of an existing Linux OS group on the system\\. The group's permissions are added to the Lambda process\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GroupPermission": "The permissions that the group owner has to the machine learning resource\\. Valid values are `rw` \\(read\\-write\\) or `ro` \\(read\\-only\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ResourceDefinition ResourceInstance": { + "Id": "A descriptive or arbitrary ID for the resource\\. This value must be unique within the resource definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The descriptive resource name, which is displayed on the AWS IoT Greengrass console\\. Maximum length 128 characters with pattern \\[a\\-zA\\-Z0\\-9:\\_\\-\\]\\+\\. This must be unique within a Greengrass group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceDataContainer": "A container for resource data\\. The container takes only one of the following supported resource data types: `LocalDeviceResourceData`, `LocalVolumeResourceData`, `SageMakerMachineLearningModelResourceData`, `S3MachineLearningModelResourceData`, or `SecretsManagerSecretResourceData`\\. \nOnly one resource type can be defined for a `ResourceDataContainer` instance\\.\n*Required*: Yes \n*Type*: [ResourceDataContainer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedatacontainer.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ResourceDefinition S3MachineLearningModelResourceData": { + "DestinationPath": "The absolute local path of the resource inside the Lambda environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OwnerSetting": "The owner setting for the downloaded machine learning resource\\. For more information, see [Access Machine Learning Resources from Lambda Functions](https://docs.aws.amazon.com/greengrass/latest/developerguide/access-ml-resources.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n*Required*: No \n*Type*: [ResourceDownloadOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedownloadownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "S3Uri": "The URI of the source model in an Amazon S3 bucket\\. The model package must be in `tar.gz` or `.zip` format\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ResourceDefinition SageMakerMachineLearningModelResourceData": { + "DestinationPath": "The absolute local path of the resource inside the Lambda environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OwnerSetting": "The owner setting for the downloaded machine learning resource\\. For more information, see [Access Machine Learning Resources from Lambda Functions](https://docs.aws.amazon.com/greengrass/latest/developerguide/access-ml-resources.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n*Required*: No \n*Type*: [ResourceDownloadOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedownloadownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SageMakerJobArn": "The Amazon Resource Name \\(ARN\\) of the Amazon SageMaker training job that represents the source model\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ResourceDefinition SecretsManagerSecretResourceData": { + "ARN": "The Amazon Resource Name \\(ARN\\) of the Secrets Manager secret to make available on the core\\. The value of the secret's latest version \\(represented by the `AWSCURRENT` staging label\\) is included by default\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AdditionalStagingLabelsToDownload": "The staging labels whose values you want to make available on the core, in addition to `AWSCURRENT`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ResourceDefinitionVersion": { + "ResourceDefinitionId": "The ID of the resource definition associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Resources": "The resources in this version\\. \n*Required*: Yes \n*Type*: List of [ResourceInstance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourceinstance.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ResourceDefinitionVersion GroupOwnerSetting": { + "AutoAddGroupOwner": "Indicates whether to give the privileges of the Linux group that owns the resource to the Lambda process\\. This gives the Lambda process the file access permissions of the Linux group\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GroupOwner": "The name of the Linux group whose privileges you want to add to the Lambda process\\. This value is ignored if `AutoAddGroupOwner` is true\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ResourceDefinitionVersion LocalDeviceResourceData": { + "GroupOwnerSetting": "Settings that define additional Linux OS group permissions to give to the Lambda function process\\. \n*Required*: No \n*Type*: [GroupOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-groupownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourcePath": "The local absolute path of the device resource\\. The source path for a device resource can refer only to a character device or block device under `/dev`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ResourceDefinitionVersion LocalVolumeResourceData": { + "DestinationPath": "The absolute local path of the resource in the Lambda environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GroupOwnerSetting": "Settings that define additional Linux OS group permissions to give to the Lambda function process\\. \n*Required*: No \n*Type*: [GroupOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-groupownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourcePath": "The local absolute path of the volume resource on the host\\. The source path for a volume resource type cannot start with `/sys`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ResourceDefinitionVersion ResourceDataContainer": { + "LocalDeviceResourceData": "Settings for a local device resource\\. \n*Required*: No \n*Type*: [LocalDeviceResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-localdeviceresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LocalVolumeResourceData": "Settings for a local volume resource\\. \n*Required*: No \n*Type*: [LocalVolumeResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-localvolumeresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "S3MachineLearningModelResourceData": "Settings for a machine learning resource stored in Amazon S3\\. \n*Required*: No \n*Type*: [S3MachineLearningModelResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-s3machinelearningmodelresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SageMakerMachineLearningModelResourceData": "Settings for a machine learning resource saved as an SageMaker training job\\. \n*Required*: No \n*Type*: [SageMakerMachineLearningModelResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-sagemakermachinelearningmodelresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecretsManagerSecretResourceData": "Settings for a secret resource\\. \n*Required*: No \n*Type*: [SecretsManagerSecretResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-secretsmanagersecretresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ResourceDefinitionVersion ResourceDownloadOwnerSetting": { + "GroupOwner": "The group owner of the machine learning resource\\. This is the group ID \\(GID\\) of an existing Linux OS group on the system\\. The group's permissions are added to the Lambda process\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GroupPermission": "The permissions that the group owner has to the machine learning resource\\. Valid values are `rw` \\(read\\-write\\) or `ro` \\(read\\-only\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ResourceDefinitionVersion ResourceInstance": { + "Id": "A descriptive or arbitrary ID for the resource\\. This value must be unique within the resource definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The descriptive resource name, which is displayed on the AWS IoT Greengrass console\\. Maximum length 128 characters with pattern \\[a\\-zA\\-Z0\\-9:\\_\\-\\]\\+\\. This must be unique within a Greengrass group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceDataContainer": "A container for resource data\\. The container takes only one of the following supported resource data types: `LocalDeviceResourceData`, `LocalVolumeResourceData`, `SageMakerMachineLearningModelResourceData`, `S3MachineLearningModelResourceData`, or `SecretsManagerSecretResourceData`\\. \nOnly one resource type can be defined for a `ResourceDataContainer` instance\\.\n*Required*: Yes \n*Type*: [ResourceDataContainer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedatacontainer.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ResourceDefinitionVersion S3MachineLearningModelResourceData": { + "DestinationPath": "The absolute local path of the resource inside the Lambda environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OwnerSetting": "The owner setting for the downloaded machine learning resource\\. For more information, see [Access Machine Learning Resources from Lambda Functions](https://docs.aws.amazon.com/greengrass/latest/developerguide/access-ml-resources.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n*Required*: No \n*Type*: [ResourceDownloadOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedownloadownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "S3Uri": "The URI of the source model in an Amazon S3 bucket\\. The model package must be in `tar.gz` or `.zip` format\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ResourceDefinitionVersion SageMakerMachineLearningModelResourceData": { + "DestinationPath": "The absolute local path of the resource inside the Lambda environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OwnerSetting": "The owner setting for the downloaded machine learning resource\\. For more information, see [Access Machine Learning Resources from Lambda Functions](https://docs.aws.amazon.com/greengrass/latest/developerguide/access-ml-resources.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n*Required*: No \n*Type*: [ResourceDownloadOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedownloadownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SageMakerJobArn": "The Amazon Resource Name \\(ARN\\) of the Amazon SageMaker training job that represents the source model\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::ResourceDefinitionVersion SecretsManagerSecretResourceData": { + "ARN": "The Amazon Resource Name \\(ARN\\) of the Secrets Manager secret to make available on the core\\. The value of the secret's latest version \\(represented by the `AWSCURRENT` staging label\\) is included by default\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AdditionalStagingLabelsToDownload": "The staging labels whose values you want to make available on the core, in addition to `AWSCURRENT`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::SubscriptionDefinition": { + "InitialVersion": "The subscription definition version to include when the subscription definition is created\\. A subscription definition version contains a list of [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinition-subscription.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinition-subscription.html) property types\\. \nTo associate a subscription definition version after the subscription definition is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinitionversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinitionversion.html) resource and specify the ID of this subscription definition\\.\n*Required*: No \n*Type*: [SubscriptionDefinitionVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinition-subscriptiondefinitionversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the subscription definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Application\\-specific metadata to attach to the subscription definition\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\." + }, + "AWS::Greengrass::SubscriptionDefinition Subscription": { + "Id": "A descriptive or arbitrary ID for the subscription\\. This value must be unique within the subscription definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Source": "The originator of the message\\. The value can be a thing ARN, the ARN of a Lambda function alias \\(recommended\\) or version, a connector ARN, `cloud` \\(which represents the AWS IoT cloud\\), or `GGShadowService`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Subject": "The MQTT topic used to route the message\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Target": "The destination of the message\\. The value can be a thing ARN, the ARN of a Lambda function alias \\(recommended\\) or version, a connector ARN, `cloud` \\(which represents the AWS IoT cloud\\), or `GGShadowService`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::SubscriptionDefinition SubscriptionDefinitionVersion": { + "Subscriptions": "The subscriptions in this version\\. \n*Required*: Yes \n*Type*: List of [Subscription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinition-subscription.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::SubscriptionDefinitionVersion": { + "SubscriptionDefinitionId": "The ID of the subscription definition associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Subscriptions": "The subscriptions in this version\\. \n*Required*: Yes \n*Type*: List of [Subscription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinitionversion-subscription.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Greengrass::SubscriptionDefinitionVersion Subscription": { + "Id": "A descriptive or arbitrary ID for the subscription\\. This value must be unique within the subscription definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Source": "The originator of the message\\. The value can be a thing ARN, the ARN of a Lambda function alias \\(recommended\\) or version, a connector ARN, `cloud` \\(which represents the AWS IoT cloud\\), or `GGShadowService`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Subject": "The MQTT topic used to route the message\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Target": "The destination of the message\\. The value can be a thing ARN, the ARN of a Lambda function alias \\(recommended\\) or version, a connector ARN, `cloud` \\(which represents the AWS IoT cloud\\), or `GGShadowService`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::GreengrassV2::ComponentVersion": { + "InlineRecipe": "The recipe to use to create the component\\. The recipe defines the component's metadata, parameters, dependencies, lifecycle, artifacts, and platform compatibility\\. \nYou must specify either `InlineRecipe` or `LambdaFunction`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LambdaFunction": "The parameters to create a component from a Lambda function\\. \nYou must specify either `InlineRecipe` or `LambdaFunction`\\. \n*Required*: No \n*Type*: [LambdaFunctionRecipeSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdafunctionrecipesource.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Application\\-specific metadata to attach to the component version\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tag your AWS IoT Greengrass Version 2 resources](https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html) in the *AWS IoT Greengrass V2 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\." + }, + "AWS::GreengrassV2::ComponentVersion ComponentDependencyRequirement": { + "DependencyType": "The type of this dependency\\. Choose from the following options: \n+ `SOFT` \u2013 The component doesn't restart if the dependency changes state\\.\n+ `HARD` \u2013 The component restarts if the dependency changes state\\.\nDefault: `HARD` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VersionRequirement": "The component version requirement for the component dependency\\. \nAWS IoT Greengrass uses semantic version constraints\\. For more information, see [Semantic Versioning](https://semver.org/)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GreengrassV2::ComponentVersion ComponentPlatform": { + "Attributes": "A dictionary of attributes for the platform\\. The software defines the `os` and `platform` by default\\. You can specify additional platform attributes for a core device when you deploy the Greengrass nucleus component\\. For more information, see the [Greengrass nucleus component](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html) in the *AWS IoT Greengrass V2 Developer Guide*\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The friendly name of the platform\\. This name helps you identify the platform\\. \nIf you omit this parameter, AWS IoT Greengrass creates a friendly name from the `os` and `architecture` of the platform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::GreengrassV2::ComponentVersion LambdaContainerParams": { + "Devices": "The list of system devices that the container can access\\. \n*Required*: No \n*Type*: List of [LambdaDeviceMount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdadevicemount.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MemorySizeInKB": "The memory size of the container, expressed in kilobytes\\. \nDefault: `16384` \\(16 MB\\) \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MountROSysfs": "Whether or not the container can read information from the device's `/sys` folder\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Volumes": "The list of volumes that the container can access\\. \n*Required*: No \n*Type*: List of [LambdaVolumeMount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdavolumemount.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::GreengrassV2::ComponentVersion LambdaDeviceMount": { + "AddGroupOwner": "Whether or not to add the component's system user as an owner of the device\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Path": "The mount path for the device in the file system\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Permission": "The permission to access the device: read/only \\(`ro`\\) or read/write \\(`rw`\\)\\. \nDefault: `ro` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::GreengrassV2::ComponentVersion LambdaEventSource": { + "Topic": "The topic to which to subscribe to receive event messages\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "The type of event source\\. Choose from the following options: \n+ `PUB_SUB` \u2013 Subscribe to local publish/subscribe messages\\. This event source type doesn't support MQTT wildcards \\(`+` and `#`\\) in the event source topic\\.\n+ `IOT_CORE` \u2013 Subscribe to AWS IoT Core MQTT messages\\. This event source type supports MQTT wildcards \\(`+` and `#`\\) in the event source topic\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::GreengrassV2::ComponentVersion LambdaExecutionParameters": { + "EnvironmentVariables": "The map of environment variables that are available to the Lambda function when it runs\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EventSources": "The list of event sources to which to subscribe to receive work messages\\. The Lambda function runs when it receives a message from an event source\\. You can subscribe this function to local publish/subscribe messages and AWS IoT Core MQTT messages\\. \n*Required*: No \n*Type*: List of [LambdaEventSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdaeventsource.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ExecArgs": "The list of arguments to pass to the Lambda function when it runs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InputPayloadEncodingType": "The encoding type that the Lambda function supports\\. \nDefault: `json` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LinuxProcessParams": "The parameters for the Linux process that contains the Lambda function\\. \n*Required*: No \n*Type*: [LambdaLinuxProcessParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdalinuxprocessparams.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MaxIdleTimeInSeconds": "The maximum amount of time in seconds that a non\\-pinned Lambda function can idle before the software stops its process\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MaxInstancesCount": "The maximum number of instances that a non\\-pinned Lambda function can run at the same time\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MaxQueueSize": "The maximum size of the message queue for the Lambda function component\\. The Greengrass core device stores messages in a FIFO \\(first\\-in\\-first\\-out\\) queue until it can run the Lambda function to consume each message\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Pinned": "Whether or not the Lambda function is pinned, or long\\-lived\\. \n+ A pinned Lambda function starts when the starts and keeps running in its own container\\.\n+ A non\\-pinned Lambda function starts only when it receives a work item and exists after it idles for `maxIdleTimeInSeconds`\\. If the function has multiple work items, the software creates multiple instances of the function\\.\nDefault: `true` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StatusTimeoutInSeconds": "The interval in seconds at which a pinned \\(also known as long\\-lived\\) Lambda function component sends status updates to the Lambda manager component\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TimeoutInSeconds": "The maximum amount of time in seconds that the Lambda function can process a work item\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::GreengrassV2::ComponentVersion LambdaFunctionRecipeSource": { + "ComponentDependencies": "The component versions on which this Lambda function component depends\\. \n*Required*: No \n*Type*: Map of [ComponentDependencyRequirement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-componentdependencyrequirement.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ComponentLambdaParameters": "The system and runtime parameters for the Lambda function as it runs on the Greengrass core device\\. \n*Required*: No \n*Type*: [LambdaExecutionParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdaexecutionparameters.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ComponentName": "The name of the component\\. \nDefaults to the name of the Lambda function\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ComponentPlatforms": "The platforms that the component version supports\\. \n*Required*: No \n*Type*: List of [ComponentPlatform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-componentplatform.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ComponentVersion": "The version of the component\\. \nDefaults to the version of the Lambda function as a semantic version\\. For example, if your function version is `3`, the component version becomes `3.0.0`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LambdaArn": "The ARN of the Lambda function\\. The ARN must include the version of the function to import\\. You can't use version aliases like `$LATEST`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::GreengrassV2::ComponentVersion LambdaLinuxProcessParams": { + "ContainerParams": "The parameters for the container in which the Lambda function runs\\. \n*Required*: No \n*Type*: [LambdaContainerParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdacontainerparams.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IsolationMode": "The isolation mode for the process that contains the Lambda function\\. The process can run in an isolated runtime environment inside the AWS IoT Greengrass container, or as a regular process outside any container\\. \nDefault: `GreengrassContainer` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::GreengrassV2::ComponentVersion LambdaVolumeMount": { + "AddGroupOwner": "Whether or not to add the AWS IoT Greengrass user group as an owner of the volume\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DestinationPath": "The path to the logical volume in the file system\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Permission": "The permission to access the volume: read/only \\(`ro`\\) or read/write \\(`rw`\\)\\. \nDefault: `ro` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourcePath": "The path to the physical volume in the file system\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::GroundStation::Config": { + "ConfigData": "Object containing the parameters of a config\\. Only one subtype may be specified per config\\. See the subtype definitions for a description of each config subtype\\. \n*Required*: Yes \n*Type*: [ConfigData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-configdata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the config object\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Tags assigned to a resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GroundStation::Config AntennaDownlinkConfig": { + "SpectrumConfig": "Defines the spectrum configuration\\. \n*Required*: No \n*Type*: [SpectrumConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-spectrumconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GroundStation::Config AntennaDownlinkDemodDecodeConfig": { + "DecodeConfig": "Defines how the RF signal will be decoded\\. \n*Required*: No \n*Type*: [DecodeConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-decodeconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DemodulationConfig": "Defines how the RF signal will be demodulated\\. \n*Required*: No \n*Type*: [DemodulationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-demodulationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SpectrumConfig": "Defines the spectrum configuration\\. \n*Required*: No \n*Type*: [SpectrumConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-spectrumconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GroundStation::Config AntennaUplinkConfig": { + "SpectrumConfig": "Defines the spectrum configuration\\. \n*Required*: No \n*Type*: [UplinkSpectrumConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-uplinkspectrumconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetEirp": "The equivalent isotropically radiated power \\(EIRP\\) to use for uplink transmissions\\. Valid values are between 20\\.0 to 50\\.0 dBW\\. \n*Required*: No \n*Type*: [Eirp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-eirp.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransmitDisabled": "Whether or not uplink transmit is disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GroundStation::Config ConfigData": { + "AntennaDownlinkConfig": "Provides information for an antenna downlink config object\\. Antenna downlink config objects are used to provide parameters for downlinks where no demodulation or decoding is performed by Ground Station \\(RF over IP downlinks\\)\\. \n*Required*: No \n*Type*: [AntennaDownlinkConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-antennadownlinkconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AntennaDownlinkDemodDecodeConfig": "Provides information for a downlink demod decode config object\\. Downlink demod decode config objects are used to provide parameters for downlinks where the Ground Station service will demodulate and decode the downlinked data\\. \n*Required*: No \n*Type*: [AntennaDownlinkDemodDecodeConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-antennadownlinkdemoddecodeconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AntennaUplinkConfig": "Provides information for an uplink config object\\. Uplink config objects are used to provide parameters for uplink contacts\\. \n*Required*: No \n*Type*: [AntennaUplinkConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-antennauplinkconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataflowEndpointConfig": "Provides information for a dataflow endpoint config object\\. Dataflow endpoint config objects are used to provide parameters about which IP endpoint\\(s\\) to use during a contact\\. Dataflow endpoints are where Ground Station sends data during a downlink contact and where Ground Station receives data to send to the satellite during an uplink contact\\. \n*Required*: No \n*Type*: [DataflowEndpointConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-dataflowendpointconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3RecordingConfig": "Provides information for an S3 recording config object\\. S3 recording config objects are used to provide parameters for S3 recording during downlink contacts\\. \n*Required*: No \n*Type*: [S3RecordingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-s3recordingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TrackingConfig": "Provides information for a tracking config object\\. Tracking config objects are used to provide parameters about how to track the satellite through the sky during a contact\\. \n*Required*: No \n*Type*: [TrackingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-trackingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UplinkEchoConfig": "Provides information for an uplink echo config object\\. Uplink echo config objects are used to provide parameters for uplink echo during uplink contacts\\. \n*Required*: No \n*Type*: [UplinkEchoConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-uplinkechoconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GroundStation::Config DataflowEndpointConfig": { + "DataflowEndpointName": "The name of the dataflow endpoint to use during contacts\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataflowEndpointRegion": "The region of the dataflow endpoint to use during contacts\\. When omitted, Ground Station will use the region of the contact\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GroundStation::Config DecodeConfig": { + "UnvalidatedJSON": "The decoding settings are in JSON format and define a set of steps to perform to decode the data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GroundStation::Config DemodulationConfig": { + "UnvalidatedJSON": "The demodulation settings are in JSON format and define parameters for demodulation, for example which modulation scheme \\(e\\.g\\. PSK, QPSK, etc\\.\\) and matched filter to use\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GroundStation::Config Eirp": { + "Units": "The units of the EIRP\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of the EIRP\\. Valid values are between 20\\.0 to 50\\.0 dBW\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GroundStation::Config Frequency": { + "Units": "The units of the frequency\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of the frequency\\. Valid values are between 2200 to 2300 MHz and 7750 to 8400 MHz for downlink and 2025 to 2120 MHz for uplink\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GroundStation::Config FrequencyBandwidth": { + "Units": "The units of the bandwidth\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of the bandwidth\\. AWS Ground Station currently has the following bandwidth limitations: \n+ For `AntennaDownlinkDemodDecodeconfig`, valid values are between 125 kHz to 650 MHz\\.\n+ For `AntennaDownlinkconfig`, valid values are between 10 kHz to 54 MHz\\.\n+ For `AntennaUplinkConfig`, valid values are between 10 kHz to 54 MHz\\.\n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GroundStation::Config S3RecordingConfig": { + "BucketArn": "S3 Bucket where the data is written\\. The name of the S3 Bucket provided must begin with `aws-groundstation`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "The prefix of the S3 data object\\. If you choose to use any optional keys for substitution, these values will be replaced with the corresponding information from your contact details\\. For example, a prefix of `{satellite_id}/{year}/{month}/{day}/` will replaced with `fake_satellite_id/2021/01/10/` \n*Optional keys for substitution*: `{satellite_id}` \\| `{config-name}` \\| `{config-id}` \\| `{year}` \\| `{month}` \\| `{day}` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "Defines the ARN of the role assumed for putting archives to S3\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GroundStation::Config SpectrumConfig": { + "Bandwidth": "The bandwidth of the spectrum\\. AWS Ground Station currently has the following bandwidth limitations: \n+ For `AntennaDownlinkDemodDecodeconfig`, valid values are between 125 kHz to 650 MHz\\.\n+ For `AntennaDownlinkconfig`, valid values are between 10 kHz to 54 MHz\\.\n+ For `AntennaUplinkConfig`, valid values are between 10 kHz to 54 MHz\\.\n*Required*: No \n*Type*: [FrequencyBandwidth](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-frequencybandwidth.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CenterFrequency": "The center frequency of the spectrum\\. Valid values are between 2200 to 2300 MHz and 7750 to 8400 MHz for downlink and 2025 to 2120 MHz for uplink\\. \n*Required*: No \n*Type*: [Frequency](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-frequency.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Polarization": "The polarization of the spectrum\\. Valid values are `\"RIGHT_HAND\"` and `\"LEFT_HAND\"`\\. Capturing both `\"RIGHT_HAND\"` and `\"LEFT_HAND\"` polarization requires two separate configs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GroundStation::Config TrackingConfig": { + "Autotrack": "Specifies whether or not to use autotrack\\. `REMOVED` specifies that program track should only be used during the contact\\. `PREFERRED` specifies that autotracking is preferred during the contact but fallback to program track if the signal is lost\\. `REQUIRED` specifies that autotracking is required during the contact and not to use program track if the signal is lost\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GroundStation::Config UplinkEchoConfig": { + "AntennaUplinkConfigArn": "Defines the ARN of the uplink config to echo back to a dataflow endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Whether or not uplink echo is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GroundStation::Config UplinkSpectrumConfig": { + "CenterFrequency": "The center frequency of the spectrum\\. Valid values are between 2200 to 2300 MHz and 7750 to 8400 MHz for downlink and 2025 to 2120 MHz for uplink\\. \n*Required*: No \n*Type*: [Frequency](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-frequency.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Polarization": "The polarization of the spectrum\\. Valid values are `\"RIGHT_HAND\"` and `\"LEFT_HAND\"`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GroundStation::DataflowEndpointGroup": { + "EndpointDetails": "List of Endpoint Details, containing address and port for each endpoint\\. \n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-endpointdetails.html) of [EndpointDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-endpointdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Tags assigned to a resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GroundStation::DataflowEndpointGroup DataflowEndpoint": { + "Address": "The address and port of an endpoint\\. \n*Required*: No \n*Type*: [SocketAddress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-socketaddress.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Mtu": "Maximum transmission unit \\(MTU\\) size in bytes of a dataflow endpoint\\. Valid values are between 1400 and 1500\\. A default value of 1500 is used if not set\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The endpoint name\\. \n When listing available contacts for a satellite, Ground Station searches for a dataflow endpoint whose name matches the value specified by the dataflow endpoint config of the selected mission profile\\. If no matching dataflow endpoints are found then Ground Station will not display any available contacts for the satellite\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GroundStation::DataflowEndpointGroup EndpointDetails": { + "Endpoint": "Information about the endpoint such as name and the endpoint address\\. \n*Required*: No \n*Type*: [DataflowEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-dataflowendpoint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityDetails": "The role ARN, and IDs for security groups and subnets\\. \n*Required*: No \n*Type*: [SecurityDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-securitydetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GroundStation::DataflowEndpointGroup SecurityDetails": { + "RoleArn": "The ARN of a role which Ground Station has permission to assume, such as `arn:aws:iam::1234567890:role/DataDeliveryServiceRole`\\. \n Ground Station will assume this role and create an ENI in your VPC on the specified subnet upon creation of a dataflow endpoint group\\. This ENI is used as the ingress/egress point for data streamed during a satellite contact\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroupIds": "The security group Ids of the security role, such as `sg-1234567890abcdef0`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetIds": "The subnet Ids of the security details, such as `subnet-12345678`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GroundStation::DataflowEndpointGroup SocketAddress": { + "Name": "The name of the endpoint, such as `Endpoint 1`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "The port of the endpoint, such as `55888`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GroundStation::MissionProfile": { + "ContactPostPassDurationSeconds": "Amount of time in seconds after a contact ends that you\u2019d like to receive a CloudWatch Event indicating the pass has finished\\. For more information on CloudWatch Events, see the [What Is CloudWatch Events?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContactPrePassDurationSeconds": "Amount of time in seconds prior to contact start that you'd like to receive a CloudWatch Event indicating an upcoming pass\\. For more information on CloudWatch Events, see the [What Is CloudWatch Events?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataflowEdges": "A list containing lists of config ARNs\\. Each list of config ARNs is an edge, with a \"from\" config and a \"to\" config\\. \n*Required*: Yes \n*Type*: List of [DataflowEdge](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-missionprofile-dataflowedge.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinimumViableContactDurationSeconds": "Minimum length of a contact in seconds that Ground Station will return when listing contacts\\. Ground Station will not return contacts shorter than this duration\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the mission profile\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Tags assigned to the mission profile\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TrackingConfigArn": "The ARN of a tracking config objects that defines how to track the satellite through the sky during a contact\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GroundStation::MissionProfile DataflowEdge": { + "Destination": "The ARN of the destination for this dataflow edge\\. For example, specify the ARN of a dataflow endpoint config for a downlink edge or an antenna uplink config for an uplink edge\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Source": "The ARN of the source for this dataflow edge\\. For example, specify the ARN of an antenna downlink config for a downlink edge or a dataflow endpoint config for an uplink edge\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GuardDuty::Detector": { + "DataSources": "Describes which data sources will be enabled for the detector\\. \n*Required*: No \n*Type*: [CFNDataSourceConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-detector-cfndatasourceconfigurations.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enable": "Specifies whether the detector is to be enabled on creation\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FindingPublishingFrequency": "Specifies how frequently updated findings are exported\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `FIFTEEN_MINUTES | ONE_HOUR | SIX_HOURS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GuardDuty::Detector CFNDataSourceConfigurations": { + "Kubernetes": "Describes which Kuberentes data sources are enabled for a detector\\. \n*Required*: No \n*Type*: [CFNKubernetesConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-detector-cfnkubernetesconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Logs": "Describes whether S3 data event logs are enabled as a data source\\. \n*Required*: No \n*Type*: [CFNS3LogsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-detector-cfns3logsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GuardDuty::Detector CFNKubernetesAuditLogsConfiguration": { + "Enable": "Describes whether Kubernetes audit logs are enabled as a data source for the detector\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GuardDuty::Detector CFNKubernetesConfiguration": { + "AuditLogs": "Describes whether Kubernetes audit logs are enabled as a data source for the detector\\. \n*Required*: No \n*Type*: [CFNKubernetesAuditLogsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-detector-cfnkubernetesauditlogsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GuardDuty::Detector CFNS3LogsConfiguration": { + "Enable": "The status of S3 data event logs as a data source\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GuardDuty::Filter": { + "Action": "Specifies the action that is to be applied to the findings that match the filter\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ARCHIVE | NOOP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the filter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DetectorId": "The ID of the detector belonging to the GuardDuty account that you want to create a filter for\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FindingCriteria": "Represents the criteria to be used in the filter for querying findings\\. \n*Required*: Yes \n*Type*: [FindingCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-findingcriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the filter\\. Minimum length of 3\\. Maximum length of 64\\. Valid characters include alphanumeric characters, dot \\(\\.\\), underscore \\(\\_\\), and dash \\(\\-\\)\\. Spaces are not allowed\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Rank": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GuardDuty::Filter Condition": { + "Eq": "Represents the equal condition to apply to a single field when querying for findings\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Gte": "Represents the greater than or equal condition to apply to a single field when querying for findings\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Lt": "Represents the less than condition to apply to a single field when querying for findings\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Lte": "Represents the less than or equal condition to apply to a single field when querying for findings\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Neq": "Represents the not equal condition to apply to a single field when querying for findings\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GuardDuty::Filter FindingCriteria": { + "Criterion": "Represents a map of finding properties that match specified conditions and values when querying findings\\. \nFor a mapping of JSON criterion to their console equivalent see [Finding criteria](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_filter-findings.html#filter_criteria)\\. The following are the available criterion: \n+ accountId\n+ region\n+ confidence\n+ id\n+ resource\\.accessKeyDetails\\.accessKeyId\n+ resource\\.accessKeyDetails\\.principalId\n+ resource\\.accessKeyDetails\\.userName\n+ resource\\.accessKeyDetails\\.userType\n+ resource\\.instanceDetails\\.iamInstanceProfile\\.id\n+ resource\\.instanceDetails\\.imageId\n+ resource\\.instanceDetails\\.instanceId\n+ resource\\.instanceDetails\\.outpostArn\n+ resource\\.instanceDetails\\.networkInterfaces\\.ipv6Addresses\n+ resource\\.instanceDetails\\.networkInterfaces\\.privateIpAddresses\\.privateIpAddress\n+ resource\\.instanceDetails\\.networkInterfaces\\.publicDnsName\n+ resource\\.instanceDetails\\.networkInterfaces\\.publicIp\n+ resource\\.instanceDetails\\.networkInterfaces\\.securityGroups\\.groupId\n+ resource\\.instanceDetails\\.networkInterfaces\\.securityGroups\\.groupName\n+ resource\\.instanceDetails\\.networkInterfaces\\.subnetId\n+ resource\\.instanceDetails\\.networkInterfaces\\.vpcId\n+ resource\\.instanceDetails\\.tags\\.key\n+ resource\\.instanceDetails\\.tags\\.value\n+ resource\\.resourceType\n+ service\\.action\\.actionType\n+ service\\.action\\.awsApiCallAction\\.api\n+ service\\.action\\.awsApiCallAction\\.callerType\n+ service\\.action\\.awsApiCallAction\\.errorCode\n+ service\\.action\\.awsApiCallAction\\.remoteIpDetails\\.city\\.cityName\n+ service\\.action\\.awsApiCallAction\\.remoteIpDetails\\.country\\.countryName\n+ service\\.action\\.awsApiCallAction\\.remoteIpDetails\\.ipAddressV4\n+ service\\.action\\.awsApiCallAction\\.remoteIpDetails\\.organization\\.asn\n+ service\\.action\\.awsApiCallAction\\.remoteIpDetails\\.organization\\.asnOrg\n+ service\\.action\\.awsApiCallAction\\.serviceName\n+ service\\.action\\.dnsRequestAction\\.domain\n+ service\\.action\\.networkConnectionAction\\.blocked\n+ service\\.action\\.networkConnectionAction\\.connectionDirection\n+ service\\.action\\.networkConnectionAction\\.localPortDetails\\.port\n+ service\\.action\\.networkConnectionAction\\.protocol\n+ service\\.action\\.networkConnectionAction\\.localIpDetails\\.ipAddressV4\n+ service\\.action\\.networkConnectionAction\\.remoteIpDetails\\.city\\.cityName\n+ service\\.action\\.networkConnectionAction\\.remoteIpDetails\\.country\\.countryName\n+ service\\.action\\.networkConnectionAction\\.remoteIpDetails\\.ipAddressV4\n+ service\\.action\\.networkConnectionAction\\.remoteIpDetails\\.organization\\.asn\n+ service\\.action\\.networkConnectionAction\\.remoteIpDetails\\.organization\\.asnOrg\n+ service\\.action\\.networkConnectionAction\\.remotePortDetails\\.port\n+ service\\.additionalInfo\\.threatListName\n+ service\\.archived", + "ItemType": "Specifies the condition to be applied to a single field when filtering through findings\\. \n*Required*: No \n*Type*: [Condition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-condition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GuardDuty::IPSet": { + "Activate": "Indicates whether or not GuardDuty uses the `IPSet`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DetectorId": "The unique ID of the detector of the GuardDuty account that you want to create an IPSet for\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Format": "The format of the file that contains the IPSet\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALIEN_VAULT | FIRE_EYE | OTX_CSV | PROOF_POINT | STIX | TXT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Location": "The URI of the file that contains the IPSet\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The user\\-friendly name to identify the IPSet\\. \n Allowed characters are alphanumerics, spaces, hyphens \\(\\-\\), and underscores \\(\\_\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GuardDuty::Master": { + "DetectorId": "The unique ID of the detector of the GuardDuty member account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InvitationId": "The ID of the invitation that is sent to the account designated as a member account\\. You can find the invitation ID by using the ListInvitation action of the GuardDuty API\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MasterId": "The AWS account ID of the account designated as the GuardDuty administrator account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::GuardDuty::Member": { + "DetectorId": "The ID of the detector associated with the GuardDuty service to add the member to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DisableEmailNotification": "Specifies whether or not to disable email notification for the member account that you invite\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Email": "The email address associated with the member account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MemberId": "The AWS account ID of the account to designate as a member\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Message": "The invitation message that you want to send to the accounts that you're inviting to GuardDuty as members\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Status": "You can use the `Status` property to update the status of the relationship between the member account and its administrator account\\. Valid values are `Created` and `Invited` when using an `AWS::GuardDuty::Member` resource\\. If the value for this property is not provided or set to `Created`, a member account is created but not invited\\. If the value of this property is set to `Invited`, a member account is created and invited\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::GuardDuty::ThreatIntelSet": { + "Activate": "A Boolean value that indicates whether GuardDuty is to start using the uploaded ThreatIntelSet\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DetectorId": "The unique ID of the detector of the GuardDuty account that you want to create a threatIntelSet for\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Format": "The format of the file that contains the ThreatIntelSet\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALIEN_VAULT | FIRE_EYE | OTX_CSV | PROOF_POINT | STIX | TXT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Location": "The URI of the file that contains the ThreatIntelSet\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A user\\-friendly ThreatIntelSet name displayed in all findings that are generated by activity that involves IP addresses included in this ThreatIntelSet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::HealthLake::FHIRDatastore": { + "DatastoreName": "The user generated name for the Data Store\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-%@]*)$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DatastoreTypeVersion": "The FHIR version of the Data Store\\. The only supported version is R4\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `R4` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PreloadDataConfig": "The preloaded data configuration for the Data Store\\. Only data preloaded from Synthea is supported\\. \n*Required*: No \n*Type*: [PreloadDataConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-preloaddataconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SseConfiguration": "The server\\-side encryption key configuration for a customer provided encryption key specified for creating a Data Store\\. \n*Required*: No \n*Type*: [SseConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-sseconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::HealthLake::FHIRDatastore KmsEncryptionConfig": { + "CmkType": "The type of customer\\-managed\\-key\\(CMK\\) used for encryption\\. The two types of supported CMKs are customer owned CMKs and Amazon owned CMKs\\. For more information on CMK types, see [KmsEncryptionConfig](https://docs.aws.amazon.com/healthlake/latest/APIReference/API_KmsEncryptionConfig.html#HealthLake-Type-KmsEncryptionConfig-CmkType)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KmsKeyId": "The KMS encryption key id/alias used to encrypt the Data Store contents at rest\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `400` \n*Pattern*: `(arn:aws((https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/-us-gov.html)|(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/-iso.html)|(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/-iso.html-b)|(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/-cn.html))?:kms:)?([a-z]{2}-[a-z]+(-[a-z]+)?-\\d:)?(\\d{12}:)?(((key/)?[a-zA-Z0-9-_]+)|(alias/[a-zA-Z0-9:/_-]+))` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::HealthLake::FHIRDatastore PreloadDataConfig": { + "PreloadDataType": "The type of preloaded data\\. Only Synthea preloaded data is supported\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SYNTHEA` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::HealthLake::FHIRDatastore SseConfiguration": { + "KmsEncryptionConfig": "The server\\-side encryption key configuration for a customer provided encryption key \\(CMK\\)\\. \n*Required*: Yes \n*Type*: [KmsEncryptionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-kmsencryptionconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IAM::AccessKey": { + "Serial": "This value is specific to CloudFormation and can only be *incremented*\\. Incrementing this value notifies CloudFormation that you want to rotate your access key\\. When you update your stack, CloudFormation will replace the existing access key with a new key\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Status": "The status of the access key\\. `Active` means that the key is valid for API calls, while `Inactive` means it is not\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Active | Inactive` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserName": "The name of the IAM user that the new key will belong to\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IAM::Group": { + "GroupName": "The name of the group to create\\. Do not include the path in this value\\. \nThe group name must be unique within the account\\. Group names are not distinguished by case\\. For example, you cannot create groups named both \"ADMINS\" and \"admins\"\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the group name\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\nIf you specify a name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge your template's capabilities\\. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities)\\. \nNaming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions\\. To prevent this, we recommend using `Fn::Join` and `AWS::Region` to create a Region\\-specific name, as in the following example: `{\"Fn::Join\": [\"\", [{\"Ref\": \"AWS::Region\"}, {\"Ref\": \"MyResourceName\"}]]}`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ManagedPolicyArns": "The Amazon Resource Name \\(ARN\\) of the IAM policy you want to attach\\. \nFor more information about ARNs, see [Amazon Resource Names \\(ARNs\\)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the * AWS General Reference*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Path": "The path to the group\\. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*\\. \nThis parameter is optional\\. If it is not included, it defaults to a slash \\(/\\)\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of either a forward slash \\(/\\) by itself or a string that must begin and end with forward slashes\\. In addition, it can contain any ASCII character from the \\! \\(`\\u0021`\\) through the DEL character \\(`\\u007F`\\), including most punctuation characters, digits, and upper and lowercased letters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `(\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Policies": "Adds or updates an inline policy document that is embedded in the specified IAM group\\. To view AWS::IAM::Group snippets, see [Declaring an IAM Group Resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-iam-group)\\. \nThe name of each inline policy for a role, user, or group must be unique\\. If you don't choose unique names, updates to the IAM identity will fail\\. \nFor information about limits on the number of inline policies that you can embed in a group, see [Limitations on IAM Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: List of [Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy-2.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IAM::Group Policy": { + "PolicyDocument": "The policy document\\. \n*Required*: Yes \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `131072` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PolicyName": "The friendly name \\(not ARN\\) identifying the policy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IAM::InstanceProfile": { + "InstanceProfileName": "The name of the instance profile to create\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Path": "The path to the instance profile\\. For more information about paths, see [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*\\. \nThis parameter is optional\\. If it is not included, it defaults to a slash \\(/\\)\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of either a forward slash \\(/\\) by itself or a string that must begin and end with forward slashes\\. In addition, it can contain any ASCII character from the \\! \\(`\\u0021`\\) through the DEL character \\(`\\u007F`\\), including most punctuation characters, digits, and upper and lowercased letters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `(\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Roles": "The name of the role to associate with the instance profile\\. Only one role can be assigned to an EC2 instance at a time, and all applications on the instance share the same role and permissions\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IAM::ManagedPolicy": { + "Description": "A friendly description of the policy\\. \nTypically used to store information about the permissions defined in the policy\\. For example, \"Grants access to production DynamoDB tables\\.\" \nThe policy description is immutable\\. After a value is assigned, it cannot be changed\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Groups": "The name \\(friendly name, not ARN\\) of the group to attach the policy to\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: No \n*Type*: List of String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ManagedPolicyName": "The friendly name of the policy\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\nIf you specify a name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge your template's capabilities\\. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities)\\. \nNaming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions\\. To prevent this, we recommend using `Fn::Join` and `AWS::Region` to create a Region\\-specific name, as in the following example: `{\"Fn::Join\": [\"\", [{\"Ref\": \"AWS::Region\"}, {\"Ref\": \"MyResourceName\"}]]}`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Path": "The path for the policy\\. \nFor more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*\\. \nThis parameter is optional\\. If it is not included, it defaults to a slash \\(/\\)\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of either a forward slash \\(/\\) by itself or a string that must begin and end with forward slashes\\. In addition, it can contain any ASCII character from the \\! \\(`\\u0021`\\) through the DEL character \\(`\\u007F`\\), including most punctuation characters, digits, and upper and lowercased letters\\. \nYou cannot use an asterisk \\(\\*\\) in the path name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `((/[A-Za-z0-9\\.,\\+@=_-]+)*)/` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PolicyDocument": "The JSON policy document that you want to use as the content for the new policy\\. \nYou must provide policies in JSON format in IAM\\. However, for AWS CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format\\. AWS CloudFormation always converts a YAML policy to JSON format before submitting it to IAM\\. \nThe maximum length of the policy document that you can pass in this operation, including whitespace, is listed below\\. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and AWS STS character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length)\\. \nTo learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*\\. \nThe [regex pattern](http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: \n+ Any printable ASCII character ranging from the space character \\(`\\u0020`\\) through the end of the ASCII character range\n+ The printable characters in the Basic Latin and Latin\\-1 Supplement character set \\(through `\\u00FF`\\)\n+ The special characters tab \\(`\\u0009`\\), line feed \\(`\\u000A`\\), and carriage return \\(`\\u000D`\\)\n*Required*: Yes \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `131072` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Roles": "The name \\(friendly name, not ARN\\) of the role to attach the policy to\\. \nThis parameter allows \\(per its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \nIf an external policy \\(such as `AWS::IAM::Policy` or `AWS::IAM::ManagedPolicy`\\) has a `Ref` to a role and if a resource \\(such as `AWS::ECS::Service`\\) also has a `Ref` to the same role, add a `DependsOn` attribute to the resource to make the resource depend on the external policy\\. This dependency ensures that the role's policy is available throughout the resource's lifecycle\\. For example, when you delete a stack with an `AWS::ECS::Service` resource, the `DependsOn` attribute ensures that AWS CloudFormation deletes the `AWS::ECS::Service` resource before deleting its role's policy\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Users": "The name \\(friendly name, not ARN\\) of the IAM user to attach the policy to\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: No \n*Type*: List of String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IAM::OIDCProvider": { + "ClientIdList": "A list of client IDs \\(also known as audiences\\) that are associated with the specified IAM OIDC provider resource object\\. For more information, see [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A list of tags that are attached to the specified IAM OIDC provider\\. The returned list of tags is sorted by tag key\\. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThumbprintList": "A list of certificate thumbprints that are associated with the specified IAM OIDC provider resource object\\. For more information, see [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html)\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Url": "The URL that the IAM OIDC provider resource object is associated with\\. For more information, see [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IAM::Policy": { + "Groups": "The name of the group to associate the policy with\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\-\\. \n*Required*: No \n*Type*: List of String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PolicyDocument": "The policy document\\. \nYou must provide policies in JSON format in IAM\\. However, for AWS CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format\\. AWS CloudFormation always converts a YAML policy to JSON format before submitting it to IAM\\. \nThe [regex pattern](http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: \n+ Any printable ASCII character ranging from the space character \\(`\\u0020`\\) through the end of the ASCII character range\n+ The printable characters in the Basic Latin and Latin\\-1 Supplement character set \\(through `\\u00FF`\\)\n+ The special characters tab \\(`\\u0009`\\), line feed \\(`\\u000A`\\), and carriage return \\(`\\u000D`\\)\n*Required*: Yes \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `131072` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PolicyName": "The name of the policy document\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Roles": "The name of the role to associate the policy with\\. \nThis parameter allows \\(per its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \nIf an external policy \\(such as `AWS::IAM::Policy` or `AWS::IAM::ManagedPolicy`\\) has a `Ref` to a role and if a resource \\(such as `AWS::ECS::Service`\\) also has a `Ref` to the same role, add a `DependsOn` attribute to the resource to make the resource depend on the external policy\\. This dependency ensures that the role's policy is available throughout the resource's lifecycle\\. For example, when you delete a stack with an `AWS::ECS::Service` resource, the `DependsOn` attribute ensures that AWS CloudFormation deletes the `AWS::ECS::Service` resource before deleting its role's policy\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Users": "The name of the user to associate the policy with\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: No \n*Type*: List of String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IAM::Role": { + "AssumeRolePolicyDocument": "The trust policy that is associated with this role\\. Trust policies define which entities can assume the role\\. You can associate only one trust policy with a role\\. For an example of a policy that can be used to assume a role, see [Template Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#aws-resource-iam-role--examples)\\. For more information about the elements that you can use in an IAM policy, see [IAM Policy Elements Reference](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) in the *IAM User Guide*\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the role that you provide\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Pattern*: `[\\p{L}\\p{M}\\p{Z}\\p{S}\\p{N}\\p{P}]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ManagedPolicyArns": "A list of Amazon Resource Names \\(ARNs\\) of the IAM managed policies that you want to attach to the role\\. \nFor more information about ARNs, see [Amazon Resource Names \\(ARNs\\) and AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *AWS General Reference*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxSessionDuration": "The maximum session duration \\(in seconds\\) that you want to set for the specified role\\. If you do not specify a value for this setting, the default maximum of one hour is applied\\. This setting can have a value from 1 hour to 12 hours\\. \nAnyone who assumes the role from the or API can use the `DurationSeconds` API parameter or the `duration-seconds` CLI parameter to request a longer session\\. The `MaxSessionDuration` setting determines the maximum duration that can be requested using the `DurationSeconds` parameter\\. If users don't specify a value for the `DurationSeconds` parameter, their security credentials are valid for one hour by default\\. This applies when you use the `AssumeRole*` API operations or the `assume-role*` CLI operations but does not apply when you use those operations to create a console URL\\. For more information, see [Using IAM roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `3600` \n*Maximum*: `43200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Path": "The path to the role\\. For more information about paths, see [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*\\. \nThis parameter is optional\\. If it is not included, it defaults to a slash \\(/\\)\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of either a forward slash \\(/\\) by itself or a string that must begin and end with forward slashes\\. In addition, it can contain any ASCII character from the \\! \\(`\\u0021`\\) through the DEL character \\(`\\u007F`\\), including most punctuation characters, digits, and upper and lowercased letters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `(\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PermissionsBoundary": "The ARN of the policy used to set the permissions boundary for the role\\. \nFor more information about permissions boundaries, see [Permissions boundaries for IAM identities ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Policies": "Adds or updates an inline policy document that is embedded in the specified IAM role\\. \nWhen you embed an inline policy in a role, the inline policy is used as part of the role's access \\(permissions\\) policy\\. The role's trust policy is created at the same time as the role\\. You can update a role's trust policy later\\. For more information about IAM roles, go to [Using Roles to Delegate Permissions and Federate Identities](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html)\\. \nA role can also have an attached managed policy\\. For information about policies, see [Managed Policies and Inline Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*\\. \nFor information about limits on the number of inline policies that you can embed with a role, see [Limitations on IAM Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *IAM User Guide*\\. \nIf an external policy \\(such as `AWS::IAM::Policy` or `AWS::IAM::ManagedPolicy`\\) has a `Ref` to a role and if a resource \\(such as `AWS::ECS::Service`\\) also has a `Ref` to the same role, add a `DependsOn` attribute to the resource to make the resource depend on the external policy\\. This dependency ensures that the role's policy is available throughout the resource's lifecycle\\. For example, when you delete a stack with an `AWS::ECS::Service` resource, the `DependsOn` attribute ensures that AWS CloudFormation deletes the `AWS::ECS::Service` resource before deleting its role's policy\\.\n*Required*: No \n*Type*: List of [Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleName": "A name for the IAM role, up to 64 characters in length\\. For valid values, see the `RoleName` parameter for the [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html) action in the *IAM User Guide*\\. \nThis parameter allows \\(per its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\-\\. The role name must be unique within the account\\. Role names are not distinguished by case\\. For example, you cannot create roles named both \"Role1\" and \"role1\"\\. \nIf you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the role name\\. \nIf you specify a name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge your template's capabilities\\. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities)\\. \nNaming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions\\. To prevent this, we recommend using `Fn::Join` and `AWS::Region` to create a Region\\-specific name, as in the following example: `{\"Fn::Join\": [\"\", [{\"Ref\": \"AWS::Region\"}, {\"Ref\": \"MyResourceName\"}]]}`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A list of tags that are attached to the role\\. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IAM::Role Policy": { + "PolicyDocument": "The policy document\\. \n*Required*: Yes \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `131072` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PolicyName": "The friendly name \\(not ARN\\) identifying the policy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IAM::SAMLProvider": { + "Name": "The name of the provider to create\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w._-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SamlMetadataDocument": "An XML document generated by an identity provider \\(IdP\\) that supports SAML 2\\.0\\. The document includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response \\(assertions\\) that are received from the IdP\\. You must generate the metadata document using the identity management software that is used as your organization's IdP\\. \nFor more information, see [About SAML 2\\.0\\-based federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html) in the *IAM User Guide* \n*Required*: Yes \n*Type*: String \n*Minimum*: `1000` \n*Maximum*: `10000000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A list of tags that you want to attach to the new IAM SAML provider\\. Each tag consists of a key name and an associated value\\. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide*\\. \nIf any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IAM::ServerCertificate": { + "CertificateBody": "The contents of the public key certificate\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `16384` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CertificateChain": "The contents of the public key certificate chain\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2097152` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Path": "The path for the server certificate\\. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*\\. \nThis parameter is optional\\. If it is not included, it defaults to a slash \\(/\\)\\. This parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of either a forward slash \\(/\\) by itself or a string that must begin and end with forward slashes\\. In addition, it can contain any ASCII character from the \\! \\(`\\u0021`\\) through the DEL character \\(`\\u007F`\\), including most punctuation characters, digits, and upper and lowercased letters\\. \n If you are uploading a server certificate specifically for use with Amazon CloudFront distributions, you must specify a path using the `path` parameter\\. The path must begin with `/cloudfront` and must include a trailing slash \\(for example, `/cloudfront/test/`\\)\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `(\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrivateKey": "The contents of the private key in PEM\\-encoded format\\. \nThe [regex pattern](http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: \n+ Any printable ASCII character ranging from the space character \\(`\\u0020`\\) through the end of the ASCII character range\n+ The printable characters in the Basic Latin and Latin\\-1 Supplement character set \\(through `\\u00FF`\\)\n+ The special characters tab \\(`\\u0009`\\), line feed \\(`\\u000A`\\), and carriage return \\(`\\u000D`\\)\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `16384` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ServerCertificateName": "The name for the server certificate\\. Do not include the path in this value\\. The name of the certificate cannot contain any spaces\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A list of tags that are attached to the server certificate\\. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IAM::ServiceLinkedRole": { + "AWSServiceName": "The service principal for the AWS service to which this role is attached\\. You use a string similar to a URL but without the http:// in front\\. For example: `elasticbeanstalk.amazonaws.com`\\. \nService principals are unique and case\\-sensitive\\. To find the exact service principal for your service\\-linked role, see [AWS services that work with IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) in the *IAM User Guide*\\. Look for the services that have **Yes **in the **Service\\-Linked Role** column\\. Choose the **Yes** link to view the service\\-linked role documentation for that service\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CustomSuffix": "A string that you provide, which is combined with the service\\-provided prefix to form the complete role name\\. If you make multiple requests for the same service, then you must supply a different `CustomSuffix` for each request\\. Otherwise the request fails with a duplicate role name error\\. For example, you could add `-1` or `-debug` to the suffix\\. \nSome services do not support the `CustomSuffix` parameter\\. If you provide an optional suffix and the operation fails, try the operation again without the suffix\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "The description of the role\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Pattern*: `[\\p{L}\\p{M}\\p{Z}\\p{S}\\p{N}\\p{P}]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IAM::User": { + "Groups": "A list of group names to which you want to add the user\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoginProfile": "Creates a password for the specified IAM user\\. A password allows an IAM user to access AWS services through the AWS Management Console\\. \nYou can use the AWS CLI, the AWS API, or the **Users** page in the IAM console to create a password for any IAM user\\. Use [ChangePassword](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html) to update your own existing password in the **My Security Credentials** page in the AWS Management Console\\. \nFor more information about managing passwords, see [Managing passwords](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: [LoginProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user-loginprofile.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ManagedPolicyArns": "A list of Amazon Resource Names \\(ARNs\\) of the IAM managed policies that you want to attach to the user\\. \nFor more information about ARNs, see [Amazon Resource Names \\(ARNs\\) and AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *AWS General Reference*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Path": "The path for the user name\\. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*\\. \nThis parameter is optional\\. If it is not included, it defaults to a slash \\(/\\)\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of either a forward slash \\(/\\) by itself or a string that must begin and end with forward slashes\\. In addition, it can contain any ASCII character from the \\! \\(`\\u0021`\\) through the DEL character \\(`\\u007F`\\), including most punctuation characters, digits, and upper and lowercased letters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `(\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PermissionsBoundary": "The ARN of the policy that is used to set the permissions boundary for the user\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Policies": "Adds or updates an inline policy document that is embedded in the specified IAM user\\. To view AWS::IAM::User snippets, see [Declaring an IAM User Resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-iam-user)\\. \nThe name of each policy for a role, user, or group must be unique\\. If you don't choose unique names, updates to the IAM identity will fail\\. \nFor information about limits on the number of inline policies that you can embed in a user, see [Limitations on IAM Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: List of [Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy-1.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A list of tags that you want to attach to the new user\\. Each tag consists of a key name and an associated value\\. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide*\\. \nIf any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserName": "The name of the user to create\\. Do not include the path in this value\\. \nThis parameter allows \\(per its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\-\\. The user name must be unique within the account\\. User names are not distinguished by case\\. For example, you cannot create users named both \"John\" and \"john\"\\. \nIf you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the user name\\. \nIf you specify a name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge your template's capabilities\\. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities)\\. \nNaming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions\\. To prevent this, we recommend using `Fn::Join` and `AWS::Region` to create a Region\\-specific name, as in the following example: `{\"Fn::Join\": [\"\", [{\"Ref\": \"AWS::Region\"}, {\"Ref\": \"MyResourceName\"}]]}`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IAM::User LoginProfile": { + "Password": "The user's password\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PasswordResetRequired": "Specifies whether the user is required to set a new password on next sign\\-in\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IAM::User Policy": { + "PolicyDocument": "The policy document\\. \n*Required*: Yes \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `131072` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PolicyName": "The friendly name \\(not ARN\\) identifying the policy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IAM::UserToGroupAddition": { + "GroupName": "The name of the group to update\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Users": "A list of the names of the users that you want to add to the group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IAM::VirtualMFADevice": { + "Path": "The path for the virtual MFA device\\. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*\\. \nThis parameter is optional\\. If it is not included, it defaults to a slash \\(/\\)\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of either a forward slash \\(/\\) by itself or a string that must begin and end with forward slashes\\. In addition, it can contain any ASCII character from the \\! \\(`\\u0021`\\) through the DEL character \\(`\\u007F`\\), including most punctuation characters, digits, and upper and lowercased letters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `(\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A list of tags that you want to attach to the new IAM virtual MFA device\\. Each tag consists of a key name and an associated value\\. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide*\\. \nIf any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Users": "The IAM user associated with this virtual MFA device\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VirtualMfaDeviceName": "The name of the virtual MFA device\\. Use with path to uniquely identify a virtual MFA device\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IVS::Channel": { + "Authorized": "Whether the channel is authorized\\. \n*Default*: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LatencyMode": "Channel latency mode\\. Valid values: \n+ `NORMAL`: Use NORMAL to broadcast and deliver live video up to Full HD\\.\n+ `LOW`: Use LOW for near real\\-time interactions with viewers\\.\nIn the Amazon IVS console, `LOW` and `NORMAL` correspond to `Ultra-low` and `Standard`, respectively\\.\n*Default*: `LOW` \n*Required*: No \n*Type*: String \n*Allowed values*: `LOW | NORMAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "Channel name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RecordingConfigurationArn": "The ARN of a RecordingConfiguration resource\\. An empty string indicates that recording is disabled for the channel\\. A RecordingConfiguration ARN indicates that recording is enabled using the specified recording configuration\\. See the [ RecordingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-recordingconfiguration.html) resource for more information and an example\\. \n*Default*: \"\" \\(empty string, recording is disabled\\) \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^$|^arn:aws:ivs:[a-z0-9-]+:[0-9]+:recording-configuration/[a-zA-Z0-9-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The channel type, which determines the allowable resolution and bitrate\\. *If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately\\.* Valid values: \n+ `STANDARD`: Multiple qualities are generated from the original input, to automatically give viewers the best experience for their devices and network conditions\\. Resolution can be up to 1080p and bitrate can be up to 8\\.5 Mbps\\. Audio is transcoded only for renditions 360p and below; above that, audio is passed through\\.\n+ `BASIC`: delivers the original input to viewers\\. The viewer\u2019s video\\-quality choice is limited to the original input\\. Resolution can be up to 480p and bitrate can be up to 1\\.5 Mbps\\.\n*Default*: `STANDARD` \n*Required*: No \n*Type*: String \n*Allowed values*: `BASIC | STANDARD` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IVS::PlaybackKeyPair": { + "Name": "Playback\\-key\\-pair name\\. The value does not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-_]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PublicKeyMaterial": "The public portion of a customer\\-generated key pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IVS::RecordingConfiguration": { + "DestinationConfiguration": "A destination configuration contains information about where recorded video will be stored\\. See the [ DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-destinationconfiguration.html) property type for more information\\. \n*Required*: Yes \n*Type*: [DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-destinationconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "Recording\\-configuration name\\. The value does not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-_]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThumbnailConfiguration": "A thumbnail configuration enables/disables the recording of thumbnails for a live session and controls the interval at which thumbnails are generated for the live session\\. See the [ThumbnailConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-thunbnailconfiguration.html) property type for more information\\. \n*Required*: No \n*Type*: [ThumbnailConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-thumbnailconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IVS::RecordingConfiguration DestinationConfiguration": { + "S3": "An S3 destination configuration where recorded videos will be stored\\. See the [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-s3destinationconfiguration.html) property type for more information\\. \n*Required*: Yes \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-s3destinationconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IVS::RecordingConfiguration S3DestinationConfiguration": { + "BucketName": "Location \\(S3 bucket name\\) where recorded videos will be stored\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `^[a-z0-9-.]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IVS::RecordingConfiguration ThumbnailConfiguration": { + "RecordingMode": "Thumbnail recording mode\\. Valid values: \n+ `DISABLED`: Use DISABLED to disable the generation of thumbnails for recorded video\\.\n+ `INTERVAL`: Use INTERVAL to enable the generation of thumbnails for recorded video at a time interval controlled by the [TargetIntervalSeconds](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-thumbnailconfiguration.html#cfn-ivs-recordingconfiguration-thumbnailconfiguration-targetintervalseconds) property\\.\n*Default*: `INTERVAL` \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | INTERVAL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TargetIntervalSeconds": "The targeted thumbnail\\-generation interval in seconds\\. This is configurable \\(and required\\) only if [RecordingMode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-thumbnailconfiguration.html#cfn-ivs-recordingconfiguration-thumbnailconfiguration-recordingmode) is `INTERVAL`\\. \nSetting a value for `TargetIntervalSeconds` does not guarantee that thumbnails are generated at the specified interval\\. For thumbnails to be generated at the `TargetIntervalSeconds` interval, the `IDR/Keyframe` value for the input video must be less than the `TargetIntervalSeconds` value\\. See [Amazon IVS Streaming Configuration](https://docs.aws.amazon.com/ivs/latest/userguide/streaming-config.html) for information on setting `IDR/Keyframe` to the recommended value in video\\-encoder settings\\.\n*Default*: 60 \n*Valid Range*: Minumum value of 5\\. Maximum value of 60\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IVS::StreamKey": { + "ChannelArn": "Channel ARN for the stream\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ImageBuilder::Component": { + "ChangeDescription": "A change description of the component\\. For example `initial version`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Data": "The data of the component\\. For example, `name: HelloWorldTestingDocument\\ndescription: This is hello world testing document.\\nschemaVersion: 1.0\\n\\nphases:\\n - name: test\\n steps:\\n - name: HelloWorldStep\\n action: ExecuteBash\\n inputs:\\n commands:\\n - echo \\\"Hello World! Test.\\\"\\n`\\. See Examples below for the schema for creating a component using Data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "The description of the component\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KmsKeyId": "The KMS key identifier used to encrypt the component\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the component\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Platform": "The platform of the component\\. For example, `Windows`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Linux | Windows` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SupportedOsVersions": "The operating system \\(OS\\) version supported by the component\\. If the OS information is available, a prefix match is performed against the base image OS version during image recipe creation\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `25` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags associated with the component\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Uri": "The `uri` of a YAML component document file\\. This must be an S3 URL \\(`s3://bucket/key`\\), and the requester must have permission to access the S3 bucket it points to\\. If you use Amazon S3, you can specify component content up to your service quota\\. \nAlternatively, you can specify the YAML document inline, using the component `data` property\\. You cannot specify both properties\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Version": "The component version\\. For example, `1.0.0`\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[0-9]+\\.[0-9]+\\.[0-9]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ImageBuilder::ContainerRecipe": { + "Components": "Components for build and test that are included in the container recipe\\. \n*Required*: Yes \n*Type*: List of [ComponentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-componentconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ContainerType": "Specifies the type of container, such as Docker\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DOCKER` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "The description of the container recipe\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DockerfileTemplateData": "Dockerfiles are text documents that are used to build Docker containers, and ensure that they contain all of the elements required by the application running inside\\. The template data consists of contextual variables where Image Builder places build information or scripts, based on your container image recipe\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DockerfileTemplateUri": "The S3 URI for the Dockerfile that will be used to build your container image\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ImageOsVersionOverride": "Specifies the operating system version for the source image\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceConfiguration": "A group of options that can be used to configure an instance for building and testing container images\\. \n*Required*: No \n*Type*: [InstanceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-instanceconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KmsKeyId": "Identifies which KMS key is used to encrypt the container image for distribution to the target Region\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the container recipe\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ParentImage": "The base image for the container recipe\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PlatformOverride": "Specifies the operating system platform when you use a custom source image\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Tags that are attached to the container recipe\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TargetRepository": "The destination repository for the container image\\. \n*Required*: Yes \n*Type*: [TargetContainerRepository](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-targetcontainerrepository.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Version": "The semantic version of the container recipe\\. \nThe semantic version has four nodes: \\.\\./\\. You can assign values for the first three, and can filter on all of them\\. \n **Assignment:** For the first three nodes you can assign any positive integer value, including zero, with an upper limit of 2^30\\-1, or 1073741823 for each node\\. Image Builder automatically assigns the build number to the fourth node\\. \n **Patterns:** You can use any numeric pattern that adheres to the assignment requirements for the nodes that you can assign\\. For example, you might choose a software version pattern, such as 1\\.0\\.0, or a date, such as 2021\\.01\\.01\\. \n **Filtering:** With semantic versioning, you have the flexibility to use wildcards \\(x\\) to specify the most recent versions or nodes when selecting the base image or components for your recipe\\. When you use a wildcard in any node, all nodes to the right of the first wildcard must also be wildcards\\.\n*Required*: Yes \n*Type*: String \n*Pattern*: `^[0-9]+\\.[0-9]+\\.[0-9]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "WorkingDirectory": "The working directory for use during build and test workflows\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ImageBuilder::ContainerRecipe ComponentConfiguration": { + "ComponentArn": "The Amazon Resource Name \\(ARN\\) of the component\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):component/[a-z0-9-_]+/(?:(?:([0-9]+|x)\\.([0-9]+|x)\\.([0-9]+|x))|(?:[0-9]+\\.[0-9]+\\.[0-9]+/[0-9]+))$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ImageBuilder::ContainerRecipe EbsInstanceBlockDeviceSpecification": { + "DeleteOnTermination": "Use to configure delete on termination of the associated device\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Encrypted": "Use to configure device encryption\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Iops": "Use to configure device IOPS\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `100` \n*Maximum*: `64000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KmsKeyId": "Use to configure the KMS key to use when encrypting the device\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SnapshotId": "The snapshot that defines the device contents\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Throughput": "**For GP3 volumes only** \u2013 The throughput in MiB/s that the volume supports\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `125` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VolumeSize": "Use to override the device's volume size\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `16000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VolumeType": "Use to override the device's volume type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `gp2 | gp3 | io1 | io2 | sc1 | st1 | standard` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ImageBuilder::ContainerRecipe InstanceBlockDeviceMapping": { + "DeviceName": "The device to which these mappings apply\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Ebs": "Use to manage Amazon EBS\\-specific configuration for this mapping\\. \n*Required*: No \n*Type*: [EbsInstanceBlockDeviceSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NoDevice": "Use to remove a mapping from the base image\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `0` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VirtualName": "Use to manage instance ephemeral devices\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ImageBuilder::ContainerRecipe InstanceConfiguration": { + "BlockDeviceMappings": "Defines the block devices to attach for building an instance from this Image Builder AMI\\. \n*Required*: No \n*Type*: List of [InstanceBlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-instanceblockdevicemapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Image": "The AMI ID to use as the base image for a container build and test instance\\. If not specified, Image Builder will use the appropriate ECS\\-optimized AMI as a base image\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ImageBuilder::ContainerRecipe TargetContainerRepository": { + "RepositoryName": "The name of the container repository where the output container image is stored\\. This name is prefixed by the repository location\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Service": "Specifies the service in which this image was registered\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ECR` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ImageBuilder::DistributionConfiguration": { + "Description": "The description of this distribution configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Distributions": "The distributions of this distribution configuration formatted as an array of Distribution objects\\. \n*Required*: Yes \n*Type*: List of [Distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of this distribution configuration\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags of this distribution configuration\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ImageBuilder::DistributionConfiguration Distribution": { + "AmiDistributionConfiguration": "The specific AMI settings, such as launch permissions and AMI tags\\. For details, see example schema below\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContainerDistributionConfiguration": "Container distribution settings for encryption, licensing, and sharing in a specific Region\\. For details, see example schema below\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LaunchTemplateConfigurations": "A group of launchTemplateConfiguration settings that apply to image distribution for specified accounts\\. \n*Required*: No \n*Type*: List of [LaunchTemplateConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-launchtemplateconfiguration.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LicenseConfigurationArns": "The License Manager Configuration to associate with the AMI in the specified Region\\. For more information, see the [ LicenseConfiguration API](https://docs.aws.amazon.com/license-manager/latest/APIReference/API_LicenseConfiguration.html)\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Region": "The target Region for the Distribution Configuration\\. For example, `eu-west-1`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ImageBuilder::DistributionConfiguration LaunchTemplateConfiguration": { + "AccountId": "The account ID that this configuration applies to\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LaunchTemplateId": "Identifies the Amazon EC2 launch template to use\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^lt-[a-z0-9-_]{17}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SetDefaultVersion": "Set the specified Amazon EC2 launch template as the default launch template for the specified account\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ImageBuilder::Image": { + "ContainerRecipeArn": "The Amazon Resource Name \\(ARN\\) of the container recipe that is used for this pipeline\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DistributionConfigurationArn": "The Amazon Resource Name \\(ARN\\) of the distribution configuration\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline)/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\\.(?:x|[0-9]+)\\.(?:x|[0-9]+))(?:/[0-9]+)?)?$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EnhancedImageMetadataEnabled": "Collects additional information about the image being created, including the operating system \\(OS\\) version and package list\\. This information is used to enhance the overall experience of using EC2 Image Builder\\. Enabled by default\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ImageRecipeArn": "The Amazon Resource Name \\(ARN\\) of the image recipe\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline)/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\\.(?:x|[0-9]+)\\.(?:x|[0-9]+))(?:/[0-9]+)?)?$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ImageTestsConfiguration": "The configuration settings for your image test components, which includes a toggle that allows you to turn off tests, and a timeout setting\\. \n*Required*: No \n*Type*: [ImageTestsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-image-imagetestsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InfrastructureConfigurationArn": "The Amazon Resource Name \\(ARN\\) of the infrastructure configuration associated with this image pipeline\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags of the image\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ImageBuilder::Image ImageTestsConfiguration": { + "ImageTestsEnabled": "Determines if tests should run after building the image\\. Image Builder defaults to enable tests to run following the image build, before image distribution\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TimeoutMinutes": "The maximum time in minutes that tests are permitted to run\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `60` \n*Maximum*: `1440` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ImageBuilder::ImagePipeline": { + "ContainerRecipeArn": "The Amazon Resource Name \\(ARN\\) of the container recipe that is used for this pipeline\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of this image pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DistributionConfigurationArn": "The Amazon Resource Name \\(ARN\\) of the distribution configuration associated with this image pipeline\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnhancedImageMetadataEnabled": "Collects additional information about the image being created, including the operating system \\(OS\\) version and package list\\. This information is used to enhance the overall experience of using EC2 Image Builder\\. Enabled by default\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageRecipeArn": "The Amazon Resource Name \\(ARN\\) of the image recipe associated with this image pipeline\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageTestsConfiguration": "The configuration of the image tests that run after image creation to ensure the quality of the image that was created\\. \n*Required*: No \n*Type*: [ImageTestsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagepipeline-imagetestsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InfrastructureConfigurationArn": "The Amazon Resource Name \\(ARN\\) of the infrastructure configuration associated with this image pipeline\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the image pipeline\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Schedule": "The schedule of the image pipeline\\. A schedule configures how often and when a pipeline automatically creates a new image\\. \n*Required*: No \n*Type*: [Schedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagepipeline-schedule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Status": "The status of the image pipeline\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags of this image pipeline\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ImageBuilder::ImagePipeline ImageTestsConfiguration": { + "ImageTestsEnabled": "Defines if tests should be executed when building this image\\. For example, `true` or `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeoutMinutes": "The maximum time in minutes that tests are permitted to run\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `60` \n*Maximum*: `1440` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ImageBuilder::ImagePipeline Schedule": { + "PipelineExecutionStartCondition": "The condition configures when the pipeline should trigger a new image build\\. When the `pipelineExecutionStartCondition` is set to `EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE`, and you use semantic version filters on the source image or components in your image recipe, Image Builder will build a new image only when there are new versions of the image or components in your recipe that match the semantic version filter\\. When it is set to `EXPRESSION_MATCH_ONLY`, it will build a new image every time the CRON expression matches the current time\\. For semantic version syntax, see [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html) in the * Image Builder API Reference*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE | EXPRESSION_MATCH_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduleExpression": "The cron expression determines how often EC2 Image Builder evaluates your `pipelineExecutionStartCondition`\\. \nFor information on how to format a cron expression in Image Builder, see [Use cron expressions in EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-builder-cron.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ImageBuilder::ImageRecipe": { + "AdditionalInstanceConfiguration": "Before you create a new AMI, Image Builder launches temporary Amazon EC2 instances to build and test your image configuration\\. Instance configuration adds a layer of control over those instances\\. You can define settings and add scripts to run when an instance is launched from your AMI\\. \n*Required*: No \n*Type*: [AdditionalInstanceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-additionalinstanceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BlockDeviceMappings": "The block device mappings to apply when creating images from this recipe\\. \n*Required*: No \n*Type*: List of [InstanceBlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Components": "The components of the image recipe\\. Components are orchestration documents that define a sequence of steps for downloading, installing, configuring, and testing software packages\\. They also define validation and security hardening steps\\. A component is defined using a YAML document format\\. \n*Required*: Yes \n*Type*: List of [ComponentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-componentconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "The description of the image recipe\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the image recipe\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ParentImage": "The parent image of the image recipe\\. The string must be either an Image ARN \\(SemVers is ok\\) or an AMI ID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags of the image recipe\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Version": "The semantic version of the image recipe\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[0-9]+\\.[0-9]+\\.[0-9]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "WorkingDirectory": "The working directory to be used during build and test workflows\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ImageBuilder::ImageRecipe AdditionalInstanceConfiguration": { + "SystemsManagerAgent": "Contains settings for the Systems Manager agent on your build instance\\. \n*Required*: No \n*Type*: [SystemsManagerAgent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-systemsmanageragent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserDataOverride": "Use this property to provide commands or a command script to run when you launch your build instance\\. \nThe userDataOverride property replaces any commands that Image Builder might have added to ensure that Systems Manager is installed on your Linux build instance\\. If you override the user data, make sure that you add commands to install Systems Manager, if it is not pre\\-installed on your base image\\. \nThe user data is always base 64 encoded\\. For example, the following commands are encoded as `IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhci$`: \n *\\#\\!/bin/bash* \nmkdir \\-p /var/bb/ \ntouch /var\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `21847` \n*Pattern*: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ImageBuilder::ImageRecipe ComponentConfiguration": { + "ComponentArn": "The Amazon Resource Name \\(ARN\\) of the component\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):component/[a-z0-9-_]+/(?:(?:([0-9]+|x)\\.([0-9]+|x)\\.([0-9]+|x))|(?:[0-9]+\\.[0-9]+\\.[0-9]+/[0-9]+))$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Parameters": "A group of parameter settings that are used to configure the component for a specific recipe\\. \n*Required*: No \n*Type*: List of [ComponentParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-componentparameter.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ImageBuilder::ImageRecipe ComponentParameter": { + "Name": "The name of the component parameter to set\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[^\\x00]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Value": "Sets the value for the named component parameter\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ImageBuilder::ImageRecipe EbsInstanceBlockDeviceSpecification": { + "DeleteOnTermination": "Configures delete on termination of the associated device\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Encrypted": "Use to configure device encryption\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Iops": "Use to configure device IOPS\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `100` \n*Maximum*: `64000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KmsKeyId": "Use to configure the KMS key to use when encrypting the device\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SnapshotId": "The snapshot that defines the device contents\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Throughput": "**For GP3 volumes only** \u2013 The throughput in MiB/s that the volume supports\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `125` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VolumeSize": "Overrides the volume size of the device\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `16000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VolumeType": "Overrides the volume type of the device\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `gp2 | gp3 | io1 | io2 | sc1 | st1 | standard` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ImageBuilder::ImageRecipe InstanceBlockDeviceMapping": { + "DeviceName": "The device to which these mappings apply\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Ebs": "Use to manage Amazon EBS\\-specific configuration for this mapping\\. \n*Required*: No \n*Type*: [EbsInstanceBlockDeviceSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NoDevice": "Enter an empty string to remove a mapping from the parent image\\. \nThe following is an example of an empty string value in the `NoDevice` field\\. \n`NoDevice:\"\"` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VirtualName": "Manages the instance ephemeral devices\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ImageBuilder::ImageRecipe SystemsManagerAgent": { + "UninstallAfterBuild": "Controls whether the Systems Manager agent is removed from your final build image, prior to creating the new AMI\\. If this is set to true, then the agent is removed from the final image\\. If it's set to false, then the agent is left in, so that it is included in the new AMI\\. The default value is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ImageBuilder::InfrastructureConfiguration": { + "Description": "The description of the infrastructure configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceMetadataOptions": "The instance metadata option settings for the infrastructure configuration\\. \n*Required*: No \n*Type*: [InstanceMetadataOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-instancemetadataoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceProfileName": "The instance profile of the infrastructure configuration\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[\\w+=,.@-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceTypes": "The instance types of the infrastructure configuration\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeyPair": "The Amazon EC2 key pair of the infrastructure configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Logging": "The logging configuration defines where Image Builder uploads your logs\\. \n*Required*: No \n*Type*: [Logging](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-logging.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the infrastructure configuration\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceTags": "The tags attached to the resource created by Image Builder\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroupIds": "The security group IDs of the infrastructure configuration\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnsTopicArn": "The Amazon Resource Name \\(ARN\\) of the SNS topic for the infrastructure configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetId": "The subnet ID of the infrastructure configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags of the infrastructure configuration\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TerminateInstanceOnFailure": "The terminate instance on failure configuration of the infrastructure configuration\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ImageBuilder::InfrastructureConfiguration InstanceMetadataOptions": { + "HttpPutResponseHopLimit": "Limit the number of hops that an instance metadata request can traverse to reach its destination\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HttpTokens": "Indicates whether a signed token header is required for instance metadata retrieval requests\\. The values affect the response as follows: \n+ **required** \u2013 When you retrieve the IAM role credentials, version 2\\.0 credentials are returned in all cases\\.\n+ **optional** \u2013 You can include a signed token header in your request to retrieve instance metadata, or you can leave it out\\. If you include it, version 2\\.0 credentials are returned for the IAM role\\. Otherwise, version 1\\.0 credentials are returned\\.\nThe default setting is **optional**\\. \n*Required*: No \n*Type*: String \n*Pattern*: `optional|required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ImageBuilder::InfrastructureConfiguration Logging": { + "S3Logs": "The Amazon S3 logging configuration\\. \n*Required*: No \n*Type*: [S3Logs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-s3logs.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ImageBuilder::InfrastructureConfiguration S3Logs": { + "S3BucketName": "The S3 bucket in which to store the logs\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3KeyPrefix": "The Amazon S3 path to the bucket where the logs are stored\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Inspector::AssessmentTarget": { + "AssessmentTargetName": "The name of the Amazon Inspector assessment target\\. The name must be unique within the AWS account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `140` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceGroupArn": "The ARN that specifies the resource group that is used to create the assessment target\\. If `resourceGroupArn` is not specified, all EC2 instances in the current AWS account and Region are included in the assessment target\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Inspector::AssessmentTemplate": { + "AssessmentTargetArn": "The ARN of the assessment target to be included in the assessment template\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AssessmentTemplateName": "The user\\-defined name that identifies the assessment template that you want to create\\. You can create several assessment templates for the same assessment target\\. The names of the assessment templates that correspond to a particular assessment target must be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `140` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DurationInSeconds": "The duration of the assessment run in seconds\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `180` \n*Maximum*: `86400` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RulesPackageArns": "The ARNs of the rules packages that you want to use in the assessment template\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UserAttributesForFindings": "The user\\-defined attributes that are assigned to every finding that is generated by the assessment run that uses this assessment template\\. Within an assessment template, each key must be unique\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Inspector::ResourceGroup": { + "ResourceGroupTags": "The tags \\(key and value pairs\\) that will be associated with the resource group\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: Yes \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::InspectorV2::Filter": { + "Description": "A description of the filter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FilterAction": "The action that is to be applied to the findings that match the filter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FilterCriteria": "Details on the filter criteria associated with this filter\\. \n*Required*: Yes \n*Type*: [FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-filtercriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the filter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::InspectorV2::Filter DateFilter": { + "EndInclusive": "A timestamp representing the end of the time period filtered on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StartInclusive": "A timestamp representing the start of the time period filtered on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::InspectorV2::Filter FilterCriteria": { + "AwsAccountId": "Details of the AWS account IDs used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ComponentId": "Details of the component IDs used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ComponentType": "Details of the component types used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ec2InstanceImageId": "Details of the Amazon EC2 instance image IDs used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ec2InstanceSubnetId": "Details of the Amazon EC2 instance subnet IDs used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ec2InstanceVpcId": "Details of the Amazon EC2 instance VPC IDs used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EcrImageArchitecture": "Details of the Amazon ECR image architecture types used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EcrImageHash": "Details of the Amazon ECR image hashes used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EcrImagePushedAt": "Details on the Amazon ECR image push date and time used to filter findings\\. \n*Required*: No \n*Type*: List of [DateFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-datefilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EcrImageRegistry": "Details on the Amazon ECR registry used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EcrImageRepositoryName": "Details on the name of the Amazon ECR repository used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EcrImageTags": "The tags attached to the Amazon ECR container image\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FindingArn": "Details on the finding ARNs used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FindingStatus": "Details on the finding status types used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FindingType": "Details on the finding types used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FirstObservedAt": "Details on the date and time a finding was first seen used to filter findings\\. \n*Required*: No \n*Type*: List of [DateFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-datefilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InspectorScore": "The Amazon Inspector score to filter on\\. \n*Required*: No \n*Type*: List of [NumberFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-numberfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LastObservedAt": "Details on the date and time a finding was last seen used to filter findings\\. \n*Required*: No \n*Type*: List of [DateFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-datefilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkProtocol": "Details on the ingress source addresses used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PortRange": "Details on the port ranges used to filter findings\\. \n*Required*: No \n*Type*: List of [PortRangeFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-portrangefilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RelatedVulnerabilities": "Details on the related vulnerabilities used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceId": "Details on the resource IDs used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceTags": "Details on the resource tags used to filter findings\\. \n*Required*: No \n*Type*: List of [MapFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-mapfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceType": "Details on the resource types used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Severity": "Details on the severity used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Title": "Details on the finding title used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UpdatedAt": "Details on the date and time a finding was last updated at used to filter findings\\. \n*Required*: No \n*Type*: List of [DateFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-datefilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VendorSeverity": "Details on the vendor severity used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VulnerabilityId": "Details on the vulnerability ID used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VulnerabilitySource": "Details on the vulnerability score to filter findings by\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VulnerablePackages": "Details on the vulnerable packages used to filter findings\\. \n*Required*: No \n*Type*: List of [PackageFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-packagefilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::InspectorV2::Filter MapFilter": { + "Comparison": "The operator to use when comparing values in the filter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Key": "The tag key used in the filter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The tag value used in the filter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::InspectorV2::Filter NumberFilter": { + "LowerInclusive": "The lowest number to be included in the filter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UpperInclusive": "The highest number to be included in the filter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::InspectorV2::Filter PackageFilter": { + "Architecture": "An object that contains details on the package architecture type to filter on\\. \n*Required*: No \n*Type*: [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Epoch": "An object that contains details on the package epoch to filter on\\. \n*Required*: No \n*Type*: [NumberFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-numberfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "An object that contains details on the name of the package to filter on\\. \n*Required*: No \n*Type*: [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Release": "An object that contains details on the package release to filter on\\. \n*Required*: No \n*Type*: [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceLayerHash": "An object that contains details on the source layer hash to filter on\\. \n*Required*: No \n*Type*: [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "The package version to filter on\\. \n*Required*: No \n*Type*: [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::InspectorV2::Filter PortRangeFilter": { + "BeginInclusive": "The port number the port range begins at\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EndInclusive": "The port number the port range ends at\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::InspectorV2::Filter StringFilter": { + "Comparison": "The operator to use when comparing values in the filter \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value to filter on\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT1Click::Device": { + "DeviceId": "The ID of the device, such as `G030PX0312744DWM`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Enabled": "A Boolean value indicating whether the device is enabled \\(`true`\\) or not \\(`false`\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT1Click::Placement": { + "AssociatedDevices": "The devices to associate with the placement, as defined by a mapping of zero or more key\\-value pairs wherein the key is a template name and the value is a device ID\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Attributes": "The user\\-defined attributes associated with the placement\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PlacementName": "The name of the placement\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProjectName": "The name of the project containing the placement\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IoT1Click::Project": { + "Description": "The description of the project\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PlacementTemplate": "An object describing the project's placement specifications\\. \n*Required*: Yes \n*Type*: [PlacementTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot1click-project-placementtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProjectName": "The name of the project from which to obtain information\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IoT1Click::Project DeviceTemplate": { + "CallbackOverrides": "An optional AWS Lambda function to invoke instead of the default AWS Lambda function provided by the placement template\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeviceType": "The device type, which currently must be `\"button\"`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT1Click::Project PlacementTemplate": { + "DefaultAttributes": "The default attributes \\(key\\-value pairs\\) to be applied to all placements using this template\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeviceTemplates": "An object specifying the [DeviceTemplate](https://docs.aws.amazon.com/iot-1-click/latest/projects-apireference/API_DeviceTemplate.html) for all placements using this \\([PlacementTemplate](https://docs.aws.amazon.com/iot-1-click/latest/projects-apireference/API_PlacementTemplate.html)\\) template\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IoT::AccountAuditConfiguration": { + "AccountId": "The ID of the account\\. You can use the expression `!Sub \"${AWS::AccountId}\"` to use your account ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AuditCheckConfigurations": "Specifies which audit checks are enabled and disabled for this account\\. \nSome data collection might start immediately when certain checks are enabled\\. When a check is disabled, any data collected so far in relation to the check is deleted\\. To disable a check, set the value of the `Enabled:` key to `false`\\. \nIf an enabled check is removed from the template, it will also be disabled\\. \nYou can't disable a check if it's used by any scheduled audit\\. You must delete the check from the scheduled audit or delete the scheduled audit itself to disable the check\\. \nFor more information on avialbe auidt checks see [AWS::IoT::AccountAuditConfiguration AuditCheckConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html) \n*Required*: Yes \n*Type*: [AuditCheckConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuditNotificationTargetConfigurations": "Information about the targets to which audit notifications are sent\\. \n*Required*: No \n*Type*: [AuditNotificationTargetConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditnotificationtargetconfigurations.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the role that grants permission to AWS IoT to access information about your devices, policies, certificates, and other items as required when performing an audit\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::AccountAuditConfiguration AuditCheckConfiguration": { + "Enabled": "True if this audit check is enabled for this account\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::AccountAuditConfiguration AuditCheckConfigurations": { + "AuthenticatedCognitoRoleOverlyPermissiveCheck": "Checks the permissiveness of an authenticated Amazon Cognito identity pool role\\. For this check, AWS IoT Device Defender audits all Amazon Cognito identity pools that have been used to connect to the AWS IoT message broker during the 31 days before the audit is performed\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CaCertificateExpiringCheck": "Checks if a CA certificate is expiring\\. This check applies to CA certificates expiring within 30 days or that have expired\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CaCertificateKeyQualityCheck": "Checks the quality of the CA certificate key\\. The quality checks if the key is in a valid format, not expired, and if the key meets a minimum required size\\. This check applies to CA certificates that are `ACTIVE` or `PENDING_TRANSFER`\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConflictingClientIdsCheck": "Checks if multiple devices connect using the same client ID\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeviceCertificateExpiringCheck": "Checks if a device certificate is expiring\\. This check applies to device certificates expiring within 30 days or that have expired\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeviceCertificateKeyQualityCheck": "Checks the quality of the device certificate key\\. The quality checks if the key is in a valid format, not expired, signed by a registered certificate authority, and if the key meets a minimum required size\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeviceCertificateSharedCheck": "Checks if multiple concurrent connections use the same X\\.509 certificate to authenticate with AWS IoT\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IotPolicyOverlyPermissiveCheck": "Checks the permissiveness of a policy attached to an authenticated Amazon Cognito identity pool role\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IotRoleAliasAllowsAccessToUnusedServicesCheck": "Checks if a role alias has access to services that haven't been used for the AWS IoT device in the last year\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IotRoleAliasOverlyPermissiveCheck": "Checks if the temporary credentials provided by AWS IoT role aliases are overly permissive\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoggingDisabledCheck": "Checks if AWS IoT logs are disabled\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RevokedCaCertificateStillActiveCheck": "Checks if a revoked CA certificate is still active\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RevokedDeviceCertificateStillActiveCheck": "Checks if a revoked device certificate is still active\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UnauthenticatedCognitoRoleOverlyPermissiveCheck": "Checks if policy attached to an unauthenticated Amazon Cognito identity pool role is too permissive\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::AccountAuditConfiguration AuditNotificationTarget": { + "Enabled": "True if notifications to the target are enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the role that grants permission to send notifications to the target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetArn": "The ARN of the target \\(SNS topic\\) to which audit notifications are sent\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::AccountAuditConfiguration AuditNotificationTargetConfigurations": { + "Sns": "The `Sns` notification target\\. \n*Required*: No \n*Type*: [AuditNotificationTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditnotificationtarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::Authorizer": { + "AuthorizerFunctionArn": "The authorizer's Lambda function ARN\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthorizerName": "The authorizer name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EnableCachingForHttp": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SigningDisabled": "Specifies whether AWS IoT validates the token signature in an authorization request\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Status": "The status of the authorizer\\. \nValid values: `ACTIVE` \\| `INACTIVE` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Metadata which can be used to manage the custom authorizer\\. \nFor URI Request parameters use format: \\.\\.\\.key1=value1&key2=value2\\.\\.\\. \nFor the CLI command\\-line parameter use format: &&tags \"key1=value1&key2=value2\\.\\.\\.\" \nFor the cli\\-input\\-json file use format: \"tags\": \"key1=value1&key2=value2\\.\\.\\.\"\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TokenKeyName": "The key used to extract the token from the HTTP headers\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TokenSigningPublicKeys": "The public keys used to validate the token signature returned by your custom authentication service\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::Certificate": { + "CACertificatePem": "The CA certificate used to sign the device certificate being registered, not available when CertificateMode is SNI\\_ONLY\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CertificateMode": "Specifies which mode of certificate registration to use with this resource\\. Valid options are DEFAULT with CaCertificatePem and CertificatePem, SNI\\_ONLY with CertificatePem, and Default with CertificateSigningRequest\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CertificatePem": "The certificate data in PEM format\\. Requires SNI\\_ONLY for the certificate mode or the accompanying CACertificatePem for registration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CertificateSigningRequest": "The certificate signing request \\(CSR\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Status": "The status of the certificate\\. \nValid values are ACTIVE, INACTIVE, REVOKED, PENDING\\_TRANSFER, and PENDING\\_ACTIVATION\\. \nThe status value REGISTER\\_INACTIVE is deprecated and should not be used\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::CustomMetric": { + "DisplayName": "The friendly name in the console for the custom metric\\. This name doesn't have to be unique\\. Don't use this name as the metric identifier in the device metric report\\. You can update the friendly name after you define it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricName": "The name of the custom metric\\. This will be used in the metric report submitted from the device/thing\\. The name can't begin with `aws:`\\. You can\u2019t change the name after you define it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MetricType": "The type of the custom metric\\. Types include `string-list`, `ip-address-list`, `number-list`, and `number`\\. \nThe type `number` only takes a single metric value as an input, but when you submit the metrics value in the DeviceMetrics report, you must pass it as an array with a single value\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Metadata that can be used to manage the custom metric\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::Dimension": { + "Name": "A unique identifier for the dimension\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StringValues": "Specifies the value or list of values for the dimension\\. For `TOPIC_FILTER` dimensions, this is a pattern used to match the MQTT topic \\(for example, \"admin/\\#\"\\)\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Metadata that can be used to manage the dimension\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "Specifies the type of dimension\\. Supported types: `TOPIC_FILTER.` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IoT::DomainConfiguration": { + "AuthorizerConfig": "An object that specifies the authorization service for a domain\\. \n*Required*: No \n*Type*: [AuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-authorizerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainConfigurationName": "The name of the domain configuration\\. This value must be unique to a region\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DomainConfigurationStatus": "The status to which the domain configuration should be updated\\. \nValid values: `ENABLED` \\| `DISABLED` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainName": "The name of the domain\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ServerCertificateArns": "The ARNs of the certificates that AWS IoT passes to the device during the TLS handshake\\. Currently you can specify only one certificate ARN\\. This value is not required for AWS\\-managed domains\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ServiceType": "The type of service delivered by the endpoint\\. \n AWS IoT Core currently supports only the `DATA` service type\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Metadata which can be used to manage the domain configuration\\. \nFor URI Request parameters use format: \\.\\.\\.key1=value1&key2=value2\\.\\.\\. \nFor the CLI command\\-line parameter use format: &&tags \"key1=value1&key2=value2\\.\\.\\.\" \nFor the cli\\-input\\-json file use format: \"tags\": \"key1=value1&key2=value2\\.\\.\\.\"\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ValidationCertificateArn": "The certificate used to validate the server certificate and prove domain name ownership\\. This certificate must be signed by a public certificate authority\\. This value is not required for AWS\\-managed domains\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IoT::DomainConfiguration AuthorizerConfig": { + "AllowAuthorizerOverride": "A Boolean that specifies whether the domain configuration's authorization service can be overridden\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultAuthorizerName": "The name of the authorization service for a domain configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::DomainConfiguration ServerCertificateSummary": { + "ServerCertificateArn": "The ARN of the server certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServerCertificateStatus": "The status of the server certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServerCertificateStatusDetail": "Details that explain the status of the server certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::FleetMetric": { + "AggregationField": "The field to aggregate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AggregationType": "The type of the aggregation query\\. \n*Required*: No \n*Type*: [AggregationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-fleetmetric-aggregationtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The fleet metric description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IndexName": "The name of the index to search\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricName": "The name of the fleet metric to create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Period": "The time in seconds between fleet metric emissions\\. Range \\[60\\(1 min\\), 86400\\(1 day\\)\\] and must be multiple of 60\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryString": "The search query string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryVersion": "The query version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Metadata which can be used to manage the fleet metric\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Unit": "Used to support unit transformation such as milliseconds to seconds\\. Must be a unit supported by CW metric\\. Default to null\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::FleetMetric AggregationType": { + "Name": "The name of the aggregation type\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "A list of the values of aggregation types\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::JobTemplate": { + "AbortConfig": "The criteria that determine when and how a job abort takes place\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "A description of the job template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Document": "The job document\\. \nRequired if you don't specify a value for `documentSource`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DocumentSource": "An S3 link to the job document to use in the template\\. Required if you don't specify a value for `document`\\. \nIf the job document resides in an S3 bucket, you must use a placeholder link when specifying the document\\. \nThe placeholder link is of the following form: \n `${aws:iot:s3-presigned-url:https://s3.amazonaws.com/bucket/key}` \nwhere *bucket* is your bucket name and *key* is the object in the bucket to which you are linking\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "JobArn": "The ARN of the job to use as the basis for the job template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "JobExecutionsRetryConfig": "Allows you to create the criteria to retry a job\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JobExecutionsRolloutConfig": "Allows you to create a staged rollout of a job\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "JobTemplateId": "A unique identifier for the job template\\. We recommend using a UUID\\. Alpha\\-numeric characters, \"\\-\", and \"\\_\" are valid for use here\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PresignedUrlConfig": "Configuration for pre\\-signed S3 URLs\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Metadata that can be used to manage the job template\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TimeoutConfig": "Specifies the amount of time each device has to finish its execution of the job\\. A timer is started when the job execution status is set to `IN_PROGRESS`\\. If the job execution status is not set to another terminal state before the timer expires, it will be automatically set to `TIMED_OUT`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IoT::Logging": { + "AccountId": "The account ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DefaultLogLevel": "The default log level\\.Valid Values: `DEBUG | INFO | ERROR | WARN | DISABLED` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The role ARN used for the log\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::MitigationAction": { + "ActionName": "The friendly name of the mitigation action\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ActionParams": "The set of parameters for this mitigation action\\. The parameters vary, depending on the kind of action you apply\\. \n*Required*: Yes \n*Type*: [ActionParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-actionparams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The IAM role ARN used to apply this mitigation action\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Metadata that can be used to manage the mitigation action\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::MitigationAction ActionParams": { + "AddThingsToThingGroupParams": "Specifies the group to which you want to add the devices\\. \n*Required*: No \n*Type*: [AddThingsToThingGroupParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-addthingstothinggroupparams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableIoTLoggingParams": "Specifies the logging level and the role with permissions for logging\\. You cannot specify a logging level of `DISABLED`\\. \n*Required*: No \n*Type*: [EnableIoTLoggingParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-enableiotloggingparams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PublishFindingToSnsParams": "Specifies the topic to which the finding should be published\\. \n*Required*: No \n*Type*: [PublishFindingToSnsParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-publishfindingtosnsparams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReplaceDefaultPolicyVersionParams": "Replaces the policy version with a default or blank policy\\. You specify the template name\\. Only a value of `BLANK_POLICY` is currently supported\\. \n*Required*: No \n*Type*: [ReplaceDefaultPolicyVersionParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-replacedefaultpolicyversionparams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UpdateCACertificateParams": "Specifies the new state for the CA certificate\\. Only a value of `DEACTIVATE` is currently supported\\. \n*Required*: No \n*Type*: [UpdateCACertificateParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-updatecacertificateparams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UpdateDeviceCertificateParams": "Specifies the new state for a device certificate\\. Only a value of `DEACTIVATE` is currently supported\\. \n*Required*: No \n*Type*: [UpdateDeviceCertificateParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-updatedevicecertificateparams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::MitigationAction AddThingsToThingGroupParams": { + "OverrideDynamicGroups": "Specifies if this mitigation action can move the things that triggered the mitigation action even if they are part of one or more dynamic thing groups\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThingGroupNames": "The list of groups to which you want to add the things that triggered the mitigation action\\. You can add a thing to a maximum of 10 groups, but you can't add a thing to more than one group in the same hierarchy\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::MitigationAction EnableIoTLoggingParams": { + "LogLevel": "Specifies the type of information to be logged\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArnForLogging": "The Amazon Resource Name \\(ARN\\) of the IAM role used for logging\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::MitigationAction PublishFindingToSnsParams": { + "TopicArn": "The ARN of the topic to which you want to publish the findings\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::MitigationAction ReplaceDefaultPolicyVersionParams": { + "TemplateName": "The name of the template to be applied\\. The only supported value is `BLANK_POLICY`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::MitigationAction UpdateCACertificateParams": { + "Action": "The action that you want to apply to the CA certificate\\. The only supported value is `DEACTIVATE`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::MitigationAction UpdateDeviceCertificateParams": { + "Action": "The action that you want to apply to the device certificate\\. The only supported value is `DEACTIVATE`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::Policy": { + "PolicyDocument": "The JSON document that describes the policy\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PolicyName": "The policy name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IoT::PolicyPrincipalAttachment": { + "PolicyName": "The name of the AWS IoT policy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Principal": "The principal, which can be a certificate ARN \\(as returned from the `CreateCertificate` operation\\) or an Amazon Cognito ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IoT::ProvisioningTemplate": { + "Description": "The description of the fleet provisioning template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "True to enable the fleet provisioning template, otherwise false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreProvisioningHook": "Creates a pre\\-provisioning hook template\\. \n*Required*: No \n*Type*: [ProvisioningHook](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-provisioningtemplate-provisioninghook.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProvisioningRoleArn": "The role ARN for the role associated with the fleet provisioning template\\. This IoT role grants permission to provision a device\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Metadata that can be used to manage the fleet provisioning template\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateBody": "The JSON formatted contents of the fleet provisioning template version\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateName": "The name of the fleet provisioning template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IoT::ProvisioningTemplate ProvisioningHook": { + "PayloadVersion": "The payload that was sent to the target function\\. The valid payload is `\"2020-04-01\"`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetArn": "The ARN of the target function\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::ResourceSpecificLogging": { + "LogLevel": "The default log level\\.Valid Values: `DEBUG | INFO | ERROR | WARN | DISABLED` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetName": "The target name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TargetType": "The target type\\. Valid Values: `DEFAULT | THING_GROUP` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IoT::ScheduledAudit": { + "DayOfMonth": "The day of the month on which the scheduled audit is run \\(if the `frequency` is \"MONTHLY\"\\)\\. If days 29\\-31 are specified, and the month does not have that many days, the audit takes place on the \"LAST\" day of the month\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DayOfWeek": "The day of the week on which the scheduled audit is run \\(if the `frequency` is \"WEEKLY\" or \"BIWEEKLY\"\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Frequency": "How often the scheduled audit occurs\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduledAuditName": "The name of the scheduled audit\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Metadata that can be used to manage the scheduled audit\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetCheckNames": "Which checks are performed during the scheduled audit\\. Checks must be enabled for your account\\. \\(Use `DescribeAccountAuditConfiguration` to see the list of all checks, including those that are enabled or use `UpdateAccountAuditConfiguration` to select which checks are enabled\\.\\) \n The following checks are currently aviable: \n+ `AUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK`\n+ `CA_CERTIFICATE_EXPIRING_CHECK`\n+ `CA_CERTIFICATE_KEY_QUALITY_CHECK`\n+ `CONFLICTING_CLIENT_IDS_CHECK`\n+ `DEVICE_CERTIFICATE_EXPIRING_CHECK`\n+ `DEVICE_CERTIFICATE_KEY_QUALITY_CHECK`\n+ `DEVICE_CERTIFICATE_SHARED_CHECK`\n+ `IOT_POLICY_OVERLY_PERMISSIVE_CHECK`\n+ `IOT_ROLE_ALIAS_ALLOWS_ACCESS_TO_UNUSED_SERVICES_CHECK`\n+ `IOT_ROLE_ALIAS_OVERLY_PERMISSIVE_CHECK`\n+ `LOGGING_DISABLED_CHECK`\n+ `REVOKED_CA_CERTIFICATE_STILL_ACTIVE_CHECK`\n+ `REVOKED_DEVICE_CERTIFICATE_STILL_ACTIVE_CHECK`\n+ `UNAUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK`\n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::SecurityProfile": { + "AdditionalMetricsToRetainV2": "A list of metrics whose data is retained \\(stored\\)\\. By default, data is retained for any metric used in the profile's `behaviors`, but it's also retained for any metric specified here\\. Can be used with custom metrics; can't be used with dimensions\\. \n*Required*: No \n*Type*: List of [MetricToRetain](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metrictoretain.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AlertTargets": "Specifies the destinations to which alerts are sent\\. \\(Alerts are always sent to the console\\.\\) Alerts are generated when a device \\(thing\\) violates a behavior\\. \n*Required*: No \n*Type*: Map of [AlertTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-alerttarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Behaviors": "Specifies the behaviors that, when violated by a device \\(thing\\), cause an alert\\. \n*Required*: No \n*Type*: List of [Behavior](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behavior.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityProfileDescription": "A description of the security profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityProfileName": "The name you gave to the security profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Metadata that can be used to manage the security profile\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetArns": "The ARN of the target \\(thing group\\) to which the security profile is attached\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::SecurityProfile AlertTarget": { + "AlertTargetArn": "The Amazon Resource Name \\(ARN\\) of the notification target to which alerts are sent\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the role that grants permission to send alerts to the notification target\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::SecurityProfile Behavior": { + "Criteria": "The criteria that determine if a device is behaving normally in regard to the `metric`\\. \n*Required*: No \n*Type*: [BehaviorCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behaviorcriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Metric": "What is measured by the behavior\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricDimension": "The dimension of the metric\\. \n*Required*: No \n*Type*: [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name you've given to the behavior\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SuppressAlerts": "The alert status\\. If you set the value to `true`, alerts will be suppressed\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::SecurityProfile BehaviorCriteria": { + "ComparisonOperator": "The operator that relates the thing measured \\(`metric`\\) to the criteria \\(containing a `value` or `statisticalThreshold`\\)\\. Valid operators include: \n+ `string-list`: `in-set` and `not-in-set` \n+ `number-list`: `in-set` and `not-in-set` \n+ `ip-address-list`: `in-cidr-set` and `not-in-cidr-set` \n+ `number`: `less-than`, `less-than-equals`, `greater-than`, and `greater-than-equals` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConsecutiveDatapointsToAlarm": "If a device is in violation of the behavior for the specified number of consecutive datapoints, an alarm occurs\\. If not specified, the default is 1\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConsecutiveDatapointsToClear": "If an alarm has occurred and the offending device is no longer in violation of the behavior for the specified number of consecutive datapoints, the alarm is cleared\\. If not specified, the default is 1\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DurationSeconds": "Use this to specify the time duration over which the behavior is evaluated, for those criteria that have a time dimension \\(for example, `NUM_MESSAGES_SENT`\\)\\. For a `statisticalThreshhold` metric comparison, measurements from all devices are accumulated over this time duration before being used to calculate percentiles, and later, measurements from an individual device are also accumulated over this time duration before being given a percentile rank\\. Cannot be used with list\\-based metric datatypes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MlDetectionConfig": "The confidence level of the detection model\\. \n*Required*: No \n*Type*: [MachineLearningDetectionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-machinelearningdetectionconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatisticalThreshold": "A statistical ranking \\(percentile\\)that indicates a threshold value by which a behavior is determined to be in compliance or in violation of the behavior\\. \n*Required*: No \n*Type*: [StatisticalThreshold](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-statisticalthreshold.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value to be compared with the `metric`\\. \n*Required*: No \n*Type*: [MetricValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::SecurityProfile MachineLearningDetectionConfig": { + "ConfidenceLevel": "The model confidence level\\. \nThere are three levels of confidence, `\"high\"`, `\"medium\"`, and `\"low\"`\\. \nThe higher the confidence level, the lower the sensitivity, and the lower the alarm frequency will be\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::SecurityProfile MetricDimension": { + "DimensionName": "The name of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Operator": "Operators are constructs that perform logical operations\\. Valid values are `IN` and `NOT_IN`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::SecurityProfile MetricToRetain": { + "Metric": "A standard of measurement\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricDimension": "The dimension of the metric\\. \n*Required*: No \n*Type*: [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::SecurityProfile MetricValue": { + "Cidrs": "If the `comparisonOperator` calls for a set of CIDRs, use this to specify that set to be compared with the `metric`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Count": "If the `comparisonOperator` calls for a numeric value, use this to specify that numeric value to be compared with the `metric`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Number": "The numeric values of a metric\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Numbers": "The numeric value of a metric\\. \n*Required*: No \n*Type*: List of Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ports": "If the `comparisonOperator` calls for a set of ports, use this to specify that set to be compared with the `metric`\\. \n*Required*: No \n*Type*: List of Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Strings": "The string values of a metric\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::SecurityProfile StatisticalThreshold": { + "Statistic": "The percentile that resolves to a threshold value by which compliance with a behavior is determined\\. Metrics are collected over the specified period \\(`durationSeconds`\\) from all reporting devices in your account and statistical ranks are calculated\\. Then, the measurements from a device are collected over the same period\\. If the accumulated measurements from the device fall above or below \\(`comparisonOperator`\\) the value associated with the percentile specified, then the device is considered to be in compliance with the behavior, otherwise a violation occurs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::Thing": { + "AttributePayload": "A string that contains up to three key value pairs\\. Maximum length of 800\\. Duplicates not allowed\\. \n*Required*: No \n*Type*: [AttributePayload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-thing-attributepayload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThingName": "The name of the thing to update\\. \nYou can't change a thing's name\\. To change a thing's name, you must create a new thing, give it the new name, and then delete the old thing\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IoT::Thing AttributePayload": { + "Attributes": "A JSON string containing up to three key\\-value pair in JSON format\\. For example: \n `{\\\"attributes\\\":{\\\"string1\\\":\\\"string2\\\"}}` \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::ThingPrincipalAttachment": { + "Principal": "The principal, which can be a certificate ARN \\(as returned from the `CreateCertificate` operation\\) or an Amazon Cognito ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ThingName": "The name of the AWS IoT thing\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IoT::TopicRule": { + "RuleName": "The name of the rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Metadata which can be used to manage the topic rule\\. \nFor URI Request parameters use format: \\.\\.\\.key1=value1&key2=value2\\.\\.\\. \nFor the CLI command\\-line parameter use format: \\-\\-tags \"key1=value1&key2=value2\\.\\.\\.\" \nFor the cli\\-input\\-json file use format: \"tags\": \"key1=value1&key2=value2\\.\\.\\.\"\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TopicRulePayload": "The rule payload\\. \n*Required*: Yes \n*Type*: [TopicRulePayload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule Action": { + "CloudwatchAlarm": "Change the state of a CloudWatch alarm\\. \n*Required*: No \n*Type*: [CloudwatchAlarmAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchalarmaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CloudwatchLogs": "Sends data to CloudWatch\\. \n*Required*: No \n*Type*: [CloudwatchLogsAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchlogsaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CloudwatchMetric": "Capture a CloudWatch metric\\. \n*Required*: No \n*Type*: [CloudwatchMetricAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DynamoDB": "Write to a DynamoDB table\\. \n*Required*: No \n*Type*: [DynamoDBAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DynamoDBv2": "Write to a DynamoDB table\\. This is a new version of the DynamoDB action\\. It allows you to write each attribute in an MQTT message payload into a separate DynamoDB column\\. \n*Required*: No \n*Type*: [DynamoDBv2Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbv2action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Elasticsearch": "Write data to an Amazon OpenSearch Service domain\\. \nThe `Elasticsearch` action can only be used by existing rule actions\\. To create a new rule action or to update an existing rule action, use the `OpenSearch` rule action instead\\. For more information, see [OpenSearchAction](https://docs.aws.amazon.com/iot/latest/apireference/API_OpenSearchAction.html)\\.\n*Required*: No \n*Type*: [ElasticsearchAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Firehose": "Write to an Amazon Kinesis Firehose stream\\. \n*Required*: No \n*Type*: [FirehoseAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-firehoseaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Http": "Send data to an HTTPS endpoint\\. \n*Required*: No \n*Type*: [HttpAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IotAnalytics": "Sends message data to an AWS IoT Analytics channel\\. \n*Required*: No \n*Type*: [IotAnalyticsAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotanalyticsaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IotEvents": "Sends an input to an AWS IoT Events detector\\. \n*Required*: No \n*Type*: [IotEventsAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-ioteventsaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IotSiteWise": "Sends data from the MQTT message that triggered the rule to AWS IoT SiteWise asset properties\\. \n*Required*: No \n*Type*: [IotSiteWiseAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotsitewiseaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Kafka": "Send messages to an Amazon Managed Streaming for Apache Kafka \\(Amazon MSK\\) or self\\-managed Apache Kafka cluster\\. \n*Required*: No \n*Type*: [KafkaAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kafkaaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Kinesis": "Write data to an Amazon Kinesis stream\\. \n*Required*: No \n*Type*: [KinesisAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kinesisaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Lambda": "Invoke a Lambda function\\. \n*Required*: No \n*Type*: [LambdaAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-lambdaaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OpenSearch": "Write data to an Amazon OpenSearch Service domain\\. \n*Required*: No \n*Type*: [OpenSearchAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-opensearchaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Republish": "Publish to another MQTT topic\\. \n*Required*: No \n*Type*: [RepublishAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-republishaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3": "Write to an Amazon S3 bucket\\. \n*Required*: No \n*Type*: [S3Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-s3action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Sns": "Publish to an Amazon SNS topic\\. \n*Required*: No \n*Type*: [SnsAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-snsaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Sqs": "Publish to an Amazon SQS queue\\. \n*Required*: No \n*Type*: [SqsAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sqsaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StepFunctions": "Starts execution of a Step Functions state machine\\. \n*Required*: No \n*Type*: [StepFunctionsAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-stepfunctionsaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Timestream": "Writes attributes from an MQTT message\\. \n*Required*: No \n*Type*: [TimestreamAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule AssetPropertyTimestamp": { + "OffsetInNanos": "Optional\\. A string that contains the nanosecond time offset\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeInSeconds": "A string that contains the time in seconds since epoch\\. Accepts substitution templates\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule AssetPropertyValue": { + "Quality": "Optional\\. A string that describes the quality of the value\\. Accepts substitution templates\\. Must be `GOOD`, `BAD`, or `UNCERTAIN`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Timestamp": "The asset property value timestamp\\. \n*Required*: Yes \n*Type*: [AssetPropertyTimestamp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertytimestamp.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of the asset property\\. \n*Required*: Yes \n*Type*: [AssetPropertyVariant](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvariant.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule AssetPropertyVariant": { + "BooleanValue": "Optional\\. A string that contains the boolean value \\(`true` or `false`\\) of the value entry\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DoubleValue": "Optional\\. A string that contains the double value of the value entry\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntegerValue": "Optional\\. A string that contains the integer value of the value entry\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StringValue": "Optional\\. The string value of the value entry\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule CloudwatchAlarmAction": { + "AlarmName": "The CloudWatch alarm name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The IAM role that allows access to the CloudWatch alarm\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StateReason": "The reason for the alarm change\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StateValue": "The value of the alarm state\\. Acceptable values are: OK, ALARM, INSUFFICIENT\\_DATA\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule CloudwatchLogsAction": { + "LogGroupName": "The CloudWatch log name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The IAM role that allows access to the CloudWatch log\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule CloudwatchMetricAction": { + "MetricName": "The CloudWatch metric name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricNamespace": "The CloudWatch metric namespace name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricTimestamp": "An optional [Unix timestamp](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricUnit": "The [metric unit](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit) supported by CloudWatch\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricValue": "The CloudWatch metric value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The IAM role that allows access to the CloudWatch metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule DynamoDBAction": { + "HashKeyField": "The hash key name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HashKeyType": "The hash key type\\. Valid values are \"STRING\" or \"NUMBER\" \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HashKeyValue": "The hash key value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PayloadField": "The action payload\\. This name can be customized\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RangeKeyField": "The range key name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RangeKeyType": "The range key type\\. Valid values are \"STRING\" or \"NUMBER\" \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RangeKeyValue": "The range key value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the IAM role that grants access to the DynamoDB table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TableName": "The name of the DynamoDB table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule DynamoDBv2Action": { + "PutItem": "Specifies the DynamoDB table to which the message data will be written\\. For example: \n `{ \"dynamoDBv2\": { \"roleArn\": \"aws:iam:12341251:my-role\" \"putItem\": { \"tableName\": \"my-table\" } } }` \nEach attribute in the message payload will be written to a separate column in the DynamoDB database\\. \n*Required*: No \n*Type*: [PutItemInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putiteminput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the IAM role that grants access to the DynamoDB table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule ElasticsearchAction": { + "Endpoint": "The endpoint of your OpenSearch domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "The unique identifier for the document you are storing\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Index": "The index where you want to store your data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The IAM role ARN that has access to OpenSearch\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of document you are storing\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule FirehoseAction": { + "BatchMode": "Whether to deliver the Kinesis Data Firehose stream as a batch by using [https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html](https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html)\\. The default value is `false`\\. \nWhen `batchMode` is `true` and the rule's SQL statement evaluates to an Array, each Array element forms one record in the [https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html](https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html) request\\. The resulting array can't have more than 500 records\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeliveryStreamName": "The delivery stream name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The IAM role that grants access to the Amazon Kinesis Firehose stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Separator": "A character separator that will be used to separate records written to the Firehose stream\\. Valid values are: '\\\\n' \\(newline\\), '\\\\t' \\(tab\\), '\\\\r\\\\n' \\(Windows newline\\), ',' \\(comma\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule HttpAction": { + "Auth": "The authentication method to use when sending data to an HTTPS endpoint\\. \n*Required*: No \n*Type*: [HttpAuthorization](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpauthorization.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConfirmationUrl": "The URL to which AWS IoT sends a confirmation message\\. The value of the confirmation URL must be a prefix of the endpoint URL\\. If you do not specify a confirmation URL AWS IoT uses the endpoint URL as the confirmation URL\\. If you use substitution templates in the confirmationUrl, you must create and enable topic rule destinations that match each possible value of the substitution template before traffic is allowed to your endpoint URL\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Headers": "The HTTP headers to send with the message data\\. \n*Required*: No \n*Type*: List of [HttpActionHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpactionheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Url": "The endpoint URL\\. If substitution templates are used in the URL, you must also specify a `confirmationUrl`\\. If this is a new destination, a new `TopicRuleDestination` is created if possible\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule HttpActionHeader": { + "Key": "The HTTP header key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The HTTP header value\\. Substitution templates are supported\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule HttpAuthorization": { + "Sigv4": "Use Sig V4 authorization\\. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)\\. \n*Required*: No \n*Type*: [SigV4Authorization](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sigv4authorization.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule IotAnalyticsAction": { + "BatchMode": "Whether to process the action as a batch\\. The default value is `false`\\. \nWhen `batchMode` is `true` and the rule SQL statement evaluates to an Array, each Array element is delivered as a separate message when passed by [https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_BatchPutMessage.html](https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_BatchPutMessage.html) The resulting array can't have more than 100 messages\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ChannelName": "The name of the IoT Analytics channel to which message data will be sent\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the role which has a policy that grants IoT Analytics permission to send message data via IoT Analytics \\(iotanalytics:BatchPutMessage\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule IotEventsAction": { + "BatchMode": "Whether to process the event actions as a batch\\. The default value is `false`\\. \nWhen `batchMode` is `true`, you can't specify a `messageId`\\. \nWhen `batchMode` is `true` and the rule SQL statement evaluates to an Array, each Array element is treated as a separate message when Events by calling [https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchPutMessage.html](https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchPutMessage.html)\\. The resulting array can't have more than 10 messages\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputName": "The name of the AWS IoT Events input\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MessageId": "The ID of the message\\. The default `messageId` is a new UUID value\\. \nWhen `batchMode` is `true`, you can't specify a `messageId`\\-\\-a new UUID value will be assigned\\. \nAssign a value to this property to ensure that only one input \\(message\\) with a given `messageId` will be processed by an AWS IoT Events detector\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the role that grants AWS IoT permission to send an input to an AWS IoT Events detector\\. \\(\"Action\":\"iotevents:BatchPutMessage\"\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule IotSiteWiseAction": { + "PutAssetPropertyValueEntries": "A list of asset property value entries\\. \n*Required*: Yes \n*Type*: List of [PutAssetPropertyValueEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the role that grants AWS IoT permission to send an asset property value to AWS IoT SiteWise\\. \\(`\"Action\": \"iotsitewise:BatchPutAssetPropertyValue\"`\\)\\. The trust policy can restrict access to specific asset hierarchy paths\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule KafkaAction": { + "ClientProperties": "Properties of the Apache Kafka producer client\\. \n*Required*: Yes \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationArn": "The ARN of Kafka action's VPC `TopicRuleDestination`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Key": "The Kafka message key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Partition": "The Kafka message partition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Topic": "The Kafka topic for messages to be sent to the Kafka broker\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule KinesisAction": { + "PartitionKey": "The partition key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the IAM role that grants access to the Amazon Kinesis stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamName": "The name of the Amazon Kinesis stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule LambdaAction": { + "FunctionArn": "The ARN of the Lambda function\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule OpenSearchAction": { + "Endpoint": "The endpoint of your OpenSearch domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "The unique identifier for the document you are storing\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Index": "The OpenSearch index where you want to store your data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The IAM role ARN that has access to OpenSearch\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of document you are storing\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule PutAssetPropertyValueEntry": { + "AssetId": "The ID of the AWS IoT SiteWise asset\\. You must specify either a `propertyAlias` or both an `aliasId` and a `propertyId`\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EntryId": "Optional\\. A unique identifier for this entry that you can define to better track which message caused an error in case of failure\\. Accepts substitution templates\\. Defaults to a new UUID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PropertyAlias": "The name of the property alias associated with your asset property\\. You must specify either a `propertyAlias` or both an `aliasId` and a `propertyId`\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PropertyId": "The ID of the asset's property\\. You must specify either a `propertyAlias` or both an `aliasId` and a `propertyId`\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PropertyValues": "A list of property values to insert that each contain timestamp, quality, and value \\(TQV\\) information\\. \n*Required*: Yes \n*Type*: List of [AssetPropertyValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule PutItemInput": { + "TableName": "The table where the message data will be written\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule RepublishAction": { + "Qos": "The Quality of Service \\(QoS\\) level to use when republishing messages\\. The default value is 0\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the IAM role that grants access\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Topic": "The name of the MQTT topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule S3Action": { + "BucketName": "The Amazon S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CannedAcl": "The Amazon S3 canned ACL that controls access to the object identified by the object key\\. For more information, see [S3 canned ACLs](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Key": "The object key\\. For more information, see [Actions, resources, and condition keys for Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the IAM role that grants access\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule SigV4Authorization": { + "RoleArn": "The ARN of the signing role\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceName": "The service name to use while signing with Sig V4\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SigningRegion": "The signing region\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule SnsAction": { + "MessageFormat": "\\(Optional\\) The message format of the message to publish\\. Accepted values are \"JSON\" and \"RAW\"\\. The default value of the attribute is \"RAW\"\\. SNS uses this setting to determine if the payload should be parsed and relevant platform\\-specific bits of the payload should be extracted\\. For more information, see [Amazon SNS Message and JSON Formats](https://docs.aws.amazon.com/sns/latest/dg/json-formats.html) in the *Amazon Simple Notification Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the IAM role that grants access\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetArn": "The ARN of the SNS topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule SqsAction": { + "QueueUrl": "The URL of the Amazon SQS queue\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the IAM role that grants access\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UseBase64": "Specifies whether to use Base64 encoding\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule StepFunctionsAction": { + "ExecutionNamePrefix": "\\(Optional\\) A name will be given to the state machine execution consisting of this prefix followed by a UUID\\. Step Functions automatically creates a unique name for each state machine execution if one is not provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the role that grants IoT permission to start execution of a state machine \\(\"Action\":\"states:StartExecution\"\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StateMachineName": "The name of the Step Functions state machine whose execution will be started\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule TimestreamAction": { + "BatchMode": "Whether to process the action as a batch\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseName": "The name of an Amazon Timestream database that has the table to write records into\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Dimensions": "Metadata attributes of the time series that are written in each measure record\\. \n*Required*: Yes \n*Type*: List of [TimestreamDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the role that grants AWS IoT permission to write to the Timestream database table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TableName": "The table where the message data will be written\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Timestamp": "The value to use for the entry's timestamp\\. If blank, the time that the entry was processed is used\\. \n*Required*: No \n*Type*: [TimestreamTimestamp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamtimestamp.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule TimestreamDimension": { + "Name": "The metadata dimension name\\. This is the name of the column in the Amazon Timestream database table record\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value to write in this column of the database record\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule TimestreamTimestamp": { + "Unit": "The precision of the timestamp value that results from the expression described in `value`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "An expression that returns a long epoch time value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRule TopicRulePayload": { + "Actions": "The actions associated with the rule\\. \n*Required*: Yes \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AwsIotSqlVersion": "The version of the SQL rules engine to use when evaluating the rule\\. \nThe default value is 2015\\-10\\-08\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ErrorAction": "The action to take when an error occurs\\. \n*Required*: No \n*Type*: [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleDisabled": "Specifies whether the rule is disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Sql": "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-sql-reference.html) in the * AWS IoT Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoT::TopicRuleDestination": { + "HttpUrlProperties": "Properties of the HTTP URL\\. \n*Required*: No \n*Type*: [HttpUrlDestinationSummary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicruledestination-httpurldestinationsummary.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Status": "IN\\_PROGRESS \nA topic rule destination was created but has not been confirmed\\. You can set status to `IN_PROGRESS` by calling `UpdateTopicRuleDestination`\\. Calling `UpdateTopicRuleDestination` causes a new confirmation challenge to be sent to your confirmation endpoint\\. \nENABLED \nConfirmation was completed, and traffic to this destination is allowed\\. You can set status to `DISABLED` by calling `UpdateTopicRuleDestination`\\. \nDISABLED \nConfirmation was completed, and traffic to this destination is not allowed\\. You can set status to `ENABLED` by calling `UpdateTopicRuleDestination`\\. \nERROR \nConfirmation could not be completed; for example, if the confirmation timed out\\. You can call `GetTopicRuleDestination` for details about the error\\. You can set status to `IN_PROGRESS` by calling `UpdateTopicRuleDestination`\\. Calling `UpdateTopicRuleDestination` causes a new confirmation challenge to be sent to your confirmation endpoint\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcProperties": "Properties of the virtual private cloud \\(VPC\\) connection\\. \n*Required*: No \n*Type*: [VpcDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicruledestination-vpcdestinationproperties.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IoT::TopicRuleDestination HttpUrlDestinationSummary": { + "ConfirmationUrl": "The URL used to confirm the HTTP topic rule destination URL\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IoT::TopicRuleDestination VpcDestinationProperties": { + "RoleArn": "The ARN of a role that has permission to create and attach to elastic network interfaces \\(ENIs\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecurityGroups": "The security groups of the VPC destination\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetIds": "The subnet IDs of the VPC destination\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpcId": "The ID of the VPC\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IoTAnalytics::Channel": { + "ChannelName": "The name of the channel\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ChannelStorage": "Where channel data is stored\\. \n*Required*: No \n*Type*: [ChannelStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-channelstorage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetentionPeriod": "How long, in days, message data is kept for the channel\\. \n*Required*: No \n*Type*: [RetentionPeriod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-retentionperiod.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Metadata which can be used to manage the channel\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Channel ChannelStorage": { + "CustomerManagedS3": "Used to store channel data in an S3 bucket that you manage\\. If customer managed storage is selected, the `retentionPeriod` parameter is ignored\\. You can't change the choice of S3 storage after the data store is created\\. \n*Required*: No \n*Type*: [CustomerManagedS3](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-customermanageds3.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceManagedS3": "Used to store channel data in an S3 bucket managed by AWS IoT Analytics\\. You can't change the choice of S3 storage after the data store is created\\. \n*Required*: No \n*Type*: [ServiceManagedS3](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-servicemanageds3.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Channel CustomerManagedS3": { + "Bucket": "The name of the S3 bucket in which channel data is stored\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9.\\-_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeyPrefix": "\\(Optional\\) The prefix used to create the keys of the channel data objects\\. Each object in an S3 bucket has a key that is its unique identifier within the bucket \\(each object in a bucket has exactly one key\\)\\. The prefix must end with a forward slash \\(/\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9!_.*'()/{}:-]*/$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the role that grants AWS IoT Analytics permission to interact with your Amazon S3 resources\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Channel RetentionPeriod": { + "NumberOfDays": "The number of days that message data is kept\\. The `unlimited` parameter must be false\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Unlimited": "If true, message data is kept indefinitely\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset": { + "Actions": "The `DatasetAction` objects that automatically create the dataset contents\\. \n*Required*: Yes \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-action.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContentDeliveryRules": "When dataset contents are created they are delivered to destinations specified here\\. \n*Required*: No \n*Type*: List of [DatasetContentDeliveryRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-datasetcontentdeliveryrule.html) \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatasetName": "The name of the dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LateDataRules": "A list of data rules that send notifications to CloudWatch, when data arrives late\\. To specify `lateDataRules`, the dataset must use a [DeltaTimer](https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_DeltaTime.html) filter\\. \n*Required*: No \n*Type*: List of [LateDataRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-latedatarule.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetentionPeriod": "Optional\\. How long, in days, message data is kept for the dataset\\. \n*Required*: No \n*Type*: [RetentionPeriod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-retentionperiod.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Metadata which can be used to manage the data set\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Triggers": "The `DatasetTrigger` objects that specify when the dataset is automatically updated\\. \n*Required*: No \n*Type*: List of [Trigger](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-trigger.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VersioningConfiguration": "Optional\\. How many versions of dataset contents are kept\\. If not specified or set to null, only the latest version plus the latest succeeded version \\(if they are different\\) are kept for the time period specified by the `retentionPeriod` parameter\\. For more information, see [ Keeping Multiple Versions of AWS IoT Analytics datasets](https://docs.aws.amazon.com/iotanalytics/latest/userguide/getting-started.html#aws-iot-analytics-dataset-versions) in the * AWS IoT Analytics User Guide*\\. \n*Required*: No \n*Type*: [VersioningConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-versioningconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset Action": { + "ActionName": "The name of the data set action by which data set contents are automatically created\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9_]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContainerAction": "Information which allows the system to run a containerized application in order to create the data set contents\\. The application must be in a Docker container along with any needed support libraries\\. \n*Required*: No \n*Type*: [ContainerAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-containeraction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryAction": "An \"SqlQueryDatasetAction\" object that uses an SQL query to automatically create data set contents\\. \n*Required*: No \n*Type*: [QueryAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-queryaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset ContainerAction": { + "ExecutionRoleArn": "The ARN of the role which gives permission to the system to access needed resources in order to run the \"containerAction\"\\. This includes, at minimum, permission to retrieve the data set contents which are the input to the containerized application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Image": "The ARN of the Docker container stored in your account\\. The Docker container contains an application and needed support libraries and is used to generate data set contents\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceConfiguration": "Configuration of the resource which executes the \"containerAction\"\\. \n*Required*: Yes \n*Type*: [ResourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-resourceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Variables": "The values of variables used within the context of the execution of the containerized application \\(basically, parameters passed to the application\\)\\. Each variable must have a name and a value given by one of \"stringValue\", \"datasetContentVersionValue\", or \"outputFileUriValue\"\\. \n*Required*: No \n*Type*: List of [Variable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset DatasetContentDeliveryRule": { + "Destination": "The destination to which dataset contents are delivered\\. \n*Required*: Yes \n*Type*: [DatasetContentDeliveryRuleDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-datasetcontentdeliveryruledestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EntryName": "The name of the dataset content delivery rules entry\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset DatasetContentDeliveryRuleDestination": { + "IotEventsDestinationConfiguration": "Configuration information for delivery of dataset contents to AWS IoT Events\\. \n*Required*: No \n*Type*: [IotEventsDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-ioteventsdestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3DestinationConfiguration": "Configuration information for delivery of dataset contents to Amazon S3\\. \n*Required*: No \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-s3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset DatasetContentVersionValue": { + "DatasetName": "The name of the dataset whose latest contents are used as input to the notebook or application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset DeltaTime": { + "OffsetSeconds": "The number of seconds of estimated in\\-flight lag time of message data\\. When you create dataset contents using message data from a specified timeframe, some message data might still be in flight when processing begins, and so do not arrive in time to be processed\\. Use this field to make allowances for the in flight time of your message data, so that data not processed from a previous timeframe is included with the next timeframe\\. Otherwise, missed message data would be excluded from processing during the next timeframe too, because its timestamp places it within the previous timeframe\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeExpression": "An expression by which the time of the message data might be determined\\. This can be the name of a timestamp field or a SQL expression that is used to derive the time the message data was generated\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset DeltaTimeSessionWindowConfiguration": { + "TimeoutInMinutes": "A time interval\\. You can use `timeoutInMinutes` so that AWS IoT Analytics can batch up late data notifications that have been generated since the last execution\\. AWS IoT Analytics sends one batch of notifications to Amazon CloudWatch Events at one time\\. \nFor more information about how to write a timestamp expression, see [Date and Time Functions and Operators](https://prestodb.io/docs/0.172/functions/datetime.html), in the *Presto 0\\.172 Documentation*\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `60` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset Filter": { + "DeltaTime": "Used to limit data to that which has arrived since the last execution of the action\\. \n*Required*: No \n*Type*: [DeltaTime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-deltatime.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset GlueConfiguration": { + "DatabaseName": "The name of the database in your AWS Glue Data Catalog in which the table is located\\. An AWS Glue Data Catalog database contains metadata tables\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `150` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TableName": "The name of the table in your AWS Glue Data Catalog that is used to perform the ETL operations\\. An AWS Glue Data Catalog table contains partitioned data and descriptions of data sources and targets\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `150` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset IotEventsDestinationConfiguration": { + "InputName": "The name of the AWS IoT Events input to which dataset contents are delivered\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the role that grants AWS IoT Analytics permission to deliver dataset contents to an AWS IoT Events input\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset LateDataRule": { + "RuleConfiguration": "The information needed to configure the late data rule\\. \n*Required*: Yes \n*Type*: [LateDataRuleConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-latedataruleconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleName": "The name of the late data rule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9_]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset LateDataRuleConfiguration": { + "DeltaTimeSessionWindowConfiguration": "The information needed to configure a delta time session window\\. \n*Required*: No \n*Type*: [DeltaTimeSessionWindowConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-deltatimesessionwindowconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset OutputFileUriValue": { + "FileName": "The URI of the location where dataset contents are stored, usually the URI of a file in an S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[\\w\\.-]{1,255}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset QueryAction": { + "Filters": "Pre\\-filters applied to message data\\. \n*Required*: No \n*Type*: List of [Filter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-filter.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SqlQuery": "An \"SqlQueryDatasetAction\" object that uses an SQL query to automatically create data set contents\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset ResourceConfiguration": { + "ComputeType": "The type of the compute resource used to execute the `containerAction`\\. Possible values are: `ACU_1` \\(vCPU=4, memory=16 GiB\\) or `ACU_2` \\(vCPU=8, memory=32 GiB\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ACU_1 | ACU_2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VolumeSizeInGB": "The size, in GB, of the persistent storage available to the resource instance used to execute the `containerAction` \\(min: 1, max: 50\\)\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset RetentionPeriod": { + "NumberOfDays": "The number of days that message data is kept\\. The `unlimited` parameter must be false\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Unlimited": "If true, message data is kept indefinitely\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset S3DestinationConfiguration": { + "Bucket": "The name of the S3 bucket to which dataset contents are delivered\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9.\\-_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GlueConfiguration": "Configuration information for coordination with AWS Glue, a fully managed extract, transform and load \\(ETL\\) service\\. \n*Required*: No \n*Type*: [GlueConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-glueconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Key": "The key of the dataset contents object in an S3 bucket\\. Each object has a key that is a unique identifier\\. Each object has exactly one key\\. \nYou can create a unique key with the following options: \n+ Use `!{iotanalytics:scheduleTime}` to insert the time of a scheduled SQL query run\\.\n+ Use `!{iotanalytics:versionId}` to insert a unique hash that identifies a dataset content\\.\n+ Use `!{iotanalytics:creationTime}` to insert the creation time of a dataset content\\.\nThe following example creates a unique key for a CSV file: `dataset/mydataset/!{iotanalytics:scheduleTime}/!{iotanalytics:versionId}.csv` \nIf you don't use `!{iotanalytics:versionId}` to specify the key, you might get duplicate keys\\. For example, you might have two dataset contents with the same `scheduleTime` but different `versionId`s\\. This means that one dataset content overwrites the other\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9!_.*'()/{}:-]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the role that grants AWS IoT Analytics permission to interact with your Amazon S3 and AWS Glue resources\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset Schedule": { + "ScheduleExpression": "The expression that defines when to trigger an update\\. For more information, see [ Schedule Expressions for Rules](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html) in the Amazon CloudWatch documentation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset Trigger": { + "Schedule": "The \"Schedule\" when the trigger is initiated\\. \n*Required*: No \n*Type*: [Schedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-schedule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TriggeringDataset": "Information about the data set whose content generation triggers the new data set content generation\\. \n*Required*: No \n*Type*: [TriggeringDataset](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-triggeringdataset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset TriggeringDataset": { + "DatasetName": "The name of the data set whose content generation triggers the new data set content generation\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset Variable": { + "DatasetContentVersionValue": "The value of the variable as a structure that specifies a dataset content version\\. \n*Required*: No \n*Type*: [DatasetContentVersionValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-datasetcontentversionvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DoubleValue": "The value of the variable as a double \\(numeric\\)\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutputFileUriValue": "The value of the variable as a structure that specifies an output file URI\\. \n*Required*: No \n*Type*: [OutputFileUriValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-outputfileurivalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StringValue": "The value of the variable as a string\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VariableName": "The name of the variable\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Dataset VersioningConfiguration": { + "MaxVersions": "How many versions of dataset contents are kept\\. The `unlimited` parameter must be `false`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Unlimited": "If true, unlimited versions of dataset contents are kept\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Datastore": { + "DatastoreName": "The name of the data store\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DatastorePartitions": "Information about the partition dimensions in a data store\\. \n*Required*: No \n*Type*: [DatastorePartitions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorepartitions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatastoreStorage": "Where data store data is stored\\. \n*Required*: No \n*Type*: [DatastoreStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorestorage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FileFormatConfiguration": "Contains the configuration information of file formats\\. AWS IoT Analytics data stores support JSON and [Parquet](https://parquet.apache.org/)\\. \nThe default file format is JSON\\. You can specify only one format\\. \nYou can't change the file format after you create the data store\\. \n*Required*: No \n*Type*: [FileFormatConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-fileformatconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetentionPeriod": "How long, in days, message data is kept for the data store\\. When `customerManagedS3` storage is selected, this parameter is ignored\\. \n*Required*: No \n*Type*: [RetentionPeriod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-retentionperiod.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Metadata which can be used to manage the data store\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Datastore Column": { + "Name": "The name of the column\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of data\\. For more information about the supported data types, see [Common data types](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-common.html) in the * AWS Glue Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Datastore CustomerManagedS3": { + "Bucket": "The name of the Amazon S3 bucket where your data is stored\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9.\\-_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeyPrefix": "\\(Optional\\) The prefix used to create the keys of the data store data objects\\. Each object in an Amazon S3 bucket has a key that is its unique identifier in the bucket\\. Each object in a bucket has exactly one key\\. The prefix must end with a forward slash \\(/\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9!_.*'()/{}:-]*/$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the role that grants AWS IoT Analytics permission to interact with your Amazon S3 resources\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Datastore CustomerManagedS3Storage": { + "Bucket": "The name of the Amazon S3 bucket where your data is stored\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeyPrefix": "\\(Optional\\) The prefix used to create the keys of the data store data objects\\. Each object in an Amazon S3 bucket has a key that is its unique identifier in the bucket\\. Each object in a bucket has exactly one key\\. The prefix must end with a forward slash \\(/\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Datastore DatastorePartition": { + "Partition": "A partition dimension defined by an attribute\\. \n*Required*: No \n*Type*: [Partition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-partition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimestampPartition": "A partition dimension defined by a timestamp attribute\\. \n*Required*: No \n*Type*: [TimestampPartition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-timestamppartition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Datastore DatastorePartitions": { + "Partitions": "A list of partition dimensions in a data store\\. \n*Required*: No \n*Type*: List of [DatastorePartition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorepartition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Datastore DatastoreStorage": { + "CustomerManagedS3": "Use this to store data store data in an S3 bucket that you manage\\. The choice of service\\-managed or customer\\-managed S3 storage cannot be changed after creation of the data store\\. \n*Required*: No \n*Type*: [CustomerManagedS3](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-customermanageds3.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IotSiteWiseMultiLayerStorage": "Use this to store data used by AWS IoT SiteWise in an Amazon S3 bucket that you manage\\. You can't change the choice of Amazon S3 storage after your data store is created\\. \n*Required*: No \n*Type*: [IotSiteWiseMultiLayerStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-iotsitewisemultilayerstorage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceManagedS3": "Use this to store data store data in an S3 bucket managed by the AWS IoT Analytics service\\. The choice of service\\-managed or customer\\-managed S3 storage cannot be changed after creation of the data store\\. \n*Required*: No \n*Type*: [ServiceManagedS3](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-servicemanageds3.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Datastore FileFormatConfiguration": { + "JsonConfiguration": "Contains the configuration information of the JSON format\\. \n*Required*: No \n*Type*: [JsonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-jsonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParquetConfiguration": "Contains the configuration information of the Parquet format\\. \n*Required*: No \n*Type*: [ParquetConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-parquetconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Datastore IotSiteWiseMultiLayerStorage": { + "CustomerManagedS3Storage": "Stores data used by AWS IoT SiteWise in an Amazon S3 bucket that you manage\\. \n*Required*: No \n*Type*: [CustomerManagedS3Storage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-customermanageds3storage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Datastore ParquetConfiguration": { + "SchemaDefinition": "Information needed to define a schema\\. \n*Required*: No \n*Type*: [SchemaDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-schemadefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Datastore Partition": { + "AttributeName": "The name of the attribute that defines a partition dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Datastore RetentionPeriod": { + "NumberOfDays": "The number of days that message data is kept\\. The `unlimited` parameter must be false\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Unlimited": "If true, message data is kept indefinitely\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Datastore SchemaDefinition": { + "Columns": "Specifies one or more columns that store your data\\. \nEach schema can have up to 100 columns\\. Each column can have up to 100 nested types\\. \n*Required*: No \n*Type*: List of [Column](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-column.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Datastore TimestampPartition": { + "AttributeName": "The attribute name of the partition defined by a timestamp\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimestampFormat": "The timestamp format of a partition defined by a timestamp\\. The default format is seconds since epoch \\(January 1, 1970 at midnight UTC time\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Pipeline": { + "PipelineActivities": "A list of \"PipelineActivity\" objects\\. Activities perform transformations on your messages, such as removing, renaming or adding message attributes; filtering messages based on attribute values; invoking your Lambda functions on messages for advanced processing; or performing mathematical transformations to normalize device data\\. \nThe list can be 2\\-25 **PipelineActivity** objects and must contain both a `channel` and a `datastore` activity\\. Each entry in the list must contain only one activity, for example: \n `pipelineActivities = [ { \"channel\": { ... } }, { \"lambda\": { ... } }, ... ]` \n*Required*: Yes \n*Type*: List of [Activity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html) \n*Maximum*: `25` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PipelineName": "The name of the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Metadata which can be used to manage the pipeline\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Pipeline Activity": { + "AddAttributes": "Adds other attributes based on existing attributes in the message\\. \n*Required*: No \n*Type*: [AddAttributes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-addattributes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Channel": "Determines the source of the messages to be processed\\. \n*Required*: No \n*Type*: [Channel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-channel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Datastore": "Specifies where to store the processed message data\\. \n*Required*: No \n*Type*: [Datastore](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-datastore.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeviceRegistryEnrich": "Adds data from the AWS IoT device registry to your message\\. \n*Required*: No \n*Type*: [DeviceRegistryEnrich](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceregistryenrich.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeviceShadowEnrich": "Adds information from the AWS IoT Device Shadows service to a message\\. \n*Required*: No \n*Type*: [DeviceShadowEnrich](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceshadowenrich.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Filter": "Filters a message based on its attributes\\. \n*Required*: No \n*Type*: [Filter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-filter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Lambda": "Runs a Lambda function to modify the message\\. \n*Required*: No \n*Type*: [Lambda](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-lambda.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Math": "Computes an arithmetic expression using the message's attributes and adds it to the message\\. \n*Required*: No \n*Type*: [Math](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-math.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RemoveAttributes": "Removes attributes from a message\\. \n*Required*: No \n*Type*: [RemoveAttributes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-removeattributes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SelectAttributes": "Creates a new message using only the specified attributes from the original message\\. \n*Required*: No \n*Type*: [SelectAttributes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-selectattributes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Pipeline AddAttributes": { + "Attributes": "A list of 1\\-50 \"AttributeNameMapping\" objects that map an existing attribute to a new attribute\\. \nThe existing attributes remain in the message, so if you want to remove the originals, use \"RemoveAttributeActivity\"\\.\n*Required*: Yes \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the 'addAttributes' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Next": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Pipeline Channel": { + "ChannelName": "The name of the channel from which the messages are processed\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the 'channel' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Next": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Pipeline Datastore": { + "DatastoreName": "The name of the data store where processed messages are stored\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the datastore activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Pipeline DeviceRegistryEnrich": { + "Attribute": "The name of the attribute that is added to the message\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the 'deviceRegistryEnrich' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Next": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the role that allows access to the device's registry information\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThingName": "The name of the IoT device whose registry information is added to the message\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Pipeline DeviceShadowEnrich": { + "Attribute": "The name of the attribute that is added to the message\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the 'deviceShadowEnrich' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Next": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the role that allows access to the device's shadow\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThingName": "The name of the IoT device whose shadow information is added to the message\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Pipeline Filter": { + "Filter": "An expression that looks like an SQL WHERE clause that must return a Boolean value\\. \n*Required*: Yes \n*Type*: [String](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-iotanalytics-pipeline-filter.html#aws-properties-iotanalytics-pipeline-filter) \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the 'filter' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Next": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Pipeline Lambda": { + "BatchSize": "The number of messages passed to the Lambda function for processing\\. \nThe AWS Lambda function must be able to process all of these messages within five minutes, which is the maximum timeout duration for Lambda functions\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LambdaName": "The name of the Lambda function that is run on the message\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9_-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the 'lambda' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Next": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Pipeline Math": { + "Attribute": "The name of the attribute that contains the result of the math operation\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Math": "An expression that uses one or more existing attributes and must return an integer value\\. \n*Required*: Yes \n*Type*: [String](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-iotanalytics-pipeline-math.html#aws-properties-iotanalytics-pipeline-math) \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the 'math' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Next": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Pipeline RemoveAttributes": { + "Attributes": "A list of 1\\-50 attributes to remove from the message\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the 'removeAttributes' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Next": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTAnalytics::Pipeline SelectAttributes": { + "Attributes": "A list of the attributes to select from the message\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the 'selectAttributes' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Next": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTCoreDeviceAdvisor::SuiteDefinition": { + "SuiteDefinitionConfiguration": "The configuration of the Suite Definition\\. Listed below are the required elements of the `SuiteDefinitionConfiguration`\\. \n**devicePermissionRoleArn** \nThe device permission arn\\. \nThis is a required element\\. \n**Type:** String \n**devices** \nThe list of configured devices under test\\. For more information on devices under test, see [DeviceUnderTest](http://amazonaws.com/iot/latest/apireference/API_iotdeviceadvisor_DeviceUnderTest.html) \nNot a required element\\. \n**Type:** List of devices under test \n**intendedForQualification** \nThe tests intended for qualification in a suite\\. \nNot a required element\\. \n**Type:** Boolean \n**rootGroup** \nThe test suite root group\\. For more information on creating and using root groups see the [Device Advisor workflow](https://docs.aws.amazon.com/iot/latest/developerguide/device-advisor-workflow.html)\\. \nThis is a required element\\. \n**Type:** String \n**suiteDefinitionName** \nThe Suite Definition Configuration name\\. \nThis is a required element\\. \n**Type:** String\n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Metadata that can be used to manage the the Suite Definition\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel": { + "DetectorModelDefinition": "Information that defines how a detector operates\\. \n*Required*: Yes \n*Type*: [DetectorModelDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-detectormodeldefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DetectorModelDescription": "A brief description of the detector model\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DetectorModelName": "The name of the detector model\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9_-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EvaluationMethod": "Information about the order in which events are evaluated and how actions are executed\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BATCH | SERIAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Key": "The value used to identify a detector instance\\. When a device or system sends input, a new detector instance with a unique key value is created\\. AWS IoT Events can continue to route input to its corresponding detector instance based on this identifying information\\. \nThis parameter uses a JSON\\-path expression to select the attribute\\-value pair in the message payload that is used for identification\\. To route the message to the correct detector instance, the device must send a message payload that contains the same attribute\\-value\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^((`[\\w\\- ]+`)|([\\w\\-]+))(\\.((`[\\w- ]+`)|([\\w\\-]+)))*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RoleArn": "The ARN of the role that grants permission to AWS IoT Events to perform its operations\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel Action": { + "ClearTimer": "Information needed to clear the timer\\. \n*Required*: No \n*Type*: [ClearTimer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-cleartimer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DynamoDB": "Writes to the DynamoDB table that you created\\. The default action payload contains all attribute\\-value pairs that have the information about the detector model instance and the event that triggered the action\\. You can customize the [payload](https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html)\\. One column of the DynamoDB table receives all attribute\\-value pairs in the payload that you specify\\. For more information, see [Actions](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-event-actions.html) in * AWS IoT Events Developer Guide*\\. \n*Required*: No \n*Type*: [DynamoDB](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-dynamodb.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DynamoDBv2": "Writes to the DynamoDB table that you created\\. The default action payload contains all attribute\\-value pairs that have the information about the detector model instance and the event that triggered the action\\. You can customize the [payload](https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html)\\. A separate column of the DynamoDB table receives one attribute\\-value pair in the payload that you specify\\. For more information, see [Actions](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-event-actions.html) in * AWS IoT Events Developer Guide*\\. \n*Required*: No \n*Type*: [DynamoDBv2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-dynamodbv2.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Firehose": "Sends information about the detector model instance and the event that triggered the action to an Amazon Kinesis Data Firehose delivery stream\\. \n*Required*: No \n*Type*: [Firehose](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-firehose.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IotEvents": "Sends AWS IoT Events input, which passes information about the detector model instance and the event that triggered the action\\. \n*Required*: No \n*Type*: [IotEvents](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iotevents.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IotSiteWise": "Sends information about the detector model instance and the event that triggered the action to an asset property in AWS IoT SiteWise \\. \n*Required*: No \n*Type*: [IotSiteWise](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iotsitewise.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IotTopicPublish": "Publishes an MQTT message with the given topic to the AWS IoT message broker\\. \n*Required*: No \n*Type*: [IotTopicPublish](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iottopicpublish.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Lambda": "Calls a Lambda function, passing in information about the detector model instance and the event that triggered the action\\. \n*Required*: No \n*Type*: [Lambda](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-lambda.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResetTimer": "Information needed to reset the timer\\. \n*Required*: No \n*Type*: [ResetTimer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-resettimer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SetTimer": "Information needed to set the timer\\. \n*Required*: No \n*Type*: [SetTimer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-settimer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SetVariable": "Sets a variable to a specified value\\. \n*Required*: No \n*Type*: [SetVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-setvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Sns": "Sends an Amazon SNS message\\. \n*Required*: No \n*Type*: [Sns](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-sns.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Sqs": "Sends an Amazon SNS message\\. \n*Required*: No \n*Type*: [Sqs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-sqs.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel AssetPropertyTimestamp": { + "OffsetInNanos": "The nanosecond offset converted from `timeInSeconds`\\. The valid range is between 0\\-999999999\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeInSeconds": "The timestamp, in seconds, in the Unix epoch format\\. The valid range is between 1\\-31556889864403199\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel AssetPropertyValue": { + "Quality": "The quality of the asset property value\\. The value must be `'GOOD'`, `'BAD'`, or `'UNCERTAIN'`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Timestamp": "The timestamp associated with the asset property value\\. The default is the current event time\\. \n*Required*: No \n*Type*: [AssetPropertyTimestamp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertytimestamp.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value to send to an asset property\\. \n*Required*: Yes \n*Type*: [AssetPropertyVariant](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertyvariant.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel AssetPropertyVariant": { + "BooleanValue": "The asset property value is a Boolean value that must be `'TRUE'` or `'FALSE'`\\. You must use an expression, and the evaluated result should be a Boolean value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DoubleValue": "The asset property value is a double\\. You must use an expression, and the evaluated result should be a double\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntegerValue": "The asset property value is an integer\\. You must use an expression, and the evaluated result should be an integer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StringValue": "The asset property value is a string\\. You must use an expression, and the evaluated result should be a string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel ClearTimer": { + "TimerName": "The name of the timer to clear\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel DetectorModelDefinition": { + "InitialStateName": "The state that is entered at the creation of each detector \\(instance\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "States": "Information about the states of the detector\\. \n*Required*: Yes \n*Type*: List of [State](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-state.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel DynamoDB": { + "HashKeyField": "The name of the hash key \\(also called the partition key\\)\\. The `hashKeyField` value must match the partition key of the target DynamoDB table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HashKeyType": "The data type for the hash key \\(also called the partition key\\)\\. You can specify the following values: \n+ `'STRING'` \\- The hash key is a string\\.\n+ `'NUMBER'` \\- The hash key is a number\\.\nIf you don't specify `hashKeyType`, the default value is `'STRING'`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HashKeyValue": "The value of the hash key \\(also called the partition key\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Operation": "The type of operation to perform\\. You can specify the following values: \n+ `'INSERT'` \\- Insert data as a new item into the DynamoDB table\\. This item uses the specified hash key as a partition key\\. If you specified a range key, the item uses the range key as a sort key\\.\n+ `'UPDATE'` \\- Update an existing item of the DynamoDB table with new data\\. This item's partition key must match the specified hash key\\. If you specified a range key, the range key must match the item's sort key\\.\n+ `'DELETE'` \\- Delete an existing item of the DynamoDB table\\. This item's partition key must match the specified hash key\\. If you specified a range key, the range key must match the item's sort key\\.\nIf you don't specify this parameter, AWS IoT Events triggers the `'INSERT'` operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Payload": "Information needed to configure the payload\\. \nBy default, AWS IoT Events generates a standard payload in JSON for any action\\. This action payload contains all attribute\\-value pairs that have the information about the detector model instance and the event triggered the action\\. To configure the action payload, you can use `contentExpression`\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PayloadField": "The name of the DynamoDB column that receives the action payload\\. \nIf you don't specify this parameter, the name of the DynamoDB column is `payload`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RangeKeyField": "The name of the range key \\(also called the sort key\\)\\. The `rangeKeyField` value must match the sort key of the target DynamoDB table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RangeKeyType": "The data type for the range key \\(also called the sort key\\), You can specify the following values: \n+ `'STRING'` \\- The range key is a string\\.\n+ `'NUMBER'` \\- The range key is number\\.\nIf you don't specify `rangeKeyField`, the default value is `'STRING'`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RangeKeyValue": "The value of the range key \\(also called the sort key\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TableName": "The name of the DynamoDB table\\. The `tableName` value must match the table name of the target DynamoDB table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel DynamoDBv2": { + "Payload": "Information needed to configure the payload\\. \nBy default, AWS IoT Events generates a standard payload in JSON for any action\\. This action payload contains all attribute\\-value pairs that have the information about the detector model instance and the event triggered the action\\. To configure the action payload, you can use `contentExpression`\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TableName": "The name of the DynamoDB table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel Event": { + "Actions": "The actions to be performed\\. \n*Required*: No \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Condition": "Optional\\. The Boolean expression that, when TRUE, causes the `actions` to be performed\\. If not present, the actions are performed \\(=TRUE\\)\\. If the expression result is not a Boolean value, the actions are not performed \\(=FALSE\\)\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventName": "The name of the event\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel Firehose": { + "DeliveryStreamName": "The name of the Kinesis Data Firehose delivery stream where the data is written\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Payload": "You can configure the action payload when you send a message to an Amazon Kinesis Data Firehose delivery stream\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Separator": "A character separator that is used to separate records written to the Kinesis Data Firehose delivery stream\\. Valid values are: '\\\\n' \\(newline\\), '\\\\t' \\(tab\\), '\\\\r\\\\n' \\(Windows newline\\), ',' \\(comma\\)\\. \n*Required*: No \n*Type*: String \n*Pattern*: `([\\n\\t])|(\\r\\n)|(,)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel IotEvents": { + "InputName": "The name of the AWS IoT Events input where the data is sent\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Payload": "You can configure the action payload when you send a message to an AWS IoT Events input\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel IotSiteWise": { + "AssetId": "The ID of the asset that has the specified property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EntryId": "A unique identifier for this entry\\. You can use the entry ID to track which data entry causes an error in case of failure\\. The default is a new unique identifier\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PropertyAlias": "The alias of the asset property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PropertyId": "The ID of the asset property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PropertyValue": "The value to send to the asset property\\. This value contains timestamp, quality, and value \\(TQV\\) information\\. \n*Required*: Yes \n*Type*: [AssetPropertyValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertyvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel IotTopicPublish": { + "MqttTopic": "The MQTT topic of the message\\. You can use a string expression that includes variables \\(`$variable.`\\) and input values \\(`$input..`\\) as the topic string\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Payload": "You can configure the action payload when you publish a message to an AWS IoT Core topic\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel Lambda": { + "FunctionArn": "The ARN of the Lambda function that is executed\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Payload": "You can configure the action payload when you send a message to a Lambda function\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel OnEnter": { + "Events": "Specifies the actions that are performed when the state is entered and the `condition` is `TRUE`\\. \n*Required*: No \n*Type*: List of [Event](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-event.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel OnExit": { + "Events": "Specifies the `actions` that are performed when the state is exited and the `condition` is `TRUE`\\. \n*Required*: No \n*Type*: List of [Event](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-event.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel OnInput": { + "Events": "Specifies the actions performed when the `condition` evaluates to TRUE\\. \n*Required*: No \n*Type*: List of [Event](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-event.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitionEvents": "Specifies the actions performed, and the next state entered, when a `condition` evaluates to TRUE\\. \n*Required*: No \n*Type*: List of [TransitionEvent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-transitionevent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel Payload": { + "ContentExpression": "The content of the payload\\. You can use a string expression that includes quoted strings \\(`''`\\), variables \\(`$variable.`\\), input values \\(`$input..`\\), string concatenations, and quoted strings that contain `${}` as the content\\. The recommended maximum size of a content expression is 1 KB\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The value of the payload type can be either `STRING` or `JSON`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `JSON | STRING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel ResetTimer": { + "TimerName": "The name of the timer to reset\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel SetTimer": { + "DurationExpression": "The duration of the timer, in seconds\\. You can use a string expression that includes numbers, variables \\(`$variable.`\\), and input values \\(`$input..`\\) as the duration\\. The range of the duration is 1\\-31622400 seconds\\. To ensure accuracy, the minimum duration is 60 seconds\\. The evaluated result of the duration is rounded down to the nearest whole number\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Seconds": "The number of seconds until the timer expires\\. The minimum value is 60 seconds to ensure accuracy\\. The maximum value is 31622400 seconds\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `31622400` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimerName": "The name of the timer\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel SetVariable": { + "Value": "The new value of the variable\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VariableName": "The name of the variable\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel Sns": { + "Payload": "You can configure the action payload when you send a message as an Amazon SNS push notification\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetArn": "The ARN of the Amazon SNS target where the message is sent\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel Sqs": { + "Payload": "You can configure the action payload when you send a message to an Amazon SQS queue\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueueUrl": "The URL of the SQS queue where the data is written\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UseBase64": "Set this to TRUE if you want the data to be base\\-64 encoded before it is written to the queue\\. Otherwise, set this to FALSE\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel State": { + "OnEnter": "When entering this state, perform these `actions` if the `condition` is TRUE\\. \n*Required*: No \n*Type*: [OnEnter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-onenter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OnExit": "When exiting this state, perform these `actions` if the specified `condition` is `TRUE`\\. \n*Required*: No \n*Type*: [OnExit](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-onexit.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OnInput": "When an input is received and the `condition` is TRUE, perform the specified `actions`\\. \n*Required*: No \n*Type*: [OnInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-oninput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StateName": "The name of the state\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::DetectorModel TransitionEvent": { + "Actions": "The actions to be performed\\. \n*Required*: No \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Condition": "Required\\. A Boolean expression that when TRUE causes the actions to be performed and the `nextState` to be entered\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventName": "The name of the transition event\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NextState": "The next state to enter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::Input": { + "InputDefinition": "The definition of the input\\. \n*Required*: Yes \n*Type*: [InputDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-input-inputdefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputDescription": "A brief description of the input\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputName": "The name of the input\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::Input Attribute": { + "JsonPath": "An expression that specifies an attribute\\-value pair in a JSON structure\\. Use this to specify an attribute from the JSON payload that is made available by the input\\. Inputs are derived from messages sent to AWS IoT Events \\(`BatchPutMessage`\\)\\. Each such message contains a JSON payload\\. The attribute \\(and its paired value\\) specified here are available for use in the `condition` expressions used by detectors\\. \nSyntax: `....` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^((`[\\w\\- ]+`)|([\\w\\-]+))(\\.((`[\\w- ]+`)|([\\w\\-]+)))*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTEvents::Input InputDefinition": { + "Attributes": "The attributes from the JSON payload that are made available by the input\\. Inputs are derived from messages sent to the AWS IoT Events system using `BatchPutMessage`\\. Each such message contains a JSON payload, and those attributes \\(and their paired values\\) specified here are available for use in the `condition` expressions used by detectors that monitor this input\\. \n*Required*: Yes \n*Type*: List of [Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-input-attribute.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTFleetHub::Application": { + "ApplicationDescription": "An optional description of the web application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `^[ -~]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ApplicationName": "The name of the web application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[ -~]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the role that the web application assumes when it interacts with AWS IoT Core\\. \nThe name of the role must be in the form `FleetHub_random_string`\\.\nPattern: `^arn:[!-~]+$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A set of key/value pairs that you can use to manage the web application resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::AccessPolicy": { + "AccessPolicyIdentity": "The identity for this access policy\\. Choose an AWS SSO user, an AWS SSO group, or an IAM user\\. \n*Required*: Yes \n*Type*: [AccessPolicyIdentity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-accesspolicyidentity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AccessPolicyPermission": "The permission level for this access policy\\. Choose either a `ADMINISTRATOR` or `VIEWER`\\. Note that a project `ADMINISTRATOR` is also known as a project owner\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AccessPolicyResource": "The AWS IoT SiteWise Monitor resource for this access policy\\. Choose either a portal or a project\\. \n*Required*: Yes \n*Type*: [AccessPolicyResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-accesspolicyresource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::AccessPolicy AccessPolicyIdentity": { + "IamRole": "An IAM role identity\\. \n*Required*: No \n*Type*: [IamRole](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-iamrole.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IamUser": "An IAM user identity\\. \n*Required*: No \n*Type*: [IamUser](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-iamuser.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "User": "The AWS SSO user to which this access policy maps\\. \n*Required*: No \n*Type*: [User](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-user.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::AccessPolicy AccessPolicyResource": { + "Portal": "The AWS IoT SiteWise Monitor portal for this access policy\\. \n*Required*: No \n*Type*: [Portal](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-portal.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Project": "The AWS IoT SiteWise Monitor project for this access policy\\. \n*Required*: No \n*Type*: [Project](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-project.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::AccessPolicy IamRole": { + "arn": "The ARN of the IAM role\\. For more information, see [IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::AccessPolicy IamUser": { + "arn": "The ARN of the IAM user\\. For more information, see [IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) in the *IAM User Guide*\\. \nIf you delete the IAM user, access policies that contain this identity include an empty `arn`\\. You can delete the access policy for the IAM user that no longer exists\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::AccessPolicy Portal": { + "id": "The ID of the portal\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::AccessPolicy Project": { + "id": "The ID of the project\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::AccessPolicy User": { + "id": "The ID of the user\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::Asset": { + "AssetHierarchies": "A list of asset hierarchies that each contain a `hierarchyLogicalId`\\. A hierarchy specifies allowed parent/child asset relationships\\. \n*Required*: No \n*Type*: List of [AssetHierarchy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assethierarchy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AssetModelId": "The ID of the asset model from which to create the asset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AssetName": "A unique, friendly name for the asset\\. \nThe maximum length is 256 characters with the pattern `[^\\u0000-\\u001F\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AssetProperties": "The list of asset properties for the asset\\. \nThis object doesn't include properties that you define in composite models\\. You can find composite model properties in the `assetCompositeModels` object\\. \n*Required*: No \n*Type*: List of [AssetProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assetproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A list of key\\-value pairs that contain metadata for the asset\\. For more information, see [Tagging your AWS IoT SiteWise resources](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::Asset AssetHierarchy": { + "ChildAssetId": "The Id of the child asset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogicalId": "The `LogicalID` of the hierarchy\\. This ID is a `hierarchyLogicalId`\\. \nThe maximum length is 256 characters, with the pattern `[^\\u0000-\\u001F\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::Asset AssetProperty": { + "Alias": "The property alias that identifies the property, such as an OPC\\-UA server data stream path \\(for example, `/company/windfarm/3/turbine/7/temperature`\\)\\. For more information, see [Mapping industrial data streams to asset properties](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html) in the *AWS IoT SiteWise User Guide*\\. \nThe property alias must have 1\\-1000 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogicalId": "The `LogicalID` of the asset property\\. \nThe maximum length is 256 characters, with the pattern `[^\\u0000-\\u001F\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotificationState": "The MQTT notification state \\(enabled or disabled\\) for this asset property\\. When the notification state is enabled, AWS IoT SiteWise publishes property value updates to a unique MQTT topic\\. For more information, see [Interacting with other services](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/interact-with-other-services.html) in the *AWS IoT SiteWise User Guide*\\. \nIf you omit this parameter, the notification state is set to `DISABLED`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::AssetModel": { + "AssetModelCompositeModels": "The composite asset models that are part of this asset model\\. Composite asset models are asset models that contain specific properties\\. Each composite model has a type that defines the properties that the composite model supports\\. You can use composite asset models to define alarms on this asset model\\. \n*Required*: No \n*Type*: List of [AssetModelCompositeModel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AssetModelDescription": "A description for the asset model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AssetModelHierarchies": "The hierarchy definitions of the asset model\\. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model\\. For more information, see [Defining relationships between assets](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html) in the *AWS IoT SiteWiseUser Guide*\\. \nYou can specify up to 10 hierarchies per asset model\\. For more information, see [Quotas](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [AssetModelHierarchy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelhierarchy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AssetModelName": "A unique, friendly name for the asset model\\. \nThe maximum length is 256 characters with the pattern `[^\\u0000-\\u001F\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AssetModelProperties": "The property definitions of the asset model\\. For more information, see [Defining data properties](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html) in the *AWS IoT SiteWise User Guide*\\. \nYou can specify up to 200 properties per asset model\\. For more information, see [Quotas](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [AssetModelProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A list of key\\-value pairs that contain metadata for the asset\\. For more information, see [Tagging your AWS IoT SiteWise resources](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::AssetModel AssetModelCompositeModel": { + "CompositeModelProperties": "The asset property definitions for this composite model\\. \n*Required*: No \n*Type*: List of [AssetModelProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the composite model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the composite model\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of the composite model\\. For alarm composite models, this type is `AWS/ALARM`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::AssetModel AssetModelHierarchy": { + "ChildAssetModelId": "The Id of the asset model\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogicalId": "The `LogicalID` of the asset model hierarchy\\. This ID is a `hierarchyLogicalId`\\. \nThe maximum length is 256 characters, with the pattern `[^\\u0000-\\u001F\\u007F]+` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the asset model hierarchy\\. \nThe maximum length is 256 characters with the pattern `[^\\u0000-\\u001F\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::AssetModel AssetModelProperty": { + "DataType": "The data type of the asset model property\\. The value can be `STRING`, `INTEGER`, `DOUBLE`, `BOOLEAN`, or `STRUCT`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataTypeSpec": "The data type of the structure for this property\\. This parameter exists on properties that have the `STRUCT` data type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogicalId": "The `LogicalID` of the asset model property\\. \nThe maximum length is 256 characters, with the pattern `[^\\\\u0000-\\\\u001F\\\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the asset model property\\. \nThe maximum length is 256 characters with the pattern `[^\\u0000-\\u001F\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "Contains a property type, which can be one of `attribute`, `measurement`, `metric`, or `transform`\\. \n*Required*: Yes \n*Type*: [PropertyType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-propertytype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Unit": "The unit of the asset model property, such as `Newtons` or `RPM`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::AssetModel Attribute": { + "DefaultValue": "The default value of the asset model property attribute\\. All assets that you create from the asset model contain this attribute value\\. You can update an attribute's value after you create an asset\\. For more information, see [Updating attribute values](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::AssetModel ExpressionVariable": { + "Name": "The friendly name of the variable to be used in the expression\\. \nThe maximum length is 64 characters with the pattern `^[a-z][a-z0-9_]*$`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The variable that identifies an asset property from which to use values\\. \n*Required*: Yes \n*Type*: [VariableValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::AssetModel Metric": { + "Expression": "The mathematical expression that defines the metric aggregation function\\. You can specify up to 10 variables per expression\\. You can specify up to 10 functions per expression\\. \nFor more information, see [Quotas](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Variables": "The list of variables used in the expression\\. \n*Required*: Yes \n*Type*: List of [ExpressionVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-expressionvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Window": "The window \\(time interval\\) over which AWS IoT SiteWise computes the metric's aggregation expression\\. AWS IoT SiteWise computes one data point per `window`\\. \n*Required*: Yes \n*Type*: [MetricWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metricwindow.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::AssetModel MetricWindow": { + "Tumbling": "The tumbling time interval window\\. \n*Required*: No \n*Type*: [TumblingWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-tumblingwindow.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::AssetModel PropertyType": { + "Attribute": "Specifies an asset attribute property\\. An attribute generally contains static information, such as the serial number of an [industrial IoT](https://en.wikipedia.org/wiki/Internet_of_things#Industrial_applications) wind turbine\\. \nThis is required if the `TypeName` is `Attribute` and has a `DefaultValue`\\. \n*Required*: No \n*Type*: [Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-attribute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Metric": "Specifies an asset metric property\\. A metric contains a mathematical expression that uses aggregate functions to process all input data points over a time interval and output a single data point, such as to calculate the average hourly temperature\\. \nThis is required if the `TypeName` is `Metric`\\. \n*Required*: No \n*Type*: [Metric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Transform": "Specifies an asset transform property\\. A transform contains a mathematical expression that maps a property's data points from one form to another, such as a unit conversion from Celsius to Fahrenheit\\. \nThis is required if the `TypeName` is `Transform`\\. \n*Required*: No \n*Type*: [Transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-transform.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TypeName": "The type of property type, which can be one of `Attribute`, `Measurement`, `Metric`, or `Transform`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::AssetModel Transform": { + "Expression": "The mathematical expression that defines the transformation function\\. You can specify up to 10 variables per expression\\. You can specify up to 10 functions per expression\\. \nFor more information, see [Quotas](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Variables": "The list of variables used in the expression\\. \n*Required*: Yes \n*Type*: List of [ExpressionVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-expressionvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::AssetModel TumblingWindow": { + "Interval": "The time interval for the tumbling window\\. The interval time must be between 1 minute and 1 week\\. \n AWS IoT SiteWise computes the `1w` interval the end of Sunday at midnight each week \\(UTC\\), the `1d` interval at the end of each day at midnight \\(UTC\\), the `1h` interval at the end of each hour, and so on\\. \nWhen AWS IoT SiteWise aggregates data points for metric computations, the start of each interval is exclusive and the end of each interval is inclusive\\. AWS IoT SiteWise places the computed data point at the end of the interval\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Offset": "The offset for the tumbling window\\. The `offset` parameter accepts the following: \n+ The offset time\\." + }, + "AWS::IoTSiteWise::AssetModel VariableValue": { + "HierarchyLogicalId": "The `LogicalID` of the hierarchy to query for the `PropertyLogicalID`\\. \nYou use a `hierarchyLogicalID` instead of a model ID because you can have several hierarchies using the same model and therefore the same property\\. For example, you might have separately grouped assets that come from the same asset model\\. For more information, see [Defining relationships between assets](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PropertyLogicalId": "The `LogicalID` of the property to use as the variable\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::Dashboard": { + "DashboardDefinition": "The dashboard definition specified in a JSON literal\\. For detailed information, see [Creating dashboards \\(CLI\\)](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DashboardDescription": "A description for the dashboard\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DashboardName": "A friendly name for the dashboard\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProjectId": "The ID of the project in which to create the dashboard\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A list of key\\-value pairs that contain metadata for the dashboard\\. For more information, see [Tagging your AWS IoT SiteWise resources](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::Gateway": { + "GatewayCapabilitySummaries": "A list of gateway capability summaries that each contain a namespace and status\\. Each gateway capability defines data sources for the gateway\\. To retrieve a capability configuration's definition, use [DescribeGatewayCapabilityConfiguration](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeGatewayCapabilityConfiguration.html)\\. \n*Required*: No \n*Type*: List of [GatewayCapabilitySummary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewaycapabilitysummary.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GatewayName": "A unique, friendly name for the gateway\\. \nThe maximum length is 256 characters with the pattern `[^\\u0000-\\u001F\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GatewayPlatform": "The gateway's platform\\. You can only specify one platform in a gateway\\. \n*Required*: Yes \n*Type*: [GatewayPlatform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewayplatform.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A list of key\\-value pairs that contain metadata for the gateway\\. For more information, see [Tagging your AWS IoT SiteWise resources](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::Gateway GatewayCapabilitySummary": { + "CapabilityConfiguration": "The JSON document that defines the configuration for the gateway capability\\. For more information, see [Configuring data sources \\(CLI\\)](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/configure-sources.html#configure-source-cli) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CapabilityNamespace": "The namespace of the capability configuration\\. For example, if you configure OPC\\-UA sources from the AWS IoT SiteWise console, your OPC\\-UA capability configuration has the namespace `iotsitewise:opcuacollector:version`, where `version` is a number such as `1`\\. \nThe maximum length is 512 characters with the pattern `^[a-zA-Z]+:[a-zA-Z]+:[0-9]+$`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::Gateway GatewayPlatform": { + "Greengrass": "A gateway that runs on AWS IoT Greengrass\\. \n*Required*: No \n*Type*: [Greengrass](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-greengrass.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GreengrassV2": "A gateway that runs on AWS IoT Greengrass V2\\. \n*Required*: No \n*Type*: [GreengrassV2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-greengrassv2.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IoTSiteWise::Gateway Greengrass": { + "GroupArn": "The [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the Greengrass group\\. For more information about how to find a group's ARN, see [ListGroups](https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html) and [GetGroup](https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html) in the *AWS IoT Greengrass API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IoTSiteWise::Gateway GreengrassV2": { + "CoreDeviceThingName": "The name of the AWS IoT thing for your AWS IoT Greengrass V2 core device\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::IoTSiteWise::Portal": { + "Alarms": "Contains the configuration information of an alarm created in an AWS IoT SiteWise Monitor portal\\. You can use the alarm to monitor an asset property and get notified when the asset property value is outside a specified range\\. For more information, see [Monitoring with alarms](https://docs.aws.amazon.com/iot-sitewise/latest/appguide/monitor-alarms.html) in the * AWS IoT SiteWise Application Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotificationSenderEmail": "The email address that sends alarm notifications\\. \nIf you use the [AWS IoT Events managed Lambda function](https://docs.aws.amazon.com/iotevents/latest/developerguide/lambda-support.html) to manage your emails, you must [verify the sender email address in Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-email-addresses.html)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PortalAuthMode": "The service to use to authenticate users to the portal\\. Choose from the following options: \n+ `SSO` \u2013 The portal uses AWS Single Sign\\-On to authenticate users and manage user permissions\\. Before you can create a portal that uses AWS SSO, you must enable AWS SSO\\. For more information, see [Enabling AWS SSO](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso) in the *AWS IoT SiteWise User Guide*\\. This option is only available in AWS Regions other than the China Regions\\.\n+ `IAM` \u2013 The portal uses AWS Identity and Access Management \\(IAM\\) to authenticate users and manage user permissions\\.\nYou can't change this value after you create a portal\\. \nDefault: `SSO` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PortalContactEmail": "The AWS administrator's contact email address\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PortalDescription": "A description for the portal\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PortalName": "A friendly name for the portal\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf\\. For more information, see [Using service roles for AWS IoT SiteWise Monitor](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A list of key\\-value pairs that contain metadata for the portal\\. For more information, see [Tagging your AWS IoT SiteWise resources](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTSiteWise::Project": { + "AssetIds": "A list that contains the IDs of each asset associated with the project\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PortalId": "The ID of the portal in which to create the project\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProjectDescription": "A description for the project\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProjectName": "A friendly name for the project\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A list of key\\-value pairs that contain metadata for the project\\. For more information, see [Tagging your AWS IoT SiteWise resources](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTThingsGraph::FlowTemplate": { + "CompatibleNamespaceVersion": "The version of the user's namespace against which the workflow was validated\\. Use this value in your system instance\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Definition": "A workflow's definition document\\. \n*Required*: Yes \n*Type*: [DefinitionDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotthingsgraph-flowtemplate-definitiondocument.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTThingsGraph::FlowTemplate DefinitionDocument": { + "Language": "The language used to define the entity\\. `GRAPHQL` is the only valid value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Text": "The GraphQL text that defines the entity\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::Destination": { + "Description": "The description of the new resource\\. Maximum length is 2048 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Expression": "The rule name to send messages to\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExpressionType": "The type of value in `Expression`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `MqttTopic | RuleName` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the new resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9-_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RoleArn": "The ARN of the IAM Role that authorizes the destination\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::DeviceProfile": { + "LoRaWAN": "LoRaWAN device profile object\\. \n*Required*: No \n*Type*: [LoRaWANDeviceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-deviceprofile-lorawandeviceprofile.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the new resource\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::DeviceProfile LoRaWANDeviceProfile": { + "ClassBTimeout": "The ClassBTimeout value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClassCTimeout": "The ClassCTimeout value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MacVersion": "The MAC version \\(such as OTAA 1\\.1 or OTAA 1\\.0\\.3\\) to use with this device profile\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxDutyCycle": "The MaxDutyCycle value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxEirp": "The MaxEIRP value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `15` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PingSlotDr": "The PingSlotDR value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `15` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PingSlotFreq": "The PingSlotFreq value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1000000` \n*Maximum*: `16700000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PingSlotPeriod": "The PingSlotPeriod value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `128` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegParamsRevision": "The version of regional parameters\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RfRegion": "The frequency band \\(RFRegion\\) value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Supports32BitFCnt": "The Supports32BitFCnt value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SupportsClassB": "The SupportsClassB value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SupportsClassC": "The SupportsClassC value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SupportsJoin": "The SupportsJoin value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::FuotaTask": { + "AssociateMulticastGroup": "The ID of the multicast group to associate with a FUOTA task\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AssociateWirelessDevice": "The ID of the wireless device to associate with a multicast group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the new resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisassociateMulticastGroup": "The ID of the multicast group to disassociate from a FUOTA task\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisassociateWirelessDevice": "The ID of the wireless device to disassociate from a FUOTA task\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FirmwareUpdateImage": "The S3 URI points to a firmware update image that is to be used with a FUOTA task\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FirmwareUpdateRole": "The firmware update role that is to be used with a FUOTA task\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoRaWAN": "The LoRaWAN information used with a FUOTA task\\. \n*Required*: Yes \n*Type*: [LoRaWAN](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-fuotatask-lorawan.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of a FUOTA task\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::FuotaTask LoRaWAN": { + "RfRegion": "The frequency band \\(RFRegion\\) value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StartTime": "Start time of a FUOTA task\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::MulticastGroup": { + "AssociateWirelessDevice": "The ID of the wireless device to associate with a multicast group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the multicast group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisassociateWirelessDevice": "The ID of the wireless device to disassociate from a multicast group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoRaWAN": "The LoRaWAN information that is to be used with the multicast group\\. \n*Required*: Yes \n*Type*: [LoRaWAN](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-multicastgroup-lorawan.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the multicast group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::MulticastGroup LoRaWAN": { + "DlClass": "DlClass for LoRaWAN\\. Valid values are ClassB and ClassC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumberOfDevicesInGroup": "Number of devices that are associated to the multicast group\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumberOfDevicesRequested": "Number of devices that are requested to be associated with the multicast group\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RfRegion": "The frequency band \\(RFRegion\\) value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::PartnerAccount": { + "PartnerAccountId": "The ID of the partner account to update\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Sidewalk": "The Sidewalk account credentials\\. \n*Required*: No \n*Type*: [SidewalkAccountInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-partneraccount-sidewalkaccountinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::PartnerAccount SidewalkAccountInfo": { + "AppServerPrivateKey": "The Sidewalk application server private key\\. The application server private key is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the application server private key by storing the value in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Pattern*: `[a-fA-F0-9]{64}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::PartnerAccount SidewalkUpdateAccount": { + "AppServerPrivateKey": "The new Sidewalk application server private key\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Pattern*: `[a-fA-F0-9]{64}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::ServiceProfile": { + "LoRaWAN": "LoRaWAN service profile object\\. \n*Required*: No \n*Type*: [LoRaWANServiceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the new resource\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::ServiceProfile LoRaWANServiceProfile": { + "AddGwMetadata": "The AddGWMetaData value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ChannelMask": "The ChannelMask value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DevStatusReqFreq": "The DevStatusReqFreq value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DlBucketSize": "The DLBucketSize value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DlRate": "The DLRate value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DlRatePolicy": "The DLRatePolicy value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DrMax": "The DRMax value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `15` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DrMin": "The DRMin value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `15` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HrAllowed": "The HRAllowed value that describes whether handover roaming is allowed\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinGwDiversity": "The MinGwDiversity value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NwkGeoLoc": "The NwkGeoLoc value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrAllowed": "The PRAllowed value that describes whether passive roaming is allowed\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RaAllowed": "The RAAllowed value that describes whether roaming activation is allowed\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReportDevStatusBattery": "The ReportDevStatusBattery value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReportDevStatusMargin": "The ReportDevStatusMargin value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetPer": "The TargetPer value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UlBucketSize": "The UlBucketSize value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UlRate": "The ULRate value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UlRatePolicy": "The ULRatePolicy value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::TaskDefinition": { + "AutoCreateTasks": "Whether to automatically create tasks using this task definition for all gateways with the specified current version\\. If `false`, the task must me created by calling `CreateWirelessGatewayTask`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the new resource\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Update": "Information about the gateways to update\\. \n*Required*: No \n*Type*: [UpdateWirelessGatewayTaskCreate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-updatewirelessgatewaytaskcreate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::TaskDefinition LoRaWANGatewayVersion": { + "Model": "The model number of the wireless gateway\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PackageVersion": "The version of the wireless gateway firmware\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Station": "The basic station version of the wireless gateway\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::TaskDefinition LoRaWANUpdateGatewayTaskCreate": { + "CurrentVersion": "The version of the gateways that should receive the update\\. \n*Required*: No \n*Type*: [LoRaWANGatewayVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawangatewayversion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SigKeyCrc": "The CRC of the signature private key to check\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UpdateSignature": "The signature used to verify the update firmware\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UpdateVersion": "The firmware version to update the gateway to\\. \n*Required*: No \n*Type*: [LoRaWANGatewayVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawangatewayversion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::TaskDefinition LoRaWANUpdateGatewayTaskEntry": { + "CurrentVersion": "The version of the gateways that should receive the update\\. \n*Required*: No \n*Type*: [LoRaWANGatewayVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawangatewayversion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UpdateVersion": "The firmware version to update the gateway to\\. \n*Required*: No \n*Type*: [LoRaWANGatewayVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawangatewayversion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::TaskDefinition UpdateWirelessGatewayTaskCreate": { + "LoRaWAN": "The properties that relate to the LoRaWAN wireless gateway\\. \n*Required*: No \n*Type*: [LoRaWANUpdateGatewayTaskCreate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawanupdategatewaytaskcreate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UpdateDataRole": "The IAM role used to read data from the S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UpdateDataSource": "The link to the S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::WirelessDevice": { + "Description": "The description of the new resource\\. Maximum length is 2048\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationName": "The name of the destination to assign to the new wireless device\\. Can have only have alphanumeric, \\- \\(hyphen\\) and \\_ \\(underscore\\) characters and it can't have any spaces\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9-_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LastUplinkReceivedAt": "The date and time when the most recent uplink was received\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoRaWAN": "The device configuration information to use to create the wireless device\\. Must be at least one of OtaaV10x, OtaaV11, AbpV11, or AbpV10x\\. \n*Required*: No \n*Type*: [LoRaWANDevice](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-lorawandevice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the new resource\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThingArn": "The ARN of the thing to associate with the wireless device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The wireless device type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `LoRaWAN | Sidewalk` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::WirelessDevice AbpV10x": { + "DevAddr": "The DevAddr value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{8}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SessionKeys": "Session keys for ABP v1\\.0\\.x \n*Required*: Yes \n*Type*: [SessionKeysAbpV10x](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-sessionkeysabpv10x.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::WirelessDevice AbpV11": { + "DevAddr": "The DevAddr value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{8}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SessionKeys": "Session keys for ABP v1\\.1\\. \n*Required*: Yes \n*Type*: [SessionKeysAbpV11](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-sessionkeysabpv11.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::WirelessDevice LoRaWANDevice": { + "AbpV10x": "LoRaWAN object for create APIs\\. \n*Required*: No \n*Type*: [AbpV10x](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-abpv10x.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AbpV11": "ABP device object for create APIs for v1\\.1\\. \n*Required*: No \n*Type*: [AbpV11](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-abpv11.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DevEui": "The DevEUI value\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{16}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeviceProfileId": "The ID of the device profile for the new wireless device\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OtaaV10x": "OTAA device object for create APIs for v1\\.0\\.x \n*Required*: No \n*Type*: [OtaaV10x](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-otaav10x.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OtaaV11": "OTAA device object for v1\\.1 for create APIs\\. \n*Required*: No \n*Type*: [OtaaV11](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-otaav11.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceProfileId": "The ID of the service profile\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::WirelessDevice OtaaV10x": { + "AppEui": "The AppEUI value, with pattern of `[a-fA-F0-9]{16}`\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{16}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AppKey": "The AppKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the AppKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::WirelessDevice OtaaV11": { + "AppKey": "The AppKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the AppKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JoinEui": "The JoinEUI value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{16}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NwkKey": "The NwkKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the NwkKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::WirelessDevice SessionKeysAbpV10x": { + "AppSKey": "The AppSKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the AppSKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NwkSKey": "The NwkSKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the NwkSKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::WirelessDevice SessionKeysAbpV11": { + "AppSKey": "The AppSKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the AppSKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FNwkSIntKey": "The FNwkSIntKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the FNwkSIntKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NwkSEncKey": "The NwkSEncKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the NwkSEncKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SNwkSIntKey": "The SNwkSIntKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the SNwkSIntKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::WirelessGateway": { + "Description": "The description of the new resource\\. The maximum length is 2048 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LastUplinkReceivedAt": "The date and time when the most recent uplink was received\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoRaWAN": "The gateway configuration information to use to create the wireless gateway\\. \n*Required*: Yes \n*Type*: [LoRaWANGateway](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessgateway-lorawangateway.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the new resource\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThingArn": "The ARN of the thing to associate with the wireless gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IoTWireless::WirelessGateway LoRaWANGateway": { + "GatewayEui": "The gateway's EUI value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^(([0-9A-Fa-f]{2}-){7}|([0-9A-Fa-f]{2}:){7}|([0-9A-Fa-f]{2}\\s){7}|([0-9A-Fa-f]{2}){7})([0-9A-Fa-f]{2})$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RfRegion": "The frequency band \\(RFRegion\\) value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KMS::Alias": { + "AliasName": "Specifies the alias name\\. This value must begin with `alias/` followed by a name, such as `alias/ExampleAlias`\\. \nIf you change the value of a `Replacement` property, such as `AliasName`, the existing alias is deleted and a new alias is created for the specified KMS key\\. This change can disrupt applications that use the alias\\. It can also allow or deny access to a KMS key affected by attribute\\-based access control \\(ABAC\\)\\.\nThe alias must be string of 1\\-256 characters\\. It can contain only alphanumeric characters, forward slashes \\(/\\), underscores \\(\\_\\), and dashes \\(\\-\\)\\. The alias name cannot begin with `alias/aws/`\\. The `alias/aws/` prefix is reserved for [AWS managed keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk)\\. \n*Pattern*: `alias/^[a-zA-Z0-9/_-]+$` \n*Minimum*: `1` \n*Maximum*: `256` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TargetKeyId": "Associates the alias with the specified [customer managed key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)\\. The KMS key must be in the same AWS account and Region\\. \nA valid key ID is required\\. If you supply a null or empty string value, this operation returns an error\\. \nFor help finding the key ID and ARN, see [Finding the key ID and ARN](https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html#find-cmk-id-arn) in the *AWS Key Management Service Developer Guide*\\. \nSpecify the key ID or the key ARN of the KMS key\\. \nFor example: \n+ Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` \n+ Key ARN: `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` \nTo get the key ID and key ARN for a KMS key, use [ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html) or [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KMS::Key": { + "Description": "A description of the KMS key\\. Use a description that helps you to distinguish this KMS key from others in the account, such as its intended use\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `8192` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableKeyRotation": "Enables automatic rotation of the key material for the specified KMS key\\. By default, automatic key rotation is not enabled\\. \nAWS KMS does not support automatic key rotation on asymmetric KMS keys\\. For asymmetric KMS keys, omit the `EnableKeyRotation` property or set it to `false`\\. \nWhen you enable automatic rotation, AWS KMS automatically creates new key material for the KMS key 365 days after the enable \\(or reenable\\) date and every 365 days thereafter\\. AWS KMS retains all key material until you delete the KMS key\\. For detailed information about automatic key rotation, see [Rotating KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) in the *AWS Key Management Service Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Specifies whether the KMS key is enabled\\. Disabled KMS keys cannot be used in cryptographic operations\\. \nWhen `Enabled` is `true`, the *key state* of the KMS key is `Enabled`\\. When `Enabled` is `false`, the key state of the KMS key is `Disabled`\\. The default value is `true`\\. \nThe actual key state of the KMS key might be affected by actions taken outside of CloudFormation, such as running the [EnableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKey.html), [DisableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html), or [ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) operations\\. \nFor information about the key states of a KMS key, see [Key state: Effect on your KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the *AWS Key Management Service Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeyPolicy": "The key policy that authorizes use of the KMS key\\. The key policy must conform to the following rules\\. \n+ The key policy must allow the caller to make a subsequent [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) request on the KMS key\\. This reduces the risk that the KMS key becomes unmanageable\\. For more information, refer to the scenario in the [Default key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam) section of the * *AWS Key Management Service Developer Guide* *\\.\n+ Each statement in the key policy must contain one or more principals\\. The principals in the key policy must exist and be visible to AWS KMS\\. When you create a new AWS principal \\(for example, an IAM user or role\\), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to AWS KMS\\. For more information, see [Changes that I make are not always immediately visible](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency) in the *AWS Identity and Access Management User Guide*\\.\n+ The key policy size limit is 32 kilobytes \\(32768 bytes\\)\\.\nIf you are unsure of which policy to use, consider the *default key policy*\\. This is the key policy that AWS KMS applies to KMS keys that are created by using the CreateKey API with no specified key policy\\. It gives the AWS account that owns the key permission to perform all operations on the key\\. It also allows you write IAM policies to authorize access to the key\\. For details, see [Default key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default) in the *AWS Key Management Service Developer Guide*\\. \n*Minimum*: `1` \n*Maximum*: `32768` \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeySpec": "Specifies the type of KMS key to create\\. The default value, `SYMMETRIC_DEFAULT`, creates a KMS key with a 256\\-bit symmetric key for encryption and decryption\\. For help choosing a key spec for your KMS key, see [How to choose Your KMS key configuration](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html) in the *AWS Key Management Service Developer Guide*\\. \nThe `KeySpec` property determines whether the KMS key contains a symmetric key or an asymmetric key pair\\. It also determines the encryption algorithms or signing algorithms that the KMS key supports\\. You can't change the `KeySpec` after the KMS key is created\\. To further restrict the algorithms that can be used with the KMS key, use a condition key in its key policy or IAM policy\\. For more information, see [kms:EncryptionAlgorithm](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-algorithm) or [kms:Signing Algorithm](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-signing-algorithm) in the *AWS Key Management Service Developer Guide*\\. \nIf you change the `KeySpec` of an existing KMS key, the existing KMS key is scheduled for deletion and a new KMS key is created with the specified `KeySpec` value\\. While the scheduled deletion is pending, you can't use the existing KMS key\\. Unless you [cancel the scheduled deletion](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#deleting-keys-scheduling-key-deletion) of the KMS key outside of CloudFormation, all data encrypted under the existing KMS key becomes unrecoverable when the KMS key is deleted\\.\n[AWS services that are integrated with AWS KMS](http://aws.amazon.com/kms/features/#AWS_Service_Integration) use symmetric KMS keys to protect your data\\. These services do not support asymmetric KMS keys\\. For help determining whether a KMS key is symmetric or asymmetric, see [Identifying Symmetric and Asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html) in the *AWS Key Management Service Developer Guide*\\.\nAWS KMS supports the following key specs for KMS keys: \n+ Symmetric key \\(default\\)\n + `SYMMETRIC_DEFAULT` \\(AES\\-256\\-GCM\\)\n+ Asymmetric RSA key pairs\n + `RSA_2048`\n + `RSA_3072`\n + `RSA_4096`\n+ Asymmetric NIST\\-recommended elliptic curve key pairs\n + `ECC_NIST_P256` \\(secp256r1\\)\n + `ECC_NIST_P384` \\(secp384r1\\)\n + `ECC_NIST_P521` \\(secp521r1\\)\n+ Other asymmetric elliptic curve key pairs\n + `ECC_SECG_P256K1` \\(secp256k1\\), commonly used for cryptocurrencies\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KeyUsage": "Determines the [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) for which you can use the KMS key\\. The default value is `ENCRYPT_DECRYPT`\\. This property is required only for asymmetric KMS keys\\. You can't change the `KeyUsage` value after the KMS key is created\\. \nIf you change the `KeyUsage` of an existing KMS key, the existing KMS key is scheduled for deletion and a new KMS key is created with the specified `KeyUsage` value\\. While the scheduled deletion is pending, you can't use the existing KMS key\\. Unless you [cancel the scheduled deletion](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#deleting-keys-scheduling-key-deletion) of the KMS key outside of CloudFormation, all data encrypted under the existing KMS key becomes unrecoverable when the KMS key is deleted\\.\nSelect only one valid value\\. \n+ For symmetric KMS keys, omit the property or specify `ENCRYPT_DECRYPT`\\.\n+ For asymmetric KMS keys with RSA key material, specify `ENCRYPT_DECRYPT` or `SIGN_VERIFY`\\.\n+ For asymmetric KMS keys with ECC key material, specify `SIGN_VERIFY`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ENCRYPT_DECRYPT | SIGN_VERIFY` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MultiRegion": "Creates a multi\\-Region primary key that you can replicate in other AWS Regions\\. \nIf you change the `MultiRegion` property of an existing KMS key, the existing KMS key is scheduled for deletion and a new KMS key is created with the specified `Multi-Region` value\\. While the scheduled deletion is pending, you can't use the existing KMS key\\. Unless you [cancel the scheduled deletion](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#deleting-keys-scheduling-key-deletion) of the KMS key outside of CloudFormation, all data encrypted under the existing KMS key becomes unrecoverable when the KMS key is deleted\\.\nFor a multi\\-Region key, set to this property to `true`\\. For a single\\-Region key, omit this property or set it to `false`\\. The default value is `false`\\. \n*Multi\\-Region keys* are an AWS KMS feature that lets you create multiple interoperable KMS keys in different AWS Regions\\. Because these KMS keys have the same key ID, key material, and other metadata, you can use them to encrypt data in one AWS Region and decrypt it in a different AWS Region without making a cross\\-Region call or exposing the plaintext data\\. For more information, see [Multi\\-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in the *AWS Key Management Service Developer Guide*\\. \nYou can create a symmetric or asymmetric multi\\-Region key, and you can create a multi\\-Region key with imported key material\\. However, you cannot create a multi\\-Region key in a custom key store\\. \nTo create a replica of this primary key in a different AWS Region , create an [AWS::KMS::ReplicaKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html) resource in a CloudFormation stack in the replica Region\\. Specify the key ARN of this primary key\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PendingWindowInDays": "Specifies the number of days in the waiting period before AWS KMS deletes a KMS key that has been removed from a CloudFormation stack\\. Enter a value between 7 and 30 days\\. The default value is 30 days\\. \nWhen you remove a KMS key from a CloudFormation stack, AWS KMS schedules the KMS key for deletion and starts the mandatory waiting period\\. The `PendingWindowInDays` property determines the length of waiting period\\. During the waiting period, the key state of KMS key is `Pending Deletion` or `Pending Replica Deletion`, which prevents the KMS key from being used in cryptographic operations\\. When the waiting period expires, AWS KMS permanently deletes the KMS key\\. \nAWS KMS will not delete a [multi\\-Region primary key](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) that has replica keys\\. If you remove a multi\\-Region primary key from a CloudFormation stack, its key state changes to `PendingReplicaDeletion` so it cannot be replicated or used in cryptographic operations\\. This state can persist indefinitely\\. When the last of its replica keys is deleted, the key state of the primary key changes to `PendingDeletion` and the waiting period specified by `PendingWindowInDays` begins\\. When this waiting period expires, AWS KMS deletes the primary key\\. For details, see [Deleting multi\\-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html) in the *AWS Key Management Service Developer Guide*\\. \nYou cannot use a CloudFormation template to cancel deletion of the KMS key after you remove it from the stack, regardless of the waiting period\\. If you specify a KMS key in your template, even one with the same name, CloudFormation creates a new KMS key\\. To cancel deletion of a KMS key, use the AWS KMS console or the [CancelKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_CancelKeyDeletion.html) operation\\. \nFor information about the `Pending Deletion` and `Pending Replica Deletion` key states, see [Key state: Effect on your KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the *AWS Key Management Service Developer Guide*\\. For more information about deleting KMS keys, see the [ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) operation in the *AWS Key Management Service API Reference* and [Deleting KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) in the *AWS Key Management Service Developer Guide*\\. \n*Minimum*: 7 \n*Maximum*: 30 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Assigns one or more tags to the replica key\\. \nTagging or untagging a KMS key can allow or deny permission to the KMS key\\. For details, see [ABAC for AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the *AWS Key Management Service Developer Guide*\\.\nFor information about tags in AWS KMS, see [Tagging keys](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html) in the *AWS Key Management Service Developer Guide*\\. For information about tags in CloudFormation, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KMS::ReplicaKey": { + "Description": "A description of the KMS key\\. \nThe default value is an empty string \\(no description\\)\\. \nThe description is not a shared property of multi\\-Region keys\\. You can specify the same description or a different description for each key in a set of related multi\\-Region keys\\. AWS Key Management Service does not synchronize this property\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `8192` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Specifies whether the replica key is enabled\\. Disabled KMS keys cannot be used in cryptographic operations\\. \nWhen `Enabled` is `true`, the *key state* of the KMS key is `Enabled`\\. When `Enabled` is `false`, the key state of the KMS key is `Disabled`\\. The default value is `true`\\. \nThe actual key state of the replica might be affected by actions taken outside of CloudFormation, such as running the [EnableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKey.html), [DisableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html), or [ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) operations\\. Also, while the replica key is being created, its key state is `Creating`\\. When the process is complete, the key state of the replica key changes to `Enabled`\\. \nFor information about the key states of a KMS key, see [Key state: Effect on your KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the *AWS Key Management Service Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeyPolicy": "The key policy that authorizes use of the replica key\\. \nThe key policy is not a shared property of multi\\-Region keys\\. You can specify the same key policy or a different key policy for each key in a set of related multi\\-Region keys\\. AWS KMS does not synchronize this property\\. \nThe key policy must conform to the following rules\\. \n+ The key policy must give the caller [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) permission on the KMS key\\. This reduces the risk that the KMS key becomes unmanageable\\. For more information, refer to the scenario in the [Default key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam) section of the * *AWS Key Management Service Developer Guide* *\\.\n+ Each statement in the key policy must contain one or more principals\\. The principals in the key policy must exist and be visible to AWS KMS\\. When you create a new AWSprincipal \\(for example, an IAM user or role\\), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to AWS KMS\\. For more information, see [Changes that I make are not always immediately visible](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency) in the *AWS Identity and Access Management User Guide*\\.\n+ The key policy size limit is 32 kilobytes \\(32768 bytes\\)\\.\n*Minimum*: `1` \n*Maximum*: `32768` \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PendingWindowInDays": "Specifies the number of days in the waiting period before AWS KMS deletes a replica key that has been removed from a CloudFormation stack\\. Enter a value between 7 and 30 days\\. The default value is 30 days\\. \nWhen you remove a replica key from a CloudFormation stack, AWS KMS schedules the replica key for deletion and starts the mandatory waiting period\\. The `PendingWindowInDays` property determines the length of waiting period\\. During the waiting period, the key state of replica key is `Pending Deletion`, which prevents it from being used in cryptographic operations\\. When the waiting period expires, AWS KMS permanently deletes the replica key\\. \nYou cannot use a CloudFormation template to cancel deletion of the replica after you remove it from the stack, regardless of the waiting period\\. However, if you specify a replica key in your template that is based on the same primary key as the original replica key, CloudFormation creates a new replica key with the same key ID, key material, and other shared properties of the original replica key\\. This new replica key can decrypt ciphertext that was encrypted under the original replica key, or any related multi\\-Region key\\. \nFor detailed information about deleting multi\\-Region keys, see [Deleting multi\\-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html) in the *AWS Key Management Service Developer Guide*\\. \nFor information about the `PendingDeletion` key state, see [Key state: Effect on your KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the *AWS Key Management Service Developer Guide*\\. For more information about deleting KMS keys, see the [ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) operation in the *AWS Key Management Service API Reference* and [Deleting KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) in the *AWS Key Management Service Developer Guide*\\. \n*Minimum*: 7 \n*Maximum*: 30 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrimaryKeyArn": "Specifies the multi\\-Region primary key to replicate\\. The primary key must be in a different AWS Region of the same AWS partition\\. You can create only one replica of a given primary key in each AWS Region \\. \nIf you change the `PrimaryKeyArn` value of a replica key, the existing replica key is scheduled for deletion and a new replica key is created based on the specified primary key\\. While it is scheduled for deletion, the existing replica key becomes unusable\\. You can cancel the scheduled deletion of the key outside of CloudFormation\\. \nHowever, if you inadvertently delete a replica key, you can decrypt ciphertext encrypted by that replica key by using any related multi\\-Region key\\. If necessary, you can recreate the replica in the same Region after the previous one is completely deleted\\. For details, see [Deleting multi\\-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html) in the *AWS Key Management Service Developer Guide*\nSpecify the key ARN of an existing multi\\-Region primary key\\. For example, `arn:aws:kms:us-east-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Assigns one or more tags to the replica key\\. \nTagging or untagging a KMS key can allow or deny permission to the KMS key\\. For details, see [ABAC for AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the *AWS Key Management Service Developer Guide*\\.\nTags are not a shared property of multi\\-Region keys\\. You can specify the same tags or different tags for each key in a set of related multi\\-Region keys\\. AWS KMS does not synchronize this property\\. \nEach tag consists of a tag key and a tag value\\. Both the tag key and the tag value are required, but the tag value can be an empty \\(null\\) string\\. You cannot have more than one tag on a KMS key with the same tag key\\. If you specify an existing tag key with a different tag value, AWS KMS replaces the current tag value with the specified one\\. \nWhen you assign tags to an AWSresource, AWSgenerates a cost allocation report with usage and costs aggregated by tags\\. Tags can also be used to control access to a KMS key\\. For details, see [Tagging keys](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KafkaConnect::Connector": { + "Capacity": "The connector's compute capacity settings\\. \n*Required*: Yes \n*Type*: [Capacity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-capacity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectorConfiguration": "The configuration of the connector\\. \n*Required*: Yes \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ConnectorDescription": "The description of the connector\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ConnectorName": "The name of the connector\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KafkaCluster": "The details of the Apache Kafka cluster to which the connector is connected\\. \n*Required*: Yes \n*Type*: [KafkaCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-kafkacluster.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KafkaClusterClientAuthentication": "The type of client authentication used to connect to the Apache Kafka cluster\\. The value is NONE when no client authentication is used\\. \n*Required*: Yes \n*Type*: [KafkaClusterClientAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-kafkaclusterclientauthentication.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KafkaClusterEncryptionInTransit": "Details of encryption in transit to the Apache Kafka cluster\\. \n*Required*: Yes \n*Type*: [KafkaClusterEncryptionInTransit](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-kafkaclusterencryptionintransit.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KafkaConnectVersion": "The version of Kafka Connect\\. It has to be compatible with both the Apache Kafka cluster's version and the plugins\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LogDelivery": "The settings for delivering connector logs to Amazon CloudWatch Logs\\. \n*Required*: No \n*Type*: [LogDelivery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-logdelivery.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Plugins": "Specifies which plugins were used for this connector\\. \n*Required*: Yes \n*Type*: List of [Plugin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-plugin.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ServiceExecutionRoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM role used by the connector to access Amazon Web Services resources\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "WorkerConfiguration": "The worker configurations that are in use with the connector\\. \n*Required*: No \n*Type*: [WorkerConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-workerconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::KafkaConnect::Connector ApacheKafkaCluster": { + "BootstrapServers": "The bootstrap servers of the cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Vpc": "Details of an Amazon VPC which has network connectivity to the Apache Kafka cluster\\. \n*Required*: Yes \n*Type*: [Vpc](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-vpc.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::KafkaConnect::Connector AutoScaling": { + "MaxWorkerCount": "The maximum number of workers allocated to the connector\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "McuCount": "The number of microcontroller units \\(MCUs\\) allocated to each connector worker\\. The valid values are 1,2,4,8\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinWorkerCount": "The minimum number of workers allocated to the connector\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScaleInPolicy": "The sacle\\-in policy for the connector\\. \n*Required*: Yes \n*Type*: [ScaleInPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-scaleinpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScaleOutPolicy": "The sacle\\-out policy for the connector\\. \n*Required*: Yes \n*Type*: [ScaleOutPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-scaleoutpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KafkaConnect::Connector Capacity": { + "AutoScaling": "Information about the auto scaling parameters for the connector\\. \n*Required*: No \n*Type*: [AutoScaling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-autoscaling.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProvisionedCapacity": "Details about a fixed capacity allocated to a connector\\. \n*Required*: No \n*Type*: [ProvisionedCapacity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-provisionedcapacity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KafkaConnect::Connector CloudWatchLogsLogDelivery": { + "Enabled": "Whether log delivery to Amazon CloudWatch Logs is enabled\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LogGroup": "The name of the CloudWatch log group that is the destination for log delivery\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::KafkaConnect::Connector CustomPlugin": { + "CustomPluginArn": "The Amazon Resource Name \\(ARN\\) of the custom plugin\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Revision": "The revision of the custom plugin\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::KafkaConnect::Connector FirehoseLogDelivery": { + "DeliveryStream": "The name of the Kinesis Data Firehose delivery stream that is the destination for log delivery\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Enabled": "Specifies whether connector logs get delivered to Amazon Kinesis Data Firehose\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::KafkaConnect::Connector KafkaCluster": { + "ApacheKafkaCluster": "The Apache Kafka cluster to which the connector is connected\\. \n*Required*: Yes \n*Type*: [ApacheKafkaCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-apachekafkacluster.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::KafkaConnect::Connector KafkaClusterClientAuthentication": { + "AuthenticationType": "The type of client authentication used to connect to the Apache Kafka cluster\\. Value NONE means that no client authentication is used\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::KafkaConnect::Connector KafkaClusterEncryptionInTransit": { + "EncryptionType": "The type of encryption in transit to the Apache Kafka cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::KafkaConnect::Connector LogDelivery": { + "WorkerLogDelivery": "The workers can send worker logs to different destination types\\. This configuration specifies the details of these destinations\\. \n*Required*: Yes \n*Type*: [WorkerLogDelivery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-workerlogdelivery.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::KafkaConnect::Connector Plugin": { + "CustomPlugin": "Details about a custom plugin\\. \n*Required*: Yes \n*Type*: [CustomPlugin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-customplugin.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::KafkaConnect::Connector ProvisionedCapacity": { + "McuCount": "The number of microcontroller units \\(MCUs\\) allocated to each connector worker\\. The valid values are 1,2,4,8\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WorkerCount": "The number of workers that are allocated to the connector\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KafkaConnect::Connector S3LogDelivery": { + "Bucket": "The name of the S3 bucket that is the destination for log delivery\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Enabled": "Specifies whether connector logs get sent to the specified Amazon S3 destination\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Prefix": "The S3 prefix that is the destination for log delivery\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::KafkaConnect::Connector ScaleInPolicy": { + "CpuUtilizationPercentage": "Specifies the CPU utilization percentage threshold at which you want connector scale in to be triggered\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KafkaConnect::Connector ScaleOutPolicy": { + "CpuUtilizationPercentage": "The CPU utilization percentage threshold at which you want connector scale out to be triggered\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KafkaConnect::Connector Vpc": { + "SecurityGroups": "The security groups for the connector\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Subnets": "The subnets for the connector\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::KafkaConnect::Connector WorkerConfiguration": { + "Revision": "The revision of the worker configuration\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "WorkerConfigurationArn": "The Amazon Resource Name \\(ARN\\) of the worker configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::KafkaConnect::Connector WorkerLogDelivery": { + "CloudWatchLogs": "Details about delivering logs to Amazon CloudWatch Logs\\. \n*Required*: No \n*Type*: [CloudWatchLogsLogDelivery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-cloudwatchlogslogdelivery.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Firehose": "Details about delivering logs to Amazon Kinesis Data Firehose\\. \n*Required*: No \n*Type*: [FirehoseLogDelivery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-firehoselogdelivery.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "S3": "Details about delivering logs to Amazon S3\\. \n*Required*: No \n*Type*: [S3LogDelivery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-s3logdelivery.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Kendra::DataSource": { + "CustomDocumentEnrichmentConfiguration": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [CustomDocumentEnrichmentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-customdocumentenrichmentconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataSourceConfiguration": "Configuration information for an Amazon Kendra data source\\. The contents of the configuration depend on the type of data source\\. You can only specify one type of data source in the configuration\\. Choose from one of the following data sources\\. \n+ Amazon S3\n+ Confluence\n+ Custom\n+ Database\n+ Microsoft OneDrive\n+ Microsoft SharePoint \n+ Salesforce\n+ ServiceNow\nYou can't specify the `Configuration` parameter when the `Type` parameter is set to `CUSTOM`\\. \nThe `Configuration` parameter is required for all other data sources\\. \n*Required*: No \n*Type*: [DataSourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the data source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IndexId": "The identifier of the index that should be associated with this data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the data source\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Pattern*: `[a-zA-Z0-9][a-zA-Z0-9_-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of a role with permission to access the data source\\. \nYou can't specify the `RoleArn` parameter when the `Type` parameter is set to `CUSTOM`\\. \nThe `RoleArn` parameter is required for all other data sources\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Schedule": "Sets the frequency that Amazon Kendra checks the documents in your data source and updates the index\\. If you don't set a schedule, Amazon Kendra doesn't periodically update the index\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of the data source\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CONFLUENCE | CUSTOM | DATABASE | FSX | GOOGLEDRIVE | ONEDRIVE | S3 | SALESFORCE | SERVICENOW | SHAREPOINT | SLACK | WEBCRAWLER | WORKDOCS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Kendra::DataSource AccessControlListConfiguration": { + "KeyPath": "Path to the AWS S3 bucket that contains the access control list files\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Kendra::DataSource AclConfiguration": { + "AllowedGroupsColumnName": "A list of groups, separated by semi\\-colons, that filters a query response based on user context\\. The document is only returned to users that are in one of the groups specified in the `UserContext` field of the [Query](https://docs.aws.amazon.com/kendra/latest/dg/API_Query.html) operation\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Kendra::DataSource ColumnConfiguration": { + "ChangeDetectingColumns": "One to five columns that indicate when a document in the database has changed\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DocumentDataColumnName": "The column that contains the contents of the document\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DocumentIdColumnName": "The column that provides the document's unique identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DocumentTitleColumnName": "The column that contains the title of the document\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FieldMappings": "An array of objects that map database column names to the corresponding fields in an index\\. You must first create the fields in the index using the [UpdateIndex](https://docs.aws.amazon.com/kendra/latest/dg/API_UpdateIndex.html) operation\\. \n*Required*: No \n*Type*: List of [DataSourceToIndexFieldMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourcetoindexfieldmapping.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Kendra::DataSource ConfluenceAttachmentConfiguration": { + "AttachmentFieldMappings": "Maps attributes or field names of Confluence attachments to Amazon Kendra index field names\\. To create custom fields, use the `UpdateIndex` API before you map to Confluence fields\\. For more information, see [Mapping data source fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html)\\. The Confluence data source field names must exist in your Confluence custom metadata\\. \nIf you specify the `AttachentFieldMappings` parameter, you must specify at least one field mapping\\. \n*Required*: No \n*Type*: List of [ConfluenceAttachmentToIndexFieldMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceattachmenttoindexfieldmapping.html) \n*Maximum*: `11` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CrawlAttachments": "Indicates whether Amazon Kendra indexes attachments to the pages and blogs in the Confluence data source\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Kendra::DataSource ConfluenceAttachmentToIndexFieldMapping": { + "DataSourceFieldName": "The name of the field in the data source\\. \nYou must first create the index field using the `UpdateIndex` API\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AUTHOR | CONTENT_TYPE | CREATED_DATE | DISPLAY_URL | FILE_SIZE | ITEM_TYPE | PARENT_ID | SPACE_KEY | SPACE_NAME | URL | VERSION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DateFieldFormat": "The format for date fields in the data source\\. If the field specified in `DataSourceFieldName` is a date field you must specify the date format\\. If the field is not a date field, an exception is thrown\\. \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `40` \n*Pattern*: `^(?!\\s).*(?A list of regular expression patterns to exclude certain blog posts, pages, spaces, or attachments in your Confluence\\. Content that matches the patterns are excluded from the index\\. Content that doesn't match the patterns is included in the index\\. If content matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the content isn't included in the index\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InclusionPatterns": "A list of regular expression patterns to include certain blog posts, pages, spaces, or attachments in your Confluence\\. Content that matches the patterns are included in the index\\. Content that doesn't match the patterns is excluded from the index\\. If content matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the content isn't included in the index\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PageConfiguration": "Configuration information for indexing Confluence pages\\. \n*Required*: No \n*Type*: [ConfluencePageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencepageconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretArn": "The Amazon Resource Name \\(ARN\\) of an AWS Secrets Manager secret that contains the key\\-value pairs required to connect to your Confluence server\\. The secret must contain a JSON structure with the following keys: \n+ username\u2014The user name or email address of a user with administrative privileges for the Confluence server\\.\n+ password\u2014The password associated with the user logging in to the Confluence server\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1284` \n*Pattern*: `arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServerUrl": "The URL of your Confluence instance\\. Use the full URL of the server\\. For example, *https://server\\.example\\.com:port/*\\. You can also use an IP address, for example, *https://192\\.168\\.1\\.113/*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `^(https?|ftp|file):\\/\\/([^\\s]*)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SpaceConfiguration": "Configuration information for indexing Confluence spaces\\. \n*Required*: No \n*Type*: [ConfluenceSpaceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencespaceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "Specifies the version of the Confluence installation that you are connecting to\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CLOUD | SERVER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcConfiguration": "Configuration information for an Amazon Virtual Private Cloud to connect to your Confluence\\. For more information, see [Configuring a VPC](https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html)\\. \n*Required*: No \n*Type*: [DataSourceVpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourcevpcconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Kendra::DataSource ConfluencePageConfiguration": { + "PageFieldMappings": ">Maps attributes or field names of Confluence pages to Amazon Kendra index field names\\. To create custom fields, use the `UpdateIndex` API before you map to Confluence fields\\. For more information, see [Mapping data source fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html)\\. The Confluence data source field names must exist in your Confluence custom metadata\\. \nIf you specify the `PageFieldMappings` parameter, you must specify at least one field mapping\\. \n*Required*: No \n*Type*: List of [ConfluencePageToIndexFieldMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencepagetoindexfieldmapping.html) \n*Maximum*: `12` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Kendra::DataSource ConfluencePageToIndexFieldMapping": { + "DataSourceFieldName": "The name of the field in the data source\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AUTHOR | CONTENT_STATUS | CREATED_DATE | DISPLAY_URL | ITEM_TYPE | LABELS | MODIFIED_DATE | PARENT_ID | SPACE_KEY | SPACE_NAME | URL | VERSION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DateFieldFormat": "The format for date fields in the data source\\. If the field specified in `DataSourceFieldName` is a date field you must specify the date format\\. If the field is not a date field, an exception is thrown\\. \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `40` \n*Pattern*: `^(?!\\s).*(?&]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::Application InputLambdaProcessor": { + "ResourceARN": "The ARN of the Amazon Lambda function that operates on records in the stream\\. \nTo specify an earlier version of the Lambda function than the latest, include the Lambda function version in the Lambda function ARN\\. For more information about Lambda ARNs, see [Example ARNs: Amazon Lambda](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda) \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::Application InputParallelism": { + "Count": "The number of in\\-application streams to create\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::Application InputProcessingConfiguration": { + "InputLambdaProcessor": "The [InputLambdaProcessor](https://docs.aws.amazon.com/kinesisanalytics/latest/apiv2/API_InputLambdaProcessor.html) that is used to preprocess the records in the stream before being processed by your application code\\. \n*Required*: No \n*Type*: [InputLambdaProcessor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputlambdaprocessor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::Application InputSchema": { + "RecordColumns": "A list of `RecordColumn` objects\\. \n*Required*: Yes \n*Type*: List of [RecordColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordcolumn.html) \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RecordEncoding": "Specifies the encoding of the records in the streaming source\\. For example, UTF\\-8\\. \n*Required*: No \n*Type*: String \n*Minimum*: `5` \n*Maximum*: `5` \n*Pattern*: `UTF-8` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RecordFormat": "Specifies the format of the records on the streaming source\\. \n*Required*: Yes \n*Type*: [RecordFormat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordformat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::Application JSONMappingParameters": { + "RecordRowPath": "The path to the top\\-level parent that contains the records\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `65535` \n*Pattern*: `^(?=^\\$)(?=^\\S+$).*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::Application KinesisFirehoseInput": { + "ResourceARN": "The Amazon Resource Name \\(ARN\\) of the delivery stream\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::Application KinesisStreamsInput": { + "ResourceARN": "The ARN of the input Kinesis data stream to read\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::Application MappingParameters": { + "CSVMappingParameters": "Provides additional mapping information when the record format uses delimiters \\(for example, CSV\\)\\. \n*Required*: No \n*Type*: [CSVMappingParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-csvmappingparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JSONMappingParameters": "Provides additional mapping information when JSON is the record format on the streaming source\\. \n*Required*: No \n*Type*: [JSONMappingParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-jsonmappingparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::Application MavenReference": { + "ArtifactId": "The artifact ID of the Maven reference\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GroupId": "The group ID of the Maven reference\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "The version of the Maven reference\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::Application MonitoringConfiguration": { + "ConfigurationType": "Describes whether to use the default CloudWatch logging configuration for an application\\. You must set this property to `CUSTOM` in order to set the `LogLevel` or `MetricsLevel` parameters\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CUSTOM | DEFAULT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogLevel": "Describes the verbosity of the CloudWatch Logs for an application\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DEBUG | ERROR | INFO | WARN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricsLevel": "Describes the granularity of the CloudWatch Logs for an application\\. The `Parallelism` level is not recommended for applications with a Parallelism over 64 due to excessive costs\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `APPLICATION | OPERATOR | PARALLELISM | TASK` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::Application ParallelismConfiguration": { + "AutoScalingEnabled": "Describes whether the Kinesis Data Analytics service can increase the parallelism of the application in response to increased throughput\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConfigurationType": "Describes whether the application uses the default parallelism for the Kinesis Data Analytics service\\. You must set this property to `CUSTOM` in order to change your application's `AutoScalingEnabled`, `Parallelism`, or `ParallelismPerKPU` properties\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CUSTOM | DEFAULT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parallelism": "Describes the initial number of parallel tasks that a Java\\-based Kinesis Data Analytics application can perform\\. The Kinesis Data Analytics service can increase this number automatically if [ParallelismConfiguration:AutoScalingEnabled](https://docs.aws.amazon.com/kinesisanalytics/latest/apiv2/API_ParallelismConfiguration.html#kinesisanalytics-Type-ParallelismConfiguration-AutoScalingEnabled.html) is set to `true`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParallelismPerKPU": "Describes the number of parallel tasks that a Java\\-based Kinesis Data Analytics application can perform per Kinesis Processing Unit \\(KPU\\) used by the application\\. For more information about KPUs, see [Amazon Kinesis Data Analytics Pricing](https://docs.aws.amazon.com/kinesis/data-analytics/pricing/)\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::Application PropertyGroup": { + "PropertyGroupId": "Describes the key of an application execution property key\\-value pair\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PropertyMap": "Describes the value of an application execution property key\\-value pair\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::Application RecordColumn": { + "Mapping": "A reference to the data element in the streaming input or the reference data source\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the column that is created in the in\\-application input stream or reference table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[^-\\s<>&]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SqlType": "The type of column created in the in\\-application input stream or reference table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::Application RecordFormat": { + "MappingParameters": "When you configure application input at the time of creating or updating an application, provides additional mapping information specific to the record format \\(such as JSON, CSV, or record fields delimited by some delimiter\\) on the streaming source\\. \n*Required*: No \n*Type*: [MappingParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-mappingparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RecordFormatType": "The type of record format\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CSV | JSON` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::Application S3ContentBaseLocation": { + "BasePath": "The base path for the S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[a-zA-Z0-9/!-_.*'()]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BucketARN": "The Amazon Resource Name \\(ARN\\) of the S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::Application S3ContentLocation": { + "BucketARN": "The Amazon Resource Name \\(ARN\\) for the S3 bucket containing the application code\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FileKey": "The file key for the object containing the application code\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ObjectVersion": "The version of the object containing the application code\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::Application SqlApplicationConfiguration": { + "Inputs": "The array of [Input](https://docs.aws.amazon.com/kinesisanalytics/latest/apiv2/API_Input.html) objects describing the input streams used by the application\\. \n*Required*: No \n*Type*: List of [Input](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::Application ZeppelinApplicationConfiguration": { + "CatalogConfiguration": "The Amazon Glue Data Catalog that you use in queries in a Kinesis Data Analytics Studio notebook\\. \n*Required*: No \n*Type*: [CatalogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-catalogconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomArtifactsConfiguration": "A list of `CustomArtifactConfiguration` objects\\. \n*Required*: No \n*Type*: List of [CustomArtifactConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-customartifactconfiguration.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeployAsApplicationConfiguration": "The information required to deploy a Kinesis Data Analytics Studio notebook as an application with durable state\\. \n*Required*: No \n*Type*: [DeployAsApplicationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-deployasapplicationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MonitoringConfiguration": "The monitoring configuration of a Kinesis Data Analytics Studio notebook\\. \n*Required*: No \n*Type*: [ZeppelinMonitoringConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-zeppelinmonitoringconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::Application ZeppelinMonitoringConfiguration": { + "LogLevel": "The verbosity of the CloudWatch Logs for an application\\. You can set it to `INFO`, `WARN`, `ERROR`, or `DEBUG`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DEBUG | ERROR | INFO | WARN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption": { + "ApplicationName": "The name of the application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CloudWatchLoggingOption": "Provides a description of Amazon CloudWatch logging options, including the log stream Amazon Resource Name \\(ARN\\)\\. \n*Required*: Yes \n*Type*: [CloudWatchLoggingOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationcloudwatchloggingoption-cloudwatchloggingoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption CloudWatchLoggingOption": { + "LogStreamARN": "The ARN of the CloudWatch log to receive application messages\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::ApplicationOutput": { + "ApplicationName": "The name of the application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Output": "Describes a SQL\\-based Kinesis Data Analytics application's output configuration, in which you identify an in\\-application stream and a destination where you want the in\\-application stream data to be written\\. The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream\\. \n \n*Required*: Yes \n*Type*: [Output](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::ApplicationOutput DestinationSchema": { + "RecordFormatType": "Specifies the format of the records on the output stream\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CSV | JSON` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::ApplicationOutput KinesisFirehoseOutput": { + "ResourceARN": "The ARN of the destination delivery stream to write to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::ApplicationOutput KinesisStreamsOutput": { + "ResourceARN": "The ARN of the destination Kinesis data stream to write to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::ApplicationOutput LambdaOutput": { + "ResourceARN": "The Amazon Resource Name \\(ARN\\) of the destination Lambda function to write to\\. \nTo specify an earlier version of the Lambda function than the latest, include the Lambda function version in the Lambda function ARN\\. For more information about Lambda ARNs, see [Example ARNs: Amazon Lambda](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda) \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::ApplicationOutput Output": { + "DestinationSchema": "Describes the data format when records are written to the destination\\. \n*Required*: Yes \n*Type*: [DestinationSchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-destinationschema.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KinesisFirehoseOutput": "Identifies a Kinesis Data Firehose delivery stream as the destination\\. \n*Required*: No \n*Type*: [KinesisFirehoseOutput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-kinesisfirehoseoutput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KinesisStreamsOutput": "Identifies a Kinesis data stream as the destination\\. \n*Required*: No \n*Type*: [KinesisStreamsOutput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-kinesisstreamsoutput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LambdaOutput": "Identifies an Amazon Lambda function as the destination\\. \n*Required*: No \n*Type*: [LambdaOutput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-lambdaoutput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the in\\-application stream\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `[^-\\s<>&]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource": { + "ApplicationName": "The name of the application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ReferenceDataSource": "For a SQL\\-based Kinesis Data Analytics application, describes the reference data source by providing the source information \\(Amazon S3 bucket name and object key name\\), the resulting in\\-application table name that is created, and the necessary schema to map the data elements in the Amazon S3 object to the in\\-application table\\. \n*Required*: Yes \n*Type*: [ReferenceDataSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource CSVMappingParameters": { + "RecordColumnDelimiter": "The column delimiter\\. For example, in a CSV format, a comma \\(\",\"\\) is the typical column delimiter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RecordRowDelimiter": "The row delimiter\\. For example, in a CSV format, *'\\\\n'* is the typical row delimiter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource JSONMappingParameters": { + "RecordRowPath": "The path to the top\\-level parent that contains the records\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `65535` \n*Pattern*: `^(?=^\\$)(?=^\\S+$).*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource MappingParameters": { + "CSVMappingParameters": "Provides additional mapping information when the record format uses delimiters \\(for example, CSV\\)\\. \n*Required*: No \n*Type*: [CSVMappingParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-csvmappingparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JSONMappingParameters": "Provides additional mapping information when JSON is the record format on the streaming source\\. \n*Required*: No \n*Type*: [JSONMappingParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-jsonmappingparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource RecordColumn": { + "Mapping": "A reference to the data element in the streaming input or the reference data source\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the column that is created in the in\\-application input stream or reference table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[^-\\s<>&]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SqlType": "The type of column created in the in\\-application input stream or reference table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource RecordFormat": { + "MappingParameters": "When you configure application input at the time of creating or updating an application, provides additional mapping information specific to the record format \\(such as JSON, CSV, or record fields delimited by some delimiter\\) on the streaming source\\. \n*Required*: No \n*Type*: [MappingParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-mappingparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RecordFormatType": "The type of record format\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CSV | JSON` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource ReferenceDataSource": { + "ReferenceSchema": "Describes the format of the data in the streaming source, and how each data element maps to corresponding columns created in the in\\-application stream\\. \n*Required*: Yes \n*Type*: [ReferenceSchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referenceschema.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3ReferenceDataSource": "Identifies the S3 bucket and object that contains the reference data\\. A Kinesis Data Analytics application loads reference data only once\\. If the data changes, you call the [UpdateApplication](https://docs.aws.amazon.com/kinesisanalytics/latest/apiv2/API_UpdateApplication.html) operation to trigger reloading of data into your application\\. \n*Required*: No \n*Type*: [S3ReferenceDataSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-s3referencedatasource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TableName": "The name of the in\\-application table to create\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource ReferenceSchema": { + "RecordColumns": "A list of `RecordColumn` objects\\. \n*Required*: Yes \n*Type*: List of [RecordColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn.html) \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RecordEncoding": "Specifies the encoding of the records in the streaming source\\. For example, UTF\\-8\\. \n*Required*: No \n*Type*: String \n*Minimum*: `5` \n*Maximum*: `5` \n*Pattern*: `UTF-8` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RecordFormat": "Specifies the format of the records on the streaming source\\. \n*Required*: Yes \n*Type*: [RecordFormat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordformat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource S3ReferenceDataSource": { + "BucketARN": "The Amazon Resource Name \\(ARN\\) of the S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FileKey": "The object key name containing the reference data\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream": { + "AmazonopensearchserviceDestinationConfiguration": "The destination in Amazon OpenSearch Service\\. You can specify only one destination\\. \n*Required*: Conditional \n*Type*: [AmazonopensearchserviceDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeliveryStreamEncryptionConfigurationInput": "Specifies the type and Amazon Resource Name \\(ARN\\) of the CMK to use for Server\\-Side Encryption \\(SSE\\)\\. \n*Required*: No \n*Type*: [DeliveryStreamEncryptionConfigurationInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeliveryStreamName": "The name of the delivery stream\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DeliveryStreamType": "The delivery stream type\\. This can be one of the following values: \n+ `DirectPut`: Provider applications access the delivery stream directly\\.\n+ `KinesisStreamAsSource`: The delivery stream uses a Kinesis data stream as a source\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `DirectPut | KinesisStreamAsSource` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ElasticsearchDestinationConfiguration": "An Amazon ES destination for the delivery stream\\. \nConditional\\. You must specify only one destination configuration\\. \nIf you change the delivery stream destination from an Amazon ES destination to an Amazon S3 or Amazon Redshift destination, update requires [some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)\\. \n*Required*: Conditional \n*Type*: [ElasticsearchDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExtendedS3DestinationConfiguration": "An Amazon S3 destination for the delivery stream\\. \nConditional\\. You must specify only one destination configuration\\. \nIf you change the delivery stream destination from an Amazon Extended S3 destination to an Amazon ES destination, update requires [some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)\\. \n*Required*: Conditional \n*Type*: [ExtendedS3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HttpEndpointDestinationConfiguration": "Enables configuring Kinesis Firehose to deliver data to any HTTP endpoint destination\\. You can specify only one destination\\. \n*Required*: No \n*Type*: [HttpEndpointDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KinesisStreamSourceConfiguration": "When a Kinesis stream is used as the source for the delivery stream, a [KinesisStreamSourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration.html) containing the Kinesis stream ARN and the role ARN for the source stream\\. \n*Required*: No \n*Type*: [KinesisStreamSourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RedshiftDestinationConfiguration": "An Amazon Redshift destination for the delivery stream\\. \nConditional\\. You must specify only one destination configuration\\. \nIf you change the delivery stream destination from an Amazon Redshift destination to an Amazon ES destination, update requires [some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)\\. \n*Required*: Conditional \n*Type*: [RedshiftDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3DestinationConfiguration": "The `S3DestinationConfiguration` property type specifies an Amazon Simple Storage Service \\(Amazon S3\\) destination to which Amazon Kinesis Data Firehose \\(Kinesis Data Firehose\\) delivers data\\. \nConditional\\. You must specify only one destination configuration\\. \nIf you change the delivery stream destination from an Amazon S3 destination to an Amazon ES destination, update requires [some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)\\. \n*Required*: Conditional \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SplunkDestinationConfiguration": "The configuration of a destination in Splunk for the delivery stream\\. \n*Required*: No \n*Type*: [SplunkDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A set of tags to assign to the delivery stream\\. A tag is a key\\-value pair that you can define and assign to AWS resources\\. Tags are metadata\\. For example, you can add friendly names and descriptions or other types of information that can help you distinguish the delivery stream\\. For more information about tags, see [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) in the AWS Billing and Cost Management User Guide\\. \nYou can specify up to 50 tags when creating a delivery stream\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream AmazonopensearchserviceBufferingHints": { + "IntervalInSeconds": "Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination\\. The default value is 300 \\(5 minutes\\)\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `60` \n*Maximum*: `900` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SizeInMBs": "Buffer incoming data to the specified size, in MBs, before delivering it to the destination\\. The default value is 5\\. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds\\. For example, if you typically ingest data at 1 MB/sec, the value should be 10 MB or higher\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream AmazonopensearchserviceDestinationConfiguration": { + "BufferingHints": "The buffering options\\. If no value is specified, the default values for AmazonopensearchserviceBufferingHints are used\\. \n*Required*: No \n*Type*: [AmazonopensearchserviceBufferingHints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicebufferinghints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CloudWatchLoggingOptions": "Describes the Amazon CloudWatch logging options for your delivery stream\\. \n*Required*: No \n*Type*: [CloudWatchLoggingOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClusterEndpoint": "The endpoint to use when communicating with the cluster\\. Specify either this ClusterEndpoint or the DomainARN field\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `https:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainARN": "The ARN of the Amazon OpenSearch Service domain\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IndexName": "The Amazon OpenSearch Service index name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `80` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IndexRotationPeriod": "The Amazon OpenSearch Service index rotation period\\. Index rotation appends a timestamp to the IndexName to facilitate the expiration of old data\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NoRotation | OneDay | OneHour | OneMonth | OneWeek` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProcessingConfiguration": "Describes a data processing configuration\\. \n*Required*: No \n*Type*: [ProcessingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetryOptions": "The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon OpenSearch Service\\. The default value is 300 \\(5 minutes\\)\\. \n*Required*: No \n*Type*: [AmazonopensearchserviceRetryOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchserviceretryoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleARN": "The Amazon Resource Name \\(ARN\\) of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon OpenSearch Service Configuration API and for indexing documents\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3BackupMode": "Defines how documents should be delivered to Amazon S3\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AllDocuments | FailedDocumentsOnly` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Configuration": "Describes the configuration of a destination in Amazon S3\\. \n*Required*: Yes \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TypeName": "The Amazon OpenSearch Service type name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `100` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcConfiguration": "The details of the VPC of the Amazon OpenSearch Service destination\\. \n*Required*: No \n*Type*: [VpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-vpcconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::KinesisFirehose::DeliveryStream AmazonopensearchserviceRetryOptions": { + "DurationInSeconds": "After an initial failure to deliver to Amazon OpenSearch Service, the total amount of time during which Kinesis Data Firehose retries delivery \\(including the first attempt\\)\\. After this time has elapsed, the failed documents are written to Amazon S3\\. Default value is 300 seconds \\(5 minutes\\)\\. A value of 0 \\(zero\\) results in no retries\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `7200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream BufferingHints": { + "IntervalInSeconds": "The length of time, in seconds, that Kinesis Data Firehose buffers incoming data before delivering it to the destination\\. For valid values, see the `IntervalInSeconds` content for the [BufferingHints](https://docs.aws.amazon.com/firehose/latest/APIReference/API_BufferingHints.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `60` \n*Maximum*: `900` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SizeInMBs": "The size of the buffer, in MBs, that Kinesis Data Firehose uses for incoming data before delivering it to the destination\\. For valid values, see the `SizeInMBs` content for the [BufferingHints](https://docs.aws.amazon.com/firehose/latest/APIReference/API_BufferingHints.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream CloudWatchLoggingOptions": { + "Enabled": "Indicates whether CloudWatch Logs logging is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogGroupName": "The name of the CloudWatch Logs log group that contains the log stream that Kinesis Data Firehose will use\\. \nConditional\\. If you enable logging, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogStreamName": "The name of the CloudWatch Logs log stream that Kinesis Data Firehose uses to send logs about data delivery\\. \nConditional\\. If you enable logging, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `512` \n*Pattern*: `[^:*]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream CopyCommand": { + "CopyOptions": "Parameters to use with the Amazon Redshift `COPY` command\\. For examples, see the `CopyOptions` content for the [CopyCommand](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CopyCommand.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `204800` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataTableColumns": "A comma\\-separated list of column names\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `204800` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataTableName": "The name of the target table\\. The table must already exist in the database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream DataFormatConversionConfiguration": { + "Enabled": "Defaults to `true`\\. Set it to `false` if you want to disable format conversion while preserving the configuration details\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputFormatConfiguration": "Specifies the deserializer that you want Kinesis Data Firehose to use to convert the format of your data from JSON\\. This parameter is required if `Enabled` is set to true\\. \n*Required*: No \n*Type*: [InputFormatConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-inputformatconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutputFormatConfiguration": "Specifies the serializer that you want Kinesis Data Firehose to use to convert the format of your data to the Parquet or ORC format\\. This parameter is required if `Enabled` is set to true\\. \n*Required*: No \n*Type*: [OutputFormatConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-outputformatconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SchemaConfiguration": "Specifies the AWS Glue Data Catalog table that contains the column information\\. This parameter is required if `Enabled` is set to true\\. \n*Required*: No \n*Type*: [SchemaConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-schemaconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream DeliveryStreamEncryptionConfigurationInput": { + "KeyARN": "If you set `KeyType` to `CUSTOMER_MANAGED_CMK`, you must specify the Amazon Resource Name \\(ARN\\) of the CMK\\. If you set `KeyType` to ` AWS_OWNED_CMK`, Kinesis Data Firehose uses a service\\-account CMK\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeyType": "Indicates the type of customer master key \\(CMK\\) to use for encryption\\. The default setting is `AWS_OWNED_CMK`\\. For more information about CMKs, see [Customer Master Keys \\(CMKs\\)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys)\\. \nYou can use a CMK of type CUSTOMER\\_MANAGED\\_CMK to encrypt up to 500 delivery streams\\. \nTo encrypt your delivery stream, use symmetric CMKs\\. Kinesis Data Firehose doesn't support asymmetric CMKs\\. For information about symmetric and asymmetric CMKs, see [About Symmetric and Asymmetric CMKs](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html) in the AWS Key Management Service developer guide\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `AWS_OWNED_CMK | CUSTOMER_MANAGED_CMK` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream Deserializer": { + "HiveJsonSerDe": "The native Hive / HCatalog JsonSerDe\\. Used by Kinesis Data Firehose for deserializing data, which means converting it from the JSON format in preparation for serializing it to the Parquet or ORC format\\. This is one of two deserializers you can choose, depending on which one offers the functionality you need\\. The other option is the OpenX SerDe\\. \n*Required*: No \n*Type*: [HiveJsonSerDe](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-hivejsonserde.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OpenXJsonSerDe": "The OpenX SerDe\\. Used by Kinesis Data Firehose for deserializing data, which means converting it from the JSON format in preparation for serializing it to the Parquet or ORC format\\. This is one of two deserializers you can choose, depending on which one offers the functionality you need\\. The other option is the native Hive / HCatalog JsonSerDe\\. \n*Required*: No \n*Type*: [OpenXJsonSerDe](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-openxjsonserde.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream DynamicPartitioningConfiguration": { + "Enabled": "Specifies whether dynamic partitioning is enabled for this Kinesis Data Firehose delivery stream\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetryOptions": "Specifies the retry behavior in case Kinesis Data Firehose is unable to deliver data to an Amazon S3 prefix\\. \n*Required*: No \n*Type*: [RetryOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-retryoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream ElasticsearchBufferingHints": { + "IntervalInSeconds": "The length of time, in seconds, that Kinesis Data Firehose buffers incoming data before delivering it to the destination\\. For valid values, see the `IntervalInSeconds` content for the [BufferingHints](https://docs.aws.amazon.com/firehose/latest/APIReference/API_BufferingHints.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `60` \n*Maximum*: `900` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SizeInMBs": "The size of the buffer, in MBs, that Kinesis Data Firehose uses for incoming data before delivering it to the destination\\. For valid values, see the `SizeInMBs` content for the [BufferingHints](https://docs.aws.amazon.com/firehose/latest/APIReference/API_BufferingHints.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream ElasticsearchDestinationConfiguration": { + "BufferingHints": "Configures how Kinesis Data Firehose buffers incoming data while delivering it to the Amazon ES domain\\. \n*Required*: No \n*Type*: [ElasticsearchBufferingHints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchbufferinghints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CloudWatchLoggingOptions": "The Amazon CloudWatch Logs logging options for the delivery stream\\. \n*Required*: No \n*Type*: [CloudWatchLoggingOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClusterEndpoint": "The endpoint to use when communicating with the cluster\\. Specify either this `ClusterEndpoint` or the `DomainARN` field\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainARN": "The ARN of the Amazon ES domain\\. The IAM role must have permissions for `DescribeElasticsearchDomain`, `DescribeElasticsearchDomains`, and `DescribeElasticsearchDomainConfig` after assuming the role specified in **RoleARN**\\. \nSpecify either `ClusterEndpoint` or `DomainARN`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IndexName": "The name of the Elasticsearch index to which Kinesis Data Firehose adds data for indexing\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `80` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IndexRotationPeriod": "The frequency of Elasticsearch index rotation\\. If you enable index rotation, Kinesis Data Firehose appends a portion of the UTC arrival timestamp to the specified index name, and rotates the appended timestamp accordingly\\. For more information, see [Index Rotation for the Amazon ES Destination](https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation) in the *Amazon Kinesis Data Firehose Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NoRotation | OneDay | OneHour | OneMonth | OneWeek` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProcessingConfiguration": "The data processing configuration for the Kinesis Data Firehose delivery stream\\. \n*Required*: No \n*Type*: [ProcessingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetryOptions": "The retry behavior when Kinesis Data Firehose is unable to deliver data to Amazon ES\\. \n*Required*: No \n*Type*: [ElasticsearchRetryOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchretryoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleARN": "The Amazon Resource Name \\(ARN\\) of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon ES Configuration API and for indexing documents\\. For more information, see [Controlling Access with Amazon Kinesis Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3BackupMode": "The condition under which Kinesis Data Firehose delivers data to Amazon Simple Storage Service \\(Amazon S3\\)\\. You can send Amazon S3 all documents \\(all data\\) or only the documents that Kinesis Data Firehose could not deliver to the Amazon ES destination\\. For more information and valid values, see the `S3BackupMode` content for the [ElasticsearchDestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ElasticsearchDestinationConfiguration.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AllDocuments | FailedDocumentsOnly` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Configuration": "The S3 bucket where Kinesis Data Firehose backs up incoming data\\. \n*Required*: Yes \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TypeName": "The Elasticsearch type name that Amazon ES adds to documents when indexing data\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `100` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcConfiguration": "The details of the VPC of the Amazon ES destination\\. \n*Required*: No \n*Type*: [VpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-vpcconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::KinesisFirehose::DeliveryStream ElasticsearchRetryOptions": { + "DurationInSeconds": "After an initial failure to deliver to Amazon ES, the total amount of time during which Kinesis Data Firehose re\\-attempts delivery \\(including the first attempt\\)\\. If Kinesis Data Firehose can't deliver the data within the specified time, it writes the data to the backup S3 bucket\\. For valid values, see the `DurationInSeconds` content for the [ElasticsearchRetryOptions](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ElasticsearchRetryOptions.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `7200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream EncryptionConfiguration": { + "KMSEncryptionConfig": "The AWS Key Management Service \\(AWS KMS\\) encryption key that Amazon S3 uses to encrypt your data\\. \n*Required*: No \n*Type*: [KMSEncryptionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kmsencryptionconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NoEncryptionConfig": "Disables encryption\\. For valid values, see the `NoEncryptionConfig` content for the [EncryptionConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_EncryptionConfiguration.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NoEncryption` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream ExtendedS3DestinationConfiguration": { + "BucketARN": "The Amazon Resource Name \\(ARN\\) of the Amazon S3 bucket\\. For constraints, see [ExtendedS3DestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ExtendedS3DestinationConfiguration.html) in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BufferingHints": "The buffering option\\. \n*Required*: No \n*Type*: [BufferingHints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-bufferinghints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CloudWatchLoggingOptions": "The Amazon CloudWatch logging options for your delivery stream\\. \n*Required*: No \n*Type*: [CloudWatchLoggingOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CompressionFormat": "The compression format\\. If no value is specified, the default is `UNCOMPRESSED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GZIP | HADOOP_SNAPPY | Snappy | UNCOMPRESSED | ZIP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataFormatConversionConfiguration": "The serializer, deserializer, and schema for converting data from the JSON format to the Parquet or ORC format before writing it to Amazon S3\\. \n*Required*: No \n*Type*: [DataFormatConversionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-dataformatconversionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DynamicPartitioningConfiguration": "The configuration of the dynamic partitioning mechanism that creates targeted data sets from the streaming data by partitioning it based on partition keys\\. \n*Required*: No \n*Type*: [DynamicPartitioningConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-dynamicpartitioningconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EncryptionConfiguration": "The encryption configuration for the Kinesis Data Firehose delivery stream\\. The default value is `NoEncryption`\\. \n*Required*: No \n*Type*: [EncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-encryptionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ErrorOutputPrefix": "A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3\\. This prefix appears immediately following the bucket name\\. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "The `YYYY/MM/DD/HH` time format prefix is automatically used for delivered Amazon S3 files\\. For more information, see [ExtendedS3DestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ExtendedS3DestinationConfiguration.html) in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProcessingConfiguration": "The data processing configuration for the Kinesis Data Firehose delivery stream\\. \n*Required*: No \n*Type*: [ProcessingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleARN": "The Amazon Resource Name \\(ARN\\) of the AWS credentials\\. For constraints, see [ExtendedS3DestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ExtendedS3DestinationConfiguration.html) in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3BackupConfiguration": "The configuration for backup in Amazon S3\\. \n*Required*: No \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3BackupMode": "The Amazon S3 backup mode\\. After you create a delivery stream, you can update it to enable Amazon S3 backup if it is disabled\\. If backup is enabled, you can't update the delivery stream to disable it\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream HiveJsonSerDe": { + "TimestampFormats": "Indicates how you want Kinesis Data Firehose to parse the date and timestamps that may be present in your input data JSON\\. To specify these format strings, follow the pattern syntax of JodaTime's DateTimeFormat format strings\\. For more information, see [Class DateTimeFormat](https://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html)\\. You can also use the special value `millis` to parse timestamps in epoch milliseconds\\. If you don't specify a format, Kinesis Data Firehose uses `java.sql.Timestamp::valueOf` by default\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream HttpEndpointCommonAttribute": { + "AttributeName": "The name of the HTTP endpoint common attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^(?!\\s*$).+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AttributeValue": "The value of the HTTP endpoint common attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream HttpEndpointConfiguration": { + "AccessKey": "The access key required for Kinesis Firehose to authenticate with the HTTP endpoint selected as the destination\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `4096` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the HTTP endpoint selected as the destination\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^(?!\\s*$).+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Url": "The URL of the HTTP endpoint selected as the destination\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Pattern*: `https://.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream HttpEndpointDestinationConfiguration": { + "BufferingHints": "The buffering options that can be used before data is delivered to the specified destination\\. Kinesis Data Firehose treats these options as hints, and it might choose to use more optimal values\\. The SizeInMBs and IntervalInSeconds parameters are optional\\. However, if you specify a value for one of them, you must also provide a value for the other\\. \n*Required*: No \n*Type*: [BufferingHints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-bufferinghints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CloudWatchLoggingOptions": "Describes the Amazon CloudWatch logging options for your delivery stream\\. \n*Required*: No \n*Type*: [CloudWatchLoggingOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EndpointConfiguration": "The configuration of the HTTP endpoint selected as the destination\\. \n*Required*: Yes \n*Type*: [HttpEndpointConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProcessingConfiguration": "Describes the data processing configuration\\. \n*Required*: No \n*Type*: [ProcessingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequestConfiguration": "The configuration of the request sent to the HTTP endpoint specified as the destination\\. \n*Required*: No \n*Type*: [HttpEndpointRequestConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointrequestconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetryOptions": "Describes the retry behavior in case Kinesis Data Firehose is unable to deliver data to the specified HTTP endpoint destination, or if it doesn't receive a valid acknowledgment of receipt from the specified HTTP endpoint destination\\. \n*Required*: No \n*Type*: [RetryOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-retryoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleARN": "Kinesis Data Firehose uses this IAM role for all the permissions that the delivery stream needs\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3BackupMode": "Describes the S3 bucket backup options for the data that Kinesis Data Firehose delivers to the HTTP endpoint destination\\. You can back up all documents \\(AllData\\) or only the documents that Kinesis Data Firehose could not deliver to the specified HTTP endpoint destination \\(FailedDataOnly\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AllData | FailedDataOnly` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Configuration": "Describes the configuration of a destination in Amazon S3\\. \n*Required*: Yes \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream HttpEndpointRequestConfiguration": { + "CommonAttributes": "Describes the metadata sent to the HTTP endpoint destination\\. \n*Required*: No \n*Type*: List of [HttpEndpointCommonAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointcommonattribute.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContentEncoding": "Kinesis Data Firehose uses the content encoding to compress the body of a request before sending the request to the destination\\. For more information, see Content\\-Encoding in MDN Web Docs, the official Mozilla documentation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GZIP | NONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream InputFormatConfiguration": { + "Deserializer": "Specifies which deserializer to use\\. You can choose either the Apache Hive JSON SerDe or the OpenX JSON SerDe\\. If both are non\\-null, the server rejects the request\\. \n*Required*: No \n*Type*: [Deserializer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deserializer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream KMSEncryptionConfig": { + "AWSKMSKeyARN": "The Amazon Resource Name \\(ARN\\) of the AWS KMS encryption key that Amazon S3 uses to encrypt data delivered by the Kinesis Data Firehose stream\\. The key must belong to the same region as the destination S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream KinesisStreamSourceConfiguration": { + "KinesisStreamARN": "The ARN of the source Kinesis data stream\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RoleARN": "The ARN of the role that provides access to the source Kinesis data stream\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::KinesisFirehose::DeliveryStream OpenXJsonSerDe": { + "CaseInsensitive": "When set to `true`, which is the default, Kinesis Data Firehose converts JSON keys to lowercase before deserializing them\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ColumnToJsonKeyMappings": "Maps column names to JSON keys that aren't identical to the column names\\. This is useful when the JSON contains keys that are Hive keywords\\. For example, `timestamp` is a Hive keyword\\. If you have a JSON key named `timestamp`, set this parameter to `{\"ts\": \"timestamp\"}` to map this key to a column named `ts`\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConvertDotsInJsonKeysToUnderscores": "When set to `true`, specifies that the names of the keys include dots and that you want Kinesis Data Firehose to replace them with underscores\\. This is useful because Apache Hive does not allow dots in column names\\. For example, if the JSON contains a key whose name is \"a\\.b\", you can define the column name to be \"a\\_b\" when using this option\\. \nThe default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream OrcSerDe": { + "BlockSizeBytes": "The Hadoop Distributed File System \\(HDFS\\) block size\\. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying\\. The default is 256 MiB and the minimum is 64 MiB\\. Kinesis Data Firehose uses this value for padding calculations\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `67108864` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BloomFilterColumns": "The column names for which you want Kinesis Data Firehose to create bloom filters\\. The default is `null`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BloomFilterFalsePositiveProbability": "The Bloom filter false positive probability \\(FPP\\)\\. The lower the FPP, the bigger the Bloom filter\\. The default value is 0\\.05, the minimum is 0, and the maximum is 1\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Compression": "The compression code to use over data blocks\\. The default is `SNAPPY`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | SNAPPY | ZLIB` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DictionaryKeyThreshold": "Represents the fraction of the total number of non\\-null rows\\. To turn off dictionary encoding, set this fraction to a number that is less than the number of distinct keys in a dictionary\\. To always use dictionary encoding, set this threshold to 1\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnablePadding": "Set this to `true` to indicate that you want stripes to be padded to the HDFS block boundaries\\. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FormatVersion": "The version of the file to write\\. The possible values are `V0_11` and `V0_12`\\. The default is `V0_12`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `V0_11 | V0_12` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PaddingTolerance": "A number between 0 and 1 that defines the tolerance for block padding as a decimal fraction of stripe size\\. The default value is 0\\.05, which means 5 percent of stripe size\\. \nFor the default values of 64 MiB ORC stripes and 256 MiB HDFS blocks, the default block padding tolerance of 5 percent reserves a maximum of 3\\.2 MiB for padding within the 256 MiB block\\. In such a case, if the available size within the block is more than 3\\.2 MiB, a new, smaller stripe is inserted to fit within that space\\. This ensures that no stripe crosses block boundaries and causes remote reads within a node\\-local task\\. \nKinesis Data Firehose ignores this parameter when `EnablePadding` is `false`\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RowIndexStride": "The number of rows between index entries\\. The default is 10,000 and the minimum is 1,000\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StripeSizeBytes": "The number of bytes in each stripe\\. The default is 64 MiB and the minimum is 8 MiB\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `8388608` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream OutputFormatConfiguration": { + "Serializer": "Specifies which serializer to use\\. You can choose either the ORC SerDe or the Parquet SerDe\\. If both are non\\-null, the server rejects the request\\. \n*Required*: No \n*Type*: [Serializer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-serializer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream ParquetSerDe": { + "BlockSizeBytes": "The Hadoop Distributed File System \\(HDFS\\) block size\\. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying\\. The default is 256 MiB and the minimum is 64 MiB\\. Kinesis Data Firehose uses this value for padding calculations\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `67108864` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Compression": "The compression code to use over data blocks\\. The possible values are `UNCOMPRESSED`, `SNAPPY`, and `GZIP`, with the default being `SNAPPY`\\. Use `SNAPPY` for higher decompression speed\\. Use `GZIP` if the compression ratio is more important than speed\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GZIP | SNAPPY | UNCOMPRESSED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableDictionaryCompression": "Indicates whether to enable dictionary compression\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxPaddingBytes": "The maximum amount of padding to apply\\. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying\\. The default is 0\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PageSizeBytes": "The Parquet page size\\. Column chunks are divided into pages\\. A page is conceptually an indivisible unit \\(in terms of compression and encoding\\)\\. The minimum value is 64 KiB and the default is 1 MiB\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `65536` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WriterVersion": "Indicates the version of row format to output\\. The possible values are `V1` and `V2`\\. The default is `V1`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `V1 | V2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream ProcessingConfiguration": { + "Enabled": "Indicates whether data processing is enabled \\(true\\) or disabled \\(false\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Processors": "The data processors\\. \n*Required*: No \n*Type*: List of [Processor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream Processor": { + "Parameters": "The processor parameters\\. \n*Required*: No \n*Type*: List of [ProcessorParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processorparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of processor\\. Valid values: `Lambda`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AppendDelimiterToRecord | Lambda | MetadataExtraction | RecordDeAggregation` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream ProcessorParameter": { + "ParameterName": "The name of the parameter\\. Currently the following default values are supported: 3 for `NumberOfRetries`, 60 for the `BufferIntervalInSeconds`, and 3 for the `BufferSizeInMBs`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BufferIntervalInSeconds | BufferSizeInMBs | Delimiter | JsonParsingEngine | LambdaArn | MetadataExtractionQuery | NumberOfRetries | RoleArn | SubRecordType` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParameterValue": "The parameter value\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `5120` \n*Pattern*: `^(?!\\s*$).+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::KinesisFirehose::DeliveryStream RedshiftDestinationConfiguration": { + "CloudWatchLoggingOptions": "The CloudWatch logging options for your delivery stream\\. \n*Required*: No \n*Type*: [CloudWatchLoggingOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClusterJDBCURL": "The connection string that Kinesis Data Firehose uses to connect to the Amazon Redshift cluster\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `jdbc:(redshift|postgresql)://((?!-)[A-Za-z0-9-]{1,63}(?\"\\)\nRepresent Unicode characters with four digits, for example \"\\]u0041\" or \"\\\\u005A\"\\. \nThe following regular expression operators are not supported: \n+ Infinite repeaters: \\*, \\+, or \\{x,\\} with no upper bound\n+ Wild card \\(\\.\\)\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::Bot SlotValueSelectionSetting": { + "AdvancedRecognitionSetting": "Specifies settings that enable advanced recognition settings for slot values\\. You can use this to enable using slot values as a custom vocabulary for recognizing user utterances\\. \n*Required*: No \n*Type*: [AdvancedRecognitionSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-advancedrecognitionsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegexFilter": "A regular expression used to validate the value of a slot\\. \n*Required*: No \n*Type*: [SlotValueRegexFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-slotvalueregexfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResolutionStrategy": "Determines the slot resolution strategy that Amazon Lex uses to return slot type values\\. The field can be set to one of the following values: \n+ OriginalValue \\- Returns the value entered by the user, if the user value is similar to a slot value\\.\n+ TopResolution \\- If there is a resolution list for the slot, return the first value in the resolution list as the slot type value\\. If there is no resolution list, null is returned\\.\nIf you don't specify the valueSelectionStrategy, the default is OriginalValue\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::Bot StillWaitingResponseSpecification": { + "AllowInterrupt": "Indicates that the user can interrupt the response by speaking while the message is being played\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FrequencyInSeconds": "How often a message should be sent to the user\\. Minimum of 1 second, maximum of 5 minutes\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MessageGroupsList": "A collection of responses that Amazon Lex can send to the user\\. Amazon Lex chooses the actual response to send at runtime\\. \n*Required*: Yes \n*Type*: List of [MessageGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-messagegroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeoutInSeconds": "If Amazon Lex waits longer than this length of time for a response, it will stop sending messages\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::Bot TestBotAliasSettings": { + "BotAliasLocaleSettings": "Specifies settings that are unique to a locale\\. For example, you can use a different Lambda function depending on the bot's locale\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-botaliaslocalesettings.html) of [BotAliasLocaleSettingsItem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-botaliaslocalesettingsitem.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConversationLogSettings": "Specifies settings for conversation logs that save audio, text, and metadata information for conversations with your users\\. \n*Required*: No \n*Type*: [ConversationLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-conversationlogsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "Specifies a description for the test bot alias\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SentimentAnalysisSettings": "Specifies whether Amazon Lex will use Amazon Comprehend to detect the sentiment of user utterances\\. \n*Required*: No \n*Type*: [SentimentAnalysisSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-sentimentanalysissettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::Bot TextInputSpecification": { + "StartTimeoutMs": "Property description not available\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::Bot TextLogDestination": { + "CloudWatch": "Specifies the Amazon CloudWatch Logs log group where text and metadata logs are delivered\\. \n*Required*: Yes \n*Type*: [CloudWatchLogGroupLogDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-cloudwatchloggrouplogdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::Bot TextLogSetting": { + "Destination": "Specifies the Amazon CloudWatch Logs destination log group for conversation text logs\\. \n*Required*: Yes \n*Type*: [TextLogDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-textlogdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Specifies whether conversation logs should be stored for an alias\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::Bot VoiceSettings": { + "Engine": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VoiceId": "The Amazon Polly voice used for voice interaction with the user\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::Bot WaitAndContinueSpecification": { + "ContinueResponse": "The response that Amazon Lex sends to indicate that the bot is ready to continue the conversation\\. \n*Required*: Yes \n*Type*: [ResponseSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-responsespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IsActive": "Specifies whether the bot will wait for a user to respond\\. When this field is false, wait and continue responses for a slot aren't used and the bot expects an appropriate response within the configured timeout\\. If the IsActive field isn't specified, the default is true\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StillWaitingResponse": "A response that Amazon Lex sends periodically to the user to indicate that the bot is still waiting for input from the user\\. \n*Required*: No \n*Type*: [StillWaitingResponseSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-stillwaitingresponsespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WaitingResponse": "The response that Amazon Lex sends to indicate that the bot is waiting for the conversation to continue\\. \n*Required*: Yes \n*Type*: [ResponseSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-responsespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::BotAlias": { + "BotAliasLocaleSettings": "Maps configuration information to a specific locale\\. You can use this parameter to specify a specific Lambda function to run different functions in different locales\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-botaliaslocalesettings.html) of [BotAliasLocaleSettingsItem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-botaliaslocalesettingsitem.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BotAliasName": "The name of the bot alias\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^([0-9a-zA-Z][_-]?)+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BotAliasTags": "An array of key\\-value pairs to apply to this resource\\. \nYou can only add tags when you specify an alias\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BotId": "The unique identifier of the bot\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BotVersion": "The version of the bot that the bot alias references\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `5` \n*Pattern*: `^(DRAFT|[0-9]+)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConversationLogSettings": "Specifies whether Amazon Lex logs text and audio for conversations with the bot\\. When you enable conversation logs, text logs store text input, transcripts of audio input, and associated metadata in Amazon CloudWatch logs\\. Audio logs store input in Amazon S3\\. \n*Required*: No \n*Type*: [ConversationLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-conversationlogsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the bot alias\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SentimentAnalysisSettings": "Determines whether Amazon Lex will use Amazon Comprehend to detect the sentiment of user utterances\\. \n*Required*: No \n*Type*: [SentimentAnalysisSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-sentimentanalysissettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::BotAlias AudioLogDestination": { + "S3Bucket": "The S3 bucket location where audio logs are stored\\. \n*Required*: Yes \n*Type*: [S3BucketLogDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-s3bucketlogdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::BotAlias AudioLogSetting": { + "Destination": "The location of audio log files collected when conversation logging is enabled for a bot\\. \n*Required*: Yes \n*Type*: [AudioLogDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-audiologdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Determines whether audio logging in enabled for the bot\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::BotAlias BotAliasLocaleSettings": { + "CodeHookSpecification": "Specifies the Lambda function that should be used in the locale\\. \n*Required*: No \n*Type*: [CodeHookSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-codehookspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Determines whether the locale is enabled for the bot\\. If the value is false, the locale isn't available for use\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::BotAlias BotAliasLocaleSettingsItem": { + "BotAliasLocaleSetting": "Specifies settings that are unique to a locale\\. \n*Required*: Yes \n*Type*: [BotAliasLocaleSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-botaliaslocalesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LocaleId": "The unique identifier of the locale\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::BotAlias CloudWatchLogGroupLogDestination": { + "CloudWatchLogGroupArn": "The Amazon Resource Name \\(ARN\\) of the log group where text and metadata logs are delivered\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogPrefix": "The prefix of the log stream name within the log group that you specified\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::BotAlias CodeHookSpecification": { + "LambdaCodeHook": "Specifies a Lambda function that verifies requests to a bot or fulfills the user's request to a bot\\. \n*Required*: Yes \n*Type*: [LambdaCodeHook](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-lambdacodehook.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::BotAlias ConversationLogSettings": { + "AudioLogSettings": "The Amazon S3 settings for logging audio to an S3 bucket\\. \n*Required*: No \n*Type*: List of [AudioLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-audiologsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextLogSettings": "The Amazon CloudWatch Logs settings for logging text and metadata\\. \n*Required*: No \n*Type*: List of [TextLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-textlogsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::BotAlias LambdaCodeHook": { + "CodeHookInterfaceVersion": "The version of the request\\-response that you want Amazon Lex to use to invoke your Lambda function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LambdaArn": "The Amazon Resource Name \\(ARN\\) of the Lambda function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::BotAlias S3BucketLogDestination": { + "KmsKeyArn": "The Amazon Resource Name \\(ARN\\) of an AWS Key Management Service key for encrypting audio log files stored in an S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogPrefix": "The S3 prefix to assign to audio log files\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3BucketArn": "The Amazon Resource Name \\(ARN\\) of an Amazon S3 bucket where audio log files are stored\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::BotAlias SentimentAnalysisSettings": { + "DetectSentiment": "Property description not available\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::BotAlias TextLogDestination": { + "CloudWatch": "Defines the Amazon CloudWatch Logs log group where text and metadata logs are delivered\\. \n*Required*: Yes \n*Type*: [CloudWatchLogGroupLogDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-cloudwatchloggrouplogdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::BotAlias TextLogSetting": { + "Destination": "Defines the Amazon CloudWatch Logs destination log group for conversation text logs\\. \n*Required*: Yes \n*Type*: [TextLogDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-textlogdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Determines whether conversation logs should be stored for an alias\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::BotVersion": { + "BotId": "The unique identifier of the bot\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BotVersionLocaleSpecification": "Specifies the locales that Amazon Lex adds to this version\\. You can choose the Draft version or any other previously published version for each locale\\. When you specify a source version, the locale data is copied from the source version to the new version\\. \n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botversion-botversionlocalespecification.html) of [BotVersionLocaleSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botversion-botversionlocalespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the version\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::BotVersion BotVersionLocaleDetails": { + "SourceBotVersion": "The version of a bot used for a bot locale\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::BotVersion BotVersionLocaleSpecification": { + "BotVersionLocaleDetails": "The version of a bot used for a bot locale\\. \n*Required*: Yes \n*Type*: [BotVersionLocaleDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botversion-botversionlocaledetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LocaleId": "The identifier of the locale to add to the version\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lex::ResourcePolicy": { + "Policy": "A resource policy to add to the resource\\. The policy is a JSON structure that contains one or more statements that define the policy\\. The policy must follow IAM syntax\\. If the policy isn't valid, Amazon Lex returns a validation exception\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceArn": "The Amazon Resource Name \\(ARN\\) of the bot or bot alias that the resource policy is attached to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LicenseManager::Grant": { + "AllowedOperations": "Allowed operations for the grant\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GrantName": "Grant name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HomeRegion": "Home Region of the grant\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LicenseArn": "License ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Principals": "The grant principals\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Status": "Granted license status\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LicenseManager::License": { + "Beneficiary": "License beneficiary\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConsumptionConfiguration": "Configuration for consumption of the license\\. \n*Required*: Yes \n*Type*: [ConsumptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-consumptionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Entitlements": "License entitlements\\. \n*Required*: Yes \n*Type*: List of [Entitlement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-entitlement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HomeRegion": "Home Region of the license\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Issuer": "License issuer\\. \n*Required*: Yes \n*Type*: [IssuerData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-issuerdata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LicenseMetadata": "License metadata\\. \n*Required*: No \n*Type*: List of [Metadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-metadata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LicenseName": "License name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProductName": "Product name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProductSKU": "Product SKU\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Status": "License status\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Validity": "Date and time range during which the license is valid, in ISO8601\\-UTC format\\. \n*Required*: Yes \n*Type*: [ValidityDateFormat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-validitydateformat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LicenseManager::License BorrowConfiguration": { + "AllowEarlyCheckIn": "Indicates whether early check\\-ins are allowed\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxTimeToLiveInMinutes": "Maximum time for the borrow configuration, in minutes\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LicenseManager::License ConsumptionConfiguration": { + "BorrowConfiguration": "Details about a borrow configuration\\. \n*Required*: No \n*Type*: [BorrowConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-borrowconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProvisionalConfiguration": "Details about a provisional configuration\\. \n*Required*: No \n*Type*: [ProvisionalConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-provisionalconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RenewType": "Renewal frequency\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LicenseManager::License Entitlement": { + "AllowCheckIn": "Indicates whether check\\-ins are allowed\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxCount": "Maximum entitlement count\\. Use if the unit is not None\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "Entitlement name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Overage": "Indicates whether overages are allowed\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Unit": "Entitlement unit\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "Entitlement resource\\. Use only if the unit is None\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LicenseManager::License IssuerData": { + "Name": "Issuer name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SignKey": "Asymmetric KMS key from AWS Key Management Service\\. The KMS key must have a key usage of sign and verify, and support the RSASSA\\-PSS SHA\\-256 signing algorithm\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LicenseManager::License Metadata": { + "Name": "The key name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LicenseManager::License ProvisionalConfiguration": { + "MaxTimeToLiveInMinutes": "Maximum time for the provisional configuration, in minutes\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LicenseManager::License ValidityDateFormat": { + "Begin": "Start of the time range\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "End": "End of the time range\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Alarm": { + "AlarmName": "The name of the alarm\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ComparisonOperator": "The arithmetic operation to use when comparing the specified statistic and threshold\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GreaterThanOrEqualToThreshold | GreaterThanThreshold | LessThanOrEqualToThreshold | LessThanThreshold` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContactProtocols": "The contact protocols for the alarm, such as `Email`, `SMS` \\(text messaging\\), or both\\. \n*Allowed Values*: `Email` \\| `SMS` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatapointsToAlarm": "The number of data points within the evaluation periods that must be breaching to cause the alarm to go to the `ALARM` state\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EvaluationPeriods": "The number of periods over which data is compared to the specified threshold\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricName": "The name of the metric associated with the alarm\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BurstCapacityPercentage | BurstCapacityTime | ClientTLSNegotiationErrorCount | CPUUtilization | DatabaseConnections | DiskQueueDepth | FreeStorageSpace | HealthyHostCount | HTTPCode_Instance_2XX_Count | HTTPCode_Instance_3XX_Count | HTTPCode_Instance_4XX_Count | HTTPCode_Instance_5XX_Count | HTTPCode_LB_4XX_Count | HTTPCode_LB_5XX_Count | InstanceResponseTime | NetworkIn | NetworkOut | NetworkReceiveThroughput | NetworkTransmitThroughput | RejectedConnectionCount | RequestCount | StatusCheckFailed | StatusCheckFailed_Instance | StatusCheckFailed_System | UnhealthyHostCount` \n*Update requires*: Updates are not supported\\.", + "MonitoredResourceName": "The name of the Lightsail resource that the alarm monitors\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "NotificationEnabled": "A Boolean value indicating whether the alarm is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotificationTriggers": "The alarm states that trigger a notification\\. \nTo specify the `OK` and `INSUFFICIENT_DATA` values, you must also specify `ContactProtocols` values\\. Otherwise, the `OK` and `INSUFFICIENT_DATA` values will not take effect and the stack will drift\\.\n*Allowed Values*: `OK` \\| `ALARM` \\| `INSUFFICIENT_DATA` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Threshold": "The value against which the specified statistic is compared\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TreatMissingData": "Specifies how the alarm handles missing data points\\. \nAn alarm can treat missing data in the following ways: \n+ `breaching` \\- Assumes the missing data is not within the threshold\\. Missing data counts towards the number of times that the metric is not within the threshold\\.\n+ `notBreaching` \\- Assumes the missing data is within the threshold\\. Missing data does not count towards the number of times that the metric is not within the threshold\\.\n+ `ignore` \\- Ignores the missing data\\. Maintains the current alarm state\\.\n+ `missing` \\- Missing data is treated as missing\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `breaching | ignore | missing | notBreaching` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Bucket": { + "AccessRules": "An object that describes the access rules for the bucket\\. \n*Required*: No \n*Type*: [AccessRules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-bucket-accessrules.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BucketName": "The name of the bucket\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BundleId": "The bundle ID for the bucket \\(for example, `small_1_0`\\)\\. \nA bucket bundle specifies the monthly cost, storage space, and data transfer quota for a bucket\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ObjectVersioning": "Indicates whether object versioning is enabled for the bucket\\. \nThe following options can be configured: \n+ `Enabled` \\- Object versioning is enabled\\.\n+ `Suspended` \\- Object versioning was previously enabled but is currently suspended\\. Existing object versions are retained\\.\n+ `NeverEnabled` \\- Object versioning has never been enabled\\.\n*Required*: No \n*Type*: Boolean \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReadOnlyAccessAccounts": "An array of AWS account IDs that have read\\-only access to the bucket\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourcesReceivingAccess": "An array of Lightsail instances that have access to the bucket\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Bucket AccessRules": { + "AllowPublicOverrides": "A Boolean value indicating whether the access control list \\(ACL\\) permissions that are applied to individual objects override the `GetObject` option that is currently specified\\. \nWhen this is true, you can use the [PutObjectAcl](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html) Amazon S3 API operation to set individual objects to public \\(read\\-only\\) or private, using either the `public-read` ACL or the `private` ACL\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GetObject": "Specifies the anonymous access to all objects in a bucket\\. \nThe following options can be specified: \n+ `public` \\- Sets all objects in the bucket to public \\(read\\-only\\), making them readable by everyone on the internet\\." + }, + "AWS::Lightsail::Certificate": { + "CertificateName": "The name of the certificate\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DomainName": "The domain name of the certificate\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "SubjectAlternativeNames": "An array of strings that specify the alternate domains \\(such as `example.org`\\) and subdomains \\(such as `blog.example.com`\\) of the certificate\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: Updates are not supported\\.", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Container": { + "ContainerServiceDeployment": "An object that describes the current container deployment of the container service\\. \n*Required*: No \n*Type*: [ContainerServiceDeployment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-containerservicedeployment.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "IsDisabled": "A Boolean value indicating whether the container service is disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Power": "The power specification of the container service\\. \nThe power specifies the amount of RAM, the number of vCPUs, and the base price of the container service\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `large | medium | micro | nano | small | xlarge` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PublicDomainNames": "The public domain name of the container service, such as `example.com` and `www.example.com`\\. \nYou can specify up to four public domain names for a container service\\. The domain names that you specify are used when you create a deployment with a container that is configured as the public endpoint of your container service\\. \nIf you don't specify public domain names, then you can use the default domain of the container service\\. \nYou must create and validate an SSL/TLS certificate before you can use public domain names with your container service\\. Use the [AWS::Lightsail::Certificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-certificate.html) resource to create a certificate for the public domain names that you want to use with your container service\\.\n*Required*: No \n*Type*: List of [PublicDomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-publicdomainname.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scale": "The scale specification of the container service\\. \nThe scale specifies the allocated compute nodes of the container service\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceName": "The name of the container service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Container Container": { + "Command": "The launch command for the container\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContainerName": "The name of the container\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Environment": "The environment variables of the container\\. \n*Required*: No \n*Type*: List of [EnvironmentVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-environmentvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Image": "The name of the image used for the container\\. \nContainer images that are sourced from \\(registered and stored on\\) your container service start with a colon \\(`:`\\)\\. For example, if your container service name is `container-service-1`, the container image label is `mystaticsite`, and you want to use the third version \\(`3`\\) of the registered container image, then you should specify `:container-service-1.mystaticsite.3`\\. To use the latest version of a container image, specify `latest` instead of a version number \\(for example, `:container-service-1.mystaticsite.latest`\\)\\. Your container service will automatically use the highest numbered version of the registered container image\\. \nContainer images that are sourced from a public registry like Docker Hub don\u2019t start with a colon\\. For example, `nginx:latest` or `nginx`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ports": "An object that describes the open firewall ports and protocols of the container\\. \n*Required*: No \n*Type*: List of [PortInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-portinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Container ContainerServiceDeployment": { + "Containers": "An object that describes the configuration for the containers of the deployment\\. \n*Required*: No \n*Type*: List of [Container](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-container.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PublicEndpoint": "An object that describes the endpoint of the deployment\\. \n*Required*: No \n*Type*: [PublicEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-publicendpoint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Container EnvironmentVariable": { + "Value": "The environment variable value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Variable": "The environment variable key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Container HealthCheckConfig": { + "HealthyThreshold": "The number of consecutive health check successes required before moving the container to the `Healthy` state\\. The default value is `2`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntervalSeconds": "The approximate interval, in seconds, between health checks of an individual container\\. You can specify between `5` and `300` seconds\\. The default value is `5`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Path": "The path on the container on which to perform the health check\\. The default value is `/`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SuccessCodes": "The HTTP codes to use when checking for a successful response from a container\\. You can specify values between `200` and `499`\\. You can specify multiple values \\(for example, `200,202`\\) or a range of values \\(for example, `200-299`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeoutSeconds": "The amount of time, in seconds, during which no response means a failed health check\\. You can specify between `2` and `60` seconds\\. The default value is `2`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UnhealthyThreshold": "The number of consecutive health check failures required before moving the container to the `Unhealthy` state\\. The default value is `2`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Container PortInfo": { + "Port": "The open firewall ports of the container\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "The protocol name for the open ports\\. \n*Allowed values*: `HTTP` \\| `HTTPS` \\| `TCP` \\| `UDP` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Container PublicDomainName": { + "CertificateName": "The name of the certificate for the public domains\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainNames": "The public domain names to use with the container service\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Container PublicEndpoint": { + "ContainerName": "The name of the container entry of the deployment that the endpoint configuration applies to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContainerPort": "The port of the specified container to which traffic is forwarded to\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthCheckConfig": "An object that describes the health check configuration of the container\\. \n*Required*: No \n*Type*: [HealthCheckConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-healthcheckconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Database": { + "AvailabilityZone": "The Availability Zone for the database\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "BackupRetention": "A Boolean value indicating whether automated backup retention is enabled for the database\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "CaCertificateIdentifier": "The certificate associated with the database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MasterDatabaseName": "The meaning of this parameter differs according to the database engine you use\\. \n **MySQL** \nThe name of the database to create when the Lightsail database resource is created\\. If this parameter isn't specified, no database is created in the database resource\\. \nConstraints: \n+ Must contain 1\\-64 letters or numbers\\.\n+ Must begin with a letter\\. Subsequent characters can be letters, underscores, or numbers \\(0\\-9\\)\\.\n+ Can't be a word reserved by the specified database engine\\.", + "MasterUserPassword": "The password for the primary user of the database\\. The password can include any printable ASCII character except the following: /, \", or @\\. It cannot contain spaces\\. \nThe `MasterUserPassword` and `RotateMasterUserPassword` parameters cannot be used together in the same template\\.\n **MySQL** \nConstraints: Must contain 8\\-41 characters\\. \n **PostgreSQL** \nConstraints: Must contain 8\\-128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MasterUsername": "The name for the primary user\\. \n **MySQL** \nConstraints: \n+ Required for MySQL\\.\n+ Must be 1\\-16 letters or numbers\\. Can contain underscores\\.\n+ First character must be a letter\\.\n+ Can't be a reserved word for the chosen database engine\\.", + "PreferredBackupWindow": "The daily time range during which automated backups are created for the database \\(for example, `16:00-16:30`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreferredMaintenanceWindow": "The weekly time range during which system maintenance can occur for the database, formatted as follows: `ddd:hh24:mi-ddd:hh24:mi`\\. For example, `Tue:17:00-Tue:17:30`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PubliclyAccessible": "A Boolean value indicating whether the database is accessible to anyone on the internet\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RelationalDatabaseBlueprintId": "The blueprint ID for the database \\(for example, `mysql_8_0`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "RelationalDatabaseBundleId": "The bundle ID for the database \\(for example, `medium_1_0`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "RelationalDatabaseName": "The name of the instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RelationalDatabaseParameters": "An array of parameters for the database\\. \n*Required*: No \n*Type*: List of [RelationalDatabaseParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-database-relationaldatabaseparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RotateMasterUserPassword": "A Boolean value indicating whether to change the primary user password to a new, strong password generated by Lightsail\\. \nThe `RotateMasterUserPassword` and `MasterUserPassword` parameters cannot be used together in the same template\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Database RelationalDatabaseParameter": { + "AllowedValues": "The valid range of values for the parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ApplyMethod": "Indicates when parameter updates are applied\\. \nCan be `immediate` or `pending-reboot`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ApplyType": "Specifies the engine\\-specific parameter type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataType": "The valid data type of the parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IsModifiable": "A Boolean value indicating whether the parameter can be modified\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParameterName": "The name of the parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParameterValue": "The value for the parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Disk": { + "AddOns": "An array of add\\-ons for the disk\\. \nIf the disk has an add\\-on enabled when performing a delete disk request, the add\\-on is automatically disabled before the disk is deleted\\.\n*Required*: No \n*Type*: List of [AddOn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-disk-addon.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AvailabilityZone": "The AWS Region and Availability Zone location for the disk \\(for example, `us-east-1a`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "DiskName": "The name of the disk\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `\\w[\\w\\-]*\\w` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SizeInGb": "The size of the disk in GB\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: Updates are not supported\\.", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Disk AddOn": { + "AddOnType": "The add\\-on type \\(for example, `AutoSnapshot`\\)\\. \n`AutoSnapshot` is the only add\\-on that can be enabled for a disk\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutoSnapshotAddOnRequest": "The parameters for the automatic snapshot add\\-on, such as the daily time when an automatic snapshot will be created\\. \n*Required*: No \n*Type*: [AutoSnapshotAddOn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-disk-autosnapshotaddon.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Status": "The status of the add\\-on\\. \nValid Values: `Enabled` \\| `Disabled` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Disk AutoSnapshotAddOn": { + "SnapshotTimeOfDay": "The daily time when an automatic snapshot will be created\\. \nConstraints: \n+ Must be in `HH:00` format, and in an hourly increment\\.\n+ Specified in Coordinated Universal Time \\(UTC\\)\\.\n+ The snapshot will be automatically created between the time specified and up to 45 minutes after\\.\n*Required*: No \n*Type*: String \n*Pattern*: `^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Distribution": { + "BundleId": "The ID of the bundle applied to the distribution\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CacheBehaviorSettings": "An object that describes the cache behavior settings of the distribution\\. \n*Required*: No \n*Type*: [CacheSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-cachesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CacheBehaviors": "An array of objects that describe the per\\-path cache behavior of the distribution\\. \n*Required*: No \n*Type*: List of [CacheBehaviorPerPath](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-cachebehaviorperpath.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CertificateName": "The name of the SSL/TLS certificate attached to the distribution\\. \n*Required*: No \n*Type*: String \n*Pattern*: `\\w[\\w\\-]*\\w` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultCacheBehavior": "An object that describes the default cache behavior of the distribution\\. \n*Required*: Yes \n*Type*: [CacheBehavior](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-cachebehavior.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DistributionName": "The name of the distribution \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IpAddressType": "The IP address type of the distribution\\. \nThe possible values are `ipv4` for IPv4 only, and `dualstack` for IPv4 and IPv6\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dualstack | ipv4` \n*Update requires*: Updates are not supported\\.", + "IsEnabled": "A Boolean value indicating whether the distribution is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Origin": "An object that describes the origin resource of the distribution, such as a Lightsail instance, bucket, or load balancer\\. \nThe distribution pulls, caches, and serves content from the origin\\. \n*Required*: Yes \n*Type*: [InputOrigin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-inputorigin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Distribution CacheBehavior": { + "Behavior": "The cache behavior of the distribution\\. \nThe following cache behaviors can be specified: \n+ ** `cache` ** \\- This option is best for static sites\\. When specified, your distribution caches and serves your entire website as static content\\. This behavior is ideal for websites with static content that doesn't change depending on who views it, or for websites that don't use cookies, headers, or query strings to personalize content\\.\n+ ** `dont-cache` ** \\- This option is best for sites that serve a mix of static and dynamic content\\. When specified, your distribution caches and serves only the content that is specified in the distribution\u2019s `CacheBehaviorPerPath` parameter\\. This behavior is ideal for websites or web applications that use cookies, headers, and query strings to personalize content for individual users\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `cache | dont-cache` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Distribution CacheBehaviorPerPath": { + "Behavior": "The cache behavior for the specified path\\. \nYou can specify one of the following per\\-path cache behaviors: \n+ ** `cache` ** \\- This behavior caches the specified path\\. \n+ ** `dont-cache` ** \\- This behavior doesn't cache the specified path\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `cache | dont-cache` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Path": "The path to a directory or file to cache, or not cache\\. Use an asterisk symbol to specify wildcard directories \\(`path/to/assets/*`\\), and file types \\(`*.html`, `*jpg`, `*js`\\)\\. Directories and file paths are case\\-sensitive\\. \nExamples: \n+ Specify the following to cache all files in the document root of an Apache web server running on a instance\\." + }, + "AWS::Lightsail::Distribution CacheSettings": { + "AllowedHTTPMethods": "The HTTP methods that are processed and forwarded to the distribution's origin\\. \nYou can specify the following options: \n+ `GET,HEAD` \\- The distribution forwards the `GET` and `HEAD` methods\\.\n+ `GET,HEAD,OPTIONS` \\- The distribution forwards the `GET`, `HEAD`, and `OPTIONS` methods\\.\n+ `GET,HEAD,OPTIONS,PUT,PATCH,POST,DELETE` \\- The distribution forwards the `GET`, `HEAD`, `OPTIONS`, `PUT`, `PATCH`, `POST`, and `DELETE` methods\\.\nIf you specify `GET,HEAD,OPTIONS,PUT,PATCH,POST,DELETE`, you might need to restrict access to your distribution's origin so users can't perform operations that you don't want them to\\. For example, you might not want users to have permission to delete objects from your origin\\. \n*Required*: No \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CachedHTTPMethods": "The HTTP method responses that are cached by your distribution\\. \nYou can specify the following options: \n+ `GET,HEAD` \\- The distribution caches responses to the `GET` and `HEAD` methods\\.\n+ `GET,HEAD,OPTIONS` \\- The distribution caches responses to the `GET`, `HEAD`, and `OPTIONS` methods\\.\n*Required*: No \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultTTL": "The default amount of time that objects stay in the distribution's cache before the distribution forwards another request to the origin to determine whether the content has been updated\\. \nThe value specified applies only when the origin does not add HTTP headers such as `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to objects\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ForwardedCookies": "An object that describes the cookies that are forwarded to the origin\\. Your content is cached based on the cookies that are forwarded\\. \n*Required*: No \n*Type*: [CookieObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-cookieobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ForwardedHeaders": "An object that describes the headers that are forwarded to the origin\\. Your content is cached based on the headers that are forwarded\\. \n*Required*: No \n*Type*: [HeaderObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-headerobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ForwardedQueryStrings": "An object that describes the query strings that are forwarded to the origin\\. Your content is cached based on the query strings that are forwarded\\. \n*Required*: No \n*Type*: [QueryStringObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-querystringobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaximumTTL": "The maximum amount of time that objects stay in the distribution's cache before the distribution forwards another request to the origin to determine whether the object has been updated\\. \nThe value specified applies only when the origin adds HTTP headers such as `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to objects\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinimumTTL": "The minimum amount of time that objects stay in the distribution's cache before the distribution forwards another request to the origin to determine whether the object has been updated\\. \nA value of `0` must be specified for `minimumTTL` if the distribution is configured to forward all headers to the origin\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Distribution CookieObject": { + "CookiesAllowList": "The specific cookies to forward to your distribution's origin\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Option": "Specifies which cookies to forward to the distribution's origin for a cache behavior\\. \nUse one of the following configurations for your distribution: \n+ ** `all` ** \\- Forwards all cookies to your origin\\.\n+ ** `none` ** \\- Doesn\u2019t forward cookies to your origin\\.\n+ ** `allow-list` ** \\- Forwards only the cookies that you specify using the `CookiesAllowList` parameter\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `all | allow-list | none` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Distribution HeaderObject": { + "HeadersAllowList": "The specific headers to forward to your distribution's origin\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Option": "The headers that you want your distribution to forward to your origin\\. Your distribution caches your content based on these headers\\. \nUse one of the following configurations for your distribution: \n+ ** `all` ** \\- Forwards all headers to your origin\\.\\.\n+ ** `none` ** \\- Forwards only the default headers\\.\n+ ** `allow-list` ** \\- Forwards only the headers that you specify using the `HeadersAllowList` parameter\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `all | allow-list | none` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Distribution InputOrigin": { + "Name": "The name of the origin resource\\. \n*Required*: No \n*Type*: String \n*Pattern*: `\\w[\\w\\-]*\\w` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProtocolPolicy": "The protocol that your Amazon Lightsail distribution uses when establishing a connection with your origin to pull content\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `http-only | https-only` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegionName": "The AWS Region name of the origin resource\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ap-northeast-1 | ap-northeast-2 | ap-south-1 | ap-southeast-1 | ap-southeast-2 | ca-central-1 | eu-central-1 | eu-north-1 | eu-west-1 | eu-west-2 | eu-west-3 | us-east-1 | us-east-2 | us-west-1 | us-west-2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Distribution QueryStringObject": { + "Option": "Indicates whether the distribution forwards and caches based on query strings\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryStringsAllowList": "The specific query strings that the distribution forwards to the origin\\. \nYour distribution caches content based on the specified query strings\\. \nIf the `option` parameter is true, then your distribution forwards all query strings, regardless of what you specify using the `QueryStringsAllowList` parameter\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Instance": { + "AddOns": "An array of add\\-ons for the instance\\. \nIf the instance has an add\\-on enabled when performing a delete instance request, the add\\-on is automatically disabled before the instance is deleted\\.\n*Required*: No \n*Type*: List of [AddOn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-addon.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AvailabilityZone": "The Availability Zone for the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "BlueprintId": "The blueprint ID for the instance \\(for example, `os_amlinux_2016_03`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "BundleId": "The bundle ID for the instance \\(for example, `micro_1_0`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "Hardware": "The hardware properties for the instance, such as the vCPU count, attached disks, and amount of RAM\\. \nThe instance restarts when performing an attach disk or detach disk request\\. This resets the public IP address of your instance if a static IP isn't attached to it\\.\n*Required*: No \n*Type*: [Hardware](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-hardware.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "InstanceName": "The name of the instance\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `\\w[\\w\\-]*\\w` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KeyPairName": "The name of the key pair to use for the instance\\. \nIf no key pair name is specified, the Regional Lightsail default key pair is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Networking": "The public ports and the monthly amount of data transfer allocated for the instance\\. \n*Required*: No \n*Type*: [Networking](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-networking.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserData": "The optional launch script for the instance\\. \nSpecify a launch script to configure an instance with additional user data\\. For example, you might want to specify `apt-get -y update` as a launch script\\. \nDepending on the blueprint of your instance, the command to get software on your instance varies\\. Amazon Linux and CentOS use `yum`, Debian and Ubuntu use `apt-get`, and FreeBSD uses `pkg`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Instance AddOn": { + "AddOnType": "The add\\-on type \\(for example, `AutoSnapshot`\\)\\. \n`AutoSnapshot` is the only add\\-on that can be enabled for an instance\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutoSnapshotAddOnRequest": "The parameters for the automatic snapshot add\\-on, such as the daily time when an automatic snapshot will be created\\. \n*Required*: No \n*Type*: [AutoSnapshotAddOn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-autosnapshotaddon.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Status": "The status of the add\\-on\\. \nValid Values: `Enabled` \\| `Disabled` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Instance AutoSnapshotAddOn": { + "SnapshotTimeOfDay": "The daily time when an automatic snapshot will be created\\. \nConstraints: \n+ Must be in `HH:00` format, and in an hourly increment\\.\n+ Specified in Coordinated Universal Time \\(UTC\\)\\.\n+ The snapshot will be automatically created between the time specified and up to 45 minutes after\\.\n*Required*: No \n*Type*: String \n*Pattern*: `^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Instance Disk": { + "AttachedTo": "The resources to which the disk is attached\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "AttachmentState": "\\(Deprecated\\) The attachment state of the disk\\. \nIn releases prior to November 14, 2017, this parameter returned `attached` for system disks in the API response\\. It is now deprecated, but still included in the response\\. Use `isAttached` instead\\.\n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "DiskName": "The unique name of the disk\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IOPS": "The input/output operations per second \\(IOPS\\) of the disk\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: Updates are not supported\\.", + "IsSystemDisk": "A Boolean value indicating whether this disk is a system disk \\(has an operating system loaded on it\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: Updates are not supported\\.", + "Path": "The disk path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "SizeInGb": "The size of the disk in GB\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\." + }, + "AWS::Lightsail::Instance Hardware": { + "CpuCount": "The number of vCPUs the instance has\\. \nThe `CpuCount` property is read\\-only and should not be specified in a create instance or update instance request\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: Updates are not supported\\.", + "Disks": "The disks attached to the instance\\. \nThe instance restarts when performing an attach disk or detach disk request\\. This resets the public IP address of your instance if a static IP isn't attached to it\\. \n*Required*: No \n*Type*: List of [Disk](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-disk.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "RamSizeInGb": "The amount of RAM in GB on the instance \\(for example, `1.0`\\)\\. \nThe `RamSizeInGb` property is read\\-only and should not be specified in a create instance or update instance request\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: Updates are not supported\\." + }, + "AWS::Lightsail::Instance Location": { + "AvailabilityZone": "The Availability Zone for the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegionName": "The name of the AWS Region for the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Instance MonthlyTransfer": { + "GbPerMonthAllocated": "The amount of allocated monthly data transfer \\(in GB\\) for an instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Instance Networking": { + "MonthlyTransfer": "The monthly amount of data transfer, in GB, allocated for the instance \n*Required*: No \n*Type*: [MonthlyTransfer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-monthlytransfer.html) \n*Update requires*: Updates are not supported\\.", + "Ports": "An array of ports to open on the instance\\. \n*Required*: Yes \n*Type*: List of [Port](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Instance Port": { + "AccessDirection": "The access direction \\(`inbound` or `outbound`\\)\\. \nLightsail currently supports only `inbound` access direction\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AccessFrom": "The location from which access is allowed\\. For example, `Anywhere (0.0.0.0/0)`, or `Custom` if a specific IP address or range of IP addresses is allowed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AccessType": "The type of access \\(`Public` or `Private`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CidrListAliases": "An alias that defines access for a preconfigured range of IP addresses\\. \nThe only alias currently supported is `lightsail-connect`, which allows IP addresses of the browser\\-based RDP/SSH client in the Lightsail console to connect to your instance\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Cidrs": "The IPv4 address, or range of IPv4 addresses \\(in CIDR notation\\) that are allowed to connect to an instance through the ports, and the protocol\\. \nThe `ipv6Cidrs` parameter lists the IPv6 addresses that are allowed to connect to an instance\\.\nExamples: \n+ To allow the IP address `192.0.2.44`, specify `192.0.2.44` or `192.0.2.44/32`\\. \n+ To allow the IP addresses `192.0.2.0` to `192.0.2.255`, specify `192.0.2.0/24`\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CommonName": "The common name of the port information\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FromPort": "The first port in a range of open ports on an instance\\. \nAllowed ports: \n+ TCP and UDP \\- `0` to `65535`\n+ ICMP \\- The ICMP type for IPv4 addresses\\. For example, specify `8` as the `fromPort` \\(ICMP type\\), and `-1` as the `toPort` \\(ICMP code\\), to enable ICMP Ping\\.\n+ ICMPv6 \\- The ICMP type for IPv6 addresses\\. For example, specify `128` as the `fromPort` \\(ICMPv6 type\\), and `0` as `toPort` \\(ICMPv6 code\\)\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ipv6Cidrs": "The IPv6 address, or range of IPv6 addresses \\(in CIDR notation\\) that are allowed to connect to an instance through the ports, and the protocol\\. Only devices with an IPv6 address can connect to an instance through IPv6; otherwise, IPv4 should be used\\. \nThe `cidrs` parameter lists the IPv4 addresses that are allowed to connect to an instance\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "The IP protocol name\\. \nThe name can be one of the following: \n+ `tcp` \\- Transmission Control Protocol \\(TCP\\) provides reliable, ordered, and error\\-checked delivery of streamed data between applications running on hosts communicating by an IP network\\. If you have an application that doesn't require reliable data stream service, use UDP instead\\.\n+ `all` \\- All transport layer protocol types\\.\n+ `udp` \\- With User Datagram Protocol \\(UDP\\), computer applications can send messages \\(or datagrams\\) to other hosts on an Internet Protocol \\(IP\\) network\\. Prior communications are not required to set up transmission channels or data paths\\. Applications that don't require reliable data stream service can use UDP, which provides a connectionless datagram service that emphasizes reduced latency over reliability\\. If you do require reliable data stream service, use TCP instead\\.\n+ `icmp` \\- Internet Control Message Protocol \\(ICMP\\) is used to send error messages and operational information indicating success or failure when communicating with an instance\\. For example, an error is indicated when an instance could not be reached\\. When you specify `icmp` as the `protocol`, you must specify the ICMP type using the `fromPort` parameter, and ICMP code using the `toPort` parameter\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ToPort": "The last port in a range of open ports on an instance\\. \nAllowed ports: \n+ TCP and UDP \\- `0` to `65535`\n+ ICMP \\- The ICMP code for IPv4 addresses\\. For example, specify `8` as the `fromPort` \\(ICMP type\\), and `-1` as the `toPort` \\(ICMP code\\), to enable ICMP Ping\\.\n+ ICMPv6 \\- The ICMP code for IPv6 addresses\\. For example, specify `128` as the `fromPort` \\(ICMPv6 type\\), and `0` as `toPort` \\(ICMPv6 code\\)\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::Instance State": { + "Code": "The status code of the instance\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The state of the instance \\(for example, `running` or `pending`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::LoadBalancer": { + "AttachedInstances": "The Lightsail instances to attach to the load balancer\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthCheckPath": "The path on the attached instance where the health check will be performed\\. If no path is specified, the load balancer tries to make a request to the default \\(root\\) page \\(`/index.html`\\)\\. \n*Required*: No \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstancePort": "The port that the load balancer uses to direct traffic to your Lightsail instances\\. For HTTP traffic, specify port `80`\\. For HTTPS traffic, specify port `443`\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: Updates are not supported\\.", + "IpAddressType": "The IP address type of the load balancer\\. \nThe possible values are `ipv4` for IPv4 only, and `dualstack` for both IPv4 and IPv6\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dualstack | ipv4` \n*Update requires*: Updates are not supported\\.", + "LoadBalancerName": "The name of the load balancer\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `\\w[\\w\\-]*\\w` \n*Update requires*: Updates are not supported\\.", + "SessionStickinessEnabled": "A Boolean value indicating whether session stickiness is enabled\\. \nEnable session stickiness \\(also known as *session affinity*\\) to bind a user's session to a specific instance\\. This ensures that all requests from the user during the session are sent to the same instance\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SessionStickinessLBCookieDurationSeconds": "The time period, in seconds, after which the load balancer session stickiness cookie should be considered stale\\. If you do not specify this parameter, the default value is 0, which indicates that the sticky session should last for the duration of the browser session\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Lightsail::LoadBalancerTlsCertificate": { + "CertificateAlternativeNames": "An array of alternative domain names and subdomain names for your SSL/TLS certificate\\. \nIn addition to the primary domain name, you can have up to nine alternative domain names\\. Wildcards \\(such as `*.example.com`\\) are not supported\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: Updates are not supported\\.", + "CertificateDomainName": "The domain name for the SSL/TLS certificate\\. For example, `example.com` or `www.example.com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "CertificateName": "The name of the SSL/TLS certificate\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IsAttached": "A Boolean value indicating whether the SSL/TLS certificate is attached to a Lightsail load balancer\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoadBalancerName": "The name of the load balancer that the SSL/TLS certificate is attached to\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `\\w[\\w\\-]*\\w` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Lightsail::StaticIp": { + "AttachedTo": "The instance that the static IP is attached to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StaticIpName": "The name of the static IP\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Location::GeofenceCollection": { + "CollectionName": "The name for the geofence collection\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[-._\\w]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "An optional description for the geofence collection\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KmsKeyId": "A key identifier for an [AWS KMS customer managed key](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)\\. Enter a key ID, key ARN, alias name, or alias ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PricingPlan": "No longer used\\. If included, the only allowed value is `RequestBasedUsage`\\. \n*Allowed Values*: `RequestBasedUsage` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PricingPlanDataSource": "This parameter is no longer used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Location::Map": { + "Configuration": "Specifies the map style selected from an available data provider\\. \n*Required*: Yes \n*Type*: [MapConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-location-map-mapconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "An optional description for the map resource\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MapName": "The name for the map resource\\. \nRequirements: \n+ Must contain only alphanumeric characters \\(A\u2013Z, a\u2013z, 0\u20139\\), hyphens \\(\\-\\), periods \\(\\.\\), and underscores \\(\\_\\)\\.\n+ Must be a unique map resource name\\.\n+ No spaces allowed\\. For example, `ExampleMap`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[-._\\w]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PricingPlan": "No longer used\\. If included, the only allowed value is `RequestBasedUsage`\\. \n*Allowed Values*: `RequestBasedUsage` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Location::Map MapConfiguration": { + "Style": "Specifies the map style selected from an available data provider\\. \nValid styles: `VectorEsriStreets`, `VectorEsriTopographic`, `VectorEsriNavigation`, `VectorEsriDarkGrayCanvas`, `VectorEsriLightGrayCanvas`, `VectorHereBerlin`\\. \nWhen using HERE as your data provider, and selecting the Style `VectorHereBerlin`, you may not use HERE Technologies maps for Asset Management\\. See the [AWS Service Terms](http://aws.amazon.com/service-terms/) for Amazon Location Service\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[-._\\w]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Location::PlaceIndex": { + "DataSource": "Specifies the data provider of geospatial data\\. \nThis field is case\\-sensitive\\. Enter the valid values as shown\\. For example, entering `HERE` will return an error\\.\nValid values include: \n+ `Esri`\n+ `Here`\n**Important** \nPlace index resources using HERE as a data provider can't be used to [store](https://docs.aws.amazon.com/location-places/latest/APIReference/API_DataSourceConfiguration.html) results for locations in Japan\\. For more information, see the [AWS Service Terms](http://aws.amazon.com/service-terms/) for Amazon Location Service\\.\nFor additional details on data providers, see the [Amazon Location Service data providers page](https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DataSourceConfiguration": "Specifies the data storage option for requesting Places\\. \n*Required*: No \n*Type*: [DataSourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-location-placeindex-datasourceconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "The optional description for the place index resource\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IndexName": "The name of the place index resource\\. \nRequirements: \n+ Contain only alphanumeric characters \\(A\u2013Z, a\u2013z, 0\u20139\\), hyphens \\(\\-\\), periods \\(\\.\\), and underscores \\(\\_\\)\\.\n+ Must be a unique place index resource name\\.\n+ No spaces allowed\\. For example, `ExamplePlaceIndex`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[-._\\w]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PricingPlan": "No longer used\\. If included, the only allowed value is `RequestBasedUsage`\\. \n*Allowed Values*: `RequestBasedUsage` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Location::PlaceIndex DataSourceConfiguration": { + "IntendedUse": "Specifies how the results of an operation will be stored by the caller\\. \nValid values include: \n+ `SingleUse` specifies that the results won't be stored\\.\n+ `Storage` specifies that the result can be cached or stored in a database\\.\n**Important** \nPlace index resources using HERE as a data provider can't be configured to store results for locations in Japan when choosing `Storage` for the `IntendedUse` parameter\\.\nDefault value: `SingleUse` \n*Required*: No \n*Type*: String \n*Allowed values*: `SingleUse | Storage` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Location::RouteCalculator": { + "CalculatorName": "The name of the route calculator resource\\. \nRequirements: \n+ Can use alphanumeric characters \\(A\u2013Z, a\u2013z, 0\u20139\\) , hyphens \\(\\-\\), periods \\(\\.\\), and underscores \\(\\_\\)\\.\n+ Must be a unique route calculator resource name\\.\n+ No spaces allowed\\. For example, `ExampleRouteCalculator`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[-._\\w]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DataSource": "Specifies the data provider of traffic and road network data\\. \nThis field is case\\-sensitive\\. Enter the valid values as shown\\. For example, entering `HERE` returns an error\\.\nValid values include: \n+ `Esri`\n+ `Here`\nFor more information about data providers, see the [Amazon Location Service data providers page](https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "The optional description for the route calculator resource\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PricingPlan": "No longer used\\. If included, the only allowed value is `RequestBasedUsage`\\. \n*Allowed Values*: `RequestBasedUsage` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Location::Tracker": { + "Description": "An optional description for the tracker resource\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KmsKeyId": "A key identifier for an [AWS KMS customer managed key](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)\\. Enter a key ID, key ARN, alias name, or alias ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PositionFiltering": "Specifies the position filtering for the tracker resource\\. \nValid values: \n+ `TimeBased` \\- Location updates are evaluated against linked geofence collections, but not every location update is stored\\. If your update frequency is more often than 30 seconds, only one update per 30 seconds is stored for each unique device ID\\. \n+ `DistanceBased` \\- If the device has moved less than 30 m \\(98\\.4 ft\\), location updates are ignored\\. Location updates within this area are neither evaluated against linked geofence collections, nor stored\\. This helps control costs by reducing the number of geofence evaluations and historical device positions to paginate through\\. Distance\\-based filtering can also reduce the effects of GPS noise when displaying device trajectories on a map\\. \n+ `AccuracyBased` \\- If the device has moved less than the measured accuracy, location updates are ignored\\. For example, if two consecutive updates from a device have a horizontal accuracy of 5 m and 10 m, the second update is ignored if the device has moved less than 15 m\\. Ignored location updates are neither evaluated against linked geofence collections, nor stored\\. This can reduce the effects of GPS noise when displaying device trajectories on a map, and can help control your costs by reducing the number of geofence evaluations\\. \nThis field is optional\\. If not specified, the default value is `TimeBased`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AccuracyBased | DistanceBased | TimeBased` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PricingPlan": "No longer used\\. If included, the only allowed value is `RequestBasedUsage`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `MobileAssetManagement | MobileAssetTracking | RequestBasedUsage` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PricingPlanDataSource": "This parameter is no longer used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TrackerName": "The name for the tracker resource\\. \nRequirements: \n+ Contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\) , hyphens \\(\\-\\), periods \\(\\.\\), and underscores \\(\\_\\)\\.\n+ Must be a unique tracker resource name\\.\n+ No spaces allowed\\. For example, `ExampleTracker`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[-._\\w]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Location::TrackerConsumer": { + "ConsumerArn": "The Amazon Resource Name \\(ARN\\) for the geofence collection that consumes the tracker resource updates\\. \n+ Format example: `arn:aws:geo:region:account-id:geofence-collection/ExampleGeofenceCollectionConsumer`\n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1600` \n*Pattern*: `^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TrackerName": "The name for the tracker resource\\. \nRequirements: \n+ Contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\) , hyphens \\(\\-\\), periods \\(\\.\\), and underscores \\(\\_\\)\\.\n+ Must be a unique tracker resource name\\.\n+ No spaces allowed\\. For example, `ExampleTracker`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[-._\\w]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Logs::Destination": { + "DestinationName": "The name of the destination\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[^:*]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DestinationPolicy": "An IAM policy document that governs which AWS accounts can create subscription filters against this destination\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of an IAM role that permits CloudWatch Logs to send data to the specified AWS resource\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetArn": "The Amazon Resource Name \\(ARN\\) of the physical target where the log events are delivered \\(for example, a Kinesis stream\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Logs::LogGroup": { + "KmsKeyId": "The Amazon Resource Name \\(ARN\\) of the AWS KMS key to use when encrypting log data\\. \nTo associate an AWS KMS key with the log group, specify the ARN of that KMS key here\\. If you do so, ingested data is encrypted using this key\\. This association is stored as long as the data encrypted with the KMS key is still within CloudWatch Logs\\. This enables CloudWatch Logs to decrypt this data whenever it is requested\\. \nIf you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an `InvalidParameterException` error\\. \nLog group data is always encrypted in CloudWatch Logs\\. If you omit this key, the encryption does not use AWS KMS\\. For more information, see [ Encrypt log data in CloudWatch Logs using AWS Key Management Service](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogGroupName": "The name of the log group\\. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RetentionInDays": "The number of days to retain the log events in the specified log group\\. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, and 3653\\. \nTo set a log group to never have log events expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to the log group\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Logs::LogStream": { + "LogGroupName": "The name of the log group where the log stream is created\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LogStreamName": "The name of the log stream\\. The name must be unique within the log group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[^:*]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Logs::MetricFilter": { + "FilterPattern": "A filter pattern for extracting metric data out of ingested log events\\. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogGroupName": "The name of an existing log group that you want to associate with this metric filter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MetricTransformations": "The metric transformations\\. \n*Required*: Yes \n*Type*: List of [MetricTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Logs::MetricFilter MetricTransformation": { + "DefaultValue": "\\(Optional\\) The value to emit when a filter pattern does not match a log event\\. This value can be null\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricName": "The name of the CloudWatch metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricNamespace": "A custom namespace to contain your metric in CloudWatch\\. Use namespaces to group together metrics that are similar\\. For more information, see [Namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace)\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `[^:*$]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricValue": "The value that is published to the CloudWatch metric\\. For example, if you're counting the occurrences of a particular term like `Error`, specify 1 for the metric value\\. If you're counting the number of bytes transferred, reference the value that is in the log event by using $ followed by the name of the field that you specified in the filter pattern, such as `$.size`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Logs::QueryDefinition": { + "LogGroupNames": "Use this parameter if you want the query to query only certain log groups\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A name for the query definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryString": "The query string to use for this query definition\\. For more information, see [ CloudWatch Logs Insights Query Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Logs::ResourcePolicy": { + "PolicyDocument": "The details of the policy\\. It must be formatted in JSON, and you must use backslashes to escape characters that need to be escaped in JSON strings, such as double quote marks\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `5120` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PolicyName": "The name of the resource policy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Logs::SubscriptionFilter": { + "DestinationArn": "The Amazon Resource Name \\(ARN\\) of the destination\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FilterPattern": "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*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LogGroupName": "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*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RoleArn": "The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream\\. You don't need to provide the ARN when you are working with a logical destination for cross\\-account delivery\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::LookoutEquipment::InferenceScheduler": { + "DataDelayOffsetInMinutes": "A period of time \\(in minutes\\) by which inference on the data is delayed after the data starts\\. For instance, if an offset delay time of five minutes was selected, inference will not begin on the data until the first data measurement after the five minute mark\\. For example, if five minutes is selected, the inference scheduler will wake up at the configured frequency with the additional five minute delay time to check the customer S3 bucket\\. The customer can upload data at the same frequency and they don't need to stop and restart the scheduler when uploading new data\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataInputConfiguration": "Specifies configuration information for the input data for the inference scheduler, including delimiter, format, and dataset location\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataOutputConfiguration": "Specifies configuration information for the output results for the inference scheduler, including the Amazon S3 location for the output\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataUploadFrequency": "How often data is uploaded to the source S3 bucket for the input data\\. This value is the length of time between data uploads\\. For instance, if you select 5 minutes, Amazon Lookout for Equipment will upload the real\\-time data to the source bucket once every 5 minutes\\. This frequency also determines how often Amazon Lookout for Equipment starts a scheduled inference on your data\\. In this example, it starts once every 5 minutes\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `PT10M | PT15M | PT1H | PT30M | PT5M` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InferenceSchedulerName": "The name of the inference scheduler\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `200` \n*Pattern*: `^[0-9a-zA-Z_-]{1,200}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ModelName": "The name of the ML model used for the inference scheduler\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `200` \n*Pattern*: `^[0-9a-zA-Z_-]{1,200}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of a role with permission to access the data source being used for the inference\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServerSideKmsKeyId": "Provides the identifier of the AWS KMS key used to encrypt inference scheduler data by Amazon Lookout for Equipment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Any tags associated with the inference scheduler\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LookoutMetrics::Alert": { + "Action": "Action that will be triggered when there is an alert\\. \n*Required*: Yes \n*Type*: [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-alert-action.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AlertDescription": "A description of the alert\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AlertName": "The name of the alert\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AlertSensitivityThreshold": "An integer from 0 to 100 specifying the alert sensitivity threshold\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AnomalyDetectorArn": "The ARN of the detector to which the alert is attached\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::LookoutMetrics::Alert Action": { + "LambdaConfiguration": "A configuration for an AWS Lambda channel\\. \n*Required*: No \n*Type*: [LambdaConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-alert-lambdaconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SNSConfiguration": "A configuration for an Amazon SNS channel\\. \n*Required*: No \n*Type*: [SNSConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-alert-snsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::LookoutMetrics::Alert LambdaConfiguration": { + "LambdaArn": "The ARN of the Lambda function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RoleArn": "The ARN of an IAM role that has permission to invoke the Lambda function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::LookoutMetrics::Alert SNSConfiguration": { + "RoleArn": "The ARN of the IAM role that has access to the target SNS topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SnsTopicArn": "The ARN of the target SNS topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::LookoutMetrics::AnomalyDetector": { + "AnomalyDetectorConfig": "Contains information about the configuration of the anomaly detector\\. \n*Required*: Yes \n*Type*: [AnomalyDetectorConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-anomalydetectorconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AnomalyDetectorDescription": "A description of the detector\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AnomalyDetectorName": "The name of the detector\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KmsKeyArn": "The ARN of the KMS key to use to encrypt your data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricSetList": "The detector's dataset\\. \n*Required*: Yes \n*Type*: List of [MetricSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metricset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LookoutMetrics::AnomalyDetector AnomalyDetectorConfig": { + "AnomalyDetectorFrequency": "The frequency at which the detector analyzes its source data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LookoutMetrics::AnomalyDetector AppFlowConfig": { + "FlowName": "name of the flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "An IAM role that gives Amazon Lookout for Metrics permission to access the flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LookoutMetrics::AnomalyDetector CloudwatchConfig": { + "RoleArn": "An IAM role that gives Amazon Lookout for Metrics permission to access data in Amazon CloudWatch\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LookoutMetrics::AnomalyDetector CsvFormatDescriptor": { + "Charset": "The character set in which the source CSV file is written\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContainsHeader": "Whether or not the source CSV file contains a header\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Delimiter": "The character used to delimit the source CSV file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FileCompression": "The level of compression of the source CSV file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HeaderList": "A list of the source CSV file's headers, if any\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QuoteSymbol": "The character used as a quote character\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LookoutMetrics::AnomalyDetector FileFormatDescriptor": { + "CsvFormatDescriptor": "Contains information about how a source CSV data file should be analyzed\\. \n*Required*: No \n*Type*: [CsvFormatDescriptor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-csvformatdescriptor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JsonFormatDescriptor": "Contains information about how a source JSON data file should be analyzed\\. \n*Required*: No \n*Type*: [JsonFormatDescriptor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-jsonformatdescriptor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LookoutMetrics::AnomalyDetector JsonFormatDescriptor": { + "Charset": "The character set in which the source JSON file is written\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FileCompression": "The level of compression of the source CSV file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LookoutMetrics::AnomalyDetector Metric": { + "AggregationFunction": "The function with which the metric is calculated\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricName": "The name of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Namespace": "The namespace for the metric\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LookoutMetrics::AnomalyDetector MetricSet": { + "DimensionList": "A list of the fields you want to treat as dimensions\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricList": "A list of metrics that the dataset will contain\\. \n*Required*: Yes \n*Type*: List of [Metric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricSetDescription": "A description of the dataset you are creating\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricSetFrequency": "The frequency with which the source data will be analyzed for anomalies\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricSetName": "The name of the dataset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricSource": "Contains information about how the source data should be interpreted\\. \n*Required*: Yes \n*Type*: [MetricSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metricsource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Offset": "After an interval ends, the amount of seconds that the detector waits before importing data\\. Offset is only supported for S3 and Redshift datasources\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimestampColumn": "Contains information about the column used for tracking time in your source data\\. \n*Required*: No \n*Type*: [TimestampColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-timestampcolumn.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Timezone": "The time zone in which your source data was recorded\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LookoutMetrics::AnomalyDetector MetricSource": { + "AppFlowConfig": "An object containing information about the AppFlow configuration\\. \n*Required*: No \n*Type*: [AppFlowConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-appflowconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CloudwatchConfig": "An object containing information about the Amazon CloudWatch monitoring configuration\\. \n*Required*: No \n*Type*: [CloudwatchConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-cloudwatchconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RDSSourceConfig": "An object containing information about the Amazon Relational Database Service \\(RDS\\) configuration\\. \n*Required*: No \n*Type*: [RDSSourceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-rdssourceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RedshiftSourceConfig": "An object containing information about the Amazon Redshift database configuration\\. \n*Required*: No \n*Type*: [RedshiftSourceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-redshiftsourceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3SourceConfig": "Contains information about the configuration of the S3 bucket that contains source files\\. \n*Required*: No \n*Type*: [S3SourceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-s3sourceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LookoutMetrics::AnomalyDetector RDSSourceConfig": { + "DBInstanceIdentifier": "A string identifying the database instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseHost": "The host name of the database\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseName": "The name of the RDS database\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabasePort": "The port number where the database can be accessed\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the role\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretManagerArn": "The Amazon Resource Name \\(ARN\\) of the AWS Secrets Manager role\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TableName": "The name of the table in the database\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcConfiguration": "An object containing information about the Amazon Virtual Private Cloud \\(VPC\\) configuration\\. \n*Required*: Yes \n*Type*: [VpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-vpcconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LookoutMetrics::AnomalyDetector RedshiftSourceConfig": { + "ClusterIdentifier": "A string identifying the Redshift cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseHost": "The name of the database host\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseName": "The Redshift database name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabasePort": "The port number where the database can be accessed\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the role providing access to the database\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretManagerArn": "The Amazon Resource Name \\(ARN\\) of the AWS Secrets Manager role\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TableName": "The table name of the Redshift database\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcConfiguration": "Contains information about the Amazon Virtual Private Cloud \\(VPC\\) configuration\\. \n*Required*: Yes \n*Type*: [VpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-vpcconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LookoutMetrics::AnomalyDetector S3SourceConfig": { + "FileFormatDescriptor": "Contains information about a source file's formatting\\. \n*Required*: Yes \n*Type*: [FileFormatDescriptor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-fileformatdescriptor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HistoricalDataPathList": "A list of paths to the historical data files\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of an IAM role that has read and write access permissions to the source S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplatedPathList": "A list of templated paths to the source files\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LookoutMetrics::AnomalyDetector TimestampColumn": { + "ColumnFormat": "The format of the timestamp column\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ColumnName": "The name of the timestamp column\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LookoutMetrics::AnomalyDetector VpcConfiguration": { + "SecurityGroupIdList": "An array of strings containing the list of security groups\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetIdList": "An array of strings containing the Amazon VPC subnet IDs \\(e\\.g\\., `subnet-0bb1c79de3EXAMPLE`\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::LookoutVision::Project": { + "ProjectName": "The name of the project\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9][a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::MSK::BatchScramSecret": { + "ClusterArn": "The Amazon Resource Name \\(ARN\\) of the MSK cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecretArnList": "A list of Amazon Secrets Manager secret ARNs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster": { + "BrokerNodeGroupInfo": "The setup to be used for brokers in the cluster\\. \nAWS CloudFormation may replace the cluster when you update certain `BrokerNodeGroupInfo` properties\\. To understand the update behavior for your use case, you should review the child properties for [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-brokernodegroupinfo.html#aws-properties-msk-cluster-brokernodegroupinfo-properties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-brokernodegroupinfo.html#aws-properties-msk-cluster-brokernodegroupinfo-properties)\\.\n*Required*: Yes \n*Type*: [BrokerNodeGroupInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-brokernodegroupinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientAuthentication": "Includes information related to client authentication\\. \n*Required*: No \n*Type*: [ClientAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-clientauthentication.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClusterName": "The name of the cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ConfigurationInfo": "The Amazon MSK configuration to use for the cluster\\. \n*Required*: No \n*Type*: [ConfigurationInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-configurationinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CurrentVersion": "The version of the cluster that you want to update\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EncryptionInfo": "Includes all encryption\\-related information\\. \n*Required*: No \n*Type*: [EncryptionInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-encryptioninfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnhancedMonitoring": "Specifies the level of monitoring for the MSK cluster\\. The possible values are `DEFAULT`, `PER_BROKER`, and `PER_TOPIC_PER_BROKER`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KafkaVersion": "The version of Apache Kafka\\. For more information, see [Supported Apache Kafka versions](https://docs.aws.amazon.com/msk/latest/developerguide/supported-kafka-versions.html) in the Amazon MSK Developer Guide\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoggingInfo": "You can configure your Amazon MSK cluster to send broker logs to different destination types\\. This is a container for the configuration details related to broker logs\\. \n*Required*: No \n*Type*: [LoggingInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-logginginfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumberOfBrokerNodes": "The number of broker nodes you want in the Amazon MSK cluster\\. You can submit an update to increase the number of broker nodes in a cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OpenMonitoring": "The settings for open monitoring\\. \n*Required*: No \n*Type*: [OpenMonitoring](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-openmonitoring.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A map of key:value pairs to apply to this resource\\. Both key and value are of type String\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::MSK::Cluster BrokerLogs": { + "CloudWatchLogs": "Details of the CloudWatch Logs destination for broker logs\\. \n*Required*: No \n*Type*: [CloudWatchLogs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-cloudwatchlogs.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Firehose": "Details of the Kinesis Data Firehose delivery stream that is the destination for broker logs\\. \n*Required*: No \n*Type*: [Firehose](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-firehose.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3": "Details of the Amazon MSK destination for broker logs\\. \n*Required*: No \n*Type*: [S3](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-s3.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster BrokerNodeGroupInfo": { + "BrokerAZDistribution": "This parameter is currently not in use\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ClientSubnets": "The list of subnets to connect to in the client virtual private cloud \\(VPC\\)\\. Amazon creates elastic network interfaces inside these subnets\\. Client applications use elastic network interfaces to produce and consume data\\. \nSpecify exactly two subnets if you are using the US West \\(N\\. California\\) Region\\. For other Regions where Amazon MSK is available, you can specify either two or three subnets\\. The subnets that you specify must be in distinct Availability Zones\\. When you create a cluster, Amazon MSK distributes the broker nodes evenly across the subnets that you specify\\. \nClient subnets can't be in Availability Zone us\\-east\\-1e\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ConnectivityInfo": "Information about the cluster's connectivity setting\\. \n*Required*: No \n*Type*: [ConnectivityInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-connectivityinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceType": "The type of Amazon EC2 instances to use for brokers\\. The following instance types are allowed: kafka\\.m5\\.large, kafka\\.m5\\.xlarge, kafka\\.m5\\.2xlarge, kafka\\.m5\\.4xlarge, kafka\\.m5\\.8xlarge, kafka\\.m5\\.12xlarge, kafka\\.m5\\.16xlarge, and kafka\\.m5\\.24xlarge\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroups": "The security groups to associate with the elastic network interfaces in order to specify who can connect to and communicate with the Amazon MSK cluster\\. If you don't specify a security group, Amazon MSK uses the default security group associated with the VPC\\. If you specify security groups that were shared with you, you must ensure that you have permissions to them\\. Specifically, you need the `ec2:DescribeSecurityGroups` permission\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StorageInfo": "Contains information about storage volumes attached to MSK broker nodes\\. \n*Required*: No \n*Type*: [StorageInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-storageinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster ClientAuthentication": { + "Sasl": "Details for ClientAuthentication using SASL\\. \n*Required*: No \n*Type*: [Sasl](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-sasl.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tls": "Details for client authentication using TLS\\. \n*Required*: No \n*Type*: [Tls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-tls.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Unauthenticated": "Details for ClientAuthentication using no authentication\\. \n*Required*: No \n*Type*: [Unauthenticated](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-unauthenticated.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster CloudWatchLogs": { + "Enabled": "Specifies whether broker logs get sent to the specified CloudWatch Logs destination\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogGroup": "The CloudWatch Logs group that is the destination for broker logs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster ConfigurationInfo": { + "Arn": "The Amazon Resource Name \\(ARN\\) of the MSK configuration to use\\. For example, `arn:aws:kafka:us-east-1:123456789012:configuration/example-configuration-name/abcdabcd-1234-abcd-1234-abcd123e8e8e-1`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Revision": "The revision of the Amazon MSK configuration to use\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster ConnectivityInfo": { + "PublicAccess": "Specifies whether the cluster's brokers are accessible from the internet\\. Public access is off by default\\. \n*Required*: No \n*Type*: [PublicAccess](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-publicaccess.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster EBSStorageInfo": { + "ProvisionedThroughput": "Specifies whether provisioned throughput is turned on and the volume throughput target\\. \n*Required*: No \n*Type*: [ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-provisionedthroughput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VolumeSize": "The size in GiB of the EBS volume for the data drive on each broker node\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster EncryptionAtRest": { + "DataVolumeKMSKeyId": "The ARN of the Amazon KMS key for encrypting data at rest\\. If you don't specify a KMS key, MSK creates one for you and uses it on your behalf\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::MSK::Cluster EncryptionInTransit": { + "ClientBroker": "Indicates the encryption setting for data in transit between clients and brokers\\. The following are the possible values\\. \n+ `TLS` means that client\\-broker communication is enabled with TLS only\\. \n+ `TLS_PLAINTEXT` means that client\\-broker communication is enabled for both TLS\\-encrypted, as well as plain text data\\. \n+ `PLAINTEXT` means that client\\-broker communication is enabled in plain text only\\.\nThe default value is `TLS`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InCluster": "When set to true, it indicates that data communication among the broker nodes of the cluster is encrypted\\. When set to false, the communication happens in plain text\\. The default value is true\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::MSK::Cluster EncryptionInfo": { + "EncryptionAtRest": "The data\\-volume encryption details\\. \n*Required*: No \n*Type*: [EncryptionAtRest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-encryptionatrest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EncryptionInTransit": "The details for encryption in transit\\. \n*Required*: No \n*Type*: [EncryptionInTransit](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-encryptionintransit.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster Firehose": { + "DeliveryStream": "The Kinesis Data Firehose delivery stream that is the destination for broker logs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Specifies whether broker logs get sent to the specified Kinesis Data Firehose delivery stream\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster Iam": { + "Enabled": "Whether IAM access control is enabled\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster JmxExporter": { + "EnabledInBroker": "Indicates whether you want to enable or disable the JMX Exporter\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster LoggingInfo": { + "BrokerLogs": "You can configure your Amazon MSK cluster to send broker logs to different destination types\\. This configuration specifies the details of these destinations\\. \n*Required*: Yes \n*Type*: [BrokerLogs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-brokerlogs.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster NodeExporter": { + "EnabledInBroker": "Indicates whether you want to enable or disable the Node Exporter\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster OpenMonitoring": { + "Prometheus": "Prometheus exporter settings\\. \n*Required*: Yes \n*Type*: [Prometheus](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-prometheus.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster Prometheus": { + "JmxExporter": "Indicates whether you want to enable or disable the JMX Exporter\\. \n*Required*: No \n*Type*: [JmxExporter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-jmxexporter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NodeExporter": "Indicates whether you want to enable or disable the Node Exporter\\. \n*Required*: No \n*Type*: [NodeExporter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-nodeexporter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster ProvisionedThroughput": { + "Enabled": "Specifies whether provisioned throughput is turned on for the cluster\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VolumeThroughput": "The provisioned throughput rate in MiB per second\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster PublicAccess": { + "Type": "Set to `DISABLED` to turn off public access or to `SERVICE_PROVIDED_EIPS` to turn it on\\. Public access if off by default\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster S3": { + "Bucket": "The name of the S3 bucket that is the destination for broker logs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Specifies whether broker logs get sent to the specified Amazon S3 destination\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "The S3 prefix that is the destination for broker logs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster Sasl": { + "Iam": "Details for IAM access control\\. \n*Required*: No \n*Type*: [Iam](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-iam.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scram": "Details for SASL/SCRAM client authentication\\. \n*Required*: No \n*Type*: [Scram](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-scram.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster Scram": { + "Enabled": "SASL/SCRAM authentication is enabled or not\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster StorageInfo": { + "EBSStorageInfo": "EBS volume information\\. \n*Required*: No \n*Type*: [EBSStorageInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-ebsstorageinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster Tls": { + "CertificateAuthorityArnList": "List of ACM Certificate Authority ARNs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "TLS authentication is enabled or not\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Cluster Unauthenticated": { + "Enabled": "Unauthenticated is enabled or not\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MSK::Configuration": { + "Description": "The description of the configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KafkaVersionsList": "A list of the versions of Apache Kafka with which you can use this MSK configuration\\. You can use this configuration for an MSK cluster only if the Apache Kafka version specified for the cluster appears in this list\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the configuration\\. Configuration names are strings that match the regex \"^\\[0\\-9A\\-Za\\-z\\]\\[0\\-9A\\-Za\\-z\\-\\]\\{0,\\}$\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ServerProperties": "Contents of the `server.properties` file\\. When using the API, you must ensure that the contents of the file are base64 encoded\\. When using the console, the SDK, or the CLI, the contents of `server.properties` can be in plaintext\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MWAA::Environment": { + "AirflowConfigurationOptions": "A list of key\\-value pairs containing the Airflow configuration options for your environment\\. For example, `core.default_timezone: utc`\\. To learn more, see [Apache Airflow configuration options](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AirflowVersion": "The version of Apache Airflow to use for the environment\\. If no value is specified, defaults to the latest version\\. Valid values: `2.0.2`, `1.10.12`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DagS3Path": "The relative path to the DAGs folder on your Amazon S3 bucket\\. For example, `dags`\\. To learn more, see [Adding or updating DAGs](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-folder.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnvironmentClass": "The environment class type\\. Valid values: `mw1.small`, `mw1.medium`, `mw1.large`\\. To learn more, see [Amazon MWAA environment class](https://docs.aws.amazon.com/mwaa/latest/userguide/environment-class.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExecutionRoleArn": "The Amazon Resource Name \\(ARN\\) of the execution role in IAM that allows MWAA to access AWS resources in your environment\\. For example, `arn:aws:iam::123456789:role/my-execution-role`\\. To learn more, see [Amazon MWAA Execution role](https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-create-role.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKey": "The AWS Key Management Service \\(KMS\\) key to encrypt and decrypt the data in your environment\\. You can use an AWS KMS key managed by MWAA, or a customer\\-managed KMS key \\(advanced\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LoggingConfiguration": "The Apache Airflow logs being sent to CloudWatch Logs: `DagProcessingLogs`, `SchedulerLogs`, `TaskLogs`, `WebserverLogs`, `WorkerLogs`\\. \n*Required*: No \n*Type*: [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mwaa-environment-loggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxWorkers": "The maximum number of workers that you want to run in your environment\\. MWAA scales the number of Apache Airflow workers up to the number you specify in the `MaxWorkers` field\\. For example, `20`\\. When there are no more tasks running, and no more in the queue, MWAA disposes of the extra workers leaving the one worker that is included with your environment, or the number you specify in `MinWorkers`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinWorkers": "The minimum number of workers that you want to run in your environment\\. MWAA scales the number of Apache Airflow workers up to the number you specify in the `MaxWorkers` field\\. When there are no more tasks running, and no more in the queue, MWAA disposes of the extra workers leaving the worker count you specify in the `MinWorkers` field\\. For example, `2`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of your Amazon MWAA environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NetworkConfiguration": "The VPC networking components used to secure and enable network traffic between the AWS resources for your environment\\. To learn more, see [About networking on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/networking-about.html)\\. \n*Required*: No \n*Type*: [NetworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mwaa-environment-networkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PluginsS3ObjectVersion": "The version of the plugins\\.zip file on your Amazon S3 bucket\\. To learn more, see [Installing custom plugins](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import-plugins.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PluginsS3Path": "The relative path to the `plugins.zip` file on your Amazon S3 bucket\\. For example, `plugins.zip`\\. To learn more, see [Installing custom plugins](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import-plugins.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequirementsS3ObjectVersion": "The version of the requirements\\.txt file on your Amazon S3 bucket\\. To learn more, see [Installing Python dependencies](https://docs.aws.amazon.com/mwaa/latest/userguide/working-dags-dependencies.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequirementsS3Path": "The relative path to the `requirements.txt` file on your Amazon S3 bucket\\. For example, `requirements.txt`\\. To learn more, see [Installing Python dependencies](https://docs.aws.amazon.com/mwaa/latest/userguide/working-dags-dependencies.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Schedulers": "The number of schedulers that you want to run in your environment\\. Valid values: \n+ **v2\\.0\\.2** \\- Accepts between 2 to 5\\. Defaults to 2\\.\n+ **v1\\.10\\.12** \\- Accepts 1\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceBucketArn": "The Amazon Resource Name \\(ARN\\) of the Amazon S3 bucket where your DAG code and supporting files are stored\\. For example, `arn:aws:s3:::my-airflow-bucket-unique-name`\\. To learn more, see [Create an Amazon S3 bucket for Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-s3-bucket.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The key\\-value tag pairs associated to your environment\\. For example, `\"Environment\": \"Staging\"`\\. To learn more, see [Tagging](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WebserverAccessMode": "The Apache Airflow *Web server* access mode\\. To learn more, see [Apache Airflow access modes](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-networking.html)\\. Valid values: `PRIVATE_ONLY` or `PUBLIC_ONLY`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WeeklyMaintenanceWindowStart": "The day and time of the week to start weekly maintenance updates of your environment in the following format: `DAY:HH:MM`\\. For example: `TUE:03:30`\\. You can specify a start time in 30 minute increments only\\. Supported input includes the following: \n+ MON\\|TUE\\|WED\\|THU\\|FRI\\|SAT\\|SUN:\\(\\[01\\]\\\\\\\\d\\|2\\[0\\-3\\]\\):\\(00\\|30\\)\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MWAA::Environment LoggingConfiguration": { + "DagProcessingLogs": "Defines the processing logs sent to CloudWatch Logs and the logging level to send\\. \n*Required*: No \n*Type*: [ModuleLoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mwaa-environment-moduleloggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SchedulerLogs": "Defines the scheduler logs sent to CloudWatch Logs and the logging level to send\\. \n*Required*: No \n*Type*: [ModuleLoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mwaa-environment-moduleloggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TaskLogs": "Defines the task logs sent to CloudWatch Logs and the logging level to send\\. \n*Required*: No \n*Type*: [ModuleLoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mwaa-environment-moduleloggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WebserverLogs": "Defines the web server logs sent to CloudWatch Logs and the logging level to send\\. \n*Required*: No \n*Type*: [ModuleLoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mwaa-environment-moduleloggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WorkerLogs": "Defines the worker logs sent to CloudWatch Logs and the logging level to send\\. \n*Required*: No \n*Type*: [ModuleLoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mwaa-environment-moduleloggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MWAA::Environment ModuleLoggingConfiguration": { + "CloudWatchLogGroupArn": "The ARN of the CloudWatch Logs log group for each type of Apache Airflow log type that you have enabled\\. \n `CloudWatchLogGroupArn` is available only as a return value, accessible when specified as an attribute in the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mwaa-environment.html#aws-resource-mwaa-environment-return-values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mwaa-environment.html#aws-resource-mwaa-environment-return-values) intrinsic function\\. Any value you provide for `CloudWatchLogGroupArn` is discarded by Amazon MWAA\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Indicates whether to enable the Apache Airflow log type \\(e\\.g\\. `DagProcessingLogs`\\) in CloudWatch Logs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogLevel": "Defines the Apache Airflow logs to send for the log type \\(e\\.g\\. `DagProcessingLogs`\\) to CloudWatch Logs\\. Valid values: `CRITICAL`, `ERROR`, `WARNING`, `INFO`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MWAA::Environment NetworkConfiguration": { + "SecurityGroupIds": "A list of one or more security group IDs\\. Accepts up to 5 security group IDs\\. A security group must be attached to the same VPC as the subnets\\. To learn more, see [Security in your VPC on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/vpc-security.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetIds": "A list of subnet IDs\\. **Required** to create an environment\\. Must be private subnets in two different availability zones\\. A subnet must be attached to the same VPC as the security group\\. To learn more, see [About networking on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/networking-about.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Macie::CustomDataIdentifier": { + "Description": "The description of the custom data identifier\\. The description can contain as many as 512 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IgnoreWords": "An array that lists specific character sequences \\(ignore words\\) to exclude from the results\\. If the text matched by the regular expression is the same as any string in this array, Amazon Macie ignores it\\. The array can contain as many as 10 ignore words\\. Each ignore word can contain 4\\-90 characters\\. Ignore words are case sensitive\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Keywords": "An array that lists specific character sequences \\(keywords\\), one of which must be within proximity \\(`MaximumMatchDistance`\\) of the regular expression to match\\. The array can contain as many as 50 keywords\\. Each keyword can contain 3\\-90 characters\\. Keywords aren't case sensitive\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MaximumMatchDistance": "The maximum number of characters that can exist between text that matches the regex pattern and the character sequences specified by the `Keywords` array\\. Amazon Macie includes or excludes a result based on the proximity of a keyword to text that matches the regex pattern\\. The distance can be 1\\-300 characters\\. The default value is 50\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "A custom name for the custom data identifier\\. The name can contain as many as 128 characters\\. \nWe strongly recommend that you avoid including any sensitive data in the name of a custom data identifier\\. Other users of your account might be able to see the identifier's name, depending on the actions that they're allowed to perform in Amazon Macie\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Regex": "The regular expression \\(*regex*\\) that defines the pattern to match\\. The expression can contain as many as 512 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Macie::FindingsFilter": { + "Action": "The action to perform on findings that meet the filter criteria \\(`FindingCriteria`\\)\\. Valid values are: \n+ ARCHIVE \\- Suppress \\(automatically archive\\) the findings\\.\n+ NOOP \\- Don't perform any action on the findings\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A custom description of the filter\\. The description can contain as many as 512 characters\\. \nWe strongly recommend that you avoid including any sensitive data in the description of a filter\\. Other users might be able to see the filter's description, depending on the actions that they're allowed to perform in Amazon Macie\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FindingCriteria": "The criteria to use to filter findings\\. \n*Required*: Yes \n*Type*: [FindingCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-macie-findingsfilter-findingcriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A custom name for the filter\\. The name must contain at least 3 characters and can contain as many as 64 characters\\. \nWe strongly recommend that you avoid including any sensitive data in the name of a filter\\. Other users might be able to see the filter's name, depending on the actions that they're allowed to perform in Amazon Macie\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Position": "The position of the filter in the list of saved filters on the Amazon Macie console\\. This value also determines the order in which the filter is applied to findings, relative to other filters that are also applied to the findings\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Macie::FindingsFilter FindingCriteria": { + "Criterion": "Specifies a condition that defines the property, operator, and value to use to filter the results\\. \n*Required*: No \n*Type*: [Criterion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-macie-findingsfilter-criterion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Macie::FindingsFilter FindingsFilterListItem": { + "Id": "The unique identifier for the filter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The custom name of the filter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Macie::Session": { + "FindingPublishingFrequency": "The frequency with which Amazon Macie publishes updates to policy findings for an account\\. This includes publishing updates to AWS Security Hub and Amazon EventBridge \\(formerly called Amazon CloudWatch Events\\)\\. Valid values are: \n+ FIFTEEN\\_MINUTES\n+ ONE\\_HOUR\n+ SIX\\_HOURS\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Status": "The `MacieStatus` of the `Session`\\. Valid values include `ENABLED` and `PAUSED`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ManagedBlockchain::Member": { + "InvitationId": "The unique identifier of the invitation to join the network sent to the account that creates the member\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MemberConfiguration": "Configuration properties of the member\\. \n*Required*: Yes \n*Type*: [MemberConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-memberconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkConfiguration": "Configuration properties of the network to which the member belongs\\. \n*Required*: No \n*Type*: [NetworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkId": "The unique identifier of the network to which the member belongs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ManagedBlockchain::Member ApprovalThresholdPolicy": { + "ProposalDurationInHours": "The duration from the time that a proposal is created until it expires\\. If members cast neither the required number of `YES` votes to approve the proposal nor the number of `NO` votes required to reject it before the duration expires, the proposal is `EXPIRED` and `ProposalActions` are not carried out\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `168` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThresholdComparator": "Determines whether the vote percentage must be greater than the `ThresholdPercentage` or must be greater than or equal to the `ThreholdPercentage` to be approved\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GREATER_THAN | GREATER_THAN_OR_EQUAL_TO` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThresholdPercentage": "The percentage of votes among all members that must be `YES` for a proposal to be approved\\. For example, a `ThresholdPercentage` value of `50` indicates 50%\\. The `ThresholdComparator` determines the precise comparison\\. If a `ThresholdPercentage` value of `50` is specified on a network with 10 members, along with a `ThresholdComparator` value of `GREATER_THAN`, this indicates that 6 `YES` votes are required for the proposal to be approved\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ManagedBlockchain::Member MemberConfiguration": { + "Description": "An optional description of the member\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MemberFrameworkConfiguration": "Configuration properties of the blockchain framework relevant to the member\\. \n*Required*: No \n*Type*: [MemberFrameworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-memberframeworkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the member\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^(?!-|[0-9])(?!.*-$)(?!.*?--)[a-zA-Z0-9-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ManagedBlockchain::Member MemberFabricConfiguration": { + "AdminPassword": "The password for the member's initial administrative user\\. The `AdminPassword` must be at least eight characters long and no more than 32 characters\\. It must contain at least one uppercase letter, one lowercase letter, and one digit\\. It cannot have a single quotation mark \\(\u2018\\), a double quotation marks \\(\u201c\\), a forward slash\\(/\\), a backward slash\\(\\\\\\), @, or a space\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `32` \n*Pattern*: `^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?!.*[@'\\\\\"/])[a-zA-Z0-9\\S]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AdminUsername": "The user name for the member's initial administrative user\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `16` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ManagedBlockchain::Member MemberFrameworkConfiguration": { + "MemberFabricConfiguration": "Configuration properties for Hyperledger Fabric\\. \n*Required*: No \n*Type*: [MemberFabricConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-memberfabricconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ManagedBlockchain::Member NetworkConfiguration": { + "Description": "Attributes of the blockchain framework for the network\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Framework": "The blockchain framework that the network uses\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ETHEREUM | HYPERLEDGER_FABRIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FrameworkVersion": "The version of the blockchain framework that the network uses\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `8` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkFrameworkConfiguration": "Configuration properties relevant to the network for the blockchain framework that the network uses\\. \n*Required*: No \n*Type*: [NetworkFrameworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkframeworkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VotingPolicy": "The voting rules for the network to decide if a proposal is accepted\\. \n*Required*: Yes \n*Type*: [VotingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-votingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ManagedBlockchain::Member NetworkFabricConfiguration": { + "Edition": "The edition of Amazon Managed Blockchain that the network uses\\. Valid values are `standard` and `starter`\\. For more information, see \n*Required*: Yes \n*Type*: String \n*Allowed values*: `STANDARD | STARTER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ManagedBlockchain::Member NetworkFrameworkConfiguration": { + "NetworkFabricConfiguration": "Configuration properties for Hyperledger Fabric for a member in a Managed Blockchain network using the Hyperledger Fabric framework\\. \n*Required*: No \n*Type*: [NetworkFabricConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkfabricconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ManagedBlockchain::Member VotingPolicy": { + "ApprovalThresholdPolicy": "Defines the rules for the network for voting on proposals, such as the percentage of `YES` votes required for the proposal to be approved and the duration of the proposal\\. The policy applies to all proposals and is specified when the network is created\\. \n*Required*: No \n*Type*: [ApprovalThresholdPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-approvalthresholdpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ManagedBlockchain::Node": { + "MemberId": "The unique identifier of the member to which the node belongs\\. Applies only to Hyperledger Fabric\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkId": "The unique identifier of the network for the node\\. \nEthereum public networks have the following `NetworkId`s: \n+ `n-ethereum-mainnet` \n+ `n-ethereum-rinkeby` \n+ `n-ethereum-ropsten` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NodeConfiguration": "Configuration properties of a peer node\\. \n*Required*: Yes \n*Type*: [NodeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-node-nodeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ManagedBlockchain::Node NodeConfiguration": { + "AvailabilityZone": "The Availability Zone in which the node exists\\. Required for Ethereum nodes\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceType": "The Amazon Managed Blockchain instance type for the node\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaConnect::Flow": { + "AvailabilityZone": "The Availability Zone that you want to create the flow in\\. These options are limited to the Availability Zones within the current AWS Region\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Source": "The settings for the source that you want to use for the new flow\\. \n*Required*: Yes \n*Type*: [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceFailoverConfig": "The settings for source failover\\. \n*Required*: No \n*Type*: [FailoverConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-failoverconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaConnect::Flow Encryption": { + "Algorithm": "The type of algorithm that is used for the encryption \\(such as aes128, aes192, or aes256\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConstantInitializationVector": "A 128\\-bit, 16\\-byte hex value represented by a 32\\-character string, to be used with the key for encrypting content\\. This parameter is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeviceId": "The value of one of the devices that you configured with your digital rights management \\(DRM\\) platform key provider\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeyType": "The type of key that is used for the encryption\\. If you don't specify a `keyType` value, the service uses the default setting \\(`static-key`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Region": "The AWS Region that the API Gateway proxy endpoint was created in\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceId": "An identifier for the content\\. The service sends this value to the key server to identify the current endpoint\\. The resource ID is also known as the content ID\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the role that you created during setup \\(when you set up MediaConnect as a trusted entity\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretArn": "The ARN of the secret that you created in AWS Secrets Manager to store the encryption key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Url": "The URL from the API Gateway proxy that you set up to talk to your key server\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaConnect::Flow FailoverConfig": { + "RecoveryWindow": "The size of the buffer \\(delay\\) that the service maintains\\. A larger buffer means a longer delay in transmitting the stream, but more room for error correction\\. A smaller buffer means a shorter delay, but less room for error correction\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "State": "The state of source failover on the flow\\. If the state is disabled, the flow can have only one source\\. If the state is enabled, the flow can have one or two sources\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaConnect::Flow Source": { + "Decryption": "The type of encryption that is used on the content ingested from the source\\. \n*Required*: No \n*Type*: [Encryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-encryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the source\\. This description is not visible outside of the current AWS account\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EntitlementArn": "The ARN of the entitlement that allows you to subscribe to content that comes from another AWS account\\. The entitlement is set by the content originator and the ARN is generated as part of the originator\u2019s flow\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IngestIp": "The IP address that the flow listens on for incoming content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IngestPort": "The port that the flow listens on for incoming content\\. If the protocol of the source is Zixi, the port must be set to 2088\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxBitrate": "The maximum bitrate for RIST, RTP, and RTP\\-FEC streams\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxLatency": "The maximum latency in milliseconds for a RIST or Zixi\\-based source\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinLatency": "The minimum latency in milliseconds for SRT\\-based streams\\. In streams that use the SRT protocol, this value that you set on your MediaConnect source or output represents the minimal potential latency of that connection\\. The latency of the stream is set to the highest number between the sender\u2019s minimum latency and the receiver\u2019s minimum latency\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Protocol": "The protocol that is used by the source\\. For a full list of available protocols, see: [Source protocols](https://docs.aws.amazon.com/mediaconnect/latest/api/v1-flows-flowarn-source.html#v1-flows-flowarn-source-prop-setsourcerequest-protocol) in the *AWS Elemental MediaConnect API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceArn": "The ARN of the source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceIngestPort": "The port that the flow will be listening on for incoming content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamId": "The stream ID that you want to use for the transport\\. This parameter applies only to Zixi\\-based streams\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcInterfaceName": "The name of the VPC interface that the source content comes from\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WhitelistCidr": "The range of IP addresses that are allowed to contribute content to your source\\. Format the IP addresses as a Classless Inter\\-Domain Routing \\(CIDR\\) block; for example, 10\\.0\\.0\\.0/16\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaConnect::FlowEntitlement": { + "DataTransferSubscriberFeePercent": "The percentage of the entitlement data transfer fee that you want the subscriber to be responsible for\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "A description of the entitlement\\. This description appears only on the MediaConnect console and is not visible outside of the current AWS account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Encryption": "The type of encryption that MediaConnect will use on the output that is associated with the entitlement\\. \n*Required*: No \n*Type*: [Encryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowentitlement-encryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EntitlementStatus": "An indication of whether the new entitlement should be enabled or disabled as soon as it is created\\. If you don\u2019t specify the entitlementStatus field in your request, MediaConnect sets it to ENABLED\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FlowArn": "The Amazon Resource Name \\(ARN\\) of the flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the entitlement\\. This value must be unique within the current flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Subscribers": "The AWS account IDs that you want to share your content with\\. The receiving accounts \\(subscribers\\) will be allowed to create their own flows using your content as the source\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaConnect::FlowEntitlement Encryption": { + "Algorithm": "The type of algorithm that is used for the encryption \\(such as aes128, aes192, or aes256\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConstantInitializationVector": "A 128\\-bit, 16\\-byte hex value represented by a 32\\-character string, to be used with the key for encrypting content\\. This parameter is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeviceId": "The value of one of the devices that you configured with your digital rights management \\(DRM\\) platform key provider\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeyType": "The type of key that is used for the encryption\\. If you don't specify a `keyType` value, the service uses the default setting \\(`static-key`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Region": "The AWS Region that the API Gateway proxy endpoint was created in\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceId": "An identifier for the content\\. The service sends this value to the key server to identify the current endpoint\\. The resource ID is also known as the content ID\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the role that you created during setup \\(when you set up MediaConnect as a trusted entity\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretArn": "The ARN of the secret that you created in AWS Secrets Manager to store the encryption key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Url": "The URL from the API Gateway proxy that you set up to talk to your key server\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaConnect::FlowOutput": { + "CidrAllowList": "The range of IP addresses that are allowed to initiate output requests to this flow\\. Format the IP addresses as a Classless Inter\\-Domain Routing \\(CIDR\\) block; for example, 10\\.0\\.0\\.0/16\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the output\\. This description is not visible outside of the current AWS account even if the account grants entitlements to other accounts\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Destination": "The IP address where you want to send the output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Encryption": "The encryption credentials that you want to use for the output\\. \n*Required*: No \n*Type*: [Encryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowoutput-encryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FlowArn": "The Amazon Resource Name \\(ARN\\) of the flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxLatency": "The maximum latency in milliseconds for Zixi\\-based streams\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinLatency": "The minimum latency in milliseconds for SRT\\-based streams\\. In streams that use the SRT protocol, this value that you set on your MediaConnect source or output represents the minimal potential latency of that connection\\. The latency of the stream is set to the highest number between the sender\u2019s minimum latency and the receiver\u2019s minimum latency\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the VPC interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Port": "The port to use when MediaConnect distributes content to the output\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "The protocol to use for the output\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RemoteId": "The identifier that is assigned to the Zixi receiver\\. This parameter applies only to outputs that use Zixi pull\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SmoothingLatency": "The smoothing latency in milliseconds for RIST, RTP, and RTP\\-FEC streams\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamId": "The stream ID that you want to use for the transport\\. This parameter applies only to Zixi\\-based streams\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcInterfaceAttachment": "The VPC interface that you want to send your output to\\. \n*Required*: No \n*Type*: [VpcInterfaceAttachment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowoutput-vpcinterfaceattachment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaConnect::FlowOutput Encryption": { + "Algorithm": "The type of algorithm that is used for the encryption \\(such as aes128, aes192, or aes256\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeyType": "The type of key that is used for the encryption\\. If you don't specify a `keyType` value, the service uses the default setting \\(`static-key`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the role that you created during setup \\(when you set up MediaConnect as a trusted entity\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretArn": "The ARN of the secret that you created in AWS Secrets Manager to store the encryption key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaConnect::FlowOutput VpcInterfaceAttachment": { + "VpcInterfaceName": "The name of the VPC interface that you want to send your output to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaConnect::FlowSource": { + "Decryption": "The type of encryption that is used on the content ingested from the source\\. \n*Required*: No \n*Type*: [Encryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowsource-encryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the source\\. This description is not visible outside of the current AWS account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EntitlementArn": "The ARN of the entitlement that allows you to subscribe to the flow\\. The entitlement is set by the content originator, and the ARN is generated as part of the originator's flow\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FlowArn": "The Amazon Resource Name \\(ARN\\) of the flow\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IngestPort": "The port that the flow listens on for incoming content\\. If the protocol of the source is Zixi, the port must be set to 2088\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxBitrate": "The maximum bitrate for RIST, RTP, and RTP\\-FEC streams\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxLatency": "The maximum latency in milliseconds\\. This parameter applies only to RIST\\-based, Zixi\\-based, and Fujitsu\\-based streams\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Protocol": "The protocol that the source uses to deliver the content to MediaConnect\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamId": "The stream ID that you want to use for the transport\\. This parameter applies only to Zixi\\-based streams\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcInterfaceName": "The name of the VPC interface that you want to send your output to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WhitelistCidr": "The range of IP addresses that are allowed to contribute content to your source\\. Format the IP addresses as a Classless Inter\\-Domain Routing \\(CIDR\\) block; for example, 10\\.0\\.0\\.0/16\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaConnect::FlowSource Encryption": { + "Algorithm": "The type of algorithm that is used for the encryption \\(such as aes128, aes192, or aes256\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConstantInitializationVector": "A 128\\-bit, 16\\-byte hex value represented by a 32\\-character string, to be used with the key for encrypting content\\. This parameter is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeviceId": "The value of one of the devices that you configured with your digital rights management \\(DRM\\) platform key provider\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeyType": "The type of key that is used for the encryption\\. If you don't specify a `keyType` value, the service uses the default setting \\(`static-key`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Region": "The AWS Region that the API Gateway proxy endpoint was created in\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceId": "An identifier for the content\\. The service sends this value to the key server to identify the current endpoint\\. The resource ID is also known as the content ID\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the role that you created during setup \\(when you set up MediaConnect as a trusted entity\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretArn": "The ARN of the secret that you created in AWS Secrets Manager to store the encryption key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Url": "The URL from the API Gateway proxy that you set up to talk to your key server\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaConnect::FlowVpcInterface": { + "FlowArn": "The Amazon Resource Name \\(ARN\\) of the flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the VPC Interface\\. This value must be unique within the current flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the role that you created when you set up MediaConnect as a trusted service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroupIds": "The VPC security groups that you want MediaConnect to use for your VPC configuration\\. You must include at least one security group in the request\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetId": "The subnet IDs that you want to use for your VPC interface\\. \nA range of IP addresses in your VPC\\. When you create your VPC, you specify a range of IPv4 addresses for the VPC in the form of a Classless Inter\\-Domain Routing \\(CIDR\\) block; for example, 10\\.0\\.0\\.0/16\\. This is the primary CIDR block for your VPC\\. When you create a subnet for your VPC, you specify the CIDR block for the subnet, which is a subset of the VPC CIDR block\\. \nThe subnets that you use across all VPC interfaces on the flow must be in the same Availability Zone as the flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaConvert::JobTemplate": { + "AccelerationSettings": "Accelerated transcoding can significantly speed up jobs with long, visually complex content\\. Outputs that use this feature incur pro\\-tier pricing\\. For information about feature limitations, For more information, see [Job Limitations for Accelerated Transcoding in AWS Elemental MediaConvert](https://docs.aws.amazon.com/mediaconvert/latest/ug/job-requirements.html) in the *AWS Elemental MediaConvert User Guide*\\. \n*Required*: No \n*Type*: [AccelerationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconvert-jobtemplate-accelerationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Category": "Optional\\. A category for the job template you are creating \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "Optional\\. A description of the job template you are creating\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HopDestinations": "Optional\\. Configuration for a destination queue to which the job can hop once a customer\\-defined minimum wait time has passed\\. For more information, see [Setting Up Queue Hopping to Avoid Long Waits](https://docs.aws.amazon.com/mediaconvert/latest/ug/setting-up-queue-hopping-to-avoid-long-waits.html) in the *AWS Elemental MediaConvert User Guide*\\. \n*Required*: No \n*Type*: List of [HopDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconvert-jobtemplate-hopdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the job template you are creating\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Priority": "Specify the relative priority for this job\\. In any given queue, the service begins processing the job with the highest value first\\. When more than one job has the same priority, the service begins processing the job that you submitted first\\. If you don't specify a priority, the service uses the default value 0\\. Minimum: \\-50 Maximum: 50 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Queue": "Optional\\. The queue that jobs created from this template are assigned to\\. Specify the Amazon Resource Name \\(ARN\\) of the queue\\. For example, arn:aws:mediaconvert:us\\-west\\-2:505474453218:queues/Default\\. If you don't specify this, jobs will go to the default queue\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SettingsJson": "Specify, in JSON format, the transcoding job settings for this job template\\. This specification must conform to the AWS Elemental MediaConvert job validation\\. For information about forming this specification, see the Remarks section later in this topic\\. \nFor more information about MediaConvert job templates, see [Working with AWS Elemental MediaConvert Job Templates](https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-job-templates.html) in the *AWS Elemental MediaConvert User Guide*\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatusUpdateInterval": "Specify how often MediaConvert sends STATUS\\_UPDATE events to Amazon CloudWatch Events\\. Set the interval, in seconds, between status updates\\. MediaConvert sends an update at this interval from the time the service begins processing your job to the time it completes the transcode or encounters an error\\. \nSpecify one of the following enums: \nSECONDS\\_10 \nSECONDS\\_12 \nSECONDS\\_15 \nSECONDS\\_20 \nSECONDS\\_30 \nSECONDS\\_60 \nSECONDS\\_120 \nSECONDS\\_180 \nSECONDS\\_240 \nSECONDS\\_300 \nSECONDS\\_360 \nSECONDS\\_420 \nSECONDS\\_480 \nSECONDS\\_540 \nSECONDS\\_600 \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaConvert::JobTemplate AccelerationSettings": { + "Mode": "Specify the conditions when the service will run your job with accelerated transcoding\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaConvert::JobTemplate HopDestination": { + "Priority": "Optional\\. When you set up a job to use queue hopping, you can specify a different relative priority for the job in the destination queue\\. If you don't specify, the relative priority will remain the same as in the previous queue\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Queue": "Optional unless the job is submitted on the default queue\\. When you set up a job to use queue hopping, you can specify a destination queue\\. This queue cannot be the original queue to which the job is submitted\\. If the original queue isn't the default queue and you don't specify the destination queue, the job will move to the default queue\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WaitMinutes": "Required for setting up a job to use queue hopping\\. Minimum wait time in minutes until the job can hop to the destination queue\\. Valid range is 1 to 1440 minutes, inclusive\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaConvert::Preset": { + "Category": "The new category for the preset, if you are changing it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The new description for the preset, if you are changing it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the preset that you are modifying\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SettingsJson": "Specify, in JSON format, the transcoding job settings for this output preset\\. This specification must conform to the AWS Elemental MediaConvert job validation\\. For information about forming this specification, see the Remarks section later in this topic\\. \nFor more information about MediaConvert output presets, see [Working with AWS Elemental MediaConvert Output Presets](https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-presets.html) in the *AWS Elemental MediaConvert User Guide*\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaConvert::Queue": { + "Description": "Optional\\. A description of the queue that you are creating\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the queue that you are creating\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PricingPlan": "When you use AWS CloudFormation, you can create only on\\-demand queues\\. Therefore, always set `PricingPlan` to the value \"ON\\_DEMAND\" when declaring an AWS::MediaConvert::Queue in your AWS CloudFormation template\\. \nTo create a reserved queue, use the AWS Elemental MediaConvert console at https://console\\.aws\\.amazon\\.com/mediaconvert to set up a contract\\. For more information, see [Working with AWS Elemental MediaConvert Queues](https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-queues.html) in the *AWS Elemental MediaConvert User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Status": "Initial state of the queue\\. Queues can be either ACTIVE or PAUSED\\. If you create a paused queue, then jobs that you send to that queue won't begin\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel": { + "CdiInputSpecification": "Specification of CDI inputs for this channel\\. \n*Required*: No \n*Type*: [CdiInputSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-cdiinputspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ChannelClass": "The class for this channel\\. For a channel with two pipelines, the class is STANDARD\\. For a channel with one pipeline, the class is SINGLE\\_PIPELINE\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Destinations": "The settings that identify the destination for the outputs in this MediaLive output package\\. \n*Required*: No \n*Type*: List of [OutputDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EncoderSettings": "The encoding configuration for the output content\\. \n*Required*: No \n*Type*: [EncoderSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-encodersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputAttachments": "The list of input attachments for the channel\\. \n*Required*: No \n*Type*: List of [InputAttachment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputattachment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputSpecification": "The input specification for this channel\\. It specifies the key characteristics of the inputs for this channel: the maximum bitrate, the resolution, and the codec\\. \n*Required*: No \n*Type*: [InputSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogLevel": "The verbosity for logging activity for this channel\\. Charges for logging \\(which are generated through Amazon CloudWatch Logging\\) are higher for higher verbosities\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A name for this audio selector\\. The AudioDescription \\(in an output\\) references this name in order to identify a specific input audio to include in that output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The IAM role for MediaLive to assume when running this channel\\. The role is identified by its ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A collection of tags for this channel\\. Each tag is a key\\-value pair\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Vpc": "Settings to enable VPC mode in the channel, so that the endpoints for all outputs are in your VPC\\. \n*Required*: No \n*Type*: [VpcOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-vpcoutputsettings.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::MediaLive::Channel AacSettings": { + "Bitrate": "The average bitrate in bits/second\\. Valid values depend on the rate control mode and profile\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CodingMode": "Mono, stereo, or 5\\.1 channel layout\\. Valid values depend on the rate control mode and profile\\. The adReceiverMix setting receives a stereo description plus control track, and emits a mono AAC encode of the description track, with control data emitted in the PES header as per ETSI TS 101 154 Annex E\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputType": "Set to broadcasterMixedAd when the input contains pre\\-mixed main audio \\+ AD \\(narration\\) as a stereo pair\\. The Audio Type field \\(audioType\\) will be set to 3, which signals to downstream systems that this stream contains broadcaster mixed AD\\. Note that the input received by the encoder must contain pre\\-mixed audio; MediaLive does not perform the mixing\\. The values in audioTypeControl and audioType \\(in AudioDescription\\) are ignored when set to broadcasterMixedAd\\. Leave this set to normal when the input does not contain pre\\-mixed audio \\+ AD\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Profile": "The AAC profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RateControlMode": "The rate control mode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RawFormat": "Sets the LATM/LOAS AAC output for raw containers\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SampleRate": "The sample rate in Hz\\. Valid values depend on the rate control mode and profile\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Spec": "Uses MPEG\\-2 AAC audio instead of MPEG\\-4 AAC audio for raw or MPEG\\-2 Transport Stream containers\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VbrQuality": "The VBR quality level\\. This is used only if rateControlMode is VBR\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel Ac3Settings": { + "Bitrate": "The average bitrate in bits/second\\. Valid bitrates depend on the coding mode\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BitstreamMode": "Specifies the bitstream mode \\(bsmod\\) for the emitted AC\\-3 stream\\. For more information about these values, see ATSC A/52\\-2012\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CodingMode": "The Dolby Digital coding mode\\. This determines the number of channels\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Dialnorm": "Sets the dialnorm for the output\\. If excluded and the input audio is Dolby Digital, dialnorm is passed through\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DrcProfile": "If set to filmStandard, adds dynamic range compression signaling to the output bitstream as defined in the Dolby Digital specification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LfeFilter": "When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to encoding\\. This is valid only in codingMode32Lfe mode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetadataControl": "When set to followInput, encoder metadata is sourced from the DD, DD\\+, or DolbyE decoder that supplies this audio data\\. If the audio is supplied from one of these streams, the static metadata settings are used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel AncillarySourceSettings": { + "SourceAncillaryChannelNumber": "Specifies the number \\(1 to 4\\) of the captions channel you want to extract from the ancillary captions\\. If you plan to convert the ancillary captions to another format, complete this field\\. If you plan to choose Embedded as the captions destination in the output \\(to pass through all the channels in the ancillary captions\\), leave this field blank because MediaLive ignores the field\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel ArchiveCdnSettings": { + "ArchiveS3Settings": "Sets up Amazon S3 as the destination for this Archive output\\. \n*Required*: No \n*Type*: [ArchiveS3Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archives3settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel ArchiveContainerSettings": { + "M2tsSettings": "The settings for the M2TS in the archive output\\. \n*Required*: No \n*Type*: [M2tsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RawSettings": "The settings for Raw archive output type\\. \n*Required*: No \n*Type*: [RawSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rawsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel ArchiveGroupSettings": { + "ArchiveCdnSettings": "Settings to configure the destination of an Archive output\\. \n*Required*: No \n*Type*: [ArchiveCdnSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivecdnsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Destination": "A directory and base file name where archive files should be written\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RolloverInterval": "The number of seconds to write to an archive file before closing and starting a new one\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel ArchiveOutputSettings": { + "ContainerSettings": "The settings that are specific to the container type of the file\\. \n*Required*: No \n*Type*: [ArchiveContainerSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivecontainersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Extension": "The output file extension\\. If excluded, this is auto\\-selected from the container type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NameModifier": "A string that is concatenated to the end of the destination file name\\. The string is required for multiple outputs of the same type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel ArchiveS3Settings": { + "CannedAcl": "Specify the canned ACL to apply to each S3 request\\. Defaults to none\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel AudioChannelMapping": { + "InputChannelLevels": "The indices and gain values for each input channel that should be remixed into this output channel\\. \n*Required*: No \n*Type*: List of [InputChannelLevel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputchannellevel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutputChannel": "The index of the output channel that is being produced\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel AudioCodecSettings": { + "AacSettings": "The setup of the AAC audio codec in the output\\. \n*Required*: No \n*Type*: [AacSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ac3Settings": "The setup of an AC3 audio codec in the output\\. \n*Required*: No \n*Type*: [Ac3Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ac3settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Eac3Settings": "The setup of an EAC3 audio codec in the output\\. \n*Required*: No \n*Type*: [Eac3Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Mp2Settings": "The setup of an MP2 audio codec in the output\\. \n*Required*: No \n*Type*: [Mp2Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mp2settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PassThroughSettings": "The setup to pass through the Dolby audio codec to the output\\. \n*Required*: No \n*Type*: [PassThroughSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-passthroughsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WavSettings": "Settings for audio encoded with the WAV codec\\. \n*Required*: No \n*Type*: [WavSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-wavsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel AudioDescription": { + "AudioNormalizationSettings": "The advanced audio normalization settings\\. \n*Required*: No \n*Type*: [AudioNormalizationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audionormalizationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AudioSelectorName": "The name of the AudioSelector that is used as the source for this AudioDescription\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AudioType": "Applies only if audioTypeControl is useConfigured\\. The values for audioType are defined in ISO\\-IEC 13818\\-1\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AudioTypeControl": "Determines how audio type is determined\\. followInput: If the input contains an ISO 639 audioType, then that value is passed through to the output\\. If the input contains no ISO 639 audioType, the value in Audio Type is included in the output\\. useConfigured: The value in Audio Type is included in the output\\. Note that this field and audioType are both ignored if inputType is broadcasterMixedAd\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AudioWatermarkingSettings": "Settings to configure one or more solutions that insert audio watermarks in the audio encode \n*Required*: No \n*Type*: [AudioWatermarkSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiowatermarksettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CodecSettings": "The audio codec settings\\. \n*Required*: No \n*Type*: [AudioCodecSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiocodecsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LanguageCode": "Indicates the language of the audio output track\\. Used only if languageControlMode is useConfigured, or there is no ISO 639 language code specified in the input\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LanguageCodeControl": "Choosing followInput causes the ISO 639 language code of the output to follow the ISO 639 language code of the input\\. The languageCode setting is used when useConfigured is set, or when followInput is selected but there is no ISO 639 language code specified by the input\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of this AudioDescription\\. Outputs use this name to uniquely identify this AudioDescription\\. Description names should be unique within this channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RemixSettings": "The settings that control how input audio channels are remixed into the output audio channels\\. \n*Required*: No \n*Type*: [RemixSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-remixsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamName": "Used for Microsoft Smooth and Apple HLS outputs\\. Indicates the name displayed by the player \\(for example, English or Director Commentary\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel AudioHlsRenditionSelection": { + "GroupId": "Specifies the GROUP\\-ID in the \\#EXT\\-X\\-MEDIA tag of the target HLS audio rendition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "Specifies the NAME in the \\#EXT\\-X\\-MEDIA tag of the target HLS audio rendition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel AudioLanguageSelection": { + "LanguageCode": "Selects a specific three\\-letter language code from within an audio source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LanguageSelectionPolicy": "When set to \"strict,\" the transport stream demux strictly identifies audio streams by their language descriptor\\. If a PMT update occurs such that an audio stream matching the initially selected language is no longer present, then mute is encoded until the language returns\\. If set to \"loose,\" then on a PMT update the demux chooses another audio stream in the program with the same stream type if it can't find one with the same language\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel AudioNormalizationSettings": { + "Algorithm": "The audio normalization algorithm to use\\. itu17701 conforms to the CALM Act specification\\. itu17702 conforms to the EBU R\\-128 specification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AlgorithmControl": "When set to correctAudio, the output audio is corrected using the chosen algorithm\\. If set to measureOnly, the audio is measured but not adjusted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetLkfs": "The Target LKFS\\(loudness\\) to adjust volume to\\. If no value is entered, a default value is used according to the chosen algorithm\\. The CALM Act \\(1770\\-1\\) recommends a target of \\-24 LKFS\\. The EBU R\\-128 specification \\(1770\\-2\\) recommends a target of \\-23 LKFS\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel AudioOnlyHlsSettings": { + "AudioGroupId": "Specifies the group that the audio rendition belongs to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AudioOnlyImage": "Used with an audio\\-only stream\\. It must be a \\.jpg or \\.png file\\. If given, this image is used as the cover art for the audio\\-only output\\. Ideally, it should be formatted for an iPhone screen for two reasons\\. The iPhone does not resize the image; instead, it crops a centered image on the top/bottom and left/right\\. Additionally, this image file gets saved bit\\-for\\-bit into every 10\\-second segment file, so it increases bandwidth by \\{image file size\\} \\* \\{segment count\\} \\* \\{user count\\.\\}\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AudioTrackType": "Four types of audio\\-only tracks are supported: Audio\\-Only Variant Stream The client can play back this audio\\-only stream instead of video in low\\-bandwidth scenarios\\. Represented as an EXT\\-X\\-STREAM\\-INF in the HLS manifest\\. Alternate Audio, Auto Select, Default Alternate rendition that the client should try to play back by default\\. Represented as an EXT\\-X\\-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto Select, Not Default Alternate rendition that the client might try to play back by default\\. Represented as an EXT\\-X\\-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate Audio, not Auto Select Alternate rendition that the client will not try to play back by default\\. Represented as an EXT\\-X\\-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentType": "Specifies the segment type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel AudioPidSelection": { + "Pid": "Select the audio by this PID\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel AudioSelector": { + "Name": "A name for this AudioSelector\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SelectorSettings": "Information about the specific audio to extract from the input\\. \n*Required*: No \n*Type*: [AudioSelectorSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselectorsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel AudioSelectorSettings": { + "AudioHlsRenditionSelection": "Selector for HLS audio rendition\\. \n*Required*: No \n*Type*: [AudioHlsRenditionSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiohlsrenditionselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AudioLanguageSelection": "The language code of the audio to select\\. \n*Required*: No \n*Type*: [AudioLanguageSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiolanguageselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AudioPidSelection": "The PID of the audio to select\\. \n*Required*: No \n*Type*: [AudioPidSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiopidselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AudioTrackSelection": "Information about the audio track to extract\\. \n*Required*: No \n*Type*: [AudioTrackSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiotrackselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel AudioSilenceFailoverSettings": { + "AudioSelectorName": "The name of the audio selector in the input that MediaLive should monitor to detect silence\\. Select your most important rendition\\. If you didn't create an audio selector in this input, leave blank\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AudioSilenceThresholdMsec": "The amount of time \\(in milliseconds\\) that the active input must be silent before automatic input failover occurs\\. Silence is defined as audio loss or audio quieter than \\-50 dBFS\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel AudioTrack": { + "Track": "1\\-based integer value that maps to a specific audio track \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel AudioTrackSelection": { + "Tracks": "Selects one or more unique audio tracks from within a source\\. \n*Required*: No \n*Type*: List of [AudioTrack](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiotrack.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel AudioWatermarkSettings": { + "NielsenWatermarksSettings": "Settings to configure Nielsen Watermarks in the audio encode \n*Required*: No \n*Type*: [NielsenWatermarksSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-nielsenwatermarkssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel AutomaticInputFailoverSettings": { + "ErrorClearTimeMsec": "This clear time defines the requirement a recovered input must meet to be considered healthy\\. The input must have no failover conditions for this length of time\\. Enter a time in milliseconds\\. This value is particularly important if the input\\_preference for the failover pair is set to PRIMARY\\_INPUT\\_PREFERRED, because after this time, MediaLive will switch back to the primary input\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FailoverConditions": "A list of failover conditions\\. If any of these conditions occur, MediaLive will perform a failover to the other input\\. \n*Required*: No \n*Type*: List of [FailoverCondition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-failovercondition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputPreference": "Input preference when deciding which input to make active when a previously failed input has recovered\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecondaryInputId": "The input ID of the secondary input in the automatic input failover pair\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel AvailBlanking": { + "AvailBlankingImage": "The blanking image to be used\\. Keep empty for solid black\\. Only \\.bmp and \\.png images are supported\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "State": "When set to enabled, the video, audio, and captions are blanked when insertion metadata is added\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel AvailConfiguration": { + "AvailSettings": "The setup of ad avail handling in the output\\. \n*Required*: No \n*Type*: [AvailSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel AvailSettings": { + "Scte35SpliceInsert": "The setup for SCTE\\-35 splice insert handling\\. \n*Required*: No \n*Type*: [Scte35SpliceInsert](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte35spliceinsert.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scte35TimeSignalApos": "The setup for SCTE\\-35 time signal APOS handling\\. \n*Required*: No \n*Type*: [Scte35TimeSignalApos](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte35timesignalapos.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel BlackoutSlate": { + "BlackoutSlateImage": "The blackout slate image to be used\\. Keep empty for solid black\\. Only \\.bmp and \\.png images are supported\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkEndBlackout": "Setting to enabled causes MediaLive to blackout the video, audio, and captions, and raise the \"Network Blackout Image\" slate when an SCTE104/35 Network End Segmentation Descriptor is encountered\\. The blackout is lifted when the Network Start Segmentation Descriptor is encountered\\. The Network End and Network Start descriptors must contain a network ID that matches the value entered in Network ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkEndBlackoutImage": "The path to the local file to use as the Network End Blackout image\\. The image is scaled to fill the entire output raster\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkId": "Provides a Network ID that matches EIDR ID format \\(for example, \"10\\.XXXX/XXXX\\-XXXX\\-XXXX\\-XXXX\\-XXXX\\-C\"\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "State": "When set to enabled, this causes video, audio, and captions to be blanked when indicated by program metadata\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel BurnInDestinationSettings": { + "Alignment": "If no explicit xPosition or yPosition is provided, setting alignment to centered places the captions at the bottom center of the output\\. Similarly, setting a left alignment aligns captions to the bottom left of the output\\. If x and y positions are specified in conjunction with the alignment parameter, the font is justified \\(either left or centered\\) relative to those coordinates\\. Selecting \"smart\" justification left\\-justifies live subtitles and center\\-justifies pre\\-recorded subtitles\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BackgroundColor": "Specifies the color of the rectangle behind the captions\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BackgroundOpacity": "Specifies the opacity of the background rectangle\\. 255 is opaque; 0 is transparent\\. Keeping this parameter blank is equivalent to setting it to 0 \\(transparent\\)\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Font": "The external font file that is used for captions burn\\-in\\. The file extension must be \\.ttf or \\.tte\\. Although you can select output fonts for many different types of input captions, embedded, STL, and Teletext sources use a strict grid system\\. Using external fonts with these captions sources could cause an unexpected display of proportional fonts\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FontColor": "Specifies the color of the burned\\-in captions\\. This option is not valid for source captions that are STL, 608/embedded, or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FontOpacity": "Specifies the opacity of the burned\\-in captions\\. 255 is opaque; 0 is transparent\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FontResolution": "The font resolution in DPI \\(dots per inch\\)\\. The default is 96 dpi\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FontSize": "When set to auto, fontSize scales depending on the size of the output\\. Providing a positive integer specifies the exact font size in points\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutlineColor": "Specifies the font outline color\\. This option is not valid for source captions that are either 608/embedded or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutlineSize": "Specifies font outline size in pixels\\. This option is not valid for source captions that are either 608/embedded or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ShadowColor": "Specifies the color of the shadow cast by the captions\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ShadowOpacity": "Specifies the opacity of the shadow\\. 255 is opaque; 0 is transparent\\. Keeping this parameter blank is equivalent to setting it to 0 \\(transparent\\)\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ShadowXOffset": "Specifies the horizontal offset of the shadow that is relative to the captions in pixels\\. A value of \\-2 would result in a shadow offset 2 pixels to the left\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ShadowYOffset": "Specifies the vertical offset of the shadow that is relative to the captions in pixels\\. A value of \\-2 would result in a shadow offset 2 pixels above the text\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TeletextGridControl": "Controls whether a fixed grid size is used to generate the output subtitles bitmap\\. This applies only to Teletext inputs and DVB\\-Sub/Burn\\-in outputs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "XPosition": "Specifies the horizontal position of the captions relative to the left side of the output in pixels\\. A value of 10 would result in the captions starting 10 pixels from the left of the output\\. If no explicit xPosition is provided, the horizontal captions position is determined by the alignment parameter\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "YPosition": "Specifies the vertical position of the captions relative to the top of the output in pixels\\. A value of 10 would result in the captions starting 10 pixels from the top of the output\\. If no explicit yPosition is provided, the captions are positioned towards the bottom of the output\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel CaptionDescription": { + "CaptionSelectorName": "Specifies which input captions selector to use as a captions source when generating output captions\\. This field should match a captionSelector name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationSettings": "Additional settings for a captions destination that depend on the destination type\\. \n*Required*: No \n*Type*: [CaptionDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LanguageCode": "An ISO 639\\-2 three\\-digit code\\. For more information, see http://www\\.loc\\.gov/standards/iso639\\-2/\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LanguageDescription": "Human\\-readable information to indicate the captions that are available for players \\(for example, English or Spanish\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the captions description\\. The name is used to associate a captions description with an output\\. Names must be unique within a channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel CaptionDestinationSettings": { + "AribDestinationSettings": "The configuration of one ARIB captions encode in the output\\. \n*Required*: No \n*Type*: [AribDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aribdestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BurnInDestinationSettings": "The configuration of one burn\\-in captions encode in the output\\. \n*Required*: No \n*Type*: [BurnInDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DvbSubDestinationSettings": "The configuration of one DVB Sub captions encode in the output\\. \n*Required*: No \n*Type*: [DvbSubDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubdestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EbuTtDDestinationSettings": "Settings for EBU\\-TT captions in the output\\. \n*Required*: No \n*Type*: [EbuTtDDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ebuttddestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EmbeddedDestinationSettings": "The configuration of one embedded captions encode in the output\\. \n*Required*: No \n*Type*: [EmbeddedDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-embeddeddestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EmbeddedPlusScte20DestinationSettings": "The configuration of one embedded plus SCTE\\-20 captions encode in the output\\. \n*Required*: No \n*Type*: [EmbeddedPlusScte20DestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-embeddedplusscte20destinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RtmpCaptionInfoDestinationSettings": "The configuration of one RTMPCaptionInfo captions encode in the output\\. \n*Required*: No \n*Type*: [RtmpCaptionInfoDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpcaptioninfodestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scte20PlusEmbeddedDestinationSettings": "The configuration of one SCTE20 plus embedded captions encode in the output\\. \n*Required*: No \n*Type*: [Scte20PlusEmbeddedDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte20plusembeddeddestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scte27DestinationSettings": "The configuration of one SCTE\\-27 captions encode in the output\\. \n*Required*: No \n*Type*: [Scte27DestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte27destinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SmpteTtDestinationSettings": "The configuration of one SMPTE\\-TT captions encode in the output\\. \n*Required*: No \n*Type*: [SmpteTtDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-smptettdestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TeletextDestinationSettings": "The configuration of one Teletext captions encode in the output\\. \n*Required*: No \n*Type*: [TeletextDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-teletextdestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TtmlDestinationSettings": "The configuration of one TTML captions encode in the output\\. \n*Required*: No \n*Type*: [TtmlDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ttmldestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WebvttDestinationSettings": "The configuration of one WebVTT captions encode in the output\\. \n*Required*: No \n*Type*: [WebvttDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-webvttdestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel CaptionLanguageMapping": { + "CaptionChannel": "The closed caption channel being described by this CaptionLanguageMapping\\. Each channel mapping must have a unique channel number \\(maximum of 4\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LanguageCode": "A three\\-character ISO 639\\-2 language code \\(see http://www\\.loc\\.gov/standards/iso639\\-2\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LanguageDescription": "The textual description of language\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel CaptionRectangle": { + "Height": "See the description in leftOffset\\. \n For height, specify the entire height of the rectangle as a percentage of the underlying frame height\\. For example, \\\\\"80\\\\\" means the rectangle height is 80% of the underlying frame height\\. The topOffset and rectangleHeight must add up to 100% or less\\. This field corresponds to tts:extent \\- Y in the TTML standard\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LeftOffset": "Applies only if you plan to convert these source captions to EBU\\-TT\\-D or TTML in an output\\. \\(Make sure to leave the default if you don't have either of these formats in the output\\.\\) You can define a display rectangle for the captions that is smaller than the underlying video frame\\. You define the rectangle by specifying the position of the left edge, top edge, bottom edge, and right edge of the rectangle, all within the underlying video frame\\. The units for the measurements are percentages\\. If you specify a value for one of these fields, you must specify a value for all of them\\. \n For leftOffset, specify the position of the left edge of the rectangle, as a percentage of the underlying frame width, and relative to the left edge of the frame\\. For example, \\\\\"10\\\\\" means the measurement is 10% of the underlying frame width\\. The rectangle left edge starts at that position from the left edge of the frame\\. This field corresponds to tts:origin \\- X in the TTML standard\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TopOffset": "See the description in leftOffset\\. \n For topOffset, specify the position of the top edge of the rectangle, as a percentage of the underlying frame height, and relative to the top edge of the frame\\. For example, \\\\\"10\\\\\" means the measurement is 10% of the underlying frame height\\. The rectangle top edge starts at that position from the top edge of the frame\\. This field corresponds to tts:origin \\- Y in the TTML standard\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Width": "See the description in leftOffset\\. \n For width, specify the entire width of the rectangle as a percentage of the underlying frame width\\. For example, \\\\\"80\\\\\" means the rectangle width is 80% of the underlying frame width\\. The leftOffset and rectangleWidth must add up to 100% or less\\. This field corresponds to tts:extent \\- X in the TTML standard\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel CaptionSelector": { + "LanguageCode": "When specified, this field indicates the three\\-letter language code of the captions track to extract from the source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name identifier for a captions selector\\. This name is used to associate this captions selector with one or more captions descriptions\\. Names must be unique within a channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SelectorSettings": "Information about the specific audio to extract from the input\\. \n*Required*: No \n*Type*: [CaptionSelectorSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel CaptionSelectorSettings": { + "AncillarySourceSettings": "Information about the ancillary captions to extract from the input\\. \n*Required*: No \n*Type*: [AncillarySourceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ancillarysourcesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AribSourceSettings": "Information about the ARIB captions to extract from the input\\. \n*Required*: No \n*Type*: [AribSourceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aribsourcesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DvbSubSourceSettings": "Information about the DVB Sub captions to extract from the input\\. \n*Required*: No \n*Type*: [DvbSubSourceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubsourcesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EmbeddedSourceSettings": "Information about the embedded captions to extract from the input\\. \n*Required*: No \n*Type*: [EmbeddedSourceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-embeddedsourcesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scte20SourceSettings": "Information about the SCTE\\-20 captions to extract from the input\\. \n*Required*: No \n*Type*: [Scte20SourceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte20sourcesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scte27SourceSettings": "Information about the SCTE\\-27 captions to extract from the input\\. \n*Required*: No \n*Type*: [Scte27SourceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte27sourcesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TeletextSourceSettings": "Information about the Teletext captions to extract from the input\\. \n*Required*: No \n*Type*: [TeletextSourceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-teletextsourcesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel CdiInputSpecification": { + "Resolution": "Maximum CDI input resolution \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel DvbNitSettings": { + "NetworkId": "The numeric value placed in the Network Information Table \\(NIT\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkName": "The network name text placed in the networkNameDescriptor inside the Network Information Table \\(NIT\\)\\. The maximum length is 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RepInterval": "The number of milliseconds between instances of this table in the output transport stream\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel DvbSdtSettings": { + "OutputSdt": "Selects a method of inserting SDT information into an output stream\\. The sdtFollow setting copies SDT information from input stream to output stream\\. The sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT information is present in the input\\. Otherwise, it falls back on the user\\-defined values\\. The sdtManual setting means that the user will enter the SDT information\\. The sdtNone setting means that the output stream will not contain SDT information\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RepInterval": "The number of milliseconds between instances of this table in the output transport stream\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceName": "The service name placed in the serviceDescriptor in the Service Description Table \\(SDT\\)\\. The maximum length is 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceProviderName": "The service provider name placed in the serviceDescriptor in the Service Description Table \\(SDT\\)\\. The maximum length is 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel DvbSubDestinationSettings": { + "Alignment": "If no explicit xPosition or yPosition is provided, setting the alignment to centered places the captions at the bottom center of the output\\. Similarly, setting a left alignment aligns captions to the bottom left of the output\\. If x and y positions are specified in conjunction with the alignment parameter, the font is justified \\(either left or centered\\) relative to those coordinates\\. Selecting \"smart\" justification left\\-justifies live subtitles and center\\-justifies pre\\-recorded subtitles\\. This option is not valid for source captions that are STL or 608/embedded\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BackgroundColor": "Specifies the color of the rectangle behind the captions\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BackgroundOpacity": "Specifies the opacity of the background rectangle\\. 255 is opaque; 0 is transparent\\. Keeping this parameter blank is equivalent to setting it to 0 \\(transparent\\)\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Font": "The external font file that is used for captions burn\\-in\\. The file extension must be \\.ttf or \\.tte\\. Although you can select output fonts for many different types of input captions, embedded, STL, and Teletext sources use a strict grid system\\. Using external fonts with these captions sources could cause an unexpected display of proportional fonts\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FontColor": "Specifies the color of the burned\\-in captions\\. This option is not valid for source captions that are STL, 608/embedded, or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FontOpacity": "Specifies the opacity of the burned\\-in captions\\. 255 is opaque; 0 is transparent\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FontResolution": "The font resolution in DPI \\(dots per inch\\)\\. The default is 96 dpi\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FontSize": "When set to auto, fontSize scales depending on the size of the output\\. Providing a positive integer specifies the exact font size in points\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutlineColor": "Specifies the font outline color\\. This option is not valid for source captions that are either 608/embedded or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutlineSize": "Specifies the font outline size in pixels\\. This option is not valid for source captions that are either 608/embedded or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ShadowColor": "Specifies the color of the shadow that is cast by the captions\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ShadowOpacity": "Specifies the opacity of the shadow\\. 255 is opaque; 0 is transparent\\. Keeping this parameter blank is equivalent to setting it to 0 \\(transparent\\)\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ShadowXOffset": "Specifies the horizontal offset of the shadow relative to the captions in pixels\\. A value of \\-2 would result in a shadow offset 2 pixels to the left\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ShadowYOffset": "Specifies the vertical offset of the shadow relative to the captions in pixels\\. A value of \\-2 would result in a shadow offset 2 pixels above the text\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TeletextGridControl": "Controls whether a fixed grid size is used to generate the output subtitles bitmap\\. This applies to only Teletext inputs and DVB\\-Sub/Burn\\-in outputs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "XPosition": "Specifies the horizontal position of the captions relative to the left side of the output in pixels\\. A value of 10 would result in the captions starting 10 pixels from the left of the output\\. If no explicit xPosition is provided, the horizontal captions position is determined by the alignment parameter\\. This option is not valid for source captions that are STL, 608/embedded, or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "YPosition": "Specifies the vertical position of the captions relative to the top of the output in pixels\\. A value of 10 would result in the captions starting 10 pixels from the top of the output\\. If no explicit yPosition is provided, the captions are positioned towards the bottom of the output\\. This option is not valid for source captions that are STL, 608/embedded, or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel DvbSubSourceSettings": { + "OcrLanguage": "If you will configure a WebVTT caption description that references this caption selector, use this field to provide the language to consider when translating the image\\-based source to text\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Pid": "When using DVB\\-Sub with burn\\-in or SMPTE\\-TT, use this PID for the source content\\. It is unused for DVB\\-Sub passthrough\\. All DVB\\-Sub content is passed through, regardless of selectors\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel DvbTdtSettings": { + "RepInterval": "The number of milliseconds between instances of this table in the output transport stream\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel Eac3Settings": { + "AttenuationControl": "When set to attenuate3Db, applies a 3 dB attenuation to the surround channels\\. Used only for the 3/2 coding mode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Bitrate": "The average bitrate in bits/second\\. Valid bitrates depend on the coding mode\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BitstreamMode": "Specifies the bitstream mode \\(bsmod\\) for the emitted E\\-AC\\-3 stream\\. For more information, see ATSC A/52\\-2012 \\(Annex E\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CodingMode": "The Dolby Digital Plus coding mode\\. This mode determines the number of channels\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DcFilter": "When set to enabled, activates a DC highpass filter for all input channels\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Dialnorm": "Sets the dialnorm for the output\\. If blank and the input audio is Dolby Digital Plus, dialnorm will be passed through\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DrcLine": "Sets the Dolby dynamic range compression profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DrcRf": "Sets the profile for heavy Dolby dynamic range compression, ensuring that the instantaneous signal peaks do not exceed specified levels\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LfeControl": "When encoding 3/2 audio, setting to lfe enables the LFE channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LfeFilter": "When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to encoding\\. Valid only with a codingMode32 coding mode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoRoCenterMixLevel": "The Left only/Right only center mix level\\. Used only for the 3/2 coding mode\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoRoSurroundMixLevel": "The Left only/Right only surround mix level\\. Used only for a 3/2 coding mode\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LtRtCenterMixLevel": "The Left total/Right total center mix level\\. Used only for a 3/2 coding mode\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LtRtSurroundMixLevel": "The Left total/Right total surround mix level\\. Used only for the 3/2 coding mode\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetadataControl": "When set to followInput, encoder metadata is sourced from the DD, DD\\+, or DolbyE decoder that supplies this audio data\\. If the audio is not supplied from one of these streams, then the static metadata settings are used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PassthroughControl": "When set to whenPossible, input DD\\+ audio will be passed through if it is present on the input\\. This detection is dynamic over the life of the transcode\\. Inputs that alternate between DD\\+ and non\\-DD\\+ content will have a consistent DD\\+ output as the system alternates between passthrough and encoding\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PhaseControl": "When set to shift90Degrees, applies a 90\\-degree phase shift to the surround channels\\. Used only for a 3/2 coding mode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StereoDownmix": "A stereo downmix preference\\. Used only for the 3/2 coding mode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SurroundExMode": "When encoding 3/2 audio, sets whether an extra center back surround channel is matrix encoded into the left and right surround channels\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SurroundMode": "When encoding 2/0 audio, sets whether Dolby Surround is matrix\\-encoded into the two channels\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel EbuTtDDestinationSettings": { + "CopyrightHolder": "Applies only if you plan to convert these source captions to EBU\\-TT\\-D or TTML in an output\\. Complete this field if you want to include the name of the copyright holder in the copyright metadata tag in the TTML \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FillLineGap": "Specifies how to handle the gap between the lines \\(in multi\\-line captions\\)\\. \\- enabled: Fill with the captions background color \\(as specified in the input captions\\)\\. \\- disabled: Leave the gap unfilled\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FontFamily": "Specifies the font family to include in the font data attached to the EBU\\-TT captions\\. Valid only if styleControl is set to include\\. If you leave this field empty, the font family is set to \"monospaced\"\\. \\(If styleControl is set to exclude, the font family is always set to \"monospaced\"\\.\\) You specify only the font family\\. All other style information \\(color, bold, position and so on\\) is copied from the input captions\\. The size is always set to 100% to allow the downstream player to choose the size\\. \\- Enter a list of font families, as a comma\\-separated list of font names, in order of preference\\. The name can be a font family \\(such as \u201cArial\u201d\\), or a generic font family \\(such as \u201cserif\u201d\\), or \u201cdefault\u201d \\(to let the downstream player choose the font\\)\\. \\- Leave blank to set the family to \u201cmonospace\u201d\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StyleControl": "Specifies the style information \\(font color, font position, and so on\\) to include in the font data that is attached to the EBU\\-TT captions\\. \\- include: Take the style information \\(font color, font position, and so on\\) from the source captions and include that information in the font data attached to the EBU\\-TT captions\\. This option is valid only if the source captions are Embedded or Teletext\\. \\- exclude: In the font data attached to the EBU\\-TT captions, set the font family to \"monospaced\"\\. Do not include any other style information\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel EmbeddedSourceSettings": { + "Convert608To708": "If this is upconvert, 608 data is both passed through the \"608 compatibility bytes\" fields of the 708 wrapper as well as translated into 708\\. If 708 data is present in the source content, it is discarded\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scte20Detection": "Set to \"auto\" to handle streams with intermittent or non\\-aligned SCTE\\-20 and embedded captions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Source608ChannelNumber": "Specifies the 608/708 channel number within the video track from which to extract captions\\. This is unused for passthrough\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Source608TrackNumber": "This field is unused and deprecated\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel EncoderSettings": { + "AudioDescriptions": "The encoding information for output audio\\. \n*Required*: No \n*Type*: List of [AudioDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AvailBlanking": "The settings for ad avail blanking\\. \n*Required*: No \n*Type*: [AvailBlanking](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availblanking.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AvailConfiguration": "The configuration settings for the ad avail handling\\. \n*Required*: No \n*Type*: [AvailConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BlackoutSlate": "The settings for the blackout slate\\. \n*Required*: No \n*Type*: [BlackoutSlate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-blackoutslate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CaptionDescriptions": "The encoding information for output captions\\. \n*Required*: No \n*Type*: List of [CaptionDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondescription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FeatureActivations": "Settings to enable specific features\\. \n*Required*: No \n*Type*: [FeatureActivations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-featureactivations.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GlobalConfiguration": "The configuration settings that apply to the entire channel\\. \n*Required*: No \n*Type*: [GlobalConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-globalconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MotionGraphicsConfiguration": "Settings to enable and configure the motion graphics overlay feature in the channel\\. \n*Required*: No \n*Type*: [MotionGraphicsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-motiongraphicsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NielsenConfiguration": "The settings to configure Nielsen watermarks\\. \n*Required*: No \n*Type*: [NielsenConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-nielsenconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutputGroups": "The settings for the output groups in the channel\\. \n*Required*: No \n*Type*: List of [OutputGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputgroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimecodeConfig": "Contains settings used to acquire and adjust timecode information from the inputs\\. \n*Required*: No \n*Type*: [TimecodeConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-timecodeconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VideoDescriptions": "The encoding information for output videos\\. \n*Required*: No \n*Type*: List of [VideoDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videodescription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel FailoverCondition": { + "FailoverConditionSettings": "Settings for a specific failover condition\\. \n*Required*: No \n*Type*: [FailoverConditionSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-failoverconditionsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel FailoverConditionSettings": { + "AudioSilenceSettings": "MediaLive will perform a failover if the specified audio selector is silent for the specified period\\. \n*Required*: No \n*Type*: [AudioSilenceFailoverSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiosilencefailoversettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputLossSettings": "MediaLive will perform a failover if content is not detected in this input for the specified period\\. \n*Required*: No \n*Type*: [InputLossFailoverSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlossfailoversettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VideoBlackSettings": "MediaLive will perform a failover if content is considered black for the specified period\\. \n*Required*: No \n*Type*: [VideoBlackFailoverSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoblackfailoversettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel FeatureActivations": { + "InputPrepareScheduleActions": "Enables the Input Prepare feature\\. You can create Input Prepare actions in the schedule only if this feature is enabled\\. If you disable the feature on an existing schedule, make sure that you first delete all input prepare actions from the schedule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel FecOutputSettings": { + "ColumnDepth": "The parameter D from SMPTE 2022\\-1\\. The height of the FEC protection matrix\\. The number of transport stream packets per column error correction packet\\. The number must be between 4 and 20, inclusive\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeFec": "Enables column only or column and row\\-based FEC\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RowLength": "The parameter L from SMPTE 2022\\-1\\. The width of the FEC protection matrix\\. Must be between 1 and 20, inclusive\\. If only Column FEC is used, then larger values increase robustness\\. If Row FEC is used, then this is the number of transport stream packets per row error correction packet, and the value must be between 4 and 20, inclusive, if includeFec is columnAndRow\\. If includeFec is column, this value must be 1 to 20, inclusive\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel Fmp4HlsSettings": { + "AudioRenditionSets": "List all the audio groups that are used with the video output stream\\. Input all the audio GROUP\\-IDs that are associated to the video, separate by ','\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NielsenId3Behavior": "If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimedMetadataBehavior": "When set to passthrough, timed metadata is passed through from input to output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel FrameCaptureCdnSettings": { + "FrameCaptureS3Settings": "Sets up Amazon S3 as the destination for this Frame Capture output\\. \n*Required*: No \n*Type*: [FrameCaptureS3Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecaptures3settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel FrameCaptureGroupSettings": { + "Destination": "The destination for the frame capture files\\. The destination is either the URI for an Amazon S3 bucket and object, plus a file name prefix \\(for example, s3ssl://sportsDelivery/highlights/20180820/curling\\_\\) or the URI for a MediaStore container, plus a file name prefix \\(for example, mediastoressl://sportsDelivery/20180820/curling\\_\\)\\. The final file names consist of the prefix from the destination field \\(for example, \"curling\\_\"\\) \\+ name modifier \\+ the counter \\(5 digits, starting from 00001\\) \\+ extension \\(which is always \\.jpg\\)\\. For example, curlingLow\\.00001\\.jpg\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FrameCaptureCdnSettings": "Settings to configure the destination of a Frame Capture output\\. \n*Required*: No \n*Type*: [FrameCaptureCdnSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecapturecdnsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel FrameCaptureOutputSettings": { + "NameModifier": "Required if the output group contains more than one output\\. This modifier forms part of the output file name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel FrameCaptureS3Settings": { + "CannedAcl": "Specify the canned ACL to apply to each S3 request\\. Defaults to none\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel FrameCaptureSettings": { + "CaptureInterval": "The frequency, in seconds, for capturing frames for inclusion in the output\\. For example, \"10\" means capture a frame every 10 seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CaptureIntervalUnits": "Unit for the frame capture interval\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel GlobalConfiguration": { + "InitialAudioGain": "The value to set the initial audio gain for the channel\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputEndAction": "Indicates the action to take when the current input completes \\(for example, end\\-of\\-file\\)\\. When switchAndLoopInputs is configured, MediaLive restarts at the beginning of the first input\\. When \"none\" is configured, MediaLive transcodes either black, a solid color, or a user\\-specified slate images per the \"Input Loss Behavior\" configuration until the next input switch occurs \\(which is controlled through the Channel Schedule API\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputLossBehavior": "The settings for system actions when the input is lost\\. \n*Required*: No \n*Type*: [InputLossBehavior](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlossbehavior.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutputLockingMode": "Indicates how MediaLive pipelines are synchronized\\. PIPELINELOCKING \\- MediaLive attempts to synchronize the output of each pipeline to the other\\. EPOCHLOCKING \\- MediaLive attempts to synchronize the output of each pipeline to the Unix epoch\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutputTimingSource": "Indicates whether the rate of frames emitted by the Live encoder should be paced by its system clock \\(which optionally might be locked to another source through NTP\\) or should be locked to the clock of the source that is providing the input stream\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SupportLowFramerateInputs": "Adjusts the video input buffer for streams with very low video frame rates\\. This is commonly set to enabled for music channels with less than one video frame per second\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel H264ColorSpaceSettings": { + "ColorSpacePassthroughSettings": "Passthrough applies no color space conversion to the output\\. \n*Required*: No \n*Type*: [ColorSpacePassthroughSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-colorspacepassthroughsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Rec601Settings": "Settings to configure the handling of Rec601 color space\\. \n*Required*: No \n*Type*: [Rec601Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rec601settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Rec709Settings": "Settings to configure the handling of Rec709 color space\\. \n*Required*: No \n*Type*: [Rec709Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rec709settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel H264FilterSettings": { + "TemporalFilterSettings": "Settings for applying the temporal filter to the video\\. \n*Required*: No \n*Type*: [TemporalFilterSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-temporalfiltersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel H264Settings": { + "AdaptiveQuantization": "The adaptive quantization\\. This allows intra\\-frame quantizers to vary to improve visual quality\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AfdSignaling": "Indicates that AFD values will be written into the output stream\\. If afdSignaling is auto, the system tries to preserve the input AFD value \\(in cases where multiple AFD values are valid\\)\\. If set to fixed, the AFD value is the value configured in the fixedAfd parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Bitrate": "The average bitrate in bits/second\\. This is required when the rate control mode is VBR or CBR\\. It isn't used for QVBR\\. In a Microsoft Smooth output group, each output must have a unique value when its bitrate is rounded down to the nearest multiple of 1000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BufFillPct": "The percentage of the buffer that should initially be filled \\(HRD buffer model\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BufSize": "The size of the buffer \\(HRD buffer model\\) in bits/second\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ColorMetadata": "Includes color space metadata in the output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ColorSpaceSettings": "Settings to configure the color space handling for the video\\. \n*Required*: No \n*Type*: [H264ColorSpaceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264colorspacesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EntropyEncoding": "The entropy encoding mode\\. Use cabac \\(must be in Main or High profile\\) or cavlc\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FilterSettings": "Optional filters that you can apply to an encode\\. \n*Required*: No \n*Type*: [H264FilterSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264filtersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FixedAfd": "A four\\-bit AFD value to write on all frames of video in the output stream\\. Valid only when afdSignaling is set to Fixed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FlickerAq": "If set to enabled, adjusts the quantization within each frame to reduce flicker or pop on I\\-frames\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ForceFieldPictures": "This setting applies only when scan type is \"interlaced\\.\" It controls whether coding is performed on a field basis or on a frame basis\\. \\(When the video is progressive, the coding is always performed on a frame basis\\.\\) enabled: Force MediaLive to code on a field basis, so that odd and even sets of fields are coded separately\\. disabled: Code the two sets of fields separately \\(on a field basis\\) or together \\(on a frame basis using PAFF\\), depending on what is most appropriate for the content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FramerateControl": "Indicates how the output video frame rate is specified\\. If you select \"specified,\" the output video frame rate is determined by framerateNumerator and framerateDenominator\\. If you select \"initializeFromSource,\" the output video frame rate is set equal to the input video frame rate of the first input\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FramerateDenominator": "The frame rate denominator\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FramerateNumerator": "The frame rate numerator\\. The frame rate is a fraction, for example, 24000/1001 = 23\\.976 fps\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GopBReference": "If enabled, uses reference B frames for GOP structures that have B frames > 1\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GopClosedCadence": "The frequency of closed GOPs\\. In streaming applications, we recommend that you set this to 1 so that a decoder joining mid\\-stream will receive an IDR frame as quickly as possible\\. Setting this value to 0 will break output segmenting\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GopNumBFrames": "The number of B\\-frames between reference frames\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GopSize": "The GOP size \\(keyframe interval\\) in units of either frames or seconds per gopSizeUnits\\. The value must be greater than zero\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GopSizeUnits": "Indicates if the gopSize is specified in frames or seconds\\. If seconds, the system converts the gopSize into a frame count at runtime\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Level": "The H\\.264 level\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LookAheadRateControl": "The amount of lookahead\\. A value of low can decrease latency and memory usage, while high can produce better quality for certain content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxBitrate": "For QVBR: See the tooltip for Quality level\\. For VBR: Set the maximum bitrate in order to accommodate expected spikes in the complexity of the video\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinIInterval": "Meaningful only if sceneChangeDetect is set to enabled\\. This setting enforces separation between repeated \\(cadence\\) I\\-frames and I\\-frames inserted by Scene Change Detection\\. If a scene change I\\-frame is within I\\-interval frames of a cadence I\\-frame, the GOP is shrunk or stretched to the scene change I\\-frame\\. GOP stretch requires enabling lookahead as well as setting the I\\-interval\\. The normal cadence resumes for the next GOP\\. Note that the maximum GOP stretch = GOP size \\+ Min\\-I\\-interval \\- 1\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumRefFrames": "The number of reference frames to use\\. The encoder might use more than requested if you use B\\-frames or interlaced encoding\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParControl": "Indicates how the output pixel aspect ratio is specified\\. If \"specified\" is selected, the output video pixel aspect ratio is determined by parNumerator and parDenominator\\. If \"initializeFromSource\" is selected, the output pixels aspect ratio will be set equal to the input video pixel aspect ratio of the first input\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParDenominator": "The Pixel Aspect Ratio denominator\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParNumerator": "The Pixel Aspect Ratio numerator\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Profile": "An H\\.264 profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QualityLevel": "Leave as STANDARD\\_QUALITY or choose a different value \\(which might result in additional costs to run the channel\\)\\. \\- ENHANCED\\_QUALITY: Produces a slightly better video quality without an increase in the bitrate\\. Has an effect only when the Rate control mode is QVBR or CBR\\. If this channel is in a MediaLive multiplex, the value must be ENHANCED\\_QUALITY\\. \\- STANDARD\\_QUALITY: Valid for any Rate control mode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QvbrQualityLevel": "Controls the target quality for the video encode\\. This applies only when the rate control mode is QVBR\\. Set values for the QVBR quality level field and Max bitrate field that suit your most important viewing devices\\. Recommended values are: \\- Primary screen: Quality level: 8 to 10\\. Max bitrate: 4M \\- PC or tablet: Quality level: 7\\. Max bitrate: 1\\.5M to 3M \\- Smartphone: Quality level: 6\\. Max bitrate: 1M to 1\\.5M\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RateControlMode": "The rate control mode\\. QVBR: The quality will match the specified quality level except when it is constrained by the maximum bitrate\\. We recommend this if you or your viewers pay for bandwidth\\. VBR: The quality and bitrate vary, depending on the video complexity\\. We recommend this instead of QVBR if you want to maintain a specific average bitrate over the duration of the channel\\. CBR: The quality varies, depending on the video complexity\\. We recommend this only if you distribute your assets to devices that can't handle variable bitrates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScanType": "Sets the scan type of the output to progressive or top\\-field\\-first interlaced\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SceneChangeDetect": "The scene change detection\\. On: inserts I\\-frames when the scene change is detected\\. Off: does not force an I\\-frame when the scene change is detected\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Slices": "The number of slices per picture\\. The number must be less than or equal to the number of macroblock rows for progressive pictures, and less than or equal to half the number of macroblock rows for interlaced pictures\\. This field is optional\\. If you don't specify a value, MediaLive chooses the number of slices based on the encode resolution\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Softness": "Softness\\. Selects a quantizer matrix\\. Larger values reduce high\\-frequency content in the encoded image\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SpatialAq": "If set to enabled, adjusts quantization within each frame based on the spatial variation of content complexity\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubgopLength": "If set to fixed, uses gopNumBFrames B\\-frames per sub\\-GOP\\. If set to dynamic, optimizes the number of B\\-frames used for each sub\\-GOP to improve visual quality\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Syntax": "Produces a bitstream that is compliant with SMPTE RP\\-2027\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemporalAq": "If set to enabled, adjusts quantization within each frame based on the temporal variation of content complexity\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimecodeInsertion": "Determines how timecodes should be inserted into the video elementary stream\\. disabled: don't include timecodes\\. picTimingSei: pass through picture timing SEI messages from the source specified in Timecode Config\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel H265ColorSpaceSettings": { + "ColorSpacePassthroughSettings": "Passthrough applies no color space conversion to the output\\. \n*Required*: No \n*Type*: [ColorSpacePassthroughSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-colorspacepassthroughsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Hdr10Settings": "Settings to configure the handling of HDR10 color space\\. \n*Required*: No \n*Type*: [Hdr10Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hdr10settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Rec601Settings": "Settings to configure the handling of Rec601 color space\\. \n*Required*: No \n*Type*: [Rec601Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rec601settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Rec709Settings": "Settings to configure the handling of Rec709 color space\\. \n*Required*: No \n*Type*: [Rec709Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rec709settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel H265FilterSettings": { + "TemporalFilterSettings": "Settings for applying the temporal filter to the video\\. \n*Required*: No \n*Type*: [TemporalFilterSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-temporalfiltersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel H265Settings": { + "AdaptiveQuantization": "Adaptive quantization\\. Allows intra\\-frame quantizers to vary to improve visual quality\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AfdSignaling": "Indicates that AFD values will be written into the output stream\\. If afdSignaling is \"auto\", the system will try to preserve the input AFD value \\(in cases where multiple AFD values are valid\\)\\. If set to \"fixed\", the AFD value will be the value configured in the fixedAfd parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AlternativeTransferFunction": "Whether or not EML should insert an Alternative Transfer Function SEI message to support backwards compatibility with non\\-HDR decoders and displays\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Bitrate": "Average bitrate in bits/second\\. Required when the rate control mode is VBR or CBR\\. Not used for QVBR\\. In an MS Smooth output group, each output must have a unique value when its bitrate is rounded down to the nearest multiple of 1000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BufSize": "Size of buffer \\(HRD buffer model\\) in bits\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ColorMetadata": "Includes colorspace metadata in the output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ColorSpaceSettings": "Color Space settings \n*Required*: No \n*Type*: [H265ColorSpaceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265colorspacesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FilterSettings": "Optional filters that you can apply to an encode\\. \n*Required*: No \n*Type*: [H265FilterSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265filtersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FixedAfd": "Four bit AFD value to write on all frames of video in the output stream\\. Only valid when afdSignaling is set to 'Fixed'\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FlickerAq": "If set to enabled, adjust quantization within each frame to reduce flicker or 'pop' on I\\-frames\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FramerateDenominator": "Framerate denominator\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FramerateNumerator": "Framerate numerator \\- framerate is a fraction, e\\.g\\. 24000 / 1001 = 23\\.976 fps\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GopClosedCadence": "Frequency of closed GOPs\\. In streaming applications, it is recommended that this be set to 1 so a decoder joining mid\\-stream will receive an IDR frame as quickly as possible\\. Setting this value to 0 will break output segmenting\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GopSize": "GOP size \\(keyframe interval\\) in units of either frames or seconds per gopSizeUnits\\. If gopSizeUnits is frames, gopSize must be an integer and must be greater than or equal to 1\\. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an integer\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GopSizeUnits": "Indicates if the gopSize is specified in frames or seconds\\. If seconds the system will convert the gopSize into a frame count at run time\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Level": "H\\.265 Level\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LookAheadRateControl": "Amount of lookahead\\. A value of low can decrease latency and memory usage, while high can produce better quality for certain content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxBitrate": "For QVBR: See the tooltip for Quality level \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinIInterval": "Only meaningful if sceneChangeDetect is set to enabled\\. Defaults to 5 if multiplex rate control is used\\. Enforces separation between repeated \\(cadence\\) I\\-frames and I\\-frames inserted by Scene Change Detection\\. If a scene change I\\-frame is within I\\-interval frames of a cadence I\\-frame, the GOP is shrunk and/or stretched to the scene change I\\-frame\\. GOP stretch requires enabling lookahead as well as setting I\\-interval\\. The normal cadence resumes for the next GOP\\. Note: Maximum GOP stretch = GOP size \\+ Min\\-I\\-interval \\- 1 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParDenominator": "Pixel Aspect Ratio denominator\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParNumerator": "Pixel Aspect Ratio numerator\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Profile": "H\\.265 Profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QvbrQualityLevel": "Controls the target quality for the video encode\\. Applies only when the rate control mode is QVBR\\. Set values for the QVBR quality level field and Max bitrate field that suit your most important viewing devices\\. Recommended values are: \\- Primary screen: Quality level: 8 to 10\\. Max bitrate: 4M \\- PC or tablet: Quality level: 7\\. Max bitrate: 1\\.5M to 3M \\- Smartphone: Quality level: 6\\. Max bitrate: 1M to 1\\.5M \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RateControlMode": "Rate control mode\\. QVBR: Quality will match the specified quality level except when it is constrained by the maximum bitrate\\. Recommended if you or your viewers pay for bandwidth\\. CBR: Quality varies, depending on the video complexity\\. Recommended only if you distribute your assets to devices that cannot handle variable bitrates\\. Multiplex: This rate control mode is only supported \\(and is required\\) when the video is being delivered to a MediaLive Multiplex in which case the rate control configuration is controlled by the properties within the Multiplex Program\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScanType": "Sets the scan type of the output to progressive or top\\-field\\-first interlaced\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SceneChangeDetect": "Scene change detection\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Slices": "Number of slices per picture\\. Must be less than or equal to the number of macroblock rows for progressive pictures, and less than or equal to half the number of macroblock rows for interlaced pictures\\. This field is optional; when no value is specified the encoder will choose the number of slices based on encode resolution\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tier": "H\\.265 Tier\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimecodeInsertion": "Determines how timecodes should be inserted into the video elementary stream\\. \\- 'disabled': Do not include timecodes \\- 'picTimingSei': Pass through picture timing SEI messages from the source specified in Timecode Config \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel Hdr10Settings": { + "MaxCll": "Maximum Content Light Level An integer metadata value defining the maximum light level, in nits, of any single pixel within an encoded HDR video stream or file\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxFall": "Maximum Frame Average Light Level An integer metadata value defining the maximum average light level, in nits, for any single frame within an encoded HDR video stream or file\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel HlsAkamaiSettings": { + "ConnectionRetryInterval": "The number of seconds to wait before retrying a connection to the CDN if the connection is lost\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FilecacheDuration": "The size, in seconds, of the file cache for streaming outputs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HttpTransferMode": "Specifies whether to use chunked transfer encoding to Akamai\\. To enable this feature, contact Akamai\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumRetries": "The number of retry attempts that will be made before the channel is put into an error state\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RestartDelay": "If a streaming output fails, the number of seconds to wait until a restart is initiated\\. A value of 0 means never restart\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Salt": "The salt for authenticated Akamai\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Token": "The token parameter for authenticated Akamai\\. If this is not specified, \\_gda\\_ is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel HlsBasicPutSettings": { + "ConnectionRetryInterval": "The number of seconds to wait before retrying a connection to the CDN if the connection is lost\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FilecacheDuration": "The size, in seconds, of the file cache for streaming outputs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumRetries": "The number of retry attempts that MediaLive makes before the channel is put into an error state\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RestartDelay": "If a streaming output fails, the number of seconds to wait until a restart is initiated\\. A value of 0 means never restart\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel HlsCdnSettings": { + "HlsAkamaiSettings": "Sets up Akamai as the downstream system for the HLS output group\\. \n*Required*: No \n*Type*: [HlsAkamaiSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsakamaisettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HlsBasicPutSettings": "The settings for Basic Put for the HLS output\\. \n*Required*: No \n*Type*: [HlsBasicPutSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsbasicputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HlsMediaStoreSettings": "Sets up MediaStore as the destination for the HLS output\\. \n*Required*: No \n*Type*: [HlsMediaStoreSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsmediastoresettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HlsS3Settings": "Sets up Amazon S3 as the destination for this HLS output\\. \n*Required*: No \n*Type*: [HlsS3Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlss3settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HlsWebdavSettings": "The settings for Web VTT captions in the HLS output group\\. \nThe parent of this entity is HlsGroupSettings\\. \n*Required*: No \n*Type*: [HlsWebdavSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlswebdavsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel HlsGroupSettings": { + "AdMarkers": "Chooses one or more ad marker types to pass SCTE35 signals through to this group of Apple HLS outputs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BaseUrlContent": "A partial URI prefix that will be prepended to each output in the media \\.m3u8 file\\. The partial URI prefix can be used if the base manifest is delivered from a different URL than the main \\.m3u8 file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BaseUrlContent1": "Optional\\. One value per output group\\. This field is required only if you are completing Base URL content A, and the downstream system has notified you that the media files for pipeline 1 of all outputs are in a location different from the media files for pipeline 0\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BaseUrlManifest": "A partial URI prefix that will be prepended to each output in the media \\.m3u8 file\\. The partial URI prefix can be used if the base manifest is delivered from a different URL than the main \\.m3u8 file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BaseUrlManifest1": "Optional\\. One value per output group\\. Complete this field only if you are completing Base URL manifest A, and the downstream system has notified you that the child manifest files for pipeline 1 of all outputs are in a location different from the child manifest files for pipeline 0\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CaptionLanguageMappings": "A mapping of up to 4 captions channels to captions languages\\. This is meaningful only if captionLanguageSetting is set to \"insert\\.\" \n*Required*: No \n*Type*: List of [CaptionLanguageMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionlanguagemapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CaptionLanguageSetting": "Applies only to 608 embedded output captions\\. Insert: Include CLOSED\\-CAPTIONS lines in the manifest\\. Specify at least one language in the CC1 Language Code field\\. One CLOSED\\-CAPTION line is added for each Language Code that you specify\\. Make sure to specify the languages in the order in which they appear in the original source \\(if the source is embedded format\\) or the order of the captions selectors \\(if the source is other than embedded\\)\\. Otherwise, languages in the manifest will not match properly with the output captions\\. None: Include the CLOSED\\-CAPTIONS=NONE line in the manifest\\. Omit: Omit any CLOSED\\-CAPTIONS line from the manifest\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientCache": "When set to \"disabled,\" sets the \\#EXT\\-X\\-ALLOW\\-CACHE:no tag in the manifest, which prevents clients from saving media segments for later replay\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CodecSpecification": "The specification to use \\(RFC\\-6381 or the default RFC\\-4281\\) during m3u8 playlist generation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConstantIv": "Used with encryptionType\\. This is a 128\\-bit, 16\\-byte hex value that is represented by a 32\\-character text string\\. If ivSource is set to \"explicit,\" this parameter is required and is used as the IV for encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Destination": "A directory or HTTP destination for the HLS segments, manifest files, and encryption keys \\(if enabled\\)\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DirectoryStructure": "Places segments in subdirectories\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DiscontinuityTags": "Specifies whether to insert EXT\\-X\\-DISCONTINUITY tags in the HLS child manifests for this output group\\. Typically, choose Insert because these tags are required in the manifest \\(according to the HLS specification\\) and serve an important purpose\\. Choose Never Insert only if the downstream system is doing real\\-time failover \\(without using the MediaLive automatic failover feature\\) and only if that downstream system has advised you to exclude the tags\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EncryptionType": "Encrypts the segments with the specified encryption scheme\\. Exclude this parameter if you don't want encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HlsCdnSettings": "The parameters that control interactions with the CDN\\. \n*Required*: No \n*Type*: [HlsCdnSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlscdnsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HlsId3SegmentTagging": "State of HLS ID3 Segment Tagging \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IFrameOnlyPlaylists": "DISABLED: Don't create an I\\-frame\\-only manifest, but do create the master and media manifests \\(according to the Output Selection field\\)\\. STANDARD: Create an I\\-frame\\-only manifest for each output that contains video, as well as the other manifests \\(according to the Output Selection field\\)\\. The I\\-frame manifest contains a \\#EXT\\-X\\-I\\-FRAMES\\-ONLY tag to indicate it is I\\-frame only, and one or more \\#EXT\\-X\\-BYTERANGE entries identifying the I\\-frame position\\. For example, \\#EXT\\-X\\-BYTERANGE:160364@1461888\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncompleteSegmentBehavior": "Specifies whether to include the final \\(incomplete\\) segment in the media output when the pipeline stops producing output because of a channel stop, a channel pause or a loss of input to the pipeline\\. Auto means that MediaLive decides whether to include the final segment, depending on the channel class and the types of output groups\\. Suppress means to never include the incomplete segment\\. We recommend you choose Auto and let MediaLive control the behavior\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IndexNSegments": "Applies only if the Mode field is LIVE\\. Specifies the maximum number of segments in the media manifest file\\. After this maximum, older segments are removed from the media manifest\\. This number must be less than or equal to the Keep Segments field\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputLossAction": "A parameter that controls output group behavior on an input loss\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IvInManifest": "Used with encryptionType\\. The IV \\(initialization vector\\) is a 128\\-bit number used in conjunction with the key for encrypting blocks\\. If set to \"include,\" the IV is listed in the manifest\\. Otherwise, the IV is not in the manifest\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IvSource": "Used with encryptionType\\. The IV \\(initialization vector\\) is a 128\\-bit number used in conjunction with the key for encrypting blocks\\. If this setting is \"followsSegmentNumber,\" it causes the IV to change every segment \\(to match the segment number\\)\\. If this is set to \"explicit,\" you must enter a constantIv value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeepSegments": "Applies only if the Mode field is LIVE\\. Specifies the number of media segments \\(\\.ts files\\) to retain in the destination directory\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeyFormat": "Specifies how the key is represented in the resource identified by the URI\\. If the parameter is absent, an implicit value of \"identity\" is used\\. A reverse DNS string can also be specified\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeyFormatVersions": "Either a single positive integer version value or a slash\\-delimited list of version values \\(1/2/3\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeyProviderSettings": "The key provider settings\\. \n*Required*: No \n*Type*: [KeyProviderSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-keyprovidersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ManifestCompression": "When set to gzip, compresses HLS playlist\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ManifestDurationFormat": "Indicates whether the output manifest should use a floating point or integer values for segment duration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinSegmentLength": "When set, minimumSegmentLength is enforced by looking ahead and back within the specified range for a nearby avail and extending the segment size if needed\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Mode": "If \"vod,\" all segments are indexed and kept permanently in the destination and manifest\\. If \"live,\" only the number segments specified in keepSegments and indexNSegments are kept\\. Newer segments replace older segments, which might prevent players from rewinding all the way to the beginning of the channel\\. VOD mode uses HLS EXT\\-X\\-PLAYLIST\\-TYPE of EVENT while the channel is running, converting it to a \"VOD\" type manifest on completion of the stream\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutputSelection": "MANIFESTSANDSEGMENTS: Generates manifests \\(the master manifest, if applicable, and media manifests\\) for this output group\\. SEGMENTSONLY: Doesn't generate any manifests for this output group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProgramDateTime": "Includes or excludes the EXT\\-X\\-PROGRAM\\-DATE\\-TIME tag in \\.m3u8 manifest files\\. The value is calculated as follows: Either the program date and time are initialized using the input timecode source, or the time is initialized using the input timecode source and the date is initialized using the timestampOffset\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProgramDateTimeClock": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProgramDateTimePeriod": "The period of insertion of the EXT\\-X\\-PROGRAM\\-DATE\\-TIME entry, in seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RedundantManifest": "ENABLED: The master manifest \\(\\.m3u8 file\\) for each pipeline includes information about both pipelines: first its own media files, then the media files of the other pipeline\\. This feature allows a playout device that supports stale manifest detection to switch from one manifest to the other, when the current manifest seems to be stale\\. There are still two destinations and two master manifests, but both master manifests reference the media files from both pipelines\\. DISABLED: The master manifest \\(\\.m3u8 file\\) for each pipeline includes information about its own pipeline only\\. For an HLS output group with MediaPackage as the destination, the DISABLED behavior is always followed\\. MediaPackage regenerates the manifests it serves to players, so a redundant manifest from MediaLive is irrelevant\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentLength": "The length of the MPEG\\-2 Transport Stream segments to create, in seconds\\. Note that segments will end on the next keyframe after this number of seconds, so the actual segment length might be longer\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentationMode": "useInputSegmentation has been deprecated\\. The configured segment size is always used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentsPerSubdirectory": "The number of segments to write to a subdirectory before starting a new one\\. For this setting to have an effect, directoryStructure must be subdirectoryPerStream\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamInfResolution": "The include or exclude RESOLUTION attribute for a video in the EXT\\-X\\-STREAM\\-INF tag of a variant manifest\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimedMetadataId3Frame": "Indicates the ID3 frame that has the timecode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimedMetadataId3Period": "The timed metadata interval, in seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimestampDeltaMilliseconds": "Provides an extra millisecond delta offset to fine tune the timestamps\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TsFileMode": "SEGMENTEDFILES: Emits the program as segments \\-multiple \\.ts media files\\. SINGLEFILE: Applies only if the Mode field is VOD\\. Emits the program as a single \\.ts media file\\. The media manifest includes \\#EXT\\-X\\-BYTERANGE tags to index segments for playback\\. A typical use for this value is when sending the output to AWS Elemental MediaConvert, which can accept only a single media file\\. Playback while the channel is running is not guaranteed due to HTTP server caching\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel HlsInputSettings": { + "Bandwidth": "When specified, the HLS stream with the m3u8 bandwidth that most closely matches this value is chosen\\. Otherwise, the highest bandwidth stream in the m3u8 is chosen\\. The bitrate is specified in bits per second, as in an HLS manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BufferSegments": "When specified, reading of the HLS input begins this many buffer segments from the end \\(most recently written segment\\)\\. When not specified, the HLS input begins with the first segment specified in the m3u8\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Retries": "The number of consecutive times that attempts to read a manifest or segment must fail before the input is considered unavailable\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetryInterval": "The number of seconds between retries when an attempt to read a manifest or segment fails\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scte35Source": "Identifies the source for the SCTE\\-35 messages that MediaLive will ingest\\. Messages can be ingested from the content segments \\(in the stream\\) or from tags in the playlist \\(the HLS manifest\\)\\. MediaLive ignores SCTE\\-35 information in the source that is not selected\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel HlsMediaStoreSettings": { + "ConnectionRetryInterval": "The number of seconds to wait before retrying a connection to the CDN if the connection is lost\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FilecacheDuration": "The size, in seconds, of the file cache for streaming outputs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MediaStoreStorageClass": "When set to temporal, output files are stored in non\\-persistent memory for faster reading and writing\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumRetries": "The number of retry attempts that are made before the channel is put into an error state\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RestartDelay": "If a streaming output fails, the number of seconds to wait until a restart is initiated\\. A value of 0 means never restart\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel HlsOutputSettings": { + "H265PackagingType": "Only applicable when this output is referencing an H\\.265 video description\\. Specifies whether MP4 segments should be packaged as HEV1 or HVC1\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HlsSettings": "The settings regarding the underlying stream\\. These settings are different for audio\\-only outputs\\. \n*Required*: No \n*Type*: [HlsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NameModifier": "A string that is concatenated to the end of the destination file name\\. Accepts \\\\\"Format Identifiers\\\\\":\\#formatIdentifierParameters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentModifier": "A string that is concatenated to the end of segment file names\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel HlsS3Settings": { + "CannedAcl": "Specify the canned ACL to apply to each S3 request\\. Defaults to none\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel HlsSettings": { + "AudioOnlyHlsSettings": "The settings for an audio\\-only output\\. \n*Required*: No \n*Type*: [AudioOnlyHlsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioonlyhlssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Fmp4HlsSettings": "The settings for an fMP4 container\\. \n*Required*: No \n*Type*: [Fmp4HlsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-fmp4hlssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FrameCaptureHlsSettings": "Settings for a frame capture output in an HLS output group\\. \n*Required*: No \n*Type*: [FrameCaptureHlsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecapturehlssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StandardHlsSettings": "The settings for a standard output \\(an output that is not audio\\-only\\)\\. \n*Required*: No \n*Type*: [StandardHlsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-standardhlssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel HlsWebdavSettings": { + "ConnectionRetryInterval": "The number of seconds to wait before retrying a connection to the CDN if the connection is lost\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FilecacheDuration": "The size, in seconds, of the file cache for streaming outputs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HttpTransferMode": "Specifies whether to use chunked transfer encoding to WebDAV\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumRetries": "The number of retry attempts that are made before the channel is put into an error state\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RestartDelay": "If a streaming output fails, the number of seconds to wait until a restart is initiated\\. A value of 0 means never restart\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel InputAttachment": { + "AutomaticInputFailoverSettings": "Settings to implement automatic input failover in this input\\. \n*Required*: No \n*Type*: [AutomaticInputFailoverSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-automaticinputfailoversettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputAttachmentName": "A name for the attachment\\. This is required if you want to use this input in an input switch action\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputId": "The ID of the input to attach\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InputSettings": "Information about the content to extract from the input and about the general handling of the content\\. \n*Required*: No \n*Type*: [InputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel InputChannelLevel": { + "Gain": "The remixing value\\. Units are in dB, and acceptable values are within the range from \\-60 \\(mute\\) to 6 dB\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputChannel": "The index of the input channel that is used as a source\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel InputLocation": { + "PasswordParam": "The password parameter that holds the password for accessing the downstream system\\. This applies only if the downstream system requires credentials\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Uri": "The URI should be a path to a file that is accessible to the Live system \\(for example, an http:// URI\\) depending on the output type\\. For example, an RTMP destination should have a URI similar to rtmp://fmsserver/live\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Username": "The user name to connect to the downstream system\\. This applies only if the downstream system requires credentials\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel InputLossBehavior": { + "BlackFrameMsec": "On input loss, the number of milliseconds to substitute black into the output before switching to the frame specified by inputLossImageType\\. A value x, where 0 <= x <= 1,000,000 and a value of 1,000,000, is interpreted as infinite\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputLossImageColor": "When the input loss image type is \"color,\" this field specifies the color to use\\. Value: 6 hex characters that represent the values of RGB\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputLossImageSlate": "When the input loss image type is \"slate,\" these fields specify the parameters for accessing the slate\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputLossImageType": "Indicates whether to substitute a solid color or a slate into the output after the input loss exceeds blackFrameMsec\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RepeatFrameMsec": "On input loss, the number of milliseconds to repeat the previous picture before substituting black into the output\\. A value x, where 0 <= x <= 1,000,000 and a value of 1,000,000, is interpreted as infinite\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel InputLossFailoverSettings": { + "InputLossThresholdMsec": "The amount of time \\(in milliseconds\\) that no input is detected\\. After that time, an input failover will occur\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel InputSettings": { + "AudioSelectors": "Information about the specific audio to extract from the input\\. \nThe parent of this entity is InputSettings\\. \n*Required*: No \n*Type*: List of [AudioSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CaptionSelectors": "Information about the specific captions to extract from the input\\. \n*Required*: No \n*Type*: List of [CaptionSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeblockFilter": "Enables or disables the deblock filter when filtering\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DenoiseFilter": "Enables or disables the denoise filter when filtering\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FilterStrength": "Adjusts the magnitude of filtering from 1 \\(minimal\\) to 5 \\(strongest\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputFilter": "Turns on the filter for this input\\. MPEG\\-2 inputs have the deblocking filter enabled by default\\. 1\\) auto \\- filtering is applied depending on input type/quality 2\\) disabled \\- no filtering is applied to the input 3\\) forced \\- filtering is applied regardless of the input type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NetworkInputSettings": "Information about how to connect to the upstream system\\. \n*Required*: No \n*Type*: [NetworkInputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-networkinputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scte35Pid": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Smpte2038DataPreference": "Specifies whether to extract applicable ancillary data from a SMPTE\\-2038 source in this input\\. Applicable data types are captions, timecode, AFD, and SCTE\\-104 messages\\. \\- PREFER: Extract from SMPTE\\-2038 if present in this input, otherwise extract from another source \\(if any\\)\\. \\- IGNORE: Never extract any ancillary data from SMPTE\\-2038\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceEndBehavior": "The loop input if it is a file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VideoSelector": "Information about one video to extract from the input\\. \n*Required*: No \n*Type*: [VideoSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel InputSpecification": { + "Codec": "The codec to include in the input specification for this channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaximumBitrate": "The maximum input bitrate for any input attached to this channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Resolution": "The resolution for any input attached to this channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel KeyProviderSettings": { + "StaticKeySettings": "The configuration of static key settings\\. \n*Required*: No \n*Type*: [StaticKeySettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-statickeysettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel M2tsSettings": { + "AbsentInputAudioBehavior": "When set to drop, the output audio streams are removed from the program if the selected input audio stream is removed from the input\\. This allows the output audio configuration to dynamically change based on the input configuration\\. If this is set to encodeSilence, all output audio streams will output encoded silence when not connected to an active input stream\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Arib": "When set to enabled, uses ARIB\\-compliant field muxing and removes video descriptor\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AribCaptionsPid": "The PID for ARIB Captions in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AribCaptionsPidControl": "If set to auto, The PID number used for ARIB Captions will be auto\\-selected from unused PIDs\\. If set to useConfigured, ARIB captions will be on the configured PID number\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AudioBufferModel": "When set to dvb, uses the DVB buffer model for Dolby Digital audio\\. When set to atsc, the ATSC model is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AudioFramesPerPes": "The number of audio frames to insert for each PES packet\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AudioPids": "The PID of the elementary audio streams in the transport stream\\. Multiple values are accepted, and can be entered in ranges or by comma separation\\. You can enter the value as a decimal or hexadecimal value\\. Each PID specified must be in the range of 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AudioStreamType": "When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87 for EAC3\\. When set to dvb, uses stream type = 0x06\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Bitrate": "The output bitrate of the transport stream in bits per second\\. Setting to 0 lets the muxer automatically determine the appropriate bitrate\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BufferModel": "If set to multiplex, uses the multiplex buffer model for accurate interleaving\\. Setting to bufferModel to none can lead to lower latency, but low\\-memory devices might not be able to play back the stream without interruptions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CcDescriptor": "When set to enabled, generates captionServiceDescriptor in PMT\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DvbNitSettings": "Inserts a DVB Network Information Table \\(NIT\\) at the specified table repetition interval\\. \n*Required*: No \n*Type*: [DvbNitSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbnitsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DvbSdtSettings": "Inserts a DVB Service Description Table \\(SDT\\) at the specified table repetition interval\\. \n*Required*: No \n*Type*: [DvbSdtSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsdtsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DvbSubPids": "The PID for the input source DVB Subtitle data to this output\\. Multiple values are accepted, and can be entered in ranges and/or by comma separation\\. You can enter the value as a decimal or hexadecimal value\\. Each PID specified must be in the range of 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DvbTdtSettings": "Inserts DVB Time and Date Table \\(TDT\\) at the specified table repetition interval\\. \n*Required*: No \n*Type*: [DvbTdtSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbtdtsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DvbTeletextPid": "The PID for the input source DVB Teletext data to this output\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ebif": "If set to passthrough, passes any EBIF data from the input source to this output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EbpAudioInterval": "When videoAndFixedIntervals is selected, audio EBP markers are added to partitions 3 and 4\\. The interval between these additional markers is fixed, and is slightly shorter than the video EBP marker interval\\. This is only available when EBP Cablelabs segmentation markers are selected\\. Partitions 1 and 2 always follow the video interval\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EbpLookaheadMs": "When set, enforces that Encoder Boundary Points do not come within the specified time interval of each other by looking ahead at input video\\. If another EBP is going to come in within the specified time interval, the current EBP is not emitted, and the segment is \"stretched\" to the next marker\\. The lookahead value does not add latency to the system\\. The channel must be configured elsewhere to create sufficient latency to make the lookahead accurate\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EbpPlacement": "Controls placement of EBP on audio PIDs\\. If set to videoAndAudioPids, EBP markers are placed on the video PID and all audio PIDs\\. If set to videoPid, EBP markers are placed on only the video PID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EcmPid": "This field is unused and deprecated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EsRateInPes": "Includes or excludes the ES Rate field in the PES header\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EtvPlatformPid": "The PID for the input source ETV Platform data to this output\\. You can enter it as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\) to 8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EtvSignalPid": "The PID for input source ETV Signal data to this output\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FragmentTime": "The length in seconds of each fragment\\. This is used only with EBP markers\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Klv": "If set to passthrough, passes any KLV data from the input source to this output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KlvDataPids": "The PID for the input source KLV data to this output\\. Multiple values are accepted, and can be entered in ranges or by comma separation\\. You can enter the value as a decimal or hexadecimal value\\. Each PID specified must be in the range of 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NielsenId3Behavior": "If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NullPacketBitrate": "The value, in bits per second, of extra null packets to insert into the transport stream\\. This can be used if a downstream encryption system requires periodic null packets\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PatInterval": "The number of milliseconds between instances of this table in the output transport stream\\. Valid values are 0, 10\\.\\.1000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PcrControl": "When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for every Packetized Elementary Stream \\(PES\\) header\\. This parameter is effective only when the PCR PID is the same as the video or audio elementary stream\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PcrPeriod": "The maximum time, in milliseconds, between Program Clock References \\(PCRs\\) inserted into the transport stream\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PcrPid": "The PID of the Program Clock Reference \\(PCR\\) in the transport stream\\. When no value is given, MediaLive assigns the same value as the video PID\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PmtInterval": "The number of milliseconds between instances of this table in the output transport stream\\. Valid values are 0, 10\\.\\.1000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PmtPid": "The PID for the Program Map Table \\(PMT\\) in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProgramNum": "The value of the program number field in the Program Map Table \\(PMT\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RateMode": "When VBR, does not insert null packets into the transport stream to fill the specified bitrate\\. The bitrate setting acts as the maximum bitrate when VBR is set\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scte27Pids": "The PID for the input source SCTE\\-27 data to this output\\. Multiple values are accepted, and can be entered in ranges or by comma separation\\. You can enter the value as a decimal or hexadecimal value\\. Each PID specified must be in the range of 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scte35Control": "Optionally passes SCTE\\-35 signals from the input source to this output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scte35Pid": "The PID of the SCTE\\-35 stream in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentationMarkers": "Inserts segmentation markers at each segmentationTime period\\. raiSegstart sets the Random Access Indicator bit in the adaptation field\\. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes\\. psiSegstart inserts PAT and PMT tables at the start of segments\\. ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable specification OC\\-SP\\-EBP\\-I01\\-130118\\. ebpLegacy adds Encoder Boundary Point information to the adaptation field using a legacy proprietary format\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentationStyle": "The segmentation style parameter controls how segmentation markers are inserted into the transport stream\\. With avails, it is possible that segments might be truncated, which can influence where future segmentation markers are inserted\\. When a segmentation style of resetCadence is selected and a segment is truncated due to an avail, we will reset the segmentation cadence\\. This means the subsequent segment will have a duration of $segmentationTime seconds\\. When a segmentation style of maintainCadence is selected and a segment is truncated due to an avail, we will not reset the segmentation cadence\\. This means the subsequent segment will likely be truncated as well\\. However, all segments after that will have a duration of $segmentationTime seconds\\. Note that EBP lookahead is a slight exception to this rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentationTime": "The length, in seconds, of each segment\\. This is required unless markers is set to None\\_\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimedMetadataBehavior": "When set to passthrough, timed metadata is passed through from input to output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimedMetadataPid": "The PID of the timed metadata stream in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransportStreamId": "The value of the transport stream ID field in the Program Map Table \\(PMT\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VideoPid": "The PID of the elementary video stream in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel M3u8Settings": { + "AudioFramesPerPes": "The number of audio frames to insert for each PES packet\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AudioPids": "The PID of the elementary audio streams in the transport stream\\. Multiple values are accepted, and can be entered in ranges or by comma separation\\. You can enter the value as a decimal or hexadecimal value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EcmPid": "This parameter is unused and deprecated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NielsenId3Behavior": "If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PatInterval": "The number of milliseconds between instances of this table in the output transport stream\\. A value of \\\\\"0\\\\\" writes out the PMT once per segment file\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PcrControl": "When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for every Packetized Elementary Stream \\(PES\\) header\\. This parameter is effective only when the PCR PID is the same as the video or audio elementary stream\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PcrPeriod": "The maximum time, in milliseconds, between Program Clock References \\(PCRs\\) inserted into the transport stream\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PcrPid": "The PID of the Program Clock Reference \\(PCR\\) in the transport stream\\. When no value is given, MediaLive assigns the same value as the video PID\\. You can enter the value as a decimal or hexadecimal value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PmtInterval": "The number of milliseconds between instances of this table in the output transport stream\\. A value of \\\\\"0\\\\\" writes out the PMT once per segment file\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PmtPid": "The PID for the Program Map Table \\(PMT\\) in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProgramNum": "The value of the program number field in the Program Map Table \\(PMT\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scte35Behavior": "If set to passthrough, passes any SCTE\\-35 signals from the input source to this output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scte35Pid": "The PID of the SCTE\\-35 stream in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimedMetadataBehavior": "When set to passthrough, timed metadata is passed through from input to output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimedMetadataPid": "The PID of the timed metadata stream in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransportStreamId": "The value of the transport stream ID field in the Program Map Table \\(PMT\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VideoPid": "The PID of the elementary video stream in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel MediaPackageGroupSettings": { + "Destination": "The MediaPackage channel destination\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel MediaPackageOutputDestinationSettings": { + "ChannelId": "The ID of the channel in MediaPackage that is the destination for this output group\\. You don't need to specify the individual inputs in MediaPackage; MediaLive handles the connection of the two MediaLive pipelines to the two MediaPackage inputs\\. The MediaPackage channel and MediaLive channel must be in the same Region\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel MotionGraphicsConfiguration": { + "MotionGraphicsInsertion": "Enables or disables the motion graphics overlay feature in the channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MotionGraphicsSettings": "Settings to enable and configure the motion graphics overlay feature in the channel\\. \n*Required*: No \n*Type*: [MotionGraphicsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-motiongraphicssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel MotionGraphicsSettings": { + "HtmlMotionGraphicsSettings": "Settings to configure the motion graphics overlay to use an HTML asset\\. \n*Required*: No \n*Type*: [HtmlMotionGraphicsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-htmlmotiongraphicssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel Mp2Settings": { + "Bitrate": "The average bitrate in bits/second\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CodingMode": "The MPEG2 Audio coding mode\\. Valid values are codingMode10 \\(for mono\\) or codingMode20 \\(for stereo\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SampleRate": "The sample rate in Hz\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel Mpeg2FilterSettings": { + "TemporalFilterSettings": "Settings for applying the temporal filter to the video\\. \n*Required*: No \n*Type*: [TemporalFilterSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-temporalfiltersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel Mpeg2Settings": { + "AdaptiveQuantization": "Choose Off to disable adaptive quantization\\. Or choose another value to enable the quantizer and set its strength\\. The strengths are: Auto, Off, Low, Medium, High\\. When you enable this field, MediaLive allows intra\\-frame quantizers to vary, which might improve visual quality\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AfdSignaling": "Indicates the AFD values that MediaLive will write into the video encode\\. If you do not know what AFD signaling is, or if your downstream system has not given you guidance, choose AUTO\\. AUTO: MediaLive will try to preserve the input AFD value \\(in cases where multiple AFD values are valid\\)\\. FIXED: MediaLive will use the value you specify in fixedAFD\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ColorMetadata": "Specifies whether to include the color space metadata\\. The metadata describes the color space that applies to the video \\(the colorSpace field\\)\\. We recommend that you insert the metadata\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ColorSpace": "Choose the type of color space conversion to apply to the output\\. For detailed information on setting up both the input and the output to obtain the desired color space in the output, see the section on \\\\\"MediaLive Features \\- Video \\- color space\\\\\" in the MediaLive User Guide\\. PASSTHROUGH: Keep the color space of the input content \\- do not convert it\\. AUTO:Convert all content that is SD to rec 601, and convert all content that is HD to rec 709\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisplayAspectRatio": "Sets the pixel aspect ratio for the encode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FilterSettings": "Optionally specify a noise reduction filter, which can improve quality of compressed content\\. If you do not choose a filter, no filter will be applied\\. TEMPORAL: This filter is useful for both source content that is noisy \\(when it has excessive digital artifacts\\) and source content that is clean\\. When the content is noisy, the filter cleans up the source content before the encoding phase, with these two effects: First, it improves the output video quality because the content has been cleaned up\\. Secondly, it decreases the bandwidth because MediaLive does not waste bits on encoding noise\\. When the content is reasonably clean, the filter tends to decrease the bitrate\\. \n*Required*: No \n*Type*: [Mpeg2FilterSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2filtersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FixedAfd": "Complete this field only when afdSignaling is set to FIXED\\. Enter the AFD value \\(4 bits\\) to write on all frames of the video encode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FramerateDenominator": "description\": \"The framerate denominator\\. For example, 1001\\. The framerate is the numerator divided by the denominator\\. For example, 24000 / 1001 = 23\\.976 FPS\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FramerateNumerator": "The framerate numerator\\. For example, 24000\\. The framerate is the numerator divided by the denominator\\. For example, 24000 / 1001 = 23\\.976 FPS\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GopClosedCadence": "MPEG2: default is open GOP\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GopNumBFrames": "Relates to the GOP structure\\. The number of B\\-frames between reference frames\\. If you do not know what a B\\-frame is, use the default\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GopSize": "Relates to the GOP structure\\. The GOP size \\(keyframe interval\\) in the units specified in gopSizeUnits\\. If you do not know what GOP is, use the default\\. If gopSizeUnits is frames, then the gopSize must be an integer and must be greater than or equal to 1\\. If gopSizeUnits is seconds, the gopSize must be greater than 0, but does not need to be an integer\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GopSizeUnits": "Relates to the GOP structure\\. Specifies whether the gopSize is specified in frames or seconds\\. If you do not plan to change the default gopSize, leave the default\\. If you specify SECONDS, MediaLive will internally convert the gop size to a frame count\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScanType": "Set the scan type of the output to PROGRESSIVE or INTERLACED \\(top field first\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubgopLength": "Relates to the GOP structure\\. If you do not know what GOP is, use the default\\. FIXED: Set the number of B\\-frames in each sub\\-GOP to the value in gopNumBFrames\\. DYNAMIC: Let MediaLive optimize the number of B\\-frames in each sub\\-GOP, to improve visual quality\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimecodeInsertion": "Determines how MediaLive inserts timecodes in the output video\\. For detailed information about setting up the input and the output for a timecode, see the section on \\\\\"MediaLive Features \\- Timecode configuration\\\\\" in the MediaLive User Guide\\. DISABLED: do not include timecodes\\. GOP\\_TIMECODE: Include timecode metadata in the GOP header\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel MsSmoothGroupSettings": { + "AcquisitionPointId": "The value of the Acquisition Point Identity element that is used in each message placed in the sparse track\\. Enabled only if sparseTrackType is not \"none\\.\" \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AudioOnlyTimecodeControl": "If set to passthrough for an audio\\-only Microsoft Smooth output, the fragment absolute time is set to the current timecode\\. This option does not write timecodes to the audio elementary stream\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CertificateMode": "If set to verifyAuthenticity, verifies the HTTPS certificate chain to a trusted certificate authority \\(CA\\)\\. This causes HTTPS outputs to self\\-signed certificates to fail\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectionRetryInterval": "The number of seconds to wait before retrying the connection to the IIS server if the connection is lost\\. Content is cached during this time, and the cache is delivered to the IIS server after the connection is re\\-established\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Destination": "The Smooth Streaming publish point on an IIS server\\. MediaLive acts as a \"Push\" encoder to IIS\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventId": "The Microsoft Smooth channel ID that is sent to the IIS server\\. Specify the ID only if eventIdMode is set to useConfigured\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventIdMode": "Specifies whether to send a channel ID to the IIS server\\. If no channel ID is sent and the same channel is used without changing the publishing point, clients might see cached video from the previous run\\. Options: \\- \"useConfigured\" \\- use the value provided in eventId \\- \"useTimestamp\" \\- generate and send a channel ID based on the current timestamp \\- \"noEventId\" \\- do not send a channel ID to the IIS server\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventStopBehavior": "When set to sendEos, sends an EOS signal to an IIS server when stopping the channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FilecacheDuration": "The size, in seconds, of the file cache for streaming outputs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FragmentLength": "The length, in seconds, of mp4 fragments to generate\\. The fragment length must be compatible with GOP size and frame rate\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputLossAction": "A parameter that controls output group behavior on an input loss\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumRetries": "The number of retry attempts\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RestartDelay": "The number of seconds before initiating a restart due to output failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentationMode": "useInputSegmentation has been deprecated\\. The configured segment size is always used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SendDelayMs": "The number of milliseconds to delay the output from the second pipeline\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SparseTrackType": "If set to scte35, uses incoming SCTE\\-35 messages to generate a sparse track in this group of Microsoft Smooth outputs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamManifestBehavior": "When set to send, sends a stream manifest so that the publishing point doesn't start until all streams start\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimestampOffset": "The timestamp offset for the channel\\. Used only if timestampOffsetMode is set to useConfiguredOffset\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimestampOffsetMode": "The type of timestamp date offset to use\\. \\- useEventStartDate: Use the date the channel was started as the offset \\- useConfiguredOffset: Use an explicitly configured date as the offset\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel MsSmoothOutputSettings": { + "H265PackagingType": "Only applicable when this output is referencing an H\\.265 video description\\. Specifies whether MP4 segments should be packaged as HEV1 or HVC1\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NameModifier": "A string that is concatenated to the end of the destination file name\\. This is required for multiple outputs of the same type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel MultiplexOutputSettings": { + "Destination": "Destination is a Multiplex\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel MultiplexProgramChannelDestinationSettings": { + "MultiplexId": "The ID of the Multiplex that the encoder is providing output to\\. You do not need to specify the individual inputs to the Multiplex; MediaLive will handle the connection of the two MediaLive pipelines to the two Multiplex instances\\. The Multiplex must be in the same region as the Channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProgramName": "The program name of the Multiplex program that the encoder is providing output to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel NetworkInputSettings": { + "HlsInputSettings": "Information about how to connect to the upstream system\\. \n*Required*: No \n*Type*: [HlsInputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsinputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServerValidation": "Checks HTTPS server certificates\\. When set to checkCryptographyOnly, cryptography in the certificate is checked, but not the server's name\\. Certain subdomains \\(notably S3 buckets that use dots in the bucket name\\) don't strictly match the corresponding certificate's wildcard pattern and would otherwise cause the channel to error\\. This setting is ignored for protocols that do not use HTTPS\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel NielsenCBET": { + "CbetCheckDigitString": "Enter the CBET check digits to use in the watermark\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CbetStepaside": "Determines the method of CBET insertion mode when prior encoding is detected on the same layer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Csid": "Enter the CBET Source ID \\(CSID\\) to use in the watermark \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel NielsenConfiguration": { + "DistributorId": "Enter the Distributor ID assigned to your organization by Nielsen\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NielsenPcmToId3Tagging": "Enables Nielsen PCM to ID3 tagging \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel NielsenNaesIiNw": { + "CheckDigitString": "Enter the check digit string for the watermark \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Sid": "Enter the Nielsen Source ID \\(SID\\) to include in the watermark \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel NielsenWatermarksSettings": { + "NielsenCbetSettings": "Complete these fields only if you want to insert watermarks of type Nielsen CBET \n*Required*: No \n*Type*: [NielsenCBET](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-nielsencbet.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NielsenDistributionType": "Choose the distribution types that you want to assign to the watermarks: \\- PROGRAM\\_CONTENT \\- FINAL\\_DISTRIBUTOR \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NielsenNaesIiNwSettings": "Complete these fields only if you want to insert watermarks of type Nielsen NAES II \\(N2\\) and Nielsen NAES VI \\(NW\\)\\. \n*Required*: No \n*Type*: [NielsenNaesIiNw](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-nielsennaesiinw.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel Output": { + "AudioDescriptionNames": "The names of the audio descriptions that are used as audio sources for this output\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CaptionDescriptionNames": "The names of the caption descriptions that are used as captions sources for this output\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutputName": "The name that is used to identify an output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutputSettings": "The output type\\-specific settings\\. \n*Required*: No \n*Type*: [OutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VideoDescriptionName": "The name of the VideoDescription that is used as the source for this output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel OutputDestination": { + "Id": "The ID for this destination\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MediaPackageSettings": "The destination settings for a MediaPackage output\\. \n*Required*: No \n*Type*: List of [MediaPackageOutputDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mediapackageoutputdestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MultiplexSettings": "Destination settings for a Multiplex output; one destination for both encoders\\. \n*Required*: No \n*Type*: [MultiplexProgramChannelDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-multiplexprogramchanneldestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Settings": "The destination settings for an output\\. \n*Required*: No \n*Type*: List of [OutputDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel OutputDestinationSettings": { + "PasswordParam": "The password parameter that holds the password for accessing the downstream system\\. This password parameter applies only if the downstream system requires credentials\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamName": "The stream name for the content\\. This applies only to RTMP outputs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Url": "The URL for the destination\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Username": "The user name to connect to the downstream system\\. This applies only if the downstream system requires credentials\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel OutputGroup": { + "Name": "A custom output group name that you can optionally define\\. Only letters, numbers, and the underscore character are allowed\\. The maximum length is 32 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutputGroupSettings": "The settings associated with the output group\\. \n*Required*: No \n*Type*: [OutputGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputgroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Outputs": "The settings for the outputs in the output group\\. \n*Required*: No \n*Type*: List of [Output](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-output.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel OutputGroupSettings": { + "ArchiveGroupSettings": "The configuration of an archive output group\\. \nThe parent of this entity is OutputGroupSettings\\. \n*Required*: No \n*Type*: [ArchiveGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivegroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FrameCaptureGroupSettings": "The configuration of a frame capture output group\\. \n*Required*: No \n*Type*: [FrameCaptureGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecapturegroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HlsGroupSettings": "The configuration of an HLS output group\\. \n*Required*: No \n*Type*: [HlsGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MediaPackageGroupSettings": "The configuration of a MediaPackage output group\\. \n*Required*: No \n*Type*: [MediaPackageGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mediapackagegroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MsSmoothGroupSettings": "The configuration of a Microsoft Smooth output group\\. \n*Required*: No \n*Type*: [MsSmoothGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MultiplexGroupSettings": "The settings for a Multiplex output group\\. \n*Required*: No \n*Type*: [MultiplexGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-multiplexgroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RtmpGroupSettings": "The configuration of an RTMP output group\\. \n*Required*: No \n*Type*: [RtmpGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpgroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UdpGroupSettings": "The configuration of a UDP output group\\. \n*Required*: No \n*Type*: [UdpGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-udpgroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel OutputLocationRef": { + "DestinationRefId": "A reference ID for this destination\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel OutputSettings": { + "ArchiveOutputSettings": "The settings for an archive output\\. \n*Required*: No \n*Type*: [ArchiveOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archiveoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FrameCaptureOutputSettings": "The settings for a frame capture output\\. \nThe parent of this entity is OutputGroupSettings\\. \n*Required*: No \n*Type*: [FrameCaptureOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecaptureoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HlsOutputSettings": "The settings for an HLS output\\. \nThe parent of this entity is OutputGroupSettings\\. \n*Required*: No \n*Type*: [HlsOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MediaPackageOutputSettings": "The settings for a MediaPackage output\\. \nThe parent of this entity is OutputGroupSettings\\. \n*Required*: No \n*Type*: [MediaPackageOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mediapackageoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MsSmoothOutputSettings": "The settings for a Microsoft Smooth output\\. \n*Required*: No \n*Type*: [MsSmoothOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MultiplexOutputSettings": "Configuration of a Multiplex output\\. \n*Required*: No \n*Type*: [MultiplexOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-multiplexoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RtmpOutputSettings": "The settings for an RTMP output\\. \nThe parent of this entity is OutputGroupSettings\\. \n*Required*: No \n*Type*: [RtmpOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UdpOutputSettings": "The settings for a UDP output\\. \nThe parent of this entity is OutputGroupSettings\\. \n*Required*: No \n*Type*: [UdpOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-udpoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel RemixSettings": { + "ChannelMappings": "A mapping of input channels to output channels, with appropriate gain adjustments\\. \n*Required*: No \n*Type*: List of [AudioChannelMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiochannelmapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ChannelsIn": "The number of input channels to be used\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ChannelsOut": "The number of output channels to be produced\\. Valid values: 1, 2, 4, 6, 8\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel RtmpGroupSettings": { + "AdMarkers": "Choose the ad marker type for this output group\\. MediaLive will create a message based on the content of each SCTE\\-35 message, format it for that marker type, and insert it in the datastream\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthenticationScheme": "An authentication scheme to use when connecting with a CDN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CacheFullBehavior": "Controls behavior when the content cache fills up\\. If a remote origin server stalls the RTMP connection and doesn't accept content fast enough, the media cache fills up\\. When the cache reaches the duration specified by cacheLength, the cache stops accepting new content\\. If set to disconnectImmediately, the RTMP output forces a disconnect\\. Clear the media cache, and reconnect after restartDelay seconds\\. If set to waitForServer, the RTMP output waits up to 5 minutes to allow the origin server to begin accepting data again\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CacheLength": "The cache length, in seconds, that is used to calculate buffer size\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CaptionData": "Controls the types of data that pass to onCaptionInfo outputs\\. If set to all, 608 and 708 carried DTVCC data is passed\\. If set to field1AndField2608, DTVCC data is stripped out, but 608 data from both fields is passed\\. If set to field1608, only the data carried in 608 from field 1 video is passed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputLossAction": "Controls the behavior of this RTMP group if the input becomes unavailable\\. emitOutput: Emit a slate until the input returns\\. pauseOutput: Stop transmitting data until the input returns\\. This does not close the underlying RTMP connection\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RestartDelay": "If a streaming output fails, the number of seconds to wait until a restart is initiated\\. A value of 0 means never restart\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel RtmpOutputSettings": { + "CertificateMode": "If set to verifyAuthenticity, verifies the TLS certificate chain to a trusted certificate authority \\(CA\\)\\. This causes RTMPS outputs with self\\-signed certificates to fail\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectionRetryInterval": "The number of seconds to wait before retrying a connection to the Flash Media server if the connection is lost\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Destination": "The RTMP endpoint excluding the stream name \\(for example, rtmp://host/appname\\)\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumRetries": "The number of retry attempts\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel Scte20SourceSettings": { + "Convert608To708": "If upconvert, 608 data is both passed through the \"608 compatibility bytes\" fields of the 708 wrapper as well as translated into 708\\. Any 708 data present in the source content is discarded\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Source608ChannelNumber": "Specifies the 608/708 channel number within the video track from which to extract captions\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel Scte27SourceSettings": { + "OcrLanguage": "If you will configure a WebVTT caption description that references this caption selector, use this field to provide the language to consider when translating the image\\-based source to text\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Pid": "The PID field is used in conjunction with the captions selector languageCode field as follows: Specify PID and Language: Extracts captions from that PID; the language is \"informational\\.\" Specify PID and omit Language: Extracts the specified PID\\. Omit PID and specify Language: Extracts the specified language, whichever PID that happens to be\\. Omit PID and omit Language: Valid only if source is DVB\\-Sub that is being passed through; all languages are passed through\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel Scte35SpliceInsert": { + "AdAvailOffset": "When specified, this offset \\(in milliseconds\\) is added to the input ad avail PTS time\\. This applies only to embedded SCTE 104/35 messages\\. It doesn't apply to OOB messages\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NoRegionalBlackoutFlag": "When set to ignore, segment descriptors with noRegionalBlackoutFlag set to 0 no longer trigger blackouts or ad avail slates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WebDeliveryAllowedFlag": "When set to ignore, segment descriptors with webDeliveryAllowedFlag set to 0 no longer trigger blackouts or ad avail slates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel Scte35TimeSignalApos": { + "AdAvailOffset": "When specified, this offset \\(in milliseconds\\) is added to the input ad avail PTS time\\. This applies only to embedded SCTE 104/35 messages\\. It doesn't apply to OOB messages\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NoRegionalBlackoutFlag": "When set to ignore, segment descriptors with noRegionalBlackoutFlag set to 0 no longer trigger blackouts or ad avail slates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WebDeliveryAllowedFlag": "When set to ignore, segment descriptors with webDeliveryAllowedFlag set to 0 no longer trigger blackouts or ad avail slates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel StandardHlsSettings": { + "AudioRenditionSets": "Lists all the audio groups that are used with the video output stream\\. This inputs all the audio GROUP\\-IDs that are associated with the video, separated by a comma \\(,\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "M3u8Settings": "Settings for the M3U8 container\\. \n*Required*: No \n*Type*: [M3u8Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m3u8settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel StaticKeySettings": { + "KeyProviderServer": "The URL of the license server that is used for protecting content\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StaticKeyValue": "The static key value as a 32 character hexadecimal string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel TeletextSourceSettings": { + "OutputRectangle": "Settings to configure the caption rectangle for an output captions that will be created using this Teletext source captions\\. \n*Required*: No \n*Type*: [CaptionRectangle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionrectangle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PageNumber": "Specifies the Teletext page number within the data stream from which to extract captions\\. The range is 0x100 \\(256\\) to 0x8FF \\(2303\\)\\. This is unused for passthrough\\. It should be specified as a hexadecimal string with no \"0x\" prefix\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel TemporalFilterSettings": { + "PostFilterSharpening": "If you enable this filter, the results are the following: \\- If the source content is noisy \\(it contains excessive digital artifacts\\), the filter cleans up the source\\. \\- If the source content is already clean, the filter tends to decrease the bitrate, especially when the rate control mode is QVBR\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Strength": "Choose a filter strength\\. We recommend a strength of 1 or 2\\. A higher strength might take out good information, resulting in an image that is overly soft\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel TimecodeConfig": { + "Source": "Identifies the source for the timecode that will be associated with the channel outputs\\. Embedded \\(embedded\\): Initialize the output timecode with timecode from the source\\. If no embedded timecode is detected in the source, the system falls back to using \"Start at 0\" \\(zerobased\\)\\. System Clock \\(systemclock\\): Use the UTC time\\. Start at 0 \\(zerobased\\): The time of the first frame of the channel will be 00:00:00:00\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SyncThreshold": "The threshold in frames beyond which output timecode is resynchronized to the input timecode\\. Discrepancies below this threshold are permitted to avoid unnecessary discontinuities in the output timecode\\. There is no timecode sync when this is not specified\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel TtmlDestinationSettings": { + "StyleControl": "When set to passthrough, passes through style and position information from a TTML\\-like input source \\(TTML, SMPTE\\-TT, CFF\\-TT\\) to the CFF\\-TT output or TTML output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel UdpContainerSettings": { + "M2tsSettings": "The M2TS configuration for this UDP output\\. \n*Required*: No \n*Type*: [M2tsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel UdpGroupSettings": { + "InputLossAction": "Specifies the behavior of the last resort when the input video is lost, and no more backup inputs are available\\. When dropTs is selected, the entire transport stream stops emitting\\. When dropProgram is selected, the program can be dropped from the transport stream \\(and replaced with null packets to meet the TS bitrate requirement\\)\\. Or when emitProgram is selected, the transport stream continues to be produced normally with repeat frames, black frames, or slate frames substituted for the absent input video\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimedMetadataId3Frame": "Indicates the ID3 frame that has the timecode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimedMetadataId3Period": "The timed metadata interval in seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel UdpOutputSettings": { + "BufferMsec": "The UDP output buffering in milliseconds\\. Larger values increase latency through the transcoder but simultaneously assist the transcoder in maintaining a constant, low\\-jitter UDP/RTP output while accommodating clock recovery, input switching, input disruptions, picture reordering, and so on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContainerSettings": "The settings for the UDP output\\. \n*Required*: No \n*Type*: [UdpContainerSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-udpcontainersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Destination": "The destination address and port number for RTP or UDP packets\\. These can be unicast or multicast RTP or UDP \\(for example, rtp://239\\.10\\.10\\.10:5001 or udp://10\\.100\\.100\\.100:5002\\)\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FecOutputSettings": "The settings for enabling and adjusting Forward Error Correction on UDP outputs\\. \n*Required*: No \n*Type*: [FecOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-fecoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel VideoBlackFailoverSettings": { + "BlackDetectThreshold": "A value used in calculating the threshold below which MediaLive considers a pixel to be 'black'\\. For the input to be considered black, every pixel in a frame must be below this threshold\\. The threshold is calculated as a percentage \\(expressed as a decimal\\) of white\\. Therefore \\.1 means 10% white \\(or 90% black\\)\\. Note how the formula works for any color depth\\. For example, if you set this field to 0\\.1 in 10\\-bit color depth: \\(1023\\*0\\.1=102\\.3\\), which means a pixel value of 102 or less is 'black'\\. If you set this field to \\.1 in an 8\\-bit color depth: \\(255\\*0\\.1=25\\.5\\), which means a pixel value of 25 or less is 'black'\\. The range is 0\\.0 to 1\\.0, with any number of decimal places\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VideoBlackThresholdMsec": "The amount of time \\(in milliseconds\\) that the active input must be black before automatic input failover occurs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel VideoCodecSettings": { + "FrameCaptureSettings": "The settings for the video codec in a frame capture output\\. \n*Required*: No \n*Type*: [FrameCaptureSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecapturesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "H264Settings": "The settings for the H\\.264 codec in the output\\. \n*Required*: No \n*Type*: [H264Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "H265Settings": "Settings for video encoded with the H265 codec\\. \n*Required*: No \n*Type*: [H265Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Mpeg2Settings": "Settings for video encoded with the MPEG\\-2 codec\\. \n*Required*: No \n*Type*: [Mpeg2Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel VideoDescription": { + "CodecSettings": "The video codec settings\\. \n*Required*: No \n*Type*: [VideoCodecSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videocodecsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Height": "The output video height, in pixels\\. This must be an even number\\. For most codecs, you can keep this field and width blank in order to use the height and width \\(resolution\\) from the source\\. Note that we don't recommend keeping the field blank\\. For the Frame Capture codec, height and width are required\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of this VideoDescription\\. Outputs use this name to uniquely identify this description\\. Description names should be unique within this channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RespondToAfd": "Indicates how to respond to the AFD values in the input stream\\. RESPOND causes input video to be clipped, depending on the AFD value, input display aspect ratio, and output display aspect ratio, and \\(except for the FRAMECAPTURE codec\\) includes the values in the output\\. PASSTHROUGH \\(does not apply to FRAMECAPTURE codec\\) ignores the AFD values and includes the values in the output, so input video is not clipped\\. NONE ignores the AFD values and does not include the values through to the output, so input video is not clipped\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScalingBehavior": "STRETCHTOOUTPUT configures the output position to stretch the video to the specified output resolution \\(height and width\\)\\. This option overrides any position value\\. DEFAULT might insert black boxes \\(pillar boxes or letter boxes\\) around the video to provide the specified output resolution\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Sharpness": "Changes the strength of the anti\\-alias filter used for scaling\\. 0 is the softest setting, and 100 is the sharpest\\. We recommend a setting of 50 for most content\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Width": "The output video width, in pixels\\. It must be an even number\\. For most codecs, you can keep this field and height blank in order to use the height and width \\(resolution\\) from the source\\. Note that we don't recommend keeping the field blank\\. For the Frame Capture codec, height and width are required\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel VideoSelector": { + "ColorSpace": "Specifies the color space of an input\\. This setting works in tandem with colorSpaceConversion to determine if MediaLive will perform any conversion\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ColorSpaceSettings": "Settings to configure color space settings in the incoming video\\. \n*Required*: No \n*Type*: [VideoSelectorColorSpaceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorcolorspacesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ColorSpaceUsage": "Applies only if colorSpace is a value other than Follow\\. This field controls how the value in the colorSpace field is used\\. Fallback means that when the input does include color space data, that data is used, but when the input has no color space data, the value in colorSpace is used\\. Choose fallback if your input is sometimes missing color space data, but when it does have color space data, that data is correct\\. Force means to always use the value in colorSpace\\. Choose force if your input usually has no color space data or might have unreliable color space data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SelectorSettings": "Information about the video to select from the content\\. \n*Required*: No \n*Type*: [VideoSelectorSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel VideoSelectorColorSpaceSettings": { + "Hdr10Settings": "Settings to configure color space settings in the incoming video\\. \n*Required*: No \n*Type*: [Hdr10Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hdr10settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel VideoSelectorPid": { + "Pid": "Selects a specific PID from within a video source\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel VideoSelectorProgramId": { + "ProgramId": "Selects a specific program from within a multi\\-program transport stream\\. If the program doesn't exist, MediaLive selects the first program within the transport stream by default\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel VideoSelectorSettings": { + "VideoSelectorPid": "Used to extract video by PID\\. \n*Required*: No \n*Type*: [VideoSelectorPid](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorpid.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VideoSelectorProgramId": "Used to extract video by program ID\\. \n*Required*: No \n*Type*: [VideoSelectorProgramId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorprogramid.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel VpcOutputSettings": { + "PublicAddressAllocationIds": "List of public address allocation IDs to associate with ENIs that will be created in Output VPC\\. Must specify one for SINGLE\\_PIPELINE, two for STANDARD channels \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroupIds": "A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces\\. If none are specified then the VPC default security group will be used \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetIds": "A list of VPC subnet IDs from the same VPC\\. If STANDARD channel, subnet IDs must be mapped to two unique availability zones \\(AZ\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel WavSettings": { + "BitDepth": "Bits per sample\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CodingMode": "The audio coding mode for the WAV audio\\. The mode determines the number of channels in the audio\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SampleRate": "Sample rate in Hz\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Channel WebvttDestinationSettings": { + "StyleControl": "Controls whether the color and position of the source captions is passed through to the WebVTT output captions\\. PASSTHROUGH \\- Valid only if the source captions are EMBEDDED or TELETEXT\\. NO\\_STYLE\\_DATA \\- Don't pass through the style\\. The output captions will not contain any font styling information\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Input": { + "Destinations": "Settings that apply only if the input is a push type of input\\. \n*Required*: No \n*Type*: List of [InputDestinationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputdestinationrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputDevices": "Settings that apply only if the input is an Elemental Link input\\. \n*Required*: No \n*Type*: List of [InputDeviceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputdevicesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputSecurityGroups": "The list of input security groups \\(referenced by IDs\\) to attach to the input if the input is a push type\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MediaConnectFlows": "Settings that apply only if the input is a MediaConnect input\\. \n*Required*: No \n*Type*: List of [MediaConnectFlowRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-mediaconnectflowrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A name for the input\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The IAM role for MediaLive to assume when creating a MediaConnect input or Amazon VPC input\\. This doesn't apply to other types of inputs\\. The role is identified by its ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Sources": "Settings that apply only if the input is a pull type of input\\. \n*Required*: No \n*Type*: List of [InputSourceRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputsourcerequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A collection of tags for this input\\. Each tag is a key\\-value pair\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type for this input\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Vpc": "Settings that apply only if the input is an push input where the source is on Amazon VPC\\. \n*Required*: No \n*Type*: [InputVpcRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputvpcrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::MediaLive::Input InputDestinationRequest": { + "StreamName": "The stream name \\(application name/application instance\\) for the location the RTMP source content will be pushed to in MediaLive\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Input InputDeviceRequest": { + "Id": "This property is not used\\. Ignore it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Input InputDeviceSettings": { + "Id": "The unique ID for the device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Input InputSourceRequest": { + "PasswordParam": "The password parameter that holds the password for accessing the upstream system\\. The password parameter applies only if the upstream system requires credentials\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Url": "For a pull input, the URL where MediaLive pulls the source content from\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Username": "The user name to connect to the upstream system\\. The user name applies only if the upstream system requires credentials\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Input InputVpcRequest": { + "SecurityGroupIds": "The list of up to five VPC security group IDs to attach to the input VPC network interfaces\\. The security groups require subnet IDs\\. If none are specified, MediaLive uses the VPC default security group\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetIds": "The list of two VPC subnet IDs from the same VPC\\. You must associate subnet IDs to two unique Availability Zones\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::Input MediaConnectFlowRequest": { + "FlowArn": "The ARN of one or two MediaConnect flows that are the sources for this MediaConnect input\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::InputSecurityGroup": { + "Tags": "A collection of tags for this input security group\\. Each tag is a key\\-value pair\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WhitelistRules": "The list of IPv4 CIDR addresses to include in the input security group as \"allowed\" addresses\\. \n*Required*: No \n*Type*: List of [InputWhitelistRuleCidr](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-inputsecuritygroup-inputwhitelistrulecidr.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaLive::InputSecurityGroup InputWhitelistRuleCidr": { + "Cidr": "An IPv4 CIDR range to include in this input security group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::Asset": { + "Id": "Unique identifier that you assign to the asset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PackagingGroupId": "The ID of the packaging group associated with this asset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceId": "Unique identifier for this asset, as it's configured in the key provider service\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceArn": "The ARN for the source content in Amazon S3\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceRoleArn": "The ARN for the IAM role that provides AWS Elemental MediaPackage access to the Amazon S3 bucket where the source content is stored\\. Valid format: arn:aws:iam::\\{accountID\\}:role/\\{name\\} \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to assign to the asset\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::Asset EgressEndpoint": { + "PackagingConfigurationId": "The ID of a packaging configuration that's applied to this asset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Url": "The URL that's used to request content from this endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::Channel": { + "Description": "Any descriptive information that you want to add to the channel for future identification purposes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EgressAccessLogs": "Configures egress access logs\\. \n*Required*: No \n*Type*: [LogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-channel-logconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "Unique identifier that you assign to the channel\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IngressAccessLogs": "Configures ingress access logs\\. \n*Required*: No \n*Type*: [LogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-channel-logconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to assign to the channel\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::MediaPackage::Channel LogConfiguration": { + "LogGroupName": "Sets a custom Amazon CloudWatch log group name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::OriginEndpoint": { + "Authorization": "Parameters for CDN authorization\\. \n*Required*: No \n*Type*: [Authorization](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-authorization.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ChannelId": "The ID of the channel associated with this endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CmafPackage": "Parameters for Common Media Application Format \\(CMAF\\) packaging\\. \n*Required*: No \n*Type*: [CmafPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafpackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DashPackage": "Parameters for DASH packaging\\. \n*Required*: No \n*Type*: [DashPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "Any descriptive information that you want to add to the endpoint for future identification purposes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HlsPackage": "Parameters for Apple HLS packaging\\. \n*Required*: No \n*Type*: [HlsPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "The manifest ID is required and must be unique within the OriginEndpoint\\. The ID can't be changed after the endpoint is created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ManifestName": "A short string that's appended to the end of the endpoint URL to create a unique path to this endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MssPackage": "Parameters for Microsoft Smooth Streaming packaging\\. \n*Required*: No \n*Type*: [MssPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-msspackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Origination": "Controls video origination from this endpoint\\. \n+ **ALLOW** \\- enables this endpoint to serve content to requesting devices\\.\n+ **DENY** \\- prevents this endpoint from serving content\\. Denying origination is helpful for harvesting live\\-to\\-VOD assets\\. For more information about harvesting and origination, see [Live\\-to\\-VOD Requirements](https://docs.aws.amazon.com/mediapackage/latest/ug/ltov-reqmts.html)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StartoverWindowSeconds": "Maximum duration \\(seconds\\) of content to retain for startover playback\\. Omit this attribute or enter `0` to indicate that startover playback is disabled for this endpoint\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to assign to the endpoint\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeDelaySeconds": "Minimum duration \\(seconds\\) of delay to enforce on the playback of live content\\. Omit this attribute or enter `0` to indicate that there is no time delay in effect for this endpoint \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Whitelist": "The IP addresses that can access this endpoint\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::OriginEndpoint Authorization": { + "CdnIdentifierSecret": "The Amazon Resource Name \\(ARN\\) for the secret in AWS Secrets Manager that your Content Distribution Network \\(CDN\\) uses for authorization to access your endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretsRoleArn": "The Amazon Resource Name \\(ARN\\) for the IAM role that allows MediaPackage to communicate with AWS Secrets Manager\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::OriginEndpoint CmafEncryption": { + "ConstantInitializationVector": "An optional 128\\-bit, 16\\-byte hex value represented by a 32\\-character string, used in conjunction with the key for encrypting blocks\\. If you don't specify a value, then MediaPackage creates the constant initialization vector \\(IV\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeyRotationIntervalSeconds": "Number of seconds before AWS Elemental MediaPackage rotates to a new key\\. By default, rotation is set to 60 seconds\\. Set to `0` to disable key rotation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SpekeKeyProvider": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::OriginEndpoint CmafPackage": { + "Encryption": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [CmafEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HlsManifests": "A list of HLS manifest configurations that are available from this endpoint\\. \n*Required*: No \n*Type*: List of [HlsManifest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentDurationSeconds": "Duration \\(in seconds\\) of each segment\\. Actual segments are rounded to the nearest multiple of the source segment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentPrefix": "An optional custom string that is prepended to the name of each segment\\. If not specified, the segment prefix defaults to the ChannelId\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamSelection": "Limitations for outputs from the endpoint, based on the video bitrate\\. \n*Required*: No \n*Type*: [StreamSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-streamselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::OriginEndpoint DashEncryption": { + "KeyRotationIntervalSeconds": "Number of seconds before AWS Elemental MediaPackage rotates to a new key\\. By default, rotation is set to 60 seconds\\. Set to `0` to disable key rotation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SpekeKeyProvider": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::OriginEndpoint DashPackage": { + "AdTriggers": "Specifies the SCTE\\-35 message types that MediaPackage treats as ad markers in the output manifest\\. \n Valid values: \n+ **BREAK**\n+ **DISTRIBUTOR\\_ADVERTISEMENT**\n+ **DISTRIBUTOR\\_OVERLAY\\_PLACEMENT\\_OPPORTUNITY**\\.\n+ **DISTRIBUTOR\\_PLACEMENT\\_OPPORTUNITY**\\.\n+ **PROVIDER\\_ADVERTISEMENT**\\.\n+ **PROVIDER\\_OVERLAY\\_PLACEMENT\\_OPPORTUNITY**\\.\n+ **PROVIDER\\_PLACEMENT\\_OPPORTUNITY**\\.\n+ **SPLICE\\_INSERT**\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AdsOnDeliveryRestrictions": "The flags on SCTE\\-35 segmentation descriptors that have to be present for MediaPackage to insert ad markers in the output manifest\\. For information about SCTE\\-35 in MediaPackage, see [SCTE\\-35 Message Options in AWS Elemental MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/ug/scte.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Encryption": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [DashEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ManifestLayout": "Determines the position of some tags in the manifest\\. \nOptions: \n+ **FULL** \\- elements like `SegmentTemplate` and `ContentProtection` are included in each `Representation`\\.\n+ **COMPACT** \\- duplicate elements are combined and presented at the `AdaptationSet` level\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ManifestWindowSeconds": "Time window \\(in seconds\\) contained in each manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinBufferTimeSeconds": "Minimum amount of content \\(measured in seconds\\) that a player must keep available in the buffer\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinUpdatePeriodSeconds": "Minimum amount of time \\(in seconds\\) that the player should wait before requesting updates to the manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PeriodTriggers": "Controls whether MediaPackage produces single\\-period or multi\\-period DASH manifests\\. For more information about periods, see [Multi\\-period DASH in AWS Elemental MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/ug/multi-period.html)\\. \nValid values: \n+ **ADS** \\- MediaPackage will produce multi\\-period DASH manifests\\. Periods are created based on the SCTE\\-35 ad markers present in the input manifest\\.\n+ *No value* \\- MediaPackage will produce single\\-period DASH manifests\\. This is the default setting\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Profile": "DASH profile for the output, such as HbbTV\\. \nValid values: \n+ **NONE** \\- the output doesn't use a DASH profile\\.\n+ **HBBTV\\_1\\_5** \\- the output is HbbTV\\-compliant\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentDurationSeconds": "Duration \\(in seconds\\) of each fragment\\. Actual fragments are rounded to the nearest multiple of the source fragment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentTemplateFormat": "Determines the type of variable used in the `media` URL of the `SegmentTemplate` tag in the manifest\\. Also specifies if segment timeline information is included in `SegmentTimeline` or `SegmentTemplate`\\. \n+ **NUMBER\\_WITH\\_TIMELINE** \\- The `$Number$` variable is used in the `media` URL\\. The value of this variable is the sequential number of the segment\\. A full `SegmentTimeline` object is presented in each `SegmentTemplate`\\.\n+ **NUMBER\\_WITH\\_DURATION** \\- The `$Number$` variable is used in the `media` URL and a `duration` attribute is added to the segment template\\. The `SegmentTimeline` object is removed from the representation\\.\n+ **TIME\\_WITH\\_TIMELINE** \\- The `$Time$` variable is used in the `media` URL\\. The value of this variable is the timestamp of when the segment starts\\. A full `SegmentTimeline` object is presented in each `SegmentTemplate`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamSelection": "Limitations for outputs from the endpoint, based on the video bitrate\\. \n*Required*: No \n*Type*: [StreamSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-streamselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SuggestedPresentationDelaySeconds": "Amount of time \\(in seconds\\) that the player should be from the live point at the end of the manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UtcTiming": "Determines the type of UTC timing included in the DASH Media Presentation Description \\(MPD\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UtcTimingUri": "Specifies the value attribute of the UTC timing field when utcTiming is set to HTTP\\-ISO or HTTP\\-HEAD\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::OriginEndpoint HlsEncryption": { + "ConstantInitializationVector": "A 128\\-bit, 16\\-byte hex value represented by a 32\\-character string, used with the key for encrypting blocks\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EncryptionMethod": "HLS encryption type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeyRotationIntervalSeconds": "Number of seconds before AWS Elemental MediaPackage rotates to a new key\\. By default, rotation is set to 60 seconds\\. Set to `0` to disable key rotation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RepeatExtXKey": "Repeat the `EXT-X-KEY `directive for every media segment\\. This might result in an increase in client requests to the DRM server\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SpekeKeyProvider": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::OriginEndpoint HlsManifest": { + "AdMarkers": "Controls how ad markers are included in the packaged endpoint\\. Valid values are `none`, `passthrough`, or `scte35_enhanced`\\. \n+ **NONE** \\- omits all SCTE\\-35 ad markers from the output\\.\n+ **PASSTHROUGH** \\- creates a copy in the output of the SCTE\\-35 ad markers \\(comments\\) taken directly from the input manifest\\.\n+ **SCTE35\\_ENHANCED** \\- generates ad markers and blackout tags in the output based on the SCTE\\-35 messages from the input manifest\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AdTriggers": "Specifies the SCTE\\-35 message types that MediaPackage treats as ad markers in the output manifest\\. \nValid values: \n+ **BREAK**\n+ **DISTRIBUTOR\\_ADVERTISEMENT**\n+ **DISTRIBUTOR\\_OVERLAY\\_PLACEMENT\\_OPPORTUNITY**\n+ **DISTRIBUTOR\\_PLACEMENT\\_OPPORTUNITY**\n+ **PROVIDER\\_ADVERTISEMENT**\n+ **PROVIDER\\_OVERLAY\\_PLACEMENT\\_OPPORTUNITY**\n+ **PROVIDER\\_PLACEMENT\\_OPPORTUNITY**\n+ **SPLICE\\_INSERT**\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AdsOnDeliveryRestrictions": "The flags on SCTE\\-35 segmentation descriptors that have to be present for MediaPackage to insert ad markers in the output manifest\\. For information about SCTE\\-35 in MediaPackage, see [SCTE\\-35 Message Options in AWS Elemental MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/ug/scte.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "The manifest ID is required and must be unique within the OriginEndpoint\\. The ID can't be changed after the endpoint is created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeIframeOnlyStream": "Applies to stream sets with a single video track only\\. When true, the stream set includes an additional I\\-frame only stream, along with the other tracks\\. If false, this extra stream is not included\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ManifestName": "A short string that's appended to the end of the endpoint URL to create a unique path to this endpoint\\. The manifestName on the HLSManifest object overrides the manifestName that you provided on the originEndpoint object\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PlaylistType": "When specified as either `event` or `vod`, a corresponding `EXT-X-PLAYLIST-TYPE` entry is included in the media playlist\\. Indicates if the playlist is live\\-to\\-VOD content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PlaylistWindowSeconds": "Time window \\(in seconds\\) contained in each parent manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProgramDateTimeIntervalSeconds": "Inserts `EXT-X-PROGRAM-DATE-TIME `tags in the output manifest at the interval that you specify\\. Additionally, ID3Timed metadata messages are generated every 5 seconds starting when the content was ingested\\. \nIrrespective of this parameter, if any ID3Timed metadata is in the HLS input, it is passed through to the HLS output\\. \nOmit this attribute or enter `0` to indicate that the `EXT-X-PROGRAM-DATE-TIME` tags are not included in the manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Url": "The URL that's used to request this manifest from this endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::OriginEndpoint HlsPackage": { + "AdMarkers": "Controls how ad markers are included in the packaged endpoint\\. Valid values are `none`, `passthrough`, or `scte35_enhanced`\\. \n+ **NONE** \\- omits all SCTE\\-35 ad markers from the output\\.\n+ **PASSTHROUGH** \\- creates a copy in the output of the SCTE\\-35 ad markers \\(comments\\) taken directly from the input manifest\\.\n+ **SCTE35\\_ENHANCED** \\- generates ad markers and blackout tags in the output based on the SCTE\\-35 messages from the input manifest\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AdTriggers": "Specifies the SCTE\\-35 message types that MediaPackage treats as ad markers in the output manifest\\. \n Valid values: \n+ **BREAK**\n+ **DISTRIBUTOR\\_ADVERTISEMENT**\n+ **DISTRIBUTOR\\_OVERLAY\\_PLACEMENT\\_OPPORTUNITY**\n+ **DISTRIBUTOR\\_PLACEMENT\\_OPPORTUNITY**\n+ **PROVIDER\\_ADVERTISEMENT**\n+ **PROVIDER\\_OVERLAY\\_PLACEMENT\\_OPPORTUNITY**\n+ **PROVIDER\\_PLACEMENT\\_OPPORTUNITY**\n+ **SPLICE\\_INSERT**\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AdsOnDeliveryRestrictions": "The flags on SCTE\\-35 segmentation descriptors that have to be present for MediaPackage to insert ad markers in the output manifest\\. For information about SCTE\\-35 in MediaPackage, see [SCTE\\-35 Message Options in AWS Elemental MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/ug/scte.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Encryption": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [HlsEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeIframeOnlyStream": "Only applies to stream sets with a single video track\\. When true, the stream set includes an additional I\\-frame only stream, along with the other tracks\\. If false, this extra stream is not included\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PlaylistType": "When specified as either `event` or `vod`, a corresponding `EXT-X-PLAYLIST-TYPE` entry is included in the media playlist\\. Indicates if the playlist is live\\-to\\-VOD content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PlaylistWindowSeconds": "Time window \\(in seconds\\) contained in each parent manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProgramDateTimeIntervalSeconds": "Inserts `EXT-X-PROGRAM-DATE-TIME` tags in the output manifest at the interval that you specify\\. Additionally, ID3Timed metadata messages are generated every 5 seconds starting when the content was ingested\\. \nIrrespective of this parameter, if any ID3Timed metadata is in the HLS input, it is passed through to the HLS output\\. \nOmit this attribute or enter `0` to indicate that the `EXT-X-PROGRAM-DATE-TIME` tags are not included in the manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentDurationSeconds": "Duration \\(in seconds\\) of each fragment\\. Actual fragments are rounded to the nearest multiple of the source fragment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamSelection": "Limitations for outputs from the endpoint, based on the video bitrate\\. \n*Required*: No \n*Type*: [StreamSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-streamselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UseAudioRenditionGroup": "When true, AWS Elemental MediaPackage bundles all audio tracks in a rendition group\\. All other tracks in the stream can be used with any audio rendition from the group\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::OriginEndpoint MssEncryption": { + "SpekeKeyProvider": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::OriginEndpoint MssPackage": { + "Encryption": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [MssEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-mssencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ManifestWindowSeconds": "Time window \\(in seconds\\) contained in each manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentDurationSeconds": "Duration \\(in seconds\\) of each fragment\\. Actual fragments are rounded to the nearest multiple of the source fragment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamSelection": "Limitations for outputs from the endpoint, based on the video bitrate\\. \n*Required*: No \n*Type*: [StreamSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-streamselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::OriginEndpoint SpekeKeyProvider": { + "CertificateArn": "The Amazon Resource Name \\(ARN\\) for the certificate that you imported to AWS Certificate Manager to add content key encryption to this endpoint\\. For this feature to work, your DRM key provider must support content key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceId": "Unique identifier for this endpoint, as it is configured in the key provider service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN for the IAM role that's granted by the key provider to provide access to the key provider API\\. This role must have a trust policy that allows AWS Elemental MediaPackage to assume the role, and it must have a sufficient permissions policy to allow access to the specific key retrieval URL\\. Valid format: arn:aws:iam::\\{accountID\\}:role/\\{name\\} \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SystemIds": "List of unique identifiers for the DRM systems to use, as defined in the CPIX specification\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Url": "URL for the key provider\u2019s key retrieval API endpoint\\. Must start with https://\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::OriginEndpoint StreamSelection": { + "MaxVideoBitsPerSecond": "The upper limit of the bitrates that this endpoint serves\\. If the video track exceeds this threshold, then AWS Elemental MediaPackage excludes it from output\\. If you don't specify a value, it defaults to 2147483647 bits per second\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinVideoBitsPerSecond": "The lower limit of the bitrates that this endpoint serves\\. If the video track is below this threshold, then AWS Elemental MediaPackage excludes it from output\\. If you don't specify a value, it defaults to 0 bits per second\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamOrder": "Order in which the different video bitrates are presented to the player\\. \nValid values: **ORIGINAL**, **VIDEO\\_BITRATE\\_ASCENDING**, **VIDEO\\_BITRATE\\_DESCENDING**\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::PackagingConfiguration": { + "CmafPackage": "Parameters for CMAF packaging\\. \n*Required*: No \n*Type*: [CmafPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-cmafpackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DashPackage": "Parameters for DASH\\-ISO packaging\\. \n*Required*: No \n*Type*: [DashPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashpackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HlsPackage": "Parameters for Apple HLS packaging\\. \n*Required*: No \n*Type*: [HlsPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlspackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "Unique identifier that you assign to the packaging configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MssPackage": "Parameters for Microsoft Smooth Streaming packaging\\. \n*Required*: No \n*Type*: [MssPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-msspackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PackagingGroupId": "The ID of the packaging group associated with this packaging configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to assign to the packaging configuration\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::PackagingConfiguration CmafEncryption": { + "SpekeKeyProvider": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::PackagingConfiguration CmafPackage": { + "Encryption": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [CmafEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-cmafencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HlsManifests": "A list of HLS manifest configurations that are available from this endpoint\\. \n*Required*: Yes \n*Type*: List of [HlsManifest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsmanifest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeEncoderConfigurationInSegments": "When includeEncoderConfigurationInSegments is set to true, MediaPackage places your encoder's Sequence Parameter Set \\(SPS\\), Picture Parameter Set \\(PPS\\), and Video Parameter Set \\(VPS\\) metadata in every video segment instead of in the init fragment\\. This lets you use different SPS/PPS/VPS settings for your assets during content playback\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentDurationSeconds": "Duration \\(in seconds\\) of each segment\\. Actual segments are rounded to the nearest multiple of the source fragment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::PackagingConfiguration DashEncryption": { + "SpekeKeyProvider": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::PackagingConfiguration DashManifest": { + "ManifestLayout": "Determines the position of some tags in the Media Presentation Description \\(MPD\\)\\. When set to **FULL**, elements like `SegmentTemplate` and `ContentProtection` are included in each `Representation`\\. When set to **COMPACT**, duplicate elements are combined and presented at the AdaptationSet level\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ManifestName": "A short string that's appended to the end of the endpoint URL to create a unique path to this packaging configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinBufferTimeSeconds": "Minimum amount of content \\(measured in seconds\\) that a player must keep available in the buffer\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Profile": "The DASH profile type\\. When set to **HBBTV\\_1\\_5**, the content is compliant with HbbTV 1\\.5\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamSelection": "Limitations for outputs from the endpoint, based on the video bitrate\\. \n*Required*: No \n*Type*: [StreamSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-streamselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::PackagingConfiguration DashPackage": { + "DashManifests": "A list of DASH manifest configurations that are available from this endpoint\\. \n*Required*: Yes \n*Type*: List of [DashManifest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashmanifest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Encryption": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [DashEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeEncoderConfigurationInSegments": "When includeEncoderConfigurationInSegments is set to true, MediaPackage places your encoder's Sequence Parameter Set \\(SPS\\), Picture Parameter Set \\(PPS\\), and Video Parameter Set \\(VPS\\) metadata in every video segment instead of in the init fragment\\. This lets you use different SPS/PPS/VPS settings for your assets during content playback\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PeriodTriggers": "Controls whether MediaPackage produces single\\-period or multi\\-period DASH manifests\\. For more information about periods, see [Multi\\-period DASH in AWS Elemental MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/ug/multi-period.html)\\. \nValid values: \n+ **ADS** \\- MediaPackage will produce multi\\-period DASH manifests\\. Periods are created based on the SCTE\\-35 ad markers present in the input manifest\\.\n+ *No value* \\- MediaPackage will produce single\\-period DASH manifests\\. This is the default setting\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentDurationSeconds": "Duration \\(in seconds\\) of each fragment\\. Actual fragments are rounded to the nearest multiple of the source segment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentTemplateFormat": "Determines the type of SegmentTemplate included in the Media Presentation Description \\(MPD\\)\\. When set to **NUMBER\\_WITH\\_TIMELINE**, a full timeline is presented in each SegmentTemplate, with $Number$ media URLs\\. When set to **TIME\\_WITH\\_TIMELINE**, a full timeline is presented in each SegmentTemplate, with $Time$ media URLs\\. When set to **NUMBER\\_WITH\\_DURATION**, only a duration is included in each SegmentTemplate, with $Number$ media URLs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::PackagingConfiguration HlsEncryption": { + "ConstantInitializationVector": "A 128\\-bit, 16\\-byte hex value represented by a 32\\-character string, used with the key for encrypting blocks\\. If you don't specify a constant initialization vector \\(IV\\), MediaPackage periodically rotates the IV\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EncryptionMethod": "HLS encryption type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SpekeKeyProvider": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::PackagingConfiguration HlsManifest": { + "AdMarkers": "This setting controls ad markers in the packaged content\\. **NONE** omits SCTE\\-35 ad markers from the output\\. **PASSTHROUGH** copies SCTE\\-35 ad markers from the source content to the output\\. **SCTE35\\_ENHANCED** generates ad markers and blackout tags in the output, based on SCTE\\-35 messages in the source content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeIframeOnlyStream": "Applies to stream sets with a single video track only\\. When enabled, the output includes an additional I\\-frame only stream, along with the other tracks\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ManifestName": "A short string that's appended to the end of the endpoint URL to create a unique path to this packaging configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProgramDateTimeIntervalSeconds": "Inserts `EXT-X-PROGRAM-DATE-TIME` tags in the output manifest at the interval that you specify\\. Additionally, ID3Timed metadata messages are generated every 5 seconds starting when the content was ingested\\. \nIrrespective of this parameter, if any ID3Timed metadata is in the HLS input, it is passed through to the HLS output\\. \nOmit this attribute or enter `0` to indicate that the `EXT-X-PROGRAM-DATE-TIME` tags are not included in the manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RepeatExtXKey": "Repeat the `EXT-X-KEY` directive for every media segment\\. This might result in an increase in client requests to the DRM server\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamSelection": "Video bitrate limitations for outputs from this packaging configuration\\. \n*Required*: No \n*Type*: [StreamSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-streamselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::PackagingConfiguration HlsPackage": { + "Encryption": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [HlsEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HlsManifests": "A list of HLS manifest configurations that are available from this endpoint\\. \n*Required*: Yes \n*Type*: List of [HlsManifest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsmanifest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentDurationSeconds": "Duration \\(in seconds\\) of each fragment\\. Actual fragments are rounded to the nearest multiple of the source fragment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UseAudioRenditionGroup": "When true, AWS Elemental MediaPackage bundles all audio tracks in a rendition group\\. All other tracks in the stream can be used with any audio rendition from the group\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::PackagingConfiguration MssEncryption": { + "SpekeKeyProvider": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::PackagingConfiguration MssManifest": { + "ManifestName": "A short string that's appended to the end of the endpoint URL to create a unique path to this packaging configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamSelection": "Video bitrate limitations for outputs from this packaging configuration\\. \n*Required*: No \n*Type*: [StreamSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-streamselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::PackagingConfiguration MssPackage": { + "Encryption": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [MssEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-mssencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MssManifests": "A list of Microsoft Smooth manifest configurations that are available from this endpoint\\. \n*Required*: Yes \n*Type*: List of [MssManifest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-mssmanifest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentDurationSeconds": "Duration \\(in seconds\\) of each fragment\\. Actual fragments are rounded to the nearest multiple of the source fragment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::PackagingConfiguration SpekeKeyProvider": { + "RoleArn": "The ARN for the IAM role that's granted by the key provider to provide access to the key provider API\\. Valid format: arn:aws:iam::\\{accountID\\}:role/\\{name\\} \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SystemIds": "List of unique identifiers for the DRM systems to use, as defined in the CPIX specification\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Url": "URL for the key provider's key retrieval API endpoint\\. Must start with https://\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::PackagingConfiguration StreamSelection": { + "MaxVideoBitsPerSecond": "The upper limit of the bitrates that this endpoint serves\\. If the video track exceeds this threshold, then AWS Elemental MediaPackage excludes it from output\\. If you don't specify a value, it defaults to 2147483647 bits per second\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinVideoBitsPerSecond": "The lower limit of the bitrates that this endpoint serves\\. If the video track is below this threshold, then AWS Elemental MediaPackage excludes it from output\\. If you don't specify a value, it defaults to 0 bits per second\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamOrder": "Order in which the different video bitrates are presented to the player\\. \nValid values: **ORIGINAL**, **VIDEO\\_BITRATE\\_ASCENDING**, **VIDEO\\_BITRATE\\_DESCENDING**\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::PackagingGroup": { + "Authorization": "Parameters for CDN authorization\\. \n*Required*: No \n*Type*: [Authorization](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packaginggroup-authorization.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EgressAccessLogs": "The configuration parameters for egress access logging\\. \n*Required*: No \n*Type*: [LogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packaginggroup-logconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "Unique identifier that you assign to the packaging group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags to assign to the packaging group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::MediaPackage::PackagingGroup Authorization": { + "CdnIdentifierSecret": "The Amazon Resource Name \\(ARN\\) for the secret in AWS Secrets Manager that is used for CDN authorization\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretsRoleArn": "The Amazon Resource Name \\(ARN\\) for the IAM role that allows MediaPackage to communicate with AWS Secrets Manager\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaPackage::PackagingGroup LogConfiguration": { + "LogGroupName": "Sets a custom Amazon CloudWatch log group name for egress logs\\. If a log group name isn't specified, the default name is used: /aws/MediaPackage/EgressAccessLogs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaStore::Container": { + "AccessLoggingEnabled": "The state of access logging on the container\\. This value is `false` by default, indicating that AWS Elemental MediaStore does not send access logs to Amazon CloudWatch Logs\\. When you enable access logging on the container, MediaStore changes this value to `true`, indicating that the service delivers access logs for objects stored in that container to CloudWatch Logs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContainerName": "The name for the container\\. The name must be from 1 to 255 characters\\. Container names must be unique to your AWS account within a specific region\\. As an example, you could create a container named `movies` in every region, as long as you don\u2019t have an existing container with that name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\w-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CorsPolicy": "Sets the cross\\-origin resource sharing \\(CORS\\) configuration on a container so that the container can service cross\\-origin requests\\. For example, you might want to enable a request whose origin is http://www\\.example\\.com to access your AWS Elemental MediaStore container at my\\.example\\.container\\.com by using the browser's XMLHttpRequest capability\\. \nTo enable CORS on a container, you attach a CORS policy to the container\\. In the CORS policy, you configure rules that identify origins and the HTTP methods that can be executed on your container\\. The policy can contain up to 398,000 characters\\. You can add up to 100 rules to a CORS policy\\. If more than one rule applies, the service uses the first applicable rule listed\\. \nTo learn more about CORS, see [Cross\\-Origin Resource Sharing \\(CORS\\) in AWS Elemental MediaStore](https://docs.aws.amazon.com/mediastore/latest/ug/cors-policy.html)\\. \n*Required*: No \n*Type*: List of [CorsRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-corsrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LifecyclePolicy": "Writes an object lifecycle policy to a container\\. If the container already has an object lifecycle policy, the service replaces the existing policy with the new policy\\. It takes up to 20 minutes for the change to take effect\\. \nFor information about how to construct an object lifecycle policy, see [Components of an Object Lifecycle Policy](https://docs.aws.amazon.com/mediastore/latest/ug/policies-object-lifecycle-components.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricPolicy": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [MetricPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-metricpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Policy": "Creates an access policy for the specified container to restrict the users and clients that can access it\\. For information about the data that is included in an access policy, see the [AWS Identity and Access Management User Guide](https://docs.aws.amazon.com/iam/)\\. \nFor this release of the REST API, you can create only one policy for a container\\. If you enter `PutContainerPolicy` twice, the second command modifies the existing policy\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaStore::Container CorsRule": { + "AllowedHeaders": "Specifies which headers are allowed in a preflight `OPTIONS` request through the `Access-Control-Request-Headers` header\\. Each header name that is specified in `Access-Control-Request-Headers` must have a corresponding entry in the rule\\. Only the headers that were requested are sent back\\. \nThis element can contain only one wildcard character \\(\\*\\)\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AllowedMethods": "Identifies an HTTP method that the origin that is specified in the rule is allowed to execute\\. \nEach CORS rule must contain at least one `AllowedMethods` and one `AllowedOrigins` element\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AllowedOrigins": "One or more response headers that you want users to be able to access from their applications \\(for example, from a JavaScript `XMLHttpRequest` object\\)\\. \nEach CORS rule must have at least one `AllowedOrigins` element\\. The string value can include only one wildcard character \\(\\*\\), for example, http://\\*\\.example\\.com\\. Additionally, you can specify only one wildcard character to allow cross\\-origin access for all origins\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExposeHeaders": "One or more headers in the response that you want users to be able to access from their applications \\(for example, from a JavaScript `XMLHttpRequest` object\\)\\. \nThis element is optional for each rule\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxAgeSeconds": "The time in seconds that your browser caches the preflight response for the specified resource\\. \nA CORS rule can have only one `MaxAgeSeconds` element\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaStore::Container MetricPolicy": { + "ContainerLevelMetrics": "A setting to enable or disable metrics at the container level\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricPolicyRules": "A parameter that holds an array of rules that enable metrics at the object level\\. This parameter is optional, but if you choose to include it, you must also include at least one rule\\. By default, you can include up to five rules\\. You can also [request a quota increase](https://console.aws.amazon.com/servicequotas/home?region=us-east-1#!/services/mediastore/quotas) to allow up to 300 rules per policy\\. \n*Required*: No \n*Type*: List of [MetricPolicyRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-metricpolicyrule.html) \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MediaStore::Container MetricPolicyRule": { + "ObjectGroup": "A path or file name that defines which objects to include in the group\\. Wildcards \\(\\*\\) are acceptable\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `900` \n*Pattern*: `/?(?:[A-Za-z0-9_=:\\.\\-\\~\\*]+/){0,10}(?:[A-Za-z0-9_=:\\.\\-\\~\\*]+)?/?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ObjectGroupName": "A name that allows you to refer to the object group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `30` \n*Pattern*: `[a-zA-Z0-9_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MemoryDB::ACL": { + "ACLName": "The name of the Access Control List\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserNames": "The list of users that belong to the Access Control List\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MemoryDB::Cluster": { + "ACLName": "The name of the Access Control List to associate with the cluster\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Pattern*: `[a-zA-Z][a-zA-Z0-9\\-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutoMinorVersionUpgrade": "When set to true, the cluster will automatically receive minor engine version upgrades after launch\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClusterName": "The name of the cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "A description of the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EngineVersion": "The Redis engine version used by the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FinalSnapshotName": "The user\\-supplied name of a final cluster snapshot\\. This is the unique name that identifies the snapshot\\. MemoryDB creates the snapshot, and then deletes the cluster immediately afterward\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKeyId": "The ID of the KMS key used to encrypt the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MaintenanceWindow": "Specifies the weekly time range during which maintenance on the cluster is performed\\. It is specified as a range in the format `ddd:hh24:mi-ddd:hh24:mi` \\(24H Clock UTC\\)\\. The minimum maintenance window is a 60 minute period\\. \n*Pattern*: `ddd:hh24:mi-ddd:hh24:mi` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NodeType": "The cluster's node type\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumReplicasPerShard": "The number of replicas to apply to each shard\\. \n*Default value*: `1` \n*Maximum value*: `5` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumShards": "The number of shards in the cluster\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParameterGroupName": "The name of the parameter group used by the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "The port used by the cluster\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecurityGroupIds": "A list of security group names to associate with this cluster\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnapshotArns": "A list of Amazon Resource Names \\(ARN\\) that uniquely identify the RDB snapshot files stored in Amazon S3\\. The snapshot files are used to populate the new cluster\\. The Amazon S3 object name in the ARN cannot contain any commas\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SnapshotName": "The name of a snapshot from which to restore data into the new cluster\\. The snapshot status changes to restoring while the new cluster is being created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SnapshotRetentionLimit": "The number of days for which MemoryDB retains automatic snapshots before deleting them\\. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnapshotWindow": "The daily time range \\(in UTC\\) during which MemoryDB begins taking a daily snapshot of your shard\\. Example: 05:00\\-09:00 If you do not specify this parameter, MemoryDB automatically chooses an appropriate time range\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnsTopicArn": "When you pass the logical ID of this resource to the intrinsic `Ref` function, Ref returns the ARN of the SNS topic, such as `arn:aws:memorydb:us-east-1:123456789012:mySNSTopic` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnsTopicStatus": "The SNS topic must be in Active status to receive notifications\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetGroupName": "The name of the subnet group used by the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TLSEnabled": "A flag to indicate if In\\-transit encryption is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MemoryDB::Cluster Endpoint": { + "Address": "The DNS hostname of the node\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "The port number that the engine is listening on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MemoryDB::ParameterGroup": { + "Description": "A description of the parameter group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Family": "The name of the parameter group family that this parameter group is compatible with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ParameterGroupName": "The name of the parameter group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Parameters": "Returns the detailed parameter list for the parameter group\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MemoryDB::SubnetGroup": { + "Description": "A description of the subnet group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetGroupName": "The name of the subnet group to be used for the cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetIds": "A list of Amazon VPC subnet IDs for the subnet group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::MemoryDB::User": { + "AccessString": "Access permissions string used for this user\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthenticationMode": "Denotes whether the user requires a password to authenticate\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserName": "The name of the user\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Neptune::DBCluster": { + "AssociatedRoles": "Provides a list of the Amazon Identity and Access Management \\(IAM\\) roles that are associated with the DB cluster\\. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon services on your behalf\\. \n*Required*: No \n*Type*: List of [DBClusterRole](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-neptune-dbcluster-dbclusterrole.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AvailabilityZones": "Provides the list of EC2 Availability Zones that instances in the DB cluster can be created in\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BackupRetentionPeriod": "Specifies the number of days for which automatic DB snapshots are retained\\. \nAn update may require some interruption\\. See [ModifyDBInstance](https://docs.aws.amazon.com/neptune/latest/userguide/api-instances.html#ModifyDBInstance) in the Amazon Neptune User Guide for more information\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DBClusterIdentifier": "Contains a user\\-supplied DB cluster identifier\\. This identifier is the unique key that identifies a DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DBClusterParameterGroupName": "Provides the name of the DB cluster parameter group\\. \nAn update may require some interruption\\. See [ModifyDBInstance](https://docs.aws.amazon.com/neptune/latest/userguide/api-instances.html#ModifyDBInstance) in the Amazon Neptune User Guide for more information\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DBSubnetGroupName": "Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DeletionProtection": "Indicates whether or not the DB cluster has deletion protection enabled\\. The database can't be deleted when deletion protection is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableCloudwatchLogsExports": "Specifies a list of log types that are enabled for export to CloudWatch Logs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EngineVersion": "Indicates the database engine version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IamAuthEnabled": "True if mapping of Amazon Identity and Access Management \\(IAM\\) accounts to database accounts is enabled, and otherwise false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKeyId": "If `StorageEncrypted` is true, the Amazon KMS key identifier for the encrypted DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Port": "Specifies the port that the database engine is listening on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreferredBackupWindow": "Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the `BackupRetentionPeriod`\\. \nAn update may require some interruption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreferredMaintenanceWindow": "Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time \\(UTC\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RestoreToTime": "Creates a new DB cluster from a DB snapshot or DB cluster snapshot\\. \nIf a DB snapshot is specified, the target DB cluster is created from the source DB snapshot with a default configuration and default security group\\. \nIf a DB cluster snapshot is specified, the target DB cluster is created from the source DB cluster restore point with the same configuration as the original source DB cluster, except that the new DB cluster is created with the default security group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RestoreType": "Creates a new DB cluster from a DB snapshot or DB cluster snapshot\\. \nIf a DB snapshot is specified, the target DB cluster is created from the source DB snapshot with a default configuration and default security group\\. \nIf a DB cluster snapshot is specified, the target DB cluster is created from the source DB cluster restore point with the same configuration as the original source DB cluster, except that the new DB cluster is created with the default security group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SnapshotIdentifier": "Specifies the identifier for a DB cluster snapshot\\. Must match the identifier of an existing snapshot\\. \nAfter you restore a DB cluster using a `SnapshotIdentifier`, you must specify the same `SnapshotIdentifier` for any future updates to the DB cluster\\. When you specify this property for an update, the DB cluster is not restored from the snapshot again, and the data in the database is not changed\\. \nHowever, if you don't specify the `SnapshotIdentifier`, an empty DB cluster is created, and the original DB cluster is deleted\\. If you specify a property that is different from the previous snapshot restore property, the DB cluster is restored from the snapshot specified by the `SnapshotIdentifier`, and the original DB cluster is deleted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceDBClusterIdentifier": "Creates a new DB cluster from a DB snapshot or DB cluster snapshot\\. \nIf a DB snapshot is specified, the target DB cluster is created from the source DB snapshot with a default configuration and default security group\\. \nIf a DB cluster snapshot is specified, the target DB cluster is created from the source DB cluster restore point with the same configuration as the original source DB cluster, except that the new DB cluster is created with the default security group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StorageEncrypted": "Indicates whether the DB cluster is encrypted\\. \nIf you specify the `DBClusterIdentifier`, `DBSnapshotIdentifier`, or `SourceDBInstanceIdentifier` property, don't specify this property\\. The value is inherited from the cluster, snapshot, or source DB instance\\. If you specify the `KmsKeyId` property, you must enable encryption\\. \nIf you specify the `KmsKeyId`, you must enable encryption by setting `StorageEncrypted` to true\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags assigned to this cluster\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UseLatestRestorableTime": "Creates a new DB cluster from a DB snapshot or DB cluster snapshot\\. \nIf a DB snapshot is specified, the target DB cluster is created from the source DB snapshot with a default configuration and default security group\\. \nIf a DB cluster snapshot is specified, the target DB cluster is created from the source DB cluster restore point with the same configuration as the original source DB cluster, except that the new DB cluster is created with the default security group\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpcSecurityGroupIds": "Provides a list of VPC security groups that the DB cluster belongs to\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Neptune::DBCluster DBClusterRole": { + "FeatureName": "The name of the feature associated with the Amazon Identity and Access Management \\(IAM\\) role\\. For the list of supported feature names, see [DescribeDBEngineVersions](https://docs.aws.amazon.com/neptune/latest/userguide/api-other-apis.html#DescribeDBEngineVersions)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM role that is associated with the DB cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Neptune::DBClusterParameterGroup": { + "Description": "Provides the customer\\-specified description for this DB cluster parameter group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Family": "Must be `neptune1`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "Provides the name of the DB cluster parameter group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Parameters": "The parameters to set for this DB cluster parameter group\\. \nThe parameters are expressed as a JSON object consisting of key\\-value pairs\\. \nIf you update the parameters, some interruption may occur depending on which parameters you update\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags that you want to attach to this parameter group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Neptune::DBInstance": { + "AllowMajorVersionUpgrade": "Indicates that major version upgrades are allowed\\. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible\\. This parameter must be set to true when specifying a value for the EngineVersion parameter that is a different major version than the DB instance's current version\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutoMinorVersionUpgrade": "Indicates that minor version patches are applied automatically\\. \nWhen updating this property, some interruptions may occur\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AvailabilityZone": "Specifies the name of the Availability Zone the DB instance is located in\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DBClusterIdentifier": "If the DB instance is a member of a DB cluster, contains the name of the DB cluster that the DB instance is a member of\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DBInstanceClass": "Contains the name of the compute and memory capacity class of the DB instance\\. \nIf you update this property, some interruptions may occur\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DBInstanceIdentifier": "Contains a user\\-supplied database identifier\\. This identifier is the unique key that identifies a DB instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DBParameterGroupName": "The name of an existing DB parameter group or a reference to an AWS::Neptune::DBParameterGroup resource created in the template\\. If any of the data members of the referenced parameter group are changed during an update, the DB instance might need to be restarted, which causes some interruption\\. If the parameter group contains static parameters, whether they were changed or not, an update triggers a reboot\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DBSnapshotIdentifier": "This parameter is not supported\\. \n `AWS::Neptune::DBInstance` does not support restoring from snapshots\\. \n `AWS::Neptune::DBCluster` does support restoring from snapshots\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DBSubnetGroupName": "A DB subnet group to associate with the DB instance\\. If you update this value, the new subnet group must be a subnet group in a new virtual private cloud \\(VPC\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PreferredMaintenanceWindow": "Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time \\(UTC\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An arbitrary set of tags \\(key\\-value pairs\\) for this DB instance\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Neptune::DBParameterGroup": { + "Description": "Provides the customer\\-specified description for this DB parameter group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Family": "Must be `neptune1`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "Provides the name of the DB parameter group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Parameters": "The parameters to set for this DB parameter group\\. \nThe parameters are expressed as a JSON object consisting of key\\-value pairs\\. \nChanges to dynamic parameters are applied immediately\\. During an update, if you have static parameters \\(whether they were changed or not\\), it triggers AWS CloudFormation to reboot the associated DB instance without failover\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags that you want to attach to this parameter group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Neptune::DBSubnetGroup": { + "DBSubnetGroupDescription": "Provides the description of the DB subnet group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DBSubnetGroupName": "The name of the DB subnet group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetIds": "The Amazon EC2 subnet IDs for the DB subnet group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags that you want to attach to the DB subnet group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::Firewall": { + "DeleteProtection": "A flag indicating whether it is possible to delete the firewall\\. A setting of `TRUE` indicates that the firewall is protected against deletion\\. Use this setting to protect against accidentally deleting a firewall that is in use\\. When you create a firewall, the operation initializes this flag to `TRUE`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the firewall\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `^.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FirewallName": "The descriptive name of the firewall\\. You can't change the name of a firewall after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FirewallPolicyArn": "The Amazon Resource Name \\(ARN\\) of the firewall policy\\. \nThe relationship of firewall to firewall policy is many to one\\. Each firewall requires one firewall policy association, and you can use the same firewall policy for multiple firewalls\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn:aws.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FirewallPolicyChangeProtection": "A setting indicating whether the firewall is protected against a change to the firewall policy association\\. Use this setting to protect against accidentally modifying the firewall policy for a firewall that is in use\\. When you create a firewall, the operation initializes this setting to `TRUE`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetChangeProtection": "A setting indicating whether the firewall is protected against changes to the subnet associations\\. Use this setting to protect against accidentally modifying the subnet associations for a firewall that is in use\\. When you create a firewall, the operation initializes this setting to `TRUE`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetMappings": "The public subnets that Network Firewall is using for the firewall\\. Each subnet must belong to a different Availability Zone\\. \n*Required*: Yes \n*Type*: List of [SubnetMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewall-subnetmapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcId": "The unique identifier of the VPC where the firewall is in use\\. You can't change the VPC of a firewall after you create the firewall\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^vpc-[0-9a-f]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::NetworkFirewall::Firewall SubnetMapping": { + "SubnetId": "The unique identifier for the subnet\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::FirewallPolicy": { + "Description": "A description of the firewall policy\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `^.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FirewallPolicy": "The traffic filtering behavior of a firewall policy, defined in a collection of stateless and stateful rule groups and other settings\\. \n*Required*: Yes \n*Type*: [FirewallPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-firewallpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FirewallPolicyName": "The descriptive name of the firewall policy\\. You can't change the name of a firewall policy after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::FirewallPolicy ActionDefinition": { + "PublishMetricAction": "Stateless inspection criteria that publishes the specified metrics to Amazon CloudWatch for the matching packet\\. This setting defines a CloudWatch dimension value to be published\\. \nYou can pair this custom action with any of the standard stateless rule actions\\. For example, you could pair this in a rule action with the standard action that forwards the packet for stateful inspection\\. Then, when a packet matches the rule, Network Firewall publishes metrics for the packet and forwards it\\. \n*Required*: No \n*Type*: [PublishMetricAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-publishmetricaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::FirewallPolicy CustomAction": { + "ActionDefinition": "The custom action associated with the action name\\. \n*Required*: Yes \n*Type*: [ActionDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-actiondefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ActionName": "The descriptive name of the custom action\\. You can't change the name of a custom action after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::FirewallPolicy Dimension": { + "Value": "The value to use in the custom metric dimension\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-_ ]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::FirewallPolicy FirewallPolicy": { + "StatefulDefaultActions": "The default actions to take on a packet that doesn't match any stateful rules\\. The stateful default action is optional, and is only valid when using the strict rule order\\. \nValid values of the stateful default action: \n+ aws:drop\\_strict\n+ aws:drop\\_established\n+ aws:alert\\_strict\n+ aws:alert\\_established\nFor more information, see [Strict evaluation order](https://docs.aws.amazon.com/network-firewall/latest/developerguide/suricata-rule-evaluation-order.html#suricata-strict-rule-evaluation-order.html) in the *AWS Network Firewall Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatefulEngineOptions": "Additional options governing how Network Firewall handles stateful rules\\. The stateful rule groups that you use in your policy must have stateful rule options settings that are compatible with these settings\\. \n*Required*: No \n*Type*: [StatefulEngineOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statefulengineoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatefulRuleGroupReferences": "References to the stateful rule groups that are used in the policy\\. These define the inspection criteria in stateful rules\\. \n*Required*: No \n*Type*: List of [StatefulRuleGroupReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statefulrulegroupreference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatelessCustomActions": "The custom action definitions that are available for use in the firewall policy's `StatelessDefaultActions` setting\\. You name each custom action that you define, and then you can use it by name in your default actions specifications\\. \n*Required*: No \n*Type*: List of [CustomAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-customaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatelessDefaultActions": "The actions to take on a packet if it doesn't match any of the stateless rules in the policy\\. If you want non\\-matching packets to be forwarded for stateful inspection, specify `aws:forward_to_sfe`\\. \nYou must specify one of the standard actions: `aws:pass`, `aws:drop`, or `aws:forward_to_sfe`\\. In addition, you can specify custom actions that are compatible with your standard section choice\\. \nFor example, you could specify `[\"aws:pass\"]` or you could specify `[\"aws:pass\", \u201ccustomActionName\u201d]`\\. For information about compatibility, see the custom action descriptions\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatelessFragmentDefaultActions": "The actions to take on a fragmented packet if it doesn't match any of the stateless rules in the policy\\. If you want non\\-matching fragmented packets to be forwarded for stateful inspection, specify `aws:forward_to_sfe`\\. \nYou must specify one of the standard actions: `aws:pass`, `aws:drop`, or `aws:forward_to_sfe`\\. In addition, you can specify custom actions that are compatible with your standard section choice\\. \nFor example, you could specify `[\"aws:pass\"]` or you could specify `[\"aws:pass\", \u201ccustomActionName\u201d]`\\. For information about compatibility, see the custom action descriptions\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatelessRuleGroupReferences": "References to the stateless rule groups that are used in the policy\\. These define the matching criteria in stateless rules\\. \n*Required*: No \n*Type*: List of [StatelessRuleGroupReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statelessrulegroupreference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::FirewallPolicy PublishMetricAction": { + "Dimensions": "*Required*: Yes \n*Type*: List of [Dimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-dimension.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::FirewallPolicy StatefulEngineOptions": { + "RuleOrder": "Indicates how to manage the order of stateful rule evaluation for the policy\\. `DEFAULT_ACTION_ORDER` is the default behavior\\. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them based on certain settings\\. For more information, see [Evaluation order for stateful rules](https://docs.aws.amazon.com/network-firewall/latest/developerguide/suricata-rule-evaluation-order.html) in the * AWS Network Firewall Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DEFAULT_ACTION_ORDER | STRICT_ORDER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::FirewallPolicy StatefulRuleGroupReference": { + "Priority": "An integer setting that indicates the order in which to run the stateful rule groups in a single [AWS::NetworkFirewall::FirewallPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewallpolicy.html)\\. This setting only applies to firewall policies that specify the `STRICT_ORDER` rule order in the stateful engine options settings\\. \nNetwork Firewall evalutes each stateful rule group against a packet starting with the group that has the lowest priority setting\\. You must ensure that the priority settings are unique within each policy\\. \nYou can change the priority settings of your rule groups at any time\\. To make it easier to insert rule groups later, number them so there's a wide range in between, for example use 100, 200, and so on\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceArn": "The Amazon Resource Name \\(ARN\\) of the stateful rule group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn:aws.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::FirewallPolicy StatelessRuleGroupReference": { + "Priority": "An integer setting that indicates the order in which to run the stateless rule groups in a single [AWS::NetworkFirewall::FirewallPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewallpolicy.html)\\. Network Firewall applies each stateless rule group to a packet starting with the group that has the lowest priority setting\\. You must ensure that the priority settings are unique within each policy\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceArn": "The Amazon Resource Name \\(ARN\\) of the stateless rule group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn:aws.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::LoggingConfiguration": { + "FirewallArn": "The Amazon Resource Name \\(ARN\\) of the [AWS::NetworkFirewall::Firewall](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html) that the logging configuration is associated with\\. You can't change the firewall specification after you create the logging configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FirewallName": "The name of the firewall that the logging configuration is associated with\\. You can't change the firewall specification after you create the logging configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LoggingConfiguration": "Defines how AWS Network Firewall performs logging for a [AWS::NetworkFirewall::Firewall](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html)\\. \n*Required*: Yes \n*Type*: [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-loggingconfiguration-loggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::LoggingConfiguration LogDestinationConfig": { + "LogDestination": "The named location for the logs, provided in a key:value mapping that is specific to the chosen destination type\\. \n+ For an Amazon S3 bucket, provide the name of the bucket, with key `bucketName`, and optionally provide a prefix, with key `prefix`\\. The following example specifies an Amazon S3 bucket named `DOC-EXAMPLE-BUCKET` and the prefix `alerts`:", + "LogDestinationType": "The type of storage destination to send these logs to\\. You can send logs to an Amazon S3 bucket, a CloudWatch log group, or a Kinesis Data Firehose delivery stream\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CloudWatchLogs | KinesisDataFirehose | S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogType": "The type of log to send\\. Alert logs report traffic that matches a stateful rule with an action setting that sends an alert log message\\. Flow logs are standard network traffic flow logs\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALERT | FLOW` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::LoggingConfiguration LoggingConfiguration": { + "LogDestinationConfigs": "Defines the logging destinations for the logs for a firewall\\. Network Firewall generates logs for stateful rule groups\\. \n*Required*: Yes \n*Type*: List of [LogDestinationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-loggingconfiguration-logdestinationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::RuleGroup": { + "Capacity": "The maximum operating resources that this rule group can use\\. You can't change a rule group's capacity setting after you create the rule group\\. When you update a rule group, you are limited to this capacity\\. When you reference a rule group from a firewall policy, Network Firewall reserves this capacity for the rule group\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "A description of the rule group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `^.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleGroup": "An object that defines the rule group rules\\. \n*Required*: No \n*Type*: [RuleGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulegroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleGroupName": "The descriptive name of the rule group\\. You can't change the name of a rule group after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "Indicates whether the rule group is stateless or stateful\\. If the rule group is stateless, it contains stateless rules\\. If it is stateful, it contains stateful rules\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `STATEFUL | STATELESS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::NetworkFirewall::RuleGroup ActionDefinition": { + "PublishMetricAction": "Stateless inspection criteria that publishes the specified metrics to Amazon CloudWatch for the matching packet\\. This setting defines a CloudWatch dimension value to be published\\. \nYou can pair this custom action with any of the standard stateless rule actions\\. For example, you could pair this in a rule action with the standard action that forwards the packet for stateful inspection\\. Then, when a packet matches the rule, Network Firewall publishes metrics for the packet and forwards it\\. \n*Required*: No \n*Type*: [PublishMetricAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-publishmetricaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::RuleGroup Address": { + "AddressDefinition": "Specify an IP address or a block of IP addresses in Classless Inter\\-Domain Routing \\(CIDR\\) notation\\. Network Firewall supports all address ranges for IPv4\\. \nExamples: \n+ To configure Network Firewall to inspect for the IP address 192\\.0\\.2\\.44, specify `192.0.2.44/32`\\.\n+ To configure Network Firewall to inspect for IP addresses from 192\\.0\\.2\\.0 to 192\\.0\\.2\\.255, specify `192.0.2.0/24`\\.\nFor more information about CIDR notation, see the Wikipedia entry [Classless Inter\\-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^([a-fA-F\\d:\\.]+($|/\\d{1,3}))$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::RuleGroup CustomAction": { + "ActionDefinition": "The custom action associated with the action name\\. \n*Required*: Yes \n*Type*: [ActionDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-actiondefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ActionName": "The descriptive name of the custom action\\. You can't change the name of a custom action after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::RuleGroup Dimension": { + "Value": "The value to use in the custom metric dimension\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-_ ]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::RuleGroup Header": { + "Destination": "The destination IP address or address range to inspect for, in CIDR notation\\. To match with any address, specify `ANY`\\. \nSpecify an IP address or a block of IP addresses in Classless Inter\\-Domain Routing \\(CIDR\\) notation\\. Network Firewall supports all address ranges for IPv4\\. \nExamples: \n+ To configure Network Firewall to inspect for the IP address 192\\.0\\.2\\.44, specify `192.0.2.44/32`\\.\n+ To configure Network Firewall to inspect for IP addresses from 192\\.0\\.2\\.0 to 192\\.0\\.2\\.255, specify `192.0.2.0/24`\\.\nFor more information about CIDR notation, see the Wikipedia entry [Classless Inter\\-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `^.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationPort": "The destination port to inspect for\\. You can specify an individual port, for example `1994` and you can specify a port range, for example `1990:1994`\\. To match with any port, specify `ANY`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `^.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Direction": "The direction of traffic flow to inspect\\. If set to `ANY`, the inspection matches bidirectional traffic, both from the source to the destination and from the destination to the source\\. If set to `FORWARD`, the inspection only matches traffic going from the source to the destination\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ANY | FORWARD` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "The protocol to inspect for\\. To specify all, you can use `IP`, because all traffic on AWS and on the internet is IP\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DCERPC | DHCP | DNS | FTP | HTTP | ICMP | IKEV2 | IMAP | IP | KRB5 | MSN | NTP | SMB | SMTP | SSH | TCP | TFTP | TLS | UDP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Source": "The source IP address or address range to inspect for, in CIDR notation\\. To match with any address, specify `ANY`\\. \nSpecify an IP address or a block of IP addresses in Classless Inter\\-Domain Routing \\(CIDR\\) notation\\. Network Firewall supports all address ranges for IPv4\\. \nExamples: \n+ To configure Network Firewall to inspect for the IP address 192\\.0\\.2\\.44, specify `192.0.2.44/32`\\.\n+ To configure Network Firewall to inspect for IP addresses from 192\\.0\\.2\\.0 to 192\\.0\\.2\\.255, specify `192.0.2.0/24`\\.\nFor more information about CIDR notation, see the Wikipedia entry [Classless Inter\\-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `^.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourcePort": "The source port to inspect for\\. You can specify an individual port, for example `1994` and you can specify a port range, for example `1990:1994`\\. To match with any port, specify `ANY`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `^.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::RuleGroup IPSet": { + "Definition": "The list of IP addresses and address ranges, in CIDR notation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::RuleGroup MatchAttributes": { + "DestinationPorts": "The destination ports to inspect for\\. If not specified, this matches with any destination port\\. This setting is only used for protocols 6 \\(TCP\\) and 17 \\(UDP\\)\\. \nYou can specify individual ports, for example `1994` and you can specify port ranges, for example `1990:1994`\\. \n*Required*: No \n*Type*: List of [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Destinations": "The destination IP addresses and address ranges to inspect for, in CIDR notation\\. If not specified, this matches with any destination address\\. \n*Required*: No \n*Type*: List of [Address](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-address.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocols": "The protocols to inspect for, specified using each protocol's assigned internet protocol number \\(IANA\\)\\. If not specified, this matches with any protocol\\. \n*Required*: No \n*Type*: List of Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourcePorts": "The source ports to inspect for\\. If not specified, this matches with any source port\\. This setting is only used for protocols 6 \\(TCP\\) and 17 \\(UDP\\)\\. \nYou can specify individual ports, for example `1994` and you can specify port ranges, for example `1990:1994`\\. \n*Required*: No \n*Type*: List of [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Sources": "The source IP addresses and address ranges to inspect for, in CIDR notation\\. If not specified, this matches with any source address\\. \n*Required*: No \n*Type*: List of [Address](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-address.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TCPFlags": "The TCP flags and masks to inspect for\\. If not specified, this matches with any settings\\. This setting is only used for protocol 6 \\(TCP\\)\\. \n*Required*: No \n*Type*: List of [TCPFlagField](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-tcpflagfield.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::RuleGroup PortRange": { + "FromPort": "The lower limit of the port range\\. This must be less than or equal to the `ToPort` specification\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ToPort": "The upper limit of the port range\\. This must be greater than or equal to the `FromPort` specification\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::RuleGroup PortSet": { + "Definition": "The set of port ranges\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::RuleGroup PublishMetricAction": { + "Dimensions": "*Required*: Yes \n*Type*: List of [Dimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-dimension.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::RuleGroup RuleDefinition": { + "Actions": "The actions to take on a packet that matches one of the stateless rule definition's match attributes\\. You must specify a standard action and you can add custom actions\\. \nNetwork Firewall only forwards a packet for stateful rule inspection if you specify `aws:forward_to_sfe` for a rule that the packet matches, or if the packet doesn't match any stateless rule and you specify `aws:forward_to_sfe` for the `StatelessDefaultActions` setting for the [AWS::NetworkFirewall::FirewallPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewallpolicy.html)\\.\nFor every rule, you must specify exactly one of the following standard actions\\. \n+ **aws:pass** \\- Discontinues all inspection of the packet and permits it to go to its intended destination\\.\n+ **aws:drop** \\- Discontinues all inspection of the packet and blocks it from going to its intended destination\\.\n+ **aws:forward\\_to\\_sfe** \\- Discontinues stateless inspection of the packet and forwards it to the stateful rule engine for inspection\\. \nAdditionally, you can specify a custom action\\. To do this, you define a custom action by name and type, then provide the name you've assigned to the action in this `Actions` setting\\. \nTo provide more than one action in this setting, separate the settings with a comma\\. For example, if you have a publish metrics custom action that you've named `MyMetricsAction`, then you could specify the standard action `aws:pass` combined with the custom action using `[\u201caws:pass\u201d, \u201cMyMetricsAction\u201d]`\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MatchAttributes": "Criteria for Network Firewall to use to inspect an individual packet in stateless rule inspection\\. Each match attributes set can include one or more items such as IP address, CIDR range, port number, protocol, and TCP flags\\. \n*Required*: Yes \n*Type*: [MatchAttributes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-matchattributes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::RuleGroup RuleGroup": { + "RuleVariables": "Settings that are available for use in the rules in the rule group\\. You can only use these for stateful rule groups\\. \n*Required*: No \n*Type*: [RuleVariables](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulevariables.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RulesSource": "The stateful rules or stateless rules for the rule group\\. \n*Required*: Yes \n*Type*: [RulesSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatefulRuleOptions": "Additional options governing how Network Firewall handles stateful rules\\. The policies where you use your stateful rule group must have stateful rule options settings that are compatible with these settings\\. \n*Required*: No \n*Type*: [StatefulRuleOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statefulruleoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::RuleGroup RuleOption": { + "Keyword": "*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Settings": "*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::RuleGroup RuleVariables": { + "IPSets": "A list of IP addresses and address ranges, in CIDR notation\\. \n*Required*: No \n*Type*: Map of [IPSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ipset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PortSets": "A list of port ranges\\. \n*Required*: No \n*Type*: Map of [PortSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-portset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::RuleGroup RulesSource": { + "RulesSourceList": "Stateful inspection criteria for a domain list rule group\\. \n*Required*: No \n*Type*: [RulesSourceList](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessourcelist.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RulesString": "Stateful inspection criteria, provided in Suricata compatible intrusion prevention system \\(IPS\\) rules\\. Suricata is an open\\-source network IPS that includes a standard rule\\-based language for network traffic inspection\\. \nThese rules contain the inspection criteria and the action to take for traffic that matches the criteria, so this type of rule group doesn't have a separate action setting\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2000000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatefulRules": "An array of individual stateful rules inspection criteria to be used together in a stateful rule group\\. Use this option to specify simple Suricata rules with protocol, source and destination, ports, direction, and rule options\\. For information about the Suricata `Rules` format, see [Rules Format](https://suricata.readthedocs.io/en/suricata-5.0.0/rules/intro.html#)\\. \n*Required*: No \n*Type*: List of [StatefulRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statefulrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatelessRulesAndCustomActions": "Stateless inspection criteria to be used in a stateless rule group\\. \n*Required*: No \n*Type*: [StatelessRulesAndCustomActions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statelessrulesandcustomactions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::RuleGroup RulesSourceList": { + "GeneratedRulesType": "Whether you want to allow or deny access to the domains in your target list\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALLOWLIST | DENYLIST` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetTypes": "The types of targets to inspect for\\. Valid values are `TLS_SNI` and `HTTP_HOST`\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Targets": "The domains that you want to inspect for in your traffic flows\\. Valid domain specifications are the following: \n+ Explicit names\\. For example, `abc.example.com` matches only the domain `abc.example.com`\\.\n+ Names that use a domain wildcard, which you indicate with an initial '`.`'\\. For example,`.example.com` matches `example.com` and matches all subdomains of `example.com`, such as `abc.example.com` and `www.example.com`\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::RuleGroup StatefulRule": { + "Action": "Defines what Network Firewall should do with the packets in a traffic flow when the flow matches the stateful rule criteria\\. For all actions, Network Firewall performs the specified action and discontinues stateful inspection of the traffic flow\\. \nThe actions for a stateful rule are defined as follows: \n+ **PASS** \\- Permits the packets to go to the intended destination\\.\n+ **DROP** \\- Blocks the packets from going to the intended destination and sends an alert log message, if alert logging is configured in the firewall's [AWS::NetworkFirewall::LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-loggingconfiguration.html)\\. \n+ **ALERT** \\- Permits the packets to go to the intended destination and sends an alert log message, if alert logging is configured in the firewall's [AWS::NetworkFirewall::LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-loggingconfiguration.html)\\.", + "Header": "The stateful inspection criteria for this rule, used to inspect traffic flows\\. \n*Required*: Yes \n*Type*: [Header](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleOptions": "Additional settings for a stateful rule, provided as keywords and settings\\. \n*Required*: Yes \n*Type*: List of [RuleOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruleoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::RuleGroup StatefulRuleOptions": { + "RuleOrder": "Indicates how to manage the order of the rule evaluation for the rule group\\. `DEFAULT_ACTION_ORDER` is the default behavior\\. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them based on certain settings\\. For more information, see [Evaluation order for stateful rules](https://docs.aws.amazon.com/network-firewall/latest/developerguide/suricata-rule-evaluation-order.html) in the *AWS Network Firewall Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DEFAULT_ACTION_ORDER | STRICT_ORDER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::RuleGroup StatelessRule": { + "Priority": "Indicates the order in which to run this rule relative to all of the rules that are defined for a stateless rule group\\. Network Firewall evaluates the rules in a rule group starting with the lowest priority setting\\. You must ensure that the priority settings are unique for the rule group\\. \nEach stateless rule group uses exactly one `StatelessRulesAndCustomActions` object, and each `StatelessRulesAndCustomActions` contains exactly one `StatelessRules` object\\. To ensure unique priority settings for your rule groups, set unique priorities for the stateless rules that you define inside any single `StatelessRules` object\\. \nYou can change the priority settings of your rules at any time\\. To make it easier to insert rules later, number them so there's a wide range in between, for example use 100, 200, and so on\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleDefinition": "Defines the stateless 5\\-tuple packet inspection criteria and the action to take on a packet that matches the criteria\\. \n*Required*: Yes \n*Type*: [RuleDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruledefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::RuleGroup StatelessRulesAndCustomActions": { + "CustomActions": "Defines an array of individual custom action definitions that are available for use by the stateless rules in this `StatelessRulesAndCustomActions` specification\\. You name each custom action that you define, and then you can use it by name in your stateless rule [AWS::NetworkFirewall::RuleGroup RuleDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruledefinition.html) `Actions` specification\\. \n*Required*: No \n*Type*: List of [CustomAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-customaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatelessRules": "Defines the set of stateless rules for use in a stateless rule group\\. \n*Required*: Yes \n*Type*: List of [StatelessRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statelessrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkFirewall::RuleGroup TCPFlagField": { + "Flags": "Used in conjunction with the `Masks` setting to define the flags that must be set and flags that must not be set in order for the packet to match\\. This setting can only specify values that are also specified in the `Masks` setting\\. \nFor the flags that are specified in the masks setting, the following must be true for the packet to match: \n+ The ones that are set in this flags setting must be set in the packet\\. \n+ The ones that are not set in this flags setting must also not be set in the packet\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Masks": "The set of flags to consider in the inspection\\. To inspect all flags in the valid values list, leave this with no setting\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkManager::CustomerGatewayAssociation": { + "CustomerGatewayArn": "The Amazon Resource Name \\(ARN\\) of the customer gateway\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `500` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DeviceId": "The ID of the device\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GlobalNetworkId": "The ID of the global network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LinkId": "The ID of the link\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::NetworkManager::Device": { + "Description": "A description of the device\\. \nConstraints: Maximum length of 256 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GlobalNetworkId": "The ID of the global network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Location": "The site location\\. \n*Required*: No \n*Type*: [Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-device-location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Model": "The model of the device\\. \nConstraints: Maximum length of 128 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SerialNumber": "The serial number of the device\\. \nConstraints: Maximum length of 128 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SiteId": "The site ID\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags for the device\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The device type\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Vendor": "The vendor of the device\\. \nConstraints: Maximum length of 128 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkManager::Device Location": { + "Address": "The physical address\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Latitude": "The latitude\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Longitude": "The longitude\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkManager::GlobalNetwork": { + "Description": "A description of the global network\\. \nConstraints: Maximum length of 256 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags for the global network\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkManager::Link": { + "Bandwidth": "The bandwidth for the link\\. \n*Required*: Yes \n*Type*: [Bandwidth](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-link-bandwidth.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the link\\. \nConstraints: Maximum length of 256 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GlobalNetworkId": "The ID of the global network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Provider": "The provider of the link\\. \nConstraints: Maximum length of 128 characters\\. Cannot include the following characters: \\| \\\\ ^ \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SiteId": "The ID of the site\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags for the link\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of the link\\. \nConstraints: Maximum length of 128 characters\\. Cannot include the following characters: \\| \\\\ ^ \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkManager::Link Bandwidth": { + "DownloadSpeed": "Download speed in Mbps\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UploadSpeed": "Upload speed in Mbps\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkManager::LinkAssociation": { + "DeviceId": "The device ID for the link association\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GlobalNetworkId": "The ID of the global network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LinkId": "The ID of the link\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::NetworkManager::Site": { + "Description": "A description of your site\\. \nConstraints: Maximum length of 256 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GlobalNetworkId": "The ID of the global network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Location": "The site location\\. This information is used for visualization in the Network Manager console\\. If you specify the address, the latitude and longitude are automatically calculated\\. \n+ `Address`: The physical address of the site\\.\n+ `Latitude`: The latitude of the site\\. \n+ `Longitude`: The longitude of the site\\.\n*Required*: No \n*Type*: [Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-site-location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags for the site\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkManager::Site Location": { + "Address": "The physical address\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Latitude": "The latitude\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Longitude": "The longitude\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NetworkManager::TransitGatewayRegistration": { + "GlobalNetworkId": "The ID of the global network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TransitGatewayArn": "The Amazon Resource Name \\(ARN\\) of the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `500` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::NimbleStudio::LaunchProfile": { + "Description": "A human\\-readable description of the launch profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ec2SubnetIds": "Unique identifiers for a collection of EC2 subnets\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LaunchProfileProtocolVersions": "The version number of the protocol that is used by the launch profile\\. The only valid version is \"2021\\-03\\-31\"\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A friendly name for the launch profile\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamConfiguration": "A configuration for a streaming session\\. \n*Required*: Yes \n*Type*: [StreamConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-launchprofile-streamconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StudioComponentIds": "Unique identifiers for a collection of studio components that can be used with this launch profile\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StudioId": "The unique identifier for a studio resource\\. In Nimble Studio, all other resources are contained in a studio resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::NimbleStudio::LaunchProfile StreamConfiguration": { + "ClipboardMode": "Enable or disable the use of the system clipboard to copy and paste between the streaming session and streaming client\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ec2InstanceTypes": "The EC2 instance types that users can select from when launching a streaming session with this launch profile\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxSessionLengthInMinutes": "The length of time, in minutes, that a streaming session can be active before it is stopped or terminated\\. After this point, Nimble Studio automatically terminates or stops the session\\. The default length of time is 690 minutes, and the maximum length of time is 30 days\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxStoppedSessionLengthInMinutes": "Integer that determines if you can start and stop your sessions and how long a session can stay in the STOPPED state\\. The default value is 0\\. The maximum value is 5760\\. \nIf the value is missing or set to 0, your sessions can\u2019t be stopped\\. If you then call `StopStreamingSession`, the session fails\\. If the time that a session stays in the READY state exceeds the `maxSessionLengthInMinutes` value, the session will automatically be terminated \\(instead of stopped\\)\\. \nIf the value is set to a positive number, the session can be stopped\\. You can call `StopStreamingSession` to stop sessions in the READY state\\. If the time that a session stays in the READY state exceeds the `maxSessionLengthInMinutes` value, the session will automatically be stopped \\(instead of terminated\\)\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SessionStorage": "\\(Optional\\) The upload storage for a streaming session\\. \n*Required*: No \n*Type*: [StreamConfigurationSessionStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-launchprofile-streamconfigurationsessionstorage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StreamingImageIds": "The streaming images that users can select from when launching a streaming session with this launch profile\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NimbleStudio::LaunchProfile StreamConfigurationSessionStorage": { + "Mode": "Allows artists to upload files to their workstations\\. The only valid option is `UPLOAD`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Root": "The configuration for the upload storage root of the streaming session\\. \n*Required*: No \n*Type*: [StreamingSessionStorageRoot](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-launchprofile-streamingsessionstorageroot.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NimbleStudio::LaunchProfile StreamingSessionStorageRoot": { + "Linux": "The folder path in Linux workstations where files are uploaded\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Windows": "The folder path in Windows workstations where files are uploaded\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NimbleStudio::StreamingImage": { + "Description": "A human\\-readable description of the streaming image\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ec2ImageId": "The ID of an EC2 machine image with which to create the streaming image\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "A friendly name for a streaming image resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StudioId": "The unique identifier for a studio resource\\. In Nimble Studio, all other resources are contained in a studio resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::NimbleStudio::Studio": { + "AdminRoleArn": "The IAM role that studio admins assume when logging in to the Nimble Studio portal\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisplayName": "A friendly name for the studio\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StudioEncryptionConfiguration": "Configuration of the encryption method that is used for the studio\\. \n*Required*: No \n*Type*: [StudioEncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studio-studioencryptionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StudioName": "The name of the studio, as included in the URL when accessing it in the Nimble Studio portal\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UserRoleArn": "The IAM role that studio users assume when logging in to the Nimble Studio portal\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NimbleStudio::Studio StudioEncryptionConfiguration": { + "KeyArn": "The ARN for a KMS key that is used to encrypt studio data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeyType": "The type of KMS key that is used to encrypt studio data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NimbleStudio::StudioComponent": { + "Configuration": "The configuration of the studio component, based on component type\\. \n*Required*: No \n*Type*: [StudioComponentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-studiocomponentconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A human\\-readable description for the studio component resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ec2SecurityGroupIds": "The EC2 security groups that control access to the studio component\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InitializationScripts": "Initialization scripts for studio components\\. \n*Required*: No \n*Type*: List of [StudioComponentInitializationScript](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-studiocomponentinitializationscript.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A friendly name for the studio component resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScriptParameters": "Parameters for the studio component scripts\\. \n*Required*: No \n*Type*: List of [ScriptParameterKeyValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-scriptparameterkeyvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StudioId": "The unique identifier for a studio resource\\. In Nimble Studio, all other resources are contained in a studio resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Subtype": "The specific subtype of a studio component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "The type of the studio component\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NimbleStudio::StudioComponent ActiveDirectoryComputerAttribute": { + "Name": "The name for the LDAP attribute\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value for the LDAP attribute\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NimbleStudio::StudioComponent ActiveDirectoryConfiguration": { + "ComputerAttributes": "A collection of custom attributes for an Active Directory computer\\. \n*Required*: No \n*Type*: List of [ActiveDirectoryComputerAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-activedirectorycomputerattribute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DirectoryId": "The directory ID of the Directory Service for Microsoft Active Directory to access using this studio component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OrganizationalUnitDistinguishedName": "The distinguished name \\(DN\\) and organizational unit \\(OU\\) of an Active Directory computer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NimbleStudio::StudioComponent ComputeFarmConfiguration": { + "ActiveDirectoryUser": "The name of an Active Directory user that is used on ComputeFarm worker instances\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Endpoint": "The endpoint of the ComputeFarm that is accessed by the studio component resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NimbleStudio::StudioComponent LicenseServiceConfiguration": { + "Endpoint": "The endpoint of the license service that is accessed by the studio component resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NimbleStudio::StudioComponent ScriptParameterKeyValue": { + "Key": "A script parameter key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "A script parameter value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NimbleStudio::StudioComponent SharedFileSystemConfiguration": { + "Endpoint": "The endpoint of the shared file system that is accessed by the studio component resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FileSystemId": "The unique identifier for a file system\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LinuxMountPoint": "The mount location for a shared file system on a Linux virtual workstation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ShareName": "The name of the file share\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WindowsMountDrive": "The mount location for a shared file system on a Windows virtual workstation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NimbleStudio::StudioComponent StudioComponentConfiguration": { + "ActiveDirectoryConfiguration": "The configuration for a Microsoft Active Directory \\(Microsoft AD\\) studio resource\\. \n*Required*: No \n*Type*: [ActiveDirectoryConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-activedirectoryconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ComputeFarmConfiguration": "The configuration for a render farm that is associated with a studio resource\\. \n*Required*: No \n*Type*: [ComputeFarmConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-computefarmconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LicenseServiceConfiguration": "The configuration for a license service that is associated with a studio resource\\. \n*Required*: No \n*Type*: [LicenseServiceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-licenseserviceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SharedFileSystemConfiguration": "The configuration for a shared file storage system that is associated with a studio resource\\. \n*Required*: No \n*Type*: [SharedFileSystemConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-sharedfilesystemconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::NimbleStudio::StudioComponent StudioComponentInitializationScript": { + "LaunchProfileProtocolVersion": "The version number of the protocol that is used by the launch profile\\. The only valid version is \"2021\\-03\\-31\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Platform": "The platform of the initialization script, either WINDOWS or LINUX\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RunContext": "The method to use when running the initialization script\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Script": "The initialization script\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpenSearchService::Domain": { + "AccessPolicies": "An AWS Identity and Access Management \\(IAM\\) policy document that specifies who can access the OpenSearch Service domain and their permissions\\. For more information, see [Configuring access policies](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ac.html#ac-creating) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AdvancedOptions": "Additional options to specify for the OpenSearch Service domain\\. For more information, see [AdvancedOptions](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/configuration-api.html#configuration-api-datatypes-advancedoptions) in the OpenSearch Service configuration API reference\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AdvancedSecurityOptions": "Specifies options for fine\\-grained access control\\. \n*Required*: No \n*Type*: [AdvancedSecurityOptionsInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-advancedsecurityoptionsinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ClusterConfig": "`ClusterConfig` is a property of the AWS::OpenSearchService::Domain resource that configures an Amazon OpenSearch Service cluster\\. \n*Required*: No \n*Type*: [ClusterConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-clusterconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CognitoOptions": "Configures OpenSearch Service to use Amazon Cognito authentication for OpenSearch Dashboards\\. \n*Required*: No \n*Type*: [CognitoOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-cognitooptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainEndpointOptions": "Specifies additional options for the domain endpoint, such as whether to require HTTPS for all traffic or whether to use a custom endpoint rather than the default endpoint\\. \n*Required*: No \n*Type*: [DomainEndpointOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-domainendpointoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainName": "A name for the OpenSearch Service domain\\. For valid values, see the [DomainName](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/configuration-api.html#configuration-api-datatypes-domainname) data type in the *Amazon OpenSearch Service Developer Guide*\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the domain name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nRequired when creating a new domain\\. \nIf you specify a name, you can't perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EBSOptions": "The configurations of Amazon Elastic Block Store \\(Amazon EBS\\) volumes that are attached to data nodes in the OpenSearch Service domain\\. For more information, see [EBS volume size limits](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#ebsresource) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: [EBSOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-ebsoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EncryptionAtRestOptions": "Whether the domain should encrypt data at rest, and if so, the AWS KMS key to use\\. See [Encryption of data at rest for Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/encryption-at-rest.html)\\. \n*Required*: No \n*Type*: [EncryptionAtRestOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-encryptionatrestoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EngineVersion": "The version of OpenSearch to use\\. The value must be in the format `OpenSearch_X.Y` or `Elasticsearch_X.Y`\\. If not specified, the latest version of OpenSearch is used\\. For information about the versions that OpenSearch Service supports, see [Supported versions of OpenSearch and Elasticsearch](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/what-is.html#choosing-version) in the *Amazon OpenSearch Service Developer Guide*\\. \nIf you set the [EnableVersionUpgrade](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-upgradeopensearchdomain) update policy to `true`, you can update `EngineVersion` without interruption\\. When `EnableVersionUpgrade` is set to `false`, or is not specified, updating `EngineVersion` results in [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogPublishingOptions": "An object with one or more of the following keys: `SEARCH_SLOW_LOGS`, `ES_APPLICATION_LOGS`, `INDEX_SLOW_LOGS`, `AUDIT_LOGS`, depending on the types of logs you want to publish\\. Each key needs a valid `LogPublishingOption` value\\. For the full syntax, see the [examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html#aws-resource-opensearchservice-domain--examples)\\. \n*Required*: No \n*Type*: Map of [LogPublishingOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-logpublishingoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NodeToNodeEncryptionOptions": "Specifies whether node\\-to\\-node encryption is enabled\\. See [Node\\-to\\-node encryption for Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ntn.html)\\. \n*Required*: No \n*Type*: [NodeToNodeEncryptionOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-nodetonodeencryptionoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnapshotOptions": "**DEPRECATED**\\. The automated snapshot configuration for the OpenSearch Service domain indices\\. \n*Required*: No \n*Type*: [SnapshotOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-snapshotoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An arbitrary set of tags \\(key\u2013value pairs\\) to associate with the OpenSearch Service domain\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VPCOptions": "The virtual private cloud \\(VPC\\) configuration for the OpenSearch Service domain\\. For more information, see [Launching your Amazon OpenSearch Service domains within a VPC](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: [VPCOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-vpcoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpenSearchService::Domain AdvancedSecurityOptionsInput": { + "Enabled": "True to enable fine\\-grained access control\\. You must also enable encryption of data at rest and node\\-to\\-node encryption\\. See [Fine\\-grained access control in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InternalUserDatabaseEnabled": "True to enable the internal user database\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MasterUserOptions": "Specifies information about the master user\\. \n*Required*: No \n*Type*: [MasterUserOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-masteruseroptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::OpenSearchService::Domain ClusterConfig": { + "DedicatedMasterCount": "The number of instances to use for the master node\\. If you specify this property, you must specify `true` for the `DedicatedMasterEnabled` property\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DedicatedMasterEnabled": "Indicates whether to use a dedicated master node for the OpenSearch Service domain\\. A dedicated master node is a cluster node that performs cluster management tasks, but doesn't hold data or respond to data upload requests\\. Dedicated master nodes offload cluster management tasks to increase the stability of your search clusters\\. See [Dedicated master nodes in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-dedicatedmasternodes.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DedicatedMasterType": "The hardware configuration of the computer that hosts the dedicated master node, such as `m3.medium.search`\\. If you specify this property, you must specify `true` for the `DedicatedMasterEnabled` property\\. For valid values, see [Supported instance types in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceCount": "The number of data nodes \\(instances\\) to use in the OpenSearch Service domain\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceType": "The instance type for your data nodes, such as `m3.medium.search`\\. For valid values, see [Supported instance types in Amazon OpenSearch Service ](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WarmCount": "The number of warm nodes in the cluster\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WarmEnabled": "Whether to enable UltraWarm storage for the cluster\\. See [UltraWarm storage for Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ultrawarm.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WarmType": "The instance type for the cluster's warm nodes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ZoneAwarenessConfig": "Specifies zone awareness configuration options\\. Only use if `ZoneAwarenessEnabled` is `true`\\. \n*Required*: No \n*Type*: [ZoneAwarenessConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-zoneawarenessconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ZoneAwarenessEnabled": "Indicates whether to enable zone awareness for the OpenSearch Service domain\\. When you enable zone awareness, OpenSearch Service allocates the nodes and replica index shards that belong to a cluster across two Availability Zones \\(AZs\\) in the same region to prevent data loss and minimize downtime in the event of node or data center failure\\. Don't enable zone awareness if your cluster has no replica index shards or is a single\\-node cluster\\. For more information, see [Configuring a multi\\-AZ domain in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpenSearchService::Domain CognitoOptions": { + "Enabled": "Whether to enable or disable Amazon Cognito authentication for OpenSearch Dashboards\\. See [Amazon Cognito authentication for OpenSearch Dashboards](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/cognito-auth.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IdentityPoolId": "The Amazon Cognito identity pool ID that you want OpenSearch Service to use for OpenSearch Dashboards authentication\\. \nRequired if you enabled Cognito Authentication for OpenSearch Dashboards\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The `AmazonOpenSearchServiceCognitoAccess` role that allows OpenSearch Service to configure your user pool and identity pool\\. \nRequired if you enabled Cognito Authentication for OpenSearch Dashboards\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserPoolId": "The Amazon Cognito user pool ID that you want OpenSearch Service to use for OpenSearch Dashboards authentication\\. \nRequired if you enabled Cognito Authentication for OpenSearch Dashboards\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpenSearchService::Domain DomainEndpointOptions": { + "CustomEndpoint": "The fully qualified URL for your custom endpoint\\. Required if you enabled a custom endpoint for the domain\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomEndpointCertificateArn": "The AWS Certificate Manager ARN for your domain's SSL/TLS certificate\\. Required if you enabled a custom endpoint for the domain\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomEndpointEnabled": "True to enable a custom endpoint for the domain\\. If enabled, you must also provide values for `CustomEndpoint` and `CustomEndpointCertificateArn`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnforceHTTPS": "True to require that all traffic to the domain arrive over HTTPS\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TLSSecurityPolicy": "The minimum TLS version required for traffic to the domain\\. Valid values are TLS 1\\.0 \\(default\\) or 1\\.2: \n+ `Policy-Min-TLS-1-0-2019-07`\n+ `Policy-Min-TLS-1-2-2019-07`\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpenSearchService::Domain EBSOptions": { + "EBSEnabled": "Specifies whether Amazon EBS volumes are attached to data nodes in the OpenSearch Service domain\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Iops": "The number of I/O operations per second \\(IOPS\\) that the volume supports\\. This property applies only to the Provisioned IOPS \\(SSD\\) EBS volume type\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VolumeSize": "The size \\(in GiB\\) of the EBS volume for each data node\\. The minimum and maximum size of an EBS volume depends on the EBS volume type and the instance type to which it is attached\\. For more information, see [EBS volume size limits](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#ebsresource) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VolumeType": "The EBS volume type to use with the OpenSearch Service domain, such as standard, gp2, or io1\\. For more information about each type, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpenSearchService::Domain EncryptionAtRestOptions": { + "Enabled": "Specify `true` to enable encryption at rest\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKeyId": "The KMS key ID\\. Takes the form `1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a`\\. Required if you enable encryption at rest\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpenSearchService::Domain LogPublishingOption": { + "CloudWatchLogsLogGroupArn": "Specifies the CloudWatch log group to publish to\\. Required if you enable log publishing\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "If `true`, enables the publishing of logs to CloudWatch\\. \nDefault: `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpenSearchService::Domain MasterUserOptions": { + "MasterUserARN": "ARN for the master user\\. Only specify if `InternalUserDatabaseEnabled` is false in `AdvancedSecurityOptions`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MasterUserName": "Username for the master user\\. Only specify if `InternalUserDatabaseEnabled` is true in `AdvancedSecurityOptions`\\. If you don't want to specify this value directly within the template, you can use a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) instead\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MasterUserPassword": "Password for the master user\\. Only specify if `InternalUserDatabaseEnabled` is true in `AdvancedSecurityOptions`\\. If you don't want to specify this value directly within the template, you can use a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) instead\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::OpenSearchService::Domain NodeToNodeEncryptionOptions": { + "Enabled": "Specifies to enable or disable node\\-to\\-node encryption on the domain\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpenSearchService::Domain SnapshotOptions": { + "AutomatedSnapshotStartHour": "The hour in UTC during which the service takes an automated daily snapshot of the indices in the OpenSearch Service domain\\. For example, if you specify 0, OpenSearch Service takes an automated snapshot everyday between midnight and 1 am\\. You can specify a value between 0 and 23\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpenSearchService::Domain VPCOptions": { + "SecurityGroupIds": "The list of security group IDs that are associated with the VPC endpoints for the domain\\. If you don't provide a security group ID, OpenSearch Service uses the default security group for the VPC\\. To learn more, see [Security groups for your VPC ](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) in the *Amazon VPC User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetIds": "Provide one subnet ID for each Availability Zone that your domain uses\\. For example, you must specify three subnet IDs for a three Availability Zone domain\\. To learn more, see [VPCs and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html) in the *Amazon VPC User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpenSearchService::Domain ZoneAwarenessConfig": { + "AvailabilityZoneCount": "If you enabled multiple Availability Zones \\(AZs\\), the number of AZs that you want the domain to use\\. \nValid values are `2` and `3`\\. Default is 2\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::App": { + "AppSource": "A `Source` object that specifies the app repository\\. \n*Required*: No \n*Type*: [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source-1.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Attributes": "One or more user\\-defined key/value pairs to be added to the stack attributes\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataSources": "The app's data source\\. \n*Required*: No \n*Type*: List of [DataSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-datasource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the app\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Domains": "The app virtual host settings, with multiple domains separated by commas\\. For example: `'www.example.com, example.com'` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableSsl": "Whether to enable SSL for the app\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Environment": "An array of `EnvironmentVariable` objects that specify environment variables to be associated with the app\\. After you deploy the app, these variables are defined on the associated app server instance\\. For more information, see [ Environment Variables](https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html#workingapps-creating-environment)\\. \nThere is no specific limit on the number of environment variables\\. However, the size of the associated data structure \\- which includes the variables' names, values, and protected flag values \\- cannot exceed 20 KB\\. This limit should accommodate most if not all use cases\\. Exceeding it will cause an exception with the message, \"Environment: is too large \\(maximum is 20KB\\)\\.\" \nIf you have specified one or more environment variables, you cannot modify the stack's Chef version\\.\n*Required*: No \n*Type*: List of [EnvironmentVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-environment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The app name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Shortname": "The app's short name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SslConfiguration": "An `SslConfiguration` object with the SSL configuration\\. \n*Required*: No \n*Type*: [SslConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-sslconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StackId": "The stack ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "The app type\\. Each supported type is associated with a particular layer\\. For example, PHP applications are associated with a PHP layer\\. AWS OpsWorks Stacks deploys an application to those instances that are members of the corresponding layer\\. If your app isn't one of the standard types, or you prefer to implement your own Deploy recipes, specify `other`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `aws-flow-ruby | java | nodejs | other | php | rails | static` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::App DataSource": { + "Arn": "The data source's ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseName": "The database name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The data source's type, `AutoSelectOpsworksMysqlInstance`, `OpsworksMysqlInstance`, `RdsDbInstance`, or `None`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::App EnvironmentVariable": { + "Key": "\\(Required\\) The environment variable's name, which can consist of up to 64 characters and must be specified\\. The name can contain upper\\- and lowercase letters, numbers, and underscores \\(\\_\\), but it must start with a letter or underscore\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Secure": "\\(Optional\\) Whether the variable's value is returned by the [DescribeApps](https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeApps) action\\. To hide an environment variable's value, set `Secure` to `true`\\. `DescribeApps` returns `*****FILTERED*****` instead of the actual value\\. The default value for `Secure` is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "\\(Optional\\) The environment variable's value, which can be left empty\\. If you specify a value, it can contain up to 256 characters, which must all be printable\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::App Source": { + "Password": "When included in a request, the parameter depends on the repository type\\. \n+ For Amazon S3 bundles, set `Password` to the appropriate IAM secret access key\\.\n+ For HTTP bundles and Subversion repositories, set `Password` to the password\\.\nFor more information on how to safely handle IAM credentials, see [https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html)\\. \nIn responses, AWS OpsWorks Stacks returns `*****FILTERED*****` instead of the actual value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Revision": "The application's version\\. AWS OpsWorks Stacks enables you to easily deploy new versions of an application\\. One of the simplest approaches is to have branches or revisions in your repository that represent different versions that can potentially be deployed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SshKey": "In requests, the repository's SSH key\\. \nIn responses, AWS OpsWorks Stacks returns `*****FILTERED*****` instead of the actual value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The repository type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `archive | git | s3 | svn` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Url": "The source URL\\. The following is an example of an Amazon S3 source URL: `https://s3.amazonaws.com/opsworks-demo-bucket/opsworks_cookbook_demo.tar.gz`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Username": "This parameter depends on the repository type\\. \n+ For Amazon S3 bundles, set `Username` to the appropriate IAM access key ID\\.\n+ For HTTP bundles, Git repositories, and Subversion repositories, set `Username` to the user name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::App SslConfiguration": { + "Certificate": "The contents of the certificate's domain\\.crt file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Chain": "Optional\\. Can be used to specify an intermediate certificate authority key or client authentication\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrivateKey": "The private key; the contents of the certificate's domain\\.kex file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::ElasticLoadBalancerAttachment": { + "ElasticLoadBalancerName": "The Elastic Load Balancing instance name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LayerId": "The AWS OpsWorks layer ID to which the Elastic Load Balancing load balancer is attached\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::Instance": { + "AgentVersion": "The default AWS OpsWorks Stacks agent version\\. You have the following options: \n+ `INHERIT` \\- Use the stack's default agent version setting\\.\n+ *version\\_number* \\- Use the specified agent version\\. This value overrides the stack's default setting\\. To update the agent version, edit the instance configuration and specify a new version\\. AWS OpsWorks Stacks installs that version on the instance\\.\nThe default setting is `INHERIT`\\. To specify an agent version, you must use the complete version number, not the abbreviated number shown on the console\\. For a list of available agent version numbers, call [DescribeAgentVersions](https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeAgentVersions)\\. AgentVersion cannot be set to Chef 12\\.2\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AmiId": "A custom AMI ID to be used to create the instance\\. The AMI should be based on one of the supported operating systems\\. For more information, see [Using Custom AMIs](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html)\\. \nIf you specify a custom AMI, you must set `Os` to `Custom`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Architecture": "The instance architecture\\. The default option is `x86_64`\\. Instance types do not necessarily support both architectures\\. For a list of the architectures that are supported by the different instance types, see [Instance Families and Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `i386 | x86_64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutoScalingType": "For load\\-based or time\\-based instances, the type\\. Windows stacks can use only time\\-based instances\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `load | timer` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AvailabilityZone": "The Availability Zone of the AWS OpsWorks instance, such as `us-east-2a`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BlockDeviceMappings": "An array of `BlockDeviceMapping` objects that specify the instance's block devices\\. For more information, see [Block Device Mapping](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html)\\. Note that block device mappings are not supported for custom AMIs\\. \n*Required*: No \n*Type*: List of [BlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-blockdevicemapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EbsOptimized": "Whether to create an Amazon EBS\\-optimized instance\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ElasticIps": "A list of Elastic IP addresses to associate with the instance\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Hostname": "The instance host name\\. The following are character limits for instance host names\\. \n+ Linux\\-based instances: 63 characters\n+ Windows\\-based instances: 15 characters\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstallUpdatesOnBoot": "Whether to install operating system and package updates when the instance boots\\. The default value is `true`\\. To control when updates are installed, set this value to `false`\\. You must then update your instances manually by using [CreateDeployment](https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CreateDeployment) to run the `update_dependencies` stack command or by manually running `yum` \\(Amazon Linux\\) or `apt-get` \\(Ubuntu\\) on the instances\\. \nWe strongly recommend using the default value of `true` to ensure that your instances have the latest security updates\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceType": "The instance type, such as `t2.micro`\\. For a list of supported instance types, open the stack in the console, choose **Instances**, and choose **\\+ Instance**\\. The **Size** list contains the currently supported types\\. For more information, see [Instance Families and Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)\\. The parameter values that you use to specify the various types are in the **API Name** column of the **Available Instance Types** table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LayerIds": "An array that contains the instance's layer IDs\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Os": "The instance's operating system, which must be set to one of the following\\. \n+ A supported Linux operating system: An Amazon Linux version, such as `Amazon Linux 2`, `Amazon Linux 2018.03`, `Amazon Linux 2017.09`, `Amazon Linux 2017.03`, `Amazon Linux 2016.09`, `Amazon Linux 2016.03`, `Amazon Linux 2015.09`, or `Amazon Linux 2015.03`\\.\n+ A supported Ubuntu operating system, such as `Ubuntu 18.04 LTS`, `Ubuntu 16.04 LTS`, `Ubuntu 14.04 LTS`, or `Ubuntu 12.04 LTS`\\.\n+ `CentOS Linux 7` \n+ `Red Hat Enterprise Linux 7` \n+ A supported Windows operating system, such as `Microsoft Windows Server 2012 R2 Base`, `Microsoft Windows Server 2012 R2 with SQL Server Express`, `Microsoft Windows Server 2012 R2 with SQL Server Standard`, or `Microsoft Windows Server 2012 R2 with SQL Server Web`\\.\n+ A custom AMI: `Custom`\\.\nNot all operating systems are supported with all versions of Chef\\. For more information about the supported operating systems, see [AWS OpsWorks Stacks Operating Systems](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html)\\. \nThe default option is the current Amazon Linux version\\. If you set this parameter to `Custom`, you must use the [CreateInstance](https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CreateInstance) action's AmiId parameter to specify the custom AMI that you want to use\\. Block device mappings are not supported if the value is `Custom`\\. For more information about how to use custom AMIs with AWS OpsWorks Stacks, see [Using Custom AMIs](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RootDeviceType": "The instance root device type\\. For more information, see [Storage for the Root Device](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#storage-for-the-root-device)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ebs | instance-store` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SshKeyName": "The instance's Amazon EC2 key\\-pair name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StackId": "The stack ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetId": "The ID of the instance's subnet\\. If the stack is running in a VPC, you can use this parameter to override the stack's default subnet ID value and direct AWS OpsWorks Stacks to launch the instance in a different subnet\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tenancy": "The instance's tenancy option\\. The default option is no tenancy, or if the instance is running in a VPC, inherit tenancy settings from the VPC\\. The following are valid values for this parameter: `dedicated`, `default`, or `host`\\. Because there are costs associated with changes in tenancy options, we recommend that you research tenancy options before choosing them for your instances\\. For more information about dedicated hosts, see [Dedicated Hosts Overview](http://aws.amazon.com/ec2/dedicated-hosts/) and [Amazon EC2 Dedicated Hosts](http://aws.amazon.com/ec2/dedicated-hosts/)\\. For more information about dedicated instances, see [Dedicated Instances](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/dedicated-instance.html) and [Amazon EC2 Dedicated Instances](http://aws.amazon.com/ec2/purchasing-options/dedicated-instances/)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TimeBasedAutoScaling": "The time\\-based scaling configuration for the instance\\. \n*Required*: No \n*Type*: [TimeBasedAutoScaling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-timebasedautoscaling.html) \n*Allowed values*: `load | timer` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VirtualizationType": "The instance's virtualization type, `paravirtual` or `hvm`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Volumes": "A list of AWS OpsWorks volume IDs to associate with the instance\\. For more information, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-volume.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-volume.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::Instance BlockDeviceMapping": { + "DeviceName": "The device name that is exposed to the instance, such as `/dev/sdh`\\. For the root device, you can use the explicit device name or you can set this parameter to `ROOT_DEVICE` and AWS OpsWorks Stacks will provide the correct device name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Ebs": "An `EBSBlockDevice` that defines how to configure an Amazon EBS volume when the instance is launched\\. You can specify either the `VirtualName` or `Ebs`, but not both\\. \n*Required*: Conditional \n*Type*: [EbsBlockDevice](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-ebsblockdevice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NoDevice": "Suppresses the specified device included in the AMI's block device mapping\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VirtualName": "The virtual device name\\. For more information, see [BlockDeviceMapping](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_BlockDeviceMapping.html)\\. You can specify either the `VirtualName` or `Ebs`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::Instance EbsBlockDevice": { + "DeleteOnTermination": "Whether the volume is deleted on instance termination\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Iops": "The number of I/O operations per second \\(IOPS\\) that the volume supports\\. For more information, see [EbsBlockDevice](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EbsBlockDevice.html)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnapshotId": "The snapshot ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VolumeSize": "The volume size, in GiB\\. For more information, see [EbsBlockDevice](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EbsBlockDevice.html)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VolumeType": "The volume type\\. `gp2` for General Purpose \\(SSD\\) volumes, `io1` for Provisioned IOPS \\(SSD\\) volumes, `st1` for Throughput Optimized hard disk drives \\(HDD\\), `sc1` for Cold HDD,and `standard` for Magnetic volumes\\. \nIf you specify the `io1` volume type, you must also specify a value for the `Iops` attribute\\. The maximum ratio of provisioned IOPS to requested volume size \\(in GiB\\) is 50:1\\. AWS uses the default volume size \\(in GiB\\) specified in the AMI attributes to set IOPS to 50 x \\(volume size\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `gp2 | io1 | standard` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::Instance TimeBasedAutoScaling": { + "Friday": "The schedule for Friday\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Monday": "The schedule for Monday\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Saturday": "The schedule for Saturday\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Sunday": "The schedule for Sunday\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Thursday": "The schedule for Thursday\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tuesday": "The schedule for Tuesday\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Wednesday": "The schedule for Wednesday\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::Layer": { + "Attributes": "One or more user\\-defined key\\-value pairs to be added to the stack attributes\\. \nTo create a cluster layer, set the `EcsClusterArn` attribute to the cluster's ARN\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutoAssignElasticIps": "Whether to automatically assign an [Elastic IP address](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) to the layer's instances\\. For more information, see [How to Edit a Layer](https://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-basics-edit.html)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutoAssignPublicIps": "For stacks that are running in a VPC, whether to automatically assign a public IP address to the layer's instances\\. For more information, see [How to Edit a Layer](https://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-basics-edit.html)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomInstanceProfileArn": "The ARN of an IAM profile to be used for the layer's EC2 instances\\. For more information about IAM ARNs, see [Using Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomJson": "A JSON\\-formatted string containing custom stack configuration and deployment attributes to be installed on the layer's instances\\. For more information, see [ Using Custom JSON](https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-json-override.html)\\. This feature is supported as of version 1\\.7\\.42 of the AWS CLI\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomRecipes": "A `LayerCustomRecipes` object that specifies the layer custom recipes\\. \n*Required*: No \n*Type*: [Recipes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-recipes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomSecurityGroupIds": "An array containing the layer custom security group IDs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableAutoHealing": "Whether to disable auto healing for the layer\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstallUpdatesOnBoot": "Whether to install operating system and package updates when the instance boots\\. The default value is `true`\\. To control when updates are installed, set this value to `false`\\. You must then update your instances manually by using [CreateDeployment](https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CreateDeployment) to run the `update_dependencies` stack command or by manually running `yum` \\(Amazon Linux\\) or `apt-get` \\(Ubuntu\\) on the instances\\. \nTo ensure that your instances have the latest security updates, we strongly recommend using the default value of `true`\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LifecycleEventConfiguration": "A `LifeCycleEventConfiguration` object that you can use to configure the Shutdown event to specify an execution timeout and enable or disable Elastic Load Balancer connection draining\\. \n*Required*: No \n*Type*: [LifecycleEventConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-lifecycleeventconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoadBasedAutoScaling": "The load\\-based scaling configuration for the AWS OpsWorks layer\\. \n*Required*: No \n*Type*: [LoadBasedAutoScaling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The layer name, which is used by the console\\. Layer names can be a maximum of 32 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Packages": "An array of `Package` objects that describes the layer packages\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Shortname": "For custom layers only, use this parameter to specify the layer's short name, which is used internally by AWS OpsWorks Stacks and by Chef recipes\\. The short name is also used as the name for the directory where your app files are installed\\. It can have a maximum of 32 characters, which are limited to the alphanumeric characters, '\\-', '\\_', and '\\.'\\. \nBuilt\\-in layer short names are defined by AWS OpsWorks Stacks\\. For more information, see the [Layer Reference](https://docs.aws.amazon.com/opsworks/latest/userguide/layers.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StackId": "The layer stack ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Specifies one or more sets of tags \\(key\u2013value pairs\\) to associate with this AWS OpsWorks layer\\. Use tags to manage your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The layer type\\. A stack cannot have more than one built\\-in layer of the same type\\. It can have any number of custom layers\\. Built\\-in layers are not available in Chef 12 stacks\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `aws-flow-ruby | custom | db-master | ecs-cluster | java-app | lb | memcached | monitoring-master | nodejs-app | php-app | rails-app | web` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UseEbsOptimizedInstances": "Whether to use Amazon EBS\\-optimized instances\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VolumeConfigurations": "A `VolumeConfigurations` object that describes the layer's Amazon EBS volumes\\. \n*Required*: No \n*Type*: List of [VolumeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-volumeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::Layer AutoScalingThresholds": { + "CpuThreshold": "The CPU utilization threshold, as a percent of the available CPU\\. A value of \\-1 disables the threshold\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IgnoreMetricsTime": "The amount of time \\(in minutes\\) after a scaling event occurs that AWS OpsWorks Stacks should ignore metrics and suppress additional scaling events\\. For example, AWS OpsWorks Stacks adds new instances following an upscaling event but the instances won't start reducing the load until they have been booted and configured\\. There is no point in raising additional scaling events during that operation, which typically takes several minutes\\. `IgnoreMetricsTime` allows you to direct AWS OpsWorks Stacks to suppress scaling events long enough to get the new instances online\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceCount": "The number of instances to add or remove when the load exceeds a threshold\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoadThreshold": "The load threshold\\. A value of \\-1 disables the threshold\\. For more information about how load is computed, see [Load \\(computing\\)](http://en.wikipedia.org/wiki/Load_%28computing%29)\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MemoryThreshold": "The memory utilization threshold, as a percent of the available memory\\. A value of \\-1 disables the threshold\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThresholdsWaitTime": "The amount of time, in minutes, that the load must exceed a threshold before more instances are added or removed\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::Layer LifecycleEventConfiguration": { + "ShutdownEventConfiguration": "The Shutdown event configuration\\. \n*Required*: No \n*Type*: [ShutdownEventConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-lifecycleeventconfiguration-shutdowneventconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::Layer LoadBasedAutoScaling": { + "DownScaling": "An `AutoScalingThresholds` object that describes the downscaling configuration, which defines how and when AWS OpsWorks Stacks reduces the number of instances\\. \n*Required*: No \n*Type*: [AutoScalingThresholds](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling-autoscalingthresholds.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enable": "Whether load\\-based auto scaling is enabled for the layer\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UpScaling": "An `AutoScalingThresholds` object that describes the upscaling configuration, which defines how and when AWS OpsWorks Stacks increases the number of instances\\. \n*Required*: No \n*Type*: [AutoScalingThresholds](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling-autoscalingthresholds.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::Layer Recipes": { + "Configure": "An array of custom recipe names to be run following a `configure` event\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Deploy": "An array of custom recipe names to be run following a `deploy` event\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Setup": "An array of custom recipe names to be run following a `setup` event\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Shutdown": "An array of custom recipe names to be run following a `shutdown` event\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Undeploy": "An array of custom recipe names to be run following a `undeploy` event\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::Layer ShutdownEventConfiguration": { + "DelayUntilElbConnectionsDrained": "Whether to enable Elastic Load Balancing connection draining\\. For more information, see [Connection Draining](https://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/TerminologyandKeyConcepts.html#conn-drain) \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExecutionTimeout": "The time, in seconds, that AWS OpsWorks Stacks waits after triggering a Shutdown event before shutting down an instance\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::Layer VolumeConfiguration": { + "Encrypted": "Specifies whether an Amazon EBS volume is encrypted\\. For more information, see [Amazon EBS Encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Iops": "The number of I/O operations per second \\(IOPS\\) to provision for the volume\\. For PIOPS volumes, the IOPS per disk\\. \nIf you specify `io1` for the volume type, you must specify this property\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MountPoint": "The volume mount point\\. For example \"/dev/sdh\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumberOfDisks": "The number of disks in the volume\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RaidLevel": "The volume [RAID level](http://en.wikipedia.org/wiki/Standard_RAID_levels)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Size": "The volume size\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VolumeType": "The volume type\\. For more information, see [ Amazon EBS Volume Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)\\. \n+ `standard` \\- Magnetic\\. Magnetic volumes must have a minimum size of 1 GiB and a maximum size of 1024 GiB\\.\n+ `io1` \\- Provisioned IOPS \\(SSD\\)\\. PIOPS volumes must have a minimum size of 4 GiB and a maximum size of 16384 GiB\\.\n+ `gp2` \\- General Purpose \\(SSD\\)\\. General purpose volumes must have a minimum size of 1 GiB and a maximum size of 16384 GiB\\.\n+ `st1` \\- Throughput Optimized hard disk drive \\(HDD\\)\\. Throughput optimized HDD volumes must have a minimum size of 500 GiB and a maximum size of 16384 GiB\\.\n+ `sc1` \\- Cold HDD\\. Cold HDD volumes must have a minimum size of 500 GiB and a maximum size of 16384 GiB\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::Stack": { + "AgentVersion": "The default AWS OpsWorks Stacks agent version\\. You have the following options: \n+ Auto\\-update \\- Set this parameter to `LATEST`\\. AWS OpsWorks Stacks automatically installs new agent versions on the stack's instances as soon as they are available\\.\n+ Fixed version \\- Set this parameter to your preferred agent version\\. To update the agent version, you must edit the stack configuration and specify a new version\\. AWS OpsWorks Stacks installs that version on the stack's instances\\.\nThe default setting is the most recent release of the agent\\. To specify an agent version, you must use the complete version number, not the abbreviated number shown on the console\\. For a list of available agent version numbers, call [DescribeAgentVersions](https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeAgentVersions)\\. AgentVersion cannot be set to Chef 12\\.2\\. \nYou can also specify an agent version when you create or update an instance, which overrides the stack's default setting\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Attributes": "One or more user\\-defined key\\-value pairs to be added to the stack attributes\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ChefConfiguration": "A `ChefConfiguration` object that specifies whether to enable Berkshelf and the Berkshelf version on Chef 11\\.10 stacks\\. For more information, see [Create a New Stack](https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html)\\. \n*Required*: No \n*Type*: [ChefConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-chefconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CloneAppIds": "If you're cloning an AWS OpsWorks stack, a list of AWS OpsWorks application stack IDs from the source stack to include in the cloned stack\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ClonePermissions": "If you're cloning an AWS OpsWorks stack, indicates whether to clone the source stack's permissions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ConfigurationManager": "The configuration manager\\. When you create a stack we recommend that you use the configuration manager to specify the Chef version: 12, 11\\.10, or 11\\.4 for Linux stacks, or 12\\.2 for Windows stacks\\. The default value for Linux stacks is currently 12\\. \n*Required*: No \n*Type*: [StackConfigurationManager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-stackconfigmanager.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomCookbooksSource": "Contains the information required to retrieve an app or cookbook from a repository\\. For more information, see [Adding Apps](https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html) or [Cookbooks and Recipes](https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook.html)\\. \n*Required*: No \n*Type*: [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomJson": "A string that contains user\\-defined, custom JSON\\. It can be used to override the corresponding default stack configuration attribute values or to pass data to recipes\\. The string should be in the following format: \n `\"{\\\"key1\\\": \\\"value1\\\", \\\"key2\\\": \\\"value2\\\",...}\"` \nFor more information about custom JSON, see [Use Custom JSON to Modify the Stack Configuration Attributes](https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultAvailabilityZone": "The stack's default Availability Zone, which must be in the specified region\\. For more information, see [Regions and Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html)\\. If you also specify a value for `DefaultSubnetId`, the subnet must be in the same zone\\. For more information, see the `VpcId` parameter description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultInstanceProfileArn": "The Amazon Resource Name \\(ARN\\) of an IAM profile that is the default profile for all of the stack's EC2 instances\\. For more information about IAM ARNs, see [Using Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultOs": "The stack's default operating system, which is installed on every instance unless you specify a different operating system when you create the instance\\. You can specify one of the following\\. \n+ A supported Linux operating system: An Amazon Linux version, such as `Amazon Linux 2`, `Amazon Linux 2018.03`, `Amazon Linux 2017.09`, `Amazon Linux 2017.03`, `Amazon Linux 2016.09`, `Amazon Linux 2016.03`, `Amazon Linux 2015.09`, or `Amazon Linux 2015.03`\\.\n+ A supported Ubuntu operating system, such as `Ubuntu 18.04 LTS`, `Ubuntu 16.04 LTS`, `Ubuntu 14.04 LTS`, or `Ubuntu 12.04 LTS`\\.\n+ `CentOS Linux 7` \n+ `Red Hat Enterprise Linux 7` \n+ A supported Windows operating system, such as `Microsoft Windows Server 2012 R2 Base`, `Microsoft Windows Server 2012 R2 with SQL Server Express`, `Microsoft Windows Server 2012 R2 with SQL Server Standard`, or `Microsoft Windows Server 2012 R2 with SQL Server Web`\\.\n+ A custom AMI: `Custom`\\. You specify the custom AMI you want to use when you create instances\\. For more information, see [ Using Custom AMIs](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html)\\.\nThe default option is the current Amazon Linux version\\. Not all operating systems are supported with all versions of Chef\\. For more information about supported operating systems, see [AWS OpsWorks Stacks Operating Systems](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultRootDeviceType": "The default root device type\\. This value is the default for all instances in the stack, but you can override it when you create an instance\\. The default option is `instance-store`\\. For more information, see [Storage for the Root Device](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#storage-for-the-root-device)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ebs | instance-store` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultSshKeyName": "A default Amazon EC2 key pair name\\. The default value is none\\. If you specify a key pair name, AWS OpsWorks installs the public key on the instance and you can use the private key with an SSH client to log in to the instance\\. For more information, see [ Using SSH to Communicate with an Instance](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-ssh.html) and [ Managing SSH Access](https://docs.aws.amazon.com/opsworks/latest/userguide/security-ssh-access.html)\\. You can override this setting by specifying a different key pair, or no key pair, when you [ create an instance](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-add.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultSubnetId": "The stack's default subnet ID\\. All instances are launched into this subnet unless you specify another subnet ID when you create the instance\\. This parameter is required if you specify a value for the `VpcId` parameter\\. If you also specify a value for `DefaultAvailabilityZone`, the subnet must be in that zone\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EcsClusterArn": "The Amazon Resource Name \\(ARN\\) of the Amazon Elastic Container Service \\(Amazon ECS\\) cluster to register with the AWS OpsWorks stack\\. \nIf you specify a cluster that's registered with another AWS OpsWorks stack, AWS CloudFormation deregisters the existing association before registering the cluster\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ElasticIps": "A list of Elastic IP addresses to register with the AWS OpsWorks stack\\. \nIf you specify an IP address that's registered with another AWS OpsWorks stack, AWS CloudFormation deregisters the existing association before registering the IP address\\.\n*Required*: No \n*Type*: List of [ElasticIp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-elasticip.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HostnameTheme": "The stack's host name theme, with spaces replaced by underscores\\. The theme is used to generate host names for the stack's instances\\. By default, `HostnameTheme` is set to `Layer_Dependent`, which creates host names by appending integers to the layer's short name\\. The other themes are: \n+ `Baked_Goods` \n+ `Clouds` \n+ `Europe_Cities` \n+ `Fruits` \n+ `Greek_Deities_and_Titans` \n+ `Legendary_creatures_from_Japan` \n+ `Planets_and_Moons` \n+ `Roman_Deities` \n+ `Scottish_Islands` \n+ `US_Cities` \n+ `Wild_Cats` \nTo obtain a generated host name, call `GetHostNameSuggestion`, which returns a host name based on the current theme\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The stack name\\. Stack names can be a maximum of 64 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RdsDbInstances": "The Amazon Relational Database Service \\(Amazon RDS\\) database instance to register with the AWS OpsWorks stack\\. \nIf you specify a database instance that's registered with another AWS OpsWorks stack, AWS CloudFormation deregisters the existing association before registering the database instance\\.\n*Required*: No \n*Type*: List of [RdsDbInstance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-rdsdbinstance.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceRoleArn": "The stack's IAM role, which allows AWS OpsWorks Stacks to work with AWS resources on your behalf\\. You must set this parameter to the Amazon Resource Name \\(ARN\\) for an existing IAM role\\. For more information about IAM ARNs, see [Using Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceStackId": "If you're cloning an AWS OpsWorks stack, the stack ID of the source AWS OpsWorks stack to clone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A map that contains tag keys and tag values that are attached to a stack or layer\\. \n+ The key cannot be empty\\.\n+ The key can be a maximum of 127 characters, and can contain only Unicode letters, numbers, or separators, or the following special characters: `+ - = . _ : /` \n+ The value can be a maximum 255 characters, and contain only Unicode letters, numbers, or separators, or the following special characters: `+ - = . _ : /` \n+ Leading and trailing white spaces are trimmed from both the key and value\\.\n+ A maximum of 40 tags is allowed for any resource\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UseCustomCookbooks": "Whether the stack uses custom cookbooks\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UseOpsworksSecurityGroups": "Whether to associate the AWS OpsWorks Stacks built\\-in security groups with the stack's layers\\. \n AWS OpsWorks Stacks provides a standard set of built\\-in security groups, one for each layer, which are associated with layers by default\\. With `UseOpsworksSecurityGroups` you can instead provide your own custom security groups\\. `UseOpsworksSecurityGroups` has the following settings: \n+ True \\- AWS OpsWorks Stacks automatically associates the appropriate built\\-in security group with each layer \\(default setting\\)\\. You can associate additional security groups with a layer after you create it, but you cannot delete the built\\-in security group\\.\n+ False \\- AWS OpsWorks Stacks does not associate built\\-in security groups with layers\\. You must create appropriate EC2 security groups and associate a security group with each layer that you create\\. However, you can still manually associate a built\\-in security group with a layer on creation; custom security groups are required only for those layers that need custom settings\\.\nFor more information, see [Create a New Stack](https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcId": "The ID of the VPC that the stack is to be launched into\\. The VPC must be in the stack's region\\. All instances are launched into this VPC\\. You cannot change the ID later\\. \n+ If your account supports EC2\\-Classic, the default value is `no VPC`\\.\n+ If your account does not support EC2\\-Classic, the default value is the default VPC for the specified region\\.\nIf the VPC ID corresponds to a default VPC and you have specified either the `DefaultAvailabilityZone` or the `DefaultSubnetId` parameter only, AWS OpsWorks Stacks infers the value of the other parameter\\. If you specify neither parameter, AWS OpsWorks Stacks sets these parameters to the first valid Availability Zone for the specified region and the corresponding default VPC subnet ID, respectively\\. \nIf you specify a nondefault VPC ID, note the following: \n+ It must belong to a VPC in your account that is in the specified region\\.\n+ You must specify a value for `DefaultSubnetId`\\.\nFor more information about how to use AWS OpsWorks Stacks with a VPC, see [Running a Stack in a VPC](https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-vpc.html)\\. For more information about default VPC and EC2\\-Classic, see [Supported Platforms](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::OpsWorks::Stack ChefConfiguration": { + "BerkshelfVersion": "The Berkshelf version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ManageBerkshelf": "Whether to enable Berkshelf\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::Stack ElasticIp": { + "Ip": "The IP address\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name, which can be a maximum of 32 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::Stack RdsDbInstance": { + "DbPassword": "AWS OpsWorks Stacks returns `*****FILTERED*****` instead of the actual value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DbUser": "The master user name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RdsDbInstanceArn": "The instance's ARN\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::Stack Source": { + "Password": "When included in a request, the parameter depends on the repository type\\. \n+ For Amazon S3 bundles, set `Password` to the appropriate IAM secret access key\\.\n+ For HTTP bundles and Subversion repositories, set `Password` to the password\\.\nFor more information on how to safely handle IAM credentials, see [https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html)\\. \nIn responses, AWS OpsWorks Stacks returns `*****FILTERED*****` instead of the actual value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Revision": "The application's version\\. AWS OpsWorks Stacks enables you to easily deploy new versions of an application\\. One of the simplest approaches is to have branches or revisions in your repository that represent different versions that can potentially be deployed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SshKey": "The repository's SSH key\\. For more information, see [Using Git Repository SSH Keys](https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-deploykeys.html) in the *AWS OpsWorks User Guide*\\. To pass in an SSH key as a parameter, see the following example: \n `\"Parameters\" : { \"GitSSHKey\" : { \"Description\" : \"Change SSH key newlines to commas.\", \"Type\" : \"CommaDelimitedList\", \"NoEcho\" : \"true\" }, ... \"CustomCookbooksSource\": { \"Revision\" : { \"Ref\": \"GitRevision\"}, \"SshKey\" : { \"Fn::Join\" : [ \"\\n\", { \"Ref\": \"GitSSHKey\"} ] }, \"Type\": \"git\", \"Url\": { \"Ref\": \"GitURL\"} } ...` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The repository type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `archive | git | s3 | svn` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Url": "The source URL\\. The following is an example of an Amazon S3 source URL: `https://s3.amazonaws.com/opsworks-demo-bucket/opsworks_cookbook_demo.tar.gz`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Username": "This parameter depends on the repository type\\. \n+ For Amazon S3 bundles, set `Username` to the appropriate IAM access key ID\\.\n+ For HTTP bundles, Git repositories, and Subversion repositories, set `Username` to the user name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::Stack StackConfigurationManager": { + "Name": "The name\\. This parameter must be set to `Chef`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "The Chef version\\. This parameter must be set to 12, 11\\.10, or 11\\.4 for Linux stacks, and to 12\\.2 for Windows stacks\\. The default value for Linux stacks is 12\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::UserProfile": { + "AllowSelfManagement": "Whether users can specify their own SSH public key through the My Settings page\\. For more information, see [Managing User Permissions](https://docs.aws.amazon.com/opsworks/latest/userguide/security-settingsshkey.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IamUserArn": "The user's IAM ARN\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SshPublicKey": "The user's SSH public key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SshUsername": "The user's SSH user name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorks::Volume": { + "Ec2VolumeId": "The Amazon EC2 volume ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MountPoint": "The volume mount point\\. For example, \"/mnt/disk1\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The volume name\\. Volume names are a maximum of 128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StackId": "The stack ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::OpsWorksCM::Server": { + "AssociatePublicIpAddress": "Associate a public IP address with a server that you are launching\\. Valid values are `true` or `false`\\. The default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BackupId": "If you specify this field, AWS OpsWorks CM creates the server by using the backup represented by BackupId\\. \n*Required*: No \n*Type*: String \n*Maximum*: `79` \n*Pattern*: `[a-zA-Z][a-zA-Z0-9\\-\\.\\:]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BackupRetentionCount": "The number of automated backups that you want to keep\\. Whenever a new backup is created, AWS OpsWorks CM deletes the oldest backups if this number is exceeded\\. The default value is `1`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomCertificate": "Supported on servers running Chef Automate 2\\.0 only\\. A PEM\\-formatted HTTPS certificate\\. The value can be be a single, self\\-signed certificate, or a certificate chain\\. If you specify a custom certificate, you must also specify values for `CustomDomain` and `CustomPrivateKey`\\. The following are requirements for the `CustomCertificate` value: \n+ You can provide either a self\\-signed, custom certificate, or the full certificate chain\\.\n+ The certificate must be a valid X509 certificate, or a certificate chain in PEM format\\.\n+ The certificate must be valid at the time of upload\\. A certificate can't be used before its validity period begins \\(the certificate's `NotBefore` date\\), or after it expires \\(the certificate's `NotAfter` date\\)\\.\n+ The certificate\u2019s common name or subject alternative names \\(SANs\\), if present, must match the value of `CustomDomain`\\.\n+ The certificate must match the value of `CustomPrivateKey`\\.\n*Required*: No \n*Type*: String \n*Maximum*: `2097152` \n*Pattern*: `(?s)\\s*-----BEGIN CERTIFICATE-----.+-----END CERTIFICATE-----\\s*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CustomDomain": "Supported on servers running Chef Automate 2\\.0 only\\. An optional public endpoint of a server, such as `https://aws.my-company.com`\\. To access the server, create a CNAME DNS record in your preferred DNS service that points the custom domain to the endpoint that is generated when the server is created \\(the value of the CreateServer Endpoint attribute\\)\\. You cannot access the server by using the generated `Endpoint` value if the server is using a custom domain\\. If you specify a custom domain, you must also specify values for `CustomCertificate` and `CustomPrivateKey`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `253` \n*Pattern*: `^(((?!-)[A-Za-z0-9-]{0,62}[A-Za-z0-9])\\.)+((?!-)[A-Za-z0-9-]{1,62}[A-Za-z0-9])$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CustomPrivateKey": "Supported on servers running Chef Automate 2\\.0 only\\. A private key in PEM format for connecting to the server by using HTTPS\\. The private key must not be encrypted; it cannot be protected by a password or passphrase\\. If you specify a custom private key, you must also specify values for `CustomDomain` and `CustomCertificate`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `(?ms)\\s*^-----BEGIN (?-s:.*)PRIVATE KEY-----$.*?^-----END (?-s:.*)PRIVATE KEY-----$\\s*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DisableAutomatedBackup": "Enable or disable scheduled backups\\. Valid values are `true` or `false`\\. The default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Engine": "The configuration management engine to use\\. Valid values include `ChefAutomate` and `Puppet`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `(?s).*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EngineAttributes": "Optional engine attributes on a specified server\\.", + "EngineModel": "The engine model of the server\\. Valid values in this release include `Monolithic` for Puppet and `Single` for Chef\\. \n*Required*: No \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `(?s).*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EngineVersion": "The major release version of the engine that you want to use\\. For a Chef server, the valid value for EngineVersion is currently `2`\\. For a Puppet server, valid values are `2019` or `2017`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `(?s).*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceProfileArn": "The ARN of the instance profile that your Amazon EC2 instances use\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `arn:aws:iam::[0-9]{12}:instance-profile/.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceType": "The Amazon EC2 instance type to use\\. For example, `m5.large`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `(?s).*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KeyPair": "The Amazon EC2 key pair to set for the instance\\. This parameter is optional; if desired, you may specify this parameter to connect to your instances by using SSH\\. \n*Required*: No \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PreferredBackupWindow": "The start time for a one\\-hour period during which AWS OpsWorks CM backs up application\\-level data on your server if automated backups are enabled\\. Valid values must be specified in one of the following formats: \n+ `HH:MM` for daily backups\n+ `DDD:HH:MM` for weekly backups\n `MM` must be specified as `00`\\. The specified time is in coordinated universal time \\(UTC\\)\\. The default value is a random, daily start time\\. \n **Example:** `08:00`, which represents a daily start time of 08:00 UTC\\. \n **Example:** `Mon:08:00`, which represents a start time of every Monday at 08:00 UTC\\. \\(8:00 a\\.m\\.\\) \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreferredMaintenanceWindow": "The start time for a one\\-hour period each week during which AWS OpsWorks CM performs maintenance on the instance\\. Valid values must be specified in the following format: `DDD:HH:MM`\\. `MM` must be specified as `00`\\. The specified time is in coordinated universal time \\(UTC\\)\\. The default value is a random one\\-hour period on Tuesday, Wednesday, or Friday\\. See `TimeWindowDefinition` for more information\\. \n **Example:** `Mon:08:00`, which represents a start time of every Monday at 08:00 UTC\\. \\(8:00 a\\.m\\.\\) \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroupIds": "A list of security group IDs to attach to the Amazon EC2 instance\\. If you add this parameter, the specified security groups must be within the VPC that is specified by `SubnetIds`\\. \n If you do not specify this parameter, AWS OpsWorks CM creates one new security group that uses TCP ports 22 and 443, open to 0\\.0\\.0\\.0/0 \\(everyone\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ServerName": "The name of the server\\. The server name must be unique within your AWS account, within each region\\. Server names must start with a letter; then letters, numbers, or hyphens \\(\\-\\) are allowed, up to a maximum of 40 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `40` \n*Pattern*: `[a-zA-Z][a-zA-Z0-9\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ServiceRoleArn": "The service role that the AWS OpsWorks CM service backend uses to work with your account\\. Although the AWS OpsWorks management console typically creates the service role for you, if you are using the AWS CLI or API commands, run the service\\-role\\-creation\\.yaml AWS CloudFormation template, located at https://s3\\.amazonaws\\.com/opsworks\\-cm\\-us\\-east\\-1\\-prod\\-default\\-assets/misc/opsworks\\-cm\\-roles\\.yaml\\. This template creates a CloudFormation stack that includes the service role and instance profile that you need\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `arn:aws:iam::[0-9]{12}:role/.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetIds": "The IDs of subnets in which to launch the server EC2 instance\\. \n Amazon EC2\\-Classic customers: This field is required\\. All servers must run within a VPC\\. The VPC must have \"Auto Assign Public IP\" enabled\\. \n EC2\\-VPC customers: This field is optional\\. If you do not specify subnet IDs, your EC2 instances are created in a default subnet that is selected by Amazon EC2\\. If you specify subnet IDs, the VPC must have \"Auto Assign Public IP\" enabled\\. \nFor more information about supported Amazon EC2 platforms, see [Supported Platforms](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A map that contains tag keys and tag values to attach to an AWS OpsWorks for Chef Automate or OpsWorks for Puppet Enterprise server\\. \n+ The key cannot be empty\\.\n+ The key can be a maximum of 127 characters, and can contain only Unicode letters, numbers, or separators, or the following special characters: `+ - = . _ : / @` \n+ The value can be a maximum 255 characters, and contain only Unicode letters, numbers, or separators, or the following special characters: `+ - = . _ : / @` \n+ Leading and trailing spaces are trimmed from both the key and value\\.\n+ A maximum of 50 user\\-applied tags is allowed for any AWS OpsWorks CM server\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::OpsWorksCM::Server EngineAttribute": { + "Name": "The name of the engine attribute\\. \n **Attribute name for Chef Automate servers:** \n+ `CHEF_AUTOMATE_ADMIN_PASSWORD` \n **Attribute names for Puppet Enterprise servers:** \n+ `PUPPET_ADMIN_PASSWORD` \n+ `PUPPET_R10K_REMOTE` \n+ `PUPPET_R10K_PRIVATE_KEY` \n*Required*: No \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `(?s).*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of the engine attribute\\. \n **Attribute value for Chef Automate servers:** \n+ `CHEF_AUTOMATE_PIVOTAL_KEY`: A base64\\-encoded RSA public key\\. The corresponding private key is required to access the Chef API\\. You can generate this key by running the following [OpenSSL](https://www.openssl.org/) command on Linux\\-based computers\\." + }, + "AWS::Panorama::ApplicationInstance": { + "ApplicationInstanceIdToReplace": "The ID of an application instance to replace with the new instance\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9\\-\\_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DefaultRuntimeContextDevice": "The device's ID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9\\-\\_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "A description for the application instance\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `255` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DeviceId": "A device's ID\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9\\-\\_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ManifestOverridesPayload": "Setting overrides for the application manifest\\. \n*Required*: No \n*Type*: [ManifestOverridesPayload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-panorama-applicationinstance-manifestoverridespayload.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ManifestPayload": "The application's manifest document\\. \n*Required*: Yes \n*Type*: [ManifestPayload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-panorama-applicationinstance-manifestpayload.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "A name for the application instance\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9\\-\\_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RuntimeRoleArn": "The ARN of a runtime role for the application instance\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `arn:[a-z0-9][-.a-z0-9]{0,62}:iam::[0-9]{12}:role/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StatusFilter": "Only include instances with a specific status\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DEPLOYMENT_ERROR | DEPLOYMENT_SUCCEEDED | PROCESSING_DEPLOYMENT | PROCESSING_REMOVAL | REMOVAL_FAILED | REMOVAL_SUCCEEDED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Tags for the application instance\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Panorama::ApplicationInstance ManifestOverridesPayload": { + "PayloadData": "The overrides document\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `51200` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Panorama::ApplicationInstance ManifestPayload": { + "PayloadData": "The application manifest\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `51200` \n*Pattern*: `.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Panorama::Package": { + "PackageName": "A name for the package\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9\\-\\_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Tags for the package\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Panorama::PackageVersion": { + "MarkLatest": "Whether to mark the new version as the latest version\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OwnerAccount": "An owner account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `12` \n*Pattern*: `[0-9a-z\\_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PackageId": "A package ID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9\\-\\_\\/]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PackageVersion": "A package version\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `([0-9]+)\\.([0-9]+)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PatchVersion": "A patch version\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UpdatedLatestPatchVersion": "If the version was marked latest, the new version to maker as latest\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-z0-9]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Personalize::Dataset": { + "DatasetGroupArn": "The Amazon Resource Name \\(ARN\\) of the dataset group\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):personalize:.*:.*:.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DatasetImportJob": "Describes a job that imports training data from a data source \\(Amazon S3 bucket\\) to an Amazon Personalize dataset\\. \n*Required*: No \n*Type*: [DatasetImportJob](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-personalize-dataset-datasetimportjob.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatasetType": "One of the following values: \n+ Interactions\n+ Items\n+ Users\n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the dataset\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9\\-_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SchemaArn": "The ARN of the associated schema\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):personalize:.*:.*:.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Personalize::Dataset DatasetImportJob": { + "DataSource": "The Amazon S3 bucket that contains the training data to import\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatasetArn": "The Amazon Resource Name \\(ARN\\) of the dataset that receives the imported data\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):personalize:.*:.*:.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatasetImportJobArn": "The ARN of the dataset import job\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):personalize:.*:.*:.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JobName": "The name of the import job\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9\\-_]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the IAM role that has permissions to read from the Amazon S3 data source\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):personalize:.*:.*:.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Personalize::DatasetGroup": { + "Domain": "The domain of a Domain dataset group\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ECOMMERCE | VIDEO_ON_DEMAND` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KmsKeyArn": "The Amazon Resource Name \\(ARN\\) of the AWS Key Management Service \\(KMS\\) key used to encrypt the datasets\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `arn:aws.*:kms:.*:[0-9]{12}:key/.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the dataset group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9\\-_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RoleArn": "The ARN of the IAM role that has permissions to create the dataset group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Personalize::Schema": { + "Domain": "The domain of a schema that you created for a dataset in a Domain dataset group\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ECOMMERCE | VIDEO_ON_DEMAND` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the schema\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9\\-_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Schema": "The schema\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `10000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Personalize::Solution": { + "DatasetGroupArn": "The Amazon Resource Name \\(ARN\\) of the dataset group that provides the training data\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):personalize:.*:.*:.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EventType": "The event type \\(for example, 'click' or 'like'\\) that is used for training the model\\. If no `eventType` is provided, Amazon Personalize uses all interactions for training with equal weight regardless of type\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the solution\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9\\-_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PerformAutoML": "When true, Amazon Personalize performs a search for the best USER\\_PERSONALIZATION recipe from the list specified in the solution configuration \\(`recipeArn` must not be specified\\)\\. When false \\(the default\\), Amazon Personalize uses `recipeArn` for training\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PerformHPO": "Whether to perform hyperparameter optimization \\(HPO\\) on the chosen recipe\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RecipeArn": "The ARN of the recipe used to create the solution\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):personalize:.*:.*:.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SolutionConfig": "Describes the configuration properties for the solution\\. \n*Required*: No \n*Type*: [SolutionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-personalize-solution-solutionconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Personalize::Solution SolutionConfig": { + "AlgorithmHyperParameters": "Lists the hyperparameter names and ranges\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AutoMLConfig": "The [AutoMLConfig](https://docs.aws.amazon.com/personalize/latest/dg/API_AutoMLConfig.html) object containing a list of recipes to search when AutoML is performed\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EventValueThreshold": "Only events with a value greater than or equal to this threshold are used for training a model\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FeatureTransformationParameters": "Lists the feature transformation parameters\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "HpoConfig": "Describes the properties for hyperparameter optimization \\(HPO\\)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Pinpoint::ADMChannel": { + "ApplicationId": "The unique identifier for the Amazon Pinpoint application that the ADM channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ClientId": "The Client ID that you received from Amazon to send messages by using ADM\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientSecret": "The Client Secret that you received from Amazon to send messages by using ADM\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Specifies whether to enable the ADM channel for the application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::APNSChannel": { + "ApplicationId": "The unique identifier for the Amazon Pinpoint application that the APNs channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BundleId": "The bundle identifier that's assigned to your iOS app\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Certificate": "The APNs client certificate that you received from Apple\\. Specify this value if you want Amazon Pinpoint to communicate with APNs by using an APNs certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultAuthenticationMethod": "The default authentication method that you want Amazon Pinpoint to use when authenticating with APNs\\. Valid options are `key` or `certificate`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Specifies whether to enable the APNs channel for the application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrivateKey": "The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with APNs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TeamId": "The identifier that's assigned to your Apple Developer Account team\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TokenKey": "The authentication key to use for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TokenKeyId": "The key identifier that's assigned to your APNs signing key\\. Specify this value if you want Amazon Pinpoint to communicate with APNs by using APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::APNSSandboxChannel": { + "ApplicationId": "The unique identifier for the Amazon Pinpoint application that the APNs sandbox channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BundleId": "The bundle identifier that's assigned to your iOS app\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Certificate": "The APNs client certificate that you received from Apple\\. Specify this value if you want Amazon Pinpoint to communicate with APNs by using an APNs certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultAuthenticationMethod": "The default authentication method that you want Amazon Pinpoint to use when authenticating with APNs\\. Valid options are `key` or `certificate`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Specifies whether to enable the APNs Sandbox channel for the Amazon Pinpoint application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrivateKey": "The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with APNs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TeamId": "The identifier that's assigned to your Apple Developer Account team\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TokenKey": "The authentication key to use for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TokenKeyId": "The key identifier that's assigned to your APNs signing key\\. Specify this value if you want Amazon Pinpoint to communicate with APNs by using APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::APNSVoipChannel": { + "ApplicationId": "The unique identifier for the Amazon Pinpoint application that the APNs VoIP channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BundleId": "The bundle identifier that's assigned to your iOS app\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Certificate": "The APNs client certificate that you received from Apple\\. Specify this value if you want Amazon Pinpoint to communicate with APNs by using an APNs certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultAuthenticationMethod": "The default authentication method that you want Amazon Pinpoint to use when authenticating with APNs\\. Valid options are `key` or `certificate`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Specifies whether to enable the APNs VoIP channel for the Amazon Pinpoint application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrivateKey": "The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with APNs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TeamId": "The identifier that's assigned to your Apple Developer Account team\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TokenKey": "The authentication key to use for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TokenKeyId": "The key identifier that's assigned to your APNs signing key\\. Specify this value if you want Amazon Pinpoint to communicate with APNs by using APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::APNSVoipSandboxChannel": { + "ApplicationId": "The unique identifier for the application that the APNs VoIP sandbox channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BundleId": "The bundle identifier that's assigned to your iOS app\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Certificate": "The APNs client certificate that you received from Apple\\. Specify this value if you want Amazon Pinpoint to communicate with the APNs sandbox environment by using an APNs certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultAuthenticationMethod": "The default authentication method that you want Amazon Pinpoint to use when authenticating with APNs\\. Valid options are `key` or `certificate`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Specifies whether the APNs VoIP sandbox channel is enabled for the application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrivateKey": "The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with the APNs sandbox environment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TeamId": "The identifier that's assigned to your Apple developer account team\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TokenKey": "The authentication key to use for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TokenKeyId": "The key identifier that's assigned to your APNs signing key\\. Specify this value if you want Amazon Pinpoint to communicate with the APNs sandbox environment by using APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::App": { + "Name": "The display name of the application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::ApplicationSettings": { + "ApplicationId": "The unique identifier for the Amazon Pinpoint application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CampaignHook": "The settings for the Lambda function to use by default as a code hook for campaigns in the application\\. To override these settings for a specific campaign, use the Campaign resource to define custom Lambda function settings for the campaign\\. \n*Required*: No \n*Type*: [CampaignHook](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-applicationsettings-campaignhook.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CloudWatchMetricsEnabled": "Specifies whether to enable application\\-related alarms in Amazon CloudWatch\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Limits": "The default sending limits for campaigns in the application\\. To override these limits for a specific campaign, use the Campaign resource to define custom limits for the campaign\\. \n*Required*: No \n*Type*: [Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-applicationsettings-limits.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QuietTime": "The default quiet time for campaigns in the application\\. Quiet time is a specific time range when campaigns don't send messages to endpoints, if all the following conditions are met: \n\\- The `EndpointDemographic.Timezone` property of the endpoint is set to a valid value\\. \n\\- The current time in the endpoint's time zone is later than or equal to the time specified by the `QuietTime.Start` property for the application \\(or a campaign that has custom quiet time settings\\)\\. \n\\- The current time in the endpoint's time zone is earlier than or equal to the time specified by the `QuietTime.End` property for the application \\(or a campaign that has custom quiet time settings\\)\\. \nIf any of the preceding conditions isn't met, the endpoint will receive messages from a campaign, even if quiet time is enabled\\. \nTo override the default quiet time settings for a specific campaign, use the Campaign resource to define a custom quiet time for the campaign\\. \n*Required*: No \n*Type*: [QuietTime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-applicationsettings-quiettime.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::ApplicationSettings CampaignHook": { + "LambdaFunctionName": "The name or Amazon Resource Name \\(ARN\\) of the Lambda function that Amazon Pinpoint invokes to send messages for campaigns in the application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Mode": "The mode that Amazon Pinpoint uses to invoke the Lambda function\\. Possible values are: \n+ `FILTER` \\- Invoke the function to customize the segment that's used by a campaign\\.\n+ `DELIVERY` \\- \\(Deprecated\\) Previously, invoked the function to send a campaign through a custom channel\\. This functionality is not supported anymore\\. To send a campaign through a custom channel, use the `CustomDeliveryConfiguration` and `CampaignCustomMessage` objects of the campaign\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WebUrl": "The web URL that Amazon Pinpoint calls to invoke the Lambda function over HTTPS\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::ApplicationSettings Limits": { + "Daily": "The maximum number of messages that a campaign can send to a single endpoint during a 24\\-hour period\\. The maximum value is 100\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaximumDuration": "The maximum amount of time, in seconds, that a campaign can attempt to deliver a message after the scheduled start time for the campaign\\. The minimum value is 60 seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MessagesPerSecond": "The maximum number of messages that a campaign can send each second\\. The minimum value is 50\\. The maximum value is 20,000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Total": "The maximum number of messages that a campaign can send to a single endpoint during the course of the campaign\\. The maximum value is 100\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::ApplicationSettings QuietTime": { + "End": "The specific time when quiet time ends\\. This value has to use 24\\-hour notation and be in HH:MM format, where HH is the hour \\(with a leading zero, if applicable\\) and MM is the minutes\\. For example, use `02:30` to represent 2:30 AM, or `14:30` to represent 2:30 PM\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Start": "The specific time when quiet time begins\\. This value has to use 24\\-hour notation and be in HH:MM format, where HH is the hour \\(with a leading zero, if applicable\\) and MM is the minutes\\. For example, use `02:30` to represent 2:30 AM, or `14:30` to represent 2:30 PM\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::BaiduChannel": { + "ApiKey": "The API key that you received from the Baidu Cloud Push service to communicate with the service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ApplicationId": "The unique identifier for the Amazon Pinpoint application that you're configuring the Baidu channel for\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Enabled": "Specifies whether to enable the Baidu channel for the application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretKey": "The secret key that you received from the Baidu Cloud Push service to communicate with the service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Campaign": { + "AdditionalTreatments": "An array of requests that defines additional treatments for the campaign, in addition to the default treatment for the campaign\\. \n*Required*: No \n*Type*: List of [WriteTreatmentResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-writetreatmentresource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ApplicationId": "The unique identifier for the Amazon Pinpoint application that the campaign is associated with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CampaignHook": "Specifies the Lambda function to use as a code hook for a campaign\\. \n*Required*: No \n*Type*: [CampaignHook](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaignhook.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A custom description of the campaign\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HoldoutPercent": "The allocated percentage of users \\(segment members\\) who shouldn't receive messages from the campaign\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IsPaused": "Specifies whether to pause the campaign\\. A paused campaign doesn't run unless you resume it by changing this value to `false`\\. If you restart a campaign, the campaign restarts from the beginning and not at the point you paused it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Limits": "The messaging limits for the campaign\\. \n*Required*: No \n*Type*: [Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-limits.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MessageConfiguration": "The message configuration settings for the campaign\\. \n*Required*: Yes \n*Type*: [MessageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-messageconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the campaign\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Priority": "An integer between 1 and 5, inclusive, that represents the priority of the in\\-app message campaign, where 1 is the highest priority and 5 is the lowest\\. If there are multiple messages scheduled to be displayed at the same time, the priority determines the order in which those messages are displayed\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Schedule": "The schedule settings for the campaign\\. \n*Required*: Yes \n*Type*: [Schedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-schedule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentId": "The unique identifier for the segment to associate with the campaign\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentVersion": "The version of the segment to associate with the campaign\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TreatmentDescription": "A custom description of the default treatment for the campaign\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TreatmentName": "A custom name of the default treatment for the campaign, if the campaign has multiple treatments\\. A *treatment* is a variation of a campaign that's used for A/B testing\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Campaign AttributeDimension": { + "AttributeType": "The type of segment dimension to use\\. Valid values are: \n+ `INCLUSIVE` \u2013 endpoints that have attributes matching the values are included in the segment\\.\n+ `EXCLUSIVE` \u2013 endpoints that have attributes matching the values are excluded from the segment\\.\n+ `CONTAINS` \u2013 endpoints that have attributes' substrings match the values are included in the segment\\.\n+ `BEFORE` \u2013 endpoints with attributes read as ISO\\_INSTANT datetimes before the value are included in the segment\\.\n+ `AFTER` \u2013 endpoints with attributes read as ISO\\_INSTANT datetimes after the value are included in the segment\\.\n+ `BETWEEN` \u2013 endpoints with attributes read as ISO\\_INSTANT datetimes between the values are included in the segment\\.\n+ `ON` \u2013 endpoints with attributes read as ISO\\_INSTANT dates on the value are included in the segment\\. Time is ignored in this comparison\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "The criteria values to use for the segment dimension\\. Depending on the value of the `AttributeType` property, endpoints are included or excluded from the segment if their attribute values match the criteria values\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Campaign CampaignEmailMessage": { + "Body": "The body of the email for recipients whose email clients don't render HTML content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FromAddress": "The verified email address to send the email from\\. The default address is the `FromAddress` specified for the email channel for the application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HtmlBody": "The body of the email, in HTML format, for recipients whose email clients render HTML content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Title": "The subject line, or title, of the email\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Campaign CampaignEventFilter": { + "Dimensions": "The dimension settings of the event filter for the campaign\\. \n*Required*: No \n*Type*: [EventDimensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-eventdimensions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FilterType": "The type of event that causes the campaign to be sent\\. Valid values are: `SYSTEM`, sends the campaign when a system event occurs; and, `ENDPOINT`, sends the campaign when an endpoint event \\(Events resource\\) occurs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Campaign CampaignHook": { + "LambdaFunctionName": "The name or Amazon Resource Name \\(ARN\\) of the Lambda function that Amazon Pinpoint invokes to customize a segment for a campaign\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Mode": "The mode that Amazon Pinpoint uses to invoke the Lambda function\\. Possible values are: \n+ `FILTER` \\- Invoke the function to customize the segment that's used by a campaign\\.\n+ `DELIVERY` \\- \\(Deprecated\\) Previously, invoked the function to send a campaign through a custom channel\\. This functionality is not supported anymore\\. To send a campaign through a custom channel, use the `CustomDeliveryConfiguration` and `CampaignCustomMessage` objects of the campaign\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WebUrl": "The web URL that Amazon Pinpoint calls to invoke the Lambda function over HTTPS\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Campaign CampaignInAppMessage": { + "Content": "An array that contains configurtion information about the in\\-app message for the campaign, including title and body text, text colors, background colors, image URLs, and button configurations\\. \n*Required*: No \n*Type*: List of [InAppMessageContent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagecontent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomConfig": "Custom data, in the form of key\\-value pairs, that is included in an in\\-app messaging payload\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Layout": "A string that describes how the in\\-app message will appear\\. You can specify one of the following: \n+ `BOTTOM_BANNER` \u2013 a message that appears as a banner at the bottom of the page\\.\n+ `TOP_BANNER` \u2013 a message that appears as a banner at the top of the page\\.\n+ `OVERLAYS` \u2013 a message that covers entire screen\\.\n+ `MOBILE_FEED` \u2013 a message that appears in a window in front of the page\\.\n+ `MIDDLE_BANNER` \u2013 a message that appears as a banner in the middle of the page\\.\n+ `CAROUSEL` \u2013 a scrollable layout of up to five unique messages\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Campaign CampaignSmsMessage": { + "Body": "The body of the SMS message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EntityId": "The entity ID or Principal Entity \\(PE\\) id received from the regulatory body for sending SMS in your country\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MessageType": "The SMS message type\\. Valid values are `TRANSACTIONAL` \\(for messages that are critical or time\\-sensitive, such as a one\\-time passwords\\) and `PROMOTIONAL` \\(for messsages that aren't critical or time\\-sensitive, such as marketing messages\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OriginationNumber": "The long code to send the SMS message from\\. This value should be one of the dedicated long codes that's assigned to your AWS account\\. Although it isn't required, we recommend that you specify the long code using an E\\.164 format to ensure prompt and accurate delivery of the message\\. For example, \\+12065550100\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SenderId": "The alphabetic Sender ID to display as the sender of the message on a recipient's device\\. Support for sender IDs varies by country or region\\. To specify a phone number as the sender, omit this parameter and use `OriginationNumber` instead\\. For more information about support for Sender ID by country, see the [Amazon Pinpoint User Guide](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-countries.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateId": "The template ID received from the regulatory body for sending SMS in your country\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Campaign DefaultButtonConfiguration": { + "BackgroundColor": "The background color of a button, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BorderRadius": "The border radius of a button\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ButtonAction": "The action that occurs when a recipient chooses a button in an in\\-app message\\. You can specify one of the following: \n+ `LINK` \u2013 A link to a web destination\\.\n+ `DEEP_LINK` \u2013 A link to a specific page in an application\\.\n+ `CLOSE` \u2013 Dismisses the message\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Link": "The destination \\(such as a URL\\) for a button\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Text": "The text that appears on a button in an in\\-app message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextColor": "The color of the body text in a button, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Campaign EventDimensions": { + "Attributes": "One or more custom attributes that your application reports to Amazon Pinpoint\\. You can use these attributes as selection criteria when you create an event filter\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventType": "The name of the event that causes the campaign to be sent or the journey activity to be performed\\. This can be a standard event that Amazon Pinpoint generates, such as `_email.delivered`\\. For campaigns, this can also be a custom event that's specific to your application\\. For information about standard events, see [Streaming Amazon Pinpoint Events](https://docs.aws.amazon.com/pinpoint/latest/developerguide/event-streams.html) in the *Amazon Pinpoint Developer Guide*\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Metrics": "One or more custom metrics that your application reports to Amazon Pinpoint\\. You can use these metrics as selection criteria when you create an event filter\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Campaign InAppMessageBodyConfig": { + "Alignment": "The text alignment of the main body text of the message\\. Acceptable values: `LEFT`, `CENTER`, `RIGHT`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Body": "The main body text of the message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextColor": "The color of the body text, expressed as a string consisting of a hex color code \\(such as \"\\#000000\" for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Campaign InAppMessageButton": { + "Android": "An object that defines the default behavior for a button in in\\-app messages sent to Android\\. \n*Required*: No \n*Type*: [OverrideButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-overridebuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultConfig": "An object that defines the default behavior for a button in an in\\-app message\\. \n*Required*: No \n*Type*: [DefaultButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-defaultbuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IOS": "An object that defines the default behavior for a button in in\\-app messages sent to iOS devices\\. \n*Required*: No \n*Type*: [OverrideButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-overridebuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Web": "An object that defines the default behavior for a button in in\\-app messages for web applications\\. \n*Required*: No \n*Type*: [OverrideButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-overridebuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Campaign InAppMessageContent": { + "BackgroundColor": "The background color for an in\\-app message banner, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BodyConfig": "Specifies the configuration of main body text in an in\\-app message template\\. \n*Required*: No \n*Type*: [InAppMessageBodyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagebodyconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HeaderConfig": "Specifies the configuration and content of the header or title text of the in\\-app message\\. \n*Required*: No \n*Type*: [InAppMessageHeaderConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessageheaderconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageUrl": "The URL of the image that appears on an in\\-app message banner\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrimaryBtn": "An object that contains configuration information about the primary button in an in\\-app message\\. \n*Required*: No \n*Type*: [InAppMessageButton](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagebutton.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecondaryBtn": "An object that contains configuration information about the secondary button in an in\\-app message\\. \n*Required*: No \n*Type*: [InAppMessageButton](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagebutton.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Campaign InAppMessageHeaderConfig": { + "Alignment": "The text alignment of the title of the message\\. Acceptable values: `LEFT`, `CENTER`, `RIGHT`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Header": "The header or title text of the in\\-app message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextColor": "The color of the body text, expressed as a string consisting of a hex color code \\(such as \"\\#000000\" for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Campaign Limits": { + "Daily": "The maximum number of messages that a campaign can send to a single endpoint during a 24\\-hour period\\. The maximum value is 100\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaximumDuration": "The maximum amount of time, in seconds, that a campaign can attempt to deliver a message after the scheduled start time for the campaign\\. The minimum value is 60 seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MessagesPerSecond": "The maximum number of messages that a campaign can send each second\\. The minimum value is 50\\. The maximum value is 20,000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Session": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Total": "The maximum number of messages that a campaign can send to a single endpoint during the course of the campaign\\. The maximum value is 100\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Campaign Message": { + "Action": "The action to occur if a recipient taps the push notification\\. Valid values are: \n+ `OPEN_APP` \u2013 Your app opens or it becomes the foreground app if it was sent to the background\\. This is the default action\\.\n+ `DEEP_LINK` \u2013 Your app opens and displays a designated user interface in the app\\. This setting uses the deep\\-linking features of iOS and Android\\.\n+ `URL` \u2013 The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Body": "The body of the notification message\\. The maximum number of characters is 200\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageIconUrl": "The URL of the image to display as the push notification icon, such as the icon for the app\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageSmallIconUrl": "The URL of the image to display as the small, push notification icon, such as a small version of the icon for the app\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageUrl": "The URL of an image to display in the push notification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JsonBody": "The JSON payload to use for a silent push notification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MediaUrl": "The URL of the image or video to display in the push notification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RawContent": "The raw, JSON\\-formatted string to use as the payload for the notification message\\. If specified, this value overrides all other content for the message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SilentPush": "Specifies whether the notification is a silent push notification, which is a push notification that doesn't display on a recipient's device\\. Silent push notifications can be used for cases such as updating an app's configuration, displaying messages in an in\\-app message center, or supporting phone home functionality\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeToLive": "The number of seconds that the push notification service should keep the message, if the service is unable to deliver the notification the first time\\. This value is converted to an expiration value when it's sent to a push notification service\\. If this value is `0`, the service treats the notification as if it expires immediately and the service doesn't store or try to deliver the notification again\\. \nThis value doesn't apply to messages that are sent through the Amazon Device Messaging \\(ADM\\) service\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Title": "The title to display above the notification message on a recipient's device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Url": "The URL to open in a recipient's default mobile browser, if a recipient taps the push notification and the value of the `Action` property is `URL`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Campaign MessageConfiguration": { + "ADMMessage": "The message that the campaign sends through the ADM \\(Amazon Device Messaging\\) channel\\. If specified, this message overrides the default message\\. \n*Required*: No \n*Type*: [Message](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "APNSMessage": "The message that the campaign sends through the APNs \\(Apple Push Notification service\\) channel\\. If specified, this message overrides the default message\\. \n*Required*: No \n*Type*: [Message](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BaiduMessage": "The message that the campaign sends through the Baidu \\(Baidu Cloud Push\\) channel\\. If specified, this message overrides the default message\\. \n*Required*: No \n*Type*: [Message](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultMessage": "The default message that the campaign sends through all the channels that are configured for the campaign\\. \n*Required*: No \n*Type*: [Message](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EmailMessage": "The message that the campaign sends through the email channel\\. If specified, this message overrides the default message\\. \n*Required*: No \n*Type*: [CampaignEmailMessage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaignemailmessage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GCMMessage": "The message that the campaign sends through the GCM channel, which enables Amazon Pinpoint to send push notifications through the Firebase Cloud Messaging \\(FCM\\), formerly Google Cloud Messaging \\(GCM\\), service\\. If specified, this message overrides the default message\\. \n*Required*: No \n*Type*: [Message](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InAppMessage": "The default message for the in\\-app messaging channel\\. This message overrides the default message \\(`DefaultMessage`\\)\\. \n*Required*: No \n*Type*: [CampaignInAppMessage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaigninappmessage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SMSMessage": "The message that the campaign sends through the SMS channel\\. If specified, this message overrides the default message\\. \n*Required*: No \n*Type*: [CampaignSmsMessage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaignsmsmessage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Campaign MetricDimension": { + "ComparisonOperator": "The operator to use when comparing metric values\\. Valid values are: `GREATER_THAN`, `LESS_THAN`, `GREATER_THAN_OR_EQUAL`, `LESS_THAN_OR_EQUAL`, and `EQUAL`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value to compare\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Campaign OverrideButtonConfiguration": { + "ButtonAction": "The action that occurs when a recipient chooses a button in an in\\-app message\\. You can specify one of the following: \n+ `LINK` \u2013 A link to a web destination\\.\n+ `DEEP_LINK` \u2013 A link to a specific page in an application\\.\n+ `CLOSE` \u2013 Dismisses the message\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Link": "The destination \\(such as a URL\\) for a button\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Campaign QuietTime": { + "End": "The specific time when quiet time ends\\. This value has to use 24\\-hour notation and be in HH:MM format, where HH is the hour \\(with a leading zero, if applicable\\) and MM is the minutes\\. For example, use `02:30` to represent 2:30 AM, or `14:30` to represent 2:30 PM\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Start": "The specific time when quiet time begins\\. This value has to use 24\\-hour notation and be in HH:MM format, where HH is the hour \\(with a leading zero, if applicable\\) and MM is the minutes\\. For example, use `02:30` to represent 2:30 AM, or `14:30` to represent 2:30 PM\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Campaign Schedule": { + "EndTime": "The scheduled time, in ISO 8601 format, when the campaign ended or will end\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventFilter": "The type of event that causes the campaign to be sent, if the value of the `Frequency` property is `EVENT`\\. \n*Required*: No \n*Type*: [CampaignEventFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaigneventfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Frequency": "Specifies how often the campaign is sent or whether the campaign is sent in response to a specific event\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IsLocalTime": "Specifies whether the start and end times for the campaign schedule use each recipient's local time\\. To base the schedule on each recipient's local time, set this value to `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QuietTime": "The default quiet time for the campaign\\. Quiet time is a specific time range when a campaign doesn't send messages to endpoints, if all the following conditions are met: \n+ The `EndpointDemographic.Timezone` property of the endpoint is set to a valid value\\.\n+ The current time in the endpoint's time zone is later than or equal to the time specified by the `QuietTime.Start` property for the campaign\\.\n+ The current time in the endpoint's time zone is earlier than or equal to the time specified by the `QuietTime.End` property for the campaign\\.\nIf any of the preceding conditions isn't met, the endpoint will receive messages from the campaign, even if quiet time is enabled\\. \n*Required*: No \n*Type*: [QuietTime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-schedule-quiettime.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StartTime": "The scheduled time when the campaign began or will begin\\. Valid values are: `IMMEDIATE`, to start the campaign immediately; or, a specific time in ISO 8601 format\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeZone": "The starting UTC offset for the campaign schedule, if the value of the `IsLocalTime` property is `true`\\. Valid values are: `UTC, UTC+01, UTC+02, UTC+03, UTC+03:30, UTC+04, UTC+04:30, UTC+05, UTC+05:30, UTC+05:45, UTC+06, UTC+06:30, UTC+07, UTC+08, UTC+09, UTC+09:30, UTC+10, UTC+10:30, UTC+11, UTC+12, UTC+13, UTC-02, UTC-03, UTC-04, UTC-05, UTC-06, UTC-07, UTC-08, UTC-09, UTC-10,` and `UTC-11`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Campaign SetDimension": { + "DimensionType": "The type of segment dimension to use\\. Valid values are: `INCLUSIVE`, endpoints that match the criteria are included in the segment; and, `EXCLUSIVE`, endpoints that match the criteria are excluded from the segment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "The criteria values to use for the segment dimension\\. Depending on the value of the `DimensionType` property, endpoints are included or excluded from the segment if their values match the criteria values\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Campaign WriteTreatmentResource": { + "MessageConfiguration": "The message configuration settings for the treatment\\. \n*Required*: No \n*Type*: [MessageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-messageconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Schedule": "The schedule settings for the treatment\\. \n*Required*: No \n*Type*: [Schedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-schedule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SizePercent": "The allocated percentage of users \\(segment members\\) to send the treatment to\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TreatmentDescription": "A custom description of the treatment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TreatmentName": "A custom name for the treatment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::EmailChannel": { + "ApplicationId": "The unique identifier for the Amazon Pinpoint application that you're specifying the email channel for\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ConfigurationSet": "The [Amazon SES configuration set](https://docs.aws.amazon.com/ses/latest/APIReference/API_ConfigurationSet.html) that you want to apply to messages that you send through the channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Specifies whether to enable the email channel for the application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FromAddress": "The verified email address that you want to send email from when you send email through the channel\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Identity": "The Amazon Resource Name \\(ARN\\) of the identity, verified with Amazon Simple Email Service \\(Amazon SES\\), that you want to use when you send email through the channel\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The ARN of the AWS Identity and Access Management \\(IAM\\) role that you want Amazon Pinpoint to use when it submits email\\-related event data for the channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::EmailTemplate": { + "DefaultSubstitutions": "A JSON object that specifies the default values to use for message variables in the message template\\. This object is a set of key\\-value pairs\\. Each key defines a message variable in the template\\. The corresponding value defines the default value for that variable\\. When you create a message that's based on the template, you can override these defaults with message\\-specific and address\\-specific variables and values\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HtmlPart": "The message body, in HTML format, to use in email messages that are based on the message template\\. We recommend using HTML format for email clients that render HTML content\\. You can include links, formatted text, and more in an HTML message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Subject": "The subject line, or title, to use in email messages that are based on the message template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateDescription": "A custom description of the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateName": "The name of the message template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TextPart": "The message body, in plain text format, to use in email messages that are based on the message template\\. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high\\-latency networks, such as mobile devices\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::EventStream": { + "ApplicationId": "The unique identifier for the Amazon Pinpoint application that you want to export data from\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DestinationStreamArn": "The Amazon Resource Name \\(ARN\\) of the Amazon Kinesis data stream or Amazon Kinesis Data Firehose delivery stream that you want to publish event data to\\. \nFor a Kinesis data stream, the ARN format is: `arn:aws:kinesis:region:account-id:stream/stream_name ` \nFor a Kinesis Data Firehose delivery stream, the ARN format is: `arn:aws:firehose:region:account-id:deliverystream/stream_name ` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The AWS Identity and Access Management \\(IAM\\) role that authorizes Amazon Pinpoint to publish event data to the stream in your AWS account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::GCMChannel": { + "ApiKey": "The Web API key, also called the *server key*, that you received from Google to communicate with Google services\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ApplicationId": "The unique identifier for the Amazon Pinpoint application that the GCM channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Enabled": "Specifies whether to enable the GCM channel for the Amazon Pinpoint application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::InAppTemplate": { + "Content": "An object that contains information about the content of an in\\-app message, including its title and body text, text colors, background colors, images, buttons, and behaviors\\. \n*Required*: No \n*Type*: List of [InAppMessageContent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-inappmessagecontent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomConfig": "Custom data, in the form of key\\-value pairs, that is included in an in\\-app messaging payload\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Layout": "A string that determines the appearance of the in\\-app message\\. You can specify one of the following: \n+ `BOTTOM_BANNER` \u2013 a message that appears as a banner at the bottom of the page\\.\n+ `TOP_BANNER` \u2013 a message that appears as a banner at the top of the page\\.\n+ `OVERLAYS` \u2013 a message that covers entire screen\\.\n+ `MOBILE_FEED` \u2013 a message that appears in a window in front of the page\\.\n+ `MIDDLE_BANNER` \u2013 a message that appears as a banner in the middle of the page\\.\n+ `CAROUSEL` \u2013 a scrollable layout of up to five unique messages\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateDescription": "An optional description of the in\\-app template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateName": "The name of the in\\-app message template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Pinpoint::InAppTemplate BodyConfig": { + "Alignment": "The text alignment of the main body text of the message\\. Acceptable values: `LEFT`, `CENTER`, `RIGHT`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Body": "The main body text of the message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextColor": "The color of the body text, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::InAppTemplate ButtonConfig": { + "Android": "Optional button configuration to use for in\\-app messages sent to Android devices\\. This button configuration overrides the default button configuration\\. \n*Required*: No \n*Type*: [OverrideButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-overridebuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultConfig": "Specifies the default behavior of a button that appears in an in\\-app message\\. You can optionally add button configurations that specifically apply to iOS, Android, or web browser users\\. \n*Required*: No \n*Type*: [DefaultButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-defaultbuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IOS": "Optional button configuration to use for in\\-app messages sent to iOS devices\\. This button configuration overrides the default button configuration\\. \n*Required*: No \n*Type*: [OverrideButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-overridebuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Web": "Optional button configuration to use for in\\-app messages sent to web applications\\. This button configuration overrides the default button configuration\\. \n*Required*: No \n*Type*: [OverrideButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-overridebuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::InAppTemplate DefaultButtonConfiguration": { + "BackgroundColor": "The background color of a button, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BorderRadius": "The border radius of a button\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ButtonAction": "The action that occurs when a recipient chooses a button in an in\\-app message\\. You can specify one of the following: \n+ `LINK` \u2013 A link to a web destination\\.\n+ `DEEP_LINK` \u2013 A link to a specific page in an application\\.\n+ `CLOSE` \u2013 Dismisses the message\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Link": "The destination \\(such as a URL\\) for a button\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Text": "The text that appears on a button in an in\\-app message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextColor": "The color of the body text in a button, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::InAppTemplate HeaderConfig": { + "Alignment": "The text alignment of the title of the message\\. Acceptable values: `LEFT`, `CENTER`, `RIGHT`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Header": "The title text of the in\\-app message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextColor": "The color of the title text, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::InAppTemplate InAppMessageContent": { + "BackgroundColor": "The background color for an in\\-app message banner, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BodyConfig": "An object that contains configuration information about the header or title text of the in\\-app message\\. \n*Required*: No \n*Type*: [BodyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-bodyconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HeaderConfig": "An object that contains configuration information about the header or title text of the in\\-app message\\. \n*Required*: No \n*Type*: [HeaderConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-headerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageUrl": "The URL of the image that appears on an in\\-app message banner\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrimaryBtn": "An object that contains configuration information about the primary button in an in\\-app message\\. \n*Required*: No \n*Type*: [ButtonConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-buttonconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecondaryBtn": "An object that contains configuration information about the secondary button in an in\\-app message\\. \n*Required*: No \n*Type*: [ButtonConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-buttonconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::InAppTemplate OverrideButtonConfiguration": { + "ButtonAction": "The action that occurs when a recipient chooses a button in an in\\-app message\\. You can specify one of the following: \n+ `LINK` \u2013 A link to a web destination\\.\n+ `DEEP_LINK` \u2013 A link to a specific page in an application\\.\n+ `CLOSE` \u2013 Dismisses the message\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Link": "The destination \\(such as a URL\\) for a button\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::PushTemplate": { + "ADM": "The message template to use for the ADM \\(Amazon Device Messaging\\) channel\\. This message template overrides the default template for push notification channels \\(`Default`\\)\\. \n*Required*: No \n*Type*: [AndroidPushNotificationTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-androidpushnotificationtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "APNS": "The message template to use for the APNs \\(Apple Push Notification service\\) channel\\. This message template overrides the default template for push notification channels \\(`Default`\\)\\. \n*Required*: No \n*Type*: [APNSPushNotificationTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-apnspushnotificationtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Baidu": "The message template to use for the Baidu \\(Baidu Cloud Push\\) channel\\. This message template overrides the default template for push notification channels \\(`Default`\\)\\. \n*Required*: No \n*Type*: [AndroidPushNotificationTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-androidpushnotificationtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Default": "The default message template to use for push notification channels\\. \n*Required*: No \n*Type*: [DefaultPushNotificationTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-defaultpushnotificationtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultSubstitutions": "A JSON object that specifies the default values to use for message variables in the message template\\. This object is a set of key\\-value pairs\\. Each key defines a message variable in the template\\. The corresponding value defines the default value for that variable\\. When you create a message that's based on the template, you can override these defaults with message\\-specific and address\\-specific variables and values\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GCM": "The message template to use for the GCM channel, which is used to send notifications through the Firebase Cloud Messaging \\(FCM\\), formerly Google Cloud Messaging \\(GCM\\), service\\. This message template overrides the default template for push notification channels \\(`Default`\\)\\. \n*Required*: No \n*Type*: [AndroidPushNotificationTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-androidpushnotificationtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateDescription": "A custom description of the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateName": "The name of the message template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Pinpoint::PushTemplate APNSPushNotificationTemplate": { + "Action": "The action to occur if a recipient taps a push notification that's based on the message template\\. Valid values are: \n+ `OPEN_APP` \u2013 Your app opens or it becomes the foreground app if it was sent to the background\\. This is the default action\\.\n+ `DEEP_LINK` \u2013 Your app opens and displays a designated user interface in the app\\. This setting uses the deep\\-linking features of the iOS platform\\.\n+ `URL` \u2013 The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Body": "The message body to use in push notifications that are based on the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MediaUrl": "The URL of an image or video to display in push notifications that are based on the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Sound": "The key for the sound to play when the recipient receives a push notification that's based on the message template\\. The value for this key is the name of a sound file in your app's main bundle or the `Library/Sounds` folder in your app's data container\\. If the sound file can't be found or you specify `default` for the value, the system plays the default alert sound\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Title": "The title to use in push notifications that are based on the message template\\. This title appears above the notification message on a recipient's device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Url": "The URL to open in the recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the `Action` property is `URL`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::PushTemplate AndroidPushNotificationTemplate": { + "Action": "The action to occur if a recipient taps a push notification that's based on the message template\\. Valid values are: \n+ `OPEN_APP` \u2013 Your app opens or it becomes the foreground app if it was sent to the background\\. This is the default action\\.\n+ `DEEP_LINK` \u2013 Your app opens and displays a designated user interface in the app\\. This action uses the deep\\-linking features of the Android platform\\.\n+ `URL` \u2013 The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Body": "The message body to use in a push notification that's based on the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageIconUrl": "The URL of the large icon image to display in the content view of a push notification that's based on the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageUrl": "The URL of an image to display in a push notification that's based on the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SmallImageIconUrl": "The URL of the small icon image to display in the status bar and the content view of a push notification that's based on the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Sound": "The sound to play when a recipient receives a push notification that's based on the message template\\. You can use the default stream or specify the file name of a sound resource that's bundled in your app\\. On an Android platform, the sound file must reside in `/res/raw/`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Title": "The title to use in a push notification that's based on the message template\\. This title appears above the notification message on a recipient's device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Url": "The URL to open in a recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the `Action` property is `URL`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::PushTemplate DefaultPushNotificationTemplate": { + "Action": "The action to occur if a recipient taps a push notification that's based on the message template\\. Valid values are: \n+ `OPEN_APP` \u2013 Your app opens or it becomes the foreground app if it was sent to the background\\. This is the default action\\.\n+ `DEEP_LINK` \u2013 Your app opens and displays a designated user interface in the app\\. This setting uses the deep\\-linking features of the iOS and Android platforms\\.\n+ `URL` \u2013 The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Body": "The message body to use in push notifications that are based on the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Sound": "The sound to play when a recipient receives a push notification that's based on the message template\\. You can use the default stream or specify the file name of a sound resource that's bundled in your app\\. On an Android platform, the sound file must reside in `/res/raw/`\\. \nFor an iOS platform, this value is the key for the name of a sound file in your app's main bundle or the `Library/Sounds` folder in your app's data container\\. If the sound file can't be found or you specify `default` for the value, the system plays the default alert sound\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Title": "The title to use in push notifications that are based on the message template\\. This title appears above the notification message on a recipient's device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Url": "The URL to open in a recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the `Action` property is `URL`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::SMSChannel": { + "ApplicationId": "The unique identifier for the Amazon Pinpoint application that the SMS channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Enabled": "Specifies whether to enable the SMS channel for the application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SenderId": "The identity that you want to display on recipients' devices when they receive messages from the SMS channel\\. \nSenderIDs are only supported in certain countries and regions\\. For more information, see [Supported Countries and Regions](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-countries.html) in the *Amazon Pinpoint User Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ShortCode": "The registered short code that you want to use when you send messages through the SMS channel\\. \nFor information about obtaining a dedicated short code for sending SMS messages, see [Requesting Dedicated Short Codes for SMS Messaging with Amazon Pinpoint](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-awssupport-short-code.html) in the *Amazon Pinpoint User Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Segment": { + "ApplicationId": "The unique identifier for the Amazon Pinpoint application that the segment is associated with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Dimensions": "The criteria that define the dimensions for the segment\\. \n*Required*: No \n*Type*: [SegmentDimensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the segment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentGroups": "The segment group to use and the dimensions to apply to the group's base segments in order to build the segment\\. A segment group can consist of zero or more base segments\\. Your request can include only one segment group\\. \n*Required*: No \n*Type*: [SegmentGroups](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentgroups.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Segment AttributeDimension": { + "AttributeType": "The type of segment dimension to use\\. Valid values are: \n+ `INCLUSIVE` \u2013 endpoints that have attributes matching the values are included in the segment\\.\n+ `EXCLUSIVE` \u2013 endpoints that have attributes matching the values are excluded from the segment\\.\n+ `CONTAINS` \u2013 endpoints that have attributes' substrings match the values are included in the segment\\.\n+ `BEFORE` \u2013 endpoints with attributes read as ISO\\_INSTANT datetimes before the value are included in the segment\\.\n+ `AFTER` \u2013 endpoints with attributes read as ISO\\_INSTANT datetimes after the value are included in the segment\\.\n+ `BETWEEN` \u2013 endpoints with attributes read as ISO\\_INSTANT datetimes between the values are included in the segment\\.\n+ `ON` \u2013 endpoints with attributes read as ISO\\_INSTANT dates on the value are included in the segment\\. Time is ignored in this comparison\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "The criteria values to use for the segment dimension\\. Depending on the value of the `AttributeType` property, endpoints are included or excluded from the segment if their attribute values match the criteria values\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Segment Behavior": { + "Recency": "Specifies how recently segment members were active\\. \n*Required*: No \n*Type*: [Recency](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-behavior-recency.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Segment Coordinates": { + "Latitude": "The latitude coordinate of the location\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Longitude": "The longitude coordinate of the location\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Segment Demographic": { + "AppVersion": "The app version criteria for the segment\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Channel": "The channel criteria for the segment\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeviceType": "The device type criteria for the segment\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Make": "The device make criteria for the segment\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Model": "The device model criteria for the segment\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Platform": "The device platform criteria for the segment\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Segment GPSPoint": { + "Coordinates": "The GPS coordinates to measure distance from\\. \n*Required*: Yes \n*Type*: [Coordinates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-location-gpspoint-coordinates.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RangeInKilometers": "The range, in kilometers, from the GPS coordinates\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Segment Groups": { + "Dimensions": "An array that defines the dimensions to include or exclude from the segment\\. \n*Required*: No \n*Type*: List of [SegmentDimensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceSegments": "The base segment to build the segment on\\. A base segment, also called a *source segment*, defines the initial population of endpoints for a segment\\. When you add dimensions to the segment, Amazon Pinpoint filters the base segment by using the dimensions that you specify\\. \nYou can specify more than one dimensional segment or only one imported segment\\. If you specify an imported segment, the segment size estimate that displays on the Amazon Pinpoint console indicates the size of the imported segment without any filters applied to it\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentgroups-groups-sourcesegments.html) of [SourceSegments](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentgroups-groups-sourcesegments.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceType": "Specifies how to handle multiple base segments for the segment\\. For example, if you specify three base segments for the segment, whether the resulting segment is based on all, any, or none of the base segments\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "Specifies how to handle multiple dimensions for the segment\\. For example, if you specify three dimensions for the segment, whether the resulting segment includes endpoints that match all, any, or none of the dimensions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Segment Location": { + "Country": "The country or region code, in ISO 3166\\-1 alpha\\-2 format, for the segment\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GPSPoint": "The GPS point dimension for the segment\\. \n*Required*: No \n*Type*: [GPSPoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-location-gpspoint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Segment Recency": { + "Duration": "The duration to use when determining which users have been active or inactive with your app\\. \nPossible values: `HR_24` \\| `DAY_7` \\| `DAY_14` \\| `DAY_30`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RecencyType": "The type of recency dimension to use for the segment\\. Valid values are: `ACTIVE` and `INACTIVE`\\. If the value is `ACTIVE`, the segment includes users who have used your app within the specified duration are included in the segment\\. If the value is `INACTIVE`, the segment includes users who haven't used your app within the specified duration are included in the segment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Segment SegmentDimensions": { + "Attributes": "One or more custom attributes to use as criteria for the segment\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Behavior": "The behavior\\-based criteria, such as how recently users have used your app, for the segment\\. \n*Required*: No \n*Type*: [Behavior](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-behavior.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Demographic": "The demographic\\-based criteria, such as device platform, for the segment\\. \n*Required*: No \n*Type*: [Demographic](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-demographic.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Location": "The location\\-based criteria, such as region or GPS coordinates, for the segment\\. \n*Required*: No \n*Type*: [Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Metrics": "One or more custom metrics to use as criteria for the segment\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserAttributes": "One or more custom user attributes to use as criteria for the segment\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Segment SegmentGroups": { + "Groups": "Specifies the set of segment criteria to evaluate when handling segment groups for the segment\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentgroups-groups.html) of [Groups](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentgroups-groups.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Include": "Specifies how to handle multiple segment groups for the segment\\. For example, if the segment includes three segment groups, whether the resulting segment includes endpoints that match all, any, or none of the segment groups\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Segment SetDimension": { + "DimensionType": "The type of segment dimension to use\\. Valid values are: `INCLUSIVE`, endpoints that match the criteria are included in the segment; and, `EXCLUSIVE`, endpoints that match the criteria are excluded from the segment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "The criteria values to use for the segment dimension\\. Depending on the value of the `DimensionType` property, endpoints are included or excluded from the segment if their values match the criteria values\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::Segment SourceSegments": { + "Id": "The unique identifier for the source segment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "The version number of the source segment\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Pinpoint::SmsTemplate": { + "Body": "The message body to use in text messages that are based on the message template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultSubstitutions": "A JSON object that specifies the default values to use for message variables in the message template\\. This object is a set of key\\-value pairs\\. Each key defines a message variable in the template\\. The corresponding value defines the default value for that variable\\. When you create a message that's based on the template, you can override these defaults with message\\-specific and address\\-specific variables and values\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateDescription": "A custom description of the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateName": "The name of the message template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Pinpoint::VoiceChannel": { + "ApplicationId": "The unique identifier for the Amazon Pinpoint application that the voice channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Enabled": "Specifies whether to enable the voice channel for the application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::PinpointEmail::ConfigurationSet": { + "DeliveryOptions": "An object that defines the dedicated IP pool that is used to send emails that you send using the configuration set\\. \n*Required*: No \n*Type*: [DeliveryOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-deliveryoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the configuration set\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ReputationOptions": "An object that defines whether or not Amazon Pinpoint collects reputation metrics for the emails that you send that use the configuration set\\. \n*Required*: No \n*Type*: [ReputationOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-reputationoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SendingOptions": "An object that defines whether or not Amazon Pinpoint can send email that you send using the configuration set\\. \n*Required*: No \n*Type*: [SendingOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-sendingoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An object that defines the tags \\(keys and values\\) that you want to associate with the configuration set\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TrackingOptions": "An object that defines the open and click tracking options for emails that you send using the configuration set\\. \n*Required*: No \n*Type*: [TrackingOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-trackingoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::PinpointEmail::ConfigurationSet DeliveryOptions": { + "SendingPoolName": "The name of the dedicated IP pool that you want to associate with the configuration set\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::PinpointEmail::ConfigurationSet ReputationOptions": { + "ReputationMetricsEnabled": "If `true`, tracking of reputation metrics is enabled for the configuration set\\. If `false`, tracking of reputation metrics is disabled for the configuration set\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::PinpointEmail::ConfigurationSet SendingOptions": { + "SendingEnabled": "If `true`, email sending is enabled for the configuration set\\. If `false`, email sending is disabled for the configuration set\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::PinpointEmail::ConfigurationSet Tags": { + "Key": "One part of a key\\-value pair that defines a tag\\. The maximum length of a tag key is 128 characters\\. The minimum length is 1 character\\. \nIf you specify tags for the configuration set, then this value is required\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The optional part of a key\\-value pair that defines a tag\\. The maximum length of a tag value is 256 characters\\. The minimum length is 0 characters\\. If you don\u2019t want a resource to have a specific tag value, don\u2019t specify a value for this parameter\\. Amazon Pinpoint will set the value to an empty string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::PinpointEmail::ConfigurationSet TrackingOptions": { + "CustomRedirectDomain": "The domain that you want to use for tracking open and click events\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::PinpointEmail::ConfigurationSetEventDestination": { + "ConfigurationSetName": "The name of the configuration set that contains the event destination that you want to modify\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EventDestination": "An object that defines the event destination\\. \n*Required*: No \n*Type*: [EventDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-eventdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventDestinationName": "The name of the event destination that you want to modify\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::PinpointEmail::ConfigurationSetEventDestination CloudWatchDestination": { + "DimensionConfigurations": "An array of objects that define the dimensions to use when you send email events to Amazon CloudWatch\\. \n*Required*: No \n*Type*: List of [DimensionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-dimensionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::PinpointEmail::ConfigurationSetEventDestination DimensionConfiguration": { + "DefaultDimensionValue": "The default value of the dimension that is published to Amazon CloudWatch if you don't provide the value of the dimension when you send an email\\. This value has to meet the following criteria: \n+ It can only contain ASCII letters \\(a\u2013z, A\u2013Z\\), numbers \\(0\u20139\\), underscores \\(\\_\\), or dashes \\(\\-\\)\\.\n+ It can contain no more than 256 characters\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DimensionName": "The name of an Amazon CloudWatch dimension associated with an email sending metric\\. The name has to meet the following criteria: \n+ It can only contain ASCII letters \\(a\u2013z, A\u2013Z\\), numbers \\(0\u20139\\), underscores \\(\\_\\), or dashes \\(\\-\\)\\.\n+ It can contain no more than 256 characters\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DimensionValueSource": "The location where Amazon Pinpoint finds the value of a dimension to publish to Amazon CloudWatch\\. Acceptable values: `MESSAGE_TAG`, `EMAIL_HEADER`, and `LINK_TAG`\\. \nIf you want Amazon Pinpoint to use the message tags that you specify using an `X-SES-MESSAGE-TAGS` header or a parameter to the `SendEmail` API, choose `MESSAGE_TAG`\\. If you want Amazon Pinpoint to use your own email headers, choose `EMAIL_HEADER`\\. If you want Amazon Pinpoint to use tags that are specified in your links, choose `LINK_TAG`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::PinpointEmail::ConfigurationSetEventDestination EventDestination": { + "CloudWatchDestination": "An object that defines an Amazon CloudWatch destination for email events\\. You can use Amazon CloudWatch to monitor and gain insights on your email sending metrics\\. \n*Required*: No \n*Type*: [CloudWatchDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-cloudwatchdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "If `true`, the event destination is enabled\\. When the event destination is enabled, the specified event types are sent to the destinations in this `EventDestinationDefinition`\\. \nIf `false`, the event destination is disabled\\. When the event destination is disabled, events aren't sent to the specified destinations\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KinesisFirehoseDestination": "An object that defines an Amazon Kinesis Data Firehose destination for email events\\. You can use Amazon Kinesis Data Firehose to stream data to other services, such as Amazon S3 and Amazon Redshift\\. \n*Required*: No \n*Type*: [KinesisFirehoseDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-kinesisfirehosedestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MatchingEventTypes": "The types of events that Amazon Pinpoint sends to the specified event destinations\\. Acceptable values: `SEND`, `REJECT`, `BOUNCE`, `COMPLAINT`, `DELIVERY`, `OPEN`, `CLICK`, and `RENDERING_FAILURE`\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PinpointDestination": "An object that defines a Amazon Pinpoint destination for email events\\. You can use Amazon Pinpoint events to create attributes in Amazon Pinpoint projects\\. You can use these attributes to create segments for your campaigns\\. \n*Required*: No \n*Type*: [PinpointDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-pinpointdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnsDestination": "An object that defines an Amazon SNS destination for email events\\. You can use Amazon SNS to send notification when certain email events occur\\. \n*Required*: No \n*Type*: [SnsDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-snsdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::PinpointEmail::ConfigurationSetEventDestination KinesisFirehoseDestination": { + "DeliveryStreamArn": "The Amazon Resource Name \\(ARN\\) of the Amazon Kinesis Data Firehose stream that Amazon Pinpoint sends email events to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IamRoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM role that Amazon Pinpoint uses when sending email events to the Amazon Kinesis Data Firehose stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::PinpointEmail::ConfigurationSetEventDestination PinpointDestination": { + "ApplicationArn": "The Amazon Resource Name \\(ARN\\) of the Amazon Pinpoint project that you want to send email events to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::PinpointEmail::ConfigurationSetEventDestination SnsDestination": { + "TopicArn": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic that you want to publish email events to\\. For more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::PinpointEmail::DedicatedIpPool": { + "PoolName": "The name of the dedicated IP pool\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An object that defines the tags \\(keys and values\\) that you want to associate with the dedicated IP pool\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-dedicatedippool-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-dedicatedippool-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::PinpointEmail::DedicatedIpPool Tags": { + "Key": "One part of a key\\-value pair that defines a tag\\. The maximum length of a tag key is 128 characters\\. The minimum length is 1 character\\. \nIf you specify tags for the dedicated IP pool, then this value is required\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The optional part of a key\\-value pair that defines a tag\\. The maximum length of a tag value is 256 characters\\. The minimum length is 0 characters\\. If you don\u2019t want a resource to have a specific tag value, don\u2019t specify a value for this parameter\\. Amazon Pinpoint will set the value to an empty string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::PinpointEmail::Identity": { + "DkimSigningEnabled": "For domain identities, this attribute is used to enable or disable DomainKeys Identified Mail \\(DKIM\\) signing for the domain\\. \nIf the value is `true`, then the messages that you send from the domain are signed using both the DKIM keys for your domain, as well as the keys for the `amazonses.com` domain\\. If the value is `false`, then the messages that you send are only signed using the DKIM keys for the `amazonses.com` domain\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FeedbackForwardingEnabled": "Used to enable or disable feedback forwarding for an identity\\. This setting determines what happens when an identity is used to send an email that results in a bounce or complaint event\\. \nWhen you enable feedback forwarding, Amazon Pinpoint sends you email notifications when bounce or complaint events occur\\. Amazon Pinpoint sends this notification to the address that you specified in the Return\\-Path header of the original email\\. \nWhen you disable feedback forwarding, Amazon Pinpoint sends notifications through other mechanisms, such as by notifying an Amazon SNS topic\\. You're required to have a method of tracking bounces and complaints\\. If you haven't set up another mechanism for receiving bounce or complaint notifications, Amazon Pinpoint sends an email notification when these events occur \\(even if this setting is disabled\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MailFromAttributes": "Used to enable or disable the custom Mail\\-From domain configuration for an email identity\\. \n*Required*: No \n*Type*: [MailFromAttributes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-identity-mailfromattributes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The address or domain of the identity, such as *sender@example\\.com* or *example\\.co\\.uk*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An object that defines the tags \\(keys and values\\) that you want to associate with the email identity\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-identity-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-identity-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::PinpointEmail::Identity MailFromAttributes": { + "BehaviorOnMxFailure": "The action that Amazon Pinpoint to takes if it can't read the required MX record for a custom MAIL FROM domain\\. When you set this value to `UseDefaultValue`, Amazon Pinpoint uses *amazonses\\.com* as the MAIL FROM domain\\. When you set this value to `RejectMessage`, Amazon Pinpoint returns a `MailFromDomainNotVerified` error, and doesn't attempt to deliver the email\\. \nThese behaviors are taken when the custom MAIL FROM domain configuration is in the `Pending`, `Failed`, and `TemporaryFailure` states\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `REJECT_MESSAGE | USE_DEFAULT_VALUE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MailFromDomain": "The name of a domain that an email identity uses as a custom MAIL FROM domain\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::PinpointEmail::Identity Tags": { + "Key": "One part of a key\\-value pair that defines a tag\\. The maximum length of a tag key is 128 characters\\. The minimum length is 1 character\\. \nIf you specify tags for the identity, then this value is required\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The optional part of a key\\-value pair that defines a tag\\. The maximum length of a tag value is 256 characters\\. The minimum length is 0 characters\\. If you don\u2019t want a resource to have a specific tag value, don\u2019t specify a value for this parameter\\. Amazon Pinpoint will set the value to an empty string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QLDB::Ledger": { + "DeletionProtection": "The flag that prevents a ledger from being deleted by any user\\. If not provided on ledger creation, this feature is enabled \\(`true`\\) by default\\. \nIf deletion protection is enabled, you must first disable it before you can delete the ledger\\. You can disable it by calling the `UpdateLedger` operation to set the flag to `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKey": "The key in AWS Key Management Service \\(AWS KMS\\) to use for encryption of data at rest in the ledger\\. For more information, see [Encryption at rest](https://docs.aws.amazon.com/qldb/latest/developerguide/encryption-at-rest.html) in the *Amazon QLDB Developer Guide*\\. \nUse one of the following options to specify this parameter: \n+ `AWS_OWNED_KMS_KEY`: Use an AWS KMS key that is owned and managed by AWS on your behalf\\.\n+ **Undefined**: By default, use an AWS owned KMS key\\.\n+ **A valid symmetric customer managed KMS key**: Use the specified KMS key in your account that you create, own, and manage\\.", + "Name": "The name of the ledger that you want to create\\. The name must be unique among all of the ledgers in your AWS account in the current Region\\. \nNaming constraints for ledger names are defined in [Quotas in Amazon QLDB](https://docs.aws.amazon.com/qldb/latest/developerguide/limits.html#limits.naming) in the *Amazon QLDB Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `(?!^.*--)(?!^[0-9]+$)(?!^-)(?!.*-$)^[A-Za-z0-9-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PermissionsMode": "The permissions mode to assign to the ledger that you want to create\\. This parameter can have one of the following values: \n+ `ALLOW_ALL`: A legacy permissions mode that enables access control with API\\-level granularity for ledgers\\.", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QLDB::Stream": { + "ExclusiveEndTime": "The exclusive date and time that specifies when the stream ends\\. If you don't define this parameter, the stream runs indefinitely until you cancel it\\. \nThe `ExclusiveEndTime` must be in `ISO 8601` date and time format and in Universal Coordinated Time \\(UTC\\)\\. For example: `2019-06-13T21:36:34Z`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InclusiveStartTime": "The inclusive start date and time from which to start streaming journal data\\. This parameter must be in `ISO 8601` date and time format and in Universal Coordinated Time \\(UTC\\)\\. For example: `2019-06-13T21:36:34Z`\\. \nThe `InclusiveStartTime` cannot be in the future and must be before `ExclusiveEndTime`\\. \nIf you provide an `InclusiveStartTime` that is before the ledger's `CreationDateTime`, QLDB effectively defaults it to the ledger's `CreationDateTime`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KinesisConfiguration": "The configuration settings of the Kinesis Data Streams destination for your stream request\\. \n*Required*: Yes \n*Type*: [KinesisConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-qldb-stream-kinesisconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LedgerName": "The name of the ledger\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `(?!^.*--)(?!^[0-9]+$)(?!^-)(?!.*-$)^[A-Za-z0-9-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM role that grants QLDB permissions for a journal stream to write data records to a Kinesis Data Streams resource\\. \nTo pass a role to QLDB when requesting a journal stream, you must have permissions to perform the `iam:PassRole` action on the IAM role resource\\. This is required for all journal stream requests\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `1600` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StreamName": "The name that you want to assign to the QLDB journal stream\\. User\\-defined names can help identify and indicate the purpose of a stream\\. \nYour stream name must be unique among other *active* streams for a given ledger\\. Stream names have the same naming constraints as ledger names, as defined in [Quotas in Amazon QLDB](https://docs.aws.amazon.com/qldb/latest/developerguide/limits.html#limits.naming) in the *Amazon QLDB Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `(?!^.*--)(?!^[0-9]+$)(?!^-)(?!.*-$)^[A-Za-z0-9-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QLDB::Stream KinesisConfiguration": { + "AggregationEnabled": "Enables QLDB to publish multiple data records in a single Kinesis Data Streams record, increasing the number of records sent per API call\\. \n *This option is enabled by default\\.* Record aggregation has important implications for processing records and requires de\\-aggregation in your stream consumer\\. To learn more, see [KPL Key Concepts](https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-concepts.html) and [Consumer De\\-aggregation](https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-consumer-deaggregation.html) in the *Amazon Kinesis Data Streams Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StreamArn": "The Amazon Resource Name \\(ARN\\) of the Kinesis Data Streams resource\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `1600` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::QuickSight::Analysis": { + "AnalysisId": "The ID for the analysis that you're creating\\. This ID displays in the URL of the analysis\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `[\\w\\-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AwsAccountId": "The ID of the AWS account where you are creating an analysis\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Errors": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of [AnalysisError](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-analysiserror.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A descriptive name for the analysis that you're creating\\. This name displays for the analysis in the Amazon QuickSight console\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "The parameter names and override values that you want to use\\. An analysis can have any parameter type, and some parameters might accept multiple values\\. \n*Required*: No \n*Type*: [Parameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-parameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Permissions": "A structure that describes the principals and the resource\\-level permissions on an analysis\\. You can use the `Permissions` structure to grant permissions by providing a list of AWS Identity and Access Management \\(IAM\\) action information for each principal listed by Amazon Resource Name \\(ARN\\)\\. \nTo specify no permissions, omit `Permissions`\\. \n*Required*: No \n*Type*: List of [ResourcePermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-resourcepermission.html) \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceEntity": "A source entity to use for the analysis that you're creating\\. This metadata structure contains details that describe a source template and one or more datasets\\. \n*Required*: Yes \n*Type*: [AnalysisSourceEntity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-analysissourceentity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Contains a map of the key\\-value pairs for the resource tag or tags assigned to the analysis\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThemeArn": "The ARN for the theme to apply to the analysis that you're creating\\. To see the theme in the Amazon QuickSight console, make sure that you have access to it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Analysis AnalysisError": { + "Message": "The message associated with the analysis error\\. \n*Required*: No \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of the analysis error\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ACCESS_DENIED | COLUMN_GEOGRAPHIC_ROLE_MISMATCH | COLUMN_REPLACEMENT_MISSING | COLUMN_TYPE_MISMATCH | DATA_SET_NOT_FOUND | INTERNAL_FAILURE | PARAMETER_NOT_FOUND | PARAMETER_TYPE_INVALID | PARAMETER_VALUE_INCOMPATIBLE | SOURCE_NOT_FOUND` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Analysis AnalysisSourceEntity": { + "SourceTemplate": "The source template for the source entity of the analysis\\. \n*Required*: No \n*Type*: [AnalysisSourceTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-analysissourcetemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Analysis AnalysisSourceTemplate": { + "Arn": "The Amazon Resource Name \\(ARN\\) of the source template of an analysis\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataSetReferences": "The dataset references of the source template of an analysis\\. \n*Required*: Yes \n*Type*: List of [DataSetReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-datasetreference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Analysis DataSetReference": { + "DataSetArn": "Dataset Amazon Resource Name \\(ARN\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataSetPlaceholder": "Dataset placeholder\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Analysis DateTimeParameter": { + "Name": "A display name for the date\\-time parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "The values for the date\\-time parameter\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Analysis DecimalParameter": { + "Name": "A display name for the decimal parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "The values for the decimal parameter\\. \n*Required*: Yes \n*Type*: List of Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Analysis IntegerParameter": { + "Name": "The name of the integer parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "The values for the integer parameter\\. \n*Required*: Yes \n*Type*: List of Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Analysis Parameters": { + "DateTimeParameters": "The parameters that have a data type of date\\-time\\. \n*Required*: No \n*Type*: List of [DateTimeParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-datetimeparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DecimalParameters": "The parameters that have a data type of decimal\\. \n*Required*: No \n*Type*: List of [DecimalParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-decimalparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntegerParameters": "The parameters that have a data type of integer\\. \n*Required*: No \n*Type*: List of [IntegerParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-integerparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StringParameters": "The parameters that have a data type of string\\. \n*Required*: No \n*Type*: List of [StringParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-stringparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Analysis ResourcePermission": { + "Actions": "The IAM action to grant or revoke permissions on\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Principal": "The Amazon Resource Name \\(ARN\\) of the principal\\. This can be one of the following: \n+ The ARN of an Amazon QuickSight user or group associated with a data source or dataset\\. \\(This is common\\.\\)\n+ The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme\\. \\(This is common\\.\\)\n+ The ARN of an AWS account root: This is an IAM ARN rather than a Amazon QuickSight ARN\\. Use this option only to share resources \\(templates\\) across AWS accounts\\. \\(This is less common\\.\\)\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Analysis Sheet": { + "Name": "The name of a sheet\\. This name is displayed on the sheet's tab in the Amazon QuickSight console\\. \n*Required*: No \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SheetId": "The unique identifier associated with a sheet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `[\\w\\-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Analysis StringParameter": { + "Name": "A display name for a string parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "The values of a string parameter\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Dashboard": { + "AwsAccountId": "The ID of the AWS account where you want to create the dashboard\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DashboardId": "The ID for the dashboard, also added to the IAM policy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `[\\w\\-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DashboardPublishOptions": "Options for publishing the dashboard when you create it: \n+ `AvailabilityStatus` for `AdHocFilteringOption` \\- This status can be either `ENABLED` or `DISABLED`\\. When this is set to `DISABLED`, Amazon QuickSight disables the left filter pane on the published dashboard, which can be used for ad hoc \\(one\\-time\\) filtering\\. This option is `ENABLED` by default\\. \n+ `AvailabilityStatus` for `ExportToCSVOption` \\- This status can be either `ENABLED` or `DISABLED`\\. The visual option to export data to \\.CSV format isn't enabled when this is set to `DISABLED`\\. This option is `ENABLED` by default\\. \n+ `VisibilityState` for `SheetControlsOption` \\- This visibility state can be either `COLLAPSED` or `EXPANDED`\\. This option is `COLLAPSED` by default\\. \n*Required*: No \n*Type*: [DashboardPublishOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-dashboardpublishoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The display name of the dashboard\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "The parameters for the creation of the dashboard, which you want to use to override the default settings\\. A dashboard can have any type of parameters, and some parameters might accept multiple values\\. \n*Required*: No \n*Type*: [Parameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-parameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Permissions": "A structure that contains the permissions of the dashboard\\. You can use this structure for granting permissions by providing a list of IAM action information for each principal ARN\\. \nTo specify no permissions, omit the permissions list\\. \n*Required*: No \n*Type*: List of [ResourcePermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-resourcepermission.html) \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceEntity": "The entity that you are using as a source when you create the dashboard\\. In `SourceEntity`, you specify the type of object that you want to use\\. You can only create a dashboard from a template, so you use a `SourceTemplate` entity\\. If you need to create a dashboard from an analysis, first convert the analysis to a template by using the `CreateTemplate` API operation\\. For `SourceTemplate`, specify the Amazon Resource Name \\(ARN\\) of the source template\\. The `SourceTemplate`ARN can contain any AWS account; and any QuickSight\\-supported AWS Region\\. \nUse the `DataSetReferences` entity within `SourceTemplate` to list the replacement datasets for the placeholders listed in the original\\. The schema in each dataset must match its placeholder\\. \n*Required*: Yes \n*Type*: [DashboardSourceEntity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-dashboardsourceentity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Contains a map of the key\\-value pairs for the resource tag or tags assigned to the dashboard\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThemeArn": "The Amazon Resource Name \\(ARN\\) of the theme that is being used for this dashboard\\. If you add a value for this field, it overrides the value that is used in the source entity\\. The theme ARN must exist in the same AWS account where you create the dashboard\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VersionDescription": "A description for the first version of the dashboard being created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Dashboard AdHocFilteringOption": { + "AvailabilityStatus": "Availability status\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Dashboard DashboardPublishOptions": { + "AdHocFilteringOption": "Ad hoc \\(one\\-time\\) filtering option\\. \n*Required*: No \n*Type*: [AdHocFilteringOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-adhocfilteringoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExportToCSVOption": "Export to \\.csv option\\. \n*Required*: No \n*Type*: [ExportToCSVOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-exporttocsvoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SheetControlsOption": "Sheet controls option\\. \n*Required*: No \n*Type*: [SheetControlsOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-sheetcontrolsoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Dashboard DashboardSourceEntity": { + "SourceTemplate": "Source template\\. \n*Required*: No \n*Type*: [DashboardSourceTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-dashboardsourcetemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Dashboard DashboardSourceTemplate": { + "Arn": "The Amazon Resource Name \\(ARN\\) of the resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataSetReferences": "Dataset references\\. \n*Required*: Yes \n*Type*: List of [DataSetReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-datasetreference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Dashboard DataSetReference": { + "DataSetArn": "Dataset Amazon Resource Name \\(ARN\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataSetPlaceholder": "Dataset placeholder\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Dashboard DateTimeParameter": { + "Name": "A display name for the date\\-time parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "The values for the date\\-time parameter\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Dashboard DecimalParameter": { + "Name": "A display name for the decimal parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "The values for the decimal parameter\\. \n*Required*: Yes \n*Type*: List of Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Dashboard ExportToCSVOption": { + "AvailabilityStatus": "Availability status\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Dashboard IntegerParameter": { + "Name": "The name of the integer parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "The values for the integer parameter\\. \n*Required*: Yes \n*Type*: List of Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Dashboard Parameters": { + "DateTimeParameters": "The parameters that have a data type of date\\-time\\. \n*Required*: No \n*Type*: List of [DateTimeParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-datetimeparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DecimalParameters": "The parameters that have a data type of decimal\\. \n*Required*: No \n*Type*: List of [DecimalParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-decimalparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntegerParameters": "The parameters that have a data type of integer\\. \n*Required*: No \n*Type*: List of [IntegerParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-integerparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StringParameters": "The parameters that have a data type of string\\. \n*Required*: No \n*Type*: List of [StringParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-stringparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Dashboard ResourcePermission": { + "Actions": "The IAM action to grant or revoke permissions on\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Principal": "The Amazon Resource Name \\(ARN\\) of the principal\\. This can be one of the following: \n+ The ARN of an Amazon QuickSight user or group associated with a data source or dataset\\. \\(This is common\\.\\)\n+ The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme\\. \\(This is common\\.\\)\n+ The ARN of an AWS account root: This is an IAM ARN rather than a Amazon QuickSight ARN\\. Use this option only to share resources \\(templates\\) across AWS accounts\\. \\(This is less common\\.\\)\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Dashboard SheetControlsOption": { + "VisibilityState": "Visibility state\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `COLLAPSED | EXPANDED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Dashboard StringParameter": { + "Name": "A display name for a string parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "The values of a string parameter\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet": { + "AwsAccountId": "The AWS account ID\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ColumnGroups": "Groupings of columns that work together in certain Amazon QuickSight features\\. Currently, only geospatial hierarchy is supported\\. \n*Required*: No \n*Type*: List of [ColumnGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-columngroup.html) \n*Maximum*: `8` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ColumnLevelPermissionRules": "A set of one or more definitions of a ` ColumnLevelPermissionRule `\\. \n*Required*: No \n*Type*: List of [ColumnLevelPermissionRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-columnlevelpermissionrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataSetId": "An ID for the dataset that you want to create\\. This ID is unique per AWS Region for each AWS account\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FieldFolders": "The folder that contains fields and nested subfolders for your dataset\\. \n*Required*: No \n*Type*: Map of [FieldFolder](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-fieldfolder.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImportMode": "Indicates whether you want to import the data into SPICE\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DIRECT_QUERY | SPICE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IngestionWaitPolicy": "The wait policy to use when creating or updating a Dataset\\. The default is to wait for SPICE ingestion to finish with timeout of 36 hours\\. \n*Required*: No \n*Type*: [IngestionWaitPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-ingestionwaitpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogicalTableMap": "Configures the combination and transformation of the data from the physical tables\\. \n*Required*: No \n*Type*: Map of [LogicalTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-logicaltable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The display name for the dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Permissions": "A list of resource permissions on the dataset\\. \n*Required*: No \n*Type*: List of [ResourcePermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-resourcepermission.html) \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PhysicalTableMap": "Declares the physical tables that are available in the underlying data sources\\. \n*Required*: No \n*Type*: Map of [PhysicalTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-physicaltable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RowLevelPermissionDataSet": "The row\\-level security configuration for the data that you want to create\\. \n*Required*: No \n*Type*: [RowLevelPermissionDataSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-rowlevelpermissiondataset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Contains a map of the key\\-value pairs for the resource tag or tags assigned to the dataset\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet CalculatedColumn": { + "ColumnId": "A unique ID to identify a calculated column\\. During a dataset update, if the column ID of a calculated column matches that of an existing calculated column, Amazon QuickSight preserves the existing calculated column\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ColumnName": "Column name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Expression": "An expression that defines the calculated column\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet CastColumnTypeOperation": { + "ColumnName": "Column name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Format": "When casting a column from string to datetime type, you can supply a string in a format supported by Amazon QuickSight to denote the source data format\\. \n*Required*: No \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NewColumnType": "New column data type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DATETIME | DECIMAL | INTEGER | STRING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet ColumnDescription": { + "Text": "The text of a description for a column\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet ColumnGroup": { + "GeoSpatialColumnGroup": "Geospatial column group that denotes a hierarchy\\. \n*Required*: No \n*Type*: [GeoSpatialColumnGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-geospatialcolumngroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet ColumnLevelPermissionRule": { + "ColumnNames": "An array of column names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Principals": "An array of Amazon Resource Names \\(ARNs\\) for Amazon QuickSight users or groups\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet ColumnTag": { + "ColumnDescription": "A description for a column\\. \n*Required*: No \n*Type*: [ColumnDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-columndescription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ColumnGeographicRole": "A geospatial role for a column\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CITY | COUNTRY | COUNTY | LATITUDE | LONGITUDE | POSTCODE | STATE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet CreateColumnsOperation": { + "Columns": "Calculated columns to create\\. \n*Required*: Yes \n*Type*: List of [CalculatedColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-calculatedcolumn.html) \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet CustomSql": { + "Columns": "The column schema from the SQL query result set\\. \n*Required*: Yes \n*Type*: List of [InputColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-inputcolumn.html) \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataSourceArn": "The Amazon Resource Name \\(ARN\\) of the data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A display name for the SQL query result\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SqlQuery": "The SQL query\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `65536` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet FieldFolder": { + "Columns": "A folder has a list of columns\\. A column can only be in one folder\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description for a field folder\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet FilterOperation": { + "ConditionExpression": "An expression that must evaluate to a Boolean value\\. Rows for which the expression evaluates to true are kept in the dataset\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet GeoSpatialColumnGroup": { + "Columns": "Columns in this hierarchy\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `16` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CountryCode": "Country code\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `US` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A display name for the hierarchy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet IngestionWaitPolicy": { + "IngestionWaitTimeInHours": "The maximum time \\(in hours\\) to wait for Ingestion to complete\\. Default timeout is 36 hours\\. Applicable only when `DataSetImportMode` mode is set to SPICE and `WaitForSpiceIngestion` is set to true\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WaitForSpiceIngestion": "Wait for SPICE ingestion to finish to mark dataset creation or update as successful\\. Default \\(true\\)\\. Applicable only when `DataSetImportMode` mode is set to SPICE\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet InputColumn": { + "Name": "The name of this column in the underlying data source\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The data type of the column\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BIT | BOOLEAN | DATETIME | DECIMAL | INTEGER | JSON | STRING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet JoinInstruction": { + "LeftJoinKeyProperties": "Join key properties of the left operand\\. \n*Required*: No \n*Type*: [JoinKeyProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-joinkeyproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LeftOperand": "The operand on the left side of a join\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[0-9a-zA-Z-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OnClause": "The join instructions provided in the `ON` clause of a join\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RightJoinKeyProperties": "Join key properties of the right operand\\. \n*Required*: No \n*Type*: [JoinKeyProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-joinkeyproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RightOperand": "The operand on the right side of a join\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[0-9a-zA-Z-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of join that it is\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `INNER | LEFT | OUTER | RIGHT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet JoinKeyProperties": { + "UniqueKey": "A value that indicates that a row in a table is uniquely identified by the columns in a join key\\. This is used by Amazon QuickSight to optimize query performance\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet LogicalTable": { + "Alias": "A display name for the logical table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataTransforms": "Transform operations that act on this logical table\\. \n*Required*: No \n*Type*: List of [TransformOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-transformoperation.html) \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Source": "Source of this logical table\\. \n*Required*: Yes \n*Type*: [LogicalTableSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-logicaltablesource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet LogicalTableSource": { + "JoinInstruction": "Specifies the result of a join of two logical tables\\. \n*Required*: No \n*Type*: [JoinInstruction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-joininstruction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PhysicalTableId": "Physical table ID\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[0-9a-zA-Z-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet OutputColumn": { + "Description": "A description for a column\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A display name for the dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "Type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DATETIME | DECIMAL | INTEGER | STRING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet PhysicalTable": { + "CustomSql": "A physical table type built from the results of the custom SQL query\\. \n*Required*: No \n*Type*: [CustomSql](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-customsql.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RelationalTable": "A physical table type for relational data sources\\. \n*Required*: No \n*Type*: [RelationalTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-relationaltable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Source": "A physical table type for as S3 data source\\. \n*Required*: No \n*Type*: [S3Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-s3source.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet ProjectOperation": { + "ProjectedColumns": "Projected columns\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet RelationalTable": { + "Catalog": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataSourceArn": "The Amazon Resource Name \\(ARN\\) for the data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputColumns": "The column schema of the table\\. \n*Required*: Yes \n*Type*: List of [InputColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-inputcolumn.html) \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the relational table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Schema": "The schema name\\. This name applies to certain relational database engines\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet RenameColumnOperation": { + "ColumnName": "The name of the column to be renamed\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NewColumnName": "The new name for the column\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet ResourcePermission": { + "Actions": "The IAM action to grand or revoke permisions on \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Principal": "The Amazon Resource Name \\(ARN\\) of the principal\\. This can be one of the following: \n+ The ARN of an Amazon QuickSight user or group associated with a data source or dataset\\. \\(This is common\\.\\)\n+ The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme\\. \\(This is common\\.\\)\n+ The ARN of an AWS account root: This is an IAM ARN rather than a Amazon QuickSight ARN\\. Use this option only to share resources \\(templates\\) across AWS accounts\\. \\(This is less common\\.\\)\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet RowLevelPermissionDataSet": { + "Arn": "The Amazon Resource Name \\(ARN\\) of the dataset that contains permissions for RLS\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FormatVersion": "The user or group rules associated with the dataset that contains permissions for RLS\\. \nBy default, `FormatVersion` is `VERSION_1`\\. When `FormatVersion` is `VERSION_1`, `UserName` and `GroupName` are required\\. When `FormatVersion` is `VERSION_2`, `UserARN` and `GroupARN` are required, and `Namespace` must not exist\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `VERSION_1 | VERSION_2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Namespace": "The namespace associated with the dataset that contains permissions for RLS\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9._-]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PermissionPolicy": "The type of permissions to use when interpreting the permissions for RLS\\. `DENY_ACCESS` is included for backward compatibility only\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DENY_ACCESS | GRANT_ACCESS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet S3Source": { + "DataSourceArn": "The Amazon Resource Name \\(ARN\\) for the data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InputColumns": "A physical table type for an S3 data source\\. \nFor files that aren't JSON, only `STRING` data types are supported in input columns\\.\n*Required*: Yes \n*Type*: List of [InputColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-inputcolumn.html) \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UploadSettings": "Information about the format for the S3 source file or files\\. \n*Required*: No \n*Type*: [UploadSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-uploadsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet TagColumnOperation": { + "ColumnName": "The column that this operation acts on\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The dataset column tag, currently only used for geospatial type tagging\\. \nThis is not tags for the AWS tagging feature\\.\n*Required*: Yes \n*Type*: List of [ColumnTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-columntag.html) \n*Maximum*: `16` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet TransformOperation": { + "CastColumnTypeOperation": "A transform operation that casts a column to a different type\\. \n*Required*: No \n*Type*: [CastColumnTypeOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-castcolumntypeoperation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CreateColumnsOperation": "An operation that creates calculated columns\\. Columns created in one such operation form a lexical closure\\. \n*Required*: No \n*Type*: [CreateColumnsOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-createcolumnsoperation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FilterOperation": "An operation that filters rows based on some condition\\. \n*Required*: No \n*Type*: [FilterOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-filteroperation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProjectOperation": "An operation that projects columns\\. Operations that come after a projection can only refer to projected columns\\. \n*Required*: No \n*Type*: [ProjectOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-projectoperation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RenameColumnOperation": "An operation that renames a column\\. \n*Required*: No \n*Type*: [RenameColumnOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-renamecolumnoperation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TagColumnOperation": "An operation that tags a column with additional information\\. \n*Required*: No \n*Type*: [TagColumnOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-tagcolumnoperation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSet UploadSettings": { + "ContainsHeader": "Whether the file has a header row, or the files each have a header row\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Delimiter": "The delimiter between values in the file\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Format": "File format\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CLF | CSV | ELF | JSON | TSV | XLSX` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StartFromRow": "A row number to start reading data from\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextQualifier": "Text qualifier\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DOUBLE_QUOTE | SINGLE_QUOTE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource": { + "AlternateDataSourceParameters": "A set of alternate data source parameters that you want to share for the credentials stored with this data source\\. The credentials are applied in tandem with the data source parameters when you copy a data source by using a create or update request\\. The API operation compares the `DataSourceParameters` structure that's in the request with the structures in the `AlternateDataSourceParameters` allow list\\. If the structures are an exact match, the request is allowed to use the credentials from this existing data source\\. If the `AlternateDataSourceParameters` list is null, the `Credentials` originally used with this `DataSourceParameters` are automatically allowed\\. \n*Required*: No \n*Type*: List of [DataSourceParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-datasourceparameters.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AwsAccountId": "The AWS account ID\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Credentials": "The credentials Amazon QuickSight that uses to connect to your underlying source\\. Currently, only credentials based on user name and password are supported\\. \n*Required*: No \n*Type*: [DataSourceCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-datasourcecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataSourceId": "An ID for the data source\\. This ID is unique per AWS Region for each AWS account\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DataSourceParameters": "The parameters that Amazon QuickSight uses to connect to your underlying source\\. \n*Required*: No \n*Type*: [DataSourceParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-datasourceparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ErrorInfo": "Error information from the last update or the creation of the data source\\. \n*Required*: No \n*Type*: [DataSourceErrorInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-datasourceerrorinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A display name for the data source\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Permissions": "A list of resource permissions on the data source\\. \n*Required*: No \n*Type*: List of [ResourcePermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-resourcepermission.html) \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SslProperties": "Secure Socket Layer \\(SSL\\) properties that apply when Amazon QuickSight connects to your underlying source\\. \n*Required*: No \n*Type*: [SslProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-sslproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Contains a map of the key\\-value pairs for the resource tag or tags assigned to the data source\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of the data source\\. To return a list of all data sources, use `ListDataSources`\\. \nUse `AMAZON_ELASTICSEARCH` for Amazon OpenSearch Service\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADOBE_ANALYTICS | AMAZON_ELASTICSEARCH | AMAZON_OPENSEARCH | ATHENA | AURORA | AURORA_POSTGRESQL | AWS_IOT_ANALYTICS | EXASOL | GITHUB | JIRA | MARIADB | MYSQL | ORACLE | POSTGRESQL | PRESTO | REDSHIFT | S3 | SALESFORCE | SERVICENOW | SNOWFLAKE | SPARK | SQLSERVER | TERADATA | TIMESTREAM | TWITTER` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpcConnectionProperties": "Use this parameter only when you want Amazon QuickSight to use a VPC connection when connecting to your underlying source\\. \n*Required*: No \n*Type*: [VpcConnectionProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-vpcconnectionproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource AmazonElasticsearchParameters": { + "Domain": "The OpenSearch domain\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource AmazonOpenSearchParameters": { + "Domain": "The OpenSearch domain\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource AthenaParameters": { + "WorkGroup": "The workgroup that Amazon Athena uses\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource AuroraParameters": { + "Database": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Host": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource AuroraPostgreSqlParameters": { + "Database": "The Amazon Aurora PostgreSQL database to connect to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Host": "The Amazon Aurora PostgreSQL\\-Compatible host to connect to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "The port that Amazon Aurora PostgreSQL is listening on\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource CredentialPair": { + "AlternateDataSourceParameters": "A set of alternate data source parameters that you want to share for these credentials\\. The credentials are applied in tandem with the data source parameters when you copy a data source by using a create or update request\\. The API operation compares the `DataSourceParameters` structure that's in the request with the structures in the `AlternateDataSourceParameters` allow list\\. If the structures are an exact match, the request is allowed to use the new data source with the existing credentials\\. If the `AlternateDataSourceParameters` list is null, the `DataSourceParameters` originally used with these `Credentials` is automatically allowed\\. \n*Required*: No \n*Type*: List of [DataSourceParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-datasourceparameters.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Password": "Password\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Username": "User name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource DataSourceCredentials": { + "CopySourceArn": "The Amazon Resource Name \\(ARN\\) of a data source that has the credential pair that you want to use\\. When `CopySourceArn` is not null, the credential pair from the data source in the ARN is used as the credentials for the `DataSourceCredentials` structure\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:[-a-z0-9]*:quicksight:[-a-z0-9]*:[0-9]{12}:datasource/.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CredentialPair": "Credential pair\\. For more information, see ` [CredentialPair](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_CredentialPair.html) `\\. \n*Required*: No \n*Type*: [CredentialPair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-credentialpair.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource DataSourceErrorInfo": { + "Message": "Error message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "Error type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ACCESS_DENIED | CONFLICT | COPY_SOURCE_NOT_FOUND | ENGINE_VERSION_NOT_SUPPORTED | GENERIC_SQL_FAILURE | TIMEOUT | UNKNOWN | UNKNOWN_HOST` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource DataSourceParameters": { + "AmazonElasticsearchParameters": "The parameters for OpenSearch\\. \n*Required*: No \n*Type*: [AmazonElasticsearchParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-amazonelasticsearchparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AmazonOpenSearchParameters": "The parameters for OpenSearch\\. \n*Required*: No \n*Type*: [AmazonOpenSearchParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-amazonopensearchparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AthenaParameters": "The parameters for Amazon Athena\\. \n*Required*: No \n*Type*: [AthenaParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-athenaparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuroraParameters": "The parameters for Amazon Aurora MySQL\\. \n*Required*: No \n*Type*: [AuroraParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-auroraparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuroraPostgreSqlParameters": "The parameters for Amazon Aurora\\. \n*Required*: No \n*Type*: [AuroraPostgreSqlParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-aurorapostgresqlparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MariaDbParameters": "The parameters for MariaDB\\. \n*Required*: No \n*Type*: [MariaDbParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-mariadbparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MySqlParameters": "The parameters for MySQL\\. \n*Required*: No \n*Type*: [MySqlParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-mysqlparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OracleParameters": "Oracle parameters\\. \n*Required*: No \n*Type*: [OracleParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-oracleparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PostgreSqlParameters": "The parameters for PostgreSQL\\. \n*Required*: No \n*Type*: [PostgreSqlParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-postgresqlparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrestoParameters": "The parameters for Presto\\. \n*Required*: No \n*Type*: [PrestoParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-prestoparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RdsParameters": "The parameters for Amazon RDS\\. \n*Required*: No \n*Type*: [RdsParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-rdsparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RedshiftParameters": "The parameters for Amazon Redshift\\. \n*Required*: No \n*Type*: [RedshiftParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-redshiftparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Parameters": "The parameters for S3\\. \n*Required*: No \n*Type*: [S3Parameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-s3parameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnowflakeParameters": "The parameters for Snowflake\\. \n*Required*: No \n*Type*: [SnowflakeParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-snowflakeparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SparkParameters": "The parameters for Spark\\. \n*Required*: No \n*Type*: [SparkParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-sparkparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SqlServerParameters": "The parameters for SQL Server\\. \n*Required*: No \n*Type*: [SqlServerParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-sqlserverparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TeradataParameters": "The parameters for Teradata\\. \n*Required*: No \n*Type*: [TeradataParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-teradataparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource ManifestFileLocation": { + "Bucket": "Amazon S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Key": "Amazon S3 key that identifies an object\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource MariaDbParameters": { + "Database": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Host": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource MySqlParameters": { + "Database": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Host": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource OracleParameters": { + "Database": "Database\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Host": "Host\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource PostgreSqlParameters": { + "Database": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Host": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource PrestoParameters": { + "Catalog": "Catalog\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Host": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource RdsParameters": { + "Database": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceId": "Instance ID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource RedshiftParameters": { + "ClusterId": "Cluster ID\\. This field can be blank if the `Host` and `Port` are provided\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Database": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Host": "Host\\. This field can be blank if `ClusterId` is provided\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "Port\\. This field can be blank if the `ClusterId` is provided\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource ResourcePermission": { + "Actions": "The IAM action to grant or revoke permissions on\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Principal": "The Amazon Resource Name \\(ARN\\) of the principal\\. This can be one of the following: \n+ The ARN of an Amazon QuickSight user or group associated with a data source or dataset\\. \\(This is common\\.\\)\n+ The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme\\. \\(This is common\\.\\)\n+ The ARN of an AWS account root: This is an IAM ARN rather than a Amazon QuickSight ARN\\. Use this option only to share resources \\(templates\\) across AWS accounts\\. \\(This is less common\\.\\)\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource S3Parameters": { + "ManifestFileLocation": "Location of the Amazon S3 manifest file\\. This is NULL if the manifest file was uploaded into Amazon QuickSight\\. \n*Required*: Yes \n*Type*: [ManifestFileLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-manifestfilelocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource SnowflakeParameters": { + "Database": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Host": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Warehouse": "Warehouse\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource SparkParameters": { + "Host": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource SqlServerParameters": { + "Database": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Host": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource SslProperties": { + "DisableSsl": "A Boolean option to control whether SSL should be disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource TeradataParameters": { + "Database": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Host": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::DataSource VpcConnectionProperties": { + "VpcConnectionArn": "The Amazon Resource Name \\(ARN\\) for the VPC connection\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Template": { + "AwsAccountId": "The ID for the AWS account that the group is in\\. You use the ID for the AWS account that contains your Amazon QuickSight account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "A display name for the template\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Permissions": "A list of resource permissions to be set on the template\\. \n*Required*: No \n*Type*: List of [ResourcePermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-resourcepermission.html) \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceEntity": "The entity that you are using as a source when you create the template\\. In `SourceEntity`, you specify the type of object you're using as source: `SourceTemplate` for a template or `SourceAnalysis` for an analysis\\. Both of these require an Amazon Resource Name \\(ARN\\)\\. For `SourceTemplate`, specify the ARN of the source template\\. For `SourceAnalysis`, specify the ARN of the source analysis\\. The `SourceTemplate` ARN can contain any AWS account and any Amazon QuickSight\\-supported AWS Region\\. \nUse the `DataSetReferences` entity within `SourceTemplate` or `SourceAnalysis` to list the replacement datasets for the placeholders listed in the original\\. The schema in each dataset must match its placeholder\\. \n*Required*: Yes \n*Type*: [TemplateSourceEntity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-templatesourceentity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Contains a map of the key\\-value pairs for the resource tag or tags assigned to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateId": "An ID for the template that you want to create\\. This template is unique per AWS Region; in each AWS account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `[\\w\\-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VersionDescription": "A description of the current template version being created\\. This API operation creates the first version of the template\\. Every time `UpdateTemplate` is called, a new version is created\\. Each version of the template maintains a description of the version in the `VersionDescription` field\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Template DataSetReference": { + "DataSetArn": "Dataset Amazon Resource Name \\(ARN\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataSetPlaceholder": "Dataset placeholder\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Template ResourcePermission": { + "Actions": "The IAM action to grant or revoke permissions on\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Principal": "The Amazon Resource Name \\(ARN\\) of the principal\\. This can be one of the following: \n+ The ARN of an Amazon QuickSight user or group associated with a data source or dataset\\. \\(This is common\\.\\)\n+ The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme\\. \\(This is common\\.\\)\n+ The ARN of an AWS account root: This is an IAM ARN rather than a Amazon QuickSight ARN\\. Use this option only to share resources \\(templates\\) across AWS accounts\\. \\(This is less common\\.\\)\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Template TemplateSourceAnalysis": { + "Arn": "The Amazon Resource Name \\(ARN\\) of the resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataSetReferences": "A structure containing information about the dataset references used as placeholders in the template\\. \n*Required*: Yes \n*Type*: List of [DataSetReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-datasetreference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Template TemplateSourceEntity": { + "SourceAnalysis": "The source analysis, if it is based on an analysis\\. \n*Required*: No \n*Type*: [TemplateSourceAnalysis](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-templatesourceanalysis.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceTemplate": "The source template, if it is based on an template\\. \n*Required*: No \n*Type*: [TemplateSourceTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-templatesourcetemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Template TemplateSourceTemplate": { + "Arn": "The Amazon Resource Name \\(ARN\\) of the resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Theme": { + "AwsAccountId": "The ID of the AWS account where you want to store the new theme\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BaseThemeId": "The ID of the theme that a custom theme will inherit from\\. All themes inherit from one of the starting themes defined by Amazon QuickSight\\. For a list of the starting themes, use `ListThemes` or choose **Themes** from within an analysis\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `[\\w\\-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Configuration": "The theme configuration, which contains the theme display properties\\. \n*Required*: No \n*Type*: [ThemeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-themeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A display name for the theme\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Permissions": "A valid grouping of resource permissions to apply to the new theme\\. \n*Required*: No \n*Type*: List of [ResourcePermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-resourcepermission.html) \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A map of the key\\-value pairs for the resource tag or tags that you want to add to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ThemeId": "An ID for the theme that you want to create\\. The theme ID is unique per AWS Region in each AWS account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `[\\w\\-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VersionDescription": "A description of the first version of the theme that you're creating\\. Every time `UpdateTheme` is called, a new version is created\\. Each version of the theme has a description of the version in the `VersionDescription` field\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Theme BorderStyle": { + "Show": "The option to enable display of borders for visuals\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Theme DataColorPalette": { + "Colors": "The hexadecimal codes for the colors\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EmptyFillColor": "The hexadecimal code of a color that applies to charts where a lack of data is highlighted\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinMaxGradient": "The minimum and maximum hexadecimal codes that describe a color gradient\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Theme Font": { + "FontFamily": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Theme GutterStyle": { + "Show": "This Boolean value controls whether to display a gutter space between sheet tiles\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Theme MarginStyle": { + "Show": "This Boolean value controls whether to display sheet margins\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Theme ResourcePermission": { + "Actions": "The IAM action to grant or revoke permissions on\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Principal": "The Amazon Resource Name \\(ARN\\) of the principal\\. This can be one of the following: \n+ The ARN of an Amazon QuickSight user or group associated with a data source or dataset\\. \\(This is common\\.\\)\n+ The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme\\. \\(This is common\\.\\)\n+ The ARN of an AWS account root: This is an IAM ARN rather than a Amazon QuickSight ARN\\. Use this option only to share resources \\(templates\\) across AWS accounts\\. \\(This is less common\\.\\)\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Theme SheetStyle": { + "Tile": "The display options for tiles\\. \n*Required*: No \n*Type*: [TileStyle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-tilestyle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TileLayout": "The layout options for tiles\\. \n*Required*: No \n*Type*: [TileLayoutStyle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-tilelayoutstyle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Theme ThemeConfiguration": { + "DataColorPalette": "Color properties that apply to chart data colors\\. \n*Required*: No \n*Type*: [DataColorPalette](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-datacolorpalette.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Sheet": "Display options related to sheets\\. \n*Required*: No \n*Type*: [SheetStyle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-sheetstyle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Typography": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [Typography](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-typography.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UIColorPalette": "Color properties that apply to the UI and to charts, excluding the colors that apply to data\\. \n*Required*: No \n*Type*: [UIColorPalette](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-uicolorpalette.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Theme TileLayoutStyle": { + "Gutter": "The gutter settings that apply between tiles\\. \n*Required*: No \n*Type*: [GutterStyle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-gutterstyle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Margin": "The margin settings that apply around the outside edge of sheets\\. \n*Required*: No \n*Type*: [MarginStyle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-marginstyle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Theme TileStyle": { + "Border": "The border around a tile\\. \n*Required*: No \n*Type*: [BorderStyle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-borderstyle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Theme Typography": { + "FontFamilies": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of [Font](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-font.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::QuickSight::Theme UIColorPalette": { + "Accent": "This color is that applies to selected states and buttons\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AccentForeground": "The foreground color that applies to any text or other elements that appear over the accent color\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Danger": "The color that applies to error messages\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DangerForeground": "The foreground color that applies to any text or other elements that appear over the error color\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Dimension": "The color that applies to the names of fields that are identified as dimensions\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DimensionForeground": "The foreground color that applies to any text or other elements that appear over the dimension color\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Measure": "The color that applies to the names of fields that are identified as measures\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MeasureForeground": "The foreground color that applies to any text or other elements that appear over the measure color\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrimaryBackground": "The background color that applies to visuals and other high emphasis UI\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrimaryForeground": "The color of text and other foreground elements that appear over the primary background regions, such as grid lines, borders, table banding, icons, and so on\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecondaryBackground": "The background color that applies to the sheet background and sheet controls\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecondaryForeground": "The foreground color that applies to any sheet title, sheet control text, or UI that appears over the secondary background\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Success": "The color that applies to success messages, for example the check mark for a successful download\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SuccessForeground": "The foreground color that applies to any text or other elements that appear over the success color\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Warning": "This color that applies to warning and informational messages\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WarningForeground": "The foreground color that applies to any text or other elements that appear over the warning color\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RAM::ResourceShare": { + "AllowExternalPrincipals": "Specifies whether principals outside your organization in AWS Organizations can be associated with a resource share\\. A value of `true` lets you share with individual AWS accounts that are *not* in your organization\\. A value of `false` only has meaning if your account is a member of an AWS Organization\\. The default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "Specifies the name of the resource share\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PermissionArns": "Specifies the [Amazon Resource Names \\(ARNs\\)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the AWS RAM permission to associate with the resource share\\. If you do not specify an ARN for the permission, AWS RAM automatically attaches the default version of the permission for each resource type\\. You can associate only one permission with each resource type included in the resource share\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Principals": "Specifies a list of one or more principals to associate with the resource share\\. \nYou can include the following values: \n+ An AWS account ID, for example: `123456789012` \n+ An [Amazon Resoure Name \\(ARN\\)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of an organization in AWS Organizations, for example: `arn:aws:organizations::123456789012:organization/o-exampleorgid` \n+ An ARN of an organizational unit \\(OU\\) in AWS Organizations, for example: `arn:aws:organizations::123456789012:ou/o-exampleorgid/ou-examplerootid-exampleouid123` \n+ An ARN of an IAM role, for example: `arn:aws:iam::123456789012:role/rolename` \n+ An ARN of an IAM user, for example: `arn:aws:iam::123456789012user/username` \nNot all resource types can be shared with IAM roles and users\\. For more information, see [Sharing with IAM roles and users](https://docs.aws.amazon.com/ram/latest/userguide/permissions.html#permissions-rbp-supported-resource-types) in the * AWS Resource Access Manager User Guide*\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceArns": "Specifies a list of one or more ARNs of the resources to associate with the resource share\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Specifies one or more tags to attach to the resource share itself\\. It doesn't attach the tags to the resources associated with the resource share\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RDS::DBCluster": { + "AssociatedRoles": "Provides a list of the AWS Identity and Access Management \\(IAM\\) roles that are associated with the DB cluster\\. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon Web Services on your behalf\\. \n*Required*: No \n*Type*: List of [DBClusterRole](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-dbclusterrole.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AvailabilityZones": "A list of Availability Zones \\(AZs\\) where instances in the DB cluster can be created\\. For information on AWS Regions and Availability Zones, see [Choosing the Regions and Availability Zones](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.RegionsAndAvailabilityZones.html) in the *Amazon Aurora User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BacktrackWindow": "The target backtrack window, in seconds\\. To disable backtracking, set this value to 0\\. \nCurrently, Backtrack is only supported for Aurora MySQL DB clusters\\.\nDefault: 0 \nConstraints: \n+ If specified, this value must be set to a number from 0 to 259,200 \\(72 hours\\)\\.\n*Required*: No \n*Type*: Long \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BackupRetentionPeriod": "The number of days for which automated backups are retained\\. \nDefault: 1 \nConstraints: \n+ Must be a value from 1 to 35\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CopyTagsToSnapshot": "A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster\\. The default is not to copy them\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DBClusterIdentifier": "The DB cluster identifier\\. This parameter is stored as a lowercase string\\. \nConstraints: \n+ Must contain from 1 to 63 letters, numbers, or hyphens\\.\n+ First character must be a letter\\.\n+ Can't end with a hyphen or contain two consecutive hyphens\\.\nExample: `my-cluster1` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DBClusterParameterGroupName": "The name of the DB cluster parameter group to associate with this DB cluster\\. \nIf you apply a parameter group to an existing DB cluster, then its DB instances might need to reboot\\. This can result in an outage while the DB instances are rebooting\\. \nIf you apply a change to parameter group associated with a stopped DB cluster, then the update stack waits until the DB cluster is started\\.\nTo list all of the available DB cluster parameter group names, use the following command: \n`aws rds describe-db-cluster-parameter-groups --query \"DBClusterParameterGroups[].DBClusterParameterGroupName\" --output text` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DBSubnetGroupName": "A DB subnet group that you want to associate with this DB cluster\\. \nIf you are restoring a DB cluster to a point in time with `RestoreType` set to `copy-on-write`, and don't specify a DB subnet group name, then the DB cluster is restored with a default DB subnet group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DatabaseName": "The name of your database\\. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster\\. For naming constraints, see [Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon Aurora User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DeletionProtection": "A value that indicates whether the DB cluster has deletion protection enabled\\. The database can't be deleted when deletion protection is enabled\\. By default, deletion protection is disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableCloudwatchLogsExports": "The list of log types that need to be enabled for exporting to CloudWatch Logs\\. The values in the list depend on the DB engine being used\\. For more information, see [ Publishing Database Logs to Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) in the *Amazon Aurora User Guide*\\. \n **Aurora MySQL** \nValid values: `audit`, `error`, `general`, `slowquery` \n **Aurora PostgreSQL** \nValid values: `postgresql` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableHttpEndpoint": "A value that indicates whether to enable the HTTP endpoint for an Aurora Serverless DB cluster\\. By default, the HTTP endpoint is disabled\\. \nWhen enabled, the HTTP endpoint provides a connectionless web service API for running SQL queries on the Aurora Serverless DB cluster\\. You can also query your database from inside the RDS console with the query editor\\. \nFor more information, see [Using the Data API for Aurora Serverless](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon Aurora User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableIAMDatabaseAuthentication": "A value that indicates whether to enable mapping of AWS Identity and Access Management \\(IAM\\) accounts to database accounts\\. By default, mapping is disabled\\. \nFor more information, see [ IAM Database Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html) in the *Amazon Aurora User Guide\\.* \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Engine": "The name of the database engine to be used for this DB cluster\\. \nValid Values: `aurora` \\(for MySQL 5\\.6\\-compatible Aurora\\), `aurora-mysql` \\(for MySQL 5\\.7\\-compatible Aurora\\), and `aurora-postgresql` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "EngineMode": "The DB engine mode of the DB cluster, either `provisioned`, `serverless`, `parallelquery`, `global`, or `multimaster`\\. \nThe `parallelquery` engine mode isn't required for Aurora MySQL version 1\\.23 and higher 1\\.x versions, and version 2\\.09 and higher 2\\.x versions\\. \nThe `global` engine mode isn't required for Aurora MySQL version 1\\.22 and higher 1\\.x versions, and `global` engine mode isn't required for any 2\\.x versions\\. \nThe `multimaster` engine mode only applies for DB clusters created with Aurora MySQL version 5\\.6\\.10a\\. \nFor Aurora PostgreSQL, the `global` engine mode isn't required, and both the `parallelquery` and the `multimaster` engine modes currently aren't supported\\. \nLimitations and requirements apply to some DB engine modes\\. For more information, see the following sections in the *Amazon Aurora User Guide*: \n+ [ Limitations of Aurora Serverless](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.limitations) \n+ [ Limitations of Parallel Query](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-mysql-parallel-query.html#aurora-mysql-parallel-query-limitations) \n+ [ Limitations of Aurora Global Databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database.limitations) \n+ [ Limitations of Multi\\-Master Clusters](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-multi-master.html#aurora-multi-master-limitations) \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EngineVersion": "The version number of the database engine to use\\. \nTo list all of the available engine versions for `aurora` \\(for MySQL 5\\.6\\-compatible Aurora\\), use the following command: \n`aws rds describe-db-engine-versions --engine aurora --query \"DBEngineVersions[].EngineVersion\"` \nTo list all of the available engine versions for `aurora-mysql` \\(for MySQL 5\\.7\\-compatible Aurora\\), use the following command: \n`aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"` \nTo list all of the available engine versions for `aurora-postgresql`, use the following command: \n`aws rds describe-db-engine-versions --engine aurora-postgresql --query \"DBEngineVersions[].EngineVersion\"` \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "GlobalClusterIdentifier": "If you are configuring an Aurora global database cluster and want your Aurora DB cluster to be a secondary member in the global database cluster, specify the global cluster ID of the global database cluster\\. To define the primary database cluster of the global cluster, use the [AWS::RDS::GlobalCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html) resource\\. \n If you aren't configuring a global database cluster, don't specify this property\\. \nTo remove the DB cluster from a global database cluster, specify an empty value for the `GlobalClusterIdentifier` property\\.\nFor information about Aurora global databases, see [ Working with Amazon Aurora Global Databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) in the *Amazon Aurora User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "KmsKeyId": "The Amazon Resource Name \\(ARN\\) of the AWS KMS key that is used to encrypt the database instances in the DB cluster, such as `arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef`\\. If you enable the `StorageEncrypted` property but don't specify this property, the default KMS key is used\\. If you specify this property, you must set the `StorageEncrypted` property to `true`\\. \nIf you specify the `SnapshotIdentifier` property, the `StorageEncrypted` property value is inherited from the snapshot, and if the DB cluster is encrypted, the specified `KmsKeyId` property is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MasterUserPassword": "The master password for the DB instance\\. \nIf you specify the `SourceDBClusterIdentifier` or `SnapshotIdentifier` property, don't specify this property\\. The value is inherited from the source DB instance or snapshot\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MasterUsername": "The name of the master user for the DB cluster\\. \nIf you specify the `SourceDBClusterIdentifier` or `SnapshotIdentifier` property, don't specify this property\\. The value is inherited from the source DB instance or snapshot\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Port": "The port number on which the DB instances in the DB cluster accept connections\\. \nDefault: \n+ When `EngineMode` is `provisioned`, `3306` \\(for both Aurora MySQL and Aurora PostgreSQL\\)\n+ When `EngineMode` is `serverless`:\n + `3306` when `Engine` is `aurora` or `aurora-mysql`\n + `5432` when `Engine` is `aurora-postgresql`\nThe `No interruption` on update behavior only applies to DB clusters\\. If you are updating a DB instance, see [Port](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-port) for the AWS::RDS::DBInstance resource\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreferredBackupWindow": "The daily time range during which automated backups are created\\. For more information, see [ Backup Window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.Backups.BackupWindow) in the *Amazon Aurora User Guide\\.* \nConstraints: \n+ Must be in the format `hh24:mi-hh24:mi`\\.\n+ Must be in Universal Coordinated Time \\(UTC\\)\\.\n+ Must not conflict with the preferred maintenance window\\.\n+ Must be at least 30 minutes\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreferredMaintenanceWindow": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time \\(UTC\\)\\. \nFormat: `ddd:hh24:mi-ddd:hh24:mi` \nThe default is a 30\\-minute window selected at random from an 8\\-hour block of time for each AWS Region, occurring on a random day of the week\\. To see the time blocks available, see [ Adjusting the Preferred DB Cluster Maintenance Window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow.Aurora) in the *Amazon Aurora User Guide\\.* \nValid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun\\. \nConstraints: Minimum 30\\-minute window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReplicationSourceIdentifier": "The Amazon Resource Name \\(ARN\\) of the source DB instance or DB cluster if this DB cluster is created as a read replica\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RestoreType": "The type of restore to be performed\\. You can specify one of the following values: \n+ `full-copy` \\- The new DB cluster is restored as a full copy of the source DB cluster\\.\n+ `copy-on-write` \\- The new DB cluster is restored as a clone of the source DB cluster\\.\nConstraints: You can't specify `copy-on-write` if the engine version of the source DB cluster is earlier than 1\\.11\\. \nIf you don't specify a `RestoreType` value, then the new DB cluster is restored as a full copy of the source DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ScalingConfiguration": "The `ScalingConfiguration` property type specifies the scaling configuration of an Aurora Serverless DB cluster\\. \n*Required*: No \n*Type*: [ScalingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-scalingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnapshotIdentifier": "The identifier for the DB snapshot or DB cluster snapshot to restore from\\. \nYou can use either the name or the Amazon Resource Name \\(ARN\\) to specify a DB cluster snapshot\\. However, you can use only the ARN to specify a DB snapshot\\. \nAfter you restore a DB cluster with a `SnapshotIdentifier` property, you must specify the same `SnapshotIdentifier` property for any future updates to the DB cluster\\. When you specify this property for an update, the DB cluster is not restored from the snapshot again, and the data in the database is not changed\\. However, if you don't specify the `SnapshotIdentifier` property, an empty DB cluster is created, and the original DB cluster is deleted\\. If you specify a property that is different from the previous snapshot restore property, a new DB cluster is restored from the specified `SnapshotIdentifier` property, and the original DB cluster is deleted\\. \nIf you specify the `SnapshotIdentifier` property to restore a DB cluster \\(as opposed to specifying it for DB cluster updates\\), then don't specify the following properties: \n+ `GlobalClusterIdentifier`\n+ `MasterUsername`\n+ `ReplicationSourceIdentifier`\n+ `RestoreType`\n+ `SourceDBClusterIdentifier`\n+ `SourceRegion`\n+ `StorageEncrypted`\n+ `UseLatestRestorableTime`\nConstraints: \n+ Must match the identifier of an existing Snapshot\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceDBClusterIdentifier": "When restoring a DB cluster to a point in time, the identifier of the source DB cluster from which to restore\\. \nConstraints: \n+ Must match the identifier of an existing DBCluster\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceRegion": "The AWS Region which contains the source DB cluster when replicating a DB cluster\\. For example, `us-east-1`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StorageEncrypted": "Indicates whether the DB cluster is encrypted\\. \nIf you specify the `KmsKeyId` property, then you must enable encryption\\. \nIf you specify the `SnapshotIdentifier` or `SourceDBClusterIdentifier` property, don't specify this property\\. The value is inherited from the snapshot or source DB cluster, and if the DB cluster is encrypted, the specified `KmsKeyId` property is used\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Tags to assign to the DB cluster\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UseLatestRestorableTime": "A value that indicates whether to restore the DB cluster to the latest restorable backup time\\. By default, the DB cluster is not restored to the latest restorable backup time\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpcSecurityGroupIds": "A list of EC2 VPC security groups to associate with this DB cluster\\. \nIf you plan to update the resource, don't specify VPC security groups in a shared VPC\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RDS::DBCluster DBClusterRole": { + "FeatureName": "The name of the feature associated with the AWS Identity and Access Management \\(IAM\\) role\\. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other AWS services on your behalf\\. For the list of supported feature names, see the `SupportedFeatureNames` description in [DBEngineVersion](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBEngineVersion.html) in the *Amazon RDS API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM role that is associated with the DB cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RDS::DBCluster ScalingConfiguration": { + "AutoPause": "A value that indicates whether to allow or disallow automatic pause for an Aurora DB cluster in `serverless` DB engine mode\\. A DB cluster can be paused only when it's idle \\(it has no connections\\)\\. \nIf a DB cluster is paused for more than seven days, the DB cluster might be backed up with a snapshot\\. In this case, the DB cluster is restored when there is a request to connect to it\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxCapacity": "The maximum capacity for an Aurora DB cluster in `serverless` DB engine mode\\. \nFor Aurora MySQL, valid capacity values are `1`, `2`, `4`, `8`, `16`, `32`, `64`, `128`, and `256`\\. \nFor Aurora PostgreSQL, valid capacity values are `2`, `4`, `8`, `16`, `32`, `64`, `192`, and `384`\\. \nThe maximum capacity must be greater than or equal to the minimum capacity\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinCapacity": "The minimum capacity for an Aurora DB cluster in `serverless` DB engine mode\\. \nFor Aurora MySQL, valid capacity values are `1`, `2`, `4`, `8`, `16`, `32`, `64`, `128`, and `256`\\. \nFor Aurora PostgreSQL, valid capacity values are `2`, `4`, `8`, `16`, `32`, `64`, `192`, and `384`\\. \nThe minimum capacity must be less than or equal to the maximum capacity\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecondsUntilAutoPause": "The time, in seconds, before an Aurora DB cluster in `serverless` mode is paused\\. \nSpecify a value between 300 and 86,400 seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RDS::DBClusterParameterGroup": { + "Description": "A friendly description for this DB cluster parameter group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Family": "The DB cluster parameter group family name\\. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a DB engine and engine version compatible with that DB cluster parameter group family\\. \nThe DB cluster parameter group family can't be changed when updating a DB cluster parameter group\\.\nTo list all of the available parameter group families, use the following command: \n`aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\"` \nThe output contains duplicates\\. \nFor more information, see [`CreateDBClusterParameterGroup`](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBClusterParameterGroup.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Parameters": "Provides a list of parameters for the DB cluster parameter group\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Tags to assign to the DB cluster parameter group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RDS::DBInstance": { + "AllocatedStorage": "The amount of storage \\(in gigabytes\\) to be initially allocated for the database instance\\. \nIf any value is set in the `Iops` parameter, `AllocatedStorage` must be at least 100 GiB, which corresponds to the minimum Iops value of 1,000\\. If you increase the `Iops` value \\(in 1,000 IOPS increments\\), then you must also increase the `AllocatedStorage` value \\(in 100\\-GiB increments\\)\\. \n **Amazon Aurora** \nNot applicable\\. Aurora cluster volumes automatically grow as the amount of data in your database increases, though you are only charged for the space that you use in an Aurora cluster volume\\. \n **MySQL** \nConstraints to the amount of storage for each storage type are the following: \n+ General Purpose \\(SSD\\) storage \\(gp2\\): Must be an integer from 20 to 65536\\.\n+ Provisioned IOPS storage \\(io1\\): Must be an integer from 100 to 65536\\.\n+ Magnetic storage \\(standard\\): Must be an integer from 5 to 3072\\.\n **MariaDB** \nConstraints to the amount of storage for each storage type are the following: \n+ General Purpose \\(SSD\\) storage \\(gp2\\): Must be an integer from 20 to 65536\\.\n+ Provisioned IOPS storage \\(io1\\): Must be an integer from 100 to 65536\\.\n+ Magnetic storage \\(standard\\): Must be an integer from 5 to 3072\\.\n **PostgreSQL** \nConstraints to the amount of storage for each storage type are the following: \n+ General Purpose \\(SSD\\) storage \\(gp2\\): Must be an integer from 20 to 65536\\.\n+ Provisioned IOPS storage \\(io1\\): Must be an integer from 100 to 65536\\.\n+ Magnetic storage \\(standard\\): Must be an integer from 5 to 3072\\.\n **Oracle** \nConstraints to the amount of storage for each storage type are the following: \n+ General Purpose \\(SSD\\) storage \\(gp2\\): Must be an integer from 20 to 65536\\.\n+ Provisioned IOPS storage \\(io1\\): Must be an integer from 100 to 65536\\.\n+ Magnetic storage \\(standard\\): Must be an integer from 10 to 3072\\.\n **SQL Server** \nConstraints to the amount of storage for each storage type are the following: \n+ General Purpose \\(SSD\\) storage \\(gp2\\):\n + Enterprise and Standard editions: Must be an integer from 20 to 16384\\.\n + Web and Express editions: Must be an integer from 20 to 16384\\.\n+ Provisioned IOPS storage \\(io1\\):\n + Enterprise and Standard editions: Must be an integer from 20 to 16384\\.\n + Web and Express editions: Must be an integer from 20 to 16384\\.\n+ Magnetic storage \\(standard\\):\n + Enterprise and Standard editions: Must be an integer from 20 to 1024\\.\n + Web and Express editions: Must be an integer from 20 to 1024\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AllowMajorVersionUpgrade": "A value that indicates whether major version upgrades are allowed\\. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible\\. \nConstraints: Major version upgrades must be allowed when specifying a value for the `EngineVersion` parameter that is a different major version than the DB instance's current version\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AssociatedRoles": "The AWS Identity and Access Management \\(IAM\\) roles associated with the DB instance\\. \n*Required*: No \n*Type*: List of [DBInstanceRole](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbinstance-dbinstancerole.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutoMinorVersionUpgrade": "A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window\\. By default, minor engine upgrades are applied automatically\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AvailabilityZone": "The Availability Zone that the database instance will be created in\\. \nDefault: A random, system\\-chosen Availability Zone in the endpoint's region\\. \n Example: `us-east-1d` \n Constraint: The AvailabilityZone parameter cannot be specified if the MultiAZ parameter is set to `true`\\. The specified Availability Zone must be in the same region as the current endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BackupRetentionPeriod": "The number of days for which automated backups are retained\\. Setting this parameter to a positive number enables backups\\. Setting this parameter to 0 disables automated backups\\. \n**Amazon Aurora** \nNot applicable\\. The retention period for automated backups is managed by the DB cluster\\. \nDefault: 1 \nConstraints: \n+ Must be a value from 0 to 35\n+ Can't be set to 0 if the DB instance is a source to read replicas\n*Required*: No \n*Type*: Integer \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "CACertificateIdentifier": "The identifier of the CA certificate for this DB instance\\. \nSpecifying or updating this property triggers a reboot\\.\nFor more information about CA certificate identifiers for RDS DB engines, see [ Rotating Your SSL/TLS Certificate](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html) in the *Amazon RDS User Guide*\\. \nFor more information about CA certificate identifiers for Aurora DB engines, see [ Rotating Your SSL/TLS Certificate](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL-certificate-rotation.html) in the *Amazon Aurora User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CharacterSetName": "For supported engines, indicates that the DB instance should be associated with the specified character set\\. \n **Amazon Aurora** \nNot applicable\\. The character set is managed by the DB cluster\\. For more information, see [AWS::RDS::DBCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CopyTagsToSnapshot": "A value that indicates whether to copy tags from the DB instance to snapshots of the DB instance\\. By default, tags are not copied\\. \n **Amazon Aurora** \nNot applicable\\. Copying tags to snapshots is managed by the DB cluster\\. Setting this value for an Aurora DB instance has no effect on the DB cluster setting\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DBClusterIdentifier": "The identifier of the DB cluster that the instance will belong to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DBInstanceClass": "The compute and memory capacity of the DB instance, for example, `db.m4.large`\\. Not all DB instance classes are available in all AWS Regions, or for all database engines\\. \nFor the full list of DB instance classes, and availability for your engine, see [DB Instance Class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) in the *Amazon RDS User Guide\\.* For more information about DB instance class pricing and AWS Region support for DB instance classes, see [Amazon RDS Pricing](http://aws.amazon.com/rds/pricing/)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "DBInstanceIdentifier": "A name for the DB instance\\. If you specify a name, AWS CloudFormation converts it to lowercase\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the DB instance\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nFor information about constraints that apply to DB instance identifiers, see [Naming constraints in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon RDS User Guide*\\. \nIf you specify a name, you can't perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DBName": "The meaning of this parameter differs according to the database engine you use\\. \n If you specify the ` [ DBSnapshotIdentifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsnapshotidentifier)` property, AWS CloudFormation ignores this property\\. \nIf you restore DB instances from snapshots, this property doesn't apply to the MySQL, PostgreSQL, or MariaDB engines\\.\n **MySQL** \nThe name of the database to create when the DB instance is created\\. If this parameter is not specified, no database is created in the DB instance\\. \nConstraints: \n+ Must contain 1 to 64 letters or numbers\\.\n+ Can't be a word reserved by the specified database engine\n **MariaDB** \nThe name of the database to create when the DB instance is created\\. If this parameter is not specified, no database is created in the DB instance\\. \nConstraints: \n+ Must contain 1 to 64 letters or numbers\\.\n+ Can't be a word reserved by the specified database engine\n **PostgreSQL** \nThe name of the database to create when the DB instance is created\\. If this parameter is not specified, the default `postgres` database is created in the DB instance\\. \nConstraints: \n+ Must contain 1 to 63 letters, numbers, or underscores\\.\n+ Must begin with a letter or an underscore\\. Subsequent characters can be letters, underscores, or digits \\(0\\-9\\)\\.\n+ Can't be a word reserved by the specified database engine\n **Oracle** \nThe Oracle System ID \\(SID\\) of the created DB instance\\. If you specify `null`, the default value `ORCL` is used\\. You can't specify the string NULL, or any other reserved word, for `DBName`\\. \nDefault: `ORCL` \nConstraints: \n+ Can't be longer than 8 characters\n **SQL Server** \nNot applicable\\. Must be null\\. \n **Amazon Aurora MySQL** \nThe name of the database to create when the primary DB instance of the Aurora MySQL DB cluster is created\\. If this parameter isn't specified for an Aurora MySQL DB cluster, no database is created in the DB cluster\\. \nConstraints: \n+ It must contain 1 to 64 alphanumeric characters\\.\n+ It can't be a word reserved by the database engine\\.\n **Amazon Aurora PostgreSQL** \nThe name of the database to create when the primary DB instance of the Aurora PostgreSQL DB cluster is created\\. If this parameter isn't specified for an Aurora PostgreSQL DB cluster, a database named `postgres` is created in the DB cluster\\. \nConstraints: \n+ It must contain 1 to 63 alphanumeric characters\\.\n+ It must begin with a letter or an underscore\\. Subsequent characters can be letters, underscores, or digits \\(0 to 9\\)\\.\n+ It can't be a word reserved by the database engine\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DBParameterGroupName": "The name of an existing DB parameter group or a reference to an [AWS::RDS::DBParameterGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbparametergroup.html) resource created in the template\\. \nTo list all of the available DB parameter group names, use the following command: \n`aws rds describe-db-parameter-groups --query \"DBParameterGroups[].DBParameterGroupName\" --output text` \nIf any of the data members of the referenced parameter group are changed during an update, the DB instance might need to be restarted, which causes some interruption\\. If the parameter group contains static parameters, whether they were changed or not, an update triggers a reboot\\.\nIf you don't specify a value for the `DBParameterGroupName` property, the default DB parameter group for the specified engine and engine version is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "DBSecurityGroups": "A list of the DB security groups to assign to the DB instance\\. The list can include both the name of existing DB security groups or references to AWS::RDS::DBSecurityGroup resources created in the template\\. \n If you set DBSecurityGroups, you must not set VPCSecurityGroups, and vice versa\\. Also, note that the DBSecurityGroups property exists only for backwards compatibility with older regions and is no longer recommended for providing security information to an RDS DB instance\\. Instead, use VPCSecurityGroups\\. \nIf you specify this property, AWS CloudFormation sends only the following properties \\(if specified\\) to Amazon RDS during create operations: \n+ `AllocatedStorage`\n+ `AutoMinorVersionUpgrade`\n+ `AvailabilityZone`\n+ `BackupRetentionPeriod`\n+ `CharacterSetName`\n+ `DBInstanceClass`\n+ `DBName`\n+ `DBParameterGroupName`\n+ `DBSecurityGroups`\n+ `DBSubnetGroupName`\n+ `Engine`\n+ `EngineVersion`\n+ `Iops`\n+ `LicenseModel`\n+ `MasterUsername`\n+ `MasterUserPassword`\n+ `MultiAZ`\n+ `OptionGroupName`\n+ `PreferredBackupWindow`\n+ `PreferredMaintenanceWindow`\nAll other properties are ignored\\. Specify a virtual private cloud \\(VPC\\) security group if you want to submit other properties, such as `StorageType`, `StorageEncrypted`, or `KmsKeyId`\\. If you're already using the `DBSecurityGroups` property, you can't use these other properties by updating your DB instance to use a VPC security group\\. You must recreate the DB instance\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DBSnapshotIdentifier": "The name or Amazon Resource Name \\(ARN\\) of the DB snapshot that's used to restore the DB instance\\. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot\\. \nBy specifying this property, you can create a DB instance from the specified DB snapshot\\. If the `DBSnapshotIdentifier` property is an empty string or the `AWS::RDS::DBInstance` declaration has no `DBSnapshotIdentifier` property, AWS CloudFormation creates a new database\\. If the property contains a value \\(other than an empty string\\), AWS CloudFormation creates a database from the specified snapshot\\. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack\\. \nSome DB instance properties aren't valid when you restore from a snapshot, such as the `MasterUsername` and `MasterUserPassword` properties\\. For information about the properties that you can specify, see the `RestoreDBInstanceFromDBSnapshot` action in the *Amazon RDS API Reference*\\. \nAfter you restore a DB instance with a `DBSnapshotIdentifier` property, you must specify the same `DBSnapshotIdentifier` property for any future updates to the DB instance\\. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed\\. However, if you don't specify the `DBSnapshotIdentifier` property, an empty DB instance is created, and the original DB instance is deleted\\. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified `DBSnapshotIdentifier` property, and the original DB instance is deleted\\. \nIf you specify the `DBSnapshotIdentifier` property to restore a DB instance \\(as opposed to specifying it for DB instance updates\\), then don't specify the following properties: \n+ `CharacterSetName`\n+ `DBClusterIdentifier`\n+ `DBName`\n+ `DeleteAutomatedBackups`\n+ `EnablePerformanceInsights`\n+ `KmsKeyId`\n+ `MasterUsername`\n+ `MonitoringInterval`\n+ `MonitoringRoleArn`\n+ `PerformanceInsightsKMSKeyId`\n+ `PerformanceInsightsRetentionPeriod`\n+ `PromotionTier`\n+ `SourceDBInstanceIdentifier`\n+ `SourceRegion`\n+ `StorageEncrypted`\n+ `Timezone`\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DBSubnetGroupName": "A DB subnet group to associate with the DB instance\\. If you update this value, the new subnet group must be a subnet group in a new VPC\\. \nIf there's no DB subnet group, then the DB instance isn't a VPC DB instance\\. \nFor more information about using Amazon RDS in a VPC, see [Using Amazon RDS with Amazon Virtual Private Cloud \\(VPC\\)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*\\. \n**Amazon Aurora** \nNot applicable\\. The DB subnet group is managed by the DB cluster\\. If specified, the setting must match the DB cluster setting\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DeleteAutomatedBackups": "A value that indicates whether to remove automated backups immediately after the DB instance is deleted\\. This parameter isn't case\\-sensitive\\. The default is to remove automated backups immediately after the DB instance is deleted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeletionProtection": "A value that indicates whether the DB instance has deletion protection enabled\\. The database can't be deleted when deletion protection is enabled\\. By default, deletion protection is disabled\\. For more information, see [ Deleting a DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html)\\. \n **Amazon Aurora** \nNot applicable\\. You can enable or disable deletion protection for the DB cluster\\. For more information, see `CreateDBCluster`\\. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Domain": "The Active Directory directory ID to create the DB instance in\\. Currently, only Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain\\. \nFor more information, see [ Kerberos Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html) in the *Amazon RDS User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainIAMRoleName": "Specify the name of the IAM role to be used when making API calls to the Directory Service\\. \nThis setting doesn't apply to RDS Custom\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableCloudwatchLogsExports": "The list of log types that need to be enabled for exporting to CloudWatch Logs\\. The values in the list depend on the DB engine being used\\. For more information, see [Publishing Database Logs to Amazon CloudWatch Logs ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) in the *Amazon Relational Database Service User Guide*\\. \n **Amazon Aurora** \nNot applicable\\. CloudWatch Logs exports are managed by the DB cluster\\. \n **MariaDB** \nValid values: `audit`, `error`, `general`, `slowquery` \n **Microsoft SQL Server** \nValid values: `agent`, `error` \n **MySQL** \nValid values: `audit`, `error`, `general`, `slowquery` \n **Oracle** \nValid values: `alert`, `audit`, `listener`, `trace` \n **PostgreSQL** \nValid values: `postgresql`, `upgrade` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableIAMDatabaseAuthentication": "A value that indicates whether to enable mapping of AWS Identity and Access Management \\(IAM\\) accounts to database accounts\\. By default, mapping is disabled\\. \nFor more information, see [ IAM Database Authentication for MySQL and PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html) in the *Amazon RDS User Guide\\.* \n **Amazon Aurora** \nNot applicable\\. Mapping AWS IAM accounts to database accounts is managed by the DB cluster\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnablePerformanceInsights": "A value that indicates whether to enable Performance Insights for the DB instance\\. For more information, see [Using Amazon Performance Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the *Amazon RDS User Guide*\\. \nThis setting doesn't apply to RDS Custom\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Engine": "The name of the database engine that you want to use for this DB instance\\. \nWhen you are creating a DB instance, the `Engine` property is required\\.\nValid Values: \n+ `aurora` \\(for MySQL 5\\.6\\-compatible Aurora\\)\n+ `aurora-mysql` \\(for MySQL 5\\.7\\-compatible Aurora\\)\n+ `aurora-postgresql`\n+ `mariadb`\n+ `mysql`\n+ `oracle-ee`\n+ `oracle-se2`\n+ `oracle-se1`\n+ `oracle-se`\n+ `postgres`\n+ `sqlserver-ee`\n+ `sqlserver-se`\n+ `sqlserver-ex`\n+ `sqlserver-web`\n*Required*: Conditional \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "EngineVersion": "The version number of the database engine to use\\. \nFor a list of valid engine versions, use the `DescribeDBEngineVersions` action\\. \nThe following are the database engines and links to information about the major and minor versions that are available with Amazon RDS\\. Not every database engine is available for every AWS Region\\. \n **Amazon Aurora** \nNot applicable\\. The version number of the database engine to be used by the DB instance is managed by the DB cluster\\. \n**MariaDB** \nSee [MariaDB on Amazon RDS Versions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html#MariaDB.Concepts.VersionMgmt) in the *Amazon RDS User Guide\\.* \n**Microsoft SQL Server** \nSee [Microsoft SQL Server Versions on Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.VersionSupport) in the *Amazon RDS User Guide\\.* \n**MySQL** \nSee [MySQL on Amazon RDS Versions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt) in the *Amazon RDS User Guide\\.* \n**Oracle** \nSee [Oracle Database Engine Release Notes](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.PatchComposition.html) in the *Amazon RDS User Guide\\.* \n**PostgreSQL** \nSee [Supported PostgreSQL Database Versions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.DBVersions) in the *Amazon RDS User Guide\\.* \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "Iops": "The number of I/O operations per second \\(IOPS\\) that the database provisions\\. The value must be equal to or greater than 1000\\. \nIf you specify this property, you must follow the range of allowed ratios of your requested IOPS rate to the amount of storage that you allocate \\(IOPS to allocated storage\\)\\. For example, you can provision an Oracle database instance with 1000 IOPS and 200 GiB of storage \\(a ratio of 5:1\\), or specify 2000 IOPS with 200 GiB of storage \\(a ratio of 10:1\\)\\. For more information, see [Amazon RDS Provisioned IOPS Storage to Improve Performance](https://docs.aws.amazon.com/AmazonRDS/latest/DeveloperGuide/CHAP_Storage.html#USER_PIOPS) in the *Amazon RDS User Guide*\\. \nIf you specify `io1` for the `StorageType` property, then you must also specify the `Iops` property\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKeyId": "The ARN of the AWS KMS key that's used to encrypt the DB instance, such as `arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef`\\. If you enable the StorageEncrypted property but don't specify this property, AWS CloudFormation uses the default KMS key\\. If you specify this property, you must set the StorageEncrypted property to true\\. \nIf you specify the `SourceDBInstanceIdentifier` property, the value is inherited from the source DB instance if the read replica is created in the same region\\. \nIf you create an encrypted read replica in a different AWS Region, then you must specify a KMS key for the destination AWS Region\\. KMS encryption keys are specific to the region that they're created in, and you can't use encryption keys from one region in another region\\. \nIf you specify the `SnapshotIdentifier` property, the `StorageEncrypted` property value is inherited from the snapshot, and if the DB instance is encrypted, the specified `KmsKeyId` property is used\\. \nIf you specify `DBSecurityGroups`, AWS CloudFormation ignores this property\\. To specify both a security group and this property, you must use a VPC security group\\. For more information about Amazon RDS and VPC, see [Using Amazon RDS with Amazon VPC](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html) in the *Amazon RDS User Guide*\\. \n **Amazon Aurora** \nNot applicable\\. The KMS key identifier is managed by the DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LicenseModel": "License model information for this DB instance\\. \n Valid values: \n+ Aurora MySQL \\- `general-public-license`\n+ Aurora PostgreSQL \\- `postgresql-license`\n+ MariaDB \\- `general-public-license`\n+ Microsoft SQL Server \\- `license-included`\n+ MySQL \\- `general-public-license`\n+ Oracle \\- `bring-your-own-license` or `license-included`\n+ PostgreSQL \\- `postgresql-license`\nIf you've specified `DBSecurityGroups` and then you update the license model, AWS CloudFormation replaces the underlying DB instance\\. This will incur some interruptions to database availability\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MasterUserPassword": "The password for the master user\\. The password can include any printable ASCII character except \"/\", \"\"\", or \"@\"\\. \n **Amazon Aurora** \nNot applicable\\. The password for the master user is managed by the DB cluster\\. \n **MariaDB** \nConstraints: Must contain from 8 to 41 characters\\. \n **Microsoft SQL Server** \nConstraints: Must contain from 8 to 128 characters\\. \n **MySQL** \nConstraints: Must contain from 8 to 41 characters\\. \n **Oracle** \nConstraints: Must contain from 8 to 30 characters\\. \n **PostgreSQL** \nConstraints: Must contain from 8 to 128 characters\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MasterUsername": "The master user name for the DB instance\\. \nIf you specify the `SourceDBInstanceIdentifier` or `DBSnapshotIdentifier` property, don't specify this property\\. The value is inherited from the source DB instance or snapshot\\.\n **Amazon Aurora** \nNot applicable\\. The name for the master user is managed by the DB cluster\\. \n **MariaDB** \nConstraints: \n+ Required for MariaDB\\.\n+ Must be 1 to 16 letters or numbers\\.\n+ Can't be a reserved word for the chosen database engine\\.\n **Microsoft SQL Server** \nConstraints: \n+ Required for SQL Server\\.\n+ Must be 1 to 128 letters or numbers\\.\n+ The first character must be a letter\\.\n+ Can't be a reserved word for the chosen database engine\\.\n **MySQL** \nConstraints: \n+ Required for MySQL\\.\n+ Must be 1 to 16 letters or numbers\\.\n+ First character must be a letter\\.\n+ Can't be a reserved word for the chosen database engine\\.\n **Oracle** \nConstraints: \n+ Required for Oracle\\.\n+ Must be 1 to 30 letters or numbers\\.\n+ First character must be a letter\\.\n+ Can't be a reserved word for the chosen database engine\\.\n **PostgreSQL** \nConstraints: \n+ Required for PostgreSQL\\.\n+ Must be 1 to 63 letters or numbers\\.\n+ First character must be a letter\\.\n+ Can't be a reserved word for the chosen database engine\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MaxAllocatedStorage": "The upper limit in gibibytes \\(GiB\\) to which Amazon RDS can automatically scale the storage of the DB instance\\. \nFor more information about this setting, including limitations that apply to it, see [ Managing capacity automatically with Amazon RDS storage autoscaling](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling) in the *Amazon RDS User Guide*\\. \nThis setting doesn't apply to RDS Custom\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MonitoringInterval": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance\\. To disable collection of Enhanced Monitoring metrics, specify 0\\. The default is 0\\. \nIf `MonitoringRoleArn` is specified, then you must set `MonitoringInterval` to a value other than 0\\. \nThis setting doesn't apply to RDS Custom\\. \nValid Values: `0, 1, 5, 10, 15, 30, 60` \n*Required*: No \n*Type*: Integer \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "MonitoringRoleArn": "The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs\\. For example, `arn:aws:iam:123456789012:role/emaccess`\\. For information on creating a monitoring role, see [Setting Up and Enabling Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling) in the *Amazon RDS User Guide*\\. \nIf `MonitoringInterval` is set to a value other than 0, then you must supply a `MonitoringRoleArn` value\\. \nThis setting doesn't apply to RDS Custom\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MultiAZ": "Specifies whether the database instance is a multiple Availability Zone deployment\\. You can't set the `AvailabilityZone` parameter if the `MultiAZ` parameter is set to true\\. \n **Amazon Aurora** \nNot applicable\\. Amazon Aurora storage is replicated across all of the Availability Zones and doesn't require the `MultiAZ` option to be set\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "OptionGroupName": "Indicates that the DB instance should be associated with the specified option group\\. \nPermanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group\\. Also, that option group can't be removed from a DB instance once it is associated with a DB instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PerformanceInsightsKMSKeyId": "The AWS KMS key identifier for encryption of Performance Insights data\\. \nThe KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key\\. \nIf you do not specify a value for `PerformanceInsightsKMSKeyId`, then Amazon RDS uses your default KMS key\\. There is a default KMS key for your AWS account\\. Your AWS account has a different default KMS key for each AWS Region\\. \nFor information about enabling Performance Insights, see [ EnablePerformanceInsights](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-enableperformanceinsights)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PerformanceInsightsRetentionPeriod": "The amount of time, in days, to retain Performance Insights data\\. Valid values are 7 or 731 \\(2 years\\)\\. \nFor information about enabling Performance Insights, see [ EnablePerformanceInsights](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-enableperformanceinsights)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "The port number on which the database accepts connections\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PreferredBackupWindow": "The daily time range during which automated backups are created if automated backups are enabled, using the `BackupRetentionPeriod` parameter\\. For more information, see [ Backup Window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow) in the *Amazon RDS User Guide\\.* \nConstraints: \n+ Must be in the format `hh24:mi-hh24:mi`\\.\n+ Must be in Universal Coordinated Time \\(UTC\\)\\.\n+ Must not conflict with the preferred maintenance window\\.\n+ Must be at least 30 minutes\\.\n **Amazon Aurora** \nNot applicable\\. The daily time range for creating automated backups is managed by the DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreferredMaintenanceWindow": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time \\(UTC\\)\\. \nFormat: `ddd:hh24:mi-ddd:hh24:mi` \nThe default is a 30\\-minute window selected at random from an 8\\-hour block of time for each AWS Region, occurring on a random day of the week\\. To see the time blocks available, see [ Adjusting the Preferred DB Instance Maintenance Window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow) in the *Amazon RDS User Guide\\.* \nThis property applies when AWS CloudFormation initially creates the DB instance\\. If you use AWS CloudFormation to update the DB instance, those updates are applied immediately\\.\nConstraints: Minimum 30\\-minute window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "ProcessorFeatures": "The number of CPU cores and the number of threads per core for the DB instance class of the DB instance\\. \nThis setting doesn't apply to RDS Custom\\. \n*Required*: No \n*Type*: List of [ProcessorFeature](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbinstance-processorfeature.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PromotionTier": "A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance\\. For more information, see [ Fault Tolerance for an Aurora DB Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance) in the *Amazon Aurora User Guide*\\. \nThis setting doesn't apply to RDS Custom\\. \nDefault: 1 \nValid Values: 0 \\- 15 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PubliclyAccessible": "Indicates whether the DB instance is an internet\\-facing instance\\. If you specify `true`, AWS CloudFormation creates an instance with a publicly resolvable DNS name, which resolves to a public IP address\\. If you specify false, AWS CloudFormation creates an internal instance with a DNS name that resolves to a private IP address\\. \n The default behavior value depends on your VPC setup and the database subnet group\\. For more information, see the `PubliclyAccessible` parameter in [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) in the *Amazon RDS API Reference*\\. \n If this resource has a public IP address and is also in a VPC that is defined in the same template, you must use the *DependsOn* attribute to declare a dependency on the VPC\\-gateway attachment\\. For more information, see [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html)\\. \nIf you specify DBSecurityGroups, AWS CloudFormation ignores this property\\. To specify a security group and this property, you must use a VPC security group\\. For more information about Amazon RDS and VPC, see [Using Amazon RDS with Amazon VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceDBInstanceIdentifier": "If you want to create a read replica DB instance, specify the ID of the source DB instance\\. Each DB instance can have a limited number of read replicas\\. For more information, see [Working with Read Replicas](https://docs.aws.amazon.com/AmazonRDS/latest/DeveloperGuide/USER_ReadRepl.html) in the *Amazon RDS User Guide*\\. \nFor information about constraints that apply to DB instance identifiers, see [Naming constraints in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon RDS User Guide*\\. \nThe `SourceDBInstanceIdentifier` property determines whether a DB instance is a read replica\\. If you remove the `SourceDBInstanceIdentifier` property from your template and then update your stack, AWS CloudFormation deletes the Read Replica and creates a new DB instance \\(not a read replica\\)\\. \n+ If you specify a source DB instance that uses VPC security groups, we recommend that you specify the `VPCSecurityGroups` property\\. If you don't specify the property, the read replica inherits the value of the `VPCSecurityGroups` property from the source DB when you create the replica\\. However, if you update the stack, AWS CloudFormation reverts the replica's `VPCSecurityGroups` property to the default value because it's not defined in the stack's template\\. This change might cause unexpected issues\\.\n+ Read replicas don't support deletion policies\\. AWS CloudFormation ignores any deletion policy that's associated with a read replica\\.\n+ If you specify `SourceDBInstanceIdentifier`, don't specify the `DBSnapshotIdentifier` property\\. You can't create a read replica from a snapshot\\.\n+ Don't set the `BackupRetentionPeriod`, `DBName`, `MasterUsername`, `MasterUserPassword`, and `PreferredBackupWindow` properties\\. The database attributes are inherited from the source DB instance, and backups are disabled for read replicas\\.\n+ If the source DB instance is in a different region than the read replica, specify the source region in `SourceRegion`, and specify an ARN for a valid DB instance in `SourceDBInstanceIdentifier`\\. For more information, see [ Constructing a Amazon RDS Amazon Resource Name \\(ARN\\)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html#USER_Tagging.ARN) in the *Amazon RDS User Guide*\\.\n+ For DB instances in Amazon Aurora clusters, don't specify this property\\. Amazon RDS automatically assigns writer and reader DB instances\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceRegion": "The ID of the region that contains the source DB instance for the read replica\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StorageEncrypted": "A value that indicates whether the DB instance is encrypted\\. By default, it isn't encrypted\\. \nIf you specify the `KmsKeyId` property, then you must enable encryption\\. \nIf you specify the `SnapshotIdentifier` or `SourceDBInstanceIdentifier` property, don't specify this property\\. The value is inherited from the snapshot or source DB instance, and if the DB instance is encrypted, the specified `KmsKeyId` property is used\\. \n **Amazon Aurora** \nNot applicable\\. The encryption for DB instances is managed by the DB cluster\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StorageType": "Specifies the storage type to be associated with the DB instance\\. \n Valid values: `standard | gp2 | io1` \nThe `standard` value is also known as magnetic\\. \n If you specify `io1`, you must also include a value for the `Iops` parameter\\. \n Default: `io1` if the `Iops` parameter is specified, otherwise `standard` \nFor more information, see [Amazon RDS DB Instance Storage](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) in the *Amazon RDS User Guide*\\. \n **Amazon Aurora** \nNot applicable\\. Aurora data is stored in the cluster volume, which is a single, virtual volume that uses solid state drives \\(SSDs\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "Tags": "Tags to assign to the DB instance\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Timezone": "The time zone of the DB instance\\. The time zone parameter is currently supported only by [Microsoft SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.TimeZone)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UseDefaultProcessorFeatures": "A value that indicates whether the DB instance class of the DB instance uses its default processor features\\. \nThis setting doesn't apply to RDS Custom\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VPCSecurityGroups": "A list of the VPC security group IDs to assign to the DB instance\\. The list can include both the physical IDs of existing VPC security groups and references to [AWS::EC2::SecurityGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html) resources created in the template\\. \nIf you plan to update the resource, don't specify VPC security groups in a shared VPC\\. \n If you set `VPCSecurityGroups`, you must not set [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsecuritygroups](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsecuritygroups), and vice versa\\. \nYou can migrate a DB instance in your stack from an RDS DB security group to a VPC security group, but keep the following in mind: \n+ You can't revert to using an RDS security group after you establish a VPC security group membership\\.\n+ When you migrate your DB instance to VPC security groups, if your stack update rolls back because the DB instance update fails or because an update fails in another AWS CloudFormation resource, the rollback fails because it can't revert to an RDS security group\\.\n+ To use the properties that are available when you use a VPC security group, you must recreate the DB instance\\. If you don't, AWS CloudFormation submits only the property values that are listed in the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsecuritygroups](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsecuritygroups) property\\.\nTo avoid this situation, migrate your DB instance to using VPC security groups only when that is the only change in your stack template\\. \n **Amazon Aurora** \nNot applicable\\. The associated list of EC2 VPC security groups is managed by the DB cluster\\. If specified, the setting must match the DB cluster setting\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RDS::DBInstance DBInstanceRole": { + "FeatureName": "The name of the feature associated with the AWS Identity and Access Management \\(IAM\\) role\\. IAM roles that are associated with a DB instance grant permission for the DB instance to access other AWS services on your behalf\\. For the list of supported feature names, see the `SupportedFeatureNames` description in [DBEngineVersion](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBEngineVersion.html) in the *Amazon RDS API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM role that is associated with the DB instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RDS::DBInstance ProcessorFeature": { + "Name": "The name of the processor feature\\. Valid names are `coreCount` and `threadsPerCore`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of a processor feature name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RDS::DBParameterGroup": { + "Description": "Provides the customer\\-specified description for this DB parameter group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Family": "The DB parameter group family name\\. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a DB engine and engine version compatible with that DB parameter group family\\. \nThe DB parameter group family can't be changed when updating a DB parameter group\\.\nTo list all of the available parameter group families, use the following command: \n`aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\"` \nThe output contains duplicates\\. \nFor more information, see [`CreateDBParameterGroup`](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBParameterGroup.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "An array of parameter names and values for the parameter update\\. At least one parameter name and value must be supplied\\. Subsequent arguments are optional\\. \nFor more information about DB parameters and DB parameter groups for Amazon RDS DB engines, see [Working with DB Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*\\. \nFor more information about DB cluster and DB instance parameters and parameter groups for Amazon Aurora DB engines, see [ Working with DB Parameter Groups and DB Cluster Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*\\. \nAWS CloudFormation doesn't support specifying an apply method for each individual parameter\\. The default apply method for each parameter is used\\.\n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Tags to assign to the DB parameter group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RDS::DBProxy": { + "Auth": "The authorization mechanism that the proxy uses\\. \n*Required*: Yes \n*Type*: List of [AuthFormat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-authformat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DBProxyName": "The identifier for the proxy\\. This name must be unique for all proxies owned by your AWS account in the specified AWS Region\\. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DebugLogging": "Whether the proxy includes detailed information about SQL statements in its logs\\. This information helps you to debug issues involving SQL behavior or the performance and scalability of the proxy connections\\. The debug information includes the text of SQL statements that you submit through the proxy\\. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EngineFamily": "The kinds of databases that the proxy can connect to\\. This value determines which database network protocol the proxy recognizes when it interprets network traffic to and from the database\\. The engine family applies to MySQL and PostgreSQL for both RDS and Aurora\\. \n*Valid values*: `MYSQL` \\| `POSTGRESQL` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IdleClientTimeout": "The number of seconds that a connection to the proxy can be inactive before the proxy disconnects it\\. You can set this value higher or lower than the connection timeout limit for the associated database\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequireTLS": "A Boolean parameter that specifies whether Transport Layer Security \\(TLS\\) encryption is required for connections to the proxy\\. By enabling this setting, you can enforce encrypted TLS connections to the proxy\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM role that the proxy uses to access secrets in AWS Secrets Manager\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An optional set of key\\-value pairs to associate arbitrary data of your choosing with the proxy\\. \n*Required*: No \n*Type*: List of [TagFormat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-tagformat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcSecurityGroupIds": "One or more VPC security group IDs to associate with the new proxy\\. \nIf you plan to update the resource, don't specify VPC security groups in a shared VPC\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcSubnetIds": "One or more VPC subnet IDs to associate with the new proxy\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::RDS::DBProxy AuthFormat": { + "AuthScheme": "The type of authentication that the proxy uses for connections from the proxy to the underlying database\\. \nValid Values: `SECRETS` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A user\\-specified description about the authentication used by a proxy to log in as a specific database user\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IAMAuth": "Whether to require or disallow AWS Identity and Access Management \\(IAM\\) authentication for connections to the proxy\\. \nValid Values: `DISABLED | REQUIRED` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretArn": "The Amazon Resource Name \\(ARN\\) representing the secret that the proxy uses to authenticate to the RDS DB instance or Aurora DB cluster\\. These secrets are stored within Amazon Secrets Manager\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserName": "The name of the database user to which the proxy connects\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RDS::DBProxy TagFormat": { + "Key": "A key is the required name of the tag\\. The string value can be 1\\-128 Unicode characters in length and can't be prefixed with `aws:`\\. The string can contain only the set of Unicode letters, digits, white\\-space, '\\_', '\\.', '/', '=', '\\+', '\\-' \\(Java regex: \"^\\(\\[\\\\\\\\p\\{L\\}\\\\\\\\p\\{Z\\}\\\\\\\\p\\{N\\}\\_\\.:/=\\+\\\\\\\\\\-\\]\\*\\)$\"\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "A value is the optional value of the tag\\. The string value can be 1\\-256 Unicode characters in length and can't be prefixed with `aws:`\\. The string can contain only the set of Unicode letters, digits, white\\-space, '\\_', '\\.', '/', '=', '\\+', '\\-' \\(Java regex: \"^\\(\\[\\\\\\\\p\\{L\\}\\\\\\\\p\\{Z\\}\\\\\\\\p\\{N\\}\\_\\.:/=\\+\\\\\\\\\\-\\]\\*\\)$\"\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RDS::DBProxyEndpoint": { + "DBProxyEndpointName": "The name of the DB proxy endpoint to create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DBProxyName": "The name of the DB proxy associated with the DB proxy endpoint that you create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An optional set of key\\-value pairs to associate arbitrary data of your choosing with the proxy\\. \n*Required*: No \n*Type*: List of [TagFormat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxyendpoint-tagformat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetRole": "A value that indicates whether the DB proxy endpoint can be used for read/write or read\\-only operations\\. \nValid Values: `READ_WRITE | READ_ONLY` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpcSecurityGroupIds": "The VPC security group IDs for the DB proxy endpoint that you create\\. You can specify a different set of security group IDs than for the original DB proxy\\. The default is the default security group for the VPC\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcSubnetIds": "The VPC subnet IDs for the DB proxy endpoint that you create\\. You can specify a different set of subnet IDs than for the original DB proxy\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::RDS::DBProxyEndpoint TagFormat": { + "Key": "A value is the optional value of the tag\\. The string value can be 1\\-256 Unicode characters in length and can't be prefixed with `aws:`\\. The string can contain only the set of Unicode letters, digits, white\\-space, '\\_', '\\.', '/', '=', '\\+', '\\-' \\(Java regex: \"^\\(\\[\\\\\\\\p\\{L\\}\\\\\\\\p\\{Z\\}\\\\\\\\p\\{N\\}\\_\\.:/=\\+\\\\\\\\\\-\\]\\*\\)$\"\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "Metadata assigned to a DB instance consisting of a key\\-value pair\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RDS::DBProxyTargetGroup": { + "ConnectionPoolConfigurationInfo": "Settings that control the size and behavior of the connection pool associated with a `DBProxyTargetGroup`\\. \n*Required*: No \n*Type*: [ConnectionPoolConfigurationInfoFormat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DBClusterIdentifiers": "One or more DB cluster identifiers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DBInstanceIdentifiers": "One or more DB instance identifiers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DBProxyName": "The identifier of the `DBProxy` that is associated with the `DBProxyTargetGroup`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TargetGroupName": "The identifier for the target group\\. \nCurrently, this property must be set to `default`\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::RDS::DBProxyTargetGroup ConnectionPoolConfigurationInfoFormat": { + "ConnectionBorrowTimeout": "The number of seconds for a proxy to wait for a connection to become available in the connection pool\\. Only applies when the proxy has opened its maximum number of connections and all connections are busy with client sessions\\. \nDefault: 120 \nConstraints: between 1 and 3600, or 0 representing unlimited \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InitQuery": "One or more SQL statements for the proxy to run when opening each new database connection\\. Typically used with `SET` statements to make sure that each connection has identical settings such as time zone and character set\\. For multiple statements, use semicolons as the separator\\. You can also include multiple variables in a single `SET` statement, such as `SET x=1, y=2`\\. \nDefault: no initialization query \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxConnectionsPercent": "The maximum size of the connection pool for each target in a target group\\. The value is expressed as a percentage of the `max_connections` setting for the RDS DB instance or Aurora DB cluster used by the target group\\. \nDefault: 100 \nConstraints: between 1 and 100 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxIdleConnectionsPercent": "Controls how actively the proxy closes idle database connections in the connection pool\\. The value is expressed as a percentage of the `max_connections` setting for the RDS DB instance or Aurora DB cluster used by the target group\\. With a high value, the proxy leaves a high percentage of idle database connections open\\. A low value causes the proxy to close more idle connections and return them to the database\\. \nDefault: 50 \nConstraints: between 0 and `MaxConnectionsPercent` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SessionPinningFilters": "Each item in the list represents a class of SQL operations that normally cause all later statements in a session using a proxy to be pinned to the same underlying database connection\\. Including an item in the list exempts that class of SQL operations from the pinning behavior\\. \nDefault: no session pinning filters \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RDS::DBSecurityGroup": { + "DBSecurityGroupIngress": "Ingress rules to be applied to the DB security group\\. \n*Required*: Yes \n*Type*: List of [Ingress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-security-group-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EC2VpcId": "The identifier of an Amazon VPC\\. This property indicates the VPC that this DB security group belongs to\\. \nThe `EC2VpcId` property is for backward compatibility with older regions, and is no longer recommended for providing security information to an RDS DB instance\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GroupDescription": "Provides the description of the DB security group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Tags to assign to the DB security group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RDS::DBSecurityGroup Ingress": { + "CIDRIP": "The IP range to authorize\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EC2SecurityGroupId": "Id of the EC2 Security Group to authorize\\. For VPC DB Security Groups, `EC2SecurityGroupId` must be provided\\. Otherwise, EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or `EC2SecurityGroupId` must be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EC2SecurityGroupName": "Name of the EC2 Security Group to authorize\\. For VPC DB Security Groups, `EC2SecurityGroupId` must be provided\\. Otherwise, EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or `EC2SecurityGroupId` must be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EC2SecurityGroupOwnerId": "AWS Account Number of the owner of the EC2 Security Group specified in the EC2SecurityGroupName parameter\\. The AWS Access Key ID is not an acceptable value\\. For VPC DB Security Groups, `EC2SecurityGroupId` must be provided\\. Otherwise, EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or `EC2SecurityGroupId` must be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::RDS::DBSecurityGroupIngress": { + "CIDRIP": "The IP range to authorize\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DBSecurityGroupName": "The name of the DB Security Group to add authorization to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EC2SecurityGroupId": "Id of the EC2 Security Group to authorize\\. For VPC DB Security Groups, `EC2SecurityGroupId` must be provided\\. Otherwise, EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or `EC2SecurityGroupId` must be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EC2SecurityGroupName": "Name of the EC2 Security Group to authorize\\. For VPC DB Security Groups, `EC2SecurityGroupId` must be provided\\. Otherwise, EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or `EC2SecurityGroupId` must be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EC2SecurityGroupOwnerId": "AWS Account Number of the owner of the EC2 Security Group specified in the EC2SecurityGroupName parameter\\. The AWS Access Key ID is not an acceptable value\\. For VPC DB Security Groups, `EC2SecurityGroupId` must be provided\\. Otherwise, EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or `EC2SecurityGroupId` must be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RDS::DBSubnetGroup": { + "DBSubnetGroupDescription": "The description for the DB Subnet Group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DBSubnetGroupName": "The name for the DB subnet group\\. This value is stored as a lowercase string\\. \nConstraints: Must contain no more than 255 lowercase alphanumeric characters or hyphens\\. Must not be \"Default\"\\. \nExample: `mysubnetgroup` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetIds": "The EC2 Subnet IDs for the DB Subnet Group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Tags to assign to the DB subnet group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RDS::EventSubscription": { + "Enabled": "A Boolean value; set to **true** to activate the subscription, set to **false** to create the subscription but not active it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventCategories": "A list of event categories for a SourceType that you want to subscribe to\\. You can see a list of the categories for a given SourceType in the [Events](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html) topic in the Amazon RDS User Guide or by using the **DescribeEventCategories** action\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnsTopicArn": "The Amazon Resource Name \\(ARN\\) of the SNS topic created for event notification\\. The ARN is created by Amazon SNS when you create a topic and subscribe to it\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceIds": "The list of identifiers of the event sources for which events are returned\\. If not specified, then all sources are included in the response\\. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens\\. It can't end with a hyphen or contain two consecutive hyphens\\. \nConstraints: \n+ If a `SourceIds` value is supplied, `SourceType` must also be provided\\.\n+ If the source type is a DB instance, a `DBInstanceIdentifier` value must be supplied\\.\n+ If the source type is a DB cluster, a `DBClusterIdentifier` value must be supplied\\.\n+ If the source type is a DB parameter group, a `DBParameterGroupName` value must be supplied\\.\n+ If the source type is a DB security group, a `DBSecurityGroupName` value must be supplied\\.\n+ If the source type is a DB snapshot, a `DBSnapshotIdentifier` value must be supplied\\.\n+ If the source type is a DB cluster snapshot, a `DBClusterSnapshotIdentifier` value must be supplied\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceType": "The type of source that is generating the events\\. For example, if you want to be notified of events generated by a DB instance, set this parameter to `db-instance`\\. If this value isn't specified, all events are returned\\. \nValid values: `db-instance` \\| `db-cluster` \\| `db-parameter-group` \\| `db-security-group` \\| `db-snapshot` \\| `db-cluster-snapshot` \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)" + }, + "AWS::RDS::GlobalCluster": { + "DeletionProtection": "The deletion protection setting for the new global database\\. The global database can't be deleted when deletion protection is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Engine": "The name of the database engine to be used for this DB cluster\\. \nIf this property isn't specified, the database engine is derived from the source DB cluster specified by the `SourceDBClusterIdentifier` property\\. \nIf the `SourceDBClusterIdentifier` property isn't specified, this property is required\\. If the `SourceDBClusterIdentifier` property is specified, make sure this property isn't specified\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EngineVersion": "The engine version of the Aurora global database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GlobalClusterIdentifier": "The cluster identifier of the global database cluster\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceDBClusterIdentifier": "The DB cluster identifier or Amazon Resource Name \\(ARN\\) to use as the primary cluster of the global database\\. \nIf the `Engine` property isn't specified, this property is required\\. If the `Engine` property is specified, make sure this property isn't specified\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StorageEncrypted": "The storage encryption setting for the global database cluster\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::RDS::OptionGroup": { + "EngineName": "Specifies the name of the engine that this option group should be associated with\\. \nValid Values: \n+ `mariadb`\n+ `mysql`\n+ `oracle-ee`\n+ `oracle-se2`\n+ `oracle-se1`\n+ `oracle-se`\n+ `postgres`\n+ `sqlserver-ee`\n+ `sqlserver-se`\n+ `sqlserver-ex`\n+ `sqlserver-web`\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MajorEngineVersion": "Specifies the major version of the engine that this option group should be associated with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OptionConfigurations": "A list of options and the settings for each option\\. \n*Required*: Conditional \n*Type*: List of [OptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-optiongroup-optionconfigurations.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OptionGroupDescription": "The description of the option group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Tags to assign to the option group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RDS::OptionGroup OptionConfiguration": { + "DBSecurityGroupMemberships": "A list of DBSecurityGroupMembership name strings used for this option\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OptionName": "The configuration of options to include in a group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OptionSettings": "The option settings to include in an option group\\. \n*Required*: No \n*Type*: List of [OptionSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-optiongroup-optionconfigurations-optionsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OptionVersion": "The version for the option\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "The optional port for the option\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcSecurityGroupMemberships": "A list of VpcSecurityGroupMembership name strings used for this option\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RDS::OptionGroup OptionSetting": { + "Name": "The name of the option that has settings that you can set\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The current value of the option setting\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RUM::AppMonitor": { + "AppMonitorConfiguration": "A structure that contains much of the configuration data for the app monitor\\. If you are using Amazon Cognito for authorization, you must include this structure in your request, and it must include the ID of the Amazon Cognito identity pool to use for authorization\\. If you don't include `AppMonitorConfiguration`, you must set up your own authorization method\\. For more information, see [Authorize your application to send data to AWS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-get-started-authorization.html)\\. \nIf you omit this argument, the sample rate used for CloudWatch RUM is set to 10% of the user sessions\\. \n*Required*: No \n*Type*: [AppMonitorConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rum-appmonitor-appmonitorconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CwLogEnabled": "Data collected by CloudWatch RUM is kept by RUM for 30 days and then deleted\\. This parameter specifies whether CloudWatch RUM sends a copy of this telemetry data to Amazon CloudWatch Logs in your account\\. This enables you to keep the telemetry data for more than 30 days, but it does incur Amazon CloudWatch Logs charges\\. \nIf you omit this parameter, the default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Domain": "The top\\-level internet domain name for which your application has administrative authority\\. This parameter is required\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A name for the app monitor\\. This parameter is required\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Assigns one or more tags \\(key\\-value pairs\\) to the app monitor\\. \nTags can help you organize and categorize your resources\\. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values\\. \nTags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters\\. \nYou can associate as many as 50 tags with an app monitor\\. \nFor more information, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RUM::AppMonitor AppMonitorConfiguration": { + "AllowCookies": "If you set this to `true`, the CloudWatch RUM web client sets two cookies, a session cookie and a user cookie\\. The cookies allow the CloudWatch RUM web client to collect data relating to the number of users an application has and the behavior of the application across a sequence of events\\. Cookies are stored in the top\\-level domain of the current page\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableXRay": "If you set this to `true`, CloudWatch RUM sends client\\-side traces to X\\-Ray for each sampled session\\. You can then see traces and segments from these user sessions in the RUM dashboard and the CloudWatch ServiceLens console\\. For more information, see [What is AWS X\\-Ray?](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExcludedPages": "A list of URLs in your website or application to exclude from RUM data collection\\. \nYou can't include both `ExcludedPages` and `IncludedPages` in the same app monitor\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FavoritePages": "A list of pages in your application that are to be displayed with a \"favorite\" icon in the CloudWatch RUM console\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GuestRoleArn": "The ARN of the guest IAM role that is attached to the Amazon Cognito identity pool that is used to authorize the sending of data to CloudWatch RUM\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IdentityPoolId": "The ID of the Amazon Cognito identity pool that is used to authorize the sending of data to CloudWatch RUM\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludedPages": "If this app monitor is to collect data from only certain pages in your application, this structure lists those pages\\. \nYou can't include both `ExcludedPages` and `IncludedPages` in the same app monitor\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SessionSampleRate": "Specifies the portion of user sessions to use for CloudWatch RUM data collection\\. Choosing a higher portion gives you more data but also incurs more costs\\. \nThe range for this value is 0 to 1 inclusive\\. Setting this to 1 means that 100% of user sessions are sampled, and setting it to 0\\.1 means that 10% of user sessions are sampled\\. \nIf you omit this parameter, the default of 0\\.1 is used, and 10% of sessions will be sampled\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Telemetries": "An array that lists the types of telemetry data that this app monitor is to collect\\. \n+ `errors` indicates that RUM collects data about unhandled JavaScript errors raised by your application\\.\n+ `performance` indicates that RUM collects performance data about how your application and its resources are loaded and rendered\\. This includes Core Web Vitals\\.\n+ `http` indicates that RUM collects data about HTTP errors thrown by your application\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Redshift::Cluster": { + "AllowVersionUpgrade": "If `true`, major version upgrades can be applied during the maintenance window to the Amazon Redshift engine that is running on the cluster\\. \nWhen a new major version of the Amazon Redshift engine is released, you can request that the service automatically apply upgrades during the maintenance window to the Amazon Redshift engine that is running on your cluster\\. \nDefault: `true` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AquaConfigurationStatus": "The value represents how the cluster is configured to use AQUA \\(Advanced Query Accelerator\\) when it is created\\. Possible values include the following\\. \n+ enabled \\- Use AQUA if it is available for the current AWS Region and Amazon Redshift node type\\.\n+ disabled \\- Don't use AQUA\\. \n+ auto \\- Amazon Redshift determines whether to use AQUA\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `auto | disabled | enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutomatedSnapshotRetentionPeriod": "The number of days that automated snapshots are retained\\. If the value is 0, automated snapshots are disabled\\. Even if automated snapshots are disabled, you can still create manual snapshots when you want with [CreateClusterSnapshot](https://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateClusterSnapshot.html) in the *Amazon Redshift API Reference*\\. \nDefault: `1` \nConstraints: Must be a value from 0 to 35\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AvailabilityZone": "The EC2 Availability Zone \\(AZ\\) in which you want Amazon Redshift to provision the cluster\\. For example, if you have several EC2 instances running in a specific Availability Zone, then you might want the cluster to be provisioned in the same zone in order to decrease network latency\\. \nDefault: A random, system\\-chosen Availability Zone in the region that is specified by the endpoint\\. \nExample: `us-east-2d` \nConstraint: The specified Availability Zone must be in the same region as the current endpoint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AvailabilityZoneRelocation": "The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster is created\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AvailabilityZoneRelocationStatus": "Describes the status of the Availability Zone relocation operation\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Classic": "A boolean value indicating whether the resize operation is using the classic resize process\\. If you don't provide this parameter or set the value to `false`, the resize type is elastic\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClusterIdentifier": "A unique identifier for the cluster\\. You use this identifier to refer to the cluster for any subsequent cluster operations such as deleting or modifying\\. The identifier also appears in the Amazon Redshift console\\. \nConstraints: \n+ Must contain from 1 to 63 alphanumeric characters or hyphens\\.\n+ Alphabetic characters must be lowercase\\.\n+ First character must be a letter\\.\n+ Cannot end with a hyphen or contain two consecutive hyphens\\.\n+ Must be unique for all clusters within an AWS account\\.\nExample: `myexamplecluster` \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ClusterParameterGroupName": "The name of the parameter group to be associated with this cluster\\. \nDefault: The default Amazon Redshift cluster parameter group\\. For information about the default parameter group, go to [Working with Amazon Redshift Parameter Groups](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html) \nConstraints: \n+ Must be 1 to 255 alphanumeric characters or hyphens\\.\n+ First character must be a letter\\.\n+ Cannot end with a hyphen or contain two consecutive hyphens\\.\n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClusterSecurityGroups": "A list of security groups to be associated with this cluster\\. \nDefault: The default cluster security group for Amazon Redshift\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClusterSubnetGroupName": "The name of a cluster subnet group to be associated with this cluster\\. \nIf this parameter is not provided the resulting cluster will be deployed outside virtual private cloud \\(VPC\\)\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ClusterType": "The type of the cluster\\. When cluster type is specified as \n+ `single-node`, the **NumberOfNodes** parameter is not required\\.\n+ `multi-node`, the **NumberOfNodes** parameter is required\\.\nValid Values: `multi-node` \\| `single-node` \nDefault: `multi-node` \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClusterVersion": "The version of the Amazon Redshift engine software that you want to deploy on the cluster\\. \nThe version selected runs on all the nodes in the cluster\\. \nConstraints: Only version 1\\.0 is currently available\\. \nExample: `1.0` \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DBName": "The name of the first database to be created when the cluster is created\\. \nTo create additional databases after the cluster is created, connect to the cluster with a SQL client and use SQL commands to create a database\\. For more information, go to [Create a Database](https://docs.aws.amazon.com/redshift/latest/dg/t_creating_database.html) in the Amazon Redshift Database Developer Guide\\. \nDefault: `dev` \nConstraints: \n+ Must contain 1 to 64 alphanumeric characters\\.\n+ Must contain only lowercase letters\\.\n+ Cannot be a word that is reserved by the service\\. A list of reserved words can be found in [Reserved Words](https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html) in the Amazon Redshift Database Developer Guide\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DeferMaintenance": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeferMaintenanceDuration": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeferMaintenanceEndTime": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeferMaintenanceStartTime": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DestinationRegion": "The destination region that snapshots are automatically copied to when cross\\-region snapshot copy is enabled\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ElasticIp": "The Elastic IP \\(EIP\\) address for the cluster\\. \nConstraints: The cluster must be provisioned in EC2\\-VPC and publicly\\-accessible through an Internet gateway\\. For more information about provisioning clusters in EC2\\-VPC, go to [Supported Platforms to Launch Your Cluster](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#cluster-platforms) in the Amazon Redshift Cluster Management Guide\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Encrypted": "If `true`, the data in the cluster is encrypted at rest\\. \nDefault: false \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnhancedVpcRouting": "An option that specifies whether to create the cluster with enhanced VPC routing enabled\\. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC\\. For more information, see [Enhanced VPC Routing](https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html) in the Amazon Redshift Cluster Management Guide\\. \nIf this option is `true`, enhanced VPC routing is enabled\\. \nDefault: false \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HsmClientCertificateIdentifier": "Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HsmConfigurationIdentifier": "Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IamRoles": "A list of AWS Identity and Access Management \\(IAM\\) roles that can be used by the cluster to access other AWS services\\. You must supply the IAM roles in their Amazon Resource Name \\(ARN\\) format\\. \nThe maximum number of IAM roles that you can associate is subject to a quota\\. For more information, go to [Quotas and limits](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) in the *Amazon Redshift Cluster Management Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKeyId": "The AWS Key Management Service \\(KMS\\) key ID of the encryption key that you want to use to encrypt data in the cluster\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoggingProperties": "Specifies logging information, such as queries and connection attempts, for the specified Amazon Redshift cluster\\. \n*Required*: No \n*Type*: [LoggingProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-cluster-loggingproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaintenanceTrackName": "An optional parameter for the name of the maintenance track for the cluster\\. If you don't provide a maintenance track name, the cluster is assigned to the `current` track\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ManualSnapshotRetentionPeriod": "The default number of days to retain a manual snapshot\\. If the value is \\-1, the snapshot is retained indefinitely\\. This setting doesn't change the retention period of existing snapshots\\. \nThe value must be either \\-1 or an integer between 1 and 3,653\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MasterUserPassword": "The password associated with the admin user account for the cluster that is being created\\. \nConstraints: \n+ Must be between 8 and 64 characters in length\\.\n+ Must contain at least one uppercase letter\\.\n+ Must contain at least one lowercase letter\\.\n+ Must contain one number\\.\n+ Can be any printable ASCII character \\(ASCII code 33\\-126\\) except ' \\(single quote\\), \" \\(double quote\\), \\\\, /, or @\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MasterUsername": "The user name associated with the admin user account for the cluster that is being created\\. \nConstraints: \n+ Must be 1 \\- 128 alphanumeric characters\\. The user name can't be `PUBLIC`\\.\n+ First character must be a letter\\.\n+ Cannot be a reserved word\\. A list of reserved words can be found in [Reserved Words](https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html) in the Amazon Redshift Database Developer Guide\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NodeType": "The node type to be provisioned for the cluster\\. For information about node types, go to [ Working with Clusters](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes) in the *Amazon Redshift Cluster Management Guide*\\. \nValid Values: `ds2.xlarge` \\| `ds2.8xlarge` \\| `dc1.large` \\| `dc1.8xlarge` \\| `dc2.large` \\| `dc2.8xlarge` \\| `ra3.xlplus` \\| `ra3.4xlarge` \\| `ra3.16xlarge` \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumberOfNodes": "The number of compute nodes in the cluster\\. This parameter is required when the **ClusterType** parameter is specified as `multi-node`\\. \nFor information about determining how many nodes you need, go to [ Working with Clusters](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes) in the *Amazon Redshift Cluster Management Guide*\\. \nIf you don't specify this parameter, you get a single\\-node cluster\\. When requesting a multi\\-node cluster, you must specify the number of nodes that you want in the cluster\\. \nDefault: `1` \nConstraints: Value must be at least 1 and no more than 100\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OwnerAccount": "The AWS account used to create or copy the snapshot\\. Required if you are restoring a snapshot you do not own, optional if you own the snapshot\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Port": "The port number on which the cluster accepts incoming connections\\. \nThe cluster is accessible only via the JDBC and ODBC connection strings\\. Part of the connection string requires the port on which the cluster will listen for incoming connections\\. \nDefault: `5439` \nValid Values: `1150-65535` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreferredMaintenanceWindow": "The weekly time range \\(in UTC\\) during which automated cluster maintenance can occur\\. \n Format: `ddd:hh24:mi-ddd:hh24:mi` \n Default: A 30\\-minute window selected at random from an 8\\-hour block of time per region, occurring on a random day of the week\\. For more information about the time blocks for each region, see [Maintenance Windows](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-maintenance-windows) in Amazon Redshift Cluster Management Guide\\. \nValid Days: Mon \\| Tue \\| Wed \\| Thu \\| Fri \\| Sat \\| Sun \nConstraints: Minimum 30\\-minute window\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PubliclyAccessible": "If `true`, the cluster can be accessed from a public network\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceAction": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RevisionTarget": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RotateEncryptionKey": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnapshotClusterIdentifier": "The name of the cluster the source snapshot was created from\\. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than \\* for the cluster name\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SnapshotCopyGrantName": "The name of the snapshot copy grant\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnapshotCopyManual": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnapshotCopyRetentionPeriod": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnapshotIdentifier": "The name of the snapshot from which to create the new cluster\\. This parameter isn't case sensitive\\. \nExample: `my-snapshot-id` \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A list of tag instances\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcSecurityGroupIds": "A list of Virtual Private Cloud \\(VPC\\) security groups to be associated with the cluster\\. \nDefault: The default VPC security group is associated with the cluster\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Redshift::Cluster Endpoint": { + "Address": "The DNS address of the Cluster\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "The port that the database engine is listening on\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Redshift::Cluster LoggingProperties": { + "BucketName": "The name of an existing S3 bucket where the log files are to be stored\\. \nConstraints: \n+ Must be in the same region as the cluster\n+ The cluster must have read bucket and put object permissions\n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3KeyPrefix": "The prefix applied to the log file names\\. \nConstraints: \n+ Cannot exceed 512 characters\n+ Cannot contain spaces\\( \\), double quotes \\(\"\\), single quotes \\('\\), a backslash \\(\\\\\\), or control characters\\. The hexadecimal codes for invalid characters are: \n + x00 to x20\n + x22\n + x27\n + x5c\n + x7f or larger\n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Redshift::ClusterParameterGroup": { + "Description": "The description of the parameter group\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ParameterGroupFamily": "The name of the cluster parameter group family that this cluster parameter group is compatible with\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Parameters": "An array of parameters to be modified\\. A maximum of 20 parameters can be modified in a single request\\. \nFor each parameter to be modified, you must supply at least the parameter name and parameter value; other name\\-value pairs of the parameter are optional\\. \nFor the workload management \\(WLM\\) configuration, you must supply all the name\\-value pairs in the wlm\\_json\\_configuration parameter\\. \n*Required*: No \n*Type*: List of [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-property-redshift-clusterparametergroup-parameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The list of tags for the cluster parameter group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Redshift::ClusterParameterGroup Parameter": { + "ParameterName": "The name of the parameter\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParameterValue": "The value of the parameter\\. If `ParameterName` is `wlm_json_configuration`, then the maximum size of `ParameterValue` is 8000 characters\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Redshift::ClusterSecurityGroup": { + "Description": "A description for the security group\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Specifies an arbitrary set of tags \\(key\u2013value pairs\\) to associate with this security group\\. Use tags to manage your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Redshift::ClusterSecurityGroupIngress": { + "CIDRIP": "The IP range to be added the Amazon Redshift security group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ClusterSecurityGroupName": "The name of the security group to which the ingress rule is added\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EC2SecurityGroupName": "The EC2 security group to be added the Amazon Redshift security group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EC2SecurityGroupOwnerId": "The AWS account number of the owner of the security group specified by the *EC2SecurityGroupName* parameter\\. The AWS Access Key ID is not an acceptable value\\. \nExample: `111122223333` \nConditional\\. If you specify the `EC2SecurityGroupName` property, you must specify this property\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Redshift::ClusterSubnetGroup": { + "Description": "A description for the subnet group\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetIds": "An array of VPC subnet IDs\\. A maximum of 20 subnets can be modified in a single request\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Specifies an arbitrary set of tags \\(key\u2013value pairs\\) to associate with this subnet group\\. Use tags to manage your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Redshift::EndpointAccess": { + "ClusterIdentifier": "The cluster identifier of the cluster associated with the endpoint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EndpointName": "The name of the endpoint\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceOwner": "The AWS account ID of the owner of the cluster\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetGroupName": "The subnet group name where Amazon Redshift chooses to deploy the endpoint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpcSecurityGroupIds": "The security group that defines the ports, protocols, and sources for inbound traffic that you are authorizing into your endpoint\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Redshift::EndpointAccess VpcSecurityGroup": { + "Status": "The status of the endpoint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcSecurityGroupId": "The identifier of the VPC security group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Redshift::EndpointAuthorization": { + "Account": "The AAWS account ID of either the cluster owner \\(grantor\\) or grantee\\. If `Grantee` parameter is true, then the `Account` value is of the grantor\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ClusterIdentifier": "The cluster identifier\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Force": "Indicates whether to force the revoke action\\. If true, the Redshift\\-managed VPC endpoints associated with the endpoint authorization are also deleted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcIds": "The virtual private cloud \\(VPC\\) identifiers to grant access to\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Redshift::EventSubscription": { + "Enabled": "A boolean value; set to `true` to activate the subscription, and set to `false` to create the subscription but not activate it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EventCategories": "Specifies the Amazon Redshift event categories to be published by the event notification subscription\\. \nValues: configuration, management, monitoring, security, pending \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Severity": "Specifies the Amazon Redshift event severity to be published by the event notification subscription\\. \nValues: ERROR, INFO \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SnsTopicArn": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic used to transmit the event notifications\\. The ARN is created by Amazon SNS when you create a topic and subscribe to it\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceIds": "A list of one or more identifiers of Amazon Redshift source objects\\. All of the objects must be of the same type as was specified in the source type parameter\\. The event subscription will return only events generated by the specified objects\\. If not specified, then events are returned for all objects within the source type specified\\. \nExample: my\\-cluster\\-1, my\\-cluster\\-2 \nExample: my\\-snapshot\\-20131010 \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceType": "The type of source that will be generating the events\\. For example, if you want to be notified of events generated by a cluster, you would set this parameter to cluster\\. If this value is not specified, events are returned for all Amazon Redshift objects in your AWS account\\. You must specify a source type in order to specify source IDs\\. \nValid values: cluster, cluster\\-parameter\\-group, cluster\\-security\\-group, cluster\\-snapshot, and scheduled\\-action\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubscriptionName": "The name of the event subscription to be created\\. \nConstraints: \n+ Cannot be null, empty, or blank\\.\n+ Must contain from 1 to 255 alphanumeric characters or hyphens\\.\n+ First character must be a letter\\.\n+ Cannot end with a hyphen or contain two consecutive hyphens\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A list of tag instances\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Redshift::ScheduledAction": { + "Enable": "If true, the schedule is enabled\\. If false, the scheduled action does not trigger\\. For more information about `state` of the scheduled action, see [AWS::Redshift::ScheduledAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-resource-redshift-scheduledaction.html#aws-resource-redshift-scheduledaction)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EndTime": "The end time in UTC when the schedule is no longer active\\. After this time, the scheduled action does not trigger\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IamRole": "The IAM role to assume to run the scheduled action\\. This IAM role must have permission to run the Amazon Redshift API operation in the scheduled action\\. This IAM role must allow the Amazon Redshift scheduler \\(Principal scheduler\\.redshift\\.amazonaws\\.com\\) to assume permissions on your behalf\\. For more information about the IAM role to use with the Amazon Redshift scheduler, see [Using Identity\\-Based Policies for Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html) in the *Amazon Redshift Cluster Management Guide*\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Schedule": "The schedule for a one\\-time \\(at format\\) or recurring \\(cron format\\) scheduled action\\. Schedule invocations must be separated by at least one hour\\. \nFormat of at expressions is \"`at(yyyy-mm-ddThh:mm:ss)`\"\\. For example, \"`at(2016-03-04T17:27:00)`\"\\. \nFormat of cron expressions is \"`cron(Minutes Hours Day-of-month Month Day-of-week Year)`\"\\. For example, \"`cron(0 10 ? * MON *)`\"\\. For more information, see [Cron Expressions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions) in the *Amazon CloudWatch Events User Guide*\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduledActionDescription": "The description of the scheduled action\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduledActionName": "The name of the scheduled action\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StartTime": "The start time in UTC when the schedule is active\\. Before this time, the scheduled action does not trigger\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetAction": "A JSON format string of the Amazon Redshift API operation with input parameters\\. \n\"`{\\\"ResizeCluster\\\":{\\\"NodeType\\\":\\\"ds2.8xlarge\\\",\\\"ClusterIdentifier\\\":\\\"my-test-cluster\\\",\\\"NumberOfNodes\\\":3}}`\"\\. \n*Required*: No \n*Type*: [ScheduledActionType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-scheduledactiontype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Redshift::ScheduledAction PauseClusterMessage": { + "ClusterIdentifier": "The identifier of the cluster to be paused\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Redshift::ScheduledAction ResizeClusterMessage": { + "Classic": "A boolean value indicating whether the resize operation is using the classic resize process\\. If you don't provide this parameter or set the value to `false`, the resize type is elastic\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClusterIdentifier": "The unique identifier for the cluster to resize\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClusterType": "The new cluster type for the specified cluster\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NodeType": "The new node type for the nodes you are adding\\. If not specified, the cluster's current node type is used\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NumberOfNodes": "The new number of nodes for the cluster\\. If not specified, the cluster's current number of nodes is used\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Redshift::ScheduledAction ResumeClusterMessage": { + "ClusterIdentifier": "The identifier of the cluster to be resumed\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Redshift::ScheduledAction ScheduledActionType": { + "PauseCluster": "An action that runs a `PauseCluster` API operation\\. \n*Required*: No \n*Type*: [PauseClusterMessage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-pauseclustermessage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResizeCluster": "An action that runs a `ResizeCluster` API operation\\. \n*Required*: No \n*Type*: [ResizeClusterMessage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-resizeclustermessage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResumeCluster": "An action that runs a `ResumeCluster` API operation\\. \n*Required*: No \n*Type*: [ResumeClusterMessage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-resumeclustermessage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RedshiftServerless::Namespace": { + "AdminUserPassword": "The password of the administrator for the primary database created in the namespace\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AdminUsername": "The username of the administrator for the primary database created in the namespace\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DbName": "The name of the primary database created in the namespace\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultIamRoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM role to set as a default in the namespace\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FinalSnapshotName": "The name of the snapshot to be created before the namespace is deleted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FinalSnapshotRetentionPeriod": "How long to retain the final snapshot\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IamRoles": "A list of IAM roles to associate with the namespace\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKeyId": "The ID of the AWS Key Management Service key used to encrypt your data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogExports": "The types of logs the namespace can export\\. Available export types are `userlog`, `connectionlog`, and `useractivitylog`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NamespaceName": "The name of the namespace\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The map of the key\\-value pairs used to tag the namespace\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::RedshiftServerless::Workgroup": { + "BaseCapacity": "The base compute capacity of the workgroup in Redshift Processing Units \\(RPUs\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConfigParameters": "A list of parameters to set for finer control over a database\\. Available options are `datestyle`, `enable_user_activity_logging`, `query_group`, `search_path`, and `max_query_execution_time`\\. \n*Required*: No \n*Type*: List of [ConfigParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshiftserverless-workgroup-configparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnhancedVpcRouting": "The value that specifies whether to enable enhanced virtual private cloud \\(VPC\\) routing, which forces Amazon Redshift Serverless to route traffic through your VPC\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NamespaceName": "The namespace the workgroup is associated with\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PubliclyAccessible": "A value that specifies whether the workgroup can be accessible from a public network\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroupIds": "A list of security group IDs to associate with the workgroup\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetIds": "A list of subnet IDs the workgroup is associated with\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The map of the key\\-value pairs used to tag the workgroup\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WorkgroupName": "The name of the workgroup\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::RedshiftServerless::Workgroup ConfigParameter": { + "ParameterKey": "The key of the parameter\\. The options are `datestyle`, `enable_user_activity_logging`, `query_group`, `search_path`, and `max_query_execution_time`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ParameterValue": "The value of the parameter to set\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RefactorSpaces::Application": { + "ApiGatewayProxy": "The endpoint URL of the Amazon API Gateway proxy\\. \n*Required*: No \n*Type*: [ApiGatewayProxyInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-refactorspaces-application-apigatewayproxyinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EnvironmentIdentifier": "The unique identifier of the environment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProxyType": "The proxy type of the proxy created within the application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags assigned to the application\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcId": "The ID of the virtual private cloud \\(VPC\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::RefactorSpaces::Application ApiGatewayProxyInput": { + "EndpointType": "The type of endpoint to use for the API Gateway proxy\\. If no value is specified in the request, the value is set to `REGIONAL` by default\\. \nIf the value is set to `PRIVATE` in the request, this creates a private API endpoint that is isolated from the public internet\\. The private endpoint can only be accessed by using Amazon Virtual Private Cloud \\(Amazon VPC\\) endpoints for Amazon API Gateway that have been granted access\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StageName": "The name of the API Gateway stage\\. The name defaults to `prod`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::RefactorSpaces::Environment": { + "Description": "A description of the environment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the environment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NetworkFabricType": "The network fabric type of the environment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags assigned to the environment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RefactorSpaces::Route": { + "ApplicationIdentifier": "The unique identifier of the application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EnvironmentIdentifier": "The unique identifier of the environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RouteType": "The route type of the route\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ServiceIdentifier": "The unique identifier of the service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags assigned to the route\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UriPathRoute": "The configuration for the URI path route type\\. \n*Required*: No \n*Type*: [UriPathRouteInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-refactorspaces-route-uripathrouteinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::RefactorSpaces::Route UriPathRouteInput": { + "ActivationState": "Indicates whether traffic is forwarded to this route\u2019s service after the route is created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IncludeChildPaths": "Indicates whether to match all subpaths of the given source path\\. If this value is `false`, requests must match the source path exactly before they are forwarded to this route's service\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Methods": "A list of HTTP methods to match\\. An empty list matches all values\\. If a method is present, only HTTP requests using that method are forwarded to this route\u2019s service\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourcePath": "The path to use to match traffic\\. Paths must start with `/` and are relative to the base of the application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::RefactorSpaces::Service": { + "ApplicationIdentifier": "The unique identifier of the application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "A description of the service\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EndpointType": "The endpoint type of the service\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EnvironmentIdentifier": "The unique identifier of the environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LambdaEndpoint": "A summary of the configuration for the AWS Lambda endpoint type\\. \n*Required*: No \n*Type*: [LambdaEndpointInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-refactorspaces-service-lambdaendpointinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the service\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags assigned to the service\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UrlEndpoint": "The summary of the configuration for the URL endpoint type\\. \n*Required*: No \n*Type*: [UrlEndpointInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-refactorspaces-service-urlendpointinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpcId": "The ID of the virtual private cloud \\(VPC\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::RefactorSpaces::Service LambdaEndpointInput": { + "Arn": "The Amazon Resource Name \\(ARN\\) of the Lambda endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::RefactorSpaces::Service UrlEndpointInput": { + "HealthUrl": "The health check URL of the URL endpoint type\\. If the URL is a public endpoint, the `HealthUrl` must also be a public endpoint\\. If the URL is a private endpoint inside a virtual private cloud \\(VPC\\), the health URL must also be a private endpoint, and the host must be the same as the URL\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Url": "The URL to route traffic to\\. The URL must be an [rfc3986\\-formatted URL](https://datatracker.ietf.org/doc/html/rfc3986)\\. If the host is a domain name, the name must be resolvable over the public internet\\. If the scheme is `https`, the top level domain of the host must be listed in the [IANA root zone database](https://www.iana.org/domains/root/db)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Rekognition::Collection": { + "CollectionId": "ID for the collection that you are creating\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.\\-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A set of tags \\(key\\-value pairs\\) that you want to attach to the collection\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Rekognition::Project": { + "ProjectName": "The name of the project to create\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.\\-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ResilienceHub::App": { + "AppTemplateBody": "A string containing a full Resilience Hub app template body\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The optional description for an app\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name for the application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResiliencyPolicyArn": "The Amazon Resource Name \\(ARN\\) of the resiliency policy\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceMappings": "An array of ResourceMapping objects\\. \n*Required*: Yes \n*Type*: List of [ResourceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resiliencehub-app-resourcemapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags assigned to the resource\\. A tag is a label that you assign to an AWS resource\\. Each tag consists of a key/value pair\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ResilienceHub::App PhysicalResourceId": { + "AwsAccountId": "The AWS account that owns the physical resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AwsRegion": "The AWS Region that the physical resource is located in\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Identifier": "The identifier of the physical resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "Specifies the type of physical resource identifier\\. \nArn \nThe resource identifier is an Amazon Resource Name \\(ARN\\) \\. \nNative \nThe resource identifier is a Resilience Hub\\-native identifier\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ResilienceHub::App ResourceMapping": { + "LogicalStackName": "The name of the CloudFormation stack this resource is mapped to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MappingType": "Specifies the type of resource mapping\\. \nAppRegistryApp \nThe resource is mapped to another application\\. The name of the application is contained in the `appRegistryAppName` property\\. \nCfnStack \nThe resource is mapped to a CloudFormation stack\\. The name of the CloudFormation stack is contained in the `logicalStackName` property\\. \nResource \nThe resource is mapped to another resource\\. The name of the resource is contained in the `resourceName` property\\. \nResourceGroup \nThe resource is mapped to a resource group\\. The name of the resource group is contained in the `resourceGroupName` property\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PhysicalResourceId": "The identifier of this resource\\. \n*Required*: Yes \n*Type*: [PhysicalResourceId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resiliencehub-app-physicalresourceid.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceName": "The name of the resource this resource is mapped to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ResilienceHub::ResiliencyPolicy": { + "DataLocationConstraint": "Specifies a high\\-level geographical location constraint for where your resilience policy data can be stored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Policy": "The resiliency policy\\. \n*Required*: Yes \n*Type*: Map of [FailurePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resiliencehub-resiliencypolicy-failurepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PolicyDescription": "The description for the policy\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PolicyName": "The name of the policy \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags assigned to the resource\\. A tag is a label that you assign to an AWS resource\\. Each tag consists of a key/value pair\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tier": "The tier for this resiliency policy, ranging from the highest severity \\(`MissionCritical`\\) to lowest \\(`NonCritical`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ResilienceHub::ResiliencyPolicy FailurePolicy": { + "RpoInSecs": "The Recovery Point Objective \\(RPO\\), in seconds\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RtoInSecs": "The Recovery Time Objective \\(RTO\\), in seconds\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ResourceGroups::Group": { + "Configuration": "The service configuration currently associated with the resource group and in effect for the members of the resource group\\. A `Configuration` consists of one or more `ConfigurationItem` entries\\. For information about service configurations for resource groups and how to construct them, see [Service configurations for resource groups](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html) in the *AWS Resource Groups User Guide*\\. \nYou can include either a `Configuration` or a `ResourceQuery`, but not both\\.\n*Required*: Conditional \n*Type*: List of [ConfigurationItem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-configurationitem.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the resource group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of a resource group\\. The name must be unique within the AWS Region in which you create the resource\\. To create multiple resource groups based on the same CloudFormation stack, you must generate unique names for each\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceQuery": "The resource query structure that is used to dynamically determine which AWS resources are members of the associated resource group\\. For more information about queries and how to construct them, see [Build queries and groups in AWS Resource Groups](https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html) in the *AWS Resource Groups User Guide* \n+ You can include either a `ResourceQuery` or a `Configuration`, but not both\\.\n+ You can specify the group's membership either by using a `ResourceQuery` or by using a list of `Resources`, but not both\\.\n*Required*: Conditional \n*Type*: [ResourceQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-resourcequery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Resources": "A list of the Amazon Resource Names \\(ARNs\\) of AWS resources that you want to add to the specified group\\. \n+ You can specify the group membership either by using a list of `Resources` or by using a `ResourceQuery`, but not both\\.\n+ You can include a `Resources` property only if you also specify a `Configuration` property\\.\n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tag key and value pairs that are attached to the resource group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ResourceGroups::Group ConfigurationItem": { + "Parameters": "A collection of parameters for this configuration item\\. For the list of parameters that you can use with each configuration item `Type`, see [Supported resource types and parameters](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types) in the *AWS Resource Groups User Guide*\\. \n*Required*: No \n*Type*: List of [ConfigurationParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-configurationparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "Specifies the type of configuration item\\. Each item must have a unique value for type\\. For the list of the types that you can specify for a configuration item, see [Supported resource types and parameters](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types) in the *AWS Resource Groups User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ResourceGroups::Group ConfigurationParameter": { + "Name": "The name of the group configuration parameter\\. For the list of parameters that you can use with each configuration item type, see [Supported resource types and parameters](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types) in the *AWS Resource Groups User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "The value or values to be used for the specified parameter\\. For the list of values you can use with each parameter, see [Supported resource types and parameters](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ResourceGroups::Group Query": { + "ResourceTypeFilters": "Specifies limits to the types of resources that can be included in the resource group\\. For example, if `ResourceTypeFilters` is `[\"AWS::EC2::Instance\", \"AWS::DynamoDB::Table\"]`, only EC2 instances or DynamoDB tables can be members of this resource group\\. The default value is `[\"AWS::AllSupported\"]`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StackIdentifier": "Specifies the ARN of a CloudFormation stack\\. All supported resources of the CloudFormation stack are members of the resource group\\. If you don't specify an ARN, this parameter defaults to the current stack that you are defining, which means that all the resources of the current stack are grouped\\. \nYou can specify a value for `StackIdentifier` only when the `ResourceQuery.Type` property is `CLOUDFORMATION_STACK_1_0.` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TagFilters": "A list of key\\-value pair objects that limit which resources can be members of the resource group\\. This property is required when the `ResourceQuery.Type` property is `TAG_FILTERS_1_0`\\. \nA resource must have a tag that matches every filter that is provided in the `TagFilters` list\\. \n*Required*: Conditional \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ResourceGroups::Group ResourceQuery": { + "Query": "The query that defines the membership of the group\\. This is a structure with properties that depend on the `Type`\\. \nThe `Query` structure must be included in the following scenarios: \n+ When the `Type` is `TAG_FILTERS_1_0`, you must specify a `Query` structure that contains a `TagFilters` list of tags\\. Resources with tags that match those in the `TagFilter` list become members of the resource group\\.\n+ When the `Type` is `CLOUDFORMATION_STACK_1_0` then this field is required only when you must specify a CloudFormation stack other than the one you are defining\\. To do this, the `Query` structure must contain the `StackIdentifier` property\\. If you don't specify either a `Query` structure or a `StackIdentifier` within that `Query`, then it defaults to the CloudFormation stack that you're currently constructing\\.\n*Required*: No \n*Type*: [Query](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-query.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "Specifies the type of resource query that determines this group's membership\\. There are two valid query types: \n+ `TAG_FILTERS_1_0` indicates that the group is a tag\\-based group\\. To complete the group membership, you must include the `TagFilters` property to specify the tag filters to use in the query\\.\n+ `CLOUDFORMATION_STACK_1_0`, the default, indicates that the group is a CloudFormation stack\\-based group\\. Group membership is based on the CloudFormation stack\\. You must specify the `StackIdentifier` property in the query to define which stack to associate the group with, or leave it empty to default to the stack where the group is defined\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ResourceGroups::Group TagFilter": { + "Key": "A string that defines a tag key\\. Only resources in the account that are tagged with a specified tag key are members of the tag\\-based resource group\\. \nThis field is required when the `ResourceQuery` structure's `Type` property is `TAG_FILTERS_1_0`\\. You must specify at least one tag key\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "A list of tag values that can be included in the tag\\-based resource group\\. This is optional\\. If you don't specify a value or values for a key, then an AWS resource with any value for that key is a member\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RoboMaker::Fleet": { + "Name": "The name of the fleet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The list of all tags added to the fleet\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RoboMaker::Robot": { + "Architecture": "The architecture of the robot\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ARM64 | ARMHF | X86_64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Fleet": "The Amazon Resource Name \\(ARN\\) of the fleet to which the robot will be registered\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GreengrassGroupId": "The Greengrass group associated with the robot\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1224` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the robot\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A map that contains tag keys and tag values that are attached to the robot\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RoboMaker::RobotApplication": { + "CurrentRevisionId": "The current revision id\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Environment": "The environment of the robot application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the robot application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RobotSoftwareSuite": "The robot software suite \\(ROS distribuition\\) used by the robot application\\. \n*Required*: Yes \n*Type*: [RobotSoftwareSuite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-robotsoftwaresuite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Sources": "The sources of the robot application\\. \n*Required*: No \n*Type*: List of [SourceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-sourceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A map that contains tag keys and tag values that are attached to the robot application\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RoboMaker::RobotApplication RobotSoftwareSuite": { + "Name": "The name of the robot software suite \\(ROS distribution\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `General | ROS | ROS2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "The version of the robot software suite \\(ROS distribution\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Dashing | Foxy | Kinetic | Melodic` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RoboMaker::RobotApplication SourceConfig": { + "Architecture": "The target processor architecture for the application\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ARM64 | ARMHF | X86_64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Bucket": "The Amazon S3 bucket name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `[a-z0-9][a-z0-9.\\-]*[a-z0-9]` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Key": "The s3 object key\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RoboMaker::RobotApplicationVersion": { + "Application": "The application information for the robot application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1224` \n*Pattern*: `arn:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CurrentRevisionId": "The current revision id for the robot application\\. If you provide a value and it matches the latest revision ID, a new version will be created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `40` \n*Pattern*: `[a-zA-Z0-9_.\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::RoboMaker::SimulationApplication": { + "CurrentRevisionId": "The current revision id\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Environment": "The environment of the simulation application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the simulation application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RenderingEngine": "The rendering engine for the simulation application\\. \n*Required*: No \n*Type*: [RenderingEngine](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-renderingengine.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RobotSoftwareSuite": "The robot software suite \\(ROS distribution\\) used by the simulation application\\. \n*Required*: Yes \n*Type*: [RobotSoftwareSuite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-robotsoftwaresuite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SimulationSoftwareSuite": "The simulation software suite used by the simulation application\\. \n*Required*: Yes \n*Type*: [SimulationSoftwareSuite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-simulationsoftwaresuite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Sources": "The sources of the simulation application\\. \n*Required*: No \n*Type*: List of [SourceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-sourceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A map that contains tag keys and tag values that are attached to the simulation application\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RoboMaker::SimulationApplication RenderingEngine": { + "Name": "The name of the rendering engine\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `OGRE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "The version of the rendering engine\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4` \n*Pattern*: `1.x` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RoboMaker::SimulationApplication RobotSoftwareSuite": { + "Name": "The name of the robot software suite \\(ROS distribution\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `General | ROS | ROS2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "The version of the robot software suite \\(ROS distribution\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Dashing | Foxy | Kinetic | Melodic` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RoboMaker::SimulationApplication SimulationSoftwareSuite": { + "Name": "The name of the simulation software suite\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Gazebo | RosbagPlay | SimulationRuntime` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "The version of the simulation software suite\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `7|9|11|Kinetic|Melodic|Dashing|Foxy` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RoboMaker::SimulationApplication SourceConfig": { + "Architecture": "The target processor architecture for the application\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ARM64 | ARMHF | X86_64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Bucket": "The Amazon S3 bucket name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `[a-z0-9][a-z0-9.\\-]*[a-z0-9]` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Key": "The s3 object key\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::RoboMaker::SimulationApplicationVersion": { + "Application": "The application information for the simulation application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1224` \n*Pattern*: `arn:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CurrentRevisionId": "The current revision id for the simulation application\\. If you provide a value and it matches the latest revision ID, a new version will be created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `40` \n*Pattern*: `[a-zA-Z0-9_.\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Route53::DNSSEC": { + "HostedZoneId": "A unique string \\(ID\\) that is used to identify a hosted zone\\. For example: `Z00001111A1ABCaaABC11`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Route53::HealthCheck": { + "HealthCheckConfig": "A complex type that contains detailed information about one health check\\. \nFor the values to enter for `HealthCheckConfig`, see [HealthCheckConfig](https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html) \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthCheckTags": "The `HealthCheckTags` property describes key\\-value pairs that are associated with an `AWS::Route53::HealthCheck` resource\\. \n*Required*: No \n*Type*: List of [HealthCheckTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthchecktag.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53::HealthCheck HealthCheckTag": { + "Key": "The value of `Key` depends on the operation that you want to perform: \n+ **Add a tag to a health check or hosted zone**: `Key` is the name that you want to give the new tag\\.\n+ **Edit a tag**: `Key` is the name of the tag that you want to change the `Value` for\\.\n+ ** Delete a key**: `Key` is the name of the tag you want to remove\\.\n+ **Give a name to a health check**: Edit the default `Name` tag\\. In the Amazon Route 53 console, the list of your health checks includes a **Name** column that lets you see the name that you've given to each health check\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of `Value` depends on the operation that you want to perform: \n+ **Add a tag to a health check or hosted zone**: `Value` is the value that you want to give the new tag\\.\n+ **Edit a tag**: `Value` is the new value that you want to assign the tag\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53::HostedZone": { + "HostedZoneConfig": "A complex type that contains an optional comment\\. \nIf you don't want to specify a comment, omit the `HostedZoneConfig` and `Comment` elements\\. \n*Required*: No \n*Type*: [HostedZoneConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzoneconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HostedZoneTags": "Adds, edits, or deletes tags for a health check or a hosted zone\\. \nFor information about using tags for cost allocation, see [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) in the * AWS Billing and Cost Management User Guide*\\. \n*Required*: No \n*Type*: List of [HostedZoneTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzonetag.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the domain\\. Specify a fully qualified domain name, for example, *www\\.example\\.com*\\. The trailing dot is optional; Amazon Route 53 assumes that the domain name is fully qualified\\. This means that Route 53 treats *www\\.example\\.com* \\(without a trailing dot\\) and *www\\.example\\.com\\.* \\(with a trailing dot\\) as identical\\. \nIf you're creating a public hosted zone, this is the name you have registered with your DNS registrar\\. If your domain name is registered with a registrar other than Route 53, change the name servers for your domain to the set of `NameServers` that are returned by the `Fn::GetAtt` intrinsic function\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "QueryLoggingConfig": "Creates a configuration for DNS query logging\\. After you create a query logging configuration, Amazon Route 53 begins to publish log data to an Amazon CloudWatch Logs log group\\. \nDNS query logs contain information about the queries that Route 53 receives for a specified public hosted zone, such as the following: \n+ Route 53 edge location that responded to the DNS query\n+ Domain or subdomain that was requested\n+ DNS record type, such as A or AAAA\n+ DNS response code, such as `NoError` or `ServFail` \nLog Group and Resource Policy \nBefore you create a query logging configuration, perform the following operations\\. \nIf you create a query logging configuration using the Route 53 console, Route 53 performs these operations automatically\\.", + "VPCs": "*Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone\\. \nFor public hosted zones, omit `VPCs`, `VPCId`, and `VPCRegion`\\.\n*Required*: No \n*Type*: List of [VPC](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-vpc.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53::HostedZone HostedZoneConfig": { + "Comment": "Any comments that you want to include about the hosted zone\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53::HostedZone HostedZoneTag": { + "Key": "The value of `Key` depends on the operation that you want to perform: \n+ **Add a tag to a health check or hosted zone**: `Key` is the name that you want to give the new tag\\.\n+ **Edit a tag**: `Key` is the name of the tag that you want to change the `Value` for\\.\n+ ** Delete a key**: `Key` is the name of the tag you want to remove\\.\n+ **Give a name to a health check**: Edit the default `Name` tag\\. In the Amazon Route 53 console, the list of your health checks includes a **Name** column that lets you see the name that you've given to each health check\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of `Value` depends on the operation that you want to perform: \n+ **Add a tag to a health check or hosted zone**: `Value` is the value that you want to give the new tag\\.\n+ **Edit a tag**: `Value` is the new value that you want to assign the tag\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53::HostedZone QueryLoggingConfig": { + "CloudWatchLogsLogGroupArn": "The Amazon Resource Name \\(ARN\\) of the CloudWatch Logs log group that Amazon Route 53 is publishing logs to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53::HostedZone VPC": { + "VPCId": "*Private hosted zones only:* The ID of an Amazon VPC\\. \nFor public hosted zones, omit `VPCs`, `VPCId`, and `VPCRegion`\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VPCRegion": "*Private hosted zones only:* The region that an Amazon VPC was created in\\. \nFor public hosted zones, omit `VPCs`, `VPCId`, and `VPCRegion`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `af-south-1 | ap-east-1 | ap-northeast-1 | ap-northeast-2 | ap-northeast-3 | ap-south-1 | ap-southeast-1 | ap-southeast-2 | ap-southeast-3 | ca-central-1 | cn-north-1 | eu-central-1 | eu-north-1 | eu-south-1 | eu-west-1 | eu-west-2 | eu-west-3 | me-south-1 | sa-east-1 | us-east-1 | us-east-2 | us-gov-east-1 | us-gov-west-1 | us-iso-east-1 | us-iso-west-1 | us-isob-east-1 | us-west-1 | us-west-2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53::KeySigningKey": { + "HostedZoneId": "The unique string \\(ID\\) that is used to identify a hosted zone\\. For example: `Z00001111A1ABCaaABC11`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KeyManagementServiceArn": "The Amazon resource name \\(ARN\\) for a customer managed customer master key \\(CMK\\) in AWS Key Management Service \\(AWS KMS \\)\\. The `KeyManagementServiceArn` must be unique for each key\\-signing key \\(KSK\\) in a single hosted zone\\. For example: `arn:aws:kms:us-east-1:111122223333:key/111a2222-a11b-1ab1-2ab2-1ab21a2b3a111`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "A string used to identify a key\\-signing key \\(KSK\\)\\. `Name` can include numbers, letters, and underscores \\(\\_\\)\\. `Name` must be unique for each key\\-signing key in the same hosted zone\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Status": "A string that represents the current key\\-signing key \\(KSK\\) status\\. \nStatus can have one of the following values: \nACTIVE \nThe KSK is being used for signing\\. \nINACTIVE \nThe KSK is not being used for signing\\. \nDELETING \nThe KSK is in the process of being deleted\\. \nACTION\\_NEEDED \nThere is a problem with the KSK that requires you to take action to resolve\\. For example, the customer managed key might have been deleted, or the permissions for the customer managed key might have been changed\\. \nINTERNAL\\_FAILURE \nThere was an error during a request\\. Before you can continue to work with DNSSEC signing, including actions that involve this KSK, you must correct the problem\\. For example, you may need to activate or deactivate the KSK\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `5` \n*Maximum*: `150` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53::RecordSet": { + "AliasTarget": "*Alias resource record sets only:* Information about the AWS resource, such as a CloudFront distribution or an Amazon S3 bucket, that you want to route traffic to\\. \nIf you're creating resource records sets for a private hosted zone, note the following: \n+ You can't create an alias resource record set in a private hosted zone to route traffic to a CloudFront distribution\\.\n+ Creating geolocation alias resource record sets or latency alias resource record sets in a private hosted zone is unsupported\\.\n+ For information about creating failover resource record sets in a private hosted zone, see [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) in the *Amazon Route 53 Developer Guide*\\.\n*Required*: No \n*Type*: [AliasTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget-1.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Comment": "*Optional:* Any comments you want to include about a change batch request\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Failover": "*Failover resource record sets only:* To configure failover, you add the `Failover` element to two resource record sets\\. For one resource record set, you specify `PRIMARY` as the value for `Failover`; for the other resource record set, you specify `SECONDARY`\\. In addition, you include the `HealthCheckId` element and specify the health check that you want Amazon Route 53 to perform for each resource record set\\. \nExcept where noted, the following failover behaviors assume that you have included the `HealthCheckId` element in both resource record sets: \n+ When the primary resource record set is healthy, Route 53 responds to DNS queries with the applicable value from the primary resource record set regardless of the health of the secondary resource record set\\.\n+ When the primary resource record set is unhealthy and the secondary resource record set is healthy, Route 53 responds to DNS queries with the applicable value from the secondary resource record set\\.\n+ When the secondary resource record set is unhealthy, Route 53 responds to DNS queries with the applicable value from the primary resource record set regardless of the health of the primary resource record set\\.\n+ If you omit the `HealthCheckId` element for the secondary resource record set, and if the primary resource record set is unhealthy, Route 53 always responds to DNS queries with the applicable value from the secondary resource record set\\. This is true regardless of the health of the associated endpoint\\.\nYou can't create non\\-failover resource record sets that have the same values for the `Name` and `Type` elements as failover resource record sets\\. \nFor failover alias resource record sets, you must also include the `EvaluateTargetHealth` element and set the value to true\\. \nFor more information about configuring failover for Route 53, see the following topics in the *Amazon Route 53 Developer Guide*: \n+ [Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) \n+ [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) \n*Required*: No \n*Type*: String \n*Allowed values*: `PRIMARY | SECONDARY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GeoLocation": "*Geolocation resource record sets only:* A complex type that lets you control how Amazon Route 53 responds to DNS queries based on the geographic origin of the query\\. For example, if you want all queries from Africa to be routed to a web server with an IP address of `192.0.2.111`, create a resource record set with a `Type` of `A` and a `ContinentCode` of `AF`\\. \nAlthough creating geolocation and geolocation alias resource record sets in a private hosted zone is allowed, it's not supported\\.\nIf you create separate resource record sets for overlapping geographic regions \\(for example, one resource record set for a continent and one for a country on the same continent\\), priority goes to the smallest geographic region\\. This allows you to route most queries for a continent to one resource and to route queries for a country on that continent to a different resource\\. \nYou can't create two geolocation resource record sets that specify the same geographic location\\. \nThe value `*` in the `CountryCode` element matches all geographic locations that aren't specified in other geolocation resource record sets that have the same values for the `Name` and `Type` elements\\. \nGeolocation works by mapping IP addresses to locations\\. However, some IP addresses aren't mapped to geographic locations, so even if you create geolocation resource record sets that cover all seven continents, Route 53 will receive some DNS queries from locations that it can't identify\\. We recommend that you create a resource record set for which the value of `CountryCode` is `*`\\. Two groups of queries are routed to the resource that you specify in this record: queries that come from locations for which you haven't created geolocation resource record sets and queries from IP addresses that aren't mapped to a location\\. If you don't create a `*` resource record set, Route 53 returns a \"no answer\" response for queries from those locations\\.\nYou can't create non\\-geolocation resource record sets that have the same values for the `Name` and `Type` elements as geolocation resource record sets\\. \n*Required*: No \n*Type*: [GeoLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation-1.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthCheckId": "If you want Amazon Route 53 to return this resource record set in response to a DNS query only when the status of a health check is healthy, include the `HealthCheckId` element and specify the ID of the applicable health check\\. \nRoute 53 determines whether a resource record set is healthy based on one of the following: \n+ By periodically sending a request to the endpoint that is specified in the health check\n+ By aggregating the status of a specified group of health checks \\(calculated health checks\\)\n+ By determining the current state of a CloudWatch alarm \\(CloudWatch metric health checks\\)\nRoute 53 doesn't check the health of the endpoint that is specified in the resource record set, for example, the endpoint specified by the IP address in the `Value` element\\. When you add a `HealthCheckId` element to a resource record set, Route 53 checks the health of the endpoint that you specified in the health check\\. \nFor more information, see the following topics in the *Amazon Route 53 Developer Guide*: \n+ [How Amazon Route 53 Determines Whether an Endpoint Is Healthy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html) \n+ [Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) \n+ [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) \n **When to Specify HealthCheckId** \nSpecifying a value for `HealthCheckId` is useful only when Route 53 is choosing between two or more resource record sets to respond to a DNS query, and you want Route 53 to base the choice in part on the status of a health check\\. Configuring health checks makes sense only in the following configurations: \n+ **Non\\-alias resource record sets**: You're checking the health of a group of non\\-alias resource record sets that have the same routing policy, name, and type \\(such as multiple weighted records named www\\.example\\.com with a type of A\\) and you specify health check IDs for all the resource record sets\\.", + "HostedZoneId": "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*Required*: No \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "HostedZoneName": "The name of the hosted zone that you want to create records in\\. You must include a trailing dot \\(for example, `www.example.com.`\\) as part of the `HostedZoneName`\\. \nWhen you create a stack using an AWS::Route53::RecordSet that specifies `HostedZoneName`, AWS CloudFormation attempts to find a hosted zone whose name matches the HostedZoneName\\. If AWS CloudFormation cannot find a hosted zone with a matching domain name, or if there is more than one hosted zone with the specified domain name, AWS CloudFormation will not create the stack\\. \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*Required*: No \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MultiValueAnswer": "*Multivalue answer resource record sets only*: To route traffic approximately randomly to multiple resources, such as web servers, create one multivalue answer record for each resource and specify `true` for `MultiValueAnswer`\\. Note the following: \n+ If you associate a health check with a multivalue answer resource record set, Amazon Route 53 responds to DNS queries with the corresponding IP address only when the health check is healthy\\.\n+ If you don't associate a health check with a multivalue answer record, Route 53 always considers the record to be healthy\\.\n+ Route 53 responds to DNS queries with up to eight healthy records; if you have eight or fewer healthy records, Route 53 responds to all DNS queries with all the healthy records\\.\n+ If you have more than eight healthy records, Route 53 responds to different DNS resolvers with different combinations of healthy records\\.\n+ When all records are unhealthy, Route 53 responds to DNS queries with up to eight unhealthy records\\.\n+ If a resource becomes unavailable after a resolver caches a response, client software typically tries another of the IP addresses in the response\\.\nYou can't create multivalue answer alias records\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "For `ChangeResourceRecordSets` requests, the name of the record that you want to create, update, or delete\\. For `ListResourceRecordSets` responses, the name of a record in the specified hosted zone\\. \n **ChangeResourceRecordSets Only** \nEnter a fully qualified domain name, for example, `www.example.com`\\. You can optionally include a trailing dot\\. If you omit the trailing dot, Amazon Route 53 assumes that the domain name that you specify is fully qualified\\. This means that Route 53 treats `www.example.com` \\(without a trailing dot\\) and `www.example.com.` \\(with a trailing dot\\) as identical\\. \nFor information about how to specify characters other than `a-z`, `0-9`, and `-` \\(hyphen\\) and how to specify internationalized domain names, see [DNS Domain Name Format](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html) in the *Amazon Route 53 Developer Guide*\\. \nYou can use the asterisk \\(\\*\\) wildcard to replace the leftmost label in a domain name, for example, `*.example.com`\\. Note the following: \n+ The \\* must replace the entire label\\. For example, you can't specify `*prod.example.com` or `prod*.example.com`\\.\n+ The \\* can't replace any of the middle labels, for example, marketing\\.\\*\\.example\\.com\\.\n+ If you include \\* in any position other than the leftmost label in a domain name, DNS treats it as an \\* character \\(ASCII 42\\), not as a wildcard\\.\n**Important** \nYou can't use the \\* wildcard for resource records sets that have a type of NS\\.\nYou can use the \\* wildcard as the leftmost label in a domain name, for example, `*.example.com`\\. You can't use an \\* for one of the middle labels, for example, `marketing.*.example.com`\\. In addition, the \\* must replace the entire label; for example, you can't specify `prod*.example.com`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Region": "*Latency\\-based resource record sets only:* The Amazon EC2 Region where you created the resource that this resource record set refers to\\. The resource typically is an AWS resource, such as an EC2 instance or an ELB load balancer, and is referred to by an IP address or a DNS domain name, depending on the record type\\. \nAlthough creating latency and latency alias resource record sets in a private hosted zone is allowed, it's not supported\\.\nWhen Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region\\. Route 53 then returns the value that is associated with the selected resource record set\\. \nNote the following: \n+ You can only specify one `ResourceRecord` per latency resource record set\\.\n+ You can only create one latency resource record set for each Amazon EC2 Region\\.\n+ You aren't required to create latency resource record sets for all Amazon EC2 Regions\\. Route 53 will choose the region with the best latency from among the regions that you create latency resource record sets for\\.\n+ You can't create non\\-latency resource record sets that have the same values for the `Name` and `Type` elements as latency resource record sets\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `af-south-1 | ap-east-1 | ap-northeast-1 | ap-northeast-2 | ap-northeast-3 | ap-south-1 | ap-southeast-1 | ap-southeast-2 | ap-southeast-3 | ca-central-1 | cn-north-1 | cn-northwest-1 | eu-central-1 | eu-north-1 | eu-south-1 | eu-west-1 | eu-west-2 | eu-west-3 | me-south-1 | sa-east-1 | us-east-1 | us-east-2 | us-west-1 | us-west-2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceRecords": "One or more values that correspond with the value that you specified for the `Type` property\\. For example, if you specified `A` for `Type`, you specify one or more IP addresses in IPv4 format for `ResourceRecords`\\. For information about the format of values for each record type, see [Supported DNS Resource Record Types](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html) in the *Amazon Route 53 Developer Guide*\\. \nNote the following: \n+ You can specify more than one value for all record types except CNAME and SOA\\.\n+ The maximum length of a value is 4000 characters\\.\n+ If you're creating an alias record, omit `ResourceRecords`\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SetIdentifier": "*Resource record sets that have a routing policy other than simple:* An identifier that differentiates among multiple resource record sets that have the same combination of name and type, such as multiple weighted resource record sets named acme\\.example\\.com that have a type of A\\. In a group of resource record sets that have the same name and type, the value of `SetIdentifier` must be unique for each resource record set\\. \nFor information about routing policies, see [Choosing a Routing Policy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html) in the *Amazon Route 53 Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TTL": "The resource record cache time to live \\(TTL\\), in seconds\\. Note the following: \n+ If you're creating or updating an alias resource record set, omit `TTL`\\. Amazon Route 53 uses the value of `TTL` for the alias target\\. \n+ If you're associating this resource record set with a health check \\(if you're adding a `HealthCheckId` element\\), we recommend that you specify a `TTL` of 60 seconds or less so clients respond quickly to changes in health status\\.\n+ All of the resource record sets in a group of weighted resource record sets must have the same value for `TTL`\\.\n+ If a group of weighted resource record sets includes one or more weighted alias resource record sets for which the alias target is an ELB load balancer, we recommend that you specify a `TTL` of 60 seconds for all of the non\\-alias weighted resource record sets that have the same name and type\\. Values other than 60 seconds \\(the TTL for load balancers\\) will change the effect of the values that you specify for `Weight`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The DNS record type\\. For information about different record types and how data is encoded for them, see [Supported DNS Resource Record Types](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html) in the *Amazon Route 53 Developer Guide*\\. \nValid values for basic resource record sets: `A` \\| `AAAA` \\| `CAA` \\| `CNAME` \\| `DS` \\|`MX` \\| `NAPTR` \\| `NS` \\| `PTR` \\| `SOA` \\| `SPF` \\| `SRV` \\| `TXT` \nValues for weighted, latency, geolocation, and failover resource record sets: `A` \\| `AAAA` \\| `CAA` \\| `CNAME` \\| `MX` \\| `NAPTR` \\| `PTR` \\| `SPF` \\| `SRV` \\| `TXT`\\. When creating a group of weighted, latency, geolocation, or failover resource record sets, specify the same value for all of the resource record sets in the group\\. \nValid values for multivalue answer resource record sets: `A` \\| `AAAA` \\| `MX` \\| `NAPTR` \\| `PTR` \\| `SPF` \\| `SRV` \\| `TXT` \nSPF records were formerly used to verify the identity of the sender of email messages\\. However, we no longer recommend that you create resource record sets for which the value of `Type` is `SPF`\\. RFC 7208, *Sender Policy Framework \\(SPF\\) for Authorizing Use of Domains in Email, Version 1*, has been updated to say, \"\\.\\.\\.\\[I\\]ts existence and mechanism defined in \\[RFC4408\\] have led to some interoperability issues\\. Accordingly, its use is no longer appropriate for SPF version 1; implementations are not to use it\\.\" In RFC 7208, see section 14\\.1, [The SPF DNS Record Type](http://tools.ietf.org/html/rfc7208#section-14.1)\\.\nValues for alias resource record sets: \n+ **Amazon API Gateway custom regional APIs and edge\\-optimized APIs:** `A` \n+ **CloudFront distributions:** `A`", + "Weight": "*Weighted resource record sets only:* Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set\\. Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type\\. Route 53 then responds to queries based on the ratio of a resource's weight to the total\\. Note the following: \n+ You must specify a value for the `Weight` element for every weighted resource record set\\.\n+ You can only specify one `ResourceRecord` per weighted resource record set\\.\n+ You can't create latency, failover, or geolocation resource record sets that have the same values for the `Name` and `Type` elements as weighted resource record sets\\.\n+ You can create a maximum of 100 weighted resource record sets that have the same values for the `Name` and `Type` elements\\.\n+ For weighted \\(but not weighted alias\\) resource record sets, if you set `Weight` to `0` for a resource record set, Route 53 never responds to queries with the applicable value for that resource record set\\. However, if you set `Weight` to `0` for all resource record sets that have the same combination of DNS name and type, traffic is routed to all resources with equal probability\\." + }, + "AWS::Route53::RecordSet AliasTarget": { + "DNSName": "*Alias records only:* The value that you specify depends on where you want to route queries: \nAmazon API Gateway custom regional APIs and edge\\-optimized APIs \nSpecify the applicable domain name for your API\\. You can get the applicable value using the AWS CLI command [get\\-domain\\-names](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html): \n+ For regional APIs, specify the value of `regionalDomainName`\\.\n+ For edge\\-optimized APIs, specify the value of `distributionDomainName`\\. This is the name of the associated CloudFront distribution, such as `da1b2c3d4e5.cloudfront.net`\\.\nThe name of the record that you're creating must match a custom domain name for your API, such as `api.example.com`\\. \nAmazon Virtual Private Cloud interface VPC endpoint \nEnter the API endpoint for the interface endpoint, such as `vpce-123456789abcdef01-example-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com`\\. For edge\\-optimized APIs, this is the domain name for the corresponding CloudFront distribution\\. You can get the value of `DnsName` using the AWS CLI command [describe\\-vpc\\-endpoints](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html)\\. \nCloudFront distribution \nSpecify the domain name that CloudFront assigned when you created your distribution\\. \nYour CloudFront distribution must include an alternate domain name that matches the name of the record\\. For example, if the name of the record is *acme\\.example\\.com*, your CloudFront distribution must include *acme\\.example\\.com* as one of the alternate domain names\\. For more information, see [Using Alternate Domain Names \\(CNAMEs\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html) in the *Amazon CloudFront Developer Guide*\\. \nYou can't create a record in a private hosted zone to route traffic to a CloudFront distribution\\. \nFor failover alias records, you can't specify a CloudFront distribution for both the primary and secondary records\\. A distribution must include an alternate domain name that matches the name of the record\\. However, the primary and secondary records have the same name, and you can't include the same alternate domain name in more than one distribution\\. \nElastic Beanstalk environment \nIf the domain name for your Elastic Beanstalk environment includes the region that you deployed the environment in, you can create an alias record that routes traffic to the environment\\. For example, the domain name `my-environment.us-west-2.elasticbeanstalk.com` is a regionalized domain name\\. \nFor environments that were created before early 2016, the domain name doesn't include the region\\. To route traffic to these environments, you must create a CNAME record instead of an alias record\\. Note that you can't create a CNAME record for the root domain name\\. For example, if your domain name is example\\.com, you can create a record that routes traffic for acme\\.example\\.com to your Elastic Beanstalk environment, but you can't create a record that routes traffic for example\\.com to your Elastic Beanstalk environment\\.\nFor Elastic Beanstalk environments that have regionalized subdomains, specify the `CNAME` attribute for the environment\\. You can use the following methods to get the value of the CNAME attribute: \n+ *AWS Management Console*: For information about how to get the value by using the console, see [Using Custom Domains with AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html) in the *AWS Elastic Beanstalk Developer Guide*\\.\n+ *Elastic Beanstalk API*: Use the `DescribeEnvironments` action to get the value of the `CNAME` attribute\\. For more information, see [DescribeEnvironments](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html) in the *AWS Elastic Beanstalk API Reference*\\.\n+ *AWS CLI*: Use the `describe-environments` command to get the value of the `CNAME` attribute\\. For more information, see [describe\\-environments](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html) in the *AWS CLI*\\. \nELB load balancer \nSpecify the DNS name that is associated with the load balancer\\. Get the DNS name by using the AWS Management Console, the ELB API, or the AWS CLI\\. \n+ **AWS Management Console**: Go to the EC2 page, choose **Load Balancers** in the navigation pane, choose the load balancer, choose the **Description** tab, and get the value of the **DNS name** field\\.", + "EvaluateTargetHealth": "*Applies only to alias, failover alias, geolocation alias, latency alias, and weighted alias resource record sets:* When `EvaluateTargetHealth` is `true`, an alias resource record set inherits the health of the referenced AWS resource, such as an ELB load balancer or another resource record set in the hosted zone\\. \nNote the following: \nCloudFront distributions \nYou can't set `EvaluateTargetHealth` to `true` when the alias target is a CloudFront distribution\\. \nElastic Beanstalk environments that have regionalized subdomains \nIf you specify an Elastic Beanstalk environment in `DNSName` and the environment contains an ELB load balancer, Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer\\. \\(An environment automatically contains an ELB load balancer if it includes more than one Amazon EC2 instance\\.\\) If you set `EvaluateTargetHealth` to `true` and either no Amazon EC2 instances are healthy or the load balancer itself is unhealthy, Route 53 routes queries to other available resources that are healthy, if any\\. \nIf the environment contains a single Amazon EC2 instance, there are no special requirements\\. \nELB load balancers \nHealth checking behavior depends on the type of load balancer: \n+ **Classic Load Balancers**: If you specify an ELB Classic Load Balancer in `DNSName`, Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer\\. If you set `EvaluateTargetHealth` to `true` and either no EC2 instances are healthy or the load balancer itself is unhealthy, Route 53 routes queries to other resources\\.\n+ **Application and Network Load Balancers**: If you specify an ELB Application or Network Load Balancer and you set `EvaluateTargetHealth` to `true`, Route 53 routes queries to the load balancer based on the health of the target groups that are associated with the load balancer:\n + For an Application or Network Load Balancer to be considered healthy, every target group that contains targets must contain at least one healthy target\\. If any target group contains only unhealthy targets, the load balancer is considered unhealthy, and Route 53 routes queries to other resources\\.\n + A target group that has no registered targets is considered unhealthy\\.\nWhen you create a load balancer, you configure settings for Elastic Load Balancing health checks; they're not Route 53 health checks, but they perform a similar function\\. Do not create Route 53 health checks for the EC2 instances that you register with an ELB load balancer\\. \nS3 buckets \nThere are no special requirements for setting `EvaluateTargetHealth` to `true` when the alias target is an S3 bucket\\. \nOther records in the same hosted zone \nIf the AWS resource that you specify in `DNSName` is a record or a group of records \\(for example, a group of weighted records\\) but is not another alias record, we recommend that you associate a health check with all of the records in the alias target\\. For more information, see [What Happens When You Omit Health Checks?](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-complex-configs.html#dns-failover-complex-configs-hc-omitting) in the *Amazon Route 53 Developer Guide*\\.\nFor more information and examples, see [Amazon Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) in the *Amazon Route 53 Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HostedZoneId": "*Alias resource records sets only*: The value used depends on where you want to route traffic: \nAmazon API Gateway custom regional APIs and edge\\-optimized APIs \nSpecify the hosted zone ID for your API\\. You can get the applicable value using the AWS CLI command [get\\-domain\\-names](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html): \n+ For regional APIs, specify the value of `regionalHostedZoneId`\\.\n+ For edge\\-optimized APIs, specify the value of `distributionHostedZoneId`\\. \nAmazon Virtual Private Cloud interface VPC endpoint \nSpecify the hosted zone ID for your interface endpoint\\. You can get the value of `HostedZoneId` using the AWS CLI command [describe\\-vpc\\-endpoints](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html)\\. \nCloudFront distribution \nSpecify `Z2FDTNDATAQYW2`\\. This is always the hosted zone ID when you create an alias record that routes traffic to a CloudFront distribution\\. \nAlias records for CloudFront can't be created in a private zone\\. \nElastic Beanstalk environment \nSpecify the hosted zone ID for the region that you created the environment in\\. The environment must have a regionalized subdomain\\. For a list of regions and the corresponding hosted zone IDs, see [AWS Elastic Beanstalk endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/elasticbeanstalk.html) in the *Amazon Web Services General Reference*\\. \nELB load balancer \nSpecify the value of the hosted zone ID for the load balancer\\. Use the following methods to get the hosted zone ID: \n+ [Service Endpoints](https://docs.aws.amazon.com/general/latest/gr/elb.html) table in the \"Elastic Load Balancing Endpoints and Quotas\" topic in the *Amazon Web Services General Reference*: Use the value that corresponds with the region that you created your load balancer in\\. Note that there are separate columns for Application and Classic Load Balancers and for Network Load Balancers\\.\n+ **AWS Management Console**: Go to the Amazon EC2 page, choose **Load Balancers** in the navigation pane, select the load balancer, and get the value of the **Hosted zone** field on the **Description** tab\\.\n+ **Elastic Load Balancing API**: Use `DescribeLoadBalancers` to get the applicable value\\. For more information, see the applicable guide:\n + Classic Load Balancers: Use [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html) to get the value of `CanonicalHostedZoneNameID`\\.\n + Application and Network Load Balancers: Use [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) to get the value of `CanonicalHostedZoneID`\\.\n+ **CloudFormation Fn::GetAtt intrinsic function**: Use the [Fn::GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html) intrinsic function to get the applicable value:\n + Classic Load Balancers: Get [CanonicalHostedZoneNameID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#aws-properties-ec2-elb-return-values)\\. \n + Application and Network Load Balancers: Get [CanonicalHostedZoneID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#aws-resource-elasticloadbalancingv2-loadbalancer-return-values)\\. \n+ **AWS CLI**: Use `describe-load-balancers` to get the applicable value\\. For more information, see the applicable guide:\n + Classic Load Balancers: Use [describe\\-load\\-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) to get the value of `CanonicalHostedZoneNameID`\\.\n + Application and Network Load Balancers: Use [describe\\-load\\-balancers](https://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html) to get the value of `CanonicalHostedZoneID`\\. \nGlobal Accelerator accelerator \nSpecify `Z2BJ6XQ5FK7U4H`\\. \nAn Amazon S3 bucket configured as a static website \nSpecify the hosted zone ID for the region that you created the bucket in\\. For more information about valid values, see the table [Amazon S3 Website Endpoints](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints) in the *Amazon Web Services General Reference*\\. \nAnother Route 53 record in your hosted zone \nSpecify the hosted zone ID of your hosted zone\\. \\(An alias record can't reference a record in a different hosted zone\\.\\)\n*Required*: Yes \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53::RecordSet GeoLocation": { + "ContinentCode": "For geolocation resource record sets, a two\\-letter abbreviation that identifies a continent\\. Route 53 supports the following continent codes: \n+ **AF**: Africa\n+ **AN**: Antarctica\n+ **AS**: Asia\n+ **EU**: Europe\n+ **OC**: Oceania\n+ **NA**: North America\n+ **SA**: South America\nConstraint: Specifying `ContinentCode` with either `CountryCode` or `SubdivisionCode` returns an `InvalidInput` error\\. \n*Required*: No \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CountryCode": "For geolocation resource record sets, the two\\-letter code for a country\\. \nRoute 53 uses the two\\-letter country codes that are specified in [ISO standard 3166\\-1 alpha\\-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubdivisionCode": "For geolocation resource record sets, the two\\-letter code for a state of the United States\\. Route 53 doesn't support any other values for `SubdivisionCode`\\. For a list of state abbreviations, see [Appendix B: Two\u2013Letter State and Possession Abbreviations](https://pe.usps.com/text/pub28/28apb.htm) on the United States Postal Service website\\. \nIf you specify `subdivisioncode`, you must also specify `US` for `CountryCode`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53::RecordSetGroup": { + "Comment": "*Optional:* Any comments you want to include about a change batch request\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HostedZoneId": "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*Required*: No \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "HostedZoneName": "The name of the hosted zone that you want to create records in\\. You must include a trailing dot \\(for example, `www.example.com.`\\) as part of the `HostedZoneName`\\. \nWhen you create a stack using an `AWS::Route53::RecordSet` that specifies `HostedZoneName`, AWS CloudFormation attempts to find a hosted zone whose name matches the `HostedZoneName`\\. If AWS CloudFormation can't find a hosted zone with a matching domain name, or if there is more than one hosted zone with the specified domain name, AWS CloudFormation will not create the stack\\. \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*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RecordSets": "A complex type that contains one `RecordSet` element for each record that you want to create\\. \n*Required*: No \n*Type*: List of [RecordSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53::RecordSetGroup AliasTarget": { + "DNSName": "*Alias records only:* The value that you specify depends on where you want to route queries: \nAmazon API Gateway custom regional APIs and edge\\-optimized APIs \nSpecify the applicable domain name for your API\\. You can get the applicable value using the AWS CLI command [get\\-domain\\-names](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html): \n+ For regional APIs, specify the value of `regionalDomainName`\\.\n+ For edge\\-optimized APIs, specify the value of `distributionDomainName`\\. This is the name of the associated CloudFront distribution, such as `da1b2c3d4e5.cloudfront.net`\\.\nThe name of the record that you're creating must match a custom domain name for your API, such as `api.example.com`\\. \nAmazon Virtual Private Cloud interface VPC endpoint \nEnter the API endpoint for the interface endpoint, such as `vpce-123456789abcdef01-example-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com`\\. For edge\\-optimized APIs, this is the domain name for the corresponding CloudFront distribution\\. You can get the value of `DnsName` using the AWS CLI command [describe\\-vpc\\-endpoints](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html)\\. \nCloudFront distribution \nSpecify the domain name that CloudFront assigned when you created your distribution\\. \nYour CloudFront distribution must include an alternate domain name that matches the name of the record\\. For example, if the name of the record is *acme\\.example\\.com*, your CloudFront distribution must include *acme\\.example\\.com* as one of the alternate domain names\\. For more information, see [Using Alternate Domain Names \\(CNAMEs\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html) in the *Amazon CloudFront Developer Guide*\\. \nYou can't create a record in a private hosted zone to route traffic to a CloudFront distribution\\. \nFor failover alias records, you can't specify a CloudFront distribution for both the primary and secondary records\\. A distribution must include an alternate domain name that matches the name of the record\\. However, the primary and secondary records have the same name, and you can't include the same alternate domain name in more than one distribution\\. \nElastic Beanstalk environment \nIf the domain name for your Elastic Beanstalk environment includes the region that you deployed the environment in, you can create an alias record that routes traffic to the environment\\. For example, the domain name `my-environment.us-west-2.elasticbeanstalk.com` is a regionalized domain name\\. \nFor environments that were created before early 2016, the domain name doesn't include the region\\. To route traffic to these environments, you must create a CNAME record instead of an alias record\\. Note that you can't create a CNAME record for the root domain name\\. For example, if your domain name is example\\.com, you can create a record that routes traffic for acme\\.example\\.com to your Elastic Beanstalk environment, but you can't create a record that routes traffic for example\\.com to your Elastic Beanstalk environment\\.\nFor Elastic Beanstalk environments that have regionalized subdomains, specify the `CNAME` attribute for the environment\\. You can use the following methods to get the value of the CNAME attribute: \n+ *AWS Management Console*: For information about how to get the value by using the console, see [Using Custom Domains with AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html) in the *AWS Elastic Beanstalk Developer Guide*\\.\n+ *Elastic Beanstalk API*: Use the `DescribeEnvironments` action to get the value of the `CNAME` attribute\\. For more information, see [DescribeEnvironments](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html) in the *AWS Elastic Beanstalk API Reference*\\.\n+ *AWS CLI*: Use the `describe-environments` command to get the value of the `CNAME` attribute\\. For more information, see [describe\\-environments](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html) in the *AWS CLI*\\. \nELB load balancer \nSpecify the DNS name that is associated with the load balancer\\. Get the DNS name by using the AWS Management Console, the ELB API, or the AWS CLI\\. \n+ **AWS Management Console**: Go to the EC2 page, choose **Load Balancers** in the navigation pane, choose the load balancer, choose the **Description** tab, and get the value of the **DNS name** field\\.", + "EvaluateTargetHealth": "*Applies only to alias records with any routing policy:* When `EvaluateTargetHealth` is `true`, an alias record inherits the health of the referenced AWS resource, such as an ELB load balancer or another record in the hosted zone\\. \nNote the following: \nCloudFront distributions \nYou can't set `EvaluateTargetHealth` to `true` when the alias target is a CloudFront distribution\\. \nElastic Beanstalk environments that have regionalized subdomains \nIf you specify an Elastic Beanstalk environment in `DNSName` and the environment contains an ELB load balancer, Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer\\. \\(An environment automatically contains an ELB load balancer if it includes more than one Amazon EC2 instance\\.\\) If you set `EvaluateTargetHealth` to `true` and either no Amazon EC2 instances are healthy or the load balancer itself is unhealthy, Route 53 routes queries to other available resources that are healthy, if any\\. \nIf the environment contains a single Amazon EC2 instance, there are no special requirements\\. \nELB load balancers \nHealth checking behavior depends on the type of load balancer: \n+ **Classic Load Balancers**: If you specify an ELB Classic Load Balancer in `DNSName`, Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer\\. If you set `EvaluateTargetHealth` to `true` and either no EC2 instances are healthy or the load balancer itself is unhealthy, Route 53 routes queries to other resources\\.\n+ **Application and Network Load Balancers**: If you specify an ELB Application or Network Load Balancer and you set `EvaluateTargetHealth` to `true`, Route 53 routes queries to the load balancer based on the health of the target groups that are associated with the load balancer:\n + For an Application or Network Load Balancer to be considered healthy, every target group that contains targets must contain at least one healthy target\\. If any target group contains only unhealthy targets, the load balancer is considered unhealthy, and Route 53 routes queries to other resources\\.\n + A target group that has no registered targets is considered unhealthy\\.\nWhen you create a load balancer, you configure settings for Elastic Load Balancing health checks; they're not Route 53 health checks, but they perform a similar function\\. Do not create Route 53 health checks for the EC2 instances that you register with an ELB load balancer\\. \nS3 buckets \nThere are no special requirements for setting `EvaluateTargetHealth` to `true` when the alias target is an S3 bucket\\. \nOther records in the same hosted zone \nIf the AWS resource that you specify in `DNSName` is a record or a group of records \\(for example, a group of weighted records\\) but is not another alias record, we recommend that you associate a health check with all of the records in the alias target\\. For more information, see [What Happens When You Omit Health Checks?](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-complex-configs.html#dns-failover-complex-configs-hc-omitting) in the *Amazon Route 53 Developer Guide*\\.\nFor more information and examples, see [Amazon Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) in the *Amazon Route 53 Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HostedZoneId": "*Alias resource records sets only*: The value used depends on where you want to route traffic: \nAmazon API Gateway custom regional APIs and edge\\-optimized APIs \nSpecify the hosted zone ID for your API\\. You can get the applicable value using the AWS CLI command [get\\-domain\\-names](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html): \n+ For regional APIs, specify the value of `regionalHostedZoneId`\\.\n+ For edge\\-optimized APIs, specify the value of `distributionHostedZoneId`\\. \nAmazon Virtual Private Cloud interface VPC endpoint \nSpecify the hosted zone ID for your interface endpoint\\. You can get the value of `HostedZoneId` using the AWS CLI command [describe\\-vpc\\-endpoints](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html)\\. \nCloudFront distribution \nSpecify `Z2FDTNDATAQYW2`\\. This is always the hosted zone ID when you create an alias record that routes traffic to a CloudFront distribution\\. \nAlias records for CloudFront can't be created in a private zone\\. \nElastic Beanstalk environment \nSpecify the hosted zone ID for the region that you created the environment in\\. The environment must have a regionalized subdomain\\. For a list of regions and the corresponding hosted zone IDs, see [AWS Elastic Beanstalk endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/elasticbeanstalk.html) in the *Amazon Web Services General Reference*\\. \nELB load balancer \nSpecify the value of the hosted zone ID for the load balancer\\. Use the following methods to get the hosted zone ID: \n+ [Service Endpoints](https://docs.aws.amazon.com/general/latest/gr/elb.html) table in the \"Elastic Load Balancing endpoints and quotas\" topic in the *Amazon Web Services General Reference*: Use the value that corresponds with the region that you created your load balancer in\\. Note that there are separate columns for Application and Classic Load Balancers and for Network Load Balancers\\.\n+ **AWS Management Console**: Go to the Amazon EC2 page, choose **Load Balancers** in the navigation pane, select the load balancer, and get the value of the **Hosted zone** field on the **Description** tab\\.\n+ **Elastic Load Balancing API**: Use `DescribeLoadBalancers` to get the applicable value\\. For more information, see the applicable guide:\n + Classic Load Balancers: Use [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html) to get the value of `CanonicalHostedZoneNameID`\\.\n + Application and Network Load Balancers: Use [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) to get the value of `CanonicalHostedZoneID`\\.\n+ **CloudFormation Fn::GetAtt intrinsic function**: Use the [Fn::GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html) intrinsic function to get the applicable value:\n + Classic Load Balancers: Get [CanonicalHostedZoneNameID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#aws-properties-ec2-elb-return-values)\\. \n + Application and Network Load Balancers: Get [CanonicalHostedZoneID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#aws-resource-elasticloadbalancingv2-loadbalancer-return-values)\\. \n+ **AWS CLI**: Use `describe-load-balancers` to get the applicable value\\. For more information, see the applicable guide:\n + Classic Load Balancers: Use [describe\\-load\\-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) to get the value of `CanonicalHostedZoneNameID`\\.\n + Application and Network Load Balancers: Use [describe\\-load\\-balancers](https://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html) to get the value of `CanonicalHostedZoneID`\\. \nGlobal Accelerator accelerator \nSpecify `Z2BJ6XQ5FK7U4H`\\. \nAn Amazon S3 bucket configured as a static website \nSpecify the hosted zone ID for the region that you created the bucket in\\. For more information about valid values, see the table [Amazon S3 Website Endpoints](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints) in the *Amazon Web Services General Reference*\\. \nAnother Route 53 record in your hosted zone \nSpecify the hosted zone ID of your hosted zone\\. \\(An alias record can't reference a record in a different hosted zone\\.\\)\n*Required*: Yes \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53::RecordSetGroup GeoLocation": { + "ContinentCode": "For geolocation resource record sets, a two\\-letter abbreviation that identifies a continent\\. Route 53 supports the following continent codes: \n+ **AF**: Africa\n+ **AN**: Antarctica\n+ **AS**: Asia\n+ **EU**: Europe\n+ **OC**: Oceania\n+ **NA**: North America\n+ **SA**: South America\nConstraint: Specifying `ContinentCode` with either `CountryCode` or `SubdivisionCode` returns an `InvalidInput` error\\. \n*Required*: No \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CountryCode": "For geolocation resource record sets, the two\\-letter code for a country\\. \nRoute 53 uses the two\\-letter country codes that are specified in [ISO standard 3166\\-1 alpha\\-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubdivisionCode": "For geolocation resource record sets, the two\\-letter code for a state of the United States\\. Route 53 doesn't support any other values for `SubdivisionCode`\\. For a list of state abbreviations, see [Appendix B: Two\u2013Letter State and Possession Abbreviations](https://pe.usps.com/text/pub28/28apb.htm) on the United States Postal Service website\\. \nIf you specify `subdivisioncode`, you must also specify `US` for `CountryCode`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53::RecordSetGroup RecordSet": { + "AliasTarget": "*Alias resource record sets only:* Information about the AWS resource, such as a CloudFront distribution or an Amazon S3 bucket, that you want to route traffic to\\. \nIf you're creating resource records sets for a private hosted zone, note the following: \n+ You can't create an alias resource record set in a private hosted zone to route traffic to a CloudFront distribution\\.\n+ Creating geolocation alias resource record sets or latency alias resource record sets in a private hosted zone is unsupported\\.\n+ For information about creating failover resource record sets in a private hosted zone, see [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) in the *Amazon Route 53 Developer Guide*\\.\n*Required*: No \n*Type*: [AliasTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Failover": "*Failover resource record sets only:* To configure failover, you add the `Failover` element to two resource record sets\\. For one resource record set, you specify `PRIMARY` as the value for `Failover`; for the other resource record set, you specify `SECONDARY`\\. In addition, you include the `HealthCheckId` element and specify the health check that you want Amazon Route 53 to perform for each resource record set\\. \nExcept where noted, the following failover behaviors assume that you have included the `HealthCheckId` element in both resource record sets: \n+ When the primary resource record set is healthy, Route 53 responds to DNS queries with the applicable value from the primary resource record set regardless of the health of the secondary resource record set\\.\n+ When the primary resource record set is unhealthy and the secondary resource record set is healthy, Route 53 responds to DNS queries with the applicable value from the secondary resource record set\\.\n+ When the secondary resource record set is unhealthy, Route 53 responds to DNS queries with the applicable value from the primary resource record set regardless of the health of the primary resource record set\\.\n+ If you omit the `HealthCheckId` element for the secondary resource record set, and if the primary resource record set is unhealthy, Route 53 always responds to DNS queries with the applicable value from the secondary resource record set\\. This is true regardless of the health of the associated endpoint\\.\nYou can't create non\\-failover resource record sets that have the same values for the `Name` and `Type` elements as failover resource record sets\\. \nFor failover alias resource record sets, you must also include the `EvaluateTargetHealth` element and set the value to true\\. \nFor more information about configuring failover for Route 53, see the following topics in the *Amazon Route 53 Developer Guide*: \n+ [Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) \n+ [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) \n*Required*: No \n*Type*: String \n*Allowed values*: `PRIMARY | SECONDARY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GeoLocation": "*Geolocation resource record sets only:* A complex type that lets you control how Amazon Route 53 responds to DNS queries based on the geographic origin of the query\\. For example, if you want all queries from Africa to be routed to a web server with an IP address of `192.0.2.111`, create a resource record set with a `Type` of `A` and a `ContinentCode` of `AF`\\. \nAlthough creating geolocation and geolocation alias resource record sets in a private hosted zone is allowed, it's not supported\\.\nIf you create separate resource record sets for overlapping geographic regions \\(for example, one resource record set for a continent and one for a country on the same continent\\), priority goes to the smallest geographic region\\. This allows you to route most queries for a continent to one resource and to route queries for a country on that continent to a different resource\\. \nYou can't create two geolocation resource record sets that specify the same geographic location\\. \nThe value `*` in the `CountryCode` element matches all geographic locations that aren't specified in other geolocation resource record sets that have the same values for the `Name` and `Type` elements\\. \nGeolocation works by mapping IP addresses to locations\\. However, some IP addresses aren't mapped to geographic locations, so even if you create geolocation resource record sets that cover all seven continents, Route 53 will receive some DNS queries from locations that it can't identify\\. We recommend that you create a resource record set for which the value of `CountryCode` is `*`\\. Two groups of queries are routed to the resource that you specify in this record: queries that come from locations for which you haven't created geolocation resource record sets and queries from IP addresses that aren't mapped to a location\\. If you don't create a `*` resource record set, Route 53 returns a \"no answer\" response for queries from those locations\\.\nYou can't create non\\-geolocation resource record sets that have the same values for the `Name` and `Type` elements as geolocation resource record sets\\. \n*Required*: No \n*Type*: [GeoLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthCheckId": "If you want Amazon Route 53 to return this resource record set in response to a DNS query only when the status of a health check is healthy, include the `HealthCheckId` element and specify the ID of the applicable health check\\. \nRoute 53 determines whether a resource record set is healthy based on one of the following: \n+ By periodically sending a request to the endpoint that is specified in the health check\n+ By aggregating the status of a specified group of health checks \\(calculated health checks\\)\n+ By determining the current state of a CloudWatch alarm \\(CloudWatch metric health checks\\)\nRoute 53 doesn't check the health of the endpoint that is specified in the resource record set, for example, the endpoint specified by the IP address in the `Value` element\\. When you add a `HealthCheckId` element to a resource record set, Route 53 checks the health of the endpoint that you specified in the health check\\. \nFor more information, see the following topics in the *Amazon Route 53 Developer Guide*: \n+ [How Amazon Route 53 Determines Whether an Endpoint Is Healthy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html) \n+ [Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) \n+ [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) \n **When to Specify HealthCheckId** \nSpecifying a value for `HealthCheckId` is useful only when Route 53 is choosing between two or more resource record sets to respond to a DNS query, and you want Route 53 to base the choice in part on the status of a health check\\. Configuring health checks makes sense only in the following configurations: \n+ **Non\\-alias resource record sets**: You're checking the health of a group of non\\-alias resource record sets that have the same routing policy, name, and type \\(such as multiple weighted records named www\\.example\\.com with a type of A\\) and you specify health check IDs for all the resource record sets\\.", + "HostedZoneId": "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*Required*: No \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HostedZoneName": "The name of the hosted zone that you want to create records in\\. You must include a trailing dot \\(for example, `www.example.com.`\\) as part of the `HostedZoneName`\\. \nWhen you create a stack using an `AWS::Route53::RecordSet` that specifies `HostedZoneName`, AWS CloudFormation attempts to find a hosted zone whose name matches the `HostedZoneName`\\. If AWS CloudFormation can't find a hosted zone with a matching domain name, or if there is more than one hosted zone with the specified domain name, AWS CloudFormation will not create the stack\\. \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*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MultiValueAnswer": "*Multivalue answer resource record sets only*: To route traffic approximately randomly to multiple resources, such as web servers, create one multivalue answer record for each resource and specify `true` for `MultiValueAnswer`\\. Note the following: \n+ If you associate a health check with a multivalue answer resource record set, Amazon Route 53 responds to DNS queries with the corresponding IP address only when the health check is healthy\\.\n+ If you don't associate a health check with a multivalue answer record, Route 53 always considers the record to be healthy\\.\n+ Route 53 responds to DNS queries with up to eight healthy records; if you have eight or fewer healthy records, Route 53 responds to all DNS queries with all the healthy records\\.\n+ If you have more than eight healthy records, Route 53 responds to different DNS resolvers with different combinations of healthy records\\.\n+ When all records are unhealthy, Route 53 responds to DNS queries with up to eight unhealthy records\\.\n+ If a resource becomes unavailable after a resolver caches a response, client software typically tries another of the IP addresses in the response\\.\nYou can't create multivalue answer alias records\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "For `ChangeResourceRecordSets` requests, the name of the record that you want to create, update, or delete\\. For `ListResourceRecordSets` responses, the name of a record in the specified hosted zone\\. \n **ChangeResourceRecordSets Only** \nEnter a fully qualified domain name, for example, `www.example.com`\\. You can optionally include a trailing dot\\. If you omit the trailing dot, Amazon Route 53 assumes that the domain name that you specify is fully qualified\\. This means that Route 53 treats `www.example.com` \\(without a trailing dot\\) and `www.example.com.` \\(with a trailing dot\\) as identical\\. \nFor information about how to specify characters other than `a-z`, `0-9`, and `-` \\(hyphen\\) and how to specify internationalized domain names, see [DNS Domain Name Format](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html) in the *Amazon Route 53 Developer Guide*\\. \nYou can use the asterisk \\(\\*\\) wildcard to replace the leftmost label in a domain name, for example, `*.example.com`\\. Note the following: \n+ The \\* must replace the entire label\\. For example, you can't specify `*prod.example.com` or `prod*.example.com`\\.\n+ The \\* can't replace any of the middle labels, for example, marketing\\.\\*\\.example\\.com\\.\n+ If you include \\* in any position other than the leftmost label in a domain name, DNS treats it as an \\* character \\(ASCII 42\\), not as a wildcard\\.\n**Important** \nYou can't use the \\* wildcard for resource records sets that have a type of NS\\.\nYou can use the \\* wildcard as the leftmost label in a domain name, for example, `*.example.com`\\. You can't use an \\* for one of the middle labels, for example, `marketing.*.example.com`\\. In addition, the \\* must replace the entire label; for example, you can't specify `prod*.example.com`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Region": "*Latency\\-based resource record sets only:* The Amazon EC2 Region where you created the resource that this resource record set refers to\\. The resource typically is an AWS resource, such as an EC2 instance or an ELB load balancer, and is referred to by an IP address or a DNS domain name, depending on the record type\\. \nAlthough creating latency and latency alias resource record sets in a private hosted zone is allowed, it's not supported\\.\nWhen Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region\\. Route 53 then returns the value that is associated with the selected resource record set\\. \nNote the following: \n+ You can only specify one `ResourceRecord` per latency resource record set\\.\n+ You can only create one latency resource record set for each Amazon EC2 Region\\.\n+ You aren't required to create latency resource record sets for all Amazon EC2 Regions\\. Route 53 will choose the region with the best latency from among the regions that you create latency resource record sets for\\.\n+ You can't create non\\-latency resource record sets that have the same values for the `Name` and `Type` elements as latency resource record sets\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `af-south-1 | ap-east-1 | ap-northeast-1 | ap-northeast-2 | ap-northeast-3 | ap-south-1 | ap-southeast-1 | ap-southeast-2 | ap-southeast-3 | ca-central-1 | cn-north-1 | cn-northwest-1 | eu-central-1 | eu-north-1 | eu-south-1 | eu-west-1 | eu-west-2 | eu-west-3 | me-south-1 | sa-east-1 | us-east-1 | us-east-2 | us-west-1 | us-west-2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceRecords": "Information about the records that you want to create\\. Each record should be in the format appropriate for the record type specified by the `Type` property\\. For information about different record types and their record formats, see [Values That You Specify When You Create or Edit Amazon Route 53 Records](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-values.html) in the *Amazon Route 53 Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SetIdentifier": "*Resource record sets that have a routing policy other than simple:* An identifier that differentiates among multiple resource record sets that have the same combination of name and type, such as multiple weighted resource record sets named acme\\.example\\.com that have a type of A\\. In a group of resource record sets that have the same name and type, the value of `SetIdentifier` must be unique for each resource record set\\. \nFor information about routing policies, see [Choosing a Routing Policy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html) in the *Amazon Route 53 Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TTL": "The resource record cache time to live \\(TTL\\), in seconds\\. Note the following: \n+ If you're creating or updating an alias resource record set, omit `TTL`\\. Amazon Route 53 uses the value of `TTL` for the alias target\\. \n+ If you're associating this resource record set with a health check \\(if you're adding a `HealthCheckId` element\\), we recommend that you specify a `TTL` of 60 seconds or less so clients respond quickly to changes in health status\\.\n+ All of the resource record sets in a group of weighted resource record sets must have the same value for `TTL`\\.\n+ If a group of weighted resource record sets includes one or more weighted alias resource record sets for which the alias target is an ELB load balancer, we recommend that you specify a `TTL` of 60 seconds for all of the non\\-alias weighted resource record sets that have the same name and type\\. Values other than 60 seconds \\(the TTL for load balancers\\) will change the effect of the values that you specify for `Weight`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The DNS record type\\. For information about different record types and how data is encoded for them, see [Supported DNS Resource Record Types](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html) in the *Amazon Route 53 Developer Guide*\\. \nValid values for basic resource record sets: `A` \\| `AAAA` \\| `CAA` \\| `CNAME` \\| `DS` \\|`MX` \\| `NAPTR` \\| `NS` \\| `PTR` \\| `SOA` \\| `SPF` \\| `SRV` \\| `TXT` \nValues for weighted, latency, geolocation, and failover resource record sets: `A` \\| `AAAA` \\| `CAA` \\| `CNAME` \\| `MX` \\| `NAPTR` \\| `PTR` \\| `SPF` \\| `SRV` \\| `TXT`\\. When creating a group of weighted, latency, geolocation, or failover resource record sets, specify the same value for all of the resource record sets in the group\\. \nValid values for multivalue answer resource record sets: `A` \\| `AAAA` \\| `MX` \\| `NAPTR` \\| `PTR` \\| `SPF` \\| `SRV` \\| `TXT` \nSPF records were formerly used to verify the identity of the sender of email messages\\. However, we no longer recommend that you create resource record sets for which the value of `Type` is `SPF`\\. RFC 7208, *Sender Policy Framework \\(SPF\\) for Authorizing Use of Domains in Email, Version 1*, has been updated to say, \"\\.\\.\\.\\[I\\]ts existence and mechanism defined in \\[RFC4408\\] have led to some interoperability issues\\. Accordingly, its use is no longer appropriate for SPF version 1; implementations are not to use it\\.\" In RFC 7208, see section 14\\.1, [The SPF DNS Record Type](http://tools.ietf.org/html/rfc7208#section-14.1)\\.\nValues for alias resource record sets: \n+ **Amazon API Gateway custom regional APIs and edge\\-optimized APIs:** `A` \n+ **CloudFront distributions:** `A`", + "Weight": "*Weighted resource record sets only:* Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set\\. Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type\\. Route 53 then responds to queries based on the ratio of a resource's weight to the total\\. Note the following: \n+ You must specify a value for the `Weight` element for every weighted resource record set\\.\n+ You can only specify one `ResourceRecord` per weighted resource record set\\.\n+ You can't create latency, failover, or geolocation resource record sets that have the same values for the `Name` and `Type` elements as weighted resource record sets\\.\n+ You can create a maximum of 100 weighted resource record sets that have the same values for the `Name` and `Type` elements\\.\n+ For weighted \\(but not weighted alias\\) resource record sets, if you set `Weight` to `0` for a resource record set, Route 53 never responds to queries with the applicable value for that resource record set\\. However, if you set `Weight` to `0` for all resource record sets that have the same combination of DNS name and type, traffic is routed to all resources with equal probability\\." + }, + "AWS::Route53RecoveryControl::Cluster": { + "Name": "Name of the cluster\\. You can use any non\\-white space character in the name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The value for a tag\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Route53RecoveryControl::Cluster ClusterEndpoint": { + "Endpoint": "A cluster endpoint\\. Specify an endpoint and AWS Region when you want to set or retrieve a routing control state in the cluster\\. \nTo get or update the routing control state, see the Amazon Route 53 Application Recovery Controller Routing Control Actions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Region": "The AWS Region for a cluster endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53RecoveryControl::ControlPanel": { + "ClusterArn": "The Amazon Resource Name \\(ARN\\) of the cluster for the control panel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the control panel\\. You can use any non\\-white space character in the name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The value for a tag\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Route53RecoveryControl::RoutingControl": { + "ClusterArn": "The Amazon Resource Name \\(ARN\\) of the cluster that includes the routing control\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ControlPanelArn": "The Amazon Resource Name \\(ARN\\) of the control panel that includes the routing control\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the routing control\\. You can use any non\\-white space character in the name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53RecoveryControl::SafetyRule": { + "AssertionRule": "An assertion rule enforces that, when you change a routing control state, that the criteria that you set in the rule configuration is met\\. Otherwise, the change to the routing control is not accepted\\. For example, the criteria might be that at least one routing control state is `On` after the transaction so that traffic continues to flow to at least one cell for the application\\. This ensures that you avoid a fail\\-open scenario\\. \n*Required*: No \n*Type*: [AssertionRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoverycontrol-safetyrule-assertionrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ControlPanelArn": "The Amazon Resource Name \\(ARN\\) for the control panel\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GatingRule": "A gating rule verifies that a gating routing control or set of gating routing controls, evaluates as true, based on a rule configuration that you specify, which allows a set of routing control state changes to complete\\. \nFor example, if you specify one gating routing control and you set the `Type` in the rule configuration to `OR`, that indicates that you must set the gating routing control to `On` for the rule to evaluate as true; that is, for the gating control \"switch\" to be \"On\"\\. When you do that, then you can update the routing control states for the target routing controls that you specify in the gating rule\\. \n*Required*: No \n*Type*: [GatingRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoverycontrol-safetyrule-gatingrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the assertion rule\\. You can use any non\\-white space character in the name\\. The name must be unique within a control panel\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleConfig": "The criteria that you set for specific assertion controls \\(routing controls\\) that designate how many control states must be `ON` as the result of a transaction\\. For example, if you have three assertion controls, you might specify `ATLEAST 2` for your rule configuration\\. This means that at least two assertion controls must be `ON`, so that at least two AWS Regions have traffic flowing to them\\. \n*Required*: Yes \n*Type*: [RuleConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoverycontrol-safetyrule-ruleconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The value for a tag\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Route53RecoveryControl::SafetyRule AssertionRule": { + "AssertedControls": "The routing controls that are part of transactions that are evaluated to determine if a request to change a routing control state is allowed\\. For example, you might include three routing controls, one for each of three AWS Regions\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WaitPeriodMs": "An evaluation period, in milliseconds \\(ms\\), during which any request against the target routing controls will fail\\. This helps prevent \"flapping\" of state\\. The wait period is 5000 ms by default, but you can choose a custom value\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53RecoveryControl::SafetyRule GatingRule": { + "GatingControls": "An array of gating routing control Amazon Resource Names \\(ARNs\\)\\. For a simple \"on/off\" switch, specify the ARN for one routing control\\. The gating routing controls are evaluated by the rule configuration that you specify to determine if the target routing control states can be changed\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetControls": "An array of target routing control Amazon Resource Names \\(ARNs\\) for which the states can only be updated if the rule configuration that you specify evaluates to true for the gating routing control\\. As a simple example, if you have a single gating control, it acts as an overall \"on/off\" switch for a set of target routing controls\\. You can use this to manually override automated failover, for example\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WaitPeriodMs": "An evaluation period, in milliseconds \\(ms\\), during which any request against the target routing controls will fail\\. This helps prevent \"flapping\" of state\\. The wait period is 5000 ms by default, but you can choose a custom value\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53RecoveryControl::SafetyRule RuleConfig": { + "Inverted": "Logical negation of the rule\\. If the rule would usually evaluate true, it's evaluated as false, and vice versa\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Threshold": "The value of N, when you specify an `ATLEAST` rule type\\. That is, `Threshold` is the number of controls that must be set when you specify an `ATLEAST` type\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "A rule can be one of the following: `ATLEAST`, `AND`, or `OR`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Route53RecoveryReadiness::Cell": { + "CellName": "The name of the cell to create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Cells": "A list of cell Amazon Resource Names \\(ARNs\\) contained within this cell, for use in nested cells\\. For example, Availability Zones within specific AWS Regions\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A collection of tags associated with a resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53RecoveryReadiness::ReadinessCheck": { + "ReadinessCheckName": "The name of the readiness check to create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceSetName": "The name of the resource set to check\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A collection of tags associated with a resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53RecoveryReadiness::RecoveryGroup": { + "Cells": "A list of the cell Amazon Resource Names \\(ARNs\\) in the recovery group\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RecoveryGroupName": "The name of the recovery group to create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A collection of tags associated with a resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53RecoveryReadiness::ResourceSet": { + "ResourceSetName": "The name of the resource set to create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceSetType": "The resource type of the resources in the resource set\\. Enter one of the following values for resource type: \nAWS::AutoScaling::AutoScalingGroup, AWS::CloudWatch::Alarm, AWS::EC2::CustomerGateway, AWS::DynamoDB::Table, AWS::EC2::Volume, AWS::ElasticLoadBalancing::LoadBalancer, AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::MSK::Cluster, AWS::RDS::DBCluster, AWS::Route53::HealthCheck, AWS::SQS::Queue, AWS::SNS::Topic, AWS::SNS::Subscription, AWS::EC2::VPC, AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, AWS::Route53RecoveryReadiness::DNSTargetResource\\. \nNote that AWS::Route53RecoveryReadiness::DNSTargetResource is only used for this setting\\. It isn't an actual AWS CloudFormation resource type\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Resources": "A list of resource objects in the resource set\\. \n*Required*: Yes \n*Type*: List of [Resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoveryreadiness-resourceset-resource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A tag to associate with the parameters for a resource set\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53RecoveryReadiness::ResourceSet DNSTargetResource": { + "DomainName": "The domain name that acts as an ingress point to a portion of the customer application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HostedZoneArn": "The hosted zone Amazon Resource Name \\(ARN\\) that contains the DNS record with the provided name of the target resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RecordSetId": "The Route 53 record set ID that uniquely identifies a DNS record, given a name and a type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RecordType": "The type of DNS record of the target resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetResource": "The target resource that the Route 53 record points to\\. \n*Required*: No \n*Type*: [TargetResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoveryreadiness-resourceset-targetresource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53RecoveryReadiness::ResourceSet NLBResource": { + "Arn": "The Network Load Balancer resource Amazon Resource Name \\(ARN\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53RecoveryReadiness::ResourceSet R53ResourceRecord": { + "DomainName": "The DNS target domain name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RecordSetId": "The Route 53 Resource Record Set ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53RecoveryReadiness::ResourceSet Resource": { + "ComponentId": "The component identifier of the resource, generated when DNS target resource is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DnsTargetResource": "A component for DNS/routing control readiness checks\\. This is a required setting when `ResourceSet` `ResourceSetType` is set to `AWS::Route53RecoveryReadiness::DNSTargetResource`\\. Do not set it for any other `ResourceSetType` setting\\. \n*Required*: Conditional \n*Type*: [DNSTargetResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoveryreadiness-resourceset-dnstargetresource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReadinessScopes": "The recovery group Amazon Resource Name \\(ARN\\) or the cell ARN that the readiness checks for this resource set are scoped to\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceArn": "The Amazon Resource Name \\(ARN\\) of the AWS resource\\. This is a required setting for all `ResourceSet` `ResourceSetType` settings except `AWS::Route53RecoveryReadiness::DNSTargetResource`\\. Do not set this when `ResourceSetType` is set to `AWS::Route53RecoveryReadiness::DNSTargetResource`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53RecoveryReadiness::ResourceSet TargetResource": { + "NLBResource": "The Network Load Balancer resource that a DNS target resource points to\\. \n*Required*: No \n*Type*: [NLBResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoveryreadiness-resourceset-nlbresource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "R53Resource": "The Route 53 resource that a DNS target resource record points to\\. \n*Required*: No \n*Type*: [R53ResourceRecord](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoveryreadiness-resourceset-r53resourcerecord.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53Resolver::FirewallDomainList": { + "DomainFileUrl": "The fully qualified URL or URI of the file stored in Amazon Simple Storage Service \\(Amazon S3\\) that contains the list of domains to import\\. \nThe file must be in an S3 bucket that's in the same Region as your DNS Firewall\\. The file must be a text file and must contain a single domain per line\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Domains": "A list of the domain lists that you have defined\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the domain list\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A list of the tag keys and values that you want to associate with the domain list\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53Resolver::FirewallRuleGroup": { + "FirewallRules": "A list of the rules that you have defined\\. \n*Required*: No \n*Type*: List of [FirewallRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53resolver-firewallrulegroup-firewallrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the rule group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A list of the tag keys and values that you want to associate with the rule group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53Resolver::FirewallRuleGroup FirewallRule": { + "Action": "The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list: \n+ `ALLOW` \\- Permit the request to go through\\.\n+ `ALERT` \\- Permit the request to go through but send an alert to the logs\\.\n+ `BLOCK` \\- Disallow the request\\. If this is specified,then `BlockResponse` must also be specified\\.", + "BlockOverrideDnsType": "The DNS record's type\\. This determines the format of the record value that you provided in `BlockOverrideDomain`\\. Used for the rule action `BLOCK` with a `BlockResponse` setting of `OVERRIDE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CNAME` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BlockOverrideDomain": "The custom DNS record to send back in response to the query\\. Used for the rule action `BLOCK` with a `BlockResponse` setting of `OVERRIDE`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BlockOverrideTtl": "The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record\\. Used for the rule action `BLOCK` with a `BlockResponse` setting of `OVERRIDE`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BlockResponse": "The way that you want DNS Firewall to block the request\\. Used for the rule action setting `BLOCK`\\. \n+ `NODATA` \\- Respond indicating that the query was successful, but no response is available for it\\.\n+ `NXDOMAIN` \\- Respond indicating that the domain name that's in the query doesn't exist\\.\n+ `OVERRIDE` \\- Provide a custom override in the response\\. This option requires custom handling details in the rule's `BlockOverride*` settings\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NODATA | NXDOMAIN | OVERRIDE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FirewallDomainListId": "The ID of the domain list that's used in the rule\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Priority": "The priority of the rule in the rule group\\. This value must be unique within the rule group\\. DNS Firewall processes the rules in a rule group by order of priority, starting from the lowest setting\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53Resolver::FirewallRuleGroupAssociation": { + "FirewallRuleGroupId": "The unique identifier of the firewall rule group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MutationProtection": "If enabled, this setting disallows modification or removal of the association, to help prevent against accidentally altering DNS firewall protections\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the association\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Priority": "The setting that determines the processing order of the rule group among the rule groups that are associated with a single VPC\\. DNS Firewall filters VPC traffic starting from rule group with the lowest numeric priority setting\\. \nYou must specify a unique priority for each rule group that you associate with a single VPC\\. To make it easier to insert rule groups later, leave space between the numbers, for example, use 101, 200, and so on\\. You can change the priority setting for a rule group association after you create it\\. \nThe allowed values for `Priority` are between 100 and 9900 \\(excluding 100 and 9900\\)\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A list of the tag keys and values that you want to associate with the rule group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcId": "The unique identifier of the VPC that is associated with the rule group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Route53Resolver::ResolverConfig": { + "AutodefinedReverseFlag": "Represents the desired status of `AutodefinedReverse`\\. The only supported value on creation is `DISABLE`\\. Deletion of this resource will return `AutodefinedReverse` to its default value of `ENABLED`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceId": "The ID of the Amazon Virtual Private Cloud VPC that you're configuring Resolver for\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Route53Resolver::ResolverDNSSECConfig": { + "ResourceId": "The ID of the virtual private cloud \\(VPC\\) that you're configuring the DNSSEC validation status for\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Route53Resolver::ResolverEndpoint": { + "Direction": "Indicates whether the Resolver endpoint allows inbound or outbound DNS queries: \n+ `INBOUND`: allows DNS queries to your VPC from your network\n+ `OUTBOUND`: allows DNS queries from your VPC to your network\n*Required*: Yes \n*Type*: String \n*Allowed values*: `INBOUND | OUTBOUND` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IpAddresses": "The subnets and IP addresses in your VPC that DNS queries originate from \\(for outbound endpoints\\) or that you forward DNS queries to \\(for inbound endpoints\\)\\. The subnet ID uniquely identifies a VPC\\. \n*Required*: Yes \n*Type*: List of [IpAddressRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53resolver-resolverendpoint-ipaddressrequest.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A friendly name that lets you easily find a configuration in the Resolver dashboard in the Route 53 console\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroupIds": "The ID of one or more security groups that control access to this VPC\\. The security group must include one or more inbound rules \\(for inbound endpoints\\) or outbound rules \\(for outbound endpoints\\)\\. Inbound and outbound rules must allow TCP and UDP access\\. For inbound access, open port 53\\. For outbound access, open the port that you're using for DNS queries on your network\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Route 53 Resolver doesn't support updating tags through CloudFormation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53Resolver::ResolverEndpoint IpAddressRequest": { + "Ip": "The IP address that you want to use for DNS queries\\. \n*Required*: No \n*Type*: String \n*Minimum*: `7` \n*Maximum*: `36` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetId": "The ID of the subnet that contains the IP address\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53Resolver::ResolverQueryLoggingConfig": { + "DestinationArn": "The ARN of the resource that you want Resolver to send query logs: an Amazon S3 bucket, a CloudWatch Logs log group, or a Kinesis Data Firehose delivery stream\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `600` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the query logging configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation": { + "ResolverQueryLogConfigId": "The ID of the query logging configuration that a VPC is associated with\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceId": "The ID of the Amazon VPC that is associated with the query logging configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Route53Resolver::ResolverRule": { + "DomainName": "DNS queries for this domain name are forwarded to the IP addresses that are specified in `TargetIps`\\. If a query matches multiple Resolver rules \\(example\\.com and www\\.example\\.com\\), the query is routed using the Resolver rule that contains the most specific domain name \\(www\\.example\\.com\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name for the Resolver rule, which you specified when you created the Resolver rule\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResolverEndpointId": "The ID of the endpoint that the rule is associated with\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleType": "When you want to forward DNS queries for specified domain name to resolvers on your network, specify `FORWARD`\\. \nWhen you have a forwarding rule to forward DNS queries for a domain to your network and you want Resolver to process queries for a subdomain of that domain, specify `SYSTEM`\\. \nFor example, to forward DNS queries for example\\.com to resolvers on your network, you create a rule and specify `FORWARD` for `RuleType`\\. To then have Resolver process queries for apex\\.example\\.com, you create a rule and specify `SYSTEM` for `RuleType`\\. \nCurrently, only Resolver can create rules that have a value of `RECURSIVE` for `RuleType`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `FORWARD | RECURSIVE | SYSTEM` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Route 53 Resolver doesn't support updating tags through CloudFormation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetIps": "An array that contains the IP addresses and ports that an outbound endpoint forwards DNS queries to\\. Typically, these are the IP addresses of DNS resolvers on your network\\. Specify IPv4 addresses\\. IPv6 is not supported\\. \n*Required*: No \n*Type*: List of [TargetAddress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53resolver-resolverrule-targetaddress.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53Resolver::ResolverRule TargetAddress": { + "Ip": "One IP address that you want to forward DNS queries to\\. You can specify only IPv4 addresses\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `7` \n*Maximum*: `36` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "The port at `Ip` that you want to forward DNS queries to\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Route53Resolver::ResolverRuleAssociation": { + "Name": "The name of an association between a Resolver rule and a VPC\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResolverRuleId": "The ID of the Resolver rule that you associated with the VPC that is specified by `VPCId`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VPCId": "The ID of the VPC that you associated the Resolver rule with\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::S3::AccessPoint": { + "Bucket": "The name of the bucket associated with this access point\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of this access point\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the access point name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Policy": "The access point policy associated with this access point\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PolicyStatus": "The container element for a bucket's policy status\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PublicAccessBlockConfiguration": "The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket\\. You can enable the configuration options in any combination\\. For more information about when Amazon S3 considers a bucket or object public, see [The Meaning of \"Public\"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: [PublicAccessBlockConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-accesspoint-publicaccessblockconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpcConfiguration": "The Virtual Private Cloud \\(VPC\\) configuration for this access point, if one exists\\. \n*Required*: No \n*Type*: [VpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-accesspoint-vpcconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::S3::AccessPoint PublicAccessBlockConfiguration": { + "BlockPublicAcls": "Specifies whether Amazon S3 should block public access control lists \\(ACLs\\) for this bucket and objects in this bucket\\. Setting this element to `TRUE` causes the following behavior: \n+ PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is public\\.\n+ PUT Object calls fail if the request includes a public ACL\\.\n+ PUT Bucket calls fail if the request includes a public ACL\\.\nEnabling this setting doesn't affect existing policies or ACLs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BlockPublicPolicy": "Specifies whether Amazon S3 should block public bucket policies for this bucket\\. Setting this element to `TRUE` causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access\\. \nEnabling this setting doesn't affect existing bucket policies\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IgnorePublicAcls": "Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket\\. Setting this element to `TRUE` causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket\\. \nEnabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RestrictPublicBuckets": "Specifies whether Amazon S3 should restrict public bucket policies for this bucket\\. Setting this element to `TRUE` restricts access to this bucket to only AWS service principals and authorized users within this account if the bucket has a public policy\\. \nEnabling this setting doesn't affect previously stored bucket policies, except that public and cross\\-account access within any public bucket policy, including non\\-public delegation to specific accounts, is blocked\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::S3::AccessPoint VpcConfiguration": { + "VpcId": "If this field is specified, the access point will only allow connections from the specified VPC ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::S3::Bucket": { + "AccelerateConfiguration": "Configures the transfer acceleration state for an Amazon S3 bucket\\. For more information, see [Amazon S3 Transfer Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: [AccelerateConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accelerateconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AccessControl": "A canned access control list \\(ACL\\) that grants predefined permissions to the bucket\\. For more information about canned ACLs, see [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) in the *Amazon S3 User Guide*\\. \nBe aware that the syntax for this property differs from the information provided in the *Amazon S3 User Guide*\\. The AccessControl property is case\\-sensitive and must be one of the following values: Private, PublicRead, PublicReadWrite, AuthenticatedRead, LogDeliveryWrite, BucketOwnerRead, BucketOwnerFullControl, or AwsExecRead\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AnalyticsConfigurations": "Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket\\. \n*Required*: No \n*Type*: List of [AnalyticsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-analyticsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BucketEncryption": "Specifies default encryption for a bucket using server\\-side encryption with Amazon S3\\-managed keys \\(SSE\\-S3\\) or AWS KMS\\-managed keys \\(SSE\\-KMS\\) bucket\\. For information about the Amazon S3 default encryption feature, see [Amazon S3 Default Encryption for S3 Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: [BucketEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-bucketencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BucketName": "A name for the bucket\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the bucket name\\. The bucket name must contain only lowercase letters, numbers, periods \\(\\.\\), and dashes \\(\\-\\) and must follow [Amazon S3 bucket restrictions and limitations](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html)\\. For more information, see [Rules for naming Amazon S3 buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html#bucketnamingrules) in the *Amazon S3 User Guide*\\. \nIf you specify a name, you can't perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you need to replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CorsConfiguration": "Describes the cross\\-origin access configuration for objects in an Amazon S3 bucket\\. For more information, see [Enabling Cross\\-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: [CorsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IntelligentTieringConfigurations": "Defines how Amazon S3 handles Intelligent\\-Tiering storage\\. \n*Required*: No \n*Type*: List of [IntelligentTieringConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InventoryConfigurations": "Specifies the inventory configuration for an Amazon S3 bucket\\. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*\\. \n*Required*: No \n*Type*: List of [InventoryConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LifecycleConfiguration": "Specifies the lifecycle configuration for objects in an Amazon S3 bucket\\. For more information, see [Object Lifecycle Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: [LifecycleConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoggingConfiguration": "Settings that define where logs are stored\\. \n*Required*: No \n*Type*: [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-loggingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricsConfigurations": "Specifies a metrics configuration for the CloudWatch request metrics \\(specified by the metrics configuration ID\\) from an Amazon S3 bucket\\. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration\\. If you don't include the elements you want to keep, they are erased\\. For more information, see [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html)\\. \n*Required*: No \n*Type*: List of [MetricsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotificationConfiguration": "Configuration that defines how Amazon S3 handles bucket notifications\\. \n*Required*: No \n*Type*: [NotificationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ObjectLockConfiguration": "Places an Object Lock configuration on the specified bucket\\. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket\\. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html)\\. \n+ The `DefaultRetention` settings require both a mode and a period\\.\n+ The `DefaultRetention` period can be either `Days` or `Years` but you must select one\\. You cannot specify `Days` and `Years` at the same time\\.\n+ You can only enable Object Lock for new buckets\\. If you want to turn on Object Lock for an existing bucket, contact AWS Support\\.\n*Required*: No \n*Type*: [ObjectLockConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ObjectLockEnabled": "Indicates whether this bucket has an Object Lock configuration enabled\\. Enable `ObjectLockEnabled` when you apply `ObjectLockConfiguration` to a bucket\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OwnershipControls": "Configuration that defines how Amazon S3 handles Object Ownership rules\\. \n*Required*: No \n*Type*: [OwnershipControls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrols.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PublicAccessBlockConfiguration": "Configuration that defines how Amazon S3 handles public access\\. \n*Required*: No \n*Type*: [PublicAccessBlockConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-publicaccessblockconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReplicationConfiguration": "Configuration for replicating objects in an S3 bucket\\. To enable replication, you must also enable versioning by using the `VersioningConfiguration` property\\. \nAmazon S3 can store replicated objects in a single destination bucket or multiple destination buckets\\. The destination bucket or buckets must already exist\\. \n*Required*: No \n*Type*: [ReplicationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An arbitrary set of tags \\(key\\-value pairs\\) for this S3 bucket\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VersioningConfiguration": "Enables multiple versions of all objects in this bucket\\. You might enable versioning to prevent objects from being deleted or overwritten by mistake or to archive objects so that you can retrieve previous versions of them\\. \n*Required*: No \n*Type*: [VersioningConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-versioningconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WebsiteConfiguration": "Information used to configure the bucket as a static website\\. For more information, see [Hosting Websites on Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html)\\. \n*Required*: No \n*Type*: [WebsiteConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket AbortIncompleteMultipartUpload": { + "DaysAfterInitiation": "Specifies the number of days after which Amazon S3 stops an incomplete multipart upload\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket AccelerateConfiguration": { + "AccelerationStatus": "Specifies the transfer acceleration status of the bucket\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Enabled | Suspended` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket AccessControlTranslation": { + "Owner": "Specifies the replica ownership\\. For default and valid values, see [PUT bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) in the *Amazon S3 API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Destination` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket AnalyticsConfiguration": { + "Id": "The ID that identifies the analytics configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "The prefix that an object must have to be included in the analytics results\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StorageClassAnalysis": "Contains data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes\\. \n*Required*: Yes \n*Type*: [StorageClassAnalysis](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-storageclassanalysis.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TagFilters": "The tags to use when evaluating an analytics filter\\. \nThe analytics only includes objects that meet the filter's criteria\\. If no filter is specified, all of the contents of the bucket are included in the analysis\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket BucketEncryption": { + "ServerSideEncryptionConfiguration": "Specifies the default server\\-side\\-encryption configuration\\. \n*Required*: Yes \n*Type*: List of [ServerSideEncryptionRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket CorsConfiguration": { + "CorsRules": "A set of origins and methods \\(cross\\-origin access that you want to allow\\)\\. You can add up to 100 rules to the configuration\\. \n*Required*: Yes \n*Type*: List of [CorsRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors-corsrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket CorsRule": { + "AllowedHeaders": "Headers that are specified in the `Access-Control-Request-Headers` header\\. These headers are allowed in a preflight OPTIONS request\\. In response to any preflight OPTIONS request, Amazon S3 returns any requested headers that are allowed\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AllowedMethods": "An HTTP method that you allow the origin to run\\. \n*Allowed values*: `GET` \\| `PUT` \\| `HEAD` \\| `POST` \\| `DELETE` \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AllowedOrigins": "One or more origins you want customers to be able to access the bucket from\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExposedHeaders": "One or more headers in the response that you want customers to be able to access from their applications \\(for example, from a JavaScript `XMLHttpRequest` object\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "A unique identifier for this rule\\. The value must be no more than 255 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxAge": "The time in seconds that your browser is to cache the preflight response for the specified resource\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket DataExport": { + "Destination": "The place to store the data for an analysis\\. \n*Required*: Yes \n*Type*: [Destination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutputSchemaVersion": "The version of the output schema to use when exporting data\\. Must be `V_1`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `V_1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket DefaultRetention": { + "Days": "The number of days that you want to specify for the default retention period\\. If Object Lock is turned on, you must specify `Mode` and specify either `Days` or `Years`\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Mode": "The default Object Lock retention mode you want to apply to new objects placed in the specified bucket\\. If Object Lock is turned on, you must specify `Mode` and specify either `Days` or `Years`\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `COMPLIANCE | GOVERNANCE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Years": "The number of years that you want to specify for the default retention period\\. If Object Lock is turned on, you must specify `Mode` and specify either `Days` or `Years`\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket DeleteMarkerReplication": { + "Status": "Indicates whether to replicate delete markers\\. Disabled by default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket Destination": { + "BucketAccountId": "The account ID that owns the destination S3 bucket\\. If no account ID is provided, the owner is not validated before exporting data\\. \n Although this value is optional, we strongly recommend that you set it to help prevent problems if the destination bucket ownership changes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BucketArn": "The Amazon Resource Name \\(ARN\\) of the bucket to which data is exported\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Format": "Specifies the file format used when exporting data to Amazon S3\\. \n*Allowed values*: `CSV` \\| `ORC` \\| `Parquet` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "The prefix to use when exporting data\\. The prefix is prepended to all results\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket EncryptionConfiguration": { + "ReplicaKmsKeyID": "Specifies the ID \\(Key ARN or Alias ARN\\) of the customer managed AWS KMS key stored in AWS Key Management Service \\(KMS\\) for the destination bucket\\. Amazon S3 uses this key to encrypt replica objects\\. Amazon S3 only supports symmetric, customer managed KMS keys\\. For more information, see [Using symmetric and asymmetric keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) in the * AWS Key Management Service Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket EventBridgeConfiguration": { + "EventBridgeEnabled": "Enables delivery of events to Amazon EventBridge\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket FilterRule": { + "Name": "The object key name prefix or suffix identifying one or more objects to which the filtering rule applies\\. The maximum length is 1,024 characters\\. Overlapping prefixes and suffixes are not supported\\. For more information, see [Configuring Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `prefix | suffix` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value that the filter searches for in object key names\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket IntelligentTieringConfiguration": { + "Id": "The ID used to identify the S3 Intelligent\\-Tiering configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "An object key name prefix that identifies the subset of objects to which the rule applies\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Status": "Specifies the status of the configuration\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TagFilters": "A container for a key\\-value pair\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tierings": "Specifies a list of S3 Intelligent\\-Tiering storage class tiers in the configuration\\. At least one tier must be defined in the list\\. At most, you can specify two tiers in the list, one for each available AccessTier: `ARCHIVE_ACCESS` and `DEEP_ARCHIVE_ACCESS`\\. \nYou only need Intelligent Tiering Configuration enabled on a bucket if you want to automatically move objects stored in the Intelligent\\-Tiering storage class to Archive Access or Deep Archive Access tiers\\.\n*Required*: Yes \n*Type*: List of [Tiering](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tiering.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket InventoryConfiguration": { + "Destination": "Contains information about where to publish the inventory results\\. \n*Required*: Yes \n*Type*: [Destination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Specifies whether the inventory is enabled or disabled\\. If set to `True`, an inventory list is generated\\. If set to `False`, no inventory list is generated\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "The ID used to identify the inventory configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludedObjectVersions": "Object versions to include in the inventory list\\. If set to `All`, the list includes all the object versions, which adds the version\\-related fields `VersionId`, `IsLatest`, and `DeleteMarker` to the list\\. If set to `Current`, the list does not contain these version\\-related fields\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `All | Current` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OptionalFields": "Contains the optional fields that are included in the inventory results\\. \n*Valid values*: ` Size | LastModifiedDate | StorageClass | ETag | IsMultipartUploaded | ReplicationStatus | EncryptionStatus | ObjectLockRetainUntilDate | ObjectLockMode | ObjectLockLegalHoldStatus | IntelligentTieringAccessTier | BucketKeyStatus ` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "Specifies the inventory filter prefix\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduleFrequency": "Specifies the schedule for generating inventory results\\. \n*Allowed values*: `Daily` \\| `Weekly` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket LambdaConfiguration": { + "Event": "The Amazon S3 bucket event for which to invoke the AWS Lambda function\\. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Filter": "The filtering rules that determine which objects invoke the AWS Lambda function\\. For example, you can create a filter so that only image files with a `.jpg` extension invoke the function when they are added to the Amazon S3 bucket\\. \n*Required*: No \n*Type*: [NotificationFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Function": "The Amazon Resource Name \\(ARN\\) of the AWS Lambda function that Amazon S3 invokes when the specified event type occurs\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket LifecycleConfiguration": { + "Rules": "A lifecycle rule for individual objects in an Amazon S3 bucket\\. \n*Required*: Yes \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket LoggingConfiguration": { + "DestinationBucketName": "The name of the bucket where Amazon S3 should store server access log files\\. You can store log files in any bucket that you own\\. By default, logs are stored in the bucket where the `LoggingConfiguration` property is defined\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LogFilePrefix": "A prefix for all log object keys\\. If you store log files from multiple Amazon S3 buckets in a single bucket, you can use a prefix to distinguish which log files came from which bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket Metrics": { + "EventThreshold": "A container specifying the time threshold for emitting the `s3:Replication:OperationMissedThreshold` event\\. \n*Required*: No \n*Type*: [ReplicationTimeValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtimevalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Status": "Specifies whether the replication metrics are enabled\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket MetricsConfiguration": { + "AccessPointArn": "The access point that was used while performing operations on the object\\. The metrics configuration only includes objects that meet the filter's criteria\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "The ID used to identify the metrics configuration\\. This can be any value you choose that helps you identify your metrics configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "The prefix that an object must have to be included in the metrics results\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TagFilters": "Specifies a list of tag filters to use as a metrics configuration filter\\. The metrics configuration includes only objects that meet the filter's criteria\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket NoncurrentVersionExpiration": { + "NewerNoncurrentVersions": "Specifies how many noncurrent versions Amazon S3 will retain\\. If there are this many more recent noncurrent versions, Amazon S3 will take the associated action\\. For more information about noncurrent versions, see [Lifecycle configuration elements](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NoncurrentDays": "Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action\\. For information about the noncurrent days calculations, see [How Amazon S3 Calculates When an Object Became Noncurrent](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket NoncurrentVersionTransition": { + "NewerNoncurrentVersions": "Specifies how many noncurrent versions Amazon S3 will retain\\. If there are this many more recent noncurrent versions, Amazon S3 will take the associated action\\. For more information about noncurrent versions, see [Lifecycle configuration elements](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StorageClass": "The class of storage used to store the object\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DEEP_ARCHIVE | GLACIER | GLACIER_IR | INTELLIGENT_TIERING | ONEZONE_IA | STANDARD_IA` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitionInDays": "Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action\\. For information about the noncurrent days calculations, see [How Amazon S3 Calculates How Long an Object Has Been Noncurrent](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket NotificationConfiguration": { + "EventBridgeConfiguration": "Enables delivery of events to Amazon EventBridge\\. \n*Required*: No \n*Type*: [EventBridgeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-eventbridgeconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LambdaConfigurations": "Describes the AWS Lambda functions to invoke and the events for which to invoke them\\. \n*Required*: No \n*Type*: List of [LambdaConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-lambdaconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueueConfigurations": "The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages\\. \n*Required*: No \n*Type*: List of [QueueConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-queueconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TopicConfigurations": "The topic to which notifications are sent and the events for which notifications are generated\\. \n*Required*: No \n*Type*: List of [TopicConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-topicconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket NotificationFilter": { + "S3Key": "A container for object key name prefix and suffix filtering rules\\. \n*Required*: Yes \n*Type*: [S3KeyFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket ObjectLockConfiguration": { + "ObjectLockEnabled": "Indicates whether this bucket has an Object Lock configuration enabled\\. Enable `ObjectLockEnabled` when you apply `ObjectLockConfiguration` to a bucket\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Rule": "Specifies the Object Lock rule for the specified object\\. Enable the this rule when you apply `ObjectLockConfiguration` to a bucket\\. If Object Lock is turned on, bucket settings require both `Mode` and a period of either `Days` or `Years`\\. You cannot specify `Days` and `Years` at the same time\\. For more information, see [ObjectLockRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockrule.html) and [DefaultRetention](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html)\\. \n*Required*: Conditional \n*Type*: [ObjectLockRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket ObjectLockRule": { + "DefaultRetention": "The default Object Lock retention mode and period that you want to apply to new objects placed in the specified bucket\\. If Object Lock is turned on, bucket settings require both `Mode` and a period of either `Days` or `Years`\\. You cannot specify `Days` and `Years` at the same time\\. For more information about allowable values for mode and period, see [DefaultRetention](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html)\\. \n*Required*: Conditional \n*Type*: [DefaultRetention](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket OwnershipControls": { + "Rules": "Specifies the container element for Object Ownership rules\\. \n*Required*: Yes \n*Type*: List of [OwnershipControlsRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrolsrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket OwnershipControlsRule": { + "ObjectOwnership": "Specifies an Object Ownership rule\\. \n*Allowed values*: `BucketOwnerEnforced` \\| `ObjectWriter` \\| `BucketOwnerPreferred` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket PublicAccessBlockConfiguration": { + "BlockPublicAcls": "Specifies whether Amazon S3 should block public access control lists \\(ACLs\\) for this bucket and objects in this bucket\\. Setting this element to `TRUE` causes the following behavior: \n+ PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is public\\.\n+ PUT Object calls fail if the request includes a public ACL\\.\n+ PUT Bucket calls fail if the request includes a public ACL\\.\nEnabling this setting doesn't affect existing policies or ACLs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BlockPublicPolicy": "Specifies whether Amazon S3 should block public bucket policies for this bucket\\. Setting this element to `TRUE` causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access\\. \nEnabling this setting doesn't affect existing bucket policies\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IgnorePublicAcls": "Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket\\. Setting this element to `TRUE` causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket\\. \nEnabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RestrictPublicBuckets": "Specifies whether Amazon S3 should restrict public bucket policies for this bucket\\. Setting this element to `TRUE` restricts access to this bucket to only AWS service principals and authorized users within this account if the bucket has a public policy\\. \nEnabling this setting doesn't affect previously stored bucket policies, except that public and cross\\-account access within any public bucket policy, including non\\-public delegation to specific accounts, is blocked\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket QueueConfiguration": { + "Event": "The Amazon S3 bucket event about which you want to publish messages to Amazon SQS\\. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Filter": "The filtering rules that determine which objects trigger notifications\\. For example, you can create a filter so that Amazon S3 sends notifications only when image files with a `.jpg` extension are added to the bucket\\. \n*Required*: No \n*Type*: [NotificationFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Queue": "The Amazon Resource Name \\(ARN\\) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type\\. FIFO queues are not allowed when enabling an SQS queue as the event notification destination\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket RedirectAllRequestsTo": { + "HostName": "Name of the host where requests are redirected\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "Protocol to use when redirecting requests\\. The default is the protocol that is used in the original request\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `http | https` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket RedirectRule": { + "HostName": "The host name to use in the redirect request\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HttpRedirectCode": "The HTTP redirect code to use on the response\\. Not required if one of the siblings is present\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "Protocol to use when redirecting requests\\. The default is the protocol that is used in the original request\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `http | https` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReplaceKeyPrefixWith": "The object key prefix to use in the redirect request\\. For example, to redirect requests for all pages with prefix `docs/` \\(objects in the `docs/` folder\\) to `documents/`, you can set a condition block with `KeyPrefixEquals` set to `docs/` and in the Redirect set `ReplaceKeyPrefixWith` to `/documents`\\. Not required if one of the siblings is present\\. Can be present only if `ReplaceKeyWith` is not provided\\. \nReplacement must be made for object keys containing special characters \\(such as carriage returns\\) when using XML requests\\. For more information, see [ XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReplaceKeyWith": "The specific object key to use in the redirect request\\. For example, redirect request to `error.html`\\. Not required if one of the siblings is present\\. Can be present only if `ReplaceKeyPrefixWith` is not provided\\. \nReplacement must be made for object keys containing special characters \\(such as carriage returns\\) when using XML requests\\. For more information, see [ XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket ReplicaModifications": { + "Status": "Specifies whether Amazon S3 replicates modifications on replicas\\. \n*Allowed values*: `Enabled` \\| `Disabled` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket ReplicationConfiguration": { + "Role": "The Amazon Resource Name \\(ARN\\) of the AWS Identity and Access Management \\(IAM\\) role that Amazon S3 assumes when replicating objects\\. For more information, see [How to Set Up Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-how-setup.html) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Rules": "A container for one or more replication rules\\. A replication configuration must have at least one rule and can contain a maximum of 1,000 rules\\. \n*Required*: Yes \n*Type*: List of [ReplicationRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket ReplicationDestination": { + "AccessControlTranslation": "Specify this only in a cross\\-account scenario \\(where source and destination bucket owners are not the same\\), and you want to change replica ownership to the AWS account that owns the destination bucket\\. If this is not specified in the replication configuration, the replicas are owned by same AWS account that owns the source object\\. \n*Required*: No \n*Type*: [AccessControlTranslation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accesscontroltranslation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Account": "Destination bucket owner account ID\\. In a cross\\-account scenario, if you direct Amazon S3 to change replica ownership to the AWS account that owns the destination bucket by specifying the `AccessControlTranslation` property, this is the account ID of the destination bucket owner\\. For more information, see [Cross\\-Region Replication Additional Configuration: Change Replica Owner](https://docs.aws.amazon.com/AmazonS3/latest/dev/crr-change-owner.html) in the *Amazon S3 User Guide*\\. \nIf you specify the `AccessControlTranslation` property, the `Account` property is required\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Bucket": "The Amazon Resource Name \\(ARN\\) of the bucket where you want Amazon S3 to store the results\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EncryptionConfiguration": "Specifies encryption\\-related information\\. \n*Required*: No \n*Type*: [EncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-encryptionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Metrics": "A container specifying replication metrics\\-related settings enabling replication metrics and events\\. \n*Required*: No \n*Type*: [Metrics](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metrics.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReplicationTime": "A container specifying S3 Replication Time Control \\(S3 RTC\\), including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated\\. Must be specified together with a `Metrics` block\\. \n*Required*: No \n*Type*: [ReplicationTime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtime.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StorageClass": "The storage class to use when replicating objects, such as S3 Standard or reduced redundancy\\. By default, Amazon S3 uses the storage class of the source object to create the object replica\\. \nFor valid values, see the `StorageClass` element of the [PUT Bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) action in the *Amazon S3 API Reference*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DEEP_ARCHIVE | GLACIER | GLACIER_IR | INTELLIGENT_TIERING | ONEZONE_IA | OUTPOSTS | REDUCED_REDUNDANCY | STANDARD | STANDARD_IA` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket ReplicationRule": { + "DeleteMarkerReplication": "Specifies whether Amazon S3 replicates delete markers\\. If you specify a `Filter` in your replication configuration, you must also include a `DeleteMarkerReplication` element\\. If your `Filter` includes a `Tag` element, the `DeleteMarkerReplication` `Status` must be set to Disabled, because Amazon S3 does not support replicating delete markers for tag\\-based rules\\. For an example configuration, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config)\\. \nFor more information about delete marker replication, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html)\\. \nIf you are using an earlier version of the replication configuration, Amazon S3 handles replication of delete markers differently\\. For more information, see [Backward Compatibility](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations)\\.\n*Required*: No \n*Type*: [DeleteMarkerReplication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-deletemarkerreplication.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Destination": "A container for information about the replication destination and its configurations including enabling the S3 Replication Time Control \\(S3 RTC\\)\\. \n*Required*: Yes \n*Type*: [ReplicationDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Filter": "A filter that identifies the subset of objects to which the replication rule applies\\. A `Filter` must specify exactly one `Prefix`, `TagFilter`, or an `And` child element\\. The use of the filter field indicates this is a V2 replication configuration\\. V1 does not have this field\\. \n*Required*: No \n*Type*: [ReplicationRuleFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationrulefilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "A unique identifier for the rule\\. The maximum value is 255 characters\\. If you don't specify a value, AWS CloudFormation generates a random ID\\. When using a V2 replication configuration this property is capitalized as \"ID\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "An object key name prefix that identifies the object or objects to which the rule applies\\. The maximum prefix length is 1,024 characters\\. To include all objects in a bucket, specify an empty string\\. \nReplacement must be made for object keys containing special characters \\(such as carriage returns\\) when using XML requests\\. For more information, see [ XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Priority": "The priority indicates which rule has precedence whenever two or more replication rules conflict\\. Amazon S3 will attempt to replicate objects according to all replication rules\\. However, if there are two or more rules with the same destination bucket, then objects will be replicated according to the rule with the highest priority\\. The higher the number, the higher the priority\\. \nFor more information, see [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceSelectionCriteria": "A container that describes additional filters for identifying the source objects that you want to replicate\\. You can choose to enable or disable the replication of these objects\\. \n*Required*: No \n*Type*: [SourceSelectionCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-sourceselectioncriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Status": "Specifies whether the rule is enabled\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket ReplicationRuleAndOperator": { + "Prefix": "An object key name prefix that identifies the subset of objects to which the rule applies\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TagFilters": "An array of tags containing key and value pairs\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket ReplicationRuleFilter": { + "And": "A container for specifying rule filters\\. The filters determine the subset of objects to which the rule applies\\. This element is required only if you specify more than one filter\\. For example: \n+ If you specify both a `Prefix` and a `TagFilter`, wrap these filters in an `And` tag\\.\n+ If you specify a filter based on multiple tags, wrap the `TagFilter` elements in an `And` tag\\.\n*Required*: No \n*Type*: [ReplicationRuleAndOperator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationruleandoperator.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "An object key name prefix that identifies the subset of objects to which the rule applies\\. \nReplacement must be made for object keys containing special characters \\(such as carriage returns\\) when using XML requests\\. For more information, see [ XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TagFilter": "A container for specifying a tag key and value\\. \nThe rule applies only to objects that have the tag in their tag set\\. \n*Required*: No \n*Type*: [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket ReplicationTime": { + "Status": "Specifies whether the replication time is enabled\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Time": "A container specifying the time by which replication should be complete for all objects and operations on objects\\. \n*Required*: Yes \n*Type*: [ReplicationTimeValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtimevalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket ReplicationTimeValue": { + "Minutes": "Contains an integer specifying time in minutes\\. \n Valid value: 15 \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket RoutingRule": { + "RedirectRule": "Container for redirect information\\. You can redirect requests to another host, to another page, or with another protocol\\. In the event of an error, you can specify a different error code to return\\. \n*Required*: Yes \n*Type*: [RedirectRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-redirectrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoutingRuleCondition": "A container for describing a condition that must be met for the specified redirect to apply\\. For example, 1\\. If request is for pages in the `/docs` folder, redirect to the `/documents` folder\\. 2\\. If request results in HTTP error 4xx, redirect request to another host where you might process the error\\. \n*Required*: No \n*Type*: [RoutingRuleCondition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-routingrulecondition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket RoutingRuleCondition": { + "HttpErrorCodeReturnedEquals": "The HTTP error code when the redirect is applied\\. In the event of an error, if the error code equals this value, then the specified redirect is applied\\. \nRequired when parent element `Condition` is specified and sibling `KeyPrefixEquals` is not specified\\. If both are specified, then both must be true for the redirect to be applied\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KeyPrefixEquals": "The object key name prefix when the redirect is applied\\. For example, to redirect requests for `ExamplePage.html`, the key prefix will be `ExamplePage.html`\\. To redirect request for all pages with the prefix `docs/`, the key prefix will be `/docs`, which identifies all objects in the docs/ folder\\. \nRequired when the parent element `Condition` is specified and sibling `HttpErrorCodeReturnedEquals` is not specified\\. If both conditions are specified, both must be true for the redirect to be applied\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket Rule": { + "AbortIncompleteMultipartUpload": "Specifies a lifecycle rule that stops incomplete multipart uploads to an Amazon S3 bucket\\. \n*Required*: Conditional \n*Type*: [AbortIncompleteMultipartUpload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-abortincompletemultipartupload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExpirationDate": "Indicates when objects are deleted from Amazon S3 and Amazon S3 Glacier\\. The date value must be in ISO 8601 format\\. The time is always midnight UTC\\. If you specify an expiration and transition time, you must use the same time unit for both properties \\(either in days or by date\\)\\. The expiration time must also be later than the transition time\\. \n*Required*: Conditional \n*Type*: Timestamp \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExpirationInDays": "Indicates the number of days after creation when objects are deleted from Amazon S3 and Amazon S3 Glacier\\. If you specify an expiration and transition time, you must use the same time unit for both properties \\(either in days or by date\\)\\. The expiration time must also be later than the transition time\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExpiredObjectDeleteMarker": "Indicates whether Amazon S3 will remove a delete marker without any noncurrent versions\\. If set to true, the delete marker will be removed if there are no noncurrent versions\\. This cannot be specified with `ExpirationInDays`, `ExpirationDate`, or `TagFilters`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "Unique identifier for the rule\\. The value can't be longer than 255 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NoncurrentVersionExpiration": "Specifies when noncurrent object versions expire\\. Upon expiration, Amazon S3 permanently deletes the noncurrent object versions\\. You set this lifecycle configuration action on a bucket that has versioning enabled \\(or suspended\\) to request that Amazon S3 delete noncurrent object versions at a specific period in the object's lifetime\\. \n*Required*: No \n*Type*: [NoncurrentVersionExpiration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-noncurrentversionexpiration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NoncurrentVersionExpirationInDays": "\\(Deprecated\\.\\) For buckets with versioning enabled \\(or suspended\\), specifies the time, in days, between when a new version of the object is uploaded to the bucket and when old versions of the object expire\\. When object versions expire, Amazon S3 permanently deletes them\\. If you specify a transition and expiration time, the expiration time must be later than the transition time\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NoncurrentVersionTransition": "\\(Deprecated\\.\\) For buckets with versioning enabled \\(or suspended\\), specifies when non\\-current objects transition to a specified storage class\\. If you specify a transition and expiration time, the expiration time must be later than the transition time\\. If you specify this property, don't specify the `NoncurrentVersionTransitions` property\\. \n*Required*: Conditional \n*Type*: [NoncurrentVersionTransition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-noncurrentversiontransition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NoncurrentVersionTransitions": "For buckets with versioning enabled \\(or suspended\\), one or more transition rules that specify when non\\-current objects transition to a specified storage class\\. If you specify a transition and expiration time, the expiration time must be later than the transition time\\. If you specify this property, don't specify the `NoncurrentVersionTransition` property\\. \n*Required*: Conditional \n*Type*: List of [NoncurrentVersionTransition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-noncurrentversiontransition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ObjectSizeGreaterThan": "Specifies the minimum object size in bytes for this rule to apply to\\. For more information about size based rules, see [Lifecycle configuration using size\\-based rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lc-size-rules) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: Long \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ObjectSizeLessThan": "Specifies the maximum object size in bytes for this rule to apply to\\. For more information about sized based rules, see [Lifecycle configuration using size\\-based rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lc-size-rules) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: Long \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "Object key prefix that identifies one or more objects to which this rule applies\\. \nReplacement must be made for object keys containing special characters \\(such as carriage returns\\) when using XML requests\\. For more information, see [ XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Status": "If `Enabled`, the rule is currently being applied\\. If `Disabled`, the rule is not currently being applied\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TagFilters": "Tags to use to identify a subset of objects to which the lifecycle rule applies\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Transition": "\\(Deprecated\\.\\) Specifies when an object transitions to a specified storage class\\. If you specify an expiration and transition time, you must use the same time unit for both properties \\(either in days or by date\\)\\. The expiration time must also be later than the transition time\\. If you specify this property, don't specify the `Transitions` property\\. \n*Required*: Conditional \n*Type*: [Transition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-transition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Transitions": "One or more transition rules that specify when an object transitions to a specified storage class\\. If you specify an expiration and transition time, you must use the same time unit for both properties \\(either in days or by date\\)\\. The expiration time must also be later than the transition time\\. If you specify this property, don't specify the `Transition` property\\. \n*Required*: Conditional \n*Type*: List of [Transition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-transition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket S3KeyFilter": { + "Rules": "A list of containers for the key\\-value pair that defines the criteria for the filter rule\\. \n*Required*: Yes \n*Type*: List of [FilterRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key-rules.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket ServerSideEncryptionByDefault": { + "KMSMasterKeyID": "KMS key ID to use for the default encryption\\. This parameter is allowed if SSEAlgorithm is aws:kms\\. \nYou can specify the key ID or the Amazon Resource Name \\(ARN\\) of the CMK\\. However, if you are using encryption with cross\\-account operations, you must use a fully qualified CMK ARN\\. For more information, see [Using encryption for cross\\-account operations](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy)\\. \nFor example: \n+ Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`\n+ Key ARN: `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`\nAmazon S3 only supports symmetric KMS keys and not asymmetric KMS keys\\. For more information, see [Using Symmetric and Asymmetric Keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) in the *AWS Key Management Service Developer Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SSEAlgorithm": "Server\\-side encryption algorithm to use for the default encryption\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AES256 | aws:kms` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket ServerSideEncryptionRule": { + "BucketKeyEnabled": "Specifies whether Amazon S3 should use an S3 Bucket Key with server\\-side encryption using KMS \\(SSE\\-KMS\\) for new objects in the bucket\\. Existing objects are not affected\\. Setting the `BucketKeyEnabled` element to `true` causes Amazon S3 to use an S3 Bucket Key\\. By default, S3 Bucket Key is not enabled\\. \nFor more information, see [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServerSideEncryptionByDefault": "Specifies the default server\\-side encryption to apply to new objects in the bucket\\. If a PUT Object request doesn't specify any server\\-side encryption, this default encryption will be applied\\. \n*Required*: No \n*Type*: [ServerSideEncryptionByDefault](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionbydefault.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket SourceSelectionCriteria": { + "ReplicaModifications": "A filter that you can specify for selection for modifications on replicas\\. \n*Required*: No \n*Type*: [ReplicaModifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicamodifications.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SseKmsEncryptedObjects": "A container for filter information for the selection of Amazon S3 objects encrypted with AWS KMS\\. \n*Required*: No \n*Type*: [SseKmsEncryptedObjects](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ssekmsencryptedobjects.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket SseKmsEncryptedObjects": { + "Status": "Specifies whether Amazon S3 replicates objects created with server\\-side encryption using an AWS KMS key stored in AWS Key Management Service\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket StorageClassAnalysis": { + "DataExport": "Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported\\. \n*Required*: No \n*Type*: [DataExport](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-dataexport.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket TagFilter": { + "Key": "The tag key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The tag value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket Tiering": { + "AccessTier": "S3 Intelligent\\-Tiering access tier\\. See [Storage class for automatically optimizing frequently and infrequently accessed objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access) for a list of access tiers in the S3 Intelligent\\-Tiering storage class\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ARCHIVE_ACCESS | DEEP_ARCHIVE_ACCESS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Days": "The number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier\\. The minimum number of days specified for Archive Access tier must be at least 90 days and Deep Archive Access tier must be at least 180 days\\. The maximum can be up to 2 years \\(730 days\\)\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket TopicConfiguration": { + "Event": "The Amazon S3 bucket event about which to send notifications\\. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Filter": "The filtering rules that determine for which objects to send notifications\\. For example, you can create a filter so that Amazon S3 sends notifications only when image files with a `.jpg` extension are added to the bucket\\. \n*Required*: No \n*Type*: [NotificationFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Topic": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to which Amazon S3 publishes a message when it detects events of the specified type\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket Transition": { + "StorageClass": "The storage class to which you want the object to transition\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DEEP_ARCHIVE | GLACIER | GLACIER_IR | INTELLIGENT_TIERING | ONEZONE_IA | STANDARD_IA` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitionDate": "Indicates when objects are transitioned to the specified storage class\\. The date value must be in ISO 8601 format\\. The time is always midnight UTC\\. \n*Required*: Conditional \n*Type*: Timestamp \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitionInDays": "Indicates the number of days after creation when objects are transitioned to the specified storage class\\. The value must be a positive integer\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket VersioningConfiguration": { + "Status": "The versioning state of the bucket\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Enabled | Suspended` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::Bucket WebsiteConfiguration": { + "ErrorDocument": "The name of the error document for the website\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IndexDocument": "The name of the index document for the website\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RedirectAllRequestsTo": "The redirect behavior for every request to this bucket's website endpoint\\. \nIf you specify this property, you can't specify any other property\\.\n*Required*: No \n*Type*: [RedirectAllRequestsTo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-redirectallrequeststo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoutingRules": "Rules that define when a redirect is applied and the redirect behavior\\. \n*Required*: No \n*Type*: List of [RoutingRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::BucketPolicy": { + "Bucket": "The name of the Amazon S3 bucket to which the policy applies\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PolicyDocument": "A policy document containing permissions to add to the specified bucket\\. In IAM, you must provide policy documents in JSON format\\. However, in CloudFormation you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM\\. For more information, see the AWS::IAM::Policy [PolicyDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-policydocument) resource description in this guide and [Access Policy Language Overview](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-policy-language-overview.html) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::MultiRegionAccessPoint": { + "Name": "The name of the Multi\\-Region Access Point\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PublicAccessBlockConfiguration": "The PublicAccessBlock configuration that you want to apply to this Multi\\-Region Access Point\\. You can enable the configuration options in any combination\\. For more information about when Amazon S3 considers an object public, see [The Meaning of \"Public\"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: [PublicAccessBlockConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-multiregionaccesspoint-publicaccessblockconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Regions": "A collection of the Regions and buckets associated with the Multi\\-Region Access Point\\. \n*Required*: Yes \n*Type*: List of [Region](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-multiregionaccesspoint-region.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::S3::MultiRegionAccessPoint PublicAccessBlockConfiguration": { + "BlockPublicAcls": "Specifies whether Amazon S3 should block public access control lists \\(ACLs\\) for this bucket and objects in this bucket\\. Setting this element to `TRUE` causes the following behavior: \n+ PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is public\\.\n+ PUT Object calls fail if the request includes a public ACL\\.\n+ PUT Bucket calls fail if the request includes a public ACL\\.\nEnabling this setting doesn't affect existing policies or ACLs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BlockPublicPolicy": "Specifies whether Amazon S3 should block public bucket policies for this bucket\\. Setting this element to `TRUE` causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access\\. \nEnabling this setting doesn't affect existing bucket policies\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IgnorePublicAcls": "Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket\\. Setting this element to `TRUE` causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket\\. \nEnabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RestrictPublicBuckets": "Specifies whether Amazon S3 should restrict public bucket policies for this bucket\\. Setting this element to `TRUE` restricts access to this bucket to only AWS service principals and authorized users within this account if the bucket has a public policy\\. \nEnabling this setting doesn't affect previously stored bucket policies, except that public and cross\\-account access within any public bucket policy, including non\\-public delegation to specific accounts, is blocked\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::S3::MultiRegionAccessPoint Region": { + "Bucket": "The name of the associated bucket for the Region\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::S3::MultiRegionAccessPointPolicy": { + "MrapName": "The name of the Multi\\-Region Access Point\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Policy": "The access policy associated with the Multi\\-Region Access Point\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::StorageLens": { + "StorageLensConfiguration": "This resource contains the details Amazon S3 Storage Lens configuration\\. \n*Required*: Yes \n*Type*: [StorageLensConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-storagelensconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A set of tags \\(key\u2013value pairs\\) to associate with the Storage Lens configuration\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::StorageLens AccountLevel": { + "ActivityMetrics": "This property contains the details of the account\\-level activity metrics for Amazon S3 Storage Lens\\. \n*Required*: No \n*Type*: [ActivityMetrics](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-activitymetrics.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BucketLevel": "This property contains the details of the account\\-level bucket\\-level configurations for Amazon S3 Storage Lens\\. \n*Required*: Yes \n*Type*: [BucketLevel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-bucketlevel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::StorageLens ActivityMetrics": { + "IsEnabled": "A property that indicates whether the activity metrics is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::StorageLens AwsOrg": { + "Arn": "This resource contains the ARN of the AWS Organization\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::StorageLens BucketLevel": { + "ActivityMetrics": "A property for the bucket\\-level activity metrics for Amazon S3 Storage Lens\\. \n*Required*: No \n*Type*: [ActivityMetrics](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-activitymetrics.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PrefixLevel": "A property for the bucket\\-level prefix\\-level storage metrics for S3 Storage Lens\\. \n*Required*: No \n*Type*: [PrefixLevel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-prefixlevel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::StorageLens BucketsAndRegions": { + "Buckets": "This property contains the details of the buckets for the Amazon S3 Storage Lens configuration\\. This should be the bucket Amazon Resource Name\\(ARN\\)\\. For valid values, see [Buckets ARN format here](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_Include.html#API_control_Include_Contents) in the *Amazon S3 API Reference*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Regions": "This property contains the details of the Regions for the S3 Storage Lens configuration\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::StorageLens CloudWatchMetrics": { + "IsEnabled": "This property identifies whether the CloudWatch publishing option for S3 Storage Lens is enabled\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::StorageLens DataExport": { + "CloudWatchMetrics": "This property enables the Amazon CloudWatch publishing option for S3 Storage Lens metrics\\. \n*Required*: No \n*Type*: [CloudWatchMetrics](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-cloudwatchmetrics.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3BucketDestination": "This property contains the details of the bucket where the S3 Storage Lens metrics export will be placed\\. \n*Required*: No \n*Type*: [S3BucketDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-s3bucketdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::StorageLens PrefixLevel": { + "StorageMetrics": "A property for the prefix\\-level storage metrics for Amazon S3 Storage Lens\\. \n*Required*: Yes \n*Type*: [PrefixLevelStorageMetrics](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-prefixlevelstoragemetrics.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::StorageLens PrefixLevelStorageMetrics": { + "IsEnabled": "This property identifies whether the details of the prefix\\-level storage metrics for S3 Storage Lens are enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SelectionCriteria": "This property identifies whether the details of the prefix\\-level storage metrics for S3 Storage Lens are enabled\\. \n*Required*: No \n*Type*: [SelectionCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-selectioncriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::StorageLens S3BucketDestination": { + "AccountId": "This property contains the details of the AWS account ID of the S3 Storage Lens export bucket destination\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Arn": "This property contains the details of the ARN of the bucket destination of the S3 Storage Lens export\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Encryption": "This property contains the details of the encryption of the bucket destination of the Amazon S3 Storage Lens metrics export\\. \n*Required*: No \n*Type*: [Encryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-encryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Format": "This property contains the details of the format of the S3 Storage Lens export bucket destination\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutputSchemaVersion": "This property contains the details of the output schema version of the S3 Storage Lens export bucket destination\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Prefix": "This property contains the details of the prefix of the bucket destination of the S3 Storage Lens export \\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::StorageLens SelectionCriteria": { + "Delimiter": "This property contains the details of the S3 Storage Lens delimiter being used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxDepth": "This property contains the details of the max depth that S3 Storage Lens will collect metrics up to\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MinStorageBytesPercentage": "This property contains the details of the minimum storage bytes percentage threshold that S3 Storage Lens will collect metrics up to\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3::StorageLens StorageLensConfiguration": { + "AccountLevel": "This property contains the details of the account\\-level metrics for Amazon S3 Storage Lens configuration\\. \n*Required*: Yes \n*Type*: [AccountLevel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-accountlevel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AwsOrg": "This property contains the details of the AWS Organization for the S3 Storage Lens configuration\\. \n*Required*: No \n*Type*: [AwsOrg](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-awsorg.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataExport": "This property contains the details of this S3 Storage Lens configuration's metrics export\\. \n*Required*: No \n*Type*: [DataExport](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-dataexport.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Exclude": "This property contains the details of the bucket and or Regions excluded for Amazon S3 Storage Lens configuration\\. \n*Required*: No \n*Type*: [BucketsAndRegions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-bucketsandregions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "This property contains the details of the ID of the S3 Storage Lens configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Include": "This property contains the details of the bucket and or Regions included for Amazon S3 Storage Lens configuration\\. \n*Required*: No \n*Type*: [BucketsAndRegions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-bucketsandregions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IsEnabled": "This property contains the details of whether the Amazon S3 Storage Lens configuration is enabled\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StorageLensArn": "This property contains the details of the ARN of the S3 Storage Lens configuration\\. This property is read\\-only\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3ObjectLambda::AccessPoint": { + "Name": "The name of this access point\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ObjectLambdaConfiguration": "A configuration used when creating an Object Lambda Access Point\\. \n*Required*: Yes \n*Type*: [ObjectLambdaConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3objectlambda-accesspoint-objectlambdaconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3ObjectLambda::AccessPoint ObjectLambdaConfiguration": { + "AllowedFeatures": "A container for allowed features\\. Valid inputs are `GetObject-Range` and `GetObject-PartNumber`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CloudWatchMetricsEnabled": "A container for whether the CloudWatch metrics configuration is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SupportingAccessPoint": "Standard access point associated with the Object Lambda Access Point\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransformationConfigurations": "A container for transformation configurations for an Object Lambda Access Point\\. \n*Required*: Yes \n*Type*: List of [TransformationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3objectlambda-accesspoint-transformationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3ObjectLambda::AccessPoint TransformationConfiguration": { + "Actions": "A container for the action of an Object Lambda Access Point configuration\\. Valid input is `GetObject`\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContentTransformation": "A container for the content transformation of an Object Lambda Access Point configuration\\. Can include the FunctionArn and FunctionPayload\\. For more information, see [AwsLambdaTransformation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_AwsLambdaTransformation.html) in the *Amazon S3 API Reference*\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3ObjectLambda::AccessPointPolicy": { + "ObjectLambdaAccessPoint": "An access point with an attached AWS Lambda function used to access transformed data from an Amazon S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PolicyDocument": "Object Lambda Access Point resource policy document\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3Outposts::AccessPoint": { + "Bucket": "The Amazon Resource Name \\(ARN\\) of the S3 on Outposts bucket that is associated with this access point\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of this access point\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Policy": "The access point policy associated with this access point\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcConfiguration": "The virtual private cloud \\(VPC\\) configuration for this access point, if one exists\\. \n*Required*: Yes \n*Type*: [VpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-accesspoint-vpcconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::S3Outposts::AccessPoint VpcConfiguration": { + "VpcId": "The ID of the VPC configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::S3Outposts::Bucket": { + "BucketName": "A name for the S3 on Outposts bucket\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the bucket name\\. The bucket name must contain only lowercase letters, numbers, periods \\(\\.\\), and dashes \\(\\-\\) and must follow [ Amazon S3 bucket restrictions and limitations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html)\\. For more information, see [Bucket naming rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html#bucketnamingrules)\\. \nIf you specify a name, you can't perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you need to replace the resource, specify a new name\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LifecycleConfiguration": "Creates a new lifecycle configuration for the S3 on Outposts bucket or replaces an existing lifecycle configuration\\. Outposts buckets only support lifecycle configurations that delete/expire objects after a certain period of time and abort incomplete multipart uploads\\. \n*Required*: No \n*Type*: [LifecycleConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-bucket-lifecycleconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutpostId": "The ID of the Outpost of the specified bucket\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Sets the tags for an S3 on Outposts bucket\\. For more information, see [Using Amazon S3 on Outposts](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)\\. \nUse tags to organize your AWS bill to reflect your own cost structure\\. To do this, sign up to get your AWS account bill with tag key values included\\. Then, to see the cost of combined resources, organize your billing information according to resources with the same tag key values\\. For example, you can tag several resources with a specific application name, and then organize your billing information to see the total cost of that application across several services\\. For more information, see [Cost allocation and tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)\\. \nWithin a bucket, if you add a tag that has the same key as an existing tag, the new value overwrites the old value\\. For more information, see [ Using cost allocation and bucket tags](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html)\\.\nTo use this resource, you must have permissions to perform the `s3-outposts:PutBucketTagging`\\. The S3 on Outposts bucket owner has this permission by default and can grant this permission to others\\. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing access permissions to your Amazon S3 resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3Outposts::Bucket AbortIncompleteMultipartUpload": { + "DaysAfterInitiation": "Specifies the number of days after initiation that Amazon S3 on Outposts aborts an incomplete multipart upload\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3Outposts::Bucket LifecycleConfiguration": { + "Rules": "The container for the lifecycle configuration rules for the objects stored in the S3 on Outposts bucket\\. \n*Required*: Yes \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-bucket-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3Outposts::Bucket Rule": { + "AbortIncompleteMultipartUpload": "The container for the abort incomplete multipart upload rule\\. \n*Required*: No \n*Type*: [AbortIncompleteMultipartUpload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-bucket-abortincompletemultipartupload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExpirationDate": "Specifies the expiration for the lifecycle of the object by specifying an expiry date\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExpirationInDays": "Specifies the expiration for the lifecycle of the object in the form of days that the object has been in the S3 on Outposts bucket\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Filter": "The container for the filter of the lifecycle rule\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Id": "The unique identifier for the lifecycle rule\\. The value can't be longer than 255 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Status": "If `Enabled`, the rule is currently being applied\\. If `Disabled`, the rule is not currently being applied\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3Outposts::BucketPolicy": { + "Bucket": "The name of the Amazon S3 Outposts bucket to which the policy applies\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PolicyDocument": "A policy document containing permissions to add to the specified bucket\\. In IAM, you must provide policy documents in JSON format\\. However, in CloudFormation, you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM\\. For more information, see the AWS::IAM::Policy [ PolicyDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-policydocument) resource description in this guide and [ Access Policy Language Overview](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-policy-language-overview.html)\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::S3Outposts::Endpoint": { + "AccessType": "The container for the type of connectivity used to access the Amazon S3 on Outposts endpoint\\. To use the Amazon VPC, choose `Private`\\. To use the endpoint with an on\\-premises network, choose `CustomerOwnedIp`\\. If you choose `CustomerOwnedIp`, you must also provide the customer\\-owned IP address pool \\(CoIP pool\\)\\. \n`Private` is the default access type value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `CustomerOwnedIp | Private` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CustomerOwnedIpv4Pool": "The ID of the customer\\-owned IPv4 address pool \\(CoIP pool\\) for the endpoint\\. IP addresses are allocated from this pool for the endpoint\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^ipv4pool-coip-([0-9a-f]{17})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OutpostId": "The ID of the Outpost\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecurityGroupId": "The ID of the security group to use with the endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetId": "The ID of the subnet\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::S3Outposts::Endpoint NetworkInterface": { + "NetworkInterfaceId": "The ID for the network interface\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SDB::Domain": { + "Description": "Information about the SimpleDB domain\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SES::ConfigurationSet": { + "Name": "The name of the configuration set\\. The name must meet the following requirements: \n+ Contain only letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), underscores \\(\\_\\), or dashes \\(\\-\\)\\.\n+ Contain 64 characters or fewer\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SES::ConfigurationSetEventDestination": { + "ConfigurationSetName": "The name of the configuration set that contains the event destination\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EventDestination": "The event destination object\\. \n*Required*: Yes \n*Type*: [EventDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-eventdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SES::ConfigurationSetEventDestination CloudWatchDestination": { + "DimensionConfigurations": "A list of dimensions upon which to categorize your emails when you publish email sending events to Amazon CloudWatch\\. \n*Required*: No \n*Type*: List of [DimensionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-dimensionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SES::ConfigurationSetEventDestination DimensionConfiguration": { + "DefaultDimensionValue": "The default value of the dimension that is published to Amazon CloudWatch if you do not provide the value of the dimension when you send an email\\. The default value must meet the following requirements: \n+ Contain only ASCII letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), underscores \\(\\_\\), dashes \\(\\-\\), at signs \\(@\\), or periods \\(\\.\\)\\.\n+ Contain 256 characters or fewer\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DimensionName": "The name of an Amazon CloudWatch dimension associated with an email sending metric\\. The name must meet the following requirements: \n+ Contain only ASCII letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), underscores \\(\\_\\), or dashes \\(\\-\\)\\.\n+ Contain 256 characters or fewer\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DimensionValueSource": "The place where Amazon SES finds the value of a dimension to publish to Amazon CloudWatch\\. To use the message tags that you specify using an `X-SES-MESSAGE-TAGS` header or a parameter to the `SendEmail`/`SendRawEmail` API, specify `messageTag`\\. To use your own email headers, specify `emailHeader`\\. To put a custom tag on any link included in your email, specify `linkTag`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `emailHeader | linkTag | messageTag` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SES::ConfigurationSetEventDestination EventDestination": { + "CloudWatchDestination": "An object that contains the names, default values, and sources of the dimensions associated with an Amazon CloudWatch event destination\\. \n*Required*: No \n*Type*: [CloudWatchDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-cloudwatchdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "Sets whether Amazon SES publishes events to this destination when you send an email with the associated configuration set\\. Set to `true` to enable publishing to this destination; set to `false` to prevent publishing to this destination\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KinesisFirehoseDestination": "An object that contains the delivery stream ARN and the IAM role ARN associated with an Amazon Kinesis Firehose event destination\\. \n*Required*: No \n*Type*: [KinesisFirehoseDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-kinesisfirehosedestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MatchingEventTypes": "The type of email sending events to publish to the event destination\\. \n+ `send` \\- The call was successful and Amazon SES is attempting to deliver the email\\.\n+ `reject` \\- Amazon SES determined that the email contained a virus and rejected it\\.\n+ `bounce` \\- The recipient's mail server permanently rejected the email\\. This corresponds to a hard bounce\\.\n+ `complaint` \\- The recipient marked the email as spam\\.\n+ `delivery` \\- Amazon SES successfully delivered the email to the recipient's mail server\\.\n+ `open` \\- The recipient received the email and opened it in their email client\\.\n+ `click` \\- The recipient clicked one or more links in the email\\.\n+ `renderingFailure` \\- Amazon SES did not send the email because of a template rendering issue\\.\n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the event destination\\. The name must meet the following requirements: \n+ Contain only ASCII letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), underscores \\(\\_\\), or dashes \\(\\-\\)\\.\n+ Contain 64 characters or fewer\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SES::ConfigurationSetEventDestination KinesisFirehoseDestination": { + "DeliveryStreamARN": "The ARN of the Amazon Kinesis Firehose stream that email sending events should be published to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IAMRoleARN": "The ARN of the IAM role under which Amazon SES publishes email sending events to the Amazon Kinesis Firehose stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SES::ContactList": { + "ContactListName": "The name of the contact list\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Description": "A description of what the contact list is about\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags associated with a contact list\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Topics": "An interest group, theme, or label within a list\\. A contact list can have multiple topics\\. \n*Required*: No \n*Type*: List of [Topic](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-contactlist-topic.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SES::ContactList Topic": { + "DefaultSubscriptionStatus": "The default subscription status to be applied to a contact if the contact has not noted their preference for subscribing to a topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of what the topic is about, which the contact will see\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisplayName": "The name of the topic the contact will see\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TopicName": "The name of the topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SES::ReceiptFilter": { + "Filter": "A data structure that describes the IP address filter to create, which consists of a name, an IP address range, and whether to allow or block mail from it\\. \n*Required*: Yes \n*Type*: [Filter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptfilter-filter.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SES::ReceiptFilter Filter": { + "IpFilter": "A structure that provides the IP addresses to block or allow, and whether to block or allow incoming mail from them\\. \n*Required*: Yes \n*Type*: [IpFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptfilter-ipfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the IP address filter\\. The name must meet the following requirements: \n+ Contain only ASCII letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), underscores \\(\\_\\), or dashes \\(\\-\\)\\.\n+ Start and end with a letter or number\\.\n+ Contain 64 characters or fewer\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SES::ReceiptFilter IpFilter": { + "Cidr": "A single IP address or a range of IP addresses to block or allow, specified in Classless Inter\\-Domain Routing \\(CIDR\\) notation\\. An example of a single email address is 10\\.0\\.0\\.1\\. An example of a range of IP addresses is 10\\.0\\.0\\.1/24\\. For more information about CIDR notation, see [RFC 2317](https://tools.ietf.org/html/rfc2317)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Policy": "Indicates whether to block or allow incoming mail from the specified IP addresses\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Allow | Block` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SES::ReceiptRule": { + "After": "The name of an existing rule after which the new rule is placed\\. If this parameter is null, the new rule is inserted at the beginning of the rule list\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Rule": "A data structure that contains the specified rule's name, actions, recipients, domains, enabled status, scan status, and TLS policy\\. \n*Required*: Yes \n*Type*: [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleSetName": "The name of the rule set where the receipt rule is added\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SES::ReceiptRule Action": { + "AddHeaderAction": "Adds a header to the received email\\. \n*Required*: No \n*Type*: [AddHeaderAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-addheaderaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BounceAction": "Rejects the received email by returning a bounce response to the sender and, optionally, publishes a notification to Amazon Simple Notification Service \\(Amazon SNS\\)\\. \n*Required*: No \n*Type*: [BounceAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-bounceaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LambdaAction": "Calls an AWS Lambda function, and optionally, publishes a notification to Amazon SNS\\. \n*Required*: No \n*Type*: [LambdaAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-lambdaaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Action": "Saves the received message to an Amazon Simple Storage Service \\(Amazon S3\\) bucket and, optionally, publishes a notification to Amazon SNS\\. \n*Required*: No \n*Type*: [S3Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-s3action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SNSAction": "Publishes the email content within a notification to Amazon SNS\\. \n*Required*: No \n*Type*: [SNSAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-snsaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StopAction": "Terminates the evaluation of the receipt rule set and optionally publishes a notification to Amazon SNS\\. \n*Required*: No \n*Type*: [StopAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-stopaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WorkmailAction": "Calls Amazon WorkMail and, optionally, publishes a notification to Amazon Amazon SNS\\. \n*Required*: No \n*Type*: [WorkmailAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-workmailaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SES::ReceiptRule AddHeaderAction": { + "HeaderName": "The name of the header to add to the incoming message\\. The name must contain at least one character, and can contain up to 50 characters\\. It consists of alphanumeric \\(a\u2013z, A\u2013Z, 0\u20139\\) characters and dashes\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HeaderValue": "The content to include in the header\\. This value can contain up to 2048 characters\\. It can't contain newline \\(`\\n`\\) or carriage return \\(`\\r`\\) characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SES::ReceiptRule BounceAction": { + "Message": "Human\\-readable text to include in the bounce message\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Sender": "The email address of the sender of the bounced email\\. This is the address from which the bounce message is sent\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SmtpReplyCode": "The SMTP reply code, as defined by [RFC 5321](https://tools.ietf.org/html/rfc5321)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatusCode": "The SMTP enhanced status code, as defined by [RFC 3463](https://tools.ietf.org/html/rfc3463)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TopicArn": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to notify when the bounce action is taken\\. You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) operation in Amazon SNS\\. \nFor more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SES::ReceiptRule LambdaAction": { + "FunctionArn": "The Amazon Resource Name \\(ARN\\) of the AWS Lambda function\\. An example of an AWS Lambda function ARN is `arn:aws:lambda:us-west-2:account-id:function:MyFunction`\\. For more information about AWS Lambda, see the [AWS Lambda Developer Guide](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InvocationType": "The invocation type of the AWS Lambda function\\. An invocation type of `RequestResponse` means that the execution of the function immediately results in a response, and a value of `Event` means that the function is invoked asynchronously\\. The default value is `Event`\\. For information about AWS Lambda invocation types, see the [AWS Lambda Developer Guide](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html)\\. \nThere is a 30\\-second timeout on `RequestResponse` invocations\\. You should use `Event` invocation in most cases\\. Use `RequestResponse` only to make a mail flow decision, such as whether to stop the receipt rule or the receipt rule set\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `Event | RequestResponse` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TopicArn": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to notify when the Lambda action is executed\\. You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) operation in Amazon SNS\\. \nFor more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SES::ReceiptRule Rule": { + "Actions": "An ordered list of actions to perform on messages that match at least one of the recipient email addresses or domains specified in the receipt rule\\. \n*Required*: No \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Enabled": "If `true`, the receipt rule is active\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the receipt rule\\. The name must meet the following requirements: \n+ Contain only ASCII letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), underscores \\(\\_\\), or dashes \\(\\-\\)\\.\n+ Start and end with a letter or number\\.\n+ Contain 64 characters or fewer\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Recipients": "The recipient domains and email addresses that the receipt rule applies to\\. If this field is not specified, this rule matches all recipients on all verified domains\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScanEnabled": "If `true`, then messages that this receipt rule applies to are scanned for spam and viruses\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TlsPolicy": "Specifies whether Amazon SES should require that incoming email is delivered over a connection encrypted with Transport Layer Security \\(TLS\\)\\. If this parameter is set to `Require`, Amazon SES bounces emails that are not received over TLS\\. The default is `Optional`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Optional | Require` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SES::ReceiptRule S3Action": { + "BucketName": "The name of the Amazon S3 bucket for incoming email\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKeyArn": "The customer master key that Amazon SES should use to encrypt your emails before saving them to the Amazon S3 bucket\\. You can use the default master key or a custom master key that you created in AWS KMS as follows: \n+ To use the default master key, provide an ARN in the form of `arn:aws:kms:REGION:ACCOUNT-ID-WITHOUT-HYPHENS:alias/aws/ses`\\. For example, if your AWS account ID is 123456789012 and you want to use the default master key in the US West \\(Oregon\\) Region, the ARN of the default master key would be `arn:aws:kms:us-west-2:123456789012:alias/aws/ses`\\. If you use the default master key, you don't need to perform any extra steps to give Amazon SES permission to use the key\\.\n+ To use a custom master key that you created in AWS KMS, provide the ARN of the master key and ensure that you add a statement to your key's policy to give Amazon SES permission to use it\\. For more information about giving permissions, see the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-permissions.html)\\.\nFor more information about key policies, see the [AWS KMS Developer Guide](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)\\. If you do not specify a master key, Amazon SES does not encrypt your emails\\. \nYour mail is encrypted by Amazon SES using the Amazon S3 encryption client before the mail is submitted to Amazon S3 for storage\\. It is not encrypted using Amazon S3 server\\-side encryption\\. This means that you must use the Amazon S3 encryption client to decrypt the email after retrieving it from Amazon S3, as the service has no access to use your AWS KMS keys for decryption\\. This encryption client is currently available with the [AWS SDK for Java](http://aws.amazon.com/sdk-for-java/) and [AWS SDK for Ruby](http://aws.amazon.com/sdk-for-ruby/) only\\. For more information about client\\-side encryption using AWS KMS master keys, see the [Amazon S3 Developer Guide](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ObjectKeyPrefix": "The key prefix of the Amazon S3 bucket\\. The key prefix is similar to a directory name that enables you to store similar data under the same directory in a bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TopicArn": "The ARN of the Amazon SNS topic to notify when the message is saved to the Amazon S3 bucket\\. You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) operation in Amazon SNS\\. \nFor more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SES::ReceiptRule SNSAction": { + "Encoding": "The encoding to use for the email within the Amazon SNS notification\\. UTF\\-8 is easier to use, but may not preserve all special characters when a message was encoded with a different encoding format\\. Base64 preserves all special characters\\. The default value is UTF\\-8\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Base64 | UTF-8` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TopicArn": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to notify\\. You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) operation in Amazon SNS\\. \nFor more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SES::ReceiptRule StopAction": { + "Scope": "The scope of the StopAction\\. The only acceptable value is `RuleSet`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `RuleSet` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TopicArn": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to notify when the stop action is taken\\. You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) Amazon SNS operation\\. \nFor more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SES::ReceiptRule WorkmailAction": { + "OrganizationArn": "The Amazon Resource Name \\(ARN\\) of the Amazon WorkMail organization\\. Amazon WorkMail ARNs use the following format: \n `arn:aws:workmail:::organization/` \nYou can find the ID of your organization by using the [ListOrganizations](https://docs.aws.amazon.com/workmail/latest/APIReference/API_ListOrganizations.html) operation in Amazon WorkMail\\. Amazon WorkMail organization IDs begin with \"`m-`\", followed by a string of alphanumeric characters\\. \nFor information about Amazon WorkMail organizations, see the [Amazon WorkMail Administrator Guide](https://docs.aws.amazon.com/workmail/latest/adminguide/organizations_overview.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TopicArn": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to notify when the WorkMail action is called\\. You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) operation in Amazon SNS\\. \nFor more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SES::ReceiptRuleSet": { + "RuleSetName": "The name of the receipt rule set to reorder\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SES::Template": { + "Template": "The content of the email, composed of a subject line and either an HTML part or a text\\-only part\\. \n*Required*: No \n*Type*: [Template](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-template-template.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SES::Template Template": { + "HtmlPart": "The HTML body of the email\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubjectPart": "The subject line of the email\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TemplateName": "The name of the template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TextPart": "The email body that is visible to recipients whose email clients do not display HTML content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SNS::Subscription": { + "DeliveryPolicy": "The delivery policy JSON assigned to the subscription\\. Enables the subscriber to define the message delivery retry strategy in the case of an HTTP/S endpoint subscribed to the topic\\. For more information, see ` [GetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetSubscriptionAttributes.html) ` in the *Amazon SNS API Reference* and [Message delivery retries](https://docs.aws.amazon.com/sns/latest/dg/sns-message-delivery-retries.html) in the *Amazon SNS Developer Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Endpoint": "The subscription's endpoint\\. The endpoint value depends on the protocol that you specify\\. For more information, see the `Endpoint` parameter of the ` [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html) ` action in the *Amazon SNS API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FilterPolicy": "The filter policy JSON assigned to the subscription\\. Enables the subscriber to filter out unwanted messages\\. For more information, see ` [GetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetSubscriptionAttributes.html) ` in the *Amazon SNS API Reference* and [Message filtering](https://docs.aws.amazon.com/sns/latest/dg/sns-message-filtering.html) in the *Amazon SNS Developer Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocol": "The subscription's protocol\\. For more information, see the `Protocol` parameter of the ` [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html) ` action in the *Amazon SNS API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RawMessageDelivery": "When set to `true`, enables raw message delivery\\. Raw messages don't contain any JSON formatting and can be sent to Amazon SQS and HTTP/S endpoints\\. For more information, see ` [GetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetSubscriptionAttributes.html) ` in the *Amazon SNS API Reference*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RedrivePolicy": "When specified, sends undeliverable messages to the specified Amazon SQS dead\\-letter queue\\. Messages that can't be delivered due to client errors \\(for example, when the subscribed endpoint is unreachable\\) or server errors \\(for example, when the service that powers the subscribed endpoint becomes unavailable\\) are held in the dead\\-letter queue for further analysis or reprocessing\\. \nFor more information about the redrive policy and dead\\-letter queues, see [Amazon SQS dead\\-letter queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) in the *Amazon SQS Developer Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Region": "For cross\\-region subscriptions, the region in which the topic resides\\. \nIf no region is specified, AWS CloudFormation uses the region of the caller as the default\\. \nIf you perform an update operation that only updates the `Region` property of a `AWS::SNS::Subscription` resource, that operation will fail unless you are either: \n+ Updating the `Region` from `NULL` to the caller region\\.\n+ Updating the `Region` from the caller region to `NULL`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubscriptionRoleArn": "This property applies only to Amazon Kinesis Data Firehose delivery stream subscriptions\\. Specify the ARN of the IAM role that has the following: \n+ Permission to write to the Amazon Kinesis Data Firehose delivery stream\n+ Amazon SNS listed as a trusted entity\nSpecifying a valid ARN for this attribute is required for Kinesis Data Firehose delivery stream subscriptions\\. For more information, see [Fanout to Amazon Kinesis Data Firehose delivery streams](https://docs.aws.amazon.com/sns/latest/dg/sns-firehose-as-subscriber.html) in the *Amazon SNS Developer Guide\\.* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TopicArn": "The ARN of the topic to subscribe to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SNS::Topic": { + "ContentBasedDeduplication": "Enables content\\-based deduplication for FIFO topics\\. \n+ By default, `ContentBasedDeduplication` is set to `false`\\. If you create a FIFO topic and this attribute is `false`, you must specify a value for the `MessageDeduplicationId` parameter for the [Publish](https://docs.aws.amazon.com/sns/latest/api/API_Publish.html) action\\. \n+ When you set `ContentBasedDeduplication` to `true`, Amazon SNS uses a SHA\\-256 hash to generate the `MessageDeduplicationId` using the body of the message \\(but not the attributes of the message\\)\\.", + "DisplayName": "The display name to use for an Amazon SNS topic with SMS subscriptions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FifoTopic": "Set to true to create a FIFO topic\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KmsMasterKeyId": "The ID of an AWS managed customer master key \\(CMK\\) for Amazon SNS or a custom CMK\\. For more information, see [Key terms](https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html#sse-key-terms)\\. For more examples, see ` [KeyId](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters) ` in the *AWS Key Management Service API Reference*\\. \nThis property applies only to [server\\-side\\-encryption](https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Subscription": "The Amazon SNS subscriptions \\(endpoints\\) for this topic\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-subscription.html) of [Subscription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-subscription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The list of tags to add to a new topic\\. \nTo be able to tag a topic on creation, you must have the `sns:CreateTopic` and `sns:TagResource` permissions\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TopicName": "The name of the topic you want to create\\. Topic names must include only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 256 characters long\\. FIFO topic names must end with `.fifo`\\. \nIf you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the topic name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you can't perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SNS::Topic Subscription": { + "Endpoint": "The endpoint that receives notifications from the Amazon SNS topic\\. The endpoint value depends on the protocol that you specify\\. For more information, see the `Endpoint` parameter of the ` [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html) ` action in the *Amazon SNS API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Protocol": "The subscription's protocol\\. For more information, see the `Protocol` parameter of the ` [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html) ` action in the *Amazon SNS API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SNS::TopicPolicy": { + "PolicyDocument": "A policy document that contains permissions to add to the specified SNS topics\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Topics": "The Amazon Resource Names \\(ARN\\) of the topics to which you want to add the policy\\. You can use the ` [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) ` function to specify an ` [AWS::SNS::Topic](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html) ` resource\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SQS::Queue": { + "ContentBasedDeduplication": "For first\\-in\\-first\\-out \\(FIFO\\) queues, specifies whether to enable content\\-based deduplication\\. During the deduplication interval, Amazon SQS treats messages that are sent with identical content as duplicates and delivers only one copy of the message\\. For more information, see the `ContentBasedDeduplication` attribute for the ` [CreateQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html) ` action in the *Amazon SQS API Reference*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeduplicationScope": "For high throughput for FIFO queues, specifies whether message deduplication occurs at the message group or queue level\\. Valid values are `messageGroup` and `queue`\\. \nTo enable high throughput for a FIFO queue, set this attribute to `messageGroup` *and* set the `FifoThroughputLimit` attribute to `perMessageGroupId`\\. If you set these attributes to anything other than these values, normal throughput is in effect and deduplication occurs as specified\\. For more information, see [High throughput for FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html) and [Quotas related to messages](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html) in the *Amazon SQS Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DelaySeconds": "The time in seconds for which the delivery of all messages in the queue is delayed\\. You can specify an integer value of `0` to `900` \\(15 minutes\\)\\. The default value is `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FifoQueue": "If set to true, creates a FIFO queue\\. If you don't specify this property, Amazon SQS creates a standard queue\\. For more information, see [FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html) in the *Amazon SQS Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FifoThroughputLimit": "For high throughput for FIFO queues, specifies whether the FIFO queue throughput quota applies to the entire queue or per message group\\. Valid values are `perQueue` and `perMessageGroupId`\\. \nTo enable high throughput for a FIFO queue, set this attribute to `perMessageGroupId` *and* set the `DeduplicationScope` attribute to `messageGroup`\\. If you set these attributes to anything other than these values, normal throughput is in effect and deduplication occurs as specified\\. For more information, see [High throughput for FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html) and [Quotas related to messages](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html) in the *Amazon SQS Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsDataKeyReusePeriodSeconds": "The length of time in seconds for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again\\. The value must be an integer between 60 \\(1 minute\\) and 86,400 \\(24 hours\\)\\. The default is 300 \\(5 minutes\\)\\. \nA shorter time period provides better security, but results in more calls to AWS KMS, which might incur charges after Free Tier\\. For more information, see [Encryption at rest](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work) in the *Amazon SQS Developer Guide*\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsMasterKeyId": "The ID of an AWS managed customer master key \\(CMK\\) for Amazon SQS or a custom CMK\\. To use the AWS managed CMK for Amazon SQS, specify the \\(default\\) alias `alias/aws/sqs`\\. For more information, see the following: \n+ [Encryption at rest](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html) in the *Amazon SQS Developer Guide* \n+ [CreateQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html) in the *Amazon SQS API Reference* \n+ The Customer Master Keys section of the [AWS Key Management Service Best Practices](https://d0.awsstatic.com/whitepapers/aws-kms-best-practices.pdf) whitepaper \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaximumMessageSize": "The limit of how many bytes that a message can contain before Amazon SQS rejects it\\. You can specify an integer value from `1,024` bytes \\(1 KiB\\) to `262,144` bytes \\(256 KiB\\)\\. The default value is `262,144` \\(256 KiB\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MessageRetentionPeriod": "The number of seconds that Amazon SQS retains a message\\. You can specify an integer value from `60` seconds \\(1 minute\\) to `1,209,600` seconds \\(14 days\\)\\. The default value is `345,600` seconds \\(4 days\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueueName": "A name for the queue\\. To create a FIFO queue, the name of your FIFO queue must end with the `.fifo` suffix\\. For more information, see [FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html) in the *Amazon SQS Developer Guide*\\. \nIf you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the queue name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html) in the *AWS CloudFormation User Guide*\\. \nIf you specify a name, you can't perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ReceiveMessageWaitTimeSeconds": "Specifies the duration, in seconds, that the ReceiveMessage action call waits until a message is in the queue in order to include it in the response, rather than returning an empty response if a message isn't yet available\\. You can specify an integer from 1 to 20\\. Short polling is used as the default or when you specify 0 for this property\\. For more information, see [Consuming messages using long polling](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-short-and-long-polling.html#sqs-long-polling) in the *Amazon SQS Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RedriveAllowPolicy": "The string that includes the parameters for the permissions for the dead\\-letter queue redrive permission and which source queues can specify dead\\-letter queues as a JSON object\\. The parameters are as follows: \n+ `redrivePermission`: The permission type that defines which source queues can specify the current queue as the dead\\-letter queue\\. Valid values are:\n + `allowAll`: \\(Default\\) Any source queues in this AWS account in the same Region can specify this queue as the dead\\-letter queue\\.\n + `denyAll`: No source queues can specify this queue as the dead\\-letter queue\\.\n + `byQueue`: Only queues specified by the `sourceQueueArns` parameter can specify this queue as the dead\\-letter queue\\.\n+ `sourceQueueArns`: The Amazon Resource Names \\(ARN\\)s of the source queues that can specify this queue as the dead\\-letter queue and redrive messages\\. You can specify this parameter only when the `redrivePermission` parameter is set to `byQueue`\\. You can specify up to 10 source queue ARNs\\. To allow more than 10 source queues to specify dead\\-letter queues, set the `redrivePermission` parameter to `allowAll`\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RedrivePolicy": "The string that includes the parameters for the dead\\-letter queue functionality of the source queue as a JSON object\\. The parameters are as follows: \n+ `deadLetterTargetArn`: The Amazon Resource Name \\(ARN\\) of the dead\\-letter queue to which Amazon SQS moves messages after the value of `maxReceiveCount` is exceeded\\.\n+ `maxReceiveCount`: The number of times a message is delivered to the source queue before being moved to the dead\\-letter queue\\. When the `ReceiveCount` for a message exceeds the `maxReceiveCount` for a queue, Amazon SQS moves the message to the dead\\-letter\\-queue\\.\nThe dead\\-letter queue of a FIFO queue must also be a FIFO queue\\. Similarly, the dead\\-letter queue of a standard queue must also be a standard queue\\.\n *JSON* \n `{ \"deadLetterTargetArn\" : String, \"maxReceiveCount\" : Integer }` \n *YAML* \n `deadLetterTargetArn : String ` \n `maxReceiveCount : Integer ` \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags that you attach to this queue\\. For more information, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VisibilityTimeout": "The length of time during which a message will be unavailable after a message is delivered from the queue\\. This blocks other components from receiving the same message and gives the initial component time to process and delete the message from the queue\\. \nValues must be from 0 to 43,200 seconds \\(12 hours\\)\\. If you don't specify a value, AWS CloudFormation uses the default value of 30 seconds\\. \nFor more information about Amazon SQS queue visibility timeouts, see [Visibility timeout](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) in the *Amazon SQS Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SQS::QueuePolicy": { + "PolicyDocument": "A policy document that contains the permissions for the specified Amazon SQS queues\\. For more information about Amazon SQS policies, see [Using custom policies with the Amazon SQS access policy language](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-creating-custom-policies.html) in the *Amazon SQS Developer Guide*\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Queues": "The URLs of the queues to which you want to add the policy\\. You can use the [`Ref`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) function to specify an `[AWS::SQS::Queue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html)` resource\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::Association": { + "ApplyOnlyAtCronInterval": "By default, when you create a new association, the system runs it immediately after it is created and then according to the schedule you specified\\. Specify this option if you don't want an association to run immediately after you create it\\. This parameter is not supported for rate expressions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AssociationName": "Specify a descriptive name for the association\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AutomationTargetParameterName": "Choose the parameter that will define how your automation will branch out\\. This target is required for associations that use an Automation runbook and target resources by using rate controls\\. Automation is a capability of AWS Systems Manager\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CalendarNames": "The names or Amazon Resource Names \\(ARNs\\) of the Change Calendar type documents your associations are gated under\\. The associations only run when that Change Calendar is open\\. For more information, see [AWS Systems Manager Change Calendar](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ComplianceSeverity": "The severity level that is assigned to the association\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CRITICAL | HIGH | LOW | MEDIUM | UNSPECIFIED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DocumentVersion": "The version of the SSM document to associate with the target\\. \nNote the following important information\\. \n+ State Manager doesn't support running associations that use a new version of a document if that document is shared from another account\\. State Manager always runs the `default` version of a document if shared from another account, even though the Systems Manager console shows that a new version was processed\\. If you want to run an association using a new version of a document shared form another account, you must set the document version to `default`\\.\n+ `DocumentVersion` is not valid for documents owned by AWS, such as `AWS-RunPatchBaseline` or `AWS-UpdateSSMAgent`\\. If you specify `DocumentVersion` for an AWS document, the system returns the following error: \"Error occurred during operation 'CreateAssociation'\\.\" \\(RequestToken: , HandlerErrorCode: GeneralServiceException\\)\\.\n*Required*: No \n*Type*: String \n*Pattern*: `([$]LATEST|[$]DEFAULT|^[1-9][0-9]*$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceId": "The ID of the instance that the SSM document is associated with\\. You must specify the `InstanceId` or `Targets` property\\. \n`InstanceId` has been deprecated\\. To specify an instance ID for an association, use the `Targets` parameter\\. If you use the parameter `InstanceId`, you cannot use the parameters `AssociationName`, `DocumentVersion`, `MaxErrors`, `MaxConcurrency`, `OutputLocation`, or `ScheduleExpression`\\. To use these parameters, you must use the `Targets` parameter\\.\n*Required*: Conditional \n*Type*: String \n*Pattern*: `(^i-(\\w{8}|\\w{17})$)|(^mi-\\w{17}$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxConcurrency": "The maximum number of targets allowed to run the association at the same time\\. You can specify a number, for example 10, or a percentage of the target set, for example 10%\\. The default value is 100%, which means all targets run the association at the same time\\. \nIf a new managed node starts and attempts to run an association while Systems Manager is running `MaxConcurrency` associations, the association is allowed to run\\. During the next association interval, the new managed node will process its association within the limit specified for `MaxConcurrency`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `7` \n*Pattern*: `^([1-9][0-9]*|[1-9][0-9]%|[1-9]%|100%)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxErrors": "The number of errors that are allowed before the system stops sending requests to run the association on additional targets\\. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%\\. If you specify 3, for example, the system stops sending requests when the fourth error is received\\. If you specify 0, then the system stops sending requests after the first error is returned\\. If you run an association on 50 managed nodes and set `MaxError` to 10%, then the system stops sending the request when the sixth error is received\\. \nExecutions that are already running an association when `MaxErrors` is reached are allowed to complete, but some of these executions may fail as well\\. If you need to ensure that there won't be more than max\\-errors failed executions, set `MaxConcurrency` to 1 so that executions proceed one at a time\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `7` \n*Pattern*: `^([1-9][0-9]*|[0]|[1-9][0-9]%|[0-9]%|100%)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the SSM document that contains the configuration information for the instance\\. You can specify `Command` or `Automation` documents\\. The documents can be AWS\\-predefined documents, documents you created, or a document that is shared with you from another account\\. For SSM documents that are shared with you from other AWS accounts, you must specify the complete SSM document ARN, in the following format: \n`arn:partition:ssm:region:account-id:document/document-name` \nFor example: `arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document` \nFor AWS\\-predefined documents and SSM documents you created in your account, you only need to specify the document name\\. For example, AWS\\-ApplyPatchBaseline or My\\-Document\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.:/]{3,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutputLocation": "An Amazon Simple Storage Service \\(Amazon S3\\) bucket where you want to store the output details of the request\\. \n*Required*: No \n*Type*: [InstanceAssociationOutputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-instanceassociationoutputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "The parameters for the runtime configuration of the document\\. \n*Required*: No \n*Type*: Map of Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduleExpression": "A cron expression that specifies a schedule when the association runs\\. The schedule runs in Coordinated Universal Time \\(UTC\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SyncCompliance": "The mode for generating association compliance\\. You can specify `AUTO` or `MANUAL`\\. In `AUTO` mode, the system uses the status of the association execution to determine the compliance status\\. If the association execution runs successfully, then the association is `COMPLIANT`\\. If the association execution doesn't run successfully, the association is `NON-COMPLIANT`\\. \nIn `MANUAL` mode, you must specify the `AssociationId` as a parameter for the PutComplianceItems API action\\. In this case, compliance data is not managed by State Manager\\. It is managed by your direct call to the PutComplianceItems API action\\. \nBy default, all associations use `AUTO` mode\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUTO | MANUAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Targets": "The targets for the association\\. You must specify the `InstanceId` or `Targets` property\\. You can target all instances in an AWS account by specifying the `InstanceIds` key with a value of `*`\\. To view a JSON and a YAML example that targets all instances, see \"Create an association for all managed instances in an AWS account\" on the Examples page\\. \n*Required*: Conditional \n*Type*: List of [Target](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-target.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WaitForSuccessTimeoutSeconds": "The number of seconds the service should wait for the association status to show \"Success\" before proceeding with the stack execution\\. If the association status doesn't show \"Success\" after the specified number of seconds, then stack creation fails\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::Association InstanceAssociationOutputLocation": { + "S3Location": "`S3OutputLocation` is a property of the [InstanceAssociationOutputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-instanceassociationoutputlocation.html) property that specifies an Amazon S3 bucket where you want to store the results of this request\\. \n*Required*: No \n*Type*: [S3OutputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-s3outputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::Association S3OutputLocation": { + "OutputS3BucketName": "The name of the S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutputS3KeyPrefix": "The S3 bucket subfolder\\. \n*Required*: No \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutputS3Region": "The AWS Region of the S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::Association Target": { + "Key": "User\\-defined criteria for sending commands that target managed nodes that meet the criteria\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `163` \n*Pattern*: `^[\\p{L}\\p{Z}\\p{N}_.:/=\\-@]*$|resource-groups:ResourceTypeFilters|resource-groups:Name` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "User\\-defined criteria that maps to `Key`\\. For example, if you specified `tag:ServerRole`, you could specify `value:WebServer` to run a command on instances that include EC2 tags of `ServerRole,WebServer`\\. \nDepending on the type of target, the maximum number of values for a key might be lower than the global maximum of 50\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::Document": { + "Attachments": "A list of key\\-value pairs that describe attachments to a version of a document\\. \n*Required*: No \n*Type*: List of [AttachmentsSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-document-attachmentssource.html) \n*Maximum*: `20` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Content": "The content for the new SSM document in JSON or YAML\\. \nThis parameter also supports `String` data types\\.\n*Required*: Yes \n*Type*: Json \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DocumentFormat": "Specify the document format for the request\\. JSON is the default format\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `JSON | TEXT | YAML` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DocumentType": "The type of document to create\\. \n*Allowed Values*: `ApplicationConfigurationSchema` \\| `Automation` \\| `Automation.ChangeTemplate` \\| `Command` \\| `DeploymentStrategy` \\| `Package` \\| `Policy` \\| `Session` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "A name for the SSM document\\. \nYou can't use the following strings as document name prefixes\\. These are reserved by AWS for use as document name prefixes: \n+ `aws-` \n+ `amazon` \n+ `amzn` \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,128}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Requires": "A list of SSM documents required by a document\\. This parameter is used exclusively by AWS AppConfig\\. When a user creates an AWS AppConfig configuration in an SSM document, the user must also specify a required document for validation purposes\\. In this case, an `ApplicationConfiguration` document requires an `ApplicationConfigurationSchema` document for validation purposes\\. For more information, see [What is AWS AppConfig?](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) in the * AWS AppConfig User Guide*\\. \n*Required*: No \n*Type*: List of [DocumentRequires](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-document-documentrequires.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "AWS CloudFormation resource tags to apply to the document\\. Use tags to help you identify and categorize resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetType": "Specify a target type to define the kinds of resources the document can run on\\. For example, to run a document on EC2 instances, specify the following value: `/AWS::EC2::Instance`\\. If you specify a value of '/' the document can run on all types of resources\\. If you don't specify a value, the document can't run on any resources\\. For a list of valid resource types, see [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) in the *AWS CloudFormation User Guide*\\. \n*Required*: No \n*Type*: String \n*Maximum*: `200` \n*Pattern*: `^\\/[\\w\\.\\-\\:\\/]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VersionName": "An optional field specifying the version of the artifact you are creating with the document\\. For example, \"Release 12, Update 6\"\\. This value is unique across all versions of a document, and can't be changed\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.]{1,128}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SSM::Document AttachmentsSource": { + "Key": "The key of a key\\-value pair that identifies the location of an attachment to a document\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AttachmentReference | S3FileUrl | SourceUrl` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the document attachment file\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,128}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Values": "The value of a key\\-value pair that identifies the location of an attachment to a document\\. The format for **Value** depends on the type of key you specify\\. \n+ For the key *SourceUrl*, the value is an S3 bucket location\\. For example:" + }, + "AWS::SSM::Document DocumentRequires": { + "Name": "The name of the required SSM document\\. The name can be an Amazon Resource Name \\(ARN\\)\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.:/]{3,128}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Version": "The document version required by the current document\\. \n*Required*: No \n*Type*: String \n*Pattern*: `([$]LATEST|[$]DEFAULT|^[1-9][0-9]*$)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SSM::MaintenanceWindow": { + "AllowUnassociatedTargets": "Enables a maintenance window task to run on managed instances, even if you have not registered those instances as targets\\. If enabled, then you must specify the unregistered instances \\(by instance ID\\) when you register a task with the maintenance window\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Cutoff": "The number of hours before the end of the maintenance window that AWS Systems Manager stops scheduling new tasks for execution\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `23` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the maintenance window\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Duration": "The duration of the maintenance window in hours\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `24` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EndDate": "The date and time, in ISO\\-8601 Extended format, for when the maintenance window is scheduled to become inactive\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the maintenance window\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Schedule": "The schedule of the maintenance window in the form of a cron or rate expression\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduleOffset": "The number of days to wait to run a maintenance window after the scheduled cron expression date and time\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `6` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScheduleTimezone": "The time zone that the scheduled maintenance window executions are based on, in Internet Assigned Numbers Authority \\(IANA\\) format\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StartDate": "The date and time, in ISO\\-8601 Extended format, for when the maintenance window is scheduled to become active\\. StartDate allows you to delay activation of the Maintenance Window until the specified future date\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Optional metadata that you assign to a resource in the form of an arbitrary set of tags \\(key\\-value pairs\\)\\. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment\\. For example, you might want to tag a maintenance window to identify the type of tasks it will run, the types of targets, and the environment it will run in\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::MaintenanceWindowTarget": { + "Description": "A description for the target\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name for the maintenance window target\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OwnerInformation": "A user\\-provided value that will be included in any Amazon CloudWatch Events events that are raised while running tasks for these targets in this maintenance window\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceType": "The type of target that is being registered with the maintenance window\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `INSTANCE | RESOURCE_GROUP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Targets": "The targets to register with the maintenance window\\. In other words, the instances to run commands on when the maintenance window runs\\. \nYou must specify targets by using the `WindowTargetIds` parameter\\. \n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtarget-targets.html) of [Targets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtarget-targets.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WindowId": "The ID of the maintenance window to register the target with\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `20` \n*Pattern*: `^mw-[0-9a-f]{17}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SSM::MaintenanceWindowTarget Targets": { + "Key": "User\\-defined criteria for sending commands that target managed nodes that meet the criteria\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `163` \n*Pattern*: `^[\\p{L}\\p{Z}\\p{N}_.:/=\\-@]*$|resource-groups:ResourceTypeFilters|resource-groups:Name` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "User\\-defined criteria that maps to `Key`\\. For example, if you specified `tag:ServerRole`, you could specify `value:WebServer` to run a command on instances that include EC2 tags of `ServerRole,WebServer`\\. \nDepending on the type of target, the maximum number of values for a key might be lower than the global maximum of 50\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::MaintenanceWindowTask": { + "CutoffBehavior": "The specification for whether tasks should continue to run after the cutoff time specified in the maintenance windows is reached\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CANCEL_TASK | CONTINUE_TASK` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the task\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoggingInfo": "Information about an Amazon S3 bucket to write task\\-level logs to\\. \n `LoggingInfo` has been deprecated\\. To specify an Amazon S3 bucket to contain logs, instead use the `OutputS3BucketName` and `OutputS3KeyPrefix` options in the `TaskInvocationParameters` structure\\. For information about how Systems Manager handles these options for the supported maintenance window task types, see [AWS Systems Manager MaintenanceWindowTask TaskInvocationParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-taskinvocationparameters.html)\\.\n*Required*: No \n*Type*: [LoggingInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-logginginfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxConcurrency": "The maximum number of targets this task can be run for, in parallel\\. \nAlthough this element is listed as \"Required: No\", a value can be omitted only when you are registering or updating a [targetless task](https://docs.aws.amazon.com/systems-manager/latest/userguide/maintenance-windows-targetless-tasks.html) You must provide a value in all other cases\\. \nFor maintenance window tasks without a target specified, you can't supply a value for this option\\. Instead, the system inserts a placeholder value of `1`\\. This value doesn't affect the running of your task\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `7` \n*Pattern*: `^([1-9][0-9]*|[1-9][0-9]%|[1-9]%|100%)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxErrors": "The maximum number of errors allowed before this task stops being scheduled\\. \nAlthough this element is listed as \"Required: No\", a value can be omitted only when you are registering or updating a [targetless task](https://docs.aws.amazon.com/systems-manager/latest/userguide/maintenance-windows-targetless-tasks.html) You must provide a value in all other cases\\. \nFor maintenance window tasks without a target specified, you can't supply a value for this option\\. Instead, the system inserts a placeholder value of `1`\\. This value doesn't affect the running of your task\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `7` \n*Pattern*: `^([1-9][0-9]*|[0]|[1-9][0-9]%|[0-9]%|100%)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The task name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Priority": "The priority of the task in the maintenance window\\. The lower the number, the higher the priority\\. Tasks that have the same priority are scheduled in parallel\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceRoleArn": "The Amazon Resource Name \\(ARN\\) of the AWS Identity and Access Management \\(IAM\\) service role to use to publish Amazon Simple Notification Service \\(Amazon SNS\\) notifications for maintenance window Run Command tasks\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Targets": "The targets, either instances or window target IDs\\. \n+ Specify instances using `Key=InstanceIds,Values=instanceid1,instanceid2 `\\.\n+ Specify window target IDs using `Key=WindowTargetIds,Values=window-target-id-1,window-target-id-2`\\.\n*Required*: No \n*Type*: List of [Target](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-target.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TaskArn": "The resource that the task uses during execution\\. \nFor `RUN_COMMAND` and `AUTOMATION` task types, `TaskArn` is the SSM document name or Amazon Resource Name \\(ARN\\)\\. \nFor `LAMBDA` tasks, `TaskArn` is the function name or ARN\\. \nFor `STEP_FUNCTIONS` tasks, `TaskArn` is the state machine ARN\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TaskInvocationParameters": "The parameters to pass to the task when it runs\\. Populate only the fields that match the task type\\. All other fields should be empty\\. \nWhen you update a maintenance window task that has options specified in `TaskInvocationParameters`, you must provide again all the `TaskInvocationParameters` values that you want to retain\\. The values you do not specify again are removed\\. For example, suppose that when you registered a Run Command task, you specified `TaskInvocationParameters` values for `Comment`, `NotificationConfig`, and `OutputS3BucketName`\\. If you update the maintenance window task and specify only a different `OutputS3BucketName` value, the values for `Comment` and `NotificationConfig` are removed\\.\n*Required*: No \n*Type*: [TaskInvocationParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-taskinvocationparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TaskParameters": "The parameters to pass to the task when it runs\\. \n `TaskParameters` has been deprecated\\. To specify parameters to pass to a task when it runs, instead use the `Parameters` option in the `TaskInvocationParameters` structure\\. For information about how Systems Manager handles these options for the supported maintenance window task types, see [MaintenanceWindowTaskInvocationParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_MaintenanceWindowTaskInvocationParameters.html)\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TaskType": "The type of task\\. Valid values: `RUN_COMMAND`, `AUTOMATION`, `LAMBDA`, `STEP_FUNCTIONS`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AUTOMATION | LAMBDA | RUN_COMMAND | STEP_FUNCTIONS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "WindowId": "The ID of the maintenance window where the task is registered\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `20` \n*Pattern*: `^mw-[0-9a-f]{17}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SSM::MaintenanceWindowTask CloudWatchOutputConfig": { + "CloudWatchLogGroupName": "The name of the CloudWatch Logs log group where you want to send command output\\. If you don't specify a group name, AWS Systems Manager automatically creates a log group for you\\. The log group uses the following naming format: \n `aws/ssm/SystemsManagerDocumentName ` \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CloudWatchOutputEnabled": "Enables Systems Manager to send command output to CloudWatch Logs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::MaintenanceWindowTask LoggingInfo": { + "Region": "The AWS Region where the S3 bucket is located\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Bucket": "The name of an S3 bucket where execution logs are stored \\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Prefix": "The Amazon S3 bucket subfolder\\. \n*Required*: No \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::MaintenanceWindowTask MaintenanceWindowAutomationParameters": { + "DocumentVersion": "The version of an Automation runbook to use during task execution\\. \n*Required*: No \n*Type*: String \n*Pattern*: `([$]LATEST|[$]DEFAULT|^[1-9][0-9]*$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "The parameters for the AUTOMATION task\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::MaintenanceWindowTask MaintenanceWindowLambdaParameters": { + "ClientContext": "Client\\-specific information to pass to the AWS Lambda function that you're invoking\\. You can then use the `context` variable to process the client information in your AWS Lambda function\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `8000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Payload": "JSON to provide to your AWS Lambda function as input\\. \nAlthough `Type` is listed as \"String\" for this property, the payload content must be formatted as a Base64\\-encoded binary data object\\.\n*Length Constraint:* 4096 \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Qualifier": "An AWS Lambda function version or alias name\\. If you specify a function version, the action uses the qualified function Amazon Resource Name \\(ARN\\) to invoke a specific Lambda function\\. If you specify an alias name, the action uses the alias ARN to invoke the Lambda function version that the alias points to\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::MaintenanceWindowTask MaintenanceWindowRunCommandParameters": { + "CloudWatchOutputConfig": "Configuration options for sending command output to Amazon CloudWatch Logs\\. \n*Required*: No \n*Type*: [CloudWatchOutputConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-cloudwatchoutputconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Comment": "Information about the command or commands to run\\. \n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DocumentHash": "The SHA\\-256 or SHA\\-1 hash created by the system when the document was created\\. SHA\\-1 hashes have been deprecated\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DocumentHashType": "The SHA\\-256 or SHA\\-1 hash type\\. SHA\\-1 hashes are deprecated\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Sha1 | Sha256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DocumentVersion": "The AWS Systems Manager document \\(SSM document\\) version to use in the request\\. You can specify `$DEFAULT`, `$LATEST`, or a specific version number\\. If you run commands by using the AWS CLI, then you must escape the first two options by using a backslash\\. If you specify a version number, then you don't need to use the backslash\\. For example: \n `--document-version \"\\$DEFAULT\"` \n `--document-version \"\\$LATEST\"` \n `--document-version \"3\"` \n*Required*: No \n*Type*: String \n*Pattern*: `([$]LATEST|[$]DEFAULT|^[1-9][0-9]*$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotificationConfig": "Configurations for sending notifications about command status changes on a per\\-managed node basis\\. \n*Required*: No \n*Type*: [NotificationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-notificationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutputS3BucketName": "The name of the Amazon Simple Storage Service \\(Amazon S3\\) bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OutputS3KeyPrefix": "The S3 bucket subfolder\\. \n*Required*: No \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "The parameters for the `RUN_COMMAND` task execution\\. \nThe supported parameters are the same as those for the `SendCommand` API call\\. For more information, see [SendCommand](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendCommand.html) in the *AWS Systems Manager API Reference*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceRoleArn": "The Amazon Resource Name \\(ARN\\) of the AWS Identity and Access Management \\(IAM\\) service role to use to publish Amazon Simple Notification Service \\(Amazon SNS\\) notifications for maintenance window Run Command tasks\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeoutSeconds": "If this time is reached and the command hasn't already started running, it doesn't run\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `30` \n*Maximum*: `2592000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::MaintenanceWindowTask MaintenanceWindowStepFunctionsParameters": { + "Input": "The inputs for the `STEP_FUNCTIONS` task\\. \n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the `STEP_FUNCTIONS` task\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `80` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::MaintenanceWindowTask NotificationConfig": { + "NotificationArn": "An Amazon Resource Name \\(ARN\\) for an Amazon Simple Notification Service \\(Amazon SNS\\) topic\\. Run Command pushes notifications about command status changes to this topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotificationEvents": "The different events that you can receive notifications for\\. These events include the following: `All` \\(events\\), `InProgress`, `Success`, `TimedOut`, `Cancelled`, `Failed`\\. To learn more about these events, see [Configuring Amazon SNS Notifications for AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/monitoring-sns-notifications.html) in the *AWS Systems Manager User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotificationType": "The notification type\\. \n+ `Command`: Receive notification when the status of a command changes\\.\n+ `Invocation`: For commands sent to multiple instances, receive notification on a per\\-instance basis when the status of a command changes\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `Command | Invocation` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::MaintenanceWindowTask Target": { + "Key": "User\\-defined criteria for sending commands that target instances that meet the criteria\\. `Key` can be `InstanceIds` or `WindowTargetIds`\\. For more information about how to target instances within a maintenance window task, see [About 'register\\-task\\-with\\-maintenance\\-window' Options and Values](https://docs.aws.amazon.com/systems-manager/latest/userguide/register-tasks-options.html) in the *AWS Systems Manager User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `163` \n*Pattern*: `^[\\p{L}\\p{Z}\\p{N}_.:/=\\-@]*$|resource-groups:ResourceTypeFilters|resource-groups:Name` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "User\\-defined criteria that maps to `Key`\\. For example, if you specify `InstanceIds`, you can specify `i-1234567890abcdef0,i-9876543210abcdef0` to run a command on two EC2 instances\\. For more information about how to target instances within a maintenance window task, see [About 'register\\-task\\-with\\-maintenance\\-window' Options and Values](https://docs.aws.amazon.com/systems-manager/latest/userguide/register-tasks-options.html) in the *AWS Systems Manager User Guide*\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::MaintenanceWindowTask TaskInvocationParameters": { + "MaintenanceWindowAutomationParameters": "The parameters for an `AUTOMATION` task type\\. \n*Required*: No \n*Type*: [MaintenanceWindowAutomationParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowautomationparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaintenanceWindowLambdaParameters": "The parameters for a `LAMBDA` task type\\. \n*Required*: No \n*Type*: [MaintenanceWindowLambdaParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowlambdaparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaintenanceWindowRunCommandParameters": "The parameters for a `RUN_COMMAND` task type\\. \n*Required*: No \n*Type*: [MaintenanceWindowRunCommandParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowruncommandparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaintenanceWindowStepFunctionsParameters": "The parameters for a `STEP_FUNCTIONS` task type\\. \n*Required*: No \n*Type*: [MaintenanceWindowStepFunctionsParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowstepfunctionsparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::Parameter": { + "AllowedPattern": "A regular expression used to validate the parameter value\\. For example, for String types with values restricted to numbers, you can specify the following: `AllowedPattern=^\\d+$` \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataType": "The data type of the parameter, such as `text` or `aws:ec2:image`\\. The default is `text`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "Information about the parameter\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the parameter\\. \nThe maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name\\. The maximum length for a parameter name, including the full length of the parameter ARN, is 1011 characters\\. For example, the length of the following parameter name is 65 characters, not 20 characters: `arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName` \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Policies": "Information about the policies assigned to a parameter\\. \n [Assigning parameter policies](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-policies.html) in the * AWS Systems Manager User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Optional metadata that you assign to a resource in the form of an arbitrary set of tags \\(key\\-value pairs\\)\\. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment\\. For example, you might want to tag a Systems Manager parameter to identify the type of resource to which it applies, the environment, or the type of configuration data referenced by the parameter\\. \n*Required*: No \n*Type*: Json \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tier": "The parameter tier\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Advanced | Intelligent-Tiering | Standard` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of parameter\\. \nAWS CloudFormation doesn't support creating a `SecureString` parameter type\\.\n*Allowed Values*: String \\| StringList \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The parameter value\\. \nIf type is `StringList`, the system returns a comma\\-separated string with no spaces between commas in the `Value` field\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::PatchBaseline": { + "ApprovalRules": "A set of rules used to include patches in the baseline\\. \n*Required*: No \n*Type*: [RuleGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rulegroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ApprovedPatches": "A list of explicitly approved patches for the baseline\\. \nFor information about accepted formats for lists of approved patches and rejected patches, see [About package name formats for approved and rejected patch lists](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html) in the * AWS Systems Manager User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ApprovedPatchesComplianceLevel": "Defines the compliance level for approved patches\\. When an approved patch is reported as missing, this value describes the severity of the compliance violation\\. The default value is `UNSPECIFIED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CRITICAL | HIGH | INFORMATIONAL | LOW | MEDIUM | UNSPECIFIED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ApprovedPatchesEnableNonSecurity": "Indicates whether the list of approved patches includes non\\-security updates that should be applied to the managed nodes\\. The default value is `false`\\. Applies to Linux managed nodes only\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the patch baseline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GlobalFilters": "A set of global filters used to include patches in the baseline\\. \n*Required*: No \n*Type*: [PatchFilterGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchfiltergroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the patch baseline\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OperatingSystem": "Defines the operating system the patch baseline applies to\\. The default value is `WINDOWS`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AMAZON_LINUX | AMAZON_LINUX_2 | CENTOS | DEBIAN | MACOS | ORACLE_LINUX | RASPBIAN | REDHAT_ENTERPRISE_LINUX | SUSE | UBUNTU | WINDOWS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PatchGroups": "The name of the patch group to be registered with the patch baseline\\. \n*Required*: No \n*Type*: List of String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RejectedPatches": "A list of explicitly rejected patches for the baseline\\. \nFor information about accepted formats for lists of approved patches and rejected patches, see [About package name formats for approved and rejected patch lists](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html) in the * AWS Systems Manager User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RejectedPatchesAction": "The action for Patch Manager to take on patches included in the `RejectedPackages` list\\. \n+ ** `ALLOW_AS_DEPENDENCY` **: A package in the `Rejected` patches list is installed only if it is a dependency of another package\\. It is considered compliant with the patch baseline, and its status is reported as `InstalledOther`\\. This is the default action if no option is specified\\.\n+ ** `BLOCK` **: Packages in the `RejectedPatches` list, and packages that include them as dependencies, aren't installed under any circumstances\\. If a package was installed before it was added to the Rejected patches list, it is considered non\\-compliant with the patch baseline, and its status is reported as `InstalledRejected`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ALLOW_AS_DEPENDENCY | BLOCK` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Sources": "Information about the patches to use to update the managed nodes, including target operating systems and source repositories\\. Applies to Linux managed nodes only\\. \n*Required*: No \n*Type*: List of [PatchSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchsource.html) \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Optional metadata that you assign to a resource\\. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment\\. For example, you might want to tag a patch baseline to identify the severity level of patches it specifies and the operating system family it applies to\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::PatchBaseline PatchFilter": { + "Key": "The key for the filter\\. \nFor information about valid keys, see [PatchFilter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PatchFilter.html) in the *AWS Systems Manager API Reference*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADVISORY_ID | ARCH | BUGZILLA_ID | CLASSIFICATION | CVE_ID | EPOCH | MSRC_SEVERITY | NAME | PATCH_ID | PATCH_SET | PRIORITY | PRODUCT | PRODUCT_FAMILY | RELEASE | REPOSITORY | SECTION | SECURITY | SEVERITY | VERSION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "The value for the filter key\\. \nFor information about valid values for each key based on operating system type, see [PatchFilter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PatchFilter.html) in the *AWS Systems Manager API Reference*\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::PatchBaseline PatchFilterGroup": { + "PatchFilters": "The set of patch filters that make up the group\\. \n*Required*: No \n*Type*: List of [PatchFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchfilter.html) \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::PatchBaseline PatchSource": { + "Configuration": "The value of the yum repo configuration\\. For example: \n `[main]` \n `name=MyCustomRepository` \n `baseurl=https://my-custom-repository` \n `enabled=1` \nFor information about other options available for your yum repository configuration, see [dnf\\.conf\\(5\\)](https://man7.org/linux/man-pages/man5/dnf.conf.5.html)\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name specified to identify the patch source\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,50}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Products": "The specific operating system versions a patch repository applies to, such as \"Ubuntu16\\.04\", \"AmazonLinux2016\\.09\", \"RedhatEnterpriseLinux7\\.2\" or \"Suse12\\.7\"\\. For lists of supported product values, see [PatchFilter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PatchFilter.html) in the *AWS Systems Manager API Reference*\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::PatchBaseline Rule": { + "ApproveAfterDays": "The number of days after the release date of each patch matched by the rule that the patch is marked as approved in the patch baseline\\. For example, a value of `7` means that patches are approved seven days after they are released\\. \nYou must specify a value for `ApproveAfterDays`\\. \nException: Not supported on Debian Server or Ubuntu Server\\. \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `360` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ApproveUntilDate": "The cutoff date for auto approval of released patches\\. Any patches released on or before this date are installed automatically\\. Not supported on Debian Server or Ubuntu Server\\. \nEnter dates in the format `YYYY-MM-DD`\\. For example, `2021-12-31`\\. \n*Required*: No \n*Type*: [PatchStringDate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchstringdate.html) \n*Minimum*: `1` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ComplianceLevel": "A compliance severity level for all approved patches in a patch baseline\\. Valid compliance severity levels include the following: `UNSPECIFIED`, `CRITICAL`, `HIGH`, `MEDIUM`, `LOW`, and `INFORMATIONAL`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CRITICAL | HIGH | INFORMATIONAL | LOW | MEDIUM | UNSPECIFIED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnableNonSecurity": "For managed nodes identified by the approval rule filters, enables a patch baseline to apply non\\-security updates available in the specified repository\\. The default value is `false`\\. Applies to Linux managed nodes only\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PatchFilterGroup": "The patch filter group that defines the criteria for the rule\\. \n*Required*: No \n*Type*: [PatchFilterGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchfiltergroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::PatchBaseline RuleGroup": { + "PatchRules": "The rules that make up the rule group\\. \n*Required*: No \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rule.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::ResourceDataSync": { + "BucketName": "The name of the S3 bucket where the aggregated data is stored\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BucketPrefix": "An Amazon S3 prefix for the bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BucketRegion": "The AWS Region with the S3 bucket targeted by the resource data sync\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KMSKeyArn": "The ARN of an encryption key for a destination in Amazon S3\\. You can use a KMS key to encrypt inventory data in Amazon S3\\. You must specify a key that exist in the same region as the destination Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "S3Destination": "Configuration information for the target S3 bucket\\. \n*Required*: No \n*Type*: [S3Destination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-resourcedatasync-s3destination.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SyncFormat": "A supported sync format\\. The following format is currently supported: JsonSerDe \n*Required*: No \n*Type*: String \n*Allowed values*: `JsonSerDe` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SyncName": "A name for the resource data sync\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SyncSource": "Information about the source where the data was synchronized\\. \n*Required*: No \n*Type*: [SyncSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-resourcedatasync-syncsource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SyncType": "The type of resource data sync\\. If `SyncType` is `SyncToDestination`, then the resource data sync synchronizes data to an S3 bucket\\. If the `SyncType` is `SyncFromSource` then the resource data sync synchronizes data from AWS Organizations or from multiple AWS Regions\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SSM::ResourceDataSync AwsOrganizationsSource": { + "OrganizationSourceType": "If an AWS organization is present, this is either `OrganizationalUnits` or `EntireOrganization`\\. For `OrganizationalUnits`, the data is aggregated from a set of organization units\\. For `EntireOrganization`, the data is aggregated from the entire AWS organization\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OrganizationalUnits": "The AWS Organizations organization units included in the sync\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSM::ResourceDataSync S3Destination": { + "BucketName": "The name of the S3 bucket where the aggregated data is stored\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BucketPrefix": "An Amazon S3 prefix for the bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "BucketRegion": "The AWS Region with the S3 bucket targeted by the resource data sync\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KMSKeyArn": "The ARN of an encryption key for a destination in Amazon S3\\. Must belong to the same Region as the destination S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SyncFormat": "A supported sync format\\. The following format is currently supported: JsonSerDe \n*Required*: Yes \n*Type*: String \n*Allowed values*: `JsonSerDe` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SSM::ResourceDataSync SyncSource": { + "AwsOrganizationsSource": "Information about the AwsOrganizationsSource resource data sync source\\. A sync source of this type can synchronize data from AWS Organizations\\. \n*Required*: No \n*Type*: [AwsOrganizationsSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-resourcedatasync-awsorganizationssource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeFutureRegions": "Whether to automatically synchronize and aggregate data from new AWS Regions when those Regions come online\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceRegions": "The `SyncSource` AWS Regions included in the resource data sync\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SourceType": "The type of data source for the resource data sync\\. `SourceType` is either `AwsOrganizations` \\(if an organization is present in AWS Organizations\\) or `SingleAccountMultiRegions`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSMContacts::Contact": { + "Alias": "The unique and identifiable alias of the contact or escalation plan\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-z0-9_\\-]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DisplayName": "The full name of the contact or escalation plan\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `255` \n*Pattern*: `^[\\p{L}\\p{Z}\\p{N}_.\\-]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Plan": "A list of stages\\. A contact has an engagement plan with stages that contact specified contact channels\\. An escalation plan uses stages that contact specified contacts\\. \n*Required*: Yes \n*Type*: List of [Stage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-contact-stage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "Refers to the type of contact\\. A single contact is type `PERSONAL` and an escalation plan is type `ESCALATION`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ESCALATION | PERSONAL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SSMContacts::Contact ChannelTargetInfo": { + "ChannelId": "The Amazon Resource Name \\(ARN\\) of the contact channel\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:(aws|aws-cn|aws-us-gov):ssm-contacts:[-\\w+=\\/,.@]*:[0-9]+:([\\w+=\\/,.@:-]+)*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetryIntervalInMinutes": "The number of minutes to wait to retry sending engagement in the case the engagement initially fails\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `60` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSMContacts::Contact ContactTargetInfo": { + "ContactId": "The Amazon Resource Name \\(ARN\\) of the contact\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:(aws|aws-cn|aws-us-gov):ssm-contacts:[-\\w+=\\/,.@]*:[0-9]+:([\\w+=\\/,.@:-]+)*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IsEssential": "A Boolean value determining if the contact's acknowledgement stops the progress of stages in the plan\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSMContacts::Contact Stage": { + "DurationInMinutes": "The time to wait until beginning the next stage\\. The duration can only be set to 0 if a target is specified\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Targets": "The contacts or contact methods that the escalation plan or engagement plan is engaging\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-contact-targets.html) of [Targets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-contact-targets.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSMContacts::Contact Targets": { + "ChannelTargetInfo": "Information about the contact channel Incident Manager is engaging\\. \n*Required*: No \n*Type*: [ChannelTargetInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-contact-channeltargetinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContactTargetInfo": "The contact that Incident Manager is engaging during an incident\\. \n*Required*: No \n*Type*: [ContactTargetInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-contact-contacttargetinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSMContacts::ContactChannel": { + "ChannelAddress": "The details that Incident Manager uses when trying to engage the contact channel\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ChannelName": "The name of the contact channel\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[\\p{L}\\p{Z}\\p{N}_.\\-]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ChannelType": "The type of the contact channel\\. Incident Manager supports three contact methods: \n+ SMS\n+ VOICE\n+ EMAIL\n*Required*: Yes \n*Type*: String \n*Allowed values*: `EMAIL | SMS | VOICE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ContactId": "The Amazon Resource Name \\(ARN\\) of the contact you are adding the contact channel to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:(aws|aws-cn|aws-us-gov):ssm-contacts:[-\\w+=\\/,.@]*:[0-9]+:([\\w+=\\/,.@:-]+)*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DeferActivation": "If you want to activate the channel at a later time, you can choose to defer activation\\. Incident Manager can't engage your contact channel until it has been activated\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSMIncidents::ReplicationSet": { + "DeletionProtected": "Determines if the replication set deletion protection is enabled or not\\. If deletion protection is enabled, you can't delete the last Region in the replication set\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Regions": "Specifies the Regions of the replication set\\. \n*Required*: Yes \n*Type*: List of [ReplicationRegion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-replicationset-replicationregion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSMIncidents::ReplicationSet RegionConfiguration": { + "SseKmsKeyId": "The KMS key ID to use to encrypt your replication set\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSMIncidents::ReplicationSet ReplicationRegion": { + "RegionConfiguration": "Specifies the Region configuration\\. \n*Required*: No \n*Type*: [RegionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-replicationset-regionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegionName": "Specifies the region name to add to the replication set\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSMIncidents::ResponsePlan": { + "Actions": "The actions that the response plan starts at the beginning of an incident\\. \n*Required*: No \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-responseplan-action.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ChatChannel": "The AWS Chatbot chat channel used for collaboration during an incident\\. \n*Required*: No \n*Type*: [ChatChannel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-responseplan-chatchannel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisplayName": "The human readable name of the response plan\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Engagements": "The contacts and escalation plans that the response plan engages during an incident\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncidentTemplate": "Details used to create an incident when using this response plan\\. \n*Required*: Yes \n*Type*: [IncidentTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-responseplan-incidenttemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the response plan\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `200` \n*Pattern*: `^[a-zA-Z0-9-_]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSMIncidents::ResponsePlan Action": { + "SsmAutomation": "Details about the Systems Manager automation document that will be used as a runbook during an incident\\. \n*Required*: No \n*Type*: [SsmAutomation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-responseplan-ssmautomation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSMIncidents::ResponsePlan ChatChannel": { + "ChatbotSns": "The SNS targets that AWS Chatbot uses to notify the chat channel of updates to an incident\\. You can also make updates to the incident through the chat channel by using the SNS topics \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSMIncidents::ResponsePlan IncidentTemplate": { + "DedupeString": "Used to create only one incident record for an incident\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Impact": "Defines the impact to the customers\\. Providing an impact overwrites the impact provided by a response plan\\.", + "NotificationTargets": "The SNS targets that AWS Chatbot uses to notify the chat channel of updates to an incident\\. You can also make updates to the incident through the chat channel using the SNS topics\\. \n*Required*: No \n*Type*: List of [NotificationTargetItem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-responseplan-notificationtargetitem.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Summary": "The summary describes what has happened during the incident\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `4000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Title": "The title of the incident is a brief and easily recognizable\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSMIncidents::ResponsePlan NotificationTargetItem": { + "SnsTopicArn": "The Amazon Resource Name \\(ARN\\) of the SNS topic\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Pattern*: `^arn:aws(-cn|-us-gov)?:[a-z0-9-]*:[a-z0-9-]*:([0-9]{12})?:.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSMIncidents::ResponsePlan SsmAutomation": { + "DocumentName": "The automation document's name\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.:/]{3,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DocumentVersion": "The automation document's version to use when running\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Parameters": "The key\\-value pair parameters to use when running the automation document\\. \n*Required*: No \n*Type*: List of [SsmParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-responseplan-ssmparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the role that the automation document will assume when running commands\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Pattern*: `^arn:aws(-cn|-us-gov)?:iam::([0-9]{12})?:role/.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetAccount": "The account that the automation document will be run in\\. This can be in either the management account or an application account\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `IMPACTED_ACCOUNT | RESPONSE_PLAN_OWNER_ACCOUNT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSMIncidents::ResponsePlan SsmParameter": { + "Key": "The key parameter to use when running the automation document\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Values": "The value parameter to use when running the automation document\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSO::Assignment": { + "InstanceArn": "The ARN of the SSO instance under which the operation will be executed\\. For more information about ARNs, see [Amazon Resource Names \\(ARNs\\) and AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *AWS General Reference*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `1224` \n*Pattern*: `arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html:::instance/(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html)?ins-[a-zA-Z0-9-.]{16}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PermissionSetArn": "The ARN of the permission set\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `1224` \n*Pattern*: `arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html:::permissionSet/(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html)?ins-[a-zA-Z0-9-.]{16}/ps-[a-zA-Z0-9-./]{16}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PrincipalId": "An identifier for an object in AWS SSO, such as a user or group\\. PrincipalIds are GUIDs \\(For example, f81d4fae\\-7dec\\-11d0\\-a765\\-00a0c91e6bf6\\)\\. For more information about PrincipalIds in AWS SSO, see the [AWS SSO Identity Store API Reference](/singlesignon/latest/IdentityStoreAPIReference/welcome.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `47` \n*Pattern*: `^([0-9a-f]{10}-|)[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PrincipalType": "The entity type for which the assignment will be created\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GROUP | USER` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TargetId": "TargetID is an AWS account identifier, typically a 10\\-12 digit string \\(For example, 123456789012\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `\\d{12}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TargetType": "The entity type for which the assignment will be created\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AWS_ACCOUNT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SSO::InstanceAccessControlAttributeConfiguration": { + "AccessControlAttributes": "Lists the attributes that are configured for ABAC in the specified AWS SSO instance\\. \n*Required*: No \n*Type*: List of [AccessControlAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sso-instanceaccesscontrolattributeconfiguration-accesscontrolattribute.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceArn": "The ARN of the AWS SSO instance under which the operation will be executed\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `1224` \n*Pattern*: `arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html:::instance/(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html)?ins-[a-zA-Z0-9-.]{16}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SSO::InstanceAccessControlAttributeConfiguration AccessControlAttribute": { + "Key": "The name of the attribute associated with your identities in your identity source\\. This is used to map a specified attribute in your identity source with an attribute in AWS SSO\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value used for mapping a specified attribute to an identity source\\. \n*Required*: Yes \n*Type*: [AccessControlAttributeValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sso-instanceaccesscontrolattributeconfiguration-accesscontrolattributevalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSO::InstanceAccessControlAttributeConfiguration AccessControlAttributeValue": { + "Source": "The identity source to use when mapping a specified attribute to AWS SSO\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SSO::PermissionSet": { + "Description": "The description of the [AWS::SSO::PermissionSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-resource-sso-permissionset.html#aws-resource-sso-permissionset)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `700` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u00A0-\\u00FF]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InlinePolicy": "The IAM inline policy that is attached to the permission set\\. \n*Required*: No \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `10240` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceArn": "The ARN of the SSO instance under which the operation will be executed\\. For more information about ARNs, see [Amazon Resource Names \\(ARNs\\) and AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *AWS General Reference*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `1224` \n*Pattern*: `arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html:::instance/(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html)?ins-[a-zA-Z0-9-.]{16}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ManagedPolicies": "A structure that stores the details of the IAM managed policy\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the permission set\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RelayStateType": "Used to redirect users within the application during the federation authentication process\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `240` \n*Pattern*: `[a-zA-Z0-9&$@#\\\\\\/%?=~\\-_'\"|!:,.;*+\\[\\]\\ \\(\\)\\{\\}]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SessionDuration": "The length of time that the application user sessions are valid for in the ISO\\-8601 standard\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^(-?)P(?=\\d|T\\d)(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)([DW]))?(?:T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+(?:\\.\\d+)?)S)?)?$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to attach to the new [AWS::SSO::PermissionSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-resource-sso-permissionset.html#aws-resource-sso-permissionset)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::App": { + "AppName": "The name of the app\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AppType": "The type of app\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `JupyterServer | KernelGateway | RSessionGateway | RStudioServerPro | TensorBoard` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DomainId": "The domain ID\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceSpec": "Specifies the ARN's of a SageMaker image and SageMaker image version, and the instance type that the version runs on\\. \n*Required*: No \n*Type*: [ResourceSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-app-resourcespec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UserProfileName": "The user profile name\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::App ResourceSpec": { + "InstanceType": "The instance type that the image version runs on\\. \nJupyterServer Apps only support the `system` value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ml.c5.12xlarge | ml.c5.18xlarge | ml.c5.24xlarge | ml.c5.2xlarge | ml.c5.4xlarge | ml.c5.9xlarge | ml.c5.large | ml.c5.xlarge | ml.g4dn.12xlarge | ml.g4dn.16xlarge | ml.g4dn.2xlarge | ml.g4dn.4xlarge | ml.g4dn.8xlarge | ml.g4dn.xlarge | ml.m5.12xlarge | ml.m5.16xlarge | ml.m5.24xlarge | ml.m5.2xlarge | ml.m5.4xlarge | ml.m5.8xlarge | ml.m5.large | ml.m5.xlarge | ml.m5d.12xlarge | ml.m5d.16xlarge | ml.m5d.24xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.8xlarge | ml.m5d.large | ml.m5d.xlarge | ml.p3.16xlarge | ml.p3.2xlarge | ml.p3.8xlarge | ml.p3dn.24xlarge | ml.r5.12xlarge | ml.r5.16xlarge | ml.r5.24xlarge | ml.r5.2xlarge | ml.r5.4xlarge | ml.r5.8xlarge | ml.r5.large | ml.r5.xlarge | ml.t3.2xlarge | ml.t3.large | ml.t3.medium | ml.t3.micro | ml.t3.small | ml.t3.xlarge | system` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SageMakerImageArn": "The ARN of the SageMaker image that the image version belongs to\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SageMakerImageVersionArn": "The ARN of the image version created on the instance\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::AppImageConfig": { + "AppImageConfigName": "The name of the AppImageConfig\\. Must be unique to your account\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KernelGatewayImageConfig": "The configuration for the file system and kernels in the SageMaker image\\. \n*Required*: No \n*Type*: [KernelGatewayImageConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-appimageconfig-kernelgatewayimageconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::AppImageConfig FileSystemConfig": { + "DefaultGid": "The default POSIX group ID \\(GID\\)\\. If not specified, defaults to `100`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultUid": "The default POSIX user ID \\(UID\\)\\. If not specified, defaults to `1000`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MountPath": "The path within the image to mount the user's EFS home directory\\. The directory should be empty\\. If not specified, defaults to */home/sagemaker\\-user*\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^\\/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::AppImageConfig KernelGatewayImageConfig": { + "FileSystemConfig": "The Amazon Elastic File System \\(EFS\\) storage configuration for a SageMaker image\\. \n*Required*: No \n*Type*: [FileSystemConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-appimageconfig-filesystemconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KernelSpecs": "The specification of the Jupyter kernels in the image\\. \n*Required*: Yes \n*Type*: List of [KernelSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-appimageconfig-kernelspec.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::AppImageConfig KernelSpec": { + "DisplayName": "The display name of the kernel\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the Jupyter kernel in the image\\. This value is case sensitive\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::CodeRepository": { + "CodeRepositoryName": "The name of the Git repository\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "GitConfig": "Configuration details for the Git repository, including the URL where it is located and the ARN of the AWS Secrets Manager secret that contains the credentials used to access the repository\\. \n*Required*: Yes \n*Type*: [GitConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-coderepository-gitconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "List of tags for Code Repository\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::CodeRepository GitConfig": { + "Branch": "The default branch for the Git repository\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[^ ~^:?*\\[]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RepositoryUrl": "The URL where the Git repository is located\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^https://([^/]+)/?(.*)$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecretArn": "The Amazon Resource Name \\(ARN\\) of the AWS Secrets Manager secret that contains the credentials used to access the git repository\\. The secret must have a staging label of `AWSCURRENT` and must be in the following format: \n `{\"username\": UserName, \"password\": Password}` \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:aws[a-z\\-]*:secretsmanager:[a-z0-9\\-]*:[0-9]{12}:secret:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::DataQualityJobDefinition": { + "DataQualityAppSpecification": "Specifies the container that runs the monitoring job\\. \n*Required*: Yes \n*Type*: [DataQualityAppSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-dataqualityappspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DataQualityBaselineConfig": "Configures the constraints and baselines for the monitoring job\\. \n*Required*: No \n*Type*: [DataQualityBaselineConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-dataqualitybaselineconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DataQualityJobInput": "A list of inputs for the monitoring job\\. Currently endpoints are supported as monitoring inputs\\. \n*Required*: Yes \n*Type*: [DataQualityJobInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-dataqualityjobinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DataQualityJobOutputConfig": "The output configuration for monitoring jobs\\. \n*Required*: Yes \n*Type*: [MonitoringOutputConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-monitoringoutputconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "JobDefinitionName": "The name for the monitoring job definition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "JobResources": "Identifies the resources to deploy for a monitoring job\\. \n*Required*: Yes \n*Type*: [MonitoringResources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-monitoringresources.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NetworkConfig": "Specifies networking configuration for the monitoring job\\. \n*Required*: No \n*Type*: [NetworkConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-networkconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StoppingCondition": "A time limit for how long the monitoring job is allowed to run before stopping\\. \n*Required*: No \n*Type*: [StoppingCondition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-stoppingcondition.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::DataQualityJobDefinition ClusterConfig": { + "InstanceCount": "The number of ML compute instances to use in the model monitoring job\\. For distributed processing jobs, specify a value greater than 1\\. The default value is 1\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceType": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VolumeKmsKeyId": "The AWS Key Management Service \\(AWS KMS\\) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance\\(s\\) that run the model monitoring job\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VolumeSizeInGB": "The size of the ML storage volume, in gigabytes, that you want to provision\\. You must specify sufficient ML storage for your scenario\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::DataQualityJobDefinition ConstraintsResource": { + "S3Uri": "The Amazon S3 URI for the constraints resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::DataQualityJobDefinition DataQualityAppSpecification": { + "ContainerArguments": "The arguments to send to the container that the monitoring job runs\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ContainerEntrypoint": "The entrypoint for a container used to run a monitoring job\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Environment": "Sets the environment variables in the container that the monitoring job runs\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ImageUri": "The container image that the data quality monitoring job runs\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PostAnalyticsProcessorSourceUri": "An Amazon S3 URI to a script that is called after analysis has been performed\\. Applicable only for the built\\-in \\(first party\\) containers\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^(https|s3)://([^/]+)/?(.*)$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RecordPreprocessorSourceUri": "An Amazon S3 URI to a script that is called per row prior to running analysis\\. It can base64 decode the payload and convert it into a flatted json so that the built\\-in container can use the converted data\\. Applicable only for the built\\-in \\(first party\\) containers\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^(https|s3)://([^/]+)/?(.*)$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::DataQualityJobDefinition DataQualityBaselineConfig": { + "BaseliningJobName": "The name of the job that performs baselining for the data quality monitoring job\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ConstraintsResource": "The constraints resource for a monitoring job\\. \n*Required*: No \n*Type*: [ConstraintsResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-constraintsresource.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StatisticsResource": "Configuration for monitoring constraints and monitoring statistics\\. These baseline resources are compared against the results of the current job from the series of jobs scheduled to collect data periodically\\. \n*Required*: No \n*Type*: [StatisticsResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-statisticsresource.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::DataQualityJobDefinition DataQualityJobInput": { + "EndpointInput": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: [EndpointInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-endpointinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::DataQualityJobDefinition EndpointInput": { + "EndpointName": "An endpoint in customer's account which has enabled `DataCaptureConfig` enabled\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LocalPath": "Path to the filesystem where the endpoint data is available to the container\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "S3DataDistributionType": "Whether input data distributed in Amazon S3 is fully replicated or sharded by an S3 key\\. Defaults to `FullyReplicated` \n*Required*: No \n*Type*: String \n*Allowed values*: `FullyReplicated | ShardedByS3Key` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "S3InputMode": "Whether the `Pipe` or `File` is used as the input mode for transferring data for the monitoring job\\. `Pipe` mode is recommended for large datasets\\. `File` mode is useful for small files that fit in memory\\. Defaults to `File`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `File | Pipe` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::DataQualityJobDefinition MonitoringOutput": { + "S3Output": "The Amazon S3 storage location where the results of a monitoring job are saved\\. \n*Required*: Yes \n*Type*: [S3Output](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-s3output.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::DataQualityJobDefinition MonitoringOutputConfig": { + "KmsKeyId": "The AWS Key Management Service \\(AWS KMS\\) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server\\-side encryption\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MonitoringOutputs": "Monitoring outputs for monitoring jobs\\. This is where the output of the periodic monitoring jobs is uploaded\\. \n*Required*: Yes \n*Type*: List of [MonitoringOutput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-monitoringoutput.html) \n*Maximum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::DataQualityJobDefinition MonitoringResources": { + "ClusterConfig": "The configuration for the cluster resources used to run the processing job\\. \n*Required*: Yes \n*Type*: [ClusterConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-clusterconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::DataQualityJobDefinition NetworkConfig": { + "EnableInterContainerTrafficEncryption": "Whether to encrypt all communications between distributed processing jobs\\. Choose `True` to encrypt communications\\. Encryption provides greater security for distributed processing jobs, but the processing might take longer\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EnableNetworkIsolation": "Whether to allow inbound and outbound network calls to and from the containers used for the processing job\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpcConfig": "Specifies a VPC that your training jobs and hosted models have access to\\. Control access to and from your training and model containers by configuring the VPC\\. \n*Required*: No \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-vpcconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::DataQualityJobDefinition S3Output": { + "LocalPath": "The local path to the Amazon S3 storage location where Amazon SageMaker saves the results of a monitoring job\\. LocalPath is an absolute path for the output data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "S3UploadMode": "Whether to upload the results of the monitoring job continuously or after the job completes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "S3Uri": "A URI that identifies the Amazon S3 storage location where Amazon SageMaker saves the results of a monitoring job\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::DataQualityJobDefinition StatisticsResource": { + "S3Uri": "The Amazon S3 URI for the statistics resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::DataQualityJobDefinition StoppingCondition": { + "MaxRuntimeInSeconds": "The maximum length of time, in seconds, that a training or compilation job can run\\. \nFor compilation jobs, if the job does not complete during this time, a `TimeOut` error is generated\\. We recommend starting with 900 seconds and increasing as necessary based on your model\\. \nFor all other jobs, if the job does not complete during this time, SageMaker ends the job\\. When `RetryStrategy` is specified in the job request, `MaxRuntimeInSeconds` specifies the maximum time for all of the attempts in total, not each individual attempt\\. The default value is 1 day\\. The maximum value is 28 days\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::DataQualityJobDefinition VpcConfig": { + "SecurityGroupIds": "The VPC security group IDs, in the form sg\\-xxxxxxxx\\. Specify the security groups for the VPC that is specified in the `Subnets` field\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Subnets": "The ID of the subnets in the VPC to which you want to connect your training job or model\\. For information about the availability of specific instance types, see [Supported Instance Types and Availability Zones](https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html)\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `16` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::Device": { + "Device": "Edge device you want to create\\. \n*Required*: No \n*Type*: [Device](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-device-device.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeviceFleetName": "The name of the fleet the device belongs to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "An array of key\\-value pairs that contain metadata to help you categorize and organize your devices\\. Each tag consists of a key and a value, both of which you define\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::Device Device": { + "Description": "Description of the device\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `40` \n*Pattern*: `[\\S\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeviceName": "The name of the device\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IotThingName": "AWS Internet of Things \\(IoT\\) object name\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9:_-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::DeviceFleet": { + "Description": "A description of the fleet\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DeviceFleetName": "Name of the device fleet\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OutputConfig": "The output configuration for storing sample data collected by the fleet\\. \n*Required*: Yes \n*Type*: [EdgeOutputConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-devicefleet-edgeoutputconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) that has access to AWS Internet of Things \\(IoT\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs that contain metadata to help you categorize and organize your device fleets\\. Each tag consists of a key and a value, both of which you define\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::DeviceFleet EdgeOutputConfig": { + "KmsKeyId": "The AWS Key Management Service \\(AWS KMS\\) key that Amazon SageMaker uses to encrypt data on the storage volume after compilation job\\. If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3OutputLocation": "The Amazon Simple Storage \\(S3\\) bucket URI\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^(https|s3)://([^/]+)/?(.*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::Domain": { + "AppNetworkAccessType": "Specifies the VPC used for non\\-EFS traffic\\. The default value is `PublicInternetOnly`\\. \n+ `PublicInternetOnly` \\- Non\\-EFS traffic is through a VPC managed by Amazon SageMaker, which allows direct internet access\n+ `VpcOnly` \\- All Studio traffic is through the specified VPC and subnets\n*Valid Values*: `PublicInternetOnly | VpcOnly` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AuthMode": "The mode of authentication that members use to access the domain\\. \n*Valid Values*: `SSO | IAM` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DefaultUserSettings": "The default user settings\\. \n*Required*: Yes \n*Type*: [UserSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-usersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DomainName": "The domain name\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KmsKeyId": "SageMaker uses AWS KMS to encrypt the EFS volume attached to the domain with an AWS managed customer master key \\(CMK\\) by default\\. For more control, specify a customer managed CMK\\. \n*Length Constraints*: Maximum length of 2048\\. \n*Pattern*: `.*` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SubnetIds": "The VPC subnets that Studio uses for communication\\. \n*Length Constraints*: Maximum length of 32\\. \n*Array members*: Minimum number of 1 item\\. Maximum number of 16 items\\. \n*Pattern*: `[-0-9a-zA-Z]+` \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Tags to associated with the Domain\\. Each tag consists of a key and an optional value\\. Tag keys must be unique per resource\\. Tags are searchable using the Search API\\. \nTags that you specify for the Domain are also added to all Apps that are launched in the Domain\\. \n*Array members*: Minimum number of 0 items\\. Maximum number of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VpcId": "The ID of the Amazon Virtual Private Cloud \\(VPC\\) that Studio uses for communication\\. \n*Length Constraints*: Maximum length of 32\\. \n*Pattern*: `[-0-9a-zA-Z]+` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::Domain CustomImage": { + "AppImageConfigName": "The name of the AppImageConfig\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageName": "The name of the CustomImage\\. Must be unique to your account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageVersionNumber": "The version number of the CustomImage\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::Domain JupyterServerAppSettings": { + "DefaultResourceSpec": "The default instance type and the Amazon Resource Name \\(ARN\\) of the default SageMaker image used by the JupyterServer app\\. \n*Required*: No \n*Type*: [ResourceSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-resourcespec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::Domain KernelGatewayAppSettings": { + "CustomImages": "A list of custom SageMaker images that are configured to run as a KernelGateway app\\. \n*Required*: No \n*Type*: List of [CustomImage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-customimage.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultResourceSpec": "The default instance type and the Amazon Resource Name \\(ARN\\) of the default SageMaker image used by the KernelGateway app\\. \nThe Amazon SageMaker Studio UI does not use the default instance type value set here\\. The default instance type set here is used when Apps are created using the AWS Command Line Interface or AWS CloudFormation and the instance type parameter value is not passed\\.\n*Required*: No \n*Type*: [ResourceSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-resourcespec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::Domain ResourceSpec": { + "InstanceType": "The instance type that the image version runs on\\. \nJupyterServer Apps only support the `system` value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ml.c5.12xlarge | ml.c5.18xlarge | ml.c5.24xlarge | ml.c5.2xlarge | ml.c5.4xlarge | ml.c5.9xlarge | ml.c5.large | ml.c5.xlarge | ml.g4dn.12xlarge | ml.g4dn.16xlarge | ml.g4dn.2xlarge | ml.g4dn.4xlarge | ml.g4dn.8xlarge | ml.g4dn.xlarge | ml.m5.12xlarge | ml.m5.16xlarge | ml.m5.24xlarge | ml.m5.2xlarge | ml.m5.4xlarge | ml.m5.8xlarge | ml.m5.large | ml.m5.xlarge | ml.m5d.12xlarge | ml.m5d.16xlarge | ml.m5d.24xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.8xlarge | ml.m5d.large | ml.m5d.xlarge | ml.p3.16xlarge | ml.p3.2xlarge | ml.p3.8xlarge | ml.p3dn.24xlarge | ml.r5.12xlarge | ml.r5.16xlarge | ml.r5.24xlarge | ml.r5.2xlarge | ml.r5.4xlarge | ml.r5.8xlarge | ml.r5.large | ml.r5.xlarge | ml.t3.2xlarge | ml.t3.large | ml.t3.medium | ml.t3.micro | ml.t3.small | ml.t3.xlarge | system` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SageMakerImageArn": "The ARN of the SageMaker image that the image version belongs to\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SageMakerImageVersionArn": "The ARN of the image version created on the instance\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::Domain SharingSettings": { + "NotebookOutputOption": "Whether to include the notebook cell output when sharing the notebook\\. The default is `Disabled`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Allowed | Disabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3KmsKeyId": "When `NotebookOutputOption` is `Allowed`, the AWS Key Management Service \\(KMS\\) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3OutputPath": "When `NotebookOutputOption` is `Allowed`, the Amazon S3 bucket used to store the shared notebook snapshots\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^(https|s3)://([^/]+)/?(.*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::Domain UserSettings": { + "ExecutionRole": "The execution role for the user\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JupyterServerAppSettings": "The Jupyter server's app settings\\. \n*Required*: No \n*Type*: [JupyterServerAppSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-jupyterserverappsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KernelGatewayAppSettings": "The kernel gateway app settings\\. \n*Required*: No \n*Type*: [KernelGatewayAppSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-kernelgatewayappsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityGroups": "The security groups for the Amazon Virtual Private Cloud \\(VPC\\) that Studio uses for communication\\. \nOptional when the `CreateDomain.AppNetworkAccessType` parameter is set to `PublicInternetOnly`\\. \nRequired when the `CreateDomain.AppNetworkAccessType` parameter is set to `VpcOnly`\\. \nAmazon SageMaker adds a security group to allow NFS traffic from SageMaker Studio\\. Therefore, the number of security groups that you can specify is one less than the maximum number shown\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SharingSettings": "Specifies options for sharing SageMaker Studio notebooks\\. \n*Required*: No \n*Type*: [SharingSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-sharingsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::Endpoint": { + "DeploymentConfig": "The deployment configuration for an endpoint, which contains the desired deployment strategy and rollback configurations\\. \n*Required*: No \n*Type*: [DeploymentConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-deploymentconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EndpointConfigName": "The name of the [AWS::SageMaker::EndpointConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-endpointconfig.html) resource that specifies the configuration for the endpoint\\. For more information, see [CreateEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpointConfig.html)\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EndpointName": "The name of the endpoint\\.The name must be unique within an AWS Region in your AWS account\\. The name is case\\-insensitive in `CreateEndpoint`, but the case is preserved and must be matched in [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html)\\. \n*Required*: No \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ExcludeRetainedVariantProperties": "When you are updating endpoint resources with [RetainAllVariantProperties](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpoint.html#SageMaker-UpdateEndpoint-request-RetainAllVariantProperties) whose value is set to `true`, `ExcludeRetainedVariantProperties` specifies the list of type [VariantProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-variantproperty.html) to override with the values provided by `EndpointConfig`\\. If you don't specify a value for `ExcludeAllVariantProperties`, no variant properties are overridden\\. Don't use this property when creating new endpoint resources or when `RetainAllVariantProperties` is set to `false`\\. \n*Required*: No \n*Type*: List of [VariantProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-variantproperty.html) \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetainAllVariantProperties": "When updating endpoint resources, enables or disables the retention of variant properties, such as the instance count or the variant weight\\. To retain the variant properties of an endpoint when updating it, set `RetainAllVariantProperties` to `true`\\. To use the variant properties specified in a new `EndpointConfig` call when updating an endpoint, set `RetainAllVariantProperties` to `false`\\. Use this property only when updating endpoint resources, not when creating new endpoint resources\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RetainDeploymentConfig": "Specifies whether to reuse the last deployment configuration\\. The default value is false \\(the configuration is not reused\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A list of key\\-value pairs to apply to this resource\\. \nFor more information, see [Resource Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) and [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what) in the * AWS Billing and Cost Management User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::Endpoint Alarm": { + "AlarmName": "The name of a CloudWatch alarm in your account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^(?!\\s*$).+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::Endpoint AutoRollbackConfig": { + "Alarms": "List of CloudWatch alarms in your account that are configured to monitor metrics on an endpoint\\. If any alarms are tripped during a deployment, SageMaker rolls back the deployment\\. \n*Required*: Yes \n*Type*: List of [Alarm](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-alarm.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::Endpoint BlueGreenUpdatePolicy": { + "MaximumExecutionTimeoutInSeconds": "Maximum execution timeout for the deployment\\. Note that the timeout value should be larger than the total waiting time specified in `TerminationWaitInSeconds` and `WaitIntervalInSeconds`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `600` \n*Maximum*: `14400` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TerminationWaitInSeconds": "Additional waiting time in seconds after the completion of an endpoint deployment before terminating the old endpoint fleet\\. Default is 0\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `3600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TrafficRoutingConfiguration": "Defines the traffic routing strategy to shift traffic from the old fleet to the new fleet during an endpoint deployment\\. \n*Required*: Yes \n*Type*: [TrafficRoutingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-trafficroutingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::Endpoint CapacitySize": { + "Type": "Specifies the endpoint capacity type\\. \n+ `INSTANCE_COUNT`: The endpoint activates based on the number of instances\\.\n+ `CAPACITY_PERCENT`: The endpoint activates based on the specified percentage of capacity\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `CAPACITY_PERCENT | INSTANCE_COUNT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "Defines the capacity size, either as a number of instances or a capacity percentage\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::Endpoint DeploymentConfig": { + "AutoRollbackConfiguration": "Automatic rollback configuration for handling endpoint deployment failures and recovery\\. \n*Required*: No \n*Type*: [AutoRollbackConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-autorollbackconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BlueGreenUpdatePolicy": "Update policy for a blue/green deployment\\. If this update policy is specified, SageMaker creates a new fleet during the deployment while maintaining the old fleet\\. SageMaker flips traffic to the new fleet according to the specified traffic routing configuration\\. Only one update policy should be used in the deployment configuration\\. If no update policy is specified, SageMaker uses a blue/green deployment strategy with all at once traffic shifting by default\\. \n*Required*: Yes \n*Type*: [BlueGreenUpdatePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-bluegreenupdatepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::Endpoint TrafficRoutingConfig": { + "CanarySize": "Batch size for the first step to turn on traffic on the new endpoint fleet\\. `Value` must be less than or equal to 50% of the variant's total instance count\\. \n*Required*: No \n*Type*: [CapacitySize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-capacitysize.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LinearStepSize": "Batch size for each step to turn on traffic on the new endpoint fleet\\. `Value` must be 10\\-50% of the variant's total instance count\\. \n*Required*: No \n*Type*: [CapacitySize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-capacitysize.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "Traffic routing strategy type\\. \n+ `ALL_AT_ONCE`: Endpoint traffic shifts to the new fleet in a single step\\. \n+ `CANARY`: Endpoint traffic shifts to the new fleet in two steps\\. The first step is the canary, which is a small portion of the traffic\\. The second step is the remainder of the traffic\\. \n+ `LINEAR`: Endpoint traffic shifts to the new fleet in n steps of a configurable size\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_AT_ONCE | CANARY | LINEAR` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WaitIntervalInSeconds": "The waiting time \\(in seconds\\) between incremental steps to turn on traffic on the new endpoint fleet\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `3600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::Endpoint VariantProperty": { + "VariantPropertyType": "The type of variant property\\. The supported values are: \n+ `DesiredInstanceCount`: Overrides the existing variant instance counts using the [InitialInstanceCount](https://docs.aws.amazon.com/sagemaker/latest/dg/API_ProductionVariant.html#SageMaker-Type-ProductionVariant-InitialInstanceCount) values in the [ProductionVariants](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpointConfig.html#SageMaker-CreateEndpointConfig-request-ProductionVariants)\\.\n+ `DesiredWeight`: Overrides the existing variant weights using the [InitialVariantWeight](https://docs.aws.amazon.com/sagemaker/latest/dg/API_ProductionVariant.html#SageMaker-Type-ProductionVariant-InitialVariantWeight) values in the [ProductionVariants](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpointConfig.html#SageMaker-CreateEndpointConfig-request-ProductionVariants)\\.\n+ `DataCaptureConfig`: \\(Not currently supported\\.\\)\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::EndpointConfig": { + "AsyncInferenceConfig": "Specifies configuration for how an endpoint performs asynchronous inference\\. \n*Required*: No \n*Type*: [AsyncInferenceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferenceconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DataCaptureConfig": "Specifies how to capture endpoint data for model monitor\\. The data capture configuration applies to all production variants hosted at the endpoint\\. \n*Required*: No \n*Type*: [DataCaptureConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-datacaptureconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EndpointConfigName": "The name of the endpoint configuration\\. \n*Required*: No \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KmsKeyId": "The Amazon Resource Name \\(ARN\\) of an AWS Key Management Service key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance that hosts the endpoint\\. \n+ Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`\n+ Key ARN: `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`\n+ Alias name: `alias/ExampleAlias`\n+ Alias name ARN: `arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias`\nThe KMS key policy must grant permission to the IAM role that you specify in your `CreateEndpoint`, `UpdateEndpoint` requests\\. For more information, refer to the AWS Key Management Service section [Using Key Policies in AWS KMS ](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) \nCertain Nitro\\-based instances include local storage, dependent on the instance type\\. Local storage volumes are encrypted using a hardware module on the instance\\. You can't request a `KmsKeyId` when using an instance type with local storage\\. If any of the models that you specify in the `ProductionVariants` parameter use nitro\\-based instances with local storage, do not specify a value for the `KmsKeyId` parameter\\. If you specify a value for `KmsKeyId` when using any nitro\\-based instances with local storage, the call to `CreateEndpointConfig` fails\\. \nFor a list of instance types that support local instance storage, see [Instance Store Volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes)\\. \nFor more information about local instance storage encryption, see [SSD Instance Store Volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html)\\.\n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProductionVariants": "A list of `ProductionVariant` objects, one for each model that you want to host at this endpoint\\. \n*Required*: Yes \n*Type*: List of [ProductionVariant](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-productionvariant.html) \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A list of key\\-value pairs to apply to this resource\\. \nFor more information, see [Resource Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) and [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::EndpointConfig AsyncInferenceClientConfig": { + "MaxConcurrentInvocationsPerInstance": "The maximum number of concurrent requests sent by the SageMaker client to the model container\\. If no value is provided, SageMaker will choose an optimal value for you\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::EndpointConfig AsyncInferenceConfig": { + "ClientConfig": "Configures the behavior of the client used by SageMaker to interact with the model container during asynchronous inference\\. \n*Required*: No \n*Type*: [AsyncInferenceClientConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferenceclientconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OutputConfig": "Specifies the configuration for asynchronous inference invocation outputs\\. \n*Required*: Yes \n*Type*: [AsyncInferenceOutputConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferenceoutputconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::EndpointConfig AsyncInferenceNotificationConfig": { + "ErrorTopic": "Amazon SNS topic to post a notification to when an inference fails\\. If no topic is provided, no notification is sent on failure\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SuccessTopic": "Amazon SNS topic to post a notification to when an inference completes successfully\\. If no topic is provided, no notification is sent on success\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::EndpointConfig AsyncInferenceOutputConfig": { + "KmsKeyId": "The AWS Key Management Service \\(AWS KMS\\) key that Amazon SageMaker uses to encrypt the asynchronous inference output in Amazon S3\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NotificationConfig": "Specifies the configuration for notifications of inference results for asynchronous inference\\. \n*Required*: No \n*Type*: [AsyncInferenceNotificationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferencenotificationconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "S3OutputPath": "The Amazon S3 location to upload inference responses to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::EndpointConfig CaptureContentTypeHeader": { + "CsvContentTypes": "A list of the CSV content types of the data that the endpoint captures\\. For the endpoint to capture the data, you must also specify the content type when you invoke the endpoint\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "JsonContentTypes": "A list of the JSON content types of the data that the endpoint captures\\. For the endpoint to capture the data, you must also specify the content type when you invoke the endpoint\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::EndpointConfig CaptureOption": { + "CaptureMode": "Specifies whether the endpoint captures input data or output data\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Input | Output` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::EndpointConfig DataCaptureConfig": { + "CaptureContentTypeHeader": "A list of the JSON and CSV content type that the endpoint captures\\. \n*Required*: No \n*Type*: [CaptureContentTypeHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-datacaptureconfig-capturecontenttypeheader.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CaptureOptions": "Specifies whether the endpoint captures input data to your model, output data from your model, or both\\. \n*Required*: Yes \n*Type*: List of [CaptureOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-captureoption.html) \n*Maximum*: `2` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DestinationS3Uri": "The S3 bucket where model monitor stores captured data\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `^(https|s3)://([^/])/?(.*)$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EnableCapture": "Set to `True` to enable data capture\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InitialSamplingPercentage": "The percentage of data to capture\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KmsKeyId": "The AWS Key Management Service \\(AWS KMS\\) key that Amazon SageMaker uses to encrypt the captured data at rest using Amazon S3 server\\-side encryption\\. The KmsKeyId can be any of the following formats: Key ID: 1234abcd\\-12ab\\-34cd\\-56ef\\-1234567890ab Key ARN: arn:aws:kms:us\\-west\\-2:111122223333:key/1234abcd\\-12ab\\-34cd\\-56ef\\-1234567890ab Alias name: alias/ExampleAlias Alias name ARN: arn:aws:kms:us\\-west\\-2:111122223333:alias/ExampleAlias If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account\\. For more information, see KMS\\-Managed Encryption Keys \\(https://docs\\.aws\\.amazon\\.com/AmazonS3/latest/dev/UsingKMSEncryption\\.html\\) in the Amazon Simple Storage Service Developer Guide\\. The KMS key policy must grant permission to the IAM role that you specify in your CreateModel \\(https://docs\\.aws\\.amazon\\.com/sagemaker/latest/APIReference/API\\_CreateModel\\.html\\) request\\. For more information, see Using Key Policies in AWS KMS \\(http://docs\\.aws\\.amazon\\.com/kms/latest/developerguide/key\\-policies\\.html\\) in the AWS Key Management Service Developer Guide\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::EndpointConfig ProductionVariant": { + "AcceleratorType": "The size of the Elastic Inference \\(EI\\) instance to use for the production variant\\. EI instances provide on\\-demand GPU computing for inference\\. For more information, see [Using Elastic Inference in Amazon SageMaker](https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html)\\. For more information, see [Using Elastic Inference in Amazon SageMaker](https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ml.eia1.large | ml.eia1.medium | ml.eia1.xlarge | ml.eia2.large | ml.eia2.medium | ml.eia2.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InitialInstanceCount": "Number of instances to launch initially\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InitialVariantWeight": "Determines initial traffic distribution among all of the models that you specify in the endpoint configuration\\. The traffic to a production variant is determined by the ratio of the `VariantWeight` to the sum of all `VariantWeight` values across all ProductionVariants\\. If unspecified, it defaults to 1\\.0\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceType": "The ML compute instance type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ml.c4.2xlarge | ml.c4.4xlarge | ml.c4.8xlarge | ml.c4.large | ml.c4.xlarge | ml.c5.18xlarge | ml.c5.2xlarge | ml.c5.4xlarge | ml.c5.9xlarge | ml.c5.large | ml.c5.xlarge | ml.c5d.18xlarge | ml.c5d.2xlarge | ml.c5d.4xlarge | ml.c5d.9xlarge | ml.c5d.large | ml.c5d.xlarge | ml.g4dn.12xlarge | ml.g4dn.16xlarge | ml.g4dn.2xlarge | ml.g4dn.4xlarge | ml.g4dn.8xlarge | ml.g4dn.xlarge | ml.inf1.24xlarge | ml.inf1.2xlarge | ml.inf1.6xlarge | ml.inf1.xlarge | ml.m4.10xlarge | ml.m4.16xlarge | ml.m4.2xlarge | ml.m4.4xlarge | ml.m4.xlarge | ml.m5.12xlarge | ml.m5.24xlarge | ml.m5.2xlarge | ml.m5.4xlarge | ml.m5.large | ml.m5.xlarge | ml.m5d.12xlarge | ml.m5d.24xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.large | ml.m5d.xlarge | ml.p2.16xlarge | ml.p2.8xlarge | ml.p2.xlarge | ml.p3.16xlarge | ml.p3.2xlarge | ml.p3.8xlarge | ml.r5.12xlarge | ml.r5.24xlarge | ml.r5.2xlarge | ml.r5.4xlarge | ml.r5.large | ml.r5.xlarge | ml.r5d.12xlarge | ml.r5d.24xlarge | ml.r5d.2xlarge | ml.r5d.4xlarge | ml.r5d.large | ml.r5d.xlarge | ml.t2.2xlarge | ml.t2.large | ml.t2.medium | ml.t2.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ModelName": "The name of the model that you want to host\\. This is the name that you specified when creating the model\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9])*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ServerlessConfig": "The serverless configuration for an endpoint\\. Specifies a serverless endpoint configuration instead of an instance\\-based endpoint configuration\\. \nServerless Inference is in preview release for Amazon SageMaker and is subject to change\\. We do not recommend using this feature in production environments\\.\n*Required*: No \n*Type*: [ServerlessConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-productionvariant-serverlessconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VariantName": "The name of the production variant\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::EndpointConfig ServerlessConfig": { + "MaxConcurrency": "The maximum number of concurrent invocations your serverless endpoint can process\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MemorySizeInMB": "The memory size of your serverless endpoint\\. Valid values are in 1 GB increments: 1024 MB, 2048 MB, 3072 MB, 4096 MB, 5120 MB, or 6144 MB\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1024` \n*Maximum*: `6144` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::FeatureGroup": { + "Description": "A free form description of a `FeatureGroup`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EventTimeFeatureName": "The name of the feature that stores the `EventTime` of a Record in a `FeatureGroup`\\. \nA `EventTime` is point in time when a new event occurs that corresponds to the creation or update of a `Record` in `FeatureGroup`\\. All `Records` in the `FeatureGroup` must have a corresponding `EventTime`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9]([-_]*[a-zA-Z0-9]){0,63}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FeatureDefinitions": "A list of `Feature`s\\. Each `Feature` must include a `FeatureName` and a `FeatureType`\\. \nValid `FeatureType`s are `Integral`, `Fractional` and `String`\\. \n `FeatureName`s cannot be any of the following: `is_deleted`, `write_time`, `api_invocation_time`\\. \nYou can create up to 2,500 `FeatureDefinition`s per `FeatureGroup`\\. \n*Required*: Yes \n*Type*: List of [FeatureDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-featuregroup-featuredefinition.html) \n*Maximum*: `2500` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FeatureGroupName": "The name of the `FeatureGroup`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,63}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OfflineStoreConfig": "The configuration of an `OfflineStore`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OnlineStoreConfig": "The configuration of an `OnlineStore`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RecordIdentifierFeatureName": "The name of the `Feature` whose value uniquely identifies a `Record` defined in the `FeatureGroup` `FeatureDefinitions`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9]([-_]*[a-zA-Z0-9]){0,63}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM execution role used to create the feature group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Tags used to define a `FeatureGroup`\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::FeatureGroup FeatureDefinition": { + "FeatureName": "The name of a feature\\. The type must be a string\\. `FeatureName` cannot be any of the following: `is_deleted`, `write_time`, `api_invocation_time`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9]([-_]*[a-zA-Z0-9]){0,63}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "FeatureType": "The value type of a feature\\. Valid values are Integral, Fractional, or String\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Fractional | Integral | String` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::Image": { + "ImageDescription": "The description of the image\\. \n*Length Constraints*: Minimum length of 1\\. Maximum length of 512\\. \n*Pattern*: `.*` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageDisplayName": "The display name of the image\\. \n*Length Constraints*: Minimum length of 1\\. Maximum length of 128\\. \n*Pattern*: `^\\S(.*\\S)?$` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ImageName": "The name of the Image\\. Must be unique by region in your account\\. \n*Length Constraints*: Minimum length of 1\\. Maximum length of 63\\. \n*Pattern*: `^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ImageRoleArn": "The Amazon Resource Name \\(ARN\\) of an IAM role that enables Amazon SageMaker to perform tasks on your behalf\\. \n*Length Constraints*: Minimum length of 20\\. Maximum length of 2048\\. \n*Pattern*: `^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A list of key\\-value pairs to apply to this resource\\. \n*Array Members*: Minimum number of 0 items\\. Maximum number of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SageMaker::ImageVersion": { + "BaseImage": "The container image that the SageMaker image version is based on\\. \n*Length Constraints*: Minimum length of 1\\. Maximum length of 255\\. \n*Pattern*: `.*` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ImageName": "The name of the parent image\\. \n*Length Constraints*: Minimum length of 1\\. Maximum length of 63\\. \n*Pattern*: `^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::Model": { + "Containers": "Specifies the containers in the inference pipeline\\. \n*Required*: No \n*Type*: List of [ContainerDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition.html) \n*Maximum*: `15` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EnableNetworkIsolation": "Isolates the model container\\. No inbound or outbound network calls can be made to or from the model container\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ExecutionRoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM role that SageMaker can assume to access model artifacts and docker image for deployment on ML compute instances or for batch transform jobs\\. Deploying on ML compute instances is part of model hosting\\. For more information, see [SageMaker Roles](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html)\\. \nTo be able to pass this role to SageMaker, the caller of this API must have the `iam:PassRole` permission\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InferenceExecutionConfig": "Specifies details of how containers in a multi\\-container endpoint are called\\. \n*Required*: No \n*Type*: [InferenceExecutionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-inferenceexecutionconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ModelName": "The name of the new model\\. \n*Required*: No \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9])*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PrimaryContainer": "The location of the primary docker image containing inference code, associated artifacts, and custom environment map that the inference code uses when the model is deployed for predictions\\. \n*Required*: No \n*Type*: [ContainerDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A list of key\\-value pairs to apply to this resource\\. \nFor more information, see [Resource Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) and [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what) in the *AWS Billing and Cost Management User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcConfig": "A [VpcConfig](https://docs.aws.amazon.com/sagemaker/latest/dg/API_VpcConfig.html) object that specifies the VPC that you want your model to connect to\\. Control access to and from your model container by configuring the VPC\\. `VpcConfig` is used in hosting services and in batch transform\\. For more information, see [Protect Endpoints by Using an Amazon Virtual Private Cloud](https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html) and [Protect Data in Batch Transform Jobs by Using an Amazon Virtual Private Cloud](https://docs.aws.amazon.com/sagemaker/latest/dg/batch-vpc.html)\\. \n*Required*: No \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-vpcconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::SageMaker::Model ContainerDefinition": { + "ContainerHostname": "This parameter is ignored for models that contain only a `PrimaryContainer`\\. \nWhen a `ContainerDefinition` is part of an inference pipeline, the value of the parameter uniquely identifies the container for the purposes of logging and metrics\\. For information, see [Use Logs and Metrics to Monitor an Inference Pipeline](https://docs.aws.amazon.com/sagemaker/latest/dg/inference-pipeline-logs-metrics.html)\\. If you don't specify a value for this parameter for a `ContainerDefinition` that is part of an inference pipeline, a unique name is automatically assigned based on the position of the `ContainerDefinition` in the pipeline\\. If you specify a value for the `ContainerHostName` for any `ContainerDefinition` that is part of an inference pipeline, you must specify a value for the `ContainerHostName` parameter of every `ContainerDefinition` in that pipeline\\. \n*Required*: No \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Environment": "The environment variables to set in the Docker container\\. Each key and value in the `Environment` string to string map can have length of up to 1024\\. We support up to 16 entries in the map\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Image": "The path where inference code is stored\\. This can be either in Amazon EC2 Container Registry or in a Docker registry that is accessible from the same VPC that you configure for your endpoint\\. If you are using your own custom algorithm instead of an algorithm provided by SageMaker, the inference code must meet SageMaker requirements\\. SageMaker supports both `registry/repository[:tag]` and `registry/repository[@digest]` image path formats\\. For more information, see [Using Your Own Algorithms with Amazon SageMaker](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html) \n*Required*: No \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `[\\S]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ImageConfig": "Specifies whether the model container is in Amazon ECR or a private Docker registry accessible from your Amazon Virtual Private Cloud \\(VPC\\)\\. For information about storing containers in a private Docker registry, see [Use a Private Docker Registry for Real\\-Time Inference Containers](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-containers-inference-private.html) \n*Required*: No \n*Type*: [ImageConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition-imageconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InferenceSpecificationName": "The inference specification name in the model package version\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Mode": "Whether the container hosts a single model or multiple models\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `MultiModel | SingleModel` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ModelDataUrl": "The S3 path where the model artifacts, which result from model training, are stored\\. This path must point to a single gzip compressed tar archive \\(\\.tar\\.gz suffix\\)\\. The S3 path is required for SageMaker built\\-in algorithms, but not if you use your own algorithms\\. For more information on built\\-in algorithms, see [Common Parameters](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html)\\. \nThe model artifacts must be in an S3 bucket that is in the same region as the model or endpoint you are creating\\.\nIf you provide a value for this parameter, SageMaker uses AWS Security Token Service to download model artifacts from the S3 path you provide\\. AWS STS is activated in your IAM user account by default\\. If you previously deactivated AWS STS for a region, you need to reactivate AWS STS for that region\\. For more information, see [Activating and Deactivating AWS STS in an AWS Region](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) in the * AWS Identity and Access Management User Guide*\\. \nIf you use a built\\-in algorithm to create a model, SageMaker requires that you provide a S3 path to the model artifacts in `ModelDataUrl`\\.\n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^(https|s3)://([^/]+)/?(.*)$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ModelPackageName": "The name or Amazon Resource Name \\(ARN\\) of the model package to use to create the model\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `176` \n*Pattern*: `(arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:[a-z\\-]*\\/)?([a-zA-Z0-9]([a-zA-Z0-9-]){0,62})(? ? @ [ \\ ] ^ _ ` { | } ~`\\. If you don't include this switch, the password can contain punctuation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExcludeUppercase": "Specifies whether to exclude uppercase letters from the password\\. If you don't include this switch, the password can contain uppercase letters\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GenerateStringKey": "The JSON key name for the key/value pair, where the value is the generated password\\. This pair is added to the JSON structure specified by the `SecretStringTemplate` parameter\\. If you specify this parameter, then you must also specify `SecretStringTemplate`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeSpace": "Specifies whether to include the space character\\. If you include this switch, the password can contain space characters\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PasswordLength": "The length of the password\\. If you don't include this parameter, the default length is 32 characters\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequireEachIncludedType": "Specifies whether to include at least one upper and lowercase letter, one number, and one punctuation\\. If you don't include this switch, the password contains at least one of every character type\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretStringTemplate": "A template that the generated string must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SecretsManager::Secret ReplicaRegion": { + "KmsKeyId": "The ARN, key ID, or alias of the KMS key to encrypt the secret\\. If you don't include this field, Secrets Manager uses `aws/secretsmanager`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Region": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SecretsManager::SecretTargetAttachment": { + "SecretId": "The ARN or name of the secret\\. To reference a secret also created in this template, use the see [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) function with the secret's logical ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetId": "The ID of the database or cluster\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetType": "A string that defines the type of service or database associated with the secret\\. This value instructs Secrets Manager how to update the secret with the details of the service or database\\. This value must be one of the following: \n+ AWS::RDS::DBInstance\n+ AWS::RDS::DBCluster\n+ AWS::Redshift::Cluster\n+ AWS::DocDB::DBInstance\n+ AWS::DocDB::DBCluster\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SecurityHub::Hub": { + "Tags": "The tags to add to the hub resource\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceCatalog::AcceptedPortfolioShare": { + "AcceptLanguage": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PortfolioId": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ServiceCatalog::CloudFormationProduct": { + "AcceptLanguage": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the product\\. \n*Required*: No \n*Type*: String \n*Maximum*: `8191` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Distributor": "The distributor of the product\\. \n*Required*: No \n*Type*: String \n*Maximum*: `8191` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the product\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `8191` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Owner": "The owner of the product\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `8191` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProvisioningArtifactParameters": "The configuration of the provisioning artifact \\(also known as a version\\)\\. \n*Required*: Yes \n*Type*: List of [ProvisioningArtifactProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationproduct-provisioningartifactproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReplaceProvisioningArtifacts": "This property is turned off by default\\. If turned off, you can update provisioning artifacts or product attributes \\(such as description, distributor, name, owner, and more\\) and the associated provisioning artifacts will retain the same unique identifier\\. Provisioning artifacts are matched within the CloudFormationProduct resource, and only those that have been updated will be changed\\. Provisioning artifacts are matched by a combinaton of provisioning artifact template URL and name\\. \nIf turned on, provisioning artifacts will be given a new unique identifier when you update the product or provisioning artifacts\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SupportDescription": "The support information about the product\\. \n*Required*: No \n*Type*: String \n*Maximum*: `8191` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SupportEmail": "The contact email for product support\\. \n*Required*: No \n*Type*: String \n*Maximum*: `254` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SupportUrl": "The contact URL for product support\\. \n `^https?:\\/\\// `/ is the pattern used to validate SupportUrl\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2083` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "One or more tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceCatalog::CloudFormationProduct ProvisioningArtifactProperties": { + "Description": "The description of the provisioning artifact, including how it differs from the previous provisioning artifact\\. \n*Required*: No \n*Type*: String \n*Maximum*: `8192` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisableTemplateValidation": "If set to true, AWS Service Catalog stops validating the specified provisioning artifact even if it is invalid\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Info": "Specify the template source with one of the following options, but not both\\. Keys accepted: \\[ `LoadTemplateFromURL`, `ImportFromPhysicalId` \\] \nThe URL of the AWS CloudFormation template in Amazon S3, AWS CodeCommit, or GitHub in JSON format\\. Specify the URL in JSON format as follows: \n `\"LoadTemplateFromURL\": \"https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/...\"` \n `ImportFromPhysicalId`: The physical id of the resource that contains the template\\. Currently only supports AWS CloudFormation stack arn\\. Specify the physical id in JSON format as follows: `ImportFromPhysicalId: \u201carn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId]` \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the provisioning artifact \\(for example, v1 v2beta\\)\\. No spaces are allowed\\. \n*Required*: No \n*Type*: String \n*Maximum*: `8192` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceCatalog::CloudFormationProvisionedProduct": { + "AcceptLanguage": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotificationArns": "Passed to AWS CloudFormation\\. The SNS topic ARNs to which to publish stack\\-related events\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PathId": "The path identifier of the product\\. This value is optional if the product has a default path, and required if the product has more than one path\\. To list the paths for a product, use [ListLaunchPaths](https://docs.aws.amazon.com/servicecatalog/latest/dg/API_ListLaunchPaths.html)\\. \nYou must provide the name or ID, but not both\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PathName": "The name of the path\\. This value is optional if the product has a default path, and required if the product has more than one path\\. To list the paths for a product, use [ListLaunchPaths](https://docs.aws.amazon.com/servicecatalog/latest/dg/API_ListLaunchPaths.html)\\. \nYou must provide the name or ID, but not both\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProductId": "The product identifier\\. \nYou must specify either the ID or the name of the product, but not both\\.\n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProductName": "A user\\-friendly name for the provisioned product\\. This value must be unique for the AWS account and cannot be updated after the product is provisioned\\. \nEach time a stack is created or updated, if `ProductName` is provided it will successfully resolve to `ProductId` as long as only one product exists in the account or Region with that `ProductName`\\. \nYou must specify either the name or the ID of the product, but not both\\.\n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9][a-zA-Z0-9._-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProvisionedProductName": "A user\\-friendly name for the provisioned product\\. This value must be unique for the AWS account and cannot be updated after the product is provisioned\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9][a-zA-Z0-9._-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProvisioningArtifactId": "The identifier of the provisioning artifact \\(also known as a version\\)\\. \nYou must specify either the ID or the name of the provisioning artifact, but not both\\.\n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProvisioningArtifactName": "The name of the provisioning artifact \\(also known as a version\\) for the product\\. This name must be unique for the product\\. \n You must specify either the name or the ID of the provisioning artifact, but not both\\. You must also specify either the name or the ID of the product, but not both\\.\n*Required*: Conditional \n*Type*: String \n*Maximum*: `8192` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProvisioningParameters": "Parameters specified by the administrator that are required for provisioning the product\\. \n*Required*: No \n*Type*: List of [ProvisioningParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProvisioningPreferences": "StackSet preferences that are required for provisioning the product or updating a provisioned product\\. \n*Required*: No \n*Type*: [ProvisioningPreferences](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "One or more tags\\. \nRequires the provisioned product to have an [ResourceUpdateConstraint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-resourceupdateconstraint.html) resource with `TagUpdatesOnProvisionedProduct` set to `ALLOWED` to allow tag updates\\. If `RESOURCE_UPDATE` constraint is not present, tags updates are ignored\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceCatalog::CloudFormationProvisionedProduct ProvisioningParameter": { + "Key": "The parameter key\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The parameter value\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceCatalog::CloudFormationProvisionedProduct ProvisioningPreferences": { + "StackSetAccounts": "One or more AWS accounts where the provisioned product will be available\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nThe specified accounts should be within the list of accounts from the `STACKSET` constraint\\. To get the list of accounts in the `STACKSET` constraint, use the `DescribeProvisioningParameters` operation\\. \nIf no values are specified, the default value is all acounts from the `STACKSET` constraint\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StackSetFailureToleranceCount": "The number of accounts, per Region, for which this operation can fail before AWS Service Catalog stops the operation in that Region\\. If the operation is stopped in a Region, AWS Service Catalog doesn't attempt the operation in any subsequent Regions\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nConditional: You must specify either `StackSetFailureToleranceCount` or `StackSetFailureTolerancePercentage`, but not both\\. \nThe default value is `0` if no value is specified\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StackSetFailureTolerancePercentage": "The percentage of accounts, per Region, for which this stack operation can fail before AWS Service Catalog stops the operation in that Region\\. If the operation is stopped in a Region, AWS Service Catalog doesn't attempt the operation in any subsequent Regions\\. \nWhen calculating the number of accounts based on the specified percentage, AWS Service Catalog rounds down to the next whole number\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nConditional: You must specify either `StackSetFailureToleranceCount` or `StackSetFailureTolerancePercentage`, but not both\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StackSetMaxConcurrencyCount": "The maximum number of accounts in which to perform this operation at one time\\. This is dependent on the value of `StackSetFailureToleranceCount`\\. `StackSetMaxConcurrentCount` is at most one more than the `StackSetFailureToleranceCount`\\. \nNote that this setting lets you specify the maximum for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nConditional: You must specify either `StackSetMaxConcurrentCount` or `StackSetMaxConcurrentPercentage`, but not both\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StackSetMaxConcurrencyPercentage": "The maximum percentage of accounts in which to perform this operation at one time\\. \nWhen calculating the number of accounts based on the specified percentage, AWS Service Catalog rounds down to the next whole number\\. This is true except in cases where rounding down would result is zero\\. In this case, AWS Service Catalog sets the number as `1` instead\\. \nNote that this setting lets you specify the maximum for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nConditional: You must specify either `StackSetMaxConcurrentCount` or `StackSetMaxConcurrentPercentage`, but not both\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StackSetOperationType": "Determines what action AWS Service Catalog performs to a stack set or a stack instance represented by the provisioned product\\. The default value is `UPDATE` if nothing is specified\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nCREATE \nCreates a new stack instance in the stack set represented by the provisioned product\\. In this case, only new stack instances are created based on accounts and Regions; if new ProductId or ProvisioningArtifactID are passed, they will be ignored\\. \nUPDATE \nUpdates the stack set represented by the provisioned product and also its stack instances\\. \nDELETE \nDeletes a stack instance in the stack set represented by the provisioned product\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `CREATE | DELETE | UPDATE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StackSetRegions": "One or more AWS Regions where the provisioned product will be available\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nThe specified Regions should be within the list of Regions from the `STACKSET` constraint\\. To get the list of Regions in the `STACKSET` constraint, use the `DescribeProvisioningParameters` operation\\. \nIf no values are specified, the default value is all Regions from the `STACKSET` constraint\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceCatalog::LaunchNotificationConstraint": { + "AcceptLanguage": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the constraint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotificationArns": "The notification ARNs\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PortfolioId": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProductId": "The product identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ServiceCatalog::LaunchRoleConstraint": { + "AcceptLanguage": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the constraint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LocalRoleName": "You are required to specify either the `RoleArn` or the `LocalRoleName` but can't use both\\. \nIf you specify the `LocalRoleName` property, when an account uses the launch constraint, the IAM role with that name in the account will be used\\. This allows launch\\-role constraints to be account\\-agnostic so the administrator can create fewer resources per shared account\\. \nThe given role name must exist in the account used to create the launch constraint and the account of the user who launches a product with this launch constraint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PortfolioId": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProductId": "The product identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RoleArn": "The ARN of the launch role\\. \nYou are required to specify `RoleArn` or `LocalRoleName` but can't use both\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceCatalog::LaunchTemplateConstraint": { + "AcceptLanguage": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the constraint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PortfolioId": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProductId": "The product identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Rules": "The constraint rules\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceCatalog::Portfolio": { + "AcceptLanguage": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the portfolio\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DisplayName": "The name to use for display purposes\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProviderName": "The name of the portfolio provider\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "One or more tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceCatalog::PortfolioPrincipalAssociation": { + "AcceptLanguage": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PortfolioId": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PrincipalARN": "The ARN of the principal \\(IAM user, role, or group\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PrincipalType": "The principal type\\. The supported value is `IAM`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `IAM` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ServiceCatalog::PortfolioProductAssociation": { + "AcceptLanguage": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PortfolioId": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProductId": "The product identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourcePortfolioId": "The identifier of the source portfolio\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ServiceCatalog::PortfolioShare": { + "AcceptLanguage": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AccountId": "The AWS account ID\\. For example, `123456789012`\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PortfolioId": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ShareTagOptions": "Indicates whether TagOptions sharing is enabled or disabled for the portfolio share\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceCatalog::ResourceUpdateConstraint": { + "AcceptLanguage": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the constraint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PortfolioId": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProductId": "The product identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TagUpdateOnProvisionedProduct": "If set to `ALLOWED`, lets users change tags in a [CloudFormationProvisionedProduct](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html) resource\\. \nIf set to `NOT_ALLOWED`, prevents users from changing tags in a [CloudFormationProvisionedProduct](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html) resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceCatalog::ServiceAction": { + "AcceptLanguage": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Definition": "A map that defines the self\\-service action\\. \n*Required*: Yes \n*Type*: List of [DefinitionParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-serviceaction-definitionparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefinitionType": "The self\\-service action definition type\\. For example, `SSM_AUTOMATION`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SSM_AUTOMATION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The self\\-service action description\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The self\\-service action name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[a-zA-Z0-9_\\-.]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceCatalog::ServiceAction DefinitionParameter": { + "Key": "The parameter key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of the parameter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceCatalog::ServiceActionAssociation": { + "ProductId": "The product identifier\\. For example, `prod-abcdzk7xy33qa`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProvisioningArtifactId": "The identifier of the provisioning artifact\\. For example, `pa-4abcdjnxjj6ne`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ServiceActionId": "The self\\-service action identifier\\. For example, `act-fs7abcd89wxyz`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ServiceCatalog::StackSetConstraint": { + "AcceptLanguage": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AccountList": "One or more AWS accounts that will have access to the provisioned product\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AdminRole": "AdminRole ARN \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the constraint\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExecutionRole": "ExecutionRole name \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PortfolioId": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProductId": "The product identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RegionList": "One or more AWS Regions where the provisioned product will be available\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nThe specified Regions should be within the list of Regions from the `STACKSET` constraint\\. To get the list of Regions in the `STACKSET` constraint, use the `DescribeProvisioningParameters` operation\\. \nIf no values are specified, the default value is all Regions from the `STACKSET` constraint\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StackInstanceControl": "Permission to create, update, and delete stack instances\\. Choose from ALLOWED and NOT\\_ALLOWED\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceCatalog::TagOption": { + "Active": "The TagOption active state\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Key": "The TagOption key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Value": "The TagOption value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ServiceCatalog::TagOptionAssociation": { + "ResourceId": "The resource identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TagOptionId": "The TagOption identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ServiceCatalogAppRegistry::Application": { + "Description": "The description of the application\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the application\\. The name must be unique in the region in which you are creating the application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[-.\\w]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Key\\-value pairs you can use to associate with the application\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceCatalogAppRegistry::AttributeGroup": { + "Attributes": "A JSON string in the form of nested key\\-value pairs that represent the attributes in the group and describes an application and its components\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the attribute group that the user provides\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the attribute group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[-.\\w]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Key\\-value pairs you can use to associate with the attribute group\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation": { + "Application": "The name or ID of the application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AttributeGroup": "The name or ID of the attribute group that holds the attributes to describe the application\\. \nFor more information about using the `Ref` function, see [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceCatalogAppRegistry::ResourceAssociation": { + "Application": "The name or ID of the application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Resource": "The name or ID of the resource of which the application will be associated\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceType": "The type of resource of which the application will be associated\\. Possible values: CFN\\_STACK\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceDiscovery::HttpNamespace": { + "Description": "A description for the namespace\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name that you want to assign to this namespace\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^[!-~]{1,1024}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags for the namespace\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: Updates are not supported\\." + }, + "AWS::ServiceDiscovery::Instance": { + "InstanceAttributes": "A string map that contains the following information for the service that you specify in `ServiceId`: \n+ The attributes that apply to the records that are defined in the service\\. \n+ For each attribute, the applicable value\\.\nSupported attribute keys include the following: \nAWS\\_ALIAS\\_DNS\\_NAME \nIf you want AWS Cloud Map to create a Route\u00a053 alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that is associated with the load balancer\\. For information about how to get the DNS name, see [AliasTarget\\->DNSName](https://docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html#Route53-Type-AliasTarget-DNSName) in the *Route\u00a053 API Reference*\\. \nNote the following: \n+ The configuration for the service that is specified by `ServiceId` must include settings for an `A` record, an `AAAA` record, or both\\.\n+ In the service that is specified by `ServiceId`, the value of `RoutingPolicy` must be `WEIGHTED`\\.\n+ If the service that is specified by `ServiceId` includes `HealthCheckConfig` settings, AWS Cloud Map will create the health check, but it won't associate the health check with the alias record\\.\n+ Auto naming currently doesn't support creating alias records that route traffic to AWS resources other than ELB load balancers\\.\n+ If you specify a value for `AWS_ALIAS_DNS_NAME`, don't specify values for any of the `AWS_INSTANCE` attributes\\. \nAWS\\_EC2\\_INSTANCE\\_ID \n*HTTP namespaces only\\.* The Amazon EC2 instance ID for the instance\\. The `AWS_INSTANCE_IPV4` attribute contains the primary private IPv4 address\\. When creating resources with a type of [AWS::ServiceDiscovery::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html), if the `AWS_EC2_INSTANCE_ID` attribute is specified, the only other attribute that can be specified is `AWS_INIT_HEALTH_STATUS`\\. After the resource has been created, the `AWS_INSTANCE_IPV4` attribute contains the primary private IPv4 address\\. \nAWS\\_INIT\\_HEALTH\\_STATUS \nIf the service configuration includes `HealthCheckCustomConfig`, when creating resources with a type of [AWS::ServiceDiscovery::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html) you can optionally use `AWS_INIT_HEALTH_STATUS` to specify the initial status of the custom health check, `HEALTHY` or `UNHEALTHY`\\. If you don't specify a value for `AWS_INIT_HEALTH_STATUS`, the initial status is `HEALTHY`\\. This attribute can only be used when creating resources and will not be seen on existing resources\\. \nAWS\\_INSTANCE\\_CNAME \nIf the service configuration includes a `CNAME` record, the domain name that you want Route\u00a053 to return in response to DNS queries, for example, `example.com`\\. \nThis value is required if the service specified by `ServiceId` includes settings for an `CNAME` record\\. \nAWS\\_INSTANCE\\_IPV4 \nIf the service configuration includes an `A` record, the IPv4 address that you want Route\u00a053 to return in response to DNS queries, for example, `192.0.2.44`\\. \nThis value is required if the service specified by `ServiceId` includes settings for an `A` record\\. If the service includes settings for an `SRV` record, you must specify a value for `AWS_INSTANCE_IPV4`, `AWS_INSTANCE_IPV6`, or both\\. \nAWS\\_INSTANCE\\_IPV6 \nIf the service configuration includes an `AAAA` record, the IPv6 address that you want Route\u00a053 to return in response to DNS queries, for example, `2001:0db8:85a3:0000:0000:abcd:0001:2345`\\. \nThis value is required if the service specified by `ServiceId` includes settings for an `AAAA` record\\. If the service includes settings for an `SRV` record, you must specify a value for `AWS_INSTANCE_IPV4`, `AWS_INSTANCE_IPV6`, or both\\. \nAWS\\_INSTANCE\\_PORT \nIf the service includes an `SRV` record, the value that you want Route\u00a053 to return for the port\\. \nIf the service includes `HealthCheckConfig`, the port on the endpoint that you want Route\u00a053 to send requests to\\. \nThis value is required if you specified settings for an `SRV` record or a Route\u00a053 health check when you created the service\\.\n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InstanceId": "An identifier that you want to associate with the instance\\. Note the following: \n+ If the service that's specified by `ServiceId` includes settings for an `SRV` record, the value of `InstanceId` is automatically included as part of the value for the `SRV` record\\. For more information, see [DnsRecord > Type](https://docs.aws.amazon.com/cloud-map/latest/api/API_DnsRecord.html#cloudmap-Type-DnsRecord-Type)\\.\n+ You can use this value to update an existing instance\\.\n+ To register a new instance, you must specify a value that's unique among instances that you register by using the same service\\. \n+ If you specify an existing `InstanceId` and `ServiceId`, AWS Cloud Map updates the existing DNS records, if any\\. If there's also an existing health check, AWS Cloud Map deletes the old health check and creates a new one\\. \n**Note** \nThe health check isn't deleted immediately, so it will still appear for a while if you submit a `ListHealthChecks` request, for example\\.\n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `^[0-9a-zA-Z_/:.@-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ServiceId": "The ID of the service that you want to use for settings for the instance\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ServiceDiscovery::PrivateDnsNamespace": { + "Description": "A description for the namespace\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name that you want to assign to this namespace\\. When you create a private DNS namespace, AWS Cloud Map automatically creates an Amazon Route\u00a053 private hosted zone that has the same name as the namespace\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^[!-~]{1,1024}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Properties": "Properties for the private DNS namespace\\. \n*Required*: No \n*Type*: [Properties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-privatednsnamespace-properties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags for the namespace\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: Updates are not supported\\.", + "Vpc": "The ID of the Amazon VPC that you want to associate the namespace with\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ServiceDiscovery::PrivateDnsNamespace PrivateDnsPropertiesMutable": { + "SOA": "Fields for the Start of Authority \\(SOA\\) record for the hosted zone for the private DNS namespace\\. \n*Required*: No \n*Type*: [SOA](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-privatednsnamespace-soa.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceDiscovery::PrivateDnsNamespace Properties": { + "DnsProperties": "DNS properties for the private DNS namespace\\. \n*Required*: No \n*Type*: [PrivateDnsPropertiesMutable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-privatednsnamespace-privatednspropertiesmutable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceDiscovery::PrivateDnsNamespace SOA": { + "TTL": "The time to live \\(TTL\\) for purposes of negative caching\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceDiscovery::PublicDnsNamespace": { + "Description": "A description for the namespace\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name that you want to assign to this namespace\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Properties": "Properties for the public DNS namespace\\. \n*Required*: No \n*Type*: [Properties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-publicdnsnamespace-properties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags for the namespace\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: Updates are not supported\\." + }, + "AWS::ServiceDiscovery::PublicDnsNamespace Properties": { + "DnsProperties": "DNS properties for the public DNS namespace\\. \n*Required*: No \n*Type*: [PublicDnsPropertiesMutable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-publicdnsnamespace-publicdnspropertiesmutable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceDiscovery::PublicDnsNamespace PublicDnsPropertiesMutable": { + "SOA": "Start of Authority \\(SOA\\) record for the hosted zone for the public DNS namespace\\. \n*Required*: No \n*Type*: [SOA](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-publicdnsnamespace-soa.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceDiscovery::PublicDnsNamespace SOA": { + "TTL": "The time to live \\(TTL\\) for purposes of negative caching\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceDiscovery::Service": { + "Description": "The description of the service\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DnsConfig": "A complex type that contains information about the Route\u00a053 DNS records that you want AWS Cloud Map to create when you register an instance\\. \n*Required*: No \n*Type*: [DnsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthCheckConfig": "*Public DNS and HTTP namespaces only\\.* A complex type that contains settings for an optional health check\\. If you specify settings for a health check, AWS Cloud Map associates the health check with the records that you specify in `DnsConfig`\\. \nFor information about the charges for health checks, see [Amazon Route\u00a053 Pricing](http://aws.amazon.com/route53/pricing/)\\. \n*Required*: No \n*Type*: [HealthCheckConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-healthcheckconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthCheckCustomConfig": "A complex type that contains information about an optional custom health check\\. \nIf you specify a health check configuration, you can specify either `HealthCheckCustomConfig` or `HealthCheckConfig` but not both\\.\n*Required*: No \n*Type*: [HealthCheckCustomConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-healthcheckcustomconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the service\\. \n*Required*: No \n*Type*: String \n*Pattern*: `((?=^.{1,127}$)^([a-zA-Z0-9_][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9_]|[a-zA-Z0-9])(\\.([a-zA-Z0-9_][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9_]|[a-zA-Z0-9]))*$)|(^\\.$)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NamespaceId": "The ID of the namespace that was used to create the service\\. \nYou must specify a value for `NamespaceId` either for the service properties or for [DnsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsconfig.html)\\. Don't specify a value in both places\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags for the service\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: Updates are not supported\\.", + "Type": "If present, specifies that the service instances are only discoverable using the `DiscoverInstances` API operation\\. No DNS records is registered for the service instances\\. The only valid value is `HTTP`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `HTTP` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::ServiceDiscovery::Service DnsConfig": { + "DnsRecords": "An array that contains one `DnsRecord` object for each Route\u00a053 DNS record that you want AWS Cloud Map to create when you register an instance\\. \n*Required*: Yes \n*Type*: List of [DnsRecord](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsrecord.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NamespaceId": "The ID of the namespace to use for DNS configuration\\. \nYou must specify a value for `NamespaceId` either for `DnsConfig` or for the [service properties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-service.html)\\. Don't specify a value in both places\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RoutingPolicy": "The routing policy that you want to apply to all Route\u00a053 DNS records that AWS Cloud Map creates when you register an instance and specify this service\\. \nIf you want to use this service to register instances that create alias records, specify `WEIGHTED` for the routing policy\\.\nYou can specify the following values: \nMULTIVALUE \nIf you define a health check for the service and the health check is healthy, Route\u00a053 returns the applicable value for up to eight instances\\. \nFor example, suppose that the service includes configurations for one `A` record and a health check\\. You use the service to register 10 instances\\. Route\u00a053 responds to DNS queries with IP addresses for up to eight healthy instances\\. If fewer than eight instances are healthy, Route\u00a053 responds to every DNS query with the IP addresses for all of the healthy instances\\. \nIf you don't define a health check for the service, Route\u00a053 assumes that all instances are healthy and returns the values for up to eight instances\\. \nFor more information about the multivalue routing policy, see [Multivalue Answer Routing](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-multivalue) in the *Route\u00a053 Developer Guide*\\. \nWEIGHTED \nRoute\u00a053 returns the applicable value from one randomly selected instance from among the instances that you registered using the same service\\. Currently, all records have the same weight, so you can't route more or less traffic to any instances\\. \nFor example, suppose that the service includes configurations for one `A` record and a health check\\. You use the service to register 10 instances\\. Route\u00a053 responds to DNS queries with the IP address for one randomly selected instance from among the healthy instances\\. If no instances are healthy, Route\u00a053 responds to DNS queries as if all of the instances were healthy\\. \nIf you don't define a health check for the service, Route\u00a053 assumes that all instances are healthy and returns the applicable value for one randomly selected instance\\. \nFor more information about the weighted routing policy, see [Weighted Routing](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-weighted) in the *Route\u00a053 Developer Guide*\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `MULTIVALUE | WEIGHTED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::ServiceDiscovery::Service DnsRecord": { + "TTL": "The amount of time, in seconds, that you want DNS resolvers to cache the settings for this record\\. \nAlias records don't include a TTL because Route\u00a053 uses the TTL for the AWS resource that an alias record routes traffic to\\. If you include the `AWS_ALIAS_DNS_NAME` attribute when you submit a [RegisterInstance](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html) request, the `TTL` value is ignored\\. Always specify a TTL for the service; you can use a service to register instances that create either alias or non\\-alias records\\.\n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of the resource, which indicates the type of value that Route 53 returns in response to DNS queries\\. You can specify values for `Type` in the following combinations: \n+ `A`\n+ `AAAA`\n+ `A` and `AAAA`\n+ `SRV`\n+ `CNAME`\nIf you want AWS Cloud Map to create a Route 53 alias record when you register an instance, specify `A` or `AAAA` for `Type`\\. \nYou specify other settings, such as the IP address for `A` and `AAAA` records, when you register an instance\\. For more information, see [RegisterInstance](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html)\\. \nThe following values are supported: \nA \nRoute 53 returns the IP address of the resource in IPv4 format, such as 192\\.0\\.2\\.44\\. \nAAAA \nRoute 53 returns the IP address of the resource in IPv6 format, such as 2001:0db8:85a3:0000:0000:abcd:0001:2345\\. \nCNAME \nRoute 53 returns the domain name of the resource, such as www\\.example\\.com\\. Note the following: \n+ You specify the domain name that you want to route traffic to when you register an instance\\. For more information, see [Attributes](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html#cloudmap-RegisterInstance-request-Attributes) in the topic [RegisterInstance](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html)\\.\n+ You must specify `WEIGHTED` for the value of `RoutingPolicy`\\.\n+ You can't specify both `CNAME` for `Type` and settings for `HealthCheckConfig`\\. If you do, the request will fail with an `InvalidInput` error\\. \nSRV \nRoute 53 returns the value for an `SRV` record\\. The value for an `SRV` record uses the following values: \n`priority weight port service-hostname` \nNote the following about the values: \n+ The values of `priority` and `weight` are both set to `1` and can't be changed\\. \n+ The value of `port` comes from the value that you specify for the `AWS_INSTANCE_PORT` attribute when you submit a [RegisterInstance](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html) request\\. \n+ The value of `service-hostname` is a concatenation of the following values:\n + The value that you specify for `InstanceId` when you register an instance\\.\n + The name of the service\\.\n + The name of the namespace\\." + }, + "AWS::ServiceDiscovery::Service HealthCheckConfig": { + "FailureThreshold": "The number of consecutive health checks that an endpoint must pass or fail for Route\u00a053 to change the current status of the endpoint from unhealthy to healthy or the other way around\\. For more information, see [How Route\u00a053 Determines Whether an Endpoint Is Healthy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html) in the *Route\u00a053 Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourcePath": "The path that you want Route\u00a053 to request when performing health checks\\. The path can be any value that your endpoint returns an HTTP status code of a 2xx or 3xx format for when the endpoint is healthy\\. An example file is `/docs/route53-health-check.html`\\. Route\u00a053 automatically adds the DNS name for the service\\. If you don't specify a value for `ResourcePath`, the default value is `/`\\. \nIf you specify `TCP` for `Type`, you must *not* specify a value for `ResourcePath`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of health check that you want to create, which indicates how Route\u00a053 determines whether an endpoint is healthy\\. \nYou can't change the value of `Type` after you create a health check\\.\nYou can create the following types of health checks: \n+ **HTTP**: Route\u00a053 tries to establish a TCP connection\\. If successful, Route\u00a053 submits an HTTP request and waits for an HTTP status code of 200 or greater and less than 400\\.\n+ **HTTPS**: Route\u00a053 tries to establish a TCP connection\\. If successful, Route\u00a053 submits an HTTPS request and waits for an HTTP status code of 200 or greater and less than 400\\.\n**Important** \nIf you specify HTTPS for the value of `Type`, the endpoint must support TLS v1\\.0 or later\\.\n+ **TCP**: Route\u00a053 tries to establish a TCP connection\\." + }, + "AWS::ServiceDiscovery::Service HealthCheckCustomConfig": { + "FailureThreshold": "This parameter is no longer supported and is always set to 1\\. AWS Cloud Map waits for approximately 30 seconds after receiving an `UpdateInstanceCustomHealthStatus` request before changing the status of the service instance\\.\nThe number of 30\\-second intervals that you want AWS Cloud Map to wait after receiving an `UpdateInstanceCustomHealthStatus` request before it changes the health status of a service instance\\. \nSending a second or subsequent `UpdateInstanceCustomHealthStatus` request with the same value before 30 seconds has passed doesn't accelerate the change\\. AWS Cloud Map still waits `30` seconds after the first request to make the change\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Signer::ProfilePermission": { + "Action": "The AWS Signer action permitted as part of cross\\-account permissions\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Principal": "The AWS principal receiving cross\\-account permissions\\. This may be an IAM role or another AWS account ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProfileName": "The human\\-readable name of the signing profile\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProfileVersion": "The version of the signing profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StatementId": "A unique identifier for the cross\\-account permission statement\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Signer::SigningProfile": { + "PlatformId": "The ID of a platform that is available for use by a signing profile\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SignatureValidityPeriod": "The validity period override for any signature generated using this signing profile\\. If unspecified, the default is 135 months\\. \n*Required*: No \n*Type*: [SignatureValidityPeriod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-signer-signingprofile-signaturevalidityperiod.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A list of tags associated with the signing profile\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Signer::SigningProfile SignatureValidityPeriod": { + "Type": "The time unit for signature validity: DAYS \\| MONTHS \\| YEARS\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Value": "The numerical value of the time unit for signature validity\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::StepFunctions::Activity": { + "Name": "The name of the activity\\. \nA name must *not* contain: \n+ white space\n+ brackets `< > { } [ ]` \n+ wildcard characters `? *` \n+ special characters `\" # % \\ ^ | ~ ` $ & , ; : /` \n+ control characters \\(`U+0000-001F`, `U+007F-009F`\\)\nTo enable logging with CloudWatch Logs, the name should only contain 0\\-9, A\\-Z, a\\-z, \\- and \\_\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The list of tags to add to a resource\\. \nTags may only contain Unicode letters, digits, white space, or these symbols: `_ . : / = + - @`\\. \n*Required*: No \n*Type*: List of [TagsEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-activity-tagsentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::StepFunctions::Activity TagsEntry": { + "Key": "The `key` for a key\\-value pair in a tag entry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The `value` for a key\\-value pair in a tag entry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::StepFunctions::StateMachine": { + "Definition": "The Amazon States Language definition of the state machine\\. The state machine definition must be in JSON or YAML, and the format of the object must match the format of your AWS Step Functions template file\\. See [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)\\. \n*Required*: No \n*Type*: [Definition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-definition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefinitionS3Location": "The name of the S3 bucket where the state machine definition is stored\\. The state machine definition must be a JSON or YAML file\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefinitionString": "The Amazon States Language definition of the state machine\\. The state machine definition must be in JSON\\. See [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefinitionSubstitutions": "A map \\(string to string\\) that specifies the mappings for placeholder variables in the state machine definition\\. This enables the customer to inject values obtained at runtime, for example from intrinsic functions, in the state machine definition\\. Variables can be template parameter names, resource logical IDs, resource attributes, or a variable in a key\\-value map\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoggingConfiguration": "Defines what execution history events are logged and where they are logged\\. \nBy default, the `level` is set to `OFF`\\. For more information see [Log Levels](https://docs.aws.amazon.com/step-functions/latest/dg/cloudwatch-log-level.html) in the AWS Step Functions User Guide\\.\n*Required*: No \n*Type*: [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-loggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM role to use for this state machine\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StateMachineName": "The name of the state machine\\. \nA name must *not* contain: \n+ white space\n+ brackets `< > { } [ ]` \n+ wildcard characters `? *` \n+ special characters `\" # % \\ ^ | ~ ` $ & , ; : /` \n+ control characters \\(`U+0000-001F`, `U+007F-009F`\\)\nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "StateMachineType": "Determines whether a `STANDARD` or `EXPRESS` state machine is created\\. The default is `STANDARD`\\. You cannot update the `type` of a state machine once it has been created\\. For more information on `STANDARD` and `EXPRESS` workflows, see [Standard Versus Express Workflows](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html) in the AWS Step Functions Developer Guide\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The list of tags to add to a resource\\. \nTags may only contain Unicode letters, digits, white space, or these symbols: `_ . : / = + - @`\\. \n*Required*: No \n*Type*: List of [TagsEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-tagsentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TracingConfiguration": "Selects whether or not the state machine's AWS X\\-Ray tracing is enabled\\. \n*Required*: No \n*Type*: [TracingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-tracingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::StepFunctions::StateMachine CloudWatchLogsLogGroup": { + "LogGroupArn": "The ARN of the the CloudWatch log group to which you want your logs emitted to\\. The ARN must end with `:*` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::StepFunctions::StateMachine LogDestination": { + "CloudWatchLogsLogGroup": "An object describing a CloudWatch log group\\. For more information, see [AWS::Logs::LogGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html) in the AWS CloudFormation User Guide\\. \n*Required*: No \n*Type*: [CloudWatchLogsLogGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-cloudwatchlogsloggroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::StepFunctions::StateMachine LoggingConfiguration": { + "Destinations": "An array of objects that describes where your execution history events will be logged\\. Limited to size 1\\. Required, if your log level is not set to `OFF`\\. \n*Required*: No \n*Type*: List of [LogDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-logdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludeExecutionData": "Determines whether execution data is included in your log\\. When set to `false`, data is excluded\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Level": "Defines which category of execution history events are logged\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::StepFunctions::StateMachine S3Location": { + "Bucket": "The name of the S3 bucket where the state machine definition JSON or YAML file is stored\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Key": "The name of the state machine definition file \\(Amazon S3 object name\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "For versioning\\-enabled buckets, a specific version of the state machine definition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::StepFunctions::StateMachine TagsEntry": { + "Key": "The `key` for a key\\-value pair in a tag entry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The `value` for a key\\-value pair in a tag entry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::StepFunctions::StateMachine TracingConfiguration": { + "Enabled": "When set to `true`, X\\-Ray tracing is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Synthetics::Canary": { + "ArtifactConfig": "A structure that contains the configuration for canary artifacts, including the encryption\\-at\\-rest settings for artifacts that the canary uploads to Amazon S3\\. \n*Required*: No \n*Type*: [ArtifactConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-artifactconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ArtifactS3Location": "The location in Amazon S3 where Synthetics stores artifacts from the runs of this canary\\. Artifacts include the log file, screenshots, and HAR files\\. Specify the full location path, including `s3://` at the beginning of the path\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Code": "Use this structure to input your script code for the canary\\. This structure contains the Lambda handler with the location where the canary should start running the script\\. If the script is stored in an S3 bucket, the bucket name, key, and version are also included\\. If the script is passed into the canary directly, the script code is contained in the value of `Script`\\. \n*Required*: Yes \n*Type*: [Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-code.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExecutionRoleArn": "The ARN of the IAM role to be used to run the canary\\. This role must already exist, and must include `lambda.amazonaws.com` as a principal in the trust policy\\. The role must also have the following permissions: \n+ `s3:PutObject` \n+ `s3:GetBucketLocation` \n+ `s3:ListAllMyBuckets` \n+ `cloudwatch:PutMetricData` \n+ `logs:CreateLogGroup` \n+ `logs:CreateLogStream` \n+ `logs:PutLogEvents` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FailureRetentionPeriod": "The number of days to retain data about failed runs of this canary\\. If you omit this field, the default of 31 days is used\\. The valid range is 1 to 455 days\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name for this canary\\. Be sure to give it a descriptive name that distinguishes it from other canaries in your account\\. \nDo not include secrets or proprietary information in your canary names\\. The canary name makes up part of the canary ARN, and the ARN is included in outbound calls over the internet\\. For more information, see [Security Considerations for Synthetics Canaries](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/servicelens_canaries_security.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `21` \n*Pattern*: `^[0-9a-z_\\-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RunConfig": "A structure that contains input information for a canary run\\. If you omit this structure, the frequency of the canary is used as canary's timeout value, up to a maximum of 900 seconds\\. \n*Required*: No \n*Type*: [RunConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-runconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuntimeVersion": "Specifies the runtime version to use for the canary\\. For more information about runtime versions, see [ Canary Runtime Versions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Schedule": "A structure that contains information about how often the canary is to run, and when these runs are to stop\\. \n*Required*: Yes \n*Type*: [Schedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-schedule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StartCanaryAfterCreation": "Specify TRUE to have the canary start making runs immediately after it is created\\. \nA canary that you create using CloudFormation can't be used to monitor the CloudFormation stack that creates the canary or to roll back that stack if there is a failure\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SuccessRetentionPeriod": "The number of days to retain data about successful runs of this canary\\. If you omit this field, the default of 31 days is used\\. The valid range is 1 to 455 days\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The list of key\\-value pairs that are associated with the canary\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VPCConfig": "If this canary is to test an endpoint in a VPC, this structure contains information about the subnet and security groups of the VPC endpoint\\. For more information, see [ Running a Canary in a VPC](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_VPC.html)\\. \n*Required*: No \n*Type*: [VPCConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-vpcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VisualReference": "If this canary performs visual monitoring by comparing screenshots, this structure contains the ID of the canary run to use as the baseline for screenshots, and the coordinates of any parts of the screen to ignore during the visual monitoring comparison\\. \n*Required*: No \n*Type*: [VisualReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-visualreference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Synthetics::Canary ArtifactConfig": { + "S3Encryption": "A structure that contains the configuration of the encryption\\-at\\-rest settings for artifacts that the canary uploads to Amazon S3\\. Artifact encryption functionality is available only for canaries that use Synthetics runtime version syn\\-nodejs\\-puppeteer\\-3\\.3 or later\\. For more information, see [Encrypting canary artifacts](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_artifact_encryption.html)\\. \n*Required*: No \n*Type*: [S3Encryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-s3encryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Synthetics::Canary BaseScreenshot": { + "IgnoreCoordinates": "Coordinates that define the part of a screen to ignore during screenshot comparisons\\. To obtain the coordinates to use here, use the CloudWatch Logs console to draw the boundaries on the screen\\. For more information, see \\{LINK\\} \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScreenshotName": "The name of the screenshot\\. This is generated the first time the canary is run after the `UpdateCanary` operation that specified for this canary to perform visual monitoring\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Synthetics::Canary Code": { + "Handler": "The entry point to use for the source code when running the canary\\. For canaries that use the `syn-python-selenium-1.0` runtime or a `syn-nodejs.puppeteer` runtime earlier than `syn-nodejs.puppeteer-3.4`, the handler must be specified as ` fileName.handler`\\. For `syn-python-selenium-1.1`, `syn-nodejs.puppeteer-3.4`, and later runtimes, the handler can be specified as ` fileName.functionName `, or you can specify a folder where canary scripts reside as ` folder/fileName.functionName `\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^([0-9a-zA-Z_-]+\\/)*[0-9A-Za-z_\\\\-]+\\.[A-Za-z_][A-Za-z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Bucket": "If your canary script is located in S3, specify the bucket name here\\. The bucket must already exist\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Key": "The S3 key of your script\\. For more information, see [Working with Amazon S3 Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingObjects.html)\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3ObjectVersion": "The S3 version ID of your script\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Script": "If you input your canary script directly into the canary instead of referring to an S3 location, the value of this parameter is the script in plain text\\. It can be up to 5 MB\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Synthetics::Canary RunConfig": { + "ActiveTracing": "Specifies whether this canary is to use active AWS X\\-Ray tracing when it runs\\. Active tracing enables this canary run to be displayed in the ServiceLens and X\\-Ray service maps even if the canary does not hit an endpoint that has X\\-Ray tracing enabled\\. Using X\\-Ray tracing incurs charges\\. For more information, see [Canaries and X\\-Ray tracing](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_tracing.html)\\. \n You can enable active tracing only for canaries that use version `syn-nodejs-2.0` or later for their canary runtime\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EnvironmentVariables": "Specifies the keys and values to use for any environment variables used in the canary script\\. Use the following format: \n\\{ \"key1\" : \"value1\", \"key2\" : \"value2\", \\.\\.\\.\\} \nKeys must start with a letter and be at least two characters\\. The total size of your environment variables cannot exceed 4 KB\\. You can't specify any Lambda reserved environment variables as the keys for your environment variables\\. For more information about reserved keys, see [ Runtime environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime)\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MemoryInMB": "The maximum amount of memory that the canary can use while running\\. This value must be a multiple of 64\\. The range is 960 to 3008\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `960` \n*Maximum*: `3008` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TimeoutInSeconds": "How long the canary is allowed to run before it must stop\\. You can't set this time to be longer than the frequency of the runs of this canary\\. \nIf you omit this field, the frequency of the canary is used as this value, up to a maximum of 900 seconds\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `3` \n*Maximum*: `840` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Synthetics::Canary S3Encryption": { + "EncryptionMode": "The encryption method to use for artifacts created by this canary\\. Specify `SSE_S3` to use server\\-side encryption \\(SSE\\) with an Amazon S3\\-managed key\\. Specify `SSE-KMS` to use server\\-side encryption with a customer\\-managed AWS KMS key\\. \nIf you omit this parameter, an AWS\\-managed AWS KMS key is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "KmsKeyArn": "The ARN of the customer\\-managed AWS KMS key to use, if you specify `SSE-KMS` for `EncryptionMode` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Synthetics::Canary Schedule": { + "DurationInSeconds": "How long, in seconds, for the canary to continue making regular runs according to the schedule in the `Expression` value\\. If you specify 0, the canary continues making runs until you stop it\\. If you omit this field, the default of 0 is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Expression": "A `rate` https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/expression.html or a `cron` https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/expression.html that defines how often the canary is to run\\. \nFor a rate https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/expression.html, The syntax is `rate(number unit)`\\. *unit* can be `minute`, `minutes`, or `hour`\\. \nFor example, `rate(1 minute)` runs the canary once a minute, `rate(10 minutes)` runs it once every 10 minutes, and `rate(1 hour)` runs it once every hour\\. You can specify a frequency between `rate(1 minute)` and `rate(1 hour)`\\. \nSpecifying `rate(0 minute)` or `rate(0 hour)` is a special value that causes the canary to run only once when it is started\\. \nUse `cron(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/expression.html)` to specify a cron https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/expression.html\\. You can't schedule a canary to wait for more than a year before running\\. For information about the syntax for cron https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/expression.htmls, see [ Scheduling canary runs using cron](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_cron.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Synthetics::Canary VPCConfig": { + "SecurityGroupIds": "The IDs of the security groups for this canary\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetIds": "The IDs of the subnets where this canary is to run\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `16` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcId": "The ID of the VPC where this canary is to run\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Synthetics::Canary VisualReference": { + "BaseCanaryRunId": "Specifies which canary run to use the screenshots from as the baseline for future visual monitoring with this canary\\. Valid values are `nextrun` to use the screenshots from the next run after this update is made, `lastrun` to use the screenshots from the most recent run before this update was made, or the value of `Id` in the [ CanaryRun](https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_CanaryRun.html) from any past run of this canary\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BaseScreenshots": "An array of screenshots that are used as the baseline for comparisons during visual monitoring\\. \n*Required*: No \n*Type*: List of [BaseScreenshot](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-basescreenshot.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Timestream::Database": { + "DatabaseName": "The name of the Timestream database\\. \n*Length Constraints*: Minimum length of 3 bytes\\. Maximum length of 256 bytes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KmsKeyId": "The identifier of the AWS KMS key used to encrypt the data stored in the database\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags to add to the database\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Timestream::ScheduledQuery": { + "ClientToken": "Using a ClientToken makes the call to CreateScheduledQuery idempotent, in other words, making the same request repeatedly will produce the same result\\. Making multiple identical CreateScheduledQuery requests has the same effect as making a single request\\. \n+ If CreateScheduledQuery is called without a `ClientToken`, the Query SDK generates a `ClientToken` on your behalf\\.\n+ After 8 hours, any request with the same `ClientToken` is treated as a new request\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ErrorReportConfiguration": "Configuration for error reporting\\. Error reports will be generated when a problem is encountered when writing the query results\\. \n*Required*: Yes \n*Type*: [ErrorReportConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-errorreportconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KmsKeyId": "The Amazon KMS key used to encrypt the scheduled query resource, at\\-rest\\. If the Amazon KMS key is not specified, the scheduled query resource will be encrypted with a Timestream owned Amazon KMS key\\. To specify a KMS key, use the key ID, key ARN, alias name, or alias ARN\\. When using an alias name, prefix the name with *alias/* \nIf ErrorReportConfiguration uses `SSE_KMS` as encryption type, the same KmsKeyId is used to encrypt the error report at rest\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "NotificationConfiguration": "Notification configuration for the scheduled query\\. A notification is sent by Timestream when a query run finishes, when the state is updated or when you delete it\\. \n*Required*: Yes \n*Type*: [NotificationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-notificationconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "QueryString": "The query string to run\\. Parameter names can be specified in the query string `@` character followed by an identifier\\. The named Parameter `@scheduled_runtime` is reserved and can be used in the query to get the time at which the query is scheduled to run\\. \nThe timestamp calculated according to the ScheduleConfiguration parameter, will be the value of `@scheduled_runtime` paramater for each query run\\. For example, consider an instance of a scheduled query executing on 2021\\-12\\-01 00:00:00\\. For this instance, the `@scheduled_runtime` parameter is initialized to the timestamp 2021\\-12\\-01 00:00:00 when invoking the query\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ScheduleConfiguration": "Schedule configuration\\. \n*Required*: Yes \n*Type*: [ScheduleConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-scheduleconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ScheduledQueryExecutionRoleArn": "The ARN for the IAM role that Timestream will assume when running the scheduled query\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ScheduledQueryName": "A name for the query\\. Scheduled query names must be unique within each Region\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "A list of key\\-value pairs to label the scheduled query\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetConfiguration": "Scheduled query target store configuration\\. \n*Required*: No \n*Type*: [TargetConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-targetconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Timestream::ScheduledQuery DimensionMapping": { + "DimensionValueType": "Type for the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "Column name from query result\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Timestream::ScheduledQuery ErrorReportConfiguration": { + "S3Configuration": "The S3 configuration for the error reports\\. \n*Required*: Yes \n*Type*: [S3Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-s3configuration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Timestream::ScheduledQuery MixedMeasureMapping": { + "MeasureName": "Refers to the value of measure\\_name in a result row\\. This field is required if MeasureNameColumn is provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MeasureValueType": "Type of the value that is to be read from sourceColumn\\. If the mapping is for MULTI, use MeasureValueType\\.MULTI\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MultiMeasureAttributeMappings": "Required when measureValueType is MULTI\\. Attribute mappings for MULTI value measures\\. \n*Required*: No \n*Type*: List of [MultiMeasureAttributeMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-multimeasureattributemapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceColumn": "This field refers to the source column from which measure\\-value is to be read for result materialization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TargetMeasureName": "Target measure name to be used\\. If not provided, the target measure name by default would be measure\\-name if provided, or sourceColumn otherwise\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Timestream::ScheduledQuery MultiMeasureAttributeMapping": { + "MeasureValueType": "Type of the attribute to be read from the source column\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceColumn": "Source column from where the attribute value is to be read\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TargetMultiMeasureAttributeName": "Custom name to be used for attribute name in derived table\\. If not provided, source column name would be used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Timestream::ScheduledQuery MultiMeasureMappings": { + "MultiMeasureAttributeMappings": "Required\\. Attribute mappings to be used for mapping query results to ingest data for multi\\-measure attributes\\. \n*Required*: Yes \n*Type*: List of [MultiMeasureAttributeMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-multimeasureattributemapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TargetMultiMeasureName": "The name of the target multi\\-measure name in the derived table\\. This input is required when measureNameColumn is not provided\\. If MeasureNameColumn is provided, then value from that column will be used as multi\\-measure name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Timestream::ScheduledQuery NotificationConfiguration": { + "SnsConfiguration": "Details on SNS configuration\\. \n*Required*: Yes \n*Type*: [SnsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-snsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Timestream::ScheduledQuery S3Configuration": { + "BucketName": "Name of the S3 bucket under which error reports will be created\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EncryptionOption": "Encryption at rest options for the error reports\\. If no encryption option is specified, Timestream will choose SSE\\_S3 as default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `SSE_KMS | SSE_S3` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ObjectKeyPrefix": "Prefix for the error report key\\. Timestream by default adds the following prefix to the error report path\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `928` \n*Pattern*: `[a-zA-Z0-9|!\\-_*'\\(\\)]([a-zA-Z0-9]|[!\\-_*'\\(\\)\\/.])+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Timestream::ScheduledQuery ScheduleConfiguration": { + "ScheduleExpression": "An expression that denotes when to trigger the scheduled query run\\. This can be a cron expression or a rate expression\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Timestream::ScheduledQuery SnsConfiguration": { + "TopicArn": "SNS topic ARN that the scheduled query status notifications will be sent to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Timestream::ScheduledQuery TargetConfiguration": { + "TimestreamConfiguration": "Configuration needed to write data into the Timestream database and table\\. \n*Required*: Yes \n*Type*: [TimestreamConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-timestreamconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Timestream::ScheduledQuery TimestreamConfiguration": { + "DatabaseName": "Name of Timestream database to which the query result will be written\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DimensionMappings": "This is to allow mapping column\\(s\\) from the query result to the dimension in the destination table\\. \n*Required*: Yes \n*Type*: List of [DimensionMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-dimensionmapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MeasureNameColumn": "Name of the measure column\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MixedMeasureMappings": "Specifies how to map measures to multi\\-measure records\\. \n*Required*: No \n*Type*: List of [MixedMeasureMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-mixedmeasuremapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MultiMeasureMappings": "Multi\\-measure mappings\\. \n*Required*: No \n*Type*: [MultiMeasureMappings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-multimeasuremappings.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TableName": "Name of Timestream table that the query result will be written to\\. The table should be within the same database that is provided in Timestream configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TimeColumn": "Column from query result that should be used as the time column in destination table\\. Column type for this should be TIMESTAMP\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Timestream::Table": { + "DatabaseName": "The name of the Timestream database that contains this table\\. \n*Length Constraints*: Minimum length of 3 bytes\\. Maximum length of 256 bytes\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MagneticStoreWriteProperties": "Contains properties to set on the table when enabling magnetic store writes\\. \nThis object has the following attributes: \n+ *EnableMagneticStoreWrites*: A `boolean` flag to enable magnetic store writes\\.\n+ *MagneticStoreRejectedDataLocation*: The location to write error reports for records rejected, asynchronously, during magnetic store writes\\. Only `S3Configuration` objects are allowed\\. The `S3Configuration` object has the following attributes: \n + *BucketName*: The name of the S3 bucket\\.\n + *EncryptionOption*: The encryption option for the S3 location\\. Valid values are S3 server\\-side encryption with an S3 managed key \\(`SSE_S3`\\) or AWS managed key \\(` SSE_KMS`\\)\\.\n + *KmsKeyId*: The AWS KMS key ID to use when encrypting with an AWS managed key\\.\n + *ObjectKeyPrefix*: The prefix to use option for the objects stored in S3\\.", + "RetentionProperties": "The retention duration for the memory store and magnetic store\\. This object has the following attributes: \n+ *MemoryStoreRetentionPeriodInHours*: Retention duration for memory store, in hours\\.\n+ *MagneticStoreRetentionPeriodInDays*: Retention duration for magnetic store, in days\\.\nBoth attributes are of type `string`\\. Both attributes are **required** when `RetentionProperties` is specified\\. \nSee the following examples: \n**JSON**", + "TableName": "The name of the Timestream table\\. \n*Length Constraints*: Minimum length of 3 bytes\\. Maximum length of 256 bytes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags to add to the table \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Transfer::Server": { + "Certificate": "The Amazon Resource Name \\(ARN\\) of the AWS Certificate Manager \\(ACM\\) certificate\\. Required when `Protocols` is set to `FTPS`\\. \nTo request a new public certificate, see [Request a public certificate](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html) in the * AWS Certificate Manager User Guide*\\. \nTo import an existing certificate into ACM, see [Importing certificates into ACM](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html) in the * AWS Certificate Manager User Guide*\\. \nTo request a private certificate to use FTPS through private IP addresses, see [Request a private certificate](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html) in the * AWS Certificate Manager User Guide*\\. \nCertificates with the following cryptographic algorithms and key sizes are supported: \n+ 2048\\-bit RSA \\(RSA\\_2048\\)\n+ 4096\\-bit RSA \\(RSA\\_4096\\)\n+ Elliptic Prime Curve 256 bit \\(EC\\_prime256v1\\)\n+ Elliptic Prime Curve 384 bit \\(EC\\_secp384r1\\)\n+ Elliptic Prime Curve 521 bit \\(EC\\_secp521r1\\)\nThe certificate must be a valid SSL/TLS X\\.509 version 3 certificate with FQDN or IP address specified and information about the issuer\\.\n*Required*: No \n*Type*: String \n*Maximum*: `1600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Domain": "Specifies the domain of the storage system that is used for file transfers\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `EFS | S3` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EndpointDetails": "The virtual private cloud \\(VPC\\) endpoint settings that are configured for your server\\. When you host your endpoint within your VPC, you can make it accessible only to resources within your VPC, or you can attach Elastic IP addresses and make it accessible to clients over the internet\\. Your VPC's default security groups are automatically assigned to your endpoint\\. \n*Required*: No \n*Type*: [EndpointDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-endpointdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "EndpointType": "The type of endpoint that you want your server to use\\. You can choose to make your server's endpoint publicly accessible \\(PUBLIC\\) or host it inside your VPC\\. With an endpoint that is hosted in a VPC, you can restrict access to your server and resources only within your VPC or choose to make it internet facing by attaching Elastic IP addresses directly to it\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PUBLIC | VPC | VPC_ENDPOINT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IdentityProviderDetails": "Required when `IdentityProviderType` is set to `AWS_DIRECTORY_SERVICE` or `API_GATEWAY`\\. Accepts an array containing all of the information required to use a directory in `AWS_DIRECTORY_SERVICE` or invoke a customer\\-supplied authentication API, including the API Gateway URL\\. Not required when `IdentityProviderType` is set to `SERVICE_MANAGED`\\. \n*Required*: No \n*Type*: [IdentityProviderDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-identityproviderdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IdentityProviderType": "Specifies the mode of authentication for a server\\. The default value is `SERVICE_MANAGED`, which allows you to store and access user credentials within the AWS Transfer Family service\\. \nUse `AWS_DIRECTORY_SERVICE` to provide access to Active Directory groups in AWS Managed Active Directory or Microsoft Active Directory in your on\\-premises environment or in AWS using AD Connectors\\. This option also requires you to provide a Directory ID using the `IdentityProviderDetails` parameter\\. \nUse the `API_GATEWAY` value to integrate with an identity provider of your choosing\\. The `API_GATEWAY` setting requires you to provide an API Gateway endpoint URL to call for authentication using the `IdentityProviderDetails` parameter\\. \nUse the `AWS_LAMBDA` value to directly use a Lambda function as your identity provider\\. If you choose this value, you must specify the ARN for the lambda function in the `Function` parameter for the `IdentityProviderDetails` data type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `API_GATEWAY | AWS_DIRECTORY_SERVICE | AWS_LAMBDA | SERVICE_MANAGED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LoggingRole": "Specifies the Amazon Resource Name \\(ARN\\) of the AWS Identity and Access Management \\(IAM\\) role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events\\. When set, user activity can be viewed in your CloudWatch logs\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:.*role/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PostAuthenticationLoginBanner": "Specify a string to display when users connect to a server\\. This string is displayed after the user authenticates\\. \nThe SFTP protocol does not support post\\-authentication display banners\\.\n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[\\x09-\\x0D\\x20-\\x7E]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PreAuthenticationLoginBanner": "Specify a string to display when users connect to a server\\. This string is displayed before the user authenticates\\. For example, the following banner displays details about using the system\\. \n `This system is for the use of authorized users only. Individuals using this computer system without authority, or in excess of their authority, are subject to having all of their activities on this system monitored and recorded by system personnel.` \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[\\x09-\\x0D\\x20-\\x7E]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProtocolDetails": "The protocol settings that are configured for your server\\. \n Use the `PassiveIp` parameter to indicate passive mode \\(for FTP and FTPS protocols\\)\\. Enter a single dotted\\-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer\\. \nUse the `TlsSessionResumptionMode` parameter to determine whether or not your Transfer server resumes recent, negotiated sessions through a unique session ID\\. \n*Required*: No \n*Type*: [ProtocolDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-protocoldetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Protocols": "Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint\\. The available protocols are: \n+ `SFTP` \\(Secure Shell \\(SSH\\) File Transfer Protocol\\): File transfer over SSH\n+ `FTPS` \\(File Transfer Protocol Secure\\): File transfer with TLS encryption\n+ `FTP` \\(File Transfer Protocol\\): Unencrypted file transfer\nIf you select `FTPS`, you must choose a certificate stored in AWS Certificate Manager \\(ACM\\) which is used to identify your server when clients connect to it over FTPS\\. \nIf `Protocol` includes either `FTP` or `FTPS`, then the `EndpointType` must be `VPC` and the `IdentityProviderType` must be `AWS_DIRECTORY_SERVICE` or `API_GATEWAY`\\. \nIf `Protocol` includes `FTP`, then `AddressAllocationIds` cannot be associated\\. \nIf `Protocol` is set only to `SFTP`, the `EndpointType` can be set to `PUBLIC` and the `IdentityProviderType` can be set to `SERVICE_MANAGED`\\.\n*Required*: No \n*Type*: List of [Protocol](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-protocol.html) \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecurityPolicyName": "Specifies the name of the security policy that is attached to the server\\. \n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Pattern*: `TransferSecurityPolicy-.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Key\\-value pairs that can be used to group and search for servers\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WorkflowDetails": "Specifies the workflow ID for the workflow to assign and the execution role used for executing the workflow\\. \n*Required*: No \n*Type*: [WorkflowDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-workflowdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Transfer::Server EndpointDetails": { + "AddressAllocationIds": "A list of address allocation IDs that are required to attach an Elastic IP address to your server's endpoint\\. \nThis property can only be set when `EndpointType` is set to `VPC` and it is only valid in the `UpdateServer` API\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "SecurityGroupIds": "A list of security groups IDs that are available to attach to your server's endpoint\\. \nThis property can only be set when `EndpointType` is set to `VPC`\\. \nYou can edit the `SecurityGroupIds` property in the [UpdateServer](https://docs.aws.amazon.com/transfer/latest/userguide/API_UpdateServer.html) API only if you are changing the `EndpointType` from `PUBLIC` or `VPC_ENDPOINT` to `VPC`\\. To change security groups associated with your server's VPC endpoint after creation, use the Amazon EC2 [ModifyVpcEndpoint](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpoint.html) API\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetIds": "A list of subnet IDs that are required to host your server endpoint in your VPC\\. \nThis property can only be set when `EndpointType` is set to `VPC`\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcEndpointId": "The ID of the VPC endpoint\\. \nThis property can only be set when `EndpointType` is set to `VPC_ENDPOINT`\\.\n*Required*: No \n*Type*: String \n*Minimum*: `22` \n*Maximum*: `22` \n*Pattern*: `^vpce-[0-9a-f]{17}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VpcId": "The VPC ID of the virtual private cloud in which the server's endpoint will be hosted\\. \nThis property can only be set when `EndpointType` is set to `VPC`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Transfer::Server IdentityProviderDetails": { + "DirectoryId": "The identifier of the AWS Directory Service directory that you want to stop sharing\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^d-[0-9a-f]{10}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Function": "The ARN for a lambda function to use for the Identity provider\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `170` \n*Pattern*: `^arn:[a-z-]+:lambda:.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InvocationRole": "Provides the type of `InvocationRole` used to authenticate the user account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:.*role/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Url": "Provides the location of the service endpoint used to authenticate users\\. \n*Required*: No \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Transfer::Server ProtocolDetails": { + "PassiveIp": "Indicates passive mode, for FTP and FTPS protocols\\. Enter a single dotted\\-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TlsSessionResumptionMode": "A property used with Transfer servers that use the FTPS protocol\\. TLS Session Resumption provides a mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS session\\. `TlsSessionResumptionMode` determines whether or not the server resumes recent, negotiated sessions through a unique session ID\\. This property is available during `CreateServer` and `UpdateServer` calls\\. If a `TlsSessionResumptionMode` value is not specified during CreateServer, it is set to `ENFORCED` by default\\. \n+ `DISABLED`: the server does not process TLS session resumption client requests and creates a new TLS session for each request\\. \n+ `ENABLED`: the server processes and accepts clients that are performing TLS session resumption\\. The server doesn't reject client data connections that do not perform the TLS session resumption client processing\\.\n+ `ENFORCED`: the server processes and accepts clients that are performing TLS session resumption\\. The server rejects client data connections that do not perform the TLS session resumption client processing\\. Before you set the value to `ENFORCED`, test your clients\\.\n**Note** \nNot all FTPS clients perform TLS session resumption\\. So, if you choose to enforce TLS session resumption, you prevent any connections from FTPS clients that don't perform the protocol negotiation\\. To determine whether or not you can use the `ENFORCED` value, you need to test your clients\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED | ENFORCED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Transfer::Server WorkflowDetail": { + "ExecutionRole": "Includes the necessary permissions for S3, EFS, and Lambda operations that Transfer can assume, so that all workflow steps can operate on the required resources \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:.*role/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "WorkflowId": "A unique identifier for the workflow\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `19` \n*Maximum*: `19` \n*Pattern*: `^w-([a-z0-9]{17})$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Transfer::Server WorkflowDetails": { + "OnUpload": "A trigger that starts a workflow: the workflow begins to execute after a file is uploaded\\. \nTo remove an associated workflow from a server, you can provide an empty `OnUpload` object, as in the following example\\. \n `aws transfer update-server --server-id s-01234567890abcdef --workflow-details '{\"OnUpload\":[]}'` \n*Required*: Yes \n*Type*: List of [WorkflowDetail](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-workflowdetail.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Transfer::User": { + "HomeDirectory": "The landing directory \\(folder\\) for a user when they log in to the server using the client\\. \nA `HomeDirectory` example is `/bucket_name/home/mydirectory`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^$|/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HomeDirectoryMappings": "Logical directory mappings that specify what Amazon S3 paths and keys should be visible to your user and how you want to make them visible\\. You will need to specify the \"`Entry`\" and \"`Target`\" pair, where `Entry` shows how the path is made visible and `Target` is the actual Amazon S3 path\\. If you only specify a target, it will be displayed as is\\. You will need to also make sure that your IAM role provides access to paths in `Target`\\. The following is an example\\. \n `'[ { \"Entry\": \"/\", \"Target\": \"/bucket3/customized-reports/\" } ]'` \nIn most cases, you can use this value instead of the session policy to lock your user down to the designated home directory \\(\"chroot\"\\)\\. To do this, you can set `Entry` to '/' and set `Target` to the HomeDirectory parameter value\\. \nIf the target of a logical directory entry does not exist in Amazon S3, the entry will be ignored\\. As a workaround, you can use the Amazon S3 API to create 0 byte objects as place holders for your directory\\. If using the CLI, use the `s3api` call instead of `s3` so you can use the put\\-object operation\\. For example, you use the following: `AWS s3api put-object --bucket bucketname --key path/to/folder/`\\. Make sure that the end of the key name ends in a '/' for it to be considered a folder\\.\n*Required*: No \n*Type*: List of [HomeDirectoryMapEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-user-homedirectorymapentry.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HomeDirectoryType": "The type of landing directory \\(folder\\) you want your users' home directory to be when they log into the server\\. If you set it to `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients\\. If you set it `LOGICAL`, you need to provide mappings in the `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS paths visible to your users\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `LOGICAL | PATH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Policy": "A session policy for your user so you can use the same IAM role across multiple users\\. This policy restricts user access to portions of their Amazon S3 bucket\\. Variables that you can use inside this policy include `${Transfer:UserName}`, `${Transfer:HomeDirectory}`, and `${Transfer:HomeBucket}`\\. \nFor session policies, AWS Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name \\(ARN\\) of the policy\\. You save the policy as a JSON blob and pass it in the `Policy` argument\\. \nFor an example of a session policy, see [Example session policy](https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html)\\. \nFor more information, see [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) in the *AWS Security Token Service API Reference*\\.\n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PosixProfile": "Specifies the full POSIX identity, including user ID \\(`Uid`\\), group ID \\(`Gid`\\), and any secondary groups IDs \\(`SecondaryGids`\\), that controls your users' access to your Amazon Elastic File System \\(Amazon EFS\\) file systems\\. The POSIX permissions that are set on files and directories in your file system determine the level of access your users get when transferring files into and out of your Amazon EFS file systems\\. \n*Required*: No \n*Type*: [PosixProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-user-posixprofile.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Role": "Specifies the Amazon Resource Name \\(ARN\\) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS file system\\. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or EFS file system\\. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:.*role/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServerId": "A system\\-assigned unique identifier for a server instance\\. This is the specific server that you added your user to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `19` \n*Maximum*: `19` \n*Pattern*: `^s-([0-9a-f]{17})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SshPublicKeys": "Specifies the public key portion of the Secure Shell \\(SSH\\) keys stored for the described user\\. \n*Required*: No \n*Type*: List of [SshPublicKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-user-sshpublickey.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "Key\\-value pairs that can be used to group and search for users\\. Tags are metadata attached to users for any purpose\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserName": "A unique string that identifies a user and is associated with a `ServerId`\\. This user name must be a minimum of 3 and a maximum of 100 characters long\\. The following are valid characters: a\\-z, A\\-Z, 0\\-9, underscore '\\_', hyphen '\\-', period '\\.', and at sign '@'\\. The user name can't start with a hyphen, period, or at sign\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `100` \n*Pattern*: `^[\\w][\\w@.-]{2,99}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Transfer::User HomeDirectoryMapEntry": { + "Entry": "Represents an entry for `HomeDirectoryMappings`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Target": "Represents the map target that is used in a `HomeDirectorymapEntry`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Transfer::User PosixProfile": { + "Gid": "The POSIX group ID used for all EFS operations by this user\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecondaryGids": "The secondary POSIX group IDs used for all EFS operations by this user\\. \n*Required*: No \n*Type*: List of Double \n*Maximum*: `16` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Uid": "The POSIX user ID used for all EFS operations by this user\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Transfer::Workflow": { + "Description": "Specifies the text description for the workflow\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^[\\w- ]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "OnExceptionSteps": "Specifies the steps \\(actions\\) to take if errors are encountered during execution of the workflow\\. \n*Required*: No \n*Type*: List of [WorkflowStep](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-workflow-workflowstep.html) \n*Maximum*: `8` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Steps": "Specifies the details for the steps that are in the specified workflow\\. \n*Required*: Yes \n*Type*: List of [WorkflowStep](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-workflow-workflowstep.html) \n*Maximum*: `8` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Key\\-value pairs that can be used to group and search for workflows\\. Tags are metadata attached to workflows for any purpose\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Transfer::Workflow WorkflowStep": { + "CopyStepDetails": "Details for a step that performs a file copy\\. \n Consists of the following values: \n+ A description\n+ An S3 location for the destination of the file copy\\.\n+ A flag that indicates whether or not to overwrite an existing file of the same name\\. The default is `FALSE`\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "CustomStepDetails": "Details for a step that invokes a lambda function\\. \n Consists of the lambda function name, target, and timeout \\(in seconds\\)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DeleteStepDetails": "Details for a step that deletes the file\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TagStepDetails": "Details for a step that creates one or more tags\\. \nYou specify one or more tags: each tag contains a key/value pair\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "Currently, the following step types are supported\\. \n+ *Copy*: copy the file to another location\n+ *Custom*: custom step with a lambda target\n+ *Delete*: delete the file\n+ *Tag*: add a tag to the file\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::WAF::ByteMatchSet": { + "ByteMatchTuples": "Specifies the bytes \\(typically a string that corresponds with ASCII characters\\) that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings\\. \n*Required*: No \n*Type*: List of [ByteMatchTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the `ByteMatchSet`\\. You can't change `Name` after you create a `ByteMatchSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::WAF::ByteMatchSet ByteMatchTuple": { + "FieldToMatch": "The part of a web request that you want to inspect, such as a specified header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PositionalConstraint": "Within the portion of a web request that you want to search \\(for example, in the query string, if any\\), specify where you want AWS WAF to search\\. Valid values include the following: \n **CONTAINS** \nThe specified part of the web request must include the value of `TargetString`, but the location doesn't matter\\. \n **CONTAINS\\_WORD** \nThe specified part of the web request must include the value of `TargetString`, and `TargetString` must contain only alphanumeric characters or underscore \\(A\\-Z, a\\-z, 0\\-9, or \\_\\)\\. In addition, `TargetString` must be a word, which means one of the following: \n+ `TargetString` exactly matches the value of the specified part of the web request, such as the value of a header\\.\n+ `TargetString` is at the beginning of the specified part of the web request and is followed by a character other than an alphanumeric character or underscore \\(\\_\\), for example, `BadBot;`\\.\n+ `TargetString` is at the end of the specified part of the web request and is preceded by a character other than an alphanumeric character or underscore \\(\\_\\), for example, `;BadBot`\\.\n+ `TargetString` is in the middle of the specified part of the web request and is preceded and followed by characters other than alphanumeric characters or underscore \\(\\_\\), for example, `-BadBot;`\\.\n **EXACTLY** \nThe value of the specified part of the web request must exactly match the value of `TargetString`\\. \n **STARTS\\_WITH** \nThe value of `TargetString` must appear at the beginning of the specified part of the web request\\. \n **ENDS\\_WITH** \nThe value of `TargetString` must appear at the end of the specified part of the web request\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CONTAINS | CONTAINS_WORD | ENDS_WITH | EXACTLY | STARTS_WITH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetString": "The value that you want AWS WAF to search for\\. AWS WAF searches for the specified string in the part of web requests that you specified in `FieldToMatch`\\. The maximum length of the value is 50 bytes\\. \nYou must specify this property or the `TargetStringBase64` property\\. \nValid values depend on the values that you specified for `FieldToMatch`: \n+ `HEADER`: The value that you want AWS WAF to search for in the request header that you specified in `FieldToMatch`, for example, the value of the `User-Agent` or `Referer` header\\.\n+ `METHOD`: The HTTP method, which indicates the type of operation specified in the request\\. Amazon CloudFront supports the following methods: `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, and `PUT`\\.\n+ `QUERY_STRING`: The value that you want AWS WAF to search for in the query string, which is the part of a URL that appears after a `?` character\\.\n+ `URI`: The value that you want AWS WAF to search for in the part of a URL that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but instead of inspecting a single parameter, AWS WAF inspects all parameters within the query string for the value or regex pattern that you specify in `TargetString`\\.\nIf `TargetString` includes alphabetic characters A\\-Z and a\\-z, note that the value is case sensitive\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetStringBase64": "The base64\\-encoded value that AWS WAF searches for\\. AWS CloudFormation sends this value to AWS WAF without encoding it\\. \nYou must specify this property or the `TargetString` property\\. \nAWS WAF searches for this value in a specific part of web requests, which you define in the `FieldToMatch` property\\. \nValid values depend on the Type value in the `FieldToMatch` property\\. For example, for a `METHOD` type, you must specify HTTP methods such as `DELETE, GET, HEAD, OPTIONS, PATCH, POST`, and `PUT`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextTransformation": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting it for a match\\. \nYou can only specify a single type of TextTransformation\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAF::ByteMatchSet FieldToMatch": { + "Data": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicated the type of operation that the request is asking the origin to perform\\. Amazon CloudFront supports the following methods: `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, and `PUT`\\.\n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\.\n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAF::IPSet": { + "IPSetDescriptors": "The IP address type \\(`IPV4` or `IPV6`\\) and the IP address range \\(in CIDR notation\\) that web requests originate from\\. If the `WebACL` is associated with an Amazon CloudFront distribution and the viewer did not use an HTTP proxy or a load balancer to send the request, this is the value of the c\\-ip field in the CloudFront access logs\\. \n*Required*: No \n*Type*: List of [IPSetDescriptor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-ipset-ipsetdescriptors.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the `IPSet`\\. You can't change the name of an `IPSet` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::WAF::IPSet IPSetDescriptor": { + "Type": "Specify `IPV4` or `IPV6`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `IPV4 | IPV6` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "Specify an IPv4 address by using CIDR notation\\. For example: \n+ To configure AWS WAF to allow, block, or count requests that originated from the IP address 192\\.0\\.2\\.44, specify `192.0.2.44/32`\\.\n+ To configure AWS WAF to allow, block, or count requests that originated from IP addresses from 192\\.0\\.2\\.0 to 192\\.0\\.2\\.255, specify `192.0.2.0/24`\\.\nFor more information about CIDR notation, see the Wikipedia entry [Classless Inter\\-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\\. \nSpecify an IPv6 address by using CIDR notation\\. For example: \n+ To configure AWS WAF to allow, block, or count requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify `1111:0000:0000:0000:0000:0000:0000:0111/128`\\.\n+ To configure AWS WAF to allow, block, or count requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify `1111:0000:0000:0000:0000:0000:0000:0000/64`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAF::Rule": { + "MetricName": "The name of the metrics for this `Rule`\\. The name can contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\), with maximum length 128 and minimum length one\\. It can't contain whitespace or metric names reserved for AWS WAF, including \"All\" and \"Default\\_Action\\.\" You can't change `MetricName` after you create the `Rule`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The friendly name or description for the `Rule`\\. You can't change the name of a `Rule` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Predicates": "The `Predicates` object contains one `Predicate` element for each `ByteMatchSet`, `IPSet`, or `SqlInjectionMatchSet` object that you want to include in a `Rule`\\. \n*Required*: No \n*Type*: List of [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-rule-predicates.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAF::Rule Predicate": { + "DataId": "A unique identifier for a predicate in a `Rule`, such as `ByteMatchSetId` or `IPSetId`\\. The ID is returned by the corresponding `Create` or `List` command\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Negated": "Set `Negated` to `False` if you want AWS WAF to allow, block, or count requests based on the settings in the specified `ByteMatchSet`, `IPSet`, `SqlInjectionMatchSet`, `XssMatchSet`, `RegexMatchSet`, `GeoMatchSet`, or `SizeConstraintSet`\\. For example, if an `IPSet` includes the IP address `192.0.2.44`, AWS WAF will allow or block requests based on that IP address\\. \nSet `Negated` to `True` if you want AWS WAF to allow or block a request based on the negation of the settings in the `ByteMatchSet`, `IPSet`, `SqlInjectionMatchSet`, `XssMatchSet`, `RegexMatchSet`, `GeoMatchSet`, or `SizeConstraintSet`\\. For example, if an `IPSet` includes the IP address `192.0.2.44`, AWS WAF will allow, block, or count requests based on all IP addresses *except* `192.0.2.44`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of predicate in a `Rule`, such as `ByteMatch` or `IPSet`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ByteMatch | GeoMatch | IPMatch | RegexMatch | SizeConstraint | SqlInjectionMatch | XssMatch` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAF::SizeConstraintSet": { + "Name": "The name, if any, of the `SizeConstraintSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SizeConstraints": "The size constraint and the part of the web request to check\\. \n*Required*: Yes \n*Type*: List of [SizeConstraint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAF::SizeConstraintSet FieldToMatch": { + "Data": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicated the type of operation that the request is asking the origin to perform\\. Amazon CloudFront supports the following methods: `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, and `PUT`\\.\n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAF::SizeConstraintSet SizeConstraint": { + "ComparisonOperator": "The type of comparison you want AWS WAF to perform\\. AWS WAF uses this in combination with the provided `Size` and `FieldToMatch` to build an expression in the form of \"`Size` `ComparisonOperator` size in bytes of `FieldToMatch`\"\\. If that expression is true, the `SizeConstraint` is considered to match\\. \n **EQ**: Used to test if the `Size` is equal to the size of the `FieldToMatch` \n **NE**: Used to test if the `Size` is not equal to the size of the `FieldToMatch` \n **LE**: Used to test if the `Size` is less than or equal to the size of the `FieldToMatch` \n **LT**: Used to test if the `Size` is strictly less than the size of the `FieldToMatch` \n **GE**: Used to test if the `Size` is greater than or equal to the size of the `FieldToMatch` \n **GT**: Used to test if the `Size` is strictly greater than the size of the `FieldToMatch` \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EQ | GE | GT | LE | LT | NE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FieldToMatch": "The part of a web request that you want to inspect, such as a specified header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Size": "The size in bytes that you want AWS WAF to compare against the size of the specified `FieldToMatch`\\. AWS WAF uses this in combination with `ComparisonOperator` and `FieldToMatch` to build an expression in the form of \"`Size` `ComparisonOperator` size in bytes of `FieldToMatch`\"\\. If that expression is true, the `SizeConstraint` is considered to match\\. \nValid values for size are 0 \\- 21474836480 bytes \\(0 \\- 20 GB\\)\\. \nIf you specify `URI` for the value of `Type`, the / in the URI path that you specify counts as one character\\. For example, the URI `/logo.jpg` is nine characters long\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextTransformation": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting it for a match\\. \nYou can only specify a single type of TextTransformation\\. \nNote that if you choose `BODY` for the value of `Type`, you must choose `NONE` for `TextTransformation` because Amazon CloudFront forwards only the first 8192 bytes for inspection\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAF::SqlInjectionMatchSet": { + "Name": "The name, if any, of the `SqlInjectionMatchSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SqlInjectionMatchTuples": "Specifies the parts of web requests that you want to inspect for snippets of malicious SQL code\\. \n*Required*: No \n*Type*: List of [SqlInjectionMatchTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sqlinjectionmatchset-sqlinjectionmatchtuples.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAF::SqlInjectionMatchSet FieldToMatch": { + "Data": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicated the type of operation that the request is asking the origin to perform\\. Amazon CloudFront supports the following methods: `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, and `PUT`\\.\n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAF::SqlInjectionMatchSet SqlInjectionMatchTuple": { + "FieldToMatch": "The part of a web request that you want to inspect, such as a specified header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples-fieldtomatch-1.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextTransformation": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting it for a match\\. \nYou can only specify a single type of TextTransformation\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAF::WebACL": { + "DefaultAction": "The action to perform if none of the `Rules` contained in the `WebACL` match\\. The action is specified by the `WafAction` object\\. \n*Required*: Yes \n*Type*: [WafAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-webacl-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricName": "The name of the metrics for this `WebACL`\\. The name can contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\), with maximum length 128 and minimum length one\\. It can't contain whitespace or metric names reserved for AWS WAF, including \"All\" and \"Default\\_Action\\.\" You can't change `MetricName` after you create the `WebACL`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "A friendly name or description of the `WebACL`\\. You can't change the name of a `WebACL` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Rules": "An array that contains the action for each `Rule` in a `WebACL`, the priority of the `Rule`, and the ID of the `Rule`\\. \n*Required*: No \n*Type*: List of [ActivatedRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-webacl-rules.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAF::WebACL ActivatedRule": { + "Action": "Specifies the action that Amazon CloudFront or AWS WAF takes when a web request matches the conditions in the `Rule`\\. Valid values for `Action` include the following: \n+ `ALLOW`: CloudFront responds with the requested object\\.\n+ `BLOCK`: CloudFront responds with an HTTP 403 \\(Forbidden\\) status code\\.\n+ `COUNT`: AWS WAF increments a counter of requests that match the conditions in the rule and then continues to inspect the web request based on the remaining rules in the web ACL\\. \n `ActivatedRule|OverrideAction` applies only when updating or adding a `RuleGroup` to a `WebACL`\\. In this case, you do not use `ActivatedRule|Action`\\. For all other update requests, `ActivatedRule|Action` is used instead of `ActivatedRule|OverrideAction`\\. \n*Required*: No \n*Type*: [WafAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-webacl-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Priority": "Specifies the order in which the `Rules` in a `WebACL` are evaluated\\. Rules with a lower value for `Priority` are evaluated before `Rules` with a higher value\\. The value must be a unique integer\\. If you add multiple `Rules` to a `WebACL`, the values don't need to be consecutive\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleId": "The `RuleId` for a `Rule`\\. You use `RuleId` to get more information about a `Rule`, update a `Rule`, insert a `Rule` into a `WebACL` or delete a one from a `WebACL`, or delete a `Rule` from AWS WAF\\. \n `RuleId` is returned by `CreateRule` and by `ListRules`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAF::WebACL WafAction": { + "Type": "Specifies how you want AWS WAF to respond to requests that match the settings in a `Rule`\\. Valid settings include the following: \n+ `ALLOW`: AWS WAF allows requests\n+ `BLOCK`: AWS WAF blocks requests\n+ `COUNT`: AWS WAF increments a counter of the requests that match all of the conditions in the rule\\. AWS WAF then continues to inspect the web request based on the remaining rules in the web ACL\\. You can't specify `COUNT` for the default action for a `WebACL`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALLOW | BLOCK | COUNT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAF::XssMatchSet": { + "Name": "The name, if any, of the `XssMatchSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "XssMatchTuples": "Specifies the parts of web requests that you want to inspect for cross\\-site scripting attacks\\. \n*Required*: Yes \n*Type*: List of [XssMatchTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-xssmatchset-xssmatchtuple.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAF::XssMatchSet FieldToMatch": { + "Data": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicated the type of operation that the request is asking the origin to perform\\. Amazon CloudFront supports the following methods: `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, and `PUT`\\.\n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAF::XssMatchSet XssMatchTuple": { + "FieldToMatch": "The part of a web request that you want to inspect, such as a specified header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-xssmatchset-xssmatchtuple-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextTransformation": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting it for a match\\. \nYou can only specify a single type of TextTransformation\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFRegional::ByteMatchSet": { + "ByteMatchTuples": "Specifies the bytes \\(typically a string that corresponds with ASCII characters\\) that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings\\. \n*Required*: No \n*Type*: List of [ByteMatchTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-bytematchset-bytematchtuple.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A friendly name or description of the `ByteMatchSet`\\. You can't change `Name` after you create a `ByteMatchSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::WAFRegional::ByteMatchSet ByteMatchTuple": { + "FieldToMatch": "The part of a web request that you want AWS WAF to inspect, such as a specific header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-bytematchset-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PositionalConstraint": "Within the portion of a web request that you want to search \\(for example, in the query string, if any\\), specify where you want AWS WAF to search\\. Valid values include the following: \n **CONTAINS** \nThe specified part of the web request must include the value of `TargetString`, but the location doesn't matter\\. \n **CONTAINS\\_WORD** \nThe specified part of the web request must include the value of `TargetString`, and `TargetString` must contain only alphanumeric characters or underscore \\(A\\-Z, a\\-z, 0\\-9, or \\_\\)\\. In addition, `TargetString` must be a word, which means one of the following: \n+ `TargetString` exactly matches the value of the specified part of the web request, such as the value of a header\\.\n+ `TargetString` is at the beginning of the specified part of the web request and is followed by a character other than an alphanumeric character or underscore \\(\\_\\), for example, `BadBot;`\\.\n+ `TargetString` is at the end of the specified part of the web request and is preceded by a character other than an alphanumeric character or underscore \\(\\_\\), for example, `;BadBot`\\.\n+ `TargetString` is in the middle of the specified part of the web request and is preceded and followed by characters other than alphanumeric characters or underscore \\(\\_\\), for example, `-BadBot;`\\.\n **EXACTLY** \nThe value of the specified part of the web request must exactly match the value of `TargetString`\\. \n **STARTS\\_WITH** \nThe value of `TargetString` must appear at the beginning of the specified part of the web request\\. \n **ENDS\\_WITH** \nThe value of `TargetString` must appear at the end of the specified part of the web request\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CONTAINS | CONTAINS_WORD | ENDS_WITH | EXACTLY | STARTS_WITH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetString": "The value that you want AWS WAF to search for\\. AWS WAF searches for the specified string in the part of web requests that you specified in `FieldToMatch`\\. The maximum length of the value is 50 bytes\\. \nYou must specify this property or the `TargetStringBase64` property\\. \nValid values depend on the values that you specified for `FieldToMatch`: \n+ `HEADER`: The value that you want AWS WAF to search for in the request header that you specified in `FieldToMatch`, for example, the value of the `User-Agent` or `Referer` header\\.\n+ `METHOD`: The HTTP method, which indicates the type of operation specified in the request\\. \n+ `QUERY_STRING`: The value that you want AWS WAF to search for in the query string, which is the part of a URL that appears after a `?` character\\.\n+ `URI`: The value that you want AWS WAF to search for in the part of a URL that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but instead of inspecting a single parameter, AWS WAF inspects all parameters within the query string for the value or regex pattern that you specify in `TargetString`\\.\nIf `TargetString` includes alphabetic characters A\\-Z and a\\-z, note that the value is case sensitive\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TargetStringBase64": "The base64\\-encoded value that AWS WAF searches for\\. AWS CloudFormation sends this value to AWS WAF without encoding it\\. \nYou must specify this property or the `TargetString` property\\. \nAWS WAF searches for this value in a specific part of web requests, which you define in the `FieldToMatch` property\\. \nValid values depend on the Type value in the `FieldToMatch` property\\. For example, for a `METHOD` type, you must specify HTTP methods such as `DELETE, GET, HEAD, OPTIONS, PATCH, POST`, and `PUT`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextTransformation": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting it for a match\\. \nYou can only specify a single type of TextTransformation\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFRegional::ByteMatchSet FieldToMatch": { + "Data": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicated the type of operation that the request is asking the origin to perform\\. \n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\.\n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFRegional::GeoMatchSet": { + "GeoMatchConstraints": "An array of `GeoMatchConstraint` objects, which contain the country that you want AWS WAF to search for\\. \n*Required*: No \n*Type*: List of [GeoMatchConstraint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-geomatchset-geomatchconstraint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A friendly name or description of the [AWS::WAFRegional::GeoMatchSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-resource-wafregional-geomatchset.html#aws-resource-wafregional-geomatchset)\\. You can't change the name of an `GeoMatchSet` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::WAFRegional::GeoMatchSet GeoMatchConstraint": { + "Type": "The type of geographical area you want AWS WAF to search for\\. Currently `Country` is the only valid value\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Country` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The country that you want AWS WAF to search for\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AD | AE | AF | AG | AI | AL | AM | AO | AQ | AR | AS | AT | AU | AW | AX | AZ | BA | BB | BD | BE | BF | BG | BH | BI | BJ | BL | BM | BN | BO | BQ | BR | BS | BT | BV | BW | BY | BZ | CA | CC | CD | CF | CG | CH | CI | CK | CL | CM | CN | CO | CR | CU | CV | CW | CX | CY | CZ | DE | DJ | DK | DM | DO | DZ | EC | EE | EG | EH | ER | ES | ET | FI | FJ | FK | FM | FO | FR | GA | GB | GD | GE | GF | GG | GH | GI | GL | GM | GN | GP | GQ | GR | GS | GT | GU | GW | GY | HK | HM | HN | HR | HT | HU | ID | IE | IL | IM | IN | IO | IQ | IR | IS | IT | JE | JM | JO | JP | KE | KG | KH | KI | KM | KN | KP | KR | KW | KY | KZ | LA | LB | LC | LI | LK | LR | LS | LT | LU | LV | LY | MA | MC | MD | ME | MF | MG | MH | MK | ML | MM | MN | MO | MP | MQ | MR | MS | MT | MU | MV | MW | MX | MY | MZ | NA | NC | NE | NF | NG | NI | NL | NO | NP | NR | NU | NZ | OM | PA | PE | PF | PG | PH | PK | PL | PM | PN | PR | PS | PT | PW | PY | QA | RE | RO | RS | RU | RW | SA | SB | SC | SD | SE | SG | SH | SI | SJ | SK | SL | SM | SN | SO | SR | SS | ST | SV | SX | SY | SZ | TC | TD | TF | TG | TH | TJ | TK | TL | TM | TN | TO | TR | TT | TV | TW | TZ | UA | UG | UM | US | UY | UZ | VA | VC | VE | VG | VI | VN | VU | WF | WS | YE | YT | ZA | ZM | ZW` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFRegional::IPSet": { + "IPSetDescriptors": "The IP address type \\(`IPV4` or `IPV6`\\) and the IP address range \\(in CIDR notation\\) that web requests originate from\\. \n*Required*: No \n*Type*: List of [IPSetDescriptor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-ipset-ipsetdescriptor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "A friendly name or description of the `IPSet`\\. You can't change the name of an `IPSet` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::WAFRegional::IPSet IPSetDescriptor": { + "Type": "Specify `IPV4` or `IPV6`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `IPV4 | IPV6` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "Specify an IPv4 address by using CIDR notation\\. For example: \n+ To configure AWS WAF to allow, block, or count requests that originated from the IP address 192\\.0\\.2\\.44, specify `192.0.2.44/32`\\.\n+ To configure AWS WAF to allow, block, or count requests that originated from IP addresses from 192\\.0\\.2\\.0 to 192\\.0\\.2\\.255, specify `192.0.2.0/24`\\.\nFor more information about CIDR notation, see the Wikipedia entry [Classless Inter\\-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\\. \nSpecify an IPv6 address by using CIDR notation\\. For example: \n+ To configure AWS WAF to allow, block, or count requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify `1111:0000:0000:0000:0000:0000:0000:0111/128`\\.\n+ To configure AWS WAF to allow, block, or count requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify `1111:0000:0000:0000:0000:0000:0000:0000/64`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFRegional::RateBasedRule": { + "MatchPredicates": "The `Predicates` object contains one `Predicate` element for each `ByteMatchSet`, `IPSet`, or `SqlInjectionMatchSet>` object that you want to include in a `RateBasedRule`\\. \n*Required*: No \n*Type*: List of [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-ratebasedrule-predicate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricName": "A name for the metrics for a `RateBasedRule`\\. The name can contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\), with maximum length 128 and minimum length one\\. It can't contain whitespace or metric names reserved for AWS WAF, including \"All\" and \"Default\\_Action\\.\" You can't change the name of the metric after you create the `RateBasedRule`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "A friendly name or description for a `RateBasedRule`\\. You can't change the name of a `RateBasedRule` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RateKey": "The field that AWS WAF uses to determine if requests are likely arriving from single source and thus subject to rate monitoring\\. The only valid value for `RateKey` is `IP`\\. `IP` indicates that requests arriving from the same IP address are subject to the `RateLimit` that is specified in the `RateBasedRule`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `IP` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RateLimit": "The maximum number of requests, which have an identical value in the field specified by the `RateKey`, allowed in a five\\-minute period\\. If the number of requests exceeds the `RateLimit` and the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFRegional::RateBasedRule Predicate": { + "DataId": "A unique identifier for a predicate in a `Rule`, such as `ByteMatchSetId` or `IPSetId`\\. The ID is returned by the corresponding `Create` or `List` command\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Negated": "Set `Negated` to `False` if you want AWS WAF to allow, block, or count requests based on the settings in the specified `ByteMatchSet`, `IPSet`, `SqlInjectionMatchSet`, `XssMatchSet`, `RegexMatchSet`, `GeoMatchSet`, or `SizeConstraintSet`\\. For example, if an `IPSet` includes the IP address `192.0.2.44`, AWS WAF will allow or block requests based on that IP address\\. \nSet `Negated` to `True` if you want AWS WAF to allow or block a request based on the negation of the settings in the `ByteMatchSet`, `IPSet`, `SqlInjectionMatchSet`, `XssMatchSet`, `RegexMatchSet`, `GeoMatchSet`, or `SizeConstraintSet`>\\. For example, if an `IPSet` includes the IP address `192.0.2.44`, AWS WAF will allow, block, or count requests based on all IP addresses *except* `192.0.2.44`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of predicate in a `Rule`, such as `ByteMatch` or `IPSet`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ByteMatch | GeoMatch | IPMatch | RegexMatch | SizeConstraint | SqlInjectionMatch | XssMatch` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFRegional::RegexPatternSet": { + "Name": "A friendly name or description of the [AWS::WAFRegional::RegexPatternSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-resource-wafregional-regexpatternset.html#aws-resource-wafregional-regexpatternset)\\. You can't change `Name` after you create a `RegexPatternSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RegexPatternStrings": "Specifies the regular expression \\(regex\\) patterns that you want AWS WAF to search for, such as `B[a@]dB[o0]t`\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFRegional::Rule": { + "MetricName": "A name for the metrics for this `Rule`\\. The name can contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\), with maximum length 128 and minimum length one\\. It can't contain whitespace or metric names reserved for AWS WAF, including \"All\" and \"Default\\_Action\\.\" You can't change `MetricName` after you create the `Rule`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The friendly name or description for the `Rule`\\. You can't change the name of a `Rule` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Predicates": "The `Predicates` object contains one `Predicate` element for each `ByteMatchSet`, `IPSet`, or `SqlInjectionMatchSet` object that you want to include in a `Rule`\\. \n*Required*: No \n*Type*: List of [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-rule-predicate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFRegional::Rule Predicate": { + "DataId": "A unique identifier for a predicate in a `Rule`, such as `ByteMatchSetId` or `IPSetId`\\. The ID is returned by the corresponding `Create` or `List` command\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Negated": "Set `Negated` to `False` if you want AWS WAF to allow, block, or count requests based on the settings in the specified `ByteMatchSet`, `IPSet`, `SqlInjectionMatchSet`, `XssMatchSet`, `RegexMatchSet`, `GeoMatchSet`, or `SizeConstraintSet`\\. For example, if an `IPSet` includes the IP address `192.0.2.44`, AWS WAF will allow or block requests based on that IP address\\. \nSet `Negated` to `True` if you want AWS WAF to allow or block a request based on the negation of the settings in the `ByteMatchSet`, `IPSet`, `SqlInjectionMatchSet`, `XssMatchSet`, `RegexMatchSet`, `GeoMatchSet`, or `SizeConstraintSet`\\. For example, if an `IPSet` includes the IP address `192.0.2.44`, AWS WAF will allow, block, or count requests based on all IP addresses *except* `192.0.2.44`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The type of predicate in a `Rule`, such as `ByteMatch` or `IPSet`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ByteMatch | GeoMatch | IPMatch | RegexMatch | SizeConstraint | SqlInjectionMatch | XssMatch` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFRegional::SizeConstraintSet": { + "Name": "The name, if any, of the `SizeConstraintSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SizeConstraints": "The size constraint and the part of the web request to check\\. \n*Required*: No \n*Type*: List of [SizeConstraint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sizeconstraintset-sizeconstraint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFRegional::SizeConstraintSet FieldToMatch": { + "Data": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicates the type of operation that the request is asking the origin to perform\\. \n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFRegional::SizeConstraintSet SizeConstraint": { + "ComparisonOperator": "The type of comparison you want AWS WAF to perform\\. AWS WAF uses this in combination with the provided `Size` and `FieldToMatch` to build an expression in the form of \"`Size` `ComparisonOperator` size in bytes of `FieldToMatch`\"\\. If that expression is true, the `SizeConstraint` is considered to match\\. \n **EQ**: Used to test if the `Size` is equal to the size of the `FieldToMatch` \n **NE**: Used to test if the `Size` is not equal to the size of the `FieldToMatch` \n **LE**: Used to test if the `Size` is less than or equal to the size of the `FieldToMatch` \n **LT**: Used to test if the `Size` is strictly less than the size of the `FieldToMatch` \n **GE**: Used to test if the `Size` is greater than or equal to the size of the `FieldToMatch` \n **GT**: Used to test if the `Size` is strictly greater than the size of the `FieldToMatch` \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EQ | GE | GT | LE | LT | NE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FieldToMatch": "The part of a web request that you want AWS WAF to inspect, such as a specific header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sizeconstraintset-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Size": "The size in bytes that you want AWS WAF to compare against the size of the specified `FieldToMatch`\\. AWS WAF uses this in combination with `ComparisonOperator` and `FieldToMatch` to build an expression in the form of \"`Size` `ComparisonOperator` size in bytes of `FieldToMatch`\"\\. If that expression is true, the `SizeConstraint` is considered to match\\. \nValid values for size are 0 \\- 21474836480 bytes \\(0 \\- 20 GB\\)\\. \nIf you specify `URI` for the value of `Type`, the / in the URI path that you specify counts as one character\\. For example, the URI `/logo.jpg` is nine characters long\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextTransformation": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting a request for a match\\. \nYou can only specify a single type of TextTransformation\\. \nNote that if you choose `BODY` for the value of `Type`, you must choose `NONE` for `TextTransformation` because the API Gateway API or Application Load Balancer forward only the first 8192 bytes for inspection\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFRegional::SqlInjectionMatchSet": { + "Name": "The name, if any, of the `SqlInjectionMatchSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SqlInjectionMatchTuples": "Specifies the parts of web requests that you want to inspect for snippets of malicious SQL code\\. \n*Required*: No \n*Type*: List of [SqlInjectionMatchTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sqlinjectionmatchset-sqlinjectionmatchtuple.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFRegional::SqlInjectionMatchSet FieldToMatch": { + "Data": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicates the type of operation that the request is asking the origin to perform\\. \n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFRegional::SqlInjectionMatchSet SqlInjectionMatchTuple": { + "FieldToMatch": "The part of a web request that you want AWS WAF to inspect, such as a specific header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sqlinjectionmatchset-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextTransformation": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting it for a match\\. \nYou can only specify a single type of TextTransformation\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFRegional::WebACL": { + "DefaultAction": "The action to perform if none of the `Rules` contained in the `WebACL` match\\. The action is specified by the `WafAction` object\\. \n*Required*: Yes \n*Type*: [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-webacl-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricName": "A name for the metrics for this `WebACL`\\. The name can contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\), with maximum length 128 and minimum length one\\. It can't contain whitespace or metric names reserved for AWS WAF, including \"All\" and \"Default\\_Action\\.\" You can't change `MetricName` after you create the `WebACL`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "A friendly name or description of the `WebACL`\\. You can't change the name of a `WebACL` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Rules": "An array that contains the action for each `Rule` in a `WebACL`, the priority of the `Rule`, and the ID of the `Rule`\\. \n*Required*: No \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-webacl-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFRegional::WebACL Action": { + "Type": "For actions that are associated with a rule, the action that AWS WAF takes when a web request matches all conditions in a rule\\. \nFor the default action of a web access control list \\(ACL\\), the action that AWS WAF takes when a web request doesn't match all conditions in any rule\\. \nValid settings include the following: \n+ `ALLOW`: AWS WAF allows requests\n+ `BLOCK`: AWS WAF blocks requests\n+ `COUNT`: AWS WAF increments a counter of the requests that match all of the conditions in the rule\\. AWS WAF then continues to inspect the web request based on the remaining rules in the web ACL\\. You can't specify `COUNT` for the default action for a WebACL\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFRegional::WebACL Rule": { + "Action": "The action that AWS WAF takes when a web request matches all conditions in the rule, such as allow, block, or count the request\\. \n*Required*: Yes \n*Type*: [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-webacl-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Priority": "The order in which AWS WAF evaluates the rules in a web ACL\\. AWS WAF evaluates rules with a lower value before rules with a higher value\\. The value must be a unique integer\\. If you have multiple rules in a web ACL, the priority numbers do not need to be consecutive\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleId": "The ID of an AWS WAF Regional rule to associate with a web ACL\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFRegional::WebACLAssociation": { + "ResourceArn": "The Amazon Resource Name \\(ARN\\) of the resource to protect with the web ACL\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "WebACLId": "A unique identifier \\(ID\\) for the web ACL\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::WAFRegional::XssMatchSet": { + "Name": "The name, if any, of the `XssMatchSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "XssMatchTuples": "Specifies the parts of web requests that you want to inspect for cross\\-site scripting attacks\\. \n*Required*: No \n*Type*: List of [XssMatchTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-xssmatchset-xssmatchtuple.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFRegional::XssMatchSet FieldToMatch": { + "Data": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicates the type of operation that the request is asking the origin to perform\\. \n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFRegional::XssMatchSet XssMatchTuple": { + "FieldToMatch": "The part of a web request that you want AWS WAF to inspect, such as a specified header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-xssmatchset-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextTransformation": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting it for a match\\. \nYou can only specify a single type of TextTransformation\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::IPSet": { + "Addresses": "Contains an array of strings that specify one or more IP addresses or blocks of IP addresses in Classless Inter\\-Domain Routing \\(CIDR\\) notation\\. AWS WAF supports all IPv4 and IPv6 CIDR ranges except for /0\\. \nExamples: \n+ To configure AWS WAF to allow, block, or count requests that originated from the IP address 192\\.0\\.2\\.44, specify `192.0.2.44/32`\\.\n+ To configure AWS WAF to allow, block, or count requests that originated from IP addresses from 192\\.0\\.2\\.0 to 192\\.0\\.2\\.255, specify `192.0.2.0/24`\\.\n+ To configure AWS WAF to allow, block, or count requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify `1111:0000:0000:0000:0000:0000:0000:0111/128`\\.\n+ To configure AWS WAF to allow, block, or count requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify `1111:0000:0000:0000:0000:0000:0000:0000/64`\\.\nFor more information about CIDR notation, see the Wikipedia entry [Classless Inter\\-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the IP set that helps with identification\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[\\w+=:#@/\\-,\\.][\\w+=:#@/\\-,\\.\\s]+[\\w+=:#@/\\-,\\.]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IPAddressVersion": "Specify IPV4 or IPV6\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `IPV4 | IPV6` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The descriptive name of the IP set\\. You cannot change the name of an `IPSet` after you create it\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Scope": "Specifies whether this is for an Amazon CloudFront distribution or for a regional application\\. A regional application can be an Application Load Balancer \\(ALB\\), an Amazon API Gateway REST API, or an AWS AppSync GraphQL API\\. Valid Values are `CLOUDFRONT` and `REGIONAL`\\. \nFor `CLOUDFRONT`, you must create your WAFv2 resources in the US East \\(N\\. Virginia\\) Region, `us-east-1`\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Key:value pairs associated with an AWS resource\\. The key:value pair can be anything you define\\. Typically, the tag key represents a category \\(such as \"environment\"\\) and the tag value represents a specific value within that category \\(such as \"test,\" \"development,\" or \"production\"\\)\\. You can add up to 50 tags to each AWS resource\\. \nTo modify tags on existing resources, use the AWS WAF APIs or command line interface\\. With AWS CloudFormation, you can only add tags to AWS WAF resources during resource creation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::LoggingConfiguration": { + "LogDestinationConfigs": "The logging destination configuration that you want to associate with the web ACL\\. \nYou can associate one logging destination to a web ACL\\.\n*Required*: Yes \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LoggingFilter": "Filtering that specifies which web requests are kept in the logs and which are dropped\\. You can filter on the rule action and on the web request labels that were applied by matching rules during web ACL evaluation\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RedactedFields": "The parts of the request that you want to keep out of the logs\\. For example, if you redact the `SingleHeader` field, the `HEADER` field in the logs will be `xxx`\\. \nYou can specify only the following fields for redaction: `UriPath`, `QueryString`, `SingleHeader`, `Method`, and `JsonBody`\\.\n*Required*: No \n*Type*: List of [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-loggingconfiguration-fieldtomatch.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceArn": "The Amazon Resource Name \\(ARN\\) of the web ACL that you want to associate with `LogDestinationConfigs`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::WAFv2::LoggingConfiguration FieldToMatch": { + "JsonBody": "Inspect the request body as JSON\\. The request body immediately follows the request headers\\. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. \nNote that only the first 8 KB \\(8192 bytes\\) of the request body are forwarded to AWS WAF for inspection by the underlying host service\\. If you don't need to inspect more than 8 KB, you can guarantee that you don't allow additional bytes in by combining a statement that inspects the body of the web request, such as [ByteMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html#cfn-wafv2-rulegroup-statement-bytematchstatement) or [RegexPatternSetReferenceStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html#cfn-wafv2-rulegroup-statement-regexpatternsetreferencestatement), with a [SizeConstraintStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html#cfn-wafv2-rulegroup-statement-sizeconstraintstatement) that enforces an 8 KB size limit on the body of the request\\. AWS WAF doesn't support inspecting the entire contents of web requests whose bodies exceed the 8 KB limit\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Method": "Inspect the HTTP method\\. The method indicates the type of operation that the request is asking the origin to perform\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryString": "Inspect the query string\\. This is the part of a URL that appears after a `?` character, if any\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SingleHeader": "Inspect a single header\\. Provide the name of the header to inspect, for example, `User-Agent` or `Referer`\\. This setting isn't case sensitive\\. \nExample JSON: `\"SingleHeader\": { \"Name\": \"haystack\" }` \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UriPath": "Inspect the request URI path\\. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RegexPatternSet": { + "Description": "A description of the set that helps with identification\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[\\w+=:#@/\\-,\\.][\\w+=:#@/\\-,\\.\\s]+[\\w+=:#@/\\-,\\.]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The descriptive name of the set\\. You cannot change the name after you create the set\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RegularExpressionList": "The regular expression patterns in the set\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scope": "Specifies whether this is for an Amazon CloudFront distribution or for a regional application\\. A regional application can be an Application Load Balancer \\(ALB\\), an Amazon API Gateway REST API, or an AWS AppSync GraphQL API\\. Valid Values are `CLOUDFRONT` and `REGIONAL`\\. \nFor `CLOUDFRONT`, you must create your WAFv2 resources in the US East \\(N\\. Virginia\\) Region, `us-east-1`\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Key:value pairs associated with an AWS resource\\. The key:value pair can be anything you define\\. Typically, the tag key represents a category \\(such as \"environment\"\\) and the tag value represents a specific value within that category \\(such as \"test,\" \"development,\" or \"production\"\\)\\. You can add up to 50 tags to each AWS resource\\. \nTo modify tags on existing resources, use the AWS WAF APIs or command line interface\\. With AWS CloudFormation, you can only add tags to AWS WAF resources during resource creation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup": { + "Capacity": "The web ACL capacity units \\(WCUs\\) required for this rule group\\. \nWhen you create your own rule group, you define this, and you cannot change it after creation\\. When you add or modify the rules in a rule group, AWS WAF enforces this limit\\. \nAWS WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs\\. AWS WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule\\. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power\\. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group\\. The WCU limit for web ACLs is 1,500\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomResponseBodies": "A map of custom response keys and content bodies\\. When you create a rule with a block action, you can send a custom response to the web request\\. You define these for the rule group, and then use them in the rules that you define in the rule group\\. \nFor information about customizing web requests and responses, see [Customizing web requests and responses in AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \nFor information about the limits on count and size for custom request and response settings, see [AWS WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: No \n*Type*: Map of [CustomResponseBody](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-customresponsebody.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the rule group that helps with identification\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[\\w+=:#@/\\-,\\.][\\w+=:#@/\\-,\\.\\s]+[\\w+=:#@/\\-,\\.]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The descriptive name of the rule group\\. You cannot change the name of a rule group after you create it\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Rules": "The rule statements used to identify the web requests that you want to allow, block, or count\\. Each rule includes one top\\-level statement that AWS WAF uses to identify matching web requests, and parameters that govern how AWS WAF handles them\\. \n*Required*: No \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scope": "Specifies whether this is for an Amazon CloudFront distribution or for a regional application\\. A regional application can be an Application Load Balancer \\(ALB\\), an Amazon API Gateway REST API, or an AWS AppSync GraphQL API\\. Valid Values are `CLOUDFRONT` and `REGIONAL`\\. \nFor `CLOUDFRONT`, you must create your WAFv2 resources in the US East \\(N\\. Virginia\\) Region, `us-east-1`\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Key:value pairs associated with an AWS resource\\. The key:value pair can be anything you define\\. Typically, the tag key represents a category \\(such as \"environment\"\\) and the tag value represents a specific value within that category \\(such as \"test,\" \"development,\" or \"production\"\\)\\. You can add up to 50 tags to each AWS resource\\. \nTo modify tags on existing resources, use the AWS WAF APIs or command line interface\\. With AWS CloudFormation, you can only add tags to AWS WAF resources during resource creation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VisibilityConfig": "Defines and enables Amazon CloudWatch metrics and web request sample collection\\. \n*Required*: Yes \n*Type*: [VisibilityConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-visibilityconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup AndStatement": { + "Statements": "The statements to combine with AND logic\\. You can use any statements that can be nested\\. \n*Required*: Yes \n*Type*: List of [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup ByteMatchStatement": { + "FieldToMatch": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PositionalConstraint": "The area within the portion of a web request that you want AWS WAF to search for `SearchString`\\. Valid values include the following: \n **CONTAINS** \nThe specified part of the web request must include the value of `SearchString`, but the location doesn't matter\\. \n **CONTAINS\\_WORD** \nThe specified part of the web request must include the value of `SearchString`, and `SearchString` must contain only alphanumeric characters or underscore \\(A\\-Z, a\\-z, 0\\-9, or \\_\\)\\. In addition, `SearchString` must be a word, which means that both of the following are true: \n+ `SearchString` is at the beginning of the specified part of the web request or is preceded by a character other than an alphanumeric character or underscore \\(\\_\\)\\. Examples include the value of a header and `;BadBot`\\.\n+ `SearchString` is at the end of the specified part of the web request or is followed by a character other than an alphanumeric character or underscore \\(\\_\\), for example, `BadBot;` and `-BadBot;`\\.\n **EXACTLY** \nThe value of the specified part of the web request must exactly match the value of `SearchString`\\. \n **STARTS\\_WITH** \nThe value of `SearchString` must appear at the beginning of the specified part of the web request\\. \n **ENDS\\_WITH** \nThe value of `SearchString` must appear at the end of the specified part of the web request\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CONTAINS | CONTAINS_WORD | ENDS_WITH | EXACTLY | STARTS_WITH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SearchString": "A string value that you want AWS WAF to search for\\. AWS WAF searches only in the part of web requests that you designate for inspection in `FieldToMatch`\\. The maximum length of the value is 50 bytes\\. For alphabetic characters A\\-Z and a\\-z, the value is case sensitive\\. \nDon't encode this string\\. Provide the value that you want AWS WAF to search for\\. AWS CloudFormation automatically base64 encodes the value for you\\. \nFor example, suppose the value of `Type` is `HEADER` and the value of `Data` is `User-Agent`\\. If you want to search the `User-Agent` header for the value `BadBot`, you provide the string `BadBot` in the value of `SearchString`\\. \nYou must specify either `SearchString` or `SearchStringBase64` in a `ByteMatchStatement`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SearchStringBase64": "String to search for in a web request component, base64\\-encoded\\. If you don't want to encode the string, specify the unencoded value in `SearchString` instead\\. \nYou must specify either `SearchString` or `SearchStringBase64` in a `ByteMatchStatement`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextTransformations": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup CaptchaConfig": { + "ImmunityTimeProperty": "Determines how long a `CAPTCHA` token remains valid after the client successfully solves a `CAPTCHA` puzzle\\. \n*Required*: No \n*Type*: [ImmunityTimeProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-immunitytimeproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup CustomResponseBody": { + "Content": "The payload of the custom response\\. \nYou can use JSON escape strings in JSON content\\. To do this, you must specify JSON content in the `ContentType` setting\\. \nFor information about the limits on count and size for custom request and response settings, see [AWS WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `10240` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContentType": "The type of content in the payload that you are defining in the `Content` string\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `APPLICATION_JSON | TEXT_HTML | TEXT_PLAIN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup FieldToMatch": { + "AllQueryArguments": "Inspect all query arguments\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Body": "Inspect the request body, which immediately follows the request headers\\. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. \nNote that only the first 8 KB \\(8192 bytes\\) of the request body are forwarded to AWS WAF for inspection by the underlying host service\\. If you don't need to inspect more than 8 KB, you can guarantee that you don't allow additional bytes in by combining a statement that inspects the body of the web request, such as the `ByteMatchStatement` or `RegexPatternSetReferenceStatement`, with a `SizeConstraintStatement` that enforces an 8 KB size limit on the body of the request\\. AWS WAF doesn't support inspecting the entire contents of web requests whose bodies exceed the 8 KB limit\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JsonBody": "Inspect the request body as JSON\\. The request body immediately follows the request headers\\. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. \nNote that only the first 8 KB \\(8192 bytes\\) of the request body are forwarded to AWS WAF for inspection by the underlying host service\\. If you don't need to inspect more than 8 KB, you can guarantee that you don't allow additional bytes in by combining a statement that inspects the body of the web request, such as the `ByteMatchStatement` or `RegexPatternSetReferenceStatement`, with a `SizeConstraintStatement` that enforces an 8 KB size limit on the body of the request\\. AWS WAF doesn't support inspecting the entire contents of web requests whose bodies exceed the 8 KB limit\\. \n*Required*: No \n*Type*: [JsonBody](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-jsonbody.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Method": "Inspect the HTTP method\\. The method indicates the type of operation that the request is asking the origin to perform\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryString": "Inspect the query string\\. This is the part of a URL that appears after a `?` character, if any\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SingleHeader": "Inspect a single header\\. Provide the name of the header to inspect, for example, `User-Agent` or `Referer`\\. This setting isn't case sensitive\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SingleQueryArgument": "Inspect a single query argument\\. Provide the name of the query argument to inspect, such as *UserName* or *SalesRegion*\\. The name can be up to 30 characters long and isn't case sensitive\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UriPath": "Inspect the request URI path\\. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup ForwardedIPConfiguration": { + "FallbackBehavior": "The match status to assign to the web request if the request doesn't have a valid IP address in the specified position\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\nYou can specify the following fallback behaviors: \n+ `MATCH` \\- Treat the web request as matching the rule statement\\. AWS WAF applies the rule action to the request\\.\n+ `NO_MATCH` \\- Treat the web request as not matching the rule statement\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `MATCH | NO_MATCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HeaderName": "The name of the HTTP header to use for the IP address\\. For example, to use the X\\-Forwarded\\-For \\(XFF\\) header, set this to `X-Forwarded-For`\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup GeoMatchStatement": { + "CountryCodes": "An array of two\\-character country codes, for example, `[ \"US\", \"CN\" ]`, from the alpha\\-2 country ISO codes of the ISO 3166 international standard\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ForwardedIPConfig": "The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin\\. Commonly, this is the X\\-Forwarded\\-For \\(XFF\\) header, but you can specify any header name\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: No \n*Type*: [ForwardedIPConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-forwardedipconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup IPSetForwardedIPConfiguration": { + "FallbackBehavior": "The match status to assign to the web request if the request doesn't have a valid IP address in the specified position\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\nYou can specify the following fallback behaviors: \n+ `MATCH` \\- Treat the web request as matching the rule statement\\. AWS WAF applies the rule action to the request\\.\n+ `NO_MATCH` \\- Treat the web request as not matching the rule statement\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `MATCH | NO_MATCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HeaderName": "The name of the HTTP header to use for the IP address\\. For example, to use the X\\-Forwarded\\-For \\(XFF\\) header, set this to `X-Forwarded-For`\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Position": "The position in the header to search for the IP address\\. The header can contain IP addresses of the original client and also of proxies\\. For example, the header value could be `10.1.1.1, 127.0.0.0, 10.10.10.10` where the first IP address identifies the original client and the rest identify proxies that the request went through\\. \nThe options for this setting are the following: \n+ FIRST \\- Inspect the first IP address in the list of IP addresses in the header\\. This is usually the client's original IP\\.\n+ LAST \\- Inspect the last IP address in the list of IP addresses in the header\\.\n+ ANY \\- Inspect all IP addresses in the header for a match\\. If the header contains more than 10 IP addresses, AWS WAF inspects the last 10\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ANY | FIRST | LAST` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup IPSetReferenceStatement": { + "Arn": "The Amazon Resource Name \\(ARN\\) of the [AWS::WAFv2::IPSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-ipset.html) that this statement references\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IPSetForwardedIPConfig": "The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin\\. Commonly, this is the X\\-Forwarded\\-For \\(XFF\\) header, but you can specify any header name\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: No \n*Type*: [IPSetForwardedIPConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ipsetforwardedipconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup ImmunityTimeProperty": { + "ImmunityTime": "The amount of time, in seconds, that a `CAPTCHA` token is valid\\. The default setting is 300\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup JsonBody": { + "InvalidFallbackBehavior": "What AWS WAF should do if it fails to completely parse the JSON body\\. The options are the following: \n+ `EVALUATE_AS_STRING` \\- Inspect the body as plain text\\. AWS WAF applies the text transformations and inspection criteria that you defined for the JSON inspection to the body text string\\.\n+ `MATCH` \\- Treat the web request as matching the rule statement\\. AWS WAF applies the rule action to the request\\.\n+ `NO_MATCH` \\- Treat the web request as not matching the rule statement\\.\nIf you don't provide this setting, AWS WAF parses and evaluates the content only up to the first parsing failure that it encounters\\. \nAWS WAF does its best to parse the entire JSON body, but might be forced to stop for reasons such as invalid characters, duplicate keys, truncation, and any content whose root node isn't an object or an array\\. \nAWS WAF parses the JSON in the following examples as two valid key, value pairs: \n+ Missing comma: `{\"key1\":\"value1\"\"key2\":\"value2\"}` \n+ Missing colon: `{\"key1\":\"value1\",\"key2\"\"value2\"}` \n+ Extra colons: `{\"key1\"::\"value1\",\"key2\"\"value2\"}` \n*Required*: No \n*Type*: String \n*Allowed values*: `EVALUATE_AS_STRING | MATCH | NO_MATCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MatchPattern": "The patterns to look for in the JSON body\\. AWS WAF inspects the results of these pattern matches against the rule inspection criteria\\. \n*Required*: Yes \n*Type*: [JsonMatchPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-jsonmatchpattern.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MatchScope": "The parts of the JSON to match against using the `MatchPattern`\\. If you specify `All`, AWS WAF matches against keys and values\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL | KEY | VALUE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup JsonMatchPattern": { + "All": "Match all of the elements\\. See also `MatchScope` in `JsonBody`\\. \nYou must specify either this setting or the `IncludedPaths` setting, but not both\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludedPaths": "Match only the specified include paths\\. See also `MatchScope` in `JsonBody`\\. \nProvide the include paths using JSON Pointer syntax\\. For example, `\"IncludedPaths\": [\"/dogs/0/name\", \"/dogs/1/name\"]`\\. For information about this syntax, see the Internet Engineering Task Force \\(IETF\\) documentation [JavaScript Object Notation \\(JSON\\) Pointer](https://tools.ietf.org/html/rfc6901)\\. \nYou must specify either this setting or the `All` setting, but not both\\. \nDon't use this option to include all paths\\. Instead, use the `All` setting\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup Label": { + "Name": "The label string\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup LabelMatchStatement": { + "Key": "The string to match against\\. The setting you provide for this depends on the match statement's `Scope` setting: \n+ If the `Scope` indicates `LABEL`, then this specification must include the name and can include any number of preceding namespace specifications and prefix up to providing the fully qualified label name\\. \n+ If the `Scope` indicates `NAMESPACE`, then this specification can include any number of contiguous namespace strings, and can include the entire label namespace prefix from the rule group or web ACL where the label originates\\.\nLabels are case sensitive and components of a label must be separated by colon, for example `NS1:NS2:name`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scope": "Specify whether you want to match using the label name or just the namespace\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup LabelSummary": { + "Name": "An individual label specification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup NotStatement": { + "Statement": "The statement to negate\\. You can use any statement that can be nested\\. \n*Required*: Yes \n*Type*: [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup OrStatement": { + "Statements": "The statements to combine with OR logic\\. You can use any statements that can be nested\\. \n*Required*: Yes \n*Type*: List of [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup RateBasedStatement": { + "AggregateKeyType": "Setting that indicates how to aggregate the request counts\\. The options are the following: \n+ IP \\- Aggregate the request counts on the IP address from the web request origin\\.\n+ FORWARDED\\_IP \\- Aggregate the request counts on the first IP address in an HTTP header\\. If you use this, configure the `ForwardedIPConfig`, to specify the header to use\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `FORWARDED_IP | IP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ForwardedIPConfig": "The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin\\. Commonly, this is the X\\-Forwarded\\-For \\(XFF\\) header, but you can specify any header name\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\nThis is required if `AggregateKeyType` is set to `FORWARDED_IP`\\. \n*Required*: No \n*Type*: [ForwardedIPConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-forwardedipconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Limit": "The limit on requests per 5\\-minute period for a single originating IP address\\. If the statement includes a `ScopeDownStatement`, this limit is applied only to the requests that match the statement\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScopeDownStatement": "An optional nested statement that narrows the scope of the rate\\-based statement to matching web requests\\. This can be any nestable statement, and you can nest statements at any level below this scope\\-down statement\\. \n*Required*: No \n*Type*: [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup RegexMatchStatement": { + "FieldToMatch": "The part of a web request that you want AWS WAF to inspect\\. For more information, see `FieldToMatch`\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegexString": "The string representing the regular expression\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextTransformations": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content of the request component identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup RegexPatternSetReferenceStatement": { + "Arn": "The Amazon Resource Name \\(ARN\\) of the regular expression pattern set that this statement references\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FieldToMatch": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextTransformations": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup Rule": { + "Action": "The action that AWS WAF should take on a web request when it matches the rule's statement\\. Settings at the web ACL level can override the rule action setting\\. \n*Required*: No \n*Type*: [RuleAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ruleaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CaptchaConfig": "Specifies how AWS WAF should handle `CAPTCHA` evaluations\\. If you don't specify this, AWS WAF uses the `CAPTCHA` configuration that's defined for the web ACL\\. \n*Required*: No \n*Type*: [CaptchaConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-captchaconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The descriptive name of the rule\\. You can't change the name of a `Rule` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Priority": "If you define more than one `Rule` in a `WebACL`, AWS WAF evaluates each request against the `Rules` in order based on the value of `Priority`\\. AWS WAF processes rules with lower priority first\\. The priorities don't need to be consecutive, but they must all be different\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleLabels": "Labels to apply to web requests that match the rule match statement\\. AWS WAF applies fully qualified labels to matching web requests\\. A fully qualified label is the concatenation of a label namespace and a rule label\\. The rule's rule group or web ACL defines the label namespace\\. \nRules that run after this rule in the web ACL can match against these labels using a `LabelMatchStatement`\\. \nFor each label, provide a case\\-sensitive string containing optional namespaces and a label name, according to the following guidelines: \n+ Separate each component of the label with a colon\\. \n+ Each namespace or name can have up to 128 characters\\.\n+ You can specify up to 5 namespaces in a label\\.\n+ Don't use the following reserved words in your label specification: `aws`, `waf`, `managed`, `rulegroup`, `webacl`, `regexpatternset`, or `ipset`\\.\nFor example, `myLabelName` or `nameSpace1:nameSpace2:myLabelName`\\. \n*Required*: No \n*Type*: List of [Label](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-label.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Statement": "The AWS WAF processing statement for the rule, for example ByteMatchStatement or SizeConstraintStatement\\. \n*Required*: Yes \n*Type*: [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VisibilityConfig": "Defines and enables Amazon CloudWatch metrics and web request sample collection\\. \n*Required*: Yes \n*Type*: [VisibilityConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-visibilityconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup RuleAction": { + "Allow": "Instructs AWS WAF to allow the web request\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Block": "Instructs AWS WAF to block the web request\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Captcha": "Specifies that AWS WAF should run a `CAPTCHA` check against the request: \n+ If the request includes a valid, unexpired `CAPTCHA` token, AWS WAF allows the web request inspection to proceed to the next rule, similar to a `CountAction`\\. \n+ If the request doesn't include a valid, unexpired `CAPTCHA` token, AWS WAF discontinues the web ACL evaluation of the request and blocks it from going to its intended destination\\.", + "Count": "Instructs AWS WAF to count the web request and allow it\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup SizeConstraintStatement": { + "ComparisonOperator": "The operator to use to compare the request part to the size setting\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EQ | GE | GT | LE | LT | NE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FieldToMatch": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Size": "The size, in byte, to compare to the request part, after any transformations\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextTransformations": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup SqliMatchStatement": { + "FieldToMatch": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextTransformations": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup Statement": { + "AndStatement": "A logical rule statement used to combine other rule statements with AND logic\\. You provide more than one [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-notstatement.html#cfn-wafv2-webacl-notstatement-statement) within the `AndStatement`\\. \n*Required*: No \n*Type*: [AndStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-andstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ByteMatchStatement": "A rule statement that defines a string match search for AWS WAF to apply to web requests\\. The byte match statement provides the bytes to search for, the location in requests that you want AWS WAF to search, and other settings\\. The bytes to search for are typically a string that corresponds with ASCII characters\\. In the AWS WAF console and the developer guide, this is refered to as a string match statement\\. \n*Required*: No \n*Type*: [ByteMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-bytematchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GeoMatchStatement": "A rule statement used to identify web requests based on country of origin\\. \n*Required*: No \n*Type*: [GeoMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-geomatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IPSetReferenceStatement": "A rule statement used to detect web requests coming from particular IP addresses or address ranges\\. To use this, create an [AWS::WAFv2::IPSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-ipset.html) that specifies the addresses you want to detect, then use the ARN of that set in this statement\\. \nEach IP set rule statement references an IP set\\. You create and maintain the set independent of your rules\\. This allows you to use the single set in multiple rules\\. When you update the referenced set, AWS WAF automatically updates all rules that reference it\\. \n*Required*: No \n*Type*: [IPSetReferenceStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ipsetreferencestatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LabelMatchStatement": "A rule statement that defines a string match search against labels that have been added to the web request by rules that have already run in the web ACL\\. \nThe label match statement provides the label or namespace string to search for\\. The label string can represent a part or all of the fully qualified label name that had been added to the web request\\. Fully qualified labels have a prefix, optional namespaces, and label name\\. The prefix identifies the rule group or web ACL context of the rule that added the label\\. If you do not provide the fully qualified name in your label match string, AWS WAF performs the search for labels that were added in the same context as the label match statement\\. \n*Required*: No \n*Type*: [LabelMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-labelmatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotStatement": "A logical rule statement used to negate the results of another rule statement\\. You provide one [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-notstatement.html#cfn-wafv2-webacl-notstatement-statement) within the `NotStatement`\\. \n*Required*: No \n*Type*: [NotStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-notstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OrStatement": "A logical rule statement used to combine other rule statements with OR logic\\. You provide more than one [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-notstatement.html#cfn-wafv2-webacl-notstatement-statement) within the `OrStatement`\\. \n*Required*: No \n*Type*: [OrStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-orstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RateBasedStatement": "A rate\\-based rule tracks the rate of requests for each originating IP address, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any 5\\-minute time span\\. You can use this to put a temporary block on requests from an IP address that is sending excessive requests\\. \nWhen the rule action triggers, AWS WAF blocks additional requests from the IP address until the request rate falls below the limit\\. \nYou can optionally nest another statement inside the rate\\-based statement, to narrow the scope of the rule so that it only counts requests that match the nested statement\\. For example, based on recent requests that you have seen from an attacker, you might create a rate\\-based rule with a nested AND rule statement that contains the following nested statements: \n+ An IP match statement with an IP set that specified the address 192\\.0\\.2\\.44\\.\n+ A string match statement that searches in the User\\-Agent header for the string BadBot\\.\nIn this rate\\-based rule, you also define a rate limit\\. For this example, the rate limit is 1,000\\. Requests that meet both of the conditions in the statements are counted\\. If the count exceeds 1,000 requests per five minutes, the rule action triggers\\. Requests that do not meet both conditions are not counted towards the rate limit and are not affected by this rule\\. \nYou cannot nest a `RateBasedStatement`, for example for use inside a `NotStatement` or `OrStatement`\\. It can only be referenced as a top\\-level statement within a rule\\. \n*Required*: No \n*Type*: [RateBasedStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ratebasedstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegexMatchStatement": "A rule statement used to search web request components for a match against a single regular expression\\. \n*Required*: No \n*Type*: [RegexMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-regexmatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegexPatternSetReferenceStatement": "A rule statement used to search web request components for matches with regular expressions\\. To use this, create a [AWS::WAFv2::RegexPatternSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-regexpatternset.html) that specifies the expressions that you want to detect, then use the ARN of that set in this statement\\. A web request matches the pattern set rule statement if the request component matches any of the patterns in the set\\. \nEach regex pattern set rule statement references a regex pattern set\\. You create and maintain the set independent of your rules\\. This allows you to use the single set in multiple rules\\. When you update the referenced set, AWS WAF automatically updates all rules that reference it\\. \n*Required*: No \n*Type*: [RegexPatternSetReferenceStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-regexpatternsetreferencestatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SizeConstraintStatement": "A rule statement that compares a number of bytes against the size of a request component, using a comparison operator, such as greater than \\(>\\) or less than \\(<\\)\\. For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes\\. \nIf you configure AWS WAF to inspect the request body, AWS WAF inspects only the first 8192 bytes \\(8 KB\\)\\. If the request body for your web requests never exceeds 8192 bytes, you can create a size constraint condition and block requests that have a request body greater than 8192 bytes\\. \nIf you choose URI for the value of Part of the request to filter on, the slash \\(/\\) in the URI counts as one character\\. For example, the URI `/logo.jpg` is nine characters long\\. \n*Required*: No \n*Type*: [SizeConstraintStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-sizeconstraintstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SqliMatchStatement": "Attackers sometimes insert malicious SQL code into web requests in an effort to extract data from your database\\. To allow or block web requests that appear to contain malicious SQL code, create one or more SQL injection match conditions\\. An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect\\. Later in the process, when you create a web ACL, you specify whether to allow or block requests that appear to contain malicious SQL code\\. \n*Required*: No \n*Type*: [SqliMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-sqlimatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "XssMatchStatement": "A rule statement that defines a cross\\-site scripting \\(XSS\\) match search for AWS WAF to apply to web requests\\. XSS attacks are those where the attacker uses vulnerabilities in a benign website as a vehicle to inject malicious client\\-site scripts into other legitimate web browsers\\. The XSS match statement provides the location in requests that you want AWS WAF to search and text transformations to use on the search area before AWS WAF searches for character sequences that are likely to be malicious strings\\. \n*Required*: No \n*Type*: [XssMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-xssmatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup TextTransformation": { + "Priority": "Sets the relative processing order for multiple transformations that are defined for a rule statement\\. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content\\. The priorities don't need to be consecutive, but they must all be different\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "You can specify the following transformation types: \n **BASE64\\_DECODE** \\- Decode a `Base64`\\-encoded string\\. \n **BASE64\\_DECODE\\_EXT** \\- Decode a `Base64`\\-encoded string, but use a forgiving implementation that ignores characters that aren't valid\\. \n **CMD\\_LINE** \\- Command\\-line transformations\\. These are helpful in reducing effectiveness of attackers who inject an operating system command\\-line command and use unusual formatting to disguise some or all of the command\\. \n+ Delete the following characters: `\\ \" ' ^` \n+ Delete spaces before the following characters: `/ (` \n+ Replace the following characters with a space: `, ;` \n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \\- Replace these characters with a space character \\(decimal 32\\): \n+ `\\f`, formfeed, decimal 12\n+ `\\t`, tab, decimal 9\n+ `\\n`, newline, decimal 10\n+ `\\r`, carriage return, decimal 13\n+ `\\v`, vertical tab, decimal 11\n+ Non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **CSS\\_DECODE** \\- Decode characters that were encoded using CSS 2\\.x escape rules `syndata.html#characters`\\. This function uses up to two bytes in the decoding process, so it can help to uncover ASCII characters that were encoded using CSS encoding that wouldn\u2019t typically be encoded\\. It's also useful in countering evasion, which is a combination of a backslash and non\\-hexadecimal characters\\. For example, `ja\\vascript` for javascript\\. \n **ESCAPE\\_SEQ\\_DECODE** \\- Decode the following ANSI C escape sequences: `\\a`, `\\b`, `\\f`, `\\n`, `\\r`, `\\t`, `\\v`, `\\\\`, `\\?`, `\\'`, `\\\"`, `\\xHH` \\(hexadecimal\\), `\\0OOO` \\(octal\\)\\. Encodings that aren't valid remain in the output\\. \n **HEX\\_DECODE** \\- Decode a string of hexadecimal characters into a binary\\. \n **HTML\\_ENTITY\\_DECODE** \\- Replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs these operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **JS\\_DECODE** \\- Decode JavaScript escape sequences\\. If a `\\` `u` `HHHH` code is in the full\\-width ASCII code range of `FF01-FF5E`, then the higher byte is used to detect and adjust the lower byte\\. If not, only the lower byte is used and the higher byte is zeroed, causing a possible loss of information\\. \n **LOWERCASE** \\- Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **MD5** \\- Calculate an MD5 hash from the data in the input\\. The computed hash is in a raw binary form\\. \n **NONE** \\- Specify `NONE` if you don't want any text transformations\\. \n **NORMALIZE\\_PATH** \\- Remove multiple slashes, directory self\\-references, and directory back\\-references that are not at the beginning of the input from an input string\\. \n **NORMALIZE\\_PATH\\_WIN** \\- This is the same as `NORMALIZE_PATH`, but first converts backslash characters to forward slashes\\. \n **REMOVE\\_NULLS** \\- Remove all `NULL` bytes from the input\\. \n **REPLACE\\_COMMENTS** \\- Replace each occurrence of a C\\-style comment \\(`/* ... */`\\) with a single space\\. Multiple consecutive occurrences are not compressed\\. Unterminated comments are also replaced with a space \\(ASCII 0x20\\)\\. However, a standalone termination of a comment \\(`*/`\\) is not acted upon\\. \n **REPLACE\\_NULLS** \\- Replace NULL bytes in the input with space characters \\(ASCII `0x20`\\)\\. \n **SQL\\_HEX\\_DECODE** \\- Decode SQL hex data\\. Example \\(`0x414243`\\) will be decoded to \\(`ABC`\\)\\. \n **URL\\_DECODE** \\- Decode a URL\\-encoded value\\. \n **URL\\_DECODE\\_UNI** \\- Like `URL_DECODE`, but with support for Microsoft\\-specific `%u` encoding\\. If the code is in the full\\-width ASCII code range of `FF01-FF5E`, the higher byte is used to detect and adjust the lower byte\\. Otherwise, only the lower byte is used and the higher byte is zeroed\\. \n **UTF8\\_TO\\_UNICODE** \\- Convert all UTF\\-8 character sequences to Unicode\\. This helps input normalization, and minimizing false\\-positives and false\\-negatives for non\\-English languages\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BASE64_DECODE | BASE64_DECODE_EXT | CMD_LINE | COMPRESS_WHITE_SPACE | CSS_DECODE | ESCAPE_SEQ_DECODE | HEX_DECODE | HTML_ENTITY_DECODE | JS_DECODE | LOWERCASE | MD5 | NONE | NORMALIZE_PATH | NORMALIZE_PATH_WIN | REMOVE_NULLS | REPLACE_COMMENTS | REPLACE_NULLS | SQL_HEX_DECODE | URL_DECODE | URL_DECODE_UNI | UTF8_TO_UNICODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup VisibilityConfig": { + "CloudWatchMetricsEnabled": "A boolean indicating whether the associated resource sends metrics to Amazon CloudWatch\\. For the list of available metrics, see [AWS WAF Metrics](https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricName": "The descriptive name of the Amazon CloudWatch metric\\. The name can contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\), with length from one to 128 characters\\. It can't contain whitespace or metric names reserved for AWS WAF, for example \"All\" and \"Default\\_Action\\.\" You can't change a `MetricName` after you create a `VisibilityConfig`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[\\w#:\\.\\-/]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SampledRequestsEnabled": "A boolean indicating whether AWS WAF should store a sampling of the web requests that match the rules\\. You can view the sampled requests through the AWS WAF console\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::RuleGroup XssMatchStatement": { + "FieldToMatch": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextTransformations": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL": { + "CaptchaConfig": "Specifies how AWS WAF should handle `CAPTCHA` evaluations for rules that don't have their own `CaptchaConfig` settings\\. If you don't specify this, AWS WAF uses its default settings for `CaptchaConfig`\\. \n*Required*: No \n*Type*: [CaptchaConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-captchaconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CustomResponseBodies": "A map of custom response keys and content bodies\\. When you create a rule with a block action, you can send a custom response to the web request\\. You define these for the web ACL, and then use them in the rules and default actions that you define in the web ACL\\. \nFor information about customizing web requests and responses, see [Customizing web requests and responses in AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \nFor information about the limits on count and size for custom request and response settings, see [AWS WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: No \n*Type*: Map of [CustomResponseBody](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customresponsebody.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DefaultAction": "The action to perform if none of the `Rules` contained in the `WebACL` match\\. \n*Required*: Yes \n*Type*: [DefaultAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-defaultaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "A description of the web ACL that helps with identification\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[\\w+=:#@/\\-,\\.][\\w+=:#@/\\-,\\.\\s]+[\\w+=:#@/\\-,\\.]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The descriptive name of the web ACL\\. You cannot change the name of a web ACL after you create it\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Rules": "The rule statements used to identify the web requests that you want to allow, block, or count\\. Each rule includes one top\\-level statement that AWS WAF uses to identify matching web requests, and parameters that govern how AWS WAF handles them\\. \n*Required*: No \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scope": "Specifies whether this is for an Amazon CloudFront distribution or for a regional application\\. A regional application can be an Application Load Balancer \\(ALB\\), an Amazon API Gateway REST API, or an AWS AppSync GraphQL API\\. Valid Values are `CLOUDFRONT` and `REGIONAL`\\. \nFor `CLOUDFRONT`, you must create your WAFv2 resources in the US East \\(N\\. Virginia\\) Region, `us-east-1`\\.\nFor information about how to define the association of the web ACL with your resource, see [AWS::WAFv2::WebACLAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webaclassociation.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "Key:value pairs associated with an AWS resource\\. The key:value pair can be anything you define\\. Typically, the tag key represents a category \\(such as \"environment\"\\) and the tag value represents a specific value within that category \\(such as \"test,\" \"development,\" or \"production\"\\)\\. You can add up to 50 tags to each AWS resource\\. \nTo modify tags on existing resources, use the AWS WAF APIs or command line interface\\. With AWS CloudFormation, you can only add tags to AWS WAF resources during resource creation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VisibilityConfig": "Defines and enables Amazon CloudWatch metrics and web request sample collection\\. \n*Required*: Yes \n*Type*: [VisibilityConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-visibilityconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL AllowAction": { + "CustomRequestHandling": "Defines custom handling for the web request\\. \nFor information about customizing web requests and responses, see [Customizing web requests and responses in AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: No \n*Type*: [CustomRequestHandling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customrequesthandling.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL AndStatement": { + "Statements": "The statements to combine with AND logic\\. You can use any statements that can be nested\\. \n*Required*: Yes \n*Type*: List of [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL BlockAction": { + "CustomResponse": "Defines a custom response for the web request\\. \nFor information about customizing web requests and responses, see [Customizing web requests and responses in AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: No \n*Type*: [CustomResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customresponse.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL ByteMatchStatement": { + "FieldToMatch": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PositionalConstraint": "The area within the portion of a web request that you want AWS WAF to search for `SearchString`\\. Valid values include the following: \n **CONTAINS** \nThe specified part of the web request must include the value of `SearchString`, but the location doesn't matter\\. \n **CONTAINS\\_WORD** \nThe specified part of the web request must include the value of `SearchString`, and `SearchString` must contain only alphanumeric characters or underscore \\(A\\-Z, a\\-z, 0\\-9, or \\_\\)\\. In addition, `SearchString` must be a word, which means that both of the following are true: \n+ `SearchString` is at the beginning of the specified part of the web request or is preceded by a character other than an alphanumeric character or underscore \\(\\_\\)\\. Examples include the value of a header and `;BadBot`\\.\n+ `SearchString` is at the end of the specified part of the web request or is followed by a character other than an alphanumeric character or underscore \\(\\_\\), for example, `BadBot;` and `-BadBot;`\\.\n **EXACTLY** \nThe value of the specified part of the web request must exactly match the value of `SearchString`\\. \n **STARTS\\_WITH** \nThe value of `SearchString` must appear at the beginning of the specified part of the web request\\. \n **ENDS\\_WITH** \nThe value of `SearchString` must appear at the end of the specified part of the web request\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CONTAINS | CONTAINS_WORD | ENDS_WITH | EXACTLY | STARTS_WITH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SearchString": "A string value that you want AWS WAF to search for\\. AWS WAF searches only in the part of web requests that you designate for inspection in `FieldToMatch`\\. The maximum length of the value is 50 bytes\\. For alphabetic characters A\\-Z and a\\-z, the value is case sensitive\\. \nDon't encode this string\\. Provide the value that you want AWS WAF to search for\\. AWS CloudFormation automatically base64 encodes the value for you\\. \nFor example, suppose the value of `Type` is `HEADER` and the value of `Data` is `User-Agent`\\. If you want to search the `User-Agent` header for the value `BadBot`, you provide the string `BadBot` in the value of `SearchString`\\. \nYou must specify either `SearchString` or `SearchStringBase64` in a `ByteMatchStatement`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SearchStringBase64": "String to search for in a web request component, base64\\-encoded\\. If you don't want to encode the string, specify the unencoded value in `SearchString` instead\\. \nYou must specify either `SearchString` or `SearchStringBase64` in a `ByteMatchStatement`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextTransformations": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL CaptchaAction": { + "CustomRequestHandling": "Defines custom handling for the web request\\. \nFor information about customizing web requests and responses, see [Customizing web requests and responses in AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: No \n*Type*: [CustomRequestHandling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customrequesthandling.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL CaptchaConfig": { + "ImmunityTimeProperty": "Determines how long a `CAPTCHA` token remains valid after the client successfully solves a `CAPTCHA` puzzle\\. \n*Required*: No \n*Type*: [ImmunityTimeProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-immunitytimeproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL CountAction": { + "CustomRequestHandling": "Defines custom handling for the web request\\. \nFor information about customizing web requests and responses, see [Customizing web requests and responses in AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: No \n*Type*: [CustomRequestHandling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customrequesthandling.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL CustomHTTPHeader": { + "Name": "The name of the custom header\\. \nFor custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request\\. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9._$-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Value": "The value of the custom header\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL CustomRequestHandling": { + "InsertHeaders": "The HTTP headers to insert into the request\\. Duplicate header names are not allowed\\. \nFor information about the limits on count and size for custom request and response settings, see [AWS WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: Yes \n*Type*: List of [CustomHTTPHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customhttpheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL CustomResponse": { + "CustomResponseBodyKey": "References the response body that you want AWS WAF to return to the web request client\\. You can define a custom response for a rule action or a default web ACL action that is set to block\\. To do this, you first define the response body key and value in the `CustomResponseBodies` setting for the [AWS::WAFv2::WebACL](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html) or [AWS::WAFv2::RuleGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-rulegroup.html) where you want to use it\\. Then, in the rule action or web ACL default action `BlockAction` setting, you reference the response body using this key\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResponseCode": "The HTTP status code to return to the client\\. \nFor a list of status codes that you can use in your custom reqponses, see [Supported status codes for custom response](https://docs.aws.amazon.com/waf/latest/developerguide/customizing-the-response-status-codes.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `200` \n*Maximum*: `599` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResponseHeaders": "The HTTP headers to use in the response\\. Duplicate header names are not allowed\\. \nFor information about the limits on count and size for custom request and response settings, see [AWS WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: No \n*Type*: List of [CustomHTTPHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customhttpheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL CustomResponseBody": { + "Content": "The payload of the custom response\\. \nYou can use JSON escape strings in JSON content\\. To do this, you must specify JSON content in the `ContentType` setting\\. \nFor information about the limits on count and size for custom request and response settings, see [AWS WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `10240` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ContentType": "The type of content in the payload that you are defining in the `Content` string\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `APPLICATION_JSON | TEXT_HTML | TEXT_PLAIN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL DefaultAction": { + "Allow": "Specifies that AWS WAF should allow requests by default\\. \n*Required*: No \n*Type*: [AllowAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-allowaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Block": "Specifies that AWS WAF should block requests by default\\. \n*Required*: No \n*Type*: [BlockAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-blockaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL ExcludedRule": { + "Name": "The name of the rule to exclude\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL FieldIdentifier": { + "Identifier": "The name of the username or password field, used in the `ManagedRuleGroupConfig` settings\\. \nWhen the `PayloadType` is `JSON`, the identifier must be in JSON pointer syntax\\. For example `/form/username`\\. For information about the JSON Pointer syntax, see the Internet Engineering Task Force \\(IETF\\) documentation [JavaScript Object Notation \\(JSON\\) Pointer](https://tools.ietf.org/html/rfc6901)\\. \nWhen the `PayloadType` is `FORM_ENCODED`, use the HTML form names\\. For example, `username`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL FieldToMatch": { + "AllQueryArguments": "Inspect all query arguments\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Body": "Inspect the request body, which immediately follows the request headers\\. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. \nNote that only the first 8 KB \\(8192 bytes\\) of the request body are forwarded to AWS WAF for inspection by the underlying host service\\. If you don't need to inspect more than 8 KB, you can guarantee that you don't allow additional bytes in by combining a statement that inspects the body of the web request, such as the `ByteMatchStatement` or `RegexPatternSetReferenceStatement`, with a `SizeConstraintStatement` that enforces an 8 KB size limit on the body of the request\\. AWS WAF doesn't support inspecting the entire contents of web requests whose bodies exceed the 8 KB limit\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "JsonBody": "Inspect the request body as JSON\\. The request body immediately follows the request headers\\. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. \nNote that only the first 8 KB \\(8192 bytes\\) of the request body are forwarded to AWS WAF for inspection by the underlying host service\\. If you don't need to inspect more than 8 KB, you can guarantee that you don't allow additional bytes in by combining a statement that inspects the body of the web request, such as the `ByteMatchStatement` or `RegexPatternSetReferenceStatement`, with a `SizeConstraintStatement` that enforces an 8 KB size limit on the body of the request\\. AWS WAF doesn't support inspecting the entire contents of web requests whose bodies exceed the 8 KB limit\\. \n*Required*: No \n*Type*: [JsonBody](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-jsonbody.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Method": "Inspect the HTTP method\\. The method indicates the type of operation that the request is asking the origin to perform\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryString": "Inspect the query string\\. This is the part of a URL that appears after a `?` character, if any\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SingleHeader": "Inspect a single header\\. Provide the name of the header to inspect, for example, `User-Agent` or `Referer`\\. This setting isn't case sensitive\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SingleQueryArgument": "Inspect a single query argument\\. Provide the name of the query argument to inspect, such as *UserName* or *SalesRegion*\\. The name can be up to 30 characters long and isn't case sensitive\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UriPath": "Inspect the request URI path\\. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL ForwardedIPConfiguration": { + "FallbackBehavior": "The match status to assign to the web request if the request doesn't have a valid IP address in the specified position\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\nYou can specify the following fallback behaviors: \n+ `MATCH` \\- Treat the web request as matching the rule statement\\. AWS WAF applies the rule action to the request\\.\n+ `NO_MATCH` \\- Treat the web request as not matching the rule statement\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `MATCH | NO_MATCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HeaderName": "The name of the HTTP header to use for the IP address\\. For example, to use the X\\-Forwarded\\-For \\(XFF\\) header, set this to `X-Forwarded-For`\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL GeoMatchStatement": { + "CountryCodes": "An array of two\\-character country codes, for example, `[ \"US\", \"CN\" ]`, from the alpha\\-2 country ISO codes of the ISO 3166 international standard\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ForwardedIPConfig": "The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin\\. Commonly, this is the X\\-Forwarded\\-For \\(XFF\\) header, but you can specify any header name\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: No \n*Type*: [ForwardedIPConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-forwardedipconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL IPSetForwardedIPConfiguration": { + "FallbackBehavior": "The match status to assign to the web request if the request doesn't have a valid IP address in the specified position\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\nYou can specify the following fallback behaviors: \n+ `MATCH` \\- Treat the web request as matching the rule statement\\. AWS WAF applies the rule action to the request\\.\n+ `NO_MATCH` \\- Treat the web request as not matching the rule statement\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `MATCH | NO_MATCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HeaderName": "The name of the HTTP header to use for the IP address\\. For example, to use the X\\-Forwarded\\-For \\(XFF\\) header, set this to `X-Forwarded-For`\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Position": "The position in the header to search for the IP address\\. The header can contain IP addresses of the original client and also of proxies\\. For example, the header value could be `10.1.1.1, 127.0.0.0, 10.10.10.10` where the first IP address identifies the original client and the rest identify proxies that the request went through\\. \nThe options for this setting are the following: \n+ FIRST \\- Inspect the first IP address in the list of IP addresses in the header\\. This is usually the client's original IP\\.\n+ LAST \\- Inspect the last IP address in the list of IP addresses in the header\\.\n+ ANY \\- Inspect all IP addresses in the header for a match\\. If the header contains more than 10 IP addresses, AWS WAF inspects the last 10\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ANY | FIRST | LAST` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL IPSetReferenceStatement": { + "Arn": "The Amazon Resource Name \\(ARN\\) of the IP set that this statement references\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IPSetForwardedIPConfig": "The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin\\. Commonly, this is the X\\-Forwarded\\-For \\(XFF\\) header, but you can specify any header name\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: No \n*Type*: [IPSetForwardedIPConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ipsetforwardedipconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL ImmunityTimeProperty": { + "ImmunityTime": "The amount of time, in seconds, that a `CAPTCHA` token is valid\\. The default setting is 300\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL JsonBody": { + "InvalidFallbackBehavior": "What AWS WAF should do if it fails to completely parse the JSON body\\. The options are the following: \n+ `EVALUATE_AS_STRING` \\- Inspect the body as plain text\\. AWS WAF applies the text transformations and inspection criteria that you defined for the JSON inspection to the body text string\\.\n+ `MATCH` \\- Treat the web request as matching the rule statement\\. AWS WAF applies the rule action to the request\\.\n+ `NO_MATCH` \\- Treat the web request as not matching the rule statement\\.\nIf you don't provide this setting, AWS WAF parses and evaluates the content only up to the first parsing failure that it encounters\\. \nAWS WAF does its best to parse the entire JSON body, but might be forced to stop for reasons such as invalid characters, duplicate keys, truncation, and any content whose root node isn't an object or an array\\. \nAWS WAF parses the JSON in the following examples as two valid key, value pairs: \n+ Missing comma: `{\"key1\":\"value1\"\"key2\":\"value2\"}` \n+ Missing colon: `{\"key1\":\"value1\",\"key2\"\"value2\"}` \n+ Extra colons: `{\"key1\"::\"value1\",\"key2\"\"value2\"}` \n*Required*: No \n*Type*: String \n*Allowed values*: `EVALUATE_AS_STRING | MATCH | NO_MATCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MatchPattern": "The patterns to look for in the JSON body\\. AWS WAF inspects the results of these pattern matches against the rule inspection criteria\\. \n*Required*: Yes \n*Type*: [JsonMatchPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-jsonmatchpattern.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MatchScope": "The parts of the JSON to match against using the `MatchPattern`\\. If you specify `All`, AWS WAF matches against keys and values\\. \nValid Values: `ALL` \\| `KEY` \\| `VALUE` \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL | KEY | VALUE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL JsonMatchPattern": { + "All": "Match all of the elements\\. See also `MatchScope` in `JsonBody`\\. \nYou must specify either this setting or the `IncludedPaths` setting, but not both\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IncludedPaths": "Match only the specified include paths\\. See also `MatchScope` in `JsonBody`\\. \nProvide the include paths using JSON Pointer syntax\\. For example, `\"IncludedPaths\": [\"/dogs/0/name\", \"/dogs/1/name\"]`\\. For information about this syntax, see the Internet Engineering Task Force \\(IETF\\) documentation [JavaScript Object Notation \\(JSON\\) Pointer](https://tools.ietf.org/html/rfc6901)\\. \nYou must specify either this setting or the `All` setting, but not both\\. \nDon't use this option to include all paths\\. Instead, use the `All` setting\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL Label": { + "Name": "The label string\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `^[0-9A-Za-z_\\-:]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL LabelMatchStatement": { + "Key": "The string to match against\\. The setting you provide for this depends on the match statement's `Scope` setting: \n+ If the `Scope` indicates `LABEL`, then this specification must include the name and can include any number of preceding namespace specifications and prefix up to providing the fully qualified label name\\. \n+ If the `Scope` indicates `NAMESPACE`, then this specification can include any number of contiguous namespace strings, and can include the entire label namespace prefix from the rule group or web ACL where the label originates\\.\nLabels are case sensitive and components of a label must be separated by colon, for example `NS1:NS2:name`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Scope": "Specify whether you want to match using the label name or just the namespace\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL ManagedRuleGroupConfig": { + "LoginPath": "The path of the login endpoint for your application\\. For example, for the URL `https://example.com/web/login`, you would provide the path `/web/login`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PasswordField": "Details about your login page password field\\. \n*Required*: No \n*Type*: [FieldIdentifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldidentifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PayloadType": "The payload type for your login endpoint, either JSON or form encoded\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `FORM_ENCODED | JSON` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UsernameField": "Details about your login page username field\\. \n*Required*: No \n*Type*: [FieldIdentifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldidentifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL ManagedRuleGroupStatement": { + "ExcludedRules": "The rules whose actions are set to `COUNT` by the web ACL, regardless of the action that is configured in the rule\\. This effectively excludes the rule from acting on web requests\\. \n*Required*: No \n*Type*: List of [ExcludedRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-excludedrule.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ManagedRuleGroupConfigs": "Additional information that's used by a managed rule group\\. Most managed rule groups don't require this\\. \nUse this for the account takeover prevention managed rule group `AWSManagedRulesATPRuleSet`, to provide information about the sign\\-in page of your application\\. \nYou can provide multiple individual `ManagedRuleGroupConfig` objects for any rule group configuration, for example `UsernameField` and `PasswordField`\\. The configuration that you provide depends on the needs of the managed rule group\\. For the ATP managed rule group, you provide the following individual configuration objects: `LoginPath`, `PasswordField`, `PayloadType` and `UsernameField`\\. \n*Required*: No \n*Type*: List of [ManagedRuleGroupConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-managedrulegroupconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the managed rule group\\. You use this, along with the vendor name, to identify the rule group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScopeDownStatement": "Statement nested inside a managed rule group statement to narrow the scope of the requests that AWS WAF evaluates using the rule group\\. Requests that match the scope\\-down statement are evaluated using the rule group\\. Requests that don't match the scope\\-down statement are not a match for the managed rule group statement, without any further evaluation\\. \n*Required*: No \n*Type*: [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VendorName": "The name of the managed rule group vendor\\. You use this, along with the rule group name, to identify the rule group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "The version of the managed rule group to use\\. If you specify this, the version setting is fixed until you change it\\. If you don't specify this, AWS WAF uses the vendor's default version, and then keeps the version at the vendor's default when the vendor updates the managed rule group settings\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL NotStatement": { + "Statement": "The statement to negate\\. You can use any statement that can be nested\\. \n*Required*: Yes \n*Type*: [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL OrStatement": { + "Statements": "The statements to combine with OR logic\\. You can use any statements that can be nested\\. \n*Required*: Yes \n*Type*: List of [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL OverrideAction": { + "Count": "Override the rule action settings to count\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "None": "Don't override the rule action settings\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL RateBasedStatement": { + "AggregateKeyType": "Setting that indicates how to aggregate the request counts\\. The options are the following: \n+ IP \\- Aggregate the request counts on the IP address from the web request origin\\.\n+ FORWARDED\\_IP \\- Aggregate the request counts on the first IP address in an HTTP header\\. If you use this, configure the `ForwardedIPConfig`, to specify the header to use\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `FORWARDED_IP | IP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ForwardedIPConfig": "The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin\\. Commonly, this is the X\\-Forwarded\\-For \\(XFF\\) header, but you can specify any header name\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\nThis is required if `AggregateKeyType` is set to `FORWARDED_IP`\\. \n*Required*: No \n*Type*: [ForwardedIPConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-forwardedipconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Limit": "The limit on requests per 5\\-minute period for a single originating IP address\\. If the statement includes a `ScopeDownStatement`, this limit is applied only to the requests that match the statement\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ScopeDownStatement": "An optional nested statement that narrows the scope of the rate\\-based statement to matching web requests\\. This can be any nestable statement, and you can nest statements at any level below this scope\\-down statement\\. \n*Required*: No \n*Type*: [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL RegexMatchStatement": { + "FieldToMatch": "The part of a web request that you want AWS WAF to inspect\\. For more information, see `FieldToMatch`\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegexString": "The string representing the regular expression\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextTransformations": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content of the request component identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL RegexPatternSetReferenceStatement": { + "Arn": "The Amazon Resource Name \\(ARN\\) of the regular expression pattern set that this statement references\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FieldToMatch": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextTransformations": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL Rule": { + "Action": "The action that AWS WAF should take on a web request when it matches the rule's statement\\. Settings at the web ACL level can override the rule action setting\\. \nThis is used only for rules whose statements don't reference a rule group\\. Rule statements that reference a rule group are `RuleGroupReferenceStatement` and `ManagedRuleGroupStatement`\\. \nYou must set either this `Action` setting or the rule's `OverrideAction`, but not both: \n+ If the rule statement doesn't reference a rule group, you must set this rule action setting and you must not set the rule's override action setting\\. \n+ If the rule statement references a rule group, you must not set this action setting, because the actions are already set on the rules inside the rule group\\. You must set the rule's override action setting to indicate specifically whether to override the actions that are set on the rules in the rule group\\. \n*Required*: Conditional \n*Type*: [RuleAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ruleaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CaptchaConfig": "Specifies how AWS WAF should handle `CAPTCHA` evaluations\\. If you don't specify this, AWS WAF uses the `CAPTCHA` configuration that's defined for the web ACL\\. \n*Required*: No \n*Type*: [CaptchaConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-captchaconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The descriptive name of the rule\\. You can't change the name of a `Rule` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OverrideAction": "The override action to apply to the rules in a rule group, instead of the individual rule action settings\\. This is used only for rules whose statements reference a rule group\\. Rule statements that reference a rule group are `RuleGroupReferenceStatement` and `ManagedRuleGroupStatement`\\. \nSet the override action to none to leave the rule group rule actions in effect\\. Set it to count to only count matches, regardless of the rule action settings\\. \nYou must set either this `OverrideAction` setting or the `Action` setting, but not both: \n+ If the rule statement references a rule group, you must set this override action setting and you must not set the rule's action setting\\. \n+ If the rule statement doesn't reference a rule group, you must set the rule action setting and you must not set the rule's override action setting\\. \n*Required*: Conditional \n*Type*: [OverrideAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-overrideaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Priority": "If you define more than one `Rule` in a `WebACL`, AWS WAF evaluates each request against the `Rules` in order based on the value of `Priority`\\. AWS WAF processes rules with lower priority first\\. The priorities don't need to be consecutive, but they must all be different\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleLabels": "Labels to apply to web requests that match the rule match statement\\. AWS WAF applies fully qualified labels to matching web requests\\. A fully qualified label is the concatenation of a label namespace and a rule label\\. The rule's rule group or web ACL defines the label namespace\\. \nRules that run after this rule in the web ACL can match against these labels using a `LabelMatchStatement`\\. \nFor each label, provide a case\\-sensitive string containing optional namespaces and a label name, according to the following guidelines: \n+ Separate each component of the label with a colon\\. \n+ Each namespace or name can have up to 128 characters\\.\n+ You can specify up to 5 namespaces in a label\\.\n+ Don't use the following reserved words in your label specification: `aws`, `waf`, `managed`, `rulegroup`, `webacl`, `regexpatternset`, or `ipset`\\.\nFor example, `myLabelName` or `nameSpace1:nameSpace2:myLabelName`\\. \n*Required*: No \n*Type*: List of [Label](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-label.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Statement": "The AWS WAF processing statement for the rule, for example ByteMatchStatement or SizeConstraintStatement\\. \n*Required*: Yes \n*Type*: [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VisibilityConfig": "Defines and enables Amazon CloudWatch metrics and web request sample collection\\. \n*Required*: Yes \n*Type*: [VisibilityConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-visibilityconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL RuleAction": { + "Allow": "Instructs AWS WAF to allow the web request\\. \n*Required*: No \n*Type*: [AllowAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-allowaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Block": "Instructs AWS WAF to block the web request\\. \n*Required*: No \n*Type*: [BlockAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-blockaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Captcha": "Specifies that AWS WAF should run a `CAPTCHA` check against the request: \n+ If the request includes a valid, unexpired `CAPTCHA` token, AWS WAF allows the web request inspection to proceed to the next rule, similar to a `CountAction`\\. \n+ If the request doesn't include a valid, unexpired `CAPTCHA` token, AWS WAF discontinues the web ACL evaluation of the request and blocks it from going to its intended destination\\.", + "Count": "Instructs AWS WAF to count the web request and allow it\\. \n*Required*: No \n*Type*: [CountAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-countaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL RuleGroupReferenceStatement": { + "Arn": "The Amazon Resource Name \\(ARN\\) of the entity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ExcludedRules": "The rules in the referenced rule group whose actions are set to `Count`\\. When you exclude a rule, AWS WAF evaluates it exactly as it would if the rule action setting were `Count`\\. This is a useful option for testing the rules in a rule group without modifying how they handle your web traffic\\. \n*Required*: No \n*Type*: List of [ExcludedRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-excludedrule.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL SizeConstraintStatement": { + "ComparisonOperator": "The operator to use to compare the request part to the size setting\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EQ | GE | GT | LE | LT | NE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FieldToMatch": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Size": "The size, in byte, to compare to the request part, after any transformations\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextTransformations": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL SqliMatchStatement": { + "FieldToMatch": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextTransformations": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL Statement": { + "AndStatement": "A logical rule statement used to combine other rule statements with AND logic\\. You provide more than one [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-notstatement.html#cfn-wafv2-webacl-notstatement-statement) within the `AndStatement`\\. \n*Required*: No \n*Type*: [AndStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-andstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ByteMatchStatement": "A rule statement that defines a string match search for AWS WAF to apply to web requests\\. The byte match statement provides the bytes to search for, the location in requests that you want AWS WAF to search, and other settings\\. The bytes to search for are typically a string that corresponds with ASCII characters\\. In the AWS WAF console and the developer guide, this is refered to as a string match statement\\. \n*Required*: No \n*Type*: [ByteMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-bytematchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GeoMatchStatement": "A rule statement used to identify web requests based on country of origin\\. \n*Required*: No \n*Type*: [GeoMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-geomatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IPSetReferenceStatement": "A rule statement used to detect web requests coming from particular IP addresses or address ranges\\. To use this, create an [AWS::WAFv2::IPSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-ipset.html) that specifies the addresses you want to detect, then use the ARN of that set in this statement\\. \nEach IP set rule statement references an IP set\\. You create and maintain the set independent of your rules\\. This allows you to use the single set in multiple rules\\. When you update the referenced set, AWS WAF automatically updates all rules that reference it\\. \n*Required*: No \n*Type*: [IPSetReferenceStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ipsetreferencestatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "LabelMatchStatement": "A rule statement that defines a string match search against labels that have been added to the web request by rules that have already run in the web ACL\\. \nThe label match statement provides the label or namespace string to search for\\. The label string can represent a part or all of the fully qualified label name that had been added to the web request\\. Fully qualified labels have a prefix, optional namespaces, and label name\\. The prefix identifies the rule group or web ACL context of the rule that added the label\\. If you do not provide the fully qualified name in your label match string, AWS WAF performs the search for labels that were added in the same context as the label match statement\\. \n*Required*: No \n*Type*: [LabelMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-labelmatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ManagedRuleGroupStatement": "A rule statement used to run the rules that are defined in a managed rule group\\. To use this, provide the vendor name and the name of the rule group in this statement\\. \nYou can't nest a `ManagedRuleGroupStatement`, for example for use inside a `NotStatement` or `OrStatement`\\. It can only be referenced as a top\\-level statement within a rule\\. \n*Required*: No \n*Type*: [ManagedRuleGroupStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-managedrulegroupstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotStatement": "A logical rule statement used to negate the results of another rule statement\\. You provide one [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-notstatement.html#cfn-wafv2-webacl-notstatement-statement) within the `NotStatement`\\. \n*Required*: No \n*Type*: [NotStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-notstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "OrStatement": "A logical rule statement used to combine other rule statements with OR logic\\. You provide more than one [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-notstatement.html#cfn-wafv2-webacl-notstatement-statement) within the `OrStatement`\\. \n*Required*: No \n*Type*: [OrStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-orstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RateBasedStatement": "A rate\\-based rule tracks the rate of requests for each originating IP address, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any 5\\-minute time span\\. You can use this to put a temporary block on requests from an IP address that is sending excessive requests\\. \nWhen the rule action triggers, AWS WAF blocks additional requests from the IP address until the request rate falls below the limit\\. \nYou can optionally nest another statement inside the rate\\-based statement, to narrow the scope of the rule so that it only counts requests that match the nested statement\\. For example, based on recent requests that you have seen from an attacker, you might create a rate\\-based rule with a nested AND rule statement that contains the following nested statements: \n+ An IP match statement with an IP set that specified the address 192\\.0\\.2\\.44\\.\n+ A string match statement that searches in the User\\-Agent header for the string BadBot\\.\nIn this rate\\-based rule, you also define a rate limit\\. For this example, the rate limit is 1,000\\. Requests that meet both of the conditions in the statements are counted\\. If the count exceeds 1,000 requests per five minutes, the rule action triggers\\. Requests that do not meet both conditions are not counted towards the rate limit and are not affected by this rule\\. \nYou cannot nest a `RateBasedStatement`, for example for use inside a `NotStatement` or `OrStatement`\\. It can only be referenced as a top\\-level statement within a rule\\. \n*Required*: No \n*Type*: [RateBasedStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ratebasedstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegexMatchStatement": "A rule statement used to search web request components for a match against a single regular expression\\. \n*Required*: No \n*Type*: [RegexMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-regexmatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegexPatternSetReferenceStatement": "A rule statement used to search web request components for matches with regular expressions\\. To use this, create a [AWS::WAFv2::RegexPatternSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-regexpatternset.html) that specifies the expressions that you want to detect, then use the ARN of that set in this statement\\. A web request matches the pattern set rule statement if the request component matches any of the patterns in the set\\. \nEach regex pattern set rule statement references a regex pattern set\\. You create and maintain the set independent of your rules\\. This allows you to use the single set in multiple rules\\. When you update the referenced set, AWS WAF automatically updates all rules that reference it\\. \n*Required*: No \n*Type*: [RegexPatternSetReferenceStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-regexpatternsetreferencestatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleGroupReferenceStatement": "A rule statement used to run the rules that are defined in a [AWS::WAFv2::RuleGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-rulegroup.html)\\. To use this, create a rule group with your rules, then provide the ARN of the rule group in this statement\\. \nYou cannot nest a `RuleGroupReferenceStatement`, for example for use inside a `NotStatement` or `OrStatement`\\. It can only be referenced as a top\\-level statement within a rule\\. \n*Required*: No \n*Type*: [RuleGroupReferenceStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-rulegroupreferencestatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SizeConstraintStatement": "A rule statement that compares a number of bytes against the size of a request component, using a comparison operator, such as greater than \\(>\\) or less than \\(<\\)\\. For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes\\. \nIf you configure AWS WAF to inspect the request body, AWS WAF inspects only the first 8192 bytes \\(8 KB\\)\\. If the request body for your web requests never exceeds 8192 bytes, you can create a size constraint condition and block requests that have a request body greater than 8192 bytes\\. \nIf you choose URI for the value of Part of the request to filter on, the slash \\(/\\) in the URI counts as one character\\. For example, the URI `/logo.jpg` is nine characters long\\. \n*Required*: No \n*Type*: [SizeConstraintStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-sizeconstraintstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SqliMatchStatement": "Attackers sometimes insert malicious SQL code into web requests in an effort to extract data from your database\\. To allow or block web requests that appear to contain malicious SQL code, create one or more SQL injection match conditions\\. An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect\\. Later in the process, when you create a web ACL, you specify whether to allow or block requests that appear to contain malicious SQL code\\. \n*Required*: No \n*Type*: [SqliMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-sqlimatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "XssMatchStatement": "A rule statement that defines a cross\\-site scripting \\(XSS\\) match search for AWS WAF to apply to web requests\\. XSS attacks are those where the attacker uses vulnerabilities in a benign website as a vehicle to inject malicious client\\-site scripts into other legitimate web browsers\\. The XSS match statement provides the location in requests that you want AWS WAF to search and text transformations to use on the search area before AWS WAF searches for character sequences that are likely to be malicious strings\\. \n*Required*: No \n*Type*: [XssMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-xssmatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL TextTransformation": { + "Priority": "Sets the relative processing order for multiple transformations that are defined for a rule statement\\. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content\\. The priorities don't need to be consecutive, but they must all be different\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Type": "You can specify the following transformation types: \n **BASE64\\_DECODE** \\- Decode a `Base64`\\-encoded string\\. \n **BASE64\\_DECODE\\_EXT** \\- Decode a `Base64`\\-encoded string, but use a forgiving implementation that ignores characters that aren't valid\\. \n **CMD\\_LINE** \\- Command\\-line transformations\\. These are helpful in reducing effectiveness of attackers who inject an operating system command\\-line command and use unusual formatting to disguise some or all of the command\\. \n+ Delete the following characters: `\\ \" ' ^` \n+ Delete spaces before the following characters: `/ (` \n+ Replace the following characters with a space: `, ;` \n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \\- Replace these characters with a space character \\(decimal 32\\): \n+ `\\f`, formfeed, decimal 12\n+ `\\t`, tab, decimal 9\n+ `\\n`, newline, decimal 10\n+ `\\r`, carriage return, decimal 13\n+ `\\v`, vertical tab, decimal 11\n+ Non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **CSS\\_DECODE** \\- Decode characters that were encoded using CSS 2\\.x escape rules `syndata.html#characters`\\. This function uses up to two bytes in the decoding process, so it can help to uncover ASCII characters that were encoded using CSS encoding that wouldn\u2019t typically be encoded\\. It's also useful in countering evasion, which is a combination of a backslash and non\\-hexadecimal characters\\. For example, `ja\\vascript` for javascript\\. \n **ESCAPE\\_SEQ\\_DECODE** \\- Decode the following ANSI C escape sequences: `\\a`, `\\b`, `\\f`, `\\n`, `\\r`, `\\t`, `\\v`, `\\\\`, `\\?`, `\\'`, `\\\"`, `\\xHH` \\(hexadecimal\\), `\\0OOO` \\(octal\\)\\. Encodings that aren't valid remain in the output\\. \n **HEX\\_DECODE** \\- Decode a string of hexadecimal characters into a binary\\. \n **HTML\\_ENTITY\\_DECODE** \\- Replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs these operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **JS\\_DECODE** \\- Decode JavaScript escape sequences\\. If a `\\` `u` `HHHH` code is in the full\\-width ASCII code range of `FF01-FF5E`, then the higher byte is used to detect and adjust the lower byte\\. If not, only the lower byte is used and the higher byte is zeroed, causing a possible loss of information\\. \n **LOWERCASE** \\- Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **MD5** \\- Calculate an MD5 hash from the data in the input\\. The computed hash is in a raw binary form\\. \n **NONE** \\- Specify `NONE` if you don't want any text transformations\\. \n **NORMALIZE\\_PATH** \\- Remove multiple slashes, directory self\\-references, and directory back\\-references that are not at the beginning of the input from an input string\\. \n **NORMALIZE\\_PATH\\_WIN** \\- This is the same as `NORMALIZE_PATH`, but first converts backslash characters to forward slashes\\. \n **REMOVE\\_NULLS** \\- Remove all `NULL` bytes from the input\\. \n **REPLACE\\_COMMENTS** \\- Replace each occurrence of a C\\-style comment \\(`/* ... */`\\) with a single space\\. Multiple consecutive occurrences are not compressed\\. Unterminated comments are also replaced with a space \\(ASCII 0x20\\)\\. However, a standalone termination of a comment \\(`*/`\\) is not acted upon\\. \n **REPLACE\\_NULLS** \\- Replace NULL bytes in the input with space characters \\(ASCII `0x20`\\)\\. \n **SQL\\_HEX\\_DECODE** \\- Decode SQL hex data\\. Example \\(`0x414243`\\) will be decoded to \\(`ABC`\\)\\. \n **URL\\_DECODE** \\- Decode a URL\\-encoded value\\. \n **URL\\_DECODE\\_UNI** \\- Like `URL_DECODE`, but with support for Microsoft\\-specific `%u` encoding\\. If the code is in the full\\-width ASCII code range of `FF01-FF5E`, the higher byte is used to detect and adjust the lower byte\\. Otherwise, only the lower byte is used and the higher byte is zeroed\\. \n **UTF8\\_TO\\_UNICODE** \\- Convert all UTF\\-8 character sequences to Unicode\\. This helps input normalization, and minimizing false\\-positives and false\\-negatives for non\\-English languages\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BASE64_DECODE | BASE64_DECODE_EXT | CMD_LINE | COMPRESS_WHITE_SPACE | CSS_DECODE | ESCAPE_SEQ_DECODE | HEX_DECODE | HTML_ENTITY_DECODE | JS_DECODE | LOWERCASE | MD5 | NONE | NORMALIZE_PATH | NORMALIZE_PATH_WIN | REMOVE_NULLS | REPLACE_COMMENTS | REPLACE_NULLS | SQL_HEX_DECODE | URL_DECODE | URL_DECODE_UNI | UTF8_TO_UNICODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL VisibilityConfig": { + "CloudWatchMetricsEnabled": "A boolean indicating whether the associated resource sends metrics to Amazon CloudWatch\\. For the list of available metrics, see [AWS WAF Metrics](https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MetricName": "The descriptive name of the Amazon CloudWatch metric\\. The name can contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\), with length from one to 128 characters\\. It can't contain whitespace or metric names reserved for AWS WAF, for example \"All\" and \"Default\\_Action\\.\" You can't change a `MetricName` after you create a `VisibilityConfig`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[\\w#:\\.\\-/]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SampledRequestsEnabled": "A boolean indicating whether AWS WAF should store a sampling of the web requests that match the rules\\. You can view the sampled requests through the AWS WAF console\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL XssMatchStatement": { + "FieldToMatch": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TextTransformations": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACLAssociation": { + "ResourceArn": "The Amazon Resource Name \\(ARN\\) of the resource to associate with the web ACL\\. \nThe ARN must be in one of the following formats: \n+ For an Application Load Balancer: `arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id ` \n+ For an Amazon API Gateway REST API: `arn:aws:apigateway:region::/restapis/api-id/stages/stage-name ` \n+ For an AWS AppSync GraphQL API: `arn:aws:appsync:region:account-id:apis/GraphQLApiId`\nFor Amazon CloudFront, define the association in your CloudFront distribution configuration\\. To associate a web ACL, provide the Amazon Resource Name \\(ARN\\) of the [AWS::WAFv2::WebACL](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html) to your CloudFront distribution configuration\\. To disassociate a web ACL, provide an empty ARN\\. For information, see [AWS::CloudFront::Distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "WebACLArn": "The Amazon Resource Name \\(ARN\\) of the web ACL that you want to associate with the resource\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Wisdom::Assistant": { + "Description": "The description of the assistant\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9\\s_.,-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the assistant\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9\\s_.,-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ServerSideEncryptionConfiguration": "The KMS key used for encryption\\. \n*Required*: No \n*Type*: [ServerSideEncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-assistant-serversideencryptionconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Type": "The type of assistant\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AGENT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Wisdom::Assistant ServerSideEncryptionConfiguration": { + "KmsKeyId": "The KMS key\\. For information about valid ID values, see [Key identifiers \\(KeyId\\)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Wisdom::AssistantAssociation": { + "AssistantId": "The identifier of the Wisdom assistant\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Association": "The identifier of the associated resource\\. \n*Required*: Yes \n*Type*: [AssociationData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-assistantassociation-associationdata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AssociationType": "The type of association\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `KNOWLEDGE_BASE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Wisdom::AssistantAssociation AssociationData": { + "KnowledgeBaseId": "The identifier of the knowledge base\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Wisdom::KnowledgeBase": { + "Description": "The description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9\\s_.,-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KnowledgeBaseType": "The type of knowledge base\\. Only CUSTOM knowledge bases allow you to upload your own content\\. EXTERNAL knowledge bases support integrations with third\\-party systems whose content is synchronized automatically\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CUSTOM | EXTERNAL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the knowledge base\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9\\s_.,-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "RenderingConfiguration": "Information about how to render the content\\. \n*Required*: No \n*Type*: [RenderingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-knowledgebase-renderingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServerSideEncryptionConfiguration": "The KMS key used for encryption\\. \n*Required*: No \n*Type*: [ServerSideEncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-knowledgebase-serversideencryptionconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SourceConfiguration": "The source of the knowledge base content\\. Only set this argument for EXTERNAL knowledge bases\\. \n*Required*: No \n*Type*: [SourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-knowledgebase-sourceconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Wisdom::KnowledgeBase AppIntegrationsConfiguration": { + "AppIntegrationArn": "The Amazon Resource Name \\(ARN\\) of the AppIntegrations DataIntegration to use for ingesting content\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `^arn:[a-z-]+?:[a-z-]+?:[a-z0-9-]*?:([0-9]{12})?:[a-zA-Z0-9-:/]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ObjectFields": "The fields from the source that are made available to your agents in Wisdom\\. \n+ For [ Salesforce](https://developer.salesforce.com/docs/atlas.en-us.knowledge_dev.meta/knowledge_dev/sforce_api_objects_knowledge__kav.htm), you must include at least `Id`, `ArticleNumber`, `VersionNumber`, `Title`, `PublishStatus`, and `IsDeleted`\\. \n+ For [ ServiceNow](https://developer.servicenow.com/dev.do#!/reference/api/rome/rest/knowledge-management-api), you must include at least `number`, `short_description`, `sys_mod_count`, `workflow_state`, and `active`\\. \nMake sure to include additional fields\\. These fields are indexed and used to source recommendations\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Wisdom::KnowledgeBase RenderingConfiguration": { + "TemplateUri": "A URI template containing exactly one variable in `${variableName} `format\\. This can only be set for `EXTERNAL` knowledge bases\\. For Salesforce and ServiceNow, the variable must be one of the following: \n+ Salesforce: `Id`, `ArticleNumber`, `VersionNumber`, `Title`, `PublishStatus`, or `IsDeleted`\n+ ServiceNow: `number`, `short_description`, `sys_mod_count`, `workflow_state`, or `active`\nThe variable is replaced with the actual value for a piece of content when calling [GetContent](https://docs.aws.amazon.com/wisdom/latest/APIReference/API_GetContent.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::Wisdom::KnowledgeBase ServerSideEncryptionConfiguration": { + "KmsKeyId": "The KMS key\\. For information about valid ID values, see [Key identifiers \\(KeyId\\)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::Wisdom::KnowledgeBase SourceConfiguration": { + "AppIntegrations": "Configuration information for Amazon AppIntegrations to automatically ingest content\\. \n*Required*: No \n*Type*: [AppIntegrationsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-knowledgebase-appintegrationsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::WorkSpaces::ConnectionAlias": { + "ConnectionString": "The connection string specified for the connection alias\\. The connection string must be in the form of a fully qualified domain name \\(FQDN\\), such as `www.example.com`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[.0-9a-zA-Z\\-]{1,255}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags to associate with the connection alias\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::WorkSpaces::ConnectionAlias ConnectionAliasAssociation": { + "AssociatedAccountId": "The identifier of the AWS account that associated the connection alias with a directory\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^\\d{12}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AssociationStatus": "The association status of the connection alias\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ASSOCIATED_WITH_OWNER_ACCOUNT | ASSOCIATED_WITH_SHARED_ACCOUNT | NOT_ASSOCIATED | PENDING_ASSOCIATION | PENDING_DISASSOCIATION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectionIdentifier": "The identifier of the connection alias association\\. You use the connection identifier in the DNS TXT record when you're configuring your DNS routing policies\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `20` \n*Pattern*: `^[a-zA-Z0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceId": "The identifier of the directory associated with a connection alias\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WorkSpaces::Workspace": { + "BundleId": "The identifier of the bundle for the WorkSpace\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^wsb-[0-9a-z]{8,63}$` \n*Update requires*: Updates are not supported\\.", + "DirectoryId": "The identifier of the AWS Directory Service directory for the WorkSpace\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `65` \n*Pattern*: `^d-[0-9a-f]{8,63}$` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "RootVolumeEncryptionEnabled": "Indicates whether the data stored on the root volume is encrypted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: Updates are not supported\\.", + "Tags": "The tags for the WorkSpace\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserName": "The user name of the user for the WorkSpace\\. This user name must exist in the AWS Directory Service directory for the WorkSpace\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "UserVolumeEncryptionEnabled": "Indicates whether the data stored on the user volume is encrypted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: Updates are not supported\\.", + "VolumeEncryptionKey": "The symmetric AWS KMS key used to encrypt data stored on your WorkSpace\\. Amazon WorkSpaces does not support asymmetric KMS keys\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "WorkspaceProperties": "The WorkSpace properties\\. \n*Required*: No \n*Type*: [WorkspaceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspace-workspaceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WorkSpaces::Workspace WorkspaceProperties": { + "ComputeTypeName": "The compute type\\. For more information, see [Amazon WorkSpaces Bundles](http://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GRAPHICS | GRAPHICSPRO | PERFORMANCE | POWER | POWERPRO | STANDARD | VALUE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RootVolumeSizeGib": "The size of the root volume\\. For important information about how to modify the size of the root and user volumes, see [Modify a WorkSpace](https://docs.aws.amazon.com/workspaces/latest/adminguide/modify-workspaces.html)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RunningMode": "The running mode\\. For more information, see [Manage the WorkSpace Running Mode](https://docs.aws.amazon.com/workspaces/latest/adminguide/running-mode.html)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ALWAYS_ON | AUTO_STOP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RunningModeAutoStopTimeoutInMinutes": "The time after a user logs off when WorkSpaces are automatically stopped\\. Configured in 60\\-minute intervals\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UserVolumeSizeGib": "The size of the user storage\\. For important information about how to modify the size of the root and user volumes, see [Modify a WorkSpace](https://docs.aws.amazon.com/workspaces/latest/adminguide/modify-workspaces.html)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::XRay::Group": { + "FilterExpression": "The filter expression defining the parameters to include traces\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "GroupName": "The unique case\\-sensitive name of the group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InsightsConfiguration": "The structure containing configurations related to insights\\. \n+ The InsightsEnabled boolean can be set to true to enable insights for the group or false to disable insights for the group\\.\n+ The NotificationsEnabled boolean can be set to true to enable insights notifications through Amazon EventBridge for the group\\.\n*Required*: No \n*Type*: [InsightsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-xray-group-insightsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::XRay::Group InsightsConfiguration": { + "InsightsEnabled": "Set the InsightsEnabled value to true to enable insights or false to disable insights\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "NotificationsEnabled": "Set the NotificationsEnabled value to true to enable insights notifications\\. Notifications can only be enabled on a group with InsightsEnabled set to true\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::XRay::SamplingRule": { + "RuleName": "The name of the sampling rule\\. Specify a rule by either name or ARN, but not both\\. Used only when deleting a sampling rule\\. When creating or updating a sampling rule, use the `RuleName` or `RuleARN` properties within `SamplingRule` or `SamplingRuleUpdate`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SamplingRule": "The sampling rule to be created\\. \nMust be provided if creating a new sampling rule\\. Not valid when updating an existing sampling rule\\. \n*Required*: Conditional \n*Type*: [SamplingRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-xray-samplingrule-samplingrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SamplingRuleRecord": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [SamplingRuleRecord](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-xray-samplingrule-samplingrulerecord.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SamplingRuleUpdate": "A document specifying changes to a sampling rule's configuration\\. \nMust be provided if updating an existing sampling rule\\. Not valid when creating a new sampling rule\\. \nThe `Version` of a sampling rule cannot be updated, and is not part of `SamplingRuleUpdate`\\.\n*Required*: Conditional \n*Type*: [SamplingRuleUpdate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-xray-samplingrule-samplingruleupdate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::XRay::SamplingRule SamplingRule": { + "Attributes": "Matches attributes derived from the request\\. \n*Map Entries:* Maximum number of 5 items\\. \n*Key Length Constraints:* Minimum length of 1\\. Maximum length of 32\\. \n*Value Length Constraints:* Minimum length of 1\\. Maximum length of 32\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FixedRate": "The percentage of matching requests to instrument, after the reservoir is exhausted\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HTTPMethod": "Matches the HTTP method of a request\\. \n*Required*: No \n*Type*: String \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Host": "Matches the hostname from a request URL\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Priority": "The priority of the sampling rule\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `9999` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReservoirSize": "A fixed number of matching requests to instrument per second, prior to applying the fixed rate\\. The reservoir is not used directly by services, but applies to all services using the rule collectively\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceARN": "Matches the ARN of the AWS resource on which the service runs\\. \n*Required*: No \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleARN": "The ARN of the sampling rule\\. You must specify either RuleARN or RuleName, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleName": "The name of the sampling rule\\. You must specify either RuleARN or RuleName, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceName": "Matches the `name` that the service uses to identify itself in segments\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceType": "Matches the `origin` that the service uses to identify its type in segments\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "URLPath": "Matches the path from a request URL\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Version": "The version of the sampling rule format \\(`1`\\)\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::XRay::SamplingRule SamplingRuleRecord": { + "CreatedAt": "When the rule was created, in Unix time seconds\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ModifiedAt": "When the rule was last modified, in Unix time seconds\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SamplingRule": "The sampling rule\\. \n*Required*: No \n*Type*: [SamplingRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-xray-samplingrule-samplingrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::XRay::SamplingRule SamplingRuleUpdate": { + "Attributes": "Matches attributes derived from the request\\. \n*Map Entries:* Maximum number of 5 items\\. \n*Key Length Constraints:* Minimum length of 1\\. Maximum length of 32\\. \n*Value Length Constraints:* Minimum length of 1\\. Maximum length of 32\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FixedRate": "The percentage of matching requests to instrument, after the reservoir is exhausted\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HTTPMethod": "Matches the HTTP method of a request\\. \n*Required*: No \n*Type*: String \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Host": "Matches the hostname from a request URL\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Priority": "The priority of the sampling rule\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ReservoirSize": "A fixed number of matching requests to instrument per second, prior to applying the fixed rate\\. The reservoir is not used directly by services, but applies to all services using the rule collectively\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceARN": "Matches the ARN of the AWS resource on which the service runs\\. \n*Required*: No \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleARN": "The ARN of the sampling rule\\. You must specify either RuleARN or RuleName, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RuleName": "The name of the sampling rule\\. You must specify either RuleARN or RuleName, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceName": "Matches the `name` that the service uses to identify itself in segments\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ServiceType": "Matches the `origin` that the service uses to identify its type in segments\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "URLPath": "Matches the path from a request URL\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "Alexa::ASK::Skill": { + "AuthenticationConfiguration": "Login with Amazon \\(LWA\\) configuration used to authenticate with the Alexa service\\. Only Login with Amazon clients created through the [Amazon Developer Console](https://developer.amazon.com/lwa/sp/overview.html) are supported\\. The client ID, client secret, and refresh token are required\\. \n*Required*: Yes \n*Type*: [AuthenticationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-authenticationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SkillPackage": "Configuration for the skill package that contains the components of the Alexa skill\\. Skill packages are retrieved from an Amazon S3 bucket and key and used to create and update the skill\\. For more information about the skill package format, see the [Skill Package API Reference](https://developer.amazon.com/docs/smapi/skill-package-api-reference.html#skill-package-format)\\. \n*Required*: Yes \n*Type*: [SkillPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-skillpackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "VendorId": "The vendor ID associated with the Amazon developer account that will host the skill\\. Details for retrieving the vendor ID are in [How to get your vendor ID](https://github.com/alexa/alexa-smarthome/wiki/How-to-get-your-vendor-ID)\\. The provided LWA credentials must be linked to the developer account associated with this vendor ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "Alexa::ASK::Skill AuthenticationConfiguration": { + "ClientId": "Client ID from Login with Amazon \\(LWA\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientSecret": "Client secret from Login with Amazon \\(LWA\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RefreshToken": "Refresh token from Login with Amazon \\(LWA\\)\\. This token is secret\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "Alexa::ASK::Skill Overrides": { + "Manifest": "Overrides to apply to the skill manifest inside of the skill package\\. The skill manifest contains metadata about the skill\\. For more information, see [Skill Manifest Schemas](https://developer.amazon.com/docs/smapi/skill-manifest.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "Alexa::ASK::Skill SkillPackage": { + "Overrides": "Overrides to the skill package to apply when creating or updating the skill\\. Values provided here do not modify the contents of the original skill package\\. Currently, only overriding values inside of the skill manifest component of the package is supported\\. \n*Required*: No \n*Type*: [Overrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-overrides.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Bucket": "The name of the Amazon S3 bucket where the \\.zip file that contains the skill package is stored\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3BucketRole": "ARN of the IAM role that grants the Alexa service \\(`alexa-appkit.amazon.com`\\) permission to access the bucket and retrieve the skill package\\. This property is optional\\. If you do not provide it, the bucket must be publicly accessible or configured with a policy that allows this access\\. Otherwise, AWS CloudFormation cannot create the skill\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3Key": "The location and name of the skill package \\.zip file\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3ObjectVersion": "If you have S3 versioning enabled, the version ID of the skill package\\.zip file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + } + } +} diff --git a/schema_source/cloudformation.schema.json b/schema_source/cloudformation.schema.json new file mode 100644 index 000000000..42fbcd83d --- /dev/null +++ b/schema_source/cloudformation.schema.json @@ -0,0 +1,190080 @@ +{ + "$id": "http://json-schema.org/draft-04/schema#", + "additionalProperties": false, + "definitions": { + "AWS::ACMPCA::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": { + "ApiPassthrough": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.ApiPassthrough", + "markdownDescription": "Specifies X\\.509 certificate information to be included in the issued certificate\\. An `APIPassthrough` or `APICSRPassthrough` template variant must be selected, or else this parameter is ignored\\. \n*Required*: No \n*Type*: [ApiPassthrough](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-apipassthrough.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiPassthrough" + }, + "CertificateAuthorityArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the private CA issues the certificate\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateAuthorityArn", + "type": "string" + }, + "CertificateSigningRequest": { + "markdownDescription": "The certificate signing request \\(CSR\\) for the certificate\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateSigningRequest", + "type": "string" + }, + "SigningAlgorithm": { + "markdownDescription": "The name of the algorithm that will be used to sign the certificate to be issued\\. \nThis parameter should not be confused with the `SigningAlgorithm` parameter used to sign a CSR in the `CreateCertificateAuthority` action\\. \nThe specified signing algorithm family \\(RSA or ECDSA\\) must match the algorithm family of the CA's secret key\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `SHA256WITHECDSA | SHA256WITHRSA | SHA384WITHECDSA | SHA384WITHRSA | SHA512WITHECDSA | SHA512WITHRSA` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SigningAlgorithm", + "type": "string" + }, + "TemplateArn": { + "markdownDescription": "Specifies a custom configuration template to use when issuing a certificate\\. If this parameter is not provided, ACM Private CA defaults to the `EndEntityCertificate/V1` template\\. For more information about ACM Private CA templates, see [Using Templates](https://docs.aws.amazon.com/acm-pca/latest/userguide/UsingTemplates.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TemplateArn", + "type": "string" + }, + "Validity": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.Validity", + "markdownDescription": "The period of time during which the certificate will be valid\\. \n*Required*: Yes \n*Type*: [Validity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-validity.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Validity" + }, + "ValidityNotBefore": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.Validity", + "markdownDescription": "Information describing the start of the validity period of the certificate\\. This parameter sets the \u201cNot Before\" date for the certificate\\. \nBy default, when issuing a certificate, ACM Private CA sets the \"Not Before\" date to the issuance time minus 60 minutes\\. This compensates for clock inconsistencies across computer systems\\. The `ValidityNotBefore` parameter can be used to customize the \u201cNot Before\u201d value\\. \nUnlike the `Validity` parameter, the `ValidityNotBefore` parameter is optional\\. \nThe `ValidityNotBefore` value is expressed as an explicit date and time, using the `Validity` type value `ABSOLUTE`\\. \n*Required*: No \n*Type*: [Validity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-validity.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ValidityNotBefore" + } + }, + "required": [ + "CertificateAuthorityArn", + "CertificateSigningRequest", + "SigningAlgorithm", + "Validity" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ACMPCA::Certificate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ACMPCA::Certificate.ApiPassthrough": { + "additionalProperties": false, + "properties": { + "Extensions": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.Extensions", + "markdownDescription": "Specifies X\\.509 extension information for a certificate\\. \n*Required*: No \n*Type*: [Extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-extensions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Extensions" + }, + "Subject": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.Subject", + "markdownDescription": "Contains information about the certificate subject\\. The Subject field in the certificate identifies the entity that owns or controls the public key in the certificate\\. The entity can be a user, computer, device, or service\\. The Subject must contain an X\\.500 distinguished name \\(DN\\)\\. A DN is a sequence of relative distinguished names \\(RDNs\\)\\. The RDNs are separated by commas in the certificate\\. \n*Required*: No \n*Type*: [Subject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-subject.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subject" + } + }, + "type": "object" + }, + "AWS::ACMPCA::Certificate.CustomAttribute": { + "additionalProperties": false, + "properties": { + "ObjectIdentifier": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "ObjectIdentifier", + "Value" + ], + "type": "object" + }, + "AWS::ACMPCA::Certificate.CustomExtension": { + "additionalProperties": false, + "properties": { + "Critical": { + "type": "boolean" + }, + "ObjectIdentifier": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "ObjectIdentifier", + "Value" + ], + "type": "object" + }, + "AWS::ACMPCA::Certificate.EdiPartyName": { + "additionalProperties": false, + "properties": { + "NameAssigner": { + "markdownDescription": "Specifies the name assigner\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NameAssigner", + "type": "string" + }, + "PartyName": { + "markdownDescription": "Specifies the party name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PartyName", + "type": "string" + } + }, + "required": [ + "NameAssigner", + "PartyName" + ], + "type": "object" + }, + "AWS::ACMPCA::Certificate.ExtendedKeyUsage": { + "additionalProperties": false, + "properties": { + "ExtendedKeyUsageObjectIdentifier": { + "markdownDescription": "Specifies a custom `ExtendedKeyUsage` with an object identifier \\(OID\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `^([0-2])\\.([0-9]|([0-3][0-9]))((\\.([0-9]+)){0,126})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExtendedKeyUsageObjectIdentifier", + "type": "string" + }, + "ExtendedKeyUsageType": { + "markdownDescription": "Specifies a standard `ExtendedKeyUsage` as defined as in [RFC 5280](https://tools.ietf.org/html/rfc5280#section-4.2.1.12)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CERTIFICATE_TRANSPARENCY | CLIENT_AUTH | CODE_SIGNING | DOCUMENT_SIGNING | EMAIL_PROTECTION | OCSP_SIGNING | SERVER_AUTH | SMART_CARD_LOGIN | TIME_STAMPING` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExtendedKeyUsageType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ACMPCA::Certificate.Extensions": { + "additionalProperties": false, + "properties": { + "CertificatePolicies": { + "items": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.PolicyInformation" + }, + "markdownDescription": "Contains a sequence of one or more policy information terms, each of which consists of an object identifier \\(OID\\) and optional qualifiers\\. For more information, see NIST's definition of [Object Identifier \\(OID\\)](https://csrc.nist.gov/glossary/term/Object_Identifier)\\. \nIn an end\\-entity certificate, these terms indicate the policy under which the certificate was issued and the purposes for which it may be used\\. In a CA certificate, these terms limit the set of policies for certification paths that include this certificate\\. \n*Required*: No \n*Type*: List of [PolicyInformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-policyinformation.html) \n*Maximum*: `20` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificatePolicies", + "type": "array" + }, + "CustomExtensions": { + "items": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.CustomExtension" + }, + "type": "array" + }, + "ExtendedKeyUsage": { + "items": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.ExtendedKeyUsage" + }, + "markdownDescription": "Specifies additional purposes for which the certified public key may be used other than basic purposes indicated in the `KeyUsage` extension\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-extendedkeyusage.html) of [ExtendedKeyUsage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-extendedkeyusage.html) \n*Maximum*: `20` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExtendedKeyUsage", + "type": "array" + }, + "KeyUsage": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.KeyUsage", + "markdownDescription": "Defines one or more purposes for which the key contained in the certificate can be used\\. Default value for each option is false\\. \n*Required*: No \n*Type*: [KeyUsage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-keyusage.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyUsage" + }, + "SubjectAlternativeNames": { + "items": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.GeneralName" + }, + "markdownDescription": "The subject alternative name extension allows identities to be bound to the subject of the certificate\\. These identities may be included in addition to or in place of the identity in the subject field of the certificate\\. \n*Required*: No \n*Type*: List of [GeneralName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-generalname.html) \n*Maximum*: `20` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubjectAlternativeNames", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ACMPCA::Certificate.GeneralName": { + "additionalProperties": false, + "properties": { + "DirectoryName": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.Subject", + "markdownDescription": "Contains information about the certificate subject\\. The certificate can be one issued by your private certificate authority \\(CA\\) or it can be your private CA certificate\\. The Subject field in the certificate identifies the entity that owns or controls the public key in the certificate\\. The entity can be a user, computer, device, or service\\. The Subject must contain an X\\.500 distinguished name \\(DN\\)\\. A DN is a sequence of relative distinguished names \\(RDNs\\)\\. The RDNs are separated by commas in the certificate\\. The DN must be unique for each entity, but your private CA can issue more than one certificate with the same DN to the same entity\\. \n*Required*: No \n*Type*: [Subject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-subject.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DirectoryName" + }, + "DnsName": { + "markdownDescription": "Represents `GeneralName` as a DNS name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `253` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DnsName", + "type": "string" + }, + "EdiPartyName": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.EdiPartyName", + "markdownDescription": "Represents `GeneralName` as an `EdiPartyName` object\\. \n*Required*: No \n*Type*: [EdiPartyName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-edipartyname.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EdiPartyName" + }, + "IpAddress": { + "markdownDescription": "Represents `GeneralName` as an IPv4 or IPv6 address\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `39` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpAddress", + "type": "string" + }, + "OtherName": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.OtherName", + "markdownDescription": "Represents `GeneralName` using an `OtherName` object\\. \n*Required*: No \n*Type*: [OtherName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-othername.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OtherName" + }, + "RegisteredId": { + "markdownDescription": "Represents `GeneralName` as an object identifier \\(OID\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `^([0-2])\\.([0-9]|([0-3][0-9]))((\\.([0-9]+)){0,126})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RegisteredId", + "type": "string" + }, + "Rfc822Name": { + "markdownDescription": "Represents `GeneralName` as an [RFC 822](https://tools.ietf.org/html/rfc822) email address\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Rfc822Name", + "type": "string" + }, + "UniformResourceIdentifier": { + "markdownDescription": "Represents `GeneralName` as a URI\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `253` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UniformResourceIdentifier", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ACMPCA::Certificate.KeyUsage": { + "additionalProperties": false, + "properties": { + "CRLSign": { + "markdownDescription": "Key can be used to sign CRLs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CRLSign", + "type": "boolean" + }, + "DataEncipherment": { + "markdownDescription": "Key can be used to decipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataEncipherment", + "type": "boolean" + }, + "DecipherOnly": { + "markdownDescription": "Key can be used only to decipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DecipherOnly", + "type": "boolean" + }, + "DigitalSignature": { + "markdownDescription": "Key can be used for digital signing\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DigitalSignature", + "type": "boolean" + }, + "EncipherOnly": { + "markdownDescription": "Key can be used only to encipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncipherOnly", + "type": "boolean" + }, + "KeyAgreement": { + "markdownDescription": "Key can be used in a key\\-agreement protocol\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyAgreement", + "type": "boolean" + }, + "KeyCertSign": { + "markdownDescription": "Key can be used to sign certificates\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyCertSign", + "type": "boolean" + }, + "KeyEncipherment": { + "markdownDescription": "Key can be used to encipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyEncipherment", + "type": "boolean" + }, + "NonRepudiation": { + "markdownDescription": "Key can be used for non\\-repudiation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NonRepudiation", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::ACMPCA::Certificate.OtherName": { + "additionalProperties": false, + "properties": { + "TypeId": { + "markdownDescription": "Specifies an OID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `^([0-2])\\.([0-9]|([0-3][0-9]))((\\.([0-9]+)){0,126})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TypeId", + "type": "string" + }, + "Value": { + "markdownDescription": "Specifies an OID value\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "TypeId", + "Value" + ], + "type": "object" + }, + "AWS::ACMPCA::Certificate.PolicyInformation": { + "additionalProperties": false, + "properties": { + "CertPolicyId": { + "markdownDescription": "Specifies the object identifier \\(OID\\) of the certificate policy under which the certificate was issued\\. For more information, see NIST's definition of [Object Identifier \\(OID\\)](https://csrc.nist.gov/glossary/term/Object_Identifier)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `^([0-2])\\.([0-9]|([0-3][0-9]))((\\.([0-9]+)){0,126})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertPolicyId", + "type": "string" + }, + "PolicyQualifiers": { + "items": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.PolicyQualifierInfo" + }, + "markdownDescription": "Modifies the given `CertPolicyId` with a qualifier\\. ACM Private CA supports the certification practice statement \\(CPS\\) qualifier\\. \n*Required*: No \n*Type*: List of [PolicyQualifierInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-policyqualifierinfo.html) \n*Maximum*: `20` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PolicyQualifiers", + "type": "array" + } + }, + "required": [ + "CertPolicyId" + ], + "type": "object" + }, + "AWS::ACMPCA::Certificate.PolicyQualifierInfo": { + "additionalProperties": false, + "properties": { + "PolicyQualifierId": { + "markdownDescription": "Identifies the qualifier modifying a `CertPolicyId`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CPS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PolicyQualifierId", + "type": "string" + }, + "Qualifier": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.Qualifier", + "markdownDescription": "Defines the qualifier type\\. ACM Private CA supports the use of a URI for a CPS qualifier in this field\\. \n*Required*: Yes \n*Type*: [Qualifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-qualifier.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Qualifier" + } + }, + "required": [ + "PolicyQualifierId", + "Qualifier" + ], + "type": "object" + }, + "AWS::ACMPCA::Certificate.Qualifier": { + "additionalProperties": false, + "properties": { + "CpsUri": { + "markdownDescription": "Contains a pointer to a certification practice statement \\(CPS\\) published by the CA\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CpsUri", + "type": "string" + } + }, + "required": [ + "CpsUri" + ], + "type": "object" + }, + "AWS::ACMPCA::Certificate.Subject": { + "additionalProperties": false, + "properties": { + "CommonName": { + "markdownDescription": "For CA and end\\-entity certificates in a private PKI, the common name \\(CN\\) can be any string within the length limit\\. \nNote: In publicly trusted certificates, the common name must be a fully qualified domain name \\(FQDN\\) associated with the certificate subject\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CommonName", + "type": "string" + }, + "Country": { + "markdownDescription": "Two\\-digit code that specifies the country in which the certificate subject located\\. \n*Required*: No \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `2` \n*Pattern*: `[A-Za-z]{2}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Country", + "type": "string" + }, + "CustomAttributes": { + "items": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.CustomAttribute" + }, + "type": "array" + }, + "DistinguishedNameQualifier": { + "markdownDescription": "Disambiguating information for the certificate subject\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `[a-zA-Z0-9'()+-.?:/= ]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DistinguishedNameQualifier", + "type": "string" + }, + "GenerationQualifier": { + "markdownDescription": "Typically a qualifier appended to the name of an individual\\. Examples include Jr\\. for junior, Sr\\. for senior, and III for third\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `3` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GenerationQualifier", + "type": "string" + }, + "GivenName": { + "markdownDescription": "First name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `16` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GivenName", + "type": "string" + }, + "Initials": { + "markdownDescription": "Concatenation that typically contains the first letter of the **GivenName**, the first letter of the middle name if one exists, and the first letter of the **Surname**\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `5` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Initials", + "type": "string" + }, + "Locality": { + "markdownDescription": "The locality \\(such as a city or town\\) in which the certificate subject is located\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Locality", + "type": "string" + }, + "Organization": { + "markdownDescription": "Legal name of the organization with which the certificate subject is affiliated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Organization", + "type": "string" + }, + "OrganizationalUnit": { + "markdownDescription": "A subdivision or unit of the organization \\(such as sales or finance\\) with which the certificate subject is affiliated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OrganizationalUnit", + "type": "string" + }, + "Pseudonym": { + "markdownDescription": "Typically a shortened version of a longer **GivenName**\\. For example, Jonathan is often shortened to John\\. Elizabeth is often shortened to Beth, Liz, or Eliza\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Pseudonym", + "type": "string" + }, + "SerialNumber": { + "markdownDescription": "The certificate serial number\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `[a-zA-Z0-9'()+-.?:/= ]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SerialNumber", + "type": "string" + }, + "State": { + "markdownDescription": "State in which the subject of the certificate is located\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "State", + "type": "string" + }, + "Surname": { + "markdownDescription": "Family name\\. In the US and the UK, for example, the surname of an individual is ordered last\\. In Asian cultures the surname is typically ordered first\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `40` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Surname", + "type": "string" + }, + "Title": { + "markdownDescription": "A title such as Mr\\. or Ms\\., which is pre\\-pended to the name to refer formally to the certificate subject\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Title", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ACMPCA::Certificate.Validity": { + "additionalProperties": false, + "properties": { + "Type": { + "markdownDescription": "Specifies whether the `Value` parameter represents days, months, or years\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ABSOLUTE | DAYS | END_DATE | MONTHS | YEARS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + }, + "Value": { + "markdownDescription": "A long integer interpreted according to the value of `Type`, below\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", + "type": "number" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::ACMPCA::CertificateAuthority": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "CsrExtensions": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.CsrExtensions", + "markdownDescription": "Specifies information to be added to the extension section of the certificate signing request \\(CSR\\)\\. \n*Required*: No \n*Type*: [CsrExtensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-csrextensions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CsrExtensions" + }, + "KeyAlgorithm": { + "markdownDescription": "Type of the public key algorithm and size, in bits, of the key pair that your CA creates when it issues a certificate\\. When you create a subordinate CA, you must use a key algorithm supported by the parent CA\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EC_prime256v1 | EC_secp384r1 | RSA_2048 | RSA_4096` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyAlgorithm", + "type": "string" + }, + "KeyStorageSecurityStandard": { + "markdownDescription": "Specifies a cryptographic key management compliance standard used for handling CA keys\\. \nDefault: FIPS\\_140\\_2\\_LEVEL\\_3\\_OR\\_HIGHER \nNote: `FIPS_140_2_LEVEL_3_OR_HIGHER` is not supported in Region ap\\-northeast\\-3\\. When creating a CA in the ap\\-northeast\\-3, you must provide `FIPS_140_2_LEVEL_2_OR_HIGHER` as the argument for `KeyStorageSecurityStandard`\\. Failure to do this results in an `InvalidArgsException` with the message, \"A certificate authority cannot be created in this region with the specified security standard\\.\" \n*Required*: No \n*Type*: String \n*Allowed values*: `FIPS_140_2_LEVEL_2_OR_HIGHER | FIPS_140_2_LEVEL_3_OR_HIGHER` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyStorageSecurityStandard", + "type": "string" + }, + "RevocationConfiguration": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.RevocationConfiguration", + "markdownDescription": "Information about the certificate revocation list \\(CRL\\) created and maintained by your private CA\\. Certificate revocation information used by the CreateCertificateAuthority and UpdateCertificateAuthority actions\\. Your certificate authority can create and maintain a certificate revocation list \\(CRL\\)\\. A CRL contains information about certificates that have been revoked\\. \n*Required*: No \n*Type*: [RevocationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-revocationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RevocationConfiguration" + }, + "SigningAlgorithm": { + "markdownDescription": "Name of the algorithm your private CA uses to sign certificate requests\\. \nThis parameter should not be confused with the `SigningAlgorithm` parameter used to sign certificates when they are issued\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SHA256WITHECDSA | SHA256WITHRSA | SHA384WITHECDSA | SHA384WITHRSA | SHA512WITHECDSA | SHA512WITHRSA` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SigningAlgorithm", + "type": "string" + }, + "Subject": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.Subject", + "markdownDescription": "Structure that contains X\\.500 distinguished name information for your private CA\\. \n*Required*: Yes \n*Type*: [Subject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-subject.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subject" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Key\\-value pairs that will be attached to the new private CA\\. You can associate up to 50 tags with a private CA\\. For information using tags with IAM to manage permissions, see [Controlling Access Using IAM Tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Type": { + "markdownDescription": "Type of your private CA\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ROOT | SUBORDINATE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + }, + "UsageMode": { + "type": "string" + } + }, + "required": [ + "KeyAlgorithm", + "SigningAlgorithm", + "Subject", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ACMPCA::CertificateAuthority" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ACMPCA::CertificateAuthority.AccessDescription": { + "additionalProperties": false, + "properties": { + "AccessLocation": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.GeneralName", + "markdownDescription": "The location of `AccessDescription` information\\. \n*Required*: Yes \n*Type*: [GeneralName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-generalname.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccessLocation" + }, + "AccessMethod": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.AccessMethod", + "markdownDescription": "The type and format of `AccessDescription` information\\. \n*Required*: Yes \n*Type*: [AccessMethod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-accessmethod.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccessMethod" + } + }, + "required": [ + "AccessLocation", + "AccessMethod" + ], + "type": "object" + }, + "AWS::ACMPCA::CertificateAuthority.AccessMethod": { + "additionalProperties": false, + "properties": { + "AccessMethodType": { + "markdownDescription": "Specifies the `AccessMethod`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CA_REPOSITORY | RESOURCE_PKI_MANIFEST | RESOURCE_PKI_NOTIFY` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccessMethodType", + "type": "string" + }, + "CustomObjectIdentifier": { + "markdownDescription": "An object identifier \\(OID\\) specifying the `AccessMethod`\\. The OID must satisfy the regular expression shown below\\. For more information, see NIST's definition of [Object Identifier \\(OID\\)](https://csrc.nist.gov/glossary/term/Object_Identifier)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `^([0-2])\\.([0-9]|([0-3][0-9]))((\\.([0-9]+)){0,126})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomObjectIdentifier", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ACMPCA::CertificateAuthority.CrlConfiguration": { + "additionalProperties": false, + "properties": { + "CustomCname": { + "markdownDescription": "Name inserted into the certificate **CRL Distribution Points** extension that enables the use of an alias for the CRL distribution point\\. Use this value if you don't want the name of your S3 bucket to be public\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `253` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomCname", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Boolean value that specifies whether certificate revocation lists \\(CRLs\\) are enabled\\. You can use this value to enable certificate revocation for a new CA when you call the `CreateCertificateAuthority` operation or for an existing CA when you call the `UpdateCertificateAuthority` operation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "ExpirationInDays": { + "markdownDescription": "Validity period of the CRL in days\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `5000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExpirationInDays", + "type": "number" + }, + "S3BucketName": { + "markdownDescription": "Name of the S3 bucket that contains the CRL\\. If you do not provide a value for the **CustomCname** argument, the name of your S3 bucket is placed into the **CRL Distribution Points** extension of the issued certificate\\. You can change the name of your bucket by calling the [UpdateCertificateAuthority](https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html) operation\\. You must specify a [bucket policy](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#s3-policies) that allows ACM Private CA to write the CRL to your bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketName", + "type": "string" + }, + "S3ObjectAcl": { + "markdownDescription": "Determines whether the CRL will be publicly readable or privately held in the CRL Amazon S3 bucket\\. If you choose PUBLIC\\_READ, the CRL will be accessible over the public internet\\. If you choose BUCKET\\_OWNER\\_FULL\\_CONTROL, only the owner of the CRL S3 bucket can access the CRL, and your PKI clients may need an alternative method of access\\. \nIf no value is specified, the default is PUBLIC\\_READ\\. \nThis default can cause CA creation to fail in some circumstances\\. If you have enabled the Block Public Access \\(BPA\\) feature in your S3 account, then you must specify the value of this parameter as `BUCKET_OWNER_FULL_CONTROL`, and not doing so results in an error\\. If you have disabled BPA in S3, then you can specify either `BUCKET_OWNER_FULL_CONTROL` or `PUBLIC_READ` as the value\\.\nFor more information, see [Blocking public access to the S3 bucket](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#s3-bpa)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3ObjectAcl", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ACMPCA::CertificateAuthority.CsrExtensions": { + "additionalProperties": false, + "properties": { + "KeyUsage": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.KeyUsage", + "markdownDescription": "Indicates the purpose of the certificate and of the key contained in the certificate\\. \n*Required*: No \n*Type*: [KeyUsage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-keyusage.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyUsage" + }, + "SubjectInformationAccess": { + "items": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.AccessDescription" + }, + "markdownDescription": "For CA certificates, provides a path to additional information pertaining to the CA, such as revocation and policy\\. For more information, see [Subject Information Access](https://tools.ietf.org/html/rfc5280#section-4.2.2.2) in RFC 5280\\. \n*Required*: No \n*Type*: List of [AccessDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-accessdescription.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubjectInformationAccess", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ACMPCA::CertificateAuthority.CustomAttribute": { + "additionalProperties": false, + "properties": { + "ObjectIdentifier": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "ObjectIdentifier", + "Value" + ], + "type": "object" + }, + "AWS::ACMPCA::CertificateAuthority.EdiPartyName": { + "additionalProperties": false, + "properties": { + "NameAssigner": { + "markdownDescription": "Specifies the name assigner\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NameAssigner", + "type": "string" + }, + "PartyName": { + "markdownDescription": "Specifies the party name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PartyName", + "type": "string" + } + }, + "required": [ + "NameAssigner", + "PartyName" + ], + "type": "object" + }, + "AWS::ACMPCA::CertificateAuthority.GeneralName": { + "additionalProperties": false, + "properties": { + "DirectoryName": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.Subject", + "markdownDescription": "Contains information about the certificate subject\\. The certificate can be one issued by your private certificate authority \\(CA\\) or it can be your private CA certificate\\. The Subject field in the certificate identifies the entity that owns or controls the public key in the certificate\\. The entity can be a user, computer, device, or service\\. The Subject must contain an X\\.500 distinguished name \\(DN\\)\\. A DN is a sequence of relative distinguished names \\(RDNs\\)\\. The RDNs are separated by commas in the certificate\\. The DN must be unique for each entity, but your private CA can issue more than one certificate with the same DN to the same entity\\. \n*Required*: No \n*Type*: [Subject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-subject.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DirectoryName" + }, + "DnsName": { + "markdownDescription": "Represents `GeneralName` as a DNS name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `253` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DnsName", + "type": "string" + }, + "EdiPartyName": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.EdiPartyName", + "markdownDescription": "Represents `GeneralName` as an `EdiPartyName` object\\. \n*Required*: No \n*Type*: [EdiPartyName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-edipartyname.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EdiPartyName" + }, + "IpAddress": { + "markdownDescription": "Represents `GeneralName` as an IPv4 or IPv6 address\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `39` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpAddress", + "type": "string" + }, + "OtherName": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.OtherName", + "markdownDescription": "Represents `GeneralName` using an `OtherName` object\\. \n*Required*: No \n*Type*: [OtherName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-othername.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OtherName" + }, + "RegisteredId": { + "markdownDescription": "Represents `GeneralName` as an object identifier \\(OID\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `^([0-2])\\.([0-9]|([0-3][0-9]))((\\.([0-9]+)){0,126})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RegisteredId", + "type": "string" + }, + "Rfc822Name": { + "markdownDescription": "Represents `GeneralName` as an [RFC 822](https://tools.ietf.org/html/rfc822) email address\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Rfc822Name", + "type": "string" + }, + "UniformResourceIdentifier": { + "markdownDescription": "Represents `GeneralName` as a URI\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `253` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UniformResourceIdentifier", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ACMPCA::CertificateAuthority.KeyUsage": { + "additionalProperties": false, + "properties": { + "CRLSign": { + "markdownDescription": "Key can be used to sign CRLs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CRLSign", + "type": "boolean" + }, + "DataEncipherment": { + "markdownDescription": "Key can be used to decipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataEncipherment", + "type": "boolean" + }, + "DecipherOnly": { + "markdownDescription": "Key can be used only to decipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DecipherOnly", + "type": "boolean" + }, + "DigitalSignature": { + "markdownDescription": "Key can be used for digital signing\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DigitalSignature", + "type": "boolean" + }, + "EncipherOnly": { + "markdownDescription": "Key can be used only to encipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncipherOnly", + "type": "boolean" + }, + "KeyAgreement": { + "markdownDescription": "Key can be used in a key\\-agreement protocol\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyAgreement", + "type": "boolean" + }, + "KeyCertSign": { + "markdownDescription": "Key can be used to sign certificates\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyCertSign", + "type": "boolean" + }, + "KeyEncipherment": { + "markdownDescription": "Key can be used to encipher data\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyEncipherment", + "type": "boolean" + }, + "NonRepudiation": { + "markdownDescription": "Key can be used for non\\-repudiation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NonRepudiation", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::ACMPCA::CertificateAuthority.OcspConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Flag enabling use of the Online Certificate Status Protocol \\(OCSP\\) for validating certificate revocation status\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "OcspCustomCname": { + "markdownDescription": "By default, ACM Private CA injects an Amazon domain into certificates being validated by the Online Certificate Status Protocol \\(OCSP\\)\\. A customer can alternatively use this object to define a CNAME specifying a customized OCSP domain\\. \nNote: The value of the CNAME must not include a protocol prefix such as \"http://\" or \"https://\"\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `253` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OcspCustomCname", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ACMPCA::CertificateAuthority.OtherName": { + "additionalProperties": false, + "properties": { + "TypeId": { + "markdownDescription": "Specifies an OID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `64` \n*Pattern*: `^([0-2])\\.([0-9]|([0-3][0-9]))((\\.([0-9]+)){0,126})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TypeId", + "type": "string" + }, + "Value": { + "markdownDescription": "Specifies an OID value\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "TypeId", + "Value" + ], + "type": "object" + }, + "AWS::ACMPCA::CertificateAuthority.RevocationConfiguration": { + "additionalProperties": false, + "properties": { + "CrlConfiguration": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.CrlConfiguration", + "markdownDescription": "Configuration of the certificate revocation list \\(CRL\\), if any, maintained by your private CA\\. \n*Required*: No \n*Type*: [CrlConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-crlconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CrlConfiguration" + }, + "OcspConfiguration": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.OcspConfiguration", + "markdownDescription": "Configuration of Online Certificate Status Protocol \\(OCSP\\) support, if any, maintained by your private CA\\. \n*Required*: No \n*Type*: [OcspConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-ocspconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OcspConfiguration" + } + }, + "type": "object" + }, + "AWS::ACMPCA::CertificateAuthority.Subject": { + "additionalProperties": false, + "properties": { + "CommonName": { + "markdownDescription": "Fully qualified domain name \\(FQDN\\) associated with the certificate subject\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CommonName", + "type": "string" + }, + "Country": { + "markdownDescription": "Two\\-digit code that specifies the country in which the certificate subject located\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Country", + "type": "string" + }, + "CustomAttributes": { + "items": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.CustomAttribute" + }, + "type": "array" + }, + "DistinguishedNameQualifier": { + "markdownDescription": "Disambiguating information for the certificate subject\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DistinguishedNameQualifier", + "type": "string" + }, + "GenerationQualifier": { + "markdownDescription": "Typically a qualifier appended to the name of an individual\\. Examples include Jr\\. for junior, Sr\\. for senior, and III for third\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GenerationQualifier", + "type": "string" + }, + "GivenName": { + "markdownDescription": "First name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GivenName", + "type": "string" + }, + "Initials": { + "markdownDescription": "Concatenation that typically contains the first letter of the GivenName, the first letter of the middle name if one exists, and the first letter of the SurName\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Initials", + "type": "string" + }, + "Locality": { + "markdownDescription": "The locality \\(such as a city or town\\) in which the certificate subject is located\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Locality", + "type": "string" + }, + "Organization": { + "markdownDescription": "Legal name of the organization with which the certificate subject is affiliated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Organization", + "type": "string" + }, + "OrganizationalUnit": { + "markdownDescription": "A subdivision or unit of the organization \\(such as sales or finance\\) with which the certificate subject is affiliated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OrganizationalUnit", + "type": "string" + }, + "Pseudonym": { + "markdownDescription": "Typically a shortened version of a longer GivenName\\. For example, Jonathan is often shortened to John\\. Elizabeth is often shortened to Beth, Liz, or Eliza\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Pseudonym", + "type": "string" + }, + "SerialNumber": { + "markdownDescription": "The certificate serial number\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SerialNumber", + "type": "string" + }, + "State": { + "markdownDescription": "State in which the subject of the certificate is located\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "State", + "type": "string" + }, + "Surname": { + "markdownDescription": "Family name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Surname", + "type": "string" + }, + "Title": { + "markdownDescription": "A personal title such as Mr\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Title", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ACMPCA::CertificateAuthorityActivation": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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": { + "markdownDescription": "The Base64 PEM\\-encoded certificate authority certificate\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate", + "type": "string" + }, + "CertificateAuthorityArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of your private CA\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateAuthorityArn", + "type": "string" + }, + "CertificateChain": { + "markdownDescription": "The Base64 PEM\\-encoded certificate chain that chains up to the root CA certificate that you used to sign your private CA certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateChain", + "type": "string" + }, + "Status": { + "markdownDescription": "Status of your private CA\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + } + }, + "required": [ + "Certificate", + "CertificateAuthorityArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ACMPCA::CertificateAuthorityActivation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ACMPCA::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": { + "Actions": { + "items": { + "type": "string" + }, + "markdownDescription": "The private CA actions that can be performed by the designated AWS service\\. Supported actions are `IssueCertificate`, `GetCertificate`, and `ListPermissions`\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Actions", + "type": "array" + }, + "CertificateAuthorityArn": { + "markdownDescription": "The Amazon Resource Number \\(ARN\\) of the private CA from which the permission was issued\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `5` \n*Maximum*: `200` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:[\\w+=/,.@-]*:[0-9]*:[\\w+=,.@-]+(/[\\w+=,.@-]+)*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateAuthorityArn", + "type": "string" + }, + "Principal": { + "markdownDescription": "The AWS service or entity that holds the permission\\. At this time, the only valid principal is `acm.amazonaws.com`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^[^*]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Principal", + "type": "string" + }, + "SourceAccount": { + "markdownDescription": "The ID of the account that assigned the permission\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `[0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceAccount", + "type": "string" + } + }, + "required": [ + "Actions", + "CertificateAuthorityArn", + "Principal" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ACMPCA::Permission" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::APS::RuleGroupsNamespace": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Data": { + "markdownDescription": "The rules definition file for this namespace\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Data", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the rule groups namespace\\. This property is required\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of key and value pairs for the workspace resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Workspace": { + "markdownDescription": "The ARN of the workspace that contains this rule groups namespace\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Workspace", + "type": "string" + } + }, + "required": [ + "Data", + "Name", + "Workspace" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::APS::RuleGroupsNamespace" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::APS::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": { + "AlertManagerDefinition": { + "markdownDescription": "The alert manager definition for the workspace, as a string\\. For more information, see [ Alert manager and templating](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-alert-manager.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlertManagerDefinition", + "type": "string" + }, + "Alias": { + "markdownDescription": "An alias that you assign to this workspace to help you identify it\\. It does not need to be unique\\. \n The alias can be as many as 100 characters and can include any type of characters\\. Amazon Managed Service for Prometheus automatically strips any blank spaces from the beginning and end of the alias that you specify\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alias", + "type": "string" + }, + "LoggingConfiguration": { + "$ref": "#/definitions/AWS::APS::Workspace.LoggingConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of tag keys and values to associate with the workspace\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::APS::Workspace" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::APS::Workspace.LoggingConfiguration": { + "additionalProperties": false, + "properties": { + "LogGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AccessAnalyzer::Analyzer": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AnalyzerName": { + "markdownDescription": "The name of the analyzer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AnalyzerName", + "type": "string" + }, + "ArchiveRules": { + "items": { + "$ref": "#/definitions/AWS::AccessAnalyzer::Analyzer.ArchiveRule" + }, + "markdownDescription": "Specifies the archive rules to add for the analyzer\\. \n*Required*: No \n*Type*: List of [ArchiveRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-archiverule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArchiveRules", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to apply to the analyzer\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Type": { + "markdownDescription": "The type represents the zone of trust for the analyzer\\. \n*Allowed Values*: ACCOUNT \\| ORGANIZATION \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AccessAnalyzer::Analyzer" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AccessAnalyzer::Analyzer.ArchiveRule": { + "additionalProperties": false, + "properties": { + "Filter": { + "items": { + "$ref": "#/definitions/AWS::AccessAnalyzer::Analyzer.Filter" + }, + "markdownDescription": "The criteria for the rule\\. \n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-filter.html) of [Filter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-filter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filter", + "type": "array" + }, + "RuleName": { + "markdownDescription": "The name of the archive rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleName", + "type": "string" + } + }, + "required": [ + "Filter", + "RuleName" + ], + "type": "object" + }, + "AWS::AccessAnalyzer::Analyzer.Filter": { + "additionalProperties": false, + "properties": { + "Contains": { + "items": { + "type": "string" + }, + "markdownDescription": "A \"contains\" condition to match for the rule\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Contains", + "type": "array" + }, + "Eq": { + "items": { + "type": "string" + }, + "markdownDescription": "An \"equals\" condition to match for the rule\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Eq", + "type": "array" + }, + "Exists": { + "markdownDescription": "An \"exists\" condition to match for the rule\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exists", + "type": "boolean" + }, + "Neq": { + "items": { + "type": "string" + }, + "markdownDescription": "A \"not equal\" condition to match for the rule\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Neq", + "type": "array" + }, + "Property": { + "markdownDescription": "The property used to define the criteria in the filter for the rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Property", + "type": "string" + } + }, + "required": [ + "Property" + ], + "type": "object" + }, + "AWS::AmazonMQ::Broker": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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": { + "markdownDescription": "Optional\\. The authentication strategy used to secure the broker\\. The default is `SIMPLE`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthenticationStrategy", + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "markdownDescription": "Enables automatic upgrades to new minor versions for brokers, as new broker engine versions are released and supported by Amazon MQ\\. Automatic upgrades occur during the scheduled maintenance window of the broker or after a manual broker reboot\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoMinorVersionUpgrade", + "type": "boolean" + }, + "BrokerName": { + "markdownDescription": "The name of the broker\\. This value must be unique in your AWS account, 1\\-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain white spaces, brackets, wildcard characters, or special characters\\. \n Do not add personally identifiable information \\(PII\\) or other confidential or sensitive information in broker names\\. Broker names are accessible to other AWS services, including CCloudWatch Logs\\. Broker names are not intended to be used for private or sensitive data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BrokerName", + "type": "string" + }, + "Configuration": { + "$ref": "#/definitions/AWS::AmazonMQ::Broker.ConfigurationId", + "markdownDescription": "A list of information about the configuration\\. Does not apply to RabbitMQ brokers\\. \n*Required*: No \n*Type*: [ConfigurationId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-configurationid.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Configuration" + }, + "DeploymentMode": { + "markdownDescription": "The deployment mode of the broker\\. Available values: \n+ `SINGLE_INSTANCE`\n+ `ACTIVE_STANDBY_MULTI_AZ`\n+ `CLUSTER_MULTI_AZ`\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeploymentMode", + "type": "string" + }, + "EncryptionOptions": { + "$ref": "#/definitions/AWS::AmazonMQ::Broker.EncryptionOptions", + "markdownDescription": "Encryption options for the broker\\. Does not apply to RabbitMQ brokers\\. \n*Required*: No \n*Type*: [EncryptionOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-encryptionoptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncryptionOptions" + }, + "EngineType": { + "markdownDescription": "The type of broker engine\\. Currently, Amazon MQ supports `ACTIVEMQ` and `RABBITMQ`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineType", + "type": "string" + }, + "EngineVersion": { + "markdownDescription": "The version of the broker engine\\. For a list of supported engine versions, see [Engine](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/broker-engine.html) in the *Amazon MQ Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EngineVersion", + "type": "string" + }, + "HostInstanceType": { + "markdownDescription": "The broker's instance type\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "HostInstanceType", + "type": "string" + }, + "LdapServerMetadata": { + "$ref": "#/definitions/AWS::AmazonMQ::Broker.LdapServerMetadata", + "markdownDescription": "Optional\\. The metadata of the LDAP server used to authenticate and authorize connections to the broker\\. Does not apply to RabbitMQ brokers\\. \n*Required*: No \n*Type*: [LdapServerMetadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LdapServerMetadata" + }, + "Logs": { + "$ref": "#/definitions/AWS::AmazonMQ::Broker.LogList", + "markdownDescription": "Enables Amazon CloudWatch logging for brokers\\. \n*Required*: No \n*Type*: [LogList](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-loglist.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Logs" + }, + "MaintenanceWindowStartTime": { + "$ref": "#/definitions/AWS::AmazonMQ::Broker.MaintenanceWindow", + "markdownDescription": "The scheduled time period relative to UTC during which Amazon MQ begins to apply pending updates or patches to the broker\\. \n*Required*: No \n*Type*: [MaintenanceWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-maintenancewindow.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaintenanceWindowStartTime" + }, + "PubliclyAccessible": { + "markdownDescription": "Enables connections from applications outside of the VPC that hosts the broker's subnets\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PubliclyAccessible", + "type": "boolean" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of rules \\(1 minimum, 125 maximum\\) that authorize connections to brokers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroups", + "type": "array" + }, + "StorageType": { + "markdownDescription": "The broker's storage type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StorageType", + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of groups that define which subnets and IP ranges the broker can use from different Availability Zones\\. If you specify more than one subnet, the subnets must be in different Availability Zones\\. Amazon MQ will not be able to create VPC endpoints for your broker with multiple subnets in the same Availability Zone\\. A SINGLE\\_INSTANCE deployment requires one subnet \\(for example, the default subnet\\)\\. An ACTIVE\\_STANDBY\\_MULTI\\_AZ deployment \\(ACTIVEMQ\\) requires two subnets\\. A CLUSTER\\_MULTI\\_AZ deployment \\(RABBITMQ\\) has no subnet requirements when deployed with public accessibility, deployment without public accessibility requires at least one subnet\\. \n If you specify subnets in a shared VPC for a RabbitMQ broker, the associated VPC to which the specified subnets belong must be owned by your AWS account\\. Amazon MQ will not be able to create VPC enpoints in VPCs that are not owned by your AWS account\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetIds", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AmazonMQ::Broker.TagsEntry" + }, + "markdownDescription": "An array of key\\-value pairs\\. For more information, see [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) in the *Billing and Cost Management User Guide*\\. \n*Required*: No \n*Type*: List of [TagsEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-tagsentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Users": { + "items": { + "$ref": "#/definitions/AWS::AmazonMQ::Broker.User" + }, + "markdownDescription": "The list of broker users \\(persons or applications\\) who can access queues and topics\\. For Amazon MQ for RabbitMQ brokers, one and only one administrative user is accepted and created when a broker is first provisioned\\. All subsequent RabbitMQ users are created by via the RabbitMQ web console or by using the RabbitMQ management API\\. \n*Required*: Yes \n*Type*: List of [User](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-user.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Users", + "type": "array" + } + }, + "required": [ + "AutoMinorVersionUpgrade", + "BrokerName", + "DeploymentMode", + "EngineType", + "EngineVersion", + "HostInstanceType", + "PubliclyAccessible", + "Users" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AmazonMQ::Broker" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AmazonMQ::Broker.ConfigurationId": { + "additionalProperties": false, + "properties": { + "Id": { + "markdownDescription": "The unique ID that Amazon MQ generates for the configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "Revision": { + "markdownDescription": "The revision number of the configuration\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Revision", + "type": "number" + } + }, + "required": [ + "Id", + "Revision" + ], + "type": "object" + }, + "AWS::AmazonMQ::Broker.EncryptionOptions": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "markdownDescription": "The customer master key \\(CMK\\) to use for the A AWS KMS \\(KMS\\)\\. This key is used to encrypt your data at rest\\. If not provided, Amazon MQ will use a default CMK to encrypt your data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", + "type": "string" + }, + "UseAwsOwnedKey": { + "markdownDescription": "Enables the use of an AWS owned CMK using AWS KMS \\(KMS\\)\\. Set to `true` by default, if no value is provided, for example, for RabbitMQ brokers\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseAwsOwnedKey", + "type": "boolean" + } + }, + "required": [ + "UseAwsOwnedKey" + ], + "type": "object" + }, + "AWS::AmazonMQ::Broker.LdapServerMetadata": { + "additionalProperties": false, + "properties": { + "Hosts": { + "items": { + "type": "string" + }, + "markdownDescription": "Specifies the location of the LDAP server such as AWS Directory Service for Microsoft Active Directory\\. Optional failover server\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Hosts", + "type": "array" + }, + "RoleBase": { + "markdownDescription": "The distinguished name of the node in the directory information tree \\(DIT\\) to search for roles or groups\\. For example, `ou=group`, `ou=corp`, `dc=corp`, `dc=example`, `dc=com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleBase", + "type": "string" + }, + "RoleName": { + "markdownDescription": "The group name attribute in a role entry whose value is the name of that role\\. For example, you can specify `cn` for a group entry's common name\\. If authentication succeeds, then the user is assigned the the value of the `cn` attribute for each role entry that they are a member of\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleName", + "type": "string" + }, + "RoleSearchMatching": { + "markdownDescription": "The LDAP search filter used to find roles within the roleBase\\. The distinguished name of the user matched by userSearchMatching is substituted into the `{0}` placeholder in the search filter\\. The client's username is substituted into the `{1}` placeholder\\. For example, if you set this option to `(member=uid={1})` for the user janedoe, the search filter becomes `(member=uid=janedoe)` after string substitution\\. It matches all role entries that have a member attribute equal to `uid=janedoe` under the subtree selected by the `RoleBases`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleSearchMatching", + "type": "string" + }, + "RoleSearchSubtree": { + "markdownDescription": "The directory search scope for the role\\. If set to true, scope is to search the entire subtree\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleSearchSubtree", + "type": "boolean" + }, + "ServiceAccountPassword": { + "markdownDescription": "Service account password\\. A service account is an account in your LDAP server that has access to initiate a connection\\. For example, `cn=admin`,`dc=corp`, `dc=example`, `dc=com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceAccountPassword", + "type": "string" + }, + "ServiceAccountUsername": { + "markdownDescription": "Service account username\\. A service account is an account in your LDAP server that has access to initiate a connection\\. For example, `cn=admin`, `ou=corp`, `dc=corp`, `dc=example`, `dc=com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceAccountUsername", + "type": "string" + }, + "UserBase": { + "markdownDescription": "Select a particular subtree of the directory information tree \\(DIT\\) to search for user entries\\. The subtree is specified by a DN, which specifies the base node of the subtree\\. For example, by setting this option to `ou=Users`,`ou=corp`, `dc=corp`, `dc=example`, `dc=com`, the search for user entries is restricted to the subtree beneath `ou=Users`,`ou=corp`, `dc=corp`, `dc=example`, `dc=com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserBase", + "type": "string" + }, + "UserRoleName": { + "markdownDescription": "The name of the LDAP attribute in the user's directory entry for the user's group membership\\. In some cases, user roles may be identified by the value of an attribute in the user's directory entry\\. The `UserRoleName` option allows you to provide the name of this attribute\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserRoleName", + "type": "string" + }, + "UserSearchMatching": { + "markdownDescription": "The LDAP search filter used to find users within the `userBase`\\. The client's username is substituted into the `{0}` placeholder in the search filter\\. For example, if this option is set to `(uid={0})` and the received username is `janedoe`, the search filter becomes `(uid=janedoe)` after string substitution\\. It will result in matching an entry like `uid=janedoe`, `ou=Users`, `ou=corp`, `dc=corp`, `dc=example`, `dc=com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserSearchMatching", + "type": "string" + }, + "UserSearchSubtree": { + "markdownDescription": "The directory search scope for the user\\. If set to true, scope is to search the entire subtree\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserSearchSubtree", + "type": "boolean" + } + }, + "required": [ + "Hosts", + "RoleBase", + "RoleSearchMatching", + "ServiceAccountPassword", + "ServiceAccountUsername", + "UserBase", + "UserSearchMatching" + ], + "type": "object" + }, + "AWS::AmazonMQ::Broker.LogList": { + "additionalProperties": false, + "properties": { + "Audit": { + "markdownDescription": "Enables audit logging\\. Every user management action made using JMX or the ActiveMQ Web Console is logged\\. Does not apply to RabbitMQ brokers\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Audit", + "type": "boolean" + }, + "General": { + "markdownDescription": "Enables general logging\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "General", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::AmazonMQ::Broker.MaintenanceWindow": { + "additionalProperties": false, + "properties": { + "DayOfWeek": { + "markdownDescription": "The day of the week\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DayOfWeek", + "type": "string" + }, + "TimeOfDay": { + "markdownDescription": "The time, in 24\\-hour format\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeOfDay", + "type": "string" + }, + "TimeZone": { + "markdownDescription": "The time zone, UTC by default, in either the Country/City format, or the UTC offset format\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeZone", + "type": "string" + } + }, + "required": [ + "DayOfWeek", + "TimeOfDay", + "TimeZone" + ], + "type": "object" + }, + "AWS::AmazonMQ::Broker.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The key in a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The value in a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::AmazonMQ::Broker.User": { + "additionalProperties": false, + "properties": { + "ConsoleAccess": { + "markdownDescription": "Enables access to the ActiveMQ web console for the ActiveMQ user\\. Does not apply to RabbitMQ brokers\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConsoleAccess", + "type": "boolean" + }, + "Groups": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of groups \\(20 maximum\\) to which the ActiveMQ user belongs\\. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes \\(\\- \\. \\_ \\~\\)\\. This value must be 2\\-100 characters long\\. Does not apply to RabbitMQ brokers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Groups", + "type": "array" + }, + "Password": { + "markdownDescription": "The password of the user\\. This value must be at least 12 characters long, must contain at least 4 unique characters, and must not contain commas, colons, or equal signs \\(,:=\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", + "type": "string" + }, + "Username": { + "markdownDescription": "The username of the broker user\\. For Amazon MQ for ActiveMQ brokers, this value can contain only alphanumeric characters, dashes, periods, underscores, and tildes \\(\\- \\. \\_ \\~\\)\\. For Amazon MQ for RabbitMQ brokers, this value can contain only alphanumeric characters, dashes, periods, underscores \\(\\- \\. \\_\\)\\. This value must not contain a tilde \\(\\~\\) character\\. Amazon MQ prohibts using guest as a valid usename\\. This value must be 2\\-100 characters long\\. \n Do not add personally identifiable information \\(PII\\) or other confidential or sensitive information in broker usernames\\. Broker usernames are accessible to other AWS services, including CloudWatch Logs\\. Broker usernames are not intended to be used for private or sensitive data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", + "type": "string" + } + }, + "required": [ + "Password", + "Username" + ], + "type": "object" + }, + "AWS::AmazonMQ::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": { + "AuthenticationStrategy": { + "markdownDescription": "Optional\\. The authentication strategy associated with the configuration\\. The default is `SIMPLE`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthenticationStrategy", + "type": "string" + }, + "Data": { + "markdownDescription": "The base64\\-encoded XML configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Data", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "EngineType": { + "markdownDescription": "The type of broker engine\\. Note: Currently, Amazon MQ only supports ACTIVEMQ for creating and editing broker configurations\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineType", + "type": "string" + }, + "EngineVersion": { + "markdownDescription": "The version of the broker engine\\. For a list of supported engine versions, see [https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/broker-engine.html](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/broker-engine.html) \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineVersion", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the configuration\\. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes \\(\\- \\. \\_ \\~\\)\\. This value must be 1\\-150 characters long\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AmazonMQ::Configuration.TagsEntry" + }, + "markdownDescription": "Create tags when creating the configuration\\. \n*Required*: No \n*Type*: List of [TagsEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-configuration-tagsentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "required": [ + "Data", + "EngineType", + "EngineVersion", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AmazonMQ::Configuration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AmazonMQ::Configuration.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The key in a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The value in a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::AmazonMQ::ConfigurationAssociation": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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": { + "markdownDescription": "The broker to associate with a configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Broker", + "type": "string" + }, + "Configuration": { + "$ref": "#/definitions/AWS::AmazonMQ::ConfigurationAssociation.ConfigurationId", + "markdownDescription": "The configuration to associate with a broker\\. \n*Required*: Yes \n*Type*: [ConfigurationId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-configurationassociation-configurationid.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configuration" + } + }, + "required": [ + "Broker", + "Configuration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AmazonMQ::ConfigurationAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AmazonMQ::ConfigurationAssociation.ConfigurationId": { + "additionalProperties": false, + "properties": { + "Id": { + "markdownDescription": "The unique ID that Amazon MQ generates for the configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "Revision": { + "markdownDescription": "The revision number of the configuration\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Revision", + "type": "number" + } + }, + "required": [ + "Id", + "Revision" + ], + "type": "object" + }, + "AWS::Amplify::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": { + "AccessToken": { + "markdownDescription": "Personal Access token for 3rd party source control system for an Amplify app, used to create webhook and read\\-only deploy key\\. Token is not stored\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessToken", + "type": "string" + }, + "AutoBranchCreationConfig": { + "$ref": "#/definitions/AWS::Amplify::App.AutoBranchCreationConfig", + "markdownDescription": "Sets the configuration for your automatic branch creation\\. \n*Required*: No \n*Type*: [AutoBranchCreationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoBranchCreationConfig" + }, + "BasicAuthConfig": { + "$ref": "#/definitions/AWS::Amplify::App.BasicAuthConfig", + "markdownDescription": "The credentials for basic authorization for an Amplify app\\. You must base64\\-encode the authorization credentials and provide them in the format `user:password`\\. \n*Required*: No \n*Type*: [BasicAuthConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-basicauthconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BasicAuthConfig" + }, + "BuildSpec": { + "markdownDescription": "The build specification \\(build spec\\) for an Amplify app\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 25000\\. \n*Pattern:* \\(?s\\)\\.\\+ \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BuildSpec", + "type": "string" + }, + "CustomHeaders": { + "markdownDescription": "The custom HTTP headers for an Amplify app\\. \n*Length Constraints:* Minimum length of 0\\. Maximum length of 25000\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomHeaders", + "type": "string" + }, + "CustomRules": { + "items": { + "$ref": "#/definitions/AWS::Amplify::App.CustomRule" + }, + "markdownDescription": "The custom rewrite and redirect rules for an Amplify app\\. \n*Required*: No \n*Type*: List of [CustomRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-customrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomRules", + "type": "array" + }, + "Description": { + "markdownDescription": "The description for an Amplify app\\. \n*Length Constraints:* Maximum length of 1000\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "EnableBranchAutoDeletion": { + "markdownDescription": "Automatically disconnect a branch in the Amplify Console when you delete a branch from your Git repository\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableBranchAutoDeletion", + "type": "boolean" + }, + "EnvironmentVariables": { + "items": { + "$ref": "#/definitions/AWS::Amplify::App.EnvironmentVariable" + }, + "markdownDescription": "The environment variables map for an Amplify app\\. \n*Required*: No \n*Type*: List of [EnvironmentVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-environmentvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnvironmentVariables", + "type": "array" + }, + "IAMServiceRole": { + "markdownDescription": "The AWS Identity and Access Management \\(IAM\\) service role for the Amazon Resource Name \\(ARN\\) of the Amplify app\\. \n*Length Constraints:* Minimum length of 0\\. Maximum length of 1000\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IAMServiceRole", + "type": "string" + }, + "Name": { + "markdownDescription": "The name for an Amplify app\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Pattern:* \\(?s\\)\\.\\+ \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "OauthToken": { + "markdownDescription": "The OAuth token for a third\\-party source control system for an Amplify app\\. The OAuth token is used to create a webhook and a read\\-only deploy key\\. The OAuth token is not stored\\. \n*Length Constraints:* Maximum length of 1000\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OauthToken", + "type": "string" + }, + "Platform": { + "type": "string" + }, + "Repository": { + "markdownDescription": "The repository for an Amplify app\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Repository", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tag for an Amplify app\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Amplify::App" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Amplify::App.AutoBranchCreationConfig": { + "additionalProperties": false, + "properties": { + "AutoBranchCreationPatterns": { + "items": { + "type": "string" + }, + "markdownDescription": "Automated branch creation glob patterns for the Amplify app\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoBranchCreationPatterns", + "type": "array" + }, + "BasicAuthConfig": { + "$ref": "#/definitions/AWS::Amplify::App.BasicAuthConfig", + "markdownDescription": "Sets password protection for your auto created branch\\. \n*Required*: No \n*Type*: [BasicAuthConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-basicauthconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BasicAuthConfig" + }, + "BuildSpec": { + "markdownDescription": "The build specification \\(build spec\\) for the autocreated branch\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 25000\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BuildSpec", + "type": "string" + }, + "EnableAutoBranchCreation": { + "markdownDescription": "Enables automated branch creation for the Amplify app\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableAutoBranchCreation", + "type": "boolean" + }, + "EnableAutoBuild": { + "markdownDescription": "Enables auto building for the auto created branch\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableAutoBuild", + "type": "boolean" + }, + "EnablePerformanceMode": { + "markdownDescription": "Enables performance mode for the branch\\. \nPerformance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval\\. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnablePerformanceMode", + "type": "boolean" + }, + "EnablePullRequestPreview": { + "markdownDescription": "Sets whether pull request previews are enabled for each branch that Amplify Console automatically creates for your app\\. Amplify Console creates previews by deploying your app to a unique URL whenever a pull request is opened for the branch\\. Development and QA teams can use this preview to test the pull request before it's merged into a production or integration branch\\. \nTo provide backend support for your preview, the Amplify Console automatically provisions a temporary backend environment that it deletes when the pull request is closed\\. If you want to specify a dedicated backend environment for your previews, use the `PullRequestEnvironmentName` property\\. \nFor more information, see [Web Previews](https://docs.aws.amazon.com/amplify/latest/userguide/pr-previews.html) in the *AWS Amplify Console User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnablePullRequestPreview", + "type": "boolean" + }, + "EnvironmentVariables": { + "items": { + "$ref": "#/definitions/AWS::Amplify::App.EnvironmentVariable" + }, + "markdownDescription": "Environment variables for the auto created branch\\. \n*Required*: No \n*Type*: List of [EnvironmentVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-environmentvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnvironmentVariables", + "type": "array" + }, + "Framework": { + "type": "string" + }, + "PullRequestEnvironmentName": { + "markdownDescription": "If pull request previews are enabled, you can use this property to specify a dedicated backend environment for your previews\\. For example, you could specify an environment named `prod`, `test`, or `dev` that you initialized with the Amplify CLI\\. \nTo enable pull request previews, set the `EnablePullRequestPreview` property to `true`\\. \nIf you don't specify an environment, the Amplify Console provides backend support for each preview by automatically provisioning a temporary backend environment\\. Amplify Console deletes this environment when the pull request is closed\\. \nFor more information about creating backend environments, see [Feature Branch Deployments and Team Workflows](https://docs.aws.amazon.com/amplify/latest/userguide/multi-environments.html) in the *AWS Amplify Console User Guide*\\. \n*Length Constraints:* Maximum length of 20\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PullRequestEnvironmentName", + "type": "string" + }, + "Stage": { + "markdownDescription": "Stage for the auto created branch\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Stage", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Amplify::App.BasicAuthConfig": { + "additionalProperties": false, + "properties": { + "EnableBasicAuth": { + "markdownDescription": "Enables basic authorization for the Amplify app's branches\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableBasicAuth", + "type": "boolean" + }, + "Password": { + "markdownDescription": "The password for basic authorization\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", + "type": "string" + }, + "Username": { + "markdownDescription": "The user name for basic authorization\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Amplify::App.CustomRule": { + "additionalProperties": false, + "properties": { + "Condition": { + "markdownDescription": "The condition for a URL rewrite or redirect rule, such as a country code\\. \n*Length Constraints:* Minimum length of 0\\. Maximum length of 2048\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Condition", + "type": "string" + }, + "Source": { + "markdownDescription": "The source pattern for a URL rewrite or redirect rule\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 2048\\. \n*Pattern:* \\(?s\\)\\.\\+ \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source", + "type": "string" + }, + "Status": { + "markdownDescription": "The status code for a URL rewrite or redirect rule\\. \n200 \nRepresents a 200 rewrite rule\\. \n301 \nRepresents a 301 \\(moved pemanently\\) redirect rule\\. This and all future requests should be directed to the target URL\\. \n302 \nRepresents a 302 temporary redirect rule\\. \n404 \nRepresents a 404 redirect rule\\. \n404\\-200 \nRepresents a 404 rewrite rule\\.\n*Length Constraints:* Minimum length of 3\\. Maximum length of 7\\. \n*Pattern:* \\.\\{3,7\\} \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + }, + "Target": { + "markdownDescription": "The target pattern for a URL rewrite or redirect rule\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 2048\\. \n*Pattern:* \\(?s\\)\\.\\+ \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target", + "type": "string" + } + }, + "required": [ + "Source", + "Target" + ], + "type": "object" + }, + "AWS::Amplify::App.EnvironmentVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The environment variable name\\. \n*Length Constraints:* Maximum length of 255\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "The environment variable value\\. \n*Length Constraints:* Maximum length of 5500\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::Amplify::Branch": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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": { + "markdownDescription": "The unique ID for an Amplify app\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 20\\. \n*Pattern:* d\\[a\\-z0\\-9\\]\\+ \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AppId", + "type": "string" + }, + "BasicAuthConfig": { + "$ref": "#/definitions/AWS::Amplify::Branch.BasicAuthConfig", + "markdownDescription": "The basic authorization credentials for a branch of an Amplify app\\. You must base64\\-encode the authorization credentials and provide them in the format `user:password`\\. \n*Required*: No \n*Type*: [BasicAuthConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-branch-basicauthconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BasicAuthConfig" + }, + "BranchName": { + "markdownDescription": "The name for the branch\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Pattern:* \\(?s\\)\\.\\+ \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BranchName", + "type": "string" + }, + "BuildSpec": { + "markdownDescription": "The build specification \\(build spec\\) for the branch\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 25000\\. \n*Pattern:* \\(?s\\)\\.\\+ \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BuildSpec", + "type": "string" + }, + "Description": { + "markdownDescription": "The description for the branch that is part of an Amplify app\\. \n*Length Constraints:* Maximum length of 1000\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "EnableAutoBuild": { + "markdownDescription": "Enables auto building for the branch\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableAutoBuild", + "type": "boolean" + }, + "EnablePerformanceMode": { + "markdownDescription": "Enables performance mode for the branch\\. \nPerformance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval\\. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnablePerformanceMode", + "type": "boolean" + }, + "EnablePullRequestPreview": { + "markdownDescription": "Sets whether the Amplify Console creates a preview for each pull request that is made for this branch\\. If this property is enabled, the Amplify Console deploys your app to a unique preview URL after each pull request is opened\\. Development and QA teams can use this preview to test the pull request before it's merged into a production or integration branch\\. \nTo provide backend support for your preview, the Amplify Console automatically provisions a temporary backend environment that it deletes when the pull request is closed\\. If you want to specify a dedicated backend environment for your previews, use the `PullRequestEnvironmentName` property\\. \nFor more information, see [Web Previews](https://docs.aws.amazon.com/amplify/latest/userguide/pr-previews.html) in the *AWS Amplify Console User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnablePullRequestPreview", + "type": "boolean" + }, + "EnvironmentVariables": { + "items": { + "$ref": "#/definitions/AWS::Amplify::Branch.EnvironmentVariable" + }, + "markdownDescription": "The environment variables for the branch\\. \n*Required*: No \n*Type*: List of [EnvironmentVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-branch-environmentvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnvironmentVariables", + "type": "array" + }, + "Framework": { + "type": "string" + }, + "PullRequestEnvironmentName": { + "markdownDescription": "If pull request previews are enabled for this branch, you can use this property to specify a dedicated backend environment for your previews\\. For example, you could specify an environment named `prod`, `test`, or `dev` that you initialized with the Amplify CLI and mapped to this branch\\. \nTo enable pull request previews, set the `EnablePullRequestPreview` property to `true`\\. \nIf you don't specify an environment, the Amplify Console provides backend support for each preview by automatically provisioning a temporary backend environment\\. Amplify Console deletes this environment when the pull request is closed\\. \nFor more information about creating backend environments, see [Feature Branch Deployments and Team Workflows](https://docs.aws.amazon.com/amplify/latest/userguide/multi-environments.html) in the *AWS Amplify Console User Guide*\\. \n*Length Constraints:* Maximum length of 20\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PullRequestEnvironmentName", + "type": "string" + }, + "Stage": { + "markdownDescription": "Describes the current stage for the branch\\. \n*Valid Values:* PRODUCTION \\| BETA \\| DEVELOPMENT \\| EXPERIMENTAL \\| PULL\\_REQUEST \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Stage", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tag for the branch\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "required": [ + "AppId", + "BranchName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Amplify::Branch" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Amplify::Branch.BasicAuthConfig": { + "additionalProperties": false, + "properties": { + "EnableBasicAuth": { + "markdownDescription": "Enables basic authorization for the branch\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableBasicAuth", + "type": "boolean" + }, + "Password": { + "markdownDescription": "The password for basic authorization\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", + "type": "string" + }, + "Username": { + "markdownDescription": "The user name for basic authorization\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", + "type": "string" + } + }, + "required": [ + "Password", + "Username" + ], + "type": "object" + }, + "AWS::Amplify::Branch.EnvironmentVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The environment variable name\\. \n*Length Constraints:* Maximum length of 255\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "The environment variable value\\. \n*Length Constraints:* Maximum length of 5500\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::Amplify::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": { + "AppId": { + "markdownDescription": "The unique ID for an Amplify app\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 20\\. \n*Pattern:* d\\[a\\-z0\\-9\\]\\+ \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AppId", + "type": "string" + }, + "AutoSubDomainCreationPatterns": { + "items": { + "type": "string" + }, + "markdownDescription": "Sets the branch patterns for automatic subdomain creation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoSubDomainCreationPatterns", + "type": "array" + }, + "AutoSubDomainIAMRole": { + "markdownDescription": "The required AWS Identity and Access Management \\(IAM\\) service role for the Amazon Resource Name \\(ARN\\) for automatically creating subdomains\\. \n*Length Constraints:* Maximum length of 1000\\. \n*Pattern:* ^$\\|^arn:aws:iam::\\\\d\\{12\\}:role\\.\\+ \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoSubDomainIAMRole", + "type": "string" + }, + "DomainName": { + "markdownDescription": "The domain name for the domain association\\. \n*Length Constraints:* Maximum length of 255\\. \n*Pattern:* ^\\(\\(\\(?\\!\\-\\)\\[A\\-Za\\-z0\\-9\\-\\]\\{0,62\\}\\[A\\-Za\\-z0\\-9\\]\\)\\\\\\.\\)\\+\\(\\(?\\!\\-\\)\\[A\\-Za\\-z0\\-9\\-\\]\\{1,62\\}\\[A\\-Za\\-z0\\-9\\]\\)\\(\\\\\\.\\)?$ \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", + "type": "string" + }, + "EnableAutoSubDomain": { + "markdownDescription": "Enables the automated creation of subdomains for branches\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableAutoSubDomain", + "type": "boolean" + }, + "SubDomainSettings": { + "items": { + "$ref": "#/definitions/AWS::Amplify::Domain.SubDomainSetting" + }, + "markdownDescription": "The setting for the subdomain\\. \n*Required*: Yes \n*Type*: List of [SubDomainSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-domain-subdomainsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubDomainSettings", + "type": "array" + } + }, + "required": [ + "AppId", + "DomainName", + "SubDomainSettings" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Amplify::Domain" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Amplify::Domain.SubDomainSetting": { + "additionalProperties": false, + "properties": { + "BranchName": { + "markdownDescription": "The branch name setting for the subdomain\\. \n*Length Constraints:* Minimum length of 1\\. Maximum length of 255\\. \n*Pattern:* \\(?s\\)\\.\\+ \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BranchName", + "type": "string" + }, + "Prefix": { + "markdownDescription": "The prefix setting for the subdomain\\. \n*Length Constraints:* Maximum length of 255\\. \n*Pattern:* \\(?s\\)\\.\\* \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", + "type": "string" + } + }, + "required": [ + "BranchName", + "Prefix" + ], + "type": "object" + }, + "AWS::AmplifyUIBuilder::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": { + "AppId": { + "type": "string" + }, + "BindingProperties": { + "additionalProperties": false, + "markdownDescription": "The information to connect a component's properties to data at runtime\\. You can't specify `tags` as a valid property for `bindingProperties`\\. \n \n*Required*: Yes \n*Type*: Map of [ComponentBindingPropertiesValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentbindingpropertiesvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentBindingPropertiesValue" + } + }, + "title": "BindingProperties", + "type": "object" + }, + "Children": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentChild" + }, + "markdownDescription": "A list of the component's `ComponentChild` instances\\. \n*Required*: No \n*Type*: List of [ComponentChild](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentchild.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Children", + "type": "array" + }, + "CollectionProperties": { + "additionalProperties": false, + "markdownDescription": "The data binding configuration for the component's properties\\. Use this for a collection component\\. You can't specify `tags` as a valid property for `collectionProperties`\\. \n*Required*: No \n*Type*: Map of [ComponentDataConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentdataconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentDataConfiguration" + } + }, + "title": "CollectionProperties", + "type": "object" + }, + "ComponentType": { + "markdownDescription": "The type of the component\\. This can be an Amplify custom UI component or another custom component\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentType", + "type": "string" + }, + "EnvironmentName": { + "type": "string" + }, + "Events": { + "additionalProperties": false, + "markdownDescription": "Describes the events that can be raised on the component\\. Use for the workflow feature in Amplify Studio that allows you to bind events and actions to components\\. \n*Required*: No \n*Type*: Map of [ComponentEvent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentevent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentEvent" + } + }, + "title": "Events", + "type": "object" + }, + "Name": { + "markdownDescription": "The name of the component\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Overrides": { + "markdownDescription": "Describes the component's properties that can be overriden in a customized instance of the component\\. You can't specify `tags` as a valid property for `overrides`\\. \n*Required*: Yes \n*Type*: Map of [ComponentOverridesValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentoverridesvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Overrides", + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "markdownDescription": "Describes the component's properties\\. You can't specify `tags` as a valid property for `properties`\\. \n*Required*: Yes \n*Type*: Map of [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + } + }, + "title": "Properties", + "type": "object" + }, + "SchemaVersion": { + "markdownDescription": "The schema version of the component when it was imported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaVersion", + "type": "string" + }, + "SourceId": { + "markdownDescription": "The unique ID of the component in its original source system, such as Figma\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceId", + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "One or more key\\-value pairs to use when tagging the component\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "type": "object" + }, + "Variants": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentVariant" + }, + "markdownDescription": "A list of the component's variants\\. A variant is a unique style configuration of a main component\\. \n*Required*: Yes \n*Type*: List of [ComponentVariant](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentvariant.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Variants", + "type": "array" + } + }, + "required": [ + "BindingProperties", + "ComponentType", + "Name", + "Overrides", + "Properties", + "Variants" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AmplifyUIBuilder::Component" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AmplifyUIBuilder::Component.ActionParameters": { + "additionalProperties": false, + "properties": { + "Anchor": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty", + "markdownDescription": "The HTML anchor link to the location to open\\. Specify this value for a navigation action\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Anchor" + }, + "Fields": { + "additionalProperties": false, + "markdownDescription": "A dictionary of key\\-value pairs mapping Amplify Studio properties to fields in a data model\\. Use when the action performs an operation on an Amplify DataStore model\\. \n*Required*: No \n*Type*: [ComponentProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + } + }, + "title": "Fields", + "type": "object" + }, + "Global": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty", + "markdownDescription": "Specifies whether the user should be signed out globally\\. Specify this value for an auth sign out action\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Global" + }, + "Id": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty", + "markdownDescription": "The unique ID of the component that the `ActionParameters` apply to\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id" + }, + "Model": { + "markdownDescription": "The name of the data model\\. Use when the action performs an operation on an Amplify DataStore model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Model", + "type": "string" + }, + "State": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.MutationActionSetStateParameter", + "markdownDescription": "A key\\-value pair that specifies the state property name and its initial value\\. \n*Required*: No \n*Type*: [MutationActionSetStateParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-mutationactionsetstateparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State" + }, + "Target": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty", + "markdownDescription": "The element within the same component to modify when the action occurs\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target" + }, + "Type": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty", + "markdownDescription": "The type of navigation action\\. Valid values are `url` and `anchor`\\. This value is required for a navigation action\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type" + }, + "Url": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty", + "markdownDescription": "The URL to the location to open\\. Specify this value for a navigation action\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Component.ComponentBindingPropertiesValue": { + "additionalProperties": false, + "properties": { + "BindingProperties": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentBindingPropertiesValueProperties", + "markdownDescription": "Describes the properties to customize with data at runtime\\. \n*Required*: No \n*Type*: [ComponentBindingPropertiesValueProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentbindingpropertiesvalueproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BindingProperties" + }, + "DefaultValue": { + "markdownDescription": "The default value of the property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultValue", + "type": "string" + }, + "Type": { + "markdownDescription": "The property type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Component.ComponentBindingPropertiesValueProperties": { + "additionalProperties": false, + "properties": { + "Bucket": { + "markdownDescription": "An Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", + "type": "string" + }, + "DefaultValue": { + "markdownDescription": "The default value to assign to the property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultValue", + "type": "string" + }, + "Field": { + "markdownDescription": "The field to bind the data to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Field", + "type": "string" + }, + "Key": { + "markdownDescription": "The storage key for an Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Model": { + "markdownDescription": "An Amplify DataStore model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Model", + "type": "string" + }, + "Predicates": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.Predicate" + }, + "markdownDescription": "A list of predicates for binding a component's properties to data\\. \n*Required*: No \n*Type*: List of [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-predicate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Predicates", + "type": "array" + }, + "UserAttribute": { + "markdownDescription": "An authenticated user attribute\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserAttribute", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Component.ComponentChild": { + "additionalProperties": false, + "properties": { + "Children": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentChild" + }, + "markdownDescription": "The list of `ComponentChild` instances for this component\\. \n*Required*: No \n*Type*: List of [ComponentChild](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-amplifyuibuilder-component-componentchild.html#aws-properties-amplifyuibuilder-component-componentchild) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Children", + "type": "array" + }, + "ComponentType": { + "markdownDescription": "The type of the child component\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentType", + "type": "string" + }, + "Events": { + "additionalProperties": false, + "markdownDescription": "Describes the events that can be raised on the child component\\. Use for the workflow feature in Amplify Studio that allows you to bind events and actions to components\\. \n*Required*: No \n*Type*: [ComponentEvents](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentevents.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentEvent" + } + }, + "title": "Events", + "type": "object" + }, + "Name": { + "markdownDescription": "The name of the child component\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Properties": { + "additionalProperties": false, + "markdownDescription": "Describes the properties of the child component\\. You can't specify `tags` as a valid property for `properties`\\. \n*Required*: Yes \n*Type*: [ComponentProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + } + }, + "title": "Properties", + "type": "object" + } + }, + "required": [ + "ComponentType", + "Name", + "Properties" + ], + "type": "object" + }, + "AWS::AmplifyUIBuilder::Component.ComponentConditionProperty": { + "additionalProperties": false, + "properties": { + "Else": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty", + "markdownDescription": "The value to assign to the property if the condition is not met\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Else" + }, + "Field": { + "markdownDescription": "The name of a field\\. Specify this when the property is a data model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Field", + "type": "string" + }, + "Operand": { + "markdownDescription": "The value of the property to evaluate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Operand", + "type": "string" + }, + "OperandType": { + "markdownDescription": "The type of the property to evaluate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OperandType", + "type": "string" + }, + "Operator": { + "markdownDescription": "The operator to use to perform the evaluation, such as `eq` to represent equals\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Operator", + "type": "string" + }, + "Property": { + "markdownDescription": "The name of the conditional property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Property", + "type": "string" + }, + "Then": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty", + "markdownDescription": "The value to assign to the property if the condition is met\\. \n*Required*: No \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Then" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Component.ComponentDataConfiguration": { + "additionalProperties": false, + "properties": { + "Identifiers": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of IDs to use to bind data to a component\\. Use this property to bind specifically chosen data, rather than data retrieved from a query\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Identifiers", + "type": "array" + }, + "Model": { + "markdownDescription": "The name of the data model to use to bind data to a component\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Model", + "type": "string" + }, + "Predicate": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.Predicate", + "markdownDescription": "Represents the conditional logic to use when binding data to a component\\. Use this property to retrieve only a subset of the data in a collection\\. \n*Required*: No \n*Type*: [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-predicate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Predicate" + }, + "Sort": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.SortProperty" + }, + "markdownDescription": "Describes how to sort the component's properties\\. \n*Required*: No \n*Type*: List of [SortProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-sortproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sort", + "type": "array" + } + }, + "required": [ + "Model" + ], + "type": "object" + }, + "AWS::AmplifyUIBuilder::Component.ComponentEvent": { + "additionalProperties": false, + "properties": { + "Action": { + "markdownDescription": "The action to perform when a specific event is raised\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", + "type": "string" + }, + "Parameters": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ActionParameters", + "markdownDescription": "Describes information about the action\\. \n*Required*: No \n*Type*: [ActionParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-actionparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Component.ComponentProperty": { + "additionalProperties": false, + "properties": { + "BindingProperties": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentPropertyBindingProperties", + "markdownDescription": "The information to bind the component property to data at runtime\\. \n*Required*: No \n*Type*: [ComponentPropertyBindingProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentpropertybindingproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BindingProperties" + }, + "Bindings": { + "additionalProperties": false, + "markdownDescription": "The information to bind the component property to form data\\. \n*Required*: No \n*Type*: [FormBindings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-formbindings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.FormBindingElement" + } + }, + "title": "Bindings", + "type": "object" + }, + "CollectionBindingProperties": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentPropertyBindingProperties", + "markdownDescription": "The information to bind the component property to data at runtime\\. Use this for collection components\\. \n*Required*: No \n*Type*: [ComponentPropertyBindingProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentpropertybindingproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CollectionBindingProperties" + }, + "ComponentName": { + "markdownDescription": "The name of the component that is affected by an event\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentName", + "type": "string" + }, + "Concat": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + }, + "markdownDescription": "A list of component properties to concatenate to create the value to assign to this component property\\. \n*Required*: No \n*Type*: List of [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-amplifyuibuilder-component-componentproperty.html#aws-properties-amplifyuibuilder-component-componentproperty) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Concat", + "type": "array" + }, + "Condition": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentConditionProperty", + "markdownDescription": "The conditional expression to use to assign a value to the component property\\. \n*Required*: No \n*Type*: [ComponentConditionProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentconditionproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Condition" + }, + "Configured": { + "markdownDescription": "Specifies whether the user configured the property in Amplify Studio after importing it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configured", + "type": "boolean" + }, + "DefaultValue": { + "markdownDescription": "The default value to assign to the component property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultValue", + "type": "string" + }, + "Event": { + "markdownDescription": "An event that occurs in your app\\. Use this for workflow data binding\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Event", + "type": "string" + }, + "ImportedValue": { + "markdownDescription": "The default value assigned to the property when the component is imported into an app\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImportedValue", + "type": "string" + }, + "Model": { + "markdownDescription": "The data model to use to assign a value to the component property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Model", + "type": "string" + }, + "Property": { + "markdownDescription": "The name of the component's property that is affected by an event\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Property", + "type": "string" + }, + "Type": { + "markdownDescription": "The component type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "UserAttribute": { + "markdownDescription": "An authenticated user attribute to use to assign a value to the component property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserAttribute", + "type": "string" + }, + "Value": { + "markdownDescription": "The value to assign to the component property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Component.ComponentPropertyBindingProperties": { + "additionalProperties": false, + "properties": { + "Field": { + "markdownDescription": "The data field to bind the property to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Field", + "type": "string" + }, + "Property": { + "markdownDescription": "The component property to bind to the data field\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Property", + "type": "string" + } + }, + "required": [ + "Property" + ], + "type": "object" + }, + "AWS::AmplifyUIBuilder::Component.ComponentVariant": { + "additionalProperties": false, + "properties": { + "Overrides": { + "markdownDescription": "The properties of the component variant that can be overriden when customizing an instance of the component\\. You can't specify `tags` as a valid property for `overrides`\\. \n*Required*: No \n*Type*: [ComponentOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentoverrides.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Overrides", + "type": "object" + }, + "VariantValues": { + "additionalProperties": true, + "markdownDescription": "The combination of variants that comprise this variant\\. \n*Required*: No \n*Type*: [ComponentVariantValues](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentvariantvalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "VariantValues", + "type": "object" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Component.FormBindingElement": { + "additionalProperties": false, + "properties": { + "Element": { + "type": "string" + }, + "Property": { + "type": "string" + } + }, + "required": [ + "Element", + "Property" + ], + "type": "object" + }, + "AWS::AmplifyUIBuilder::Component.MutationActionSetStateParameter": { + "additionalProperties": false, + "properties": { + "ComponentName": { + "markdownDescription": "The name of the component that is being modified\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentName", + "type": "string" + }, + "Property": { + "markdownDescription": "The name of the component property to apply the state configuration to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Property", + "type": "string" + }, + "Set": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty", + "markdownDescription": "The state configuration to assign to the property\\. \n*Required*: Yes \n*Type*: [ComponentProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Set" + } + }, + "required": [ + "ComponentName", + "Property", + "Set" + ], + "type": "object" + }, + "AWS::AmplifyUIBuilder::Component.Predicate": { + "additionalProperties": false, + "properties": { + "And": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.Predicate" + }, + "markdownDescription": "A list of predicates to combine logically\\. \n*Required*: No \n*Type*: List of [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-amplifyuibuilder-component-predicate.html#aws-properties-amplifyuibuilder-component-predicate) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "And", + "type": "array" + }, + "Field": { + "markdownDescription": "The field to query\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Field", + "type": "string" + }, + "Operand": { + "markdownDescription": "The value to use when performing the evaluation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Operand", + "type": "string" + }, + "Operator": { + "markdownDescription": "The operator to use to perform the evaluation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Operator", + "type": "string" + }, + "Or": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.Predicate" + }, + "markdownDescription": "A list of predicates to combine logically\\. \n*Required*: No \n*Type*: List of [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-amplifyuibuilder-component-predicate.html#aws-properties-amplifyuibuilder-component-predicate) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Or", + "type": "array" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Component.SortProperty": { + "additionalProperties": false, + "properties": { + "Direction": { + "markdownDescription": "The direction of the sort, either ascending or descending\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Direction", + "type": "string" + }, + "Field": { + "markdownDescription": "The field to perform the sort on\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Field", + "type": "string" + } + }, + "required": [ + "Direction", + "Field" + ], + "type": "object" + }, + "AWS::AmplifyUIBuilder::Form": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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" + }, + "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" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AmplifyUIBuilder::Form" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AmplifyUIBuilder::Form.FieldConfig": { + "additionalProperties": false, + "properties": { + "Excluded": { + "type": "boolean" + }, + "InputType": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FieldInputConfig" + }, + "Label": { + "type": "string" + }, + "Position": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FieldPosition" + }, + "Validations": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FieldValidationConfiguration" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Form.FieldInputConfig": { + "additionalProperties": false, + "properties": { + "DefaultChecked": { + "type": "boolean" + }, + "DefaultCountryCode": { + "type": "string" + }, + "DefaultValue": { + "type": "string" + }, + "DescriptiveText": { + "type": "string" + }, + "IsArray": { + "type": "boolean" + }, + "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": [ + "Type" + ], + "type": "object" + }, + "AWS::AmplifyUIBuilder::Form.FieldPosition": { + "additionalProperties": false, + "properties": { + "Below": { + "type": "string" + }, + "Fixed": { + "type": "string" + }, + "RightOf": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Form.FieldValidationConfiguration": { + "additionalProperties": false, + "properties": { + "NumValues": { + "items": { + "type": "number" + }, + "type": "array" + }, + "StrValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Type": { + "type": "string" + }, + "ValidationMessage": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::AmplifyUIBuilder::Form.FormButton": { + "additionalProperties": false, + "properties": { + "Children": { + "type": "string" + }, + "Excluded": { + "type": "boolean" + }, + "Position": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FieldPosition" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Form.FormCTA": { + "additionalProperties": false, + "properties": { + "Cancel": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormButton" + }, + "Clear": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormButton" + }, + "Position": { + "type": "string" + }, + "Submit": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormButton" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Form.FormDataTypeConfig": { + "additionalProperties": false, + "properties": { + "DataSourceType": { + "type": "string" + }, + "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" + }, + "OuterPadding": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormStyleConfig" + }, + "VerticalGap": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormStyleConfig" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Form.FormStyleConfig": { + "additionalProperties": false, + "properties": { + "TokenReference": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Form.SectionalElement": { + "additionalProperties": false, + "properties": { + "Excluded": { + "type": "boolean" + }, + "Level": { + "type": "number" + }, + "Orientation": { + "type": "string" + }, + "Position": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FieldPosition" + }, + "Text": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::AmplifyUIBuilder::Form.ValueMapping": { + "additionalProperties": false, + "properties": { + "DisplayValue": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormInputValueProperty" + }, + "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" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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" + }, + "EnvironmentName": { + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the theme\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Overrides": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Theme.ThemeValues" + }, + "markdownDescription": "Describes the properties that can be overriden to customize a theme\\. \n*Required*: No \n*Type*: List of [ThemeValues](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-theme-themevalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Overrides", + "type": "array" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "One or more key\\-value pairs to use when tagging the theme\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "type": "object" + }, + "Values": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Theme.ThemeValues" + }, + "markdownDescription": "A list of key\\-value pairs that defines the properties of the theme\\. \n*Required*: Yes \n*Type*: List of [ThemeValues](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-theme-themevalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AmplifyUIBuilder::Theme" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AmplifyUIBuilder::Theme.ThemeValue": { + "additionalProperties": false, + "properties": { + "Children": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Theme.ThemeValues" + }, + "markdownDescription": "A list of key\\-value pairs that define the theme's properties\\. \n*Required*: No \n*Type*: List of [ThemeValues](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-theme-themevalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Children", + "type": "array" + }, + "Value": { + "markdownDescription": "The value of a theme property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Theme.ThemeValues": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The name of the property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Theme.ThemeValue", + "markdownDescription": "The value of the property\\. \n*Required*: No \n*Type*: [ThemeValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-theme-themevalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value" + } + }, + "type": "object" + }, + "AWS::ApiGateway::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": { + "CloudWatchRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an IAM role that has write access to CloudWatch Logs in your account\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchRoleArn", + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::Account" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ApiGateway::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": { + "CustomerId": { + "markdownDescription": "An AWS Marketplace customer identifier to use when integrating with the AWS SaaS Marketplace\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomerId", + "type": "string" + }, + "Description": { + "markdownDescription": "A description of the purpose of the API key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Indicates whether the API key can be used by clients\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "GenerateDistinctId": { + "markdownDescription": "Specifies whether the key identifier is distinct from the created API key value\\. This parameter is deprecated and should not be used\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GenerateDistinctId", + "type": "boolean" + }, + "Name": { + "markdownDescription": "A name for the API key\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the API key name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "StageKeys": { + "items": { + "$ref": "#/definitions/AWS::ApiGateway::ApiKey.StageKey" + }, + "markdownDescription": "A list of stages to associate with this API key\\. \n*Required*: No \n*Type*: List of [StageKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-apikey-stagekey.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StageKeys", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the API key\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Value": { + "markdownDescription": "The value of the API key\\. Must be at least 20 characters long\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::ApiKey" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ApiGateway::ApiKey.StageKey": { + "additionalProperties": false, + "properties": { + "RestApiId": { + "markdownDescription": "The ID of a `RestApi` resource that includes the stage with which you want to associate the API key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestApiId", + "type": "string" + }, + "StageName": { + "markdownDescription": "The name of the stage with which to associate the API key\\. The stage must be included in the `RestApi` resource that you specified in the `RestApiId` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StageName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGateway::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": { + "AuthType": { + "markdownDescription": "An optional customer\\-defined field that's used in OpenApi imports and exports without functional impact\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthType", + "type": "string" + }, + "AuthorizerCredentials": { + "markdownDescription": "The credentials that are required for the authorizer\\. To specify an IAM role that API Gateway assumes, specify the role's Amazon Resource Name \\(ARN\\)\\. To use resource\\-based permissions on the Lambda function, specify null\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerCredentials", + "type": "string" + }, + "AuthorizerResultTtlInSeconds": { + "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*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerResultTtlInSeconds", + "type": "number" + }, + "AuthorizerUri": { + "markdownDescription": "The authorizer's Uniform Resource Identifier \\(URI\\)\\. If you specify `TOKEN` for the authorizer's `Type` property, specify a Lambda function URI that has the form `arn:aws:apigateway:region:lambda:path/path`\\. The path usually has the form /2015\\-03\\-31/functions/*LambdaFunctionARN*/invocations\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerUri", + "type": "string" + }, + "IdentitySource": { + "markdownDescription": "The source of the identity in an incoming request\\. \nIf you specify `TOKEN` or `COGNITO_USER_POOLS` for the `Type` property, this property is required\\. Specify a header mapping expression using the form `method.request.header.name`, where *name* is the name of a custom authorization header that clients submit as part of their requests\\. \nIf you specify `REQUEST` for the `Type` property, this property is required when authorization caching is enabled\\. Specify a comma\\-separated string of one or more mapping expressions of the specified request parameter using the form `method.request.parameter.name`\\. For supported parameter types, see [Configure Lambda Authorizer Using the API Gateway Console](https://docs.aws.amazon.com/apigateway/latest/developerguide/configure-api-gateway-lambda-authorization-with-console.html) in the *API Gateway Developer Guide*\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentitySource", + "type": "string" + }, + "IdentityValidationExpression": { + "markdownDescription": "A validation expression for the incoming identity\\. If you specify `TOKEN` for the authorizer's `Type` property, specify a regular expression\\. API Gateway uses the expression to attempt to match the incoming client token, and proceeds if the token matches\\. If the token doesn't match, API Gateway responds with a 401 \\(unauthorized request\\) error code\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentityValidationExpression", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the authorizer\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "ProviderARNs": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of the Amazon Cognito user pool Amazon Resource Names \\(ARNs\\) to associate with this authorizer\\. Required if you specify `COGNITO_USER_POOLS` as the authorizer `Type`\\. For more information, see [Use Amazon Cognito User Pools](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html#apigateway-enable-cognito-user-pool) in the *API Gateway Developer Guide*\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProviderARNs", + "type": "array" + }, + "RestApiId": { + "markdownDescription": "The ID of the `RestApi` resource that API Gateway creates the authorizer in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestApiId", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of authorizer\\. Valid values include: \n+ `TOKEN`: A custom authorizer that uses a Lambda function\\.\n+ `COGNITO_USER_POOLS`: An authorizer that uses Amazon Cognito user pools\\.\n+ `REQUEST`: An authorizer that uses a Lambda function using incoming request parameters\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Name", + "RestApiId", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::Authorizer" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGateway::BasePathMapping": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "BasePath": { + "markdownDescription": "The base path name that callers of the API must provide in the URL after the domain name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BasePath", + "type": "string" + }, + "DomainName": { + "markdownDescription": "The `DomainName` of an [AWS::ApiGateway::DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html) resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", + "type": "string" + }, + "Id": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "RestApiId": { + "markdownDescription": "The ID of the API\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestApiId", + "type": "string" + }, + "Stage": { + "markdownDescription": "The name of the API's stage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Stage", + "type": "string" + } + }, + "required": [ + "DomainName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::BasePathMapping" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGateway::ClientCertificate": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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": { + "markdownDescription": "A description of the client certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the client certificate\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::ClientCertificate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ApiGateway::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": { + "DeploymentCanarySettings": { + "$ref": "#/definitions/AWS::ApiGateway::Deployment.DeploymentCanarySettings", + "markdownDescription": "Specifies settings for the canary deployment\\. \n*Required*: No \n*Type*: [DeploymentCanarySettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-deploymentcanarysettings.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeploymentCanarySettings" + }, + "Description": { + "markdownDescription": "A description of the purpose of the API Gateway deployment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "RestApiId": { + "markdownDescription": "The ID of the `RestApi` resource to deploy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestApiId", + "type": "string" + }, + "StageDescription": { + "$ref": "#/definitions/AWS::ApiGateway::Deployment.StageDescription", + "markdownDescription": "Configures the stage that API Gateway creates with this deployment\\. \n*Required*: No \n*Type*: [StageDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StageDescription" + }, + "StageName": { + "markdownDescription": "A name for the stage that API Gateway creates with this deployment\\. Use only alphanumeric characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StageName", + "type": "string" + } + }, + "required": [ + "RestApiId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::Deployment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGateway::Deployment.AccessLogSetting": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs\\. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with `amazon-apigateway-`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationArn", + "type": "string" + }, + "Format": { + "markdownDescription": "A single line format of the access logs of data, as specified by selected [$context variables](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference)\\. The format must include at least `$context.requestId`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGateway::Deployment.CanarySetting": { + "additionalProperties": false, + "properties": { + "PercentTraffic": { + "markdownDescription": "The percent \\(0\\-100\\) of traffic diverted to a canary deployment\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PercentTraffic", + "type": "number" + }, + "StageVariableOverrides": { + "additionalProperties": true, + "markdownDescription": "Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary\\. These stage variables are represented as a string\\-to\\-string map between stage variable names and their values\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "StageVariableOverrides", + "type": "object" + }, + "UseStageCache": { + "markdownDescription": "Whether the canary deployment uses the stage cache or not\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseStageCache", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::ApiGateway::Deployment.DeploymentCanarySettings": { + "additionalProperties": false, + "properties": { + "PercentTraffic": { + "markdownDescription": "The percentage \\(0\\-100\\) of traffic diverted to a canary deployment\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PercentTraffic", + "type": "number" + }, + "StageVariableOverrides": { + "additionalProperties": true, + "markdownDescription": "Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary\\. These stage variables are represented as a string\\-to\\-string map between stage variable names and their values\\. \nDuplicates are not allowed\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "StageVariableOverrides", + "type": "object" + }, + "UseStageCache": { + "markdownDescription": "Whether the canary deployment uses the stage cache\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UseStageCache", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::ApiGateway::Deployment.MethodSetting": { + "additionalProperties": false, + "properties": { + "CacheDataEncrypted": { + "markdownDescription": "Indicates whether the cached responses are encrypted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheDataEncrypted", + "type": "boolean" + }, + "CacheTtlInSeconds": { + "markdownDescription": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches responses\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheTtlInSeconds", + "type": "number" + }, + "CachingEnabled": { + "markdownDescription": "Indicates whether responses are cached and returned for requests\\. You must enable a cache cluster on the stage to cache responses\\. For more information, see [Enable API Gateway Caching in a Stage to Enhance API Performance](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CachingEnabled", + "type": "boolean" + }, + "DataTraceEnabled": { + "markdownDescription": "Indicates whether data trace logging is enabled for methods in the stage\\. API Gateway pushes these logs to Amazon CloudWatch Logs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataTraceEnabled", + "type": "boolean" + }, + "HttpMethod": { + "markdownDescription": "The HTTP method\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpMethod", + "type": "string" + }, + "LoggingLevel": { + "markdownDescription": "The logging level for this method\\. For valid values, see the `loggingLevel` property of the [Stage](https://docs.aws.amazon.com/apigateway/api-reference/resource/stage/#loggingLevel) resource in the *Amazon API Gateway API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingLevel", + "type": "string" + }, + "MetricsEnabled": { + "markdownDescription": "Indicates whether Amazon CloudWatch metrics are enabled for methods in the stage\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricsEnabled", + "type": "boolean" + }, + "ResourcePath": { + "markdownDescription": "The resource path for this method\\. Forward slashes \\(`/`\\) are encoded as `~1` and the initial slash must include a forward slash\\. For example, the path value `/resource/subresource` must be encoded as `/~1resource~1subresource`\\. To specify the root path, use only a slash \\(`/`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourcePath", + "type": "string" + }, + "ThrottlingBurstLimit": { + "markdownDescription": "The number of burst requests per second that API Gateway permits across all APIs, stages, and methods in your AWS account\\. For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThrottlingBurstLimit", + "type": "number" + }, + "ThrottlingRateLimit": { + "markdownDescription": "The number of steady\\-state requests per second that API Gateway permits across all APIs, stages, and methods in your AWS account\\. For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThrottlingRateLimit", + "type": "number" + } + }, + "type": "object" + }, + "AWS::ApiGateway::Deployment.StageDescription": { + "additionalProperties": false, + "properties": { + "AccessLogSetting": { + "$ref": "#/definitions/AWS::ApiGateway::Deployment.AccessLogSetting", + "markdownDescription": "Specifies settings for logging access in this stage\\. \n*Required*: No \n*Type*: [AccessLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-accesslogsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessLogSetting" + }, + "CacheClusterEnabled": { + "markdownDescription": "Indicates whether cache clustering is enabled for the stage\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheClusterEnabled", + "type": "boolean" + }, + "CacheClusterSize": { + "markdownDescription": "The size of the stage's cache cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheClusterSize", + "type": "string" + }, + "CacheDataEncrypted": { + "markdownDescription": "Indicates whether the cached responses are encrypted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheDataEncrypted", + "type": "boolean" + }, + "CacheTtlInSeconds": { + "markdownDescription": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches responses\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheTtlInSeconds", + "type": "number" + }, + "CachingEnabled": { + "markdownDescription": "Indicates whether responses are cached and returned for requests\\. You must enable a cache cluster on the stage to cache responses\\. For more information, see [Enable API Gateway Caching in a Stage to Enhance API Performance](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CachingEnabled", + "type": "boolean" + }, + "CanarySetting": { + "$ref": "#/definitions/AWS::ApiGateway::Deployment.CanarySetting", + "markdownDescription": "Specifies settings for the canary deployment in this stage\\. \n*Required*: No \n*Type*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-canarysetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CanarySetting" + }, + "ClientCertificateId": { + "markdownDescription": "The identifier of the client certificate that API Gateway uses to call your integration endpoints in the stage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientCertificateId", + "type": "string" + }, + "DataTraceEnabled": { + "markdownDescription": "Indicates whether data trace logging is enabled for methods in the stage\\. API Gateway pushes these logs to Amazon CloudWatch Logs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataTraceEnabled", + "type": "boolean" + }, + "Description": { + "markdownDescription": "A description of the purpose of the stage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DocumentationVersion": { + "markdownDescription": "The version identifier of the API documentation snapshot\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentationVersion", + "type": "string" + }, + "LoggingLevel": { + "markdownDescription": "The logging level for this method\\. For valid values, see the `loggingLevel` property of the [Stage](https://docs.aws.amazon.com/apigateway/api-reference/resource/stage/#loggingLevel) resource in the *Amazon API Gateway API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingLevel", + "type": "string" + }, + "MethodSettings": { + "items": { + "$ref": "#/definitions/AWS::ApiGateway::Deployment.MethodSetting" + }, + "markdownDescription": "Configures settings for all of the stage's methods\\. \n*Required*: No \n*Type*: List of [MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-methodsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MethodSettings", + "type": "array" + }, + "MetricsEnabled": { + "markdownDescription": "Indicates whether Amazon CloudWatch metrics are enabled for methods in the stage\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricsEnabled", + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the stage\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "ThrottlingBurstLimit": { + "markdownDescription": "The target request burst rate limit\\. This allows more requests through for a period of time than the target rate limit\\. For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThrottlingBurstLimit", + "type": "number" + }, + "ThrottlingRateLimit": { + "markdownDescription": "The target request steady\\-state rate limit\\. For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThrottlingRateLimit", + "type": "number" + }, + "TracingEnabled": { + "markdownDescription": "Specifies whether active tracing with X\\-ray is enabled for this stage\\. \nFor more information, see [Trace API Gateway API Execution with AWS X\\-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TracingEnabled", + "type": "boolean" + }, + "Variables": { + "additionalProperties": true, + "markdownDescription": "A map that defines the stage variables\\. Variable names must consist of alphanumeric characters, and the values must match the following regular expression: `[A-Za-z0-9-._~:/?#&=,]+`\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Variables", + "type": "object" + } + }, + "type": "object" + }, + "AWS::ApiGateway::DocumentationPart": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Location": { + "$ref": "#/definitions/AWS::ApiGateway::DocumentationPart.Location", + "markdownDescription": "The location of the API entity that the documentation applies to\\. \n*Required*: Yes \n*Type*: [Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-documentationpart-location.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Location" + }, + "Properties": { + "markdownDescription": "The documentation content map of the targeted API entity\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Properties", + "type": "string" + }, + "RestApiId": { + "markdownDescription": "The identifier of the targeted API entity\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestApiId", + "type": "string" + } + }, + "required": [ + "Location", + "Properties", + "RestApiId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::DocumentationPart" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGateway::DocumentationPart.Location": { + "additionalProperties": false, + "properties": { + "Method": { + "markdownDescription": "The HTTP verb of a method\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Method", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the targeted API entity\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Path": { + "markdownDescription": "The URL path of the target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Path", + "type": "string" + }, + "StatusCode": { + "markdownDescription": "The HTTP status code of a response\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StatusCode", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of API entity that the documentation content applies to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGateway::DocumentationVersion": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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": { + "markdownDescription": "The description of the API documentation snapshot\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DocumentationVersion": { + "markdownDescription": "The version identifier of the API documentation snapshot\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DocumentationVersion", + "type": "string" + }, + "RestApiId": { + "markdownDescription": "The identifier of the API\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestApiId", + "type": "string" + } + }, + "required": [ + "DocumentationVersion", + "RestApiId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::DocumentationVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGateway::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": { + "markdownDescription": "The reference to an AWS\\-managed certificate for use by the edge\\-optimized endpoint for this domain name\\. AWS Certificate Manager is the only supported source\\. For requirements and additional information about setting up certificates, see [Get Certificates Ready in AWS Certificate Manager](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html#how-to-custom-domains-prerequisites) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateArn", + "type": "string" + }, + "DomainName": { + "markdownDescription": "The custom domain name for your API\\. Uppercase letters are not supported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", + "type": "string" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/AWS::ApiGateway::DomainName.EndpointConfiguration", + "markdownDescription": "A list of the endpoint types of the domain name\\. \n*Required*: No \n*Type*: [EndpointConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-endpointconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointConfiguration" + }, + "MutualTlsAuthentication": { + "$ref": "#/definitions/AWS::ApiGateway::DomainName.MutualTlsAuthentication", + "markdownDescription": "The mutual TLS authentication configuration for a custom domain name\\. \n*Required*: No \n*Type*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-mutualtlsauthentication.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MutualTlsAuthentication" + }, + "OwnershipVerificationCertificateArn": { + "markdownDescription": "The ARN of the public certificate issued by ACM to validate ownership of your custom domain\\. Only required when configuring mutual TLS and using an ACM imported or private CA certificate ARN as the RegionalCertificateArn\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OwnershipVerificationCertificateArn", + "type": "string" + }, + "RegionalCertificateArn": { + "markdownDescription": "The reference to an AWS\\-managed certificate for use by the regional endpoint for the domain name\\. AWS Certificate Manager is the only supported source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegionalCertificateArn", + "type": "string" + }, + "SecurityPolicy": { + "markdownDescription": "The Transport Layer Security \\(TLS\\) version \\+ cipher suite for this domain name\\. \nValid values include `TLS_1_0` and `TLS_1_2`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityPolicy", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the domain name\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::DomainName" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ApiGateway::DomainName.EndpointConfiguration": { + "additionalProperties": false, + "properties": { + "Types": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of endpoint types of an API or its custom domain name\\. For an edge\\-optimized API and its custom domain name, the endpoint type is `EDGE`\\. For a regional API and its custom domain name, the endpoint type is `REGIONAL`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Types", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ApiGateway::DomainName.MutualTlsAuthentication": { + "additionalProperties": false, + "properties": { + "TruststoreUri": { + "markdownDescription": "An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`\\. The truststore can contain certificates from public or private certificate authorities\\. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version\\. To update the truststore, you must have permissions to access the S3 object\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TruststoreUri", + "type": "string" + }, + "TruststoreVersion": { + "markdownDescription": "The version of the S3 object that contains your truststore\\. To specify a version, you must have versioning enabled for the S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TruststoreVersion", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGateway::GatewayResponse": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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, + "markdownDescription": "The response parameters \\(paths, query strings, and headers\\) for the response\\. Duplicates not allowed\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "ResponseParameters", + "type": "object" + }, + "ResponseTemplates": { + "additionalProperties": true, + "markdownDescription": "The response templates for the response\\. Duplicates not allowed\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "ResponseTemplates", + "type": "object" + }, + "ResponseType": { + "markdownDescription": "The response type\\. For valid values, see [GatewayResponse](https://docs.aws.amazon.com/apigateway/api-reference/resource/gateway-response/) in the *API Gateway API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResponseType", + "type": "string" + }, + "RestApiId": { + "markdownDescription": "The identifier of the API\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestApiId", + "type": "string" + }, + "StatusCode": { + "markdownDescription": "The HTTP status code for the response\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusCode", + "type": "string" + } + }, + "required": [ + "ResponseType", + "RestApiId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::GatewayResponse" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGateway::Method": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApiKeyRequired": { + "markdownDescription": "Indicates whether the method requires clients to submit a valid API key\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKeyRequired", + "type": "boolean" + }, + "AuthorizationScopes": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of authorization scopes configured on the method\\. The scopes are used with a `COGNITO_USER_POOLS` authorizer to authorize the method invocation\\. The authorization works by matching the method scopes against the scopes parsed from the access token in the incoming request\\. The method invocation is authorized if any method scopes match a claimed scope in the access token\\. Otherwise, the invocation is not authorized\\. When the method scope is configured, the client must provide an access token instead of an identity token for authorization purposes\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationScopes", + "type": "array" + }, + "AuthorizationType": { + "markdownDescription": "The method's authorization type\\. This parameter is required\\. For valid values, see [Method](https://docs.aws.amazon.com/apigateway/api-reference/resource/method/) in the *API Gateway API Reference*\\. \nIf you specify the `AuthorizerId` property, specify `CUSTOM` or `COGNITO_USER_POOLS` for this property\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationType", + "type": "string" + }, + "AuthorizerId": { + "markdownDescription": "The identifier of the [authorizer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html) to use on this method\\. If you specify this property, specify `CUSTOM` or `COGNITO_USER_POOLS` for the `AuthorizationType` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerId", + "type": "string" + }, + "HttpMethod": { + "markdownDescription": "The HTTP method that clients use to call this method\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpMethod", + "type": "string" + }, + "Integration": { + "$ref": "#/definitions/AWS::ApiGateway::Method.Integration", + "markdownDescription": "The backend system that the method calls when it receives a request\\. \n*Required*: No \n*Type*: [Integration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Integration" + }, + "MethodResponses": { + "items": { + "$ref": "#/definitions/AWS::ApiGateway::Method.MethodResponse" + }, + "markdownDescription": "The responses that can be sent to the client who calls the method\\. \n*Required*: No \n*Type*: List of [MethodResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-methodresponse.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MethodResponses", + "type": "array" + }, + "OperationName": { + "markdownDescription": "A friendly operation name for the method\\. For example, you can assign the `OperationName` of `ListPets` for the `GET /pets` method\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OperationName", + "type": "string" + }, + "RequestModels": { + "additionalProperties": true, + "markdownDescription": "The resources that are used for the request's content type\\. Specify request models as key\\-value pairs \\(string\\-to\\-string mapping\\), with a content type as the key and a `Model` resource name as the value\\. To use the same model regardless of the content type, specify `$default` as the key\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "RequestModels", + "type": "object" + }, + "RequestParameters": { + "additionalProperties": true, + "markdownDescription": "The request parameters that API Gateway accepts\\. Specify request parameters as key\\-value pairs \\(string\\-to\\-Boolean mapping\\), with a source as the key and a Boolean as the value\\. The Boolean specifies whether a parameter is required\\. A source must match the format `method.request.location.name`, where the location is querystring, path, or header, and *name* is a valid, unique parameter name\\. \n*Required*: No \n*Type*: Map of Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "boolean" + } + }, + "title": "RequestParameters", + "type": "object" + }, + "RequestValidatorId": { + "markdownDescription": "The ID of the associated request validator\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestValidatorId", + "type": "string" + }, + "ResourceId": { + "markdownDescription": "The ID of an API Gateway [resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html)\\. For root resource methods, specify the `RestApi` root resource ID, such as `{ \"Fn::GetAtt\": [\"MyRestApi\", \"RootResourceId\"] }`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceId", + "type": "string" + }, + "RestApiId": { + "markdownDescription": "The ID of the [RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource in which API Gateway creates the method\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestApiId", + "type": "string" + } + }, + "required": [ + "HttpMethod", + "ResourceId", + "RestApiId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::Method" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGateway::Method.Integration": { + "additionalProperties": false, + "properties": { + "CacheKeyParameters": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of request parameters whose values API Gateway caches\\. For cases where the integration type allows for RequestParameters to be set, these parameters must also be specified in [RequestParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-requestparameters) to be supported in `CacheKeyParameters`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheKeyParameters", + "type": "array" + }, + "CacheNamespace": { + "markdownDescription": "An API\\-specific tag group of related cached parameters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheNamespace", + "type": "string" + }, + "ConnectionId": { + "markdownDescription": "The ID of the `VpcLink` used for the integration when `connectionType=VPC_LINK`, otherwise undefined\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionId", + "type": "string" + }, + "ConnectionType": { + "markdownDescription": "The type of the network connection to the integration endpoint\\. The valid value is `INTERNET` for connections through the public routable internet or `VPC_LINK` for private connections between API Gateway and a network load balancer in a VPC\\. The default value is `INTERNET`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionType", + "type": "string" + }, + "ContentHandling": { + "markdownDescription": "Specifies how to handle request payload content type conversions\\. Valid values are: \n+ `CONVERT_TO_BINARY`: Converts a request payload from a base64\\-encoded string to a binary blob\\.\n+ `CONVERT_TO_TEXT`: Converts a request payload from a binary blob to a base64\\-encoded string\\.\nIf this property isn't defined, the request payload is passed through from the method request to the integration request without modification, provided that the `PassthroughBehaviors` property is configured to support payload pass\\-through\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentHandling", + "type": "string" + }, + "Credentials": { + "markdownDescription": "The credentials that are required for the integration\\. To specify an AWS Identity and Access Management \\(IAM\\) role that API Gateway assumes, specify the role's Amazon Resource Name \\(ARN\\)\\. To require that the caller's identity be passed through from the request, specify arn:aws:iam::\\*:user/\\*\\. \nTo use resource\\-based permissions on the AWS Lambda \\(Lambda\\) function, don't specify this property\\. Use the [AWS::Lambda::Permission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html) resource to permit API Gateway to call the function\\. For more information, see [Allow Amazon API Gateway to Invoke a Lambda Function](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html#access-control-resource-based-example-apigateway-invoke-function) in the *AWS Lambda Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Credentials", + "type": "string" + }, + "IntegrationHttpMethod": { + "markdownDescription": "The integration's HTTP method type\\. \nFor the `Type` property, if you specify `MOCK`, this property is optional\\. For all other types, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegrationHttpMethod", + "type": "string" + }, + "IntegrationResponses": { + "items": { + "$ref": "#/definitions/AWS::ApiGateway::Method.IntegrationResponse" + }, + "markdownDescription": "The response that API Gateway provides after a method's backend completes processing a request\\. API Gateway intercepts the response from the backend so that you can control how API Gateway surfaces backend responses\\. For example, you can map the backend status codes to codes that you define\\. \n*Required*: No \n*Type*: List of [IntegrationResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration-integrationresponse.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegrationResponses", + "type": "array" + }, + "PassthroughBehavior": { + "markdownDescription": "Indicates when API Gateway passes requests to the targeted backend\\. This behavior depends on the request's `Content-Type` header and whether you defined a mapping template for it\\. \nFor more information and valid values, see the [passthroughBehavior](https://docs.aws.amazon.com/apigateway/api-reference/link-relation/integration-put/#passthroughBehavior) field in the *API Gateway API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PassthroughBehavior", + "type": "string" + }, + "RequestParameters": { + "additionalProperties": true, + "markdownDescription": "The request parameters that API Gateway sends with the backend request\\. Specify request parameters as key\\-value pairs \\(string\\-to\\-string mappings\\), with a destination as the key and a source as the value\\. \nSpecify the destination by using the following pattern `integration.request.location.name`, where *location* is query string, path, or header, and *name* is a valid, unique parameter name\\. \nThe source must be an existing method request parameter or a static value\\. You must enclose static values in single quotation marks and pre\\-encode these values based on their destination in the request\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "RequestParameters", + "type": "object" + }, + "RequestTemplates": { + "additionalProperties": true, + "markdownDescription": "A map of Apache Velocity templates that are applied on the request payload\\. The template that API Gateway uses is based on the value of the `Content-Type` header that's sent by the client\\. The content type value is the key, and the template is the value \\(specified as a string\\), such as the following snippet: \n`\"application/json\": \"{\\n \\\"statusCode\\\": 200\\n}\"` \nFor more information about templates, see [API Gateway Mapping Template and Access Logging Variable Reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "RequestTemplates", + "type": "object" + }, + "TimeoutInMillis": { + "markdownDescription": "Custom timeout between 50 and 29,000 milliseconds\\. The default value is 29,000 milliseconds or 29 seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutInMillis", + "type": "number" + }, + "Type": { + "markdownDescription": "The type of backend that your method is running, such as `HTTP` or `MOCK`\\. For all of the valid values, see the [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/#type) property for the `Integration` resource in the *Amazon API Gateway REST API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "Uri": { + "markdownDescription": "The Uniform Resource Identifier \\(URI\\) for the integration\\. \nIf you specify `HTTP` for the `Type` property, specify the API endpoint URL\\. \nIf you specify `MOCK` for the `Type` property, don't specify this property\\. \nIf you specify `AWS` for the `Type` property, specify an AWS service that follows this form: arn:aws:apigateway:*region*:*subdomain*\\.*service\\|service*:*path\\|action*/*service\\_api*\\. For example, a Lambda function URI follows this form: arn:aws:apigateway:*region*:lambda:path/*path*\\. The path is usually in the form /2015\\-03\\-31/functions/*LambdaFunctionARN*/invocations\\. For more information, see the `uri` property of the [Integration](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/) resource in the Amazon API Gateway REST API Reference\\. \nIf you specified `HTTP` or `AWS` for the `Type` property, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Uri", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGateway::Method.IntegrationResponse": { + "additionalProperties": false, + "properties": { + "ContentHandling": { + "markdownDescription": "Specifies how to handle request payload content type conversions\\. Valid values are: \n+ `CONVERT_TO_BINARY`: Converts a request payload from a base64\\-encoded string to a binary blob\\.\n+ `CONVERT_TO_TEXT`: Converts a request payload from a binary blob to a base64\\-encoded string\\.\nIf this property isn't defined, the request payload is passed through from the method request to the integration request without modification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentHandling", + "type": "string" + }, + "ResponseParameters": { + "additionalProperties": true, + "markdownDescription": "The response parameters from the backend response that API Gateway sends to the method response\\. Specify response parameters as key\\-value pairs \\([string\\-to\\-string mappings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/mappings-section-structure.html)\\)\\. \nUse the destination as the key and the source as the value: \n+ The destination must be an existing response parameter in the [MethodResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-methodresponse.html) property\\.\n+ The source must be an existing method request parameter or a static value\\. You must enclose static values in single quotation marks and pre\\-encode these values based on the destination specified in the request\\.\nFor more information about templates, see [API Gateway Mapping Template and Access Logging Variable Reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "ResponseParameters", + "type": "object" + }, + "ResponseTemplates": { + "additionalProperties": true, + "markdownDescription": "The templates that are used to transform the integration response body\\. Specify templates as key\\-value pairs \\(string\\-to\\-string mappings\\), with a content type as the key and a template as the value\\. For more information, see [API Gateway Mapping Template and Access Logging Variable Reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "ResponseTemplates", + "type": "object" + }, + "SelectionPattern": { + "markdownDescription": "A [regular expression](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-regexes.html) that specifies which error strings or status codes from the backend map to the integration response\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SelectionPattern", + "type": "string" + }, + "StatusCode": { + "markdownDescription": "The status code that API Gateway uses to map the integration response to a [MethodResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-methodresponse.html) status code\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusCode", + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + }, + "AWS::ApiGateway::Method.MethodResponse": { + "additionalProperties": false, + "properties": { + "ResponseModels": { + "additionalProperties": true, + "markdownDescription": "The resources used for the response's content type\\. Specify response models as key\\-value pairs \\(string\\-to\\-string maps\\), with a content type as the key and a [Model](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html) resource name as the value\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "ResponseModels", + "type": "object" + }, + "ResponseParameters": { + "additionalProperties": true, + "markdownDescription": "Response parameters that API Gateway sends to the client that called a method\\. Specify response parameters as key\\-value pairs \\(string\\-to\\-Boolean maps\\), with a destination as the key and a Boolean as the value\\. Specify the destination using the following pattern: `method.response.header.name`, where *name* is a valid, unique header name\\. The Boolean specifies whether a parameter is required\\. \n*Required*: No \n*Type*: Map of Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "boolean" + } + }, + "title": "ResponseParameters", + "type": "object" + }, + "StatusCode": { + "markdownDescription": "The method response's status code, which you map to an [IntegrationResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration-integrationresponse.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusCode", + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + }, + "AWS::ApiGateway::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": { + "ContentType": { + "markdownDescription": "The content type for the model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContentType", + "type": "string" + }, + "Description": { + "markdownDescription": "A description that identifies this model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "A name for the model\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the model name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RestApiId": { + "markdownDescription": "The ID of a REST API with which to associate this model\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestApiId", + "type": "string" + }, + "Schema": { + "markdownDescription": "The schema to use to transform data to one or more output formats\\. Specify null \\(`{}`\\) if you don't want to specify a schema\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schema", + "type": "object" + } + }, + "required": [ + "RestApiId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::Model" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGateway::RequestValidator": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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": { + "markdownDescription": "The name of this request validator\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RestApiId": { + "markdownDescription": "The identifier of the targeted API entity\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestApiId", + "type": "string" + }, + "ValidateRequestBody": { + "markdownDescription": "Indicates whether to validate the request body according to the configured schema for the targeted API and method\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValidateRequestBody", + "type": "boolean" + }, + "ValidateRequestParameters": { + "markdownDescription": "Indicates whether to validate request parameters\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValidateRequestParameters", + "type": "boolean" + } + }, + "required": [ + "RestApiId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::RequestValidator" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGateway::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": { + "ParentId": { + "markdownDescription": "If you want to create a child resource, the ID of the parent resource\\. For resources without a parent, specify the `RestApi` root resource ID, such as `{ \"Fn::GetAtt\": [\"MyRestApi\", \"RootResourceId\"] }`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ParentId", + "type": "string" + }, + "PathPart": { + "markdownDescription": "A path name for the resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PathPart", + "type": "string" + }, + "RestApiId": { + "markdownDescription": "The ID of the [RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource in which you want to create this resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestApiId", + "type": "string" + } + }, + "required": [ + "ParentId", + "PathPart", + "RestApiId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::Resource" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGateway::RestApi": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApiKeySourceType": { + "markdownDescription": "The source of the API key for metering requests according to a usage plan\\. Valid values are: \n+ `HEADER` to read the API key from the `X-API-Key` header of a request\\.\n+ `AUTHORIZER` to read the API key from the `UsageIdentifierKey` from a Lambda authorizer\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKeySourceType", + "type": "string" + }, + "BinaryMediaTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of binary media types that are supported by the `RestApi` resource\\. Use `~1` instead of `/` in the media types, for example `image~1png` or `application~1octet-stream`\\. By default, `RestApi` supports only UTF\\-8\\-encoded text payloads\\. Duplicates are not allowed\\. For more information, see [Enable Support for Binary Payloads in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-payload-encodings.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BinaryMediaTypes", + "type": "array" + }, + "Body": { + "markdownDescription": "An OpenAPI specification that defines a set of RESTful APIs in JSON format\\. For YAML templates, you can also provide the specification in YAML format\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body", + "type": "object" + }, + "BodyS3Location": { + "$ref": "#/definitions/AWS::ApiGateway::RestApi.S3Location", + "markdownDescription": "The Amazon Simple Storage Service \\(Amazon S3\\) location that points to an OpenAPI file, which defines a set of RESTful APIs in JSON or YAML format\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BodyS3Location" + }, + "CloneFrom": { + "markdownDescription": "The ID of the `RestApi` resource that you want to clone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloneFrom", + "type": "string" + }, + "Description": { + "markdownDescription": "A description of the `RestApi` resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DisableExecuteApiEndpoint": { + "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 endpoint\\. To require that clients use a custom domain name to invoke your API, disable the default endpoint\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableExecuteApiEndpoint", + "type": "boolean" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/AWS::ApiGateway::RestApi.EndpointConfiguration", + "markdownDescription": "A list of the endpoint types of the API\\. Use this property when creating an API\\. When importing an existing API, specify the endpoint configuration types using the `Parameters` property\\. \n*Required*: No \n*Type*: [EndpointConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointConfiguration" + }, + "FailOnWarnings": { + "markdownDescription": "Indicates whether to roll back the resource if a warning occurs while API Gateway is creating the `RestApi` resource\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailOnWarnings", + "type": "boolean" + }, + "MinimumCompressionSize": { + "markdownDescription": "A nullable integer that is used to enable compression \\(with non\\-negative between 0 and 10485760 \\(10M\\) bytes, inclusive\\) or disable compression \\(with a null value\\) on an API\\. When compression is enabled, compression or decompression is not applied on the payload if the payload size is smaller than this value\\. Setting it to zero allows compression for any payload size\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinimumCompressionSize", + "type": "number" + }, + "Mode": { + "markdownDescription": "This property applies only when you use OpenAPI to define your REST API\\. The `Mode` determines how API Gateway handles resource updates\\. \nValid values are `overwrite` or `merge`\\. \nFor `overwrite`, the new API definition replaces the existing one\\. The existing API identifier remains unchanged\\. \n For `merge`, the new API definition takes precedence, but any container types such as endpoint configurations and binary media types are merged with the existing API\\. Use `merge` to define top\\-level `RestApi` properties in addition to using OpenAPI\\. Generally, it's preferred to use API Gateway's OpenAPI extensions to model these properties\\. \nIf you don't specify this property, a default value is chosen\\. For REST APIs created before March 29, 2021, the default is `overwrite`\\. Otherwise, the default value is `merge`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", + "type": "string" + }, + "Name": { + "markdownDescription": "A name for the `RestApi` resource\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Parameters": { + "additionalProperties": true, + "markdownDescription": "Custom header parameters for the request\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Parameters", + "type": "object" + }, + "Policy": { + "markdownDescription": "A policy document that contains the permissions for the `RestApi` resource\\. To set the ARN for the policy, use the `!Join` intrinsic function with `\"\"` as delimiter and values of `\"execute-api:/\"` and `\"*\"`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policy", + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the API\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::RestApi" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ApiGateway::RestApi.EndpointConfiguration": { + "additionalProperties": false, + "properties": { + "Types": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of endpoint types of an API or its custom domain name\\. Valid values include: \n+ `EDGE`: For an edge\\-optimized API and its custom domain name\\.\n+ `REGIONAL`: For a regional API and its custom domain name\\.\n+ `PRIVATE`: For a private API\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Types", + "type": "array" + }, + "VpcEndpointIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of VPC endpoint IDs of an API \\([AWS::ApiGateway::RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html)\\) against which to create Route53 ALIASes\\. It is only supported for `PRIVATE` endpoint type\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcEndpointIds", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ApiGateway::RestApi.S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "markdownDescription": "The name of the S3 bucket where the OpenAPI file is stored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", + "type": "string" + }, + "ETag": { + "markdownDescription": "The Amazon S3 ETag \\(a file checksum\\) of the OpenAPI file\\. If you don't specify a value, API Gateway skips ETag validation of your OpenAPI file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ETag", + "type": "string" + }, + "Key": { + "markdownDescription": "The file name of the OpenAPI file \\(Amazon S3 object name\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Version": { + "markdownDescription": "For versioning\\-enabled buckets, a specific version of the OpenAPI file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGateway::Stage": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccessLogSetting": { + "$ref": "#/definitions/AWS::ApiGateway::Stage.AccessLogSetting", + "markdownDescription": "Specifies settings for logging access in this stage\\. \n*Required*: No \n*Type*: [AccessLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-accesslogsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessLogSetting" + }, + "CacheClusterEnabled": { + "markdownDescription": "Indicates whether cache clustering is enabled for the stage\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheClusterEnabled", + "type": "boolean" + }, + "CacheClusterSize": { + "markdownDescription": "The stage's cache cluster size\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheClusterSize", + "type": "string" + }, + "CanarySetting": { + "$ref": "#/definitions/AWS::ApiGateway::Stage.CanarySetting", + "markdownDescription": "Specifies settings for the canary deployment in this stage\\. \n*Required*: No \n*Type*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CanarySetting" + }, + "ClientCertificateId": { + "markdownDescription": "The ID of the client certificate that API Gateway uses to call your integration endpoints in the stage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientCertificateId", + "type": "string" + }, + "DeploymentId": { + "markdownDescription": "The ID of the deployment that the stage is associated with\\. This parameter is required to create a stage\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentId", + "type": "string" + }, + "Description": { + "markdownDescription": "A description of the stage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DocumentationVersion": { + "markdownDescription": "The version ID of the API documentation snapshot\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentationVersion", + "type": "string" + }, + "MethodSettings": { + "items": { + "$ref": "#/definitions/AWS::ApiGateway::Stage.MethodSetting" + }, + "markdownDescription": "Settings for all methods in the stage\\. \n*Required*: No \n*Type*: List of [MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MethodSettings", + "type": "array" + }, + "RestApiId": { + "markdownDescription": "The ID of the `RestApi` resource that you're deploying with this stage\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestApiId", + "type": "string" + }, + "StageName": { + "markdownDescription": "The name of the stage, which API Gateway uses as the first path segment in the invoked Uniform Resource Identifier \\(URI\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StageName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the stage\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TracingEnabled": { + "markdownDescription": "Specifies whether active X\\-Ray tracing is enabled for this stage\\. \nFor more information, see [Trace API Gateway API Execution with AWS X\\-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TracingEnabled", + "type": "boolean" + }, + "Variables": { + "additionalProperties": true, + "markdownDescription": "A map \\(string\\-to\\-string map\\) 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*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Variables", + "type": "object" + } + }, + "required": [ + "RestApiId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::Stage" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGateway::Stage.AccessLogSetting": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs\\. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with `amazon-apigateway-`\\. This parameter is required to enable access logging\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationArn", + "type": "string" + }, + "Format": { + "markdownDescription": "A single line format of the access logs of data, as specified by selected [$context variables](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference)\\. The format must include at least `$context.requestId`\\. This parameter is required to enable access logging\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGateway::Stage.CanarySetting": { + "additionalProperties": false, + "properties": { + "DeploymentId": { + "markdownDescription": "The identifier of the deployment that the stage points to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentId", + "type": "string" + }, + "PercentTraffic": { + "markdownDescription": "The percentage \\(0\\-100\\) of traffic diverted to a canary deployment\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PercentTraffic", + "type": "number" + }, + "StageVariableOverrides": { + "additionalProperties": true, + "markdownDescription": "Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary\\. These stage variables are represented as a string\\-to\\-string map between stage variable names and their values\\. \nDuplicates are not allowed\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "StageVariableOverrides", + "type": "object" + }, + "UseStageCache": { + "markdownDescription": "Whether the canary deployment uses the stage cache or not\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseStageCache", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::ApiGateway::Stage.MethodSetting": { + "additionalProperties": false, + "properties": { + "CacheDataEncrypted": { + "markdownDescription": "Indicates whether the cached responses are encrypted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheDataEncrypted", + "type": "boolean" + }, + "CacheTtlInSeconds": { + "markdownDescription": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches responses\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheTtlInSeconds", + "type": "number" + }, + "CachingEnabled": { + "markdownDescription": "Indicates whether responses are cached and returned for requests\\. You must enable a cache cluster on the stage to cache responses\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CachingEnabled", + "type": "boolean" + }, + "DataTraceEnabled": { + "markdownDescription": "Indicates whether data trace logging is enabled for methods in the stage\\. API Gateway pushes these logs to Amazon CloudWatch Logs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataTraceEnabled", + "type": "boolean" + }, + "HttpMethod": { + "markdownDescription": "The HTTP method\\. To apply settings to multiple resources and methods, specify an asterisk \\(`*`\\) for the `HttpMethod` and `/*` for the `ResourcePath`\\. This parameter is required when you specify a `MethodSetting`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpMethod", + "type": "string" + }, + "LoggingLevel": { + "markdownDescription": "The logging level for this method\\. For valid values, see the `loggingLevel` property of the [Stage](https://docs.aws.amazon.com/apigateway/api-reference/resource/stage/#loggingLevel) resource in the *Amazon API Gateway API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingLevel", + "type": "string" + }, + "MetricsEnabled": { + "markdownDescription": "Indicates whether Amazon CloudWatch metrics are enabled for methods in the stage\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricsEnabled", + "type": "boolean" + }, + "ResourcePath": { + "markdownDescription": "The resource path for this method\\. Forward slashes \\(`/`\\) are encoded as `~1` and the initial slash must include a forward slash\\. For example, the path value `/resource/subresource` must be encoded as `/~1resource~1subresource`\\. To specify the root path, use only a slash \\(`/`\\)\\. To apply settings to multiple resources and methods, specify an asterisk \\(`*`\\) for the `HttpMethod` and `/*` for the `ResourcePath`\\. This parameter is required when you specify a `MethodSetting`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourcePath", + "type": "string" + }, + "ThrottlingBurstLimit": { + "markdownDescription": "The number of burst requests per second that API Gateway permits across all APIs, stages, and methods in your AWS account\\. For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThrottlingBurstLimit", + "type": "number" + }, + "ThrottlingRateLimit": { + "markdownDescription": "The number of steady\\-state requests per second that API Gateway permits across all APIs, stages, and methods in your AWS account\\. For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThrottlingRateLimit", + "type": "number" + } + }, + "type": "object" + }, + "AWS::ApiGateway::UsagePlan": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApiStages": { + "items": { + "$ref": "#/definitions/AWS::ApiGateway::UsagePlan.ApiStage" + }, + "markdownDescription": "The API stages to associate with this usage plan\\. \n*Required*: No \n*Type*: List of [ApiStage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-apistage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiStages", + "type": "array" + }, + "Description": { + "markdownDescription": "A description of the usage plan\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Quota": { + "$ref": "#/definitions/AWS::ApiGateway::UsagePlan.QuotaSettings", + "markdownDescription": "Configures the number of requests that users can make within a given interval\\. \n*Required*: No \n*Type*: [QuotaSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-quotasettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Quota" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the usage plan\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Throttle": { + "$ref": "#/definitions/AWS::ApiGateway::UsagePlan.ThrottleSettings", + "markdownDescription": "Configures the overall request rate \\(average requests per second\\) and burst capacity\\. \n*Required*: No \n*Type*: [ThrottleSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-throttlesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Throttle" + }, + "UsagePlanName": { + "markdownDescription": "A name for the usage plan\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UsagePlanName", + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::UsagePlan" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ApiGateway::UsagePlan.ApiStage": { + "additionalProperties": false, + "properties": { + "ApiId": { + "markdownDescription": "The ID of an API that is in the specified `Stage` property that you want to associate with the usage plan\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiId", + "type": "string" + }, + "Stage": { + "markdownDescription": "The name of the stage to associate with the usage plan\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Stage", + "type": "string" + }, + "Throttle": { + "additionalProperties": false, + "markdownDescription": "Map containing method\\-level throttling information for an API stage in a usage plan\\. The key for the map is the path and method for which to configure custom throttling, for example, \"/pets/GET\"\\. \nDuplicates are not allowed\\. \n*Required*: No \n*Type*: Map of [ThrottleSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-throttlesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::ApiGateway::UsagePlan.ThrottleSettings" + } + }, + "title": "Throttle", + "type": "object" + } + }, + "type": "object" + }, + "AWS::ApiGateway::UsagePlan.QuotaSettings": { + "additionalProperties": false, + "properties": { + "Limit": { + "markdownDescription": "The target maximum number of requests that can be made in a given time period\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Limit", + "type": "number" + }, + "Offset": { + "markdownDescription": "The day that a time period starts\\. For example, with a time period of `WEEK`, an offset of `0` starts on Sunday, and an offset of `1` starts on Monday\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Offset", + "type": "number" + }, + "Period": { + "markdownDescription": "The time period for which the target maximum limit of requests applies, such as `DAY` or `WEEK`\\. For valid values, see the period property for the [UsagePlan](https://docs.aws.amazon.com/apigateway/api-reference/resource/usage-plan) resource in the *Amazon API Gateway REST API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Period", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGateway::UsagePlan.ThrottleSettings": { + "additionalProperties": false, + "properties": { + "BurstLimit": { + "markdownDescription": "The API target request burst rate limit\\. This allows more requests through for a period of time than the target rate limit\\. For more information about request throttling, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BurstLimit", + "type": "number" + }, + "RateLimit": { + "markdownDescription": "The API target request steady\\-state rate limit\\. For more information about request throttling, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RateLimit", + "type": "number" + } + }, + "type": "object" + }, + "AWS::ApiGateway::UsagePlanKey": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "KeyId": { + "markdownDescription": "The ID of the usage plan key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyId", + "type": "string" + }, + "KeyType": { + "markdownDescription": "The type of usage plan key\\. Currently, the only valid key type is `API_KEY`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyType", + "type": "string" + }, + "UsagePlanId": { + "markdownDescription": "The ID of the usage plan\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UsagePlanId", + "type": "string" + } + }, + "required": [ + "KeyId", + "KeyType", + "UsagePlanId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::UsagePlanKey" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGateway::VpcLink": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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": { + "markdownDescription": "A description of the VPC link\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "A name for the VPC link\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the VPC link\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TargetArns": { + "items": { + "type": "string" + }, + "markdownDescription": "The ARN of network load balancer of the VPC targeted by the VPC link\\. The network load balancer must be owned by the same AWS account of the API owner\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetArns", + "type": "array" + } + }, + "required": [ + "Name", + "TargetArns" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::VpcLink" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::Api": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApiKeySelectionExpression": { + "markdownDescription": "An API key selection expression\\. Supported only for WebSocket APIs\\. See [API Key Selection Expressions](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKeySelectionExpression", + "type": "string" + }, + "BasePath": { + "markdownDescription": "Specifies how to interpret the base path of the API during import\\. Valid values are `ignore`, `prepend`, and `split`\\. The default value is `ignore`\\. To learn more, see [Set the OpenAPI basePath Property](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api-basePath.html)\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BasePath", + "type": "string" + }, + "Body": { + "markdownDescription": "The OpenAPI definition\\. Supported only for HTTP APIs\\. To import an HTTP API, you must specify a `Body` or `BodyS3Location`\\. If you specify a `Body` or `BodyS3Location`, don't specify CloudFormation resources such as `AWS::ApiGatewayV2::Authorizer` or `AWS::ApiGatewayV2::Route`\\. API Gateway doesn't support the combination of OpenAPI and CloudFormation resources\\. \n*Required*: Conditional \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body", + "type": "object" + }, + "BodyS3Location": { + "$ref": "#/definitions/AWS::ApiGatewayV2::Api.BodyS3Location", + "markdownDescription": "The S3 location of an OpenAPI definition\\. Supported only for HTTP APIs\\. To import an HTTP API, you must specify a `Body` or `BodyS3Location`\\. If you specify a `Body` or `BodyS3Location`, don't specify CloudFormation resources such as `AWS::ApiGatewayV2::Authorizer` or `AWS::ApiGatewayV2::Route`\\. API Gateway doesn't support the combination of OpenAPI and CloudFormation resources\\. \n*Required*: Conditional \n*Type*: [BodyS3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BodyS3Location" + }, + "CorsConfiguration": { + "$ref": "#/definitions/AWS::ApiGatewayV2::Api.Cors", + "markdownDescription": "A CORS configuration\\. Supported only for HTTP APIs\\. See [Configuring CORS](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) for more information\\. \n*Required*: No \n*Type*: [Cors](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-cors.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CorsConfiguration" + }, + "CredentialsArn": { + "markdownDescription": "This property is part of quick create\\. It specifies the credentials required for the integration, if any\\. For a Lambda integration, three options are available\\. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name \\(ARN\\)\\. To require that the caller's identity be passed through from the request, specify `arn:aws:iam::*:user/*`\\. To use resource\\-based permissions on supported AWS services, specify `null`\\. Currently, this property is not used for HTTP integrations\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CredentialsArn", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the API\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DisableExecuteApiEndpoint": { + "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 endpoint\\. To require that clients use a custom domain name to invoke your API, disable the default endpoint\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableExecuteApiEndpoint", + "type": "boolean" + }, + "DisableSchemaValidation": { + "markdownDescription": "Avoid validating models when creating a deployment\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableSchemaValidation", + "type": "boolean" + }, + "FailOnWarnings": { + "markdownDescription": "Specifies whether to rollback the API creation when a warning is encountered\\. By default, API creation continues if a warning is encountered\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailOnWarnings", + "type": "boolean" + }, + "Name": { + "markdownDescription": "The name of the API\\. Required unless you specify an OpenAPI definition for `Body` or `S3BodyLocation`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "ProtocolType": { + "markdownDescription": "The API protocol\\. Valid values are `WEBSOCKET` or `HTTP`\\. Required unless you specify an OpenAPI definition for `Body` or `S3BodyLocation`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProtocolType", + "type": "string" + }, + "RouteKey": { + "markdownDescription": "This property is part of quick create\\. If you don't specify a `routeKey`, a default route of `$default` is created\\. The `$default` route acts as a catch\\-all for any request made to your API, for a particular stage\\. The `$default` route key can't be modified\\. You can add routes after creating the API, and you can update the route keys of additional routes\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteKey", + "type": "string" + }, + "RouteSelectionExpression": { + "markdownDescription": "The route selection expression for the API\\. For HTTP APIs, the `routeSelectionExpression` must be `${request.method} ${request.path}`\\. If not provided, this will be the default for HTTP APIs\\. This property is required for WebSocket APIs\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteSelectionExpression", + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "The collection of tags\\. Each tag element is associated with a given resource\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "type": "object" + }, + "Target": { + "markdownDescription": "This property is part of quick create\\. Quick create produces an API with an integration, a default catch\\-all route, and a default stage which is configured to automatically deploy changes\\. For HTTP integrations, specify a fully qualified URL\\. For Lambda integrations, specify a function ARN\\. The type of the integration will be HTTP\\_PROXY or AWS\\_PROXY, respectively\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target", + "type": "string" + }, + "Version": { + "markdownDescription": "A version identifier for the API\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGatewayV2::Api" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::Api.BodyS3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "markdownDescription": "The S3 bucket that contains the OpenAPI definition to import\\. Required if you specify a `BodyS3Location` for an API\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", + "type": "string" + }, + "Etag": { + "markdownDescription": "The Etag of the S3 object\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Etag", + "type": "string" + }, + "Key": { + "markdownDescription": "The key of the S3 object\\. Required if you specify a `BodyS3Location` for an API\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Version": { + "markdownDescription": "The version of the S3 object\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGatewayV2::Api.Cors": { + "additionalProperties": false, + "properties": { + "AllowCredentials": { + "markdownDescription": "Specifies whether credentials are included in the CORS request\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowCredentials", + "type": "boolean" + }, + "AllowHeaders": { + "items": { + "type": "string" + }, + "markdownDescription": "Represents a collection of allowed headers\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowHeaders", + "type": "array" + }, + "AllowMethods": { + "items": { + "type": "string" + }, + "markdownDescription": "Represents a collection of allowed HTTP methods\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowMethods", + "type": "array" + }, + "AllowOrigins": { + "items": { + "type": "string" + }, + "markdownDescription": "Represents a collection of allowed origins\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowOrigins", + "type": "array" + }, + "ExposeHeaders": { + "items": { + "type": "string" + }, + "markdownDescription": "Represents a collection of exposed headers\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExposeHeaders", + "type": "array" + }, + "MaxAge": { + "markdownDescription": "The number of seconds that the browser should cache preflight request results\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxAge", + "type": "number" + } + }, + "type": "object" + }, + "AWS::ApiGatewayV2::ApiGatewayManagedOverrides": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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": { + "markdownDescription": "The ID of the API for which to override the configuration of API Gateway\\-managed resources\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", + "type": "string" + }, + "Integration": { + "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.IntegrationOverrides", + "markdownDescription": "Overrides the integration configuration for an API Gateway\\-managed integration\\. \n*Required*: No \n*Type*: [IntegrationOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Integration" + }, + "Route": { + "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteOverrides", + "markdownDescription": "Overrides the route configuration for an API Gateway\\-managed route\\. \n*Required*: No \n*Type*: [RouteOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routeoverrides.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Route" + }, + "Stage": { + "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.StageOverrides", + "markdownDescription": "Overrides the stage configuration for an API Gateway\\-managed stage\\. \n*Required*: No \n*Type*: [StageOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Stage" + } + }, + "required": [ + "ApiId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGatewayV2::ApiGatewayManagedOverrides" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.AccessLogSettings": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "markdownDescription": "The ARN of the CloudWatch Logs log group to receive access logs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationArn", + "type": "string" + }, + "Format": { + "markdownDescription": "A single line format of the access logs of data, as specified by selected $context variables\\. The format must include at least $context\\.requestId\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.IntegrationOverrides": { + "additionalProperties": false, + "properties": { + "Description": { + "markdownDescription": "The description of the integration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "IntegrationMethod": { + "markdownDescription": "Specifies the integration's HTTP method type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegrationMethod", + "type": "string" + }, + "PayloadFormatVersion": { + "markdownDescription": "Specifies the format of the payload sent to an integration\\. Required for HTTP APIs\\. For HTTP APIs, supported values for Lambda proxy integrations are `1.0` and `2.0`\\. For all other integrations, `1.0` is the only supported value\\. To learn more, see [Working with AWS Lambda proxy integrations for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PayloadFormatVersion", + "type": "string" + }, + "TimeoutInMillis": { + "markdownDescription": "Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs\\. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutInMillis", + "type": "number" + } + }, + "type": "object" + }, + "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteOverrides": { + "additionalProperties": false, + "properties": { + "AuthorizationScopes": { + "items": { + "type": "string" + }, + "markdownDescription": "The authorization scopes supported by this route\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationScopes", + "type": "array" + }, + "AuthorizationType": { + "markdownDescription": "The authorization type for the route\\. To learn more, see [AuthorizationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-authorizationtype)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationType", + "type": "string" + }, + "AuthorizerId": { + "markdownDescription": "The identifier of the `Authorizer` resource to be associated with this route\\. The authorizer identifier is generated by API Gateway when you created the authorizer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerId", + "type": "string" + }, + "OperationName": { + "markdownDescription": "The operation name for the route\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OperationName", + "type": "string" + }, + "Target": { + "markdownDescription": "For HTTP integrations, specify a fully qualified URL\\. For Lambda integrations, specify a function ARN\\. The type of the integration will be HTTP\\_PROXY or AWS\\_PROXY, respectively\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteSettings": { + "additionalProperties": false, + "properties": { + "DataTraceEnabled": { + "markdownDescription": "Specifies whether \\(`true`\\) or not \\(`false`\\) data trace logging is enabled for this route\\. This property affects the log entries pushed to Amazon CloudWatch Logs\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataTraceEnabled", + "type": "boolean" + }, + "DetailedMetricsEnabled": { + "markdownDescription": "Specifies whether detailed metrics are enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DetailedMetricsEnabled", + "type": "boolean" + }, + "LoggingLevel": { + "markdownDescription": "Specifies the logging level for this route: `INFO`, `ERROR`, or `OFF`\\. This property affects the log entries pushed to Amazon CloudWatch Logs\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingLevel", + "type": "string" + }, + "ThrottlingBurstLimit": { + "markdownDescription": "Specifies the throttling burst limit\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThrottlingBurstLimit", + "type": "number" + }, + "ThrottlingRateLimit": { + "markdownDescription": "Specifies the throttling rate limit\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThrottlingRateLimit", + "type": "number" + } + }, + "type": "object" + }, + "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.StageOverrides": { + "additionalProperties": false, + "properties": { + "AccessLogSettings": { + "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.AccessLogSettings", + "markdownDescription": "Settings for logging access in a stage\\. \n*Required*: No \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessLogSettings" + }, + "AutoDeploy": { + "markdownDescription": "Specifies whether updates to an API automatically trigger a new deployment\\. The default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoDeploy", + "type": "boolean" + }, + "DefaultRouteSettings": { + "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteSettings", + "markdownDescription": "The default route settings for the stage\\. \n*Required*: No \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultRouteSettings" + }, + "Description": { + "markdownDescription": "The description for the API stage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "RouteSettings": { + "markdownDescription": "Route settings for the stage\\. \n*Required*: No \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteSettings", + "type": "object" + }, + "StageVariables": { + "markdownDescription": "A map that defines the stage variables for a `Stage`\\. Variable names can have alphanumeric and underscore characters, and the values must match \\[A\\-Za\\-z0\\-9\\-\\.\\_\\~:/?\\#&=,\\]\\+\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StageVariables", + "type": "object" + } + }, + "type": "object" + }, + "AWS::ApiGatewayV2::ApiMapping": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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": { + "markdownDescription": "The identifier of the API\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", + "type": "string" + }, + "ApiMappingKey": { + "markdownDescription": "The API mapping key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiMappingKey", + "type": "string" + }, + "DomainName": { + "markdownDescription": "The domain name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", + "type": "string" + }, + "Stage": { + "markdownDescription": "The API stage\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Stage", + "type": "string" + } + }, + "required": [ + "ApiId", + "DomainName", + "Stage" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGatewayV2::ApiMapping" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::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": { + "ApiId": { + "markdownDescription": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", + "type": "string" + }, + "AuthorizerCredentialsArn": { + "markdownDescription": "Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer\\. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name \\(ARN\\)\\. To use resource\\-based permissions on the Lambda function, specify null\\. Supported only for `REQUEST` authorizers\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerCredentialsArn", + "type": "string" + }, + "AuthorizerPayloadFormatVersion": { + "markdownDescription": "Specifies the format of the payload sent to an HTTP API Lambda authorizer\\. Required for HTTP API Lambda authorizers\\. Supported values are `1.0` and `2.0`\\. To learn more, see [Working with AWS Lambda authorizers for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerPayloadFormatVersion", + "type": "string" + }, + "AuthorizerResultTtlInSeconds": { + "markdownDescription": "The time to live \\(TTL\\) for cached authorizer results, in seconds\\. If it equals 0, authorization caching is disabled\\. If it is greater than 0, API Gateway caches authorizer responses\\. The maximum value is 3600, or 1 hour\\. Supported only for HTTP API Lambda authorizers\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerResultTtlInSeconds", + "type": "number" + }, + "AuthorizerType": { + "markdownDescription": "The authorizer type\\. Specify `REQUEST` for a Lambda function using incoming request parameters\\. Specify `JWT` to use JSON Web Tokens \\(supported only for HTTP APIs\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerType", + "type": "string" + }, + "AuthorizerUri": { + "markdownDescription": "The authorizer's Uniform Resource Identifier \\(URI\\)\\. For `REQUEST` authorizers, this must be a well\\-formed Lambda function URI, for example, `arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations`\\. In general, the URI has this form: `arn:aws:apigateway:{region}:lambda:path/{service_api} `, where *\\{region\\}* is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial `/`\\. For Lambda functions, this is usually of the form `/2015-03-31/functions/[FunctionARN]/invocations`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerUri", + "type": "string" + }, + "EnableSimpleResponses": { + "markdownDescription": "Specifies whether a Lambda authorizer returns a response in a simple format\\. By default, a Lambda authorizer must return an IAM policy\\. If enabled, the Lambda authorizer can return a boolean value instead of an IAM policy\\. Supported only for HTTP APIs\\. To learn more, see [Working with AWS Lambda authorizers for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableSimpleResponses", + "type": "boolean" + }, + "IdentitySource": { + "items": { + "type": "string" + }, + "markdownDescription": "The identity source for which authorization is requested\\. \nFor a `REQUEST` authorizer, this is optional\\. The value is a set of one or more mapping expressions of the specified request parameters\\. The identity source can be headers, query string parameters, stage variables, and context parameters\\. For example, if an Auth header and a Name query string parameter are defined as identity sources, this value is route\\.request\\.header\\.Auth, route\\.request\\.querystring\\.Name for WebSocket APIs\\. For HTTP APIs, use selection expressions prefixed with `$`, for example, `$request.header.Auth`, `$request.querystring.Name`\\. These parameters are used to perform runtime validation for Lambda\\-based authorizers by verifying all of the identity\\-related request parameters are present in the request, not null, and non\\-empty\\. Only when this is true does the authorizer invoke the authorizer Lambda function\\. Otherwise, it returns a 401 Unauthorized response without calling the Lambda function\\. For HTTP APIs, identity sources are also used as the cache key when caching is enabled\\. To learn more, see [Working with AWS Lambda authorizers for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html)\\. \nFor `JWT`, a single entry that specifies where to extract the JSON Web Token \\(JWT\\) from inbound requests\\. Currently only header\\-based and query parameter\\-based selections are supported, for example `$request.header.Authorization`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentitySource", + "type": "array" + }, + "IdentityValidationExpression": { + "markdownDescription": "This parameter is not used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentityValidationExpression", + "type": "string" + }, + "JwtConfiguration": { + "$ref": "#/definitions/AWS::ApiGatewayV2::Authorizer.JWTConfiguration", + "markdownDescription": "The `JWTConfiguration` property specifies the configuration of a JWT authorizer\\. Required for the `JWT` authorizer type\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: [JWTConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-authorizer-jwtconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JwtConfiguration" + }, + "Name": { + "markdownDescription": "The name of the authorizer\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "ApiId", + "AuthorizerType", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGatewayV2::Authorizer" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::Authorizer.JWTConfiguration": { + "additionalProperties": false, + "properties": { + "Audience": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of the intended recipients of the JWT\\. A valid JWT must provide an `aud` that matches at least one entry in this list\\. See [RFC 7519](https://tools.ietf.org/html/rfc7519#section-4.1.3)\\. Required for the `JWT` authorizer type\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Audience", + "type": "array" + }, + "Issuer": { + "markdownDescription": "The base domain of the identity provider that issues JSON Web Tokens\\. For example, an Amazon Cognito user pool has the following format: `https://cognito-idp.{region}.amazonaws.com/{userPoolId} `\\. Required for the `JWT` authorizer type\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Issuer", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGatewayV2::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": { + "ApiId": { + "markdownDescription": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", + "type": "string" + }, + "Description": { + "markdownDescription": "The description for the deployment resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "StageName": { + "markdownDescription": "The name of an existing stage to associate with the deployment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StageName", + "type": "string" + } + }, + "required": [ + "ApiId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGatewayV2::Deployment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::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": { + "DomainName": { + "markdownDescription": "The custom domain name for your API in Amazon API Gateway\\. Uppercase letters are not supported\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", + "type": "string" + }, + "DomainNameConfigurations": { + "items": { + "$ref": "#/definitions/AWS::ApiGatewayV2::DomainName.DomainNameConfiguration" + }, + "markdownDescription": "The domain name configurations\\. \n*Required*: No \n*Type*: List of [DomainNameConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainNameConfigurations", + "type": "array" + }, + "MutualTlsAuthentication": { + "$ref": "#/definitions/AWS::ApiGatewayV2::DomainName.MutualTlsAuthentication", + "markdownDescription": "The mutual TLS authentication configuration for a custom domain name\\. \n*Required*: No \n*Type*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-mutualtlsauthentication.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MutualTlsAuthentication" + }, + "Tags": { + "markdownDescription": "The collection of tags associated with a domain name\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "object" + } + }, + "required": [ + "DomainName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGatewayV2::DomainName" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::DomainName.DomainNameConfiguration": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "markdownDescription": "An AWS\\-managed certificate that will be used by the edge\\-optimized endpoint for this domain name\\. AWS Certificate Manager is the only supported source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateArn", + "type": "string" + }, + "CertificateName": { + "markdownDescription": "The user\\-friendly name of the certificate that will be used by the edge\\-optimized endpoint for this domain name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateName", + "type": "string" + }, + "EndpointType": { + "markdownDescription": "The endpoint type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointType", + "type": "string" + }, + "OwnershipVerificationCertificateArn": { + "markdownDescription": "The ARN of the public certificate issued by ACM to validate ownership of your custom domain\\. Only required when configuring mutual TLS and using an ACM imported or private CA certificate ARN as the RegionalCertificateArn\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OwnershipVerificationCertificateArn", + "type": "string" + }, + "SecurityPolicy": { + "markdownDescription": "The Transport Layer Security \\(TLS\\) version of the security policy for this domain name\\. The valid values are `TLS_1_0` and `TLS_1_2`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityPolicy", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGatewayV2::DomainName.MutualTlsAuthentication": { + "additionalProperties": false, + "properties": { + "TruststoreUri": { + "markdownDescription": "An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name `\\. The truststore can contain certificates from public or private certificate authorities\\. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version\\. To update the truststore, you must have permissions to access the S3 object\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TruststoreUri", + "type": "string" + }, + "TruststoreVersion": { + "markdownDescription": "The version of the S3 object that contains your truststore\\. To specify a version, you must have versioning enabled for the S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TruststoreVersion", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGatewayV2::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": { + "ApiId": { + "markdownDescription": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", + "type": "string" + }, + "ConnectionId": { + "markdownDescription": "The ID of the VPC link for a private integration\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionId", + "type": "string" + }, + "ConnectionType": { + "markdownDescription": "The type of the network connection to the integration endpoint\\. Specify `INTERNET` for connections through the public routable internet or `VPC_LINK` for private connections between API Gateway and resources in a VPC\\. The default value is `INTERNET`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionType", + "type": "string" + }, + "ContentHandlingStrategy": { + "markdownDescription": "Supported only for WebSocket APIs\\. Specifies how to handle response payload content type conversions\\. Supported values are `CONVERT_TO_BINARY` and `CONVERT_TO_TEXT`, with the following behaviors: \n `CONVERT_TO_BINARY`: Converts a response payload from a Base64\\-encoded string to the corresponding binary blob\\. \n `CONVERT_TO_TEXT`: Converts a response payload from a binary blob to a Base64\\-encoded string\\. \nIf this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentHandlingStrategy", + "type": "string" + }, + "CredentialsArn": { + "markdownDescription": "Specifies the credentials required for the integration, if any\\. For AWS integrations, three options are available\\. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name \\(ARN\\)\\. To require that the caller's identity be passed through from the request, specify the string `arn:aws:iam::*:user/*`\\. To use resource\\-based permissions on supported AWS services, don't specify this parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CredentialsArn", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the integration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "IntegrationMethod": { + "markdownDescription": "Specifies the integration's HTTP method type\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegrationMethod", + "type": "string" + }, + "IntegrationSubtype": { + "markdownDescription": "Supported only for HTTP API `AWS_PROXY` integrations\\. Specifies the AWS service action to invoke\\. To learn more, see [Integration subtype reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegrationSubtype", + "type": "string" + }, + "IntegrationType": { + "markdownDescription": "The integration type of an integration\\. One of the following: \n `AWS`: for integrating the route or method request with an AWS service action, including the Lambda function\\-invoking action\\. With the Lambda function\\-invoking action, this is referred to as the Lambda custom integration\\. With any other AWS service action, this is known as AWS integration\\. Supported only for WebSocket APIs\\. \n `AWS_PROXY`: for integrating the route or method request with a Lambda function or other AWS service action\\. This integration is also referred to as a Lambda proxy integration\\. \n `HTTP`: for integrating the route or method request with an HTTP endpoint\\. This integration is also referred to as the HTTP custom integration\\. Supported only for WebSocket APIs\\. \n `HTTP_PROXY`: for integrating the route or method request with an HTTP endpoint, with the client request passed through as\\-is\\. This is also referred to as HTTP proxy integration\\. For HTTP API private integrations, use an `HTTP_PROXY` integration\\. \n `MOCK`: for integrating the route or method request with API Gateway as a \"loopback\" endpoint without invoking any backend\\. Supported only for WebSocket APIs\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegrationType", + "type": "string" + }, + "IntegrationUri": { + "markdownDescription": "For a Lambda integration, specify the URI of a Lambda function\\. \nFor an HTTP integration, specify a fully\\-qualified URL\\. \nFor an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service\\. If you specify the ARN of an AWS Cloud Map service, API Gateway uses `DiscoverInstances` to identify resources\\. You can use query parameters to target specific resources\\. To learn more, see [DiscoverInstances](https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html)\\. For private integrations, all resources must be owned by the same AWS account\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegrationUri", + "type": "string" + }, + "PassthroughBehavior": { + "markdownDescription": "Specifies the pass\\-through behavior for incoming requests based on the `Content-Type` header in the request, and the available mapping templates specified as the `requestTemplates` property on the `Integration` resource\\. There are three valid values: `WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, and `NEVER`\\. Supported only for WebSocket APIs\\. \n `WHEN_NO_MATCH` passes the request body for unmapped content types through to the integration backend without transformation\\. \n `NEVER` rejects unmapped content types with an `HTTP 415 Unsupported Media Type` response\\. \n `WHEN_NO_TEMPLATES` allows pass\\-through when the integration has no content types mapped to templates\\. However, if there is at least one content type defined, unmapped content types will be rejected with the same `HTTP 415 Unsupported Media Type` response\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PassthroughBehavior", + "type": "string" + }, + "PayloadFormatVersion": { + "markdownDescription": "Specifies the format of the payload sent to an integration\\. Required for HTTP APIs\\. For HTTP APIs, supported values for Lambda proxy integrations are `1.0` and `2.0`\\. For all other integrations, `1.0` is the only supported value\\. To learn more, see [Working with AWS Lambda proxy integrations for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html)\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PayloadFormatVersion", + "type": "string" + }, + "RequestParameters": { + "markdownDescription": "For WebSocket APIs, a key\\-value map specifying request parameters that are passed from the method request to the backend\\. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre\\-encoded as required by the backend\\. The method request parameter value must match the pattern of `method.request.{location}.{name} `, where ` {location} ` is `querystring`, `path`, or `header`; and ` {name} ` must be a valid and unique method request parameter name\\. \nFor HTTP API integrations with a specified `integrationSubtype`, request parameters are a key\\-value map specifying parameters that are passed to `AWS_PROXY` integrations\\. You can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime\\. To learn more, see [Working with AWS service integrations for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services.html)\\. \nFor HTTP API integrations without a specified `integrationSubtype` request parameters are a key\\-value map specifying how to transform HTTP requests before sending them to the backend\\. The key should follow the pattern :\\. where action can be `append`, `overwrite` or` remove`\\. For values, you can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime\\. To learn more, see [Transforming API requests and responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestParameters", + "type": "object" + }, + "RequestTemplates": { + "markdownDescription": "Represents a map of Velocity templates that are applied on the request payload based on the value of the Content\\-Type header sent by the client\\. The content type value is the key in this map, and the template \\(as a String\\) is the value\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestTemplates", + "type": "object" + }, + "ResponseParameters": { + "markdownDescription": "Supported only for HTTP APIs\\. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients\\. Specify a key\\-value map from a selection key to response parameters\\. The selection key must be a valid HTTP status code within the range of 200\\-599\\. The value is of type [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-responseparameterlist.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-responseparameterlist.html)\\. To learn more, see [Transforming API requests and responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseParameters", + "type": "object" + }, + "TemplateSelectionExpression": { + "markdownDescription": "The template selection expression for the integration\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateSelectionExpression", + "type": "string" + }, + "TimeoutInMillis": { + "markdownDescription": "Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs\\. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutInMillis", + "type": "number" + }, + "TlsConfig": { + "$ref": "#/definitions/AWS::ApiGatewayV2::Integration.TlsConfig", + "markdownDescription": "The TLS configuration for a private integration\\. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol\\. Supported only for HTTP APIs\\. \n*Required*: No \n*Type*: [TlsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-tlsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TlsConfig" + } + }, + "required": [ + "ApiId", + "IntegrationType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGatewayV2::Integration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::Integration.ResponseParameter": { + "additionalProperties": false, + "properties": { + "Destination": { + "markdownDescription": "Specifies the location of the response to modify, and how to modify it\\. To learn more, see [Transforming API requests and responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination", + "type": "string" + }, + "Source": { + "markdownDescription": "Specifies the data to update the parameter with\\. To learn more, see [Transforming API requests and responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source", + "type": "string" + } + }, + "required": [ + "Destination", + "Source" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::Integration.ResponseParameterList": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "items": { + "$ref": "#/definitions/AWS::ApiGatewayV2::Integration.ResponseParameter" + }, + "markdownDescription": "Supported only for HTTP APIs\\. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients\\. Specify a key\\-value map from a selection key to response parameters\\. The selection key must be a valid HTTP status code within the range of 200\\-599\\. Response parameters are a key\\-value map\\. The key must match the pattern `:
.` or `overwrite.statuscode`\\. The action can be `append`, `overwrite` or `remove`\\. The value can be a static value, or map to response data, stage variables, or context variables that are evaluated at runtime\\. To learn more, see [Transforming API requests and responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html)\\. \n*Required*: No \n*Type*: List of [ResponseParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-responseparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseParameters", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ApiGatewayV2::Integration.TlsConfig": { + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "markdownDescription": "If you specify a server name, API Gateway uses it to verify the hostname on the integration's certificate\\. The server name is also included in the TLS handshake to support Server Name Indication \\(SNI\\) or virtual hosting\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerNameToVerify", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGatewayV2::IntegrationResponse": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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": { + "markdownDescription": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiId", + "type": "string" + }, + "ContentHandlingStrategy": { + "markdownDescription": "Supported only for WebSocket APIs\\. Specifies how to handle response payload content type conversions\\. Supported values are `CONVERT_TO_BINARY` and `CONVERT_TO_TEXT`, with the following behaviors: \n `CONVERT_TO_BINARY`: Converts a response payload from a Base64\\-encoded string to the corresponding binary blob\\. \n `CONVERT_TO_TEXT`: Converts a response payload from a binary blob to a Base64\\-encoded string\\. \nIf this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentHandlingStrategy", + "type": "string" + }, + "IntegrationId": { + "markdownDescription": "The integration ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegrationId", + "type": "string" + }, + "IntegrationResponseKey": { + "markdownDescription": "The integration response key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegrationResponseKey", + "type": "string" + }, + "ResponseParameters": { + "markdownDescription": "A key\\-value map specifying response parameters that are passed to the method response from the backend\\. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body\\. The mapping key must match the pattern of `method.response.header.{name} `, where name is a valid and unique header name\\. The mapped non\\-static value must match the pattern of `integration.response.header.{name} ` or `integration.response.body.{JSON-expression} `, where ` {name} ` is a valid and unique response header name and ` {JSON-expression} ` is a valid JSON expression without the `$` prefix\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseParameters", + "type": "object" + }, + "ResponseTemplates": { + "markdownDescription": "The collection of response templates for the integration response as a string\\-to\\-string map of key\\-value pairs\\. Response templates are represented as a key/value map, with a content\\-type as the key and a template as the value\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseTemplates", + "type": "object" + }, + "TemplateSelectionExpression": { + "markdownDescription": "The template selection expression for the integration response\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateSelectionExpression", + "type": "string" + } + }, + "required": [ + "ApiId", + "IntegrationId", + "IntegrationResponseKey" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGatewayV2::IntegrationResponse" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::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": { + "ApiId": { + "markdownDescription": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", + "type": "string" + }, + "ContentType": { + "markdownDescription": "The content\\-type for the model, for example, \"application/json\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentType", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the model\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Schema": { + "markdownDescription": "The schema for the model\\. For application/json models, this should be JSON schema draft 4 model\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schema", + "type": "object" + } + }, + "required": [ + "ApiId", + "Name", + "Schema" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGatewayV2::Model" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::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": { + "ApiId": { + "markdownDescription": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", + "type": "string" + }, + "ApiKeyRequired": { + "markdownDescription": "Specifies whether an API key is required for the route\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKeyRequired", + "type": "boolean" + }, + "AuthorizationScopes": { + "items": { + "type": "string" + }, + "markdownDescription": "The authorization scopes supported by this route\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationScopes", + "type": "array" + }, + "AuthorizationType": { + "markdownDescription": "The authorization type for the route\\. For WebSocket APIs, valid values are `NONE` for open access, `AWS_IAM` for using AWS IAM permissions, and `CUSTOM` for using a Lambda authorizer\\. For HTTP APIs, valid values are `NONE` for open access, `JWT` for using JSON Web Tokens, `AWS_IAM` for using AWS IAM permissions, and `CUSTOM` for using a Lambda authorizer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationType", + "type": "string" + }, + "AuthorizerId": { + "markdownDescription": "The identifier of the `Authorizer` resource to be associated with this route\\. The authorizer identifier is generated by API Gateway when you created the authorizer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerId", + "type": "string" + }, + "ModelSelectionExpression": { + "markdownDescription": "The model selection expression for the route\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ModelSelectionExpression", + "type": "string" + }, + "OperationName": { + "markdownDescription": "The operation name for the route\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OperationName", + "type": "string" + }, + "RequestModels": { + "markdownDescription": "The request models for the route\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestModels", + "type": "object" + }, + "RequestParameters": { + "markdownDescription": "The request parameters for the route\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestParameters", + "type": "object" + }, + "RouteKey": { + "markdownDescription": "The route key for the route\\. For HTTP APIs, the route key can be either `$default`, or a combination of an HTTP method and resource path, for example, `GET /pets`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteKey", + "type": "string" + }, + "RouteResponseSelectionExpression": { + "markdownDescription": "The route response selection expression for the route\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteResponseSelectionExpression", + "type": "string" + }, + "Target": { + "markdownDescription": "The target for the route\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target", + "type": "string" + } + }, + "required": [ + "ApiId", + "RouteKey" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGatewayV2::Route" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::Route.ParameterConstraints": { + "additionalProperties": false, + "properties": { + "Required": { + "markdownDescription": "Specifies whether the parameter is required\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Required", + "type": "boolean" + } + }, + "required": [ + "Required" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::RouteResponse": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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": { + "markdownDescription": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", + "type": "string" + }, + "ModelSelectionExpression": { + "markdownDescription": "The model selection expression for the route response\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ModelSelectionExpression", + "type": "string" + }, + "ResponseModels": { + "markdownDescription": "The response models for the route response\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseModels", + "type": "object" + }, + "ResponseParameters": { + "markdownDescription": "The route response parameters\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseParameters", + "type": "object" + }, + "RouteId": { + "markdownDescription": "The route ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RouteId", + "type": "string" + }, + "RouteResponseKey": { + "markdownDescription": "The route response key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteResponseKey", + "type": "string" + } + }, + "required": [ + "ApiId", + "RouteId", + "RouteResponseKey" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGatewayV2::RouteResponse" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::RouteResponse.ParameterConstraints": { + "additionalProperties": false, + "properties": { + "Required": { + "markdownDescription": "Specifies whether the parameter is required\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Required", + "type": "boolean" + } + }, + "required": [ + "Required" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::Stage": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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", + "markdownDescription": "Settings for logging access in this stage\\. \n*Required*: No \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-accesslogsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessLogSettings" + }, + "AccessPolicyId": { + "markdownDescription": "This parameter is not currently supported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessPolicyId", + "type": "string" + }, + "ApiId": { + "markdownDescription": "The API identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", + "type": "string" + }, + "AutoDeploy": { + "markdownDescription": "Specifies whether updates to an API automatically trigger a new deployment\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoDeploy", + "type": "boolean" + }, + "ClientCertificateId": { + "markdownDescription": "The identifier of a client certificate for a `Stage`\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientCertificateId", + "type": "string" + }, + "DefaultRouteSettings": { + "$ref": "#/definitions/AWS::ApiGatewayV2::Stage.RouteSettings", + "markdownDescription": "The default route settings for the stage\\. \n*Required*: No \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultRouteSettings" + }, + "DeploymentId": { + "markdownDescription": "The deployment identifier for the API stage\\. Can't be updated if `autoDeploy` is enabled\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentId", + "type": "string" + }, + "Description": { + "markdownDescription": "The description for the API stage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "RouteSettings": { + "markdownDescription": "Route settings for the stage\\. \n*Required*: No \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteSettings", + "type": "object" + }, + "StageName": { + "markdownDescription": "The stage name\\. Stage names can contain only alphanumeric characters, hyphens, and underscores, or be `$default`\\. Maximum length is 128 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StageName", + "type": "string" + }, + "StageVariables": { + "markdownDescription": "A map that defines the stage variables for a `Stage`\\. Variable names can have alphanumeric and underscore characters, and the values must match \\[A\\-Za\\-z0\\-9\\-\\.\\_\\~:/?\\#&=,\\]\\+\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StageVariables", + "type": "object" + }, + "Tags": { + "markdownDescription": "The collection of tags\\. Each tag element is associated with a given resource\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "object" + } + }, + "required": [ + "ApiId", + "StageName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGatewayV2::Stage" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::Stage.AccessLogSettings": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "markdownDescription": "The ARN of the CloudWatch Logs log group to receive access logs\\. This parameter is required to enable access logging\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationArn", + "type": "string" + }, + "Format": { + "markdownDescription": "A single line format of the access logs of data, as specified by selected $context variables\\. The format must include at least $context\\.requestId\\. This parameter is required to enable access logging\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGatewayV2::Stage.RouteSettings": { + "additionalProperties": false, + "properties": { + "DataTraceEnabled": { + "markdownDescription": "Specifies whether \\(`true`\\) or not \\(`false`\\) data trace logging is enabled for this route\\. This property affects the log entries pushed to Amazon CloudWatch Logs\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataTraceEnabled", + "type": "boolean" + }, + "DetailedMetricsEnabled": { + "markdownDescription": "Specifies whether detailed metrics are enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DetailedMetricsEnabled", + "type": "boolean" + }, + "LoggingLevel": { + "markdownDescription": "Specifies the logging level for this route: `INFO`, `ERROR`, or `OFF`\\. This property affects the log entries pushed to Amazon CloudWatch Logs\\. Supported only for WebSocket APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingLevel", + "type": "string" + }, + "ThrottlingBurstLimit": { + "markdownDescription": "Specifies the throttling burst limit\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThrottlingBurstLimit", + "type": "number" + }, + "ThrottlingRateLimit": { + "markdownDescription": "Specifies the throttling rate limit\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThrottlingRateLimit", + "type": "number" + } + }, + "type": "object" + }, + "AWS::ApiGatewayV2::VpcLink": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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": { + "markdownDescription": "The name of the VPC link\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of security group IDs for the VPC link\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of subnet IDs to include in the VPC link\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetIds", + "type": "array" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "The collection of tags\\. Each tag element is associated with a given resource\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "type": "object" + } + }, + "required": [ + "Name", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGatewayV2::VpcLink" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppConfig::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": { + "markdownDescription": "A description of the application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "A name for the application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AppConfig::Application.Tags" + }, + "markdownDescription": "Metadata to assign to the application\\. Tags help organize and categorize your AWS AppConfig resources\\. Each tag consists of a key and an optional value, both of which you define\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-application-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-application-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppConfig::Application" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppConfig::Application.Tags": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The key\\-value string map\\. The valid character set is `[a-zA-Z+-=._:/]`\\. The tag key can be up to 128 characters and must not start with `aws:`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The tag value can be up to 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppConfig::ConfigurationProfile": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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": { + "markdownDescription": "The application ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", + "type": "string" + }, + "Description": { + "markdownDescription": "A description of the configuration profile\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "LocationUri": { + "markdownDescription": "A URI to locate the configuration\\. You can specify the AWS AppConfig hosted configuration store, Systems Manager \\(SSM\\) document, an SSM Parameter Store parameter, or an Amazon S3 object\\. For the hosted configuration store and for feature flags, specify `hosted`\\. For an SSM document, specify either the document name in the format `ssm-document://` or the Amazon Resource Name \\(ARN\\)\\. For a parameter, specify either the parameter name in the format `ssm-parameter://` or the ARN\\. For an Amazon S3 object, specify the URI in the following format: `s3:/// `\\. Here is an example: `s3://my-bucket/my-app/us-east-1/my-config.json` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocationUri", + "type": "string" + }, + "Name": { + "markdownDescription": "A name for the configuration profile\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "RetrievalRoleArn": { + "markdownDescription": "The ARN of an IAM role with permission to access the configuration at the specified `LocationUri`\\. \nA retrieval role ARN is not required for configurations stored in the AWS AppConfig hosted configuration store\\. It is required for all other sources that store your configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^((https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/arn.html):(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/iam.html)::\\d{12}:role[/].*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetrievalRoleArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AppConfig::ConfigurationProfile.Tags" + }, + "markdownDescription": "Metadata to assign to the configuration profile\\. Tags help organize and categorize your AWS AppConfig resources\\. Each tag consists of a key and an optional value, both of which you define\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-configurationprofile-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-configurationprofile-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Type": { + "markdownDescription": "The type of configurations contained in the profile\\. AWS AppConfig supports `feature flags` and `freeform` configurations\\. We recommend you create feature flag configurations to enable or disable new features and freeform configurations to distribute configurations to an application\\. When calling this API, enter one of the following values for `Type`: \n `AWS.AppConfig.FeatureFlags` \n `AWS.Freeform` \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z\\.]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + }, + "Validators": { + "items": { + "$ref": "#/definitions/AWS::AppConfig::ConfigurationProfile.Validators" + }, + "markdownDescription": "A list of methods for validating the configuration\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-configurationprofile-validators.html) of [Validators](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-configurationprofile-validators.html) \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Validators", + "type": "array" + } + }, + "required": [ + "ApplicationId", + "LocationUri", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppConfig::ConfigurationProfile" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppConfig::ConfigurationProfile.Tags": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The key\\-value string map\\. The valid character set is `[a-zA-Z+-=._:/]`\\. The tag key can be up to 128 characters and must not start with `aws:`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The tag value can be up to 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppConfig::ConfigurationProfile.Validators": { + "additionalProperties": false, + "properties": { + "Content": { + "markdownDescription": "Either the JSON Schema content or the Amazon Resource Name \\(ARN\\) of an Lambda function\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `32768` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Content", + "type": "string" + }, + "Type": { + "markdownDescription": "AWS AppConfig supports validators of type `JSON_SCHEMA` and `LAMBDA` \n*Required*: No \n*Type*: String \n*Allowed values*: `JSON_SCHEMA | LAMBDA` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppConfig::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": { + "ApplicationId": { + "markdownDescription": "The application ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", + "type": "string" + }, + "ConfigurationProfileId": { + "markdownDescription": "The configuration profile ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfigurationProfileId", + "type": "string" + }, + "ConfigurationVersion": { + "markdownDescription": "The configuration version to deploy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfigurationVersion", + "type": "string" + }, + "DeploymentStrategyId": { + "markdownDescription": "The deployment strategy ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeploymentStrategyId", + "type": "string" + }, + "Description": { + "markdownDescription": "A description of the deployment\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "EnvironmentId": { + "markdownDescription": "The environment ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnvironmentId", + "type": "string" + }, + "KmsKeyIdentifier": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AppConfig::Deployment.Tags" + }, + "markdownDescription": "Metadata to assign to the deployment\\. Tags help organize and categorize your AWS AppConfig resources\\. Each tag consists of a key and an optional value, both of which you define\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deployment-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deployment-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "required": [ + "ApplicationId", + "ConfigurationProfileId", + "ConfigurationVersion", + "DeploymentStrategyId", + "EnvironmentId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppConfig::Deployment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppConfig::Deployment.Tags": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The key\\-value string map\\. The valid character set is `[a-zA-Z+-=._:/]`\\. The tag key can be up to 128 characters and must not start with `aws:`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The tag value can be up to 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppConfig::DeploymentStrategy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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": { + "markdownDescription": "Total amount of time for a deployment to last\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `0` \n*Maximum*: `1440` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentDurationInMinutes", + "type": "number" + }, + "Description": { + "markdownDescription": "A description of the deployment strategy\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "FinalBakeTimeInMinutes": { + "markdownDescription": "The amount of time AWS AppConfig monitors for alarms before considering the deployment to be complete and no longer eligible for automatic roll back\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `0` \n*Maximum*: `1440` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FinalBakeTimeInMinutes", + "type": "number" + }, + "GrowthFactor": { + "markdownDescription": "The percentage of targets to receive a deployed configuration during each interval\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GrowthFactor", + "type": "number" + }, + "GrowthType": { + "markdownDescription": "The algorithm used to define how percentage grows over time\\. AWS AppConfig supports the following growth types: \n **Linear**: For this type, AWS AppConfig processes the deployment by dividing the total number of targets by the value specified for `Step percentage`\\. For example, a linear deployment that uses a `Step percentage` of 10 deploys the configuration to 10 percent of the hosts\\. After those deployments are complete, the system deploys the configuration to the next 10 percent\\. This continues until 100% of the targets have successfully received the configuration\\. \n **Exponential**: For this type, AWS AppConfig processes the deployment exponentially using the following formula: `G*(2^N)`\\. In this formula, `G` is the growth factor specified by the user and `N` is the number of steps until the configuration is deployed to all targets\\. For example, if you specify a growth factor of 2, then the system rolls out the configuration as follows: \n `2*(2^0)` \n `2*(2^1)` \n `2*(2^2)` \nExpressed numerically, the deployment rolls out as follows: 2% of the targets, 4% of the targets, 8% of the targets, and continues until the configuration has been deployed to all targets\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `EXPONENTIAL | LINEAR` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GrowthType", + "type": "string" + }, + "Name": { + "markdownDescription": "A name for the deployment strategy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "ReplicateTo": { + "markdownDescription": "Save the deployment strategy to a Systems Manager \\(SSM\\) document\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `NONE | SSM_DOCUMENT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplicateTo", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AppConfig::DeploymentStrategy.Tags" + }, + "markdownDescription": "Assigns metadata to an AWS AppConfig resource\\. Tags help organize and categorize your AWS AppConfig resources\\. Each tag consists of a key and an optional value, both of which you define\\. You can specify a maximum of 50 tags for a resource\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deploymentstrategy-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deploymentstrategy-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "required": [ + "DeploymentDurationInMinutes", + "GrowthFactor", + "Name", + "ReplicateTo" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppConfig::DeploymentStrategy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppConfig::DeploymentStrategy.Tags": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The key\\-value string map\\. The valid character set is `[a-zA-Z+-=._:/]`\\. The tag key can be up to 128 characters and must not start with `aws:`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The tag value can be up to 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppConfig::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": { + "ApplicationId": { + "markdownDescription": "The application ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", + "type": "string" + }, + "Description": { + "markdownDescription": "A description of the environment\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Monitors": { + "items": { + "$ref": "#/definitions/AWS::AppConfig::Environment.Monitors" + }, + "markdownDescription": "Amazon CloudWatch alarms to monitor during the deployment process\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-environment-monitors.html) of [Monitors](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-environment-monitors.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Monitors", + "type": "array" + }, + "Name": { + "markdownDescription": "A name for the environment\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AppConfig::Environment.Tags" + }, + "markdownDescription": "Metadata to assign to the environment\\. Tags help organize and categorize your AWS AppConfig resources\\. Each tag consists of a key and an optional value, both of which you define\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-environment-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-environment-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "required": [ + "ApplicationId", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppConfig::Environment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppConfig::Environment.Monitors": { + "additionalProperties": false, + "properties": { + "AlarmArn": { + "markdownDescription": "Amazon Resource Name \\(ARN\\) of the Amazon CloudWatch alarm\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmArn", + "type": "string" + }, + "AlarmRoleArn": { + "markdownDescription": "ARN of an AWS Identity and Access Management \\(IAM\\) role for AWS AppConfig to monitor `AlarmArn`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^((https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/arn.html):(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/iam.html)::\\d{12}:role[/].*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmRoleArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppConfig::Environment.Tags": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The key\\-value string map\\. The valid character set is `[a-zA-Z+-=._:/]`\\. The tag key can be up to 128 characters and must not start with `aws:`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The tag value can be up to 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppConfig::HostedConfigurationVersion": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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": { + "markdownDescription": "The application ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", + "type": "string" + }, + "ConfigurationProfileId": { + "markdownDescription": "The configuration profile ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-z0-9]{4,7}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfigurationProfileId", + "type": "string" + }, + "Content": { + "markdownDescription": "The content of the configuration or the configuration data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Content", + "type": "string" + }, + "ContentType": { + "markdownDescription": "A standard MIME type describing the format of the configuration content\\. For more information, see [Content\\-Type](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContentType", + "type": "string" + }, + "Description": { + "markdownDescription": "A description of the configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "LatestVersionNumber": { + "markdownDescription": "An optional locking token used to prevent race conditions from overwriting configuration updates when creating a new version\\. To ensure your data is not overwritten when creating multiple hosted configuration versions in rapid succession, specify the version number of the latest hosted configuration version\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LatestVersionNumber", + "type": "number" + } + }, + "required": [ + "ApplicationId", + "ConfigurationProfileId", + "Content", + "ContentType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppConfig::HostedConfigurationVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppFlow::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": { + "ConnectorLabel": { + "type": "string" + }, + "ConnectorProvisioningConfig": { + "$ref": "#/definitions/AWS::AppFlow::Connector.ConnectorProvisioningConfig" + }, + "ConnectorProvisioningType": { + "type": "string" + }, + "Description": { + "type": "string" + } + }, + "required": [ + "ConnectorProvisioningConfig", + "ConnectorProvisioningType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppFlow::Connector" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "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" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ConnectionMode": { + "markdownDescription": "Indicates the connection mode and if it is public or private\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Private | Public` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionMode", + "type": "string" + }, + "ConnectorLabel": { + "type": "string" + }, + "ConnectorProfileConfig": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorProfileConfig", + "markdownDescription": "Defines the connector\\-specific configuration and credentials\\. \n*Required*: No \n*Type*: [ConnectorProfileConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorProfileConfig" + }, + "ConnectorProfileName": { + "markdownDescription": "The name of the connector profile\\. The name is unique for each `ConnectorProfile` in the AWS account\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `[\\w/!@#+=.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectorProfileName", + "type": "string" + }, + "ConnectorType": { + "markdownDescription": "The type of connector, such as Salesforce, Amplitude, and so on\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Amplitude | CustomConnector | CustomerProfiles | Datadog | Dynatrace | EventBridge | Googleanalytics | Honeycode | Infornexus | LookoutMetrics | Marketo | Redshift | S3 | Salesforce | SAPOData | Servicenow | Singular | Slack | Snowflake | Trendmicro | Upsolver | Veeva | Zendesk` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectorType", + "type": "string" + }, + "KMSArn": { + "markdownDescription": "The ARN \\(Amazon Resource Name\\) of the Key Management Service \\(KMS\\) key you provide for encryption\\. This is required if you do not want to use the Amazon AppFlow\\-managed KMS key\\. If you don't provide anything here, Amazon AppFlow uses the Amazon AppFlow\\-managed KMS key\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:aws:kms:.*:[0-9]+:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KMSArn", + "type": "string" + } + }, + "required": [ + "ConnectionMode", + "ConnectorProfileName", + "ConnectorType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppFlow::ConnectorProfile" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.AmplitudeConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "ApiKey": { + "markdownDescription": "A unique alphanumeric identifier used to authenticate a user, developer, or calling program to your API\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKey", + "type": "string" + }, + "SecretKey": { + "markdownDescription": "The Secret Access Key portion of the credentials\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The code provided by the connector when it has been authenticated via the connected app\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthCode", + "type": "string" + }, + "RedirectUri": { + "markdownDescription": "The URL to which the authentication server redirects the browser after authorization has been granted\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedirectUri", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.ConnectorProfileConfig": { + "additionalProperties": false, + "properties": { + "ConnectorProfileCredentials": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required by each connector\\. \n*Required*: Yes \n*Type*: [ConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorProfileCredentials" + }, + "ConnectorProfileProperties": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties of the profile configuration\\. \n*Required*: No \n*Type*: [ConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorProfileProperties" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.ConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "Amplitude": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.AmplitudeConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Amplitude\\. \n*Required*: No \n*Type*: [AmplitudeConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-amplitudeconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Amplitude" + }, + "CustomConnector": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.CustomConnectorProfileCredentials" + }, + "Datadog": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.DatadogConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Datadog\\. \n*Required*: No \n*Type*: [DatadogConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-datadogconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Datadog" + }, + "Dynatrace": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.DynatraceConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Dynatrace\\. \n*Required*: No \n*Type*: [DynatraceConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-dynatraceconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dynatrace" + }, + "GoogleAnalytics": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.GoogleAnalyticsConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Google Analytics\\. \n*Required*: No \n*Type*: [GoogleAnalyticsConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GoogleAnalytics" + }, + "InforNexus": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.InforNexusConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Infor Nexus\\. \n*Required*: No \n*Type*: [InforNexusConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-infornexusconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InforNexus" + }, + "Marketo": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.MarketoConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Marketo\\. \n*Required*: No \n*Type*: [MarketoConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-marketoconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Marketo" + }, + "Pardot": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.PardotConnectorProfileCredentials" + }, + "Redshift": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Amazon Redshift\\. \n*Required*: No \n*Type*: [RedshiftConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Redshift" + }, + "SAPOData": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileCredentials", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [SAPODataConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SAPOData" + }, + "Salesforce": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Salesforce\\. \n*Required*: No \n*Type*: [SalesforceConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Salesforce" + }, + "ServiceNow": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ServiceNowConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using ServiceNow\\. \n*Required*: No \n*Type*: [ServiceNowConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-servicenowconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceNow" + }, + "Singular": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SingularConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Singular\\. \n*Required*: No \n*Type*: [SingularConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-singularconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Singular" + }, + "Slack": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SlackConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Slack\\. \n*Required*: No \n*Type*: [SlackConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-slackconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Slack" + }, + "Snowflake": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SnowflakeConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Snowflake\\. \n*Required*: No \n*Type*: [SnowflakeConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Snowflake" + }, + "Trendmicro": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.TrendmicroConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Trend Micro\\. \n*Required*: No \n*Type*: [TrendmicroConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-trendmicroconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Trendmicro" + }, + "Veeva": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.VeevaConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Veeva\\. \n*Required*: No \n*Type*: [VeevaConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-veevaconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Veeva" + }, + "Zendesk": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ZendeskConnectorProfileCredentials", + "markdownDescription": "The connector\\-specific credentials required when using Zendesk\\. \n*Required*: No \n*Type*: [ZendeskConnectorProfileCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-zendeskconnectorprofilecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Zendesk" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.ConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "CustomConnector": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.CustomConnectorProfileProperties" + }, + "Datadog": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.DatadogConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties required by Datadog\\. \n*Required*: No \n*Type*: [DatadogConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-datadogconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Datadog" + }, + "Dynatrace": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.DynatraceConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties required by Dynatrace\\. \n*Required*: No \n*Type*: [DynatraceConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-dynatraceconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dynatrace" + }, + "InforNexus": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.InforNexusConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties required by Infor Nexus\\. \n*Required*: No \n*Type*: [InforNexusConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-infornexusconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InforNexus" + }, + "Marketo": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.MarketoConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties required by Marketo\\. \n*Required*: No \n*Type*: [MarketoConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-marketoconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Marketo" + }, + "Pardot": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.PardotConnectorProfileProperties" + }, + "Redshift": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties required by Amazon Redshift\\. \n*Required*: No \n*Type*: [RedshiftConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Redshift" + }, + "SAPOData": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [SAPODataConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SAPOData" + }, + "Salesforce": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties required by Salesforce\\. \n*Required*: No \n*Type*: [SalesforceConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Salesforce" + }, + "ServiceNow": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ServiceNowConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties required by serviceNow\\. \n*Required*: No \n*Type*: [ServiceNowConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-servicenowconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceNow" + }, + "Slack": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SlackConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties required by Slack\\. \n*Required*: No \n*Type*: [SlackConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-slackconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Slack" + }, + "Snowflake": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SnowflakeConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties required by Snowflake\\. \n*Required*: No \n*Type*: [SnowflakeConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Snowflake" + }, + "Veeva": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.VeevaConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties required by Veeva\\. \n*Required*: No \n*Type*: [VeevaConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-veevaconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Veeva" + }, + "Zendesk": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ZendeskConnectorProfileProperties", + "markdownDescription": "The connector\\-specific properties required by Zendesk\\. \n*Required*: No \n*Type*: [ZendeskConnectorProfileProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-zendeskconnectorprofileproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Zendesk" + } + }, + "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": { + "markdownDescription": "A unique alphanumeric identifier used to authenticate a user, developer, or calling program to your API\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKey", + "type": "string" + }, + "ApplicationKey": { + "markdownDescription": "Application keys, in conjunction with your API key, give you full access to Datadog\u2019s programmatic API\\. Application keys are associated with the user account that created them\\. The application key is used to log all requests made to the API\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationKey", + "type": "string" + } + }, + "required": [ + "ApiKey", + "ApplicationKey" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.DatadogConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "InstanceUrl": { + "markdownDescription": "The location of the Datadog resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceUrl", + "type": "string" + } + }, + "required": [ + "InstanceUrl" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.DynatraceConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "ApiToken": { + "markdownDescription": "The API tokens used by Dynatrace API to authenticate various API calls\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiToken", + "type": "string" + } + }, + "required": [ + "ApiToken" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.DynatraceConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "InstanceUrl": { + "markdownDescription": "The location of the Dynatrace resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceUrl", + "type": "string" + } + }, + "required": [ + "InstanceUrl" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.GoogleAnalyticsConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "AccessToken": { + "markdownDescription": "The credentials used to access protected Google Analytics resources\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessToken", + "type": "string" + }, + "ClientId": { + "markdownDescription": "The identifier for the desired client\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientId", + "type": "string" + }, + "ClientSecret": { + "markdownDescription": "The client secret used by the OAuth client to authenticate to the authorization server\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientSecret", + "type": "string" + }, + "ConnectorOAuthRequest": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest", + "markdownDescription": "Used by select connectors for which the OAuth workflow is supported, such as Salesforce, Google Analytics, Marketo, Zendesk, and Slack\\. \n*Required*: No \n*Type*: [ConnectorOAuthRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectoroauthrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorOAuthRequest" + }, + "RefreshToken": { + "markdownDescription": "The credentials used to acquire new access tokens\\. This is required only for OAuth2 access tokens, and is not required for OAuth1 access tokens\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RefreshToken", + "type": "string" + } + }, + "required": [ + "ClientId", + "ClientSecret" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.InforNexusConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "AccessKeyId": { + "markdownDescription": "The Access Key portion of the credentials\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessKeyId", + "type": "string" + }, + "Datakey": { + "markdownDescription": "The encryption keys used to encrypt data\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Datakey", + "type": "string" + }, + "SecretAccessKey": { + "markdownDescription": "The secret key used to sign requests\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretAccessKey", + "type": "string" + }, + "UserId": { + "markdownDescription": "The identifier for the user\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserId", + "type": "string" + } + }, + "required": [ + "AccessKeyId", + "Datakey", + "SecretAccessKey", + "UserId" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.InforNexusConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "InstanceUrl": { + "markdownDescription": "The location of the Infor Nexus resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceUrl", + "type": "string" + } + }, + "required": [ + "InstanceUrl" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.MarketoConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "AccessToken": { + "markdownDescription": "The credentials used to access protected Marketo resources\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessToken", + "type": "string" + }, + "ClientId": { + "markdownDescription": "The identifier for the desired client\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientId", + "type": "string" + }, + "ClientSecret": { + "markdownDescription": "The client secret used by the OAuth client to authenticate to the authorization server\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientSecret", + "type": "string" + }, + "ConnectorOAuthRequest": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest", + "markdownDescription": "Used by select connectors for which the OAuth workflow is supported, such as Salesforce, Google Analytics, Marketo, Zendesk, and Slack\\. \n*Required*: No \n*Type*: [ConnectorOAuthRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectoroauthrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorOAuthRequest" + } + }, + "required": [ + "ClientId", + "ClientSecret" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.MarketoConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "InstanceUrl": { + "markdownDescription": "The location of the Marketo resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthCodeUrl", + "type": "string" + }, + "OAuthScopes": { + "items": { + "type": "string" + }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OAuthScopes", + "type": "array" + }, + "TokenUrl": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenUrl", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.PardotConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "AccessToken": { + "type": "string" + }, + "ClientCredentialsArn": { + "type": "string" + }, + "ConnectorOAuthRequest": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest" + }, + "RefreshToken": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.PardotConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "BusinessUnitId": { + "type": "string" + }, + "InstanceUrl": { + "type": "string" + }, + "IsSandboxEnvironment": { + "type": "boolean" + } + }, + "required": [ + "BusinessUnitId" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "Password": { + "markdownDescription": "The password that corresponds to the user name\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", + "type": "string" + }, + "Username": { + "markdownDescription": "The name of the user\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "BucketName": { + "markdownDescription": "A name for the associated Amazon S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", + "type": "string" + }, + "BucketPrefix": { + "markdownDescription": "The object key for the destination bucket in which Amazon AppFlow places the files\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketPrefix", + "type": "string" + }, + "ClusterIdentifier": { + "type": "string" + }, + "DataApiRoleArn": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DatabaseUrl": { + "markdownDescription": "The JDBC URL of the Amazon Redshift cluster\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseUrl", + "type": "string" + }, + "IsRedshiftServerless": { + "type": "boolean" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `arn:aws:iam:.*:[0-9]+:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BasicAuthCredentials" + }, + "OAuthCredentials": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.OAuthCredentials", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OAuthCredentials" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "ApplicationHostUrl": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationHostUrl", + "type": "string" + }, + "ApplicationServicePath": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationServicePath", + "type": "string" + }, + "ClientNumber": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientNumber", + "type": "string" + }, + "LogonLanguage": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogonLanguage", + "type": "string" + }, + "OAuthProperties": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.OAuthProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [OAuthProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauthproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OAuthProperties" + }, + "PortNumber": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortNumber", + "type": "number" + }, + "PrivateLinkServiceName": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateLinkServiceName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "AccessToken": { + "markdownDescription": "The credentials used to access protected Salesforce resources\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessToken", + "type": "string" + }, + "ClientCredentialsArn": { + "markdownDescription": "The secret manager ARN, which contains the client ID and client secret of the connected app\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:aws:secretsmanager:.*:[0-9]+:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientCredentialsArn", + "type": "string" + }, + "ConnectorOAuthRequest": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest", + "markdownDescription": "Used by select connectors for which the OAuth workflow is supported, such as Salesforce, Google Analytics, Marketo, Zendesk, and Slack\\. \n*Required*: No \n*Type*: [ConnectorOAuthRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectoroauthrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorOAuthRequest" + }, + "RefreshToken": { + "markdownDescription": "The credentials used to acquire new access tokens\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RefreshToken", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "InstanceUrl": { + "markdownDescription": "The location of the Salesforce resource\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceUrl", + "type": "string" + }, + "isSandboxEnvironment": { + "markdownDescription": "Indicates whether the connector profile applies to a sandbox or production environment\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "isSandboxEnvironment", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.ServiceNowConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "Password": { + "markdownDescription": "The password that corresponds to the user name\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", + "type": "string" + }, + "Username": { + "markdownDescription": "The name of the user\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", + "type": "string" + } + }, + "required": [ + "Password", + "Username" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.ServiceNowConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "InstanceUrl": { + "markdownDescription": "The location of the ServiceNow resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceUrl", + "type": "string" + } + }, + "required": [ + "InstanceUrl" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.SingularConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "ApiKey": { + "markdownDescription": "A unique alphanumeric identifier used to authenticate a user, developer, or calling program to your API\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKey", + "type": "string" + } + }, + "required": [ + "ApiKey" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.SlackConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "AccessToken": { + "markdownDescription": "The credentials used to access protected Slack resources\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessToken", + "type": "string" + }, + "ClientId": { + "markdownDescription": "The identifier for the client\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientId", + "type": "string" + }, + "ClientSecret": { + "markdownDescription": "The client secret used by the OAuth client to authenticate to the authorization server\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientSecret", + "type": "string" + }, + "ConnectorOAuthRequest": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest", + "markdownDescription": "Used by select connectors for which the OAuth workflow is supported, such as Salesforce, Google Analytics, Marketo, Zendesk, and Slack\\. \n*Required*: No \n*Type*: [ConnectorOAuthRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectoroauthrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorOAuthRequest" + } + }, + "required": [ + "ClientId", + "ClientSecret" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.SlackConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "InstanceUrl": { + "markdownDescription": "The location of the Slack resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceUrl", + "type": "string" + } + }, + "required": [ + "InstanceUrl" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.SnowflakeConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "Password": { + "markdownDescription": "The password that corresponds to the user name\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", + "type": "string" + }, + "Username": { + "markdownDescription": "The name of the user\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", + "type": "string" + } + }, + "required": [ + "Password", + "Username" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.SnowflakeConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "AccountName": { + "markdownDescription": "The name of the account\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountName", + "type": "string" + }, + "BucketName": { + "markdownDescription": "The name of the Amazon S3 bucket associated with Snowflake\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", + "type": "string" + }, + "BucketPrefix": { + "markdownDescription": "The bucket path that refers to the Amazon S3 bucket associated with Snowflake\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketPrefix", + "type": "string" + }, + "PrivateLinkServiceName": { + "markdownDescription": "The Snowflake Private Link service name to be used for private data transfers\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `^$|com.amazonaws.vpce.[\\w/!:@#.\\-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateLinkServiceName", + "type": "string" + }, + "Region": { + "markdownDescription": "The AWS Region of the Snowflake account\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", + "type": "string" + }, + "Stage": { + "markdownDescription": "The name of the Amazon S3 stage that was created while setting up an Amazon S3 stage in the Snowflake account\\. This is written in the following format: < Database>< Schema>\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Stage", + "type": "string" + }, + "Warehouse": { + "markdownDescription": "The name of the Snowflake warehouse\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[\\s\\w/!@#+=.-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Warehouse", + "type": "string" + } + }, + "required": [ + "BucketName", + "Stage", + "Warehouse" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.TrendmicroConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "ApiSecretKey": { + "markdownDescription": "The Secret Access Key portion of the credentials\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiSecretKey", + "type": "string" + } + }, + "required": [ + "ApiSecretKey" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.VeevaConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "Password": { + "markdownDescription": "The password that corresponds to the user name\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", + "type": "string" + }, + "Username": { + "markdownDescription": "The name of the user\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", + "type": "string" + } + }, + "required": [ + "Password", + "Username" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.VeevaConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "InstanceUrl": { + "markdownDescription": "The location of the Veeva resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceUrl", + "type": "string" + } + }, + "required": [ + "InstanceUrl" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.ZendeskConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "AccessToken": { + "markdownDescription": "The credentials used to access protected Zendesk resources\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessToken", + "type": "string" + }, + "ClientId": { + "markdownDescription": "The identifier for the desired client\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientId", + "type": "string" + }, + "ClientSecret": { + "markdownDescription": "The client secret used by the OAuth client to authenticate to the authorization server\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientSecret", + "type": "string" + }, + "ConnectorOAuthRequest": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest", + "markdownDescription": "Used by select connectors for which the OAuth workflow is supported, such as Salesforce, Google Analytics, Marketo, Zendesk, and Slack\\. \n*Required*: No \n*Type*: [ConnectorOAuthRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectoroauthrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorOAuthRequest" + } + }, + "required": [ + "ClientId", + "ClientSecret" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.ZendeskConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "InstanceUrl": { + "markdownDescription": "The location of the Zendesk resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A user\\-entered description of the flow\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `[\\w!@#\\-.?,\\s]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DestinationFlowConfigList": { + "items": { + "$ref": "#/definitions/AWS::AppFlow::Flow.DestinationFlowConfig" + }, + "markdownDescription": "The configuration that controls how Amazon AppFlow places data in the destination connector\\. \n*Required*: Yes \n*Type*: List of [DestinationFlowConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationflowconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationFlowConfigList", + "type": "array" + }, + "FlowName": { + "markdownDescription": "The specified name of the flow\\. Spaces are not allowed\\. Use underscores \\(\\_\\) or hyphens \\(\\-\\) only\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z0-9][\\w!@#.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FlowName", + "type": "string" + }, + "KMSArn": { + "markdownDescription": "The ARN \\(Amazon Resource Name\\) of the Key Management Service \\(KMS\\) key you provide for encryption\\. This is required if you do not want to use the Amazon AppFlow\\-managed KMS key\\. If you don't provide anything here, Amazon AppFlow uses the Amazon AppFlow\\-managed KMS key\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:aws:kms:.*:[0-9]+:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KMSArn", + "type": "string" + }, + "MetadataCatalogConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.MetadataCatalogConfig" + }, + "SourceFlowConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SourceFlowConfig", + "markdownDescription": "Contains information about the configuration of the source connector used in the flow\\. \n*Required*: Yes \n*Type*: [SourceFlowConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceflowconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceFlowConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags used to organize, track, or control access for your flow\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Tasks": { + "items": { + "$ref": "#/definitions/AWS::AppFlow::Flow.Task" + }, + "markdownDescription": "A list of tasks that Amazon AppFlow performs while transferring the data in the flow run\\. \n*Required*: Yes \n*Type*: List of [Task](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-task.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tasks", + "type": "array" + }, + "TriggerConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.TriggerConfig", + "markdownDescription": "The trigger settings that determine how and when Amazon AppFlow runs the specified flow\\. \n*Required*: Yes \n*Type*: [TriggerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-triggerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Specifies whether Amazon AppFlow aggregates the flow records into a single file, or leave them unaggregated\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `None | SingleFile` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AggregationType", + "type": "string" + }, + "TargetFileSize": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AppFlow::Flow.AmplitudeSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "markdownDescription": "The object specified in the Amplitude flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.ConnectorOperator": { + "additionalProperties": false, + "properties": { + "Amplitude": { + "markdownDescription": "The operation to be performed on the provided Amplitude source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BETWEEN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Amplitude", + "type": "string" + }, + "CustomConnector": { + "type": "string" + }, + "Datadog": { + "markdownDescription": "The operation to be performed on the provided Datadog source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | DIVISION | EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Datadog", + "type": "string" + }, + "Dynatrace": { + "markdownDescription": "The operation to be performed on the provided Dynatrace source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | DIVISION | EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dynatrace", + "type": "string" + }, + "GoogleAnalytics": { + "markdownDescription": "The operation to be performed on the provided Google Analytics source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BETWEEN | PROJECTION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GoogleAnalytics", + "type": "string" + }, + "InforNexus": { + "markdownDescription": "The operation to be performed on the provided Infor Nexus source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | DIVISION | EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InforNexus", + "type": "string" + }, + "Marketo": { + "markdownDescription": "The operation to be performed on the provided Marketo source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | DIVISION | GREATER_THAN | LESS_THAN | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Marketo", + "type": "string" + }, + "Pardot": { + "type": "string" + }, + "S3": { + "markdownDescription": "The operation to be performed on the provided Amazon S3 source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | DIVISION | EQUAL_TO | GREATER_THAN | GREATER_THAN_OR_EQUAL_TO | LESS_THAN | LESS_THAN_OR_EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | NOT_EQUAL_TO | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3", + "type": "string" + }, + "SAPOData": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SAPOData", + "type": "string" + }, + "Salesforce": { + "markdownDescription": "The operation to be performed on the provided Salesforce source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | CONTAINS | DIVISION | EQUAL_TO | GREATER_THAN | GREATER_THAN_OR_EQUAL_TO | LESS_THAN | LESS_THAN_OR_EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | NOT_EQUAL_TO | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Salesforce", + "type": "string" + }, + "ServiceNow": { + "markdownDescription": "The operation to be performed on the provided ServiceNow source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | CONTAINS | DIVISION | EQUAL_TO | GREATER_THAN | GREATER_THAN_OR_EQUAL_TO | LESS_THAN | LESS_THAN_OR_EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | NOT_EQUAL_TO | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceNow", + "type": "string" + }, + "Singular": { + "markdownDescription": "The operation to be performed on the provided Singular source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | DIVISION | EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Singular", + "type": "string" + }, + "Slack": { + "markdownDescription": "The operation to be performed on the provided Slack source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | DIVISION | EQUAL_TO | GREATER_THAN | GREATER_THAN_OR_EQUAL_TO | LESS_THAN | LESS_THAN_OR_EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Slack", + "type": "string" + }, + "Trendmicro": { + "markdownDescription": "The operation to be performed on the provided Trend Micro source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | DIVISION | EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Trendmicro", + "type": "string" + }, + "Veeva": { + "markdownDescription": "The operation to be performed on the provided Veeva source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | BETWEEN | CONTAINS | DIVISION | EQUAL_TO | GREATER_THAN | GREATER_THAN_OR_EQUAL_TO | LESS_THAN | LESS_THAN_OR_EQUAL_TO | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | NOT_EQUAL_TO | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Veeva", + "type": "string" + }, + "Zendesk": { + "markdownDescription": "The operation to be performed on the provided Zendesk source fields\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADDITION | DIVISION | GREATER_THAN | MASK_ALL | MASK_FIRST_N | MASK_LAST_N | MULTIPLICATION | NO_OP | PROJECTION | SUBTRACTION | VALIDATE_NON_NEGATIVE | VALIDATE_NON_NULL | VALIDATE_NON_ZERO | VALIDATE_NUMERIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The object specified in the Datadog flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The properties required to query Amazon EventBridge\\. \n*Required*: No \n*Type*: [EventBridgeDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-eventbridgedestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventBridge" + }, + "LookoutMetrics": { + "$ref": "#/definitions/AWS::AppFlow::Flow.LookoutMetricsDestinationProperties", + "markdownDescription": "The properties required to query Amazon Lookout for Metrics\\. \n*Required*: No \n*Type*: [LookoutMetricsDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-lookoutmetricsdestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LookoutMetrics" + }, + "Marketo": { + "$ref": "#/definitions/AWS::AppFlow::Flow.MarketoDestinationProperties", + "markdownDescription": "The properties required to query Marketo\\. \n*Required*: No \n*Type*: [MarketoDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-marketodestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Marketo" + }, + "Redshift": { + "$ref": "#/definitions/AWS::AppFlow::Flow.RedshiftDestinationProperties", + "markdownDescription": "The properties required to query Amazon Redshift\\. \n*Required*: No \n*Type*: [RedshiftDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-redshiftdestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Redshift" + }, + "S3": { + "$ref": "#/definitions/AWS::AppFlow::Flow.S3DestinationProperties", + "markdownDescription": "The properties required to query Amazon S3\\. \n*Required*: No \n*Type*: [S3DestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3destinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3" + }, + "SAPOData": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SAPODataDestinationProperties", + "markdownDescription": "The properties required to query SAPOData\\. \n*Required*: No \n*Type*: [SAPODataDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodatadestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SAPOData" + }, + "Salesforce": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SalesforceDestinationProperties", + "markdownDescription": "The properties required to query Salesforce\\. \n*Required*: No \n*Type*: [SalesforceDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcedestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Salesforce" + }, + "Snowflake": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SnowflakeDestinationProperties", + "markdownDescription": "The properties required to query Snowflake\\. \n*Required*: No \n*Type*: [SnowflakeDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-snowflakedestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Snowflake" + }, + "Upsolver": { + "$ref": "#/definitions/AWS::AppFlow::Flow.UpsolverDestinationProperties", + "markdownDescription": "The properties required to query Upsolver\\. \n*Required*: No \n*Type*: [UpsolverDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-upsolverdestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Upsolver" + }, + "Zendesk": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ZendeskDestinationProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ZendeskDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-zendeskdestinationproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Zendesk" + } + }, + "type": "object" + }, + "AWS::AppFlow::Flow.DestinationFlowConfig": { + "additionalProperties": false, + "properties": { + "ApiVersion": { + "type": "string" + }, + "ConnectorProfileName": { + "markdownDescription": "The name of the connector profile\\. This name must be unique for each connector profile in the AWS account\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `[\\w/!@#+=.-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorProfileName", + "type": "string" + }, + "ConnectorType": { + "markdownDescription": "The type of destination connector, such as Sales force, Amazon S3, and so on\\. \n*Allowed Values*: `EventBridge | Redshift | S3 | Salesforce | Snowflake` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorType", + "type": "string" + }, + "DestinationConnectorProperties": { + "$ref": "#/definitions/AWS::AppFlow::Flow.DestinationConnectorProperties", + "markdownDescription": "This stores the information that is required to query a particular connector\\. \n*Required*: Yes \n*Type*: [DestinationConnectorProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationConnectorProperties" + } + }, + "required": [ + "ConnectorType", + "DestinationConnectorProperties" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.DynatraceSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "markdownDescription": "The object specified in the Dynatrace flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.ErrorHandlingConfig": { + "additionalProperties": false, + "properties": { + "BucketName": { + "markdownDescription": "Specifies the name of the Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", + "type": "string" + }, + "BucketPrefix": { + "markdownDescription": "Specifies the Amazon S3 bucket prefix\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketPrefix", + "type": "string" + }, + "FailOnFirstError": { + "markdownDescription": "Specifies if the flow should fail after the first instance of a failure when attempting to place data in the destination\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailOnFirstError", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::AppFlow::Flow.EventBridgeDestinationProperties": { + "additionalProperties": false, + "properties": { + "ErrorHandlingConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig", + "markdownDescription": "The object specified in the Amplitude flow source\\. \n*Required*: No \n*Type*: [ErrorHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html) \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorHandlingConfig" + }, + "Object": { + "markdownDescription": "The object specified in the Amazon EventBridge flow destination\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The object specified in the Google Analytics flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.IncrementalPullConfig": { + "additionalProperties": false, + "properties": { + "DatetimeTypeFieldName": { + "markdownDescription": "A field that specifies the date time or timestamp field as the criteria to use when importing incremental records from the source\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatetimeTypeFieldName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::Flow.InforNexusSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "markdownDescription": "The object specified in the Infor Nexus flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.LookoutMetricsDestinationProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "markdownDescription": "The object specified in the Amazon Lookout for Metrics flow destination\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::Flow.MarketoDestinationProperties": { + "additionalProperties": false, + "properties": { + "ErrorHandlingConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ErrorHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorHandlingConfig" + }, + "Object": { + "markdownDescription": "The object specified in the Marketo flow destination\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.MarketoSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "markdownDescription": "The object specified in the Marketo flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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.PardotSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.PrefixConfig": { + "additionalProperties": false, + "properties": { + "PathPrefixHierarchy": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PrefixFormat": { + "markdownDescription": "Determines the level of granularity that's included in the prefix\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DAY | HOUR | MINUTE | MONTH | YEAR` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrefixFormat", + "type": "string" + }, + "PrefixType": { + "markdownDescription": "Determines the format of the prefix, and whether it applies to the file name, file path, or both\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `FILENAME | PATH | PATH_AND_FILENAME` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrefixType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::Flow.RedshiftDestinationProperties": { + "additionalProperties": false, + "properties": { + "BucketPrefix": { + "markdownDescription": "The object key for the bucket in which Amazon AppFlow places the destination files\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketPrefix", + "type": "string" + }, + "ErrorHandlingConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig", + "markdownDescription": "The settings that determine how Amazon AppFlow handles an error when placing data in the Amazon Redshift destination\\. For example, this setting would determine if the flow should fail after one insertion error, or continue and attempt to insert every record regardless of the initial failure\\. `ErrorHandlingConfig` is a part of the destination connector details\\. \n*Required*: No \n*Type*: [ErrorHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorHandlingConfig" + }, + "IntermediateBucketName": { + "markdownDescription": "The intermediate bucket that Amazon AppFlow uses when moving data into Amazon Redshift\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntermediateBucketName", + "type": "string" + }, + "Object": { + "markdownDescription": "The object specified in the Amazon Redshift flow destination\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", + "type": "string" + } + }, + "required": [ + "IntermediateBucketName", + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.S3DestinationProperties": { + "additionalProperties": false, + "properties": { + "BucketName": { + "markdownDescription": "The Amazon S3 bucket name in which Amazon AppFlow places the transferred data\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", + "type": "string" + }, + "BucketPrefix": { + "markdownDescription": "The object key for the destination bucket in which Amazon AppFlow places the files\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketPrefix", + "type": "string" + }, + "S3OutputFormatConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.S3OutputFormatConfig", + "markdownDescription": "The configuration that determines how Amazon AppFlow should format the flow output data when Amazon S3 is used as the destination\\. \n*Required*: No \n*Type*: [S3OutputFormatConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3outputformatconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3OutputFormatConfig" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.S3InputFormatConfig": { + "additionalProperties": false, + "properties": { + "S3InputFileType": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3InputFileType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::Flow.S3OutputFormatConfig": { + "additionalProperties": false, + "properties": { + "AggregationConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.AggregationConfig", + "markdownDescription": "The aggregation settings that you can use to customize the output format of your flow data\\. \n*Required*: No \n*Type*: [AggregationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-aggregationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AggregationConfig" + }, + "FileType": { + "markdownDescription": "Indicates the file type that Amazon AppFlow places in the Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CSV | JSON | PARQUET` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileType", + "type": "string" + }, + "PrefixConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.PrefixConfig", + "markdownDescription": "Determines the prefix that Amazon AppFlow applies to the folder name in the Amazon S3 bucket\\. You can name folders according to the flow frequency and date\\. \n*Required*: No \n*Type*: [PrefixConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-prefixconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrefixConfig" + }, + "PreserveSourceDataTyping": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::AppFlow::Flow.S3SourceProperties": { + "additionalProperties": false, + "properties": { + "BucketName": { + "markdownDescription": "The Amazon S3 bucket name where the source files are stored\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", + "type": "string" + }, + "BucketPrefix": { + "markdownDescription": "The object key for the Amazon S3 bucket in which the source files are stored\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketPrefix", + "type": "string" + }, + "S3InputFormatConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.S3InputFormatConfig", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [S3InputFormatConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3inputformatconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3InputFormatConfig" + } + }, + "required": [ + "BucketName", + "BucketPrefix" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.SAPODataDestinationProperties": { + "additionalProperties": false, + "properties": { + "ErrorHandlingConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ErrorHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorHandlingConfig" + }, + "IdFieldNames": { + "items": { + "type": "string" + }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdFieldNames", + "type": "array" + }, + "ObjectPath": { + "markdownDescription": "The object path specified in the SAPOData flow destination\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectPath", + "type": "string" + }, + "SuccessResponseHandlingConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SuccessResponseHandlingConfig", + "markdownDescription": "Determines how Amazon AppFlow handles the success response that it gets from the connector after placing data\\. \nFor example, this setting would determine where to write the response from a destination connector upon a successful insert operation\\. \n*Required*: No \n*Type*: [SuccessResponseHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-successresponsehandlingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuccessResponseHandlingConfig" + }, + "WriteOperationType": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WriteOperationType", + "type": "string" + } + }, + "required": [ + "ObjectPath" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.SAPODataSourceProperties": { + "additionalProperties": false, + "properties": { + "ObjectPath": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectPath", + "type": "string" + } + }, + "required": [ + "ObjectPath" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.SalesforceDestinationProperties": { + "additionalProperties": false, + "properties": { + "DataTransferApi": { + "type": "string" + }, + "ErrorHandlingConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig", + "markdownDescription": "The settings that determine how Amazon AppFlow handles an error when placing data in the Salesforce destination\\. For example, this setting would determine if the flow should fail after one insertion error, or continue and attempt to insert every record regardless of the initial failure\\. `ErrorHandlingConfig` is a part of the destination connector details\\. \n*Required*: No \n*Type*: [ErrorHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorHandlingConfig" + }, + "IdFieldNames": { + "items": { + "type": "string" + }, + "markdownDescription": "The name of the field that Amazon AppFlow uses as an ID when performing a write operation such as update or delete\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdFieldNames", + "type": "array" + }, + "Object": { + "markdownDescription": "The object specified in the Salesforce flow destination\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", + "type": "string" + }, + "WriteOperationType": { + "markdownDescription": "This specifies the type of write operation to be performed in Salesforce\\. When the value is `UPSERT`, then `idFieldNames` is required\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DELETE | INSERT | UPDATE | UPSERT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WriteOperationType", + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.SalesforceSourceProperties": { + "additionalProperties": false, + "properties": { + "DataTransferApi": { + "type": "string" + }, + "EnableDynamicFieldUpdate": { + "markdownDescription": "The flag that enables dynamic fetching of new \\(recently added\\) fields in the Salesforce objects while running a flow\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableDynamicFieldUpdate", + "type": "boolean" + }, + "IncludeDeletedRecords": { + "markdownDescription": "Indicates whether Amazon AppFlow includes deleted files in the flow run\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeDeletedRecords", + "type": "boolean" + }, + "Object": { + "markdownDescription": "The object specified in the Salesforce flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.ScheduledTriggerProperties": { + "additionalProperties": false, + "properties": { + "DataPullMode": { + "markdownDescription": "Specifies whether a scheduled flow has an incremental data transfer or a complete data transfer for each flow run\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Complete | Incremental` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataPullMode", + "type": "string" + }, + "FirstExecutionFrom": { + "type": "number" + }, + "FlowErrorDeactivationThreshold": { + "type": "number" + }, + "ScheduleEndTime": { + "markdownDescription": "Specifies the scheduled end time for a schedule\\-triggered flow\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleEndTime", + "type": "number" + }, + "ScheduleExpression": { + "markdownDescription": "The scheduling expression that determines the rate at which the scheduled flow will run, for example: `rate(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/5minutes.html)`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleExpression", + "type": "string" + }, + "ScheduleOffset": { + "markdownDescription": "Specifies the optional offset that is added to the time interval for a schedule\\-triggered flow\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleOffset", + "type": "number" + }, + "ScheduleStartTime": { + "markdownDescription": "Specifies the scheduled start time for a schedule\\-triggered flow\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleStartTime", + "type": "number" + }, + "TimeZone": { + "markdownDescription": "Specifies the time zone used when referring to the date and time of a scheduled\\-triggered flow, such as `America/New_York`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeZone", + "type": "string" + } + }, + "required": [ + "ScheduleExpression" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.ServiceNowSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "markdownDescription": "The object specified in the ServiceNow flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.SingularSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "markdownDescription": "The object specified in the Singular flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.SlackSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "markdownDescription": "The object specified in the Slack flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.SnowflakeDestinationProperties": { + "additionalProperties": false, + "properties": { + "BucketPrefix": { + "markdownDescription": "The object key for the destination bucket in which Amazon AppFlow places the files\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketPrefix", + "type": "string" + }, + "ErrorHandlingConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig", + "markdownDescription": "The settings that determine how Amazon AppFlow handles an error when placing data in the Snowflake destination\\. For example, this setting would determine if the flow should fail after one insertion error, or continue and attempt to insert every record regardless of the initial failure\\. `ErrorHandlingConfig` is a part of the destination connector details\\. \n*Required*: No \n*Type*: [ErrorHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorHandlingConfig" + }, + "IntermediateBucketName": { + "markdownDescription": "The intermediate bucket that Amazon AppFlow uses when moving data into Snowflake\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntermediateBucketName", + "type": "string" + }, + "Object": { + "markdownDescription": "The object specified in the Snowflake flow destination\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", + "type": "string" + } + }, + "required": [ + "IntermediateBucketName", + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.SourceConnectorProperties": { + "additionalProperties": false, + "properties": { + "Amplitude": { + "$ref": "#/definitions/AWS::AppFlow::Flow.AmplitudeSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Amplitude\\. \n*Required*: No \n*Type*: [AmplitudeSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-amplitudesourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Amplitude" + }, + "CustomConnector": { + "$ref": "#/definitions/AWS::AppFlow::Flow.CustomConnectorSourceProperties" + }, + "Datadog": { + "$ref": "#/definitions/AWS::AppFlow::Flow.DatadogSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Datadog\\. \n*Required*: No \n*Type*: [DatadogSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-datadogsourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Datadog" + }, + "Dynatrace": { + "$ref": "#/definitions/AWS::AppFlow::Flow.DynatraceSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Dynatrace\\. \n*Required*: No \n*Type*: [DynatraceSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-dynatracesourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dynatrace" + }, + "GoogleAnalytics": { + "$ref": "#/definitions/AWS::AppFlow::Flow.GoogleAnalyticsSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Google Analytics\\. \n*Required*: No \n*Type*: [GoogleAnalyticsSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-googleanalyticssourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GoogleAnalytics" + }, + "InforNexus": { + "$ref": "#/definitions/AWS::AppFlow::Flow.InforNexusSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Infor Nexus\\. \n*Required*: No \n*Type*: [InforNexusSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-infornexussourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InforNexus" + }, + "Marketo": { + "$ref": "#/definitions/AWS::AppFlow::Flow.MarketoSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Marketo\\. \n*Required*: No \n*Type*: [MarketoSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-marketosourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Marketo" + }, + "Pardot": { + "$ref": "#/definitions/AWS::AppFlow::Flow.PardotSourceProperties" + }, + "S3": { + "$ref": "#/definitions/AWS::AppFlow::Flow.S3SourceProperties", + "markdownDescription": "Specifies the information that is required for querying Amazon S3\\. \n*Required*: No \n*Type*: [S3SourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3sourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3" + }, + "SAPOData": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SAPODataSourceProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [SAPODataSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodatasourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SAPOData" + }, + "Salesforce": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SalesforceSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Salesforce\\. \n*Required*: No \n*Type*: [SalesforceSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcesourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Salesforce" + }, + "ServiceNow": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ServiceNowSourceProperties", + "markdownDescription": "Specifies the information that is required for querying ServiceNow\\. \n*Required*: No \n*Type*: [ServiceNowSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-servicenowsourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceNow" + }, + "Singular": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SingularSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Singular\\. \n*Required*: No \n*Type*: [SingularSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-singularsourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Singular" + }, + "Slack": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SlackSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Slack\\. \n*Required*: No \n*Type*: [SlackSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-slacksourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Slack" + }, + "Trendmicro": { + "$ref": "#/definitions/AWS::AppFlow::Flow.TrendmicroSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Trend Micro\\. \n*Required*: No \n*Type*: [TrendmicroSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-trendmicrosourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Trendmicro" + }, + "Veeva": { + "$ref": "#/definitions/AWS::AppFlow::Flow.VeevaSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Veeva\\. \n*Required*: No \n*Type*: [VeevaSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-veevasourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Veeva" + }, + "Zendesk": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ZendeskSourceProperties", + "markdownDescription": "Specifies the information that is required for querying Zendesk\\. \n*Required*: No \n*Type*: [ZendeskSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-zendesksourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Zendesk" + } + }, + "type": "object" + }, + "AWS::AppFlow::Flow.SourceFlowConfig": { + "additionalProperties": false, + "properties": { + "ApiVersion": { + "type": "string" + }, + "ConnectorProfileName": { + "markdownDescription": "The name of the connector profile\\. This name must be unique for each connector profile in the AWS account\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `[\\w/!@#+=.-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorProfileName", + "type": "string" + }, + "ConnectorType": { + "markdownDescription": "The type of source connector, such as Salesforce, Amplitude, and so on\\. \n*Allowed Values*: S3 \\| Amplitude \\| Datadog \\| Dynatrace \\| Googleanalytics \\| Infornexus \\| Salesforce \\| Servicenow \\| Singular \\| Slack \\| Trendmicro \\| Veeva \\| Zendesk \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorType", + "type": "string" + }, + "IncrementalPullConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.IncrementalPullConfig", + "markdownDescription": "Defines the configuration for a scheduled incremental data pull\\. If a valid configuration is provided, the fields specified in the configuration are used when querying for the incremental data pull\\. \n*Required*: No \n*Type*: [IncrementalPullConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-incrementalpullconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncrementalPullConfig" + }, + "SourceConnectorProperties": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SourceConnectorProperties", + "markdownDescription": "Specifies the information that is required to query a particular source connector\\. \n*Required*: Yes \n*Type*: [SourceConnectorProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceConnectorProperties" + } + }, + "required": [ + "ConnectorType", + "SourceConnectorProperties" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.SuccessResponseHandlingConfig": { + "additionalProperties": false, + "properties": { + "BucketName": { + "markdownDescription": "The name of the Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", + "type": "string" + }, + "BucketPrefix": { + "markdownDescription": "The Amazon S3 bucket prefix\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketPrefix", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::Flow.Task": { + "additionalProperties": false, + "properties": { + "ConnectorOperator": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ConnectorOperator", + "markdownDescription": "The operation to be performed on the provided source fields\\. \n*Required*: No \n*Type*: [ConnectorOperator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorOperator" + }, + "DestinationField": { + "markdownDescription": "A field in a destination connector, or a field value against which Amazon AppFlow validates a source field\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationField", + "type": "string" + }, + "SourceFields": { + "items": { + "type": "string" + }, + "markdownDescription": "The source fields to which a particular task is applied\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceFields", + "type": "array" + }, + "TaskProperties": { + "items": { + "$ref": "#/definitions/AWS::AppFlow::Flow.TaskPropertiesObject" + }, + "markdownDescription": "A map used to store task\\-related information\\. The execution service looks for particular information based on the `TaskType`\\. \n*Required*: No \n*Type*: List of [TaskPropertiesObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-taskpropertiesobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskProperties", + "type": "array" + }, + "TaskType": { + "markdownDescription": "Specifies the particular task implementation that Amazon AppFlow performs\\. \n*Allowed values*: `Arithmetic` \\| `Filter` \\| `Map` \\| `Map_all` \\| `Mask` \\| `Merge` \\| `Truncate` \\| `Validate` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskType", + "type": "string" + } + }, + "required": [ + "SourceFields", + "TaskType" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.TaskPropertiesObject": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The task property key\\. \n*Allowed Values*: `VALUE | VALUES | DATA_TYPE | UPPER_BOUND | LOWER_BOUND | SOURCE_DATA_TYPE | DESTINATION_DATA_TYPE | VALIDATION_ACTION | MASK_VALUE | MASK_LENGTH | TRUNCATE_LENGTH | MATH_OPERATION_FIELDS_ORDER | CONCAT_FORMAT | SUBFIELD_CATEGORY_MAP` \\| `EXCLUDE_SOURCE_FIELDS_LIST` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The task property value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.TrendmicroSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "markdownDescription": "The object specified in the Trend Micro flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerProperties": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ScheduledTriggerProperties", + "markdownDescription": "Specifies the configuration details of a schedule\\-triggered flow as defined by the user\\. Currently, these settings only apply to the `Scheduled` trigger type\\. \n*Required*: No \n*Type*: [ScheduledTriggerProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-scheduledtriggerproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TriggerProperties" + }, + "TriggerType": { + "markdownDescription": "Specifies the type of flow trigger\\. This can be `OnDemand`, `Scheduled`, or `Event`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Event | OnDemand | Scheduled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TriggerType", + "type": "string" + } + }, + "required": [ + "TriggerType" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.UpsolverDestinationProperties": { + "additionalProperties": false, + "properties": { + "BucketName": { + "markdownDescription": "The Upsolver Amazon S3 bucket name in which Amazon AppFlow places the transferred data\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `16` \n*Maximum*: `63` \n*Pattern*: `^(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/upsolver-appflow.html)\\S*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", + "type": "string" + }, + "BucketPrefix": { + "markdownDescription": "The object key for the destination Upsolver Amazon S3 bucket in which Amazon AppFlow places the files\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketPrefix", + "type": "string" + }, + "S3OutputFormatConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.UpsolverS3OutputFormatConfig", + "markdownDescription": "The configuration that determines how data is formatted when Upsolver is used as the flow destination\\. \n*Required*: Yes \n*Type*: [UpsolverS3OutputFormatConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-upsolvers3outputformatconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3OutputFormatConfig" + } + }, + "required": [ + "BucketName", + "S3OutputFormatConfig" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.UpsolverS3OutputFormatConfig": { + "additionalProperties": false, + "properties": { + "AggregationConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.AggregationConfig", + "markdownDescription": "The aggregation settings that you can use to customize the output format of your flow data\\. \n*Required*: No \n*Type*: [AggregationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-aggregationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AggregationConfig" + }, + "FileType": { + "markdownDescription": "Indicates the file type that Amazon AppFlow places in the Upsolver Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CSV | JSON | PARQUET` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileType", + "type": "string" + }, + "PrefixConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.PrefixConfig", + "markdownDescription": "Determines the prefix that Amazon AppFlow applies to the destination folder name\\. You can name your destination folders according to the flow frequency and date\\. \n*Required*: Yes \n*Type*: [PrefixConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-prefixconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrefixConfig" + } + }, + "required": [ + "PrefixConfig" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.VeevaSourceProperties": { + "additionalProperties": false, + "properties": { + "DocumentType": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentType", + "type": "string" + }, + "IncludeAllVersions": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeAllVersions", + "type": "boolean" + }, + "IncludeRenditions": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeRenditions", + "type": "boolean" + }, + "IncludeSourceFiles": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeSourceFiles", + "type": "boolean" + }, + "Object": { + "markdownDescription": "The object specified in the Veeva flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.ZendeskDestinationProperties": { + "additionalProperties": false, + "properties": { + "ErrorHandlingConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ErrorHandlingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorHandlingConfig" + }, + "IdFieldNames": { + "items": { + "type": "string" + }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdFieldNames", + "type": "array" + }, + "Object": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", + "type": "string" + }, + "WriteOperationType": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WriteOperationType", + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.ZendeskSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "markdownDescription": "The object specified in the Zendesk flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A description of the DataIntegration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "KmsKey": { + "markdownDescription": "The KMS key for the DataIntegration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKey", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the DataIntegration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "ScheduleConfig": { + "$ref": "#/definitions/AWS::AppIntegrations::DataIntegration.ScheduleConfig", + "markdownDescription": "The name of the data and how often it should be pulled from the source\\. \n*Required*: Yes \n*Type*: [ScheduleConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-dataintegration-scheduleconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScheduleConfig" + }, + "SourceURI": { + "markdownDescription": "The URI of the data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceURI", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The start date for objects to import in the first flow run as an Unix/epoch timestamp in milliseconds or in ISO\\-8601 format\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FirstExecutionFrom", + "type": "string" + }, + "Object": { + "markdownDescription": "The name of the object to pull from the data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Object", + "type": "string" + }, + "ScheduleExpression": { + "markdownDescription": "How often the data should be pulled from data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The event integration description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "EventBridgeBus": { + "markdownDescription": "The Amazon EventBridge bus for the event integration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EventBridgeBus", + "type": "string" + }, + "EventFilter": { + "$ref": "#/definitions/AWS::AppIntegrations::EventIntegration.EventFilter", + "markdownDescription": "The event integration filter\\. \n*Required*: Yes \n*Type*: [EventFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-eventintegration-eventfilter.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EventFilter" + }, + "Name": { + "markdownDescription": "The name of the event integration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The source of the events\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Source", + "type": "string" + } + }, + "required": [ + "Source" + ], + "type": "object" + }, + "AWS::AppIntegrations::EventIntegration.EventIntegrationAssociation": { + "additionalProperties": false, + "properties": { + "ClientAssociationMetadata": { + "items": { + "$ref": "#/definitions/AWS::AppIntegrations::EventIntegration.Metadata" + }, + "markdownDescription": "The metadata associated with the client\\. \n*Required*: No \n*Type*: List of [Metadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-eventintegration-metadata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientAssociationMetadata", + "type": "array" + }, + "ClientId": { + "markdownDescription": "The identifier for the client that is associated with the event integration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientId", + "type": "string" + }, + "EventBridgeRuleName": { + "markdownDescription": "The name of the EventBridge rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventBridgeRuleName", + "type": "string" + }, + "EventIntegrationAssociationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the event integration association\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventIntegrationAssociationArn", + "type": "string" + }, + "EventIntegrationAssociationId": { + "markdownDescription": "The identifier for the event integration association\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventIntegrationAssociationId", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppIntegrations::EventIntegration.Metadata": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The key name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::AppMesh::GatewayRoute": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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": { + "markdownDescription": "The name of the gateway route\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GatewayRouteName", + "type": "string" + }, + "MeshName": { + "markdownDescription": "The name of the service mesh that the resource resides in\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshName", + "type": "string" + }, + "MeshOwner": { + "markdownDescription": "The AWS IAM account ID of the service mesh owner\\. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account\\. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshOwner", + "type": "string" + }, + "Spec": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteSpec", + "markdownDescription": "The specifications of the gateway route\\. \n*Required*: Yes \n*Type*: [GatewayRouteSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutespec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Spec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Optional metadata that you can apply to the gateway route to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VirtualGatewayName": { + "markdownDescription": "The virtual gateway that the gateway route is associated with\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The exact host name to match on\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `253` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", + "type": "string" + }, + "Suffix": { + "markdownDescription": "The specified ending characters of the host name to match on\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `253` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Suffix", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GatewayRouteHostnameRewrite": { + "additionalProperties": false, + "properties": { + "DefaultTargetHostname": { + "markdownDescription": "The default target host name to write to\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultTargetHostname", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GatewayRouteMetadataMatch": { + "additionalProperties": false, + "properties": { + "Exact": { + "markdownDescription": "The exact method header to be matched on\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", + "type": "string" + }, + "Prefix": { + "markdownDescription": "The specified beginning characters of the method header to be matched on\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", + "type": "string" + }, + "Range": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteRangeMatch", + "markdownDescription": "An object that represents the range of values to match on\\. \n*Required*: No \n*Type*: [GatewayRouteRangeMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayrouterangematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Range" + }, + "Regex": { + "markdownDescription": "The regex used to match the method header\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Regex", + "type": "string" + }, + "Suffix": { + "markdownDescription": "The specified ending characters of the method header to match on\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Suffix", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GatewayRouteRangeMatch": { + "additionalProperties": false, + "properties": { + "End": { + "markdownDescription": "The end of the range\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "End", + "type": "number" + }, + "Start": { + "markdownDescription": "The start of the range\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Start", + "type": "number" + } + }, + "required": [ + "End", + "Start" + ], + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GatewayRouteSpec": { + "additionalProperties": false, + "properties": { + "GrpcRoute": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRoute", + "markdownDescription": "An object that represents the specification of a gRPC gateway route\\. \n*Required*: No \n*Type*: [GrpcGatewayRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GrpcRoute" + }, + "Http2Route": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoute", + "markdownDescription": "An object that represents the specification of an HTTP/2 gateway route\\. \n*Required*: No \n*Type*: [HttpGatewayRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Http2Route" + }, + "HttpRoute": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoute", + "markdownDescription": "An object that represents the specification of an HTTP gateway route\\. \n*Required*: No \n*Type*: [HttpGatewayRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpRoute" + }, + "Priority": { + "markdownDescription": "The ordering of the gateway routes spec\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", + "type": "number" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GatewayRouteTarget": { + "additionalProperties": false, + "properties": { + "Port": { + "type": "number" + }, + "VirtualService": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteVirtualService", + "markdownDescription": "An object that represents a virtual service gateway route target\\. \n*Required*: Yes \n*Type*: [GatewayRouteVirtualService](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutevirtualservice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualService" + } + }, + "required": [ + "VirtualService" + ], + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GatewayRouteVirtualService": { + "additionalProperties": false, + "properties": { + "VirtualServiceName": { + "markdownDescription": "The name of the virtual service that traffic is routed to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualServiceName", + "type": "string" + } + }, + "required": [ + "VirtualServiceName" + ], + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GrpcGatewayRoute": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRouteAction", + "markdownDescription": "An object that represents the action to take if a match is determined\\. \n*Required*: Yes \n*Type*: [GrpcGatewayRouteAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayrouteaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" + }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRouteMatch", + "markdownDescription": "An object that represents the criteria for determining a request match\\. \n*Required*: Yes \n*Type*: [GrpcGatewayRouteMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroutematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" + } + }, + "required": [ + "Action", + "Match" + ], + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GrpcGatewayRouteAction": { + "additionalProperties": false, + "properties": { + "Rewrite": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRouteRewrite", + "markdownDescription": "The gateway route action to rewrite\\. \n*Required*: No \n*Type*: [GrpcGatewayRouteRewrite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayrouterewrite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rewrite" + }, + "Target": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteTarget", + "markdownDescription": "An object that represents the target that traffic is routed to when a request matches the gateway route\\. \n*Required*: Yes \n*Type*: [GatewayRouteTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutetarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target" + } + }, + "required": [ + "Target" + ], + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GrpcGatewayRouteMatch": { + "additionalProperties": false, + "properties": { + "Hostname": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteHostnameMatch", + "markdownDescription": "The gateway route host name to be matched on\\. \n*Required*: No \n*Type*: [GatewayRouteHostnameMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutehostnamematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Hostname" + }, + "Metadata": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRouteMetadata" + }, + "markdownDescription": "The gateway route metadata to be matched on\\. \n*Required*: No \n*Type*: List of [GrpcGatewayRouteMetadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroutemetadata.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metadata", + "type": "array" + }, + "Port": { + "type": "number" + }, + "ServiceName": { + "markdownDescription": "The fully qualified domain name for the service to match from the request\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GrpcGatewayRouteMetadata": { + "additionalProperties": false, + "properties": { + "Invert": { + "markdownDescription": "Specify `True` to match anything except the match criteria\\. The default value is `False`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Invert", + "type": "boolean" + }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteMetadataMatch", + "markdownDescription": "The criteria for determining a metadata match\\. \n*Required*: No \n*Type*: [GatewayRouteMetadataMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutemetadatamatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" + }, + "Name": { + "markdownDescription": "A name for the gateway route metadata\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GrpcGatewayRouteRewrite": { + "additionalProperties": false, + "properties": { + "Hostname": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteHostnameRewrite", + "markdownDescription": "The host name of the gateway route to rewrite\\. \n*Required*: No \n*Type*: [GatewayRouteHostnameRewrite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutehostnamerewrite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Hostname" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.HttpGatewayRoute": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteAction", + "markdownDescription": "An object that represents the action to take if a match is determined\\. \n*Required*: Yes \n*Type*: [HttpGatewayRouteAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" + }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteMatch", + "markdownDescription": "An object that represents the criteria for determining a request match\\. \n*Required*: Yes \n*Type*: [HttpGatewayRouteMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroutematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" + } + }, + "required": [ + "Action", + "Match" + ], + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.HttpGatewayRouteAction": { + "additionalProperties": false, + "properties": { + "Rewrite": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteRewrite", + "markdownDescription": "The gateway route action to rewrite\\. \n*Required*: No \n*Type*: [HttpGatewayRouteRewrite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouterewrite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rewrite" + }, + "Target": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteTarget", + "markdownDescription": "An object that represents the target that traffic is routed to when a request matches the gateway route\\. \n*Required*: Yes \n*Type*: [GatewayRouteTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutetarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target" + } + }, + "required": [ + "Target" + ], + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.HttpGatewayRouteHeader": { + "additionalProperties": false, + "properties": { + "Invert": { + "markdownDescription": "Specify `True` to match anything except the match criteria\\. The default value is `False`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Invert", + "type": "boolean" + }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteHeaderMatch", + "markdownDescription": "An object that represents the method and value to match with the header value sent in a request\\. Specify one match method\\. \n*Required*: No \n*Type*: [HttpGatewayRouteHeaderMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteheadermatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" + }, + "Name": { + "markdownDescription": "A name for the HTTP header in the gateway route that will be matched on\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.HttpGatewayRouteHeaderMatch": { + "additionalProperties": false, + "properties": { + "Exact": { + "markdownDescription": "The value sent by the client must match the specified value exactly\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", + "type": "string" + }, + "Prefix": { + "markdownDescription": "The value sent by the client must begin with the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", + "type": "string" + }, + "Range": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteRangeMatch", + "markdownDescription": "An object that represents the range of values to match on\\. \n*Required*: No \n*Type*: [GatewayRouteRangeMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayrouterangematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Range" + }, + "Regex": { + "markdownDescription": "The value sent by the client must include the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Regex", + "type": "string" + }, + "Suffix": { + "markdownDescription": "The value sent by the client must end with the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Suffix", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.HttpGatewayRouteMatch": { + "additionalProperties": false, + "properties": { + "Headers": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteHeader" + }, + "markdownDescription": "The client request headers to match on\\. \n*Required*: No \n*Type*: List of [HttpGatewayRouteHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteheader.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Headers", + "type": "array" + }, + "Hostname": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteHostnameMatch", + "markdownDescription": "The host name to match on\\. \n*Required*: No \n*Type*: [GatewayRouteHostnameMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutehostnamematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Hostname" + }, + "Method": { + "markdownDescription": "The method to match on\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CONNECT | DELETE | GET | HEAD | OPTIONS | PATCH | POST | PUT | TRACE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Method", + "type": "string" + }, + "Path": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpPathMatch", + "markdownDescription": "The path to match on\\. \n*Required*: No \n*Type*: [HttpPathMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httppathmatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path" + }, + "Port": { + "type": "number" + }, + "Prefix": { + "markdownDescription": "Specifies the path to match requests with\\. This parameter must always start with `/`, which by itself matches all requests to the virtual service name\\. You can also match for path\\-based routing of requests\\. For example, if your virtual service name is `my-service.local` and you want the route to match requests to `my-service.local/metrics`, your prefix should be `/metrics`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", + "type": "string" + }, + "QueryParameters": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.QueryParameter" + }, + "markdownDescription": "The query parameter to match on\\. \n*Required*: No \n*Type*: List of [QueryParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-queryparameter.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryParameters", + "type": "array" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.HttpGatewayRoutePathRewrite": { + "additionalProperties": false, + "properties": { + "Exact": { + "markdownDescription": "The exact path to rewrite\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.HttpGatewayRoutePrefixRewrite": { + "additionalProperties": false, + "properties": { + "DefaultPrefix": { + "markdownDescription": "The default prefix used to replace the incoming route prefix when rewritten\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultPrefix", + "type": "string" + }, + "Value": { + "markdownDescription": "The value used to replace the incoming route prefix when rewritten\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.HttpGatewayRouteRewrite": { + "additionalProperties": false, + "properties": { + "Hostname": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteHostnameRewrite", + "markdownDescription": "The host name to rewrite\\. \n*Required*: No \n*Type*: [GatewayRouteHostnameRewrite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutehostnamerewrite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Hostname" + }, + "Path": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoutePathRewrite", + "markdownDescription": "The path to rewrite\\. \n*Required*: No \n*Type*: [HttpGatewayRoutePathRewrite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroutepathrewrite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path" + }, + "Prefix": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoutePrefixRewrite", + "markdownDescription": "The specified beginning characters to rewrite\\. \n*Required*: No \n*Type*: [HttpGatewayRoutePrefixRewrite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteprefixrewrite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.HttpPathMatch": { + "additionalProperties": false, + "properties": { + "Exact": { + "markdownDescription": "The exact path to match on\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", + "type": "string" + }, + "Regex": { + "markdownDescription": "The regex used to match the path\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Regex", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.HttpQueryParameterMatch": { + "additionalProperties": false, + "properties": { + "Exact": { + "markdownDescription": "The exact query parameter to match on\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.QueryParameter": { + "additionalProperties": false, + "properties": { + "Match": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpQueryParameterMatch", + "markdownDescription": "The query parameter to match on\\. \n*Required*: No \n*Type*: [HttpQueryParameterMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpqueryparametermatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" + }, + "Name": { + "markdownDescription": "A name for the query parameter that will be matched on\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name to use for the service mesh\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshName", + "type": "string" + }, + "Spec": { + "$ref": "#/definitions/AWS::AppMesh::Mesh.MeshSpec", + "markdownDescription": "The service mesh specification to apply\\. \n*Required*: No \n*Type*: [MeshSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-mesh-meshspec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Spec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Optional metadata that you can apply to the service mesh to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The egress filter type\\. By default, the type is `DROP_ALL`, which allows egress only from virtual nodes to other defined resources in the service mesh \\(and any traffic to `*.amazonaws.com` for AWS API calls\\)\\. You can set the egress filter type to `ALLOW_ALL` to allow egress to any endpoint inside or outside of the service mesh\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALLOW_ALL | DROP_ALL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "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", + "markdownDescription": "The egress filter rules for the service mesh\\. \n*Required*: No \n*Type*: [EgressFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-mesh-egressfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the service mesh to create the route in\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshName", + "type": "string" + }, + "MeshOwner": { + "markdownDescription": "The AWS IAM account ID of the service mesh owner\\. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh\\. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshOwner", + "type": "string" + }, + "RouteName": { + "markdownDescription": "The name to use for the route\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RouteName", + "type": "string" + }, + "Spec": { + "$ref": "#/definitions/AWS::AppMesh::Route.RouteSpec", + "markdownDescription": "The route specification to apply\\. \n*Required*: Yes \n*Type*: [RouteSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-routespec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Spec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Optional metadata that you can apply to the route to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VirtualRouterName": { + "markdownDescription": "The name of the virtual router in which to create the route\\. If the virtual router is in a shared mesh, then you must be the owner of the virtual router resource\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A unit of time\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ms | s` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", + "type": "string" + }, + "Value": { + "markdownDescription": "A number of time units\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "AWS::AppMesh::Route.GrpcRetryPolicy": { + "additionalProperties": false, + "properties": { + "GrpcRetryEvents": { + "items": { + "type": "string" + }, + "markdownDescription": "Specify at least one of the valid values\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GrpcRetryEvents", + "type": "array" + }, + "HttpRetryEvents": { + "items": { + "type": "string" + }, + "markdownDescription": "Specify at least one of the following values\\. \n+ **server\\-error** \u2013 HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511\n+ **gateway\\-error** \u2013 HTTP status codes 502, 503, and 504\n+ **client\\-error** \u2013 HTTP status code 409\n+ **stream\\-error** \u2013 Retry on refused stream\n*Required*: No \n*Type*: List of String \n*Maximum*: `25` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpRetryEvents", + "type": "array" + }, + "MaxRetries": { + "markdownDescription": "The maximum number of retry attempts\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxRetries", + "type": "number" + }, + "PerRetryTimeout": { + "$ref": "#/definitions/AWS::AppMesh::Route.Duration", + "markdownDescription": "The timeout for each retry attempt\\. \n*Required*: Yes \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PerRetryTimeout" + }, + "TcpRetryEvents": { + "items": { + "type": "string" + }, + "markdownDescription": "Specify a valid value\\. The event occurs before any processing of a request has started and is encountered when the upstream is temporarily or permanently unavailable\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TcpRetryEvents", + "type": "array" + } + }, + "required": [ + "MaxRetries", + "PerRetryTimeout" + ], + "type": "object" + }, + "AWS::AppMesh::Route.GrpcRoute": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRouteAction", + "markdownDescription": "An object that represents the action to take if a match is determined\\. \n*Required*: Yes \n*Type*: [GrpcRouteAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcrouteaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" + }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRouteMatch", + "markdownDescription": "An object that represents the criteria for determining a request match\\. \n*Required*: Yes \n*Type*: [GrpcRouteMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" + }, + "RetryPolicy": { + "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRetryPolicy", + "markdownDescription": "An object that represents a retry policy\\. \n*Required*: No \n*Type*: [GrpcRetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcretrypolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryPolicy" + }, + "Timeout": { + "$ref": "#/definitions/AWS::AppMesh::Route.GrpcTimeout", + "markdownDescription": "An object that represents types of timeouts\\. \n*Required*: No \n*Type*: [GrpcTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpctimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout" + } + }, + "required": [ + "Action", + "Match" + ], + "type": "object" + }, + "AWS::AppMesh::Route.GrpcRouteAction": { + "additionalProperties": false, + "properties": { + "WeightedTargets": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::Route.WeightedTarget" + }, + "markdownDescription": "An object that represents the targets that traffic is routed to when a request matches the route\\. \n*Required*: Yes \n*Type*: List of [WeightedTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-weightedtarget.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WeightedTargets", + "type": "array" + } + }, + "required": [ + "WeightedTargets" + ], + "type": "object" + }, + "AWS::AppMesh::Route.GrpcRouteMatch": { + "additionalProperties": false, + "properties": { + "Metadata": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRouteMetadata" + }, + "markdownDescription": "An object that represents the data to match from the request\\. \n*Required*: No \n*Type*: List of [GrpcRouteMetadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutemetadata.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metadata", + "type": "array" + }, + "MethodName": { + "markdownDescription": "The method name to match from the request\\. If you specify a name, you must also specify a `serviceName`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MethodName", + "type": "string" + }, + "Port": { + "type": "number" + }, + "ServiceName": { + "markdownDescription": "The fully qualified domain name for the service to match from the request\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::Route.GrpcRouteMetadata": { + "additionalProperties": false, + "properties": { + "Invert": { + "markdownDescription": "Specify `True` to match anything except the match criteria\\. The default value is `False`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Invert", + "type": "boolean" + }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRouteMetadataMatchMethod", + "markdownDescription": "An object that represents the data to match from the request\\. \n*Required*: No \n*Type*: [GrpcRouteMetadataMatchMethod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutemetadatamatchmethod.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" + }, + "Name": { + "markdownDescription": "The name of the route\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::AppMesh::Route.GrpcRouteMetadataMatchMethod": { + "additionalProperties": false, + "properties": { + "Exact": { + "markdownDescription": "The value sent by the client must match the specified value exactly\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", + "type": "string" + }, + "Prefix": { + "markdownDescription": "The value sent by the client must begin with the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", + "type": "string" + }, + "Range": { + "$ref": "#/definitions/AWS::AppMesh::Route.MatchRange", + "markdownDescription": "An object that represents the range of values to match on\\. \n*Required*: No \n*Type*: [MatchRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-matchrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Range" + }, + "Regex": { + "markdownDescription": "The value sent by the client must include the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Regex", + "type": "string" + }, + "Suffix": { + "markdownDescription": "The value sent by the client must end with the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Suffix", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::Route.GrpcTimeout": { + "additionalProperties": false, + "properties": { + "Idle": { + "$ref": "#/definitions/AWS::AppMesh::Route.Duration", + "markdownDescription": "An object that represents an idle timeout\\. An idle timeout bounds the amount of time that a connection may be idle\\. The default value is none\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Idle" + }, + "PerRequest": { + "$ref": "#/definitions/AWS::AppMesh::Route.Duration", + "markdownDescription": "An object that represents a per request timeout\\. The default value is 15 seconds\\. If you set a higher timeout, then make sure that the higher value is set for each App Mesh resource in a conversation\\. For example, if a virtual node backend uses a virtual router provider to route to another virtual node, then the timeout should be greater than 15 seconds for the source and destination virtual node and the route\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PerRequest" + } + }, + "type": "object" + }, + "AWS::AppMesh::Route.HeaderMatchMethod": { + "additionalProperties": false, + "properties": { + "Exact": { + "markdownDescription": "The value sent by the client must match the specified value exactly\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", + "type": "string" + }, + "Prefix": { + "markdownDescription": "The value sent by the client must begin with the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", + "type": "string" + }, + "Range": { + "$ref": "#/definitions/AWS::AppMesh::Route.MatchRange", + "markdownDescription": "An object that represents the range of values to match on\\. \n*Required*: No \n*Type*: [MatchRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-matchrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Range" + }, + "Regex": { + "markdownDescription": "The value sent by the client must include the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Regex", + "type": "string" + }, + "Suffix": { + "markdownDescription": "The value sent by the client must end with the specified characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Suffix", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::Route.HttpPathMatch": { + "additionalProperties": false, + "properties": { + "Exact": { + "markdownDescription": "The exact path to match on\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", + "type": "string" + }, + "Regex": { + "markdownDescription": "The regex used to match the path\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Regex", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::Route.HttpQueryParameterMatch": { + "additionalProperties": false, + "properties": { + "Exact": { + "markdownDescription": "The exact query parameter to match on\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::Route.HttpRetryPolicy": { + "additionalProperties": false, + "properties": { + "HttpRetryEvents": { + "items": { + "type": "string" + }, + "markdownDescription": "Specify at least one of the following values\\. \n+ **server\\-error** \u2013 HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511\n+ **gateway\\-error** \u2013 HTTP status codes 502, 503, and 504\n+ **client\\-error** \u2013 HTTP status code 409\n+ **stream\\-error** \u2013 Retry on refused stream\n*Required*: No \n*Type*: List of String \n*Maximum*: `25` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpRetryEvents", + "type": "array" + }, + "MaxRetries": { + "markdownDescription": "The maximum number of retry attempts\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxRetries", + "type": "number" + }, + "PerRetryTimeout": { + "$ref": "#/definitions/AWS::AppMesh::Route.Duration", + "markdownDescription": "The timeout for each retry attempt\\. \n*Required*: Yes \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PerRetryTimeout" + }, + "TcpRetryEvents": { + "items": { + "type": "string" + }, + "markdownDescription": "Specify a valid value\\. The event occurs before any processing of a request has started and is encountered when the upstream is temporarily or permanently unavailable\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TcpRetryEvents", + "type": "array" + } + }, + "required": [ + "MaxRetries", + "PerRetryTimeout" + ], + "type": "object" + }, + "AWS::AppMesh::Route.HttpRoute": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::AppMesh::Route.HttpRouteAction", + "markdownDescription": "An object that represents the action to take if a match is determined\\. \n*Required*: Yes \n*Type*: [HttpRouteAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httprouteaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" + }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::Route.HttpRouteMatch", + "markdownDescription": "An object that represents the criteria for determining a request match\\. \n*Required*: Yes \n*Type*: [HttpRouteMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproutematch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" + }, + "RetryPolicy": { + "$ref": "#/definitions/AWS::AppMesh::Route.HttpRetryPolicy", + "markdownDescription": "An object that represents a retry policy\\. \n*Required*: No \n*Type*: [HttpRetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httpretrypolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryPolicy" + }, + "Timeout": { + "$ref": "#/definitions/AWS::AppMesh::Route.HttpTimeout", + "markdownDescription": "An object that represents types of timeouts\\. \n*Required*: No \n*Type*: [HttpTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httptimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout" + } + }, + "required": [ + "Action", + "Match" + ], + "type": "object" + }, + "AWS::AppMesh::Route.HttpRouteAction": { + "additionalProperties": false, + "properties": { + "WeightedTargets": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::Route.WeightedTarget" + }, + "markdownDescription": "An object that represents the targets that traffic is routed to when a request matches the route\\. \n*Required*: Yes \n*Type*: List of [WeightedTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-weightedtarget.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WeightedTargets", + "type": "array" + } + }, + "required": [ + "WeightedTargets" + ], + "type": "object" + }, + "AWS::AppMesh::Route.HttpRouteHeader": { + "additionalProperties": false, + "properties": { + "Invert": { + "markdownDescription": "Specify `True` to match anything except the match criteria\\. The default value is `False`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Invert", + "type": "boolean" + }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::Route.HeaderMatchMethod", + "markdownDescription": "The `HeaderMatchMethod` object\\. \n*Required*: No \n*Type*: [HeaderMatchMethod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-headermatchmethod.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" + }, + "Name": { + "markdownDescription": "A name for the HTTP header in the client request that will be matched on\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::AppMesh::Route.HttpRouteMatch": { + "additionalProperties": false, + "properties": { + "Headers": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::Route.HttpRouteHeader" + }, + "markdownDescription": "The client request headers to match on\\. \n*Required*: No \n*Type*: List of [HttpRouteHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httprouteheader.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Headers", + "type": "array" + }, + "Method": { + "markdownDescription": "The client request method to match on\\. Specify only one\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CONNECT | DELETE | GET | HEAD | OPTIONS | PATCH | POST | PUT | TRACE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Method", + "type": "string" + }, + "Path": { + "$ref": "#/definitions/AWS::AppMesh::Route.HttpPathMatch", + "markdownDescription": "The client request path to match on\\. \n*Required*: No \n*Type*: [HttpPathMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httppathmatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path" + }, + "Port": { + "type": "number" + }, + "Prefix": { + "markdownDescription": "Specifies the path to match requests with\\. This parameter must always start with `/`, which by itself matches all requests to the virtual service name\\. You can also match for path\\-based routing of requests\\. For example, if your virtual service name is `my-service.local` and you want the route to match requests to `my-service.local/metrics`, your prefix should be `/metrics`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", + "type": "string" + }, + "QueryParameters": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::Route.QueryParameter" + }, + "markdownDescription": "The client request query parameters to match on\\. \n*Required*: No \n*Type*: List of [QueryParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-queryparameter.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryParameters", + "type": "array" + }, + "Scheme": { + "markdownDescription": "The client request scheme to match on\\. Specify only one\\. Applicable only for HTTP2 routes\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `http | https` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scheme", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::Route.HttpTimeout": { + "additionalProperties": false, + "properties": { + "Idle": { + "$ref": "#/definitions/AWS::AppMesh::Route.Duration", + "markdownDescription": "An object that represents an idle timeout\\. An idle timeout bounds the amount of time that a connection may be idle\\. The default value is none\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Idle" + }, + "PerRequest": { + "$ref": "#/definitions/AWS::AppMesh::Route.Duration", + "markdownDescription": "An object that represents a per request timeout\\. The default value is 15 seconds\\. If you set a higher timeout, then make sure that the higher value is set for each App Mesh resource in a conversation\\. For example, if a virtual node backend uses a virtual router provider to route to another virtual node, then the timeout should be greater than 15 seconds for the source and destination virtual node and the route\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PerRequest" + } + }, + "type": "object" + }, + "AWS::AppMesh::Route.MatchRange": { + "additionalProperties": false, + "properties": { + "End": { + "markdownDescription": "The end of the range\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "End", + "type": "number" + }, + "Start": { + "markdownDescription": "The start of the range\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Start", + "type": "number" + } + }, + "required": [ + "End", + "Start" + ], + "type": "object" + }, + "AWS::AppMesh::Route.QueryParameter": { + "additionalProperties": false, + "properties": { + "Match": { + "$ref": "#/definitions/AWS::AppMesh::Route.HttpQueryParameterMatch", + "markdownDescription": "The query parameter to match on\\. \n*Required*: No \n*Type*: [HttpQueryParameterMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httpqueryparametermatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" + }, + "Name": { + "markdownDescription": "A name for the query parameter that will be matched on\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::AppMesh::Route.RouteSpec": { + "additionalProperties": false, + "properties": { + "GrpcRoute": { + "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRoute", + "markdownDescription": "An object that represents the specification of a gRPC route\\. \n*Required*: No \n*Type*: [GrpcRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GrpcRoute" + }, + "Http2Route": { + "$ref": "#/definitions/AWS::AppMesh::Route.HttpRoute", + "markdownDescription": "An object that represents the specification of an HTTP/2 route\\. \n*Required*: No \n*Type*: [HttpRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Http2Route" + }, + "HttpRoute": { + "$ref": "#/definitions/AWS::AppMesh::Route.HttpRoute", + "markdownDescription": "An object that represents the specification of an HTTP route\\. \n*Required*: No \n*Type*: [HttpRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpRoute" + }, + "Priority": { + "markdownDescription": "The priority for the route\\. Routes are matched based on the specified value, where 0 is the highest priority\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", + "type": "number" + }, + "TcpRoute": { + "$ref": "#/definitions/AWS::AppMesh::Route.TcpRoute", + "markdownDescription": "An object that represents the specification of a TCP route\\. \n*Required*: No \n*Type*: [TcpRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcproute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TcpRoute" + } + }, + "type": "object" + }, + "AWS::AppMesh::Route.TcpRoute": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::AppMesh::Route.TcpRouteAction", + "markdownDescription": "The action to take if a match is determined\\. \n*Required*: Yes \n*Type*: [TcpRouteAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcprouteaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" + }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::Route.TcpRouteMatch" + }, + "Timeout": { + "$ref": "#/definitions/AWS::AppMesh::Route.TcpTimeout", + "markdownDescription": "An object that represents types of timeouts\\. \n*Required*: No \n*Type*: [TcpTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcptimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::AppMesh::Route.TcpRouteAction": { + "additionalProperties": false, + "properties": { + "WeightedTargets": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::Route.WeightedTarget" + }, + "markdownDescription": "An object that represents the targets that traffic is routed to when a request matches the route\\. \n*Required*: Yes \n*Type*: List of [WeightedTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-weightedtarget.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WeightedTargets", + "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", + "markdownDescription": "An object that represents an idle timeout\\. An idle timeout bounds the amount of time that a connection may be idle\\. The default value is none\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Idle" + } + }, + "type": "object" + }, + "AWS::AppMesh::Route.WeightedTarget": { + "additionalProperties": false, + "properties": { + "Port": { + "type": "number" + }, + "VirtualNode": { + "markdownDescription": "The virtual node to associate with the weighted target\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualNode", + "type": "string" + }, + "Weight": { + "markdownDescription": "The relative weight of the weighted target\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the service mesh that the virtual gateway resides in\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshName", + "type": "string" + }, + "MeshOwner": { + "markdownDescription": "The AWS IAM account ID of the service mesh owner\\. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account\\. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshOwner", + "type": "string" + }, + "Spec": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewaySpec", + "markdownDescription": "The specifications of the virtual gateway\\. \n*Required*: Yes \n*Type*: [VirtualGatewaySpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayspec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Spec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Optional metadata that you can apply to the virtual gateway to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VirtualGatewayName": { + "markdownDescription": "The name of the virtual gateway\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "The values sent must match the specified values exactly\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", + "type": "array" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.SubjectAlternativeNames": { + "additionalProperties": false, + "properties": { + "Match": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.SubjectAlternativeNameMatchers", + "markdownDescription": "An object that represents the criteria for determining a SANs match\\. \n*Required*: Yes \n*Type*: [SubjectAlternativeNameMatchers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-subjectalternativenamematchers.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" + } + }, + "required": [ + "Match" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayAccessLog": { + "additionalProperties": false, + "properties": { + "File": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayFileAccessLog", + "markdownDescription": "The file object to send virtual gateway access logs to\\. \n*Required*: No \n*Type*: [VirtualGatewayFileAccessLog](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayfileaccesslog.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "File" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayBackendDefaults": { + "additionalProperties": false, + "properties": { + "ClientPolicy": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayClientPolicy", + "markdownDescription": "A reference to an object that represents a client policy\\. \n*Required*: No \n*Type*: [VirtualGatewayClientPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayclientpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientPolicy" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayClientPolicy": { + "additionalProperties": false, + "properties": { + "TLS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayClientPolicyTls", + "markdownDescription": "A reference to an object that represents a Transport Layer Security \\(TLS\\) client policy\\. \n*Required*: No \n*Type*: [VirtualGatewayClientPolicyTls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayclientpolicytls.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TLS" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayClientPolicyTls": { + "additionalProperties": false, + "properties": { + "Certificate": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayClientTlsCertificate", + "markdownDescription": "A reference to an object that represents a virtual gateway's client's Transport Layer Security \\(TLS\\) certificate\\. \n*Required*: No \n*Type*: [VirtualGatewayClientTlsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayclienttlscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate" + }, + "Enforce": { + "markdownDescription": "Whether the policy is enforced\\. The default is `True`, if a value isn't specified\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enforce", + "type": "boolean" + }, + "Ports": { + "items": { + "type": "number" + }, + "markdownDescription": "One or more ports that the policy is enforced for\\. \n*Required*: No \n*Type*: List of Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ports", + "type": "array" + }, + "Validation": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContext", + "markdownDescription": "A reference to an object that represents a Transport Layer Security \\(TLS\\) validation context\\. \n*Required*: Yes \n*Type*: [VirtualGatewayTlsValidationContext](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontext.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Validation" + } + }, + "required": [ + "Validation" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayClientTlsCertificate": { + "additionalProperties": false, + "properties": { + "File": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsFileCertificate", + "markdownDescription": "An object that represents a local file certificate\\. The certificate must meet specific requirements and you must have proxy authorization enabled\\. For more information, see [ Transport Layer Security \\(TLS\\) ](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html)\\. \n*Required*: No \n*Type*: [VirtualGatewayListenerTlsFileCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsfilecertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "File" + }, + "SDS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsSdsCertificate", + "markdownDescription": "A reference to an object that represents a virtual gateway's client's Secret Discovery Service certificate\\. \n*Required*: No \n*Type*: [VirtualGatewayListenerTlsSdsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlssdscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SDS" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayConnectionPool": { + "additionalProperties": false, + "properties": { + "GRPC": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayGrpcConnectionPool", + "markdownDescription": "An object that represents a type of connection pool\\. \n*Required*: No \n*Type*: [VirtualGatewayGrpcConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaygrpcconnectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GRPC" + }, + "HTTP": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHttpConnectionPool", + "markdownDescription": "An object that represents a type of connection pool\\. \n*Required*: No \n*Type*: [VirtualGatewayHttpConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhttpconnectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTP" + }, + "HTTP2": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHttp2ConnectionPool", + "markdownDescription": "An object that represents a type of connection pool\\. \n*Required*: No \n*Type*: [VirtualGatewayHttp2ConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhttp2connectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTP2" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayFileAccessLog": { + "additionalProperties": false, + "properties": { + "Format": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.LoggingFormat" + }, + "Path": { + "markdownDescription": "The file path to write access logs to\\. You can use `/dev/stdout` to send access logs to standard out and configure your Envoy container to use a log driver, such as `awslogs`, to export the access logs to a log storage service such as Amazon CloudWatch Logs\\. You can also specify a path in the Envoy container's file system to write the files to disk\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayGrpcConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "markdownDescription": "Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxRequests", + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayHealthCheckPolicy": { + "additionalProperties": false, + "properties": { + "HealthyThreshold": { + "markdownDescription": "The number of consecutive successful health checks that must occur before declaring the listener healthy\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthyThreshold", + "type": "number" + }, + "IntervalMillis": { + "markdownDescription": "The time period in milliseconds between each health check execution\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalMillis", + "type": "number" + }, + "Path": { + "markdownDescription": "The destination path for the health check request\\. This value is only used if the specified protocol is HTTP or HTTP/2\\. For any other protocol, this value is ignored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", + "type": "string" + }, + "Port": { + "markdownDescription": "The destination port for the health check request\\. This port must match the port defined in the [PortMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html#cfn-appmesh-virtualnode-listener-portmapping) for the listener\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + }, + "Protocol": { + "markdownDescription": "The protocol for the health check request\\. If you specify `grpc`, then your service must conform to the [GRPC Health Checking Protocol](https://github.com/grpc/grpc/blob/master/doc/health-checking.md)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `grpc | http | http2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "string" + }, + "TimeoutMillis": { + "markdownDescription": "The amount of time to wait when receiving a response from the health check, in milliseconds\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutMillis", + "type": "number" + }, + "UnhealthyThreshold": { + "markdownDescription": "The number of consecutive failed health checks that must occur before declaring a virtual gateway unhealthy\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnhealthyThreshold", + "type": "number" + } + }, + "required": [ + "HealthyThreshold", + "IntervalMillis", + "Protocol", + "TimeoutMillis", + "UnhealthyThreshold" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayHttp2ConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "markdownDescription": "Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxRequests", + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayHttpConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxConnections": { + "markdownDescription": "Maximum number of outbound TCP connections Envoy can establish concurrently with all hosts in upstream cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxConnections", + "type": "number" + }, + "MaxPendingRequests": { + "markdownDescription": "Number of overflowing requests after `max_connections` Envoy will queue to upstream cluster\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxPendingRequests", + "type": "number" + } + }, + "required": [ + "MaxConnections" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayListener": { + "additionalProperties": false, + "properties": { + "ConnectionPool": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayConnectionPool", + "markdownDescription": "The connection pool information for the listener\\. \n*Required*: No \n*Type*: [VirtualGatewayConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayconnectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionPool" + }, + "HealthCheck": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHealthCheckPolicy", + "markdownDescription": "The health check information for the listener\\. \n*Required*: No \n*Type*: [VirtualGatewayHealthCheckPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheck" + }, + "PortMapping": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayPortMapping", + "markdownDescription": "The port mapping information for the listener\\. \n*Required*: Yes \n*Type*: [VirtualGatewayPortMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayportmapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortMapping" + }, + "TLS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTls", + "markdownDescription": "A reference to an object that represents the Transport Layer Security \\(TLS\\) properties for the listener\\. \n*Required*: No \n*Type*: [VirtualGatewayListenerTls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertls.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TLS" + } + }, + "required": [ + "PortMapping" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTls": { + "additionalProperties": false, + "properties": { + "Certificate": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsCertificate", + "markdownDescription": "An object that represents a Transport Layer Security \\(TLS\\) certificate\\. \n*Required*: Yes \n*Type*: [VirtualGatewayListenerTlsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate" + }, + "Mode": { + "markdownDescription": "Specify one of the following modes\\. \n+ ****STRICT \u2013 Listener only accepts connections with TLS enabled\\. \n+ ****PERMISSIVE \u2013 Listener accepts connections with or without TLS enabled\\.\n+ ****DISABLED \u2013 Listener only accepts connections without TLS\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | PERMISSIVE | STRICT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", + "type": "string" + }, + "Validation": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsValidationContext", + "markdownDescription": "A reference to an object that represents a virtual gateway's listener's Transport Layer Security \\(TLS\\) validation context\\. \n*Required*: No \n*Type*: [VirtualGatewayListenerTlsValidationContext](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsvalidationcontext.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Validation" + } + }, + "required": [ + "Certificate", + "Mode" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsAcmCertificate": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the certificate\\. The certificate must meet specific requirements and you must have proxy authorization enabled\\. For more information, see [Transport Layer Security \\(TLS\\)](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#virtual-node-tls-prerequisites)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateArn", + "type": "string" + } + }, + "required": [ + "CertificateArn" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsCertificate": { + "additionalProperties": false, + "properties": { + "ACM": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsAcmCertificate", + "markdownDescription": "A reference to an object that represents an AWS Certificate Manager certificate\\. \n*Required*: No \n*Type*: [VirtualGatewayListenerTlsAcmCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsacmcertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ACM" + }, + "File": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsFileCertificate", + "markdownDescription": "A reference to an object that represents a local file certificate\\. \n*Required*: No \n*Type*: [VirtualGatewayListenerTlsFileCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsfilecertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "File" + }, + "SDS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsSdsCertificate", + "markdownDescription": "A reference to an object that represents a virtual gateway's listener's Secret Discovery Service certificate\\. \n*Required*: No \n*Type*: [VirtualGatewayListenerTlsSdsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlssdscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SDS" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsFileCertificate": { + "additionalProperties": false, + "properties": { + "CertificateChain": { + "markdownDescription": "The certificate chain for the certificate\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateChain", + "type": "string" + }, + "PrivateKey": { + "markdownDescription": "The private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateKey", + "type": "string" + } + }, + "required": [ + "CertificateChain", + "PrivateKey" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsSdsCertificate": { + "additionalProperties": false, + "properties": { + "SecretName": { + "markdownDescription": "A reference to an object that represents the name of the secret secret requested from the Secret Discovery Service provider representing Transport Layer Security \\(TLS\\) materials like a certificate or certificate chain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretName", + "type": "string" + } + }, + "required": [ + "SecretName" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsValidationContext": { + "additionalProperties": false, + "properties": { + "SubjectAlternativeNames": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.SubjectAlternativeNames", + "markdownDescription": "A reference to an object that represents the SANs for a virtual gateway listener's Transport Layer Security \\(TLS\\) validation context\\. \n*Required*: No \n*Type*: [SubjectAlternativeNames](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-subjectalternativenames.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubjectAlternativeNames" + }, + "Trust": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsValidationContextTrust", + "markdownDescription": "A reference to where to retrieve the trust chain when validating a peer\u2019s Transport Layer Security \\(TLS\\) certificate\\. \n*Required*: Yes \n*Type*: [VirtualGatewayListenerTlsValidationContextTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsvalidationcontexttrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Trust" + } + }, + "required": [ + "Trust" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsValidationContextTrust": { + "additionalProperties": false, + "properties": { + "File": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextFileTrust", + "markdownDescription": "An object that represents a Transport Layer Security \\(TLS\\) validation context trust for a local file\\. \n*Required*: No \n*Type*: [VirtualGatewayTlsValidationContextFileTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextfiletrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "File" + }, + "SDS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextSdsTrust", + "markdownDescription": "A reference to an object that represents a virtual gateway's listener's Transport Layer Security \\(TLS\\) Secret Discovery Service validation context trust\\. \n*Required*: No \n*Type*: [VirtualGatewayTlsValidationContextSdsTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextsdstrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SDS" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayLogging": { + "additionalProperties": false, + "properties": { + "AccessLog": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayAccessLog", + "markdownDescription": "The access log configuration\\. \n*Required*: No \n*Type*: [VirtualGatewayAccessLog](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayaccesslog.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessLog" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayPortMapping": { + "additionalProperties": false, + "properties": { + "Port": { + "markdownDescription": "The port used for the port mapping\\. Specify one protocol\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + }, + "Protocol": { + "markdownDescription": "The protocol used for the port mapping\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `grpc | http | http2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "string" + } + }, + "required": [ + "Port", + "Protocol" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewaySpec": { + "additionalProperties": false, + "properties": { + "BackendDefaults": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayBackendDefaults", + "markdownDescription": "A reference to an object that represents the defaults for backends\\. \n*Required*: No \n*Type*: [VirtualGatewayBackendDefaults](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaybackenddefaults.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackendDefaults" + }, + "Listeners": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListener" + }, + "markdownDescription": "The listeners that the mesh endpoint is expected to receive inbound traffic from\\. You can specify one listener\\. \n*Required*: Yes \n*Type*: List of [VirtualGatewayListener](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistener.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Listeners", + "type": "array" + }, + "Logging": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayLogging", + "markdownDescription": "An object that represents logging information\\. \n*Required*: No \n*Type*: [VirtualGatewayLogging](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylogging.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Logging" + } + }, + "required": [ + "Listeners" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContext": { + "additionalProperties": false, + "properties": { + "SubjectAlternativeNames": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.SubjectAlternativeNames", + "markdownDescription": "A reference to an object that represents the SANs for a virtual gateway's listener's Transport Layer Security \\(TLS\\) validation context\\. \n*Required*: No \n*Type*: [SubjectAlternativeNames](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-subjectalternativenames.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubjectAlternativeNames" + }, + "Trust": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextTrust", + "markdownDescription": "A reference to where to retrieve the trust chain when validating a peer\u2019s Transport Layer Security \\(TLS\\) certificate\\. \n*Required*: Yes \n*Type*: [VirtualGatewayTlsValidationContextTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontexttrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Trust" + } + }, + "required": [ + "Trust" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextAcmTrust": { + "additionalProperties": false, + "properties": { + "CertificateAuthorityArns": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more ACM Amazon Resource Name \\(ARN\\)s\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateAuthorityArns", + "type": "array" + } + }, + "required": [ + "CertificateAuthorityArns" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextFileTrust": { + "additionalProperties": false, + "properties": { + "CertificateChain": { + "markdownDescription": "The certificate trust chain for a certificate stored on the file system of the virtual node that the proxy is running on\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateChain", + "type": "string" + } + }, + "required": [ + "CertificateChain" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextSdsTrust": { + "additionalProperties": false, + "properties": { + "SecretName": { + "markdownDescription": "A reference to an object that represents the name of the secret for a virtual gateway's Transport Layer Security \\(TLS\\) Secret Discovery Service validation context trust\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretName", + "type": "string" + } + }, + "required": [ + "SecretName" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextTrust": { + "additionalProperties": false, + "properties": { + "ACM": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextAcmTrust", + "markdownDescription": "A reference to an object that represents a Transport Layer Security \\(TLS\\) validation context trust for an AWS Certificate Manager certificate\\. \n*Required*: No \n*Type*: [VirtualGatewayTlsValidationContextAcmTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextacmtrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ACM" + }, + "File": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextFileTrust", + "markdownDescription": "An object that represents a Transport Layer Security \\(TLS\\) validation context trust for a local file\\. \n*Required*: No \n*Type*: [VirtualGatewayTlsValidationContextFileTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextfiletrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "File" + }, + "SDS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextSdsTrust", + "markdownDescription": "A reference to an object that represents a virtual gateway's Transport Layer Security \\(TLS\\) Secret Discovery Service validation context trust\\. \n*Required*: No \n*Type*: [VirtualGatewayTlsValidationContextSdsTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextsdstrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SDS" + } + }, + "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": { + "markdownDescription": "The name of the service mesh to create the virtual node in\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshName", + "type": "string" + }, + "MeshOwner": { + "markdownDescription": "The AWS IAM account ID of the service mesh owner\\. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh\\. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshOwner", + "type": "string" + }, + "Spec": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeSpec", + "markdownDescription": "The virtual node specification to apply\\. \n*Required*: Yes \n*Type*: [VirtualNodeSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodespec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Spec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Optional metadata that you can apply to the virtual node to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VirtualNodeName": { + "markdownDescription": "The name to use for the virtual node\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "The file object to send virtual node access logs to\\. \n*Required*: No \n*Type*: [FileAccessLog](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-fileaccesslog.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "File" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.AwsCloudMapInstanceAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The name of an AWS Cloud Map service instance attribute key\\. Any AWS Cloud Map service instance that contains the specified key and value is returned\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9!-~]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of an AWS Cloud Map service instance attribute key\\. Any AWS Cloud Map service instance that contains the specified key and value is returned\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `^([a-zA-Z0-9!-~][ a-zA-Z0-9!-~]*){0,1}[a-zA-Z0-9!-~]{0,1}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.AwsCloudMapServiceDiscovery": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.AwsCloudMapInstanceAttribute" + }, + "markdownDescription": "A string map that contains attributes with values that you can use to filter instances by any custom attribute that you specified when you registered the instance\\. Only instances that match all of the specified key/value pairs will be returned\\. \n*Required*: No \n*Type*: List of [AwsCloudMapInstanceAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-awscloudmapinstanceattribute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attributes", + "type": "array" + }, + "IpPreference": { + "type": "string" + }, + "NamespaceName": { + "markdownDescription": "The name of the AWS Cloud Map namespace to use\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NamespaceName", + "type": "string" + }, + "ServiceName": { + "markdownDescription": "The name of the AWS Cloud Map service to use\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceName", + "type": "string" + } + }, + "required": [ + "NamespaceName", + "ServiceName" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.Backend": { + "additionalProperties": false, + "properties": { + "VirtualService": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualServiceBackend", + "markdownDescription": "Specifies a virtual service to use as a backend\\. \n*Required*: No \n*Type*: [VirtualServiceBackend](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualservicebackend.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualService" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.BackendDefaults": { + "additionalProperties": false, + "properties": { + "ClientPolicy": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ClientPolicy", + "markdownDescription": "A reference to an object that represents a client policy\\. \n*Required*: No \n*Type*: [ClientPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clientpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientPolicy" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ClientPolicy": { + "additionalProperties": false, + "properties": { + "TLS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ClientPolicyTls", + "markdownDescription": "A reference to an object that represents a Transport Layer Security \\(TLS\\) client policy\\. \n*Required*: No \n*Type*: [ClientPolicyTls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clientpolicytls.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TLS" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ClientPolicyTls": { + "additionalProperties": false, + "properties": { + "Certificate": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ClientTlsCertificate", + "markdownDescription": "A reference to an object that represents a client's TLS certificate\\. \n*Required*: No \n*Type*: [ClientTlsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clienttlscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate" + }, + "Enforce": { + "markdownDescription": "Whether the policy is enforced\\. The default is `True`, if a value isn't specified\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enforce", + "type": "boolean" + }, + "Ports": { + "items": { + "type": "number" + }, + "markdownDescription": "One or more ports that the policy is enforced for\\. \n*Required*: No \n*Type*: List of Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ports", + "type": "array" + }, + "Validation": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContext", + "markdownDescription": "A reference to an object that represents a TLS validation context\\. \n*Required*: Yes \n*Type*: [TlsValidationContext](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontext.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Validation" + } + }, + "required": [ + "Validation" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ClientTlsCertificate": { + "additionalProperties": false, + "properties": { + "File": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsFileCertificate", + "markdownDescription": "An object that represents a local file certificate\\. The certificate must meet specific requirements and you must have proxy authorization enabled\\. For more information, see [Transport Layer Security \\(TLS\\)](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html)\\. \n*Required*: No \n*Type*: [ListenerTlsFileCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsfilecertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "File" + }, + "SDS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsSdsCertificate", + "markdownDescription": "A reference to an object that represents a client's TLS Secret Discovery Service certificate\\. \n*Required*: No \n*Type*: [ListenerTlsSdsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlssdscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SDS" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.DnsServiceDiscovery": { + "additionalProperties": false, + "properties": { + "Hostname": { + "markdownDescription": "Specifies the DNS service discovery hostname for the virtual node\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Hostname", + "type": "string" + }, + "IpPreference": { + "type": "string" + }, + "ResponseType": { + "markdownDescription": "Specifies the DNS response type for the virtual node\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ENDPOINTS | LOADBALANCER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseType", + "type": "string" + } + }, + "required": [ + "Hostname" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.Duration": { + "additionalProperties": false, + "properties": { + "Unit": { + "markdownDescription": "A unit of time\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ms | s` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", + "type": "string" + }, + "Value": { + "markdownDescription": "A number of time units\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.FileAccessLog": { + "additionalProperties": false, + "properties": { + "Format": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.LoggingFormat" + }, + "Path": { + "markdownDescription": "The file path to write access logs to\\. You can use `/dev/stdout` to send access logs to standard out and configure your Envoy container to use a log driver, such as `awslogs`, to export the access logs to a log storage service such as Amazon CloudWatch Logs\\. You can also specify a path in the Envoy container's file system to write the files to disk\\. \nThe Envoy process must have write permissions to the path that you specify here\\. Otherwise, Envoy fails to bootstrap properly\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.GrpcTimeout": { + "additionalProperties": false, + "properties": { + "Idle": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration", + "markdownDescription": "An object that represents an idle timeout\\. An idle timeout bounds the amount of time that a connection may be idle\\. The default value is none\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Idle" + }, + "PerRequest": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration", + "markdownDescription": "An object that represents a per request timeout\\. The default value is 15 seconds\\. If you set a higher timeout, then make sure that the higher value is set for each App Mesh resource in a conversation\\. For example, if a virtual node backend uses a virtual router provider to route to another virtual node, then the timeout should be greater than 15 seconds for the source and destination virtual node and the route\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PerRequest" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.HealthCheck": { + "additionalProperties": false, + "properties": { + "HealthyThreshold": { + "markdownDescription": "The number of consecutive successful health checks that must occur before declaring listener healthy\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthyThreshold", + "type": "number" + }, + "IntervalMillis": { + "markdownDescription": "The time period in milliseconds between each health check execution\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalMillis", + "type": "number" + }, + "Path": { + "markdownDescription": "The destination path for the health check request\\. This value is only used if the specified protocol is HTTP or HTTP/2\\. For any other protocol, this value is ignored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", + "type": "string" + }, + "Port": { + "markdownDescription": "The destination port for the health check request\\. This port must match the port defined in the [PortMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html#cfn-appmesh-virtualnode-listener-portmapping) for the listener\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + }, + "Protocol": { + "markdownDescription": "The protocol for the health check request\\. If you specify `grpc`, then your service must conform to the [GRPC Health Checking Protocol](https://github.com/grpc/grpc/blob/master/doc/health-checking.md)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `grpc | http | http2 | tcp` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "string" + }, + "TimeoutMillis": { + "markdownDescription": "The amount of time to wait when receiving a response from the health check, in milliseconds\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutMillis", + "type": "number" + }, + "UnhealthyThreshold": { + "markdownDescription": "The number of consecutive failed health checks that must occur before declaring a virtual node unhealthy\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "An object that represents an idle timeout\\. An idle timeout bounds the amount of time that a connection may be idle\\. The default value is none\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Idle" + }, + "PerRequest": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration", + "markdownDescription": "An object that represents a per request timeout\\. The default value is 15 seconds\\. If you set a higher timeout, then make sure that the higher value is set for each App Mesh resource in a conversation\\. For example, if a virtual node backend uses a virtual router provider to route to another virtual node, then the timeout should be greater than 15 seconds for the source and destination virtual node and the route\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PerRequest" + } + }, + "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", + "markdownDescription": "The connection pool information for the listener\\. \n*Required*: No \n*Type*: [VirtualNodeConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodeconnectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionPool" + }, + "HealthCheck": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.HealthCheck", + "markdownDescription": "The health check information for the listener\\. \n*Required*: No \n*Type*: [HealthCheck](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-healthcheck.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheck" + }, + "OutlierDetection": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.OutlierDetection", + "markdownDescription": "The outlier detection information for the listener\\. \n*Required*: No \n*Type*: [OutlierDetection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-outlierdetection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutlierDetection" + }, + "PortMapping": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.PortMapping", + "markdownDescription": "The port mapping information for the listener\\. \n*Required*: Yes \n*Type*: [PortMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-portmapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortMapping" + }, + "TLS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTls", + "markdownDescription": "A reference to an object that represents the Transport Layer Security \\(TLS\\) properties for a listener\\. \n*Required*: No \n*Type*: [ListenerTls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertls.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TLS" + }, + "Timeout": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTimeout", + "markdownDescription": "An object that represents timeouts for different protocols\\. \n*Required*: No \n*Type*: [ListenerTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout" + } + }, + "required": [ + "PortMapping" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ListenerTimeout": { + "additionalProperties": false, + "properties": { + "GRPC": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.GrpcTimeout", + "markdownDescription": "An object that represents types of timeouts\\. \n*Required*: No \n*Type*: [GrpcTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-grpctimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GRPC" + }, + "HTTP": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.HttpTimeout", + "markdownDescription": "An object that represents types of timeouts\\. \n*Required*: No \n*Type*: [HttpTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-httptimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTP" + }, + "HTTP2": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.HttpTimeout", + "markdownDescription": "An object that represents types of timeouts\\. \n*Required*: No \n*Type*: [HttpTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-httptimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTP2" + }, + "TCP": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TcpTimeout", + "markdownDescription": "An object that represents types of timeouts\\. \n*Required*: No \n*Type*: [TcpTimeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tcptimeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TCP" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ListenerTls": { + "additionalProperties": false, + "properties": { + "Certificate": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsCertificate", + "markdownDescription": "A reference to an object that represents a listener's Transport Layer Security \\(TLS\\) certificate\\. \n*Required*: Yes \n*Type*: [ListenerTlsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate" + }, + "Mode": { + "markdownDescription": "Specify one of the following modes\\. \n+ ****STRICT \u2013 Listener only accepts connections with TLS enabled\\. \n+ ****PERMISSIVE \u2013 Listener accepts connections with or without TLS enabled\\.\n+ ****DISABLED \u2013 Listener only accepts connections without TLS\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | PERMISSIVE | STRICT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", + "type": "string" + }, + "Validation": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsValidationContext", + "markdownDescription": "A reference to an object that represents a listener's Transport Layer Security \\(TLS\\) validation context\\. \n*Required*: No \n*Type*: [ListenerTlsValidationContext](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsvalidationcontext.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Validation" + } + }, + "required": [ + "Certificate", + "Mode" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ListenerTlsAcmCertificate": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the certificate\\. The certificate must meet specific requirements and you must have proxy authorization enabled\\. For more information, see [Transport Layer Security \\(TLS\\)](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#virtual-node-tls-prerequisites)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateArn", + "type": "string" + } + }, + "required": [ + "CertificateArn" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ListenerTlsCertificate": { + "additionalProperties": false, + "properties": { + "ACM": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsAcmCertificate", + "markdownDescription": "A reference to an object that represents an AWS Certificate Manager certificate\\. \n*Required*: No \n*Type*: [ListenerTlsAcmCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsacmcertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ACM" + }, + "File": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsFileCertificate", + "markdownDescription": "A reference to an object that represents a local file certificate\\. \n*Required*: No \n*Type*: [ListenerTlsFileCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsfilecertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "File" + }, + "SDS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsSdsCertificate", + "markdownDescription": "A reference to an object that represents a listener's Secret Discovery Service certificate\\. \n*Required*: No \n*Type*: [ListenerTlsSdsCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlssdscertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SDS" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ListenerTlsFileCertificate": { + "additionalProperties": false, + "properties": { + "CertificateChain": { + "markdownDescription": "The certificate chain for the certificate\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateChain", + "type": "string" + }, + "PrivateKey": { + "markdownDescription": "The private key for a certificate stored on the file system of the virtual node that the proxy is running on\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateKey", + "type": "string" + } + }, + "required": [ + "CertificateChain", + "PrivateKey" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ListenerTlsSdsCertificate": { + "additionalProperties": false, + "properties": { + "SecretName": { + "markdownDescription": "A reference to an object that represents the name of the secret requested from the Secret Discovery Service provider representing Transport Layer Security \\(TLS\\) materials like a certificate or certificate chain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretName", + "type": "string" + } + }, + "required": [ + "SecretName" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ListenerTlsValidationContext": { + "additionalProperties": false, + "properties": { + "SubjectAlternativeNames": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.SubjectAlternativeNames", + "markdownDescription": "A reference to an object that represents the SANs for a listener's Transport Layer Security \\(TLS\\) validation context\\. \n*Required*: No \n*Type*: [SubjectAlternativeNames](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-subjectalternativenames.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubjectAlternativeNames" + }, + "Trust": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsValidationContextTrust", + "markdownDescription": "A reference to where to retrieve the trust chain when validating a peer\u2019s Transport Layer Security \\(TLS\\) certificate\\. \n*Required*: Yes \n*Type*: [ListenerTlsValidationContextTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsvalidationcontexttrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Trust" + } + }, + "required": [ + "Trust" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ListenerTlsValidationContextTrust": { + "additionalProperties": false, + "properties": { + "File": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextFileTrust", + "markdownDescription": "An object that represents a Transport Layer Security \\(TLS\\) validation context trust for a local file\\. \n*Required*: No \n*Type*: [TlsValidationContextFileTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextfiletrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "File" + }, + "SDS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextSdsTrust", + "markdownDescription": "A reference to an object that represents a listener's Transport Layer Security \\(TLS\\) Secret Discovery Service validation context trust\\. \n*Required*: No \n*Type*: [TlsValidationContextSdsTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextsdstrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SDS" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.Logging": { + "additionalProperties": false, + "properties": { + "AccessLog": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.AccessLog", + "markdownDescription": "The access log configuration for a virtual node\\. \n*Required*: No \n*Type*: [AccessLog](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-accesslog.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The base amount of time for which a host is ejected\\. \n*Required*: Yes \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaseEjectionDuration" + }, + "Interval": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration", + "markdownDescription": "The time interval between ejection sweep analysis\\. \n*Required*: Yes \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Interval" + }, + "MaxEjectionPercent": { + "markdownDescription": "Maximum percentage of hosts in load balancing pool for upstream service that can be ejected\\. Will eject at least one host regardless of the value\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxEjectionPercent", + "type": "number" + }, + "MaxServerErrors": { + "markdownDescription": "Number of consecutive `5xx` errors required for ejection\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxServerErrors", + "type": "number" + } + }, + "required": [ + "BaseEjectionDuration", + "Interval", + "MaxEjectionPercent", + "MaxServerErrors" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.PortMapping": { + "additionalProperties": false, + "properties": { + "Port": { + "markdownDescription": "The port used for the port mapping\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + }, + "Protocol": { + "markdownDescription": "The protocol used for the port mapping\\. Specify `http`, `http2`, `grpc`, or `tcp`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `grpc | http | http2 | tcp` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "string" + } + }, + "required": [ + "Port", + "Protocol" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ServiceDiscovery": { + "additionalProperties": false, + "properties": { + "AWSCloudMap": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.AwsCloudMapServiceDiscovery", + "markdownDescription": "Specifies any AWS Cloud Map information for the virtual node\\. \n*Required*: No \n*Type*: [AwsCloudMapServiceDiscovery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-awscloudmapservicediscovery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AWSCloudMap" + }, + "DNS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.DnsServiceDiscovery", + "markdownDescription": "Specifies the DNS information for the virtual node\\. \n*Required*: No \n*Type*: [DnsServiceDiscovery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-dnsservicediscovery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DNS" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.SubjectAlternativeNameMatchers": { + "additionalProperties": false, + "properties": { + "Exact": { + "items": { + "type": "string" + }, + "markdownDescription": "The values sent must match the specified values exactly\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exact", + "type": "array" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.SubjectAlternativeNames": { + "additionalProperties": false, + "properties": { + "Match": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.SubjectAlternativeNameMatchers", + "markdownDescription": "An object that represents the criteria for determining a SANs match\\. \n*Required*: Yes \n*Type*: [SubjectAlternativeNameMatchers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-subjectalternativenamematchers.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Match" + } + }, + "required": [ + "Match" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.TcpTimeout": { + "additionalProperties": false, + "properties": { + "Idle": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration", + "markdownDescription": "An object that represents an idle timeout\\. An idle timeout bounds the amount of time that a connection may be idle\\. The default value is none\\. \n*Required*: No \n*Type*: [Duration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Idle" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.TlsValidationContext": { + "additionalProperties": false, + "properties": { + "SubjectAlternativeNames": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.SubjectAlternativeNames", + "markdownDescription": "A reference to an object that represents the SANs for a Transport Layer Security \\(TLS\\) validation context\\. \n*Required*: No \n*Type*: [SubjectAlternativeNames](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-subjectalternativenames.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubjectAlternativeNames" + }, + "Trust": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextTrust", + "markdownDescription": "A reference to where to retrieve the trust chain when validating a peer\u2019s Transport Layer Security \\(TLS\\) certificate\\. \n*Required*: Yes \n*Type*: [TlsValidationContextTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontexttrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Trust" + } + }, + "required": [ + "Trust" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.TlsValidationContextAcmTrust": { + "additionalProperties": false, + "properties": { + "CertificateAuthorityArns": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more ACM Amazon Resource Name \\(ARN\\)s\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateAuthorityArns", + "type": "array" + } + }, + "required": [ + "CertificateAuthorityArns" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.TlsValidationContextFileTrust": { + "additionalProperties": false, + "properties": { + "CertificateChain": { + "markdownDescription": "The certificate trust chain for a certificate stored on the file system of the virtual node that the proxy is running on\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateChain", + "type": "string" + } + }, + "required": [ + "CertificateChain" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.TlsValidationContextSdsTrust": { + "additionalProperties": false, + "properties": { + "SecretName": { + "markdownDescription": "A reference to an object that represents the name of the secret for a Transport Layer Security \\(TLS\\) Secret Discovery Service validation context trust\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretName", + "type": "string" + } + }, + "required": [ + "SecretName" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.TlsValidationContextTrust": { + "additionalProperties": false, + "properties": { + "ACM": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextAcmTrust", + "markdownDescription": "A reference to an object that represents a Transport Layer Security \\(TLS\\) validation context trust for an AWS Certificate Manager certificate\\. \n*Required*: No \n*Type*: [TlsValidationContextAcmTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextacmtrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ACM" + }, + "File": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextFileTrust", + "markdownDescription": "An object that represents a Transport Layer Security \\(TLS\\) validation context trust for a local file\\. \n*Required*: No \n*Type*: [TlsValidationContextFileTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextfiletrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "File" + }, + "SDS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextSdsTrust", + "markdownDescription": "A reference to an object that represents a Transport Layer Security \\(TLS\\) Secret Discovery Service validation context trust\\. \n*Required*: No \n*Type*: [TlsValidationContextSdsTrust](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextsdstrust.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SDS" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeConnectionPool": { + "additionalProperties": false, + "properties": { + "GRPC": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeGrpcConnectionPool", + "markdownDescription": "An object that represents a type of connection pool\\. \n*Required*: No \n*Type*: [VirtualNodeGrpcConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodegrpcconnectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GRPC" + }, + "HTTP": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeHttpConnectionPool", + "markdownDescription": "An object that represents a type of connection pool\\. \n*Required*: No \n*Type*: [VirtualNodeHttpConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodehttpconnectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTP" + }, + "HTTP2": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeHttp2ConnectionPool", + "markdownDescription": "An object that represents a type of connection pool\\. \n*Required*: No \n*Type*: [VirtualNodeHttp2ConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodehttp2connectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTP2" + }, + "TCP": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeTcpConnectionPool", + "markdownDescription": "An object that represents a type of connection pool\\. \n*Required*: No \n*Type*: [VirtualNodeTcpConnectionPool](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodetcpconnectionpool.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TCP" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeGrpcConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "markdownDescription": "Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxRequests", + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeHttp2ConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "markdownDescription": "Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxRequests", + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeHttpConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxConnections": { + "markdownDescription": "Maximum number of outbound TCP connections Envoy can establish concurrently with all hosts in upstream cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxConnections", + "type": "number" + }, + "MaxPendingRequests": { + "markdownDescription": "Number of overflowing requests after `max_connections` Envoy will queue to upstream cluster\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxPendingRequests", + "type": "number" + } + }, + "required": [ + "MaxConnections" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeSpec": { + "additionalProperties": false, + "properties": { + "BackendDefaults": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.BackendDefaults", + "markdownDescription": "A reference to an object that represents the defaults for backends\\. \n*Required*: No \n*Type*: [BackendDefaults](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-backenddefaults.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackendDefaults" + }, + "Backends": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Backend" + }, + "markdownDescription": "The backends that the virtual node is expected to send outbound traffic to\\. \n*Required*: No \n*Type*: List of [Backend](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-backend.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Backends", + "type": "array" + }, + "Listeners": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Listener" + }, + "markdownDescription": "The listener that the virtual node is expected to receive inbound traffic from\\. You can specify one listener\\. \n*Required*: No \n*Type*: List of [Listener](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Listeners", + "type": "array" + }, + "Logging": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Logging", + "markdownDescription": "The inbound and outbound access logging information for the virtual node\\. \n*Required*: No \n*Type*: [Logging](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-logging.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Logging" + }, + "ServiceDiscovery": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ServiceDiscovery", + "markdownDescription": "The service discovery information for the virtual node\\. If your virtual node does not expect ingress traffic, you can omit this parameter\\. If you specify a `listener`, then you must specify service discovery information\\. \n*Required*: No \n*Type*: [ServiceDiscovery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-servicediscovery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceDiscovery" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeTcpConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxConnections": { + "markdownDescription": "Maximum number of outbound TCP connections Envoy can establish concurrently with all hosts in upstream cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxConnections", + "type": "number" + } + }, + "required": [ + "MaxConnections" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualServiceBackend": { + "additionalProperties": false, + "properties": { + "ClientPolicy": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ClientPolicy", + "markdownDescription": "A reference to an object that represents the client policy for a backend\\. \n*Required*: No \n*Type*: [ClientPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clientpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientPolicy" + }, + "VirtualServiceName": { + "markdownDescription": "The name of the virtual service that is acting as a virtual node backend\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the service mesh to create the virtual router in\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshName", + "type": "string" + }, + "MeshOwner": { + "markdownDescription": "The AWS IAM account ID of the service mesh owner\\. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh\\. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshOwner", + "type": "string" + }, + "Spec": { + "$ref": "#/definitions/AWS::AppMesh::VirtualRouter.VirtualRouterSpec", + "markdownDescription": "The virtual router specification to apply\\. \n*Required*: Yes \n*Type*: [VirtualRouterSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-virtualrouterspec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Spec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Optional metadata that you can apply to the virtual router to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VirtualRouterName": { + "markdownDescription": "The name to use for the virtual router\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The port used for the port mapping\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + }, + "Protocol": { + "markdownDescription": "The protocol used for the port mapping\\. Specify one protocol\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `grpc | http | http2 | tcp` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "string" + } + }, + "required": [ + "Port", + "Protocol" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualRouter.VirtualRouterListener": { + "additionalProperties": false, + "properties": { + "PortMapping": { + "$ref": "#/definitions/AWS::AppMesh::VirtualRouter.PortMapping", + "markdownDescription": "The port mapping information for the listener\\. \n*Required*: Yes \n*Type*: [PortMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-portmapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortMapping" + } + }, + "required": [ + "PortMapping" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualRouter.VirtualRouterSpec": { + "additionalProperties": false, + "properties": { + "Listeners": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualRouter.VirtualRouterListener" + }, + "markdownDescription": "The listeners that the virtual router is expected to receive inbound traffic from\\. You can specify one listener\\. \n*Required*: Yes \n*Type*: List of [VirtualRouterListener](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-virtualrouterlistener.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Listeners", + "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": { + "markdownDescription": "The name of the service mesh to create the virtual service in\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshName", + "type": "string" + }, + "MeshOwner": { + "markdownDescription": "The AWS IAM account ID of the service mesh owner\\. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh\\. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeshOwner", + "type": "string" + }, + "Spec": { + "$ref": "#/definitions/AWS::AppMesh::VirtualService.VirtualServiceSpec", + "markdownDescription": "The virtual service specification to apply\\. \n*Required*: Yes \n*Type*: [VirtualServiceSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualservicespec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Spec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Optional metadata that you can apply to the virtual service to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VirtualServiceName": { + "markdownDescription": "The name to use for the virtual service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the virtual node that is acting as a service provider\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualNodeName", + "type": "string" + } + }, + "required": [ + "VirtualNodeName" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualService.VirtualRouterServiceProvider": { + "additionalProperties": false, + "properties": { + "VirtualRouterName": { + "markdownDescription": "The name of the virtual router that is acting as a service provider\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualRouterName", + "type": "string" + } + }, + "required": [ + "VirtualRouterName" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualService.VirtualServiceProvider": { + "additionalProperties": false, + "properties": { + "VirtualNode": { + "$ref": "#/definitions/AWS::AppMesh::VirtualService.VirtualNodeServiceProvider", + "markdownDescription": "The virtual node associated with a virtual service\\. \n*Required*: No \n*Type*: [VirtualNodeServiceProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualnodeserviceprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualNode" + }, + "VirtualRouter": { + "$ref": "#/definitions/AWS::AppMesh::VirtualService.VirtualRouterServiceProvider", + "markdownDescription": "The virtual router associated with a virtual service\\. \n*Required*: No \n*Type*: [VirtualRouterServiceProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualrouterserviceprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualRouter" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualService.VirtualServiceSpec": { + "additionalProperties": false, + "properties": { + "Provider": { + "$ref": "#/definitions/AWS::AppMesh::VirtualService.VirtualServiceProvider", + "markdownDescription": "The App Mesh object that is acting as the provider for a virtual service\\. You can specify a single virtual node or virtual router\\. \n*Required*: No \n*Type*: [VirtualServiceProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualserviceprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Provider" + } + }, + "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an App Runner automatic scaling configuration resource that you want to associate with the App Runner service\\. If not provided, App Runner associates the latest revision of a default auto scaling configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1011` \n*Pattern*: `arn:aws(-[\\w]+)*:[a-z0-9-\\\\.]{0,63}:[a-z0-9-\\\\.]{0,63}:[0-9]{12}:(\\w|\\/|-){1,1011}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoScalingConfigurationArn", + "type": "string" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.EncryptionConfiguration", + "markdownDescription": "An optional custom encryption key that App Runner uses to encrypt the copy of your source repository that it maintains and your service logs\\. By default, App Runner uses an AWS managed key\\. \n*Required*: No \n*Type*: [EncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-encryptionconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncryptionConfiguration" + }, + "HealthCheckConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.HealthCheckConfiguration", + "markdownDescription": "The settings for the health check that AWS App Runner performs to monitor the health of the App Runner service\\. \n*Required*: No \n*Type*: [HealthCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-healthcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckConfiguration" + }, + "InstanceConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.InstanceConfiguration", + "markdownDescription": "The runtime configuration of instances \\(scaling units\\) of the App Runner service\\. \n*Required*: No \n*Type*: [InstanceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-instanceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceConfiguration" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.NetworkConfiguration", + "markdownDescription": "Configuration settings related to network traffic of the web application that the App Runner service runs\\. \n*Required*: No \n*Type*: [NetworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-networkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkConfiguration" + }, + "ObservabilityConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.ServiceObservabilityConfiguration" + }, + "ServiceName": { + "markdownDescription": "A name for the App Runner service\\. It must be unique across all the running App Runner services in your AWS account in the AWS Region\\. \nIf you don't specify a name, AWS CloudFormation generates a name for your Service\\. \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `40` \n*Pattern*: `[A-Za-z0-9][A-Za-z0-9-_]{3,39}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceName", + "type": "string" + }, + "SourceConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.SourceConfiguration", + "markdownDescription": "The source to deploy to the App Runner service\\. It can be a code or an image repository\\. \n*Required*: Yes \n*Type*: [SourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-sourceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An optional list of metadata items that you can associate with the App Runner service resource\\. A tag is a key\\-value pair\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that grants the App Runner service access to a source repository\\. It's required for ECR image repositories \\(but not for ECR Public repositories\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `29` \n*Maximum*: `1024` \n*Pattern*: `arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):iam::[0-9]{12}:(role|role\\/service-role)\\/[\\w+=,.@\\-/]{1,1000}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessRoleArn", + "type": "string" + }, + "ConnectionArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the App Runner connection that enables the App Runner service to connect to a source repository\\. It's required for GitHub code repositories\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1011` \n*Pattern*: `arn:aws(-[\\w]+)*:[a-z0-9-\\\\.]{0,63}:[a-z0-9-\\\\.]{0,63}:[0-9]{12}:(\\w|\\/|-){1,1011}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppRunner::Service.CodeConfiguration": { + "additionalProperties": false, + "properties": { + "CodeConfigurationValues": { + "$ref": "#/definitions/AWS::AppRunner::Service.CodeConfigurationValues", + "markdownDescription": "The basic configuration for building and running the App Runner service\\. Use it to quickly launch an App Runner service without providing a `apprunner.yaml` file in the source code repository \\(or ignoring the file if it exists\\)\\. \n*Required*: No \n*Type*: [CodeConfigurationValues](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-codeconfigurationvalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodeConfigurationValues" + }, + "ConfigurationSource": { + "markdownDescription": "The source of the App Runner configuration\\. Values are interpreted as follows: \n+ `REPOSITORY` \u2013 App Runner reads configuration values from the `apprunner.yaml` file in the source code repository and ignores `CodeConfigurationValues`\\.\n+ `API` \u2013 App Runner uses configuration values provided in `CodeConfigurationValues` and ignores the `apprunner.yaml` file in the source code repository\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `API | REPOSITORY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfigurationSource", + "type": "string" + } + }, + "required": [ + "ConfigurationSource" + ], + "type": "object" + }, + "AWS::AppRunner::Service.CodeConfigurationValues": { + "additionalProperties": false, + "properties": { + "BuildCommand": { + "markdownDescription": "The command App Runner runs to build your application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BuildCommand", + "type": "string" + }, + "Port": { + "markdownDescription": "The port that your application listens to in the container\\. \nDefault: `8080` \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `51200` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "string" + }, + "Runtime": { + "markdownDescription": "A runtime environment type for building and running an App Runner service\\. It represents a programming language runtime\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CORRETTO_11 | CORRETTO_8 | NODEJS_12 | NODEJS_14 | PYTHON_3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Runtime", + "type": "string" + }, + "RuntimeEnvironmentSecrets": { + "items": { + "$ref": "#/definitions/AWS::AppRunner::Service.KeyValuePair" + }, + "type": "array" + }, + "RuntimeEnvironmentVariables": { + "items": { + "$ref": "#/definitions/AWS::AppRunner::Service.KeyValuePair" + }, + "markdownDescription": "The environment variables that are available to your running App Runner service\\. An array of key\\-value pairs\\. Keys with a prefix of `AWSAPPRUNNER` are reserved for system use and aren't valid\\. \n*Required*: No \n*Type*: List of [KeyValuePair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-keyvaluepair.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuntimeEnvironmentVariables", + "type": "array" + }, + "StartCommand": { + "markdownDescription": "The command App Runner runs to start your application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartCommand", + "type": "string" + } + }, + "required": [ + "Runtime" + ], + "type": "object" + }, + "AWS::AppRunner::Service.CodeRepository": { + "additionalProperties": false, + "properties": { + "CodeConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.CodeConfiguration", + "markdownDescription": "Configuration for building and running the service from a source code repository\\. \n*Required*: No \n*Type*: [CodeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-codeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodeConfiguration" + }, + "RepositoryUrl": { + "markdownDescription": "The location of the repository that contains the source code\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `51200` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepositoryUrl", + "type": "string" + }, + "SourceCodeVersion": { + "$ref": "#/definitions/AWS::AppRunner::Service.SourceCodeVersion", + "markdownDescription": "The version that should be used within the source code repository\\. \n*Required*: Yes \n*Type*: [SourceCodeVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-sourcecodeversion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceCodeVersion" + } + }, + "required": [ + "RepositoryUrl", + "SourceCodeVersion" + ], + "type": "object" + }, + "AWS::AppRunner::Service.EgressConfiguration": { + "additionalProperties": false, + "properties": { + "EgressType": { + "markdownDescription": "The type of egress configuration\\. \nSet to `DEFAULT` for access to resources hosted on public networks\\. \nSet to `VPC` to associate your service to a custom VPC specified by `VpcConnectorArn`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DEFAULT | VPC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EgressType", + "type": "string" + }, + "VpcConnectorArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the App Runner VPC connector that you want to associate with your App Runner service\\. Only valid when `EgressType = VPC`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1011` \n*Pattern*: `arn:aws(-[\\w]+)*:[a-z0-9-\\\\.]{0,63}:[a-z0-9-\\\\.]{0,63}:[0-9]{12}:(\\w|\\/|-){1,1011}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcConnectorArn", + "type": "string" + } + }, + "required": [ + "EgressType" + ], + "type": "object" + }, + "AWS::AppRunner::Service.EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KmsKey": { + "markdownDescription": "The ARN of the KMS key that's used for encryption\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `arn:aws(-[\\w]+)*:kms:[a-z\\-]+-[0-9]{1}:[0-9]{12}:key\\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKey", + "type": "string" + } + }, + "required": [ + "KmsKey" + ], + "type": "object" + }, + "AWS::AppRunner::Service.HealthCheckConfiguration": { + "additionalProperties": false, + "properties": { + "HealthyThreshold": { + "markdownDescription": "The number of consecutive checks that must succeed before App Runner decides that the service is healthy\\. \nDefault: `1` \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthyThreshold", + "type": "number" + }, + "Interval": { + "markdownDescription": "The time interval, in seconds, between health checks\\. \nDefault: `5` \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Interval", + "type": "number" + }, + "Path": { + "markdownDescription": "The URL that health check requests are sent to\\. \n `Path` is only applicable when you set `Protocol` to `HTTP`\\. \nDefault: `\"/\"` \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", + "type": "string" + }, + "Protocol": { + "markdownDescription": "The IP protocol that App Runner uses to perform health checks for your service\\. \nIf you set `Protocol` to `HTTP`, App Runner sends health check requests to the HTTP path specified by `Path`\\. \nDefault: `TCP` \n*Required*: No \n*Type*: String \n*Allowed values*: `HTTP | TCP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "string" + }, + "Timeout": { + "markdownDescription": "The time, in seconds, to wait for a health check response before deciding it failed\\. \nDefault: `2` \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout", + "type": "number" + }, + "UnhealthyThreshold": { + "markdownDescription": "The number of consecutive checks that must fail before App Runner decides that the service is unhealthy\\. \nDefault: `5` \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnhealthyThreshold", + "type": "number" + } + }, + "type": "object" + }, + "AWS::AppRunner::Service.ImageConfiguration": { + "additionalProperties": false, + "properties": { + "Port": { + "markdownDescription": "The port that your application listens to in the container\\. \nDefault: `8080` \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `51200` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "string" + }, + "RuntimeEnvironmentSecrets": { + "items": { + "$ref": "#/definitions/AWS::AppRunner::Service.KeyValuePair" + }, + "type": "array" + }, + "RuntimeEnvironmentVariables": { + "items": { + "$ref": "#/definitions/AWS::AppRunner::Service.KeyValuePair" + }, + "markdownDescription": "Environment variables that are available to your running App Runner service\\. An array of key\\-value pairs\\. Keys with a prefix of `AWSAPPRUNNER` are reserved for system use and aren't valid\\. \n*Required*: No \n*Type*: List of [KeyValuePair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-keyvaluepair.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuntimeEnvironmentVariables", + "type": "array" + }, + "StartCommand": { + "markdownDescription": "An optional command that App Runner runs to start the application in the source image\\. If specified, this command overrides the Docker image\u2019s default start command\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `51200` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartCommand", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppRunner::Service.ImageRepository": { + "additionalProperties": false, + "properties": { + "ImageConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.ImageConfiguration", + "markdownDescription": "Configuration for running the identified image\\. \n*Required*: No \n*Type*: [ImageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-imageconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageConfiguration" + }, + "ImageIdentifier": { + "markdownDescription": "The identifier of an image\\. \nFor an image in Amazon Elastic Container Registry \\(Amazon ECR\\), this is an image name\\. For the image name format, see [Pulling an image](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-pull-ecr-image.html) in the *Amazon ECR User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `([0-9]{12}.dkr.ecr.[a-z\\-]+-[0-9]{1}.amazonaws.com\\/((?:[a-z0-9]+(?:[._-][a-z0-9]+)*\\/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)(:([\\w\\d+\\-=._:\\/@])+|@([\\w\\d\\:]+))?)|(^public\\.ecr\\.aws\\/.+\\/((?:[a-z0-9]+(?:[._-][a-z0-9]+)*\\/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)(:([\\w\\d+\\-=._:\\/@])+|@([\\w\\d\\:]+))?)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageIdentifier", + "type": "string" + }, + "ImageRepositoryType": { + "markdownDescription": "The type of the image repository\\. This reflects the repository provider and whether the repository is private or public\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ECR | ECR_PUBLIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The number of CPU units reserved for each instance of your App Runner service\\. \nDefault: `1 vCPU` \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `6` \n*Pattern*: `1024|2048|(1|2) vCPU` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cpu", + "type": "string" + }, + "InstanceRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an IAM role that provides permissions to your App Runner service\\. These are permissions that your code needs when it calls any AWS APIs\\. \n*Required*: No \n*Type*: String \n*Minimum*: `29` \n*Maximum*: `1024` \n*Pattern*: `arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):iam::[0-9]{12}:(role|role\\/service-role)\\/[\\w+=,.@\\-/]{1,1000}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceRoleArn", + "type": "string" + }, + "Memory": { + "markdownDescription": "The amount of memory, in MB or GB, reserved for each instance of your App Runner service\\. \nDefault: `2 GB` \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `4` \n*Pattern*: `2048|3072|4096|(2|3|4) GB` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Memory", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppRunner::Service.KeyValuePair": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The key name string to map to a value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "The value string to which the key name is mapped\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppRunner::Service.NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "EgressConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.EgressConfiguration", + "markdownDescription": "Network configuration settings for outbound message traffic\\. \n*Required*: Yes \n*Type*: [EgressConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-egressconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The type of version identifier\\. \nFor a git\\-based repository, branches represent versions\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BRANCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "Value": { + "markdownDescription": "A source code version\\. \nFor a git\\-based repository, a branch name maps to a specific version\\. App Runner uses the most recent commit to the branch\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `51200` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::AppRunner::Service.SourceConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.AuthenticationConfiguration", + "markdownDescription": "Describes the resources that are needed to authenticate access to some source repositories\\. \n*Required*: No \n*Type*: [AuthenticationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-authenticationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticationConfiguration" + }, + "AutoDeploymentsEnabled": { + "markdownDescription": "If `true`, continuous integration from the source repository is enabled for the App Runner service\\. Each repository change \\(including any source code commit or new image version\\) starts a deployment\\. \nDefault: App Runner sets to `false` for a source image that uses an ECR Public repository or an ECR repository that's in an AWS account other than the one that the service is in\\. App Runner sets to `true` in all other cases \\(which currently include a source code repository or a source image using a same\\-account ECR repository\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoDeploymentsEnabled", + "type": "boolean" + }, + "CodeRepository": { + "$ref": "#/definitions/AWS::AppRunner::Service.CodeRepository", + "markdownDescription": "The description of a source code repository\\. \nYou must provide either this member or `ImageRepository` \\(but not both\\)\\. \n*Required*: No \n*Type*: [CodeRepository](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-coderepository.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodeRepository" + }, + "ImageRepository": { + "$ref": "#/definitions/AWS::AppRunner::Service.ImageRepository", + "markdownDescription": "The description of a source image repository\\. \nYou must provide either this member or `CodeRepository` \\(but not both\\)\\. \n*Required*: No \n*Type*: [ImageRepository](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-imagerepository.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "A list of IDs of security groups that App Runner should use for access to AWS resources under the specified subnets\\. If not specified, App Runner uses the default security group of the Amazon VPC\\. The default security group allows all outbound traffic\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroups", + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of IDs of subnets that App Runner should use when it associates your service with a custom Amazon VPC\\. Specify IDs of subnets of a single Amazon VPC\\. App Runner determines the Amazon VPC from the subnets you specify\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subnets", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of metadata items that you can associate with your VPC connector resource\\. A tag is a key\\-value pair\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "type": "array" + }, + "VpcConnectorName": { + "markdownDescription": "A name for the VPC connector\\. \nIf you don't specify a name, AWS CloudFormation generates a name for your VPC connector\\. \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `40` \n*Pattern*: `[A-Za-z0-9][A-Za-z0-9\\-_]{3,39}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The description of the app block\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "DisplayName": { + "markdownDescription": "The display name of the app block\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DisplayName", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the app block\\. \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "SetupScriptDetails": { + "$ref": "#/definitions/AWS::AppStream::AppBlock.ScriptDetails", + "markdownDescription": "The setup script details of the app block\\. \n*Required*: Yes \n*Type*: [ScriptDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-appblock-scriptdetails.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SetupScriptDetails" + }, + "SourceS3Location": { + "$ref": "#/definitions/AWS::AppStream::AppBlock.S3Location", + "markdownDescription": "The source S3 location of the app block\\. \n*Required*: Yes \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-appblock-s3location.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceS3Location" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags of the app block\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The S3 bucket of the app block\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Bucket", + "type": "string" + }, + "S3Key": { + "markdownDescription": "The S3 key of the S3 object of the virtual hard disk\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Key", + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::AppStream::AppBlock.ScriptDetails": { + "additionalProperties": false, + "properties": { + "ExecutableParameters": { + "markdownDescription": "The parameters used in the run path for the script\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExecutableParameters", + "type": "string" + }, + "ExecutablePath": { + "markdownDescription": "The run path for the script\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExecutablePath", + "type": "string" + }, + "ScriptS3Location": { + "$ref": "#/definitions/AWS::AppStream::AppBlock.S3Location", + "markdownDescription": "The S3 object location of the script\\. \n*Required*: Yes \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-appblock-s3location.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScriptS3Location" + }, + "TimeoutInSeconds": { + "markdownDescription": "The run timeout, in seconds, for the script\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The app block ARN with which the application should be associated\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppBlockArn", + "type": "string" + }, + "AttributesToDelete": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of attributes to delete from an application\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributesToDelete", + "type": "array" + }, + "Description": { + "markdownDescription": "The description of the application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DisplayName": { + "markdownDescription": "The display name of the application\\. This name is visible to users in the application catalog\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", + "type": "string" + }, + "IconS3Location": { + "$ref": "#/definitions/AWS::AppStream::Application.S3Location", + "markdownDescription": "The icon S3 location of the application\\. \n*Required*: Yes \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-application-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IconS3Location" + }, + "InstanceFamilies": { + "items": { + "type": "string" + }, + "markdownDescription": "The instance families the application supports\\. \n*Allowed Values*: `GENERAL_PURPOSE` \\| `GRAPHICS_G4` \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceFamilies", + "type": "array" + }, + "LaunchParameters": { + "markdownDescription": "The launch parameters of the application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchParameters", + "type": "string" + }, + "LaunchPath": { + "markdownDescription": "The launch path of the application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchPath", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the application\\. This name is visible to users when a name is not specified in the DisplayName property\\. \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Platforms": { + "items": { + "type": "string" + }, + "markdownDescription": "The platforms the application supports\\. \n*Allowed Values*: `WINDOWS_SERVER_2019` \\| `AMAZON_LINUX2` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Platforms", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags of the application\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "WorkingDirectory": { + "markdownDescription": "The working directory of the application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The S3 bucket of the S3 object\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Bucket", + "type": "string" + }, + "S3Key": { + "markdownDescription": "The S3 key of the S3 object\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The identifier of the application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationIdentifier", + "type": "string" + }, + "EntitlementName": { + "markdownDescription": "The name of the entitlement\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EntitlementName", + "type": "string" + }, + "StackName": { + "markdownDescription": "The name of the stack\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ARN of the application\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationArn", + "type": "string" + }, + "FleetName": { + "markdownDescription": "The name of the fleet\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The fully qualified name of the directory \\(for example, corp\\.example\\.com\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DirectoryName", + "type": "string" + }, + "OrganizationalUnitDistinguishedNames": { + "items": { + "type": "string" + }, + "markdownDescription": "The distinguished names of the organizational units for computer accounts\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrganizationalUnitDistinguishedNames", + "type": "array" + }, + "ServiceAccountCredentials": { + "$ref": "#/definitions/AWS::AppStream::DirectoryConfig.ServiceAccountCredentials", + "markdownDescription": "The credentials for the service account used by the streaming instance to connect to the directory\\. Do not use this parameter directly\\. Use `ServiceAccountCredentials` as an input parameter with `noEcho` as shown in the [Parameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html)\\. For best practices information, see [Do Not Embed Credentials in Your Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#creds)\\. \n*Required*: Yes \n*Type*: [ServiceAccountCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-directoryconfig-serviceaccountcredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The user name of the account\\. This account must have the following privileges: create computer objects, join computers to the domain, and change/reset the password on descendant computer objects for the organizational units specified\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountName", + "type": "string" + }, + "AccountPassword": { + "markdownDescription": "The password for the account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `127` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Specifies whether to entitle all apps or only selected apps\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL | ASSOCIATED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppVisibility", + "type": "string" + }, + "Attributes": { + "items": { + "$ref": "#/definitions/AWS::AppStream::Entitlement.Attribute" + }, + "markdownDescription": "The attributes of the entitlement\\. \n*Required*: Yes \n*Type*: List of [Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-entitlement-attribute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attributes", + "type": "array" + }, + "Description": { + "markdownDescription": "The description of the entitlement\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the entitlement\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "StackName": { + "markdownDescription": "The name of the stack\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A supported AWS IAM SAML PrincipalTag attribute that is matched to a value when a user identity federates to an AppStream 2\\.0 SAML application\\. \nThe following are supported values: \n+ roles \n+ department \n+ organization \n+ groups \n+ title \n+ costCenter \n+ userType\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "A value that is matched to a supported SAML attribute name when a user identity federates to an AppStream 2\\.0 SAML application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "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", + "markdownDescription": "The desired capacity for the fleet\\. This is not allowed for Elastic fleets\\. \n*Required*: No \n*Type*: [ComputeCapacity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-fleet-computecapacity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputeCapacity" + }, + "Description": { + "markdownDescription": "The description to display\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DisconnectTimeoutInSeconds": { + "markdownDescription": "The amount of time that a streaming session remains active after users disconnect\\. If users try to reconnect to the streaming session after a disconnection or network interruption within this time interval, they are connected to their previous session\\. Otherwise, they are connected to a new session with a new streaming instance\\. \nSpecify a value between 60 and 360000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisconnectTimeoutInSeconds", + "type": "number" + }, + "DisplayName": { + "markdownDescription": "The fleet name to display\\. \n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", + "type": "string" + }, + "DomainJoinInfo": { + "$ref": "#/definitions/AWS::AppStream::Fleet.DomainJoinInfo", + "markdownDescription": "The name of the directory and organizational unit \\(OU\\) to use to join the fleet to a Microsoft Active Directory domain\\. This is not allowed for Elastic fleets\\. \n*Required*: No \n*Type*: [DomainJoinInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-fleet-domainjoininfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainJoinInfo" + }, + "EnableDefaultInternetAccess": { + "markdownDescription": "Enables or disables default internet access for the fleet\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableDefaultInternetAccess", + "type": "boolean" + }, + "FleetType": { + "markdownDescription": "The fleet type\\. \nALWAYS\\_ON \nProvides users with instant\\-on access to their apps\\. You are charged for all running instances in your fleet, even if no users are streaming apps\\. \nON\\_DEMAND \nProvide users with access to applications after they connect, which takes one to two minutes\\. You are charged for instance streaming when users are connected and a small hourly fee for instances that are not streaming apps\\. \nELASTIC \nThe pool of streaming instances is managed by Amazon AppStream 2\\.0\\. When a user selects their application or desktop to launch, they will start streaming after the app block has been downloaded and mounted to a streaming instance\\.\n*Allowed Values*: `ALWAYS_ON` \\| `ELASTIC` \\| `ON_DEMAND` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FleetType", + "type": "string" + }, + "IamRoleArn": { + "markdownDescription": "The ARN of the IAM role that is applied to the fleet\\. To assume a role, the fleet instance calls the AWS Security Token Service `AssumeRole` API operation and passes the ARN of the role to use\\. The operation creates a new session with temporary credentials\\. AppStream 2\\.0 retrieves the temporary credentials and creates the **appstream\\_machine\\_role** credential profile on the instance\\. \nFor more information, see [Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2\\.0 Streaming Instances](https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html) in the *Amazon AppStream 2\\.0 Administration Guide*\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamRoleArn", + "type": "string" + }, + "IdleDisconnectTimeoutInSeconds": { + "markdownDescription": "The amount of time that users can be idle \\(inactive\\) before they are disconnected from their streaming session and the `DisconnectTimeoutInSeconds` time interval begins\\. Users are notified before they are disconnected due to inactivity\\. If they try to reconnect to the streaming session before the time interval specified in `DisconnectTimeoutInSeconds` elapses, they are connected to their previous session\\. Users are considered idle when they stop providing keyboard or mouse input during their streaming session\\. File uploads and downloads, audio in, audio out, and pixels changing do not qualify as user activity\\. If users continue to be idle after the time interval in `IdleDisconnectTimeoutInSeconds` elapses, they are disconnected\\. \nTo prevent users from being disconnected due to inactivity, specify a value of 0\\. Otherwise, specify a value between 60 and 3600\\. \nIf you enable this feature, we recommend that you specify a value that corresponds exactly to a whole number of minutes \\(for example, 60, 120, and 180\\)\\. If you don't do this, the value is rounded to the nearest minute\\. For example, if you specify a value of 70, users are disconnected after 1 minute of inactivity\\. If you specify a value that is at the midpoint between two different minutes, the value is rounded up\\. For example, if you specify a value of 90, users are disconnected after 2 minutes of inactivity\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdleDisconnectTimeoutInSeconds", + "type": "number" + }, + "ImageArn": { + "markdownDescription": "The ARN of the public, private, or shared image to use\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageArn", + "type": "string" + }, + "ImageName": { + "markdownDescription": "The name of the image used to create the fleet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageName", + "type": "string" + }, + "InstanceType": { + "markdownDescription": "The instance type to use when launching fleet instances\\. The following instance types are available for non\\-Elastic fleets: \n+ stream\\.standard\\.small\n+ stream\\.standard\\.medium\n+ stream\\.standard\\.large\n+ stream\\.compute\\.large\n+ stream\\.compute\\.xlarge\n+ stream\\.compute\\.2xlarge\n+ stream\\.compute\\.4xlarge\n+ stream\\.compute\\.8xlarge\n+ stream\\.memory\\.large\n+ stream\\.memory\\.xlarge\n+ stream\\.memory\\.2xlarge\n+ stream\\.memory\\.4xlarge\n+ stream\\.memory\\.8xlarge\n+ stream\\.memory\\.z1d\\.large\n+ stream\\.memory\\.z1d\\.xlarge\n+ stream\\.memory\\.z1d\\.2xlarge\n+ stream\\.memory\\.z1d\\.3xlarge\n+ stream\\.memory\\.z1d\\.6xlarge\n+ stream\\.memory\\.z1d\\.12xlarge\n+ stream\\.graphics\\-design\\.large\n+ stream\\.graphics\\-design\\.xlarge\n+ stream\\.graphics\\-design\\.2xlarge\n+ stream\\.graphics\\-design\\.4xlarge\n+ stream\\.graphics\\-desktop\\.2xlarge\n+ stream\\.graphics\\.g4dn\\.xlarge\n+ stream\\.graphics\\.g4dn\\.2xlarge\n+ stream\\.graphics\\.g4dn\\.4xlarge\n+ stream\\.graphics\\.g4dn\\.8xlarge\n+ stream\\.graphics\\.g4dn\\.12xlarge\n+ stream\\.graphics\\.g4dn\\.16xlarge\n+ stream\\.graphics\\-pro\\.4xlarge\n+ stream\\.graphics\\-pro\\.8xlarge\n+ stream\\.graphics\\-pro\\.16xlarge\nThe following instance types are available for Elastic fleets: \n+ stream\\.standard\\.small\n+ stream\\.standard\\.medium\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", + "type": "string" + }, + "MaxConcurrentSessions": { + "markdownDescription": "The maximum number of concurrent sessions that can be run on an Elastic fleet\\. This setting is required for Elastic fleets, but is not used for other fleet types\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxConcurrentSessions", + "type": "number" + }, + "MaxUserDurationInSeconds": { + "markdownDescription": "The maximum amount of time that a streaming session can remain active, in seconds\\. If users are still connected to a streaming instance five minutes before this limit is reached, they are prompted to save any open documents before being disconnected\\. After this time elapses, the instance is terminated and replaced by a new instance\\. \nSpecify a value between 600 and 360000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxUserDurationInSeconds", + "type": "number" + }, + "Name": { + "markdownDescription": "A unique name for the fleet\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Platform": { + "markdownDescription": "The platform of the fleet\\. Platform is a required setting for Elastic fleets, and is not used for other fleet types\\. \n*Allowed Values*: `WINDOWS_SERVER_2019` \\| `AMAZON_LINUX2` \n*Required*: No \n*Type*: String \n*Allowed values*: `AMAZON_LINUX2 | WINDOWS | WINDOWS_SERVER_2016 | WINDOWS_SERVER_2019` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Platform", + "type": "string" + }, + "SessionScriptS3Location": { + "$ref": "#/definitions/AWS::AppStream::Fleet.S3Location" + }, + "StreamView": { + "markdownDescription": "The AppStream 2\\.0 view that is displayed to your users when they stream from the fleet\\. When `APP` is specified, only the windows of applications opened by users display\\. When `DESKTOP` is specified, the standard desktop that is provided by the operating system displays\\. \nThe default value is `APP`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `APP | DESKTOP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamView", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "UsbDeviceFilterStrings": { + "items": { + "type": "string" + }, + "markdownDescription": "The USB device filter strings that specify which USB devices a user can redirect to the fleet streaming session, when using the Windows native client\\. This is allowed but not required for Elastic fleets\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UsbDeviceFilterStrings", + "type": "array" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::AppStream::Fleet.VpcConfig", + "markdownDescription": "The VPC configuration for the fleet\\. This is required for Elastic fleets, but not required for other fleet types\\. \n*Required*: No \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-fleet-vpcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The desired number of streaming instances\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DesiredInstances", + "type": "number" + } + }, + "required": [ + "DesiredInstances" + ], + "type": "object" + }, + "AWS::AppStream::Fleet.DomainJoinInfo": { + "additionalProperties": false, + "properties": { + "DirectoryName": { + "markdownDescription": "The fully qualified name of the directory \\(for example, corp\\.example\\.com\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DirectoryName", + "type": "string" + }, + "OrganizationalUnitDistinguishedName": { + "markdownDescription": "The distinguished name of the organizational unit for computer accounts\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The identifiers of the security groups for the fleet\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The identifiers of the subnets to which a network interface is attached from the fleet instance\\. Fleet instances can use one or two subnets\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "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" + }, + "markdownDescription": "The list of virtual private cloud \\(VPC\\) interface endpoint objects\\. Administrators can connect to the image builder only through the specified endpoints\\. \n*Required*: No \n*Type*: List of [AccessEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-imagebuilder-accessendpoint.html) \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessEndpoints", + "type": "array" + }, + "AppstreamAgentVersion": { + "markdownDescription": "The version of the AppStream 2\\.0 agent to use for this image builder\\. To use the latest version of the AppStream 2\\.0 agent, specify \\[LATEST\\]\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppstreamAgentVersion", + "type": "string" + }, + "Description": { + "markdownDescription": "The description to display\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DisplayName": { + "markdownDescription": "The image builder name to display\\. \n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", + "type": "string" + }, + "DomainJoinInfo": { + "$ref": "#/definitions/AWS::AppStream::ImageBuilder.DomainJoinInfo", + "markdownDescription": "The name of the directory and organizational unit \\(OU\\) to use to join the image builder to a Microsoft Active Directory domain\\. \n*Required*: No \n*Type*: [DomainJoinInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-imagebuilder-domainjoininfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainJoinInfo" + }, + "EnableDefaultInternetAccess": { + "markdownDescription": "Enables or disables default internet access for the image builder\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableDefaultInternetAccess", + "type": "boolean" + }, + "IamRoleArn": { + "markdownDescription": "The ARN of the IAM role that is applied to the image builder\\. To assume a role, the image builder calls the AWS Security Token Service `AssumeRole` API operation and passes the ARN of the role to use\\. The operation creates a new session with temporary credentials\\. AppStream 2\\.0 retrieves the temporary credentials and creates the **appstream\\_machine\\_role** credential profile on the instance\\. \nFor more information, see [Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2\\.0 Streaming Instances](https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html) in the *Amazon AppStream 2\\.0 Administration Guide*\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamRoleArn", + "type": "string" + }, + "ImageArn": { + "markdownDescription": "The ARN of the public, private, or shared image to use\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws(?:\\-cn|\\-iso\\-b|\\-iso|\\-us\\-gov)?:[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.\\\\-]{0,1023}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageArn", + "type": "string" + }, + "ImageName": { + "markdownDescription": "The name of the image used to create the image builder\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageName", + "type": "string" + }, + "InstanceType": { + "markdownDescription": "The instance type to use when launching the image builder\\. The following instance types are available: \n+ stream\\.standard\\.small\n+ stream\\.standard\\.medium\n+ stream\\.standard\\.large\n+ stream\\.compute\\.large\n+ stream\\.compute\\.xlarge\n+ stream\\.compute\\.2xlarge\n+ stream\\.compute\\.4xlarge\n+ stream\\.compute\\.8xlarge\n+ stream\\.memory\\.large\n+ stream\\.memory\\.xlarge\n+ stream\\.memory\\.2xlarge\n+ stream\\.memory\\.4xlarge\n+ stream\\.memory\\.8xlarge\n+ stream\\.memory\\.z1d\\.large\n+ stream\\.memory\\.z1d\\.xlarge\n+ stream\\.memory\\.z1d\\.2xlarge\n+ stream\\.memory\\.z1d\\.3xlarge\n+ stream\\.memory\\.z1d\\.6xlarge\n+ stream\\.memory\\.z1d\\.12xlarge\n+ stream\\.graphics\\-design\\.large\n+ stream\\.graphics\\-design\\.xlarge\n+ stream\\.graphics\\-design\\.2xlarge\n+ stream\\.graphics\\-design\\.4xlarge\n+ stream\\.graphics\\-desktop\\.2xlarge\n+ stream\\.graphics\\.g4dn\\.xlarge\n+ stream\\.graphics\\.g4dn\\.2xlarge\n+ stream\\.graphics\\.g4dn\\.4xlarge\n+ stream\\.graphics\\.g4dn\\.8xlarge\n+ stream\\.graphics\\.g4dn\\.12xlarge\n+ stream\\.graphics\\.g4dn\\.16xlarge\n+ stream\\.graphics\\-pro\\.4xlarge\n+ stream\\.graphics\\-pro\\.8xlarge\n+ stream\\.graphics\\-pro\\.16xlarge\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", + "type": "string" + }, + "Name": { + "markdownDescription": "A unique name for the image builder\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::AppStream::ImageBuilder.VpcConfig", + "markdownDescription": "The VPC configuration for the image builder\\. You can specify only one subnet\\. \n*Required*: No \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-imagebuilder-vpcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The type of interface endpoint\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `STREAMING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointType", + "type": "string" + }, + "VpceId": { + "markdownDescription": "The identifier \\(ID\\) of the VPC in which the interface endpoint is used\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpceId", + "type": "string" + } + }, + "required": [ + "EndpointType", + "VpceId" + ], + "type": "object" + }, + "AWS::AppStream::ImageBuilder.DomainJoinInfo": { + "additionalProperties": false, + "properties": { + "DirectoryName": { + "markdownDescription": "The fully qualified name of the directory \\(for example, corp\\.example\\.com\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DirectoryName", + "type": "string" + }, + "OrganizationalUnitDistinguishedName": { + "markdownDescription": "The distinguished name of the organizational unit for computer accounts\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrganizationalUnitDistinguishedName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppStream::ImageBuilder.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The identifiers of the security groups for the image builder\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The identifier of the subnet to which a network interface is attached from the image builder instance\\. An image builder instance can use one subnet\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "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" + }, + "markdownDescription": "The list of virtual private cloud \\(VPC\\) interface endpoint objects\\. Users of the stack can connect to AppStream 2\\.0 only through the specified endpoints\\. \n*Required*: No \n*Type*: List of [AccessEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-accessendpoint.html) \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessEndpoints", + "type": "array" + }, + "ApplicationSettings": { + "$ref": "#/definitions/AWS::AppStream::Stack.ApplicationSettings", + "markdownDescription": "The persistent application settings for users of the stack\\. When these settings are enabled, changes that users make to applications and Windows settings are automatically saved after each session and applied to the next session\\. \n*Required*: No \n*Type*: [ApplicationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-applicationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationSettings" + }, + "AttributesToDelete": { + "items": { + "type": "string" + }, + "markdownDescription": "The stack attributes to delete\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributesToDelete", + "type": "array" + }, + "DeleteStorageConnectors": { + "markdownDescription": "*This parameter has been deprecated\\.* \nDeletes the storage connectors currently enabled for the stack\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteStorageConnectors", + "type": "boolean" + }, + "Description": { + "markdownDescription": "The description to display\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DisplayName": { + "markdownDescription": "The stack name to display\\. \n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", + "type": "string" + }, + "EmbedHostDomains": { + "items": { + "type": "string" + }, + "markdownDescription": "The domains where AppStream 2\\.0 streaming sessions can be embedded in an iframe\\. You must approve the domains that you want to host embedded AppStream 2\\.0 streaming sessions\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmbedHostDomains", + "type": "array" + }, + "FeedbackURL": { + "markdownDescription": "The URL that users are redirected to after they click the Send Feedback link\\. If no URL is specified, no Send Feedback link is displayed\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FeedbackURL", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the stack\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RedirectURL": { + "markdownDescription": "The URL that users are redirected to after their streaming session ends\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedirectURL", + "type": "string" + }, + "StorageConnectors": { + "items": { + "$ref": "#/definitions/AWS::AppStream::Stack.StorageConnector" + }, + "markdownDescription": "The storage connectors to enable\\. \n*Required*: No \n*Type*: List of [StorageConnector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-storageconnector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageConnectors", + "type": "array" + }, + "StreamingExperienceSettings": { + "$ref": "#/definitions/AWS::AppStream::Stack.StreamingExperienceSettings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "UserSettings": { + "items": { + "$ref": "#/definitions/AWS::AppStream::Stack.UserSetting" + }, + "markdownDescription": "The actions that are enabled or disabled for users during their streaming sessions\\. By default, these actions are enabled\\. \n*Required*: No \n*Type*: List of [UserSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-usersetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserSettings", + "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": { + "markdownDescription": "The type of interface endpoint\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `STREAMING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointType", + "type": "string" + }, + "VpceId": { + "markdownDescription": "The identifier \\(ID\\) of the VPC in which the interface endpoint is used\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpceId", + "type": "string" + } + }, + "required": [ + "EndpointType", + "VpceId" + ], + "type": "object" + }, + "AWS::AppStream::Stack.ApplicationSettings": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Enables or disables persistent application settings for users during their streaming sessions\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "SettingsGroup": { + "markdownDescription": "The path prefix for the S3 bucket where users\u2019 persistent application settings are stored\\. You can allow the same persistent application settings to be used across multiple stacks by specifying the same settings group for each stack\\. \n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SettingsGroup", + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::AppStream::Stack.StorageConnector": { + "additionalProperties": false, + "properties": { + "ConnectorType": { + "markdownDescription": "The type of storage connector\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GOOGLE_DRIVE | HOMEFOLDERS | ONE_DRIVE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorType", + "type": "string" + }, + "Domains": { + "items": { + "type": "string" + }, + "markdownDescription": "The names of the domains for the account\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Domains", + "type": "array" + }, + "ResourceIdentifier": { + "markdownDescription": "The ARN of the storage connector\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The action that is enabled or disabled\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CLIPBOARD_COPY_FROM_LOCAL_DEVICE | CLIPBOARD_COPY_TO_LOCAL_DEVICE | DOMAIN_PASSWORD_SIGNIN | DOMAIN_SMART_CARD_SIGNIN | FILE_DOWNLOAD | FILE_UPLOAD | PRINTING_TO_LOCAL_DEVICE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", + "type": "string" + }, + "Permission": { + "markdownDescription": "Indicates whether the action is enabled or disabled\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the fleet\\. \nTo associate a fleet with a stack, you must specify a dependency on the fleet resource\\. For more information, see [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FleetName", + "type": "string" + }, + "StackName": { + "markdownDescription": "The name of the stack\\. \nTo associate a fleet with a stack, you must specify a dependency on the stack resource\\. For more information, see [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The authentication type for the user who is associated with the stack\\. You must specify USERPOOL\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `API | SAML | USERPOOL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthenticationType", + "type": "string" + }, + "SendEmailNotification": { + "markdownDescription": "Specifies whether a welcome email is sent to a user after the user is created in the user pool\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SendEmailNotification", + "type": "boolean" + }, + "StackName": { + "markdownDescription": "The name of the stack that is associated with the user\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StackName", + "type": "string" + }, + "UserName": { + "markdownDescription": "The email address of the user who is associated with the stack\\. \nUsers' email addresses are case\\-sensitive\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The authentication type for the user\\. You must specify USERPOOL\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `API | SAML | USERPOOL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthenticationType", + "type": "string" + }, + "FirstName": { + "markdownDescription": "The first name, or given name, of the user\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `^[A-Za-z0-9_\\-\\s]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FirstName", + "type": "string" + }, + "LastName": { + "markdownDescription": "The last name, or surname, of the user\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `^[A-Za-z0-9_\\-\\s]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LastName", + "type": "string" + }, + "MessageAction": { + "markdownDescription": "The action to take for the welcome email that is sent to a user after the user is created in the user pool\\. If you specify SUPPRESS, no email is sent\\. If you specify RESEND, do not specify the first name or last name of the user\\. If the value is null, the email is sent\\. \nThe temporary password in the welcome email is valid for only 7 days\\. If users don\u2019t set their passwords within 7 days, you must send them a new welcome email\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `RESEND | SUPPRESS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MessageAction", + "type": "string" + }, + "UserName": { + "markdownDescription": "The email address of the user\\. \nUsers' email addresses are case\\-sensitive\\. During login, if they specify an email address that doesn't use the same capitalization as the email address specified when their user pool account was created, a \"user does not exist\" error message displays\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Caching behavior\\. \n+ **FULL\\_REQUEST\\_CACHING**: All requests are fully cached\\.\n+ **PER\\_RESOLVER\\_CACHING**: Individual resolvers that you specify are cached\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiCachingBehavior", + "type": "string" + }, + "ApiId": { + "markdownDescription": "The GraphQL API ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", + "type": "string" + }, + "AtRestEncryptionEnabled": { + "markdownDescription": "At\\-rest encryption flag for cache\\. You cannot update this setting after creation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AtRestEncryptionEnabled", + "type": "boolean" + }, + "TransitEncryptionEnabled": { + "markdownDescription": "Transit encryption flag when connecting to cache\\. You cannot update this setting after creation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitEncryptionEnabled", + "type": "boolean" + }, + "Ttl": { + "markdownDescription": "TTL in seconds for cache entries\\. \nValid values are 1\u20133,600 seconds\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ttl", + "type": "number" + }, + "Type": { + "markdownDescription": "The cache instance type\\. Valid values are \n+ `SMALL` \n+ `MEDIUM` \n+ `LARGE` \n+ `XLARGE` \n+ `LARGE_2X` \n+ `LARGE_4X` \n+ `LARGE_8X` \\(not available in all regions\\)\n+ `LARGE_12X` \nHistorically, instance types were identified by an EC2\\-style value\\. As of July 2020, this is deprecated, and the generic identifiers above should be used\\. \nThe following legacy instance types are available, but their use is discouraged: \n+ **T2\\_SMALL**: A t2\\.small instance type\\.\n+ **T2\\_MEDIUM**: A t2\\.medium instance type\\.\n+ **R4\\_LARGE**: A r4\\.large instance type\\.\n+ **R4\\_XLARGE**: A r4\\.xlarge instance type\\.\n+ **R4\\_2XLARGE**: A r4\\.2xlarge instance type\\.\n+ **R4\\_4XLARGE**: A r4\\.4xlarge instance type\\.\n+ **R4\\_8XLARGE**: A r4\\.8xlarge instance type\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "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": { + "markdownDescription": "Unique AWS AppSync GraphQL API ID for this API key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", + "type": "string" + }, + "ApiKeyId": { + "markdownDescription": "The API key ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKeyId", + "type": "string" + }, + "Description": { + "markdownDescription": "Unique description of your API key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Expires": { + "markdownDescription": "The time after which the API key expires\\. The date is represented as seconds since the epoch, rounded down to the nearest hour\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Unique AWS AppSync GraphQL API identifier where this data source will be created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the data source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DynamoDBConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.DynamoDBConfig", + "markdownDescription": "AWS Region and TableName for an Amazon DynamoDB table in your account\\. \n*Required*: No \n*Type*: [DynamoDBConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DynamoDBConfig" + }, + "ElasticsearchConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.ElasticsearchConfig", + "markdownDescription": "AWS Region and Endpoints for an Amazon OpenSearch Service domain in your account\\. \nAs of September 2021, Amazon Elasticsearch Service is Amazon OpenSearch Service\\. This property is deprecated\\. For new data sources, use *OpenSearchServiceConfig* to specify an OpenSearch Service data source\\. \n*Required*: No \n*Type*: [ElasticsearchConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-elasticsearchconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticsearchConfig" + }, + "EventBridgeConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.EventBridgeConfig" + }, + "HttpConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.HttpConfig", + "markdownDescription": "Endpoints for an HTTP data source\\. \n*Required*: No \n*Type*: [HttpConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-httpconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpConfig" + }, + "LambdaConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.LambdaConfig", + "markdownDescription": "An ARN of a Lambda function in valid ARN format\\. This can be the ARN of a Lambda function that exists in the current account or in another account\\. \n*Required*: No \n*Type*: [LambdaConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-lambdaconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaConfig" + }, + "Name": { + "markdownDescription": "Friendly name for you to identify your AppSync data source after creation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "OpenSearchServiceConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.OpenSearchServiceConfig", + "markdownDescription": "AWS Region and Endpoints for an Amazon OpenSearch Service domain in your account\\. \n*Required*: No \n*Type*: [OpenSearchServiceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-opensearchserviceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OpenSearchServiceConfig" + }, + "RelationalDatabaseConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.RelationalDatabaseConfig", + "markdownDescription": "Relational Database configuration of the relational database data source\\. \n*Required*: No \n*Type*: [RelationalDatabaseConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-relationaldatabaseconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RelationalDatabaseConfig" + }, + "ServiceRoleArn": { + "markdownDescription": "The AWS Identity and Access Management service role ARN for the data source\\. The system assumes this role when accessing the data source\\. \nRequired if `Type` is specified as `AWS_LAMBDA`, `AMAZON_DYNAMODB`, `AMAZON_ELASTICSEARCH`, or `AMAZON_OPENSEARCH_SERVICE`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceRoleArn", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of the data source\\. \n+ **AWS\\_LAMBDA**: The data source is an AWS Lambda function\\.\n+ **AMAZON\\_DYNAMODB**: The data source is an Amazon DynamoDB table\\.\n+ **AMAZON\\_ELASTICSEARCH**: The data source is an Amazon OpenSearch Service domain\\.\n+ **AMAZON\\_OPENSEARCH\\_SERVICE**: The data source is an Amazon OpenSearch Service domain\\.\n+ **NONE**: There is no data source\\. This type is used when you wish to invoke a GraphQL operation without connecting to a data source, such as performing data transformation with resolvers or triggering a subscription to be invoked from a mutation\\.\n+ **HTTP**: The data source is an HTTP endpoint\\.\n+ **RELATIONAL\\_DATABASE**: The data source is a relational database\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "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": { + "markdownDescription": "The authorization type that the HTTP endpoint requires\\. \n+ **AWS\\_IAM**: The authorization type is Signature Version 4 \\(SigV4\\)\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationType", + "type": "string" + }, + "AwsIamConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.AwsIamConfig", + "markdownDescription": "The AWS Identity and Access Management settings\\. \n*Required*: No \n*Type*: [AwsIamConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-awsiamconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsIamConfig" + } + }, + "required": [ + "AuthorizationType" + ], + "type": "object" + }, + "AWS::AppSync::DataSource.AwsIamConfig": { + "additionalProperties": false, + "properties": { + "SigningRegion": { + "markdownDescription": "The signing Region for AWS Identity and Access Management authorization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SigningRegion", + "type": "string" + }, + "SigningServiceName": { + "markdownDescription": "The signing service name for AWS Identity and Access Management authorization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SigningServiceName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::DataSource.DeltaSyncConfig": { + "additionalProperties": false, + "properties": { + "BaseTableTTL": { + "markdownDescription": "The number of minutes that an Item is stored in the data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaseTableTTL", + "type": "string" + }, + "DeltaSyncTableName": { + "markdownDescription": "The Delta Sync table name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeltaSyncTableName", + "type": "string" + }, + "DeltaSyncTableTTL": { + "markdownDescription": "The number of minutes that a Delta Sync log entry is stored in the Delta Sync table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeltaSyncTableTTL", + "type": "string" + } + }, + "required": [ + "BaseTableTTL", + "DeltaSyncTableName", + "DeltaSyncTableTTL" + ], + "type": "object" + }, + "AWS::AppSync::DataSource.DynamoDBConfig": { + "additionalProperties": false, + "properties": { + "AwsRegion": { + "markdownDescription": "The AWS Region\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsRegion", + "type": "string" + }, + "DeltaSyncConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.DeltaSyncConfig", + "markdownDescription": "The `DeltaSyncConfig` for a versioned datasource\\. \n*Required*: No \n*Type*: [DeltaSyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-deltasyncconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeltaSyncConfig" + }, + "TableName": { + "markdownDescription": "The table name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", + "type": "string" + }, + "UseCallerCredentials": { + "markdownDescription": "Set to `TRUE` to use AWS Identity and Access Management with this data source\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseCallerCredentials", + "type": "boolean" + }, + "Versioned": { + "markdownDescription": "Set to TRUE to use Conflict Detection and Resolution with this data source\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Versioned", + "type": "boolean" + } + }, + "required": [ + "AwsRegion", + "TableName" + ], + "type": "object" + }, + "AWS::AppSync::DataSource.ElasticsearchConfig": { + "additionalProperties": false, + "properties": { + "AwsRegion": { + "markdownDescription": "The AWS Region\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsRegion", + "type": "string" + }, + "Endpoint": { + "markdownDescription": "The endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The authorization configuration\\. \n*Required*: No \n*Type*: [AuthorizationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-authorizationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationConfig" + }, + "Endpoint": { + "markdownDescription": "The endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Endpoint", + "type": "string" + } + }, + "required": [ + "Endpoint" + ], + "type": "object" + }, + "AWS::AppSync::DataSource.LambdaConfig": { + "additionalProperties": false, + "properties": { + "LambdaFunctionArn": { + "markdownDescription": "The ARN for the Lambda function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaFunctionArn", + "type": "string" + } + }, + "required": [ + "LambdaFunctionArn" + ], + "type": "object" + }, + "AWS::AppSync::DataSource.OpenSearchServiceConfig": { + "additionalProperties": false, + "properties": { + "AwsRegion": { + "markdownDescription": "The AWS Region\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsRegion", + "type": "string" + }, + "Endpoint": { + "markdownDescription": "The endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Endpoint", + "type": "string" + } + }, + "required": [ + "AwsRegion", + "Endpoint" + ], + "type": "object" + }, + "AWS::AppSync::DataSource.RdsHttpEndpointConfig": { + "additionalProperties": false, + "properties": { + "AwsRegion": { + "markdownDescription": "AWS Region for RDS HTTP endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsRegion", + "type": "string" + }, + "AwsSecretStoreArn": { + "markdownDescription": "The ARN for database credentials stored in AWS Secrets Manager\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsSecretStoreArn", + "type": "string" + }, + "DatabaseName": { + "markdownDescription": "Logical database name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", + "type": "string" + }, + "DbClusterIdentifier": { + "markdownDescription": "Amazon RDS cluster Amazon Resource Name \\(ARN\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DbClusterIdentifier", + "type": "string" + }, + "Schema": { + "markdownDescription": "Logical schema name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schema", + "type": "string" + } + }, + "required": [ + "AwsRegion", + "AwsSecretStoreArn", + "DbClusterIdentifier" + ], + "type": "object" + }, + "AWS::AppSync::DataSource.RelationalDatabaseConfig": { + "additionalProperties": false, + "properties": { + "RdsHttpEndpointConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.RdsHttpEndpointConfig", + "markdownDescription": "Information about the Amazon RDS resource\\. \n*Required*: No \n*Type*: [RdsHttpEndpointConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-rdshttpendpointconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RdsHttpEndpointConfig" + }, + "RelationalDatabaseSourceType": { + "markdownDescription": "The type of relational data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the certificate\\. This will be an AWS Certificate Manager certificate\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateArn", + "type": "string" + }, + "Description": { + "markdownDescription": "The decription for your domain name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DomainName": { + "markdownDescription": "The domain name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The API ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiId", + "type": "string" + }, + "DomainName": { + "markdownDescription": "The domain name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The AWS AppSync GraphQL API that you want to attach using this function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", + "type": "string" + }, + "Code": { + "type": "string" + }, + "CodeS3Location": { + "type": "string" + }, + "DataSourceName": { + "markdownDescription": "The name of data source this function will attach\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSourceName", + "type": "string" + }, + "Description": { + "markdownDescription": "The `Function` description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "FunctionVersion": { + "markdownDescription": "The version of the request mapping template\\. Currently, only the 2018\\-05\\-29 version of the template is supported\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FunctionVersion", + "type": "string" + }, + "MaxBatchSize": { + "markdownDescription": "The maximum number of resolver request inputs that will be sent to a single AWS Lambda function in a `BatchInvoke` operation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxBatchSize", + "type": "number" + }, + "Name": { + "markdownDescription": "The name of the function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "RequestMappingTemplate": { + "markdownDescription": "The `Function` request mapping template\\. Functions support only the 2018\\-05\\-29 version of the request mapping template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestMappingTemplate", + "type": "string" + }, + "RequestMappingTemplateS3Location": { + "markdownDescription": "Describes a Sync configuration for a resolver\\. \nContains information on which Conflict Detection, as well as Resolution strategy, should be performed when the resolver is invoked\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestMappingTemplateS3Location", + "type": "string" + }, + "ResponseMappingTemplate": { + "markdownDescription": "The `Function` response mapping template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseMappingTemplate", + "type": "string" + }, + "ResponseMappingTemplateS3Location": { + "markdownDescription": "The location of a response mapping template in an Amazon S3 bucket\\. Use this if you want to provision with a template file in Amazon S3 rather than embedding it in your CloudFormation template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseMappingTemplateS3Location", + "type": "string" + }, + "Runtime": { + "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration.AppSyncRuntime" + }, + "SyncConfig": { + "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration.SyncConfig", + "markdownDescription": "Describes a Sync configuration for a resolver\\. \nSpecifies which Conflict Detection strategy and Resolution strategy to use when the resolver is invoked\\. \n*Required*: No \n*Type*: [SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-syncconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the Lambda function to use as the Conflict Handler\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaConflictHandlerArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::FunctionConfiguration.SyncConfig": { + "additionalProperties": false, + "properties": { + "ConflictDetection": { + "markdownDescription": "The Conflict Detection strategy to use\\. \n+ **VERSION**: Detect conflicts based on object versions for this resolver\\.\n+ **NONE**: Do not detect conflicts when invoking this resolver\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConflictDetection", + "type": "string" + }, + "ConflictHandler": { + "markdownDescription": "The Conflict Resolution strategy to perform in the event of a conflict\\. \n+ **OPTIMISTIC\\_CONCURRENCY**: Resolve conflicts by rejecting mutations when versions don't match the latest version at the server\\.\n+ **AUTOMERGE**: Resolve conflicts with the Automerge conflict resolution strategy\\.\n+ **LAMBDA**: Resolve conflicts with an AWS Lambda function supplied in the `LambdaConflictHandlerConfig`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConflictHandler", + "type": "string" + }, + "LambdaConflictHandlerConfig": { + "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration.LambdaConflictHandlerConfig", + "markdownDescription": "The `LambdaConflictHandlerConfig` when configuring `LAMBDA` as the Conflict Handler\\. \n*Required*: No \n*Type*: [LambdaConflictHandlerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-lambdaconflicthandlerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "A list of additional authentication providers for the `GraphqlApi` API\\. \n*Required*: No \n*Type*: [AdditionalAuthenticationProviders](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationproviders.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdditionalAuthenticationProviders", + "type": "array" + }, + "AuthenticationType": { + "markdownDescription": "Security configuration for your GraphQL API\\. For allowed values \\(such as `API_KEY`, `AWS_IAM`, `AMAZON_COGNITO_USER_POOLS`, `OPENID_CONNECT`, or `AWS_LAMBDA`\\), see [Security](https://docs.aws.amazon.com/appsync/latest/devguide/security.html) in the *AWS AppSync Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticationType", + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig", + "markdownDescription": "A `LambdaAuthorizerConfig` holds configuration on how to authorize AWS AppSync API access when using the `AWS_LAMBDA` authorizer mode\\. Be aware that an AWS AppSync API may have only one Lambda authorizer configured at a time\\. \n*Required*: No \n*Type*: [LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaAuthorizerConfig" + }, + "LogConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LogConfig", + "markdownDescription": "The Amazon CloudWatch Logs configuration\\. \n*Required*: No \n*Type*: [LogConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-logconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogConfig" + }, + "Name": { + "markdownDescription": "The API name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.OpenIDConnectConfig", + "markdownDescription": "The OpenID Connect configuration\\. \n*Required*: No \n*Type*: [OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OpenIDConnectConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An arbitrary set of tags \\(key\\-value pairs\\) for this GraphQL API\\. \n*Required*: No \n*Type*: [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "UserPoolConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.UserPoolConfig", + "markdownDescription": "Optional authorization configuration for using Amazon Cognito user pools with your GraphQL endpoint\\. \n*Required*: No \n*Type*: [UserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolConfig" + }, + "XrayEnabled": { + "markdownDescription": "A flag indicating whether to use AWS X\\-Ray tracing for this `GraphqlApi`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The authentication type for API key, AWS Identity and Access Management, OIDC, Amazon Cognito user pools, or AWS Lambda\\. \nValid Values: `API_KEY` \\| `AWS_IAM` \\| `OPENID_CONNECT` \\| `AMAZON_COGNITO_USER_POOLS` \\| `AWS_LAMBDA` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticationType", + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig", + "markdownDescription": "Configuration for AWS Lambda function authorization\\. \n*Required*: No \n*Type*: [LambdaAuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaAuthorizerConfig" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.OpenIDConnectConfig", + "markdownDescription": "The OIDC configuration\\. \n*Required*: No \n*Type*: [OpenIDConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OpenIDConnectConfig" + }, + "UserPoolConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.CognitoUserPoolConfig", + "markdownDescription": "The Amazon Cognito user pool configuration\\. \n*Required*: No \n*Type*: [CognitoUserPoolConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-cognitouserpoolconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolConfig" + } + }, + "required": [ + "AuthenticationType" + ], + "type": "object" + }, + "AWS::AppSync::GraphQLApi.CognitoUserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "markdownDescription": "A regular expression for validating the incoming Amazon Cognito user pool app client ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppIdClientRegex", + "type": "string" + }, + "AwsRegion": { + "markdownDescription": "The AWS Region in which the user pool was created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsRegion", + "type": "string" + }, + "UserPoolId": { + "markdownDescription": "The user pool ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolId", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AuthorizerResultTtlInSeconds": { + "markdownDescription": "The number of seconds a response should be cached for\\. The default is 5 minutes \\(300 seconds\\)\\. The Lambda function can override this by returning a `ttlOverride` key in its response\\. A value of 0 disables caching of responses\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerResultTtlInSeconds", + "type": "number" + }, + "AuthorizerUri": { + "markdownDescription": "The ARN of the Lambda function to be called for authorization\\. This may be a standard Lambda ARN, a version ARN \\(`.../v3`\\) or alias ARN\\. \n*Note*: This Lambda function must have the following resource\\-based policy assigned to it\\. When configuring Lambda authorizers in the console, this is done for you\\. To do so with the AWS CLI, run the following: \n`aws lambda add-permission --function-name \"arn:aws:lambda:us-east-2:111122223333:function:my-function\" --statement-id \"appsync\" --principal appsync.amazonaws.com --action lambda:InvokeFunction` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerUri", + "type": "string" + }, + "IdentityValidationExpression": { + "markdownDescription": "A regular expression for validation of tokens before the Lambda function is called\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentityValidationExpression", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::GraphQLApi.LogConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsRoleArn": { + "markdownDescription": "The service role that AWS AppSync will assume to publish to Amazon CloudWatch Logs in your account\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogsRoleArn", + "type": "string" + }, + "ExcludeVerboseContent": { + "markdownDescription": "Set to TRUE to exclude sections that contain information such as headers, context, and evaluated mapping templates, regardless of logging level\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludeVerboseContent", + "type": "boolean" + }, + "FieldLogLevel": { + "markdownDescription": "The field logging level\\. Values can be NONE, ERROR, or ALL\\. \n+ **NONE**: No field\\-level logs are captured\\.\n+ **ERROR**: Logs the following information only for the fields that are in error:\n + The error section in the server response\\.\n + Field\\-level errors\\.\n + The generated request/response functions that got resolved for error fields\\.\n+ **ALL**: The following information is logged for all fields in the query:\n + Field\\-level tracing information\\.\n + The generated request/response functions that got resolved for each field\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldLogLevel", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::GraphQLApi.OpenIDConnectConfig": { + "additionalProperties": false, + "properties": { + "AuthTTL": { + "markdownDescription": "The number of milliseconds that a token is valid after being authenticated\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthTTL", + "type": "number" + }, + "ClientId": { + "markdownDescription": "The client identifier of the Relying party at the OpenID identity provider\\. This identifier is typically obtained when the Relying party is registered with the OpenID identity provider\\. You can specify a regular expression so that AWS AppSync can validate against multiple client identifiers at a time\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientId", + "type": "string" + }, + "IatTTL": { + "markdownDescription": "The number of milliseconds that a token is valid after it's issued to a user\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IatTTL", + "type": "number" + }, + "Issuer": { + "markdownDescription": "The issuer for the OIDC configuration\\. The issuer returned by discovery must exactly match the value of `iss` in the ID token\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Issuer", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::GraphQLApi.UserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "markdownDescription": "A regular expression for validating the incoming Amazon Cognito user pool app client ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppIdClientRegex", + "type": "string" + }, + "AwsRegion": { + "markdownDescription": "The AWS Region in which the user pool was created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsRegion", + "type": "string" + }, + "DefaultAction": { + "markdownDescription": "The action that you want your GraphQL API to take when a request that uses Amazon Cognito user pool authentication doesn't match the Amazon Cognito user pool configuration\\. \nWhen specifying Amazon Cognito user pools as the default authentication, you must set the value for `DefaultAction` to `ALLOW` if specifying `AdditionalAuthenticationProviders`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultAction", + "type": "string" + }, + "UserPoolId": { + "markdownDescription": "The user pool ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The AWS AppSync GraphQL API identifier to which you want to apply this schema\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", + "type": "string" + }, + "Definition": { + "markdownDescription": "The text representation of a GraphQL schema in SDL format\\. \nFor more information about using the `Ref` function, see [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Definition", + "type": "string" + }, + "DefinitionS3Location": { + "markdownDescription": "The location of a GraphQL schema file in an Amazon S3 bucket\\. Use this if you want to provision with the schema living in Amazon S3 rather than embedding it in your CloudFormation template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The AWS AppSync GraphQL API to which you want to attach this resolver\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiId", + "type": "string" + }, + "CachingConfig": { + "$ref": "#/definitions/AWS::AppSync::Resolver.CachingConfig", + "markdownDescription": "The caching configuration for the resolver\\. \n*Required*: No \n*Type*: [CachingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-cachingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CachingConfig" + }, + "Code": { + "type": "string" + }, + "CodeS3Location": { + "type": "string" + }, + "DataSourceName": { + "markdownDescription": "The resolver data source name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSourceName", + "type": "string" + }, + "FieldName": { + "markdownDescription": "The GraphQL field on a type that invokes the resolver\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FieldName", + "type": "string" + }, + "Kind": { + "markdownDescription": "The resolver type\\. \n+ **UNIT**: A UNIT resolver type\\. A UNIT resolver is the default resolver type\\. You can use a UNIT resolver to run a GraphQL query against a single data source\\.\n+ **PIPELINE**: A PIPELINE resolver type\\. You can use a PIPELINE resolver to invoke a series of `Function` objects in a serial manner\\. You can use a pipeline resolver to run a GraphQL query against multiple data sources\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Kind", + "type": "string" + }, + "MaxBatchSize": { + "markdownDescription": "The maximum number of resolver request inputs that will be sent to a single AWS Lambda function in a `BatchInvoke` operation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxBatchSize", + "type": "number" + }, + "PipelineConfig": { + "$ref": "#/definitions/AWS::AppSync::Resolver.PipelineConfig", + "markdownDescription": "Functions linked with the pipeline resolver\\. \n*Required*: No \n*Type*: [PipelineConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-pipelineconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PipelineConfig" + }, + "RequestMappingTemplate": { + "markdownDescription": "The request mapping template\\. \nRequest mapping templates are optional when using a Lambda data source\\. For all other data sources, a request mapping template is required\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestMappingTemplate", + "type": "string" + }, + "RequestMappingTemplateS3Location": { + "markdownDescription": "The location of a request mapping template in an Amazon S3 bucket\\. Use this if you want to provision with a template file in Amazon S3 rather than embedding it in your CloudFormation template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestMappingTemplateS3Location", + "type": "string" + }, + "ResponseMappingTemplate": { + "markdownDescription": "The response mapping template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseMappingTemplate", + "type": "string" + }, + "ResponseMappingTemplateS3Location": { + "markdownDescription": "The location of a response mapping template in an Amazon S3 bucket\\. Use this if you want to provision with a template file in Amazon S3 rather than embedding it in your CloudFormation template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseMappingTemplateS3Location", + "type": "string" + }, + "Runtime": { + "$ref": "#/definitions/AWS::AppSync::Resolver.AppSyncRuntime" + }, + "SyncConfig": { + "$ref": "#/definitions/AWS::AppSync::Resolver.SyncConfig", + "markdownDescription": "The `SyncConfig` for a resolver attached to a versioned data source\\. \n*Required*: No \n*Type*: [SyncConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-syncconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SyncConfig" + }, + "TypeName": { + "markdownDescription": "The GraphQL type that invokes this resolver\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "The caching keys for a resolver that has caching activated\\. \nValid values are entries from the `$context.arguments`, `$context.source`, and `$context.identity` maps\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CachingKeys", + "type": "array" + }, + "Ttl": { + "markdownDescription": "The TTL in seconds for a resolver that has caching activated\\. \nValid values are 1\u20133,600 seconds\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ttl", + "type": "number" + } + }, + "required": [ + "Ttl" + ], + "type": "object" + }, + "AWS::AppSync::Resolver.LambdaConflictHandlerConfig": { + "additionalProperties": false, + "properties": { + "LambdaConflictHandlerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the Lambda function to use as the Conflict Handler\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaConflictHandlerArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::Resolver.PipelineConfig": { + "additionalProperties": false, + "properties": { + "Functions": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of `Function` objects\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Functions", + "type": "array" + } + }, + "type": "object" + }, + "AWS::AppSync::Resolver.SyncConfig": { + "additionalProperties": false, + "properties": { + "ConflictDetection": { + "markdownDescription": "The Conflict Detection strategy to use\\. \n+ **VERSION**: Detect conflicts based on object versions for this resolver\\.\n+ **NONE**: Do not detect conflicts when invoking this resolver\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConflictDetection", + "type": "string" + }, + "ConflictHandler": { + "markdownDescription": "The Conflict Resolution strategy to perform in the event of a conflict\\. \n+ **OPTIMISTIC\\_CONCURRENCY**: Resolve conflicts by rejecting mutations when versions don't match the latest version at the server\\.\n+ **AUTOMERGE**: Resolve conflicts with the Automerge conflict resolution strategy\\.\n+ **LAMBDA**: Resolve conflicts with an AWS Lambda function supplied in the `LambdaConflictHandlerConfig`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConflictHandler", + "type": "string" + }, + "LambdaConflictHandlerConfig": { + "$ref": "#/definitions/AWS::AppSync::Resolver.LambdaConflictHandlerConfig", + "markdownDescription": "The `LambdaConflictHandlerConfig` when configuring `LAMBDA` as the Conflict Handler\\. \n*Required*: No \n*Type*: [LambdaConflictHandlerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-lambdaconflicthandlerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The maximum value that you plan to scale out to\\. When a scaling policy is in effect, Application Auto Scaling can scale out \\(expand\\) as needed to the maximum capacity limit in response to changing demand\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacity", + "type": "number" + }, + "MinCapacity": { + "markdownDescription": "The minimum value that you plan to scale in to\\. When a scaling policy is in effect, Application Auto Scaling can scale in \\(contract\\) as needed to the minimum capacity limit in response to changing demand\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinCapacity", + "type": "number" + }, + "ResourceId": { + "markdownDescription": "The identifier of the resource associated with the scalable target\\. This string consists of the resource type and unique identifier\\. \n+ ECS service \\- The resource type is `service` and the unique identifier is the cluster name and service name\\. Example: `service/default/sample-webapp`\\.\n+ Spot Fleet \\- The resource type is `spot-fleet-request` and the unique identifier is the Spot Fleet request ID\\. Example: `spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE`\\.\n+ EMR cluster \\- The resource type is `instancegroup` and the unique identifier is the cluster ID and instance group ID\\. Example: `instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0`\\.\n+ AppStream 2\\.0 fleet \\- The resource type is `fleet` and the unique identifier is the fleet name\\. Example: `fleet/sample-fleet`\\.\n+ DynamoDB table \\- The resource type is `table` and the unique identifier is the table name\\. Example: `table/my-table`\\.\n+ DynamoDB global secondary index \\- The resource type is `index` and the unique identifier is the index name\\. Example: `table/my-table/index/my-table-index`\\.\n+ Aurora DB cluster \\- The resource type is `cluster` and the unique identifier is the cluster name\\. Example: `cluster:my-db-cluster`\\.\n+ SageMaker endpoint variant \\- The resource type is `variant` and the unique identifier is the resource ID\\. Example: `endpoint/my-end-point/variant/KMeansClustering`\\.\n+ Custom resources are not supported with a resource type\\. This parameter must specify the `OutputValue` from the CloudFormation template stack used to access the resources\\. The unique identifier is defined by the service provider\\. More information is available in our [GitHub repository](https://github.com/aws/aws-auto-scaling-custom-resource)\\.\n+ Amazon Comprehend document classification endpoint \\- The resource type and unique identifier are specified using the endpoint ARN\\. Example: `arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE`\\.\n+ Amazon Comprehend entity recognizer endpoint \\- The resource type and unique identifier are specified using the endpoint ARN\\. Example: `arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE`\\.\n+ Lambda provisioned concurrency \\- The resource type is `function` and the unique identifier is the function name with a function version or alias name suffix that is not `$LATEST`\\. Example: `function:my-function:prod` or `function:my-function:1`\\.\n+ Amazon Keyspaces table \\- The resource type is `table` and the unique identifier is the table name\\. Example: `keyspace/mykeyspace/table/mytable`\\.\n+ Amazon MSK cluster \\- The resource type and unique identifier are specified using the cluster ARN\\. Example: `arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5`\\.\n+ Amazon ElastiCache replication group \\- The resource type is `replication-group` and the unique identifier is the replication group name\\. Example: `replication-group/mycluster`\\.\n+ Neptune cluster \\- The resource type is `cluster` and the unique identifier is the cluster name\\. Example: `cluster:mycluster`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceId", + "type": "string" + }, + "RoleARN": { + "markdownDescription": "Specify the Amazon Resource Name \\(ARN\\) of an Identity and Access Management \\(IAM\\) role that allows Application Auto Scaling to modify the scalable target on your behalf\\. This can be either an IAM service role that Application Auto Scaling can assume to make calls to other AWS resources on your behalf, or a service\\-linked role for the specified service\\. For more information, see [How Application Auto Scaling works with IAM](https://docs.aws.amazon.com/autoscaling/application/userguide/security_iam_service-with-iam.html) in the *Application Auto Scaling User Guide*\\. \nTo automatically create a service\\-linked role \\(recommended\\), specify the full ARN of the service\\-linked role in your stack template\\. To find the exact ARN of the service\\-linked role for your AWS or custom resource, see the [Service\\-linked roles](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-service-linked-roles.html) topic in the *Application Auto Scaling User Guide*\\. Look for the ARN in the table at the bottom of the page\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleARN", + "type": "string" + }, + "ScalableDimension": { + "markdownDescription": "The scalable dimension associated with the scalable target\\. This string consists of the service namespace, resource type, and scaling property\\. \n+ `ecs:service:DesiredCount` \\- The desired task count of an ECS service\\.\n+ `elasticmapreduce:instancegroup:InstanceCount` \\- The instance count of an EMR Instance Group\\.\n+ `ec2:spot-fleet-request:TargetCapacity` \\- The target capacity of a Spot Fleet\\.\n+ `appstream:fleet:DesiredCapacity` \\- The desired capacity of an AppStream 2\\.0 fleet\\.\n+ `dynamodb:table:ReadCapacityUnits` \\- The provisioned read capacity for a DynamoDB table\\.\n+ `dynamodb:table:WriteCapacityUnits` \\- The provisioned write capacity for a DynamoDB table\\.\n+ `dynamodb:index:ReadCapacityUnits` \\- The provisioned read capacity for a DynamoDB global secondary index\\.\n+ `dynamodb:index:WriteCapacityUnits` \\- The provisioned write capacity for a DynamoDB global secondary index\\.\n+ `rds:cluster:ReadReplicaCount` \\- The count of Aurora Replicas in an Aurora DB cluster\\. Available for Aurora MySQL\\-compatible edition and Aurora PostgreSQL\\-compatible edition\\.\n+ `sagemaker:variant:DesiredInstanceCount` \\- The number of EC2 instances for a SageMaker model endpoint variant\\.\n+ `custom-resource:ResourceType:Property` \\- The scalable dimension for a custom resource provided by your own application or service\\.\n+ `comprehend:document-classifier-endpoint:DesiredInferenceUnits` \\- The number of inference units for an Amazon Comprehend document classification endpoint\\.\n+ `comprehend:entity-recognizer-endpoint:DesiredInferenceUnits` \\- The number of inference units for an Amazon Comprehend entity recognizer endpoint\\.\n+ `lambda:function:ProvisionedConcurrency` \\- The provisioned concurrency for a Lambda function\\.\n+ `cassandra:table:ReadCapacityUnits` \\- The provisioned read capacity for an Amazon Keyspaces table\\.\n+ `cassandra:table:WriteCapacityUnits` \\- The provisioned write capacity for an Amazon Keyspaces table\\.\n+ `kafka:broker-storage:VolumeSize` \\- The provisioned volume size \\(in GiB\\) for brokers in an Amazon MSK cluster\\.\n+ `elasticache:replication-group:NodeGroups` \\- The number of node groups for an Amazon ElastiCache replication group\\.\n+ `elasticache:replication-group:Replicas` \\- The number of replicas per node group for an Amazon ElastiCache replication group\\.\n+ `neptune:cluster:ReadReplicaCount` \\- The count of read replicas in an Amazon Neptune DB cluster\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `appstream:fleet:DesiredCapacity | cassandra:table:ReadCapacityUnits | cassandra:table:WriteCapacityUnits | comprehend:document-classifier-endpoint:DesiredInferenceUnits | comprehend:entity-recognizer-endpoint:DesiredInferenceUnits | custom-resource:ResourceType:Property | dynamodb:index:ReadCapacityUnits | dynamodb:index:WriteCapacityUnits | dynamodb:table:ReadCapacityUnits | dynamodb:table:WriteCapacityUnits | ec2:spot-fleet-request:TargetCapacity | ecs:service:DesiredCount | elasticache:replication-group:NodeGroups | elasticache:replication-group:Replicas | elasticmapreduce:instancegroup:InstanceCount | kafka:broker-storage:VolumeSize | lambda:function:ProvisionedConcurrency | neptune:cluster:ReadReplicaCount | rds:cluster:ReadReplicaCount | sagemaker:variant:DesiredInstanceCount` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScalableDimension", + "type": "string" + }, + "ScheduledActions": { + "items": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction" + }, + "markdownDescription": "The scheduled actions for the scalable target\\. Duplicates aren't allowed\\. \nFor more information about using scheduled scaling, see [Scheduled scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scheduled-scaling.html) in the *Application Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: List of [ScheduledAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduledActions", + "type": "array" + }, + "ServiceNamespace": { + "markdownDescription": "The namespace of the AWS service that provides the resource, or a `custom-resource`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `appstream | cassandra | comprehend | custom-resource | dynamodb | ec2 | ecs | elasticache | elasticmapreduce | kafka | lambda | neptune | rds | sagemaker` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceNamespace", + "type": "string" + }, + "SuspendedState": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.SuspendedState", + "markdownDescription": "An embedded object that contains attributes and attribute values that are used to suspend and resume automatic scaling\\. Setting the value of an attribute to `true` suspends the specified scaling activities\\. Setting it to `false` \\(default\\) resumes the specified scaling activities\\. \n**Suspension Outcomes** \n+ For `DynamicScalingInSuspended`, while a suspension is in effect, all scale\\-in activities that are triggered by a scaling policy are suspended\\.\n+ For `DynamicScalingOutSuspended`, while a suspension is in effect, all scale\\-out activities that are triggered by a scaling policy are suspended\\.\n+ For `ScheduledScalingSuspended`, while a suspension is in effect, all scaling activities that involve scheduled actions are suspended\\. \nFor more information, see [Suspending and resuming scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-suspend-resume-scaling.html) in the *Application Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: [SuspendedState](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-suspendedstate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The maximum capacity\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacity", + "type": "number" + }, + "MinCapacity": { + "markdownDescription": "The minimum capacity\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinCapacity", + "type": "number" + } + }, + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction": { + "additionalProperties": false, + "properties": { + "EndTime": { + "markdownDescription": "The date and time that the action is scheduled to end, in UTC\\. \n*Required*: No \n*Type*: Timestamp \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndTime", + "type": "string" + }, + "ScalableTargetAction": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction", + "markdownDescription": "The new minimum and maximum capacity\\. You can set both values or just one\\. At the scheduled time, if the current capacity is below the minimum capacity, Application Auto Scaling scales out to the minimum capacity\\. If the current capacity is above the maximum capacity, Application Auto Scaling scales in to the maximum capacity\\. \n*Required*: No \n*Type*: [ScalableTargetAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scalabletargetaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalableTargetAction" + }, + "Schedule": { + "markdownDescription": "The schedule for this action\\. The following formats are supported: \n+ At expressions \\- \"`at(yyyy-mm-ddThh:mm:ss)`\"\n+ Rate expressions \\- \"`rate(value unit)`\"\n+ Cron expressions \\- \"`cron(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/fields.html)`\"\nAt expressions are useful for one\\-time schedules\\. Cron expressions are useful for scheduled actions that run periodically at a specified date and time, and rate expressions are useful for scheduled actions that run at a regular interval\\. \nAt and cron expressions use Universal Coordinated Time \\(UTC\\) by default\\. \nThe cron format consists of six https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/fields.html separated by white spaces: \\[Minutes\\] \\[Hours\\] \\[Day\\_of\\_Month\\] \\[Month\\] \\[Day\\_of\\_Week\\] \\[Year\\]\\. \nFor rate expressions, *value* is a positive integer and *unit* is `minute` \\| `minutes` \\| `hour` \\| `hours` \\| `day` \\| `days`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule", + "type": "string" + }, + "ScheduledActionName": { + "markdownDescription": "The name of the scheduled action\\. This name must be unique among all other scheduled actions on the specified scalable target\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `(?!((^[ ]+.*)|(.*([\\u0000-\\u001f]|[\\u007f-\\u009f]|[:/|])+.*)|(.*[ ]+$))).+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduledActionName", + "type": "string" + }, + "StartTime": { + "markdownDescription": "The date and time that the action is scheduled to begin, in UTC\\. \n*Required*: No \n*Type*: Timestamp \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartTime", + "type": "string" + }, + "Timezone": { + "markdownDescription": "The time zone used when referring to the date and time of a scheduled action, when the scheduled action uses an at or cron expression\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timezone", + "type": "string" + } + }, + "required": [ + "Schedule", + "ScheduledActionName" + ], + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalableTarget.SuspendedState": { + "additionalProperties": false, + "properties": { + "DynamicScalingInSuspended": { + "markdownDescription": "Whether scale in by a target tracking scaling policy or a step scaling policy is suspended\\. Set the value to `true` if you don't want Application Auto Scaling to remove capacity when a scaling policy is triggered\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DynamicScalingInSuspended", + "type": "boolean" + }, + "DynamicScalingOutSuspended": { + "markdownDescription": "Whether scale out by a target tracking scaling policy or a step scaling policy is suspended\\. Set the value to `true` if you don't want Application Auto Scaling to add capacity when a scaling policy is triggered\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DynamicScalingOutSuspended", + "type": "boolean" + }, + "ScheduledScalingSuspended": { + "markdownDescription": "Whether scheduled scaling is suspended\\. Set the value to `true` if you don't want Application Auto Scaling to add or remove capacity by initiating scheduled actions\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the scaling policy\\. \nUpdates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling\\. To change only a target tracking scaling policy's name, first delete the policy by removing the existing `AWS::ApplicationAutoScaling::ScalingPolicy` resource from the template and updating the stack\\. Then, recreate the resource with the same settings and a different name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `\\p{Print}+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PolicyName", + "type": "string" + }, + "PolicyType": { + "markdownDescription": "The scaling policy type\\. \nThe following policy types are supported: \n `TargetTrackingScaling`\u2014Not supported for Amazon EMR \n `StepScaling`\u2014Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `StepScaling | TargetTrackingScaling` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyType", + "type": "string" + }, + "ResourceId": { + "markdownDescription": "The identifier of the resource associated with the scaling policy\\. This string consists of the resource type and unique identifier\\. \n+ ECS service \\- The resource type is `service` and the unique identifier is the cluster name and service name\\. Example: `service/default/sample-webapp`\\.\n+ Spot Fleet \\- The resource type is `spot-fleet-request` and the unique identifier is the Spot Fleet request ID\\. Example: `spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE`\\.\n+ EMR cluster \\- The resource type is `instancegroup` and the unique identifier is the cluster ID and instance group ID\\. Example: `instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0`\\.\n+ AppStream 2\\.0 fleet \\- The resource type is `fleet` and the unique identifier is the fleet name\\. Example: `fleet/sample-fleet`\\.\n+ DynamoDB table \\- The resource type is `table` and the unique identifier is the table name\\. Example: `table/my-table`\\.\n+ DynamoDB global secondary index \\- The resource type is `index` and the unique identifier is the index name\\. Example: `table/my-table/index/my-table-index`\\.\n+ Aurora DB cluster \\- The resource type is `cluster` and the unique identifier is the cluster name\\. Example: `cluster:my-db-cluster`\\.\n+ SageMaker endpoint variant \\- The resource type is `variant` and the unique identifier is the resource ID\\. Example: `endpoint/my-end-point/variant/KMeansClustering`\\.\n+ Custom resources are not supported with a resource type\\. This parameter must specify the `OutputValue` from the CloudFormation template stack used to access the resources\\. The unique identifier is defined by the service provider\\. More information is available in our [GitHub repository](https://github.com/aws/aws-auto-scaling-custom-resource)\\.\n+ Amazon Comprehend document classification endpoint \\- The resource type and unique identifier are specified using the endpoint ARN\\. Example: `arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE`\\.\n+ Amazon Comprehend entity recognizer endpoint \\- The resource type and unique identifier are specified using the endpoint ARN\\. Example: `arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE`\\.\n+ Lambda provisioned concurrency \\- The resource type is `function` and the unique identifier is the function name with a function version or alias name suffix that is not `$LATEST`\\. Example: `function:my-function:prod` or `function:my-function:1`\\.\n+ Amazon Keyspaces table \\- The resource type is `table` and the unique identifier is the table name\\. Example: `keyspace/mykeyspace/table/mytable`\\.\n+ Amazon MSK cluster \\- The resource type and unique identifier are specified using the cluster ARN\\. Example: `arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5`\\.\n+ Amazon ElastiCache replication group \\- The resource type is `replication-group` and the unique identifier is the replication group name\\. Example: `replication-group/mycluster`\\.\n+ Neptune cluster \\- The resource type is `cluster` and the unique identifier is the cluster name\\. Example: `cluster:mycluster`\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceId", + "type": "string" + }, + "ScalableDimension": { + "markdownDescription": "The scalable dimension\\. This string consists of the service namespace, resource type, and scaling property\\. \n+ `ecs:service:DesiredCount` \\- The desired task count of an ECS service\\.\n+ `elasticmapreduce:instancegroup:InstanceCount` \\- The instance count of an EMR Instance Group\\.\n+ `ec2:spot-fleet-request:TargetCapacity` \\- The target capacity of a Spot Fleet\\.\n+ `appstream:fleet:DesiredCapacity` \\- The desired capacity of an AppStream 2\\.0 fleet\\.\n+ `dynamodb:table:ReadCapacityUnits` \\- The provisioned read capacity for a DynamoDB table\\.\n+ `dynamodb:table:WriteCapacityUnits` \\- The provisioned write capacity for a DynamoDB table\\.\n+ `dynamodb:index:ReadCapacityUnits` \\- The provisioned read capacity for a DynamoDB global secondary index\\.\n+ `dynamodb:index:WriteCapacityUnits` \\- The provisioned write capacity for a DynamoDB global secondary index\\.\n+ `rds:cluster:ReadReplicaCount` \\- The count of Aurora Replicas in an Aurora DB cluster\\. Available for Aurora MySQL\\-compatible edition and Aurora PostgreSQL\\-compatible edition\\.\n+ `sagemaker:variant:DesiredInstanceCount` \\- The number of EC2 instances for a SageMaker model endpoint variant\\.\n+ `custom-resource:ResourceType:Property` \\- The scalable dimension for a custom resource provided by your own application or service\\.\n+ `comprehend:document-classifier-endpoint:DesiredInferenceUnits` \\- The number of inference units for an Amazon Comprehend document classification endpoint\\.\n+ `comprehend:entity-recognizer-endpoint:DesiredInferenceUnits` \\- The number of inference units for an Amazon Comprehend entity recognizer endpoint\\.\n+ `lambda:function:ProvisionedConcurrency` \\- The provisioned concurrency for a Lambda function\\.\n+ `cassandra:table:ReadCapacityUnits` \\- The provisioned read capacity for an Amazon Keyspaces table\\.\n+ `cassandra:table:WriteCapacityUnits` \\- The provisioned write capacity for an Amazon Keyspaces table\\.\n+ `kafka:broker-storage:VolumeSize` \\- The provisioned volume size \\(in GiB\\) for brokers in an Amazon MSK cluster\\.\n+ `elasticache:replication-group:NodeGroups` \\- The number of node groups for an Amazon ElastiCache replication group\\.\n+ `elasticache:replication-group:Replicas` \\- The number of replicas per node group for an Amazon ElastiCache replication group\\.\n+ `neptune:cluster:ReadReplicaCount` \\- The count of read replicas in an Amazon Neptune DB cluster\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `appstream:fleet:DesiredCapacity | cassandra:table:ReadCapacityUnits | cassandra:table:WriteCapacityUnits | comprehend:document-classifier-endpoint:DesiredInferenceUnits | comprehend:entity-recognizer-endpoint:DesiredInferenceUnits | custom-resource:ResourceType:Property | dynamodb:index:ReadCapacityUnits | dynamodb:index:WriteCapacityUnits | dynamodb:table:ReadCapacityUnits | dynamodb:table:WriteCapacityUnits | ec2:spot-fleet-request:TargetCapacity | ecs:service:DesiredCount | elasticache:replication-group:NodeGroups | elasticache:replication-group:Replicas | elasticmapreduce:instancegroup:InstanceCount | kafka:broker-storage:VolumeSize | lambda:function:ProvisionedConcurrency | neptune:cluster:ReadReplicaCount | rds:cluster:ReadReplicaCount | sagemaker:variant:DesiredInstanceCount` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScalableDimension", + "type": "string" + }, + "ScalingTargetId": { + "markdownDescription": "The CloudFormation\\-generated ID of an Application Auto Scaling scalable target\\. For more information about the ID, see the Return Value section of the `AWS::ApplicationAutoScaling::ScalableTarget` resource\\. \nYou must specify either the `ScalingTargetId` property, or the `ResourceId`, `ScalableDimension`, and `ServiceNamespace` properties, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScalingTargetId", + "type": "string" + }, + "ServiceNamespace": { + "markdownDescription": "The namespace of the AWS service that provides the resource, or a `custom-resource`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `appstream | cassandra | comprehend | custom-resource | dynamodb | ec2 | ecs | elasticache | elasticmapreduce | kafka | lambda | neptune | rds | sagemaker` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceNamespace", + "type": "string" + }, + "StepScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration", + "markdownDescription": "A step scaling policy\\. \n*Required*: No \n*Type*: [StepScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StepScalingPolicyConfiguration" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration", + "markdownDescription": "A target tracking scaling policy\\. \n*Required*: No \n*Type*: [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The dimensions of the metric\\. \nConditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy\\. \n*Required*: No \n*Type*: List of [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", + "type": "array" + }, + "MetricName": { + "markdownDescription": "The name of the metric\\. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", + "type": "string" + }, + "Namespace": { + "markdownDescription": "The namespace of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", + "type": "string" + }, + "Statistic": { + "markdownDescription": "The statistic of the metric\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Average | Maximum | Minimum | SampleCount | Sum` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statistic", + "type": "string" + }, + "Unit": { + "markdownDescription": "The unit of the metric\\. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", + "type": "string" + } + }, + "required": [ + "MetricName", + "Namespace", + "Statistic" + ], + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "markdownDescription": "The metric type\\. The `ALBRequestCountPerTarget` metric type applies only to Spot fleet requests and ECS services\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALBRequestCountPerTarget | AppStreamAverageCapacityUtilization | CassandraReadCapacityUtilization | CassandraWriteCapacityUtilization | ComprehendInferenceUtilization | DynamoDBReadCapacityUtilization | DynamoDBWriteCapacityUtilization | EC2SpotFleetRequestAverageCPUUtilization | EC2SpotFleetRequestAverageNetworkIn | EC2SpotFleetRequestAverageNetworkOut | ECSServiceAverageCPUUtilization | ECSServiceAverageMemoryUtilization | ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage | ElastiCachePrimaryEngineCPUUtilization | ElastiCacheReplicaEngineCPUUtilization | KafkaBrokerStorageUtilization | LambdaProvisionedConcurrencyUtilization | NeptuneReaderAverageCPUUtilization | RDSReaderAverageCPUUtilization | RDSReaderAverageDatabaseConnections | SageMakerVariantInvocationsPerInstance` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedMetricType", + "type": "string" + }, + "ResourceLabel": { + "markdownDescription": "Identifies the resource associated with the metric type\\. You can't specify a resource label unless the metric type is `ALBRequestCountPerTarget` and there is a target group attached to the Spot Fleet or ECS service\\. \nYou create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash \\(/\\)\\. The format of the resource label is: \n `app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff`\\. \nWhere: \n+ app// is the final portion of the load balancer ARN\n+ targetgroup// is the final portion of the target group ARN\\.\nTo find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation\\. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1023` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceLabel", + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment": { + "additionalProperties": false, + "properties": { + "MetricIntervalLowerBound": { + "markdownDescription": "The lower bound for the difference between the alarm threshold and the CloudWatch metric\\. If the metric value is above the breach threshold, the lower bound is inclusive \\(the metric must be greater than or equal to the threshold plus the lower bound\\)\\. Otherwise, it is exclusive \\(the metric must be greater than the threshold plus the lower bound\\)\\. A null value indicates negative infinity\\. \nYou must specify at least one upper or lower bound\\. \n*Required*: Conditional \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricIntervalLowerBound", + "type": "number" + }, + "MetricIntervalUpperBound": { + "markdownDescription": "The upper bound for the difference between the alarm threshold and the CloudWatch metric\\. If the metric value is above the breach threshold, the upper bound is exclusive \\(the metric must be less than the threshold plus the upper bound\\)\\. Otherwise, it is inclusive \\(the metric must be less than or equal to the threshold plus the upper bound\\)\\. A null value indicates positive infinity\\. \nYou must specify at least one upper or lower bound\\. \n*Required*: Conditional \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricIntervalUpperBound", + "type": "number" + }, + "ScalingAdjustment": { + "markdownDescription": "The amount by which to scale\\. The adjustment is based on the value that you specified in the `AdjustmentType` property \\(either an absolute number or a percentage\\)\\. A positive value adds to the current capacity and a negative number subtracts from the current capacity\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalingAdjustment", + "type": "number" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "markdownDescription": "Specifies whether the `ScalingAdjustment` value in the `StepAdjustment` property is an absolute number or a percentage of the current capacity\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ChangeInCapacity | ExactCapacity | PercentChangeInCapacity` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdjustmentType", + "type": "string" + }, + "Cooldown": { + "markdownDescription": "The amount of time, in seconds, to wait for a previous scaling activity to take effect\\. \nWith scale\\-out policies, the intention is to continuously \\(but not excessively\\) scale out\\. After Application Auto Scaling successfully scales out using a step scaling policy, it starts to calculate the cooldown time\\. The scaling policy won't increase the desired capacity again unless either a larger scale out is triggered or the cooldown period ends\\. While the cooldown period is in effect, capacity added by the initiating scale\\-out activity is calculated as part of the desired capacity for the next scale\\-out activity\\. For example, when an alarm triggers a step scaling policy to increase the capacity by 2, the scaling activity completes successfully, and a cooldown period starts\\. If the alarm triggers again during the cooldown period but at a more aggressive step adjustment of 3, the previous increase of 2 is considered part of the current capacity\\. Therefore, only 1 is added to the capacity\\. \nWith scale\\-in policies, the intention is to scale in conservatively to protect your application\u2019s availability, so scale\\-in activities are blocked until the cooldown period has expired\\. However, if another alarm triggers a scale\\-out activity during the cooldown period after a scale\\-in activity, Application Auto Scaling scales out the target immediately\\. In this case, the cooldown period for the scale\\-in activity stops and doesn't complete\\. \nApplication Auto Scaling provides a default value of 600 for Amazon ElastiCache replication groups and a default value of 300 for the following scalable targets: \n+ AppStream 2\\.0 fleets\n+ Aurora DB clusters\n+ ECS services\n+ EMR clusters\n+ Neptune clusters\n+ SageMaker endpoint variants\n+ Spot Fleets\n+ Custom resources\nFor all other scalable targets, the default value is 0: \n+ Amazon Comprehend document classification and entity recognizer endpoints\n+ DynamoDB tables and global secondary indexes\n+ Amazon Keyspaces tables\n+ Lambda provisioned concurrency\n+ Amazon MSK broker storage\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cooldown", + "type": "number" + }, + "MetricAggregationType": { + "markdownDescription": "The aggregation type for the CloudWatch metrics\\. Valid values are `Minimum`, `Maximum`, and `Average`\\. If the aggregation type is null, the value is treated as `Average`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Average | Maximum | Minimum` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricAggregationType", + "type": "string" + }, + "MinAdjustmentMagnitude": { + "markdownDescription": "The minimum value to scale by when the adjustment type is `PercentChangeInCapacity`\\. For example, suppose that you create a step scaling policy to scale out an Amazon ECS service by 25 percent and you specify a `MinAdjustmentMagnitude` of 2\\. If the service has 4 tasks and the scaling policy is performed, 25 percent of 4 is 1\\. However, because you specified a `MinAdjustmentMagnitude` of 2, Application Auto Scaling scales out the service by 2 tasks\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinAdjustmentMagnitude", + "type": "number" + }, + "StepAdjustments": { + "items": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment" + }, + "markdownDescription": "A set of adjustments that enable you to scale based on the size of the alarm breach\\. \nAt least one step adjustment is required if you are adding a new step scaling policy configuration\\. \n*Required*: No \n*Type*: List of [StepAdjustment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StepAdjustments", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "CustomizedMetricSpecification": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification", + "markdownDescription": "A customized metric\\. You can specify either a predefined metric or a customized metric\\. \n*Required*: No \n*Type*: [CustomizedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomizedMetricSpecification" + }, + "DisableScaleIn": { + "markdownDescription": "Indicates whether scale in by the target tracking scaling policy is disabled\\. If the value is `true`, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target\\. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableScaleIn", + "type": "boolean" + }, + "PredefinedMetricSpecification": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification", + "markdownDescription": "A predefined metric\\. You can specify either a predefined metric or a customized metric\\. \n*Required*: No \n*Type*: [PredefinedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predefinedmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedMetricSpecification" + }, + "ScaleInCooldown": { + "markdownDescription": "The amount of time, in seconds, after a scale\\-in activity completes before another scale\\-in activity can start\\. \nWith the *scale\\-in cooldown period*, the intention is to scale in conservatively to protect your application\u2019s availability, so scale\\-in activities are blocked until the cooldown period has expired\\. However, if another alarm triggers a scale\\-out activity during the scale\\-in cooldown period, Application Auto Scaling scales out the target immediately\\. In this case, the scale\\-in cooldown period stops and doesn't complete\\. \nApplication Auto Scaling provides a default value of 600 for Amazon ElastiCache replication groups and a default value of 300 for the following scalable targets: \n+ AppStream 2\\.0 fleets\n+ Aurora DB clusters\n+ ECS services\n+ EMR clusters\n+ Neptune clusters\n+ SageMaker endpoint variants\n+ Spot Fleets\n+ Custom resources\nFor all other scalable targets, the default value is 0: \n+ Amazon Comprehend document classification and entity recognizer endpoints\n+ DynamoDB tables and global secondary indexes\n+ Amazon Keyspaces tables\n+ Lambda provisioned concurrency\n+ Amazon MSK broker storage\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScaleInCooldown", + "type": "number" + }, + "ScaleOutCooldown": { + "markdownDescription": "The amount of time, in seconds, to wait for a previous scale\\-out activity to take effect\\. \nWith the *scale\\-out cooldown period*, the intention is to continuously \\(but not excessively\\) scale out\\. After Application Auto Scaling successfully scales out using a target tracking scaling policy, it starts to calculate the cooldown time\\. The scaling policy won't increase the desired capacity again unless either a larger scale out is triggered or the cooldown period ends\\. While the cooldown period is in effect, the capacity added by the initiating scale\\-out activity is calculated as part of the desired capacity for the next scale\\-out activity\\. \nApplication Auto Scaling provides a default value of 600 for Amazon ElastiCache replication groups and a default value of 300 for the following scalable targets: \n+ AppStream 2\\.0 fleets\n+ Aurora DB clusters\n+ ECS services\n+ EMR clusters\n+ Neptune clusters\n+ SageMaker endpoint variants\n+ Spot Fleets\n+ Custom resources\nFor all other scalable targets, the default value is 0: \n+ Amazon Comprehend document classification and entity recognizer endpoints\n+ DynamoDB tables and global secondary indexes\n+ Amazon Keyspaces tables\n+ Lambda provisioned concurrency\n+ Amazon MSK broker storage\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScaleOutCooldown", + "type": "number" + }, + "TargetValue": { + "markdownDescription": "The target value for the metric\\. Although this property accepts numbers of type Double, it won't accept values that are either too small or too large\\. Values must be in the range of \\-2^360 to 2^360\\. The value must be a valid number based on the choice of metric\\. For example, if the metric is CPU utilization, then the target value is a percent value that represents how much of the CPU can be used before scaling out\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "If set to `true`, the application components will be configured with the monitoring configuration recommended by Application Insights\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoConfigurationEnabled", + "type": "boolean" + }, + "CWEMonitorEnabled": { + "markdownDescription": "Indicates whether Application Insights can listen to CloudWatch events for the application resources, such as `instance terminated`, `failed deployment`, and others\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CWEMonitorEnabled", + "type": "boolean" + }, + "ComponentMonitoringSettings": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.ComponentMonitoringSetting" + }, + "markdownDescription": "The monitoring settings of the components\\. \n*Required*: No \n*Type*: List of [ComponentMonitoringSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentMonitoringSettings", + "type": "array" + }, + "CustomComponents": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.CustomComponent" + }, + "markdownDescription": "Describes a custom component by grouping similar standalone instances to monitor\\. \n*Required*: No \n*Type*: List of [CustomComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-customcomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomComponents", + "type": "array" + }, + "GroupingType": { + "type": "string" + }, + "LogPatternSets": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.LogPatternSet" + }, + "markdownDescription": "The log pattern sets\\. \n*Required*: No \n*Type*: List of [LogPatternSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-logpatternset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogPatternSets", + "type": "array" + }, + "OpsCenterEnabled": { + "markdownDescription": "Indicates whether Application Insights will create OpsItems for any problem that is detected by Application Insights for an application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OpsCenterEnabled", + "type": "boolean" + }, + "OpsItemSNSTopicArn": { + "markdownDescription": "The SNS topic provided to Application Insights that is associated with the created OpsItems to receive SNS notifications for opsItem updates\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `300` \n*Pattern*: `^arn:aws(-\\w+)*:[\\w\\d-]+:([\\w\\d-]*)?:[\\w\\d_-]*([:/].+)*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OpsItemSNSTopicArn", + "type": "string" + }, + "ResourceGroupName": { + "markdownDescription": "The name of the resource group used for the application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z0-9\\.\\-_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceGroupName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of `Tags`\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The name of the CloudWatch alarm to be monitored for the component\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmName", + "type": "string" + }, + "Severity": { + "markdownDescription": "Indicates the degree of outage when the alarm goes off\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Severity", + "type": "string" + } + }, + "required": [ + "AlarmName" + ], + "type": "object" + }, + "AWS::ApplicationInsights::Application.AlarmMetric": { + "additionalProperties": false, + "properties": { + "AlarmMetricName": { + "markdownDescription": "The name of the metric to be monitored for the component\\. For metrics supported by Application Insights, see [Logs and metrics supported by Amazon CloudWatch Application Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/appinsights-logs-and-metrics.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmMetricName", + "type": "string" + } + }, + "required": [ + "AlarmMetricName" + ], + "type": "object" + }, + "AWS::ApplicationInsights::Application.ComponentConfiguration": { + "additionalProperties": false, + "properties": { + "ConfigurationDetails": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.ConfigurationDetails", + "markdownDescription": "The configuration settings\\. \n*Required*: No \n*Type*: [ConfigurationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-configurationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfigurationDetails" + }, + "SubComponentTypeConfigurations": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.SubComponentTypeConfiguration" + }, + "markdownDescription": "Sub\\-component configurations of the component\\. \n*Required*: No \n*Type*: List of [SubComponentTypeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-subcomponenttypeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubComponentTypeConfigurations", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ApplicationInsights::Application.ComponentMonitoringSetting": { + "additionalProperties": false, + "properties": { + "ComponentARN": { + "markdownDescription": "The ARN of the component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentARN", + "type": "string" + }, + "ComponentConfigurationMode": { + "markdownDescription": "Component monitoring can be configured in one of the following three modes: \n+ `DEFAULT`: The component will be configured with the recommended default monitoring settings of the selected `Tier`\\.\n+ `CUSTOM`: The component will be configured with the customized monitoring settings that are specified in `CustomComponentConfiguration`\\. If used, `CustomComponentConfiguration` must be provided\\.\n+ `DEFAULT_WITH_OVERWRITE`: The component will be configured with the recommended default monitoring settings of the selected `Tier`, and merged with customized overwrite settings that are specified in `DefaultOverwriteComponentConfiguration`\\. If used, `DefaultOverwriteComponentConfiguration` must be provided\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentConfigurationMode", + "type": "string" + }, + "ComponentName": { + "markdownDescription": "The name of the component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentName", + "type": "string" + }, + "CustomComponentConfiguration": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.ComponentConfiguration", + "markdownDescription": "Customized monitoring settings\\. Required if CUSTOM mode is configured in `ComponentConfigurationMode`\\. \n*Required*: No \n*Type*: [ComponentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomComponentConfiguration" + }, + "DefaultOverwriteComponentConfiguration": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.ComponentConfiguration", + "markdownDescription": "Customized overwrite monitoring settings\\. Required if CUSTOM mode is configured in `ComponentConfigurationMode`\\. \n*Required*: No \n*Type*: [ComponentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultOverwriteComponentConfiguration" + }, + "Tier": { + "markdownDescription": "The tier of the application component\\. Supported tiers include `DOT_NET_CORE`, `DOT_NET_WORKER`, `DOT_NET_WEB`, `SQL_SERVER`, `SQL_SERVER_ALWAYSON_AVAILABILITY_GROUP`, `SQL_SERVER_FAILOVER_CLUSTER_INSTANCE`, `MYSQL`, `POSTGRESQL`, `JAVA_JMX`, `ORACLE`, `SAP_HANA_MULTI_NODE`, `SAP_HANA_SINGLE_NODE`, `SAP_HANA_HIGH_AVAILABILITY`, `SHAREPOINT`\\. `ACTIVE_DIRECTORY`, and `DEFAULT`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tier", + "type": "string" + } + }, + "required": [ + "ComponentConfigurationMode", + "Tier" + ], + "type": "object" + }, + "AWS::ApplicationInsights::Application.ConfigurationDetails": { + "additionalProperties": false, + "properties": { + "AlarmMetrics": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.AlarmMetric" + }, + "markdownDescription": "A list of metrics to monitor for the component\\. All component types can use `AlarmMetrics`\\. \n*Required*: No \n*Type*: List of [AlarmMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-alarmmetric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmMetrics", + "type": "array" + }, + "Alarms": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.Alarm" + }, + "markdownDescription": "A list of alarms to monitor for the component\\. All component types can use `Alarm`\\. \n*Required*: No \n*Type*: List of [Alarm](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-alarm.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alarms", + "type": "array" + }, + "HAClusterPrometheusExporter": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.HAClusterPrometheusExporter", + "markdownDescription": "The HA cluster Prometheus Exporter settings\\. \n*Required*: No \n*Type*: [HAClusterPrometheusExporter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-haclusterprometheusexporter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HAClusterPrometheusExporter" + }, + "HANAPrometheusExporter": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.HANAPrometheusExporter", + "markdownDescription": "The HANA DB Prometheus Exporter settings\\. \n*Required*: No \n*Type*: [HANAPrometheusExporter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-hanaprometheusexporter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HANAPrometheusExporter" + }, + "JMXPrometheusExporter": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.JMXPrometheusExporter", + "markdownDescription": "A list of Java metrics to monitor for the component\\. \n*Required*: No \n*Type*: [JMXPrometheusExporter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-jmxprometheusexporter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JMXPrometheusExporter" + }, + "Logs": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.Log" + }, + "markdownDescription": "A list of logs to monitor for the component\\. Only Amazon EC2 instances can use `Logs`\\. \n*Required*: No \n*Type*: List of [Log](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-log.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Logs", + "type": "array" + }, + "WindowsEvents": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.WindowsEvent" + }, + "markdownDescription": "A list of Windows Events to monitor for the component\\. Only Amazon EC2 instances running on Windows can use `WindowsEvents`\\. \n*Required*: No \n*Type*: List of [WindowsEvent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-windowsevent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WindowsEvents", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ApplicationInsights::Application.CustomComponent": { + "additionalProperties": false, + "properties": { + "ComponentName": { + "markdownDescription": "The name of the component\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\d\\w\\-_\\.+]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentName", + "type": "string" + }, + "ResourceList": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of resource ARNs that belong to the component\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceList", + "type": "array" + } + }, + "required": [ + "ComponentName", + "ResourceList" + ], + "type": "object" + }, + "AWS::ApplicationInsights::Application.HAClusterPrometheusExporter": { + "additionalProperties": false, + "properties": { + "PrometheusPort": { + "markdownDescription": "The target port to which Prometheus sends metrics\\. If not specified, the default port 9668 is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrometheusPort", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApplicationInsights::Application.HANAPrometheusExporter": { + "additionalProperties": false, + "properties": { + "AgreeToInstallHANADBClient": { + "markdownDescription": "Designates whether you agree to install the HANA DB client\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AgreeToInstallHANADBClient", + "type": "boolean" + }, + "HANAPort": { + "markdownDescription": "The HANA database port by which the exporter will query HANA metrics\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HANAPort", + "type": "string" + }, + "HANASID": { + "markdownDescription": "The three\\-character SAP system ID \\(SID\\) of the SAP HANA system\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HANASID", + "type": "string" + }, + "HANASecretName": { + "markdownDescription": "The AWS Secrets Manager secret that stores HANA monitoring user credentials\\. The HANA Prometheus exporter uses these credentials to connect to the database and query HANA metrics\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HANASecretName", + "type": "string" + }, + "PrometheusPort": { + "markdownDescription": "The target port to which Prometheus sends metrics\\. If not specified, the default port 9668 is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrometheusPort", + "type": "string" + } + }, + "required": [ + "AgreeToInstallHANADBClient", + "HANAPort", + "HANASID", + "HANASecretName" + ], + "type": "object" + }, + "AWS::ApplicationInsights::Application.JMXPrometheusExporter": { + "additionalProperties": false, + "properties": { + "HostPort": { + "markdownDescription": "The host and port to connect to through remote JMX\\. Only one of `jmxURL` and `hostPort` can be specified\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostPort", + "type": "string" + }, + "JMXURL": { + "markdownDescription": "The complete JMX URL to connect to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JMXURL", + "type": "string" + }, + "PrometheusPort": { + "markdownDescription": "The target port to send Prometheus metrics to\\. If not specified, the default port `9404` is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrometheusPort", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApplicationInsights::Application.Log": { + "additionalProperties": false, + "properties": { + "Encoding": { + "markdownDescription": "The type of encoding of the logs to be monitored\\. The specified encoding should be included in the list of CloudWatch agent supported encodings\\. If not provided, CloudWatch Application Insights uses the default encoding type for the log type: \n+ `APPLICATION/DEFAULT`: utf\\-8 encoding\n+ `SQL_SERVER`: utf\\-16 encoding\n+ `IIS`: ascii encoding\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encoding", + "type": "string" + }, + "LogGroupName": { + "markdownDescription": "The CloudWatch log group name to be associated with the monitored log\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroupName", + "type": "string" + }, + "LogPath": { + "markdownDescription": "The path of the logs to be monitored\\. The log path must be an absolute Windows or Linux system file path\\. For more information, see [CloudWatch Agent Configuration File: Logs Section](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html#CloudWatch-Agent-Configuration-File-Logssection)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogPath", + "type": "string" + }, + "LogType": { + "markdownDescription": "The log type decides the log patterns against which Application Insights analyzes the log\\. The log type is selected from the following: `SQL_SERVER`, `MYSQL`, `MYSQL_SLOW_QUERY`, `POSTGRESQL`, `ORACLE_ALERT`, `ORACLE_LISTENER`, `IIS`, `APPLICATION`, `WINDOWS_EVENTS`, `WINDOWS_EVENTS_ACTIVE_DIRECTORY`, `WINDOWS_EVENTS_DNS `, `WINDOWS_EVENTS_IIS `, `WINDOWS_EVENTS_SHAREPOINT`, `SQL_SERVER_ALWAYSON_AVAILABILITY_GROUP`, `SQL_SERVER_FAILOVER_CLUSTER_INSTANCE`, `STEP_FUNCTION`, `API_GATEWAY_ACCESS`, `API_GATEWAY_EXECUTION`, `SAP_HANA_LOGS`, `SAP_HANA_TRACE`, `SAP_HANA_HIGH_AVAILABILITY`, and `DEFAULT`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogType", + "type": "string" + }, + "PatternSet": { + "markdownDescription": "The log pattern set\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatternSet", + "type": "string" + } + }, + "required": [ + "LogType" + ], + "type": "object" + }, + "AWS::ApplicationInsights::Application.LogPattern": { + "additionalProperties": false, + "properties": { + "Pattern": { + "markdownDescription": "A regular expression that defines the log pattern\\. A log pattern can contain up to 50 characters, and it cannot be empty\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `[\\S\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Pattern", + "type": "string" + }, + "PatternName": { + "markdownDescription": "The name of the log pattern\\. A log pattern name can contain up to 50 characters, and it cannot be empty\\. The characters can be Unicode letters, digits, or one of the following symbols: period, dash, underscore\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `[a-zA-Z0-9\\.\\-_]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatternName", + "type": "string" + }, + "Rank": { + "markdownDescription": "The rank of the log pattern\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rank", + "type": "number" + } + }, + "required": [ + "Pattern", + "PatternName", + "Rank" + ], + "type": "object" + }, + "AWS::ApplicationInsights::Application.LogPatternSet": { + "additionalProperties": false, + "properties": { + "LogPatterns": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.LogPattern" + }, + "markdownDescription": "A list of objects that define the log patterns that belong to `LogPatternSet`\\. \n*Required*: Yes \n*Type*: List of [LogPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-logpattern.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogPatterns", + "type": "array" + }, + "PatternSetName": { + "markdownDescription": "The name of the log pattern\\. A log pattern name can contain up to 30 characters, and it cannot be empty\\. The characters can be Unicode letters, digits, or one of the following symbols: period, dash, underscore\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `30` \n*Pattern*: `[a-zA-Z0-9\\.\\-_]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatternSetName", + "type": "string" + } + }, + "required": [ + "LogPatterns", + "PatternSetName" + ], + "type": "object" + }, + "AWS::ApplicationInsights::Application.SubComponentConfigurationDetails": { + "additionalProperties": false, + "properties": { + "AlarmMetrics": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.AlarmMetric" + }, + "markdownDescription": "A list of metrics to monitor for the component\\. All component types can use `AlarmMetrics`\\. \n*Required*: No \n*Type*: List of [AlarmMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-alarmmetric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmMetrics", + "type": "array" + }, + "Logs": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.Log" + }, + "markdownDescription": "A list of logs to monitor for the component\\. Only Amazon EC2 instances can use `Logs`\\. \n*Required*: No \n*Type*: List of [Log](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-log.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Logs", + "type": "array" + }, + "WindowsEvents": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.WindowsEvent" + }, + "markdownDescription": "A list of Windows Events to monitor for the component\\. Only Amazon EC2 instances running on Windows can use `WindowsEvents`\\. \n*Required*: No \n*Type*: List of [WindowsEvent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-windowsevent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WindowsEvents", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ApplicationInsights::Application.SubComponentTypeConfiguration": { + "additionalProperties": false, + "properties": { + "SubComponentConfigurationDetails": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.SubComponentConfigurationDetails", + "markdownDescription": "The configuration settings of the sub\\-components\\. \n*Required*: Yes \n*Type*: [SubComponentConfigurationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-subcomponentconfigurationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubComponentConfigurationDetails" + }, + "SubComponentType": { + "markdownDescription": "The sub\\-component type\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubComponentType", + "type": "string" + } + }, + "required": [ + "SubComponentConfigurationDetails", + "SubComponentType" + ], + "type": "object" + }, + "AWS::ApplicationInsights::Application.WindowsEvent": { + "additionalProperties": false, + "properties": { + "EventLevels": { + "items": { + "type": "string" + }, + "markdownDescription": "The levels of event to log\\. You must specify each level to log\\. Possible values include `INFORMATION`, `WARNING`, `ERROR`, `CRITICAL`, and `VERBOSE`\\. This field is required for each type of Windows Event to log\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventLevels", + "type": "array" + }, + "EventName": { + "markdownDescription": "The type of Windows Events to log, equivalent to the Windows Event log channel name\\. For example, System, Security, CustomEventName, and so on\\. This field is required for each type of Windows event to log\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventName", + "type": "string" + }, + "LogGroupName": { + "markdownDescription": "The CloudWatch log group name to be associated with the monitored log\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroupName", + "type": "string" + }, + "PatternSet": { + "markdownDescription": "The log pattern set\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A description of the data catalog\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the data catalog\\. The catalog name must be unique for the AWS account and can use a maximum of 128 alphanumeric, underscore, at sign, or hyphen characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Parameters": { + "additionalProperties": true, + "markdownDescription": "Specifies the Lambda function or functions to use for the data catalog\\. The mapping used depends on the catalog type\\. \n+ The `HIVE` data catalog type uses the following syntax\\. The `metadata-function` parameter is required\\. `The sdk-version` parameter is optional and defaults to the currently supported version\\.", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Parameters", + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags \\(key\\-value pairs\\) to associate with this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Type": { + "markdownDescription": "The type of data catalog: `LAMBDA` for a federated catalog, `GLUE` for AWS Glue Catalog, or `HIVE` for an external hive metastore\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "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": { + "markdownDescription": "The database to which the query belongs\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Database", + "type": "string" + }, + "Description": { + "markdownDescription": "The query description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The query name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "QueryString": { + "markdownDescription": "The SQL statements that make up the query\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `262144` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "QueryString", + "type": "string" + }, + "WorkGroup": { + "markdownDescription": "The name of the workgroup that contains the named query\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[a-zA-Z0-9._-]{1,128}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The description of the prepared statement\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "QueryStatement": { + "markdownDescription": "The query string for the prepared statement\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `262144` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryStatement", + "type": "string" + }, + "StatementName": { + "markdownDescription": "The name of the prepared statement\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z_][a-zA-Z0-9_@:]{1,256}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StatementName", + "type": "string" + }, + "WorkGroup": { + "markdownDescription": "The workgroup to which the prepared statement belongs\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The workgroup description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The workgroup name\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-zA-Z0-9._-]{1,128}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RecursiveDeleteOption": { + "markdownDescription": "The option to delete a workgroup and its contents even if the workgroup contains any named queries\\. The default is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecursiveDeleteOption", + "type": "boolean" + }, + "State": { + "markdownDescription": "The state of the workgroup: ENABLED or DISABLED\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags \\(key\\-value pairs\\) to associate with this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "WorkGroupConfiguration": { + "$ref": "#/definitions/AWS::Athena::WorkGroup.WorkGroupConfiguration", + "markdownDescription": "The configuration of the workgroup, which includes the location in Amazon S3 where query results are stored, the encryption option, if any, used for query results, whether Amazon CloudWatch Metrics are enabled for the workgroup, and the limit for the amount of bytes scanned \\(cutoff\\) per query, if it is specified\\. The [EnforceWorkGroupConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-enforceworkgroupconfiguration) option determines whether workgroup settings override client\\-side query settings\\. \n*Required*: No \n*Type*: [WorkGroupConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Indicates whether Amazon S3 server\\-side encryption with Amazon S3\\-managed keys \\(`SSE_S3`\\), server\\-side encryption with KMS\\-managed keys \\(`SSE_KMS`\\), or client\\-side encryption with KMS\\-managed keys \\(`CSE_KMS`\\) is used\\. \nIf a query runs in a workgroup and the workgroup overrides client\\-side settings, then the workgroup's setting for encryption is used\\. It specifies whether query results must be encrypted, for all queries that run in this workgroup\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CSE_KMS | SSE_KMS | SSE_S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionOption", + "type": "string" + }, + "KmsKey": { + "markdownDescription": "For `SSE_KMS` and `CSE_KMS`, this is the KMS key ARN or ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKey", + "type": "string" + } + }, + "required": [ + "EncryptionOption" + ], + "type": "object" + }, + "AWS::Athena::WorkGroup.EngineVersion": { + "additionalProperties": false, + "properties": { + "EffectiveEngineVersion": { + "markdownDescription": "Read only\\. The engine version on which the query runs\\. If the user requests a valid engine version other than Auto, the effective engine version is the same as the engine version that the user requested\\. If the user requests Auto, the effective engine version is chosen by Athena\\. When a request to update the engine version is made by a `CreateWorkGroup` or `UpdateWorkGroup` operation, the `EffectiveEngineVersion` field is ignored\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EffectiveEngineVersion", + "type": "string" + }, + "SelectedEngineVersion": { + "markdownDescription": "The engine version requested by the user\\. Possible values are determined by the output of `ListEngineVersions`, including Auto\\. The default is Auto\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SelectedEngineVersion", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Athena::WorkGroup.ResultConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionConfiguration": { + "$ref": "#/definitions/AWS::Athena::WorkGroup.EncryptionConfiguration", + "markdownDescription": "If query results are encrypted in Amazon S3, indicates the encryption option used \\(for example, `SSE_KMS` or `CSE_KMS`\\) and key information\\. This is a client\\-side setting\\. If workgroup settings override client\\-side settings, then the query uses the encryption configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup\\. See [EnforceWorkGroupConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-enforceworkgroupconfiguration) and [Workgroup Settings Override Client\\-Side Settings](https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html)\\. \n*Required*: No \n*Type*: [EncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-encryptionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionConfiguration" + }, + "OutputLocation": { + "markdownDescription": "The location in Amazon S3 where your query results are stored, such as `s3://path/to/query/bucket/`\\. To run a query, you must specify the query results location using either a client\\-side setting for individual queries or a location specified by the workgroup\\. If workgroup settings override client\\-side settings, then the query uses the location specified for the workgroup\\. If no query location is set, Athena issues an error\\. For more information, see [Working with Query Results, Output Files, and Query History](https://docs.aws.amazon.com/athena/latest/ug/querying.html) and [EnforceWorkGroupConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-enforceworkgroupconfiguration)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputLocation", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Athena::WorkGroup.WorkGroupConfiguration": { + "additionalProperties": false, + "properties": { + "BytesScannedCutoffPerQuery": { + "markdownDescription": "The upper limit \\(cutoff\\) for the amount of bytes a single query in a workgroup is allowed to scan\\. No default is defined\\. \nThis property currently supports integer types\\. Support for long values is planned\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BytesScannedCutoffPerQuery", + "type": "number" + }, + "EnforceWorkGroupConfiguration": { + "markdownDescription": "If set to \"true\", the settings for the workgroup override client\\-side settings\\. If set to \"false\", client\\-side settings are used\\. For more information, see [Workgroup Settings Override Client\\-Side Settings](https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnforceWorkGroupConfiguration", + "type": "boolean" + }, + "EngineVersion": { + "$ref": "#/definitions/AWS::Athena::WorkGroup.EngineVersion", + "markdownDescription": "The engine version that all queries running on the workgroup use\\. Queries on the `AmazonAthenaPreviewFunctionality` workgroup run on the preview engine regardless of this setting\\. \n*Required*: No \n*Type*: [EngineVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-engineversion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EngineVersion" + }, + "PublishCloudWatchMetricsEnabled": { + "markdownDescription": "Indicates that the Amazon CloudWatch metrics are enabled for the workgroup\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublishCloudWatchMetricsEnabled", + "type": "boolean" + }, + "RequesterPaysEnabled": { + "markdownDescription": "If set to `true`, allows members assigned to a workgroup to reference Amazon S3 Requester Pays buckets in queries\\. If set to `false`, workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error\\. The default is `false`\\. For more information about Requester Pays buckets, see [Requester Pays Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) in the *Amazon Simple Storage Service Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequesterPaysEnabled", + "type": "boolean" + }, + "ResultConfiguration": { + "$ref": "#/definitions/AWS::Athena::WorkGroup.ResultConfiguration", + "markdownDescription": "Specifies the location in Amazon S3 where query results are stored and the encryption option, if any, used for query results\\. For more information, see [Working with Query Results, Output Files, and Query History](https://docs.aws.amazon.com/athena/latest/ug/querying.html)\\. \n*Required*: No \n*Type*: [ResultConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-resultconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The destination that evidence reports are stored in for the assessment\\. \n*Required*: No \n*Type*: [AssessmentReportsDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-assessmentreportsdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssessmentReportsDestination" + }, + "AwsAccount": { + "$ref": "#/definitions/AWS::AuditManager::Assessment.AWSAccount", + "markdownDescription": "The AWS account that's associated with the assessment\\. \n*Required*: No \n*Type*: [AWSAccount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-awsaccount.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AwsAccount" + }, + "Delegations": { + "items": { + "$ref": "#/definitions/AWS::AuditManager::Assessment.Delegation" + }, + "type": "array" + }, + "Description": { + "markdownDescription": "The description of the assessment\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Pattern*: `^[\\w\\W\\s\\S]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "FrameworkId": { + "markdownDescription": "The unique identifier for the framework\\. \n*Required*: No \n*Type*: String \n*Minimum*: `36` \n*Maximum*: `36` \n*Pattern*: `^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FrameworkId", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the assessment\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Pattern*: `^[^\\\\]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Roles": { + "items": { + "$ref": "#/definitions/AWS::AuditManager::Assessment.Role" + }, + "markdownDescription": "The roles that are associated with the assessment\\. \n*Required*: No \n*Type*: List of [Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-role.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Roles", + "type": "array" + }, + "Scope": { + "$ref": "#/definitions/AWS::AuditManager::Assessment.Scope", + "markdownDescription": "The wrapper of AWS accounts and services that are in scope for the assessment\\. \n*Required*: No \n*Type*: [Scope](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-scope.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scope" + }, + "Status": { + "markdownDescription": "The overall status of the assessment\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ACTIVE | INACTIVE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags that are associated with the assessment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The email address that's associated with the AWS account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `320` \n*Pattern*: `^.*@.*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EmailAddress", + "type": "string" + }, + "Id": { + "markdownDescription": "The identifier for the AWS account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the AWS account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `^[\\u0020-\\u007E]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AuditManager::Assessment.AWSService": { + "additionalProperties": false, + "properties": { + "ServiceName": { + "markdownDescription": "The name of the AWS service\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `40` \n*Pattern*: `^[a-zA-Z0-9-\\s().]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AuditManager::Assessment.AssessmentReportsDestination": { + "additionalProperties": false, + "properties": { + "Destination": { + "markdownDescription": "The destination of the assessment report\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `^(S|s)3:\\/\\/[a-zA-Z0-9\\-\\.\\(\\)\\'\\*\\_\\!\\/]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination", + "type": "string" + }, + "DestinationType": { + "markdownDescription": "The destination type, such as Amazon S3\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AuditManager::Assessment.Delegation": { + "additionalProperties": false, + "properties": { + "AssessmentId": { + "markdownDescription": "The identifier for the assessment that's associated with the delegation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `36` \n*Maximum*: `36` \n*Pattern*: `^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssessmentId", + "type": "string" + }, + "AssessmentName": { + "markdownDescription": "The name of the assessment that's associated with the delegation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Pattern*: `^[^\\\\]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssessmentName", + "type": "string" + }, + "Comment": { + "markdownDescription": "The comment that's related to the delegation\\. \n*Required*: No \n*Type*: String \n*Maximum*: `350` \n*Pattern*: `^[\\w\\W\\s\\S]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", + "type": "string" + }, + "ControlSetId": { + "markdownDescription": "The identifier for the control set that's associated with the delegation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Pattern*: `^[\\w\\W\\s\\S]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ControlSetId", + "type": "string" + }, + "CreatedBy": { + "markdownDescription": "The IAM user or role that created the delegation\\. \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9-_()\\\\[\\\\]\\\\s]+$` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedBy", + "type": "string" + }, + "CreationTime": { + "markdownDescription": "Specifies when the delegation was created\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreationTime", + "type": "number" + }, + "Id": { + "markdownDescription": "The unique identifier for the delegation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `36` \n*Maximum*: `36` \n*Pattern*: `^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "LastUpdated": { + "markdownDescription": "Specifies when the delegation was last updated\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUpdated", + "type": "number" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^arn:.*:iam:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "RoleType": { + "markdownDescription": "The type of customer persona\\. \nIn `CreateAssessment`, `roleType` can only be `PROCESS_OWNER`\\. \nIn `UpdateSettings`, `roleType` can only be `PROCESS_OWNER`\\. \nIn `BatchCreateDelegationByAssessment`, `roleType` can only be `RESOURCE_OWNER`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `PROCESS_OWNER | RESOURCE_OWNER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleType", + "type": "string" + }, + "Status": { + "markdownDescription": "The status of the delegation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `COMPLETE | IN_PROGRESS | UNDER_REVIEW` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AuditManager::Assessment.Role": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^arn:.*:iam:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "RoleType": { + "markdownDescription": "The type of customer persona\\. \nIn `CreateAssessment`, `roleType` can only be `PROCESS_OWNER`\\. \nIn `UpdateSettings`, `roleType` can only be `PROCESS_OWNER`\\. \nIn `BatchCreateDelegationByAssessment`, `roleType` can only be `RESOURCE_OWNER`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `PROCESS_OWNER | RESOURCE_OWNER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AuditManager::Assessment.Scope": { + "additionalProperties": false, + "properties": { + "AwsAccounts": { + "items": { + "$ref": "#/definitions/AWS::AuditManager::Assessment.AWSAccount" + }, + "markdownDescription": "The AWS accounts that are included in the scope of the assessment\\. \n*Required*: No \n*Type*: List of [AWSAccount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-awsaccount.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsAccounts", + "type": "array" + }, + "AwsServices": { + "items": { + "$ref": "#/definitions/AWS::AuditManager::Assessment.AWSService" + }, + "markdownDescription": "The AWS services that are included in the scope of the assessment\\. \n*Required*: No \n*Type*: List of [AWSService](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-awsservice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsServices", + "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": { + "markdownDescription": "The name of the Auto Scaling group\\. This name must be unique per Region per account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutoScalingGroupName", + "type": "string" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of Availability Zones where instances in the Auto Scaling group can be created\\. You must specify one of the following properties: `VPCZoneIdentifier` or `AvailabilityZones`\\. If your account supports EC2\\-Classic and VPC, this property is required to create an Auto Scaling group that launches instances into EC2\\-Classic\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZones", + "type": "array" + }, + "CapacityRebalance": { + "markdownDescription": "Indicates whether Capacity Rebalancing is enabled\\. For more information, see [Amazon EC2 Auto Scaling Capacity Rebalancing](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityRebalance", + "type": "boolean" + }, + "Context": { + "markdownDescription": "Reserved\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Context", + "type": "string" + }, + "Cooldown": { + "markdownDescription": "The amount of time, in seconds, after a scaling activity completes before another scaling activity can start\\. The default value is `300`\\. This setting applies when using simple scaling policies, but not when using other scaling policies or scheduled scaling\\. For more information, see [Scaling cooldowns for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cooldown", + "type": "string" + }, + "DefaultInstanceWarmup": { + "type": "number" + }, + "DesiredCapacity": { + "markdownDescription": "The desired capacity is the initial capacity of the Auto Scaling group at the time of its creation and the capacity it attempts to maintain\\. It can scale beyond this capacity if you configure automatic scaling\\. \nThe number must be greater than or equal to the minimum size of the group and less than or equal to the maximum size of the group\\. If you do not specify a desired capacity when creating the stack, the default is the minimum size of the group\\. \nCloudFormation marks the Auto Scaling group as successful \\(by setting its status to CREATE\\_COMPLETE\\) when the desired capacity is reached\\. However, if a maximum Spot price is set in the launch template or launch configuration that you specified, then desired capacity is not used as a criteria for success\\. Whether your request is fulfilled depends on Spot Instance capacity and your maximum price\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DesiredCapacity", + "type": "string" + }, + "DesiredCapacityType": { + "markdownDescription": "The unit of measurement for the value specified for desired capacity\\. Amazon EC2 Auto Scaling supports `DesiredCapacityType` for attribute\\-based instance type selection only\\. For more information, see [Creating an Auto Scaling group using attribute\\-based instance type selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \nBy default, Amazon EC2 Auto Scaling specifies `units`, which translates into number of instances\\. \nValid values: `units` \\| `vcpu` \\| `memory-mib` \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DesiredCapacityType", + "type": "string" + }, + "HealthCheckGracePeriod": { + "markdownDescription": "The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service and marking it unhealthy due to a failed health check\\. The default value is `0`\\. For more information, see [Health checks for Auto Scaling instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \nIf you are adding an `ELB` health check, you must specify this property\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckGracePeriod", + "type": "number" + }, + "HealthCheckType": { + "markdownDescription": "The service to use for the health checks\\. The valid values are `EC2` \\(default\\) and `ELB`\\. If you configure an Auto Scaling group to use load balancer \\(ELB\\) health checks, it considers the instance unhealthy if it fails either the EC2 status checks or the load balancer health checks\\. For more information, see [Health checks for Auto Scaling instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckType", + "type": "string" + }, + "InstanceId": { + "markdownDescription": "The ID of the instance used to base the launch configuration on\\. If specified, Amazon EC2 Auto Scaling uses the configuration values from the specified instance to create a new launch configuration\\. For more information, see [Creating an Auto Scaling group using an EC2 instance](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-from-instance.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \nTo get the instance ID, use the EC2 [DescribeInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html) API operation\\. \nIf you specify `LaunchTemplate`, `MixedInstancesPolicy`, or `LaunchConfigurationName`, don't specify `InstanceId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceId", + "type": "string" + }, + "LaunchConfigurationName": { + "markdownDescription": "The name of the [launch configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html) to use to launch instances\\. \nIf you specify `LaunchTemplate`, `MixedInstancesPolicy`, or `InstanceId`, don't specify `LaunchConfigurationName`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchConfigurationName", + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification", + "markdownDescription": "Properties used to specify the [launch template](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html) and version to use to launch instances\\. You can alternatively associate a launch template to the Auto Scaling group by specifying a `MixedInstancesPolicy`\\. \nIf you omit this property, you must specify `MixedInstancesPolicy`, `LaunchConfigurationName`, or `InstanceId`\\. \n*Required*: Conditional \n*Type*: [LaunchTemplateSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplatespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplate" + }, + "LifecycleHookSpecificationList": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification" + }, + "markdownDescription": "One or more lifecycle hooks for the group, which specify actions to perform when Amazon EC2 Auto Scaling launches or terminates instances\\. \n*Required*: No \n*Type*: List of [LifecycleHookSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-lifecyclehookspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LifecycleHookSpecificationList", + "type": "array" + }, + "LoadBalancerNames": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of Classic Load Balancers associated with this Auto Scaling group\\. For Application Load Balancers, Network Load Balancers, and Gateway Load Balancers, specify the `TargetGroupARNs` property instead\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerNames", + "type": "array" + }, + "MaxInstanceLifetime": { + "markdownDescription": "The maximum amount of time, in seconds, that an instance can be in service\\. The default is null\\. If specified, the value must be either 0 or a number equal to or greater than 86,400 seconds \\(1 day\\)\\. For more information, see [Replacing Auto Scaling instances based on maximum instance lifetime](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxInstanceLifetime", + "type": "number" + }, + "MaxSize": { + "markdownDescription": "The maximum size of the group\\. \nWith a mixed instances policy that uses instance weighting, Amazon EC2 Auto Scaling may need to go above `MaxSize` to meet your capacity requirements\\. In this event, Amazon EC2 Auto Scaling will never go above `MaxSize` by more than your largest instance weight \\(weights that define how many units each instance contributes to the desired capacity of the group\\)\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxSize", + "type": "string" + }, + "MetricsCollection": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MetricsCollection" + }, + "markdownDescription": "Enables the monitoring of group metrics of an Auto Scaling group\\. By default, these metrics are disabled\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-metricscollection.html) of [MetricsCollection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-metricscollection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricsCollection", + "type": "array" + }, + "MinSize": { + "markdownDescription": "The minimum size of the group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinSize", + "type": "string" + }, + "MixedInstancesPolicy": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy", + "markdownDescription": "An embedded object that specifies a mixed instances policy\\. \nThe policy includes properties that not only define the distribution of On\\-Demand Instances and Spot Instances, the maximum price to pay for Spot Instances \\(optional\\), and how the Auto Scaling group allocates instance types to fulfill On\\-Demand and Spot capacities, but also the properties that specify the instance configuration information\u2014the launch template and instance types\\. The policy can also include a weight for each instance type and different launch templates for individual instance types\\. \nFor more information, see [Auto Scaling groups with multiple instance types and purchase options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \nIf you specify `LaunchTemplate`, `InstanceId`, or `LaunchConfigurationName`, don't specify `MixedInstancesPolicy`\\. \n*Required*: Conditional \n*Type*: [MixedInstancesPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-mixedinstancespolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MixedInstancesPolicy" + }, + "NewInstancesProtectedFromScaleIn": { + "markdownDescription": "Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto Scaling when scaling in\\. For more information about preventing instances from terminating on scale in, see [Instance Protection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NewInstancesProtectedFromScaleIn", + "type": "boolean" + }, + "NotificationConfigurations": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration" + }, + "markdownDescription": "Configures an Auto Scaling group to send notifications when specified events take place\\. \n*Required*: No \n*Type*: List of [NotificationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-notificationconfigurations.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationConfigurations", + "type": "array" + }, + "PlacementGroup": { + "markdownDescription": "The name of the placement group into which you want to launch your instances\\. For more information, see [Placement groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \nA *cluster* placement group is a logical grouping of instances within a single Availability Zone\\. You cannot specify multiple Availability Zones and a cluster placement group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlacementGroup", + "type": "string" + }, + "ServiceLinkedRoleARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the service\\-linked role that the Auto Scaling group uses to call other AWS services on your behalf\\. By default, Amazon EC2 Auto Scaling uses a service\\-linked role named `AWSServiceRoleForAutoScaling`, which it creates if it does not exist\\. For more information, see [Service\\-linked roles for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceLinkedRoleARN", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.TagProperty" + }, + "markdownDescription": "One or more tags\\. You can tag your Auto Scaling group and propagate the tags to the Amazon EC2 instances it launches\\. For more information, see [Tagging Auto Scaling groups and instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: List of [TagProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TargetGroupARNs": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more Amazon Resource Names \\(ARN\\) of load balancer target groups to associate with the Auto Scaling group\\. Instances are registered as targets in a target group, and traffic is routed to the target group\\. For more information, see [Elastic Load Balancing and Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroupARNs", + "type": "array" + }, + "TerminationPolicies": { + "items": { + "type": "string" + }, + "markdownDescription": "A policy or a list of policies that are used to select the instances to terminate\\. The policies are executed in the order that you list them\\. The termination policies supported by Amazon EC2 Auto Scaling: `OldestInstance`, `OldestLaunchConfiguration`, `NewestInstance`, `ClosestToNextInstanceHour`, `Default`, `OldestLaunchTemplate`, and `AllocationStrategy`\\. For more information, see [Controlling which Auto Scaling instances terminate during scale in](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TerminationPolicies", + "type": "array" + }, + "VPCZoneIdentifier": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of subnet IDs for a virtual private cloud \\(VPC\\) where instances in the Auto Scaling group can be created\\. If you specify `VPCZoneIdentifier` with `AvailabilityZones`, the subnets that you specify for this property must reside in those Availability Zones\\. \nIf this resource specifies public subnets and is also in a VPC that is defined in the same stack template, you must use the [DependsOn attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) to declare a dependency on the [VPC\\-gateway attachment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html)\\. \nWhen you update `VPCZoneIdentifier`, this retains the same Auto Scaling group and replaces old instances with new ones, according to the specified subnets\\. You can optionally specify how CloudFormation handles these updates by using an [UpdatePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html)\\.\n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "VPCZoneIdentifier", + "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": { + "markdownDescription": "The maximum value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The memory maximum in MiB\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The memory minimum in MiB\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum value in Mbps\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum value in Mbps\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.InstanceRequirements": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.AcceleratorCountRequest", + "markdownDescription": "The minimum and maximum number of accelerators \\(GPUs, FPGAs, or AWS Inferentia chips\\) for an instance type\\. \nTo exclude accelerator\\-enabled instance types, set `Max` to `0`\\. \nDefault: No minimum or maximum \n*Required*: No \n*Type*: [AcceleratorCountRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-acceleratorcountrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceleratorCount" + }, + "AcceleratorManufacturers": { + "items": { + "type": "string" + }, + "markdownDescription": "Indicates whether instance types must have accelerators by specific manufacturers\\. \n+ For instance types with NVIDIA devices, specify `nvidia`\\.\n+ For instance types with AMD devices, specify `amd`\\.\n+ For instance types with AWS devices, specify `amazon-web-services`\\.\n+ For instance types with Xilinx devices, specify `xilinx`\\.\nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceleratorManufacturers", + "type": "array" + }, + "AcceleratorNames": { + "items": { + "type": "string" + }, + "markdownDescription": "Lists the accelerators that must be on an instance type\\. \n+ For instance types with NVIDIA A100 GPUs, specify `a100`\\.\n+ For instance types with NVIDIA V100 GPUs, specify `v100`\\.\n+ For instance types with NVIDIA K80 GPUs, specify `k80`\\.\n+ For instance types with NVIDIA T4 GPUs, specify `t4`\\.\n+ For instance types with NVIDIA M60 GPUs, specify `m60`\\.\n+ For instance types with AMD Radeon Pro V520 GPUs, specify `radeon-pro-v520`\\.\n+ For instance types with Xilinx VU9P FPGAs, specify `vu9p`\\.\nDefault: Any accelerator \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceleratorNames", + "type": "array" + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.AcceleratorTotalMemoryMiBRequest", + "markdownDescription": "The minimum and maximum total memory size for the accelerators on an instance type, in MiB\\. \nDefault: No minimum or maximum \n*Required*: No \n*Type*: [AcceleratorTotalMemoryMiBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-acceleratortotalmemorymibrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceleratorTotalMemoryMiB" + }, + "AcceleratorTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "Lists the accelerator types that must be on an instance type\\. \n+ For instance types with GPU accelerators, specify `gpu`\\.\n+ For instance types with FPGA accelerators, specify `fpga`\\.\n+ For instance types with inference accelerators, specify `inference`\\.\nDefault: Any accelerator type \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceleratorTypes", + "type": "array" + }, + "AllowedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BareMetal": { + "markdownDescription": "Indicates whether bare metal instance types are included, excluded, or required\\. \nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BareMetal", + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.BaselineEbsBandwidthMbpsRequest", + "markdownDescription": "The minimum and maximum baseline bandwidth performance for an instance type, in Mbps\\. For more information, see [Amazon EBS\u2013optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \nDefault: No minimum or maximum \n*Required*: No \n*Type*: [BaselineEbsBandwidthMbpsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-baselineebsbandwidthmbpsrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaselineEbsBandwidthMbps" + }, + "BurstablePerformance": { + "markdownDescription": "Indicates whether burstable performance instance types are included, excluded, or required\\. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BurstablePerformance", + "type": "string" + }, + "CpuManufacturers": { + "items": { + "type": "string" + }, + "markdownDescription": "Lists which specific CPU manufacturers to include\\. \n+ For instance types with Intel CPUs, specify `intel`\\.\n+ For instance types with AMD CPUs, specify `amd`\\.\n+ For instance types with AWS CPUs, specify `amazon-web-services`\\.\nDon't confuse the CPU hardware manufacturer with the CPU hardware architecture\\. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image \\(AMI\\) that you specify in your launch template\\. \nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CpuManufacturers", + "type": "array" + }, + "ExcludedInstanceTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "Lists which instance types to exclude\\. You can use strings with one or more wild cards, represented by an asterisk \\(`*`\\)\\. The following are examples: `c5*`, `m5a.*`, `r*`, `*3*`\\. \nFor example, if you specify `c5*`, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types\\. If you specify `m5a.*`, you are excluding all the M5a instance types, but not the M5n instance types\\. \nDefault: No excluded instance types \n*Required*: No \n*Type*: List of String \n*Maximum*: `400` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludedInstanceTypes", + "type": "array" + }, + "InstanceGenerations": { + "items": { + "type": "string" + }, + "markdownDescription": "Indicates whether current or previous generation instance types are included\\. \n+ For current generation instance types, specify `current`\\. The current generation includes EC2 instance types currently recommended for use\\. This typically includes the latest two to three generations in each instance family\\. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide for Linux Instances*\\.\n+ For previous generation instance types, specify `previous`\\.\nDefault: Any current or previous generation \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceGenerations", + "type": "array" + }, + "LocalStorage": { + "markdownDescription": "Indicates whether instance types with instance store volumes are included, excluded, or required\\. For more information, see [Amazon EC2 instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \nDefault: `included` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocalStorage", + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "Indicates the type of local storage that is required\\. \n+ For instance types with hard disk drive \\(HDD\\) storage, specify `hdd`\\.\n+ For instance types with solid state drive \\(SSD\\) storage, specify `sdd`\\.\nDefault: Any local storage type \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocalStorageTypes", + "type": "array" + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MemoryGiBPerVCpuRequest", + "markdownDescription": "The minimum and maximum amount of memory per vCPU for an instance type, in GiB\\. \nDefault: No minimum or maximum \n*Required*: No \n*Type*: [MemoryGiBPerVCpuRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-memorygibpervcpurequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MemoryGiBPerVCpu" + }, + "MemoryMiB": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MemoryMiBRequest", + "markdownDescription": "The minimum and maximum instance memory size for an instance type, in MiB\\. \n*Required*: No \n*Type*: [MemoryMiBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-memorymibrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MemoryMiB" + }, + "NetworkBandwidthGbps": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NetworkBandwidthGbpsRequest" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NetworkInterfaceCountRequest", + "markdownDescription": "The minimum and maximum number of network interfaces for an instance type\\. \nDefault: No minimum or maximum \n*Required*: No \n*Type*: [NetworkInterfaceCountRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-networkinterfacecountrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkInterfaceCount" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "markdownDescription": "The price protection threshold for On\\-Demand Instances\\. This is the maximum you\u2019ll pay for an On\\-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes\\. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold\\. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage\\. To turn off price protection, specify a high value, such as `999999`\\. \nIf you set `DesiredCapacityType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price\\. \nDefault: `20` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnDemandMaxPricePercentageOverLowestPrice", + "type": "number" + }, + "RequireHibernateSupport": { + "markdownDescription": "Indicates whether instance types must provide On\\-Demand Instance hibernation support\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequireHibernateSupport", + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "markdownDescription": "The price protection threshold for Spot Instances\\. This is the maximum you\u2019ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes\\. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold\\. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage\\. To turn off price protection, specify a high value, such as `999999`\\. \nIf you set `DesiredCapacityType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price\\. \nDefault: `100` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpotMaxPricePercentageOverLowestPrice", + "type": "number" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.TotalLocalStorageGBRequest", + "markdownDescription": "The minimum and maximum total local storage size for an instance type, in GB\\. \nDefault: No minimum or maximum \n*Required*: No \n*Type*: [TotalLocalStorageGBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-totallocalstoragegbrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TotalLocalStorageGB" + }, + "VCpuCount": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.VCpuCountRequest", + "markdownDescription": "The minimum and maximum number of vCPUs for an instance type\\. \n*Required*: No \n*Type*: [VCpuCountRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-vcpucountrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VCpuCount" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.InstancesDistribution": { + "additionalProperties": false, + "properties": { + "OnDemandAllocationStrategy": { + "markdownDescription": "The order of the launch template overrides to use in fulfilling On\\-Demand capacity\\. \nIf you specify `lowest-price`, Amazon EC2 Auto Scaling uses price to determine the order, launching the lowest price first\\. \nIf you specify `prioritized`, Amazon EC2 Auto Scaling uses the priority that you assigned to each launch template override, launching the highest priority first\\. If all your On\\-Demand capacity cannot be fulfilled using your highest priority instance, then Amazon EC2 Auto Scaling launches the remaining capacity using the second priority instance type, and so on\\. \nDefault: `lowest-price` for Auto Scaling groups that specify the `InstanceRequirements` property in the overrides and `prioritized` for Auto Scaling groups that don't\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnDemandAllocationStrategy", + "type": "string" + }, + "OnDemandBaseCapacity": { + "markdownDescription": "The minimum amount of the Auto Scaling group's capacity that must be fulfilled by On\\-Demand Instances\\. This base portion is launched first as your group scales\\. \nIf you specify weights for the instance types in the overrides, the base capacity is measured in the same unit of measurement as the instance types\\. If you specify the `InstanceRequirements` property in the overrides, the base capacity is measured in the same unit of measurement as your group's desired capacity\\. \nDefault: `0` \nAn update to this setting means a gradual replacement of instances to adjust the current On\\-Demand Instance levels\\. When replacing instances, Amazon EC2 Auto Scaling launches new instances before terminating the previous ones\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "OnDemandBaseCapacity", + "type": "number" + }, + "OnDemandPercentageAboveBaseCapacity": { + "markdownDescription": "Controls the percentages of On\\-Demand Instances and Spot Instances for your additional capacity beyond `OnDemandBaseCapacity`\\. Expressed as a number \\(for example, 20 specifies 20% On\\-Demand Instances, 80% Spot Instances\\)\\. If set to 100, only On\\-Demand Instances are used\\. \nDefault: `100` \nAn update to this setting means a gradual replacement of instances to adjust the current On\\-Demand and Spot Instance levels for your additional capacity higher than the base capacity\\. When replacing instances, Amazon EC2 Auto Scaling launches new instances before terminating the previous ones\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "OnDemandPercentageAboveBaseCapacity", + "type": "number" + }, + "SpotAllocationStrategy": { + "markdownDescription": "If the allocation strategy is `lowest-price`, the Auto Scaling group launches instances using the Spot pools with the lowest price, and evenly allocates your instances across the number of Spot pools that you specify\\. \nIf the allocation strategy is `capacity-optimized` \\(recommended\\), the Auto Scaling group launches instances using Spot pools that are optimally chosen based on the available Spot capacity\\. Alternatively, you can use `capacity-optimized-prioritized` and set the order of instance types in the list of launch template overrides from highest to lowest priority \\(from first to last in the list\\)\\. Amazon EC2 Auto Scaling honors the instance type priorities on a best\\-effort basis but optimizes for capacity first\\. \nDefault: `lowest-price` \nValid values: `lowest-price` \\| `capacity-optimized` \\| `capacity-optimized-prioritized` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpotAllocationStrategy", + "type": "string" + }, + "SpotInstancePools": { + "markdownDescription": "The number of Spot Instance pools to use to allocate your Spot capacity\\. The Spot pools are determined from the different instance types in the overrides\\. Valid only when the Spot allocation strategy is `lowest-price`\\. Value must be in the range of 1\u201320\\. \nDefault: `2` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpotInstancePools", + "type": "number" + }, + "SpotMaxPrice": { + "markdownDescription": "The maximum price per unit hour that you are willing to pay for a Spot Instance\\. If you leave the value at its default \\(empty\\), Amazon EC2 Auto Scaling uses the On\\-Demand price as the maximum Spot price\\. To remove a value that you previously set, include the property but specify an empty string \\(\"\"\\) for the value\\. \nIf your maximum price is lower than the Spot price for the instance types that you selected, your Spot Instances are not launched\\.\nValid Range: Minimum value of 0\\.001 \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpotMaxPrice", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.LaunchTemplate": { + "additionalProperties": false, + "properties": { + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification", + "markdownDescription": "The launch template to use\\. \n*Required*: Yes \n*Type*: [LaunchTemplateSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplatespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplateSpecification" + }, + "Overrides": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides" + }, + "markdownDescription": "Any properties that you specify override the same properties in the launch template\\. If not provided, Amazon EC2 Auto Scaling uses the instance type or instance requirements specified in the launch template when it launches an instance\\. \nThe overrides can include either one or more instance types or a set of instance requirements, but not both\\. \n*Required*: No \n*Type*: List of [LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Overrides", + "type": "array" + } + }, + "required": [ + "LaunchTemplateSpecification" + ], + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides": { + "additionalProperties": false, + "properties": { + "InstanceRequirements": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.InstanceRequirements", + "markdownDescription": "The instance requirements\\. When you specify instance requirements, Amazon EC2 Auto Scaling finds instance types that satisfy your requirements, and then uses your On\\-Demand and Spot allocation strategies to launch instances from these instance types, in the same way as when you specify a list of specific instance types\\. \n`InstanceRequirements` are incompatible with the `InstanceType` property\\. If you specify both of these properties, Amazon EC2 Auto Scaling will return a `ValidationException` exception\\. \n*Required*: No \n*Type*: [InstanceRequirements](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-instancerequirements.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceRequirements" + }, + "InstanceType": { + "markdownDescription": "The instance type, such as `m3.xlarge`\\. You must use an instance type that is supported in your requested Region and Availability Zones\\. For more information, see [Available instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes) in the *Amazon EC2 User Guide for Linux Instances\\.* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", + "type": "string" + }, + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification", + "markdownDescription": "Provides a launch template for the specified instance type or instance requirements\\. For example, some instance types might require a launch template with a different AMI\\. If not provided, Amazon EC2 Auto Scaling uses the launch template that's defined for your mixed instances policy\\. For more information, see [Specifying a different launch template for an instance type](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups-launch-template-overrides.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: [LaunchTemplateSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplatespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplateSpecification" + }, + "WeightedCapacity": { + "markdownDescription": "The number of capacity units provided by the instance type specified in `InstanceType` in terms of virtual CPUs, memory, storage, throughput, or other relative performance characteristic\\. When a Spot or On\\-Demand Instance is provisioned, the capacity units count toward the desired capacity\\. Amazon EC2 Auto Scaling provisions instances until the desired capacity is totally fulfilled, even if this results in an overage\\. For example, if there are 2 units remaining to fulfill capacity, and Amazon EC2 Auto Scaling can only provision an instance with a `WeightedCapacity` of 5 units, the instance is provisioned, and the desired capacity is exceeded by 3 units\\. For more information, see [Instance weighting for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups-instance-weighting.html) in the *Amazon EC2 Auto Scaling User Guide*\\. Value must be in the range of 1\\-999\\. \nEvery Auto Scaling group has three size parameters \\(`DesiredCapacity`, `MaxSize`, and `MinSize`\\)\\. Usually, you set these sizes based on a specific number of instances\\. However, if you configure a mixed instances policy that defines weights for the instance types, you must specify these sizes with the same units that you use for weighting instances\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WeightedCapacity", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "markdownDescription": "The ID of the [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html)\\. You must specify either a `LaunchTemplateName` or a `LaunchTemplateId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplateId", + "type": "string" + }, + "LaunchTemplateName": { + "markdownDescription": "The name of the [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html)\\. You must specify either a `LaunchTemplateName` or a `LaunchTemplateId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplateName", + "type": "string" + }, + "Version": { + "markdownDescription": "The version number\\. CloudFormation does not support specifying $Latest, or $Default for the template version number\\. However, you can specify `LatestVersionNumber` or `DefaultVersionNumber` using the `Fn::GetAtt` function\\. \nFor an example of using the `Fn::GetAtt` function, see the [Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#aws-properties-as-group--examples) section of the `AWS::AutoScaling::AutoScalingGroup` documentation\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", + "type": "string" + } + }, + "required": [ + "Version" + ], + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification": { + "additionalProperties": false, + "properties": { + "DefaultResult": { + "markdownDescription": "The action the Auto Scaling group takes when the lifecycle hook timeout elapses or if an unexpected failure occurs\\. The valid values are `CONTINUE` and `ABANDON` \\(default\\)\\. \nFor more information, see [Adding lifecycle hooks](https://docs.aws.amazon.com/autoscaling/ec2/userguide/adding-lifecycle-hooks.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultResult", + "type": "string" + }, + "HeartbeatTimeout": { + "markdownDescription": "The maximum time, in seconds, that can elapse before the lifecycle hook times out\\. If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the default action\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeartbeatTimeout", + "type": "number" + }, + "LifecycleHookName": { + "markdownDescription": "The name of the lifecycle hook\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[A-Za-z0-9\\-_\\/]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LifecycleHookName", + "type": "string" + }, + "LifecycleTransition": { + "markdownDescription": "The state of the EC2 instance to attach the lifecycle hook to\\. The valid values are: \n+ autoscaling:EC2\\_INSTANCE\\_LAUNCHING\n+ autoscaling:EC2\\_INSTANCE\\_TERMINATING\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LifecycleTransition", + "type": "string" + }, + "NotificationMetadata": { + "markdownDescription": "Additional information that you want to include any time Amazon EC2 Auto Scaling sends a message to the notification target\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1023` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationMetadata", + "type": "string" + }, + "NotificationTargetARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the notification target that Amazon EC2 Auto Scaling uses to notify you when an instance is in the transition state for the lifecycle hook\\. You can specify an Amazon SQS queue or an Amazon SNS topic\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationTargetARN", + "type": "string" + }, + "RoleARN": { + "markdownDescription": "The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target, for example, an Amazon SNS topic or an Amazon SQS queue\\. For information about creating this role, see [Configuring a notification target for a lifecycle hook](https://docs.aws.amazon.com/autoscaling/ec2/userguide/configuring-lifecycle-hook-notifications.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleARN", + "type": "string" + } + }, + "required": [ + "LifecycleHookName", + "LifecycleTransition" + ], + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The memory maximum in GiB\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The memory minimum in GiB\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The memory maximum in MiB\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The memory minimum in MiB\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.MetricsCollection": { + "additionalProperties": false, + "properties": { + "Granularity": { + "markdownDescription": "The frequency at which Amazon EC2 Auto Scaling sends aggregated data to CloudWatch\\. \n*Allowed Values*: `1Minute` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Granularity", + "type": "string" + }, + "Metrics": { + "items": { + "type": "string" + }, + "markdownDescription": "Specifies which group\\-level metrics to start collecting\\. \n*Allowed Values*: \n+ `GroupMinSize` \n+ `GroupMaxSize` \n+ `GroupDesiredCapacity` \n+ `GroupInServiceInstances` \n+ `GroupPendingInstances` \n+ `GroupStandbyInstances` \n+ `GroupTerminatingInstances` \n+ `GroupTotalInstances` \n+ `GroupInServiceCapacity` \n+ `GroupPendingCapacity` \n+ `GroupStandbyCapacity` \n+ `GroupTerminatingCapacity` \n+ `GroupTotalCapacity` \n+ `WarmPoolDesiredCapacity` \n+ `WarmPoolWarmedCapacity` \n+ `WarmPoolPendingCapacity` \n+ `WarmPoolTerminatingCapacity` \n+ `WarmPoolTotalCapacity` \n+ `GroupAndWarmPoolDesiredCapacity` \n+ `GroupAndWarmPoolTotalCapacity` \nIf you specify `Granularity` and don't specify any metrics, all metrics are enabled\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metrics", + "type": "array" + } + }, + "required": [ + "Granularity" + ], + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy": { + "additionalProperties": false, + "properties": { + "InstancesDistribution": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.InstancesDistribution", + "markdownDescription": "The instances distribution to use\\. If you leave this property unspecified, the value for each property in `InstancesDistribution` uses a default value\\. \n*Required*: No \n*Type*: [InstancesDistribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-instancesdistribution.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstancesDistribution" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplate", + "markdownDescription": "Specifies the launch template to use and optionally the instance types \\(overrides\\) that are used to provision EC2 instances to fulfill On\\-Demand and Spot capacities\\. \n*Required*: Yes \n*Type*: [LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The maximum number of network interfaces\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum number of network interfaces\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration": { + "additionalProperties": false, + "properties": { + "NotificationTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of event types that trigger a notification\\. Event types can include any of the following types\\. \n*Allowed Values*: \n+ `autoscaling:EC2_INSTANCE_LAUNCH` \n+ `autoscaling:EC2_INSTANCE_LAUNCH_ERROR` \n+ `autoscaling:EC2_INSTANCE_TERMINATE` \n+ `autoscaling:EC2_INSTANCE_TERMINATE_ERROR` \n+ `autoscaling:TEST_NOTIFICATION` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationTypes", + "type": "array" + }, + "TopicARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TopicARN", + "type": "string" + } + }, + "required": [ + "TopicARN" + ], + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.TagProperty": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The tag key\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "PropagateAtLaunch": { + "markdownDescription": "Set to `true` if you want CloudFormation to copy the tag to EC2 instances that are launched as part of the Auto Scaling group\\. Set to `false` if you want the tag attached only to the Auto Scaling group and not copied to any instances launched as part of the Auto Scaling group\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropagateAtLaunch", + "type": "boolean" + }, + "Value": { + "markdownDescription": "The tag value\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "PropagateAtLaunch", + "Value" + ], + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The storage maximum in GB\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The storage minimum in GB\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.VCpuCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum number of vCPUs\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum number of vCPUs\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "For Auto Scaling groups that are running in a virtual private cloud \\(VPC\\), specifies whether to assign a public IP address to the group's instances\\. If you specify `true`, each instance in the Auto Scaling group receives a unique public IP address\\. For more information, see [Launching Auto Scaling instances in a VPC](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \nIf an instance receives a public IP address and is also in a VPC that is defined in the same stack template, you must use the [DependsOn attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) to declare a dependency on the [VPC\\-gateway attachment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html)\\. \nIf the instance is launched into a default subnet, the default is to assign a public IP address, unless you disabled the option to assign a public IP address on the subnet\\. If the instance is launched into a nondefault subnet, the default is not to assign a public IP address, unless you enabled the option to assign a public IP address on the subnet\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AssociatePublicIpAddress", + "type": "boolean" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping" + }, + "markdownDescription": "Specifies how block devices are exposed to the instance\\. You can specify virtual devices and EBS volumes\\. \n*Required*: No \n*Type*: List of [BlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-blockdevicemapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BlockDeviceMappings", + "type": "array" + }, + "ClassicLinkVPCId": { + "markdownDescription": "*EC2\\-Classic retires on August 15, 2022\\. This parameter is not supported after that date\\.* \nThe ID of a ClassicLink\\-enabled VPC to link your EC2\\-Classic instances to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClassicLinkVPCId", + "type": "string" + }, + "ClassicLinkVPCSecurityGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "*EC2\\-Classic retires on August 15, 2022\\. This parameter is not supported after that date\\.* \nThe IDs of one or more security groups for the VPC that you specified in the `ClassicLinkVPCId` property\\. \nIf you specify the `ClassicLinkVPCId` property, you must specify this property\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClassicLinkVPCSecurityGroups", + "type": "array" + }, + "EbsOptimized": { + "markdownDescription": "Specifies whether the launch configuration is optimized for EBS I/O \\(`true`\\) or not \\(`false`\\)\\. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance\\. Additional fees are incurred when you enable EBS optimization for an instance type that is not EBS\\-optimized by default\\. For more information, see [Amazon EBS\u2013optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \nThe default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsOptimized", + "type": "boolean" + }, + "IamInstanceProfile": { + "markdownDescription": "Provides the name or the Amazon Resource Name \\(ARN\\) of the instance profile associated with the IAM role for the instance\\. The instance profile contains the IAM role\\. \nFor more information, see [IAM role for applications that run on Amazon EC2 instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/us-iam-role.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IamInstanceProfile", + "type": "string" + }, + "ImageId": { + "markdownDescription": "Provides the unique ID of the Amazon Machine Image \\(AMI\\) that was assigned during registration\\. For more information, see [Finding a Linux AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageId", + "type": "string" + }, + "InstanceId": { + "markdownDescription": "The ID of the Amazon EC2 instance you want to use to create the launch configuration\\. Use this property if you want the launch configuration to use settings from an existing Amazon EC2 instance\\. When you use an instance to create a launch configuration, all properties are derived from the instance with the exception of `BlockDeviceMapping` and `AssociatePublicIpAddress`\\. You can override any properties from the instance by specifying them in the launch configuration\\. \n \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceId", + "type": "string" + }, + "InstanceMonitoring": { + "markdownDescription": "Controls whether instances in this group are launched with detailed \\(`true`\\) or basic \\(`false`\\) monitoring\\. The default value is `true` \\(enabled\\)\\. \nWhen detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and your account is charged a fee\\. When you disable detailed monitoring, CloudWatch generates metrics every 5 minutes\\. For more information, see [Configure monitoring for Auto Scaling instances](https://docs.aws.amazon.com/autoscaling/latest/userguide/as-instance-monitoring.html#enable-as-instance-metrics) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceMonitoring", + "type": "boolean" + }, + "InstanceType": { + "markdownDescription": "Specifies the instance type of the EC2 instance\\. For information about available instance types, see [Available instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", + "type": "string" + }, + "KernelId": { + "markdownDescription": "Provides the ID of the kernel associated with the EC2 AMI\\. \nWe recommend that you use PV\\-GRUB instead of kernels and RAM disks\\. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedKernels.html) in the *Amazon EC2 User Guide for Linux Instances*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KernelId", + "type": "string" + }, + "KeyName": { + "markdownDescription": "Provides the name of the EC2 key pair\\. \nIf you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in\\. For information on creating a key pair, see [Amazon EC2 key pairs and Linux instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyName", + "type": "string" + }, + "LaunchConfigurationName": { + "markdownDescription": "The name of the launch configuration\\. This name must be unique per Region per account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchConfigurationName", + "type": "string" + }, + "MetadataOptions": { + "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.MetadataOptions", + "markdownDescription": "The metadata options for the instances\\. For more information, see [Configuring the Instance Metadata Options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: [MetadataOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-metadataoptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetadataOptions" + }, + "PlacementTenancy": { + "markdownDescription": "The tenancy of the instance, either `default` or `dedicated`\\. An instance with `dedicated` tenancy runs on isolated, single\\-tenant hardware and can only be launched into a VPC\\. You must set the value of this property to `dedicated` if want to launch dedicated instances in a shared tenancy VPC \\(a VPC with the instance placement tenancy attribute set to default\\)\\. \nIf you specify this property, you must specify at least one subnet in the `VPCZoneIdentifier` property of the [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html) resource\\. \nFor more information, see [Configuring instance tenancy with Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-dedicated-instances.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlacementTenancy", + "type": "string" + }, + "RamDiskId": { + "markdownDescription": "The ID of the RAM disk to select\\. \nWe recommend that you use PV\\-GRUB instead of kernels and RAM disks\\. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedKernels.html) in the *Amazon EC2 User Guide for Linux Instances*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RamDiskId", + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "A list that contains the security groups to assign to the instances in the Auto Scaling group\\. The list can contain both the IDs of existing security groups and references to [SecurityGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html) resources created in the template\\. \nFor more information, see [Security groups for your VPC](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html) in the *Amazon Virtual Private Cloud User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroups", + "type": "array" + }, + "SpotPrice": { + "markdownDescription": "The maximum hourly price you are willing to pay for any Spot Instances launched to fulfill the request\\. Spot Instances are launched when the price you specify exceeds the current Spot price\\. For more information, see [Requesting Spot Instances for fault\\-tolerant and flexible applications ](https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-configuration-requesting-spot-instances.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \nWhen you change your maximum price by creating a new launch configuration, running instances will continue to run as long as the maximum price for those running instances is higher than the current Spot price\\.\nValid Range: Minimum value of 0\\.001 \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpotPrice", + "type": "string" + }, + "UserData": { + "markdownDescription": "The Base64\\-encoded user data to make available to the launched EC2 instances\\. \nFor more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: No \n*Type*: String \n*Maximum*: `21847` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Indicates whether the volume is deleted on instance termination\\. For Amazon EC2 Auto Scaling, the default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeleteOnTermination", + "type": "boolean" + }, + "Encrypted": { + "markdownDescription": "Specifies whether the volume should be encrypted\\. Encrypted EBS volumes can only be attached to instances that support Amazon EBS encryption\\. For more information, see [Supported instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances)\\. If your AMI uses encrypted volumes, you can also only launch it on supported instance types\\. \nIf you are creating a volume from a snapshot, you cannot create an unencrypted volume from an encrypted snapshot\\. Also, you cannot specify a KMS key ID when using a launch configuration\\. \nIf you enable encryption by default, the EBS volumes that you create are always encrypted, either using the AWS managed KMS key or a customer\\-managed KMS key, regardless of whether the snapshot was encrypted\\. \nFor more information, see [Using AWS KMS keys to encrypt Amazon EBS volumes](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-data-protection.html#encryption) in the *Amazon EC2 Auto Scaling User Guide*\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Encrypted", + "type": "boolean" + }, + "Iops": { + "markdownDescription": "The number of input/output \\(I/O\\) operations per second \\(IOPS\\) to provision for the volume\\. For `gp3` and `io1` volumes, this represents the number of IOPS that are provisioned for the volume\\. For `gp2` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting\\. \nThe following are the supported values for each volume type: \n+ `gp3`: 3,000\\-16,000 IOPS\n+ `io1`: 100\\-64,000 IOPS\nFor `io1` volumes, we guarantee 64,000 IOPS only for [Instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)\\. Other instance families guarantee performance up to 32,000 IOPS\\. \n `Iops` is supported when the volume type is `gp3` or `io1` and required only when the volume type is `io1`\\. \\(Not used with `standard`, `gp2`, `st1`, or `sc1` volumes\\.\\) \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Iops", + "type": "number" + }, + "SnapshotId": { + "markdownDescription": "The snapshot ID of the volume to use\\. \nYou must specify either a `VolumeSize` or a `SnapshotId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotId", + "type": "string" + }, + "Throughput": { + "markdownDescription": "The throughput \\(MiBps\\) to provision for a `gp3` volume\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `125` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Throughput", + "type": "number" + }, + "VolumeSize": { + "markdownDescription": "The volume size, in GiBs\\. The following are the supported volumes sizes for each volume type: \n+ `gp2` and `gp3`: 1\\-16,384\n+ `io1`: 4\\-16,384\n+ `st1` and `sc1`: 125\\-16,384\n+ `standard`: 1\\-1,024\nYou must specify either a `SnapshotId` or a `VolumeSize`\\. If you specify both `SnapshotId` and `VolumeSize`, the volume size must be equal or greater than the size of the snapshot\\. \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `16384` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeSize", + "type": "number" + }, + "VolumeType": { + "markdownDescription": "The volume type\\. For more information, see [Amazon EBS Volume Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \nValid Values: `standard` \\| `io1` \\| `gp2` \\| `st1` \\| `sc1` \\| `gp3` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "markdownDescription": "The device name exposed to the EC2 instance \\(for example, `/dev/sdh` or `xvdh`\\)\\. For more information, see [Device naming on Linux instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceName", + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDevice", + "markdownDescription": "Parameters used to automatically set up EBS volumes when an instance is launched\\. \nYou can specify either `VirtualName` or `Ebs`, but not both\\. \n*Required*: No \n*Type*: [BlockDevice](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfiguration-blockdevice.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ebs" + }, + "NoDevice": { + "markdownDescription": "Setting this value to `true` suppresses the specified device included in the block device mapping of the AMI\\. \nIf `NoDevice` is `true` for the root device, instances might fail the EC2 health check\\. In that case, Amazon EC2 Auto Scaling launches replacement instances\\. \nIf you specify `NoDevice`, you cannot specify `Ebs`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NoDevice", + "type": "boolean" + }, + "VirtualName": { + "markdownDescription": "The name of the virtual device\\. The name must be in the form ephemeral*X* where *X* is a number starting from zero \\(0\\), for example, `ephemeral0`\\. \nYou can specify either `VirtualName` or `Ebs`, but not both\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VirtualName", + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "type": "object" + }, + "AWS::AutoScaling::LaunchConfiguration.MetadataOptions": { + "additionalProperties": false, + "properties": { + "HttpEndpoint": { + "markdownDescription": "This parameter enables or disables the HTTP metadata endpoint on your instances\\. If the parameter is not specified, the default state is `enabled`\\. \nIf you specify a value of `disabled`, you will not be able to access your instance metadata\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disabled | enabled` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HttpEndpoint", + "type": "string" + }, + "HttpPutResponseHopLimit": { + "markdownDescription": "The desired HTTP PUT response hop limit for instance metadata requests\\. The larger the number, the further instance metadata requests can travel\\. \nDefault: 1 \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HttpPutResponseHopLimit", + "type": "number" + }, + "HttpTokens": { + "markdownDescription": "The state of token usage for your instance metadata requests\\. If the parameter is not specified in the request, the default state is `optional`\\. \nIf the state is `optional`, you can choose to retrieve instance metadata with or without a signed token header on your request\\. If you retrieve the IAM role credentials without a token, the version 1\\.0 role credentials are returned\\. If you retrieve the IAM role credentials using a valid signed token, the version 2\\.0 role credentials are returned\\. \nIf the state is `required`, you must send a signed token header with any instance metadata retrieval requests\\. In this state, retrieving the IAM role credentials always returns the version 2\\.0 credentials; the version 1\\.0 credentials are not available\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `optional | required` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the Auto Scaling group for the lifecycle hook\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutoScalingGroupName", + "type": "string" + }, + "DefaultResult": { + "markdownDescription": "The action the Auto Scaling group takes when the lifecycle hook timeout elapses or if an unexpected failure occurs\\. The valid values are `CONTINUE` and `ABANDON` \\(default\\)\\. \nFor more information, see [Adding lifecycle hooks](https://docs.aws.amazon.com/autoscaling/ec2/userguide/adding-lifecycle-hooks.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultResult", + "type": "string" + }, + "HeartbeatTimeout": { + "markdownDescription": "The maximum time, in seconds, that can elapse before the lifecycle hook times out\\. The range is from `30` to `7200` seconds\\. The default value is `3600` seconds \\(1 hour\\)\\. If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the action that you specified in the `DefaultResult` property\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeartbeatTimeout", + "type": "number" + }, + "LifecycleHookName": { + "markdownDescription": "The name of the lifecycle hook\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[A-Za-z0-9\\-_\\/]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LifecycleHookName", + "type": "string" + }, + "LifecycleTransition": { + "markdownDescription": "The instance state to which you want to attach the lifecycle hook\\. The valid values are: \n+ autoscaling:EC2\\_INSTANCE\\_LAUNCHING\n+ autoscaling:EC2\\_INSTANCE\\_TERMINATING\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LifecycleTransition", + "type": "string" + }, + "NotificationMetadata": { + "markdownDescription": "Additional information that is included any time Amazon EC2 Auto Scaling sends a message to the notification target\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1023` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationMetadata", + "type": "string" + }, + "NotificationTargetARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the notification target that Amazon EC2 Auto Scaling uses to notify you when an instance is in the transition state for the lifecycle hook\\. You can specify an Amazon SQS queue or an Amazon SNS topic\\. The notification message includes the following information: lifecycle action token, user account ID, Auto Scaling group name, lifecycle hook name, instance ID, lifecycle transition, and notification metadata\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationTargetARN", + "type": "string" + }, + "RoleARN": { + "markdownDescription": "The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target, for example, an Amazon SNS topic or an Amazon SQS queue\\. For information about creating this role, see [Configuring a notification target for a lifecycle hook](https://docs.aws.amazon.com/autoscaling/ec2/userguide/configuring-lifecycle-hook-notifications.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Specifies how the scaling adjustment is interpreted\\. The valid values are `ChangeInCapacity`, `ExactCapacity`, and `PercentChangeInCapacity`\\. \nRequired if the policy type is `StepScaling` or `SimpleScaling`\\. For more information, see [Scaling adjustment types](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html#as-scaling-adjustment) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdjustmentType", + "type": "string" + }, + "AutoScalingGroupName": { + "markdownDescription": "The name of the Auto Scaling group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoScalingGroupName", + "type": "string" + }, + "Cooldown": { + "markdownDescription": "The duration of the policy's cooldown period, in seconds\\. When a cooldown period is specified here, it overrides the default cooldown period defined for the Auto Scaling group\\. \nValid only if the policy type is `SimpleScaling`\\. For more information, see [Scaling cooldowns for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cooldown", + "type": "string" + }, + "EstimatedInstanceWarmup": { + "markdownDescription": "The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics\\. If not provided, the default is to use the value from the default cooldown period for the Auto Scaling group\\. \nValid only if the policy type is `TargetTrackingScaling` or `StepScaling`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EstimatedInstanceWarmup", + "type": "number" + }, + "MetricAggregationType": { + "markdownDescription": "The aggregation type for the CloudWatch metrics\\. The valid values are `Minimum`, `Maximum`, and `Average`\\. If the aggregation type is null, the value is treated as `Average`\\. \nValid only if the policy type is `StepScaling`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricAggregationType", + "type": "string" + }, + "MinAdjustmentMagnitude": { + "markdownDescription": "The minimum value to scale by when the adjustment type is `PercentChangeInCapacity`\\. For example, suppose that you create a step scaling policy to scale out an Auto Scaling group by 25 percent and you specify a `MinAdjustmentMagnitude` of 2\\. If the group has 4 instances and the scaling policy is performed, 25 percent of 4 is 1\\. However, because you specified a `MinAdjustmentMagnitude` of 2, Amazon EC2 Auto Scaling scales out the group by 2 instances\\. \nValid only if the policy type is `StepScaling` or `SimpleScaling`\\. For more information, see [Scaling adjustment types](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html#as-scaling-adjustment) in the *Amazon EC2 Auto Scaling User Guide*\\. \nSome Auto Scaling groups use instance weights\\. In this case, set the `MinAdjustmentMagnitude` to a value that is at least as large as your largest instance weight\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinAdjustmentMagnitude", + "type": "number" + }, + "PolicyType": { + "markdownDescription": "One of the following policy types: \n+ `TargetTrackingScaling` \n+ `StepScaling` \n+ `SimpleScaling` \\(default\\)\n+ `PredictiveScaling` \nFor more information, see [Target tracking scaling policies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html) and [Step and simple scaling policies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html) in the *Amazon EC2 Auto Scaling User Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyType", + "type": "string" + }, + "PredictiveScalingConfiguration": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingConfiguration", + "markdownDescription": "A predictive scaling policy\\. Provides support for predefined and custom metrics\\. \nPredefined metrics include CPU utilization, network in/out, and the Application Load Balancer request count\\. \n*Required*: Conditional \n*Type*: [PredictiveScalingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredictiveScalingConfiguration" + }, + "ScalingAdjustment": { + "markdownDescription": "The amount by which to scale, based on the specified adjustment type\\. A positive value adds to the current capacity while a negative number removes from the current capacity\\. For exact capacity, you must specify a positive value\\. \nRequired if the policy type is `SimpleScaling`\\. \\(Not used with any other policy type\\.\\) \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalingAdjustment", + "type": "number" + }, + "StepAdjustments": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.StepAdjustment" + }, + "markdownDescription": "A set of adjustments that enable you to scale based on the size of the alarm breach\\. \nRequired if the policy type is `StepScaling`\\. \\(Not used with any other policy type\\.\\) \n*Required*: Conditional \n*Type*: List of [StepAdjustment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-stepadjustments.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StepAdjustments", + "type": "array" + }, + "TargetTrackingConfiguration": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration", + "markdownDescription": "A target tracking scaling policy\\. Includes support for predefined or customized metrics\\. \nThe following predefined metrics are available: \n+ `ASGAverageCPUUtilization` \n+ `ASGAverageNetworkIn` \n+ `ASGAverageNetworkOut` \n+ `ALBRequestCountPerTarget` \nIf you specify `ALBRequestCountPerTarget` for the metric, you must specify the `ResourceLabel` property with the `PredefinedMetricSpecification`\\. \n*Required*: Conditional \n*Type*: [TargetTrackingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-targettrackingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The dimensions of the metric\\. \nConditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy\\. \n*Required*: No \n*Type*: List of [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", + "type": "array" + }, + "MetricName": { + "markdownDescription": "The name of the metric\\. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", + "type": "string" + }, + "Namespace": { + "markdownDescription": "The namespace of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", + "type": "string" + }, + "Statistic": { + "markdownDescription": "The statistic of the metric\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Average | Maximum | Minimum | SampleCount | Sum` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statistic", + "type": "string" + }, + "Unit": { + "markdownDescription": "The unit of the metric\\. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", + "type": "string" + } + }, + "required": [ + "MetricName", + "Namespace", + "Statistic" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.Metric": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDimension" + }, + "markdownDescription": "The dimensions for the metric\\. For the list of available dimensions, see the AWS documentation available from the table in [AWS services that publish CloudWatch metrics ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*\\. \nConditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy\\. \n*Required*: No \n*Type*: List of [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", + "type": "array" + }, + "MetricName": { + "markdownDescription": "The name of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", + "type": "string" + }, + "Namespace": { + "markdownDescription": "The namespace of the metric\\. For more information, see the table in [AWS services that publish CloudWatch metrics ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", + "type": "string" + } + }, + "required": [ + "MetricName", + "Namespace" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.MetricDataQuery": { + "additionalProperties": false, + "properties": { + "Expression": { + "markdownDescription": "The math expression to perform on the returned data, if this object is performing a math expression\\. This expression can use the `Id` of the other metrics to refer to those metrics, and can also use the `Id` of other expressions to use the result of those expressions\\. \nConditional: Within each `MetricDataQuery` object, you must specify either `Expression` or `MetricStat`, but not both\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1023` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Expression", + "type": "string" + }, + "Id": { + "markdownDescription": "A short name that identifies the object's results in the response\\. This name must be unique among all `MetricDataQuery` objects specified for a single scaling policy\\. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression\\. The valid characters are letters, numbers, and underscores\\. The first character must be a lowercase letter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "Label": { + "markdownDescription": "A human\\-readable label for this metric or expression\\. This is especially useful if this is a math expression, so that you know what the value represents\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2047` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Label", + "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricStat", + "markdownDescription": "Information about the metric data to return\\. \nConditional: Within each `MetricDataQuery` object, you must specify either `Expression` or `MetricStat`, but not both\\. \n*Required*: No \n*Type*: [MetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricstat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricStat" + }, + "ReturnData": { + "markdownDescription": "Indicates whether to return the timestamps and raw data values of this metric\\. \nIf you use any math expressions, specify `true` for this value for only the final math expression that the metric specification is based on\\. You must specify `false` for `ReturnData` for all the other metrics and expressions used in the metric specification\\. \nIf you are only retrieving metrics and not performing any math expressions, do not specify anything for `ReturnData`\\. This sets it to its default \\(`true`\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReturnData", + "type": "boolean" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.MetricDimension": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.MetricStat": { + "additionalProperties": false, + "properties": { + "Metric": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.Metric", + "markdownDescription": "The CloudWatch metric to return, including the metric name, namespace, and dimensions\\. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html)\\. \n*Required*: Yes \n*Type*: [Metric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metric" + }, + "Stat": { + "markdownDescription": "The statistic to return\\. It can include any CloudWatch statistic or extended statistic\\. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *Amazon CloudWatch User Guide*\\. \nThe most commonly used metrics for predictive scaling are `Average` and `Sum`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Stat", + "type": "string" + }, + "Unit": { + "markdownDescription": "The unit to use for the returned data points\\. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", + "type": "string" + } + }, + "required": [ + "Metric", + "Stat" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "markdownDescription": "The metric type\\. The following predefined metrics are available\\. \n+ `ASGAverageCPUUtilization` \\- Average CPU utilization of the Auto Scaling group\\.\n+ `ASGAverageNetworkIn` \\- Average number of bytes received on all network interfaces by the Auto Scaling group\\.\n+ `ASGAverageNetworkOut` \\- Average number of bytes sent out on all network interfaces by the Auto Scaling group\\.\n+ `ALBRequestCountPerTarget` \\- Number of requests completed per target in an Application Load Balancer target group\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALBRequestCountPerTarget | ASGAverageCPUUtilization | ASGAverageNetworkIn | ASGAverageNetworkOut` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedMetricType", + "type": "string" + }, + "ResourceLabel": { + "markdownDescription": "Identifies the resource associated with the metric type\\. You can't specify a resource label unless the metric type is `ALBRequestCountPerTarget` and there is a target group attached to the Auto Scaling group\\. \nThe format is `app/load-balancer-name/load-balancer-id/targetgroup/target-group-name/target-group-id `, where \n+ `app/load-balancer-name/load-balancer-id ` is the final portion of the load balancer ARN, and\n+ `targetgroup/target-group-name/target-group-id ` is the final portion of the target group ARN\\.\n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1023` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceLabel", + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.PredictiveScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacityBreachBehavior": { + "markdownDescription": "Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity of the Auto Scaling group\\. Defaults to `HonorMaxCapacity` if not specified\\. \nThe following are possible values: \n+ `HonorMaxCapacity` \\- Amazon EC2 Auto Scaling cannot scale out capacity higher than the maximum capacity\\. The maximum capacity is enforced as a hard limit\\. \n+ `IncreaseMaxCapacity` \\- Amazon EC2 Auto Scaling can scale out capacity higher than the maximum capacity when the forecast capacity is close to or exceeds the maximum capacity\\. The upper limit is determined by the forecasted capacity and the value for `MaxCapacityBuffer`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `HonorMaxCapacity | IncreaseMaxCapacity` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacityBreachBehavior", + "type": "string" + }, + "MaxCapacityBuffer": { + "markdownDescription": "The size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity\\. The value is specified as a percentage relative to the forecast capacity\\. For example, if the buffer is 10, this means a 10 percent buffer, such that if the forecast capacity is 50, and the maximum capacity is 40, then the effective maximum capacity is 55\\. \nIf set to 0, Amazon EC2 Auto Scaling may scale capacity higher than the maximum capacity to equal but not exceed forecast capacity\\. \nRequired if the `MaxCapacityBreachBehavior` property is set to `IncreaseMaxCapacity`, and cannot be used otherwise\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacityBuffer", + "type": "number" + }, + "MetricSpecifications": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingMetricSpecification" + }, + "markdownDescription": "An array that contains information about the metrics and target utilization to use for predictive scaling\\. \nAdding more than one predictive scaling metric specification to the array is currently not supported\\.\n*Required*: Yes \n*Type*: List of [PredictiveScalingMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricSpecifications", + "type": "array" + }, + "Mode": { + "markdownDescription": "The predictive scaling mode\\. Defaults to `ForecastOnly` if not specified\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ForecastAndScale | ForecastOnly` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", + "type": "string" + }, + "SchedulingBufferTime": { + "markdownDescription": "The amount of time, in seconds, by which the instance launch time can be advanced\\. For example, the forecast says to add capacity at 10:00 AM, and you choose to pre\\-launch instances by 5 minutes\\. In that case, the instances will be launched at 9:55 AM\\. The intention is to give resources time to be provisioned\\. It can take a few minutes to launch an EC2 instance\\. The actual amount of time required depends on several factors, such as the size of the instance and whether there are startup scripts to complete\\. \nThe value must be less than the forecast interval duration of 3600 seconds \\(60 minutes\\)\\. Defaults to 300 seconds if not specified\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchedulingBufferTime", + "type": "number" + } + }, + "required": [ + "MetricSpecifications" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedCapacityMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDataQuery" + }, + "markdownDescription": "One or more metric data queries to provide the data points for a capacity metric\\. Use multiple metric data queries only if you are performing a math expression on returned data\\. \n*Required*: Yes \n*Type*: List of [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricdataquery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricDataQueries", + "type": "array" + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedLoadMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDataQuery" + }, + "markdownDescription": "One or more metric data queries to provide the data points for a load metric\\. Use multiple metric data queries only if you are performing a math expression on returned data\\. \n*Required*: Yes \n*Type*: List of [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricdataquery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricDataQueries", + "type": "array" + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedScalingMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDataQuery" + }, + "markdownDescription": "One or more metric data queries to provide the data points for a scaling metric\\. Use multiple metric data queries only if you are performing a math expression on returned data\\. \n*Required*: Yes \n*Type*: List of [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricdataquery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricDataQueries", + "type": "array" + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.PredictiveScalingMetricSpecification": { + "additionalProperties": false, + "properties": { + "CustomizedCapacityMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedCapacityMetric", + "markdownDescription": "The customized capacity metric specification\\. \n*Required*: No \n*Type*: [PredictiveScalingCustomizedCapacityMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingcustomizedcapacitymetric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomizedCapacityMetricSpecification" + }, + "CustomizedLoadMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedLoadMetric", + "markdownDescription": "The customized load metric specification\\. \n*Required*: No \n*Type*: [PredictiveScalingCustomizedLoadMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingcustomizedloadmetric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomizedLoadMetricSpecification" + }, + "CustomizedScalingMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedScalingMetric", + "markdownDescription": "The customized scaling metric specification\\. \n*Required*: No \n*Type*: [PredictiveScalingCustomizedScalingMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingcustomizedscalingmetric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomizedScalingMetricSpecification" + }, + "PredefinedLoadMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedLoadMetric", + "markdownDescription": "The load metric specification\\. \nIf you specify `PredefinedMetricPairSpecification`, don't specify this property\\. \n*Required*: No \n*Type*: [PredictiveScalingPredefinedLoadMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedloadmetric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedLoadMetricSpecification" + }, + "PredefinedMetricPairSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedMetricPair", + "markdownDescription": "The metric pair specification from which Amazon EC2 Auto Scaling determines the appropriate scaling metric and load metric to use\\. \nWith predictive scaling, you must specify either a metric pair, or a load metric and a scaling metric individually\\. Specifying a metric pair instead of individual metrics provides a simpler way to configure metrics for a scaling policy\\. You choose the metric pair, and the policy automatically knows the correct sum and average statistics to use for the load metric and the scaling metric\\.\n*Required*: No \n*Type*: [PredictiveScalingPredefinedMetricPair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedmetricpair.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedMetricPairSpecification" + }, + "PredefinedScalingMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedScalingMetric", + "markdownDescription": "The scaling metric specification\\. \nIf you specify `PredefinedMetricPairSpecification`, don't specify this property\\. \n*Required*: No \n*Type*: [PredictiveScalingPredefinedScalingMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedscalingmetric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedScalingMetricSpecification" + }, + "TargetValue": { + "markdownDescription": "Specifies the target utilization\\. \nSome metrics are based on a count instead of a percentage, such as the request count for an Application Load Balancer or the number of messages in an SQS queue\\. If the scaling policy specifies one of these metrics, specify the target utilization as the optimal average request or message count per instance during any one\\-minute interval\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetValue", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedLoadMetric": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "markdownDescription": "The metric type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALBTargetGroupRequestCount | ASGTotalCPUUtilization | ASGTotalNetworkIn | ASGTotalNetworkOut` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedMetricType", + "type": "string" + }, + "ResourceLabel": { + "markdownDescription": "A label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group\\. You can't specify a resource label unless the target group is attached to the Auto Scaling group\\. \nYou create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash \\(/\\)\\. The format of the resource label is: \n `app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff`\\. \nWhere: \n+ app// is the final portion of the load balancer ARN\n+ targetgroup// is the final portion of the target group ARN\\.\nTo find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation\\. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceLabel", + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedMetricPair": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "markdownDescription": "Indicates which metrics to use\\. There are two different types of metrics for each metric type: one is a load metric and one is a scaling metric\\. For example, if the metric type is `ASGCPUUtilization`, the Auto Scaling group's total CPU metric is used as the load metric, and the average CPU metric is used for the scaling metric\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALBRequestCount | ASGCPUUtilization | ASGNetworkIn | ASGNetworkOut` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedMetricType", + "type": "string" + }, + "ResourceLabel": { + "markdownDescription": "A label that uniquely identifies a specific Application Load Balancer target group from which to determine the total and average request count served by your Auto Scaling group\\. You can't specify a resource label unless the target group is attached to the Auto Scaling group\\. \nYou create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash \\(/\\)\\. The format of the resource label is: \n `app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff`\\. \nWhere: \n+ app// is the final portion of the load balancer ARN\n+ targetgroup// is the final portion of the target group ARN\\.\nTo find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation\\. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceLabel", + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedScalingMetric": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "markdownDescription": "The metric type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALBRequestCountPerTarget | ASGAverageCPUUtilization | ASGAverageNetworkIn | ASGAverageNetworkOut` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedMetricType", + "type": "string" + }, + "ResourceLabel": { + "markdownDescription": "A label that uniquely identifies a specific Application Load Balancer target group from which to determine the average request count served by your Auto Scaling group\\. You can't specify a resource label unless the target group is attached to the Auto Scaling group\\. \nYou create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash \\(/\\)\\. The format of the resource label is: \n `app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff`\\. \nWhere: \n+ app// is the final portion of the load balancer ARN\n+ targetgroup// is the final portion of the target group ARN\\.\nTo find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation\\. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceLabel", + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.StepAdjustment": { + "additionalProperties": false, + "properties": { + "MetricIntervalLowerBound": { + "markdownDescription": "The lower bound for the difference between the alarm threshold and the CloudWatch metric\\. If the metric value is above the breach threshold, the lower bound is inclusive \\(the metric must be greater than or equal to the threshold plus the lower bound\\)\\. Otherwise, it is exclusive \\(the metric must be greater than the threshold plus the lower bound\\)\\. A null value indicates negative infinity\\. \n*Required*: Conditional \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricIntervalLowerBound", + "type": "number" + }, + "MetricIntervalUpperBound": { + "markdownDescription": "The upper bound for the difference between the alarm threshold and the CloudWatch metric\\. If the metric value is above the breach threshold, the upper bound is exclusive \\(the metric must be less than the threshold plus the upper bound\\)\\. Otherwise, it is inclusive \\(the metric must be less than or equal to the threshold plus the upper bound\\)\\. A null value indicates positive infinity\\. \n*Required*: Conditional \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricIntervalUpperBound", + "type": "number" + }, + "ScalingAdjustment": { + "markdownDescription": "The amount by which to scale\\. The adjustment is based on the value that you specified in the `AdjustmentType` property \\(either an absolute number or a percentage\\)\\. A positive value adds to the current capacity and a negative number subtracts from the current capacity\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalingAdjustment", + "type": "number" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration": { + "additionalProperties": false, + "properties": { + "CustomizedMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification", + "markdownDescription": "A customized metric\\. You must specify either a predefined metric or a customized metric\\. \n*Required*: Conditional \n*Type*: [CustomizedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-customizedmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomizedMetricSpecification" + }, + "DisableScaleIn": { + "markdownDescription": "Indicates whether scaling in by the target tracking scaling policy is disabled\\. If scaling in is disabled, the target tracking scaling policy doesn't remove instances from the Auto Scaling group\\. Otherwise, the target tracking scaling policy can remove instances from the Auto Scaling group\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableScaleIn", + "type": "boolean" + }, + "PredefinedMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification", + "markdownDescription": "A predefined metric\\. You must specify either a predefined metric or a customized metric\\. \n*Required*: Conditional \n*Type*: [PredefinedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predefinedmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedMetricSpecification" + }, + "TargetValue": { + "markdownDescription": "The target value for the metric\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the Auto Scaling group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutoScalingGroupName", + "type": "string" + }, + "DesiredCapacity": { + "markdownDescription": "The desired capacity is the initial capacity of the Auto Scaling group after the scheduled action runs and the capacity it attempts to maintain\\. It can scale beyond this capacity if you add more scaling conditions\\. \nYou must specify at least one of the following properties: `MaxSize`, `MinSize`, or `DesiredCapacity`\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DesiredCapacity", + "type": "number" + }, + "EndTime": { + "markdownDescription": "The date and time for the recurring schedule to end, in UTC\\. For example, `\"2021-06-01T00:00:00Z\"`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndTime", + "type": "string" + }, + "MaxSize": { + "markdownDescription": "The maximum size of the Auto Scaling group\\. \nYou must specify at least one of the following properties: `MaxSize`, `MinSize`, or `DesiredCapacity`\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxSize", + "type": "number" + }, + "MinSize": { + "markdownDescription": "The minimum size of the Auto Scaling group\\. \nYou must specify at least one of the following properties: `MaxSize`, `MinSize`, or `DesiredCapacity`\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinSize", + "type": "number" + }, + "Recurrence": { + "markdownDescription": "The recurring schedule for this action\\. This format consists of five fields separated by white spaces: \\[Minute\\] \\[Hour\\] \\[Day\\_of\\_Month\\] \\[Month\\_of\\_Year\\] \\[Day\\_of\\_Week\\]\\. For more information about this format, see [Crontab](http://crontab.org)\\. \nWhen `StartTime` and `EndTime` are specified with `Recurrence`, they form the boundaries of when the recurring action starts and stops\\. \nCron expressions use Universal Coordinated Time \\(UTC\\) by default\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Recurrence", + "type": "string" + }, + "StartTime": { + "markdownDescription": "The date and time for this action to start, in YYYY\\-MM\\-DDThh:mm:ssZ format in UTC/GMT only\\. For example, `\"2021-06-01T00:00:00Z\"`\\. \nIf you specify `Recurrence` and `StartTime`, Amazon EC2 Auto Scaling performs the action at this time, and then performs the action based on the specified recurrence\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartTime", + "type": "string" + }, + "TimeZone": { + "markdownDescription": "Specifies the time zone for a cron expression\\. If a time zone is not provided, UTC is used by default\\. \nValid values are the canonical names of the IANA time zones, derived from the IANA Time Zone Database \\(such as `Etc/GMT+9` or `Pacific/Tahiti`\\)\\. For more information, see [https://en\\.wikipedia\\.org/wiki/List\\_of\\_tz\\_database\\_time\\_zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the Auto Scaling group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutoScalingGroupName", + "type": "string" + }, + "InstanceReusePolicy": { + "$ref": "#/definitions/AWS::AutoScaling::WarmPool.InstanceReusePolicy", + "markdownDescription": "Indicates whether instances in the Auto Scaling group can be returned to the warm pool on scale in\\. The default is to terminate instances in the Auto Scaling group when the group scales in\\. \n*Required*: No \n*Type*: [InstanceReusePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-warmpool-instancereusepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceReusePolicy" + }, + "MaxGroupPreparedCapacity": { + "markdownDescription": "Specifies the maximum number of instances that are allowed to be in the warm pool or in any state except `Terminated` for the Auto Scaling group\\. This is an optional property\\. Specify it only if you do not want the warm pool size to be determined by the difference between the group's maximum capacity and its desired capacity\\. \nIf a value for `MaxGroupPreparedCapacity` is not specified, Amazon EC2 Auto Scaling launches and maintains the difference between the group's maximum capacity and its desired capacity\\. If you specify a value for `MaxGroupPreparedCapacity`, Amazon EC2 Auto Scaling uses the difference between the `MaxGroupPreparedCapacity` and the desired capacity instead\\. \nThe size of the warm pool is dynamic\\. Only when `MaxGroupPreparedCapacity` and `MinSize` are set to the same value does the warm pool have an absolute size\\.\nIf the desired capacity of the Auto Scaling group is higher than the `MaxGroupPreparedCapacity`, the capacity of the warm pool is 0, unless you specify a value for `MinSize`\\. To remove a value that you previously set, include the property but specify \\-1 for the value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `-1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxGroupPreparedCapacity", + "type": "number" + }, + "MinSize": { + "markdownDescription": "Specifies the minimum number of instances to maintain in the warm pool\\. This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes\\. Defaults to 0 if not specified\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinSize", + "type": "number" + }, + "PoolState": { + "markdownDescription": "Sets the instance state to transition to after the lifecycle actions are complete\\. Default is `Stopped`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Hibernated | Running | Stopped` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Specifies whether instances in the Auto Scaling group can be returned to the warm pool on scale in\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "A CloudFormation stack or a set of tags\\. You can create one scaling plan per application source\\. The `ApplicationSource` property must be present to ensure interoperability with the AWS Auto Scaling console\\. \n*Required*: Yes \n*Type*: [ApplicationSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-applicationsource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationSource" + }, + "ScalingInstructions": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction" + }, + "markdownDescription": "The scaling instructions\\. \n*Required*: Yes \n*Type*: List of [ScalingInstruction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalingInstructions", + "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of a CloudFormation stack\\. \nYou must specify either a `CloudFormationStackARN` or `TagFilters`\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudFormationStackARN", + "type": "string" + }, + "TagFilters": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TagFilter" + }, + "markdownDescription": "A set of tag filters \\(keys and values\\)\\. Each tag filter specified must contain a key with values as optional\\. Each scaling plan can include up to 50 keys, and each key can include up to 20 values\\. \nTags are part of the syntax that you use to specify the resources you want returned when configuring a scaling plan from the AWS Auto Scaling console\\. You do not need to specify valid tag filter values when you create a scaling plan with CloudFormation\\. The `Key` and `Values` properties can accept any value as long as the combination of values is unique across scaling plans\\. However, if you also want to use the AWS Auto Scaling console to edit the scaling plan, then you must specify valid values\\. \nYou must specify either a `CloudFormationStackARN` or `TagFilters`\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagFilters", + "type": "array" + } + }, + "type": "object" + }, + "AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension" + }, + "markdownDescription": "The dimensions of the metric\\. \nConditional: If you published your metric with dimensions, you must specify the same dimensions in your customized load metric specification\\. \n*Required*: No \n*Type*: List of [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", + "type": "array" + }, + "MetricName": { + "markdownDescription": "The name of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", + "type": "string" + }, + "Namespace": { + "markdownDescription": "The namespace of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", + "type": "string" + }, + "Statistic": { + "markdownDescription": "The statistic of the metric\\. \n*Allowed Values*: `Sum` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statistic", + "type": "string" + }, + "Unit": { + "markdownDescription": "The unit of the metric\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", + "type": "string" + } + }, + "required": [ + "MetricName", + "Namespace", + "Statistic" + ], + "type": "object" + }, + "AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension" + }, + "markdownDescription": "The dimensions of the metric\\. \nConditional: If you published your metric with dimensions, you must specify the same dimensions in your customized scaling metric specification\\. \n*Required*: No \n*Type*: List of [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", + "type": "array" + }, + "MetricName": { + "markdownDescription": "The name of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", + "type": "string" + }, + "Namespace": { + "markdownDescription": "The namespace of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", + "type": "string" + }, + "Statistic": { + "markdownDescription": "The statistic of the metric\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Average | Maximum | Minimum | SampleCount | Sum` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statistic", + "type": "string" + }, + "Unit": { + "markdownDescription": "The unit of the metric\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", + "type": "string" + } + }, + "required": [ + "MetricName", + "Namespace", + "Statistic" + ], + "type": "object" + }, + "AWS::AutoScalingPlans::ScalingPlan.MetricDimension": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification": { + "additionalProperties": false, + "properties": { + "PredefinedLoadMetricType": { + "markdownDescription": "The metric type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALBTargetGroupRequestCount | ASGTotalCPUUtilization | ASGTotalNetworkIn | ASGTotalNetworkOut` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedLoadMetricType", + "type": "string" + }, + "ResourceLabel": { + "markdownDescription": "Identifies the resource associated with the metric type\\. You can't specify a resource label unless the metric type is `ALBTargetGroupRequestCount` and there is a target group for an Application Load Balancer attached to the Auto Scaling group\\. \nYou create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash \\(/\\)\\. The format is app///targetgroup//, where: \n+ app// is the final portion of the load balancer ARN\n+ targetgroup// is the final portion of the target group ARN\\.\nThis is an example: app/EC2Co\\-EcsEl\\-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co\\-Defau\\-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d\\. \nTo find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation\\. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1023` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceLabel", + "type": "string" + } + }, + "required": [ + "PredefinedLoadMetricType" + ], + "type": "object" + }, + "AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification": { + "additionalProperties": false, + "properties": { + "PredefinedScalingMetricType": { + "markdownDescription": "The metric type\\. The `ALBRequestCountPerTarget` metric type applies only to Auto Scaling groups, Spot Fleet requests, and ECS services\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALBRequestCountPerTarget | ASGAverageCPUUtilization | ASGAverageNetworkIn | ASGAverageNetworkOut | DynamoDBReadCapacityUtilization | DynamoDBWriteCapacityUtilization | EC2SpotFleetRequestAverageCPUUtilization | EC2SpotFleetRequestAverageNetworkIn | EC2SpotFleetRequestAverageNetworkOut | ECSServiceAverageCPUUtilization | ECSServiceAverageMemoryUtilization | RDSReaderAverageCPUUtilization | RDSReaderAverageDatabaseConnections` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedScalingMetricType", + "type": "string" + }, + "ResourceLabel": { + "markdownDescription": "Identifies the resource associated with the metric type\\. You can't specify a resource label unless the metric type is `ALBRequestCountPerTarget` and there is a target group for an Application Load Balancer attached to the Auto Scaling group, Spot Fleet request, or ECS service\\. \nYou create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash \\(/\\)\\. The format is app///targetgroup//, where: \n+ app// is the final portion of the load balancer ARN\n+ targetgroup// is the final portion of the target group ARN\\.\nThis is an example: app/EC2Co\\-EcsEl\\-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co\\-Defau\\-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d\\. \nTo find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation\\. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1023` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceLabel", + "type": "string" + } + }, + "required": [ + "PredefinedScalingMetricType" + ], + "type": "object" + }, + "AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction": { + "additionalProperties": false, + "properties": { + "CustomizedLoadMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification", + "markdownDescription": "The customized load metric to use for predictive scaling\\. This property or a **PredefinedLoadMetricSpecification** is required when configuring predictive scaling, and cannot be used otherwise\\. \n*Required*: Conditional \n*Type*: [CustomizedLoadMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedloadmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomizedLoadMetricSpecification" + }, + "DisableDynamicScaling": { + "markdownDescription": "Controls whether dynamic scaling by AWS Auto Scaling is disabled\\. When dynamic scaling is enabled, AWS Auto Scaling creates target tracking scaling policies based on the specified target tracking configurations\\. \nThe default is enabled \\(`false`\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableDynamicScaling", + "type": "boolean" + }, + "MaxCapacity": { + "markdownDescription": "The maximum capacity of the resource\\. The exception to this upper limit is if you specify a non\\-default setting for **PredictiveScalingMaxCapacityBehavior**\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacity", + "type": "number" + }, + "MinCapacity": { + "markdownDescription": "The minimum capacity of the resource\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinCapacity", + "type": "number" + }, + "PredefinedLoadMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification", + "markdownDescription": "The predefined load metric to use for predictive scaling\\. This property or a **CustomizedLoadMetricSpecification** is required when configuring predictive scaling, and cannot be used otherwise\\. \n*Required*: Conditional \n*Type*: [PredefinedLoadMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-predefinedloadmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedLoadMetricSpecification" + }, + "PredictiveScalingMaxCapacityBehavior": { + "markdownDescription": "Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity specified for the resource\\. The default value is `SetForecastCapacityToMaxCapacity`\\. \nThe following are possible values: \n+ `SetForecastCapacityToMaxCapacity` \\- AWS Auto Scaling cannot scale resource capacity higher than the maximum capacity\\. The maximum capacity is enforced as a hard limit\\. \n+ `SetMaxCapacityToForecastCapacity` \\- AWS Auto Scaling can scale resource capacity higher than the maximum capacity to equal but not exceed forecast capacity\\.\n+ `SetMaxCapacityAboveForecastCapacity` \\- AWS Auto Scaling can scale resource capacity higher than the maximum capacity by a specified buffer value\\. The intention is to give the target tracking scaling policy extra capacity if unexpected traffic occurs\\. \nValid only when configuring predictive scaling\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `SetForecastCapacityToMaxCapacity | SetMaxCapacityAboveForecastCapacity | SetMaxCapacityToForecastCapacity` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredictiveScalingMaxCapacityBehavior", + "type": "string" + }, + "PredictiveScalingMaxCapacityBuffer": { + "markdownDescription": "The size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity\\. The value is specified as a percentage relative to the forecast capacity\\. For example, if the buffer is 10, this means a 10 percent buffer\\. With a 10 percent buffer, if the forecast capacity is 50, and the maximum capacity is 40, then the effective maximum capacity is 55\\. \nValid only when configuring predictive scaling\\. Required if **PredictiveScalingMaxCapacityBehavior** is set to `SetMaxCapacityAboveForecastCapacity`, and cannot be used otherwise\\. \nThe range is 1\\-100\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredictiveScalingMaxCapacityBuffer", + "type": "number" + }, + "PredictiveScalingMode": { + "markdownDescription": "The predictive scaling mode\\. The default value is `ForecastAndScale`\\. Otherwise, AWS Auto Scaling forecasts capacity but does not apply any scheduled scaling actions based on the capacity forecast\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ForecastAndScale | ForecastOnly` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredictiveScalingMode", + "type": "string" + }, + "ResourceId": { + "markdownDescription": "The ID of the resource\\. This string consists of the resource type and unique identifier\\. \n+ Auto Scaling group \\- The resource type is `autoScalingGroup` and the unique identifier is the name of the Auto Scaling group\\. Example: `autoScalingGroup/my-asg`\\.\n+ ECS service \\- The resource type is `service` and the unique identifier is the cluster name and service name\\. Example: `service/default/sample-webapp`\\.\n+ Spot Fleet request \\- The resource type is `spot-fleet-request` and the unique identifier is the Spot Fleet request ID\\. Example: `spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE`\\.\n+ DynamoDB table \\- The resource type is `table` and the unique identifier is the resource ID\\. Example: `table/my-table`\\.\n+ DynamoDB global secondary index \\- The resource type is `index` and the unique identifier is the resource ID\\. Example: `table/my-table/index/my-table-index`\\.\n+ Aurora DB cluster \\- The resource type is `cluster` and the unique identifier is the cluster name\\. Example: `cluster:my-db-cluster`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceId", + "type": "string" + }, + "ScalableDimension": { + "markdownDescription": "The scalable dimension associated with the resource\\. \n+ `autoscaling:autoScalingGroup:DesiredCapacity` \\- The desired capacity of an Auto Scaling group\\.\n+ `ecs:service:DesiredCount` \\- The desired task count of an ECS service\\.\n+ `ec2:spot-fleet-request:TargetCapacity` \\- The target capacity of a Spot Fleet request\\.\n+ `dynamodb:table:ReadCapacityUnits` \\- The provisioned read capacity for a DynamoDB table\\.\n+ `dynamodb:table:WriteCapacityUnits` \\- The provisioned write capacity for a DynamoDB table\\.\n+ `dynamodb:index:ReadCapacityUnits` \\- The provisioned read capacity for a DynamoDB global secondary index\\.\n+ `dynamodb:index:WriteCapacityUnits` \\- The provisioned write capacity for a DynamoDB global secondary index\\.\n+ `rds:cluster:ReadReplicaCount` \\- The count of Aurora Replicas in an Aurora DB cluster\\. Available for Aurora MySQL\\-compatible edition and Aurora PostgreSQL\\-compatible edition\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `autoscaling:autoScalingGroup:DesiredCapacity | dynamodb:index:ReadCapacityUnits | dynamodb:index:WriteCapacityUnits | dynamodb:table:ReadCapacityUnits | dynamodb:table:WriteCapacityUnits | ec2:spot-fleet-request:TargetCapacity | ecs:service:DesiredCount | rds:cluster:ReadReplicaCount` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalableDimension", + "type": "string" + }, + "ScalingPolicyUpdateBehavior": { + "markdownDescription": "Controls whether your scaling policies that are external to AWS Auto Scaling are deleted and new target tracking scaling policies created\\. The default value is `KeepExternalPolicies`\\. \nValid only when configuring dynamic scaling\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `KeepExternalPolicies | ReplaceExternalPolicies` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalingPolicyUpdateBehavior", + "type": "string" + }, + "ScheduledActionBufferTime": { + "markdownDescription": "The amount of time, in seconds, to buffer the run time of scheduled scaling actions when scaling out\\. For example, if the forecast says to add capacity at 10:00 AM, and the buffer time is 5 minutes, then the run time of the corresponding scheduled scaling action will be 9:55 AM\\. The intention is to give resources time to be provisioned\\. For example, it can take a few minutes to launch an EC2 instance\\. The actual amount of time required depends on several factors, such as the size of the instance and whether there are startup scripts to complete\\. \nThe value must be less than the forecast interval duration of 3600 seconds \\(60 minutes\\)\\. The default is 300 seconds\\. \nValid only when configuring predictive scaling\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduledActionBufferTime", + "type": "number" + }, + "ServiceNamespace": { + "markdownDescription": "The namespace of the AWS service\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `autoscaling | dynamodb | ec2 | ecs | rds` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceNamespace", + "type": "string" + }, + "TargetTrackingConfigurations": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration" + }, + "markdownDescription": "The target tracking configurations \\(up to 10\\)\\. Each of these structures must specify a unique scaling metric and a target value for the metric\\. \n*Required*: Yes \n*Type*: List of [TargetTrackingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-targettrackingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetTrackingConfigurations", + "type": "array" + } + }, + "required": [ + "MaxCapacity", + "MinCapacity", + "ResourceId", + "ScalableDimension", + "ServiceNamespace", + "TargetTrackingConfigurations" + ], + "type": "object" + }, + "AWS::AutoScalingPlans::ScalingPlan.TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The tag key\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "The tag values \\(0 to 20\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration": { + "additionalProperties": false, + "properties": { + "CustomizedScalingMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification", + "markdownDescription": "A customized metric\\. You can specify either a predefined metric or a customized metric\\. \n*Required*: No \n*Type*: [CustomizedScalingMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedscalingmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomizedScalingMetricSpecification" + }, + "DisableScaleIn": { + "markdownDescription": "Indicates whether scale in by the target tracking scaling policy is disabled\\. If the value is `true`, scale in is disabled and the target tracking scaling policy doesn't remove capacity from the scalable resource\\. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable resource\\. \nThe default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableScaleIn", + "type": "boolean" + }, + "EstimatedInstanceWarmup": { + "markdownDescription": "The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics\\. This value is used only if the resource is an Auto Scaling group\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EstimatedInstanceWarmup", + "type": "number" + }, + "PredefinedScalingMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification", + "markdownDescription": "A predefined metric\\. You can specify either a predefined metric or a customized metric\\. \n*Required*: No \n*Type*: [PredefinedScalingMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-predefinedscalingmetricspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PredefinedScalingMetricSpecification" + }, + "ScaleInCooldown": { + "markdownDescription": "The amount of time, in seconds, after a scale\\-in activity completes before another scale in activity can start\\. This value is not used if the scalable resource is an Auto Scaling group\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScaleInCooldown", + "type": "number" + }, + "ScaleOutCooldown": { + "markdownDescription": "The amount of time, in seconds, after a scale\\-out activity completes before another scale\\-out activity can start\\. This value is not used if the scalable resource is an Auto Scaling group\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScaleOutCooldown", + "type": "number" + }, + "TargetValue": { + "markdownDescription": "The target value for the metric\\. Although this property accepts numbers of type Double, it won't accept values that are either too small or too large\\. Values must be in the range of \\-2^360 to 2^360\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Uniquely identifies the backup plan to be associated with the selection of resources\\. \n*Required*: Yes \n*Type*: [BackupPlanResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupplanresourcetype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackupPlan" + }, + "BackupPlanTags": { + "additionalProperties": true, + "markdownDescription": "To help organize your resources, you can assign your own metadata to the resources that you create\\. Each tag is a key\\-value pair\\. The specified tags are assigned to all backups created with this plan\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "BackupPlanTags", + "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": { + "markdownDescription": "The backup option for the resource\\. Each option is a key\\-value pair\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackupOptions", + "type": "object" + }, + "ResourceType": { + "markdownDescription": "The name of a resource type\\. The only supported resource type is EC2\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceType", + "type": "string" + } + }, + "required": [ + "BackupOptions", + "ResourceType" + ], + "type": "object" + }, + "AWS::Backup::BackupPlan.BackupPlanResourceType": { + "additionalProperties": false, + "properties": { + "AdvancedBackupSettings": { + "items": { + "$ref": "#/definitions/AWS::Backup::BackupPlan.AdvancedBackupSettingResourceType" + }, + "markdownDescription": "A list of backup options for each resource type\\. \n*Required*: No \n*Type*: List of [AdvancedBackupSettingResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-advancedbackupsettingresourcetype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdvancedBackupSettings", + "type": "array" + }, + "BackupPlanName": { + "markdownDescription": "The display name of a backup plan\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackupPlanName", + "type": "string" + }, + "BackupPlanRule": { + "items": { + "$ref": "#/definitions/AWS::Backup::BackupPlan.BackupRuleResourceType" + }, + "markdownDescription": "An array of `BackupRule` objects, each of which specifies a scheduled task that is used to back up a selection of resources\\. \n*Required*: Yes \n*Type*: List of [BackupRuleResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackupPlanRule", + "type": "array" + } + }, + "required": [ + "BackupPlanName", + "BackupPlanRule" + ], + "type": "object" + }, + "AWS::Backup::BackupPlan.BackupRuleResourceType": { + "additionalProperties": false, + "properties": { + "CompletionWindowMinutes": { + "markdownDescription": "A value in minutes after a backup job is successfully started before it must be completed or it is canceled by AWS Backup\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CompletionWindowMinutes", + "type": "number" + }, + "CopyActions": { + "items": { + "$ref": "#/definitions/AWS::Backup::BackupPlan.CopyActionResourceType" + }, + "markdownDescription": "An array of CopyAction objects, which contains the details of the copy operation\\. \n*Required*: No \n*Type*: List of [CopyActionResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-copyactionresourcetype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CopyActions", + "type": "array" + }, + "EnableContinuousBackup": { + "markdownDescription": "Enables continuous backup and point\\-in\\-time restores \\(PITR\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableContinuousBackup", + "type": "boolean" + }, + "Lifecycle": { + "$ref": "#/definitions/AWS::Backup::BackupPlan.LifecycleResourceType", + "markdownDescription": "The lifecycle defines when a protected resource is transitioned to cold storage and when it expires\\. AWS Backup transitions and expires backups automatically according to the lifecycle that you define\\. \n*Required*: No \n*Type*: [LifecycleResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-lifecycleresourcetype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Lifecycle" + }, + "RecoveryPointTags": { + "additionalProperties": true, + "markdownDescription": "To help organize your resources, you can assign your own metadata to the resources that you create\\. Each tag is a key\\-value pair\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "RecoveryPointTags", + "type": "object" + }, + "RuleName": { + "markdownDescription": "A display name for a backup rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleName", + "type": "string" + }, + "ScheduleExpression": { + "markdownDescription": "A CRON expression specifying when AWS Backup initiates a backup job\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleExpression", + "type": "string" + }, + "StartWindowMinutes": { + "markdownDescription": "An optional value that specifies a period of time in minutes after a backup is scheduled before a job is canceled if it doesn't start successfully\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartWindowMinutes", + "type": "number" + }, + "TargetBackupVault": { + "markdownDescription": "The name of a logical container where backups are stored\\. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created\\. They consist of letters, numbers, and hyphens\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetBackupVault", + "type": "string" + } + }, + "required": [ + "RuleName", + "TargetBackupVault" + ], + "type": "object" + }, + "AWS::Backup::BackupPlan.CopyActionResourceType": { + "additionalProperties": false, + "properties": { + "DestinationBackupVaultArn": { + "markdownDescription": "An Amazon Resource Name \\(ARN\\) that uniquely identifies the destination backup vault for the copied backup\\. For example, `arn:aws:backup:us-east-1:123456789012:vault:aBackupVault.` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationBackupVaultArn", + "type": "string" + }, + "Lifecycle": { + "$ref": "#/definitions/AWS::Backup::BackupPlan.LifecycleResourceType", + "markdownDescription": "Defines when a protected resource is transitioned to cold storage and when it expires\\. AWS Backup transitions and expires backups automatically according to the lifecycle that you define\\. If you do not specify a lifecycle, AWS Backup applies the lifecycle policy of the source backup to the destination backup\\. \nBackups transitioned to cold storage must be stored in cold storage for a minimum of 90 days\\. \n*Required*: No \n*Type*: [LifecycleResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-lifecycleresourcetype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Lifecycle" + } + }, + "required": [ + "DestinationBackupVaultArn" + ], + "type": "object" + }, + "AWS::Backup::BackupPlan.LifecycleResourceType": { + "additionalProperties": false, + "properties": { + "DeleteAfterDays": { + "markdownDescription": "Specifies the number of days after creation that a recovery point is deleted\\. Must be greater than `MoveToColdStorageAfterDays`\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteAfterDays", + "type": "number" + }, + "MoveToColdStorageAfterDays": { + "markdownDescription": "Specifies the number of days after creation that a recovery point is moved to cold storage\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Uniquely identifies a backup plan\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BackupPlanId", + "type": "string" + }, + "BackupSelection": { + "$ref": "#/definitions/AWS::Backup::BackupSelection.BackupSelectionResourceType", + "markdownDescription": "Specifies the body of a request to assign a set of resources to a backup plan\\. \nIt includes an array of resources, an optional array of patterns to exclude resources, an optional role to provide access to the AWS service the resource belongs to, and an optional array of tags used to identify a set of resources\\. \n*Required*: Yes \n*Type*: [BackupSelectionResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-backupselectionresourcetype.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BackupSelection" + } + }, + "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", + "markdownDescription": "A list of conditions that you define to assign resources to your backup plans using tags\\. For example, `\"StringEquals\": {\"Department\": \"accounting\"`\\. Condition operators are case sensitive\\. \n`Conditions` differs from `ListOfTags` as follows: \n+ When you specify more than one condition, you only assign the resources that match ALL conditions \\(using AND logic\\)\\.\n+ `Conditions` supports `StringEquals`, `StringLike`, `StringNotEquals`, and `StringNotLike`\\. `ListOfTags` only supports `StringEquals`\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Conditions" + }, + "IamRoleArn": { + "markdownDescription": "The ARN of the IAM role that AWS Backup uses to authenticate when backing up the target resource; for example, `arn:aws:iam::123456789012:role/S3Access`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IamRoleArn", + "type": "string" + }, + "ListOfTags": { + "items": { + "$ref": "#/definitions/AWS::Backup::BackupSelection.ConditionResourceType" + }, + "markdownDescription": "An array of conditions used to specify a set of resources to assign to a backup plan; for example, `\"STRINGEQUALS\": {\"Department\":\"accounting\"`\\. \n*Required*: No \n*Type*: List of [ConditionResourceType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-conditionresourcetype.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ListOfTags", + "type": "array" + }, + "NotResources": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of Amazon Resource Names \\(ARNs\\) to exclude from a backup plan\\. The maximum number of ARNs is 500 without wildcards, or 30 ARNs with wildcards\\. \nIf you need to exclude many resources from a backup plan, consider a different resource selection strategy, such as assigning only one or a few resource types or refining your resource selection using tags\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NotResources", + "type": "array" + }, + "Resources": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of strings that contain Amazon Resource Names \\(ARNs\\) of resources to assign to a backup plan\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Resources", + "type": "array" + }, + "SelectionName": { + "markdownDescription": "The display name of a resource selection document\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The key in a key\\-value pair\\. For example, in `\"Department\": \"accounting\"`, `\"Department\"` is the key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConditionKey", + "type": "string" + }, + "ConditionType": { + "markdownDescription": "An operation, such as `STRINGEQUALS`, that is applied to a key\\-value pair used to filter resources in a selection\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConditionType", + "type": "string" + }, + "ConditionValue": { + "markdownDescription": "The value in a key\\-value pair\\. For example, in `\"Department\": \"accounting\"`, `\"accounting\"` is the value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A resource\\-based policy that is used to manage access permissions on the target backup vault\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessPolicy", + "type": "object" + }, + "BackupVaultName": { + "markdownDescription": "The name of a logical container where backups are stored\\. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created\\. They consist of lowercase letters, numbers, and hyphens\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9\\-\\_]{2,50}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BackupVaultName", + "type": "string" + }, + "BackupVaultTags": { + "additionalProperties": true, + "markdownDescription": "Metadata that you can assign to help organize the resources that you create\\. Each tag is a key\\-value pair\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "BackupVaultTags", + "type": "object" + }, + "EncryptionKeyArn": { + "markdownDescription": "A server\\-side encryption key you can specify to encrypt your backups from services that support full AWS Backup management; for example, `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`\\. If you specify a key, you must specify its ARN, not its alias\\. If you do not specify a key, AWS Backup creates a KMS key for you by default\\. \nTo learn which AWS Backup services support full AWS Backup management and how AWS Backup handles encryption for backups from services that do not yet support full AWS Backup, see [ Encryption for backups in AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/encryption.html) \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncryptionKeyArn", + "type": "string" + }, + "LockConfiguration": { + "$ref": "#/definitions/AWS::Backup::BackupVault.LockConfigurationType", + "markdownDescription": "Configuration for [AWS Backup Vault Lock](https://docs.aws.amazon.com/aws-backup/latest/devguide/vault-lock.html)\\. \n*Required*: No \n*Type*: [LockConfigurationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-lockconfigurationtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LockConfiguration" + }, + "Notifications": { + "$ref": "#/definitions/AWS::Backup::BackupVault.NotificationObjectType", + "markdownDescription": "The SNS event notifications for the specified backup vault\\. \n*Required*: No \n*Type*: [NotificationObjectType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-notificationobjecttype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Notifications" + } + }, + "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": { + "markdownDescription": "The AWS Backup Vault Lock configuration that specifies the number of days before the lock date\\. For example, setting `ChangeableForDays` to 30 on Jan\\. 1, 2022 at 8pm UTC will set the lock date to Jan\\. 31, 2022 at 8pm UTC\\. \nAWS Backup enforces a 72\\-hour cooling\\-off period before Vault Lock takes effect and becomes immutable\\. Therefore, you must set `ChangeableForDays` to 3 or greater\\. \nBefore the lock date, you can delete Vault Lock from the vault using `DeleteBackupVaultLockConfiguration` or change the Vault Lock configuration using `PutBackupVaultLockConfiguration`\\. On and after the lock date, the Vault Lock becomes immutable and cannot be changed or deleted\\. \nIf this parameter is not specified, you can delete Vault Lock from the vault using `DeleteBackupVaultLockConfiguration` or change the Vault Lock configuration using `PutBackupVaultLockConfiguration` at any time\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChangeableForDays", + "type": "number" + }, + "MaxRetentionDays": { + "markdownDescription": "The AWS Backup Vault Lock configuration that specifies the maximum retention period that the vault retains its recovery points\\. This setting can be useful if, for example, your organization's policies require you to destroy certain data after retaining it for four years \\(1460 days\\)\\. \nIf this parameter is not included, Vault Lock does not enforce a maximum retention period on the recovery points in the vault\\. If this parameter is included without a value, Vault Lock will not enforce a maximum retention period\\. \nIf this parameter is specified, any backup or copy job to the vault must have a lifecycle policy with a retention period equal to or shorter than the maximum retention period\\. If the job's retention period is longer than that maximum retention period, then the vault fails the backup or copy job, and you should either modify your lifecycle settings or use a different vault\\. Recovery points already saved in the vault prior to Vault Lock are not affected\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxRetentionDays", + "type": "number" + }, + "MinRetentionDays": { + "markdownDescription": "The AWS Backup Vault Lock configuration that specifies the minimum retention period that the vault retains its recovery points\\. This setting can be useful if, for example, your organization's policies require you to retain certain data for at least seven years \\(2555 days\\)\\. \nIf this parameter is not specified, Vault Lock will not enforce a minimum retention period\\. \nIf this parameter is specified, any backup or copy job to the vault must have a lifecycle policy with a retention period equal to or longer than the minimum retention period\\. If the job's retention period is shorter than that minimum retention period, then the vault fails that backup or copy job, and you should either modify your lifecycle settings or use a different vault\\. Recovery points already saved in the vault prior to Vault Lock are not affected\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinRetentionDays", + "type": "number" + } + }, + "required": [ + "MinRetentionDays" + ], + "type": "object" + }, + "AWS::Backup::BackupVault.NotificationObjectType": { + "additionalProperties": false, + "properties": { + "BackupVaultEvents": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of events that indicate the status of jobs to back up resources to the backup vault\\. For valid events, see [ BackupVaultEvents](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_PutBackupVaultNotifications.html#API_PutBackupVaultNotifications_RequestSyntax) in the *AWS Backup API Guide*\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackupVaultEvents", + "type": "array" + }, + "SNSTopicArn": { + "markdownDescription": "An ARN that uniquely identifies an Amazon Simple Notification Service \\(Amazon SNS\\) topic; for example, `arn:aws:sns:us-west-2:111122223333:MyTopic`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "Contains detailed information about all of the controls of a framework\\. Each framework must contain at least one control\\. \n*Required*: Yes \n*Type*: List of [FrameworkControl](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-framework-frameworkcontrol.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameworkControls", + "type": "array" + }, + "FrameworkDescription": { + "markdownDescription": "An optional description of the framework with a maximum 1,024 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameworkDescription", + "type": "string" + }, + "FrameworkName": { + "markdownDescription": "The unique name of a framework\\. This name is between 1 and 256 characters, starting with a letter, and consisting of letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), and underscores \\(\\_\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z][_a-zA-Z0-9]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FrameworkName", + "type": "string" + }, + "FrameworkTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of tags with which to tag your framework\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameworkTags", + "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": { + "markdownDescription": "The name of a parameter, for example, `BackupPlanFrequency`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterName", + "type": "string" + }, + "ParameterValue": { + "markdownDescription": "The value of parameter, for example, `hourly`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "A list of `ParameterName` and `ParameterValue` pairs\\. \n*Required*: No \n*Type*: List of [ControlInputParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-framework-controlinputparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ControlInputParameters", + "type": "array" + }, + "ControlName": { + "markdownDescription": "The name of a control\\. This name is between 1 and 256 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ControlName", + "type": "string" + }, + "ControlScope": { + "$ref": "#/definitions/AWS::Backup::Framework.ControlScope", + "markdownDescription": "The scope of a control\\. The control scope defines what the control will evaluate\\. Three examples of control scopes are: a specific backup plan, all backup plans with a specific tag, or all backup plans\\. For more information, see `ControlScope`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Contains information about where and how to deliver your reports, specifically your Amazon S3 bucket name, S3 key prefix, and the formats of your reports\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReportDeliveryChannel" + }, + "ReportPlanDescription": { + "markdownDescription": "An optional description of the report plan with a maximum 1,024 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReportPlanDescription", + "type": "string" + }, + "ReportPlanName": { + "markdownDescription": "The unique name of the report plan\\. This name is between 1 and 256 characters starting with a letter, and consisting of letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), and underscores \\(\\_\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z][_a-zA-Z0-9]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReportPlanName", + "type": "string" + }, + "ReportPlanTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of tags to tag your report plan\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReportPlanTags", + "type": "array" + }, + "ReportSetting": { + "$ref": "#/definitions/AWS::Backup::ReportPlan.ReportSetting", + "markdownDescription": "Identifies the report template for the report\\. Reports are built using a report template\\. The report templates are: \n `RESOURCE_COMPLIANCE_REPORT | CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT | COPY_JOB_REPORT | RESTORE_JOB_REPORT` \nIf the report template is `RESOURCE_COMPLIANCE_REPORT` or `CONTROL_COMPLIANCE_REPORT`, this API resource also describes the report coverage by AWS Regions and frameworks\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name for your compute environment\\. It can be up to 128 characters long\\. It can contain uppercase and lowercase letters, numbers, hyphens \\(\\-\\), and underscores \\(\\_\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ComputeEnvironmentName", + "type": "string" + }, + "ComputeResources": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.ComputeResources", + "markdownDescription": "The ComputeResources property type specifies details of the compute resources managed by the compute environment\\. This parameter is required for managed compute environments\\. For more information, see [Compute Environments](https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html) in the *AWS Batch User Guide*\\. \n*Required*: No \n*Type*: [ComputeResources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputeResources" + }, + "EksConfiguration": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.EksConfiguration", + "markdownDescription": "The details for the Amazon EKS cluster that supports the compute environment\\. \n*Required*: No \n*Type*: [EksConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-eksconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EksConfiguration" + }, + "ReplaceComputeEnvironment": { + "markdownDescription": "Specifies whether the compute environment is replaced if an update is made that requires replacing the instances in the compute environment\\. The default value is `true`\\. To enable more properties to be updated, set this property to `false`\\. When changing the value of this property to `false`, do not change any other properties at the same time\\. If other properties are changed at the same time, and the change needs to be rolled back but it can't, it's possible for the stack to go into the `UPDATE_ROLLBACK_FAILED` state\\. You can't update a stack that is in the `UPDATE_ROLLBACK_FAILED` state\\. However, if you can continue to roll it back, you can return the stack to its original settings and then try to update it again\\. For more information, see [Continue rolling back an update](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html) in the *AWS CloudFormation User Guide*\\. \nThe properties that can't be changed without replacing the compute environment are in the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html) property type: [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-allocationstrategy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-allocationstrategy), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-bidpercentage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-bidpercentage), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2configuration), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2keypair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2keypair), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2keypair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2keypair), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-imageid](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-imageid), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancerole](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancerole), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancetypes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancetypes), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-launchtemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-launchtemplate), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-maxvcpus](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-maxvcpus), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-minvcpus](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-minvcpus), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-placementgroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-placementgroup), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-securitygroupids](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-securitygroupids), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-subnets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-subnets), [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-tags), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-type), and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-updatetolatestimageversion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-updatetolatestimageversion)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplaceComputeEnvironment", + "type": "boolean" + }, + "ServiceRole": { + "markdownDescription": "The full Amazon Resource Name \\(ARN\\) of the IAM role that allows AWS Batch to make calls to other AWS services on your behalf\\. For more information, see [AWS Batch service IAM role](https://docs.aws.amazon.com/batch/latest/userguide/service_IAM_role.html) in the * AWS Batch User Guide*\\. \nIf your account already created the AWS Batch service\\-linked role, that role is used by default for your compute environment unless you specify a different role here\\. If the AWS Batch service\\-linked role doesn't exist in your account, and no role is specified here, the service attempts to create the AWS Batch service\\-linked role in your account\\.\nIf your specified role has a path other than `/`, then you must specify either the full role ARN \\(recommended\\) or prefix the role name with the path\\. For example, if a role with the name `bar` has a path of `/foo/`, specify `/foo/bar` as the role name\\. For more information, see [Friendly names and paths](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names) in the *IAM User Guide*\\. \nDepending on how you created your AWS Batch service role, its ARN might contain the `service-role` path prefix\\. When you only specify the name of the service role, AWS Batch assumes that your ARN doesn't use the `service-role` path prefix\\. Because of this, we recommend that you specify the full ARN of your service role when you create compute environments\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceRole", + "type": "string" + }, + "State": { + "markdownDescription": "The state of the compute environment\\. If the state is `ENABLED`, then the compute environment accepts jobs from a queue and can scale out automatically based on queues\\. \nIf the state is `ENABLED`, then the AWS Batch scheduler can attempt to place jobs from an associated job queue on the compute resources within the environment\\. If the compute environment is managed, then it can scale its instances out or in automatically, based on the job queue demand\\. \nIf the state is `DISABLED`, then the AWS Batch scheduler doesn't attempt to place jobs within the environment\\. Jobs in a `STARTING` or `RUNNING` state continue to progress normally\\. Managed compute environments in the `DISABLED` state don't scale out\\. However, they scale in to `minvCpus` value after instances become idle\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "The tags applied to the compute environment\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "type": "object" + }, + "Type": { + "markdownDescription": "The type of the compute environment: `MANAGED` or `UNMANAGED`\\. For more information, see [Compute Environments](https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html) in the * AWS Batch User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `MANAGED | UNMANAGED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + }, + "UnmanagedvCpus": { + "markdownDescription": "The maximum number of vCPUs for an unmanaged compute environment\\. This parameter is only used for fair share scheduling to reserve vCPU capacity for new share identifiers\\. If this parameter isn't provided for a fair share job queue, no vCPU capacity is reserved\\. \nThis parameter is only supported when the `type` parameter is set to `UNMANAGED`\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnmanagedvCpus", + "type": "number" + }, + "UpdatePolicy": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.UpdatePolicy", + "markdownDescription": "Specifies the infrastructure update policy for the compute environment\\. For more information about infrastructure updates, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: [UpdatePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-updatepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The allocation strategy to use for the compute resource if not enough instances of the best fitting instance type can be allocated\\. This might be because of availability of the instance type in the Region or [Amazon EC2 service limits](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html)\\. For more information, see [Allocation strategies](https://docs.aws.amazon.com/batch/latest/userguide/allocation-strategies.html) in the * AWS Batch User Guide*\\. \nWhen updating a compute environment, changing the allocation strategy requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. `BEST_FIT` is not supported when updating a compute environment\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified\\. \nBEST\\_FIT \\(default\\) \nAWS Batch selects an instance type that best fits the needs of the jobs with a preference for the lowest\\-cost instance type\\. If additional instances of the selected instance type aren't available, AWS Batch waits for the additional instances to be available\\. If there aren't enough instances available, or if the user is reaching [Amazon EC2 service limits](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html) then additional jobs aren't run until the currently running jobs have completed\\. This allocation strategy keeps costs lower but can limit scaling\\. If you are using Spot Fleets with `BEST_FIT` then the Spot Fleet IAM role must be specified\\. \nBEST\\_FIT\\_PROGRESSIVE \n AWS Batch will select additional instance types that are large enough to meet the requirements of the jobs in the queue, with a preference for instance types with a lower cost per unit vCPU\\. If additional instances of the previously selected instance types aren't available, AWS Batch will select new instance types\\. \nSPOT\\_CAPACITY\\_OPTIMIZED \n AWS Batch will select one or more instance types that are large enough to meet the requirements of the jobs in the queue, with a preference for instance types that are less likely to be interrupted\\. This allocation strategy is only available for Spot Instance compute resources\\.\nWith both `BEST_FIT_PROGRESSIVE` and `SPOT_CAPACITY_OPTIMIZED` allocation strategies using On\\-Demand or Spot Instances, and the `BEST_FIT` strategy using Spot Instances, AWS Batch might need to go above `maxvCpus` to meet your capacity requirements\\. In this event, AWS Batch never exceeds `maxvCpus` by more than a single instance\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BEST_FIT_PROGRESSIVE | SPOT_CAPACITY_OPTIMIZED` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "AllocationStrategy", + "type": "string" + }, + "BidPercentage": { + "markdownDescription": "The maximum percentage that a Spot Instance price can be when compared with the On\\-Demand price for that instance type before instances are launched\\. For example, if your maximum percentage is 20%, the Spot price must be less than 20% of the current On\\-Demand price for that Amazon EC2 instance\\. You always pay the lowest \\(market\\) price and never more than your maximum percentage\\. For most use cases, we recommend leaving this field empty\\. \nWhen updating a compute environment, changing the bid percentage requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "BidPercentage", + "type": "number" + }, + "DesiredvCpus": { + "markdownDescription": "The desired number of Amazon EC2 vCPUS in the compute environment\\. AWS Batch modifies this value between the minimum and maximum values based on job queue demand\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n AWS Batch doesn't support changing the desired number of vCPUs of an existing compute environment\\. Don't specify this parameter for compute environments using Amazon EKS clusters\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DesiredvCpus", + "type": "number" + }, + "Ec2Configuration": { + "items": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject" + }, + "markdownDescription": "Provides information used to select Amazon Machine Images \\(AMIs\\) for EC2 instances in the compute environment\\. If `Ec2Configuration` isn't specified, the default is `ECS_AL2`\\. \nWhen updating a compute environment, changing this setting requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. To remove the EC2 configuration and any custom AMI ID specified in `imageIdOverride`, set this value to an empty string\\. \nOne or two values can be provided\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n*Required*: No \n*Type*: List of [Ec2ConfigurationObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-ec2configurationobject.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Ec2Configuration", + "type": "array" + }, + "Ec2KeyPair": { + "markdownDescription": "The Amazon EC2 key pair that's used for instances launched in the compute environment\\. You can use this key pair to log in to your instances with SSH\\. To remove the Amazon EC2 key pair, set this value to an empty string\\. \nWhen updating a compute environment, changing the EC2 key pair requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Ec2KeyPair", + "type": "string" + }, + "ImageId": { + "markdownDescription": "The Amazon Machine Image \\(AMI\\) ID used for instances launched in the compute environment\\. This parameter is overridden by the `imageIdOverride` member of the `Ec2Configuration` structure\\. To remove the custom AMI ID and use the default AMI ID, set this value to an empty string\\. \nWhen updating a compute environment, changing the AMI ID requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\nThe AMI that you choose for a compute environment must match the architecture of the instance types that you intend to use for that compute environment\\. For example, if your compute environment uses A1 instance types, the compute resource AMI that you choose must support ARM instances\\. Amazon ECS vends both x86 and ARM versions of the Amazon ECS\\-optimized Amazon Linux 2 AMI\\. For more information, see [Amazon ECS\\-optimized Amazon Linux 2 AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#ecs-optimized-ami-linux-variants.html) in the *Amazon Elastic Container Service Developer Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "ImageId", + "type": "string" + }, + "InstanceRole": { + "markdownDescription": "The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment\\. You can specify the short name or full Amazon Resource Name \\(ARN\\) of an instance profile\\. For example, ` ecsInstanceRole ` or `arn:aws:iam:::instance-profile/ecsInstanceRole `\\. For more information, see [Amazon ECS instance role](https://docs.aws.amazon.com/batch/latest/userguide/instance_IAM_role.html) in the * AWS Batch User Guide*\\. \nWhen updating a compute environment, changing this setting requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "InstanceRole", + "type": "string" + }, + "InstanceTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The instances types that can be launched\\. You can specify instance families to launch any instance type within those families \\(for example, `c5` or `p3`\\), or you can specify specific sizes within a family \\(such as `c5.8xlarge`\\)\\. You can also choose `optimal` to select instance types \\(from the C4, M4, and R4 instance families\\) that match the demand of your job queues\\. \nWhen updating a compute environment, changing this setting requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\nWhen you create a compute environment, the instance types that you select for the compute environment must share the same architecture\\. For example, you can't mix x86 and ARM instances in the same compute environment\\.\nCurrently, `optimal` uses instance types from the C4, M4, and R4 instance families\\. In Regions that don't have instance types from those instance families, instance types from the C5, M5, and R5 instance families are used\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "InstanceTypes", + "type": "array" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification", + "markdownDescription": "The launch template to use for your compute resources\\. Any other compute resource parameters that you specify in a [CreateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html) API operation override the same parameters in the launch template\\. You must specify either the launch template ID or launch template name in the request, but not both\\. For more information, see [Launch Template Support](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *AWS Batch User Guide*\\. Removing the launch template from a compute environment will not remove the AMI specified in the launch template\\. In order to update the AMI specified in a launch template, the `updateToLatestImageVersion` parameter must be set to `true`\\. \nWhen updating a compute environment, changing the launch template requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified\\.\n*Required*: No \n*Type*: [LaunchTemplateSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-launchtemplatespecification.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "LaunchTemplate" + }, + "MaxvCpus": { + "markdownDescription": "The maximum number of Amazon EC2 vCPUs that an environment can reach\\. \nWith both `BEST_FIT_PROGRESSIVE` and `SPOT_CAPACITY_OPTIMIZED` allocation strategies using On\\-Demand or Spot Instances, and the `BEST_FIT` strategy using Spot Instances, AWS Batch might need to exceed `maxvCpus` to meet your capacity requirements\\. In this event, AWS Batch never exceeds `maxvCpus` by more than a single instance\\. That is, no more than a single instance from among those specified in your compute environment\\.\n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxvCpus", + "type": "number" + }, + "MinvCpus": { + "markdownDescription": "The minimum number of Amazon EC2 vCPUs that an environment should maintain \\(even if the compute environment is `DISABLED`\\)\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinvCpus", + "type": "number" + }, + "PlacementGroup": { + "markdownDescription": "The Amazon EC2 placement group to associate with your compute resources\\. If you intend to submit multi\\-node parallel jobs to your compute environment, you should consider creating a cluster placement group and associate it with your compute resources\\. This keeps your multi\\-node parallel job on a logical grouping of instances within a single Availability Zone with high network flow potential\\. For more information, see [Placement groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \nWhen updating a compute environment, changing the placement group requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "PlacementGroup", + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The Amazon EC2 security groups that are associated with instances launched in the compute environment\\. This parameter is required for Fargate compute resources, where it can contain up to 5 security groups\\. For Fargate compute resources, providing an empty list is handled as if this parameter wasn't specified and no change is made\\. For EC2 compute resources, providing an empty list removes the security groups from the compute resource\\. \nWhen updating a compute environment, changing the EC2 security groups requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SpotIamFleetRole": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon EC2 Spot Fleet IAM role applied to a `SPOT` compute environment\\. This role is required if the allocation strategy set to `BEST_FIT` or if the allocation strategy isn't specified\\. For more information, see [Amazon EC2 spot fleet role](https://docs.aws.amazon.com/batch/latest/userguide/spot_fleet_IAM_role.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\nTo tag your Spot Instances on creation, the Spot Fleet IAM role specified here must use the newer **AmazonEC2SpotFleetTaggingRole** managed policy\\. The previously recommended **AmazonEC2SpotFleetRole** managed policy doesn't have the required permissions to tag Spot Instances\\. For more information, see [Spot instances not tagged on creation](https://docs.aws.amazon.com/batch/latest/userguide/troubleshooting.html#spot-instance-no-tag) in the * AWS Batch User Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpotIamFleetRole", + "type": "string" + }, + "Subnets": { + "items": { + "type": "string" + }, + "markdownDescription": "The VPC subnets where the compute resources are launched\\. Fargate compute resources can contain up to 16 subnets\\. For Fargate compute resources, providing an empty list will be handled as if this parameter wasn't specified and no change is made\\. For EC2 compute resources, providing an empty list removes the VPC subnets from the compute resource\\. For more information, see [VPCs and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html) in the *Amazon VPC User Guide*\\. \nWhen updating a compute environment, changing the VPC subnets requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \n AWS Batch on Amazon EC2 and AWS Batch on Amazon EKS support Local Zones\\. For more information, see [ Local Zones](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-local-zones) in the *Amazon EC2 User Guide for Linux Instances*, [Amazon EKS and AWS Local Zones](https://docs.aws.amazon.com/eks/latest/userguide/local-zones.html) in the *Amazon EKS User Guide* and [ Amazon ECS clusters in Local Zones, Wavelength Zones, and AWS Outposts](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-regions-zones.html#clusters-local-zones) in the *Amazon ECS Developer Guide*\\. \n AWS Batch on Fargate doesn't currently support Local Zones\\.\n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Subnets", + "type": "array" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "Key\\-value pair tags to be applied to EC2 resources that are launched in the compute environment\\. For AWS Batch, these take the form of `\"String1\": \"String2\"`, where `String1` is the tag key and `String2` is the tag value\\-for example, `{ \"Name\": \"Batch Instance - C4OnDemand\" }`\\. This is helpful for recognizing your AWS Batch instances in the Amazon EC2 console\\. These tags aren't seen when using the AWS Batch `ListTagsForResource` API operation\\. \nWhen updating a compute environment, changing this setting requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't specify it\\.\n*Required*: No \n*Type*: Map of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "type": "object" + }, + "Type": { + "markdownDescription": "The type of compute environment: `EC2`, `SPOT`, `FARGATE`, or `FARGATE_SPOT`\\. For more information, see [Compute environments](https://docs.aws.amazon.com/batch/latest/userguide/compute_environments.html) in the * AWS Batch User Guide*\\. \n If you choose `SPOT`, you must also specify an Amazon EC2 Spot Fleet role with the `spotIamFleetRole` parameter\\. For more information, see [Amazon EC2 spot fleet role](https://docs.aws.amazon.com/batch/latest/userguide/spot_fleet_IAM_role.html) in the * AWS Batch User Guide*\\. \nWhen updating compute environment, changing the type of a compute environment requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \nWhen updating the type of a compute environment, changing between `EC2` and `SPOT` or between `FARGATE` and `FARGATE_SPOT` will initiate an infrastructure update, but if you switch between `EC2` and `FARGATE`, AWS CloudFormation will create a new compute environment\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EC2 | FARGATE | FARGATE_SPOT | SPOT` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Type", + "type": "string" + }, + "UpdateToLatestImageVersion": { + "markdownDescription": "Specifies whether the AMI ID is updated to the latest one that's supported by AWS Batch when the compute environment has an infrastructure update\\. The default value is `false`\\. \nAn AMI ID can either be specified in the `imageId` or `imageIdOverride` parameters or be determined by the launch template that's specified in the `launchTemplate` parameter\\. If an AMI ID is specified any of these ways, this parameter is ignored\\. For more information about to update AMI IDs during an infrastructure update, see [Updating the AMI ID](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html#updating-compute-environments-ami) in the * AWS Batch User Guide*\\.\nWhen updating a compute environment, changing this setting requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdateToLatestImageVersion", + "type": "boolean" + } + }, + "required": [ + "MaxvCpus", + "Subnets", + "Type" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject": { + "additionalProperties": false, + "properties": { + "ImageIdOverride": { + "markdownDescription": "The AMI ID used for instances launched in the compute environment that match the image type\\. This setting overrides the `imageId` set in the `computeResource` object\\. \nThe AMI that you choose for a compute environment must match the architecture of the instance types that you intend to use for that compute environment\\. For example, if your compute environment uses A1 instance types, the compute resource AMI that you choose must support ARM instances\\. Amazon ECS vends both x86 and ARM versions of the Amazon ECS\\-optimized Amazon Linux 2 AMI\\. For more information, see [Amazon ECS\\-optimized Amazon Linux 2 AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#ecs-optimized-ami-linux-variants.html) in the *Amazon Elastic Container Service Developer Guide*\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "ImageIdOverride", + "type": "string" + }, + "ImageKubernetesVersion": { + "markdownDescription": "The Kubernetes version for the compute environment\\. If you don't specify a value, the latest version that AWS Batch supports is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "ImageKubernetesVersion", + "type": "string" + }, + "ImageType": { + "markdownDescription": "The image type to match with the instance type to select an AMI\\. The supported values are different for `ECS` and `EKS` resources\\. \nECS \nIf the `imageIdOverride` parameter isn't specified, then a recent [Amazon ECS\\-optimized Amazon Linux 2 AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami) \\(`ECS_AL2`\\) is used\\. If a new image type is specified in an update, but neither an `imageId` nor a `imageIdOverride` parameter is specified, then the latest Amazon ECS optimized AMI for that image type that's supported by AWS Batch is used\\. \nECS\\_AL2 \n [Amazon Linux 2](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami): Default for all non\\-GPU instance families\\. \nECS\\_AL2\\_NVIDIA \n [Amazon Linux 2 \\(GPU\\)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#gpuami): Default for all GPU instance families \\(for example `P4` and `G4`\\) and can be used for all non AWS Graviton\\-based instance types\\. \nECS\\_AL1 \n [Amazon Linux](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#alami)\\. Amazon Linux has reached the end\\-of\\-life of standard support\\. For more information, see [Amazon Linux AMI](http://aws.amazon.com/amazon-linux-ami/)\\. \nEKS \nIf the `imageIdOverride` parameter isn't specified, then a recent [Amazon EKS\\-optimized Amazon Linux AMI](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html) \\(`EKS_AL2`\\) is used\\. If a new image type is specified in an update, but neither an `imageId` nor a `imageIdOverride` parameter is specified, then the latest Amazon EKS optimized AMI for that image type that AWS Batch supports is used\\. \nEKS\\_AL2 \n [Amazon Linux 2](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html): Default for all non\\-GPU instance families\\. \nEKS\\_AL2\\_NVIDIA \n [Amazon Linux 2 \\(accelerated\\)](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html): Default for all GPU instance families \\(for example, `P4` and `G4`\\) and can be used for all non AWS Graviton\\-based instance types\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "ImageType", + "type": "string" + } + }, + "required": [ + "ImageType" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment.EksConfiguration": { + "additionalProperties": false, + "properties": { + "EksClusterArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon EKS cluster\\. An example is `arn:aws:eks:us-east-1:123456789012:cluster/ClusterForBatch `\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EksClusterArn", + "type": "string" + }, + "KubernetesNamespace": { + "markdownDescription": "The namespace of the Amazon EKS cluster\\. AWS Batch manages pods in this namespace\\. The value can't left empty or null\\. It must be fewer than 64 characters long, can't be set to `default`, can't start with \"`kube-`,\" and must match this regular expression: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$`\\. For more information, see [Namespaces](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/) in the Kubernetes documentation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KubernetesNamespace", + "type": "string" + } + }, + "required": [ + "EksClusterArn", + "KubernetesNamespace" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "markdownDescription": "The ID of the launch template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "LaunchTemplateId", + "type": "string" + }, + "LaunchTemplateName": { + "markdownDescription": "The name of the launch template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "LaunchTemplateName", + "type": "string" + }, + "Version": { + "markdownDescription": "The version number of the launch template, `$Latest`, or `$Default`\\. \nIf the value is `$Latest`, the latest version of the launch template is used\\. If the value is `$Default`, the default version of the launch template is used\\. \nIf the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated\\. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true`\\. During an infrastructure update, if either `$Latest` or `$Default` is specified, AWS Batch re\\-evaluates the launch template version, and it might use a different version of the launch template\\. This is the case even if the launch template isn't specified in the update\\. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment\\. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the * AWS Batch User Guide*\\.\nDefault: `$Default`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Version", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::ComputeEnvironment.UpdatePolicy": { + "additionalProperties": false, + "properties": { + "JobExecutionTimeoutMinutes": { + "markdownDescription": "Specifies the job timeout \\(in minutes\\) when the compute environment infrastructure is updated\\. The default value is 30\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobExecutionTimeoutMinutes", + "type": "number" + }, + "TerminateJobsOnUpdate": { + "markdownDescription": "Specifies whether jobs are automatically terminated when the computer environment infrastructure is updated\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "An object with various properties specific to Amazon ECS based jobs\\. Valid values are `containerProperties`, `eksProperties`, and `nodeProperties`\\. Only one can be specified\\. \n*Required*: No \n*Type*: [ContainerProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerProperties" + }, + "EksProperties": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.EksProperties", + "markdownDescription": "An object with various properties that are specific to Amazon EKS based jobs\\. Valid values are `containerProperties`, `eksProperties`, and `nodeProperties`\\. Only one can be specified\\. \n*Required*: No \n*Type*: [EksProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-eksproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EksProperties" + }, + "JobDefinitionName": { + "markdownDescription": "The name of the job definition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "JobDefinitionName", + "type": "string" + }, + "NodeProperties": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeProperties", + "markdownDescription": "An object with various properties that are specific to multi\\-node parallel jobs\\. Valid values are `containerProperties`, `eksProperties`, and `nodeProperties`\\. Only one can be specified\\. \nIf the job runs on Fargate resources, don't specify `nodeProperties`\\. Use `containerProperties` instead\\.\n*Required*: No \n*Type*: [NodeProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-nodeproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NodeProperties" + }, + "Parameters": { + "markdownDescription": "Default parameters or parameter substitution placeholders that are set in the job definition\\. Parameters are specified as a key\\-value pair mapping\\. Parameters in a `SubmitJob` request override any corresponding parameter defaults from the job definition\\. For more information about specifying parameters, see [Job definition parameters](https://docs.aws.amazon.com/batch/latest/userguide/job_definition_parameters.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "object" + }, + "PlatformCapabilities": { + "items": { + "type": "string" + }, + "markdownDescription": "The platform capabilities required by the job definition\\. If no value is specified, it defaults to `EC2`\\. Jobs run on Fargate resources specify `FARGATE`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlatformCapabilities", + "type": "array" + }, + "PropagateTags": { + "markdownDescription": "Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task\\. If no value is specified, the tags aren't propagated\\. Tags can only be propagated to the tasks when the tasks are created\\. For tags with the same name, job tags are given priority over job definitions tags\\. If the total number of combined tags from the job and job definition is over 50, the job is moved to the `FAILED` state\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropagateTags", + "type": "boolean" + }, + "RetryStrategy": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.RetryStrategy", + "markdownDescription": "The retry strategy to use for failed jobs that are submitted with this job definition\\. \n*Required*: No \n*Type*: [RetryStrategy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-retrystrategy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryStrategy" + }, + "SchedulingPriority": { + "markdownDescription": "The scheduling priority of the job definition\\. This only affects jobs in job queues with a fair share policy\\. Jobs with a higher scheduling priority are scheduled before jobs with a lower scheduling priority\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchedulingPriority", + "type": "number" + }, + "Tags": { + "markdownDescription": "The tags that are applied to the job definition\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "type": "object" + }, + "Timeout": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Timeout", + "markdownDescription": "The timeout time for jobs that are submitted with this job definition\\. After the amount of time you specify passes, AWS Batch terminates your jobs if they aren't finished\\. \n*Required*: No \n*Type*: [Timeout](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-timeout.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout" + }, + "Type": { + "markdownDescription": "The type of job definition\\. For more information about multi\\-node parallel jobs, see [Creating a multi\\-node parallel job definition](https://docs.aws.amazon.com/batch/latest/userguide/multi-node-job-def.html) in the * AWS Batch User Guide*\\. \nIf the job is run on Fargate resources, then `multinode` isn't supported\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `container | multinode` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "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": { + "markdownDescription": "The Amazon EFS access point ID to use\\. If an access point is specified, the root directory value specified in the `EFSVolumeConfiguration` must either be omitted or set to `/` which enforces the path set on the EFS access point\\. If an access point is used, transit encryption must be enabled in the `EFSVolumeConfiguration`\\. For more information, see [Working with Amazon EFS access points](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html) in the *Amazon Elastic File System User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessPointId", + "type": "string" + }, + "Iam": { + "markdownDescription": "Whether or not to use the AWS Batch job IAM role defined in a job definition when mounting the Amazon EFS file system\\. If enabled, transit encryption must be enabled in the `EFSVolumeConfiguration`\\. If this parameter is omitted, the default value of `DISABLED` is used\\. For more information, see [Using Amazon EFS access points](https://docs.aws.amazon.com/batch/latest/userguide/efs-volumes.html#efs-volume-accesspoints) in the * AWS Batch User Guide*\\. EFS IAM authorization requires that `TransitEncryption` be `ENABLED` and that a `JobRoleArn` is specified\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iam", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.ContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "markdownDescription": "The command that's passed to the container\\. This parameter maps to `Cmd` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `COMMAND` parameter to [docker run](https://docs.docker.com/engine/reference/run/)\\. For more information, see [https://docs\\.docker\\.com/engine/reference/builder/\\#cmd](https://docs.docker.com/engine/reference/builder/#cmd)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Command", + "type": "array" + }, + "Environment": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Environment" + }, + "markdownDescription": "The environment variables to pass to a container\\. This parameter maps to `Env` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--env` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \nWe don't recommend using plaintext environment variables for sensitive information, such as credential data\\.\nEnvironment variables cannot start with \"`AWS_BATCH`\"\\. This naming convention is reserved for variables that AWS Batch sets\\.\n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-environment.html) of [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-environment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Environment", + "type": "array" + }, + "ExecutionRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the execution role that AWS Batch can assume\\. For jobs that run on Fargate resources, you must provide an execution role\\. For more information, see [AWS Batch execution IAM role](https://docs.aws.amazon.com/batch/latest/userguide/execution-IAM-role.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionRoleArn", + "type": "string" + }, + "FargatePlatformConfiguration": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.FargatePlatformConfiguration", + "markdownDescription": "The platform configuration for jobs that are running on Fargate resources\\. Jobs that are running on EC2 resources must not specify this parameter\\. \n*Required*: No \n*Type*: [FargatePlatformConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-fargateplatformconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FargatePlatformConfiguration" + }, + "Image": { + "markdownDescription": "The image used to start a container\\. This string is passed directly to the Docker daemon\\. Images in the Docker Hub registry are available by default\\. Other repositories are specified with ` repository-url/image:tag `\\. It can be 255 characters long\\. It can contain uppercase and lowercase letters, numbers, hyphens \\(\\-\\), underscores \\(\\_\\), colons \\(:\\), periods \\(\\.\\), forward slashes \\(/\\), and number signs \\(\\#\\)\\. This parameter maps to `Image` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `IMAGE` parameter of [docker run](https://docs.docker.com/engine/reference/run/)\\. \nDocker image architecture must match the processor architecture of the compute resources that they're scheduled on\\. For example, ARM\\-based Docker images can only run on ARM\\-based compute resources\\.\n+ Images in Amazon ECR Public repositories use the full `registry/repository[:tag]` or `registry/repository[@digest]` naming conventions\\. For example, `public.ecr.aws/registry_alias/my-web-app:latest `\\.\n+ Images in Amazon ECR repositories use the full registry and repository URI \\(for example, `123456789012.dkr.ecr..amazonaws.com/`\\)\\.\n+ Images in official repositories on Docker Hub use a single name \\(for example, `ubuntu` or `mongo`\\)\\.\n+ Images in other repositories on Docker Hub are qualified with an organization name \\(for example, `amazon/amazon-ecs-agent`\\)\\.\n+ Images in other online repositories are qualified further by a domain name \\(for example, `quay.io/assemblyline/ubuntu`\\)\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Image", + "type": "string" + }, + "InstanceType": { + "markdownDescription": "The instance type to use for a multi\\-node parallel job\\. All node groups in a multi\\-node parallel job must use the same instance type\\. \nThis parameter isn't applicable to single\\-node container jobs or jobs that run on Fargate resources, and shouldn't be provided\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", + "type": "string" + }, + "JobRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that the container can assume for AWS permissions\\. For more information, see [IAM roles for tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobRoleArn", + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.LinuxParameters", + "markdownDescription": "Linux\\-specific modifications that are applied to the container, such as details for device mappings\\. \n*Required*: No \n*Type*: [LinuxParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-linuxparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.LogConfiguration", + "markdownDescription": "The log configuration specification for the container\\. \nThis parameter maps to `LogConfig` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--log-driver` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. By default, containers use the same logging driver that the Docker daemon uses\\. However the container might use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition\\. To use a different logging driver for a container, the log system must be configured properly on the container instance \\(or on a different log server for remote logging options\\)\\. For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.docker.com/engine/admin/logging/overview/) in the Docker documentation\\. \n AWS Batch currently supports a subset of the logging drivers available to the Docker daemon \\(shown in the [LogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-logconfiguration) data type\\)\\.\nThis parameter requires version 1\\.18 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version | grep \"Server API version\"` \nThe Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the `ECS_AVAILABLE_LOGGING_DRIVERS` environment variable before containers placed on that instance can use these log configuration options\\. For more information, see [Amazon ECS container agent configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*\\.\n*Required*: No \n*Type*: [LogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-logconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogConfiguration" + }, + "Memory": { + "markdownDescription": "This parameter is deprecated, use `resourceRequirements` to specify the memory requirements for the job definition\\. It's not supported for jobs running on Fargate resources\\. For jobs that run on EC2 resources, it specifies the memory hard limit \\(in MiB\\) for a container\\. If your container attempts to exceed the specified number, it's terminated\\. You must specify at least 4 MiB of memory for a job using this parameter\\. The memory hard limit can be specified in several places\\. It must be specified for each node at least once\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Memory", + "type": "number" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.MountPoints" + }, + "markdownDescription": "The mount points for data volumes in your container\\. This parameter maps to `Volumes` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--volume` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html) of [MountPoints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MountPoints", + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.NetworkConfiguration", + "markdownDescription": "The network configuration for jobs that are running on Fargate resources\\. Jobs that are running on EC2 resources must not specify this parameter\\. \n*Required*: No \n*Type*: [NetworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-networkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkConfiguration" + }, + "Privileged": { + "markdownDescription": "When this parameter is true, the container is given elevated permissions on the host container instance \\(similar to the `root` user\\)\\. This parameter maps to `Privileged` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--privileged` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. The default value is false\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided, or specified as false\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Privileged", + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "markdownDescription": "When this parameter is true, the container is given read\\-only access to its root file system\\. This parameter maps to `ReadonlyRootfs` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--read-only` option to `docker run`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadonlyRootFilesystem", + "type": "boolean" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.ResourceRequirement" + }, + "markdownDescription": "The type and amount of resources to assign to a container\\. The supported resources include `GPU`, `MEMORY`, and `VCPU`\\. \n*Required*: No \n*Type*: List of [ResourceRequirement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-resourcerequirement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceRequirements", + "type": "array" + }, + "Secrets": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Secret" + }, + "markdownDescription": "The secrets for the container\\. For more information, see [Specifying sensitive data](https://docs.aws.amazon.com/batch/latest/userguide/specifying-sensitive-data.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: List of [Secret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-secret.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Secrets", + "type": "array" + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Ulimit" + }, + "markdownDescription": "A list of `ulimits` to set in the container\\. This parameter maps to `Ulimits` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--ulimit` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided\\.\n*Required*: No \n*Type*: List of [Ulimit](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ulimits", + "type": "array" + }, + "User": { + "markdownDescription": "The user name to use inside the container\\. This parameter maps to `User` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--user` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "User", + "type": "string" + }, + "Vcpus": { + "markdownDescription": "This parameter is deprecated, use `resourceRequirements` to specify the vCPU requirements for the job definition\\. It's not supported for jobs running on Fargate resources\\. For jobs running on EC2 resources, it specifies the number of vCPUs reserved for the job\\. \nEach vCPU is equivalent to 1,024 CPU shares\\. This parameter maps to `CpuShares` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--cpu-shares` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. The number of vCPUs must be specified but can be specified in several places\\. You must specify it at least once for each node\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Vcpus", + "type": "number" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Volumes" + }, + "markdownDescription": "A list of data volumes used in a job\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html) of [Volumes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Volumes", + "type": "array" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.Device": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "markdownDescription": "The path inside the container that's used to expose the host device\\. By default, the `hostPath` value is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerPath", + "type": "string" + }, + "HostPath": { + "markdownDescription": "The path for the device on the host container instance\\. \n*Required*: No \n*Type*: [String](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-eksvolume-hostpath.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostPath", + "type": "string" + }, + "Permissions": { + "items": { + "type": "string" + }, + "markdownDescription": "The explicit permissions to provide to the container for the device\\. By default, the container has permissions for `read`, `write`, and `mknod` for the device\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Permissions", + "type": "array" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.EfsVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "AuthorizationConfig": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.AuthorizationConfig", + "markdownDescription": "The authorization configuration details for the Amazon EFS file system\\. \n*Required*: No \n*Type*: [AuthorizationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-authorizationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationConfig" + }, + "FileSystemId": { + "markdownDescription": "The Amazon EFS file system ID to use\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileSystemId", + "type": "string" + }, + "RootDirectory": { + "markdownDescription": "The directory within the Amazon EFS file system to mount as the root directory inside the host\\. If this parameter is omitted, the root of the Amazon EFS volume is used instead\\. Specifying `/` has the same effect as omitting this parameter\\. The maximum length is 4,096 characters\\. \nIf an EFS access point is specified in the `authorizationConfig`, the root directory parameter must either be omitted or set to `/`, which enforces the path set on the Amazon EFS access point\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RootDirectory", + "type": "string" + }, + "TransitEncryption": { + "markdownDescription": "Determines whether to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server\\. Transit encryption must be enabled if Amazon EFS IAM authorization is used\\. If this parameter is omitted, the default value of `DISABLED` is used\\. For more information, see [Encrypting data in transit](https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html) in the *Amazon Elastic File System User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitEncryption", + "type": "string" + }, + "TransitEncryptionPort": { + "markdownDescription": "The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server\\. If you don't specify a transit encryption port, it uses the port selection strategy that the Amazon EFS mount helper uses\\. The value must be between 0 and 65,535\\. For more information, see [EFS mount helper](https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html) in the *Amazon Elastic File System User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitEncryptionPort", + "type": "number" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.EksContainer": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of arguments to the entrypoint\\. If this isn't specified, the `CMD` of the container image is used\\. This corresponds to the `args` member in the [Entrypoint](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint) portion of the [Pod](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/) in Kubernetes\\. Environment variable references are expanded using the container's environment\\. \nIf the referenced environment variable doesn't exist, the reference in the command isn't changed\\. For example, if the reference is to \"`$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/NAME1.html.html)`\" and the `https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/NAME1.html.html` environment variable doesn't exist, the command string will remain \"`$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/NAME1.html.html)`\\.\" `$$` is replaced with `$`, and the resulting string isn't expanded\\. For example, `$$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/VAR_NAME.html.html)` is passed as `$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/VAR_NAME.html.html)` whether or not the `https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/VAR_NAME.html.html` environment variable exists\\. For more information, see [CMD](https://docs.docker.com/engine/reference/builder/#cmd) in the *Dockerfile reference* and [Define a command and arguments for a pod](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Args", + "type": "array" + }, + "Command": { + "items": { + "type": "string" + }, + "markdownDescription": "The entrypoint for the container\\. This isn't run within a shell\\. If this isn't specified, the `ENTRYPOINT` of the container image is used\\. Environment variable references are expanded using the container's environment\\. \nIf the referenced environment variable doesn't exist, the reference in the command isn't changed\\. For example, if the reference is to \"`$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/NAME1.html.html)`\" and the `https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/NAME1.html.html` environment variable doesn't exist, the command string will remain \"`$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/NAME1.html.html)`\\.\" `$$` is replaced with `$` and the resulting string isn't expanded\\. For example, `$$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/VAR_NAME.html.html)` will be passed as `$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/VAR_NAME.html.html)` whether or not the `https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/VAR_NAME.html.html` environment variable exists\\. The entrypoint can't be updated\\. For more information, see [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint) in the *Dockerfile reference* and [Define a command and arguments for a container](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/) and [Entrypoint](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Command", + "type": "array" + }, + "Env": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.EksContainerEnvironmentVariable" + }, + "markdownDescription": "The environment variables to pass to a container\\. \nEnvironment variables cannot start with \"`AWS_BATCH`\"\\. This naming convention is reserved for variables that AWS Batch sets\\.\n*Required*: No \n*Type*: List of [EksContainerEnvironmentVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekscontainerenvironmentvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Env", + "type": "array" + }, + "Image": { + "markdownDescription": "The Docker image used to start the container\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Image", + "type": "string" + }, + "ImagePullPolicy": { + "markdownDescription": "The image pull policy for the container\\. Supported values are `Always`, `IfNotPresent`, and `Never`\\. This parameter defaults to `IfNotPresent`\\. However, if the `:latest` tag is specified, it defaults to `Always`\\. For more information, see [Updating images](https://kubernetes.io/docs/concepts/containers/images/#updating-images) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImagePullPolicy", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the container\\. If the name isn't specified, the default name \"`Default`\" is used\\. Each container in a pod must have a unique name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Resources": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Resources", + "markdownDescription": "The type and amount of resources to assign to a container\\. The supported resources include `memory`, `cpu`, and `nvidia.com/gpu`\\. For more information, see [Resource management for pods and containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: [Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekscontainer-resources.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Resources" + }, + "SecurityContext": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.SecurityContext", + "markdownDescription": "The security context for a job\\. For more information, see [Configure a security context for a pod or container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: [SecurityContext](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekscontainer-securitycontext.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityContext" + }, + "VolumeMounts": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.EksContainerVolumeMount" + }, + "markdownDescription": "The volume mounts for the container\\. AWS Batch supports `emptyDir`, `hostPath`, and `secret` volume types\\. For more information about volumes and volume mounts in Kubernetes, see [Volumes](https://kubernetes.io/docs/concepts/storage/volumes/) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: List of [EksContainerVolumeMount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekscontainervolumemount.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeMounts", + "type": "array" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.EksContainerEnvironmentVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the environment variable\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of the environment variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.EksContainerVolumeMount": { + "additionalProperties": false, + "properties": { + "MountPath": { + "markdownDescription": "The path on the container where the volume is mounted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MountPath", + "type": "string" + }, + "Name": { + "markdownDescription": "The name the volume mount\\. This must match the name of one of the volumes in the pod\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "ReadOnly": { + "markdownDescription": "If this value is `true`, the container has read\\-only access to the volume\\. Otherwise, the container can write to the volume\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadOnly", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.EksProperties": { + "additionalProperties": false, + "properties": { + "PodProperties": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.PodProperties", + "markdownDescription": "The properties for the Kubernetes pod resources of a job\\. \n*Required*: No \n*Type*: [PodProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-podproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PodProperties" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.EksVolume": { + "additionalProperties": false, + "properties": { + "EmptyDir": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.EmptyDir", + "markdownDescription": "Specifies the configuration of a Kubernetes `emptyDir` volume\\. For more information, see [emptyDir](https://kubernetes.io/docs/concepts/storage/volumes/#emptydir) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: [EmptyDir](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-eksvolume-emptydir.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmptyDir" + }, + "HostPath": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.HostPath", + "markdownDescription": "Specifies the configuration of a Kubernetes `hostPath` volume\\. For more information, see [hostPath](https://kubernetes.io/docs/concepts/storage/volumes/#hostpath) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: [HostPath](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-eksvolume-hostpath.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostPath" + }, + "Name": { + "markdownDescription": "The name of the volume\\. The name must be allowed as a DNS subdomain name\\. For more information, see [DNS subdomain names](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names) in the *Kubernetes documentation*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Secret": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Secret", + "markdownDescription": "Specifies the configuration of a Kubernetes `secret` volume\\. For more information, see [secret](https://kubernetes.io/docs/concepts/storage/volumes/#secret) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: [Secret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-secret.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Secret" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.EmptyDir": { + "additionalProperties": false, + "properties": { + "Medium": { + "markdownDescription": "The medium to store the volume\\. The default value is an empty string, which uses the storage of the node\\. \n\"\" \n **\\(Default\\)** Use the disk storage of the node\\. \n\"Memory\" \nUse the `tmpfs` volume that's backed by the RAM of the node\\. Contents of the volume are lost when the node reboots, and any storage on the volume counts against the container's memory limit\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Medium", + "type": "string" + }, + "SizeLimit": { + "markdownDescription": "The maximum size of the volume\\. By default, there's no maximum size defined\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SizeLimit", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.Environment": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the environment variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of the environment variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.EvaluateOnExit": { + "additionalProperties": false, + "properties": { + "Action": { + "markdownDescription": "Specifies the action to take if all of the specified conditions \\(`onStatusReason`, `onReason`, and `onExitCode`\\) are met\\. The values aren't case sensitive\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EXIT | RETRY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", + "type": "string" + }, + "OnExitCode": { + "markdownDescription": "Contains a glob pattern to match against the decimal representation of the `ExitCode` returned for a job\\. The pattern can be up to 512 characters long\\. It can contain only numbers, and can end with an asterisk \\(\\*\\) so that only the start of the string needs to be an exact match\\. \nThe string can contain up to 512 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnExitCode", + "type": "string" + }, + "OnReason": { + "markdownDescription": "Contains a glob pattern to match against the `Reason` returned for a job\\. The pattern can contain up to 512 characters\\. It can contain letters, numbers, periods \\(\\.\\), colons \\(:\\), and white space \\(including spaces and tabs\\)\\. It can optionally end with an asterisk \\(\\*\\) so that only the start of the string needs to be an exact match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnReason", + "type": "string" + }, + "OnStatusReason": { + "markdownDescription": "Contains a glob pattern to match against the `StatusReason` returned for a job\\. The pattern can contain up to 512 characters\\. It can contain letters, numbers, periods \\(\\.\\), colons \\(:\\), and white spaces \\(including spaces or tabs\\)\\. It can optionally end with an asterisk \\(\\*\\) so that only the start of the string needs to be an exact match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnStatusReason", + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.FargatePlatformConfiguration": { + "additionalProperties": false, + "properties": { + "PlatformVersion": { + "markdownDescription": "The AWS Fargate platform version where the jobs are running\\. A platform version is specified only for jobs that are running on Fargate resources\\. If one isn't specified, the `LATEST` platform version is used by default\\. This uses a recent, approved version of the AWS Fargate platform for compute resources\\. For more information, see [AWS Fargate platform versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlatformVersion", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.HostPath": { + "additionalProperties": false, + "properties": { + "Path": { + "markdownDescription": "The path of the file or directory on the host to mount into containers on the pod\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.LinuxParameters": { + "additionalProperties": false, + "properties": { + "Devices": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Device" + }, + "markdownDescription": "Any of the host devices to expose to the container\\. This parameter maps to `Devices` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--device` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't provide it for these jobs\\.\n*Required*: No \n*Type*: List of [Device](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-device.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Devices", + "type": "array" + }, + "InitProcessEnabled": { + "markdownDescription": "If true, run an `init` process inside the container that forwards signals and reaps processes\\. This parameter maps to the `--init` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. This parameter requires version 1\\.25 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version | grep \"Server API version\"` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InitProcessEnabled", + "type": "boolean" + }, + "MaxSwap": { + "markdownDescription": "The total amount of swap memory \\(in MiB\\) a container can use\\. This parameter is translated to the `--memory-swap` option to [docker run](https://docs.docker.com/engine/reference/run/) where the value is the sum of the container memory plus the `maxSwap` value\\. For more information, see [`--memory-swap` details](https://docs.docker.com/config/containers/resource_constraints/#--memory-swap-details) in the Docker documentation\\. \nIf a `maxSwap` value of `0` is specified, the container doesn't use swap\\. Accepted values are `0` or any positive integer\\. If the `maxSwap` parameter is omitted, the container doesn't use the swap configuration for the container instance that it's running on\\. A `maxSwap` value must be set for the `swappiness` parameter to be used\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't provide it for these jobs\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxSwap", + "type": "number" + }, + "SharedMemorySize": { + "markdownDescription": "The value for the size \\(in MiB\\) of the `/dev/shm` volume\\. This parameter maps to the `--shm-size` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't provide it for these jobs\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SharedMemorySize", + "type": "number" + }, + "Swappiness": { + "markdownDescription": "You can use this parameter to tune a container's memory swappiness behavior\\. A `swappiness` value of `0` causes swapping to not occur unless absolutely necessary\\. A `swappiness` value of `100` causes pages to be swapped aggressively\\. Valid values are whole numbers between `0` and `100`\\. If the `swappiness` parameter isn't specified, a default value of `60` is used\\. If a value isn't specified for `maxSwap`, then this parameter is ignored\\. If `maxSwap` is set to 0, the container doesn't use swap\\. This parameter maps to the `--memory-swappiness` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \nConsider the following when you use a per\\-container swap configuration\\. \n+ Swap space must be enabled and allocated on the container instance for the containers to use\\.\n**Note** \nBy default, the Amazon ECS optimized AMIs don't have swap enabled\\. You must enable swap on the instance to use this feature\\. For more information, see [Instance store swap volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-store-swap-volumes.html) in the *Amazon EC2 User Guide for Linux Instances* or [How do I allocate memory to work as swap space in an Amazon EC2 instance by using a swap file?](http://aws.amazon.com/premiumsupport/knowledge-center/ec2-memory-swap-file/) \n+ The swap space parameters are only supported for job definitions using EC2 resources\\.\n+ If the `maxSwap` and `swappiness` parameters are omitted from a job definition, each container has a default `swappiness` value of 60\\. Moreover, the total swap usage is limited to two times the memory reservation of the container\\.\nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't provide it for these jobs\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Swappiness", + "type": "number" + }, + "Tmpfs": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Tmpfs" + }, + "markdownDescription": "The container path, mount options, and size \\(in MiB\\) of the `tmpfs` mount\\. This parameter maps to the `--tmpfs` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources\\. Don't provide this parameter for this resource type\\.\n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-tmpfs.html) of [Tmpfs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-tmpfs.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tmpfs", + "type": "array" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "markdownDescription": "The log driver to use for the container\\. The valid values that are listed for this parameter are log drivers that the Amazon ECS container agent can communicate with by default\\. \nThe supported log drivers are `awslogs`, `fluentd`, `gelf`, `json-file`, `journald`, `logentries`, `syslog`, and `splunk`\\. \nJobs that are running on Fargate resources are restricted to the `awslogs` and `splunk` log drivers\\. \nawslogs \nSpecifies the Amazon CloudWatch Logs logging driver\\. For more information, see [Using the awslogs log driver](https://docs.aws.amazon.com/batch/latest/userguide/using_awslogs.html) in the * AWS Batch User Guide* and [Amazon CloudWatch Logs logging driver](https://docs.docker.com/config/containers/logging/awslogs/) in the Docker documentation\\. \nfluentd \nSpecifies the Fluentd logging driver\\. For more information including usage and options, see [Fluentd logging driver](https://docs.docker.com/config/containers/logging/fluentd/) in the *Docker documentation*\\. \ngelf \nSpecifies the Graylog Extended Format \\(GELF\\) logging driver\\. For more information including usage and options, see [Graylog Extended Format logging driver](https://docs.docker.com/config/containers/logging/gelf/) in the *Docker documentation*\\. \njournald \nSpecifies the journald logging driver\\. For more information including usage and options, see [Journald logging driver](https://docs.docker.com/config/containers/logging/journald/) in the *Docker documentation*\\. \njson\\-file \nSpecifies the JSON file logging driver\\. For more information including usage and options, see [JSON File logging driver](https://docs.docker.com/config/containers/logging/json-file/) in the *Docker documentation*\\. \nsplunk \nSpecifies the Splunk logging driver\\. For more information including usage and options, see [Splunk logging driver](https://docs.docker.com/config/containers/logging/splunk/) in the *Docker documentation*\\. \nsyslog \nSpecifies the syslog logging driver\\. For more information including usage and options, see [Syslog logging driver](https://docs.docker.com/config/containers/logging/syslog/) in the *Docker documentation*\\.\nIf you have a custom driver that's not listed earlier that you want to work with the Amazon ECS container agent, you can fork the Amazon ECS container agent project that's [available on GitHub](https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver\\. We encourage you to submit pull requests for changes that you want to have included\\. However, Amazon Web Services doesn't currently support running modified copies of this software\\.\nThis parameter requires version 1\\.18 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version | grep \"Server API version\"` \n*Required*: Yes \n*Type*: String \n*Allowed values*: `awslogs | fluentd | gelf | journald | json-file | splunk | syslog` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogDriver", + "type": "string" + }, + "Options": { + "markdownDescription": "The configuration options to send to the log driver\\. This parameter requires version 1\\.19 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version | grep \"Server API version\"` \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Options", + "type": "object" + }, + "SecretOptions": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Secret" + }, + "markdownDescription": "The secrets to pass to the log configuration\\. For more information, see [Specifying sensitive data](https://docs.aws.amazon.com/batch/latest/userguide/specifying-sensitive-data.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: List of [Secret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-secret.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretOptions", + "type": "array" + } + }, + "required": [ + "LogDriver" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.MountPoints": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "markdownDescription": "The path on the container where the host volume is mounted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerPath", + "type": "string" + }, + "ReadOnly": { + "markdownDescription": "If this value is `true`, the container has read\\-only access to the volume\\. Otherwise, the container can write to the volume\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadOnly", + "type": "boolean" + }, + "SourceVolume": { + "markdownDescription": "The name of the volume to mount\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceVolume", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "markdownDescription": "Indicates whether the job has a public IP address\\. For a job that's running on Fargate resources in a private subnet to send outbound traffic to the internet \\(for example, to pull container images\\), the private subnet requires a NAT gateway be attached to route requests to the internet\\. For more information, see [Amazon ECS task networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*\\. The default value is \"`DISABLED`\"\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssignPublicIp", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.NodeProperties": { + "additionalProperties": false, + "properties": { + "MainNode": { + "markdownDescription": "Specifies the node index for the main node of a multi\\-node parallel job\\. This node index value must be fewer than the number of nodes\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MainNode", + "type": "number" + }, + "NodeRangeProperties": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeRangeProperty" + }, + "markdownDescription": "A list of node ranges and their properties that are associated with a multi\\-node parallel job\\. \n*Required*: Yes \n*Type*: List of [NodeRangeProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-noderangeproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NodeRangeProperties", + "type": "array" + }, + "NumNodes": { + "markdownDescription": "The number of nodes that are associated with a multi\\-node parallel job\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumNodes", + "type": "number" + } + }, + "required": [ + "MainNode", + "NodeRangeProperties", + "NumNodes" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.NodeRangeProperty": { + "additionalProperties": false, + "properties": { + "Container": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties", + "markdownDescription": "The container details for the node range\\. \n*Required*: No \n*Type*: [ContainerProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Container" + }, + "TargetNodes": { + "markdownDescription": "The range of nodes, using node index values\\. A range of `0:3` indicates nodes with index values of `0` through `3`\\. If the starting range value is omitted \\(`:n`\\), then `0` is used to start the range\\. If the ending range value is omitted \\(`n:`\\), then the highest possible node index is used to end the range\\. Your accumulative node ranges must account for all nodes \\(`0:n`\\)\\. You can nest node ranges \\(for example, `0:10` and `4:5`\\)\\. In this case, the `4:5` range properties override the `0:10` properties\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetNodes", + "type": "string" + } + }, + "required": [ + "TargetNodes" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.PodProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.EksContainer" + }, + "markdownDescription": "The properties of the container that's used on the Amazon EKS pod\\. \n*Required*: No \n*Type*: List of [EksContainer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ekscontainer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Containers", + "type": "array" + }, + "DnsPolicy": { + "markdownDescription": "The DNS policy for the pod\\. The default value is `ClusterFirst`\\. If the `hostNetwork` parameter is not specified, the default is `ClusterFirstWithHostNet`\\. `ClusterFirst` indicates that any DNS query that does not match the configured cluster domain suffix is forwarded to the upstream nameserver inherited from the node\\. If no value was specified for `dnsPolicy` in the [RegisterJobDefinition](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html) API operation, then no value will be returned for `dnsPolicy` by either of [DescribeJobDefinitions](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobDefinitions.html) or [DescribeJobs](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobs.html) API operations\\. The pod spec setting will contain either `ClusterFirst` or `ClusterFirstWithHostNet`, depending on the value of the `hostNetwork` parameter\\. For more information, see [Pod's DNS policy](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy) in the *Kubernetes documentation*\\. \nValid values: `Default` \\| `ClusterFirst` \\| `ClusterFirstWithHostNet` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DnsPolicy", + "type": "string" + }, + "HostNetwork": { + "markdownDescription": "Indicates if the pod uses the hosts' network IP address\\. The default value is `true`\\. Setting this to `false` enables the Kubernetes pod networking model\\. Most AWS Batch workloads are egress\\-only and don't require the overhead of IP allocation for each pod for incoming connections\\. For more information, see [Host namespaces](https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces) and [Pod networking](https://kubernetes.io/docs/concepts/workloads/pods/#pod-networking) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostNetwork", + "type": "boolean" + }, + "ServiceAccountName": { + "markdownDescription": "The name of the service account that's used to run the pod\\. For more information, see [Kubernetes service accounts](https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html) and [Configure a Kubernetes service account to assume an IAM role](https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html) in the *Amazon EKS User Guide* and [Configure service accounts for pods](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceAccountName", + "type": "string" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.EksVolume" + }, + "markdownDescription": "Specifies the volumes for a job definition that uses Amazon EKS resources\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html) of [EksVolume](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-eksvolume.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Volumes", + "type": "array" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.ResourceRequirement": { + "additionalProperties": false, + "properties": { + "Type": { + "markdownDescription": "The type of resource to assign to a container\\. The supported resources include `GPU`, `MEMORY`, and `VCPU`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GPU | MEMORY | VCPU` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "Value": { + "markdownDescription": "The quantity of the specified resource to reserve for the container\\. The values vary based on the `type` specified\\. \ntype=\"GPU\" \nThe number of physical GPUs to reserve for the container\\. Make sure that the number of GPUs reserved for all containers in a job doesn't exceed the number of available GPUs on the compute resource that the job is launched on\\. \nGPUs aren't available for jobs that are running on Fargate resources\\. \ntype=\"MEMORY\" \nThe memory hard limit \\(in MiB\\) present to the container\\. This parameter is supported for jobs that are running on EC2 resources\\. If your container attempts to exceed the memory specified, the container is terminated\\. This parameter maps to `Memory` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--memory` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. You must specify at least 4 MiB of memory for a job\\. This is required but can be specified in several places for multi\\-node parallel \\(MNP\\) jobs\\. It must be specified for each node at least once\\. This parameter maps to `Memory` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--memory` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. \nIf you're trying to maximize your resource utilization by providing your jobs as much memory as possible for a particular instance type, see [Memory management](https://docs.aws.amazon.com/batch/latest/userguide/memory-management.html) in the * AWS Batch User Guide*\\.\nFor jobs that are running on Fargate resources, then `value` is the hard limit \\(in MiB\\), and must match one of the supported values and the `VCPU` values must be one of the values supported for that memory value\\. \nvalue = 512 \n `VCPU` = 0\\.25 \nvalue = 1024 \n `VCPU` = 0\\.25 or 0\\.5 \nvalue = 2048 \n `VCPU` = 0\\.25, 0\\.5, or 1 \nvalue = 3072 \n `VCPU` = 0\\.5, or 1 \nvalue = 4096 \n `VCPU` = 0\\.5, 1, or 2 \nvalue = 5120, 6144, or 7168 \n `VCPU` = 1 or 2 \nvalue = 8192 \n `VCPU` = 1, 2, or 4 \nvalue = 9216, 10240, 11264, 12288, 13312, 14336, or 15360 \n `VCPU` = 2 or 4 \nvalue = 16384 \n `VCPU` = 2, 4, or 8 \nvalue = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, 29696, or 30720 \n `VCPU` = 4 \nvalue = 20480, 24576, or 28672 \n `VCPU` = 4 or 8 \nvalue = 36864, 45056, 53248, or 61440 \n `VCPU` = 8 \nvalue = 32768, 40960, 49152, or 57344 \n `VCPU` = 8 or 16 \nvalue = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880 \n `VCPU` = 16 \ntype=\"VCPU\" \nThe number of vCPUs reserved for the container\\. This parameter maps to `CpuShares` in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the `--cpu-shares` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. Each vCPU is equivalent to 1,024 CPU shares\\. For EC2 resources, you must specify at least one vCPU\\. This is required but can be specified in several places; it must be specified for each node at least once\\. \nThe default for the Fargate On\\-Demand vCPU resource count quota is 6 vCPUs\\. For more information about Fargate quotas, see [AWS Fargate quotas](https://docs.aws.amazon.com/general/latest/gr/ecs-service.html#service-quotas-fargate) in the * AWS General Reference*\\. \nFor jobs that are running on Fargate resources, then `value` must match one of the supported values and the `MEMORY` values must be one of the values supported for that `VCPU` value\\. The supported values are 0\\.25, 0\\.5, 1, 2, 4, 8, and 16 \nvalue = 0\\.25 \n `MEMORY` = 512, 1024, or 2048 \nvalue = 0\\.5 \n `MEMORY` = 1024, 2048, 3072, or 4096 \nvalue = 1 \n `MEMORY` = 2048, 3072, 4096, 5120, 6144, 7168, or 8192 \nvalue = 2 \n `MEMORY` = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384 \nvalue = 4 \n `MEMORY` = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720 \nvalue = 8 \n `MEMORY` = 16384, 20480, 24576, 28672, 32768, 36864, 40960, 45056, 49152, 53248, 57344, or 61440 \nvalue = 16 \n `MEMORY` = 32768, 40960, 49152, 57344, 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880 \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.Resources": { + "additionalProperties": false, + "properties": { + "Limits": { + "markdownDescription": "The type and quantity of the resources to reserve for the container\\. The values vary based on the `name` that's specified\\. Resources can be requested using either the `limits` or the `requests` objects\\. \nmemory \nThe memory hard limit \\(in MiB\\) for the container, using whole integers, with a \"Mi\" suffix\\. If your container attempts to exceed the memory specified, the container is terminated\\. You must specify at least 4 MiB of memory for a job\\. `memory` can be specified in `limits`, `requests`, or both\\. If `memory` is specified in both places, then the value that's specified in `limits` must be equal to the value that's specified in `requests`\\. \nTo maximize your resource utilization, provide your jobs with as much memory as possible for the specific instance type that you are using\\. To learn how, see [Memory management](https://docs.aws.amazon.com/batch/latest/userguide/memory-management.html) in the * AWS Batch User Guide*\\. \ncpu \nThe number of CPUs that's reserved for the container\\. Values must be an even multiple of `0.25`\\. `cpu` can be specified in `limits`, `requests`, or both\\. If `cpu` is specified in both places, then the value that's specified in `limits` must be at least as large as the value that's specified in `requests`\\. \nnvidia\\.com/gpu \nThe number of GPUs that's reserved for the container\\. Values must be a whole integer\\. `memory` can be specified in `limits`, `requests`, or both\\. If `memory` is specified in both places, then the value that's specified in `limits` must be equal to the value that's specified in `requests`\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Limits", + "type": "object" + }, + "Requests": { + "markdownDescription": "The type and quantity of the resources to request for the container\\. The values vary based on the `name` that's specified\\. Resources can be requested by using either the `limits` or the `requests` objects\\. \nmemory \nThe memory hard limit \\(in MiB\\) for the container, using whole integers, with a \"Mi\" suffix\\. If your container attempts to exceed the memory specified, the container is terminated\\. You must specify at least 4 MiB of memory for a job\\. `memory` can be specified in `limits`, `requests`, or both\\. If `memory` is specified in both, then the value that's specified in `limits` must be equal to the value that's specified in `requests`\\. \nIf you're trying to maximize your resource utilization by providing your jobs as much memory as possible for a particular instance type, see [Memory management](https://docs.aws.amazon.com/batch/latest/userguide/memory-management.html) in the * AWS Batch User Guide*\\. \ncpu \nThe number of CPUs that are reserved for the container\\. Values must be an even multiple of `0.25`\\. `cpu` can be specified in `limits`, `requests`, or both\\. If `cpu` is specified in both, then the value that's specified in `limits` must be at least as large as the value that's specified in `requests`\\. \nnvidia\\.com/gpu \nThe number of GPUs that are reserved for the container\\. Values must be a whole integer\\. `nvidia.com/gpu` can be specified in `limits`, `requests`, or both\\. If `nvidia.com/gpu` is specified in both, then the value that's specified in `limits` must be equal to the value that's specified in `requests`\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Requests", + "type": "object" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.RetryStrategy": { + "additionalProperties": false, + "properties": { + "Attempts": { + "markdownDescription": "The number of times to move a job to the `RUNNABLE` status\\. You can specify between 1 and 10 attempts\\. If the value of `attempts` is greater than one, the job is retried on failure the same number of attempts as the value\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attempts", + "type": "number" + }, + "EvaluateOnExit": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.EvaluateOnExit" + }, + "markdownDescription": "Array of up to 5 objects that specify the conditions where jobs are retried or failed\\. If this parameter is specified, then the `attempts` parameter must also be specified\\. If none of the listed conditions match, then the job is retried\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-evaluateonexit.html) of [EvaluateOnExit](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-evaluateonexit.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EvaluateOnExit", + "type": "array" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the secret\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "ValueFrom": { + "markdownDescription": "The secret to expose to the container\\. The supported values are either the full Amazon Resource Name \\(ARN\\) of the AWS Secrets Manager secret or the full ARN of the parameter in the AWS Systems Manager Parameter Store\\. \nIf the AWS Systems Manager Parameter Store parameter exists in the same Region as the job you're launching, then you can use either the full Amazon Resource Name \\(ARN\\) or name of the parameter\\. If the parameter exists in a different Region, then the full ARN must be specified\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValueFrom", + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.SecurityContext": { + "additionalProperties": false, + "properties": { + "Privileged": { + "markdownDescription": "When this parameter is `true`, the container is given elevated permissions on the host container instance\\. The level of permissions are similar to the `root` user permissions\\. The default value is `false`\\. This parameter maps to `privileged` policy in the [Privileged pod security policies](https://kubernetes.io/docs/concepts/security/pod-security-policy/#privileged) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Privileged", + "type": "boolean" + }, + "ReadOnlyRootFilesystem": { + "markdownDescription": "When this parameter is `true`, the container is given read\\-only access to its root file system\\. The default value is `false`\\. This parameter maps to `ReadOnlyRootFilesystem` policy in the [Volumes and file systems pod security policies](https://kubernetes.io/docs/concepts/security/pod-security-policy/#volumes-and-file-systems) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadOnlyRootFilesystem", + "type": "boolean" + }, + "RunAsGroup": { + "markdownDescription": "When this parameter is specified, the container is run as the specified group ID \\(`gid`\\)\\. If this parameter isn't specified, the default is the group that's specified in the image metadata\\. This parameter maps to `RunAsGroup` and `MustRunAs` policy in the [Users and groups pod security policies](https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RunAsGroup", + "type": "number" + }, + "RunAsNonRoot": { + "markdownDescription": "When this parameter is specified, the container is run as a user with a `uid` other than 0\\. If this parameter isn't specified, so such rule is enforced\\. This parameter maps to `RunAsUser` and `MustRunAsNonRoot` policy in the [Users and groups pod security policies](https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RunAsNonRoot", + "type": "boolean" + }, + "RunAsUser": { + "markdownDescription": "When this parameter is specified, the container is run as the specified user ID \\(`uid`\\)\\. If this parameter isn't specified, the default is the user that's specified in the image metadata\\. This parameter maps to `RunAsUser` and `MustRanAs` policy in the [Users and groups pod security policies](https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups) in the *Kubernetes documentation*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RunAsUser", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.Timeout": { + "additionalProperties": false, + "properties": { + "AttemptDurationSeconds": { + "markdownDescription": "The job timeout time \\(in seconds\\) that's measured from the job attempt's `startedAt` timestamp\\. After this time passes, AWS Batch terminates your jobs if they aren't finished\\. The minimum value for the timeout is 60 seconds\\. \nFor array jobs, the timeout applies to the child jobs, not to the parent array job\\. \nFor multi\\-node parallel \\(MNP\\) jobs, the timeout applies to the whole job, not to the individual nodes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttemptDurationSeconds", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.Tmpfs": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "markdownDescription": "The absolute file path in the container where the `tmpfs` volume is mounted\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerPath", + "type": "string" + }, + "MountOptions": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of `tmpfs` volume mount options\\. \nValid values: \"`defaults`\" \\| \"`ro`\" \\| \"`rw`\" \\| \"`suid`\" \\| \"`nosuid`\" \\| \"`dev`\" \\| \"`nodev`\" \\| \"`exec`\" \\| \"`noexec`\" \\| \"`sync`\" \\| \"`async`\" \\| \"`dirsync`\" \\| \"`remount`\" \\| \"`mand`\" \\| \"`nomand`\" \\| \"`atime`\" \\| \"`noatime`\" \\| \"`diratime`\" \\| \"`nodiratime`\" \\| \"`bind`\" \\| \"`rbind\" | \"unbindable\" | \"runbindable\" | \"private\" | \"rprivate\" | \"shared\" | \"rshared\" | \"slave\" | \"rslave\" | \"relatime`\" \\| \"`norelatime`\" \\| \"`strictatime`\" \\| \"`nostrictatime`\" \\| \"`mode`\" \\| \"`uid`\" \\| \"`gid`\" \\| \"`nr_inodes`\" \\| \"`nr_blocks`\" \\| \"`mpol`\" \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MountOptions", + "type": "array" + }, + "Size": { + "markdownDescription": "The size \\(in MiB\\) of the `tmpfs` volume\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Size", + "type": "number" + } + }, + "required": [ + "ContainerPath", + "Size" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "markdownDescription": "The hard limit for the `ulimit` type\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HardLimit", + "type": "number" + }, + "Name": { + "markdownDescription": "The `type` of the `ulimit`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "SoftLimit": { + "markdownDescription": "The soft limit for the `ulimit` type\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SoftLimit", + "type": "number" + } + }, + "required": [ + "HardLimit", + "Name", + "SoftLimit" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.Volumes": { + "additionalProperties": false, + "properties": { + "EfsVolumeConfiguration": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.EfsVolumeConfiguration", + "markdownDescription": "This is used when you're using an Amazon Elastic File System file system for job storage\\. For more information, see [Amazon EFS Volumes](https://docs.aws.amazon.com/batch/latest/userguide/efs-volumes.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: [EfsVolumeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EfsVolumeConfiguration" + }, + "Host": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.VolumesHost", + "markdownDescription": "The contents of the `host` parameter determine whether your data volume persists on the host container instance and where it's stored\\. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume\\. However, the data isn't guaranteed to persist after the containers that are associated with it stop running\\. \nThis parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided\\.\n*Required*: No \n*Type*: [VolumesHost](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumeshost.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host" + }, + "Name": { + "markdownDescription": "The name of the volume\\. It can be up to 255 characters long\\. It can contain uppercase and lowercase letters, numbers, hyphens \\(\\-\\), and underscores \\(\\_\\)\\. This name is referenced in the `sourceVolume` parameter of container definition `mountPoints`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.VolumesHost": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "markdownDescription": "The path on the host container instance that's presented to the container\\. If this parameter is empty, then the Docker daemon has assigned a host path for you\\. If this parameter contains a file location, then the data volume persists at the specified location on the host container instance until you delete it manually\\. If the source path location doesn't exist on the host container instance, the Docker daemon creates it\\. If the location does exist, the contents of the source path folder are exported\\. \nThis parameter isn't applicable to jobs that run on Fargate resources\\. Don't provide this for these jobs\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The set of compute environments mapped to a job queue and their order relative to each other\\. The job scheduler uses this parameter to determine which compute environment runs a specific job\\. Compute environments must be in the `VALID` state before you can associate them with a job queue\\. You can associate up to three compute environments with a job queue\\. All of the compute environments must be either EC2 \\(`EC2` or `SPOT`\\) or Fargate \\(`FARGATE` or `FARGATE_SPOT`\\); EC2 and Fargate compute environments can't be mixed\\. \nAll compute environments that are associated with a job queue must share the same architecture\\. AWS Batch doesn't support mixing compute environment architecture types in a single job queue\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-computeenvironmentorder.html) of [ComputeEnvironmentOrder](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-computeenvironmentorder.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputeEnvironmentOrder", + "type": "array" + }, + "JobQueueName": { + "markdownDescription": "The name of the job queue\\. It can be up to 128 letters long\\. It can contain uppercase and lowercase letters, numbers, hyphens \\(\\-\\), and underscores \\(\\_\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "JobQueueName", + "type": "string" + }, + "Priority": { + "markdownDescription": "The priority of the job queue\\. Job queues with a higher priority \\(or a higher integer value for the `priority` parameter\\) are evaluated first when associated with the same compute environment\\. Priority is determined in descending order\\. For example, a job queue with a priority value of `10` is given scheduling preference over a job queue with a priority value of `1`\\. All of the compute environments must be either EC2 \\(`EC2` or `SPOT`\\) or Fargate \\(`FARGATE` or `FARGATE_SPOT`\\); EC2 and Fargate compute environments can't be mixed\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", + "type": "number" + }, + "SchedulingPolicyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the scheduling policy\\. The format is `aws:Partition:batch:Region:Account:scheduling-policy/Name `\\. For example, `aws:aws:batch:us-west-2:123456789012:scheduling-policy/MySchedulingPolicy`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchedulingPolicyArn", + "type": "string" + }, + "State": { + "markdownDescription": "The state of the job queue\\. If the job queue state is `ENABLED`, it is able to accept jobs\\. If the job queue state is `DISABLED`, new jobs can't be added to the queue, but jobs already in the queue can finish\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "The tags that are applied to the job queue\\. For more information, see [Tagging your AWS Batch resources](https://docs.aws.amazon.com/batch/latest/userguide/using-tags.html) in * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the compute environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputeEnvironment", + "type": "string" + }, + "Order": { + "markdownDescription": "The order of the compute environment\\. Compute environments are tried in ascending order\\. For example, if two compute environments are associated with a job queue, the compute environment with a lower `order` integer value is tried for job placement first\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The fair share policy of the scheduling policy\\. \n*Required*: No \n*Type*: [FairsharePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-schedulingpolicy-fairsharepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FairsharePolicy" + }, + "Name": { + "markdownDescription": "The name of the scheduling policy\\. It can be up to 128 letters long\\. It can contain uppercase and lowercase letters, numbers, hyphens \\(\\-\\), and underscores \\(\\_\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "The tags that you apply to the scheduling policy to help you categorize and organize your resources\\. Each tag consists of a key and an optional value\\. For more information, see [Tagging AWS Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in * AWS General Reference*\\. \nThese tags can be updated or removed using the [TagResource](https://docs.aws.amazon.com/batch/latest/APIReference/API_TagResource.html) and [UntagResource](https://docs.aws.amazon.com/batch/latest/APIReference/API_UntagResource.html) API operations\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "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": { + "markdownDescription": "A value used to reserve some of the available maximum vCPU for fair share identifiers that aren't already used\\. \nThe reserved ratio is `(computeReservation/100)^ActiveFairShares ` where ` ActiveFairShares ` is the number of active fair share identifiers\\. \nFor example, a `computeReservation` value of 50 indicates that AWS Batchreserves 50% of the maximum available vCPU if there's only one fair share identifier\\. It reserves 25% if there are two fair share identifiers\\. It reserves 12\\.5% if there are three fair share identifiers\\. A `computeReservation` value of 25 indicates that AWS Batch should reserve 25% of the maximum available vCPU if there's only one fair share identifier, 6\\.25% if there are two fair share identifiers, and 1\\.56% if there are three fair share identifiers\\. \nThe minimum value is 0 and the maximum value is 99\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputeReservation", + "type": "number" + }, + "ShareDecaySeconds": { + "markdownDescription": "The amount of time \\(in seconds\\) to use to calculate a fair share percentage for each fair share identifier in use\\. A value of zero \\(0\\) indicates that only current usage is measured\\. The decay allows for more recently run jobs to have more weight than jobs that ran earlier\\. The maximum supported value is 604800 \\(1 week\\)\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShareDecaySeconds", + "type": "number" + }, + "ShareDistribution": { + "items": { + "$ref": "#/definitions/AWS::Batch::SchedulingPolicy.ShareAttributes" + }, + "markdownDescription": "An array of `SharedIdentifier` objects that contain the weights for the fair share identifiers for the fair share policy\\. Fair share identifiers that aren't included have a default weight of `1.0`\\. \n*Required*: No \n*Type*: List of [ShareAttributes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-schedulingpolicy-shareattributes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShareDistribution", + "type": "array" + } + }, + "type": "object" + }, + "AWS::Batch::SchedulingPolicy.ShareAttributes": { + "additionalProperties": false, + "properties": { + "ShareIdentifier": { + "markdownDescription": "A fair share identifier or fair share identifier prefix\\. If the string ends with an asterisk \\(\\*\\), this entry specifies the weight factor to use for fair share identifiers that start with that prefix\\. The list of fair share identifiers in a fair share policy can't overlap\\. For example, you can't have one that specifies a `shareIdentifier` of `UserA*` and another that specifies a `shareIdentifier` of `UserA-1`\\. \nThere can be no more than 500 fair share identifiers active in a job queue\\. \nThe string is limited to 255 alphanumeric characters, and can be followed by an asterisk \\(\\*\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShareIdentifier", + "type": "string" + }, + "WeightFactor": { + "markdownDescription": "The weight factor for the fair share identifier\\. The default value is 1\\.0\\. A lower value has a higher priority for compute resources\\. For example, jobs that use a share identifier with a weight factor of 0\\.125 \\(1/8\\) get 8 times the compute resources of jobs that use a share identifier with a weight factor of 1\\. \nThe smallest supported value is 0\\.0001, and the largest supported value is 999\\.9999\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The set of accounts that will be under the billing group\\. The set of accounts resemble the linked accounts in a consolidated family\\. \n*Required*: Yes \n*Type*: [AccountGrouping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-billinggroup-accountgrouping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountGrouping" + }, + "ComputationPreference": { + "$ref": "#/definitions/AWS::BillingConductor::BillingGroup.ComputationPreference", + "markdownDescription": "The preferences and settings that will be used to compute the AWS charges for a billing group\\. \n*Required*: Yes \n*Type*: [ComputationPreference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-billinggroup-computationpreference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputationPreference" + }, + "Description": { + "markdownDescription": "The billing group description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The billing group's name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "PrimaryAccountId": { + "markdownDescription": "The account ID that serves as the main account in a billing group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "The account IDs that make up the billing group\\. Account IDs must be a part of the consolidated billing family, and not associated with another billing group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LinkedAccountIds", + "type": "array" + } + }, + "required": [ + "LinkedAccountIds" + ], + "type": "object" + }, + "AWS::BillingConductor::BillingGroup.ComputationPreference": { + "additionalProperties": false, + "properties": { + "PricingPlanArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the pricing plan used to compute the AWS charges for a billing group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) that references the billing group where the custom line item applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BillingGroupArn", + "type": "string" + }, + "BillingPeriodRange": { + "$ref": "#/definitions/AWS::BillingConductor::CustomLineItem.BillingPeriodRange", + "markdownDescription": "A time range for which the custom line item is effective\\. \n*Required*: No \n*Type*: [BillingPeriodRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-billingperiodrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BillingPeriodRange" + }, + "CustomLineItemChargeDetails": { + "$ref": "#/definitions/AWS::BillingConductor::CustomLineItem.CustomLineItemChargeDetails", + "markdownDescription": "The charge details of a custom line item\\. It should contain only one of `Flat` or `Percentage`\\. \n*Required*: No \n*Type*: [CustomLineItemChargeDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitemchargedetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomLineItemChargeDetails" + }, + "Description": { + "markdownDescription": "The custom line item's description\\. This is shown on the Bills page in association with the charge value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The custom line item's name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A map that contains tag keys and tag values that are attached to a custom line item\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The inclusive end billing period that defines a billing period range where a custom line is applied\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExclusiveEndBillingPeriod", + "type": "string" + }, + "InclusiveStartBillingPeriod": { + "markdownDescription": "The inclusive start billing period that defines a billing period range where a custom line is applied\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InclusiveStartBillingPeriod", + "type": "string" + } + }, + "type": "object" + }, + "AWS::BillingConductor::CustomLineItem.CustomLineItemChargeDetails": { + "additionalProperties": false, + "properties": { + "Flat": { + "$ref": "#/definitions/AWS::BillingConductor::CustomLineItem.CustomLineItemFlatChargeDetails", + "markdownDescription": "A `CustomLineItemFlatChargeDetails` that describes the charge details of a flat custom line item\\. \n*Required*: No \n*Type*: [CustomLineItemFlatChargeDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitemflatchargedetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Flat" + }, + "Percentage": { + "$ref": "#/definitions/AWS::BillingConductor::CustomLineItem.CustomLineItemPercentageChargeDetails", + "markdownDescription": "A `CustomLineItemPercentageChargeDetails` that describes the charge details of a percentage custom line item\\. \n*Required*: No \n*Type*: [CustomLineItemPercentageChargeDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-customlineitempercentagechargedetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Percentage" + }, + "Type": { + "markdownDescription": "The type of the custom line item that indicates whether the charge is a fee or credit\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::BillingConductor::CustomLineItem.CustomLineItemFlatChargeDetails": { + "additionalProperties": false, + "properties": { + "ChargeValue": { + "markdownDescription": "The custom line item's fixed charge value in USD\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChargeValue", + "type": "number" + } + }, + "required": [ + "ChargeValue" + ], + "type": "object" + }, + "AWS::BillingConductor::CustomLineItem.CustomLineItemPercentageChargeDetails": { + "additionalProperties": false, + "properties": { + "ChildAssociatedResources": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of resource ARNs to associate to the percentage custom line item\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChildAssociatedResources", + "type": "array" + }, + "PercentageValue": { + "markdownDescription": "The custom line item's percentage value\\. This will be multiplied against the combined value of its associated resources to determine its charge value\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The pricing plan description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of a pricing plan\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "PricingRuleArns": { + "items": { + "type": "string" + }, + "markdownDescription": "The `PricingRuleArns` that are associated with the Pricing Plan\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PricingRuleArns", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A map that contains tag keys and tag values that are attached to a pricing plan\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The pricing rule description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "ModifierPercentage": { + "markdownDescription": "A percentage modifier applied on the public pricing rates\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ModifierPercentage", + "type": "number" + }, + "Name": { + "markdownDescription": "The name of a pricing rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Operation": { + "type": "string" + }, + "Scope": { + "markdownDescription": "The scope of pricing rule that indicates if it is globally applicable, or if it is service\\-specific\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Scope", + "type": "string" + }, + "Service": { + "markdownDescription": "If the `Scope` attribute is `SERVICE`, this attribute indicates which service the `PricingRule` is applicable for\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Service", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A map that contains tag keys and tag values that are attached to a pricing rule\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Tiering": { + "$ref": "#/definitions/AWS::BillingConductor::PricingRule.Tiering" + }, + "Type": { + "markdownDescription": "The type of pricing rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "UsageType": { + "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", + "markdownDescription": "The budget object that you want to create\\. \n*Required*: Yes \n*Type*: [BudgetData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Budget" + }, + "NotificationsWithSubscribers": { + "items": { + "$ref": "#/definitions/AWS::Budgets::Budget.NotificationWithSubscribers" + }, + "markdownDescription": "A notification that you want to associate with a budget\\. A budget can have up to five notifications, and each notification can have one SNS subscriber and up to 10 email subscribers\\. If you include notifications and subscribers in your `CreateBudget` call, AWS creates the notifications and subscribers for you\\. \n*Required*: No \n*Type*: List of [NotificationWithSubscribers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notificationwithsubscribers.html) \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NotificationsWithSubscribers", + "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", + "markdownDescription": "The total amount of cost, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage that you want to track with your budget\\. \n `BudgetLimit` is required for cost or usage budgets, but optional for RI or Savings Plans utilization or coverage budgets\\. RI and Savings Plans utilization or coverage budgets default to `100`\\. This is the only valid value for RI or Savings Plans utilization or coverage budgets\\. You can't use `BudgetLimit` with `PlannedBudgetLimits` for `CreateBudget` and `UpdateBudget` actions\\. \n*Required*: No \n*Type*: [Spend](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-spend.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BudgetLimit" + }, + "BudgetName": { + "markdownDescription": "The name of a budget\\. The value must be unique within an account\\. `BudgetName` can't include `:` and `\\` characters\\. If you don't include value for `BudgetName` in the template, Billing and Cost Management assigns your budget a randomly generated name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BudgetName", + "type": "string" + }, + "BudgetType": { + "markdownDescription": "Specifies whether this budget tracks costs, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `COST | RI_COVERAGE | RI_UTILIZATION | SAVINGS_PLANS_COVERAGE | SAVINGS_PLANS_UTILIZATION | USAGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BudgetType", + "type": "string" + }, + "CostFilters": { + "markdownDescription": "The cost filters, such as `Region`, `Service`, `member account`, `Tag`, or `Cost Category`, that are applied to a budget\\. \n AWS Budgets supports the following services as a `Service` filter for RI budgets: \n+ Amazon EC2\n+ Amazon Redshift\n+ Amazon Relational Database Service\n+ Amazon ElastiCache\n+ Amazon OpenSearch Service \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CostFilters", + "type": "object" + }, + "CostTypes": { + "$ref": "#/definitions/AWS::Budgets::Budget.CostTypes", + "markdownDescription": "The types of costs that are included in this `COST` budget\\. \n `USAGE`, `RI_UTILIZATION`, `RI_COVERAGE`, `SAVINGS_PLANS_UTILIZATION`, and `SAVINGS_PLANS_COVERAGE` budgets do not have `CostTypes`\\. \n*Required*: No \n*Type*: [CostTypes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CostTypes" + }, + "PlannedBudgetLimits": { + "markdownDescription": "A map containing multiple `BudgetLimit`, including current or future limits\\. \n `PlannedBudgetLimits` is available for cost or usage budget and supports both monthly and quarterly `TimeUnit`\\. \nFor monthly budgets, provide 12 months of `PlannedBudgetLimits` values\\. This must start from the current month and include the next 11 months\\. The `key` is the start of the month, `UTC` in epoch seconds\\. \nFor quarterly budgets, provide four quarters of `PlannedBudgetLimits` value entries in standard calendar quarter increments\\. This must start from the current quarter and include the next three quarters\\. The `key` is the start of the quarter, `UTC` in epoch seconds\\. \nIf the planned budget expires before 12 months for monthly or four quarters for quarterly, provide the `PlannedBudgetLimits` values only for the remaining periods\\. \nIf the budget begins at a date in the future, provide `PlannedBudgetLimits` values from the start date of the budget\\. \nAfter all of the `BudgetLimit` values in `PlannedBudgetLimits` are used, the budget continues to use the last limit as the `BudgetLimit`\\. At that point, the planned budget provides the same experience as a fixed budget\\. \n `DescribeBudget` and `DescribeBudgets` response along with `PlannedBudgetLimits` also contain `BudgetLimit` representing the current month or quarter limit present in `PlannedBudgetLimits`\\. This only applies to budgets that are created with `PlannedBudgetLimits`\\. Budgets that are created without `PlannedBudgetLimits` only contain `BudgetLimit`\\. They don't contain `PlannedBudgetLimits`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlannedBudgetLimits", + "type": "object" + }, + "TimePeriod": { + "$ref": "#/definitions/AWS::Budgets::Budget.TimePeriod", + "markdownDescription": "The period of time that is covered by a budget\\. The period has a start date and an end date\\. The start date must come before the end date\\. There are no restrictions on the end date\\. \nThe start date for a budget\\. If you created your budget and didn't specify a start date, the start date defaults to the start of the chosen time period \\(MONTHLY, QUARTERLY, or ANNUALLY\\)\\. For example, if you create your budget on January 24, 2019, choose `MONTHLY`, and don't set a start date, the start date defaults to `01/01/19 00:00 UTC`\\. The defaults are the same for the AWS Billing and Cost Management console and the API\\. \nYou can change your start date with the `UpdateBudget` operation\\. \nAfter the end date, AWS deletes the budget and all associated notifications and subscribers\\. \n*Required*: No \n*Type*: [TimePeriod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-timeperiod.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimePeriod" + }, + "TimeUnit": { + "markdownDescription": "The length of time until a budget resets the actual and forecasted spend\\. `DAILY` is available only for `RI_UTILIZATION` and `RI_COVERAGE` budgets\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ANNUALLY | DAILY | MONTHLY | QUARTERLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeUnit", + "type": "string" + } + }, + "required": [ + "BudgetType", + "TimeUnit" + ], + "type": "object" + }, + "AWS::Budgets::Budget.CostTypes": { + "additionalProperties": false, + "properties": { + "IncludeCredit": { + "markdownDescription": "Specifies whether a budget includes credits\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeCredit", + "type": "boolean" + }, + "IncludeDiscount": { + "markdownDescription": "Specifies whether a budget includes discounts\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeDiscount", + "type": "boolean" + }, + "IncludeOtherSubscription": { + "markdownDescription": "Specifies whether a budget includes non\\-RI subscription costs\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeOtherSubscription", + "type": "boolean" + }, + "IncludeRecurring": { + "markdownDescription": "Specifies whether a budget includes recurring fees such as monthly RI fees\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeRecurring", + "type": "boolean" + }, + "IncludeRefund": { + "markdownDescription": "Specifies whether a budget includes refunds\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeRefund", + "type": "boolean" + }, + "IncludeSubscription": { + "markdownDescription": "Specifies whether a budget includes subscriptions\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeSubscription", + "type": "boolean" + }, + "IncludeSupport": { + "markdownDescription": "Specifies whether a budget includes support subscription fees\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeSupport", + "type": "boolean" + }, + "IncludeTax": { + "markdownDescription": "Specifies whether a budget includes taxes\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeTax", + "type": "boolean" + }, + "IncludeUpfront": { + "markdownDescription": "Specifies whether a budget includes upfront RI costs\\. \nThe default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeUpfront", + "type": "boolean" + }, + "UseAmortized": { + "markdownDescription": "Specifies whether a budget uses the amortized rate\\. \nThe default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseAmortized", + "type": "boolean" + }, + "UseBlended": { + "markdownDescription": "Specifies whether a budget uses a blended rate\\. \nThe default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The comparison that's used for this notification\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EQUAL_TO | GREATER_THAN | LESS_THAN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComparisonOperator", + "type": "string" + }, + "NotificationType": { + "markdownDescription": "Specifies whether the notification is for how much you have spent \\(`ACTUAL`\\) or for how much that you're forecasted to spend \\(`FORECASTED`\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ACTUAL | FORECASTED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationType", + "type": "string" + }, + "Threshold": { + "markdownDescription": "The threshold that's associated with a notification\\. Thresholds are always a percentage, and many customers find value being alerted between 50% \\- 200% of the budgeted amount\\. The maximum limit for your threshold is 1,000,000% above the budgeted amount\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Threshold", + "type": "number" + }, + "ThresholdType": { + "markdownDescription": "The type of threshold for a notification\\. For `ABSOLUTE_VALUE` thresholds, AWS notifies you when you go over or are forecasted to go over your total cost threshold\\. For `PERCENTAGE` thresholds, AWS notifies you when you go over or are forecasted to go over a certain percentage of your forecasted spend\\. For example, if you have a budget for 200 dollars and you have a `PERCENTAGE` threshold of 80%, AWS notifies you when you go over 160 dollars\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ABSOLUTE_VALUE | PERCENTAGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThresholdType", + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "NotificationType", + "Threshold" + ], + "type": "object" + }, + "AWS::Budgets::Budget.NotificationWithSubscribers": { + "additionalProperties": false, + "properties": { + "Notification": { + "$ref": "#/definitions/AWS::Budgets::Budget.Notification", + "markdownDescription": "The notification that's associated with a budget\\. \n*Required*: Yes \n*Type*: [Notification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Notification" + }, + "Subscribers": { + "items": { + "$ref": "#/definitions/AWS::Budgets::Budget.Subscriber" + }, + "markdownDescription": "A list of subscribers who are subscribed to this notification\\. \n*Required*: Yes \n*Type*: List of [Subscriber](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-subscriber.html) \n*Maximum*: `11` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subscribers", + "type": "array" + } + }, + "required": [ + "Notification", + "Subscribers" + ], + "type": "object" + }, + "AWS::Budgets::Budget.Spend": { + "additionalProperties": false, + "properties": { + "Amount": { + "markdownDescription": "The cost or usage amount that's associated with a budget forecast, actual spend, or budget threshold\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Amount", + "type": "number" + }, + "Unit": { + "markdownDescription": "The unit of measurement that's used for the budget forecast, actual spend, or budget threshold, such as USD or GBP\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", + "type": "string" + } + }, + "required": [ + "Amount", + "Unit" + ], + "type": "object" + }, + "AWS::Budgets::Budget.Subscriber": { + "additionalProperties": false, + "properties": { + "Address": { + "markdownDescription": "The address that AWS sends budget notifications to, either an SNS topic or an email\\. \nWhen you create a subscriber, the value of `Address` can't contain line breaks\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Address", + "type": "string" + }, + "SubscriptionType": { + "markdownDescription": "The type of notification that AWS sends to a subscriber\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EMAIL | SNS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubscriptionType", + "type": "string" + } + }, + "required": [ + "Address", + "SubscriptionType" + ], + "type": "object" + }, + "AWS::Budgets::Budget.TimePeriod": { + "additionalProperties": false, + "properties": { + "End": { + "markdownDescription": "The end date for a budget\\. If you didn't specify an end date, AWS set your end date to `06/15/87 00:00 UTC`\\. The defaults are the same for the AWS Billing and Cost Management console and the API\\. \nAfter the end date, AWS deletes the budget and all the associated notifications and subscribers\\. You can change your end date with the `UpdateBudget` operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "End", + "type": "string" + }, + "Start": { + "markdownDescription": "The start date for a budget\\. If you created your budget and didn't specify a start date, the start date defaults to the start of the chosen time period \\(MONTHLY, QUARTERLY, or ANNUALLY\\)\\. For example, if you create your budget on January 24, 2019, choose `MONTHLY`, and don't set a start date, the start date defaults to `01/01/19 00:00 UTC`\\. The defaults are the same for the AWS Billing and Cost Management console and the API\\. \nYou can change your start date with the `UpdateBudget` operation\\. \nValid values depend on the value of `BudgetType`: \n+ If `BudgetType` is `COST` or `USAGE`: Valid values are `MONTHLY`, `QUARTERLY`, and `ANNUALLY`\\.\n+ If `BudgetType` is `RI_UTILIZATION` or `RI_COVERAGE`: Valid values are `DAILY`, `MONTHLY`, `QUARTERLY`, and `ANNUALLY`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The trigger threshold of the action\\. \n*Required*: Yes \n*Type*: [ActionThreshold](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-actionthreshold.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionThreshold" + }, + "ActionType": { + "markdownDescription": "The type of action\\. This defines the type of tasks that can be carried out by this action\\. This field also determines the format for definition\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `APPLY_IAM_POLICY | APPLY_SCP_POLICY | RUN_SSM_DOCUMENTS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ActionType", + "type": "string" + }, + "ApprovalModel": { + "markdownDescription": "This specifies if the action needs manual or automatic approval\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUTOMATIC | MANUAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApprovalModel", + "type": "string" + }, + "BudgetName": { + "markdownDescription": "A string that represents the budget name\\. \":\" and \"\\\\\" characters aren't allowed\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BudgetName", + "type": "string" + }, + "Definition": { + "$ref": "#/definitions/AWS::Budgets::BudgetsAction.Definition", + "markdownDescription": "Specifies all of the type\\-specific parameters\\. \n*Required*: Yes \n*Type*: [Definition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-definition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Definition" + }, + "ExecutionRoleArn": { + "markdownDescription": "The role passed for action execution and reversion\\. Roles and actions must be in the same account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `32` \n*Maximum*: `618` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|us-iso-east-1|us-isob-east-1):iam::\\d{12}:role(\\u002F[\\u0021-\\u007F]+\\u002F|\\u002F)[\\w+=,.@-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionRoleArn", + "type": "string" + }, + "NotificationType": { + "markdownDescription": "The type of a notification\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ACTUAL | FORECASTED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationType", + "type": "string" + }, + "Subscribers": { + "items": { + "$ref": "#/definitions/AWS::Budgets::BudgetsAction.Subscriber" + }, + "markdownDescription": "A list of subscribers\\. \n*Required*: Yes \n*Type*: List of [Subscriber](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-subscriber.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subscribers", + "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": { + "markdownDescription": "The type of threshold for a notification\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ABSOLUTE_VALUE | PERCENTAGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "Value": { + "markdownDescription": "The threshold of a notification\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "number" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::Budgets::BudgetsAction.Definition": { + "additionalProperties": false, + "properties": { + "IamActionDefinition": { + "$ref": "#/definitions/AWS::Budgets::BudgetsAction.IamActionDefinition", + "markdownDescription": "The AWS Identity and Access Management \\(IAM\\) action definition details\\. \n*Required*: No \n*Type*: [IamActionDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-iamactiondefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamActionDefinition" + }, + "ScpActionDefinition": { + "$ref": "#/definitions/AWS::Budgets::BudgetsAction.ScpActionDefinition", + "markdownDescription": "The service control policies \\(SCP\\) action definition details\\. \n*Required*: No \n*Type*: [ScpActionDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-scpactiondefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScpActionDefinition" + }, + "SsmActionDefinition": { + "$ref": "#/definitions/AWS::Budgets::BudgetsAction.SsmActionDefinition", + "markdownDescription": "The Amazon EC2 Systems Manager \\(SSM\\) action definition details\\. \n*Required*: No \n*Type*: [SsmActionDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-ssmactiondefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SsmActionDefinition" + } + }, + "type": "object" + }, + "AWS::Budgets::BudgetsAction.IamActionDefinition": { + "additionalProperties": false, + "properties": { + "Groups": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of groups to be attached\\. There must be at least one group\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Groups", + "type": "array" + }, + "PolicyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the policy to be attached\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `25` \n*Maximum*: `684` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|us-iso-east-1|us-isob-east-1):iam::(\\d{12}|aws):policy(\\u002F[\\u0021-\\u007F]+\\u002F|\\u002F)[\\w+=,.@-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyArn", + "type": "string" + }, + "Roles": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of roles to be attached\\. There must be at least one role\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Roles", + "type": "array" + }, + "Users": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of users to be attached\\. There must be at least one user\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Users", + "type": "array" + } + }, + "required": [ + "PolicyArn" + ], + "type": "object" + }, + "AWS::Budgets::BudgetsAction.ScpActionDefinition": { + "additionalProperties": false, + "properties": { + "PolicyId": { + "markdownDescription": "The policy ID attached\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `130` \n*Pattern*: `^p-[0-9a-zA-Z_]{8,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyId", + "type": "string" + }, + "TargetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of target IDs\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetIds", + "type": "array" + } + }, + "required": [ + "PolicyId", + "TargetIds" + ], + "type": "object" + }, + "AWS::Budgets::BudgetsAction.SsmActionDefinition": { + "additionalProperties": false, + "properties": { + "InstanceIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The EC2 and RDS instance IDs\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceIds", + "type": "array" + }, + "Region": { + "markdownDescription": "The Region to run the \\(SSM\\) document\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `9` \n*Maximum*: `20` \n*Pattern*: `^\\w{2}-\\w+(-\\w+)?-\\d$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", + "type": "string" + }, + "Subtype": { + "markdownDescription": "The action subType\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `STOP_EC2_INSTANCES | STOP_RDS_INSTANCES` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subtype", + "type": "string" + } + }, + "required": [ + "InstanceIds", + "Region", + "Subtype" + ], + "type": "object" + }, + "AWS::Budgets::BudgetsAction.Subscriber": { + "additionalProperties": false, + "properties": { + "Address": { + "markdownDescription": "The address that AWS sends budget notifications to, either an SNS topic or an email\\. \nWhen you create a subscriber, the value of `Address` can't contain line breaks\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Address", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of notification that AWS sends to a subscriber\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "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": { + "markdownDescription": "The dimensions to evaluate\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `SERVICE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MonitorDimension", + "type": "string" + }, + "MonitorName": { + "markdownDescription": "The name of the monitor\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `[\\S\\s]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MonitorName", + "type": "string" + }, + "MonitorSpecification": { + "markdownDescription": "The array of `MonitorSpecification` in JSON array format\\. For instance, you can use `MonitorSpecification` to specify a tag, Cost Category, or linked account for your custom anomaly monitor\\. For further information, see the [Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalymonitor.html#aws-resource-ce-anomalymonitor--examples) section of this page\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MonitorSpecification", + "type": "string" + }, + "MonitorType": { + "markdownDescription": "The possible type values\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CUSTOM | DIMENSIONAL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The frequency that anomaly reports are sent over email\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DAILY | IMMEDIATE | WEEKLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Frequency", + "type": "string" + }, + "MonitorArnList": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of cost anomaly monitors\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MonitorArnList", + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/AWS::CE::AnomalySubscription.ResourceTag" + }, + "type": "array" + }, + "Subscribers": { + "items": { + "$ref": "#/definitions/AWS::CE::AnomalySubscription.Subscriber" + }, + "markdownDescription": "A list of subscribers to notify\\. \n*Required*: Yes \n*Type*: List of [Subscriber](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ce-anomalysubscription-subscriber.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subscribers", + "type": "array" + }, + "SubscriptionName": { + "markdownDescription": "The name for the subscription\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `[\\S\\s]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubscriptionName", + "type": "string" + }, + "Threshold": { + "markdownDescription": "The dollar value that triggers a notification if the threshold is exceeded\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Threshold", + "type": "number" + }, + "ThresholdExpression": { + "type": "string" + } + }, + "required": [ + "Frequency", + "MonitorArnList", + "Subscribers", + "SubscriptionName" + ], + "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": { + "markdownDescription": "The email address or SNS Topic Amazon Resource Name \\(ARN\\), depending on the `Type`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `302` \n*Pattern*: `(^[a-zA-Z0-9.!#$%&'*+=?^_\u2018{|}~-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$)|(^arn:(aws[a-zA-Z-]*):sns:[a-zA-Z0-9-]+:[0-9]{12}:[a-zA-Z0-9_-]+(\\.fifo)?$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Address", + "type": "string" + }, + "Status": { + "markdownDescription": "Indicates if the subscriber accepts the notifications\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CONFIRMED | DECLINED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + }, + "Type": { + "markdownDescription": "The notification delivery channel\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EMAIL | SNS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "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": { + "markdownDescription": "The default value for the cost category\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultValue", + "type": "string" + }, + "Name": { + "markdownDescription": "The unique name of the Cost Category\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RuleVersion": { + "markdownDescription": "The rule schema version in this particular Cost Category\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleVersion", + "type": "string" + }, + "Rules": { + "markdownDescription": "The array of CostCategoryRule in JSON array format\\. \nRules are processed in order\\. If there are multiple rules that match the line item, then the first rule to match is used to determine that Cost Category value\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", + "type": "string" + }, + "SplitChargeRules": { + "markdownDescription": "The split charge rules that are used to allocate your charges between your Cost Category values\\. \n*Required*: No \n*Type*: String \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "A list of manifests that you want Amazon Web Services to create for this report\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdditionalArtifacts", + "type": "array" + }, + "AdditionalSchemaElements": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of strings that indicate additional content that Amazon Web Services includes in the report, such as individual resource IDs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AdditionalSchemaElements", + "type": "array" + }, + "BillingViewArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the billing view\\. You can get this value by using the billing view service public APIs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BillingViewArn", + "type": "string" + }, + "Compression": { + "markdownDescription": "The compression format that Amazon Web Services uses for the report\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Compression", + "type": "string" + }, + "Format": { + "markdownDescription": "The format that Amazon Web Services saves the report in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", + "type": "string" + }, + "RefreshClosedReports": { + "markdownDescription": "Whether you want Amazon Web Services to update your reports after they have been finalized if Amazon Web Services detects charges related to previous months\\. These charges can include refunds, credits, or support fees\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RefreshClosedReports", + "type": "boolean" + }, + "ReportName": { + "markdownDescription": "The name of the report that you want to create\\. The name must be unique, is case sensitive, and can't include spaces\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReportName", + "type": "string" + }, + "ReportVersioning": { + "markdownDescription": "Whether you want Amazon Web Services to overwrite the previous version of each report or to deliver the report in addition to the previous versions\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CREATE_NEW_REPORT | OVERWRITE_REPORT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReportVersioning", + "type": "string" + }, + "S3Bucket": { + "markdownDescription": "The S3 bucket where Amazon Web Services delivers the report\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Bucket", + "type": "string" + }, + "S3Prefix": { + "markdownDescription": "The prefix that Amazon Web Services adds to the report name when Amazon Web Services delivers the report\\. Your prefix can't include spaces\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Prefix", + "type": "string" + }, + "S3Region": { + "markdownDescription": "The Region of the S3 bucket that Amazon Web Services delivers the report into\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Region", + "type": "string" + }, + "TimeUnit": { + "markdownDescription": "The granularity of the line items in the report\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the keyspace to be created\\. The keyspace name is case sensitive\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the keyspace name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \n*Length constraints:* Minimum length of 3\\. Maximum length of 255\\. \n*Pattern:* `^[a-zA-Z0-9][a-zA-Z0-9_]{1,47}$` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyspaceName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of key\\-value pair tags to be attached to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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", + "markdownDescription": "The billing mode for the table, which determines how you'll be charged for reads and writes: \n+ **On\\-demand mode** \\(default\\) \\- You pay based on the actual reads and writes your application performs\\.\n+ **Provisioned mode** \\- Lets you specify the number of reads and writes per second that you need for your application\\.\nIf you don't specify a value for this property, then the table will use on\\-demand mode\\. \n*Required*: No \n*Type*: [BillingMode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-billingmode.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BillingMode" + }, + "ClusteringKeyColumns": { + "items": { + "$ref": "#/definitions/AWS::Cassandra::Table.ClusteringKeyColumn" + }, + "markdownDescription": "One or more columns that determine how the table data is sorted\\. \n*Required*: No \n*Type*: List of [ClusteringKeyColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-clusteringkeycolumn.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusteringKeyColumns", + "type": "array" + }, + "DefaultTimeToLive": { + "markdownDescription": "The default Time To Live \\(TTL\\) value for all rows in a table in seconds\\. The maximum configurable value is 630,720,000 seconds, which is the equivalent of 20 years\\. By default, the TTL value for a table is 0, which means data does not expire\\. \nFor more information, see [Setting the default TTL value for a table](https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL-how-it-works.html#ttl-howitworks_default_ttl) in the *Amazon Keyspaces Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultTimeToLive", + "type": "number" + }, + "EncryptionSpecification": { + "$ref": "#/definitions/AWS::Cassandra::Table.EncryptionSpecification", + "markdownDescription": "The encryption at rest options for the table\\. \n+ **AWS owned key** \\(default\\) \\- The key is owned by Amazon Keyspaces\\.\n+ **Customer managed key** \\- The key is stored in your account and is created, owned, and managed by you\\.\n**Note** \nIf you choose encryption with a customer managed key, you must specify a valid customer managed KMS key with permissions granted to Amazon Keyspaces\\.\nFor more information, see [Encryption at rest in Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/latest/devguide/EncryptionAtRest.html) in the *Amazon Keyspaces Developer Guide*\\. \n*Required*: No \n*Type*: [EncryptionSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-encryptionspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionSpecification" + }, + "KeyspaceName": { + "markdownDescription": "The name of the keyspace in which to create the table\\. The keyspace must already exist\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyspaceName", + "type": "string" + }, + "PartitionKeyColumns": { + "items": { + "$ref": "#/definitions/AWS::Cassandra::Table.Column" + }, + "markdownDescription": "One or more columns that uniquely identify every row in the table\\. Every table must have a partition key\\. \n*Required*: Yes \n*Type*: List of [Column](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-column.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PartitionKeyColumns", + "type": "array" + }, + "PointInTimeRecoveryEnabled": { + "markdownDescription": "Specifies if point\\-in\\-time recovery is enabled or disabled for the table\\. The options are `PointInTimeRecoveryEnabled=true` and `PointInTimeRecoveryEnabled=false`\\. If not specified, the default is `PointInTimeRecoveryEnabled=false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PointInTimeRecoveryEnabled", + "type": "boolean" + }, + "RegularColumns": { + "items": { + "$ref": "#/definitions/AWS::Cassandra::Table.Column" + }, + "markdownDescription": "One or more columns that are not part of the primary key \\- that is, columns that are *not* defined as partition key columns or clustering key columns\\. \nYou can add regular columns to existing tables by adding them to the template\\. \n*Required*: No \n*Type*: List of [Column](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-column.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegularColumns", + "type": "array" + }, + "TableName": { + "markdownDescription": "The name of the table to be created\\. The table name is case sensitive\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the table name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Length constraints:* Minimum length of 3\\. Maximum length of 255\\. \n*Pattern:* `^[a-zA-Z0-9][a-zA-Z0-9_]{1,47}$` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TableName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of key\\-value pair tags to be attached to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The billing mode for the table: \n+ On\\-demand mode \\- `ON_DEMAND`\n+ Provisioned mode \\- `PROVISIONED`\n**Note** \nIf you choose `PROVISIONED` mode, then you also need to specify provisioned throughput \\(read and write capacity\\) for the table\\.\nValid values: `ON_DEMAND` \\| `PROVISIONED` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", + "type": "string" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/AWS::Cassandra::Table.ProvisionedThroughput", + "markdownDescription": "The provisioned read capacity and write capacity for the table\\. For more information, see [Provisioned throughput capacity mode](https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html#ReadWriteCapacityMode.Provisioned) in the *Amazon Keyspaces Developer Guide*\\. \n*Required*: No \n*Type*: [ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-provisionedthroughput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisionedThroughput" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "AWS::Cassandra::Table.ClusteringKeyColumn": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/AWS::Cassandra::Table.Column", + "markdownDescription": "The name and data type of this clustering key column\\. \n*Required*: Yes \n*Type*: [Column](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-column.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Column" + }, + "OrderBy": { + "markdownDescription": "The order in which this column's data is stored: \n+ `ASC` \\(default\\) \\- The column's data is stored in ascending order\\.\n+ `DESC` \\- The column's data is stored in descending order\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OrderBy", + "type": "string" + } + }, + "required": [ + "Column" + ], + "type": "object" + }, + "AWS::Cassandra::Table.Column": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "markdownDescription": "The name of the column\\. For more information, see [Identifiers](https://docs.aws.amazon.com/keyspaces/latest/devguide/cql.elements.html#cql.elements.identifier) in the *Amazon Keyspaces Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnName", + "type": "string" + }, + "ColumnType": { + "markdownDescription": "The data type of the column\\. For more information, see [Data types](https://docs.aws.amazon.com/keyspaces/latest/devguide/cql.elements.html#cql.data-types) in the *Amazon Keyspaces Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnType", + "type": "string" + } + }, + "required": [ + "ColumnName", + "ColumnType" + ], + "type": "object" + }, + "AWS::Cassandra::Table.EncryptionSpecification": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "markdownDescription": "The encryption at rest options for the table\\. \n+ **AWS owned key** \\(default\\) \\- `AWS_OWNED_KMS_KEY`\n+ **Customer managed key** \\- `CUSTOMER_MANAGED_KMS_KEY`\n**Important** \nIf you choose `CUSTOMER_MANAGED_KMS_KEY`, a `kms_key_identifier` in the format of a key ARN is required\\. \nValid values: `CUSTOMER_MANAGED_KMS_KEY` \\| `AWS_OWNED_KMS_KEY`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionType", + "type": "string" + }, + "KmsKeyIdentifier": { + "markdownDescription": "Requires a `kms_key_identifier` in the format of a key ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyIdentifier", + "type": "string" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "AWS::Cassandra::Table.ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "markdownDescription": "The amount of read capacity that's provisioned for the table\\. For more information, see [Read/write capacity mode](https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html) in the *Amazon Keyspaces Developer Guide*\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadCapacityUnits", + "type": "number" + }, + "WriteCapacityUnits": { + "markdownDescription": "The amount of write capacity that's provisioned for the table\\. For more information, see [Read/write capacity mode](https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html) in the *Amazon Keyspaces Developer Guide*\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Object containing expiration events options associated with an AWS account\\. For more information, see [ExpiryEventsConfiguration](https://docs.aws.amazon.com/acm/latest/APIReference/API_ExpiryEventsConfiguration.html) in the API reference\\. \n*Required*: Yes \n*Type*: [ExpiryEventsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-account-expiryeventsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "This option specifies the number of days prior to certificate expiration when ACM starts generating `EventBridge` events\\. ACM sends one event per day per certificate until the certificate expires\\. By default, accounts receive events starting 45 days before certificate expiration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the private certificate authority \\(CA\\) that will be used to issue the certificate\\. If you do not provide an ARN and you are trying to request a private certificate, ACM will attempt to issue a public certificate\\. For more information about private CAs, see the [AWS Certificate Manager Private Certificate Authority \\(PCA\\)](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaWelcome.html) user guide\\. The ARN must have the following form: \n `arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012` \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:[\\w+=/,.@-]*:[0-9]+:[\\w+=,.@-]+(/[\\w+=,.@-]+)*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateAuthorityArn", + "type": "string" + }, + "CertificateTransparencyLoggingPreference": { + "markdownDescription": "You can opt out of certificate transparency logging by specifying the `DISABLED` option\\. Opt in by specifying `ENABLED`\\. \nIf you do not specify a certificate transparency logging preference on a new CloudFormation template, or if you remove the logging preference from an existing template, this is the same as explicitly enabling the preference\\. \nChanging the certificate transparency logging preference will update the existing resource by calling `UpdateCertificateOptions` on the certificate\\. This action will not create a new resource\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateTransparencyLoggingPreference", + "type": "string" + }, + "DomainName": { + "markdownDescription": "The fully qualified domain name \\(FQDN\\), such as www\\.example\\.com, with which you want to secure an ACM certificate\\. Use an asterisk \\(\\*\\) to create a wildcard certificate that protects several sites in the same domain\\. For example, `*.example.com` protects `www.example.com`, `site.example.com`, and `images.example.com.` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `253` \n*Pattern*: `^(\\*\\.)?(((?!-)[A-Za-z0-9-]{0,62}[A-Za-z0-9])\\.)+((?!-)[A-Za-z0-9-]{1,62}[A-Za-z0-9])$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", + "type": "string" + }, + "DomainValidationOptions": { + "items": { + "$ref": "#/definitions/AWS::CertificateManager::Certificate.DomainValidationOption" + }, + "markdownDescription": "Domain information that domain name registrars use to verify your identity\\. \nIn order for a AWS::CertificateManager::Certificate to be provisioned and validated in CloudFormation automatically, the `DomainName` property needs to be identical to one of the `DomainName` property supplied in DomainValidationOptions, if the ValidationMethod is \\*\\*DNS\\*\\*\\. Failing to keep them like\\-for\\-like will result in failure to create the domain validation records in Route53\\.\n*Required*: No \n*Type*: List of [DomainValidationOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-certificate-domainvalidationoption.html) \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainValidationOptions", + "type": "array" + }, + "SubjectAlternativeNames": { + "items": { + "type": "string" + }, + "markdownDescription": "Additional FQDNs to be included in the Subject Alternative Name extension of the ACM certificate\\. For example, you can add www\\.example\\.net to a certificate for which the `DomainName` field is www\\.example\\.com if users can reach your site by using either name\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubjectAlternativeNames", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Key\\-value pairs that can identify the certificate\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "ValidationMethod": { + "markdownDescription": "The method you want to use to validate that you own or control the domain associated with a public certificate\\. You can [validate with DNS](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html) or [validate with email](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html)\\. We recommend that you use DNS validation\\. \nIf not specified, this property defaults to email validation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DNS | EMAIL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A fully qualified domain name \\(FQDN\\) in the certificate request\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `253` \n*Pattern*: `^(\\*\\.)?(((?!-)[A-Za-z0-9-]{0,62}[A-Za-z0-9])\\.)+((?!-)[A-Za-z0-9-]{1,62}[A-Za-z0-9])$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainName", + "type": "string" + }, + "HostedZoneId": { + "markdownDescription": "The `HostedZoneId` option, which is available if you are using Route 53 as your domain registrar, causes ACM to add your CNAME to the domain record\\. Your list of `DomainValidationOptions` must contain one and only one of the domain\\-validation options, and the `HostedZoneId` can be used only when `DNS` is specified as your validation method\\. \nUse the Route 53 `ListHostedZones` API to discover IDs for available hosted zones\\. \nThis option is required for publicly trusted certificates\\. \nThe `ListHostedZones` API returns IDs in the format \"/hostedzone/Z111111QQQQQQQ\", but CloudFormation requires the IDs to be in the format \"Z111111QQQQQQQ\"\\.\nWhen you change your `DomainValidationOptions`, a new resource is created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostedZoneId", + "type": "string" + }, + "ValidationDomain": { + "markdownDescription": "The domain name to which you want ACM to send validation emails\\. This domain name is the suffix of the email addresses that you want ACM to use\\. This must be the same as the `DomainName` value or a superdomain of the `DomainName` value\\. For example, if you request a certificate for `testing.example.com`, you can specify `example.com` as this value\\. In that case, ACM sends domain validation emails to the following five addresses: \n+ admin@example\\.com\n+ administrator@example\\.com\n+ hostmaster@example\\.com\n+ postmaster@example\\.com\n+ webmaster@example\\.com\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `253` \n*Pattern*: `^(\\*\\.)?(((?!-)[A-Za-z0-9-]{0,62}[A-Za-z0-9])\\.)+((?!-)[A-Za-z0-9-]{1,62}[A-Za-z0-9])$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfigurationName", + "type": "string" + }, + "GuardrailPolicies": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of IAM policy ARNs that are applied as channel guardrails\\. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set\\. Currently, only 1 IAM policy is supported\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GuardrailPolicies", + "type": "array" + }, + "IamRoleArn": { + "markdownDescription": "The ARN of the IAM role that defines the permissions for AWS Chatbot\\. \nThis is a user\\-definworked role that AWS Chatbot will assume\\. This is not the service\\-linked role\\. For more information, see [IAM Policies for AWS Chatbot](https://docs.aws.amazon.com/chatbot/latest/adminguide/chatbot-iam-policies.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamRoleArn", + "type": "string" + }, + "LoggingLevel": { + "markdownDescription": "Specifies the logging level for this configuration\\. This property affects the log entries pushed to Amazon CloudWatch Logs\\. \nLogging levels include `ERROR`, `INFO`, or `NONE`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingLevel", + "type": "string" + }, + "SlackChannelId": { + "markdownDescription": "The ID of the Slack channel\\. \nTo get the ID, open Slack, right click on the channel name in the left pane, then choose Copy Link\\. The channel ID is the 9\\-character string at the end of the URL\\. For example, `ABCBBLZZZ`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SlackChannelId", + "type": "string" + }, + "SlackWorkspaceId": { + "markdownDescription": "The ID of the Slack workspace authorized with AWS Chatbot\\. \nTo get the workspace ID, you must perform the initial authorization flow with Slack in the AWS Chatbot console\\. Then you can copy and paste the workspace ID from the console\\. For more details, see steps 1\\-4 in [Setting Up AWS Chatbot with Slack](https://docs.aws.amazon.com/chatbot/latest/adminguide/setting-up.html#Setup_intro) in the *AWS Chatbot User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SlackWorkspaceId", + "type": "string" + }, + "SnsTopicArns": { + "items": { + "type": "string" + }, + "markdownDescription": "The ARNs of the SNS topics that deliver notifications to AWS Chatbot\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsTopicArns", + "type": "array" + }, + "UserRoleRequired": { + "markdownDescription": "Enables use of a user role requirement in your chat configuration\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The number of minutes until the running instance is shut down after the environment was last used\\. \n*Required*: No \n*Type*: Integer \n*Maximum*: `20160` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutomaticStopTimeMinutes", + "type": "number" + }, + "ConnectionType": { + "markdownDescription": "The connection type used for connecting to an Amazon EC2 environment\\. Valid values are `CONNECT_SSH` \\(default\\) and `CONNECT_SSM` \\(connected through AWS Systems Manager\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CONNECT_SSH | CONNECT_SSM` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectionType", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the environment to create\\. \n*Required*: No \n*Type*: String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "ImageId": { + "markdownDescription": "The identifier for the Amazon Machine Image \\(AMI\\) that's used to create the EC2 instance\\. To choose an AMI for the instance, you must specify a valid AMI alias or a valid AWS Systems Manager path\\. \nThe default AMI is used if the parameter isn't explicitly assigned a value in the request\\. \n**AMI aliases ** \n+ **Amazon Linux \\(default\\): `amazonlinux-1-x86_64`** \n+ Amazon Linux 2: `amazonlinux-2-x86_64`\n+ Ubuntu 18\\.04: `ubuntu-18.04-x86_64`\n**SSM paths** \n+ **Amazon Linux \\(default\\): `resolve:ssm:/aws/service/cloud9/amis/amazonlinux-1-x86_64`**\n+ Amazon Linux 2: `resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2-x86_64`\n+ Ubuntu 18\\.04: `resolve:ssm:/aws/service/cloud9/amis/ubuntu-18.04-x86_64`\n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageId", + "type": "string" + }, + "InstanceType": { + "markdownDescription": "The type of instance to connect to the environment \\(for example, `t2.micro`\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `5` \n*Maximum*: `20` \n*Pattern*: `^[a-z][1-9][.][a-z0-9]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the environment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "OwnerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the environment owner\\. This ARN can be the ARN of any AWS Identity and Access Management principal\\. If this value is not specified, the ARN defaults to this environment's creator\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):(iam|sts)::\\d+:(root|(user\\/[\\w+=/:,.@-]{1,64}|federated-user\\/[\\w+=/:,.@-]{2,32}|assumed-role\\/[\\w+=:,.@-]{1,64}\\/[\\w+=,.@-]{1,64}))$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OwnerArn", + "type": "string" + }, + "Repositories": { + "items": { + "$ref": "#/definitions/AWS::Cloud9::EnvironmentEC2.Repository" + }, + "markdownDescription": "Any AWS CodeCommit source code repositories to be cloned into the development environment\\. \n*Required*: No \n*Type*: List of [Repository](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloud9-environmentec2-repository.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Repositories", + "type": "array" + }, + "SubnetId": { + "markdownDescription": "The ID of the subnet in Amazon Virtual Private Cloud \\(Amazon VPC\\) that AWS Cloud9 will use to communicate with the Amazon Elastic Compute Cloud \\(Amazon EC2\\) instance\\. \n*Required*: No \n*Type*: String \n*Minimum*: `15` \n*Maximum*: `24` \n*Pattern*: `^(subnet-[0-9a-f]{8}|subnet-[0-9a-f]{17})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs that will be associated with the new AWS Cloud9 development environment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The path within the development environment's default file system location to clone the AWS CodeCommit repository into\\. For example, `/REPOSITORY_NAME` would clone the repository into the `/home/USER_NAME/environment/REPOSITORY_NAME` directory in the environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PathComponent", + "type": "string" + }, + "RepositoryUrl": { + "markdownDescription": "The clone URL of the AWS CodeCommit repository to be cloned\\. For example, for an AWS CodeCommit repository this might be `https://git-codecommit.us-east-2.amazonaws.com/v1/repos/REPOSITORY_NAME`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Only one property is defined by AWS for a custom resource: `ServiceToken`\\. All other properties are defined by the service provider\\.\nThe service token that was given to the template developer by the service provider to access the service, such as an Amazon SNS topic ARN or Lambda function ARN\\. The service token must be from the same Region in which you are creating the stack\\. \nUpdates aren't supported\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the hook\\. \nYou must specify either `TypeVersionArn`, or `TypeName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TypeName", + "type": "string" + }, + "TypeVersionArn": { + "markdownDescription": "The version ID of the type configuration\\. \nYou must specify either `TypeVersionArn`, or `TypeName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[A-Za-z0-9-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TypeVersionArn", + "type": "string" + }, + "VersionId": { + "markdownDescription": "The version ID of the type specified\\. \nYou must specify either `TypeVersionArn`, or `TypeName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[A-Za-z0-9-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Specifies the activated hook type configuration, in this AWS account and AWS Region\\. \nYou must specify either `TypeName` and `Configuration` or `TypeARN` and `Configuration`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configuration", + "type": "string" + }, + "ConfigurationAlias": { + "markdownDescription": "Specifies the activated hook type configuration, in this AWS account and AWS Region\\. \nDefaults to `default` alias\\. Hook types currently support default configuration alias\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfigurationAlias", + "type": "string" + }, + "TypeArn": { + "markdownDescription": "The Amazon Resource Number \\(ARN\\) for the hook to set `Configuration` for\\. \nYou must specify either `TypeName` and `Configuration` or `TypeARN` and `Configuration`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TypeArn", + "type": "string" + }, + "TypeName": { + "markdownDescription": "The unique name for your hook\\. Specifies a three\\-part namespace for your hook, with a recommended pattern of `Organization::Service::Hook`\\. \nYou must specify either `TypeName` and `Configuration` or `TypeARN` and `Configuration`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `196` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the task execution role that grants the hook permission\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExecutionRoleArn", + "type": "string" + }, + "LoggingConfig": { + "$ref": "#/definitions/AWS::CloudFormation::HookVersion.LoggingConfig", + "markdownDescription": "Contains logging configuration information for an extension\\. \n*Required*: No \n*Type*: [LoggingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-hookversion-loggingconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoggingConfig" + }, + "SchemaHandlerPackage": { + "markdownDescription": "A URL to the Amazon S3 bucket containing the hook project package that contains the necessary files for the hook you want to register\\. \nFor information on generating a schema handler package for the resource you want to register, see [submit](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html) in the *CloudFormation CLI User Guide for Extension Development*\\. \nThe user registering the resource must be able to access the package in the S3 bucket\\. That's, the user must have [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) permissions for the schema handler package\\. For more information, see [Actions, Resources, and Condition Keys for Amazon S3](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html) in the *AWS Identity and Access Management User Guide*\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SchemaHandlerPackage", + "type": "string" + }, + "TypeName": { + "markdownDescription": "The unique name for your hook\\. Specifies a three\\-part namespace for your hook, with a recommended pattern of `Organization::Service::Hook`\\. \nThe following organization namespaces are reserved and can't be used in your hook type names: \n+ `Alexa` \n+ `AMZN` \n+ `Amazon` \n+ `ASK` \n+ `AWS` \n+ `Custom` \n+ `Dev` \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `196` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The Amazon CloudWatch Logs group to which CloudFormation sends error logging information when invoking the extension's handlers\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogGroupName", + "type": "string" + }, + "LogRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that CloudFormation should assume when sending log entries to CloudWatch Logs\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `arn:.+:iam::[0-9]{12}:role/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A description of the macro\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "FunctionName": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the underlying AWS Lambda function that you want AWS CloudFormation to invoke when the macro is run\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FunctionName", + "type": "string" + }, + "LogGroupName": { + "markdownDescription": "The CloudWatch Logs group to which AWS CloudFormation sends error logging information when invoking the macro's underlying AWS Lambda function\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroupName", + "type": "string" + }, + "LogRoleARN": { + "markdownDescription": "The ARN of the role AWS CloudFormation should assume when sending log entries to CloudWatch Logs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogRoleARN", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the macro\\. The name of the macro must be unique across all macros in the account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + } + }, + "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the module version to set as the default version\\. \nConditional: You must specify either `Arn`, or `ModuleName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `arn:aws[A-Za-z0-9-]{0,64}:cloudformation:[A-Za-z0-9-]{1,64}:[0-9]{12}:type/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Arn", + "type": "string" + }, + "ModuleName": { + "markdownDescription": "The name of the module\\. \nConditional: You must specify either `Arn`, or `ModuleName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `204` \n*Pattern*: `[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ModuleName", + "type": "string" + }, + "VersionId": { + "markdownDescription": "The ID for the specific version of the module\\. \nConditional: You must specify either `Arn`, or `ModuleName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[A-Za-z0-9-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the module being registered\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `204` \n*Pattern*: `[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ModuleName", + "type": "string" + }, + "ModulePackage": { + "markdownDescription": "A URL to the S3 bucket containing the package that contains the template fragment and schema files for the module version to register\\. \nThe user registering the module version must be able to access the module package in the S3 bucket\\. That's, the user needs to have [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) permissions for the package\\. For more information, see [Actions, Resources, and Condition Keys for Amazon S3](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html) in the *AWS Identity and Access Management User Guide*\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The Amazon Resource Number \\(ARN\\) of the extension\\. \nConditional: You must specify `Arn`, or `TypeName` and `Type`\\. \n*Required*: Conditional \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `arn:aws[A-Za-z0-9-]{0,64}:cloudformation:[A-Za-z0-9-]{1,64}:([0-9]{12})?:type/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Arn", + "type": "string" + }, + "LogDeliveryBucket": { + "markdownDescription": "The S3 bucket to which CloudFormation delivers the contract test execution logs\\. \nCloudFormation delivers the logs by the time contract testing has completed and the extension has been assigned a test type status of `PASSED` or `FAILED`\\. \nThe user initiating the stack operation must be able to access items in the specified S3 bucket\\. Specifically, the user needs the following permissions: \n+ GetObject\n+ PutObject\nFor more information, see [Actions, Resources, and Condition Keys for Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html) in the *AWS Identity and Access Management User Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `[\\s\\S]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogDeliveryBucket", + "type": "string" + }, + "PublicVersionNumber": { + "markdownDescription": "The version number to assign to this version of the extension\\. \nUse the following format, and adhere to semantic versioning when assigning a version number to your extension: \n `MAJOR.MINOR.PATCH` \nFor more information, see [Semantic Versioning 2\\.0\\.0](https://semver.org/)\\. \nIf you don't specify a version number, CloudFormation increments the version number by one minor version release\\. \nYou cannot specify a version number the first time you publish a type\\. AWS CloudFormation automatically sets the first version number to be `1.0.0`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `5` \n*Pattern*: `^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(.*)$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PublicVersionNumber", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of the extension to test\\. \nConditional: You must specify `Arn`, or `TypeName` and `Type`\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `HOOK | MODULE | RESOURCE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + }, + "TypeName": { + "markdownDescription": "The name of the extension to test\\. \nConditional: You must specify `Arn`, or `TypeName` and `Type`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `204` \n*Pattern*: `[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Whether you accept the [Terms and Conditions](https://cloudformation-registry-documents.s3.amazonaws.com/Terms_and_Conditions_for_AWS_CloudFormation_Registry_Publishers.pdf) for publishing extensions in the CloudFormation registry\\. You must accept the terms and conditions in order to register to publish public extensions to the CloudFormation registry\\. \nThe default is `false`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceptTermsAndConditions", + "type": "boolean" + }, + "ConnectionArn": { + "markdownDescription": "If you are using a Bitbucket or GitHub account for identity verification, the Amazon Resource Name \\(ARN\\) for your connection to that account\\. \nFor more information, see [Registering your account to publish CloudFormation extensions](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs) in the *CloudFormation CLI User Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `arn:aws(-[\\w]+)*:.+:.+:[0-9]{12}:.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the resource\\. \nConditional: You must specify either `TypeVersionArn`, or `TypeName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `204` \n*Pattern*: `[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TypeName", + "type": "string" + }, + "TypeVersionArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the resource version\\. \nConditional: You must specify either `TypeVersionArn`, or `TypeName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `arn:aws[A-Za-z0-9-]{0,64}:cloudformation:[A-Za-z0-9-]{1,64}:[0-9]{12}:type/.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TypeVersionArn", + "type": "string" + }, + "VersionId": { + "markdownDescription": "The ID of a specific version of the resource\\. The version ID is the value at the end of the Amazon Resource Name \\(ARN\\) assigned to the resource version when it's registered\\. \nConditional: You must specify either `TypeVersionArn`, or `TypeName` and `VersionId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[A-Za-z0-9-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role for CloudFormation to assume when invoking the resource\\. If your resource calls AWS APIs in any of its handlers, you must create an *[IAM execution role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* that includes the necessary permissions to call those AWS APIs, and provision that execution role in your account\\. When CloudFormation needs to invoke the resource type handler, CloudFormation assumes this execution role to create a temporary session token, which it then passes to the resource type handler, thereby supplying your resource type with the appropriate credentials\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `arn:.+:iam::[0-9]{12}:role/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExecutionRoleArn", + "type": "string" + }, + "LoggingConfig": { + "$ref": "#/definitions/AWS::CloudFormation::ResourceVersion.LoggingConfig", + "markdownDescription": "Logging configuration information for a resource\\. \n*Required*: No \n*Type*: [LoggingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-resourceversion-loggingconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoggingConfig" + }, + "SchemaHandlerPackage": { + "markdownDescription": "A URL to the S3 bucket containing the resource project package that contains the necessary files for the resource you want to register\\. \nFor information on generating a schema handler package for the resource you want to register, see [submit](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html) in the *CloudFormation CLI User Guide*\\. \nThe user registering the resource must be able to access the package in the S3 bucket\\. That is, the user needs to have [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) permissions for the schema handler package\\. For more information, see [Actions, Resources, and Condition Keys for Amazon S3](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html) in the *AWS Identity and Access Management User Guide*\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SchemaHandlerPackage", + "type": "string" + }, + "TypeName": { + "markdownDescription": "The name of the resource being registered\\. \nWe recommend that resource names adhere to the following pattern: *company\\_or\\_organization*::*service*::*type*\\. \nThe following organization namespaces are reserved and can't be used in your resource names: \n+ `Alexa`\n+ `AMZN`\n+ `Amazon`\n+ `AWS`\n+ `Custom`\n+ `Dev`\n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `204` \n*Pattern*: `[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The Amazon CloudWatch log group to which CloudFormation sends error logging information when invoking the type's handlers\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogGroupName", + "type": "string" + }, + "LogRoleArn": { + "markdownDescription": "The ARN of the role that CloudFormation should assume when sending log entries to CloudWatch logs\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `arn:.+:iam::[0-9]{12}:role/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "The Amazon Simple Notification Service \\(Amazon SNS\\) topic ARNs to publish stack related events\\. You can find your Amazon SNS topic ARNs using the Amazon SNS console or your Command Line Interface \\(CLI\\)\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationARNs", + "type": "array" + }, + "Parameters": { + "additionalProperties": true, + "markdownDescription": "The set value pairs that represent the parameters passed to CloudFormation when this nested stack is created\\. Each parameter has a name corresponding to a parameter defined in the embedded template and a value representing the value that you want to set for the parameter\\. \nIf you use the `Ref` function to pass a parameter value to a nested stack, comma\\-delimited list parameters must be of type `String`\\. In other words, you can't pass values that are of type `CommaDelimitedList` to nested stacks\\.\nConditional\\. Required if the nested stack requires input parameters\\. \nWhether an update causes interruptions depends on the resources that are being updated\\. An update never causes a nested stack to be replaced\\. \n*Required*: Conditional \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Parameters", + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Key\\-value pairs to associate with this stack\\. AWS CloudFormation also propagates these tags to the resources created in the stack\\. A maximum number of 50 tags can be specified\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TemplateURL": { + "markdownDescription": "Location of file containing the template body\\. The URL must point to a template \\(max size: 460,800 bytes\\) that's located in an Amazon S3 bucket\\. For more information, see [Template anatomy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)\\. \nWhether an update causes interruptions depends on the resources that are being updated\\. An update never causes a nested stack to be replaced\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateURL", + "type": "string" + }, + "TimeoutInMinutes": { + "markdownDescription": "The length of time, in minutes, that CloudFormation waits for the nested stack to reach the `CREATE_COMPLETE` state\\. The default is no timeout\\. When 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`, CloudFormation marks the nested stack as failed and rolls back both the nested stack and parent stack\\. \nUpdates aren't supported\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon Resource Number \\(ARN\\) of the IAM role to use to create this stack set\\. Specify an IAM role only if you are using customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account\\. \nUse customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account\\. For more information, see [Prerequisites: Granting Permissions for Stack Set Operations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html) in the *AWS CloudFormation User Guide*\\. \n*Minimum*: `20` \n*Maximum*: `2048` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdministrationRoleARN", + "type": "string" + }, + "AutoDeployment": { + "$ref": "#/definitions/AWS::CloudFormation::StackSet.AutoDeployment", + "markdownDescription": "\\[`Service-managed` permissions\\] Describes whether StackSets automatically deploys to AWS Organizations accounts that are added to a target organization or organizational unit \\(OU\\)\\. \n*Required*: No \n*Type*: [AutoDeployment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-autodeployment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoDeployment" + }, + "CallAs": { + "markdownDescription": "\\[Service\\-managed permissions\\] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account\\. \nBy default, `SELF` is specified\\. Use `SELF` for stack sets with self\\-managed permissions\\. \n+ To create a stack set with service\\-managed permissions while signed in to the management account, specify `SELF`\\.\n+ To create a stack set with service\\-managed permissions while signed in to a delegated administrator account, specify `DELEGATED_ADMIN`\\.", + "title": "CallAs", + "type": "string" + }, + "Capabilities": { + "items": { + "type": "string" + }, + "markdownDescription": "The capabilities that are allowed in the stack set\\. Some stack set templates might include resources that can affect permissions in your AWS account\u2014for example, by creating new AWS Identity and Access Management \\(IAM\\) users\\. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Capabilities", + "type": "array" + }, + "Description": { + "markdownDescription": "A description of the stack set\\. \n*Minimum*: `1` \n*Maximum*: `1024` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "ExecutionRoleName": { + "markdownDescription": "The name of the IAM execution role to use to create the stack set\\. If you don't specify an execution role, AWS CloudFormation uses the `AWSCloudFormationStackSetExecutionRole` role for the stack set operation\\. \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[a-zA-Z_0-9+=,.@-]+` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionRoleName", + "type": "string" + }, + "ManagedExecution": { + "$ref": "#/definitions/AWS::CloudFormation::StackSet.ManagedExecution", + "markdownDescription": "Describes whether StackSets performs non\\-conflicting operations concurrently and queues conflicting operations\\. \nWhen active, StackSets performs non\\-conflicting operations concurrently and queues conflicting operations\\. After conflicting operations finish, StackSets starts queued operations in request order\\. \nIf there are already running or queued operations, StackSets queues all incoming operations even if they are non\\-conflicting\\. \nYou can't modify your stack set's execution configuration while there are running or queued operations for that stack set\\.\nWhen inactive \\(default\\), StackSets performs one operation at a time in request order\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManagedExecution" + }, + "OperationPreferences": { + "$ref": "#/definitions/AWS::CloudFormation::StackSet.OperationPreferences", + "markdownDescription": "The user\\-specified preferences for how AWS CloudFormation performs a stack set operation\\. \n*Required*: No \n*Type*: [OperationPreferences](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-operationpreferences.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OperationPreferences" + }, + "Parameters": { + "items": { + "$ref": "#/definitions/AWS::CloudFormation::StackSet.Parameter" + }, + "markdownDescription": "The input parameters for the stack set template\\. \n*Required*: No \n*Type*: List of [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-parameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "array" + }, + "PermissionModel": { + "markdownDescription": "Describes how the IAM roles required for stack set operations are created\\. \n+ With `SELF_MANAGED` permissions, you must create the administrator and execution roles required to deploy to target accounts\\. For more information, see [Grant Self\\-Managed Stack Set Permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html)\\.\n+ With `SERVICE_MANAGED` permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by AWS Organizations\\. For more information, see [Grant Service\\-Managed Stack Set Permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html)\\.\n*Allowed Values*: `SERVICE_MANAGED` \\| `SELF_MANAGED` \nThe `PermissionModel` property is required\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PermissionModel", + "type": "string" + }, + "StackInstancesGroup": { + "items": { + "$ref": "#/definitions/AWS::CloudFormation::StackSet.StackInstances" + }, + "markdownDescription": "A group of stack instances with parameters in some specific accounts and Regions\\. \n*Required*: No \n*Type*: List of [StackInstances](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-stackinstances.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StackInstancesGroup", + "type": "array" + }, + "StackSetName": { + "markdownDescription": "The name to associate with the stack set\\. The name must be unique in the Region where you create your stack set\\. \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9-]{0,127}$` \nThe `StackSetName` property is required\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StackSetName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The key\\-value pairs to associate with this stack set and the stacks created from it\\. AWS CloudFormation also propagates these tags to supported resources that are created in the stacks\\. A maximum number of 50 tags can be specified\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TemplateBody": { + "markdownDescription": "The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes\\. \nYou must include either `TemplateURL` or `TemplateBody` in a StackSet, but you can't use both\\. Dynamic references in the `TemplateBody` may not work correctly in all cases\\. It's recommended to pass templates containing dynamic references through `TemplateUrl` instead\\. \n*Minimum*: `1` \n*Maximum*: `51200` \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateBody", + "type": "string" + }, + "TemplateURL": { + "markdownDescription": "Location of file containing the template body\\. The URL must point to a template \\(max size: 460,800 bytes\\) that's located in an Amazon S3 bucket\\. \nYou must include either `TemplateURL` or `TemplateBody` in a StackSet, but you can't use both\\. \n*Minimum*: `1` \n*Maximum*: `1024` \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "If set to `true`, StackSets automatically deploys additional stack instances to AWS Organizations accounts that are added to a target organization or organizational unit \\(OU\\) in the specified Regions\\. If an account is removed from a target organization or OU, StackSets deletes stack instances from the account in the specified Regions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "RetainStacksOnAccountRemoval": { + "markdownDescription": "If set to `true`, stack resources are retained when an account is removed from a target organization or OU\\. If set to `false`, stack resources are deleted\\. Specify only if `Enabled` is set to `True`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetainStacksOnAccountRemoval", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::CloudFormation::StackSet.DeploymentTargets": { + "additionalProperties": false, + "properties": { + "AccountFilterType": { + "type": "string" + }, + "Accounts": { + "items": { + "type": "string" + }, + "markdownDescription": "The names of one or more AWS accounts for which you want to deploy stack set updates\\. \n*Pattern*: `^[0-9]{12}$` \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Accounts", + "type": "array" + }, + "OrganizationalUnitIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The organization root ID or organizational unit \\(OU\\) IDs to which StackSets deploys\\. \n*Pattern*: `^(ou-[a-z0-9]{4,32}-[a-z0-9]{8,32}|r-[a-z0-9]{4,32})$` \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrganizationalUnitIds", + "type": "array" + } + }, + "type": "object" + }, + "AWS::CloudFormation::StackSet.ManagedExecution": { + "additionalProperties": false, + "properties": { + "Active": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::CloudFormation::StackSet.OperationPreferences": { + "additionalProperties": false, + "properties": { + "FailureToleranceCount": { + "markdownDescription": "The number of accounts, per Region, for which this operation can fail before AWS CloudFormation stops the operation in that Region\\. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions\\. \nConditional: You must specify either `FailureToleranceCount` or `FailureTolerancePercentage` \\(but not both\\)\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailureToleranceCount", + "type": "number" + }, + "FailureTolerancePercentage": { + "markdownDescription": "The percentage of accounts, per Region, for which this stack operation can fail before AWS CloudFormation stops the operation in that Region\\. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions\\. \nWhen calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds *down* to the next whole number\\. \nConditional: You must specify either `FailureToleranceCount` or `FailureTolerancePercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailureTolerancePercentage", + "type": "number" + }, + "MaxConcurrentCount": { + "markdownDescription": "The maximum number of accounts in which to perform this operation at one time\\. This is dependent on the value of `FailureToleranceCount`\\. `MaxConcurrentCount` is at most one more than the `FailureToleranceCount`\\. \nNote that this setting lets you specify the *maximum* for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nConditional: You must specify either `MaxConcurrentCount` or `MaxConcurrentPercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxConcurrentCount", + "type": "number" + }, + "MaxConcurrentPercentage": { + "markdownDescription": "The maximum percentage of accounts in which to perform this operation at one time\\. \nWhen calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number\\. This is true except in cases where rounding down would result is zero\\. In this case, CloudFormation sets the number as one instead\\. \nNote that this setting lets you specify the *maximum* for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nConditional: You must specify either `MaxConcurrentCount` or `MaxConcurrentPercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxConcurrentPercentage", + "type": "number" + }, + "RegionConcurrencyType": { + "markdownDescription": "The concurrency type of deploying StackSets operations in Regions, could be in parallel or one Region at a time\\. \n*Allowed values*: `SEQUENTIAL` \\| `PARALLEL` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegionConcurrencyType", + "type": "string" + }, + "RegionOrder": { + "items": { + "type": "string" + }, + "markdownDescription": "The order of the Regions where you want to perform the stack operation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegionOrder", + "type": "array" + } + }, + "type": "object" + }, + "AWS::CloudFormation::StackSet.Parameter": { + "additionalProperties": false, + "properties": { + "ParameterKey": { + "markdownDescription": "The key associated with the parameter\\. If you don't specify a key and value for a particular parameter, AWS CloudFormation uses the default value that's specified in your template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterKey", + "type": "string" + }, + "ParameterValue": { + "markdownDescription": "The input value associated with the parameter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterValue", + "type": "string" + } + }, + "required": [ + "ParameterKey", + "ParameterValue" + ], + "type": "object" + }, + "AWS::CloudFormation::StackSet.StackInstances": { + "additionalProperties": false, + "properties": { + "DeploymentTargets": { + "$ref": "#/definitions/AWS::CloudFormation::StackSet.DeploymentTargets", + "markdownDescription": "The AWS `OrganizationalUnitIds` or `Accounts` for which to create stack instances in the specified Regions\\. \n*Required*: Yes \n*Type*: [DeploymentTargets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-deploymenttargets.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentTargets" + }, + "ParameterOverrides": { + "items": { + "$ref": "#/definitions/AWS::CloudFormation::StackSet.Parameter" + }, + "markdownDescription": "A list of stack set parameters whose values you want to override in the selected stack instances\\. \n*Required*: No \n*Type*: List of [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-parameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterOverrides", + "type": "array" + }, + "Regions": { + "items": { + "type": "string" + }, + "markdownDescription": "The names of one or more Regions where you want to create stack instances using the specified AWS accounts\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Regions", + "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": { + "markdownDescription": "Whether to automatically update the extension in this account and region when a new *minor* version is published by the extension publisher\\. Major versions released by the publisher must be manually updated\\. \nThe default is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoUpdate", + "type": "boolean" + }, + "ExecutionRoleArn": { + "markdownDescription": "The name of the IAM execution role to use to activate the extension\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `arn:.+:iam::[0-9]{12}:role/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExecutionRoleArn", + "type": "string" + }, + "LoggingConfig": { + "$ref": "#/definitions/AWS::CloudFormation::TypeActivation.LoggingConfig", + "markdownDescription": "Specifies logging configuration information for an extension\\. \n*Required*: No \n*Type*: [LoggingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-typeactivation-loggingconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoggingConfig" + }, + "MajorVersion": { + "markdownDescription": "The major version of this extension you want to activate, if multiple major versions are available\\. The default is the latest major version\\. CloudFormation uses the latest available *minor* version of the major version selected\\. \nYou can specify `MajorVersion` or `VersionBump`, but not both\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MajorVersion", + "type": "string" + }, + "PublicTypeArn": { + "markdownDescription": "The Amazon Resource Number \\(ARN\\) of the public extension\\. \nConditional: You must specify `PublicTypeArn`, or `TypeName`, `Type`, and `PublisherId`\\. \n*Required*: Conditional \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `arn:aws[A-Za-z0-9-]{0,64}:cloudformation:[A-Za-z0-9-]{1,64}::type/.+/[0-9a-zA-Z]{12,40}/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PublicTypeArn", + "type": "string" + }, + "PublisherId": { + "markdownDescription": "The ID of the extension publisher\\. \nConditional: You must specify `PublicTypeArn`, or `TypeName`, `Type`, and `PublisherId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `40` \n*Pattern*: `[0-9a-zA-Z]{12,40}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PublisherId", + "type": "string" + }, + "Type": { + "markdownDescription": "The extension type\\. \nConditional: You must specify `PublicTypeArn`, or `TypeName`, `Type`, and `PublisherId`\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `HOOK | MODULE | RESOURCE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + }, + "TypeName": { + "markdownDescription": "The name of the extension\\. \nConditional: You must specify `PublicTypeArn`, or `TypeName`, `Type`, and `PublisherId`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `204` \n*Pattern*: `[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TypeName", + "type": "string" + }, + "TypeNameAlias": { + "markdownDescription": "An alias to assign to the public extension, in this account and region\\. If you specify an alias for the extension, CloudFormation treats the alias as the extension type name within this account and region\\. You must use the alias to refer to the extension in your templates, API calls, and CloudFormation console\\. \nAn extension alias must be unique within a given account and region\\. You can activate the same public resource multiple times in the same account and region, using different type name aliases\\. \n*Required*: No \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `204` \n*Pattern*: `[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}::[A-Za-z0-9]{2,64}(::MODULE){0,1}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TypeNameAlias", + "type": "string" + }, + "VersionBump": { + "markdownDescription": "Manually updates a previously\\-activated type to a new major or minor version, if available\\. You can also use this parameter to update the value of `AutoUpdate`\\. \n+ `MAJOR`: CloudFormation updates the extension to the newest major version, if one is available\\.\n+ `MINOR`: CloudFormation updates the extension to the newest minor version, if one is available\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `MAJOR | MINOR` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon CloudWatch Logs group to which CloudFormation sends error logging information when invoking the extension's handlers\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogGroupName", + "type": "string" + }, + "LogRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that CloudFormation should assume when sending log entries to CloudWatch Logs\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `arn:.+:iam::[0-9]{12}:role/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The number of success signals that CloudFormation must receive before it continues the stack creation process\\. When the wait condition receives the requisite number of success signals, CloudFormation resumes the creation of the stack\\. If the wait condition doesn't receive the specified number of success signals before the Timeout period expires, CloudFormation assumes that the wait condition has failed and rolls the stack back\\. \nUpdates aren't supported\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count", + "type": "number" + }, + "Handle": { + "markdownDescription": "A reference to the wait condition handle used to signal this wait condition\\. Use the `Ref` intrinsic function to specify an [AWS::CloudFormation::WaitConditionHandle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitconditionhandle.html) resource\\. \nAnytime you add a WaitCondition resource during a stack update, you must associate the wait condition with a new WaitConditionHandle resource\\. Don't reuse an old wait condition handle that has already been defined in the template\\. If you reuse a wait condition handle, the wait condition might evaluate old signals from a previous create or update stack command\\. \nUpdates aren't supported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Handle", + "type": "string" + }, + "Timeout": { + "markdownDescription": "The length of time \\(in seconds\\) to wait for the number of signals that the `Count` property specifies\\. `Timeout` is a minimum\\-bound property, meaning the timeout occurs no sooner than the time you specify, but can occur shortly thereafter\\. The maximum time that can be specified for this property is 12 hours \\(43200 seconds\\)\\. \nUpdates aren't supported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The cache policy configuration\\. \n*Required*: Yes \n*Type*: [CachePolicyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cachepolicyconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A comment to describe the cache policy\\. The comment cannot be longer than 128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", + "type": "string" + }, + "DefaultTTL": { + "markdownDescription": "The default amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated\\. CloudFront uses this value as the object\u2019s time to live \\(TTL\\) only when the origin does *not* send `Cache-Control` or `Expires` headers with the object\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \nThe default value for this field is 86400 seconds \\(one day\\)\\. If the value of `MinTTL` is more than 86400 seconds, then the default value for this field is the same as the value of `MinTTL`\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultTTL", + "type": "number" + }, + "MaxTTL": { + "markdownDescription": "The maximum amount of time, in seconds, that objects stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated\\. CloudFront uses this value only when the origin sends `Cache-Control` or `Expires` headers with the object\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \nThe default value for this field is 31536000 seconds \\(one year\\)\\. If the value of `MinTTL` or `DefaultTTL` is more than 31536000 seconds, then the default value for this field is the same as the value of `DefaultTTL`\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxTTL", + "type": "number" + }, + "MinTTL": { + "markdownDescription": "The minimum amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinTTL", + "type": "number" + }, + "Name": { + "markdownDescription": "A unique name to identify the cache policy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "ParametersInCacheKeyAndForwardedToOrigin": { + "$ref": "#/definitions/AWS::CloudFront::CachePolicy.ParametersInCacheKeyAndForwardedToOrigin", + "markdownDescription": "The HTTP headers, cookies, and URL query strings to include in the cache key\\. The values included in the cache key are automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [ParametersInCacheKeyAndForwardedToOrigin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParametersInCacheKeyAndForwardedToOrigin" + } + }, + "required": [ + "DefaultTTL", + "MaxTTL", + "MinTTL", + "Name", + "ParametersInCacheKeyAndForwardedToOrigin" + ], + "type": "object" + }, + "AWS::CloudFront::CachePolicy.CookiesConfig": { + "additionalProperties": false, + "properties": { + "CookieBehavior": { + "markdownDescription": "Determines whether any cookies in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Cookies in viewer requests are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any cookies that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The cookies in viewer requests that are listed in the `CookieNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All cookies in viewer requests that are * **not** * listed in the `CookieNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All cookies in viewer requests are included in the cache key and are automatically included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CookieBehavior", + "type": "string" + }, + "Cookies": { + "items": { + "type": "string" + }, + "markdownDescription": "Contains a list of cookie names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cookies", + "type": "array" + } + }, + "required": [ + "CookieBehavior" + ], + "type": "object" + }, + "AWS::CloudFront::CachePolicy.HeadersConfig": { + "additionalProperties": false, + "properties": { + "HeaderBehavior": { + "markdownDescription": "Determines whether any HTTP headers are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 HTTP headers are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any headers that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The HTTP headers that are listed in the `Headers` type are included in the cache key and are automatically included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderBehavior", + "type": "string" + }, + "Headers": { + "items": { + "type": "string" + }, + "markdownDescription": "Contains a list of HTTP header names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Headers", + "type": "array" + } + }, + "required": [ + "HeaderBehavior" + ], + "type": "object" + }, + "AWS::CloudFront::CachePolicy.ParametersInCacheKeyAndForwardedToOrigin": { + "additionalProperties": false, + "properties": { + "CookiesConfig": { + "$ref": "#/definitions/AWS::CloudFront::CachePolicy.CookiesConfig", + "markdownDescription": "An object that determines whether any cookies in viewer requests \\(and if so, which cookies\\) are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [CookiesConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cookiesconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CookiesConfig" + }, + "EnableAcceptEncodingBrotli": { + "markdownDescription": "A flag that can affect whether the `Accept-Encoding` HTTP header is included in the cache key and included in requests that CloudFront sends to the origin\\. \nThis field is related to the `EnableAcceptEncodingGzip` field\\. If one or both of these fields is `true` *and* the viewer request includes the `Accept-Encoding` header, then CloudFront does the following: \n+ Normalizes the value of the viewer\u2019s `Accept-Encoding` header\n+ Includes the normalized header in the cache key\n+ Includes the normalized header in the request to the origin, if a request is necessary\nFor more information, see [Compression support](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-policy-compressed-objects) in the *Amazon CloudFront Developer Guide*\\. \nIf you set this value to `true`, and this cache behavior also has an origin request policy attached, do not include the `Accept-Encoding` header in the origin request policy\\. CloudFront always includes the `Accept-Encoding` header in origin requests when the value of this field is `true`, so including this header in an origin request policy has no effect\\. \nIf both of these fields are `false`, then CloudFront treats the `Accept-Encoding` header the same as any other HTTP header in the viewer request\\. By default, it\u2019s not included in the cache key and it\u2019s not included in origin requests\\. In this case, you can manually add `Accept-Encoding` to the headers whitelist like any other HTTP header\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableAcceptEncodingBrotli", + "type": "boolean" + }, + "EnableAcceptEncodingGzip": { + "markdownDescription": "A flag that can affect whether the `Accept-Encoding` HTTP header is included in the cache key and included in requests that CloudFront sends to the origin\\. \nThis field is related to the `EnableAcceptEncodingBrotli` field\\. If one or both of these fields is `true` *and* the viewer request includes the `Accept-Encoding` header, then CloudFront does the following: \n+ Normalizes the value of the viewer\u2019s `Accept-Encoding` header\n+ Includes the normalized header in the cache key\n+ Includes the normalized header in the request to the origin, if a request is necessary\nFor more information, see [Compression support](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-policy-compressed-objects) in the *Amazon CloudFront Developer Guide*\\. \nIf you set this value to `true`, and this cache behavior also has an origin request policy attached, do not include the `Accept-Encoding` header in the origin request policy\\. CloudFront always includes the `Accept-Encoding` header in origin requests when the value of this field is `true`, so including this header in an origin request policy has no effect\\. \nIf both of these fields are `false`, then CloudFront treats the `Accept-Encoding` header the same as any other HTTP header in the viewer request\\. By default, it\u2019s not included in the cache key and it\u2019s not included in origin requests\\. In this case, you can manually add `Accept-Encoding` to the headers whitelist like any other HTTP header\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableAcceptEncodingGzip", + "type": "boolean" + }, + "HeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::CachePolicy.HeadersConfig", + "markdownDescription": "An object that determines whether any HTTP headers \\(and if so, which headers\\) are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [HeadersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-headersconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeadersConfig" + }, + "QueryStringsConfig": { + "$ref": "#/definitions/AWS::CloudFront::CachePolicy.QueryStringsConfig", + "markdownDescription": "An object that determines whether any URL query strings in viewer requests \\(and if so, which query strings\\) are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [QueryStringsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-querystringsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryStringsConfig" + } + }, + "required": [ + "CookiesConfig", + "EnableAcceptEncodingGzip", + "HeadersConfig", + "QueryStringsConfig" + ], + "type": "object" + }, + "AWS::CloudFront::CachePolicy.QueryStringsConfig": { + "additionalProperties": false, + "properties": { + "QueryStringBehavior": { + "markdownDescription": "Determines whether any URL query strings in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Query strings in viewer requests are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any query strings that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The query strings in viewer requests that are listed in the `QueryStringNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All query strings in viewer requests that are * **not** * listed in the `QueryStringNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All query strings in viewer requests are included in the cache key and are automatically included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryStringBehavior", + "type": "string" + }, + "QueryStrings": { + "items": { + "type": "string" + }, + "markdownDescription": "Contains a list of query string names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryStrings", + "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", + "markdownDescription": "The current configuration information for the identity\\. \n*Required*: Yes \n*Type*: [CloudFrontOriginAccessIdentityConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cloudfrontoriginaccessidentity-cloudfrontoriginaccessidentityconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A comment to describe the origin access identity\\. The comment cannot be longer than 128 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The current configuration information for the distribution\\. Send a `GET` request to the `/CloudFront API version/distribution ID/config` resource\\. \n*Required*: Yes \n*Type*: [DistributionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DistributionConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A complex type that contains zero or more `Tag` elements\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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" + }, + "markdownDescription": "A complex type that controls which HTTP methods CloudFront processes and forwards to your Amazon S3 bucket or your custom origin\\. There are three choices: \n+ CloudFront forwards only `GET` and `HEAD` requests\\.\n+ CloudFront forwards only `GET`, `HEAD`, and `OPTIONS` requests\\.\n+ CloudFront forwards `GET, HEAD, OPTIONS, PUT, PATCH, POST`, and `DELETE` requests\\.\nIf you pick the third choice, you may need to restrict access to your Amazon S3 bucket or to your custom origin so users can't perform operations that you don't want them to\\. For example, you might not want users to have permissions to delete objects from your origin\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedMethods", + "type": "array" + }, + "CachePolicyId": { + "markdownDescription": "The unique identifier of the cache policy that is attached to this cache behavior\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nA `CacheBehavior` must include either a `CachePolicyId` or `ForwardedValues`\\. We recommend that you use a `CachePolicyId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CachePolicyId", + "type": "string" + }, + "CachedMethods": { + "items": { + "type": "string" + }, + "markdownDescription": "A complex type that controls whether CloudFront caches the response to requests using the specified HTTP methods\\. There are two choices: \n+ CloudFront caches responses to `GET` and `HEAD` requests\\.\n+ CloudFront caches responses to `GET`, `HEAD`, and `OPTIONS` requests\\.\nIf you pick the second choice for your Amazon S3 Origin, you may need to forward Access\\-Control\\-Request\\-Method, Access\\-Control\\-Request\\-Headers, and Origin headers for the responses to be cached correctly\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CachedMethods", + "type": "array" + }, + "Compress": { + "markdownDescription": "Whether you want CloudFront to automatically compress certain files for this cache behavior\\. If so, specify true; if not, specify false\\. For more information, see [Serving Compressed Files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Compress", + "type": "boolean" + }, + "DefaultTTL": { + "markdownDescription": "This field is deprecated\\. We recommend that you use the `DefaultTTL` field in a cache policy instead of this field\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nThe default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated\\. The value that you specify applies only when your origin does not add HTTP headers such as `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to objects\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultTTL", + "type": "number" + }, + "FieldLevelEncryptionId": { + "markdownDescription": "The value of `ID` for the field\\-level encryption configuration that you want CloudFront to use for encrypting specific fields of data for this cache behavior\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldLevelEncryptionId", + "type": "string" + }, + "ForwardedValues": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues", + "markdownDescription": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to include values in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send values to the origin but not include them in the cache key, use an origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nA `CacheBehavior` must include either a `CachePolicyId` or `ForwardedValues`\\. We recommend that you use a `CachePolicyId`\\. \nA complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers\\. \n*Required*: Conditional \n*Type*: [ForwardedValues](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-forwardedvalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForwardedValues" + }, + "FunctionAssociations": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.FunctionAssociation" + }, + "markdownDescription": "A list of CloudFront functions that are associated with this cache behavior\\. CloudFront functions must be published to the `LIVE` stage to associate them with a cache behavior\\. \n*Required*: No \n*Type*: List of [FunctionAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-functionassociation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FunctionAssociations", + "type": "array" + }, + "LambdaFunctionAssociations": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation" + }, + "markdownDescription": "A complex type that contains zero or more Lambda@Edge function associations for a cache behavior\\. \n*Required*: No \n*Type*: List of [LambdaFunctionAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-lambdafunctionassociation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaFunctionAssociations", + "type": "array" + }, + "MaxTTL": { + "markdownDescription": "This field is deprecated\\. We recommend that you use the `MaxTTL` field in a cache policy instead of this field\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nThe maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated\\. The value that you specify applies only when your origin adds HTTP headers such as `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to objects\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxTTL", + "type": "number" + }, + "MinTTL": { + "markdownDescription": "This field is deprecated\\. We recommend that you use the `MinTTL` field in a cache policy instead of this field\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nThe minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated\\. For more information, see [ Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the * Amazon CloudFront Developer Guide*\\. \nYou must specify `0` for `MinTTL` if you configure CloudFront to forward all headers to your origin \\(under `Headers`, if you specify `1` for `Quantity` and `*` for `Name`\\)\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinTTL", + "type": "number" + }, + "OriginRequestPolicyId": { + "markdownDescription": "The unique identifier of the origin request policy that is attached to this cache behavior\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginRequestPolicyId", + "type": "string" + }, + "PathPattern": { + "markdownDescription": "The pattern \\(for example, `images/*.jpg`\\) that specifies which requests to apply the behavior to\\. When CloudFront receives a viewer request, the requested path is compared with path patterns in the order in which cache behaviors are listed in the distribution\\. \nYou can optionally include a slash \\(`/`\\) at the beginning of the path pattern\\. For example, `/images/*.jpg`\\. CloudFront behavior is the same with or without the leading `/`\\.\nThe path pattern for the default cache behavior is `*` and cannot be changed\\. If the request for an object does not match the path pattern for any cache behaviors, CloudFront applies the behavior in the default cache behavior\\. \nFor more information, see [Path Pattern](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesPathPattern) in the * Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PathPattern", + "type": "string" + }, + "RealtimeLogConfigArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the real\\-time log configuration that is attached to this cache behavior\\. For more information, see [Real\\-time logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RealtimeLogConfigArn", + "type": "string" + }, + "ResponseHeadersPolicyId": { + "markdownDescription": "The identifier for a response headers policy\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseHeadersPolicyId", + "type": "string" + }, + "SmoothStreaming": { + "markdownDescription": "Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior\\. If so, specify `true`; if not, specify `false`\\. If you specify `true` for `SmoothStreaming`, you can still distribute other content using this cache behavior if the content matches the value of `PathPattern`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SmoothStreaming", + "type": "boolean" + }, + "TargetOriginId": { + "markdownDescription": "The value of `ID` for the origin that you want CloudFront to route requests to when they match this cache behavior\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetOriginId", + "type": "string" + }, + "TrustedKeyGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of key groups that CloudFront can use to validate signed URLs or signed cookies\\. \nWhen a cache behavior contains trusted key groups, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior\\. The URLs or cookies must be signed with a private key whose corresponding public key is in the key group\\. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature\\. For more information, see [Serving private content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrustedKeyGroups", + "type": "array" + }, + "TrustedSigners": { + "items": { + "type": "string" + }, + "markdownDescription": "We recommend using `TrustedKeyGroups` instead of `TrustedSigners`\\.\nA list of AWS account IDs whose public keys CloudFront can use to validate signed URLs or signed cookies\\. \nWhen a cache behavior contains trusted signers, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior\\. The URLs or cookies must be signed with the private key of a CloudFront key pair in the trusted signer\u2019s AWS account\\. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature\\. For more information, see [Serving private content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrustedSigners", + "type": "array" + }, + "ViewerProtocolPolicy": { + "markdownDescription": "The protocol that viewers can use to access the files in the origin specified by `TargetOriginId` when a request matches the path pattern in `PathPattern`\\. You can specify the following options: \n+ `allow-all`: Viewers can use HTTP or HTTPS\\.\n+ `redirect-to-https`: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 \\(Moved Permanently\\) to the viewer along with the HTTPS URL\\. The viewer then resubmits the request using the new URL\\. \n+ `https-only`: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 \\(Forbidden\\)\\. \nFor more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*\\. \nThe only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object\\. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects\u2019 cache because cached objects are protocol agnostic\\. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously\\. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `allow-all | https-only | redirect-to-https` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ViewerProtocolPolicy", + "type": "string" + } + }, + "required": [ + "PathPattern", + "TargetOriginId", + "ViewerProtocolPolicy" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.Cookies": { + "additionalProperties": false, + "properties": { + "Forward": { + "markdownDescription": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. \nIf you want to include cookies in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send cookies to the origin but not include them in the cache key, use origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*\\. \nSpecifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the `WhitelistedNames` complex type\\. \nAmazon S3 doesn't process cookies\\. When the cache behavior is forwarding requests to an Amazon S3 origin, specify none for the `Forward` element\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Forward", + "type": "string" + }, + "WhitelistedNames": { + "items": { + "type": "string" + }, + "markdownDescription": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. \nIf you want to include cookies in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send cookies to the origin but not include them in the cache key, use an origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*\\. \nRequired if you specify `whitelist` for the value of `Forward`\\. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward selected cookies, the names of those cookies\\. \nIf you specify `all` or `none` for the value of `Forward`, omit `WhitelistedNames`\\. If you change the value of `Forward` from `whitelist` to `all` or `none` and you don't delete the `WhitelistedNames` element and its child elements, CloudFront deletes them automatically\\. \nFor the current limit on the number of cookie names that you can whitelist for each cache behavior, see [ CloudFront Limits](https://docs.aws.amazon.com/general/latest/gr/xrefaws_service_limits.html#limits_cloudfront) in the * AWS General Reference*\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WhitelistedNames", + "type": "array" + } + }, + "required": [ + "Forward" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.CustomErrorResponse": { + "additionalProperties": false, + "properties": { + "ErrorCachingMinTTL": { + "markdownDescription": "The minimum amount of time, in seconds, that you want CloudFront to cache the HTTP status code specified in `ErrorCode`\\. When this time period has elapsed, CloudFront queries your origin to see whether the problem that caused the error has been resolved and the requested object is now available\\. \nFor more information, see [Customizing Error Responses](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorCachingMinTTL", + "type": "number" + }, + "ErrorCode": { + "markdownDescription": "The HTTP status code for which you want to specify a custom error page and/or a caching duration\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorCode", + "type": "number" + }, + "ResponseCode": { + "markdownDescription": "The HTTP status code that you want CloudFront to return to the viewer along with the custom error page\\. There are a variety of reasons that you might want CloudFront to return a status code different from the status code that your origin returned to CloudFront, for example: \n+ Some Internet devices \\(some firewalls and corporate proxies, for example\\) intercept HTTP 4xx and 5xx and prevent the response from being returned to the viewer\\. If you substitute `200`, the response typically won't be intercepted\\.\n+ If you don't care about distinguishing among different client errors or server errors, you can specify `400` or `500` as the `ResponseCode` for all 4xx or 5xx errors\\.\n+ You might want to return a `200` status code \\(OK\\) and static website so your customers don't know that your website is down\\.\nIf you specify a value for `ResponseCode`, you must also specify a value for `ResponsePagePath`\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseCode", + "type": "number" + }, + "ResponsePagePath": { + "markdownDescription": "The path to the custom error page that you want CloudFront to return to a viewer when your origin returns the HTTP status code specified by `ErrorCode`, for example, `/4xx-errors/403-forbidden.html`\\. If you want to store your objects and your custom error pages in different locations, your distribution must include a cache behavior for which the following is true: \n+ The value of `PathPattern` matches the path to your custom error messages\\. For example, suppose you saved custom error pages for 4xx errors in an Amazon S3 bucket in a directory named `/4xx-errors`\\. Your distribution must include a cache behavior for which the path pattern routes requests for your custom error pages to that location, for example, `/4xx-errors/*`\\. \n+ The value of `TargetOriginId` specifies the value of the `ID` element for the origin that contains your custom error pages\\.\nIf you specify a value for `ResponsePagePath`, you must also specify a value for `ResponseCode`\\. \nWe recommend that you store custom error pages in an Amazon S3 bucket\\. If you store custom error pages on an HTTP server and the server starts to return 5xx errors, CloudFront can't get the files that you want to return to viewers because the origin server is unavailable\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponsePagePath", + "type": "string" + } + }, + "required": [ + "ErrorCode" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.CustomOriginConfig": { + "additionalProperties": false, + "properties": { + "HTTPPort": { + "markdownDescription": "The HTTP port that CloudFront uses to connect to the origin\\. Specify the HTTP port that the origin listens on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTPPort", + "type": "number" + }, + "HTTPSPort": { + "markdownDescription": "The HTTPS port that CloudFront uses to connect to the origin\\. Specify the HTTPS port that the origin listens on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTPSPort", + "type": "number" + }, + "OriginKeepaliveTimeout": { + "markdownDescription": "Specifies how long, in seconds, CloudFront persists its connection to the origin\\. The minimum timeout is 1 second, the maximum is 60 seconds, and the default \\(if you don\u2019t specify otherwise\\) is 5 seconds\\. \nFor more information, see [Origin Keep\\-alive Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginKeepaliveTimeout) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginKeepaliveTimeout", + "type": "number" + }, + "OriginProtocolPolicy": { + "markdownDescription": "Specifies the protocol \\(HTTP or HTTPS\\) that CloudFront uses to connect to the origin\\. Valid values are: \n+ `http-only` \u2013 CloudFront always uses HTTP to connect to the origin\\.\n+ `match-viewer` \u2013 CloudFront connects to the origin using the same protocol that the viewer used to connect to CloudFront\\.\n+ `https-only` \u2013 CloudFront always uses HTTPS to connect to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `http-only | https-only | match-viewer` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginProtocolPolicy", + "type": "string" + }, + "OriginReadTimeout": { + "markdownDescription": "Specifies how long, in seconds, CloudFront waits for a response from the origin\\. This is also known as the *origin response timeout*\\. The minimum timeout is 1 second, the maximum is 60 seconds, and the default \\(if you don\u2019t specify otherwise\\) is 30 seconds\\. \nFor more information, see [Origin Response Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginReadTimeout", + "type": "number" + }, + "OriginSSLProtocols": { + "items": { + "type": "string" + }, + "markdownDescription": "Specifies the minimum SSL/TLS protocol that CloudFront uses when connecting to your origin over HTTPS\\. Valid values include `SSLv3`, `TLSv1`, `TLSv1.1`, and `TLSv1.2`\\. \nFor more information, see [Minimum Origin SSL Protocol](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginSSLProtocols) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginSSLProtocols", + "type": "array" + } + }, + "required": [ + "OriginProtocolPolicy" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.DefaultCacheBehavior": { + "additionalProperties": false, + "properties": { + "AllowedMethods": { + "items": { + "type": "string" + }, + "markdownDescription": "A complex type that controls which HTTP methods CloudFront processes and forwards to your Amazon S3 bucket or your custom origin\\. There are three choices: \n+ CloudFront forwards only `GET` and `HEAD` requests\\.\n+ CloudFront forwards only `GET`, `HEAD`, and `OPTIONS` requests\\.\n+ CloudFront forwards `GET, HEAD, OPTIONS, PUT, PATCH, POST`, and `DELETE` requests\\.\nIf you pick the third choice, you may need to restrict access to your Amazon S3 bucket or to your custom origin so users can't perform operations that you don't want them to\\. For example, you might not want users to have permissions to delete objects from your origin\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedMethods", + "type": "array" + }, + "CachePolicyId": { + "markdownDescription": "The unique identifier of the cache policy that is attached to the default cache behavior\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nA `DefaultCacheBehavior` must include either a `CachePolicyId` or `ForwardedValues`\\. We recommend that you use a `CachePolicyId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CachePolicyId", + "type": "string" + }, + "CachedMethods": { + "items": { + "type": "string" + }, + "markdownDescription": "A complex type that controls whether CloudFront caches the response to requests using the specified HTTP methods\\. There are two choices: \n+ CloudFront caches responses to `GET` and `HEAD` requests\\.\n+ CloudFront caches responses to `GET`, `HEAD`, and `OPTIONS` requests\\.\nIf you pick the second choice for your Amazon S3 Origin, you may need to forward Access\\-Control\\-Request\\-Method, Access\\-Control\\-Request\\-Headers, and Origin headers for the responses to be cached correctly\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CachedMethods", + "type": "array" + }, + "Compress": { + "markdownDescription": "Whether you want CloudFront to automatically compress certain files for this cache behavior\\. If so, specify `true`; if not, specify `false`\\. For more information, see [Serving Compressed Files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Compress", + "type": "boolean" + }, + "DefaultTTL": { + "markdownDescription": "This field is deprecated\\. We recommend that you use the `DefaultTTL` field in a cache policy instead of this field\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nThe default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated\\. The value that you specify applies only when your origin does not add HTTP headers such as `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to objects\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultTTL", + "type": "number" + }, + "FieldLevelEncryptionId": { + "markdownDescription": "The value of `ID` for the field\\-level encryption configuration that you want CloudFront to use for encrypting specific fields of data for the default cache behavior\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldLevelEncryptionId", + "type": "string" + }, + "ForwardedValues": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues", + "markdownDescription": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to include values in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send values to the origin but not include them in the cache key, use an origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nA `DefaultCacheBehavior` must include either a `CachePolicyId` or `ForwardedValues`\\. We recommend that you use a `CachePolicyId`\\. \nA complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers\\. \n*Required*: Conditional \n*Type*: [ForwardedValues](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-forwardedvalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForwardedValues" + }, + "FunctionAssociations": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.FunctionAssociation" + }, + "markdownDescription": "A list of CloudFront functions that are associated with this cache behavior\\. CloudFront functions must be published to the `LIVE` stage to associate them with a cache behavior\\. \n*Required*: No \n*Type*: List of [FunctionAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-functionassociation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FunctionAssociations", + "type": "array" + }, + "LambdaFunctionAssociations": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation" + }, + "markdownDescription": "A complex type that contains zero or more Lambda@Edge function associations for a cache behavior\\. \n*Required*: No \n*Type*: List of [LambdaFunctionAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-lambdafunctionassociation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaFunctionAssociations", + "type": "array" + }, + "MaxTTL": { + "markdownDescription": "This field is deprecated\\. We recommend that you use the `MaxTTL` field in a cache policy instead of this field\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nThe maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated\\. The value that you specify applies only when your origin adds HTTP headers such as `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to objects\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxTTL", + "type": "number" + }, + "MinTTL": { + "markdownDescription": "This field is deprecated\\. We recommend that you use the `MinTTL` field in a cache policy instead of this field\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*\\. \nThe minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \nYou must specify `0` for `MinTTL` if you configure CloudFront to forward all headers to your origin \\(under `Headers`, if you specify `1` for `Quantity` and `*` for `Name`\\)\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinTTL", + "type": "number" + }, + "OriginRequestPolicyId": { + "markdownDescription": "The unique identifier of the origin request policy that is attached to the default cache behavior\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginRequestPolicyId", + "type": "string" + }, + "RealtimeLogConfigArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the real\\-time log configuration that is attached to this cache behavior\\. For more information, see [Real\\-time logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RealtimeLogConfigArn", + "type": "string" + }, + "ResponseHeadersPolicyId": { + "markdownDescription": "The identifier for a response headers policy\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseHeadersPolicyId", + "type": "string" + }, + "SmoothStreaming": { + "markdownDescription": "Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior\\. If so, specify `true`; if not, specify `false`\\. If you specify `true` for `SmoothStreaming`, you can still distribute other content using this cache behavior if the content matches the value of `PathPattern`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SmoothStreaming", + "type": "boolean" + }, + "TargetOriginId": { + "markdownDescription": "The value of `ID` for the origin that you want CloudFront to route requests to when they use the default cache behavior\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetOriginId", + "type": "string" + }, + "TrustedKeyGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of key groups that CloudFront can use to validate signed URLs or signed cookies\\. \nWhen a cache behavior contains trusted key groups, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior\\. The URLs or cookies must be signed with a private key whose corresponding public key is in the key group\\. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature\\. For more information, see [Serving private content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrustedKeyGroups", + "type": "array" + }, + "TrustedSigners": { + "items": { + "type": "string" + }, + "markdownDescription": "We recommend using `TrustedKeyGroups` instead of `TrustedSigners`\\.\nA list of AWS account IDs whose public keys CloudFront can use to validate signed URLs or signed cookies\\. \nWhen a cache behavior contains trusted signers, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior\\. The URLs or cookies must be signed with the private key of a CloudFront key pair in a trusted signer\u2019s AWS account\\. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature\\. For more information, see [Serving private content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrustedSigners", + "type": "array" + }, + "ViewerProtocolPolicy": { + "markdownDescription": "The protocol that viewers can use to access the files in the origin specified by `TargetOriginId` when a request matches the path pattern in `PathPattern`\\. You can specify the following options: \n+ `allow-all`: Viewers can use HTTP or HTTPS\\.\n+ `redirect-to-https`: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 \\(Moved Permanently\\) to the viewer along with the HTTPS URL\\. The viewer then resubmits the request using the new URL\\.\n+ `https-only`: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 \\(Forbidden\\)\\.\nFor more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*\\. \nThe only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object\\. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects\u2019 cache because cached objects are protocol agnostic\\. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously\\. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `allow-all | https-only | redirect-to-https` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ViewerProtocolPolicy", + "type": "string" + } + }, + "required": [ + "TargetOriginId", + "ViewerProtocolPolicy" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.DistributionConfig": { + "additionalProperties": false, + "properties": { + "Aliases": { + "items": { + "type": "string" + }, + "markdownDescription": "A complex type that contains information about CNAMEs \\(alternate domain names\\), if any, for this distribution\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Aliases", + "type": "array" + }, + "CNAMEs": { + "items": { + "type": "string" + }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CNAMEs", + "type": "array" + }, + "CacheBehaviors": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.CacheBehavior" + }, + "markdownDescription": "A complex type that contains zero or more `CacheBehavior` elements\\. \n*Required*: No \n*Type*: List of [CacheBehavior](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheBehaviors", + "type": "array" + }, + "Comment": { + "markdownDescription": "An optional comment to describe the distribution\\. The comment cannot be longer than 128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", + "type": "string" + }, + "ContinuousDeploymentPolicyId": { + "type": "string" + }, + "CustomErrorResponses": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomErrorResponse" + }, + "markdownDescription": "A complex type that controls the following: \n+ Whether CloudFront replaces HTTP status codes in the 4xx and 5xx range with custom error messages before returning the response to the viewer\\.\n+ How long CloudFront caches HTTP status codes in the 4xx and 5xx range\\.\nFor more information about custom error pages, see [Customizing Error Responses](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of [CustomErrorResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customerrorresponse.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomErrorResponses", + "type": "array" + }, + "CustomOrigin": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.LegacyCustomOrigin", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [LegacyCustomOrigin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacycustomorigin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomOrigin" + }, + "DefaultCacheBehavior": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.DefaultCacheBehavior", + "markdownDescription": "A complex type that describes the default cache behavior if you don't specify a `CacheBehavior` element or if files don't match any of the values of `PathPattern` in `CacheBehavior` elements\\. You must create exactly one default cache behavior\\. \n*Required*: No \n*Type*: [DefaultCacheBehavior](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultCacheBehavior" + }, + "DefaultRootObject": { + "markdownDescription": "The object that you want CloudFront to request from your origin \\(for example, `index.html`\\) when a viewer requests the root URL for your distribution \\(`http://www.example.com`\\) instead of an object in your distribution \\(`http://www.example.com/product-description.html`\\)\\. Specifying a default root object avoids exposing the contents of your distribution\\. \nSpecify only the object name, for example, `index.html`\\. Don't add a `/` before the object name\\. \nIf you don't want to specify a default root object when you create a distribution, include an empty `DefaultRootObject` element\\. \nTo delete the default root object from an existing distribution, update the distribution configuration and include an empty `DefaultRootObject` element\\. \nTo replace the default root object, update the distribution configuration and specify the new object\\. \nFor more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultRootObject", + "type": "string" + }, + "Enabled": { + "markdownDescription": "From this field, you can enable or disable the selected distribution\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "HttpVersion": { + "markdownDescription": "\\(Optional\\) Specify the maximum HTTP version that you want viewers to use to communicate with CloudFront\\. The default value for new web distributions is `http1.1`\\. \nFor viewers and CloudFront to use HTTP/2, viewers must support TLS 1\\.2 or later, and must support server name identification \\(SNI\\)\\. \nIn general, configuring CloudFront to communicate with viewers using HTTP/2 reduces latency\\. You can improve performance by optimizing for HTTP/2\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `http1.1 | http2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpVersion", + "type": "string" + }, + "IPV6Enabled": { + "markdownDescription": "If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify `true`\\. If you specify `false`, CloudFront responds to IPv6 DNS requests with the DNS response code `NOERROR` and with no IP addresses\\. This allows viewers to submit a second request, for an IPv4 address for your distribution\\. \nIn general, you should enable IPv6 if you have users on IPv6 networks who want to access your content\\. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the `IpAddress` parameter to restrict the IP addresses that can access your content, don't enable IPv6\\. If you want to restrict access to some content by IP address and not restrict access to other content \\(or restrict access but not by IP address\\), you can create two distributions\\. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html) in the *Amazon CloudFront Developer Guide*\\. \nIf you're using an Amazon Route\u00a053 AWS Integration alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true: \n+ You enable IPv6 for the distribution\n+ You're using alternate domain names in the URLs for your objects\nFor more information, see [Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html) in the * Amazon Route\u00a053 AWS Integration Developer Guide*\\. \nIf you created a CNAME resource record set, either with Amazon Route\u00a053 AWS Integration or with another DNS service, you don't need to make any changes\\. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IPV6Enabled", + "type": "boolean" + }, + "Logging": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Logging", + "markdownDescription": "A complex type that controls whether access logs are written for the distribution\\. \nFor more information about logging, see [Access Logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: [Logging](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-logging.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Logging" + }, + "OriginGroups": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroups", + "markdownDescription": "A complex type that contains information about origin groups for this distribution\\. \n*Required*: No \n*Type*: [OriginGroups](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroups.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginGroups" + }, + "Origins": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Origin" + }, + "markdownDescription": "A complex type that contains information about origins for this distribution\\. \n*Required*: No \n*Type*: List of [Origin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Origins", + "type": "array" + }, + "PriceClass": { + "markdownDescription": "The price class that corresponds with the maximum price that you want to pay for CloudFront service\\. If you specify `PriceClass_All`, CloudFront responds to requests for your objects from all CloudFront edge locations\\. \nIf you specify a price class other than `PriceClass_All`, CloudFront serves your objects from the CloudFront edge location that has the lowest latency among the edge locations in your price class\\. Viewers who are in or near regions that are excluded from your specified price class may encounter slower performance\\. \nFor more information about price classes, see [Choosing the Price Class for a CloudFront Distribution](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PriceClass.html) in the *Amazon CloudFront Developer Guide*\\. For information about CloudFront pricing, including how price classes \\(such as Price Class 100\\) map to CloudFront regions, see [Amazon CloudFront Pricing](http://aws.amazon.com/cloudfront/pricing/)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PriceClass_100 | PriceClass_200 | PriceClass_All` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PriceClass", + "type": "string" + }, + "Restrictions": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Restrictions", + "markdownDescription": "A complex type that identifies ways in which you want to restrict distribution of your content\\. \n*Required*: No \n*Type*: [Restrictions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-restrictions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Restrictions" + }, + "S3Origin": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.LegacyS3Origin", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [LegacyS3Origin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacys3origin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Origin" + }, + "Staging": { + "type": "boolean" + }, + "ViewerCertificate": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.ViewerCertificate", + "markdownDescription": "A complex type that determines the distribution\u2019s SSL/TLS configuration for communicating with viewers\\. \n*Required*: No \n*Type*: [ViewerCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ViewerCertificate" + }, + "WebACLId": { + "markdownDescription": "A unique identifier that specifies the AWS WAF web ACL, if any, to associate with this distribution\\. To specify a web ACL created using the latest version of AWS WAF, use the ACL ARN, for example `arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a`\\. To specify a web ACL created using AWS WAF Classic, use the ACL ID, for example `473e64fd-f30b-4765-81a0-62ad96dd167a`\\. \n AWS WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content\\. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code \\(Forbidden\\)\\. You can also configure CloudFront to return a custom error page when a request is blocked\\. For more information about AWS WAF, see the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WebACLId", + "type": "string" + } + }, + "required": [ + "DefaultCacheBehavior", + "Enabled" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.ForwardedValues": { + "additionalProperties": false, + "properties": { + "Cookies": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Cookies", + "markdownDescription": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. \nIf you want to include cookies in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send cookies to the origin but not include them in the cache key, use an origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*\\. \nA complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones\\. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: [Cookies](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cookies.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cookies" + }, + "Headers": { + "items": { + "type": "string" + }, + "markdownDescription": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. \nIf you want to include headers in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send headers to the origin but not include them in the cache key, use an origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*\\. \nA complex type that specifies the `Headers`, if any, that you want CloudFront to forward to the origin for this cache behavior \\(whitelisted headers\\)\\. For the headers that you specify, CloudFront also caches separate versions of a specified object that is based on the header values in viewer requests\\. \nFor more information, see [ Caching Content Based on Request Headers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Headers", + "type": "array" + }, + "QueryString": { + "markdownDescription": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. \nIf you want to include query strings in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send query strings to the origin but not include them in the cache key, use an origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*\\. \nIndicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters\\. CloudFront behavior depends on the value of `QueryString` and on the values that you specify for `QueryStringCacheKeys`, if any: \nIf you specify true for `QueryString` and you don't specify any values for `QueryStringCacheKeys`, CloudFront forwards all query string parameters to the origin and caches based on all query string parameters\\. Depending on how many query string parameters and values you have, this can adversely affect performance because CloudFront must forward more requests to the origin\\. \nIf you specify true for `QueryString` and you specify one or more values for `QueryStringCacheKeys`, CloudFront forwards all query string parameters to the origin, but it only caches based on the query string parameters that you specify\\. \nIf you specify false for `QueryString`, CloudFront doesn't forward any query string parameters to the origin, and doesn't cache based on query string parameters\\. \nFor more information, see [Configuring CloudFront to Cache Based on Query String Parameters](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryString", + "type": "boolean" + }, + "QueryStringCacheKeys": { + "items": { + "type": "string" + }, + "markdownDescription": "This field is deprecated\\. We recommend that you use a cache policy or an origin request policy instead of this field\\. \nIf you want to include query strings in the cache key, use a cache policy\\. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*\\. \nIf you want to send query strings to the origin but not include them in the cache key, use an origin request policy\\. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*\\. \nA complex type that contains information about the query string parameters that you want CloudFront to use for caching for this cache behavior\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryStringCacheKeys", + "type": "array" + } + }, + "required": [ + "QueryString" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.FunctionAssociation": { + "additionalProperties": false, + "properties": { + "EventType": { + "markdownDescription": "The event type of the function, either `viewer-request` or `viewer-response`\\. You cannot use origin\\-facing event types \\(`origin-request` and `origin-response`\\) with a CloudFront function\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `origin-request | origin-response | viewer-request | viewer-response` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventType", + "type": "string" + }, + "FunctionARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the function\\. \n*Required*: No \n*Type*: String \n*Maximum*: `108` \n*Pattern*: `arn:aws:cloudfront::[0-9]{12}:function\\/[a-zA-Z0-9-_]{1,64}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FunctionARN", + "type": "string" + } + }, + "type": "object" + }, + "AWS::CloudFront::Distribution.GeoRestriction": { + "additionalProperties": false, + "properties": { + "Locations": { + "items": { + "type": "string" + }, + "markdownDescription": "A complex type that contains a `Location` element for each country in which you want CloudFront either to distribute your content \\(`whitelist`\\) or not distribute your content \\(`blacklist`\\)\\. \nThe `Location` element is a two\\-letter, uppercase country code for a country that you want to include in your `blacklist` or `whitelist`\\. Include one `Location` element for each country\\. \nCloudFront and `MaxMind` both use `ISO 3166` country codes\\. For the current list of countries and the corresponding codes, see `ISO 3166-1-alpha-2` code on the *International Organization for Standardization* website\\. You can also refer to the country list on the CloudFront console, which includes both country names and codes\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Locations", + "type": "array" + }, + "RestrictionType": { + "markdownDescription": "The method that you want to use to restrict distribution of your content by country: \n+ `none`: No geo restriction is enabled, meaning access to content is not restricted by client geo location\\.\n+ `blacklist`: The `Location` elements specify the countries in which you don't want CloudFront to distribute your content\\.\n+ `whitelist`: The `Location` elements specify the countries in which you want CloudFront to distribute your content\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `blacklist | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestrictionType", + "type": "string" + } + }, + "required": [ + "RestrictionType" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.LambdaFunctionAssociation": { + "additionalProperties": false, + "properties": { + "EventType": { + "markdownDescription": "Specifies the event type that triggers a Lambda@Edge function invocation\\. You can specify the following values: \n+ `viewer-request`: The function executes when CloudFront receives a request from a viewer and before it checks to see whether the requested object is in the edge cache\\. \n+ `origin-request`: The function executes only when CloudFront sends a request to your origin\\. When the requested object is in the edge cache, the function doesn't execute\\.\n+ `origin-response`: The function executes after CloudFront receives a response from the origin and before it caches the object in the response\\. When the requested object is in the edge cache, the function doesn't execute\\.\n+ `viewer-response`: The function executes before CloudFront returns the requested object to the viewer\\. The function executes regardless of whether the object was already in the edge cache\\.", + "title": "EventType", + "type": "string" + }, + "IncludeBody": { + "markdownDescription": "A flag that allows a Lambda@Edge function to have read access to the body content\\. For more information, see [Accessing the Request Body by Choosing the Include Body Option](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-include-body-access.html) in the Amazon CloudFront Developer Guide\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeBody", + "type": "boolean" + }, + "LambdaFunctionARN": { + "markdownDescription": "The ARN of the Lambda@Edge function\\. You must specify the ARN of a function version; you can't specify an alias or $LATEST\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaFunctionARN", + "type": "string" + } + }, + "type": "object" + }, + "AWS::CloudFront::Distribution.LegacyCustomOrigin": { + "additionalProperties": false, + "properties": { + "DNSName": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DNSName", + "type": "string" + }, + "HTTPPort": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTPPort", + "type": "number" + }, + "HTTPSPort": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTPSPort", + "type": "number" + }, + "OriginProtocolPolicy": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginProtocolPolicy", + "type": "string" + }, + "OriginSSLProtocols": { + "items": { + "type": "string" + }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginSSLProtocols", + "type": "array" + } + }, + "required": [ + "DNSName", + "OriginProtocolPolicy", + "OriginSSLProtocols" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.LegacyS3Origin": { + "additionalProperties": false, + "properties": { + "DNSName": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DNSName", + "type": "string" + }, + "OriginAccessIdentity": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginAccessIdentity", + "type": "string" + } + }, + "required": [ + "DNSName" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.Logging": { + "additionalProperties": false, + "properties": { + "Bucket": { + "markdownDescription": "The Amazon S3 bucket to store the access logs in, for example, `myawslogbucket.s3.amazonaws.com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", + "type": "string" + }, + "IncludeCookies": { + "markdownDescription": "Specifies whether you want CloudFront to include cookies in access logs, specify `true` for `IncludeCookies`\\. If you choose to include cookies in logs, CloudFront logs all cookies regardless of how you configure the cache behaviors for this distribution\\. If you don't want to include cookies when you create a distribution or if you want to disable include cookies for an existing distribution, specify `false` for `IncludeCookies`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeCookies", + "type": "boolean" + }, + "Prefix": { + "markdownDescription": "An optional string that you want CloudFront to prefix to the access log `filenames` for this distribution, for example, `myprefix/`\\. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty `Prefix` element in the `Logging` element\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.Origin": { + "additionalProperties": false, + "properties": { + "ConnectionAttempts": { + "markdownDescription": "The number of times that CloudFront attempts to connect to the origin\\. The minimum number is 1, the maximum is 3, and the default \\(if you don\u2019t specify otherwise\\) is 3\\. \nFor a custom origin \\(including an Amazon S3 bucket that\u2019s configured with static website hosting\\), this value also specifies the number of times that CloudFront attempts to get a response from the origin, in the case of an [Origin Response Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout)\\. \nFor more information, see [Origin Connection Attempts](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#origin-connection-attempts) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionAttempts", + "type": "number" + }, + "ConnectionTimeout": { + "markdownDescription": "The number of seconds that CloudFront waits when trying to establish a connection to the origin\\. The minimum timeout is 1 second, the maximum is 10 seconds, and the default \\(if you don\u2019t specify otherwise\\) is 10 seconds\\. \nFor more information, see [Origin Connection Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#origin-connection-timeout) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionTimeout", + "type": "number" + }, + "CustomOriginConfig": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomOriginConfig", + "markdownDescription": "Use this type to specify an origin that is not an Amazon S3 bucket, with one exception\\. If the Amazon S3 bucket is configured with static website hosting, use this type\\. If the Amazon S3 bucket is not configured with static website hosting, use the `S3OriginConfig` type instead\\. \n*Required*: Conditional \n*Type*: [CustomOriginConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customoriginconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomOriginConfig" + }, + "DomainName": { + "markdownDescription": "The domain name for the origin\\. \nFor more information, see [Origin Domain Name](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesDomainName) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainName", + "type": "string" + }, + "Id": { + "markdownDescription": "A unique identifier for the origin\\. This value must be unique within the distribution\\. \nUse this value to specify the `TargetOriginId` in a `CacheBehavior` or `DefaultCacheBehavior`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "OriginAccessControlId": { + "type": "string" + }, + "OriginCustomHeaders": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginCustomHeader" + }, + "markdownDescription": "A list of HTTP header names and values that CloudFront adds to the requests that it sends to the origin\\. \nFor more information, see [Adding Custom Headers to Origin Requests](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/add-origin-custom-headers.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: List of [OriginCustomHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origincustomheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginCustomHeaders", + "type": "array" + }, + "OriginPath": { + "markdownDescription": "An optional path that CloudFront appends to the origin domain name when CloudFront requests content from the origin\\. \nFor more information, see [Origin Path](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginPath) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginPath", + "type": "string" + }, + "OriginShield": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginShield", + "markdownDescription": "CloudFront Origin Shield\\. Using Origin Shield can help reduce the load on your origin\\. \nFor more information, see [Using Origin Shield](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: [OriginShield](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-originshield.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginShield" + }, + "S3OriginConfig": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.S3OriginConfig", + "markdownDescription": "Use this type to specify an origin that is an Amazon S3 bucket that is not configured with static website hosting\\. To specify any other type of origin, including an Amazon S3 bucket that is configured with static website hosting, use the `CustomOriginConfig` type instead\\. \n*Required*: Conditional \n*Type*: [S3OriginConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-s3originconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3OriginConfig" + } + }, + "required": [ + "DomainName", + "Id" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.OriginCustomHeader": { + "additionalProperties": false, + "properties": { + "HeaderName": { + "markdownDescription": "The name of a header that you want CloudFront to send to your origin\\. For more information, see [Adding Custom Headers to Origin Requests](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/forward-custom-headers.html) in the * Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderName", + "type": "string" + }, + "HeaderValue": { + "markdownDescription": "The value for the header that you specified in the `HeaderName` field\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderValue", + "type": "string" + } + }, + "required": [ + "HeaderName", + "HeaderValue" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.OriginGroup": { + "additionalProperties": false, + "properties": { + "FailoverCriteria": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroupFailoverCriteria", + "markdownDescription": "A complex type that contains information about the failover criteria for an origin group\\. \n*Required*: Yes \n*Type*: [OriginGroupFailoverCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupfailovercriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailoverCriteria" + }, + "Id": { + "markdownDescription": "The origin group's ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "Members": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroupMembers", + "markdownDescription": "A complex type that contains information about the origins in an origin group\\. \n*Required*: Yes \n*Type*: [OriginGroupMembers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupmembers.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Members" + } + }, + "required": [ + "FailoverCriteria", + "Id", + "Members" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.OriginGroupFailoverCriteria": { + "additionalProperties": false, + "properties": { + "StatusCodes": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.StatusCodes", + "markdownDescription": "The status codes that, when returned from the primary origin, will trigger CloudFront to failover to the second origin\\. \n*Required*: Yes \n*Type*: [StatusCodes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-statuscodes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusCodes" + } + }, + "required": [ + "StatusCodes" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.OriginGroupMember": { + "additionalProperties": false, + "properties": { + "OriginId": { + "markdownDescription": "The ID for an origin in an origin group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginId", + "type": "string" + } + }, + "required": [ + "OriginId" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.OriginGroupMembers": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroupMember" + }, + "markdownDescription": "Items \\(origins\\) in an origin group\\. \n*Required*: Yes \n*Type*: List of [OriginGroupMember](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupmember.html) \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Items", + "type": "array" + }, + "Quantity": { + "markdownDescription": "The number of origins in an origin group\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Quantity", + "type": "number" + } + }, + "required": [ + "Items", + "Quantity" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.OriginGroups": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroup" + }, + "markdownDescription": "The items \\(origin groups\\) in a distribution\\. \n*Required*: No \n*Type*: List of [OriginGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Items", + "type": "array" + }, + "Quantity": { + "markdownDescription": "The number of origin groups\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Quantity", + "type": "number" + } + }, + "required": [ + "Quantity" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.OriginShield": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "A flag that specifies whether Origin Shield is enabled\\. \nWhen it\u2019s enabled, CloudFront routes all requests through Origin Shield, which can help protect your origin\\. When it\u2019s disabled, CloudFront might send requests directly to your origin from multiple edge locations or regional edge caches\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "OriginShieldRegion": { + "markdownDescription": "The AWS Region for Origin Shield\\. \nSpecify the AWS Region that has the lowest latency to your origin\\. To specify a region, use the region code, not the region name\\. For example, specify the US East \\(Ohio\\) region as `us-east-2`\\. \nWhen you enable CloudFront Origin Shield, you must specify the AWS Region for Origin Shield\\. For the list of AWS Regions that you can specify, and for help choosing the best Region for your origin, see [Choosing the AWS Region for Origin Shield](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html#choose-origin-shield-region) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `[a-z]{2}-[a-z]+-\\d` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginShieldRegion", + "type": "string" + } + }, + "type": "object" + }, + "AWS::CloudFront::Distribution.Restrictions": { + "additionalProperties": false, + "properties": { + "GeoRestriction": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.GeoRestriction", + "markdownDescription": "A complex type that controls the countries in which your content is distributed\\. CloudFront determines the location of your users using `MaxMind` GeoIP databases\\. To disable geo restriction, remove the [Restrictions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-restrictions) property from your stack template\\. \n*Required*: Yes \n*Type*: [GeoRestriction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-georestriction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GeoRestriction" + } + }, + "required": [ + "GeoRestriction" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.S3OriginConfig": { + "additionalProperties": false, + "properties": { + "OriginAccessIdentity": { + "markdownDescription": "The CloudFront origin access identity to associate with the origin\\. Use an origin access identity to configure the origin so that viewers can *only* access objects in an Amazon S3 bucket through CloudFront\\. The format of the value is: \norigin\\-access\\-identity/cloudfront/*ID\\-of\\-origin\\-access\\-identity* \nwhere ` ID-of-origin-access-identity ` is the value that CloudFront returned in the `ID` element when you created the origin access identity\\. \nIf you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty `OriginAccessIdentity` element\\. \nTo delete the origin access identity from an existing distribution, update the distribution configuration and include an empty `OriginAccessIdentity` element\\. \nTo replace the origin access identity, update the distribution configuration and specify the new origin access identity\\. \nFor more information about the origin access identity, see [Serving Private Content through CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginAccessIdentity", + "type": "string" + } + }, + "type": "object" + }, + "AWS::CloudFront::Distribution.StatusCodes": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "number" + }, + "markdownDescription": "The items \\(status codes\\) for an origin group\\. \n*Required*: Yes \n*Type*: List of Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Items", + "type": "array" + }, + "Quantity": { + "markdownDescription": "The number of status codes\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Quantity", + "type": "number" + } + }, + "required": [ + "Items", + "Quantity" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.ViewerCertificate": { + "additionalProperties": false, + "properties": { + "AcmCertificateArn": { + "markdownDescription": "In CloudFormation, this field name is `AcmCertificateArn`\\. Note the different capitalization\\.\nIf the distribution uses `Aliases` \\(alternate domain names or CNAMEs\\) and the SSL/TLS certificate is stored in [AWS Certificate Manager \\(ACM\\)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html), provide the Amazon Resource Name \\(ARN\\) of the ACM certificate\\. CloudFront only supports ACM certificates in the US East \\(N\\. Virginia\\) Region \\(`us-east-1`\\)\\. \nIf you specify an ACM certificate ARN, you must also specify values for `MinimumProtocolVersion` and `SSLSupportMethod`\\. \\(In CloudFormation, the field name is `SslSupportMethod`\\. Note the different capitalization\\.\\) \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcmCertificateArn", + "type": "string" + }, + "CloudFrontDefaultCertificate": { + "markdownDescription": "If the distribution uses the CloudFront domain name such as `d111111abcdef8.cloudfront.net`, set this field to `true`\\. \nIf the distribution uses `Aliases` \\(alternate domain names or CNAMEs\\), set this field to `false` and specify values for the following fields: \n+ `ACMCertificateArn` or `IAMCertificateId` \\(specify a value for one, not both\\)", + "title": "CloudFrontDefaultCertificate", + "type": "boolean" + }, + "IamCertificateId": { + "markdownDescription": "In CloudFormation, this field name is `IamCertificateId`\\. Note the different capitalization\\.\nIf the distribution uses `Aliases` \\(alternate domain names or CNAMEs\\) and the SSL/TLS certificate is stored in [AWS Identity and Access Management \\(IAM\\)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html), provide the ID of the IAM certificate\\. \nIf you specify an IAM certificate ID, you must also specify values for `MinimumProtocolVersion` and `SSLSupportMethod`\\. \\(In CloudFormation, the field name is `SslSupportMethod`\\. Note the different capitalization\\.\\) \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamCertificateId", + "type": "string" + }, + "MinimumProtocolVersion": { + "markdownDescription": "If the distribution uses `Aliases` \\(alternate domain names or CNAMEs\\), specify the security policy that you want CloudFront to use for HTTPS connections with viewers\\. The security policy determines two settings: \n+ The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers\\.\n+ The ciphers that CloudFront can use to encrypt the content that it returns to viewers\\.\nFor more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*\\. \nOn the CloudFront console, this setting is called **Security Policy**\\.\nWhen you\u2019re using SNI only \\(you set `SSLSupportMethod` to `sni-only`\\), you must specify `TLSv1` or higher\\. \\(In CloudFormation, the field name is `SslSupportMethod`\\. Note the different capitalization\\.\\) \nIf the distribution uses the CloudFront domain name such as `d111111abcdef8.cloudfront.net` \\(you set `CloudFrontDefaultCertificate` to `true`\\), CloudFront automatically sets the security policy to `TLSv1` regardless of the value that you set here\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `SSLv3 | TLSv1 | TLSv1.1_2016 | TLSv1.2_2018 | TLSv1.2_2019 | TLSv1.2_2021 | TLSv1_2016` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinimumProtocolVersion", + "type": "string" + }, + "SslSupportMethod": { + "markdownDescription": "In CloudFormation, this field name is `SslSupportMethod`\\. Note the different capitalization\\.\nIf the distribution uses `Aliases` \\(alternate domain names or CNAMEs\\), specify which viewers the distribution accepts HTTPS connections from\\. \n+ `sni-only` \u2013 The distribution accepts HTTPS connections from only viewers that support [server name indication \\(SNI\\)](https://en.wikipedia.org/wiki/Server_Name_Indication)\\. This is recommended\\. Most browsers and clients support SNI\\.\n+ `vip` \u2013 The distribution accepts HTTPS connections from all viewers including those that don\u2019t support SNI\\. This is not recommended, and results in additional monthly charges from CloudFront\\.\n+ `static-ip` \\- Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team\\. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [AWS Support Center](https://console.aws.amazon.com/support/home)\\.\nIf the distribution uses the CloudFront domain name such as `d111111abcdef8.cloudfront.net`, don\u2019t set a value for this field\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `sni-only | static-ip | vip` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A flag that determines whether to automatically publish the function to the `LIVE` stage when it\u2019s created\\. To automatically publish to the `LIVE` stage, set this property to `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoPublish", + "type": "boolean" + }, + "FunctionCode": { + "markdownDescription": "The function code\\. For more information about writing a CloudFront function, see [Writing function code for CloudFront Functions](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/writing-function-code.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FunctionCode", + "type": "string" + }, + "FunctionConfig": { + "$ref": "#/definitions/AWS::CloudFront::Function.FunctionConfig", + "markdownDescription": "Contains configuration information about a CloudFront function\\. \n*Required*: No \n*Type*: [FunctionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-function-functionconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FunctionConfig" + }, + "FunctionMetadata": { + "$ref": "#/definitions/AWS::CloudFront::Function.FunctionMetadata" + }, + "Name": { + "markdownDescription": "A name to identify the function\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9-_]{1,64}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "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": { + "markdownDescription": "A comment to describe the function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", + "type": "string" + }, + "Runtime": { + "markdownDescription": "The function\u2019s runtime environment\\. The only valid value is `cloudfront-js-1.0`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `cloudfront-js-1.0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Runtime", + "type": "string" + } + }, + "required": [ + "Comment", + "Runtime" + ], + "type": "object" + }, + "AWS::CloudFront::Function.FunctionMetadata": { + "additionalProperties": false, + "properties": { + "FunctionARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the function\\. The ARN uniquely identifies the function\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The key group configuration\\. \n*Required*: Yes \n*Type*: [KeyGroupConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-keygroup-keygroupconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A comment to describe the key group\\. The comment cannot be longer than 128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", + "type": "string" + }, + "Items": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of the identifiers of the public keys in the key group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Items", + "type": "array" + }, + "Name": { + "markdownDescription": "A name to identify the key group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The origin request policy configuration\\. \n*Required*: Yes \n*Type*: [OriginRequestPolicyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-originrequestpolicyconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Determines whether cookies in viewer requests are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Cookies in viewer requests are not included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any cookies that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The cookies in viewer requests that are listed in the `CookieNames` type are included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All cookies in viewer requests are included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CookieBehavior", + "type": "string" + }, + "Cookies": { + "items": { + "type": "string" + }, + "markdownDescription": "Contains a list of cookie names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cookies", + "type": "array" + } + }, + "required": [ + "CookieBehavior" + ], + "type": "object" + }, + "AWS::CloudFront::OriginRequestPolicy.HeadersConfig": { + "additionalProperties": false, + "properties": { + "HeaderBehavior": { + "markdownDescription": "Determines whether any HTTP headers are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 HTTP headers are not included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any headers that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The HTTP headers that are listed in the `Headers` type are included in requests that CloudFront sends to the origin\\.\n+ `allViewer` \u2013 All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin\\.\n+ `allViewerAndWhitelistCloudFront` \u2013 All HTTP headers in viewer requests and the additional CloudFront headers that are listed in the `Headers` type are included in requests that CloudFront sends to the origin\\. The additional headers are added by CloudFront\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `allViewer | allViewerAndWhitelistCloudFront | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderBehavior", + "type": "string" + }, + "Headers": { + "items": { + "type": "string" + }, + "markdownDescription": "Contains a list of HTTP header names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Headers", + "type": "array" + } + }, + "required": [ + "HeaderBehavior" + ], + "type": "object" + }, + "AWS::CloudFront::OriginRequestPolicy.OriginRequestPolicyConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "markdownDescription": "A comment to describe the origin request policy\\. The comment cannot be longer than 128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", + "type": "string" + }, + "CookiesConfig": { + "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy.CookiesConfig", + "markdownDescription": "The cookies from viewer requests to include in origin requests\\. \n*Required*: Yes \n*Type*: [CookiesConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-cookiesconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CookiesConfig" + }, + "HeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy.HeadersConfig", + "markdownDescription": "The HTTP headers to include in origin requests\\. These can include headers from viewer requests and additional headers added by CloudFront\\. \n*Required*: Yes \n*Type*: [HeadersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-headersconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeadersConfig" + }, + "Name": { + "markdownDescription": "A unique name to identify the origin request policy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "QueryStringsConfig": { + "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy.QueryStringsConfig", + "markdownDescription": "The URL query strings from viewer requests to include in origin requests\\. \n*Required*: Yes \n*Type*: [QueryStringsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-querystringsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryStringsConfig" + } + }, + "required": [ + "CookiesConfig", + "HeadersConfig", + "Name", + "QueryStringsConfig" + ], + "type": "object" + }, + "AWS::CloudFront::OriginRequestPolicy.QueryStringsConfig": { + "additionalProperties": false, + "properties": { + "QueryStringBehavior": { + "markdownDescription": "Determines whether any URL query strings in viewer requests are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Query strings in viewer requests are not included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any query strings that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The query strings in viewer requests that are listed in the `QueryStringNames` type are included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All query strings in viewer requests are included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryStringBehavior", + "type": "string" + }, + "QueryStrings": { + "items": { + "type": "string" + }, + "markdownDescription": "Contains a list of query string names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryStrings", + "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", + "markdownDescription": "Configuration information about a public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field\\-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html)\\. \n*Required*: Yes \n*Type*: [PublicKeyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-publickey-publickeyconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A string included in the request to help make sure that the request can\u2019t be replayed\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CallerReference", + "type": "string" + }, + "Comment": { + "markdownDescription": "A comment to describe the public key\\. The comment cannot be longer than 128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", + "type": "string" + }, + "EncodedKey": { + "markdownDescription": "The public key that you can use with [signed URLs and signed cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html), or with [field\\-level encryption](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncodedKey", + "type": "string" + }, + "Name": { + "markdownDescription": "A name to help identify the public key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "Contains information about the Amazon Kinesis data stream where you are sending real\\-time log data for this real\\-time log configuration\\. \n*Required*: Yes \n*Type*: List of [EndPoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-realtimelogconfig-endpoint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndPoints", + "type": "array" + }, + "Fields": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of fields that are included in each real\\-time log record\\. In an API response, the fields are provided in the same order in which they are sent to the Amazon Kinesis data stream\\. \nFor more information about fields, see [Real\\-time log configuration fields](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-fields) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Fields", + "type": "array" + }, + "Name": { + "markdownDescription": "The unique name of this real\\-time log configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "SamplingRate": { + "markdownDescription": "The sampling rate for this real\\-time log configuration\\. The sampling rate determines the percentage of viewer requests that are represented in the real\\-time log data\\. The sampling rate is an integer between 1 and 100, inclusive\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Contains information about the Amazon Kinesis data stream where you are sending real\\-time log data\\. \n*Required*: Yes \n*Type*: [KinesisStreamConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-realtimelogconfig-kinesisstreamconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KinesisStreamConfig" + }, + "StreamType": { + "markdownDescription": "The type of data stream where you are sending real\\-time log data\\. The only valid value is `Kinesis`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamType", + "type": "string" + } + }, + "required": [ + "KinesisStreamConfig", + "StreamType" + ], + "type": "object" + }, + "AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS Identity and Access Management \\(IAM\\) role that CloudFront can use to send real\\-time log data to your Kinesis data stream\\. \nFor more information the IAM role, see [Real\\-time log configuration IAM role](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html#understand-real-time-log-config-iam-role) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "StreamArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Kinesis data stream where you are sending real\\-time log data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "A response headers policy configuration\\. \nA response headers policy contains information about a set of HTTP response headers and their values\\. CloudFront adds the headers in the policy to HTTP responses that it sends for requests that match a cache behavior that\u2019s associated with the policy\\. \n*Required*: Yes \n*Type*: [ResponseHeadersPolicyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The list of HTTP header names\\. You can specify `*` to allow all headers\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Items", + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowMethods": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of HTTP methods\\. Valid values are: \n+ `GET` \n+ `DELETE` \n+ `HEAD` \n+ `OPTIONS` \n+ `PATCH` \n+ `POST` \n+ `PUT` \n+ `ALL` \n `ALL` is a special value that includes all of the listed HTTP methods\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Items", + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowOrigins": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of origins \\(domain names\\)\\. You can specify `*` to allow all origins\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Items", + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlExposeHeaders": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of HTTP headers\\. You can specify `*` to expose all headers\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Items", + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ContentSecurityPolicy": { + "additionalProperties": false, + "properties": { + "ContentSecurityPolicy": { + "markdownDescription": "The policy directives and their values that CloudFront includes as values for the `Content-Security-Policy` HTTP response header\\. \n*Required*: Yes \n*Type*: [String](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-cloudfront-responseheaderspolicy-contentsecuritypolicy.html#aws-properties-cloudfront-responseheaderspolicy-contentsecuritypolicy) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentSecurityPolicy", + "type": "string" + }, + "Override": { + "markdownDescription": "A Boolean that determines whether CloudFront overrides the `Content-Security-Policy` HTTP response header received from the origin with the one specified in this response headers policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Override", + "type": "boolean" + } + }, + "required": [ + "ContentSecurityPolicy", + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ContentTypeOptions": { + "additionalProperties": false, + "properties": { + "Override": { + "markdownDescription": "A Boolean that determines whether CloudFront overrides the `X-Content-Type-Options` HTTP response header received from the origin with the one specified in this response headers policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Override", + "type": "boolean" + } + }, + "required": [ + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.CorsConfig": { + "additionalProperties": false, + "properties": { + "AccessControlAllowCredentials": { + "markdownDescription": "A Boolean that CloudFront uses as the value for the `Access-Control-Allow-Credentials` HTTP response header\\. \nFor more information about the `Access-Control-Allow-Credentials` HTTP response header, see [Access\\-Control\\-Allow\\-Credentials](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials) in the MDN Web Docs\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessControlAllowCredentials", + "type": "boolean" + }, + "AccessControlAllowHeaders": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowHeaders", + "markdownDescription": "A list of HTTP header names that CloudFront includes as values for the `Access-Control-Allow-Headers` HTTP response header\\. \nFor more information about the `Access-Control-Allow-Headers` HTTP response header, see [Access\\-Control\\-Allow\\-Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers) in the MDN Web Docs\\. \n*Required*: Yes \n*Type*: [AccessControlAllowHeaders](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolallowheaders.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessControlAllowHeaders" + }, + "AccessControlAllowMethods": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowMethods", + "markdownDescription": "A list of HTTP methods that CloudFront includes as values for the `Access-Control-Allow-Methods` HTTP response header\\. \nFor more information about the `Access-Control-Allow-Methods` HTTP response header, see [Access\\-Control\\-Allow\\-Methods](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods) in the MDN Web Docs\\. \n*Required*: Yes \n*Type*: [AccessControlAllowMethods](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolallowmethods.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessControlAllowMethods" + }, + "AccessControlAllowOrigins": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowOrigins", + "markdownDescription": "A list of origins \\(domain names\\) that CloudFront can use as the value for the `Access-Control-Allow-Origin` HTTP response header\\. \nFor more information about the `Access-Control-Allow-Origin` HTTP response header, see [Access\\-Control\\-Allow\\-Origin](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin) in the MDN Web Docs\\. \n*Required*: Yes \n*Type*: [AccessControlAllowOrigins](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolalloworigins.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessControlAllowOrigins" + }, + "AccessControlExposeHeaders": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlExposeHeaders", + "markdownDescription": "A list of HTTP headers that CloudFront includes as values for the `Access-Control-Expose-Headers` HTTP response header\\. \nFor more information about the `Access-Control-Expose-Headers` HTTP response header, see [Access\\-Control\\-Expose\\-Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers) in the MDN Web Docs\\. \n*Required*: No \n*Type*: [AccessControlExposeHeaders](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolexposeheaders.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessControlExposeHeaders" + }, + "AccessControlMaxAgeSec": { + "markdownDescription": "A number that CloudFront uses as the value for the `Access-Control-Max-Age` HTTP response header\\. \nFor more information about the `Access-Control-Max-Age` HTTP response header, see [Access\\-Control\\-Max\\-Age](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age) in the MDN Web Docs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessControlMaxAgeSec", + "type": "number" + }, + "OriginOverride": { + "markdownDescription": "A Boolean that determines whether CloudFront overrides HTTP response headers received from the origin with the ones specified in this response headers policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginOverride", + "type": "boolean" + } + }, + "required": [ + "AccessControlAllowCredentials", + "AccessControlAllowHeaders", + "AccessControlAllowMethods", + "AccessControlAllowOrigins", + "OriginOverride" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.CustomHeader": { + "additionalProperties": false, + "properties": { + "Header": { + "markdownDescription": "The HTTP response header name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Header", + "type": "string" + }, + "Override": { + "markdownDescription": "A Boolean that determines whether CloudFront overrides a response header with the same name received from the origin with the header specified here\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Override", + "type": "boolean" + }, + "Value": { + "markdownDescription": "The value for the HTTP response header\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Header", + "Override", + "Value" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.CustomHeadersConfig": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CustomHeader" + }, + "markdownDescription": "The list of HTTP response headers and their values\\. \n*Required*: Yes \n*Type*: List of [CustomHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-customheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Items", + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.FrameOptions": { + "additionalProperties": false, + "properties": { + "FrameOption": { + "markdownDescription": "The value of the `X-Frame-Options` HTTP response header\\. Valid values are `DENY` and `SAMEORIGIN`\\. \nFor more information about these values, see [X\\-Frame\\-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options) in the MDN Web Docs\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DENY | SAMEORIGIN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameOption", + "type": "string" + }, + "Override": { + "markdownDescription": "A Boolean that determines whether CloudFront overrides the `X-Frame-Options` HTTP response header received from the origin with the one specified in this response headers policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Override", + "type": "boolean" + } + }, + "required": [ + "FrameOption", + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ReferrerPolicy": { + "additionalProperties": false, + "properties": { + "Override": { + "markdownDescription": "A Boolean that determines whether CloudFront overrides the `Referrer-Policy` HTTP response header received from the origin with the one specified in this response headers policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Override", + "type": "boolean" + }, + "ReferrerPolicy": { + "markdownDescription": "The value of the `Referrer-Policy` HTTP response header\\. Valid values are: \n+ `no-referrer` \n+ `no-referrer-when-downgrade` \n+ `origin` \n+ `origin-when-cross-origin` \n+ `same-origin` \n+ `strict-origin` \n+ `strict-origin-when-cross-origin` \n+ `unsafe-url` \nFor more information about these values, see [Referrer\\-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy) in the MDN Web Docs\\. \n*Required*: Yes \n*Type*: [String](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-cloudfront-responseheaderspolicy-referrerpolicy.html#aws-properties-cloudfront-responseheaderspolicy-referrerpolicy) \n*Allowed values*: `no-referrer | no-referrer-when-downgrade | origin | origin-when-cross-origin | same-origin | strict-origin | strict-origin-when-cross-origin | unsafe-url` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A comment to describe the response headers policy\\. \nThe comment cannot be longer than 128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", + "type": "string" + }, + "CorsConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CorsConfig", + "markdownDescription": "A configuration for a set of HTTP response headers that are used for cross\\-origin resource sharing \\(CORS\\)\\. \n*Required*: No \n*Type*: [CorsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-corsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CorsConfig" + }, + "CustomHeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CustomHeadersConfig", + "markdownDescription": "A configuration for a set of custom HTTP response headers\\. \n*Required*: No \n*Type*: [CustomHeadersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-customheadersconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomHeadersConfig" + }, + "Name": { + "markdownDescription": "A name to identify the response headers policy\\. \nThe name must be unique for response headers policies in this AWS account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "RemoveHeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.RemoveHeadersConfig" + }, + "SecurityHeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig", + "markdownDescription": "A configuration for a set of security\\-related HTTP response headers\\. \n*Required*: No \n*Type*: [SecurityHeadersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-securityheadersconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The policy directives and their values that CloudFront includes as values for the `Content-Security-Policy` HTTP response header\\. \nFor more information about the `Content-Security-Policy` HTTP response header, see [Content\\-Security\\-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy) in the MDN Web Docs\\. \n*Required*: No \n*Type*: [ContentSecurityPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-contentsecuritypolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentSecurityPolicy" + }, + "ContentTypeOptions": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ContentTypeOptions", + "markdownDescription": "Determines whether CloudFront includes the `X-Content-Type-Options` HTTP response header with its value set to `nosniff`\\. \nFor more information about the `X-Content-Type-Options` HTTP response header, see [X\\-Content\\-Type\\-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options) in the MDN Web Docs\\. \n*Required*: No \n*Type*: [ContentTypeOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-contenttypeoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentTypeOptions" + }, + "FrameOptions": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.FrameOptions", + "markdownDescription": "Determines whether CloudFront includes the `X-Frame-Options` HTTP response header and the header\u2019s value\\. \nFor more information about the `X-Frame-Options` HTTP response header, see [X\\-Frame\\-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options) in the MDN Web Docs\\. \n*Required*: No \n*Type*: [FrameOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-frameoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameOptions" + }, + "ReferrerPolicy": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ReferrerPolicy", + "markdownDescription": "Determines whether CloudFront includes the `Referrer-Policy` HTTP response header and the header\u2019s value\\. \nFor more information about the `Referrer-Policy` HTTP response header, see [Referrer\\-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy) in the MDN Web Docs\\. \n*Required*: No \n*Type*: [ReferrerPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-referrerpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReferrerPolicy" + }, + "StrictTransportSecurity": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity", + "markdownDescription": "Determines whether CloudFront includes the `Strict-Transport-Security` HTTP response header and the header\u2019s value\\. \nFor more information about the `Strict-Transport-Security` HTTP response header, see [Strict\\-Transport\\-Security](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security) in the MDN Web Docs\\. \n*Required*: No \n*Type*: [StrictTransportSecurity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-stricttransportsecurity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StrictTransportSecurity" + }, + "XSSProtection": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.XSSProtection", + "markdownDescription": "Determines whether CloudFront includes the `X-XSS-Protection` HTTP response header and the header\u2019s value\\. \nFor more information about the `X-XSS-Protection` HTTP response header, see [X\\-XSS\\-Protection](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection) in the MDN Web Docs\\. \n*Required*: No \n*Type*: [XSSProtection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-xssprotection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A number that CloudFront uses as the value for the `max-age` directive in the `Strict-Transport-Security` HTTP response header\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessControlMaxAgeSec", + "type": "number" + }, + "IncludeSubdomains": { + "markdownDescription": "A Boolean that determines whether CloudFront includes the `includeSubDomains` directive in the `Strict-Transport-Security` HTTP response header\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeSubdomains", + "type": "boolean" + }, + "Override": { + "markdownDescription": "A Boolean that determines whether CloudFront overrides the `Strict-Transport-Security` HTTP response header received from the origin with the one specified in this response headers policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Override", + "type": "boolean" + }, + "Preload": { + "markdownDescription": "A Boolean that determines whether CloudFront includes the `preload` directive in the `Strict-Transport-Security` HTTP response header\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Preload", + "type": "boolean" + } + }, + "required": [ + "AccessControlMaxAgeSec", + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.XSSProtection": { + "additionalProperties": false, + "properties": { + "ModeBlock": { + "markdownDescription": "A Boolean that determines whether CloudFront includes the `mode=block` directive in the `X-XSS-Protection` header\\. \nFor more information about this directive, see [X\\-XSS\\-Protection](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection) in the MDN Web Docs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ModeBlock", + "type": "boolean" + }, + "Override": { + "markdownDescription": "A Boolean that determines whether CloudFront overrides the `X-XSS-Protection` HTTP response header received from the origin with the one specified in this response headers policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Override", + "type": "boolean" + }, + "Protection": { + "markdownDescription": "A Boolean that determines the value of the `X-XSS-Protection` HTTP response header\\. When this setting is `true`, the value of the `X-XSS-Protection` header is `1`\\. When this setting is `false`, the value of the `X-XSS-Protection` header is `0`\\. \nFor more information about these settings, see [X\\-XSS\\-Protection](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection) in the MDN Web Docs\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protection", + "type": "boolean" + }, + "ReportUri": { + "markdownDescription": "A reporting URI, which CloudFront uses as the value of the `report` directive in the `X-XSS-Protection` header\\. \nYou cannot specify a `ReportUri` when `ModeBlock` is `true`\\. \nFor more information about using a reporting URL, see [X\\-XSS\\-Protection](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection) in the MDN Web Docs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The current configuration information for the RTMP distribution\\. \n*Required*: Yes \n*Type*: [StreamingDistributionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamingDistributionConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A complex type that contains zero or more `Tag` elements\\. \n*Required*: Yes \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The Amazon S3 bucket to store the access logs in, for example, `myawslogbucket.s3.amazonaws.com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket\\. If you don't want to enable logging when you create a streaming distribution or if you want to disable logging for an existing streaming distribution, specify `false` for `Enabled`, and specify `empty Bucket` and `Prefix` elements\\. If you specify `false` for `Enabled` but you specify values for `Bucket` and `Prefix`, the values are automatically deleted\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "Prefix": { + "markdownDescription": "An optional string that you want CloudFront to prefix to the access log filenames for this streaming distribution, for example, `myprefix/`\\. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty `Prefix` element in the `Logging` element\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", + "type": "string" + } + }, + "required": [ + "Bucket", + "Enabled", + "Prefix" + ], + "type": "object" + }, + "AWS::CloudFront::StreamingDistribution.S3Origin": { + "additionalProperties": false, + "properties": { + "DomainName": { + "markdownDescription": "The DNS name of the Amazon S3 origin\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainName", + "type": "string" + }, + "OriginAccessIdentity": { + "markdownDescription": "The CloudFront origin access identity to associate with the distribution\\. Use an origin access identity to configure the distribution so that end users can only access objects in an Amazon S3 bucket through CloudFront\\. \nIf you want end users to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty `OriginAccessIdentity` element\\. \nTo delete the origin access identity from an existing distribution, update the distribution configuration and include an empty `OriginAccessIdentity` element\\. \nTo replace the origin access identity, update the distribution configuration and specify the new origin access identity\\. \nFor more information, see [Using an Origin Access Identity to Restrict Access to Your Amazon S3 Content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) in the * Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginAccessIdentity", + "type": "string" + } + }, + "required": [ + "DomainName", + "OriginAccessIdentity" + ], + "type": "object" + }, + "AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig": { + "additionalProperties": false, + "properties": { + "Aliases": { + "items": { + "type": "string" + }, + "markdownDescription": "A complex type that contains information about CNAMEs \\(alternate domain names\\), if any, for this streaming distribution\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Aliases", + "type": "array" + }, + "Comment": { + "markdownDescription": "Any comments you want to include about the streaming distribution\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Whether the streaming distribution is enabled to accept user requests for content\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "Logging": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.Logging", + "markdownDescription": "A complex type that controls whether access logs are written for the streaming distribution\\. \n*Required*: No \n*Type*: [Logging](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-logging.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Logging" + }, + "PriceClass": { + "markdownDescription": "A complex type that contains information about price class for this streaming distribution\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PriceClass_100 | PriceClass_200 | PriceClass_All` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PriceClass", + "type": "string" + }, + "S3Origin": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.S3Origin", + "markdownDescription": "A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution\\. \n*Required*: Yes \n*Type*: [S3Origin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-s3origin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Origin" + }, + "TrustedSigners": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.TrustedSigners", + "markdownDescription": "A complex type that specifies any AWS accounts that you want to permit to create signed URLs for private content\\. If you want the distribution to use signed URLs, include this element; if you want the distribution to use public URLs, remove this element\\. For more information, see [Serving Private Content through CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: [TrustedSigners](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-trustedsigners.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrustedSigners" + } + }, + "required": [ + "Comment", + "Enabled", + "S3Origin", + "TrustedSigners" + ], + "type": "object" + }, + "AWS::CloudFront::StreamingDistribution.TrustedSigners": { + "additionalProperties": false, + "properties": { + "AwsAccountNumbers": { + "items": { + "type": "string" + }, + "markdownDescription": "An AWS account number that contains active CloudFront key pairs that CloudFront can use to verify the signatures of signed URLs and signed cookies\\. If the AWS account that owns the key pairs is the same account that owns the CloudFront distribution, the value of this field is `self`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsAccountNumbers", + "type": "array" + }, + "Enabled": { + "markdownDescription": "This field is `true` if any of the AWS accounts have public keys that CloudFront can use to verify the signatures of signed URLs and signed cookies\\. If not, this field is `false`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::CloudTrail::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": { + "Destinations": { + "items": { + "$ref": "#/definitions/AWS::CloudTrail::Channel.Destination" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Source": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudTrail::Channel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudTrail::Channel.Destination": { + "additionalProperties": false, + "properties": { + "Location": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Location", + "Type" + ], + "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::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": { + "ResourceArn": { + "type": "string" + }, + "ResourcePolicy": { + "type": "object" + } + }, + "required": [ + "ResourceArn", + "ResourcePolicy" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudTrail::ResourcePolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "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": { + "markdownDescription": "Specifies a log group name using an Amazon Resource Name \\(ARN\\), a unique identifier that represents the log group to which CloudTrail logs are delivered\\. Not required unless you specify `CloudWatchLogsRoleArn`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogsLogGroupArn", + "type": "string" + }, + "CloudWatchLogsRoleArn": { + "markdownDescription": "Specifies the role for the CloudWatch Logs endpoint to assume to write to a user's log group\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogsRoleArn", + "type": "string" + }, + "EnableLogFileValidation": { + "markdownDescription": "Specifies whether log file validation is enabled\\. The default is false\\. \nWhen you disable log file integrity validation, the chain of digest files is broken after one hour\\. CloudTrail does not create digest files for log files that were delivered during a period in which log file integrity validation was disabled\\. For example, if you enable log file integrity validation at noon on January 1, disable it at noon on January 2, and re\\-enable it at noon on January 10, digest files will not be created for the log files delivered from noon on January 2 to noon on January 10\\. The same applies whenever you stop CloudTrail logging or delete a trail\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableLogFileValidation", + "type": "boolean" + }, + "EventSelectors": { + "items": { + "$ref": "#/definitions/AWS::CloudTrail::Trail.EventSelector" + }, + "markdownDescription": "Use event selectors to further specify the management and data event settings for your trail\\. By default, trails created without specific event selectors will be configured to log all read and write management events, and no data events\\. When an event occurs in your account, CloudTrail evaluates the event selector for all trails\\. For each trail, if the event matches any event selector, the trail processes and logs the event\\. If the event doesn't match any event selector, the trail doesn't log the event\\. \nYou can configure up to five event selectors for a trail\\. \nYou cannot apply both event selectors and advanced event selectors to a trail\\. \n*Required*: No \n*Type*: List of [EventSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-eventselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventSelectors", + "type": "array" + }, + "IncludeGlobalServiceEvents": { + "markdownDescription": "Specifies whether the trail is publishing events from global services such as IAM to the log files\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeGlobalServiceEvents", + "type": "boolean" + }, + "InsightSelectors": { + "items": { + "$ref": "#/definitions/AWS::CloudTrail::Trail.InsightSelector" + }, + "markdownDescription": "Specifies whether a trail has insight types specified in an `InsightSelector` list\\. \n*Required*: No \n*Type*: List of [InsightSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-insightselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InsightSelectors", + "type": "array" + }, + "IsLogging": { + "markdownDescription": "Whether the CloudTrail trail is currently logging AWS API calls\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsLogging", + "type": "boolean" + }, + "IsMultiRegionTrail": { + "markdownDescription": "Specifies whether the trail applies only to the current region or to all regions\\. The default is false\\. If the trail exists only in the current region and this value is set to true, shadow trails \\(replications of the trail\\) will be created in the other regions\\. If the trail exists in all regions and this value is set to false, the trail will remain in the region where it was created, and its shadow trails in other regions will be deleted\\. As a best practice, consider using trails that log events in all regions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsMultiRegionTrail", + "type": "boolean" + }, + "IsOrganizationTrail": { + "markdownDescription": "Specifies whether the trail is created for all accounts in an organization in AWS Organizations, or only for the current AWS account\\. The default is false, and cannot be true unless the call is made on behalf of an AWS account that is the management account for an organization in AWS Organizations\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsOrganizationTrail", + "type": "boolean" + }, + "KMSKeyId": { + "markdownDescription": "Specifies the AWS KMS key ID to use to encrypt the logs delivered by CloudTrail\\. The value can be an alias name prefixed by \"alias/\", a fully specified ARN to an alias, a fully specified ARN to a key, or a globally unique identifier\\. \nCloudTrail also supports AWS KMS multi\\-Region keys\\. For more information about multi\\-Region keys, see [Using multi\\-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in the * AWS Key Management Service Developer Guide*\\. \nExamples: \n+ alias/MyAliasName\n+ arn:aws:kms:us\\-east\\-2:123456789012:alias/MyAliasName\n+ arn:aws:kms:us\\-east\\-2:123456789012:key/12345678\\-1234\\-1234\\-1234\\-123456789012\n+ 12345678\\-1234\\-1234\\-1234\\-123456789012\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KMSKeyId", + "type": "string" + }, + "S3BucketName": { + "markdownDescription": "Specifies the name of the Amazon S3 bucket designated for publishing log files\\. See [Amazon S3 Bucket Naming Requirements](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/create_trail_naming_policy.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketName", + "type": "string" + }, + "S3KeyPrefix": { + "markdownDescription": "Specifies the Amazon S3 key prefix that comes after the name of the bucket you have designated for log file delivery\\. For more information, see [Finding Your CloudTrail Log Files](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html)\\. The maximum length is 200 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3KeyPrefix", + "type": "string" + }, + "SnsTopicName": { + "markdownDescription": "Specifies the name of the Amazon SNS topic defined for notification of log file delivery\\. The maximum length is 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsTopicName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A custom set of tags \\(key\\-value pairs\\) for this trail\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TrailName": { + "markdownDescription": "Specifies the name of the trail\\. The name must meet the following requirements: \n+ Contain only ASCII letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), periods \\(\\.\\), underscores \\(\\_\\), or dashes \\(\\-\\)\n+ Start with a letter or number, and end with a letter or number\n+ Be between 3 and 128 characters\n+ Have no adjacent periods, underscores or dashes\\. Names like `my-_namespace` and `my--namespace` are not valid\\.\n+ Not be in IP address format \\(for example, 192\\.168\\.5\\.4\\)\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The resource type in which you want to log data events\\. You can specify the following *basic* event selector resource types: \n+ `AWS::S3::Object` \n+ `AWS::Lambda::Function` \n+ `AWS::DynamoDB::Table` \nThe following resource types are also availble through *advanced* event selectors\\. Basic event selector resource types are valid in advanced event selectors, but advanced event selector resource types are not valid in basic event selectors\\. For more information, see [AdvancedFieldSelector:Field](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html#awscloudtrail-Type-AdvancedFieldSelector-Field)\\. \n+ `AWS::S3Outposts::Object` \n+ `AWS::ManagedBlockchain::Node` \n+ `AWS::S3ObjectLambda::AccessPoint` \n+ `AWS::EC2::Snapshot` \n+ `AWS::S3::AccessPoint` \n+ `AWS::DynamoDB::Stream` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of Amazon Resource Name \\(ARN\\) strings or partial ARN strings for the specified objects\\. \n+ To log data events for all objects in all S3 buckets in your AWS account, specify the prefix as `arn:aws:s3:::`\\.\n**Note** \nThis also enables logging of data event activity performed by any user or role in your AWS account, even if that activity is performed on a bucket that belongs to another AWS account\\.\n+ To log data events for all objects in an S3 bucket, specify the bucket and an empty object prefix such as `arn:aws:s3:::bucket-1/`\\. The trail logs data events for all objects in this S3 bucket\\.\n+ To log data events for specific objects, specify the S3 bucket and object prefix such as `arn:aws:s3:::bucket-1/example-images`\\. The trail logs data events for objects in this S3 bucket that match the prefix\\.\n+ To log data events for all Lambda functions in your AWS account, specify the prefix as `arn:aws:lambda`\\.\n**Note** \nThis also enables logging of `Invoke` activity performed by any user or role in your AWS account, even if that activity is performed on a function that belongs to another AWS account\\. \n+ To log data events for a specific Lambda function, specify the function ARN\\.\n**Note** \nLambda function ARNs are exact\\. For example, if you specify a function ARN *arn:aws:lambda:us\\-west\\-2:111111111111:function:helloworld*, data events will only be logged for *arn:aws:lambda:us\\-west\\-2:111111111111:function:helloworld*\\. They will not be logged for *arn:aws:lambda:us\\-west\\-2:111111111111:function:helloworld2*\\.\n+ To log data events for all DynamoDB tables in your AWS account, specify the prefix as `arn:aws:dynamodb`\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudTrail::Trail.EventSelector": { + "additionalProperties": false, + "properties": { + "DataResources": { + "items": { + "$ref": "#/definitions/AWS::CloudTrail::Trail.DataResource" + }, + "markdownDescription": "CloudTrail supports data event logging for Amazon S3 objects and AWS Lambda functions\\. You can specify up to 250 resources for an individual event selector, but the total number of data resources cannot exceed 250 across all event selectors in a trail\\. This limit does not apply if you configure resource logging for all data events\\. \nFor more information, see [Data Events](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html#logging-data-events) and [Limits in AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html) in the *AWS CloudTrail User Guide*\\. \n*Required*: Conditional \n*Type*: List of [DataResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-dataresource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataResources", + "type": "array" + }, + "ExcludeManagementEventSources": { + "items": { + "type": "string" + }, + "markdownDescription": "An optional list of service event sources from which you do not want management events to be logged on your trail\\. In this release, the list can be empty \\(disables the filter\\), or it can filter out AWS Key Management Service or Amazon RDS Data API events by containing `kms.amazonaws.com` or `rdsdata.amazonaws.com`\\. By default, `ExcludeManagementEventSources` is empty, and AWS KMS and Amazon RDS Data API events are logged to your trail\\. You can exclude management event sources only in regions that support the event source\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludeManagementEventSources", + "type": "array" + }, + "IncludeManagementEvents": { + "markdownDescription": "Specify if you want your event selector to include management events for your trail\\. \n For more information, see [Management Events](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html#logging-management-events) in the * AWS CloudTrail User Guide*\\. \nBy default, the value is `true`\\. \nThe first copy of management events is free\\. You are charged for additional copies of management events that you are logging on any subsequent trail in the same region\\. For more information about CloudTrail pricing, see [AWS CloudTrail Pricing](http://aws.amazon.com/cloudtrail/pricing/)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeManagementEvents", + "type": "boolean" + }, + "ReadWriteType": { + "markdownDescription": "Specify if you want your trail to log read\\-only events, write\\-only events, or all\\. For example, the EC2 `GetConsoleOutput` is a read\\-only API operation and `RunInstances` is a write\\-only API operation\\. \n By default, the value is `All`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `All | ReadOnly | WriteOnly` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadWriteType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::CloudTrail::Trail.InsightSelector": { + "additionalProperties": false, + "properties": { + "InsightType": { + "markdownDescription": "The type of insights to log on a trail\\. `ApiCallRateInsight` and `ApiErrorRateInsight` are valid insight types\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ApiCallRateInsight | ApiErrorRateInsight` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Indicates whether actions should be executed during any changes to the alarm state\\. The default is TRUE\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionsEnabled", + "type": "boolean" + }, + "AlarmActions": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of actions to execute when this alarm transitions into an ALARM state from any other state\\. Specify each action as an Amazon Resource Name \\(ARN\\)\\. For more information about creating alarms and the actions that you can specify, see [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html) in the *Amazon CloudWatch API Reference*\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmActions", + "type": "array" + }, + "AlarmDescription": { + "markdownDescription": "The description of the alarm\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmDescription", + "type": "string" + }, + "AlarmName": { + "markdownDescription": "The name of the alarm\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the alarm name\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AlarmName", + "type": "string" + }, + "ComparisonOperator": { + "markdownDescription": "The arithmetic operation to use when comparing the specified statistic and threshold\\. The specified statistic value is used as the first operand\\. \nYou can specify the following values: `GreaterThanThreshold`, `GreaterThanOrEqualToThreshold`, `LessThanThreshold`, or `LessThanOrEqualToThreshold`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GreaterThanOrEqualToThreshold | GreaterThanThreshold | GreaterThanUpperThreshold | LessThanLowerOrGreaterThanUpperThreshold | LessThanLowerThreshold | LessThanOrEqualToThreshold | LessThanThreshold` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComparisonOperator", + "type": "string" + }, + "DatapointsToAlarm": { + "markdownDescription": "The number of datapoints that must be breaching to trigger the alarm\\. This is used only if you are setting an \"M out of N\" alarm\\. In that case, this value is the M, and the value that you set for `EvaluationPeriods` is the N value\\. For more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *Amazon CloudWatch User Guide*\\. \nIf you omit this parameter, CloudWatch uses the same value here that you set for `EvaluationPeriods`, and the alarm goes to alarm state if that many consecutive periods are breaching\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatapointsToAlarm", + "type": "number" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.Dimension" + }, + "markdownDescription": "The dimensions for the metric associated with the alarm\\. For an alarm based on a math expression, you can't specify `Dimensions`\\. Instead, you use `Metrics`\\. \n*Required*: No \n*Type*: List of [Dimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-dimension.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", + "type": "array" + }, + "EvaluateLowSampleCountPercentile": { + "markdownDescription": "Used only for alarms based on percentiles\\. If `ignore`, the alarm state does not change during periods with too few data points to be statistically significant\\. If `evaluate` or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EvaluateLowSampleCountPercentile", + "type": "string" + }, + "EvaluationPeriods": { + "markdownDescription": "The number of periods over which data is compared to the specified threshold\\. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number\\. If you are setting an \"M out of N\" alarm, this value is the N, and `DatapointsToAlarm` is the M\\. \nFor more information, see [Evaluating an Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) in the *Amazon CloudWatch User Guide*\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EvaluationPeriods", + "type": "number" + }, + "ExtendedStatistic": { + "markdownDescription": "The percentile statistic for the metric associated with the alarm\\. Specify a value between p0\\.0 and p100\\. \nFor an alarm based on a metric, you must specify either `Statistic` or `ExtendedStatistic` but not both\\. \nFor an alarm based on a math expression, you can't specify `ExtendedStatistic`\\. Instead, you use `Metrics`\\. \n*Required*: No \n*Type*: String \n*Pattern*: `p(\\d{1,2}(\\.\\d{0,2})?|100)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExtendedStatistic", + "type": "string" + }, + "InsufficientDataActions": { + "items": { + "type": "string" + }, + "markdownDescription": "The actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state\\. Each action is specified as an Amazon Resource Name \\(ARN\\)\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InsufficientDataActions", + "type": "array" + }, + "MetricName": { + "markdownDescription": "The name of the metric associated with the alarm\\. This is required for an alarm based on a metric\\. For an alarm based on a math expression, you use `Metrics` instead and you can't specify `MetricName`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", + "type": "string" + }, + "Metrics": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.MetricDataQuery" + }, + "markdownDescription": "An array that enables you to create an alarm based on the result of a metric math expression\\. Each item in the array either retrieves a metric or performs a math expression\\. \nIf you specify the `Metrics` parameter, you cannot specify `MetricName`, `Dimensions`, `Period`, `Namespace`, `Statistic`, `ExtendedStatistic`, or `Unit`\\. \n*Required*: No \n*Type*: List of [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metrics", + "type": "array" + }, + "Namespace": { + "markdownDescription": "The namespace of the metric associated with the alarm\\. This is required for an alarm based on a metric\\. For an alarm based on a math expression, you can't specify `Namespace` and you use `Metrics` instead\\. \nFor a list of namespaces for metrics from AWS services, see [AWS Services That Publish CloudWatchMetrics\\. ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[^:].*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", + "type": "string" + }, + "OKActions": { + "items": { + "type": "string" + }, + "markdownDescription": "The actions to execute when this alarm transitions to the `OK` state from any other state\\. Each action is specified as an Amazon Resource Name \\(ARN\\)\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OKActions", + "type": "array" + }, + "Period": { + "markdownDescription": "The period, in seconds, over which the statistic is applied\\. This is required for an alarm based on a metric\\. Valid values are 10, 30, 60, and any multiple of 60\\. \nFor an alarm based on a math expression, you can't specify `Period`, and instead you use the `Metrics` parameter\\. \n*Minimum:* 10 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Period", + "type": "number" + }, + "Statistic": { + "markdownDescription": "The statistic for the metric associated with the alarm, other than percentile\\. For percentile statistics, use `ExtendedStatistic`\\. \nFor an alarm based on a metric, you must specify either `Statistic` or `ExtendedStatistic` but not both\\. \nFor an alarm based on a math expression, you can't specify `Statistic`\\. Instead, you use `Metrics`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Average | Maximum | Minimum | SampleCount | Sum` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statistic", + "type": "string" + }, + "Threshold": { + "markdownDescription": "The value to compare with the specified statistic\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Threshold", + "type": "number" + }, + "ThresholdMetricId": { + "markdownDescription": "In an alarm based on an anomaly detection model, this is the ID of the `ANOMALY_DETECTION_BAND` function used as the threshold for the alarm\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThresholdMetricId", + "type": "string" + }, + "TreatMissingData": { + "markdownDescription": "Sets how this alarm is to handle missing data points\\. Valid values are `breaching`, `notBreaching`, `ignore`, and `missing`\\. For more information, see [ Configuring How CloudWatchAlarms Treat Missing Data](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) in the *Amazon CloudWatchUser Guide*\\. \nIf you omit this parameter, the default behavior of `missing` is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TreatMissingData", + "type": "string" + }, + "Unit": { + "markdownDescription": "The unit of the metric associated with the alarm\\. Specify this only if you are creating an alarm based on a single metric\\. Do not specify this if you are specifying a `Metrics` array\\. \n You can specify the following values: Seconds, Microseconds, Milliseconds, Bytes, Kilobytes, Megabytes, Gigabytes, Terabytes, Bits, Kilobits, Megabits, Gigabits, Terabits, Percent, Count, Bytes/Second, Kilobytes/Second, Megabytes/Second, Gigabytes/Second, Terabytes/Second, Bits/Second, Kilobits/Second, Megabits/Second, Gigabits/Second, Terabits/Second, Count/Second, or None\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Bits | Bits/Second | Bytes | Bytes/Second | Count | Count/Second | Gigabits | Gigabits/Second | Gigabytes | Gigabytes/Second | Kilobits | Kilobits/Second | Kilobytes | Kilobytes/Second | Megabits | Megabits/Second | Megabytes | Megabytes/Second | Microseconds | Milliseconds | None | Percent | Seconds | Terabits | Terabits/Second | Terabytes | Terabytes/Second` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the dimension, from 1\u2013255 characters in length\\. This dimension name must have been included when the metric was published\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "The value for the dimension, from 1\u2013255 characters in length\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::CloudWatch::Alarm.Metric": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.Dimension" + }, + "markdownDescription": "The metric dimensions that you want to be used for the metric that the alarm will watch\\.\\. \n*Required*: No \n*Type*: List of [Dimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-dimension.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", + "type": "array" + }, + "MetricName": { + "markdownDescription": "The name of the metric that you want the alarm to watch\\. This is a required field\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", + "type": "string" + }, + "Namespace": { + "markdownDescription": "The namespace of the metric that the alarm will watch\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[^:].*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", + "type": "string" + } + }, + "type": "object" + }, + "AWS::CloudWatch::Alarm.MetricDataQuery": { + "additionalProperties": false, + "properties": { + "AccountId": { + "markdownDescription": "The ID of the account where the metrics are located, if this is a cross\\-account alarm\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountId", + "type": "string" + }, + "Expression": { + "markdownDescription": "The math expression to be performed on the returned data, if this object is performing a math expression\\. This expression can use the `Id` of the other metrics to refer to those metrics, and can also use the `Id` of other expressions to use the result of those expressions\\. For more information about metric math expressions, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *Amazon CloudWatch User Guide*\\. \nWithin each MetricDataQuery object, you must specify either `Expression` or `MetricStat` but not both\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Expression", + "type": "string" + }, + "Id": { + "markdownDescription": "A short name used to tie this object to the results in the response\\. This name must be unique within a single call to `GetMetricData`\\. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression\\. The valid characters are letters, numbers, and underscore\\. The first character must be a lowercase letter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "Label": { + "markdownDescription": "A human\\-readable label for this metric or expression\\. This is especially useful if this is an expression, so that you know what the value represents\\. If the metric or expression is shown in a CloudWatch dashboard widget, the label is shown\\. If `Label` is omitted, CloudWatch generates a default\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Label", + "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.MetricStat", + "markdownDescription": "The metric to be returned, along with statistics, period, and units\\. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data\\. \nWithin one MetricDataQuery object, you must specify either `Expression` or `MetricStat` but not both\\. \n*Required*: No \n*Type*: [MetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricStat" + }, + "Period": { + "markdownDescription": "The granularity, in seconds, of the returned data points\\. For metrics with regular resolution, a period can be as short as one minute \\(60 seconds\\) and must be a multiple of 60\\. For high\\-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60\\. High\\-resolution metrics are those metrics stored by a `PutMetricData` operation that includes a `StorageResolution of 1 second`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Period", + "type": "number" + }, + "ReturnData": { + "markdownDescription": "This option indicates whether to return the timestamps and raw data values of this metric\\. \nWhen you create an alarm based on a metric math expression, specify `True` for this value for only the one math expression that the alarm is based on\\. You must specify `False` for `ReturnData` for all the other metrics and expressions used in the alarm\\. \nThis field is required\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReturnData", + "type": "boolean" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::CloudWatch::Alarm.MetricStat": { + "additionalProperties": false, + "properties": { + "Metric": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.Metric", + "markdownDescription": "The metric to return, including the metric name, namespace, and dimensions\\. \n*Required*: Yes \n*Type*: [Metric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metric" + }, + "Period": { + "markdownDescription": "The granularity, in seconds, of the returned data points\\. For metrics with regular resolution, a period can be as short as one minute \\(60 seconds\\) and must be a multiple of 60\\. For high\\-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60\\. High\\-resolution metrics are those metrics stored by a `PutMetricData` call that includes a `StorageResolution` of 1 second\\. \nIf the `StartTime` parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: \n+ Start time between 3 hours and 15 days ago \\- Use a multiple of 60 seconds \\(1 minute\\)\\.\n+ Start time between 15 and 63 days ago \\- Use a multiple of 300 seconds \\(5 minutes\\)\\.\n+ Start time greater than 63 days ago \\- Use a multiple of 3600 seconds \\(1 hour\\)\\.\n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Period", + "type": "number" + }, + "Stat": { + "markdownDescription": "The statistic to return\\. It can include any CloudWatch statistic or extended statistic\\. For a list of valid values, see the table in [ Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *Amazon CloudWatch User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Stat", + "type": "string" + }, + "Unit": { + "markdownDescription": "The unit to use for the returned data points\\. \nValid values are: Seconds, Microseconds, Milliseconds, Bytes, Kilobytes, Megabytes, Gigabytes, Terabytes, Bits, Kilobits, Megabits, Gigabits, Terabits, Percent, Count, Bytes/Second, Kilobytes/Second, Megabytes/Second, Gigabytes/Second, Terabytes/Second, Bits/Second, Kilobits/Second, Megabits/Second, Gigabits/Second, Terabits/Second, Count/Second, or None\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Bits | Bits/Second | Bytes | Bytes/Second | Count | Count/Second | Gigabits | Gigabits/Second | Gigabytes | Gigabytes/Second | Kilobits | Kilobits/Second | Kilobytes | Kilobytes/Second | Megabits | Megabits/Second | Megabytes | Megabytes/Second | Microseconds | Milliseconds | None | Percent | Seconds | Terabits | Terabits/Second | Terabytes | Terabytes/Second` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Specifies details about how the anomaly detection model is to be trained, including time ranges to exclude when training and updating the model\\. The configuration can also include the time zone to use for the metric\\. \n*Required*: No \n*Type*: [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-configuration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configuration" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Dimension" + }, + "markdownDescription": "The dimensions of the metric associated with the anomaly detection band\\. \n*Required*: No \n*Type*: List of [Dimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-dimension.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Dimensions", + "type": "array" + }, + "MetricMathAnomalyDetector": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.MetricMathAnomalyDetector", + "markdownDescription": "The CloudWatch metric math expression for this anomaly detector\\. \n*Required*: No \n*Type*: [MetricMathAnomalyDetector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricmathanomalydetector.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricMathAnomalyDetector" + }, + "MetricName": { + "markdownDescription": "The name of the metric associated with the anomaly detection band\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricName", + "type": "string" + }, + "Namespace": { + "markdownDescription": "The namespace of the metric associated with the anomaly detection band\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Namespace", + "type": "string" + }, + "SingleMetricAnomalyDetector": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.SingleMetricAnomalyDetector", + "markdownDescription": "The CloudWatch metric and statistic for this anomaly detector\\. \n*Required*: No \n*Type*: [SingleMetricAnomalyDetector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-singlemetricanomalydetector.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SingleMetricAnomalyDetector" + }, + "Stat": { + "markdownDescription": "The statistic of the metric associated with the anomaly detection band\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "Specifies an array of time ranges to exclude from use when the anomaly detection model is trained and updated\\. Use this to make sure that events that could cause unusual values for the metric, such as deployments, aren't used when CloudWatch creates or updates the model\\. \n*Required*: No \n*Type*: List of [Range](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-range.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludedTimeRanges", + "type": "array" + }, + "MetricTimeZone": { + "markdownDescription": "The time zone to use for the metric\\. This is useful to enable the model to automatically account for daylight savings time changes if the metric is sensitive to such time changes\\. \nTo specify a time zone, use the name of the time zone as specified in the standard tz database\\. For more information, see [tz database](https://en.wikipedia.org/wiki/Tz_database)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricTimeZone", + "type": "string" + } + }, + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.Dimension": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of the dimension\\. Dimension values must contain only ASCII characters and must include at least one non\\-whitespace character\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.Metric": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Dimension" + }, + "markdownDescription": "The dimensions for the metric\\. \n*Required*: No \n*Type*: List of [Dimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-dimension.html) \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Dimensions", + "type": "array" + }, + "MetricName": { + "markdownDescription": "The name of the metric\\. This is a required field\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricName", + "type": "string" + }, + "Namespace": { + "markdownDescription": "The namespace of the metric\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[^:].*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ID of the account where the metrics are located, if this is a cross\\-account alarm\\. \nUse this field only for `PutMetricAlarm` operations\\. It is not used in `GetMetricData` operations\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccountId", + "type": "string" + }, + "Expression": { + "markdownDescription": "This field can contain either a Metrics Insights query, or a metric math expression to be performed on the returned data\\. For more information about Metrics Insights queries, see [Metrics Insights query components and syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-metrics-insights-querylanguage) in the *Amazon CloudWatch User Guide*\\. \nA math expression can use the `Id` of the other metrics or queries to refer to those metrics, and can also use the `Id` of other expressions to use the result of those expressions\\. For more information about metric math expressions, see [Metric Math Syntax and Functions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax) in the *Amazon CloudWatch User Guide*\\. \nWithin each MetricDataQuery object, you must specify either `Expression` or `MetricStat` but not both\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Expression", + "type": "string" + }, + "Id": { + "markdownDescription": "A short name used to tie this object to the results in the response\\. This name must be unique within a single call to `GetMetricData`\\. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression\\. The valid characters are letters, numbers, and underscore\\. The first character must be a lowercase letter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "string" + }, + "Label": { + "markdownDescription": "A human\\-readable label for this metric or expression\\. This is especially useful if this is an expression, so that you know what the value represents\\. If the metric or expression is shown in a CloudWatch dashboard widget, the label is shown\\. If Label is omitted, CloudWatch generates a default\\. \nYou can put dynamic expressions into a label, so that it is more descriptive\\. For more information, see [Using Dynamic Labels](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph-dynamic-labels.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Label", + "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.MetricStat", + "markdownDescription": "The metric to be returned, along with statistics, period, and units\\. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data\\. \nWithin one MetricDataQuery object, you must specify either `Expression` or `MetricStat` but not both\\. \n*Required*: No \n*Type*: [MetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricstat.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricStat" + }, + "Period": { + "markdownDescription": "The granularity, in seconds, of the returned data points\\. For metrics with regular resolution, a period can be as short as one minute \\(60 seconds\\) and must be a multiple of 60\\. For high\\-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60\\. High\\-resolution metrics are those metrics stored by a `PutMetricData` operation that includes a `StorageResolution of 1 second`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Period", + "type": "number" + }, + "ReturnData": { + "markdownDescription": "When used in `GetMetricData`, this option indicates whether to return the timestamps and raw data values of this metric\\. If you are performing this call just to do math expressions and do not also need the raw data returned, you can specify `False`\\. If you omit this, the default of `True` is used\\. \nWhen used in `PutMetricAlarm`, specify `True` for the one expression result to use as the alarm\\. For all other metrics and expressions in the same `PutMetricAlarm` operation, specify `ReturnData` as False\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReturnData", + "type": "boolean" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.MetricMathAnomalyDetector": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.MetricDataQuery" + }, + "markdownDescription": "An array of metric data query structures that enables you to create an anomaly detector based on the result of a metric math expression\\. Each item in `MetricDataQueries` gets a metric or performs a math expression\\. One item in `MetricDataQueries` is the expression that provides the time series that the anomaly detector uses as input\\. Designate the expression by setting `ReturnData` to `True` for this object in the array\\. For all other expressions and metrics, set `ReturnData` to `False`\\. The designated expression must return a single time series\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataqueries.html) of [MetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataquery.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricDataQueries", + "type": "array" + } + }, + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.MetricStat": { + "additionalProperties": false, + "properties": { + "Metric": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Metric", + "markdownDescription": "The metric to return, including the metric name, namespace, and dimensions\\. \n*Required*: Yes \n*Type*: [Metric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metric.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Metric" + }, + "Period": { + "markdownDescription": "The granularity, in seconds, of the returned data points\\. For metrics with regular resolution, a period can be as short as one minute \\(60 seconds\\) and must be a multiple of 60\\. For high\\-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60\\. High\\-resolution metrics are those metrics stored by a `PutMetricData` call that includes a `StorageResolution` of 1 second\\. \nIf the `StartTime` parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: \n+ Start time between 3 hours and 15 days ago \\- Use a multiple of 60 seconds \\(1 minute\\)\\.\n+ Start time between 15 and 63 days ago \\- Use a multiple of 300 seconds \\(5 minutes\\)\\.\n+ Start time greater than 63 days ago \\- Use a multiple of 3600 seconds \\(1 hour\\)\\.\n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Period", + "type": "number" + }, + "Stat": { + "markdownDescription": "The statistic to return\\. It can include any CloudWatch statistic or extended statistic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Stat", + "type": "string" + }, + "Unit": { + "markdownDescription": "When you are using a `Put` operation, this defines what unit you want to use when storing the metric\\. \nIn a `Get` operation, if you omit `Unit` then all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch\\. If you specify a unit, the operation returns only data that was collected with that unit specified\\. If you specify a unit that does not match the data collected, the results of the operation are null\\. CloudWatch does not perform unit conversions\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Bits | Bits/Second | Bytes | Bytes/Second | Count | Count/Second | Gigabits | Gigabits/Second | Gigabytes | Gigabytes/Second | Kilobits | Kilobits/Second | Kilobytes | Kilobytes/Second | Megabits | Megabits/Second | Megabytes | Megabytes/Second | Microseconds | Milliseconds | None | Percent | Seconds | Terabits | Terabits/Second | Terabytes | Terabytes/Second` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Unit", + "type": "string" + } + }, + "required": [ + "Metric", + "Period", + "Stat" + ], + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.Range": { + "additionalProperties": false, + "properties": { + "EndTime": { + "markdownDescription": "The end time of the range to exclude\\. The format is `yyyy-MM-dd'T'HH:mm:ss`\\. For example, `2019-07-01T23:59:59`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndTime", + "type": "string" + }, + "StartTime": { + "markdownDescription": "The start time of the range to exclude\\. The format is `yyyy-MM-dd'T'HH:mm:ss`\\. For example, `2019-07-01T23:59:59`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartTime", + "type": "string" + } + }, + "required": [ + "EndTime", + "StartTime" + ], + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.SingleMetricAnomalyDetector": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Dimension" + }, + "markdownDescription": "The metric dimensions to create the anomaly detection model for\\. \n*Required*: No \n*Type*: List of [Dimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-dimension.html) \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Dimensions", + "type": "array" + }, + "MetricName": { + "markdownDescription": "The name of the metric to create the anomaly detection model for\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricName", + "type": "string" + }, + "Namespace": { + "markdownDescription": "The namespace of the metric to create the anomaly detection model for\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[^:].*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Namespace", + "type": "string" + }, + "Stat": { + "markdownDescription": "The statistic to use for the metric and anomaly detection model\\. \n*Required*: No \n*Type*: String \n*Maximum*: `50` \n*Pattern*: `(SampleCount|Average|Sum|Minimum|Maximum|IQM|(p|tc|tm|ts|wm)(\\d{1,2}(\\.\\d{0,10})?|100)|[ou]\\d+(\\.\\d*)?)(_E|_L|_H)?|(TM|TC|TS|WM)\\(((((\\d{1,2})(\\.\\d{0,10})?|100(\\.0{0,10})?)%)?:((\\d{1,2})(\\.\\d{0,10})?|100(\\.0{0,10})?)%|((\\d{1,2})(\\.\\d{0,10})?|100(\\.0{0,10})?)%:(((\\d{1,2})(\\.\\d{0,10})?|100(\\.0{0,10})?)%)?)\\)|(TM|TC|TS|WM|PR)\\(((\\d+(\\.\\d{0,10})?|(\\d+(\\.\\d{0,10})?[Ee][+-]?\\d+)):((\\d+(\\.\\d{0,10})?|(\\d+(\\.\\d{0,10})?[Ee][+-]?\\d+)))?|((\\d+(\\.\\d{0,10})?|(\\d+(\\.\\d{0,10})?[Ee][+-]?\\d+)))?:(\\d+(\\.\\d{0,10})?|(\\d+(\\.\\d{0,10})?[Ee][+-]?\\d+)))\\)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Indicates whether actions should be executed during any changes to the alarm state of the composite alarm\\. The default is TRUE\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionsEnabled", + "type": "boolean" + }, + "ActionsSuppressor": { + "type": "string" + }, + "ActionsSuppressorExtensionPeriod": { + "type": "number" + }, + "ActionsSuppressorWaitPeriod": { + "type": "number" + }, + "AlarmActions": { + "items": { + "type": "string" + }, + "markdownDescription": "The actions to execute when this alarm transitions to the ALARM state from any other state\\. Each action is specified as an Amazon Resource Name \\(ARN\\)\\. For more information about creating alarms and the actions that you can specify, see [PutCompositeAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutCompositeAlarm.html) in the *Amazon CloudWatch API Reference*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmActions", + "type": "array" + }, + "AlarmDescription": { + "markdownDescription": "The description for the composite alarm\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmDescription", + "type": "string" + }, + "AlarmName": { + "markdownDescription": "The name for the composite alarm\\. This name must be unique within your AWS account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AlarmName", + "type": "string" + }, + "AlarmRule": { + "markdownDescription": "An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state\\. For each alarm that you reference, you designate a function that specifies whether that alarm needs to be in ALARM state, OK state, or INSUFFICIENT\\_DATA state\\. You can use operators \\(AND, OR and NOT\\) to combine multiple functions in a single expression\\. You can use parenthesis to logically group the functions in your expression\\. \nYou can use either alarm names or ARNs to reference the other alarms that are to be evaluated\\. \nFunctions can include the following: \n+ ALARM\\(\"alarm\\-name or alarm\\-ARN\"\\) is TRUE if the named alarm is in ALARM state\\. \n+ OK\\(\"alarm\\-name or alarm\\-ARN\"\\) is TRUE if the named alarm is in OK state\\. \n+ INSUFFICIENT\\_DATA\\(\"alarm\\-name or alarm\\-ARN\"\\) is TRUE if the named alarm is in INSUFFICIENT\\_DATA state\\. \n+ TRUE always evaluates to TRUE\\.\n+ FALSE always evaluates to FALSE\\.\n TRUE and FALSE are useful for testing a complex AlarmRule structure, and for testing your alarm actions\\. \nFor more information about `AlarmRule` syntax, see [PutCompositeAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutCompositeAlarm.html) in the *Amazon CloudWatch API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmRule", + "type": "string" + }, + "InsufficientDataActions": { + "items": { + "type": "string" + }, + "markdownDescription": "The actions to execute when this alarm transitions to the INSUFFICIENT\\_DATA state from any other state\\. Each action is specified as an Amazon Resource Name \\(ARN\\)\\. For more information about creating alarms and the actions that you can specify, see [PutCompositeAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutCompositeAlarm.html) in the *Amazon CloudWatch API Reference*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InsufficientDataActions", + "type": "array" + }, + "OKActions": { + "items": { + "type": "string" + }, + "markdownDescription": "The actions to execute when this alarm transitions to the OK state from any other state\\. Each action is specified as an Amazon Resource Name \\(ARN\\)\\. For more information about creating alarms and the actions that you can specify, see [PutCompositeAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutCompositeAlarm.html) in the *Amazon CloudWatch API Reference*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OKActions", + "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": { + "markdownDescription": "The detailed information about the dashboard in JSON format, including the widgets to include and their location on the dashboard\\. This parameter is required\\. \nFor more information about the syntax, see [Dashboard Body Structure and Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Dashboard-Body-Structure.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DashboardBody", + "type": "string" + }, + "DashboardName": { + "markdownDescription": "The name of the dashboard\\. The name must be between 1 and 255 characters\\. If you do not specify a name, one will be generated automatically\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The definition of the rule, as a JSON object\\. For details about the syntax, see [ Contributor Insights Rule Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights-RuleSyntax.html) in the *Amazon CloudWatch User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleBody", + "type": "string" + }, + "RuleName": { + "markdownDescription": "The name of the rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RuleName", + "type": "string" + }, + "RuleState": { + "markdownDescription": "The current state of the rule\\. Valid values are `ENABLED` and `DISABLED`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleState", + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/AWS::CloudWatch::InsightRule.Tags", + "markdownDescription": "A list of key\\-value pairs to associate with the Contributor Insights rule\\. You can associate as many as 50 tags with a rule\\. \nTags can help you organize and categorize your resources\\. For more information, see [ Tagging Your Amazon CloudWatch Resources](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Tagging.html)\\. \nTo be able to associate tags with a rule, you must have the `cloudwatch:TagResource` permission in addition to the `cloudwatch:PutInsightRule` permission\\. \n*Required*: No \n*Type*: [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-insightrule-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags" + } + }, + "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" + }, + "markdownDescription": "If you specify this parameter, the stream sends metrics from all metric namespaces except for the namespaces that you specify here\\. You cannot specify both `IncludeFilters` and `ExcludeFilters` in the same metric stream\\. \nWhen you modify the `IncludeFilters` or `ExcludeFilters` of an existing metric stream in any way, the metric stream is effectively restarted, so after such a change you will get only the datapoints that have a timestamp after the time of the update\\. \n*Required*: No \n*Type*: List of [MetricStreamFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-metricstream-metricstreamfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludeFilters", + "type": "array" + }, + "FirehoseArn": { + "markdownDescription": "The ARN of the Amazon Kinesis Firehose delivery stream to use for this metric stream\\. This Amazon Kinesis Firehose delivery stream must already exist and must be in the same account as the metric stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FirehoseArn", + "type": "string" + }, + "IncludeFilters": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::MetricStream.MetricStreamFilter" + }, + "markdownDescription": "If you specify this parameter, the stream sends only the metrics from the metric namespaces that you specify here\\. You cannot specify both `IncludeFilters` and `ExcludeFilters` in the same metric stream\\. \nWhen you modify the `IncludeFilters` or `ExcludeFilters` of an existing metric stream in any way, the metric stream is effectively restarted, so after such a change you will get only the datapoints that have a timestamp after the time of the update\\. \n*Required*: No \n*Type*: List of [MetricStreamFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-metricstream-metricstreamfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeFilters", + "type": "array" + }, + "IncludeLinkedAccountsMetrics": { + "type": "boolean" + }, + "Name": { + "markdownDescription": "If you are creating a new metric stream, this is the name for the new stream\\. The name must be different than the names of other metric streams in this account and Region\\. \nIf you are updating a metric stream, specify the name of that stream here\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "OutputFormat": { + "markdownDescription": "The output format for the stream\\. Valid values are `json` and `opentelemetry0.7` For more information about metric stream output formats, see [ Metric streams output formats](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-metric-streams-formats.html)\\. \nThis parameter is required\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputFormat", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of an IAM role that this metric stream will use to access Amazon Kinesis Firehose resources\\. This IAM role must already exist and must be in the same account as the metric stream\\. This IAM role must include the `firehose:PutRecord` and `firehose:PutRecordBatch` permissions\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "StatisticsConfigurations": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::MetricStream.MetricStreamStatisticsConfiguration" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to the metric stream\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The name of the metric namespace in the filter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A string that specifies the name of the requested domain\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `50` \n*Pattern*: `[a-z][a-z0-9\\-]{0,48}[a-z0-9]` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", + "type": "string" + }, + "EncryptionKey": { + "markdownDescription": "The key used to encrypt the domain\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1011` \n*Pattern*: `\\S+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncryptionKey", + "type": "string" + }, + "PermissionsPolicyDocument": { + "markdownDescription": "The document that defines the resource policy that is set on a domain\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PermissionsPolicyDocument", + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of tags to be applied to the domain\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "A text description of the repository\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Pattern*: `\\P{C}*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DomainName": { + "markdownDescription": "The name of the domain that contains the repository\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `50` \n*Pattern*: `[a-z][a-z0-9\\-]{0,48}[a-z0-9]` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", + "type": "string" + }, + "DomainOwner": { + "markdownDescription": "The 12\\-digit account number of the AWS account that owns the domain that contains the repository\\. It does not include dashes or spaces\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `[0-9]{12}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainOwner", + "type": "string" + }, + "ExternalConnections": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of external connections associated with the repository\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExternalConnections", + "type": "array" + }, + "PermissionsPolicyDocument": { + "markdownDescription": "The document that defines the resource policy that is set on a repository\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PermissionsPolicyDocument", + "type": "object" + }, + "RepositoryName": { + "markdownDescription": "The name of an upstream repository\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9][A-Za-z0-9._\\-]{1,99}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RepositoryName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of tags to be applied to the repository\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Upstreams": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of upstream repositories to associate with the repository\\. The order of the upstream repositories in the list determines their priority order when AWS CodeArtifact looks for a requested package version\\. For more information, see [Working with upstream repositories](https://docs.aws.amazon.com/codeartifact/latest/ug/repos-upstream.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Upstreams", + "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", + "markdownDescription": "`Artifacts` is a property of the [ AWS::CodeBuild::Project](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html) resource that specifies output settings for artifacts generated by an AWS CodeBuild build\\. \n*Required*: Yes \n*Type*: [Artifacts](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Artifacts" + }, + "BadgeEnabled": { + "markdownDescription": "Indicates whether AWS CodeBuild generates a publicly accessible URL for your project's build badge\\. For more information, see [Build Badges Sample](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-build-badges.html) in the *AWS CodeBuild User Guide*\\. \n Including build badges with your project is currently not supported if the source type is CodePipeline\\. If you specify `CODEPIPELINE` for the `Source` property, do not specify the `BadgeEnabled` property\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BadgeEnabled", + "type": "boolean" + }, + "BuildBatchConfig": { + "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectBuildBatchConfig", + "markdownDescription": "A `ProjectBuildBatchConfig` object that defines the batch build options for the project\\. \n*Required*: No \n*Type*: [ProjectBuildBatchConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectbuildbatchconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BuildBatchConfig" + }, + "Cache": { + "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectCache", + "markdownDescription": "Settings that AWS CodeBuild uses to store and reuse build dependencies\\. \n*Required*: No \n*Type*: [ProjectCache](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cache" + }, + "ConcurrentBuildLimit": { + "markdownDescription": "The maximum number of concurrent builds that are allowed for this project\\. \nNew builds are only started if the current number of builds is less than or equal to this limit\\. If the current build count meets this limit, new builds are throttled and are not run\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConcurrentBuildLimit", + "type": "number" + }, + "Description": { + "markdownDescription": "A description that makes the build project easy to identify\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "EncryptionKey": { + "markdownDescription": "The AWS Key Management Service customer master key \\(CMK\\) to be used for encrypting the build output artifacts\\. \nYou can use a cross\\-account KMS key to encrypt the build output artifacts if your service role has permission to that key\\. \nYou can specify either the Amazon Resource Name \\(ARN\\) of the CMK or, if available, the CMK's alias \\(using the format `alias/`\\)\\. If you don't specify a value, CodeBuild uses the managed CMK for Amazon Simple Storage Service \\(Amazon S3\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionKey", + "type": "string" + }, + "Environment": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Environment", + "markdownDescription": "The build environment settings for the project, such as the environment type or the environment variables to use for the build environment\\. \n*Required*: Yes \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Environment" + }, + "FileSystemLocations": { + "items": { + "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectFileSystemLocation" + }, + "markdownDescription": "An array of `ProjectFileSystemLocation` objects for a CodeBuild build project\\. A `ProjectFileSystemLocation` object specifies the `identifier`, `location`, `mountOptions`, `mountPoint`, and `type` of a file system created using Amazon Elastic File System\\. \n*Required*: No \n*Type*: List of [ProjectFileSystemLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectfilesystemlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileSystemLocations", + "type": "array" + }, + "LogsConfig": { + "$ref": "#/definitions/AWS::CodeBuild::Project.LogsConfig", + "markdownDescription": "Information about logs for the build project\\. A project can create logs in CloudWatch Logs, an S3 bucket, or both\\. \n*Required*: No \n*Type*: [LogsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-logsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogsConfig" + }, + "Name": { + "markdownDescription": "The name of the build project\\. The name must be unique across all of the projects in your AWS account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `255` \n*Pattern*: `[A-Za-z0-9][A-Za-z0-9\\-_]{1,254}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "QueuedTimeoutInMinutes": { + "markdownDescription": "The number of minutes a build is allowed to be queued before it times out\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `5` \n*Maximum*: `480` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueuedTimeoutInMinutes", + "type": "number" + }, + "ResourceAccessRole": { + "markdownDescription": "The ARN of the IAM role that enables CodeBuild to access the CloudWatch Logs and Amazon S3 artifacts for the project's builds\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceAccessRole", + "type": "string" + }, + "SecondaryArtifacts": { + "items": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts" + }, + "markdownDescription": "A list of `Artifacts` objects\\. Each artifacts object specifies output settings that the project generates during a build\\. \n*Required*: No \n*Type*: List of [Artifacts](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html) \n*Maximum*: `12` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryArtifacts", + "type": "array" + }, + "SecondarySourceVersions": { + "items": { + "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectSourceVersion" + }, + "markdownDescription": "An array of `ProjectSourceVersion` objects\\. If `secondarySourceVersions` is specified at the build level, then they take over these `secondarySourceVersions` \\(at the project level\\)\\. \n*Required*: No \n*Type*: List of [ProjectSourceVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectsourceversion.html) \n*Maximum*: `12` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondarySourceVersions", + "type": "array" + }, + "SecondarySources": { + "items": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Source" + }, + "markdownDescription": "An array of `ProjectSource` objects\\. \n*Required*: No \n*Type*: List of [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html) \n*Maximum*: `12` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondarySources", + "type": "array" + }, + "ServiceRole": { + "markdownDescription": "The ARN of the IAM role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceRole", + "type": "string" + }, + "Source": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Source", + "markdownDescription": "The source code settings for the project, such as the source code's repository type and location\\. \n*Required*: Yes \n*Type*: [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source" + }, + "SourceVersion": { + "markdownDescription": "A version of the build input to be built for this project\\. If not specified, the latest version is used\\. If specified, it must be one of: \n+ For CodeCommit: the commit ID, branch, or Git tag to use\\.\n+ For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build\\. If a pull request ID is specified, it must use the format `pr/pull-request-ID` \\(for example `pr/25`\\)\\. If a branch name is specified, the branch's HEAD commit ID is used\\. If not specified, the default branch's HEAD commit ID is used\\.\n+ For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build\\. If a branch name is specified, the branch's HEAD commit ID is used\\. If not specified, the default branch's HEAD commit ID is used\\.\n+ For Amazon S3: the version ID of the object that represents the build input ZIP file to use\\.\nIf `sourceVersion` is specified at the build level, then that version takes precedence over this `sourceVersion` \\(at the project level\\)\\. \nFor more information, see [Source Version Sample with CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-source-version.html) in the * AWS CodeBuild User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceVersion", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An arbitrary set of tags \\(key\\-value pairs\\) for the AWS CodeBuild project\\. \nThese tags are available for use by AWS services that support AWS CodeBuild build project tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TimeoutInMinutes": { + "markdownDescription": "How long, in minutes, from 5 to 480 \\(8 hours\\), for AWS CodeBuild to wait before timing out any related build that did not get marked as completed\\. The default is 60 minutes\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `5` \n*Maximum*: `480` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutInMinutes", + "type": "number" + }, + "Triggers": { + "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectTriggers", + "markdownDescription": "For an existing AWS CodeBuild build project that has its source code stored in a GitHub repository, enables AWS CodeBuild to begin automatically rebuilding the source code every time a code change is pushed to the repository\\. \n*Required*: No \n*Type*: [ProjectTriggers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projecttriggers.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Triggers" + }, + "Visibility": { + "markdownDescription": "Specifies the visibility of the project's builds\\. Possible values are: \nPUBLIC\\_READ \nThe project builds are visible to the public\\. \nPRIVATE \nThe project builds are not visible to the public\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Visibility", + "type": "string" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::CodeBuild::Project.VpcConfig", + "markdownDescription": "`VpcConfig` specifies settings that enable AWS CodeBuild to access resources in an Amazon VPC\\. For more information, see [Use AWS CodeBuild with Amazon Virtual Private Cloud](https://docs.aws.amazon.com/codebuild/latest/userguide/vpc-support.html) in the *AWS CodeBuild User Guide*\\. \n*Required*: No \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "An identifier for this artifact definition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArtifactIdentifier", + "type": "string" + }, + "EncryptionDisabled": { + "markdownDescription": "Set to true if you do not want your output artifacts encrypted\\. This option is valid only if your artifacts type is Amazon Simple Storage Service \\(Amazon S3\\)\\. If this is set with another artifacts type, an `invalidInputException` is thrown\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionDisabled", + "type": "boolean" + }, + "Location": { + "markdownDescription": "Information about the build output artifact location: \n+ If `type` is set to `CODEPIPELINE`, AWS CodePipeline ignores this value if specified\\. This is because CodePipeline manages its build output locations instead of CodeBuild\\.\n+ If `type` is set to `NO_ARTIFACTS`, this value is ignored if specified, because no build output is produced\\.\n+ If `type` is set to `S3`, this is the name of the output bucket\\.\n If you specify `CODEPIPELINE` or `NO_ARTIFACTS` for the `Type` property, don't specify this property\\. For all of the other types, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", + "type": "string" + }, + "Name": { + "markdownDescription": "Along with `path` and `namespaceType`, the pattern that AWS CodeBuild uses to name and store the output artifact: \n+ If `type` is set to `CODEPIPELINE`, AWS CodePipeline ignores this value if specified\\. This is because CodePipeline manages its build output names instead of AWS CodeBuild\\.\n+ If `type` is set to `NO_ARTIFACTS`, this value is ignored if specified, because no build output is produced\\.\n+ If `type` is set to `S3`, this is the name of the output artifact object\\. If you set the name to be a forward slash \\(\"/\"\\), the artifact is stored in the root of the output bucket\\.\nFor example: \n+ If `path` is set to `MyArtifacts`, `namespaceType` is set to `BUILD_ID`, and `name` is set to `MyArtifact.zip`, then the output artifact is stored in `MyArtifacts/build-ID/MyArtifact.zip`\\. \n+ If `path` is empty, `namespaceType` is set to `NONE`, and `name` is set to \"`/`\", the output artifact is stored in the root of the output bucket\\. \n+ If `path` is set to `MyArtifacts`, `namespaceType` is set to `BUILD_ID`, and `name` is set to \"`/`\", the output artifact is stored in `MyArtifacts/build-ID `\\. \n If you specify `CODEPIPELINE` or `NO_ARTIFACTS` for the `Type` property, don't specify this property\\. For all of the other types, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "NamespaceType": { + "markdownDescription": "Along with `path` and `name`, the pattern that AWS CodeBuild uses to determine the name and location to store the output artifact: \n+ If `type` is set to `CODEPIPELINE`, CodePipeline ignores this value if specified\\. This is because CodePipeline manages its build output names instead of AWS CodeBuild\\.\n+ If `type` is set to `NO_ARTIFACTS`, this value is ignored if specified, because no build output is produced\\.\n+ If `type` is set to `S3`, valid values include:\n + `BUILD_ID`: Include the build ID in the location of the build output artifact\\.\n + `NONE`: Do not include the build ID\\. This is the default if `namespaceType` is not specified\\.\nFor example, if `path` is set to `MyArtifacts`, `namespaceType` is set to `BUILD_ID`, and `name` is set to `MyArtifact.zip`, the output artifact is stored in `MyArtifacts//MyArtifact.zip`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BUILD_ID | NONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NamespaceType", + "type": "string" + }, + "OverrideArtifactName": { + "markdownDescription": "If set to true a name specified in the buildspec file overrides the artifact name\\. The name specified in a buildspec file is calculated at build time and uses the Shell command language\\. For example, you can append a date and time to your artifact name so that it is always unique\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OverrideArtifactName", + "type": "boolean" + }, + "Packaging": { + "markdownDescription": "The type of build output artifact to create: \n+ If `type` is set to `CODEPIPELINE`, CodePipeline ignores this value if specified\\. This is because CodePipeline manages its build output artifacts instead of AWS CodeBuild\\.\n+ If `type` is set to `NO_ARTIFACTS`, this value is ignored if specified, because no build output is produced\\.\n+ If `type` is set to `S3`, valid values include:\n + `NONE`: AWS CodeBuild creates in the output bucket a folder that contains the build output\\. This is the default if `packaging` is not specified\\.\n + `ZIP`: AWS CodeBuild creates in the output bucket a ZIP file that contains the build output\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | ZIP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Packaging", + "type": "string" + }, + "Path": { + "markdownDescription": "Along with `namespaceType` and `name`, the pattern that AWS CodeBuild uses to name and store the output artifact: \n+ If `type` is set to `CODEPIPELINE`, CodePipeline ignores this value if specified\\. This is because CodePipeline manages its build output names instead of AWS CodeBuild\\.\n+ If `type` is set to `NO_ARTIFACTS`, this value is ignored if specified, because no build output is produced\\.\n+ If `type` is set to `S3`, this is the path to the output artifact\\. If `path` is not specified, `path` is not used\\.\nFor example, if `path` is set to `MyArtifacts`, `namespaceType` is set to `NONE`, and `name` is set to `MyArtifact.zip`, the output artifact is stored in the output bucket at `MyArtifacts/MyArtifact.zip`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of build output artifact\\. Valid values include: \n+ `CODEPIPELINE`: The build project has build output generated through CodePipeline\\. \n**Note** \nThe `CODEPIPELINE` type is not supported for `secondaryArtifacts`\\.\n+ `NO_ARTIFACTS`: The build project does not produce any build output\\.\n+ `S3`: The build project stores build output in Amazon S3\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `CODEPIPELINE | NO_ARTIFACTS | S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.BatchRestrictions": { + "additionalProperties": false, + "properties": { + "ComputeTypesAllowed": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of strings that specify the compute types that are allowed for the batch build\\. See [Build environment compute types](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) in the * AWS CodeBuild User Guide* for these values\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputeTypesAllowed", + "type": "array" + }, + "MaximumBuildsAllowed": { + "markdownDescription": "Specifies the maximum number of builds allowed\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumBuildsAllowed", + "type": "number" + } + }, + "type": "object" + }, + "AWS::CodeBuild::Project.BuildStatusConfig": { + "additionalProperties": false, + "properties": { + "Context": { + "markdownDescription": "Specifies the context of the build status CodeBuild sends to the source provider\\. The usage of this parameter depends on the source provider\\. \nBitbucket \nThis parameter is used for the `name` parameter in the Bitbucket commit status\\. For more information, see [build](https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/commit/%7Bnode%7D/statuses/build) in the Bitbucket API documentation\\. \nGitHub/GitHub Enterprise Server \nThis parameter is used for the `context` parameter in the GitHub commit status\\. For more information, see [Create a commit status](https://developer.github.com/v3/repos/statuses/#create-a-commit-status) in the GitHub developer guide\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Context", + "type": "string" + }, + "TargetUrl": { + "markdownDescription": "Specifies the target url of the build status CodeBuild sends to the source provider\\. The usage of this parameter depends on the source provider\\. \nBitbucket \nThis parameter is used for the `url` parameter in the Bitbucket commit status\\. For more information, see [build](https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/commit/%7Bnode%7D/statuses/build) in the Bitbucket API documentation\\. \nGitHub/GitHub Enterprise Server \nThis parameter is used for the `target_url` parameter in the GitHub commit status\\. For more information, see [Create a commit status](https://developer.github.com/v3/repos/statuses/#create-a-commit-status) in the GitHub developer guide\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetUrl", + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeBuild::Project.CloudWatchLogsConfig": { + "additionalProperties": false, + "properties": { + "GroupName": { + "markdownDescription": "The group name of the logs in CloudWatch Logs\\. For more information, see [Working with Log Groups and Log Streams](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupName", + "type": "string" + }, + "Status": { + "markdownDescription": "The current status of the logs in CloudWatch Logs for a build project\\. Valid values are: \n+ `ENABLED`: CloudWatch Logs are enabled for this build project\\.\n+ `DISABLED`: CloudWatch Logs are not enabled for this build project\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + }, + "StreamName": { + "markdownDescription": "The prefix of the stream name of the CloudWatch Logs\\. For more information, see [Working with Log Groups and Log Streams](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamName", + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.Environment": { + "additionalProperties": false, + "properties": { + "Certificate": { + "markdownDescription": "The ARN of the Amazon S3 bucket, path prefix, and object key that contains the PEM\\-encoded certificate for the build project\\. For more information, see [certificate](https://docs.aws.amazon.com/codebuild/latest/userguide/create-project-cli.html#cli.environment.certificate) in the * AWS CodeBuild User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate", + "type": "string" + }, + "ComputeType": { + "markdownDescription": "The type of compute environment\\. This determines the number of CPU cores and memory the build environment uses\\. Available values include: \n+ `BUILD_GENERAL1_SMALL`: Use up to 3 GB memory and 2 vCPUs for builds\\.\n+ `BUILD_GENERAL1_MEDIUM`: Use up to 7 GB memory and 4 vCPUs for builds\\.\n+ `BUILD_GENERAL1_LARGE`: Use up to 15 GB memory and 8 vCPUs for builds\\.\n For more information, see [Build Environment Compute Types](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) in the *AWS CodeBuild User Guide\\.* \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputeType", + "type": "string" + }, + "EnvironmentVariables": { + "items": { + "$ref": "#/definitions/AWS::CodeBuild::Project.EnvironmentVariable" + }, + "markdownDescription": "A set of environment variables to make available to builds for this build project\\. \n*Required*: No \n*Type*: List of [EnvironmentVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environmentvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnvironmentVariables", + "type": "array" + }, + "Image": { + "markdownDescription": "The image tag or image digest that identifies the Docker image to use for this build project\\. Use the following formats: \n+ For an image tag: `/:`\\. For example, in the Docker repository that CodeBuild uses to manage its Docker images, this would be `aws/codebuild/standard:4.0`\\. \n+ For an image digest: `/@`\\. For example, to specify an image with the digest \"sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf,\" use `/@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf`\\.\nFor more information, see [Docker images provided by CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html) in the * AWS CodeBuild user guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Image", + "type": "string" + }, + "ImagePullCredentialsType": { + "markdownDescription": "The type of credentials AWS CodeBuild uses to pull images in your build\\. There are two valid values: \n+ `CODEBUILD` specifies that AWS CodeBuild uses its own credentials\\. This requires that you modify your ECR repository policy to trust AWS CodeBuild service principal\\. \n+ `SERVICE_ROLE` specifies that AWS CodeBuild uses your build project's service role\\. \n When you use a cross\\-account or private registry image, you must use SERVICE\\_ROLE credentials\\. When you use an AWS CodeBuild curated image, you must use CODEBUILD credentials\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CODEBUILD | SERVICE_ROLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImagePullCredentialsType", + "type": "string" + }, + "PrivilegedMode": { + "markdownDescription": "Enables running the Docker daemon inside a Docker container\\. Set to true only if the build project is used to build Docker images\\. Otherwise, a build that attempts to interact with the Docker daemon fails\\. The default setting is `false`\\. \nYou can initialize the Docker daemon during the install phase of your build by adding one of the following sets of commands to the install phase of your buildspec file: \nIf the operating system's base image is Ubuntu Linux: \n`- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&` \n`- timeout 15 sh -c \"until docker info; do echo .; sleep 1; done\"` \nIf the operating system's base image is Alpine Linux and the previous command does not work, add the `-t` argument to `timeout`: \n`- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&` \n`- timeout -t 15 sh -c \"until docker info; do echo .; sleep 1; done\"` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivilegedMode", + "type": "boolean" + }, + "RegistryCredential": { + "$ref": "#/definitions/AWS::CodeBuild::Project.RegistryCredential", + "markdownDescription": "`RegistryCredential` is a property of the [AWS::CodeBuild::Project Environment ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-environment) property that specifies information about credentials that provide access to a private Docker registry\\. When this is set: \n+ `imagePullCredentialsType` must be set to `SERVICE_ROLE`\\. \n+ images cannot be curated or an Amazon ECR image\\. \n*Required*: No \n*Type*: [RegistryCredential](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-registrycredential.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegistryCredential" + }, + "Type": { + "markdownDescription": "The type of build environment to use for related builds\\. \n+ The environment type `ARM_CONTAINER` is available only in regions US East \\(N\\. Virginia\\), US East \\(Ohio\\), US West \\(Oregon\\), EU \\(Ireland\\), Asia Pacific \\(Mumbai\\), Asia Pacific \\(Tokyo\\), Asia Pacific \\(Sydney\\), and EU \\(Frankfurt\\)\\.\n+ The environment type `LINUX_CONTAINER` with compute type `build.general1.2xlarge` is available only in regions US East \\(N\\. Virginia\\), US East \\(Ohio\\), US West \\(Oregon\\), Canada \\(Central\\), EU \\(Ireland\\), EU \\(London\\), EU \\(Frankfurt\\), Asia Pacific \\(Tokyo\\), Asia Pacific \\(Seoul\\), Asia Pacific \\(Singapore\\), Asia Pacific \\(Sydney\\), China \\(Beijing\\), and China \\(Ningxia\\)\\.\n+ The environment type `LINUX_GPU_CONTAINER` is available only in regions US East \\(N\\. Virginia\\), US East \\(Ohio\\), US West \\(Oregon\\), Canada \\(Central\\), EU \\(Ireland\\), EU \\(London\\), EU \\(Frankfurt\\), Asia Pacific \\(Tokyo\\), Asia Pacific \\(Seoul\\), Asia Pacific \\(Singapore\\), Asia Pacific \\(Sydney\\) , China \\(Beijing\\), and China \\(Ningxia\\)\\.\n+ The environment types `WINDOWS_CONTAINER` and `WINDOWS_SERVER_2019_CONTAINER` are available only in regions US East \\(N\\. Virginia\\), US East \\(Ohio\\), US West \\(Oregon\\), and EU \\(Ireland\\)\\.\nFor more information, see [Build environment compute types](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) in the * AWS CodeBuild user guide*\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ARM_CONTAINER | LINUX_CONTAINER | LINUX_GPU_CONTAINER | WINDOWS_CONTAINER | WINDOWS_SERVER_2019_CONTAINER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "ComputeType", + "Image", + "Type" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.EnvironmentVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name or key of the environment variable\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of environment variable\\. Valid values include: \n+ `PARAMETER_STORE`: An environment variable stored in Systems Manager Parameter Store\\. To learn how to specify a parameter store environment variable, see [env/parameter\\-store](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.parameter-store) in the * AWS CodeBuild User Guide*\\.\n+ `PLAINTEXT`: An environment variable in plain text format\\. This is the default value\\.\n+ `SECRETS_MANAGER`: An environment variable stored in AWS Secrets Manager\\. To learn how to specify a secrets manager environment variable, see [env/secrets\\-manager](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.secrets-manager) in the * AWS CodeBuild User Guide*\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `PARAMETER_STORE | PLAINTEXT | SECRETS_MANAGER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of the environment variable\\. \nWe strongly discourage the use of `PLAINTEXT` environment variables to store sensitive values, especially AWS secret key IDs and secret access keys\\. `PLAINTEXT` environment variables can be displayed in plain text using the AWS CodeBuild console and the AWS CLI\\. For sensitive values, we recommend you use an environment variable of type `PARAMETER_STORE` or `SECRETS_MANAGER`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Set to true to fetch Git submodules for your AWS CodeBuild build project\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FetchSubmodules", + "type": "boolean" + } + }, + "required": [ + "FetchSubmodules" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.LogsConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogs": { + "$ref": "#/definitions/AWS::CodeBuild::Project.CloudWatchLogsConfig", + "markdownDescription": "Information about CloudWatch Logs for a build project\\. CloudWatch Logs are enabled by default\\. \n*Required*: No \n*Type*: [CloudWatchLogsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-cloudwatchlogsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogs" + }, + "S3Logs": { + "$ref": "#/definitions/AWS::CodeBuild::Project.S3LogsConfig", + "markdownDescription": "Information about logs built to an S3 bucket for a build project\\. S3 logs are not enabled by default\\. \n*Required*: No \n*Type*: [S3LogsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-s3logsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Logs" + } + }, + "type": "object" + }, + "AWS::CodeBuild::Project.ProjectBuildBatchConfig": { + "additionalProperties": false, + "properties": { + "BatchReportMode": { + "markdownDescription": "Specifies how build status reports are sent to the source provider for the batch build\\. This property is only used when the source provider for your project is Bitbucket, GitHub, or GitHub Enterprise, and your project is configured to report build statuses to the source provider\\. \nREPORT\\_AGGREGATED\\_BATCH \n\\(Default\\) Aggregate all of the build statuses into a single status report\\. \nREPORT\\_INDIVIDUAL\\_BUILDS \nSend a separate status report for each individual build\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `REPORT_AGGREGATED_BATCH | REPORT_INDIVIDUAL_BUILDS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BatchReportMode", + "type": "string" + }, + "CombineArtifacts": { + "markdownDescription": "Specifies if the build artifacts for the batch build should be combined into a single artifact location\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CombineArtifacts", + "type": "boolean" + }, + "Restrictions": { + "$ref": "#/definitions/AWS::CodeBuild::Project.BatchRestrictions", + "markdownDescription": "A `BatchRestrictions` object that specifies the restrictions for the batch build\\. \n*Required*: No \n*Type*: [BatchRestrictions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-batchrestrictions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Restrictions" + }, + "ServiceRole": { + "markdownDescription": "Specifies the service role ARN for the batch build project\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceRole", + "type": "string" + }, + "TimeoutInMins": { + "markdownDescription": "Specifies the maximum amount of time, in minutes, that the batch build must be completed in\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutInMins", + "type": "number" + } + }, + "type": "object" + }, + "AWS::CodeBuild::Project.ProjectCache": { + "additionalProperties": false, + "properties": { + "Location": { + "markdownDescription": "Information about the cache location: \n+ `NO_CACHE` or `LOCAL`: This value is ignored\\.\n+ `S3`: This is the S3 bucket name/prefix\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", + "type": "string" + }, + "Modes": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of strings that specify the local cache modes\\. You can use one or more local cache modes at the same time\\. This is only used for `LOCAL` cache types\\. \nPossible values are: \nLOCAL\\_SOURCE\\_CACHE \nCaches Git metadata for primary and secondary sources\\. After the cache is created, subsequent builds pull only the change between commits\\. This mode is a good choice for projects with a clean working directory and a source that is a large Git repository\\. If you choose this option and your project does not use a Git repository \\(GitHub, GitHub Enterprise, or Bitbucket\\), the option is ignored\\. \nLOCAL\\_DOCKER\\_LAYER\\_CACHE \nCaches existing Docker layers\\. This mode is a good choice for projects that build or pull large Docker images\\. It can prevent the performance issues caused by pulling large Docker images down from the network\\. \n+ You can use a Docker layer cache in the Linux environment only\\. \n+ The `privileged` flag must be set so that your project has the required Docker permissions\\. \n+ You should consider the security implications before you use a Docker layer cache\\. \nLOCAL\\_CUSTOM\\_CACHE \nCaches directories you specify in the buildspec file\\. This mode is a good choice if your build scenario is not suited to one of the other three local cache modes\\. If you use a custom cache: \n+ Only directories can be specified for caching\\. You cannot specify individual files\\. \n+ Symlinks are used to reference cached directories\\. \n+ Cached directories are linked to your build before it downloads its project sources\\. Cached items are overridden if a source item has the same name\\. Directories are specified using cache paths in the buildspec file\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Modes", + "type": "array" + }, + "Type": { + "markdownDescription": "The type of cache used by the build project\\. Valid values include: \n+ `NO_CACHE`: The build project does not use any cache\\.\n+ `S3`: The build project reads and writes from and to S3\\.\n+ `LOCAL`: The build project stores a cache locally on a build host that is only available to that build host\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `LOCAL | NO_CACHE | S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.ProjectFileSystemLocation": { + "additionalProperties": false, + "properties": { + "Identifier": { + "markdownDescription": "The name used to access a file system created by Amazon EFS\\. CodeBuild creates an environment variable by appending the `identifier` in all capital letters to `CODEBUILD_`\\. For example, if you specify `my_efs` for `identifier`, a new environment variable is create named `CODEBUILD_MY_EFS`\\. \n The `identifier` is used to mount your file system\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Identifier", + "type": "string" + }, + "Location": { + "markdownDescription": "A string that specifies the location of the file system created by Amazon EFS\\. Its format is `efs-dns-name:/directory-path`\\. You can find the DNS name of file system when you view it in the Amazon EFS console\\. The directory path is a path to a directory in the file system that CodeBuild mounts\\. For example, if the DNS name of a file system is `fs-abcd1234.efs.us-west-2.amazonaws.com`, and its mount directory is `my-efs-mount-directory`, then the `location` is `fs-abcd1234.efs.us-west-2.amazonaws.com:/my-efs-mount-directory`\\. \nThe directory path in the format `efs-dns-name:/directory-path` is optional\\. If you do not specify a directory path, the location is only the DNS name and CodeBuild mounts the entire file system\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", + "type": "string" + }, + "MountOptions": { + "markdownDescription": "The mount options for a file system created by Amazon EFS\\. The default mount options used by CodeBuild are `nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2`\\. For more information, see [Recommended NFS Mount Options](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-nfs-mount-settings.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MountOptions", + "type": "string" + }, + "MountPoint": { + "markdownDescription": "The location in the container where you mount the file system\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MountPoint", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of the file system\\. The one supported type is `EFS`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EFS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Identifier", + "Location", + "MountPoint", + "Type" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.ProjectSourceVersion": { + "additionalProperties": false, + "properties": { + "SourceIdentifier": { + "markdownDescription": "An identifier for a source in the build project\\. The identifier can only contain alphanumeric characters and underscores, and must be less than 128 characters in length\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceIdentifier", + "type": "string" + }, + "SourceVersion": { + "markdownDescription": "The source version for the corresponding source identifier\\. If specified, must be one of: \n+ For CodeCommit: the commit ID, branch, or Git tag to use\\.\n+ For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build\\. If a pull request ID is specified, it must use the format `pr/pull-request-ID` \\(for example, `pr/25`\\)\\. If a branch name is specified, the branch's HEAD commit ID is used\\. If not specified, the default branch's HEAD commit ID is used\\.\n+ For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build\\. If a branch name is specified, the branch's HEAD commit ID is used\\. If not specified, the default branch's HEAD commit ID is used\\.\n+ For Amazon S3: the version ID of the object that represents the build input ZIP file to use\\.\n For more information, see [Source Version Sample with CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-source-version.html) in the * AWS CodeBuild User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceVersion", + "type": "string" + } + }, + "required": [ + "SourceIdentifier" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.ProjectTriggers": { + "additionalProperties": false, + "properties": { + "BuildType": { + "markdownDescription": "Specifies the type of build this webhook will trigger\\. Allowed values are: \nBUILD \nA single build \nBUILD\\_BATCH \nA batch build\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BuildType", + "type": "string" + }, + "FilterGroups": { + "items": { + "$ref": "#/definitions/AWS::CodeBuild::Project.FilterGroup" + }, + "markdownDescription": "A list of lists of `WebhookFilter` objects used to determine which webhook events are triggered\\. At least one `WebhookFilter` in the array must specify `EVENT` as its type\\. \n*Required*: No \n*Type*: List of [FilterGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-filtergroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterGroups", + "type": "array" + }, + "Webhook": { + "markdownDescription": "Specifies whether or not to begin automatically rebuilding the source code every time a code change is pushed to the repository\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Webhook", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::CodeBuild::Project.RegistryCredential": { + "additionalProperties": false, + "properties": { + "Credential": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) or name of credentials created using AWS Secrets Manager\\. \n The `credential` can use the name of the credentials only if they exist in your current AWS Region\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Credential", + "type": "string" + }, + "CredentialProvider": { + "markdownDescription": "The service that created the credentials to access a private Docker registry\\. The valid value, SECRETS\\_MANAGER, is for AWS Secrets Manager\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SECRETS_MANAGER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CredentialProvider", + "type": "string" + } + }, + "required": [ + "Credential", + "CredentialProvider" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.S3LogsConfig": { + "additionalProperties": false, + "properties": { + "EncryptionDisabled": { + "markdownDescription": "Set to true if you do not want your S3 build log output encrypted\\. By default S3 build logs are encrypted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionDisabled", + "type": "boolean" + }, + "Location": { + "markdownDescription": "The ARN of an S3 bucket and the path prefix for S3 logs\\. If your Amazon S3 bucket name is `my-bucket`, and your path prefix is `build-log`, then acceptable formats are `my-bucket/build-log` or `arn:aws:s3:::my-bucket/build-log`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", + "type": "string" + }, + "Status": { + "markdownDescription": "The current status of the S3 build logs\\. Valid values are: \n+ `ENABLED`: S3 build logs are enabled for this build project\\.\n+ `DISABLED`: S3 build logs are not enabled for this build project\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.Source": { + "additionalProperties": false, + "properties": { + "Auth": { + "$ref": "#/definitions/AWS::CodeBuild::Project.SourceAuth", + "markdownDescription": "Information about the authorization settings for AWS CodeBuild to access the source code to be built\\. \nThis information is for the AWS CodeBuild console's use only\\. Your code should not get or set `Auth` directly\\. \n*Required*: No \n*Type*: [SourceAuth](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-sourceauth.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Auth" + }, + "BuildSpec": { + "markdownDescription": "The build specification for the project\\. If this value is not provided, then the source code must contain a buildspec file named `buildspec.yml` at the root level\\. If this value is provided, it can be either a single string containing the entire build specification, or the path to an alternate buildspec file relative to the value of the built\\-in environment variable `CODEBUILD_SRC_DIR`\\. The alternate buildspec file can have a name other than `buildspec.yml`, for example `myspec.yml` or `build_spec_qa.yml` or similar\\. For more information, see the [Build Spec Reference](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-example) in the *AWS CodeBuild User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BuildSpec", + "type": "string" + }, + "BuildStatusConfig": { + "$ref": "#/definitions/AWS::CodeBuild::Project.BuildStatusConfig", + "markdownDescription": "Contains information that defines how the build project reports the build status to the source provider\\. This option is only used when the source provider is `GITHUB`, `GITHUB_ENTERPRISE`, or `BITBUCKET`\\. \n*Required*: No \n*Type*: [BuildStatusConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-buildstatusconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BuildStatusConfig" + }, + "GitCloneDepth": { + "markdownDescription": "The depth of history to download\\. Minimum value is 0\\. If this value is 0, greater than 25, or not provided, then the full history is downloaded with each build project\\. If your source type is Amazon S3, this value is not supported\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GitCloneDepth", + "type": "number" + }, + "GitSubmodulesConfig": { + "$ref": "#/definitions/AWS::CodeBuild::Project.GitSubmodulesConfig", + "markdownDescription": "Information about the Git submodules configuration for the build project\\. \n*Required*: No \n*Type*: [GitSubmodulesConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-gitsubmodulesconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GitSubmodulesConfig" + }, + "InsecureSsl": { + "markdownDescription": "This is used with GitHub Enterprise only\\. Set to true to ignore SSL warnings while connecting to your GitHub Enterprise project repository\\. The default value is `false`\\. `InsecureSsl` should be used for testing purposes only\\. It should not be used in a production environment\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InsecureSsl", + "type": "boolean" + }, + "Location": { + "markdownDescription": "Information about the location of the source code to be built\\. Valid values include: \n+ For source code settings that are specified in the source action of a pipeline in CodePipeline, `location` should not be specified\\. If it is specified, CodePipeline ignores it\\. This is because CodePipeline uses the settings in a pipeline's source action instead of this value\\.\n+ For source code in an CodeCommit repository, the HTTPS clone URL to the repository that contains the source code and the buildspec file \\(for example, `https://git-codecommit..amazonaws.com/v1/repos/`\\)\\.\n+ For source code in an Amazon S3 input bucket, one of the following\\. \n + The path to the ZIP file that contains the source code \\(for example, `//.zip`\\)\\. \n + The path to the folder that contains the source code \\(for example, `///`\\)\\. \n+ For source code in a GitHub repository, the HTTPS clone URL to the repository that contains the source and the buildspec file\\. You must connect your AWS account to your GitHub account\\. Use the AWS CodeBuild console to start creating a build project\\. When you use the console to connect \\(or reconnect\\) with GitHub, on the GitHub **Authorize application** page, for **Organization access**, choose **Request access** next to each repository you want to allow AWS CodeBuild to have access to, and then choose **Authorize application**\\. \\(After you have connected to your GitHub account, you do not need to finish creating the build project\\. You can leave the AWS CodeBuild console\\.\\) To instruct AWS CodeBuild to use this connection, in the `source` object, set the `auth` object's `type` value to `OAUTH`\\.\n+ For source code in a Bitbucket repository, the HTTPS clone URL to the repository that contains the source and the buildspec file\\. You must connect your AWS account to your Bitbucket account\\. Use the AWS CodeBuild console to start creating a build project\\. When you use the console to connect \\(or reconnect\\) with Bitbucket, on the Bitbucket **Confirm access to your account** page, choose **Grant access**\\. \\(After you have connected to your Bitbucket account, you do not need to finish creating the build project\\. You can leave the AWS CodeBuild console\\.\\) To instruct AWS CodeBuild to use this connection, in the `source` object, set the `auth` object's `type` value to `OAUTH`\\.\n If you specify `CODEPIPELINE` for the `Type` property, don't specify this property\\. For all of the other types, you must specify `Location`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", + "type": "string" + }, + "ReportBuildStatus": { + "markdownDescription": "Set to true to report the status of a build's start and finish to your source provider\\. This option is valid only when your source provider is GitHub, GitHub Enterprise, or Bitbucket\\. If this is set and you use a different source provider, an `invalidInputException` is thrown\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReportBuildStatus", + "type": "boolean" + }, + "SourceIdentifier": { + "markdownDescription": "An identifier for this project source\\. The identifier can only contain alphanumeric characters and underscores, and must be less than 128 characters in length\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceIdentifier", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of repository that contains the source code to be built\\. Valid values include: \n+ `BITBUCKET`: The source code is in a Bitbucket repository\\.\n+ `CODECOMMIT`: The source code is in an CodeCommit repository\\.\n+ `CODEPIPELINE`: The source code settings are specified in the source action of a pipeline in CodePipeline\\.\n+ `GITHUB`: The source code is in a GitHub or GitHub Enterprise Cloud repository\\.\n+ `GITHUB_ENTERPRISE`: The source code is in a GitHub Enterprise Server repository\\.\n+ `NO_SOURCE`: The project does not have input source code\\.\n+ `S3`: The source code is in an Amazon S3 bucket\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `BITBUCKET | CODECOMMIT | CODEPIPELINE | GITHUB | GITHUB_ENTERPRISE | NO_SOURCE | S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.SourceAuth": { + "additionalProperties": false, + "properties": { + "Resource": { + "markdownDescription": "The resource value that applies to the specified authorization type\\. \n This data type is used by the AWS CodeBuild console only\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Resource", + "type": "string" + }, + "Type": { + "markdownDescription": "The authorization type to use\\. The only valid value is `OAUTH`, which represents the OAuth authorization type\\. \n This data type is used by the AWS CodeBuild console only\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `OAUTH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of one or more security groups IDs in your Amazon VPC\\. The maximum count is 5\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of one or more subnet IDs in your Amazon VPC\\. The maximum count is 16\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `16` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subnets", + "type": "array" + }, + "VpcId": { + "markdownDescription": "The ID of the Amazon VPC\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcId", + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeBuild::Project.WebhookFilter": { + "additionalProperties": false, + "properties": { + "ExcludeMatchedPattern": { + "markdownDescription": "Used to indicate that the `pattern` determines which webhook events do not trigger a build\\. If true, then a webhook event that does not match the `pattern` triggers a build\\. If false, then a webhook event that matches the `pattern` triggers a build\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludeMatchedPattern", + "type": "boolean" + }, + "Pattern": { + "markdownDescription": "For a `WebHookFilter` that uses `EVENT` type, a comma\\-separated string that specifies one or more events\\. For example, the webhook filter `PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED` allows all push, pull request created, and pull request updated events to trigger a build\\. \n For a `WebHookFilter` that uses any of the other filter types, a regular expression pattern\\. For example, a `WebHookFilter` that uses `HEAD_REF` for its `type` and the pattern `^refs/heads/` triggers a build when the head reference is a branch with a reference name `refs/heads/branch-name`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Pattern", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of webhook filter\\. There are six webhook filter types: `EVENT`, `ACTOR_ACCOUNT_ID`, `HEAD_REF`, `BASE_REF`, `FILE_PATH`, and `COMMIT_MESSAGE`\\. \n EVENT \n A webhook event triggers a build when the provided `pattern` matches one of five event types: `PUSH`, `PULL_REQUEST_CREATED`, `PULL_REQUEST_UPDATED`, `PULL_REQUEST_REOPENED`, and `PULL_REQUEST_MERGED`\\. The `EVENT` patterns are specified as a comma\\-separated string\\. For example, `PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED` filters all push, pull request created, and pull request updated events\\. \n The `PULL_REQUEST_REOPENED` works with GitHub and GitHub Enterprise only\\. \n ACTOR\\_ACCOUNT\\_ID \n A webhook event triggers a build when a GitHub, GitHub Enterprise, or Bitbucket account ID matches the regular expression `pattern`\\. \n HEAD\\_REF \n A webhook event triggers a build when the head reference matches the regular expression `pattern`\\. For example, `refs/heads/branch-name` and `refs/tags/tag-name`\\. \n Works with GitHub and GitHub Enterprise push, GitHub and GitHub Enterprise pull request, Bitbucket push, and Bitbucket pull request events\\. \n BASE\\_REF \n A webhook event triggers a build when the base reference matches the regular expression `pattern`\\. For example, `refs/heads/branch-name`\\. \n Works with pull request events only\\. \n FILE\\_PATH \n A webhook triggers a build when the path of a changed file matches the regular expression `pattern`\\. \n Works with GitHub and Bitbucket events push and pull requests events\\. Also works with GitHub Enterprise push events, but does not work with GitHub Enterprise pull request events\\. \nCOMMIT\\_MESSAGE \nA webhook triggers a build when the head commit message matches the regular expression `pattern`\\. \n Works with GitHub and Bitbucket events push and pull requests events\\. Also works with GitHub Enterprise push events, but does not work with GitHub Enterprise pull request events\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ACTOR_ACCOUNT_ID | BASE_REF | COMMIT_MESSAGE | EVENT | FILE_PATH | HEAD_REF` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "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": { + "markdownDescription": "When deleting a report group, specifies if reports within the report group should be deleted\\. \ntrue \nDeletes any reports that belong to the report group before deleting the report group\\. \nfalse \nYou must delete any reports in the report group\\. This is the default value\\. If you delete a report group that contains one or more reports, an exception is thrown\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteReports", + "type": "boolean" + }, + "ExportConfig": { + "$ref": "#/definitions/AWS::CodeBuild::ReportGroup.ReportExportConfig", + "markdownDescription": "Information about the destination where the raw data of this `ReportGroup` is exported\\. \n*Required*: Yes \n*Type*: [ReportExportConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-reportgroup-reportexportconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExportConfig" + }, + "Name": { + "markdownDescription": "The name of the `ReportGroup`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `128` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of tag key and value pairs associated with this report group\\. \nThese tags are available for use by AWS services that support AWS CodeBuild report group tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Type": { + "markdownDescription": "The type of the `ReportGroup`\\. This can be one of the following values: \nCODE\\_COVERAGE \nThe report group contains code coverage reports\\. \nTEST \nThe report group contains test reports\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `CODE_COVERAGE | TEST` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The export configuration type\\. Valid values are: \n+ `S3`: The report results are exported to an S3 bucket\\. \n+ `NO_EXPORT`: The report results are not exported\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `NO_EXPORT | S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExportConfigType", + "type": "string" + }, + "S3Destination": { + "$ref": "#/definitions/AWS::CodeBuild::ReportGroup.S3ReportExportConfig", + "markdownDescription": "A `S3ReportExportConfig` object that contains information about the S3 bucket where the run of a report is exported\\. \n*Required*: No \n*Type*: [S3ReportExportConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-reportgroup-s3reportexportconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Destination" + } + }, + "required": [ + "ExportConfigType" + ], + "type": "object" + }, + "AWS::CodeBuild::ReportGroup.S3ReportExportConfig": { + "additionalProperties": false, + "properties": { + "Bucket": { + "markdownDescription": "The name of the S3 bucket where the raw data of a report are exported\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", + "type": "string" + }, + "BucketOwner": { + "markdownDescription": "The AWS account identifier of the owner of the Amazon S3 bucket\\. This allows report data to be exported to an Amazon S3 bucket that is owned by an account other than the account running the build\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketOwner", + "type": "string" + }, + "EncryptionDisabled": { + "markdownDescription": "A boolean value that specifies if the results of a report are encrypted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionDisabled", + "type": "boolean" + }, + "EncryptionKey": { + "markdownDescription": "The encryption key for the report's encrypted raw data\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionKey", + "type": "string" + }, + "Packaging": { + "markdownDescription": "The type of build output artifact to create\\. Valid values include: \n+ `NONE`: CodeBuild creates the raw data in the output bucket\\. This is the default if packaging is not specified\\. \n+ `ZIP`: CodeBuild creates a ZIP file with the raw data in the output bucket\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | ZIP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Packaging", + "type": "string" + }, + "Path": { + "markdownDescription": "The path to the exported report's raw data results\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The type of authentication used by the credentials\\. Valid options are OAUTH, BASIC\\_AUTH, or PERSONAL\\_ACCESS\\_TOKEN\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BASIC_AUTH | OAUTH | PERSONAL_ACCESS_TOKEN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthType", + "type": "string" + }, + "ServerType": { + "markdownDescription": "The type of source provider\\. The valid options are GITHUB, GITHUB\\_ENTERPRISE, or BITBUCKET\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BITBUCKET | GITHUB | GITHUB_ENTERPRISE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServerType", + "type": "string" + }, + "Token": { + "markdownDescription": "For GitHub or GitHub Enterprise, this is the personal access token\\. For Bitbucket, this is the app password\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Token", + "type": "string" + }, + "Username": { + "markdownDescription": "The Bitbucket username when the `authType` is BASIC\\_AUTH\\. This parameter is not valid for other types of source providers or connections\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Information about code to be committed to a repository after it is created in an AWS CloudFormation stack\\. Information about code is only used in resource creation\\. Updates to a stack will not reflect changes made to code properties after initial resource creation\\. \nYou can only use this property to add code when creating a repository with a AWS CloudFormation template at creation time\\. This property cannot be used for updating code to an existing repository\\.\n*Required*: No \n*Type*: [Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-code.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Code" + }, + "RepositoryDescription": { + "markdownDescription": "A comment or description about the new repository\\. \nThe description field for a repository accepts all HTML characters and all valid Unicode characters\\. Applications that do not HTML\\-encode the description and display it in a webpage can expose users to potentially malicious code\\. Make sure that you HTML\\-encode the description field in any application that uses this API to display the repository description on a webpage\\.\n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepositoryDescription", + "type": "string" + }, + "RepositoryName": { + "markdownDescription": "The name of the new repository to be created\\. \nThe repository name must be unique across the calling AWS account\\. Repository names are limited to 100 alphanumeric, dash, and underscore characters, and cannot include certain characters\\. For more information about the limits on repository names, see [Quotas](https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html) in the * AWS CodeCommit User Guide*\\. The suffix \\.git is prohibited\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[\\w\\.-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepositoryName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "One or more tag key\\-value pairs to use when tagging this repository\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Triggers": { + "items": { + "$ref": "#/definitions/AWS::CodeCommit::Repository.RepositoryTrigger" + }, + "markdownDescription": "The JSON block of configuration information for each trigger\\. \n*Required*: No \n*Type*: List of [RepositoryTrigger](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Triggers", + "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": { + "markdownDescription": "Optional\\. Specifies a branch name to be used as the default branch when importing code into a repository on initial creation\\. If this property is not set, the name *main* will be used for the default branch for the repository\\. Changes to this property are ignored after initial resource creation\\. We recommend using this parameter to set the name to *main* to align with the default behavior of CodeCommit unless another name is needed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BranchName", + "type": "string" + }, + "S3": { + "$ref": "#/definitions/AWS::CodeCommit::Repository.S3", + "markdownDescription": "Information about the Amazon S3 bucket that contains a ZIP file of code to be committed to the repository\\. Changes to this property are ignored after initial resource creation\\. \n*Required*: Yes \n*Type*: [S3](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-s3.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3" + } + }, + "required": [ + "S3" + ], + "type": "object" + }, + "AWS::CodeCommit::Repository.RepositoryTrigger": { + "additionalProperties": false, + "properties": { + "Branches": { + "items": { + "type": "string" + }, + "markdownDescription": "The branches to be included in the trigger configuration\\. If you specify an empty array, the trigger applies to all branches\\. \nAlthough no content is required in the array, you must include the array itself\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Branches", + "type": "array" + }, + "CustomData": { + "markdownDescription": "Any custom data associated with the trigger to be included in the information sent to the target of the trigger\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomData", + "type": "string" + }, + "DestinationArn": { + "markdownDescription": "The ARN of the resource that is the target for a trigger \\(for example, the ARN of a topic in Amazon SNS\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationArn", + "type": "string" + }, + "Events": { + "items": { + "type": "string" + }, + "markdownDescription": "The repository events that cause the trigger to run actions in another service, such as sending a notification through Amazon SNS\\. \nThe valid value \"all\" cannot be used with any other values\\.\n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Events", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the trigger\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "DestinationArn", + "Events", + "Name" + ], + "type": "object" + }, + "AWS::CodeCommit::Repository.S3": { + "additionalProperties": false, + "properties": { + "Bucket": { + "markdownDescription": "The name of the Amazon S3 bucket that contains the ZIP file with the content that will be committed to the new repository\\. This can be specified using the name of the bucket in the AWS account\\. Changes to this property are ignored after initial resource creation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", + "type": "string" + }, + "Key": { + "markdownDescription": "The key to use for accessing the Amazon S3 bucket\\. Changes to this property are ignored after initial resource creation\\. For more information, see [Creating object key names](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html) and [Uploading objects](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) in the Amazon S3 User Guide\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "ObjectVersion": { + "markdownDescription": "The object version of the ZIP file, if versioning is enabled for the Amazon S3 bucket\\. Changes to this property are ignored after initial resource creation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A name for the application\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the application name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \n Updates to `ApplicationName` are not supported\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationName", + "type": "string" + }, + "ComputePlatform": { + "markdownDescription": "The compute platform that CodeDeploy deploys the application to\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ECS | Lambda | Server` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ComputePlatform", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The metadata that you apply to CodeDeploy applications to help you organize and categorize them\\. Each tag consists of a key and an optional value, both of which you define\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The destination platform type for the deployment \\(`Lambda`, `Server`, or `ECS`\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ECS | Lambda | Server` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ComputePlatform", + "type": "string" + }, + "DeploymentConfigName": { + "markdownDescription": "A name for the deployment configuration\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the deployment configuration name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \n If you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeploymentConfigName", + "type": "string" + }, + "MinimumHealthyHosts": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts", + "markdownDescription": "The minimum number of healthy instances that should be available at any time during the deployment\\. There are two parameters expected in the input: type and value\\. \nThe type parameter takes either of the following values: \n+ HOST\\_COUNT: The value parameter represents the minimum number of healthy instances as an absolute value\\.\n+ FLEET\\_PERCENT: The value parameter represents the minimum number of healthy instances as a percentage of the total number of instances in the deployment\\. If you specify FLEET\\_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instance and rounds up fractional instances\\.\nThe value parameter takes an integer\\. \nFor example, to set a minimum of 95% healthy instance, specify a type of FLEET\\_PERCENT and a value of 95\\. \n For more information about instance health, see [CodeDeploy Instance Health](https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-health.html) in the AWS CodeDeploy User Guide\\. \n*Required*: No \n*Type*: [MinimumHealthyHosts](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-minimumhealthyhosts.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MinimumHealthyHosts" + }, + "TrafficRoutingConfig": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.TrafficRoutingConfig", + "markdownDescription": "The configuration that specifies how the deployment traffic is routed\\. \n*Required*: No \n*Type*: [TrafficRoutingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-trafficroutingconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The minimum healthy instance type: \n+ HOST\\_COUNT: The minimum number of healthy instance as an absolute value\\.\n+ FLEET\\_PERCENT: The minimum number of healthy instance as a percentage of the total number of instance in the deployment\\.\nIn an example of nine instance, if a HOST\\_COUNT of six is specified, deploy to up to three instances at a time\\. The deployment is successful if six or more instances are deployed to successfully\\. Otherwise, the deployment fails\\. If a FLEET\\_PERCENT of 40 is specified, deploy to up to five instance at a time\\. The deployment is successful if four or more instance are deployed to successfully\\. Otherwise, the deployment fails\\. \nIn a call to `GetDeploymentConfig`, CodeDeployDefault\\.OneAtATime returns a minimum healthy instance type of MOST\\_CONCURRENCY and a value of 1\\. This means a deployment to only one instance at a time\\. \\(You cannot set the type to MOST\\_CONCURRENCY, only to HOST\\_COUNT or FLEET\\_PERCENT\\.\\) In addition, with CodeDeployDefault\\.OneAtATime, AWS CodeDeploy attempts to ensure that all instances but one are kept in a healthy state during the deployment\\. Although this allows one instance at a time to be taken offline for a new deployment, it also means that if the deployment to the last instance fails, the overall deployment is still successful\\.\nFor more information, see [AWS CodeDeploy Instance Health](https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-health.html) in the *AWS CodeDeploy User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `FLEET_PERCENT | HOST_COUNT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "Value": { + "markdownDescription": "The minimum healthy instance value\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "number" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::CodeDeploy::DeploymentConfig.TimeBasedCanary": { + "additionalProperties": false, + "properties": { + "CanaryInterval": { + "markdownDescription": "The number of minutes between the first and second traffic shifts of a `TimeBasedCanary` deployment\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CanaryInterval", + "type": "number" + }, + "CanaryPercentage": { + "markdownDescription": "The percentage of traffic to shift in the first increment of a `TimeBasedCanary` deployment\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CanaryPercentage", + "type": "number" + } + }, + "required": [ + "CanaryInterval", + "CanaryPercentage" + ], + "type": "object" + }, + "AWS::CodeDeploy::DeploymentConfig.TimeBasedLinear": { + "additionalProperties": false, + "properties": { + "LinearInterval": { + "markdownDescription": "The number of minutes between each incremental traffic shift of a `TimeBasedLinear` deployment\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LinearInterval", + "type": "number" + }, + "LinearPercentage": { + "markdownDescription": "The percentage of traffic that is shifted at the start of each increment of a `TimeBasedLinear` deployment\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LinearPercentage", + "type": "number" + } + }, + "required": [ + "LinearInterval", + "LinearPercentage" + ], + "type": "object" + }, + "AWS::CodeDeploy::DeploymentConfig.TrafficRoutingConfig": { + "additionalProperties": false, + "properties": { + "TimeBasedCanary": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.TimeBasedCanary", + "markdownDescription": "A configuration that shifts traffic from one version of a Lambda function or ECS task set to another in two increments\\. The original and target Lambda function versions or ECS task sets are specified in the deployment's AppSpec file\\. \n*Required*: No \n*Type*: [TimeBasedCanary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-timebasedcanary.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeBasedCanary" + }, + "TimeBasedLinear": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.TimeBasedLinear", + "markdownDescription": "A configuration that shifts traffic from one version of a Lambda function or Amazon ECS task set to another in equal increments, with an equal number of minutes between each increment\\. The original and target Lambda function versions or Amazon ECS task sets are specified in the deployment's AppSpec file\\. \n*Required*: No \n*Type*: [TimeBasedLinear](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-timebasedlinear.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeBasedLinear" + }, + "Type": { + "markdownDescription": "The type of traffic shifting \\(`TimeBasedCanary` or `TimeBasedLinear`\\) used by a deployment configuration\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AllAtOnce | TimeBasedCanary | TimeBasedLinear` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "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", + "markdownDescription": "Information about the Amazon CloudWatch alarms that are associated with the deployment group\\. \n*Required*: No \n*Type*: [AlarmConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarmconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmConfiguration" + }, + "ApplicationName": { + "markdownDescription": "The name of an existing CodeDeploy application to associate this deployment group with\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationName", + "type": "string" + }, + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration", + "markdownDescription": "Information about the automatic rollback configuration that is associated with the deployment group\\. If you specify this property, don't specify the `Deployment` property\\. \n*Required*: No \n*Type*: [AutoRollbackConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-autorollbackconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoRollbackConfiguration" + }, + "AutoScalingGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of associated Auto Scaling groups that CodeDeploy automatically deploys revisions to when new instances are created\\. Duplicates are not allowed\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoScalingGroups", + "type": "array" + }, + "BlueGreenDeploymentConfiguration": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.BlueGreenDeploymentConfiguration", + "markdownDescription": "Information about blue/green deployment options for a deployment group\\. \n*Required*: No \n*Type*: [BlueGreenDeploymentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlueGreenDeploymentConfiguration" + }, + "Deployment": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Deployment", + "markdownDescription": "The application revision to deploy to this deployment group\\. If you specify this property, your target application revision is deployed as soon as the provisioning process is complete\\. If you specify this property, don't specify the `AutoRollbackConfiguration` property\\. \n*Required*: No \n*Type*: [Deployment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Deployment" + }, + "DeploymentConfigName": { + "markdownDescription": "A deployment configuration name or a predefined configuration name\\. With predefined configurations, you can deploy application revisions to one instance at a time \\(`CodeDeployDefault.OneAtATime`\\), half of the instances at a time \\(`CodeDeployDefault.HalfAtATime`\\), or all the instances at once \\(`CodeDeployDefault.AllAtOnce`\\)\\. For more information and valid values, see [Working with Deployment Configurations](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html) in the *AWS CodeDeploy User Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentConfigName", + "type": "string" + }, + "DeploymentGroupName": { + "markdownDescription": "A name for the deployment group\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the deployment group name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \n If you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeploymentGroupName", + "type": "string" + }, + "DeploymentStyle": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.DeploymentStyle", + "markdownDescription": "Attributes that determine the type of deployment to run and whether to route deployment traffic behind a load balancer\\. \n If you specify this property with a blue/green deployment type, don't specify the `AutoScalingGroups`, `LoadBalancerInfo`, or `Deployment` properties\\. \n For blue/green deployments, AWS CloudFormation supports deployments on Lambda compute platforms only\\. You can perform Amazon ECS blue/green deployments using `AWS::CodeDeploy::BlueGreen ` hook\\. See [Perform Amazon ECS blue/green deployments through CodeDeploy using AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/blue-green.html) for more information\\. \n*Required*: No \n*Type*: [DeploymentStyle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentstyle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentStyle" + }, + "ECSServices": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.ECSService" + }, + "markdownDescription": "The target Amazon ECS services in the deployment group\\. This applies only to deployment groups that use the Amazon ECS compute platform\\. A target Amazon ECS service is specified as an Amazon ECS cluster and service name pair using the format `:`\\. \n*Required*: No \n*Type*: List of [ECSService](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ecsservice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ECSServices", + "type": "array" + }, + "Ec2TagFilters": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter" + }, + "markdownDescription": "The Amazon EC2 tags that are already applied to Amazon EC2 instances that you want to include in the deployment group\\. CodeDeploy includes all Amazon EC2 instances identified by any of the tags you specify in this deployment group\\. Duplicates are not allowed\\. \n You can specify `EC2TagFilters` or `Ec2TagSet`, but not both\\. \n*Required*: No \n*Type*: List of [EC2TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ec2TagFilters", + "type": "array" + }, + "Ec2TagSet": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSet", + "markdownDescription": "Information about groups of tags applied to Amazon EC2 instances\\. The deployment group includes only Amazon EC2 instances identified by all the tag groups\\. Cannot be used in the same call as `ec2TagFilter`\\. \n*Required*: No \n*Type*: [EC2TagSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ec2TagSet" + }, + "LoadBalancerInfo": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo", + "markdownDescription": "Information about the load balancer to use in a deployment\\. For more information, see [ Integrating CodeDeploy with Elastic Load Balancing](https://docs.aws.amazon.com/codedeploy/latest/userguide/integrations-aws-elastic-load-balancing.html) in the *AWS CodeDeploy User Guide*\\. \n*Required*: No \n*Type*: [LoadBalancerInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-loadbalancerinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerInfo" + }, + "OnPremisesInstanceTagFilters": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter" + }, + "markdownDescription": "The on\\-premises instance tags already applied to on\\-premises instances that you want to include in the deployment group\\. CodeDeploy includes all on\\-premises instances identified by any of the tags you specify in this deployment group\\. To register on\\-premises instances with CodeDeploy, see [Working with On\\-Premises Instances for CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/instances-on-premises.html) in the *AWS CodeDeploy User Guide*\\. Duplicates are not allowed\\. \n You can specify `OnPremisesInstanceTagFilters` or `OnPremisesInstanceTagSet`, but not both\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnPremisesInstanceTagFilters", + "type": "array" + }, + "OnPremisesTagSet": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet", + "markdownDescription": "Information about groups of tags applied to on\\-premises instances\\. The deployment group includes only on\\-premises instances identified by all the tag groups\\. \n You can specify `OnPremisesInstanceTagFilters` or `OnPremisesInstanceTagSet`, but not both\\. \n*Required*: No \n*Type*: [OnPremisesTagSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisestagset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnPremisesTagSet" + }, + "OutdatedInstancesStrategy": { + "type": "string" + }, + "ServiceRoleArn": { + "markdownDescription": "A service role Amazon Resource Name \\(ARN\\) that grants CodeDeploy permission to make calls to AWS services on your behalf\\. For more information, see [Create a Service Role for AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-create-service-role.html) in the *AWS CodeDeploy User Guide*\\. \n In some cases, you might need to add a dependency on the service role's policy\\. For more information, see IAM role policy in [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html)\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceRoleArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TriggerConfigurations": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TriggerConfig" + }, + "markdownDescription": "Information about triggers associated with the deployment group\\. Duplicates are not allowed \n*Required*: No \n*Type*: List of [TriggerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-triggerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TriggerConfigurations", + "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": { + "markdownDescription": "The name of the alarm\\. Maximum length is 255 characters\\. Each alarm name can be used only once in a list of alarms\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Alarm" + }, + "markdownDescription": "A list of alarms configured for the deployment group\\. A maximum of 10 alarms can be added to a deployment group\\. \n*Required*: No \n*Type*: List of [Alarm](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarm.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alarms", + "type": "array" + }, + "Enabled": { + "markdownDescription": "Indicates whether the alarm configuration is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "IgnorePollAlarmFailure": { + "markdownDescription": "Indicates whether a deployment should continue if information about the current state of alarms cannot be retrieved from Amazon CloudWatch\\. The default value is `false`\\. \n+ `true`: The deployment proceeds even if alarm status information can't be retrieved from CloudWatch\\.\n+ `false`: The deployment stops if alarm status information can't be retrieved from CloudWatch\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IgnorePollAlarmFailure", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Indicates whether a defined automatic rollback configuration is currently enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "Events": { + "items": { + "type": "string" + }, + "markdownDescription": "The event type or types that trigger a rollback\\. Valid values are `DEPLOYMENT_FAILURE`, `DEPLOYMENT_STOP_ON_ALARM`, or `DEPLOYMENT_STOP_ON_REQUEST`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Events", + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.BlueGreenDeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "DeploymentReadyOption": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.DeploymentReadyOption", + "markdownDescription": "Information about the action to take when newly provisioned instances are ready to receive traffic in a blue/green deployment\\. \n*Required*: No \n*Type*: [DeploymentReadyOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentreadyoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentReadyOption" + }, + "GreenFleetProvisioningOption": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.GreenFleetProvisioningOption", + "markdownDescription": "Information about how instances are provisioned for a replacement environment in a blue/green deployment\\. \n*Required*: No \n*Type*: [GreenFleetProvisioningOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-greenfleetprovisioningoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GreenFleetProvisioningOption" + }, + "TerminateBlueInstancesOnDeploymentSuccess": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.BlueInstanceTerminationOption", + "markdownDescription": "Information about whether to terminate instances in the original fleet during a blue/green deployment\\. \n*Required*: No \n*Type*: [BlueInstanceTerminationOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-blueinstanceterminationoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TerminateBlueInstancesOnDeploymentSuccess" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.BlueInstanceTerminationOption": { + "additionalProperties": false, + "properties": { + "Action": { + "markdownDescription": "The action to take on instances in the original environment after a successful blue/green deployment\\. \n+ `TERMINATE`: Instances are terminated after a specified wait time\\.\n+ `KEEP_ALIVE`: Instances are left running after they are deregistered from the load balancer and removed from the deployment group\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `KEEP_ALIVE | TERMINATE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", + "type": "string" + }, + "TerminationWaitTimeInMinutes": { + "markdownDescription": "For an Amazon EC2 deployment, the number of minutes to wait after a successful blue/green deployment before terminating instances from the original environment\\. \n For an Amazon ECS deployment, the number of minutes before deleting the original \\(blue\\) task set\\. During an Amazon ECS deployment, CodeDeploy shifts traffic from the original \\(blue\\) task set to a replacement \\(green\\) task set\\. \n The maximum setting is 2880 minutes \\(2 days\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TerminationWaitTimeInMinutes", + "type": "number" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.Deployment": { + "additionalProperties": false, + "properties": { + "Description": { + "markdownDescription": "A comment about the deployment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "IgnoreApplicationStopFailures": { + "markdownDescription": "If true, then if an `ApplicationStop`, `BeforeBlockTraffic`, or `AfterBlockTraffic` deployment lifecycle event to an instance fails, then the deployment continues to the next deployment lifecycle event\\. For example, if `ApplicationStop` fails, the deployment continues with DownloadBundle\\. If `BeforeBlockTraffic` fails, the deployment continues with `BlockTraffic`\\. If `AfterBlockTraffic` fails, the deployment continues with `ApplicationStop`\\. \n If false or not specified, then if a lifecycle event fails during a deployment to an instance, that deployment fails\\. If deployment to that instance is part of an overall deployment and the number of healthy hosts is not less than the minimum number of healthy hosts, then a deployment to the next instance is attempted\\. \n During a deployment, the AWS CodeDeploy agent runs the scripts specified for `ApplicationStop`, `BeforeBlockTraffic`, and `AfterBlockTraffic` in the AppSpec file from the previous successful deployment\\. \\(All other scripts are run from the AppSpec file in the current deployment\\.\\) If one of these scripts contains an error and does not run successfully, the deployment can fail\\. \n If the cause of the failure is a script from the last successful deployment that will never run successfully, create a new deployment and use `ignoreApplicationStopFailures` to specify that the `ApplicationStop`, `BeforeBlockTraffic`, and `AfterBlockTraffic` failures should be ignored\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IgnoreApplicationStopFailures", + "type": "boolean" + }, + "Revision": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.RevisionLocation", + "markdownDescription": "Information about the location of stored application artifacts and the service from which to retrieve them\\. \n*Required*: Yes \n*Type*: [RevisionLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Revision" + } + }, + "required": [ + "Revision" + ], + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.DeploymentReadyOption": { + "additionalProperties": false, + "properties": { + "ActionOnTimeout": { + "markdownDescription": "Information about when to reroute traffic from an original environment to a replacement environment in a blue/green deployment\\. \n+ CONTINUE\\_DEPLOYMENT: Register new instances with the load balancer immediately after the new application revision is installed on the instances in the replacement environment\\.\n+ STOP\\_DEPLOYMENT: Do not register new instances with a load balancer unless traffic rerouting is started using [ContinueDeployment ](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ContinueDeployment.html)\\. If traffic rerouting is not started before the end of the specified wait period, the deployment status is changed to Stopped\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `CONTINUE_DEPLOYMENT | STOP_DEPLOYMENT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionOnTimeout", + "type": "string" + }, + "WaitTimeInMinutes": { + "markdownDescription": "The number of minutes to wait before the status of a blue/green deployment is changed to Stopped if rerouting is not started manually\\. Applies only to the `STOP_DEPLOYMENT` option for `actionOnTimeout`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WaitTimeInMinutes", + "type": "number" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.DeploymentStyle": { + "additionalProperties": false, + "properties": { + "DeploymentOption": { + "markdownDescription": "Indicates whether to route deployment traffic behind a load balancer\\. \n An Amazon EC2 Application Load Balancer or Network Load Balancer is required for an Amazon ECS deployment\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `WITH_TRAFFIC_CONTROL | WITHOUT_TRAFFIC_CONTROL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentOption", + "type": "string" + }, + "DeploymentType": { + "markdownDescription": "Indicates whether to run an in\\-place or blue/green deployment\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BLUE_GREEN | IN_PLACE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.EC2TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The tag filter key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Type": { + "markdownDescription": "The tag filter type: \n+ `KEY_ONLY`: Key only\\.\n+ `VALUE_ONLY`: Value only\\.\n+ `KEY_AND_VALUE`: Key and value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `KEY_AND_VALUE | KEY_ONLY | VALUE_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "Value": { + "markdownDescription": "The tag filter value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.EC2TagSet": { + "additionalProperties": false, + "properties": { + "Ec2TagSetList": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject" + }, + "markdownDescription": "The Amazon EC2 tags that are already applied to Amazon EC2 instances that you want to include in the deployment group\\. CodeDeploy includes all Amazon EC2 instances identified by any of the tags you specify in this deployment group\\. \n Duplicates are not allowed\\. \n*Required*: No \n*Type*: List of [EC2TagSetListObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagsetlistobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ec2TagSetList", + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject": { + "additionalProperties": false, + "properties": { + "Ec2TagGroup": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter" + }, + "markdownDescription": "A list that contains other lists of Amazon EC2 instance tag groups\\. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list\\. \n*Required*: No \n*Type*: List of [EC2TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ec2TagGroup", + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.ECSService": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "markdownDescription": "The name of the cluster that the Amazon ECS service is associated with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterName", + "type": "string" + }, + "ServiceName": { + "markdownDescription": "The name of the target Amazon ECS service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceName", + "type": "string" + } + }, + "required": [ + "ClusterName", + "ServiceName" + ], + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.ELBInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "For blue/green deployments, the name of the load balancer that is used to route traffic from original instances to replacement instances in a blue/green deployment\\. For in\\-place deployments, the name of the load balancer that instances are deregistered from so they are not serving traffic during a deployment, and then re\\-registered with after the deployment is complete\\. \nAWS CloudFormation supports blue/green deployments on AWS Lambda compute platforms only\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.GitHubLocation": { + "additionalProperties": false, + "properties": { + "CommitId": { + "markdownDescription": "The SHA1 commit ID of the GitHub commit that represents the bundled artifacts for the application revision\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CommitId", + "type": "string" + }, + "Repository": { + "markdownDescription": "The GitHub account and repository pair that stores a reference to the commit that represents the bundled artifacts for the application revision\\. \nSpecify the value as `account/repository`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Repository", + "type": "string" + } + }, + "required": [ + "CommitId", + "Repository" + ], + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.GreenFleetProvisioningOption": { + "additionalProperties": false, + "properties": { + "Action": { + "markdownDescription": "The method used to add instances to a replacement environment\\. \n+ `DISCOVER_EXISTING`: Use instances that already exist or will be created manually\\.\n+ `COPY_AUTO_SCALING_GROUP`: Use settings from a specified Auto Scaling group to define and create instances in a new Auto Scaling group\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `COPY_AUTO_SCALING_GROUP | DISCOVER_EXISTING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo": { + "additionalProperties": false, + "properties": { + "ElbInfoList": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.ELBInfo" + }, + "markdownDescription": "An array that contains information about the load balancer to use for load balancing in a deployment\\. In Elastic Load Balancing, load balancers are used with Classic Load Balancers\\. \n Adding more than one load balancer to the array is not supported\\. \n*Required*: No \n*Type*: List of [ELBInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-elbinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElbInfoList", + "type": "array" + }, + "TargetGroupInfoList": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo" + }, + "markdownDescription": "An array that contains information about the target group to use for load balancing in a deployment\\. In Elastic Load Balancing, target groups are used with Application Load Balancers\\. \n Adding more than one target group to the array is not supported\\. \n*Required*: Conditional \n*Type*: List of [TargetGroupInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-targetgroupinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroupInfoList", + "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" + }, + "markdownDescription": "A list that contains other lists of on\\-premises instance tag groups\\. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list\\. \nDuplicates are not allowed\\. \n*Required*: No \n*Type*: List of [OnPremisesTagSetListObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisestagsetlistobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnPremisesTagSetList", + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject": { + "additionalProperties": false, + "properties": { + "OnPremisesTagGroup": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter" + }, + "markdownDescription": "Information about groups of on\\-premises instance tags\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnPremisesTagGroup", + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.RevisionLocation": { + "additionalProperties": false, + "properties": { + "GitHubLocation": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.GitHubLocation", + "markdownDescription": "Information about the location of application artifacts stored in GitHub\\. \n*Required*: No \n*Type*: [GitHubLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-githublocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GitHubLocation" + }, + "RevisionType": { + "markdownDescription": "The type of application revision: \n+ S3: An application revision stored in Amazon S3\\.\n+ GitHub: An application revision stored in GitHub \\(EC2/On\\-premises deployments only\\)\\.\n+ String: A YAML\\-formatted or JSON\\-formatted string \\(AWS Lambda deployments only\\)\\.\n+ AppSpecContent: An `AppSpecContent` object that contains the contents of an AppSpec file for an AWS Lambda or Amazon ECS deployment\\. The content is formatted as JSON or YAML stored as a RawString\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `AppSpecContent | GitHub | S3 | String` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RevisionType", + "type": "string" + }, + "S3Location": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.S3Location", + "markdownDescription": "Information about the location of a revision stored in Amazon S3\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Location" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "markdownDescription": "The name of the Amazon S3 bucket where the application revision is stored\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", + "type": "string" + }, + "BundleType": { + "markdownDescription": "The file type of the application revision\\. Must be one of the following: \n+ JSON\n+ tar: A tar archive file\\.\n+ tgz: A compressed tar archive file\\.\n+ YAML\n+ zip: A zip archive file\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `JSON | tar | tgz | YAML | zip` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BundleType", + "type": "string" + }, + "ETag": { + "markdownDescription": "The ETag of the Amazon S3 object that represents the bundled artifacts for the application revision\\. \nIf the ETag is not specified as an input parameter, ETag validation of the object is skipped\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ETag", + "type": "string" + }, + "Key": { + "markdownDescription": "The name of the Amazon S3 object that represents the bundled artifacts for the application revision\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Version": { + "markdownDescription": "A specific version of the Amazon S3 object that represents the bundled artifacts for the application revision\\. \nIf the version is not specified, the system uses the most recent version by default\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The on\\-premises instance tag filter key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Type": { + "markdownDescription": "The on\\-premises instance tag filter type: \n+ KEY\\_ONLY: Key only\\.\n+ VALUE\\_ONLY: Value only\\.\n+ KEY\\_AND\\_VALUE: Key and value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `KEY_AND_VALUE | KEY_ONLY | VALUE_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "Value": { + "markdownDescription": "The on\\-premises instance tag filter value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "For blue/green deployments, the name of the target group that instances in the original environment are deregistered from, and instances in the replacement environment registered with\\. For in\\-place deployments, the name of the target group that instances are deregistered from, so they are not serving traffic during a deployment, and then re\\-registered with after the deployment completes\\. No duplicates allowed\\. \nAWS CloudFormation supports blue/green deployments on AWS Lambda compute platforms only\\.\nThis value cannot exceed 32 characters, so you should use the `Name` property of the target group, or the `TargetGroupName` attribute with the `Fn::GetAtt` intrinsic function, as shown in the following example\\. Don't use the group's Amazon Resource Name \\(ARN\\) or `TargetGroupFullName` attribute\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The event type or types that trigger notifications\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TriggerEvents", + "type": "array" + }, + "TriggerName": { + "markdownDescription": "The name of the notification trigger\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TriggerName", + "type": "string" + }, + "TriggerTargetArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon Simple Notification Service topic through which notifications about deployment or instance events are sent\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The agent permissions attached to this profiling group\\. This action group grants `ConfigureAgent` and `PostAgentProfile` permissions to perform actions required by the profiling agent\\. The Json consists of key `Principals`\\. \n*Principals*: A list of string ARNs for the roles and users you want to grant access to the profiling group\\. Wildcards are not supported in the ARNs\\. You are allowed to provide up to 50 ARNs\\. An empty list is not permitted\\. This is a required key\\. \nFor more information, see [Resource\\-based policies in CodeGuru Profiler](https://docs.aws.amazon.com/codeguru/latest/profiler-ug/resource-based-policies.html) in the *Amazon CodeGuru Profiler user guide*, [ConfigureAgent](https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html), and [PostAgentProfile](https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_PostAgentProfile.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AgentPermissions" + }, + "AnomalyDetectionNotificationConfiguration": { + "items": { + "$ref": "#/definitions/AWS::CodeGuruProfiler::ProfilingGroup.Channel" + }, + "markdownDescription": "Adds anomaly notifications for a profiling group\\. \n*Required*: No \n*Type*: List of [Channel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codeguruprofiler-profilinggroup-channel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AnomalyDetectionNotificationConfiguration", + "type": "array" + }, + "ComputePlatform": { + "markdownDescription": "The compute platform of the profiling group\\. Use `AWSLambda` if your application runs on AWS Lambda\\. Use `Default` if your application runs on a compute platform that is not AWS Lambda, such an Amazon EC2 instance, an on\\-premises server, or a different platform\\. If not specified, `Default` is used\\. This property is immutable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ComputePlatform", + "type": "string" + }, + "ProfilingGroupName": { + "markdownDescription": "The name of the profiling group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProfilingGroupName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of tags to add to the created profiling group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The channel ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "channelId", + "type": "string" + }, + "channelUri": { + "markdownDescription": "The channel URI\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the bucket\\. This is required for your S3Bucket repositoryThe name must start with the prefix, `codeguru-reviewer-*`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketName", + "type": "string" + }, + "ConnectionArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS CodeStar Connections connection\\. Its format is `arn:aws:codestar-connections:region-id:aws-account_id:connection/connection-id`\\. For more information, see [Connection](https://docs.aws.amazon.com/codestar-connections/latest/APIReference/API_Connection.html) in the *AWS CodeStar Connections API Reference*\\. \n `ConnectionArn` must be specified for Bitbucket and GitHub Enterprise Server repositories\\. It has no effect if it is specified for an AWS CodeCommit repository\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `arn:aws(-[\\w]+)*:.+:.+:[0-9]{12}:.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectionArn", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the repository\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^\\S[\\w.-]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Owner": { + "markdownDescription": "The owner of the repository\\. For a GitHub Enterprise Server or Bitbucket repository, this is the username for the account that owns the repository\\. \n `Owner` must be specified for Bitbucket and GitHub Enterprise Server repositories\\. It has no effect if it is specified for an AWS CodeCommit repository\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^\\S(.*\\S)?$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Owner", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs used to tag an associated repository\\. A tag is a custom attribute label with two parts: \n+ A *tag key* \\(for example, `CostCenter`, `Environment`, `Project`, or `Secret`\\)\\. Tag keys are case sensitive\\.\n+ An optional field known as a *tag value* \\(for example, `111122223333`, `Production`, or a team name\\)\\. Omitting the tag value is the same as using an empty string\\. Like tag keys, tag values are case sensitive\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "type": "array" + }, + "Type": { + "markdownDescription": "The type of repository that contains the source code to be reviewed\\. The valid values are: \n+ `CodeCommit`\n+ `Bitbucket`\n+ `GitHubEnterpriseServer`\n+ `S3Bucket`\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The category of the custom action, such as a build action or a test action\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Approval | Build | Deploy | Invoke | Source | Test` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Category", + "type": "string" + }, + "ConfigurationProperties": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ConfigurationProperties" + }, + "markdownDescription": "The configuration properties for the custom action\\. \nYou can refer to a name in the configuration properties of the custom action within the URL templates by following the format of \\{Config:name\\}, as long as the configuration property is both required and not secret\\. For more information, see [Create a Custom Action for a Pipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/how-to-create-custom-action.html)\\.\n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html) of [ConfigurationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html) \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfigurationProperties", + "type": "array" + }, + "InputArtifactDetails": { + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails", + "markdownDescription": "The details of the input artifact for the action, such as its commit ID\\. \n*Required*: Yes \n*Type*: [ArtifactDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-artifactdetails.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InputArtifactDetails" + }, + "OutputArtifactDetails": { + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails", + "markdownDescription": "The details of the output artifact of the action, such as its commit ID\\. \n*Required*: Yes \n*Type*: [ArtifactDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-artifactdetails.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OutputArtifactDetails" + }, + "Provider": { + "markdownDescription": "The provider of the service used in the custom action, such as CodeDeploy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `35` \n*Pattern*: `[0-9A-Za-z_-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Provider", + "type": "string" + }, + "Settings": { + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.Settings", + "markdownDescription": "URLs that provide users information about this custom action\\. \n*Required*: No \n*Type*: [Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-settings.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Settings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags for the custom action\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Version": { + "markdownDescription": "The version identifier of the custom action\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `9` \n*Pattern*: `[0-9A-Za-z_-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The maximum number of artifacts allowed for the action type\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumCount", + "type": "number" + }, + "MinimumCount": { + "markdownDescription": "The minimum number of artifacts allowed for the action type\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinimumCount", + "type": "number" + } + }, + "required": [ + "MaximumCount", + "MinimumCount" + ], + "type": "object" + }, + "AWS::CodePipeline::CustomActionType.ConfigurationProperties": { + "additionalProperties": false, + "properties": { + "Description": { + "markdownDescription": "The description of the action configuration property that is displayed to users\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `160` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Key": { + "markdownDescription": "Whether the configuration property is a key\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "boolean" + }, + "Name": { + "markdownDescription": "The name of the action configuration property\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Queryable": { + "markdownDescription": "Indicates that the property is used with `PollForJobs`\\. When creating a custom action, an action can have up to one queryable property\\. If it has one, that property must be both required and not secret\\. \nIf you create a pipeline with a custom action type, and that custom action contains a queryable property, the value for that configuration property is subject to other restrictions\\. The value must be less than or equal to twenty \\(20\\) characters\\. The value can contain only alphanumeric characters, underscores, and hyphens\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Queryable", + "type": "boolean" + }, + "Required": { + "markdownDescription": "Whether the configuration property is a required value\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Required", + "type": "boolean" + }, + "Secret": { + "markdownDescription": "Whether the configuration property is secret\\. Secrets are hidden from all calls except for `GetJobDetails`, `GetThirdPartyJobDetails`, `PollForJobs`, and `PollForThirdPartyJobs`\\. \nWhen updating a pipeline, passing \\* \\* \\* \\* \\* without changing any other values of the action preserves the previous value of the secret\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Secret", + "type": "boolean" + }, + "Type": { + "markdownDescription": "The type of the configuration property\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Boolean | Number | String` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Key", + "Name", + "Required", + "Secret" + ], + "type": "object" + }, + "AWS::CodePipeline::CustomActionType.Settings": { + "additionalProperties": false, + "properties": { + "EntityUrlTemplate": { + "markdownDescription": "The URL returned to the CodePipeline console that provides a deep link to the resources of the external system, such as the configuration page for a CodeDeploy deployment group\\. This link is provided as part of the action display in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntityUrlTemplate", + "type": "string" + }, + "ExecutionUrlTemplate": { + "markdownDescription": "The URL returned to the CodePipeline console that contains a link to the top\\-level landing page for the external system, such as the console page for CodeDeploy\\. This link is shown on the pipeline view page in the CodePipeline console and provides a link to the execution entity of the external action\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionUrlTemplate", + "type": "string" + }, + "RevisionUrlTemplate": { + "markdownDescription": "The URL returned to the CodePipeline console that contains a link to the page where customers can update or change the configuration of the external action\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RevisionUrlTemplate", + "type": "string" + }, + "ThirdPartyConfigurationUrl": { + "markdownDescription": "The URL of a sign\\-up page where users can sign up for an external service and perform initial configuration of the action provided by that service\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The S3 bucket where artifacts for the pipeline are stored\\. \nYou must include either `artifactStore` or `artifactStores` in your pipeline, but you cannot use both\\. If you create a cross\\-region action in your pipeline, you must use `artifactStores`\\.\n*Required*: Conditional \n*Type*: [ArtifactStore](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArtifactStore" + }, + "ArtifactStores": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStoreMap" + }, + "markdownDescription": "A mapping of `artifactStore` objects and their corresponding AWS Regions\\. There must be an artifact store for the pipeline Region and for each cross\\-region action in the pipeline\\. \nYou must include either `artifactStore` or `artifactStores` in your pipeline, but you cannot use both\\. If you create a cross\\-region action in your pipeline, you must use `artifactStores`\\.\n*Required*: Conditional \n*Type*: List of [ArtifactStoreMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstoremap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArtifactStores", + "type": "array" + }, + "DisableInboundStageTransitions": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageTransition" + }, + "markdownDescription": "Represents the input of a `DisableStageTransition` action\\. \n*Required*: No \n*Type*: List of [StageTransition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-disableinboundstagetransitions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableInboundStageTransitions", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9.@\\-_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RestartExecutionOnUpdate": { + "markdownDescription": "Indicates whether to rerun the CodePipeline pipeline after you update it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestartExecutionOnUpdate", + "type": "boolean" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for CodePipeline to use to either perform actions with no `actionRoleArn`, or to use to assume roles for actions with an `actionRoleArn`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `arn:aws(-[\\w]+)*:iam::[0-9]{12}:role/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "Stages": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageDeclaration" + }, + "markdownDescription": "Represents information about a stage and its definition\\. \n*Required*: Yes \n*Type*: List of [StageDeclaration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Stages", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Specifies the tags applied to the pipeline\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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", + "markdownDescription": "Specifies the action type and the provider of the action\\. \n*Required*: Yes \n*Type*: [ActionTypeId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionTypeId" + }, + "Configuration": { + "markdownDescription": "The action's configuration\\. These are key\\-value pairs that specify input values for an action\\. For more information, see [Action Structure Requirements in CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements)\\. For the list of configuration properties for the AWS CloudFormation action type in CodePipeline, see [Configuration Properties Reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-action-reference.html) in the * AWS CloudFormation User Guide*\\. For template snippets with examples, see [Using Parameter Override Functions with CodePipeline Pipelines](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-parameter-override-functions.html) in the * AWS CloudFormation User Guide*\\. \nThe values can be represented in either JSON or YAML format\\. For example, the JSON configuration item format is as follows: \n *JSON:* \n `\"Configuration\" : { Key : Value },` \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configuration", + "type": "object" + }, + "InputArtifacts": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.InputArtifact" + }, + "markdownDescription": "The name or ID of the artifact consumed by the action, such as a test or build artifact\\. \nFor a CodeBuild action with multiple input artifacts, one of your input sources must be designated the PrimarySource\\. For more information, see the [CodeBuild action reference page](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodeBuild.html) in the *AWS CodePipeline User Guide*\\.\n*Required*: No \n*Type*: List of [InputArtifact](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-inputartifacts.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputArtifacts", + "type": "array" + }, + "Name": { + "markdownDescription": "The action declaration's name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9.@\\-_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Namespace": { + "markdownDescription": "The variable namespace associated with the action\\. All variables produced as output by this action fall under this namespace\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9@\\-_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", + "type": "string" + }, + "OutputArtifacts": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.OutputArtifact" + }, + "markdownDescription": "The name or ID of the result of the action declaration, such as a test or build artifact\\. \n*Required*: No \n*Type*: List of [OutputArtifact](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-outputartifacts.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputArtifacts", + "type": "array" + }, + "Region": { + "markdownDescription": "The action declaration's AWS Region, such as us\\-east\\-1\\. \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the IAM service role that performs the declared action\\. This is assumed through the roleArn for the pipeline\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `arn:aws(-[\\w]+)*:iam::[0-9]{12}:role/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "RunOrder": { + "markdownDescription": "The order in which actions are run\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `999` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RunOrder", + "type": "number" + } + }, + "required": [ + "ActionTypeId", + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.ActionTypeId": { + "additionalProperties": false, + "properties": { + "Category": { + "markdownDescription": "A category defines what kind of action can be taken in the stage, and constrains the provider type for the action\\. Valid categories are limited to one of the values below\\. \n+ `Source`\n+ `Build`\n+ `Test`\n+ `Deploy`\n+ `Invoke`\n+ `Approval`\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Category", + "type": "string" + }, + "Owner": { + "markdownDescription": "The creator of the action being called\\. There are three valid values for the `Owner` field in the action category section within your pipeline structure: `AWS`, `ThirdParty`, and `Custom`\\. For more information, see [Valid Action Types and Providers in CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#actions-valid-providers)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Owner", + "type": "string" + }, + "Provider": { + "markdownDescription": "The provider of the service being called by the action\\. Valid providers are determined by the action category\\. For example, an action in the Deploy category type might have a provider of CodeDeploy, which would be specified as `CodeDeploy`\\. For more information, see [Valid Action Types and Providers in CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#actions-valid-providers)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Provider", + "type": "string" + }, + "Version": { + "markdownDescription": "A string that describes the action version\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", + "type": "string" + } + }, + "required": [ + "Category", + "Owner", + "Provider", + "Version" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.ArtifactStore": { + "additionalProperties": false, + "properties": { + "EncryptionKey": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.EncryptionKey", + "markdownDescription": "The encryption key used to encrypt the data in the artifact store, such as an AWS Key Management Service \\(AWS KMS\\) key\\. If this is undefined, the default key for Amazon S3 is used\\. To see an example artifact store encryption key field, see the example structure here: [AWS::CodePipeline::Pipeline](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html)\\. \n*Required*: No \n*Type*: [EncryptionKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore-encryptionkey.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionKey" + }, + "Location": { + "markdownDescription": "The S3 bucket used for storing the artifacts for a pipeline\\. You can specify the name of an S3 bucket but not a folder in the bucket\\. A folder to contain the pipeline artifacts is created for you based on the name of the pipeline\\. You can use any S3 bucket in the same AWS Region as the pipeline to store your pipeline artifacts\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `[a-zA-Z0-9\\-\\.]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of the artifact store, such as S3\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Location", + "Type" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.ArtifactStoreMap": { + "additionalProperties": false, + "properties": { + "ArtifactStore": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore", + "markdownDescription": "Represents information about the S3 bucket where artifacts are stored for the pipeline\\. \nYou must include either `artifactStore` or `artifactStores` in your pipeline, but you cannot use both\\. If you create a cross\\-region action in your pipeline, you must use `artifactStores`\\.\n*Required*: Conditional \n*Type*: [ArtifactStore](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArtifactStore" + }, + "Region": { + "markdownDescription": "The action declaration's AWS Region, such as us\\-east\\-1\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", + "type": "string" + } + }, + "required": [ + "ArtifactStore", + "Region" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.BlockerDeclaration": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "Reserved for future use\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Type": { + "markdownDescription": "Reserved for future use\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Schedule` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.EncryptionKey": { + "additionalProperties": false, + "properties": { + "Id": { + "markdownDescription": "The ID used to identify the key\\. For an AWS KMS key, you can use the key ID, the key ARN, or the alias ARN\\. \nAliases are recognized only in the account that created the AWS KMS key\\. For cross\\-account actions, you can only use the key ID or key ARN to identify the key\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of encryption key, such as an AWS KMS key\\. When creating or updating a pipeline, the value must be set to 'KMS'\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Id", + "Type" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.InputArtifact": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the artifact to be worked on \\(for example, \"My App\"\\)\\. \nThe input artifact of an action must exactly match the output artifact declared in a preceding action, but the input artifact does not have to be the next action in strict sequence from the action that provided the output artifact\\. Actions in parallel can declare different output artifacts, which are in turn consumed by different following actions\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[a-zA-Z0-9_\\-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.OutputArtifact": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the output of an artifact, such as \"My App\"\\. \nThe output artifact name must exactly match the input artifact declared for a downstream action\\. However, the downstream action's input artifact does not have to be the next action in strict sequence from the action that provided the output artifact\\. Actions in parallel can declare different output artifacts, which are in turn consumed by different following actions\\. \nOutput artifact names must be unique within a pipeline\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[a-zA-Z0-9_\\-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.StageDeclaration": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionDeclaration" + }, + "markdownDescription": "The actions included in a stage\\. \n*Required*: Yes \n*Type*: List of [ActionDeclaration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", + "type": "array" + }, + "Blockers": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.BlockerDeclaration" + }, + "markdownDescription": "Reserved for future use\\. \n*Required*: No \n*Type*: List of [BlockerDeclaration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-blockers.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Blockers", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the stage\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9.@\\-_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "Actions", + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.StageTransition": { + "additionalProperties": false, + "properties": { + "Reason": { + "markdownDescription": "The reason given to the user that a stage is disabled, such as waiting for manual approval or manual tests\\. This message is displayed in the pipeline console UI\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Pattern*: `[a-zA-Z0-9!@ \\(\\)\\.\\*\\?\\-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Reason", + "type": "string" + }, + "StageName": { + "markdownDescription": "The name of the stage where you want to disable the inbound or outbound transition of artifacts\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9.@\\-_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Supported options are GITHUB\\_HMAC, IP, and UNAUTHENTICATED\\. \n+ For information about the authentication scheme implemented by GITHUB\\_HMAC, see [Securing your webhooks](https://developer.github.com/webhooks/securing/) on the GitHub Developer website\\.\n+ IP rejects webhooks trigger requests unless they originate from an IP address in the IP range whitelisted in the authentication configuration\\.\n+ UNAUTHENTICATED accepts all webhook trigger requests regardless of origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `GITHUB_HMAC | IP | UNAUTHENTICATED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Authentication", + "type": "string" + }, + "AuthenticationConfiguration": { + "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookAuthConfiguration", + "markdownDescription": "Properties that configure the authentication applied to incoming webhook trigger requests\\. The required properties depend on the authentication type\\. For GITHUB\\_HMAC, only the `SecretToken `property must be set\\. For IP, only the `AllowedIPRange `property must be set to a valid CIDR range\\. For UNAUTHENTICATED, no properties can be set\\. \n*Required*: Yes \n*Type*: [WebhookAuthConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-webhook-webhookauthconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticationConfiguration" + }, + "Filters": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookFilterRule" + }, + "markdownDescription": "A list of rules applied to the body/payload sent in the POST request to a webhook URL\\. All defined rules must pass for the request to be accepted and the pipeline started\\. \n*Required*: Yes \n*Type*: List of [WebhookFilterRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-webhook-webhookfilterrule.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filters", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the webhook\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9.@\\-_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RegisterWithThirdParty": { + "markdownDescription": "Configures a connection between the webhook that was created and the external tool with events to be detected\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegisterWithThirdParty", + "type": "boolean" + }, + "TargetAction": { + "markdownDescription": "The name of the action in a pipeline you want to connect to the webhook\\. The action must be from the source \\(first\\) stage of the pipeline\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9.@\\-_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetAction", + "type": "string" + }, + "TargetPipeline": { + "markdownDescription": "The name of the pipeline you want to connect to the webhook\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `[A-Za-z0-9.@\\-_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetPipeline", + "type": "string" + }, + "TargetPipelineVersion": { + "markdownDescription": "The version number of the pipeline to be connected to the trigger request\\. \nRequired: Yes \nType: Integer \n Update requires: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt) \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The property used to configure acceptance of webhooks in an IP address range\\. For IP, only the `AllowedIPRange` property must be set\\. This property must be set to a valid CIDR range\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedIPRange", + "type": "string" + }, + "SecretToken": { + "markdownDescription": "The property used to configure GitHub authentication\\. For GITHUB\\_HMAC, only the `SecretToken` property must be set\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretToken", + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodePipeline::Webhook.WebhookFilterRule": { + "additionalProperties": false, + "properties": { + "JsonPath": { + "markdownDescription": "A JsonPath expression that is applied to the body/payload of the webhook\\. The value selected by the JsonPath expression must match the value specified in the `MatchEquals` field\\. Otherwise, the request is ignored\\. For more information, see [Java JsonPath implementation](https://github.com/json-path/JsonPath) in GitHub\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `150` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JsonPath", + "type": "string" + }, + "MatchEquals": { + "markdownDescription": "The value selected by the `JsonPath` expression must match what is supplied in the `MatchEquals` field\\. Otherwise, the request is ignored\\. Properties from the target action configuration can be included as placeholders in this value by surrounding the action configuration key with curly brackets\\. For example, if the value supplied here is \"refs/heads/\\{Branch\\}\" and the target action has an action configuration property called \"Branch\" with a value of \"main\", the `MatchEquals` value is evaluated as \"refs/heads/main\"\\. For a list of action configuration properties for built\\-in action types, see [Pipeline Structure Reference Action Requirements](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `150` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Information about code to be committed to a repository after it is created in an AWS CloudFormation stack\\. \n*Required*: No \n*Type*: [Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codestar-githubrepository-code.html) \n*Update requires*: Updates are not supported\\.", + "title": "Code" + }, + "ConnectionArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionArn", + "type": "string" + }, + "EnableIssues": { + "markdownDescription": "Indicates whether to enable issues for the GitHub repository\\. You can use GitHub issues to track information and bugs for your repository\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: Updates are not supported\\.", + "title": "EnableIssues", + "type": "boolean" + }, + "IsPrivate": { + "markdownDescription": "Indicates whether the GitHub repository is a private repository\\. If so, you choose who can see and commit to this repository\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: Updates are not supported\\.", + "title": "IsPrivate", + "type": "boolean" + }, + "RepositoryAccessToken": { + "markdownDescription": "The GitHub user's personal access token for the GitHub repository\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "RepositoryAccessToken", + "type": "string" + }, + "RepositoryDescription": { + "markdownDescription": "A comment or description about the new repository\\. This description is displayed in GitHub after the repository is created\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "RepositoryDescription", + "type": "string" + }, + "RepositoryName": { + "markdownDescription": "The name of the repository you want to create in GitHub with AWS CloudFormation stack creation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "RepositoryName", + "type": "string" + }, + "RepositoryOwner": { + "markdownDescription": "The GitHub user name for the owner of the GitHub repository to be created\\. If this repository should be owned by a GitHub organization, provide its name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "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", + "markdownDescription": "Information about the Amazon S3 bucket that contains a ZIP file of code to be committed to the repository\\. \n*Required*: Yes \n*Type*: [S3](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codestar-githubrepository-s3.html) \n*Update requires*: Updates are not supported\\.", + "title": "S3" + } + }, + "required": [ + "S3" + ], + "type": "object" + }, + "AWS::CodeStar::GitHubRepository.S3": { + "additionalProperties": false, + "properties": { + "Bucket": { + "markdownDescription": "The name of the Amazon S3 bucket that contains the ZIP file with the content to be committed to the new repository\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "Bucket", + "type": "string" + }, + "Key": { + "markdownDescription": "The S3 object key or file name for the ZIP file\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "Key", + "type": "string" + }, + "ObjectVersion": { + "markdownDescription": "The object version of the ZIP file, if versioning is enabled for the Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "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": { + "markdownDescription": "The name of the connection\\. Connection names must be unique in an AWS user account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectionName", + "type": "string" + }, + "HostArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the host associated with the connection\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `arn:aws(-[\\w]+)*:codestar-connections:.+:[0-9]{12}:host\\/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostArn", + "type": "string" + }, + "ProviderType": { + "markdownDescription": "The name of the external provider where your third\\-party code repository is configured\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Bitbucket | GitHub | GitHubEnterpriseServer` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProviderType", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Specifies the tags applied to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedBy", + "type": "string" + }, + "DetailType": { + "markdownDescription": "The level of detail to include in the notifications for this resource\\. `BASIC` will include only the contents of the event as it would appear in Amazon CloudWatch\\. `FULL` will include any supplemental information provided by AWS CodeStar Notifications and/or the service for the resource for which the notification is created\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BASIC | FULL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DetailType", + "type": "string" + }, + "EventTypeId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventTypeId", + "type": "string" + }, + "EventTypeIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of event types associated with this notification rule\\. For a complete list of event types and IDs, see [Notification concepts](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/concepts.html#concepts-api) in the *Developer Tools Console User Guide*\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventTypeIds", + "type": "array" + }, + "Name": { + "markdownDescription": "The name for the notification rule\\. Notification rule names must be unique in your AWS account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[A-Za-z0-9\\-_ ]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Resource": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the resource to associate with the notification rule\\. Supported resources include pipelines in AWS CodePipeline, repositories in AWS CodeCommit, and build projects in AWS CodeBuild\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^arn:aws[^:\\s]*:[^:\\s]*:[^:\\s]*:[0-9]{12}:[^\\s]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Resource", + "type": "string" + }, + "Status": { + "markdownDescription": "The status of the notification rule\\. The default value is `ENABLED`\\. If the status is set to `DISABLED`, notifications aren't sent for the notification rule\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + }, + "Tags": { + "markdownDescription": "A list of tags to apply to this notification rule\\. Key names cannot start with \"`aws`\"\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "type": "object" + }, + "TargetAddress": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetAddress", + "type": "string" + }, + "Targets": { + "items": { + "$ref": "#/definitions/AWS::CodeStarNotifications::NotificationRule.Target" + }, + "markdownDescription": "A list of Amazon Resource Names \\(ARNs\\) of AWS Chatbot topics and AWS Chatbot clients to associate with the notification rule\\. \n*Required*: Yes \n*Type*: List of [Target](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codestarnotifications-notificationrule-target.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Targets", + "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Chatbot topic or AWS Chatbot client\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `320` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetAddress", + "type": "string" + }, + "TargetType": { + "markdownDescription": "The target type\\. Can be an Amazon Simple Notification Service topic or AWS Chatbot client\\. \n+ Amazon Simple Notification Service topics are specified as `SNS`\\.\n+ AWS Chatbot clients are specified as `AWSChatbotSlack`\\.\n*Required*: Yes \n*Type*: String \n*Pattern*: `^[A-Za-z]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Enables the Basic \\(Classic\\) authentication flow\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowClassicFlow", + "type": "boolean" + }, + "AllowUnauthenticatedIdentities": { + "markdownDescription": "Specifies whether the identity pool supports unauthenticated logins\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowUnauthenticatedIdentities", + "type": "boolean" + }, + "CognitoEvents": { + "markdownDescription": "The events to configure\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CognitoEvents", + "type": "object" + }, + "CognitoIdentityProviders": { + "items": { + "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoIdentityProvider" + }, + "markdownDescription": "The Amazon Cognito user pools and their client IDs\\. \n*Required*: No \n*Type*: List of [CognitoIdentityProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitoidentityprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CognitoIdentityProviders", + "type": "array" + }, + "CognitoStreams": { + "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoStreams", + "markdownDescription": "Configuration options for configuring Amazon Cognito streams\\. \n*Required*: No \n*Type*: [CognitoStreams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitostreams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CognitoStreams" + }, + "DeveloperProviderName": { + "markdownDescription": "The \"domain\" Amazon Cognito uses when referencing your users\\. This name acts as a placeholder that allows your backend and the Amazon Cognito service to communicate about the developer provider\\. For the `DeveloperProviderName`, you can use letters and periods \\(\\.\\), underscores \\(\\_\\), and dashes \\(\\-\\)\\. \n*Minimum length*: 1 \n*Maximum length*: 100 \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeveloperProviderName", + "type": "string" + }, + "IdentityPoolName": { + "markdownDescription": "The name of your Amazon Cognito identity pool\\. \n*Minimum length*: 1 \n*Maximum length*: 128 \n*Pattern*: `[\\w\\s+=,.@-]+` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentityPoolName", + "type": "string" + }, + "OpenIdConnectProviderARNs": { + "items": { + "type": "string" + }, + "markdownDescription": "The Amazon Resource Names \\(ARNs\\) of the OpenID connect providers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OpenIdConnectProviderARNs", + "type": "array" + }, + "PushSync": { + "$ref": "#/definitions/AWS::Cognito::IdentityPool.PushSync", + "markdownDescription": "The configuration options to be applied to the identity pool\\. \n*Required*: No \n*Type*: [PushSync](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-pushsync.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PushSync" + }, + "SamlProviderARNs": { + "items": { + "type": "string" + }, + "markdownDescription": "The Amazon Resource Names \\(ARNs\\) of the Security Assertion Markup Language \\(SAML\\) providers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SamlProviderARNs", + "type": "array" + }, + "SupportedLoginProviders": { + "markdownDescription": "Key\\-value pairs that map provider names to provider app IDs\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The client ID for the Amazon Cognito user pool\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientId", + "type": "string" + }, + "ProviderName": { + "markdownDescription": "The provider name for an Amazon Cognito user pool\\. For example: `cognito-idp.us-east-2.amazonaws.com/us-east-2_123456789`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProviderName", + "type": "string" + }, + "ServerSideTokenCheck": { + "markdownDescription": "TRUE if server\\-side token validation is enabled for the identity provider\u2019s token\\. \nAfter you set the `ServerSideTokenCheck` to TRUE for an identity pool, that identity pool checks with the integrated user pools to make sure the user has not been globally signed out or deleted before the identity pool provides an OIDC token or AWS credentials for the user\\. \nIf the user is signed out or deleted, the identity pool returns a 400 Not Authorized error\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerSideTokenCheck", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Cognito::IdentityPool.CognitoStreams": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role Amazon Cognito can assume to publish to the stream\\. This role must grant access to Amazon Cognito \\(cognito\\-sync\\) to invoke `PutRecord` on your Amazon Cognito stream\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "StreamName": { + "markdownDescription": "The name of the Amazon Cognito stream to receive updates\\. This stream must be in the developer's account and in the same Region as the identity pool\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamName", + "type": "string" + }, + "StreamingStatus": { + "markdownDescription": "Status of the Amazon Cognito streams\\. Valid values are: `ENABLED` or `DISABLED`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamingStatus", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::IdentityPool.PushSync": { + "additionalProperties": false, + "properties": { + "ApplicationArns": { + "items": { + "type": "string" + }, + "markdownDescription": "The ARNs of the Amazon SNS platform applications that could be used by clients\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationArns", + "type": "array" + }, + "RoleArn": { + "markdownDescription": "An IAM role configured to allow Amazon Cognito to call Amazon SNS on behalf of the developer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "An identity pool ID in the format `REGION:GUID`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IdentityPoolId", + "type": "string" + }, + "RoleMappings": { + "markdownDescription": "How users for a specific identity provider are mapped to roles\\. This is a string to the `RoleMapping` object map\\. The string identifies the identity provider\\. For example: `graph.facebook.com` or `cognito-idp.us-east-1.amazonaws.com/us-east-1_abcdefghi:app_client_id`\\. \nIf the `IdentityProvider` field isn't provided in this object, the string is used as the identity provider name\\. \nFor more information, see the [RoleMapping property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rolemapping.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleMappings", + "type": "object" + }, + "Roles": { + "markdownDescription": "The map of the roles associated with this pool\\. For a given role, the key is either \"authenticated\" or \"unauthenticated\"\\. The value is the role ARN\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The claim name that must be present in the token\\. For example: \"isAdmin\" or \"paid\"\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Claim", + "type": "string" + }, + "MatchType": { + "markdownDescription": "The match condition that specifies how closely the claim value in the IdP token must match `Value`\\. \nValid values are: `Equals`, `Contains`, `StartsWith`, and `NotEqual`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MatchType", + "type": "string" + }, + "RoleARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleARN", + "type": "string" + }, + "Value": { + "markdownDescription": "A brief string that the claim must match\\. For example, \"paid\" or \"yes\"\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Claim", + "MatchType", + "RoleARN", + "Value" + ], + "type": "object" + }, + "AWS::Cognito::IdentityPoolRoleAttachment.RoleMapping": { + "additionalProperties": false, + "properties": { + "AmbiguousRoleResolution": { + "markdownDescription": "Specifies the action to be taken if either no rules match the claim value for the Rules type, or there is no `cognito:preferred_role` claim and there are multiple `cognito:roles` matches for the Token type\\. If you specify Token or Rules as the Type, AmbiguousRoleResolution is required\\. \nValid values are `AuthenticatedRole` or `Deny`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AmbiguousRoleResolution", + "type": "string" + }, + "IdentityProvider": { + "markdownDescription": "Identifier for the identity provider for which the role is mapped\\. For example: `graph.facebook.com` or `cognito-idp.us-east-1.amazonaws.com/us-east-1_abcdefghi:app_client_id (http://cognito-idp.us-east-1.amazonaws.com/us-east-1_abcdefghi:app_client_id)`\\. This is the identity provider that is used by the user for authentication\\. \nIf the identity provider property isn't provided, the key of the entry in the `RoleMappings` map is used as the identity provider\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentityProvider", + "type": "string" + }, + "RulesConfiguration": { + "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType", + "markdownDescription": "The rules to be used for mapping users to roles\\. If you specify \"Rules\" as the role\\-mapping type, RulesConfiguration is required\\. \n*Required*: No \n*Type*: [RulesConfigurationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rulesconfigurationtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RulesConfiguration" + }, + "Type": { + "markdownDescription": "The role\\-mapping type\\. `Token` uses `cognito:roles` and `cognito:preferred_role` claims from the Amazon Cognito identity provider token to map groups to roles\\. `Rules` attempts to match claims from the token to map to a role\\. \nValid values are `Token` or `Rules`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.MappingRule" + }, + "markdownDescription": "The rules\\. You can specify up to 25 rules per identity provider\\. \n*Required*: Yes \n*Type*: List of [MappingRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-mappingrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", + "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", + "markdownDescription": "Use this setting to define which verified available method a user can use to recover their password when they call `ForgotPassword`\\. It allows you to define a preferred method when a user has more than one method available\\. With this setting, SMS does not qualify for a valid password recovery mechanism if the user also has SMS MFA enabled\\. In the absence of this setting, Cognito uses the legacy behavior to determine the recovery method where SMS is preferred over email\\. \n*Required*: No \n*Type*: [AccountRecoverySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-accountrecoverysetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountRecoverySetting" + }, + "AdminCreateUserConfig": { + "$ref": "#/definitions/AWS::Cognito::UserPool.AdminCreateUserConfig", + "markdownDescription": "The configuration for creating a new user profile\\. \n*Required*: No \n*Type*: [AdminCreateUserConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-admincreateuserconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdminCreateUserConfig" + }, + "AliasAttributes": { + "items": { + "type": "string" + }, + "markdownDescription": "Attributes supported as an alias for this user pool\\. Possible values: **phone\\_number**, **email**, or **preferred\\_username**\\. \nThis user pool property cannot be updated\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AliasAttributes", + "type": "array" + }, + "AutoVerifiedAttributes": { + "items": { + "type": "string" + }, + "markdownDescription": "The attributes to be auto\\-verified\\. Possible values: **email**, **phone\\_number**\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoVerifiedAttributes", + "type": "array" + }, + "DeletionProtection": { + "type": "string" + }, + "DeviceConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPool.DeviceConfiguration", + "markdownDescription": "The device configuration\\. \n*Required*: No \n*Type*: [DeviceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-deviceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceConfiguration" + }, + "EmailConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPool.EmailConfiguration", + "markdownDescription": "The email configuration\\. \n*Required*: No \n*Type*: [EmailConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-emailconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmailConfiguration" + }, + "EmailVerificationMessage": { + "markdownDescription": "A string representing the email verification message\\. EmailVerificationMessage is allowed only if [EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `20000` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*\\{####\\}[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmailVerificationMessage", + "type": "string" + }, + "EmailVerificationSubject": { + "markdownDescription": "A string representing the email verification subject\\. EmailVerificationSubject is allowed only if [EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `140` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmailVerificationSubject", + "type": "string" + }, + "EnabledMfas": { + "items": { + "type": "string" + }, + "markdownDescription": "Enables MFA on a specified user pool\\. To disable all MFAs after it has been enabled, set MfaConfiguration to \u201cOFF\u201d and remove EnabledMfas\\. MFAs can only be all disabled if MfaConfiguration is OFF\\. Once SMS\\_MFA is enabled, SMS\\_MFA can only be disabled by setting MfaConfiguration to \u201cOFF\u201d\\. Can be one of the following values: \n+ `SMS_MFA` \\- Enables SMS MFA for the user pool\\. SMS\\_MFA can only be enabled if SMS configuration is provided\\.\n+ `SOFTWARE_TOKEN_MFA` \\- Enables software token MFA for the user pool\\.\nAllowed values: `SMS_MFA` \\| `SOFTWARE_TOKEN_MFA` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnabledMfas", + "type": "array" + }, + "LambdaConfig": { + "$ref": "#/definitions/AWS::Cognito::UserPool.LambdaConfig", + "markdownDescription": "The Lambda trigger configuration information for the new user pool\\. \nIn a push model, event sources \\(such as Amazon S3 and custom applications\\) need permission to invoke a function\\. So you must make an extra call to add permission for these event sources to invoke your Lambda function\\. \n \nFor more information on using the Lambda API to add permission, see[ AddPermission ](https://docs.aws.amazon.com/lambda/latest/dg/API_AddPermission.html)\\. \nFor adding permission using the AWS CLI, see[ add\\-permission ](https://docs.aws.amazon.com/cli/latest/reference/lambda/add-permission.html)\\.\n*Required*: No \n*Type*: [LambdaConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaConfig" + }, + "MfaConfiguration": { + "markdownDescription": "The multi\\-factor \\(MFA\\) configuration\\. Valid values include: \n+ `OFF` MFA won't be used for any users\\.\n+ `ON` MFA is required for all users to sign in\\.\n+ `OPTIONAL` MFA will be required only for individual users who have an MFA factor activated\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `OFF | ON | OPTIONAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MfaConfiguration", + "type": "string" + }, + "Policies": { + "$ref": "#/definitions/AWS::Cognito::UserPool.Policies", + "markdownDescription": "The policy associated with a user pool\\. \n*Required*: No \n*Type*: [Policies](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-policies.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policies" + }, + "Schema": { + "items": { + "$ref": "#/definitions/AWS::Cognito::UserPool.SchemaAttribute" + }, + "markdownDescription": "The schema attributes for the new user pool\\. These attributes can be standard or custom attributes\\. \n During a user pool update, you can add new schema attributes but you cannot modify or delete an existing schema attribute\\.\n*Required*: No \n*Type*: List of [SchemaAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-schemaattribute.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schema", + "type": "array" + }, + "SmsAuthenticationMessage": { + "markdownDescription": "A string representing the SMS authentication message\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `140` \n*Pattern*: `.*\\{####\\}.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SmsAuthenticationMessage", + "type": "string" + }, + "SmsConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPool.SmsConfiguration", + "markdownDescription": "The SMS configuration\\. \n*Required*: No \n*Type*: [SmsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-smsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SmsConfiguration" + }, + "SmsVerificationMessage": { + "markdownDescription": "A string representing the SMS verification message\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `140` \n*Pattern*: `.*\\{####\\}.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SmsVerificationMessage", + "type": "string" + }, + "UserAttributeUpdateSettings": { + "$ref": "#/definitions/AWS::Cognito::UserPool.UserAttributeUpdateSettings" + }, + "UserPoolAddOns": { + "$ref": "#/definitions/AWS::Cognito::UserPool.UserPoolAddOns", + "markdownDescription": "Enables advanced security risk detection\\. Set the key `AdvancedSecurityMode` to the value \"AUDIT\"\\. \n*Required*: No \n*Type*: [UserPoolAddOns](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-userpooladdons.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolAddOns" + }, + "UserPoolName": { + "markdownDescription": "A string used to name the user pool\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w\\s+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolName", + "type": "string" + }, + "UserPoolTags": { + "markdownDescription": "The tag keys and values to assign to the user pool\\. A tag is a label that you can use to categorize and manage user pools in different ways, such as by purpose, owner, environment, or other criteria\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolTags", + "type": "object" + }, + "UsernameAttributes": { + "items": { + "type": "string" + }, + "markdownDescription": "Determines whether email addresses or phone numbers can be specified as user names when a user signs up\\. Possible values: `phone_number` or `email`\\. \nThis user pool property cannot be updated\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UsernameAttributes", + "type": "array" + }, + "UsernameConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPool.UsernameConfiguration", + "markdownDescription": "You can choose to set case sensitivity on the username input for the selected sign\\-in option\\. For example, when this is set to `False`, users will be able to sign in using either \"username\" or \"Username\"\\. This configuration is immutable once it has been set\\. \n*Required*: No \n*Type*: [UsernameConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-usernameconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UsernameConfiguration" + }, + "VerificationMessageTemplate": { + "$ref": "#/definitions/AWS::Cognito::UserPool.VerificationMessageTemplate", + "markdownDescription": "The template for the verification message that the user sees when the app requests permission to access the user's information\\. \n*Required*: No \n*Type*: [VerificationMessageTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-verificationmessagetemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The list of `RecoveryOptionTypes`\\. \n*Required*: No \n*Type*: List of [RecoveryOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-recoveryoption.html) \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecoveryMechanisms", + "type": "array" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.AdminCreateUserConfig": { + "additionalProperties": false, + "properties": { + "AllowAdminCreateUserOnly": { + "markdownDescription": "Set to `True` if only the administrator is allowed to create user profiles\\. Set to `False` if users can sign themselves up via an app\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowAdminCreateUserOnly", + "type": "boolean" + }, + "InviteMessageTemplate": { + "$ref": "#/definitions/AWS::Cognito::UserPool.InviteMessageTemplate", + "markdownDescription": "The message template to be used for the welcome message to new users\\. \nSee also [Customizing User Invitation Messages](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-message-customizations.html#cognito-user-pool-settings-user-invitation-message-customization)\\. \n*Required*: No \n*Type*: [InviteMessageTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-invitemessagetemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InviteMessageTemplate" + }, + "UnusedAccountValidityDays": { + "markdownDescription": "The user account expiration limit, in days, after which the account is no longer usable\\. To reset the account after that time limit, you must call `AdminCreateUser` again, specifying `\"RESEND\"` for the `MessageAction` parameter\\. The default value for this parameter is 7\\. \nIf you set a value for `TemporaryPasswordValidityDays` in `PasswordPolicy`, that value will be used, and `UnusedAccountValidityDays` will be no longer be an available parameter for that user pool\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `365` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnusedAccountValidityDays", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.CustomEmailSender": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Lambda function that Amazon Cognito triggers to send email notifications to users\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaArn", + "type": "string" + }, + "LambdaVersion": { + "markdownDescription": "The Lambda version represents the signature of the \"request\" attribute in the \"event\" information that Amazon Cognito passes to your custom email sender AWS Lambda function\\. The only supported value is `V1_0`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaVersion", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.CustomSMSSender": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Lambda function that Amazon Cognito triggers to send SMS notifications to users\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaArn", + "type": "string" + }, + "LambdaVersion": { + "markdownDescription": "The Lambda version represents the signature of the \"request\" attribute in the \"event\" information Amazon Cognito passes to your custom SMS sender Lambda function\\. The only supported value is `V1_0`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaVersion", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.DeviceConfiguration": { + "additionalProperties": false, + "properties": { + "ChallengeRequiredOnNewDevice": { + "markdownDescription": "When true, device authentication can replace SMS and time\\-based one\\-time password \\(TOTP\\) factors for multi\\-factor authentication \\(MFA\\)\\. \nUsers that sign in with devices that have not been confirmed or remembered will still have to provide a second factor, whether or not ChallengeRequiredOnNewDevice is true, when your user pool requires MFA\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChallengeRequiredOnNewDevice", + "type": "boolean" + }, + "DeviceOnlyRememberedOnUserPrompt": { + "markdownDescription": "When true, users can opt in to remembering their device\\. Your app code must use callback functions to return the user's choice\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceOnlyRememberedOnUserPrompt", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.EmailConfiguration": { + "additionalProperties": false, + "properties": { + "ConfigurationSet": { + "markdownDescription": "The set of configuration rules that can be applied to emails sent using Amazon SES\\. A configuration set is applied to an email by including a reference to the configuration set in the headers of the email\\. Once applied, all of the rules in that configuration set are applied to the email\\. Configuration sets can be used to apply the following types of rules to emails: \n+ Event publishing \u2013 Amazon SES can track the number of send, delivery, open, click, bounce, and complaint events for each email sent\\. Use event publishing to send information about these events to other AWS services such as SNS and CloudWatch\\.\n+ IP pool management \u2013 When leasing dedicated IP addresses with Amazon SES, you can create groups of IP addresses, called dedicated IP pools\\. You can then associate the dedicated IP pools with configuration sets\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9_-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfigurationSet", + "type": "string" + }, + "EmailSendingAccount": { + "markdownDescription": "Specifies whether Amazon Cognito emails your users by using its built\\-in email functionality or your Amazon Simple Email Service email configuration\\. Specify one of the following values: \nCOGNITO\\_DEFAULT \nWhen Amazon Cognito emails your users, it uses its built\\-in email functionality\\. When you use the default option, Amazon Cognito allows only a limited number of emails each day for your user pool\\. For typical production environments, the default email limit is less than the required delivery volume\\. To achieve a higher delivery volume, specify DEVELOPER to use your Amazon SES email configuration\\. \nTo look up the email delivery limit for the default option, see [Limits in ](https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html) in the * Developer Guide*\\. \nThe default FROM address is `no-reply@verificationemail.com`\\. To customize the FROM address, provide the Amazon Resource Name \\(ARN\\) of an Amazon SES verified email address for the `SourceArn` parameter\\. \n If EmailSendingAccount is COGNITO\\_DEFAULT, you can't use the following parameters: \n+ EmailVerificationMessage\n+ EmailVerificationSubject\n+ InviteMessageTemplate\\.EmailMessage\n+ InviteMessageTemplate\\.EmailSubject\n+ VerificationMessageTemplate\\.EmailMessage\n+ VerificationMessageTemplate\\.EmailMessageByLink\n+ VerificationMessageTemplate\\.EmailSubject,\n+ VerificationMessageTemplate\\.EmailSubjectByLink\nDEVELOPER EmailSendingAccount is required\\. \nDEVELOPER \nWhen Amazon Cognito emails your users, it uses your Amazon SES configuration\\. Amazon Cognito calls Amazon SES on your behalf to send email from your verified email address\\. When you use this option, the email delivery limits are the same limits that apply to your Amazon SES verified email address in your AWS account\\. \nIf you use this option, you must provide the ARN of an Amazon SES verified email address for the `SourceArn` parameter\\. \nBefore Amazon Cognito can email your users, it requires additional permissions to call Amazon SES on your behalf\\. When you update your user pool with this option, Amazon Cognito creates a *service\\-linked role*, which is a type of role, in your AWS account\\. This role contains the permissions that allow to access Amazon SES and send email messages with your address\\. For more information about the service\\-linked role that Amazon Cognito creates, see [Using Service\\-Linked Roles for Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/using-service-linked-roles.html) in the *Amazon Cognito Developer Guide*\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `COGNITO_DEFAULT | DEVELOPER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmailSendingAccount", + "type": "string" + }, + "From": { + "markdownDescription": "Identifies either the sender's email address or the sender's name with their email address\\. For example, `testuser@example.com` or `Test User `\\. This address appears before the body of the email\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "From", + "type": "string" + }, + "ReplyToEmailAddress": { + "markdownDescription": "The destination to which the receiver of the email should reply\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+@[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplyToEmailAddress", + "type": "string" + }, + "SourceArn": { + "markdownDescription": "The ARN of a verified email address in Amazon SES\\. Amazon Cognito uses this email address in one of the following ways, depending on the value that you specify for the `EmailSendingAccount` parameter: \n+ If you specify `COGNITO_DEFAULT`, Amazon Cognito uses this address as the custom FROM address when it emails your users using its built\\-in email account\\.\n+ If you specify `DEVELOPER`, Amazon Cognito emails your users with this address by calling Amazon SES on your behalf\\.\n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.InviteMessageTemplate": { + "additionalProperties": false, + "properties": { + "EmailMessage": { + "markdownDescription": "The message template for email messages\\. EmailMessage is allowed only if [EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `20000` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*\\{####\\}[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmailMessage", + "type": "string" + }, + "EmailSubject": { + "markdownDescription": "The subject line for email messages\\. EmailSubject is allowed only if [EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `140` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmailSubject", + "type": "string" + }, + "SMSMessage": { + "markdownDescription": "The message template for SMS messages\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `140` \n*Pattern*: `.*\\{####\\}.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SMSMessage", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.LambdaConfig": { + "additionalProperties": false, + "properties": { + "CreateAuthChallenge": { + "markdownDescription": "Creates an authentication challenge\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreateAuthChallenge", + "type": "string" + }, + "CustomEmailSender": { + "$ref": "#/definitions/AWS::Cognito::UserPool.CustomEmailSender", + "markdownDescription": "A custom email sender AWS Lambda trigger\\. \n*Required*: No \n*Type*: [CustomEmailSender](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-customemailsender.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomEmailSender" + }, + "CustomMessage": { + "markdownDescription": "A custom Message AWS Lambda trigger\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomMessage", + "type": "string" + }, + "CustomSMSSender": { + "$ref": "#/definitions/AWS::Cognito::UserPool.CustomSMSSender", + "markdownDescription": "A custom SMS sender AWS Lambda trigger\\. \n*Required*: No \n*Type*: [CustomSMSSender](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-customsmssender.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomSMSSender" + }, + "DefineAuthChallenge": { + "markdownDescription": "Defines the authentication challenge\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefineAuthChallenge", + "type": "string" + }, + "KMSKeyID": { + "markdownDescription": "The Amazon Resource Name of a AWS Key Management Service \\(AWS KMS\\) key\\. Amazon Cognito uses the key to encrypt codes and temporary passwords sent to `CustomEmailSender` and `CustomSMSSender`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KMSKeyID", + "type": "string" + }, + "PostAuthentication": { + "markdownDescription": "A post\\-authentication AWS Lambda trigger\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PostAuthentication", + "type": "string" + }, + "PostConfirmation": { + "markdownDescription": "A post\\-confirmation AWS Lambda trigger\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PostConfirmation", + "type": "string" + }, + "PreAuthentication": { + "markdownDescription": "A pre\\-authentication AWS Lambda trigger\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreAuthentication", + "type": "string" + }, + "PreSignUp": { + "markdownDescription": "A pre\\-registration AWS Lambda trigger\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreSignUp", + "type": "string" + }, + "PreTokenGeneration": { + "markdownDescription": "A Lambda trigger that is invoked before token generation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreTokenGeneration", + "type": "string" + }, + "UserMigration": { + "markdownDescription": "The user migration Lambda config type\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserMigration", + "type": "string" + }, + "VerifyAuthChallengeResponse": { + "markdownDescription": "Verifies the authentication challenge response\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VerifyAuthChallengeResponse", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.NumberAttributeConstraints": { + "additionalProperties": false, + "properties": { + "MaxValue": { + "markdownDescription": "The maximum value of an attribute that is of the number data type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxValue", + "type": "string" + }, + "MinValue": { + "markdownDescription": "The minimum value of an attribute that is of the number data type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinValue", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.PasswordPolicy": { + "additionalProperties": false, + "properties": { + "MinimumLength": { + "markdownDescription": "The minimum length of the password in the policy that you have set\\. This value can't be less than 6\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `6` \n*Maximum*: `99` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinimumLength", + "type": "number" + }, + "RequireLowercase": { + "markdownDescription": "In the password policy that you have set, refers to whether you have required users to use at least one lowercase letter in their password\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequireLowercase", + "type": "boolean" + }, + "RequireNumbers": { + "markdownDescription": "In the password policy that you have set, refers to whether you have required users to use at least one number in their password\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequireNumbers", + "type": "boolean" + }, + "RequireSymbols": { + "markdownDescription": "In the password policy that you have set, refers to whether you have required users to use at least one symbol in their password\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequireSymbols", + "type": "boolean" + }, + "RequireUppercase": { + "markdownDescription": "In the password policy that you have set, refers to whether you have required users to use at least one uppercase letter in their password\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequireUppercase", + "type": "boolean" + }, + "TemporaryPasswordValidityDays": { + "markdownDescription": "The number of days a temporary password is valid in the password policy\\. If the user doesn't sign in during this time, an administrator must reset their password\\. \nWhen you set `TemporaryPasswordValidityDays` for a user pool, you can no longer set the deprecated `UnusedAccountValidityDays` value for that user pool\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `365` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemporaryPasswordValidityDays", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.Policies": { + "additionalProperties": false, + "properties": { + "PasswordPolicy": { + "$ref": "#/definitions/AWS::Cognito::UserPool.PasswordPolicy", + "markdownDescription": "The password policy\\. \n*Required*: No \n*Type*: [PasswordPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-passwordpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PasswordPolicy" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.RecoveryOption": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "Specifies the recovery method for a user\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `admin_only | verified_email | verified_phone_number` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Priority": { + "markdownDescription": "A positive integer specifying priority of a method with 1 being the highest priority\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.SchemaAttribute": { + "additionalProperties": false, + "properties": { + "AttributeDataType": { + "markdownDescription": "The attribute data type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Boolean | DateTime | Number | String` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeDataType", + "type": "string" + }, + "DeveloperOnlyAttribute": { + "markdownDescription": "We recommend that you use [WriteAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UserPoolClientType.html#CognitoUserPools-Type-UserPoolClientType-WriteAttributes) in the user pool client to control how attributes can be mutated for new use cases instead of using `DeveloperOnlyAttribute`\\.\nSpecifies whether the attribute type is developer only\\. This attribute can only be modified by an administrator\\. Users will not be able to modify this attribute using their access token\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeveloperOnlyAttribute", + "type": "boolean" + }, + "Mutable": { + "markdownDescription": "Specifies whether the value of the attribute can be changed\\. \nFor any user pool attribute that is mapped to an identity provider attribute, you must set this parameter to `true`\\. Amazon Cognito updates mapped attributes when users sign in to your application through an identity provider\\. If an attribute is immutable, Amazon Cognito throws an error when it attempts to update the attribute\\. For more information, see [Specifying Identity Provider Attribute Mappings for Your User Pool](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-specifying-attribute-mapping.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mutable", + "type": "boolean" + }, + "Name": { + "markdownDescription": "A schema attribute of the name type\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `20` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "NumberAttributeConstraints": { + "$ref": "#/definitions/AWS::Cognito::UserPool.NumberAttributeConstraints", + "markdownDescription": "Specifies the constraints for an attribute of the number type\\. \n*Required*: No \n*Type*: [NumberAttributeConstraints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-numberattributeconstraints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberAttributeConstraints" + }, + "Required": { + "markdownDescription": "Specifies whether a user pool attribute is required\\. If the attribute is required and the user doesn't provide a value, registration or sign\\-in will fail\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Required", + "type": "boolean" + }, + "StringAttributeConstraints": { + "$ref": "#/definitions/AWS::Cognito::UserPool.StringAttributeConstraints", + "markdownDescription": "Specifies the constraints for an attribute of the string type\\. \n*Required*: No \n*Type*: [StringAttributeConstraints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-stringattributeconstraints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StringAttributeConstraints" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.SmsConfiguration": { + "additionalProperties": false, + "properties": { + "ExternalId": { + "markdownDescription": "The external ID is a value\\. We recommend you use `ExternalId`to add security to your IAM role, which is used to call Amazon SNS to send SMS messages for your user pool\\. If you provide an `ExternalId`, the Cognito User Pool uses it when attempting to assume your IAM role\\. You can also set your roles trust policy to require the `ExternalID`\\. If you use the Cognito Management Console to create a role for SMS MFA, Cognito creates a role with the required permissions and a trust policy that uses `ExternalId`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExternalId", + "type": "string" + }, + "SnsCallerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS caller\\. This is the ARN of the IAM role in your AWS account that Amazon Cognito will use to send SMS messages\\. SMS messages are subject to a [spending limit](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-email-phone-verification.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsCallerArn", + "type": "string" + }, + "SnsRegion": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsRegion", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.StringAttributeConstraints": { + "additionalProperties": false, + "properties": { + "MaxLength": { + "markdownDescription": "The maximum length\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxLength", + "type": "string" + }, + "MinLength": { + "markdownDescription": "The minimum length\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The advanced security mode\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUDIT | ENFORCED | OFF` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdvancedSecurityMode", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.UsernameConfiguration": { + "additionalProperties": false, + "properties": { + "CaseSensitive": { + "markdownDescription": "Specifies whether username case sensitivity will be applied for all users in the user pool through Amazon Cognito APIs\\. \nValid values include: \n+ ** `True` **: Enables case sensitivity for all username input\\. When this option is set to `True`, users must sign in using the exact capitalization of their given username, such as \u201cUserName\u201d\\. This is the default value\\.\n+ ** `False` **: Enables case insensitivity for all username input\\. For example, when this option is set to `False`, users can sign in using either \"username\" or \"Username\"\\. This option also enables both `preferred_username` and `email` alias to be case insensitive, in addition to the `username` attribute\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaseSensitive", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.VerificationMessageTemplate": { + "additionalProperties": false, + "properties": { + "DefaultEmailOption": { + "markdownDescription": "The default email option\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CONFIRM_WITH_CODE | CONFIRM_WITH_LINK` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultEmailOption", + "type": "string" + }, + "EmailMessage": { + "markdownDescription": "The email message template\\. EmailMessage is allowed only if [ EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `20000` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*\\{####\\}[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmailMessage", + "type": "string" + }, + "EmailMessageByLink": { + "markdownDescription": "The email message template for sending a confirmation link to the user\\. EmailMessageByLink is allowed only if [ EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `20000` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*\\{##[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*##\\}[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmailMessageByLink", + "type": "string" + }, + "EmailSubject": { + "markdownDescription": "The subject line for the email message template\\. EmailSubject is allowed only if [EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `140` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmailSubject", + "type": "string" + }, + "EmailSubjectByLink": { + "markdownDescription": "The subject line for the email message template for sending a confirmation link to the user\\. EmailSubjectByLink is allowed only [ EmailSendingAccount](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_EmailConfigurationType.html#CognitoUserPools-Type-EmailConfigurationType-EmailSendingAccount) is DEVELOPER\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `140` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmailSubjectByLink", + "type": "string" + }, + "SmsMessage": { + "markdownDescription": "The SMS message template\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `140` \n*Pattern*: `.*\\{####\\}.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The time limit, after which the access token is no longer valid and cannot be used\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessTokenValidity", + "type": "number" + }, + "AllowedOAuthFlows": { + "items": { + "type": "string" + }, + "markdownDescription": "The allowed OAuth flows\\. \nSet to `code` to initiate a code grant flow, which provides an authorization code as the response\\. This code can be exchanged for access tokens with the token endpoint\\. \nSet to `implicit` to specify that the client should get the access token \\(and, optionally, ID token, based on scopes\\) directly\\. \nSet to `client_credentials` to specify that the client should get the access token \\(and, optionally, ID token, based on scopes\\) from the token endpoint using a combination of client and client\\_secret\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedOAuthFlows", + "type": "array" + }, + "AllowedOAuthFlowsUserPoolClient": { + "markdownDescription": "Set to true if the client is allowed to follow the OAuth protocol when interacting with Amazon Cognito user pools\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedOAuthFlowsUserPoolClient", + "type": "boolean" + }, + "AllowedOAuthScopes": { + "items": { + "type": "string" + }, + "markdownDescription": "The allowed OAuth scopes\\. Possible values provided by OAuth are: `phone`, `email`, `openid`, and `profile`\\. Possible values provided by AWS are: `aws.cognito.signin.user.admin`\\. Custom scopes created in Resource Servers are also supported\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedOAuthScopes", + "type": "array" + }, + "AnalyticsConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPoolClient.AnalyticsConfiguration", + "markdownDescription": "The Amazon Pinpoint analytics configuration for collecting metrics for this user pool\\. \nIn AWS Regions where isn't available, User Pools only supports sending events to Amazon Pinpoint projects in AWS Region us\\-east\\-1\\. In Regions where is available, User Pools will support sending events to Amazon Pinpoint projects within that same Region\\. \n*Required*: No \n*Type*: [AnalyticsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolclient-analyticsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AnalyticsConfiguration" + }, + "AuthSessionValidity": { + "type": "number" + }, + "CallbackURLs": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of allowed redirect \\(callback\\) URLs for the identity providers\\. \nA redirect URI must: \n+ Be an absolute URI\\.\n+ Be registered with the authorization server\\.\n+ Not include a fragment component\\.\nSee [OAuth 2\\.0 \\- Redirection Endpoint](https://tools.ietf.org/html/rfc6749#section-3.1.2)\\. \nAmazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes only\\. \nApp callback URLs such as myapp://example are also supported\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CallbackURLs", + "type": "array" + }, + "ClientName": { + "markdownDescription": "The client name for the user pool client you would like to create\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w\\s+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientName", + "type": "string" + }, + "DefaultRedirectURI": { + "markdownDescription": "The default redirect URI\\. Must be in the `CallbackURLs` list\\. \nA redirect URI must: \n+ Be an absolute URI\\.\n+ Be registered with the authorization server\\.\n+ Not include a fragment component\\.\nSee [OAuth 2\\.0 \\- Redirection Endpoint](https://tools.ietf.org/html/rfc6749#section-3.1.2)\\. \nAmazon Cognito requires HTTPS over HTTP except for http://localhost for testing purposes only\\. \nApp callback URLs such as myapp://example are also supported\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultRedirectURI", + "type": "string" + }, + "EnablePropagateAdditionalUserContextData": { + "type": "boolean" + }, + "EnableTokenRevocation": { + "markdownDescription": "Activates or deactivates token revocation\\. For more information about revoking tokens, see [RevokeToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RevokeToken.html)\\. \nIf you don't include this parameter, token revocation is automatically activated for the new user pool client\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableTokenRevocation", + "type": "boolean" + }, + "ExplicitAuthFlows": { + "items": { + "type": "string" + }, + "markdownDescription": "The authentication flows that are supported by the user pool clients\\. Flow names without the `ALLOW_` prefix are no longer supported, in favor of new names with the `ALLOW_` prefix\\. Note that values with `ALLOW_` prefix must be used only along with the `ALLOW_` prefix\\. \nValid values include: \n+ `ALLOW_ADMIN_USER_PASSWORD_AUTH`: Enable admin based user password authentication flow `ADMIN_USER_PASSWORD_AUTH`\\. This setting replaces the `ADMIN_NO_SRP_AUTH` setting\\. With this authentication flow, Amazon Cognito receives the password in the request instead of using the Secure Remote Password \\(SRP\\) protocol to verify passwords\\.\n+ `ALLOW_CUSTOM_AUTH`: Enable AWS Lambda trigger based authentication\\.\n+ `ALLOW_USER_PASSWORD_AUTH`: Enable user password\\-based authentication\\. In this flow, Amazon Cognito receives the password in the request instead of using the SRP protocol to verify passwords\\.\n+ `ALLOW_USER_SRP_AUTH`: Enable SRP\\-based authentication\\.\n+ `ALLOW_REFRESH_TOKEN_AUTH`: Enable authflow to refresh tokens\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExplicitAuthFlows", + "type": "array" + }, + "GenerateSecret": { + "markdownDescription": "Boolean to specify whether you want to generate a secret for the user pool client being created\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GenerateSecret", + "type": "boolean" + }, + "IdTokenValidity": { + "markdownDescription": "The time limit, after which the ID token is no longer valid and cannot be used\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdTokenValidity", + "type": "number" + }, + "LogoutURLs": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of allowed logout URLs for the identity providers\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogoutURLs", + "type": "array" + }, + "PreventUserExistenceErrors": { + "markdownDescription": "Use this setting to choose which errors and responses are returned by Cognito APIs during authentication, account confirmation, and password recovery when the user does not exist in the user pool\\. When set to `ENABLED` and the user does not exist, authentication returns an error indicating either the username or password was incorrect, and account confirmation and password recovery return a response indicating a code was sent to a simulated destination\\. When set to `LEGACY`, those APIs will return a `UserNotFoundException` exception if the user does not exist in the user pool\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ENABLED | LEGACY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreventUserExistenceErrors", + "type": "string" + }, + "ReadAttributes": { + "items": { + "type": "string" + }, + "markdownDescription": "The read attributes\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadAttributes", + "type": "array" + }, + "RefreshTokenValidity": { + "markdownDescription": "The time limit, in days, after which the refresh token is no longer valid and can't be used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `315360000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RefreshTokenValidity", + "type": "number" + }, + "SupportedIdentityProviders": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of provider names for the identity providers that are supported on this client\\. The following are supported: `COGNITO`, `Facebook`, `SignInWithApple`, `Google` and `LoginWithAmazon`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SupportedIdentityProviders", + "type": "array" + }, + "TokenValidityUnits": { + "$ref": "#/definitions/AWS::Cognito::UserPoolClient.TokenValidityUnits", + "markdownDescription": "The units in which the validity times are represented in\\. Default for RefreshToken is days, and default for ID and access tokens are hours\\. \n*Required*: No \n*Type*: [TokenValidityUnits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolclient-tokenvalidityunits.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenValidityUnits" + }, + "UserPoolId": { + "markdownDescription": "The user pool ID for the user pool where you want to create a user pool client\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserPoolId", + "type": "string" + }, + "WriteAttributes": { + "items": { + "type": "string" + }, + "markdownDescription": "The user pool attributes that the app client can write to\\. \nIf your app client allows users to sign in through an identity provider, this array must include all attributes that are mapped to identity provider attributes\\. Amazon Cognito updates mapped attributes when users sign in to your application through an identity provider\\. If your app client lacks write access to a mapped attribute, Amazon Cognito throws an error when it tries to update the attribute\\. For more information, see [Specifying Identity Provider Attribute Mappings for Your User Pool](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-specifying-attribute-mapping.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WriteAttributes", + "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an Amazon Pinpoint project\\. You can use the Amazon Pinpoint project for integration with the chosen user pool client\\. Amazon Cognito publishes events to the Amazon Pinpoint project that the app ARN declares\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationArn", + "type": "string" + }, + "ApplicationId": { + "markdownDescription": "The application ID for an Amazon Pinpoint application\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[0-9a-fA-F]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationId", + "type": "string" + }, + "ExternalId": { + "markdownDescription": "The external ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExternalId", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of an AWS Identity and Access Management role that authorizes Amazon Cognito to publish events to Amazon Pinpoint analytics\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "UserDataShared": { + "markdownDescription": "If `UserDataShared` is `true`, Amazon Cognito will include user data in the events it publishes to Amazon Pinpoint analytics\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserDataShared", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPoolClient.TokenValidityUnits": { + "additionalProperties": false, + "properties": { + "AccessToken": { + "markdownDescription": "A time unit in \u201cseconds\u201d, \u201cminutes\u201d, \u201chours\u201d or \u201cdays\u201d for the value in AccessTokenValidity, defaults to hours\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessToken", + "type": "string" + }, + "IdToken": { + "markdownDescription": "A time unit in \u201cseconds\u201d, \u201cminutes\u201d, \u201chours\u201d or \u201cdays\u201d for the value in IdTokenValidity, defaults to hours\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdToken", + "type": "string" + }, + "RefreshToken": { + "markdownDescription": "A time unit in \u201cseconds\u201d, \u201cminutes\u201d, \u201chours\u201d or \u201cdays\u201d for the value in RefreshTokenValidity, defaults to days\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The configuration for a custom domain that hosts the sign\\-up and sign\\-in pages for your application\\. Use this object to specify an SSL certificate that is managed by ACM\\. \n*Required*: No \n*Type*: [CustomDomainConfigType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpooldomain-customdomainconfigtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomDomainConfig" + }, + "Domain": { + "markdownDescription": "The domain name for the domain that hosts the sign\\-up and sign\\-in pages for your application\\. For example: `auth.example.com`\\. If you're using a prefix domain, this field denotes the first part of the domain before `.auth.[region].amazoncognito.com`\\. \nThis string can include only lowercase letters, numbers, and hyphens\\. Don't use a hyphen for the first or last character\\. Use periods to separate subdomain names\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-z0-9](?:[a-z0-9\\-]{0,61}[a-z0-9])?$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Domain", + "type": "string" + }, + "UserPoolId": { + "markdownDescription": "The user pool ID for the user pool where you want to associate a user pool domain\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS Certificate Manager SSL certificate\\. You use this certificate for the subdomain of your custom domain\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A string containing the description of the group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "GroupName": { + "markdownDescription": "The name of the group\\. Must be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupName", + "type": "string" + }, + "Precedence": { + "markdownDescription": "A non\\-negative integer value that specifies the precedence of this group relative to the other groups that a user can belong to in the user pool\\. Zero is the highest precedence value\\. Groups with lower `Precedence` values take precedence over groups with higher ornull `Precedence` values\\. If a user belongs to two or more groups, it is the group with the lowest precedence value whose role ARN is given in the user's tokens for the `cognito:roles` and `cognito:preferred_role` claims\\. \nTwo groups can have the same `Precedence` value\\. If this happens, neither group takes precedence over the other\\. If two groups with the same `Precedence` have the same role ARN, that role is used in the `cognito:preferred_role` claim in tokens for users in each group\\. If the two groups have different role ARNs, the `cognito:preferred_role` claim isn't set in users' tokens\\. \nThe default `Precedence` value is null\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Precedence", + "type": "number" + }, + "RoleArn": { + "markdownDescription": "The role Amazon Resource Name \\(ARN\\) for the group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "UserPoolId": { + "markdownDescription": "The user pool ID for the user pool\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A mapping of identity provider attributes to standard and custom user pool attributes\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeMapping", + "type": "object" + }, + "IdpIdentifiers": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of identity provider identifiers\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdpIdentifiers", + "type": "array" + }, + "ProviderDetails": { + "markdownDescription": "The identity provider details\\. The following list describes the provider detail keys for each identity provider type\\. \n+ For Google and Login with Amazon:\n + client\\_id\n + client\\_secret\n + authorize\\_scopes\n+ For Facebook:\n + client\\_id\n + client\\_secret\n + authorize\\_scopes\n + api\\_version\n+ For Sign in with Apple:\n + client\\_id\n + team\\_id\n + key\\_id\n + private\\_key\n + authorize\\_scopes\n+ For OpenID Connect \\(OIDC\\) providers:\n + client\\_id\n + client\\_secret\n + attributes\\_request\\_method\n + oidc\\_issuer\n + authorize\\_scopes\n + authorize\\_url *if not available from discovery URL specified by oidc\\_issuer key* \n + token\\_url *if not available from discovery URL specified by oidc\\_issuer key* \n + attributes\\_url *if not available from discovery URL specified by oidc\\_issuer key* \n + jwks\\_uri *if not available from discovery URL specified by oidc\\_issuer key* \n + attributes\\_url\\_add\\_attributes *a read\\-only property that is set automatically* \n+ For SAML providers:\n + MetadataFile OR MetadataURL\n + IDPSignout \\(optional\\)\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProviderDetails", + "type": "object" + }, + "ProviderName": { + "markdownDescription": "The identity provider name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `[^_][\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}][^_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProviderName", + "type": "string" + }, + "ProviderType": { + "markdownDescription": "The identity provider type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Facebook | Google | LoginWithAmazon | OIDC | SAML | SignInWithApple` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProviderType", + "type": "string" + }, + "UserPoolId": { + "markdownDescription": "The user pool ID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A unique resource server identifier for the resource server\\. This could be an HTTPS endpoint where the resource server is located\\. For example: `https://my-weather-api.example.com`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\x21\\x23-\\x5B\\x5D-\\x7E]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Identifier", + "type": "string" + }, + "Name": { + "markdownDescription": "A friendly name for the resource server\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\w\\s+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Scopes": { + "items": { + "$ref": "#/definitions/AWS::Cognito::UserPoolResourceServer.ResourceServerScopeType" + }, + "markdownDescription": "A list of scopes\\. Each scope is a map with keys `ScopeName` and `ScopeDescription`\\. \n*Required*: No \n*Type*: List of [ResourceServerScopeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolresourceserver-resourceserverscopetype.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scopes", + "type": "array" + }, + "UserPoolId": { + "markdownDescription": "The user pool ID for the user pool\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A description of the scope\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScopeDescription", + "type": "string" + }, + "ScopeName": { + "markdownDescription": "The name of the scope\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\x21\\x23-\\x2E\\x30-\\x5B\\x5D-\\x7E]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The account takeover risk configuration object, including the `NotifyConfiguration` object and `Actions` to take if there is an account takeover\\. \n*Required*: No \n*Type*: [AccountTakeoverRiskConfigurationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoverriskconfigurationtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountTakeoverRiskConfiguration" + }, + "ClientId": { + "markdownDescription": "The app client ID\\. You can specify the risk configuration for a single client \\(with a specific ClientId\\) or for all clients \\(by setting the ClientId to `ALL`\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientId", + "type": "string" + }, + "CompromisedCredentialsRiskConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.CompromisedCredentialsRiskConfigurationType", + "markdownDescription": "The compromised credentials risk configuration object, including the `EventFilter` and the `EventAction`\\. \n*Required*: No \n*Type*: [CompromisedCredentialsRiskConfigurationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-compromisedcredentialsriskconfigurationtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CompromisedCredentialsRiskConfiguration" + }, + "RiskExceptionConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.RiskExceptionConfigurationType", + "markdownDescription": "The configuration to override the risk decision\\. \n*Required*: No \n*Type*: [RiskExceptionConfigurationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-riskexceptionconfigurationtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RiskExceptionConfiguration" + }, + "UserPoolId": { + "markdownDescription": "The user pool ID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The event action\\. \n+ `BLOCK` Choosing this action will block the request\\.\n+ `MFA_IF_CONFIGURED` Present an MFA challenge if user has configured it, else allow the request\\.\n+ `MFA_REQUIRED` Present an MFA challenge if user has configured it, else block the request\\.\n+ `NO_ACTION` Allow the user to sign in\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `BLOCK | MFA_IF_CONFIGURED | MFA_REQUIRED | NO_ACTION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventAction", + "type": "string" + }, + "Notify": { + "markdownDescription": "Flag specifying whether to send a notification\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Notify", + "type": "boolean" + } + }, + "required": [ + "EventAction", + "Notify" + ], + "type": "object" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionsType": { + "additionalProperties": false, + "properties": { + "HighAction": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionType", + "markdownDescription": "Action to take for a high risk\\. \n*Required*: No \n*Type*: [AccountTakeoverActionType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractiontype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HighAction" + }, + "LowAction": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionType", + "markdownDescription": "Action to take for a low risk\\. \n*Required*: No \n*Type*: [AccountTakeoverActionType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractiontype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LowAction" + }, + "MediumAction": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionType", + "markdownDescription": "Action to take for a medium risk\\. \n*Required*: No \n*Type*: [AccountTakeoverActionType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractiontype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MediumAction" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverRiskConfigurationType": { + "additionalProperties": false, + "properties": { + "Actions": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionsType", + "markdownDescription": "Account takeover risk configuration actions\\. \n*Required*: Yes \n*Type*: [AccountTakeoverActionsType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractionstype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions" + }, + "NotifyConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyConfigurationType", + "markdownDescription": "The notify configuration used to construct email notifications\\. \n*Required*: No \n*Type*: [NotifyConfigurationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyconfigurationtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotifyConfiguration" + } + }, + "required": [ + "Actions" + ], + "type": "object" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment.CompromisedCredentialsActionsType": { + "additionalProperties": false, + "properties": { + "EventAction": { + "markdownDescription": "The event action\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BLOCK | NO_ACTION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventAction", + "type": "string" + } + }, + "required": [ + "EventAction" + ], + "type": "object" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment.CompromisedCredentialsRiskConfigurationType": { + "additionalProperties": false, + "properties": { + "Actions": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.CompromisedCredentialsActionsType", + "markdownDescription": "The compromised credentials risk configuration actions\\. \n*Required*: Yes \n*Type*: [CompromisedCredentialsActionsType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-compromisedcredentialsactionstype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions" + }, + "EventFilter": { + "items": { + "type": "string" + }, + "markdownDescription": "Perform the action for these events\\. The default is to perform all events if no event filter is specified\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventFilter", + "type": "array" + } + }, + "required": [ + "Actions" + ], + "type": "object" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyConfigurationType": { + "additionalProperties": false, + "properties": { + "BlockEmail": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyEmailType", + "markdownDescription": "Email template used when a detected risk event is blocked\\. \n*Required*: No \n*Type*: [NotifyEmailType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyemailtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockEmail" + }, + "From": { + "markdownDescription": "The email address that is sending the email\\. The address must be either individually verified with Amazon Simple Email Service, or from a domain that has been verified with Amazon SES\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "From", + "type": "string" + }, + "MfaEmail": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyEmailType", + "markdownDescription": "The multi\\-factor authentication \\(MFA\\) email template used when MFA is challenged as part of a detected risk\\. \n*Required*: No \n*Type*: [NotifyEmailType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyemailtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MfaEmail" + }, + "NoActionEmail": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyEmailType", + "markdownDescription": "The email template used when a detected risk event is allowed\\. \n*Required*: No \n*Type*: [NotifyEmailType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyemailtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoActionEmail" + }, + "ReplyTo": { + "markdownDescription": "The destination to which the receiver of an email should reply to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplyTo", + "type": "string" + }, + "SourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the identity that is associated with the sending authorization policy\\. This identity permits Amazon Cognito to send for the email address specified in the `From` parameter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceArn", + "type": "string" + } + }, + "required": [ + "SourceArn" + ], + "type": "object" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyEmailType": { + "additionalProperties": false, + "properties": { + "HtmlBody": { + "markdownDescription": "The email HTML body\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `20000` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HtmlBody", + "type": "string" + }, + "Subject": { + "markdownDescription": "The email subject\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `140` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subject", + "type": "string" + }, + "TextBody": { + "markdownDescription": "The email text body\\. \n*Required*: No \n*Type*: String \n*Minimum*: `6` \n*Maximum*: `20000` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextBody", + "type": "string" + } + }, + "required": [ + "Subject" + ], + "type": "object" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment.RiskExceptionConfigurationType": { + "additionalProperties": false, + "properties": { + "BlockedIPRangeList": { + "items": { + "type": "string" + }, + "markdownDescription": "Overrides the risk decision to always block the pre\\-authentication requests\\. The IP range is in CIDR notation, a compact representation of an IP address and its routing prefix\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockedIPRangeList", + "type": "array" + }, + "SkippedIPRangeList": { + "items": { + "type": "string" + }, + "markdownDescription": "Risk detection isn't performed on the IP addresses in this range list\\. The IP range is in CIDR notation\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SkippedIPRangeList", + "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": { + "markdownDescription": "The CSS values in the UI customization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CSS", + "type": "string" + }, + "ClientId": { + "markdownDescription": "The client ID for the client app\\. You can specify the UI customization settings for a single client \\(with a specific clientId\\) or for all clients \\(by setting the clientId to `ALL`\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientId", + "type": "string" + }, + "UserPoolId": { + "markdownDescription": "The user pool ID for the user pool\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A map of custom key\\-value pairs that you can provide as input for the custom workflow that is invoked by the *pre sign\\-up* trigger\\. \nYou create custom workflows by assigning AWS Lambda functions to user pool triggers\\. When you create a `UserPoolUser` resource and include the `ClientMetadata` property, Amazon Cognito invokes the function that is assigned to the *pre sign\\-up* trigger\\. When Amazon Cognito invokes this function, it passes a JSON payload, which the function receives as input\\. This payload contains a `clientMetadata` attribute, which provides the data that you assigned to the ClientMetadata property\\. In your function code in AWS Lambda, you can process the `clientMetadata` value to enhance your workflow for your specific needs\\. \nFor more information, see [Customizing User Pool Workflows with Lambda Triggers](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html) in the *Amazon Cognito Developer Guide*\\. \nTake the following limitations into consideration when you use the ClientMetadata parameter: \n+ Amazon Cognito does not store the ClientMetadata value\\. This data is available only to AWS Lambda triggers that are assigned to a user pool to support custom workflows\\. If your user pool configuration does not include triggers, the ClientMetadata parameter serves no purpose\\.\n+ Amazon Cognito does not validate the ClientMetadata value\\.\n+ Amazon Cognito does not encrypt the the ClientMetadata value, so don't use it to provide sensitive information\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientMetadata", + "type": "object" + }, + "DesiredDeliveryMediums": { + "items": { + "type": "string" + }, + "markdownDescription": "Specify `\"EMAIL\"` if email will be used to send the welcome message\\. Specify `\"SMS\"` if the phone number will be used\\. The default value is `\"SMS\"`\\. You can specify more than one value\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DesiredDeliveryMediums", + "type": "array" + }, + "ForceAliasCreation": { + "markdownDescription": "This parameter is used only if the `phone_number_verified` or `email_verified` attribute is set to `True`\\. Otherwise, it is ignored\\. \nIf this parameter is set to `True` and the phone number or email address specified in the UserAttributes parameter already exists as an alias with a different user, the API call will migrate the alias from the previous user to the newly created user\\. The previous user will no longer be able to log in using that alias\\. \nIf this parameter is set to `False`, the API throws an `AliasExistsException` error if the alias already exists\\. The default value is `False`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ForceAliasCreation", + "type": "boolean" + }, + "MessageAction": { + "markdownDescription": "Set to `RESEND` to resend the invitation message to a user that already exists and reset the expiration limit on the user's account\\. Set to `SUPPRESS` to suppress sending the message\\. You can specify only one value\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `RESEND | SUPPRESS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MessageAction", + "type": "string" + }, + "UserAttributes": { + "items": { + "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType" + }, + "markdownDescription": "The user attributes and attribute values to be set for the user to be created\\. These are name\\-value pairs You can create a user without specifying any attributes other than `Username`\\. However, any attributes that you specify as required \\(in [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html) or in the **Attributes** tab of the console\\) must be supplied either by you \\(in your call to `AdminCreateUser`\\) or by the user \\(when they sign up in response to your welcome message\\)\\. \nFor custom attributes, you must prepend the `custom:` prefix to the attribute name\\. \nTo send a message inviting the user to sign up, you must specify the user's email address or phone number\\. This can be done in your call to AdminCreateUser or in the **Users** tab of the Amazon Cognito console for managing your user pools\\. \nIn your call to `AdminCreateUser`, you can set the `email_verified` attribute to `True`, and you can set the `phone_number_verified` attribute to `True`\\. \\(You can also do this by calling [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)\\.\\) \n+ **email**: The email address of the user to whom the message that contains the code and user name will be sent\\. Required if the `email_verified` attribute is set to `True`, or if `\"EMAIL\"` is specified in the `DesiredDeliveryMediums` parameter\\.\n+ **phone\\_number**: The phone number of the user to whom the message that contains the code and user name will be sent\\. Required if the `phone_number_verified` attribute is set to `True`, or if `\"SMS\"` is specified in the `DesiredDeliveryMediums` parameter\\.\n*Required*: No \n*Type*: List of [AttributeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpooluser-attributetype.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserAttributes", + "type": "array" + }, + "UserPoolId": { + "markdownDescription": "The user pool ID for the user pool where the user will be created\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserPoolId", + "type": "string" + }, + "Username": { + "markdownDescription": "The username for the user\\. Must be unique within the user pool\\. Must be a UTF\\-8 string between 1 and 128 characters\\. After the user is created, the username can't be changed\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Username", + "type": "string" + }, + "ValidationData": { + "items": { + "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType" + }, + "markdownDescription": "The user's validation data\\. This is an array of name\\-value pairs that contain user attributes and attribute values that you can use for custom validation, such as restricting the types of user accounts that can be registered\\. For example, you might choose to allow or disallow user sign\\-up based on the user's domain\\. \nTo configure custom validation, you must create a Pre Sign\\-up AWS Lambda trigger for the user pool as described in the Amazon Cognito Developer Guide\\. The Lambda trigger receives the validation data and uses it in the validation process\\. \nThe user's validation data isn't persisted\\. \n*Required*: No \n*Type*: List of [AttributeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpooluser-attributetype.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ValidationData", + "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": { + "markdownDescription": "The name of the attribute\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of the attribute\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The group name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupName", + "type": "string" + }, + "UserPoolId": { + "markdownDescription": "The user pool ID for the user pool\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `55` \n*Pattern*: `[\\w-]+_[0-9a-zA-Z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserPoolId", + "type": "string" + }, + "Username": { + "markdownDescription": "The username for the user\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The 12\\-digit account ID of the account authorized to aggregate data\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `\\d{12}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthorizedAccountId", + "type": "string" + }, + "AuthorizedAwsRegion": { + "markdownDescription": "The region authorized to collect aggregated data\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthorizedAwsRegion", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of tag object\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "A name for the AWS Config rule\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the rule name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfigRuleName", + "type": "string" + }, + "Description": { + "markdownDescription": "The description that you provide for the AWS Config rule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "InputParameters": { + "markdownDescription": "A string, in JSON format, that is passed to the AWS Config rule Lambda function\\. \n*Required*: No \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputParameters", + "type": "object" + }, + "MaximumExecutionFrequency": { + "markdownDescription": "The maximum frequency with which AWS Config runs evaluations for a rule\\. You can specify a value for `MaximumExecutionFrequency` when: \n+ You are using an AWS managed rule that is triggered at a periodic frequency\\.\n+ Your custom rule is triggered when AWS Config delivers the configuration snapshot\\. For more information, see [ConfigSnapshotDeliveryProperties](https://docs.aws.amazon.com/config/latest/APIReference/API_ConfigSnapshotDeliveryProperties.html)\\.\nBy default, rules with a periodic trigger are evaluated every 24 hours\\. To change the frequency, specify a valid value for the `MaximumExecutionFrequency` parameter\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `One_Hour | Six_Hours | Three_Hours | Twelve_Hours | TwentyFour_Hours` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumExecutionFrequency", + "type": "string" + }, + "Scope": { + "$ref": "#/definitions/AWS::Config::ConfigRule.Scope", + "markdownDescription": "Defines which resources can trigger an evaluation for the rule\\. The scope can include one or more resource types, a combination of one resource type and one resource ID, or a combination of a tag key and value\\. Specify a scope to constrain the resources that can trigger an evaluation for the rule\\. If you do not specify a scope, evaluations are triggered when any resource in the recording group changes\\. \nThe scope can be empty\\. \n*Required*: No \n*Type*: [Scope](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-scope.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scope" + }, + "Source": { + "$ref": "#/definitions/AWS::Config::ConfigRule.Source", + "markdownDescription": "Provides the rule owner \\(AWS or customer\\), the rule identifier, and the notifications that cause the function to evaluate your AWS resources\\. \n*Required*: Yes \n*Type*: [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ID of the only AWS resource that you want to trigger an evaluation for the rule\\. If you specify a resource ID, you must specify one resource type for `ComplianceResourceTypes`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `768` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComplianceResourceId", + "type": "string" + }, + "ComplianceResourceTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The resource types of only those AWS resources that you want to trigger an evaluation for the rule\\. You can only specify one type if you also specify a resource ID for `ComplianceResourceId`\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComplianceResourceTypes", + "type": "array" + }, + "TagKey": { + "markdownDescription": "The tag key that is applied to only those AWS resources that you want to trigger an evaluation for the rule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagKey", + "type": "string" + }, + "TagValue": { + "markdownDescription": "The tag value applied to only those AWS resources that you want to trigger an evaluation for the rule\\. If you specify a value for `TagValue`, you must also specify a value for `TagKey`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagValue", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Config::ConfigRule.Source": { + "additionalProperties": false, + "properties": { + "CustomPolicyDetails": { + "$ref": "#/definitions/AWS::Config::ConfigRule.CustomPolicyDetails" + }, + "Owner": { + "markdownDescription": "Indicates whether AWS or the customer owns and manages the AWS Config rule\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AWS | CUSTOM_LAMBDA` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Owner", + "type": "string" + }, + "SourceDetails": { + "items": { + "$ref": "#/definitions/AWS::Config::ConfigRule.SourceDetail" + }, + "markdownDescription": "Provides the source and type of the event that causes AWS Config to evaluate your AWS resources\\. \n*Required*: No \n*Type*: List of [SourceDetail](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source-sourcedetails.html) \n*Maximum*: `25` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceDetails", + "type": "array" + }, + "SourceIdentifier": { + "markdownDescription": "For AWS Config managed rules, a predefined identifier from a list\\. For example, `IAM_PASSWORD_POLICY` is a managed rule\\. To reference a managed rule, see [Using AWS Config managed rules](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html)\\. \nFor custom rules, the identifier is the Amazon Resource Name \\(ARN\\) of the rule's AWS Lambda function, such as `arn:aws:lambda:us-east-2:123456789012:function:custom_rule_name`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceIdentifier", + "type": "string" + } + }, + "required": [ + "Owner" + ], + "type": "object" + }, + "AWS::Config::ConfigRule.SourceDetail": { + "additionalProperties": false, + "properties": { + "EventSource": { + "markdownDescription": "The source of the event, such as an AWS service, that triggers AWS Config to evaluate your AWS resources\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `aws.config` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventSource", + "type": "string" + }, + "MaximumExecutionFrequency": { + "markdownDescription": "The frequency at which you want AWS Config to run evaluations for a custom rule with a periodic trigger\\. If you specify a value for `MaximumExecutionFrequency`, then `MessageType` must use the `ScheduledNotification` value\\. \nBy default, rules with a periodic trigger are evaluated every 24 hours\\. To change the frequency, specify a valid value for the `MaximumExecutionFrequency` parameter\\. \nBased on the valid value you choose, AWS Config runs evaluations once for each valid value\\. For example, if you choose `Three_Hours`, AWS Config runs evaluations once every three hours\\. In this case, `Three_Hours` is the frequency of this rule\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `One_Hour | Six_Hours | Three_Hours | Twelve_Hours | TwentyFour_Hours` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumExecutionFrequency", + "type": "string" + }, + "MessageType": { + "markdownDescription": "The type of notification that triggers AWS Config to run an evaluation for a rule\\. You can specify the following notification types: \n+ `ConfigurationItemChangeNotification` \\- Triggers an evaluation when AWS Config delivers a configuration item as a result of a resource change\\.\n+ `OversizedConfigurationItemChangeNotification` \\- Triggers an evaluation when AWS Config delivers an oversized configuration item\\. AWS Config may generate this notification type when a resource changes and the notification exceeds the maximum size allowed by Amazon SNS\\.\n+ `ScheduledNotification` \\- Triggers a periodic evaluation at the frequency specified for `MaximumExecutionFrequency`\\.\n+ `ConfigurationSnapshotDeliveryCompleted` \\- Triggers a periodic evaluation when AWS Config delivers a configuration snapshot\\.\nIf you want your custom rule to be triggered by configuration changes, specify two SourceDetail objects, one for `ConfigurationItemChangeNotification` and one for `OversizedConfigurationItemChangeNotification`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ConfigurationItemChangeNotification | ConfigurationSnapshotDeliveryCompleted | OversizedConfigurationItemChangeNotification | ScheduledNotification` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "Provides a list of source accounts and regions to be aggregated\\. \n*Required*: No \n*Type*: List of [AccountAggregationSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationaggregator-accountaggregationsource.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountAggregationSources", + "type": "array" + }, + "ConfigurationAggregatorName": { + "markdownDescription": "The name of the aggregator\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\w\\-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfigurationAggregatorName", + "type": "string" + }, + "OrganizationAggregationSource": { + "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.OrganizationAggregationSource", + "markdownDescription": "Provides an organization and list of regions to be aggregated\\. \n*Required*: No \n*Type*: [OrganizationAggregationSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationaggregator-organizationaggregationsource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrganizationAggregationSource" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of tag object\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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" + }, + "markdownDescription": "The 12\\-digit account ID of the account being aggregated\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountIds", + "type": "array" + }, + "AllAwsRegions": { + "markdownDescription": "If true, aggregate existing AWS Config regions and future regions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllAwsRegions", + "type": "boolean" + }, + "AwsRegions": { + "items": { + "type": "string" + }, + "markdownDescription": "The source regions being aggregated\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsRegions", + "type": "array" + } + }, + "required": [ + "AccountIds" + ], + "type": "object" + }, + "AWS::Config::ConfigurationAggregator.OrganizationAggregationSource": { + "additionalProperties": false, + "properties": { + "AllAwsRegions": { + "markdownDescription": "If true, aggregate existing AWS Config regions and future regions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllAwsRegions", + "type": "boolean" + }, + "AwsRegions": { + "items": { + "type": "string" + }, + "markdownDescription": "The source regions being aggregated\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsRegions", + "type": "array" + }, + "RoleArn": { + "markdownDescription": "ARN of the IAM role used to retrieve AWS Organizations details associated with the aggregator account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A name for the configuration recorder\\. If you don't specify a name, AWS CloudFormation CloudFormation generates a unique physical ID and uses that ID for the configuration recorder name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nAfter you create a configuration recorder, you cannot rename it\\. If you don't want a name that AWS CloudFormation generates, specify a value for this property\\. \nUpdates are not supported\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RecordingGroup": { + "$ref": "#/definitions/AWS::Config::ConfigurationRecorder.RecordingGroup", + "markdownDescription": "Indicates whether to record configurations for all supported resources or for a list of resource types\\. The resource types that you list must be supported by AWS Config\\. \n*Required*: No \n*Type*: [RecordingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordinggroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordingGroup" + }, + "RoleARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM \\(IAM\\) role that is used to make read or write requests to the delivery channel that you specify and to get configuration details for supported AWS resources\\. For more information, see [Permissions for the IAM Role Assigned](https://docs.aws.amazon.com/config/latest/developerguide/iamrole-permissions.html) to AWS Config in the AWS Config Developer Guide\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Specifies whether AWS Config records configuration changes for every supported type of regional resource\\. \nIf you set this option to `true`, when AWS Config adds support for a new type of regional resource, it starts recording resources of that type automatically\\. \nIf you set this option to `true`, you cannot enumerate a list of `resourceTypes`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllSupported", + "type": "boolean" + }, + "IncludeGlobalResourceTypes": { + "markdownDescription": "Specifies whether AWS Config includes all supported types of global resources \\(for example, IAM resources\\) with the resources that it records\\. \nBefore you can set this option to `true`, you must set the `AllSupported` option to `true`\\. \nIf you set this option to `true`, when AWS Config adds support for a new type of global resource, it starts recording resources of that type automatically\\. \nThe configuration details for any global resource are the same in all regions\\. To prevent duplicate configuration items, you should consider customizing AWS Config in only one region to record global resources\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeGlobalResourceTypes", + "type": "boolean" + }, + "ResourceTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "A comma\\-separated list that specifies the types of AWS resources for which AWS Config records configuration changes \\(for example, `AWS::EC2::Instance` or `AWS::CloudTrail::Trail`\\)\\. \nTo record all configuration changes, you must set the `AllSupported` option to `false`\\. \nIf you set this option to `true`, when AWS Config adds support for a new type of resource, it will not record resources of that type unless you manually add that type to your recording group\\. \nFor a list of valid `resourceTypes` values, see the **resourceType Value** column in [Supported AWS Resource Types](https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceTypes", + "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" + }, + "markdownDescription": "A list of ConformancePackInputParameter objects\\. \n*Required*: No \n*Type*: List of [ConformancePackInputParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-conformancepack-conformancepackinputparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConformancePackInputParameters", + "type": "array" + }, + "ConformancePackName": { + "markdownDescription": "Name of the conformance pack you want to create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConformancePackName", + "type": "string" + }, + "DeliveryS3Bucket": { + "markdownDescription": "The name of the Amazon S3 bucket where AWS Config stores conformance pack templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryS3Bucket", + "type": "string" + }, + "DeliveryS3KeyPrefix": { + "markdownDescription": "The prefix for the Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryS3KeyPrefix", + "type": "string" + }, + "TemplateBody": { + "markdownDescription": "A string containing full conformance pack template body\\. Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes\\. \nYou can only use a YAML template with two resource types: config rule \\(`AWS::Config::ConfigRule`\\) and a remediation action \\(`AWS::Config::RemediationConfiguration`\\)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateBody", + "type": "string" + }, + "TemplateS3Uri": { + "markdownDescription": "Location of file containing the template body \\(s3://bucketname/prefix\\)\\. The uri must point to the conformance pack template \\(max size: 300 KB\\) that is located in an Amazon S3 bucket\\. \nYou must have access to read Amazon S3 bucket\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "One part of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterName", + "type": "string" + }, + "ParameterValue": { + "markdownDescription": "Another part of the key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The options for how often AWS Config delivers configuration snapshots to the Amazon S3 bucket\\. \n*Required*: No \n*Type*: [ConfigSnapshotDeliveryProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-deliverychannel-configsnapshotdeliveryproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfigSnapshotDeliveryProperties" + }, + "Name": { + "markdownDescription": "A name for the delivery channel\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the delivery channel name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nUpdates are not supported\\. To change the name, you must run two separate updates\\. In the first update, delete this resource, and then recreate it with a new name in the second update\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "S3BucketName": { + "markdownDescription": "The name of the Amazon S3 bucket to which AWS Config delivers configuration snapshots and configuration history files\\. \nIf you specify a bucket that belongs to another AWS account, that bucket must have policies that grant access permissions to AWS Config\\. For more information, see [Permissions for the Amazon S3 Bucket](https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-policy.html) in the AWS Config Developer Guide\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketName", + "type": "string" + }, + "S3KeyPrefix": { + "markdownDescription": "The prefix for the specified Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3KeyPrefix", + "type": "string" + }, + "S3KmsKeyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Key Management Service \\(AWS KMS \\) AWS KMS key \\(KMS key\\) used to encrypt objects delivered by AWS Config\\. Must belong to the same Region as the destination S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3KmsKeyArn", + "type": "string" + }, + "SnsTopicARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to which AWS Config sends notifications about configuration changes\\. \nIf you choose a topic from another account, the topic must have policies that grant access permissions to AWS Config\\. For more information, see [Permissions for the Amazon SNS Topic](https://docs.aws.amazon.com/config/latest/developerguide/sns-topic-policy.html) in the AWS Config Developer Guide\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The frequency with which AWS Config delivers configuration snapshots\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `One_Hour | Six_Hours | Three_Hours | Twelve_Hours | TwentyFour_Hours` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "A comma\\-separated list of accounts excluded from organization config rule\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludedAccounts", + "type": "array" + }, + "OrganizationConfigRuleName": { + "markdownDescription": "The name that you assign to organization config rule\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OrganizationConfigRuleName", + "type": "string" + }, + "OrganizationCustomPolicyRuleMetadata": { + "$ref": "#/definitions/AWS::Config::OrganizationConfigRule.OrganizationCustomPolicyRuleMetadata" + }, + "OrganizationCustomRuleMetadata": { + "$ref": "#/definitions/AWS::Config::OrganizationConfigRule.OrganizationCustomRuleMetadata", + "markdownDescription": "An `OrganizationCustomRuleMetadata` object\\. \n*Required*: No \n*Type*: [OrganizationCustomRuleMetadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrganizationCustomRuleMetadata" + }, + "OrganizationManagedRuleMetadata": { + "$ref": "#/definitions/AWS::Config::OrganizationConfigRule.OrganizationManagedRuleMetadata", + "markdownDescription": "An `OrganizationManagedRuleMetadata` object\\. \n*Required*: No \n*Type*: [OrganizationManagedRuleMetadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationmanagedrulemetadata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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.OrganizationCustomPolicyRuleMetadata": { + "additionalProperties": false, + "properties": { + "DebugLogDeliveryAccounts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "InputParameters": { + "type": "string" + }, + "MaximumExecutionFrequency": { + "type": "string" + }, + "OrganizationConfigRuleTriggerTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PolicyText": { + "type": "string" + }, + "ResourceIdScope": { + "type": "string" + }, + "ResourceTypesScope": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Runtime": { + "type": "string" + }, + "TagKeyScope": { + "type": "string" + }, + "TagValueScope": { + "type": "string" + } + }, + "required": [ + "PolicyText", + "Runtime" + ], + "type": "object" + }, + "AWS::Config::OrganizationConfigRule.OrganizationCustomRuleMetadata": { + "additionalProperties": false, + "properties": { + "Description": { + "markdownDescription": "The description that you provide for organization config rule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "InputParameters": { + "markdownDescription": "A string, in JSON format, that is passed to organization config rule Lambda function\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputParameters", + "type": "string" + }, + "LambdaFunctionArn": { + "markdownDescription": "The lambda function ARN\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaFunctionArn", + "type": "string" + }, + "MaximumExecutionFrequency": { + "markdownDescription": "The maximum frequency with which AWS Config runs evaluations for a rule\\. Your custom rule is triggered when AWS Config delivers the configuration snapshot\\. For more information, see [ConfigSnapshotDeliveryProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-deliverychannel.html#cfn-config-deliverychannel-configsnapshotdeliveryproperties)\\. \nBy default, rules with a periodic trigger are evaluated every 24 hours\\. To change the frequency, specify a valid value for the `MaximumExecutionFrequency` parameter\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `One_Hour | Six_Hours | Three_Hours | Twelve_Hours | TwentyFour_Hours` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumExecutionFrequency", + "type": "string" + }, + "OrganizationConfigRuleTriggerTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The type of notification that triggers AWS Config to run an evaluation for a rule\\. You can specify the following notification types: \n+ `ConfigurationItemChangeNotification` \\- Triggers an evaluation when AWS Config delivers a configuration item as a result of a resource change\\.\n+ `OversizedConfigurationItemChangeNotification` \\- Triggers an evaluation when AWS Config delivers an oversized configuration item\\. AWS Config may generate this notification type when a resource changes and the notification exceeds the maximum size allowed by Amazon SNS\\.\n+ `ScheduledNotification` \\- Triggers a periodic evaluation at the frequency specified for `MaximumExecutionFrequency`\\.\n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrganizationConfigRuleTriggerTypes", + "type": "array" + }, + "ResourceIdScope": { + "markdownDescription": "The ID of the AWS resource that was evaluated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `768` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceIdScope", + "type": "string" + }, + "ResourceTypesScope": { + "items": { + "type": "string" + }, + "markdownDescription": "The type of the AWS resource that was evaluated\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceTypesScope", + "type": "array" + }, + "TagKeyScope": { + "markdownDescription": "One part of a key\\-value pair that make up a tag\\. A key is a general label that acts like a category for more specific tag values\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagKeyScope", + "type": "string" + }, + "TagValueScope": { + "markdownDescription": "The optional part of a key\\-value pair that make up a tag\\. A value acts as a descriptor within a tag category \\(key\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagValueScope", + "type": "string" + } + }, + "required": [ + "LambdaFunctionArn", + "OrganizationConfigRuleTriggerTypes" + ], + "type": "object" + }, + "AWS::Config::OrganizationConfigRule.OrganizationManagedRuleMetadata": { + "additionalProperties": false, + "properties": { + "Description": { + "markdownDescription": "The description that you provide for organization config rule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "InputParameters": { + "markdownDescription": "A string, in JSON format, that is passed to organization config rule Lambda function\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputParameters", + "type": "string" + }, + "MaximumExecutionFrequency": { + "markdownDescription": "The maximum frequency with which AWS Config runs evaluations for a rule\\. You are using an AWS Config managed rule that is triggered at a periodic frequency\\. \nBy default, rules with a periodic trigger are evaluated every 24 hours\\. To change the frequency, specify a valid value for the `MaximumExecutionFrequency` parameter\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `One_Hour | Six_Hours | Three_Hours | Twelve_Hours | TwentyFour_Hours` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumExecutionFrequency", + "type": "string" + }, + "ResourceIdScope": { + "markdownDescription": "The ID of the AWS resource that was evaluated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `768` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceIdScope", + "type": "string" + }, + "ResourceTypesScope": { + "items": { + "type": "string" + }, + "markdownDescription": "The type of the AWS resource that was evaluated\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceTypesScope", + "type": "array" + }, + "RuleIdentifier": { + "markdownDescription": "For organization config managed rules, a predefined identifier from a list\\. For example, `IAM_PASSWORD_POLICY` is a managed rule\\. To reference a managed rule, see [Using AWS Config managed rules](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleIdentifier", + "type": "string" + }, + "TagKeyScope": { + "markdownDescription": "One part of a key\\-value pair that make up a tag\\. A key is a general label that acts like a category for more specific tag values\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagKeyScope", + "type": "string" + }, + "TagValueScope": { + "markdownDescription": "The optional part of a key\\-value pair that make up a tag\\. A value acts as a descriptor within a tag category \\(key\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "A list of `ConformancePackInputParameter` objects\\. \n*Required*: No \n*Type*: List of [ConformancePackInputParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconformancepack-conformancepackinputparameter.html) \n*Maximum*: `60` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConformancePackInputParameters", + "type": "array" + }, + "DeliveryS3Bucket": { + "markdownDescription": "The name of the Amazon S3 bucket where AWS Config stores conformance pack templates\\. \nThis field is optional\\.\n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryS3Bucket", + "type": "string" + }, + "DeliveryS3KeyPrefix": { + "markdownDescription": "Any folder structure you want to add to an Amazon S3 bucket\\. \nThis field is optional\\.\n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryS3KeyPrefix", + "type": "string" + }, + "ExcludedAccounts": { + "items": { + "type": "string" + }, + "markdownDescription": "A comma\\-separated list of accounts excluded from organization conformance pack\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludedAccounts", + "type": "array" + }, + "OrganizationConformancePackName": { + "markdownDescription": "The name you assign to an organization conformance pack\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z][-a-zA-Z0-9]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OrganizationConformancePackName", + "type": "string" + }, + "TemplateBody": { + "markdownDescription": "A string containing full conformance pack template body\\. Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateBody", + "type": "string" + }, + "TemplateS3Uri": { + "markdownDescription": "Location of file containing the template body\\. The uri must point to the conformance pack template \\(max size: 300 KB\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "One part of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterName", + "type": "string" + }, + "ParameterValue": { + "markdownDescription": "One part of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The remediation is triggered automatically\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Automatic", + "type": "boolean" + }, + "ConfigRuleName": { + "markdownDescription": "The name of the AWS Config rule\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfigRuleName", + "type": "string" + }, + "ExecutionControls": { + "$ref": "#/definitions/AWS::Config::RemediationConfiguration.ExecutionControls", + "markdownDescription": "An ExecutionControls object\\. \n*Required*: No \n*Type*: [ExecutionControls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-executioncontrols.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionControls" + }, + "MaximumAutomaticAttempts": { + "markdownDescription": "The maximum number of failed attempts for auto\\-remediation\\. If you do not select a number, the default is 5\\. \nFor example, if you specify MaximumAutomaticAttempts as 5 with RetryAttemptSeconds as 50 seconds, AWS Config will put a RemediationException on your behalf for the failing resource after the 5th failed attempt within 50 seconds\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `25` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumAutomaticAttempts", + "type": "number" + }, + "Parameters": { + "markdownDescription": "An object of the RemediationParameterValue\\. \nThe type is a map of strings to RemediationParameterValue\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "object" + }, + "ResourceType": { + "markdownDescription": "The type of a resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceType", + "type": "string" + }, + "RetryAttemptSeconds": { + "markdownDescription": "Maximum time in seconds that AWS Config runs auto\\-remediation\\. If you do not select a number, the default is 60 seconds\\. \nFor example, if you specify RetryAttemptSeconds as 50 seconds and MaximumAutomaticAttempts as 5, AWS Config will run auto\\-remediations 5 times within 50 seconds before throwing an exception\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryAttemptSeconds", + "type": "number" + }, + "TargetId": { + "markdownDescription": "Target ID is the name of the public document\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetId", + "type": "string" + }, + "TargetType": { + "markdownDescription": "The type of the target\\. Target executes remediation\\. For example, SSM document\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SSM_DOCUMENT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetType", + "type": "string" + }, + "TargetVersion": { + "markdownDescription": "Version of the target\\. For example, version of the SSM document\\. \nIf you make backward incompatible changes to the SSM document, you must call PutRemediationConfiguration API again to ensure the remediations can run\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "A SsmControls object\\. \n*Required*: No \n*Type*: [SsmControls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-ssmcontrols.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SsmControls" + } + }, + "type": "object" + }, + "AWS::Config::RemediationConfiguration.RemediationParameterValue": { + "additionalProperties": false, + "properties": { + "ResourceValue": { + "$ref": "#/definitions/AWS::Config::RemediationConfiguration.ResourceValue", + "markdownDescription": "The value is dynamic and changes at run\\-time\\. \n*Required*: No \n*Type*: [ResourceValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-resourcevalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceValue" + }, + "StaticValue": { + "$ref": "#/definitions/AWS::Config::RemediationConfiguration.StaticValue", + "markdownDescription": "The value is static and does not change at run\\-time\\. \n*Required*: No \n*Type*: [StaticValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-staticvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StaticValue" + } + }, + "type": "object" + }, + "AWS::Config::RemediationConfiguration.ResourceValue": { + "additionalProperties": false, + "properties": { + "Value": { + "markdownDescription": "The value is a resource ID\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `RESOURCE_ID` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Config::RemediationConfiguration.SsmControls": { + "additionalProperties": false, + "properties": { + "ConcurrentExecutionRatePercentage": { + "markdownDescription": "The maximum percentage of remediation actions allowed to run in parallel on the non\\-compliant resources for that specific rule\\. You can specify a percentage, such as 10%\\. The default value is 10\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConcurrentExecutionRatePercentage", + "type": "number" + }, + "ErrorPercentage": { + "markdownDescription": "The percentage of errors that are allowed before SSM stops running automations on non\\-compliant resources for that specific rule\\. You can specify a percentage of errors, for example 10%\\. If you do not specifiy a percentage, the default is 50%\\. For example, if you set the ErrorPercentage to 40% for 10 non\\-compliant resources, then SSM stops running the automations when the fifth error is received\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorPercentage", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Config::RemediationConfiguration.StaticValue": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of values\\. For example, the ARN of the assumed role\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `25` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "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": { + "markdownDescription": "A unique description for the query\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryDescription", + "type": "string" + }, + "QueryExpression": { + "markdownDescription": "The expression of the query\\. For example, `SELECT resourceId, resourceType, supplementaryConfiguration.BucketVersioningConfiguration.status WHERE resourceType = 'AWS::S3::Bucket' AND supplementaryConfiguration.BucketVersioningConfiguration.status = 'Off'.` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryExpression", + "type": "string" + }, + "QueryName": { + "markdownDescription": "The name of the query\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9-_]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "QueryName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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::ApprovedOrigin": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "InstanceId": { + "type": "string" + }, + "Origin": { + "type": "string" + } + }, + "required": [ + "InstanceId", + "Origin" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::ApprovedOrigin" + ], + "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": { + "markdownDescription": "The content of the contact flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Content", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the contact flow\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "InstanceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon Connect instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceArn", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the contact flow\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "State": { + "markdownDescription": "The state of the contact flow\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ACTIVE | ARCHIVED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Type": { + "markdownDescription": "The type of the contact flow\\. For descriptions of the available types, see [Choose a Contact Flow Type](https://docs.aws.amazon.com/connect/latest/adminguide/create-contact-flow.html#contact-flow-types) in the *Amazon Connect Administrator Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AGENT_HOLD | AGENT_TRANSFER | AGENT_WHISPER | CONTACT_FLOW | CUSTOMER_HOLD | CUSTOMER_QUEUE | CUSTOMER_WHISPER | OUTBOUND_WHISPER | QUEUE_TRANSFER` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The content of the contact flow module\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Content", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the contact flow module\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `500` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "InstanceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon Connect instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceArn", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the contact flow module\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `127` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "State": { + "markdownDescription": "The state of the contact flow module\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ACTIVE | ARCHIVED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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" + }, + "markdownDescription": "Configuration information for the hours of operation\\. \n*Required*: Yes \n*Type*: List of [HoursOfOperationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationconfig.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Config", + "type": "array" + }, + "Description": { + "markdownDescription": "The description for the hours of operation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `250` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "InstanceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceArn", + "type": "string" + }, + "Name": { + "markdownDescription": "The name for the hours of operation\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `127` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TimeZone": { + "markdownDescription": "The time zone for the hours of operation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The day that the hours of operation applies to\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `FRIDAY | MONDAY | SATURDAY | SUNDAY | THURSDAY | TUESDAY | WEDNESDAY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Day", + "type": "string" + }, + "EndTime": { + "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice", + "markdownDescription": "The end time that your contact center closes\\. \n*Required*: Yes \n*Type*: [HoursOfOperationTimeSlice](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationtimeslice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndTime" + }, + "StartTime": { + "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice", + "markdownDescription": "The start time that your contact center opens\\. \n*Required*: Yes \n*Type*: [HoursOfOperationTimeSlice](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationtimeslice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartTime" + } + }, + "required": [ + "Day", + "EndTime", + "StartTime" + ], + "type": "object" + }, + "AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice": { + "additionalProperties": false, + "properties": { + "Hours": { + "markdownDescription": "The hours\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `23` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Hours", + "type": "number" + }, + "Minutes": { + "markdownDescription": "The minutes\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `59` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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::IntegrationAssociation": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "InstanceId": { + "type": "string" + }, + "IntegrationArn": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + } + }, + "required": [ + "InstanceId", + "IntegrationArn", + "IntegrationType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::IntegrationAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "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": { + "markdownDescription": "The description of the quick connect\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `250` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "InstanceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceArn", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the quick connect\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `127` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "QuickConnectConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.QuickConnectConfig", + "markdownDescription": "Contains information about the quick connect\\. \n*Required*: Yes \n*Type*: [QuickConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-quickconnectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QuickConnectConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The phone number in E\\.164 format\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PhoneNumber", + "type": "string" + } + }, + "required": [ + "PhoneNumber" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.QueueQuickConnectConfig": { + "additionalProperties": false, + "properties": { + "ContactFlowArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the contact flow\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContactFlowArn", + "type": "string" + }, + "QueueArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the queue\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueueArn", + "type": "string" + } + }, + "required": [ + "ContactFlowArn", + "QueueArn" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.QuickConnectConfig": { + "additionalProperties": false, + "properties": { + "PhoneConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.PhoneNumberQuickConnectConfig", + "markdownDescription": "The phone configuration\\. This is required only if QuickConnectType is PHONE\\_NUMBER\\. \n*Required*: No \n*Type*: [PhoneNumberQuickConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-phonenumberquickconnectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PhoneConfig" + }, + "QueueConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.QueueQuickConnectConfig", + "markdownDescription": "The queue configuration\\. This is required only if QuickConnectType is QUEUE\\. \n*Required*: No \n*Type*: [QueueQuickConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-queuequickconnectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueueConfig" + }, + "QuickConnectType": { + "markdownDescription": "The type of quick connect\\. In the Amazon Connect console, when you create a quick connect, you are prompted to assign one of the following types: Agent \\(USER\\), External \\(PHONE\\_NUMBER\\), or Queue \\(QUEUE\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `PHONE_NUMBER | QUEUE | USER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QuickConnectType", + "type": "string" + }, + "UserConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.UserQuickConnectConfig", + "markdownDescription": "The user configuration\\. This is required only if QuickConnectType is USER\\. \n*Required*: No \n*Type*: [UserQuickConnectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-userquickconnectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserConfig" + } + }, + "required": [ + "QuickConnectType" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.UserQuickConnectConfig": { + "additionalProperties": false, + "properties": { + "ContactFlowArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the contact flow\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContactFlowArn", + "type": "string" + }, + "UserArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the user\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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::SecurityKey": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "InstanceId": { + "type": "string" + }, + "Key": { + "type": "string" + } + }, + "required": [ + "InstanceId", + "Key" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::SecurityKey" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "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": { + "markdownDescription": "The identifier of the user account in the directory used for identity management\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DirectoryUserId", + "type": "string" + }, + "HierarchyGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the user's hierarchy group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HierarchyGroupArn", + "type": "string" + }, + "IdentityInfo": { + "$ref": "#/definitions/AWS::Connect::User.UserIdentityInfo", + "markdownDescription": "Information about the user identity\\. \n*Required*: No \n*Type*: [UserIdentityInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-useridentityinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentityInfo" + }, + "InstanceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceArn", + "type": "string" + }, + "Password": { + "markdownDescription": "The user's password\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", + "type": "string" + }, + "PhoneConfig": { + "$ref": "#/definitions/AWS::Connect::User.UserPhoneConfig", + "markdownDescription": "Information about the phone configuration for the user\\. \n*Required*: Yes \n*Type*: [UserPhoneConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-userphoneconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PhoneConfig" + }, + "RoutingProfileArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the user's routing profile\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoutingProfileArn", + "type": "string" + }, + "SecurityProfileArns": { + "items": { + "type": "string" + }, + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the user's security profile\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityProfileArns", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Username": { + "markdownDescription": "The user name assigned to the user account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The email address\\. If you are using SAML for identity management and include this parameter, an error is returned\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Email", + "type": "string" + }, + "FirstName": { + "markdownDescription": "The first name\\. This is required if you are using Amazon Connect or SAML for identity management\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FirstName", + "type": "string" + }, + "LastName": { + "markdownDescription": "The last name\\. This is required if you are using Amazon Connect or SAML for identity management\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastName", + "type": "string" + }, + "Mobile": { + "type": "string" + }, + "SecondaryEmail": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Connect::User.UserPhoneConfig": { + "additionalProperties": false, + "properties": { + "AfterContactWorkTimeLimit": { + "markdownDescription": "The After Call Work \\(ACW\\) timeout setting, in seconds\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AfterContactWorkTimeLimit", + "type": "number" + }, + "AutoAccept": { + "markdownDescription": "The Auto accept setting\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoAccept", + "type": "boolean" + }, + "DeskPhoneNumber": { + "markdownDescription": "The phone number for the user's desk phone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeskPhoneNumber", + "type": "string" + }, + "PhoneType": { + "markdownDescription": "The phone type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DESK_PHONE | SOFT_PHONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the user hierarchy group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceArn", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the user hierarchy group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "ParentGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the parent group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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.AnswerMachineDetectionConfig": { + "additionalProperties": false, + "properties": { + "EnableAnswerMachineDetection": { + "type": "boolean" + } + }, + "required": [ + "EnableAnswerMachineDetection" + ], + "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": { + "AnswerMachineDetectionConfig": { + "$ref": "#/definitions/AWS::ConnectCampaigns::Campaign.AnswerMachineDetectionConfig" + }, + "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": { + "markdownDescription": "The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications\\. You must set up a policy on the DeadLetterQueue for the SendMessage operation to enable Amazon Connect Customer Profiles to send messages to the DeadLetterQueue\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeadLetterQueueUrl", + "type": "string" + }, + "DefaultEncryptionKey": { + "markdownDescription": "The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is specified\\. It is used to encrypt all data before it is placed in permanent or semi\\-permanent storage\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultEncryptionKey", + "type": "string" + }, + "DefaultExpirationDays": { + "markdownDescription": "The default number of days until the data within the domain expires\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultExpirationDays", + "type": "number" + }, + "DomainName": { + "markdownDescription": "The unique name of the domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The unique name of the domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", + "type": "string" + }, + "FlowDefinition": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.FlowDefinition", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [FlowDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-flowdefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FlowDefinition" + }, + "ObjectTypeName": { + "markdownDescription": "The name of the profile object type mapping to use\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectTypeName", + "type": "string" + }, + "ObjectTypeNames": { + "items": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ObjectTypeMapping" + }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of [ObjectTypeMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-objecttypemapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectTypeNames", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Uri": { + "markdownDescription": "The URI of the S3 bucket or any other type of data source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Marketo", + "type": "string" + }, + "S3": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3", + "type": "string" + }, + "Salesforce": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Salesforce", + "type": "string" + }, + "ServiceNow": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceNow", + "type": "string" + }, + "Zendesk": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Zendesk", + "type": "string" + } + }, + "type": "object" + }, + "AWS::CustomerProfiles::Integration.FlowDefinition": { + "additionalProperties": false, + "properties": { + "Description": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "FlowName": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FlowName", + "type": "string" + }, + "KmsArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsArn", + "type": "string" + }, + "SourceFlowConfig": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.SourceFlowConfig", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: [SourceFlowConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-sourceflowconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceFlowConfig" + }, + "Tasks": { + "items": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.Task" + }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: List of [Task](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-task.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tasks", + "type": "array" + }, + "TriggerConfig": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.TriggerConfig", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: [TriggerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-triggerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TriggerConfig" + } + }, + "required": [ + "FlowName", + "KmsArn", + "SourceFlowConfig", + "Tasks", + "TriggerConfig" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.IncrementalPullConfig": { + "additionalProperties": false, + "properties": { + "DatetimeTypeFieldName": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatetimeTypeFieldName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::CustomerProfiles::Integration.MarketoSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.ObjectTypeMapping": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.S3SourceProperties": { + "additionalProperties": false, + "properties": { + "BucketName": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", + "type": "string" + }, + "BucketPrefix": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketPrefix", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.SalesforceSourceProperties": { + "additionalProperties": false, + "properties": { + "EnableDynamicFieldUpdate": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableDynamicFieldUpdate", + "type": "boolean" + }, + "IncludeDeletedRecords": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeDeletedRecords", + "type": "boolean" + }, + "Object": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.ScheduledTriggerProperties": { + "additionalProperties": false, + "properties": { + "DataPullMode": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataPullMode", + "type": "string" + }, + "FirstExecutionFrom": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FirstExecutionFrom", + "type": "number" + }, + "ScheduleEndTime": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleEndTime", + "type": "number" + }, + "ScheduleExpression": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleExpression", + "type": "string" + }, + "ScheduleOffset": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleOffset", + "type": "number" + }, + "ScheduleStartTime": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleStartTime", + "type": "number" + }, + "Timezone": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timezone", + "type": "string" + } + }, + "required": [ + "ScheduleExpression" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.ServiceNowSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Object", + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.SourceConnectorProperties": { + "additionalProperties": false, + "properties": { + "Marketo": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.MarketoSourceProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [MarketoSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-marketosourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Marketo" + }, + "S3": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.S3SourceProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [S3SourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-s3sourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3" + }, + "Salesforce": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.SalesforceSourceProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [SalesforceSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-salesforcesourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Salesforce" + }, + "ServiceNow": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ServiceNowSourceProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ServiceNowSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-servicenowsourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceNow" + }, + "Zendesk": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ZendeskSourceProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ZendeskSourceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-zendesksourceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Zendesk" + } + }, + "type": "object" + }, + "AWS::CustomerProfiles::Integration.SourceFlowConfig": { + "additionalProperties": false, + "properties": { + "ConnectorProfileName": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorProfileName", + "type": "string" + }, + "ConnectorType": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorType", + "type": "string" + }, + "IncrementalPullConfig": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.IncrementalPullConfig", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [IncrementalPullConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-incrementalpullconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncrementalPullConfig" + }, + "SourceConnectorProperties": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.SourceConnectorProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: [SourceConnectorProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-sourceconnectorproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceConnectorProperties" + } + }, + "required": [ + "ConnectorType", + "SourceConnectorProperties" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.Task": { + "additionalProperties": false, + "properties": { + "ConnectorOperator": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ConnectorOperator", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ConnectorOperator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-connectoroperator.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectorOperator" + }, + "DestinationField": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationField", + "type": "string" + }, + "SourceFields": { + "items": { + "type": "string" + }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceFields", + "type": "array" + }, + "TaskProperties": { + "items": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.TaskPropertiesMap" + }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of [TaskPropertiesMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-taskpropertiesmap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskProperties", + "type": "array" + }, + "TaskType": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskType", + "type": "string" + } + }, + "required": [ + "SourceFields", + "TaskType" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.TaskPropertiesMap": { + "additionalProperties": false, + "properties": { + "OperatorPropertyKey": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OperatorPropertyKey", + "type": "string" + }, + "Property": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Property", + "type": "string" + } + }, + "required": [ + "OperatorPropertyKey", + "Property" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerProperties": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.TriggerProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [TriggerProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-triggerproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TriggerProperties" + }, + "TriggerType": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TriggerType", + "type": "string" + } + }, + "required": [ + "TriggerType" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.TriggerProperties": { + "additionalProperties": false, + "properties": { + "Scheduled": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ScheduledTriggerProperties", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [ScheduledTriggerProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-scheduledtriggerproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scheduled" + } + }, + "type": "object" + }, + "AWS::CustomerProfiles::Integration.ZendeskSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Indicates whether a profile should be created when data is received if one doesn\u2019t exist for an object of this type\\. The default is `FALSE`\\. If the AllowProfileCreation flag is set to `FALSE`, then the service tries to fetch a standard profile and associate this object with the profile\\. If it is set to `TRUE`, and if no match is found, then the service creates a new standard profile\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowProfileCreation", + "type": "boolean" + }, + "Description": { + "markdownDescription": "The description of the profile object type mapping\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DomainName": { + "markdownDescription": "The unique name of the domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", + "type": "string" + }, + "EncryptionKey": { + "markdownDescription": "The customer\\-provided key to encrypt the profile object that will be created in this profile object type mapping\\. If not specified the system will use the encryption key of the domain\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionKey", + "type": "string" + }, + "ExpirationDays": { + "markdownDescription": "The number of days until the data of this type expires\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExpirationDays", + "type": "number" + }, + "Fields": { + "items": { + "$ref": "#/definitions/AWS::CustomerProfiles::ObjectType.FieldMap" + }, + "markdownDescription": "A list of field definitions for the object type mapping\\. \n*Required*: No \n*Type*: List of [FieldMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-fieldmap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Fields", + "type": "array" + }, + "Keys": { + "items": { + "$ref": "#/definitions/AWS::CustomerProfiles::ObjectType.KeyMap" + }, + "markdownDescription": "A list of keys that can be used to map data to the profile or search for the profile\\. \n*Required*: No \n*Type*: List of [KeyMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-keymap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Keys", + "type": "array" + }, + "ObjectTypeName": { + "markdownDescription": "The name of the profile object type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ObjectTypeName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TemplateId": { + "markdownDescription": "A unique identifier for the template mapping\\. This can be used instead of specifying the Keys and Fields properties directly\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Name of the field\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "ObjectTypeField": { + "$ref": "#/definitions/AWS::CustomerProfiles::ObjectType.ObjectTypeField", + "markdownDescription": "Represents a field in a ProfileObjectType\\. \n*Required*: No \n*Type*: [ObjectTypeField](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-objecttypefield.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectTypeField" + } + }, + "type": "object" + }, + "AWS::CustomerProfiles::ObjectType.KeyMap": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "Name of the key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "ObjectTypeKeyList": { + "items": { + "$ref": "#/definitions/AWS::CustomerProfiles::ObjectType.ObjectTypeKey" + }, + "markdownDescription": "A list of ObjectTypeKey\\. \n*Required*: No \n*Type*: List of [ObjectTypeKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-objecttypekey.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectTypeKeyList", + "type": "array" + } + }, + "type": "object" + }, + "AWS::CustomerProfiles::ObjectType.ObjectTypeField": { + "additionalProperties": false, + "properties": { + "ContentType": { + "markdownDescription": "The content type of the field\\. Used for determining equality when searching\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentType", + "type": "string" + }, + "Source": { + "markdownDescription": "A field of a ProfileObject\\. For example: \\_source\\.FirstName, where \u201c\\_source\u201d is a ProfileObjectType of a Zendesk user and \u201cFirstName\u201d is a field in that ObjectType\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source", + "type": "string" + }, + "Target": { + "markdownDescription": "The location of the data in the standard ProfileObject model\\. For example: \\_profile\\.Address\\.PostalCode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target", + "type": "string" + } + }, + "type": "object" + }, + "AWS::CustomerProfiles::ObjectType.ObjectTypeKey": { + "additionalProperties": false, + "properties": { + "FieldNames": { + "items": { + "type": "string" + }, + "markdownDescription": "The reference for the key name of the fields map\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldNames", + "type": "array" + }, + "StandardIdentifiers": { + "items": { + "type": "string" + }, + "markdownDescription": "The types of keys that a ProfileObject can have\\. Each ProfileObject can have only 1 UNIQUE key but multiple PROFILE keys\\. PROFILE means that this key can be used to tie an object to a PROFILE\\. UNIQUE means that it can be used to uniquely identify an object\\. If a key a is marked as SECONDARY, it will be used to search for profiles after all other PROFILE keys have been searched\\. A LOOKUP\\_ONLY key is only used to match a profile but is not persisted to be used for searching of the profile\\. A NEW\\_ONLY key is only used if the profile does not already exist before the object is ingested, otherwise it is only used for matching objects to profiles\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StandardIdentifiers", + "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" + }, + "markdownDescription": "The Availability Zones \\(AZs\\) in which the cluster nodes will reside after the cluster has been created or updated\\. If provided, the length of this list must equal the `ReplicationFactor` parameter\\. If you omit this parameter, DAX will spread the nodes across Availability Zones for the highest availability\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZones", + "type": "array" + }, + "ClusterEndpointEncryptionType": { + "markdownDescription": "The encryption type of the cluster's endpoint\\. Available values are: \n+ `NONE` \\- The cluster's endpoint will be unencrypted\\.\n+ `TLS` \\- The cluster's endpoint will be encrypted with Transport Layer Security, and will provide an x509 certificate for authentication\\.\nThe default value is `NONE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | TLS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterEndpointEncryptionType", + "type": "string" + }, + "ClusterName": { + "markdownDescription": "The name of the DAX cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "ClusterName", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "IAMRoleARN": { + "markdownDescription": "A valid Amazon Resource Name \\(ARN\\) that identifies an IAM role\\. At runtime, DAX will assume this role and use the role's permissions to access DynamoDB on your behalf\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "IAMRoleARN", + "type": "string" + }, + "NodeType": { + "markdownDescription": "The node type for the nodes in the cluster\\. \\(All nodes in a DAX cluster are of the same type\\.\\) \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NodeType", + "type": "string" + }, + "NotificationTopicARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to which notifications will be sent\\. \nThe Amazon SNS topic owner must be same as the DAX cluster owner\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationTopicARN", + "type": "string" + }, + "ParameterGroupName": { + "markdownDescription": "The parameter group to be associated with the DAX cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterGroupName", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "markdownDescription": "A range of time when maintenance of DAX cluster software will be performed\\. For example: `sun:01:00-sun:09:00`\\. Cluster maintenance normally takes less than 30 minutes, and is performed automatically within the maintenance window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", + "type": "string" + }, + "ReplicationFactor": { + "markdownDescription": "The number of nodes in the DAX cluster\\. A replication factor of 1 will create a single\\-node cluster, without any read replicas\\. For additional fault tolerance, you can create a multiple node cluster with one or more read replicas\\. To do this, set `ReplicationFactor` to a number between 3 \\(one primary and two read replicas\\) and 10 \\(one primary and nine read replicas\\)\\. `If the AvailabilityZones` parameter is provided, its length must equal the `ReplicationFactor`\\. \n AWS recommends that you have at least two read replicas per cluster\\.\n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationFactor", + "type": "number" + }, + "SSESpecification": { + "$ref": "#/definitions/AWS::DAX::Cluster.SSESpecification", + "markdownDescription": "Represents the settings used to enable server\\-side encryption on the cluster\\. \n*Required*: No \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dax-cluster-ssespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SSESpecification" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of security group IDs to be assigned to each node in the DAX cluster\\. \\(Each of the security group ID is system\\-generated\\.\\) \nIf this parameter is not specified, DAX assigns the default VPC security group to each node\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SubnetGroupName": { + "markdownDescription": "The name of the subnet group to be used for the replication group\\. \nDAX clusters can only run in an Amazon VPC environment\\. All of the subnets that you specify in a subnet group must exist in the same VPC\\.\n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "SubnetGroupName", + "type": "string" + }, + "Tags": { + "markdownDescription": "A set of tags to associate with the DAX cluster\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Indicates whether server\\-side encryption is enabled \\(true\\) or disabled \\(false\\) on the cluster\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A description of the parameter group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "ParameterGroupName": { + "markdownDescription": "The name of the parameter group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ParameterGroupName", + "type": "string" + }, + "ParameterNameValues": { + "markdownDescription": "An array of name\\-value pairs for the parameters in the group\\. Each element in the array represents a single parameter\\. \n `record-ttl-millis` and `query-ttl-millis` are the only supported parameter names\\. For more details, see [Configuring TTL Settings](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.cluster-management.html#DAX.cluster-management.custom-settings.ttl)\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The description of the subnet group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "SubnetGroupName": { + "markdownDescription": "The name of the subnet group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetGroupName", + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of VPC subnet IDs for the subnet group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "type": "array" + } + }, + "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": { + "markdownDescription": "A description of the lifecycle policy\\. The characters ^\\[0\\-9A\\-Za\\-z \\_\\-\\]\\+$ are supported\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `500` \n*Pattern*: `[0-9A-Za-z _-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "ExecutionRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role used to run the operations specified by the lifecycle policy\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2048` \n*Pattern*: `arn:aws(-[a-z]{1,3}){0,2}:iam::\\d+:role/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionRoleArn", + "type": "string" + }, + "PolicyDetails": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.PolicyDetails", + "markdownDescription": "The configuration details of the lifecycle policy\\. \n*Required*: Conditional \n*Type*: [PolicyDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDetails" + }, + "State": { + "markdownDescription": "The activation state of the lifecycle policy\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED | ERROR` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to apply to the lifecycle policy during creation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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" + }, + "markdownDescription": "The rule for copying shared snapshots across Regions\\. \n*Required*: Yes \n*Type*: List of [CrossRegionCopyAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyaction.html) \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CrossRegionCopy", + "type": "array" + }, + "Name": { + "markdownDescription": "A descriptive name for the action\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `120` \n*Pattern*: `[0-9A-Za-z _-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "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": { + "markdownDescription": "The schedule, as a Cron expression\\. The schedule interval must be between 1 hour and 1 year\\. For more information, see [Cron expressions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions) in the *Amazon CloudWatch User Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `17` \n*Maximum*: `106` \n*Pattern*: `cron\\([^\\n]{11,100}\\)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CronExpression", + "type": "string" + }, + "Interval": { + "markdownDescription": "The interval between snapshots\\. The supported values are 1, 2, 3, 4, 6, 8, 12, and 24\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Interval", + "type": "number" + }, + "IntervalUnit": { + "markdownDescription": "The interval unit\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `HOURS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalUnit", + "type": "string" + }, + "Location": { + "markdownDescription": "Specifies the destination for snapshots created by the policy\\. To create snapshots in the same Region as the source resource, specify `CLOUD`\\. To create snapshots on the same Outpost as the source resource, specify `OUTPOST_LOCAL`\\. If you omit this parameter, `CLOUD` is used by default\\. \nIf the policy targets resources in an AWS Region, then you must create snapshots in the same Region as the source resource\\. \nIf the policy targets resources on an Outpost, then you can create snapshots on the same Outpost as the source resource, or in the Region of that Outpost\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CLOUD | OUTPOST_LOCAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", + "type": "string" + }, + "Times": { + "items": { + "type": "string" + }, + "markdownDescription": "The time, in UTC, to start the operation\\. The supported format is hh:mm\\. \nThe operation occurs within a one\\-hour window following the specified time\\. If you do not specify a time, Amazon DLM selects a time within the next 24 hours\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Times", + "type": "array" + } + }, + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.CrossRegionCopyAction": { + "additionalProperties": false, + "properties": { + "EncryptionConfiguration": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EncryptionConfiguration", + "markdownDescription": "The encryption settings for the copied snapshot\\. \n*Required*: Yes \n*Type*: [EncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-encryptionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionConfiguration" + }, + "RetainRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule", + "markdownDescription": "Specifies the retention rule for cross\\-Region snapshot copies\\. \n*Required*: No \n*Type*: [CrossRegionCopyRetainRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyretainrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetainRule" + }, + "Target": { + "markdownDescription": "The target Region\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2048` \n*Pattern*: `^[\\w:\\-\\/\\*]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target", + "type": "string" + } + }, + "required": [ + "EncryptionConfiguration", + "Target" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.CrossRegionCopyDeprecateRule": { + "additionalProperties": false, + "properties": { + "Interval": { + "markdownDescription": "The period after which to deprecate the cross\\-Region AMI copies\\. The period must be less than or equal to the cross\\-Region AMI copy retention period, and it can't be greater than 10 years\\. This is equivalent to 120 months, 520 weeks, or 3650 days\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Interval", + "type": "number" + }, + "IntervalUnit": { + "markdownDescription": "The unit of time in which to measure the **Interval**\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DAYS | MONTHS | WEEKS | YEARS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalUnit", + "type": "string" + } + }, + "required": [ + "Interval", + "IntervalUnit" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule": { + "additionalProperties": false, + "properties": { + "Interval": { + "markdownDescription": "The amount of time to retain each snapshot\\. The maximum is 100 years\\. This is equivalent to 1200 months, 5200 weeks, or 36500 days\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Interval", + "type": "number" + }, + "IntervalUnit": { + "markdownDescription": "The unit of time for time\\-based retention\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DAYS | MONTHS | WEEKS | YEARS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalUnit", + "type": "string" + } + }, + "required": [ + "Interval", + "IntervalUnit" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.CrossRegionCopyRule": { + "additionalProperties": false, + "properties": { + "CmkArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS KMS key to use for EBS encryption\\. If this parameter is not specified, the default KMS key for the account is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2048` \n*Pattern*: `arn:aws(-[a-z]{1,3}){0,2}:kms:([a-z]+-){2,3}\\d:\\d+:key/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CmkArn", + "type": "string" + }, + "CopyTags": { + "markdownDescription": "Indicates whether to copy all user\\-defined tags from the source snapshot to the cross\\-Region snapshot copy\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CopyTags", + "type": "boolean" + }, + "DeprecateRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyDeprecateRule", + "markdownDescription": "The AMI deprecation rule for cross\\-Region AMI copies created by the rule\\. \n*Required*: No \n*Type*: [CrossRegionCopyDeprecateRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopydeprecaterule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeprecateRule" + }, + "Encrypted": { + "markdownDescription": "To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, enable encryption using this parameter\\. Copies of encrypted snapshots are encrypted, even if this parameter is false or if encryption by default is not enabled\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encrypted", + "type": "boolean" + }, + "RetainRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule", + "markdownDescription": "The retention rule that indicates how long snapshot copies are to be retained in the destination Region\\. \n*Required*: No \n*Type*: [CrossRegionCopyRetainRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyretainrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetainRule" + }, + "Target": { + "markdownDescription": "The target Region or the Amazon Resource Name \\(ARN\\) of the target Outpost for the snapshot copies\\. \nUse this parameter instead of **TargetRegion**\\. Do not specify both\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2048` \n*Pattern*: `^[\\w:\\-\\/\\*]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target", + "type": "string" + }, + "TargetRegion": { + "markdownDescription": "Avoid using this parameter when creating new policies\\. Instead, use **Target** to specify a target Region or a target Outpost for snapshot copies\\. \nFor policies created before the **Target** parameter was introduced, this parameter indicates the target Region for snapshot copies\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `16` \n*Pattern*: `([a-z]+-){2,3}\\d` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetRegion", + "type": "string" + } + }, + "required": [ + "Encrypted" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.DeprecateRule": { + "additionalProperties": false, + "properties": { + "Count": { + "markdownDescription": "If the schedule has a count\\-based retention rule, this parameter specifies the number of oldest AMIs to deprecate\\. The count must be less than or equal to the schedule's retention count, and it can't be greater than 1000\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count", + "type": "number" + }, + "Interval": { + "markdownDescription": "If the schedule has an age\\-based retention rule, this parameter specifies the period after which to deprecate AMIs created by the schedule\\. The period must be less than or equal to the schedule's retention period, and it can't be greater than 10 years\\. This is equivalent to 120 months, 520 weeks, or 3650 days\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Interval", + "type": "number" + }, + "IntervalUnit": { + "markdownDescription": "The unit of time in which to measure the **Interval**\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DAYS | MONTHS | WEEKS | YEARS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalUnit", + "type": "string" + } + }, + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "CmkArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS KMS key to use for EBS encryption\\. If this parameter is not specified, the default KMS key for the account is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2048` \n*Pattern*: `arn:aws(-[a-z]{1,3}){0,2}:kms:([a-z]+-){2,3}\\d:\\d+:key/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CmkArn", + "type": "string" + }, + "Encrypted": { + "markdownDescription": "To encrypt a copy of an unencrypted snapshot when encryption by default is not enabled, enable encryption using this parameter\\. Copies of encrypted snapshots are encrypted, even if this parameter is false or when encryption by default is not enabled\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encrypted", + "type": "boolean" + } + }, + "required": [ + "Encrypted" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.EventParameters": { + "additionalProperties": false, + "properties": { + "DescriptionRegex": { + "markdownDescription": "The snapshot description that can trigger the policy\\. The description pattern is specified using a regular expression\\. The policy runs only if a snapshot with a description that matches the specified pattern is shared with your account\\. \nFor example, specifying `^.*Created for policy: policy-1234567890abcdef0.*$` configures the policy to run only if snapshots created by policy `policy-1234567890abcdef0` are shared with your account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Pattern*: `[\\p{all}]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DescriptionRegex", + "type": "string" + }, + "EventType": { + "markdownDescription": "The type of event\\. Currently, only snapshot sharing events are supported\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `shareSnapshot` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventType", + "type": "string" + }, + "SnapshotOwner": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of the AWS accounts that can trigger policy by sharing snapshots with your account\\. The policy only runs if one of the specified AWS accounts shares a snapshot with your account\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotOwner", + "type": "array" + } + }, + "required": [ + "EventType", + "SnapshotOwner" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.EventSource": { + "additionalProperties": false, + "properties": { + "Parameters": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EventParameters", + "markdownDescription": "Information about the event\\. \n*Required*: No \n*Type*: [EventParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-eventparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters" + }, + "Type": { + "markdownDescription": "The source of the event\\. Currently only managed CloudWatch Events rules are supported\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `MANAGED_CWE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.FastRestoreRule": { + "additionalProperties": false, + "properties": { + "AvailabilityZones": { + "items": { + "type": "string" + }, + "markdownDescription": "The Availability Zones in which to enable fast snapshot restore\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZones", + "type": "array" + }, + "Count": { + "markdownDescription": "The number of snapshots to be enabled with fast snapshot restore\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count", + "type": "number" + }, + "Interval": { + "markdownDescription": "The amount of time to enable fast snapshot restore\\. The maximum is 100 years\\. This is equivalent to 1200 months, 5200 weeks, or 36500 days\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Interval", + "type": "number" + }, + "IntervalUnit": { + "markdownDescription": "The unit of time for enabling fast snapshot restore\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DAYS | MONTHS | WEEKS | YEARS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalUnit", + "type": "string" + } + }, + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.Parameters": { + "additionalProperties": false, + "properties": { + "ExcludeBootVolume": { + "markdownDescription": "\\[EBS Snapshot Management \u2013 Instance policies only\\] Indicates whether to exclude the root volume from snapshots created using [CreateSnapshots](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSnapshots.html)\\. The default is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludeBootVolume", + "type": "boolean" + }, + "ExcludeDataVolumeTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "NoReboot": { + "markdownDescription": "Applies to AMI lifecycle policies only\\. Indicates whether targeted instances are rebooted when the lifecycle policy runs\\. `true` indicates that targeted instances are not rebooted when the policy runs\\. `false` indicates that target instances are rebooted when the policy runs\\. The default is `true` \\(instances are not rebooted\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoReboot", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.PolicyDetails": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Action" + }, + "markdownDescription": "The actions to be performed when the event\\-based policy is triggered\\. You can specify only one action per policy\\. \nThis parameter is required for event\\-based policies only\\. If you are creating a snapshot or AMI policy, omit this parameter\\. \n*Required*: No \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-action.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", + "type": "array" + }, + "EventSource": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EventSource", + "markdownDescription": "The event that triggers the event\\-based policy\\. \nThis parameter is required for event\\-based policies only\\. If you are creating a snapshot or AMI policy, omit this parameter\\. \n*Required*: No \n*Type*: [EventSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-eventsource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventSource" + }, + "Parameters": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Parameters", + "markdownDescription": "A set of optional parameters for snapshot and AMI lifecycle policies\\. \nThis parameter is required for snapshot and AMI policies only\\. If you are creating an event\\-based policy, omit this parameter\\. \nIf you are modifying a policy that was created or previously modified using the Amazon Data Lifecycle Manager console, then you must include this parameter and specify either the default values or the new values that you require\\. You can't omit this parameter or set its values to null\\.\n*Required*: No \n*Type*: [Parameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-parameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters" + }, + "PolicyType": { + "markdownDescription": "The valid target resource types and actions a policy can manage\\. Specify `EBS_SNAPSHOT_MANAGEMENT` to create a lifecycle policy that manages the lifecycle of Amazon EBS snapshots\\. Specify `IMAGE_MANAGEMENT` to create a lifecycle policy that manages the lifecycle of EBS\\-backed AMIs\\. Specify `EVENT_BASED_POLICY ` to create an event\\-based policy that performs specific actions when a defined event occurs in your AWS account\\. \nThe default is `EBS_SNAPSHOT_MANAGEMENT`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `EBS_SNAPSHOT_MANAGEMENT | EVENT_BASED_POLICY | IMAGE_MANAGEMENT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyType", + "type": "string" + }, + "ResourceLocations": { + "items": { + "type": "string" + }, + "markdownDescription": "The location of the resources to backup\\. If the source resources are located in an AWS Region, specify `CLOUD`\\. If the source resources are located on an Outpost in your account, specify `OUTPOST`\\. \nIf you specify `OUTPOST`, Amazon Data Lifecycle Manager backs up all resources of the specified type with matching target tags across all of the Outposts in your account\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceLocations", + "type": "array" + }, + "ResourceTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The target resource type for snapshot and AMI lifecycle policies\\. Use `VOLUME `to create snapshots of individual volumes or use `INSTANCE` to create multi\\-volume snapshots from the volumes for an instance\\. \nThis parameter is required for snapshot and AMI policies only\\. If you are creating an event\\-based policy, omit this parameter\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceTypes", + "type": "array" + }, + "Schedules": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Schedule" + }, + "markdownDescription": "The schedules of policy\\-defined actions for snapshot and AMI lifecycle policies\\. A policy can have up to four schedules\u2014one mandatory schedule and up to three optional schedules\\. \nThis parameter is required for snapshot and AMI policies only\\. If you are creating an event\\-based policy, omit this parameter\\. \n*Required*: No \n*Type*: List of [Schedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html) \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedules", + "type": "array" + }, + "TargetTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The single tag that identifies targeted resources for this policy\\. \nThis parameter is required for snapshot and AMI policies only\\. If you are creating an event\\-based policy, omit this parameter\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetTags", + "type": "array" + } + }, + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.RetainRule": { + "additionalProperties": false, + "properties": { + "Count": { + "markdownDescription": "The number of snapshots to retain for each volume, up to a maximum of 1000\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count", + "type": "number" + }, + "Interval": { + "markdownDescription": "The amount of time to retain each snapshot\\. The maximum is 100 years\\. This is equivalent to 1200 months, 5200 weeks, or 36500 days\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Interval", + "type": "number" + }, + "IntervalUnit": { + "markdownDescription": "The unit of time for time\\-based retention\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DAYS | MONTHS | WEEKS | YEARS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Copy all user\\-defined tags on a source volume to snapshots of the volume created by this policy\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CopyTags", + "type": "boolean" + }, + "CreateRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CreateRule", + "markdownDescription": "The creation rule\\. \n*Required*: No \n*Type*: [CreateRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-createrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreateRule" + }, + "CrossRegionCopyRules": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyRule" + }, + "markdownDescription": "The rule for cross\\-Region snapshot copies\\. \nYou can only specify cross\\-Region copy rules for policies that create snapshots in a Region\\. If the policy creates snapshots on an Outpost, then you cannot copy the snapshots to a Region or to an Outpost\\. If the policy creates snapshots in a Region, then snapshots can be copied to up to three Regions or Outposts\\. \n*Required*: No \n*Type*: List of [CrossRegionCopyRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyrule.html) \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CrossRegionCopyRules", + "type": "array" + }, + "DeprecateRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.DeprecateRule", + "markdownDescription": "The AMI deprecation rule for the schedule\\. \n*Required*: No \n*Type*: [DeprecateRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-deprecaterule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeprecateRule" + }, + "FastRestoreRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.FastRestoreRule", + "markdownDescription": "The rule for enabling fast snapshot restore\\. \n*Required*: No \n*Type*: [FastRestoreRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-fastrestorerule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FastRestoreRule" + }, + "Name": { + "markdownDescription": "The name of the schedule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `120` \n*Pattern*: `[0-9A-Za-z _-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "RetainRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.RetainRule", + "markdownDescription": "The retention rule\\. \n*Required*: No \n*Type*: [RetainRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-retainrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetainRule" + }, + "ShareRules": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.ShareRule" + }, + "markdownDescription": "The rule for sharing snapshots with other AWS accounts\\. \n*Required*: No \n*Type*: List of [ShareRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-sharerule.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShareRules", + "type": "array" + }, + "TagsToAdd": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to apply to policy\\-created resources\\. These user\\-defined tags are in addition to the AWS\\-added lifecycle tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `45` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagsToAdd", + "type": "array" + }, + "VariableTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A collection of key/value pairs with values determined dynamically when the policy is executed\\. Keys may be any valid Amazon EC2 tag key\\. Values must be in one of the two following formats: `$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/instance-id.html)` or `$(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/timestamp.html)`\\. Variable tags are only valid for EBS Snapshot Management \u2013 Instance policies\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `45` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VariableTags", + "type": "array" + } + }, + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.ShareRule": { + "additionalProperties": false, + "properties": { + "TargetAccounts": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of the AWS accounts with which to share the snapshots\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetAccounts", + "type": "array" + }, + "UnshareInterval": { + "markdownDescription": "The period after which snapshots that are shared with other AWS accounts are automatically unshared\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnshareInterval", + "type": "number" + }, + "UnshareIntervalUnit": { + "markdownDescription": "The unit of time for the automatic unsharing interval\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DAYS | MONTHS | WEEKS | YEARS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A customer\\-assigned name for the certificate\\. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens\\. They can't end with a hyphen or contain two consecutive hyphens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateIdentifier", + "type": "string" + }, + "CertificatePem": { + "markdownDescription": "The contents of a `.pem` file, which contains an X\\.509 certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificatePem", + "type": "string" + }, + "CertificateWallet": { + "markdownDescription": "The location of an imported Oracle Wallet certificate for use with SSL\\. Example: `filebase64(\"${path.root}/rds-ca-2019-root.sso\")` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateArn", + "type": "string" + }, + "DatabaseName": { + "markdownDescription": "The name of the endpoint database\\. For a MySQL source or target endpoint, do not specify DatabaseName\\. To migrate to a specific database, use this setting and `targetDbType`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", + "type": "string" + }, + "DocDbSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.DocDbSettings", + "markdownDescription": "Settings in JSON format for the source DocumentDB endpoint\\. For more information about the available settings, see the configuration properties section in [ Using DocumentDB as a Target for AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.DocumentDB.html) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [DocDbSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-docdbsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocDbSettings" + }, + "DynamoDbSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.DynamoDbSettings", + "markdownDescription": "Settings in JSON format for the target Amazon DynamoDB endpoint\\. For information about other available settings, see [Using Object Mapping to Migrate Data to DynamoDB](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.DynamoDB.html#CHAP_Target.DynamoDB.ObjectMapping) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [DynamoDbSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-dynamodbsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DynamoDbSettings" + }, + "ElasticsearchSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.ElasticsearchSettings", + "markdownDescription": "Settings in JSON format for the target OpenSearch endpoint\\. For more information about the available settings, see [Extra Connection Attributes When Using OpenSearch as a Target for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Elasticsearch.html#CHAP_Target.Elasticsearch.Configuration) in the * AWS Database Migration Service User Guide*\\. \n*Required*: No \n*Type*: [ElasticsearchSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticsearchSettings" + }, + "EndpointIdentifier": { + "markdownDescription": "The database endpoint identifier\\. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens\\. They can't end with a hyphen, or contain two consecutive hyphens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointIdentifier", + "type": "string" + }, + "EndpointType": { + "markdownDescription": "The type of endpoint\\. Valid values are `source` and `target`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `source | target` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointType", + "type": "string" + }, + "EngineName": { + "markdownDescription": "The type of engine for the endpoint\\. Valid values, depending on the `EndpointType` value, include `\"mysql\"`, `\"oracle\"`, `\"postgres\"`, `\"mariadb\"`, `\"aurora\"`, `\"aurora-postgresql\"`, `\"opensearch\"`, `\"redshift\"`, `\"s3\"`, `\"db2\"`, `\"azuredb\"`, `\"sybase\"`, `\"dynamodb\"`, `\"mongodb\"`, `\"kinesis\"`, `\"kafka\"`, `\"elasticsearch\"`, `\"docdb\"`, `\"sqlserver\"`, and `\"neptune\"`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EngineName", + "type": "string" + }, + "ExtraConnectionAttributes": { + "markdownDescription": "Additional attributes associated with the connection\\. Each attribute is specified as a name\\-value pair associated by an equal sign \\(=\\)\\. Multiple attributes are separated by a semicolon \\(;\\) with no additional white space\\. For information on the attributes available for connecting your source or target endpoint, see [Working with AWS DMS Endpoints](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.html) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExtraConnectionAttributes", + "type": "string" + }, + "GcpMySQLSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.GcpMySQLSettings", + "markdownDescription": "Settings in JSON format for the source GCP MySQL endpoint\\. \n*Required*: No \n*Type*: [GcpMySQLSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GcpMySQLSettings" + }, + "IbmDb2Settings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.IbmDb2Settings", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [IbmDb2Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-ibmdb2settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IbmDb2Settings" + }, + "KafkaSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.KafkaSettings", + "markdownDescription": "Settings in JSON format for the target Apache Kafka endpoint\\. For more information about the available settings, see [Using object mapping to migrate data to a Kafka topic](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kafka.html#CHAP_Target.Kafka.ObjectMapping) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [KafkaSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KafkaSettings" + }, + "KinesisSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.KinesisSettings", + "markdownDescription": "Settings in JSON format for the target endpoint for Amazon Kinesis Data Streams\\. For more information about the available settings, see [Using Amazon Kinesis Data Streams as a Target for AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Kinesis.html) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [KinesisSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KinesisSettings" + }, + "KmsKeyId": { + "markdownDescription": "An AWS KMS key identifier that is used to encrypt the connection parameters for the endpoint\\. \nIf you don't specify a value for the `KmsKeyId` parameter, then AWS DMS uses your default encryption key\\. \n AWS KMS creates the default encryption key for your AWS account\\. Your AWS account has a different default encryption key for each AWS Region\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + }, + "MicrosoftSqlServerSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.MicrosoftSqlServerSettings", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [MicrosoftSqlServerSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MicrosoftSqlServerSettings" + }, + "MongoDbSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.MongoDbSettings", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [MongoDbSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MongoDbSettings" + }, + "MySqlSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.MySqlSettings", + "markdownDescription": "Settings in JSON format for the source and target MySQL endpoint\\. For information about other available settings, see [Extra connection attributes when using MySQL as a source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MySQL.html#CHAP_Source.MySQL.ConnectionAttrib) and [Extra connection attributes when using a MySQL\\-compatible database as a target for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html#CHAP_Target.MySQL.ConnectionAttrib) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [MySqlSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mysqlsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MySqlSettings" + }, + "NeptuneSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.NeptuneSettings", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [NeptuneSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-neptunesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NeptuneSettings" + }, + "OracleSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.OracleSettings", + "markdownDescription": "Settings in JSON format for the source and target Oracle endpoint\\. For information about other available settings, see [Extra connection attributes when using Oracle as a source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.ConnectionAttrib) and [ Extra connection attributes when using Oracle as a target for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html#CHAP_Target.Oracle.ConnectionAttrib) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [OracleSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OracleSettings" + }, + "Password": { + "markdownDescription": "The password to be used to log in to the endpoint database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", + "type": "string" + }, + "Port": { + "markdownDescription": "The port used by the endpoint database\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + }, + "PostgreSqlSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.PostgreSqlSettings", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [PostgreSqlSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PostgreSqlSettings" + }, + "RedisSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.RedisSettings", + "markdownDescription": "Settings in JSON format for the target Redis endpoint\\. \n*Required*: No \n*Type*: [RedisSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedisSettings" + }, + "RedshiftSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.RedshiftSettings", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [RedshiftSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedshiftSettings" + }, + "ResourceIdentifier": { + "markdownDescription": "A friendly name for the resource identifier at the end of the `EndpointArn` response parameter that is returned in the created `Endpoint` object\\. The value for this parameter can have up to 31 characters\\. It can contain only ASCII letters, digits, and hyphen \\('\\-'\\)\\. Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as `Example-App-ARN1`\\. For example, this value might result in the `EndpointArn` value `arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1`\\. If you don't specify a `ResourceIdentifier` value, AWS DMS generates a default identifier value for the end of `EndpointArn`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceIdentifier", + "type": "string" + }, + "S3Settings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.S3Settings", + "markdownDescription": "Settings in JSON format for the target Amazon S3 endpoint\\. For more information about the available settings, see [Extra Connection Attributes When Using Amazon S3 as a Target for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [S3Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Settings" + }, + "ServerName": { + "markdownDescription": "The name of the server where the endpoint database resides\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerName", + "type": "string" + }, + "SslMode": { + "markdownDescription": "The Secure Sockets Layer \\(SSL\\) mode to use for the SSL connection\\. The default is `none`\\. \nWhen `engine_name` is set to S3, then the only allowed value is `none`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `none | require | verify-ca | verify-full` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SslMode", + "type": "string" + }, + "SybaseSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.SybaseSettings", + "markdownDescription": "Settings in JSON format for the source and target SAP ASE endpoint\\. For information about other available settings, see [Extra connection attributes when using SAP ASE as a source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html#CHAP_Source.SAP.ConnectionAttrib) and [Extra connection attributes when using SAP ASE as a target for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SAP.html#CHAP_Target.SAP.ConnectionAttrib) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: [SybaseSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-sybasesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SybaseSettings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "One or more tags to be assigned to the endpoint\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "type": "array" + }, + "Username": { + "markdownDescription": "The user name to be used to log in to the endpoint database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerAccessRoleArn", + "type": "string" + }, + "SecretsManagerSecretId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerSecretId", + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.DynamoDbSettings": { + "additionalProperties": false, + "properties": { + "ServiceAccessRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) used by the service to access the IAM role\\. The role must allow the `iam:PassRole` action\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceAccessRoleArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.ElasticsearchSettings": { + "additionalProperties": false, + "properties": { + "EndpointUri": { + "markdownDescription": "The endpoint for the OpenSearch cluster\\. AWS DMS uses HTTPS if a transport protocol \\(http/https\\) is not specified\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointUri", + "type": "string" + }, + "ErrorRetryDuration": { + "markdownDescription": "The maximum number of seconds for which DMS retries failed API requests to the OpenSearch cluster\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorRetryDuration", + "type": "number" + }, + "FullLoadErrorPercentage": { + "markdownDescription": "The maximum percentage of records that can fail to be written before a full load operation stops\\. \nTo avoid early failure, this counter is only effective after 1000 records are transferred\\. OpenSearch also has the concept of error monitoring during the last 10 minutes of an Observation Window\\. If transfer of all records fail in the last 10 minutes, the full load operation stops\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FullLoadErrorPercentage", + "type": "number" + }, + "ServiceAccessRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) used by the service to access the IAM role\\. The role must allow the `iam:PassRole` action\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceAccessRoleArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.GcpMySQLSettings": { + "additionalProperties": false, + "properties": { + "AfterConnectScript": { + "markdownDescription": "Specifies a script to run immediately after AWS DMS connects to the endpoint\\. The migration task continues running regardless if the SQL statement succeeds or fails\\. \nFor this parameter, provide the code of the script itself, not the name of a file containing the script\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AfterConnectScript", + "type": "string" + }, + "CleanSourceMetadataOnMismatch": { + "markdownDescription": "Adjusts the behavior of AWS DMS when migrating from an SQL Server source database that is hosted as part of an Always On availability group cluster\\. If you need AWS DMS to poll all the nodes in the Always On cluster for transaction backups, set this attribute to `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CleanSourceMetadataOnMismatch", + "type": "boolean" + }, + "DatabaseName": { + "markdownDescription": "Database name for the endpoint\\. For a MySQL source or target endpoint, don't explicitly specify the database using the `DatabaseName` request parameter on either the `CreateEndpoint` or `ModifyEndpoint` API call\\. Specifying `DatabaseName` when you create or modify a MySQL endpoint replicates all the task tables to this single database\\. For MySQL endpoints, you specify the database only when you specify the schema in the table\\-mapping rules of the AWS DMS task\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", + "type": "string" + }, + "EventsPollInterval": { + "markdownDescription": "Specifies how often to check the binary log for new changes/events when the database is idle\\. The default is five seconds\\. \nExample: `eventsPollInterval=5;` \nIn the example, AWS DMS checks for changes in the binary logs every five seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventsPollInterval", + "type": "number" + }, + "MaxFileSize": { + "markdownDescription": "Specifies the maximum size \\(in KB\\) of any \\.csv file used to transfer data to a MySQL\\-compatible database\\. \nExample: `maxFileSize=512` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxFileSize", + "type": "number" + }, + "ParallelLoadThreads": { + "markdownDescription": "Improves performance when loading data into the MySQL\\-compatible target database\\. Specifies how many threads to use to load the data into the MySQL\\-compatible target database\\. Setting a large number of threads can have an adverse effect on database performance, because a separate connection is required for each thread\\. The default is one\\. \nExample: `parallelLoadThreads=1` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParallelLoadThreads", + "type": "number" + }, + "Password": { + "markdownDescription": "Endpoint connection password\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", + "type": "string" + }, + "Port": { + "markdownDescription": "*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + }, + "SecretsManagerAccessRoleArn": { + "markdownDescription": "The full Amazon Resource Name \\(ARN\\) of the IAM role that specifies AWS DMS as the trusted entity and grants the required permissions to access the value in `SecretsManagerSecret.` The role must allow the `iam:PassRole` action\\. `SecretsManagerSecret` has the value of the AWS Secrets Manager secret that allows access to the MySQL endpoint\\. \nYou can specify one of two sets of values for these permissions\\. You can specify the values for this setting and `SecretsManagerSecretId`\\. Or you can specify clear\\-text values for `UserName`, `Password`, `ServerName`, and `Port`\\. You can't specify both\\. For more information on creating this `SecretsManagerSecret` and the `SecretsManagerAccessRoleArn` and `SecretsManagerSecretId` required to access it, see [Using secrets to access AWS Database Migration Service resources](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager) in the AWS Database Migration Service User Guide\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerAccessRoleArn", + "type": "string" + }, + "SecretsManagerSecretId": { + "markdownDescription": "The full ARN, partial ARN, or friendly name of the `SecretsManagerSecret` that contains the MySQL endpoint connection details\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerSecretId", + "type": "string" + }, + "ServerName": { + "markdownDescription": "Endpoint TCP port\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerName", + "type": "string" + }, + "ServerTimezone": { + "markdownDescription": "Specifies the time zone for the source MySQL database\\. \nExample: `serverTimezone=US/Pacific;` \nNote: Do not enclose time zones in single quotes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerTimezone", + "type": "string" + }, + "Username": { + "markdownDescription": "Endpoint connection user name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.IbmDb2Settings": { + "additionalProperties": false, + "properties": { + "CurrentLsn": { + "type": "string" + }, + "MaxKBytesPerRead": { + "type": "number" + }, + "SecretsManagerAccessRoleArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerAccessRoleArn", + "type": "string" + }, + "SecretsManagerSecretId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerSecretId", + "type": "string" + }, + "SetDataCaptureChanges": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.KafkaSettings": { + "additionalProperties": false, + "properties": { + "Broker": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Broker", + "type": "string" + }, + "IncludeControlDetails": { + "markdownDescription": "Shows detailed control information for table definition, column definition, and table and column changes in the Kafka message output\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeControlDetails", + "type": "boolean" + }, + "IncludeNullAndEmpty": { + "markdownDescription": "Include NULL and empty columns for records migrated to the endpoint\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeNullAndEmpty", + "type": "boolean" + }, + "IncludePartitionValue": { + "type": "boolean" + }, + "IncludeTableAlterOperations": { + "markdownDescription": "Includes any data definition language \\(DDL\\) operations that change the table in the control data, such as `rename-table`, `drop-table`, `add-column`, `drop-column`, and `rename-column`\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeTableAlterOperations", + "type": "boolean" + }, + "IncludeTransactionDetails": { + "markdownDescription": "Provides detailed transaction information from the source database\\. This information includes a commit timestamp, a log position, and values for `transaction_id`, previous `transaction_id`, and `transaction_record_id` \\(the record offset within a transaction\\)\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeTransactionDetails", + "type": "boolean" + }, + "MessageFormat": { + "type": "string" + }, + "MessageMaxBytes": { + "type": "number" + }, + "NoHexPrefix": { + "markdownDescription": "Set this optional parameter to `true` to avoid adding a '0x' prefix to raw data in hexadecimal format\\. For example, by default, AWS DMS adds a '0x' prefix to the LOB column type in hexadecimal format moving from an Oracle source to a Kafka target\\. Use the `NoHexPrefix` endpoint setting to enable migration of RAW data type columns without adding the '0x' prefix\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoHexPrefix", + "type": "boolean" + }, + "PartitionIncludeSchemaTable": { + "markdownDescription": "Prefixes schema and table names to partition values, when the partition type is `primary-key-type`\\. Doing this increases data distribution among Kafka partitions\\. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key\\. In this case, the same primary key is sent from thousands of tables to the same partition, which causes throttling\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PartitionIncludeSchemaTable", + "type": "boolean" + }, + "SaslPassword": { + "markdownDescription": "The secure password you created when you first set up your MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL\\-SSL authentication\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SaslPassword", + "type": "string" + }, + "SaslUserName": { + "markdownDescription": "The secure user name you created when you first set up your MSK cluster to validate a client identity and make an encrypted connection between server and client using SASL\\-SSL authentication\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SaslUserName", + "type": "string" + }, + "SecurityProtocol": { + "markdownDescription": "Set secure connection to a Kafka target endpoint using Transport Layer Security \\(TLS\\)\\. Options include `ssl-encryption`, `ssl-authentication`, and `sasl-ssl`\\. `sasl-ssl` requires `SaslUsername` and `SaslPassword`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `plaintext | sasl-ssl | ssl-authentication | ssl-encryption` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityProtocol", + "type": "string" + }, + "SslCaCertificateArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the private certificate authority \\(CA\\) cert that AWS DMS uses to securely connect to your Kafka target endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SslCaCertificateArn", + "type": "string" + }, + "SslClientCertificateArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the client certificate used to securely connect to a Kafka target endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SslClientCertificateArn", + "type": "string" + }, + "SslClientKeyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the client private key used to securely connect to a Kafka target endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SslClientKeyArn", + "type": "string" + }, + "SslClientKeyPassword": { + "markdownDescription": "The password for the client private key used to securely connect to a Kafka target endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SslClientKeyPassword", + "type": "string" + }, + "Topic": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Topic", + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.KinesisSettings": { + "additionalProperties": false, + "properties": { + "IncludeControlDetails": { + "markdownDescription": "Shows detailed control information for table definition, column definition, and table and column changes in the Kinesis message output\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeControlDetails", + "type": "boolean" + }, + "IncludeNullAndEmpty": { + "markdownDescription": "Include NULL and empty columns for records migrated to the endpoint\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeNullAndEmpty", + "type": "boolean" + }, + "IncludePartitionValue": { + "type": "boolean" + }, + "IncludeTableAlterOperations": { + "markdownDescription": "Includes any data definition language \\(DDL\\) operations that change the table in the control data, such as `rename-table`, `drop-table`, `add-column`, `drop-column`, and `rename-column`\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeTableAlterOperations", + "type": "boolean" + }, + "IncludeTransactionDetails": { + "markdownDescription": "Provides detailed transaction information from the source database\\. This information includes a commit timestamp, a log position, and values for `transaction_id`, previous `transaction_id`, and `transaction_record_id` \\(the record offset within a transaction\\)\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeTransactionDetails", + "type": "boolean" + }, + "MessageFormat": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `json | json-unformatted` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageFormat", + "type": "string" + }, + "NoHexPrefix": { + "markdownDescription": "Set this optional parameter to `true` to avoid adding a '0x' prefix to raw data in hexadecimal format\\. For example, by default, AWS DMS adds a '0x' prefix to the LOB column type in hexadecimal format moving from an Oracle source to an Amazon Kinesis target\\. Use the `NoHexPrefix` endpoint setting to enable migration of RAW data type columns without adding the '0x' prefix\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoHexPrefix", + "type": "boolean" + }, + "PartitionIncludeSchemaTable": { + "markdownDescription": "Prefixes schema and table names to partition values, when the partition type is `primary-key-type`\\. Doing this increases data distribution among Kinesis shards\\. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key\\. In this case, the same primary key is sent from thousands of tables to the same shard, which causes throttling\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PartitionIncludeSchemaTable", + "type": "boolean" + }, + "ServiceAccessRoleArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceAccessRoleArn", + "type": "string" + }, + "StreamArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerAccessRoleArn", + "type": "string" + }, + "SecretsManagerSecretId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerSecretId", + "type": "string" + }, + "UseBcpFullLoad": { + "type": "boolean" + }, + "UseThirdPartyBackupDevice": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.MongoDbSettings": { + "additionalProperties": false, + "properties": { + "AuthMechanism": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `default | mongodb_cr | scram_sha_1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthMechanism", + "type": "string" + }, + "AuthSource": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthSource", + "type": "string" + }, + "AuthType": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `no | password` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthType", + "type": "string" + }, + "DatabaseName": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", + "type": "string" + }, + "DocsToInvestigate": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocsToInvestigate", + "type": "string" + }, + "ExtractDocId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExtractDocId", + "type": "string" + }, + "NestingLevel": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `none | one` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NestingLevel", + "type": "string" + }, + "Password": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", + "type": "string" + }, + "Port": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + }, + "SecretsManagerAccessRoleArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerAccessRoleArn", + "type": "string" + }, + "SecretsManagerSecretId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerSecretId", + "type": "string" + }, + "ServerName": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerName", + "type": "string" + }, + "Username": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerAccessRoleArn", + "type": "string" + }, + "SecretsManagerSecretId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerSecretId", + "type": "string" + }, + "ServerTimezone": { + "type": "string" + }, + "TargetDbType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.NeptuneSettings": { + "additionalProperties": false, + "properties": { + "ErrorRetryDuration": { + "markdownDescription": "The number of milliseconds for AWS DMS to wait to retry a bulk\\-load of migrated graph data to the Neptune target database before raising an error\\. The default is 250\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorRetryDuration", + "type": "number" + }, + "IamAuthEnabled": { + "markdownDescription": "If you want AWS Identity and Access Management \\(IAM\\) authorization enabled for this endpoint, set this parameter to `true`\\. Then attach the appropriate IAM policy document to your service role specified by `ServiceAccessRoleArn`\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamAuthEnabled", + "type": "boolean" + }, + "MaxFileSize": { + "markdownDescription": "The maximum size in kilobytes of migrated graph data stored in a \\.csv file before AWS DMS bulk\\-loads the data to the Neptune target database\\. The default is 1,048,576 KB\\. If the bulk load is successful, AWS DMS clears the bucket, ready to store the next batch of migrated graph data\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxFileSize", + "type": "number" + }, + "MaxRetryCount": { + "markdownDescription": "The number of times for AWS DMS to retry a bulk load of migrated graph data to the Neptune target database before raising an error\\. The default is 5\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxRetryCount", + "type": "number" + }, + "S3BucketFolder": { + "markdownDescription": "A folder path where you want AWS DMS to store migrated graph data in the S3 bucket specified by `S3BucketName` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketFolder", + "type": "string" + }, + "S3BucketName": { + "markdownDescription": "The name of the Amazon S3 bucket where AWS DMS can temporarily store migrated graph data in \\.csv files before bulk\\-loading it to the Neptune target database\\. AWS DMS maps the SQL source data to graph data before storing it in these \\.csv files\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketName", + "type": "string" + }, + "ServiceAccessRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the service role that you created for the Neptune target endpoint\\. The role must allow the `iam:PassRole` action\\. For more information, see [Creating an IAM Service Role for Accessing Amazon Neptune as a Target](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Neptune.html#CHAP_Target.Neptune.ServiceRole) in the * AWS Database Migration Service User Guide\\. * \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerAccessRoleArn", + "type": "string" + }, + "SecretsManagerOracleAsmAccessRoleArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerOracleAsmAccessRoleArn", + "type": "string" + }, + "SecretsManagerOracleAsmSecretId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerOracleAsmSecretId", + "type": "string" + }, + "SecretsManagerSecretId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerAccessRoleArn", + "type": "string" + }, + "SecretsManagerSecretId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerSecretId", + "type": "string" + }, + "SlotName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.RedisSettings": { + "additionalProperties": false, + "properties": { + "AuthPassword": { + "markdownDescription": "The password provided with the `auth-role` and `auth-token` options of the `AuthType` setting for a Redis target endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthPassword", + "type": "string" + }, + "AuthType": { + "markdownDescription": "The type of authentication to perform when connecting to a Redis target\\. Options include `none`, `auth-token`, and `auth-role`\\. The `auth-token` option requires an `AuthPassword` value to be provided\\. The `auth-role` option requires `AuthUserName` and `AuthPassword` values to be provided\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `auth-role | auth-token | none` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthType", + "type": "string" + }, + "AuthUserName": { + "markdownDescription": "The user name provided with the `auth-role` option of the `AuthType` setting for a Redis target endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthUserName", + "type": "string" + }, + "Port": { + "markdownDescription": "Transmission Control Protocol \\(TCP\\) port for the endpoint\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + }, + "ServerName": { + "markdownDescription": "Fully qualified domain name of the endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerName", + "type": "string" + }, + "SslCaCertificateArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the certificate authority \\(CA\\) that DMS uses to connect to your Redis target endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SslCaCertificateArn", + "type": "string" + }, + "SslSecurityProtocol": { + "markdownDescription": "The connection to a Redis target endpoint using Transport Layer Security \\(TLS\\)\\. Valid values include `plaintext` and `ssl-encryption`\\. The default is `ssl-encryption`\\. The `ssl-encryption` option makes an encrypted connection\\. Optionally, you can identify an Amazon Resource Name \\(ARN\\) for an SSL certificate authority \\(CA\\) using the `SslCaCertificateArn `setting\\. If an ARN isn't given for a CA, DMS uses the Amazon root CA\\. \nThe `plaintext` option doesn't provide Transport Layer Security \\(TLS\\) encryption for traffic between endpoint and database\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `plaintext | ssl-encryption` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerAccessRoleArn", + "type": "string" + }, + "SecretsManagerSecretId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "An optional parameter that, when set to `true` or `y`, you can use to add column name information to the \\.csv output file\\. \nThe default value is `false`\\. Valid values are `true`, `false`, `y`, and `n`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddColumnName", + "type": "boolean" + }, + "BucketFolder": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketFolder", + "type": "string" + }, + "BucketName": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", + "type": "string" + }, + "CannedAclForObjects": { + "markdownDescription": "A value that enables AWS DMS to specify a predefined \\(canned\\) access control list for objects created in an Amazon S3 bucket as \\.csv or \\.parquet files\\. For more information about Amazon S3 canned ACLs, see [Canned ACL](http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) in the *Amazon S3 Developer Guide\\.* \nThe default value is NONE\\. Valid values include NONE, PRIVATE, PUBLIC\\_READ, PUBLIC\\_READ\\_WRITE, AUTHENTICATED\\_READ, AWS\\_EXEC\\_READ, BUCKET\\_OWNER\\_READ, and BUCKET\\_OWNER\\_FULL\\_CONTROL\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `authenticated-read | aws-exec-read | bucket-owner-full-control | bucket-owner-read | none | private | public-read | public-read-write` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CannedAclForObjects", + "type": "string" + }, + "CdcInsertsAndUpdates": { + "markdownDescription": "A value that enables a change data capture \\(CDC\\) load to write INSERT and UPDATE operations to \\.csv or \\.parquet \\(columnar storage\\) output files\\. The default setting is `false`, but when `CdcInsertsAndUpdates` is set to `true` or `y`, only INSERTs and UPDATEs from the source database are migrated to the \\.csv or \\.parquet file\\. \nFor \\.csv file format only, how these INSERTs and UPDATEs are recorded depends on the value of the `IncludeOpForFullLoad` parameter\\. If `IncludeOpForFullLoad` is set to `true`, the first field of every CDC record is set to either `I` or `U` to indicate INSERT and UPDATE operations at the source\\. But if `IncludeOpForFullLoad` is set to `false`, CDC records are written without an indication of INSERT or UPDATE operations at the source\\. For more information about how these settings work together, see [Indicating Source DB Operations in Migrated S3 Data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps) in the * AWS Database Migration Service User Guide\\.*\\. \n AWS DMS supports the use of the `CdcInsertsAndUpdates` parameter in versions 3\\.3\\.1 and later\\. \n `CdcInsertsOnly` and `CdcInsertsAndUpdates` can't both be set to `true` for the same endpoint\\. Set either `CdcInsertsOnly` or `CdcInsertsAndUpdates` to `true` for the same endpoint, but not both\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CdcInsertsAndUpdates", + "type": "boolean" + }, + "CdcInsertsOnly": { + "markdownDescription": "A value that enables a change data capture \\(CDC\\) load to write only INSERT operations to \\.csv or columnar storage \\(\\.parquet\\) output files\\. By default \\(the `false` setting\\), the first field in a \\.csv or \\.parquet record contains the letter I \\(INSERT\\), U \\(UPDATE\\), or D \\(DELETE\\)\\. These values indicate whether the row was inserted, updated, or deleted at the source database for a CDC load to the target\\. \nIf `CdcInsertsOnly` is set to `true` or `y`, only INSERTs from the source database are migrated to the \\.csv or \\.parquet file\\. For \\.csv format only, how these INSERTs are recorded depends on the value of `IncludeOpForFullLoad`\\. If `IncludeOpForFullLoad` is set to `true`, the first field of every CDC record is set to I to indicate the INSERT operation at the source\\. If `IncludeOpForFullLoad` is set to `false`, every CDC record is written without a first field to indicate the INSERT operation at the source\\. For more information about how these settings work together, see [Indicating Source DB Operations in Migrated S3 Data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps) in the * AWS Database Migration Service User Guide\\.*\\. \n AWS DMS supports the interaction described preceding between the `CdcInsertsOnly` and `IncludeOpForFullLoad` parameters in versions 3\\.1\\.4 and later\\. \n `CdcInsertsOnly` and `CdcInsertsAndUpdates` can't both be set to `true` for the same endpoint\\. Set either `CdcInsertsOnly` or `CdcInsertsAndUpdates` to `true` for the same endpoint, but not both\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CdcInsertsOnly", + "type": "boolean" + }, + "CdcMaxBatchInterval": { + "markdownDescription": "Maximum length of the interval, defined in seconds, after which to output a file to Amazon S3\\. \nWhen `CdcMaxBatchInterval` and `CdcMinFileSize` are both specified, the file write is triggered by whichever parameter condition is met first within an AWS DMS CloudFormation template\\. \nThe default value is 60 seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CdcMaxBatchInterval", + "type": "number" + }, + "CdcMinFileSize": { + "markdownDescription": "Minimum file size, defined in megabytes, to reach for a file output to Amazon S3\\. \nWhen `CdcMinFileSize` and `CdcMaxBatchInterval` are both specified, the file write is triggered by whichever parameter condition is met first within an AWS DMS CloudFormation template\\. \nThe default value is 32 MB\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CdcMinFileSize", + "type": "number" + }, + "CdcPath": { + "markdownDescription": "Specifies the folder path of CDC files\\. For an S3 source, this setting is required if a task captures change data; otherwise, it's optional\\. If `CdcPath` is set, AWS DMS reads CDC files from this path and replicates the data changes to the target endpoint\\. For an S3 target if you set [https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-PreserveTransactions](https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-PreserveTransactions) to `true`, AWS DMS verifies that you have set this parameter to a folder path on your S3 target where AWS DMS can save the transaction order for the CDC load\\. AWS DMS creates this CDC folder path in either your S3 target working directory or the S3 target location specified by [https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-BucketFolder](https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-BucketFolder) and [https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-BucketName](https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-BucketName)\\. \nFor example, if you specify `CdcPath` as `MyChangedData`, and you specify `BucketName` as `MyTargetBucket` but do not specify `BucketFolder`, AWS DMS creates the CDC folder path following: `MyTargetBucket/MyChangedData`\\. \nIf you specify the same `CdcPath`, and you specify `BucketName` as `MyTargetBucket` and `BucketFolder` as `MyTargetData`, AWS DMS creates the CDC folder path following: `MyTargetBucket/MyTargetData/MyChangedData`\\. \nFor more information on CDC including transaction order on an S3 target, see [Capturing data changes \\(CDC\\) including transaction order on the S3 target](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.EndpointSettings.CdcPath)\\. \nThis setting is supported in AWS DMS versions 3\\.4\\.2 and later\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CdcPath", + "type": "string" + }, + "CompressionType": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `gzip | none` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CompressionType", + "type": "string" + }, + "CsvDelimiter": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CsvDelimiter", + "type": "string" + }, + "CsvNoSupValue": { + "markdownDescription": "This setting only applies if your Amazon S3 output files during a change data capture \\(CDC\\) load are written in \\.csv format\\. If [https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-UseCsvNoSupValue](https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-UseCsvNoSupValue) is set to true, specify a string value that you want AWS DMS to use for all columns not included in the supplemental log\\. If you do not specify a string value, AWS DMS uses the null value for these columns regardless of the `UseCsvNoSupValue` setting\\. \nThis setting is supported in AWS DMS versions 3\\.4\\.1 and later\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CsvNoSupValue", + "type": "string" + }, + "CsvNullValue": { + "markdownDescription": "An optional parameter that specifies how AWS DMS treats null values\\. While handling the null value, you can use this parameter to pass a user\\-defined string as null when writing to the target\\. For example, when target columns are not nullable, you can use this option to differentiate between the empty string value and the null value\\. So, if you set this parameter value to the empty string \\(\"\" or ''\\), AWS DMS treats the empty string as the null value instead of `NULL`\\. \nThe default value is `NULL`\\. Valid values include any valid string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CsvNullValue", + "type": "string" + }, + "CsvRowDelimiter": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CsvRowDelimiter", + "type": "string" + }, + "DataFormat": { + "markdownDescription": "The format of the data that you want to use for output\\. You can choose one of the following: \n+ `csv` : This is a row\\-based file format with comma\\-separated values \\(\\.csv\\)\\. \n+ `parquet` : Apache Parquet \\(\\.parquet\\) is a columnar storage file format that features efficient compression and provides faster query response\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `csv | parquet` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataFormat", + "type": "string" + }, + "DataPageSize": { + "markdownDescription": "The size of one data page in bytes\\. This parameter defaults to 1024 \\* 1024 bytes \\(1 MiB\\)\\. This number is used for \\.parquet file format only\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataPageSize", + "type": "number" + }, + "DatePartitionDelimiter": { + "markdownDescription": "Specifies a date separating delimiter to use during folder partitioning\\. The default value is `SLASH`\\. Use this parameter when `DatePartitionedEnabled` is set to `true`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DASH | NONE | SLASH | UNDERSCORE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatePartitionDelimiter", + "type": "string" + }, + "DatePartitionEnabled": { + "markdownDescription": "When set to `true`, this parameter partitions S3 bucket folders based on transaction commit dates\\. The default value is `false`\\. For more information about date\\-based folder partitioning, see [Using date\\-based folder partitioning](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.DatePartitioning)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatePartitionEnabled", + "type": "boolean" + }, + "DatePartitionSequence": { + "markdownDescription": "Identifies the sequence of the date format to use during folder partitioning\\. The default value is `YYYYMMDD`\\. Use this parameter when `DatePartitionedEnabled` is set to `true`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DDMMYYYY | MMYYYYDD | YYYYMM | YYYYMMDD | YYYYMMDDHH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatePartitionSequence", + "type": "string" + }, + "DatePartitionTimezone": { + "markdownDescription": "When creating an S3 target endpoint, set `DatePartitionTimezone` to convert the current UTC time into a specified time zone\\. The conversion occurs when a date partition folder is created and a CDC filename is generated\\. The time zone format is Area/Location\\. Use this parameter when `DatePartitionedEnabled` is set to `true`, as shown in the following example\\. \n `s3-settings='{\"DatePartitionEnabled\": true, \"DatePartitionSequence\": \"YYYYMMDDHH\", \"DatePartitionDelimiter\": \"SLASH\", \"DatePartitionTimezone\":\"Asia/Seoul\", \"BucketName\": \"dms-nattarat-test\"}'` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatePartitionTimezone", + "type": "string" + }, + "DictPageSizeLimit": { + "markdownDescription": "The maximum size of an encoded dictionary page of a column\\. If the dictionary page exceeds this, this column is stored using an encoding type of `PLAIN`\\. This parameter defaults to 1024 \\* 1024 bytes \\(1 MiB\\), the maximum size of a dictionary page before it reverts to `PLAIN` encoding\\. This size is used for \\.parquet file format only\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DictPageSizeLimit", + "type": "number" + }, + "EnableStatistics": { + "markdownDescription": "A value that enables statistics for Parquet pages and row groups\\. Choose `true` to enable statistics, `false` to disable\\. Statistics include `NULL`, `DISTINCT`, `MAX`, and `MIN` values\\. This parameter defaults to `true`\\. This value is used for \\.parquet file format only\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableStatistics", + "type": "boolean" + }, + "EncodingType": { + "markdownDescription": "The type of encoding you are using: \n+ `RLE_DICTIONARY` uses a combination of bit\\-packing and run\\-length encoding to store repeated values more efficiently\\. This is the default\\.\n+ `PLAIN` doesn't use encoding at all\\. Values are stored as they are\\.\n+ `PLAIN_DICTIONARY` builds a dictionary of the values encountered in a given column\\. The dictionary is stored in a dictionary page for each column chunk\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `plain | plain-dictionary | rle-dictionary` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncodingType", + "type": "string" + }, + "EncryptionMode": { + "markdownDescription": "The type of server\\-side encryption that you want to use for your data\\. This encryption type is part of the endpoint settings or the extra connections attributes for Amazon S3\\. You can choose either `SSE_S3` \\(the default\\) or `SSE_KMS`\\. \nFor the `ModifyEndpoint` operation, you can change the existing value of the `EncryptionMode` parameter from `SSE_KMS` to `SSE_S3`\\. But you can\u2019t change the existing value from `SSE_S3` to `SSE_KMS`\\.\nTo use `SSE_S3`, you need an AWS Identity and Access Management \\(IAM\\) role with permission to allow `\"arn:aws:s3:::dms-*\"` to use the following actions: \n+ `s3:CreateBucket` \n+ `s3:ListBucket` \n+ `s3:DeleteBucket` \n+ `s3:GetBucketLocation` \n+ `s3:GetObject` \n+ `s3:PutObject` \n+ `s3:DeleteObject` \n+ `s3:GetObjectVersion` \n+ `s3:GetBucketPolicy` \n+ `s3:PutBucketPolicy` \n+ `s3:DeleteBucketPolicy` \n*Required*: No \n*Type*: String \n*Allowed values*: `sse-kms | sse-s3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionMode", + "type": "string" + }, + "ExternalTableDefinition": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExternalTableDefinition", + "type": "string" + }, + "IgnoreHeaderRows": { + "markdownDescription": "When this value is set to 1, AWS DMS ignores the first row header in a \\.csv file\\. A value of 1 turns on the feature; a value of 0 turns off the feature\\. \nThe default is 0\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IgnoreHeaderRows", + "type": "number" + }, + "IncludeOpForFullLoad": { + "markdownDescription": "A value that enables a full load to write INSERT operations to the comma\\-separated value \\(\\.csv\\) output files only to indicate how the rows were added to the source database\\. \n AWS DMS supports the `IncludeOpForFullLoad` parameter in versions 3\\.1\\.4 and later\\.\nFor full load, records can only be inserted\\. By default \\(the `false` setting\\), no information is recorded in these output files for a full load to indicate that the rows were inserted at the source database\\. If `IncludeOpForFullLoad` is set to `true` or `y`, the INSERT is recorded as an I annotation in the first field of the \\.csv file\\. This allows the format of your target records from a full load to be consistent with the target records from a CDC load\\. \nThis setting works together with the `CdcInsertsOnly` and the `CdcInsertsAndUpdates` parameters for output to \\.csv files only\\. For more information about how these settings work together, see [Indicating Source DB Operations in Migrated S3 Data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps) in the * AWS Database Migration Service User Guide\\.*\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeOpForFullLoad", + "type": "boolean" + }, + "MaxFileSize": { + "markdownDescription": "A value that specifies the maximum size \\(in KB\\) of any \\.csv file to be created while migrating to an S3 target during full load\\. \nThe default value is 1,048,576 KB \\(1 GB\\)\\. Valid values include 1 to 1,048,576\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxFileSize", + "type": "number" + }, + "ParquetTimestampInMillisecond": { + "markdownDescription": "A value that specifies the precision of any `TIMESTAMP` column values that are written to an Amazon S3 object file in \\.parquet format\\. \n AWS DMS supports the `ParquetTimestampInMillisecond` parameter in versions 3\\.1\\.4 and later\\.\nWhen `ParquetTimestampInMillisecond` is set to `true` or `y`, AWS DMS writes all `TIMESTAMP` columns in a \\.parquet formatted file with millisecond precision\\. Otherwise, DMS writes them with microsecond precision\\. \nCurrently, Amazon Athena and AWS Glue can handle only millisecond precision for `TIMESTAMP` values\\. Set this parameter to `true` for S3 endpoint object files that are \\.parquet formatted only if you plan to query or process the data with Athena or AWS Glue\\. \n AWS DMS writes any `TIMESTAMP` column values written to an S3 file in \\.csv format with microsecond precision\\. \nSetting `ParquetTimestampInMillisecond` has no effect on the string format of the timestamp column value that is inserted by setting the `TimestampColumnName` parameter\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParquetTimestampInMillisecond", + "type": "boolean" + }, + "ParquetVersion": { + "markdownDescription": "The version of the Apache Parquet format that you want to use: `parquet_1_0` \\(the default\\) or `parquet_2_0`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `parquet-1-0 | parquet-2-0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParquetVersion", + "type": "string" + }, + "PreserveTransactions": { + "markdownDescription": "If set to `true`, AWS DMS saves the transaction order for a change data capture \\(CDC\\) load on the Amazon S3 target specified by [https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-CdcPath](https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-CdcPath)\\. For more information, see [Capturing data changes \\(CDC\\) including transaction order on the S3 target](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.EndpointSettings.CdcPath)\\. \nThis setting is supported in AWS DMS versions 3\\.4\\.2 and later\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreserveTransactions", + "type": "boolean" + }, + "Rfc4180": { + "markdownDescription": "For an S3 source, when this value is set to `true` or `y`, each leading double quotation mark has to be followed by an ending double quotation mark\\. This formatting complies with RFC 4180\\. When this value is set to `false` or `n`, string literals are copied to the target as is\\. In this case, a delimiter \\(row or column\\) signals the end of the field\\. Thus, you can't use a delimiter as part of the string, because it signals the end of the value\\. \nFor an S3 target, an optional parameter used to set behavior to comply with RFC 4180 for data migrated to Amazon S3 using \\.csv file format only\\. When this value is set to `true` or `y` using Amazon S3 as a target, if the data has quotation marks or newline characters in it, AWS DMS encloses the entire column with an additional pair of double quotation marks \\(\"\\)\\. Every quotation mark within the data is repeated twice\\. \nThe default value is `true`\\. Valid values include `true`, `false`, `y`, and `n`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rfc4180", + "type": "boolean" + }, + "RowGroupLength": { + "markdownDescription": "The number of rows in a row group\\. A smaller row group size provides faster reads\\. But as the number of row groups grows, the slower writes become\\. This parameter defaults to 10,000 rows\\. This number is used for \\.parquet file format only\\. \nIf you choose a value larger than the maximum, `RowGroupLength` is set to the max row group length in bytes \\(64 \\* 1024 \\* 1024\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RowGroupLength", + "type": "number" + }, + "ServerSideEncryptionKmsKeyId": { + "markdownDescription": "If you are using `SSE_KMS` for the `EncryptionMode`, provide the AWS KMS key ID\\. The key that you use needs an attached policy that enables AWS Identity and Access Management \\(IAM\\) user permissions and allows use of the key\\. \nHere is a CLI example: `aws dms create-endpoint --endpoint-identifier value --endpoint-type target --engine-name s3 --s3-settings ServiceAccessRoleArn=value,BucketFolder=value,BucketName=value,EncryptionMode=SSE_KMS,ServerSideEncryptionKmsKeyId=value ` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerSideEncryptionKmsKeyId", + "type": "string" + }, + "ServiceAccessRoleArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceAccessRoleArn", + "type": "string" + }, + "TimestampColumnName": { + "markdownDescription": "A value that when nonblank causes AWS DMS to add a column with timestamp information to the endpoint data for an Amazon S3 target\\. \n AWS DMS supports the `TimestampColumnName` parameter in versions 3\\.1\\.4 and later\\.\nDMS includes an additional `STRING` column in the \\.csv or \\.parquet object files of your migrated data when you set `TimestampColumnName` to a nonblank value\\. \nFor a full load, each row of this timestamp column contains a timestamp for when the data was transferred from the source to the target by DMS\\. \nFor a change data capture \\(CDC\\) load, each row of the timestamp column contains the timestamp for the commit of that row in the source database\\. \nThe string format for this timestamp column value is `yyyy-MM-dd HH:mm:ss.SSSSSS`\\. By default, the precision of this value is in microseconds\\. For a CDC load, the rounding of the precision depends on the commit timestamp supported by DMS for the source database\\. \nWhen the `AddColumnName` parameter is set to `true`, DMS also includes a name for the timestamp column that you set with `TimestampColumnName`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimestampColumnName", + "type": "string" + }, + "UseCsvNoSupValue": { + "markdownDescription": "This setting applies if the S3 output files during a change data capture \\(CDC\\) load are written in \\.csv format\\. If set to `true` for columns not included in the supplemental log, AWS DMS uses the value specified by [https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-CsvNoSupValue](https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html#DMS-Type-S3Settings-CsvNoSupValue)\\. If not set or set to `false`, AWS DMS uses the null value for these columns\\. \nThis setting is supported in AWS DMS versions 3\\.4\\.1 and later\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseCsvNoSupValue", + "type": "boolean" + }, + "UseTaskStartTimeForFullLoadTimestamp": { + "markdownDescription": "When set to true, this parameter uses the task start time as the timestamp column value instead of the time data is written to target\\. For full load, when `useTaskStartTimeForFullLoadTimestamp` is set to `true`, each row of the timestamp column contains the task start time\\. For CDC loads, each row of the timestamp column contains the transaction commit time\\. \nWhen `useTaskStartTimeForFullLoadTimestamp` is set to `false`, the full load timestamp in the timestamp column increments with the time data arrives at the target\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseTaskStartTimeForFullLoadTimestamp", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.SybaseSettings": { + "additionalProperties": false, + "properties": { + "SecretsManagerAccessRoleArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsManagerAccessRoleArn", + "type": "string" + }, + "SecretsManagerSecretId": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Indicates whether to activate the subscription\\. If you don't specify this property, AWS CloudFormation activates the subscription\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "EventCategories": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of event categories for a source type that you want to subscribe to\\. If you don't specify this property, you are notified about all event categories\\. For more information, see [Working with Events and Notifications](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Events.html) in the *AWS DMS User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventCategories", + "type": "array" + }, + "SnsTopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic created for event notification\\. The ARN is created by Amazon SNS when you create a topic and subscribe to it\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsTopicArn", + "type": "string" + }, + "SourceIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of identifiers for which AWS DMS provides notification events\\. \nIf you don't specify a value, notifications are provided for all sources\\. \nIf you specify multiple values, they must be of the same type\\. For example, if you specify a database instance ID, then all of the other values must be database instance IDs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceIds", + "type": "array" + }, + "SourceType": { + "markdownDescription": "The type of AWS DMS resource that generates the events\\. For example, if you want to be notified of events generated by a replication instance, you set this parameter to `replication-instance`\\. If this value isn't specified, all events are returned\\. \nValid values: `replication-instance` \\| `replication-task` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceType", + "type": "string" + }, + "SubscriptionName": { + "markdownDescription": "The name of the AWS DMS event notification subscription\\. This name must be less than 255 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubscriptionName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "One or more tags to be assigned to the event subscription\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "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": { + "markdownDescription": "The amount of storage \\(in gigabytes\\) to be initially allocated for the replication instance\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocatedStorage", + "type": "number" + }, + "AllowMajorVersionUpgrade": { + "markdownDescription": "Indicates that major version upgrades are allowed\\. Changing this parameter does not result in an outage, and the change is asynchronously applied as soon as possible\\. \nThis parameter must be set to `true` when specifying a value for the `EngineVersion` parameter that is a different major version than the replication instance's current version\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowMajorVersionUpgrade", + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "markdownDescription": "A value that indicates whether minor engine upgrades are applied automatically to the replication instance during the maintenance window\\. This parameter defaults to `true`\\. \nDefault: `true` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoMinorVersionUpgrade", + "type": "boolean" + }, + "AvailabilityZone": { + "markdownDescription": "The Availability Zone that the replication instance will be created in\\. \nThe default value is a random, system\\-chosen Availability Zone in the endpoint's , for example: `us-east-1d` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZone", + "type": "string" + }, + "EngineVersion": { + "markdownDescription": "The engine version number of the replication instance\\. \nIf an engine version number is not specified when a replication instance is created, the default is the latest engine version available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EngineVersion", + "type": "string" + }, + "KmsKeyId": { + "markdownDescription": "An AWS KMS key identifier that is used to encrypt the data on the replication instance\\. \nIf you don't specify a value for the `KmsKeyId` parameter, then AWS DMS uses your default encryption key\\. \n AWS KMS creates the default encryption key for your AWS account\\. Your AWS account has a different default encryption key for each AWS Region\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + }, + "MultiAZ": { + "markdownDescription": "Specifies whether the replication instance is a Multi\\-AZ deployment\\. You can't set the `AvailabilityZone` parameter if the Multi\\-AZ parameter is set to `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MultiAZ", + "type": "boolean" + }, + "PreferredMaintenanceWindow": { + "markdownDescription": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time \\(UTC\\)\\. \n Format: `ddd:hh24:mi-ddd:hh24:mi` \nDefault: A 30\\-minute window selected at random from an 8\\-hour block of time per AWS Region, occurring on a random day of the week\\. \nValid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun \nConstraints: Minimum 30\\-minute window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", + "type": "string" + }, + "PubliclyAccessible": { + "markdownDescription": "Specifies the accessibility options for the replication instance\\. A value of `true` represents an instance with a public IP address\\. A value of `false` represents an instance with a private IP address\\. The default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PubliclyAccessible", + "type": "boolean" + }, + "ReplicationInstanceClass": { + "markdownDescription": "The compute and memory capacity of the replication instance as defined for the specified replication instance class\\. For example to specify the instance class dms\\.c4\\.large, set this parameter to `\"dms.c4.large\"`\\. \nFor more information on the settings and capacities for the available replication instance classes, see [ Selecting the right AWS DMS replication instance for your migration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.InDepth)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationInstanceClass", + "type": "string" + }, + "ReplicationInstanceIdentifier": { + "markdownDescription": "The replication instance identifier\\. This parameter is stored as a lowercase string\\. \nConstraints: \n+ Must contain 1\\-63 alphanumeric characters or hyphens\\.\n+ First character must be a letter\\.\n+ Can't end with a hyphen or contain two consecutive hyphens\\.\nExample: `myrepinstance` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationInstanceIdentifier", + "type": "string" + }, + "ReplicationSubnetGroupIdentifier": { + "markdownDescription": "A subnet group to associate with the replication instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplicationSubnetGroupIdentifier", + "type": "string" + }, + "ResourceIdentifier": { + "markdownDescription": "A friendly name for the resource identifier at the end of the `EndpointArn` response parameter that is returned in the created `Endpoint` object\\. The value for this parameter can have up to 31 characters\\. It can contain only ASCII letters, digits, and hyphen \\('\\-'\\)\\. Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as `Example-App-ARN1`\\. For example, this value might result in the `EndpointArn` value `arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1`\\. If you don't specify a `ResourceIdentifier` value, AWS DMS generates a default identifier value for the end of `EndpointArn`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceIdentifier", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "One or more tags to be assigned to the replication instance\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "type": "array" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "Specifies the VPC security group to be used with the replication instance\\. The VPC security group must work with the VPC containing the replication instance\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSecurityGroupIds", + "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": { + "markdownDescription": "The description for the subnet group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationSubnetGroupDescription", + "type": "string" + }, + "ReplicationSubnetGroupIdentifier": { + "markdownDescription": "The identifier for the replication subnet group\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the identifier\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplicationSubnetGroupIdentifier", + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more subnet IDs to be assigned to the subnet group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "One or more tags to be assigned to the subnet group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "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": { + "markdownDescription": "Indicates when you want a change data capture \\(CDC\\) operation to start\\. Use either CdcStartPosition or CdcStartTime to specify when you want a CDC operation to start\\. Specifying both values results in an error\\. \n The value can be in date, checkpoint, or LSN/SCN format\\. \nDate Example: \\-\\-cdc\\-start\\-position \u201c2018\\-03\\-08T12:12:12\u201d \nCheckpoint Example: \\-\\-cdc\\-start\\-position \"checkpoint:V1\\#27\\#mysql\\-bin\\-changelog\\.157832:1975:\\-1:2002:677883278264080:mysql\\-bin\\-changelog\\.157832:1876\\#0\\#0\\#\\*\\#0\\#93\" \nLSN Example: \\-\\-cdc\\-start\\-position \u201cmysql\\-bin\\-changelog\\.000024:373\u201d \nWhen you use this task setting with a source PostgreSQL database, a logical replication slot should already be created and associated with the source endpoint\\. You can verify this by setting the `slotName` extra connection attribute to the name of this logical replication slot\\. For more information, see [Extra Connection Attributes When Using PostgreSQL as a Source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.ConnectionAttrib)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CdcStartPosition", + "type": "string" + }, + "CdcStartTime": { + "markdownDescription": "Indicates the start time for a change data capture \\(CDC\\) operation\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CdcStartTime", + "type": "number" + }, + "CdcStopPosition": { + "markdownDescription": "Indicates when you want a change data capture \\(CDC\\) operation to stop\\. The value can be either server time or commit time\\. \nServer time example: \\-\\-cdc\\-stop\\-position \u201cserver\\_time:2018\\-02\\-09T12:12:12\u201d \nCommit time example: \\-\\-cdc\\-stop\\-position \u201ccommit\\_time: 2018\\-02\\-09T12:12:12 \u201c \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CdcStopPosition", + "type": "string" + }, + "MigrationType": { + "markdownDescription": "The migration type\\. Valid values: `full-load` \\| `cdc` \\| `full-load-and-cdc` \n*Required*: Yes \n*Type*: String \n*Allowed values*: `cdc | full-load | full-load-and-cdc` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MigrationType", + "type": "string" + }, + "ReplicationInstanceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of a replication instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplicationInstanceArn", + "type": "string" + }, + "ReplicationTaskIdentifier": { + "markdownDescription": "An identifier for the replication task\\. \nConstraints: \n+ Must contain 1\\-255 alphanumeric characters or hyphens\\.\n+ First character must be a letter\\.\n+ Cannot end with a hyphen or contain two consecutive hyphens\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationTaskIdentifier", + "type": "string" + }, + "ReplicationTaskSettings": { + "markdownDescription": "Overall settings for the task, in JSON format\\. For more information, see [Specifying Task Settings for AWS Database Migration Service Tasks](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.html) in the * AWS Database Migration Service User Guide\\.* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationTaskSettings", + "type": "string" + }, + "ResourceIdentifier": { + "markdownDescription": "A friendly name for the resource identifier at the end of the `EndpointArn` response parameter that is returned in the created `Endpoint` object\\. The value for this parameter can have up to 31 characters\\. It can contain only ASCII letters, digits, and hyphen \\('\\-'\\)\\. Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as `Example-App-ARN1`\\. For example, this value might result in the `EndpointArn` value `arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1`\\. If you don't specify a `ResourceIdentifier` value, AWS DMS generates a default identifier value for the end of `EndpointArn`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceIdentifier", + "type": "string" + }, + "SourceEndpointArn": { + "markdownDescription": "An Amazon Resource Name \\(ARN\\) that uniquely identifies the source endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceEndpointArn", + "type": "string" + }, + "TableMappings": { + "markdownDescription": "The table mappings for the task, in JSON format\\. For more information, see [Using Table Mapping to Specify Task Settings](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.html) in the * AWS Database Migration Service User Guide\\.* \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableMappings", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "One or more tags to be assigned to the replication task\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "type": "array" + }, + "TargetEndpointArn": { + "markdownDescription": "An Amazon Resource Name \\(ARN\\) that uniquely identifies the target endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetEndpointArn", + "type": "string" + }, + "TaskData": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The file format of a dataset that is created from an Amazon S3 file or folder\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CSV | EXCEL | JSON | PARQUET` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", + "type": "string" + }, + "FormatOptions": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.FormatOptions", + "markdownDescription": "A set of options that define how DataBrew interprets the data in the dataset\\. \n*Required*: No \n*Type*: [FormatOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-formatoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FormatOptions" + }, + "Input": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.Input", + "markdownDescription": "Information on how DataBrew can find the dataset, in either the AWS Glue Data Catalog or Amazon S3\\. \n*Required*: Yes \n*Type*: [Input](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-input.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Input" + }, + "Name": { + "markdownDescription": "The unique name of the dataset\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "PathOptions": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.PathOptions", + "markdownDescription": "A set of options that defines how DataBrew interprets an Amazon S3 path of the dataset\\. \n*Required*: No \n*Type*: [PathOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-pathoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PathOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Metadata tags that have been applied to the dataset\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "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": { + "markdownDescription": "A single character that specifies the delimiter being used in the CSV file\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Delimiter", + "type": "string" + }, + "HeaderRow": { + "markdownDescription": "A variable that specifies whether the first row in the file is parsed as the header\\. If this value is false, column names are auto\\-generated\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderRow", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::DataBrew::Dataset.DataCatalogInputDefinition": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "markdownDescription": "The unique identifier of the AWS account that holds the Data Catalog that stores the data\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CatalogId", + "type": "string" + }, + "DatabaseName": { + "markdownDescription": "The name of a database in the Data Catalog\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", + "type": "string" + }, + "TableName": { + "markdownDescription": "The name of a database table in the Data Catalog\\. This table corresponds to a DataBrew dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", + "type": "string" + }, + "TempDirectory": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.S3Location", + "markdownDescription": "An Amazon location that AWS Glue Data Catalog can use as a temporary directory\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TempDirectory" + } + }, + "type": "object" + }, + "AWS::DataBrew::Dataset.DatabaseInputDefinition": { + "additionalProperties": false, + "properties": { + "DatabaseTableName": { + "markdownDescription": "The table within the target database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseTableName", + "type": "string" + }, + "GlueConnectionName": { + "markdownDescription": "The AWS Glue Connection that stores the connection information for the target database\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlueConnectionName", + "type": "string" + }, + "QueryString": { + "markdownDescription": "Custom SQL to run against the provided AWS Glue connection\\. This SQL will be used as the input for DataBrew projects and jobs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryString", + "type": "string" + }, + "TempDirectory": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.S3Location", + "markdownDescription": "An Amazon location that AWS Glue Data Catalog can use as a temporary directory\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TempDirectory" + } + }, + "required": [ + "GlueConnectionName" + ], + "type": "object" + }, + "AWS::DataBrew::Dataset.DatasetParameter": { + "additionalProperties": false, + "properties": { + "CreateColumn": { + "markdownDescription": "Optional boolean value that defines whether the captured value of this parameter should be loaded as an additional column in the dataset\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreateColumn", + "type": "boolean" + }, + "DatetimeOptions": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.DatetimeOptions", + "markdownDescription": "Additional parameter options such as a format and a timezone\\. Required for datetime parameters\\. \n*Required*: No \n*Type*: [DatetimeOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datetimeoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatetimeOptions" + }, + "Filter": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.FilterExpression", + "markdownDescription": "The optional filter expression structure to apply additional matching criteria to the parameter\\. \n*Required*: No \n*Type*: [FilterExpression](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-filterexpression.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filter" + }, + "Name": { + "markdownDescription": "The name of the parameter that is used in the dataset's Amazon S3 path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of the dataset parameter, can be one of a 'String', 'Number' or 'Datetime'\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AWS::DataBrew::Dataset.DatetimeOptions": { + "additionalProperties": false, + "properties": { + "Format": { + "markdownDescription": "Required option, that defines the datetime format used for a date parameter in the Amazon S3 path\\. Should use only supported datetime specifiers and separation characters, all litera a\\-z or A\\-Z character should be escaped with single quotes\\. E\\.g\\. \"MM\\.dd\\.yyyy\\-'at'\\-HH:mm\"\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", + "type": "string" + }, + "LocaleCode": { + "markdownDescription": "Optional value for a non\\-US locale code, needed for correct interpretation of some date formats\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocaleCode", + "type": "string" + }, + "TimezoneOffset": { + "markdownDescription": "Optional value for a timezone offset of the datetime parameter value in the Amazon S3 path\\. Shouldn't be used if Format for this parameter includes timezone fields\\. If no offset specified, UTC is assumed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimezoneOffset", + "type": "string" + } + }, + "required": [ + "Format" + ], + "type": "object" + }, + "AWS::DataBrew::Dataset.ExcelOptions": { + "additionalProperties": false, + "properties": { + "HeaderRow": { + "markdownDescription": "A variable that specifies whether the first row in the file is parsed as the header\\. If this value is false, column names are auto\\-generated\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderRow", + "type": "boolean" + }, + "SheetIndexes": { + "items": { + "type": "number" + }, + "markdownDescription": "One or more sheet numbers in the Excel file that will be included in the dataset\\. \n*Required*: No \n*Type*: List of Integer \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SheetIndexes", + "type": "array" + }, + "SheetNames": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more named sheets in the Excel file that will be included in the dataset\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SheetNames", + "type": "array" + } + }, + "type": "object" + }, + "AWS::DataBrew::Dataset.FilesLimit": { + "additionalProperties": false, + "properties": { + "MaxFiles": { + "markdownDescription": "The number of Amazon S3 files to select\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxFiles", + "type": "number" + }, + "Order": { + "markdownDescription": "A criteria to use for Amazon S3 files sorting before their selection\\. By default uses DESCENDING order, i\\.e\\. most recent files are selected first\\. Anotherpossible value is ASCENDING\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Order", + "type": "string" + }, + "OrderedBy": { + "markdownDescription": "A criteria to use for Amazon S3 files sorting before their selection\\. By default uses LAST\\_MODIFIED\\_DATE as a sorting criteria\\. Currently it's the only allowed value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrderedBy", + "type": "string" + } + }, + "required": [ + "MaxFiles" + ], + "type": "object" + }, + "AWS::DataBrew::Dataset.FilterExpression": { + "additionalProperties": false, + "properties": { + "Expression": { + "markdownDescription": "The expression which includes condition names followed by substitution variables, possibly grouped and combined with other conditions\\. For example, \"\\(starts\\_with :prefix1 or starts\\_with :prefix2\\) and \\(ends\\_with :suffix1 or ends\\_with :suffix2\\)\"\\. Substitution variables should start with ':' symbol\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Expression", + "type": "string" + }, + "ValuesMap": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.FilterValue" + }, + "markdownDescription": "The map of substitution variable names to their values used in this filter expression\\. \n*Required*: Yes \n*Type*: List of [FilterValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-filtervalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValuesMap", + "type": "array" + } + }, + "required": [ + "Expression", + "ValuesMap" + ], + "type": "object" + }, + "AWS::DataBrew::Dataset.FilterValue": { + "additionalProperties": false, + "properties": { + "Value": { + "markdownDescription": "The value to be associated with the substitution variable\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + }, + "ValueReference": { + "markdownDescription": "The substitution variable reference\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValueReference", + "type": "string" + } + }, + "required": [ + "Value", + "ValueReference" + ], + "type": "object" + }, + "AWS::DataBrew::Dataset.FormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.CsvOptions", + "markdownDescription": "Options that define how CSV input is to be interpreted by DataBrew\\. \n*Required*: No \n*Type*: [CsvOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-csvoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Csv" + }, + "Excel": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.ExcelOptions", + "markdownDescription": "Options that define how Excel input is to be interpreted by DataBrew\\. \n*Required*: No \n*Type*: [ExcelOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-exceloptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Excel" + }, + "Json": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.JsonOptions", + "markdownDescription": "Options that define how JSON input is to be interpreted by DataBrew\\. \n*Required*: No \n*Type*: [JsonOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-jsonoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Json" + } + }, + "type": "object" + }, + "AWS::DataBrew::Dataset.Input": { + "additionalProperties": false, + "properties": { + "DataCatalogInputDefinition": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.DataCatalogInputDefinition", + "markdownDescription": "The AWS Glue Data Catalog parameters for the data\\. \n*Required*: No \n*Type*: [DataCatalogInputDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datacataloginputdefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataCatalogInputDefinition" + }, + "DatabaseInputDefinition": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.DatabaseInputDefinition", + "markdownDescription": "Connection information for dataset input files stored in a database\\. \n*Required*: No \n*Type*: [DatabaseInputDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-databaseinputdefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseInputDefinition" + }, + "Metadata": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.Metadata", + "markdownDescription": "Contains additional resource information needed for specific datasets\\. \n*Required*: No \n*Type*: [Metadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-metadata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metadata" + }, + "S3InputDefinition": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.S3Location", + "markdownDescription": "The Amazon S3 location where the data is stored\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3InputDefinition" + } + }, + "type": "object" + }, + "AWS::DataBrew::Dataset.JsonOptions": { + "additionalProperties": false, + "properties": { + "MultiLine": { + "markdownDescription": "A value that specifies whether JSON input contains embedded new line characters\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MultiLine", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::DataBrew::Dataset.Metadata": { + "additionalProperties": false, + "properties": { + "SourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) associated with the dataset\\. Currently, DataBrew only supports ARNs from Amazon AppFlow\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataBrew::Dataset.PathOptions": { + "additionalProperties": false, + "properties": { + "FilesLimit": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.FilesLimit", + "markdownDescription": "If provided, this structure imposes a limit on a number of files that should be selected\\. \n*Required*: No \n*Type*: [FilesLimit](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-fileslimit.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilesLimit" + }, + "LastModifiedDateCondition": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.FilterExpression", + "markdownDescription": "If provided, this structure defines a date range for matching Amazon S3 objects based on their LastModifiedDate attribute in Amazon S3\\. \n*Required*: No \n*Type*: [FilterExpression](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-filterexpression.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastModifiedDateCondition" + }, + "Parameters": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.PathParameter" + }, + "markdownDescription": "A structure that maps names of parameters used in the Amazon S3 path of a dataset to their definitions\\. \n*Required*: No \n*Type*: List of [PathParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-pathparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "array" + } + }, + "type": "object" + }, + "AWS::DataBrew::Dataset.PathParameter": { + "additionalProperties": false, + "properties": { + "DatasetParameter": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.DatasetParameter", + "markdownDescription": "The path parameter definition\\. \n*Required*: Yes \n*Type*: [DatasetParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datasetparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetParameter" + }, + "PathParameterName": { + "markdownDescription": "The name of the path parameter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PathParameterName", + "type": "string" + } + }, + "required": [ + "DatasetParameter", + "PathParameterName" + ], + "type": "object" + }, + "AWS::DataBrew::Dataset.S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "markdownDescription": "The Amazon S3 bucket name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", + "type": "string" + }, + "Key": { + "markdownDescription": "The unique name of the object in the bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1280` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + } + }, + "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" + }, + "markdownDescription": "One or more artifacts that represent the AWS Glue Data Catalog output from running the job\\. \n*Required*: No \n*Type*: List of [DataCatalogOutput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataCatalogOutputs", + "type": "array" + }, + "DatabaseOutputs": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Job.DatabaseOutput" + }, + "markdownDescription": "Represents a list of JDBC database output objects which defines the output destination for a DataBrew recipe job to write into\\. \n*Required*: No \n*Type*: List of [DatabaseOutput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databaseoutput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseOutputs", + "type": "array" + }, + "DatasetName": { + "markdownDescription": "A dataset that the job is to process\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetName", + "type": "string" + }, + "EncryptionKeyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an encryption key that is used to protect the job output\\. For more information, see [Encrypting data written by DataBrew jobs](https://docs.aws.amazon.com/databrew/latest/dg/encryption-security-configuration.html) \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionKeyArn", + "type": "string" + }, + "EncryptionMode": { + "markdownDescription": "The encryption mode for the job, which can be one of the following: \n+ `SSE-KMS` \\- Server\\-side encryption with keys managed by AWS KMS\\.\n+ `SSE-S3` \\- Server\\-side encryption with keys managed by Amazon S3\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `SSE-KMS | SSE-S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionMode", + "type": "string" + }, + "JobSample": { + "$ref": "#/definitions/AWS::DataBrew::Job.JobSample", + "markdownDescription": "A sample configuration for profile jobs only, which determines the number of rows on which the profile job is run\\. If a `JobSample` value isn't provided, the default value is used\\. The default value is CUSTOM\\_ROWS for the mode parameter and 20,000 for the size parameter\\. \n*Required*: No \n*Type*: [JobSample](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-jobsample.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobSample" + }, + "LogSubscription": { + "markdownDescription": "The current status of Amazon CloudWatch logging for the job\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLE | ENABLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogSubscription", + "type": "string" + }, + "MaxCapacity": { + "markdownDescription": "The maximum number of nodes that can be consumed when the job processes data\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacity", + "type": "number" + }, + "MaxRetries": { + "markdownDescription": "The maximum number of times to retry the job after a job run fails\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxRetries", + "type": "number" + }, + "Name": { + "markdownDescription": "The unique name of the job\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `240` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "OutputLocation": { + "$ref": "#/definitions/AWS::DataBrew::Job.OutputLocation", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [OutputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-outputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputLocation" + }, + "Outputs": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Job.Output" + }, + "markdownDescription": "One or more artifacts that represent output from running the job\\. \n*Required*: No \n*Type*: List of [Output](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Outputs", + "type": "array" + }, + "ProfileConfiguration": { + "$ref": "#/definitions/AWS::DataBrew::Job.ProfileConfiguration", + "markdownDescription": "Configuration for profile jobs\\. Configuration can be used to select columns, do evaluations, and override default parameters of evaluations\\. When configuration is undefined, the profile job will apply default settings to all supported columns\\. \n*Required*: No \n*Type*: [ProfileConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-profileconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProfileConfiguration" + }, + "ProjectName": { + "markdownDescription": "The name of the project that the job is associated with\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProjectName", + "type": "string" + }, + "Recipe": { + "$ref": "#/definitions/AWS::DataBrew::Job.Recipe", + "markdownDescription": "A series of data transformation steps that the job runs\\. \n*Required*: No \n*Type*: [Recipe](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-recipe.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Recipe" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role to be assumed for this job\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Metadata tags that have been applied to the job\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "type": "array" + }, + "Timeout": { + "markdownDescription": "The job's timeout in minutes\\. A job that attempts to run longer than this timeout period ends with a status of `TIMEOUT`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout", + "type": "number" + }, + "Type": { + "markdownDescription": "The job type of the job, which must be one of the following: \n+ `PROFILE` \\- A job to analyze a dataset, to determine its size, data types, data distribution, and more\\.\n+ `RECIPE` \\- A job to apply one or more transformations to a dataset\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `PROFILE | RECIPE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + }, + "ValidationConfigurations": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Job.ValidationConfiguration" + }, + "markdownDescription": "List of validation configurations that are applied to the profile job\\. \n*Required*: No \n*Type*: List of [ValidationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-validationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValidationConfigurations", + "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" + }, + "markdownDescription": "One or more column statistics to allow for columns that contain detected entities\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statistics", + "type": "array" + } + }, + "required": [ + "Statistics" + ], + "type": "object" + }, + "AWS::DataBrew::Job.ColumnSelector": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of a column from a dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Regex": { + "markdownDescription": "A regular expression for selecting a column from a dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Regex", + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataBrew::Job.ColumnStatisticsConfiguration": { + "additionalProperties": false, + "properties": { + "Selectors": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Job.ColumnSelector" + }, + "markdownDescription": "List of column selectors\\. Selectors can be used to select columns from the dataset\\. When selectors are undefined, configuration will be applied to all supported columns\\. \n*Required*: No \n*Type*: List of [ColumnSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-columnselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Selectors", + "type": "array" + }, + "Statistics": { + "$ref": "#/definitions/AWS::DataBrew::Job.StatisticsConfiguration", + "markdownDescription": "Configuration for evaluations\\. Statistics can be used to select evaluations and override parameters of evaluations\\. \n*Required*: Yes \n*Type*: [StatisticsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-statisticsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statistics" + } + }, + "required": [ + "Statistics" + ], + "type": "object" + }, + "AWS::DataBrew::Job.CsvOutputOptions": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "markdownDescription": "A single character that specifies the delimiter used to create CSV job output\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Delimiter", + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataBrew::Job.DataCatalogOutput": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "markdownDescription": "The unique identifier of the AWS account that holds the Data Catalog that stores the data\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CatalogId", + "type": "string" + }, + "DatabaseName": { + "markdownDescription": "The name of a database in the Data Catalog\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", + "type": "string" + }, + "DatabaseOptions": { + "$ref": "#/definitions/AWS::DataBrew::Job.DatabaseTableOutputOptions", + "markdownDescription": "Represents options that specify how and where DataBrew writes the database output generated by recipe jobs\\. \n*Required*: No \n*Type*: [DatabaseTableOutputOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databasetableoutputoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseOptions" + }, + "Overwrite": { + "markdownDescription": "A value that, if true, means that any data in the location specified for output is overwritten with new output\\. Not supported with DatabaseOptions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Overwrite", + "type": "boolean" + }, + "S3Options": { + "$ref": "#/definitions/AWS::DataBrew::Job.S3TableOutputOptions", + "markdownDescription": "Represents options that specify how and where DataBrew writes the Amazon S3 output generated by recipe jobs\\. \n*Required*: No \n*Type*: [S3TableOutputOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3tableoutputoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Options" + }, + "TableName": { + "markdownDescription": "The name of a table in the Data Catalog\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", + "type": "string" + } + }, + "required": [ + "DatabaseName", + "TableName" + ], + "type": "object" + }, + "AWS::DataBrew::Job.DatabaseOutput": { + "additionalProperties": false, + "properties": { + "DatabaseOptions": { + "$ref": "#/definitions/AWS::DataBrew::Job.DatabaseTableOutputOptions", + "markdownDescription": "Represents options that specify how and where DataBrew writes the database output generated by recipe jobs\\. \n*Required*: Yes \n*Type*: [DatabaseTableOutputOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databasetableoutputoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseOptions" + }, + "DatabaseOutputMode": { + "markdownDescription": "The output mode to write into the database\\. Currently supported option: NEW\\_TABLE\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NEW_TABLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseOutputMode", + "type": "string" + }, + "GlueConnectionName": { + "markdownDescription": "The AWS Glue connection that stores the connection information for the target database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlueConnectionName", + "type": "string" + } + }, + "required": [ + "DatabaseOptions", + "GlueConnectionName" + ], + "type": "object" + }, + "AWS::DataBrew::Job.DatabaseTableOutputOptions": { + "additionalProperties": false, + "properties": { + "TableName": { + "markdownDescription": "A prefix for the name of a table DataBrew will create in the database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", + "type": "string" + }, + "TempDirectory": { + "$ref": "#/definitions/AWS::DataBrew::Job.S3Location", + "markdownDescription": "Represents an Amazon S3 location \\(bucket name and object key\\) where DataBrew can store intermediate results\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TempDirectory" + } + }, + "required": [ + "TableName" + ], + "type": "object" + }, + "AWS::DataBrew::Job.EntityDetectorConfiguration": { + "additionalProperties": false, + "properties": { + "AllowedStatistics": { + "$ref": "#/definitions/AWS::DataBrew::Job.AllowedStatistics", + "markdownDescription": "Configuration of statistics that are allowed to be run on columns that contain detected entities\\. When undefined, no statistics will be computed on columns that contain detected entities\\. \n*Required*: No \n*Type*: [AllowedStatistics](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-allowedstatistics.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedStatistics" + }, + "EntityTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "Entity types to detect\\. Can be any of the following: \n+ USA\\_SSN\n+ EMAIL\n+ USA\\_ITIN\n+ USA\\_PASSPORT\\_NUMBER\n+ PHONE\\_NUMBER\n+ USA\\_DRIVING\\_LICENSE\n+ BANK\\_ACCOUNT\n+ CREDIT\\_CARD\n+ IP\\_ADDRESS\n+ MAC\\_ADDRESS\n+ USA\\_DEA\\_NUMBER\n+ USA\\_HCPCS\\_CODE\n+ USA\\_NATIONAL\\_PROVIDER\\_IDENTIFIER\n+ USA\\_NATIONAL\\_DRUG\\_CODE\n+ USA\\_HEALTH\\_INSURANCE\\_CLAIM\\_NUMBER\n+ USA\\_MEDICARE\\_BENEFICIARY\\_IDENTIFIER\n+ USA\\_CPT\\_CODE\n+ PERSON\\_NAME\n+ DATE\nThe Entity type group USA\\_ALL is also supported, and includes all of the above entity types except PERSON\\_NAME and DATE\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntityTypes", + "type": "array" + } + }, + "required": [ + "EntityTypes" + ], + "type": "object" + }, + "AWS::DataBrew::Job.JobSample": { + "additionalProperties": false, + "properties": { + "Mode": { + "markdownDescription": "A value that determines whether the profile job is run on the entire dataset or a specified number of rows\\. This value must be one of the following: \n+ FULL\\_DATASET \\- The profile job is run on the entire dataset\\.\n+ CUSTOM\\_ROWS \\- The profile job is run on the number of rows specified in the `Size` parameter\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `CUSTOM_ROWS | FULL_DATASET` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", + "type": "string" + }, + "Size": { + "markdownDescription": "The `Size` parameter is only required when the mode is CUSTOM\\_ROWS\\. The profile job is run on the specified number of rows\\. The maximum value for size is Long\\.MAX\\_VALUE\\. \nLong\\.MAX\\_VALUE = 9223372036854775807 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Size", + "type": "number" + } + }, + "type": "object" + }, + "AWS::DataBrew::Job.Output": { + "additionalProperties": false, + "properties": { + "CompressionFormat": { + "markdownDescription": "The compression algorithm used to compress the output text of the job\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BROTLI | BZIP2 | DEFLATE | GZIP | LZ4 | LZO | SNAPPY | ZLIB | ZSTD` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CompressionFormat", + "type": "string" + }, + "Format": { + "markdownDescription": "The data format of the output of the job\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AVRO | CSV | GLUEPARQUET | JSON | ORC | PARQUET | TABLEAUHYPER | XML` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", + "type": "string" + }, + "FormatOptions": { + "$ref": "#/definitions/AWS::DataBrew::Job.OutputFormatOptions", + "markdownDescription": "Represents options that define how DataBrew formats job output files\\. \n*Required*: No \n*Type*: [OutputFormatOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-outputformatoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FormatOptions" + }, + "Location": { + "$ref": "#/definitions/AWS::DataBrew::Job.S3Location", + "markdownDescription": "The location in Amazon S3 where the job writes its output\\. \n*Required*: Yes \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location" + }, + "MaxOutputFiles": { + "markdownDescription": "The maximum number of files to be generated by the job and written to the output folder\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxOutputFiles", + "type": "number" + }, + "Overwrite": { + "markdownDescription": "A value that, if true, means that any data in the location specified for output is overwritten with new output\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Overwrite", + "type": "boolean" + }, + "PartitionColumns": { + "items": { + "type": "string" + }, + "markdownDescription": "The names of one or more partition columns for the output of the job\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PartitionColumns", + "type": "array" + } + }, + "required": [ + "Location" + ], + "type": "object" + }, + "AWS::DataBrew::Job.OutputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/AWS::DataBrew::Job.CsvOutputOptions", + "markdownDescription": "Represents a set of options that define the structure of comma\\-separated value \\(CSV\\) job output\\. \n*Required*: No \n*Type*: [CsvOutputOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-csvoutputoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Csv" + } + }, + "type": "object" + }, + "AWS::DataBrew::Job.OutputLocation": { + "additionalProperties": false, + "properties": { + "Bucket": { + "markdownDescription": "The Amazon S3 bucket name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", + "type": "string" + }, + "BucketOwner": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketOwner", + "type": "string" + }, + "Key": { + "markdownDescription": "The unique name of the object in the bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::DataBrew::Job.ProfileConfiguration": { + "additionalProperties": false, + "properties": { + "ColumnStatisticsConfigurations": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Job.ColumnStatisticsConfiguration" + }, + "markdownDescription": "List of configurations for column evaluations\\. ColumnStatisticsConfigurations are used to select evaluations and override parameters of evaluations for particular columns\\. When ColumnStatisticsConfigurations is undefined, the profile job will profile all supported columns and run all supported evaluations\\. \n*Required*: No \n*Type*: List of [ColumnStatisticsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-columnstatisticsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnStatisticsConfigurations", + "type": "array" + }, + "DatasetStatisticsConfiguration": { + "$ref": "#/definitions/AWS::DataBrew::Job.StatisticsConfiguration", + "markdownDescription": "Configuration for inter\\-column evaluations\\. Configuration can be used to select evaluations and override parameters of evaluations\\. When configuration is undefined, the profile job will run all supported inter\\-column evaluations\\. \n*Required*: No \n*Type*: [StatisticsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-statisticsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetStatisticsConfiguration" + }, + "EntityDetectorConfiguration": { + "$ref": "#/definitions/AWS::DataBrew::Job.EntityDetectorConfiguration", + "markdownDescription": "Configuration of entity detection for a profile job\\. When undefined, entity detection is disabled\\. \n*Required*: No \n*Type*: [EntityDetectorConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-entitydetectorconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntityDetectorConfiguration" + }, + "ProfileColumns": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Job.ColumnSelector" + }, + "markdownDescription": "List of column selectors\\. ProfileColumns can be used to select columns from the dataset\\. When ProfileColumns is undefined, the profile job will profile all supported columns\\. \n*Required*: No \n*Type*: List of [ColumnSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-columnselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProfileColumns", + "type": "array" + } + }, + "type": "object" + }, + "AWS::DataBrew::Job.Recipe": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The unique name for the recipe\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Version": { + "markdownDescription": "The identifier for the version for the recipe\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::DataBrew::Job.S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "markdownDescription": "The Amazon S3 bucket name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", + "type": "string" + }, + "BucketOwner": { + "markdownDescription": "The AWS account ID of the bucket owner\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketOwner", + "type": "string" + }, + "Key": { + "markdownDescription": "The unique name of the object in the bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1280` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::DataBrew::Job.S3TableOutputOptions": { + "additionalProperties": false, + "properties": { + "Location": { + "$ref": "#/definitions/AWS::DataBrew::Job.S3Location", + "markdownDescription": "Represents an Amazon S3 location \\(bucket name and object key\\) where DataBrew can write output from a job\\. \n*Required*: Yes \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location" + } + }, + "required": [ + "Location" + ], + "type": "object" + }, + "AWS::DataBrew::Job.StatisticOverride": { + "additionalProperties": false, + "properties": { + "Parameters": { + "additionalProperties": true, + "markdownDescription": "A map that includes overrides of an evaluation\u2019s parameters\\. \n*Required*: Yes \n*Type*: [ParameterMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-parametermap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Parameters", + "type": "object" + }, + "Statistic": { + "markdownDescription": "The name of an evaluation \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[A-Z\\_]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statistic", + "type": "string" + } + }, + "required": [ + "Parameters", + "Statistic" + ], + "type": "object" + }, + "AWS::DataBrew::Job.StatisticsConfiguration": { + "additionalProperties": false, + "properties": { + "IncludedStatistics": { + "items": { + "type": "string" + }, + "markdownDescription": "List of included evaluations\\. When the list is undefined, all supported evaluations will be included\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludedStatistics", + "type": "array" + }, + "Overrides": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Job.StatisticOverride" + }, + "markdownDescription": "List of overrides for evaluations\\. \n*Required*: No \n*Type*: List of [StatisticOverride](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-statisticoverride.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Overrides", + "type": "array" + } + }, + "type": "object" + }, + "AWS::DataBrew::Job.ValidationConfiguration": { + "additionalProperties": false, + "properties": { + "RulesetArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the ruleset to be validated in the profile job\\. The TargetArn of the selected ruleset should be the same as the Amazon Resource Name \\(ARN\\) of the dataset that is associated with the profile job\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RulesetArn", + "type": "string" + }, + "ValidationMode": { + "markdownDescription": "Mode of data quality validation\\. Default mode is \u201cCHECK\\_ALL\u201d which verifies all rules defined in the selected ruleset\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The dataset that the project is to act upon\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetName", + "type": "string" + }, + "Name": { + "markdownDescription": "The unique name of a project\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RecipeName": { + "markdownDescription": "The name of a recipe that will be developed during a project session\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecipeName", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that will be assumed for this project\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "Sample": { + "$ref": "#/definitions/AWS::DataBrew::Project.Sample", + "markdownDescription": "The sample size and sampling type to apply to the data\\. If this parameter isn't specified, then the sample consists of the first 500 rows from the dataset\\. \n*Required*: No \n*Type*: [Sample](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-project-sample.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sample" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Metadata tags that have been applied to the project\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "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": { + "markdownDescription": "The number of rows in the sample\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `5000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Size", + "type": "number" + }, + "Type": { + "markdownDescription": "The way in which DataBrew obtains rows from a dataset\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `FIRST_N | LAST_N | RANDOM` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "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": { + "markdownDescription": "The description of the recipe\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The unique name for the recipe\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Steps": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.RecipeStep" + }, + "markdownDescription": "A list of steps that are defined by the recipe\\. \n*Required*: Yes \n*Type*: List of [RecipeStep](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipestep.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Steps", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Metadata tags that have been applied to the recipe\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "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": { + "markdownDescription": "The name of a valid DataBrew transformation to be performed on the data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Operation", + "type": "string" + }, + "Parameters": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.RecipeParameters", + "markdownDescription": "Contextual parameters for the transformation\\. \n*Required*: No \n*Type*: [ParameterMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-parametermap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters" + } + }, + "required": [ + "Operation" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.ConditionExpression": { + "additionalProperties": false, + "properties": { + "Condition": { + "markdownDescription": "A specific condition to apply to a recipe action\\. For more information, see [Recipe structure](https://docs.aws.amazon.com/databrew/latest/dg/recipe-structure.html) in the *AWS Glue DataBrew Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[A-Z\\_]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Condition", + "type": "string" + }, + "TargetColumn": { + "markdownDescription": "A column to apply this condition to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetColumn", + "type": "string" + }, + "Value": { + "markdownDescription": "A value that the condition must evaluate to for the condition to succeed\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Condition", + "TargetColumn" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.DataCatalogInputDefinition": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "markdownDescription": "The unique identifier of the AWS account that holds the Data Catalog that stores the data\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CatalogId", + "type": "string" + }, + "DatabaseName": { + "markdownDescription": "The name of a database in the Data Catalog\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", + "type": "string" + }, + "TableName": { + "markdownDescription": "The name of a database table in the Data Catalog\\. This table corresponds to a DataBrew dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", + "type": "string" + }, + "TempDirectory": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.S3Location", + "markdownDescription": "Represents an Amazon location where DataBrew can store intermediate results\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TempDirectory" + } + }, + "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": { + "markdownDescription": "The name of an aggregation function to apply\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AggregateFunction", + "type": "string" + }, + "Base": { + "markdownDescription": "The number of digits used in a counting system\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Base", + "type": "string" + }, + "CaseStatement": { + "markdownDescription": "A case statement associated with a recipe\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaseStatement", + "type": "string" + }, + "CategoryMap": { + "markdownDescription": "A category map used for one\\-hot encoding\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CategoryMap", + "type": "string" + }, + "CharsToRemove": { + "markdownDescription": "Characters to remove from a step that applies one\\-hot encoding or tokenization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CharsToRemove", + "type": "string" + }, + "CollapseConsecutiveWhitespace": { + "markdownDescription": "Remove any non\\-word non\\-punctuation character\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CollapseConsecutiveWhitespace", + "type": "string" + }, + "ColumnDataType": { + "markdownDescription": "The data type of the column\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnDataType", + "type": "string" + }, + "ColumnRange": { + "markdownDescription": "A range of columns to which a step is applied\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnRange", + "type": "string" + }, + "Count": { + "markdownDescription": "The number of times a string needs to be repeated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count", + "type": "string" + }, + "CustomCharacters": { + "markdownDescription": "One or more characters that can be substituted or removed, depending on the context\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomCharacters", + "type": "string" + }, + "CustomStopWords": { + "markdownDescription": "A list of words to ignore in a step that applies word tokenization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomStopWords", + "type": "string" + }, + "CustomValue": { + "markdownDescription": "A list of custom values to use in a step that requires that you provide a value to finish the operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomValue", + "type": "string" + }, + "DatasetsColumns": { + "markdownDescription": "A list of the dataset columns included in a project\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetsColumns", + "type": "string" + }, + "DateAddValue": { + "markdownDescription": "A value that specifies how many units of time to add or subtract for a date math operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DateAddValue", + "type": "string" + }, + "DateTimeFormat": { + "markdownDescription": "A date format to apply to a date\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DateTimeFormat", + "type": "string" + }, + "DateTimeParameters": { + "markdownDescription": "A set of parameters associated with a datetime\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DateTimeParameters", + "type": "string" + }, + "DeleteOtherRows": { + "markdownDescription": "Determines whether unmapped rows in a categorical mapping should be deleted \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteOtherRows", + "type": "string" + }, + "Delimiter": { + "markdownDescription": "The delimiter to use when parsing separated values in a text file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Delimiter", + "type": "string" + }, + "EndPattern": { + "markdownDescription": "The end pattern to locate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndPattern", + "type": "string" + }, + "EndPosition": { + "markdownDescription": "The end position to locate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndPosition", + "type": "string" + }, + "EndValue": { + "markdownDescription": "The end value to locate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndValue", + "type": "string" + }, + "ExpandContractions": { + "markdownDescription": "A list of word contractions and what they expand to\\. For eample: *can't*; *cannot*; *can not*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExpandContractions", + "type": "string" + }, + "Exponent": { + "markdownDescription": "The exponent to apply in an exponential operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exponent", + "type": "string" + }, + "FalseString": { + "markdownDescription": "A value that represents `FALSE`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FalseString", + "type": "string" + }, + "GroupByAggFunctionOptions": { + "markdownDescription": "Specifies options to apply to the `GROUP BY` used in an aggregation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupByAggFunctionOptions", + "type": "string" + }, + "GroupByColumns": { + "markdownDescription": "The columns to use in the `GROUP BY` clause\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupByColumns", + "type": "string" + }, + "HiddenColumns": { + "markdownDescription": "A list of columns to hide\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HiddenColumns", + "type": "string" + }, + "IgnoreCase": { + "markdownDescription": "Indicates that lower and upper case letters are treated equally\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IgnoreCase", + "type": "string" + }, + "IncludeInSplit": { + "markdownDescription": "Indicates if this column is participating in a split transform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeInSplit", + "type": "string" + }, + "Input": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.Input", + "markdownDescription": "The input location to load the dataset from \\- Amazon S3 or AWS Glue Data Catalog\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Input" + }, + "Interval": { + "markdownDescription": "The number of characters to split by\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Interval", + "type": "string" + }, + "IsText": { + "markdownDescription": "Indicates if the content is text\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsText", + "type": "string" + }, + "JoinKeys": { + "markdownDescription": "The keys or columns involved in a join\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JoinKeys", + "type": "string" + }, + "JoinType": { + "markdownDescription": "The type of join to use, for example, `INNER JOIN`, `OUTER JOIN`, and so on\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JoinType", + "type": "string" + }, + "LeftColumns": { + "markdownDescription": "The columns on the left side of the join\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LeftColumns", + "type": "string" + }, + "Limit": { + "markdownDescription": "The number of times to perform `split` or `replaceBy` in a string \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Limit", + "type": "string" + }, + "LowerBound": { + "markdownDescription": "The lower boundary for a value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LowerBound", + "type": "string" + }, + "MapType": { + "markdownDescription": "The type of mappings to apply to construct a new dynamic frame\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MapType", + "type": "string" + }, + "ModeType": { + "markdownDescription": "Determines the manner in which mode value is calculated, in case there is more than one mode value\\. Valid values: `NONE` \\| `AVERAGE` \\| `MINIMUM` \\| `MAXIMUM` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ModeType", + "type": "string" + }, + "MultiLine": { + "markdownDescription": "Specifies whether JSON input contains embedded new line characters\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MultiLine", + "type": "boolean" + }, + "NumRows": { + "markdownDescription": "The number of rows to consider in a window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumRows", + "type": "string" + }, + "NumRowsAfter": { + "markdownDescription": "The number of rows to consider after the current row in a window \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumRowsAfter", + "type": "string" + }, + "NumRowsBefore": { + "markdownDescription": "The number of rows to consider before the current row in a window \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumRowsBefore", + "type": "string" + }, + "OrderByColumn": { + "markdownDescription": "A column to sort the results by\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrderByColumn", + "type": "string" + }, + "OrderByColumns": { + "markdownDescription": "The columns to sort the results by\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrderByColumns", + "type": "string" + }, + "Other": { + "markdownDescription": "The value to assign to unmapped cells, in categorical mapping \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Other", + "type": "string" + }, + "Pattern": { + "markdownDescription": "The pattern to locate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Pattern", + "type": "string" + }, + "PatternOption1": { + "markdownDescription": "The starting pattern to split between\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatternOption1", + "type": "string" + }, + "PatternOption2": { + "markdownDescription": "The ending pattern to split between\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatternOption2", + "type": "string" + }, + "PatternOptions": { + "markdownDescription": "For splitting by multiple delimiters: A JSON\\-encoded string that lists the patterns in the format\\. For example: `[{\\\"pattern\\\":\\\"1\\\",\\\"includeInSplit\\\":true}]` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatternOptions", + "type": "string" + }, + "Period": { + "markdownDescription": "The size of the rolling window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Period", + "type": "string" + }, + "Position": { + "markdownDescription": "The character index within a string \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Position", + "type": "string" + }, + "RemoveAllPunctuation": { + "markdownDescription": "If `true`, removes all of the following characters: `.` `.!` `.,` `.?` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveAllPunctuation", + "type": "string" + }, + "RemoveAllQuotes": { + "markdownDescription": "If `true`, removes all single quotes and double quotes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveAllQuotes", + "type": "string" + }, + "RemoveAllWhitespace": { + "markdownDescription": "If `true`, removes all whitespaces from the value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveAllWhitespace", + "type": "string" + }, + "RemoveCustomCharacters": { + "markdownDescription": "If `true`, removes all chraracters specified by `CustomCharacters`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveCustomCharacters", + "type": "string" + }, + "RemoveCustomValue": { + "markdownDescription": "If `true`, removes all chraracters specified by `CustomValue`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveCustomValue", + "type": "string" + }, + "RemoveLeadingAndTrailingPunctuation": { + "markdownDescription": "If `true`, removes the following characters if they occur at the start or end of the value: `.` `!` `,` `?` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveLeadingAndTrailingPunctuation", + "type": "string" + }, + "RemoveLeadingAndTrailingQuotes": { + "markdownDescription": "If `true`, removes single quotes and double quotes from the beginning and end of the value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveLeadingAndTrailingQuotes", + "type": "string" + }, + "RemoveLeadingAndTrailingWhitespace": { + "markdownDescription": "If `true`, removes all whitespaces from the beginning and end of the value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveLeadingAndTrailingWhitespace", + "type": "string" + }, + "RemoveLetters": { + "markdownDescription": "If `true`, removes all uppercase and lowercase alphabetic characters \\(A through Z; a through z\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveLetters", + "type": "string" + }, + "RemoveNumbers": { + "markdownDescription": "If `true`, removes all numeric characters \\(0 through 9\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveNumbers", + "type": "string" + }, + "RemoveSourceColumn": { + "markdownDescription": "If `true`, the source column will be removed after un\\-nesting that column\\. \\(Used with nested column types, such as Map, Struct, or Array\\.\\) \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveSourceColumn", + "type": "string" + }, + "RemoveSpecialCharacters": { + "markdownDescription": "If `true`, removes all of the following characters: `! \" # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \\ ] ^ _ ` { | } ~` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveSpecialCharacters", + "type": "string" + }, + "RightColumns": { + "markdownDescription": "The columns on the right side of a join\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RightColumns", + "type": "string" + }, + "SampleSize": { + "markdownDescription": "The number of rows in the sample\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SampleSize", + "type": "string" + }, + "SampleType": { + "markdownDescription": "The sampling type to apply to the dataset\\. Valid values: `FIRST_N` \\| `LAST_N` \\| `RANDOM` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SampleType", + "type": "string" + }, + "SecondInput": { + "markdownDescription": "A object value to indicate the second dataset used in a join\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondInput", + "type": "string" + }, + "SecondaryInputs": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.SecondaryInput" + }, + "markdownDescription": "A list of secondary inputs in a UNION transform \n*Required*: No \n*Type*: List of [SecondaryInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-secondaryinput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryInputs", + "type": "array" + }, + "SheetIndexes": { + "items": { + "type": "number" + }, + "markdownDescription": "One or more sheet numbers in the Excel file, which will be included in a dataset\\. \n*Required*: No \n*Type*: List of Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SheetIndexes", + "type": "array" + }, + "SheetNames": { + "items": { + "type": "string" + }, + "markdownDescription": "Oone or more named sheets in the Excel file, which will be included in a dataset\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SheetNames", + "type": "array" + }, + "SourceColumn": { + "markdownDescription": "A source column needed for an operation, step, or transform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceColumn", + "type": "string" + }, + "SourceColumn1": { + "markdownDescription": "A source column needed for an operation, step, or transform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceColumn1", + "type": "string" + }, + "SourceColumn2": { + "markdownDescription": "A source column needed for an operation, step, or transform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceColumn2", + "type": "string" + }, + "SourceColumns": { + "markdownDescription": "A list of source columns needed for an operation, step, or transform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceColumns", + "type": "string" + }, + "StartColumnIndex": { + "markdownDescription": "The index number of the first column used by an operation, step, or transform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartColumnIndex", + "type": "string" + }, + "StartPattern": { + "markdownDescription": "The starting pattern to locate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartPattern", + "type": "string" + }, + "StartPosition": { + "markdownDescription": "The starting position to locate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartPosition", + "type": "string" + }, + "StartValue": { + "markdownDescription": "The starting value to locate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartValue", + "type": "string" + }, + "StemmingMode": { + "markdownDescription": "Indicates this operation uses stems and lemmas \\(base words\\) for word tokenization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StemmingMode", + "type": "string" + }, + "StepCount": { + "markdownDescription": "The total number of transforms in this recipe\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StepCount", + "type": "string" + }, + "StepIndex": { + "markdownDescription": "The index ID of a step\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StepIndex", + "type": "string" + }, + "StopWordsMode": { + "markdownDescription": "Indicates this operation uses stop words as part of word tokenization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StopWordsMode", + "type": "string" + }, + "Strategy": { + "markdownDescription": "The resolution strategy to apply in resolving ambiguities\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Strategy", + "type": "string" + }, + "TargetColumn": { + "markdownDescription": "The column targeted by this operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetColumn", + "type": "string" + }, + "TargetColumnNames": { + "markdownDescription": "The names to give columns altered by this operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetColumnNames", + "type": "string" + }, + "TargetDateFormat": { + "markdownDescription": "The date format to convert to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetDateFormat", + "type": "string" + }, + "TargetIndex": { + "markdownDescription": "The index number of an object that is targeted by this operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetIndex", + "type": "string" + }, + "TimeZone": { + "markdownDescription": "The current timezone that you want to use for dates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeZone", + "type": "string" + }, + "TokenizerPattern": { + "markdownDescription": "A regex expression to use when splitting text into terms, also called words or tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenizerPattern", + "type": "string" + }, + "TrueString": { + "markdownDescription": "A value to use to represent `TRUE`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrueString", + "type": "string" + }, + "UdfLang": { + "markdownDescription": "The language that's used in the user\\-defined function\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UdfLang", + "type": "string" + }, + "Units": { + "markdownDescription": "Specifies a unit of time\\. For example: `MINUTES`; `SECONDS`; `HOURS`; etc\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Units", + "type": "string" + }, + "UnpivotColumn": { + "markdownDescription": "Cast columns as rows, so that each value is a different row in a single column\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnpivotColumn", + "type": "string" + }, + "UpperBound": { + "markdownDescription": "The upper boundary for a value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpperBound", + "type": "string" + }, + "UseNewDataFrame": { + "markdownDescription": "Create a new container to hold a dataset\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseNewDataFrame", + "type": "string" + }, + "Value": { + "markdownDescription": "A static value that can be used in a comparison, a substitution, or in another context\\-specific way\\. A `Value` can be a number, string, or other datatype, depending on the recipe action in which it's used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + }, + "Value1": { + "markdownDescription": "A value that's used by this operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value1", + "type": "string" + }, + "Value2": { + "markdownDescription": "A value that's used by this operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value2", + "type": "string" + }, + "ValueColumn": { + "markdownDescription": "The column that is provided as a value that's used by this operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValueColumn", + "type": "string" + }, + "ViewFrame": { + "markdownDescription": "The subset of rows currently available for viewing\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ViewFrame", + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataBrew::Recipe.RecipeStep": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.Action", + "markdownDescription": "The particular action to be performed in the recipe step\\. \n*Required*: Yes \n*Type*: [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" + }, + "ConditionExpressions": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.ConditionExpression" + }, + "markdownDescription": "One or more conditions that must be met for the recipe step to succeed\\. \nAll of the conditions in the array must be met\\. In other words, all of the conditions must be combined using a logical AND operation\\.\n*Required*: No \n*Type*: List of [ConditionExpression](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-conditionexpression.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConditionExpressions", + "type": "array" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "markdownDescription": "The Amazon S3 bucket name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", + "type": "string" + }, + "Key": { + "markdownDescription": "The unique name of the object in the bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1280` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.SecondaryInput": { + "additionalProperties": false, + "properties": { + "DataCatalogInputDefinition": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.DataCatalogInputDefinition", + "markdownDescription": "The AWS Glue Data Catalog parameters for the data\\. \n*Required*: No \n*Type*: [DataCatalogInputDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-datacataloginputdefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataCatalogInputDefinition" + }, + "S3InputDefinition": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.S3Location", + "markdownDescription": "The Amazon S3 location where the data is stored\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3InputDefinition" + } + }, + "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": { + "markdownDescription": "The description of the ruleset\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the ruleset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Ruleset.Rule" + }, + "markdownDescription": "Contains metadata about the ruleset\\. \n*Required*: Yes \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TargetArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of a resource \\(dataset\\) that the ruleset is associated with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of a column from a dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Regex": { + "markdownDescription": "A regular expression for selecting a column from a dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Regex", + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataBrew::Ruleset.Rule": { + "additionalProperties": false, + "properties": { + "CheckExpression": { + "markdownDescription": "The expression which includes column references, condition names followed by variable references, possibly grouped and combined with other conditions\\. For example, `(:col1 starts_with :prefix1 or :col1 starts_with :prefix2) and (:col1 ends_with :suffix1 or :col1 ends_with :suffix2)`\\. Column and value references are substitution variables that should start with the ':' symbol\\. Depending on the context, substitution variables' values can be either an actual value or a column name\\. These values are defined in the SubstitutionMap\\. If a CheckExpression starts with a column reference, then ColumnSelectors in the rule should be null\\. If ColumnSelectors has been defined, then there should be no columnn reference in the left side of a condition, for example, `is_between :val1 and :val2`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CheckExpression", + "type": "string" + }, + "ColumnSelectors": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Ruleset.ColumnSelector" + }, + "markdownDescription": "List of column selectors\\. Selectors can be used to select columns using a name or regular expression from the dataset\\. Rule will be applied to selected columns\\. \n*Required*: No \n*Type*: List of [ColumnSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-columnselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnSelectors", + "type": "array" + }, + "Disabled": { + "markdownDescription": "A value that specifies whether the rule is disabled\\. Once a rule is disabled, a profile job will not validate it during a job run\\. Default value is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Disabled", + "type": "boolean" + }, + "Name": { + "markdownDescription": "The name of the rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "SubstitutionMap": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Ruleset.SubstitutionValue" + }, + "markdownDescription": "The map of substitution variable names to their values used in a check expression\\. Variable names should start with a ':' \\(colon\\)\\. Variable values can either be actual values or column names\\. To differentiate between the two, column names should be enclosed in backticks, for example, `\":col1\": \"`Column A`\".` \n*Required*: No \n*Type*: List of [SubstitutionValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-substitutionvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubstitutionMap", + "type": "array" + }, + "Threshold": { + "$ref": "#/definitions/AWS::DataBrew::Ruleset.Threshold", + "markdownDescription": "The threshold used with a non\\-aggregate check expression\\. Non\\-aggregate check expressions will be applied to each row in a specific column, and the threshold will be used to determine whether the validation succeeds\\. \n*Required*: No \n*Type*: [Threshold](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-threshold.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Threshold" + } + }, + "required": [ + "CheckExpression", + "Name" + ], + "type": "object" + }, + "AWS::DataBrew::Ruleset.SubstitutionValue": { + "additionalProperties": false, + "properties": { + "Value": { + "markdownDescription": "Value or column name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + }, + "ValueReference": { + "markdownDescription": "Variable name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValueReference", + "type": "string" + } + }, + "required": [ + "Value", + "ValueReference" + ], + "type": "object" + }, + "AWS::DataBrew::Ruleset.Threshold": { + "additionalProperties": false, + "properties": { + "Type": { + "markdownDescription": "The type of a threshold\\. Used for comparison of an actual count of rows that satisfy the rule to the threshold value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "Unit": { + "markdownDescription": "Unit of threshold value\\. Can be either a COUNT or PERCENTAGE of the full sample size used for validation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of a threshold\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The dates and times when the job is to run\\. For more information, see [Cron expressions](https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html) in the * AWS Glue DataBrew Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CronExpression", + "type": "string" + }, + "JobNames": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of jobs to be run, according to the schedule\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobNames", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the schedule\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Metadata tags that have been applied to the schedule\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "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": { + "markdownDescription": "Indicates whether to validate and start the pipeline or stop an active pipeline\\. By default, the value is set to `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Activate", + "type": "boolean" + }, + "Description": { + "markdownDescription": "A description of the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the pipeline\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "ParameterObjects": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterObject" + }, + "markdownDescription": "The parameter objects used with the pipeline\\. \n*Required*: Yes \n*Type*: List of [ParameterObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterObjects", + "type": "array" + }, + "ParameterValues": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterValue" + }, + "markdownDescription": "The parameter values used with the pipeline\\. \n*Required*: No \n*Type*: List of [ParameterValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parametervalues.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterValues", + "type": "array" + }, + "PipelineObjects": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineObject" + }, + "markdownDescription": "The objects that define the pipeline\\. These objects overwrite the existing pipeline definition\\. Not all objects, fields, and values can be updated\\. For information about restrictions, see [Editing Your Pipeline](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-manage-pipeline-modify-console.html) in the *AWS Data Pipeline Developer Guide*\\. \n*Required*: No \n*Type*: List of [PipelineObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PipelineObjects", + "type": "array" + }, + "PipelineTags": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineTag" + }, + "markdownDescription": "A list of arbitrary tags \\(key\\-value pairs\\) to associate with the pipeline, which you can use to control permissions\\. For more information, see [Controlling Access to Pipelines and Resources](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-control-access.html) in the *AWS Data Pipeline Developer Guide*\\. \n*Required*: No \n*Type*: List of [PipelineTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelinetags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PipelineTags", + "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": { + "markdownDescription": "Specifies the name of a field for a particular object\\. To view valid values for a particular field, see [Pipeline Object Reference](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-pipeline-objects.html) in the *AWS Data Pipeline Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "RefValue": { + "markdownDescription": "A field value that you specify as an identifier of another object in the same pipeline definition\\. \nYou can specify the field value as either a string value \\(`StringValue`\\) or a reference to another object \\(`RefValue`\\), but not both\\.\nRequired if the key that you are using requires it\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RefValue", + "type": "string" + }, + "StringValue": { + "markdownDescription": "A field value that you specify as a string\\. To view valid values for a particular field, see [Pipeline Object Reference](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-pipeline-objects.html) in the *AWS Data Pipeline Developer Guide*\\. \nYou can specify the field value as either a string value \\(`StringValue`\\) or a reference to another object \\(`RefValue`\\), but not both\\.\nRequired if the key that you are using requires it\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10240` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StringValue", + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.ParameterAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The field identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "StringValue": { + "markdownDescription": "The field value, expressed as a String\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10240` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StringValue", + "type": "string" + } + }, + "required": [ + "Key", + "StringValue" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.ParameterObject": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterAttribute" + }, + "markdownDescription": "The attributes of the parameter object\\. \n*Required*: Yes \n*Type*: List of [ParameterAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects-attributes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attributes", + "type": "array" + }, + "Id": { + "markdownDescription": "The ID of the parameter object\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + } + }, + "required": [ + "Attributes", + "Id" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.ParameterValue": { + "additionalProperties": false, + "properties": { + "Id": { + "markdownDescription": "The ID of the parameter value\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "StringValue": { + "markdownDescription": "The field value, expressed as a String\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10240` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StringValue", + "type": "string" + } + }, + "required": [ + "Id", + "StringValue" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.PipelineObject": { + "additionalProperties": false, + "properties": { + "Fields": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.Field" + }, + "markdownDescription": "Key\\-value pairs that define the properties of the object\\. \n*Required*: Yes \n*Type*: List of [Field](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects-fields.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Fields", + "type": "array" + }, + "Id": { + "markdownDescription": "The ID of the object\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the object\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "Fields", + "Id", + "Name" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.PipelineTag": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The key name of a tag\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The value to associate with the key name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Your agent activation key\\. You can get the activation key either by sending an HTTP GET request with redirects that enable you to get the agent IP address \\(port 80\\)\\. Alternatively, you can get it from the DataSync console\\. \nThe redirect URL returned in the response provides you the activation key for your agent in the query string parameter `activationKey`\\. It might also include other activation\\-related parameters; however, these are merely defaults\\. The arguments you pass to this API call determine the actual configuration of your agent\\. \nFor more information, see [Creating and activating an agent](https://docs.aws.amazon.com/datasync/latest/userguide/activating-agent.html) in the * AWS DataSync User Guide\\.* \n*Required*: Yes \n*Type*: String \n*Maximum*: `29` \n*Pattern*: `[A-Z0-9]{5}(-[A-Z0-9]{5}){4}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ActivationKey", + "type": "string" + }, + "AgentName": { + "markdownDescription": "The name you configured for your agent\\. This value is a text reference that is used to identify the agent in the console\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[a-zA-Z0-9\\s+=._:@/-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AgentName", + "type": "string" + }, + "SecurityGroupArns": { + "items": { + "type": "string" + }, + "markdownDescription": "The Amazon Resource Names \\(ARNs\\) of the security groups used to protect your data transfer task subnets\\. See [SecurityGroupArns](https://docs.aws.amazon.com/datasync/latest/userguide/API_Ec2Config.html#DataSync-Type-Ec2Config-SecurityGroupArns)\\. \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/.*$` \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroupArns", + "type": "array" + }, + "SubnetArns": { + "items": { + "type": "string" + }, + "markdownDescription": "The Amazon Resource Names \\(ARNs\\) of the subnets in which DataSync will create elastic network interfaces for each data transfer task\\. The agent that runs a task must be private\\. When you start a task that is associated with an agent created in a VPC, or one that has access to an IP address in a VPC, then the task is also private\\. In this case, DataSync creates four network interfaces for each task in your subnet\\. For a data transfer to work, the agent must be able to route to all these four network interfaces\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetArns", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The key\\-value pair that represents the tag that you want to associate with the agent\\. The value can be an empty string\\. This value helps you manage, filter, and search for your agents\\. \nValid characters for key and value are letters, spaces, and numbers representable in UTF\\-8 format, and the following special characters: \\+ \\- = \\. \\_ : / @\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VpcEndpointId": { + "markdownDescription": "The ID of the virtual private cloud \\(VPC\\) endpoint that the agent has access to\\. This is the client\\-side VPC endpoint, powered by AWS PrivateLink\\. If you don't have an AWS PrivateLink VPC endpoint, see [AWS PrivateLink and VPC endpoints](https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-overview.html) in the *Amazon VPC User Guide*\\. \nFor more information about activating your agent in a private network based on a VPC, see [Using AWS DataSync in a Virtual Private Cloud](https://docs.aws.amazon.com/datasync/latest/userguide/datasync-in-vpc.html) in the *AWS DataSync User Guide\\.* \nA VPC endpoint ID looks like this: `vpce-01234d5aff67890e1`\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^vpce-[0-9a-f]{17}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcEndpointId", + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataSync::Agent" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "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", + "markdownDescription": "The subnet and security group that the Amazon EFS file system uses\\. The security group that you provide needs to be able to communicate with the security group on the mount target in the subnet specified\\. \nThe exact relationship between security group M \\(of the mount target\\) and security group S \\(which you provide for DataSync to use at this stage\\) is as follows: \n+ Security group M \\(which you associate with the mount target\\) must allow inbound access for the Transmission Control Protocol \\(TCP\\) on the NFS port \\(2049\\) from security group S\\. You can enable inbound connections either by IP address \\(CIDR range\\) or security group\\. \n+ Security group S \\(provided to DataSync to access EFS\\) should have a rule that enables outbound connections to the NFS port on one of the file system\u2019s mount targets\\. You can enable outbound connections either by IP address \\(CIDR range\\) or security group\\.", + "title": "Ec2Config" + }, + "EfsFilesystemArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the Amazon EFS file system\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):elasticfilesystem:[a-z\\-0-9]*:[0-9]{12}:file-system/fs-.*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EfsFilesystemArn", + "type": "string" + }, + "FileSystemAccessRoleArn": { + "type": "string" + }, + "InTransitEncryption": { + "type": "string" + }, + "Subdirectory": { + "markdownDescription": "A subdirectory in the location\u2019s path\\. This subdirectory in the EFS file system is used to read data from the EFS source location or write data to the EFS destination\\. By default, AWS DataSync uses the root directory\\. \n `Subdirectory` must be specified with forward slashes\\. For example, `/path/to/folder`\\.\n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\p{Zs}]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subdirectory", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The key\\-value pair that represents a tag that you want to add to the resource\\. The value can be an empty string\\. This value helps you manage, filter, and search for your resources\\. We recommend that you create a name tag for your location\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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" + }, + "markdownDescription": "The Amazon Resource Names \\(ARNs\\) of the security groups that are configured for the Amazon EC2 resource\\. \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/.*$` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroupArns", + "type": "array" + }, + "SubnetArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the subnet that DataSync uses to access the target EFS file system\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:subnet/.*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the FSx for Lustre file system\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):fsx:[a-z\\-0-9]*:[0-9]{12}:file-system/fs-.*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FsxFilesystemArn", + "type": "string" + }, + "SecurityGroupArns": { + "items": { + "type": "string" + }, + "markdownDescription": "The ARNs of the security groups that are used to configure the FSx for Lustre file system\\. \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/.*$` \n*Length constraints*: Maximum length of 128\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroupArns", + "type": "array" + }, + "Subdirectory": { + "markdownDescription": "A subdirectory in the location's path\\. This subdirectory in the FSx for Lustre file system is used to read data from the FSx for Lustre source location or write data to the FSx for Lustre destination\\. \n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\$\\p{Zs}]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subdirectory", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The key\\-value pair that represents a tag that you want to add to the resource\\. The value can be an empty string\\. This value helps you manage, filter, and search for your resources\\. We recommend that you create a name tag for your location\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": [ + "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": [ + "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": { + "markdownDescription": "The name of the Windows domain that the FSx for Windows File Server belongs to\\. \n*Required*: No \n*Type*: String \n*Maximum*: `253` \n*Pattern*: `^([A-Za-z0-9]+[A-Za-z0-9-.]*)*[A-Za-z0-9-]*[A-Za-z0-9]$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Domain", + "type": "string" + }, + "FsxFilesystemArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the FSx for Windows File Server file system\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):fsx:[a-z\\-0-9]*:[0-9]{12}:file-system/fs-.*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FsxFilesystemArn", + "type": "string" + }, + "Password": { + "markdownDescription": "The password of the user who has the permissions to access files and folders in the FSx for Windows File Server file system\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `104` \n*Pattern*: `^.{0,104}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Password", + "type": "string" + }, + "SecurityGroupArns": { + "items": { + "type": "string" + }, + "markdownDescription": "The Amazon Resource Names \\(ARNs\\) of the security groups that are used to configure the FSx for Windows File Server file system\\. \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:security-group/.*$` \n*Length constraints*: Maximum length of 128\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroupArns", + "type": "array" + }, + "Subdirectory": { + "markdownDescription": "A subdirectory in the location's path\\. This subdirectory in the Amazon FSx for Windows File Server file system is used to read data from the Amazon FSx for Windows File Server source location or write data to the FSx for Windows File Server destination\\. \n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\$\\p{Zs}]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subdirectory", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The key\\-value pair that represents a tag that you want to add to the resource\\. The value can be an empty string\\. This value helps you manage, filter, and search for your resources\\. We recommend that you create a name tag for your location\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "User": { + "markdownDescription": "The user who has the permissions to access files and folders in the FSx for Windows File Server file system\\. \nFor information about choosing a user name that ensures sufficient permissions to files, folders, and metadata, see [user](https://docs.aws.amazon.com/datasync/latest/userguide/create-fsx-location.html#FSxWuser)\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `104` \n*Pattern*: `^[^\\x5B\\x5D\\\\/:;|=,+*?]{1,104}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "The Amazon Resource Names \\(ARNs\\) of the agents that are used to connect to the HDFS cluster\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AgentArns", + "type": "array" + }, + "AuthenticationType": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticationType", + "type": "string" + }, + "BlockSize": { + "markdownDescription": "The size of data blocks to write into the HDFS cluster\\. The block size must be a multiple of 512 bytes\\. The default block size is 128 mebibytes \\(MiB\\)\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1048576` \n*Maximum*: `1073741824` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockSize", + "type": "number" + }, + "KerberosKeytab": { + "markdownDescription": "The Kerberos key table \\(keytab\\) that contains mappings between the defined Kerberos principal and the encrypted keys\\. Provide the base64\\-encoded file text\\. If `KERBEROS` is specified for `AuthType`, this value is required\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KerberosKeytab", + "type": "string" + }, + "KerberosKrb5Conf": { + "markdownDescription": "The `krb5.conf` file that contains the Kerberos configuration information\\. You can load the `krb5.conf` by providing a string of the file's contents or an Amazon S3 presigned URL of the file\\. If`KERBEROS` is specified for `AuthType`, this value is required\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KerberosKrb5Conf", + "type": "string" + }, + "KerberosPrincipal": { + "markdownDescription": "The Kerberos principal with access to the files and folders on the HDFS cluster\\. \nIf `KERBEROS` is specified for `AuthenticationType`, this parameter is required\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KerberosPrincipal", + "type": "string" + }, + "KmsKeyProviderUri": { + "markdownDescription": "The URI of the HDFS cluster's Key Management Server \\(KMS\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^kms:\\/\\/http[s]?@(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9])(;(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9]))*:[0-9]{1,5}\\/kms$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyProviderUri", + "type": "string" + }, + "NameNodes": { + "items": { + "$ref": "#/definitions/AWS::DataSync::LocationHDFS.NameNode" + }, + "markdownDescription": "The NameNode that manages the HDFS namespace\\. The NameNode performs operations such as opening, closing, and renaming files and directories\\. The NameNode contains the information to map blocks of data to the DataNodes\\. You can use only one NameNode\\. \n*Required*: Yes \n*Type*: List of [NameNode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationhdfs-namenode.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NameNodes", + "type": "array" + }, + "QopConfiguration": { + "$ref": "#/definitions/AWS::DataSync::LocationHDFS.QopConfiguration", + "markdownDescription": "The Quality of Protection \\(QOP\\) configuration specifies the Remote Procedure Call \\(RPC\\) and data transfer protection settings configured on the Hadoop Distributed File System \\(HDFS\\) cluster\\. If `QopConfiguration` isn't specified, `RpcProtection` and `DataTransferProtection` default to `PRIVACY`\\. If you set `RpcProtection` or `DataTransferProtection`, the other parameter assumes the same value\\. \n*Required*: No \n*Type*: [QopConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationhdfs-qopconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QopConfiguration" + }, + "ReplicationFactor": { + "markdownDescription": "The number of DataNodes to replicate the data to when writing to the HDFS cluster\\. By default, data is replicated to three DataNodes\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationFactor", + "type": "number" + }, + "SimpleUser": { + "markdownDescription": "The user name used to identify the client on the host operating system\\. \nIf `SIMPLE` is specified for `AuthenticationType`, this parameter is required\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[_.A-Za-z0-9][-_.A-Za-z0-9]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SimpleUser", + "type": "string" + }, + "Subdirectory": { + "markdownDescription": "A subdirectory in the HDFS cluster\\. This subdirectory is used to read data from or write data to the HDFS cluster\\. If the subdirectory isn't specified, it will default to `/`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\$\\p{Zs}]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subdirectory", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The key\\-value pair that represents the tag that you want to add to the location\\. The value can be an empty string\\. We recommend using tags to name your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The hostname of the NameNode in the HDFS cluster\\. This value is the IP address or Domain Name Service \\(DNS\\) name of the NameNode\\. An agent that's installed on\\-premises uses this hostname to communicate with the NameNode in the network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9])$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Hostname", + "type": "string" + }, + "Port": { + "markdownDescription": "The port that the NameNode uses to listen to client requests\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65536` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + } + }, + "required": [ + "Hostname", + "Port" + ], + "type": "object" + }, + "AWS::DataSync::LocationHDFS.QopConfiguration": { + "additionalProperties": false, + "properties": { + "DataTransferProtection": { + "markdownDescription": "The data transfer protection setting configured on the HDFS cluster\\. This setting corresponds to your `dfs.data.transfer.protection` setting in the `hdfs-site.xml` file on your Hadoop cluster\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUTHENTICATION | DISABLED | INTEGRITY | PRIVACY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataTransferProtection", + "type": "string" + }, + "RpcProtection": { + "markdownDescription": "The Remote Procedure Call \\(RPC\\) protection setting configured on the HDFS cluster\\. This setting corresponds to your `hadoop.rpc.protection` setting in your `core-site.xml` file on your Hadoop cluster\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUTHENTICATION | DISABLED | INTEGRITY | PRIVACY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The NFS mount options that DataSync can use to mount your NFS share\\. \n*Required*: No \n*Type*: [MountOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationnfs-mountoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MountOptions" + }, + "OnPremConfig": { + "$ref": "#/definitions/AWS::DataSync::LocationNFS.OnPremConfig", + "markdownDescription": "Contains a list of Amazon Resource Names \\(ARNs\\) of agents that are used to connect to an NFS server\\. \nIf you are copying data to or from your AWS Snowcone device, see [NFS Server on AWS Snowcone](https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone) for more information\\. \n*Required*: Yes \n*Type*: [OnPremConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationnfs-onpremconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnPremConfig" + }, + "ServerHostname": { + "markdownDescription": "The name of the NFS server\\. This value is the IP address or Domain Name Service \\(DNS\\) name of the NFS server\\. An agent that is installed on\\-premises uses this host name to mount the NFS server in a network\\. \nIf you are copying data to or from your AWS Snowcone device, see [NFS Server on AWS Snowcone](https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone) for more information\\. \nThis name must either be DNS\\-compliant or must be an IP version 4 \\(IPv4\\) address\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `^(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9])$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServerHostname", + "type": "string" + }, + "Subdirectory": { + "markdownDescription": "The subdirectory in the NFS file system that is used to read data from the NFS source location or write data to the NFS destination\\. The NFS path should be a path that's exported by the NFS server, or a subdirectory of that path\\. The path should be such that it can be mounted by other NFS clients in your network\\. \nTo see all the paths exported by your NFS server, run \"`showmount -e nfs-server-name`\" from an NFS client that has access to your server\\. You can specify any directory that appears in the results, and any subdirectory of that directory\\. Ensure that the NFS export is accessible without Kerberos authentication\\. \nTo transfer all the data in the folder you specified, DataSync needs to have permissions to read all the data\\. To ensure this, either configure the NFS export with `no_root_squash,` or ensure that the permissions for all of the files that you want DataSync allow read access for all users\\. Doing either enables the agent to read the files\\. For the agent to access directories, you must additionally enable all execute access\\. \nIf you are copying data to or from your AWS Snowcone device, see [NFS Server on AWS Snowcone](https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone) for more information\\. \nFor information about NFS export configuration, see [18\\.7\\. The /etc/exports Configuration File](http://web.mit.edu/rhel-doc/5/RHEL-5-manual/Deployment_Guide-en-US/s1-nfs-server-config-exports.html) in the Red Hat Enterprise Linux documentation\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\p{Zs}]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subdirectory", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The key\\-value pair that represents the tag that you want to add to the location\\. The value can be an empty string\\. We recommend using tags to name your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The specific NFS version that you want DataSync to use to mount your NFS share\\. If the server refuses to use the version specified, the sync will fail\\. If you don't specify a version, DataSync defaults to `AUTOMATIC`\\. That is, DataSync automatically selects a version based on negotiation with the NFS server\\. \nYou can specify the following NFS versions: \n+ ** [NFSv3](https://tools.ietf.org/html/rfc1813) ** \\- stateless protocol version that allows for asynchronous writes on the server\\.\n+ ** [NFSv4\\.0](https://tools.ietf.org/html/rfc3530) ** \\- stateful, firewall\\-friendly protocol version that supports delegations and pseudo file systems\\.\n+ ** [NFSv4\\.1](https://tools.ietf.org/html/rfc5661) ** \\- stateful protocol version that supports sessions, directory delegations, and parallel data processing\\. Version 4\\.1 also includes all features available in version 4\\.0\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `AUTOMATIC | NFS3 | NFS4_0 | NFS4_1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataSync::LocationNFS.OnPremConfig": { + "additionalProperties": false, + "properties": { + "AgentArns": { + "items": { + "type": "string" + }, + "markdownDescription": "ARNs of the agents to use for an NFS location\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AgentArns", + "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": { + "markdownDescription": "Optional\\. The access key is used if credentials are required to access the self\\-managed object storage server\\. If your object storage requires a user name and password to authenticate, use `AccessKey` and `SecretKey` to provide the user name and password, respectively\\. \n*Required*: No \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `200` \n*Pattern*: `^.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessKey", + "type": "string" + }, + "AgentArns": { + "items": { + "type": "string" + }, + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the agents associated with the self\\-managed object storage server location\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AgentArns", + "type": "array" + }, + "BucketName": { + "markdownDescription": "The bucket on the self\\-managed object storage server that is used to read data from\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\$\\p{Zs}]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketName", + "type": "string" + }, + "SecretKey": { + "markdownDescription": "Optional\\. The secret key is used if credentials are required to access the self\\-managed object storage server\\. If your object storage requires a user name and password to authenticate, use `AccessKey` and `SecretKey` to provide the user name and password, respectively\\. \n*Required*: No \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `200` \n*Pattern*: `^.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretKey", + "type": "string" + }, + "ServerCertificate": { + "type": "string" + }, + "ServerHostname": { + "markdownDescription": "The name of the self\\-managed object storage server\\. This value is the IP address or Domain Name Service \\(DNS\\) name of the object storage server\\. An agent uses this host name to mount the object storage server in a network\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `^(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9])$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServerHostname", + "type": "string" + }, + "ServerPort": { + "markdownDescription": "The port that your self\\-managed object storage server accepts inbound network traffic on\\. The server port is set by default to TCP 80 \\(HTTP\\) or TCP 443 \\(HTTPS\\)\\. You can specify a custom port if your self\\-managed object storage server requires one\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65536` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerPort", + "type": "number" + }, + "ServerProtocol": { + "markdownDescription": "The protocol that the object storage server uses to communicate\\. Valid values are HTTP or HTTPS\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `HTTP | HTTPS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerProtocol", + "type": "string" + }, + "Subdirectory": { + "markdownDescription": "The subdirectory in the self\\-managed object storage server that is used to read data from\\. \n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\p{Zs}]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subdirectory", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The key\\-value pair that represents the tag that you want to add to the location\\. The value can be an empty string\\. We recommend using tags to name your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The ARN of the Amazon S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `156` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):(s3|s3-outposts):[a-z\\-0-9]*:[0-9]*:.*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3BucketArn", + "type": "string" + }, + "S3Config": { + "$ref": "#/definitions/AWS::DataSync::LocationS3.S3Config", + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Identity and Access Management \\(IAM\\) role that is used to access an Amazon S3 bucket\\. \nFor detailed information about using such a role, see [Creating a Location for Amazon S3](https://docs.aws.amazon.com/datasync/latest/userguide/working-with-locations.html#create-s3-location) in the *AWS DataSync User Guide*\\. \n*Required*: Yes \n*Type*: [S3Config](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locations3-s3config.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Config" + }, + "S3StorageClass": { + "markdownDescription": "The Amazon S3 storage class that you want to store your files in when this location is used as a task destination\\. For buckets in AWS Regions, the storage class defaults to S3 Standard\\. \nFor more information about S3 storage classes, see [Amazon S3 Storage Classes](http://aws.amazon.com/s3/storage-classes/)\\. Some storage classes have behaviors that can affect your S3 storage costs\\. For detailed information, see [Considerations When Working with Amazon S3 Storage Classes in DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DEEP_ARCHIVE | GLACIER | INTELLIGENT_TIERING | ONEZONE_IA | OUTPOSTS | STANDARD | STANDARD_IA` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3StorageClass", + "type": "string" + }, + "Subdirectory": { + "markdownDescription": "A subdirectory in the Amazon S3 bucket\\. This subdirectory in Amazon S3 is used to read data from the S3 source location or write data to the S3 destination\\. \n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\p{Zs}]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subdirectory", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The key\\-value pair that represents the tag that you want to add to the location\\. The value can be an empty string\\. We recommend using tags to name your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "required": [ + "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": { + "markdownDescription": "The ARN of the IAM role for accessing the S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "The Amazon Resource Names \\(ARNs\\) of agents to use for a Server Message Block \\(SMB\\) location\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AgentArns", + "type": "array" + }, + "Domain": { + "markdownDescription": "The name of the Windows domain that the SMB server belongs to\\. \n*Required*: No \n*Type*: String \n*Maximum*: `253` \n*Pattern*: `^([A-Za-z0-9]+[A-Za-z0-9-.]*)*[A-Za-z0-9-]*[A-Za-z0-9]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Domain", + "type": "string" + }, + "MountOptions": { + "$ref": "#/definitions/AWS::DataSync::LocationSMB.MountOptions", + "markdownDescription": "The mount options used by DataSync to access the SMB server\\. \n*Required*: No \n*Type*: [MountOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationsmb-mountoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MountOptions" + }, + "Password": { + "markdownDescription": "The password of the user who can mount the share and has the permissions to access files and folders in the SMB share\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `104` \n*Pattern*: `^.{0,104}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", + "type": "string" + }, + "ServerHostname": { + "markdownDescription": "The name of the SMB server\\. This value is the IP address or Domain Name Service \\(DNS\\) name of the SMB server\\. An agent that is installed on\\-premises uses this hostname to mount the SMB server in a network\\. \nThis name must either be DNS\\-compliant or must be an IP version 4 \\(IPv4\\) address\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `^(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9])$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServerHostname", + "type": "string" + }, + "Subdirectory": { + "markdownDescription": "The subdirectory in the SMB file system that is used to read data from the SMB source location or write data to the SMB destination\\. The SMB path should be a path that's exported by the SMB server, or a subdirectory of that path\\. The path should be such that it can be mounted by other SMB clients in your network\\. \n `Subdirectory` must be specified with forward slashes\\. For example, `/path/to/folder`\\.\nTo transfer all the data in the folder you specified, DataSync must have permissions to mount the SMB share, as well as to access all the data in that share\\. To ensure this, either make sure that the user name and password specified belongs to the user who can mount the share, and who has the appropriate permissions for all of the files and directories that you want DataSync to access, or use credentials of a member of the Backup Operators group to mount the share\\. Doing either one enables the agent to access the data\\. For the agent to access directories, you must additionally enable all execute access\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\$\\p{Zs}]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subdirectory", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The key\\-value pair that represents the tag that you want to add to the location\\. The value can be an empty string\\. We recommend using tags to name your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "User": { + "markdownDescription": "The user who can mount the share and has the permissions to access files and folders in the SMB share\\. \nFor information about choosing a user name that ensures sufficient permissions to files, folders, and metadata, see [user](https://docs.aws.amazon.com/datasync/latest/userguide/create-smb-location.html#SMBuser)\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `104` \n*Pattern*: `^[^\\x5B\\x5D\\\\/:;|=,+*?]{1,104}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The specific SMB version that you want DataSync to use to mount your SMB share\\. If you don't specify a version, DataSync defaults to `AUTOMATIC`\\. That is, DataSync automatically selects a version based on negotiation with the SMB server\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUTOMATIC | SMB2 | SMB3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon CloudWatch log group that is used to monitor and log events in the task\\. \nFor more information about how to use CloudWatch Logs with DataSync, see [Monitoring Your Task](https://docs.aws.amazon.com/datasync/latest/userguide/monitor-datasync.html#cloudwatchlogs) in the * AWS DataSync User Guide\\.* \nFor more information about these groups, see [Working with Log Groups and Log Streams](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) in the *Amazon CloudWatch Logs User Guide*\\. \n*Required*: No \n*Type*: String \n*Maximum*: `562` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):logs:[a-z\\-0-9]*:[0-9]{12}:log-group:([^:\\*]*)(:\\*)?$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogGroupArn", + "type": "string" + }, + "DestinationLocationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS storage resource's location\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationLocationArn", + "type": "string" + }, + "Excludes": { + "items": { + "$ref": "#/definitions/AWS::DataSync::Task.FilterRule" + }, + "markdownDescription": "A list of filter rules that determines which files to exclude from a task\\. The list should contain a single filter string that consists of the patterns to exclude\\. The patterns are delimited by \"\\|\" \\(that is, a pipe\\), for example, `\"/folder1|/folder2\"`\\. \n \n*Required*: No \n*Type*: List of [FilterRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-filterrule.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Excludes", + "type": "array" + }, + "Includes": { + "items": { + "$ref": "#/definitions/AWS::DataSync::Task.FilterRule" + }, + "markdownDescription": "A list of filter rules that determines which files to include when running a task\\. The pattern contains a single filter string that consists of the patterns to include\\. The patterns are delimited by \"\\|\" \\(that is, a pipe\\), for example, `\"/folder1|/folder2\"`\\. \n*Required*: No \n*Type*: List of [FilterRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-filterrule.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Includes", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of a task\\. This value is a text reference that is used to identify the task in the console\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[a-zA-Z0-9\\s+=._:@/-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Options": { + "$ref": "#/definitions/AWS::DataSync::Task.Options", + "markdownDescription": "The set of configuration options that control the behavior of a single execution of the task that occurs when you call `StartTaskExecution`\\. You can configure these options to preserve metadata such as user ID \\(UID\\) and group ID \\(GID\\), file permissions, data integrity verification, and so on\\. \nFor each individual task execution, you can override these options by specifying the `OverrideOptions` before starting the task execution\\. For more information, see the [StartTaskExecution](https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html) operation\\. \n*Required*: No \n*Type*: [Options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-options.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Options" + }, + "Schedule": { + "$ref": "#/definitions/AWS::DataSync::Task.TaskSchedule", + "markdownDescription": "Specifies a schedule used to periodically transfer files from a source to a destination location\\. The schedule should be specified in UTC time\\. For more information, see [Scheduling your task](https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html)\\. \n*Required*: No \n*Type*: [TaskSchedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-taskschedule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule" + }, + "SourceLocationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the source location for the task\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceLocationArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The key\\-value pair that represents the tag that you want to add to the resource\\. The value can be an empty string\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The type of filter rule to apply\\. AWS DataSync only supports the SIMPLE\\_PATTERN rule type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `SIMPLE_PATTERN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterType", + "type": "string" + }, + "Value": { + "markdownDescription": "A single filter string that consists of the patterns to include or exclude\\. The patterns are delimited by \"\\|\" \\(that is, a pipe\\), for example: `/folder1|/folder2` \n \n*Required*: No \n*Type*: String \n*Maximum*: `409600` \n*Pattern*: `^[^\\x00]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataSync::Task.Options": { + "additionalProperties": false, + "properties": { + "Atime": { + "markdownDescription": "A file metadata value that shows the last time that a file was accessed \\(that is, when the file was read or written to\\)\\. If you set `Atime` to `BEST_EFFORT`, AWS DataSync attempts to preserve the original `Atime` attribute on all source files \\(that is, the version before the PREPARING phase\\)\\. However, `Atime`'s behavior is not fully standard across platforms, so AWS DataSync can only do this on a best\\-effort basis\\. \nDefault value: `BEST_EFFORT` \n`BEST_EFFORT`: Attempt to preserve the per\\-file `Atime` value \\(recommended\\)\\. \n`NONE`: Ignore `Atime`\\. \nIf `Atime` is set to `BEST_EFFORT`, `Mtime` must be set to `PRESERVE`\\. \nIf `Atime` is set to `NONE`, `Mtime` must also be `NONE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BEST_EFFORT | NONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Atime", + "type": "string" + }, + "BytesPerSecond": { + "markdownDescription": "A value that limits the bandwidth used by AWS DataSync\\. For example, if you want AWS DataSync to use a maximum of 1 MB, set this value to `1048576` \\(=1024\\*1024\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BytesPerSecond", + "type": "number" + }, + "Gid": { + "markdownDescription": "The group ID \\(GID\\) of the file's owners\\. \nDefault value: `INT_VALUE` \n`INT_VALUE`: Preserve the integer value of the user ID \\(UID\\) and group ID \\(GID\\) \\(recommended\\)\\. \n`NAME`: Currently not supported\\. \n`NONE`: Ignore the UID and GID\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BOTH | INT_VALUE | NAME | NONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Gid", + "type": "string" + }, + "LogLevel": { + "markdownDescription": "A value that determines the type of logs that DataSync publishes to a log stream in the Amazon CloudWatch log group that you provide\\. For more information about providing a log group for DataSync, see [CloudWatchLogGroupArn](https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateTask.html#DataSync-CreateTask-request-CloudWatchLogGroupArn)\\. If set to `OFF`, no logs are published\\. `BASIC` publishes logs on errors for individual files transferred, and `TRANSFER` publishes logs for every file or object that is transferred and integrity checked\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BASIC | OFF | TRANSFER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogLevel", + "type": "string" + }, + "Mtime": { + "markdownDescription": "A value that indicates the last time that a file was modified \\(that is, a file was written to\\) before the PREPARING phase\\. This option is required for cases when you need to run the same task more than one time\\. \nDefault value: `PRESERVE` \n`PRESERVE`: Preserve original `Mtime` \\(recommended\\) \n `NONE`: Ignore `Mtime`\\. \nIf `Mtime` is set to `PRESERVE`, `Atime` must be set to `BEST_EFFORT`\\. \nIf `Mtime` is set to `NONE`, `Atime` must also be set to `NONE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | PRESERVE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mtime", + "type": "string" + }, + "ObjectTags": { + "type": "string" + }, + "OverwriteMode": { + "markdownDescription": "A value that determines whether files at the destination should be overwritten or preserved when copying files\\. If set to `NEVER` a destination file will not be replaced by a source file, even if the destination file differs from the source file\\. If you modify files in the destination and you sync the files, you can use this value to protect against overwriting those changes\\. \nSome storage classes have specific behaviors that can affect your S3 storage cost\\. For detailed information, see [Considerations when working with Amazon S3 storage classes in DataSync ](https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes) in the * AWS DataSync User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ALWAYS | NEVER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OverwriteMode", + "type": "string" + }, + "PosixPermissions": { + "markdownDescription": "A value that determines which users or groups can access a file for a specific purpose, such as reading, writing, or execution of the file\\. This option should be set only for Network File System \\(NFS\\), Amazon EFS, and Amazon S3 locations\\. For more information about what metadata is copied by DataSync, see [Metadata Copied by DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied)\\. \nDefault value: `PRESERVE` \n`PRESERVE`: Preserve POSIX\\-style permissions \\(recommended\\)\\. \n`NONE`: Ignore permissions\\. \n AWS DataSync can preserve extant permissions of a source location\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | PRESERVE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PosixPermissions", + "type": "string" + }, + "PreserveDeletedFiles": { + "markdownDescription": "A value that specifies whether files in the destination that don't exist in the source file system are preserved\\. This option can affect your storage costs\\. If your task deletes objects, you might incur minimum storage duration charges for certain storage classes\\. For detailed information, see [Considerations when working with Amazon S3 storage classes in DataSync ](https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes) in the * AWS DataSync User Guide*\\. \nDefault value: `PRESERVE` \n`PRESERVE`: Ignore destination files that aren't present in the source \\(recommended\\)\\. \n`REMOVE`: Delete destination files that aren't present in the source\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PRESERVE | REMOVE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreserveDeletedFiles", + "type": "string" + }, + "PreserveDevices": { + "markdownDescription": "A value that determines whether AWS DataSync should preserve the metadata of block and character devices in the source file system, and re\\-create the files with that device name and metadata on the destination\\. DataSync does not copy the contents of such devices, only the name and metadata\\. \n AWS DataSync can't sync the actual contents of such devices, because they are nonterminal and don't return an end\\-of\\-file \\(EOF\\) marker\\.\nDefault value: `NONE` \n`NONE`: Ignore special devices \\(recommended\\)\\. \n`PRESERVE`: Preserve character and block device metadata\\. This option isn't currently supported for Amazon EFS\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | PRESERVE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreserveDevices", + "type": "string" + }, + "SecurityDescriptorCopyFlags": { + "markdownDescription": "A value that determines which components of the SMB security descriptor are copied from source to destination objects\\. \nThis value is only used for transfers between SMB and Amazon FSx for Windows File Server locations, or between two Amazon FSx for Windows File Server locations\\. For more information about how DataSync handles metadata, see [How DataSync Handles Metadata and Special Files](https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html)\\. \nDefault value: `OWNER_DACL` \n `OWNER_DACL`: For each copied object, DataSync copies the following metadata: \n+ Object owner\\.\n+ NTFS discretionary access control lists \\(DACLs\\), which determine whether to grant access to an object\\.\nWhen you use option, DataSync does NOT copy the NTFS system access control lists \\(SACLs\\), which are used by administrators to log attempts to access a secured object\\. \n `OWNER_DACL_SACL`: For each copied object, DataSync copies the following metadata: \n+ Object owner\\.\n+ NTFS discretionary access control lists \\(DACLs\\), which determine whether to grant access to an object\\.\n+ NTFS system access control lists \\(SACLs\\), which are used by administrators to log attempts to access a secured object\\.\nCopying SACLs requires granting additional permissions to the Windows user that DataSync uses to access your SMB location\\. For information about choosing a user that ensures sufficient permissions to files, folders, and metadata, see [user](https://docs.aws.amazon.com/datasync/latest/userguide/create-smb-location.html#SMBuser)\\. \n`NONE`: None of the SMB security descriptor components are copied\\. Destination objects are owned by the user that was provided for accessing the destination location\\. DACLs and SACLs are set based on the destination server\u2019s configuration\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | OWNER_DACL | OWNER_DACL_SACL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityDescriptorCopyFlags", + "type": "string" + }, + "TaskQueueing": { + "markdownDescription": "A value that determines whether tasks should be queued before executing the tasks\\. If set to `ENABLED`, the tasks will be queued\\. The default is `ENABLED`\\. \nIf you use the same agent to run multiple tasks, you can enable the tasks to run in series\\. For more information, see [Queueing task executions](https://docs.aws.amazon.com/datasync/latest/userguide/run-task.html#queue-task-execution)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskQueueing", + "type": "string" + }, + "TransferMode": { + "markdownDescription": "A value that determines whether DataSync transfers only the data and metadata that differ between the source and the destination location, or whether DataSync transfers all the content from the source, without comparing it to the destination location\\. \n`CHANGED`: DataSync copies only data or metadata that is new or different from the source location to the destination location\\. \n`ALL`: DataSync copies all source location content to the destination, without comparing it to existing content on the destination\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ALL | CHANGED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransferMode", + "type": "string" + }, + "Uid": { + "markdownDescription": "The user ID \\(UID\\) of the file's owner\\. \nDefault value: `INT_VALUE` \n`INT_VALUE`: Preserve the integer value of the UID and group ID \\(GID\\) \\(recommended\\)\\. \n`NAME`: Currently not supported \n`NONE`: Ignore the UID and GID\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BOTH | INT_VALUE | NAME | NONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Uid", + "type": "string" + }, + "VerifyMode": { + "markdownDescription": "A value that determines whether a data integrity verification is performed at the end of a task execution after all data and metadata have been transferred\\. For more information, see [Configure task settings](https://docs.aws.amazon.com/datasync/latest/userguide/create-task.html)\\. \nDefault value: `POINT_IN_TIME_CONSISTENT` \n`ONLY_FILES_TRANSFERRED` \\(recommended\\): Perform verification only on files that were transferred\\. \n`POINT_IN_TIME_CONSISTENT`: Scan the entire source and entire destination at the end of the transfer to verify that the source and destination are fully synchronized\\. This option isn't supported when transferring to S3 Glacier or S3 Glacier Deep Archive storage classes\\. \n`NONE`: No additional verification is done at the end of the transfer, but all data transmissions are integrity\\-checked with checksum verification during the transfer\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | ONLY_FILES_TRANSFERRED | POINT_IN_TIME_CONSISTENT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VerifyMode", + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataSync::Task.TaskSchedule": { + "additionalProperties": false, + "properties": { + "ScheduleExpression": { + "markdownDescription": "A cron expression that specifies when AWS DataSync initiates a scheduled transfer from a source to a destination location\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^[a-zA-Z0-9\\ \\_\\*\\?\\,\\|\\^\\-\\/\\#\\s\\(\\)\\+]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The tag values to assign to the new behavior graph\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "Whether to send an invitation email to the member account\\. If set to true, the member account does not receive an invitation email\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableEmailNotification", + "type": "boolean" + }, + "GraphArn": { + "markdownDescription": "The ARN of the behavior graph to invite the account to contribute data to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GraphArn", + "type": "string" + }, + "MemberEmailAddress": { + "markdownDescription": "The root user email address of the invited account\\. If the email address provided is not the root user email address for the provided account, the invitation creation fails\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MemberEmailAddress", + "type": "string" + }, + "MemberId": { + "markdownDescription": "The AWS account identifier of the invited account \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MemberId", + "type": "string" + }, + "Message": { + "markdownDescription": "Customized text to include in the invitation email message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "A `NotificationChannelConfig` object that contains information about configured notification channels\\. \n*Required*: Yes \n*Type*: [NotificationChannelConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-notificationchannel-notificationchannelconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Config" + } + }, + "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", + "markdownDescription": "Information about a notification channel configured in DevOps Guru to send notifications when insights are created\\. \nIf you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications\\. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account\\. DevOps Guru only supports standard SNS topics\\. For more information, see [Permissions for cross account Amazon SNS topics](https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html)\\. \nIf you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications\\. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account\\. For more information, see Permissions for cross account Amazon SNS topics\\. \nIf you use an Amazon SNS topic that is encrypted by an AWS Key Management Service customer\\-managed key \\(CMK\\), then you must add permissions to the CMK\\. For more information, see [Permissions for AWS KMS\u2013encrypted Amazon SNS topics](https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html)\\. \n*Required*: No \n*Type*: [SnsChannelConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-notificationchannel-snschannelconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Sns" + } + }, + "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an Amazon Simple Notification Service topic\\. \n*Required*: No \n*Type*: String \n*Minimum*: `36` \n*Maximum*: `1024` \n*Pattern*: `^arn:aws[a-z0-9-]*:sns:[a-z0-9-]+:\\d{12}:[^:]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "Information about a filter used to specify which AWS resources are analyzed for anomalous behavior by DevOps Guru\\. \n*Required*: Yes \n*Type*: [ResourceCollectionFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-resourcecollection-resourcecollectionfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "An array of CloudFormation stack names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StackNames", + "type": "array" + } + }, + "type": "object" + }, + "AWS::DevOpsGuru::ResourceCollection.ResourceCollectionFilter": { + "additionalProperties": false, + "properties": { + "CloudFormation": { + "$ref": "#/definitions/AWS::DevOpsGuru::ResourceCollection.CloudFormationCollectionFilter", + "markdownDescription": "Information about AWS CloudFormation stacks\\. You can use up to 500 stacks to specify which AWS resources in your account to analyze\\. For more information, see [Stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html) in the * AWS CloudFormation User Guide*\\. \n*Required*: No \n*Type*: [CloudFormationCollectionFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-resourcecollection-cloudformationcollectionfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudFormation" + }, + "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": { + "markdownDescription": "Specifies an alias for a directory and assigns the alias to the directory\\. The alias is used to construct the access URL for the directory, such as `http://.awsapps.com`\\. By default, AWS CloudFormation does not create an alias\\. \nAfter an alias has been created, it cannot be deleted or reused, so this operation should only be used when absolutely necessary\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CreateAlias", + "type": "boolean" + }, + "Edition": { + "markdownDescription": "AWS Managed Microsoft AD is available in two editions: `Standard` and `Enterprise`\\. `Enterprise` is the default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Enterprise | Standard` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Edition", + "type": "string" + }, + "EnableSso": { + "markdownDescription": "Whether to enable single sign\\-on for a Microsoft Active Directory in AWS\\. Single sign\\-on allows users in your directory to access certain AWS services from a computer joined to the directory without having to enter their credentials separately\\. If you don't specify a value, AWS CloudFormation disables single sign\\-on by default\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableSso", + "type": "boolean" + }, + "Name": { + "markdownDescription": "The fully qualified domain name for the AWS Managed Microsoft AD directory, such as `corp.example.com`\\. This name will resolve inside your VPC only\\. It does not need to be publicly resolvable\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^([a-zA-Z0-9]+[\\\\.-])+([a-zA-Z0-9])+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Password": { + "markdownDescription": "The password for the default administrative user named `Admin`\\. \nIf you need to change the password for the administrator account, see the [ResetUserPassword](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_ResetUserPassword.html) API call in the *AWS Directory Service API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `(?=^.{8,64}$)((?=.*\\d)(?=.*[A-Z])(?=.*[a-z])|(?=.*\\d)(?=.*[^A-Za-z0-9\\s])(?=.*[a-z])|(?=.*[^A-Za-z0-9\\s])(?=.*[A-Z])(?=.*[a-z])|(?=.*\\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9\\s]))^.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Password", + "type": "string" + }, + "ShortName": { + "markdownDescription": "The NetBIOS name for your domain, such as `CORP`\\. If you don't specify a NetBIOS name, it will default to the first part of your directory DNS\\. For example, `CORP` for the directory DNS `corp.example.com`\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[^\\\\/:*?\"<>|.]+[^\\\\/:*?\"<>|]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ShortName", + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/AWS::DirectoryService::MicrosoftAD.VpcSettings", + "markdownDescription": "Specifies the VPC settings of the Microsoft AD directory server in AWS\\. \n*Required*: Yes \n*Type*: [VpcSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-microsoftad-vpcsettings.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "The identifiers of the subnets for the directory servers\\. The two subnets must be in different Availability Zones\\. AWS Directory Service specifies a directory server and a DNS server in each of these subnets\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "type": "array" + }, + "VpcId": { + "markdownDescription": "The identifier of the VPC in which to create the directory\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^(vpc-[0-9a-f]{8}|vpc-[0-9a-f]{17})$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "If set to `true`, specifies an alias for a directory and assigns the alias to the directory\\. The alias is used to construct the access URL for the directory, such as `http://.awsapps.com`\\. By default, this property is set to `false`\\. \nAfter an alias has been created, it cannot be deleted or reused, so this operation should only be used when absolutely necessary\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CreateAlias", + "type": "boolean" + }, + "Description": { + "markdownDescription": "A description for the directory\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^([a-zA-Z0-9_])[\\\\a-zA-Z0-9_@#%*+=:?./!\\s-]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "EnableSso": { + "markdownDescription": "Whether to enable single sign\\-on for a directory\\. If you don't specify a value, AWS CloudFormation disables single sign\\-on by default\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableSso", + "type": "boolean" + }, + "Name": { + "markdownDescription": "The fully qualified name for the directory, such as `corp.example.com`\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^([a-zA-Z0-9]+[\\\\.-])+([a-zA-Z0-9])+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Password": { + "markdownDescription": "The password for the directory administrator\\. The directory creation process creates a directory administrator account with the user name `Administrator` and this password\\. \nIf you need to change the password for the administrator account, see the [ResetUserPassword](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_ResetUserPassword.html) API call in the *AWS Directory Service API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `(?=^.{8,64}$)((?=.*\\d)(?=.*[A-Z])(?=.*[a-z])|(?=.*\\d)(?=.*[^A-Za-z0-9\\s])(?=.*[a-z])|(?=.*[^A-Za-z0-9\\s])(?=.*[A-Z])(?=.*[a-z])|(?=.*\\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9\\s]))^.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Password", + "type": "string" + }, + "ShortName": { + "markdownDescription": "The NetBIOS name of the directory, such as `CORP`\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[^\\\\/:*?\"<>|.]+[^\\\\/:*?\"<>|]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ShortName", + "type": "string" + }, + "Size": { + "markdownDescription": "The size of the directory\\. For valid values, see [CreateDirectory](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_CreateDirectory.html) in the *AWS Directory Service API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Large | Small` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Size", + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/AWS::DirectoryService::SimpleAD.VpcSettings", + "markdownDescription": "A [DirectoryVpcSettings](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_DirectoryVpcSettings.html) object that contains additional information for the operation\\. \n*Required*: Yes \n*Type*: [VpcSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-simplead-vpcsettings.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "The identifiers of the subnets for the directory servers\\. The two subnets must be in different Availability Zones\\. AWS Directory Service specifies a directory server and a DNS server in each of these subnets\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "type": "array" + }, + "VpcId": { + "markdownDescription": "The identifier of the VPC in which to create the directory\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^(vpc-[0-9a-f]{8}|vpc-[0-9a-f]{17})$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "A list of Amazon EC2 Availability Zones that instances in the cluster can be created in\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZones", + "type": "array" + }, + "BackupRetentionPeriod": { + "markdownDescription": "The number of days for which automated backups are retained\\. You must specify a minimum value of 1\\. \nDefault: 1 \nConstraints: \n+ Must be a value from 1 to 35\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackupRetentionPeriod", + "type": "number" + }, + "CopyTagsToSnapshot": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CopyTagsToSnapshot", + "type": "boolean" + }, + "DBClusterIdentifier": { + "markdownDescription": "The cluster identifier\\. This parameter is stored as a lowercase string\\. \nConstraints: \n+ Must contain from 1 to 63 letters, numbers, or hyphens\\. \n+ The first character must be a letter\\.\n+ Cannot end with a hyphen or contain two consecutive hyphens\\. \nExample: `my-cluster` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBClusterIdentifier", + "type": "string" + }, + "DBClusterParameterGroupName": { + "markdownDescription": "The name of the cluster parameter group to associate with this cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBClusterParameterGroupName", + "type": "string" + }, + "DBSubnetGroupName": { + "markdownDescription": "A subnet group to associate with this cluster\\. \nConstraints: Must match the name of an existing `DBSubnetGroup`\\. Must not be default\\. \nExample: `mySubnetgroup` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBSubnetGroupName", + "type": "string" + }, + "DeletionProtection": { + "markdownDescription": "Protects clusters from being accidentally deleted\\. If enabled, the cluster cannot be deleted unless it is modified and `DeletionProtection` is disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeletionProtection", + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of log types that need to be enabled for exporting to Amazon CloudWatch Logs\\. You can enable audit logs or profiler logs\\. For more information, see [Auditing Amazon DocumentDB Events](https://docs.aws.amazon.com/documentdb/latest/developerguide/event-auditing.html) and [Profiling Amazon DocumentDB Operations](https://docs.aws.amazon.com/documentdb/latest/developerguide/profiling.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableCloudwatchLogsExports", + "type": "array" + }, + "EngineVersion": { + "markdownDescription": "The version number of the database engine to use\\. The `--engine-version` will default to the latest major engine version\\. For production workloads, we recommend explicitly declaring this parameter with the intended major engine version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineVersion", + "type": "string" + }, + "KmsKeyId": { + "markdownDescription": "The AWS KMS key identifier for an encrypted cluster\\. \nThe AWS KMS key identifier is the Amazon Resource Name \\(ARN\\) for the AWS KMS encryption key\\. If you are creating a cluster using the same AWS account that owns the AWS KMS encryption key that is used to encrypt the new cluster, you can use the AWS KMS key alias instead of the ARN for the AWS KMS encryption key\\. \nIf an encryption key is not specified in `KmsKeyId`: \n+ If the `StorageEncrypted` parameter is `true`, Amazon DocumentDB uses your default encryption key\\. \n AWS KMS creates the default encryption key for your AWS account\\. Your AWS account has a different default encryption key for each AWS Regions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + }, + "MasterUserPassword": { + "markdownDescription": "The password for the master database user\\. This password can contain any printable ASCII character except forward slash \\(/\\), double quote \\(\"\\), or the \"at\" symbol \\(@\\)\\. \nConstraints: Must contain from 8 to 100 characters\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MasterUserPassword", + "type": "string" + }, + "MasterUsername": { + "markdownDescription": "The name of the master user for the cluster\\. \nConstraints: \n+ Must be from 1 to 63 letters or numbers\\.\n+ The first character must be a letter\\.\n+ Cannot be a reserved word for the chosen database engine\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MasterUsername", + "type": "string" + }, + "Port": { + "markdownDescription": "Specifies the port that the database engine is listening on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + }, + "PreferredBackupWindow": { + "markdownDescription": "The daily time range during which automated backups are created if automated backups are enabled using the `BackupRetentionPeriod` parameter\\. \nThe default is a 30\\-minute window selected at random from an 8\\-hour block of time for each AWS Region\\. \nConstraints: \n+ Must be in the format `hh24:mi-hh24:mi`\\.\n+ Must be in Universal Coordinated Time \\(UTC\\)\\.\n+ Must not conflict with the preferred maintenance window\\. \n+ Must be at least 30 minutes\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredBackupWindow", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "markdownDescription": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time \\(UTC\\)\\. \nFormat: `ddd:hh24:mi-ddd:hh24:mi` \nThe default is a 30\\-minute window selected at random from an 8\\-hour block of time for each AWS Region, occurring on a random day of the week\\. \nValid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun \nConstraints: Minimum 30\\-minute window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "type": "string" + }, + "SnapshotIdentifier": { + "markdownDescription": "The identifier for the snapshot or cluster snapshot to restore from\\. \nYou can use either the name or the Amazon Resource Name \\(ARN\\) to specify a cluster snapshot\\. However, you can use only the ARN to specify a snapshot\\. \nConstraints: \n+ Must match the identifier of an existing snapshot\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotIdentifier", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "markdownDescription": "Specifies whether the cluster is encrypted\\. \n*Required*: Conditional \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StorageEncrypted", + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to be assigned to the cluster\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of EC2 VPC security groups to associate with this cluster\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSecurityGroupIds", + "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": { + "markdownDescription": "The description for the cluster parameter group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "Family": { + "markdownDescription": "The cluster parameter group family name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Family", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the DB cluster parameter group\\. \nConstraints: \n+ Must not match the name of an existing `DBClusterParameterGroup`\\.\nThis value is stored as a lowercase string\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Parameters": { + "markdownDescription": "Provides a list of parameters for the cluster parameter group\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to be assigned to the cluster parameter group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "This parameter does not apply to Amazon DocumentDB\\. Amazon DocumentDB does not perform minor version upgrades regardless of the value set\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoMinorVersionUpgrade", + "type": "boolean" + }, + "AvailabilityZone": { + "markdownDescription": "The Amazon EC2 Availability Zone that the instance is created in\\. \nDefault: A random, system\\-chosen Availability Zone in the endpoint's AWS Region\\. \nExample: `us-east-1d` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", + "type": "string" + }, + "DBClusterIdentifier": { + "markdownDescription": "The identifier of the cluster that the instance will belong to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBClusterIdentifier", + "type": "string" + }, + "DBInstanceClass": { + "markdownDescription": "The compute and memory capacity of the instance; for example, `db.m4.large`\\. If you change the class of an instance there can be some interruption in the cluster's service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBInstanceClass", + "type": "string" + }, + "DBInstanceIdentifier": { + "markdownDescription": "The instance identifier\\. This parameter is stored as a lowercase string\\. \nConstraints: \n+ Must contain from 1 to 63 letters, numbers, or hyphens\\.\n+ The first character must be a letter\\.\n+ Cannot end with a hyphen or contain two consecutive hyphens\\.\nExample: `mydbinstance` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBInstanceIdentifier", + "type": "string" + }, + "EnablePerformanceInsights": { + "type": "boolean" + }, + "PreferredMaintenanceWindow": { + "markdownDescription": "The time range each week during which system maintenance can occur, in Universal Coordinated Time \\(UTC\\)\\. \n Format: `ddd:hh24:mi-ddd:hh24:mi` \nThe default is a 30\\-minute window selected at random from an 8\\-hour block of time for each AWS Region, occurring on a random day of the week\\. \nValid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun \nConstraints: Minimum 30\\-minute window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to be assigned to the instance\\. You can assign up to 10 tags to an instance\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The description for the subnet group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBSubnetGroupDescription", + "type": "string" + }, + "DBSubnetGroupName": { + "markdownDescription": "The name for the subnet group\\. This value is stored as a lowercase string\\. \nConstraints: Must contain no more than 255 letters, numbers, periods, underscores, spaces, or hyphens\\. Must not be default\\. \nExample: `mySubnetgroup` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBSubnetGroupName", + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The Amazon EC2 subnet IDs for the subnet group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to be assigned to the subnet group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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" + }, + "markdownDescription": "A list of attributes that describe the key schema for the global table and indexes\\. \n*Required*: Yes \n*Type*: List of [AttributeDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-attributedefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeDefinitions", + "type": "array" + }, + "BillingMode": { + "markdownDescription": "Specifies how you are charged for read and write throughput and how you manage capacity\\. Valid values are: \n+ `PAY_PER_REQUEST`\n+ `PROVISIONED`\nAll replicas in your global table will have the same billing mode\\. If you use `PROVISIONED` billing mode, you must provide an auto scaling configuration via the `WriteProvisionedThroughputSettings` property\\. The default value of this property is `PROVISIONED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PAY_PER_REQUEST | PROVISIONED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BillingMode", + "type": "string" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.GlobalSecondaryIndex" + }, + "markdownDescription": "Global secondary indexes to be created on the global table\\. You can create up to 20 global secondary indexes\\. Each replica in your global table will have the same global secondary index settings\\. You can only create or delete one global secondary index in a single stack operation\\. \nSince the backfilling of an index could take a long time, CloudFormation does not wait for the index to become active\\. If a stack operation rolls back, CloudFormation might not delete an index that has been added\\. In that case, you will need to delete the index manually\\. \n*Required*: No \n*Type*: List of [GlobalSecondaryIndex](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-globalsecondaryindex.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlobalSecondaryIndexes", + "type": "array" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.KeySchema" + }, + "markdownDescription": "Specifies the attributes that make up the primary key for the table\\. The attributes in the `KeySchema` property must also be defined in the `AttributeDefinitions` property\\. \n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeySchema", + "type": "array" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.LocalSecondaryIndex" + }, + "markdownDescription": "Local secondary indexes to be created on the table\\. You can create up to five local secondary indexes\\. Each index is scoped to a given hash key value\\. The size of each hash key can be up to 10 gigabytes\\. Each replica in your global table will have the same local secondary index settings\\. \n*Required*: No \n*Type*: List of [LocalSecondaryIndex](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-localsecondaryindex.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalSecondaryIndexes", + "type": "array" + }, + "Replicas": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReplicaSpecification" + }, + "markdownDescription": "Specifies the list of replicas for your global table\\. The list must contain at least one element, the region where the stack defining the global table is deployed\\. For example, if you define your table in a stack deployed to us\\-east\\-1, you must have an entry in `Replicas` with the region us\\-east\\-1\\. You cannot remove the replica in the stack region\\. \nAdding a replica might take a few minutes for an empty table, or up to several hours for large tables\\. If you want to add or remove a replica, we recommend submitting an `UpdateStack` operation containing only that change\\. \nIf you add or delete a replica during an update, we recommend that you don't update any other resources\\. If your stack fails to update and is rolled back while adding a new replica, you might need to manually delete the replica\\.\nYou can create a new global table with as many replicas as needed\\. You can add or remove replicas after table creation, but you can only add or remove a single replica in each update\\. \n*Required*: Yes \n*Type*: List of [ReplicaSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Replicas", + "type": "array" + }, + "SSESpecification": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.SSESpecification", + "markdownDescription": "Specifies the settings to enable server\\-side encryption\\. These settings will be applied to all replicas\\. If you plan to use customer\\-managed KMS keys, you must provide a key for each replica using the `ReplicaSpecification.ReplicaSSESpecification` property\\. \n*Required*: No \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-ssespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SSESpecification" + }, + "StreamSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.StreamSpecification", + "markdownDescription": "Specifies the streams settings on your global table\\. You must provide a value for this property if your global table contains more than one replica\\. You can only change the streams settings if your global table has only one replica\\. \n*Required*: No \n*Type*: [StreamSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-streamspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamSpecification" + }, + "TableName": { + "markdownDescription": "A name for the global table\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID as the table name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TableName", + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.TimeToLiveSpecification", + "markdownDescription": "Specifies the time to live \\(TTL\\) settings for the table\\. This setting will be applied to all replicas\\. \n*Required*: No \n*Type*: [TimeToLiveSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-timetolivespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.WriteProvisionedThroughputSettings", + "markdownDescription": "Specifies an auto scaling policy for write capacity\\. This policy will be applied to all replicas\\. This setting must be specified if `BillingMode` is set to `PROVISIONED`\\. \n*Required*: No \n*Type*: [WriteProvisionedThroughputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-writeprovisionedthroughputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A name for the attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeName", + "type": "string" + }, + "AttributeType": { + "markdownDescription": "The data type for the attribute, where: \n+ `S` \\- the attribute is of type String\n+ `N` \\- the attribute is of type Number\n+ `B` \\- the attribute is of type Binary\n*Required*: Yes \n*Type*: String \n*Allowed values*: `B | N | S` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeType", + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "markdownDescription": "The maximum provisioned capacity units for the global table\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacity", + "type": "number" + }, + "MinCapacity": { + "markdownDescription": "The minimum provisioned capacity units for the global table\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinCapacity", + "type": "number" + }, + "SeedCapacity": { + "markdownDescription": "When switching billing mode from `PAY_PER_REQUEST` to `PROVISIONED`, DynamoDB requires you to specify read and write capacity unit values for the table and for each global secondary index\\. These values will be applied to all replicas\\. The table will use these provisioned values until CloudFormation creates the autoscaling policies you configured in your template\\. CloudFormation cannot determine what capacity the table and its global secondary indexes will require in this time period, since they are application\\-dependent\\. \nIf you want to switch a table's billing mode from `PAY_PER_REQUEST` to `PROVISIONED`, you must specify a value for this property for each autoscaled resource\\. If you specify different values for the same resource in different regions, CloudFormation will use the highest value found in either the `SeedCapacity` or `ReadCapacityUnits` properties\\. For example, if your global secondary index `myGSI` has a `SeedCapacity` of 10 in us\\-east\\-1 and a fixed `ReadCapacityUnits` of 20 in eu\\-west\\-1, CloudFormation will initially set the read capacity for `myGSI` to 20\\. Note that if you disable `ScaleIn` for `myGSI` in us\\-east\\-1, its read capacity units might not be set back to 10\\. \nYou must also specify a value for `SeedCapacity` when you plan to switch a table's billing mode from `PROVISIONED` to `PAY_PER_REQUEST`, because CloudFormation might need to roll back the operation \\(reverting the billing mode to `PROVISIONED`\\) and this cannot succeed without specifying a value for `SeedCapacity`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SeedCapacity", + "type": "number" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.TargetTrackingScalingPolicyConfiguration", + "markdownDescription": "Defines a target tracking scaling policy\\. \n*Required*: Yes \n*Type*: [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-targettrackingscalingpolicyconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MaxCapacity", + "MinCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Indicates whether CloudWatch Contributor Insights are to be enabled \\(true\\) or disabled \\(false\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Allowed values*: `DISABLE | ENABLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "markdownDescription": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", + "title": "IndexName", + "type": "string" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.KeySchema" + }, + "markdownDescription": "The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", + "title": "KeySchema", + "type": "array" + }, + "Projection": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.Projection", + "markdownDescription": "Represents attributes that are copied \\(projected\\) from the table into the global secondary index\\. These are in addition to the primary key attributes and index key attributes, which are automatically projected\\. \n*Required*: Yes \n*Type*: [Projection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-projection.html) \n*Update requires*: Updates are not supported\\.", + "title": "Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.WriteProvisionedThroughputSettings", + "markdownDescription": "Defines write capacity settings for the global secondary index\\. You must specify a value for this property if the table's `BillingMode` is `PROVISIONED`\\. All replicas will have the same write capacity settings for this global secondary index\\. \n*Required*: No \n*Type*: [WriteProvisionedThroughputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-writeprovisionedthroughputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "KeySchema", + "Projection" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.KeySchema": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "markdownDescription": "The name of a key attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AttributeName", + "type": "string" + }, + "KeyType": { + "markdownDescription": "The role that this key attribute will assume: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `HASH | RANGE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyType", + "type": "string" + } + }, + "required": [ + "AttributeName", + "KeyType" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamArn": { + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "markdownDescription": "The name of the local secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", + "title": "IndexName", + "type": "string" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.KeySchema" + }, + "markdownDescription": "The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", + "title": "KeySchema", + "type": "array" + }, + "Projection": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.Projection", + "markdownDescription": "Represents attributes that are copied \\(projected\\) from the table into the local secondary index\\. These are in addition to the primary key attributes and index key attributes, which are automatically projected\\. \n*Required*: Yes \n*Type*: [Projection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-projection.html) \n*Update requires*: Updates are not supported\\.", + "title": "Projection" + } + }, + "required": [ + "IndexName", + "KeySchema", + "Projection" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "markdownDescription": "Indicates whether point in time recovery is enabled \\(true\\) or disabled \\(false\\) on the table\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PointInTimeRecoveryEnabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "markdownDescription": "Represents the non\\-key attribute names which will be projected into the index\\. \nFor local secondary indexes, the total count of `NonKeyAttributes` summed across all of the local secondary indexes, must not exceed 20\\. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NonKeyAttributes", + "type": "array" + }, + "ProjectionType": { + "markdownDescription": "The set of attributes that are projected into the index: \n+ `KEYS_ONLY` \\- Only the index and primary keys are projected into the index\\.\n+ `INCLUDE` \\- In addition to the attributes described in `KEYS_ONLY`, the secondary index will include other non\\-key attributes that you specify\\.\n+ `ALL` \\- All of the table attributes are projected into the index\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ALL | INCLUDE | KEYS_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProjectionType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.CapacityAutoScalingSettings", + "markdownDescription": "Specifies auto scaling settings for the replica table or global secondary index\\. \n*Required*: No \n*Type*: [CapacityAutoScalingSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-capacityautoscalingsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadCapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "markdownDescription": "Specifies a fixed read capacity for the replica table or global secondary index\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadCapacityUnits", + "type": "number" + } + }, + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ContributorInsightsSpecification", + "markdownDescription": "Updates the status for contributor insights for a specific table or index\\. CloudWatch Contributor Insights for DynamoDB graphs display the partition key and \\(if applicable\\) sort key of frequently accessed items and frequently throttled items in plaintext\\. If you require the use of AWS Key Management Service \\(KMS\\) to encrypt this table\u2019s partition key and sort key data with an AWS managed key or customer managed key, you should not enable CloudWatch Contributor Insights for DynamoDB for this table\\. \n*Required*: No \n*Type*: [ContributorInsightsSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-contributorinsightsspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContributorInsightsSpecification" + }, + "IndexName": { + "markdownDescription": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IndexName", + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReadProvisionedThroughputSettings", + "markdownDescription": "Allows you to specify the read capacity settings for a replica global secondary index when the `BillingMode` is set to `PROVISIONED`\\. \n*Required*: No \n*Type*: [ReadProvisionedThroughputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-readprovisionedthroughputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "markdownDescription": "The AWS KMS key that should be used for the AWS KMS encryption\\. To specify a key, use its key ID, Amazon Resource Name \\(ARN\\), alias name, or alias ARN\\. Note that you should only provide this parameter if the key is different from the default DynamoDB key `alias/aws/dynamodb`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KMSMasterKeyId", + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ContributorInsightsSpecification", + "markdownDescription": "The settings used to enable or disable CloudWatch Contributor Insights for the specified replica\\. When not specified, defaults to contributor insights disabled for the replica\\. \n*Required*: No \n*Type*: [ContributorInsightsSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-contributorinsightsspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContributorInsightsSpecification" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReplicaGlobalSecondaryIndexSpecification" + }, + "markdownDescription": "Defines additional settings for the global secondary indexes of this replica\\. \n*Required*: No \n*Type*: List of [ReplicaGlobalSecondaryIndexSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaglobalsecondaryindexspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlobalSecondaryIndexes", + "type": "array" + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.KinesisStreamSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.PointInTimeRecoverySpecification", + "markdownDescription": "The settings used to enable point in time recovery\\. When not specified, defaults to point in time recovery disabled for the replica\\. \n*Required*: No \n*Type*: [PointInTimeRecoverySpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-pointintimerecoveryspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReadProvisionedThroughputSettings", + "markdownDescription": "Defines read capacity settings for the replica table\\. \n*Required*: No \n*Type*: [ReadProvisionedThroughputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-readprovisionedthroughputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadProvisionedThroughputSettings" + }, + "Region": { + "markdownDescription": "The region in which this replica exists\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", + "type": "string" + }, + "SSESpecification": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReplicaSSESpecification", + "markdownDescription": "Allows you to specify a customer\\-managed key for the replica\\. When using customer\\-managed keys for server\\-side encryption, this property must have a value in all replicas\\. \n*Required*: No \n*Type*: [ReplicaSSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicassespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SSESpecification" + }, + "TableClass": { + "markdownDescription": "The table class of the specified table\\. Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `STANDARD | STANDARD_INFREQUENT_ACCESS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableClass", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this replica\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "markdownDescription": "Indicates whether server\\-side encryption is performed using an AWS managed key or an AWS owned key\\. If disabled \\(false\\) or not specified, server\\-side encryption uses an AWS owned key\\. If enabled \\(true\\), the server\\-side encryption type is set to KMS and an AWS managed key is used \\(AWS KMS charges apply\\)\\. If you choose to use KMS encryption, you can also use customer managed KMS keys by specifying them in the `ReplicaSpecification.SSESpecification` object\\. You cannot mix AWS managed and customer managed KMS keys\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SSEEnabled", + "type": "boolean" + }, + "SSEType": { + "markdownDescription": "Server\\-side encryption type\\. The only supported value is: \n+ `KMS` \\- Server\\-side encryption that uses AWS Key Management Service\\. The key is stored in your account and is managed by AWS KMS \\(AWS KMS charges apply\\)\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `AES256 | KMS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SSEType", + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "markdownDescription": "When an item in the table is modified, `StreamViewType` determines what information is written to the stream for this table\\. Valid values for `StreamViewType` are: \n+ `KEYS_ONLY` \\- Only the key attributes of the modified item are written to the stream\\.\n+ `NEW_IMAGE` \\- The entire item, as it appears after it was modified, is written to the stream\\.\n+ `OLD_IMAGE` \\- The entire item, as it appeared before it was modified, is written to the stream\\.\n+ `NEW_AND_OLD_IMAGES` \\- Both the new and the old item images of the item are written to the stream\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `KEYS_ONLY | NEW_AND_OLD_IMAGES | NEW_IMAGE | OLD_IMAGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamViewType", + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "markdownDescription": "Indicates whether scale in by the target tracking scaling policy is disabled\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableScaleIn", + "type": "boolean" + }, + "ScaleInCooldown": { + "markdownDescription": "The amount of time, in seconds, after a scale\\-in activity completes before another scale\\-in activity can start\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScaleInCooldown", + "type": "number" + }, + "ScaleOutCooldown": { + "markdownDescription": "The amount of time, in seconds, after a scale\\-out activity completes before another scale\\-out activity can start\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScaleOutCooldown", + "type": "number" + }, + "TargetValue": { + "markdownDescription": "Defines a target value for the scaling policy\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetValue", + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "markdownDescription": "The name of the attribute used to store the expiration time for items in the table\\. \nCurrently, you cannot directly change the attribute name used to evaluate time to live\\. In order to do so, you must first disable time to live, and then re\\-enable it with the new attribute name\\. It can take up to one hour for changes to time to live to take effect\\. If you attempt to modify time to live within that time window, your stack operation might be delayed\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeName", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Indicates whether TTL is to be enabled \\(true\\) or disabled \\(false\\) on the table\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.CapacityAutoScalingSettings", + "markdownDescription": "Specifies auto scaling settings for the replica table or global secondary index\\. \n*Required*: No \n*Type*: [CapacityAutoScalingSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-capacityautoscalingsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WriteCapacityAutoScalingSettings" + } + }, + "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" + }, + "markdownDescription": "A list of attributes that describe the key schema for the table and indexes\\. \nThis property is required to create a DynamoDB table\\. \nUpdate requires: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)\\. Replacement if you edit an existing AttributeDefinition\\. \n*Required*: Conditional \n*Type*: List of [AttributeDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "AttributeDefinitions", + "type": "array" + }, + "BillingMode": { + "markdownDescription": "Specify how you are charged for read and write throughput and how you manage capacity\\. \nValid values include: \n+ `PROVISIONED` \\- We recommend using `PROVISIONED` for predictable workloads\\. `PROVISIONED` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual)\\.\n+ `PAY_PER_REQUEST` \\- We recommend using `PAY_PER_REQUEST` for unpredictable workloads\\. `PAY_PER_REQUEST` sets the billing mode to [On\\-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand)\\.\nIf not specified, the default is `PROVISIONED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PAY_PER_REQUEST | PROVISIONED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BillingMode", + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ContributorInsightsSpecification", + "markdownDescription": "The settings used to enable or disable CloudWatch Contributor Insights for the specified table\\. \n*Required*: No \n*Type*: [ContributorInsightsSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-contributorinsightsspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContributorInsightsSpecification" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.GlobalSecondaryIndex" + }, + "markdownDescription": "Global secondary indexes to be created on the table\\. You can create up to 20 global secondary indexes\\. \nIf you update a table to include a new global secondary index, AWS CloudFormation initiates the index creation and then proceeds with the stack update\\. AWS CloudFormation doesn't wait for the index to complete creation because the backfilling phase can take a long time, depending on the size of the table\\. You can't use the index or update the table until the index's status is `ACTIVE`\\. You can track its status by using the DynamoDB [DescribeTable](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/describe-table.html) command\\. \nIf you add or delete an index during an update, we recommend that you don't update any other resources\\. If your stack fails to update and is rolled back while adding a new index, you must manually delete the index\\. \nUpdates are not supported\\. The following are exceptions: \n+ If you update either the contributor insights specification or the provisioned throughput values of global secondary indexes, you can update the table without interruption\\.\n+ You can delete or add one global secondary index without interruption\\. If you do both in the same update \\(for example, by changing the index's logical ID\\), the update fails\\.\n*Required*: No \n*Type*: List of [GlobalSecondaryIndex](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlobalSecondaryIndexes", + "type": "array" + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ImportSourceSpecification" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" + }, + "markdownDescription": "Specifies the attributes that make up the primary key for the table\\. The attributes in the `KeySchema` property must also be defined in the `AttributeDefinitions` property\\. \n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeySchema", + "type": "array" + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.KinesisStreamSpecification", + "markdownDescription": "The Kinesis Data Streams configuration for the specified table\\. \n*Required*: No \n*Type*: [KinesisStreamSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-kinesisstreamspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.LocalSecondaryIndex" + }, + "markdownDescription": "Local secondary indexes to be created on the table\\. You can create up to 5 local secondary indexes\\. Each index is scoped to a given hash key value\\. The size of each hash key can be up to 10 gigabytes\\. \n*Required*: No \n*Type*: List of [LocalSecondaryIndex](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-lsi.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalSecondaryIndexes", + "type": "array" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.PointInTimeRecoverySpecification", + "markdownDescription": "The settings used to enable point in time recovery\\. \n*Required*: No \n*Type*: [PointInTimeRecoverySpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-pointintimerecoveryspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput", + "markdownDescription": "Throughput for the specified table, which consists of values for `ReadCapacityUnits` and `WriteCapacityUnits`\\. For more information about the contents of a provisioned throughput structure, see [Amazon DynamoDB Table ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html)\\. \nIf you set `BillingMode` as `PROVISIONED`, you must specify this property\\. If you set `BillingMode` as `PAY_PER_REQUEST`, you cannot specify this property\\. \n*Required*: Conditional \n*Type*: [ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisionedThroughput" + }, + "SSESpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.SSESpecification", + "markdownDescription": "Specifies the settings to enable server\\-side encryption\\. \n*Required*: No \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "SSESpecification" + }, + "StreamSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.StreamSpecification", + "markdownDescription": "The settings for the DynamoDB table stream, which capture changes to items stored in the table\\. \n*Required*: No \n*Type*: [StreamSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-streamspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamSpecification" + }, + "TableClass": { + "markdownDescription": "The table class of the new table\\. Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `STANDARD | STANDARD_INFREQUENT_ACCESS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableClass", + "type": "string" + }, + "TableName": { + "markdownDescription": "A name for the table\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the table name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TableName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.TimeToLiveSpecification", + "markdownDescription": "Specifies the Time to Live \\(TTL\\) settings for the table\\. \nFor detailed information about the limits in DynamoDB, see [Limits in Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the Amazon DynamoDB Developer Guide\\. \n*Required*: No \n*Type*: [TimeToLiveSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-timetolivespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A name for the attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeName", + "type": "string" + }, + "AttributeType": { + "markdownDescription": "The data type for the attribute, where: \n+ `S` \\- the attribute is of type String\n+ `N` \\- the attribute is of type Number\n+ `B` \\- the attribute is of type Binary\n*Required*: Yes \n*Type*: String \n*Allowed values*: `B | N | S` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeType", + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Indicates whether CloudWatch Contributor Insights are to be enabled \\(true\\) or disabled \\(false\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Allowed values*: `DISABLE | ENABLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "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", + "markdownDescription": "The settings used to enable or disable CloudWatch Contributor Insights for the specified global secondary index\\. \n*Required*: No \n*Type*: [ContributorInsightsSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-contributorinsightsspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContributorInsightsSpecification" + }, + "IndexName": { + "markdownDescription": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", + "title": "IndexName", + "type": "string" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" + }, + "markdownDescription": "The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", + "title": "KeySchema", + "type": "array" + }, + "Projection": { + "$ref": "#/definitions/AWS::DynamoDB::Table.Projection", + "markdownDescription": "Represents attributes that are copied \\(projected\\) from the table into the global secondary index\\. These are in addition to the primary key attributes and index key attributes, which are automatically projected\\. \n*Required*: Yes \n*Type*: [Projection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-projectionobject.html) \n*Update requires*: Updates are not supported\\.", + "title": "Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput", + "markdownDescription": "Represents the provisioned throughput settings for the specified global secondary index\\. \nFor current minimum and maximum provisioned throughput values, see [Service, Account, and Table Quotas](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the *Amazon DynamoDB Developer Guide*\\. \n*Required*: No \n*Type*: [ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of a key attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeName", + "type": "string" + }, + "KeyType": { + "markdownDescription": "The role that this key attribute will assume: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `HASH | RANGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyType", + "type": "string" + } + }, + "required": [ + "AttributeName", + "KeyType" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamArn": { + "markdownDescription": "The ARN for a specific Kinesis data stream\\. \nLength Constraints: Minimum length of 37\\. Maximum length of 1024\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `37` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamArn", + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "markdownDescription": "The name of the local secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", + "title": "IndexName", + "type": "string" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" + }, + "markdownDescription": "The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", + "title": "KeySchema", + "type": "array" + }, + "Projection": { + "$ref": "#/definitions/AWS::DynamoDB::Table.Projection", + "markdownDescription": "Represents attributes that are copied \\(projected\\) from the table into the local secondary index\\. These are in addition to the primary key attributes and index key attributes, which are automatically projected\\. \n*Required*: Yes \n*Type*: [Projection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-projectionobject.html) \n*Update requires*: Updates are not supported\\.", + "title": "Projection" + } + }, + "required": [ + "IndexName", + "KeySchema", + "Projection" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "markdownDescription": "Indicates whether point in time recovery is enabled \\(true\\) or disabled \\(false\\) on the table\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PointInTimeRecoveryEnabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::DynamoDB::Table.Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "markdownDescription": "Represents the non\\-key attribute names which will be projected into the index\\. \nFor local secondary indexes, the total count of `NonKeyAttributes` summed across all of the local secondary indexes, must not exceed 20\\. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NonKeyAttributes", + "type": "array" + }, + "ProjectionType": { + "markdownDescription": "The set of attributes that are projected into the index: \n+ `KEYS_ONLY` \\- Only the index and primary keys are projected into the index\\.\n+ `INCLUDE` \\- In addition to the attributes described in `KEYS_ONLY`, the secondary index will include other non\\-key attributes that you specify\\.\n+ `ALL` \\- All of the table attributes are projected into the index\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ALL | INCLUDE | KEYS_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProjectionType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::DynamoDB::Table.ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "markdownDescription": "The maximum number of strongly consistent reads consumed per second before DynamoDB returns a `ThrottlingException`\\. For more information, see [Specifying Read and Write Requirements](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput) in the *Amazon DynamoDB Developer Guide*\\. \nIf read/write capacity mode is `PAY_PER_REQUEST` the value is set to 0\\. \n*Required*: Yes \n*Type*: Long \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadCapacityUnits", + "type": "number" + }, + "WriteCapacityUnits": { + "markdownDescription": "The maximum number of writes consumed per second before DynamoDB returns a `ThrottlingException`\\. For more information, see [Specifying Read and Write Requirements](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput) in the *Amazon DynamoDB Developer Guide*\\. \nIf read/write capacity mode is `PAY_PER_REQUEST` the value is set to 0\\. \n*Required*: Yes \n*Type*: Long \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The AWS KMS key that should be used for the AWS KMS encryption\\. To specify a key, use its key ID, Amazon Resource Name \\(ARN\\), alias name, or alias ARN\\. Note that you should only provide this parameter if the key is different from the default DynamoDB key `alias/aws/dynamodb`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KMSMasterKeyId", + "type": "string" + }, + "SSEEnabled": { + "markdownDescription": "Indicates whether server\\-side encryption is done using an AWS managed key or an AWS owned key\\. If enabled \\(true\\), server\\-side encryption type is set to `KMS` and an AWS managed key is used \\(AWS KMS charges apply\\)\\. If disabled \\(false\\) or not specified, server\\-side encryption is set to AWS owned key\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SSEEnabled", + "type": "boolean" + }, + "SSEType": { + "markdownDescription": "Server\\-side encryption type\\. The only supported value is: \n+ `KMS` \\- Server\\-side encryption that uses AWS Key Management Service\\. The key is stored in your account and is managed by AWS KMS \\(AWS KMS charges apply\\)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SSEType", + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "markdownDescription": "When an item in the table is modified, `StreamViewType` determines what information is written to the stream for this table\\. Valid values for `StreamViewType` are: \n+ `KEYS_ONLY` \\- Only the key attributes of the modified item are written to the stream\\.\n+ `NEW_IMAGE` \\- The entire item, as it appears after it was modified, is written to the stream\\.\n+ `OLD_IMAGE` \\- The entire item, as it appeared before it was modified, is written to the stream\\.\n+ `NEW_AND_OLD_IMAGES` \\- Both the new and the old item images of the item are written to the stream\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `KEYS_ONLY | NEW_AND_OLD_IMAGES | NEW_IMAGE | OLD_IMAGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamViewType", + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "markdownDescription": "The name of the TTL attribute used to store the expiration time for items in the table\\. \nTo update this property, you must first disable TTL then enable TTL with the new attribute name\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeName", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Indicates whether TTL is to be enabled \\(true\\) or disabled \\(false\\) on the table\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Availability Zone in which to create the Capacity Reservation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", + "type": "string" + }, + "EbsOptimized": { + "markdownDescription": "Indicates whether the Capacity Reservation supports EBS\\-optimized instances\\. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance\\. This optimization isn't available with all instance types\\. Additional usage charges apply when using an EBS\\- optimized instance\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsOptimized", + "type": "boolean" + }, + "EndDate": { + "markdownDescription": "The date and time at which the Capacity Reservation expires\\. When a Capacity Reservation expires, the reserved capacity is released and you can no longer launch instances into it\\. The Capacity Reservation's state changes to `expired` when it reaches its end date and time\\. \nYou must provide an `EndDate` value if `EndDateType` is `limited`\\. Omit `EndDate` if `EndDateType` is `unlimited`\\. \nIf the `EndDateType` is `limited`, the Capacity Reservation is cancelled within an hour from the specified time\\. For example, if you specify 5/31/2019, 13:30:55, the Capacity Reservation is guaranteed to end between 13:30:55 and 14:30:55 on 5/31/2019\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndDate", + "type": "string" + }, + "EndDateType": { + "markdownDescription": "Indicates the way in which the Capacity Reservation ends\\. A Capacity Reservation can have one of the following end types: \n+ `unlimited` \\- The Capacity Reservation remains active until you explicitly cancel it\\. Do not provide an `EndDate` if the `EndDateType` is `unlimited`\\.\n+ `limited` \\- The Capacity Reservation expires automatically at a specified date and time\\. You must provide an `EndDate` value if the `EndDateType` value is `limited`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `limited | unlimited` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndDateType", + "type": "string" + }, + "EphemeralStorage": { + "markdownDescription": "*Deprecated\\.* \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EphemeralStorage", + "type": "boolean" + }, + "InstanceCount": { + "markdownDescription": "The number of instances for which to reserve capacity\\. \nValid range: 1 \\- 1000 \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceCount", + "type": "number" + }, + "InstanceMatchCriteria": { + "markdownDescription": "Indicates the type of instance launches that the Capacity Reservation accepts\\. The options include: \n+ `open` \\- The Capacity Reservation automatically matches all instances that have matching attributes \\(instance type, platform, and Availability Zone\\)\\. Instances that have matching attributes run in the Capacity Reservation automatically without specifying any additional parameters\\.\n+ `targeted` \\- The Capacity Reservation only accepts instances that have matching attributes \\(instance type, platform, and Availability Zone\\), and explicitly target the Capacity Reservation\\. This ensures that only permitted instances can use the reserved capacity\\. \nDefault: `open` \n*Required*: No \n*Type*: String \n*Allowed values*: `open | targeted` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceMatchCriteria", + "type": "string" + }, + "InstancePlatform": { + "markdownDescription": "The type of operating system for which to reserve capacity\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Linux with SQL Server Enterprise | Linux with SQL Server Standard | Linux with SQL Server Web | Linux/UNIX | Red Hat Enterprise Linux | RHEL with HA | RHEL with HA and SQL Server Enterprise | RHEL with HA and SQL Server Standard | RHEL with SQL Server Enterprise | RHEL with SQL Server Standard | RHEL with SQL Server Web | SUSE Linux | Windows | Windows with SQL Server | Windows with SQL Server Enterprise | Windows with SQL Server Standard | Windows with SQL Server Web` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstancePlatform", + "type": "string" + }, + "InstanceType": { + "markdownDescription": "The instance type for which to reserve capacity\\. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", + "type": "string" + }, + "OutPostArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Outpost on which to create the Capacity Reservation\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:outpost/op-[a-f0-9]{17}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OutPostArn", + "type": "string" + }, + "PlacementGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the cluster placement group in which to create the Capacity Reservation\\. For more information, see [ Capacity Reservations for cluster placement groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cr-cpg.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws([a-z-]+)?:ec2:[a-z\\d-]+:\\d{12}:placement-group/([^\\s].+[^\\s]){1,255}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlacementGroupArn", + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::CapacityReservation.TagSpecification" + }, + "markdownDescription": "The tags to apply to the Capacity Reservation during launch\\. \n*Required*: No \n*Type*: List of [TagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservation-tagspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TagSpecifications", + "type": "array" + }, + "Tenancy": { + "markdownDescription": "Indicates the tenancy of the Capacity Reservation\\. A Capacity Reservation can have one of the following tenancy settings: \n+ `default` \\- The Capacity Reservation is created on hardware that is shared with other AWS accounts\\.\n+ `dedicated` \\- The Capacity Reservation is created on single\\-tenant hardware that is dedicated to a single AWS account\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `dedicated | default` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The type of resource to tag\\. Specify `capacity-reservation`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `capacity-reservation | capacity-reservation-fleet | carrier-gateway | client-vpn-endpoint | coip-pool | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | instance-event-window | internet-gateway | ipam | ipam-pool | ipam-resource-discovery | ipam-resource-discovery-association | ipam-scope | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | launch-template | local-gateway | local-gateway-route-table | local-gateway-route-table-virtual-interface-group-association | local-gateway-route-table-vpc-association | local-gateway-virtual-interface | local-gateway-virtual-interface-group | natgateway | network-acl | network-insights-access-scope | network-insights-access-scope-analysis | network-insights-analysis | network-insights-path | network-interface | placement-group | prefix-list | replace-root-volume-task | reserved-instances | route-server | route-server-endpoint | route-server-peer | route-table | security-group | security-group-rule | snapshot | spot-fleet-request | spot-instances-request | subnet | subnet-cidr-reservation | traffic-mirror-filter | traffic-mirror-filter-rule | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-policy-table | transit-gateway-route-table | transit-gateway-route-table-announcement | verified-access-endpoint | verified-access-group | verified-access-instance | verified-access-policy | verified-access-trust-provider | volume | vpc | vpc-block-public-access-exclusion | vpc-endpoint | vpc-endpoint-connection | vpc-endpoint-connection-device-type | vpc-endpoint-service | vpc-endpoint-service-permission | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-connection-device-type | vpn-gateway` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceType", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to apply to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "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": { + "markdownDescription": "The strategy used by the Capacity Reservation Fleet to determine which of the specified instance types to use\\. Currently, only the `prioritized` allocation strategy is supported\\. For more information, see [ Allocation strategy](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#allocation-strategy) in the Amazon EC2 User Guide\\. \nValid values: `prioritized` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AllocationStrategy", + "type": "string" + }, + "EndDate": { + "markdownDescription": "The date and time at which the Capacity Reservation Fleet expires\\. When the Capacity Reservation Fleet expires, its state changes to `expired` and all of the Capacity Reservations in the Fleet expire\\. \nThe Capacity Reservation Fleet expires within an hour after the specified time\\. For example, if you specify `5/31/2019`, `13:30:55`, the Capacity Reservation Fleet is guaranteed to expire between `13:30:55` and `14:30:55` on `5/31/2019`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EndDate", + "type": "string" + }, + "InstanceMatchCriteria": { + "markdownDescription": "Indicates the type of instance launches that the Capacity Reservation Fleet accepts\\. All Capacity Reservations in the Fleet inherit this instance matching criteria\\. \nCurrently, Capacity Reservation Fleets support `open` instance matching criteria only\\. This means that instances that have matching attributes \\(instance type, platform, and Availability Zone\\) run in the Capacity Reservations automatically\\. Instances do not need to explicitly target a Capacity Reservation Fleet to use its reserved capacity\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `open` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceMatchCriteria", + "type": "string" + }, + "InstanceTypeSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::CapacityReservationFleet.InstanceTypeSpecification" + }, + "markdownDescription": "Information about the instance types for which to reserve the capacity\\. \n*Required*: No \n*Type*: List of [InstanceTypeSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-instancetypespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceTypeSpecifications", + "type": "array" + }, + "NoRemoveEndDate": { + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoRemoveEndDate", + "type": "boolean" + }, + "RemoveEndDate": { + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveEndDate", + "type": "boolean" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::CapacityReservationFleet.TagSpecification" + }, + "markdownDescription": "The tags to assign to the Capacity Reservation Fleet\\. The tags are automatically assigned to the Capacity Reservations in the Fleet\\. \n*Required*: No \n*Type*: List of [TagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-tagspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TagSpecifications", + "type": "array" + }, + "Tenancy": { + "markdownDescription": "Indicates the tenancy of the Capacity Reservation Fleet\\. All Capacity Reservations in the Fleet inherit this tenancy\\. The Capacity Reservation Fleet can have one of the following tenancy settings: \n+ `default` \\- The Capacity Reservation Fleet is created on hardware that is shared with other AWS accounts\\.\n+ `dedicated` \\- The Capacity Reservations are created on single\\-tenant hardware that is dedicated to a single AWS account\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `default` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tenancy", + "type": "string" + }, + "TotalTargetCapacity": { + "markdownDescription": "The total number of capacity units to be reserved by the Capacity Reservation Fleet\\. This value, together with the instance type weights that you assign to each instance type used by the Fleet determine the number of instances for which the Fleet reserves capacity\\. Both values are based on units that make sense for your workload\\. For more information, see [ Total target capacity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity) in the Amazon EC2 User Guide\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Availability Zone in which the Capacity Reservation Fleet reserves the capacity\\. A Capacity Reservation Fleet can't span Availability Zones\\. All instance type specifications that you specify for the Fleet must use the same Availability Zone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", + "type": "string" + }, + "AvailabilityZoneId": { + "markdownDescription": "The ID of the Availability Zone in which the Capacity Reservation Fleet reserves the capacity\\. A Capacity Reservation Fleet can't span Availability Zones\\. All instance type specifications that you specify for the Fleet must use the same Availability Zone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZoneId", + "type": "string" + }, + "EbsOptimized": { + "markdownDescription": "Indicates whether the Capacity Reservation Fleet supports EBS\\-optimized instances types\\. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance\\. This optimization isn't available with all instance types\\. Additional usage charges apply when using EBS\\-optimized instance types\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsOptimized", + "type": "boolean" + }, + "InstancePlatform": { + "markdownDescription": "The type of operating system for which the Capacity Reservation Fleet reserves capacity\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Linux with SQL Server Enterprise | Linux with SQL Server Standard | Linux with SQL Server Web | Linux/UNIX | Red Hat Enterprise Linux | RHEL with HA | RHEL with HA and SQL Server Enterprise | RHEL with HA and SQL Server Standard | RHEL with SQL Server Enterprise | RHEL with SQL Server Standard | RHEL with SQL Server Web | SUSE Linux | Windows | Windows with SQL Server | Windows with SQL Server Enterprise | Windows with SQL Server Standard | Windows with SQL Server Web` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstancePlatform", + "type": "string" + }, + "InstanceType": { + "markdownDescription": "The instance type for which the Capacity Reservation Fleet reserves capacity\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | mac1.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6ad.12xlarge | r6ad.16xlarge | r6ad.24xlarge | r6ad.2xlarge | r6ad.32xlarge | r6ad.48xlarge | r6ad.4xlarge | r6ad.8xlarge | r6ad.large | r6ad.metal | r6ad.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", + "type": "string" + }, + "Priority": { + "markdownDescription": "The priority to assign to the instance type\\. This value is used to determine which of the instance types specified for the Fleet should be prioritized for use\\. A lower value indicates a high priority\\. For more information, see [Instance type priority](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#instance-priority) in the Amazon EC2 User Guide\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Priority", + "type": "number" + }, + "Weight": { + "markdownDescription": "The number of capacity units provided by the specified instance type\\. This value, together with the total target capacity that you specify for the Fleet determine the number of instances for which the Fleet reserves capacity\\. Both values are based on units that make sense for your workload\\. For more information, see [Total target capacity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity) in the Amazon EC2 User Guide\\. \nValid Range: Minimum value of `0.001`\\. Maximum value of `99.999`\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Weight", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::CapacityReservationFleet.TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "markdownDescription": "The type of resource to tag on creation\\. Specify `capacity-reservation-fleet`\\. \nTo tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceType", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to apply to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "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" + }, + "markdownDescription": "The tags assigned to the carrier gateway\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VpcId": { + "markdownDescription": "The ID of the VPC associated with the carrier gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ID of the group to grant access to, for example, the Active Directory group or identity provider \\(IdP\\) group\\. Required if `AuthorizeAllGroups` is `false` or not specified\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccessGroupId", + "type": "string" + }, + "AuthorizeAllGroups": { + "markdownDescription": "Indicates whether to grant access to all clients\\. Specify `true` to grant all clients who successfully establish a VPN connection access to the network\\. Must be set to `true` if `AccessGroupId` is not specified\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthorizeAllGroups", + "type": "boolean" + }, + "ClientVpnEndpointId": { + "markdownDescription": "The ID of the Client VPN endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientVpnEndpointId", + "type": "string" + }, + "Description": { + "markdownDescription": "A brief description of the authorization rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "TargetNetworkCidr": { + "markdownDescription": "The IPv4 address range, in CIDR notation, of the network for which access is being authorized\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "Information about the authentication method to be used to authenticate clients\\. \n*Required*: Yes \n*Type*: List of [ClientAuthenticationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientauthenticationrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthenticationOptions", + "type": "array" + }, + "ClientCidrBlock": { + "markdownDescription": "The IPv4 address range, in CIDR notation, from which to assign client IP addresses\\. The address range cannot overlap with the local CIDR of the VPC in which the associated subnet is located, or the routes that you add manually\\. The address range cannot be changed after the Client VPN endpoint has been created\\. Client CIDR range must have a size of at least /22 and must not be greater than /12\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientCidrBlock", + "type": "string" + }, + "ClientConnectOptions": { + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ClientConnectOptions", + "markdownDescription": "The options for managing connection authorization for new client connections\\. \n*Required*: No \n*Type*: [ClientConnectOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientconnectoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientConnectOptions" + }, + "ClientLoginBannerOptions": { + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ClientLoginBannerOptions", + "markdownDescription": "Options for enabling a customizable text banner that will be displayed on AWS provided clients when a VPN session is established\\. \n*Required*: No \n*Type*: [ClientLoginBannerOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientloginbanneroptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientLoginBannerOptions" + }, + "ConnectionLogOptions": { + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ConnectionLogOptions", + "markdownDescription": "Information about the client connection logging options\\. \nIf you enable client connection logging, data about client connections is sent to a Cloudwatch Logs log stream\\. The following information is logged: \n+ Client connection requests\n+ Client connection results \\(successful and unsuccessful\\)\n+ Reasons for unsuccessful client connection requests\n+ Client connection termination time\n*Required*: Yes \n*Type*: [ConnectionLogOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-connectionlogoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionLogOptions" + }, + "Description": { + "markdownDescription": "A brief description of the Client VPN endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DnsServers": { + "items": { + "type": "string" + }, + "markdownDescription": "Information about the DNS servers to be used for DNS resolution\\. A Client VPN endpoint can have up to two DNS servers\\. If no DNS server is specified, the DNS address configured on the device is used for the DNS server\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DnsServers", + "type": "array" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of one or more security groups to apply to the target network\\. You must also specify the ID of the VPC that contains the security groups\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SelfServicePortal": { + "markdownDescription": "Specify whether to enable the self\\-service portal for the Client VPN endpoint\\. \nDefault Value: `enabled` \n*Required*: No \n*Type*: String \n*Allowed values*: `disabled | enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SelfServicePortal", + "type": "string" + }, + "ServerCertificateArn": { + "markdownDescription": "The ARN of the server certificate\\. For more information, see the [AWS Certificate Manager User Guide](https://docs.aws.amazon.com/acm/latest/userguide/)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerCertificateArn", + "type": "string" + }, + "SessionTimeoutHours": { + "markdownDescription": "The maximum VPN session duration time in hours\\. \nValid values: `8 | 10 | 12 | 24` \nDefault value: `24` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionTimeoutHours", + "type": "number" + }, + "SplitTunnel": { + "markdownDescription": "Indicates whether split\\-tunnel is enabled on the AWS Client VPN endpoint\\. \nBy default, split\\-tunnel on a VPN endpoint is disabled\\. \nFor information about split\\-tunnel VPN endpoints, see [Split\\-tunnel AWS Client VPN endpoint](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html) in the * AWS Client VPN Administrator Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SplitTunnel", + "type": "boolean" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.TagSpecification" + }, + "markdownDescription": "The tags to apply to the Client VPN endpoint during creation\\. \n*Required*: No \n*Type*: List of [TagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-tagspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TagSpecifications", + "type": "array" + }, + "TransportProtocol": { + "markdownDescription": "The transport protocol to be used by the VPN session\\. \nDefault value: `udp` \n*Required*: No \n*Type*: String \n*Allowed values*: `tcp | udp` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransportProtocol", + "type": "string" + }, + "VpcId": { + "markdownDescription": "The ID of the VPC to associate with the Client VPN endpoint\\. If no security group IDs are specified in the request, the default security group for the VPC is applied\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcId", + "type": "string" + }, + "VpnPort": { + "markdownDescription": "The port number to assign to the Client VPN endpoint for TCP and UDP traffic\\. \nValid Values: `443` \\| `1194` \nDefault Value: `443` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ARN of the client certificate\\. The certificate must be signed by a certificate authority \\(CA\\) and it must be provisioned in AWS Certificate Manager \\(ACM\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientRootCertificateChainArn", + "type": "string" + } + }, + "required": [ + "ClientRootCertificateChainArn" + ], + "type": "object" + }, + "AWS::EC2::ClientVpnEndpoint.ClientAuthenticationRequest": { + "additionalProperties": false, + "properties": { + "ActiveDirectory": { + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.DirectoryServiceAuthenticationRequest", + "markdownDescription": "Information about the Active Directory to be used, if applicable\\. You must provide this information if **Type** is `directory-service-authentication`\\. \n*Required*: No \n*Type*: [DirectoryServiceAuthenticationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-directoryserviceauthenticationrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActiveDirectory" + }, + "FederatedAuthentication": { + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.FederatedAuthenticationRequest", + "markdownDescription": "Information about the IAM SAML identity provider, if applicable\\. \n*Required*: No \n*Type*: [FederatedAuthenticationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-federatedauthenticationrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FederatedAuthentication" + }, + "MutualAuthentication": { + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.CertificateAuthenticationRequest", + "markdownDescription": "Information about the authentication certificates to be used, if applicable\\. You must provide this information if **Type** is `certificate-authentication`\\. \n*Required*: No \n*Type*: [CertificateAuthenticationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-certificateauthenticationrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MutualAuthentication" + }, + "Type": { + "markdownDescription": "The type of client authentication to be used\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `certificate-authentication | directory-service-authentication | federated-authentication` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::ClientVpnEndpoint.ClientConnectOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Indicates whether client connect options are enabled\\. The default is `false` \\(not enabled\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "LambdaFunctionArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Lambda function used for connection authorization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaFunctionArn", + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::EC2::ClientVpnEndpoint.ClientLoginBannerOptions": { + "additionalProperties": false, + "properties": { + "BannerText": { + "markdownDescription": "Customizable text that will be displayed in a banner on AWS provided clients when a VPN session is established\\. UTF\\-8 encoded characters only\\. Maximum of 1400 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BannerText", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Enable or disable a customizable text banner that will be displayed on AWS provided clients when a VPN session is established\\. \nValid values: `true | false` \nDefault value: `false` \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::EC2::ClientVpnEndpoint.ConnectionLogOptions": { + "additionalProperties": false, + "properties": { + "CloudwatchLogGroup": { + "markdownDescription": "The name of the CloudWatch Logs log group\\. Required if connection logging is enabled\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudwatchLogGroup", + "type": "string" + }, + "CloudwatchLogStream": { + "markdownDescription": "The name of the CloudWatch Logs log stream to which the connection data is published\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudwatchLogStream", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Indicates whether connection logging is enabled\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::EC2::ClientVpnEndpoint.DirectoryServiceAuthenticationRequest": { + "additionalProperties": false, + "properties": { + "DirectoryId": { + "markdownDescription": "The ID of the Active Directory to be used for authentication\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DirectoryId", + "type": "string" + } + }, + "required": [ + "DirectoryId" + ], + "type": "object" + }, + "AWS::EC2::ClientVpnEndpoint.FederatedAuthenticationRequest": { + "additionalProperties": false, + "properties": { + "SAMLProviderArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM SAML identity provider\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SAMLProviderArn", + "type": "string" + }, + "SelfServiceSAMLProviderArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM SAML identity provider for the self\\-service portal\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SelfServiceSAMLProviderArn", + "type": "string" + } + }, + "required": [ + "SAMLProviderArn" + ], + "type": "object" + }, + "AWS::EC2::ClientVpnEndpoint.TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "markdownDescription": "The type of resource to tag\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `capacity-reservation | capacity-reservation-fleet | carrier-gateway | client-vpn-endpoint | coip-pool | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | instance-event-window | internet-gateway | ipam | ipam-pool | ipam-resource-discovery | ipam-resource-discovery-association | ipam-scope | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | launch-template | local-gateway | local-gateway-route-table | local-gateway-route-table-virtual-interface-group-association | local-gateway-route-table-vpc-association | local-gateway-virtual-interface | local-gateway-virtual-interface-group | natgateway | network-acl | network-insights-access-scope | network-insights-access-scope-analysis | network-insights-analysis | network-insights-path | network-interface | placement-group | prefix-list | replace-root-volume-task | reserved-instances | route-server | route-server-endpoint | route-server-peer | route-table | security-group | security-group-rule | snapshot | spot-fleet-request | spot-instances-request | subnet | subnet-cidr-reservation | traffic-mirror-filter | traffic-mirror-filter-rule | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-policy-table | transit-gateway-route-table | transit-gateway-route-table-announcement | verified-access-endpoint | verified-access-group | verified-access-instance | verified-access-policy | verified-access-trust-provider | volume | vpc | vpc-block-public-access-exclusion | vpc-endpoint | vpc-endpoint-connection | vpc-endpoint-connection-device-type | vpc-endpoint-service | vpc-endpoint-service-permission | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-connection-device-type | vpn-gateway` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceType", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to apply to the resource\\. \n*Required*: Yes \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The ID of the Client VPN endpoint to which to add the route\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientVpnEndpointId", + "type": "string" + }, + "Description": { + "markdownDescription": "A brief description of the route\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "DestinationCidrBlock": { + "markdownDescription": "The IPv4 address range, in CIDR notation, of the route destination\\. For example: \n+ To add a route for Internet access, enter `0.0.0.0/0` \n+ To add a route for a peered VPC, enter the peered VPC's IPv4 CIDR range\n+ To add a route for an on\\-premises network, enter the AWS Site\\-to\\-Site VPN connection's IPv4 CIDR range\n+ To add a route for the local network, enter the client CIDR range\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationCidrBlock", + "type": "string" + }, + "TargetVpcSubnetId": { + "markdownDescription": "The ID of the subnet through which you want to route traffic\\. The specified subnet must be an existing target network of the Client VPN endpoint\\. \nAlternatively, if you're adding a route for the local network, specify `local`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ID of the Client VPN endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientVpnEndpointId", + "type": "string" + }, + "SubnetId": { + "markdownDescription": "The ID of the subnet to associate with the Client VPN endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "For devices that support BGP, the customer gateway's BGP ASN\\. \nDefault: 65000 \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BgpAsn", + "type": "number" + }, + "DeviceName": { + "markdownDescription": "The name of customer gateway device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceName", + "type": "string" + }, + "IpAddress": { + "markdownDescription": "IPv4 address for the customer gateway device's outside interface\\. The address must be static\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpAddress", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "One or more tags for the customer gateway\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Type": { + "markdownDescription": "The type of VPN connection that this customer gateway supports \\(`ipsec.1`\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ipsec.1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "This value is used to complete unqualified DNS hostnames\\. If you're using AmazonProvidedDNS in `us-east-1`, specify `ec2.internal`\\. If you're using AmazonProvidedDNS in another Region, specify *region*\\.`compute.internal` \\(for example, `ap-northeast-1.compute.internal`\\)\\. Otherwise, specify a domain name \\(for example, *MyCompany\\.com*\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", + "type": "string" + }, + "DomainNameServers": { + "items": { + "type": "string" + }, + "markdownDescription": "The IPv4 addresses of up to four domain name servers, or `AmazonProvidedDNS`\\. The default is `AmazonProvidedDNS`\\. To have your instance receive a custom DNS hostname as specified in `DomainName`, you must set this property to a custom DNS server\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainNameServers", + "type": "array" + }, + "NetbiosNameServers": { + "items": { + "type": "string" + }, + "markdownDescription": "The IPv4 addresses of up to four NetBIOS name servers\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetbiosNameServers", + "type": "array" + }, + "NetbiosNodeType": { + "markdownDescription": "The NetBIOS node type \\(1, 2, 4, or 8\\)\\. We recommend that you specify 2 \\(broadcast and multicast are not currently supported\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetbiosNodeType", + "type": "number" + }, + "NtpServers": { + "items": { + "type": "string" + }, + "markdownDescription": "The IPv4 addresses of up to four Network Time Protocol \\(NTP\\) servers\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NtpServers", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Any tags assigned to the DHCP options set\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "Reserved\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Context", + "type": "string" + }, + "ExcessCapacityTerminationPolicy": { + "markdownDescription": "Indicates whether running instances should be terminated if the total target capacity of the EC2 Fleet is decreased below the current size of the EC2 Fleet\\. \nSupported only for fleets of type `maintain`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `no-termination | termination` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcessCapacityTerminationPolicy", + "type": "string" + }, + "LaunchTemplateConfigs": { + "items": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest" + }, + "markdownDescription": "The configuration for the EC2 Fleet\\. \n*Required*: Yes \n*Type*: List of [FleetLaunchTemplateConfigRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateconfigrequest.html) \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchTemplateConfigs", + "type": "array" + }, + "OnDemandOptions": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.OnDemandOptionsRequest", + "markdownDescription": "Describes the configuration of On\\-Demand Instances in an EC2 Fleet\\. \n*Required*: No \n*Type*: [OnDemandOptionsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ondemandoptionsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OnDemandOptions" + }, + "ReplaceUnhealthyInstances": { + "markdownDescription": "Indicates whether EC2 Fleet should replace unhealthy Spot Instances\\. Supported only for fleets of type `maintain`\\. For more information, see [EC2 Fleet health checks](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#ec2-fleet-health-checks) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplaceUnhealthyInstances", + "type": "boolean" + }, + "SpotOptions": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.SpotOptionsRequest", + "markdownDescription": "Describes the configuration of Spot Instances in an EC2 Fleet\\. \n*Required*: No \n*Type*: [SpotOptionsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpotOptions" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TagSpecification" + }, + "markdownDescription": "The key\\-value pair for tagging the EC2 Fleet request on creation\\. For more information, see [Tagging your resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources)\\. \nIf the fleet type is `instant`, specify a resource type of `fleet` to tag the fleet or `instance` to tag the instances at launch\\. \nIf the fleet type is `maintain` or `request`, specify a resource type of `fleet` to tag the fleet\\. You cannot specify a resource type of `instance`\\. To tag instances at launch, specify the tags in a [launch template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template)\\. \n*Required*: No \n*Type*: List of [TagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-tagspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TagSpecifications", + "type": "array" + }, + "TargetCapacitySpecification": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest", + "markdownDescription": "The number of units to request\\. \n*Required*: Yes \n*Type*: [TargetCapacitySpecificationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-targetcapacityspecificationrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetCapacitySpecification" + }, + "TerminateInstancesWithExpiration": { + "markdownDescription": "Indicates whether running instances should be terminated when the EC2 Fleet expires\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TerminateInstancesWithExpiration", + "type": "boolean" + }, + "Type": { + "markdownDescription": "The fleet type\\. The default value is `maintain`\\. \n+ `maintain` \\- The EC2 Fleet places an asynchronous request for your desired capacity, and continues to maintain your desired Spot capacity by replenishing interrupted Spot Instances\\.\n+ `request` \\- The EC2 Fleet places an asynchronous one\\-time request for your desired capacity, but does submit Spot requests in alternative capacity pools if Spot capacity is unavailable, and does not maintain Spot capacity if Spot Instances are interrupted\\.\n+ `instant` \\- The EC2 Fleet places a synchronous one\\-time request for your desired capacity, and returns errors for any instances that could not be launched\\.\nFor more information, see [EC2 Fleet request types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-request-type.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `instant | maintain | request` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + }, + "ValidFrom": { + "markdownDescription": "The start date and time of the request, in UTC format \\(for example, *YYYY*\\-*MM*\\-*DD*T*HH*:*MM*:*SS*Z\\)\\. The default is to start fulfilling the request immediately\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ValidFrom", + "type": "string" + }, + "ValidUntil": { + "markdownDescription": "The end date and time of the request, in UTC format \\(for example, *YYYY*\\-*MM*\\-*DD*T*HH*:*MM*:*SS*Z\\)\\. At this point, no new EC2 Fleet requests are placed or able to fulfill the request\\. If no value is specified, the request remains until you cancel it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The maximum number of accelerators\\. To specify no maximum limit, omit this parameter\\. To exclude accelerator\\-enabled instance types, set `Max` to `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum number of accelerators\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum amount of accelerator memory, in MiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum amount of accelerator memory, in MiB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum baseline bandwidth, in Mbps\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum baseline bandwidth, in Mbps\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.CapacityRebalance": { + "additionalProperties": false, + "properties": { + "ReplacementStrategy": { + "markdownDescription": "The replacement strategy to use\\. Only available for fleets of type `maintain`\\. \n `launch` \\- EC2 Fleet launches a replacement Spot Instance when a rebalance notification is emitted for an existing Spot Instance in the fleet\\. EC2 Fleet does not terminate the instances that receive a rebalance notification\\. You can terminate the old instances, or you can leave them running\\. You are charged for all instances while they are running\\. \n `launch-before-terminate` \\- EC2 Fleet launches a replacement Spot Instance when a rebalance notification is emitted for an existing Spot Instance in the fleet, and then, after a delay that you specify \\(in `TerminationDelay`\\), terminates the instances that received a rebalance notification\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `launch | launch-before-terminate` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplacementStrategy", + "type": "string" + }, + "TerminationDelay": { + "markdownDescription": "The amount of time \\(in seconds\\) that Amazon EC2 waits before terminating the old Spot Instance after launching a new replacement Spot Instance\\. \nRequired when `ReplacementStrategy` is set to `launch-before-terminate`\\. \nNot valid when `ReplacementStrategy` is set to `launch`\\. \nValid values: Minimum value of `120` seconds\\. Maximum value of `7200` seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TerminationDelay", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.CapacityReservationOptionsRequest": { + "additionalProperties": false, + "properties": { + "UsageStrategy": { + "markdownDescription": "Indicates whether to use unused Capacity Reservations for fulfilling On\\-Demand capacity\\. \nIf you specify `use-capacity-reservations-first`, the fleet uses unused Capacity Reservations to fulfill On\\-Demand capacity up to the target On\\-Demand capacity\\. If multiple instance pools have unused Capacity Reservations, the On\\-Demand allocation strategy \\(`lowest-price` or `prioritized`\\) is applied\\. If the number of unused Capacity Reservations is less than the On\\-Demand target capacity, the remaining On\\-Demand target capacity is launched according to the On\\-Demand allocation strategy \\(`lowest-price` or `prioritized`\\)\\. \nIf you do not specify a value, the fleet fulfils the On\\-Demand capacity according to the chosen On\\-Demand allocation strategy\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `use-capacity-reservations-first` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UsageStrategy", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest": { + "additionalProperties": false, + "properties": { + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest", + "markdownDescription": "The launch template to use\\. You must specify either the launch template ID or launch template name in the request\\. \n*Required*: No \n*Type*: [FleetLaunchTemplateSpecificationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplatespecificationrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchTemplateSpecification" + }, + "Overrides": { + "items": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest" + }, + "markdownDescription": "Any parameters that you specify override the same parameters in the launch template\\. \nFor fleets of type `request` and `maintain`, a maximum of 300 items is allowed across all launch templates\\. \n*Required*: No \n*Type*: List of [FleetLaunchTemplateOverridesRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Overrides", + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "markdownDescription": "The Availability Zone in which to launch the instances\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", + "type": "string" + }, + "InstanceRequirements": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.InstanceRequirementsRequest", + "markdownDescription": "The attributes for the instance types\\. When you specify instance attributes, Amazon EC2 will identify instance types with those attributes\\. \nIf you specify `InstanceRequirements`, you can't specify `InstanceType`\\.\n*Required*: No \n*Type*: [InstanceRequirementsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceRequirements" + }, + "InstanceType": { + "markdownDescription": "The instance type\\. \nIf you specify `InstanceType`, you can't specify `InstanceRequirements`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | mac1.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6ad.12xlarge | r6ad.16xlarge | r6ad.24xlarge | r6ad.2xlarge | r6ad.32xlarge | r6ad.48xlarge | r6ad.4xlarge | r6ad.8xlarge | r6ad.large | r6ad.metal | r6ad.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", + "type": "string" + }, + "MaxPrice": { + "markdownDescription": "The maximum price per unit hour that you are willing to pay for a Spot Instance\\. We do not recommend using this parameter because it can lead to increased interruptions\\. If you do not specify this parameter, you will pay the current Spot price\\. \nIf you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaxPrice", + "type": "string" + }, + "Placement": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.Placement", + "markdownDescription": "The location where the instance launched, if applicable\\. \n*Required*: No \n*Type*: [Placement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-placement.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Placement" + }, + "Priority": { + "markdownDescription": "The priority for the launch template override\\. The highest priority is launched first\\. \nIf the On\\-Demand `AllocationStrategy` is set to `prioritized`, EC2 Fleet uses priority to determine which launch template override to use first in fulfilling On\\-Demand capacity\\. \nIf the Spot `AllocationStrategy` is set to `capacity-optimized-prioritized`, EC2 Fleet uses priority on a best\\-effort basis to determine which launch template override to use in fulfilling Spot capacity, but optimizes for capacity first\\. \nValid values are whole numbers starting at `0`\\. The lower the number, the higher the priority\\. If no number is set, the launch template override has the lowest priority\\. You can set the same priority for different launch template overrides\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Priority", + "type": "number" + }, + "SubnetId": { + "markdownDescription": "The IDs of the subnets in which to launch the instances\\. Separate multiple subnet IDs using commas \\(for example, `subnet-1234abcdeexample1, subnet-0987cdef6example2`\\)\\. A request of type `instant` can have only one subnet ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", + "type": "string" + }, + "WeightedCapacity": { + "markdownDescription": "The number of units provided by the specified instance type\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WeightedCapacity", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "markdownDescription": "The ID of the launch template\\. \nYou must specify the `LaunchTemplateId` or the `LaunchTemplateName`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchTemplateId", + "type": "string" + }, + "LaunchTemplateName": { + "markdownDescription": "The name of the launch template\\. \nYou must specify the `LaunchTemplateName` or the `LaunchTemplateId`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9\\(\\)\\.\\-/_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchTemplateName", + "type": "string" + }, + "Version": { + "markdownDescription": "The launch template version number, `$Latest`, or `$Default`\\. You must specify a value, otherwise the request fails\\. \nIf the value is `$Latest`, Amazon EC2 uses the latest version of the launch template\\. \nIf the value is `$Default`, Amazon EC2 uses the default version of the launch template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Version", + "type": "string" + } + }, + "required": [ + "Version" + ], + "type": "object" + }, + "AWS::EC2::EC2Fleet.InstanceRequirementsRequest": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.AcceleratorCountRequest", + "markdownDescription": "The minimum and maximum number of accelerators \\(GPUs, FPGAs, or AWS Inferentia chips\\) on an instance\\. \nTo exclude accelerator\\-enabled instance types, set `Max` to `0`\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [AcceleratorCountRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-acceleratorcountrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorCount" + }, + "AcceleratorManufacturers": { + "items": { + "type": "string" + }, + "markdownDescription": "Indicates whether instance types must have accelerators by specific manufacturers\\. \n+ For instance types with NVIDIA devices, specify `nvidia`\\.\n+ For instance types with AMD devices, specify `amd`\\.\n+ For instance types with AWS devices, specify `amazon-web-services`\\.\n+ For instance types with Xilinx devices, specify `xilinx`\\.\nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorManufacturers", + "type": "array" + }, + "AcceleratorNames": { + "items": { + "type": "string" + }, + "markdownDescription": "The accelerators that must be on the instance type\\. \n+ For instance types with NVIDIA A100 GPUs, specify `a100`\\.\n+ For instance types with NVIDIA V100 GPUs, specify `v100`\\.\n+ For instance types with NVIDIA K80 GPUs, specify `k80`\\.\n+ For instance types with NVIDIA T4 GPUs, specify `t4`\\.\n+ For instance types with NVIDIA M60 GPUs, specify `m60`\\.\n+ For instance types with AMD Radeon Pro V520 GPUs, specify `radeon-pro-v520`\\.\n+ For instance types with Xilinx VU9P FPGAs, specify ` vu9p`\\.\n+ For instance types with AWS Inferentia chips, specify `inferentia`\\.\n+ For instance types with NVIDIA GRID K520 GPUs, specify `k520`\\.\nDefault: Any accelerator \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorNames", + "type": "array" + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.AcceleratorTotalMemoryMiBRequest", + "markdownDescription": "The minimum and maximum amount of total accelerator memory, in MiB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [AcceleratorTotalMemoryMiBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-acceleratortotalmemorymibrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorTotalMemoryMiB" + }, + "AcceleratorTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The accelerator types that must be on the instance type\\. \n+ To include instance types with GPU hardware, specify `gpu`\\.\n+ To include instance types with FPGA hardware, specify `fpga`\\.\n+ To include instance types with inference hardware, specify `inference`\\.\nDefault: Any accelerator type \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorTypes", + "type": "array" + }, + "AllowedInstanceTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The instance types to apply your specified attributes against\\. All other instance types are ignored, even if they match your specified attributes\\. \nYou can use strings with one or more wild cards, represented by an asterisk \\(`*`\\), to allow an instance type, size, or generation\\. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`\\. \nFor example, if you specify `c5*`,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types\\. If you specify `m5a.*`, Amazon EC2 will allow all the M5a instance types, but not the M5n instance types\\. \nIf you specify `AllowedInstanceTypes`, you can't specify `ExcludedInstanceTypes`\\.\nDefault: All instance types \n*Required*: No \n*Type*: List of String \n*Maximum*: `400` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AllowedInstanceTypes", + "type": "array" + }, + "BareMetal": { + "markdownDescription": "Indicates whether bare metal instance types must be included, excluded, or required\\. \n+ To include bare metal instance types, specify `included`\\.\n+ To require only bare metal instance types, specify `required`\\.\n+ To exclude bare metal instance types, specify `excluded`\\.\nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BareMetal", + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.BaselineEbsBandwidthMbpsRequest", + "markdownDescription": "The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps\\. For more information, see [Amazon EBS\u2013optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide*\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [BaselineEbsBandwidthMbpsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-baselineebsbandwidthmbpsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BaselineEbsBandwidthMbps" + }, + "BurstablePerformance": { + "markdownDescription": "Indicates whether burstable performance T instance types are included, excluded, or required\\. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html)\\. \n+ To include burstable performance instance types, specify `included`\\.\n+ To require only burstable performance instance types, specify `required`\\.\n+ To exclude burstable performance instance types, specify `excluded`\\.\nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BurstablePerformance", + "type": "string" + }, + "CpuManufacturers": { + "items": { + "type": "string" + }, + "markdownDescription": "The CPU manufacturers to include\\. \n+ For instance types with Intel CPUs, specify `intel`\\.\n+ For instance types with AMD CPUs, specify `amd`\\.\n+ For instance types with AWS CPUs, specify `amazon-web-services`\\.\nDon't confuse the CPU manufacturer with the CPU architecture\\. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image \\(AMI\\) that you specify in your launch template\\.\nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CpuManufacturers", + "type": "array" + }, + "ExcludedInstanceTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The instance types to exclude\\. \nYou can use strings with one or more wild cards, represented by an asterisk \\(`*`\\), to exclude an instance family, type, size, or generation\\. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`\\. \nFor example, if you specify `c5*`,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types\\. If you specify `m5a.*`, Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types\\. \nIf you specify `ExcludedInstanceTypes`, you can't specify `AllowedInstanceTypes`\\.\nDefault: No excluded instance types \n*Required*: No \n*Type*: List of String \n*Maximum*: `400` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExcludedInstanceTypes", + "type": "array" + }, + "InstanceGenerations": { + "items": { + "type": "string" + }, + "markdownDescription": "Indicates whether current or previous generation instance types are included\\. The current generation instance types are recommended for use\\. Current generation instance types are typically the latest two to three generations in each instance family\\. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*\\. \nFor current generation instance types, specify `current`\\. \nFor previous generation instance types, specify `previous`\\. \nDefault: Current and previous generation instance types \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceGenerations", + "type": "array" + }, + "LocalStorage": { + "markdownDescription": "Indicates whether instance types with instance store volumes are included, excluded, or required\\. For more information, [Amazon EC2 instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in the *Amazon EC2 User Guide*\\. \n+ To include instance types with instance store volumes, specify `included`\\.\n+ To require only instance types with instance store volumes, specify `required`\\.\n+ To exclude instance types with instance store volumes, specify `excluded`\\.\nDefault: `included` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalStorage", + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The type of local storage that is required\\. \n+ For instance types with hard disk drive \\(HDD\\) storage, specify `hdd`\\.\n+ For instance types with solid state drive \\(SSD\\) storage, specify `ssd`\\.\nDefault: `hdd` and `ssd` \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalStorageTypes", + "type": "array" + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.MemoryGiBPerVCpuRequest", + "markdownDescription": "The minimum and maximum amount of memory per vCPU, in GiB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [MemoryGiBPerVCpuRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-memorygibpervcpurequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MemoryGiBPerVCpu" + }, + "MemoryMiB": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.MemoryMiBRequest", + "markdownDescription": "The minimum and maximum amount of memory, in MiB\\. \n*Required*: No \n*Type*: [MemoryMiBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-memorymibrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MemoryMiB" + }, + "NetworkBandwidthGbps": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.NetworkBandwidthGbpsRequest", + "markdownDescription": "The minimum and maximum amount of network bandwidth, in gigabits per second \\(Gbps\\)\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [NetworkBandwidthGbpsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-networkbandwidthgbpsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkBandwidthGbps" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.NetworkInterfaceCountRequest", + "markdownDescription": "The minimum and maximum number of network interfaces\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [NetworkInterfaceCountRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-networkinterfacecountrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInterfaceCount" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "markdownDescription": "The price protection threshold for On\\-Demand Instances\\. This is the maximum you\u2019ll pay for an On\\-Demand Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes\\. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold\\. \nThe parameter accepts an integer, which Amazon EC2 interprets as a percentage\\. \nTo turn off price protection, specify a high value, such as `999999`\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html)\\. \nIf you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per\\-vCPU or per\\-memory price instead of the per\\-instance price\\.\nDefault: `20` \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OnDemandMaxPricePercentageOverLowestPrice", + "type": "number" + }, + "RequireHibernateSupport": { + "markdownDescription": "Indicates whether instance types must support hibernation for On\\-Demand Instances\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html)\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RequireHibernateSupport", + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "markdownDescription": "The price protection threshold for Spot Instance\\. This is the maximum you\u2019ll pay for an Spot Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes\\. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold\\. \nThe parameter accepts an integer, which Amazon EC2 interprets as a percentage\\. \nTo turn off price protection, specify a high value, such as `999999`\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html)\\. \nIf you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per\\-vCPU or per\\-memory price instead of the per\\-instance price\\.\nDefault: `100` \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpotMaxPricePercentageOverLowestPrice", + "type": "number" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TotalLocalStorageGBRequest", + "markdownDescription": "The minimum and maximum amount of total local storage, in GB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [TotalLocalStorageGBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-totallocalstoragegbrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TotalLocalStorageGB" + }, + "VCpuCount": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.VCpuCountRangeRequest", + "markdownDescription": "The minimum and maximum number of vCPUs\\. \n*Required*: No \n*Type*: [VCpuCountRangeRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-vcpucountrangerequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VCpuCount" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.MaintenanceStrategies": { + "additionalProperties": false, + "properties": { + "CapacityRebalance": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.CapacityRebalance", + "markdownDescription": "The strategy to use when Amazon EC2 emits a signal that your Spot Instance is at an elevated risk of being interrupted\\. \n*Required*: No \n*Type*: [CapacityRebalance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-capacityrebalance.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CapacityRebalance" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum amount of memory per vCPU, in GiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum amount of memory per vCPU, in GiB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum amount of memory, in MiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum amount of memory, in MiB\\. To specify no minimum limit, specify `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.NetworkBandwidthGbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum amount of network bandwidth, in Gbps\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum amount of network bandwidth, in Gbps\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.NetworkInterfaceCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum number of network interfaces\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum number of network interfaces\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.OnDemandOptionsRequest": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "markdownDescription": "The strategy that determines the order of the launch template overrides to use in fulfilling On\\-Demand capacity\\. \n `lowest-price` \\- EC2 Fleet uses price to determine the order, launching the lowest price first\\. \n `prioritized` \\- EC2 Fleet uses the priority that you assigned to each launch template override, launching the highest priority first\\. \nDefault: `lowest-price` \n*Required*: No \n*Type*: String \n*Allowed values*: `lowest-price | prioritized` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AllocationStrategy", + "type": "string" + }, + "CapacityReservationOptions": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.CapacityReservationOptionsRequest", + "markdownDescription": "The strategy for using unused Capacity Reservations for fulfilling On\\-Demand capacity\\. \nSupported only for fleets of type `instant`\\. \n*Required*: No \n*Type*: [CapacityReservationOptionsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-capacityreservationoptionsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CapacityReservationOptions" + }, + "MaxTotalPrice": { + "markdownDescription": "The maximum amount per hour for On\\-Demand Instances that you're willing to pay\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaxTotalPrice", + "type": "string" + }, + "MinTargetCapacity": { + "markdownDescription": "The minimum target capacity for On\\-Demand Instances in the fleet\\. If the minimum target capacity is not reached, the fleet launches no instances\\. \nSupported only for fleets of type `instant`\\. \nAt least one of the following must be specified: `SingleAvailabilityZone` \\| `SingleInstanceType` \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MinTargetCapacity", + "type": "number" + }, + "SingleAvailabilityZone": { + "markdownDescription": "Indicates that the fleet launches all On\\-Demand Instances into a single Availability Zone\\. \nSupported only for fleets of type `instant`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SingleAvailabilityZone", + "type": "boolean" + }, + "SingleInstanceType": { + "markdownDescription": "Indicates that the fleet uses a single instance type to launch all On\\-Demand Instances in the fleet\\. \nSupported only for fleets of type `instant`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SingleInstanceType", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.Placement": { + "additionalProperties": false, + "properties": { + "Affinity": { + "markdownDescription": "The affinity setting for the instance on the Dedicated Host\\. \nThis parameter is not supported for [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet) or [ImportInstance](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportInstance.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Affinity", + "type": "string" + }, + "AvailabilityZone": { + "markdownDescription": "The Availability Zone of the instance\\. \nIf not specified, an Availability Zone will be automatically chosen for you based on the load balancing criteria for the Region\\. \nThis parameter is not supported for [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", + "type": "string" + }, + "GroupName": { + "markdownDescription": "The name of the placement group that the instance is in\\. If you specify `GroupName`, you can't specify `GroupId`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupName", + "type": "string" + }, + "HostId": { + "markdownDescription": "The ID of the Dedicated Host on which the instance resides\\. \nThis parameter is not supported for [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet) or [ImportInstance](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportInstance.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostId", + "type": "string" + }, + "HostResourceGroupArn": { + "markdownDescription": "The ARN of the host resource group in which to launch the instances\\. \nIf you specify this parameter, either omit the **Tenancy** parameter or set it to `host`\\. \nThis parameter is not supported for [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostResourceGroupArn", + "type": "string" + }, + "PartitionNumber": { + "markdownDescription": "The number of the partition that the instance is in\\. Valid only if the placement group strategy is set to `partition`\\. \nThis parameter is not supported for [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PartitionNumber", + "type": "number" + }, + "SpreadDomain": { + "markdownDescription": "Reserved for future use\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpreadDomain", + "type": "string" + }, + "Tenancy": { + "markdownDescription": "The tenancy of the instance \\(if the instance is running in a VPC\\)\\. An instance with a tenancy of `dedicated` runs on single\\-tenant hardware\\. \nThis parameter is not supported for [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet)\\. The `host` tenancy is not supported for [ImportInstance](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportInstance.html) or for T3 instances that are configured for the `unlimited` CPU credit option\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dedicated | default | host` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tenancy", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.SpotOptionsRequest": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "markdownDescription": "Indicates how to allocate the target Spot Instance capacity across the Spot Instance pools specified by the EC2 Fleet\\. \nIf the allocation strategy is `lowestPrice`, EC2 Fleet launches instances from the Spot Instance pools with the lowest price\\. This is the default allocation strategy\\. \nIf the allocation strategy is `diversified`, EC2 Fleet launches instances from all the Spot Instance pools that you specify\\. \nIf the allocation strategy is `capacityOptimized`, EC2 Fleet launches instances from Spot Instance pools that are optimally chosen based on the available Spot Instance capacity\\. \n*Allowed Values*: `lowestPrice` \\| `diversified` \\| `capacityOptimized` \\| `capacityOptimizedPrioritized` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AllocationStrategy", + "type": "string" + }, + "InstanceInterruptionBehavior": { + "markdownDescription": "The behavior when a Spot Instance is interrupted\\. \nDefault: `terminate` \n*Required*: No \n*Type*: String \n*Allowed values*: `hibernate | stop | terminate` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceInterruptionBehavior", + "type": "string" + }, + "InstancePoolsToUseCount": { + "markdownDescription": "The number of Spot pools across which to allocate your target Spot capacity\\. Supported only when Spot `AllocationStrategy` is set to `lowest-price`\\. EC2 Fleet selects the cheapest Spot pools and evenly allocates your target Spot capacity across the number of Spot pools that you specify\\. \nNote that EC2 Fleet attempts to draw Spot Instances from the number of pools that you specify on a best effort basis\\. If a pool runs out of Spot capacity before fulfilling your target capacity, EC2 Fleet will continue to fulfill your request by drawing from the next cheapest pool\\. To ensure that your target capacity is met, you might receive Spot Instances from more than the number of pools that you specified\\. Similarly, if most of the pools have no Spot capacity, you might receive your full target capacity from fewer than the number of pools that you specified\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstancePoolsToUseCount", + "type": "number" + }, + "MaintenanceStrategies": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.MaintenanceStrategies", + "markdownDescription": "The strategies for managing your Spot Instances that are at an elevated risk of being interrupted\\. \n*Required*: No \n*Type*: [MaintenanceStrategies](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-maintenancestrategies.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaintenanceStrategies" + }, + "MaxTotalPrice": { + "markdownDescription": "The maximum amount per hour for Spot Instances that you're willing to pay\\. We do not recommend using this parameter because it can lead to increased interruptions\\. If you do not specify this parameter, you will pay the current Spot price\\. \nIf you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaxTotalPrice", + "type": "string" + }, + "MinTargetCapacity": { + "markdownDescription": "The minimum target capacity for Spot Instances in the fleet\\. If the minimum target capacity is not reached, the fleet launches no instances\\. \nSupported only for fleets of type `instant`\\. \nAt least one of the following must be specified: `SingleAvailabilityZone` \\| `SingleInstanceType` \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MinTargetCapacity", + "type": "number" + }, + "SingleAvailabilityZone": { + "markdownDescription": "Indicates that the fleet launches all Spot Instances into a single Availability Zone\\. \nSupported only for fleets of type `instant`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SingleAvailabilityZone", + "type": "boolean" + }, + "SingleInstanceType": { + "markdownDescription": "Indicates that the fleet uses a single instance type to launch all Spot Instances in the fleet\\. \nSupported only for fleets of type `instant`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SingleInstanceType", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "markdownDescription": "The type of resource to tag\\. `ResourceType` must be `fleet`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `capacity-reservation | capacity-reservation-fleet | carrier-gateway | client-vpn-endpoint | coip-pool | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | instance-event-window | internet-gateway | ipam | ipam-pool | ipam-resource-discovery | ipam-resource-discovery-association | ipam-scope | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | launch-template | local-gateway | local-gateway-route-table | local-gateway-route-table-virtual-interface-group-association | local-gateway-route-table-vpc-association | local-gateway-virtual-interface | local-gateway-virtual-interface-group | natgateway | network-acl | network-insights-access-scope | network-insights-access-scope-analysis | network-insights-analysis | network-insights-path | network-interface | placement-group | prefix-list | replace-root-volume-task | reserved-instances | route-server | route-server-endpoint | route-server-peer | route-table | security-group | security-group-rule | snapshot | spot-fleet-request | spot-instances-request | subnet | subnet-cidr-reservation | traffic-mirror-filter | traffic-mirror-filter-rule | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-policy-table | transit-gateway-route-table | transit-gateway-route-table-announcement | verified-access-endpoint | verified-access-group | verified-access-instance | verified-access-policy | verified-access-trust-provider | volume | vpc | vpc-block-public-access-exclusion | vpc-endpoint | vpc-endpoint-connection | vpc-endpoint-connection-device-type | vpc-endpoint-service | vpc-endpoint-service-permission | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-connection-device-type | vpn-gateway` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceType", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to apply to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest": { + "additionalProperties": false, + "properties": { + "DefaultTargetCapacityType": { + "markdownDescription": "The default `TotalTargetCapacity`, which is either `Spot` or `On-Demand`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `on-demand | spot` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultTargetCapacityType", + "type": "string" + }, + "OnDemandTargetCapacity": { + "markdownDescription": "The number of On\\-Demand units to request\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnDemandTargetCapacity", + "type": "number" + }, + "SpotTargetCapacity": { + "markdownDescription": "The number of Spot units to request\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpotTargetCapacity", + "type": "number" + }, + "TargetCapacityUnitType": { + "markdownDescription": "The unit for the target capacity\\. `TargetCapacityUnitType` can only be specified when `InstanceRequirements` is specified\\. \nDefault: `units` \\(translates to number of instances\\) \n*Required*: No \n*Type*: String \n*Allowed values*: `memory-mib | units | vcpu` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetCapacityUnitType", + "type": "string" + }, + "TotalTargetCapacity": { + "markdownDescription": "The number of units to request, filled using `DefaultTargetCapacityType`\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TotalTargetCapacity", + "type": "number" + } + }, + "required": [ + "TotalTargetCapacity" + ], + "type": "object" + }, + "AWS::EC2::EC2Fleet.TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum amount of total local storage, in GB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum amount of total local storage, in GB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.VCpuCountRangeRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum number of vCPUs\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum number of vCPUs\\. To specify no minimum limit, specify `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Indicates whether the Elastic IP address is for use with instances in a VPC or instance in EC2\\-Classic\\. \nDefault: If the Region supports EC2\\-Classic, the default is `standard`\\. Otherwise, the default is `vpc`\\. \nUse when allocating an address for use with a VPC if the Region supports EC2\\-Classic\\. \nIf you define an Elastic IP address and associate it with a VPC that is defined in the same template, you must declare a dependency on the VPC\\-gateway attachment by using the [ DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) on this resource\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `standard | vpc` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Domain", + "type": "string" + }, + "InstanceId": { + "markdownDescription": "The ID of the instance\\. \nUpdates to the `InstanceId` property may require *some interruptions*\\. Updates on an EIP reassociates the address on its associated resource\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceId", + "type": "string" + }, + "NetworkBorderGroup": { + "markdownDescription": "A unique set of Availability Zones, Local Zones, or Wavelength Zones from which AWS advertises IP addresses\\. Use this parameter to limit the IP address to this location\\. IP addresses cannot move between network border groups\\. \nUse [DescribeAvailabilityZones](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html) to view the network border groups\\. \nYou cannot use a network border group with EC2 Classic\\. If you attempt this operation on EC2 Classic, you receive an `InvalidParameterCombination` error\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkBorderGroup", + "type": "string" + }, + "PublicIpv4Pool": { + "markdownDescription": "The ID of an address pool that you own\\. Use this parameter to let Amazon EC2 select an address from the address pool\\. \nUpdates to the `PublicIpv4Pool` property may require *some interruptions*\\. Updates on an EIP reassociates the address on its associated resource\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublicIpv4Pool", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Any tags assigned to the Elastic IP address\\. \nUpdates to the `Tags` property may require *some interruptions*\\. Updates on an EIP reassociates the address on its associated resource\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TransferAddress": { + "markdownDescription": "The Elastic IP address you are accepting for transfer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "\\[EC2\\-VPC\\] The allocation ID\\. This is required for EC2\\-VPC\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "AllocationId", + "type": "string" + }, + "EIP": { + "markdownDescription": "\\[EC2\\-Classic\\] The Elastic IP address to associate with the instance\\. This is required for EC2\\-Classic\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "EIP", + "type": "string" + }, + "InstanceId": { + "markdownDescription": "The ID of the instance\\. The instance must have exactly one attached network interface\\. For EC2\\-VPC, you can specify either the instance ID or the network interface ID, but not both\\. For EC2\\-Classic, you must specify an instance ID and the instance must be in the running state\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "InstanceId", + "type": "string" + }, + "NetworkInterfaceId": { + "markdownDescription": "\\[EC2\\-VPC\\] The ID of the network interface\\. If the instance has more than one network interface, you must specify a network interface ID\\. \nFor EC2\\-VPC, you can specify either the instance ID or the network interface ID, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "NetworkInterfaceId", + "type": "string" + }, + "PrivateIpAddress": { + "markdownDescription": "\\[EC2\\-VPC\\] The primary or secondary private IP address to associate with the Elastic IP address\\. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ID of the VPC for which to create the egress\\-only internet gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ARN of the ACM certificate with which to associate the IAM role\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1283` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateArn", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the IAM role to associate with the ACM certificate\\. You can associate up to 16 IAM roles with an ACM certificate\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1283` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ARN of the IAM role that allows Amazon EC2 to publish flow logs to a CloudWatch Logs log group in your account\\. \nThis parameter is required if the destination type is `cloud-watch-logs` and unsupported otherwise\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeliverLogsPermissionArn", + "type": "string" + }, + "DestinationOptions": { + "$ref": "#/definitions/AWS::EC2::FlowLog.DestinationOptions", + "markdownDescription": "The destination options\\. The following options are supported: \n+ `FileFormat` \\- The format for the flow log \\(`plain-text` \\| `parquet`\\)\\. The default is `plain-text`\\.\n+ `HiveCompatiblePartitions` \\- Indicates whether to use Hive\\-compatible prefixes for flow logs stored in Amazon S3 \\(`true` \\| `false`\\)\\. The default is `false`\\.\n+ `PerHourPartition` \\- Indicates whether to partition the flow log per hour \\(`true` \\| `false`\\)\\. The default is `false`\\.\n*Required*: No \n*Type*: [DestinationOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-flowlog-destinationoptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationOptions" + }, + "LogDestination": { + "markdownDescription": "The destination for the flow log data\\. The meaning of this parameter depends on the destination type\\. \n+ If the destination type is `cloud-watch-logs`, specify the ARN of a CloudWatch Logs log group\\. For example:", + "title": "LogDestination", + "type": "string" + }, + "LogDestinationType": { + "markdownDescription": "The type of destination for the flow log data\\. \nDefault: `cloud-watch-logs` \n*Required*: No \n*Type*: String \n*Allowed values*: `cloud-watch-logs | kinesis-data-firehose | s3` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogDestinationType", + "type": "string" + }, + "LogFormat": { + "markdownDescription": "The fields to include in the flow log record, in the order in which they should appear\\. If you omit this parameter, the flow log is created using the default format\\. If you specify this parameter, you must include at least one field\\. For more information about the available fields, see [Flow log records](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-log-records) in the *Amazon VPC User Guide* or [Transit Gateway Flow Log records](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-flow-logs.html#flow-log-records) in the *AWS Transit Gateway Guide*\\. \nSpecify the fields using the `${field-id}` format, separated by spaces\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogFormat", + "type": "string" + }, + "LogGroupName": { + "markdownDescription": "The name of a new or existing CloudWatch Logs log group where Amazon EC2 publishes your flow logs\\. \nThis parameter is valid only if the destination type is `cloud-watch-logs`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogGroupName", + "type": "string" + }, + "MaxAggregationInterval": { + "markdownDescription": "The maximum interval of time during which a flow of packets is captured and aggregated into a flow log record\\. The possible values are 60 seconds \\(1 minute\\) or 600 seconds \\(10 minutes\\)\\. This parameter must be 60 seconds for transit gateway resource types\\. \nWhen a network interface is attached to a [Nitro\\-based instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances), the aggregation interval is always 60 seconds or less, regardless of the value that you specify\\. \nDefault: 600 \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaxAggregationInterval", + "type": "number" + }, + "ResourceId": { + "markdownDescription": "The ID of the resource to monitor\\. For example, if the resource type is `VPC`, specify the ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceId", + "type": "string" + }, + "ResourceType": { + "markdownDescription": "The type of resource to monitor\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `NetworkInterface | Subnet | TransitGateway | TransitGatewayAttachment | VPC` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceType", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to apply to the flow logs\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TrafficType": { + "markdownDescription": "The type of traffic to monitor \\(accepted traffic, rejected traffic, or all traffic\\)\\. This parameter is not supported for transit gateway resource types\\. It is required for the other resource types\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ACCEPT | ALL | REJECT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The format for the flow log\\. The default is `plain-text`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `parquet | plain-text` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FileFormat", + "type": "string" + }, + "HiveCompatiblePartitions": { + "markdownDescription": "Indicates whether to use Hive\\-compatible prefixes for flow logs stored in Amazon S3\\. The default is `false`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HiveCompatiblePartitions", + "type": "boolean" + }, + "PerHourPartition": { + "markdownDescription": "Indicates whether to partition the flow log per hour\\. This reduces the cost and response time for queries\\. The default is `false`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ID of the gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GatewayId", + "type": "string" + }, + "RouteTableId": { + "markdownDescription": "The ID of the route table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Indicates whether the host accepts any untargeted instance launches that match its instance type configuration, or if it only accepts Host tenancy instance launches that specify its unique host ID\\. For more information, see [ Understanding auto\\-placement and affinity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-dedicated-hosts-work.html#dedicated-hosts-understanding) in the *Amazon EC2 User Guide*\\. \nDefault: `on` \n*Required*: No \n*Type*: String \n*Allowed values*: `off | on` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoPlacement", + "type": "string" + }, + "AvailabilityZone": { + "markdownDescription": "The Availability Zone in which to allocate the Dedicated Host\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", + "type": "string" + }, + "HostRecovery": { + "markdownDescription": "Indicates whether to enable or disable host recovery for the Dedicated Host\\. Host recovery is disabled by default\\. For more information, see [ Host recovery](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-recovery.html) in the *Amazon EC2 User Guide*\\. \nDefault: `off` \n*Required*: No \n*Type*: String \n*Allowed values*: `off | on` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostRecovery", + "type": "string" + }, + "InstanceFamily": { + "markdownDescription": "The instance family supported by the Dedicated Host\\. For example, `m5`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceFamily", + "type": "string" + }, + "InstanceType": { + "markdownDescription": "Specifies the instance type to be supported by the Dedicated Hosts\\. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", + "type": "string" + }, + "OutpostArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Outpost on which the Dedicated Host is allocated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "DefaultResourceDiscoveryAssociationId": { + "type": "string" + }, + "DefaultResourceDiscoveryId": { + "type": "string" + }, + "Description": { + "markdownDescription": "The description for the IPAM\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "OperatingRegions": { + "items": { + "$ref": "#/definitions/AWS::EC2::IPAM.IpamOperatingRegion" + }, + "markdownDescription": "The operating Regions for an IPAM\\. Operating Regions are AWS Regions where the IPAM is allowed to manage IP address CIDRs\\. IPAM only discovers and monitors resources in the AWS Regions you select as operating Regions\\. \nFor more information about operating Regions, see [Create an IPAM](https://docs.aws.amazon.com/vpc/latest/ipam/create-ipam.html) in the *Amazon VPC IPAM User Guide*\\. \n*Required*: No \n*Type*: List of [IpamOperatingRegion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipam-ipamoperatingregion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OperatingRegions", + "type": "array" + }, + "ResourceDiscoveryAssociationCount": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The key/value combination of a tag assigned to the resource\\. Use the tag key in the filter name and the tag value as the filter value\\. For example, to find all resources that have a tag with the key `Owner` and the value `TeamA`, specify `tag:Owner` for the filter name and `TeamA` for the filter value\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The name of the operating Region\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The CIDR you would like to allocate from the IPAM pool\\. Note the following: \n+ If there is no DefaultNetmaskLength allocation rule set on the pool, you must specify either the NetmaskLength or the CIDR\\.\n+ If the DefaultNetmaskLength allocation rule is set on the pool, you can specify either the NetmaskLength or the CIDR and the DefaultNetmaskLength allocation rule will be ignored\\.\nPossible values: Any available IPv4 or IPv6 CIDR\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Cidr", + "type": "string" + }, + "Description": { + "markdownDescription": "A description for the allocation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "IpamPoolId": { + "markdownDescription": "The ID of the IPAM pool from which you would like to allocate a CIDR\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpamPoolId", + "type": "string" + }, + "NetmaskLength": { + "markdownDescription": "The netmask length of the CIDR you would like to allocate from the IPAM pool\\. Note the following: \n+ If there is no DefaultNetmaskLength allocation rule set on the pool, you must specify either the NetmaskLength or the CIDR\\.\n+ If the DefaultNetmaskLength allocation rule is set on the pool, you can specify either the NetmaskLength or the CIDR and the DefaultNetmaskLength allocation rule will be ignored\\.\nPossible netmask lengths for IPv4 addresses are 0 \\- 32\\. Possible netmask lengths for IPv6 addresses are 0 \\- 128\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The address family of the pool\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ipv4 | ipv6` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AddressFamily", + "type": "string" + }, + "AllocationDefaultNetmaskLength": { + "markdownDescription": "The default netmask length for allocations added to this pool\\. If, for example, the CIDR assigned to this pool is 10\\.0\\.0\\.0/8 and you enter 16 here, new allocations will default to 10\\.0\\.0\\.0/16\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocationDefaultNetmaskLength", + "type": "number" + }, + "AllocationMaxNetmaskLength": { + "markdownDescription": "The maximum netmask length possible for CIDR allocations in this IPAM pool to be compliant\\. The maximum netmask length must be greater than the minimum netmask length\\. Possible netmask lengths for IPv4 addresses are 0 \\- 32\\. Possible netmask lengths for IPv6 addresses are 0 \\- 128\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocationMaxNetmaskLength", + "type": "number" + }, + "AllocationMinNetmaskLength": { + "markdownDescription": "The minimum netmask length required for CIDR allocations in this IPAM pool to be compliant\\. The minimum netmask length must be less than the maximum netmask length\\. Possible netmask lengths for IPv4 addresses are 0 \\- 32\\. Possible netmask lengths for IPv6 addresses are 0 \\- 128\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocationMinNetmaskLength", + "type": "number" + }, + "AllocationResourceTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Tags that are required for resources that use CIDRs from this IPAM pool\\. Resources that do not have these tags will not be allowed to allocate space from the pool\\. If the resources have their tags changed after they have allocated space or if the allocation tagging requirements are changed on the pool, the resource may be marked as noncompliant\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocationResourceTags", + "type": "array" + }, + "AutoImport": { + "markdownDescription": "If selected, IPAM will continuously look for resources within the CIDR range of this pool and automatically import them as allocations into your IPAM\\. The CIDRs that will be allocated for these resources must not already be allocated to other resources in order for the import to succeed\\. IPAM will import a CIDR regardless of its compliance with the pool's allocation rules, so a resource might be imported and subsequently marked as noncompliant\\. If IPAM discovers multiple CIDRs that overlap, IPAM will import the largest CIDR only\\. If IPAM discovers multiple CIDRs with matching CIDRs, IPAM will randomly import one of them only\\. \nA locale must be set on the pool for this feature to work\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoImport", + "type": "boolean" + }, + "AwsService": { + "markdownDescription": "Limits which service in AWS that the pool can be used in\\. \"ec2\", for example, allows users to use space for Elastic IP addresses and VPCs\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ec2` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AwsService", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the IPAM pool\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "IpamScopeId": { + "markdownDescription": "The ID of the scope in which you would like to create the IPAM pool\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpamScopeId", + "type": "string" + }, + "Locale": { + "markdownDescription": "The locale of the IPAM pool\\. In IPAM, the locale is the AWS Region where you want to make an IPAM pool available for allocations\\. Only resources in the same Region as the locale of the pool can get IP address allocations from the pool\\. You can only allocate a CIDR for a VPC, for example, from an IPAM pool that shares a locale with the VPC\u2019s Region\\. Note that once you choose a Locale for a pool, you cannot modify it\\. If you choose an AWS Region for locale that has not been configured as an operating Region for the IPAM, you'll get an error\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Locale", + "type": "string" + }, + "ProvisionedCidrs": { + "items": { + "$ref": "#/definitions/AWS::EC2::IPAMPool.ProvisionedCidr" + }, + "markdownDescription": "Information about the CIDRs provisioned to an IPAM pool\\. \n*Required*: No \n*Type*: List of [ProvisionedCidr](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipampool-provisionedcidr.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisionedCidrs", + "type": "array" + }, + "PublicIpSource": { + "type": "string" + }, + "PubliclyAdvertisable": { + "markdownDescription": "Determines if a pool is publicly advertisable\\. This option is not available for pools with AddressFamily set to `ipv4`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PubliclyAdvertisable", + "type": "boolean" + }, + "SourceIpamPoolId": { + "markdownDescription": "The ID of the source IPAM pool\\. You can use this option to create an IPAM pool within an existing source pool\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceIpamPoolId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The key/value combination of a tag assigned to the resource\\. Use the tag key in the filter name and the tag value as the filter value\\. For example, to find all resources that have a tag with the key `Owner` and the value `TeamA`, specify `tag:Owner` for the filter name and `TeamA` for the filter value\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The CIDR provisioned to the IPAM pool\\. A CIDR is a representation of an IP address and its associated network mask \\(or netmask\\) and refers to a range of IP addresses\\. An IPv4 CIDR example is `10.24.34.0/23`\\. An IPv6 CIDR example is `2001:DB8::/32`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cidr", + "type": "string" + } + }, + "required": [ + "Cidr" + ], + "type": "object" + }, + "AWS::EC2::IPAMPoolCidr": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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" + }, + "IpamPoolId": { + "type": "string" + }, + "NetmaskLength": { + "type": "number" + } + }, + "required": [ + "IpamPoolId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::IPAMPoolCidr" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::IPAMResourceDiscovery": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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::IPAMResourceDiscovery.IpamOperatingRegion" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::IPAMResourceDiscovery" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::IPAMResourceDiscovery.IpamOperatingRegion": { + "additionalProperties": false, + "properties": { + "RegionName": { + "type": "string" + } + }, + "required": [ + "RegionName" + ], + "type": "object" + }, + "AWS::EC2::IPAMResourceDiscoveryAssociation": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "IpamId": { + "type": "string" + }, + "IpamResourceDiscoveryId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "IpamId", + "IpamResourceDiscoveryId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::IPAMResourceDiscoveryAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "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": { + "markdownDescription": "The description of the scope\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "IpamId": { + "markdownDescription": "The ID of the IPAM for which you're creating this scope\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpamId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The key/value combination of a tag assigned to the resource\\. Use the tag key in the filter name and the tag value as the filter value\\. For example, to find all resources that have a tag with the key `Owner` and the value `TeamA`, specify `tag:Owner` for the filter name and `TeamA` for the filter value\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "This property is reserved for internal use\\. If you use it, the stack fails with this error: `Bad property set: [Testing this property] (Service: AmazonEC2; Status Code: 400; Error Code: InvalidParameterCombination; Request ID: 0XXXXXX-49c7-4b40-8bcc-76885dcXXXXX)`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "AdditionalInfo", + "type": "string" + }, + "Affinity": { + "markdownDescription": "Indicates whether the instance is associated with a dedicated host\\. If you want the instance to always restart on the same host on which it was launched, specify `host`\\. If you want the instance to restart on any available host, but try to launch onto the last host it ran on \\(on a best\\-effort basis\\), specify `default`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Affinity", + "type": "string" + }, + "AvailabilityZone": { + "markdownDescription": "The Availability Zone of the instance\\. \nIf not specified, an Availability Zone will be automatically chosen for you based on the load balancing criteria for the Region\\. \nThis parameter is not supported by [DescribeImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImageAttribute.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", + "type": "string" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.BlockDeviceMapping" + }, + "markdownDescription": "The block device mapping entries that defines the block devices to attach to the instance at launch\\. \nBy default, the block devices specified in the block device mapping for the AMI are used\\. You can override the AMI block device mapping using the instance block device mapping\\. For the root volume, you can override only the volume size, volume type, volume encryption settings, and the `DeleteOnTermination` setting\\. \nAfter the instance is running, you can modify only the `DeleteOnTermination` parameter for the attached volumes without interrupting the instance\\. Modifying any other parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: No \n*Type*: List of [BlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-mapping.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "BlockDeviceMappings", + "type": "array" + }, + "CpuOptions": { + "$ref": "#/definitions/AWS::EC2::Instance.CpuOptions", + "markdownDescription": "The CPU options for the instance\\. For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: [CpuOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-cpuoptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CpuOptions" + }, + "CreditSpecification": { + "$ref": "#/definitions/AWS::EC2::Instance.CreditSpecification", + "markdownDescription": "The credit option for CPU usage of the burstable performance instance\\. Valid values are `standard` and `unlimited`\\. To change this attribute after launch, use [ ModifyInstanceCreditSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceCreditSpecification.html)\\. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide*\\. \nDefault: `standard` \\(T2 instances\\) or `unlimited` \\(T3/T3a/T4g instances\\) \nFor T3 instances with `host` tenancy, only `standard` is supported\\. \n*Required*: No \n*Type*: [CreditSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-creditspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreditSpecification" + }, + "DisableApiTermination": { + "markdownDescription": "If you set this parameter to `true`, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can\\. To change this attribute after launch, use [ModifyInstanceAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html)\\. Alternatively, if you set `InstanceInitiatedShutdownBehavior` to `terminate`, you can terminate the instance by running the shutdown command from the instance\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableApiTermination", + "type": "boolean" + }, + "EbsOptimized": { + "markdownDescription": "Indicates whether the instance is optimized for Amazon EBS I/O\\. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance\\. This optimization isn't available with all instance types\\. Additional usage charges apply when using an EBS\\-optimized instance\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "EbsOptimized", + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.ElasticGpuSpecification" + }, + "markdownDescription": "An elastic GPU to associate with the instance\\. An Elastic GPU is a GPU resource that you can attach to your Windows instance to accelerate the graphics performance of your applications\\. For more information, see [Amazon EC2 Elastic GPUs](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: List of [ElasticGpuSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-elasticgpuspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ElasticGpuSpecifications", + "type": "array" + }, + "ElasticInferenceAccelerators": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.ElasticInferenceAccelerator" + }, + "markdownDescription": "An elastic inference accelerator to associate with the instance\\. Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to accelerate your Deep Learning \\(DL\\) inference workloads\\. \nYou cannot specify accelerators from different generations in the same request\\. \n*Required*: No \n*Type*: List of [ElasticInferenceAccelerator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-elasticinferenceaccelerator.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ElasticInferenceAccelerators", + "type": "array" + }, + "EnclaveOptions": { + "$ref": "#/definitions/AWS::EC2::Instance.EnclaveOptions", + "markdownDescription": "Indicates whether the instance is enabled for AWS Nitro Enclaves\\. \n*Required*: No \n*Type*: [EnclaveOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-enclaveoptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnclaveOptions" + }, + "HibernationOptions": { + "$ref": "#/definitions/AWS::EC2::Instance.HibernationOptions", + "markdownDescription": "Indicates whether an instance is enabled for hibernation\\. For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon EC2 User Guide*\\. \nYou can't enable hibernation and AWS Nitro Enclaves on the same instance\\. \n*Required*: No \n*Type*: [HibernationOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-hibernationoptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HibernationOptions" + }, + "HostId": { + "markdownDescription": "If you specify host for the `Affinity` property, the ID of a dedicated host that the instance is associated with\\. If you don't specify an ID, Amazon EC2 launches the instance onto any available, compatible dedicated host in your account\\. This type of launch is called an untargeted launch\\. Note that for untargeted launches, you must have a compatible, dedicated host available to successfully launch instances\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "HostId", + "type": "string" + }, + "HostResourceGroupArn": { + "markdownDescription": "The ARN of the host resource group in which to launch the instances\\. If you specify a host resource group ARN, omit the **Tenancy** parameter or set it to `host`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostResourceGroupArn", + "type": "string" + }, + "IamInstanceProfile": { + "markdownDescription": "The name of an IAM instance profile\\. To create a new IAM instance profile, use the [AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html) resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamInstanceProfile", + "type": "string" + }, + "ImageId": { + "markdownDescription": "The ID of the AMI\\. An AMI ID is required to launch an instance and must be specified here or in a launch template\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageId", + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "markdownDescription": "Indicates whether an instance stops or terminates when you initiate shutdown from the instance \\(using the operating system command for system shutdown\\)\\. \nDefault: `stop` \n*Required*: No \n*Type*: String \n*Allowed values*: `stop | terminate` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceInitiatedShutdownBehavior", + "type": "string" + }, + "InstanceType": { + "markdownDescription": "The instance type\\. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*\\. \nDefault: `m1.small` \n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | mac1.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6ad.12xlarge | r6ad.16xlarge | r6ad.24xlarge | r6ad.2xlarge | r6ad.32xlarge | r6ad.48xlarge | r6ad.4xlarge | r6ad.8xlarge | r6ad.large | r6ad.metal | r6ad.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "InstanceType", + "type": "string" + }, + "Ipv6AddressCount": { + "markdownDescription": "\\[EC2\\-VPC\\] The number of IPv6 addresses to associate with the primary network interface\\. Amazon EC2 chooses the IPv6 addresses from the range of your subnet\\. You cannot specify this option and the option to assign specific IPv6 addresses in the same request\\. You can specify this option if you've specified a minimum number of instances to launch\\. \nYou cannot specify this option and the network interfaces option in the same request\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv6AddressCount", + "type": "number" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address" + }, + "markdownDescription": "\\[EC2\\-VPC\\] The IPv6 addresses from the range of the subnet to associate with the primary network interface\\. You cannot specify this option and the option to assign a number of IPv6 addresses in the same request\\. You cannot specify this option if you've specified a minimum number of instances to launch\\. \nYou cannot specify this option and the network interfaces option in the same request\\. \n*Required*: No \n*Type*: List of [InstanceIpv6Address](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-instanceipv6address.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv6Addresses", + "type": "array" + }, + "KernelId": { + "markdownDescription": "The ID of the kernel\\. \nWe recommend that you use PV\\-GRUB instead of kernels and RAM disks\\. For more information, see [PV\\-GRUB](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "KernelId", + "type": "string" + }, + "KeyName": { + "markdownDescription": "The name of the key pair\\. You can create a key pair using [CreateKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html) or [ImportKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html)\\. \nIf you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyName", + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::EC2::Instance.LaunchTemplateSpecification", + "markdownDescription": "The launch template to use to launch the instances\\. Any parameters that you specify in the AWS CloudFormation template override the same parameters in the launch template\\. You can specify either the name or ID of a launch template, but not both\\. \n*Required*: No \n*Type*: [LaunchTemplateSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-launchtemplatespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchTemplate" + }, + "LicenseSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.LicenseSpecification" + }, + "markdownDescription": "The license configurations\\. \n*Required*: No \n*Type*: List of [LicenseSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-licensespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LicenseSpecifications", + "type": "array" + }, + "Monitoring": { + "markdownDescription": "Specifies whether detailed monitoring is enabled for the instance\\. Specify `true` to enable detailed monitoring\\. Otherwise, basic monitoring is enabled\\. For more information about detailed monitoring, see [Enable or turn off detailed monitoring for your instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch-new.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Monitoring", + "type": "boolean" + }, + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.NetworkInterface" + }, + "markdownDescription": "The network interfaces to associate with the instance\\. \nIf you use this property to point to a network interface, you must terminate the original interface before attaching a new one to allow the update of the instance to succeed\\. \nIf this resource has a public IP address and is also in a VPC that is defined in the same template, you must use the [ DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) to declare a dependency on the VPC\\-gateway attachment\\.\n*Required*: No \n*Type*: List of [NetworkInterface](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInterfaces", + "type": "array" + }, + "PlacementGroupName": { + "markdownDescription": "The name of an existing placement group that you want to launch the instance into \\(cluster \\| partition \\| spread\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlacementGroupName", + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/AWS::EC2::Instance.PrivateDnsNameOptions", + "markdownDescription": "The options for the instance hostname\\. \n*Required*: No \n*Type*: [PrivateDnsNameOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-privatednsnameoptions.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "PrivateDnsNameOptions" + }, + "PrivateIpAddress": { + "markdownDescription": "\\[EC2\\-VPC\\] The primary IPv4 address\\. You must specify a value from the IPv4 address range of the subnet\\. \nOnly one private IP address can be designated as primary\\. You can't specify this option if you've specified the option to designate a private IP address as the primary IP address in a network interface specification\\. You cannot specify this option if you're launching more than one instance in the request\\. \nYou cannot specify this option and the network interfaces option in the same request\\. \nIf you make an update to an instance that requires replacement, you must assign a new private IP address\\. During a replacement, AWS CloudFormation creates a new instance but doesn't delete the old instance until the stack has successfully updated\\. If the stack update fails, AWS CloudFormation uses the old instance to roll back the stack to the previous working state\\. The old and new instances cannot have the same private IP address\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrivateIpAddress", + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "markdownDescription": "Indicates whether to assign the tags from the instance to all of the volumes attached to the instance at launch\\. If you specify `true` and you assign tags to the instance, those tags are automatically assigned to all of the volumes that you attach to the instance at launch\\. If you specify `false`, those tags are not assigned to the attached volumes\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropagateTagsToVolumeOnCreation", + "type": "boolean" + }, + "RamdiskId": { + "markdownDescription": "The ID of the RAM disk to select\\. Some kernels require additional drivers at launch\\. Check the kernel requirements for information about whether you need to specify a RAM disk\\. To find kernel requirements, go to the AWS Resource Center and search for the kernel ID\\. \nWe recommend that you use PV\\-GRUB instead of kernels and RAM disks\\. For more information, see [PV\\-GRUB](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "RamdiskId", + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of the security groups\\. You can create a security group using [CreateSecurityGroup](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html)\\. \nIf you specify a network interface, you must specify any security groups as part of the network interface\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "\\[EC2\\-Classic, default VPC\\] The names of the security groups\\. For a nondefault VPC, you must use security group IDs instead\\. \nYou cannot specify this option and the network interfaces option in the same request\\. The list can contain both the name of existing Amazon EC2 security groups or references to AWS::EC2::SecurityGroup resources created in the template\\. \nDefault: Amazon EC2 uses the default security group\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroups", + "type": "array" + }, + "SourceDestCheck": { + "markdownDescription": "Enable or disable source/destination checks, which ensure that the instance is either the source or the destination of any traffic that it receives\\. If the value is `true`, source/destination checks are enabled; otherwise, they are disabled\\. The default value is `true`\\. You must disable source/destination checks if the instance runs services such as network address translation, routing, or firewalls\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceDestCheck", + "type": "boolean" + }, + "SsmAssociations": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.SsmAssociation" + }, + "markdownDescription": "The SSM [ document](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html) and parameter values in AWS Systems Manager to associate with this instance\\. To use this property, you must specify an IAM instance profile role for the instance\\. For more information, see [Create an IAM instance profile for Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-configuring-access-role.html) in the *AWS Systems Manager User Guide*\\. \nYou can currently associate only one document with an instance\\.\n*Required*: No \n*Type*: List of [SsmAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SsmAssociations", + "type": "array" + }, + "SubnetId": { + "markdownDescription": "\\[EC2\\-VPC\\] The ID of the subnet to launch the instance into\\. \nIf you specify a network interface, you must specify any subnets as part of the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to add to the instance\\. These tags are not applied to the EBS volumes, such as the root volume\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Tenancy": { + "markdownDescription": "The tenancy of the instance \\(if the instance is running in a VPC\\)\\. An instance with a tenancy of `dedicated` runs on single\\-tenant hardware\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dedicated | default | host` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Tenancy", + "type": "string" + }, + "UserData": { + "markdownDescription": "The user data script to make available to the instance\\. User data is limited to 16 KB\\. You must provide base64\\-encoded text\\. For more information, see [Fn::Base64](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-base64.html)\\. \nUser data runs only at instance launch\\. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) and [Run commands on your Windows instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-windows-user-data.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "UserData", + "type": "string" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.Volume" + }, + "markdownDescription": "The volumes to attach to the instance\\. \n*Required*: No \n*Type*: List of [Volume](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-mount-point.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Volumes", + "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": { + "markdownDescription": "The name of an input parameter that is in the associated SSM document\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "items": { + "type": "string" + }, + "markdownDescription": "The value of an input parameter\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "array" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EC2::Instance.BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "markdownDescription": "The device name \\(for example, `/dev/sdh` or `xvdh`\\)\\. \nAfter the instance is running, this parameter is used to specify the device name of the block device mapping to update\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceName", + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/AWS::EC2::Instance.Ebs", + "markdownDescription": "Parameters used to automatically set up EBS volumes when the instance is launched\\. \nAfter the instance is running, you can modify only the `DeleteOnTermination` parameter for the attached volumes without interrupting the instance\\. Modifying any other parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)\\.\n*Required*: Conditional \n*Type*: [Ebs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ebs" + }, + "NoDevice": { + "$ref": "#/definitions/AWS::EC2::Instance.NoDevice", + "markdownDescription": "To omit the device from the block device mapping, specify an empty string\\. \nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: Conditional \n*Type*: [NoDevice](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-nodevice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoDevice" + }, + "VirtualName": { + "markdownDescription": "The virtual device name \\(`ephemeral`N\\)\\. The name must be in the form `ephemeral`*X* where *X* is a number starting from zero \\(0\\)\\. For example, an instance type with 2 available instance store volumes can specify mappings for `ephemeral0` and `ephemeral1`\\. The number of available instance store volumes depends on the instance type\\. After you connect to the instance, you must mount the volume\\. \nNVMe instance store volumes are automatically enumerated and assigned a device name\\. Including them in your block device mapping has no effect\\. \n *Constraints*: For M3 instances, you must specify instance store volumes in the block device mapping for the instance\\. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI\\. \nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualName", + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "type": "object" + }, + "AWS::EC2::Instance.CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "markdownDescription": "The number of CPU cores for the instance\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CoreCount", + "type": "number" + }, + "ThreadsPerCore": { + "markdownDescription": "The number of threads per CPU core\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThreadsPerCore", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::Instance.CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "markdownDescription": "The credit option for CPU usage of the instance\\. \nValid values: `standard` \\| `unlimited` \nT3 instances with `host` tenancy do not support the `unlimited` CPU credit option\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CPUCredits", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::Instance.Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "markdownDescription": "Indicates whether the EBS volume is deleted on instance termination\\. For more information, see [Preserving Amazon EBS volumes on instance termination](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#preserving-volumes-on-termination) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteOnTermination", + "type": "boolean" + }, + "Encrypted": { + "markdownDescription": "Indicates whether the volume should be encrypted\\. The effect of setting the encryption state to `true` depends on the volume origin \\(new or from a snapshot\\), starting encryption state, ownership, and whether encryption by default is enabled\\. For more information, see [Encryption by default](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default) in the *Amazon Elastic Compute Cloud User Guide*\\. \nEncrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption\\. For more information, see [Supported instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances)\\. \nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encrypted", + "type": "boolean" + }, + "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\)\\. For `gp3`, `io1`, and `io2` volumes, this represents the number of IOPS that are provisioned for the volume\\. For `gp2` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting\\. \nThe following are the supported values for each volume type: \n+ `gp3`: 3,000\\-16,000 IOPS\n+ `io1`: 100\\-64,000 IOPS\n+ `io2`: 100\\-64,000 IOPS\nFor `io1` and `io2` volumes, we guarantee 64,000 IOPS only for [Instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)\\. Other instance families guarantee performance up to 32,000 IOPS\\. \nThis parameter is required for `io1` and `io2` volumes\\. The default for `gp3` volumes is 3,000 IOPS\\. This parameter is not supported for `gp2`, `st1`, `sc1`, or `standard` volumes\\. \nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iops", + "type": "number" + }, + "KmsKeyId": { + "markdownDescription": "The identifier of the AWS KMS key to use for Amazon EBS encryption\\. If `KmsKeyId` is specified, the encrypted state must be `true`\\. If the encrypted state is `true` but you do not specify `KmsKeyId`, your KMS key for EBS is used\\. \nYou can specify the KMS key using any of the following: \n+ Key ID\\. For example, 1234abcd\\-12ab\\-34cd\\-56ef\\-1234567890ab\\.\n+ Key alias\\. For example, alias/ExampleAlias\\.\n+ Key ARN\\. For example, arn:aws:kms:us\\-west\\-2:111122223333:key/1234abcd\\-12ab\\-34cd\\-56ef\\-1234567890ab\\.\n+ Alias ARN\\. For example, arn:aws:kms:us\\-west\\-2:111122223333:alias/ExampleAlias\\.\nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + }, + "SnapshotId": { + "markdownDescription": "The ID of the snapshot\\. \nIf you specify both `SnapshotId` and `VolumeSize`, `VolumeSize` must be equal or greater than the size of the snapshot\\. \nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotId", + "type": "string" + }, + "VolumeSize": { + "markdownDescription": "The size of the volume, in GiBs\\. You must specify either a snapshot ID or a volume size\\. If you specify a snapshot, the default is the snapshot size\\. You can specify a volume size that is equal to or larger than the snapshot size\\. \nThe following are the supported volumes sizes for each volume type: \n+ `gp2` and `gp3`:1\\-16,384\n+ `io1` and `io2`: 4\\-16,384\n+ `st1` and `sc1`: 125\\-16,384\n+ `standard`: 1\\-1,024\nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeSize", + "type": "number" + }, + "VolumeType": { + "markdownDescription": "The volume type\\. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon EC2 User Guide*\\. If the volume type is `io1` or `io2`, you must specify the IOPS that the volume supports\\. \nAfter the instance is running, modifying this parameter results in instance [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `gp2 | gp3 | io1 | io2 | sc1 | st1 | standard` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::Instance.ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "markdownDescription": "The type of Elastic Graphics accelerator\\. For more information about the values to specify for `Type`, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::Instance.ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "markdownDescription": "The number of elastic inference accelerators to attach to the instance\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count", + "type": "number" + }, + "Type": { + "markdownDescription": "The type of elastic inference accelerator\\. The possible values are `eia1.medium`, `eia1.large`, `eia1.xlarge`, `eia2.medium`, `eia2.large`, and `eia2.xlarge`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::Instance.EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "If this parameter is set to `true`, the instance is enabled for AWS Nitro Enclaves; otherwise, it is not enabled for AWS Nitro Enclaves\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::Instance.HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "markdownDescription": "If you set this parameter to `true`, your instance is enabled for hibernation\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configured", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::Instance.InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "markdownDescription": "The IPv6 address\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6Address", + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "AWS::EC2::Instance.LaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "markdownDescription": "The ID of the launch template\\. \nYou must specify the `LaunchTemplateId` or the `LaunchTemplateName`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplateId", + "type": "string" + }, + "LaunchTemplateName": { + "markdownDescription": "The name of the launch template\\. \nYou must specify the `LaunchTemplateName` or the `LaunchTemplateId`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplateName", + "type": "string" + }, + "Version": { + "markdownDescription": "The version number of the launch template\\. \nSpecifying `$Latest` or `$Default` for the template version number is not supported\\. However, you can specify `LatestVersionNumber` or `DefaultVersionNumber` using the `Fn::GetAtt` intrinsic function\\. For more information, see [Fn::GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#aws-resource-ec2-launchtemplate-return-values-fn--getatt)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", + "type": "string" + } + }, + "required": [ + "Version" + ], + "type": "object" + }, + "AWS::EC2::Instance.LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the license configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LicenseConfigurationArn", + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "AWS::EC2::Instance.NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "markdownDescription": "Indicates whether to assign a carrier IP address to the network interface\\. \nYou can only assign a carrier IP address to a network interface that is in a subnet in a Wavelength Zone\\. For more information about carrier IP addresses, see [Carrier IP address](https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#provider-owned-ip) in the * AWS Wavelength Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociateCarrierIpAddress", + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "markdownDescription": "Indicates whether to assign a public IPv4 address to an instance\\. Applies only if creating a network interface when launching an instance\\. The network interface must be the primary network interface\\. If launching into a default subnet, the default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociatePublicIpAddress", + "type": "boolean" + }, + "DeleteOnTermination": { + "markdownDescription": "Indicates whether the network interface is deleted when the instance is terminated\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteOnTermination", + "type": "boolean" + }, + "Description": { + "markdownDescription": "The description of the network interface\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DeviceIndex": { + "markdownDescription": "The position of the network interface in the attachment order\\. A primary network interface has a device index of 0\\. \nIf you create a network interface when launching an instance, you must specify the device index\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceIndex", + "type": "string" + }, + "GroupSet": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of the security groups for the network interface\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupSet", + "type": "array" + }, + "Ipv6AddressCount": { + "markdownDescription": "A number of IPv6 addresses to assign to the network interface\\. Amazon EC2 chooses the IPv6 addresses from the range of the subnet\\. You cannot specify this option and the option to assign specific IPv6 addresses in the same request\\. You can specify this option if you've specified a minimum number of instances to launch\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6AddressCount", + "type": "number" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address" + }, + "markdownDescription": "The IPv6 addresses to assign to the network interface\\. You cannot specify this option and the option to assign a number of IPv6 addresses in the same request\\. You cannot specify this option if you've specified a minimum number of instances to launch\\. \n*Required*: No \n*Type*: List of [InstanceIpv6Address](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-instanceipv6address.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6Addresses", + "type": "array" + }, + "NetworkInterfaceId": { + "markdownDescription": "The ID of the network interface, when attaching an existing network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkInterfaceId", + "type": "string" + }, + "PrivateIpAddress": { + "markdownDescription": "The private IPv4 address of the network interface\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateIpAddress", + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.PrivateIpAddressSpecification" + }, + "markdownDescription": "One or more private IPv4 addresses to assign to the network interface\\. Only one private IPv4 address can be designated as primary\\. \n*Required*: No \n*Type*: List of [PrivateIpAddressSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-interface-privateipspec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateIpAddresses", + "type": "array" + }, + "SecondaryPrivateIpAddressCount": { + "markdownDescription": "The number of secondary private IPv4 addresses\\. You can't specify this option and specify more than one private IP address using the private IP addresses option\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryPrivateIpAddressCount", + "type": "number" + }, + "SubnetId": { + "markdownDescription": "The ID of the subnet associated with the network interface\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetId", + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "AWS::EC2::Instance.NoDevice": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::EC2::Instance.PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "markdownDescription": "Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records\\. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableResourceNameDnsAAAARecord", + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "markdownDescription": "Indicates whether to respond to DNS queries for instance hostnames with DNS A records\\. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableResourceNameDnsARecord", + "type": "boolean" + }, + "HostnameType": { + "markdownDescription": "The type of hostnames to assign to instances in the subnet at launch\\. For IPv4 only subnets, an instance DNS name must be based on the instance IPv4 address\\. For IPv6 only subnets, an instance DNS name must be based on the instance ID\\. For dual\\-stack subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID\\. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ip-name | resource-name` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostnameType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::Instance.PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "markdownDescription": "Indicates whether the private IPv4 address is the primary private IPv4 address\\. Only one IPv4 address can be designated as primary\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Primary", + "type": "boolean" + }, + "PrivateIpAddress": { + "markdownDescription": "The private IPv4 address\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateIpAddress", + "type": "string" + } + }, + "required": [ + "Primary", + "PrivateIpAddress" + ], + "type": "object" + }, + "AWS::EC2::Instance.SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.AssociationParameter" + }, + "markdownDescription": "The input parameter values to use with the associated SSM document\\. \n*Required*: No \n*Type*: List of [AssociationParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations-associationparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociationParameters", + "type": "array" + }, + "DocumentName": { + "markdownDescription": "The name of an SSM document to associate with the instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentName", + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "AWS::EC2::Instance.Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "markdownDescription": "The device name \\(for example, `/dev/sdh` or `xvdh`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Device", + "type": "string" + }, + "VolumeId": { + "markdownDescription": "The ID of the EBS volume\\. The volume and instance must be within the same Availability Zone\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "Any tags to assign to the internet gateway\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "A unique name for the key pair\\. \nConstraints: Up to 255 ASCII characters \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyName", + "type": "string" + }, + "KeyType": { + "markdownDescription": "The type of key pair\\. Note that ED25519 keys are not supported for Windows instances\\. \nIf the `PublicKeyMaterial` property is specified, the `KeyType` property is ignored, and the key type is inferred from the `PublicKeyMaterial` value\\. \nDefault: `rsa` \n*Required*: No \n*Type*: String \n*Allowed values*: `ed25519 | rsa` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyType", + "type": "string" + }, + "PublicKeyMaterial": { + "markdownDescription": "The public key material\\. The `PublicKeyMaterial` property is used to import a key pair\\. If this property is not specified, then a new key pair will be created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublicKeyMaterial", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to apply to the key pair\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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", + "markdownDescription": "The information for the launch template\\. \n*Required*: Yes \n*Type*: [LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplateData" + }, + "LaunchTemplateName": { + "markdownDescription": "A name for the launch template\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9\\(\\)\\.\\-/_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchTemplateName", + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateTagSpecification" + }, + "markdownDescription": "The tags to apply to the launch template on creation\\. To tag the launch template, the resource type must be `launch-template`\\. \nTo specify the tags for the resources that are created when an instance is launched, you must use the `TagSpecifications` parameter in the [launch template data](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestLaunchTemplateData.html) structure\\.\n*Required*: No \n*Type*: List of [LaunchTemplateTagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatetagspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagSpecifications", + "type": "array" + }, + "VersionDescription": { + "markdownDescription": "A description for the first version of the launch template\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The maximum number of accelerators\\. To specify no maximum limit, omit this parameter\\. To exclude accelerator\\-enabled instance types, set `Max` to `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum number of accelerators\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.AcceleratorTotalMemoryMiB": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum amount of accelerator memory, in MiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum amount of accelerator memory, in MiB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.BaselineEbsBandwidthMbps": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum baseline bandwidth, in Mbps\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum baseline bandwidth, in Mbps\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "markdownDescription": "The device name \\(for example, /dev/sdh or xvdh\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceName", + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ebs", + "markdownDescription": "Parameters used to automatically set up EBS volumes when the instance is launched\\. \n*Required*: No \n*Type*: [Ebs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping-ebs.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ebs" + }, + "NoDevice": { + "markdownDescription": "To omit the device from the block device mapping, specify an empty string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoDevice", + "type": "string" + }, + "VirtualName": { + "markdownDescription": "The virtual device name \\(ephemeralN\\)\\. Instance store volumes are numbered starting from 0\\. An instance type with 2 available instance store volumes can specify mappings for ephemeral0 and ephemeral1\\. The number of available instance store volumes depends on the instance type\\. After you connect to the instance, you must mount the volume\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CapacityReservationSpecification": { + "additionalProperties": false, + "properties": { + "CapacityReservationPreference": { + "markdownDescription": "Indicates the instance's Capacity Reservation preferences\\. Possible preferences include: \n+ `open` \\- The instance can run in any `open` Capacity Reservation that has matching attributes \\(instance type, platform, Availability Zone\\)\\.\n+ `none` \\- The instance avoids running in a Capacity Reservation even if one is available\\. The instance runs in On\\-Demand capacity\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `none | open` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityReservationPreference", + "type": "string" + }, + "CapacityReservationTarget": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CapacityReservationTarget", + "markdownDescription": "Information about the target Capacity Reservation or Capacity Reservation group\\. \n*Required*: No \n*Type*: [CapacityReservationTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-capacityreservationtarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityReservationTarget" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CapacityReservationTarget": { + "additionalProperties": false, + "properties": { + "CapacityReservationId": { + "markdownDescription": "The ID of the Capacity Reservation in which to run the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityReservationId", + "type": "string" + }, + "CapacityReservationResourceGroupArn": { + "markdownDescription": "The ARN of the Capacity Reservation resource group in which to run the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityReservationResourceGroupArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "markdownDescription": "The number of CPU cores for the instance\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CoreCount", + "type": "number" + }, + "ThreadsPerCore": { + "markdownDescription": "The number of threads per CPU core\\. To disable multithreading for the instance, specify a value of `1`\\. Otherwise, specify the default value of `2`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThreadsPerCore", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CreditSpecification": { + "additionalProperties": false, + "properties": { + "CpuCredits": { + "markdownDescription": "The credit option for CPU usage of a T instance\\. \nValid values: `standard` \\| `unlimited` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CpuCredits", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "markdownDescription": "Indicates whether the EBS volume is deleted on instance termination\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteOnTermination", + "type": "boolean" + }, + "Encrypted": { + "markdownDescription": "Indicates whether the EBS volume is encrypted\\. Encrypted volumes can only be attached to instances that support Amazon EBS encryption\\. If you are creating a volume from a snapshot, you can't specify an encryption value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encrypted", + "type": "boolean" + }, + "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\)\\. For `gp3`, `io1`, and `io2` volumes, this represents the number of IOPS that are provisioned for the volume\\. For `gp2` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting\\. \nThe following are the supported values for each volume type: \n+ `gp3`: 3,000\\-16,000 IOPS\n+ `io1`: 100\\-64,000 IOPS\n+ `io2`: 100\\-64,000 IOPS\nFor `io1` and `io2` volumes, we guarantee 64,000 IOPS only for [Instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)\\. Other instance families guarantee performance up to 32,000 IOPS\\. \nThis parameter is supported for `io1`, `io2`, and `gp3` volumes only\\. This parameter is not supported for `gp2`, `st1`, `sc1`, or `standard` volumes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iops", + "type": "number" + }, + "KmsKeyId": { + "markdownDescription": "The ARN of the symmetric AWS Key Management Service \\(AWS KMS\\) CMK used for encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", + "type": "string" + }, + "SnapshotId": { + "markdownDescription": "The ID of the snapshot\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotId", + "type": "string" + }, + "Throughput": { + "markdownDescription": "The throughput to provision for a `gp3` volume, with a maximum of 1,000 MiB/s\\. \nValid Range: Minimum value of 125\\. Maximum value of 1000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Throughput", + "type": "number" + }, + "VolumeSize": { + "markdownDescription": "The size of the volume, in GiBs\\. You must specify either a snapshot ID or a volume size\\. The following are the supported volumes sizes for each volume type: \n+ `gp2` and `gp3`: 1\\-16,384\n+ `io1` and `io2`: 4\\-16,384\n+ `st1` and `sc1`: 125\\-16,384\n+ `standard`: 1\\-1,024\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeSize", + "type": "number" + }, + "VolumeType": { + "markdownDescription": "The volume type\\. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `gp2 | gp3 | io1 | io2 | sc1 | st1 | standard` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "markdownDescription": "The type of Elastic Graphics accelerator\\. For more information about the values to specify for `Type`, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "If this parameter is set to `true`, the instance is enabled for AWS Nitro Enclaves; otherwise, it is not enabled for AWS Nitro Enclaves\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "markdownDescription": "If you set this parameter to `true`, the instance is enabled for hibernation\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configured", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.IamInstanceProfile": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the instance profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the instance profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.InstanceMarketOptions": { + "additionalProperties": false, + "properties": { + "MarketType": { + "markdownDescription": "The market type\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `spot` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MarketType", + "type": "string" + }, + "SpotOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.SpotOptions", + "markdownDescription": "The options for Spot Instances\\. \n*Required*: No \n*Type*: [SpotOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpotOptions" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.InstanceRequirements": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.AcceleratorCount", + "markdownDescription": "The minimum and maximum number of accelerators \\(GPUs, FPGAs, or AWS Inferentia chips\\) on an instance\\. \nTo exclude accelerator\\-enabled instance types, set `Max` to `0`\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [AcceleratorCount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-acceleratorcount.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceleratorCount" + }, + "AcceleratorManufacturers": { + "items": { + "type": "string" + }, + "markdownDescription": "Indicates whether instance types must have accelerators by specific manufacturers\\. \n+ For instance types with NVIDIA devices, specify `nvidia`\\.\n+ For instance types with AMD devices, specify `amd`\\.\n+ For instance types with AWS devices, specify `amazon-web-services`\\.\n+ For instance types with Xilinx devices, specify `xilinx`\\.\nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceleratorManufacturers", + "type": "array" + }, + "AcceleratorNames": { + "items": { + "type": "string" + }, + "markdownDescription": "The accelerators that must be on the instance type\\. \n+ For instance types with NVIDIA A100 GPUs, specify `a100`\\.\n+ For instance types with NVIDIA V100 GPUs, specify `v100`\\.\n+ For instance types with NVIDIA K80 GPUs, specify `k80`\\.\n+ For instance types with NVIDIA T4 GPUs, specify `t4`\\.\n+ For instance types with NVIDIA M60 GPUs, specify `m60`\\.\n+ For instance types with AMD Radeon Pro V520 GPUs, specify `radeon-pro-v520`\\.\n+ For instance types with Xilinx VU9P FPGAs, specify `vu9p`\\.\n+ For instance types with AWS Inferentia chips, specify `inferentia`\\.\n+ For instance types with NVIDIA GRID K520 GPUs, specify `k520`\\.\nDefault: Any accelerator \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceleratorNames", + "type": "array" + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.AcceleratorTotalMemoryMiB", + "markdownDescription": "The minimum and maximum amount of total accelerator memory, in MiB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [AcceleratorTotalMemoryMiB](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-acceleratortotalmemorymib.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceleratorTotalMemoryMiB" + }, + "AcceleratorTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The accelerator types that must be on the instance type\\. \n+ For instance types with GPU accelerators, specify `gpu`\\.\n+ For instance types with FPGA accelerators, specify `fpga`\\.\n+ For instance types with inference accelerators, specify `inference`\\.\nDefault: Any accelerator type \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceleratorTypes", + "type": "array" + }, + "AllowedInstanceTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The instance types to apply your specified attributes against\\. All other instance types are ignored, even if they match your specified attributes\\. \nYou can use strings with one or more wild cards, represented by an asterisk \\(`*`\\), to allow an instance type, size, or generation\\. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`\\. \nFor example, if you specify `c5*`,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types\\. If you specify `m5a.*`, Amazon EC2 will allow all the M5a instance types, but not the M5n instance types\\. \nIf you specify `AllowedInstanceTypes`, you can't specify `ExcludedInstanceTypes`\\.\nDefault: All instance types \n*Required*: No \n*Type*: List of String \n*Maximum*: `400` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedInstanceTypes", + "type": "array" + }, + "BareMetal": { + "markdownDescription": "Indicates whether bare metal instance types must be included, excluded, or required\\. \n+ To include bare metal instance types, specify `included`\\.\n+ To require only bare metal instance types, specify `required`\\.\n+ To exclude bare metal instance types, specify `excluded`\\.\nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BareMetal", + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.BaselineEbsBandwidthMbps", + "markdownDescription": "The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps\\. For more information, see [Amazon EBS\u2013optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide*\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [BaselineEbsBandwidthMbps](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-baselineebsbandwidthmbps.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaselineEbsBandwidthMbps" + }, + "BurstablePerformance": { + "markdownDescription": "Indicates whether burstable performance T instance types are included, excluded, or required\\. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html)\\. \n+ To include burstable performance instance types, specify `included`\\.\n+ To require only burstable performance instance types, specify `required`\\.\n+ To exclude burstable performance instance types, specify `excluded`\\.\nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BurstablePerformance", + "type": "string" + }, + "CpuManufacturers": { + "items": { + "type": "string" + }, + "markdownDescription": "The CPU manufacturers to include\\. \n+ For instance types with Intel CPUs, specify `intel`\\.\n+ For instance types with AMD CPUs, specify `amd`\\.\n+ For instance types with AWS CPUs, specify `amazon-web-services`\\.\nDon't confuse the CPU manufacturer with the CPU architecture\\. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image \\(AMI\\) that you specify in your launch template\\.\nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CpuManufacturers", + "type": "array" + }, + "ExcludedInstanceTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The instance types to exclude\\. \nYou can use strings with one or more wild cards, represented by an asterisk \\(`*`\\), to exclude an instance type, size, or generation\\. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`\\. \nFor example, if you specify `c5*`,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types\\. If you specify `m5a.*`, Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types\\. \nIf you specify `ExcludedInstanceTypes`, you can't specify `AllowedInstanceTypes`\\.\nDefault: No excluded instance types \n*Required*: No \n*Type*: List of String \n*Maximum*: `400` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludedInstanceTypes", + "type": "array" + }, + "InstanceGenerations": { + "items": { + "type": "string" + }, + "markdownDescription": "Indicates whether current or previous generation instance types are included\\. The current generation instance types are recommended for use\\. Current generation instance types are typically the latest two to three generations in each instance family\\. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*\\. \nFor current generation instance types, specify `current`\\. \nFor previous generation instance types, specify `previous`\\. \nDefault: Current and previous generation instance types \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceGenerations", + "type": "array" + }, + "LocalStorage": { + "markdownDescription": "Indicates whether instance types with instance store volumes are included, excluded, or required\\. For more information, [Amazon EC2 instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in the *Amazon EC2 User Guide*\\. \n+ To include instance types with instance store volumes, specify `included`\\.\n+ To require only instance types with instance store volumes, specify `required`\\.\n+ To exclude instance types with instance store volumes, specify `excluded`\\.\nDefault: `included` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocalStorage", + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The type of local storage that is required\\. \n+ For instance types with hard disk drive \\(HDD\\) storage, specify `hdd`\\.\n+ For instance types with solid state drive \\(SSD\\) storage, specify `ssd`\\.\nDefault: `hdd` and `ssd` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocalStorageTypes", + "type": "array" + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.MemoryGiBPerVCpu", + "markdownDescription": "The minimum and maximum amount of memory per vCPU, in GiB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [MemoryGiBPerVCpu](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-memorygibpervcpu.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MemoryGiBPerVCpu" + }, + "MemoryMiB": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.MemoryMiB", + "markdownDescription": "The minimum and maximum amount of memory, in MiB\\. \n*Required*: No \n*Type*: [MemoryMiB](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-memorymib.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MemoryMiB" + }, + "NetworkBandwidthGbps": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.NetworkBandwidthGbps", + "markdownDescription": "The minimum and maximum amount of network bandwidth, in gigabits per second \\(Gbps\\)\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [NetworkBandwidthGbps](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkbandwidthgbps.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkBandwidthGbps" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.NetworkInterfaceCount", + "markdownDescription": "The minimum and maximum number of network interfaces\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [NetworkInterfaceCount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterfacecount.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkInterfaceCount" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "markdownDescription": "The price protection threshold for On\\-Demand Instances\\. This is the maximum you\u2019ll pay for an On\\-Demand Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes\\. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold\\. \nThe parameter accepts an integer, which Amazon EC2 interprets as a percentage\\. \nTo turn off price protection, specify a high value, such as `999999`\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html)\\. \nIf you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per\\-vCPU or per\\-memory price instead of the per\\-instance price\\.\nDefault: `20` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnDemandMaxPricePercentageOverLowestPrice", + "type": "number" + }, + "RequireHibernateSupport": { + "markdownDescription": "Indicates whether instance types must support hibernation for On\\-Demand Instances\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html)\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequireHibernateSupport", + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "markdownDescription": "The price protection threshold for Spot Instances\\. This is the maximum you\u2019ll pay for a Spot Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes\\. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold\\. \nThe parameter accepts an integer, which Amazon EC2 interprets as a percentage\\. \nTo turn off price protection, specify a high value, such as `999999`\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html)\\. \nIf you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per\\-vCPU or per\\-memory price instead of the per\\-instance price\\.\nDefault: `100` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpotMaxPricePercentageOverLowestPrice", + "type": "number" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.TotalLocalStorageGB", + "markdownDescription": "The minimum and maximum amount of total local storage, in GB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [TotalLocalStorageGB](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-totallocalstoragegb.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TotalLocalStorageGB" + }, + "VCpuCount": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.VCpuCount", + "markdownDescription": "The minimum and maximum number of vCPUs\\. \n*Required*: No \n*Type*: [VCpuCount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-vcpucount.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VCpuCount" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Ipv4PrefixSpecification": { + "additionalProperties": false, + "properties": { + "Ipv4Prefix": { + "markdownDescription": "The IPv4 prefix\\. For information, see [ Assigning prefixes to Amazon EC2 network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv4Prefix", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Ipv6Add": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "markdownDescription": "One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet\\. You can't use this option if you're specifying a number of IPv6 addresses\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6Address", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Ipv6PrefixSpecification": { + "additionalProperties": false, + "properties": { + "Ipv6Prefix": { + "markdownDescription": "The IPv6 prefix\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6Prefix", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.LaunchTemplateData": { + "additionalProperties": false, + "properties": { + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.BlockDeviceMapping" + }, + "markdownDescription": "The block device mapping\\. \n*Required*: No \n*Type*: List of [BlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockDeviceMappings", + "type": "array" + }, + "CapacityReservationSpecification": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CapacityReservationSpecification", + "markdownDescription": "The Capacity Reservation targeting option\\. If you do not specify this parameter, the instance's Capacity Reservation preference defaults to `open`, which enables it to run in any open Capacity Reservation that has matching attributes \\(instance type, platform, Availability Zone\\)\\. \n*Required*: No \n*Type*: [CapacityReservationSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-capacityreservationspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityReservationSpecification" + }, + "CpuOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CpuOptions", + "markdownDescription": "The CPU options for the instance\\. For more information, see [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: [CpuOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-cpuoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CpuOptions" + }, + "CreditSpecification": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CreditSpecification", + "markdownDescription": "The credit option for CPU usage of the instance\\. Valid only for T instances\\. \n*Required*: No \n*Type*: [CreditSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-creditspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreditSpecification" + }, + "DisableApiStop": { + "markdownDescription": "Indicates whether to enable the instance for stop protection\\. For more information, see [Stop protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableApiStop", + "type": "boolean" + }, + "DisableApiTermination": { + "markdownDescription": "If you set this parameter to `true`, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can\\. To change this attribute after launch, use [ModifyInstanceAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html)\\. Alternatively, if you set `InstanceInitiatedShutdownBehavior` to `terminate`, you can terminate the instance by running the shutdown command from the instance\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableApiTermination", + "type": "boolean" + }, + "EbsOptimized": { + "markdownDescription": "Indicates whether the instance is optimized for Amazon EBS I/O\\. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance\\. This optimization isn't available with all instance types\\. Additional usage charges apply when using an EBS\\-optimized instance\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EbsOptimized", + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.ElasticGpuSpecification" + }, + "markdownDescription": "An elastic GPU to associate with the instance\\. \n*Required*: No \n*Type*: List of [ElasticGpuSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-elasticgpuspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticGpuSpecifications", + "type": "array" + }, + "ElasticInferenceAccelerators": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateElasticInferenceAccelerator" + }, + "markdownDescription": "The elastic inference accelerator for the instance\\. \n*Required*: No \n*Type*: List of [LaunchTemplateElasticInferenceAccelerator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplateelasticinferenceaccelerator.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticInferenceAccelerators", + "type": "array" + }, + "EnclaveOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.EnclaveOptions", + "markdownDescription": "Indicates whether the instance is enabled for AWS Nitro Enclaves\\. For more information, see [ What is AWS Nitro Enclaves?](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html) in the * AWS Nitro Enclaves User Guide*\\. \nYou can't enable AWS Nitro Enclaves and hibernation on the same instance\\. \n*Required*: No \n*Type*: [EnclaveOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-enclaveoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnclaveOptions" + }, + "HibernationOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.HibernationOptions", + "markdownDescription": "Indicates whether an instance is enabled for hibernation\\. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html)\\. For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: [HibernationOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-hibernationoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HibernationOptions" + }, + "IamInstanceProfile": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.IamInstanceProfile", + "markdownDescription": "The name or Amazon Resource Name \\(ARN\\) of an IAM instance profile\\. \n*Required*: No \n*Type*: [IamInstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-iaminstanceprofile.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamInstanceProfile" + }, + "ImageId": { + "markdownDescription": "The ID of the AMI\\. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch\\. \nValid formats: \n+ `ami-17characters00000` \n+ `resolve:ssm:parameter-name` \n+ `resolve:ssm:parameter-name:version-number` \n+ `resolve:ssm:parameter-name:label` \nFor more information, see [Use a Systems Manager parameter to find an AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html#using-systems-manager-parameter-to-find-AMI) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageId", + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "markdownDescription": "Indicates whether an instance stops or terminates when you initiate shutdown from the instance \\(using the operating system command for system shutdown\\)\\. \nDefault: `stop` \n*Required*: No \n*Type*: String \n*Allowed values*: `stop | terminate` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceInitiatedShutdownBehavior", + "type": "string" + }, + "InstanceMarketOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.InstanceMarketOptions", + "markdownDescription": "The market \\(purchasing\\) option for the instances\\. \n*Required*: No \n*Type*: [InstanceMarketOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceMarketOptions" + }, + "InstanceRequirements": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.InstanceRequirements", + "markdownDescription": "The attributes for the instance types\\. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes\\. \nIf you specify `InstanceRequirements`, you can't specify `InstanceType`\\. \n*Required*: No \n*Type*: [InstanceRequirements](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancerequirements.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceRequirements" + }, + "InstanceType": { + "markdownDescription": "The instance type\\. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \nIf you specify `InstanceType`, you can't specify `InstanceRequirements`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | mac1.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6ad.12xlarge | r6ad.16xlarge | r6ad.24xlarge | r6ad.2xlarge | r6ad.32xlarge | r6ad.48xlarge | r6ad.4xlarge | r6ad.8xlarge | r6ad.large | r6ad.metal | r6ad.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", + "type": "string" + }, + "KernelId": { + "markdownDescription": "The ID of the kernel\\. \nWe recommend that you use PV\\-GRUB instead of kernels and RAM disks\\. For more information, see [User Provided Kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KernelId", + "type": "string" + }, + "KeyName": { + "markdownDescription": "The name of the key pair\\. You can create a key pair using [CreateKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html) or [ImportKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html)\\. \nIf you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyName", + "type": "string" + }, + "LicenseSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LicenseSpecification" + }, + "markdownDescription": "The license configurations\\. \n*Required*: No \n*Type*: List of [LicenseSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-licensespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LicenseSpecifications", + "type": "array" + }, + "MaintenanceOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.MaintenanceOptions", + "markdownDescription": "The maintenance options of your instance\\. \n*Required*: No \n*Type*: [MaintenanceOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-maintenanceoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaintenanceOptions" + }, + "MetadataOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.MetadataOptions", + "markdownDescription": "The metadata options for the instance\\. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: [MetadataOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-metadataoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetadataOptions" + }, + "Monitoring": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Monitoring", + "markdownDescription": "The monitoring for the instance\\. \n*Required*: No \n*Type*: [Monitoring](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-monitoring.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Monitoring" + }, + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.NetworkInterface" + }, + "markdownDescription": "One or more network interfaces\\. If you specify a network interface, you must specify any security groups and subnets as part of the network interface\\. \n*Required*: No \n*Type*: List of [NetworkInterface](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkInterfaces", + "type": "array" + }, + "Placement": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Placement", + "markdownDescription": "The placement for the instance\\. \n*Required*: No \n*Type*: [Placement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-placement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Placement" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.PrivateDnsNameOptions", + "markdownDescription": "The options for the instance hostname\\. The default values are inherited from the subnet\\. \n*Required*: No \n*Type*: [PrivateDnsNameOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-privatednsnameoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateDnsNameOptions" + }, + "RamDiskId": { + "markdownDescription": "The ID of the RAM disk\\. \nWe recommend that you use PV\\-GRUB instead of kernels and RAM disks\\. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon Elastic Compute Cloud User Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RamDiskId", + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more security group IDs\\. You can create a security group using [CreateSecurityGroup](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html)\\. You cannot specify both a security group ID and security name in the same request\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more security group names\\. For a nondefault VPC, you must use security group IDs instead\\. You cannot specify both a security group ID and security name in the same request\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroups", + "type": "array" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.TagSpecification" + }, + "markdownDescription": "The tags to apply to the resources that are created during instance launch\\. \nYou can specify tags for the following resources only: \n+ Instances\n+ Volumes\n+ Elastic graphics\n+ Spot Instance requests\n+ Network interfaces\nTo tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html)\\. \nTo tag the launch template itself, you must use the [TagSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html) parameter\\.\n*Required*: No \n*Type*: List of [TagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-tagspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagSpecifications", + "type": "array" + }, + "UserData": { + "markdownDescription": "The user data to make available to the instance\\. You must provide base64\\-encoded text\\. User data is limited to 16 KB\\. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) \\(Linux\\) or [Work with instance user data](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instancedata-add-user-data.html) \\(Windows\\) in the *Amazon Elastic Compute Cloud User Guide*\\. \nIf you are creating the launch template for use with AWS Batch, the user data must be provided in the [ MIME multi\\-part archive format](https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive)\\. For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserData", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.LaunchTemplateElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "markdownDescription": "The number of elastic inference accelerators to attach to the instance\\. \nDefault: 1 \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count", + "type": "number" + }, + "Type": { + "markdownDescription": "The type of elastic inference accelerator\\. The possible values are eia1\\.medium, eia1\\.large, and eia1\\.xlarge\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.LaunchTemplateTagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "markdownDescription": "The type of resource\\. To tag the launch template, `ResourceType` must be `launch-template`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `capacity-reservation | capacity-reservation-fleet | carrier-gateway | client-vpn-endpoint | coip-pool | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | instance-event-window | internet-gateway | ipam | ipam-pool | ipam-resource-discovery | ipam-resource-discovery-association | ipam-scope | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | launch-template | local-gateway | local-gateway-route-table | local-gateway-route-table-virtual-interface-group-association | local-gateway-route-table-vpc-association | local-gateway-virtual-interface | local-gateway-virtual-interface-group | natgateway | network-acl | network-insights-access-scope | network-insights-access-scope-analysis | network-insights-analysis | network-insights-path | network-interface | placement-group | prefix-list | replace-root-volume-task | reserved-instances | route-server | route-server-endpoint | route-server-peer | route-table | security-group | security-group-rule | snapshot | spot-fleet-request | spot-instances-request | subnet | subnet-cidr-reservation | traffic-mirror-filter | traffic-mirror-filter-rule | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-policy-table | transit-gateway-route-table | transit-gateway-route-table-announcement | verified-access-endpoint | verified-access-group | verified-access-instance | verified-access-policy | verified-access-trust-provider | volume | vpc | vpc-block-public-access-exclusion | vpc-endpoint | vpc-endpoint-connection | vpc-endpoint-connection-device-type | vpc-endpoint-service | vpc-endpoint-service-permission | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-connection-device-type | vpn-gateway` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceType", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags for the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the license configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LicenseConfigurationArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.MaintenanceOptions": { + "additionalProperties": false, + "properties": { + "AutoRecovery": { + "markdownDescription": "Disables the automatic recovery behavior of your instance or sets it to default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `default | disabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoRecovery", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.MemoryGiBPerVCpu": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum amount of memory per vCPU, in GiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum amount of memory per vCPU, in GiB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.MemoryMiB": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum amount of memory, in MiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum amount of memory, in MiB\\. To specify no minimum limit, specify `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.MetadataOptions": { + "additionalProperties": false, + "properties": { + "HttpEndpoint": { + "markdownDescription": "Enables or disables the HTTP metadata endpoint on your instances\\. If the parameter is not specified, the default state is `enabled`\\. \nIf you specify a value of `disabled`, you will not be able to access your instance metadata\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disabled | enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpEndpoint", + "type": "string" + }, + "HttpProtocolIpv6": { + "markdownDescription": "Enables or disables the IPv6 endpoint for the instance metadata service\\. \nDefault: `disabled` \n*Required*: No \n*Type*: String \n*Allowed values*: `disabled | enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpProtocolIpv6", + "type": "string" + }, + "HttpPutResponseHopLimit": { + "markdownDescription": "The desired HTTP PUT response hop limit for instance metadata requests\\. The larger the number, the further instance metadata requests can travel\\. \nDefault: `1` \nPossible values: Integers from 1 to 64 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpPutResponseHopLimit", + "type": "number" + }, + "HttpTokens": { + "markdownDescription": "IMDSv2 uses token\\-backed sessions\\. Set the use of HTTP tokens to `optional` \\(in other words, set the use of IMDSv2 to `optional`\\) or `required` \\(in other words, set the use of IMDSv2 to `required`\\)\\. \n+ `optional` \\- When IMDSv2 is optional, you can choose to retrieve instance metadata with or without a session token in your request\\. If you retrieve the IAM role credentials without a token, the IMDSv1 role credentials are returned\\. If you retrieve the IAM role credentials using a valid session token, the IMDSv2 role credentials are returned\\.\n+ `required` \\- When IMDSv2 is required, you must send a session token with any instance metadata retrieval requests\\. In this state, retrieving the IAM role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not available\\.\nDefault: `optional` \n*Required*: No \n*Type*: String \n*Allowed values*: `optional | required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpTokens", + "type": "string" + }, + "InstanceMetadataTags": { + "markdownDescription": "Set to `enabled` to allow access to instance tags from the instance metadata\\. Set to `disabled` to turn off access to instance tags from the instance metadata\\. For more information, see [Work with instance tags using the instance metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#work-with-tags-in-IMDS)\\. \nDefault: `disabled` \n*Required*: No \n*Type*: String \n*Allowed values*: `disabled | enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceMetadataTags", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Monitoring": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Specify `true` to enable detailed monitoring\\. Otherwise, basic monitoring is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.NetworkBandwidthGbps": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum amount of network bandwidth, in Gbps\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum amount of network bandwidth, in Gbps\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "markdownDescription": "Indicates whether to associate a Carrier IP address with eth0 for a new network interface\\. \nUse this option when you launch an instance in a Wavelength Zone and want to associate a Carrier IP address with the network interface\\. For more information about Carrier IP addresses, see [Carrier IP addresses](https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#provider-owned-ip) in the * AWS Wavelength Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociateCarrierIpAddress", + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "markdownDescription": "Associates a public IPv4 address with eth0 for a new network interface\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociatePublicIpAddress", + "type": "boolean" + }, + "DeleteOnTermination": { + "markdownDescription": "Indicates whether the network interface is deleted when the instance is terminated\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteOnTermination", + "type": "boolean" + }, + "Description": { + "markdownDescription": "A description for the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DeviceIndex": { + "markdownDescription": "The device index for the network interface attachment\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceIndex", + "type": "number" + }, + "Groups": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of one or more security groups\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Groups", + "type": "array" + }, + "InterfaceType": { + "markdownDescription": "The type of network interface\\. To create an Elastic Fabric Adapter \\(EFA\\), specify `efa`\\. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \nIf you are not creating an EFA, specify `interface` or omit this parameter\\. \nValid values: `interface` \\| `efa` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InterfaceType", + "type": "string" + }, + "Ipv4PrefixCount": { + "markdownDescription": "The number of IPv4 prefixes to be automatically assigned to the network interface\\. You cannot use this option if you use the `Ipv4Prefix` option\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv4PrefixCount", + "type": "number" + }, + "Ipv4Prefixes": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ipv4PrefixSpecification" + }, + "markdownDescription": "One or more IPv4 prefixes to be assigned to the network interface\\. You cannot use this option if you use the `Ipv4PrefixCount` option\\. \n*Required*: No \n*Type*: List of [Ipv4PrefixSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ipv4prefixspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv4Prefixes", + "type": "array" + }, + "Ipv6AddressCount": { + "markdownDescription": "The number of IPv6 addresses to assign to a network interface\\. Amazon EC2 automatically selects the IPv6 addresses from the subnet range\\. You can't use this option if specifying specific IPv6 addresses\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6AddressCount", + "type": "number" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ipv6Add" + }, + "markdownDescription": "One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet\\. You can't use this option if you're specifying a number of IPv6 addresses\\. \n*Required*: No \n*Type*: List of [Ipv6Add](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ipv6add.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6Addresses", + "type": "array" + }, + "Ipv6PrefixCount": { + "markdownDescription": "The number of IPv6 prefixes to be automatically assigned to the network interface\\. You cannot use this option if you use the `Ipv6Prefix` option\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6PrefixCount", + "type": "number" + }, + "Ipv6Prefixes": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ipv6PrefixSpecification" + }, + "markdownDescription": "One or more IPv6 prefixes to be assigned to the network interface\\. You cannot use this option if you use the `Ipv6PrefixCount` option\\. \n*Required*: No \n*Type*: List of [Ipv6PrefixSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ipv6prefixspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6Prefixes", + "type": "array" + }, + "NetworkCardIndex": { + "markdownDescription": "The index of the network card\\. Some instance types support multiple network cards\\. The primary network interface must be assigned to network card index 0\\. The default is network card index 0\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkCardIndex", + "type": "number" + }, + "NetworkInterfaceId": { + "markdownDescription": "The ID of the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkInterfaceId", + "type": "string" + }, + "PrivateIpAddress": { + "markdownDescription": "The primary private IPv4 address of the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateIpAddress", + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.PrivateIpAdd" + }, + "markdownDescription": "One or more private IPv4 addresses\\. \n*Required*: No \n*Type*: List of [PrivateIpAdd](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-privateipadd.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateIpAddresses", + "type": "array" + }, + "SecondaryPrivateIpAddressCount": { + "markdownDescription": "The number of secondary private IPv4 addresses to assign to a network interface\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryPrivateIpAddressCount", + "type": "number" + }, + "SubnetId": { + "markdownDescription": "The ID of the subnet for the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetId", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.NetworkInterfaceCount": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum number of network interfaces\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum number of network interfaces\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Placement": { + "additionalProperties": false, + "properties": { + "Affinity": { + "markdownDescription": "The affinity setting for an instance on a Dedicated Host\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Affinity", + "type": "string" + }, + "AvailabilityZone": { + "markdownDescription": "The Availability Zone for the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZone", + "type": "string" + }, + "GroupId": { + "markdownDescription": "The Group Id of a placement group\\. You must specify the Placement Group **Group Id** to launch an instance in a shared placement group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupId", + "type": "string" + }, + "GroupName": { + "markdownDescription": "The name of the placement group for the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupName", + "type": "string" + }, + "HostId": { + "markdownDescription": "The ID of the Dedicated Host for the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostId", + "type": "string" + }, + "HostResourceGroupArn": { + "markdownDescription": "The ARN of the host resource group in which to launch the instances\\. If you specify a host resource group ARN, omit the **Tenancy** parameter or set it to `host`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostResourceGroupArn", + "type": "string" + }, + "PartitionNumber": { + "markdownDescription": "The number of the partition the instance should launch in\\. Valid only if the placement group strategy is set to `partition`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PartitionNumber", + "type": "number" + }, + "SpreadDomain": { + "markdownDescription": "Reserved for future use\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpreadDomain", + "type": "string" + }, + "Tenancy": { + "markdownDescription": "The tenancy of the instance \\(if the instance is running in a VPC\\)\\. An instance with a tenancy of dedicated runs on single\\-tenant hardware\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dedicated | default | host` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tenancy", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "markdownDescription": "Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableResourceNameDnsAAAARecord", + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "markdownDescription": "Indicates whether to respond to DNS queries for instance hostnames with DNS A records\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableResourceNameDnsARecord", + "type": "boolean" + }, + "HostnameType": { + "markdownDescription": "The type of hostname for EC2 instances\\. For IPv4 only subnets, an instance DNS name must be based on the instance IPv4 address\\. For IPv6 only subnets, an instance DNS name must be based on the instance ID\\. For dual\\-stack subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID\\. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ip-name | resource-name` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostnameType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.PrivateIpAdd": { + "additionalProperties": false, + "properties": { + "Primary": { + "markdownDescription": "Indicates whether the private IPv4 address is the primary private IPv4 address\\. Only one IPv4 address can be designated as primary\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Primary", + "type": "boolean" + }, + "PrivateIpAddress": { + "markdownDescription": "The private IPv4 address\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateIpAddress", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.SpotOptions": { + "additionalProperties": false, + "properties": { + "BlockDurationMinutes": { + "markdownDescription": "Deprecated\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockDurationMinutes", + "type": "number" + }, + "InstanceInterruptionBehavior": { + "markdownDescription": "The behavior when a Spot Instance is interrupted\\. The default is `terminate`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `hibernate | stop | terminate` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceInterruptionBehavior", + "type": "string" + }, + "MaxPrice": { + "markdownDescription": "The maximum hourly price you're willing to pay for the Spot Instances\\. We do not recommend using this parameter because it can lead to increased interruptions\\. If you do not specify this parameter, you will pay the current Spot price\\. \nIf you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxPrice", + "type": "string" + }, + "SpotInstanceType": { + "markdownDescription": "The Spot Instance request type\\. \nIf you are using Spot Instances with an Auto Scaling group, use `one-time` requests, as the Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is below its desired capacity\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `one-time | persistent` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpotInstanceType", + "type": "string" + }, + "ValidUntil": { + "markdownDescription": "The end date of the request, in UTC format \\(*YYYY\\-MM\\-DD*T*HH:MM:SS*Z\\)\\. Supported only for persistent requests\\. \n+ For a persistent request, the request remains active until the `ValidUntil` date and time is reached\\. Otherwise, the request remains active until you cancel it\\.\n+ For a one\\-time request, `ValidUntil` is not supported\\. The request remains active until all instances launch or you cancel the request\\.\nDefault: 7 days from the current date \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValidUntil", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "markdownDescription": "The type of resource to tag\\. \nThe `Valid Values` are all the resource types that can be tagged\\. However, when creating a launch template, you can specify tags for the following resource types only: `instance` \\| `volume` \\| `elastic-gpu` \\| `network-interface` \\| `spot-instances-request` \nTo tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `capacity-reservation | capacity-reservation-fleet | carrier-gateway | client-vpn-endpoint | coip-pool | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | instance-event-window | internet-gateway | ipam | ipam-pool | ipam-resource-discovery | ipam-resource-discovery-association | ipam-scope | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | launch-template | local-gateway | local-gateway-route-table | local-gateway-route-table-virtual-interface-group-association | local-gateway-route-table-vpc-association | local-gateway-virtual-interface | local-gateway-virtual-interface-group | natgateway | network-acl | network-insights-access-scope | network-insights-access-scope-analysis | network-insights-analysis | network-insights-path | network-interface | placement-group | prefix-list | replace-root-volume-task | reserved-instances | route-server | route-server-endpoint | route-server-peer | route-table | security-group | security-group-rule | snapshot | spot-fleet-request | spot-instances-request | subnet | subnet-cidr-reservation | traffic-mirror-filter | traffic-mirror-filter-rule | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-policy-table | transit-gateway-route-table | transit-gateway-route-table-announcement | verified-access-endpoint | verified-access-group | verified-access-instance | verified-access-policy | verified-access-trust-provider | volume | vpc | vpc-block-public-access-exclusion | vpc-endpoint | vpc-endpoint-connection | vpc-endpoint-connection-device-type | vpc-endpoint-service | vpc-endpoint-service-permission | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-connection-device-type | vpn-gateway` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceType", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to apply to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.TotalLocalStorageGB": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum amount of total local storage, in GB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum amount of total local storage, in GB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.VCpuCount": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum number of vCPUs\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum number of vCPUs\\. To specify no minimum limit, specify `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The CIDR block used for destination matches\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationCidrBlock", + "type": "string" + }, + "LocalGatewayRouteTableId": { + "markdownDescription": "The ID of the local gateway route table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalGatewayRouteTableId", + "type": "string" + }, + "LocalGatewayVirtualInterfaceGroupId": { + "markdownDescription": "The ID of the virtual interface group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocalGatewayVirtualInterfaceGroupId", + "type": "string" + }, + "NetworkInterfaceId": { + "markdownDescription": "The ID of the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ID of the local gateway route table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalGatewayRouteTableId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags assigned to the association\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VpcId": { + "markdownDescription": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "\\[Public NAT gateway only\\] The allocation ID of the Elastic IP address that's associated with the NAT gateway\\. This property is required for a public NAT gateway and cannot be specified with a private NAT gateway\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AllocationId", + "type": "string" + }, + "ConnectivityType": { + "markdownDescription": "Indicates whether the NAT gateway supports public or private connectivity\\. The default is public connectivity\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `private | public` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectivityType", + "type": "string" + }, + "MaxDrainDurationSeconds": { + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxDrainDurationSeconds", + "type": "number" + }, + "PrivateIpAddress": { + "markdownDescription": "The private IPv4 address to assign to the NAT gateway\\. If you don't provide an address, a private IPv4 address will be automatically assigned\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrivateIpAddress", + "type": "string" + }, + "SecondaryAllocationIds": { + "items": { + "type": "string" + }, + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryAllocationIds", + "type": "array" + }, + "SecondaryPrivateIpAddressCount": { + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryPrivateIpAddressCount", + "type": "number" + }, + "SecondaryPrivateIpAddresses": { + "items": { + "type": "string" + }, + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryPrivateIpAddresses", + "type": "array" + }, + "SubnetId": { + "markdownDescription": "The ID of the subnet in which the NAT gateway is located\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags for the NAT gateway\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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" + }, + "markdownDescription": "The tags for the network ACL\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VpcId": { + "markdownDescription": "The ID of the VPC for the network ACL\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The IPv4 CIDR range to allow or deny, in CIDR notation \\(for example, 172\\.16\\.0\\.0/24\\)\\. Requirement is conditional: You must specify the `CidrBlock` or `Ipv6CidrBlock` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CidrBlock", + "type": "string" + }, + "Egress": { + "markdownDescription": "Whether this rule applies to egress traffic from the subnet \\(`true`\\) or ingress traffic to the subnet \\(`false`\\)\\. By default, AWS CloudFormation specifies `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Egress", + "type": "boolean" + }, + "Icmp": { + "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.Icmp", + "markdownDescription": "The Internet Control Message Protocol \\(ICMP\\) code and type\\. Requirement is conditional: Required if specifying 1 \\(ICMP\\) for the protocol parameter\\. \n*Required*: No \n*Type*: [Icmp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-icmp.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Icmp" + }, + "Ipv6CidrBlock": { + "markdownDescription": "The IPv6 network range to allow or deny, in CIDR notation\\. Requirement is conditional: You must specify the `CidrBlock` or `Ipv6CidrBlock` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6CidrBlock", + "type": "string" + }, + "NetworkAclId": { + "markdownDescription": "The ID of the ACL for the entry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkAclId", + "type": "string" + }, + "PortRange": { + "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.PortRange", + "markdownDescription": "The range of port numbers for the UDP/TCP protocol\\. Conditional required if specifying 6 \\(TCP\\) or 17 \\(UDP\\) for the protocol parameter\\. \n*Required*: No \n*Type*: [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortRange" + }, + "Protocol": { + "markdownDescription": "The IP protocol that the rule applies to\\. You must specify \\-1 or a protocol number\\. You can specify \\-1 for all protocols\\. \nIf you specify \\-1, all ports are opened and the `PortRange` property is ignored\\.\n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "number" + }, + "RuleAction": { + "markdownDescription": "Whether to allow or deny traffic that matches the rule; valid values are \"allow\" or \"deny\"\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `allow | deny` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleAction", + "type": "string" + }, + "RuleNumber": { + "markdownDescription": "Rule number to assign to the entry, such as 100\\. ACL entries are processed in ascending order by rule number\\. Entries can't use the same rule number unless one is an egress rule and the other is an ingress rule\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The Internet Control Message Protocol \\(ICMP\\) code\\. You can use \\-1 to specify all ICMP codes for the given ICMP type\\. Requirement is conditional: Required if you specify 1 \\(ICMP\\) for the protocol parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Code", + "type": "number" + }, + "Type": { + "markdownDescription": "The Internet Control Message Protocol \\(ICMP\\) type\\. You can use \\-1 to specify all ICMP types\\. Conditional requirement: Required if you specify 1 \\(ICMP\\) for the `CreateNetworkAclEntry` protocol parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkAclEntry.PortRange": { + "additionalProperties": false, + "properties": { + "From": { + "markdownDescription": "The first port in the range\\. Required if you specify 6 \\(TCP\\) or 17 \\(UDP\\) for the protocol parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "From", + "type": "number" + }, + "To": { + "markdownDescription": "The last port in the range\\. Required if you specify 6 \\(TCP\\) or 17 \\(UDP\\) for the protocol parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The paths to exclude\\. \n*Required*: No \n*Type*: List of [AccessScopePathRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-accessscopepathrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExcludePaths", + "type": "array" + }, + "MatchPaths": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.AccessScopePathRequest" + }, + "markdownDescription": "The paths to match\\. \n*Required*: No \n*Type*: List of [AccessScopePathRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-accessscopepathrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MatchPaths", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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", + "markdownDescription": "The destination\\. \n*Required*: No \n*Type*: [PathStatementRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-pathstatementrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Destination" + }, + "Source": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.PathStatementRequest", + "markdownDescription": "The source\\. \n*Required*: No \n*Type*: [PathStatementRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-pathstatementrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Source" + }, + "ThroughResources": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.ThroughResourcesStatementRequest" + }, + "markdownDescription": "The through resources\\. \n*Required*: No \n*Type*: List of [ThroughResourcesStatementRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-throughresourcesstatementrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ThroughResources", + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAccessScope.PacketHeaderStatementRequest": { + "additionalProperties": false, + "properties": { + "DestinationAddresses": { + "items": { + "type": "string" + }, + "markdownDescription": "The destination addresses\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationAddresses", + "type": "array" + }, + "DestinationPorts": { + "items": { + "type": "string" + }, + "markdownDescription": "The destination ports\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationPorts", + "type": "array" + }, + "DestinationPrefixLists": { + "items": { + "type": "string" + }, + "markdownDescription": "The destination prefix lists\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationPrefixLists", + "type": "array" + }, + "Protocols": { + "items": { + "type": "string" + }, + "markdownDescription": "The protocols\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Protocols", + "type": "array" + }, + "SourceAddresses": { + "items": { + "type": "string" + }, + "markdownDescription": "The source addresses\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceAddresses", + "type": "array" + }, + "SourcePorts": { + "items": { + "type": "string" + }, + "markdownDescription": "The source ports\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourcePorts", + "type": "array" + }, + "SourcePrefixLists": { + "items": { + "type": "string" + }, + "markdownDescription": "The source prefix lists\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourcePrefixLists", + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAccessScope.PathStatementRequest": { + "additionalProperties": false, + "properties": { + "PacketHeaderStatement": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.PacketHeaderStatementRequest", + "markdownDescription": "The packet header statement\\. \n*Required*: No \n*Type*: [PacketHeaderStatementRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-packetheaderstatementrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PacketHeaderStatement" + }, + "ResourceStatement": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.ResourceStatementRequest", + "markdownDescription": "The resource statement\\. \n*Required*: No \n*Type*: [ResourceStatementRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-resourcestatementrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceStatement" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAccessScope.ResourceStatementRequest": { + "additionalProperties": false, + "properties": { + "ResourceTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The resource types\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceTypes", + "type": "array" + }, + "Resources": { + "items": { + "type": "string" + }, + "markdownDescription": "The resources\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Resources", + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAccessScope.ThroughResourcesStatementRequest": { + "additionalProperties": false, + "properties": { + "ResourceStatement": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.ResourceStatementRequest", + "markdownDescription": "The resource statement\\. \n*Required*: No \n*Type*: [ResourceStatementRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsaccessscope-resourcestatementrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceStatement" + } + }, + "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": { + "markdownDescription": "The ID of the Network Access Scope\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInsightsAccessScopeId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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" + }, + "markdownDescription": "The member accounts that contain resources that the path can traverse\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdditionalAccounts", + "type": "array" + }, + "FilterInArns": { + "items": { + "type": "string" + }, + "markdownDescription": "The Amazon Resource Names \\(ARN\\) of the resources that the path must traverse\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FilterInArns", + "type": "array" + }, + "NetworkInsightsPathId": { + "markdownDescription": "The ID of the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInsightsPathId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to apply\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The information type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdditionalDetailType", + "type": "string" + }, + "Component": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The path component\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Component" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "type": "array" + }, + "ServiceName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.AlternatePathHint": { + "additionalProperties": false, + "properties": { + "ComponentArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentArn", + "type": "string" + }, + "ComponentId": { + "markdownDescription": "The ID of the component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentId", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.AnalysisAclRule": { + "additionalProperties": false, + "properties": { + "Cidr": { + "markdownDescription": "The IPv4 address range, in CIDR notation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cidr", + "type": "string" + }, + "Egress": { + "markdownDescription": "Indicates whether the rule is an outbound rule\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Egress", + "type": "boolean" + }, + "PortRange": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.PortRange", + "markdownDescription": "The range of ports\\. \n*Required*: No \n*Type*: [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortRange" + }, + "Protocol": { + "markdownDescription": "The protocol\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "string" + }, + "RuleAction": { + "markdownDescription": "Indicates whether to allow or deny traffic that matches the rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleAction", + "type": "string" + }, + "RuleNumber": { + "markdownDescription": "The rule number\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleNumber", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "Id": { + "markdownDescription": "The ID of the component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.AnalysisLoadBalancerListener": { + "additionalProperties": false, + "properties": { + "InstancePort": { + "markdownDescription": "\\[Classic Load Balancers\\] The back\\-end port for the listener\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstancePort", + "type": "number" + }, + "LoadBalancerPort": { + "markdownDescription": "The port on which the load balancer is listening\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerPort", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.AnalysisLoadBalancerTarget": { + "additionalProperties": false, + "properties": { + "Address": { + "markdownDescription": "The IP address\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `15` \n*Pattern*: `^([0-9]{1,3}.){3}[0-9]{1,3}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Address", + "type": "string" + }, + "AvailabilityZone": { + "markdownDescription": "The Availability Zone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZone", + "type": "string" + }, + "Instance": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "Information about the instance\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Instance" + }, + "Port": { + "markdownDescription": "The port on which the target is listening\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.AnalysisPacketHeader": { + "additionalProperties": false, + "properties": { + "DestinationAddresses": { + "items": { + "type": "string" + }, + "markdownDescription": "The destination addresses\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationAddresses", + "type": "array" + }, + "DestinationPortRanges": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.PortRange" + }, + "markdownDescription": "The destination port ranges\\. \n*Required*: No \n*Type*: List of [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationPortRanges", + "type": "array" + }, + "Protocol": { + "markdownDescription": "The protocol\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "string" + }, + "SourceAddresses": { + "items": { + "type": "string" + }, + "markdownDescription": "The source addresses\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceAddresses", + "type": "array" + }, + "SourcePortRanges": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.PortRange" + }, + "markdownDescription": "The source port ranges\\. \n*Required*: No \n*Type*: List of [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourcePortRanges", + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.AnalysisRouteTableRoute": { + "additionalProperties": false, + "properties": { + "NatGatewayId": { + "markdownDescription": "The ID of a NAT gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NatGatewayId", + "type": "string" + }, + "NetworkInterfaceId": { + "markdownDescription": "The ID of a network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkInterfaceId", + "type": "string" + }, + "Origin": { + "markdownDescription": "Describes how the route was created\\. The following are the possible values: \n+ CreateRouteTable \\- The route was automatically created when the route table was created\\.\n+ CreateRoute \\- The route was manually added to the route table\\.\n+ EnableVgwRoutePropagation \\- The route was propagated by route propagation\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Origin", + "type": "string" + }, + "State": { + "markdownDescription": "The state\\. The following are the possible values: \n+ active\n+ blackhole\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", + "type": "string" + }, + "TransitGatewayId": { + "markdownDescription": "The ID of a transit gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitGatewayId", + "type": "string" + }, + "VpcPeeringConnectionId": { + "markdownDescription": "The ID of a VPC peering connection\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcPeeringConnectionId", + "type": "string" + }, + "destinationCidr": { + "markdownDescription": "The destination IPv4 address, in CIDR notation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "destinationCidr", + "type": "string" + }, + "destinationPrefixListId": { + "markdownDescription": "The prefix of the AWS service\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "destinationPrefixListId", + "type": "string" + }, + "egressOnlyInternetGatewayId": { + "markdownDescription": "The ID of an egress\\-only internet gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "egressOnlyInternetGatewayId", + "type": "string" + }, + "gatewayId": { + "markdownDescription": "The ID of the gateway, such as an internet gateway or virtual private gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "gatewayId", + "type": "string" + }, + "instanceId": { + "markdownDescription": "The ID of the instance, such as a NAT instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "instanceId", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.AnalysisSecurityGroupRule": { + "additionalProperties": false, + "properties": { + "Cidr": { + "markdownDescription": "The IPv4 address range, in CIDR notation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cidr", + "type": "string" + }, + "Direction": { + "markdownDescription": "The direction\\. The following are the possible values: \n+ egress\n+ ingress\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Direction", + "type": "string" + }, + "PortRange": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.PortRange", + "markdownDescription": "The port range\\. \n*Required*: No \n*Type*: [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortRange" + }, + "PrefixListId": { + "markdownDescription": "The prefix list ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrefixListId", + "type": "string" + }, + "Protocol": { + "markdownDescription": "The protocol name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "string" + }, + "SecurityGroupId": { + "markdownDescription": "The security group ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupId", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.Explanation": { + "additionalProperties": false, + "properties": { + "Acl": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The network ACL\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Acl" + }, + "AclRule": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisAclRule", + "markdownDescription": "The network ACL rule\\. \n*Required*: No \n*Type*: [AnalysisAclRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisaclrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AclRule" + }, + "Address": { + "markdownDescription": "The IPv4 address, in CIDR notation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `15` \n*Pattern*: `^([0-9]{1,3}.){3}[0-9]{1,3}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Address", + "type": "string" + }, + "Addresses": { + "items": { + "type": "string" + }, + "markdownDescription": "The IPv4 addresses, in CIDR notation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Addresses", + "type": "array" + }, + "AttachedTo": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The resource to which the component is attached\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttachedTo" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "markdownDescription": "The Availability Zones\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZones", + "type": "array" + }, + "Cidrs": { + "items": { + "type": "string" + }, + "markdownDescription": "The CIDR ranges\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cidrs", + "type": "array" + }, + "ClassicLoadBalancerListener": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisLoadBalancerListener", + "markdownDescription": "The listener for a Classic Load Balancer\\. \n*Required*: No \n*Type*: [AnalysisLoadBalancerListener](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisloadbalancerlistener.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClassicLoadBalancerListener" + }, + "Component": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The component\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Component" + }, + "ComponentAccount": { + "markdownDescription": "The AWS account for the component\\. \n*Required*: No \n*Type*: String \n*Pattern*: `\\d{12}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentAccount", + "type": "string" + }, + "ComponentRegion": { + "markdownDescription": "The Region for the component\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[a-z]{2}-[a-z]+-[1-9]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentRegion", + "type": "string" + }, + "CustomerGateway": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The customer gateway\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomerGateway" + }, + "Destination": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The destination\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" + }, + "DestinationVpc": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The destination VPC\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationVpc" + }, + "Direction": { + "markdownDescription": "The direction\\. The following are the possible values: \n+ egress\n+ ingress\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Direction", + "type": "string" + }, + "ElasticLoadBalancerListener": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The load balancer listener\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticLoadBalancerListener" + }, + "ExplanationCode": { + "markdownDescription": "The explanation code\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExplanationCode", + "type": "string" + }, + "IngressRouteTable": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The route table\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IngressRouteTable" + }, + "InternetGateway": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The internet gateway\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InternetGateway" + }, + "LoadBalancerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the load balancer\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1283` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerArn", + "type": "string" + }, + "LoadBalancerListenerPort": { + "markdownDescription": "The listener port of the load balancer\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerListenerPort", + "type": "number" + }, + "LoadBalancerTarget": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisLoadBalancerTarget", + "markdownDescription": "The target\\. \n*Required*: No \n*Type*: [AnalysisLoadBalancerTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisloadbalancertarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerTarget" + }, + "LoadBalancerTargetGroup": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The target group\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerTargetGroup" + }, + "LoadBalancerTargetGroups": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "markdownDescription": "The target groups\\. \n*Required*: No \n*Type*: List of [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerTargetGroups", + "type": "array" + }, + "LoadBalancerTargetPort": { + "markdownDescription": "The target port\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerTargetPort", + "type": "number" + }, + "MissingComponent": { + "markdownDescription": "The missing component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MissingComponent", + "type": "string" + }, + "NatGateway": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The NAT gateway\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NatGateway" + }, + "NetworkInterface": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The network interface\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkInterface" + }, + "PacketField": { + "markdownDescription": "The packet field\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PacketField", + "type": "string" + }, + "Port": { + "markdownDescription": "The port\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + }, + "PortRanges": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.PortRange" + }, + "markdownDescription": "The port ranges\\. \n*Required*: No \n*Type*: List of [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortRanges", + "type": "array" + }, + "PrefixList": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The prefix list\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrefixList" + }, + "Protocols": { + "items": { + "type": "string" + }, + "markdownDescription": "The protocols\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocols", + "type": "array" + }, + "RouteTable": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The route table\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteTable" + }, + "RouteTableRoute": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisRouteTableRoute", + "markdownDescription": "The route table route\\. \n*Required*: No \n*Type*: [AnalysisRouteTableRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisroutetableroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteTableRoute" + }, + "SecurityGroup": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The security group\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroup" + }, + "SecurityGroupRule": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisSecurityGroupRule", + "markdownDescription": "The security group rule\\. \n*Required*: No \n*Type*: [AnalysisSecurityGroupRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysissecuritygrouprule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupRule" + }, + "SecurityGroups": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "markdownDescription": "The security groups\\. \n*Required*: No \n*Type*: List of [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroups", + "type": "array" + }, + "SourceVpc": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The source VPC\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceVpc" + }, + "State": { + "markdownDescription": "The state\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", + "type": "string" + }, + "Subnet": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The subnet\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subnet" + }, + "SubnetRouteTable": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The route table for the subnet\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetRouteTable" + }, + "TransitGateway": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The transit gateway\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitGateway" + }, + "TransitGatewayAttachment": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The transit gateway attachment\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitGatewayAttachment" + }, + "TransitGatewayRouteTable": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The transit gateway route table\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitGatewayRouteTable" + }, + "TransitGatewayRouteTableRoute": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.TransitGatewayRouteTableRoute", + "markdownDescription": "The transit gateway route table route\\. \n*Required*: No \n*Type*: [TransitGatewayRouteTableRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-transitgatewayroutetableroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitGatewayRouteTableRoute" + }, + "Vpc": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The component VPC\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Vpc" + }, + "VpcPeeringConnection": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The VPC peering connection\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcPeeringConnection" + }, + "VpnConnection": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The VPN connection\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpnConnection" + }, + "VpnGateway": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The VPN gateway\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpnGateway" + }, + "vpcEndpoint": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The VPC endpoint\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "vpcEndpoint" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.PathComponent": { + "additionalProperties": false, + "properties": { + "AclRule": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisAclRule", + "markdownDescription": "The network ACL rule\\. \n*Required*: No \n*Type*: [AnalysisAclRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisaclrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AclRule" + }, + "AdditionalDetails": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AdditionalDetail" + }, + "markdownDescription": "The additional details\\. \n*Required*: No \n*Type*: List of [AdditionalDetail](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-additionaldetail.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdditionalDetails", + "type": "array" + }, + "Component": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The component\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Component" + }, + "DestinationVpc": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The destination VPC\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationVpc" + }, + "ElasticLoadBalancerListener": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The load balancer listener\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticLoadBalancerListener" + }, + "Explanations": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.Explanation" + }, + "markdownDescription": "The explanation codes\\. \n*Required*: No \n*Type*: List of [Explanation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Explanations", + "type": "array" + }, + "InboundHeader": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisPacketHeader", + "markdownDescription": "The inbound header\\. \n*Required*: No \n*Type*: [AnalysisPacketHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysispacketheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InboundHeader" + }, + "OutboundHeader": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisPacketHeader", + "markdownDescription": "The outbound header\\. \n*Required*: No \n*Type*: [AnalysisPacketHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysispacketheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutboundHeader" + }, + "RouteTableRoute": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisRouteTableRoute", + "markdownDescription": "The route table route\\. \n*Required*: No \n*Type*: [AnalysisRouteTableRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisroutetableroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteTableRoute" + }, + "SecurityGroupRule": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisSecurityGroupRule", + "markdownDescription": "The security group rule\\. \n*Required*: No \n*Type*: [AnalysisSecurityGroupRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysissecuritygrouprule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupRule" + }, + "SequenceNumber": { + "markdownDescription": "The sequence number\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SequenceNumber", + "type": "number" + }, + "ServiceName": { + "type": "string" + }, + "SourceVpc": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The source VPC\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceVpc" + }, + "Subnet": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The subnet\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subnet" + }, + "TransitGateway": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The transit gateway\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitGateway" + }, + "TransitGatewayRouteTableRoute": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.TransitGatewayRouteTableRoute", + "markdownDescription": "The route in a transit gateway route table\\. \n*Required*: No \n*Type*: [TransitGatewayRouteTableRoute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-transitgatewayroutetableroute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitGatewayRouteTableRoute" + }, + "Vpc": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent", + "markdownDescription": "The component VPC\\. \n*Required*: No \n*Type*: [AnalysisComponent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Vpc" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.PortRange": { + "additionalProperties": false, + "properties": { + "From": { + "markdownDescription": "The first port in the range\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "From", + "type": "number" + }, + "To": { + "markdownDescription": "The last port in the range\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "To", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.TransitGatewayRouteTableRoute": { + "additionalProperties": false, + "properties": { + "AttachmentId": { + "markdownDescription": "The ID of the route attachment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttachmentId", + "type": "string" + }, + "DestinationCidr": { + "markdownDescription": "The CIDR block used for destination matches\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationCidr", + "type": "string" + }, + "PrefixListId": { + "markdownDescription": "The ID of the prefix list\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrefixListId", + "type": "string" + }, + "ResourceId": { + "markdownDescription": "The ID of the resource for the route attachment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceId", + "type": "string" + }, + "ResourceType": { + "markdownDescription": "The resource type for the route attachment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceType", + "type": "string" + }, + "RouteOrigin": { + "markdownDescription": "The route origin\\. The following are the possible values: \n+ static\n+ propagated\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteOrigin", + "type": "string" + }, + "State": { + "markdownDescription": "The state of the route\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The AWS resource that is the destination of the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Destination", + "type": "string" + }, + "DestinationIp": { + "markdownDescription": "The IP address of the AWS resource that is the destination of the path\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `15` \n*Pattern*: `^([0-9]{1,3}.){3}[0-9]{1,3}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationIp", + "type": "string" + }, + "DestinationPort": { + "markdownDescription": "The destination port\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationPort", + "type": "number" + }, + "Protocol": { + "markdownDescription": "The protocol\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `tcp | udp` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Protocol", + "type": "string" + }, + "Source": { + "markdownDescription": "The AWS resource that is the source of the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Source", + "type": "string" + }, + "SourceIp": { + "markdownDescription": "The IP address of the AWS resource that is the source of the path\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `15` \n*Pattern*: `^([0-9]{1,3}.){3}[0-9]{1,3}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceIp", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to add to the path\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "required": [ + "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": { + "markdownDescription": "A description for the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "GroupSet": { + "items": { + "type": "string" + }, + "markdownDescription": "The security group IDs associated with this network interface\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupSet", + "type": "array" + }, + "InterfaceType": { + "markdownDescription": "The type of network interface\\. The default is `interface`\\. The supported values are `efa` and `trunk`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `branch | efa | trunk` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InterfaceType", + "type": "string" + }, + "Ipv6AddressCount": { + "markdownDescription": "The number of IPv6 addresses to assign to a network interface\\. Amazon EC2 automatically selects the IPv6 addresses from the subnet range\\. To specify specific IPv6 addresses, use the `Ipv6Addresses` property and don't specify this property\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6AddressCount", + "type": "number" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInterface.InstanceIpv6Address" + }, + "markdownDescription": "One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet to associate with the network interface\\. If you're specifying a number of IPv6 addresses, use the `Ipv6AddressCount` property and don't specify this property\\. \n*Required*: No \n*Type*: List of [InstanceIpv6Address](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinterface-instanceipv6address.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6Addresses", + "type": "array" + }, + "PrivateIpAddress": { + "markdownDescription": "Assigns a single private IP address to the network interface, which is used as the primary private IP address\\. If you want to specify multiple private IP address, use the `PrivateIpAddresses` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrivateIpAddress", + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInterface.PrivateIpAddressSpecification" + }, + "markdownDescription": "Assigns private IP addresses to the network interface\\. You can specify a primary private IP address by setting the value of the `Primary` property to `true` in the `PrivateIpAddressSpecification` property\\. If you want EC2 to automatically assign private IP addresses, use the `SecondaryPrivateIpAddressCount` property and do not specify this property\\. \n*Required*: No \n*Type*: List of [PrivateIpAddressSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinterface-privateipaddressspecification.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "PrivateIpAddresses", + "type": "array" + }, + "SecondaryPrivateIpAddressCount": { + "markdownDescription": "The number of secondary private IPv4 addresses to assign to a network interface\\. When you specify a number of secondary IPv4 addresses, Amazon EC2 selects these IP addresses within the subnet's IPv4 CIDR range\\. You can't specify this option and specify more than one private IP address using `privateIpAddresses`\\. \nYou can't specify a count of private IPv4 addresses if you've specified one of the following: specific private IPv4 addresses, specific IPv4 prefixes, or a count of IPv4 prefixes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryPrivateIpAddressCount", + "type": "number" + }, + "SourceDestCheck": { + "markdownDescription": "Enable or disable source/destination checks, which ensure that the instance is either the source or the destination of any traffic that it receives\\. If the value is `true`, source/destination checks are enabled; otherwise, they are disabled\\. The default value is `true`\\. You must disable source/destination checks if the instance runs services such as network address translation, routing, or firewalls\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceDestCheck", + "type": "boolean" + }, + "SubnetId": { + "markdownDescription": "The ID of the subnet to associate with the network interface\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An arbitrary set of tags \\(key\\-value pairs\\) for this network interface\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "An IPv6 address to associate with the network interface\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6Address", + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "AWS::EC2::NetworkInterface.PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "markdownDescription": "Sets the private IP address as the primary private address\\. You can set only one primary private IP address\\. If you don't specify a primary private IP address, Amazon EC2 automatically assigns a primary private IP address\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Primary", + "type": "boolean" + }, + "PrivateIpAddress": { + "markdownDescription": "The private IP address of the network interface\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "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": { + "markdownDescription": "Whether to delete the network interface when the instance terminates\\. By default, this value is set to `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteOnTermination", + "type": "boolean" + }, + "DeviceIndex": { + "markdownDescription": "The network interface's position in the attachment order\\. For example, the first attached network interface has a `DeviceIndex` of 0\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceIndex", + "type": "string" + }, + "InstanceId": { + "markdownDescription": "The ID of the instance to which you will attach the ENI\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceId", + "type": "string" + }, + "NetworkInterfaceId": { + "markdownDescription": "The ID of the ENI that you want to attach\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The AWS account ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AwsAccountId", + "type": "string" + }, + "NetworkInterfaceId": { + "markdownDescription": "The ID of the network interface\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInterfaceId", + "type": "string" + }, + "Permission": { + "markdownDescription": "The type of permission to grant: `INSTANCE-ATTACH` or `EIP-ASSOCIATE`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EIP-ASSOCIATE | INSTANCE-ATTACH` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The Region or Availability Zone that's the target for the subscription\\. For example, `eu-west-1`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Destination", + "type": "string" + }, + "Metric": { + "markdownDescription": "The metric used for the subscription\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `aggregate-latency` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Metric", + "type": "string" + }, + "Source": { + "markdownDescription": "The Region or Availability Zone that's the source for the subscription\\. For example, `us-east-1`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Source", + "type": "string" + }, + "Statistic": { + "markdownDescription": "The statistic used for the subscription\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `p50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The number of partitions\\. Valid only when **Strategy** is set to `partition`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PartitionCount", + "type": "number" + }, + "SpreadLevel": { + "markdownDescription": "Determines how placement groups spread instances\\. \n+ Host \u2013 You can use `host` only with Outpost placement groups\\.\n+ Rack \u2013 No usage restrictions\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `host | rack` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpreadLevel", + "type": "string" + }, + "Strategy": { + "markdownDescription": "The placement strategy\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `cluster | partition | spread` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Strategy", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to apply to the new placement group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The IP address type\\. \nValid Values: `IPv4` \\| `IPv6` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddressFamily", + "type": "string" + }, + "Entries": { + "items": { + "$ref": "#/definitions/AWS::EC2::PrefixList.Entry" + }, + "markdownDescription": "One or more entries for the prefix list\\. \n*Required*: No \n*Type*: List of [Entry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-prefixlist-entry.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Entries", + "type": "array" + }, + "MaxEntries": { + "markdownDescription": "The maximum number of entries for the prefix list\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxEntries", + "type": "number" + }, + "PrefixListName": { + "markdownDescription": "A name for the prefix list\\. \nConstraints: Up to 255 characters in length\\. The name cannot start with `com.amazonaws`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrefixListName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags for the prefix list\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The CIDR block\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cidr", + "type": "string" + }, + "Description": { + "markdownDescription": "A description for the entry\\. \nConstraints: Up to 255 characters in length\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ID of the carrier gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CarrierGatewayId", + "type": "string" + }, + "DestinationCidrBlock": { + "markdownDescription": "The IPv4 CIDR block used for the destination match\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationCidrBlock", + "type": "string" + }, + "DestinationIpv6CidrBlock": { + "markdownDescription": "The IPv6 CIDR block used for the destination match\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationIpv6CidrBlock", + "type": "string" + }, + "EgressOnlyInternetGatewayId": { + "markdownDescription": "The ID of the egress\\-only internet gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EgressOnlyInternetGatewayId", + "type": "string" + }, + "GatewayId": { + "markdownDescription": "The ID of an internet gateway or virtual private gateway attached to your VPC\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GatewayId", + "type": "string" + }, + "InstanceId": { + "markdownDescription": "The ID of a NAT instance in your VPC\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceId", + "type": "string" + }, + "LocalGatewayId": { + "markdownDescription": "The ID of the local gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocalGatewayId", + "type": "string" + }, + "NatGatewayId": { + "markdownDescription": "The ID of a NAT gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NatGatewayId", + "type": "string" + }, + "NetworkInterfaceId": { + "markdownDescription": "The ID of the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkInterfaceId", + "type": "string" + }, + "RouteTableId": { + "markdownDescription": "The ID of the route table\\. The routing table must be associated with the same VPC that the virtual private gateway is attached to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RouteTableId", + "type": "string" + }, + "TransitGatewayId": { + "markdownDescription": "The ID of a transit gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitGatewayId", + "type": "string" + }, + "VpcEndpointId": { + "markdownDescription": "The ID of a VPC endpoint\\. Supported for Gateway Load Balancer endpoints only\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcEndpointId", + "type": "string" + }, + "VpcPeeringConnectionId": { + "markdownDescription": "The ID of a VPC peering connection\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "Any tags assigned to the route table\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VpcId": { + "markdownDescription": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A description for the security group\\. This is informational only\\. \nConstraints: Up to 255 characters in length \nConstraints for EC2\\-Classic: ASCII characters \nConstraints for EC2\\-VPC: a\\-z, A\\-Z, 0\\-9, spaces, and \\.\\_\\-:/\\(\\)\\#,@\\[\\]\\+=&;\\{\\}\\!$\\* \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupDescription", + "type": "string" + }, + "GroupName": { + "markdownDescription": "The name of the security group\\. \nConstraints: Up to 255 characters in length\\. Cannot start with `sg-`\\. \nConstraints for EC2\\-Classic: ASCII characters \nConstraints for EC2\\-VPC: a\\-z, A\\-Z, 0\\-9, spaces, and \\.\\_\\-:/\\(\\)\\#,@\\[\\]\\+=&;\\{\\}\\!$\\* \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupName", + "type": "string" + }, + "SecurityGroupEgress": { + "items": { + "$ref": "#/definitions/AWS::EC2::SecurityGroup.Egress" + }, + "markdownDescription": "\\[VPC only\\] The outbound rules associated with the security group\\. There is a short interruption during which you cannot connect to the security group\\. \n*Required*: No \n*Type*: List of [Egress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "SecurityGroupEgress", + "type": "array" + }, + "SecurityGroupIngress": { + "items": { + "$ref": "#/definitions/AWS::EC2::SecurityGroup.Ingress" + }, + "markdownDescription": "The inbound rules associated with the security group\\. There is a short interruption during which you cannot connect to the security group\\. \n*Required*: No \n*Type*: List of [Ingress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule-1.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "SecurityGroupIngress", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Any tags assigned to the security group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VpcId": { + "markdownDescription": "\\[VPC only\\] The ID of the VPC for the security group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The IPv4 address range, in CIDR format\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CidrIp", + "type": "string" + }, + "CidrIpv6": { + "markdownDescription": "The IPv6 address range, in CIDR format\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CidrIpv6", + "type": "string" + }, + "Description": { + "markdownDescription": "A description for the security group rule\\. \nConstraints: Up to 255 characters in length\\. Allowed characters are a\\-z, A\\-Z, 0\\-9, spaces, and \\.\\_\\-:/\\(\\)\\#,@\\[\\]\\+=;\\{\\}\\!$\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DestinationPrefixListId": { + "markdownDescription": "\\[EC2\\-VPC only\\] The prefix list IDs for the destination AWS service\\. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationPrefixListId", + "type": "string" + }, + "DestinationSecurityGroupId": { + "markdownDescription": "The ID of the destination VPC security group\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationSecurityGroupId", + "type": "string" + }, + "FromPort": { + "markdownDescription": "If the protocol is TCP or UDP, this is the start of the port range\\. If the protocol is ICMP or ICMPv6, this is the type number\\. A value of \\-1 indicates all ICMP/ICMPv6 types\\. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FromPort", + "type": "number" + }, + "IpProtocol": { + "markdownDescription": "The IP protocol name \\(`tcp`, `udp`, `icmp`, `icmpv6`\\) or number \\(see [Protocol Numbers](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)\\)\\. \n\\[VPC only\\] Use `-1` to specify all protocols\\. When authorizing security group rules, specifying `-1` or a protocol number other than `tcp`, `udp`, `icmp`, or `icmpv6` allows traffic on all ports, regardless of any port range you specify\\. For `tcp`, `udp`, and `icmp`, you must specify a port range\\. For `icmpv6`, the port range is optional; if you omit the port range, traffic for all types and codes is allowed\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IpProtocol", + "type": "string" + }, + "ToPort": { + "markdownDescription": "If the protocol is TCP or UDP, this is the end of the port range\\. If the protocol is ICMP or ICMPv6, this is the code\\. A value of \\-1 indicates all ICMP/ICMPv6 codes\\. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ToPort", + "type": "number" + } + }, + "required": [ + "IpProtocol" + ], + "type": "object" + }, + "AWS::EC2::SecurityGroup.Ingress": { + "additionalProperties": false, + "properties": { + "CidrIp": { + "markdownDescription": "The IPv4 address range, in CIDR format\\. \nYou must specify a source security group \\(`SourcePrefixListId` or `SourceSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CidrIp", + "type": "string" + }, + "CidrIpv6": { + "markdownDescription": "The IPv6 address range, in CIDR format\\. \nYou must specify a source security group \\(`SourcePrefixListId` or `SourceSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CidrIpv6", + "type": "string" + }, + "Description": { + "markdownDescription": "Updates the description of an ingress \\(inbound\\) security group rule\\. You can replace an existing description, or add a description to a rule that did not have one previously\\. \nConstraints: Up to 255 characters in length\\. Allowed characters are a\\-z, A\\-Z, 0\\-9, spaces, and \\.\\_\\-:/\\(\\)\\#,@\\[\\]\\+=;\\{\\}\\!$\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "FromPort": { + "markdownDescription": "If the protocol is TCP or UDP, this is the start of the port range\\. If the protocol is ICMP or ICMPv6, this is the type number\\. A value of \\-1 indicates all ICMP/ICMPv6 types\\. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FromPort", + "type": "number" + }, + "IpProtocol": { + "markdownDescription": "The IP protocol name \\(`tcp`, `udp`, `icmp`, `icmpv6`\\) or number \\(see [Protocol Numbers](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)\\)\\. \n\\[VPC only\\] Use `-1` to specify all protocols\\. When authorizing security group rules, specifying `-1` or a protocol number other than `tcp`, `udp`, `icmp`, or `icmpv6` allows traffic on all ports, regardless of any port range you specify\\. For `tcp`, `udp`, and `icmp`, you must specify a port range\\. For `icmpv6`, the port range is optional; if you omit the port range, traffic for all types and codes is allowed\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IpProtocol", + "type": "string" + }, + "SourcePrefixListId": { + "markdownDescription": "\\[EC2\\-VPC only\\] The ID of a prefix list\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourcePrefixListId", + "type": "string" + }, + "SourceSecurityGroupId": { + "markdownDescription": "The ID of the security group\\. You must specify either the security group ID or the security group name in the request\\. For security groups in a nondefault VPC, you must specify the security group ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceSecurityGroupId", + "type": "string" + }, + "SourceSecurityGroupName": { + "markdownDescription": "\\[EC2\\-Classic, default VPC\\] The name of the source security group\\. You can't specify this parameter in combination with an IP address range\\. Creates rules that grant full ICMP, UDP, and TCP access\\. \nYou must specify the `GroupName` property or the `GroupId` property\\. For security groups that are in a VPC, you must use the `GroupId` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceSecurityGroupName", + "type": "string" + }, + "SourceSecurityGroupOwnerId": { + "markdownDescription": "\\[nondefault VPC\\] The AWS account ID for the source security group, if the source security group is in a different account\\. You can't specify this property with an IP address range\\. Creates rules that grant full ICMP, UDP, and TCP access\\. \nIf you specify `SourceSecurityGroupName` or `SourceSecurityGroupId` and that security group is owned by a different account than the account creating the stack, you must specify the `SourceSecurityGroupOwnerId`; otherwise, this property is optional\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceSecurityGroupOwnerId", + "type": "string" + }, + "ToPort": { + "markdownDescription": "If the protocol is TCP or UDP, this is the end of the port range\\. If the protocol is ICMP or ICMPv6, this is the code\\. A value of \\-1 indicates all ICMP/ICMPv6 codes\\. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The IPv4 address range, in CIDR format\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CidrIp", + "type": "string" + }, + "CidrIpv6": { + "markdownDescription": "The IPv6 address range, in CIDR format\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CidrIpv6", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of an egress \\(outbound\\) security group rule\\. \nConstraints: Up to 255 characters in length\\. Allowed characters are a\\-z, A\\-Z, 0\\-9, spaces, and \\.\\_\\-:/\\(\\)\\#,@\\[\\]\\+=;\\{\\}\\!$\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DestinationPrefixListId": { + "markdownDescription": "\\[EC2\\-VPC only\\] The prefix list IDs for an AWS service\\. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationPrefixListId", + "type": "string" + }, + "DestinationSecurityGroupId": { + "markdownDescription": "The ID of the security group\\. \nYou must specify a destination security group \\(`DestinationPrefixListId` or `DestinationSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationSecurityGroupId", + "type": "string" + }, + "FromPort": { + "markdownDescription": "If the protocol is TCP or UDP, this is the start of the port range\\. If the protocol is ICMP or ICMPv6, this is the type number\\. A value of \\-1 indicates all ICMP/ICMPv6 types\\. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FromPort", + "type": "number" + }, + "GroupId": { + "markdownDescription": "The ID of the security group\\. You must specify either the security group ID or the security group name in the request\\. For security groups in a nondefault VPC, you must specify the security group ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupId", + "type": "string" + }, + "IpProtocol": { + "markdownDescription": "The IP protocol name \\(`tcp`, `udp`, `icmp`, `icmpv6`\\) or number \\(see [Protocol Numbers](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)\\)\\. \n\\[VPC only\\] Use `-1` to specify all protocols\\. When authorizing security group rules, specifying `-1` or a protocol number other than `tcp`, `udp`, `icmp`, or `icmpv6` allows traffic on all ports, regardless of any port range you specify\\. For `tcp`, `udp`, and `icmp`, you must specify a port range\\. For `icmpv6`, the port range is optional; if you omit the port range, traffic for all types and codes is allowed\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpProtocol", + "type": "string" + }, + "ToPort": { + "markdownDescription": "If the protocol is TCP or UDP, this is the end of the port range\\. If the protocol is ICMP or ICMPv6, this is the code\\. A value of \\-1 indicates all ICMP/ICMPv6 codes\\. If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The IPv4 address range, in CIDR format\\. \nYou must specify a source security group \\(`SourcePrefixListId` or `SourceSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CidrIp", + "type": "string" + }, + "CidrIpv6": { + "markdownDescription": "The IPv6 address range, in CIDR format\\. \nYou must specify a source security group \\(`SourcePrefixListId` or `SourceSecurityGroupId`\\) or a CIDR range \\(`CidrIp` or `CidrIpv6`\\)\\. \nFor examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CidrIpv6", + "type": "string" + }, + "Description": { + "markdownDescription": "Updates the description of an ingress \\(inbound\\) security group rule\\. You can replace an existing description, or add a description to a rule that did not have one previously\\. \nConstraints: Up to 255 characters in length\\. Allowed characters are a\\-z, A\\-Z, 0\\-9, spaces, and \\.\\_\\-:/\\(\\)\\#,@\\[\\]\\+=;\\{\\}\\!$\\* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "FromPort": { + "markdownDescription": "The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number\\. A value of `-1` indicates all ICMP/ICMPv6 types\\. If you specify all ICMP/ICMPv6 types, you must specify all codes\\. \nUse this for ICMP and any protocol that uses ports\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FromPort", + "type": "number" + }, + "GroupId": { + "markdownDescription": "The ID of the security group\\. You must specify either the security group ID or the security group name in the request\\. For security groups in a nondefault VPC, you must specify the security group ID\\. \nYou must specify the `GroupName` property or the `GroupId` property\\. For security groups that are in a VPC, you must use the `GroupId` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupId", + "type": "string" + }, + "GroupName": { + "markdownDescription": "The name of the security group\\. \nConstraints: Up to 255 characters in length\\. Cannot start with `sg-`\\. \nConstraints for EC2\\-Classic: ASCII characters \nConstraints for EC2\\-VPC: a\\-z, A\\-Z, 0\\-9, spaces, and \\.\\_\\-:/\\(\\)\\#,@\\[\\]\\+=&;\\{\\}\\!$\\* \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupName", + "type": "string" + }, + "IpProtocol": { + "markdownDescription": "The IP protocol name \\(`tcp`, `udp`, `icmp`, `icmpv6`\\) or number \\(see [Protocol Numbers](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)\\)\\. \n\\[VPC only\\] Use `-1` to specify all protocols\\. When authorizing security group rules, specifying `-1` or a protocol number other than `tcp`, `udp`, `icmp`, or `icmpv6` allows traffic on all ports, regardless of any port range you specify\\. For `tcp`, `udp`, and `icmp`, you must specify a port range\\. For `icmpv6`, the port range is optional; if you omit the port range, traffic for all types and codes is allowed\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpProtocol", + "type": "string" + }, + "SourcePrefixListId": { + "markdownDescription": "\\[EC2\\-VPC only\\] The ID of a prefix list\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourcePrefixListId", + "type": "string" + }, + "SourceSecurityGroupId": { + "markdownDescription": "The ID of the security group\\. You must specify either the security group ID or the security group name\\. For security groups in a nondefault VPC, you must specify the security group ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceSecurityGroupId", + "type": "string" + }, + "SourceSecurityGroupName": { + "markdownDescription": "\\[EC2\\-Classic, default VPC\\] The name of the source security group\\. You can't specify this parameter in combination with an IP address range\\. Creates rules that grant full ICMP, UDP, and TCP access\\. \nYou must specify the `GroupName` property or the `GroupId` property\\. For security groups that are in a VPC, you must use the `GroupId` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceSecurityGroupName", + "type": "string" + }, + "SourceSecurityGroupOwnerId": { + "markdownDescription": "\\[nondefault VPC\\] The AWS account ID for the source security group, if the source security group is in a different account\\. You can't specify this property with an IP address range\\. Creates rules that grant full ICMP, UDP, and TCP access\\. \nIf you specify `SourceSecurityGroupName` or `SourceSecurityGroupId` and that security group is owned by a different account than the account creating the stack, you must specify the `SourceSecurityGroupOwnerId`; otherwise, this property is optional\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceSecurityGroupOwnerId", + "type": "string" + }, + "ToPort": { + "markdownDescription": "The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code\\. A value of `-1` indicates all ICMP/ICMPv6 codes for the specified ICMP type\\. If you specify all ICMP/ICMPv6 types, you must specify all codes\\. \nUse this for ICMP and any protocol that uses ports\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "Describes the configuration of a Spot Fleet request\\. \n*Required*: Yes \n*Type*: [SpotFleetRequestConfigData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The maximum number of accelerators\\. To specify no maximum limit, omit this parameter\\. To exclude accelerator\\-enabled instance types, set `Max` to `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum number of accelerators\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum amount of accelerator memory, in MiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum amount of accelerator memory, in MiB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum baseline bandwidth, in Mbps\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum baseline bandwidth, in Mbps\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "markdownDescription": "The device name \\(for example, `/dev/sdh` or `xvdh`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceName", + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.EbsBlockDevice", + "markdownDescription": "Parameters used to automatically set up EBS volumes when the instance is launched\\. \n*Required*: Conditional \n*Type*: [EbsBlockDevice](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-ebsblockdevice.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ebs" + }, + "NoDevice": { + "markdownDescription": "To omit the device from the block device mapping, specify an empty string\\. When this property is specified, the device is removed from the block device mapping regardless of the assigned value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NoDevice", + "type": "string" + }, + "VirtualName": { + "markdownDescription": "The virtual device name \\(`ephemeral`N\\)\\. Instance store volumes are numbered starting from 0\\. An instance type with 2 available instance store volumes can specify mappings for `ephemeral0` and `ephemeral1`\\. The number of available instance store volumes depends on the instance type\\. After you connect to the instance, you must mount the volume\\. \nNVMe instance store volumes are automatically enumerated and assigned a device name\\. Including them in your block device mapping has no effect\\. \nConstraints: For M3 instances, you must specify instance store volumes in the block device mapping for the instance\\. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VirtualName", + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.ClassicLoadBalancer": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the load balancer\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.ClassicLoadBalancersConfig": { + "additionalProperties": false, + "properties": { + "ClassicLoadBalancers": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancer" + }, + "markdownDescription": "One or more Classic Load Balancers\\. \n*Required*: Yes \n*Type*: List of [ClassicLoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-classicloadbalancer.html) \n*Maximum*: `5` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClassicLoadBalancers", + "type": "array" + } + }, + "required": [ + "ClassicLoadBalancers" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.EbsBlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "markdownDescription": "Indicates whether the EBS volume is deleted on instance termination\\. For more information, see [Preserving Amazon EBS volumes on instance termination](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#preserving-volumes-on-termination) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeleteOnTermination", + "type": "boolean" + }, + "Encrypted": { + "markdownDescription": "Indicates whether the encryption state of an EBS volume is changed while being restored from a backing snapshot\\. The effect of setting the encryption state to `true` depends on the volume origin \\(new or from a snapshot\\), starting encryption state, ownership, and whether encryption by default is enabled\\. For more information, see [Amazon EBS Encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-parameters) in the *Amazon EC2 User Guide*\\. \nIn no case can you remove encryption from an encrypted volume\\. \nEncrypted volumes can only be attached to instances that support Amazon EBS encryption\\. For more information, see [Supported Instance Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances)\\. \nThis parameter is not returned by [DescribeImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImageAttribute.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Encrypted", + "type": "boolean" + }, + "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\)\\. For `gp3`, `io1`, and `io2` volumes, this represents the number of IOPS that are provisioned for the volume\\. For `gp2` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting\\. \nThe following are the supported values for each volume type: \n+ `gp3`: 3,000\\-16,000 IOPS\n+ `io1`: 100\\-64,000 IOPS\n+ `io2`: 100\\-64,000 IOPS\nFor `io1` and `io2` volumes, we guarantee 64,000 IOPS only for [Instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)\\. Other instance families guarantee performance up to 32,000 IOPS\\. \nThis parameter is required for `io1` and `io2` volumes\\. The default for `gp3` volumes is 3,000 IOPS\\. This parameter is not supported for `gp2`, `st1`, `sc1`, or `standard` volumes\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Iops", + "type": "number" + }, + "SnapshotId": { + "markdownDescription": "The ID of the snapshot\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotId", + "type": "string" + }, + "VolumeSize": { + "markdownDescription": "The size of the volume, in GiBs\\. You must specify either a snapshot ID or a volume size\\. If you specify a snapshot, the default is the snapshot size\\. You can specify a volume size that is equal to or larger than the snapshot size\\. \nThe following are the supported volumes sizes for each volume type: \n+ `gp2` and `gp3`:1\\-16,384\n+ `io1` and `io2`: 4\\-16,384\n+ `st1` and `sc1`: 125\\-16,384\n+ `standard`: 1\\-1,024\n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeSize", + "type": "number" + }, + "VolumeType": { + "markdownDescription": "The volume type\\. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon EC2 User Guide*\\. If the volume type is `io1` or `io2`, you must specify the IOPS that the volume supports\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `gp2 | gp3 | io1 | io2 | sc1 | st1 | standard` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "markdownDescription": "The ID of the launch template\\. \nYou must specify the `LaunchTemplateId` or the `LaunchTemplateName`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchTemplateId", + "type": "string" + }, + "LaunchTemplateName": { + "markdownDescription": "The name of the launch template\\. \nYou must specify the `LaunchTemplateName` or the `LaunchTemplateId`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9\\(\\)\\.\\-/_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchTemplateName", + "type": "string" + }, + "Version": { + "markdownDescription": "The version number of the launch template\\. \nSpecifying `$Latest` or `$Default` for the template version number is not supported\\. However, you can specify `LatestVersionNumber` or `DefaultVersionNumber` using the `Fn::GetAtt` intrinsic function\\. For more information, see [Fn::GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#aws-resource-ec2-launchtemplate-return-values-fn--getatt)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Version", + "type": "string" + } + }, + "required": [ + "Version" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.GroupIdentifier": { + "additionalProperties": false, + "properties": { + "GroupId": { + "markdownDescription": "The ID of the security group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupId", + "type": "string" + } + }, + "required": [ + "GroupId" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.IamInstanceProfileSpecification": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the instance profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Arn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "markdownDescription": "The IPv6 address\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv6Address", + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification": { + "additionalProperties": false, + "properties": { + "AssociatePublicIpAddress": { + "markdownDescription": "Indicates whether to assign a public IPv4 address to an instance you launch in a VPC\\. The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one\\. You cannot specify more than one network interface in the request\\. If launching into a default subnet, the default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AssociatePublicIpAddress", + "type": "boolean" + }, + "DeleteOnTermination": { + "markdownDescription": "Indicates whether the network interface is deleted when the instance is terminated\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeleteOnTermination", + "type": "boolean" + }, + "Description": { + "markdownDescription": "The description of the network interface\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "DeviceIndex": { + "markdownDescription": "The position of the network interface in the attachment order\\. A primary network interface has a device index of 0\\. \nIf you specify a network interface when launching an instance, you must specify the device index\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceIndex", + "type": "number" + }, + "Groups": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of the security groups for the network interface\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Groups", + "type": "array" + }, + "Ipv6AddressCount": { + "markdownDescription": "A number of IPv6 addresses to assign to the network interface\\. Amazon EC2 chooses the IPv6 addresses from the range of the subnet\\. You cannot specify this option and the option to assign specific IPv6 addresses in the same request\\. You can specify this option if you've specified a minimum number of instances to launch\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv6AddressCount", + "type": "number" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceIpv6Address" + }, + "markdownDescription": "The IPv6 addresses to assign to the network interface\\. You cannot specify this option and the option to assign a number of IPv6 addresses in the same request\\. You cannot specify this option if you've specified a minimum number of instances to launch\\. \n*Required*: No \n*Type*: List of [InstanceIpv6Address](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instanceipv6address.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv6Addresses", + "type": "array" + }, + "NetworkInterfaceId": { + "markdownDescription": "The ID of the network interface\\. \nIf you are creating a Spot Fleet, omit this parameter because you can\u2019t specify a network interface ID in a launch specification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInterfaceId", + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.PrivateIpAddressSpecification" + }, + "markdownDescription": "The private IPv4 addresses to assign to the network interface\\. Only one private IPv4 address can be designated as primary\\. You cannot specify this option if you're launching more than one instance in a [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) request\\. \n*Required*: No \n*Type*: List of [PrivateIpAddressSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-privateipaddressspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrivateIpAddresses", + "type": "array" + }, + "SecondaryPrivateIpAddressCount": { + "markdownDescription": "The number of secondary private IPv4 addresses\\. You can't specify this option and specify more than one private IP address using the private IP addresses option\\. You cannot specify this option if you're launching more than one instance in a [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) request\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecondaryPrivateIpAddressCount", + "type": "number" + }, + "SubnetId": { + "markdownDescription": "The ID of the subnet associated with the network interface\\. Applies only if creating a network interface when launching an instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.InstanceRequirementsRequest": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.AcceleratorCountRequest", + "markdownDescription": "The minimum and maximum number of accelerators \\(GPUs, FPGAs, or AWS Inferentia chips\\) on an instance\\. \nTo exclude accelerator\\-enabled instance types, set `Max` to `0`\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [AcceleratorCountRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-acceleratorcountrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorCount" + }, + "AcceleratorManufacturers": { + "items": { + "type": "string" + }, + "markdownDescription": "Indicates whether instance types must have accelerators by specific manufacturers\\. \n+ For instance types with NVIDIA devices, specify `nvidia`\\.\n+ For instance types with AMD devices, specify `amd`\\.\n+ For instance types with AWS devices, specify `amazon-web-services`\\.\n+ For instance types with Xilinx devices, specify `xilinx`\\.\nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorManufacturers", + "type": "array" + }, + "AcceleratorNames": { + "items": { + "type": "string" + }, + "markdownDescription": "The accelerators that must be on the instance type\\. \n+ For instance types with NVIDIA A100 GPUs, specify `a100`\\.\n+ For instance types with NVIDIA V100 GPUs, specify `v100`\\.\n+ For instance types with NVIDIA K80 GPUs, specify `k80`\\.\n+ For instance types with NVIDIA T4 GPUs, specify `t4`\\.\n+ For instance types with NVIDIA M60 GPUs, specify `m60`\\.\n+ For instance types with AMD Radeon Pro V520 GPUs, specify `radeon-pro-v520`\\.\n+ For instance types with Xilinx VU9P FPGAs, specify ` vu9p`\\.\n+ For instance types with AWS Inferentia chips, specify `inferentia`\\.\n+ For instance types with NVIDIA GRID K520 GPUs, specify `k520`\\.\nDefault: Any accelerator \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorNames", + "type": "array" + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.AcceleratorTotalMemoryMiBRequest", + "markdownDescription": "The minimum and maximum amount of total accelerator memory, in MiB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [AcceleratorTotalMemoryMiBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-acceleratortotalmemorymibrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorTotalMemoryMiB" + }, + "AcceleratorTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The accelerator types that must be on the instance type\\. \n+ To include instance types with GPU hardware, specify `gpu`\\.\n+ To include instance types with FPGA hardware, specify `fpga`\\.\n+ To include instance types with inference hardware, specify `inference`\\.\nDefault: Any accelerator type \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorTypes", + "type": "array" + }, + "AllowedInstanceTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The instance types to apply your specified attributes against\\. All other instance types are ignored, even if they match your specified attributes\\. \nYou can use strings with one or more wild cards, represented by an asterisk \\(`*`\\), to allow an instance type, size, or generation\\. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`\\. \nFor example, if you specify `c5*`,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types\\. If you specify `m5a.*`, Amazon EC2 will allow all the M5a instance types, but not the M5n instance types\\. \nIf you specify `AllowedInstanceTypes`, you can't specify `ExcludedInstanceTypes`\\.\nDefault: All instance types \n*Required*: No \n*Type*: List of String \n*Maximum*: `400` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AllowedInstanceTypes", + "type": "array" + }, + "BareMetal": { + "markdownDescription": "Indicates whether bare metal instance types must be included, excluded, or required\\. \n+ To include bare metal instance types, specify `included`\\.\n+ To require only bare metal instance types, specify `required`\\.\n+ To exclude bare metal instance types, specify `excluded`\\.\nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BareMetal", + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.BaselineEbsBandwidthMbpsRequest", + "markdownDescription": "The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps\\. For more information, see [Amazon EBS\u2013optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide*\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [BaselineEbsBandwidthMbpsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-baselineebsbandwidthmbpsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BaselineEbsBandwidthMbps" + }, + "BurstablePerformance": { + "markdownDescription": "Indicates whether burstable performance T instance types are included, excluded, or required\\. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html)\\. \n+ To include burstable performance instance types, specify `included`\\.\n+ To require only burstable performance instance types, specify `required`\\.\n+ To exclude burstable performance instance types, specify `excluded`\\.\nDefault: `excluded` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BurstablePerformance", + "type": "string" + }, + "CpuManufacturers": { + "items": { + "type": "string" + }, + "markdownDescription": "The CPU manufacturers to include\\. \n+ For instance types with Intel CPUs, specify `intel`\\.\n+ For instance types with AMD CPUs, specify `amd`\\.\n+ For instance types with AWS CPUs, specify `amazon-web-services`\\.\nDon't confuse the CPU manufacturer with the CPU architecture\\. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image \\(AMI\\) that you specify in your launch template\\.\nDefault: Any manufacturer \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CpuManufacturers", + "type": "array" + }, + "ExcludedInstanceTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The instance types to exclude\\. \nYou can use strings with one or more wild cards, represented by an asterisk \\(`*`\\), to exclude an instance family, type, size, or generation\\. The following are examples: `m5.8xlarge`, `c5*.*`, `m5a.*`, `r*`, `*3*`\\. \nFor example, if you specify `c5*`,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types\\. If you specify `m5a.*`, Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types\\. \nIf you specify `ExcludedInstanceTypes`, you can't specify `AllowedInstanceTypes`\\.\nDefault: No excluded instance types \n*Required*: No \n*Type*: List of String \n*Maximum*: `400` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExcludedInstanceTypes", + "type": "array" + }, + "InstanceGenerations": { + "items": { + "type": "string" + }, + "markdownDescription": "Indicates whether current or previous generation instance types are included\\. The current generation instance types are recommended for use\\. Current generation instance types are typically the latest two to three generations in each instance family\\. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*\\. \nFor current generation instance types, specify `current`\\. \nFor previous generation instance types, specify `previous`\\. \nDefault: Current and previous generation instance types \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceGenerations", + "type": "array" + }, + "LocalStorage": { + "markdownDescription": "Indicates whether instance types with instance store volumes are included, excluded, or required\\. For more information, [Amazon EC2 instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in the *Amazon EC2 User Guide*\\. \n+ To include instance types with instance store volumes, specify `included`\\.\n+ To require only instance types with instance store volumes, specify `required`\\.\n+ To exclude instance types with instance store volumes, specify `excluded`\\.\nDefault: `included` \n*Required*: No \n*Type*: String \n*Allowed values*: `excluded | included | required` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalStorage", + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The type of local storage that is required\\. \n+ For instance types with hard disk drive \\(HDD\\) storage, specify `hdd`\\.\n+ For instance types with solid state drive \\(SSD\\) storage, specify `ssd`\\.\nDefault: `hdd` and `ssd` \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalStorageTypes", + "type": "array" + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.MemoryGiBPerVCpuRequest", + "markdownDescription": "The minimum and maximum amount of memory per vCPU, in GiB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [MemoryGiBPerVCpuRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-memorygibpervcpurequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MemoryGiBPerVCpu" + }, + "MemoryMiB": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.MemoryMiBRequest", + "markdownDescription": "The minimum and maximum amount of memory, in MiB\\. \n*Required*: No \n*Type*: [MemoryMiBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-memorymibrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MemoryMiB" + }, + "NetworkBandwidthGbps": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.NetworkBandwidthGbpsRequest", + "markdownDescription": "The minimum and maximum amount of network bandwidth, in gigabits per second \\(Gbps\\)\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [NetworkBandwidthGbpsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-networkbandwidthgbpsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkBandwidthGbps" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.NetworkInterfaceCountRequest", + "markdownDescription": "The minimum and maximum number of network interfaces\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [NetworkInterfaceCountRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-networkinterfacecountrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInterfaceCount" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "markdownDescription": "The price protection threshold for On\\-Demand Instances\\. This is the maximum you\u2019ll pay for an On\\-Demand Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes\\. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold\\. \nThe parameter accepts an integer, which Amazon EC2 interprets as a percentage\\. \nTo turn off price protection, specify a high value, such as `999999`\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html)\\. \nIf you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per\\-vCPU or per\\-memory price instead of the per\\-instance price\\.\nDefault: `20` \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OnDemandMaxPricePercentageOverLowestPrice", + "type": "number" + }, + "RequireHibernateSupport": { + "markdownDescription": "Indicates whether instance types must support hibernation for On\\-Demand Instances\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html)\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RequireHibernateSupport", + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "markdownDescription": "The price protection threshold for Spot Instance\\. This is the maximum you\u2019ll pay for an Spot Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes\\. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold\\. \nThe parameter accepts an integer, which Amazon EC2 interprets as a percentage\\. \nTo turn off price protection, specify a high value, such as `999999`\\. \nThis parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html)\\. \nIf you set `TargetCapacityUnitType` to `vcpu` or `memory-mib`, the price protection threshold is applied based on the per\\-vCPU or per\\-memory price instead of the per\\-instance price\\.\nDefault: `100` \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpotMaxPricePercentageOverLowestPrice", + "type": "number" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.TotalLocalStorageGBRequest", + "markdownDescription": "The minimum and maximum amount of total local storage, in GB\\. \nDefault: No minimum or maximum limits \n*Required*: No \n*Type*: [TotalLocalStorageGBRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-totallocalstoragegbrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TotalLocalStorageGB" + }, + "VCpuCount": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.VCpuCountRangeRequest", + "markdownDescription": "The minimum and maximum number of vCPUs\\. \n*Required*: No \n*Type*: [VCpuCountRangeRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-vcpucountrangerequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VCpuCount" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.LaunchTemplateConfig": { + "additionalProperties": false, + "properties": { + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification", + "markdownDescription": "The launch template\\. \n*Required*: No \n*Type*: [FleetLaunchTemplateSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-fleetlaunchtemplatespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchTemplateSpecification" + }, + "Overrides": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateOverrides" + }, + "markdownDescription": "Any parameters that you specify override the same parameters in the launch template\\. \n*Required*: No \n*Type*: List of [LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateoverrides.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Overrides", + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.LaunchTemplateOverrides": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "markdownDescription": "The Availability Zone in which to launch the instances\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", + "type": "string" + }, + "InstanceRequirements": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceRequirementsRequest", + "markdownDescription": "The instance requirements\\. When you specify instance requirements, Amazon EC2 will identify instance types with the provided requirements, and then use your On\\-Demand and Spot allocation strategies to launch instances from these instance types, in the same way as when you specify a list of instance types\\. \nIf you specify `InstanceRequirements`, you can't specify `InstanceType`\\.\n*Required*: No \n*Type*: [InstanceRequirementsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceRequirements" + }, + "InstanceType": { + "markdownDescription": "The instance type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | mac1.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6ad.12xlarge | r6ad.16xlarge | r6ad.24xlarge | r6ad.2xlarge | r6ad.32xlarge | r6ad.48xlarge | r6ad.4xlarge | r6ad.8xlarge | r6ad.large | r6ad.metal | r6ad.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", + "type": "string" + }, + "Priority": { + "markdownDescription": "The priority for the launch template override\\. The highest priority is launched first\\. \nIf `OnDemandAllocationStrategy` is set to `prioritized`, Spot Fleet uses priority to determine which launch template override to use first in fulfilling On\\-Demand capacity\\. \nIf the Spot `AllocationStrategy` is set to `capacityOptimizedPrioritized`, Spot Fleet uses priority on a best\\-effort basis to determine which launch template override to use in fulfilling Spot capacity, but optimizes for capacity first\\. \nValid values are whole numbers starting at `0`\\. The lower the number, the higher the priority\\. If no number is set, the launch template override has the lowest priority\\. You can set the same priority for different launch template overrides\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Priority", + "type": "number" + }, + "SpotPrice": { + "markdownDescription": "The maximum price per unit hour that you are willing to pay for a Spot Instance\\. We do not recommend using this parameter because it can lead to increased interruptions\\. If you do not specify this parameter, you will pay the current Spot price\\. \nIf you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpotPrice", + "type": "string" + }, + "SubnetId": { + "markdownDescription": "The ID of the subnet in which to launch the instances\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", + "type": "string" + }, + "WeightedCapacity": { + "markdownDescription": "The number of units provided by the specified instance type\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WeightedCapacity", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.LoadBalancersConfig": { + "additionalProperties": false, + "properties": { + "ClassicLoadBalancersConfig": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancersConfig", + "markdownDescription": "The Classic Load Balancers\\. \n*Required*: No \n*Type*: [ClassicLoadBalancersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-classicloadbalancersconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClassicLoadBalancersConfig" + }, + "TargetGroupsConfig": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroupsConfig", + "markdownDescription": "The target groups\\. \n*Required*: No \n*Type*: [TargetGroupsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-targetgroupsconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetGroupsConfig" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum amount of memory per vCPU, in GiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum amount of memory per vCPU, in GiB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum amount of memory, in MiB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum amount of memory, in MiB\\. To specify no minimum limit, specify `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.NetworkBandwidthGbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum amount of network bandwidth, in Gbps\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum amount of network bandwidth, in Gbps\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.NetworkInterfaceCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum number of network interfaces\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum number of network interfaces\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "markdownDescription": "Indicates whether the private IPv4 address is the primary private IPv4 address\\. Only one IPv4 address can be designated as primary\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Primary", + "type": "boolean" + }, + "PrivateIpAddress": { + "markdownDescription": "The private IPv4 address\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrivateIpAddress", + "type": "string" + } + }, + "required": [ + "PrivateIpAddress" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotCapacityRebalance": { + "additionalProperties": false, + "properties": { + "ReplacementStrategy": { + "markdownDescription": "The replacement strategy to use\\. Only available for fleets of type `maintain`\\. \n `launch` \\- Spot Fleet launches a new replacement Spot Instance when a rebalance notification is emitted for an existing Spot Instance in the fleet\\. Spot Fleet does not terminate the instances that receive a rebalance notification\\. You can terminate the old instances, or you can leave them running\\. You are charged for all instances while they are running\\. \n `launch-before-terminate` \\- Spot Fleet launches a new replacement Spot Instance when a rebalance notification is emitted for an existing Spot Instance in the fleet, and then, after a delay that you specify \\(in `TerminationDelay`\\), terminates the instances that received a rebalance notification\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `launch | launch-before-terminate` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplacementStrategy", + "type": "string" + }, + "TerminationDelay": { + "markdownDescription": "The amount of time \\(in seconds\\) that Amazon EC2 waits before terminating the old Spot Instance after launching a new replacement Spot Instance\\. \nRequired when `ReplacementStrategy` is set to `launch-before-terminate`\\. \nNot valid when `ReplacementStrategy` is set to `launch`\\. \nValid values: Minimum value of `120` seconds\\. Maximum value of `7200` seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TerminationDelay", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotFleetLaunchSpecification": { + "additionalProperties": false, + "properties": { + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.BlockDeviceMapping" + }, + "markdownDescription": "One or more block devices that are mapped to the Spot Instances\\. You can't specify both a snapshot ID and an encryption value\\. This is because only blank volumes can be encrypted on creation\\. If a snapshot is the basis for a volume, it is not blank and its encryption status is used for the volume encryption status\\. \n*Required*: No \n*Type*: List of [BlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-blockdevicemapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BlockDeviceMappings", + "type": "array" + }, + "EbsOptimized": { + "markdownDescription": "Indicates whether the instances are optimized for EBS I/O\\. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance\\. This optimization isn't available with all instance types\\. Additional usage charges apply when using an EBS Optimized instance\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsOptimized", + "type": "boolean" + }, + "IamInstanceProfile": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.IamInstanceProfileSpecification", + "markdownDescription": "The IAM instance profile\\. \n*Required*: No \n*Type*: [IamInstanceProfileSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-iaminstanceprofilespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IamInstanceProfile" + }, + "ImageId": { + "markdownDescription": "The ID of the AMI\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageId", + "type": "string" + }, + "InstanceRequirements": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceRequirementsRequest", + "markdownDescription": "The attributes for the instance types\\. When you specify instance attributes, Amazon EC2 will identify instance types with those attributes\\. \nIf you specify `InstanceRequirements`, you can't specify `InstanceType`\\.\n*Required*: No \n*Type*: [InstanceRequirementsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceRequirements" + }, + "InstanceType": { + "markdownDescription": "The instance type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | mac1.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6ad.12xlarge | r6ad.16xlarge | r6ad.24xlarge | r6ad.2xlarge | r6ad.32xlarge | r6ad.48xlarge | r6ad.4xlarge | r6ad.8xlarge | r6ad.large | r6ad.metal | r6ad.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", + "type": "string" + }, + "KernelId": { + "markdownDescription": "The ID of the kernel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KernelId", + "type": "string" + }, + "KeyName": { + "markdownDescription": "The name of the key pair\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyName", + "type": "string" + }, + "Monitoring": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetMonitoring", + "markdownDescription": "Enable or disable monitoring for the instances\\. \n*Required*: No \n*Type*: [SpotFleetMonitoring](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetmonitoring.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Monitoring" + }, + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification" + }, + "markdownDescription": "One or more network interfaces\\. If you specify a network interface, you must specify subnet IDs and security group IDs using the network interface\\. \n `SpotFleetLaunchSpecification` currently does not support Elastic Fabric Adapter \\(EFA\\)\\. To specify an EFA, you must use [LaunchTemplateConfig](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_LaunchTemplateConfig.html)\\.\n*Required*: No \n*Type*: List of [InstanceNetworkInterfaceSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInterfaces", + "type": "array" + }, + "Placement": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotPlacement", + "markdownDescription": "The placement information\\. \n*Required*: No \n*Type*: [SpotPlacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotplacement.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Placement" + }, + "RamdiskId": { + "markdownDescription": "The ID of the RAM disk\\. Some kernels require additional drivers at launch\\. Check the kernel requirements for information about whether you need to specify a RAM disk\\. To find kernel requirements, refer to the AWS Resource Center and search for the kernel ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RamdiskId", + "type": "string" + }, + "SecurityGroups": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.GroupIdentifier" + }, + "markdownDescription": "One or more security groups\\. When requesting instances in a VPC, you must specify the IDs of the security groups\\. When requesting instances in EC2\\-Classic, you can specify the names or the IDs of the security groups\\. \n*Required*: No \n*Type*: List of [GroupIdentifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-groupidentifier.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroups", + "type": "array" + }, + "SpotPrice": { + "markdownDescription": "The maximum price per unit hour that you are willing to pay for a Spot Instance\\. We do not recommend using this parameter because it can lead to increased interruptions\\. If you do not specify this parameter, you will pay the current Spot price\\. \nIf you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpotPrice", + "type": "string" + }, + "SubnetId": { + "markdownDescription": "The IDs of the subnets in which to launch the instances\\. To specify multiple subnets, separate them using commas; for example, \"subnet\\-1234abcdeexample1, subnet\\-0987cdef6example2\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetTagSpecification" + }, + "markdownDescription": "The tags to apply during creation\\. \n*Required*: No \n*Type*: List of [SpotFleetTagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleettagspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TagSpecifications", + "type": "array" + }, + "UserData": { + "markdownDescription": "The Base64\\-encoded user data that instances use when starting up\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserData", + "type": "string" + }, + "WeightedCapacity": { + "markdownDescription": "The number of units provided by the specified instance type\\. These are the same units that you chose to set the target capacity in terms of instances, or a performance characteristic such as vCPUs, memory, or I/O\\. \nIf the target capacity divided by this value is not a whole number, Amazon EC2 rounds the number of instances to the next whole number\\. If this value is not specified, the default is 1\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WeightedCapacity", + "type": "number" + } + }, + "required": [ + "ImageId" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotFleetMonitoring": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Enables monitoring for the instance\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Enabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotFleetRequestConfigData": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "markdownDescription": "The strategy that determines how to allocate the target Spot Instance capacity across the Spot Instance pools specified by the Spot Fleet launch configuration\\. For more information, see [Allocation strategies for Spot Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-allocation-strategy.html) in the *Amazon EC2 User Guide*\\. \npriceCapacityOptimized \\(recommended\\) \nSpot Fleet identifies the pools with the highest capacity availability for the number of instances that are launching\\. This means that we will request Spot Instances from the pools that we believe have the lowest chance of interruption in the near term\\. Spot Fleet then requests Spot Instances from the lowest priced of these pools\\. \ncapacityOptimized \nSpot Fleet identifies the pools with the highest capacity availability for the number of instances that are launching\\. This means that we will request Spot Instances from the pools that we believe have the lowest chance of interruption in the near term\\. To give certain instance types a higher chance of launching first, use `capacityOptimizedPrioritized`\\. Set a priority for each instance type by using the `Priority` parameter for `LaunchTemplateOverrides`\\. You can assign the same priority to different `LaunchTemplateOverrides`\\. EC2 implements the priorities on a best\\-effort basis, but optimizes for capacity first\\. `capacityOptimizedPrioritized` is supported only if your Spot Fleet uses a launch template\\. Note that if the `OnDemandAllocationStrategy` is set to `prioritized`, the same priority is applied when fulfilling On\\-Demand capacity\\. \ndiversified \nSpot Fleet requests instances from all of the Spot Instance pools that you specify\\. \nlowestPrice \nSpot Fleet requests instances from the lowest priced Spot Instance pool that has available capacity\\. If the lowest priced pool doesn't have available capacity, the Spot Instances come from the next lowest priced pool that has available capacity\\. If a pool runs out of capacity before fulfilling your desired capacity, Spot Fleet will continue to fulfill your request by drawing from the next lowest priced pool\\. To ensure that your desired capacity is met, you might receive Spot Instances from several pools\\. Because this strategy only considers instance price and not capacity availability, it might lead to high interruption rates\\.\nDefault: `lowestPrice` \n*Required*: No \n*Type*: String \n*Allowed values*: `capacityOptimized | capacityOptimizedPrioritized | diversified | lowestPrice | priceCapacityOptimized` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AllocationStrategy", + "type": "string" + }, + "Context": { + "markdownDescription": "Reserved\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Context", + "type": "string" + }, + "ExcessCapacityTerminationPolicy": { + "markdownDescription": "Indicates whether running Spot Instances should be terminated if you decrease the target capacity of the Spot Fleet request below the current size of the Spot Fleet\\. \nSupported only for fleets of type `maintain`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `default | noTermination` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcessCapacityTerminationPolicy", + "type": "string" + }, + "IamFleetRole": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS Identity and Access Management \\(IAM\\) role that grants the Spot Fleet the permission to request, launch, terminate, and tag instances on your behalf\\. For more information, see [Spot Fleet Prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-requests.html#spot-fleet-prerequisites) in the *Amazon EC2 User Guide for Linux Instances*\\. Spot Fleet can terminate Spot Instances on your behalf when you cancel its Spot Fleet request or when the Spot Fleet request expires, if you set `TerminateInstancesWithExpiration`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IamFleetRole", + "type": "string" + }, + "InstanceInterruptionBehavior": { + "markdownDescription": "The behavior when a Spot Instance is interrupted\\. The default is `terminate`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `hibernate | stop | terminate` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceInterruptionBehavior", + "type": "string" + }, + "InstancePoolsToUseCount": { + "markdownDescription": "The number of Spot pools across which to allocate your target Spot capacity\\. Valid only when Spot **AllocationStrategy** is set to `lowest-price`\\. Spot Fleet selects the cheapest Spot pools and evenly allocates your target Spot capacity across the number of Spot pools that you specify\\. \nNote that Spot Fleet attempts to draw Spot Instances from the number of pools that you specify on a best effort basis\\. If a pool runs out of Spot capacity before fulfilling your target capacity, Spot Fleet will continue to fulfill your request by drawing from the next cheapest pool\\. To ensure that your target capacity is met, you might receive Spot Instances from more than the number of pools that you specified\\. Similarly, if most of the pools have no Spot capacity, you might receive your full target capacity from fewer than the number of pools that you specified\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstancePoolsToUseCount", + "type": "number" + }, + "LaunchSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetLaunchSpecification" + }, + "markdownDescription": "The launch specifications for the Spot Fleet request\\. If you specify `LaunchSpecifications`, you can't specify `LaunchTemplateConfigs`\\. \n*Required*: Conditional \n*Type*: List of [SpotFleetLaunchSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchSpecifications", + "type": "array" + }, + "LaunchTemplateConfigs": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateConfig" + }, + "markdownDescription": "The launch template and overrides\\. If you specify `LaunchTemplateConfigs`, you can't specify `LaunchSpecifications`\\. \n*Required*: Conditional \n*Type*: List of [LaunchTemplateConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchTemplateConfigs", + "type": "array" + }, + "LoadBalancersConfig": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.LoadBalancersConfig", + "markdownDescription": "One or more Classic Load Balancers and target groups to attach to the Spot Fleet request\\. Spot Fleet registers the running Spot Instances with the specified Classic Load Balancers and target groups\\. \nWith Network Load Balancers, Spot Fleet cannot register instances that have the following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1\\. \n*Required*: No \n*Type*: [LoadBalancersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-loadbalancersconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoadBalancersConfig" + }, + "OnDemandAllocationStrategy": { + "markdownDescription": "The order of the launch template overrides to use in fulfilling On\\-Demand capacity\\. If you specify `lowestPrice`, Spot Fleet uses price to determine the order, launching the lowest price first\\. If you specify `prioritized`, Spot Fleet uses the priority that you assign to each Spot Fleet launch template override, launching the highest priority first\\. If you do not specify a value, Spot Fleet defaults to `lowestPrice`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `lowestPrice | prioritized` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OnDemandAllocationStrategy", + "type": "string" + }, + "OnDemandMaxTotalPrice": { + "markdownDescription": "The maximum amount per hour for On\\-Demand Instances that you're willing to pay\\. You can use the `onDemandMaxTotalPrice` parameter, the `spotMaxTotalPrice` parameter, or both parameters to ensure that your fleet cost does not exceed your budget\\. If you set a maximum price per hour for the On\\-Demand Instances and Spot Instances in your request, Spot Fleet will launch instances until it reaches the maximum amount you're willing to pay\\. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn\u2019t met the target capacity\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OnDemandMaxTotalPrice", + "type": "string" + }, + "OnDemandTargetCapacity": { + "markdownDescription": "The number of On\\-Demand units to request\\. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O\\. If the request type is `maintain`, you can specify a target capacity of 0 and add capacity later\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OnDemandTargetCapacity", + "type": "number" + }, + "ReplaceUnhealthyInstances": { + "markdownDescription": "Indicates whether Spot Fleet should replace unhealthy instances\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplaceUnhealthyInstances", + "type": "boolean" + }, + "SpotMaintenanceStrategies": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotMaintenanceStrategies", + "markdownDescription": "The strategies for managing your Spot Instances that are at an elevated risk of being interrupted\\. \n*Required*: No \n*Type*: [SpotMaintenanceStrategies](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotmaintenancestrategies.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpotMaintenanceStrategies" + }, + "SpotMaxTotalPrice": { + "markdownDescription": "The maximum amount per hour for Spot Instances that you're willing to pay\\. You can use the `spotdMaxTotalPrice` parameter, the `onDemandMaxTotalPrice` parameter, or both parameters to ensure that your fleet cost does not exceed your budget\\. If you set a maximum price per hour for the On\\-Demand Instances and Spot Instances in your request, Spot Fleet will launch instances until it reaches the maximum amount you're willing to pay\\. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn\u2019t met the target capacity\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpotMaxTotalPrice", + "type": "string" + }, + "SpotPrice": { + "markdownDescription": "The maximum price per unit hour that you are willing to pay for a Spot Instance\\. We do not recommend using this parameter because it can lead to increased interruptions\\. If you do not specify this parameter, you will pay the current Spot price\\. \nIf you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SpotPrice", + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetTagSpecification" + }, + "markdownDescription": "The key\\-value pair for tagging the Spot Fleet request on creation\\. The value for `ResourceType` must be `spot-fleet-request`, otherwise the Spot Fleet request fails\\. To tag instances at launch, specify the tags in the [launch template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template) \\(valid only if you use `LaunchTemplateConfigs`\\) or in the ` [SpotFleetTagSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetTagSpecification.html) ` \\(valid only if you use `LaunchSpecifications`\\)\\. For information about tagging after launch, see [Tagging Your Resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources)\\. \n*Required*: No \n*Type*: List of [SpotFleetTagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleettagspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TagSpecifications", + "type": "array" + }, + "TargetCapacity": { + "markdownDescription": "The number of units to request for the Spot Fleet\\. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O\\. If the request type is `maintain`, you can specify a target capacity of 0 and add capacity later\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetCapacity", + "type": "number" + }, + "TargetCapacityUnitType": { + "markdownDescription": "The unit for the target capacity\\. `TargetCapacityUnitType` can only be specified when `InstanceRequirements` is specified\\. \nDefault: `units` \\(translates to number of instances\\) \n*Required*: No \n*Type*: String \n*Allowed values*: `memory-mib | units | vcpu` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetCapacityUnitType", + "type": "string" + }, + "TerminateInstancesWithExpiration": { + "markdownDescription": "Indicates whether running Spot Instances are terminated when the Spot Fleet request expires\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TerminateInstancesWithExpiration", + "type": "boolean" + }, + "Type": { + "markdownDescription": "The type of request\\. Indicates whether the Spot Fleet only requests the target capacity or also attempts to maintain it\\. When this value is `request`, the Spot Fleet only places the required requests\\. It does not attempt to replenish Spot Instances if capacity is diminished, nor does it submit requests in alternative Spot pools if capacity is not available\\. When this value is `maintain`, the Spot Fleet maintains the target capacity\\. The Spot Fleet places the required requests to meet capacity and automatically replenishes any interrupted instances\\. Default: `maintain`\\. `instant` is listed but is not used by Spot Fleet\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `instant | maintain | request` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + }, + "ValidFrom": { + "markdownDescription": "The start date and time of the request, in UTC format \\(*YYYY*\\-*MM*\\-*DD*T*HH*:*MM*:*SS*Z\\)\\. By default, Amazon EC2 starts fulfilling the request immediately\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ValidFrom", + "type": "string" + }, + "ValidUntil": { + "markdownDescription": "The end date and time of the request, in UTC format \\(*YYYY*\\-*MM*\\-*DD*T*HH*:*MM*:*SS*Z\\)\\. After the end date and time, no new Spot Instance requests are placed or able to fulfill the request\\. If no value is specified, the Spot Fleet request remains until you cancel it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ValidUntil", + "type": "string" + } + }, + "required": [ + "IamFleetRole", + "TargetCapacity" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotFleetTagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "markdownDescription": "The type of resource\\. Currently, the only resource type that is supported is `instance`\\. To tag the Spot Fleet request on creation, use the `TagSpecifications` parameter in ` [SpotFleetRequestConfigData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetRequestConfigData.html) `\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `capacity-reservation | capacity-reservation-fleet | carrier-gateway | client-vpn-endpoint | coip-pool | customer-gateway | dedicated-host | dhcp-options | egress-only-internet-gateway | elastic-gpu | elastic-ip | export-image-task | export-instance-task | fleet | fpga-image | host-reservation | image | import-image-task | import-snapshot-task | instance | instance-event-window | internet-gateway | ipam | ipam-pool | ipam-resource-discovery | ipam-resource-discovery-association | ipam-scope | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | launch-template | local-gateway | local-gateway-route-table | local-gateway-route-table-virtual-interface-group-association | local-gateway-route-table-vpc-association | local-gateway-virtual-interface | local-gateway-virtual-interface-group | natgateway | network-acl | network-insights-access-scope | network-insights-access-scope-analysis | network-insights-analysis | network-insights-path | network-interface | placement-group | prefix-list | replace-root-volume-task | reserved-instances | route-server | route-server-endpoint | route-server-peer | route-table | security-group | security-group-rule | snapshot | spot-fleet-request | spot-instances-request | subnet | subnet-cidr-reservation | traffic-mirror-filter | traffic-mirror-filter-rule | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-connect-peer | transit-gateway-multicast-domain | transit-gateway-policy-table | transit-gateway-route-table | transit-gateway-route-table-announcement | verified-access-endpoint | verified-access-group | verified-access-instance | verified-access-policy | verified-access-trust-provider | volume | vpc | vpc-block-public-access-exclusion | vpc-endpoint | vpc-endpoint-connection | vpc-endpoint-connection-device-type | vpc-endpoint-service | vpc-endpoint-service-permission | vpc-flow-log | vpc-peering-connection | vpn-connection | vpn-connection-device-type | vpn-gateway` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceType", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotMaintenanceStrategies": { + "additionalProperties": false, + "properties": { + "CapacityRebalance": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotCapacityRebalance", + "markdownDescription": "The Spot Instance replacement strategy to use when Amazon EC2 emits a signal that your Spot Instance is at an elevated risk of being interrupted\\. For more information, see [Capacity rebalancing](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-capacity-rebalance.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: No \n*Type*: [SpotCapacityRebalance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotcapacityrebalance.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CapacityRebalance" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotPlacement": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "markdownDescription": "The Availability Zone\\. \nTo specify multiple Availability Zones, separate them using commas; for example, \"us\\-west\\-2a, us\\-west\\-2b\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", + "type": "string" + }, + "GroupName": { + "markdownDescription": "The name of the placement group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupName", + "type": "string" + }, + "Tenancy": { + "markdownDescription": "The tenancy of the instance \\(if the instance is running in a VPC\\)\\. An instance with a tenancy of `dedicated` runs on single\\-tenant hardware\\. The `host` tenancy is not supported for Spot Instances\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dedicated | default | host` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tenancy", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.TargetGroup": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the target group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Arn", + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.TargetGroupsConfig": { + "additionalProperties": false, + "properties": { + "TargetGroups": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroup" + }, + "markdownDescription": "One or more target groups\\. \n*Required*: Yes \n*Type*: List of [TargetGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-targetgroup.html) \n*Maximum*: `5` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetGroups", + "type": "array" + } + }, + "required": [ + "TargetGroups" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum amount of total local storage, in GB\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum amount of total local storage, in GB\\. To specify no minimum limit, omit this parameter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Min", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.VCpuCountRangeRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "markdownDescription": "The maximum number of vCPUs\\. To specify no maximum limit, omit this parameter\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Max", + "type": "number" + }, + "Min": { + "markdownDescription": "The minimum number of vCPUs\\. To specify no minimum limit, specify `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Indicates whether a network interface created in this subnet receives an IPv6 address\\. The default value is `false`\\. \nIf you specify `AssignIpv6AddressOnCreation`, you must also specify `Ipv6CidrBlock`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssignIpv6AddressOnCreation", + "type": "boolean" + }, + "AvailabilityZone": { + "markdownDescription": "The Availability Zone of the subnet\\. \nIf you update this property, you must also update the `CidrBlock` property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", + "type": "string" + }, + "AvailabilityZoneId": { + "markdownDescription": "The AZ ID of the subnet\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZoneId", + "type": "string" + }, + "CidrBlock": { + "markdownDescription": "The IPv4 CIDR block assigned to the subnet\\. \nIf you update this property, we create a new subnet, and then delete the existing one\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CidrBlock", + "type": "string" + }, + "EnableDns64": { + "markdownDescription": "Indicates whether DNS queries made to the Amazon\\-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4\\-only destinations\\. For more information, see [DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) in the *Amazon Virtual Private Cloud User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableDns64", + "type": "boolean" + }, + "Ipv6CidrBlock": { + "markdownDescription": "The IPv6 CIDR block\\. \nIf you specify `AssignIpv6AddressOnCreation`, you must also specify `Ipv6CidrBlock`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Ipv6CidrBlock", + "type": "string" + }, + "Ipv6Native": { + "markdownDescription": "Indicates whether this is an IPv6 only subnet\\. For more information, see [Subnet basics](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#subnet-basics) in the *Amazon Virtual Private Cloud User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv6Native", + "type": "boolean" + }, + "MapPublicIpOnLaunch": { + "markdownDescription": "Indicates whether instances launched in this subnet receive a public IPv4 address\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MapPublicIpOnLaunch", + "type": "boolean" + }, + "OutpostArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Outpost\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OutpostArn", + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "$ref": "#/definitions/AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch", + "markdownDescription": "The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled\\. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \nAvailable options: \n+ EnableResourceNameDnsAAAARecord \\(true \\| false\\)\n+ EnableResourceNameDnsARecord \\(true \\| false\\)\n+ HostnameType \\(ip\\-name \\| resource\\-name\\)\n*Required*: No \n*Type*: [PrivateDnsNameOptionsOnLaunch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-subnet-privatednsnameoptionsonlaunch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateDnsNameOptionsOnLaunch" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Any tags assigned to the subnet\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VpcId": { + "markdownDescription": "The ID of the VPC the subnet is in\\. \nIf you update this property, you must also update the `CidrBlock` property\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Indicates whether to respond to DNS queries for instance hostname with DNS AAAA records\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableResourceNameDnsAAAARecord", + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "markdownDescription": "Indicates whether to respond to DNS queries for instance hostnames with DNS A records\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableResourceNameDnsARecord", + "type": "boolean" + }, + "HostnameType": { + "markdownDescription": "The type of hostname for EC2 instances\\. For IPv4 only subnets, an instance DNS name must be based on the instance IPv4 address\\. For IPv6 only subnets, an instance DNS name must be based on the instance ID\\. For dual\\-stack subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ip-name | resource-name` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The IPv6 network range for the subnet, in CIDR notation\\. The subnet size must use a /64 prefix length\\. \nThis parameter is required for an IPv6 only subnet\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv6CidrBlock", + "type": "string" + }, + "SubnetId": { + "markdownDescription": "The ID of the subnet\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ID of the network ACL\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkAclId", + "type": "string" + }, + "SubnetId": { + "markdownDescription": "The ID of the subnet\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ID of the route table\\. \nThe physical ID changes when the route table ID is changed\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RouteTableId", + "type": "string" + }, + "SubnetId": { + "markdownDescription": "The ID of the subnet\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The description of the Traffic Mirror filter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "NetworkServices": { + "items": { + "type": "string" + }, + "markdownDescription": "The network service traffic that is associated with the Traffic Mirror filter\\. \nValid values are `amazon-dns`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkServices", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to assign to a Traffic Mirror filter\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The description of the Traffic Mirror rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DestinationCidrBlock": { + "markdownDescription": "The destination CIDR block to assign to the Traffic Mirror rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationCidrBlock", + "type": "string" + }, + "DestinationPortRange": { + "$ref": "#/definitions/AWS::EC2::TrafficMirrorFilterRule.TrafficMirrorPortRange", + "markdownDescription": "The destination port range\\. \n*Required*: No \n*Type*: [TrafficMirrorPortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-trafficmirrorfilterrule-trafficmirrorportrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationPortRange" + }, + "Protocol": { + "markdownDescription": "The protocol, for example UDP, to assign to the Traffic Mirror rule\\. \nFor information about the protocol value, see [Protocol Numbers](https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml) on the Internet Assigned Numbers Authority \\(IANA\\) website\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "number" + }, + "RuleAction": { + "markdownDescription": "The action to take on the filtered traffic\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `accept | reject` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleAction", + "type": "string" + }, + "RuleNumber": { + "markdownDescription": "The number of the Traffic Mirror rule\\. This number must be unique for each Traffic Mirror rule in a given direction\\. The rules are processed in ascending order by rule number\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleNumber", + "type": "number" + }, + "SourceCidrBlock": { + "markdownDescription": "The source CIDR block to assign to the Traffic Mirror rule\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceCidrBlock", + "type": "string" + }, + "SourcePortRange": { + "$ref": "#/definitions/AWS::EC2::TrafficMirrorFilterRule.TrafficMirrorPortRange", + "markdownDescription": "The source port range\\. \n*Required*: No \n*Type*: [TrafficMirrorPortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-trafficmirrorfilterrule-trafficmirrorportrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourcePortRange" + }, + "TrafficDirection": { + "markdownDescription": "The type of traffic\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `egress | ingress` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrafficDirection", + "type": "string" + }, + "TrafficMirrorFilterId": { + "markdownDescription": "The ID of the filter that this rule is associated with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The start of the Traffic Mirror port range\\. This applies to the TCP and UDP protocols\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FromPort", + "type": "number" + }, + "ToPort": { + "markdownDescription": "The end of the Traffic Mirror port range\\. This applies to the TCP and UDP protocols\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The description of the Traffic Mirror session\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "NetworkInterfaceId": { + "markdownDescription": "The ID of the source network interface\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInterfaceId", + "type": "string" + }, + "PacketLength": { + "markdownDescription": "The number of bytes in each packet to mirror\\. These are bytes after the VXLAN header\\. Do not specify this parameter when you want to mirror the entire packet\\. To mirror a subset of the packet, set this to the length \\(in bytes\\) that you want to mirror\\. For example, if you set this value to 100, then the first 100 bytes that meet the filter criteria are copied to the target\\. \nIf you do not want to mirror the entire packet, use the `PacketLength` parameter to specify the number of bytes in each packet to mirror\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PacketLength", + "type": "number" + }, + "SessionNumber": { + "markdownDescription": "The session number determines the order in which sessions are evaluated when an interface is used by multiple sessions\\. The first session with a matching filter is the one that mirrors the packets\\. \nValid values are 1\\-32766\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionNumber", + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to assign to a Traffic Mirror session\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TrafficMirrorFilterId": { + "markdownDescription": "The ID of the Traffic Mirror filter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrafficMirrorFilterId", + "type": "string" + }, + "TrafficMirrorTargetId": { + "markdownDescription": "The ID of the Traffic Mirror target\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrafficMirrorTargetId", + "type": "string" + }, + "VirtualNetworkId": { + "markdownDescription": "The VXLAN ID for the Traffic Mirror session\\. For more information about the VXLAN protocol, see [RFC 7348](https://tools.ietf.org/html/rfc7348)\\. If you do not specify a `VirtualNetworkId`, an account\\-wide unique id is chosen at random\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The description of the Traffic Mirror target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "GatewayLoadBalancerEndpointId": { + "markdownDescription": "The ID of the Gateway Load Balancer endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GatewayLoadBalancerEndpointId", + "type": "string" + }, + "NetworkInterfaceId": { + "markdownDescription": "The network interface ID that is associated with the target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInterfaceId", + "type": "string" + }, + "NetworkLoadBalancerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Network Load Balancer that is associated with the target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkLoadBalancerArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to assign to the Traffic Mirror target\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "A private Autonomous System Number \\(ASN\\) for the Amazon side of a BGP session\\. The range is 64512 to 65534 for 16\\-bit ASNs\\. The default is 64512\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AmazonSideAsn", + "type": "number" + }, + "AssociationDefaultRouteTableId": { + "markdownDescription": "The ID of the default association route table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociationDefaultRouteTableId", + "type": "string" + }, + "AutoAcceptSharedAttachments": { + "markdownDescription": "Enable or disable automatic acceptance of attachment requests\\. Disabled by default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoAcceptSharedAttachments", + "type": "string" + }, + "DefaultRouteTableAssociation": { + "markdownDescription": "Enable or disable automatic association with the default association route table\\. Enabled by default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultRouteTableAssociation", + "type": "string" + }, + "DefaultRouteTablePropagation": { + "markdownDescription": "Enable or disable automatic propagation of routes to the default propagation route table\\. Enabled by default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultRouteTablePropagation", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the transit gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DnsSupport": { + "markdownDescription": "Enable or disable DNS support\\. Enabled by default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DnsSupport", + "type": "string" + }, + "MulticastSupport": { + "markdownDescription": "Indicates whether multicast is enabled on the transit gateway \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MulticastSupport", + "type": "string" + }, + "PropagationDefaultRouteTableId": { + "markdownDescription": "The ID of the default propagation route table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropagationDefaultRouteTableId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags for the transit gateway\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TransitGatewayCidrBlocks": { + "items": { + "type": "string" + }, + "markdownDescription": "The transit gateway CIDR blocks\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitGatewayCidrBlocks", + "type": "array" + }, + "VpnEcmpSupport": { + "markdownDescription": "Enable or disable Equal Cost Multipath Protocol support\\. Enabled by default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The VPC attachment options, in JSON or YAML\\. \n+ `ApplianceModeSupport` \\- Set to `enable` or `disable`\\. The default is `disable`\\.\n+ `DnsSupport` \\- Set to `enable` or `disable`\\. The default is `enable`\\.\n+ `Ipv6Support` \\- Set to `enable` or `disable`\\. The default is `disable`\\.\n*Required*: No \n*Type*: [Options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewayattachment-options.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Options" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of one or more subnets\\. You can specify only one subnet per Availability Zone\\. You must specify at least one subnet, but we recommend that you specify two subnets for better availability\\. The transit gateway uses one IP address from each specified subnet\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags for the attachment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TransitGatewayId": { + "markdownDescription": "The ID of the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayId", + "type": "string" + }, + "VpcId": { + "markdownDescription": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Indicates whether appliance mode support is enabled\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplianceModeSupport", + "type": "string" + }, + "DnsSupport": { + "markdownDescription": "Indicates whether DNS support is enabled\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DnsSupport", + "type": "string" + }, + "Ipv6Support": { + "markdownDescription": "Indicates whether IPv6 support is disabled\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The Connect attachment options\\. \n+ protocol \\(gre\\)\n*Required*: Yes \n*Type*: [TransitGatewayConnectOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewayconnect-transitgatewayconnectoptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Options" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags for the attachment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TransportTransitGatewayAttachmentId": { + "markdownDescription": "The ID of the attachment from which the Connect attachment was created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The tunnel protocol\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `gre` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "The options for the transit gateway multicast domain\\. \n+ AutoAcceptSharedAssociations \\(enable \\| disable\\)\n+ Igmpv2Support \\(enable \\| disable\\)\n+ StaticSourcesSupport \\(enable \\| disable\\)\n*Required*: No \n*Type*: [Options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewaymulticastdomain-options.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Options" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags for the transit gateway multicast domain\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TransitGatewayId": { + "markdownDescription": "The ID of the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Indicates whether to automatically accept cross\\-account subnet associations that are associated with the transit gateway multicast domain\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoAcceptSharedAssociations", + "type": "string" + }, + "Igmpv2Support": { + "markdownDescription": "Specify whether to enable Internet Group Management Protocol \\(IGMP\\) version 2 for the transit gateway multicast domain\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Igmpv2Support", + "type": "string" + }, + "StaticSourcesSupport": { + "markdownDescription": "Specify whether to enable support for statically configuring multicast group sources for a domain\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The IDs of the subnets to associate with the transit gateway multicast domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", + "type": "string" + }, + "TransitGatewayAttachmentId": { + "markdownDescription": "The ID of the transit gateway attachment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayAttachmentId", + "type": "string" + }, + "TransitGatewayMulticastDomainId": { + "markdownDescription": "The ID of the transit gateway multicast domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The IP address assigned to the transit gateway multicast group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupIpAddress", + "type": "string" + }, + "NetworkInterfaceId": { + "markdownDescription": "The group members' network interface IDs to register with the transit gateway multicast group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInterfaceId", + "type": "string" + }, + "TransitGatewayMulticastDomainId": { + "markdownDescription": "The ID of the transit gateway multicast domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The IP address assigned to the transit gateway multicast group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupIpAddress", + "type": "string" + }, + "NetworkInterfaceId": { + "markdownDescription": "The group sources' network interface IDs to register with the transit gateway multicast group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkInterfaceId", + "type": "string" + }, + "TransitGatewayMulticastDomainId": { + "markdownDescription": "The ID of the transit gateway multicast domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ID of the AWS account that owns the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PeerAccountId", + "type": "string" + }, + "PeerRegion": { + "markdownDescription": "The Region of the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PeerRegion", + "type": "string" + }, + "PeerTransitGatewayId": { + "markdownDescription": "The ID of the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PeerTransitGatewayId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags for the transit gateway peering attachment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TransitGatewayId": { + "markdownDescription": "The ID of the transit gateway peering attachment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The status code\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Code", + "type": "string" + }, + "Message": { + "markdownDescription": "The status message, if applicable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Indicates whether to drop traffic that matches this route\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Blackhole", + "type": "boolean" + }, + "DestinationCidrBlock": { + "markdownDescription": "The CIDR block used for destination matches\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationCidrBlock", + "type": "string" + }, + "TransitGatewayAttachmentId": { + "markdownDescription": "The ID of the attachment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayAttachmentId", + "type": "string" + }, + "TransitGatewayRouteTableId": { + "markdownDescription": "The ID of the transit gateway route table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "Any tags assigned to the route table\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "type": "array" + }, + "TransitGatewayId": { + "markdownDescription": "The ID of the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ID of the attachment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayAttachmentId", + "type": "string" + }, + "TransitGatewayRouteTableId": { + "markdownDescription": "The ID of the route table for the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ID of the attachment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayAttachmentId", + "type": "string" + }, + "TransitGatewayRouteTableId": { + "markdownDescription": "The ID of the propagation route table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "The IDs of one or more subnets to add\\. You can specify at most one subnet per Availability Zone\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddSubnetIds", + "type": "array" + }, + "Options": { + "$ref": "#/definitions/AWS::EC2::TransitGatewayVpcAttachment.Options", + "markdownDescription": "The VPC attachment options, in JSON or YAML\\. \n+ `ApplianceModeSupport` \\- Set to `enable` or `disable`\\. The default is `disable`\\.\n+ `DnsSupport` \\- Set to `enable` or `disable`\\. The default is `enable`\\.\n+ `Ipv6Support` \\- Set to `enable` or `disable`\\. The default is `disable`\\.\n*Required*: No \n*Type*: [Options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewayvpcattachment-options.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Options" + }, + "RemoveSubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of one or more subnets to remove\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveSubnetIds", + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of the subnets\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetIds", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags for the VPC attachment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TransitGatewayId": { + "markdownDescription": "The ID of the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayId", + "type": "string" + }, + "VpcId": { + "markdownDescription": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Indicates whether appliance mode support is enabled\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplianceModeSupport", + "type": "string" + }, + "DnsSupport": { + "markdownDescription": "Indicates whether DNS support is enabled\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DnsSupport", + "type": "string" + }, + "Ipv6Support": { + "markdownDescription": "Indicates whether IPv6 support is disabled\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `disable | enable` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The IPv4 network range for the VPC, in CIDR notation\\. For example, `10.0.0.0/16`\\. We modify the specified CIDR block to its canonical form; for example, if you specify `100.68.0.18/18`, we modify it to `100.68.0.0/18`\\. \nYou must specify either`CidrBlock` or `Ipv4IpamPoolId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CidrBlock", + "type": "string" + }, + "EnableDnsHostnames": { + "markdownDescription": "Indicates whether the instances launched in the VPC get DNS hostnames\\. If enabled, instances in the VPC get DNS hostnames; otherwise, they do not\\. Disabled by default for nondefault VPCs\\. For more information, see [DNS attributes in your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support)\\. \nYou can only enable DNS hostnames if you've enabled DNS support\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableDnsHostnames", + "type": "boolean" + }, + "EnableDnsSupport": { + "markdownDescription": "Indicates whether the DNS resolution is supported for the VPC\\. If enabled, queries to the Amazon provided DNS server at the 169\\.254\\.169\\.253 IP address, or the reserved IP address at the base of the VPC network range \"plus two\" succeed\\. If disabled, the Amazon provided DNS service in the VPC that resolves public DNS hostnames to IP addresses is not enabled\\. Enabled by default\\. For more information, see [DNS attributes in your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableDnsSupport", + "type": "boolean" + }, + "InstanceTenancy": { + "markdownDescription": "The allowed tenancy of instances launched into the VPC\\. \n+ `default`: An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch\\.\n+ `dedicated`: An instance launched into the VPC runs on dedicated hardware by default, unless you explicitly specify a tenancy of `host` during instance launch\\. You cannot specify a tenancy of `default` during instance launch\\.\nUpdating `InstanceTenancy` requires no replacement only if you are updating its value from `dedicated` to `default`\\. Updating `InstanceTenancy` from `default` to `dedicated` requires replacement\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dedicated | default | host` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "InstanceTenancy", + "type": "string" + }, + "Ipv4IpamPoolId": { + "markdownDescription": "The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR\\. For more information, see [What is IPAM?](/vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*\\. \nYou must specify either`CidrBlock` or `Ipv4IpamPoolId`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv4IpamPoolId", + "type": "string" + }, + "Ipv4NetmaskLength": { + "markdownDescription": "The netmask length of the IPv4 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager \\(IPAM\\) pool\\. For more information about IPAM, see [What is IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv4NetmaskLength", + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags for the VPC\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "Requests an Amazon\\-provided IPv6 CIDR block with a /56 prefix length for the VPC\\. You cannot specify the range of IPv6 addresses, or the size of the CIDR block\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AmazonProvidedIpv6CidrBlock", + "type": "boolean" + }, + "CidrBlock": { + "markdownDescription": "An IPv4 CIDR block to associate with the VPC\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CidrBlock", + "type": "string" + }, + "Ipv4IpamPoolId": { + "markdownDescription": "Associate a CIDR allocated from an IPv4 IPAM pool to a VPC\\. For more information about Amazon VPC IP Address Manager \\(IPAM\\), see [What is IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv4IpamPoolId", + "type": "string" + }, + "Ipv4NetmaskLength": { + "markdownDescription": "The netmask length of the IPv4 CIDR you would like to associate from an Amazon VPC IP Address Manager \\(IPAM\\) pool\\. For more information about IPAM, see [What is IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv4NetmaskLength", + "type": "number" + }, + "Ipv6CidrBlock": { + "markdownDescription": "An IPv6 CIDR block from the IPv6 address pool\\. You must also specify `Ipv6Pool` in the request\\. \nTo let Amazon choose the IPv6 CIDR block for you, omit this parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv6CidrBlock", + "type": "string" + }, + "Ipv6IpamPoolId": { + "markdownDescription": "Associates a CIDR allocated from an IPv6 IPAM pool to a VPC\\. For more information about Amazon VPC IP Address Manager \\(IPAM\\), see [What is IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv6IpamPoolId", + "type": "string" + }, + "Ipv6NetmaskLength": { + "markdownDescription": "The netmask length of the IPv6 CIDR you would like to associate from an Amazon VPC IP Address Manager \\(IPAM\\) pool\\. For more information about IPAM, see [What is IPAM?](https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv6NetmaskLength", + "type": "number" + }, + "Ipv6Pool": { + "markdownDescription": "The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ipv6Pool", + "type": "string" + }, + "VpcId": { + "markdownDescription": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ID of the DHCP options set, or `default` to associate no DHCP options with the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DhcpOptionsId", + "type": "string" + }, + "VpcId": { + "markdownDescription": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A policy that controls access to the service from the VPC\\. If this parameter is not specified, the default policy allows full access to the service\\. Endpoint policies are supported only for gateway and interface endpoints\\. \nFor CloudFormation templates in YAML, you can provide the policy in JSON or YAML format\\. AWS CloudFormation converts YAML policies to JSON format before calling the API to create or modify the VPC endpoint\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDocument", + "type": "object" + }, + "PrivateDnsEnabled": { + "markdownDescription": "Indicate whether to associate a private hosted zone with the specified VPC\\. The private hosted zone contains a record set for the default public DNS name for the service for the Region \\(for example, `kinesis.us-east-1.amazonaws.com`\\), which resolves to the private IP addresses of the endpoint network interfaces in the VPC\\. This enables you to make requests to the default public DNS name for the service instead of the public DNS names that are automatically generated by the VPC endpoint service\\. \nTo use a private hosted zone, you must set the following VPC attributes to `true`: `enableDnsHostnames` and `enableDnsSupport`\\. \nThis property is supported only for interface endpoints\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateDnsEnabled", + "type": "boolean" + }, + "RouteTableIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of the route tables\\. Routing is supported only for gateway endpoints\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteTableIds", + "type": "array" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of the security groups to associate with the endpoint network interfaces\\. If this parameter is not specified, we use the default security group for the VPC\\. Security groups are supported only for interface endpoints\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "ServiceName": { + "markdownDescription": "The service name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceName", + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of the subnets in which to create endpoint network interfaces\\. You must specify this property for an interface endpoint or a Gateway Load Balancer endpoint\\. You can't specify this property for a gateway endpoint\\. For a Gateway Load Balancer endpoint, you can specify only one subnet\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "type": "array" + }, + "VpcEndpointType": { + "markdownDescription": "The type of endpoint\\. \nDefault: Gateway \n*Required*: No \n*Type*: String \n*Allowed values*: `Gateway | GatewayLoadBalancer | Interface` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcEndpointType", + "type": "string" + }, + "VpcId": { + "markdownDescription": "The ID of the VPC for the endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "The endpoint events for which to receive notifications\\. Valid values are `Accept`, `Connect`, `Delete`, and `Reject`\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionEvents", + "type": "array" + }, + "ConnectionNotificationArn": { + "markdownDescription": "The ARN of the SNS topic for the notifications\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionNotificationArn", + "type": "string" + }, + "ServiceId": { + "markdownDescription": "The ID of the endpoint service\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceId", + "type": "string" + }, + "VPCEndpointId": { + "markdownDescription": "The ID of the endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Indicates whether requests from service consumers to create an endpoint to your service must be accepted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptanceRequired", + "type": "boolean" + }, + "ContributorInsightsEnabled": { + "markdownDescription": "Indicates whether to enable the built\\-in Contributor Insights rules\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContributorInsightsEnabled", + "type": "boolean" + }, + "GatewayLoadBalancerArns": { + "items": { + "type": "string" + }, + "markdownDescription": "The Amazon Resource Names \\(ARNs\\) of the Gateway Load Balancers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GatewayLoadBalancerArns", + "type": "array" + }, + "NetworkLoadBalancerArns": { + "items": { + "type": "string" + }, + "markdownDescription": "The Amazon Resource Names \\(ARNs\\) of the Network Load Balancers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkLoadBalancerArns", + "type": "array" + }, + "PayerResponsibility": { + "markdownDescription": "The entity that is responsible for the endpoint costs\\. The default is the endpoint owner\\. If you set the payer responsibility to the service owner, you cannot set it back to the endpoint owner\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ServiceOwner` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The Amazon Resource Names \\(ARN\\) of one or more principals \\(users, IAM roles, and AWS accounts\\)\\. Permissions are granted to the principals in this list\\. To grant permissions to all principals, specify an asterisk \\(\\*\\)\\. Permissions are revoked for principals not in this list\\. If the list is empty, then all permissions are revoked\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedPrincipals", + "type": "array" + }, + "ServiceId": { + "markdownDescription": "The ID of the service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ID of the internet gateway\\. \nYou must specify either `InternetGatewayId` or `VpnGatewayId`, but not both\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InternetGatewayId", + "type": "string" + }, + "VpcId": { + "markdownDescription": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcId", + "type": "string" + }, + "VpnGatewayId": { + "markdownDescription": "The ID of the virtual private gateway\\. \nYou must specify either `InternetGatewayId` or `VpnGatewayId`, but not both\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The AWS account ID of the owner of the accepter VPC\\. \nDefault: Your AWS account ID \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PeerOwnerId", + "type": "string" + }, + "PeerRegion": { + "markdownDescription": "The Region code for the accepter VPC, if the accepter VPC is located in a Region other than the Region in which you make the request\\. \nDefault: The Region in which you make the request\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PeerRegion", + "type": "string" + }, + "PeerRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the VPC peer role for the peering connection in another AWS account\\. \nThis is required when you are peering a VPC in a different AWS account\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PeerRoleArn", + "type": "string" + }, + "PeerVpcId": { + "markdownDescription": "The ID of the VPC with which you are creating the VPC peering connection\\. You must specify this parameter in the request\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PeerVpcId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Any tags assigned to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VpcId": { + "markdownDescription": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ID of the customer gateway at your end of the VPN connection\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomerGatewayId", + "type": "string" + }, + "StaticRoutesOnly": { + "markdownDescription": "Indicates whether the VPN connection uses static routes only\\. Static routes must be used for devices that don't support BGP\\. \nIf you are creating a VPN connection for a device that does not support Border Gateway Protocol \\(BGP\\), you must specify `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StaticRoutesOnly", + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Any tags assigned to the VPN connection\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TransitGatewayId": { + "markdownDescription": "The ID of the transit gateway associated with the VPN connection\\. \nYou must specify either `TransitGatewayId` or `VpnGatewayId`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayId", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of VPN connection\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ipsec.1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + }, + "VpnGatewayId": { + "markdownDescription": "The ID of the virtual private gateway at the AWS side of the VPN connection\\. \nYou must specify either `TransitGatewayId` or `VpnGatewayId`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpnGatewayId", + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification" + }, + "markdownDescription": "The tunnel options for the VPN connection\\. \n*Required*: No \n*Type*: List of [VpnTunnelOptionsSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpnTunnelOptionsSpecifications", + "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": { + "markdownDescription": "The pre\\-shared key \\(PSK\\) to establish initial authentication between the virtual private gateway and customer gateway\\. \nConstraints: Allowed characters are alphanumeric characters, periods \\(\\.\\), and underscores \\(\\_\\)\\. Must be between 8 and 64 characters in length and cannot start with zero \\(0\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PreSharedKey", + "type": "string" + }, + "TunnelInsideCidr": { + "markdownDescription": "The range of inside IP addresses for the tunnel\\. Any specified CIDR blocks must be unique across all VPN connections that use the same virtual private gateway\\. \nConstraints: A size /30 CIDR block from the `169.254.0.0/16` range\\. The following CIDR blocks are reserved and cannot be used: \n+ `169.254.0.0/30` \n+ `169.254.1.0/30` \n+ `169.254.2.0/30` \n+ `169.254.3.0/30` \n+ `169.254.4.0/30` \n+ `169.254.5.0/30` \n+ `169.254.169.252/30` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The CIDR block associated with the local subnet of the customer network\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationCidrBlock", + "type": "string" + }, + "VpnConnectionId": { + "markdownDescription": "The ID of the VPN connection\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The private Autonomous System Number \\(ASN\\) for the Amazon side of a BGP session\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AmazonSideAsn", + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Any tags assigned to the virtual private gateway\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Type": { + "markdownDescription": "The type of VPN connection the virtual private gateway supports\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ipsec.1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "The ID of the route table\\. The routing table must be associated with the same VPC that the virtual private gateway is attached to\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RouteTableIds", + "type": "array" + }, + "VpnGatewayId": { + "markdownDescription": "The ID of the virtual private gateway that is attached to a VPC\\. The virtual private gateway must be attached to the same VPC that the routing tables are associated with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Indicates whether the volume is auto\\-enabled for I/O operations\\. By default, Amazon EBS disables I/O to the volume from attached EC2 instances when it determines that a volume's data is potentially inconsistent\\. If the consistency of the volume is not a concern, and you prefer that the volume be made available immediately if it's impaired, you can configure the volume to automatically enable I/O\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoEnableIO", + "type": "boolean" + }, + "AvailabilityZone": { + "markdownDescription": "The Availability Zone in which to create the volume\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "AvailabilityZone", + "type": "string" + }, + "Encrypted": { + "markdownDescription": "Indicates whether the volume should be encrypted\\. The effect of setting the encryption state to `true` depends on the volume origin \\(new or from a snapshot\\), starting encryption state, ownership, and whether encryption by default is enabled\\. For more information, see [Encryption by default](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default) in the *Amazon Elastic Compute Cloud User Guide*\\. \nEncrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption\\. For more information, see [Supported instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: Updates are not supported\\.", + "title": "Encrypted", + "type": "boolean" + }, + "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\)\\. For `gp3`, `io1`, and `io2` volumes, this represents the number of IOPS that are provisioned for the volume\\. For `gp2` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting\\. \nThe following are the supported values for each volume type: \n+ `gp3`: 3,000\\-16,000 IOPS\n+ `io1`: 100\\-64,000 IOPS\n+ `io2`: 100\\-64,000 IOPS\n `io1` and `io2` volumes support up to 64,000 IOPS only on [Instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)\\. Other instance families support performance up to 32,000 IOPS\\. \nThis parameter is required for `io1` and `io2` volumes\\. The default for `gp3` volumes is 3,000 IOPS\\. This parameter is not supported for `gp2`, `st1`, `sc1`, or `standard` volumes\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iops", + "type": "number" + }, + "KmsKeyId": { + "markdownDescription": "The identifier of the AWS KMS key to use for Amazon EBS encryption\\. If `KmsKeyId` is specified, the encrypted state must be `true`\\. \nIf you omit this property and your account is enabled for encryption by default, or **Encrypted** is set to `true`, then the volume is encrypted using the default key specified for your account\\. If your account does not have a default key, then the volume is encrypted using the AWS managed key\\. \nAlternatively, if you want to specify a different key, you can specify one of the following: \n+ Key ID\\. For example, 1234abcd\\-12ab\\-34cd\\-56ef\\-1234567890ab\\.\n+ Key alias\\. Specify the alias for the key, prefixed with `alias/`\\. For example, for a key with the alias `my_cmk`, use `alias/my_cmk`\\. Or to specify the AWS managed key, use `alias/aws/ebs`\\.\n+ Key ARN\\. For example, arn:aws:kms:us\\-east\\-1:012345678910:key/1234abcd\\-12ab\\-34cd\\-56ef\\-1234567890ab\\.\n+ Alias ARN\\. For example, arn:aws:kms:us\\-east\\-1:012345678910:alias/ExampleAlias\\.\n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "KmsKeyId", + "type": "string" + }, + "MultiAttachEnabled": { + "markdownDescription": "Indicates whether Amazon EBS Multi\\-Attach is enabled\\. \nAWS CloudFormation does not currently support updating a single\\-attach volume to be multi\\-attach enabled, updating a multi\\-attach enabled volume to be single\\-attach, or updating the size or number of I/O operations per second \\(IOPS\\) of a multi\\-attach enabled volume\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MultiAttachEnabled", + "type": "boolean" + }, + "OutpostArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Outpost\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutpostArn", + "type": "string" + }, + "Size": { + "markdownDescription": "The size of the volume, in GiBs\\. You must specify either a snapshot ID or a volume size\\. If you specify a snapshot, the default is the snapshot size\\. You can specify a volume size that is equal to or larger than the snapshot size\\. \nThe following are the supported volumes sizes for each volume type: \n+ `gp2` and `gp3`: 1\\-16,384\n+ `io1` and `io2`: 4\\-16,384\n+ `st1` and `sc1`: 125\\-16,384\n+ `standard`: 1\\-1,024\n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Size", + "type": "number" + }, + "SnapshotId": { + "markdownDescription": "The snapshot from which to create the volume\\. You must specify either a snapshot ID or a volume size\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "SnapshotId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to apply to the volume during creation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Throughput": { + "markdownDescription": "The throughput to provision for a volume, with a maximum of 1,000 MiB/s\\. \nThis parameter is valid only for `gp3` volumes\\. The default value is 125\\. \nValid Range: Minimum value of 125\\. Maximum value of 1000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Throughput", + "type": "number" + }, + "VolumeType": { + "markdownDescription": "The volume type\\. This parameter can be one of the following values: \n+ General Purpose SSD: `gp2` \\| `gp3` \n+ Provisioned IOPS SSD: `io1` \\| `io2` \n+ Throughput Optimized HDD: `st1` \n+ Cold HDD: `sc1` \n+ Magnetic: `standard` \nThroughput Optimized HDD \\(`st1`\\) and Cold HDD \\(`sc1`\\) volumes can't be used as boot volumes\\.\nFor more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*\\. \nDefault: `gp2` \n*Required*: No \n*Type*: String \n*Allowed values*: `gp2 | gp3 | io1 | io2 | sc1 | st1 | standard` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The device name \\(for example, `/dev/sdh` or `xvdh`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Device", + "type": "string" + }, + "InstanceId": { + "markdownDescription": "The ID of the instance to which the volume attaches\\. This value can be a reference to an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) resource, or it can be the physical ID of an existing EC2 instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceId", + "type": "string" + }, + "VolumeId": { + "markdownDescription": "The ID of the Amazon EBS volume\\. The volume and instance must be within the same Availability Zone\\. This value can be a reference to an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html) resource, or it can be the volume ID of an existing Amazon EBS volume\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "The details about the repository that are publicly visible in the Amazon ECR Public Gallery\\. For more information, see [Amazon ECR Public repository catalog data](https://docs.aws.amazon.com/AmazonECR/latest/public/public-repository-catalog-data.html) in the *Amazon ECR Public User Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepositoryCatalogData" + }, + "RepositoryName": { + "markdownDescription": "The name to use for the public repository\\. The repository name may be specified on its own \\(such as `nginx-web-app`\\) or it can be prepended with a namespace to group the repository into a category \\(such as `project-a/nginx-web-app`\\)\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the repository name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RepositoryName", + "type": "string" + }, + "RepositoryPolicyText": { + "markdownDescription": "The JSON repository policy text to apply to the public repository\\. For more information, see [Amazon ECR Public repository policies](https://docs.aws.amazon.com/AmazonECR/latest/public/public-repository-policies.html) in the *Amazon ECR Public User Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepositoryPolicyText", + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The Amazon ECR repository prefix associated with the pull through cache rule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `20` \n*Pattern*: `[a-z0-9]+(?:[._-][a-z0-9]+)*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EcrRepositoryPrefix", + "type": "string" + }, + "UpstreamRegistryUrl": { + "markdownDescription": "The upstream registry URL associated with the pull through cache rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The JSON policy text for your registry\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The replication configuration for a registry\\. \n*Required*: Yes \n*Type*: [ReplicationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-replicationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "An array of objects representing the replication destinations and repository filters for a replication configuration\\. \n*Required*: Yes \n*Type*: List of [ReplicationRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-replicationrule.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration.ReplicationDestination": { + "additionalProperties": false, + "properties": { + "Region": { + "markdownDescription": "The Region to replicate to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `25` \n*Pattern*: `[0-9a-z-]{2,25}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", + "type": "string" + }, + "RegistryId": { + "markdownDescription": "The AWS account ID of the Amazon ECR private registry to replicate to\\. When configuring cross\\-Region replication within your own registry, specify your own account ID\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[0-9]{12}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegistryId", + "type": "string" + } + }, + "required": [ + "Region", + "RegistryId" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration.ReplicationRule": { + "additionalProperties": false, + "properties": { + "Destinations": { + "items": { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationDestination" + }, + "markdownDescription": "An array of objects representing the destination for a replication rule\\. \n*Required*: Yes \n*Type*: List of [ReplicationDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-replicationdestination.html) \n*Maximum*: `25` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destinations", + "type": "array" + }, + "RepositoryFilters": { + "items": { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.RepositoryFilter" + }, + "markdownDescription": "An array of objects representing the filters for a replication rule\\. Specifying a repository filter for a replication rule provides a method for controlling which repositories in a private registry are replicated\\. \n*Required*: No \n*Type*: List of [RepositoryFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-repositoryfilter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepositoryFilters", + "type": "array" + } + }, + "required": [ + "Destinations" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration.RepositoryFilter": { + "additionalProperties": false, + "properties": { + "Filter": { + "markdownDescription": "The repository filter details\\. When the `PREFIX_MATCH` filter type is specified, this value is required and should be the repository name prefix to configure replication for\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `256` \n*Pattern*: `^(?:[a-z0-9]+(?:[._-][a-z0-9]*)*/)*[a-z0-9]*(?:[._-][a-z0-9]*)*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filter", + "type": "string" + }, + "FilterType": { + "markdownDescription": "The repository filter type\\. The only supported value is `PREFIX_MATCH`, which is a repository name prefix specified with the `filter` parameter\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `PREFIX_MATCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The encryption configuration for the repository\\. This determines how the contents of your repository are encrypted at rest\\. \n*Required*: No \n*Type*: [EncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-encryptionconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/AWS::ECR::Repository.ImageScanningConfiguration", + "markdownDescription": "The image scanning configuration for the repository\\. This determines whether images are scanned for known vulnerabilities after being pushed to the repository\\. \n*Required*: No \n*Type*: [ImageScanningConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-imagescanningconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageScanningConfiguration" + }, + "ImageTagMutability": { + "markdownDescription": "The tag mutability setting for the repository\\. If this parameter is omitted, the default setting of `MUTABLE` will be used which will allow image tags to be overwritten\\. If `IMMUTABLE` is specified, all image tags within the repository will be immutable which will prevent them from being overwritten\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `IMMUTABLE | MUTABLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageTagMutability", + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/AWS::ECR::Repository.LifecyclePolicy", + "markdownDescription": "Creates or updates a lifecycle policy\\. For information about lifecycle policy syntax, see [Lifecycle policy template](https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html)\\. \n*Required*: No \n*Type*: [LifecyclePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-lifecyclepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LifecyclePolicy" + }, + "RepositoryName": { + "markdownDescription": "The name to use for the repository\\. The repository name may be specified on its own \\(such as `nginx-web-app`\\) or it can be prepended with a namespace to group the repository into a category \\(such as `project-a/nginx-web-app`\\)\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the repository name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `256` \n*Pattern*: `(?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RepositoryName", + "type": "string" + }, + "RepositoryPolicyText": { + "markdownDescription": "The JSON repository policy text to apply to the repository\\. For more information, see [Amazon ECR repository policies](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html) in the *Amazon Elastic Container Registry User Guide*\\. \n*Required*: No \n*Type*: Json \n*Minimum*: `0` \n*Maximum*: `10240` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepositoryPolicyText", + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The encryption type to use\\. \nIf you use the `KMS` encryption type, the contents of the repository will be encrypted using server\\-side encryption with AWS Key Management Service key stored in AWS KMS\\. When you use AWS KMS to encrypt your data, you can either use the default AWS managed AWS KMS key for Amazon ECR, or specify your own AWS KMS key, which you already created\\. For more information, see [Protecting data using server\\-side encryption with an AWS KMS key stored in AWS Key Management Service \\(SSE\\-KMS\\)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*\\. \nIf you use the `AES256` encryption type, Amazon ECR uses server\\-side encryption with Amazon S3\\-managed encryption keys which encrypts the images in the repository using an AES\\-256 encryption algorithm\\. For more information, see [Protecting data using server\\-side encryption with Amazon S3\\-managed encryption keys \\(SSE\\-S3\\)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AES256 | KMS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncryptionType", + "type": "string" + }, + "KmsKey": { + "markdownDescription": "If you use the `KMS` encryption type, specify the AWS KMS key to use for encryption\\. The alias, key ID, or full ARN of the AWS KMS key can be specified\\. The key must exist in the same Region as the repository\\. If no key is specified, the default AWS managed AWS KMS key for Amazon ECR will be used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKey", + "type": "string" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "AWS::ECR::Repository.ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "markdownDescription": "The setting that determines whether images are scanned after being pushed to a repository\\. If set to `true`, images will be scanned after being pushed\\. If this parameter is not specified, it will default to `false` and images will not be scanned unless a scan is manually started\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScanOnPush", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::ECR::Repository.LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "markdownDescription": "The JSON repository policy text to apply to the repository\\. \n*Required*: No \n*Type*: String \n*Minimum*: `100` \n*Maximum*: `30720` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LifecyclePolicyText", + "type": "string" + }, + "RegistryId": { + "markdownDescription": "The AWS account ID associated with the registry that contains the repository\\. If you do\u2028 not specify a registry, the default registry is assumed\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[0-9]{12}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The Auto Scaling group settings for the capacity provider\\. \n*Required*: Yes \n*Type*: [AutoScalingGroupProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-autoscalinggroupprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoScalingGroupProvider" + }, + "Name": { + "markdownDescription": "The name of the capacity provider\\. If a name is specified, it cannot start with `aws`, `ecs`, or `fargate`\\. If no name is specified, a default name in the `CFNStackName-CFNResourceName-RandomString` format is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The metadata that you apply to the capacity provider to help you categorize and organize it\\. Each tag consists of a key and an optional value\\. You define both\\. \nThe following basic restrictions apply to tags: \n+ Maximum number of tags per resource \\- 50\n+ For each resource, each tag key must be unique, and each tag key can have only one value\\.\n+ Maximum key length \\- 128 Unicode characters in UTF\\-8\n+ Maximum value length \\- 256 Unicode characters in UTF\\-8\n+ If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters\\. Generally allowed characters are: letters, numbers, and spaces representable in UTF\\-8, and the following characters: \\+ \\- = \\. \\_ : / @\\.\n+ Tag keys and values are case\\-sensitive\\.\n+ Do not use `aws:`, `AWS:`, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use\\. You cannot edit or delete tag keys or values with this prefix\\. Tags with this prefix do not count against your tags per resource limit\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) or short name that identifies the Auto Scaling group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutoScalingGroupArn", + "type": "string" + }, + "ManagedScaling": { + "$ref": "#/definitions/AWS::ECS::CapacityProvider.ManagedScaling", + "markdownDescription": "The managed scaling settings for the Auto Scaling group capacity provider\\. \n*Required*: No \n*Type*: [ManagedScaling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedscaling.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManagedScaling" + }, + "ManagedTerminationProtection": { + "markdownDescription": "The managed termination protection setting to use for the Auto Scaling group capacity provider\\. This determines whether the Auto Scaling group has managed termination protection\\. The default is disabled\\. \nWhen using managed termination protection, managed scaling must also be used otherwise managed termination protection doesn't work\\.\nWhen managed termination protection is enabled, Amazon ECS prevents the Amazon EC2 instances in an Auto Scaling group that contain tasks from being terminated during a scale\\-in action\\. The Auto Scaling group and each instance in the Auto Scaling group must have instance protection from scale\\-in actions enabled as well\\. For more information, see [Instance Protection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection) in the * AWS Auto Scaling User Guide*\\. \nWhen managed termination protection is disabled, your Amazon EC2 instances aren't protected from termination when the Auto Scaling group scales in\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManagedTerminationProtection", + "type": "string" + } + }, + "required": [ + "AutoScalingGroupArn" + ], + "type": "object" + }, + "AWS::ECS::CapacityProvider.ManagedScaling": { + "additionalProperties": false, + "properties": { + "InstanceWarmupPeriod": { + "markdownDescription": "The period of time, in seconds, after a newly launched Amazon EC2 instance can contribute to CloudWatch metrics for Auto Scaling group\\. If this parameter is omitted, the default value of `300` seconds is used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `10000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceWarmupPeriod", + "type": "number" + }, + "MaximumScalingStepSize": { + "markdownDescription": "The maximum number of container instances that Amazon ECS scales in or scales out at one time\\. If this parameter is omitted, the default value of `10000` is used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `10000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumScalingStepSize", + "type": "number" + }, + "MinimumScalingStepSize": { + "markdownDescription": "The minimum number of container instances that Amazon ECS scales in or scales out at one time\\. If this parameter is omitted, the default value of `1` is used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `10000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinimumScalingStepSize", + "type": "number" + }, + "Status": { + "markdownDescription": "Determines whether to use managed scaling for the capacity provider\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + }, + "TargetCapacity": { + "markdownDescription": "The target capacity value for the capacity provider\\. The specified value must be greater than `0` and less than or equal to `100`\\. A value of `100` results in the Amazon EC2 instances in your Auto Scaling group being completely used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The short name of one or more capacity providers to associate with the cluster\\. A capacity provider must be associated with a cluster before it can be included as part of the default capacity provider strategy of the cluster or used in a capacity provider strategy\\. \nIf specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created and not already associated with another cluster\\. \nTo use an AWS Fargate capacity provider, specify either the `FARGATE` or `FARGATE_SPOT` capacity providers\\. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityProviders", + "type": "array" + }, + "ClusterName": { + "markdownDescription": "A user\\-generated string that you use to identify your cluster\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID for the name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterName", + "type": "string" + }, + "ClusterSettings": { + "items": { + "$ref": "#/definitions/AWS::ECS::Cluster.ClusterSettings" + }, + "markdownDescription": "The setting to use when creating a cluster\\. This parameter is used to enable CloudWatch Container Insights for a cluster\\. If this value is specified, it will override the `containerInsights` value set with [PutAccountSetting](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSetting.html) or [PutAccountSettingDefault](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSettingDefault.html)\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clustersettings.html) of [ClusterSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clustersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterSettings", + "type": "array" + }, + "Configuration": { + "$ref": "#/definitions/AWS::ECS::Cluster.ClusterConfiguration", + "markdownDescription": "The execute command configuration for the cluster\\. \n*Required*: No \n*Type*: [ClusterConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clusterconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configuration" + }, + "DefaultCapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/AWS::ECS::Cluster.CapacityProviderStrategyItem" + }, + "markdownDescription": "The default capacity provider strategy for the cluster\\. When services or tasks are run in the cluster with no launch type or capacity provider strategy specified, the default capacity provider strategy is used\\. \n*Required*: No \n*Type*: List of [CapacityProviderStrategyItem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-capacityproviderstrategyitem.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultCapacityProviderStrategy", + "type": "array" + }, + "ServiceConnectDefaults": { + "$ref": "#/definitions/AWS::ECS::Cluster.ServiceConnectDefaults" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The metadata that you apply to the cluster to help you categorize and organize them\\. Each tag consists of a key and an optional value\\. You define both\\. \nThe following basic restrictions apply to tags: \n+ Maximum number of tags per resource \\- 50\n+ For each resource, each tag key must be unique, and each tag key can have only one value\\.\n+ Maximum key length \\- 128 Unicode characters in UTF\\-8\n+ Maximum value length \\- 256 Unicode characters in UTF\\-8\n+ If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters\\. Generally allowed characters are: letters, numbers, and spaces representable in UTF\\-8, and the following characters: \\+ \\- = \\. \\_ : / @\\.\n+ Tag keys and values are case\\-sensitive\\.\n+ Do not use `aws:`, `AWS:`, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use\\. You cannot edit or delete tag keys or values with this prefix\\. Tags with this prefix do not count against your tags per resource limit\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The *base* value designates how many tasks, at a minimum, to run on the specified capacity provider\\. Only one capacity provider in a capacity provider strategy can have a *base* defined\\. If no value is specified, the default value of `0` is used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Base", + "type": "number" + }, + "CapacityProvider": { + "markdownDescription": "The short name of the capacity provider\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityProvider", + "type": "string" + }, + "Weight": { + "markdownDescription": "The *weight* value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider\\. The `weight` value is taken into consideration after the `base` value, if defined, is satisfied\\. \nIf no `weight` value is specified, the default value of `0` is used\\. When multiple capacity providers are specified within a capacity provider strategy, at least one of the capacity providers must have a weight value greater than zero and any capacity providers with a weight of `0` can't be used to place tasks\\. If you specify multiple capacity providers in a strategy that all have a weight of `0`, any `RunTask` or `CreateService` actions using the capacity provider strategy will fail\\. \nAn example scenario for using weights is defining a strategy that contains two capacity providers and both have a weight of `1`, then when the `base` is satisfied, the tasks will be split evenly across the two capacity providers\\. Using that same logic, if you specify a weight of `1` for *capacityProviderA* and a weight of `4` for *capacityProviderB*, then for every one task that's run using *capacityProviderA*, four tasks would use *capacityProviderB*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Weight", + "type": "number" + } + }, + "type": "object" + }, + "AWS::ECS::Cluster.ClusterConfiguration": { + "additionalProperties": false, + "properties": { + "ExecuteCommandConfiguration": { + "$ref": "#/definitions/AWS::ECS::Cluster.ExecuteCommandConfiguration", + "markdownDescription": "The details of the execute command configuration\\. \n*Required*: No \n*Type*: [ExecuteCommandConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecuteCommandConfiguration" + } + }, + "type": "object" + }, + "AWS::ECS::Cluster.ClusterSettings": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the cluster setting\\. The only supported value is `containerInsights`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `containerInsights` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "The value to set for the cluster setting\\. The supported values are `enabled` and `disabled`\\. If `enabled` is specified, CloudWatch Container Insights will be enabled for the cluster, otherwise it will be disabled unless the `containerInsights` account setting is enabled\\. If a cluster value is specified, it will override the `containerInsights` value set with [PutAccountSetting](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSetting.html) or [PutAccountSettingDefault](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSettingDefault.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::Cluster.ExecuteCommandConfiguration": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "markdownDescription": "Specify an AWS Key Management Service key ID to encrypt the data between the local client and the container\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", + "type": "string" + }, + "LogConfiguration": { + "$ref": "#/definitions/AWS::ECS::Cluster.ExecuteCommandLogConfiguration", + "markdownDescription": "The log configuration for the results of the execute command actions\\. The logs can be sent to CloudWatch Logs or an Amazon S3 bucket\\. When `logging=OVERRIDE` is specified, a `logConfiguration` must be provided\\. \n*Required*: No \n*Type*: [ExecuteCommandLogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogConfiguration" + }, + "Logging": { + "markdownDescription": "The log setting to use for redirecting logs for your execute command results\\. The following log settings are available\\. \n+ `NONE`: The execute command session is not logged\\.\n+ `DEFAULT`: The `awslogs` configuration in the task definition is used\\. If no logging parameter is specified, it defaults to this value\\. If no `awslogs` log driver is configured in the task definition, the output won't be logged\\.\n+ `OVERRIDE`: Specify the logging details as a part of `logConfiguration`\\. If the `OVERRIDE` logging option is specified, the `logConfiguration` is required\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `DEFAULT | NONE | OVERRIDE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Logging", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::Cluster.ExecuteCommandLogConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchEncryptionEnabled": { + "markdownDescription": "Determines whether to use encryption on the CloudWatch logs\\. If not specified, encryption will be disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchEncryptionEnabled", + "type": "boolean" + }, + "CloudWatchLogGroupName": { + "markdownDescription": "The name of the CloudWatch log group to send logs to\\. \nThe CloudWatch log group must already be created\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogGroupName", + "type": "string" + }, + "S3BucketName": { + "markdownDescription": "The name of the S3 bucket to send logs to\\. \nThe S3 bucket must already be created\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketName", + "type": "string" + }, + "S3EncryptionEnabled": { + "markdownDescription": "Determines whether to use encryption on the S3 logs\\. If not specified, encryption is not used\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3EncryptionEnabled", + "type": "boolean" + }, + "S3KeyPrefix": { + "markdownDescription": "An optional folder in the S3 bucket to place logs in\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The capacity providers to associate with the cluster\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityProviders", + "type": "array" + }, + "Cluster": { + "markdownDescription": "The cluster the capacity provider association is the target of\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Cluster", + "type": "string" + }, + "DefaultCapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/AWS::ECS::ClusterCapacityProviderAssociations.CapacityProviderStrategy" + }, + "markdownDescription": "The default capacity provider strategy to associate with the cluster\\. \n*Required*: Yes \n*Type*: List of [CapacityProviderStrategy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-clustercapacityproviderassociations-capacityproviderstrategy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultCapacityProviderStrategy", + "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": { + "markdownDescription": "The *base* value designates how many tasks, at a minimum, to run on the specified capacity provider\\. Only one capacity provider in a capacity provider strategy can have a *base* defined\\. If no value is specified, the default value of `0` is used\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Base", + "type": "number" + }, + "CapacityProvider": { + "markdownDescription": "The short name of the capacity provider\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityProvider", + "type": "string" + }, + "Weight": { + "markdownDescription": "The *weight* value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider\\. The `weight` value is taken into consideration after the `base` value, if defined, is satisfied\\. \nIf no `weight` value is specified, the default value of `0` is used\\. When multiple capacity providers are specified within a capacity provider strategy, at least one of the capacity providers must have a weight value greater than zero and any capacity providers with a weight of `0` will not be used to place tasks\\. If you specify multiple capacity providers in a strategy that all have a weight of `0`, any `RunTask` or `CreateService` actions using the capacity provider strategy will fail\\. \nAn example scenario for using weights is defining a strategy that contains two capacity providers and both have a weight of `1`, then when the `base` is satisfied, the tasks will be split evenly across the two capacity providers\\. Using that same logic, if you specify a weight of `1` for *capacityProviderA* and a weight of `4` for *capacityProviderB*, then for every one task that is run using *capacityProviderA*, four tasks would use *capacityProviderB*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The short name or full Amazon Resource Name \\(ARN\\) of the cluster that hosts the service that the task set exists in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Cluster", + "type": "string" + }, + "Service": { + "markdownDescription": "The short name or full Amazon Resource Name \\(ARN\\) of the service that the task set exists in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Service", + "type": "string" + }, + "TaskSetId": { + "markdownDescription": "The short name or full Amazon Resource Name \\(ARN\\) of the task set to set as the primary task set in the deployment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The capacity provider strategy to use for the service\\. \nA capacity provider strategy consists of one or more capacity providers along with the `base` and `weight` to assign to them\\. A capacity provider must be associated with the cluster to be used in a capacity provider strategy\\. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster\\. Only capacity providers with an `ACTIVE` or `UPDATING` status can be used\\. \nReview the [Capacity provider considerations](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-capacity-providers.html#capacity-providers-considerations) in the *Amazon Elastic Container Service Developer Guide\\.* \nIf a `capacityProviderStrategy` is specified, the `launchType` parameter must be omitted\\. If no `capacityProviderStrategy` or `launchType` is specified, the `defaultCapacityProviderStrategy` for the cluster is used\\. \nIf specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created\\. New capacity providers can be created with the CreateCapacityProvider API operation\\. \nTo use an AWS Fargate capacity provider, specify either the `FARGATE` or `FARGATE_SPOT` capacity providers\\. The AWS Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used\\. \nThe PutClusterCapacityProviders API operation is used to update the list of available capacity providers for a cluster after the cluster is created\\. \n*Required*: No \n*Type*: List of [CapacityProviderStrategyItem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-capacityproviderstrategyitem.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityProviderStrategy", + "type": "array" + }, + "Cluster": { + "markdownDescription": "The short name or full Amazon Resource Name \\(ARN\\) of the cluster that you run your service on\\. If you do not specify a cluster, the default cluster is assumed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Cluster", + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/AWS::ECS::Service.DeploymentConfiguration", + "markdownDescription": "Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks\\. \n*Required*: No \n*Type*: [DeploymentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/AWS::ECS::Service.DeploymentController", + "markdownDescription": "The deployment controller to use for the service\\. If no deployment controller is specified, the default value of `ECS` is used\\. \n*Required*: No \n*Type*: [DeploymentController](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentcontroller.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeploymentController" + }, + "DesiredCount": { + "markdownDescription": "The number of instantiations of the specified task definition to place and keep running on your cluster\\. \nFor new services, if a desired count is not specified, a default value of `1` is used\\. When using the `DAEMON` scheduling strategy, the desired count is not required\\. \nFor existing services, if a desired count is not specified, it is omitted from the operation\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DesiredCount", + "type": "number" + }, + "EnableECSManagedTags": { + "markdownDescription": "Specifies whether to turn on Amazon ECS managed tags for the tasks within the service\\. For more information, see [Tagging Your Amazon ECS Resources](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableECSManagedTags", + "type": "boolean" + }, + "EnableExecuteCommand": { + "markdownDescription": "Determines whether the execute command functionality is enabled for the service\\. If `true`, the execute command functionality is enabled for all containers in tasks as part of the service\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableExecuteCommand", + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "markdownDescription": "The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started\\. This is only used when your service is configured to use a load balancer\\. If your service has a load balancer defined and you don't specify a health check grace period value, the default value of `0` is used\\. \nIf you do not use an Elastic Load Balancing, we recomend that you use the `startPeriod` in the task definition healtch check parameters\\. For more information, see [Health check](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_HealthCheck.html)\\. \nIf your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you can specify a health check grace period of up to 2,147,483,647 seconds \\(about 69 years\\)\\. During that time, the Amazon ECS service scheduler ignores health check status\\. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckGracePeriodSeconds", + "type": "number" + }, + "LaunchType": { + "markdownDescription": "The launch type on which to run your service\\. For more information, see [Amazon ECS Launch Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `EC2 | EXTERNAL | FARGATE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchType", + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.LoadBalancer" + }, + "markdownDescription": "A list of load balancer objects to associate with the service\\. If you specify the `Role` property, `LoadBalancers` must be specified as well\\. For information about the number of load balancers that you can specify per service, see [Service Load Balancing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: List of [LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-loadbalancer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancers", + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::ECS::Service.NetworkConfiguration", + "markdownDescription": "The network configuration for the service\\. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own elastic network interface, and it is not supported for other network modes\\. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: Conditional \n*Type*: [NetworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-networkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.PlacementConstraint" + }, + "markdownDescription": "An array of placement constraint objects to use for tasks in your service\\. You can specify a maximum of 10 constraints for each task\\. This limit includes constraints in the task definition and those specified at runtime\\. \n*Required*: No \n*Type*: List of [PlacementConstraint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementconstraint.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlacementConstraints", + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.PlacementStrategy" + }, + "markdownDescription": "The placement strategy objects to use for tasks in your service\\. You can specify a maximum of five strategy rules per service\\. For more information, see [Task Placement Strategies](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: List of [PlacementStrategy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementstrategy.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlacementStrategies", + "type": "array" + }, + "PlatformVersion": { + "markdownDescription": "The platform version that your tasks in the service are running on\\. A platform version is specified only for tasks using the Fargate launch type\\. If one isn't specified, the `LATEST` platform version is used\\. For more information, see [AWS Fargate platform versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlatformVersion", + "type": "string" + }, + "PropagateTags": { + "markdownDescription": "Specifies whether to propagate the tags from the task definition or the service to the tasks in the service\\. If no value is specified, the tags are not propagated\\. Tags can only be propagated to the tasks within the service during service creation\\. To add tags to a task after service creation, use the [TagResource](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TagResource.html) API action\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | SERVICE | TASK_DEFINITION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropagateTags", + "type": "string" + }, + "Role": { + "markdownDescription": "The name or full Amazon Resource Name \\(ARN\\) of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf\\. This parameter is only permitted if you are using a load balancer with your service and your task definition doesn't use the `awsvpc` network mode\\. If you specify the `role` parameter, you must also specify a load balancer object with the `loadBalancers` parameter\\. \nIf your account has already created the Amazon ECS service\\-linked role, that role is used for your service unless you specify a role here\\. The service\\-linked role is required if your task definition uses the `awsvpc` network mode or if the service is configured to use service discovery, an external deployment controller, multiple target groups, or Elastic Inference accelerators in which case you don't specify a role here\\. For more information, see [Using service\\-linked roles for Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html) in the *Amazon Elastic Container Service Developer Guide*\\.\nIf your specified role has a path other than `/`, then you must either specify the full role ARN \\(this is recommended\\) or prefix the role name with the path\\. For example, if a role with the name `bar` has a path of `/foo/` then you would specify `/foo/bar` as the role name\\. For more information, see [Friendly names and paths](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Role", + "type": "string" + }, + "SchedulingStrategy": { + "markdownDescription": "The scheduling strategy to use for the service\\. For more information, see [Services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html)\\. \nThere are two service scheduler strategies available: \n+ `REPLICA`\\-The replica scheduling strategy places and maintains the desired number of tasks across your cluster\\. By default, the service scheduler spreads tasks across Availability Zones\\. You can use task placement strategies and constraints to customize task placement decisions\\. This scheduler strategy is required if the service uses the `CODE_DEPLOY` or `EXTERNAL` deployment controller types\\.\n+ `DAEMON`\\-The daemon scheduling strategy deploys exactly one task on each active container instance that meets all of the task placement constraints that you specify in your cluster\\. The service scheduler also evaluates the task placement constraints for running tasks and will stop tasks that don't meet the placement constraints\\. When you're using this strategy, you don't need to specify a desired number of tasks, a task placement strategy, or use Service Auto Scaling policies\\.\n**Note** \nTasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `DAEMON | REPLICA` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SchedulingStrategy", + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/AWS::ECS::Service.ServiceConnectConfiguration" + }, + "ServiceName": { + "markdownDescription": "The name of your service\\. Up to 255 letters \\(uppercase and lowercase\\), numbers, underscores, and hyphens are allowed\\. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a Region or across multiple Regions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceName", + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.ServiceRegistry" + }, + "markdownDescription": "The details of the service discovery registry to associate with this service\\. For more information, see [Service discovery](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html)\\. \nEach service may be associated with one service registry\\. Multiple service registries for each service isn't supported\\.\n*Required*: No \n*Type*: List of [ServiceRegistry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceregistry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceRegistries", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The metadata that you apply to the service to help you categorize and organize them\\. Each tag consists of a key and an optional value, both of which you define\\. When a service is deleted, the tags are deleted as well\\. \nThe following basic restrictions apply to tags: \n+ Maximum number of tags per resource \\- 50\n+ For each resource, each tag key must be unique, and each tag key can have only one value\\.\n+ Maximum key length \\- 128 Unicode characters in UTF\\-8\n+ Maximum value length \\- 256 Unicode characters in UTF\\-8\n+ If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters\\. Generally allowed characters are: letters, numbers, and spaces representable in UTF\\-8, and the following characters: \\+ \\- = \\. \\_ : / @\\.\n+ Tag keys and values are case\\-sensitive\\.\n+ Do not use `aws:`, `AWS:`, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use\\. You cannot edit or delete tag keys or values with this prefix\\. Tags with this prefix do not count against your tags per resource limit\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TaskDefinition": { + "markdownDescription": "The `family` and `revision` \\(`family:revision`\\) or full ARN of the task definition to run in your service\\. The `revision` is required in order for the resource to stabilize\\. \nA task definition must be specified if the service is using either the `ECS` or `CODE_DEPLOY` deployment controllers\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Whether the task's elastic network interface receives a public IP address\\. The default value is `DISABLED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssignPublicIp", + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of the security groups associated with the task or service\\. If you don't specify a security group, the default security group for the VPC is used\\. There's a limit of 5 security groups that can be specified per `AwsVpcConfiguration`\\. \nAll specified security groups must be from the same VPC\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroups", + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of the subnets associated with the task or service\\. There's a limit of 16 subnets that can be specified per `AwsVpcConfiguration`\\. \nAll specified subnets must be from the same VPC\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subnets", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ECS::Service.CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "markdownDescription": "The *base* value designates how many tasks, at a minimum, to run on the specified capacity provider\\. Only one capacity provider in a capacity provider strategy can have a *base* defined\\. If no value is specified, the default value of `0` is used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Base", + "type": "number" + }, + "CapacityProvider": { + "markdownDescription": "The short name of the capacity provider\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityProvider", + "type": "string" + }, + "Weight": { + "markdownDescription": "The *weight* value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider\\. The `weight` value is taken into consideration after the `base` value, if defined, is satisfied\\. \nIf no `weight` value is specified, the default value of `0` is used\\. When multiple capacity providers are specified within a capacity provider strategy, at least one of the capacity providers must have a weight value greater than zero and any capacity providers with a weight of `0` can't be used to place tasks\\. If you specify multiple capacity providers in a strategy that all have a weight of `0`, any `RunTask` or `CreateService` actions using the capacity provider strategy will fail\\. \nAn example scenario for using weights is defining a strategy that contains two capacity providers and both have a weight of `1`, then when the `base` is satisfied, the tasks will be split evenly across the two capacity providers\\. Using that same logic, if you specify a weight of `1` for *capacityProviderA* and a weight of `4` for *capacityProviderB*, then for every one task that's run using *capacityProviderA*, four tasks would use *capacityProviderB*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Determines whether to use the deployment circuit breaker logic for the service\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enable", + "type": "boolean" + }, + "Rollback": { + "markdownDescription": "Determines whether to configure Amazon ECS to roll back the service if a service deployment fails\\. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The deployment circuit breaker can only be used for services using the rolling update \\(`ECS`\\) deployment type that are not behind a Classic Load Balancer\\.\nThe **deployment circuit breaker** determines whether a service deployment will fail if the service can't reach a steady state\\. If enabled, a service deployment will transition to a failed state and stop launching new tasks\\. You can also enable Amazon ECS to roll back your service to the last completed deployment after a failure\\. For more information, see [Rolling update](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: [DeploymentCircuitBreaker](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentcircuitbreaker.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "markdownDescription": "If a service is using the rolling update \\(`ECS`\\) deployment type, the **maximum percent** parameter represents an upper limit on the number of tasks in a service that are allowed in the `RUNNING` or `PENDING` state during a deployment, as a percentage of the desired number of tasks \\(rounded down to the nearest integer\\), and while any container instances are in the `DRAINING` state if the service contains tasks using the EC2 launch type\\. This parameter enables you to define the deployment batch size\\. For example, if your service has a desired number of four tasks and a maximum percent value of 200%, the scheduler may start four new tasks before stopping the four older tasks \\(provided that the cluster resources required to do this are available\\)\\. The default value for maximum percent is 200%\\. \nIf a service is using the blue/green \\(`CODE_DEPLOY`\\) or `EXTERNAL` deployment types and tasks that use the EC2 launch type, the **maximum percent** value is set to the default value and is used to define the upper limit on the number of the tasks in the service that remain in the `RUNNING` state while the container instances are in the `DRAINING` state\\. If the tasks in the service use the Fargate launch type, the maximum percent value is not used, although it is returned when describing your service\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumPercent", + "type": "number" + }, + "MinimumHealthyPercent": { + "markdownDescription": "If a service is using the rolling update \\(`ECS`\\) deployment type, the **minimum healthy percent** represents a lower limit on the number of tasks in a service that must remain in the `RUNNING` state during a deployment, as a percentage of the desired number of tasks \\(rounded up to the nearest integer\\), and while any container instances are in the `DRAINING` state if the service contains tasks using the EC2 launch type\\. This parameter enables you to deploy without using additional cluster capacity\\. For example, if your service has a desired number of four tasks and a minimum healthy percent of 50%, the scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks\\. Tasks for services that *do not* use a load balancer are considered healthy if they're in the `RUNNING` state; tasks for services that *do* use a load balancer are considered healthy if they're in the `RUNNING` state and they're reported as healthy by the load balancer\\. The default value for minimum healthy percent is 100%\\. \nIf a service is using the blue/green \\(`CODE_DEPLOY`\\) or `EXTERNAL` deployment types and tasks that use the EC2 launch type, the **minimum healthy percent** value is set to the default value and is used to define the lower limit on the number of the tasks in the service that remain in the `RUNNING` state while the container instances are in the `DRAINING` state\\. If the tasks in the service use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinimumHealthyPercent", + "type": "number" + } + }, + "type": "object" + }, + "AWS::ECS::Service.DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "markdownDescription": "The deployment controller type to use\\. There are three deployment controller types available: \nECS \nThe rolling update \\(`ECS`\\) deployment type involves replacing the current running version of the container with the latest version\\. The number of containers Amazon ECS adds or removes from the service during a rolling update is controlled by adjusting the minimum and maximum number of healthy tasks allowed during a service deployment, as specified in the [DeploymentConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeploymentConfiguration.html)\\. \nCODE\\_DEPLOY \nThe blue/green \\(`CODE_DEPLOY`\\) deployment type uses the blue/green deployment model powered by AWS CodeDeploy, which allows you to verify a new deployment of a service before sending production traffic to it\\. \nEXTERNAL \nThe external \\(`EXTERNAL`\\) deployment type enables you to use any third\\-party deployment controller for full control over the deployment process for an Amazon ECS service\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `CODE_DEPLOY | ECS | EXTERNAL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::Service.LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "markdownDescription": "The name of the container \\(as it appears in a container definition\\) to associate with the load balancer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerName", + "type": "string" + }, + "ContainerPort": { + "markdownDescription": "The port on the container to associate with the load balancer\\. This port must correspond to a `containerPort` in the task definition the tasks in the service are using\\. For tasks that use the EC2 launch type, the container instance they're launched on must allow ingress traffic on the `hostPort` of the port mapping\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerPort", + "type": "number" + }, + "LoadBalancerName": { + "markdownDescription": "The name of the load balancer to associate with the Amazon ECS service or task set\\. \nA load balancer name is only specified when using a Classic Load Balancer\\. If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerName", + "type": "string" + }, + "TargetGroupArn": { + "markdownDescription": "The full Amazon Resource Name \\(ARN\\) of the Elastic Load Balancing target group or groups associated with a service or task set\\. \nA target group ARN is only specified when using an Application Load Balancer or Network Load Balancer\\. If you're using a Classic Load Balancer, omit the target group ARN\\. \nFor services using the `ECS` deployment controller, you can specify one or multiple target groups\\. For more information, see [Registering Multiple Target Groups with a Service](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nFor services using the `CODE_DEPLOY` deployment controller, you're required to define two target groups for the load balancer\\. For more information, see [Blue/Green Deployment with CodeDeploy](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nIf your service's task definition uses the `awsvpc` network mode, you must choose `ip` as the target type, not `instance`\\. Do this when creating your target groups because tasks that use the `awsvpc` network mode are associated with an elastic network interface, not an Amazon EC2 instance\\. This network mode is required for the Fargate launch type\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The VPC subnets and security groups that are associated with a task\\. \nAll specified subnets and security groups must be from the same VPC\\.\n*Required*: No \n*Type*: [AwsVpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-awsvpcconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsvpcConfiguration" + } + }, + "type": "object" + }, + "AWS::ECS::Service.PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "markdownDescription": "A cluster query language expression to apply to the constraint\\. The expression can have a maximum length of 2000 characters\\. You can't specify an expression if the constraint type is `distinctInstance`\\. For more information, see [Cluster query language](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Expression", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of constraint\\. Use `distinctInstance` to ensure that each task in a particular group is running on a different container instance\\. Use `memberOf` to restrict the selection to a group of valid candidates\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `distinctInstance | memberOf` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECS::Service.PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "markdownDescription": "The field to apply the placement strategy against\\. For the `spread` placement strategy, valid values are `instanceId` \\(or `host`, which has the same effect\\), or any platform or custom attribute that's applied to a container instance, such as `attribute:ecs.availability-zone`\\. For the `binpack` placement strategy, valid values are `cpu` and `memory`\\. For the `random` placement strategy, this field is not used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Field", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of placement strategy\\. The `random` placement strategy randomly places tasks on available candidates\\. The `spread` placement strategy spreads placement across available candidates evenly based on the `field` parameter\\. The `binpack` strategy places tasks on available candidates that have the least available amount of the resource that's specified with the `field` parameter\\. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory but still enough to run the task\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `binpack | random | spread` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The container name value to be used for your service discovery service\\. It's already specified in the task definition\\. If the task definition that your service task specifies uses the `bridge` or `host` network mode, you must specify a `containerName` and `containerPort` combination from the task definition\\. If the task definition that your service task specifies uses the `awsvpc` network mode and a type SRV DNS record is used, you must specify either a `containerName` and `containerPort` combination or a `port` value\\. However, you can't specify both\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerName", + "type": "string" + }, + "ContainerPort": { + "markdownDescription": "The port value to be used for your service discovery service\\. It's already specified in the task definition\\. If the task definition your service task specifies uses the `bridge` or `host` network mode, you must specify a `containerName` and `containerPort` combination from the task definition\\. If the task definition your service task specifies uses the `awsvpc` network mode and a type SRV DNS record is used, you must specify either a `containerName` and `containerPort` combination or a `port` value\\. However, you can't specify both\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerPort", + "type": "number" + }, + "Port": { + "markdownDescription": "The port value used if your service discovery service specified an SRV record\\. This field might be used if both the `awsvpc` network mode and SRV records are used\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + }, + "RegistryArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the service registry\\. The currently supported service registry is AWS Cloud Map\\. For more information, see [CreateService](https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "A list of container definitions in JSON format that describe the different containers that make up your task\\. For more information about container definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: List of [ContainerDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerDefinitions", + "type": "array" + }, + "Cpu": { + "markdownDescription": "The number of `cpu` units used by the task\\. If you use the EC2 launch type, this field is optional\\. Any value can be used\\. If you use the Fargate launch type, this field is required\\. You must use one of the following values\\. The value that you choose determines your range of valid values for the `memory` parameter\\. \nThe CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate\\. \n+ 256 \\(\\.25 vCPU\\) \\- Available `memory` values: 512 \\(0\\.5 GB\\), 1024 \\(1 GB\\), 2048 \\(2 GB\\)\n+ 512 \\(\\.5 vCPU\\) \\- Available `memory` values: 1024 \\(1 GB\\), 2048 \\(2 GB\\), 3072 \\(3 GB\\), 4096 \\(4 GB\\)\n+ 1024 \\(1 vCPU\\) \\- Available `memory` values: 2048 \\(2 GB\\), 3072 \\(3 GB\\), 4096 \\(4 GB\\), 5120 \\(5 GB\\), 6144 \\(6 GB\\), 7168 \\(7 GB\\), 8192 \\(8 GB\\)\n+ 2048 \\(2 vCPU\\) \\- Available `memory` values: Between 4096 \\(4 GB\\) and 16384 \\(16 GB\\) in increments of 1024 \\(1 GB\\)\n+ 4096 \\(4 vCPU\\) \\- Available `memory` values: Between 8192 \\(8 GB\\) and 30720 \\(30 GB\\) in increments of 1024 \\(1 GB\\)\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Cpu", + "type": "string" + }, + "EphemeralStorage": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.EphemeralStorage", + "markdownDescription": "The ephemeral storage settings to use for tasks run with the task definition\\. \n*Required*: No \n*Type*: [EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-ephemeralstorage.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EphemeralStorage" + }, + "ExecutionRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the task execution role that grants the Amazon ECS container agent permission to make AWS API calls on your behalf\\. The task execution IAM role is required depending on the requirements of your task\\. For more information, see [Amazon ECS task execution IAM role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExecutionRoleArn", + "type": "string" + }, + "Family": { + "markdownDescription": "The name of a family that this task definition is registered to\\. Up to 255 letters \\(uppercase and lowercase\\), numbers, hyphens, and underscores are allowed\\. \nA family groups multiple versions of a task definition\\. Amazon ECS gives the first task definition that you registered to a family a revision number of 1\\. Amazon ECS gives sequential revision numbers to each task definition that you add\\. \nTo use revision numbers when you update a task definition, specify this property\\. If you don't specify a value, AWS CloudFormation generates a new task definition each time that you update it\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Family", + "type": "string" + }, + "InferenceAccelerators": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.InferenceAccelerator" + }, + "markdownDescription": "The Elastic Inference accelerators to use for the containers in the task\\. \n*Required*: No \n*Type*: List of [InferenceAccelerator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-inferenceaccelerator.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InferenceAccelerators", + "type": "array" + }, + "IpcMode": { + "markdownDescription": "The IPC resource namespace to use for the containers in the task\\. The valid values are `host`, `task`, or `none`\\. If `host` is specified, then all containers within the tasks that specified the `host` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance\\. If `task` is specified, all containers within the specified task share the same IPC resources\\. If `none` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance\\. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance\\. For more information, see [IPC settings](https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*\\. \nIf the `host` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose\\. For more information, see [Docker security](https://docs.docker.com/engine/security/security/)\\. \nIf you are setting namespaced kernel parameters using `systemControls` for the containers in the task, the following will apply to your IPC resource namespace\\. For more information, see [System Controls](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n+ For tasks that use the `host` IPC mode, IPC namespace related `systemControls` are not supported\\.\n+ For tasks that use the `task` IPC mode, IPC namespace related `systemControls` will apply to all containers within a task\\.\nThis parameter is not supported for Windows containers or tasks run on AWS Fargate\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `host | none | task` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpcMode", + "type": "string" + }, + "Memory": { + "markdownDescription": "The amount \\(in MiB\\) of memory used by the task\\. \nIf your tasks runs on Amazon EC2 instances, you must specify either a task\\-level memory value or a container\\-level memory value\\. This field is optional and any value can be used\\. If a task\\-level memory value is specified, the container\\-level memory value is optional\\. For more information regarding container\\-level memory and memory reservation, see [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html)\\. \nIf your tasks runs on AWS Fargate, this field is required\\. You must use one of the following values\\. The value you choose determines your range of valid values for the `cpu` parameter\\. \n+ 512 \\(0\\.5 GB\\), 1024 \\(1 GB\\), 2048 \\(2 GB\\) \\- Available `cpu` values: 256 \\(\\.25 vCPU\\)\n+ 1024 \\(1 GB\\), 2048 \\(2 GB\\), 3072 \\(3 GB\\), 4096 \\(4 GB\\) \\- Available `cpu` values: 512 \\(\\.5 vCPU\\)\n+ 2048 \\(2 GB\\), 3072 \\(3 GB\\), 4096 \\(4 GB\\), 5120 \\(5 GB\\), 6144 \\(6 GB\\), 7168 \\(7 GB\\), 8192 \\(8 GB\\) \\- Available `cpu` values: 1024 \\(1 vCPU\\)\n+ Between 4096 \\(4 GB\\) and 16384 \\(16 GB\\) in increments of 1024 \\(1 GB\\) \\- Available `cpu` values: 2048 \\(2 vCPU\\)\n+ Between 8192 \\(8 GB\\) and 30720 \\(30 GB\\) in increments of 1024 \\(1 GB\\) \\- Available `cpu` values: 4096 \\(4 vCPU\\)\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Memory", + "type": "string" + }, + "NetworkMode": { + "markdownDescription": "The Docker networking mode to use for the containers in the task\\. The valid values are `none`, `bridge`, `awsvpc`, and `host`\\. The default Docker network mode is `bridge`\\. If you are using the Fargate launch type, the `awsvpc` network mode is required\\. If you are using the EC2 launch type, any network mode can be used\\. If the network mode is set to `none`, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity\\. The `host` and `awsvpc` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the `bridge` mode\\. \nWith the `host` and `awsvpc` network modes, exposed container ports are mapped directly to the corresponding host port \\(for the `host` network mode\\) or the attached elastic network interface port \\(for the `awsvpc` network mode\\), so you cannot take advantage of dynamic host port mappings\\. \nIf the network mode is `awsvpc`, the task is allocated an elastic network interface, and you must specify a [NetworkConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_NetworkConfiguration.html) value when you create a service or run a task with the task definition\\. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nCurrently, only Amazon ECS\\-optimized AMIs, other Amazon Linux variants with the `ecs-init` package, or AWS Fargate infrastructure support the `awsvpc` network mode\\. \nIf the network mode is `host`, you cannot run multiple instantiations of the same task on a single container instance when port mappings are used\\. \nDocker for Windows uses different network modes than Docker for Linux\\. When you register a task definition with Windows containers, you must not specify a network mode\\. If you use the console to register a task definition with Windows containers, you must choose the `` network mode object\\. \nFor more information, see [Network settings](https://docs.docker.com/engine/reference/run/#network-settings) in the *Docker run reference*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `awsvpc | bridge | host | none` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkMode", + "type": "string" + }, + "PidMode": { + "markdownDescription": "The process namespace to use for the containers in the task\\. The valid values are `host` or `task`\\. If `host` is specified, then all containers within the tasks that specified the `host` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance\\. If `task` is specified, all containers within the specified task share the same process namespace\\. If no value is specified, the default is a private namespace\\. For more information, see [PID settings](https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*\\. \nIf the `host` PID mode is used, be aware that there is a heightened risk of undesired process namespace expose\\. For more information, see [Docker security](https://docs.docker.com/engine/security/security/)\\. \nThis parameter is not supported for Windows containers or tasks run on AWS Fargate\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `host | task` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PidMode", + "type": "string" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint" + }, + "markdownDescription": "An array of placement constraint objects to use for tasks\\. \nThis parameter isn't supported for tasks run on AWS Fargate\\.\n*Required*: No \n*Type*: List of [TaskDefinitionPlacementConstraint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-taskdefinitionplacementconstraint.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlacementConstraints", + "type": "array" + }, + "ProxyConfiguration": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.ProxyConfiguration", + "markdownDescription": "The `ProxyConfiguration` property specifies the configuration details for the App Mesh proxy\\. \nYour Amazon ECS container instances require at least version 1\\.26\\.0 of the container agent and at least version 1\\.26\\.0\\-1 of the `ecs-init` package to enable a proxy configuration\\. If your container instances are launched from the Amazon ECS\\-optimized AMI version `20190301` or later, then they contain the required versions of the container agent and `ecs-init`\\. For more information, see [Amazon ECS\\-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: [ProxyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-proxyconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProxyConfiguration" + }, + "RequiresCompatibilities": { + "items": { + "type": "string" + }, + "markdownDescription": "The task launch types the task definition was validated against\\. To determine which task launch types the task definition is validated for, see the `TaskDefinition$compatibilities` parameter\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RequiresCompatibilities", + "type": "array" + }, + "RuntimePlatform": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.RuntimePlatform", + "markdownDescription": "The operating system that your tasks definitions run on\\. A platform family is specified only for tasks using the Fargate launch type\\. \nWhen you specify a task definition in a service, this value must match the `runtimePlatform` value of the service\\. \n*Required*: No \n*Type*: [RuntimePlatform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-runtimeplatform.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RuntimePlatform" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The metadata that you apply to the task definition to help you categorize and organize them\\. Each tag consists of a key and an optional value\\. You define both of them\\. \nThe following basic restrictions apply to tags: \n+ Maximum number of tags per resource \\- 50\n+ For each resource, each tag key must be unique, and each tag key can have only one value\\.\n+ Maximum key length \\- 128 Unicode characters in UTF\\-8\n+ Maximum value length \\- 256 Unicode characters in UTF\\-8\n+ If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters\\. Generally allowed characters are: letters, numbers, and spaces representable in UTF\\-8, and the following characters: \\+ \\- = \\. \\_ : / @\\.\n+ Tag keys and values are case\\-sensitive\\.\n+ Do not use `aws:`, `AWS:`, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use\\. You cannot edit or delete tag keys or values with this prefix\\. Tags with this prefix do not count against your tags per resource limit\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TaskRoleArn": { + "markdownDescription": "The short name or full Amazon Resource Name \\(ARN\\) of the AWS Identity and Access Management role that grants containers in the task permission to call AWS APIs on your behalf\\. For more information, see [Amazon ECS Task Role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nIAM roles for tasks on Windows require that the `-EnableTaskIAMRole` option is set when you launch the Amazon ECS\\-optimized Windows AMI\\. Your containers must also run some configuration code to use the feature\\. For more information, see [Windows IAM roles for tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TaskRoleArn", + "type": "string" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Volume" + }, + "markdownDescription": "The list of data volume definitions for the task\\. For more information, see [Using data volumes in tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nThe `host` and `sourcePath` parameters aren't supported for tasks run on AWS Fargate\\.\n*Required*: No \n*Type*: List of [Volume](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Volumes", + "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": { + "markdownDescription": "The Amazon EFS access point ID to use\\. If an access point is specified, the root directory value specified in the `EFSVolumeConfiguration` must either be omitted or set to `/` which will enforce the path set on the EFS access point\\. If an access point is used, transit encryption must be enabled in the `EFSVolumeConfiguration`\\. For more information, see [Working with Amazon EFS Access Points](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html) in the *Amazon Elastic File System User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccessPointId", + "type": "string" + }, + "IAM": { + "markdownDescription": "Determines whether to use the Amazon ECS task IAM role defined in a task definition when mounting the Amazon EFS file system\\. If enabled, transit encryption must be enabled in the `EFSVolumeConfiguration`\\. If this parameter is omitted, the default value of `DISABLED` is used\\. For more information, see [Using Amazon EFS Access Points](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html#efs-volume-accesspoints) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IAM", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.ContainerDefinition": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "markdownDescription": "The command that's passed to the container\\. This parameter maps to `Cmd` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `COMMAND` parameter to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. For more information, see [https://docs\\.docker\\.com/engine/reference/builder/\\#cmd](https://docs.docker.com/engine/reference/builder/#cmd)\\. If there are multiple arguments, each argument is a separated string in the array\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Command", + "type": "array" + }, + "Cpu": { + "markdownDescription": "The number of `cpu` units reserved for the container\\. This parameter maps to `CpuShares` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--cpu-shares` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThis field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task\\-level `cpu` value\\. \nYou can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](http://aws.amazon.com/ec2/instance-types/) detail page by 1,024\\.\nLinux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount\\. For example, if you run a single\\-container task on a single\\-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time\\. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed\\. Moreover, each container could float to higher CPU usage if the other container was not using it\\. If both tasks were 100% active all of the time, they would be limited to 512 CPU units\\. \nOn Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers\\. For more information, see [CPU share constraint](https://docs.docker.com/engine/reference/run/#cpu-share-constraint) in the Docker documentation\\. The minimum valid CPU share value that the Linux kernel allows is 2\\. However, the CPU parameter isn't required, and you can use CPU values below 2 in your container definitions\\. For CPU values below 2 \\(including null\\), the behavior varies based on your Amazon ECS container agent version: \n+ **Agent versions less than or equal to 1\\.1\\.0:** Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares\\. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares\\.\n+ **Agent versions greater than or equal to 1\\.2\\.0:** Null, zero, and CPU values of 1 are passed to Docker as 2\\.\nOn Windows container instances, the CPU limit is enforced as an absolute limit, or a quota\\. Windows containers only have access to the specified amount of CPU that's described in the task definition\\. A null or zero CPU value is passed to Docker as `0`, which Windows interprets as 1% of one CPU\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Cpu", + "type": "number" + }, + "DependsOn": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.ContainerDependency" + }, + "markdownDescription": "The dependencies defined for container startup and shutdown\\. A container can contain multiple dependencies\\. When a dependency is defined for container startup, for container shutdown it is reversed\\. \nFor tasks using the EC2 launch type, the container instances require at least version 1\\.26\\.0 of the container agent to turn on container dependencies\\. However, we recommend using the latest container agent version\\. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*\\. If you're using an Amazon ECS\\-optimized Linux AMI, your instance needs at least version 1\\.26\\.0\\-1 of the `ecs-init` package\\. If your container instances are launched from version `20190301` or later, then they contain the required versions of the container agent and `ecs-init`\\. For more information, see [Amazon ECS\\-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nFor tasks using the Fargate launch type, the task or service requires the following platforms: \n+ Linux platform version `1.3.0` or later\\.\n+ Windows platform version `1.0.0` or later\\.\n*Required*: No \n*Type*: List of [ContainerDependency](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdependency.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DependsOn", + "type": "array" + }, + "DisableNetworking": { + "markdownDescription": "When this parameter is true, networking is disabled within the container\\. This parameter maps to `NetworkDisabled` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/)\\. \nThis parameter is not supported for Windows containers\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DisableNetworking", + "type": "boolean" + }, + "DnsSearchDomains": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of DNS search domains that are presented to the container\\. This parameter maps to `DnsSearch` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--dns-search` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThis parameter is not supported for Windows containers\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DnsSearchDomains", + "type": "array" + }, + "DnsServers": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of DNS servers that are presented to the container\\. This parameter maps to `Dns` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--dns` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThis parameter is not supported for Windows containers\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DnsServers", + "type": "array" + }, + "DockerLabels": { + "additionalProperties": true, + "markdownDescription": "A key/value map of labels to add to the container\\. This parameter maps to `Labels` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--label` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. This parameter requires version 1\\.18 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version --format '{{.Server.APIVersion}}'` \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "DockerLabels", + "type": "object" + }, + "DockerSecurityOptions": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of strings to provide custom labels for SELinux and AppArmor multi\\-level security systems\\. This field isn't valid for containers in tasks using the Fargate launch type\\. \nWith Windows containers, this parameter can be used to reference a credential spec file when configuring a container for Active Directory authentication\\. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nThis parameter maps to `SecurityOpt` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--security-opt` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThe Amazon ECS container agent running on a container instance must register with the `ECS_SELINUX_CAPABLE=true` or `ECS_APPARMOR_CAPABLE=true` environment variables before containers placed on that instance can use these security options\\. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*\\.\nFor more information about valid values, see [Docker Run Security Configuration](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nValid values: \"no\\-new\\-privileges\" \\| \"apparmor:PROFILE\" \\| \"label:value\" \\| \"credentialspec:CredentialSpecFilePath\" \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DockerSecurityOptions", + "type": "array" + }, + "EntryPoint": { + "items": { + "type": "string" + }, + "markdownDescription": "Early versions of the Amazon ECS container agent don't properly handle `entryPoint` parameters\\. If you have problems using `entryPoint`, update your container agent or enter your commands and arguments as `command` array items instead\\.\nThe entry point that's passed to the container\\. This parameter maps to `Entrypoint` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--entrypoint` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. For more information, see [https://docs\\.docker\\.com/engine/reference/builder/\\#entrypoint](https://docs.docker.com/engine/reference/builder/#entrypoint)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EntryPoint", + "type": "array" + }, + "Environment": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.KeyValuePair" + }, + "markdownDescription": "The environment variables to pass to a container\\. This parameter maps to `Env` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--env` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nWe don't recommend that you use plaintext environment variables for sensitive information, such as credential data\\.\n*Required*: No \n*Type*: List of [KeyValuePair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-environment.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Environment", + "type": "array" + }, + "EnvironmentFiles": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.EnvironmentFile" + }, + "markdownDescription": "A list of files containing the environment variables to pass to a container\\. This parameter maps to the `--env-file` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nYou can specify up to ten environment files\\. The file must have a `.env` file extension\\. Each line in an environment file contains an environment variable in `VARIABLE=VALUE` format\\. Lines beginning with `#` are treated as comments and are ignored\\. For more information about the environment variable file syntax, see [Declare default environment variables in file](https://docs.docker.com/compose/env-file/)\\. \nIf there are environment variables specified using the `environment` parameter in a container definition, they take precedence over the variables contained within an environment file\\. If multiple environment files are specified that contain the same variable, they're processed from the top down\\. We recommend that you use unique variable names\\. For more information, see [Specifying Environment Variables](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: List of [EnvironmentFile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-environmentfile.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnvironmentFiles", + "type": "array" + }, + "Essential": { + "markdownDescription": "If the `essential` parameter of a container is marked as `true`, and that container fails or stops for any reason, all other containers that are part of the task are stopped\\. If the `essential` parameter of a container is marked as `false`, its failure doesn't affect the rest of the containers in a task\\. If this parameter is omitted, a container is assumed to be essential\\. \nAll tasks must have at least one essential container\\. If you have an application that's composed of multiple containers, group containers that are used for a common purpose into components, and separate the different components into multiple task definitions\\. For more information, see [Application Architecture](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Essential", + "type": "boolean" + }, + "ExtraHosts": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostEntry" + }, + "markdownDescription": "A list of hostnames and IP address mappings to append to the `/etc/hosts` file on the container\\. This parameter maps to `ExtraHosts` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--add-host` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThis parameter isn't supported for Windows containers or tasks that use the `awsvpc` network mode\\.\n*Required*: No \n*Type*: List of [HostEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-hostentry.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExtraHosts", + "type": "array" + }, + "FirelensConfiguration": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.FirelensConfiguration", + "markdownDescription": "The FireLens configuration for the container\\. This is used to specify and configure a log router for container logs\\. For more information, see [Custom Log Routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: [FirelensConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-firelensconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FirelensConfiguration" + }, + "HealthCheck": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.HealthCheck", + "markdownDescription": "The container health check command and associated configuration parameters for the container\\. This parameter maps to `HealthCheck` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `HEALTHCHECK` parameter of [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \n*Required*: No \n*Type*: [HealthCheck](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HealthCheck" + }, + "Hostname": { + "markdownDescription": "The hostname to use for your container\\. This parameter maps to `Hostname` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--hostname` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThe `hostname` parameter is not supported if you're using the `awsvpc` network mode\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Hostname", + "type": "string" + }, + "Image": { + "markdownDescription": "The image used to start a container\\. This string is passed directly to the Docker daemon\\. By default, images in the Docker Hub registry are available\\. Other repositories are specified with either ` repository-url/image:tag ` or ` repository-url/image@digest `\\. Up to 255 letters \\(uppercase and lowercase\\), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed\\. This parameter maps to `Image` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `IMAGE` parameter of [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \n+ When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use\\. However, subsequent updates to a repository image aren't propagated to already running tasks\\.\n+ Images in Amazon ECR repositories can be specified by either using the full `registry/repository:tag` or `registry/repository@digest`\\. For example, `012345678910.dkr.ecr..amazonaws.com/:latest` or `012345678910.dkr.ecr..amazonaws.com/@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE`\\. \n+ Images in official repositories on Docker Hub use a single name \\(for example, `ubuntu` or `mongo`\\)\\.\n+ Images in other repositories on Docker Hub are qualified with an organization name \\(for example, `amazon/amazon-ecs-agent`\\)\\.\n+ Images in other online repositories are qualified further by a domain name \\(for example, `quay.io/assemblyline/ubuntu`\\)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Image", + "type": "string" + }, + "Interactive": { + "markdownDescription": "When this parameter is `true`, you can deploy containerized applications that require `stdin` or a `tty` to be allocated\\. This parameter maps to `OpenStdin` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--interactive` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Interactive", + "type": "boolean" + }, + "Links": { + "items": { + "type": "string" + }, + "markdownDescription": "The `links` parameter allows containers to communicate with each other without the need for port mappings\\. This parameter is only supported if the network mode of a task definition is `bridge`\\. The `name:internalName` construct is analogous to `name:alias` in Docker links\\. Up to 255 letters \\(uppercase and lowercase\\), numbers, underscores, and hyphens are allowed\\. For more information about linking Docker containers, go to [Legacy container links](https://docs.docker.com/network/links/) in the Docker documentation\\. This parameter maps to `Links` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--link` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThis parameter is not supported for Windows containers\\.\nContainers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings\\. Network isolation is achieved on the container instance using security groups and VPC settings\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Links", + "type": "array" + }, + "LinuxParameters": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.LinuxParameters", + "markdownDescription": "Linux\\-specific modifications that are applied to the container, such as Linux kernel capabilities\\. For more information see [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html)\\. \nThis parameter is not supported for Windows containers\\.\n*Required*: No \n*Type*: [LinuxParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.LogConfiguration", + "markdownDescription": "The log configuration specification for the container\\. \nThis parameter maps to `LogConfig` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--log-driver` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. By default, containers use the same logging driver that the Docker daemon uses\\. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition\\. To use a different logging driver for a container, the log system must be configured properly on the container instance \\(or on a different log server for remote logging options\\)\\. For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.docker.com/engine/admin/logging/overview/) in the Docker documentation\\. \nAmazon ECS currently supports a subset of the logging drivers available to the Docker daemon \\(shown in the [LogConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html) data type\\)\\. Additional log drivers may be available in future releases of the Amazon ECS container agent\\.\nThis parameter requires version 1\\.18 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version --format '{{.Server.APIVersion}}'` \nThe Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the `ECS_AVAILABLE_LOGGING_DRIVERS` environment variable before containers placed on that instance can use these log configuration options\\. For more information, see [Amazon ECS Container Agent Configuration](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) in the *Amazon Elastic Container Service Developer Guide*\\.\n*Required*: No \n*Type*: [LogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-logconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogConfiguration" + }, + "Memory": { + "markdownDescription": "The amount \\(in MiB\\) of memory to present to the container\\. If your container attempts to exceed the memory specified here, the container is killed\\. The total amount of memory reserved for all containers within a task must be lower than the task `memory` value, if one is specified\\. This parameter maps to `Memory` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--memory` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nIf using the Fargate launch type, this parameter is optional\\. \nIf using the EC2 launch type, you must specify either a task\\-level memory value or a container\\-level memory value\\. If you specify both a container\\-level `memory` and `memoryReservation` value, `memory` must be greater than `memoryReservation`\\. If you specify `memoryReservation`, then that value is subtracted from the available memory resources for the container instance where the container is placed\\. Otherwise, the value of `memory` is used\\. \nThe Docker 20\\.10\\.0 or later daemon reserves a minimum of 6 MiB of memory for a container, so you should not specify fewer than 6 MiB of memory for your containers\\. \nThe Docker 19\\.03\\.13\\-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Memory", + "type": "number" + }, + "MemoryReservation": { + "markdownDescription": "The soft limit \\(in MiB\\) of memory to reserve for the container\\. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit\\. However, your container can consume more memory when it needs to, up to either the hard limit specified with the `memory` parameter \\(if applicable\\), or all of the available memory on the container instance, whichever comes first\\. This parameter maps to `MemoryReservation` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--memory-reservation` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nIf a task\\-level memory value is not specified, you must specify a non\\-zero integer for one or both of `memory` or `memoryReservation` in a container definition\\. If you specify both, `memory` must be greater than `memoryReservation`\\. If you specify `memoryReservation`, then that value is subtracted from the available memory resources for the container instance where the container is placed\\. Otherwise, the value of `memory` is used\\. \nFor example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a `memoryReservation` of 128 MiB, and a `memory` hard limit of 300 MiB\\. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed\\. \nThe Docker daemon reserves a minimum of 4 MiB of memory for a container\\. Therefore, we recommend that you specify fewer than 4 MiB of memory for your containers\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MemoryReservation", + "type": "number" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.MountPoint" + }, + "markdownDescription": "The mount points for data volumes in your container\\. \nThis parameter maps to `Volumes` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--volume` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nWindows containers can mount whole directories on the same drive as `$env:ProgramData`\\. Windows containers can't mount directories on a different drive, and mount point can't be across drives\\. \n*Required*: No \n*Type*: List of [MountPoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-mountpoints.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MountPoints", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of a container\\. If you're linking multiple containers together in a task definition, the `name` of one container can be entered in the `links` of another container to connect the containers\\. Up to 255 letters \\(uppercase and lowercase\\), numbers, underscores, and hyphens are allowed\\. This parameter maps to `name` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--name` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "PortMappings": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.PortMapping" + }, + "markdownDescription": "The list of port mappings for the container\\. Port mappings allow containers to access ports on the host container instance to send or receive traffic\\. \nFor task definitions that use the `awsvpc` network mode, you should only specify the `containerPort`\\. The `hostPort` can be left blank or it must be the same value as the `containerPort`\\. \nPort mappings on Windows use the `NetNAT` gateway address rather than `localhost`\\. There is no loopback for port mappings on Windows, so you cannot access a container's mapped port from the host itself\\. \nThis parameter maps to `PortBindings` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--publish` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. If the network mode of a task definition is set to `none`, then you can't specify port mappings\\. If the network mode of a task definition is set to `host`, then host ports must either be undefined or they must match the container port in the port mapping\\. \nAfter a task reaches the `RUNNING` status, manual and automatic host and container port assignments are visible in the **Network Bindings** section of a container description for a selected task in the Amazon ECS console\\. The assignments are also visible in the `networkBindings` section [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) responses\\.\n*Required*: No \n*Type*: List of [PortMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-portmappings.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortMappings", + "type": "array" + }, + "Privileged": { + "markdownDescription": "When this parameter is true, the container is given elevated privileges on the host container instance \\(similar to the `root` user\\)\\. This parameter maps to `Privileged` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--privileged` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThis parameter is not supported for Windows containers or tasks run on AWS Fargate\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Privileged", + "type": "boolean" + }, + "PseudoTerminal": { + "markdownDescription": "When this parameter is `true`, a TTY is allocated\\. This parameter maps to `Tty` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--tty` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PseudoTerminal", + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "markdownDescription": "When this parameter is true, the container is given read\\-only access to its root file system\\. This parameter maps to `ReadonlyRootfs` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--read-only` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nThis parameter is not supported for Windows containers\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReadonlyRootFilesystem", + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.RepositoryCredentials", + "markdownDescription": "The private repository authentication credentials to use\\. \n*Required*: No \n*Type*: [RepositoryCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-repositorycredentials.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RepositoryCredentials" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.ResourceRequirement" + }, + "markdownDescription": "The type and amount of a resource to assign to a container\\. The only supported resource is a GPU\\. \n*Required*: No \n*Type*: List of [ResourceRequirement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-resourcerequirement.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceRequirements", + "type": "array" + }, + "Secrets": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Secret" + }, + "markdownDescription": "The secrets to pass to the container\\. For more information, see [Specifying Sensitive Data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: List of [Secret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-secret.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Secrets", + "type": "array" + }, + "StartTimeout": { + "markdownDescription": "Time duration \\(in seconds\\) to wait before giving up on resolving dependencies for a container\\. For example, you specify two containers in a task definition with containerA having a dependency on containerB reaching a `COMPLETE`, `SUCCESS`, or `HEALTHY` status\\. If a `startTimeout` value is specified for containerB and it doesn't reach the desired status within that time then containerA gives up and not start\\. This results in the task transitioning to a `STOPPED` state\\. \nWhen the `ECS_CONTAINER_START_TIMEOUT` container agent configuration variable is used, it's enforced independently from this start timeout value\\.\nFor tasks using the Fargate launch type, the task or service requires the following platforms: \n+ Linux platform version `1.3.0` or later\\.\n+ Windows platform version `1.0.0` or later\\.\nFor tasks using the EC2 launch type, your container instances require at least version `1.26.0` of the container agent to use a container start timeout value\\. However, we recommend using the latest container agent version\\. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*\\. If you're using an Amazon ECS\\-optimized Linux AMI, your instance needs at least version `1.26.0-1` of the `ecs-init` package\\. If your container instances are launched from version `20190301` or later, then they contain the required versions of the container agent and `ecs-init`\\. For more information, see [Amazon ECS\\-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StartTimeout", + "type": "number" + }, + "StopTimeout": { + "markdownDescription": "Time duration \\(in seconds\\) to wait before the container is forcefully killed if it doesn't exit normally on its own\\. \nFor tasks using the Fargate launch type, the task or service requires the following platforms: \n+ Linux platform version `1.3.0` or later\\.\n+ Windows platform version `1.0.0` or later\\.\nThe max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used\\. \nFor tasks that use the EC2 launch type, if the `stopTimeout` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable `ECS_CONTAINER_STOP_TIMEOUT` is used\\. If neither the `stopTimeout` parameter or the `ECS_CONTAINER_STOP_TIMEOUT` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used\\. Your container instances require at least version 1\\.26\\.0 of the container agent to use a container stop timeout value\\. However, we recommend using the latest container agent version\\. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*\\. If you're using an Amazon ECS\\-optimized Linux AMI, your instance needs at least version 1\\.26\\.0\\-1 of the `ecs-init` package\\. If your container instances are launched from version `20190301` or later, then they contain the required versions of the container agent and `ecs-init`\\. For more information, see [Amazon ECS\\-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StopTimeout", + "type": "number" + }, + "SystemControls": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.SystemControl" + }, + "markdownDescription": "A list of namespaced kernel parameters to set in the container\\. This parameter maps to `Sysctls` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--sysctl` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nWe don't recommended that you specify network\\-related `systemControls` parameters for multiple containers in a single task that also uses either the `awsvpc` or `host` network modes\\. For tasks that use the `awsvpc` network mode, the container that's started last determines which `systemControls` parameters take effect\\. For tasks that use the `host` network mode, it changes the container instance's namespaced kernel parameters as well as the containers\\.\n*Required*: No \n*Type*: List of [SystemControl](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-systemcontrol.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SystemControls", + "type": "array" + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Ulimit" + }, + "markdownDescription": "A list of `ulimits` to set in the container\\. This parameter maps to `Ulimits` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--ulimit` option to [docker run](https://docs.docker.com/engine/reference/run/)\\. Valid naming values are displayed in the [Ulimit](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Ulimit.html) data type\\. This parameter requires version 1\\.18 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version --format '{{.Server.APIVersion}}'` \nThis parameter is not supported for Windows containers\\.\n*Required*: No \n*Type*: List of [Ulimit](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-ulimit.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ulimits", + "type": "array" + }, + "User": { + "markdownDescription": "The user to use inside the container\\. This parameter maps to `User` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--user` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nWhen running tasks using the `host` network mode, don't run containers using the root user \\(UID 0\\)\\. We recommend using a non\\-root user for better security\\.\nYou can specify the `user` using the following formats\\. If specifying a UID or GID, you must specify it as a positive integer\\. \n+ `user` \n+ `user:group` \n+ `uid` \n+ `uid:gid` \n+ `user:gid` \n+ `uid:group` \nThis parameter is not supported for Windows containers\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "User", + "type": "string" + }, + "VolumesFrom": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.VolumeFrom" + }, + "markdownDescription": "Data volumes to mount from another container\\. This parameter maps to `VolumesFrom` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--volumes-from` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \n*Required*: No \n*Type*: List of [VolumeFrom](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-volumesfrom.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumesFrom", + "type": "array" + }, + "WorkingDirectory": { + "markdownDescription": "The working directory to run commands inside the container in\\. This parameter maps to `WorkingDir` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--workdir` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WorkingDirectory", + "type": "string" + } + }, + "required": [ + "Image", + "Name" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.ContainerDependency": { + "additionalProperties": false, + "properties": { + "Condition": { + "markdownDescription": "The dependency condition of the container\\. The following are the available conditions and their behavior: \n+ `START` \\- This condition emulates the behavior of links and volumes today\\. It validates that a dependent container is started before permitting other containers to start\\.\n+ `COMPLETE` \\- This condition validates that a dependent container runs to completion \\(exits\\) before permitting other containers to start\\. This can be useful for nonessential containers that run a script and then exit\\. This condition can't be set on an essential container\\.\n+ `SUCCESS` \\- This condition is the same as `COMPLETE`, but it also requires that the container exits with a `zero` status\\. This condition can't be set on an essential container\\.\n+ `HEALTHY` \\- This condition validates that the dependent container passes its Docker health check before permitting other containers to start\\. This requires that the dependent container has health checks configured\\. This condition is confirmed only at task startup\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `COMPLETE | HEALTHY | START | SUCCESS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Condition", + "type": "string" + }, + "ContainerName": { + "markdownDescription": "The name of a container\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.Device": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "markdownDescription": "The path inside the container at which to expose the host device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerPath", + "type": "string" + }, + "HostPath": { + "markdownDescription": "The path for the device on the host container instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostPath", + "type": "string" + }, + "Permissions": { + "items": { + "type": "string" + }, + "markdownDescription": "The explicit permissions to provide to the container for the device\\. By default, the container has permissions for `read`, `write`, and `mknod` for the device\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Permissions", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.DockerVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Autoprovision": { + "markdownDescription": "If this value is `true`, the Docker volume is created if it doesn't already exist\\. \nThis field is only used if the `scope` is `shared`\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Autoprovision", + "type": "boolean" + }, + "Driver": { + "markdownDescription": "The Docker volume driver to use\\. The driver value must match the driver name provided by Docker because it is used for task placement\\. If the driver was installed using the Docker plugin CLI, use `docker plugin ls` to retrieve the driver name from your container instance\\. If the driver was installed using another method, use Docker plugin discovery to retrieve the driver name\\. For more information, see [Docker plugin discovery](https://docs.docker.com/engine/extend/plugin_api/#plugin-discovery)\\. This parameter maps to `Driver` in the [Create a volume](https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `xxdriver` option to [docker volume create](https://docs.docker.com/engine/reference/commandline/volume_create/)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Driver", + "type": "string" + }, + "DriverOpts": { + "additionalProperties": true, + "markdownDescription": "A map of Docker driver\\-specific options passed through\\. This parameter maps to `DriverOpts` in the [Create a volume](https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `xxopt` option to [docker volume create](https://docs.docker.com/engine/reference/commandline/volume_create/)\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "DriverOpts", + "type": "object" + }, + "Labels": { + "additionalProperties": true, + "markdownDescription": "Custom metadata to add to your Docker volume\\. This parameter maps to `Labels` in the [Create a volume](https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `xxlabel` option to [docker volume create](https://docs.docker.com/engine/reference/commandline/volume_create/)\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Labels", + "type": "object" + }, + "Scope": { + "markdownDescription": "The scope for the Docker volume that determines its lifecycle\\. Docker volumes that are scoped to a `task` are automatically provisioned when the task starts and destroyed when the task stops\\. Docker volumes that are scoped as `shared` persist after the task stops\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `shared | task` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Scope", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.EFSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "AuthorizationConfig": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.AuthorizationConfig", + "markdownDescription": "The authorization configuration details for the Amazon EFS file system\\. \n*Required*: No \n*Type*: [AuthorizationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-authorizationconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthorizationConfig" + }, + "FilesystemId": { + "markdownDescription": "The Amazon EFS file system ID to use\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FilesystemId", + "type": "string" + }, + "RootDirectory": { + "markdownDescription": "The directory within the Amazon EFS file system to mount as the root directory inside the host\\. If this parameter is omitted, the root of the Amazon EFS volume will be used\\. Specifying `/` will have the same effect as omitting this parameter\\. \nIf an EFS access point is specified in the `authorizationConfig`, the root directory parameter must either be omitted or set to `/` which will enforce the path set on the EFS access point\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RootDirectory", + "type": "string" + }, + "TransitEncryption": { + "markdownDescription": "Determines whether to use encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server\\. Transit encryption must be enabled if Amazon EFS IAM authorization is used\\. If this parameter is omitted, the default value of `DISABLED` is used\\. For more information, see [Encrypting Data in Transit](https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html) in the *Amazon Elastic File System User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitEncryption", + "type": "string" + }, + "TransitEncryptionPort": { + "markdownDescription": "The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server\\. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses\\. For more information, see [EFS Mount Helper](https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html) in the *Amazon Elastic File System User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitEncryptionPort", + "type": "number" + } + }, + "required": [ + "FilesystemId" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.EnvironmentFile": { + "additionalProperties": false, + "properties": { + "Type": { + "markdownDescription": "The file type to use\\. The only supported value is `s3`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `s3` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + }, + "Value": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon S3 object containing the environment variable file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.EphemeralStorage": { + "additionalProperties": false, + "properties": { + "SizeInGiB": { + "markdownDescription": "The total amount, in GiB, of ephemeral storage to set for the task\\. The minimum supported value is `21` GiB and the maximum supported value is `200` GiB\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SizeInGiB", + "type": "number" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.FirelensConfiguration": { + "additionalProperties": false, + "properties": { + "Options": { + "additionalProperties": true, + "markdownDescription": "The options to use when configuring the log router\\. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event\\. \n If specified, valid option keys are: \n+ `enable-ecs-log-metadata`, which can be `true` or `false`\n+ `config-file-type`, which can be `s3` or `file`\n+ `config-file-value`, which is either an S3 ARN or a file path\n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Options", + "type": "object" + }, + "Type": { + "markdownDescription": "The log router to use\\. The valid values are `fluentd` or `fluentbit`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `fluentbit | fluentd` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.HealthCheck": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "markdownDescription": "A string array representing the command that the container runs to determine if it is healthy\\. The string array must start with `CMD` to execute the command arguments directly, or `CMD-SHELL` to run the command with the container's default shell\\. \n When you use the AWS Management Console JSON panel, the AWS Command Line Interface, or the APIs, enclose the list of commands in brackets\\. \n `[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]` \nYou don't need to include the brackets when you use the AWS Management Console\\. \n ` \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ` \nAn exit code of 0 indicates success, and non\\-zero exit code indicates failure\\. For more information, see `HealthCheck` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Command", + "type": "array" + }, + "Interval": { + "markdownDescription": "The time period in seconds between each health check execution\\. You may specify between 5 and 300 seconds\\. The default value is 30 seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Interval", + "type": "number" + }, + "Retries": { + "markdownDescription": "The number of times to retry a failed health check before the container is considered unhealthy\\. You may specify between 1 and 10 retries\\. The default value is 3\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Retries", + "type": "number" + }, + "StartPeriod": { + "markdownDescription": "The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries\\. You can specify between 0 and 300 seconds\\. By default, the `startPeriod` is disabled\\. \nIf a health check succeeds within the `startPeriod`, then the container is considered healthy and any subsequent failures count toward the maximum number of retries\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StartPeriod", + "type": "number" + }, + "Timeout": { + "markdownDescription": "The time period in seconds to wait for a health check to succeed before it is considered a failure\\. You may specify between 2 and 60 seconds\\. The default value is 5\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Timeout", + "type": "number" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.HostEntry": { + "additionalProperties": false, + "properties": { + "Hostname": { + "markdownDescription": "The hostname to use in the `/etc/hosts` entry\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Hostname", + "type": "string" + }, + "IpAddress": { + "markdownDescription": "The IP address to use in the `/etc/hosts` entry\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpAddress", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.HostVolumeProperties": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "markdownDescription": "When the `host` parameter is used, specify a `sourcePath` to declare the path on the host container instance that's presented to the container\\. If this parameter is empty, then the Docker daemon has assigned a host path for you\\. If the `host` parameter contains a `sourcePath` file location, then the data volume persists at the specified location on the host container instance until you delete it manually\\. If the `sourcePath` value doesn't exist on the host container instance, the Docker daemon creates it\\. If the location does exist, the contents of the source path folder are exported\\. \nIf you're using the Fargate launch type, the `sourcePath` parameter is not supported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourcePath", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.InferenceAccelerator": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "markdownDescription": "The Elastic Inference accelerator device name\\. The `deviceName` must also be referenced in a container definition as a [ResourceRequirement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-resourcerequirement.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceName", + "type": "string" + }, + "DeviceType": { + "markdownDescription": "The Elastic Inference accelerator type to use\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.KernelCapabilities": { + "additionalProperties": false, + "properties": { + "Add": { + "items": { + "type": "string" + }, + "markdownDescription": "The Linux capabilities for the container that have been added to the default configuration provided by Docker\\. This parameter maps to `CapAdd` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--cap-add` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nTasks launched on AWS Fargate only support adding the `SYS_PTRACE` kernel capability\\.\nValid values: `\"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" | \"WAKE_ALARM\"` \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Add", + "type": "array" + }, + "Drop": { + "items": { + "type": "string" + }, + "markdownDescription": "The Linux capabilities for the container that have been removed from the default configuration provided by Docker\\. This parameter maps to `CapDrop` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--cap-drop` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nValid values: `\"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" | \"WAKE_ALARM\"` \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Drop", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.KeyValuePair": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the key\\-value pair\\. For environment variables, this is the name of the environment variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of the key\\-value pair\\. For environment variables, this is the value of the environment variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.LinuxParameters": { + "additionalProperties": false, + "properties": { + "Capabilities": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.KernelCapabilities", + "markdownDescription": "The Linux capabilities for the container that are added to or dropped from the default configuration provided by Docker\\. \nFor tasks that use the Fargate launch type, `capabilities` is supported for all platform versions but the `add` parameter is only supported if using platform version 1\\.4\\.0 or later\\.\n*Required*: No \n*Type*: [KernelCapabilities](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-kernelcapabilities.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Capabilities" + }, + "Devices": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Device" + }, + "markdownDescription": "Any host devices to expose to the container\\. This parameter maps to `Devices` in the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.35/) and the `--device` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nIf you're using tasks that use the Fargate launch type, the `devices` parameter isn't supported\\.\n*Required*: No \n*Type*: List of [Device](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-device.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Devices", + "type": "array" + }, + "InitProcessEnabled": { + "markdownDescription": "Run an `init` process inside the container that forwards signals and reaps processes\\. This parameter maps to the `--init` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. This parameter requires version 1\\.25 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version --format '{{.Server.APIVersion}}'` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitProcessEnabled", + "type": "boolean" + }, + "MaxSwap": { + "markdownDescription": "The total amount of swap memory \\(in MiB\\) a container can use\\. This parameter will be translated to the `--memory-swap` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration) where the value would be the sum of the container memory plus the `maxSwap` value\\. \nIf a `maxSwap` value of `0` is specified, the container will not use swap\\. Accepted values are `0` or any positive integer\\. If the `maxSwap` parameter is omitted, the container will use the swap configuration for the container instance it is running on\\. A `maxSwap` value must be set for the `swappiness` parameter to be used\\. \nIf you're using tasks that use the Fargate launch type, the `maxSwap` parameter isn't supported\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaxSwap", + "type": "number" + }, + "SharedMemorySize": { + "markdownDescription": "The value for the size \\(in MiB\\) of the `/dev/shm` volume\\. This parameter maps to the `--shm-size` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nIf you are using tasks that use the Fargate launch type, the `sharedMemorySize` parameter is not supported\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SharedMemorySize", + "type": "number" + }, + "Swappiness": { + "markdownDescription": "This allows you to tune a container's memory swappiness behavior\\. A `swappiness` value of `0` will cause swapping to not happen unless absolutely necessary\\. A `swappiness` value of `100` will cause pages to be swapped very aggressively\\. Accepted values are whole numbers between `0` and `100`\\. If the `swappiness` parameter is not specified, a default value of `60` is used\\. If a value is not specified for `maxSwap` then this parameter is ignored\\. This parameter maps to the `--memory-swappiness` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nIf you're using tasks that use the Fargate launch type, the `swappiness` parameter isn't supported\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Swappiness", + "type": "number" + }, + "Tmpfs": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Tmpfs" + }, + "markdownDescription": "The container path, mount options, and size \\(in MiB\\) of the tmpfs mount\\. This parameter maps to the `--tmpfs` option to [docker run](https://docs.docker.com/engine/reference/run/#security-configuration)\\. \nIf you're using tasks that use the Fargate launch type, the `tmpfs` parameter isn't supported\\.\n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-tmpfs.html) of [Tmpfs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-tmpfs.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tmpfs", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "markdownDescription": "The log driver to use for the container\\. \nFor tasks on AWS Fargate, the supported log drivers are `awslogs`, `splunk`, and `awsfirelens`\\. \nFor tasks hosted on Amazon EC2 instances, the supported log drivers are `awslogs`, `fluentd`, `gelf`, `json-file`, `journald`, `logentries`,`syslog`, `splunk`, and `awsfirelens`\\. \nFor more information about using the `awslogs` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nFor more information about using the `awsfirelens` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nIf you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://github.com/aws/amazon-ecs-agent) and customize it to work with that driver\\. We encourage you to submit pull requests for changes that you would like to have included\\. However, we don't currently provide support for running modified copies of this software\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `awsfirelens | awslogs | fluentd | gelf | journald | json-file | splunk | syslog` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogDriver", + "type": "string" + }, + "Options": { + "additionalProperties": true, + "markdownDescription": "The configuration options to send to the log driver\\. This parameter requires version 1\\.19 of the Docker Remote API or greater on your container instance\\. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: `sudo docker version --format '{{.Server.APIVersion}}'` \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Options", + "type": "object" + }, + "SecretOptions": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Secret" + }, + "markdownDescription": "The secrets to pass to the log configuration\\. For more information, see [Specifying Sensitive Data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: List of [Secret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-secret.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecretOptions", + "type": "array" + } + }, + "required": [ + "LogDriver" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.MountPoint": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "markdownDescription": "The path on the container to mount the host volume at\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerPath", + "type": "string" + }, + "ReadOnly": { + "markdownDescription": "If this value is `true`, the container has read\\-only access to the volume\\. If this value is `false`, then the container can write to the volume\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReadOnly", + "type": "boolean" + }, + "SourceVolume": { + "markdownDescription": "The name of the volume to mount\\. Must be a volume name referenced in the `name` parameter of task definition `volume`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceVolume", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.PortMapping": { + "additionalProperties": false, + "properties": { + "AppProtocol": { + "type": "string" + }, + "ContainerPort": { + "markdownDescription": "The port number on the container that's bound to the user\\-specified or automatically assigned host port\\. \nIf you use containers in a task with the `awsvpc` or `host` network mode, specify the exposed ports using `containerPort`\\. \nIf you use containers in a task with the `bridge` network mode and you specify a container port and not a host port, your container automatically receives a host port in the ephemeral port range\\. For more information, see `hostPort`\\. Port mappings that are automatically assigned in this way do not count toward the 100 reserved ports limit of a container instance\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerPort", + "type": "number" + }, + "ContainerPortRange": { + "type": "string" + }, + "HostPort": { + "markdownDescription": "The port number on the container instance to reserve for your container\\. \nIf you are using containers in a task with the `awsvpc` or `host` network mode, the `hostPort` can either be left blank or set to the same value as the `containerPort`\\. \nIf you are using containers in a task with the `bridge` network mode, you can specify a non\\-reserved host port for your container port mapping, or you can omit the `hostPort` \\(or set it to `0`\\) while specifying a `containerPort` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version\\. \nThe default ephemeral port range for Docker version 1\\.6\\.0 and later is listed on the instance under `/proc/sys/net/ipv4/ip_local_port_range`\\. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 is used\\. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment\\. In general, ports below 32768 are outside of the ephemeral port range\\. \nThe default ephemeral port range from 49153 through 65535 is always used for Docker versions before 1\\.6\\.0\\.\nThe default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678\\-51680\\. Any host port that was previously specified in a running task is also reserved while the task is running \\(after a task stops, the host port is released\\)\\. The current reserved ports are displayed in the `remainingResources` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output\\. A container instance can have up to 100 reserved ports at a time, including the default reserved ports\\. Automatically assigned ports don't count toward the 100 reserved ports limit\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostPort", + "type": "number" + }, + "Name": { + "type": "string" + }, + "Protocol": { + "markdownDescription": "The protocol used for the port mapping\\. Valid values are `tcp` and `udp`\\. The default is `tcp`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `tcp | udp` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Protocol", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.ProxyConfiguration": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "markdownDescription": "The name of the container that will serve as the App Mesh proxy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerName", + "type": "string" + }, + "ProxyConfigurationProperties": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.KeyValuePair" + }, + "markdownDescription": "The set of network configuration parameters to provide the Container Network Interface \\(CNI\\) plugin, specified as key\\-value pairs\\. \n+ `IgnoredUID` \\- \\(Required\\) The user ID \\(UID\\) of the proxy container as defined by the `user` parameter in a container definition\\. This is used to ensure the proxy ignores its own traffic\\. If `IgnoredGID` is specified, this field can be empty\\.\n+ `IgnoredGID` \\- \\(Required\\) The group ID \\(GID\\) of the proxy container as defined by the `user` parameter in a container definition\\. This is used to ensure the proxy ignores its own traffic\\. If `IgnoredUID` is specified, this field can be empty\\.\n+ `AppPorts` \\- \\(Required\\) The list of ports that the application uses\\. Network traffic to these ports is forwarded to the `ProxyIngressPort` and `ProxyEgressPort`\\.\n+ `ProxyIngressPort` \\- \\(Required\\) Specifies the port that incoming traffic to the `AppPorts` is directed to\\.\n+ `ProxyEgressPort` \\- \\(Required\\) Specifies the port that outgoing traffic from the `AppPorts` is directed to\\.\n+ `EgressIgnoredPorts` \\- \\(Required\\) The egress traffic going to the specified ports is ignored and not redirected to the `ProxyEgressPort`\\. It can be an empty list\\.\n+ `EgressIgnoredIPs` \\- \\(Required\\) The egress traffic going to the specified IP addresses is ignored and not redirected to the `ProxyEgressPort`\\. It can be an empty list\\.\n*Required*: No \n*Type*: List of [KeyValuePair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-environment.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProxyConfigurationProperties", + "type": "array" + }, + "Type": { + "markdownDescription": "The proxy type\\. The only supported value is `APPMESH`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `APPMESH` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "ContainerName" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.RepositoryCredentials": { + "additionalProperties": false, + "properties": { + "CredentialsParameter": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the secret containing the private repository credentials\\. \nWhen you use the Amazon ECS API, AWS CLI, or AWS SDK, if the secret exists in the same Region as the task that you're launching then you can use either the full ARN or the name of the secret\\. When you use the AWS Management Console, you must specify the full ARN of the secret\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CredentialsParameter", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.ResourceRequirement": { + "additionalProperties": false, + "properties": { + "Type": { + "markdownDescription": "The type of resource to assign to a container\\. The supported values are `GPU` or `InferenceAccelerator`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GPU | InferenceAccelerator` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + }, + "Value": { + "markdownDescription": "The value for the specified resource type\\. \nIf the `GPU` type is used, the value is the number of physical `GPUs` the Amazon ECS container agent will reserve for the container\\. The number of GPUs reserved for all containers in a task should not exceed the number of available GPUs on the container instance the task is launched on\\. \nIf the `InferenceAccelerator` type is used, the `value` should match the `DeviceName` for an [InferenceAccelerator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-inferenceaccelerator.html) specified in a task definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.RuntimePlatform": { + "additionalProperties": false, + "properties": { + "CpuArchitecture": { + "markdownDescription": "The CPU architecture\\. \nYou can run your Linux tasks on an ARM\\-based platform by setting the value to `ARM64`\\. This option is avaiable for tasks that run on Linuc Amazon EC2 instance or Linux containers on Fargate\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ARM64 | X86_64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CpuArchitecture", + "type": "string" + }, + "OperatingSystemFamily": { + "markdownDescription": "The operating system\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `LINUX | WINDOWS_SERVER_2004_CORE | WINDOWS_SERVER_2016_FULL | WINDOWS_SERVER_2019_CORE | WINDOWS_SERVER_2019_FULL | WINDOWS_SERVER_2022_CORE | WINDOWS_SERVER_2022_FULL | WINDOWS_SERVER_20H2_CORE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OperatingSystemFamily", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the secret\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "ValueFrom": { + "markdownDescription": "The secret to expose to the container\\. The supported values are either the full ARN of the AWS Secrets Manager secret or the full ARN of the parameter in the SSM Parameter Store\\. \nFor information about the require AWS Identity and Access Management permissions, see [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html#secrets-iam) \\(for Secrets Manager\\) or [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-parameters.html) \\(for Systems Manager Parameter store\\) in the *Amazon Elastic Container Service Developer Guide*\\. \nIf the SSM Parameter Store parameter exists in the same Region as the task you're launching, then you can use either the full ARN or name of the parameter\\. If the parameter exists in a different Region, then the full ARN must be specified\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ValueFrom", + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.SystemControl": { + "additionalProperties": false, + "properties": { + "Namespace": { + "markdownDescription": "The namespaced kernel parameter to set a `value` for\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Namespace", + "type": "string" + }, + "Value": { + "markdownDescription": "The value for the namespaced kernel parameter that's specified in `namespace`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "markdownDescription": "A cluster query language expression to apply to the constraint\\. For more information, see [Cluster query language](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Expression", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of constraint\\. The `MemberOf` constraint restricts selection to be from a group of valid candidates\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `memberOf` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.Tmpfs": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "markdownDescription": "The absolute file path where the tmpfs volume is to be mounted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerPath", + "type": "string" + }, + "MountOptions": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of tmpfs volume mount options\\. \nValid values: `\"defaults\" | \"ro\" | \"rw\" | \"suid\" | \"nosuid\" | \"dev\" | \"nodev\" | \"exec\" | \"noexec\" | \"sync\" | \"async\" | \"dirsync\" | \"remount\" | \"mand\" | \"nomand\" | \"atime\" | \"noatime\" | \"diratime\" | \"nodiratime\" | \"bind\" | \"rbind\" | \"unbindable\" | \"runbindable\" | \"private\" | \"rprivate\" | \"shared\" | \"rshared\" | \"slave\" | \"rslave\" | \"relatime\" | \"norelatime\" | \"strictatime\" | \"nostrictatime\" | \"mode\" | \"uid\" | \"gid\" | \"nr_inodes\" | \"nr_blocks\" | \"mpol\"` \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MountOptions", + "type": "array" + }, + "Size": { + "markdownDescription": "The maximum size \\(in MiB\\) of the tmpfs volume\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Size", + "type": "number" + } + }, + "required": [ + "Size" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "markdownDescription": "The hard limit for the ulimit type\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HardLimit", + "type": "number" + }, + "Name": { + "markdownDescription": "The `type` of the `ulimit`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `core | cpu | data | fsize | locks | memlock | msgqueue | nice | nofile | nproc | rss | rtprio | rttime | sigpending | stack` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "SoftLimit": { + "markdownDescription": "The soft limit for the ulimit type\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SoftLimit", + "type": "number" + } + }, + "required": [ + "HardLimit", + "Name", + "SoftLimit" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.Volume": { + "additionalProperties": false, + "properties": { + "DockerVolumeConfiguration": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.DockerVolumeConfiguration", + "markdownDescription": "This parameter is specified when you use Docker volumes\\. \nWindows containers only support the use of the `local` driver\\. To use bind mounts, specify the `host` parameter instead\\. \nDocker volumes aren't supported by tasks run on AWS Fargate\\.\n*Required*: No \n*Type*: [DockerVolumeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DockerVolumeConfiguration" + }, + "EFSVolumeConfiguration": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.EFSVolumeConfiguration", + "markdownDescription": "This parameter is specified when you use an Amazon Elastic File System file system for task storage\\. \n*Required*: No \n*Type*: [EFSVolumeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-efsvolumeconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EFSVolumeConfiguration" + }, + "Host": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostVolumeProperties", + "markdownDescription": "This parameter is specified when you use bind mount host volumes\\. The contents of the `host` parameter determine whether your bind mount host volume persists on the host container instance and where it's stored\\. If the `host` parameter is empty, then the Docker daemon assigns a host path for your data volume\\. However, the data isn't guaranteed to persist after the containers that are associated with it stop running\\. \nWindows containers can mount whole directories on the same drive as `$env:ProgramData`\\. Windows containers can't mount directories on a different drive, and mount point can't be across drives\\. For example, you can mount `C:\\my\\path:C:\\my\\path` and `D:\\:D:\\`, but not `D:\\my\\path:C:\\my\\path` or `D:\\:C:\\my\\path`\\. \n*Required*: No \n*Type*: [HostVolumeProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes-host.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Host" + }, + "Name": { + "markdownDescription": "The name of the volume\\. Up to 255 letters \\(uppercase and lowercase\\), numbers, underscores, and hyphens are allowed\\. This name is referenced in the `sourceVolume` parameter of container definition `mountPoints`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.VolumeFrom": { + "additionalProperties": false, + "properties": { + "ReadOnly": { + "markdownDescription": "If this value is `true`, the container has read\\-only access to the volume\\. If this value is `false`, then the container can write to the volume\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReadOnly", + "type": "boolean" + }, + "SourceContainer": { + "markdownDescription": "The name of another container within the same task definition to mount volumes from\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The short name or full Amazon Resource Name \\(ARN\\) of the cluster that hosts the service to create the task set in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Cluster", + "type": "string" + }, + "ExternalId": { + "markdownDescription": "An optional non\\-unique tag that identifies this task set in external systems\\. If the task set is associated with a service discovery registry, the tasks in this task set will have the `ECS_TASK_SET_EXTERNAL_ID` AWS Cloud Map attribute set to the provided value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExternalId", + "type": "string" + }, + "LaunchType": { + "markdownDescription": "The launch type that new tasks in the task set uses\\. For more information, see [Amazon ECS Launch Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nIf a `launchType` is specified, the `capacityProviderStrategy` parameter must be omitted\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `EC2 | EXTERNAL | FARGATE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchType", + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskSet.LoadBalancer" + }, + "markdownDescription": "A load balancer object representing the load balancer to use with the task set\\. The supported load balancer types are either an Application Load Balancer or a Network Load Balancer\\. \n*Required*: No \n*Type*: List of [LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-loadbalancer.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoadBalancers", + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::ECS::TaskSet.NetworkConfiguration", + "markdownDescription": "The network configuration for the task set\\. \n*Required*: No \n*Type*: [NetworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-networkconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkConfiguration" + }, + "PlatformVersion": { + "markdownDescription": "The platform version that the tasks in the task set uses\\. A platform version is specified only for tasks using the Fargate launch type\\. If one isn't specified, the `LATEST` platform version is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlatformVersion", + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/AWS::ECS::TaskSet.Scale", + "markdownDescription": "A floating\\-point percentage of your desired number of tasks to place and keep running in the task set\\. \n*Required*: No \n*Type*: [Scale](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-scale.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scale" + }, + "Service": { + "markdownDescription": "The short name or full Amazon Resource Name \\(ARN\\) of the service to create the task set in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Service", + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskSet.ServiceRegistry" + }, + "markdownDescription": "The details of the service discovery registries to assign to this task set\\. For more information, see [Service Discovery](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html)\\. \n*Required*: No \n*Type*: List of [ServiceRegistry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-serviceregistry.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceRegistries", + "type": "array" + }, + "TaskDefinition": { + "markdownDescription": "The task definition for the tasks in the task set to use\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Whether the task's elastic network interface receives a public IP address\\. The default value is `DISABLED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AssignPublicIp", + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of the security groups associated with the task or service\\. If you don't specify a security group, the default security group for the VPC is used\\. There's a limit of 5 security groups that can be specified per `AwsVpcConfiguration`\\. \nAll specified security groups must be from the same VPC\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroups", + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of the subnets associated with the task or service\\. There's a limit of 16 subnets that can be specified per `AwsVpcConfiguration`\\. \nAll specified subnets must be from the same VPC\\.\n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subnets", + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "AWS::ECS::TaskSet.LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "markdownDescription": "The name of the container \\(as it appears in a container definition\\) to associate with the load balancer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerName", + "type": "string" + }, + "ContainerPort": { + "markdownDescription": "The port on the container to associate with the load balancer\\. This port must correspond to a `containerPort` in the task definition the tasks in the service are using\\. For tasks that use the EC2 launch type, the container instance they're launched on must allow ingress traffic on the `hostPort` of the port mapping\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerPort", + "type": "number" + }, + "LoadBalancerName": { + "markdownDescription": "The name of the load balancer to associate with the Amazon ECS service or task set\\. \nA load balancer name is only specified when using a Classic Load Balancer\\. If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoadBalancerName", + "type": "string" + }, + "TargetGroupArn": { + "markdownDescription": "The full Amazon Resource Name \\(ARN\\) of the Elastic Load Balancing target group or groups associated with a service or task set\\. \nA target group ARN is only specified when using an Application Load Balancer or Network Load Balancer\\. If you're using a Classic Load Balancer, omit the target group ARN\\. \nFor services using the `ECS` deployment controller, you can specify one or multiple target groups\\. For more information, see [Registering Multiple Target Groups with a Service](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nFor services using the `CODE_DEPLOY` deployment controller, you're required to define two target groups for the load balancer\\. For more information, see [Blue/Green Deployment with CodeDeploy](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html) in the *Amazon Elastic Container Service Developer Guide*\\. \nIf your service's task definition uses the `awsvpc` network mode, you must choose `ip` as the target type, not `instance`\\. Do this when creating your target groups because tasks that use the `awsvpc` network mode are associated with an elastic network interface, not an Amazon EC2 instance\\. This network mode is required for the Fargate launch type\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetGroupArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskSet.NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AWS::ECS::TaskSet.AwsVpcConfiguration", + "markdownDescription": "The VPC subnets and security groups that are associated with a task\\. \nAll specified subnets and security groups must be from the same VPC\\.\n*Required*: No \n*Type*: [AwsVpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-awsvpcconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AwsVpcConfiguration" + } + }, + "type": "object" + }, + "AWS::ECS::TaskSet.Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "markdownDescription": "The unit of measure for the scale value\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PERCENT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", + "type": "string" + }, + "Value": { + "markdownDescription": "The value, specified as a percent total of a service's `desiredCount`, to scale the task set\\. Accepted values are numbers between 0 and 100\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "number" + } + }, + "type": "object" + }, + "AWS::ECS::TaskSet.ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "markdownDescription": "The container name value to be used for your service discovery service\\. It's already specified in the task definition\\. If the task definition that your service task specifies uses the `bridge` or `host` network mode, you must specify a `containerName` and `containerPort` combination from the task definition\\. If the task definition that your service task specifies uses the `awsvpc` network mode and a type SRV DNS record is used, you must specify either a `containerName` and `containerPort` combination or a `port` value\\. However, you can't specify both\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerName", + "type": "string" + }, + "ContainerPort": { + "markdownDescription": "The port value to be used for your service discovery service\\. It's already specified in the task definition\\. If the task definition your service task specifies uses the `bridge` or `host` network mode, you must specify a `containerName` and `containerPort` combination from the task definition\\. If the task definition your service task specifies uses the `awsvpc` network mode and a type SRV DNS record is used, you must specify either a `containerName` and `containerPort` combination or a `port` value\\. However, you can't specify both\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerPort", + "type": "number" + }, + "Port": { + "markdownDescription": "The port value used if your service discovery service specified an SRV record\\. This field might be used if both the `awsvpc` network mode and SRV records are used\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Port", + "type": "number" + }, + "RegistryArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the service registry\\. The currently supported service registry is AWS Cloud Map\\. For more information, see [CreateService](https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [AccessPointTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-accesspointtag.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessPointTags", + "type": "array" + }, + "ClientToken": { + "markdownDescription": "The opaque string specified in the request to ensure idempotent creation\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientToken", + "type": "string" + }, + "FileSystemId": { + "markdownDescription": "The ID of the EFS file system that the access point applies to\\. Accepts only the ID format for input when specifying a file system, for example `fs-0123456789abcedf2`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:file-system/fs-[0-9a-f]{8,40}|fs-[0-9a-f]{8,40})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FileSystemId", + "type": "string" + }, + "PosixUser": { + "$ref": "#/definitions/AWS::EFS::AccessPoint.PosixUser", + "markdownDescription": "The full POSIX identity, including the user ID, group ID, and secondary group IDs on the access point that is used for all file operations by NFS clients using the access point\\. \n*Required*: No \n*Type*: [PosixUser](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-posixuser.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PosixUser" + }, + "RootDirectory": { + "$ref": "#/definitions/AWS::EFS::AccessPoint.RootDirectory", + "markdownDescription": "The directory on the Amazon EFS file system that the access point exposes as the root directory to NFS clients using the access point\\. \n*Required*: No \n*Type*: [RootDirectory](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-rootdirectory.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The tag key \\(String\\)\\. The key can't start with `aws:`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^(?![aA]{1}[wW]{1}[sS]{1}:)([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]+)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of the tag key\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EFS::AccessPoint.CreationInfo": { + "additionalProperties": false, + "properties": { + "OwnerGid": { + "markdownDescription": "Specifies the POSIX group ID to apply to the `RootDirectory`\\. Accepts values from 0 to 2^32 \\(4294967295\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OwnerGid", + "type": "string" + }, + "OwnerUid": { + "markdownDescription": "Specifies the POSIX user ID to apply to the `RootDirectory`\\. Accepts values from 0 to 2^32 \\(4294967295\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OwnerUid", + "type": "string" + }, + "Permissions": { + "markdownDescription": "Specifies the POSIX permissions to apply to the `RootDirectory`, in the format of an octal number representing the file's mode bits\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `4` \n*Pattern*: `^[0-7]{3,4}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Permissions", + "type": "string" + } + }, + "required": [ + "OwnerGid", + "OwnerUid", + "Permissions" + ], + "type": "object" + }, + "AWS::EFS::AccessPoint.PosixUser": { + "additionalProperties": false, + "properties": { + "Gid": { + "markdownDescription": "The POSIX group ID used for all file system operations using this access point\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Gid", + "type": "string" + }, + "SecondaryGids": { + "items": { + "type": "string" + }, + "markdownDescription": "Secondary POSIX group IDs used for all file system operations using this access point\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `16` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecondaryGids", + "type": "array" + }, + "Uid": { + "markdownDescription": "The POSIX user ID used for all file system operations using this access point\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Uid", + "type": "string" + } + }, + "required": [ + "Gid", + "Uid" + ], + "type": "object" + }, + "AWS::EFS::AccessPoint.RootDirectory": { + "additionalProperties": false, + "properties": { + "CreationInfo": { + "$ref": "#/definitions/AWS::EFS::AccessPoint.CreationInfo", + "markdownDescription": "\\(Optional\\) Specifies the POSIX IDs and permissions to apply to the access point's `RootDirectory`\\. If the `RootDirectory` > `Path` specified does not exist, EFS creates the root directory using the `CreationInfo` settings when a client connects to an access point\\. When specifying the `CreationInfo`, you must provide values for all properties\\. \nIf you do not provide `CreationInfo` and the specified `RootDirectory` > `Path` does not exist, attempts to mount the file system using the access point will fail\\.\n*Required*: No \n*Type*: [CreationInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-creationinfo.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CreationInfo" + }, + "Path": { + "markdownDescription": "Specifies the path on the EFS file system to expose as the root directory to NFS clients using the access point to access the EFS file system\\. A path can have up to four subdirectories\\. If the specified path does not exist, you are required to provide the `CreationInfo`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^(\\/|(\\/(?!\\.)+[^$#<>;`|&?{}^*/\\n]+){1,4})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Used to create a file system that uses One Zone storage classes\\. It specifies the AWS Availability Zone in which to create the file system\\. Use the format `us-east-1a` to specify the Availability Zone\\. For more information about One Zone storage classes, see [Using EFS storage classes](https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html) in the *Amazon EFS User Guide*\\. \nOne Zone storage classes are not available in all Availability Zones in AWS Regions where Amazon EFS is available\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZoneName", + "type": "string" + }, + "BackupPolicy": { + "$ref": "#/definitions/AWS::EFS::FileSystem.BackupPolicy", + "markdownDescription": "Use the `BackupPolicy` to turn automatic backups on or off for the file system\\. \n*Required*: No \n*Type*: [BackupPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-backuppolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackupPolicy" + }, + "BypassPolicyLockoutSafetyCheck": { + "markdownDescription": "\\(Optional\\) Use this boolean to use or bypass the `FileSystemPolicy` lockout safety check\\. The policy lockout safety check determines if the `FileSystemPolicy` in the request will lock out the IAM principal making the request, preventing them from making future `PutFileSystemPolicy` requests on the file system\\. Set `BypassPolicyLockoutSafetyCheck` to `True` only when you intend to prevent the IAM principal that is making the request from making a subsequent `PutFileSystemPolicy` request on the file system\\. The default value is `False`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BypassPolicyLockoutSafetyCheck", + "type": "boolean" + }, + "Encrypted": { + "markdownDescription": "A Boolean value that, if true, creates an encrypted file system\\. When creating an encrypted file system, you have the option of specifying a KmsKeyId for an existing AWS KMS key\\. If you don't specify a KMS key, then the default KMS key for Amazon EFS, `/aws/elasticfilesystem`, is used to protect the encrypted file system\\. \n*Required*: Conditional \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Encrypted", + "type": "boolean" + }, + "FileSystemPolicy": { + "markdownDescription": "The `FileSystemPolicy` for the EFS file system\\. A file system policy is an IAM resource policy used to control NFS access to an EFS file system\\. For more information, see [Using IAM to control NFS access to Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html) in the *Amazon EFS User Guide*\\. \n*Required*: No \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `20000` \n*Pattern*: `[\\s\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileSystemPolicy", + "type": "object" + }, + "FileSystemTags": { + "items": { + "$ref": "#/definitions/AWS::EFS::FileSystem.ElasticFileSystemTag" + }, + "markdownDescription": "Use to create one or more tags associated with the file system\\. Each tag is a user\\-defined key\\-value pair\\. Name your file system on creation by including a `\"Key\":\"Name\",\"Value\":\"{value}\"` key\\-value pair\\. Each key must be unique\\. For more information, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the * AWS General Reference Guide*\\. \n*Required*: No \n*Type*: List of [ElasticFileSystemTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-elasticfilesystemtag.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileSystemTags", + "type": "array" + }, + "KmsKeyId": { + "markdownDescription": "The ID of the AWS KMS key to be used to protect the encrypted file system\\. This parameter is only required if you want to use a nondefault KMS key\\. If this parameter is not specified, the default KMS key for Amazon EFS is used\\. This ID can be in one of the following formats: \n+ Key ID \\- A unique identifier of the key, for example `1234abcd-12ab-34cd-56ef-1234567890ab`\\.\n+ ARN \\- An Amazon Resource Name \\(ARN\\) for the key, for example `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`\\.\n+ Key alias \\- A previously created display name for a key, for example `alias/projectKey1`\\.\n+ Key alias ARN \\- An ARN for a key alias, for example `arn:aws:kms:us-west-2:444455556666:alias/projectKey1`\\.\nIf `KmsKeyId` is specified, the `Encrypted` parameter must be set to true\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `^([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|mrk-[0-9a-f]{32}|alias/[a-zA-Z0-9/_-]+|(arn:aws[-a-z]*:kms:[a-z0-9-]+:\\d{12}:((key/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(key/mrk-[0-9a-f]{32})|(alias/[a-zA-Z0-9/_-]+))))$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + }, + "LifecyclePolicies": { + "items": { + "$ref": "#/definitions/AWS::EFS::FileSystem.LifecyclePolicy" + }, + "markdownDescription": "A list of one LifecyclePolicy that tells EFS lifecycle management when to transition files to the Infrequent Access \\(IA\\) storage classes\\. \n*Required*: No \n*Type*: List of [LifecyclePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-lifecyclepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LifecyclePolicies", + "type": "array" + }, + "PerformanceMode": { + "markdownDescription": "The performance mode of the file system\\. We recommend `generalPurpose` performance mode for most file systems\\. File systems using the `maxIO` performance mode can scale to higher levels of aggregate throughput and operations per second with a tradeoff of slightly higher latencies for most file operations\\. The performance mode can't be changed after the file system has been created\\. \nThe `maxIO` mode is not supported on file systems using One Zone storage classes\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `generalPurpose | maxIO` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PerformanceMode", + "type": "string" + }, + "ProvisionedThroughputInMibps": { + "markdownDescription": "The throughput, measured in MiB/s, that you want to provision for a file system that you're creating\\. Valid values are 1\\-1024\\. Required if `ThroughputMode` is set to `provisioned`\\. The upper limit for throughput is 1024 MiB/s\\. To increase this limit, contact AWS Support\\. For more information, see [Amazon EFS quotas that you can increase](https://docs.aws.amazon.com/efs/latest/ug/limits.html#soft-limits) in the *Amazon EFS User Guide*\\. \n*Required*: Conditional \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisionedThroughputInMibps", + "type": "number" + }, + "ThroughputMode": { + "markdownDescription": "Specifies the throughput mode for the file system, either `bursting` or `provisioned`\\. If you set `ThroughputMode` to `provisioned`, you must also set a value for `ProvisionedThroughputInMibps`\\. After you create the file system, you can decrease your file system's throughput in Provisioned Throughput mode or change between the throughput modes, as long as it\u2019s been more than 24 hours since the last decrease or throughput mode change\\. For more information, see [Specifying throughput with provisioned mode](https://docs.aws.amazon.com/efs/latest/ug/performance.html#provisioned-throughput) in the *Amazon EFS User Guide*\\. \nDefault is `bursting`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `bursting | provisioned` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Set the backup policy status for the file system\\. \n+ ** `ENABLED`** \\- Turns automatic backups on for the file system\\. \n+ ** `DISABLED`** \\- Turns automatic backups off for the file system\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | DISABLING | ENABLED | ENABLING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "AWS::EFS::FileSystem.ElasticFileSystemTag": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The tag key \\(String\\)\\. The key can't start with `aws:`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^(?![aA]{1}[wW]{1}[sS]{1}:)([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]+)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of the tag key\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EFS::FileSystem.LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "TransitionToIA": { + "markdownDescription": "Describes the period of time that a file is not accessed, after which it transitions to IA storage\\. Metadata operations such as listing the contents of a directory don't count as file access events\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AFTER_14_DAYS | AFTER_30_DAYS | AFTER_60_DAYS | AFTER_7_DAYS | AFTER_90_DAYS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitionToIA", + "type": "string" + }, + "TransitionToPrimaryStorageClass": { + "markdownDescription": "Describes when to transition a file from IA storage to primary storage\\. Metadata operations such as listing the contents of a directory don't count as file access events\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AFTER_1_ACCESS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ID of the file system for which to create the mount target\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:file-system/fs-[0-9a-f]{8,40}|fs-[0-9a-f]{8,40})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FileSystemId", + "type": "string" + }, + "IpAddress": { + "markdownDescription": "Valid IPv4 address within the address range of the specified subnet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `7` \n*Maximum*: `15` \n*Pattern*: `^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpAddress", + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "Up to five VPC security group IDs, of the form `sg-xxxxxxxx`\\. These must be for the same VPC as subnet specified\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroups", + "type": "array" + }, + "SubnetId": { + "markdownDescription": "The ID of the subnet to add the mount target in\\. For file systems that use One Zone storage classes, use the subnet that is associated with the file system's Availability Zone\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `15` \n*Maximum*: `47` \n*Pattern*: `^subnet-[0-9a-f]{8,40}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the add\\-on\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AddonName", + "type": "string" + }, + "AddonVersion": { + "markdownDescription": "The version of the add\\-on\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddonVersion", + "type": "string" + }, + "ClusterName": { + "markdownDescription": "The name of the cluster\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[0-9A-Za-z][A-Za-z0-9\\-_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterName", + "type": "string" + }, + "ConfigurationValues": { + "type": "string" + }, + "PreserveOnDelete": { + "type": "boolean" + }, + "ResolveConflicts": { + "markdownDescription": "How to resolve parameter value conflicts when migrating an existing add\\-on to an Amazon EKS add\\-on\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | OVERWRITE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResolveConflicts", + "type": "string" + }, + "ServiceAccountRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an existing IAM role to bind to the add\\-on's service account\\. The role must be assigned the IAM permissions required by the add\\-on\\. If you don't specify an existing IAM role, then the add\\-on uses the permissions assigned to the node IAM role\\. For more information, see [Amazon EKS node IAM role](https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html) in the *Amazon EKS User Guide*\\. \nTo specify an existing IAM role, you must have an IAM OpenID Connect \\(OIDC\\) provider created for your cluster\\. For more information, see [Enabling IAM roles for service accounts on your cluster](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html) in the *Amazon EKS User Guide*\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceAccountRoleArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The metadata that you apply to the add\\-on to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Add\\-on tags do not propagate to any other resources associated with the cluster\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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" + }, + "markdownDescription": "The encryption configuration for the cluster\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-encryptionconfig.html) of [EncryptionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-encryptionconfig.html) \n*Maximum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncryptionConfig", + "type": "array" + }, + "KubernetesNetworkConfig": { + "$ref": "#/definitions/AWS::EKS::Cluster.KubernetesNetworkConfig", + "markdownDescription": "The Kubernetes network configuration for the cluster\\. \n*Required*: No \n*Type*: [KubernetesNetworkConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-kubernetesnetworkconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KubernetesNetworkConfig" + }, + "Logging": { + "$ref": "#/definitions/AWS::EKS::Cluster.Logging", + "markdownDescription": "The logging configuration for your cluster\\. \n*Required*: No \n*Type*: [Logging](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-logging.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Logging" + }, + "Name": { + "markdownDescription": "The unique name to give to your cluster\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[0-9A-Za-z][A-Za-z0-9\\-_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "OutpostConfig": { + "$ref": "#/definitions/AWS::EKS::Cluster.OutpostConfig" + }, + "ResourcesVpcConfig": { + "$ref": "#/definitions/AWS::EKS::Cluster.ResourcesVpcConfig", + "markdownDescription": "The VPC configuration that's used by the cluster control plane\\. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes\\. For more information, see [Cluster VPC Considerations](https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html) and [Cluster Security Group Considerations](https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html) in the *Amazon EKS User Guide*\\. You must specify at least two subnets\\. You can specify up to five security groups, but we recommend that you use a dedicated security group for your cluster control plane\\. \nUpdates require replacement of the `SecurityGroupIds` and `SubnetIds` sub\\-properties\\.\n*Required*: Yes \n*Type*: [ResourcesVpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourcesVpcConfig" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf\\. For more information, see [Amazon EKS Service IAM Role](https://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html) in the * *Amazon EKS User Guide* *\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RoleArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The metadata that you apply to the cluster to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Cluster tags don't propagate to any other resources associated with the cluster\\. \nYou must have the `eks:TagResource` and `eks:UntagResource` permissions in your IAM user or IAM role used to manage the CloudFormation stack\\. If you don't have these permissions, there might be unexpected behavior with stack\\-level tags propagating to the resource during resource creation and update\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Version": { + "markdownDescription": "The desired Kubernetes version for your cluster\\. If you don't specify a value here, the latest version available in Amazon EKS is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The enabled control plane logs for your cluster\\. All log types are disabled if the array is empty\\. \nWhen updating a resource, you must include this `EnabledTypes` property if the previous CloudFormation template of the resource had it\\.\n*Required*: No \n*Type*: List of [LoggingTypeConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-loggingtypeconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnabledTypes", + "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", + "markdownDescription": "The encryption provider for the cluster\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Provider" + }, + "Resources": { + "items": { + "type": "string" + }, + "markdownDescription": "Specifies the resources to be encrypted\\. The only supported value is \"secrets\"\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Resources", + "type": "array" + } + }, + "type": "object" + }, + "AWS::EKS::Cluster.KubernetesNetworkConfig": { + "additionalProperties": false, + "properties": { + "IpFamily": { + "markdownDescription": "Specify which IP family is used to assign Kubernetes pod and service IP addresses\\. If you don't specify a value, `ipv4` is used by default\\. You can only specify an IP family when you create a cluster and can't change this value once the cluster is created\\. If you specify `ipv6`, the VPC and subnets that you specify for cluster creation must have both IPv4 and IPv6 CIDR blocks assigned to them\\. You can't specify `ipv6` for clusters in China Regions\\. \nYou can only specify `ipv6` for 1\\.21 and later clusters that use version 1\\.10\\.1 or later of the Amazon VPC CNI add\\-on\\. If you specify `ipv6`, then ensure that your VPC meets the requirements listed in the considerations listed in [Assigning IPv6 addresses to pods and services](https://docs.aws.amazon.com/eks/latest/userguide/cni-ipv6.html) in the Amazon EKS User Guide\\. Kubernetes assigns services IPv6 addresses from the unique local address range \\(fc00::/7\\)\\. You can't specify a custom IPv6 CIDR block\\. Pod addresses are assigned from the subnet's IPv6 CIDR\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ipv4 | ipv6` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpFamily", + "type": "string" + }, + "ServiceIpv4Cidr": { + "markdownDescription": "Don't specify a value if you select `ipv6` for **ipFamily**\\. The CIDR block to assign Kubernetes service IP addresses from\\. If you don't specify a block, Kubernetes assigns addresses from either the 10\\.100\\.0\\.0/16 or 172\\.20\\.0\\.0/16 CIDR blocks\\. We recommend that you specify a block that does not overlap with resources in other networks that are peered or connected to your VPC\\. The block must meet the following requirements: \n+ Within one of the following private IP address blocks: 10\\.0\\.0\\.0/8, 172\\.16\\.0\\.0/12, or 192\\.168\\.0\\.0/16\\.\n+ Doesn't overlap with any CIDR block assigned to the VPC that you selected for VPC\\.\n+ Between /24 and /12\\.\nYou can only specify a custom CIDR block when you create a cluster and can't change this value once the cluster is created\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceIpv4Cidr", + "type": "string" + }, + "ServiceIpv6Cidr": { + "markdownDescription": "The CIDR block that Kubernetes pod and service IP addresses are assigned from if you created a 1\\.21 or later cluster with version 1\\.10\\.1 or later of the Amazon VPC CNI add\\-on and specified `ipv6` for **ipFamily** when you created the cluster\\. Kubernetes assigns service addresses from the unique local address range \\(`fc00::/7`\\) because you can't specify a custom IPv6 CIDR block when you create the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceIpv6Cidr", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EKS::Cluster.Logging": { + "additionalProperties": false, + "properties": { + "ClusterLogging": { + "$ref": "#/definitions/AWS::EKS::Cluster.ClusterLogging", + "markdownDescription": "The cluster control plane logging configuration for your cluster\\. \n*Required*: No \n*Type*: [ClusterLogging](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-clusterlogging.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterLogging" + } + }, + "type": "object" + }, + "AWS::EKS::Cluster.LoggingTypeConfig": { + "additionalProperties": false, + "properties": { + "Type": { + "markdownDescription": "The name of the log type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Set this value to `true` to enable private access for your cluster's Kubernetes API server endpoint\\. If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint\\. The default value for this parameter is `false`, which disables private access for your Kubernetes API server\\. If you disable private access and you have nodes or AWS Fargate pods in the cluster, then ensure that `publicAccessCidrs` includes the necessary CIDR blocks for communication with the nodes or Fargate pods\\. For more information, see [Amazon EKS cluster endpoint access control](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) in the * *Amazon EKS User Guide* *\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointPrivateAccess", + "type": "boolean" + }, + "EndpointPublicAccess": { + "markdownDescription": "Set this value to `false` to disable public access to your cluster's Kubernetes API server endpoint\\. If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC\\. The default value for this parameter is `true`, which enables public access for your Kubernetes API server\\. For more information, see [Amazon EKS cluster endpoint access control](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) in the * *Amazon EKS User Guide* *\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointPublicAccess", + "type": "boolean" + }, + "PublicAccessCidrs": { + "items": { + "type": "string" + }, + "markdownDescription": "The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint\\. Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied\\. The default value is `0.0.0.0/0`\\. If you've disabled private endpoint access and you have nodes or AWS Fargate pods in the cluster, then ensure that you specify the necessary CIDR blocks\\. For more information, see [Amazon EKS cluster endpoint access control](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) in the * *Amazon EKS User Guide* *\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublicAccessCidrs", + "type": "array" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "Specify one or more security groups for the cross\\-account elastic network interfaces that Amazon EKS creates to use that allow communication between your nodes and the Kubernetes control plane\\. If you don't specify any security groups, then familiarize yourself with the difference between Amazon EKS defaults for clusters deployed with Kubernetes: \n+ 1\\.14 Amazon EKS platform version `eks.2` and earlier\n+ 1\\.14 Amazon EKS platform version `eks.3` and later \nFor more information, see [Amazon EKS security group considerations](https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html) in the * *Amazon EKS User Guide* *\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "Specify subnets for your Amazon EKS nodes\\. Amazon EKS creates cross\\-account elastic network interfaces in these subnets to allow communication between your nodes and the Kubernetes control plane\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetIds", + "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": { + "markdownDescription": "The name of the Amazon EKS cluster to apply the Fargate profile to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterName", + "type": "string" + }, + "FargateProfileName": { + "markdownDescription": "The name of the Fargate profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FargateProfileName", + "type": "string" + }, + "PodExecutionRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the pod execution role to use for pods that match the selectors in the Fargate profile\\. The pod execution role allows Fargate infrastructure to register with your cluster as a node, and it provides read access to Amazon ECR image repositories\\. For more information, see [Pod Execution Role](https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html) in the *Amazon EKS User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PodExecutionRoleArn", + "type": "string" + }, + "Selectors": { + "items": { + "$ref": "#/definitions/AWS::EKS::FargateProfile.Selector" + }, + "markdownDescription": "The selectors to match for pods to use this Fargate profile\\. Each selector must have an associated namespace\\. Optionally, you can also specify labels for a namespace\\. You may specify up to five selectors in a Fargate profile\\. \n*Required*: Yes \n*Type*: List of [Selector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-fargateprofile-selector.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Selectors", + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of subnets to launch your pods into\\. At this time, pods running on Fargate are not assigned public IP addresses, so only private subnets \\(with no direct route to an Internet Gateway\\) are accepted for this parameter\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subnets", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The metadata to apply to the Fargate profile to assist with categorization and organization\\. Each tag consists of a key and an optional value\\. You define both\\. Fargate profile tags do not propagate to any other resources associated with the Fargate profile, such as the pods that are scheduled with it\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "Enter a key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "Enter a value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EKS::FargateProfile.Selector": { + "additionalProperties": false, + "properties": { + "Labels": { + "items": { + "$ref": "#/definitions/AWS::EKS::FargateProfile.Label" + }, + "markdownDescription": "The Kubernetes labels that the selector should match\\. A pod must contain all of the labels that are specified in the selector for it to be considered a match\\. \n*Required*: No \n*Type*: List of [Label](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-fargateprofile-label.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Labels", + "type": "array" + }, + "Namespace": { + "markdownDescription": "The Kubernetes namespace that the selector should match\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The cluster that the configuration is associated to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterName", + "type": "string" + }, + "IdentityProviderConfigName": { + "markdownDescription": "The name of the configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IdentityProviderConfigName", + "type": "string" + }, + "Oidc": { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig", + "markdownDescription": "An object that represents an OpenID Connect \\(OIDC\\) identity provider configuration\\. \n*Required*: No \n*Type*: [OidcIdentityProviderConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Oidc" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The metadata to apply to the provider configuration to assist with categorization and organization\\. Each tag consists of a key and an optional value\\. You define both\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Type": { + "markdownDescription": "The type of the identity provider configuration\\. The only type available is `oidc`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "This is also known as *audience*\\. The ID of the client application that makes authentication requests to the OIDC identity provider\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientId", + "type": "string" + }, + "GroupsClaim": { + "markdownDescription": "The JSON web token \\(JWT\\) claim that the provider uses to return your groups\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupsClaim", + "type": "string" + }, + "GroupsPrefix": { + "markdownDescription": "The prefix that is prepended to group claims to prevent clashes with existing names \\(such as `system:` groups\\)\\. For example, the value` oidc:` creates group names like `oidc:engineering` and `oidc:infra`\\. The prefix can't contain `system:` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupsPrefix", + "type": "string" + }, + "IssuerUrl": { + "markdownDescription": "The URL of the OIDC identity provider that allows the API server to discover public signing keys for verifying tokens\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IssuerUrl", + "type": "string" + }, + "RequiredClaims": { + "items": { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig.RequiredClaim" + }, + "markdownDescription": "The key\\-value pairs that describe required claims in the identity token\\. If set, each claim is verified to be present in the token with a matching value\\. \n*Required*: No \n*Type*: List of [RequiredClaim](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-requiredclaim.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RequiredClaims", + "type": "array" + }, + "UsernameClaim": { + "markdownDescription": "The JSON Web token \\(JWT\\) claim that is used as the username\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UsernameClaim", + "type": "string" + }, + "UsernamePrefix": { + "markdownDescription": "The prefix that is prepended to username claims to prevent clashes with existing names\\. The prefix can't contain `system:` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UsernamePrefix", + "type": "string" + } + }, + "required": [ + "ClientId", + "IssuerUrl" + ], + "type": "object" + }, + "AWS::EKS::IdentityProviderConfig.RequiredClaim": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The key to match from the token\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The value for the key from the token\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The AMI type for your node group\\. GPU instance types should use the `AL2_x86_64_GPU` AMI type\\. Non\\-GPU instances should use the `AL2_x86_64` AMI type\\. Arm instances should use the `AL2_ARM_64` AMI type\\. All types use the Amazon EKS optimized Amazon Linux 2 AMI\\. If you specify `launchTemplate`, and your launch template uses a custom AMI, then don't specify `amiType`, or the node group deployment will fail\\. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AL2_ARM_64 | AL2_x86_64 | AL2_x86_64_GPU | BOTTLEROCKET_ARM_64 | BOTTLEROCKET_x86_64 | CUSTOM` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AmiType", + "type": "string" + }, + "CapacityType": { + "markdownDescription": "The capacity type of your managed node group\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ON_DEMAND | SPOT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CapacityType", + "type": "string" + }, + "ClusterName": { + "markdownDescription": "The name of the cluster to create the node group in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterName", + "type": "string" + }, + "DiskSize": { + "markdownDescription": "The root device disk size \\(in GiB\\) for your node group instances\\. The default disk size is 20 GiB\\. If you specify `launchTemplate`, then don't specify `diskSize`, or the node group deployment will fail\\. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DiskSize", + "type": "number" + }, + "ForceUpdateEnabled": { + "markdownDescription": "Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue\\. If an update fails because pods could not be drained, you can force the update after it fails to terminate the old node whether or not any pods are running on the node\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForceUpdateEnabled", + "type": "boolean" + }, + "InstanceTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "Specify the instance types for a node group\\. If you specify a GPU instance type, be sure to specify `AL2_x86_64_GPU` with the `amiType` parameter\\. If you specify `launchTemplate`, then you can specify zero or one instance type in your launch template *or* you can specify 0\\-20 instance types for `instanceTypes`\\. If however, you specify an instance type in your launch template *and* specify any `instanceTypes`, the node group deployment will fail\\. If you don't specify an instance type in a launch template or for `instanceTypes`, then `t3.medium` is used, by default\\. If you specify `Spot` for `capacityType`, then we recommend specifying multiple values for `instanceTypes`\\. For more information, see [Managed node group capacity types](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types) and [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceTypes", + "type": "array" + }, + "Labels": { + "additionalProperties": true, + "markdownDescription": "The Kubernetes labels to be applied to the nodes in the node group when they are created\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Labels", + "type": "object" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::EKS::Nodegroup.LaunchTemplateSpecification", + "markdownDescription": "An object representing a node group's launch template specification\\. If specified, then do not specify `instanceTypes`, `diskSize`, or `remoteAccess` and make sure that the launch template meets the requirements in `launchTemplateSpecification`\\. \n*Required*: No \n*Type*: [LaunchTemplateSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-launchtemplatespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplate" + }, + "NodeRole": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role to associate with your node group\\. The Amazon EKS worker node `kubelet` daemon makes calls to AWS APIs on your behalf\\. Nodes receive permissions for these API calls through an IAM instance profile and associated policies\\. Before you can launch nodes and register them into a cluster, you must create an IAM role for those nodes to use when they are launched\\. For more information, see [Amazon EKS node IAM role](https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html) in the * *Amazon EKS User Guide* *\\. If you specify `launchTemplate`, then don't specify [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html) in your launch template, or the node group deployment will fail\\. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NodeRole", + "type": "string" + }, + "NodegroupName": { + "markdownDescription": "The unique name to give your node group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NodegroupName", + "type": "string" + }, + "ReleaseVersion": { + "markdownDescription": "The AMI version of the Amazon EKS optimized AMI to use with your node group \\(for example, `1.14.7-YYYYMMDD`\\)\\. By default, the latest available AMI version for the node group's current Kubernetes version is used\\. For more information, see [Amazon EKS optimized Linux AMI Versions](https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html) in the *Amazon EKS User Guide*\\. \nChanging this value triggers an update of the node group if one is available\\. You can't update other properties at the same time as updating `Release Version`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReleaseVersion", + "type": "string" + }, + "RemoteAccess": { + "$ref": "#/definitions/AWS::EKS::Nodegroup.RemoteAccess", + "markdownDescription": "The remote access \\(SSH\\) configuration to use with your node group\\. If you specify `launchTemplate`, then don't specify `remoteAccess`, or the node group deployment will fail\\. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide*\\. \n*Required*: No \n*Type*: [RemoteAccess](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-remoteaccess.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RemoteAccess" + }, + "ScalingConfig": { + "$ref": "#/definitions/AWS::EKS::Nodegroup.ScalingConfig", + "markdownDescription": "The scaling configuration details for the Auto Scaling group that is created for your node group\\. \n*Required*: No \n*Type*: [ScalingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-scalingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalingConfig" + }, + "Subnets": { + "items": { + "type": "string" + }, + "markdownDescription": "The subnets to use for the Auto Scaling group that is created for your node group\\. If you specify `launchTemplate`, then don't specify [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html) in your launch template, or the node group deployment will fail\\. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide*\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subnets", + "type": "array" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "The metadata to apply to the node group to assist with categorization and organization\\. Each tag consists of a key and an optional value\\. You define both\\. Node group tags don't propagate to any other resources associated with the node group, such as the Amazon EC2 instances or subnets\\. \nUpdates to `Tags` can't be combined with updates to `ReleaseVersion`, `Version`, or `LaunchTemplate`\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "type": "object" + }, + "Taints": { + "items": { + "$ref": "#/definitions/AWS::EKS::Nodegroup.Taint" + }, + "markdownDescription": "The Kubernetes taints to be applied to the nodes in the node group when they are created\\. Effect is one of `No_Schedule`, `Prefer_No_Schedule`, or `No_Execute`\\. Kubernetes taints can be used together with tolerations to control how workloads are scheduled to your nodes\\. For more information, see [Node taints on managed node groups](https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html)\\. \n*Required*: No \n*Type*: List of [Taint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-taint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Taints", + "type": "array" + }, + "UpdateConfig": { + "$ref": "#/definitions/AWS::EKS::Nodegroup.UpdateConfig", + "markdownDescription": "The node group update configuration\\. \n*Required*: No \n*Type*: [UpdateConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-updateconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdateConfig" + }, + "Version": { + "markdownDescription": "The Kubernetes version to use for your managed nodes\\. By default, the Kubernetes version of the cluster is used, and this is the only accepted specified value\\. If you specify `launchTemplate`, and your launch template uses a custom AMI, then don't specify `version`, or the node group deployment will fail\\. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide*\\. \nYou can't update other properties at the same time as updating `Version`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ID of the launch template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the launch template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Version": { + "markdownDescription": "The version of the launch template to use\\. If no version is specified, then the template's default version is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EKS::Nodegroup.RemoteAccess": { + "additionalProperties": false, + "properties": { + "Ec2SshKey": { + "markdownDescription": "The Amazon EC2 SSH key that provides access for SSH communication with the nodes in the managed node group\\. For more information, see [Amazon EC2 key pairs and Linux instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) in the *Amazon Elastic Compute Cloud User Guide for Linux Instances*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ec2SshKey", + "type": "string" + }, + "SourceSecurityGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "The security groups that are allowed SSH access \\(port 22\\) to the nodes\\. If you specify an Amazon EC2 SSH key but do not specify a source security group when you create a managed node group, then port 22 on the nodes is opened to the internet \\(0\\.0\\.0\\.0/0\\)\\. For more information, see [Security Groups for Your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) in the *Amazon Virtual Private Cloud User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceSecurityGroups", + "type": "array" + } + }, + "required": [ + "Ec2SshKey" + ], + "type": "object" + }, + "AWS::EKS::Nodegroup.ScalingConfig": { + "additionalProperties": false, + "properties": { + "DesiredSize": { + "markdownDescription": "The current number of nodes that the managed node group should maintain\\. \nIf you use Cluster Autoscaler, you shouldn't change the desiredSize value directly, as this can cause the Cluster Autoscaler to suddenly scale up or scale down\\.\nWhenever this parameter changes, the number of worker nodes in the node group is updated to the specified size\\. If this parameter is given a value that is smaller than the current number of running worker nodes, the necessary number of worker nodes are terminated to match the given value\\. When using CloudFormation, no action occurs if you remove this parameter from your CFN template\\. \nThis parameter can be different from minSize in some cases, such as when starting with extra hosts for testing\\. This parameter can also be different when you want to start with an estimated number of needed hosts, but let Cluster Autoscaler reduce the number if there are too many\\. When Cluster Autoscaler is used, the desiredSize parameter is altered by Cluster Autoscaler \\(but can be out\\-of\\-date for short periods of time\\)\\. Cluster Autoscaler doesn't scale a managed node group lower than minSize or higher than maxSize\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DesiredSize", + "type": "number" + }, + "MaxSize": { + "markdownDescription": "The maximum number of nodes that the managed node group can scale out to\\. For information about the maximum number that you can specify, see [Amazon EKS service quotas](https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html) in the *Amazon EKS User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxSize", + "type": "number" + }, + "MinSize": { + "markdownDescription": "The minimum number of nodes that the managed node group can scale in to\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinSize", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EKS::Nodegroup.Taint": { + "additionalProperties": false, + "properties": { + "Effect": { + "markdownDescription": "The effect of the taint\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NO_EXECUTE | NO_SCHEDULE | PREFER_NO_SCHEDULE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Effect", + "type": "string" + }, + "Key": { + "markdownDescription": "The key of the taint\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of the taint\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EKS::Nodegroup.UpdateConfig": { + "additionalProperties": false, + "properties": { + "MaxUnavailable": { + "markdownDescription": "The maximum number of nodes unavailable at once during a version update\\. Nodes will be updated in parallel\\. This value or `maxUnavailablePercentage` is required to have a value\\.The maximum number is 100\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxUnavailable", + "type": "number" + }, + "MaxUnavailablePercentage": { + "markdownDescription": "The maximum percentage of nodes unavailable during a version update\\. This percentage of nodes will be updated in parallel, up to 100 nodes at once\\. This value or `maxUnavailable` is required to have a value\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A JSON string for selecting additional features\\. \n*Required*: No \n*Type*: Json \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AdditionalInfo", + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Application" + }, + "markdownDescription": "The applications to install on this cluster, for example, Spark, Flink, Oozie, Zeppelin, and so on\\. \n*Required*: No \n*Type*: List of [Application](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-application.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Applications", + "type": "array" + }, + "AutoScalingRole": { + "markdownDescription": "An IAM role for automatic scaling policies\\. The default role is `EMR_AutoScaling_DefaultRole`\\. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutoScalingRole", + "type": "string" + }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AWS::EMR::Cluster.AutoTerminationPolicy" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.BootstrapActionConfig" + }, + "markdownDescription": "A list of bootstrap actions to run before Hadoop starts on the cluster nodes\\. \n*Required*: No \n*Type*: List of [BootstrapActionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-bootstrapactionconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BootstrapActions", + "type": "array" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "markdownDescription": "Applies only to Amazon EMR releases 4\\.x and later\\. The list of Configurations supplied to the EMR cluster\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-configuration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Configurations", + "type": "array" + }, + "CustomAmiId": { + "markdownDescription": "Available only in Amazon EMR version 5\\.7\\.0 and later\\. The ID of a custom Amazon EBS\\-backed Linux AMI if the cluster uses a custom AMI\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomAmiId", + "type": "string" + }, + "EbsRootVolumeSize": { + "markdownDescription": "The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that is used for each EC2 instance\\. Available in Amazon EMR version 4\\.x and later\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsRootVolumeSize", + "type": "number" + }, + "Instances": { + "$ref": "#/definitions/AWS::EMR::Cluster.JobFlowInstancesConfig", + "markdownDescription": "A specification of the number and type of Amazon EC2 instances\\. \n*Required*: Yes \n*Type*: [JobFlowInstancesConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Instances" + }, + "JobFlowRole": { + "markdownDescription": "Also called instance profile and EC2 role\\. An IAM role for an EMR cluster\\. The EC2 instances of the cluster assume this role\\. The default role is `EMR_EC2_DefaultRole`\\. In order to use the default role, you must have already created it using the CLI or console\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "JobFlowRole", + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/AWS::EMR::Cluster.KerberosAttributes", + "markdownDescription": "Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration\\. For more information see [Use Kerberos Authentication](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html) in the *Amazon EMR Management Guide*\\. \n*Required*: No \n*Type*: [KerberosAttributes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-kerberosattributes.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KerberosAttributes" + }, + "LogEncryptionKmsKeyId": { + "markdownDescription": "The AWS KMS key used for encrypting log files\\. This attribute is only available with EMR version 5\\.30\\.0 and later, excluding EMR 6\\.0\\.0\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogEncryptionKmsKeyId", + "type": "string" + }, + "LogUri": { + "markdownDescription": "The path to the Amazon S3 location where logs for this cluster are stored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogUri", + "type": "string" + }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/AWS::EMR::Cluster.ManagedScalingPolicy", + "markdownDescription": "Creates or updates a managed scaling policy for an Amazon EMR cluster\\. The managed scaling policy defines the limits for resources, such as EC2 instances that can be added or terminated from a cluster\\. The policy only applies to the core and task nodes\\. The master node cannot be scaled after initial configuration\\. \n*Required*: No \n*Type*: [ManagedScalingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-managedscalingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManagedScalingPolicy" + }, + "Name": { + "markdownDescription": "The name of the cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "OSReleaseLabel": { + "type": "string" + }, + "ReleaseLabel": { + "markdownDescription": "The Amazon EMR release label, which determines the version of open\\-source application packages installed on the cluster\\. Release labels are in the form `emr-x.x.x`, where x\\.x\\.x is an Amazon EMR release version such as `emr-5.14.0`\\. For more information about Amazon EMR release versions and included application versions and features, see [https://docs.aws.amazon.com/emr/latest/ReleaseGuide/](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/)\\. The release label applies only to Amazon EMR releases version 4\\.0 and later\\. Earlier versions use `AmiVersion`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReleaseLabel", + "type": "string" + }, + "ScaleDownBehavior": { + "markdownDescription": "The way that individual Amazon EC2 instances terminate when an automatic scale\\-in activity occurs or an instance group is resized\\. `TERMINATE_AT_INSTANCE_HOUR` indicates that Amazon EMR terminates nodes at the instance\\-hour boundary, regardless of when the request to terminate the instance was submitted\\. This option is only available with Amazon EMR 5\\.1\\.0 and later and is the default for clusters created using that version\\. `TERMINATE_AT_TASK_COMPLETION` indicates that Amazon EMR adds nodes to a deny list and drains tasks from nodes before terminating the Amazon EC2 instances, regardless of the instance\\-hour boundary\\. With either behavior, Amazon EMR removes the least active nodes first and blocks instance termination if it could lead to HDFS corruption\\. `TERMINATE_AT_TASK_COMPLETION` is available only in Amazon EMR version 4\\.1\\.0 and later, and is the default for versions of Amazon EMR earlier than 5\\.1\\.0\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `TERMINATE_AT_INSTANCE_HOUR | TERMINATE_AT_TASK_COMPLETION` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScaleDownBehavior", + "type": "string" + }, + "SecurityConfiguration": { + "markdownDescription": "The name of the security configuration applied to the cluster\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityConfiguration", + "type": "string" + }, + "ServiceRole": { + "markdownDescription": "The IAM role that Amazon EMR assumes in order to access AWS resources on your behalf\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceRole", + "type": "string" + }, + "StepConcurrencyLevel": { + "markdownDescription": "Specifies the number of steps that can be executed concurrently\\. The default value is `1`\\. The maximum value is `256`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StepConcurrencyLevel", + "type": "number" + }, + "Steps": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.StepConfig" + }, + "markdownDescription": "A list of steps to run\\. \n*Required*: No \n*Type*: List of [StepConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-stepconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Steps", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of tags associated with a cluster\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VisibleToAllUsers": { + "markdownDescription": "Indicates whether the cluster is visible to all IAM users of the AWS account associated with the cluster\\. If this value is set to `true`, all IAM users of that AWS account can view and manage the cluster if they have the proper policy permissions set\\. If this value is `false`, only the IAM user that created the cluster can view and manage it\\. This value can be changed using the SetVisibleToAllUsers action\\. \nWhen you create clusters directly through the EMR console or API, this value is set to `true` by default\\. However, for `AWS::EMR::Cluster` resources in CloudFormation, the default is `false`\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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, + "markdownDescription": "This option is for advanced users only\\. This is meta information about clusters and applications that are used for testing and troubleshooting\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "AdditionalInfo", + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "markdownDescription": "Arguments for Amazon EMR to pass to the application\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Args", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Version": { + "markdownDescription": "The version of the application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingConstraints", + "markdownDescription": "The upper and lower EC2 instance limits for an automatic scaling policy\\. Automatic scaling activity will not cause an instance group to grow above or below these limits\\. \n*Required*: Yes \n*Type*: [ScalingConstraints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingconstraints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Constraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingRule" + }, + "markdownDescription": "The scale\\-in and scale\\-out rules that comprise the automatic scaling policy\\. \n*Required*: Yes \n*Type*: List of [ScalingRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", + "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": { + "markdownDescription": "The name of the bootstrap action\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScriptBootstrapActionConfig", + "markdownDescription": "The script run by the bootstrap action\\. \n*Required*: Yes \n*Type*: [ScriptBootstrapActionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scriptbootstrapactionconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScriptBootstrapAction" + } + }, + "required": [ + "Name", + "ScriptBootstrapAction" + ], + "type": "object" + }, + "AWS::EMR::Cluster.CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "markdownDescription": "Determines how the metric specified by `MetricName` is compared to the value specified by `Threshold`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GREATER_THAN | GREATER_THAN_OR_EQUAL | LESS_THAN | LESS_THAN_OR_EQUAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComparisonOperator", + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.MetricDimension" + }, + "markdownDescription": "A CloudWatch metric dimension\\. \n*Required*: No \n*Type*: List of [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", + "type": "array" + }, + "EvaluationPeriods": { + "markdownDescription": "The number of periods, in five\\-minute increments, during which the alarm condition must exist before the alarm triggers automatic scaling activity\\. The default value is `1`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EvaluationPeriods", + "type": "number" + }, + "MetricName": { + "markdownDescription": "The name of the CloudWatch metric that is watched to determine an alarm condition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", + "type": "string" + }, + "Namespace": { + "markdownDescription": "The namespace for the CloudWatch metric\\. The default is `AWS/ElasticMapReduce`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", + "type": "string" + }, + "Period": { + "markdownDescription": "The period, in seconds, over which the statistic is applied\\. EMR CloudWatch metrics are emitted every five minutes \\(300 seconds\\), so if an EMR CloudWatch metric is specified, specify `300`\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Period", + "type": "number" + }, + "Statistic": { + "markdownDescription": "The statistic to apply to the metric associated with the alarm\\. The default is `AVERAGE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AVERAGE | MAXIMUM | MINIMUM | SAMPLE_COUNT | SUM` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statistic", + "type": "string" + }, + "Threshold": { + "markdownDescription": "The value against which the specified statistic is compared\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Threshold", + "type": "number" + }, + "Unit": { + "markdownDescription": "The unit of measure associated with the CloudWatch metric being watched\\. The value specified for `Unit` must correspond to the units specified in the CloudWatch metric\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BITS | BITS_PER_SECOND | BYTES | BYTES_PER_SECOND | COUNT | COUNT_PER_SECOND | GIGA_BITS | GIGA_BITS_PER_SECOND | GIGA_BYTES | GIGA_BYTES_PER_SECOND | KILO_BITS | KILO_BITS_PER_SECOND | KILO_BYTES | KILO_BYTES_PER_SECOND | MEGA_BITS | MEGA_BITS_PER_SECOND | MEGA_BYTES | MEGA_BYTES_PER_SECOND | MICRO_SECONDS | MILLI_SECONDS | NONE | PERCENT | SECONDS | TERA_BITS | TERA_BITS_PER_SECOND | TERA_BYTES | TERA_BYTES_PER_SECOND` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "MetricName", + "Period", + "Threshold" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "markdownDescription": "The upper boundary of EC2 units\\. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets\\. Managed scaling activities are not allowed beyond this boundary\\. The limit only applies to the core and task nodes\\. The master node cannot be scaled after initial configuration\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumCapacityUnits", + "type": "number" + }, + "MaximumCoreCapacityUnits": { + "markdownDescription": "The upper boundary of EC2 units for core node type in a cluster\\. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets\\. The core units are not allowed to scale beyond this boundary\\. The parameter is used to split capacity allocation between core and task nodes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumCoreCapacityUnits", + "type": "number" + }, + "MaximumOnDemandCapacityUnits": { + "markdownDescription": "The upper boundary of On\\-Demand EC2 units\\. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets\\. The On\\-Demand units are not allowed to scale beyond this boundary\\. The parameter is used to split capacity allocation between On\\-Demand and Spot Instances\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumOnDemandCapacityUnits", + "type": "number" + }, + "MinimumCapacityUnits": { + "markdownDescription": "The lower boundary of EC2 units\\. It is measured through vCPU cores or instances for instance groups and measured through units for instance fleets\\. Managed scaling activities are not allowed beyond this boundary\\. The limit only applies to the core and task nodes\\. The master node cannot be scaled after initial configuration\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinimumCapacityUnits", + "type": "number" + }, + "UnitType": { + "markdownDescription": "The unit type used for specifying a managed scaling policy\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `InstanceFleetUnits | Instances | VCPU` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnitType", + "type": "string" + } + }, + "required": [ + "MaximumCapacityUnits", + "MinimumCapacityUnits", + "UnitType" + ], + "type": "object" + }, + "AWS::EMR::Cluster.Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "markdownDescription": "The classification within a configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Classification", + "type": "string" + }, + "ConfigurationProperties": { + "additionalProperties": true, + "markdownDescription": "A list of additional configurations to apply within a configuration object\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "ConfigurationProperties", + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "markdownDescription": "A list of additional configurations to apply within a configuration object\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-elasticmapreduce-cluster-configuration.html#aws-properties-elasticmapreduce-cluster-configuration) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configurations", + "type": "array" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/AWS::EMR::Cluster.VolumeSpecification", + "markdownDescription": "EBS volume specifications such as volume type, IOPS, and size \\(GiB\\) that will be requested for the EBS volume attached to an EC2 instance in the cluster\\. \n*Required*: Yes \n*Type*: [VolumeSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-volumespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeSpecification" + }, + "VolumesPerInstance": { + "markdownDescription": "Number of EBS volumes with a specific volume configuration that will be associated with every instance in the instance group \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumesPerInstance", + "type": "number" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "AWS::EMR::Cluster.EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.EbsBlockDeviceConfig" + }, + "markdownDescription": "An array of Amazon EBS volume specifications attached to a cluster instance\\. \n*Required*: No \n*Type*: List of [EbsBlockDeviceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsblockdeviceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EbsBlockDeviceConfigs", + "type": "array" + }, + "EbsOptimized": { + "markdownDescription": "Indicates whether an Amazon EBS volume is EBS\\-optimized\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EbsOptimized", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of command line arguments passed to the JAR file's main function when executed\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Args", + "type": "array" + }, + "Jar": { + "markdownDescription": "A path to a JAR file run during the step\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Jar", + "type": "string" + }, + "MainClass": { + "markdownDescription": "The name of the main class in the specified Java file\\. If not specified, the JAR file should specify a Main\\-Class in its manifest file\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MainClass", + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.KeyValue" + }, + "markdownDescription": "A list of Java properties that are set when the step runs\\. You can use these properties to pass key\\-value pairs to your main function\\. \n*Required*: No \n*Type*: List of [KeyValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-keyvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StepProperties", + "type": "array" + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "AWS::EMR::Cluster.InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceTypeConfig" + }, + "markdownDescription": "The instance type configurations that define the EC2 instances in the instance fleet\\. \n*Required*: No \n*Type*: List of [InstanceTypeConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancetypeconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceTypeConfigs", + "type": "array" + }, + "LaunchSpecifications": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications", + "markdownDescription": "The launch specification for the instance fleet\\. \n*Required*: No \n*Type*: [InstanceFleetProvisioningSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetprovisioningspecifications.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchSpecifications" + }, + "Name": { + "markdownDescription": "The friendly name of the instance fleet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "TargetOnDemandCapacity": { + "markdownDescription": "The target capacity of On\\-Demand units for the instance fleet, which determines how many On\\-Demand instances to provision\\. When the instance fleet launches, Amazon EMR tries to provision On\\-Demand instances as specified by `InstanceTypeConfig`\\. Each instance configuration has a specified `WeightedCapacity`\\. When an On\\-Demand instance is provisioned, the `WeightedCapacity` units count toward the target capacity\\. Amazon EMR provisions instances until the target capacity is totally fulfilled, even if this results in an overage\\. For example, if there are 2 units remaining to fulfill capacity, and Amazon EMR can only provision an instance with a `WeightedCapacity` of 5 units, the instance is provisioned, and the target capacity is exceeded by 3 units\\. \nIf not specified or set to 0, only Spot instances are provisioned for the instance fleet using `TargetSpotCapacity`\\. At least one of `TargetSpotCapacity` and `TargetOnDemandCapacity` should be greater than 0\\. For a master instance fleet, only one of `TargetSpotCapacity` and `TargetOnDemandCapacity` can be specified, and its value must be 1\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetOnDemandCapacity", + "type": "number" + }, + "TargetSpotCapacity": { + "markdownDescription": "The target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision\\. When the instance fleet launches, Amazon EMR tries to provision Spot instances as specified by `InstanceTypeConfig`\\. Each instance configuration has a specified `WeightedCapacity`\\. When a Spot instance is provisioned, the `WeightedCapacity` units count toward the target capacity\\. Amazon EMR provisions instances until the target capacity is totally fulfilled, even if this results in an overage\\. For example, if there are 2 units remaining to fulfill capacity, and Amazon EMR can only provision an instance with a `WeightedCapacity` of 5 units, the instance is provisioned, and the target capacity is exceeded by 3 units\\. \nIf not specified or set to 0, only On\\-Demand instances are provisioned for the instance fleet\\. At least one of `TargetSpotCapacity` and `TargetOnDemandCapacity` should be greater than 0\\. For a master instance fleet, only one of `TargetSpotCapacity` and `TargetOnDemandCapacity` can be specified, and its value must be 1\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetSpotCapacity", + "type": "number" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/AWS::EMR::Cluster.OnDemandProvisioningSpecification", + "markdownDescription": "The launch specification for On\\-Demand Instances in the instance fleet, which determines the allocation strategy\\. \nThe instance fleet configuration is available only in Amazon EMR versions 4\\.8\\.0 and later, excluding 5\\.0\\.x versions\\. On\\-Demand Instances allocation strategy is available in Amazon EMR version 5\\.12\\.1 and later\\.\n*Required*: No \n*Type*: [OnDemandProvisioningSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ondemandprovisioningspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnDemandSpecification" + }, + "SpotSpecification": { + "$ref": "#/definitions/AWS::EMR::Cluster.SpotProvisioningSpecification", + "markdownDescription": "The launch specification for Spot Instances in the fleet, which determines the defined duration, provisioning timeout behavior, and allocation strategy\\. \n*Required*: No \n*Type*: [SpotProvisioningSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-spotprovisioningspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpotSpecification" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AWS::EMR::Cluster.AutoScalingPolicy", + "markdownDescription": "`AutoScalingPolicy` is a subproperty of the [InstanceGroupConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-jobflowinstancesconfig-instancegroupconfig.html) property type that specifies the constraints and rules of an automatic scaling policy in Amazon EMR\\. The automatic scaling policy defines how an instance group dynamically adds and terminates EC2 instances in response to the value of a CloudWatch metric\\. Only core and task instance groups can use automatic scaling policies\\. For more information, see [Using Automatic Scaling in Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html)\\. \n*Required*: No \n*Type*: [AutoScalingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-autoscalingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoScalingPolicy" + }, + "BidPrice": { + "markdownDescription": "If specified, indicates that the instance group uses Spot Instances\\. This is the maximum price you are willing to pay for Spot Instances\\. Specify `OnDemandPrice` to set the amount equal to the On\\-Demand price, or specify an amount in USD\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BidPrice", + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "markdownDescription": "Amazon EMR releases 4\\.x or later\\.\nThe list of configurations supplied for an EMR cluster instance group\\. You can specify a separate configuration for each instance group \\(master, core, and task\\)\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-configuration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Configurations", + "type": "array" + }, + "CustomAmiId": { + "markdownDescription": "The custom AMI ID to use for the provisioned instance group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomAmiId", + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration", + "markdownDescription": "EBS configurations that will be attached to each EC2 instance in the instance group\\. \n*Required*: No \n*Type*: [EbsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsConfiguration" + }, + "InstanceCount": { + "markdownDescription": "Target number of instances for the instance group\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceCount", + "type": "number" + }, + "InstanceType": { + "markdownDescription": "The EC2 instance type for all instances in the instance group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", + "type": "string" + }, + "Market": { + "markdownDescription": "Market type of the EC2 instances used to create a cluster node\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ON_DEMAND | SPOT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Market", + "type": "string" + }, + "Name": { + "markdownDescription": "Friendly name given to the instance group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "AWS::EMR::Cluster.InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "markdownDescription": "The bid price for each EC2 Spot Instance type as defined by `InstanceType`\\. Expressed in USD\\. If neither `BidPrice` nor `BidPriceAsPercentageOfOnDemandPrice` is provided, `BidPriceAsPercentageOfOnDemandPrice` defaults to 100%\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BidPrice", + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "markdownDescription": "The bid price, as a percentage of On\\-Demand price, for each EC2 Spot Instance as defined by `InstanceType`\\. Expressed as a number \\(for example, 20 specifies 20%\\)\\. If neither `BidPrice` nor `BidPriceAsPercentageOfOnDemandPrice` is provided, `BidPriceAsPercentageOfOnDemandPrice` defaults to 100%\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BidPriceAsPercentageOfOnDemandPrice", + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "markdownDescription": "A configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-configuration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Configurations", + "type": "array" + }, + "CustomAmiId": { + "markdownDescription": "The custom AMI ID to use for the instance type\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomAmiId", + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration", + "markdownDescription": "The configuration of Amazon Elastic Block Store \\(Amazon EBS\\) attached to each instance as defined by `InstanceType`\\. \n*Required*: No \n*Type*: [EbsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsConfiguration" + }, + "InstanceType": { + "markdownDescription": "An EC2 instance type, such as `m3.xlarge`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", + "type": "string" + }, + "WeightedCapacity": { + "markdownDescription": "The number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in `InstanceFleetConfig`\\. This value is 1 for a master instance fleet, and must be 1 or greater for core and task instance fleets\\. Defaults to 1 if not specified\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WeightedCapacity", + "type": "number" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "AWS::EMR::Cluster.JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of additional Amazon EC2 security group IDs for the master node\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AdditionalMasterSecurityGroups", + "type": "array" + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of additional Amazon EC2 security group IDs for the core and task nodes\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AdditionalSlaveSecurityGroups", + "type": "array" + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig", + "markdownDescription": "Describes the EC2 instances and instance configurations for the core instance fleet when using clusters with the instance fleet configuration\\. \n*Required*: No \n*Type*: [InstanceFleetConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CoreInstanceFleet" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig", + "markdownDescription": "Describes the EC2 instances and instance configurations for core instance groups when using clusters with the uniform instance group configuration\\. \n*Required*: No \n*Type*: [InstanceGroupConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CoreInstanceGroup" + }, + "Ec2KeyName": { + "markdownDescription": "The name of the EC2 key pair that can be used to connect to the master node using SSH as the user called \"hadoop\\.\" \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ec2KeyName", + "type": "string" + }, + "Ec2SubnetId": { + "markdownDescription": "Applies to clusters that use the uniform instance group configuration\\. To launch the cluster in Amazon Virtual Private Cloud \\(Amazon VPC\\), set this parameter to the identifier of the Amazon VPC subnet where you want the cluster to launch\\. If you do not specify this value and your account supports EC2\\-Classic, the cluster launches in EC2\\-Classic\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ec2SubnetId", + "type": "string" + }, + "Ec2SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "Applies to clusters that use the instance fleet configuration\\. When multiple EC2 subnet IDs are specified, Amazon EMR evaluates them and launches instances in the optimal subnet\\. \nThe instance fleet configuration is available only in Amazon EMR versions 4\\.8\\.0 and later, excluding 5\\.0\\.x versions\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ec2SubnetIds", + "type": "array" + }, + "EmrManagedMasterSecurityGroup": { + "markdownDescription": "The identifier of the Amazon EC2 security group for the master node\\. If you specify `EmrManagedMasterSecurityGroup`, you must also specify `EmrManagedSlaveSecurityGroup`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EmrManagedMasterSecurityGroup", + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "markdownDescription": "The identifier of the Amazon EC2 security group for the core and task nodes\\. If you specify `EmrManagedSlaveSecurityGroup`, you must also specify `EmrManagedMasterSecurityGroup`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EmrManagedSlaveSecurityGroup", + "type": "string" + }, + "HadoopVersion": { + "markdownDescription": "Applies only to Amazon EMR release versions earlier than 4\\.0\\. The Hadoop version for the cluster\\. Valid inputs are \"0\\.18\" \\(no longer maintained\\), \"0\\.20\" \\(no longer maintained\\), \"0\\.20\\.205\" \\(no longer maintained\\), \"1\\.0\\.3\", \"2\\.2\\.0\", or \"2\\.4\\.0\"\\. If you do not set this value, the default of 0\\.18 is used, unless the `AmiVersion` parameter is set in the RunJobFlow call, in which case the default version of Hadoop for that AMI version is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HadoopVersion", + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "markdownDescription": "Specifies whether the cluster should remain available after completing all steps\\. Defaults to `true`\\. For more information about configuring cluster termination, see [Control Cluster Termination](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html) in the *EMR Management Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeepJobFlowAliveWhenNoSteps", + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig", + "markdownDescription": "Describes the EC2 instances and instance configurations for the master instance fleet when using clusters with the instance fleet configuration\\. \n*Required*: No \n*Type*: [InstanceFleetConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MasterInstanceFleet" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig", + "markdownDescription": "Describes the EC2 instances and instance configurations for the master instance group when using clusters with the uniform instance group configuration\\. \n*Required*: No \n*Type*: [InstanceGroupConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MasterInstanceGroup" + }, + "Placement": { + "$ref": "#/definitions/AWS::EMR::Cluster.PlacementType", + "markdownDescription": "The Availability Zone in which the cluster runs\\. \n*Required*: No \n*Type*: [PlacementType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-placementtype.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Placement" + }, + "ServiceAccessSecurityGroup": { + "markdownDescription": "The identifier of the Amazon EC2 security group for the Amazon EMR service to access clusters in VPC private subnets\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceAccessSecurityGroup", + "type": "string" + }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + }, + "type": "array" + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + }, + "type": "array" + }, + "TerminationProtected": { + "markdownDescription": "Specifies whether to lock the cluster to prevent the Amazon EC2 instances from being terminated by API call, user intervention, or in the event of a job\\-flow error\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TerminationProtected", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "markdownDescription": "The Active Directory password for `ADDomainJoinUser`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ADDomainJoinPassword", + "type": "string" + }, + "ADDomainJoinUser": { + "markdownDescription": "Required only when establishing a cross\\-realm trust with an Active Directory domain\\. A user with sufficient privileges to join resources to the domain\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ADDomainJoinUser", + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "markdownDescription": "Required only when establishing a cross\\-realm trust with a KDC in a different realm\\. The cross\\-realm principal password, which must be identical across realms\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CrossRealmTrustPrincipalPassword", + "type": "string" + }, + "KdcAdminPassword": { + "markdownDescription": "The password used within the cluster for the kadmin service on the cluster\\-dedicated KDC, which maintains Kerberos principals, password policies, and keytabs for the cluster\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KdcAdminPassword", + "type": "string" + }, + "Realm": { + "markdownDescription": "The name of the Kerberos realm to which all nodes in a cluster belong\\. For example, `EC2.INTERNAL`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Realm", + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "AWS::EMR::Cluster.KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The unique identifier of a key\\-value pair\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The value part of the identified key\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/AWS::EMR::Cluster.ComputeLimits", + "markdownDescription": "The EC2 unit limits for a managed scaling policy\\. The managed scaling activity of a cluster is not allowed to go above or below these limits\\. The limit only applies to the core and task nodes\\. The master node cannot be scaled after initial configuration\\. \n*Required*: No \n*Type*: [ComputeLimits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-computelimits.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputeLimits" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The dimension name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The dimension value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EMR::Cluster.OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "markdownDescription": "Specifies the strategy to use in launching On\\-Demand instance fleets\\. Currently, the only option is `lowest-price` \\(the default\\), which launches the lowest price first\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `lowest-price` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocationStrategy", + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, + "AWS::EMR::Cluster.PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "markdownDescription": "The Amazon EC2 Availability Zone for the cluster\\. `AvailabilityZone` is used for uniform instance groups, while `AvailabilityZones` \\(plural\\) is used for instance fleets\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "markdownDescription": "Not available for instance groups\\. Instance groups use the market type specified for the group\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ON_DEMAND | SPOT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Market", + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::EMR::Cluster.SimpleScalingPolicyConfiguration", + "markdownDescription": "The type of adjustment the automatic scaling activity makes when triggered, and the periodicity of the adjustment\\. \n*Required*: Yes \n*Type*: [SimpleScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-simplescalingpolicyconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "markdownDescription": "The upper boundary of EC2 instances in an instance group beyond which scaling activities are not allowed to grow\\. Scale\\-out activities will not add instances beyond this boundary\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacity", + "type": "number" + }, + "MinCapacity": { + "markdownDescription": "The lower boundary of EC2 instances in an instance group below which scaling activities are not allowed to shrink\\. Scale\\-in activities will not terminate instances below this boundary\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinCapacity", + "type": "number" + } + }, + "required": [ + "MaxCapacity", + "MinCapacity" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingAction", + "markdownDescription": "The conditions that trigger an automatic scaling activity\\. \n*Required*: Yes \n*Type*: [ScalingAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" + }, + "Description": { + "markdownDescription": "A friendly, more verbose description of the automatic scaling rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name used to identify an automatic scaling rule\\. Rule names must be unique within a scaling policy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingTrigger", + "markdownDescription": "The CloudWatch alarm definition that determines when automatic scaling activity is triggered\\. \n*Required*: Yes \n*Type*: [ScalingTrigger](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingtrigger.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Trigger" + } + }, + "required": [ + "Action", + "Name", + "Trigger" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/AWS::EMR::Cluster.CloudWatchAlarmDefinition", + "markdownDescription": "The definition of a CloudWatch metric alarm\\. When the defined alarm conditions are met along with other trigger parameters, scaling activity begins\\. \n*Required*: Yes \n*Type*: [CloudWatchAlarmDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of command line arguments to pass to the bootstrap action script\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Args", + "type": "array" + }, + "Path": { + "markdownDescription": "Location in Amazon S3 of the script to run during a bootstrap action\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "AWS::EMR::Cluster.SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "markdownDescription": "The way in which EC2 instances are added \\(if `ScalingAdjustment` is a positive number\\) or terminated \\(if `ScalingAdjustment` is a negative number\\) each time the scaling activity is triggered\\. `CHANGE_IN_CAPACITY` is the default\\. `CHANGE_IN_CAPACITY` indicates that the EC2 instance count increments or decrements by `ScalingAdjustment`, which should be expressed as an integer\\. `PERCENT_CHANGE_IN_CAPACITY` indicates the instance count increments or decrements by the percentage specified by `ScalingAdjustment`, which should be expressed as an integer\\. For example, 20 indicates an increase in 20% increments of cluster capacity\\. `EXACT_CAPACITY` indicates the scaling activity results in an instance group with the number of EC2 instances specified by `ScalingAdjustment`, which should be expressed as a positive integer\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CHANGE_IN_CAPACITY | EXACT_CAPACITY | PERCENT_CHANGE_IN_CAPACITY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdjustmentType", + "type": "string" + }, + "CoolDown": { + "markdownDescription": "The amount of time, in seconds, after a scaling activity completes before any further trigger\\-related scaling activities can start\\. The default value is 0\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CoolDown", + "type": "number" + }, + "ScalingAdjustment": { + "markdownDescription": "The amount by which to scale in or scale out, based on the specified `AdjustmentType`\\. A positive value adds to the instance group's EC2 instance count while a negative number removes instances\\. If `AdjustmentType` is set to `EXACT_CAPACITY`, the number should only be a positive integer\\. If `AdjustmentType` is set to `PERCENT_CHANGE_IN_CAPACITY`, the value should express the percentage as an integer\\. For example, \\-20 indicates a decrease in 20% increments of cluster capacity\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalingAdjustment", + "type": "number" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "AWS::EMR::Cluster.SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "markdownDescription": "Specifies the strategy to use in launching Spot Instance fleets\\. Currently, the only option is capacity\\-optimized \\(the default\\), which launches instances from Spot Instance pools with optimal capacity for the number of instances that are launching\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `capacity-optimized` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocationStrategy", + "type": "string" + }, + "BlockDurationMinutes": { + "markdownDescription": "The defined duration for Spot Instances \\(also known as Spot blocks\\) in minutes\\. When specified, the Spot Instance does not terminate before the defined duration expires, and defined duration pricing for Spot Instances applies\\. Valid values are 60, 120, 180, 240, 300, or 360\\. The duration period starts as soon as a Spot Instance receives its instance ID\\. At the end of the duration, Amazon EC2 marks the Spot Instance for termination and provides a Spot Instance termination notice, which gives the instance a two\\-minute warning before it terminates\\. \nSpot Instances with a defined duration \\(also known as Spot blocks\\) are no longer available to new customers from July 1, 2021\\. For customers who have previously used the feature, we will continue to support Spot Instances with a defined duration until December 31, 2022\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockDurationMinutes", + "type": "number" + }, + "TimeoutAction": { + "markdownDescription": "The action to take when `TargetSpotCapacity` has not been fulfilled when the `TimeoutDurationMinutes` has expired; that is, when all Spot Instances could not be provisioned within the Spot provisioning timeout\\. Valid values are `TERMINATE_CLUSTER` and `SWITCH_TO_ON_DEMAND`\\. SWITCH\\_TO\\_ON\\_DEMAND specifies that if no Spot Instances are available, On\\-Demand Instances should be provisioned to fulfill any remaining Spot capacity\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SWITCH_TO_ON_DEMAND | TERMINATE_CLUSTER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutAction", + "type": "string" + }, + "TimeoutDurationMinutes": { + "markdownDescription": "The spot provisioning timeout period in minutes\\. If Spot Instances are not provisioned within this time period, the `TimeOutAction` is taken\\. Minimum value is 5 and maximum value is 1440\\. The timeout applies only during initial provisioning, when the cluster is first created\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutDurationMinutes", + "type": "number" + } + }, + "required": [ + "TimeoutAction", + "TimeoutDurationMinutes" + ], + "type": "object" + }, + "AWS::EMR::Cluster.StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "markdownDescription": "The action to take when the cluster step fails\\. Possible values are `CANCEL_AND_WAIT` and `CONTINUE`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionOnFailure", + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/AWS::EMR::Cluster.HadoopJarStepConfig", + "markdownDescription": "The JAR file used for the step\\. \n*Required*: Yes \n*Type*: [HadoopJarStepConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-hadoopjarstepconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HadoopJarStep" + }, + "Name": { + "markdownDescription": "The name of the step\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "AWS::EMR::Cluster.VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\) that the volume supports\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iops", + "type": "number" + }, + "SizeInGB": { + "markdownDescription": "The volume size, in gibibytes \\(GiB\\)\\. This can be a number from 1 \\- 1024\\. If the volume type is EBS\\-optimized, the minimum value is 10\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SizeInGB", + "type": "number" + }, + "VolumeType": { + "markdownDescription": "The volume type\\. Volume types supported are gp2, io1, and standard\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The unique identifier of the EMR cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterId", + "type": "string" + }, + "InstanceFleetType": { + "markdownDescription": "The node type that the instance fleet hosts\\. \n*Allowed Values*: TASK \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceFleetType", + "type": "string" + }, + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceTypeConfig" + }, + "markdownDescription": "`InstanceTypeConfigs` determine the EC2 instances that Amazon EMR attempts to provision to fulfill On\\-Demand and Spot target capacities\\. \nThe instance fleet configuration is available only in Amazon EMR versions 4\\.8\\.0 and later, excluding 5\\.0\\.x versions\\.\n*Required*: No \n*Type*: List of [InstanceTypeConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancetypeconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceTypeConfigs", + "type": "array" + }, + "LaunchSpecifications": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications", + "markdownDescription": "The launch specification for the instance fleet\\. \n*Required*: No \n*Type*: [InstanceFleetProvisioningSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancefleetprovisioningspecifications.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LaunchSpecifications" + }, + "Name": { + "markdownDescription": "The friendly name of the instance fleet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "TargetOnDemandCapacity": { + "markdownDescription": "The target capacity of On\\-Demand units for the instance fleet, which determines how many On\\-Demand instances to provision\\. When the instance fleet launches, Amazon EMR tries to provision On\\-Demand instances as specified by `InstanceTypeConfig`\\. Each instance configuration has a specified `WeightedCapacity`\\. When an On\\-Demand instance is provisioned, the `WeightedCapacity` units count toward the target capacity\\. Amazon EMR provisions instances until the target capacity is totally fulfilled, even if this results in an overage\\. For example, if there are 2 units remaining to fulfill capacity, and Amazon EMR can only provision an instance with a `WeightedCapacity` of 5 units, the instance is provisioned, and the target capacity is exceeded by 3 units\\. \nIf not specified or set to 0, only Spot instances are provisioned for the instance fleet using `TargetSpotCapacity`\\. At least one of `TargetSpotCapacity` and `TargetOnDemandCapacity` should be greater than 0\\. For a master instance fleet, only one of `TargetSpotCapacity` and `TargetOnDemandCapacity` can be specified, and its value must be 1\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetOnDemandCapacity", + "type": "number" + }, + "TargetSpotCapacity": { + "markdownDescription": "The target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision\\. When the instance fleet launches, Amazon EMR tries to provision Spot instances as specified by `InstanceTypeConfig`\\. Each instance configuration has a specified `WeightedCapacity`\\. When a Spot instance is provisioned, the `WeightedCapacity` units count toward the target capacity\\. Amazon EMR provisions instances until the target capacity is totally fulfilled, even if this results in an overage\\. For example, if there are 2 units remaining to fulfill capacity, and Amazon EMR can only provision an instance with a `WeightedCapacity` of 5 units, the instance is provisioned, and the target capacity is exceeded by 3 units\\. \nIf not specified or set to 0, only On\\-Demand instances are provisioned for the instance fleet\\. At least one of `TargetSpotCapacity` and `TargetOnDemandCapacity` should be greater than 0\\. For a master instance fleet, only one of `TargetSpotCapacity` and `TargetOnDemandCapacity` can be specified, and its value must be 1\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The classification within a configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Classification", + "type": "string" + }, + "ConfigurationProperties": { + "additionalProperties": true, + "markdownDescription": "Within a configuration classification, a set of properties that represent the settings that you want to change in the configuration file\\. Duplicates not allowed\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "ConfigurationProperties", + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration" + }, + "markdownDescription": "A list of additional configurations to apply within a configuration object\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-elasticmapreduce-instancefleetconfig-configuration.html#aws-properties-elasticmapreduce-instancefleetconfig-configuration) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Configurations", + "type": "array" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.VolumeSpecification", + "markdownDescription": "EBS volume specifications such as volume type, IOPS, and size \\(GiB\\) that will be requested for the EBS volume attached to an EC2 instance in the cluster\\. \n*Required*: Yes \n*Type*: [VolumeSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-volumespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeSpecification" + }, + "VolumesPerInstance": { + "markdownDescription": "Number of EBS volumes with a specific volume configuration that will be associated with every instance in the instance group \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumesPerInstance", + "type": "number" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig" + }, + "markdownDescription": "An array of Amazon EBS volume specifications attached to a cluster instance\\. \n*Required*: No \n*Type*: List of [EbsBlockDeviceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ebsblockdeviceconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsBlockDeviceConfigs", + "type": "array" + }, + "EbsOptimized": { + "markdownDescription": "Indicates whether an Amazon EBS volume is EBS\\-optimized\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsOptimized", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.OnDemandProvisioningSpecification", + "markdownDescription": "The launch specification for On\\-Demand Instances in the instance fleet, which determines the allocation strategy\\. \nThe instance fleet configuration is available only in Amazon EMR versions 4\\.8\\.0 and later, excluding 5\\.0\\.x versions\\. On\\-Demand Instances allocation strategy is available in Amazon EMR version 5\\.12\\.1 and later\\.\n*Required*: No \n*Type*: [OnDemandProvisioningSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ondemandprovisioningspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnDemandSpecification" + }, + "SpotSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification", + "markdownDescription": "The launch specification for Spot Instances in the fleet, which determines the defined duration, provisioning timeout behavior, and allocation strategy\\. \n*Required*: No \n*Type*: [SpotProvisioningSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-spotprovisioningspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpotSpecification" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "markdownDescription": "The bid price for each EC2 Spot Instance type as defined by `InstanceType`\\. Expressed in USD\\. If neither `BidPrice` nor `BidPriceAsPercentageOfOnDemandPrice` is provided, `BidPriceAsPercentageOfOnDemandPrice` defaults to 100%\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BidPrice", + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "markdownDescription": "The bid price, as a percentage of On\\-Demand price, for each EC2 Spot Instance as defined by `InstanceType`\\. Expressed as a number \\(for example, 20 specifies 20%\\)\\. If neither `BidPrice` nor `BidPriceAsPercentageOfOnDemandPrice` is provided, `BidPriceAsPercentageOfOnDemandPrice` defaults to 100%\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BidPriceAsPercentageOfOnDemandPrice", + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration" + }, + "markdownDescription": "Amazon EMR releases 4\\.x or later\\.\nAn optional configuration specification to be used when provisioning cluster instances, which can include configurations for applications and software bundled with Amazon EMR\\. A configuration consists of a classification, properties, and optional nested configurations\\. A classification refers to an application\\-specific configuration file\\. Properties are the settings you want to change in that file\\. For more information, see [Configuring Applications](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html)\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-configuration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Configurations", + "type": "array" + }, + "CustomAmiId": { + "markdownDescription": "The custom AMI ID to use for the instance type\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomAmiId", + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsConfiguration", + "markdownDescription": "The configuration of Amazon Elastic Block Store \\(Amazon EBS\\) attached to each instance as defined by `InstanceType`\\. \n*Required*: No \n*Type*: [EbsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ebsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsConfiguration" + }, + "InstanceType": { + "markdownDescription": "An EC2 instance type, such as `m3.xlarge`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", + "type": "string" + }, + "WeightedCapacity": { + "markdownDescription": "The number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in `InstanceFleetConfig`\\. This value is 1 for a master instance fleet, and must be 1 or greater for core and task instance fleets\\. Defaults to 1 if not specified\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WeightedCapacity", + "type": "number" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "markdownDescription": "Specifies the strategy to use in launching On\\-Demand instance fleets\\. Currently, the only option is `lowest-price` \\(the default\\), which launches the lowest price first\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `lowest-price` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocationStrategy", + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "markdownDescription": "Specifies the strategy to use in launching Spot Instance fleets\\. Currently, the only option is capacity\\-optimized \\(the default\\), which launches instances from Spot Instance pools with optimal capacity for the number of instances that are launching\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `capacity-optimized` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocationStrategy", + "type": "string" + }, + "BlockDurationMinutes": { + "markdownDescription": "The defined duration for Spot Instances \\(also known as Spot blocks\\) in minutes\\. When specified, the Spot Instance does not terminate before the defined duration expires, and defined duration pricing for Spot Instances applies\\. Valid values are 60, 120, 180, 240, 300, or 360\\. The duration period starts as soon as a Spot Instance receives its instance ID\\. At the end of the duration, Amazon EC2 marks the Spot Instance for termination and provides a Spot Instance termination notice, which gives the instance a two\\-minute warning before it terminates\\. \nSpot Instances with a defined duration \\(also known as Spot blocks\\) are no longer available to new customers from July 1, 2021\\. For customers who have previously used the feature, we will continue to support Spot Instances with a defined duration until December 31, 2022\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockDurationMinutes", + "type": "number" + }, + "TimeoutAction": { + "markdownDescription": "The action to take when `TargetSpotCapacity` has not been fulfilled when the `TimeoutDurationMinutes` has expired; that is, when all Spot Instances could not be provisioned within the Spot provisioning timeout\\. Valid values are `TERMINATE_CLUSTER` and `SWITCH_TO_ON_DEMAND`\\. SWITCH\\_TO\\_ON\\_DEMAND specifies that if no Spot Instances are available, On\\-Demand Instances should be provisioned to fulfill any remaining Spot capacity\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SWITCH_TO_ON_DEMAND | TERMINATE_CLUSTER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutAction", + "type": "string" + }, + "TimeoutDurationMinutes": { + "markdownDescription": "The spot provisioning timeout period in minutes\\. If Spot Instances are not provisioned within this time period, the `TimeOutAction` is taken\\. Minimum value is 5 and maximum value is 1440\\. The timeout applies only during initial provisioning, when the cluster is first created\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutDurationMinutes", + "type": "number" + } + }, + "required": [ + "TimeoutAction", + "TimeoutDurationMinutes" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\) that the volume supports\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Iops", + "type": "number" + }, + "SizeInGB": { + "markdownDescription": "The volume size, in gibibytes \\(GiB\\)\\. This can be a number from 1 \\- 1024\\. If the volume type is EBS\\-optimized, the minimum value is 10\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SizeInGB", + "type": "number" + }, + "VolumeType": { + "markdownDescription": "The volume type\\. Volume types supported are gp2, io1, and standard\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "`AutoScalingPolicy` is a subproperty of `InstanceGroupConfig`\\. `AutoScalingPolicy` defines how an instance group dynamically adds and terminates EC2 instances in response to the value of a CloudWatch metric\\. For more information, see [Using Automatic Scaling in Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html) in the *Amazon EMR Management Guide*\\. \n*Required*: No \n*Type*: [AutoScalingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-autoscalingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoScalingPolicy" + }, + "BidPrice": { + "markdownDescription": "If specified, indicates that the instance group uses Spot Instances\\. This is the maximum price you are willing to pay for Spot Instances\\. Specify `OnDemandPrice` to set the amount equal to the On\\-Demand price, or specify an amount in USD\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BidPrice", + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration" + }, + "markdownDescription": "Amazon EMR releases 4\\.x or later\\.\nThe list of configurations supplied for an EMR cluster instance group\\. You can specify a separate configuration for each instance group \\(master, core, and task\\)\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-configuration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Configurations", + "type": "array" + }, + "CustomAmiId": { + "markdownDescription": "The custom AMI ID to use for the provisioned instance group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomAmiId", + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsConfiguration", + "markdownDescription": "`EbsConfiguration` determines the EBS volumes to attach to EMR cluster instances\\. \n*Required*: No \n*Type*: [EbsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsConfiguration" + }, + "InstanceCount": { + "markdownDescription": "Target number of instances for the instance group\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceCount", + "type": "number" + }, + "InstanceRole": { + "markdownDescription": "The role of the instance group in the cluster\\. \n*Allowed Values*: TASK \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceRole", + "type": "string" + }, + "InstanceType": { + "markdownDescription": "The EC2 instance type for all instances in the instance group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", + "type": "string" + }, + "JobFlowId": { + "markdownDescription": "The ID of an Amazon EMR cluster that you want to associate this instance group with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "JobFlowId", + "type": "string" + }, + "Market": { + "markdownDescription": "Market type of the EC2 instances used to create a cluster node\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ON_DEMAND | SPOT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Market", + "type": "string" + }, + "Name": { + "markdownDescription": "Friendly name given to the instance group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + } + }, + "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", + "markdownDescription": "The upper and lower EC2 instance limits for an automatic scaling policy\\. Automatic scaling activity will not cause an instance group to grow above or below these limits\\. \n*Required*: Yes \n*Type*: [ScalingConstraints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingconstraints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Constraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingRule" + }, + "markdownDescription": "The scale\\-in and scale\\-out rules that comprise the automatic scaling policy\\. \n*Required*: Yes \n*Type*: List of [ScalingRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", + "type": "array" + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "markdownDescription": "Determines how the metric specified by `MetricName` is compared to the value specified by `Threshold`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GREATER_THAN | GREATER_THAN_OR_EQUAL | LESS_THAN | LESS_THAN_OR_EQUAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComparisonOperator", + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.MetricDimension" + }, + "markdownDescription": "A CloudWatch metric dimension\\. \n*Required*: No \n*Type*: List of [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", + "type": "array" + }, + "EvaluationPeriods": { + "markdownDescription": "The number of periods, in five\\-minute increments, during which the alarm condition must exist before the alarm triggers automatic scaling activity\\. The default value is `1`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EvaluationPeriods", + "type": "number" + }, + "MetricName": { + "markdownDescription": "The name of the CloudWatch metric that is watched to determine an alarm condition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", + "type": "string" + }, + "Namespace": { + "markdownDescription": "The namespace for the CloudWatch metric\\. The default is `AWS/ElasticMapReduce`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", + "type": "string" + }, + "Period": { + "markdownDescription": "The period, in seconds, over which the statistic is applied\\. EMR CloudWatch metrics are emitted every five minutes \\(300 seconds\\), so if an EMR CloudWatch metric is specified, specify `300`\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Period", + "type": "number" + }, + "Statistic": { + "markdownDescription": "The statistic to apply to the metric associated with the alarm\\. The default is `AVERAGE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AVERAGE | MAXIMUM | MINIMUM | SAMPLE_COUNT | SUM` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statistic", + "type": "string" + }, + "Threshold": { + "markdownDescription": "The value against which the specified statistic is compared\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Threshold", + "type": "number" + }, + "Unit": { + "markdownDescription": "The unit of measure associated with the CloudWatch metric being watched\\. The value specified for `Unit` must correspond to the units specified in the CloudWatch metric\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BITS | BITS_PER_SECOND | BYTES | BYTES_PER_SECOND | COUNT | COUNT_PER_SECOND | GIGA_BITS | GIGA_BITS_PER_SECOND | GIGA_BYTES | GIGA_BYTES_PER_SECOND | KILO_BITS | KILO_BITS_PER_SECOND | KILO_BYTES | KILO_BYTES_PER_SECOND | MEGA_BITS | MEGA_BITS_PER_SECOND | MEGA_BYTES | MEGA_BYTES_PER_SECOND | MICRO_SECONDS | MILLI_SECONDS | NONE | PERCENT | SECONDS | TERA_BITS | TERA_BITS_PER_SECOND | TERA_BYTES | TERA_BYTES_PER_SECOND` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "MetricName", + "Period", + "Threshold" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "markdownDescription": "The classification within a configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Classification", + "type": "string" + }, + "ConfigurationProperties": { + "additionalProperties": true, + "markdownDescription": "Within a configuration classification, a set of properties that represent the settings that you want to change in the configuration file\\. Duplicates not allowed\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "ConfigurationProperties", + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration" + }, + "markdownDescription": "A list of additional configurations to apply within a configuration object\\. \n*Required*: No \n*Type*: List of [Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-emr-cluster-configuration.html#aws-properties-emr-cluster-configuration) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Configurations", + "type": "array" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.VolumeSpecification", + "markdownDescription": "EBS volume specifications such as volume type, IOPS, and size \\(GiB\\) that will be requested for the EBS volume attached to an EC2 instance in the cluster\\. \n*Required*: Yes \n*Type*: [VolumeSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig-volumespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeSpecification" + }, + "VolumesPerInstance": { + "markdownDescription": "Number of EBS volumes with a specific volume configuration that will be associated with every instance in the instance group \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumesPerInstance", + "type": "number" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig" + }, + "markdownDescription": "An array of Amazon EBS volume specifications attached to a cluster instance\\. \n*Required*: No \n*Type*: List of [EbsBlockDeviceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EbsBlockDeviceConfigs", + "type": "array" + }, + "EbsOptimized": { + "markdownDescription": "Indicates whether an Amazon EBS volume is EBS\\-optimized\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EbsOptimized", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The dimension name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The dimension value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "markdownDescription": "Not available for instance groups\\. Instance groups use the market type specified for the group\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ON_DEMAND | SPOT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Market", + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration", + "markdownDescription": "The type of adjustment the automatic scaling activity makes when triggered, and the periodicity of the adjustment\\. \n*Required*: Yes \n*Type*: [SimpleScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-simplescalingpolicyconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "markdownDescription": "The upper boundary of EC2 instances in an instance group beyond which scaling activities are not allowed to grow\\. Scale\\-out activities will not add instances beyond this boundary\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacity", + "type": "number" + }, + "MinCapacity": { + "markdownDescription": "The lower boundary of EC2 instances in an instance group below which scaling activities are not allowed to shrink\\. Scale\\-in activities will not terminate instances below this boundary\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinCapacity", + "type": "number" + } + }, + "required": [ + "MaxCapacity", + "MinCapacity" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingAction", + "markdownDescription": "The conditions that trigger an automatic scaling activity\\. \n*Required*: Yes \n*Type*: [ScalingAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" + }, + "Description": { + "markdownDescription": "A friendly, more verbose description of the automatic scaling rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name used to identify an automatic scaling rule\\. Rule names must be unique within a scaling policy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingTrigger", + "markdownDescription": "The CloudWatch alarm definition that determines when automatic scaling activity is triggered\\. \n*Required*: Yes \n*Type*: [ScalingTrigger](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingtrigger.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Trigger" + } + }, + "required": [ + "Action", + "Name", + "Trigger" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition", + "markdownDescription": "The definition of a CloudWatch metric alarm\\. When the defined alarm conditions are met along with other trigger parameters, scaling activity begins\\. \n*Required*: Yes \n*Type*: [CloudWatchAlarmDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "markdownDescription": "The way in which EC2 instances are added \\(if `ScalingAdjustment` is a positive number\\) or terminated \\(if `ScalingAdjustment` is a negative number\\) each time the scaling activity is triggered\\. `CHANGE_IN_CAPACITY` is the default\\. `CHANGE_IN_CAPACITY` indicates that the EC2 instance count increments or decrements by `ScalingAdjustment`, which should be expressed as an integer\\. `PERCENT_CHANGE_IN_CAPACITY` indicates the instance count increments or decrements by the percentage specified by `ScalingAdjustment`, which should be expressed as an integer\\. For example, 20 indicates an increase in 20% increments of cluster capacity\\. `EXACT_CAPACITY` indicates the scaling activity results in an instance group with the number of EC2 instances specified by `ScalingAdjustment`, which should be expressed as a positive integer\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CHANGE_IN_CAPACITY | EXACT_CAPACITY | PERCENT_CHANGE_IN_CAPACITY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdjustmentType", + "type": "string" + }, + "CoolDown": { + "markdownDescription": "The amount of time, in seconds, after a scaling activity completes before any further trigger\\-related scaling activities can start\\. The default value is 0\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CoolDown", + "type": "number" + }, + "ScalingAdjustment": { + "markdownDescription": "The amount by which to scale in or scale out, based on the specified `AdjustmentType`\\. A positive value adds to the instance group's EC2 instance count while a negative number removes instances\\. If `AdjustmentType` is set to `EXACT_CAPACITY`, the number should only be a positive integer\\. If `AdjustmentType` is set to `PERCENT_CHANGE_IN_CAPACITY`, the value should express the percentage as an integer\\. For example, \\-20 indicates a decrease in 20% increments of cluster capacity\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalingAdjustment", + "type": "number" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\) that the volume supports\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iops", + "type": "number" + }, + "SizeInGB": { + "markdownDescription": "The volume size, in gibibytes \\(GiB\\)\\. This can be a number from 1 \\- 1024\\. If the volume type is EBS\\-optimized, the minimum value is 10\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SizeInGB", + "type": "number" + }, + "VolumeType": { + "markdownDescription": "The volume type\\. Volume types supported are gp2, io1, and standard\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the security configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "SecurityConfiguration": { + "markdownDescription": "The security configuration details in JSON format\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "This specifies what action to take when the cluster step fails\\. Possible values are `CANCEL_AND_WAIT` and `CONTINUE`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ActionOnFailure", + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/AWS::EMR::Step.HadoopJarStepConfig", + "markdownDescription": "The `HadoopJarStepConfig` property type specifies a job flow step consisting of a JAR file whose main function will be executed\\. The main function submits a job for the cluster to execute as a step on the master node, and then waits for the job to finish or fail before executing subsequent steps\\. \n*Required*: Yes \n*Type*: [HadoopJarStepConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-hadoopjarstepconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HadoopJarStep" + }, + "JobFlowId": { + "markdownDescription": "A string that uniquely identifies the cluster \\(job flow\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "JobFlowId", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the cluster step\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + } + }, + "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" + }, + "markdownDescription": "A list of command line arguments passed to the JAR file's main function when executed\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Args", + "type": "array" + }, + "Jar": { + "markdownDescription": "A path to a JAR file run during the step\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Jar", + "type": "string" + }, + "MainClass": { + "markdownDescription": "The name of the main class in the specified Java file\\. If not specified, the JAR file should specify a Main\\-Class in its manifest file\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MainClass", + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/AWS::EMR::Step.KeyValue" + }, + "markdownDescription": "A list of Java properties that are set when the step runs\\. You can use these properties to pass key value pairs to your main function\\. \n*Required*: No \n*Type*: List of [KeyValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-keyvalue.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StepProperties", + "type": "array" + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "AWS::EMR::Step.KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The unique identifier of a key\\-value pair\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The value part of the identified key\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Specifies whether the Studio authenticates users using AWS SSO or IAM\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `IAM | SSO` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthMode", + "type": "string" + }, + "DefaultS3Location": { + "markdownDescription": "The Amazon S3 location to back up EMR Studio Workspaces and notebook files\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultS3Location", + "type": "string" + }, + "Description": { + "markdownDescription": "A detailed description of the Amazon EMR Studio\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "EngineSecurityGroupId": { + "markdownDescription": "The ID of the Amazon EMR Studio Engine security group\\. The Engine security group allows inbound network traffic from the Workspace security group, and it must be in the same VPC specified by `VpcId`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineSecurityGroupId", + "type": "string" + }, + "IdpAuthUrl": { + "markdownDescription": "Your identity provider's authentication endpoint\\. Amazon EMR Studio redirects federated users to this endpoint for authentication when logging in to a Studio with the Studio URL\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdpAuthUrl", + "type": "string" + }, + "IdpRelayStateParameterName": { + "markdownDescription": "The name of your identity provider's `RelayState` parameter\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdpRelayStateParameterName", + "type": "string" + }, + "Name": { + "markdownDescription": "A descriptive name for the Amazon EMR Studio\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "ServiceRole": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that will be assumed by the Amazon EMR Studio\\. The service role provides a way for Amazon EMR Studio to interoperate with other AWS services\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceRole", + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of subnet IDs to associate with the Amazon EMR Studio\\. A Studio can have a maximum of 5 subnets\\. The subnets must belong to the VPC specified by `VpcId`\\. Studio users can create a Workspace in any of the specified subnets\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "UserRole": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM user role that will be assumed by users and groups logged in to a Studio\\. The permissions attached to this IAM role can be scoped down for each user or group using session policies\\. You only need to specify `UserRole` when you set `AuthMode` to `SSO`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `10280` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserRole", + "type": "string" + }, + "VpcId": { + "markdownDescription": "The ID of the Amazon Virtual Private Cloud \\(Amazon VPC\\) to associate with the Studio\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcId", + "type": "string" + }, + "WorkspaceSecurityGroupId": { + "markdownDescription": "The ID of the Workspace security group associated with the Amazon EMR Studio\\. The Workspace security group allows outbound network traffic to resources in the Engine security group and to the internet\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the user or group\\. For more information, see [UserName](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName) and [DisplayName](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName) in the *AWS SSO Identity Store API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IdentityName", + "type": "string" + }, + "IdentityType": { + "markdownDescription": "Specifies whether the identity to map to the Amazon EMR Studio is a user or a group\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GROUP | USER` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IdentityType", + "type": "string" + }, + "SessionPolicyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the session policy that will be applied to the user or group\\. Session policies refine Studio user permissions without the need to use multiple IAM user roles\\. For more information, see [Create an EMR Studio user role with session policies](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-user-role.html) in the *Amazon EMR Management Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionPolicyArn", + "type": "string" + }, + "StudioId": { + "markdownDescription": "The ID of the Amazon EMR Studio to which the user or group will be mapped\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "The container provider of the virtual cluster\\. \n*Required*: Yes \n*Type*: [ContainerProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-containerprovider.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerProvider" + }, + "Name": { + "markdownDescription": "The name of the virtual cluster\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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", + "markdownDescription": "The information about the EKS cluster\\. \n*Required*: Yes \n*Type*: [EksInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-eksinfo.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EksInfo" + } + }, + "required": [ + "EksInfo" + ], + "type": "object" + }, + "AWS::EMRContainers::VirtualCluster.ContainerProvider": { + "additionalProperties": false, + "properties": { + "Id": { + "markdownDescription": "The ID of the container cluster\\. \n*Minimum*: 1 \n*Maximum*: 100 \n*Pattern*: `^[0-9A-Za-z][A-Za-z0-9\\-_]*` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "string" + }, + "Info": { + "$ref": "#/definitions/AWS::EMRContainers::VirtualCluster.ContainerInfo", + "markdownDescription": "The information about the container cluster\\. \n*Required*: Yes \n*Type*: [ContainerInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-containerinfo.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Info" + }, + "Type": { + "markdownDescription": "The type of the container provider\\. EKS is the only supported type as of now\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EKS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Id", + "Info", + "Type" + ], + "type": "object" + }, + "AWS::EMRContainers::VirtualCluster.EksInfo": { + "additionalProperties": false, + "properties": { + "Namespace": { + "markdownDescription": "The namespaces of the EKS cluster\\. \n*Minimum*: 1 \n*Maximum*: 63 \n*Pattern*: `[a-z0-9]([-a-z0-9]*[a-z0-9])?` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "ImageConfiguration": { + "$ref": "#/definitions/AWS::EMRServerless::Application.ImageConfigurationInput" + }, + "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" + }, + "WorkerTypeSpecifications": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::EMRServerless::Application.WorkerTypeSpecificationInput" + } + }, + "type": "object" + } + }, + "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.ImageConfigurationInput": { + "additionalProperties": false, + "properties": { + "ImageUri": { + "type": "string" + } + }, + "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::EMRServerless::Application.WorkerTypeSpecificationInput": { + "additionalProperties": false, + "properties": { + "ImageConfiguration": { + "$ref": "#/definitions/AWS::EMRServerless::Application.ImageConfigurationInput" + } + }, + "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": { + "markdownDescription": "Specifies whether the nodes in this Memcached cluster are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region\\. \nThis parameter is only supported for Memcached clusters\\. \nIf the `AZMode` and `PreferredAvailabilityZones` are not specified, ElastiCache assumes `single-az` mode\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `cross-az | single-az` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "AZMode", + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "markdownDescription": "If you are running Redis engine version 6\\.0 or later, set this parameter to yes if you want to opt\\-in to the next minor version upgrade campaign\\. This parameter is disabled for previous versions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoMinorVersionUpgrade", + "type": "boolean" + }, + "CacheNodeType": { + "markdownDescription": "The compute and memory capacity of the nodes in the node group \\(shard\\)\\. \nThe following node types are supported by ElastiCache\\. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts\\. Changing the CacheNodeType of a Memcached instance is currently not supported\\. If you need to scale using Memcached, we recommend forcing a replacement update by changing the `LogicalResourceId` of the resource\\. \n+ General purpose:\n + Current generation:", + "title": "CacheNodeType", + "type": "string" + }, + "CacheParameterGroupName": { + "markdownDescription": "The name of the parameter group to associate with this cluster\\. If this argument is omitted, the default parameter group for the specified engine is used\\. You cannot use any parameter group which has `cluster-enabled='yes'` when creating a cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheParameterGroupName", + "type": "string" + }, + "CacheSecurityGroupNames": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of security group names to associate with this cluster\\. \nUse this parameter only when you are creating a cluster outside of an Amazon Virtual Private Cloud \\(Amazon VPC\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheSecurityGroupNames", + "type": "array" + }, + "CacheSubnetGroupName": { + "markdownDescription": "The name of the subnet group to be used for the cluster\\. \nUse this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud \\(Amazon VPC\\)\\. \nIf you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster\\. For more information, see [AWS::ElastiCache::SubnetGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-subnetgroup.html)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CacheSubnetGroupName", + "type": "string" + }, + "ClusterName": { + "markdownDescription": "A name for the cache cluster\\. If you don't specify a name, AWSCloudFormation generates a unique physical ID and uses that ID for the cache cluster\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nThe name must contain 1 to 50 alphanumeric characters or hyphens\\. The name must start with a letter and cannot end with a hyphen or contain two consecutive hyphens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterName", + "type": "string" + }, + "Engine": { + "markdownDescription": "The name of the cache engine to be used for this cluster\\. \nValid values for this parameter are: `memcached` \\| `redis` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Engine", + "type": "string" + }, + "EngineVersion": { + "markdownDescription": "The version number of the cache engine to be used for this cluster\\. To view the supported cache engine versions, use the DescribeCacheEngineVersions operation\\. \n **Important:** You can upgrade to a newer engine version \\(see [Selecting a Cache Engine and Version](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement)\\), but you cannot downgrade to an earlier engine version\\. If you want to use an earlier engine version, you must delete the existing cluster or replication group and create it anew with the earlier engine version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EngineVersion", + "type": "string" + }, + "IpDiscovery": { + "type": "string" + }, + "LogDeliveryConfigurations": { + "items": { + "$ref": "#/definitions/AWS::ElastiCache::CacheCluster.LogDeliveryConfigurationRequest" + }, + "markdownDescription": "Specifies the destination, format and type of the logs\\. \n*Required*: No \n*Type*: List of [LogDeliveryConfigurationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-logdeliveryconfigurationrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogDeliveryConfigurations", + "type": "array" + }, + "NetworkType": { + "type": "string" + }, + "NotificationTopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon Simple Notification Service \\(SNS\\) topic to which notifications are sent\\. \nThe Amazon SNS topic owner must be the same as the cluster owner\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationTopicArn", + "type": "string" + }, + "NumCacheNodes": { + "markdownDescription": "The number of cache nodes that the cache cluster should have\\. \nHowever, if the `PreferredAvailabilityZone` and `PreferredAvailabilityZones `properties were not previously specified and you don't specify any new values, an update requires [ replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "NumCacheNodes", + "type": "number" + }, + "Port": { + "markdownDescription": "The port number on which each of the cache nodes accepts connections\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Port", + "type": "number" + }, + "PreferredAvailabilityZone": { + "markdownDescription": "The EC2 Availability Zone in which the cluster is created\\. \nAll nodes belonging to this cluster are placed in the preferred Availability Zone\\. If you want to create your nodes across multiple Availability Zones, use `PreferredAvailabilityZones`\\. \nDefault: System chosen Availability Zone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "PreferredAvailabilityZone", + "type": "string" + }, + "PreferredAvailabilityZones": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of the Availability Zones in which cache nodes are created\\. The order of the zones in the list is not important\\. \nThis option is only supported on Memcached\\. \nIf you are creating your cluster in an Amazon VPC \\(recommended\\) you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group\\. \nThe number of Availability Zones listed must equal the value of `NumCacheNodes`\\.\nIf you want all the nodes in the same Availability Zone, use `PreferredAvailabilityZone` instead, or repeat the Availability Zone multiple times in the list\\. \nDefault: System chosen Availability Zones\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "PreferredAvailabilityZones", + "type": "array" + }, + "PreferredMaintenanceWindow": { + "markdownDescription": "Specifies the weekly time range during which maintenance on the cluster is performed\\. It is specified as a range in the format ddd:hh24:mi\\-ddd:hh24:mi \\(24H Clock UTC\\)\\. The minimum maintenance window is a 60 minute period\\. Valid values for `ddd` are: \nSpecifies the weekly time range during which maintenance on the cluster is performed\\. It is specified as a range in the format ddd:hh24:mi\\-ddd:hh24:mi \\(24H Clock UTC\\)\\. The minimum maintenance window is a 60 minute period\\. \nValid values for `ddd` are: \n+ `sun` \n+ `mon` \n+ `tue` \n+ `wed` \n+ `thu` \n+ `fri` \n+ `sat` \nExample: `sun:23:00-mon:01:30` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", + "type": "string" + }, + "SnapshotArns": { + "items": { + "type": "string" + }, + "markdownDescription": "A single\\-element string list containing an Amazon Resource Name \\(ARN\\) that uniquely identifies a Redis RDB snapshot file stored in Amazon S3\\. The snapshot file is used to populate the node group \\(shard\\)\\. The Amazon S3 object name in the ARN cannot contain any commas\\. \nThis parameter is only valid if the `Engine` parameter is `redis`\\.\nExample of an Amazon S3 ARN: `arn:aws:s3:::my_bucket/snapshot1.rdb` \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotArns", + "type": "array" + }, + "SnapshotName": { + "markdownDescription": "The name of a Redis snapshot from which to restore data into the new node group \\(shard\\)\\. The snapshot status changes to `restoring` while the new node group \\(shard\\) is being created\\. \nThis parameter is only valid if the `Engine` parameter is `redis`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotName", + "type": "string" + }, + "SnapshotRetentionLimit": { + "markdownDescription": "The number of days for which ElastiCache retains automatic snapshots before deleting them\\. For example, if you set `SnapshotRetentionLimit` to 5, a snapshot taken today is retained for 5 days before being deleted\\. \nThis parameter is only valid if the `Engine` parameter is `redis`\\.\nDefault: 0 \\(i\\.e\\., automatic backups are disabled for this cache cluster\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotRetentionLimit", + "type": "number" + }, + "SnapshotWindow": { + "markdownDescription": "The daily time range \\(in UTC\\) during which ElastiCache begins taking a daily snapshot of your node group \\(shard\\)\\. \nExample: `05:00-09:00` \nIf you do not specify this parameter, ElastiCache automatically chooses an appropriate time range\\. \nThis parameter is only valid if the `Engine` parameter is `redis`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotWindow", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of tags to be added to this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TransitEncryptionEnabled": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more VPC security groups associated with the cluster\\. \nUse this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud \\(Amazon VPC\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSecurityGroupIds", + "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": { + "markdownDescription": "The name of the CloudWatch Logs log group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroup", + "type": "string" + } + }, + "required": [ + "LogGroup" + ], + "type": "object" + }, + "AWS::ElastiCache::CacheCluster.DestinationDetails": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsDetails": { + "$ref": "#/definitions/AWS::ElastiCache::CacheCluster.CloudWatchLogsDestinationDetails", + "markdownDescription": "The configuration details of the CloudWatch Logs destination\\. Note that this field is marked as required but only if CloudWatch Logs was chosen as the destination\\. \n*Required*: No \n*Type*: [CloudWatchLogsDestinationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-cloudwatchlogsdestinationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogsDetails" + }, + "KinesisFirehoseDetails": { + "$ref": "#/definitions/AWS::ElastiCache::CacheCluster.KinesisFirehoseDestinationDetails", + "markdownDescription": "The configuration details of the Kinesis Data Firehose destination\\. Note that this field is marked as required but only if Kinesis Data Firehose was chosen as the destination\\. \n*Required*: No \n*Type*: [KinesisFirehoseDestinationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-kinesisfirehosedestinationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KinesisFirehoseDetails" + } + }, + "type": "object" + }, + "AWS::ElastiCache::CacheCluster.KinesisFirehoseDestinationDetails": { + "additionalProperties": false, + "properties": { + "DeliveryStream": { + "markdownDescription": "The name of the Kinesis Data Firehose delivery stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryStream", + "type": "string" + } + }, + "required": [ + "DeliveryStream" + ], + "type": "object" + }, + "AWS::ElastiCache::CacheCluster.LogDeliveryConfigurationRequest": { + "additionalProperties": false, + "properties": { + "DestinationDetails": { + "$ref": "#/definitions/AWS::ElastiCache::CacheCluster.DestinationDetails", + "markdownDescription": "Configuration details of either a CloudWatch Logs destination or Kinesis Data Firehose destination\\. \n*Required*: Yes \n*Type*: [DestinationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-destinationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationDetails" + }, + "DestinationType": { + "markdownDescription": "Specify either CloudWatch Logs or Kinesis Data Firehose as the destination type\\. Valid values are either `cloudwatch-logs` or `kinesis-firehose`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationType", + "type": "string" + }, + "LogFormat": { + "markdownDescription": "Valid values are either `json` or `text`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogFormat", + "type": "string" + }, + "LogType": { + "markdownDescription": "Valid value is either `slow-log`, which refers to [slow\\-log](https://redis.io/commands/slowlog) or `engine-log`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Specifies whether a read\\-only replica is automatically promoted to read/write primary if the existing primary fails\\. \n `AutomaticFailoverEnabled` must be enabled for Redis \\(cluster mode enabled\\) replication groups\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutomaticFailoverEnabled", + "type": "boolean" + }, + "CacheNodeType": { + "markdownDescription": "The cache node type of the Global datastore \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheNodeType", + "type": "string" + }, + "CacheParameterGroupName": { + "markdownDescription": "The name of the cache parameter group to use with the Global datastore\\. It must be compatible with the major engine version used by the Global datastore\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheParameterGroupName", + "type": "string" + }, + "EngineVersion": { + "markdownDescription": "The Elasticache Redis engine version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EngineVersion", + "type": "string" + }, + "GlobalNodeGroupCount": { + "markdownDescription": "The number of node groups that comprise the Global Datastore\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlobalNodeGroupCount", + "type": "number" + }, + "GlobalReplicationGroupDescription": { + "markdownDescription": "The optional description of the Global datastore \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlobalReplicationGroupDescription", + "type": "string" + }, + "GlobalReplicationGroupIdSuffix": { + "markdownDescription": "The suffix name of a Global Datastore\\. The suffix guarantees uniqueness of the Global Datastore name across multiple regions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlobalReplicationGroupIdSuffix", + "type": "string" + }, + "Members": { + "items": { + "$ref": "#/definitions/AWS::ElastiCache::GlobalReplicationGroup.GlobalReplicationGroupMember" + }, + "markdownDescription": "The replication groups that comprise the Global datastore\\. \n*Required*: Yes \n*Type*: List of [GlobalReplicationGroupMember](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-globalreplicationgroupmember.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Members", + "type": "array" + }, + "RegionalConfigurations": { + "items": { + "$ref": "#/definitions/AWS::ElastiCache::GlobalReplicationGroup.RegionalConfiguration" + }, + "markdownDescription": "The Amazon Regions that comprise the Global Datastore\\. \n*Required*: No \n*Type*: List of [RegionalConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-regionalconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegionalConfigurations", + "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": { + "markdownDescription": "The replication group id of the Global datastore member\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationGroupId", + "type": "string" + }, + "ReplicationGroupRegion": { + "markdownDescription": "The Amazon region of the Global datastore member\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationGroupRegion", + "type": "string" + }, + "Role": { + "markdownDescription": "Indicates the role of the replication group, `PRIMARY` or `SECONDARY`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Role", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElastiCache::GlobalReplicationGroup.RegionalConfiguration": { + "additionalProperties": false, + "properties": { + "ReplicationGroupId": { + "markdownDescription": "The name of the secondary cluster \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationGroupId", + "type": "string" + }, + "ReplicationGroupRegion": { + "markdownDescription": "The Amazon region where the cluster is stored \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationGroupRegion", + "type": "string" + }, + "ReshardingConfigurations": { + "items": { + "$ref": "#/definitions/AWS::ElastiCache::GlobalReplicationGroup.ReshardingConfiguration" + }, + "markdownDescription": "A list of PreferredAvailabilityZones objects that specifies the configuration of a node group in the resharded cluster\\. \n*Required*: No \n*Type*: List of [ReshardingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-reshardingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReshardingConfigurations", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ElastiCache::GlobalReplicationGroup.ReshardingConfiguration": { + "additionalProperties": false, + "properties": { + "NodeGroupId": { + "markdownDescription": "Either the ElastiCache for Redis supplied 4\\-digit id or a user supplied id for the node group these configuration values apply to\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4` \n*Pattern*: `\\d+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NodeGroupId", + "type": "string" + }, + "PreferredAvailabilityZones": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of preferred availability zones for the nodes in this cluster\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredAvailabilityZones", + "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": { + "markdownDescription": "The name of the cache parameter group family that this cache parameter group is compatible with\\. \nValid values are: `memcached1.4` \\| `memcached1.5` \\| `memcached1.6` \\| `redis2.6` \\| `redis2.8` \\| `redis3.2` \\| `redis4.0` \\| `redis5.0` \\| `redis6.x` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CacheParameterGroupFamily", + "type": "string" + }, + "Description": { + "markdownDescription": "The description for this cache parameter group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Properties": { + "additionalProperties": true, + "markdownDescription": "A comma\\-delimited list of parameter name/value pairs\\. For more information, see [ModifyCacheParameterGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheParameterGroup.html) in the *Amazon ElastiCache API Reference Guide*\\. \nFor example:", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Properties", + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A tag that can be added to an ElastiCache parameter group\\. Tags are composed of a Key/Value pair\\. You can use tags to categorize and track all your parameter groups\\. A tag with a null Value is permitted\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "A flag that enables encryption at rest when set to `true`\\. \nYou cannot modify the value of `AtRestEncryptionEnabled` after the replication group is created\\. To enable encryption at rest on a replication group you must set `AtRestEncryptionEnabled` to `true` when you create the replication group\\. \n **Required:** Only available when creating a replication group in an Amazon VPC using redis version `3.2.6` or `4.x` onward\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AtRestEncryptionEnabled", + "type": "boolean" + }, + "AuthToken": { + "markdownDescription": "**Reserved parameter\\.** The password used to access a password protected server\\. \n `AuthToken` can be specified only on replication groups where `TransitEncryptionEnabled` is `true`\\. For more information, see [Authenticating Users with the Redis AUTH Command](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/auth.html)\\. \nFor HIPAA compliance, you must specify `TransitEncryptionEnabled` as `true`, an `AuthToken`, and a `CacheSubnetGroup`\\.\nPassword constraints: \n+ Must be only printable ASCII characters\\.\n+ Must be at least 16 characters and no more than 128 characters in length\\.\n+ Nonalphanumeric characters are restricted to \\(\\!, &, \\#, $, ^, <, >, \\-, \\)\\. \nFor more information, see [AUTH password](http://redis.io/commands/AUTH) at http://redis\\.io/commands/AUTH\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "AuthToken", + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "markdownDescription": "If you are running Redis engine version 6\\.0 or later, set this parameter to yes if you want to opt\\-in to the next minor version upgrade campaign\\. This parameter is disabled for previous versions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoMinorVersionUpgrade", + "type": "boolean" + }, + "AutomaticFailoverEnabled": { + "markdownDescription": "Specifies whether a read\\-only replica is automatically promoted to read/write primary if the existing primary fails\\. \n `AutomaticFailoverEnabled` must be enabled for Redis \\(cluster mode enabled\\) replication groups\\. \nDefault: false \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutomaticFailoverEnabled", + "type": "boolean" + }, + "CacheNodeType": { + "markdownDescription": "The compute and memory capacity of the nodes in the node group \\(shard\\)\\. \nThe following node types are supported by ElastiCache\\. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts\\. \n+ General purpose:\n + Current generation:", + "title": "CacheNodeType", + "type": "string" + }, + "CacheParameterGroupName": { + "markdownDescription": "The name of the parameter group to associate with this replication group\\. If this argument is omitted, the default cache parameter group for the specified engine is used\\. \nIf you are running Redis version 3\\.2\\.4 or later, only one node group \\(shard\\), and want to use a default parameter group, we recommend that you specify the parameter group by name\\. \n+ To create a Redis \\(cluster mode disabled\\) replication group, use `CacheParameterGroupName=default.redis3.2`\\.\n+ To create a Redis \\(cluster mode enabled\\) replication group, use `CacheParameterGroupName=default.redis3.2.cluster.on`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheParameterGroupName", + "type": "string" + }, + "CacheSecurityGroupNames": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of cache security group names to associate with this replication group\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheSecurityGroupNames", + "type": "array" + }, + "CacheSubnetGroupName": { + "markdownDescription": "The name of the cache subnet group to be used for the replication group\\. \nIf you're going to launch your cluster in an Amazon VPC, you need to create a subnet group before you start creating a cluster\\. For more information, see [AWS::ElastiCache::SubnetGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-subnetgroup.html)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CacheSubnetGroupName", + "type": "string" + }, + "DataTieringEnabled": { + "markdownDescription": "Enables data tiering\\. Data tiering is only supported for replication groups using the r6gd node type\\. This parameter must be set to true when using r6gd nodes\\. For more information, see [Data tiering](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/data-tiering.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataTieringEnabled", + "type": "boolean" + }, + "Engine": { + "markdownDescription": "The name of the cache engine to be used for the clusters in this replication group\\. Must be Redis\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Engine", + "type": "string" + }, + "EngineVersion": { + "markdownDescription": "The version number of the cache engine to be used for the clusters in this replication group\\. To view the supported cache engine versions, use the `DescribeCacheEngineVersions` operation\\. \n **Important:** You can upgrade to a newer engine version \\(see [Selecting a Cache Engine and Version](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement)\\) in the *ElastiCache User Guide*, but you cannot downgrade to an earlier engine version\\. If you want to use an earlier engine version, you must delete the existing cluster or replication group and create it anew with the earlier engine version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EngineVersion", + "type": "string" + }, + "GlobalReplicationGroupId": { + "markdownDescription": "The name of the Global datastore \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GlobalReplicationGroupId", + "type": "string" + }, + "IpDiscovery": { + "type": "string" + }, + "KmsKeyId": { + "markdownDescription": "The ID of the KMS key used to encrypt the disk on the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + }, + "LogDeliveryConfigurations": { + "items": { + "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.LogDeliveryConfigurationRequest" + }, + "markdownDescription": "Specifies the destination, format and type of the logs\\. \n*Required*: No \n*Type*: List of [LogDeliveryConfigurationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-logdeliveryconfigurationrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogDeliveryConfigurations", + "type": "array" + }, + "MultiAZEnabled": { + "markdownDescription": "A flag indicating if you have Multi\\-AZ enabled to enhance fault tolerance\\. For more information, see [Minimizing Downtime: Multi\\-AZ](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MultiAZEnabled", + "type": "boolean" + }, + "NetworkType": { + "type": "string" + }, + "NodeGroupConfiguration": { + "items": { + "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration" + }, + "markdownDescription": "`NodeGroupConfiguration ` is a property of the `AWS::ElastiCache::ReplicationGroup` resource that configures an Amazon ElastiCache \\(ElastiCache\\) Redis cluster node group\\. \nIf you set [UseOnlineResharding](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-useonlineresharding) to `true`, you can update `NodeGroupConfiguration` without interruption\\. When `UseOnlineResharding` is set to `false`, or is not specified, updating `NodeGroupConfiguration` results in [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html) of [NodeGroupConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "NodeGroupConfiguration", + "type": "array" + }, + "NotificationTopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon Simple Notification Service \\(SNS\\) topic to which notifications are sent\\. \nThe Amazon SNS topic owner must be the same as the cluster owner\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationTopicArn", + "type": "string" + }, + "NumCacheClusters": { + "markdownDescription": "The number of clusters this replication group initially has\\. \nThis parameter is not used if there is more than one node group \\(shard\\)\\. You should use `ReplicasPerNodeGroup` instead\\. \nIf `AutomaticFailoverEnabled` is `true`, the value of this parameter must be at least 2\\. If `AutomaticFailoverEnabled` is `false` you can omit this parameter \\(it will default to 1\\), or you can explicitly set it to a value between 2 and 6\\. \nThe maximum permitted value for `NumCacheClusters` is 6 \\(1 primary plus 5 replicas\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumCacheClusters", + "type": "number" + }, + "NumNodeGroups": { + "markdownDescription": "An optional parameter that specifies the number of node groups \\(shards\\) for this Redis \\(cluster mode enabled\\) replication group\\. For Redis \\(cluster mode disabled\\) either omit this parameter or set it to 1\\. \nIf you set [UseOnlineResharding](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-useonlineresharding) to `true`, you can update `NumNodeGroups` without interruption\\. When `UseOnlineResharding` is set to `false`, or is not specified, updating `NumNodeGroups` results in [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\. \nDefault: 1 \n*Required*: No \n*Type*: Integer \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "NumNodeGroups", + "type": "number" + }, + "Port": { + "markdownDescription": "The port number on which each member of the replication group accepts connections\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Port", + "type": "number" + }, + "PreferredCacheClusterAZs": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of EC2 Availability Zones in which the replication group's clusters are created\\. The order of the Availability Zones in the list is the order in which clusters are allocated\\. The primary cluster is created in the first AZ in the list\\. \nThis parameter is not used if there is more than one node group \\(shard\\)\\. You should use `NodeGroupConfiguration` instead\\. \nIf you are creating your replication group in an Amazon VPC \\(recommended\\), you can only locate clusters in Availability Zones associated with the subnets in the selected subnet group\\. \nThe number of Availability Zones listed must equal the value of `NumCacheClusters`\\.\nDefault: system chosen Availability Zones\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PreferredCacheClusterAZs", + "type": "array" + }, + "PreferredMaintenanceWindow": { + "markdownDescription": "Specifies the weekly time range during which maintenance on the cluster is performed\\. It is specified as a range in the format ddd:hh24:mi\\-ddd:hh24:mi \\(24H Clock UTC\\)\\. The minimum maintenance window is a 60 minute period\\. \nValid values for `ddd` are: \n+ `sun` \n+ `mon` \n+ `tue` \n+ `wed` \n+ `thu` \n+ `fri` \n+ `sat` \nExample: `sun:23:00-mon:01:30` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", + "type": "string" + }, + "PrimaryClusterId": { + "markdownDescription": "The identifier of the cluster that serves as the primary for this replication group\\. This cluster must already exist and have a status of `available`\\. \nThis parameter is not required if `NumCacheClusters`, `NumNodeGroups`, or `ReplicasPerNodeGroup` is specified\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrimaryClusterId", + "type": "string" + }, + "ReplicasPerNodeGroup": { + "markdownDescription": "An optional parameter that specifies the number of replica nodes in each node group \\(shard\\)\\. Valid values are 0 to 5\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplicasPerNodeGroup", + "type": "number" + }, + "ReplicationGroupDescription": { + "markdownDescription": "A user\\-created description for the replication group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationGroupDescription", + "type": "string" + }, + "ReplicationGroupId": { + "markdownDescription": "The replication group identifier\\. This parameter is stored as a lowercase string\\. \nConstraints: \n+ A name must contain from 1 to 40 alphanumeric characters or hyphens\\.\n+ The first character must be a letter\\.\n+ A name cannot end with a hyphen or contain two consecutive hyphens\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplicationGroupId", + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more Amazon VPC security groups associated with this replication group\\. \nUse this parameter only when you are creating a replication group in an Amazon Virtual Private Cloud \\(Amazon VPC\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SnapshotArns": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of Amazon Resource Names \\(ARN\\) that uniquely identify the Redis RDB snapshot files stored in Amazon S3\\. The snapshot files are used to populate the new replication group\\. The Amazon S3 object name in the ARN cannot contain any commas\\. The new replication group will have the number of node groups \\(console: shards\\) specified by the parameter *NumNodeGroups* or the number of node groups configured by *NodeGroupConfiguration* regardless of the number of ARNs specified here\\. \nExample of an Amazon S3 ARN: `arn:aws:s3:::my_bucket/snapshot1.rdb` \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotArns", + "type": "array" + }, + "SnapshotName": { + "markdownDescription": "The name of a snapshot from which to restore data into the new replication group\\. The snapshot status changes to `restoring` while the new replication group is being created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotName", + "type": "string" + }, + "SnapshotRetentionLimit": { + "markdownDescription": "The number of days for which ElastiCache retains automatic snapshots before deleting them\\. For example, if you set `SnapshotRetentionLimit` to 5, a snapshot that was taken today is retained for 5 days before being deleted\\. \nDefault: 0 \\(i\\.e\\., automatic backups are disabled for this cluster\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotRetentionLimit", + "type": "number" + }, + "SnapshotWindow": { + "markdownDescription": "The daily time range \\(in UTC\\) during which ElastiCache begins taking a daily snapshot of your node group \\(shard\\)\\. \nExample: `05:00-09:00` \nIf you do not specify this parameter, ElastiCache automatically chooses an appropriate time range\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotWindow", + "type": "string" + }, + "SnapshottingClusterId": { + "markdownDescription": "The cluster ID that is used as the daily snapshot source for the replication group\\. This parameter cannot be set for Redis \\(cluster mode enabled\\) replication groups\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshottingClusterId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of tags to be added to this resource\\. Tags are comma\\-separated key,value pairs \\(e\\.g\\. Key=`myKey`, Value=`myKeyValue`\\. You can include multiple tags as shown following: Key=`myKey`, Value=`myKeyValue` Key=`mySecondKey`, Value=`mySecondKeyValue`\\. Tags on replication groups will be replicated to all nodes\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TransitEncryptionEnabled": { + "markdownDescription": "A flag that enables in\\-transit encryption when set to `true`\\. \nYou cannot modify the value of `TransitEncryptionEnabled` after the cluster is created\\. To enable in\\-transit encryption on a cluster you must set `TransitEncryptionEnabled` to `true` when you create a cluster\\. \nThis parameter is valid only if the `Engine` parameter is `redis`, the `EngineVersion` parameter is `3.2.6` or `4.x` onward, and the cluster is being created in an Amazon VPC\\. \nIf you enable in\\-transit encryption, you must also specify a value for `CacheSubnetGroup`\\. \n **Required:** Only available when creating a replication group in an Amazon VPC using redis version `3.2.6` or `4.x` onward\\. \nDefault: `false` \nFor HIPAA compliance, you must specify `TransitEncryptionEnabled` as `true`, an `AuthToken`, and a `CacheSubnetGroup`\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitEncryptionEnabled", + "type": "boolean" + }, + "TransitEncryptionMode": { + "type": "string" + }, + "UserGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of user groups to associate with the replication group\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserGroupIds", + "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": { + "markdownDescription": "The name of the CloudWatch Logs log group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroup", + "type": "string" + } + }, + "required": [ + "LogGroup" + ], + "type": "object" + }, + "AWS::ElastiCache::ReplicationGroup.DestinationDetails": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsDetails": { + "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.CloudWatchLogsDestinationDetails", + "markdownDescription": "The configuration details of the CloudWatch Logs destination\\. Note that this field is marked as required but only if CloudWatch Logs was chosen as the destination\\. \n*Required*: No \n*Type*: [CloudWatchLogsDestinationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-cloudwatchlogsdestinationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogsDetails" + }, + "KinesisFirehoseDetails": { + "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.KinesisFirehoseDestinationDetails", + "markdownDescription": "The configuration details of the Kinesis Data Firehose destination\\. Note that this field is marked as required but only if Kinesis Data Firehose was chosen as the destination\\. \n*Required*: No \n*Type*: [KinesisFirehoseDestinationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-kinesisfirehosedestinationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KinesisFirehoseDetails" + } + }, + "type": "object" + }, + "AWS::ElastiCache::ReplicationGroup.KinesisFirehoseDestinationDetails": { + "additionalProperties": false, + "properties": { + "DeliveryStream": { + "markdownDescription": "The name of the Kinesis Data Firehose delivery stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryStream", + "type": "string" + } + }, + "required": [ + "DeliveryStream" + ], + "type": "object" + }, + "AWS::ElastiCache::ReplicationGroup.LogDeliveryConfigurationRequest": { + "additionalProperties": false, + "properties": { + "DestinationDetails": { + "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.DestinationDetails", + "markdownDescription": "Configuration details of either a CloudWatch Logs destination or Kinesis Data Firehose destination\\. \n*Required*: Yes \n*Type*: [DestinationDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-destinationdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationDetails" + }, + "DestinationType": { + "markdownDescription": "Specify either CloudWatch Logs or Kinesis Data Firehose as the destination type\\. Valid values are either `cloudwatch-logs` or `kinesis-firehose`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationType", + "type": "string" + }, + "LogFormat": { + "markdownDescription": "Valid values are either `json` or `text`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogFormat", + "type": "string" + }, + "LogType": { + "markdownDescription": "Valid value is either `slow-log`, which refers to [slow\\-log](https://redis.io/commands/slowlog) or `engine-log`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogType", + "type": "string" + } + }, + "required": [ + "DestinationDetails", + "DestinationType", + "LogFormat", + "LogType" + ], + "type": "object" + }, + "AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration": { + "additionalProperties": false, + "properties": { + "NodeGroupId": { + "markdownDescription": "Either the ElastiCache for Redis supplied 4\\-digit id or a user supplied id for the node group these configuration values apply to\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4` \n*Pattern*: `\\d+` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "NodeGroupId", + "type": "string" + }, + "PrimaryAvailabilityZone": { + "markdownDescription": "The Availability Zone where the primary node of this node group \\(shard\\) is launched\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrimaryAvailabilityZone", + "type": "string" + }, + "ReplicaAvailabilityZones": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of Availability Zones to be used for the read replicas\\. The number of Availability Zones in this list must match the value of `ReplicaCount` or `ReplicasPerNodeGroup` if not specified\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplicaAvailabilityZones", + "type": "array" + }, + "ReplicaCount": { + "markdownDescription": "The number of read replica nodes in this node group \\(shard\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReplicaCount", + "type": "number" + }, + "Slots": { + "markdownDescription": "A string of comma\\-separated values where the first set of values are the slot numbers \\(zero based\\), and the second set of values are the keyspaces for each slot\\. The following example specifies three slots \\(numbered 0, 1, and 2\\): ` 0,1,2,0-4999,5000-9999,10000-16,383`\\. \n If you don't specify a value, ElastiCache allocates keys equally among each slot\\. \nWhen you use an `UseOnlineResharding` update policy to update the number of node groups without interruption, ElastiCache evenly distributes the keyspaces between the specified number of slots\\. This cannot be updated later\\. Therefore, after updating the number of node groups in this way, you should remove the value specified for the `Slots` property of each `NodeGroupConfiguration` from the stack template, as it no longer reflects the actual values in each node group\\. For more information, see [UseOnlineResharding Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-useonlineresharding)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A description for the cache security group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A tag that can be added to an ElastiCache security group\\. Tags are composed of a Key/Value pair\\. You can use tags to categorize and track all your security groups\\. A tag with a null Value is permitted\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The name of the Cache Security Group to authorize\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheSecurityGroupName", + "type": "string" + }, + "EC2SecurityGroupName": { + "markdownDescription": "Name of the EC2 Security Group to include in the authorization\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EC2SecurityGroupName", + "type": "string" + }, + "EC2SecurityGroupOwnerId": { + "markdownDescription": "Specifies the Amazon Account ID of the owner of the EC2 security group specified in the EC2SecurityGroupName property\\. The Amazon access key ID is not an acceptable value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name for the cache subnet group\\. This value is stored as a lowercase string\\. \nConstraints: Must contain no more than 255 alphanumeric characters or hyphens\\. \nExample: `mysubnetgroup` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CacheSubnetGroupName", + "type": "string" + }, + "Description": { + "markdownDescription": "The description for the cache subnet group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The EC2 subnet IDs for the cache subnet group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A tag that can be added to an ElastiCache subnet group\\. Tags are composed of a Key/Value pair\\. You can use tags to categorize and track all your subnet groups\\. A tag with a null Value is permitted\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "Access permissions string used for this user\\. \n*Required*: No \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessString", + "type": "string" + }, + "AuthenticationMode": { + "$ref": "#/definitions/AWS::ElastiCache::User.AuthenticationMode" + }, + "Engine": { + "markdownDescription": "The current supported value is redis\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-zA-Z]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Engine", + "type": "string" + }, + "NoPasswordRequired": { + "markdownDescription": "Indicates a password is not required for this user\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoPasswordRequired", + "type": "boolean" + }, + "Passwords": { + "items": { + "type": "string" + }, + "markdownDescription": "Passwords used for this user\\. You can create up to two passwords for each user\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Passwords", + "type": "array" + }, + "UserId": { + "markdownDescription": "The ID of the user\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Pattern*: `[a-zA-Z][a-zA-Z0-9\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserId", + "type": "string" + }, + "UserName": { + "markdownDescription": "The username of the user\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The current supported value is redis\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-zA-Z]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Engine", + "type": "string" + }, + "UserGroupId": { + "markdownDescription": "The ID of the user group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserGroupId", + "type": "string" + }, + "UserIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of user IDs that belong to the user group\\. A user named `default` must be included\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserIds", + "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": { + "markdownDescription": "A name for the Elastic Beanstalk application\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the application name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationName", + "type": "string" + }, + "Description": { + "markdownDescription": "Your description of the application\\. \n*Required*: No \n*Type*: String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "ResourceLifecycleConfig": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig", + "markdownDescription": "Specifies an application resource lifecycle configuration to prevent your application from accumulating too many versions\\. \n*Required*: No \n*Type*: [ApplicationResourceLifecycleConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationresourcelifecycleconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceLifecycleConfig" + } + }, + "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": { + "markdownDescription": "The ARN of an IAM service role that Elastic Beanstalk has permission to assume\\. \nThe `ServiceRole` property is required the first time that you provide a `ResourceLifecycleConfig` for the application\\. After you provide it once, Elastic Beanstalk persists the Service Role with the application, and you don't need to specify it again\\. You can, however, specify it in subsequent updates to change the Service Role to another value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceRole", + "type": "string" + }, + "VersionLifecycleConfig": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig", + "markdownDescription": "Defines lifecycle settings for application versions\\. \n*Required*: No \n*Type*: [ApplicationVersionLifecycleConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationversionlifecycleconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VersionLifecycleConfig" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig": { + "additionalProperties": false, + "properties": { + "MaxAgeRule": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxAgeRule", + "markdownDescription": "Specify a max age rule to restrict the length of time that application versions are retained for an application\\. \n*Required*: No \n*Type*: [MaxAgeRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxagerule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxAgeRule" + }, + "MaxCountRule": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxCountRule", + "markdownDescription": "Specify a max count rule to restrict the number of application versions that are retained for an application\\. \n*Required*: No \n*Type*: [MaxCountRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxcountrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCountRule" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.MaxAgeRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "markdownDescription": "Set to `true` to delete a version's source bundle from Amazon S3 when Elastic Beanstalk deletes the application version\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteSourceFromS3", + "type": "boolean" + }, + "Enabled": { + "markdownDescription": "Specify `true` to apply the rule, or `false` to disable it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "MaxAgeInDays": { + "markdownDescription": "Specify the number of days to retain an application versions\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxAgeInDays", + "type": "number" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.MaxCountRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "markdownDescription": "Set to `true` to delete a version's source bundle from Amazon S3 when Elastic Beanstalk deletes the application version\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteSourceFromS3", + "type": "boolean" + }, + "Enabled": { + "markdownDescription": "Specify `true` to apply the rule, or `false` to disable it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "MaxCount": { + "markdownDescription": "Specify the maximum number of application versions to retain\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the Elastic Beanstalk application that is associated with this application version\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationName", + "type": "string" + }, + "Description": { + "markdownDescription": "A description of this application version\\. \n*Required*: No \n*Type*: String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "SourceBundle": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle", + "markdownDescription": "The Amazon S3 bucket and key that identify the location of the source bundle for this version\\. \nThe Amazon S3 bucket must be in the same region as the environment\\.\n*Required*: Yes \n*Type*: [SourceBundle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-sourcebundle.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The Amazon S3 bucket where the data is located\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Bucket", + "type": "string" + }, + "S3Key": { + "markdownDescription": "The Amazon S3 key where the data is located\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the Elastic Beanstalk application to associate with this configuration template\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationName", + "type": "string" + }, + "Description": { + "markdownDescription": "An optional description for this configuration\\. \n*Required*: No \n*Type*: String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "EnvironmentId": { + "markdownDescription": "The ID of an environment whose settings you want to use to create the configuration template\\. You must specify `EnvironmentId` if you don't specify `PlatformArn`, `SolutionStackName`, or `SourceConfiguration`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnvironmentId", + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting" + }, + "markdownDescription": "Option values for the Elastic Beanstalk configuration, such as the instance type\\. If specified, these values override the values obtained from the solution stack or the source configuration template\\. For a complete list of Elastic Beanstalk configuration options, see [Option Values](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html) in the * AWS Elastic Beanstalk Developer Guide*\\. \n*Required*: No \n*Type*: List of [ConfigurationOptionSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OptionSettings", + "type": "array" + }, + "PlatformArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the custom platform\\. For more information, see [ Custom Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html) in the * AWS Elastic Beanstalk Developer Guide*\\. \nIf you specify `PlatformArn`, then don't specify `SolutionStackName`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlatformArn", + "type": "string" + }, + "SolutionStackName": { + "markdownDescription": "The name of an Elastic Beanstalk solution stack \\(platform version\\) that this configuration uses\\. For example, `64bit Amazon Linux 2013.09 running Tomcat 7 Java 7`\\. A solution stack specifies the operating system, runtime, and application server for a configuration template\\. It also determines the set of configuration options as well as the possible and default values\\. For more information, see [Supported Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html) in the * AWS Elastic Beanstalk Developer Guide*\\. \nYou must specify `SolutionStackName` if you don't specify `PlatformArn`, `EnvironmentId`, or `SourceConfiguration`\\. \nUse the [https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ListAvailableSolutionStacks.html](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ListAvailableSolutionStacks.html) API to obtain a list of available solution stacks\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SolutionStackName", + "type": "string" + }, + "SourceConfiguration": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration", + "markdownDescription": "An Elastic Beanstalk configuration template to base this one on\\. If specified, Elastic Beanstalk uses the configuration values from the specified configuration template to create a new configuration\\. \nValues specified in `OptionSettings` override any values obtained from the `SourceConfiguration`\\. \nYou must specify `SourceConfiguration` if you don't specify `PlatformArn`, `EnvironmentId`, or `SolutionStackName`\\. \nConstraint: If both solution stack name and source configuration are specified, the solution stack of the source configuration template must match the specified solution stack name\\. \n*Required*: Conditional \n*Type*: [SourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-sourceconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A unique namespace that identifies the option's associated AWS resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", + "type": "string" + }, + "OptionName": { + "markdownDescription": "The name of the configuration option\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OptionName", + "type": "string" + }, + "ResourceName": { + "markdownDescription": "A unique resource name for the option setting\\. Use it for a time\u2013based scaling configuration option\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceName", + "type": "string" + }, + "Value": { + "markdownDescription": "The current value for the configuration option\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration": { + "additionalProperties": false, + "properties": { + "ApplicationName": { + "markdownDescription": "The name of the application associated with the configuration\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationName", + "type": "string" + }, + "TemplateName": { + "markdownDescription": "The name of the configuration template\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the application that is associated with this environment\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationName", + "type": "string" + }, + "CNAMEPrefix": { + "markdownDescription": "If specified, the environment attempts to use this value as the prefix for the CNAME in your Elastic Beanstalk environment URL\\. If not specified, the CNAME is generated automatically by appending a random alphanumeric string to the environment name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `63` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CNAMEPrefix", + "type": "string" + }, + "Description": { + "markdownDescription": "Your description for this environment\\. \n*Required*: No \n*Type*: String \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "EnvironmentName": { + "markdownDescription": "A unique name for the environment\\. \nConstraint: Must be from 4 to 40 characters in length\\. The name can contain only letters, numbers, and hyphens\\. It can't start or end with a hyphen\\. This name must be unique within a region in your account\\. \nIf you don't specify the `CNAMEPrefix` parameter, the environment name becomes part of the CNAME, and therefore part of the visible URL for your application\\. \nIf you don't specify an environment name, AWS CloudFormation generates a unique physical ID and uses that ID for the environment name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `40` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnvironmentName", + "type": "string" + }, + "OperationsRole": { + "markdownDescription": "The operations role feature of AWS Elastic Beanstalk is in beta release and is subject to change\\.\nThe Amazon Resource Name \\(ARN\\) of an existing IAM role to be used as the environment's operations role\\. If specified, Elastic Beanstalk uses the operations role for permissions to downstream services during this call and during subsequent calls acting on this environment\\. To specify an operations role, you must have the `iam:PassRole` permission for the role\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OperationsRole", + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.OptionSetting" + }, + "markdownDescription": "Key\\-value pairs defining configuration options for this environment, such as the instance type\\. These options override the values that are defined in the solution stack or the [configuration template](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-beanstalk-configurationtemplate.html)\\. If you remove any options during a stack update, the removed options retain their current values\\. \n*Required*: No \n*Type*: List of [OptionSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-environment-optionsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OptionSettings", + "type": "array" + }, + "PlatformArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the custom platform to use with the environment\\. For more information, see [Custom Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html) in the * AWS Elastic Beanstalk Developer Guide*\\. \nIf you specify `PlatformArn`, don't specify `SolutionStackName`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlatformArn", + "type": "string" + }, + "SolutionStackName": { + "markdownDescription": "The name of an Elastic Beanstalk solution stack \\(platform version\\) to use with the environment\\. If specified, Elastic Beanstalk sets the configuration values to the default values associated with the specified solution stack\\. For a list of current solution stacks, see [Elastic Beanstalk Supported Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html) in the * AWS Elastic Beanstalk Platforms* guide\\. \nIf you specify `SolutionStackName`, don't specify `PlatformArn` or `TemplateName`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SolutionStackName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Specifies the tags applied to resources in the environment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TemplateName": { + "markdownDescription": "The name of the Elastic Beanstalk configuration template to use with the environment\\. \nIf you specify `TemplateName`, then don't specify `SolutionStackName`\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateName", + "type": "string" + }, + "Tier": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.Tier", + "markdownDescription": "Specifies the tier to use in creating this environment\\. The environment tier that you choose determines whether Elastic Beanstalk provisions resources to support a web application that handles HTTP\\(S\\) requests or a web application that handles background\\-processing tasks\\. \n*Required*: No \n*Type*: [Tier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-environment-tier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tier" + }, + "VersionLabel": { + "markdownDescription": "The name of the application version to deploy\\. \nDefault: If not specified, Elastic Beanstalk attempts to deploy the sample application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A unique namespace that identifies the option's associated AWS resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", + "type": "string" + }, + "OptionName": { + "markdownDescription": "The name of the configuration option\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OptionName", + "type": "string" + }, + "ResourceName": { + "markdownDescription": "A unique resource name for the option setting\\. Use it for a time\u2013based scaling configuration option\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceName", + "type": "string" + }, + "Value": { + "markdownDescription": "The current value for the configuration option\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::Environment.Tier": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of this environment tier\\. \nValid values: \n+ For *Web server tier* \u2013 `WebServer` \n+ For *Worker tier* \u2013 `Worker` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of this environment tier\\. \nValid values: \n+ For *Web server tier* \u2013 `Standard` \n+ For *Worker tier* \u2013 `SQS/HTTP` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + }, + "Version": { + "markdownDescription": "The version of this environment tier\\. When you don't set a value to it, Elastic Beanstalk uses the latest compatible worker tier version\\. \nThis member is deprecated\\. Any specific version that you set may become out of date\\. We recommend leaving it unspecified\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Information about where and how access logs are stored for the load balancer\\. \n*Required*: No \n*Type*: [AccessLoggingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-accessloggingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessLoggingPolicy" + }, + "AppCookieStickinessPolicy": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy" + }, + "markdownDescription": "Information about a policy for application\\-controlled session stickiness\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-AppCookieStickinessPolicy.html) of [AppCookieStickinessPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-AppCookieStickinessPolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppCookieStickinessPolicy", + "type": "array" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "markdownDescription": "The Availability Zones for the load balancer\\. For load balancers in a VPC, specify `Subnets` instead\\. \nUpdate requires replacement if you did not previously specify an Availability Zone or if you are removing all Availability Zones\\. Otherwise, update requires no interruption\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "AvailabilityZones", + "type": "array" + }, + "ConnectionDrainingPolicy": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy", + "markdownDescription": "If enabled, the load balancer allows existing requests to complete before the load balancer shifts traffic away from a deregistered or unhealthy instance\\. \nFor more information, see [Configure Connection Draining](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-conn-drain.html) in the *Classic Load Balancers Guide*\\. \n*Required*: No \n*Type*: [ConnectionDrainingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectiondrainingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionDrainingPolicy" + }, + "ConnectionSettings": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings", + "markdownDescription": "If enabled, the load balancer allows the connections to remain idle \\(no data is sent over the connection\\) for the specified duration\\. \nBy default, Elastic Load Balancing maintains a 60\\-second idle connection timeout for both front\\-end and back\\-end connections of your load balancer\\. For more information, see [Configure Idle Connection Timeout](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html) in the *Classic Load Balancers Guide*\\. \n*Required*: No \n*Type*: [ConnectionSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectionsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionSettings" + }, + "CrossZone": { + "markdownDescription": "If enabled, the load balancer routes the request traffic evenly across all instances regardless of the Availability Zones\\. \nFor more information, see [Configure Cross\\-Zone Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-crosszone-lb.html) in the *Classic Load Balancers Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CrossZone", + "type": "boolean" + }, + "HealthCheck": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck", + "markdownDescription": "The health check settings to use when evaluating the health of your EC2 instances\\. \nUpdate requires replacement if you did not previously specify health check settings or if you are removing the health check settings\\. Otherwise, update requires no interruption\\. \n*Required*: No \n*Type*: [HealthCheck](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-health-check.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "HealthCheck" + }, + "Instances": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of the instances for the load balancer\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Instances", + "type": "array" + }, + "LBCookieStickinessPolicy": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy" + }, + "markdownDescription": "Information about a policy for duration\\-based session stickiness\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-LBCookieStickinessPolicy.html) of [LBCookieStickinessPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-LBCookieStickinessPolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LBCookieStickinessPolicy", + "type": "array" + }, + "Listeners": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Listeners" + }, + "markdownDescription": "The listeners for the load balancer\\. You can specify at most one listener per port\\. \nIf you update the properties for a listener, AWS CloudFormation deletes the existing listener and creates a new one with the specified properties\\. While the new listener is being created, clients cannot connect to the load balancer\\. \n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html) of [Listeners](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Listeners", + "type": "array" + }, + "LoadBalancerName": { + "markdownDescription": "The name of the load balancer\\. This name must be unique within your set of load balancers for the region\\. \nIf you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates\\. To replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoadBalancerName", + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Policies" + }, + "markdownDescription": "The policies defined for your Classic Load Balancer\\. Specify only back\\-end server policies\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-policy.html) of [Policies](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-policy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policies", + "type": "array" + }, + "Scheme": { + "markdownDescription": "The type of load balancer\\. Valid only for load balancers in a VPC\\. \nIf `Scheme` is `internet-facing`, the load balancer has a public DNS name that resolves to a public IP address\\. \nIf `Scheme` is `internal`, the load balancer has a public DNS name that resolves to a private IP address\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Scheme", + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "The security groups for the load balancer\\. Valid only for load balancers in a VPC\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroups", + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of the subnets for the load balancer\\. You can specify at most one subnet per Availability Zone\\. \nUpdate requires replacement if you did not previously specify a subnet or if you are removing all subnets\\. Otherwise, update requires no interruption\\. To update to a different subnet in the current Availability Zone, you must first update to a subnet in a different Availability Zone, then update to the new subnet in the original Availability Zone\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Subnets", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags associated with a load balancer\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The interval for publishing the access logs\\. You can specify an interval of either 5 minutes or 60 minutes\\. \nDefault: 60 minutes \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmitInterval", + "type": "number" + }, + "Enabled": { + "markdownDescription": "Specifies whether access logs are enabled for the load balancer\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "S3BucketName": { + "markdownDescription": "The name of the Amazon S3 bucket where the access logs are stored\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketName", + "type": "string" + }, + "S3BucketPrefix": { + "markdownDescription": "The logical hierarchy you created for your Amazon S3 bucket, for example `my-bucket-prefix/prod`\\. If the prefix is not provided, the log is placed at the root level of the bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketPrefix", + "type": "string" + } + }, + "required": [ + "Enabled", + "S3BucketName" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy": { + "additionalProperties": false, + "properties": { + "CookieName": { + "markdownDescription": "The name of the application cookie used for stickiness\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CookieName", + "type": "string" + }, + "PolicyName": { + "markdownDescription": "The mnemonic name for the policy being created\\. The name must be unique within a set of policies for this load balancer\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyName", + "type": "string" + } + }, + "required": [ + "CookieName", + "PolicyName" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Specifies whether connection draining is enabled for the load balancer\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "Timeout": { + "markdownDescription": "The maximum time, in seconds, to keep the existing connections open before deregistering the instances\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout", + "type": "number" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "markdownDescription": "The time, in seconds, that the connection is allowed to be idle \\(no data has been sent over the connection\\) before it is closed by the load balancer\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `3600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdleTimeout", + "type": "number" + } + }, + "required": [ + "IdleTimeout" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck": { + "additionalProperties": false, + "properties": { + "HealthyThreshold": { + "markdownDescription": "The number of consecutive health checks successes required before moving the instance to the `Healthy` state\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthyThreshold", + "type": "string" + }, + "Interval": { + "markdownDescription": "The approximate interval, in seconds, between health checks of an individual instance\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `5` \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Interval", + "type": "string" + }, + "Target": { + "markdownDescription": "The instance being checked\\. The protocol is either TCP, HTTP, HTTPS, or SSL\\. The range of valid ports is one \\(1\\) through 65535\\. \nTCP is the default, specified as a TCP: port pair, for example \"TCP:5000\"\\. In this case, a health check simply attempts to open a TCP connection to the instance on the specified port\\. Failure to connect within the configured timeout is considered unhealthy\\. \nSSL is also specified as SSL: port pair, for example, SSL:5000\\. \nFor HTTP/HTTPS, you must include a ping path in the string\\. HTTP is specified as a HTTP:port;/;PathToPing; grouping, for example \"HTTP:80/weather/us/wa/seattle\"\\. In this case, a HTTP GET request is issued to the instance on the given port and path\\. Any answer other than \"200 OK\" within the timeout period is considered unhealthy\\. \nThe total length of the HTTP ping target must be 1024 16\\-bit Unicode characters or less\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target", + "type": "string" + }, + "Timeout": { + "markdownDescription": "The amount of time, in seconds, during which no response means a failed health check\\. \nThis value must be less than the `Interval` value\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `60` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout", + "type": "string" + }, + "UnhealthyThreshold": { + "markdownDescription": "The number of consecutive health check failures required before moving the instance to the `Unhealthy` state\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnhealthyThreshold", + "type": "string" + } + }, + "required": [ + "HealthyThreshold", + "Interval", + "Target", + "Timeout", + "UnhealthyThreshold" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy": { + "additionalProperties": false, + "properties": { + "CookieExpirationPeriod": { + "markdownDescription": "The time period, in seconds, after which the cookie should be considered stale\\. If this parameter is not specified, the stickiness session lasts for the duration of the browser session\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CookieExpirationPeriod", + "type": "string" + }, + "PolicyName": { + "markdownDescription": "The name of the policy\\. This name must be unique within the set of policies for this load balancer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.Listeners": { + "additionalProperties": false, + "properties": { + "InstancePort": { + "markdownDescription": "The port on which the instance is listening\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "InstancePort", + "type": "string" + }, + "InstanceProtocol": { + "markdownDescription": "The protocol to use for routing traffic to instances: HTTP, HTTPS, TCP, or SSL\\. \nIf the front\\-end protocol is TCP or SSL, the back\\-end protocol must be TCP or SSL\\. If the front\\-end protocol is HTTP or HTTPS, the back\\-end protocol must be HTTP or HTTPS\\. \nIf there is another listener with the same `InstancePort` whose `InstanceProtocol` is secure, \\(HTTPS or SSL\\), the listener's `InstanceProtocol` must also be secure\\. \nIf there is another listener with the same `InstancePort` whose `InstanceProtocol` is HTTP or TCP, the listener's `InstanceProtocol` must be HTTP or TCP\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "InstanceProtocol", + "type": "string" + }, + "LoadBalancerPort": { + "markdownDescription": "The port on which the load balancer is listening\\. On EC2\\-VPC, you can specify any port from the range 1\\-65535\\. On EC2\\-Classic, you can specify any port from the following list: 25, 80, 443, 465, 587, 1024\\-65535\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "LoadBalancerPort", + "type": "string" + }, + "PolicyNames": { + "items": { + "type": "string" + }, + "markdownDescription": "The names of the policies to associate with the listener\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "PolicyNames", + "type": "array" + }, + "Protocol": { + "markdownDescription": "The load balancer transport protocol to use for routing: HTTP, HTTPS, TCP, or SSL\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Protocol", + "type": "string" + }, + "SSLCertificateId": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the server certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "SSLCertificateId", + "type": "string" + } + }, + "required": [ + "InstancePort", + "LoadBalancerPort", + "Protocol" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.Policies": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "type": "object" + }, + "markdownDescription": "The policy attributes\\. \n*Required*: Yes \n*Type*: List of Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attributes", + "type": "array" + }, + "InstancePorts": { + "items": { + "type": "string" + }, + "markdownDescription": "The instance ports for the policy\\. Required only for some policy types\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstancePorts", + "type": "array" + }, + "LoadBalancerPorts": { + "items": { + "type": "string" + }, + "markdownDescription": "The load balancer ports for the policy\\. Required only for some policy types\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerPorts", + "type": "array" + }, + "PolicyName": { + "markdownDescription": "The name of the policy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyName", + "type": "string" + }, + "PolicyType": { + "markdownDescription": "The name of the policy type\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "\\[TLS listener\\] The name of the Application\\-Layer Protocol Negotiation \\(ALPN\\) policy\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlpnPolicy", + "type": "array" + }, + "Certificates": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Certificate" + }, + "markdownDescription": "The default SSL server certificate for a secure listener\\. You must provide exactly one certificate if the listener protocol is HTTPS or TLS\\. \nTo create a certificate list for a secure listener, use [AWS::ElasticLoadBalancingV2::ListenerCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html)\\. \n*Required*: Conditional \n*Type*: List of [Certificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-certificate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificates", + "type": "array" + }, + "DefaultActions": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Action" + }, + "markdownDescription": "The actions for the default rule\\. You cannot define a condition for a default rule\\. \nTo create additional rules for an Application Load Balancer, use [AWS::ElasticLoadBalancingV2::ListenerRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html)\\. \n*Required*: Yes \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultActions", + "type": "array" + }, + "LoadBalancerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the load balancer\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoadBalancerArn", + "type": "string" + }, + "Port": { + "markdownDescription": "The port on which the load balancer is listening\\. You cannot specify a port for a Gateway Load Balancer\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + }, + "Protocol": { + "markdownDescription": "The protocol for connections from clients to the load balancer\\. For Application Load Balancers, the supported protocols are HTTP and HTTPS\\. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP\\_UDP\\. You can\u2019t specify the UDP or TCP\\_UDP protocol if dual\\-stack mode is enabled\\. You cannot specify a protocol for a Gateway Load Balancer\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GENEVE | HTTP | HTTPS | TCP | TCP_UDP | TLS | UDP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "string" + }, + "SslPolicy": { + "markdownDescription": "\\[HTTPS and TLS listeners\\] The security policy that defines which protocols and ciphers are supported\\. \nFor more information, see [Security policies](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies) in the *Application Load Balancers Guide* and [Security policies](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies) in the *Network Load Balancers Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "\\[HTTPS listeners\\] Information for using Amazon Cognito to authenticate users\\. Specify only when `Type` is `authenticate-cognito`\\. \n*Required*: No \n*Type*: [AuthenticateCognitoConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticatecognitoconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticateCognitoConfig" + }, + "AuthenticateOidcConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig", + "markdownDescription": "\\[HTTPS listeners\\] Information about an identity provider that is compliant with OpenID Connect \\(OIDC\\)\\. Specify only when `Type` is `authenticate-oidc`\\. \n*Required*: No \n*Type*: [AuthenticateOidcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticateoidcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticateOidcConfig" + }, + "FixedResponseConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig", + "markdownDescription": "\\[Application Load Balancer\\] Information for creating an action that returns a custom HTTP response\\. Specify only when `Type` is `fixed-response`\\. \n*Required*: No \n*Type*: [FixedResponseConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-fixedresponseconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FixedResponseConfig" + }, + "ForwardConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.ForwardConfig", + "markdownDescription": "Information for creating an action that distributes requests among one or more target groups\\. For Network Load Balancers, you can specify a single target group\\. Specify only when `Type` is `forward`\\. If you specify both `ForwardConfig` and `TargetGroupArn`, you can specify only one target group using `ForwardConfig` and it must be the same target group specified in `TargetGroupArn`\\. \n*Required*: No \n*Type*: [ForwardConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-forwardconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForwardConfig" + }, + "Order": { + "markdownDescription": "The order for the action\\. This value is required for rules with multiple actions\\. The action with the lowest value for order is performed first\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `50000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Order", + "type": "number" + }, + "RedirectConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.RedirectConfig", + "markdownDescription": "\\[Application Load Balancer\\] Information for creating a redirect action\\. Specify only when `Type` is `redirect`\\. \n*Required*: No \n*Type*: [RedirectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-redirectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedirectConfig" + }, + "TargetGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the target group\\. Specify only when `Type` is `forward` and you want to route to a single target group\\. To route to one or more target groups, use `ForwardConfig` instead\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroupArn", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of action\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `authenticate-cognito | authenticate-oidc | fixed-response | forward | redirect` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig": { + "additionalProperties": false, + "properties": { + "AuthenticationRequestExtraParams": { + "additionalProperties": true, + "markdownDescription": "The query parameters \\(up to 10\\) to include in the redirect request to the authorization endpoint\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "AuthenticationRequestExtraParams", + "type": "object" + }, + "OnUnauthenticatedRequest": { + "markdownDescription": "The behavior if the user is not authenticated\\. The following are possible values: \n+ deny`` \\- Return an HTTP 401 Unauthorized error\\.\n+ allow`` \\- Allow the request to be forwarded to the target\\.\n+ authenticate`` \\- Redirect the request to the IdP authorization endpoint\\. This is the default value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `allow | authenticate | deny` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnUnauthenticatedRequest", + "type": "string" + }, + "Scope": { + "markdownDescription": "The set of user claims to be requested from the IdP\\. The default is `openid`\\. \nTo verify which scope values your IdP supports and how to separate multiple values, see the documentation for your IdP\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scope", + "type": "string" + }, + "SessionCookieName": { + "markdownDescription": "The name of the cookie used to maintain session information\\. The default is AWSELBAuthSessionCookie\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionCookieName", + "type": "string" + }, + "SessionTimeout": { + "markdownDescription": "The maximum duration of the authentication session, in seconds\\. The default is 604800 seconds \\(7 days\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionTimeout", + "type": "string" + }, + "UserPoolArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon Cognito user pool\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolArn", + "type": "string" + }, + "UserPoolClientId": { + "markdownDescription": "The ID of the Amazon Cognito user pool client\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolClientId", + "type": "string" + }, + "UserPoolDomain": { + "markdownDescription": "The domain prefix or fully\\-qualified domain name of the Amazon Cognito user pool\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolDomain", + "type": "string" + } + }, + "required": [ + "UserPoolArn", + "UserPoolClientId", + "UserPoolDomain" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig": { + "additionalProperties": false, + "properties": { + "AuthenticationRequestExtraParams": { + "additionalProperties": true, + "markdownDescription": "The query parameters \\(up to 10\\) to include in the redirect request to the authorization endpoint\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "AuthenticationRequestExtraParams", + "type": "object" + }, + "AuthorizationEndpoint": { + "markdownDescription": "The authorization endpoint of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationEndpoint", + "type": "string" + }, + "ClientId": { + "markdownDescription": "The OAuth 2\\.0 client identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientId", + "type": "string" + }, + "ClientSecret": { + "markdownDescription": "The OAuth 2\\.0 client secret\\. This parameter is required if you are creating a rule\\. If you are modifying a rule, you can omit this parameter if you set `UseExistingClientSecret` to true\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientSecret", + "type": "string" + }, + "Issuer": { + "markdownDescription": "The OIDC issuer identifier of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Issuer", + "type": "string" + }, + "OnUnauthenticatedRequest": { + "markdownDescription": "The behavior if the user is not authenticated\\. The following are possible values: \n+ deny`` \\- Return an HTTP 401 Unauthorized error\\.\n+ allow`` \\- Allow the request to be forwarded to the target\\.\n+ authenticate`` \\- Redirect the request to the IdP authorization endpoint\\. This is the default value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `allow | authenticate | deny` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnUnauthenticatedRequest", + "type": "string" + }, + "Scope": { + "markdownDescription": "The set of user claims to be requested from the IdP\\. The default is `openid`\\. \nTo verify which scope values your IdP supports and how to separate multiple values, see the documentation for your IdP\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scope", + "type": "string" + }, + "SessionCookieName": { + "markdownDescription": "The name of the cookie used to maintain session information\\. The default is AWSELBAuthSessionCookie\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionCookieName", + "type": "string" + }, + "SessionTimeout": { + "markdownDescription": "The maximum duration of the authentication session, in seconds\\. The default is 604800 seconds \\(7 days\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionTimeout", + "type": "string" + }, + "TokenEndpoint": { + "markdownDescription": "The token endpoint of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenEndpoint", + "type": "string" + }, + "UseExistingClientSecret": { + "type": "boolean" + }, + "UserInfoEndpoint": { + "markdownDescription": "The user info endpoint of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserInfoEndpoint", + "type": "string" + } + }, + "required": [ + "AuthorizationEndpoint", + "ClientId", + "Issuer", + "TokenEndpoint", + "UserInfoEndpoint" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.Certificate": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig": { + "additionalProperties": false, + "properties": { + "ContentType": { + "markdownDescription": "The content type\\. \nValid Values: text/plain \\| text/css \\| text/html \\| application/javascript \\| application/json \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentType", + "type": "string" + }, + "MessageBody": { + "markdownDescription": "The message\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageBody", + "type": "string" + }, + "StatusCode": { + "markdownDescription": "The HTTP response code \\(2XX, 4XX, or 5XX\\)\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^(2|4|5)\\d\\d$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusCode", + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.ForwardConfig": { + "additionalProperties": false, + "properties": { + "TargetGroupStickinessConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.TargetGroupStickinessConfig", + "markdownDescription": "Information about the target group stickiness for a rule\\. \n*Required*: No \n*Type*: [TargetGroupStickinessConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-targetgroupstickinessconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroupStickinessConfig" + }, + "TargetGroups": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.TargetGroupTuple" + }, + "markdownDescription": "Information about how traffic will be distributed between multiple target groups in a forward rule\\. \n*Required*: No \n*Type*: List of [TargetGroupTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-targetgrouptuple.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroups", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.RedirectConfig": { + "additionalProperties": false, + "properties": { + "Host": { + "markdownDescription": "The hostname\\. This component is not percent\\-encoded\\. The hostname can contain \\#\\{host\\}\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", + "type": "string" + }, + "Path": { + "markdownDescription": "The absolute path, starting with the leading \"/\"\\. This component is not percent\\-encoded\\. The path can contain \\#\\{host\\}, \\#\\{path\\}, and \\#\\{port\\}\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", + "type": "string" + }, + "Port": { + "markdownDescription": "The port\\. You can specify a value from 1 to 65535 or \\#\\{port\\}\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "string" + }, + "Protocol": { + "markdownDescription": "The protocol\\. You can specify HTTP, HTTPS, or \\#\\{protocol\\}\\. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS\\. You cannot redirect HTTPS to HTTP\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^(HTTPS?|#\\{protocol\\})$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "string" + }, + "Query": { + "markdownDescription": "The query parameters, URL\\-encoded when necessary, but not percent\\-encoded\\. Do not include the leading \"?\", as it is automatically added\\. You can specify any of the reserved keywords\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Query", + "type": "string" + }, + "StatusCode": { + "markdownDescription": "The HTTP redirect code\\. The redirect is either permanent \\(HTTP 301\\) or temporary \\(HTTP 302\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `HTTP_301 | HTTP_302` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusCode", + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.TargetGroupStickinessConfig": { + "additionalProperties": false, + "properties": { + "DurationSeconds": { + "markdownDescription": "The time period, in seconds, during which requests from a client should be routed to the same target group\\. The range is 1\\-604800 seconds \\(7 days\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DurationSeconds", + "type": "number" + }, + "Enabled": { + "markdownDescription": "Indicates whether target group stickiness is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.TargetGroupTuple": { + "additionalProperties": false, + "properties": { + "TargetGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the target group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroupArn", + "type": "string" + }, + "Weight": { + "markdownDescription": "The weight\\. The range is 0 to 999\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The certificate\\. You can specify one certificate per resource\\. \n*Required*: Yes \n*Type*: List of [Certificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-certificates.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Certificates", + "type": "array" + }, + "ListenerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the listener\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The actions\\. \nThe rule must include exactly one of the following types of actions: `forward`, `fixed-response`, or `redirect`, and it must be the last action to be performed\\. If the rule is for an HTTPS listener, it can also optionally include an authentication action\\. \n*Required*: Yes \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", + "type": "array" + }, + "Conditions": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition" + }, + "markdownDescription": "The conditions\\. \nThe rule can optionally include up to one of each of the following conditions: `http-request-method`, `host-header`, `path-pattern`, and `source-ip`\\. A rule can also optionally include one or more of each of the following conditions: `http-header` and `query-string`\\. \n*Required*: Yes \n*Type*: List of [RuleCondition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-rulecondition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Conditions", + "type": "array" + }, + "ListenerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the listener\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ListenerArn", + "type": "string" + }, + "Priority": { + "markdownDescription": "The rule priority\\. A listener can't have multiple rules with the same priority\\. \nIf you try to reorder rules by updating their priorities, do not specify a new priority if an existing rule already uses this priority, as this can cause an error\\. If you need to reuse a priority with a different rule, you must remove it as a priority first, and then specify it in a subsequent update\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `50000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "\\[HTTPS listeners\\] Information for using Amazon Cognito to authenticate users\\. Specify only when `Type` is `authenticate-cognito`\\. \n*Required*: No \n*Type*: [AuthenticateCognitoConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticatecognitoconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticateCognitoConfig" + }, + "AuthenticateOidcConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig", + "markdownDescription": "\\[HTTPS listeners\\] Information about an identity provider that is compliant with OpenID Connect \\(OIDC\\)\\. Specify only when `Type` is `authenticate-oidc`\\. \n*Required*: No \n*Type*: [AuthenticateOidcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticateoidcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticateOidcConfig" + }, + "FixedResponseConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig", + "markdownDescription": "\\[Application Load Balancer\\] Information for creating an action that returns a custom HTTP response\\. Specify only when `Type` is `fixed-response`\\. \n*Required*: No \n*Type*: [FixedResponseConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-fixedresponseconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FixedResponseConfig" + }, + "ForwardConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.ForwardConfig", + "markdownDescription": "Information for creating an action that distributes requests among one or more target groups\\. For Network Load Balancers, you can specify a single target group\\. Specify only when `Type` is `forward`\\. If you specify both `ForwardConfig` and `TargetGroupArn`, you can specify only one target group using `ForwardConfig` and it must be the same target group specified in `TargetGroupArn`\\. \n*Required*: No \n*Type*: [ForwardConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-forwardconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForwardConfig" + }, + "Order": { + "markdownDescription": "The order for the action\\. This value is required for rules with multiple actions\\. The action with the lowest value for order is performed first\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `50000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Order", + "type": "number" + }, + "RedirectConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig", + "markdownDescription": "\\[Application Load Balancer\\] Information for creating a redirect action\\. Specify only when `Type` is `redirect`\\. \n*Required*: No \n*Type*: [RedirectConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-redirectconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedirectConfig" + }, + "TargetGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the target group\\. Specify only when `Type` is `forward` and you want to route to a single target group\\. To route to one or more target groups, use `ForwardConfig` instead\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroupArn", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of action\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `authenticate-cognito | authenticate-oidc | fixed-response | forward | redirect` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig": { + "additionalProperties": false, + "properties": { + "AuthenticationRequestExtraParams": { + "additionalProperties": true, + "markdownDescription": "The query parameters \\(up to 10\\) to include in the redirect request to the authorization endpoint\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "AuthenticationRequestExtraParams", + "type": "object" + }, + "OnUnauthenticatedRequest": { + "markdownDescription": "The behavior if the user is not authenticated\\. The following are possible values: \n+ deny`` \\- Return an HTTP 401 Unauthorized error\\.\n+ allow`` \\- Allow the request to be forwarded to the target\\.\n+ authenticate`` \\- Redirect the request to the IdP authorization endpoint\\. This is the default value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `allow | authenticate | deny` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnUnauthenticatedRequest", + "type": "string" + }, + "Scope": { + "markdownDescription": "The set of user claims to be requested from the IdP\\. The default is `openid`\\. \nTo verify which scope values your IdP supports and how to separate multiple values, see the documentation for your IdP\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scope", + "type": "string" + }, + "SessionCookieName": { + "markdownDescription": "The name of the cookie used to maintain session information\\. The default is AWSELBAuthSessionCookie\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionCookieName", + "type": "string" + }, + "SessionTimeout": { + "markdownDescription": "The maximum duration of the authentication session, in seconds\\. The default is 604800 seconds \\(7 days\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionTimeout", + "type": "number" + }, + "UserPoolArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon Cognito user pool\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolArn", + "type": "string" + }, + "UserPoolClientId": { + "markdownDescription": "The ID of the Amazon Cognito user pool client\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolClientId", + "type": "string" + }, + "UserPoolDomain": { + "markdownDescription": "The domain prefix or fully\\-qualified domain name of the Amazon Cognito user pool\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolDomain", + "type": "string" + } + }, + "required": [ + "UserPoolArn", + "UserPoolClientId", + "UserPoolDomain" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig": { + "additionalProperties": false, + "properties": { + "AuthenticationRequestExtraParams": { + "additionalProperties": true, + "markdownDescription": "The query parameters \\(up to 10\\) to include in the redirect request to the authorization endpoint\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "AuthenticationRequestExtraParams", + "type": "object" + }, + "AuthorizationEndpoint": { + "markdownDescription": "The authorization endpoint of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationEndpoint", + "type": "string" + }, + "ClientId": { + "markdownDescription": "The OAuth 2\\.0 client identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientId", + "type": "string" + }, + "ClientSecret": { + "markdownDescription": "The OAuth 2\\.0 client secret\\. This parameter is required if you are creating a rule\\. If you are modifying a rule, you can omit this parameter if you set `UseExistingClientSecret` to true\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientSecret", + "type": "string" + }, + "Issuer": { + "markdownDescription": "The OIDC issuer identifier of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Issuer", + "type": "string" + }, + "OnUnauthenticatedRequest": { + "markdownDescription": "The behavior if the user is not authenticated\\. The following are possible values: \n+ deny`` \\- Return an HTTP 401 Unauthorized error\\.\n+ allow`` \\- Allow the request to be forwarded to the target\\.\n+ authenticate`` \\- Redirect the request to the IdP authorization endpoint\\. This is the default value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `allow | authenticate | deny` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnUnauthenticatedRequest", + "type": "string" + }, + "Scope": { + "markdownDescription": "The set of user claims to be requested from the IdP\\. The default is `openid`\\. \nTo verify which scope values your IdP supports and how to separate multiple values, see the documentation for your IdP\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scope", + "type": "string" + }, + "SessionCookieName": { + "markdownDescription": "The name of the cookie used to maintain session information\\. The default is AWSELBAuthSessionCookie\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionCookieName", + "type": "string" + }, + "SessionTimeout": { + "markdownDescription": "The maximum duration of the authentication session, in seconds\\. The default is 604800 seconds \\(7 days\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionTimeout", + "type": "number" + }, + "TokenEndpoint": { + "markdownDescription": "The token endpoint of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenEndpoint", + "type": "string" + }, + "UseExistingClientSecret": { + "markdownDescription": "Indicates whether to use the existing client secret when modifying a rule\\. If you are creating a rule, you can omit this parameter or set it to false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseExistingClientSecret", + "type": "boolean" + }, + "UserInfoEndpoint": { + "markdownDescription": "The user info endpoint of the IdP\\. This must be a full URL, including the HTTPS protocol, the domain, and the path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserInfoEndpoint", + "type": "string" + } + }, + "required": [ + "AuthorizationEndpoint", + "ClientId", + "Issuer", + "TokenEndpoint", + "UserInfoEndpoint" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig": { + "additionalProperties": false, + "properties": { + "ContentType": { + "markdownDescription": "The content type\\. \nValid Values: text/plain \\| text/css \\| text/html \\| application/javascript \\| application/json \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentType", + "type": "string" + }, + "MessageBody": { + "markdownDescription": "The message\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageBody", + "type": "string" + }, + "StatusCode": { + "markdownDescription": "The HTTP response code \\(2XX, 4XX, or 5XX\\)\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^(2|4|5)\\d\\d$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusCode", + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.ForwardConfig": { + "additionalProperties": false, + "properties": { + "TargetGroupStickinessConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.TargetGroupStickinessConfig", + "markdownDescription": "Information about the target group stickiness for a rule\\. \n*Required*: No \n*Type*: [TargetGroupStickinessConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-targetgroupstickinessconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroupStickinessConfig" + }, + "TargetGroups": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.TargetGroupTuple" + }, + "markdownDescription": "Information about how traffic will be distributed between multiple target groups in a forward rule\\. \n*Required*: No \n*Type*: List of [TargetGroupTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-targetgrouptuple.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroups", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.HostHeaderConfig": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more host names\\. The maximum size of each name is 128 characters\\. The comparison is case insensitive\\. The following wildcard characters are supported: \\* \\(matches 0 or more characters\\) and ? \\(matches exactly 1 character\\)\\. \nIf you specify multiple strings, the condition is satisfied if one of the strings matches the host name\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.HttpHeaderConfig": { + "additionalProperties": false, + "properties": { + "HttpHeaderName": { + "markdownDescription": "The name of the HTTP header field\\. The maximum size is 40 characters\\. The header name is case insensitive\\. The allowed characters are specified by RFC 7230\\. Wildcards are not supported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpHeaderName", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more strings to compare against the value of the HTTP header\\. The maximum size of each string is 128 characters\\. The comparison strings are case insensitive\\. The following wildcard characters are supported: \\* \\(matches 0 or more characters\\) and ? \\(matches exactly 1 character\\)\\. \nIf the same header appears multiple times in the request, we search them in order until a match is found\\. \nIf you specify multiple strings, the condition is satisfied if one of the strings matches the value of the HTTP header\\. To require that all of the strings are a match, create one condition per string\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.HttpRequestMethodConfig": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "The name of the request method\\. The maximum size is 40 characters\\. The allowed characters are A\\-Z, hyphen \\(\\-\\), and underscore \\(\\_\\)\\. The comparison is case sensitive\\. Wildcards are not supported; therefore, the method name must be an exact match\\. \nIf you specify multiple strings, the condition is satisfied if one of the strings matches the HTTP request method\\. We recommend that you route GET and HEAD requests in the same way, because the response to a HEAD request may be cached\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.PathPatternConfig": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more path patterns to compare against the request URL\\. The maximum size of each string is 128 characters\\. The comparison is case sensitive\\. The following wildcard characters are supported: \\* \\(matches 0 or more characters\\) and ? \\(matches exactly 1 character\\)\\. \nIf you specify multiple strings, the condition is satisfied if one of them matches the request URL\\. The path pattern is compared only to the path of the URL, not to its query string\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.QueryStringConfig": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.QueryStringKeyValue" + }, + "markdownDescription": "One or more key/value pairs or values to find in the query string\\. The maximum size of each string is 128 characters\\. The comparison is case insensitive\\. The following wildcard characters are supported: \\* \\(matches 0 or more characters\\) and ? \\(matches exactly 1 character\\)\\. To search for a literal '\\*' or '?' character in a query string, you must escape these characters in `Values` using a '\\\\' character\\. \nIf you specify multiple key/value pairs or values, the condition is satisfied if one of them is found in the query string\\. \n*Required*: No \n*Type*: List of [QueryStringKeyValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-querystringkeyvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.QueryStringKeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The key\\. You can omit the key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig": { + "additionalProperties": false, + "properties": { + "Host": { + "markdownDescription": "The hostname\\. This component is not percent\\-encoded\\. The hostname can contain \\#\\{host\\}\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", + "type": "string" + }, + "Path": { + "markdownDescription": "The absolute path, starting with the leading \"/\"\\. This component is not percent\\-encoded\\. The path can contain \\#\\{host\\}, \\#\\{path\\}, and \\#\\{port\\}\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", + "type": "string" + }, + "Port": { + "markdownDescription": "The port\\. You can specify a value from 1 to 65535 or \\#\\{port\\}\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "string" + }, + "Protocol": { + "markdownDescription": "The protocol\\. You can specify HTTP, HTTPS, or \\#\\{protocol\\}\\. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS\\. You cannot redirect HTTPS to HTTP\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^(HTTPS?|#\\{protocol\\})$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "string" + }, + "Query": { + "markdownDescription": "The query parameters, URL\\-encoded when necessary, but not percent\\-encoded\\. Do not include the leading \"?\", as it is automatically added\\. You can specify any of the reserved keywords\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Query", + "type": "string" + }, + "StatusCode": { + "markdownDescription": "The HTTP redirect code\\. The redirect is either permanent \\(HTTP 301\\) or temporary \\(HTTP 302\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `HTTP_301 | HTTP_302` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusCode", + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition": { + "additionalProperties": false, + "properties": { + "Field": { + "markdownDescription": "The field in the HTTP request\\. The following are the possible values: \n+ `http-header` \n+ `http-request-method` \n+ `host-header` \n+ `path-pattern` \n+ `query-string` \n+ `source-ip` \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Field", + "type": "string" + }, + "HostHeaderConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.HostHeaderConfig", + "markdownDescription": "Information for a host header condition\\. Specify only when `Field` is `host-header`\\. \n*Required*: No \n*Type*: [HostHeaderConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-hostheaderconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostHeaderConfig" + }, + "HttpHeaderConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.HttpHeaderConfig", + "markdownDescription": "Information for an HTTP header condition\\. Specify only when `Field` is `http-header`\\. \n*Required*: Conditional \n*Type*: [HttpHeaderConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-httpheaderconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpHeaderConfig" + }, + "HttpRequestMethodConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.HttpRequestMethodConfig", + "markdownDescription": "Information for an HTTP method condition\\. Specify only when `Field` is `http-request-method`\\. \n*Required*: Conditional \n*Type*: [HttpRequestMethodConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-httprequestmethodconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpRequestMethodConfig" + }, + "PathPatternConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.PathPatternConfig", + "markdownDescription": "Information for a path pattern condition\\. Specify only when `Field` is `path-pattern`\\. \n*Required*: No \n*Type*: [PathPatternConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-pathpatternconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PathPatternConfig" + }, + "QueryStringConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.QueryStringConfig", + "markdownDescription": "Information for a query string condition\\. Specify only when `Field` is `query-string`\\. \n*Required*: Conditional \n*Type*: [QueryStringConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-querystringconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryStringConfig" + }, + "SourceIpConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.SourceIpConfig", + "markdownDescription": "Information for a source IP condition\\. Specify only when `Field` is `source-ip`\\. \n*Required*: Conditional \n*Type*: [SourceIpConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-sourceipconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceIpConfig" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "The condition value\\. Specify only when `Field` is `host-header` or `path-pattern`\\. Alternatively, to specify multiple host names or multiple path patterns, use `HostHeaderConfig` or `PathPatternConfig`\\. \nIf `Field` is `host-header` and you're not using `HostHeaderConfig`, you can specify a single host name \\(for example, my\\.example\\.com\\)\\. A host name is case insensitive, can be up to 128 characters in length, and can contain any of the following characters\\. \n+ A\\-Z, a\\-z, 0\\-9\n+ \\- \\.\n+ \\* \\(matches 0 or more characters\\)\n+ ? \\(matches exactly 1 character\\)\nIf `Field` is `path-pattern` and you're not using `PathPatternConfig`, you can specify a single path pattern \\(for example, /img/\\*\\)\\. A path pattern is case\\-sensitive, can be up to 128 characters in length, and can contain any of the following characters\\. \n+ A\\-Z, a\\-z, 0\\-9\n+ \\_ \\- \\. $ / \\~ \" ' @ : \\+\n+ & \\(using &\\)\n+ \\* \\(matches 0 or more characters\\)\n+ ? \\(matches exactly 1 character\\)\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.SourceIpConfig": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more source IP addresses, in CIDR format\\. You can use both IPv4 and IPv6 addresses\\. Wildcards are not supported\\. \nIf you specify multiple addresses, the condition is satisfied if the source IP address of the request matches one of the CIDR blocks\\. This condition is not satisfied by the addresses in the X\\-Forwarded\\-For header\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.TargetGroupStickinessConfig": { + "additionalProperties": false, + "properties": { + "DurationSeconds": { + "markdownDescription": "The time period, in seconds, during which requests from a client should be routed to the same target group\\. The range is 1\\-604800 seconds \\(7 days\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DurationSeconds", + "type": "number" + }, + "Enabled": { + "markdownDescription": "Indicates whether target group stickiness is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.TargetGroupTuple": { + "additionalProperties": false, + "properties": { + "TargetGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the target group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroupArn", + "type": "string" + }, + "Weight": { + "markdownDescription": "The weight\\. The range is 0 to 999\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The IP address type\\. The possible values are `ipv4` \\(for IPv4 addresses\\) and `dualstack` \\(for IPv4 and IPv6 addresses\\)\\. You can\u2019t specify `dualstack` for a load balancer with a UDP or TCP\\_UDP listener\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dualstack | ipv4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IpAddressType", + "type": "string" + }, + "LoadBalancerAttributes": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute" + }, + "markdownDescription": "The load balancer attributes\\. \n*Required*: No \n*Type*: List of [LoadBalancerAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattributes.html) \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBalancerAttributes", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the load balancer\\. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with \"internal\\-\"\\. \nIf you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer\\. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates\\. To replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Scheme": { + "markdownDescription": "The nodes of an Internet\\-facing load balancer have public IP addresses\\. The DNS name of an Internet\\-facing load balancer is publicly resolvable to the public IP addresses of the nodes\\. Therefore, Internet\\-facing load balancers can route requests from clients over the internet\\. \nThe nodes of an internal load balancer have only private IP addresses\\. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes\\. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer\\. \nThe default is an Internet\\-facing load balancer\\. \nYou cannot specify a scheme for a Gateway Load Balancer\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `internal | internet-facing` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Scheme", + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "\\[Application Load Balancers\\] The IDs of the security groups for the load balancer\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroups", + "type": "array" + }, + "SubnetMappings": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping" + }, + "markdownDescription": "The IDs of the public subnets\\. You can specify only one subnet per Availability Zone\\. You must specify either subnets or subnet mappings, but not both\\. \n\\[Application Load Balancers\\] You must specify subnets from at least two Availability Zones\\. You cannot specify Elastic IP addresses for your subnets\\. \n\\[Application Load Balancers on Outposts\\] You must specify one Outpost subnet\\. \n\\[Application Load Balancers on Local Zones\\] You can specify subnets from one or more Local Zones\\. \n\\[Network Load Balancers\\] You can specify subnets from one or more Availability Zones\\. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet\\-facing load balancer\\. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet\\. For internet\\-facing load balancer, you can specify one IPv6 address per subnet\\. \n\\[Gateway Load Balancers\\] You can specify subnets from one or more Availability Zones\\. You cannot specify Elastic IP addresses for your subnets\\. \n*Required*: Conditional \n*Type*: List of [SubnetMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetMappings", + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of the public subnets\\. You can specify only one subnet per Availability Zone\\. You must specify either subnets or subnet mappings, but not both\\. To specify an Elastic IP address, specify subnet mappings instead of subnets\\. \n\\[Application Load Balancers\\] You must specify subnets from at least two Availability Zones\\. \n\\[Application Load Balancers on Outposts\\] You must specify one Outpost subnet\\. \n\\[Application Load Balancers on Local Zones\\] You can specify subnets from one or more Local Zones\\. \n\\[Network Load Balancers\\] You can specify subnets from one or more Availability Zones\\. \n\\[Gateway Load Balancers\\] You can specify subnets from one or more Availability Zones\\. \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subnets", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to assign to the load balancer\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Type": { + "markdownDescription": "The type of load balancer\\. The default is `application`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `application | gateway | network` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the attribute\\. \nThe following attribute is supported by all load balancers: \n+ `deletion_protection.enabled` \\- Indicates whether deletion protection is enabled\\. The value is `true` or `false`\\. The default is `false`\\.\nThe following attributes are supported by both Application Load Balancers and Network Load Balancers: \n+ `access_logs.s3.enabled` \\- Indicates whether access logs are enabled\\. The value is `true` or `false`\\. The default is `false`\\.\n+ `access_logs.s3.bucket` \\- The name of the S3 bucket for the access logs\\. This attribute is required if access logs are enabled\\. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket\\.\n+ `access_logs.s3.prefix` \\- The prefix for the location in the S3 bucket for the access logs\\.\n+ `ipv6.deny_all_igw_traffic` \\- Blocks internet gateway \\(IGW\\) access to the load balancer\\. It is set to `false` for internet\\-facing load balancers and `true` for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway\\.\nThe following attributes are supported by only Application Load Balancers: \n+ `idle_timeout.timeout_seconds` \\- The idle timeout value, in seconds\\. The valid range is 1\\-4000 seconds\\. The default is 60 seconds\\.\n+ `routing.http.desync_mitigation_mode` \\- Determines how the load balancer handles requests that might pose a security risk to your application\\. The possible values are `monitor`, `defensive`, and `strictest`\\. The default is `defensive`\\.\n+ `routing.http.drop_invalid_header_fields.enabled` \\- Indicates whether HTTP headers with invalid header fields are removed by the load balancer \\(`true`\\) or routed to targets \\(`false`\\)\\. The default is `false`\\.\n+ `routing.http.x_amzn_tls_version_and_cipher_suite.enabled` \\- Indicates whether the two headers \\(`x-amzn-tls-version` and `x-amzn-tls-cipher-suite`\\), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target\\. The `x-amzn-tls-version` header has information about the TLS protocol version negotiated with the client, and the `x-amzn-tls-cipher-suite` header has information about the cipher suite negotiated with the client\\. Both headers are in OpenSSL format\\. The possible values for the attribute are `true` and `false`\\. The default is `false`\\.\n+ `routing.http.xff_client_port.enabled` \\- Indicates whether the `X-Forwarded-For` header should preserve the source port that the client used to connect to the load balancer\\. The possible values are `true` and `false`\\. The default is `false`\\.\n+ `routing.http2.enabled` \\- Indicates whether HTTP/2 is enabled\\. The possible values are `true` and `false`\\. The default is `true`\\. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens\\.\n+ `waf.fail_open.enabled` \\- Indicates whether to allow a WAF\\-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF\\. The possible values are `true` and `false`\\. The default is `false`\\.\nThe following attribute is supported by Network Load Balancers and Gateway Load Balancers: \n+ `load_balancing.cross_zone.enabled` \\- Indicates whether cross\\-zone load balancing is enabled\\. The possible values are `true` and `false`\\. The default is `false`\\.\n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^[a-zA-Z0-9._]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of the attribute\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "markdownDescription": "\\[Network Load Balancers\\] The allocation ID of the Elastic IP address for an internet\\-facing load balancer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocationId", + "type": "string" + }, + "IPv6Address": { + "markdownDescription": "\\[Network Load Balancers\\] The IPv6 address\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IPv6Address", + "type": "string" + }, + "PrivateIPv4Address": { + "markdownDescription": "\\[Network Load Balancers\\] The private IPv4 address for an internal load balancer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateIPv4Address", + "type": "string" + }, + "SubnetId": { + "markdownDescription": "The ID of the subnet\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Indicates whether health checks are enabled\\. If the target type is `lambda`, health checks are disabled by default but can be enabled\\. If the target type is `instance`, `ip`, or `alb`, health checks are always enabled and cannot be disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckEnabled", + "type": "boolean" + }, + "HealthCheckIntervalSeconds": { + "markdownDescription": "The approximate amount of time, in seconds, between health checks of an individual target\\. If the target group protocol is HTTP or HTTPS, the default is 30 seconds\\. If the target group protocol is TCP, TLS, UDP, or TCP\\_UDP, the supported values are 10 and 30 seconds and the default is 30 seconds\\. If the target group protocol is GENEVE, the default is 10 seconds\\. If the target type is `lambda`, the default is 35 seconds\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `5` \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckIntervalSeconds", + "type": "number" + }, + "HealthCheckPath": { + "markdownDescription": "\\[HTTP/HTTPS health checks\\] The destination for health checks on the targets\\. \n\\[HTTP1 or HTTP2 protocol version\\] The ping path\\. The default is /\\. \n\\[GRPC protocol version\\] The path of a custom health check method with the format /package\\.service/method\\. The default is /AWS\\.ALB/healthcheck\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckPath", + "type": "string" + }, + "HealthCheckPort": { + "markdownDescription": "The port the load balancer uses when performing health checks on targets\\. If the protocol is HTTP, HTTPS, TCP, TLS, UDP, or TCP\\_UDP, the default is `traffic-port`, which is the port on which each target receives traffic from the load balancer\\. If the protocol is GENEVE, the default is port 80\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckPort", + "type": "string" + }, + "HealthCheckProtocol": { + "markdownDescription": "The protocol the load balancer uses when performing health checks on targets\\. For Application Load Balancers, the default is HTTP\\. For Network Load Balancers and Gateway Load Balancers, the default is TCP\\. The TCP protocol is not supported for health checks if the protocol of the target group is HTTP or HTTPS\\. The GENEVE, TLS, UDP, and TCP\\_UDP protocols are not supported for health checks\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GENEVE | HTTP | HTTPS | TCP | TCP_UDP | TLS | UDP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckProtocol", + "type": "string" + }, + "HealthCheckTimeoutSeconds": { + "markdownDescription": "The amount of time, in seconds, during which no response from a target means a failed health check\\. For target groups with a protocol of HTTP, HTTPS, or GENEVE, the default is 5 seconds\\. For target groups with a protocol of TCP or TLS, this value must be 6 seconds for HTTP health checks and 10 seconds for TCP and HTTPS health checks\\. If the target type is `lambda`, the default is 30 seconds\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `120` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckTimeoutSeconds", + "type": "number" + }, + "HealthyThresholdCount": { + "markdownDescription": "The number of consecutive health checks successes required before considering an unhealthy target healthy\\. For target groups with a protocol of HTTP or HTTPS, the default is 5\\. For target groups with a protocol of TCP, TLS, or GENEVE, the default is 3\\. If the target type is `lambda`, the default is 5\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthyThresholdCount", + "type": "number" + }, + "IpAddressType": { + "markdownDescription": "The type of IP address used for this target group\\. The possible values are `ipv4` and `ipv6`\\. This is an optional parameter\\. If not specified, the IP address type defaults to `ipv4`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ipv4 | ipv6` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IpAddressType", + "type": "string" + }, + "Matcher": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.Matcher", + "markdownDescription": "\\[HTTP/HTTPS health checks\\] The HTTP or gRPC codes to use when checking for a successful response from a target\\. \n*Required*: No \n*Type*: [Matcher](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-matcher.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Matcher" + }, + "Name": { + "markdownDescription": "The name of the target group\\. \nThis name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Port": { + "markdownDescription": "The port on which the targets receive traffic\\. This port is used unless you specify a port override when registering the target\\. If the target is a Lambda function, this parameter does not apply\\. If the protocol is GENEVE, the supported port is 6081\\. \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Port", + "type": "number" + }, + "Protocol": { + "markdownDescription": "The protocol to use for routing traffic to the targets\\. For Application Load Balancers, the supported protocols are HTTP and HTTPS\\. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, or TCP\\_UDP\\. For Gateway Load Balancers, the supported protocol is GENEVE\\. A TCP\\_UDP listener must be associated with a TCP\\_UDP target group\\. If the target is a Lambda function, this parameter does not apply\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `GENEVE | HTTP | HTTPS | TCP | TCP_UDP | TLS | UDP` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Protocol", + "type": "string" + }, + "ProtocolVersion": { + "markdownDescription": "\\[HTTP/HTTPS protocol\\] The protocol version\\. The possible values are `GRPC`, `HTTP1`, and `HTTP2`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProtocolVersion", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TargetGroupAttributes": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute" + }, + "markdownDescription": "The attributes\\. \n*Required*: No \n*Type*: List of [TargetGroupAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetgroupattribute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetGroupAttributes", + "type": "array" + }, + "TargetType": { + "markdownDescription": "The type of target that you must specify when registering targets with this target group\\. You can't specify targets for a target group using more than one target type\\. \n+ `instance` \\- Register targets by instance ID\\. This is the default value\\.\n+ `ip` \\- Register targets by IP address\\. You can specify IP addresses from the subnets of the virtual private cloud \\(VPC\\) for the target group, the RFC 1918 range \\(10\\.0\\.0\\.0/8, 172\\.16\\.0\\.0/12, and 192\\.168\\.0\\.0/16\\), and the RFC 6598 range \\(100\\.64\\.0\\.0/10\\)\\. You can't specify publicly routable IP addresses\\.\n+ `lambda` \\- Register a single Lambda function as a target\\.\n+ `alb` \\- Register a single Application Load Balancer as a target\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `alb | instance | ip | lambda` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetType", + "type": "string" + }, + "Targets": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription" + }, + "markdownDescription": "The targets\\. \n*Required*: No \n*Type*: List of [TargetDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetdescription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Targets", + "type": "array" + }, + "UnhealthyThresholdCount": { + "markdownDescription": "The number of consecutive health check failures required before considering a target unhealthy\\. If the target group protocol is HTTP or HTTPS, the default is 2\\. If the target group protocol is TCP or TLS, this value must be the same as the healthy threshold count\\. If the target group protocol is GENEVE, the default is 3\\. If the target type is `lambda`, the default is 2\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnhealthyThresholdCount", + "type": "number" + }, + "VpcId": { + "markdownDescription": "The identifier of the virtual private cloud \\(VPC\\)\\. If the target is a Lambda function, this parameter does not apply\\. Otherwise, this parameter is required\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "You can specify values between 0 and 99\\. You can specify multiple values \\(for example, \"0,1\"\\) or a range of values \\(for example, \"0\\-5\"\\)\\. The default value is 12\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GrpcCode", + "type": "string" + }, + "HttpCode": { + "markdownDescription": "For Application Load Balancers, you can specify values between 200 and 499, and the default value is 200\\. You can specify multiple values \\(for example, \"200,202\"\\) or a range of values \\(for example, \"200\\-299\"\\)\\. \nFor Network Load Balancers and Gateway Load Balancers, this must be \"200\u2013399\"\\. \nNote that when using shorthand syntax, some values such as commas need to be escaped\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpCode", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "markdownDescription": "An Availability Zone or `all`\\. This determines whether the target receives traffic from the load balancer nodes in the specified Availability Zone or from all enabled Availability Zones for the load balancer\\. \nThis parameter is not supported if the target type of the target group is `instance` or `alb`\\. \nIf the target type is `ip` and the IP address is in a subnet of the VPC for the target group, the Availability Zone is automatically detected and this parameter is optional\\. If the IP address is outside the VPC, this parameter is required\\. \nWith an Application Load Balancer, if the target type is `ip` and the IP address is outside the VPC for the target group, the only supported value is `all`\\. \nIf the target type is `lambda`, this parameter is optional and the only supported value is `all`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZone", + "type": "string" + }, + "Id": { + "markdownDescription": "The ID of the target\\. If the target type of the target group is `instance`, specify an instance ID\\. If the target type is `ip`, specify an IP address\\. If the target type is `lambda`, specify the ARN of the Lambda function\\. If the target type is `alb`, specify the ARN of the Application Load Balancer target\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "Port": { + "markdownDescription": "The port on which the target is listening\\. If the target group protocol is GENEVE, the supported port is 6081\\. If the target type is `alb`, the targeted Application Load Balancer must have at least one listener whose port matches the target group port\\. Not used if the target is a Lambda function\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The name of the attribute\\. \nThe following attribute is supported by all load balancers: \n+ `deregistration_delay.timeout_seconds` \\- The amount of time, in seconds, for Elastic Load Balancing to wait before changing the state of a deregistering target from `draining` to `unused`\\. The range is 0\\-3600 seconds\\. The default value is 300 seconds\\. If the target is a Lambda function, this attribute is not supported\\.\nThe following attributes are supported by both Application Load Balancers and Network Load Balancers: \n+ `stickiness.enabled` \\- Indicates whether sticky sessions are enabled\\. The value is `true` or `false`\\. The default is `false`\\.\n+ `stickiness.type` \\- The type of sticky sessions\\. The possible values are `lb_cookie` and `app_cookie` for Application Load Balancers or `source_ip` for Network Load Balancers\\.\nThe following attributes are supported only if the load balancer is an Application Load Balancer and the target is an instance or an IP address: \n+ `load_balancing.algorithm.type` \\- The load balancing algorithm determines how the load balancer selects targets when routing requests\\. The value is `round_robin` or `least_outstanding_requests`\\. The default is `round_robin`\\.\n+ `slow_start.duration_seconds` \\- The time period, in seconds, during which a newly registered target receives an increasing share of the traffic to the target group\\. After this time period ends, the target receives its full share of traffic\\. The range is 30\\-900 seconds \\(15 minutes\\)\\. The default is 0 seconds \\(disabled\\)\\.\n+ `stickiness.app_cookie.cookie_name` \\- Indicates the name of the application\\-based cookie\\. Names that start with the following prefixes are not allowed: `AWSALB`, `AWSALBAPP`, and `AWSALBTG`; they're reserved for use by the load balancer\\.\n+ `stickiness.app_cookie.duration_seconds` \\- The time period, in seconds, during which requests from a client should be routed to the same target\\. After this time period expires, the application\\-based cookie is considered stale\\. The range is 1 second to 1 week \\(604800 seconds\\)\\. The default value is 1 day \\(86400 seconds\\)\\.\n+ `stickiness.lb_cookie.duration_seconds` \\- The time period, in seconds, during which requests from a client should be routed to the same target\\. After this time period expires, the load balancer\\-generated cookie is considered stale\\. The range is 1 second to 1 week \\(604800 seconds\\)\\. The default value is 1 day \\(86400 seconds\\)\\.\nThe following attribute is supported only if the load balancer is an Application Load Balancer and the target is a Lambda function: \n+ `lambda.multi_value_headers.enabled` \\- Indicates whether the request and response headers that are exchanged between the load balancer and the Lambda function include arrays of values or strings\\. The value is `true` or `false`\\. The default is `false`\\. If the value is `false` and the request contains a duplicate header field name or query parameter key, the load balancer uses the last value sent by the client\\.\nThe following attributes are supported only by Network Load Balancers: \n+ `deregistration_delay.connection_termination.enabled` \\- Indicates whether the load balancer terminates connections at the end of the deregistration timeout\\. The value is `true` or `false`\\. The default is `false`\\.\n+ `preserve_client_ip.enabled` \\- Indicates whether client IP preservation is enabled\\. The value is `true` or `false`\\. The default is disabled if the target group type is IP address and the target group protocol is TCP or TLS\\. Otherwise, the default is enabled\\. Client IP preservation cannot be disabled for UDP and TCP\\_UDP target groups\\.\n+ `proxy_protocol_v2.enabled` \\- Indicates whether Proxy Protocol version 2 is enabled\\. The value is `true` or `false`\\. The default is `false`\\.\n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^[a-zA-Z0-9._]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of the attribute\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "An AWS Identity and Access Management \\(IAM\\) policy document that specifies who can access the OpenSearch Service domain and their permissions\\. For more information, see [Configuring access policies](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ac.html#ac-creating) in the *Amazon OpenSearch Service Developer Guid*e\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessPolicies", + "type": "object" + }, + "AdvancedOptions": { + "additionalProperties": true, + "markdownDescription": "Additional options to specify for the OpenSearch Service domain\\. For more information, see [Advanced cluster parameters](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomain-configure-advanced-options) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "AdvancedOptions", + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.AdvancedSecurityOptionsInput", + "markdownDescription": "Specifies options for fine\\-grained access control\\. \n*Required*: No \n*Type*: [AdvancedSecurityOptionsInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-advancedsecurityoptionsinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AdvancedSecurityOptions" + }, + "CognitoOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.CognitoOptions", + "markdownDescription": "Configures OpenSearch Service to use Amazon Cognito authentication for OpenSearch Dashboards\\. \n*Required*: No \n*Type*: [CognitoOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-cognitooptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CognitoOptions" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.DomainEndpointOptions", + "markdownDescription": "Specifies additional options for the domain endpoint, such as whether to require HTTPS for all traffic or whether to use a custom endpoint rather than the default endpoint\\. \n*Required*: No \n*Type*: [DomainEndpointOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-domainendpointoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainEndpointOptions" + }, + "DomainName": { + "markdownDescription": "A name for the OpenSearch Service domain\\. For valid values, see the [DomainName](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/configuration-api.html#configuration-api-datatypes-domainname) data type in the *Amazon OpenSearch Service Developer Guide*\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the domain name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.EBSOptions", + "markdownDescription": "The configurations of Amazon Elastic Block Store \\(Amazon EBS\\) volumes that are attached to data nodes in the OpenSearch Service domain\\. For more information, see [EBS volume size limits](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#ebsresource) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: [EBSOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EBSOptions" + }, + "ElasticsearchClusterConfig": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.ElasticsearchClusterConfig", + "markdownDescription": "ElasticsearchClusterConfig is a property of the AWS::Elasticsearch::Domain resource that configures the cluster of an Amazon OpenSearch Service domain\\. \n*Required*: No \n*Type*: [ElasticsearchClusterConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticsearchClusterConfig" + }, + "ElasticsearchVersion": { + "markdownDescription": "The version of Elasticsearch to use, such as 2\\.3\\. If not specified, 1\\.5 is used as the default\\. For information about the versions that OpenSearch Service supports, see [Supported versions of OpenSearch and Elasticsearch](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/what-is.html#choosing-version) in the *Amazon OpenSearch Service Developer Guide*\\. \nIf you set the [EnableVersionUpgrade](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-upgradeopensearchdomain) update policy to `true`, you can update `ElasticsearchVersion` without interruption\\. When `EnableVersionUpgrade` is set to `false`, or is not specified, updating `ElasticsearchVersion` results in [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "ElasticsearchVersion", + "type": "string" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.EncryptionAtRestOptions", + "markdownDescription": "Whether the domain should encrypt data at rest, and if so, the AWS Key Management Service key to use\\. See [Encryption of data at rest for Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/encryption-at-rest.html)\\. \n*Required*: No \n*Type*: [EncryptionAtRestOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-encryptionatrestoptions.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "EncryptionAtRestOptions" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "markdownDescription": "An object with one or more of the following keys: `SEARCH_SLOW_LOGS`, `ES_APPLICATION_LOGS`, `INDEX_SLOW_LOGS`, `AUDIT_LOGS`, depending on the types of logs you want to publish\\. Each key needs a valid `LogPublishingOption` value\\. \n*Required*: No \n*Type*: Map of [LogPublishingOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-logpublishingoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.LogPublishingOption" + } + }, + "title": "LogPublishingOptions", + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.NodeToNodeEncryptionOptions", + "markdownDescription": "Specifies whether node\\-to\\-node encryption is enabled\\. See [Node\\-to\\-node encryption for Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ntn.html)\\. \n*Required*: No \n*Type*: [NodeToNodeEncryptionOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-nodetonodeencryptionoptions.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "NodeToNodeEncryptionOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.SnapshotOptions", + "markdownDescription": "**DEPRECATED**\\. The automated snapshot configuration for the OpenSearch Service domain indices\\. \n*Required*: No \n*Type*: [SnapshotOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-snapshotoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An arbitrary set of tags \\(key\u2013value pairs\\) to associate with the OpenSearch Service domain\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VPCOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.VPCOptions", + "markdownDescription": "The virtual private cloud \\(VPC\\) configuration for the OpenSearch Service domain\\. For more information, see [Launching your Amazon OpenSearch Service domains within a VPC](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: [VPCOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-vpcoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "True to enable fine\\-grained access control\\. You must also enable encryption of data at rest and node\\-to\\-node encryption\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Enabled", + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "markdownDescription": "True to enable the internal user database\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InternalUserDatabaseEnabled", + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.MasterUserOptions", + "markdownDescription": "Specifies information about the master user\\. \n*Required*: No \n*Type*: [MasterUserOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-masteruseroptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MasterUserOptions" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Whether to enable or disable Amazon Cognito authentication for OpenSearch Dashboards\\. See [Amazon Cognito authentication for OpenSearch Dashboards](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/cognito-auth.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "IdentityPoolId": { + "markdownDescription": "The Amazon Cognito identity pool ID that you want OpenSearch Service to use for OpenSearch Dashboards authentication\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentityPoolId", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The `AmazonESCognitoAccess` role that allows OpenSearch Service to configure your user pool and identity pool\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "UserPoolId": { + "markdownDescription": "The Amazon Cognito user pool ID that you want OpenSearch Service to use for OpenSearch Dashboards authentication\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolId", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.ColdStorageOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Whether to enable or disable cold storage on the domain\\. You must enable UltraWarm storage in order to enable cold storage\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "markdownDescription": "The fully qualified URL for your custom endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomEndpoint", + "type": "string" + }, + "CustomEndpointCertificateArn": { + "markdownDescription": "The AWS Certificate Manager ARN for your domain's SSL/TLS certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomEndpointCertificateArn", + "type": "string" + }, + "CustomEndpointEnabled": { + "markdownDescription": "True to enable a custom endpoint for the domain\\. If enabled, you must also provide values for `CustomEndpoint` and `CustomEndpointCertificateArn`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomEndpointEnabled", + "type": "boolean" + }, + "EnforceHTTPS": { + "markdownDescription": "True to require that all traffic to the domain arrive over HTTPS\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnforceHTTPS", + "type": "boolean" + }, + "TLSSecurityPolicy": { + "markdownDescription": "The minimum TLS version required for traffic to the domain\\. Valid values are TLS 1\\.0 \\(default\\) or 1\\.2: \n+ `Policy-Min-TLS-1-0-2019-07`\n+ `Policy-Min-TLS-1-2-2019-07`\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TLSSecurityPolicy", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "markdownDescription": "Specifies whether Amazon EBS volumes are attached to data nodes in the OpenSearch Service domain\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EBSEnabled", + "type": "boolean" + }, + "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\) that the volume supports\\. This property applies only to the Provisioned IOPS \\(SSD\\) EBS volume type\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iops", + "type": "number" + }, + "VolumeSize": { + "markdownDescription": "The size \\(in GiB\\) of the EBS volume for each data node\\. The minimum and maximum size of an EBS volume depends on the EBS volume type and the instance type to which it is attached\\. For more information, see [EBS volume size limits](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#ebsresource) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeSize", + "type": "number" + }, + "VolumeType": { + "markdownDescription": "The EBS volume type to use with the OpenSearch Service domain, such as standard, gp2, or io1\\. For more information about each type, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.ElasticsearchClusterConfig": { + "additionalProperties": false, + "properties": { + "ColdStorageOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.ColdStorageOptions", + "markdownDescription": "Specifies cold storage options for the domain\\. \n*Required*: No \n*Type*: [ColdStorageOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-coldstorageoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColdStorageOptions" + }, + "DedicatedMasterCount": { + "markdownDescription": "The number of instances to use for the master node\\. If you specify this property, you must specify true for the DedicatedMasterEnabled property\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DedicatedMasterCount", + "type": "number" + }, + "DedicatedMasterEnabled": { + "markdownDescription": "Indicates whether to use a dedicated master node for the OpenSearch Service domain\\. A dedicated master node is a cluster node that performs cluster management tasks, but doesn't hold data or respond to data upload requests\\. Dedicated master nodes offload cluster management tasks to increase the stability of your search clusters\\. See [Dedicated master nodes in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-dedicatedmasternodes.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DedicatedMasterEnabled", + "type": "boolean" + }, + "DedicatedMasterType": { + "markdownDescription": "The hardware configuration of the computer that hosts the dedicated master node, such as `m3.medium.elasticsearch`\\. If you specify this property, you must specify true for the `DedicatedMasterEnabled` property\\. For valid values, see [Supported instance types in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DedicatedMasterType", + "type": "string" + }, + "InstanceCount": { + "markdownDescription": "The number of data nodes \\(instances\\) to use in the OpenSearch Service domain\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceCount", + "type": "number" + }, + "InstanceType": { + "markdownDescription": "The instance type for your data nodes, such as `m3.medium.elasticsearch`\\. For valid values, see [Supported instance types in Amazon OpenSearch Service ](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", + "type": "string" + }, + "WarmCount": { + "markdownDescription": "The number of warm nodes in the cluster\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WarmCount", + "type": "number" + }, + "WarmEnabled": { + "markdownDescription": "Whether to enable warm storage for the cluster\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WarmEnabled", + "type": "boolean" + }, + "WarmType": { + "markdownDescription": "The instance type for the cluster's warm nodes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WarmType", + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.ZoneAwarenessConfig", + "markdownDescription": "Specifies zone awareness configuration options\\. Only use if `ZoneAwarenessEnabled` is `true`\\. \n*Required*: No \n*Type*: [ZoneAwarenessConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-zoneawarenessconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "markdownDescription": "Indicates whether to enable zone awareness for the OpenSearch Service domain\\. When you enable zone awareness, OpenSearch Service allocates the nodes and replica index shards that belong to a cluster across two Availability Zones \\(AZs\\) in the same region to prevent data loss and minimize downtime in the event of node or data center failure\\. Don't enable zone awareness if your cluster has no replica index shards or is a single\\-node cluster\\. For more information, see [Configuring a multi\\-AZ domain in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ZoneAwarenessEnabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Specify `true` to enable encryption at rest\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "KmsKeyId": { + "markdownDescription": "The KMS key ID\\. Takes the form `1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "markdownDescription": "Specifies the CloudWatch log group to publish to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogsLogGroupArn", + "type": "string" + }, + "Enabled": { + "markdownDescription": "If `true`, enables the publishing of logs to CloudWatch\\. \nDefault: `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "markdownDescription": "ARN for the master user\\. Only specify if `InternalUserDatabaseEnabled` is false in `AdvancedSecurityOptions`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MasterUserARN", + "type": "string" + }, + "MasterUserName": { + "markdownDescription": "Username for the master user\\. Only specify if `InternalUserDatabaseEnabled` is true in `AdvancedSecurityOptions`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MasterUserName", + "type": "string" + }, + "MasterUserPassword": { + "markdownDescription": "Password for the master user\\. Only specify if `InternalUserDatabaseEnabled` is true in `AdvancedSecurityOptions`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MasterUserPassword", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Specifies whether node\\-to\\-node encryption is enabled, as a Boolean\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "markdownDescription": "The hour in UTC during which the service takes an automated daily snapshot of the indices in the OpenSearch Service domain\\. For example, if you specify 0, OpenSearch Service takes an automated snapshot everyday between midnight and 1 am\\. You can specify a value between 0 and 23\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutomatedSnapshotStartHour", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of security group IDs that are associated with the VPC endpoints for the domain\\. If you don't provide a security group ID, OpenSearch Service uses the default security group for the VPC\\. To learn more, see [Security groups for your VPC ](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) in the *Amazon VPC User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "Provide one subnet ID for each Availability Zone that your domain uses\\. For example, you must specify three subnet IDs for a three Availability Zone domain\\. To learn more, see [VPCs and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html) in the *Amazon VPC User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "type": "array" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "markdownDescription": "If you enabled multiple Availability Zones \\(AZs\\), the number of AZs that you want the domain to use\\. \nValid values are `2` and `3`\\. Default is 2\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Allows for the discovery of the event schemas that are sent to the event bus from another account\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CrossAccount", + "type": "boolean" + }, + "Description": { + "markdownDescription": "A description for the discoverer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "SourceArn": { + "markdownDescription": "The ARN of the event bus\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::EventSchemas::Discoverer.TagsEntry" + }, + "markdownDescription": "Tags associated with the resource\\. \n*Required*: No \n*Type*: List of [TagsEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eventschemas-discoverer-tagsentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "They key of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "They value of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::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": { + "markdownDescription": "A description of the registry to be created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "RegistryName": { + "markdownDescription": "The name of the schema registry\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RegistryName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::EventSchemas::Registry.TagsEntry" + }, + "markdownDescription": "Tags to associate with the registry\\. \n*Required*: No \n*Type*: List of [TagsEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eventschemas-registry-tagsentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "They key of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "They value of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::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": { + "markdownDescription": "A resource\\-based policy\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policy", + "type": "object" + }, + "RegistryName": { + "markdownDescription": "The name of the registry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegistryName", + "type": "string" + }, + "RevisionId": { + "markdownDescription": "The revision ID of the policy\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The source of the schema definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Content", + "type": "string" + }, + "Description": { + "markdownDescription": "A description of the schema\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "RegistryName": { + "markdownDescription": "The name of the schema registry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RegistryName", + "type": "string" + }, + "SchemaName": { + "markdownDescription": "The name of the schema\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SchemaName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::EventSchemas::Schema.TagsEntry" + }, + "markdownDescription": "Tags associated with the schema\\. \n*Required*: No \n*Type*: List of [TagsEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eventschemas-schema-tagsentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Type": { + "markdownDescription": "The type of schema\\. \nValid types include `OpenApi3` and `JSONSchemaDraft4`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "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": { + "markdownDescription": "They key of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "They value of a key\\-value pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::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": { + "markdownDescription": "The ARN of the connection to use for the API destination\\. The destination endpoint must support the authorization type specified for the connection\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `^arn:aws([a-z]|\\-)*:events:([a-z]|\\d|\\-)*:([0-9]{12})?:connection\\/[\\.\\-_A-Za-z0-9]+\\/[\\-A-Za-z0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionArn", + "type": "string" + }, + "Description": { + "markdownDescription": "A description for the API destination to create\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "HttpMethod": { + "markdownDescription": "The method to use for the request to the HTTP invocation endpoint\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DELETE | GET | HEAD | OPTIONS | PATCH | POST | PUT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpMethod", + "type": "string" + }, + "InvocationEndpoint": { + "markdownDescription": "The URL to the HTTP invocation endpoint for the API destination\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InvocationEndpoint", + "type": "string" + }, + "InvocationRateLimitPerSecond": { + "markdownDescription": "The maximum number of requests per second to send to the HTTP invocation endpoint\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InvocationRateLimitPerSecond", + "type": "number" + }, + "Name": { + "markdownDescription": "The name for the API destination to create\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + } + }, + "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": { + "markdownDescription": "The name for the archive to create\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `48` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ArchiveName", + "type": "string" + }, + "Description": { + "markdownDescription": "A description for the archive\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "EventPattern": { + "markdownDescription": "An event pattern to use to filter events sent to the archive\\. \n*Required*: No \n*Type*: Json \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventPattern", + "type": "object" + }, + "RetentionDays": { + "markdownDescription": "The number of days to retain events for\\. Default value is 0\\. If set to 0, events are retained indefinitely \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetentionDays", + "type": "number" + }, + "SourceArn": { + "markdownDescription": "The ARN of the event bus that sends events to the archive\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "A `CreateConnectionAuthRequestParameters` object that contains the authorization parameters to use to authorize with the endpoint\\. \n*Required*: Yes \n*Type*: [AuthParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-authparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthParameters" + }, + "AuthorizationType": { + "markdownDescription": "The type of authorization to use for the connection\\. \nOAUTH tokens are refreshed when a 401 or 407 response is returned\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `API_KEY | BASIC | OAUTH_CLIENT_CREDENTIALS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationType", + "type": "string" + }, + "Description": { + "markdownDescription": "A description for the connection to create\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name for the connection to create\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + } + }, + "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": { + "markdownDescription": "The name of the API key to use for authorization\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKeyName", + "type": "string" + }, + "ApiKeyValue": { + "markdownDescription": "The value for the API key to use for authorization\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKeyValue", + "type": "string" + } + }, + "required": [ + "ApiKeyName", + "ApiKeyValue" + ], + "type": "object" + }, + "AWS::Events::Connection.AuthParameters": { + "additionalProperties": false, + "properties": { + "ApiKeyAuthParameters": { + "$ref": "#/definitions/AWS::Events::Connection.ApiKeyAuthParameters", + "markdownDescription": "The API Key parameters to use for authorization\\. \n*Required*: No \n*Type*: [ApiKeyAuthParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-apikeyauthparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKeyAuthParameters" + }, + "BasicAuthParameters": { + "$ref": "#/definitions/AWS::Events::Connection.BasicAuthParameters", + "markdownDescription": "The authorization parameters for Basic authorization\\. \n*Required*: No \n*Type*: [BasicAuthParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-basicauthparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BasicAuthParameters" + }, + "InvocationHttpParameters": { + "$ref": "#/definitions/AWS::Events::Connection.ConnectionHttpParameters", + "markdownDescription": "Additional parameters for the connection that are passed through with every invocation to the HTTP endpoint\\. \n*Required*: No \n*Type*: [ConnectionHttpParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-connectionhttpparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InvocationHttpParameters" + }, + "OAuthParameters": { + "$ref": "#/definitions/AWS::Events::Connection.OAuthParameters", + "markdownDescription": "The OAuth parameters to use for authorization\\. \n*Required*: No \n*Type*: [OAuthParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-oauthparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OAuthParameters" + } + }, + "type": "object" + }, + "AWS::Events::Connection.BasicAuthParameters": { + "additionalProperties": false, + "properties": { + "Password": { + "markdownDescription": "The password associated with the user name to use for Basic authorization\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", + "type": "string" + }, + "Username": { + "markdownDescription": "The user name to use for Basic authorization\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", + "type": "string" + } + }, + "required": [ + "Password", + "Username" + ], + "type": "object" + }, + "AWS::Events::Connection.ClientParameters": { + "additionalProperties": false, + "properties": { + "ClientID": { + "markdownDescription": "The client ID to use for OAuth authorization\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientID", + "type": "string" + }, + "ClientSecret": { + "markdownDescription": "The client secret assciated with the client ID to use for OAuth authorization\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientSecret", + "type": "string" + } + }, + "required": [ + "ClientID", + "ClientSecret" + ], + "type": "object" + }, + "AWS::Events::Connection.ConnectionHttpParameters": { + "additionalProperties": false, + "properties": { + "BodyParameters": { + "items": { + "$ref": "#/definitions/AWS::Events::Connection.Parameter" + }, + "markdownDescription": "Contains additional body string parameters for the connection\\. \n*Required*: No \n*Type*: List of [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-parameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BodyParameters", + "type": "array" + }, + "HeaderParameters": { + "items": { + "$ref": "#/definitions/AWS::Events::Connection.Parameter" + }, + "markdownDescription": "Contains additional header parameters for the connection\\. \n*Required*: No \n*Type*: List of [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-parameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderParameters", + "type": "array" + }, + "QueryStringParameters": { + "items": { + "$ref": "#/definitions/AWS::Events::Connection.Parameter" + }, + "markdownDescription": "Contains additional query string parameters for the connection\\. \n*Required*: No \n*Type*: List of [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-parameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryStringParameters", + "type": "array" + } + }, + "type": "object" + }, + "AWS::Events::Connection.OAuthParameters": { + "additionalProperties": false, + "properties": { + "AuthorizationEndpoint": { + "markdownDescription": "The URL to the authorization endpoint when OAuth is specified as the authorization type\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizationEndpoint", + "type": "string" + }, + "ClientParameters": { + "$ref": "#/definitions/AWS::Events::Connection.ClientParameters", + "markdownDescription": "A `CreateConnectionOAuthClientRequestParameters` object that contains the client parameters for OAuth authorization\\. \n*Required*: Yes \n*Type*: [ClientParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-clientparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientParameters" + }, + "HttpMethod": { + "markdownDescription": "The method to use for the authorization request\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GET | POST | PUT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpMethod", + "type": "string" + }, + "OAuthHttpParameters": { + "$ref": "#/definitions/AWS::Events::Connection.ConnectionHttpParameters", + "markdownDescription": "A `ConnectionHttpParameters` object that contains details about the additional parameters to use for the connection\\. \n*Required*: No \n*Type*: [ConnectionHttpParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-connection-connectionhttpparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OAuthHttpParameters" + } + }, + "required": [ + "AuthorizationEndpoint", + "ClientParameters", + "HttpMethod" + ], + "type": "object" + }, + "AWS::Events::Connection.Parameter": { + "additionalProperties": false, + "properties": { + "IsValueSecret": { + "markdownDescription": "Specifies whether the value is secret\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsValueSecret", + "type": "boolean" + }, + "Key": { + "markdownDescription": "The key for a query string parameter\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[^\\x00-\\x1F\\x7F]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The value associated with the key for the query string parameter\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[^\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::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": { + "markdownDescription": "A description for the endpoint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "EventBuses": { + "items": { + "$ref": "#/definitions/AWS::Events::Endpoint.EndpointEventBus" + }, + "markdownDescription": "The event buses being used by the endpoint\\. \n*Exactly*: `2` \n*Required*: Yes \n*Type*: List of [EndpointEventBus](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-endpoint-endpointeventbus.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventBuses", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the endpoint\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "ReplicationConfig": { + "$ref": "#/definitions/AWS::Events::Endpoint.ReplicationConfig", + "markdownDescription": "Whether event replication was enabled or disabled for this endpoint\\. The default state is `ENABLED` which means you must supply a `RoleArn`\\. If you don't have a `RoleArn` or you don't want event replication enabled, set the state to `DISABLED`\\. \n*Required*: No \n*Type*: [ReplicationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-endpoint-replicationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationConfig" + }, + "RoleArn": { + "markdownDescription": "The ARN of the role used by event replication for the endpoint\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn:aws[a-z-]*:iam::\\d{12}:role\\/[\\w+=,.@/-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "RoutingConfig": { + "$ref": "#/definitions/AWS::Events::Endpoint.RoutingConfig", + "markdownDescription": "The routing configuration of the endpoint\\. \n*Required*: Yes \n*Type*: [RoutingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-endpoint-routingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ARN of the event bus the endpoint is associated with\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^arn:aws[a-z-]*:events:[a-z]{2}-[a-z-]+-\\d+:\\d{12}:event-bus/[\\w.-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventBusArn", + "type": "string" + } + }, + "required": [ + "EventBusArn" + ], + "type": "object" + }, + "AWS::Events::Endpoint.FailoverConfig": { + "additionalProperties": false, + "properties": { + "Primary": { + "$ref": "#/definitions/AWS::Events::Endpoint.Primary", + "markdownDescription": "The main Region of the endpoint\\. \n*Required*: Yes \n*Type*: [Primary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-endpoint-primary.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Primary" + }, + "Secondary": { + "$ref": "#/definitions/AWS::Events::Endpoint.Secondary", + "markdownDescription": "The Region that events are routed to when failover is triggered or event replication is enabled\\. \n*Required*: Yes \n*Type*: [Secondary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-endpoint-secondary.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Secondary" + } + }, + "required": [ + "Primary", + "Secondary" + ], + "type": "object" + }, + "AWS::Events::Endpoint.Primary": { + "additionalProperties": false, + "properties": { + "HealthCheck": { + "markdownDescription": "The ARN of the health check used by the endpoint to determine whether failover is triggered\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `^arn:aws([a-z]|\\-)*:route53:::healthcheck/[\\-a-z0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheck", + "type": "string" + } + }, + "required": [ + "HealthCheck" + ], + "type": "object" + }, + "AWS::Events::Endpoint.ReplicationConfig": { + "additionalProperties": false, + "properties": { + "State": { + "markdownDescription": "The state of event replication\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", + "type": "string" + } + }, + "required": [ + "State" + ], + "type": "object" + }, + "AWS::Events::Endpoint.RoutingConfig": { + "additionalProperties": false, + "properties": { + "FailoverConfig": { + "$ref": "#/definitions/AWS::Events::Endpoint.FailoverConfig", + "markdownDescription": "The failover configuration for an endpoint\\. This includes what triggers failover and what happens when it's triggered\\. \n*Required*: Yes \n*Type*: [FailoverConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-endpoint-failoverconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailoverConfig" + } + }, + "required": [ + "FailoverConfig" + ], + "type": "object" + }, + "AWS::Events::Endpoint.Secondary": { + "additionalProperties": false, + "properties": { + "Route": { + "markdownDescription": "Defines the secondary Region\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `9` \n*Maximum*: `20` \n*Pattern*: `^[\\-a-z0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "If you are creating a partner event bus, this specifies the partner event source that the new event bus will be matched with\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `aws\\.partner(/[\\.\\-_A-Za-z0-9]+){2,}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EventSourceName", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the new event bus\\. \nCustom event bus names can't contain the `/` character, but you can use the `/` character in partner event bus names\\. In addition, for partner event buses, the name must exactly match the name of the partner event source that this event bus is matched to\\. \nYou can't use the name `default` for a custom event bus, as this name is already used for your account's default event bus\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[/\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::Events::EventBus.TagEntry" + }, + "markdownDescription": "Tags to associate with the event bus\\. \n*Required*: No \n*Type*: List of [TagEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-eventbus-tagentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "A string you can use to assign a value\\. The combination of tag keys and values can help you organize and categorize your resources\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The value for the specified tag key\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The action that you are enabling the other account to perform\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `events:[a-zA-Z]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", + "type": "string" + }, + "Condition": { + "$ref": "#/definitions/AWS::Events::EventBusPolicy.Condition", + "markdownDescription": "This parameter enables you to limit the permission to accounts that fulfill a certain condition, such as being a member of a certain AWS organization\\. For more information about AWS Organizations, see [What Is AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) in the * AWS Organizations User Guide*\\. \nIf you specify `Condition` with an AWS organization ID, and specify \"\\*\" as the value for `Principal`, you grant permission to all the accounts in the named organization\\. \nThe `Condition` is a JSON string which must contain `Type`, `Key`, and `Value` fields\\. \n*Required*: No \n*Type*: [Condition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-eventbuspolicy-condition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Condition" + }, + "EventBusName": { + "markdownDescription": "The name of the event bus associated with the rule\\. If you omit this, the default event bus is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EventBusName", + "type": "string" + }, + "Principal": { + "markdownDescription": "The 12\\-digit AWS account ID that you are permitting to put events to your default event bus\\. Specify \"\\*\" to permit any account to put events to your default event bus\\. \nIf you specify \"\\*\" without specifying `Condition`, avoid creating rules that may match undesirable events\\. To create more secure rules, make sure that the event pattern for each rule contains an `account` field with a specific account ID from which to receive events\\. Rules with an account field do not match any events sent from other accounts\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `12` \n*Pattern*: `(\\d{12}|\\*)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Principal", + "type": "string" + }, + "Statement": { + "markdownDescription": "A JSON string that describes the permission policy statement\\. You can include a `Policy` parameter in the request instead of using the `StatementId`, `Action`, `Principal`, or `Condition` parameters\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statement", + "type": "object" + }, + "StatementId": { + "markdownDescription": "An identifier string for the external account that you are granting permissions to\\. If you later want to revoke the permission for this external account, specify this `StatementId` when you run [RemovePermission](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_RemovePermission.html)\\. \nEach `StatementId` must be unique\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[a-zA-Z0-9-_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Specifies the key for the condition\\. Currently the only supported key is `aws:PrincipalOrgID`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Type": { + "markdownDescription": "Specifies the type of condition\\. Currently the only supported value is `StringEquals`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "Value": { + "markdownDescription": "Specifies the value for the key\\. Currently, this must be the ID of the organization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The description of the rule\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "EventBusName": { + "markdownDescription": "The name or ARN of the event bus associated with the rule\\. If you omit this, the default event bus is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[/\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EventBusName", + "type": "string" + }, + "EventPattern": { + "markdownDescription": "The event pattern of the rule\\. For more information, see [Events and Event Patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Required*: Conditional \n*Type*: Json \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventPattern", + "type": "object" + }, + "Name": { + "markdownDescription": "The name of the rule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that is used for target invocation\\. \nIf you're setting an event bus in another account as the target and that account granted permission to your account through an organization instead of directly by the account ID, you must specify a `RoleArn` with proper permissions in the `Target` structure, instead of here in this parameter\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "ScheduleExpression": { + "markdownDescription": "The scheduling expression\\. For example, \"cron\\(0 20 \\* \\* ? \\*\\)\", \"rate\\(5 minutes\\)\"\\. For more information, see [Creating an Amazon EventBridge rule that runs on a schedule](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)\\. \n*Required*: Conditional \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleExpression", + "type": "string" + }, + "State": { + "markdownDescription": "The state of the rule\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", + "type": "string" + }, + "Targets": { + "items": { + "$ref": "#/definitions/AWS::Events::Rule.Target" + }, + "markdownDescription": "Adds the specified targets to the specified rule, or updates the targets if they are already associated with the rule\\. \nTargets are the resources that are invoked when a rule is triggered\\. \nEach rule can have up to five \\(5\\) targets associated with it at one time\\.\nYou can configure the following as targets for Events: \n+ [API destination](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-api-destinations.html) \n+ [API Gateway](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-api-gateway-target.html) \n+ Batch job queue\n+ CloudWatch group\n+ CodeBuild project\n+ CodePipeline\n+ EC2 `CreateSnapshot` API call\n+ EC2 Image Builder\n+ EC2 `RebootInstances` API call\n+ EC2 `StopInstances` API call\n+ EC2 `TerminateInstances` API call\n+ ECS task\n+ [Event bus in a different account or Region](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cross-account.html) \n+ [Event bus in the same account and Region](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-bus-to-bus.html) \n+ Firehose delivery stream\n+ Glue workflow\n+ [Incident Manager response plan](https://docs.aws.amazon.com/incident-manager/latest/userguide/incident-creation.html#incident-tracking-auto-eventbridge) \n+ Inspector assessment template\n+ Kinesis stream\n+ Lambda function\n+ Redshift cluster\n+ SageMaker Pipeline\n+ SNS topic\n+ SQS queue\n+ Step Functions state machine\n+ Systems Manager Automation\n+ Systems Manager OpsItem\n+ Systems Manager Run Command\nCreating rules with built\\-in targets is supported only in the AWS Management Console\\. The built\\-in targets are `EC2 CreateSnapshot API call`, `EC2 RebootInstances API call`, `EC2 StopInstances API call`, and `EC2 TerminateInstances API call`\\. \nFor some target types, `PutTargets` provides target\\-specific parameters\\. If the target is a Kinesis data stream, you can optionally specify which shard the event goes to by using the `KinesisParameters` argument\\. To invoke a command on multiple EC2 instances with one rule, you can use the `RunCommandParameters` field\\. \nTo be able to make API calls against the resources that you own, Amazon EventBridge needs the appropriate permissions\\. For AWS Lambda and Amazon SNS resources, EventBridge relies on resource\\-based policies\\. For EC2 instances, Kinesis Data Streams, AWS Step Functions state machines and API Gateway APIs, EventBridge relies on IAM roles that you specify in the `RoleARN` argument in `PutTargets`\\. For more information, see [Authentication and Access Control](https://docs.aws.amazon.com/eventbridge/latest/userguide/auth-and-access-control-eventbridge.html) in the *Amazon EventBridge User Guide*\\. \nIf another AWS account is in the same region and has granted you permission \\(using `PutPermission`\\), you can send events to that account\\. Set that account's event bus as a target of the rules in your account\\. To send the matched events to the other account, specify that account's event bus as the `Arn` value when you run `PutTargets`\\. If your account sends events to another account, your account is charged for each sent event\\. Each event sent to another account is charged as a custom event\\. The account receiving the event is not charged\\. For more information, see [Amazon EventBridge Pricing](http://aws.amazon.com/eventbridge/pricing/)\\. \n `Input`, `InputPath`, and `InputTransformer` are not available with `PutTarget` if the target is an event bus of a different AWS account\\.\nIf you are setting the event bus of another account as the target, and that account granted permission to your account through an organization instead of directly by the account ID, then you must specify a `RoleArn` with proper permissions in the `Target` structure\\. For more information, see [Sending and Receiving Events Between AWS Accounts](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-cross-account-event-delivery.html) in the *Amazon EventBridge User Guide*\\. \nFor more information about enabling cross\\-account events, see [PutPermission](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutPermission.html)\\. \n **Input**, **InputPath**, and **InputTransformer** are mutually exclusive and optional parameters of a target\\. When a rule is triggered due to a matched event: \n+ If none of the following arguments are specified for a target, then the entire event is passed to the target in JSON format \\(unless the target is Amazon EC2 Run Command or Amazon ECS task, in which case nothing from the event is passed to the target\\)\\.\n+ If **Input** is specified in the form of valid JSON, then the matched event is overridden with this constant\\.\n+ If **InputPath** is specified in the form of JSONPath \\(for example, `$.detail`\\), then only the part of the event specified in the path is passed to the target \\(for example, only the detail part of the event is passed\\)\\.\n+ If **InputTransformer** is specified, then one or more specified JSONPaths are extracted from the event and used as values in a template that you specify as the input to the target\\.\nWhen you specify `InputPath` or `InputTransformer`, you must use JSON dot notation, not bracket notation\\. \nWhen you add targets to a rule and the associated rule triggers soon after, new or updated targets might not be immediately invoked\\. Allow a short period of time for changes to take effect\\. \nThis action can partially fail if too many requests are made at the same time\\. If that happens, `FailedEntryCount` is non\\-zero in the response and each entry in `FailedEntries` provides the ID of the failed target and the error code\\. \n*Required*: No \n*Type*: List of [Target](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Targets", + "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": { + "markdownDescription": "Specifies whether the task's elastic network interface receives a public IP address\\. You can specify `ENABLED` only when `LaunchType` in `EcsParameters` is set to `FARGATE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssignPublicIp", + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "Specifies the security groups associated with the task\\. These security groups must all be in the same VPC\\. You can specify as many as five security groups\\. If you do not specify a security group, the default security group for the VPC is used\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroups", + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "markdownDescription": "Specifies the subnets associated with the task\\. These subnets must all be in the same VPC\\. You can specify as many as 16 subnets\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subnets", + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "AWS::Events::Rule.BatchArrayProperties": { + "additionalProperties": false, + "properties": { + "Size": { + "markdownDescription": "The size of the array, if this is an array batch job\\. Valid values are integers between 2 and 10,000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Size", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Events::Rule.BatchParameters": { + "additionalProperties": false, + "properties": { + "ArrayProperties": { + "$ref": "#/definitions/AWS::Events::Rule.BatchArrayProperties", + "markdownDescription": "The array properties for the submitted job, such as the size of the array\\. The array size can be between 2 and 10,000\\. If you specify array properties for a job, it becomes an array job\\. This parameter is used only if the target is an AWS Batch job\\. \n*Required*: No \n*Type*: [BatchArrayProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-batcharrayproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArrayProperties" + }, + "JobDefinition": { + "markdownDescription": "The ARN or name of the job definition to use if the event target is an AWS Batch job\\. This job definition must already exist\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobDefinition", + "type": "string" + }, + "JobName": { + "markdownDescription": "The name to use for this execution of the job, if the target is an AWS Batch job\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobName", + "type": "string" + }, + "RetryStrategy": { + "$ref": "#/definitions/AWS::Events::Rule.BatchRetryStrategy", + "markdownDescription": "The retry strategy to use for failed jobs, if the target is an AWS Batch job\\. The retry strategy is the number of times to retry the failed job execution\\. Valid values are 1\u201310\\. When you specify a retry strategy here, it overrides the retry strategy defined in the job definition\\. \n*Required*: No \n*Type*: [BatchRetryStrategy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-batchretrystrategy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryStrategy" + } + }, + "required": [ + "JobDefinition", + "JobName" + ], + "type": "object" + }, + "AWS::Events::Rule.BatchRetryStrategy": { + "additionalProperties": false, + "properties": { + "Attempts": { + "markdownDescription": "The number of times to attempt to retry, if the job fails\\. Valid values are 1\u201310\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attempts", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Events::Rule.CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "markdownDescription": "The base value designates how many tasks, at a minimum, to run on the specified capacity provider\\. Only one capacity provider in a capacity provider strategy can have a base defined\\. If no value is specified, the default value of 0 is used\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Base", + "type": "number" + }, + "CapacityProvider": { + "markdownDescription": "The short name of the capacity provider\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityProvider", + "type": "string" + }, + "Weight": { + "markdownDescription": "The weight value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider\\. The weight value is taken into consideration after the base value, if defined, is satisfied\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Weight", + "type": "number" + } + }, + "required": [ + "CapacityProvider" + ], + "type": "object" + }, + "AWS::Events::Rule.DeadLetterConfig": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The ARN of the SQS queue specified as the target for the dead\\-letter queue\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Events::Rule.EcsParameters": { + "additionalProperties": false, + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/AWS::Events::Rule.CapacityProviderStrategyItem" + }, + "markdownDescription": "The capacity provider strategy to use for the task\\. \nIf a `capacityProviderStrategy` is specified, the `launchType` parameter must be omitted\\. If no `capacityProviderStrategy` or launchType is specified, the `defaultCapacityProviderStrategy` for the cluster is used\\. \n*Required*: No \n*Type*: List of [CapacityProviderStrategyItem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-capacityproviderstrategyitem.html) \n*Maximum*: `6` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapacityProviderStrategy", + "type": "array" + }, + "EnableECSManagedTags": { + "markdownDescription": "Specifies whether to enable Amazon ECS managed tags for the task\\. For more information, see [Tagging Your Amazon ECS Resources](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) in the Amazon Elastic Container Service Developer Guide\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableECSManagedTags", + "type": "boolean" + }, + "EnableExecuteCommand": { + "markdownDescription": "Whether or not to enable the execute command functionality for the containers in this task\\. If true, this enables execute command functionality on all containers in the task\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableExecuteCommand", + "type": "boolean" + }, + "Group": { + "markdownDescription": "Specifies an ECS task group for the task\\. The maximum length is 255 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Group", + "type": "string" + }, + "LaunchType": { + "markdownDescription": "Specifies the launch type on which your task is running\\. The launch type that you specify here must match one of the launch type \\(compatibilities\\) of the target task\\. The `FARGATE` value is supported only in the Regions where AWS Fargate with Amazon ECS is supported\\. For more information, see [AWS Fargate on Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS-Fargate.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `EC2 | EXTERNAL | FARGATE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchType", + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::Events::Rule.NetworkConfiguration", + "markdownDescription": "Use this structure if the Amazon ECS task uses the `awsvpc` network mode\\. This structure specifies the VPC subnets and security groups associated with the task, and whether a public IP address is to be used\\. This structure is required if `LaunchType` is `FARGATE` because the `awsvpc` mode is required for Fargate tasks\\. \nIf you specify `NetworkConfiguration` when the target ECS task does not use the `awsvpc` network mode, the task fails\\. \n*Required*: No \n*Type*: [NetworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-networkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/AWS::Events::Rule.PlacementConstraint" + }, + "markdownDescription": "An array of placement constraint objects to use for the task\\. You can specify up to 10 constraints per task \\(including constraints in the task definition and those specified at runtime\\)\\. \n*Required*: No \n*Type*: List of [PlacementConstraint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-placementconstraint.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlacementConstraints", + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/AWS::Events::Rule.PlacementStrategy" + }, + "markdownDescription": "The placement strategy objects to use for the task\\. You can specify a maximum of five strategy rules per task\\. \n*Required*: No \n*Type*: List of [PlacementStrategy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-placementstrategy.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlacementStrategies", + "type": "array" + }, + "PlatformVersion": { + "markdownDescription": "Specifies the platform version for the task\\. Specify only the numeric portion of the platform version, such as `1.1.0`\\. \nThis structure is used only if `LaunchType` is `FARGATE`\\. For more information about valid platform versions, see [AWS Fargate Platform Versions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) in the *Amazon Elastic Container Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlatformVersion", + "type": "string" + }, + "PropagateTags": { + "markdownDescription": "Specifies whether to propagate the tags from the task definition to the task\\. If no value is specified, the tags are not propagated\\. Tags can only be propagated to the task during task creation\\. To add tags to a task after task creation, use the TagResource API action\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `TASK_DEFINITION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropagateTags", + "type": "string" + }, + "ReferenceId": { + "markdownDescription": "The reference ID to use for the task\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReferenceId", + "type": "string" + }, + "TagList": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The metadata that you apply to the task to help you categorize and organize them\\. Each tag consists of a key and an optional value, both of which you define\\. To learn more, see [RunTask](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html#ECS-RunTask-request-tags) in the Amazon ECS API Reference\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-tag.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagList", + "type": "array" + }, + "TaskCount": { + "markdownDescription": "The number of tasks to create based on `TaskDefinition`\\. The default is 1\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskCount", + "type": "number" + }, + "TaskDefinitionArn": { + "markdownDescription": "The ARN of the task definition to use if the event target is an Amazon ECS task\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskDefinitionArn", + "type": "string" + } + }, + "required": [ + "TaskDefinitionArn" + ], + "type": "object" + }, + "AWS::Events::Rule.HttpParameters": { + "additionalProperties": false, + "properties": { + "HeaderParameters": { + "additionalProperties": true, + "markdownDescription": "The headers that need to be sent as part of request invoking the API Gateway API or EventBridge ApiDestination\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "HeaderParameters", + "type": "object" + }, + "PathParameterValues": { + "items": { + "type": "string" + }, + "markdownDescription": "The path parameter values to be used to populate API Gateway API or EventBridge ApiDestination path wildcards \\(\"\\*\"\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PathParameterValues", + "type": "array" + }, + "QueryStringParameters": { + "additionalProperties": true, + "markdownDescription": "The query string keys/values that need to be sent as part of request invoking the API Gateway API or EventBridge ApiDestination\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "QueryStringParameters", + "type": "object" + } + }, + "type": "object" + }, + "AWS::Events::Rule.InputTransformer": { + "additionalProperties": false, + "properties": { + "InputPathsMap": { + "additionalProperties": true, + "markdownDescription": "Map of JSON paths to be extracted from the event\\. You can then insert these in the template in `InputTemplate` to produce the output you want to be sent to the target\\. \n `InputPathsMap` is an array key\\-value pairs, where each value is a valid JSON path\\. You can have as many as 100 key\\-value pairs\\. You must use JSON dot notation, not bracket notation\\. \nThe keys cannot start with \"AWS\\.\" \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "InputPathsMap", + "type": "object" + }, + "InputTemplate": { + "markdownDescription": "Input template where you specify placeholders that will be filled with the values of the keys from `InputPathsMap` to customize the data sent to the target\\. Enclose each `InputPathsMaps` value in brackets: <*value*> \nIf `InputTemplate` is a JSON object \\(surrounded by curly braces\\), the following restrictions apply: \n+ The placeholder cannot be used as an object key\\.\nThe following example shows the syntax for using `InputPathsMap` and `InputTemplate`\\. \n ` \"InputTransformer\":` \n `{` \n `\"InputPathsMap\": {\"instance\": \"$.detail.instance\",\"status\": \"$.detail.status\"},` \n `\"InputTemplate\": \" is in state \"` \n `}` \nTo have the `InputTemplate` include quote marks within a JSON string, escape each quote marks with a slash, as in the following example: \n ` \"InputTransformer\":` \n `{` \n `\"InputPathsMap\": {\"instance\": \"$.detail.instance\",\"status\": \"$.detail.status\"},` \n `\"InputTemplate\": \" is in state \\\"\\\"\"` \n `}` \nThe `InputTemplate` can also be valid JSON with varibles in quotes or out, as in the following example: \n ` \"InputTransformer\":` \n `{` \n `\"InputPathsMap\": {\"instance\": \"$.detail.instance\",\"status\": \"$.detail.status\"},` \n `\"InputTemplate\": '{\"myInstance\": ,\"myStatus\": \" is in state \\\"\\\"\"}'` \n `}` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `8192` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputTemplate", + "type": "string" + } + }, + "required": [ + "InputTemplate" + ], + "type": "object" + }, + "AWS::Events::Rule.KinesisParameters": { + "additionalProperties": false, + "properties": { + "PartitionKeyPath": { + "markdownDescription": "The JSON path to be extracted from the event and used as the partition key\\. For more information, see [Amazon Kinesis Streams Key Concepts](https://docs.aws.amazon.com/streams/latest/dev/key-concepts.html#partition-key) in the *Amazon Kinesis Streams Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PartitionKeyPath", + "type": "string" + } + }, + "required": [ + "PartitionKeyPath" + ], + "type": "object" + }, + "AWS::Events::Rule.NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AWS::Events::Rule.AwsVpcConfiguration", + "markdownDescription": "Use this structure to specify the VPC subnets and security groups for the task, and whether a public IP address is to be used\\. This structure is relevant only for ECS tasks that use the `awsvpc` network mode\\. \n*Required*: No \n*Type*: [AwsVpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-awsvpcconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsVpcConfiguration" + } + }, + "type": "object" + }, + "AWS::Events::Rule.PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "markdownDescription": "A cluster query language expression to apply to the constraint\\. You cannot specify an expression if the constraint type is `distinctInstance`\\. To learn more, see [Cluster Query Language](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html) in the Amazon Elastic Container Service Developer Guide\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Expression", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of constraint\\. Use distinctInstance to ensure that each task in a particular group is running on a different container instance\\. Use memberOf to restrict the selection to a group of valid candidates\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `distinctInstance | memberOf` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Events::Rule.PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "markdownDescription": "The field to apply the placement strategy against\\. For the spread placement strategy, valid values are instanceId \\(or host, which has the same effect\\), or any platform or custom attribute that is applied to a container instance, such as attribute:ecs\\.availability\\-zone\\. For the binpack placement strategy, valid values are cpu and memory\\. For the random placement strategy, this field is not used\\. \n*Required*: No \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Field", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of placement strategy\\. The random placement strategy randomly places tasks on available candidates\\. The spread placement strategy spreads placement across available candidates evenly based on the field parameter\\. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter\\. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory \\(but still enough to run the task\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `binpack | random | spread` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Events::Rule.RedshiftDataParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "markdownDescription": "The name of the database\\. Required when authenticating using temporary credentials\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", + "type": "string" + }, + "DbUser": { + "markdownDescription": "The database user name\\. Required when authenticating using temporary credentials\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DbUser", + "type": "string" + }, + "SecretManagerArn": { + "markdownDescription": "The name or ARN of the secret that enables access to the database\\. Required when authenticating using AWS Secrets Manager\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Pattern*: `(^arn:aws([a-z]|\\-)*:secretsmanager:[a-z0-9-.]+:.*)|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretManagerArn", + "type": "string" + }, + "Sql": { + "markdownDescription": "The SQL statement text to run\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sql", + "type": "string" + }, + "StatementName": { + "markdownDescription": "The name of the SQL statement\\. You can name the SQL statement when you create it to identify the query\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatementName", + "type": "string" + }, + "WithEvent": { + "markdownDescription": "Indicates whether to send an event back to EventBridge after the SQL statement runs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WithEvent", + "type": "boolean" + } + }, + "required": [ + "Database", + "Sql" + ], + "type": "object" + }, + "AWS::Events::Rule.RetryPolicy": { + "additionalProperties": false, + "properties": { + "MaximumEventAgeInSeconds": { + "markdownDescription": "The maximum amount of time, in seconds, to continue to make retry attempts\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `60` \n*Maximum*: `86400` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumEventAgeInSeconds", + "type": "number" + }, + "MaximumRetryAttempts": { + "markdownDescription": "The maximum number of retry attempts to make before the request fails\\. Retry attempts continue until either the maximum number of attempts is made or until the duration of the `MaximumEventAgeInSeconds` is met\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `185` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumRetryAttempts", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Events::Rule.RunCommandParameters": { + "additionalProperties": false, + "properties": { + "RunCommandTargets": { + "items": { + "$ref": "#/definitions/AWS::Events::Rule.RunCommandTarget" + }, + "markdownDescription": "Currently, we support including only one RunCommandTarget block, which specifies either an array of InstanceIds or a tag\\. \n*Required*: Yes \n*Type*: List of [RunCommandTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandtarget.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RunCommandTargets", + "type": "array" + } + }, + "required": [ + "RunCommandTargets" + ], + "type": "object" + }, + "AWS::Events::Rule.RunCommandTarget": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "Can be either `tag:` *tag\\-key* or `InstanceIds`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "If `Key` is `tag:` *tag\\-key*, `Values` is a list of tag values\\. If `Key` is `InstanceIds`, `Values` is a list of Amazon EC2 instance IDs\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "required": [ + "Key", + "Values" + ], + "type": "object" + }, + "AWS::Events::Rule.SageMakerPipelineParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "Name of parameter to start execution of a SageMaker Model Building Pipeline\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9])*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "Value of parameter to start execution of a SageMaker Model Building Pipeline\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::Events::Rule.SageMakerPipelineParameters": { + "additionalProperties": false, + "properties": { + "PipelineParameterList": { + "items": { + "$ref": "#/definitions/AWS::Events::Rule.SageMakerPipelineParameter" + }, + "markdownDescription": "List of Parameter names and values for SageMaker Model Building Pipeline execution\\. \n*Required*: No \n*Type*: List of [SageMakerPipelineParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-sagemakerpipelineparameter.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PipelineParameterList", + "type": "array" + } + }, + "type": "object" + }, + "AWS::Events::Rule.SqsParameters": { + "additionalProperties": false, + "properties": { + "MessageGroupId": { + "markdownDescription": "The FIFO message group ID to use as the target\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageGroupId", + "type": "string" + } + }, + "required": [ + "MessageGroupId" + ], + "type": "object" + }, + "AWS::Events::Rule.Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "A string you can use to assign a value\\. The combination of tag keys and values can help you organize and categorize your resources\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The value for the specified tag key\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Events::Rule.Target": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the target\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "BatchParameters": { + "$ref": "#/definitions/AWS::Events::Rule.BatchParameters", + "markdownDescription": "If the event target is an AWS Batch job, this contains the job definition, job name, and other parameters\\. For more information, see [Jobs](https://docs.aws.amazon.com/batch/latest/userguide/jobs.html) in the * AWS Batch User Guide*\\. \n*Required*: No \n*Type*: [BatchParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-batchparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BatchParameters" + }, + "DeadLetterConfig": { + "$ref": "#/definitions/AWS::Events::Rule.DeadLetterConfig", + "markdownDescription": "The `DeadLetterConfig` that defines the target queue to send dead\\-letter queue events to\\. \n*Required*: No \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeadLetterConfig" + }, + "EcsParameters": { + "$ref": "#/definitions/AWS::Events::Rule.EcsParameters", + "markdownDescription": "Contains the Amazon ECS task definition and task count to be used, if the event target is an Amazon ECS task\\. For more information about Amazon ECS tasks, see [Task Definitions ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon EC2 Container Service Developer Guide*\\. \n*Required*: No \n*Type*: [EcsParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EcsParameters" + }, + "HttpParameters": { + "$ref": "#/definitions/AWS::Events::Rule.HttpParameters", + "markdownDescription": "Contains the HTTP parameters to use when the target is a API Gateway endpoint or EventBridge ApiDestination\\. \nIf you specify an API Gateway API or EventBridge ApiDestination as a target, you can use this parameter to specify headers, path parameters, and query string keys/values as part of your target invoking request\\. If you're using ApiDestinations, the corresponding Connection can also have these values configured\\. In case of any conflicting keys, values from the Connection take precedence\\. \n*Required*: No \n*Type*: [HttpParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-httpparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpParameters" + }, + "Id": { + "markdownDescription": "The ID of the target within the specified rule\\. Use this ID to reference the target when updating the rule\\. We recommend using a memorable and unique string\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "Input": { + "markdownDescription": "Valid JSON text passed to the target\\. In this case, nothing from the event itself is passed to the target\\. For more information, see [The JavaScript Object Notation \\(JSON\\) Data Interchange Format](http://www.rfc-editor.org/rfc/rfc7159.txt)\\. \n*Required*: No \n*Type*: String \n*Maximum*: `8192` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Input", + "type": "string" + }, + "InputPath": { + "markdownDescription": "The value of the JSONPath that is used for extracting part of the matched event when passing it to the target\\. You may use JSON dot notation or bracket notation\\. For more information about JSON paths, see [JSONPath](http://goessner.net/articles/JsonPath/)\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputPath", + "type": "string" + }, + "InputTransformer": { + "$ref": "#/definitions/AWS::Events::Rule.InputTransformer", + "markdownDescription": "Settings to enable you to provide custom input to a target based on certain event data\\. You can extract one or more key\\-value pairs from the event and then use that data to send customized input to the target\\. \n*Required*: No \n*Type*: [InputTransformer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputTransformer" + }, + "KinesisParameters": { + "$ref": "#/definitions/AWS::Events::Rule.KinesisParameters", + "markdownDescription": "The custom parameter you can use to control the shard assignment, when the target is a Kinesis data stream\\. If you do not include this parameter, the default is to use the `eventId` as the partition key\\. \n*Required*: No \n*Type*: [KinesisParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-kinesisparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KinesisParameters" + }, + "RedshiftDataParameters": { + "$ref": "#/definitions/AWS::Events::Rule.RedshiftDataParameters", + "markdownDescription": "Contains the Amazon Redshift Data API parameters to use when the target is a Amazon Redshift cluster\\. \nIf you specify a Amazon Redshift Cluster as a Target, you can use this to specify parameters to invoke the Amazon Redshift Data API ExecuteStatement based on EventBridge events\\. \n*Required*: No \n*Type*: [RedshiftDataParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedshiftDataParameters" + }, + "RetryPolicy": { + "$ref": "#/definitions/AWS::Events::Rule.RetryPolicy", + "markdownDescription": "The `RetryPolicy` object that contains the retry policy configuration to use for the dead\\-letter queue\\. \n*Required*: No \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-retrypolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryPolicy" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role to be used for this target when the rule is triggered\\. If one rule triggers multiple targets, you can use a different IAM role for each target\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "RunCommandParameters": { + "$ref": "#/definitions/AWS::Events::Rule.RunCommandParameters", + "markdownDescription": "Parameters used when you are using the rule to invoke Amazon EC2 Run Command\\. \n*Required*: No \n*Type*: [RunCommandParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RunCommandParameters" + }, + "SageMakerPipelineParameters": { + "$ref": "#/definitions/AWS::Events::Rule.SageMakerPipelineParameters", + "markdownDescription": "Contains the SageMaker Model Building Pipeline parameters to start execution of a SageMaker Model Building Pipeline\\. \nIf you specify a SageMaker Model Building Pipeline as a target, you can use this to specify parameters to start a pipeline execution based on EventBridge events\\. \n*Required*: No \n*Type*: [SageMakerPipelineParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-sagemakerpipelineparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SageMakerPipelineParameters" + }, + "SqsParameters": { + "$ref": "#/definitions/AWS::Events::Rule.SqsParameters", + "markdownDescription": "Contains the message group ID to use when the target is a FIFO queue\\. \nIf you specify an SQS FIFO queue as a target, the queue must have content\\-based deduplication enabled\\. \n*Required*: No \n*Type*: [SqsParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-sqsparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "An optional description of the experiment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "MetricGoals": { + "items": { + "$ref": "#/definitions/AWS::Evidently::Experiment.MetricGoalObject" + }, + "markdownDescription": "An array of structures that defines the metrics used for the experiment, and whether a higher or lower value for each metric is the goal\\. You can use up to three metrics in an experiment\\. \n*Required*: Yes \n*Type*: List of [MetricGoalObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-metricgoalobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricGoals", + "type": "array" + }, + "Name": { + "markdownDescription": "A name for the new experiment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "OnlineAbConfig": { + "$ref": "#/definitions/AWS::Evidently::Experiment.OnlineAbConfigObject", + "markdownDescription": "A structure that contains the configuration of which variation to use as the \"control\" version\\. The \"control\" version is used for comparison with other variations\\. This structure also specifies how much experiment traffic is allocated to each variation\\. \n*Required*: Yes \n*Type*: [OnlineAbConfigObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-onlineabconfigobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnlineAbConfig" + }, + "Project": { + "markdownDescription": "The name or the ARN of the project where this experiment is to be created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Project", + "type": "string" + }, + "RandomizationSalt": { + "markdownDescription": "When Evidently assigns a particular user session to an experiment, it must use a randomization ID to determine which variation the user session is served\\. This randomization ID is a combination of the entity ID and `randomizationSalt`\\. If you omit `randomizationSalt`, Evidently uses the experiment name as the `randomizationSalt`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RandomizationSalt", + "type": "string" + }, + "RemoveSegment": { + "type": "boolean" + }, + "RunningStatus": { + "$ref": "#/definitions/AWS::Evidently::Experiment.RunningStatusObject" + }, + "SamplingRate": { + "markdownDescription": "The portion of the available audience that you want to allocate to this experiment, in thousandths of a percent\\. The available audience is the total audience minus the audience that you have allocated to overrides or current launches of this feature\\. \nThis is represented in thousandths of a percent\\. For example, specify 10,000 to allocate 10% of the available audience\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SamplingRate", + "type": "number" + }, + "Segment": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Assigns one or more tags \\(key\\-value pairs\\) to the experiment\\. \nTags can help you organize and categorize your resources\\. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values\\. \nTags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters\\. \nYou can associate as many as 50 tags with an experiment\\. \nFor more information, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Treatments": { + "items": { + "$ref": "#/definitions/AWS::Evidently::Experiment.TreatmentObject" + }, + "markdownDescription": "An array of structures that describe the configuration of each feature variation used in the experiment\\. \n*Required*: Yes \n*Type*: List of [TreatmentObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmentobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Treatments", + "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": { + "markdownDescription": "`INCREASE` means that a variation with a higher number for this metric is performing better\\. \n`DECREASE` means that a variation with a lower number for this metric is performing better\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DesiredChange", + "type": "string" + }, + "EntityIdKey": { + "markdownDescription": "The entity, such as a user or session, that does an action that causes a metric value to be recorded\\. An example is `userDetails.userID`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntityIdKey", + "type": "string" + }, + "EventPattern": { + "markdownDescription": "The EventBridge event pattern that defines how the metric is recorded\\. \nFor more information about EventBridge event patterns, see [Amazon EventBridge event patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventPattern", + "type": "string" + }, + "MetricName": { + "markdownDescription": "A name for the metric\\. It can include up to 255 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", + "type": "string" + }, + "UnitLabel": { + "markdownDescription": "A label for the units that the metric is measuring\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnitLabel", + "type": "string" + }, + "ValueKey": { + "markdownDescription": "The JSON path to reference the numerical metric value in the event\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ValueKey", + "type": "string" + } + }, + "required": [ + "DesiredChange", + "EntityIdKey", + "MetricName", + "ValueKey" + ], + "type": "object" + }, + "AWS::Evidently::Experiment.OnlineAbConfigObject": { + "additionalProperties": false, + "properties": { + "ControlTreatmentName": { + "markdownDescription": "The name of the variation that is to be the default variation that the other variations are compared to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ControlTreatmentName", + "type": "string" + }, + "TreatmentWeights": { + "items": { + "$ref": "#/definitions/AWS::Evidently::Experiment.TreatmentToWeight" + }, + "markdownDescription": "A set of key\\-value pairs\\. The keys are treatment names, and the values are the portion of experiment traffic to be assigned to that treatment\\. Specify the traffic portion in thousandths of a percent, so 20,000 for a variation would allocate 20% of the experiment traffic to that variation\\. \n*Required*: No \n*Type*: List of [TreatmentToWeight](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmenttoweight.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TreatmentWeights", + "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": { + "markdownDescription": "The description of the treatment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Feature": { + "markdownDescription": "The name of the feature for this experiment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Feature", + "type": "string" + }, + "TreatmentName": { + "markdownDescription": "A name for this treatment\\. It can include up to 127 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TreatmentName", + "type": "string" + }, + "Variation": { + "markdownDescription": "The name of the variation to use for this treatment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Variation", + "type": "string" + } + }, + "required": [ + "Feature", + "TreatmentName", + "Variation" + ], + "type": "object" + }, + "AWS::Evidently::Experiment.TreatmentToWeight": { + "additionalProperties": false, + "properties": { + "SplitWeight": { + "markdownDescription": "The portion of experiment traffic to allocate to this treatment\\. Specify the traffic portion in thousandths of a percent, so 20,000 allocated to a treatment would allocate 20% of the experiment traffic to that treatment\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SplitWeight", + "type": "number" + }, + "Treatment": { + "markdownDescription": "The name of the treatment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the variation to use as the default variation\\. The default variation is served to users who are not allocated to any ongoing launches or experiments of this feature\\. \nThis variation must also be listed in the `Variations` structure\\. \nIf you omit `DefaultVariation`, the first variation listed in the `Variations` structure is used as the default variation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultVariation", + "type": "string" + }, + "Description": { + "markdownDescription": "An optional description of the feature\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "EntityOverrides": { + "items": { + "$ref": "#/definitions/AWS::Evidently::Feature.EntityOverride" + }, + "markdownDescription": "Specify users that should always be served a specific variation of a feature\\. Each user is specified by a key\\-value pair \\. For each key, specify a user by entering their user ID, account ID, or some other identifier\\. For the value, specify the name of the variation that they are to be served\\. \n*Required*: No \n*Type*: List of [EntityOverride](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-entityoverride.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntityOverrides", + "type": "array" + }, + "EvaluationStrategy": { + "markdownDescription": "Specify `ALL_RULES` to activate the traffic allocation specified by any ongoing launches or experiments\\. Specify `DEFAULT_VARIATION` to serve the default variation to all users instead\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EvaluationStrategy", + "type": "string" + }, + "Name": { + "markdownDescription": "The name for the feature\\. It can include up to 127 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Project": { + "markdownDescription": "The name or ARN of the project that is to contain the new feature\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Project", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Assigns one or more tags \\(key\\-value pairs\\) to the feature\\. \nTags can help you organize and categorize your resources\\. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values\\. \nTags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters\\. \nYou can associate as many as 50 tags with a feature\\. \nFor more information, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Variations": { + "items": { + "$ref": "#/definitions/AWS::Evidently::Feature.VariationObject" + }, + "markdownDescription": "An array of structures that contain the configuration of the feature's different variations\\. \nEach `VariationObject` in the `Variations` array for a feature must have the same type of value \\(`BooleanValue`, `DoubleValue`, `LongValue` or `StringValue`\\)\\. \n*Required*: Yes \n*Type*: List of [VariationObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-variationobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Variations", + "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": { + "markdownDescription": "The entity ID to be served the variation specified in `Variation`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntityId", + "type": "string" + }, + "Variation": { + "markdownDescription": "The name of the variation to serve to the user session that matches the `EntityId`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Variation", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Evidently::Feature.VariationObject": { + "additionalProperties": false, + "properties": { + "BooleanValue": { + "markdownDescription": "The value assigned to this variation, if the variation type is boolean\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BooleanValue", + "type": "boolean" + }, + "DoubleValue": { + "markdownDescription": "The value assigned to this variation, if the variation type is a double\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DoubleValue", + "type": "number" + }, + "LongValue": { + "markdownDescription": "The value assigned to this variation, if the variation type is a long\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LongValue", + "type": "number" + }, + "StringValue": { + "markdownDescription": "The value assigned to this variation, if the variation type is a string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StringValue", + "type": "string" + }, + "VariationName": { + "markdownDescription": "A name for the variation\\. It can include up to 127 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "An optional description for the launch\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "ExecutionStatus": { + "$ref": "#/definitions/AWS::Evidently::Launch.ExecutionStatusObject" + }, + "Groups": { + "items": { + "$ref": "#/definitions/AWS::Evidently::Launch.LaunchGroupObject" + }, + "markdownDescription": "An array of structures that contains the feature and variations that are to be used for the launch\\. You can up to five launch groups in a launch\\. \n*Required*: Yes \n*Type*: List of [LaunchGroupObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-launchgroupobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Groups", + "type": "array" + }, + "MetricMonitors": { + "items": { + "$ref": "#/definitions/AWS::Evidently::Launch.MetricDefinitionObject" + }, + "markdownDescription": "An array of structures that define the metrics that will be used to monitor the launch performance\\. You can have up to three metric monitors in the array\\. \n*Required*: No \n*Type*: List of [MetricDefinitionObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-metricdefinitionobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricMonitors", + "type": "array" + }, + "Name": { + "markdownDescription": "The name for the launch\\. It can include up to 127 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Project": { + "markdownDescription": "The name or ARN of the project that you want to create the launch in\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Project", + "type": "string" + }, + "RandomizationSalt": { + "markdownDescription": "When Evidently assigns a particular user session to a launch, it must use a randomization ID to determine which variation the user session is served\\. This randomization ID is a combination of the entity ID and `randomizationSalt`\\. If you omit `randomizationSalt`, Evidently uses the launch name as the `randomizationsSalt`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RandomizationSalt", + "type": "string" + }, + "ScheduledSplitsConfig": { + "items": { + "$ref": "#/definitions/AWS::Evidently::Launch.StepConfig" + }, + "markdownDescription": "An array of structures that define the traffic allocation percentages among the feature variations during each step of the launch\\. \n*Required*: Yes \n*Type*: List of [StepConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-stepconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduledSplitsConfig", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Assigns one or more tags \\(key\\-value pairs\\) to the launch\\. \nTags can help you organize and categorize your resources\\. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values\\. \nTags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters\\. \nYou can associate as many as 50 tags with a launch\\. \nFor more information, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The name of the launch group\\. It can include up to 127 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupName", + "type": "string" + }, + "SplitWeight": { + "markdownDescription": "The portion of launch traffic to allocate to this launch group\\. \nThis is represented in thousandths of a percent\\. For example, specify 20,000 to allocate 20% of the launch audience to this launch group\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SplitWeight", + "type": "number" + } + }, + "required": [ + "GroupName", + "SplitWeight" + ], + "type": "object" + }, + "AWS::Evidently::Launch.LaunchGroupObject": { + "additionalProperties": false, + "properties": { + "Description": { + "markdownDescription": "A description of the launch group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Feature": { + "markdownDescription": "The feature that this launch is using\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Feature", + "type": "string" + }, + "GroupName": { + "markdownDescription": "A name for this launch group\\. It can include up to 127 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupName", + "type": "string" + }, + "Variation": { + "markdownDescription": "The feature variation to use for this launch group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Variation", + "type": "string" + } + }, + "required": [ + "Feature", + "GroupName", + "Variation" + ], + "type": "object" + }, + "AWS::Evidently::Launch.MetricDefinitionObject": { + "additionalProperties": false, + "properties": { + "EntityIdKey": { + "markdownDescription": "The entity, such as a user or session, that does an action that causes a metric value to be recorded\\. An example is `userDetails.userID`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntityIdKey", + "type": "string" + }, + "EventPattern": { + "markdownDescription": "The EventBridge event pattern that defines how the metric is recorded\\. \nFor more information about EventBridge event patterns, see [Amazon EventBridge event patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventPattern", + "type": "string" + }, + "MetricName": { + "markdownDescription": "A name for the metric\\. It can include up to 255 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", + "type": "string" + }, + "UnitLabel": { + "markdownDescription": "A label for the units that the metric is measuring\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnitLabel", + "type": "string" + }, + "ValueKey": { + "markdownDescription": "The value that is tracked to produce the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "An array of structures that define how much launch traffic to allocate to each launch group during this step of the launch\\. \n*Required*: Yes \n*Type*: List of [GroupToWeight](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-grouptoweight.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupWeights", + "type": "array" + }, + "SegmentOverrides": { + "items": { + "$ref": "#/definitions/AWS::Evidently::Launch.SegmentOverride" + }, + "type": "array" + }, + "StartTime": { + "markdownDescription": "The date and time to start this step of the launch\\. Use UTC format, `yyyy-MM-ddTHH:mm:ssZ`\\. For example, `2025-11-25T23:59:59Z` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "A structure that contains information about where Evidently is to store evaluation events for longer term storage, if you choose to do so\\. If you choose not to store these events, Evidently deletes them after using them to produce metrics and other experiment results that you can view\\. \nYou can't specify both `CloudWatchLogs` and `S3Destination` in the same operation\\. \n*Required*: No \n*Type*: [DataDeliveryObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-project-datadeliveryobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataDelivery" + }, + "Description": { + "markdownDescription": "An optional description of the project\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name for the project\\. It can include up to 127 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Assigns one or more tags \\(key\\-value pairs\\) to the project\\. \nTags can help you organize and categorize your resources\\. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values\\. \nTags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters\\. \nYou can associate as many as 50 tags with a project\\. \nFor more information, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "If the project stores evaluation events in CloudWatch Logs, this structure stores the log group name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroup", + "type": "string" + }, + "S3": { + "$ref": "#/definitions/AWS::Evidently::Project.S3Destination", + "markdownDescription": "If the project stores evaluation events in an Amazon S3 bucket, this structure stores the bucket name and bucket prefix\\. \n*Required*: No \n*Type*: [S3Destination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-project-s3destination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3" + } + }, + "type": "object" + }, + "AWS::Evidently::Project.S3Destination": { + "additionalProperties": false, + "properties": { + "BucketName": { + "markdownDescription": "The name of the bucket in which Evidently stores evaluation events\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", + "type": "string" + }, + "Prefix": { + "markdownDescription": "The bucket prefix in which Evidently stores evaluation events\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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, + "markdownDescription": "The actions for the experiment\\. \n*Required*: No \n*Type*: Map of [ExperimentTemplateAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplateaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.ExperimentTemplateAction" + } + }, + "title": "Actions", + "type": "object" + }, + "Description": { + "markdownDescription": "A description for the experiment template\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[\\s\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "LogConfiguration": { + "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.ExperimentTemplateLogConfiguration", + "markdownDescription": "The configuration for experiment logging\\. \n*Required*: No \n*Type*: [ExperimentTemplateLogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatelogconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogConfiguration" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `[\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "StopConditions": { + "items": { + "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.ExperimentTemplateStopCondition" + }, + "markdownDescription": "The stop conditions\\. \n*Required*: Yes \n*Type*: List of [ExperimentTemplateStopCondition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatestopcondition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StopConditions", + "type": "array" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "The tags to apply to the experiment template\\. \n*Required*: Yes \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "type": "object" + }, + "Targets": { + "additionalProperties": false, + "markdownDescription": "The targets for the experiment\\. \n*Required*: Yes \n*Type*: Map of [ExperimentTemplateTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatetarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.ExperimentTemplateTarget" + } + }, + "title": "Targets", + "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": { + "markdownDescription": "The ID of the action\\. The format of the action ID is: aws:*service\\-name*:*action\\-type*\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `[\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionId", + "type": "string" + }, + "Description": { + "markdownDescription": "A description for the action\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[\\s\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Parameters": { + "additionalProperties": true, + "markdownDescription": "The parameters for the action, if applicable\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Parameters", + "type": "object" + }, + "StartAfter": { + "items": { + "type": "string" + }, + "markdownDescription": "The name of the action that must be completed before the current action starts\\. Omit this parameter to run the action at the start of the experiment\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartAfter", + "type": "array" + }, + "Targets": { + "additionalProperties": true, + "markdownDescription": "The targets for the action\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Targets", + "type": "object" + } + }, + "required": [ + "ActionId" + ], + "type": "object" + }, + "AWS::FIS::ExperimentTemplate.ExperimentTemplateLogConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsConfiguration": { + "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.CloudWatchLogsConfiguration", + "markdownDescription": "The configuration for experiment logging to Amazon CloudWatch Logs\\. The supported field is `logGroupArn`\\. For example: \n`{\"logGroupArn\": \"aws:arn:logs:region_name:account_id:log-group:log_group_name\"}` \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogsConfiguration" + }, + "LogSchemaVersion": { + "markdownDescription": "The schema version\\. The supported value is 1\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogSchemaVersion", + "type": "number" + }, + "S3Configuration": { + "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.S3Configuration", + "markdownDescription": "The configuration for experiment logging to Amazon S3\\. The following fields are supported: \n+ `bucketName` \\- The name of the destination bucket\\.\n+ `prefix` \\- An optional bucket prefix\\.\nFor example: \n`{\"bucketName\": \"my-s3-bucket\", \"prefix\": \"log-folder\"}` \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Configuration" + } + }, + "required": [ + "LogSchemaVersion" + ], + "type": "object" + }, + "AWS::FIS::ExperimentTemplate.ExperimentTemplateStopCondition": { + "additionalProperties": false, + "properties": { + "Source": { + "markdownDescription": "The source for the stop condition\\. Specify `aws:cloudwatch:alarm` if the stop condition is defined by a CloudWatch alarm\\. Specify `none` if there is no stop condition\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `[\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source", + "type": "string" + }, + "Value": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the CloudWatch alarm\\. This is required if the source is a CloudWatch alarm\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `[\\s\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Source" + ], + "type": "object" + }, + "AWS::FIS::ExperimentTemplate.ExperimentTemplateTarget": { + "additionalProperties": false, + "properties": { + "Filters": { + "items": { + "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.ExperimentTemplateTargetFilter" + }, + "markdownDescription": "The filters to apply to identify target resources using specific attributes\\. \n*Required*: No \n*Type*: List of [ExperimentTemplateTargetFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatetargetfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filters", + "type": "array" + }, + "Parameters": { + "additionalProperties": true, + "markdownDescription": "The parameters for the resource type\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Parameters", + "type": "object" + }, + "ResourceArns": { + "items": { + "type": "string" + }, + "markdownDescription": "The Amazon Resource Names \\(ARNs\\) of the resources\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceArns", + "type": "array" + }, + "ResourceTags": { + "additionalProperties": true, + "markdownDescription": "The tags for the target resources\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "ResourceTags", + "type": "object" + }, + "ResourceType": { + "markdownDescription": "The resource type\\. The resource type must be supported for the specified action\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `[\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceType", + "type": "string" + }, + "SelectionMode": { + "markdownDescription": "Scopes the identified resources to a specific count of the resources at random, or a percentage of the resources\\. All identified resources are included in the target\\. \n+ ALL \\- Run the action on all identified targets\\. This is the default\\.\n+ COUNT\\(n\\) \\- Run the action on the specified number of targets, chosen from the identified targets at random\\. For example, COUNT\\(1\\) selects one of the targets\\.\n+ PERCENT\\(n\\) \\- Run the action on the specified percentage of targets, chosen from the identified targets at random\\. For example, PERCENT\\(25\\) selects 25% of the targets\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `[\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SelectionMode", + "type": "string" + } + }, + "required": [ + "ResourceType", + "SelectionMode" + ], + "type": "object" + }, + "AWS::FIS::ExperimentTemplate.ExperimentTemplateTargetFilter": { + "additionalProperties": false, + "properties": { + "Path": { + "markdownDescription": "The attribute path for the filter\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `[\\S]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "The attribute values for the filter\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that allows Amazon SNS to record AWS Firewall Manager activity\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsRoleName", + "type": "string" + }, + "SnsTopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the SNS topic that collects notifications from AWS Firewall Manager\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Used when deleting a policy\\. If `true`, Firewall Manager performs cleanup according to the policy type\\. \nFor AWS WAF and Shield Advanced policies, Firewall Manager does the following: \n+ Deletes rule groups created by Firewall Manager\n+ Removes web ACLs from in\\-scope resources \n+ Deletes web ACLs that contain no rules or rule groups \nFor security group policies, Firewall Manager does the following for each security group in the policy: \n+ Disassociates the security group from in\\-scope resources \n+ Deletes the security group if it was created through Firewall Manager and if it's no longer associated with any resources through another policy \nAfter the cleanup, in\\-scope resources are no longer protected by web ACLs in this policy\\. Protection of out\\-of\\-scope resources remains unchanged\\. Scope is determined by tags that you create and accounts that you associate with the policy\\. When creating the policy, if you specify that only resources in specific accounts or with specific tags are in scope of the policy, those accounts and resources are handled by the policy\\. All others are out of scope\\. If you don't specify tags or accounts, all resources are in scope\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteAllPolicyResources", + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/AWS::FMS::Policy.IEMap", + "markdownDescription": "Specifies the AWS account IDs and AWS Organizations organizational units \\(OUs\\) to exclude from the policy\\. Specifying an OU is the equivalent of specifying all accounts in the OU and in any of its child OUs, including any child OUs and accounts that are added at a later time\\. \nYou can specify inclusions or exclusions, but not both\\. If you specify an `IncludeMap`, AWS Firewall Manager applies the policy to all accounts specified by the `IncludeMap`, and does not evaluate any `ExcludeMap` specifications\\. If you do not specify an `IncludeMap`, then Firewall Manager applies the policy to all accounts except for those specified by the `ExcludeMap`\\. \nYou can specify account IDs, OUs, or a combination: \n+ Specify account IDs by setting the key to `ACCOUNT`\\. For example, the following is a valid map: `{\u201cACCOUNT\u201d : [\u201caccountID1\u201d, \u201caccountID2\u201d]}`\\.\n+ Specify OUs by setting the key to `ORGUNIT`\\. For example, the following is a valid map: `{\u201cORGUNIT\u201d : [\u201couid111\u201d, \u201couid112\u201d]}`\\.\n+ Specify accounts and OUs together in a single map, separated with a comma\\. For example, the following is a valid map: `{\u201cACCOUNT\u201d : [\u201caccountID1\u201d, \u201caccountID2\u201d], \u201cORGUNIT\u201d : [\u201couid111\u201d, \u201couid112\u201d]}`\\.\n*Required*: No \n*Type*: [IEMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-iemap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludeMap" + }, + "ExcludeResourceTags": { + "markdownDescription": "Used only when tags are specified in the `ResourceTags` property\\. If this property is `True`, resources with the specified tags are not in scope of the policy\\. If it's `False`, only resources with the specified tags are in scope of the policy\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludeResourceTags", + "type": "boolean" + }, + "IncludeMap": { + "$ref": "#/definitions/AWS::FMS::Policy.IEMap", + "markdownDescription": "Specifies the AWS account IDs and AWS Organizations organizational units \\(OUs\\) to include in the policy\\. Specifying an OU is the equivalent of specifying all accounts in the OU and in any of its child OUs, including any child OUs and accounts that are added at a later time\\. \nYou can specify inclusions or exclusions, but not both\\. If you specify an `IncludeMap`, AWS Firewall Manager applies the policy to all accounts specified by the `IncludeMap`, and does not evaluate any `ExcludeMap` specifications\\. If you do not specify an `IncludeMap`, then Firewall Manager applies the policy to all accounts except for those specified by the `ExcludeMap`\\. \nYou can specify account IDs, OUs, or a combination: \n+ Specify account IDs by setting the key to `ACCOUNT`\\. For example, the following is a valid map: `{\u201cACCOUNT\u201d : [\u201caccountID1\u201d, \u201caccountID2\u201d]}`\\.\n+ Specify OUs by setting the key to `ORGUNIT`\\. For example, the following is a valid map: `{\u201cORGUNIT\u201d : [\u201couid111\u201d, \u201couid112\u201d]}`\\.\n+ Specify accounts and OUs together in a single map, separated with a comma\\. For example, the following is a valid map: `{\u201cACCOUNT\u201d : [\u201caccountID1\u201d, \u201caccountID2\u201d], \u201cORGUNIT\u201d : [\u201couid111\u201d, \u201couid112\u201d]}`\\.\n*Required*: No \n*Type*: [IEMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-iemap.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeMap" + }, + "PolicyDescription": { + "type": "string" + }, + "PolicyName": { + "markdownDescription": "The name of the AWS Firewall Manager policy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyName", + "type": "string" + }, + "RemediationEnabled": { + "markdownDescription": "Indicates if the policy should be automatically applied to new resources\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemediationEnabled", + "type": "boolean" + }, + "ResourceSetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/AWS::FMS::Policy.ResourceTag" + }, + "markdownDescription": "An array of `ResourceTag` objects, used to explicitly include resources in the policy scope or explicitly exclude them\\. If this isn't set, then tags aren't used to modify policy scope\\. See also `ExcludeResourceTags`\\. \n*Required*: No \n*Type*: List of [ResourceTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-resourcetag.html) \n*Maximum*: `8` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceTags", + "type": "array" + }, + "ResourceType": { + "markdownDescription": "The type of resource protected by or in scope of the policy\\. This is in the format shown in the [AWS Resource Types Reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)\\. To apply this policy to multiple resource types, specify a resource type of `ResourceTypeList` and then specify the resource types in a `ResourceTypeList`\\. \nFor AWS WAF and Shield Advanced, example resource types include `AWS::ElasticLoadBalancingV2::LoadBalancer` and `AWS::CloudFront::Distribution`\\. For a security group common policy, valid values are `AWS::EC2::NetworkInterface` and `AWS::EC2::Instance`\\. For a security group content audit policy, valid values are `AWS::EC2::SecurityGroup`, `AWS::EC2::NetworkInterface`, and `AWS::EC2::Instance`\\. For a security group usage audit policy, the value is `AWS::EC2::SecurityGroup`\\. For an AWS Network Firewall policy or DNS Firewall policy, the value is `AWS::EC2::VPC`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceType", + "type": "string" + }, + "ResourceTypeList": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of `ResourceType` objects\\. Use this only to specify multiple resource types\\. To specify a single resource type, use `ResourceType`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceTypeList", + "type": "array" + }, + "ResourcesCleanUp": { + "markdownDescription": "Indicates whether AWS Firewall Manager should automatically remove protections from resources that leave the policy scope and clean up resources that Firewall Manager is managing for accounts when those accounts leave policy scope\\. For example, Firewall Manager will disassociate a Firewall Manager managed web ACL from a protected customer resource when the customer resource leaves policy scope\\. \nBy default, Firewall Manager doesn't remove protections or delete Firewall Manager managed resources\\. \nThis option is not available for Shield Advanced or AWS WAF Classic policies\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourcesCleanUp", + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/AWS::FMS::Policy.SecurityServicePolicyData", + "markdownDescription": "Details about the security service that is being used to protect the resources\\. \nThis contains the following settings: \n+ Type \\- Indicates the service type that the policy uses to protect the resource\\. For security group policies, Firewall Manager supports one security group for each common policy and for each content audit policy\\. This is an adjustable limit that you can increase by contacting AWS Support\\.", + "title": "SecurityServicePolicyData" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::FMS::Policy.PolicyTag" + }, + "markdownDescription": "A collection of key:value pairs associated with an AWS resource\\. The key:value pair can be anything you define\\. Typically, the tag key represents a category \\(such as \"environment\"\\) and the tag value represents a specific value within that category \\(such as \"test,\" \"development,\" or \"production\"\\)\\. You can add up to 50 tags to each AWS resource\\. \n*Required*: No \n*Type*: List of [PolicyTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-policytag.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "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" + }, + "markdownDescription": "The account list for the map\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ACCOUNT", + "type": "array" + }, + "ORGUNIT": { + "items": { + "type": "string" + }, + "markdownDescription": "The organizational unit list for the map\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ORGUNIT", + "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": { + "markdownDescription": "Part of the key:value pair that defines a tag\\. You can use a tag key to describe a category of information, such as \"customer\\.\" Tag keys are case\\-sensitive\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "Part of the key:value pair that defines a tag\\. You can use a tag value to describe a specific value within a category, such as \"companyA\" or \"companyB\\.\" Tag values are case\\-sensitive\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::FMS::Policy.ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The resource tag key\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The resource tag value\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ID of the source backup\\. Specifies the backup that you are copying\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BackupId", + "type": "string" + }, + "FileSystemType": { + "markdownDescription": "The type of Amazon FSx file system, which can be `LUSTRE`, `WINDOWS`, `ONTAP`, or `OPENZFS`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FileSystemType", + "type": "string" + }, + "FileSystemTypeVersion": { + "markdownDescription": "\\(Optional\\) For FSx for Lustre file systems, sets the Lustre version for the file system that you're creating\\. Valid values are `2.10` and `2.12`: \n+ 2\\.10 is supported by the Scratch and Persistent\\_1 Lustre deployment types\\.\n+ 2\\.12 is supported by all Lustre deployment types\\. `2.12` is required when setting FSx for Lustre `DeploymentType` to `PERSISTENT_2`\\.\nDefault value = `2.10`, except when `DeploymentType` is set to `PERSISTENT_2`, then the default is `2.12`\\. \nIf you set `FileSystemTypeVersion` to `2.10` for a `PERSISTENT_2` Lustre deployment type, the `CreateFileSystem` operation fails\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `20` \n*Pattern*: `^[0-9](.[0-9]*)*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FileSystemTypeVersion", + "type": "string" + }, + "KmsKeyId": { + "markdownDescription": "The ID of the AWS Key Management Service \\(AWS KMS\\) key used to encrypt the file system's data for Amazon FSx for Windows File Server file systems, Amazon FSx for NetApp ONTAP file systems, and `PERSISTENT` Amazon FSx for Lustre file systems at rest\\. If this ID isn't specified, the Amazon FSx\\-managed key for your account is used\\. The scratch Amazon FSx for Lustre file systems are always encrypted at rest using the Amazon FSx\\-managed key for your account\\. For more information, see [Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) in the * AWS Key Management Service API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + }, + "LustreConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.LustreConfiguration", + "markdownDescription": "The Lustre configuration for the file system being created\\. \nThe following parameters are not supported for file systems with the `Persistent_2` deployment type\\. Instead, use `CreateDataRepositoryAssociation` to create a data repository association to link your Lustre file system to a data repository\\. \n+ `AutoImportPolicy` \n+ `ExportPath` \n+ `ImportedChunkSize` \n+ `ImportPath` \n*Required*: No \n*Type*: [LustreConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LustreConfiguration" + }, + "OntapConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.OntapConfiguration", + "markdownDescription": "The ONTAP configuration properties of the FSx for ONTAP file system that you are creating\\. \n*Required*: No \n*Type*: [OntapConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OntapConfiguration" + }, + "OpenZFSConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.OpenZFSConfiguration", + "markdownDescription": "The Amazon FSx for OpenZFS configuration properties for the file system that you are creating\\. \n*Required*: No \n*Type*: [OpenZFSConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OpenZFSConfiguration" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of IDs specifying the security groups to apply to all network interfaces created for file system access\\. This list isn't returned in later requests to describe the file system\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroupIds", + "type": "array" + }, + "StorageCapacity": { + "markdownDescription": "Sets the storage capacity of the file system that you're creating\\. `StorageCapacity` is required if you are creating a new file system\\. Do not include `StorageCapacity` if you are creating a file system from a backup\\. \nFor Lustre file systems: \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageCapacity", + "type": "number" + }, + "StorageType": { + "markdownDescription": "Sets the storage type for the file system that you're creating\\. Valid values are `SSD` and `HDD`\\. \n+ Set to `SSD` to use solid state drive storage\\. SSD is supported on all Windows, Lustre, ONTAP, and OpenZFS deployment types\\.\n+ Set to `HDD` to use hard disk drive storage\\. HDD is supported on `SINGLE_AZ_2` and `MULTI_AZ_1` Windows file system deployment types, and on `PERSISTENT` Lustre file system deployment types\\. \nDefault value is `SSD`\\. For more information, see [ Storage type options](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/optimize-fsx-costs.html#storage-type-options) in the *FSx for Windows File Server User Guide* and [Multiple storage options](https://docs.aws.amazon.com/fsx/latest/LustreGuide/what-is.html#storage-options) in the *FSx for Lustre User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `HDD | SSD` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StorageType", + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "Specifies the IDs of the subnets that the file system will be accessible from\\. For Windows and ONTAP `MULTI_AZ_1` deployment types,provide exactly two subnet IDs, one for the preferred file server and one for the standby file server\\. You specify one of these subnets as the preferred subnet using the `WindowsConfiguration > PreferredSubnetID` or `OntapConfiguration > PreferredSubnetID` properties\\. For more information about Multi\\-AZ file system configuration, see [ Availability and durability: Single\\-AZ and Multi\\-AZ file systems](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html) in the *Amazon FSx for Windows User Guide* and [ Availability and durability](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/high-availability-multiAZ.html) in the *Amazon FSx for ONTAP User Guide*\\. \nFor Windows `SINGLE_AZ_1` and `SINGLE_AZ_2` and all Lustre deployment types, provide exactly one subnet ID\\. The file server is launched in that subnet's Availability Zone\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetIds", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to associate with the file system\\. For more information, see [Tagging your Amazon EC2 resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) in the *Amazon EC2 User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "WindowsConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.WindowsConfiguration", + "markdownDescription": "The configuration object for the Microsoft Windows file system you are creating\\. This value is required if `FileSystemType` is set to `WINDOWS`\\. \n*Required*: Conditional \n*Type*: [WindowsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the destination of the audit logs\\. The destination can be any Amazon CloudWatch Logs log group ARN or Amazon Kinesis Data Firehose delivery stream ARN\\. \nThe name of the Amazon CloudWatch Logs log group must begin with the `/aws/fsx` prefix\\. The name of the Amazon Kinesis Data Firehouse delivery stream must begin with the `aws-fsx` prefix\\. \nThe destination ARN \\(either CloudWatch Logs log group or Kinesis Data Firehose delivery stream\\) must be in the same AWS partition, AWS Region, and AWS account as your Amazon FSx file system\\. \n*Required*: No \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `1024` \n*Pattern*: `^arn:[^:]{1,63}:[^:]{0,63}:[^:]{0,63}:(?:|\\d{12}):[^/].{0,1023}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuditLogDestination", + "type": "string" + }, + "FileAccessAuditLogLevel": { + "markdownDescription": "Sets which attempt type is logged by Amazon FSx for file and folder accesses\\. \n+ `SUCCESS_ONLY` \\- only successful attempts to access files or folders are logged\\.\n+ `FAILURE_ONLY` \\- only failed attempts to access files or folders are logged\\.\n+ `SUCCESS_AND_FAILURE` \\- both successful attempts and failed attempts to access files or folders are logged\\.\n+ `DISABLED` \\- access auditing of files and folders is turned off\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | FAILURE_ONLY | SUCCESS_AND_FAILURE | SUCCESS_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileAccessAuditLogLevel", + "type": "string" + }, + "FileShareAccessAuditLogLevel": { + "markdownDescription": "Sets which attempt type is logged by Amazon FSx for file share accesses\\. \n+ `SUCCESS_ONLY` \\- only successful attempts to access file shares are logged\\.\n+ `FAILURE_ONLY` \\- only failed attempts to access file shares are logged\\.\n+ `SUCCESS_AND_FAILURE` \\- both successful attempts and failed attempts to access file shares are logged\\.\n+ `DISABLED` \\- access auditing of file shares is turned off\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | FAILURE_ONLY | SUCCESS_AND_FAILURE | SUCCESS_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileShareAccessAuditLogLevel", + "type": "string" + } + }, + "required": [ + "FileAccessAuditLogLevel", + "FileShareAccessAuditLogLevel" + ], + "type": "object" + }, + "AWS::FSx::FileSystem.ClientConfigurations": { + "additionalProperties": false, + "properties": { + "Clients": { + "markdownDescription": "A value that specifies who can mount the file system\\. You can provide a wildcard character \\(`*`\\), an IP address \\(`0.0.0.0`\\), or a CIDR address \\(`192.0.2.0/24`\\)\\. By default, Amazon FSx uses the wildcard character when specifying the client\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[ -~]{1,128}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Clients", + "type": "string" + }, + "Options": { + "items": { + "type": "string" + }, + "markdownDescription": "The options to use when mounting the file system\\. For a list of options that you can use with Network File System \\(NFS\\), see the [exports\\(5\\) \\- Linux man page](https://linux.die.net/man/5/exports)\\. When choosing your options, consider the following: \n+ `crossmnt` is used by default\\. If you don't specify `crossmnt` when changing the client configuration, you won't be able to see or access snapshots in your file system's snapshot directory\\.\n+ `sync` is used by default\\. If you instead specify `async`, the system acknowledges writes before writing to disk\\. If the system crashes before the writes are finished, you lose the unwritten data\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Options", + "type": "array" + } + }, + "type": "object" + }, + "AWS::FSx::FileSystem.DiskIopsConfiguration": { + "additionalProperties": false, + "properties": { + "Iops": { + "markdownDescription": "The total number of SSD IOPS provisioned for the file system\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Iops", + "type": "number" + }, + "Mode": { + "markdownDescription": "Specifies whether the number of IOPS for the file system is using the system default \\(`AUTOMATIC`\\) or was provisioned by the customer \\(`USER_PROVISIONED`\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUTOMATIC | USER_PROVISIONED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Mode", + "type": "string" + } + }, + "type": "object" + }, + "AWS::FSx::FileSystem.LustreConfiguration": { + "additionalProperties": false, + "properties": { + "AutoImportPolicy": { + "markdownDescription": "\\(Optional\\) Available with `Scratch` and `Persistent_1` deployment types\\. When you create your file system, your existing S3 objects appear as file and directory listings\\. Use this property to choose how Amazon FSx keeps your file and directory listings up to date as you add or modify objects in your linked S3 bucket\\. `AutoImportPolicy` can have the following values: \n+ `NONE` \\- \\(Default\\) AutoImport is off\\. Amazon FSx only updates file and directory listings from the linked S3 bucket when the file system is created\\. FSx does not update file and directory listings for any new or changed objects after choosing this option\\.\n+ `NEW` \\- AutoImport is on\\. Amazon FSx automatically imports directory listings of any new objects added to the linked S3 bucket that do not currently exist in the FSx file system\\. \n+ `NEW_CHANGED` \\- AutoImport is on\\. Amazon FSx automatically imports file and directory listings of any new objects added to the S3 bucket and any existing objects that are changed in the S3 bucket after you choose this option\\.\n+ `NEW_CHANGED_DELETED` \\- AutoImport is on\\. Amazon FSx automatically imports file and directory listings of any new objects added to the S3 bucket, any existing objects that are changed in the S3 bucket, and any objects that were deleted in the S3 bucket\\.\nFor more information, see [ Automatically import updates from your S3 bucket](https://docs.aws.amazon.com/fsx/latest/LustreGuide/autoimport-data-repo.html)\\. \nThis parameter is not supported for file systems with the `Persistent_2` deployment type\\. Instead, use `CreateDataRepositoryAssociation` to create a data repository association to link your Lustre file system to a data repository\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `NEW | NEW_CHANGED | NEW_CHANGED_DELETED | NONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoImportPolicy", + "type": "string" + }, + "AutomaticBackupRetentionDays": { + "markdownDescription": "The number of days to retain automatic backups\\. Setting this to 0 disables automatic backups\\. You can retain automatic backups for a maximum of 90 days\\. The default is 0\\. Only valid for use with `PERSISTENT_1` deployment types\\. For more information, see [Working with backups](https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html) in the *Amazon FSx for Lustre User Guide*\\. \\(Default = 0\\) \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `90` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutomaticBackupRetentionDays", + "type": "number" + }, + "CopyTagsToBackups": { + "markdownDescription": "A Boolean flag indicating whether tags for the file system should be copied to backups\\. This value defaults to false\\. If it's set to true, all tags for the file system are copied to all automatic and user\\-initiated backups where the user doesn't specify tags\\. If this value is true, and you specify one or more tags, only the specified tags are copied to backups\\. If you specify one or more tags when creating a user\\-initiated backup, no tags are copied from the file system, regardless of this value\\. Only valid for use with `PERSISTENT_1` deployment types\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CopyTagsToBackups", + "type": "boolean" + }, + "DailyAutomaticBackupStartTime": { + "markdownDescription": "A recurring daily time, in the format` HH:MM`\\. `HH` is the zero\\-padded hour of the day \\(0\\-23\\), and `MM` is the zero\\-padded minute of the hour\\. For example, `05:00` specifies 5 AM daily\\. Only valid for use with `PERSISTENT_1` deployment types\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DailyAutomaticBackupStartTime", + "type": "string" + }, + "DataCompressionType": { + "markdownDescription": "Sets the data compression configuration for the file system\\. `DataCompressionType` can have the following values: \n+ `NONE` \\- \\(Default\\) Data compression is turned off when the file system is created\\.\n+ `LZ4` \\- Data compression is turned on with the LZ4 algorithm\\.\nFor more information, see [Lustre data compression](https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-compression.html) in the *Amazon FSx for Lustre User Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `LZ4 | NONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataCompressionType", + "type": "string" + }, + "DeploymentType": { + "markdownDescription": "\\(Optional\\) Choose `SCRATCH_1` and `SCRATCH_2` deployment types when you need temporary storage and shorter\\-term processing of data\\. The `SCRATCH_2` deployment type provides in\\-transit encryption of data and higher burst throughput capacity than `SCRATCH_1`\\. \nChoose `PERSISTENT_1` for longer\\-term storage and for throughput\\-focused workloads that aren\u2019t latency\\-sensitive\\. `PERSISTENT_1` supports encryption of data in transit, and is available in all AWS Regions in which FSx for Lustre is available\\. \nChoose `PERSISTENT_2` for longer\\-term storage and for latency\\-sensitive workloads that require the highest levels of IOPS/throughput\\. `PERSISTENT_2` supports SSD storage, and offers higher `PerUnitStorageThroughput` \\(up to 1000 MB/s/TiB\\)\\. `PERSISTENT_2` is available in a limited number of AWS Regions\\. For more information, and an up\\-to\\-date list of AWS Regions in which `PERSISTENT_2` is available, see [File system deployment options for FSx for Lustre](https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-fsx-lustre.html#lustre-deployment-types) in the *Amazon FSx for Lustre User Guide*\\. \nIf you choose `PERSISTENT_2`, and you set `FileSystemTypeVersion` to `2.10`, the `CreateFileSystem` operation fails\\.\nEncryption of data in transit is automatically turned on when you access `SCRATCH_2`, `PERSISTENT_1` and `PERSISTENT_2` file systems from Amazon EC2 instances that [support automatic encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data- protection.html) in the AWS Regions where they are available\\. For more information about encryption in transit for FSx for Lustre file systems, see [Encrypting data in transit](https://docs.aws.amazon.com/fsx/latest/LustreGuide/encryption-in-transit-fsxl.html) in the *Amazon FSx for Lustre User Guide*\\. \n\\(Default = `SCRATCH_1`\\) \n*Required*: No \n*Type*: String \n*Allowed values*: `PERSISTENT_1 | PERSISTENT_2 | SCRATCH_1 | SCRATCH_2` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeploymentType", + "type": "string" + }, + "DriveCacheType": { + "markdownDescription": "The type of drive cache used by `PERSISTENT_1` file systems that are provisioned with HDD storage devices\\. This parameter is required when storage type is HDD\\. Set this property to `READ` to improve the performance for frequently accessed files by caching up to 20% of the total storage capacity of the file system\\. \nThis parameter is required when `StorageType` is set to `HDD`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | READ` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DriveCacheType", + "type": "string" + }, + "ExportPath": { + "markdownDescription": "\\(Optional\\) Available with `Scratch` and `Persistent_1` deployment types\\. Specifies the path in the Amazon S3 bucket where the root of your Amazon FSx file system is exported\\. The path must use the same Amazon S3 bucket as specified in ImportPath\\. You can provide an optional prefix to which new and changed data is to be exported from your Amazon FSx for Lustre file system\\. If an `ExportPath` value is not provided, Amazon FSx sets a default export path, `s3://import-bucket/FSxLustre[creation-timestamp]`\\. The timestamp is in UTC format, for example `s3://import-bucket/FSxLustre20181105T222312Z`\\. \nThe Amazon S3 export bucket must be the same as the import bucket specified by `ImportPath`\\. If you specify only a bucket name, such as `s3://import-bucket`, you get a 1:1 mapping of file system objects to S3 bucket objects\\. This mapping means that the input data in S3 is overwritten on export\\. If you provide a custom prefix in the export path, such as `s3://import-bucket/[custom-optional-prefix]`, Amazon FSx exports the contents of your file system to that export prefix in the Amazon S3 bucket\\. \nThis parameter is not supported for file systems with the `Persistent_2` deployment type\\. Instead, use `CreateDataRepositoryAssociation` to create a data repository association to link your Lustre file system to a data repository\\.\n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `4357` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{3,4357}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExportPath", + "type": "string" + }, + "ImportPath": { + "markdownDescription": "\\(Optional\\) The path to the Amazon S3 bucket \\(including the optional prefix\\) that you're using as the data repository for your Amazon FSx for Lustre file system\\. The root of your FSx for Lustre file system will be mapped to the root of the Amazon S3 bucket you select\\. An example is `s3://import-bucket/optional-prefix`\\. If you specify a prefix after the Amazon S3 bucket name, only object keys with that prefix are loaded into the file system\\. \nThis parameter is not supported for file systems with the `Persistent_2` deployment type\\. Instead, use `CreateDataRepositoryAssociation`to create a data repository association to link your Lustre file system to a data repository\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `4357` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{3,4357}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImportPath", + "type": "string" + }, + "ImportedFileChunkSize": { + "markdownDescription": "\\(Optional\\) For files imported from a data repository, this value determines the stripe count and maximum amount of data per file \\(in MiB\\) stored on a single physical disk\\. The maximum number of disks that a single file can be striped across is limited by the total number of disks that make up the file system\\. \nThe default chunk size is 1,024 MiB \\(1 GiB\\) and can go as high as 512,000 MiB \\(500 GiB\\)\\. Amazon S3 objects have a maximum size of 5 TB\\. \nThis parameter is not supported for file systems with the `Persistent_2` deployment type\\. Instead, use `CreateDataRepositoryAssociation` to create a data repository association to link your Lustre file system to a data repository\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `512000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImportedFileChunkSize", + "type": "number" + }, + "PerUnitStorageThroughput": { + "markdownDescription": "Required with `PERSISTENT_1` and `PERSISTENT_2` deployment types, provisions the amount of read and write throughput for each 1 tebibyte \\(TiB\\) of file system storage capacity, in MB/s/TiB\\. File system throughput capacity is calculated by multiplying \ufb01le system storage capacity \\(TiB\\) by the `PerUnitStorageThroughput` \\(MB/s/TiB\\)\\. For a 2\\.4\\-TiB \ufb01le system, provisioning 50 MB/s/TiB of `PerUnitStorageThroughput` yields 120 MB/s of \ufb01le system throughput\\. You pay for the amount of throughput that you provision\\. \nValid values: \n+ For `PERSISTENT_1` SSD storage: 50, 100, 200 MB/s/TiB\\.\n+ For `PERSISTENT_1` HDD storage: 12, 40 MB/s/TiB\\.\n+ For `PERSISTENT_2` SSD storage: 125, 250, 500, 1000 MB/s/TiB\\.\n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `12` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PerUnitStorageThroughput", + "type": "number" + }, + "WeeklyMaintenanceStartTime": { + "markdownDescription": "\\(Optional\\) The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC time zone, where d is the weekday number, from 1 through 7, beginning with Monday and ending with Sunday\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WeeklyMaintenanceStartTime", + "type": "string" + } + }, + "type": "object" + }, + "AWS::FSx::FileSystem.NfsExports": { + "additionalProperties": false, + "properties": { + "ClientConfigurations": { + "items": { + "$ref": "#/definitions/AWS::FSx::FileSystem.ClientConfigurations" + }, + "markdownDescription": "A list of configuration objects that contain the client and options for mounting the OpenZFS file system\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-nfsexports-clientconfigurations.html) of [ClientConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-nfsexports-clientconfigurations.html) \n*Maximum*: `25` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientConfigurations", + "type": "array" + } + }, + "type": "object" + }, + "AWS::FSx::FileSystem.OntapConfiguration": { + "additionalProperties": false, + "properties": { + "AutomaticBackupRetentionDays": { + "markdownDescription": "The number of days to retain automatic backups\\. Setting this property to `0` disables automatic backups\\. You can retain automatic backups for a maximum of 90 days\\. The default is `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutomaticBackupRetentionDays", + "type": "number" + }, + "DailyAutomaticBackupStartTime": { + "markdownDescription": "A recurring daily time, in the format `HH:MM`\\. `HH` is the zero\\-padded hour of the day \\(0\\-23\\), and `MM` is the zero\\-padded minute of the hour\\. For example, `05:00` specifies 5 AM daily\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DailyAutomaticBackupStartTime", + "type": "string" + }, + "DeploymentType": { + "markdownDescription": "Specifies the FSx for ONTAP file system deployment type to use in creating the file system\\. `MULTI_AZ_1` is the supported ONTAP deployment type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `MULTI_AZ_1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeploymentType", + "type": "string" + }, + "DiskIopsConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration", + "markdownDescription": "The SSD IOPS configuration for the FSx for ONTAP file system\\. \n*Required*: No \n*Type*: [DiskIopsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-diskiopsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DiskIopsConfiguration" + }, + "EndpointIpAddressRange": { + "markdownDescription": "Specifies the IP address range in which the endpoints to access your file system will be created\\. By default, Amazon FSx selects an unused IP address range for you from the 198\\.19\\.\\* range\\. \nThe Endpoint IP address range you select for your file system must exist outside the VPC's CIDR range and must be at least /30 or larger\\.\n*Required*: No \n*Type*: String \n*Minimum*: `9` \n*Maximum*: `17` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{9,17}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EndpointIpAddressRange", + "type": "string" + }, + "FsxAdminPassword": { + "markdownDescription": "The ONTAP administrative password for the `fsxadmin` user with which you administer your file system using the NetApp ONTAP CLI and REST API\\. \n*Required*: No \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `50` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{8,50}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FsxAdminPassword", + "type": "string" + }, + "PreferredSubnetId": { + "markdownDescription": "Required when `DeploymentType` is set to `MULTI_AZ_1`\\. This specifies the subnet in which you want the preferred file server to be located\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PreferredSubnetId", + "type": "string" + }, + "RouteTableIds": { + "items": { + "type": "string" + }, + "markdownDescription": "Specifies the virtual private cloud \\(VPC\\) route tables in which your file system's endpoints will be created\\. You should specify all VPC route tables associated with the subnets in which your clients are located\\. By default, Amazon FSx selects your VPC's default route table\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RouteTableIds", + "type": "array" + }, + "ThroughputCapacity": { + "markdownDescription": "Sets the throughput capacity for the file system that you're creating\\. Valid values are 128, 256, 512, 1024, and 2048 MBps\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `8` \n*Maximum*: `4096` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ThroughputCapacity", + "type": "number" + }, + "WeeklyMaintenanceStartTime": { + "markdownDescription": "A recurring weekly time, in the format `D:HH:MM`\\. \n `D` is the day of the week, for which 1 represents Monday and 7 represents Sunday\\. For further details, see [the ISO\\-8601 spec as described on Wikipedia](https://en.wikipedia.org/wiki/ISO_week_date)\\. \n `HH` is the zero\\-padded hour of the day \\(0\\-23\\), and `MM` is the zero\\-padded minute of the hour\\. \nFor example, `1:05:00` specifies maintenance at 5 AM Monday\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WeeklyMaintenanceStartTime", + "type": "string" + } + }, + "required": [ + "DeploymentType" + ], + "type": "object" + }, + "AWS::FSx::FileSystem.OpenZFSConfiguration": { + "additionalProperties": false, + "properties": { + "AutomaticBackupRetentionDays": { + "markdownDescription": "The number of days to retain automatic backups\\. Setting this property to `0` disables automatic backups\\. You can retain automatic backups for a maximum of 90 days\\. The default is `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutomaticBackupRetentionDays", + "type": "number" + }, + "CopyTagsToBackups": { + "markdownDescription": "A Boolean value indicating whether tags for the file system should be copied to backups\\. This value defaults to `false`\\. If it's set to `true`, all tags for the file system are copied to all automatic and user\\-initiated backups where the user doesn't specify tags\\. If this value is `true`, and you specify one or more tags, only the specified tags are copied to backups\\. If you specify one or more tags when creating a user\\-initiated backup, no tags are copied from the file system, regardless of this value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CopyTagsToBackups", + "type": "boolean" + }, + "CopyTagsToVolumes": { + "markdownDescription": "A Boolean value indicating whether tags for the volume should be copied to snapshots\\. This value defaults to `false`\\. If it's set to `true`, all tags for the volume are copied to snapshots where the user doesn't specify tags\\. If this value is `true`, and you specify one or more tags, only the specified tags are copied to snapshots\\. If you specify one or more tags when creating the snapshot, no tags are copied from the volume, regardless of this value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CopyTagsToVolumes", + "type": "boolean" + }, + "DailyAutomaticBackupStartTime": { + "markdownDescription": "A recurring daily time, in the format `HH:MM`\\. `HH` is the zero\\-padded hour of the day \\(0\\-23\\), and `MM` is the zero\\-padded minute of the hour\\. For example, `05:00` specifies 5 AM daily\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DailyAutomaticBackupStartTime", + "type": "string" + }, + "DeploymentType": { + "markdownDescription": "Specifies the file system deployment type\\. Amazon FSx for OpenZFS supports `SINGLE_AZ_1`\\. `SINGLE_AZ_1` deployment type is configured for redundancy within a single Availability Zone\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SINGLE_AZ_1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeploymentType", + "type": "string" + }, + "DiskIopsConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration", + "markdownDescription": "The SSD IOPS \\(input/output operations per second\\) configuration for an Amazon FSx for NetApp ONTAP or Amazon FSx for OpenZFS file system\\. The default is 3 IOPS per GB of storage capacity, but you can provision additional IOPS per GB of storage\\. The configuration consists of the total number of provisioned SSD IOPS and how the amount was provisioned \\(by the customer or by the system\\)\\. \n*Required*: No \n*Type*: [DiskIopsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-diskiopsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DiskIopsConfiguration" + }, + "Options": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RootVolumeConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.RootVolumeConfiguration", + "markdownDescription": "The configuration Amazon FSx uses when creating the root value of the Amazon FSx for OpenZFS file system\\. All volumes are children of the root volume\\. \n*Required*: No \n*Type*: [RootVolumeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RootVolumeConfiguration" + }, + "ThroughputCapacity": { + "markdownDescription": "Specifies the throughput of an Amazon FSx for OpenZFS file system, measured in megabytes per second \\(MB/s\\)\\. Valid values are 64, 128, 256, 512, 1024, 2048, 3072, or 4096 MB/s\\. You pay for additional throughput capacity that you provision\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `8` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThroughputCapacity", + "type": "number" + }, + "WeeklyMaintenanceStartTime": { + "markdownDescription": "A recurring weekly time, in the format `D:HH:MM`\\. \n `D` is the day of the week, for which 1 represents Monday and 7 represents Sunday\\. For further details, see [the ISO\\-8601 spec as described on Wikipedia](https://en.wikipedia.org/wiki/ISO_week_date)\\. \n `HH` is the zero\\-padded hour of the day \\(0\\-23\\), and `MM` is the zero\\-padded minute of the hour\\. \nFor example, `1:05:00` specifies maintenance at 5 AM Monday\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WeeklyMaintenanceStartTime", + "type": "string" + } + }, + "required": [ + "DeploymentType" + ], + "type": "object" + }, + "AWS::FSx::FileSystem.RootVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "CopyTagsToSnapshots": { + "markdownDescription": "A Boolean value indicating whether tags for the volume should be copied to snapshots of the volume\\. This value defaults to `false`\\. If it's set to `true`, all tags for the volume are copied to snapshots where the user doesn't specify tags\\. If this value is `true` and you specify one or more tags, only the specified tags are copied to snapshots\\. If you specify one or more tags when creating the snapshot, no tags are copied from the volume, regardless of this value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CopyTagsToSnapshots", + "type": "boolean" + }, + "DataCompressionType": { + "markdownDescription": "Specifies the method used to compress the data on the volume\\. The compression type is `NONE` by default\\. \n+ `NONE` \\- Doesn't compress the data on the volume\\. `NONE` is the default\\.\n+ `ZSTD` \\- Compresses the data in the volume using the Zstandard \\(ZSTD\\) compression algorithm\\. Compared to LZ4, Z\\-Standard provides a better compression ratio to minimize on\\-disk storage utilization\\.\n+ `LZ4` \\- Compresses the data in the volume using the LZ4 compression algorithm\\. Compared to Z\\-Standard, LZ4 is less compute\\-intensive and delivers higher write throughput speeds\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `LZ4 | NONE | ZSTD` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataCompressionType", + "type": "string" + }, + "NfsExports": { + "items": { + "$ref": "#/definitions/AWS::FSx::FileSystem.NfsExports" + }, + "markdownDescription": "The configuration object for mounting a file system\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-nfsexports.html) of [NfsExports](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-nfsexports.html) \n*Maximum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NfsExports", + "type": "array" + }, + "ReadOnly": { + "markdownDescription": "A Boolean value indicating whether the volume is read\\-only\\. Setting this value to `true` can be useful after you have completed changes to a volume and no longer want changes to occur\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReadOnly", + "type": "boolean" + }, + "RecordSizeKiB": { + "type": "number" + }, + "UserAndGroupQuotas": { + "items": { + "$ref": "#/definitions/AWS::FSx::FileSystem.UserAndGroupQuotas" + }, + "markdownDescription": "An object specifying how much storage users or groups can use on the volume\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-userandgroupquotas.html) of [UserAndGroupQuotas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-userandgroupquotas.html) \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserAndGroupQuotas", + "type": "array" + } + }, + "type": "object" + }, + "AWS::FSx::FileSystem.SelfManagedActiveDirectoryConfiguration": { + "additionalProperties": false, + "properties": { + "DnsIps": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of up to three IP addresses of DNS servers or domain controllers in the self\\-managed AD directory\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DnsIps", + "type": "array" + }, + "DomainName": { + "markdownDescription": "The fully qualified domain name of the self\\-managed AD directory, such as `corp.example.com`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,255}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", + "type": "string" + }, + "FileSystemAdministratorsGroup": { + "markdownDescription": "\\(Optional\\) The name of the domain group whose members are granted administrative privileges for the file system\\. Administrative privileges include taking ownership of files and folders, setting audit controls \\(audit ACLs\\) on files and folders, and administering the file system remotely by using the FSx Remote PowerShell\\. The group that you specify must already exist in your domain\\. If you don't provide one, your AD domain's Domain Admins group is used\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,256}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FileSystemAdministratorsGroup", + "type": "string" + }, + "OrganizationalUnitDistinguishedName": { + "markdownDescription": "\\(Optional\\) The fully qualified distinguished name of the organizational unit within your self\\-managed AD directory\\. Amazon FSx only accepts OU as the direct parent of the file system\\. An example is `OU=FSx,DC=yourdomain,DC=corp,DC=com`\\. To learn more, see [RFC 2253](https://tools.ietf.org/html/rfc2253)\\. If none is provided, the FSx file system is created in the default location of your self\\-managed AD directory\\. \nOnly Organizational Unit \\(OU\\) objects can be the direct parent of the file system that you're creating\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2000` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,2000}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OrganizationalUnitDistinguishedName", + "type": "string" + }, + "Password": { + "markdownDescription": "The password for the service account on your self\\-managed AD domain that Amazon FSx will use to join to your AD domain\\. We strongly suggest that you follow best practices and *do not* embed passwords in your CFN templates\\. \nThe recommended approach is to use AWS Secrets Manager to store your passwords\\. You can retrieve them for use in your templates using the `secretsmanager` dynamic reference\\. There are additional costs associated with using AWS Secrets Manager\\. To learn more, see [Secrets Manager secrets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) in the *AWS CloudFormation User Guide*\\. \nAlternatively, you can use the `NoEcho` property to obfuscate the password parameter value\\. For more information, see [Do Not Embed Credentials in Your Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html#creds) in the *AWS CloudFormation User Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^.{1,256}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", + "type": "string" + }, + "UserName": { + "markdownDescription": "The user name for the service account on your self\\-managed AD domain that Amazon FSx will use to join to your AD domain\\. This account must have the permission to join computers to the domain in the organizational unit provided in `OrganizationalUnitDistinguishedName`, or in the default location of your AD domain\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,256}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::FSx::FileSystem.UserAndGroupQuotas": { + "additionalProperties": false, + "properties": { + "Id": { + "markdownDescription": "The ID of the user or group\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "number" + }, + "StorageCapacityQuotaGiB": { + "markdownDescription": "The amount of storage that the user or group can use in gibibytes \\(GiB\\)\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StorageCapacityQuotaGiB", + "type": "number" + }, + "Type": { + "markdownDescription": "A value that specifies whether the quota applies to a user or group\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GROUP | USER` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + } + }, + "type": "object" + }, + "AWS::FSx::FileSystem.WindowsConfiguration": { + "additionalProperties": false, + "properties": { + "ActiveDirectoryId": { + "markdownDescription": "The ID for an existing AWS Managed Microsoft Active Directory \\(AD\\) instance that the file system should join when it's created\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^d-[0-9a-f]{10}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ActiveDirectoryId", + "type": "string" + }, + "Aliases": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of one or more DNS alias names that you want to associate with the Amazon FSx file system\\. Aliases allow you to use existing DNS names to access the data in your Amazon FSx file system\\. You can associate up to 50 aliases with a file system at any time\\. \nFor more information, see [Working with DNS Aliases](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html) and [Walkthrough 5: Using DNS aliases to access your file system](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/walkthrough05-file-system-custom-CNAME.html), including additional steps you must take to be able to access your file system using a DNS alias\\. \nAn alias name has to meet the following requirements: \n+ Formatted as a fully\\-qualified domain name \\(FQDN\\), `hostname.domain`, for example, `accounting.example.com`\\.\n+ Can contain alphanumeric characters, the underscore \\(\\_\\), and the hyphen \\(\\-\\)\\.\n+ Cannot start or end with a hyphen\\.\n+ Can start with a numeric\\.\nFor DNS alias names, Amazon FSx stores alphabetical characters as lowercase letters \\(a\\-z\\), regardless of how you specify them: as uppercase letters, lowercase letters, or the corresponding letters in escape codes\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Aliases", + "type": "array" + }, + "AuditLogConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.AuditLogConfiguration", + "markdownDescription": "The configuration that Amazon FSx for Windows File Server uses to audit and log user accesses of files, folders, and file shares on the Amazon FSx for Windows File Server file system\\. \n*Required*: No \n*Type*: [AuditLogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-auditlogconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuditLogConfiguration" + }, + "AutomaticBackupRetentionDays": { + "markdownDescription": "The number of days to retain automatic backups\\. The default is to retain backups for 7 days\\. Setting this value to 0 disables the creation of automatic backups\\. The maximum retention period for backups is 90 days\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `90` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutomaticBackupRetentionDays", + "type": "number" + }, + "CopyTagsToBackups": { + "markdownDescription": "A Boolean flag indicating whether tags for the file system should be copied to backups\\. This value defaults to false\\. If it's set to true, all tags for the file system are copied to all automatic and user\\-initiated backups where the user doesn't specify tags\\. If this value is true, and you specify one or more tags, only the specified tags are copied to backups\\. If you specify one or more tags when creating a user\\-initiated backup, no tags are copied from the file system, regardless of this value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CopyTagsToBackups", + "type": "boolean" + }, + "DailyAutomaticBackupStartTime": { + "markdownDescription": "The preferred time to take daily automatic backups, formatted HH:MM in the UTC time zone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DailyAutomaticBackupStartTime", + "type": "string" + }, + "DeploymentType": { + "markdownDescription": "Specifies the file system deployment type, valid values are the following: \n+ `MULTI_AZ_1` \\- Deploys a high availability file system that is configured for Multi\\-AZ redundancy to tolerate temporary Availability Zone \\(AZ\\) unavailability\\. You can only deploy a Multi\\-AZ file system in AWS Regions that have a minimum of three Availability Zones\\. Also supports HDD storage type\n+ `SINGLE_AZ_1` \\- \\(Default\\) Choose to deploy a file system that is configured for single AZ redundancy\\.\n+ `SINGLE_AZ_2` \\- The latest generation Single AZ file system\\. Specifies a file system that is configured for single AZ redundancy and supports HDD storage type\\.\nFor more information, see [ Availability and Durability: Single\\-AZ and Multi\\-AZ File Systems](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `MULTI_AZ_1 | SINGLE_AZ_1 | SINGLE_AZ_2` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeploymentType", + "type": "string" + }, + "PreferredSubnetId": { + "markdownDescription": "Required when `DeploymentType` is set to `MULTI_AZ_1`\\. This specifies the subnet in which you want the preferred file server to be located\\. For in\\-AWS applications, we recommend that you launch your clients in the same Availability Zone \\(AZ\\) as your preferred file server to reduce cross\\-AZ data transfer costs and minimize latency\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PreferredSubnetId", + "type": "string" + }, + "SelfManagedActiveDirectoryConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.SelfManagedActiveDirectoryConfiguration", + "markdownDescription": "The configuration that Amazon FSx uses to join a FSx for Windows File Server file system or an ONTAP storage virtual machine \\(SVM\\) to a self\\-managed \\(including on\\-premises\\) Microsoft Active Directory \\(AD\\) directory\\. For more information, see [ Using Amazon FSx with your self\\-managed Microsoft Active Directory](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/self-managed-AD.html) or [Managing SVMs](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-svms.html)\\. \n*Required*: No \n*Type*: [SelfManagedActiveDirectoryConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-selfmanagedactivedirectoryconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SelfManagedActiveDirectoryConfiguration" + }, + "ThroughputCapacity": { + "markdownDescription": "Sets the throughput capacity of an Amazon FSx file system, measured in megabytes per second \\(MB/s\\), in 2 to the *n*th increments, between 2^3 \\(8\\) and 2^11 \\(2048\\)\\. \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `8` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThroughputCapacity", + "type": "number" + }, + "WeeklyMaintenanceStartTime": { + "markdownDescription": "The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC time zone, where d is the weekday number, from 1 through 7, beginning with Monday and ending with Sunday\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The list of Amazon Resource Names \\(ARN\\) of the data bundles to install\\. Currently supported data bundle ARNs: \n+ `arn:aws:finspace:${Region}::data-bundle/capital-markets-sample` \\- Contains sample Capital Markets datasets, categories and controlled vocabularies\\.\n+ `arn:aws:finspace:${Region}::data-bundle/taq` \\(default\\) \\- Contains trades and quotes data in addition to sample Capital Markets data\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataBundles", + "type": "array" + }, + "Description": { + "markdownDescription": "The description of the FinSpace environment\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Pattern*: `^[a-zA-Z0-9. ]{1,1000}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "FederationMode": { + "markdownDescription": "The authentication mode for the environment\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `FEDERATED | LOCAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FederationMode", + "type": "string" + }, + "FederationParameters": { + "$ref": "#/definitions/AWS::FinSpace::Environment.FederationParameters", + "markdownDescription": "Configuration information when authentication mode is FEDERATED\\. \n*Required*: No \n*Type*: [FederationParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-finspace-environment-federationparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FederationParameters" + }, + "KmsKeyId": { + "markdownDescription": "The KMS key id used to encrypt in the FinSpace environment\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Pattern*: `^[a-zA-Z-0-9-:\\/]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the FinSpace environment\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9]+[a-zA-Z0-9-]*[a-zA-Z0-9]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "SuperuserParameters": { + "$ref": "#/definitions/AWS::FinSpace::Environment.SuperuserParameters", + "markdownDescription": "Configuration information for the superuser\\. \n*Required*: No \n*Type*: [SuperuserParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-finspace-environment-superuserparameters.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The redirect or sign\\-in URL that should be entered into the SAML 2\\.0 compliant identity provider configuration \\(IdP\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Pattern*: `^https?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationCallBackURL", + "type": "string" + }, + "AttributeMap": { + "markdownDescription": "SAML attribute name and value\\. The name must always be `Email` and the value should be set to the attribute definition in which user email is set\\. For example, name would be `Email` and value `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`\\. Please check your SAML 2\\.0 compliant identity provider \\(IdP\\) documentation for details\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeMap", + "type": "object" + }, + "FederationProviderName": { + "markdownDescription": "Name of the identity provider \\(IdP\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `[^_\\p{Z}][\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}][^_\\p{Z}]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FederationProviderName", + "type": "string" + }, + "FederationURN": { + "markdownDescription": "The Uniform Resource Name \\(URN\\)\\. Also referred as Service Provider URN or Audience URI or Service Provider Entity ID\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[A-Za-z0-9._\\-:\\/#\\+]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FederationURN", + "type": "string" + }, + "SamlMetadataDocument": { + "markdownDescription": "SAML 2\\.0 Metadata document from identity provider \\(IdP\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1000` \n*Maximum*: `10000000` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SamlMetadataDocument", + "type": "string" + }, + "SamlMetadataURL": { + "markdownDescription": "Provide the metadata URL from your SAML 2\\.0 compliant identity provider \\(IdP\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Pattern*: `^https?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SamlMetadataURL", + "type": "string" + } + }, + "type": "object" + }, + "AWS::FinSpace::Environment.SuperuserParameters": { + "additionalProperties": false, + "properties": { + "EmailAddress": { + "markdownDescription": "The email address of the superuser\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+[.]+[A-Za-z]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EmailAddress", + "type": "string" + }, + "FirstName": { + "markdownDescription": "The first name of the superuser\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `^[a-zA-Z0-9]{1,50}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FirstName", + "type": "string" + }, + "LastName": { + "markdownDescription": "The last name of the superuser\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `^[a-zA-Z0-9]{1,50}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The frequency of data collection\\. This parameter is required for RELATED\\_TIME\\_SERIES datasets\\. \nValid intervals are Y \\(Year\\), M \\(Month\\), W \\(Week\\), D \\(Day\\), H \\(Hour\\), 30min \\(30 minutes\\), 15min \\(15 minutes\\), 10min \\(10 minutes\\), 5min \\(5 minutes\\), and 1min \\(1 minute\\)\\. For example, \"D\" indicates every day and \"15min\" indicates every 15 minutes\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `5` \n*Pattern*: `^Y|M|W|D|H|30min|15min|10min|5min|1min$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataFrequency", + "type": "string" + }, + "DatasetName": { + "markdownDescription": "The name of the dataset\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatasetName", + "type": "string" + }, + "DatasetType": { + "markdownDescription": "The dataset type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ITEM_METADATA | RELATED_TIME_SERIES | TARGET_TIME_SERIES` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetType", + "type": "string" + }, + "Domain": { + "markdownDescription": "The domain associated with the dataset\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CUSTOM | EC2_CAPACITY | INVENTORY_PLANNING | METRICS | RETAIL | WEB_TRAFFIC | WORK_FORCE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Domain", + "type": "string" + }, + "EncryptionConfig": { + "$ref": "#/definitions/AWS::Forecast::Dataset.EncryptionConfig", + "markdownDescription": "A Key Management Service \\(KMS\\) key and the Identity and Access Management \\(IAM\\) role that Amazon Forecast can assume to access the key\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionConfig" + }, + "Schema": { + "$ref": "#/definitions/AWS::Forecast::Dataset.Schema", + "markdownDescription": "The schema for the dataset\\. The schema attributes and their order must match the fields in your data\\. The dataset `Domain` and `DatasetType` that you choose determine the minimum required fields in your training data\\. For information about the required fields for a specific dataset domain and type, see [Dataset Domains and Dataset Types](https://docs.aws.amazon.com/forecast/latest/dg/howitworks-domains-ds-types.html)\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schema" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::Forecast::Dataset.TagsItems" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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" + }, + "markdownDescription": "An array of Amazon Resource Names \\(ARNs\\) of the datasets that you want to include in the dataset group\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetArns", + "type": "array" + }, + "DatasetGroupName": { + "markdownDescription": "The name of the dataset group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatasetGroupName", + "type": "string" + }, + "Domain": { + "markdownDescription": "The domain associated with the dataset group\\. When you add a dataset to a dataset group, this value and the value specified for the `Domain` parameter of the [CreateDataset](https://docs.aws.amazon.com/forecast/latest/dg/API_CreateDataset.html) operation must match\\. \nThe `Domain` and `DatasetType` that you choose determine the fields that must be present in training data that you import to a dataset\\. For example, if you choose the `RETAIL` domain and `TARGET_TIME_SERIES` as the `DatasetType`, Amazon Forecast requires that `item_id`, `timestamp`, and `demand` fields are present in your data\\. For more information, see [Dataset groups](https://docs.aws.amazon.com/forecast/latest/dg/howitworks-datasets-groups.html)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CUSTOM | EC2_CAPACITY | INVENTORY_PLANNING | METRICS | RETAIL | WEB_TRAFFIC | WORK_FORCE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Domain", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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" + }, + "markdownDescription": "The models to associate with this detector\\. You must provide the ARNs of all the models you want to associate\\. \n*Required*: No \n*Type*: List of [Model](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-model.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociatedModels", + "type": "array" + }, + "Description": { + "markdownDescription": "The detector description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DetectorId": { + "markdownDescription": "The name of the detector\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[0-9a-z_-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DetectorId", + "type": "string" + }, + "DetectorVersionStatus": { + "markdownDescription": "The status of the detector version\\. If a value is not provided for this property, AWS CloudFormation assumes `DRAFT` status\\. \n Valid values: `ACTIVE | DRAFT` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DetectorVersionStatus", + "type": "string" + }, + "EventType": { + "$ref": "#/definitions/AWS::FraudDetector::Detector.EventType", + "markdownDescription": "The event type associated with this detector\\. \n*Required*: Yes \n*Type*: [EventType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventType" + }, + "RuleExecutionMode": { + "markdownDescription": "The rule execution mode for the rules included in the detector version\\. \nValid values: `FIRST_MATCHED | ALL_MATCHED` Default value: `FIRST_MATCHED` \nYou can define and edit the rule mode at the detector version level, when it is in draft status\\. \nIf you specify `FIRST_MATCHED`, Amazon Fraud Detector evaluates rules sequentially, first to last, stopping at the first matched rule\\. Amazon Fraud dectector then provides the outcomes for that single rule\\. \nIf you specifiy `ALL_MATCHED`, Amazon Fraud Detector evaluates all rules and returns the outcomes for all matched rules\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleExecutionMode", + "type": "string" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::FraudDetector::Detector.Rule" + }, + "markdownDescription": "The rules to include in the detector version\\. \n*Required*: Yes \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The entity type ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn\\:aws[a-z-]{0,15}\\:frauddetector\\:[a-z0-9-]{3,20}\\:[0-9]{12}\\:[^\\s]{2,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "CreatedTime": { + "markdownDescription": "Timestamp of when the entity type was created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedTime", + "type": "string" + }, + "Description": { + "markdownDescription": "The entity type description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Inline": { + "markdownDescription": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::Detector` you must define at least two variables\\. You can set `Inline=true` for these Variables and CloudFormation will create/update/delete the variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your detector but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Inline", + "type": "boolean" + }, + "LastUpdatedTime": { + "markdownDescription": "Timestamp of when the entity type was last updated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUpdatedTime", + "type": "string" + }, + "Name": { + "markdownDescription": "The entity type name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "type": "object" + }, + "AWS::FraudDetector::Detector.EventType": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The entity type ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn\\:aws[a-z-]{0,15}\\:frauddetector\\:[a-z0-9-]{3,20}\\:[0-9]{12}\\:[^\\s]{2,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "CreatedTime": { + "markdownDescription": "Timestamp of when the event type was created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedTime", + "type": "string" + }, + "Description": { + "markdownDescription": "The event type description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "EntityTypes": { + "items": { + "$ref": "#/definitions/AWS::FraudDetector::Detector.EntityType" + }, + "markdownDescription": "The event type entity types\\. \n*Required*: No \n*Type*: List of [EntityType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-entitytype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntityTypes", + "type": "array" + }, + "EventVariables": { + "items": { + "$ref": "#/definitions/AWS::FraudDetector::Detector.EventVariable" + }, + "markdownDescription": "The event type event variables\\. \n*Required*: No \n*Type*: List of [EventVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventVariables", + "type": "array" + }, + "Inline": { + "markdownDescription": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::Detector` you must define at least two variables\\. You can set `Inline=true` for these variables and CloudFormation will create/update/delete the Variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your detector but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Inline", + "type": "boolean" + }, + "Labels": { + "items": { + "$ref": "#/definitions/AWS::FraudDetector::Detector.Label" + }, + "markdownDescription": "The event type labels\\. \n*Required*: No \n*Type*: List of [Label](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-label.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Labels", + "type": "array" + }, + "LastUpdatedTime": { + "markdownDescription": "Timestamp of when the event type was last updated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUpdatedTime", + "type": "string" + }, + "Name": { + "markdownDescription": "The event type name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "type": "object" + }, + "AWS::FraudDetector::Detector.EventVariable": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The event variable ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "CreatedTime": { + "markdownDescription": "Timestamp for when the event variable was created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedTime", + "type": "string" + }, + "DataSource": { + "markdownDescription": "The data source of the event variable\\. \nValid values: `EVENT | EXTERNAL_MODEL_SCORE` \nWhen defining a variable within a detector, you can only use the `EVENT` value for DataSource when the *Inline* property is set to true\\. If the *Inline* property is set false, you can use either `EVENT` or `MODEL_SCORE` for DataSource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSource", + "type": "string" + }, + "DataType": { + "markdownDescription": "The data type of the event variable\\. \nValid values: `STRING | INTEGER | BOOLEAN | FLOAT` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataType", + "type": "string" + }, + "DefaultValue": { + "markdownDescription": "The default value of the event variable\\. This is required if you are providing the details of your variables instead of the ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultValue", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the event variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Inline": { + "markdownDescription": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::Detector` you must define at least two variables\\. You can set `Inline=true` for these variables and CloudFormation will create/update/delete the variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your detector but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Inline", + "type": "boolean" + }, + "LastUpdatedTime": { + "markdownDescription": "Timestamp for when the event variable was last updated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUpdatedTime", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the event variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VariableType": { + "markdownDescription": "The type of event variable\\. For more information, see [Variable types](https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VariableType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::FraudDetector::Detector.Label": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The label ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn\\:aws[a-z-]{0,15}\\:frauddetector\\:[a-z0-9-]{3,20}\\:[0-9]{12}\\:[^\\s]{2,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "CreatedTime": { + "markdownDescription": "Timestamp of when the event type was created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedTime", + "type": "string" + }, + "Description": { + "markdownDescription": "The label description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Inline": { + "markdownDescription": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::Detector` you must define at least two variables\\. You can set `Inline=true` for these variables and CloudFormation will create/update/delete the variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your detector but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Inline", + "type": "boolean" + }, + "LastUpdatedTime": { + "markdownDescription": "Timestamp of when the label was last updated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUpdatedTime", + "type": "string" + }, + "Name": { + "markdownDescription": "The label name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "type": "object" + }, + "AWS::FraudDetector::Detector.Model": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The ARN of the model\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn\\:aws[a-z-]{0,15}\\:frauddetector\\:[a-z0-9-]{3,20}\\:[0-9]{12}\\:[^\\s]{2,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::FraudDetector::Detector.Outcome": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The outcome ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn\\:aws[a-z-]{0,15}\\:frauddetector\\:[a-z0-9-]{3,20}\\:[0-9]{12}\\:[^\\s]{2,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "CreatedTime": { + "markdownDescription": "The timestamp when the outcome was created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedTime", + "type": "string" + }, + "Description": { + "markdownDescription": "The outcome description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Inline": { + "markdownDescription": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::Detector` you must define at least two variables\\. You can set `Inline=true` for these variables and CloudFormation will create/update/delete the variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your detector but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Inline", + "type": "boolean" + }, + "LastUpdatedTime": { + "markdownDescription": "The timestamp when the outcome was last updated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUpdatedTime", + "type": "string" + }, + "Name": { + "markdownDescription": "The outcome name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[0-9a-z_-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "type": "object" + }, + "AWS::FraudDetector::Detector.Rule": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The rule ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "CreatedTime": { + "markdownDescription": "Timestamp for when the rule was created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedTime", + "type": "string" + }, + "Description": { + "markdownDescription": "The rule description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DetectorId": { + "markdownDescription": "The detector for which the rule is associated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[0-9a-z_-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DetectorId", + "type": "string" + }, + "Expression": { + "markdownDescription": "The rule expression\\. A rule expression captures the business logic\\. For more information, see [Rule language reference](https://docs.aws.amazon.com/frauddetector/latest/ug/rule-language-reference.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Expression", + "type": "string" + }, + "Language": { + "markdownDescription": "The rule language\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Language", + "type": "string" + }, + "LastUpdatedTime": { + "markdownDescription": "Timestamp for when the rule was last updated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUpdatedTime", + "type": "string" + }, + "Outcomes": { + "items": { + "$ref": "#/definitions/AWS::FraudDetector::Detector.Outcome" + }, + "markdownDescription": "The rule outcome\\. \n*Required*: No \n*Type*: List of [Outcome](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-outcome.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Outcomes", + "type": "array" + }, + "RuleId": { + "markdownDescription": "The rule ID\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[0-9a-z_-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleId", + "type": "string" + }, + "RuleVersion": { + "markdownDescription": "The rule version\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `5` \n*Pattern*: `^([1-9][0-9]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleVersion", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The entity type description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The entity type name\\. \nPattern: `^[0-9a-z_-]+$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A key and value pair\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The event type description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "EntityTypes": { + "items": { + "$ref": "#/definitions/AWS::FraudDetector::EventType.EntityType" + }, + "markdownDescription": "The event type entity types\\. \n*Required*: Yes \n*Type*: List of [EntityType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-entitytype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntityTypes", + "type": "array" + }, + "EventVariables": { + "items": { + "$ref": "#/definitions/AWS::FraudDetector::EventType.EventVariable" + }, + "markdownDescription": "The event type event variables\\. \n*Required*: Yes \n*Type*: List of [EventVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-eventvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventVariables", + "type": "array" + }, + "Labels": { + "items": { + "$ref": "#/definitions/AWS::FraudDetector::EventType.Label" + }, + "markdownDescription": "The event type labels\\. \n*Required*: Yes \n*Type*: List of [Label](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-label.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Labels", + "type": "array" + }, + "Name": { + "markdownDescription": "The event type name\\. \nPattern : `^[0-9a-z_-]+$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The entity type ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn\\:aws[a-z-]{0,15}\\:frauddetector\\:[a-z0-9-]{3,20}\\:[0-9]{12}\\:[^\\s]{2,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "CreatedTime": { + "markdownDescription": "Timestamp of when the entity type was created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedTime", + "type": "string" + }, + "Description": { + "markdownDescription": "The entity type description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Inline": { + "markdownDescription": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::EventType` you must define at least two variables\\. You can set `Inline=true` for these variables and CloudFormation will create/update/delete the variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your event type but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Inline", + "type": "boolean" + }, + "LastUpdatedTime": { + "markdownDescription": "Timestamp of when the entity type was last updated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUpdatedTime", + "type": "string" + }, + "Name": { + "markdownDescription": "The entity type name\\. \n`^[0-9a-z_-]+$` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "type": "object" + }, + "AWS::FraudDetector::EventType.EventVariable": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The event variable ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "CreatedTime": { + "markdownDescription": "Timestamp for when event variable was created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedTime", + "type": "string" + }, + "DataSource": { + "markdownDescription": "The source of the event variable\\. \nValid values: `EVENT | EXTERNAL_MODEL_SCORE` \nWhen defining a variable within a event type, you can only use the `EVENT` value for DataSource when the *Inline* property is set to true\\. If the *Inline* property is set false, you can use either `EVENT` or `MODEL_SCORE` for DataSource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSource", + "type": "string" + }, + "DataType": { + "markdownDescription": "The data type of the event variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataType", + "type": "string" + }, + "DefaultValue": { + "markdownDescription": "The default value of the event variable \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultValue", + "type": "string" + }, + "Description": { + "markdownDescription": "The event variable description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Inline": { + "markdownDescription": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::EventType` you must define at least two variables\\. You can set `Inline=true` for these variables and CloudFormation will create/update/delete the Variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your event type but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Inline", + "type": "boolean" + }, + "LastUpdatedTime": { + "markdownDescription": "Timestamp for when the event variable was last updated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUpdatedTime", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the event variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VariableType": { + "markdownDescription": "The type of event variable\\. For more information, see [Variable types](https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VariableType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::FraudDetector::EventType.Label": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The label ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn\\:aws[a-z-]{0,15}\\:frauddetector\\:[a-z0-9-]{3,20}\\:[0-9]{12}\\:[^\\s]{2,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "CreatedTime": { + "markdownDescription": "Timestamp of when the event type was created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedTime", + "type": "string" + }, + "Description": { + "markdownDescription": "The label description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Inline": { + "markdownDescription": "Indicates whether the resource is defined within this CloudFormation template and impacts the create, update, and delete behavior of the stack\\. If the value is `true`, CloudFormation will create/update/delete the resource when creating/updating/deleting the stack\\. If the value is `false`, CloudFormation will validate that the object exists and then use it within the resource without making changes to the object\\. \nFor example, when creating `AWS::FraudDetector::EventType` you must define at least two variables\\. You can set `Inline=true` for these variables and CloudFormation will create/update/delete the variables as part of stack operations\\. However, if you set `Inline=false`, CloudFormation will associate the variables to your EventType but not execute any changes to the variables\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Inline", + "type": "boolean" + }, + "LastUpdatedTime": { + "markdownDescription": "Timestamp of when the label was last updated\\. \n*Required*: No \n*Type*: String \n*Minimum*: `11` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUpdatedTime", + "type": "string" + }, + "Name": { + "markdownDescription": "The label name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The label description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The label name\\. \nPattern: `^[0-9a-z_-]+$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The outcome description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The outcome name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[0-9a-z_-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The data source of the variable\\. \nValid values: `EVENT | EXTERNAL_MODEL_SCORE` \nWhen defining a variable within a detector, you can only use the `EVENT` value for DataSource when the *Inline* property is set to true\\. If the *Inline* property is set false, you can use either `EVENT` or `MODEL_SCORE` for DataSource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSource", + "type": "string" + }, + "DataType": { + "markdownDescription": "The data type of the variable\\. \nValid data types: `STRING | INTEGER | BOOLEAN | FLOAT` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataType", + "type": "string" + }, + "DefaultValue": { + "markdownDescription": "The default value of the variable\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultValue", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the variable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the variable\\. \nPattern: `^[0-9a-z_-]+$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VariableType": { + "markdownDescription": "The type of the variable\\. For more information see [Variable types](https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types)\\. \nValid Values: `AUTH_CODE | AVS | BILLING_ADDRESS_L1 | BILLING_ADDRESS_L2 | BILLING_CITY | BILLING_COUNTRY | BILLING_NAME | BILLING_PHONE | BILLING_STATE | BILLING_ZIP | CARD_BIN | CATEGORICAL | CURRENCY_CODE | EMAIL_ADDRESS | FINGERPRINT | FRAUD_LABEL | FREE_FORM_TEXT | IP_ADDRESS | NUMERIC | ORDER_ID | PAYMENT_TYPE | PHONE_NUMBER | PRICE | PRODUCT_CATEGORY | SHIPPING_ADDRESS_L1 | SHIPPING_ADDRESS_L2 | SHIPPING_CITY | SHIPPING_COUNTRY | SHIPPING_NAME | SHIPPING_PHONE | SHIPPING_STATE | SHIPPING_ZIP | USERAGENT ` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A human\\-readable description of the alias\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "A descriptive label that is associated with an alias\\. Alias names do not need to be unique\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "RoutingStrategy": { + "$ref": "#/definitions/AWS::GameLift::Alias.RoutingStrategy", + "markdownDescription": "The routing configuration, including routing type and fleet target, for the alias\\. \n*Required*: Yes \n*Type*: [RoutingStrategy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-alias-routingstrategy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A unique identifier for a fleet that the alias points to\\. If you specify `SIMPLE` for the `Type` property, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Pattern*: `^fleet-\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FleetId", + "type": "string" + }, + "Message": { + "markdownDescription": "The message text to be used with a terminal routing strategy\\. If you specify `TERMINAL` for the `Type` property, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Message", + "type": "string" + }, + "Type": { + "markdownDescription": "A type of routing strategy\\. \nPossible routing types include the following: \n+ **SIMPLE** \\- The alias resolves to one specific fleet\\. Use this type when routing to active fleets\\.\n+ **TERMINAL** \\- The alias does not resolve to a fleet but instead can be used to display a message to the user\\. A terminal alias throws a `TerminalRoutingStrategyException` with the message that you specified in the `Message` property\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `SIMPLE | TERMINAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "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": { + "markdownDescription": "A descriptive label that is associated with a build\\. Build names do not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "OperatingSystem": { + "markdownDescription": "The operating system that the game server binaries are built to run on\\. This value determines the type of fleet resources that you can use for this build\\. If your game build contains multiple executables, they all must run on the same operating system\\. If an operating system is not specified when creating a build, Amazon GameLift uses the default value \\(WINDOWS\\_2012\\)\\. This value cannot be changed later\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AMAZON_LINUX | AMAZON_LINUX_2 | WINDOWS_2012` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OperatingSystem", + "type": "string" + }, + "StorageLocation": { + "$ref": "#/definitions/AWS::GameLift::Build.StorageLocation", + "markdownDescription": "Information indicating where your game build files are stored\\. Use this parameter only when creating a build with files stored in an Amazon S3 bucket that you own\\. The storage location must specify an Amazon S3 bucket name and key\\. The location must also specify a role ARN that you set up to allow Amazon Web Services to access your Amazon S3 bucket\\. The S3 bucket and your new build must be in the same Region\\. \nIf a `StorageLocation` is specified, the size of your file can be found in your Amazon S3 bucket\\. Amazon Web Services will report a `SizeOnDisk` of 0\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-build-storagelocation.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StorageLocation" + }, + "Version": { + "markdownDescription": "Version information that is associated with this build\\. Version strings do not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A unique identifier for a build to be deployed on the new fleet\\. If you are deploying the fleet with a custom game build, you must specify this property\\. The build must have been successfully uploaded to Amazon GameLift and be in a `READY` status\\. This fleet setting cannot be changed once the fleet is created\\. \n*Required*: Conditional \n*Type*: String \n*Pattern*: `^build-\\S+|^arn:.*:build\\/build-\\S+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BuildId", + "type": "string" + }, + "CertificateConfiguration": { + "$ref": "#/definitions/AWS::GameLift::Fleet.CertificateConfiguration", + "markdownDescription": "Prompts GameLift to generate a TLS/SSL certificate for the fleet\\. TLS certificates are used for encrypting traffic between game clients and the game servers that are running on GameLift\\. By default, the `CertificateConfiguration` is set to `DISABLED`\\. This property cannot be changed after the fleet is created\\. \nNote: This feature requires the AWS Certificate Manager \\(ACM\\) service, which is not available in all AWS regions\\. When working in a region that does not support this feature, a fleet creation request with certificate generation fails with a 4xx error\\. \n*Required*: No \n*Type*: [CertificateConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-certificateconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateConfiguration" + }, + "ComputeType": { + "type": "string" + }, + "Description": { + "markdownDescription": "A human\\-readable description of the fleet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DesiredEC2Instances": { + "markdownDescription": "The number of EC2 instances that you want this fleet to host\\. When creating a new fleet, GameLift automatically sets this value to \"1\" and initiates a single instance\\. Once the fleet is active, update this value to trigger GameLift to add or remove instances from the fleet\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DesiredEC2Instances", + "type": "number" + }, + "EC2InboundPermissions": { + "items": { + "$ref": "#/definitions/AWS::GameLift::Fleet.IpPermission" + }, + "markdownDescription": "The allowed IP address ranges and port settings that allow inbound traffic to access game sessions on this fleet\\. If the fleet is hosting a custom game build, this property must be set before players can connect to game sessions\\. For Realtime Servers fleets, GameLift automatically sets TCP and UDP ranges\\. \n*Required*: No \n*Type*: List of [IpPermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-ippermission.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EC2InboundPermissions", + "type": "array" + }, + "EC2InstanceType": { + "markdownDescription": "The GameLift\\-supported Amazon EC2 instance type to use for all fleet instances\\. Instance type determines the computing resources that will be used to host your game servers, including CPU, memory, storage, and networking capacity\\. See [Amazon Elastic Compute Cloud Instance Types](http://aws.amazon.com/ec2/instance-types/) for detailed descriptions of Amazon EC2 instance types\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | t2.large | t2.medium | t2.micro | t2.small` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EC2InstanceType", + "type": "string" + }, + "FleetType": { + "markdownDescription": "Indicates whether to use On\\-Demand or Spot instances for this fleet\\. By default, this property is set to `ON_DEMAND`\\. Learn more about when to use [ On\\-Demand versus Spot Instances](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-ec2-instances.html#gamelift-ec2-instances-spot)\\. This property cannot be changed after the fleet is created\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ON_DEMAND | SPOT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FleetType", + "type": "string" + }, + "InstanceRoleARN": { + "markdownDescription": "A unique identifier for an IAM role that manages access to your AWS services\\. With an instance role ARN set, any application that runs on an instance in this fleet can assume the role, including install scripts, server processes, and daemons \\(background processes\\)\\. Create a role or look up a role's ARN by using the [IAM dashboard](https://console.aws.amazon.com/iam/) in the AWS Management Console\\. Learn more about using on\\-box credentials for your game servers at [ Access external resources from a game server](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html)\\. This property cannot be changed after the fleet is created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceRoleARN", + "type": "string" + }, + "Locations": { + "items": { + "$ref": "#/definitions/AWS::GameLift::Fleet.LocationConfiguration" + }, + "markdownDescription": "A set of remote locations to deploy additional instances to and manage as part of the fleet\\. This parameter can only be used when creating fleets in AWS Regions that support multiple locations\\. You can add any GameLift\\-supported AWS Region as a remote location, in the form of an AWS Region code such as `us-west-2`\\. To create a fleet with instances in the home Region only, omit this parameter\\. \n*Required*: No \n*Type*: List of [LocationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationconfiguration.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Locations", + "type": "array" + }, + "MaxSize": { + "markdownDescription": "The maximum number of instances that are allowed in the specified fleet location\\. If this parameter is not set, the default is 1\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxSize", + "type": "number" + }, + "MetricGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "The name of an AWS CloudWatch metric group to add this fleet to\\. A metric group is used to aggregate the metrics for multiple fleets\\. You can specify an existing metric group name or set a new name to create a new metric group\\. A fleet can be included in only one metric group at a time\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricGroups", + "type": "array" + }, + "MinSize": { + "markdownDescription": "The minimum number of instances that are allowed in the specified fleet location\\. If this parameter is not set, the default is 0\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinSize", + "type": "number" + }, + "Name": { + "markdownDescription": "A descriptive label that is associated with a fleet\\. Fleet names do not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "NewGameSessionProtectionPolicy": { + "markdownDescription": "The status of termination protection for active game sessions on the fleet\\. By default, this property is set to `NoProtection`\\. \n+ **NoProtection** \\- Game sessions can be terminated during active gameplay as a result of a scale\\-down event\\. \n+ **FullProtection** \\- Game sessions in `ACTIVE` status cannot be terminated during a scale\\-down event\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `FullProtection | NoProtection` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NewGameSessionProtectionPolicy", + "type": "string" + }, + "PeerVpcAwsAccountId": { + "markdownDescription": "Used when peering your GameLift fleet with a VPC, the unique identifier for the AWS account that owns the VPC\\. You can find your account ID in the AWS Management Console under account settings\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PeerVpcAwsAccountId", + "type": "string" + }, + "PeerVpcId": { + "markdownDescription": "A unique identifier for a VPC with resources to be accessed by your GameLift fleet\\. The VPC must be in the same Region as your fleet\\. To look up a VPC ID, use the [VPC Dashboard](https://console.aws.amazon.com/vpc/) in the AWS Management Console\\. Learn more about VPC peering in [VPC Peering with GameLift Fleets](https://docs.aws.amazon.com/gamelift/latest/developerguide/vpc-peering.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PeerVpcId", + "type": "string" + }, + "ResourceCreationLimitPolicy": { + "$ref": "#/definitions/AWS::GameLift::Fleet.ResourceCreationLimitPolicy", + "markdownDescription": "A policy that limits the number of game sessions that an individual player can create on instances in this fleet within a specified span of time\\. \n*Required*: No \n*Type*: [ResourceCreationLimitPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-resourcecreationlimitpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceCreationLimitPolicy" + }, + "RuntimeConfiguration": { + "$ref": "#/definitions/AWS::GameLift::Fleet.RuntimeConfiguration", + "markdownDescription": "Instructions for how to launch and maintain server processes on instances in the fleet\\. The runtime configuration defines one or more server process configurations, each identifying a build executable or Realtime script file and the number of processes of that type to run concurrently\\. \nThe `RuntimeConfiguration` parameter is required unless the fleet is being configured using the older parameters `ServerLaunchPath` and `ServerLaunchParameters`, which are still supported for backward compatibility\\.\n*Required*: Conditional \n*Type*: [RuntimeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-runtimeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuntimeConfiguration" + }, + "ScriptId": { + "markdownDescription": "The unique identifier for a Realtime configuration script to be deployed on fleet instances\\. You can use either the script ID or ARN\\. Scripts must be uploaded to GameLift prior to creating the fleet\\. This fleet property cannot be changed later\\. \nYou can't use the `!Ref` command to reference a script created with a CloudFormation template for the fleet property `ScriptId`\\. Instead, use `Fn::GetAtt Script.Arn` or `Fn::GetAtt Script.Id` to retrieve either of these properties as input for `ScriptId`\\. Alternatively, enter a `ScriptId` string manually\\.\n*Required*: Conditional \n*Type*: String \n*Pattern*: `^script-\\S+|^arn:.*:script\\/script-\\S+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Indicates whether a TLS/SSL certificate is generated for a fleet\\. \nValid values include: \n+ **GENERATED** \\- Generate a TLS/SSL certificate for this fleet\\.\n+ **DISABLED** \\- \\(default\\) Do not generate a TLS/SSL certificate for this fleet\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | GENERATED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateType", + "type": "string" + } + }, + "required": [ + "CertificateType" + ], + "type": "object" + }, + "AWS::GameLift::Fleet.IpPermission": { + "additionalProperties": false, + "properties": { + "FromPort": { + "markdownDescription": "A starting value for a range of allowed port numbers\\. \nFor fleets using Windows and Linux builds, only ports 1026\\-60000 are valid\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `60000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FromPort", + "type": "number" + }, + "IpRange": { + "markdownDescription": "A range of allowed IP addresses\\. This value must be expressed in CIDR notation\\. Example: \"`000.000.000.000/[subnet mask]`\" or optionally the shortened version \"`0.0.0.0/[subnet mask]`\"\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[^\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IpRange", + "type": "string" + }, + "Protocol": { + "markdownDescription": "The network communication protocol used by the fleet\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `TCP | UDP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "string" + }, + "ToPort": { + "markdownDescription": "An ending value for a range of allowed port numbers\\. Port numbers are end\\-inclusive\\. This value must be higher than `FromPort`\\. \nFor fleets using Windows and Linux builds, only ports 1026\\-60000 are valid\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `60000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ToPort", + "type": "number" + } + }, + "required": [ + "FromPort", + "IpRange", + "Protocol", + "ToPort" + ], + "type": "object" + }, + "AWS::GameLift::Fleet.LocationCapacity": { + "additionalProperties": false, + "properties": { + "DesiredEC2Instances": { + "markdownDescription": "The number of Amazon EC2 instances you want to maintain in the specified fleet location\\. This value must fall between the minimum and maximum size limits\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DesiredEC2Instances", + "type": "number" + }, + "MaxSize": { + "markdownDescription": "The maximum number of instances that are allowed in the specified fleet location\\. If this parameter is not set, the default is 1\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxSize", + "type": "number" + }, + "MinSize": { + "markdownDescription": "The minimum number of instances that are allowed in the specified fleet location\\. If this parameter is not set, the default is 0\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinSize", + "type": "number" + } + }, + "required": [ + "DesiredEC2Instances", + "MaxSize", + "MinSize" + ], + "type": "object" + }, + "AWS::GameLift::Fleet.LocationConfiguration": { + "additionalProperties": false, + "properties": { + "Location": { + "markdownDescription": "An AWS Region code, such as `us-west-2`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-z]+(-([a-z]+|\\d))*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", + "type": "string" + }, + "LocationCapacity": { + "$ref": "#/definitions/AWS::GameLift::Fleet.LocationCapacity", + "markdownDescription": "Current resource capacity settings in a specified fleet or location\\. The location value might refer to a fleet's remote location or its home Region\\. \n **Related actions** \n [DescribeFleetCapacity](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetCapacity.html) \\| [DescribeFleetLocationCapacity](https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html) \\| [UpdateFleetCapacity](https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateFleetCapacity.html) \n*Required*: No \n*Type*: [LocationCapacity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationcapacity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocationCapacity" + } + }, + "required": [ + "Location" + ], + "type": "object" + }, + "AWS::GameLift::Fleet.ResourceCreationLimitPolicy": { + "additionalProperties": false, + "properties": { + "NewGameSessionsPerCreator": { + "markdownDescription": "The maximum number of game sessions that an individual can create during the policy period\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NewGameSessionsPerCreator", + "type": "number" + }, + "PolicyPeriodInMinutes": { + "markdownDescription": "The time span used in evaluating the resource creation limit policy\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyPeriodInMinutes", + "type": "number" + } + }, + "type": "object" + }, + "AWS::GameLift::Fleet.RuntimeConfiguration": { + "additionalProperties": false, + "properties": { + "GameSessionActivationTimeoutSeconds": { + "markdownDescription": "The maximum amount of time \\(in seconds\\) allowed to launch a new game session and have it report ready to host players\\. During this time, the game session is in status `ACTIVATING`\\. If the game session does not become active before the timeout, it is ended and the game session status is changed to `TERMINATED`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GameSessionActivationTimeoutSeconds", + "type": "number" + }, + "MaxConcurrentGameSessionActivations": { + "markdownDescription": "The number of game sessions in status `ACTIVATING` to allow on an instance\\. This setting limits the instance resources that can be used for new game activations at any one time\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxConcurrentGameSessionActivations", + "type": "number" + }, + "ServerProcesses": { + "items": { + "$ref": "#/definitions/AWS::GameLift::Fleet.ServerProcess" + }, + "markdownDescription": "A collection of server process configurations that identify what server processes to run on each instance in a fleet\\. \n*Required*: No \n*Type*: List of [ServerProcess](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-serverprocess.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerProcesses", + "type": "array" + } + }, + "type": "object" + }, + "AWS::GameLift::Fleet.ServerProcess": { + "additionalProperties": false, + "properties": { + "ConcurrentExecutions": { + "markdownDescription": "The number of server processes using this configuration that run concurrently on each instance\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConcurrentExecutions", + "type": "number" + }, + "LaunchPath": { + "markdownDescription": "The location of a game build executable or the Realtime script file that contains the `Init()` function\\. Game builds and Realtime scripts are installed on instances at the root: \n+ Windows \\(custom game builds only\\): `C:\\game`\\. Example: \"`C:\\game\\MyGame\\server.exe`\" \n+ Linux: `/local/game`\\. Examples: \"`/local/game/MyGame/server.exe`\" or \"`/local/game/MyRealtimeScript.js`\"\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[A-Za-z0-9_:.+\\/\\\\\\- ]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchPath", + "type": "string" + }, + "Parameters": { + "markdownDescription": "An optional list of parameters to pass to the server executable or Realtime script on launch\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[A-Za-z0-9_:.+\\/\\\\\\- =@;{},?'\\[\\]\"]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting\\. The scaling policy uses the metric `\"PercentUtilizedGameServers\"` to maintain a buffer of idle game servers that can immediately accommodate new games and players\\. After the Auto Scaling group is created, update this value directly in the Auto Scaling group using the AWS console or APIs\\. \n*Required*: No \n*Type*: [AutoScalingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-autoscalingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoScalingPolicy" + }, + "BalancingStrategy": { + "markdownDescription": "Indicates how GameLift FleetIQ balances the use of Spot Instances and On\\-Demand Instances in the game server group\\. Method options include the following: \n+ `SPOT_ONLY` \\- Only Spot Instances are used in the game server group\\. If Spot Instances are unavailable or not viable for game hosting, the game server group provides no hosting capacity until Spot Instances can again be used\\. Until then, no new instances are started, and the existing nonviable Spot Instances are terminated \\(after current gameplay ends\\) and are not replaced\\.\n+ `SPOT_PREFERRED` \\- \\(default value\\) Spot Instances are used whenever available in the game server group\\. If Spot Instances are unavailable, the game server group continues to provide hosting capacity by falling back to On\\-Demand Instances\\. Existing nonviable Spot Instances are terminated \\(after current gameplay ends\\) and are replaced with new On\\-Demand Instances\\.\n+ `ON_DEMAND_ONLY` \\- Only On\\-Demand Instances are used in the game server group\\. No Spot Instances are used, even when available, while this balancing strategy is in force\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ON_DEMAND_ONLY | SPOT_ONLY | SPOT_PREFERRED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BalancingStrategy", + "type": "string" + }, + "DeleteOption": { + "markdownDescription": "The type of delete to perform\\. To delete a game server group, specify the `DeleteOption`\\. Options include the following: \n+ `SAFE_DELETE` \u2013 \\(default\\) Terminates the game server group and Amazon EC2 Auto Scaling group only when it has no game servers that are in `UTILIZED` status\\.\n+ `FORCE_DELETE` \u2013 Terminates the game server group, including all active game servers regardless of their utilization status, and the Amazon EC2 Auto Scaling group\\. \n+ `RETAIN` \u2013 Does a safe delete of the game server group but retains the Amazon EC2 Auto Scaling group as is\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `FORCE_DELETE | RETAIN | SAFE_DELETE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteOption", + "type": "string" + }, + "GameServerGroupName": { + "markdownDescription": "A developer\\-defined identifier for the game server group\\. The name is unique for each Region in each AWS account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9-\\.]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GameServerGroupName", + "type": "string" + }, + "GameServerProtectionPolicy": { + "markdownDescription": "A flag that indicates whether instances in the game server group are protected from early termination\\. Unprotected instances that have active game servers running might be terminated during a scale\\-down event, causing players to be dropped from the game\\. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion \\(see \\)\\. An exception to this is with Spot Instances, which can be terminated by AWS regardless of protection status\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `FULL_PROTECTION | NO_PROTECTION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GameServerProtectionPolicy", + "type": "string" + }, + "InstanceDefinitions": { + "items": { + "$ref": "#/definitions/AWS::GameLift::GameServerGroup.InstanceDefinition" + }, + "markdownDescription": "The set of Amazon EC2 instance types that GameLift FleetIQ can use when balancing and automatically scaling instances in the corresponding Auto Scaling group\\. \n*Required*: Yes \n*Type*: List of [InstanceDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-instancedefinition.html) \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceDefinitions", + "type": "array" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::GameLift::GameServerGroup.LaunchTemplate", + "markdownDescription": "The Amazon EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group\\. You can specify the template using either the template name or ID\\. For help with creating a launch template, see [Creating a Launch Template for an Auto Scaling Group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html) in the *Amazon Elastic Compute Cloud Auto Scaling User Guide*\\. After the Auto Scaling group is created, update this value directly in the Auto Scaling group using the AWS console or APIs\\. \nIf you specify network interfaces in your launch template, you must explicitly set the property `AssociatePublicIpAddress` to \"true\"\\. If no network interface is specified in the launch template, GameLift FleetIQ uses your account's default VPC\\.\n*Required*: Yes \n*Type*: [LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-launchtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplate" + }, + "MaxSize": { + "markdownDescription": "The maximum number of instances allowed in the Amazon EC2 Auto Scaling group\\. During automatic scaling events, GameLift FleetIQ and EC2 do not scale up the group above this maximum\\. After the Auto Scaling group is created, update this value directly in the Auto Scaling group using the AWS console or APIs\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxSize", + "type": "number" + }, + "MinSize": { + "markdownDescription": "The minimum number of instances allowed in the Amazon EC2 Auto Scaling group\\. During automatic scaling events, GameLift FleetIQ and Amazon EC2 do not scale down the group below this minimum\\. In production, this value should be set to at least 1\\. After the Auto Scaling group is created, update this value directly in the Auto Scaling group using the AWS console or APIs\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinSize", + "type": "number" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\([ARN](https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html)\\) for an IAM role that allows Amazon Web Services to access your Amazon EC2 Auto Scaling groups\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn:.*:role\\/[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of labels to assign to the new game server group resource\\. Tags are developer\\-defined key\\-value pairs\\. Tagging AWS resources is useful for resource management, access management, and cost allocation\\. For more information, see [ Tagging AWS Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the * AWS General Reference*\\. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags, respectively\\. The maximum tag limit may be lower than stated\\. See the AWS General Reference for actual tagging limits\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VpcSubnets": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of virtual private cloud \\(VPC\\) subnets to use with instances in the game server group\\. By default, all GameLift FleetIQ\\-supported Availability Zones are used\\. You can use this parameter to specify VPCs that you've set up\\. This property cannot be updated after the game server group is created, and the corresponding Auto Scaling group will always use the property value that is set with this request, even if the Auto Scaling group is updated directly\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSubnets", + "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": { + "markdownDescription": "Length of time, in seconds, it takes for a new instance to start new game server processes and register with GameLift FleetIQ\\. Specifying a warm\\-up time can be useful, particularly with game servers that take a long time to start up, because it avoids prematurely starting new instances\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EstimatedInstanceWarmup", + "type": "number" + }, + "TargetTrackingConfiguration": { + "$ref": "#/definitions/AWS::GameLift::GameServerGroup.TargetTrackingConfiguration", + "markdownDescription": "Settings for a target\\-based scaling policy applied to Auto Scaling group\\. These settings are used to create a target\\-based policy that tracks the GameLift FleetIQ metric `PercentUtilizedGameServers` and specifies a target value for the metric\\. As player usage changes, the policy triggers to adjust the game server group capacity so that the metric returns to the target value\\. \n*Required*: Yes \n*Type*: [TargetTrackingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-targettrackingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetTrackingConfiguration" + } + }, + "required": [ + "TargetTrackingConfiguration" + ], + "type": "object" + }, + "AWS::GameLift::GameServerGroup.InstanceDefinition": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "markdownDescription": "An Amazon EC2 instance type designation\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.xlarge | m4.10xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.xlarge` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", + "type": "string" + }, + "WeightedCapacity": { + "markdownDescription": "Instance weighting that indicates how much this instance type contributes to the total capacity of a game server group\\. Instance weights are used by GameLift FleetIQ to calculate the instance type's cost per unit hour and better identify the most cost\\-effective options\\. For detailed information on weighting instance capacity, see [Instance Weighting](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-weighting.html) in the *Amazon Elastic Compute Cloud Auto Scaling User Guide*\\. Default value is \"1\"\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `3` \n*Pattern*: `^[\\u0031-\\u0039][\\u0030-\\u0039]{0,2}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WeightedCapacity", + "type": "string" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "AWS::GameLift::GameServerGroup.LaunchTemplate": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "markdownDescription": "A unique identifier for an existing Amazon EC2 launch template\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplateId", + "type": "string" + }, + "LaunchTemplateName": { + "markdownDescription": "A readable identifier for an existing Amazon EC2 launch template\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9\\(\\)\\.\\-/_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplateName", + "type": "string" + }, + "Version": { + "markdownDescription": "The version of the Amazon EC2 launch template to use\\. If no version is specified, the default version will be used\\. With Amazon EC2, you can specify a default version for a launch template\\. If none is set, the default is the first version created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", + "type": "string" + } + }, + "type": "object" + }, + "AWS::GameLift::GameServerGroup.TargetTrackingConfiguration": { + "additionalProperties": false, + "properties": { + "TargetValue": { + "markdownDescription": "Desired value to use with a game server group target\\-based scaling policy\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Information to be added to all events that are related to this game session queue\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomEventData", + "type": "string" + }, + "Destinations": { + "items": { + "$ref": "#/definitions/AWS::GameLift::GameSessionQueue.Destination" + }, + "markdownDescription": "A list of fleets and/or fleet aliases that can be used to fulfill game session placement requests in the queue\\. Destinations are identified by either a fleet ARN or a fleet alias ARN, and are listed in order of placement preference\\. \n*Required*: No \n*Type*: List of [Destination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-destination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destinations", + "type": "array" + }, + "FilterConfiguration": { + "$ref": "#/definitions/AWS::GameLift::GameSessionQueue.FilterConfiguration", + "markdownDescription": "A list of locations where a queue is allowed to place new game sessions\\. Locations are specified in the form of AWS Region codes, such as `us-west-2`\\. If this parameter is not set, game sessions can be placed in any queue location\\. \n*Required*: No \n*Type*: [FilterConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-filterconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterConfiguration" + }, + "Name": { + "markdownDescription": "A descriptive label that is associated with game session queue\\. Queue names must be unique within each Region\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "NotificationTarget": { + "markdownDescription": "An SNS topic ARN that is set up to receive game session placement notifications\\. See [ Setting up notifications for game session placement](https://docs.aws.amazon.com/gamelift/latest/developerguide/queue-notification.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `300` \n*Pattern*: `[a-zA-Z0-9:_-]*(\\.fifo)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationTarget", + "type": "string" + }, + "PlayerLatencyPolicies": { + "items": { + "$ref": "#/definitions/AWS::GameLift::GameSessionQueue.PlayerLatencyPolicy" + }, + "markdownDescription": "A set of policies that act as a sliding cap on player latency\\. FleetIQ works to deliver low latency for most players in a game session\\. These policies ensure that no individual player can be placed into a game with unreasonably high latency\\. Use multiple policies to gradually relax latency requirements a step at a time\\. Multiple policies are applied based on their maximum allowed latency, starting with the lowest value\\. \n*Required*: No \n*Type*: List of [PlayerLatencyPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-playerlatencypolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlayerLatencyPolicies", + "type": "array" + }, + "PriorityConfiguration": { + "$ref": "#/definitions/AWS::GameLift::GameSessionQueue.PriorityConfiguration", + "markdownDescription": "Custom settings to use when prioritizing destinations and locations for game session placements\\. This configuration replaces the FleetIQ default prioritization process\\. Priority types that are not explicitly named will be automatically applied at the end of the prioritization process\\. \n*Required*: No \n*Type*: [PriorityConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-priorityconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PriorityConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of labels to assign to the new game session queue resource\\. Tags are developer\\-defined key\\-value pairs\\. Tagging AWS resources are useful for resource management, access management and cost allocation\\. For more information, see [ Tagging AWS Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the * AWS General Reference*\\. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags\\. The maximum tag limit may be lower than stated\\. See the AWS General Reference for actual tagging limits\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TimeoutInSeconds": { + "markdownDescription": "The maximum time, in seconds, that a new game session placement request remains in the queue\\. When a request exceeds this time, the game session placement changes to a `TIMED_OUT` status\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) that is assigned to fleet or fleet alias\\. ARNs, which include a fleet ID or alias ID and a Region name, provide a unique identifier across all Regions\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z0-9:/-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::GameLift::GameSessionQueue.FilterConfiguration": { + "additionalProperties": false, + "properties": { + "AllowedLocations": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of locations to allow game session placement in, in the form of AWS Region codes such as `us-west-2`\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedLocations", + "type": "array" + } + }, + "type": "object" + }, + "AWS::GameLift::GameSessionQueue.PlayerLatencyPolicy": { + "additionalProperties": false, + "properties": { + "MaximumIndividualPlayerLatencyMilliseconds": { + "markdownDescription": "The maximum latency value that is allowed for any player, in milliseconds\\. All policies must have a value set for this property\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumIndividualPlayerLatencyMilliseconds", + "type": "number" + }, + "PolicyDurationSeconds": { + "markdownDescription": "The length of time, in seconds, that the policy is enforced while placing a new game session\\. A null value for this property means that the policy is enforced until the queue times out\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDurationSeconds", + "type": "number" + } + }, + "type": "object" + }, + "AWS::GameLift::GameSessionQueue.PriorityConfiguration": { + "additionalProperties": false, + "properties": { + "LocationOrder": { + "items": { + "type": "string" + }, + "markdownDescription": "The prioritization order to use for fleet locations, when the `PriorityOrder` property includes `LOCATION`\\. Locations are identified by AWS Region codes such as `us-west-2`\\. Each location can only be listed once\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocationOrder", + "type": "array" + }, + "PriorityOrder": { + "items": { + "type": "string" + }, + "markdownDescription": "The recommended sequence to use when prioritizing where to place new game sessions\\. Each type can only be listed once\\. \n+ `LATENCY` \\-\\- FleetIQ prioritizes locations where the average player latency \\(provided in each game session request\\) is lowest\\. \n+ `COST` \\-\\- FleetIQ prioritizes destinations with the lowest current hosting costs\\. Cost is evaluated based on the location, instance type, and fleet type \\(Spot or On\\-Demand\\) for each destination in the queue\\.\n+ `DESTINATION` \\-\\- FleetIQ prioritizes based on the order that destinations are listed in the queue configuration\\.\n+ `LOCATION` \\-\\- FleetIQ prioritizes based on the provided order of locations, as defined in `LocationOrder`\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PriorityOrder", + "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": { + "markdownDescription": "A flag that determines whether a match that was created with this configuration must be accepted by the matched players\\. To require acceptance, set to `TRUE`\\. With this option enabled, matchmaking tickets use the status `REQUIRES_ACCEPTANCE` to indicate when a completed potential match is waiting for player acceptance\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptanceRequired", + "type": "boolean" + }, + "AcceptanceTimeoutSeconds": { + "markdownDescription": "The length of time \\(in seconds\\) to wait for players to accept a proposed match, if acceptance is required\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptanceTimeoutSeconds", + "type": "number" + }, + "AdditionalPlayerCount": { + "markdownDescription": "The number of player slots in a match to keep open for future players\\. For example, if the configuration's rule set specifies a match for a single 12\\-person team, and the additional player count is set to 2, only 10 players are selected for the match\\. This parameter is not used if `FlexMatchMode` is set to `STANDALONE`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdditionalPlayerCount", + "type": "number" + }, + "BackfillMode": { + "markdownDescription": "The method used to backfill game sessions that are created with this matchmaking configuration\\. Specify `MANUAL` when your game manages backfill requests manually or does not use the match backfill feature\\. Specify `AUTOMATIC` to have GameLift create a `StartMatchBackfill` request whenever a game session has one or more open slots\\. Learn more about manual and automatic backfill in [Backfill Existing Games with FlexMatch](https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-backfill.html)\\. Automatic backfill is not available when `FlexMatchMode` is set to `STANDALONE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUTOMATIC | MANUAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackfillMode", + "type": "string" + }, + "CustomEventData": { + "markdownDescription": "Information to add to all events related to the matchmaking configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomEventData", + "type": "string" + }, + "Description": { + "markdownDescription": "A descriptive label that is associated with matchmaking configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "FlexMatchMode": { + "markdownDescription": "Indicates whether this matchmaking configuration is being used with GameLift hosting or as a standalone matchmaking solution\\. \n+ **STANDALONE** \\- FlexMatch forms matches and returns match information, including players and team assignments, in a [ MatchmakingSucceeded](https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-events.html#match-events-matchmakingsucceeded) event\\.\n+ **WITH\\_QUEUE** \\- FlexMatch forms matches and uses the specified GameLift queue to start a game session for the match\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `STANDALONE | WITH_QUEUE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FlexMatchMode", + "type": "string" + }, + "GameProperties": { + "items": { + "$ref": "#/definitions/AWS::GameLift::MatchmakingConfiguration.GameProperty" + }, + "markdownDescription": "A set of custom properties for a game session, formatted as key\\-value pairs\\. These properties are passed to a game server process with a request to start a new game session\\. See [ Start a Game Session](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)\\. This parameter is not used if `FlexMatchMode` is set to `STANDALONE`\\. \n*Required*: No \n*Type*: List of [GameProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-matchmakingconfiguration-gameproperty.html) \n*Maximum*: `16` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GameProperties", + "type": "array" + }, + "GameSessionData": { + "markdownDescription": "A set of custom game session properties, formatted as a single string value\\. This data is passed to a game server process with a request to start a new game session\\. See [Start a Game Session](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)\\. This parameter is not used if`FlexMatchMode` is set to `STANDALONE`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GameSessionData", + "type": "string" + }, + "GameSessionQueueArns": { + "items": { + "type": "string" + }, + "markdownDescription": "The Amazon Resource Name \\([ARN](https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html)\\) that is assigned to a GameLift game session queue resource and uniquely identifies it\\. ARNs are unique across all Regions\\. Format is `arn:aws:gamelift:::gamesessionqueue/`\\. Queues can be located in any Region\\. Queues are used to start new GameLift\\-hosted game sessions for matches that are created with this matchmaking configuration\\. If `FlexMatchMode` is set to `STANDALONE`, do not set this parameter\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GameSessionQueueArns", + "type": "array" + }, + "Name": { + "markdownDescription": "A unique identifier for the matchmaking configuration\\. This name is used to identify the configuration associated with a matchmaking request or ticket\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9-\\.]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "NotificationTarget": { + "markdownDescription": "An SNS topic ARN that is set up to receive matchmaking notifications\\. See [ Setting up notifications for matchmaking](https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-notification.html) for more information\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `300` \n*Pattern*: `[a-zA-Z0-9:_/-]*(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/.html)?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationTarget", + "type": "string" + }, + "RequestTimeoutSeconds": { + "markdownDescription": "The maximum duration, in seconds, that a matchmaking ticket can remain in process before timing out\\. Requests that fail due to timing out can be resubmitted as needed\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `43200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestTimeoutSeconds", + "type": "number" + }, + "RuleSetName": { + "markdownDescription": "A unique identifier for the matchmaking rule set to use with this configuration\\. You can use either the rule set name or ARN value\\. A matchmaking configuration can only use rule sets that are defined in the same Region\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z0-9-\\.]*|^arn:.*:matchmakingruleset\\/[a-zA-Z0-9-\\.]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleSetName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of labels to assign to the new matchmaking configuration resource\\. Tags are developer\\-defined key\\-value pairs\\. Tagging AWS resources are useful for resource management, access management and cost allocation\\. For more information, see [ Tagging AWS Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the * AWS General Reference*\\. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags\\. The maximum tag limit may be lower than stated\\. See the AWS General Reference for actual tagging limits\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The game property identifier\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The game property value\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `96` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::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": { + "markdownDescription": "A unique identifier for the matchmaking rule set\\. A matchmaking configuration identifies the rule set it uses by this name value\\. Note that the rule set name is different from the optional `name` field in the rule set body\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9-\\.]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RuleSetBody": { + "markdownDescription": "A collection of matchmaking rules, formatted as a JSON string\\. Comments are not allowed in JSON, but most elements support a description field\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RuleSetBody", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of labels to assign to the new matchmaking rule set resource\\. Tags are developer\\-defined key\\-value pairs\\. Tagging AWS resources are useful for resource management, access management and cost allocation\\. For more information, see [ Tagging AWS Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the * AWS General Reference*\\. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags\\. The maximum tag limit may be lower than stated\\. See the AWS General Reference for actual tagging limits\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "A descriptive label that is associated with a script\\. Script names do not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "StorageLocation": { + "$ref": "#/definitions/AWS::GameLift::Script.S3Location", + "markdownDescription": "The location of the Amazon S3 bucket where a zipped file containing your Realtime scripts is stored\\. The storage location must specify the Amazon S3 bucket name, the zip file name \\(the \"key\"\\), and a role ARN that allows Amazon Web Services to access the Amazon S3 storage location\\. The S3 bucket must be in the same Region where you want to create a new script\\. By default, Amazon Web Services uploads the latest version of the zip file; if you have S3 object versioning turned on, you can use the `ObjectVersion` parameter to specify an earlier version\\. \n*Required*: Yes \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-script-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageLocation" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of labels to assign to the new script resource\\. Tags are developer\\-defined key\\-value pairs\\. Tagging AWS resources are useful for resource management, access management and cost allocation\\. For more information, see [ Tagging AWS Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the * AWS General Reference*\\. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags\\. The maximum tag limit may be lower than stated\\. See the AWS General Reference for actual tagging limits\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Version": { + "markdownDescription": "The version that is associated with a build or script\\. Version strings do not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "An Amazon S3 bucket identifier\\. This is the name of the S3 bucket\\. \nGameLift currently does not support uploading from Amazon S3 buckets with names that contain a dot \\(\\.\\)\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", + "type": "string" + }, + "Key": { + "markdownDescription": "The name of the zip file that contains the build files or script files\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "ObjectVersion": { + "markdownDescription": "The version of the file, if object versioning is turned on for the bucket\\. Amazon Web Services uses this information when retrieving files from an S3 bucket that you own\\. Use this parameter to specify a specific version of the file\\. If not set, the latest version of the file is retrieved\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectVersion", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\([ARN](https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html)\\) for an IAM role that allows Amazon Web Services to access the S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Indicates whether the accelerator is enabled\\. The value is true or false\\. The default value is true\\. \nIf the value is set to true, the accelerator cannot be deleted\\. If set to false, accelerator can be deleted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "IpAddressType": { + "markdownDescription": "The value for the address type must be IPv4\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `IPV4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IpAddressType", + "type": "string" + }, + "IpAddresses": { + "items": { + "type": "string" + }, + "markdownDescription": "Optionally, if you've added your own IP address pool to Global Accelerator \\(BYOIP\\), you can choose IP addresses from your own pool to use for the accelerator's static IP addresses when you create an accelerator\\. You can specify one or two addresses, separated by a comma\\. Do not include the /32 suffix\\. \nOnly one IP address from each of your IP address ranges can be used for each accelerator\\. If you specify only one IP address from your IP address range, Global Accelerator assigns a second static IP address for the accelerator from the AWS IP address pool\\. \n Note that you can't update IP addresses for an existing accelerator\\. To change them, you must create a new accelerator with the new addresses\\. \nFor more information, see [Bring Your Own IP Addresses \\(BYOIP\\)](https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html) in the *AWS Global Accelerator Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IpAddresses", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the accelerator\\. The name must contain only alphanumeric characters or hyphens \\(\\-\\), and must not begin or end with a hyphen\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Create tags for an accelerator\\. \nFor more information, see [Tagging ](https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html) in the *AWS Global Accelerator Developer Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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" + }, + "markdownDescription": "The list of endpoint objects\\. \n*Required*: No \n*Type*: List of [EndpointConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-endpointconfiguration.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointConfigurations", + "type": "array" + }, + "EndpointGroupRegion": { + "markdownDescription": "The AWS Regions where the endpoint group is located\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EndpointGroupRegion", + "type": "string" + }, + "HealthCheckIntervalSeconds": { + "markdownDescription": "The time\u201410 seconds or 30 seconds\u2014between health checks for each endpoint\\. The default value is 30\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `10` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckIntervalSeconds", + "type": "number" + }, + "HealthCheckPath": { + "markdownDescription": "If the protocol is HTTP/S, then this value provides the ping path that Global Accelerator uses for the destination on the endpoints for health checks\\. The default is slash \\(/\\)\\. \n*Required*: No \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `^/[-a-zA-Z0-9@:%_\\\\+.~#?&/=]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckPath", + "type": "string" + }, + "HealthCheckPort": { + "markdownDescription": "The port that Global Accelerator uses to perform health checks on endpoints that are part of this endpoint group\\. \nThe default port is the port for the listener that this endpoint group is associated with\\. If the listener port is a list, Global Accelerator uses the first specified port in the list of ports\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckPort", + "type": "number" + }, + "HealthCheckProtocol": { + "markdownDescription": "The protocol that Global Accelerator uses to perform health checks on endpoints that are part of this endpoint group\\. The default value is TCP\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `HTTP | HTTPS | TCP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckProtocol", + "type": "string" + }, + "ListenerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the listener\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ListenerArn", + "type": "string" + }, + "PortOverrides": { + "items": { + "$ref": "#/definitions/AWS::GlobalAccelerator::EndpointGroup.PortOverride" + }, + "markdownDescription": "Allows you to override the destination ports used to route traffic to an endpoint\\. Using a port override lets you to map a list of external destination ports \\(that your users send traffic to\\) to a list of internal destination ports that you want an application endpoint to receive traffic on\\. \n*Required*: No \n*Type*: List of [PortOverride](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-portoverride.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortOverrides", + "type": "array" + }, + "ThresholdCount": { + "markdownDescription": "The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an unhealthy endpoint to healthy\\. The default value is 3\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThresholdCount", + "type": "number" + }, + "TrafficDialPercentage": { + "markdownDescription": "The percentage of traffic to send to an AWS Regions\\. Additional traffic is distributed to other endpoint groups for this listener\\. \nUse this action to increase \\(dial up\\) or decrease \\(dial down\\) traffic to a specific Region\\. The percentage is applied to the traffic that would otherwise have been routed to the Region based on optimal routing\\. \nThe default value is 100\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint\\. The value is true or false\\. The default value is true for new accelerators\\. \nIf the value is set to true, the client's IP address is preserved in the `X-Forwarded-For` request header as traffic travels to applications on the Application Load Balancer endpoint fronted by the accelerator\\. \nFor more information, see [ Preserve Client IP Addresses](https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html) in the *AWS Global Accelerator Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientIPPreservationEnabled", + "type": "boolean" + }, + "EndpointId": { + "markdownDescription": "An ID for the endpoint\\. If the endpoint is a Network Load Balancer or Application Load Balancer, this is the Amazon Resource Name \\(ARN\\) of the resource\\. If the endpoint is an Elastic IP address, this is the Elastic IP address allocation ID\\. For Amazon EC2 instances, this is the EC2 instance ID\\. A resource must be valid and active when you add it as an endpoint\\. \nAn Application Load Balancer can be either internal or internet\\-facing\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointId", + "type": "string" + }, + "Weight": { + "markdownDescription": "The weight associated with the endpoint\\. When you add weights to endpoints, you configure Global Accelerator to route traffic based on proportions that you specify\\. For example, you might specify endpoint weights of 4, 5, 5, and 6 \\(sum=20\\)\\. The result is that 4/20 of your traffic, on average, is routed to the first endpoint, 5/20 is routed both to the second and third endpoints, and 6/20 is routed to the last endpoint\\. For more information, see [Endpoint Weights](https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoints-endpoint-weights.html) in the *AWS Global Accelerator Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Weight", + "type": "number" + } + }, + "required": [ + "EndpointId" + ], + "type": "object" + }, + "AWS::GlobalAccelerator::EndpointGroup.PortOverride": { + "additionalProperties": false, + "properties": { + "EndpointPort": { + "markdownDescription": "The endpoint port that you want a listener port to be mapped to\\. This is the port on the endpoint, such as the Application Load Balancer or Amazon EC2 instance\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointPort", + "type": "number" + }, + "ListenerPort": { + "markdownDescription": "The listener port that you want to map to a specific endpoint port\\. This is the port that user traffic arrives to the Global Accelerator on\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of your accelerator\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorArn", + "type": "string" + }, + "ClientAffinity": { + "markdownDescription": "Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications, regardless of the port and protocol of the client request\\. Client affinity gives you control over whether to always route each client to the same specific endpoint\\. \nAWS Global Accelerator uses a consistent\\-flow hashing algorithm to choose the optimal endpoint for a connection\\. If client affinity is `NONE`, Global Accelerator uses the \"five\\-tuple\" \\(5\\-tuple\\) properties\u2014source IP address, source port, destination IP address, destination port, and protocol\u2014to select the hash value, and then chooses the best endpoint\\. However, with this setting, if someone uses different ports to connect to Global Accelerator, their connections might not be always routed to the same endpoint because the hash value changes\\. \nIf you want a given client to always be routed to the same endpoint, set client affinity to `SOURCE_IP` instead\\. When you use the `SOURCE_IP` setting, Global Accelerator uses the \"two\\-tuple\" \\(2\\-tuple\\) properties\u2014 source \\(client\\) IP address and destination IP address\u2014to select the hash value\\. \nThe default value is `NONE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | SOURCE_IP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientAffinity", + "type": "string" + }, + "PortRanges": { + "items": { + "$ref": "#/definitions/AWS::GlobalAccelerator::Listener.PortRange" + }, + "markdownDescription": "The list of port ranges for the connections from clients to the accelerator\\. \n*Required*: Yes \n*Type*: List of [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-listener-portrange.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortRanges", + "type": "array" + }, + "Protocol": { + "markdownDescription": "The protocol for the connections from clients to the accelerator\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `TCP | UDP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "string" + } + }, + "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": { + "markdownDescription": "The first port in the range of ports, inclusive\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FromPort", + "type": "number" + }, + "ToPort": { + "markdownDescription": "The last port in the range of ports, inclusive\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "A classifier for comma\\-separated values \\(CSV\\)\\. \n*Required*: Conditional \n*Type*: [CsvClassifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-csvclassifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CsvClassifier" + }, + "GrokClassifier": { + "$ref": "#/definitions/AWS::Glue::Classifier.GrokClassifier", + "markdownDescription": "A classifier that uses `grok`\\. \n*Required*: Conditional \n*Type*: [GrokClassifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-grokclassifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GrokClassifier" + }, + "JsonClassifier": { + "$ref": "#/definitions/AWS::Glue::Classifier.JsonClassifier", + "markdownDescription": "A classifier for JSON content\\. \n*Required*: Conditional \n*Type*: [JsonClassifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-jsonclassifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JsonClassifier" + }, + "XMLClassifier": { + "$ref": "#/definitions/AWS::Glue::Classifier.XMLClassifier", + "markdownDescription": "A classifier for XML content\\. \n*Required*: Conditional \n*Type*: [XMLClassifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-xmlclassifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Enables the processing of files that contain only one column\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowSingleColumn", + "type": "boolean" + }, + "ContainsHeader": { + "markdownDescription": "Indicates whether the CSV file contains a header\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainsHeader", + "type": "string" + }, + "Delimiter": { + "markdownDescription": "A custom symbol to denote what separates each column entry in the row\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Delimiter", + "type": "string" + }, + "DisableValueTrimming": { + "markdownDescription": "Specifies not to trim values before identifying the type of column values\\. The default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableValueTrimming", + "type": "boolean" + }, + "Header": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of strings representing column names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Header", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the classifier\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "QuoteSymbol": { + "markdownDescription": "A custom symbol to denote what combines content into a single column value\\. It must be different from the column delimiter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QuoteSymbol", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Classifier.GrokClassifier": { + "additionalProperties": false, + "properties": { + "Classification": { + "markdownDescription": "An identifier of the data format that the classifier matches, such as Twitter, JSON, Omniture logs, and so on\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Classification", + "type": "string" + }, + "CustomPatterns": { + "markdownDescription": "Optional custom grok patterns defined by this classifier\\. For more information, see custom patterns in [Writing Custom Classifiers](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomPatterns", + "type": "string" + }, + "GrokPattern": { + "markdownDescription": "The grok pattern applied to a data store by this classifier\\. For more information, see built\\-in patterns in [Writing Custom Classifiers](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GrokPattern", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the classifier\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "Classification", + "GrokPattern" + ], + "type": "object" + }, + "AWS::Glue::Classifier.JsonClassifier": { + "additionalProperties": false, + "properties": { + "JsonPath": { + "markdownDescription": "A `JsonPath` string defining the JSON data for the classifier to classify\\. AWS Glue supports a subset of `JsonPath`, as described in [Writing JsonPath Custom Classifiers](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html#custom-classifier-json)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JsonPath", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the classifier\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "JsonPath" + ], + "type": "object" + }, + "AWS::Glue::Classifier.XMLClassifier": { + "additionalProperties": false, + "properties": { + "Classification": { + "markdownDescription": "An identifier of the data format that the classifier matches\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Classification", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the classifier\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RowTag": { + "markdownDescription": "The XML tag designating the element that contains each record in an XML document being parsed\\. This can't identify a self\\-closing element \\(closed by `/>`\\)\\. An empty row element that contains only attributes can be parsed as long as it ends with a closing tag \\(for example, `` is okay, but `` is not\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ID of the data catalog to create the catalog object in\\. Currently, this should be the AWS account ID\\. \nTo specify the account ID, you can use the `Ref` intrinsic function with the `AWS::AccountId` pseudo parameter\\. For example: `!Ref AWS::AccountId`\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CatalogId", + "type": "string" + }, + "ConnectionInput": { + "$ref": "#/definitions/AWS::Glue::Connection.ConnectionInput", + "markdownDescription": "The connection that you want to create\\. \n*Required*: Yes \n*Type*: [ConnectionInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "These key\\-value pairs define parameters for the connection\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionProperties", + "type": "object" + }, + "ConnectionType": { + "markdownDescription": "The type of the connection\\. Currently, these types are supported: \n+ `JDBC` \\- Designates a connection to a database through Java Database Connectivity \\(JDBC\\)\\.\n+ `KAFKA` \\- Designates a connection to an Apache Kafka streaming platform\\.\n+ `MONGODB` \\- Designates a connection to a MongoDB document database\\.\n+ `NETWORK` \\- Designates a network connection to a data source within an Amazon Virtual Private Cloud environment \\(Amazon VPC\\)\\.\nSFTP is not supported\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionType", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the connection\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "MatchCriteria": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of criteria that can be used in selecting this connection\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MatchCriteria", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the connection\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "PhysicalConnectionRequirements": { + "$ref": "#/definitions/AWS::Glue::Connection.PhysicalConnectionRequirements", + "markdownDescription": "A map of physical connection requirements, such as virtual private cloud \\(VPC\\) and `SecurityGroup`, that are needed to successfully make this connection\\. \n*Required*: No \n*Type*: [PhysicalConnectionRequirements](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-physicalconnectionrequirements.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PhysicalConnectionRequirements" + } + }, + "required": [ + "ConnectionType" + ], + "type": "object" + }, + "AWS::Glue::Connection.PhysicalConnectionRequirements": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "markdownDescription": "The connection's Availability Zone\\. This field is redundant because the specified subnet implies the Availability Zone to be used\\. Currently the field must be populated, but it will be deprecated in the future\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZone", + "type": "string" + }, + "SecurityGroupIdList": { + "items": { + "type": "string" + }, + "markdownDescription": "The security group ID list used by the connection\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIdList", + "type": "array" + }, + "SubnetId": { + "markdownDescription": "The subnet ID used by the connection\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "A list of UTF\\-8 strings that specify the custom classifiers that are associated with the crawler\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Classifiers", + "type": "array" + }, + "Configuration": { + "markdownDescription": "Crawler configuration information\\. This versioned JSON string allows users to specify aspects of a crawler's behavior\\. For more information, see [Configuring a Crawler](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configuration", + "type": "string" + }, + "CrawlerSecurityConfiguration": { + "markdownDescription": "The name of the `SecurityConfiguration` structure to be used by this crawler\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CrawlerSecurityConfiguration", + "type": "string" + }, + "DatabaseName": { + "markdownDescription": "The name of the database in which the crawler's output is stored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", + "type": "string" + }, + "Description": { + "markdownDescription": "A description of the crawler\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the crawler\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RecrawlPolicy": { + "$ref": "#/definitions/AWS::Glue::Crawler.RecrawlPolicy", + "markdownDescription": "A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run\\. \n*Required*: No \n*Type*: [RecrawlPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-recrawlpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecrawlPolicy" + }, + "Role": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an IAM role that's used to access customer resources, such as Amazon Simple Storage Service \\(Amazon S3\\) data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Role", + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/AWS::Glue::Crawler.Schedule", + "markdownDescription": "For scheduled crawlers, the schedule when the crawler runs\\. \n*Required*: No \n*Type*: [Schedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-schedule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule" + }, + "SchemaChangePolicy": { + "$ref": "#/definitions/AWS::Glue::Crawler.SchemaChangePolicy", + "markdownDescription": "The policy that specifies update and delete behaviors for the crawler\\. \n*Required*: No \n*Type*: [SchemaChangePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-schemachangepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaChangePolicy" + }, + "TablePrefix": { + "markdownDescription": "The prefix added to the names of tables that are created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TablePrefix", + "type": "string" + }, + "Tags": { + "markdownDescription": "The tags to use with this crawler\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "object" + }, + "Targets": { + "$ref": "#/definitions/AWS::Glue::Crawler.Targets", + "markdownDescription": "A collection of targets to crawl\\. \n*Required*: Yes \n*Type*: [Targets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-targets.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Targets" + } + }, + "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": { + "markdownDescription": "The name of the database to be synchronized\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", + "type": "string" + }, + "Tables": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of the tables to be synchronized\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tables", + "type": "array" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.DynamoDBTarget": { + "additionalProperties": false, + "properties": { + "Path": { + "markdownDescription": "The name of the DynamoDB table to crawl\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.JdbcTarget": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "markdownDescription": "The name of the connection to use to connect to the JDBC target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionName", + "type": "string" + }, + "Exclusions": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of glob patterns used to exclude from the crawl\\. For more information, see [Catalog Tables with a Crawler](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exclusions", + "type": "array" + }, + "Path": { + "markdownDescription": "The path of the JDBC target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.MongoDBTarget": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "markdownDescription": "The name of the connection to use to connect to the Amazon DocumentDB or MongoDB target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionName", + "type": "string" + }, + "Path": { + "markdownDescription": "The path of the Amazon DocumentDB or MongoDB target \\(database/collection\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.RecrawlPolicy": { + "additionalProperties": false, + "properties": { + "RecrawlBehavior": { + "markdownDescription": "Specifies whether to crawl the entire dataset again or to crawl only folders that were added since the last crawler run\\. \nA value of `CRAWL_EVERYTHING` specifies crawling the entire dataset again\\. \nA value of `CRAWL_NEW_FOLDERS_ONLY` specifies crawling only folders that were added since the last crawler run\\. \nA value of `CRAWL_EVENT_MODE` specifies crawling only the changes identified by Amazon S3 events\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecrawlBehavior", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.S3Target": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "markdownDescription": "The name of a connection which allows a job or crawler to access data in Amazon S3 within an Amazon Virtual Private Cloud environment \\(Amazon VPC\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionName", + "type": "string" + }, + "DlqEventQueueArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DlqEventQueueArn", + "type": "string" + }, + "EventQueueArn": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventQueueArn", + "type": "string" + }, + "Exclusions": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of glob patterns used to exclude from the crawl\\. For more information, see [Catalog Tables with a Crawler](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exclusions", + "type": "array" + }, + "Path": { + "markdownDescription": "The path to the Amazon S3 target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", + "type": "string" + }, + "SampleSize": { + "markdownDescription": "Sets the number of files in each leaf folder to be crawled when crawling sample files in a dataset\\. If not set, all the files are crawled\\. A valid value is an integer between 1 and 249\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SampleSize", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.Schedule": { + "additionalProperties": false, + "properties": { + "ScheduleExpression": { + "markdownDescription": "A `cron` expression used to specify the schedule\\. For more information, see [Time\\-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html)\\. For example, to run something every day at 12:15 UTC, specify `cron(15 12 * * ? *)`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleExpression", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.SchemaChangePolicy": { + "additionalProperties": false, + "properties": { + "DeleteBehavior": { + "markdownDescription": "The deletion behavior when the crawler finds a deleted object\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteBehavior", + "type": "string" + }, + "UpdateBehavior": { + "markdownDescription": "The update behavior when the crawler finds a changed schema\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdateBehavior", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.Targets": { + "additionalProperties": false, + "properties": { + "CatalogTargets": { + "items": { + "$ref": "#/definitions/AWS::Glue::Crawler.CatalogTarget" + }, + "markdownDescription": "Specifies AWS Glue Data Catalog targets\\. \n*Required*: No \n*Type*: List of [CatalogTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-catalogtarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CatalogTargets", + "type": "array" + }, + "DynamoDBTargets": { + "items": { + "$ref": "#/definitions/AWS::Glue::Crawler.DynamoDBTarget" + }, + "markdownDescription": "Specifies Amazon DynamoDB targets\\. \n*Required*: No \n*Type*: List of [DynamoDBTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-dynamodbtarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DynamoDBTargets", + "type": "array" + }, + "JdbcTargets": { + "items": { + "$ref": "#/definitions/AWS::Glue::Crawler.JdbcTarget" + }, + "markdownDescription": "Specifies JDBC targets\\. \n*Required*: No \n*Type*: List of [JdbcTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-jdbctarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JdbcTargets", + "type": "array" + }, + "MongoDBTargets": { + "items": { + "$ref": "#/definitions/AWS::Glue::Crawler.MongoDBTarget" + }, + "markdownDescription": "A list of Mongo DB targets\\. \n*Required*: No \n*Type*: List of [MongoDBTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-mongodbtarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MongoDBTargets", + "type": "array" + }, + "S3Targets": { + "items": { + "$ref": "#/definitions/AWS::Glue::Crawler.S3Target" + }, + "markdownDescription": "Specifies Amazon Simple Storage Service \\(Amazon S3\\) targets\\. \n*Required*: No \n*Type*: List of [S3Target](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-s3target.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Targets", + "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": { + "markdownDescription": "The ID of the Data Catalog in which the settings are created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CatalogId", + "type": "string" + }, + "DataCatalogEncryptionSettings": { + "$ref": "#/definitions/AWS::Glue::DataCatalogEncryptionSettings.DataCatalogEncryptionSettings", + "markdownDescription": "Contains configuration information for maintaining Data Catalog security\\. \n*Required*: Yes \n*Type*: [DataCatalogEncryptionSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-datacatalogencryptionsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "An AWS KMS key that is used to encrypt the connection password\\. \nIf connection password protection is enabled, the caller of `CreateConnection` and `UpdateConnection` needs at least `kms:Encrypt` permission on the specified AWS KMS key, to encrypt passwords before storing them in the Data Catalog\\. You can set the decrypt permission to enable or restrict access on the password key according to your security requirements\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", + "type": "string" + }, + "ReturnConnectionPasswordEncrypted": { + "markdownDescription": "When the `ReturnConnectionPasswordEncrypted` flag is set to \"true\", passwords remain encrypted in the responses of `GetConnection` and `GetConnections`\\. This encryption takes effect independently from catalog encryption\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReturnConnectionPasswordEncrypted", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Glue::DataCatalogEncryptionSettings.DataCatalogEncryptionSettings": { + "additionalProperties": false, + "properties": { + "ConnectionPasswordEncryption": { + "$ref": "#/definitions/AWS::Glue::DataCatalogEncryptionSettings.ConnectionPasswordEncryption", + "markdownDescription": "When connection password protection is enabled, the Data Catalog uses a customer\\-provided key to encrypt the password as part of `CreateConnection` or `UpdateConnection` and store it in the `ENCRYPTED_PASSWORD` field in the connection properties\\. You can enable catalog encryption or only password encryption\\. \n*Required*: No \n*Type*: [ConnectionPasswordEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-connectionpasswordencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionPasswordEncryption" + }, + "EncryptionAtRest": { + "$ref": "#/definitions/AWS::Glue::DataCatalogEncryptionSettings.EncryptionAtRest", + "markdownDescription": "Specifies the encryption\\-at\\-rest configuration for the Data Catalog\\. \n*Required*: No \n*Type*: [EncryptionAtRest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-encryptionatrest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionAtRest" + } + }, + "type": "object" + }, + "AWS::Glue::DataCatalogEncryptionSettings.EncryptionAtRest": { + "additionalProperties": false, + "properties": { + "CatalogEncryptionMode": { + "markdownDescription": "The encryption\\-at\\-rest mode for encrypting Data Catalog data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CatalogEncryptionMode", + "type": "string" + }, + "SseAwsKmsKeyId": { + "markdownDescription": "The ID of the AWS KMS key to use for encryption at rest\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The AWS account ID for the account in which to create the catalog object\\. \n To specify the account ID, you can use the `Ref` intrinsic function with the `AWS::AccountId` pseudo parameter\\. For example: `!Ref AWS::AccountId` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CatalogId", + "type": "string" + }, + "DatabaseInput": { + "$ref": "#/definitions/AWS::Glue::Database.DatabaseInput", + "markdownDescription": "The metadata for the database\\. \n*Required*: Yes \n*Type*: [DatabaseInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseinput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "An identifier for the AWS Lake Formation principal\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataLakePrincipalIdentifier", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Database.DatabaseIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "markdownDescription": "The ID of the Data Catalog in which the database resides\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CatalogId", + "type": "string" + }, + "DatabaseName": { + "markdownDescription": "The name of the catalog database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Database.DatabaseInput": { + "additionalProperties": false, + "properties": { + "CreateTableDefaultPermissions": { + "items": { + "$ref": "#/definitions/AWS::Glue::Database.PrincipalPrivileges" + }, + "markdownDescription": "Creates a set of default permissions on the table for principals\\. \n*Required*: No \n*Type*: List of [PrincipalPrivileges](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-principalprivileges.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreateTableDefaultPermissions", + "type": "array" + }, + "Description": { + "markdownDescription": "A description of the database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "LocationUri": { + "markdownDescription": "The location of the database \\(for example, an HDFS path\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocationUri", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the database\\. For Hive compatibility, this is folded to lowercase when it is stored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Parameters": { + "markdownDescription": "These key\\-value pairs define parameters and properties of the database\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "object" + }, + "TargetDatabase": { + "$ref": "#/definitions/AWS::Glue::Database.DatabaseIdentifier", + "markdownDescription": "A `DatabaseIdentifier` structure that describes a target database for resource linking\\. \n*Required*: No \n*Type*: [DatabaseIdentifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseidentifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetDatabase" + } + }, + "type": "object" + }, + "AWS::Glue::Database.PrincipalPrivileges": { + "additionalProperties": false, + "properties": { + "Permissions": { + "items": { + "type": "string" + }, + "markdownDescription": "The permissions that are granted to the principal\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Permissions", + "type": "array" + }, + "Principal": { + "$ref": "#/definitions/AWS::Glue::Database.DataLakePrincipal", + "markdownDescription": "The principal who is granted permissions\\. \n*Required*: No \n*Type*: [DataLakePrincipal](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-datalakeprincipal.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Principal" + } + }, + "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": { + "markdownDescription": "A map of arguments used to configure the `DevEndpoint`\\. \nValid arguments are: \n+ `\"--enable-glue-datacatalog\": \"\"`\n+ `\"GLUE_PYTHON_VERSION\": \"3\"`\n+ `\"GLUE_PYTHON_VERSION\": \"2\"`\nYou can specify a version of Python support for development endpoints by using the `Arguments` parameter in the `CreateDevEndpoint` or `UpdateDevEndpoint` APIs\\. If no arguments are provided, the version defaults to Python 2\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arguments", + "type": "object" + }, + "EndpointName": { + "markdownDescription": "The name of the `DevEndpoint`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EndpointName", + "type": "string" + }, + "ExtraJarsS3Path": { + "markdownDescription": "The path to one or more Java `.jar` files in an S3 bucket that should be loaded in your `DevEndpoint`\\. \nYou can only use pure Java/Scala libraries with a `DevEndpoint`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExtraJarsS3Path", + "type": "string" + }, + "ExtraPythonLibsS3Path": { + "markdownDescription": "The paths to one or more Python libraries in an Amazon S3 bucket that should be loaded in your `DevEndpoint`\\. Multiple values must be complete paths separated by a comma\\. \nYou can only use pure Python libraries with a `DevEndpoint`\\. Libraries that rely on C extensions, such as the [pandas](http://pandas.pydata.org/) Python data analysis library, are not currently supported\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExtraPythonLibsS3Path", + "type": "string" + }, + "GlueVersion": { + "markdownDescription": "The AWS Glue version determines the versions of Apache Spark and Python that AWS Glue supports\\. The Python version indicates the version supported for running your ETL scripts on development endpoints\\. \nFor more information about the available AWS Glue versions and corresponding Spark and Python versions, see [Glue version](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) in the developer guide\\. \nDevelopment endpoints that are created without specifying a Glue version default to Glue 0\\.9\\. \nYou can specify a version of Python support for development endpoints by using the `Arguments` parameter in the `CreateDevEndpoint` or `UpdateDevEndpoint` APIs\\. If no arguments are provided, the version defaults to Python 2\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlueVersion", + "type": "string" + }, + "NumberOfNodes": { + "markdownDescription": "The number of AWS Glue Data Processing Units \\(DPUs\\) allocated to this `DevEndpoint`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfNodes", + "type": "number" + }, + "NumberOfWorkers": { + "markdownDescription": "The number of workers of a defined `workerType` that are allocated to the development endpoint\\. \nThe maximum number of workers you can define are 299 for `G.1X`, and 149 for `G.2X`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfWorkers", + "type": "number" + }, + "PublicKey": { + "markdownDescription": "The public key to be used by this `DevEndpoint` for authentication\\. This attribute is provided for backward compatibility because the recommended attribute to use is public keys\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublicKey", + "type": "string" + }, + "PublicKeys": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of public keys to be used by the `DevEndpoints` for authentication\\. Using this attribute is preferred over a single public key because the public keys allow you to have a different private key per client\\. \nIf you previously created an endpoint with a public key, you must remove that key to be able to set a list of public keys\\. Call the `UpdateDevEndpoint` API operation with the public key content in the `deletePublicKeys` attribute, and the list of new keys in the `addPublicKeys` attribute\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublicKeys", + "type": "array" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role used in this `DevEndpoint`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "SecurityConfiguration": { + "markdownDescription": "The name of the `SecurityConfiguration` structure to be used with this `DevEndpoint`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityConfiguration", + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of security group identifiers used in this `DevEndpoint`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SubnetId": { + "markdownDescription": "The subnet ID for this `DevEndpoint`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetId", + "type": "string" + }, + "Tags": { + "markdownDescription": "The tags to use with this DevEndpoint\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "object" + }, + "WorkerType": { + "markdownDescription": "The type of predefined worker that is allocated to the development endpoint\\. Accepts a value of Standard, G\\.1X, or G\\.2X\\. \n+ For the `Standard` worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker\\.\n+ For the `G.1X` worker type, each worker maps to 1 DPU \\(4 vCPU, 16 GB of memory, 64 GB disk\\), and provides 1 executor per worker\\. We recommend this worker type for memory\\-intensive jobs\\.\n+ For the `G.2X` worker type, each worker maps to 2 DPU \\(8 vCPU, 32 GB of memory, 128 GB disk\\), and provides 1 executor per worker\\. We recommend this worker type for memory\\-intensive jobs\\.\nKnown issue: when a development endpoint is created with the `G.2X` `WorkerType` configuration, the Spark drivers for the development endpoint will run on 4 vCPU, 16 GB of memory, and a 64 GB disk\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The number of capacity units that are allocated to this job\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocatedCapacity", + "type": "number" + }, + "Command": { + "$ref": "#/definitions/AWS::Glue::Job.JobCommand", + "markdownDescription": "The code that executes a job\\. \n*Required*: Yes \n*Type*: [JobCommand](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-jobcommand.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Command" + }, + "Connections": { + "$ref": "#/definitions/AWS::Glue::Job.ConnectionsList", + "markdownDescription": "The connections used for this job\\. \n*Required*: No \n*Type*: [ConnectionsList](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-connectionslist.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Connections" + }, + "DefaultArguments": { + "markdownDescription": "The default arguments for this job, specified as name\\-value pairs\\. \nYou can specify arguments here that your own job\\-execution script consumes, in addition to arguments that AWS Glue itself consumes\\. \nFor information about how to specify and consume your own job arguments, see [Calling AWS Glue APIs in Python](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) in the *AWS Glue Developer Guide*\\. \nFor information about the key\\-value pairs that AWS Glue consumes to set up your job, see [Special Parameters Used by AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html) in the *AWS Glue Developer Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultArguments", + "type": "object" + }, + "Description": { + "markdownDescription": "A description of the job\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "ExecutionClass": { + "type": "string" + }, + "ExecutionProperty": { + "$ref": "#/definitions/AWS::Glue::Job.ExecutionProperty", + "markdownDescription": "The maximum number of concurrent runs that are allowed for this job\\. \n*Required*: No \n*Type*: [ExecutionProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-executionproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionProperty" + }, + "GlueVersion": { + "markdownDescription": "Glue version determines the versions of Apache Spark and Python that AWS Glue supports\\. The Python version indicates the version supported for jobs of type Spark\\. \nFor more information about the available AWS Glue versions and corresponding Spark and Python versions, see [Glue version](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) in the developer guide\\. \nJobs that are created without specifying a Glue version default to Glue 0\\.9\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlueVersion", + "type": "string" + }, + "LogUri": { + "markdownDescription": "This field is reserved for future use\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogUri", + "type": "string" + }, + "MaxCapacity": { + "markdownDescription": "The number of AWS Glue data processing units \\(DPUs\\) that can be allocated when this job runs\\. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory\\. \nDo not set `Max Capacity` if using `WorkerType` and `NumberOfWorkers`\\. \nThe value that can be allocated for `MaxCapacity` depends on whether you are running a Python shell job or an Apache Spark ETL job: \n+ When you specify a Python shell job \\(`JobCommand.Name`=\"pythonshell\"\\), you can allocate either 0\\.0625 or 1 DPU\\. The default is 0\\.0625 DPU\\.\n+ When you specify an Apache Spark ETL job \\(`JobCommand.Name`=\"glueetl\"\\), you can allocate from 2 to 100 DPUs\\. The default is 10 DPUs\\. This job type cannot have a fractional DPU allocation\\.\n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacity", + "type": "number" + }, + "MaxRetries": { + "markdownDescription": "The maximum number of times to retry this job after a JobRun fails\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxRetries", + "type": "number" + }, + "Name": { + "markdownDescription": "The name you assign to this job definition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "NonOverridableArguments": { + "type": "object" + }, + "NotificationProperty": { + "$ref": "#/definitions/AWS::Glue::Job.NotificationProperty", + "markdownDescription": "Specifies configuration properties of a notification\\. \n*Required*: No \n*Type*: [NotificationProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-notificationproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationProperty" + }, + "NumberOfWorkers": { + "markdownDescription": "The number of workers of a defined `workerType` that are allocated when a job runs\\. \nThe maximum number of workers you can define are 299 for `G.1X`, and 149 for `G.2X`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfWorkers", + "type": "number" + }, + "Role": { + "markdownDescription": "The name or Amazon Resource Name \\(ARN\\) of the IAM role associated with this job\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Role", + "type": "string" + }, + "SecurityConfiguration": { + "markdownDescription": "The name of the `SecurityConfiguration` structure to be used with this job\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityConfiguration", + "type": "string" + }, + "Tags": { + "markdownDescription": "The tags to use with this job\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "object" + }, + "Timeout": { + "markdownDescription": "The job timeout in minutes\\. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status\\. The default is 2,880 minutes \\(48 hours\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout", + "type": "number" + }, + "WorkerType": { + "markdownDescription": "The type of predefined worker that is allocated when a job runs\\. Accepts a value of Standard, G\\.1X, or G\\.2X\\. \n+ For the `Standard` worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker\\.\n+ For the `G.1X` worker type, each worker maps to 1 DPU \\(4 vCPU, 16 GB of memory, 64 GB disk\\), and provides 1 executor per worker\\. We recommend this worker type for memory\\-intensive jobs\\.\n+ For the `G.2X` worker type, each worker maps to 2 DPU \\(8 vCPU, 32 GB of memory, 128 GB disk\\), and provides 1 executor per worker\\. We recommend this worker type for memory\\-intensive jobs\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "A list of connections used by the job\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Connections", + "type": "array" + } + }, + "type": "object" + }, + "AWS::Glue::Job.ExecutionProperty": { + "additionalProperties": false, + "properties": { + "MaxConcurrentRuns": { + "markdownDescription": "The maximum number of concurrent runs allowed for the job\\. The default is 1\\. An error is returned when this threshold is reached\\. The maximum value you can specify is controlled by a service limit\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxConcurrentRuns", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Glue::Job.JobCommand": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the job command\\. For an Apache Spark ETL job, this must be `glueetl`\\. For a Python shell job, it must be `pythonshell`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "PythonVersion": { + "markdownDescription": "The Python version being used to execute a Python shell job\\. Allowed values are 2 or 3\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PythonVersion", + "type": "string" + }, + "ScriptLocation": { + "markdownDescription": "Specifies the Amazon Simple Storage Service \\(Amazon S3\\) path to a script that executes a job \\(required\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScriptLocation", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Job.NotificationProperty": { + "additionalProperties": false, + "properties": { + "NotifyDelayAfter": { + "markdownDescription": "After a job run starts, the number of minutes to wait before sending a job run delay notification\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A user\\-defined, long\\-form description text for the machine learning transform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "GlueVersion": { + "markdownDescription": "This value determines which version of AWS Glue this machine learning transform is compatible with\\. Glue 1\\.0 is recommended for most customers\\. If the value is not set, the Glue compatibility defaults to Glue 0\\.9\\. For more information, see [AWS Glue Versions](https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions) in the developer guide\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlueVersion", + "type": "string" + }, + "InputRecordTables": { + "$ref": "#/definitions/AWS::Glue::MLTransform.InputRecordTables", + "markdownDescription": "A list of AWS Glue table definitions used by the transform\\. \n*Required*: Yes \n*Type*: [InputRecordTables](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-inputrecordtables.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InputRecordTables" + }, + "MaxCapacity": { + "markdownDescription": "The number of AWS Glue data processing units \\(DPUs\\) that are allocated to task runs for this transform\\. You can allocate from 2 to 100 DPUs; the default is 10\\. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory\\. For more information, see the [AWS Glue pricing page](http://aws.amazon.com/glue/pricing/)\\. \n`MaxCapacity` is a mutually exclusive option with `NumberOfWorkers` and `WorkerType`\\. \n+ If either `NumberOfWorkers` or `WorkerType` is set, then `MaxCapacity` cannot be set\\.\n+ If `MaxCapacity` is set then neither `NumberOfWorkers` or `WorkerType` can be set\\.\n+ If `WorkerType` is set, then `NumberOfWorkers` is required \\(and vice versa\\)\\.\n+ `MaxCapacity` and `NumberOfWorkers` must both be at least 1\\.\nWhen the `WorkerType` field is set to a value other than `Standard`, the `MaxCapacity` field is set automatically and becomes read\\-only\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacity", + "type": "number" + }, + "MaxRetries": { + "markdownDescription": "The maximum number of times to retry after an `MLTaskRun` of the machine learning transform fails\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxRetries", + "type": "number" + }, + "Name": { + "markdownDescription": "A user\\-defined name for the machine learning transform\\. Names are required to be unique\\. `Name` is optional: \n+ If you supply `Name`, the stack cannot be repeatedly created\\.\n+ If `Name` is not provided, a randomly generated name will be used instead\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "NumberOfWorkers": { + "markdownDescription": "The number of workers of a defined `workerType` that are allocated when a task of the transform runs\\. \nIf `WorkerType` is set, then `NumberOfWorkers` is required \\(and vice versa\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfWorkers", + "type": "number" + }, + "Role": { + "markdownDescription": "The name or Amazon Resource Name \\(ARN\\) of the IAM role with the required permissions\\. The required permissions include both AWS Glue service role permissions to AWS Glue resources, and Amazon S3 permissions required by the transform\\. \n+ This role needs AWS Glue service role permissions to allow access to resources in AWS Glue\\. See [Attach a Policy to IAM Users That Access AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/attach-policy-iam-user.html)\\.\n+ This role needs permission to your Amazon Simple Storage Service \\(Amazon S3\\) sources, targets, temporary directory, scripts, and any libraries used by the task run for this transform\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Role", + "type": "string" + }, + "Tags": { + "markdownDescription": "The tags to use with this machine learning transform\\. You may use tags to limit access to the machine learning transform\\. For more information about tags in AWS Glue, see [AWS Tags in AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html) in the developer guide\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "object" + }, + "Timeout": { + "markdownDescription": "The timeout in minutes of the machine learning transform\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout", + "type": "number" + }, + "TransformEncryption": { + "$ref": "#/definitions/AWS::Glue::MLTransform.TransformEncryption", + "markdownDescription": "The encryption\\-at\\-rest settings of the transform that apply to accessing user data\\. Machine learning transforms can access user data encrypted in Amazon S3 using KMS\\. \nAdditionally, imported labels and trained transforms can now be encrypted using a customer provided KMS key\\. \n*Required*: No \n*Type*: [TransformEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransformEncryption" + }, + "TransformParameters": { + "$ref": "#/definitions/AWS::Glue::MLTransform.TransformParameters", + "markdownDescription": "The algorithm\\-specific parameters that are associated with the machine learning transform\\. \n*Required*: Yes \n*Type*: [TransformParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransformParameters" + }, + "WorkerType": { + "markdownDescription": "The type of predefined worker that is allocated when a task of this transform runs\\. Accepts a value of Standard, G\\.1X, or G\\.2X\\. \n+ For the `Standard` worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker\\.\n+ For the `G.1X` worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker\\.\n+ For the `G.2X` worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker\\.\n`MaxCapacity` is a mutually exclusive option with `NumberOfWorkers` and `WorkerType`\\. \n+ If either `NumberOfWorkers` or `WorkerType` is set, then `MaxCapacity` cannot be set\\.\n+ If `MaxCapacity` is set then neither `NumberOfWorkers` or `WorkerType` can be set\\.\n+ If `WorkerType` is set, then `NumberOfWorkers` is required \\(and vice versa\\)\\.\n+ `MaxCapacity` and `NumberOfWorkers` must both be at least 1\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The value that is selected when tuning your transform for a balance between accuracy and cost\\. A value of 0\\.5 means that the system balances accuracy and cost concerns\\. A value of 1\\.0 means a bias purely for accuracy, which typically results in a higher cost, sometimes substantially higher\\. A value of 0\\.0 means a bias purely for cost, which results in a less accurate `FindMatches` transform, sometimes with unacceptable accuracy\\. \nAccuracy measures how well the transform finds true positives and true negatives\\. Increasing accuracy requires more machine resources and cost\\. But it also results in increased recall\\. \nCost measures how many compute resources, and thus money, are consumed to run the transform\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccuracyCostTradeoff", + "type": "number" + }, + "EnforceProvidedLabels": { + "markdownDescription": "The value to switch on or off to force the output to match the provided labels from users\\. If the value is `True`, the `find matches` transform forces the output to match the provided labels\\. The results override the normal conflation results\\. If the value is `False`, the `find matches` transform does not ensure all the labels provided are respected, and the results rely on the trained model\\. \nNote that setting this value to true may increase the conflation execution time\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnforceProvidedLabels", + "type": "boolean" + }, + "PrecisionRecallTradeoff": { + "markdownDescription": "The value selected when tuning your transform for a balance between precision and recall\\. A value of 0\\.5 means no preference; a value of 1\\.0 means a bias purely for precision, and a value of 0\\.0 means a bias for recall\\. Because this is a tradeoff, choosing values close to 1\\.0 means very low recall, and choosing values close to 0\\.0 results in very low precision\\. \nThe precision metric indicates how often your model is correct when it predicts a match\\. \nThe recall metric indicates that for an actual match, how often your model predicts the match\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrecisionRecallTradeoff", + "type": "number" + }, + "PrimaryKeyColumnName": { + "markdownDescription": "The name of a column that uniquely identifies rows in the source table\\. Used to help identify matching records\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrimaryKeyColumnName", + "type": "string" + } + }, + "required": [ + "PrimaryKeyColumnName" + ], + "type": "object" + }, + "AWS::Glue::MLTransform.GlueTables": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "markdownDescription": "A unique identifier for the AWS Glue Data Catalog\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CatalogId", + "type": "string" + }, + "ConnectionName": { + "markdownDescription": "The name of the connection to the AWS Glue Data Catalog\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionName", + "type": "string" + }, + "DatabaseName": { + "markdownDescription": "A database name in the AWS Glue Data Catalog\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", + "type": "string" + }, + "TableName": { + "markdownDescription": "A table name in the AWS Glue Data Catalog\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", + "type": "string" + } + }, + "required": [ + "DatabaseName", + "TableName" + ], + "type": "object" + }, + "AWS::Glue::MLTransform.InputRecordTables": { + "additionalProperties": false, + "properties": { + "GlueTables": { + "items": { + "$ref": "#/definitions/AWS::Glue::MLTransform.GlueTables" + }, + "markdownDescription": "The database and table in the AWS Glue Data Catalog that is used for input or output data\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-inputrecordtables-gluetables.html) of [GlueTables](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-inputrecordtables-gluetables.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlueTables", + "type": "array" + } + }, + "type": "object" + }, + "AWS::Glue::MLTransform.MLUserDataEncryption": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "markdownDescription": "The ID for the customer\\-provided KMS key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", + "type": "string" + }, + "MLUserDataEncryptionMode": { + "markdownDescription": "The encryption mode applied to user data\\. Valid values are: \n+ DISABLED: encryption is disabled\\.\n+ SSEKMS: use of server\\-side encryption with AWS Key Management Service \\(SSE\\-KMS\\) for user data stored in Amazon S3\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MLUserDataEncryptionMode", + "type": "string" + } + }, + "required": [ + "MLUserDataEncryptionMode" + ], + "type": "object" + }, + "AWS::Glue::MLTransform.TransformEncryption": { + "additionalProperties": false, + "properties": { + "MLUserDataEncryption": { + "$ref": "#/definitions/AWS::Glue::MLTransform.MLUserDataEncryption", + "markdownDescription": "The encryption\\-at\\-rest settings of the transform that apply to accessing user data\\. \n*Required*: No \n*Type*: [MLUserDataEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformencryption-mluserdataencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MLUserDataEncryption" + }, + "TaskRunSecurityConfigurationName": { + "markdownDescription": "The name of the security configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskRunSecurityConfigurationName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::MLTransform.TransformParameters": { + "additionalProperties": false, + "properties": { + "FindMatchesParameters": { + "$ref": "#/definitions/AWS::Glue::MLTransform.FindMatchesParameters", + "markdownDescription": "The parameters for the find matches algorithm\\. \n*Required*: No \n*Type*: [FindMatchesParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformparameters-findmatchesparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FindMatchesParameters" + }, + "TransformType": { + "markdownDescription": "The type of machine learning transform\\. `FIND_MATCHES` is the only option\\. \nFor information about the types of machine learning transforms, see [Creating Machine Learning Transforms](https://docs.aws.amazon.com/glue/latest/dg/add-job-machine-learning-transform.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The AWS account ID of the catalog in which the partion is to be created\\. \nTo specify the account ID, you can use the `Ref` intrinsic function with the `AWS::AccountId` pseudo parameter\\. For example: `!Ref AWS::AccountId` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CatalogId", + "type": "string" + }, + "DatabaseName": { + "markdownDescription": "The name of the catalog database in which to create the partition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatabaseName", + "type": "string" + }, + "PartitionInput": { + "$ref": "#/definitions/AWS::Glue::Partition.PartitionInput", + "markdownDescription": "The structure used to create and update a partition\\. \n*Required*: Yes \n*Type*: [PartitionInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-partitioninput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PartitionInput" + }, + "TableName": { + "markdownDescription": "The name of the metadata table in which the partition is to be created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A free\\-form text comment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the `Column`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Type": { + "markdownDescription": "The data type of the `Column`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Glue::Partition.Order": { + "additionalProperties": false, + "properties": { + "Column": { + "markdownDescription": "The name of the column\\. \n*Required*: Yes \n*Type*: [String](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-column.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Column", + "type": "string" + }, + "SortOrder": { + "markdownDescription": "Indicates that the column is sorted in ascending order \\(`== 1`\\), or in descending order \\(`==0`\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SortOrder", + "type": "number" + } + }, + "required": [ + "Column" + ], + "type": "object" + }, + "AWS::Glue::Partition.PartitionInput": { + "additionalProperties": false, + "properties": { + "Parameters": { + "markdownDescription": "These key\\-value pairs define partition parameters\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "object" + }, + "StorageDescriptor": { + "$ref": "#/definitions/AWS::Glue::Partition.StorageDescriptor", + "markdownDescription": "Provides information about the physical location where the partition is stored\\. \n*Required*: No \n*Type*: [StorageDescriptor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageDescriptor" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "The values of the partition\\. Although this parameter is not required by the SDK, you must specify this parameter for a valid input\\. \nThe values for the keys for the new partition must be passed as an array of String objects that must be ordered in the same order as the partition keys appearing in the Amazon S3 prefix\\. Otherwise AWS Glue will add the values to the wrong keys\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Values", + "type": "array" + } + }, + "required": [ + "Values" + ], + "type": "object" + }, + "AWS::Glue::Partition.SchemaId": { + "additionalProperties": false, + "properties": { + "RegistryName": { + "markdownDescription": "The name of the schema registry that contains the schema\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegistryName", + "type": "string" + }, + "SchemaArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the schema\\. One of `SchemaArn` or `SchemaName` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaArn", + "type": "string" + }, + "SchemaName": { + "markdownDescription": "The name of the schema\\. One of `SchemaArn` or `SchemaName` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Partition.SchemaReference": { + "additionalProperties": false, + "properties": { + "SchemaId": { + "$ref": "#/definitions/AWS::Glue::Partition.SchemaId", + "markdownDescription": "A structure that contains schema identity fields\\. Either this or the `SchemaVersionId` has to be provided\\. \n*Required*: No \n*Type*: [SchemaId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-schemaid.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaId" + }, + "SchemaVersionId": { + "markdownDescription": "The unique ID assigned to a version of the schema\\. Either this or the `SchemaId` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaVersionId", + "type": "string" + }, + "SchemaVersionNumber": { + "markdownDescription": "The version number of the schema\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaVersionNumber", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Glue::Partition.SerdeInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "Name of the SerDe\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Parameters": { + "markdownDescription": "These key\\-value pairs define initialization parameters for the SerDe\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "object" + }, + "SerializationLibrary": { + "markdownDescription": "Usually the class that implements the SerDe\\. An example is `org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SerializationLibrary", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Partition.SkewedInfo": { + "additionalProperties": false, + "properties": { + "SkewedColumnNames": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of names of columns that contain skewed values\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SkewedColumnNames", + "type": "array" + }, + "SkewedColumnValueLocationMaps": { + "markdownDescription": "A mapping of skewed values to the columns that contain them\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SkewedColumnValueLocationMaps", + "type": "object" + }, + "SkewedColumnValues": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of values that appear so frequently as to be considered skewed\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SkewedColumnValues", + "type": "array" + } + }, + "type": "object" + }, + "AWS::Glue::Partition.StorageDescriptor": { + "additionalProperties": false, + "properties": { + "BucketColumns": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of reducer grouping columns, clustering columns, and bucketing columns in the table\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketColumns", + "type": "array" + }, + "Columns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Partition.Column" + }, + "markdownDescription": "A list of the `Columns` in the table\\. \n*Required*: No \n*Type*: List of [Column](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-column.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Columns", + "type": "array" + }, + "Compressed": { + "markdownDescription": "`True` if the data in the table is compressed, or `False` if not\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Compressed", + "type": "boolean" + }, + "InputFormat": { + "markdownDescription": "The input format: `SequenceFileInputFormat` \\(binary\\), or `TextInputFormat`, or a custom format\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputFormat", + "type": "string" + }, + "Location": { + "markdownDescription": "The physical location of the table\\. By default, this takes the form of the warehouse location, followed by the database location in the warehouse, followed by the table name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", + "type": "string" + }, + "NumberOfBuckets": { + "markdownDescription": "The number of buckets\\. \nYou must specify this property if the partition contains any dimension columns\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfBuckets", + "type": "number" + }, + "OutputFormat": { + "markdownDescription": "The output format: `SequenceFileOutputFormat` \\(binary\\), or `IgnoreKeyTextOutputFormat`, or a custom format\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputFormat", + "type": "string" + }, + "Parameters": { + "markdownDescription": "The user\\-supplied properties in key\\-value form\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "object" + }, + "SchemaReference": { + "$ref": "#/definitions/AWS::Glue::Partition.SchemaReference", + "markdownDescription": "An object that references a schema stored in the AWS Glue Schema Registry\\. \n*Required*: No \n*Type*: [SchemaReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-schemareference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaReference" + }, + "SerdeInfo": { + "$ref": "#/definitions/AWS::Glue::Partition.SerdeInfo", + "markdownDescription": "The serialization/deserialization \\(SerDe\\) information\\. \n*Required*: No \n*Type*: [SerdeInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-serdeinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SerdeInfo" + }, + "SkewedInfo": { + "$ref": "#/definitions/AWS::Glue::Partition.SkewedInfo", + "markdownDescription": "The information about values that appear frequently in a column \\(skewed values\\)\\. \n*Required*: No \n*Type*: [SkewedInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-skewedinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SkewedInfo" + }, + "SortColumns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Partition.Order" + }, + "markdownDescription": "A list specifying the sort order of each bucket in the table\\. \n*Required*: No \n*Type*: List of [Order](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-order.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SortColumns", + "type": "array" + }, + "StoredAsSubDirectories": { + "markdownDescription": "`True` if the table data is stored in subdirectories, or `False` if not\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A description of the registry\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the registry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "AWS tags that contain a key value pair and may be searched by console, command line, or API\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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", + "markdownDescription": "Specify the `VersionNumber` or the `IsLatest` for setting the checkpoint for the schema\\. This is only required for updating a checkpoint\\. \n*Required*: No \n*Type*: [SchemaVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schema-schemaversion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CheckpointVersion" + }, + "Compatibility": { + "markdownDescription": "The compatibility mode of the schema\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Compatibility", + "type": "string" + }, + "DataFormat": { + "markdownDescription": "The data format of the schema definition\\. Currently only `AVRO` is supported\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataFormat", + "type": "string" + }, + "Description": { + "markdownDescription": "A description of the schema if specified when created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "Name of the schema to be created of max length of 255, and may only contain letters, numbers, hyphen, underscore, dollar sign, or hash mark\\. No whitespace\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Registry": { + "$ref": "#/definitions/AWS::Glue::Schema.Registry", + "markdownDescription": "The registry where a schema is stored\\. \n*Required*: No \n*Type*: [Registry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schema-registry.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Registry" + }, + "SchemaDefinition": { + "markdownDescription": "The schema definition using the `DataFormat` setting for `SchemaName`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SchemaDefinition", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "AWS tags that contain a key value pair and may be searched by console, command line, or API\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the registry\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Arn", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the registry\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Schema.SchemaVersion": { + "additionalProperties": false, + "properties": { + "IsLatest": { + "markdownDescription": "Indicates if this version is the latest version of the schema\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsLatest", + "type": "boolean" + }, + "VersionNumber": { + "markdownDescription": "The version number of the schema\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The schema that includes the schema version\\. \n*Required*: Yes \n*Type*: [Schema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schemaversion-schema.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Schema" + }, + "SchemaDefinition": { + "markdownDescription": "The schema definition for the schema version\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the registry where the schema is stored\\. Either `SchemaArn`, or `SchemaName` and `RegistryName` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RegistryName", + "type": "string" + }, + "SchemaArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the schema\\. Either `SchemaArn`, or `SchemaName` and `RegistryName` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SchemaArn", + "type": "string" + }, + "SchemaName": { + "markdownDescription": "The name of the schema\\. Either `SchemaArn`, or `SchemaName` and `RegistryName` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A metadata key in a key\\-value pair for metadata\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Key", + "type": "string" + }, + "SchemaVersionId": { + "markdownDescription": "The version number of the schema\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SchemaVersionId", + "type": "string" + }, + "Value": { + "markdownDescription": "A metadata key's corresponding value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "The encryption configuration associated with this security configuration\\. \n*Required*: Yes \n*Type*: [EncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-encryptionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionConfiguration" + }, + "Name": { + "markdownDescription": "The name of the security configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + } + }, + "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": { + "markdownDescription": "The encryption mode to use for CloudWatch data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchEncryptionMode", + "type": "string" + }, + "KmsKeyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the KMS key to be used to encrypt the data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::SecurityConfiguration.EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchEncryption": { + "$ref": "#/definitions/AWS::Glue::SecurityConfiguration.CloudWatchEncryption", + "markdownDescription": "The encryption configuration for Amazon CloudWatch\\. \n*Required*: No \n*Type*: [CloudWatchEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-cloudwatchencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchEncryption" + }, + "JobBookmarksEncryption": { + "$ref": "#/definitions/AWS::Glue::SecurityConfiguration.JobBookmarksEncryption", + "markdownDescription": "The encryption configuration for job bookmarks\\. \n*Required*: No \n*Type*: [JobBookmarksEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-jobbookmarksencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobBookmarksEncryption" + }, + "S3Encryptions": { + "$ref": "#/definitions/AWS::Glue::SecurityConfiguration.S3Encryptions", + "markdownDescription": "The encyption configuration for Amazon Simple Storage Service \\(Amazon S3\\) data\\. \n*Required*: No \n*Type*: [S3Encryptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-s3encryptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Encryptions" + } + }, + "type": "object" + }, + "AWS::Glue::SecurityConfiguration.JobBookmarksEncryption": { + "additionalProperties": false, + "properties": { + "JobBookmarksEncryptionMode": { + "markdownDescription": "The encryption mode to use for job bookmarks data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobBookmarksEncryptionMode", + "type": "string" + }, + "KmsKeyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the KMS key to be used to encrypt the data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::SecurityConfiguration.S3Encryption": { + "additionalProperties": false, + "properties": { + "KmsKeyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the KMS key to be used to encrypt the data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyArn", + "type": "string" + }, + "S3EncryptionMode": { + "markdownDescription": "The encryption mode to use for Amazon S3 data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ID of the Data Catalog in which to create the `Table`\\. If none is supplied, the AWS account ID is used by default\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CatalogId", + "type": "string" + }, + "DatabaseName": { + "markdownDescription": "The name of the database where the table metadata resides\\. For Hive compatibility, this must be all lowercase\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatabaseName", + "type": "string" + }, + "TableInput": { + "$ref": "#/definitions/AWS::Glue::Table.TableInput", + "markdownDescription": "A structure used to define a table\\. \n*Required*: Yes \n*Type*: [TableInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A free\\-form text comment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the `Column`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Type": { + "markdownDescription": "The data type of the `Column`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Glue::Table.Order": { + "additionalProperties": false, + "properties": { + "Column": { + "markdownDescription": "The name of the column\\. \n*Required*: Yes \n*Type*: [String](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-column.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Column", + "type": "string" + }, + "SortOrder": { + "markdownDescription": "Indicates that the column is sorted in ascending order \\(`== 1`\\), or in descending order \\(`==0`\\)\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SortOrder", + "type": "number" + } + }, + "required": [ + "Column", + "SortOrder" + ], + "type": "object" + }, + "AWS::Glue::Table.SchemaId": { + "additionalProperties": false, + "properties": { + "RegistryName": { + "markdownDescription": "The name of the schema registry that contains the schema\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegistryName", + "type": "string" + }, + "SchemaArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the schema\\. One of `SchemaArn` or `SchemaName` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaArn", + "type": "string" + }, + "SchemaName": { + "markdownDescription": "The name of the schema\\. One of `SchemaArn` or `SchemaName` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Table.SchemaReference": { + "additionalProperties": false, + "properties": { + "SchemaId": { + "$ref": "#/definitions/AWS::Glue::Table.SchemaId", + "markdownDescription": "A structure that contains schema identity fields\\. Either this or the `SchemaVersionId` has to be provided\\. \n*Required*: No \n*Type*: [SchemaId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-schemaid.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaId" + }, + "SchemaVersionId": { + "markdownDescription": "The unique ID assigned to a version of the schema\\. Either this or the `SchemaId` has to be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaVersionId", + "type": "string" + }, + "SchemaVersionNumber": { + "markdownDescription": "The version number of the schema\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaVersionNumber", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Glue::Table.SerdeInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "Name of the SerDe\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Parameters": { + "markdownDescription": "These key\\-value pairs define initialization parameters for the SerDe\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "object" + }, + "SerializationLibrary": { + "markdownDescription": "Usually the class that implements the SerDe\\. An example is `org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SerializationLibrary", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Table.SkewedInfo": { + "additionalProperties": false, + "properties": { + "SkewedColumnNames": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of names of columns that contain skewed values\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SkewedColumnNames", + "type": "array" + }, + "SkewedColumnValueLocationMaps": { + "markdownDescription": "A mapping of skewed values to the columns that contain them\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SkewedColumnValueLocationMaps", + "type": "object" + }, + "SkewedColumnValues": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of values that appear so frequently as to be considered skewed\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SkewedColumnValues", + "type": "array" + } + }, + "type": "object" + }, + "AWS::Glue::Table.StorageDescriptor": { + "additionalProperties": false, + "properties": { + "BucketColumns": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of reducer grouping columns, clustering columns, and bucketing columns in the table\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketColumns", + "type": "array" + }, + "Columns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Table.Column" + }, + "markdownDescription": "A list of the `Columns` in the table\\. \n*Required*: No \n*Type*: List of [Column](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-column.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Columns", + "type": "array" + }, + "Compressed": { + "markdownDescription": "`True` if the data in the table is compressed, or `False` if not\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Compressed", + "type": "boolean" + }, + "InputFormat": { + "markdownDescription": "The input format: `SequenceFileInputFormat` \\(binary\\), or `TextInputFormat`, or a custom format\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputFormat", + "type": "string" + }, + "Location": { + "markdownDescription": "The physical location of the table\\. By default, this takes the form of the warehouse location, followed by the database location in the warehouse, followed by the table name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", + "type": "string" + }, + "NumberOfBuckets": { + "markdownDescription": "Must be specified if the table contains any dimension columns\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfBuckets", + "type": "number" + }, + "OutputFormat": { + "markdownDescription": "The output format: `SequenceFileOutputFormat` \\(binary\\), or `IgnoreKeyTextOutputFormat`, or a custom format\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputFormat", + "type": "string" + }, + "Parameters": { + "markdownDescription": "The user\\-supplied properties in key\\-value form\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "object" + }, + "SchemaReference": { + "$ref": "#/definitions/AWS::Glue::Table.SchemaReference", + "markdownDescription": "An object that references a schema stored in the AWS Glue Schema Registry\\. \n*Required*: No \n*Type*: [SchemaReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-schemareference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaReference" + }, + "SerdeInfo": { + "$ref": "#/definitions/AWS::Glue::Table.SerdeInfo", + "markdownDescription": "The serialization/deserialization \\(SerDe\\) information\\. \n*Required*: No \n*Type*: [SerdeInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-serdeinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SerdeInfo" + }, + "SkewedInfo": { + "$ref": "#/definitions/AWS::Glue::Table.SkewedInfo", + "markdownDescription": "The information about values that appear frequently in a column \\(skewed values\\)\\. \n*Required*: No \n*Type*: [SkewedInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-skewedinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SkewedInfo" + }, + "SortColumns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Table.Order" + }, + "markdownDescription": "A list specifying the sort order of each bucket in the table\\. \n*Required*: No \n*Type*: List of [Order](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-order.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SortColumns", + "type": "array" + }, + "StoredAsSubDirectories": { + "markdownDescription": "`True` if the table data is stored in subdirectories, or `False` if not\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StoredAsSubDirectories", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Glue::Table.TableIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "markdownDescription": "The ID of the Data Catalog in which the table resides\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CatalogId", + "type": "string" + }, + "DatabaseName": { + "markdownDescription": "The name of the catalog database that contains the target table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the target table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Table.TableInput": { + "additionalProperties": false, + "properties": { + "Description": { + "markdownDescription": "A description of the table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The table name\\. For Hive compatibility, this is folded to lowercase when it is stored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Owner": { + "markdownDescription": "The table owner\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Owner", + "type": "string" + }, + "Parameters": { + "markdownDescription": "These key\\-value pairs define properties associated with the table\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "object" + }, + "PartitionKeys": { + "items": { + "$ref": "#/definitions/AWS::Glue::Table.Column" + }, + "markdownDescription": "A list of columns by which the table is partitioned\\. Only primitive types are supported as partition keys\\. \nWhen you create a table used by Amazon Athena, and you do not specify any `partitionKeys`, you must at least set the value of `partitionKeys` to an empty list\\. For example: \n `\"PartitionKeys\": []` \n*Required*: No \n*Type*: List of [Column](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-column.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PartitionKeys", + "type": "array" + }, + "Retention": { + "markdownDescription": "The retention time for this table\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Retention", + "type": "number" + }, + "StorageDescriptor": { + "$ref": "#/definitions/AWS::Glue::Table.StorageDescriptor", + "markdownDescription": "A storage descriptor containing information about the physical storage of this table\\. \n*Required*: No \n*Type*: [StorageDescriptor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageDescriptor" + }, + "TableType": { + "markdownDescription": "The type of this table \\(`EXTERNAL_TABLE`, `VIRTUAL_VIEW`, etc\\.\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableType", + "type": "string" + }, + "TargetTable": { + "$ref": "#/definitions/AWS::Glue::Table.TableIdentifier", + "markdownDescription": "A `TableIdentifier` structure that describes a target table for resource linking\\. \n*Required*: No \n*Type*: [TableIdentifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableidentifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetTable" + }, + "ViewExpandedText": { + "markdownDescription": "If the table is a view, the expanded text of the view; otherwise `null`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ViewExpandedText", + "type": "string" + }, + "ViewOriginalText": { + "markdownDescription": "If the table is a view, the original text of the view; otherwise `null`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The actions initiated by this trigger\\. \n*Required*: Yes \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", + "type": "array" + }, + "Description": { + "markdownDescription": "A description of this trigger\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "EventBatchingCondition": { + "$ref": "#/definitions/AWS::Glue::Trigger.EventBatchingCondition" + }, + "Name": { + "markdownDescription": "The name of the trigger\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Predicate": { + "$ref": "#/definitions/AWS::Glue::Trigger.Predicate", + "markdownDescription": "The predicate of this trigger, which defines when it will fire\\. \n*Required*: No \n*Type*: [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-predicate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Predicate" + }, + "Schedule": { + "markdownDescription": "A `cron` expression used to specify the schedule\\. For more information, see [Time\\-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html) in the *AWS Glue Developer Guide*\\. For example, to run something every day at 12:15 UTC, specify `cron(15 12 * * ? *)`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule", + "type": "string" + }, + "StartOnCreation": { + "markdownDescription": "Set to true to start `SCHEDULED` and `CONDITIONAL` triggers when created\\. True is not supported for `ON_DEMAND` triggers\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartOnCreation", + "type": "boolean" + }, + "Tags": { + "markdownDescription": "The tags to use with this trigger\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "object" + }, + "Type": { + "markdownDescription": "The type of trigger that this is\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "WorkflowName": { + "markdownDescription": "The name of the workflow associated with the trigger\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The job arguments used when this trigger fires\\. For this job run, they replace the default arguments set in the job definition itself\\. \nYou can specify arguments here that your own job\\-execution script consumes, in addition to arguments that AWS Glue itself consumes\\. \nFor information about how to specify and consume your own job arguments, see [Calling AWS Glue APIs in Python](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) in the *AWS Glue Developer Guide*\\. \nFor information about the key\\-value pairs that AWS Glue consumes to set up your job, see the [Special Parameters Used by AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html) topic in the developer guide\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arguments", + "type": "object" + }, + "CrawlerName": { + "markdownDescription": "The name of the crawler to be used with this action\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CrawlerName", + "type": "string" + }, + "JobName": { + "markdownDescription": "The name of a job to be executed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobName", + "type": "string" + }, + "NotificationProperty": { + "$ref": "#/definitions/AWS::Glue::Trigger.NotificationProperty", + "markdownDescription": "Specifies configuration properties of a job run notification\\. \n*Required*: No \n*Type*: [NotificationProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-notificationproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationProperty" + }, + "SecurityConfiguration": { + "markdownDescription": "The name of the `SecurityConfiguration` structure to be used with this action\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityConfiguration", + "type": "string" + }, + "Timeout": { + "markdownDescription": "The `JobRun` timeout in minutes\\. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status\\. The default is 2,880 minutes \\(48 hours\\)\\. This overrides the timeout value set in the parent job\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timeout", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Glue::Trigger.Condition": { + "additionalProperties": false, + "properties": { + "CrawlState": { + "markdownDescription": "The state of the crawler to which this condition applies\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CrawlState", + "type": "string" + }, + "CrawlerName": { + "markdownDescription": "The name of the crawler to which this condition applies\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CrawlerName", + "type": "string" + }, + "JobName": { + "markdownDescription": "The name of the job whose `JobRuns` this condition applies to, and on which this trigger waits\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobName", + "type": "string" + }, + "LogicalOperator": { + "markdownDescription": "A logical operator\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogicalOperator", + "type": "string" + }, + "State": { + "markdownDescription": "The condition state\\. Currently, the values supported are `SUCCEEDED`, `STOPPED`, `TIMEOUT`, and `FAILED`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "After a job run starts, the number of minutes to wait before sending a job run delay notification \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotifyDelayAfter", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Glue::Trigger.Predicate": { + "additionalProperties": false, + "properties": { + "Conditions": { + "items": { + "$ref": "#/definitions/AWS::Glue::Trigger.Condition" + }, + "markdownDescription": "A list of the conditions that determine when the trigger will fire\\. \n*Required*: No \n*Type*: List of [Condition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-condition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Conditions", + "type": "array" + }, + "Logical": { + "markdownDescription": "An optional field if only one condition is listed\\. If multiple conditions are listed, then this field is required\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A collection of properties to be used as part of each execution of the workflow \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultRunProperties", + "type": "object" + }, + "Description": { + "markdownDescription": "A description of the workflow \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "MaxConcurrentRuns": { + "type": "number" + }, + "Name": { + "markdownDescription": "The name of the workflow representing the flow \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "markdownDescription": "The tags to use with this workflow\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The connector definition version to include when the connector definition is created\\. A connector definition version contains a list of [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinition-connector.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinition-connector.html) property types\\. \nTo associate a connector definition version after the connector definition is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinitionversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinitionversion.html) resource and specify the ID of this connector definition\\.\n*Required*: No \n*Type*: [ConnectorDefinitionVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinition-connectordefinitionversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitialVersion" + }, + "Name": { + "markdownDescription": "The name of the connector definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "markdownDescription": "Application\\-specific metadata to attach to the connector definition\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\.", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the connector\\. \nFor more information about connectors provided by AWS, see [Greengrass Connectors Provided by AWS](https://docs.aws.amazon.com/greengrass/latest/developerguide/connectors-list.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectorArn", + "type": "string" + }, + "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the connector\\. This value must be unique within the connector definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "string" + }, + "Parameters": { + "markdownDescription": "The parameters or configuration used by the connector\\. \nFor more information about connectors provided by AWS, see [Greengrass Connectors Provided by AWS](https://docs.aws.amazon.com/greengrass/latest/developerguide/connectors-list.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Parameters", + "type": "object" + } + }, + "required": [ + "ConnectorArn", + "Id" + ], + "type": "object" + }, + "AWS::Greengrass::ConnectorDefinition.ConnectorDefinitionVersion": { + "additionalProperties": false, + "properties": { + "Connectors": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::ConnectorDefinition.Connector" + }, + "markdownDescription": "The connectors in this version\\. Only one instance of a given connector can be added to a connector definition version at a time\\. \n*Required*: Yes \n*Type*: List of [Connector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinition-connector.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Connectors", + "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": { + "markdownDescription": "The ID of the connector definition associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectorDefinitionId", + "type": "string" + }, + "Connectors": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::ConnectorDefinitionVersion.Connector" + }, + "markdownDescription": "The connectors in this version\\. Only one instance of a given connector can be added to the connector definition version at a time\\. \n*Required*: Yes \n*Type*: List of [Connector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinitionversion-connector.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Connectors", + "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the connector\\. \nFor more information about connectors provided by AWS, see [Greengrass Connectors Provided by AWS](https://docs.aws.amazon.com/greengrass/latest/developerguide/connectors-list.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectorArn", + "type": "string" + }, + "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the connector\\. This value must be unique within the connector definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "string" + }, + "Parameters": { + "markdownDescription": "The parameters or configuration that the connector uses\\. \nFor more information about connectors provided by AWS, see [Greengrass Connectors Provided by AWS](https://docs.aws.amazon.com/greengrass/latest/developerguide/connectors-list.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "The core definition version to include when the core definition is created\\. Currently, a core definition version can contain only one [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinition-core.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinition-core.html)\\. \nTo associate a core definition version after the core definition is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinitionversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinitionversion.html) resource and specify the ID of this core definition\\.\n*Required*: No \n*Type*: [CoreDefinitionVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinition-coredefinitionversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitialVersion" + }, + "Name": { + "markdownDescription": "The name of the core definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "markdownDescription": "Application\\-specific metadata to attach to the core definition\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\.", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the device certificate for the core\\. This X\\.509 certificate is used to authenticate the core with AWS IoT and AWS IoT Greengrass services\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateArn", + "type": "string" + }, + "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the core\\. This value must be unique within the core definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "string" + }, + "SyncShadow": { + "markdownDescription": "Indicates whether the core's local shadow is synced with the cloud automatically\\. The default is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SyncShadow", + "type": "boolean" + }, + "ThingArn": { + "markdownDescription": "The ARN of the core, which is an AWS IoT device \\(thing\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ThingArn", + "type": "string" + } + }, + "required": [ + "CertificateArn", + "Id", + "ThingArn" + ], + "type": "object" + }, + "AWS::Greengrass::CoreDefinition.CoreDefinitionVersion": { + "additionalProperties": false, + "properties": { + "Cores": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::CoreDefinition.Core" + }, + "markdownDescription": "The Greengrass core in this version\\. Currently, the `Cores` property for a core definition version can contain only one core\\. \n*Required*: Yes \n*Type*: List of [Core](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinition-core.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Cores", + "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": { + "markdownDescription": "The ID of the core definition associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CoreDefinitionId", + "type": "string" + }, + "Cores": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::CoreDefinitionVersion.Core" + }, + "markdownDescription": "The Greengrass core in this version\\. Currently, the `Cores` property for a core definition version can contain only one core\\. \n*Required*: Yes \n*Type*: List of [Core](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinitionversion-core.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Cores", + "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": { + "markdownDescription": "The ARN of the device certificate for the core\\. This X\\.509 certificate is used to authenticate the core with AWS IoT and AWS IoT Greengrass services\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateArn", + "type": "string" + }, + "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the core\\. This value must be unique within the core definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "string" + }, + "SyncShadow": { + "markdownDescription": "Indicates whether the core's local shadow is synced with the cloud automatically\\. The default is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SyncShadow", + "type": "boolean" + }, + "ThingArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the core, which is an AWS IoT device \\(thing\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "The device definition version to include when the device definition is created\\. A device definition version contains a list of [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-device.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-device.html) property types\\. \nTo associate a device definition version after the device definition is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinitionversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinitionversion.html) resource and specify the ID of this device definition\\.\n*Required*: No \n*Type*: [DeviceDefinitionVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-devicedefinitionversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitialVersion" + }, + "Name": { + "markdownDescription": "The name of the device definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "markdownDescription": "Application\\-specific metadata to attach to the device definition\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\.", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the device certificate for the device\\. This X\\.509 certificate is used to authenticate the device with AWS IoT and AWS IoT Greengrass services\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateArn", + "type": "string" + }, + "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the device\\. This value must be unique within the device definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "string" + }, + "SyncShadow": { + "markdownDescription": "Indicates whether the device's local shadow is synced with the cloud automatically\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SyncShadow", + "type": "boolean" + }, + "ThingArn": { + "markdownDescription": "The ARN of the device, which is an AWS IoT device \\(thing\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ThingArn", + "type": "string" + } + }, + "required": [ + "CertificateArn", + "Id", + "ThingArn" + ], + "type": "object" + }, + "AWS::Greengrass::DeviceDefinition.DeviceDefinitionVersion": { + "additionalProperties": false, + "properties": { + "Devices": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::DeviceDefinition.Device" + }, + "markdownDescription": "The devices in this version\\. \n*Required*: Yes \n*Type*: List of [Device](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-device.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Devices", + "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": { + "markdownDescription": "The ID of the device definition associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceDefinitionId", + "type": "string" + }, + "Devices": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::DeviceDefinitionVersion.Device" + }, + "markdownDescription": "The devices in this version\\. \n*Required*: Yes \n*Type*: List of [Device](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinitionversion-device.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Devices", + "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": { + "markdownDescription": "The ARN of the device certificate for the device\\. This X\\.509 certificate is used to authenticate the device with AWS IoT and AWS IoT Greengrass services\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateArn", + "type": "string" + }, + "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the device\\. This value must be unique within the device definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "string" + }, + "SyncShadow": { + "markdownDescription": "Indicates whether the device's local shadow is synced with the cloud automatically\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SyncShadow", + "type": "boolean" + }, + "ThingArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the device, which is an AWS IoT device \\(thing\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "The function definition version to include when the function definition is created\\. A function definition version contains a list of [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-function.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-function.html) property types\\. \nTo associate a function definition version after the function definition is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinitionversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinitionversion.html) resource and specify the ID of this function definition\\.\n*Required*: No \n*Type*: [FunctionDefinitionVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-functiondefinitionversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitialVersion" + }, + "Name": { + "markdownDescription": "The name of the function definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "markdownDescription": "Application\\-specific metadata to attach to the function definition\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\.", + "title": "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", + "markdownDescription": "Configuration settings for the Lambda execution environment on the AWS IoT Greengrass core\\. \n*Required*: Yes \n*Type*: [Execution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-execution.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Execution" + } + }, + "required": [ + "Execution" + ], + "type": "object" + }, + "AWS::Greengrass::FunctionDefinition.Environment": { + "additionalProperties": false, + "properties": { + "AccessSysfs": { + "markdownDescription": "Indicates whether the function is allowed to access the `/sys` directory on the core device, which allows the read device information from `/sys`\\. \nThis property applies only to Lambda functions that run in a Greengrass container\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccessSysfs", + "type": "boolean" + }, + "Execution": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.Execution", + "markdownDescription": "Settings for the Lambda execution environment in AWS IoT Greengrass\\. \n*Required*: No \n*Type*: [Execution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-execution.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Execution" + }, + "ResourceAccessPolicies": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.ResourceAccessPolicy" + }, + "markdownDescription": "A list of the [resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourceinstance.html) in the group that the function can access, with the corresponding read\\-only or read\\-write permissions\\. The maximum is 10 resources\\. \nThis property applies only for Lambda functions that run in a Greengrass container\\.\n*Required*: No \n*Type*: List of [ResourceAccessPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-resourceaccesspolicy.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceAccessPolicies", + "type": "array" + }, + "Variables": { + "markdownDescription": "Environment variables for the Lambda function\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Variables", + "type": "object" + } + }, + "type": "object" + }, + "AWS::Greengrass::FunctionDefinition.Execution": { + "additionalProperties": false, + "properties": { + "IsolationMode": { + "markdownDescription": "The containerization that the Lambda function runs in\\. Valid values are `GreengrassContainer` or `NoContainer`\\. Typically, this is `GreengrassContainer`\\. For more information, see [Containerization](https://docs.aws.amazon.com/greengrass/latest/developerguide/lambda-group-config.html#lambda-function-containerization) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html) property of a function definition version, this setting is used as the default containerization for all Lambda functions in the function definition version\\.\n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html) property of a function, this setting applies to the individual function and overrides the default\\. Omit this value to run the function with the default containerization\\.\nWe recommend that you run in a Greengrass container unless your business case requires that you run without containerization\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IsolationMode", + "type": "string" + }, + "RunAs": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.RunAs", + "markdownDescription": "The user and group permissions used to run the Lambda function\\. Typically, this is the ggc\\_user and ggc\\_group\\. For more information, see [Run as](https://docs.aws.amazon.com/greengrass/latest/developerguide/lambda-group-config.html#lambda-access-identity.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html) property of a function definition version, this setting is used as the default access identity for all Lambda functions in the function definition version\\.\n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html) property of a function, this setting applies to the individual function and overrides the default\\. You can override the user, group, or both\\. Omit this value to run the function with the default permissions\\.\nRunning as the root user increases risks to your data and device\\. Do not run as root \\(UID/GID=0\\) unless your business case requires it\\. For more information and requirements, see [Running a Lambda Function as Root](https://docs.aws.amazon.com/greengrass/latest/developerguide/lambda-group-config.html#lambda-running-as-root)\\. \n*Required*: No \n*Type*: [RunAs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-runas.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RunAs" + } + }, + "type": "object" + }, + "AWS::Greengrass::FunctionDefinition.Function": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the alias \\(recommended\\) or version of the referenced Lambda function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FunctionArn", + "type": "string" + }, + "FunctionConfiguration": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.FunctionConfiguration", + "markdownDescription": "The group\\-specific settings of the Lambda function\\. These settings configure the function's behavior in the Greengrass group\\. \n*Required*: Yes \n*Type*: [FunctionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-functionconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FunctionConfiguration" + }, + "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the function\\. This value must be unique within the function definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "string" + } + }, + "required": [ + "FunctionArn", + "FunctionConfiguration", + "Id" + ], + "type": "object" + }, + "AWS::Greengrass::FunctionDefinition.FunctionConfiguration": { + "additionalProperties": false, + "properties": { + "EncodingType": { + "markdownDescription": "The expected encoding type of the input payload for the function\\. Valid values are `json` \\(default\\) and `binary`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncodingType", + "type": "string" + }, + "Environment": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.Environment", + "markdownDescription": "The environment configuration of the function\\. \n*Required*: No \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-environment.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Environment" + }, + "ExecArgs": { + "markdownDescription": "The execution arguments\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExecArgs", + "type": "string" + }, + "Executable": { + "markdownDescription": "The name of the function executable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Executable", + "type": "string" + }, + "MemorySize": { + "markdownDescription": "The memory size \\(in KB\\) required by the function\\. \nThis property applies only to Lambda functions that run in a Greengrass container\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MemorySize", + "type": "number" + }, + "Pinned": { + "markdownDescription": "Indicates whether the function is pinned \\(or *long\\-lived*\\)\\. Pinned functions start when the core starts and process all requests in the same container\\. The default value is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Pinned", + "type": "boolean" + }, + "Timeout": { + "markdownDescription": "The allowed execution time \\(in seconds\\) after which the function should terminate\\. For pinned functions, this timeout applies for each request\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Timeout", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Greengrass::FunctionDefinition.FunctionDefinitionVersion": { + "additionalProperties": false, + "properties": { + "DefaultConfig": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.DefaultConfig", + "markdownDescription": "The default configuration that applies to all Lambda functions in the group\\. Individual Lambda functions can override these settings\\. \n*Required*: No \n*Type*: [DefaultConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-defaultconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DefaultConfig" + }, + "Functions": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.Function" + }, + "markdownDescription": "The functions in this version\\. \n*Required*: Yes \n*Type*: List of [Function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-function.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Functions", + "type": "array" + } + }, + "required": [ + "Functions" + ], + "type": "object" + }, + "AWS::Greengrass::FunctionDefinition.ResourceAccessPolicy": { + "additionalProperties": false, + "properties": { + "Permission": { + "markdownDescription": "The read\\-only or read\\-write access that the Lambda function has to the resource\\. Valid values are `ro` or `rw`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Permission", + "type": "string" + }, + "ResourceId": { + "markdownDescription": "The ID of the resource\\. This ID is assigned to the resource when you create the resource definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceId", + "type": "string" + } + }, + "required": [ + "ResourceId" + ], + "type": "object" + }, + "AWS::Greengrass::FunctionDefinition.RunAs": { + "additionalProperties": false, + "properties": { + "Gid": { + "markdownDescription": "The group ID whose permissions are used to run the Lambda function\\. You can use the getent group command on your core device to look up the group ID\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Gid", + "type": "number" + }, + "Uid": { + "markdownDescription": "The user ID whose permissions are used to run the Lambda function\\. You can use the getent passwd command on your core device to look up the user ID\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "The default configuration that applies to all Lambda functions in the group\\. Individual Lambda functions can override these settings\\. \n*Required*: No \n*Type*: [DefaultConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DefaultConfig" + }, + "FunctionDefinitionId": { + "markdownDescription": "The ID of the function definition associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FunctionDefinitionId", + "type": "string" + }, + "Functions": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.Function" + }, + "markdownDescription": "The functions in this version\\. \n*Required*: Yes \n*Type*: List of [Function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-function.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Functions", + "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", + "markdownDescription": "Configuration settings for the Lambda execution environment on the AWS IoT Greengrass core\\. \n*Required*: Yes \n*Type*: [Execution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-execution.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Execution" + } + }, + "required": [ + "Execution" + ], + "type": "object" + }, + "AWS::Greengrass::FunctionDefinitionVersion.Environment": { + "additionalProperties": false, + "properties": { + "AccessSysfs": { + "markdownDescription": "Indicates whether the function is allowed to access the `/sys` directory on the core device, which allows the read device information from `/sys`\\. \nThis property applies only to Lambda functions that run in a Greengrass container\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccessSysfs", + "type": "boolean" + }, + "Execution": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.Execution", + "markdownDescription": "Settings for the Lambda execution environment in AWS IoT Greengrass\\. \n*Required*: No \n*Type*: [Execution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-execution.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Execution" + }, + "ResourceAccessPolicies": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.ResourceAccessPolicy" + }, + "markdownDescription": "A list of the [resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourceinstance.html) in the group that the function can access, with the corresponding read\\-only or read\\-write permissions\\. The maximum is 10 resources\\. \nThis property applies only to Lambda functions that run in a Greengrass container\\.\n*Required*: No \n*Type*: List of [ResourceAccessPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-resourceaccesspolicy.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceAccessPolicies", + "type": "array" + }, + "Variables": { + "markdownDescription": "Environment variables for the Lambda function\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Variables", + "type": "object" + } + }, + "type": "object" + }, + "AWS::Greengrass::FunctionDefinitionVersion.Execution": { + "additionalProperties": false, + "properties": { + "IsolationMode": { + "markdownDescription": "The containerization that the Lambda function runs in\\. Valid values are `GreengrassContainer` or `NoContainer`\\. Typically, this is `GreengrassContainer`\\. For more information, see [Containerization](https://docs.aws.amazon.com/greengrass/latest/developerguide/lambda-group-config.html#lambda-function-containerization) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html) property of a function definition version, this setting is used as the default containerization for all Lambda functions in the function definition version\\.\n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html) property of a function, this setting applies to the individual function and overrides the default\\. Omit this value to run the function with the default containerization\\.\nWe recommend that you run in a Greengrass container unless your business case requires that you run without containerization\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IsolationMode", + "type": "string" + }, + "RunAs": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.RunAs", + "markdownDescription": "The user and group permissions used to run the Lambda function\\. Typically, this is the ggc\\_user and ggc\\_group\\. For more information, see [Run as](https://docs.aws.amazon.com/greengrass/latest/developerguide/lambda-group-config.html#lambda-access-identity.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html) property of a function definition version, this setting is used as the default access identity for all Lambda functions in the function definition version\\.\n+ When set on the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html) property of a function, this setting applies to the individual function and overrides the default\\. You can override the user, group, or both\\. Omit this value to run the function with the default permissions\\.\nRunning as the root user increases risks to your data and device\\. Do not run as root \\(UID/GID=0\\) unless your business case requires it\\. For more information and requirements, see [Running a Lambda Function as Root](https://docs.aws.amazon.com/greengrass/latest/developerguide/lambda-group-config.html#lambda-running-as-root)\\. \n*Required*: No \n*Type*: [RunAs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-runas.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RunAs" + } + }, + "type": "object" + }, + "AWS::Greengrass::FunctionDefinitionVersion.Function": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the alias \\(recommended\\) or version of the referenced Lambda function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FunctionArn", + "type": "string" + }, + "FunctionConfiguration": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.FunctionConfiguration", + "markdownDescription": "The group\\-specific settings of the Lambda function\\. These settings configure the function's behavior in the Greengrass group\\. \n*Required*: Yes \n*Type*: [FunctionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-functionconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FunctionConfiguration" + }, + "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the function\\. This value must be unique within the function definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "string" + } + }, + "required": [ + "FunctionArn", + "FunctionConfiguration", + "Id" + ], + "type": "object" + }, + "AWS::Greengrass::FunctionDefinitionVersion.FunctionConfiguration": { + "additionalProperties": false, + "properties": { + "EncodingType": { + "markdownDescription": "The expected encoding type of the input payload for the function\\. Valid values are `json` \\(default\\) and `binary`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncodingType", + "type": "string" + }, + "Environment": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.Environment", + "markdownDescription": "The environment configuration of the function\\. \n*Required*: No \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Environment" + }, + "ExecArgs": { + "markdownDescription": "The execution arguments\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExecArgs", + "type": "string" + }, + "Executable": { + "markdownDescription": "The name of the function executable\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Executable", + "type": "string" + }, + "MemorySize": { + "markdownDescription": "The memory size \\(in KB\\) required by the function\\. \nThis property applies only to Lambda functions that run in a Greengrass container\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MemorySize", + "type": "number" + }, + "Pinned": { + "markdownDescription": "Indicates whether the function is pinned \\(or *long\\-lived*\\)\\. Pinned functions start when the core starts and process all requests in the same container\\. The default value is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Pinned", + "type": "boolean" + }, + "Timeout": { + "markdownDescription": "The allowed execution time \\(in seconds\\) after which the function should terminate\\. For pinned functions, this timeout applies for each request\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Timeout", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Greengrass::FunctionDefinitionVersion.ResourceAccessPolicy": { + "additionalProperties": false, + "properties": { + "Permission": { + "markdownDescription": "The read\\-only or read\\-write access that the Lambda function has to the resource\\. Valid values are `ro` or `rw`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Permission", + "type": "string" + }, + "ResourceId": { + "markdownDescription": "The ID of the resource\\. This ID is assigned to the resource when you create the resource definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceId", + "type": "string" + } + }, + "required": [ + "ResourceId" + ], + "type": "object" + }, + "AWS::Greengrass::FunctionDefinitionVersion.RunAs": { + "additionalProperties": false, + "properties": { + "Gid": { + "markdownDescription": "The group ID whose permissions are used to run the Lambda function\\. You can use the getent group command on your core device to look up the group ID\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Gid", + "type": "number" + }, + "Uid": { + "markdownDescription": "The user ID whose permissions are used to run the Lambda function\\. You can use the getent passwd command on your core device to look up the user ID\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "The group version to include when the group is created\\. A group version references the Amazon Resource Name \\(ARN\\) of a core definition version, device definition version, subscription definition version, and other version types\\. The group version must reference a core definition version that contains one core\\. Other version types are optionally included, depending on your business need\\. \nTo associate a group version after the group is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-groupversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-groupversion.html) resource and specify the ID of this group\\.\n*Required*: No \n*Type*: [GroupVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-group-groupversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitialVersion" + }, + "Name": { + "markdownDescription": "The name of the group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role attached to the group\\. This role contains the permissions that Lambda functions and connectors use to interact with other AWS services\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "Tags": { + "markdownDescription": "Application\\-specific metadata to attach to the group\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\.", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the connector definition version that contains the connectors you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectorDefinitionVersionArn", + "type": "string" + }, + "CoreDefinitionVersionArn": { + "markdownDescription": "The ARN of the core definition version that contains the core you want to deploy with the group version\\. Currently, the core definition version can contain only one core\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CoreDefinitionVersionArn", + "type": "string" + }, + "DeviceDefinitionVersionArn": { + "markdownDescription": "The ARN of the device definition version that contains the devices you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceDefinitionVersionArn", + "type": "string" + }, + "FunctionDefinitionVersionArn": { + "markdownDescription": "The ARN of the function definition version that contains the functions you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FunctionDefinitionVersionArn", + "type": "string" + }, + "LoggerDefinitionVersionArn": { + "markdownDescription": "The ARN of the logger definition version that contains the loggers you want to deploy with the group version\\. \n \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoggerDefinitionVersionArn", + "type": "string" + }, + "ResourceDefinitionVersionArn": { + "markdownDescription": "The ARN of the resource definition version that contains the resources you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceDefinitionVersionArn", + "type": "string" + }, + "SubscriptionDefinitionVersionArn": { + "markdownDescription": "The ARN of the subscription definition version that contains the subscriptions you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the connector definition version that contains the connectors you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectorDefinitionVersionArn", + "type": "string" + }, + "CoreDefinitionVersionArn": { + "markdownDescription": "The ARN of the core definition version that contains the core you want to deploy with the group version\\. Currently, the core definition version can contain only one core\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CoreDefinitionVersionArn", + "type": "string" + }, + "DeviceDefinitionVersionArn": { + "markdownDescription": "The ARN of the device definition version that contains the devices you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceDefinitionVersionArn", + "type": "string" + }, + "FunctionDefinitionVersionArn": { + "markdownDescription": "The ARN of the function definition version that contains the functions you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FunctionDefinitionVersionArn", + "type": "string" + }, + "GroupId": { + "markdownDescription": "The ID of the group associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupId", + "type": "string" + }, + "LoggerDefinitionVersionArn": { + "markdownDescription": "The ARN of the logger definition version that contains the loggers you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoggerDefinitionVersionArn", + "type": "string" + }, + "ResourceDefinitionVersionArn": { + "markdownDescription": "The ARN of the resource definition version that contains the resources you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceDefinitionVersionArn", + "type": "string" + }, + "SubscriptionDefinitionVersionArn": { + "markdownDescription": "The ARN of the subscription definition version that contains the subscriptions you want to deploy with the group version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "The logger definition version to include when the logger definition is created\\. A logger definition version contains a list of [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-logger.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-logger.html) property types\\. \nTo associate a logger definition version after the logger definition is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinitionversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinitionversion.html) resource and specify the ID of this logger definition\\.\n*Required*: No \n*Type*: [LoggerDefinitionVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-loggerdefinitionversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitialVersion" + }, + "Name": { + "markdownDescription": "The name of the logger definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "markdownDescription": "Application\\-specific metadata to attach to the logger definition\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\.", + "title": "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": { + "markdownDescription": "The source of the log event\\. Valid values are `GreengrassSystem` or `Lambda`\\. When `GreengrassSystem` is used, events from Greengrass system components are logged\\. When `Lambda` is used, events from user\\-defined Lambda functions are logged\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Component", + "type": "string" + }, + "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the logger\\. This value must be unique within the logger definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "string" + }, + "Level": { + "markdownDescription": "The log\\-level threshold\\. Log events below this threshold are filtered out and aren't stored\\. Valid values are `DEBUG`, `INFO` \\(recommended\\), `WARN`, `ERROR`, or `FATAL`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Level", + "type": "string" + }, + "Space": { + "markdownDescription": "The amount of file space \\(in KB\\) to use when writing logs to the local file system\\. This property does not apply for CloudWatch Logs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Space", + "type": "number" + }, + "Type": { + "markdownDescription": "The storage mechanism for log events\\. Valid values are `FileSystem` or `AWSCloudWatch`\\. When `AWSCloudWatch` is used, log events are sent to CloudWatch Logs\\. When `FileSystem` is used, log events are stored on the local file system\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "The loggers in this version\\. \n*Required*: Yes \n*Type*: List of [Logger](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-logger.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Loggers", + "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": { + "markdownDescription": "The ID of the logger definition associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LoggerDefinitionId", + "type": "string" + }, + "Loggers": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::LoggerDefinitionVersion.Logger" + }, + "markdownDescription": "The loggers in this version\\. \n*Required*: Yes \n*Type*: List of [Logger](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinitionversion-logger.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Loggers", + "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": { + "markdownDescription": "The source of the log event\\. Valid values are `GreengrassSystem` or `Lambda`\\. When `GreengrassSystem` is used, events from Greengrass system components are logged\\. When `Lambda` is used, events from user\\-defined Lambda functions are logged\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Component", + "type": "string" + }, + "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the logger\\. This value must be unique within the logger definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "string" + }, + "Level": { + "markdownDescription": "The log\\-level threshold\\. Log events below this threshold are filtered out and aren't stored\\. Valid values are `DEBUG`, `INFO` \\(recommended\\), `WARN`, `ERROR`, or `FATAL`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Level", + "type": "string" + }, + "Space": { + "markdownDescription": "The amount of file space \\(in KB\\) to use when writing logs to the local file system\\. This property does not apply for CloudWatch Logs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Space", + "type": "number" + }, + "Type": { + "markdownDescription": "The storage mechanism for log events\\. Valid values are `FileSystem` or `AWSCloudWatch`\\. When `AWSCloudWatch` is used, log events are sent to CloudWatch Logs\\. When `FileSystem` is used, log events are stored on the local file system\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "The resource definition version to include when the resource definition is created\\. A resource definition version contains a list of [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourceinstance.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourceinstance.html) property types\\. \nTo associate a resource definition version after the resource definition is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinitionversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinitionversion.html) resource and specify the ID of this resource definition\\.\n*Required*: No \n*Type*: [ResourceDefinitionVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedefinitionversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitialVersion" + }, + "Name": { + "markdownDescription": "The name of the resource definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "markdownDescription": "Application\\-specific metadata to attach to the resource definition\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\.", + "title": "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": { + "markdownDescription": "Indicates whether to give the privileges of the Linux group that owns the resource to the Lambda process\\. This gives the Lambda process the file access permissions of the Linux group\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutoAddGroupOwner", + "type": "boolean" + }, + "GroupOwner": { + "markdownDescription": "The name of the Linux group whose privileges you want to add to the Lambda process\\. This value is ignored if `AutoAddGroupOwner` is true\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupOwner", + "type": "string" + } + }, + "required": [ + "AutoAddGroupOwner" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinition.LocalDeviceResourceData": { + "additionalProperties": false, + "properties": { + "GroupOwnerSetting": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.GroupOwnerSetting", + "markdownDescription": "Settings that define additional Linux OS group permissions to give to the Lambda function process\\. \n*Required*: No \n*Type*: [GroupOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-groupownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupOwnerSetting" + }, + "SourcePath": { + "markdownDescription": "The local absolute path of the device resource\\. The source path for a device resource can refer only to a character device or block device under `/dev`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourcePath", + "type": "string" + } + }, + "required": [ + "SourcePath" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinition.LocalVolumeResourceData": { + "additionalProperties": false, + "properties": { + "DestinationPath": { + "markdownDescription": "The absolute local path of the resource in the Lambda environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationPath", + "type": "string" + }, + "GroupOwnerSetting": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.GroupOwnerSetting", + "markdownDescription": "Settings that define additional Linux OS group permissions to give to the Lambda function process\\. \n*Required*: No \n*Type*: [GroupOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-groupownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupOwnerSetting" + }, + "SourcePath": { + "markdownDescription": "The local absolute path of the volume resource on the host\\. The source path for a volume resource type cannot start with `/sys`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourcePath", + "type": "string" + } + }, + "required": [ + "DestinationPath", + "SourcePath" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinition.ResourceDataContainer": { + "additionalProperties": false, + "properties": { + "LocalDeviceResourceData": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.LocalDeviceResourceData", + "markdownDescription": "Settings for a local device resource\\. \n*Required*: No \n*Type*: [LocalDeviceResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-localdeviceresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalDeviceResourceData" + }, + "LocalVolumeResourceData": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.LocalVolumeResourceData", + "markdownDescription": "Settings for a local volume resource\\. \n*Required*: No \n*Type*: [LocalVolumeResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-localvolumeresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalVolumeResourceData" + }, + "S3MachineLearningModelResourceData": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.S3MachineLearningModelResourceData", + "markdownDescription": "Settings for a machine learning resource stored in Amazon S3\\. \n*Required*: No \n*Type*: [S3MachineLearningModelResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-s3machinelearningmodelresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3MachineLearningModelResourceData" + }, + "SageMakerMachineLearningModelResourceData": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.SageMakerMachineLearningModelResourceData", + "markdownDescription": "Settings for a machine learning resource saved as an SageMaker training job\\. \n*Required*: No \n*Type*: [SageMakerMachineLearningModelResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-sagemakermachinelearningmodelresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SageMakerMachineLearningModelResourceData" + }, + "SecretsManagerSecretResourceData": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.SecretsManagerSecretResourceData", + "markdownDescription": "Settings for a secret resource\\. \n*Required*: No \n*Type*: [SecretsManagerSecretResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-secretsmanagersecretresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecretsManagerSecretResourceData" + } + }, + "type": "object" + }, + "AWS::Greengrass::ResourceDefinition.ResourceDefinitionVersion": { + "additionalProperties": false, + "properties": { + "Resources": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceInstance" + }, + "markdownDescription": "The resources in this version\\. \n*Required*: Yes \n*Type*: List of [ResourceInstance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourceinstance.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Resources", + "type": "array" + } + }, + "required": [ + "Resources" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinition.ResourceDownloadOwnerSetting": { + "additionalProperties": false, + "properties": { + "GroupOwner": { + "markdownDescription": "The group owner of the machine learning resource\\. This is the group ID \\(GID\\) of an existing Linux OS group on the system\\. The group's permissions are added to the Lambda process\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupOwner", + "type": "string" + }, + "GroupPermission": { + "markdownDescription": "The permissions that the group owner has to the machine learning resource\\. Valid values are `rw` \\(read\\-write\\) or `ro` \\(read\\-only\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupPermission", + "type": "string" + } + }, + "required": [ + "GroupOwner", + "GroupPermission" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinition.ResourceInstance": { + "additionalProperties": false, + "properties": { + "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the resource\\. This value must be unique within the resource definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "string" + }, + "Name": { + "markdownDescription": "The descriptive resource name, which is displayed on the AWS IoT Greengrass console\\. Maximum length 128 characters with pattern \\[a\\-zA\\-Z0\\-9:\\_\\-\\]\\+\\. This must be unique within a Greengrass group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "ResourceDataContainer": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceDataContainer", + "markdownDescription": "A container for resource data\\. The container takes only one of the following supported resource data types: `LocalDeviceResourceData`, `LocalVolumeResourceData`, `SageMakerMachineLearningModelResourceData`, `S3MachineLearningModelResourceData`, or `SecretsManagerSecretResourceData`\\. \nOnly one resource type can be defined for a `ResourceDataContainer` instance\\.\n*Required*: Yes \n*Type*: [ResourceDataContainer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedatacontainer.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceDataContainer" + } + }, + "required": [ + "Id", + "Name", + "ResourceDataContainer" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinition.S3MachineLearningModelResourceData": { + "additionalProperties": false, + "properties": { + "DestinationPath": { + "markdownDescription": "The absolute local path of the resource inside the Lambda environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationPath", + "type": "string" + }, + "OwnerSetting": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceDownloadOwnerSetting", + "markdownDescription": "The owner setting for the downloaded machine learning resource\\. For more information, see [Access Machine Learning Resources from Lambda Functions](https://docs.aws.amazon.com/greengrass/latest/developerguide/access-ml-resources.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n*Required*: No \n*Type*: [ResourceDownloadOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedownloadownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OwnerSetting" + }, + "S3Uri": { + "markdownDescription": "The URI of the source model in an Amazon S3 bucket\\. The model package must be in `tar.gz` or `.zip` format\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Uri", + "type": "string" + } + }, + "required": [ + "DestinationPath", + "S3Uri" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinition.SageMakerMachineLearningModelResourceData": { + "additionalProperties": false, + "properties": { + "DestinationPath": { + "markdownDescription": "The absolute local path of the resource inside the Lambda environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationPath", + "type": "string" + }, + "OwnerSetting": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceDownloadOwnerSetting", + "markdownDescription": "The owner setting for the downloaded machine learning resource\\. For more information, see [Access Machine Learning Resources from Lambda Functions](https://docs.aws.amazon.com/greengrass/latest/developerguide/access-ml-resources.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n*Required*: No \n*Type*: [ResourceDownloadOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedownloadownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OwnerSetting" + }, + "SageMakerJobArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SageMaker training job that represents the source model\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SageMakerJobArn", + "type": "string" + } + }, + "required": [ + "DestinationPath", + "SageMakerJobArn" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinition.SecretsManagerSecretResourceData": { + "additionalProperties": false, + "properties": { + "ARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Secrets Manager secret to make available on the core\\. The value of the secret's latest version \\(represented by the `AWSCURRENT` staging label\\) is included by default\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ARN", + "type": "string" + }, + "AdditionalStagingLabelsToDownload": { + "items": { + "type": "string" + }, + "markdownDescription": "The staging labels whose values you want to make available on the core, in addition to `AWSCURRENT`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AdditionalStagingLabelsToDownload", + "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": { + "markdownDescription": "The ID of the resource definition associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceDefinitionId", + "type": "string" + }, + "Resources": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.ResourceInstance" + }, + "markdownDescription": "The resources in this version\\. \n*Required*: Yes \n*Type*: List of [ResourceInstance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourceinstance.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Resources", + "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": { + "markdownDescription": "Indicates whether to give the privileges of the Linux group that owns the resource to the Lambda process\\. This gives the Lambda process the file access permissions of the Linux group\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutoAddGroupOwner", + "type": "boolean" + }, + "GroupOwner": { + "markdownDescription": "The name of the Linux group whose privileges you want to add to the Lambda process\\. This value is ignored if `AutoAddGroupOwner` is true\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupOwner", + "type": "string" + } + }, + "required": [ + "AutoAddGroupOwner" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinitionVersion.LocalDeviceResourceData": { + "additionalProperties": false, + "properties": { + "GroupOwnerSetting": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.GroupOwnerSetting", + "markdownDescription": "Settings that define additional Linux OS group permissions to give to the Lambda function process\\. \n*Required*: No \n*Type*: [GroupOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-groupownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupOwnerSetting" + }, + "SourcePath": { + "markdownDescription": "The local absolute path of the device resource\\. The source path for a device resource can refer only to a character device or block device under `/dev`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourcePath", + "type": "string" + } + }, + "required": [ + "SourcePath" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinitionVersion.LocalVolumeResourceData": { + "additionalProperties": false, + "properties": { + "DestinationPath": { + "markdownDescription": "The absolute local path of the resource in the Lambda environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationPath", + "type": "string" + }, + "GroupOwnerSetting": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.GroupOwnerSetting", + "markdownDescription": "Settings that define additional Linux OS group permissions to give to the Lambda function process\\. \n*Required*: No \n*Type*: [GroupOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-groupownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupOwnerSetting" + }, + "SourcePath": { + "markdownDescription": "The local absolute path of the volume resource on the host\\. The source path for a volume resource type cannot start with `/sys`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourcePath", + "type": "string" + } + }, + "required": [ + "DestinationPath", + "SourcePath" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinitionVersion.ResourceDataContainer": { + "additionalProperties": false, + "properties": { + "LocalDeviceResourceData": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.LocalDeviceResourceData", + "markdownDescription": "Settings for a local device resource\\. \n*Required*: No \n*Type*: [LocalDeviceResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-localdeviceresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalDeviceResourceData" + }, + "LocalVolumeResourceData": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.LocalVolumeResourceData", + "markdownDescription": "Settings for a local volume resource\\. \n*Required*: No \n*Type*: [LocalVolumeResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-localvolumeresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalVolumeResourceData" + }, + "S3MachineLearningModelResourceData": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.S3MachineLearningModelResourceData", + "markdownDescription": "Settings for a machine learning resource stored in Amazon S3\\. \n*Required*: No \n*Type*: [S3MachineLearningModelResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-s3machinelearningmodelresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3MachineLearningModelResourceData" + }, + "SageMakerMachineLearningModelResourceData": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.SageMakerMachineLearningModelResourceData", + "markdownDescription": "Settings for a machine learning resource saved as an SageMaker training job\\. \n*Required*: No \n*Type*: [SageMakerMachineLearningModelResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-sagemakermachinelearningmodelresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SageMakerMachineLearningModelResourceData" + }, + "SecretsManagerSecretResourceData": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.SecretsManagerSecretResourceData", + "markdownDescription": "Settings for a secret resource\\. \n*Required*: No \n*Type*: [SecretsManagerSecretResourceData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-secretsmanagersecretresourcedata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecretsManagerSecretResourceData" + } + }, + "type": "object" + }, + "AWS::Greengrass::ResourceDefinitionVersion.ResourceDownloadOwnerSetting": { + "additionalProperties": false, + "properties": { + "GroupOwner": { + "markdownDescription": "The group owner of the machine learning resource\\. This is the group ID \\(GID\\) of an existing Linux OS group on the system\\. The group's permissions are added to the Lambda process\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupOwner", + "type": "string" + }, + "GroupPermission": { + "markdownDescription": "The permissions that the group owner has to the machine learning resource\\. Valid values are `rw` \\(read\\-write\\) or `ro` \\(read\\-only\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupPermission", + "type": "string" + } + }, + "required": [ + "GroupOwner", + "GroupPermission" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinitionVersion.ResourceInstance": { + "additionalProperties": false, + "properties": { + "Id": { + "markdownDescription": "A descriptive or arbitrary ID for the resource\\. This value must be unique within the resource definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "string" + }, + "Name": { + "markdownDescription": "The descriptive resource name, which is displayed on the AWS IoT Greengrass console\\. Maximum length 128 characters with pattern \\[a\\-zA\\-Z0\\-9:\\_\\-\\]\\+\\. This must be unique within a Greengrass group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "ResourceDataContainer": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.ResourceDataContainer", + "markdownDescription": "A container for resource data\\. The container takes only one of the following supported resource data types: `LocalDeviceResourceData`, `LocalVolumeResourceData`, `SageMakerMachineLearningModelResourceData`, `S3MachineLearningModelResourceData`, or `SecretsManagerSecretResourceData`\\. \nOnly one resource type can be defined for a `ResourceDataContainer` instance\\.\n*Required*: Yes \n*Type*: [ResourceDataContainer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedatacontainer.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceDataContainer" + } + }, + "required": [ + "Id", + "Name", + "ResourceDataContainer" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinitionVersion.S3MachineLearningModelResourceData": { + "additionalProperties": false, + "properties": { + "DestinationPath": { + "markdownDescription": "The absolute local path of the resource inside the Lambda environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationPath", + "type": "string" + }, + "OwnerSetting": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.ResourceDownloadOwnerSetting", + "markdownDescription": "The owner setting for the downloaded machine learning resource\\. For more information, see [Access Machine Learning Resources from Lambda Functions](https://docs.aws.amazon.com/greengrass/latest/developerguide/access-ml-resources.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n*Required*: No \n*Type*: [ResourceDownloadOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedownloadownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OwnerSetting" + }, + "S3Uri": { + "markdownDescription": "The URI of the source model in an Amazon S3 bucket\\. The model package must be in `tar.gz` or `.zip` format\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Uri", + "type": "string" + } + }, + "required": [ + "DestinationPath", + "S3Uri" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinitionVersion.SageMakerMachineLearningModelResourceData": { + "additionalProperties": false, + "properties": { + "DestinationPath": { + "markdownDescription": "The absolute local path of the resource inside the Lambda environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationPath", + "type": "string" + }, + "OwnerSetting": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.ResourceDownloadOwnerSetting", + "markdownDescription": "The owner setting for the downloaded machine learning resource\\. For more information, see [Access Machine Learning Resources from Lambda Functions](https://docs.aws.amazon.com/greengrass/latest/developerguide/access-ml-resources.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \n*Required*: No \n*Type*: [ResourceDownloadOwnerSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedownloadownersetting.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OwnerSetting" + }, + "SageMakerJobArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SageMaker training job that represents the source model\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SageMakerJobArn", + "type": "string" + } + }, + "required": [ + "DestinationPath", + "SageMakerJobArn" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinitionVersion.SecretsManagerSecretResourceData": { + "additionalProperties": false, + "properties": { + "ARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Secrets Manager secret to make available on the core\\. The value of the secret's latest version \\(represented by the `AWSCURRENT` staging label\\) is included by default\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ARN", + "type": "string" + }, + "AdditionalStagingLabelsToDownload": { + "items": { + "type": "string" + }, + "markdownDescription": "The staging labels whose values you want to make available on the core, in addition to `AWSCURRENT`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AdditionalStagingLabelsToDownload", + "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", + "markdownDescription": "The subscription definition version to include when the subscription definition is created\\. A subscription definition version contains a list of [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinition-subscription.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinition-subscription.html) property types\\. \nTo associate a subscription definition version after the subscription definition is created, create an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinitionversion.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinitionversion.html) resource and specify the ID of this subscription definition\\.\n*Required*: No \n*Type*: [SubscriptionDefinitionVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinition-subscriptiondefinitionversion.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitialVersion" + }, + "Name": { + "markdownDescription": "The name of the subscription definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "markdownDescription": "Application\\-specific metadata to attach to the subscription definition\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tagging Your AWS IoT Greengrass Resources](https://docs.aws.amazon.com/greengrass/latest/developerguide/tagging.html) in the *AWS IoT Greengrass Version 1 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\.", + "title": "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": { + "markdownDescription": "A descriptive or arbitrary ID for the subscription\\. This value must be unique within the subscription definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "string" + }, + "Source": { + "markdownDescription": "The originator of the message\\. The value can be a thing ARN, the ARN of a Lambda function alias \\(recommended\\) or version, a connector ARN, `cloud` \\(which represents the AWS IoT cloud\\), or `GGShadowService`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Source", + "type": "string" + }, + "Subject": { + "markdownDescription": "The MQTT topic used to route the message\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subject", + "type": "string" + }, + "Target": { + "markdownDescription": "The destination of the message\\. The value can be a thing ARN, the ARN of a Lambda function alias \\(recommended\\) or version, a connector ARN, `cloud` \\(which represents the AWS IoT cloud\\), or `GGShadowService`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "The subscriptions in this version\\. \n*Required*: Yes \n*Type*: List of [Subscription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinition-subscription.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subscriptions", + "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": { + "markdownDescription": "The ID of the subscription definition associated with this version\\. This value is a GUID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubscriptionDefinitionId", + "type": "string" + }, + "Subscriptions": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::SubscriptionDefinitionVersion.Subscription" + }, + "markdownDescription": "The subscriptions in this version\\. \n*Required*: Yes \n*Type*: List of [Subscription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinitionversion-subscription.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subscriptions", + "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": { + "markdownDescription": "A descriptive or arbitrary ID for the subscription\\. This value must be unique within the subscription definition version\\. Maximum length is 128 characters with pattern `[a-zA-Z0-9:_-]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "string" + }, + "Source": { + "markdownDescription": "The originator of the message\\. The value can be a thing ARN, the ARN of a Lambda function alias \\(recommended\\) or version, a connector ARN, `cloud` \\(which represents the AWS IoT cloud\\), or `GGShadowService`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Source", + "type": "string" + }, + "Subject": { + "markdownDescription": "The MQTT topic used to route the message\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subject", + "type": "string" + }, + "Target": { + "markdownDescription": "The destination of the message\\. The value can be a thing ARN, the ARN of a Lambda function alias \\(recommended\\) or version, a connector ARN, `cloud` \\(which represents the AWS IoT cloud\\), or `GGShadowService`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The recipe to use to create the component\\. The recipe defines the component's metadata, parameters, dependencies, lifecycle, artifacts, and platform compatibility\\. \nYou must specify either `InlineRecipe` or `LambdaFunction`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InlineRecipe", + "type": "string" + }, + "LambdaFunction": { + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaFunctionRecipeSource", + "markdownDescription": "The parameters to create a component from a Lambda function\\. \nYou must specify either `InlineRecipe` or `LambdaFunction`\\. \n*Required*: No \n*Type*: [LambdaFunctionRecipeSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdafunctionrecipesource.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LambdaFunction" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "Application\\-specific metadata to attach to the component version\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tag your AWS IoT Greengrass Version 2 resources](https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html) in the *AWS IoT Greengrass V2 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\.", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "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": { + "markdownDescription": "The type of this dependency\\. Choose from the following options: \n+ `SOFT` \u2013 The component doesn't restart if the dependency changes state\\.\n+ `HARD` \u2013 The component restarts if the dependency changes state\\.\nDefault: `HARD` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DependencyType", + "type": "string" + }, + "VersionRequirement": { + "markdownDescription": "The component version requirement for the component dependency\\. \nAWS IoT Greengrass uses semantic version constraints\\. For more information, see [Semantic Versioning](https://semver.org/)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VersionRequirement", + "type": "string" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::ComponentVersion.ComponentPlatform": { + "additionalProperties": false, + "properties": { + "Attributes": { + "additionalProperties": true, + "markdownDescription": "A dictionary of attributes for the platform\\. The software defines the `os` and `platform` by default\\. You can specify additional platform attributes for a core device when you deploy the Greengrass nucleus component\\. For more information, see the [Greengrass nucleus component](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html) in the *AWS IoT Greengrass V2 Developer Guide*\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Attributes", + "type": "object" + }, + "Name": { + "markdownDescription": "The friendly name of the platform\\. This name helps you identify the platform\\. \nIf you omit this parameter, AWS IoT Greengrass creates a friendly name from the `os` and `architecture` of the platform\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::ComponentVersion.LambdaContainerParams": { + "additionalProperties": false, + "properties": { + "Devices": { + "items": { + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaDeviceMount" + }, + "markdownDescription": "The list of system devices that the container can access\\. \n*Required*: No \n*Type*: List of [LambdaDeviceMount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdadevicemount.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Devices", + "type": "array" + }, + "MemorySizeInKB": { + "markdownDescription": "The memory size of the container, expressed in kilobytes\\. \nDefault: `16384` \\(16 MB\\) \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MemorySizeInKB", + "type": "number" + }, + "MountROSysfs": { + "markdownDescription": "Whether or not the container can read information from the device's `/sys` folder\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MountROSysfs", + "type": "boolean" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaVolumeMount" + }, + "markdownDescription": "The list of volumes that the container can access\\. \n*Required*: No \n*Type*: List of [LambdaVolumeMount](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdavolumemount.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Volumes", + "type": "array" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::ComponentVersion.LambdaDeviceMount": { + "additionalProperties": false, + "properties": { + "AddGroupOwner": { + "markdownDescription": "Whether or not to add the component's system user as an owner of the device\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AddGroupOwner", + "type": "boolean" + }, + "Path": { + "markdownDescription": "The mount path for the device in the file system\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Path", + "type": "string" + }, + "Permission": { + "markdownDescription": "The permission to access the device: read/only \\(`ro`\\) or read/write \\(`rw`\\)\\. \nDefault: `ro` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Permission", + "type": "string" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::ComponentVersion.LambdaEventSource": { + "additionalProperties": false, + "properties": { + "Topic": { + "markdownDescription": "The topic to which to subscribe to receive event messages\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Topic", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of event source\\. Choose from the following options: \n+ `PUB_SUB` \u2013 Subscribe to local publish/subscribe messages\\. This event source type doesn't support MQTT wildcards \\(`+` and `#`\\) in the event source topic\\.\n+ `IOT_CORE` \u2013 Subscribe to AWS IoT Core MQTT messages\\. This event source type supports MQTT wildcards \\(`+` and `#`\\) in the event source topic\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::ComponentVersion.LambdaExecutionParameters": { + "additionalProperties": false, + "properties": { + "EnvironmentVariables": { + "additionalProperties": true, + "markdownDescription": "The map of environment variables that are available to the Lambda function when it runs\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "EnvironmentVariables", + "type": "object" + }, + "EventSources": { + "items": { + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaEventSource" + }, + "markdownDescription": "The list of event sources to which to subscribe to receive work messages\\. The Lambda function runs when it receives a message from an event source\\. You can subscribe this function to local publish/subscribe messages and AWS IoT Core MQTT messages\\. \n*Required*: No \n*Type*: List of [LambdaEventSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdaeventsource.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EventSources", + "type": "array" + }, + "ExecArgs": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of arguments to pass to the Lambda function when it runs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExecArgs", + "type": "array" + }, + "InputPayloadEncodingType": { + "markdownDescription": "The encoding type that the Lambda function supports\\. \nDefault: `json` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InputPayloadEncodingType", + "type": "string" + }, + "LinuxProcessParams": { + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaLinuxProcessParams", + "markdownDescription": "The parameters for the Linux process that contains the Lambda function\\. \n*Required*: No \n*Type*: [LambdaLinuxProcessParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdalinuxprocessparams.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LinuxProcessParams" + }, + "MaxIdleTimeInSeconds": { + "markdownDescription": "The maximum amount of time in seconds that a non\\-pinned Lambda function can idle before the software stops its process\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaxIdleTimeInSeconds", + "type": "number" + }, + "MaxInstancesCount": { + "markdownDescription": "The maximum number of instances that a non\\-pinned Lambda function can run at the same time\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaxInstancesCount", + "type": "number" + }, + "MaxQueueSize": { + "markdownDescription": "The maximum size of the message queue for the Lambda function component\\. The Greengrass core device stores messages in a FIFO \\(first\\-in\\-first\\-out\\) queue until it can run the Lambda function to consume each message\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaxQueueSize", + "type": "number" + }, + "Pinned": { + "markdownDescription": "Whether or not the Lambda function is pinned, or long\\-lived\\. \n+ A pinned Lambda function starts when the starts and keeps running in its own container\\.\n+ A non\\-pinned Lambda function starts only when it receives a work item and exists after it idles for `maxIdleTimeInSeconds`\\. If the function has multiple work items, the software creates multiple instances of the function\\.\nDefault: `true` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Pinned", + "type": "boolean" + }, + "StatusTimeoutInSeconds": { + "markdownDescription": "The interval in seconds at which a pinned \\(also known as long\\-lived\\) Lambda function component sends status updates to the Lambda manager component\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StatusTimeoutInSeconds", + "type": "number" + }, + "TimeoutInSeconds": { + "markdownDescription": "The maximum amount of time in seconds that the Lambda function can process a work item\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TimeoutInSeconds", + "type": "number" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::ComponentVersion.LambdaFunctionRecipeSource": { + "additionalProperties": false, + "properties": { + "ComponentDependencies": { + "additionalProperties": false, + "markdownDescription": "The component versions on which this Lambda function component depends\\. \n*Required*: No \n*Type*: Map of [ComponentDependencyRequirement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-componentdependencyrequirement.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.ComponentDependencyRequirement" + } + }, + "title": "ComponentDependencies", + "type": "object" + }, + "ComponentLambdaParameters": { + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaExecutionParameters", + "markdownDescription": "The system and runtime parameters for the Lambda function as it runs on the Greengrass core device\\. \n*Required*: No \n*Type*: [LambdaExecutionParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdaexecutionparameters.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ComponentLambdaParameters" + }, + "ComponentName": { + "markdownDescription": "The name of the component\\. \nDefaults to the name of the Lambda function\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ComponentName", + "type": "string" + }, + "ComponentPlatforms": { + "items": { + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.ComponentPlatform" + }, + "markdownDescription": "The platforms that the component version supports\\. \n*Required*: No \n*Type*: List of [ComponentPlatform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-componentplatform.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ComponentPlatforms", + "type": "array" + }, + "ComponentVersion": { + "markdownDescription": "The version of the component\\. \nDefaults to the version of the Lambda function as a semantic version\\. For example, if your function version is `3`, the component version becomes `3.0.0`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ComponentVersion", + "type": "string" + }, + "LambdaArn": { + "markdownDescription": "The ARN of the Lambda function\\. The ARN must include the version of the function to import\\. You can't use version aliases like `$LATEST`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LambdaArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::ComponentVersion.LambdaLinuxProcessParams": { + "additionalProperties": false, + "properties": { + "ContainerParams": { + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaContainerParams", + "markdownDescription": "The parameters for the container in which the Lambda function runs\\. \n*Required*: No \n*Type*: [LambdaContainerParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdacontainerparams.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerParams" + }, + "IsolationMode": { + "markdownDescription": "The isolation mode for the process that contains the Lambda function\\. The process can run in an isolated runtime environment inside the AWS IoT Greengrass container, or as a regular process outside any container\\. \nDefault: `GreengrassContainer` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IsolationMode", + "type": "string" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::ComponentVersion.LambdaVolumeMount": { + "additionalProperties": false, + "properties": { + "AddGroupOwner": { + "markdownDescription": "Whether or not to add the AWS IoT Greengrass user group as an owner of the volume\\. \nDefault: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AddGroupOwner", + "type": "boolean" + }, + "DestinationPath": { + "markdownDescription": "The path to the logical volume in the file system\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationPath", + "type": "string" + }, + "Permission": { + "markdownDescription": "The permission to access the volume: read/only \\(`ro`\\) or read/write \\(`rw`\\)\\. \nDefault: `ro` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Permission", + "type": "string" + }, + "SourcePath": { + "markdownDescription": "The path to the physical volume in the file system\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "Object containing the parameters of a config\\. Only one subtype may be specified per config\\. See the subtype definitions for a description of each config subtype\\. \n*Required*: Yes \n*Type*: [ConfigData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-configdata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfigData" + }, + "Name": { + "markdownDescription": "The name of the config object\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Tags assigned to a resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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", + "markdownDescription": "Defines the spectrum configuration\\. \n*Required*: No \n*Type*: [SpectrumConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-spectrumconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpectrumConfig" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.AntennaDownlinkDemodDecodeConfig": { + "additionalProperties": false, + "properties": { + "DecodeConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.DecodeConfig", + "markdownDescription": "Defines how the RF signal will be decoded\\. \n*Required*: No \n*Type*: [DecodeConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-decodeconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DecodeConfig" + }, + "DemodulationConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.DemodulationConfig", + "markdownDescription": "Defines how the RF signal will be demodulated\\. \n*Required*: No \n*Type*: [DemodulationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-demodulationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DemodulationConfig" + }, + "SpectrumConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.SpectrumConfig", + "markdownDescription": "Defines the spectrum configuration\\. \n*Required*: No \n*Type*: [SpectrumConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-spectrumconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpectrumConfig" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.AntennaUplinkConfig": { + "additionalProperties": false, + "properties": { + "SpectrumConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.UplinkSpectrumConfig", + "markdownDescription": "Defines the spectrum configuration\\. \n*Required*: No \n*Type*: [UplinkSpectrumConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-uplinkspectrumconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpectrumConfig" + }, + "TargetEirp": { + "$ref": "#/definitions/AWS::GroundStation::Config.Eirp", + "markdownDescription": "The equivalent isotropically radiated power \\(EIRP\\) to use for uplink transmissions\\. Valid values are between 20\\.0 to 50\\.0 dBW\\. \n*Required*: No \n*Type*: [Eirp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-eirp.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetEirp" + }, + "TransmitDisabled": { + "markdownDescription": "Whether or not uplink transmit is disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransmitDisabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.ConfigData": { + "additionalProperties": false, + "properties": { + "AntennaDownlinkConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.AntennaDownlinkConfig", + "markdownDescription": "Provides information for an antenna downlink config object\\. Antenna downlink config objects are used to provide parameters for downlinks where no demodulation or decoding is performed by Ground Station \\(RF over IP downlinks\\)\\. \n*Required*: No \n*Type*: [AntennaDownlinkConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-antennadownlinkconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AntennaDownlinkConfig" + }, + "AntennaDownlinkDemodDecodeConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.AntennaDownlinkDemodDecodeConfig", + "markdownDescription": "Provides information for a downlink demod decode config object\\. Downlink demod decode config objects are used to provide parameters for downlinks where the Ground Station service will demodulate and decode the downlinked data\\. \n*Required*: No \n*Type*: [AntennaDownlinkDemodDecodeConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-antennadownlinkdemoddecodeconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AntennaDownlinkDemodDecodeConfig" + }, + "AntennaUplinkConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.AntennaUplinkConfig", + "markdownDescription": "Provides information for an uplink config object\\. Uplink config objects are used to provide parameters for uplink contacts\\. \n*Required*: No \n*Type*: [AntennaUplinkConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-antennauplinkconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AntennaUplinkConfig" + }, + "DataflowEndpointConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.DataflowEndpointConfig", + "markdownDescription": "Provides information for a dataflow endpoint config object\\. Dataflow endpoint config objects are used to provide parameters about which IP endpoint\\(s\\) to use during a contact\\. Dataflow endpoints are where Ground Station sends data during a downlink contact and where Ground Station receives data to send to the satellite during an uplink contact\\. \n*Required*: No \n*Type*: [DataflowEndpointConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-dataflowendpointconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataflowEndpointConfig" + }, + "S3RecordingConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.S3RecordingConfig", + "markdownDescription": "Provides information for an S3 recording config object\\. S3 recording config objects are used to provide parameters for S3 recording during downlink contacts\\. \n*Required*: No \n*Type*: [S3RecordingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-s3recordingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3RecordingConfig" + }, + "TrackingConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.TrackingConfig", + "markdownDescription": "Provides information for a tracking config object\\. Tracking config objects are used to provide parameters about how to track the satellite through the sky during a contact\\. \n*Required*: No \n*Type*: [TrackingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-trackingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrackingConfig" + }, + "UplinkEchoConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.UplinkEchoConfig", + "markdownDescription": "Provides information for an uplink echo config object\\. Uplink echo config objects are used to provide parameters for uplink echo during uplink contacts\\. \n*Required*: No \n*Type*: [UplinkEchoConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-uplinkechoconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UplinkEchoConfig" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.DataflowEndpointConfig": { + "additionalProperties": false, + "properties": { + "DataflowEndpointName": { + "markdownDescription": "The name of the dataflow endpoint to use during contacts\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataflowEndpointName", + "type": "string" + }, + "DataflowEndpointRegion": { + "markdownDescription": "The region of the dataflow endpoint to use during contacts\\. When omitted, Ground Station will use the region of the contact\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataflowEndpointRegion", + "type": "string" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.DecodeConfig": { + "additionalProperties": false, + "properties": { + "UnvalidatedJSON": { + "markdownDescription": "The decoding settings are in JSON format and define a set of steps to perform to decode the data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnvalidatedJSON", + "type": "string" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.DemodulationConfig": { + "additionalProperties": false, + "properties": { + "UnvalidatedJSON": { + "markdownDescription": "The demodulation settings are in JSON format and define parameters for demodulation, for example which modulation scheme \\(e\\.g\\. PSK, QPSK, etc\\.\\) and matched filter to use\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnvalidatedJSON", + "type": "string" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.Eirp": { + "additionalProperties": false, + "properties": { + "Units": { + "markdownDescription": "The units of the EIRP\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Units", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of the EIRP\\. Valid values are between 20\\.0 to 50\\.0 dBW\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "number" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.Frequency": { + "additionalProperties": false, + "properties": { + "Units": { + "markdownDescription": "The units of the frequency\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Units", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of the frequency\\. Valid values are between 2200 to 2300 MHz and 7750 to 8400 MHz for downlink and 2025 to 2120 MHz for uplink\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "number" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.FrequencyBandwidth": { + "additionalProperties": false, + "properties": { + "Units": { + "markdownDescription": "The units of the bandwidth\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Units", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of the bandwidth\\. AWS Ground Station currently has the following bandwidth limitations: \n+ For `AntennaDownlinkDemodDecodeconfig`, valid values are between 125 kHz to 650 MHz\\.\n+ For `AntennaDownlinkconfig`, valid values are between 10 kHz to 54 MHz\\.\n+ For `AntennaUplinkConfig`, valid values are between 10 kHz to 54 MHz\\.\n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "number" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.S3RecordingConfig": { + "additionalProperties": false, + "properties": { + "BucketArn": { + "markdownDescription": "S3 Bucket where the data is written\\. The name of the S3 Bucket provided must begin with `aws-groundstation`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketArn", + "type": "string" + }, + "Prefix": { + "markdownDescription": "The prefix of the S3 data object\\. If you choose to use any optional keys for substitution, these values will be replaced with the corresponding information from your contact details\\. For example, a prefix of `{satellite_id}/{year}/{month}/{day}/` will replaced with `fake_satellite_id/2021/01/10/` \n*Optional keys for substitution*: `{satellite_id}` \\| `{config-name}` \\| `{config-id}` \\| `{year}` \\| `{month}` \\| `{day}` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "Defines the ARN of the role assumed for putting archives to S3\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.SpectrumConfig": { + "additionalProperties": false, + "properties": { + "Bandwidth": { + "$ref": "#/definitions/AWS::GroundStation::Config.FrequencyBandwidth", + "markdownDescription": "The bandwidth of the spectrum\\. AWS Ground Station currently has the following bandwidth limitations: \n+ For `AntennaDownlinkDemodDecodeconfig`, valid values are between 125 kHz to 650 MHz\\.\n+ For `AntennaDownlinkconfig`, valid values are between 10 kHz to 54 MHz\\.\n+ For `AntennaUplinkConfig`, valid values are between 10 kHz to 54 MHz\\.\n*Required*: No \n*Type*: [FrequencyBandwidth](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-frequencybandwidth.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bandwidth" + }, + "CenterFrequency": { + "$ref": "#/definitions/AWS::GroundStation::Config.Frequency", + "markdownDescription": "The center frequency of the spectrum\\. Valid values are between 2200 to 2300 MHz and 7750 to 8400 MHz for downlink and 2025 to 2120 MHz for uplink\\. \n*Required*: No \n*Type*: [Frequency](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-frequency.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CenterFrequency" + }, + "Polarization": { + "markdownDescription": "The polarization of the spectrum\\. Valid values are `\"RIGHT_HAND\"` and `\"LEFT_HAND\"`\\. Capturing both `\"RIGHT_HAND\"` and `\"LEFT_HAND\"` polarization requires two separate configs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Polarization", + "type": "string" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.TrackingConfig": { + "additionalProperties": false, + "properties": { + "Autotrack": { + "markdownDescription": "Specifies whether or not to use autotrack\\. `REMOVED` specifies that program track should only be used during the contact\\. `PREFERRED` specifies that autotracking is preferred during the contact but fallback to program track if the signal is lost\\. `REQUIRED` specifies that autotracking is required during the contact and not to use program track if the signal is lost\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Autotrack", + "type": "string" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.UplinkEchoConfig": { + "additionalProperties": false, + "properties": { + "AntennaUplinkConfigArn": { + "markdownDescription": "Defines the ARN of the uplink config to echo back to a dataflow endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AntennaUplinkConfigArn", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Whether or not uplink echo is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.UplinkSpectrumConfig": { + "additionalProperties": false, + "properties": { + "CenterFrequency": { + "$ref": "#/definitions/AWS::GroundStation::Config.Frequency", + "markdownDescription": "The center frequency of the spectrum\\. Valid values are between 2200 to 2300 MHz and 7750 to 8400 MHz for downlink and 2025 to 2120 MHz for uplink\\. \n*Required*: No \n*Type*: [Frequency](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-frequency.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CenterFrequency" + }, + "Polarization": { + "markdownDescription": "The polarization of the spectrum\\. Valid values are `\"RIGHT_HAND\"` and `\"LEFT_HAND\"`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "ContactPostPassDurationSeconds": { + "type": "number" + }, + "ContactPrePassDurationSeconds": { + "type": "number" + }, + "EndpointDetails": { + "items": { + "$ref": "#/definitions/AWS::GroundStation::DataflowEndpointGroup.EndpointDetails" + }, + "markdownDescription": "List of Endpoint Details, containing address and port for each endpoint\\. \n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-endpointdetails.html) of [EndpointDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-endpointdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointDetails", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Tags assigned to a resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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", + "markdownDescription": "The address and port of an endpoint\\. \n*Required*: No \n*Type*: [SocketAddress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-socketaddress.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Address" + }, + "Mtu": { + "markdownDescription": "Maximum transmission unit \\(MTU\\) size in bytes of a dataflow endpoint\\. Valid values are between 1400 and 1500\\. A default value of 1500 is used if not set\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mtu", + "type": "number" + }, + "Name": { + "markdownDescription": "The endpoint name\\. \n When listing available contacts for a satellite, Ground Station searches for a dataflow endpoint whose name matches the value specified by the dataflow endpoint config of the selected mission profile\\. If no matching dataflow endpoints are found then Ground Station will not display any available contacts for the satellite\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "type": "object" + }, + "AWS::GroundStation::DataflowEndpointGroup.EndpointDetails": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "$ref": "#/definitions/AWS::GroundStation::DataflowEndpointGroup.DataflowEndpoint", + "markdownDescription": "Information about the endpoint such as name and the endpoint address\\. \n*Required*: No \n*Type*: [DataflowEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-dataflowendpoint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Endpoint" + }, + "SecurityDetails": { + "$ref": "#/definitions/AWS::GroundStation::DataflowEndpointGroup.SecurityDetails", + "markdownDescription": "The role ARN, and IDs for security groups and subnets\\. \n*Required*: No \n*Type*: [SecurityDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-securitydetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityDetails" + } + }, + "type": "object" + }, + "AWS::GroundStation::DataflowEndpointGroup.SecurityDetails": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "markdownDescription": "The ARN of a role which Ground Station has permission to assume, such as `arn:aws:iam::1234567890:role/DataDeliveryServiceRole`\\. \n Ground Station will assume this role and create an ENI in your VPC on the specified subnet upon creation of a dataflow endpoint group\\. This ENI is used as the ingress/egress point for data streamed during a satellite contact\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The security group Ids of the security role, such as `sg-1234567890abcdef0`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The subnet Ids of the security details, such as `subnet-12345678`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "type": "array" + } + }, + "type": "object" + }, + "AWS::GroundStation::DataflowEndpointGroup.SocketAddress": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the endpoint, such as `Endpoint 1`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Port": { + "markdownDescription": "The port of the endpoint, such as `55888`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Amount of time in seconds after a contact ends that you\u2019d like to receive a CloudWatch Event indicating the pass has finished\\. For more information on CloudWatch Events, see the [What Is CloudWatch Events?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContactPostPassDurationSeconds", + "type": "number" + }, + "ContactPrePassDurationSeconds": { + "markdownDescription": "Amount of time in seconds prior to contact start that you'd like to receive a CloudWatch Event indicating an upcoming pass\\. For more information on CloudWatch Events, see the [What Is CloudWatch Events?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContactPrePassDurationSeconds", + "type": "number" + }, + "DataflowEdges": { + "items": { + "$ref": "#/definitions/AWS::GroundStation::MissionProfile.DataflowEdge" + }, + "markdownDescription": "A list containing lists of config ARNs\\. Each list of config ARNs is an edge, with a \"from\" config and a \"to\" config\\. \n*Required*: Yes \n*Type*: List of [DataflowEdge](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-missionprofile-dataflowedge.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataflowEdges", + "type": "array" + }, + "MinimumViableContactDurationSeconds": { + "markdownDescription": "Minimum length of a contact in seconds that Ground Station will return when listing contacts\\. Ground Station will not return contacts shorter than this duration\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinimumViableContactDurationSeconds", + "type": "number" + }, + "Name": { + "markdownDescription": "The name of the mission profile\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Tags assigned to the mission profile\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TrackingConfigArn": { + "markdownDescription": "The ARN of a tracking config objects that defines how to track the satellite through the sky during a contact\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ARN of the destination for this dataflow edge\\. For example, specify the ARN of a dataflow endpoint config for a downlink edge or an antenna uplink config for an uplink edge\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination", + "type": "string" + }, + "Source": { + "markdownDescription": "The ARN of the source for this dataflow edge\\. For example, specify the ARN of an antenna downlink config for a downlink edge or a dataflow endpoint config for an uplink edge\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Describes which data sources will be enabled for the detector\\. \n*Required*: No \n*Type*: [CFNDataSourceConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-detector-cfndatasourceconfigurations.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSources" + }, + "Enable": { + "markdownDescription": "Specifies whether the detector is to be enabled on creation\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enable", + "type": "boolean" + }, + "FindingPublishingFrequency": { + "markdownDescription": "Specifies how frequently updated findings are exported\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `FIFTEEN_MINUTES | ONE_HOUR | SIX_HOURS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Describes which Kuberentes data sources are enabled for a detector\\. \n*Required*: No \n*Type*: [CFNKubernetesConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-detector-cfnkubernetesconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Kubernetes" + }, + "MalwareProtection": { + "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNMalwareProtectionConfiguration" + }, + "S3Logs": { + "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNS3LogsConfiguration", + "markdownDescription": "Describes whether S3 data event logs are enabled as a data source\\. \n*Required*: No \n*Type*: [CFNS3LogsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-detector-cfns3logsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Logs" + } + }, + "type": "object" + }, + "AWS::GuardDuty::Detector.CFNKubernetesAuditLogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "markdownDescription": "Describes whether Kubernetes audit logs are enabled as a data source for the detector\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enable", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::GuardDuty::Detector.CFNKubernetesConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogs": { + "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNKubernetesAuditLogsConfiguration", + "markdownDescription": "Describes whether Kubernetes audit logs are enabled as a data source for the detector\\. \n*Required*: No \n*Type*: [CFNKubernetesAuditLogsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-detector-cfnkubernetesauditlogsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuditLogs" + } + }, + "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": { + "markdownDescription": "The status of S3 data event logs as a data source\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Specifies the action that is to be applied to the findings that match the filter\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ARCHIVE | NOOP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the filter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DetectorId": { + "markdownDescription": "The ID of the detector belonging to the GuardDuty account that you want to create a filter for\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DetectorId", + "type": "string" + }, + "FindingCriteria": { + "$ref": "#/definitions/AWS::GuardDuty::Filter.FindingCriteria", + "markdownDescription": "Represents the criteria to be used in the filter for querying findings\\. \n*Required*: Yes \n*Type*: [FindingCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-findingcriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FindingCriteria" + }, + "Name": { + "markdownDescription": "The name of the filter\\. Minimum length of 3\\. Maximum length of 64\\. Valid characters include alphanumeric characters, dot \\(\\.\\), underscore \\(\\_\\), and dash \\(\\-\\)\\. Spaces are not allowed\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Rank": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "Represents the equal condition to apply to a single field when querying for findings\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Eq", + "type": "array" + }, + "Equals": { + "items": { + "type": "string" + }, + "type": "array" + }, + "GreaterThan": { + "type": "number" + }, + "GreaterThanOrEqual": { + "type": "number" + }, + "Gt": { + "type": "number" + }, + "Gte": { + "markdownDescription": "Represents the greater than or equal condition to apply to a single field when querying for findings\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Gte", + "type": "number" + }, + "LessThan": { + "type": "number" + }, + "LessThanOrEqual": { + "type": "number" + }, + "Lt": { + "markdownDescription": "Represents the less than condition to apply to a single field when querying for findings\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Lt", + "type": "number" + }, + "Lte": { + "markdownDescription": "Represents the less than or equal condition to apply to a single field when querying for findings\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Lte", + "type": "number" + }, + "Neq": { + "items": { + "type": "string" + }, + "markdownDescription": "Represents the not equal condition to apply to a single field when querying for findings\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Neq", + "type": "array" + }, + "NotEquals": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::GuardDuty::Filter.FindingCriteria": { + "additionalProperties": false, + "properties": { + "Criterion": { + "markdownDescription": "Represents a map of finding properties that match specified conditions and values when querying findings\\. \nFor a mapping of JSON criterion to their console equivalent see [Finding criteria](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_filter-findings.html#filter_criteria)\\. The following are the available criterion: \n+ accountId\n+ region\n+ confidence\n+ id\n+ resource\\.accessKeyDetails\\.accessKeyId\n+ resource\\.accessKeyDetails\\.principalId\n+ resource\\.accessKeyDetails\\.userName\n+ resource\\.accessKeyDetails\\.userType\n+ resource\\.instanceDetails\\.iamInstanceProfile\\.id\n+ resource\\.instanceDetails\\.imageId\n+ resource\\.instanceDetails\\.instanceId\n+ resource\\.instanceDetails\\.outpostArn\n+ resource\\.instanceDetails\\.networkInterfaces\\.ipv6Addresses\n+ resource\\.instanceDetails\\.networkInterfaces\\.privateIpAddresses\\.privateIpAddress\n+ resource\\.instanceDetails\\.networkInterfaces\\.publicDnsName\n+ resource\\.instanceDetails\\.networkInterfaces\\.publicIp\n+ resource\\.instanceDetails\\.networkInterfaces\\.securityGroups\\.groupId\n+ resource\\.instanceDetails\\.networkInterfaces\\.securityGroups\\.groupName\n+ resource\\.instanceDetails\\.networkInterfaces\\.subnetId\n+ resource\\.instanceDetails\\.networkInterfaces\\.vpcId\n+ resource\\.instanceDetails\\.tags\\.key\n+ resource\\.instanceDetails\\.tags\\.value\n+ resource\\.resourceType\n+ service\\.action\\.actionType\n+ service\\.action\\.awsApiCallAction\\.api\n+ service\\.action\\.awsApiCallAction\\.callerType\n+ service\\.action\\.awsApiCallAction\\.errorCode\n+ service\\.action\\.awsApiCallAction\\.remoteIpDetails\\.city\\.cityName\n+ service\\.action\\.awsApiCallAction\\.remoteIpDetails\\.country\\.countryName\n+ service\\.action\\.awsApiCallAction\\.remoteIpDetails\\.ipAddressV4\n+ service\\.action\\.awsApiCallAction\\.remoteIpDetails\\.organization\\.asn\n+ service\\.action\\.awsApiCallAction\\.remoteIpDetails\\.organization\\.asnOrg\n+ service\\.action\\.awsApiCallAction\\.serviceName\n+ service\\.action\\.dnsRequestAction\\.domain\n+ service\\.action\\.networkConnectionAction\\.blocked\n+ service\\.action\\.networkConnectionAction\\.connectionDirection\n+ service\\.action\\.networkConnectionAction\\.localPortDetails\\.port\n+ service\\.action\\.networkConnectionAction\\.protocol\n+ service\\.action\\.networkConnectionAction\\.localIpDetails\\.ipAddressV4\n+ service\\.action\\.networkConnectionAction\\.remoteIpDetails\\.city\\.cityName\n+ service\\.action\\.networkConnectionAction\\.remoteIpDetails\\.country\\.countryName\n+ service\\.action\\.networkConnectionAction\\.remoteIpDetails\\.ipAddressV4\n+ service\\.action\\.networkConnectionAction\\.remoteIpDetails\\.organization\\.asn\n+ service\\.action\\.networkConnectionAction\\.remoteIpDetails\\.organization\\.asnOrg\n+ service\\.action\\.networkConnectionAction\\.remotePortDetails\\.port\n+ service\\.additionalInfo\\.threatListName\n+ service\\.archived", + "title": "Criterion", + "type": "object" + }, + "ItemType": { + "$ref": "#/definitions/AWS::GuardDuty::Filter.Condition", + "markdownDescription": "Specifies the condition to be applied to a single field when filtering through findings\\. \n*Required*: No \n*Type*: [Condition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-condition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ItemType" + } + }, + "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": { + "markdownDescription": "Indicates whether or not GuardDuty uses the `IPSet`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Activate", + "type": "boolean" + }, + "DetectorId": { + "markdownDescription": "The unique ID of the detector of the GuardDuty account that you want to create an IPSet for\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DetectorId", + "type": "string" + }, + "Format": { + "markdownDescription": "The format of the file that contains the IPSet\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALIEN_VAULT | FIRE_EYE | OTX_CSV | PROOF_POINT | STIX | TXT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Format", + "type": "string" + }, + "Location": { + "markdownDescription": "The URI of the file that contains the IPSet\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", + "type": "string" + }, + "Name": { + "markdownDescription": "The user\\-friendly name to identify the IPSet\\. \n Allowed characters are alphanumerics, spaces, hyphens \\(\\-\\), and underscores \\(\\_\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "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": { + "markdownDescription": "The unique ID of the detector of the GuardDuty member account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DetectorId", + "type": "string" + }, + "InvitationId": { + "markdownDescription": "The ID of the invitation that is sent to the account designated as a member account\\. You can find the invitation ID by using the ListInvitation action of the GuardDuty API\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InvitationId", + "type": "string" + }, + "MasterId": { + "markdownDescription": "The AWS account ID of the account designated as the GuardDuty administrator account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ID of the detector associated with the GuardDuty service to add the member to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DetectorId", + "type": "string" + }, + "DisableEmailNotification": { + "markdownDescription": "Specifies whether or not to disable email notification for the member account that you invite\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableEmailNotification", + "type": "boolean" + }, + "Email": { + "markdownDescription": "The email address associated with the member account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Email", + "type": "string" + }, + "MemberId": { + "markdownDescription": "The AWS account ID of the account to designate as a member\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MemberId", + "type": "string" + }, + "Message": { + "markdownDescription": "The invitation message that you want to send to the accounts that you're inviting to GuardDuty as members\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Message", + "type": "string" + }, + "Status": { + "markdownDescription": "You can use the `Status` property to update the status of the relationship between the member account and its administrator account\\. Valid values are `Created` and `Invited` when using an `AWS::GuardDuty::Member` resource\\. If the value for this property is not provided or set to `Created`, a member account is created but not invited\\. If the value of this property is set to `Invited`, a member account is created and invited\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + } + }, + "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": { + "markdownDescription": "A Boolean value that indicates whether GuardDuty is to start using the uploaded ThreatIntelSet\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Activate", + "type": "boolean" + }, + "DetectorId": { + "markdownDescription": "The unique ID of the detector of the GuardDuty account that you want to create a threatIntelSet for\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DetectorId", + "type": "string" + }, + "Format": { + "markdownDescription": "The format of the file that contains the ThreatIntelSet\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALIEN_VAULT | FIRE_EYE | OTX_CSV | PROOF_POINT | STIX | TXT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Format", + "type": "string" + }, + "Location": { + "markdownDescription": "The URI of the file that contains the ThreatIntelSet\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location", + "type": "string" + }, + "Name": { + "markdownDescription": "A user\\-friendly ThreatIntelSet name displayed in all findings that are generated by activity that involves IP addresses included in this ThreatIntelSet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "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": { + "markdownDescription": "The user generated name for the Data Store\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-%@]*)$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatastoreName", + "type": "string" + }, + "DatastoreTypeVersion": { + "markdownDescription": "The FHIR version of the Data Store\\. The only supported version is R4\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `R4` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatastoreTypeVersion", + "type": "string" + }, + "PreloadDataConfig": { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.PreloadDataConfig", + "markdownDescription": "The preloaded data configuration for the Data Store\\. Only data preloaded from Synthea is supported\\. \n*Required*: No \n*Type*: [PreloadDataConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-preloaddataconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PreloadDataConfig" + }, + "SseConfiguration": { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.SseConfiguration", + "markdownDescription": "The server\\-side encryption key configuration for a customer provided encryption key specified for creating a Data Store\\. \n*Required*: No \n*Type*: [SseConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-sseconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SseConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The type of customer\\-managed\\-key\\(CMK\\) used for encryption\\. The two types of supported CMKs are customer owned CMKs and Amazon owned CMKs\\. For more information on CMK types, see [KmsEncryptionConfig](https://docs.aws.amazon.com/healthlake/latest/APIReference/API_KmsEncryptionConfig.html#HealthLake-Type-KmsEncryptionConfig-CmkType)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CmkType", + "type": "string" + }, + "KmsKeyId": { + "markdownDescription": "The KMS encryption key id/alias used to encrypt the Data Store contents at rest\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `400` \n*Pattern*: `(arn:aws((https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/-us-gov.html)|(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/-iso.html)|(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/-iso.html-b)|(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/-cn.html))?:kms:)?([a-z]{2}-[a-z]+(-[a-z]+)?-\\d:)?(\\d{12}:)?(((key/)?[a-zA-Z0-9-_]+)|(alias/[a-zA-Z0-9:/_-]+))` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + } + }, + "required": [ + "CmkType" + ], + "type": "object" + }, + "AWS::HealthLake::FHIRDatastore.PreloadDataConfig": { + "additionalProperties": false, + "properties": { + "PreloadDataType": { + "markdownDescription": "The type of preloaded data\\. Only Synthea preloaded data is supported\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SYNTHEA` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PreloadDataType", + "type": "string" + } + }, + "required": [ + "PreloadDataType" + ], + "type": "object" + }, + "AWS::HealthLake::FHIRDatastore.SseConfiguration": { + "additionalProperties": false, + "properties": { + "KmsEncryptionConfig": { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.KmsEncryptionConfig", + "markdownDescription": "The server\\-side encryption key configuration for a customer provided encryption key \\(CMK\\)\\. \n*Required*: Yes \n*Type*: [KmsEncryptionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-kmsencryptionconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "This value is specific to CloudFormation and can only be *incremented*\\. Incrementing this value notifies CloudFormation that you want to rotate your access key\\. When you update your stack, CloudFormation will replace the existing access key with a new key\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Serial", + "type": "number" + }, + "Status": { + "markdownDescription": "The status of the access key\\. `Active` means that the key is valid for API calls, while `Inactive` means it is not\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Active | Inactive` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + }, + "UserName": { + "markdownDescription": "The name of the IAM user that the new key will belong to\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the group to create\\. Do not include the path in this value\\. \nThe group name must be unique within the account\\. Group names are not distinguished by case\\. For example, you cannot create groups named both \"ADMINS\" and \"admins\"\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the group name\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\nIf you specify a name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge your template's capabilities\\. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities)\\. \nNaming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions\\. To prevent this, we recommend using `Fn::Join` and `AWS::Region` to create a Region\\-specific name, as in the following example: `{\"Fn::Join\": [\"\", [{\"Ref\": \"AWS::Region\"}, {\"Ref\": \"MyResourceName\"}]]}`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupName", + "type": "string" + }, + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM policy you want to attach\\. \nFor more information about ARNs, see [Amazon Resource Names \\(ARNs\\)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the * AWS General Reference*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManagedPolicyArns", + "type": "array" + }, + "Path": { + "markdownDescription": "The path to the group\\. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*\\. \nThis parameter is optional\\. If it is not included, it defaults to a slash \\(/\\)\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of either a forward slash \\(/\\) by itself or a string that must begin and end with forward slashes\\. In addition, it can contain any ASCII character from the \\! \\(`\\u0021`\\) through the DEL character \\(`\\u007F`\\), including most punctuation characters, digits, and upper and lowercased letters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `(\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/AWS::IAM::Group.Policy" + }, + "markdownDescription": "Adds or updates an inline policy document that is embedded in the specified IAM group\\. To view AWS::IAM::Group snippets, see [Declaring an IAM Group Resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-iam-group)\\. \nThe name of each inline policy for a role, user, or group must be unique\\. If you don't choose unique names, updates to the IAM identity will fail\\. \nFor information about limits on the number of inline policies that you can embed in a group, see [Limitations on IAM Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: List of [Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy-2.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policies", + "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": { + "markdownDescription": "The policy document\\. \n*Required*: Yes \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `131072` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDocument", + "type": "object" + }, + "PolicyName": { + "markdownDescription": "The friendly name \\(not ARN\\) identifying the policy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the instance profile to create\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceProfileName", + "type": "string" + }, + "Path": { + "markdownDescription": "The path to the instance profile\\. For more information about paths, see [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*\\. \nThis parameter is optional\\. If it is not included, it defaults to a slash \\(/\\)\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of either a forward slash \\(/\\) by itself or a string that must begin and end with forward slashes\\. In addition, it can contain any ASCII character from the \\! \\(`\\u0021`\\) through the DEL character \\(`\\u007F`\\), including most punctuation characters, digits, and upper and lowercased letters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `(\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Path", + "type": "string" + }, + "Roles": { + "items": { + "type": "string" + }, + "markdownDescription": "The name of the role to associate with the instance profile\\. Only one role can be assigned to an EC2 instance at a time, and all applications on the instance share the same role and permissions\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Roles", + "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": { + "markdownDescription": "A friendly description of the policy\\. \nTypically used to store information about the permissions defined in the policy\\. For example, \"Grants access to production DynamoDB tables\\.\" \nThe policy description is immutable\\. After a value is assigned, it cannot be changed\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "Groups": { + "items": { + "type": "string" + }, + "markdownDescription": "The name \\(friendly name, not ARN\\) of the group to attach the policy to\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: No \n*Type*: List of String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Groups", + "type": "array" + }, + "ManagedPolicyName": { + "markdownDescription": "The friendly name of the policy\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\nIf you specify a name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge your template's capabilities\\. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities)\\. \nNaming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions\\. To prevent this, we recommend using `Fn::Join` and `AWS::Region` to create a Region\\-specific name, as in the following example: `{\"Fn::Join\": [\"\", [{\"Ref\": \"AWS::Region\"}, {\"Ref\": \"MyResourceName\"}]]}`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ManagedPolicyName", + "type": "string" + }, + "Path": { + "markdownDescription": "The path for the policy\\. \nFor more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*\\. \nThis parameter is optional\\. If it is not included, it defaults to a slash \\(/\\)\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of either a forward slash \\(/\\) by itself or a string that must begin and end with forward slashes\\. In addition, it can contain any ASCII character from the \\! \\(`\\u0021`\\) through the DEL character \\(`\\u007F`\\), including most punctuation characters, digits, and upper and lowercased letters\\. \nYou cannot use an asterisk \\(\\*\\) in the path name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `((/[A-Za-z0-9\\.,\\+@=_-]+)*)/` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Path", + "type": "string" + }, + "PolicyDocument": { + "markdownDescription": "The JSON policy document that you want to use as the content for the new policy\\. \nYou must provide policies in JSON format in IAM\\. However, for AWS CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format\\. AWS CloudFormation always converts a YAML policy to JSON format before submitting it to IAM\\. \nThe maximum length of the policy document that you can pass in this operation, including whitespace, is listed below\\. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and AWS STS character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length)\\. \nTo learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*\\. \nThe [regex pattern](http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: \n+ Any printable ASCII character ranging from the space character \\(`\\u0020`\\) through the end of the ASCII character range\n+ The printable characters in the Basic Latin and Latin\\-1 Supplement character set \\(through `\\u00FF`\\)\n+ The special characters tab \\(`\\u0009`\\), line feed \\(`\\u000A`\\), and carriage return \\(`\\u000D`\\)\n*Required*: Yes \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `131072` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDocument", + "type": "object" + }, + "Roles": { + "items": { + "type": "string" + }, + "markdownDescription": "The name \\(friendly name, not ARN\\) of the role to attach the policy to\\. \nThis parameter allows \\(per its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \nIf an external policy \\(such as `AWS::IAM::Policy` or `AWS::IAM::ManagedPolicy`\\) has a `Ref` to a role and if a resource \\(such as `AWS::ECS::Service`\\) also has a `Ref` to the same role, add a `DependsOn` attribute to the resource to make the resource depend on the external policy\\. This dependency ensures that the role's policy is available throughout the resource's lifecycle\\. For example, when you delete a stack with an `AWS::ECS::Service` resource, the `DependsOn` attribute ensures that AWS CloudFormation deletes the `AWS::ECS::Service` resource before deleting its role's policy\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Roles", + "type": "array" + }, + "Users": { + "items": { + "type": "string" + }, + "markdownDescription": "The name \\(friendly name, not ARN\\) of the IAM user to attach the policy to\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: No \n*Type*: List of String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Users", + "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" + }, + "markdownDescription": "A list of client IDs \\(also known as audiences\\) that are associated with the specified IAM OIDC provider resource object\\. For more information, see [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientIdList", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of tags that are attached to the specified IAM OIDC provider\\. The returned list of tags is sorted by tag key\\. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "ThumbprintList": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of certificate thumbprints that are associated with the specified IAM OIDC provider resource object\\. For more information, see [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html)\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThumbprintList", + "type": "array" + }, + "Url": { + "markdownDescription": "The URL that the IAM OIDC provider resource object is associated with\\. For more information, see [CreateOpenIDConnectProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateOpenIDConnectProvider.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "The name of the group to associate the policy with\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\-\\. \n*Required*: No \n*Type*: List of String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Groups", + "type": "array" + }, + "PolicyDocument": { + "markdownDescription": "The policy document\\. \nYou must provide policies in JSON format in IAM\\. However, for AWS CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format\\. AWS CloudFormation always converts a YAML policy to JSON format before submitting it to IAM\\. \nThe [regex pattern](http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: \n+ Any printable ASCII character ranging from the space character \\(`\\u0020`\\) through the end of the ASCII character range\n+ The printable characters in the Basic Latin and Latin\\-1 Supplement character set \\(through `\\u00FF`\\)\n+ The special characters tab \\(`\\u0009`\\), line feed \\(`\\u000A`\\), and carriage return \\(`\\u000D`\\)\n*Required*: Yes \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `131072` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDocument", + "type": "object" + }, + "PolicyName": { + "markdownDescription": "The name of the policy document\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyName", + "type": "string" + }, + "Roles": { + "items": { + "type": "string" + }, + "markdownDescription": "The name of the role to associate the policy with\\. \nThis parameter allows \\(per its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \nIf an external policy \\(such as `AWS::IAM::Policy` or `AWS::IAM::ManagedPolicy`\\) has a `Ref` to a role and if a resource \\(such as `AWS::ECS::Service`\\) also has a `Ref` to the same role, add a `DependsOn` attribute to the resource to make the resource depend on the external policy\\. This dependency ensures that the role's policy is available throughout the resource's lifecycle\\. For example, when you delete a stack with an `AWS::ECS::Service` resource, the `DependsOn` attribute ensures that AWS CloudFormation deletes the `AWS::ECS::Service` resource before deleting its role's policy\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Roles", + "type": "array" + }, + "Users": { + "items": { + "type": "string" + }, + "markdownDescription": "The name of the user to associate the policy with\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: No \n*Type*: List of String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Users", + "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": { + "markdownDescription": "The trust policy that is associated with this role\\. Trust policies define which entities can assume the role\\. You can associate only one trust policy with a role\\. For an example of a policy that can be used to assume a role, see [Template Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#aws-resource-iam-role--examples)\\. For more information about the elements that you can use in an IAM policy, see [IAM Policy Elements Reference](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) in the *IAM User Guide*\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssumeRolePolicyDocument", + "type": "object" + }, + "Description": { + "markdownDescription": "A description of the role that you provide\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Pattern*: `[\\p{L}\\p{M}\\p{Z}\\p{S}\\p{N}\\p{P}]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of Amazon Resource Names \\(ARNs\\) of the IAM managed policies that you want to attach to the role\\. \nFor more information about ARNs, see [Amazon Resource Names \\(ARNs\\) and AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *AWS General Reference*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManagedPolicyArns", + "type": "array" + }, + "MaxSessionDuration": { + "markdownDescription": "The maximum session duration \\(in seconds\\) that you want to set for the specified role\\. If you do not specify a value for this setting, the default maximum of one hour is applied\\. This setting can have a value from 1 hour to 12 hours\\. \nAnyone who assumes the role from the or API can use the `DurationSeconds` API parameter or the `duration-seconds` CLI parameter to request a longer session\\. The `MaxSessionDuration` setting determines the maximum duration that can be requested using the `DurationSeconds` parameter\\. If users don't specify a value for the `DurationSeconds` parameter, their security credentials are valid for one hour by default\\. This applies when you use the `AssumeRole*` API operations or the `assume-role*` CLI operations but does not apply when you use those operations to create a console URL\\. For more information, see [Using IAM roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `3600` \n*Maximum*: `43200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxSessionDuration", + "type": "number" + }, + "Path": { + "markdownDescription": "The path to the role\\. For more information about paths, see [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*\\. \nThis parameter is optional\\. If it is not included, it defaults to a slash \\(/\\)\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of either a forward slash \\(/\\) by itself or a string that must begin and end with forward slashes\\. In addition, it can contain any ASCII character from the \\! \\(`\\u0021`\\) through the DEL character \\(`\\u007F`\\), including most punctuation characters, digits, and upper and lowercased letters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `(\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Path", + "type": "string" + }, + "PermissionsBoundary": { + "markdownDescription": "The ARN of the policy used to set the permissions boundary for the role\\. \nFor more information about permissions boundaries, see [Permissions boundaries for IAM identities ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PermissionsBoundary", + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/AWS::IAM::Role.Policy" + }, + "markdownDescription": "Adds or updates an inline policy document that is embedded in the specified IAM role\\. \nWhen you embed an inline policy in a role, the inline policy is used as part of the role's access \\(permissions\\) policy\\. The role's trust policy is created at the same time as the role\\. You can update a role's trust policy later\\. For more information about IAM roles, go to [Using Roles to Delegate Permissions and Federate Identities](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html)\\. \nA role can also have an attached managed policy\\. For information about policies, see [Managed Policies and Inline Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*\\. \nFor information about limits on the number of inline policies that you can embed with a role, see [Limitations on IAM Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *IAM User Guide*\\. \nIf an external policy \\(such as `AWS::IAM::Policy` or `AWS::IAM::ManagedPolicy`\\) has a `Ref` to a role and if a resource \\(such as `AWS::ECS::Service`\\) also has a `Ref` to the same role, add a `DependsOn` attribute to the resource to make the resource depend on the external policy\\. This dependency ensures that the role's policy is available throughout the resource's lifecycle\\. For example, when you delete a stack with an `AWS::ECS::Service` resource, the `DependsOn` attribute ensures that AWS CloudFormation deletes the `AWS::ECS::Service` resource before deleting its role's policy\\.\n*Required*: No \n*Type*: List of [Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policies", + "type": "array" + }, + "RoleName": { + "markdownDescription": "A name for the IAM role, up to 64 characters in length\\. For valid values, see the `RoleName` parameter for the [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html) action in the *IAM User Guide*\\. \nThis parameter allows \\(per its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\-\\. The role name must be unique within the account\\. Role names are not distinguished by case\\. For example, you cannot create roles named both \"Role1\" and \"role1\"\\. \nIf you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the role name\\. \nIf you specify a name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge your template's capabilities\\. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities)\\. \nNaming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions\\. To prevent this, we recommend using `Fn::Join` and `AWS::Region` to create a Region\\-specific name, as in the following example: `{\"Fn::Join\": [\"\", [{\"Ref\": \"AWS::Region\"}, {\"Ref\": \"MyResourceName\"}]]}`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RoleName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of tags that are attached to the role\\. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The policy document\\. \n*Required*: Yes \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `131072` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDocument", + "type": "object" + }, + "PolicyName": { + "markdownDescription": "The friendly name \\(not ARN\\) identifying the policy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the provider to create\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w._-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "SamlMetadataDocument": { + "markdownDescription": "An XML document generated by an identity provider \\(IdP\\) that supports SAML 2\\.0\\. The document includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response \\(assertions\\) that are received from the IdP\\. You must generate the metadata document using the identity management software that is used as your organization's IdP\\. \nFor more information, see [About SAML 2\\.0\\-based federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html) in the *IAM User Guide* \n*Required*: Yes \n*Type*: String \n*Minimum*: `1000` \n*Maximum*: `10000000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SamlMetadataDocument", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of tags that you want to attach to the new IAM SAML provider\\. Each tag consists of a key name and an associated value\\. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide*\\. \nIf any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The contents of the public key certificate\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `16384` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateBody", + "type": "string" + }, + "CertificateChain": { + "markdownDescription": "The contents of the public key certificate chain\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2097152` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateChain", + "type": "string" + }, + "Path": { + "markdownDescription": "The path for the server certificate\\. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*\\. \nThis parameter is optional\\. If it is not included, it defaults to a slash \\(/\\)\\. This parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of either a forward slash \\(/\\) by itself or a string that must begin and end with forward slashes\\. In addition, it can contain any ASCII character from the \\! \\(`\\u0021`\\) through the DEL character \\(`\\u007F`\\), including most punctuation characters, digits, and upper and lowercased letters\\. \n If you are uploading a server certificate specifically for use with Amazon CloudFront distributions, you must specify a path using the `path` parameter\\. The path must begin with `/cloudfront` and must include a trailing slash \\(for example, `/cloudfront/test/`\\)\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `(\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", + "type": "string" + }, + "PrivateKey": { + "markdownDescription": "The contents of the private key in PEM\\-encoded format\\. \nThe [regex pattern](http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: \n+ Any printable ASCII character ranging from the space character \\(`\\u0020`\\) through the end of the ASCII character range\n+ The printable characters in the Basic Latin and Latin\\-1 Supplement character set \\(through `\\u00FF`\\)\n+ The special characters tab \\(`\\u0009`\\), line feed \\(`\\u000A`\\), and carriage return \\(`\\u000D`\\)\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `16384` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrivateKey", + "type": "string" + }, + "ServerCertificateName": { + "markdownDescription": "The name for the server certificate\\. Do not include the path in this value\\. The name of the certificate cannot contain any spaces\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServerCertificateName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of tags that are attached to the server certificate\\. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The service principal for the AWS service to which this role is attached\\. You use a string similar to a URL but without the http:// in front\\. For example: `elasticbeanstalk.amazonaws.com`\\. \nService principals are unique and case\\-sensitive\\. To find the exact service principal for your service\\-linked role, see [AWS services that work with IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) in the *IAM User Guide*\\. Look for the services that have **Yes **in the **Service\\-Linked Role** column\\. Choose the **Yes** link to view the service\\-linked role documentation for that service\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AWSServiceName", + "type": "string" + }, + "CustomSuffix": { + "markdownDescription": "A string that you provide, which is combined with the service\\-provided prefix to form the complete role name\\. If you make multiple requests for the same service, then you must supply a different `CustomSuffix` for each request\\. Otherwise the request fails with a duplicate role name error\\. For example, you could add `-1` or `-debug` to the suffix\\. \nSome services do not support the `CustomSuffix` parameter\\. If you provide an optional suffix and the operation fails, try the operation again without the suffix\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomSuffix", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the role\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1000` \n*Pattern*: `[\\p{L}\\p{M}\\p{Z}\\p{S}\\p{N}\\p{P}]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + } + }, + "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" + }, + "markdownDescription": "A list of group names to which you want to add the user\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Groups", + "type": "array" + }, + "LoginProfile": { + "$ref": "#/definitions/AWS::IAM::User.LoginProfile", + "markdownDescription": "Creates a password for the specified IAM user\\. A password allows an IAM user to access AWS services through the AWS Management Console\\. \nYou can use the AWS CLI, the AWS API, or the **Users** page in the IAM console to create a password for any IAM user\\. Use [ChangePassword](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html) to update your own existing password in the **My Security Credentials** page in the AWS Management Console\\. \nFor more information about managing passwords, see [Managing passwords](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: [LoginProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user-loginprofile.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoginProfile" + }, + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of Amazon Resource Names \\(ARNs\\) of the IAM managed policies that you want to attach to the user\\. \nFor more information about ARNs, see [Amazon Resource Names \\(ARNs\\) and AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *AWS General Reference*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManagedPolicyArns", + "type": "array" + }, + "Path": { + "markdownDescription": "The path for the user name\\. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*\\. \nThis parameter is optional\\. If it is not included, it defaults to a slash \\(/\\)\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of either a forward slash \\(/\\) by itself or a string that must begin and end with forward slashes\\. In addition, it can contain any ASCII character from the \\! \\(`\\u0021`\\) through the DEL character \\(`\\u007F`\\), including most punctuation characters, digits, and upper and lowercased letters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `(\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", + "type": "string" + }, + "PermissionsBoundary": { + "markdownDescription": "The ARN of the policy that is used to set the permissions boundary for the user\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PermissionsBoundary", + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/AWS::IAM::User.Policy" + }, + "markdownDescription": "Adds or updates an inline policy document that is embedded in the specified IAM user\\. To view AWS::IAM::User snippets, see [Declaring an IAM User Resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-iam-user)\\. \nThe name of each policy for a role, user, or group must be unique\\. If you don't choose unique names, updates to the IAM identity will fail\\. \nFor information about limits on the number of inline policies that you can embed in a user, see [Limitations on IAM Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: List of [Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy-1.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policies", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of tags that you want to attach to the new user\\. Each tag consists of a key name and an associated value\\. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide*\\. \nIf any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "UserName": { + "markdownDescription": "The name of the user to create\\. Do not include the path in this value\\. \nThis parameter allows \\(per its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\-\\. The user name must be unique within the account\\. User names are not distinguished by case\\. For example, you cannot create users named both \"John\" and \"john\"\\. \nIf you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the user name\\. \nIf you specify a name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge your template's capabilities\\. For more information, see [Acknowledging IAM Resources in AWS CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities)\\. \nNaming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions\\. To prevent this, we recommend using `Fn::Join` and `AWS::Region` to create a Region\\-specific name, as in the following example: `{\"Fn::Join\": [\"\", [{\"Ref\": \"AWS::Region\"}, {\"Ref\": \"MyResourceName\"}]]}`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The user's password\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", + "type": "string" + }, + "PasswordResetRequired": { + "markdownDescription": "Specifies whether the user is required to set a new password on next sign\\-in\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PasswordResetRequired", + "type": "boolean" + } + }, + "required": [ + "Password" + ], + "type": "object" + }, + "AWS::IAM::User.Policy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "markdownDescription": "The policy document\\. \n*Required*: Yes \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `131072` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDocument", + "type": "object" + }, + "PolicyName": { + "markdownDescription": "The friendly name \\(not ARN\\) identifying the policy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the group to update\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupName", + "type": "string" + }, + "Users": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of the names of the users that you want to add to the group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Users", + "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": { + "markdownDescription": "The path for the virtual MFA device\\. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*\\. \nThis parameter is optional\\. If it is not included, it defaults to a slash \\(/\\)\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of either a forward slash \\(/\\) by itself or a string that must begin and end with forward slashes\\. In addition, it can contain any ASCII character from the \\! \\(`\\u0021`\\) through the DEL character \\(`\\u007F`\\), including most punctuation characters, digits, and upper and lowercased letters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `(\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Path", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of tags that you want to attach to the new IAM virtual MFA device\\. Each tag consists of a key name and an associated value\\. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide*\\. \nIf any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Users": { + "items": { + "type": "string" + }, + "markdownDescription": "The IAM user associated with this virtual MFA device\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Users", + "type": "array" + }, + "VirtualMfaDeviceName": { + "markdownDescription": "The name of the virtual MFA device\\. Use with path to uniquely identify a virtual MFA device\\. \nThis parameter allows \\(through its [regex pattern](http://wikipedia.org/wiki/regex)\\) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces\\. You can also include any of the following characters: \\_\\+=,\\.@\\- \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Whether the channel is authorized\\. \n*Default*: `false` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Authorized", + "type": "boolean" + }, + "LatencyMode": { + "markdownDescription": "Channel latency mode\\. Valid values: \n+ `NORMAL`: Use NORMAL to broadcast and deliver live video up to Full HD\\.\n+ `LOW`: Use LOW for near real\\-time interactions with viewers\\.\nIn the Amazon IVS console, `LOW` and `NORMAL` correspond to `Ultra-low` and `Standard`, respectively\\.\n*Default*: `LOW` \n*Required*: No \n*Type*: String \n*Allowed values*: `LOW | NORMAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LatencyMode", + "type": "string" + }, + "Name": { + "markdownDescription": "Channel name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "RecordingConfigurationArn": { + "markdownDescription": "The ARN of a RecordingConfiguration resource\\. An empty string indicates that recording is disabled for the channel\\. A RecordingConfiguration ARN indicates that recording is enabled using the specified recording configuration\\. See the [ RecordingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-recordingconfiguration.html) resource for more information and an example\\. \n*Default*: \"\" \\(empty string, recording is disabled\\) \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^$|^arn:aws:ivs:[a-z0-9-]+:[0-9]+:recording-configuration/[a-zA-Z0-9-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordingConfigurationArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Type": { + "markdownDescription": "The channel type, which determines the allowable resolution and bitrate\\. *If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately\\.* Valid values: \n+ `STANDARD`: Multiple qualities are generated from the original input, to automatically give viewers the best experience for their devices and network conditions\\. Resolution can be up to 1080p and bitrate can be up to 8\\.5 Mbps\\. Audio is transcoded only for renditions 360p and below; above that, audio is passed through\\.\n+ `BASIC`: delivers the original input to viewers\\. The viewer\u2019s video\\-quality choice is limited to the original input\\. Resolution can be up to 480p and bitrate can be up to 1\\.5 Mbps\\.\n*Default*: `STANDARD` \n*Required*: No \n*Type*: String \n*Allowed values*: `BASIC | STANDARD` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "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": { + "markdownDescription": "Playback\\-key\\-pair name\\. The value does not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-_]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "PublicKeyMaterial": { + "markdownDescription": "The public portion of a customer\\-generated key pair\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PublicKeyMaterial", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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", + "markdownDescription": "A destination configuration contains information about where recorded video will be stored\\. See the [ DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-destinationconfiguration.html) property type for more information\\. \n*Required*: Yes \n*Type*: [DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-destinationconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationConfiguration" + }, + "Name": { + "markdownDescription": "Recording\\-configuration name\\. The value does not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-_]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RecordingReconnectWindowSeconds": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "ThumbnailConfiguration": { + "$ref": "#/definitions/AWS::IVS::RecordingConfiguration.ThumbnailConfiguration", + "markdownDescription": "A thumbnail configuration enables/disables the recording of thumbnails for a live session and controls the interval at which thumbnails are generated for the live session\\. See the [ThumbnailConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-thunbnailconfiguration.html) property type for more information\\. \n*Required*: No \n*Type*: [ThumbnailConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-thumbnailconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "An S3 destination configuration where recorded videos will be stored\\. See the [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-s3destinationconfiguration.html) property type for more information\\. \n*Required*: Yes \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-s3destinationconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3" + } + }, + "required": [ + "S3" + ], + "type": "object" + }, + "AWS::IVS::RecordingConfiguration.S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "markdownDescription": "Location \\(S3 bucket name\\) where recorded videos will be stored\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `^[a-z0-9-.]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketName", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "AWS::IVS::RecordingConfiguration.ThumbnailConfiguration": { + "additionalProperties": false, + "properties": { + "RecordingMode": { + "markdownDescription": "Thumbnail recording mode\\. Valid values: \n+ `DISABLED`: Use DISABLED to disable the generation of thumbnails for recorded video\\.\n+ `INTERVAL`: Use INTERVAL to enable the generation of thumbnails for recorded video at a time interval controlled by the [TargetIntervalSeconds](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-thumbnailconfiguration.html#cfn-ivs-recordingconfiguration-thumbnailconfiguration-targetintervalseconds) property\\.\n*Default*: `INTERVAL` \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | INTERVAL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RecordingMode", + "type": "string" + }, + "TargetIntervalSeconds": { + "markdownDescription": "The targeted thumbnail\\-generation interval in seconds\\. This is configurable \\(and required\\) only if [RecordingMode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-thumbnailconfiguration.html#cfn-ivs-recordingconfiguration-thumbnailconfiguration-recordingmode) is `INTERVAL`\\. \nSetting a value for `TargetIntervalSeconds` does not guarantee that thumbnails are generated at the specified interval\\. For thumbnails to be generated at the `TargetIntervalSeconds` interval, the `IDR/Keyframe` value for the input video must be less than the `TargetIntervalSeconds` value\\. See [Amazon IVS Streaming Configuration](https://docs.aws.amazon.com/ivs/latest/userguide/streaming-config.html) for information on setting `IDR/Keyframe` to the recommended value in video\\-encoder settings\\.\n*Default*: 60 \n*Valid Range*: Minumum value of 5\\. Maximum value of 60\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Channel ARN for the stream\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ChannelArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "A change description of the component\\. For example `initial version`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ChangeDescription", + "type": "string" + }, + "Data": { + "markdownDescription": "The data of the component\\. For example, `name: HelloWorldTestingDocument\\ndescription: This is hello world testing document.\\nschemaVersion: 1.0\\n\\nphases:\\n - name: test\\n steps:\\n - name: HelloWorldStep\\n action: ExecuteBash\\n inputs:\\n commands:\\n - echo \\\"Hello World! Test.\\\"\\n`\\. See Examples below for the schema for creating a component using Data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Data", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the component\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "KmsKeyId": { + "markdownDescription": "The KMS key identifier used to encrypt the component\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the component\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Platform": { + "markdownDescription": "The platform of the component\\. For example, `Windows`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Linux | Windows` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Platform", + "type": "string" + }, + "SupportedOsVersions": { + "items": { + "type": "string" + }, + "markdownDescription": "The operating system \\(OS\\) version supported by the component\\. If the OS information is available, a prefix match is performed against the base image OS version during image recipe creation\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `25` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SupportedOsVersions", + "type": "array" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "The tags associated with the component\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "type": "object" + }, + "Uri": { + "markdownDescription": "The `uri` of a YAML component document file\\. This must be an S3 URL \\(`s3://bucket/key`\\), and the requester must have permission to access the S3 bucket it points to\\. If you use Amazon S3, you can specify component content up to your service quota\\. \nAlternatively, you can specify the YAML document inline, using the component `data` property\\. You cannot specify both properties\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Uri", + "type": "string" + }, + "Version": { + "markdownDescription": "The component version\\. For example, `1.0.0`\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[0-9]+\\.[0-9]+\\.[0-9]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "Components for build and test that are included in the container recipe\\. \n*Required*: Yes \n*Type*: List of [ComponentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-componentconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Components", + "type": "array" + }, + "ContainerType": { + "markdownDescription": "Specifies the type of container, such as Docker\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DOCKER` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerType", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the container recipe\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "DockerfileTemplateData": { + "markdownDescription": "Dockerfiles are text documents that are used to build Docker containers, and ensure that they contain all of the elements required by the application running inside\\. The template data consists of contextual variables where Image Builder places build information or scripts, based on your container image recipe\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DockerfileTemplateData", + "type": "string" + }, + "DockerfileTemplateUri": { + "markdownDescription": "The S3 URI for the Dockerfile that will be used to build your container image\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DockerfileTemplateUri", + "type": "string" + }, + "ImageOsVersionOverride": { + "markdownDescription": "Specifies the operating system version for the source image\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageOsVersionOverride", + "type": "string" + }, + "InstanceConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.InstanceConfiguration", + "markdownDescription": "A group of options that can be used to configure an instance for building and testing container images\\. \n*Required*: No \n*Type*: [InstanceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-instanceconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceConfiguration" + }, + "KmsKeyId": { + "markdownDescription": "Identifies which KMS key is used to encrypt the container image for distribution to the target Region\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the container recipe\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "ParentImage": { + "markdownDescription": "The base image for the container recipe\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ParentImage", + "type": "string" + }, + "PlatformOverride": { + "markdownDescription": "Specifies the operating system platform when you use a custom source image\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlatformOverride", + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "Tags that are attached to the container recipe\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "type": "object" + }, + "TargetRepository": { + "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.TargetContainerRepository", + "markdownDescription": "The destination repository for the container image\\. \n*Required*: Yes \n*Type*: [TargetContainerRepository](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-targetcontainerrepository.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetRepository" + }, + "Version": { + "markdownDescription": "The semantic version of the container recipe\\. \nThe semantic version has four nodes: \\.\\./\\. You can assign values for the first three, and can filter on all of them\\. \n **Assignment:** For the first three nodes you can assign any positive integer value, including zero, with an upper limit of 2^30\\-1, or 1073741823 for each node\\. Image Builder automatically assigns the build number to the fourth node\\. \n **Patterns:** You can use any numeric pattern that adheres to the assignment requirements for the nodes that you can assign\\. For example, you might choose a software version pattern, such as 1\\.0\\.0, or a date, such as 2021\\.01\\.01\\. \n **Filtering:** With semantic versioning, you have the flexibility to use wildcards \\(x\\) to specify the most recent versions or nodes when selecting the base image or components for your recipe\\. When you use a wildcard in any node, all nodes to the right of the first wildcard must also be wildcards\\.\n*Required*: Yes \n*Type*: String \n*Pattern*: `^[0-9]+\\.[0-9]+\\.[0-9]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Version", + "type": "string" + }, + "WorkingDirectory": { + "markdownDescription": "The working directory for use during build and test workflows\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the component\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):component/[a-z0-9-_]+/(?:(?:([0-9]+|x)\\.([0-9]+|x)\\.([0-9]+|x))|(?:[0-9]+\\.[0-9]+\\.[0-9]+/[0-9]+))$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Use to configure delete on termination of the associated device\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeleteOnTermination", + "type": "boolean" + }, + "Encrypted": { + "markdownDescription": "Use to configure device encryption\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Encrypted", + "type": "boolean" + }, + "Iops": { + "markdownDescription": "Use to configure device IOPS\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `100` \n*Maximum*: `64000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Iops", + "type": "number" + }, + "KmsKeyId": { + "markdownDescription": "Use to configure the KMS key to use when encrypting the device\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + }, + "SnapshotId": { + "markdownDescription": "The snapshot that defines the device contents\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotId", + "type": "string" + }, + "Throughput": { + "markdownDescription": "**For GP3 volumes only** \u2013 The throughput in MiB/s that the volume supports\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `125` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Throughput", + "type": "number" + }, + "VolumeSize": { + "markdownDescription": "Use to override the device's volume size\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `16000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeSize", + "type": "number" + }, + "VolumeType": { + "markdownDescription": "Use to override the device's volume type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `gp2 | gp3 | io1 | io2 | sc1 | st1 | standard` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ContainerRecipe.InstanceBlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "markdownDescription": "The device to which these mappings apply\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceName", + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.EbsInstanceBlockDeviceSpecification", + "markdownDescription": "Use to manage Amazon EBS\\-specific configuration for this mapping\\. \n*Required*: No \n*Type*: [EbsInstanceBlockDeviceSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ebs" + }, + "NoDevice": { + "markdownDescription": "Use to remove a mapping from the base image\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `0` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NoDevice", + "type": "string" + }, + "VirtualName": { + "markdownDescription": "Use to manage instance ephemeral devices\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VirtualName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ContainerRecipe.InstanceConfiguration": { + "additionalProperties": false, + "properties": { + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.InstanceBlockDeviceMapping" + }, + "markdownDescription": "Defines the block devices to attach for building an instance from this Image Builder AMI\\. \n*Required*: No \n*Type*: List of [InstanceBlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-instanceblockdevicemapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BlockDeviceMappings", + "type": "array" + }, + "Image": { + "markdownDescription": "The AMI ID to use as the base image for a container build and test instance\\. If not specified, Image Builder will use the appropriate ECS\\-optimized AMI as a base image\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Image", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ContainerRecipe.TargetContainerRepository": { + "additionalProperties": false, + "properties": { + "RepositoryName": { + "markdownDescription": "The name of the container repository where the output container image is stored\\. This name is prefixed by the repository location\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RepositoryName", + "type": "string" + }, + "Service": { + "markdownDescription": "Specifies the service in which this image was registered\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ECR` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The description of this distribution configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Distributions": { + "items": { + "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.Distribution" + }, + "markdownDescription": "The distributions of this distribution configuration formatted as an array of Distribution objects\\. \n*Required*: Yes \n*Type*: List of [Distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Distributions", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of this distribution configuration\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "The tags of this distribution configuration\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "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", + "markdownDescription": "The specific AMI settings, such as launch permissions and AMI tags\\. For details, see example schema below\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AmiDistributionConfiguration" + }, + "ContainerDistributionConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.ContainerDistributionConfiguration", + "markdownDescription": "Container distribution settings for encryption, licensing, and sharing in a specific Region\\. For details, see example schema below\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerDistributionConfiguration" + }, + "FastLaunchConfigurations": { + "items": { + "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.FastLaunchConfiguration" + }, + "type": "array" + }, + "LaunchTemplateConfigurations": { + "items": { + "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.LaunchTemplateConfiguration" + }, + "markdownDescription": "A group of launchTemplateConfiguration settings that apply to image distribution for specified accounts\\. \n*Required*: No \n*Type*: List of [LaunchTemplateConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-launchtemplateconfiguration.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplateConfigurations", + "type": "array" + }, + "LicenseConfigurationArns": { + "items": { + "type": "string" + }, + "markdownDescription": "The License Manager Configuration to associate with the AMI in the specified Region\\. For more information, see the [ LicenseConfiguration API](https://docs.aws.amazon.com/license-manager/latest/APIReference/API_LicenseConfiguration.html)\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LicenseConfigurationArns", + "type": "array" + }, + "Region": { + "markdownDescription": "The target Region for the Distribution Configuration\\. For example, `eu-west-1`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The account ID that this configuration applies to\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountId", + "type": "string" + }, + "LaunchTemplateId": { + "markdownDescription": "Identifies the Amazon EC2 launch template to use\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^lt-[a-z0-9-_]{17}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchTemplateId", + "type": "string" + }, + "SetDefaultVersion": { + "markdownDescription": "Set the specified Amazon EC2 launch template as the default launch template for the specified account\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the container recipe that is used for this pipeline\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerRecipeArn", + "type": "string" + }, + "DistributionConfigurationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the distribution configuration\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline)/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\\.(?:x|[0-9]+)\\.(?:x|[0-9]+))(?:/[0-9]+)?)?$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DistributionConfigurationArn", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "markdownDescription": "Collects additional information about the image being created, including the operating system \\(OS\\) version and package list\\. This information is used to enhance the overall experience of using EC2 Image Builder\\. Enabled by default\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnhancedImageMetadataEnabled", + "type": "boolean" + }, + "ImageRecipeArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the image recipe\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):(?:image-recipe|container-recipe|infrastructure-configuration|distribution-configuration|component|image|image-pipeline)/[a-z0-9-_]+(?:/(?:(?:x|[0-9]+)\\.(?:x|[0-9]+)\\.(?:x|[0-9]+))(?:/[0-9]+)?)?$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageRecipeArn", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::Image.ImageScanningConfiguration" + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::Image.ImageTestsConfiguration", + "markdownDescription": "The configuration settings for your image test components, which includes a toggle that allows you to turn off tests, and a timeout setting\\. \n*Required*: No \n*Type*: [ImageTestsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-image-imagetestsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageTestsConfiguration" + }, + "InfrastructureConfigurationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the infrastructure configuration associated with this image pipeline\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InfrastructureConfigurationArn", + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "The tags of the image\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "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.EcrConfiguration": { + "additionalProperties": false, + "properties": { + "ContainerTags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::Image.ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::Image.EcrConfiguration" + }, + "ImageScanningEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::Image.ImageTestsConfiguration": { + "additionalProperties": false, + "properties": { + "ImageTestsEnabled": { + "markdownDescription": "Determines if tests should run after building the image\\. Image Builder defaults to enable tests to run following the image build, before image distribution\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageTestsEnabled", + "type": "boolean" + }, + "TimeoutMinutes": { + "markdownDescription": "The maximum time in minutes that tests are permitted to run\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `60` \n*Maximum*: `1440` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the container recipe that is used for this pipeline\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerRecipeArn", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of this image pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DistributionConfigurationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the distribution configuration associated with this image pipeline\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DistributionConfigurationArn", + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "markdownDescription": "Collects additional information about the image being created, including the operating system \\(OS\\) version and package list\\. This information is used to enhance the overall experience of using EC2 Image Builder\\. Enabled by default\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnhancedImageMetadataEnabled", + "type": "boolean" + }, + "ImageRecipeArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the image recipe associated with this image pipeline\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageRecipeArn", + "type": "string" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.ImageScanningConfiguration" + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration", + "markdownDescription": "The configuration of the image tests that run after image creation to ensure the quality of the image that was created\\. \n*Required*: No \n*Type*: [ImageTestsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagepipeline-imagetestsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageTestsConfiguration" + }, + "InfrastructureConfigurationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the infrastructure configuration associated with this image pipeline\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InfrastructureConfigurationArn", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the image pipeline\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.Schedule", + "markdownDescription": "The schedule of the image pipeline\\. A schedule configures how often and when a pipeline automatically creates a new image\\. \n*Required*: No \n*Type*: [Schedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagepipeline-schedule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule" + }, + "Status": { + "markdownDescription": "The status of the image pipeline\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "The tags of this image pipeline\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "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.EcrConfiguration": { + "additionalProperties": false, + "properties": { + "ContainerTags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImagePipeline.ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "EcrConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.EcrConfiguration" + }, + "ImageScanningEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration": { + "additionalProperties": false, + "properties": { + "ImageTestsEnabled": { + "markdownDescription": "Defines if tests should be executed when building this image\\. For example, `true` or `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageTestsEnabled", + "type": "boolean" + }, + "TimeoutMinutes": { + "markdownDescription": "The maximum time in minutes that tests are permitted to run\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `60` \n*Maximum*: `1440` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutMinutes", + "type": "number" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImagePipeline.Schedule": { + "additionalProperties": false, + "properties": { + "PipelineExecutionStartCondition": { + "markdownDescription": "The condition configures when the pipeline should trigger a new image build\\. When the `pipelineExecutionStartCondition` is set to `EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE`, and you use semantic version filters on the source image or components in your image recipe, Image Builder will build a new image only when there are new versions of the image or components in your recipe that match the semantic version filter\\. When it is set to `EXPRESSION_MATCH_ONLY`, it will build a new image every time the CRON expression matches the current time\\. For semantic version syntax, see [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html) in the * Image Builder API Reference*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE | EXPRESSION_MATCH_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PipelineExecutionStartCondition", + "type": "string" + }, + "ScheduleExpression": { + "markdownDescription": "The cron expression determines how often EC2 Image Builder evaluates your `pipelineExecutionStartCondition`\\. \nFor information on how to format a cron expression in Image Builder, see [Use cron expressions in EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-builder-cron.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Before you create a new AMI, Image Builder launches temporary Amazon EC2 instances to build and test your image configuration\\. Instance configuration adds a layer of control over those instances\\. You can define settings and add scripts to run when an instance is launched from your AMI\\. \n*Required*: No \n*Type*: [AdditionalInstanceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-additionalinstanceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdditionalInstanceConfiguration" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.InstanceBlockDeviceMapping" + }, + "markdownDescription": "The block device mappings to apply when creating images from this recipe\\. \n*Required*: No \n*Type*: List of [InstanceBlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BlockDeviceMappings", + "type": "array" + }, + "Components": { + "items": { + "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.ComponentConfiguration" + }, + "markdownDescription": "The components of the image recipe\\. Components are orchestration documents that define a sequence of steps for downloading, installing, configuring, and testing software packages\\. They also define validation and security hardening steps\\. A component is defined using a YAML document format\\. \n*Required*: Yes \n*Type*: List of [ComponentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-componentconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Components", + "type": "array" + }, + "Description": { + "markdownDescription": "The description of the image recipe\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the image recipe\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "ParentImage": { + "markdownDescription": "The parent image of the image recipe\\. The string must be either an Image ARN \\(SemVers is ok\\) or an AMI ID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ParentImage", + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "The tags of the image recipe\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "type": "object" + }, + "Version": { + "markdownDescription": "The semantic version of the image recipe\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[0-9]+\\.[0-9]+\\.[0-9]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Version", + "type": "string" + }, + "WorkingDirectory": { + "markdownDescription": "The working directory to be used during build and test workflows\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "Contains settings for the Systems Manager agent on your build instance\\. \n*Required*: No \n*Type*: [SystemsManagerAgent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-systemsmanageragent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SystemsManagerAgent" + }, + "UserDataOverride": { + "markdownDescription": "Use this property to provide commands or a command script to run when you launch your build instance\\. \nThe userDataOverride property replaces any commands that Image Builder might have added to ensure that Systems Manager is installed on your Linux build instance\\. If you override the user data, make sure that you add commands to install Systems Manager, if it is not pre\\-installed on your base image\\. \nThe user data is always base 64 encoded\\. For example, the following commands are encoded as `IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhci$`: \n *\\#\\!/bin/bash* \nmkdir \\-p /var/bb/ \ntouch /var\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `21847` \n*Pattern*: `^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserDataOverride", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImageRecipe.ComponentConfiguration": { + "additionalProperties": false, + "properties": { + "ComponentArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the component\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:aws[^:]*:imagebuilder:[^:]+:(?:[0-9]{12}|aws):component/[a-z0-9-_]+/(?:(?:([0-9]+|x)\\.([0-9]+|x)\\.([0-9]+|x))|(?:[0-9]+\\.[0-9]+\\.[0-9]+/[0-9]+))$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ComponentArn", + "type": "string" + }, + "Parameters": { + "items": { + "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.ComponentParameter" + }, + "markdownDescription": "A group of parameter settings that are used to configure the component for a specific recipe\\. \n*Required*: No \n*Type*: List of [ComponentParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-componentparameter.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Parameters", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImageRecipe.ComponentParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the component parameter to set\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[^\\x00]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Value": { + "items": { + "type": "string" + }, + "markdownDescription": "Sets the value for the named component parameter\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", + "type": "array" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::ImageBuilder::ImageRecipe.EbsInstanceBlockDeviceSpecification": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "markdownDescription": "Configures delete on termination of the associated device\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeleteOnTermination", + "type": "boolean" + }, + "Encrypted": { + "markdownDescription": "Use to configure device encryption\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Encrypted", + "type": "boolean" + }, + "Iops": { + "markdownDescription": "Use to configure device IOPS\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `100` \n*Maximum*: `64000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Iops", + "type": "number" + }, + "KmsKeyId": { + "markdownDescription": "Use to configure the KMS key to use when encrypting the device\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + }, + "SnapshotId": { + "markdownDescription": "The snapshot that defines the device contents\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotId", + "type": "string" + }, + "Throughput": { + "markdownDescription": "**For GP3 volumes only** \u2013 The throughput in MiB/s that the volume supports\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `125` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Throughput", + "type": "number" + }, + "VolumeSize": { + "markdownDescription": "Overrides the volume size of the device\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `16000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeSize", + "type": "number" + }, + "VolumeType": { + "markdownDescription": "Overrides the volume type of the device\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `gp2 | gp3 | io1 | io2 | sc1 | st1 | standard` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImageRecipe.InstanceBlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "markdownDescription": "The device to which these mappings apply\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceName", + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.EbsInstanceBlockDeviceSpecification", + "markdownDescription": "Use to manage Amazon EBS\\-specific configuration for this mapping\\. \n*Required*: No \n*Type*: [EbsInstanceBlockDeviceSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ebs" + }, + "NoDevice": { + "markdownDescription": "Enter an empty string to remove a mapping from the parent image\\. \nThe following is an example of an empty string value in the `NoDevice` field\\. \n`NoDevice:\"\"` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NoDevice", + "type": "string" + }, + "VirtualName": { + "markdownDescription": "Manages the instance ephemeral devices\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VirtualName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImageRecipe.SystemsManagerAgent": { + "additionalProperties": false, + "properties": { + "UninstallAfterBuild": { + "markdownDescription": "Controls whether the Systems Manager agent is removed from your final build image, prior to creating the new AMI\\. If this is set to true, then the agent is removed from the final image\\. If it's set to false, then the agent is left in, so that it is included in the new AMI\\. The default value is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The description of the infrastructure configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "InstanceMetadataOptions": { + "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.InstanceMetadataOptions", + "markdownDescription": "The instance metadata option settings for the infrastructure configuration\\. \n*Required*: No \n*Type*: [InstanceMetadataOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-instancemetadataoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceMetadataOptions" + }, + "InstanceProfileName": { + "markdownDescription": "The instance profile of the infrastructure configuration\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[\\w+=,.@-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceProfileName", + "type": "string" + }, + "InstanceTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The instance types of the infrastructure configuration\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceTypes", + "type": "array" + }, + "KeyPair": { + "markdownDescription": "The Amazon EC2 key pair of the infrastructure configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyPair", + "type": "string" + }, + "Logging": { + "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.Logging", + "markdownDescription": "The logging configuration defines where Image Builder uploads your logs\\. \n*Required*: No \n*Type*: [Logging](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-logging.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Logging" + }, + "Name": { + "markdownDescription": "The name of the infrastructure configuration\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "ResourceTags": { + "additionalProperties": true, + "markdownDescription": "The tags attached to the resource created by Image Builder\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "ResourceTags", + "type": "object" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The security group IDs of the infrastructure configuration\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SnsTopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the SNS topic for the infrastructure configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsTopicArn", + "type": "string" + }, + "SubnetId": { + "markdownDescription": "The subnet ID of the infrastructure configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetId", + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "The tags of the infrastructure configuration\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "type": "object" + }, + "TerminateInstanceOnFailure": { + "markdownDescription": "The terminate instance on failure configuration of the infrastructure configuration\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Limit the number of hops that an instance metadata request can traverse to reach its destination\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpPutResponseHopLimit", + "type": "number" + }, + "HttpTokens": { + "markdownDescription": "Indicates whether a signed token header is required for instance metadata retrieval requests\\. The values affect the response as follows: \n+ **required** \u2013 When you retrieve the IAM role credentials, version 2\\.0 credentials are returned in all cases\\.\n+ **optional** \u2013 You can include a signed token header in your request to retrieve instance metadata, or you can leave it out\\. If you include it, version 2\\.0 credentials are returned for the IAM role\\. Otherwise, version 1\\.0 credentials are returned\\.\nThe default setting is **optional**\\. \n*Required*: No \n*Type*: String \n*Pattern*: `optional|required` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpTokens", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::InfrastructureConfiguration.Logging": { + "additionalProperties": false, + "properties": { + "S3Logs": { + "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.S3Logs", + "markdownDescription": "The Amazon S3 logging configuration\\. \n*Required*: No \n*Type*: [S3Logs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-s3logs.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Logs" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::InfrastructureConfiguration.S3Logs": { + "additionalProperties": false, + "properties": { + "S3BucketName": { + "markdownDescription": "The S3 bucket in which to store the logs\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketName", + "type": "string" + }, + "S3KeyPrefix": { + "markdownDescription": "The Amazon S3 path to the bucket where the logs are stored\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the Amazon Inspector assessment target\\. The name must be unique within the AWS account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `140` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AssessmentTargetName", + "type": "string" + }, + "ResourceGroupArn": { + "markdownDescription": "The ARN that specifies the resource group that is used to create the assessment target\\. If `resourceGroupArn` is not specified, all EC2 instances in the current AWS account and Region are included in the assessment target\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ARN of the assessment target to be included in the assessment template\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AssessmentTargetArn", + "type": "string" + }, + "AssessmentTemplateName": { + "markdownDescription": "The user\\-defined name that identifies the assessment template that you want to create\\. You can create several assessment templates for the same assessment target\\. The names of the assessment templates that correspond to a particular assessment target must be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `140` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AssessmentTemplateName", + "type": "string" + }, + "DurationInSeconds": { + "markdownDescription": "The duration of the assessment run in seconds\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `180` \n*Maximum*: `86400` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DurationInSeconds", + "type": "number" + }, + "RulesPackageArns": { + "items": { + "type": "string" + }, + "markdownDescription": "The ARNs of the rules packages that you want to use in the assessment template\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RulesPackageArns", + "type": "array" + }, + "UserAttributesForFindings": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The user\\-defined attributes that are assigned to every finding that is generated by the assessment run that uses this assessment template\\. Within an assessment template, each key must be unique\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserAttributesForFindings", + "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" + }, + "markdownDescription": "The tags \\(key and value pairs\\) that will be associated with the resource group\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: Yes \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceGroupTags", + "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": { + "markdownDescription": "A description of the filter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "FilterAction": { + "markdownDescription": "The action that is to be applied to the findings that match the filter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterAction", + "type": "string" + }, + "FilterCriteria": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.FilterCriteria", + "markdownDescription": "Details on the filter criteria associated with this filter\\. \n*Required*: Yes \n*Type*: [FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-filtercriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterCriteria" + }, + "Name": { + "markdownDescription": "The name of the filter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A timestamp representing the end of the time period filtered on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndInclusive", + "type": "number" + }, + "StartInclusive": { + "markdownDescription": "A timestamp representing the start of the time period filtered on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartInclusive", + "type": "number" + } + }, + "type": "object" + }, + "AWS::InspectorV2::Filter.FilterCriteria": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "Details of the AWS account IDs used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsAccountId", + "type": "array" + }, + "ComponentId": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "Details of the component IDs used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentId", + "type": "array" + }, + "ComponentType": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "Details of the component types used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentType", + "type": "array" + }, + "Ec2InstanceImageId": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "Details of the Amazon EC2 instance image IDs used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ec2InstanceImageId", + "type": "array" + }, + "Ec2InstanceSubnetId": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "Details of the Amazon EC2 instance subnet IDs used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ec2InstanceSubnetId", + "type": "array" + }, + "Ec2InstanceVpcId": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "Details of the Amazon EC2 instance VPC IDs used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ec2InstanceVpcId", + "type": "array" + }, + "EcrImageArchitecture": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "Details of the Amazon ECR image architecture types used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EcrImageArchitecture", + "type": "array" + }, + "EcrImageHash": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "Details of the Amazon ECR image hashes used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EcrImageHash", + "type": "array" + }, + "EcrImagePushedAt": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.DateFilter" + }, + "markdownDescription": "Details on the Amazon ECR image push date and time used to filter findings\\. \n*Required*: No \n*Type*: List of [DateFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-datefilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EcrImagePushedAt", + "type": "array" + }, + "EcrImageRegistry": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "Details on the Amazon ECR registry used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EcrImageRegistry", + "type": "array" + }, + "EcrImageRepositoryName": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "Details on the name of the Amazon ECR repository used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EcrImageRepositoryName", + "type": "array" + }, + "EcrImageTags": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "The tags attached to the Amazon ECR container image\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EcrImageTags", + "type": "array" + }, + "FindingArn": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "Details on the finding ARNs used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FindingArn", + "type": "array" + }, + "FindingStatus": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "Details on the finding status types used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FindingStatus", + "type": "array" + }, + "FindingType": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "Details on the finding types used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FindingType", + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.DateFilter" + }, + "markdownDescription": "Details on the date and time a finding was first seen used to filter findings\\. \n*Required*: No \n*Type*: List of [DateFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-datefilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FirstObservedAt", + "type": "array" + }, + "InspectorScore": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.NumberFilter" + }, + "markdownDescription": "The Amazon Inspector score to filter on\\. \n*Required*: No \n*Type*: List of [NumberFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-numberfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InspectorScore", + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.DateFilter" + }, + "markdownDescription": "Details on the date and time a finding was last seen used to filter findings\\. \n*Required*: No \n*Type*: List of [DateFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-datefilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastObservedAt", + "type": "array" + }, + "NetworkProtocol": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "Details on the ingress source addresses used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkProtocol", + "type": "array" + }, + "PortRange": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.PortRangeFilter" + }, + "markdownDescription": "Details on the port ranges used to filter findings\\. \n*Required*: No \n*Type*: List of [PortRangeFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-portrangefilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortRange", + "type": "array" + }, + "RelatedVulnerabilities": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "Details on the related vulnerabilities used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RelatedVulnerabilities", + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "Details on the resource IDs used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceId", + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.MapFilter" + }, + "markdownDescription": "Details on the resource tags used to filter findings\\. \n*Required*: No \n*Type*: List of [MapFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-mapfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceTags", + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "Details on the resource types used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceType", + "type": "array" + }, + "Severity": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "Details on the severity used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Severity", + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "Details on the finding title used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Title", + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.DateFilter" + }, + "markdownDescription": "Details on the date and time a finding was last updated at used to filter findings\\. \n*Required*: No \n*Type*: List of [DateFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-datefilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdatedAt", + "type": "array" + }, + "VendorSeverity": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "Details on the vendor severity used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VendorSeverity", + "type": "array" + }, + "VulnerabilityId": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "Details on the vulnerability ID used to filter findings\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VulnerabilityId", + "type": "array" + }, + "VulnerabilitySource": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "markdownDescription": "Details on the vulnerability score to filter findings by\\. \n*Required*: No \n*Type*: List of [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VulnerabilitySource", + "type": "array" + }, + "VulnerablePackages": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.PackageFilter" + }, + "markdownDescription": "Details on the vulnerable packages used to filter findings\\. \n*Required*: No \n*Type*: List of [PackageFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-packagefilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VulnerablePackages", + "type": "array" + } + }, + "type": "object" + }, + "AWS::InspectorV2::Filter.MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "markdownDescription": "The operator to use when comparing values in the filter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comparison", + "type": "string" + }, + "Key": { + "markdownDescription": "The tag key used in the filter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The tag value used in the filter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Comparison" + ], + "type": "object" + }, + "AWS::InspectorV2::Filter.NumberFilter": { + "additionalProperties": false, + "properties": { + "LowerInclusive": { + "markdownDescription": "The lowest number to be included in the filter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LowerInclusive", + "type": "number" + }, + "UpperInclusive": { + "markdownDescription": "The highest number to be included in the filter\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpperInclusive", + "type": "number" + } + }, + "type": "object" + }, + "AWS::InspectorV2::Filter.PackageFilter": { + "additionalProperties": false, + "properties": { + "Architecture": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter", + "markdownDescription": "An object that contains details on the package architecture type to filter on\\. \n*Required*: No \n*Type*: [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Architecture" + }, + "Epoch": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.NumberFilter", + "markdownDescription": "An object that contains details on the package epoch to filter on\\. \n*Required*: No \n*Type*: [NumberFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-numberfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Epoch" + }, + "Name": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter", + "markdownDescription": "An object that contains details on the name of the package to filter on\\. \n*Required*: No \n*Type*: [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name" + }, + "Release": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter", + "markdownDescription": "An object that contains details on the package release to filter on\\. \n*Required*: No \n*Type*: [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Release" + }, + "SourceLayerHash": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter", + "markdownDescription": "An object that contains details on the source layer hash to filter on\\. \n*Required*: No \n*Type*: [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceLayerHash" + }, + "Version": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter", + "markdownDescription": "The package version to filter on\\. \n*Required*: No \n*Type*: [StringFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-filter-stringfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version" + } + }, + "type": "object" + }, + "AWS::InspectorV2::Filter.PortRangeFilter": { + "additionalProperties": false, + "properties": { + "BeginInclusive": { + "markdownDescription": "The port number the port range begins at\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BeginInclusive", + "type": "number" + }, + "EndInclusive": { + "markdownDescription": "The port number the port range ends at\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndInclusive", + "type": "number" + } + }, + "type": "object" + }, + "AWS::InspectorV2::Filter.StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "markdownDescription": "The operator to use when comparing values in the filter \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comparison", + "type": "string" + }, + "Value": { + "markdownDescription": "The value to filter on\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ID of the device, such as `G030PX0312744DWM`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceId", + "type": "string" + }, + "Enabled": { + "markdownDescription": "A Boolean value indicating whether the device is enabled \\(`true`\\) or not \\(`false`\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The devices to associate with the placement, as defined by a mapping of zero or more key\\-value pairs wherein the key is a template name and the value is a device ID\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AssociatedDevices", + "type": "object" + }, + "Attributes": { + "markdownDescription": "The user\\-defined attributes associated with the placement\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attributes", + "type": "object" + }, + "PlacementName": { + "markdownDescription": "The name of the placement\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlacementName", + "type": "string" + }, + "ProjectName": { + "markdownDescription": "The name of the project containing the placement\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The description of the project\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "PlacementTemplate": { + "$ref": "#/definitions/AWS::IoT1Click::Project.PlacementTemplate", + "markdownDescription": "An object describing the project's placement specifications\\. \n*Required*: Yes \n*Type*: [PlacementTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot1click-project-placementtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlacementTemplate" + }, + "ProjectName": { + "markdownDescription": "The name of the project from which to obtain information\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "An optional AWS Lambda function to invoke instead of the default AWS Lambda function provided by the placement template\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CallbackOverrides", + "type": "object" + }, + "DeviceType": { + "markdownDescription": "The device type, which currently must be `\"button\"`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT1Click::Project.PlacementTemplate": { + "additionalProperties": false, + "properties": { + "DefaultAttributes": { + "markdownDescription": "The default attributes \\(key\\-value pairs\\) to be applied to all placements using this template\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultAttributes", + "type": "object" + }, + "DeviceTemplates": { + "markdownDescription": "An object specifying the [DeviceTemplate](https://docs.aws.amazon.com/iot-1-click/latest/projects-apireference/API_DeviceTemplate.html) for all placements using this \\([PlacementTemplate](https://docs.aws.amazon.com/iot-1-click/latest/projects-apireference/API_PlacementTemplate.html)\\) template\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ID of the account\\. You can use the expression `!Sub \"${AWS::AccountId}\"` to use your account ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccountId", + "type": "string" + }, + "AuditCheckConfigurations": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfigurations", + "markdownDescription": "Specifies which audit checks are enabled and disabled for this account\\. \nSome data collection might start immediately when certain checks are enabled\\. When a check is disabled, any data collected so far in relation to the check is deleted\\. To disable a check, set the value of the `Enabled:` key to `false`\\. \nIf an enabled check is removed from the template, it will also be disabled\\. \nYou can't disable a check if it's used by any scheduled audit\\. You must delete the check from the scheduled audit or delete the scheduled audit itself to disable the check\\. \nFor more information on avialbe auidt checks see [AWS::IoT::AccountAuditConfiguration AuditCheckConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html) \n*Required*: Yes \n*Type*: [AuditCheckConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuditCheckConfigurations" + }, + "AuditNotificationTargetConfigurations": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditNotificationTargetConfigurations", + "markdownDescription": "Information about the targets to which audit notifications are sent\\. \n*Required*: No \n*Type*: [AuditNotificationTargetConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditnotificationtargetconfigurations.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuditNotificationTargetConfigurations" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that grants permission to AWS IoT to access information about your devices, policies, certificates, and other items as required when performing an audit\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "True if this audit check is enabled for this account\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditCheckConfigurations": { + "additionalProperties": false, + "properties": { + "AuthenticatedCognitoRoleOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks the permissiveness of an authenticated Amazon Cognito identity pool role\\. For this check, AWS IoT Device Defender audits all Amazon Cognito identity pools that have been used to connect to the AWS IoT message broker during the 31 days before the audit is performed\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticatedCognitoRoleOverlyPermissiveCheck" + }, + "CaCertificateExpiringCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks if a CA certificate is expiring\\. This check applies to CA certificates expiring within 30 days or that have expired\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaCertificateExpiringCheck" + }, + "CaCertificateKeyQualityCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks the quality of the CA certificate key\\. The quality checks if the key is in a valid format, not expired, and if the key meets a minimum required size\\. This check applies to CA certificates that are `ACTIVE` or `PENDING_TRANSFER`\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaCertificateKeyQualityCheck" + }, + "ConflictingClientIdsCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks if multiple devices connect using the same client ID\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConflictingClientIdsCheck" + }, + "DeviceCertificateExpiringCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks if a device certificate is expiring\\. This check applies to device certificates expiring within 30 days or that have expired\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceCertificateExpiringCheck" + }, + "DeviceCertificateKeyQualityCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks the quality of the device certificate key\\. The quality checks if the key is in a valid format, not expired, signed by a registered certificate authority, and if the key meets a minimum required size\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceCertificateKeyQualityCheck" + }, + "DeviceCertificateSharedCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks if multiple concurrent connections use the same X\\.509 certificate to authenticate with AWS IoT\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceCertificateSharedCheck" + }, + "IntermediateCaRevokedForActiveDeviceCertificatesCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "IoTPolicyPotentialMisConfigurationCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "IotPolicyOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks the permissiveness of a policy attached to an authenticated Amazon Cognito identity pool role\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotPolicyOverlyPermissiveCheck" + }, + "IotRoleAliasAllowsAccessToUnusedServicesCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks if a role alias has access to services that haven't been used for the AWS IoT device in the last year\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotRoleAliasAllowsAccessToUnusedServicesCheck" + }, + "IotRoleAliasOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks if the temporary credentials provided by AWS IoT role aliases are overly permissive\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotRoleAliasOverlyPermissiveCheck" + }, + "LoggingDisabledCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks if AWS IoT logs are disabled\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingDisabledCheck" + }, + "RevokedCaCertificateStillActiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks if a revoked CA certificate is still active\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RevokedCaCertificateStillActiveCheck" + }, + "RevokedDeviceCertificateStillActiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks if a revoked device certificate is still active\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RevokedDeviceCertificateStillActiveCheck" + }, + "UnauthenticatedCognitoRoleOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration", + "markdownDescription": "Checks if policy attached to an unauthenticated Amazon Cognito identity pool role is too permissive\\. \n*Required*: No \n*Type*: [AuditCheckConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnauthenticatedCognitoRoleOverlyPermissiveCheck" + } + }, + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditNotificationTarget": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "True if notifications to the target are enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "RoleArn": { + "markdownDescription": "The ARN of the role that grants permission to send notifications to the target\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "TargetArn": { + "markdownDescription": "The ARN of the target \\(SNS topic\\) to which audit notifications are sent\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditNotificationTargetConfigurations": { + "additionalProperties": false, + "properties": { + "Sns": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditNotificationTarget", + "markdownDescription": "The `Sns` notification target\\. \n*Required*: No \n*Type*: [AuditNotificationTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditnotificationtarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sns" + } + }, + "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": { + "markdownDescription": "The authorizer's Lambda function ARN\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerFunctionArn", + "type": "string" + }, + "AuthorizerName": { + "markdownDescription": "The authorizer name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthorizerName", + "type": "string" + }, + "EnableCachingForHttp": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableCachingForHttp", + "type": "boolean" + }, + "SigningDisabled": { + "markdownDescription": "Specifies whether AWS IoT validates the token signature in an authorization request\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SigningDisabled", + "type": "boolean" + }, + "Status": { + "markdownDescription": "The status of the authorizer\\. \nValid values: `ACTIVE` \\| `INACTIVE` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Metadata which can be used to manage the custom authorizer\\. \nFor URI Request parameters use format: \\.\\.\\.key1=value1&key2=value2\\.\\.\\. \nFor the CLI command\\-line parameter use format: &&tags \"key1=value1&key2=value2\\.\\.\\.\" \nFor the cli\\-input\\-json file use format: \"tags\": \"key1=value1&key2=value2\\.\\.\\.\"\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TokenKeyName": { + "markdownDescription": "The key used to extract the token from the HTTP headers\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenKeyName", + "type": "string" + }, + "TokenSigningPublicKeys": { + "additionalProperties": true, + "markdownDescription": "The public keys used to validate the token signature returned by your custom authentication service\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "TokenSigningPublicKeys", + "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": { + "markdownDescription": "The CA certificate used to sign the device certificate being registered, not available when CertificateMode is SNI\\_ONLY\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CACertificatePem", + "type": "string" + }, + "CertificateMode": { + "markdownDescription": "Specifies which mode of certificate registration to use with this resource\\. Valid options are DEFAULT with CaCertificatePem and CertificatePem, SNI\\_ONLY with CertificatePem, and Default with CertificateSigningRequest\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateMode", + "type": "string" + }, + "CertificatePem": { + "markdownDescription": "The certificate data in PEM format\\. Requires SNI\\_ONLY for the certificate mode or the accompanying CACertificatePem for registration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificatePem", + "type": "string" + }, + "CertificateSigningRequest": { + "markdownDescription": "The certificate signing request \\(CSR\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateSigningRequest", + "type": "string" + }, + "Status": { + "markdownDescription": "The status of the certificate\\. \nValid values are ACTIVE, INACTIVE, REVOKED, PENDING\\_TRANSFER, and PENDING\\_ACTIVATION\\. \nThe status value REGISTER\\_INACTIVE is deprecated and should not be used\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The friendly name in the console for the custom metric\\. This name doesn't have to be unique\\. Don't use this name as the metric identifier in the device metric report\\. You can update the friendly name after you define it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", + "type": "string" + }, + "MetricName": { + "markdownDescription": "The name of the custom metric\\. This will be used in the metric report submitted from the device/thing\\. The name can't begin with `aws:`\\. You can\u2019t change the name after you define it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricName", + "type": "string" + }, + "MetricType": { + "markdownDescription": "The type of the custom metric\\. Types include `string-list`, `ip-address-list`, `number-list`, and `number`\\. \nThe type `number` only takes a single metric value as an input, but when you submit the metrics value in the DeviceMetrics report, you must pass it as an array with a single value\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricType", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Metadata that can be used to manage the custom metric\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "A unique identifier for the dimension\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "StringValues": { + "items": { + "type": "string" + }, + "markdownDescription": "Specifies the value or list of values for the dimension\\. For `TOPIC_FILTER` dimensions, this is a pattern used to match the MQTT topic \\(for example, \"admin/\\#\"\\)\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StringValues", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Metadata that can be used to manage the dimension\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Type": { + "markdownDescription": "Specifies the type of dimension\\. Supported types: `TOPIC_FILTER.` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "An object that specifies the authorization service for a domain\\. \n*Required*: No \n*Type*: [AuthorizerConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-authorizerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthorizerConfig" + }, + "DomainConfigurationName": { + "markdownDescription": "The name of the domain configuration\\. This value must be unique to a region\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainConfigurationName", + "type": "string" + }, + "DomainConfigurationStatus": { + "markdownDescription": "The status to which the domain configuration should be updated\\. \nValid values: `ENABLED` \\| `DISABLED` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainConfigurationStatus", + "type": "string" + }, + "DomainName": { + "markdownDescription": "The name of the domain\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", + "type": "string" + }, + "ServerCertificateArns": { + "items": { + "type": "string" + }, + "markdownDescription": "The ARNs of the certificates that AWS IoT passes to the device during the TLS handshake\\. Currently you can specify only one certificate ARN\\. This value is not required for AWS\\-managed domains\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServerCertificateArns", + "type": "array" + }, + "ServiceType": { + "markdownDescription": "The type of service delivered by the endpoint\\. \n AWS IoT Core currently supports only the `DATA` service type\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceType", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Metadata which can be used to manage the domain configuration\\. \nFor URI Request parameters use format: \\.\\.\\.key1=value1&key2=value2\\.\\.\\. \nFor the CLI command\\-line parameter use format: &&tags \"key1=value1&key2=value2\\.\\.\\.\" \nFor the cli\\-input\\-json file use format: \"tags\": \"key1=value1&key2=value2\\.\\.\\.\"\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "ValidationCertificateArn": { + "markdownDescription": "The certificate used to validate the server certificate and prove domain name ownership\\. This certificate must be signed by a public certificate authority\\. This value is not required for AWS\\-managed domains\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A Boolean that specifies whether the domain configuration's authorization service can be overridden\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowAuthorizerOverride", + "type": "boolean" + }, + "DefaultAuthorizerName": { + "markdownDescription": "The name of the authorization service for a domain configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultAuthorizerName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::DomainConfiguration.ServerCertificateSummary": { + "additionalProperties": false, + "properties": { + "ServerCertificateArn": { + "markdownDescription": "The ARN of the server certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerCertificateArn", + "type": "string" + }, + "ServerCertificateStatus": { + "markdownDescription": "The status of the server certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerCertificateStatus", + "type": "string" + }, + "ServerCertificateStatusDetail": { + "markdownDescription": "Details that explain the status of the server certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The field to aggregate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AggregationField", + "type": "string" + }, + "AggregationType": { + "$ref": "#/definitions/AWS::IoT::FleetMetric.AggregationType", + "markdownDescription": "The type of the aggregation query\\. \n*Required*: No \n*Type*: [AggregationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-fleetmetric-aggregationtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AggregationType" + }, + "Description": { + "markdownDescription": "The fleet metric description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "IndexName": { + "markdownDescription": "The name of the index to search\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IndexName", + "type": "string" + }, + "MetricName": { + "markdownDescription": "The name of the fleet metric to create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricName", + "type": "string" + }, + "Period": { + "markdownDescription": "The time in seconds between fleet metric emissions\\. Range \\[60\\(1 min\\), 86400\\(1 day\\)\\] and must be multiple of 60\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Period", + "type": "number" + }, + "QueryString": { + "markdownDescription": "The search query string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryString", + "type": "string" + }, + "QueryVersion": { + "markdownDescription": "The query version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryVersion", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Metadata which can be used to manage the fleet metric\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Unit": { + "markdownDescription": "Used to support unit transformation such as milliseconds to seconds\\. Must be a unit supported by CW metric\\. Default to null\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the aggregation type\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of the values of aggregation types\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "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", + "markdownDescription": "The criteria that determine when and how a job abort takes place\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AbortConfig" + }, + "Description": { + "markdownDescription": "A description of the job template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "Document": { + "markdownDescription": "The job document\\. \nRequired if you don't specify a value for `documentSource`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Document", + "type": "string" + }, + "DocumentSource": { + "markdownDescription": "An S3 link to the job document to use in the template\\. Required if you don't specify a value for `document`\\. \nIf the job document resides in an S3 bucket, you must use a placeholder link when specifying the document\\. \nThe placeholder link is of the following form: \n `${aws:iot:s3-presigned-url:https://s3.amazonaws.com/bucket/key}` \nwhere *bucket* is your bucket name and *key* is the object in the bucket to which you are linking\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DocumentSource", + "type": "string" + }, + "JobArn": { + "markdownDescription": "The ARN of the job to use as the basis for the job template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "JobArn", + "type": "string" + }, + "JobExecutionsRetryConfig": { + "$ref": "#/definitions/AWS::IoT::JobTemplate.JobExecutionsRetryConfig", + "markdownDescription": "Allows you to create the criteria to retry a job\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobExecutionsRetryConfig" + }, + "JobExecutionsRolloutConfig": { + "$ref": "#/definitions/AWS::IoT::JobTemplate.JobExecutionsRolloutConfig", + "markdownDescription": "Allows you to create a staged rollout of a job\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "JobExecutionsRolloutConfig" + }, + "JobTemplateId": { + "markdownDescription": "A unique identifier for the job template\\. We recommend using a UUID\\. Alpha\\-numeric characters, \"\\-\", and \"\\_\" are valid for use here\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "JobTemplateId", + "type": "string" + }, + "PresignedUrlConfig": { + "$ref": "#/definitions/AWS::IoT::JobTemplate.PresignedUrlConfig", + "markdownDescription": "Configuration for pre\\-signed S3 URLs\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PresignedUrlConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Metadata that can be used to manage the job template\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "type": "array" + }, + "TimeoutConfig": { + "$ref": "#/definitions/AWS::IoT::JobTemplate.TimeoutConfig", + "markdownDescription": "Specifies the amount of time each device has to finish its execution of the job\\. A timer is started when the job execution status is set to `IN_PROGRESS`\\. If the job execution status is not set to another terminal state before the timer expires, it will be automatically set to `TIMED_OUT`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The account ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccountId", + "type": "string" + }, + "DefaultLogLevel": { + "markdownDescription": "The default log level\\.Valid Values: `DEBUG | INFO | ERROR | WARN | DISABLED` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultLogLevel", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The role ARN used for the log\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The friendly name of the mitigation action\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ActionName", + "type": "string" + }, + "ActionParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.ActionParams", + "markdownDescription": "The set of parameters for this mitigation action\\. The parameters vary, depending on the kind of action you apply\\. \n*Required*: Yes \n*Type*: [ActionParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-actionparams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionParams" + }, + "RoleArn": { + "markdownDescription": "The IAM role ARN used to apply this mitigation action\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Metadata that can be used to manage the mitigation action\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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", + "markdownDescription": "Specifies the group to which you want to add the devices\\. \n*Required*: No \n*Type*: [AddThingsToThingGroupParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-addthingstothinggroupparams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddThingsToThingGroupParams" + }, + "EnableIoTLoggingParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.EnableIoTLoggingParams", + "markdownDescription": "Specifies the logging level and the role with permissions for logging\\. You cannot specify a logging level of `DISABLED`\\. \n*Required*: No \n*Type*: [EnableIoTLoggingParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-enableiotloggingparams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableIoTLoggingParams" + }, + "PublishFindingToSnsParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.PublishFindingToSnsParams", + "markdownDescription": "Specifies the topic to which the finding should be published\\. \n*Required*: No \n*Type*: [PublishFindingToSnsParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-publishfindingtosnsparams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublishFindingToSnsParams" + }, + "ReplaceDefaultPolicyVersionParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams", + "markdownDescription": "Replaces the policy version with a default or blank policy\\. You specify the template name\\. Only a value of `BLANK_POLICY` is currently supported\\. \n*Required*: No \n*Type*: [ReplaceDefaultPolicyVersionParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-replacedefaultpolicyversionparams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplaceDefaultPolicyVersionParams" + }, + "UpdateCACertificateParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateCACertificateParams", + "markdownDescription": "Specifies the new state for the CA certificate\\. Only a value of `DEACTIVATE` is currently supported\\. \n*Required*: No \n*Type*: [UpdateCACertificateParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-updatecacertificateparams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdateCACertificateParams" + }, + "UpdateDeviceCertificateParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateDeviceCertificateParams", + "markdownDescription": "Specifies the new state for a device certificate\\. Only a value of `DEACTIVATE` is currently supported\\. \n*Required*: No \n*Type*: [UpdateDeviceCertificateParams](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-updatedevicecertificateparams.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdateDeviceCertificateParams" + } + }, + "type": "object" + }, + "AWS::IoT::MitigationAction.AddThingsToThingGroupParams": { + "additionalProperties": false, + "properties": { + "OverrideDynamicGroups": { + "markdownDescription": "Specifies if this mitigation action can move the things that triggered the mitigation action even if they are part of one or more dynamic thing groups\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OverrideDynamicGroups", + "type": "boolean" + }, + "ThingGroupNames": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of groups to which you want to add the things that triggered the mitigation action\\. You can add a thing to a maximum of 10 groups, but you can't add a thing to more than one group in the same hierarchy\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThingGroupNames", + "type": "array" + } + }, + "required": [ + "ThingGroupNames" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.EnableIoTLoggingParams": { + "additionalProperties": false, + "properties": { + "LogLevel": { + "markdownDescription": "Specifies the type of information to be logged\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogLevel", + "type": "string" + }, + "RoleArnForLogging": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role used for logging\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArnForLogging", + "type": "string" + } + }, + "required": [ + "LogLevel", + "RoleArnForLogging" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.PublishFindingToSnsParams": { + "additionalProperties": false, + "properties": { + "TopicArn": { + "markdownDescription": "The ARN of the topic to which you want to publish the findings\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TopicArn", + "type": "string" + } + }, + "required": [ + "TopicArn" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams": { + "additionalProperties": false, + "properties": { + "TemplateName": { + "markdownDescription": "The name of the template to be applied\\. The only supported value is `BLANK_POLICY`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateName", + "type": "string" + } + }, + "required": [ + "TemplateName" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.UpdateCACertificateParams": { + "additionalProperties": false, + "properties": { + "Action": { + "markdownDescription": "The action that you want to apply to the CA certificate\\. The only supported value is `DEACTIVATE`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.UpdateDeviceCertificateParams": { + "additionalProperties": false, + "properties": { + "Action": { + "markdownDescription": "The action that you want to apply to the device certificate\\. The only supported value is `DEACTIVATE`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The JSON document that describes the policy\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PolicyDocument", + "type": "object" + }, + "PolicyName": { + "markdownDescription": "The policy name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the AWS IoT policy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PolicyName", + "type": "string" + }, + "Principal": { + "markdownDescription": "The principal, which can be a certificate ARN \\(as returned from the `CreateCertificate` operation\\) or an Amazon Cognito ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The description of the fleet provisioning template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Enabled": { + "markdownDescription": "True to enable the fleet provisioning template, otherwise false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "PreProvisioningHook": { + "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate.ProvisioningHook", + "markdownDescription": "Creates a pre\\-provisioning hook template\\. \n*Required*: No \n*Type*: [ProvisioningHook](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-provisioningtemplate-provisioninghook.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreProvisioningHook" + }, + "ProvisioningRoleArn": { + "markdownDescription": "The role ARN for the role associated with the fleet provisioning template\\. This IoT role grants permission to provision a device\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisioningRoleArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Metadata that can be used to manage the fleet provisioning template\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TemplateBody": { + "markdownDescription": "The JSON formatted contents of the fleet provisioning template version\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateBody", + "type": "string" + }, + "TemplateName": { + "markdownDescription": "The name of the fleet provisioning template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The payload that was sent to the target function\\. The valid payload is `\"2020-04-01\"`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PayloadVersion", + "type": "string" + }, + "TargetArn": { + "markdownDescription": "The ARN of the target function\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The default log level\\.Valid Values: `DEBUG | INFO | ERROR | WARN | DISABLED` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogLevel", + "type": "string" + }, + "TargetName": { + "markdownDescription": "The target name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetName", + "type": "string" + }, + "TargetType": { + "markdownDescription": "The target type\\. Valid Values: `DEFAULT | THING_GROUP` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The day of the month on which the scheduled audit is run \\(if the `frequency` is \"MONTHLY\"\\)\\. If days 29\\-31 are specified, and the month does not have that many days, the audit takes place on the \"LAST\" day of the month\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DayOfMonth", + "type": "string" + }, + "DayOfWeek": { + "markdownDescription": "The day of the week on which the scheduled audit is run \\(if the `frequency` is \"WEEKLY\" or \"BIWEEKLY\"\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DayOfWeek", + "type": "string" + }, + "Frequency": { + "markdownDescription": "How often the scheduled audit occurs\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Frequency", + "type": "string" + }, + "ScheduledAuditName": { + "markdownDescription": "The name of the scheduled audit\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScheduledAuditName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Metadata that can be used to manage the scheduled audit\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TargetCheckNames": { + "items": { + "type": "string" + }, + "markdownDescription": "Which checks are performed during the scheduled audit\\. Checks must be enabled for your account\\. \\(Use `DescribeAccountAuditConfiguration` to see the list of all checks, including those that are enabled or use `UpdateAccountAuditConfiguration` to select which checks are enabled\\.\\) \n The following checks are currently aviable: \n+ `AUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK`\n+ `CA_CERTIFICATE_EXPIRING_CHECK`\n+ `CA_CERTIFICATE_KEY_QUALITY_CHECK`\n+ `CONFLICTING_CLIENT_IDS_CHECK`\n+ `DEVICE_CERTIFICATE_EXPIRING_CHECK`\n+ `DEVICE_CERTIFICATE_KEY_QUALITY_CHECK`\n+ `DEVICE_CERTIFICATE_SHARED_CHECK`\n+ `IOT_POLICY_OVERLY_PERMISSIVE_CHECK`\n+ `IOT_ROLE_ALIAS_ALLOWS_ACCESS_TO_UNUSED_SERVICES_CHECK`\n+ `IOT_ROLE_ALIAS_OVERLY_PERMISSIVE_CHECK`\n+ `LOGGING_DISABLED_CHECK`\n+ `REVOKED_CA_CERTIFICATE_STILL_ACTIVE_CHECK`\n+ `REVOKED_DEVICE_CERTIFICATE_STILL_ACTIVE_CHECK`\n+ `UNAUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK`\n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetCheckNames", + "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" + }, + "markdownDescription": "A list of metrics whose data is retained \\(stored\\)\\. By default, data is retained for any metric used in the profile's `behaviors`, but it's also retained for any metric specified here\\. Can be used with custom metrics; can't be used with dimensions\\. \n*Required*: No \n*Type*: List of [MetricToRetain](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metrictoretain.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdditionalMetricsToRetainV2", + "type": "array" + }, + "AlertTargets": { + "additionalProperties": false, + "markdownDescription": "Specifies the destinations to which alerts are sent\\. \\(Alerts are always sent to the console\\.\\) Alerts are generated when a device \\(thing\\) violates a behavior\\. \n*Required*: No \n*Type*: Map of [AlertTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-alerttarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.AlertTarget" + } + }, + "title": "AlertTargets", + "type": "object" + }, + "Behaviors": { + "items": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.Behavior" + }, + "markdownDescription": "Specifies the behaviors that, when violated by a device \\(thing\\), cause an alert\\. \n*Required*: No \n*Type*: List of [Behavior](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behavior.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Behaviors", + "type": "array" + }, + "SecurityProfileDescription": { + "markdownDescription": "A description of the security profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityProfileDescription", + "type": "string" + }, + "SecurityProfileName": { + "markdownDescription": "The name you gave to the security profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityProfileName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Metadata that can be used to manage the security profile\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TargetArns": { + "items": { + "type": "string" + }, + "markdownDescription": "The ARN of the target \\(thing group\\) to which the security profile is attached\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetArns", + "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the notification target to which alerts are sent\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlertTargetArn", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the role that grants permission to send alerts to the notification target\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + } + }, + "required": [ + "AlertTargetArn", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.Behavior": { + "additionalProperties": false, + "properties": { + "Criteria": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.BehaviorCriteria", + "markdownDescription": "The criteria that determine if a device is behaving normally in regard to the `metric`\\. \n*Required*: No \n*Type*: [BehaviorCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behaviorcriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Criteria" + }, + "Metric": { + "markdownDescription": "What is measured by the behavior\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metric", + "type": "string" + }, + "MetricDimension": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricDimension", + "markdownDescription": "The dimension of the metric\\. \n*Required*: No \n*Type*: [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricDimension" + }, + "Name": { + "markdownDescription": "The name you've given to the behavior\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "SuppressAlerts": { + "markdownDescription": "The alert status\\. If you set the value to `true`, alerts will be suppressed\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuppressAlerts", + "type": "boolean" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.BehaviorCriteria": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "markdownDescription": "The operator that relates the thing measured \\(`metric`\\) to the criteria \\(containing a `value` or `statisticalThreshold`\\)\\. Valid operators include: \n+ `string-list`: `in-set` and `not-in-set` \n+ `number-list`: `in-set` and `not-in-set` \n+ `ip-address-list`: `in-cidr-set` and `not-in-cidr-set` \n+ `number`: `less-than`, `less-than-equals`, `greater-than`, and `greater-than-equals` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComparisonOperator", + "type": "string" + }, + "ConsecutiveDatapointsToAlarm": { + "markdownDescription": "If a device is in violation of the behavior for the specified number of consecutive datapoints, an alarm occurs\\. If not specified, the default is 1\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConsecutiveDatapointsToAlarm", + "type": "number" + }, + "ConsecutiveDatapointsToClear": { + "markdownDescription": "If an alarm has occurred and the offending device is no longer in violation of the behavior for the specified number of consecutive datapoints, the alarm is cleared\\. If not specified, the default is 1\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConsecutiveDatapointsToClear", + "type": "number" + }, + "DurationSeconds": { + "markdownDescription": "Use this to specify the time duration over which the behavior is evaluated, for those criteria that have a time dimension \\(for example, `NUM_MESSAGES_SENT`\\)\\. For a `statisticalThreshhold` metric comparison, measurements from all devices are accumulated over this time duration before being used to calculate percentiles, and later, measurements from an individual device are also accumulated over this time duration before being given a percentile rank\\. Cannot be used with list\\-based metric datatypes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DurationSeconds", + "type": "number" + }, + "MlDetectionConfig": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MachineLearningDetectionConfig", + "markdownDescription": "The confidence level of the detection model\\. \n*Required*: No \n*Type*: [MachineLearningDetectionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-machinelearningdetectionconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MlDetectionConfig" + }, + "StatisticalThreshold": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.StatisticalThreshold", + "markdownDescription": "A statistical ranking \\(percentile\\)that indicates a threshold value by which a behavior is determined to be in compliance or in violation of the behavior\\. \n*Required*: No \n*Type*: [StatisticalThreshold](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-statisticalthreshold.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatisticalThreshold" + }, + "Value": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricValue", + "markdownDescription": "The value to be compared with the `metric`\\. \n*Required*: No \n*Type*: [MetricValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value" + } + }, + "type": "object" + }, + "AWS::IoT::SecurityProfile.MachineLearningDetectionConfig": { + "additionalProperties": false, + "properties": { + "ConfidenceLevel": { + "markdownDescription": "The model confidence level\\. \nThere are three levels of confidence, `\"high\"`, `\"medium\"`, and `\"low\"`\\. \nThe higher the confidence level, the lower the sensitivity, and the lower the alarm frequency will be\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfidenceLevel", + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::SecurityProfile.MetricDimension": { + "additionalProperties": false, + "properties": { + "DimensionName": { + "markdownDescription": "The name of the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DimensionName", + "type": "string" + }, + "Operator": { + "markdownDescription": "Operators are constructs that perform logical operations\\. Valid values are `IN` and `NOT_IN`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Operator", + "type": "string" + } + }, + "required": [ + "DimensionName" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.MetricToRetain": { + "additionalProperties": false, + "properties": { + "Metric": { + "markdownDescription": "A standard of measurement\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metric", + "type": "string" + }, + "MetricDimension": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricDimension", + "markdownDescription": "The dimension of the metric\\. \n*Required*: No \n*Type*: [MetricDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricDimension" + } + }, + "required": [ + "Metric" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.MetricValue": { + "additionalProperties": false, + "properties": { + "Cidrs": { + "items": { + "type": "string" + }, + "markdownDescription": "If the `comparisonOperator` calls for a set of CIDRs, use this to specify that set to be compared with the `metric`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cidrs", + "type": "array" + }, + "Count": { + "markdownDescription": "If the `comparisonOperator` calls for a numeric value, use this to specify that numeric value to be compared with the `metric`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count", + "type": "string" + }, + "Number": { + "markdownDescription": "The numeric values of a metric\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Number", + "type": "number" + }, + "Numbers": { + "items": { + "type": "number" + }, + "markdownDescription": "The numeric value of a metric\\. \n*Required*: No \n*Type*: List of Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Numbers", + "type": "array" + }, + "Ports": { + "items": { + "type": "number" + }, + "markdownDescription": "If the `comparisonOperator` calls for a set of ports, use this to specify that set to be compared with the `metric`\\. \n*Required*: No \n*Type*: List of Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ports", + "type": "array" + }, + "Strings": { + "items": { + "type": "string" + }, + "markdownDescription": "The string values of a metric\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Strings", + "type": "array" + } + }, + "type": "object" + }, + "AWS::IoT::SecurityProfile.StatisticalThreshold": { + "additionalProperties": false, + "properties": { + "Statistic": { + "markdownDescription": "The percentile that resolves to a threshold value by which compliance with a behavior is determined\\. Metrics are collected over the specified period \\(`durationSeconds`\\) from all reporting devices in your account and statistical ranks are calculated\\. Then, the measurements from a device are collected over the same period\\. If the accumulated measurements from the device fall above or below \\(`comparisonOperator`\\) the value associated with the percentile specified, then the device is considered to be in compliance with the behavior, otherwise a violation occurs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "A string that contains up to three key value pairs\\. Maximum length of 800\\. Duplicates not allowed\\. \n*Required*: No \n*Type*: [AttributePayload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-thing-attributepayload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributePayload" + }, + "ThingName": { + "markdownDescription": "The name of the thing to update\\. \nYou can't change a thing's name\\. To change a thing's name, you must create a new thing, give it the new name, and then delete the old thing\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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, + "markdownDescription": "A JSON string containing up to three key\\-value pair in JSON format\\. For example: \n `{\\\"attributes\\\":{\\\"string1\\\":\\\"string2\\\"}}` \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Attributes", + "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": { + "markdownDescription": "The principal, which can be a certificate ARN \\(as returned from the `CreateCertificate` operation\\) or an Amazon Cognito ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Principal", + "type": "string" + }, + "ThingName": { + "markdownDescription": "The name of the AWS IoT thing\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RuleName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Metadata which can be used to manage the topic rule\\. \nFor URI Request parameters use format: \\.\\.\\.key1=value1&key2=value2\\.\\.\\. \nFor the CLI command\\-line parameter use format: \\-\\-tags \"key1=value1&key2=value2\\.\\.\\.\" \nFor the cli\\-input\\-json file use format: \"tags\": \"key1=value1&key2=value2\\.\\.\\.\"\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TopicRulePayload": { + "$ref": "#/definitions/AWS::IoT::TopicRule.TopicRulePayload", + "markdownDescription": "The rule payload\\. \n*Required*: Yes \n*Type*: [TopicRulePayload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Change the state of a CloudWatch alarm\\. \n*Required*: No \n*Type*: [CloudwatchAlarmAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchalarmaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudwatchAlarm" + }, + "CloudwatchLogs": { + "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchLogsAction", + "markdownDescription": "Sends data to CloudWatch\\. \n*Required*: No \n*Type*: [CloudwatchLogsAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchlogsaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudwatchLogs" + }, + "CloudwatchMetric": { + "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchMetricAction", + "markdownDescription": "Capture a CloudWatch metric\\. \n*Required*: No \n*Type*: [CloudwatchMetricAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudwatchMetric" + }, + "DynamoDB": { + "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBAction", + "markdownDescription": "Write to a DynamoDB table\\. \n*Required*: No \n*Type*: [DynamoDBAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DynamoDB" + }, + "DynamoDBv2": { + "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBv2Action", + "markdownDescription": "Write to a DynamoDB table\\. This is a new version of the DynamoDB action\\. It allows you to write each attribute in an MQTT message payload into a separate DynamoDB column\\. \n*Required*: No \n*Type*: [DynamoDBv2Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbv2action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DynamoDBv2" + }, + "Elasticsearch": { + "$ref": "#/definitions/AWS::IoT::TopicRule.ElasticsearchAction", + "markdownDescription": "Write data to an Amazon OpenSearch Service domain\\. \nThe `Elasticsearch` action can only be used by existing rule actions\\. To create a new rule action or to update an existing rule action, use the `OpenSearch` rule action instead\\. For more information, see [OpenSearchAction](https://docs.aws.amazon.com/iot/latest/apireference/API_OpenSearchAction.html)\\.\n*Required*: No \n*Type*: [ElasticsearchAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Elasticsearch" + }, + "Firehose": { + "$ref": "#/definitions/AWS::IoT::TopicRule.FirehoseAction", + "markdownDescription": "Write to an Amazon Kinesis Firehose stream\\. \n*Required*: No \n*Type*: [FirehoseAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-firehoseaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Firehose" + }, + "Http": { + "$ref": "#/definitions/AWS::IoT::TopicRule.HttpAction", + "markdownDescription": "Send data to an HTTPS endpoint\\. \n*Required*: No \n*Type*: [HttpAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Http" + }, + "IotAnalytics": { + "$ref": "#/definitions/AWS::IoT::TopicRule.IotAnalyticsAction", + "markdownDescription": "Sends message data to an AWS IoT Analytics channel\\. \n*Required*: No \n*Type*: [IotAnalyticsAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotanalyticsaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotAnalytics" + }, + "IotEvents": { + "$ref": "#/definitions/AWS::IoT::TopicRule.IotEventsAction", + "markdownDescription": "Sends an input to an AWS IoT Events detector\\. \n*Required*: No \n*Type*: [IotEventsAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-ioteventsaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotEvents" + }, + "IotSiteWise": { + "$ref": "#/definitions/AWS::IoT::TopicRule.IotSiteWiseAction", + "markdownDescription": "Sends data from the MQTT message that triggered the rule to AWS IoT SiteWise asset properties\\. \n*Required*: No \n*Type*: [IotSiteWiseAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotsitewiseaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotSiteWise" + }, + "Kafka": { + "$ref": "#/definitions/AWS::IoT::TopicRule.KafkaAction", + "markdownDescription": "Send messages to an Amazon Managed Streaming for Apache Kafka \\(Amazon MSK\\) or self\\-managed Apache Kafka cluster\\. \n*Required*: No \n*Type*: [KafkaAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kafkaaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Kafka" + }, + "Kinesis": { + "$ref": "#/definitions/AWS::IoT::TopicRule.KinesisAction", + "markdownDescription": "Write data to an Amazon Kinesis stream\\. \n*Required*: No \n*Type*: [KinesisAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kinesisaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Kinesis" + }, + "Lambda": { + "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction", + "markdownDescription": "Invoke a Lambda function\\. \n*Required*: No \n*Type*: [LambdaAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-lambdaaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Lambda" + }, + "Location": { + "$ref": "#/definitions/AWS::IoT::TopicRule.LocationAction" + }, + "OpenSearch": { + "$ref": "#/definitions/AWS::IoT::TopicRule.OpenSearchAction", + "markdownDescription": "Write data to an Amazon OpenSearch Service domain\\. \n*Required*: No \n*Type*: [OpenSearchAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-opensearchaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OpenSearch" + }, + "Republish": { + "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishAction", + "markdownDescription": "Publish to another MQTT topic\\. \n*Required*: No \n*Type*: [RepublishAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-republishaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Republish" + }, + "S3": { + "$ref": "#/definitions/AWS::IoT::TopicRule.S3Action", + "markdownDescription": "Write to an Amazon S3 bucket\\. \n*Required*: No \n*Type*: [S3Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-s3action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3" + }, + "Sns": { + "$ref": "#/definitions/AWS::IoT::TopicRule.SnsAction", + "markdownDescription": "Publish to an Amazon SNS topic\\. \n*Required*: No \n*Type*: [SnsAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-snsaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sns" + }, + "Sqs": { + "$ref": "#/definitions/AWS::IoT::TopicRule.SqsAction", + "markdownDescription": "Publish to an Amazon SQS queue\\. \n*Required*: No \n*Type*: [SqsAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sqsaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sqs" + }, + "StepFunctions": { + "$ref": "#/definitions/AWS::IoT::TopicRule.StepFunctionsAction", + "markdownDescription": "Starts execution of a Step Functions state machine\\. \n*Required*: No \n*Type*: [StepFunctionsAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-stepfunctionsaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StepFunctions" + }, + "Timestream": { + "$ref": "#/definitions/AWS::IoT::TopicRule.TimestreamAction", + "markdownDescription": "Writes attributes from an MQTT message\\. \n*Required*: No \n*Type*: [TimestreamAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timestream" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRule.AssetPropertyTimestamp": { + "additionalProperties": false, + "properties": { + "OffsetInNanos": { + "markdownDescription": "Optional\\. A string that contains the nanosecond time offset\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OffsetInNanos", + "type": "string" + }, + "TimeInSeconds": { + "markdownDescription": "A string that contains the time in seconds since epoch\\. Accepts substitution templates\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeInSeconds", + "type": "string" + } + }, + "required": [ + "TimeInSeconds" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.AssetPropertyValue": { + "additionalProperties": false, + "properties": { + "Quality": { + "markdownDescription": "Optional\\. A string that describes the quality of the value\\. Accepts substitution templates\\. Must be `GOOD`, `BAD`, or `UNCERTAIN`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Quality", + "type": "string" + }, + "Timestamp": { + "$ref": "#/definitions/AWS::IoT::TopicRule.AssetPropertyTimestamp", + "markdownDescription": "The asset property value timestamp\\. \n*Required*: Yes \n*Type*: [AssetPropertyTimestamp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertytimestamp.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timestamp" + }, + "Value": { + "$ref": "#/definitions/AWS::IoT::TopicRule.AssetPropertyVariant", + "markdownDescription": "The value of the asset property\\. \n*Required*: Yes \n*Type*: [AssetPropertyVariant](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvariant.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value" + } + }, + "required": [ + "Timestamp", + "Value" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.AssetPropertyVariant": { + "additionalProperties": false, + "properties": { + "BooleanValue": { + "markdownDescription": "Optional\\. A string that contains the boolean value \\(`true` or `false`\\) of the value entry\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BooleanValue", + "type": "string" + }, + "DoubleValue": { + "markdownDescription": "Optional\\. A string that contains the double value of the value entry\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DoubleValue", + "type": "string" + }, + "IntegerValue": { + "markdownDescription": "Optional\\. A string that contains the integer value of the value entry\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegerValue", + "type": "string" + }, + "StringValue": { + "markdownDescription": "Optional\\. The string value of the value entry\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StringValue", + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRule.CloudwatchAlarmAction": { + "additionalProperties": false, + "properties": { + "AlarmName": { + "markdownDescription": "The CloudWatch alarm name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmName", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The IAM role that allows access to the CloudWatch alarm\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "StateReason": { + "markdownDescription": "The reason for the alarm change\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StateReason", + "type": "string" + }, + "StateValue": { + "markdownDescription": "The value of the alarm state\\. Acceptable values are: OK, ALARM, INSUFFICIENT\\_DATA\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StateValue", + "type": "string" + } + }, + "required": [ + "AlarmName", + "RoleArn", + "StateReason", + "StateValue" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.CloudwatchLogsAction": { + "additionalProperties": false, + "properties": { + "BatchMode": { + "type": "boolean" + }, + "LogGroupName": { + "markdownDescription": "The CloudWatch log name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroupName", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The IAM role that allows access to the CloudWatch log\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + } + }, + "required": [ + "LogGroupName", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.CloudwatchMetricAction": { + "additionalProperties": false, + "properties": { + "MetricName": { + "markdownDescription": "The CloudWatch metric name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", + "type": "string" + }, + "MetricNamespace": { + "markdownDescription": "The CloudWatch metric namespace name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricNamespace", + "type": "string" + }, + "MetricTimestamp": { + "markdownDescription": "An optional [Unix timestamp](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricTimestamp", + "type": "string" + }, + "MetricUnit": { + "markdownDescription": "The [metric unit](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit) supported by CloudWatch\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricUnit", + "type": "string" + }, + "MetricValue": { + "markdownDescription": "The CloudWatch metric value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricValue", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The IAM role that allows access to the CloudWatch metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + } + }, + "required": [ + "MetricName", + "MetricNamespace", + "MetricUnit", + "MetricValue", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.DynamoDBAction": { + "additionalProperties": false, + "properties": { + "HashKeyField": { + "markdownDescription": "The hash key name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HashKeyField", + "type": "string" + }, + "HashKeyType": { + "markdownDescription": "The hash key type\\. Valid values are \"STRING\" or \"NUMBER\" \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HashKeyType", + "type": "string" + }, + "HashKeyValue": { + "markdownDescription": "The hash key value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HashKeyValue", + "type": "string" + }, + "PayloadField": { + "markdownDescription": "The action payload\\. This name can be customized\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PayloadField", + "type": "string" + }, + "RangeKeyField": { + "markdownDescription": "The range key name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RangeKeyField", + "type": "string" + }, + "RangeKeyType": { + "markdownDescription": "The range key type\\. Valid values are \"STRING\" or \"NUMBER\" \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RangeKeyType", + "type": "string" + }, + "RangeKeyValue": { + "markdownDescription": "The range key value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RangeKeyValue", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the IAM role that grants access to the DynamoDB table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "TableName": { + "markdownDescription": "The name of the DynamoDB table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", + "type": "string" + } + }, + "required": [ + "HashKeyField", + "HashKeyValue", + "RoleArn", + "TableName" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.DynamoDBv2Action": { + "additionalProperties": false, + "properties": { + "PutItem": { + "$ref": "#/definitions/AWS::IoT::TopicRule.PutItemInput", + "markdownDescription": "Specifies the DynamoDB table to which the message data will be written\\. For example: \n `{ \"dynamoDBv2\": { \"roleArn\": \"aws:iam:12341251:my-role\" \"putItem\": { \"tableName\": \"my-table\" } } }` \nEach attribute in the message payload will be written to a separate column in the DynamoDB database\\. \n*Required*: No \n*Type*: [PutItemInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putiteminput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PutItem" + }, + "RoleArn": { + "markdownDescription": "The ARN of the IAM role that grants access to the DynamoDB table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRule.ElasticsearchAction": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "markdownDescription": "The endpoint of your OpenSearch domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Endpoint", + "type": "string" + }, + "Id": { + "markdownDescription": "The unique identifier for the document you are storing\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "Index": { + "markdownDescription": "The index where you want to store your data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Index", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The IAM role ARN that has access to OpenSearch\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of document you are storing\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Endpoint", + "Id", + "Index", + "RoleArn", + "Type" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.FirehoseAction": { + "additionalProperties": false, + "properties": { + "BatchMode": { + "markdownDescription": "Whether to deliver the Kinesis Data Firehose stream as a batch by using [https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html](https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html)\\. The default value is `false`\\. \nWhen `batchMode` is `true` and the rule's SQL statement evaluates to an Array, each Array element forms one record in the [https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html](https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html) request\\. The resulting array can't have more than 500 records\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BatchMode", + "type": "boolean" + }, + "DeliveryStreamName": { + "markdownDescription": "The delivery stream name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryStreamName", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The IAM role that grants access to the Amazon Kinesis Firehose stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "Separator": { + "markdownDescription": "A character separator that will be used to separate records written to the Firehose stream\\. Valid values are: '\\\\n' \\(newline\\), '\\\\t' \\(tab\\), '\\\\r\\\\n' \\(Windows newline\\), ',' \\(comma\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Separator", + "type": "string" + } + }, + "required": [ + "DeliveryStreamName", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.HttpAction": { + "additionalProperties": false, + "properties": { + "Auth": { + "$ref": "#/definitions/AWS::IoT::TopicRule.HttpAuthorization", + "markdownDescription": "The authentication method to use when sending data to an HTTPS endpoint\\. \n*Required*: No \n*Type*: [HttpAuthorization](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpauthorization.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Auth" + }, + "ConfirmationUrl": { + "markdownDescription": "The URL to which AWS IoT sends a confirmation message\\. The value of the confirmation URL must be a prefix of the endpoint URL\\. If you do not specify a confirmation URL AWS IoT uses the endpoint URL as the confirmation URL\\. If you use substitution templates in the confirmationUrl, you must create and enable topic rule destinations that match each possible value of the substitution template before traffic is allowed to your endpoint URL\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfirmationUrl", + "type": "string" + }, + "Headers": { + "items": { + "$ref": "#/definitions/AWS::IoT::TopicRule.HttpActionHeader" + }, + "markdownDescription": "The HTTP headers to send with the message data\\. \n*Required*: No \n*Type*: List of [HttpActionHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpactionheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Headers", + "type": "array" + }, + "Url": { + "markdownDescription": "The endpoint URL\\. If substitution templates are used in the URL, you must also specify a `confirmationUrl`\\. If this is a new destination, a new `TopicRuleDestination` is created if possible\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.HttpActionHeader": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The HTTP header key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The HTTP header value\\. Substitution templates are supported\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.HttpAuthorization": { + "additionalProperties": false, + "properties": { + "Sigv4": { + "$ref": "#/definitions/AWS::IoT::TopicRule.SigV4Authorization", + "markdownDescription": "Use Sig V4 authorization\\. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)\\. \n*Required*: No \n*Type*: [SigV4Authorization](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sigv4authorization.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sigv4" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRule.IotAnalyticsAction": { + "additionalProperties": false, + "properties": { + "BatchMode": { + "markdownDescription": "Whether to process the action as a batch\\. The default value is `false`\\. \nWhen `batchMode` is `true` and the rule SQL statement evaluates to an Array, each Array element is delivered as a separate message when passed by [https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_BatchPutMessage.html](https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_BatchPutMessage.html) The resulting array can't have more than 100 messages\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BatchMode", + "type": "boolean" + }, + "ChannelName": { + "markdownDescription": "The name of the IoT Analytics channel to which message data will be sent\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelName", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the role which has a policy that grants IoT Analytics permission to send message data via IoT Analytics \\(iotanalytics:BatchPutMessage\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + } + }, + "required": [ + "ChannelName", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.IotEventsAction": { + "additionalProperties": false, + "properties": { + "BatchMode": { + "markdownDescription": "Whether to process the event actions as a batch\\. The default value is `false`\\. \nWhen `batchMode` is `true`, you can't specify a `messageId`\\. \nWhen `batchMode` is `true` and the rule SQL statement evaluates to an Array, each Array element is treated as a separate message when Events by calling [https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchPutMessage.html](https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchPutMessage.html)\\. The resulting array can't have more than 10 messages\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BatchMode", + "type": "boolean" + }, + "InputName": { + "markdownDescription": "The name of the AWS IoT Events input\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputName", + "type": "string" + }, + "MessageId": { + "markdownDescription": "The ID of the message\\. The default `messageId` is a new UUID value\\. \nWhen `batchMode` is `true`, you can't specify a `messageId`\\-\\-a new UUID value will be assigned\\. \nAssign a value to this property to ensure that only one input \\(message\\) with a given `messageId` will be processed by an AWS IoT Events detector\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageId", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the role that grants AWS IoT permission to send an input to an AWS IoT Events detector\\. \\(\"Action\":\"iotevents:BatchPutMessage\"\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + } + }, + "required": [ + "InputName", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.IotSiteWiseAction": { + "additionalProperties": false, + "properties": { + "PutAssetPropertyValueEntries": { + "items": { + "$ref": "#/definitions/AWS::IoT::TopicRule.PutAssetPropertyValueEntry" + }, + "markdownDescription": "A list of asset property value entries\\. \n*Required*: Yes \n*Type*: List of [PutAssetPropertyValueEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PutAssetPropertyValueEntries", + "type": "array" + }, + "RoleArn": { + "markdownDescription": "The ARN of the role that grants AWS IoT permission to send an asset property value to AWS IoT SiteWise\\. \\(`\"Action\": \"iotsitewise:BatchPutAssetPropertyValue\"`\\)\\. The trust policy can restrict access to specific asset hierarchy paths\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + } + }, + "required": [ + "PutAssetPropertyValueEntries", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.KafkaAction": { + "additionalProperties": false, + "properties": { + "ClientProperties": { + "additionalProperties": true, + "markdownDescription": "Properties of the Apache Kafka producer client\\. \n*Required*: Yes \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "ClientProperties", + "type": "object" + }, + "DestinationArn": { + "markdownDescription": "The ARN of Kafka action's VPC `TopicRuleDestination`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationArn", + "type": "string" + }, + "Key": { + "markdownDescription": "The Kafka message key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Partition": { + "markdownDescription": "The Kafka message partition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Partition", + "type": "string" + }, + "Topic": { + "markdownDescription": "The Kafka topic for messages to be sent to the Kafka broker\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Topic", + "type": "string" + } + }, + "required": [ + "ClientProperties", + "DestinationArn", + "Topic" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.KinesisAction": { + "additionalProperties": false, + "properties": { + "PartitionKey": { + "markdownDescription": "The partition key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PartitionKey", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the IAM role that grants access to the Amazon Kinesis stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "StreamName": { + "markdownDescription": "The name of the Amazon Kinesis stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamName", + "type": "string" + } + }, + "required": [ + "RoleArn", + "StreamName" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.LambdaAction": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "markdownDescription": "The ARN of the Lambda function\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The endpoint of your OpenSearch domain\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Endpoint", + "type": "string" + }, + "Id": { + "markdownDescription": "The unique identifier for the document you are storing\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "Index": { + "markdownDescription": "The OpenSearch index where you want to store your data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Index", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The IAM role ARN that has access to OpenSearch\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of document you are storing\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Endpoint", + "Id", + "Index", + "RoleArn", + "Type" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.PutAssetPropertyValueEntry": { + "additionalProperties": false, + "properties": { + "AssetId": { + "markdownDescription": "The ID of the AWS IoT SiteWise asset\\. You must specify either a `propertyAlias` or both an `aliasId` and a `propertyId`\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetId", + "type": "string" + }, + "EntryId": { + "markdownDescription": "Optional\\. A unique identifier for this entry that you can define to better track which message caused an error in case of failure\\. Accepts substitution templates\\. Defaults to a new UUID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntryId", + "type": "string" + }, + "PropertyAlias": { + "markdownDescription": "The name of the property alias associated with your asset property\\. You must specify either a `propertyAlias` or both an `aliasId` and a `propertyId`\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropertyAlias", + "type": "string" + }, + "PropertyId": { + "markdownDescription": "The ID of the asset's property\\. You must specify either a `propertyAlias` or both an `aliasId` and a `propertyId`\\. Accepts substitution templates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropertyId", + "type": "string" + }, + "PropertyValues": { + "items": { + "$ref": "#/definitions/AWS::IoT::TopicRule.AssetPropertyValue" + }, + "markdownDescription": "A list of property values to insert that each contain timestamp, quality, and value \\(TQV\\) information\\. \n*Required*: Yes \n*Type*: List of [AssetPropertyValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropertyValues", + "type": "array" + } + }, + "required": [ + "PropertyValues" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.PutItemInput": { + "additionalProperties": false, + "properties": { + "TableName": { + "markdownDescription": "The table where the message data will be written\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", + "type": "string" + } + }, + "required": [ + "TableName" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.RepublishAction": { + "additionalProperties": false, + "properties": { + "Headers": { + "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishActionHeaders" + }, + "Qos": { + "markdownDescription": "The Quality of Service \\(QoS\\) level to use when republishing messages\\. The default value is 0\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Qos", + "type": "number" + }, + "RoleArn": { + "markdownDescription": "The ARN of the IAM role that grants access\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "Topic": { + "markdownDescription": "The name of the MQTT topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", + "type": "string" + }, + "CannedAcl": { + "markdownDescription": "The Amazon S3 canned ACL that controls access to the object identified by the object key\\. For more information, see [S3 canned ACLs](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CannedAcl", + "type": "string" + }, + "Key": { + "markdownDescription": "The object key\\. For more information, see [Actions, resources, and condition keys for Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the IAM role that grants access\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + } + }, + "required": [ + "BucketName", + "Key", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.SigV4Authorization": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "markdownDescription": "The ARN of the signing role\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "ServiceName": { + "markdownDescription": "The service name to use while signing with Sig V4\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceName", + "type": "string" + }, + "SigningRegion": { + "markdownDescription": "The signing region\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SigningRegion", + "type": "string" + } + }, + "required": [ + "RoleArn", + "ServiceName", + "SigningRegion" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.SnsAction": { + "additionalProperties": false, + "properties": { + "MessageFormat": { + "markdownDescription": "\\(Optional\\) The message format of the message to publish\\. Accepted values are \"JSON\" and \"RAW\"\\. The default value of the attribute is \"RAW\"\\. SNS uses this setting to determine if the payload should be parsed and relevant platform\\-specific bits of the payload should be extracted\\. For more information, see [Amazon SNS Message and JSON Formats](https://docs.aws.amazon.com/sns/latest/dg/json-formats.html) in the *Amazon Simple Notification Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageFormat", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the IAM role that grants access\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "TargetArn": { + "markdownDescription": "The ARN of the SNS topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetArn", + "type": "string" + } + }, + "required": [ + "RoleArn", + "TargetArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.SqsAction": { + "additionalProperties": false, + "properties": { + "QueueUrl": { + "markdownDescription": "The URL of the Amazon SQS queue\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueueUrl", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the IAM role that grants access\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "UseBase64": { + "markdownDescription": "Specifies whether to use Base64 encoding\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseBase64", + "type": "boolean" + } + }, + "required": [ + "QueueUrl", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.StepFunctionsAction": { + "additionalProperties": false, + "properties": { + "ExecutionNamePrefix": { + "markdownDescription": "\\(Optional\\) A name will be given to the state machine execution consisting of this prefix followed by a UUID\\. Step Functions automatically creates a unique name for each state machine execution if one is not provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionNamePrefix", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the role that grants IoT permission to start execution of a state machine \\(\"Action\":\"states:StartExecution\"\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "StateMachineName": { + "markdownDescription": "The name of the Step Functions state machine whose execution will be started\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of an Amazon Timestream database that has the table to write records into\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::IoT::TopicRule.TimestreamDimension" + }, + "markdownDescription": "Metadata attributes of the time series that are written in each measure record\\. \n*Required*: Yes \n*Type*: List of [TimestreamDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", + "type": "array" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that grants AWS IoT permission to write to the Timestream database table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "TableName": { + "markdownDescription": "The table where the message data will be written\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", + "type": "string" + }, + "Timestamp": { + "$ref": "#/definitions/AWS::IoT::TopicRule.TimestreamTimestamp", + "markdownDescription": "The value to use for the entry's timestamp\\. If blank, the time that the entry was processed is used\\. \n*Required*: No \n*Type*: [TimestreamTimestamp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamtimestamp.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timestamp" + } + }, + "required": [ + "DatabaseName", + "Dimensions", + "RoleArn", + "TableName" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.TimestreamDimension": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The metadata dimension name\\. This is the name of the column in the Amazon Timestream database table record\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "The value to write in this column of the database record\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.TimestreamTimestamp": { + "additionalProperties": false, + "properties": { + "Unit": { + "markdownDescription": "The precision of the timestamp value that results from the expression described in `value`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", + "type": "string" + }, + "Value": { + "markdownDescription": "An expression that returns a long epoch time value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.TopicRulePayload": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::IoT::TopicRule.Action" + }, + "markdownDescription": "The actions associated with the rule\\. \n*Required*: Yes \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", + "type": "array" + }, + "AwsIotSqlVersion": { + "markdownDescription": "The version of the SQL rules engine to use when evaluating the rule\\. \nThe default value is 2015\\-10\\-08\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsIotSqlVersion", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "ErrorAction": { + "$ref": "#/definitions/AWS::IoT::TopicRule.Action", + "markdownDescription": "The action to take when an error occurs\\. \n*Required*: No \n*Type*: [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorAction" + }, + "RuleDisabled": { + "markdownDescription": "Specifies whether the rule is disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleDisabled", + "type": "boolean" + }, + "Sql": { + "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-sql-reference.html) in the * AWS IoT Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Properties of the HTTP URL\\. \n*Required*: No \n*Type*: [HttpUrlDestinationSummary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicruledestination-httpurldestinationsummary.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HttpUrlProperties" + }, + "Status": { + "markdownDescription": "IN\\_PROGRESS \nA topic rule destination was created but has not been confirmed\\. You can set status to `IN_PROGRESS` by calling `UpdateTopicRuleDestination`\\. Calling `UpdateTopicRuleDestination` causes a new confirmation challenge to be sent to your confirmation endpoint\\. \nENABLED \nConfirmation was completed, and traffic to this destination is allowed\\. You can set status to `DISABLED` by calling `UpdateTopicRuleDestination`\\. \nDISABLED \nConfirmation was completed, and traffic to this destination is not allowed\\. You can set status to `ENABLED` by calling `UpdateTopicRuleDestination`\\. \nERROR \nConfirmation could not be completed; for example, if the confirmation timed out\\. You can call `GetTopicRuleDestination` for details about the error\\. You can set status to `IN_PROGRESS` by calling `UpdateTopicRuleDestination`\\. Calling `UpdateTopicRuleDestination` causes a new confirmation challenge to be sent to your confirmation endpoint\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + }, + "VpcProperties": { + "$ref": "#/definitions/AWS::IoT::TopicRuleDestination.VpcDestinationProperties", + "markdownDescription": "Properties of the virtual private cloud \\(VPC\\) connection\\. \n*Required*: No \n*Type*: [VpcDestinationProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicruledestination-vpcdestinationproperties.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcProperties" + } + }, + "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": { + "markdownDescription": "The URL used to confirm the HTTP topic rule destination URL\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfirmationUrl", + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRuleDestination.VpcDestinationProperties": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "markdownDescription": "The ARN of a role that has permission to create and attach to elastic network interfaces \\(ENIs\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RoleArn", + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "The security groups of the VPC destination\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroups", + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The subnet IDs of the VPC destination\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetIds", + "type": "array" + }, + "VpcId": { + "markdownDescription": "The ID of the VPC\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the channel\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ChannelName", + "type": "string" + }, + "ChannelStorage": { + "$ref": "#/definitions/AWS::IoTAnalytics::Channel.ChannelStorage", + "markdownDescription": "Where channel data is stored\\. \n*Required*: No \n*Type*: [ChannelStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-channelstorage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelStorage" + }, + "RetentionPeriod": { + "$ref": "#/definitions/AWS::IoTAnalytics::Channel.RetentionPeriod", + "markdownDescription": "How long, in days, message data is kept for the channel\\. \n*Required*: No \n*Type*: [RetentionPeriod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-retentionperiod.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetentionPeriod" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Metadata which can be used to manage the channel\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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", + "markdownDescription": "Used to store channel data in an S3 bucket that you manage\\. If customer managed storage is selected, the `retentionPeriod` parameter is ignored\\. You can't change the choice of S3 storage after the data store is created\\. \n*Required*: No \n*Type*: [CustomerManagedS3](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-customermanageds3.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomerManagedS3" + }, + "ServiceManagedS3": { + "markdownDescription": "Used to store channel data in an S3 bucket managed by AWS IoT Analytics\\. You can't change the choice of S3 storage after the data store is created\\. \n*Required*: No \n*Type*: [ServiceManagedS3](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-servicemanageds3.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceManagedS3", + "type": "object" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Channel.CustomerManagedS3": { + "additionalProperties": false, + "properties": { + "Bucket": { + "markdownDescription": "The name of the S3 bucket in which channel data is stored\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9.\\-_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", + "type": "string" + }, + "KeyPrefix": { + "markdownDescription": "\\(Optional\\) The prefix used to create the keys of the channel data objects\\. Each object in an S3 bucket has a key that is its unique identifier within the bucket \\(each object in a bucket has exactly one key\\)\\. The prefix must end with a forward slash \\(/\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9!_.*'()/{}:-]*/$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyPrefix", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the role that grants AWS IoT Analytics permission to interact with your Amazon S3 resources\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + } + }, + "required": [ + "Bucket", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Channel.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "NumberOfDays": { + "markdownDescription": "The number of days that message data is kept\\. The `unlimited` parameter must be false\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfDays", + "type": "number" + }, + "Unlimited": { + "markdownDescription": "If true, message data is kept indefinitely\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The `DatasetAction` objects that automatically create the dataset contents\\. \n*Required*: Yes \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-action.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", + "type": "array" + }, + "ContentDeliveryRules": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DatasetContentDeliveryRule" + }, + "markdownDescription": "When dataset contents are created they are delivered to destinations specified here\\. \n*Required*: No \n*Type*: List of [DatasetContentDeliveryRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-datasetcontentdeliveryrule.html) \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentDeliveryRules", + "type": "array" + }, + "DatasetName": { + "markdownDescription": "The name of the dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatasetName", + "type": "string" + }, + "LateDataRules": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.LateDataRule" + }, + "markdownDescription": "A list of data rules that send notifications to CloudWatch, when data arrives late\\. To specify `lateDataRules`, the dataset must use a [DeltaTimer](https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_DeltaTime.html) filter\\. \n*Required*: No \n*Type*: List of [LateDataRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-latedatarule.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LateDataRules", + "type": "array" + }, + "RetentionPeriod": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.RetentionPeriod", + "markdownDescription": "Optional\\. How long, in days, message data is kept for the dataset\\. \n*Required*: No \n*Type*: [RetentionPeriod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-retentionperiod.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetentionPeriod" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Metadata which can be used to manage the data set\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Triggers": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Trigger" + }, + "markdownDescription": "The `DatasetTrigger` objects that specify when the dataset is automatically updated\\. \n*Required*: No \n*Type*: List of [Trigger](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-trigger.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Triggers", + "type": "array" + }, + "VersioningConfiguration": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.VersioningConfiguration", + "markdownDescription": "Optional\\. How many versions of dataset contents are kept\\. If not specified or set to null, only the latest version plus the latest succeeded version \\(if they are different\\) are kept for the time period specified by the `retentionPeriod` parameter\\. For more information, see [ Keeping Multiple Versions of AWS IoT Analytics datasets](https://docs.aws.amazon.com/iotanalytics/latest/userguide/getting-started.html#aws-iot-analytics-dataset-versions) in the * AWS IoT Analytics User Guide*\\. \n*Required*: No \n*Type*: [VersioningConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-versioningconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the data set action by which data set contents are automatically created\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9_]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionName", + "type": "string" + }, + "ContainerAction": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.ContainerAction", + "markdownDescription": "Information which allows the system to run a containerized application in order to create the data set contents\\. The application must be in a Docker container along with any needed support libraries\\. \n*Required*: No \n*Type*: [ContainerAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-containeraction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerAction" + }, + "QueryAction": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.QueryAction", + "markdownDescription": "An \"SqlQueryDatasetAction\" object that uses an SQL query to automatically create data set contents\\. \n*Required*: No \n*Type*: [QueryAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-queryaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryAction" + } + }, + "required": [ + "ActionName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.ContainerAction": { + "additionalProperties": false, + "properties": { + "ExecutionRoleArn": { + "markdownDescription": "The ARN of the role which gives permission to the system to access needed resources in order to run the \"containerAction\"\\. This includes, at minimum, permission to retrieve the data set contents which are the input to the containerized application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionRoleArn", + "type": "string" + }, + "Image": { + "markdownDescription": "The ARN of the Docker container stored in your account\\. The Docker container contains an application and needed support libraries and is used to generate data set contents\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Image", + "type": "string" + }, + "ResourceConfiguration": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.ResourceConfiguration", + "markdownDescription": "Configuration of the resource which executes the \"containerAction\"\\. \n*Required*: Yes \n*Type*: [ResourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-resourceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceConfiguration" + }, + "Variables": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Variable" + }, + "markdownDescription": "The values of variables used within the context of the execution of the containerized application \\(basically, parameters passed to the application\\)\\. Each variable must have a name and a value given by one of \"stringValue\", \"datasetContentVersionValue\", or \"outputFileUriValue\"\\. \n*Required*: No \n*Type*: List of [Variable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Variables", + "type": "array" + } + }, + "required": [ + "ExecutionRoleArn", + "Image", + "ResourceConfiguration" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.DatasetContentDeliveryRule": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DatasetContentDeliveryRuleDestination", + "markdownDescription": "The destination to which dataset contents are delivered\\. \n*Required*: Yes \n*Type*: [DatasetContentDeliveryRuleDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-datasetcontentdeliveryruledestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" + }, + "EntryName": { + "markdownDescription": "The name of the dataset content delivery rules entry\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntryName", + "type": "string" + } + }, + "required": [ + "Destination" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.DatasetContentDeliveryRuleDestination": { + "additionalProperties": false, + "properties": { + "IotEventsDestinationConfiguration": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.IotEventsDestinationConfiguration", + "markdownDescription": "Configuration information for delivery of dataset contents to AWS IoT Events\\. \n*Required*: No \n*Type*: [IotEventsDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-ioteventsdestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotEventsDestinationConfiguration" + }, + "S3DestinationConfiguration": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.S3DestinationConfiguration", + "markdownDescription": "Configuration information for delivery of dataset contents to Amazon S3\\. \n*Required*: No \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-s3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3DestinationConfiguration" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.DatasetContentVersionValue": { + "additionalProperties": false, + "properties": { + "DatasetName": { + "markdownDescription": "The name of the dataset whose latest contents are used as input to the notebook or application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetName", + "type": "string" + } + }, + "required": [ + "DatasetName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.DeltaTime": { + "additionalProperties": false, + "properties": { + "OffsetSeconds": { + "markdownDescription": "The number of seconds of estimated in\\-flight lag time of message data\\. When you create dataset contents using message data from a specified timeframe, some message data might still be in flight when processing begins, and so do not arrive in time to be processed\\. Use this field to make allowances for the in flight time of your message data, so that data not processed from a previous timeframe is included with the next timeframe\\. Otherwise, missed message data would be excluded from processing during the next timeframe too, because its timestamp places it within the previous timeframe\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OffsetSeconds", + "type": "number" + }, + "TimeExpression": { + "markdownDescription": "An expression by which the time of the message data might be determined\\. This can be the name of a timestamp field or a SQL expression that is used to derive the time the message data was generated\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeExpression", + "type": "string" + } + }, + "required": [ + "OffsetSeconds", + "TimeExpression" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.DeltaTimeSessionWindowConfiguration": { + "additionalProperties": false, + "properties": { + "TimeoutInMinutes": { + "markdownDescription": "A time interval\\. You can use `timeoutInMinutes` so that AWS IoT Analytics can batch up late data notifications that have been generated since the last execution\\. AWS IoT Analytics sends one batch of notifications to Amazon CloudWatch Events at one time\\. \nFor more information about how to write a timestamp expression, see [Date and Time Functions and Operators](https://prestodb.io/docs/0.172/functions/datetime.html), in the *Presto 0\\.172 Documentation*\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `60` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutInMinutes", + "type": "number" + } + }, + "required": [ + "TimeoutInMinutes" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.Filter": { + "additionalProperties": false, + "properties": { + "DeltaTime": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DeltaTime", + "markdownDescription": "Used to limit data to that which has arrived since the last execution of the action\\. \n*Required*: No \n*Type*: [DeltaTime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-deltatime.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeltaTime" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.GlueConfiguration": { + "additionalProperties": false, + "properties": { + "DatabaseName": { + "markdownDescription": "The name of the database in your AWS Glue Data Catalog in which the table is located\\. An AWS Glue Data Catalog database contains metadata tables\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `150` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", + "type": "string" + }, + "TableName": { + "markdownDescription": "The name of the table in your AWS Glue Data Catalog that is used to perform the ETL operations\\. An AWS Glue Data Catalog table contains partitioned data and descriptions of data sources and targets\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `150` \n*Pattern*: `[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", + "type": "string" + } + }, + "required": [ + "DatabaseName", + "TableName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.IotEventsDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "InputName": { + "markdownDescription": "The name of the AWS IoT Events input to which dataset contents are delivered\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputName", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the role that grants AWS IoT Analytics permission to deliver dataset contents to an AWS IoT Events input\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + } + }, + "required": [ + "InputName", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.LateDataRule": { + "additionalProperties": false, + "properties": { + "RuleConfiguration": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.LateDataRuleConfiguration", + "markdownDescription": "The information needed to configure the late data rule\\. \n*Required*: Yes \n*Type*: [LateDataRuleConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-latedataruleconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleConfiguration" + }, + "RuleName": { + "markdownDescription": "The name of the late data rule\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9_]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleName", + "type": "string" + } + }, + "required": [ + "RuleConfiguration" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.LateDataRuleConfiguration": { + "additionalProperties": false, + "properties": { + "DeltaTimeSessionWindowConfiguration": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DeltaTimeSessionWindowConfiguration", + "markdownDescription": "The information needed to configure a delta time session window\\. \n*Required*: No \n*Type*: [DeltaTimeSessionWindowConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-deltatimesessionwindowconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeltaTimeSessionWindowConfiguration" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.OutputFileUriValue": { + "additionalProperties": false, + "properties": { + "FileName": { + "markdownDescription": "The URI of the location where dataset contents are stored, usually the URI of a file in an S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[\\w\\.-]{1,255}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileName", + "type": "string" + } + }, + "required": [ + "FileName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.QueryAction": { + "additionalProperties": false, + "properties": { + "Filters": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Filter" + }, + "markdownDescription": "Pre\\-filters applied to message data\\. \n*Required*: No \n*Type*: List of [Filter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-filter.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filters", + "type": "array" + }, + "SqlQuery": { + "markdownDescription": "An \"SqlQueryDatasetAction\" object that uses an SQL query to automatically create data set contents\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SqlQuery", + "type": "string" + } + }, + "required": [ + "SqlQuery" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.ResourceConfiguration": { + "additionalProperties": false, + "properties": { + "ComputeType": { + "markdownDescription": "The type of the compute resource used to execute the `containerAction`\\. Possible values are: `ACU_1` \\(vCPU=4, memory=16 GiB\\) or `ACU_2` \\(vCPU=8, memory=32 GiB\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ACU_1 | ACU_2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputeType", + "type": "string" + }, + "VolumeSizeInGB": { + "markdownDescription": "The size, in GB, of the persistent storage available to the resource instance used to execute the `containerAction` \\(min: 1, max: 50\\)\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeSizeInGB", + "type": "number" + } + }, + "required": [ + "ComputeType", + "VolumeSizeInGB" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "NumberOfDays": { + "markdownDescription": "The number of days that message data is kept\\. The `unlimited` parameter must be false\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfDays", + "type": "number" + }, + "Unlimited": { + "markdownDescription": "If true, message data is kept indefinitely\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unlimited", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "Bucket": { + "markdownDescription": "The name of the S3 bucket to which dataset contents are delivered\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9.\\-_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", + "type": "string" + }, + "GlueConfiguration": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.GlueConfiguration", + "markdownDescription": "Configuration information for coordination with AWS Glue, a fully managed extract, transform and load \\(ETL\\) service\\. \n*Required*: No \n*Type*: [GlueConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-glueconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlueConfiguration" + }, + "Key": { + "markdownDescription": "The key of the dataset contents object in an S3 bucket\\. Each object has a key that is a unique identifier\\. Each object has exactly one key\\. \nYou can create a unique key with the following options: \n+ Use `!{iotanalytics:scheduleTime}` to insert the time of a scheduled SQL query run\\.\n+ Use `!{iotanalytics:versionId}` to insert a unique hash that identifies a dataset content\\.\n+ Use `!{iotanalytics:creationTime}` to insert the creation time of a dataset content\\.\nThe following example creates a unique key for a CSV file: `dataset/mydataset/!{iotanalytics:scheduleTime}/!{iotanalytics:versionId}.csv` \nIf you don't use `!{iotanalytics:versionId}` to specify the key, you might get duplicate keys\\. For example, you might have two dataset contents with the same `scheduleTime` but different `versionId`s\\. This means that one dataset content overwrites the other\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9!_.*'()/{}:-]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the role that grants AWS IoT Analytics permission to interact with your Amazon S3 and AWS Glue resources\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + } + }, + "required": [ + "Bucket", + "Key", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.Schedule": { + "additionalProperties": false, + "properties": { + "ScheduleExpression": { + "markdownDescription": "The expression that defines when to trigger an update\\. For more information, see [ Schedule Expressions for Rules](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html) in the Amazon CloudWatch documentation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleExpression", + "type": "string" + } + }, + "required": [ + "ScheduleExpression" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.Trigger": { + "additionalProperties": false, + "properties": { + "Schedule": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Schedule", + "markdownDescription": "The \"Schedule\" when the trigger is initiated\\. \n*Required*: No \n*Type*: [Schedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-schedule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule" + }, + "TriggeringDataset": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.TriggeringDataset", + "markdownDescription": "Information about the data set whose content generation triggers the new data set content generation\\. \n*Required*: No \n*Type*: [TriggeringDataset](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-triggeringdataset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TriggeringDataset" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.TriggeringDataset": { + "additionalProperties": false, + "properties": { + "DatasetName": { + "markdownDescription": "The name of the data set whose content generation triggers the new data set content generation\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetName", + "type": "string" + } + }, + "required": [ + "DatasetName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.Variable": { + "additionalProperties": false, + "properties": { + "DatasetContentVersionValue": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DatasetContentVersionValue", + "markdownDescription": "The value of the variable as a structure that specifies a dataset content version\\. \n*Required*: No \n*Type*: [DatasetContentVersionValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-datasetcontentversionvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetContentVersionValue" + }, + "DoubleValue": { + "markdownDescription": "The value of the variable as a double \\(numeric\\)\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DoubleValue", + "type": "number" + }, + "OutputFileUriValue": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.OutputFileUriValue", + "markdownDescription": "The value of the variable as a structure that specifies an output file URI\\. \n*Required*: No \n*Type*: [OutputFileUriValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-outputfileurivalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputFileUriValue" + }, + "StringValue": { + "markdownDescription": "The value of the variable as a string\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StringValue", + "type": "string" + }, + "VariableName": { + "markdownDescription": "The name of the variable\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VariableName", + "type": "string" + } + }, + "required": [ + "VariableName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.VersioningConfiguration": { + "additionalProperties": false, + "properties": { + "MaxVersions": { + "markdownDescription": "How many versions of dataset contents are kept\\. The `unlimited` parameter must be `false`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxVersions", + "type": "number" + }, + "Unlimited": { + "markdownDescription": "If true, unlimited versions of dataset contents are kept\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the data store\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatastoreName", + "type": "string" + }, + "DatastorePartitions": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.DatastorePartitions", + "markdownDescription": "Information about the partition dimensions in a data store\\. \n*Required*: No \n*Type*: [DatastorePartitions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorepartitions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatastorePartitions" + }, + "DatastoreStorage": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.DatastoreStorage", + "markdownDescription": "Where data store data is stored\\. \n*Required*: No \n*Type*: [DatastoreStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorestorage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatastoreStorage" + }, + "FileFormatConfiguration": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.FileFormatConfiguration", + "markdownDescription": "Contains the configuration information of file formats\\. AWS IoT Analytics data stores support JSON and [Parquet](https://parquet.apache.org/)\\. \nThe default file format is JSON\\. You can specify only one format\\. \nYou can't change the file format after you create the data store\\. \n*Required*: No \n*Type*: [FileFormatConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-fileformatconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileFormatConfiguration" + }, + "RetentionPeriod": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.RetentionPeriod", + "markdownDescription": "How long, in days, message data is kept for the data store\\. When `customerManagedS3` storage is selected, this parameter is ignored\\. \n*Required*: No \n*Type*: [RetentionPeriod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-retentionperiod.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetentionPeriod" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Metadata which can be used to manage the data store\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The name of the column\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of data\\. For more information about the supported data types, see [Common data types](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-common.html) in the * AWS Glue Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.CustomerManagedS3": { + "additionalProperties": false, + "properties": { + "Bucket": { + "markdownDescription": "The name of the Amazon S3 bucket where your data is stored\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9.\\-_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", + "type": "string" + }, + "KeyPrefix": { + "markdownDescription": "\\(Optional\\) The prefix used to create the keys of the data store data objects\\. Each object in an Amazon S3 bucket has a key that is its unique identifier in the bucket\\. Each object in a bucket has exactly one key\\. The prefix must end with a forward slash \\(/\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9!_.*'()/{}:-]*/$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyPrefix", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the role that grants AWS IoT Analytics permission to interact with your Amazon S3 resources\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + } + }, + "required": [ + "Bucket", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.CustomerManagedS3Storage": { + "additionalProperties": false, + "properties": { + "Bucket": { + "markdownDescription": "The name of the Amazon S3 bucket where your data is stored\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", + "type": "string" + }, + "KeyPrefix": { + "markdownDescription": "\\(Optional\\) The prefix used to create the keys of the data store data objects\\. Each object in an Amazon S3 bucket has a key that is its unique identifier in the bucket\\. Each object in a bucket has exactly one key\\. The prefix must end with a forward slash \\(/\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyPrefix", + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.DatastorePartition": { + "additionalProperties": false, + "properties": { + "Partition": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.Partition", + "markdownDescription": "A partition dimension defined by an attribute\\. \n*Required*: No \n*Type*: [Partition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-partition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Partition" + }, + "TimestampPartition": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.TimestampPartition", + "markdownDescription": "A partition dimension defined by a timestamp attribute\\. \n*Required*: No \n*Type*: [TimestampPartition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-timestamppartition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimestampPartition" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.DatastorePartitions": { + "additionalProperties": false, + "properties": { + "Partitions": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.DatastorePartition" + }, + "markdownDescription": "A list of partition dimensions in a data store\\. \n*Required*: No \n*Type*: List of [DatastorePartition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorepartition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Partitions", + "type": "array" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.DatastoreStorage": { + "additionalProperties": false, + "properties": { + "CustomerManagedS3": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.CustomerManagedS3", + "markdownDescription": "Use this to store data store data in an S3 bucket that you manage\\. The choice of service\\-managed or customer\\-managed S3 storage cannot be changed after creation of the data store\\. \n*Required*: No \n*Type*: [CustomerManagedS3](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-customermanageds3.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomerManagedS3" + }, + "IotSiteWiseMultiLayerStorage": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.IotSiteWiseMultiLayerStorage", + "markdownDescription": "Use this to store data used by AWS IoT SiteWise in an Amazon S3 bucket that you manage\\. You can't change the choice of Amazon S3 storage after your data store is created\\. \n*Required*: No \n*Type*: [IotSiteWiseMultiLayerStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-iotsitewisemultilayerstorage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotSiteWiseMultiLayerStorage" + }, + "ServiceManagedS3": { + "markdownDescription": "Use this to store data store data in an S3 bucket managed by the AWS IoT Analytics service\\. The choice of service\\-managed or customer\\-managed S3 storage cannot be changed after creation of the data store\\. \n*Required*: No \n*Type*: [ServiceManagedS3](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-servicemanageds3.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceManagedS3", + "type": "object" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.FileFormatConfiguration": { + "additionalProperties": false, + "properties": { + "JsonConfiguration": { + "markdownDescription": "Contains the configuration information of the JSON format\\. \n*Required*: No \n*Type*: [JsonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-jsonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JsonConfiguration", + "type": "object" + }, + "ParquetConfiguration": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.ParquetConfiguration", + "markdownDescription": "Contains the configuration information of the Parquet format\\. \n*Required*: No \n*Type*: [ParquetConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-parquetconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParquetConfiguration" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.IotSiteWiseMultiLayerStorage": { + "additionalProperties": false, + "properties": { + "CustomerManagedS3Storage": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.CustomerManagedS3Storage", + "markdownDescription": "Stores data used by AWS IoT SiteWise in an Amazon S3 bucket that you manage\\. \n*Required*: No \n*Type*: [CustomerManagedS3Storage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-customermanageds3storage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomerManagedS3Storage" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.ParquetConfiguration": { + "additionalProperties": false, + "properties": { + "SchemaDefinition": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.SchemaDefinition", + "markdownDescription": "Information needed to define a schema\\. \n*Required*: No \n*Type*: [SchemaDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-schemadefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaDefinition" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.Partition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "markdownDescription": "The name of the attribute that defines a partition dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeName", + "type": "string" + } + }, + "required": [ + "AttributeName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "NumberOfDays": { + "markdownDescription": "The number of days that message data is kept\\. The `unlimited` parameter must be false\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfDays", + "type": "number" + }, + "Unlimited": { + "markdownDescription": "If true, message data is kept indefinitely\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unlimited", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.SchemaDefinition": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.Column" + }, + "markdownDescription": "Specifies one or more columns that store your data\\. \nEach schema can have up to 100 columns\\. Each column can have up to 100 nested types\\. \n*Required*: No \n*Type*: List of [Column](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-column.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Columns", + "type": "array" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.TimestampPartition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "markdownDescription": "The attribute name of the partition defined by a timestamp\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeName", + "type": "string" + }, + "TimestampFormat": { + "markdownDescription": "The timestamp format of a partition defined by a timestamp\\. The default format is seconds since epoch \\(January 1, 1970 at midnight UTC time\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "A list of \"PipelineActivity\" objects\\. Activities perform transformations on your messages, such as removing, renaming or adding message attributes; filtering messages based on attribute values; invoking your Lambda functions on messages for advanced processing; or performing mathematical transformations to normalize device data\\. \nThe list can be 2\\-25 **PipelineActivity** objects and must contain both a `channel` and a `datastore` activity\\. Each entry in the list must contain only one activity, for example: \n `pipelineActivities = [ { \"channel\": { ... } }, { \"lambda\": { ... } }, ... ]` \n*Required*: Yes \n*Type*: List of [Activity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html) \n*Maximum*: `25` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PipelineActivities", + "type": "array" + }, + "PipelineName": { + "markdownDescription": "The name of the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PipelineName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Metadata which can be used to manage the pipeline\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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", + "markdownDescription": "Adds other attributes based on existing attributes in the message\\. \n*Required*: No \n*Type*: [AddAttributes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-addattributes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddAttributes" + }, + "Channel": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Channel", + "markdownDescription": "Determines the source of the messages to be processed\\. \n*Required*: No \n*Type*: [Channel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-channel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Channel" + }, + "Datastore": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Datastore", + "markdownDescription": "Specifies where to store the processed message data\\. \n*Required*: No \n*Type*: [Datastore](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-datastore.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Datastore" + }, + "DeviceRegistryEnrich": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.DeviceRegistryEnrich", + "markdownDescription": "Adds data from the AWS IoT device registry to your message\\. \n*Required*: No \n*Type*: [DeviceRegistryEnrich](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceregistryenrich.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceRegistryEnrich" + }, + "DeviceShadowEnrich": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.DeviceShadowEnrich", + "markdownDescription": "Adds information from the AWS IoT Device Shadows service to a message\\. \n*Required*: No \n*Type*: [DeviceShadowEnrich](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceshadowenrich.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceShadowEnrich" + }, + "Filter": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Filter", + "markdownDescription": "Filters a message based on its attributes\\. \n*Required*: No \n*Type*: [Filter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-filter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filter" + }, + "Lambda": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Lambda", + "markdownDescription": "Runs a Lambda function to modify the message\\. \n*Required*: No \n*Type*: [Lambda](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-lambda.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Lambda" + }, + "Math": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Math", + "markdownDescription": "Computes an arithmetic expression using the message's attributes and adds it to the message\\. \n*Required*: No \n*Type*: [Math](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-math.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Math" + }, + "RemoveAttributes": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.RemoveAttributes", + "markdownDescription": "Removes attributes from a message\\. \n*Required*: No \n*Type*: [RemoveAttributes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-removeattributes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoveAttributes" + }, + "SelectAttributes": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.SelectAttributes", + "markdownDescription": "Creates a new message using only the specified attributes from the original message\\. \n*Required*: No \n*Type*: [SelectAttributes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-selectattributes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SelectAttributes" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.AddAttributes": { + "additionalProperties": false, + "properties": { + "Attributes": { + "additionalProperties": true, + "markdownDescription": "A list of 1\\-50 \"AttributeNameMapping\" objects that map an existing attribute to a new attribute\\. \nThe existing attributes remain in the message, so if you want to remove the originals, use \"RemoveAttributeActivity\"\\.\n*Required*: Yes \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Attributes", + "type": "object" + }, + "Name": { + "markdownDescription": "The name of the 'addAttributes' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Next": { + "markdownDescription": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Next", + "type": "string" + } + }, + "required": [ + "Attributes", + "Name" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Channel": { + "additionalProperties": false, + "properties": { + "ChannelName": { + "markdownDescription": "The name of the channel from which the messages are processed\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelName", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the 'channel' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Next": { + "markdownDescription": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Next", + "type": "string" + } + }, + "required": [ + "ChannelName", + "Name" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Datastore": { + "additionalProperties": false, + "properties": { + "DatastoreName": { + "markdownDescription": "The name of the data store where processed messages are stored\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `(^(?!_{2}))(^[a-zA-Z0-9_]+$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatastoreName", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the datastore activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "DatastoreName", + "Name" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.DeviceRegistryEnrich": { + "additionalProperties": false, + "properties": { + "Attribute": { + "markdownDescription": "The name of the attribute that is added to the message\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attribute", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the 'deviceRegistryEnrich' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Next": { + "markdownDescription": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Next", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the role that allows access to the device's registry information\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "ThingName": { + "markdownDescription": "The name of the IoT device whose registry information is added to the message\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThingName", + "type": "string" + } + }, + "required": [ + "Attribute", + "Name", + "RoleArn", + "ThingName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.DeviceShadowEnrich": { + "additionalProperties": false, + "properties": { + "Attribute": { + "markdownDescription": "The name of the attribute that is added to the message\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attribute", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the 'deviceShadowEnrich' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Next": { + "markdownDescription": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Next", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the role that allows access to the device's shadow\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "ThingName": { + "markdownDescription": "The name of the IoT device whose shadow information is added to the message\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThingName", + "type": "string" + } + }, + "required": [ + "Attribute", + "Name", + "RoleArn", + "ThingName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Filter": { + "additionalProperties": false, + "properties": { + "Filter": { + "markdownDescription": "An expression that looks like an SQL WHERE clause that must return a Boolean value\\. \n*Required*: Yes \n*Type*: [String](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-iotanalytics-pipeline-filter.html#aws-properties-iotanalytics-pipeline-filter) \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filter", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the 'filter' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Next": { + "markdownDescription": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Next", + "type": "string" + } + }, + "required": [ + "Filter", + "Name" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Lambda": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "markdownDescription": "The number of messages passed to the Lambda function for processing\\. \nThe AWS Lambda function must be able to process all of these messages within five minutes, which is the maximum timeout duration for Lambda functions\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BatchSize", + "type": "number" + }, + "LambdaName": { + "markdownDescription": "The name of the Lambda function that is run on the message\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9_-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaName", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the 'lambda' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Next": { + "markdownDescription": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Next", + "type": "string" + } + }, + "required": [ + "BatchSize", + "LambdaName", + "Name" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Math": { + "additionalProperties": false, + "properties": { + "Attribute": { + "markdownDescription": "The name of the attribute that contains the result of the math operation\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attribute", + "type": "string" + }, + "Math": { + "markdownDescription": "An expression that uses one or more existing attributes and must return an integer value\\. \n*Required*: Yes \n*Type*: [String](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-properties-iotanalytics-pipeline-math.html#aws-properties-iotanalytics-pipeline-math) \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Math", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the 'math' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Next": { + "markdownDescription": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Next", + "type": "string" + } + }, + "required": [ + "Attribute", + "Math", + "Name" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.RemoveAttributes": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of 1\\-50 attributes to remove from the message\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attributes", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the 'removeAttributes' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Next": { + "markdownDescription": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Next", + "type": "string" + } + }, + "required": [ + "Attributes", + "Name" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.SelectAttributes": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of the attributes to select from the message\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attributes", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the 'selectAttributes' activity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Next": { + "markdownDescription": "The next activity in the pipeline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The configuration of the Suite Definition\\. Listed below are the required elements of the `SuiteDefinitionConfiguration`\\. \n**devicePermissionRoleArn** \nThe device permission arn\\. \nThis is a required element\\. \n**Type:** String \n**devices** \nThe list of configured devices under test\\. For more information on devices under test, see [DeviceUnderTest](http://amazonaws.com/iot/latest/apireference/API_iotdeviceadvisor_DeviceUnderTest.html) \nNot a required element\\. \n**Type:** List of devices under test \n**intendedForQualification** \nThe tests intended for qualification in a suite\\. \nNot a required element\\. \n**Type:** Boolean \n**rootGroup** \nThe test suite root group\\. For more information on creating and using root groups see the [Device Advisor workflow](https://docs.aws.amazon.com/iot/latest/developerguide/device-advisor-workflow.html)\\. \nThis is a required element\\. \n**Type:** String \n**suiteDefinitionName** \nThe Suite Definition Configuration name\\. \nThis is a required element\\. \n**Type:** String\n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuiteDefinitionConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Metadata that can be used to manage the the Suite Definition\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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", + "markdownDescription": "Information that defines how a detector operates\\. \n*Required*: Yes \n*Type*: [DetectorModelDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-detectormodeldefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DetectorModelDefinition" + }, + "DetectorModelDescription": { + "markdownDescription": "A brief description of the detector model\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DetectorModelDescription", + "type": "string" + }, + "DetectorModelName": { + "markdownDescription": "The name of the detector model\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9_-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DetectorModelName", + "type": "string" + }, + "EvaluationMethod": { + "markdownDescription": "Information about the order in which events are evaluated and how actions are executed\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `BATCH | SERIAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EvaluationMethod", + "type": "string" + }, + "Key": { + "markdownDescription": "The value used to identify a detector instance\\. When a device or system sends input, a new detector instance with a unique key value is created\\. AWS IoT Events can continue to route input to its corresponding detector instance based on this identifying information\\. \nThis parameter uses a JSON\\-path expression to select the attribute\\-value pair in the message payload that is used for identification\\. To route the message to the correct detector instance, the device must send a message payload that contains the same attribute\\-value\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^((`[\\w\\- ]+`)|([\\w\\-]+))(\\.((`[\\w- ]+`)|([\\w\\-]+)))*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Key", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the role that grants permission to AWS IoT Events to perform its operations\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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", + "markdownDescription": "Information needed to clear the timer\\. \n*Required*: No \n*Type*: [ClearTimer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-cleartimer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClearTimer" + }, + "DynamoDB": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.DynamoDB", + "markdownDescription": "Writes to the DynamoDB table that you created\\. The default action payload contains all attribute\\-value pairs that have the information about the detector model instance and the event that triggered the action\\. You can customize the [payload](https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html)\\. One column of the DynamoDB table receives all attribute\\-value pairs in the payload that you specify\\. For more information, see [Actions](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-event-actions.html) in * AWS IoT Events Developer Guide*\\. \n*Required*: No \n*Type*: [DynamoDB](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-dynamodb.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DynamoDB" + }, + "DynamoDBv2": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.DynamoDBv2", + "markdownDescription": "Writes to the DynamoDB table that you created\\. The default action payload contains all attribute\\-value pairs that have the information about the detector model instance and the event that triggered the action\\. You can customize the [payload](https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html)\\. A separate column of the DynamoDB table receives one attribute\\-value pair in the payload that you specify\\. For more information, see [Actions](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-event-actions.html) in * AWS IoT Events Developer Guide*\\. \n*Required*: No \n*Type*: [DynamoDBv2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-dynamodbv2.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DynamoDBv2" + }, + "Firehose": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Firehose", + "markdownDescription": "Sends information about the detector model instance and the event that triggered the action to an Amazon Kinesis Data Firehose delivery stream\\. \n*Required*: No \n*Type*: [Firehose](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-firehose.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Firehose" + }, + "IotEvents": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.IotEvents", + "markdownDescription": "Sends AWS IoT Events input, which passes information about the detector model instance and the event that triggered the action\\. \n*Required*: No \n*Type*: [IotEvents](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iotevents.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotEvents" + }, + "IotSiteWise": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.IotSiteWise", + "markdownDescription": "Sends information about the detector model instance and the event that triggered the action to an asset property in AWS IoT SiteWise \\. \n*Required*: No \n*Type*: [IotSiteWise](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iotsitewise.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotSiteWise" + }, + "IotTopicPublish": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.IotTopicPublish", + "markdownDescription": "Publishes an MQTT message with the given topic to the AWS IoT message broker\\. \n*Required*: No \n*Type*: [IotTopicPublish](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iottopicpublish.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IotTopicPublish" + }, + "Lambda": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Lambda", + "markdownDescription": "Calls a Lambda function, passing in information about the detector model instance and the event that triggered the action\\. \n*Required*: No \n*Type*: [Lambda](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-lambda.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Lambda" + }, + "ResetTimer": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.ResetTimer", + "markdownDescription": "Information needed to reset the timer\\. \n*Required*: No \n*Type*: [ResetTimer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-resettimer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResetTimer" + }, + "SetTimer": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.SetTimer", + "markdownDescription": "Information needed to set the timer\\. \n*Required*: No \n*Type*: [SetTimer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-settimer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SetTimer" + }, + "SetVariable": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.SetVariable", + "markdownDescription": "Sets a variable to a specified value\\. \n*Required*: No \n*Type*: [SetVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-setvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SetVariable" + }, + "Sns": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Sns", + "markdownDescription": "Sends an Amazon SNS message\\. \n*Required*: No \n*Type*: [Sns](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-sns.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sns" + }, + "Sqs": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Sqs", + "markdownDescription": "Sends an Amazon SNS message\\. \n*Required*: No \n*Type*: [Sqs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-sqs.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sqs" + } + }, + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.AssetPropertyTimestamp": { + "additionalProperties": false, + "properties": { + "OffsetInNanos": { + "markdownDescription": "The nanosecond offset converted from `timeInSeconds`\\. The valid range is between 0\\-999999999\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OffsetInNanos", + "type": "string" + }, + "TimeInSeconds": { + "markdownDescription": "The timestamp, in seconds, in the Unix epoch format\\. The valid range is between 1\\-31556889864403199\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeInSeconds", + "type": "string" + } + }, + "required": [ + "TimeInSeconds" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.AssetPropertyValue": { + "additionalProperties": false, + "properties": { + "Quality": { + "markdownDescription": "The quality of the asset property value\\. The value must be `'GOOD'`, `'BAD'`, or `'UNCERTAIN'`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Quality", + "type": "string" + }, + "Timestamp": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.AssetPropertyTimestamp", + "markdownDescription": "The timestamp associated with the asset property value\\. The default is the current event time\\. \n*Required*: No \n*Type*: [AssetPropertyTimestamp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertytimestamp.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timestamp" + }, + "Value": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.AssetPropertyVariant", + "markdownDescription": "The value to send to an asset property\\. \n*Required*: Yes \n*Type*: [AssetPropertyVariant](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertyvariant.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.AssetPropertyVariant": { + "additionalProperties": false, + "properties": { + "BooleanValue": { + "markdownDescription": "The asset property value is a Boolean value that must be `'TRUE'` or `'FALSE'`\\. You must use an expression, and the evaluated result should be a Boolean value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BooleanValue", + "type": "string" + }, + "DoubleValue": { + "markdownDescription": "The asset property value is a double\\. You must use an expression, and the evaluated result should be a double\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DoubleValue", + "type": "string" + }, + "IntegerValue": { + "markdownDescription": "The asset property value is an integer\\. You must use an expression, and the evaluated result should be an integer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegerValue", + "type": "string" + }, + "StringValue": { + "markdownDescription": "The asset property value is a string\\. You must use an expression, and the evaluated result should be a string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StringValue", + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.ClearTimer": { + "additionalProperties": false, + "properties": { + "TimerName": { + "markdownDescription": "The name of the timer to clear\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimerName", + "type": "string" + } + }, + "required": [ + "TimerName" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.DetectorModelDefinition": { + "additionalProperties": false, + "properties": { + "InitialStateName": { + "markdownDescription": "The state that is entered at the creation of each detector \\(instance\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InitialStateName", + "type": "string" + }, + "States": { + "items": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.State" + }, + "markdownDescription": "Information about the states of the detector\\. \n*Required*: Yes \n*Type*: List of [State](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-state.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "States", + "type": "array" + } + }, + "required": [ + "InitialStateName", + "States" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.DynamoDB": { + "additionalProperties": false, + "properties": { + "HashKeyField": { + "markdownDescription": "The name of the hash key \\(also called the partition key\\)\\. The `hashKeyField` value must match the partition key of the target DynamoDB table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HashKeyField", + "type": "string" + }, + "HashKeyType": { + "markdownDescription": "The data type for the hash key \\(also called the partition key\\)\\. You can specify the following values: \n+ `'STRING'` \\- The hash key is a string\\.\n+ `'NUMBER'` \\- The hash key is a number\\.\nIf you don't specify `hashKeyType`, the default value is `'STRING'`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HashKeyType", + "type": "string" + }, + "HashKeyValue": { + "markdownDescription": "The value of the hash key \\(also called the partition key\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HashKeyValue", + "type": "string" + }, + "Operation": { + "markdownDescription": "The type of operation to perform\\. You can specify the following values: \n+ `'INSERT'` \\- Insert data as a new item into the DynamoDB table\\. This item uses the specified hash key as a partition key\\. If you specified a range key, the item uses the range key as a sort key\\.\n+ `'UPDATE'` \\- Update an existing item of the DynamoDB table with new data\\. This item's partition key must match the specified hash key\\. If you specified a range key, the range key must match the item's sort key\\.\n+ `'DELETE'` \\- Delete an existing item of the DynamoDB table\\. This item's partition key must match the specified hash key\\. If you specified a range key, the range key must match the item's sort key\\.\nIf you don't specify this parameter, AWS IoT Events triggers the `'INSERT'` operation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Operation", + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload", + "markdownDescription": "Information needed to configure the payload\\. \nBy default, AWS IoT Events generates a standard payload in JSON for any action\\. This action payload contains all attribute\\-value pairs that have the information about the detector model instance and the event triggered the action\\. To configure the action payload, you can use `contentExpression`\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Payload" + }, + "PayloadField": { + "markdownDescription": "The name of the DynamoDB column that receives the action payload\\. \nIf you don't specify this parameter, the name of the DynamoDB column is `payload`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PayloadField", + "type": "string" + }, + "RangeKeyField": { + "markdownDescription": "The name of the range key \\(also called the sort key\\)\\. The `rangeKeyField` value must match the sort key of the target DynamoDB table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RangeKeyField", + "type": "string" + }, + "RangeKeyType": { + "markdownDescription": "The data type for the range key \\(also called the sort key\\), You can specify the following values: \n+ `'STRING'` \\- The range key is a string\\.\n+ `'NUMBER'` \\- The range key is number\\.\nIf you don't specify `rangeKeyField`, the default value is `'STRING'`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RangeKeyType", + "type": "string" + }, + "RangeKeyValue": { + "markdownDescription": "The value of the range key \\(also called the sort key\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RangeKeyValue", + "type": "string" + }, + "TableName": { + "markdownDescription": "The name of the DynamoDB table\\. The `tableName` value must match the table name of the target DynamoDB table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", + "type": "string" + } + }, + "required": [ + "HashKeyField", + "HashKeyValue", + "TableName" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.DynamoDBv2": { + "additionalProperties": false, + "properties": { + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload", + "markdownDescription": "Information needed to configure the payload\\. \nBy default, AWS IoT Events generates a standard payload in JSON for any action\\. This action payload contains all attribute\\-value pairs that have the information about the detector model instance and the event triggered the action\\. To configure the action payload, you can use `contentExpression`\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Payload" + }, + "TableName": { + "markdownDescription": "The name of the DynamoDB table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", + "type": "string" + } + }, + "required": [ + "TableName" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.Event": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Action" + }, + "markdownDescription": "The actions to be performed\\. \n*Required*: No \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", + "type": "array" + }, + "Condition": { + "markdownDescription": "Optional\\. The Boolean expression that, when TRUE, causes the `actions` to be performed\\. If not present, the actions are performed \\(=TRUE\\)\\. If the expression result is not a Boolean value, the actions are not performed \\(=FALSE\\)\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Condition", + "type": "string" + }, + "EventName": { + "markdownDescription": "The name of the event\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventName", + "type": "string" + } + }, + "required": [ + "EventName" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.Firehose": { + "additionalProperties": false, + "properties": { + "DeliveryStreamName": { + "markdownDescription": "The name of the Kinesis Data Firehose delivery stream where the data is written\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryStreamName", + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload", + "markdownDescription": "You can configure the action payload when you send a message to an Amazon Kinesis Data Firehose delivery stream\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Payload" + }, + "Separator": { + "markdownDescription": "A character separator that is used to separate records written to the Kinesis Data Firehose delivery stream\\. Valid values are: '\\\\n' \\(newline\\), '\\\\t' \\(tab\\), '\\\\r\\\\n' \\(Windows newline\\), ',' \\(comma\\)\\. \n*Required*: No \n*Type*: String \n*Pattern*: `([\\n\\t])|(\\r\\n)|(,)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Separator", + "type": "string" + } + }, + "required": [ + "DeliveryStreamName" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.IotEvents": { + "additionalProperties": false, + "properties": { + "InputName": { + "markdownDescription": "The name of the AWS IoT Events input where the data is sent\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputName", + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload", + "markdownDescription": "You can configure the action payload when you send a message to an AWS IoT Events input\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Payload" + } + }, + "required": [ + "InputName" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.IotSiteWise": { + "additionalProperties": false, + "properties": { + "AssetId": { + "markdownDescription": "The ID of the asset that has the specified property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetId", + "type": "string" + }, + "EntryId": { + "markdownDescription": "A unique identifier for this entry\\. You can use the entry ID to track which data entry causes an error in case of failure\\. The default is a new unique identifier\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntryId", + "type": "string" + }, + "PropertyAlias": { + "markdownDescription": "The alias of the asset property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropertyAlias", + "type": "string" + }, + "PropertyId": { + "markdownDescription": "The ID of the asset property\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropertyId", + "type": "string" + }, + "PropertyValue": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.AssetPropertyValue", + "markdownDescription": "The value to send to the asset property\\. This value contains timestamp, quality, and value \\(TQV\\) information\\. \n*Required*: Yes \n*Type*: [AssetPropertyValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertyvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropertyValue" + } + }, + "required": [ + "PropertyValue" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.IotTopicPublish": { + "additionalProperties": false, + "properties": { + "MqttTopic": { + "markdownDescription": "The MQTT topic of the message\\. You can use a string expression that includes variables \\(`$variable.`\\) and input values \\(`$input..`\\) as the topic string\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MqttTopic", + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload", + "markdownDescription": "You can configure the action payload when you publish a message to an AWS IoT Core topic\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Payload" + } + }, + "required": [ + "MqttTopic" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.Lambda": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "markdownDescription": "The ARN of the Lambda function that is executed\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FunctionArn", + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload", + "markdownDescription": "You can configure the action payload when you send a message to a Lambda function\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Payload" + } + }, + "required": [ + "FunctionArn" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.OnEnter": { + "additionalProperties": false, + "properties": { + "Events": { + "items": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Event" + }, + "markdownDescription": "Specifies the actions that are performed when the state is entered and the `condition` is `TRUE`\\. \n*Required*: No \n*Type*: List of [Event](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-event.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Events", + "type": "array" + } + }, + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.OnExit": { + "additionalProperties": false, + "properties": { + "Events": { + "items": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Event" + }, + "markdownDescription": "Specifies the `actions` that are performed when the state is exited and the `condition` is `TRUE`\\. \n*Required*: No \n*Type*: List of [Event](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-event.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Events", + "type": "array" + } + }, + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.OnInput": { + "additionalProperties": false, + "properties": { + "Events": { + "items": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Event" + }, + "markdownDescription": "Specifies the actions performed when the `condition` evaluates to TRUE\\. \n*Required*: No \n*Type*: List of [Event](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-event.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Events", + "type": "array" + }, + "TransitionEvents": { + "items": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.TransitionEvent" + }, + "markdownDescription": "Specifies the actions performed, and the next state entered, when a `condition` evaluates to TRUE\\. \n*Required*: No \n*Type*: List of [TransitionEvent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-transitionevent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitionEvents", + "type": "array" + } + }, + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.Payload": { + "additionalProperties": false, + "properties": { + "ContentExpression": { + "markdownDescription": "The content of the payload\\. You can use a string expression that includes quoted strings \\(`''`\\), variables \\(`$variable.`\\), input values \\(`$input..`\\), string concatenations, and quoted strings that contain `${}` as the content\\. The recommended maximum size of a content expression is 1 KB\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentExpression", + "type": "string" + }, + "Type": { + "markdownDescription": "The value of the payload type can be either `STRING` or `JSON`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `JSON | STRING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "ContentExpression", + "Type" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.ResetTimer": { + "additionalProperties": false, + "properties": { + "TimerName": { + "markdownDescription": "The name of the timer to reset\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimerName", + "type": "string" + } + }, + "required": [ + "TimerName" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.SetTimer": { + "additionalProperties": false, + "properties": { + "DurationExpression": { + "markdownDescription": "The duration of the timer, in seconds\\. You can use a string expression that includes numbers, variables \\(`$variable.`\\), and input values \\(`$input..`\\) as the duration\\. The range of the duration is 1\\-31622400 seconds\\. To ensure accuracy, the minimum duration is 60 seconds\\. The evaluated result of the duration is rounded down to the nearest whole number\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DurationExpression", + "type": "string" + }, + "Seconds": { + "markdownDescription": "The number of seconds until the timer expires\\. The minimum value is 60 seconds to ensure accuracy\\. The maximum value is 31622400 seconds\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `31622400` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Seconds", + "type": "number" + }, + "TimerName": { + "markdownDescription": "The name of the timer\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimerName", + "type": "string" + } + }, + "required": [ + "TimerName" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.SetVariable": { + "additionalProperties": false, + "properties": { + "Value": { + "markdownDescription": "The new value of the variable\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + }, + "VariableName": { + "markdownDescription": "The name of the variable\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VariableName", + "type": "string" + } + }, + "required": [ + "Value", + "VariableName" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.Sns": { + "additionalProperties": false, + "properties": { + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload", + "markdownDescription": "You can configure the action payload when you send a message as an Amazon SNS push notification\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Payload" + }, + "TargetArn": { + "markdownDescription": "The ARN of the Amazon SNS target where the message is sent\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetArn", + "type": "string" + } + }, + "required": [ + "TargetArn" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.Sqs": { + "additionalProperties": false, + "properties": { + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload", + "markdownDescription": "You can configure the action payload when you send a message to an Amazon SQS queue\\. \n*Required*: No \n*Type*: [Payload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Payload" + }, + "QueueUrl": { + "markdownDescription": "The URL of the SQS queue where the data is written\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueueUrl", + "type": "string" + }, + "UseBase64": { + "markdownDescription": "Set this to TRUE if you want the data to be base\\-64 encoded before it is written to the queue\\. Otherwise, set this to FALSE\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseBase64", + "type": "boolean" + } + }, + "required": [ + "QueueUrl" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.State": { + "additionalProperties": false, + "properties": { + "OnEnter": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.OnEnter", + "markdownDescription": "When entering this state, perform these `actions` if the `condition` is TRUE\\. \n*Required*: No \n*Type*: [OnEnter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-onenter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnEnter" + }, + "OnExit": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.OnExit", + "markdownDescription": "When exiting this state, perform these `actions` if the specified `condition` is `TRUE`\\. \n*Required*: No \n*Type*: [OnExit](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-onexit.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnExit" + }, + "OnInput": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.OnInput", + "markdownDescription": "When an input is received and the `condition` is TRUE, perform the specified `actions`\\. \n*Required*: No \n*Type*: [OnInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-oninput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnInput" + }, + "StateName": { + "markdownDescription": "The name of the state\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StateName", + "type": "string" + } + }, + "required": [ + "StateName" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.TransitionEvent": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Action" + }, + "markdownDescription": "The actions to be performed\\. \n*Required*: No \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", + "type": "array" + }, + "Condition": { + "markdownDescription": "Required\\. A Boolean expression that when TRUE causes the actions to be performed and the `nextState` to be entered\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Condition", + "type": "string" + }, + "EventName": { + "markdownDescription": "The name of the transition event\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventName", + "type": "string" + }, + "NextState": { + "markdownDescription": "The next state to enter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The definition of the input\\. \n*Required*: Yes \n*Type*: [InputDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-input-inputdefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputDefinition" + }, + "InputDescription": { + "markdownDescription": "A brief description of the input\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputDescription", + "type": "string" + }, + "InputName": { + "markdownDescription": "The name of the input\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InputName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "An expression that specifies an attribute\\-value pair in a JSON structure\\. Use this to specify an attribute from the JSON payload that is made available by the input\\. Inputs are derived from messages sent to AWS IoT Events \\(`BatchPutMessage`\\)\\. Each such message contains a JSON payload\\. The attribute \\(and its paired value\\) specified here are available for use in the `condition` expressions used by detectors\\. \nSyntax: `....` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^((`[\\w\\- ]+`)|([\\w\\-]+))(\\.((`[\\w- ]+`)|([\\w\\-]+)))*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JsonPath", + "type": "string" + } + }, + "required": [ + "JsonPath" + ], + "type": "object" + }, + "AWS::IoTEvents::Input.InputDefinition": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "$ref": "#/definitions/AWS::IoTEvents::Input.Attribute" + }, + "markdownDescription": "The attributes from the JSON payload that are made available by the input\\. Inputs are derived from messages sent to the AWS IoT Events system using `BatchPutMessage`\\. Each such message contains a JSON payload, and those attributes \\(and their paired values\\) specified here are available for use in the `condition` expressions used by detectors that monitor this input\\. \n*Required*: Yes \n*Type*: List of [Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-input-attribute.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attributes", + "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": { + "markdownDescription": "An optional description of the web application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `^[ -~]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationDescription", + "type": "string" + }, + "ApplicationName": { + "markdownDescription": "The name of the web application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[ -~]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationName", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the role that the web application assumes when it interacts with AWS IoT Core\\. \nThe name of the role must be in the form `FleetHub_random_string`\\.\nPattern: `^arn:[!-~]+$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A set of key/value pairs that you can use to manage the web application resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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", + "markdownDescription": "The identity for this access policy\\. Choose an AWS SSO user, an AWS SSO group, or an IAM user\\. \n*Required*: Yes \n*Type*: [AccessPolicyIdentity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-accesspolicyidentity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessPolicyIdentity" + }, + "AccessPolicyPermission": { + "markdownDescription": "The permission level for this access policy\\. Choose either a `ADMINISTRATOR` or `VIEWER`\\. Note that a project `ADMINISTRATOR` is also known as a project owner\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessPolicyPermission", + "type": "string" + }, + "AccessPolicyResource": { + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.AccessPolicyResource", + "markdownDescription": "The AWS IoT SiteWise Monitor resource for this access policy\\. Choose either a portal or a project\\. \n*Required*: Yes \n*Type*: [AccessPolicyResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-accesspolicyresource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "An IAM role identity\\. \n*Required*: No \n*Type*: [IamRole](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-iamrole.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamRole" + }, + "IamUser": { + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.IamUser", + "markdownDescription": "An IAM user identity\\. \n*Required*: No \n*Type*: [IamUser](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-iamuser.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamUser" + }, + "User": { + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.User", + "markdownDescription": "The AWS SSO user to which this access policy maps\\. \n*Required*: No \n*Type*: [User](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-user.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "User" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AccessPolicy.AccessPolicyResource": { + "additionalProperties": false, + "properties": { + "Portal": { + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.Portal", + "markdownDescription": "The AWS IoT SiteWise Monitor portal for this access policy\\. \n*Required*: No \n*Type*: [Portal](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-portal.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Portal" + }, + "Project": { + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.Project", + "markdownDescription": "The AWS IoT SiteWise Monitor project for this access policy\\. \n*Required*: No \n*Type*: [Project](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-project.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Project" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AccessPolicy.IamRole": { + "additionalProperties": false, + "properties": { + "arn": { + "markdownDescription": "The ARN of the IAM role\\. For more information, see [IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) in the *IAM User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "arn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AccessPolicy.IamUser": { + "additionalProperties": false, + "properties": { + "arn": { + "markdownDescription": "The ARN of the IAM user\\. For more information, see [IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) in the *IAM User Guide*\\. \nIf you delete the IAM user, access policies that contain this identity include an empty `arn`\\. You can delete the access policy for the IAM user that no longer exists\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "arn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AccessPolicy.Portal": { + "additionalProperties": false, + "properties": { + "id": { + "markdownDescription": "The ID of the portal\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "id", + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AccessPolicy.Project": { + "additionalProperties": false, + "properties": { + "id": { + "markdownDescription": "The ID of the project\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "id", + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AccessPolicy.User": { + "additionalProperties": false, + "properties": { + "id": { + "markdownDescription": "The ID of the user\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "A list of asset hierarchies that each contain a `hierarchyLogicalId`\\. A hierarchy specifies allowed parent/child asset relationships\\. \n*Required*: No \n*Type*: List of [AssetHierarchy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assethierarchy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetHierarchies", + "type": "array" + }, + "AssetModelId": { + "markdownDescription": "The ID of the asset model from which to create the asset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetModelId", + "type": "string" + }, + "AssetName": { + "markdownDescription": "A unique, friendly name for the asset\\. \nThe maximum length is 256 characters with the pattern `[^\\u0000-\\u001F\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetName", + "type": "string" + }, + "AssetProperties": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::Asset.AssetProperty" + }, + "markdownDescription": "The list of asset properties for the asset\\. \nThis object doesn't include properties that you define in composite models\\. You can find composite model properties in the `assetCompositeModels` object\\. \n*Required*: No \n*Type*: List of [AssetProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assetproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetProperties", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of key\\-value pairs that contain metadata for the asset\\. For more information, see [Tagging your AWS IoT SiteWise resources](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The Id of the child asset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChildAssetId", + "type": "string" + }, + "LogicalId": { + "markdownDescription": "The `LogicalID` of the hierarchy\\. This ID is a `hierarchyLogicalId`\\. \nThe maximum length is 256 characters, with the pattern `[^\\u0000-\\u001F\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogicalId", + "type": "string" + } + }, + "required": [ + "ChildAssetId", + "LogicalId" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Asset.AssetProperty": { + "additionalProperties": false, + "properties": { + "Alias": { + "markdownDescription": "The property alias that identifies the property, such as an OPC\\-UA server data stream path \\(for example, `/company/windfarm/3/turbine/7/temperature`\\)\\. For more information, see [Mapping industrial data streams to asset properties](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html) in the *AWS IoT SiteWise User Guide*\\. \nThe property alias must have 1\\-1000 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alias", + "type": "string" + }, + "LogicalId": { + "markdownDescription": "The `LogicalID` of the asset property\\. \nThe maximum length is 256 characters, with the pattern `[^\\u0000-\\u001F\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogicalId", + "type": "string" + }, + "NotificationState": { + "markdownDescription": "The MQTT notification state \\(enabled or disabled\\) for this asset property\\. When the notification state is enabled, AWS IoT SiteWise publishes property value updates to a unique MQTT topic\\. For more information, see [Interacting with other services](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/interact-with-other-services.html) in the *AWS IoT SiteWise User Guide*\\. \nIf you omit this parameter, the notification state is set to `DISABLED`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The composite asset models that are part of this asset model\\. Composite asset models are asset models that contain specific properties\\. Each composite model has a type that defines the properties that the composite model supports\\. You can use composite asset models to define alarms on this asset model\\. \n*Required*: No \n*Type*: List of [AssetModelCompositeModel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetModelCompositeModels", + "type": "array" + }, + "AssetModelDescription": { + "markdownDescription": "A description for the asset model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetModelDescription", + "type": "string" + }, + "AssetModelHierarchies": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelHierarchy" + }, + "markdownDescription": "The hierarchy definitions of the asset model\\. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model\\. For more information, see [Defining relationships between assets](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html) in the *AWS IoT SiteWiseUser Guide*\\. \nYou can specify up to 10 hierarchies per asset model\\. For more information, see [Quotas](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [AssetModelHierarchy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelhierarchy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetModelHierarchies", + "type": "array" + }, + "AssetModelName": { + "markdownDescription": "A unique, friendly name for the asset model\\. \nThe maximum length is 256 characters with the pattern `[^\\u0000-\\u001F\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetModelName", + "type": "string" + }, + "AssetModelProperties": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelProperty" + }, + "markdownDescription": "The property definitions of the asset model\\. For more information, see [Defining data properties](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html) in the *AWS IoT SiteWise User Guide*\\. \nYou can specify up to 200 properties per asset model\\. For more information, see [Quotas](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [AssetModelProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetModelProperties", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of key\\-value pairs that contain metadata for the asset\\. For more information, see [Tagging your AWS IoT SiteWise resources](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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" + }, + "markdownDescription": "The asset property definitions for this composite model\\. \n*Required*: No \n*Type*: List of [AssetModelProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CompositeModelProperties", + "type": "array" + }, + "Description": { + "markdownDescription": "The description of the composite model\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the composite model\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of the composite model\\. For alarm composite models, this type is `AWS/ALARM`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.AssetModelHierarchy": { + "additionalProperties": false, + "properties": { + "ChildAssetModelId": { + "markdownDescription": "The Id of the asset model\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChildAssetModelId", + "type": "string" + }, + "LogicalId": { + "markdownDescription": "The `LogicalID` of the asset model hierarchy\\. This ID is a `hierarchyLogicalId`\\. \nThe maximum length is 256 characters, with the pattern `[^\\u0000-\\u001F\\u007F]+` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogicalId", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the asset model hierarchy\\. \nThe maximum length is 256 characters with the pattern `[^\\u0000-\\u001F\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "ChildAssetModelId", + "LogicalId", + "Name" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.AssetModelProperty": { + "additionalProperties": false, + "properties": { + "DataType": { + "markdownDescription": "The data type of the asset model property\\. The value can be `STRING`, `INTEGER`, `DOUBLE`, `BOOLEAN`, or `STRUCT`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataType", + "type": "string" + }, + "DataTypeSpec": { + "markdownDescription": "The data type of the structure for this property\\. This parameter exists on properties that have the `STRUCT` data type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataTypeSpec", + "type": "string" + }, + "LogicalId": { + "markdownDescription": "The `LogicalID` of the asset model property\\. \nThe maximum length is 256 characters, with the pattern `[^\\\\u0000-\\\\u001F\\\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogicalId", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the asset model property\\. \nThe maximum length is 256 characters with the pattern `[^\\u0000-\\u001F\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.PropertyType", + "markdownDescription": "Contains a property type, which can be one of `attribute`, `measurement`, `metric`, or `transform`\\. \n*Required*: Yes \n*Type*: [PropertyType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-propertytype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type" + }, + "Unit": { + "markdownDescription": "The unit of the asset model property, such as `Newtons` or `RPM`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", + "type": "string" + } + }, + "required": [ + "DataType", + "LogicalId", + "Name", + "Type" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.Attribute": { + "additionalProperties": false, + "properties": { + "DefaultValue": { + "markdownDescription": "The default value of the asset model property attribute\\. All assets that you create from the asset model contain this attribute value\\. You can update an attribute's value after you create an asset\\. For more information, see [Updating attribute values](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultValue", + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.ExpressionVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The friendly name of the variable to be used in the expression\\. \nThe maximum length is 64 characters with the pattern `^[a-z][a-z0-9_]*$`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Value": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.VariableValue", + "markdownDescription": "The variable that identifies an asset property from which to use values\\. \n*Required*: Yes \n*Type*: [VariableValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.Metric": { + "additionalProperties": false, + "properties": { + "Expression": { + "markdownDescription": "The mathematical expression that defines the metric aggregation function\\. You can specify up to 10 variables per expression\\. You can specify up to 10 functions per expression\\. \nFor more information, see [Quotas](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Expression", + "type": "string" + }, + "Variables": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.ExpressionVariable" + }, + "markdownDescription": "The list of variables used in the expression\\. \n*Required*: Yes \n*Type*: List of [ExpressionVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-expressionvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Variables", + "type": "array" + }, + "Window": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.MetricWindow", + "markdownDescription": "The window \\(time interval\\) over which AWS IoT SiteWise computes the metric's aggregation expression\\. AWS IoT SiteWise computes one data point per `window`\\. \n*Required*: Yes \n*Type*: [MetricWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metricwindow.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Window" + } + }, + "required": [ + "Expression", + "Variables", + "Window" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.MetricWindow": { + "additionalProperties": false, + "properties": { + "Tumbling": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.TumblingWindow", + "markdownDescription": "The tumbling time interval window\\. \n*Required*: No \n*Type*: [TumblingWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-tumblingwindow.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tumbling" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.PropertyType": { + "additionalProperties": false, + "properties": { + "Attribute": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Attribute", + "markdownDescription": "Specifies an asset attribute property\\. An attribute generally contains static information, such as the serial number of an [industrial IoT](https://en.wikipedia.org/wiki/Internet_of_things#Industrial_applications) wind turbine\\. \nThis is required if the `TypeName` is `Attribute` and has a `DefaultValue`\\. \n*Required*: No \n*Type*: [Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-attribute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attribute" + }, + "Metric": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Metric", + "markdownDescription": "Specifies an asset metric property\\. A metric contains a mathematical expression that uses aggregate functions to process all input data points over a time interval and output a single data point, such as to calculate the average hourly temperature\\. \nThis is required if the `TypeName` is `Metric`\\. \n*Required*: No \n*Type*: [Metric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metric" + }, + "Transform": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Transform", + "markdownDescription": "Specifies an asset transform property\\. A transform contains a mathematical expression that maps a property's data points from one form to another, such as a unit conversion from Celsius to Fahrenheit\\. \nThis is required if the `TypeName` is `Transform`\\. \n*Required*: No \n*Type*: [Transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-transform.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Transform" + }, + "TypeName": { + "markdownDescription": "The type of property type, which can be one of `Attribute`, `Measurement`, `Metric`, or `Transform`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TypeName", + "type": "string" + } + }, + "required": [ + "TypeName" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.Transform": { + "additionalProperties": false, + "properties": { + "Expression": { + "markdownDescription": "The mathematical expression that defines the transformation function\\. You can specify up to 10 variables per expression\\. You can specify up to 10 functions per expression\\. \nFor more information, see [Quotas](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Expression", + "type": "string" + }, + "Variables": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.ExpressionVariable" + }, + "markdownDescription": "The list of variables used in the expression\\. \n*Required*: Yes \n*Type*: List of [ExpressionVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-expressionvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Variables", + "type": "array" + } + }, + "required": [ + "Expression", + "Variables" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.TumblingWindow": { + "additionalProperties": false, + "properties": { + "Interval": { + "markdownDescription": "The time interval for the tumbling window\\. The interval time must be between 1 minute and 1 week\\. \n AWS IoT SiteWise computes the `1w` interval the end of Sunday at midnight each week \\(UTC\\), the `1d` interval at the end of each day at midnight \\(UTC\\), the `1h` interval at the end of each hour, and so on\\. \nWhen AWS IoT SiteWise aggregates data points for metric computations, the start of each interval is exclusive and the end of each interval is inclusive\\. AWS IoT SiteWise places the computed data point at the end of the interval\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Interval", + "type": "string" + }, + "Offset": { + "markdownDescription": "The offset for the tumbling window\\. The `offset` parameter accepts the following: \n+ The offset time\\.", + "title": "Offset", + "type": "string" + } + }, + "required": [ + "Interval" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.VariableValue": { + "additionalProperties": false, + "properties": { + "HierarchyLogicalId": { + "markdownDescription": "The `LogicalID` of the hierarchy to query for the `PropertyLogicalID`\\. \nYou use a `hierarchyLogicalID` instead of a model ID because you can have several hierarchies using the same model and therefore the same property\\. For example, you might have separately grouped assets that come from the same asset model\\. For more information, see [Defining relationships between assets](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HierarchyLogicalId", + "type": "string" + }, + "PropertyLogicalId": { + "markdownDescription": "The `LogicalID` of the property to use as the variable\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The dashboard definition specified in a JSON literal\\. For detailed information, see [Creating dashboards \\(CLI\\)](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DashboardDefinition", + "type": "string" + }, + "DashboardDescription": { + "markdownDescription": "A description for the dashboard\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DashboardDescription", + "type": "string" + }, + "DashboardName": { + "markdownDescription": "A friendly name for the dashboard\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DashboardName", + "type": "string" + }, + "ProjectId": { + "markdownDescription": "The ID of the project in which to create the dashboard\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProjectId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of key\\-value pairs that contain metadata for the dashboard\\. For more information, see [Tagging your AWS IoT SiteWise resources](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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" + }, + "markdownDescription": "A list of gateway capability summaries that each contain a namespace and status\\. Each gateway capability defines data sources for the gateway\\. To retrieve a capability configuration's definition, use [DescribeGatewayCapabilityConfiguration](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeGatewayCapabilityConfiguration.html)\\. \n*Required*: No \n*Type*: List of [GatewayCapabilitySummary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewaycapabilitysummary.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GatewayCapabilitySummaries", + "type": "array" + }, + "GatewayName": { + "markdownDescription": "A unique, friendly name for the gateway\\. \nThe maximum length is 256 characters with the pattern `[^\\u0000-\\u001F\\u007F]+`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GatewayName", + "type": "string" + }, + "GatewayPlatform": { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.GatewayPlatform", + "markdownDescription": "The gateway's platform\\. You can only specify one platform in a gateway\\. \n*Required*: Yes \n*Type*: [GatewayPlatform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewayplatform.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GatewayPlatform" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of key\\-value pairs that contain metadata for the gateway\\. For more information, see [Tagging your AWS IoT SiteWise resources](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The JSON document that defines the configuration for the gateway capability\\. For more information, see [Configuring data sources \\(CLI\\)](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/configure-sources.html#configure-source-cli) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapabilityConfiguration", + "type": "string" + }, + "CapabilityNamespace": { + "markdownDescription": "The namespace of the capability configuration\\. For example, if you configure OPC\\-UA sources from the AWS IoT SiteWise console, your OPC\\-UA capability configuration has the namespace `iotsitewise:opcuacollector:version`, where `version` is a number such as `1`\\. \nThe maximum length is 512 characters with the pattern `^[a-zA-Z]+:[a-zA-Z]+:[0-9]+$`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CapabilityNamespace", + "type": "string" + } + }, + "required": [ + "CapabilityNamespace" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Gateway.GatewayPlatform": { + "additionalProperties": false, + "properties": { + "Greengrass": { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.Greengrass", + "markdownDescription": "A gateway that runs on AWS IoT Greengrass\\. \n*Required*: No \n*Type*: [Greengrass](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-greengrass.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Greengrass" + }, + "GreengrassV2": { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.GreengrassV2", + "markdownDescription": "A gateway that runs on AWS IoT Greengrass V2\\. \n*Required*: No \n*Type*: [GreengrassV2](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-greengrassv2.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GreengrassV2" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::Gateway.Greengrass": { + "additionalProperties": false, + "properties": { + "GroupArn": { + "markdownDescription": "The [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the Greengrass group\\. For more information about how to find a group's ARN, see [ListGroups](https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html) and [GetGroup](https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html) in the *AWS IoT Greengrass API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupArn", + "type": "string" + } + }, + "required": [ + "GroupArn" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Gateway.GreengrassV2": { + "additionalProperties": false, + "properties": { + "CoreDeviceThingName": { + "markdownDescription": "The name of the AWS IoT thing for your AWS IoT Greengrass V2 core device\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "Contains the configuration information of an alarm created in an AWS IoT SiteWise Monitor portal\\. You can use the alarm to monitor an asset property and get notified when the asset property value is outside a specified range\\. For more information, see [Monitoring with alarms](https://docs.aws.amazon.com/iot-sitewise/latest/appguide/monitor-alarms.html) in the * AWS IoT SiteWise Application Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alarms" + }, + "NotificationSenderEmail": { + "markdownDescription": "The email address that sends alarm notifications\\. \nIf you use the [AWS IoT Events managed Lambda function](https://docs.aws.amazon.com/iotevents/latest/developerguide/lambda-support.html) to manage your emails, you must [verify the sender email address in Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-email-addresses.html)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationSenderEmail", + "type": "string" + }, + "PortalAuthMode": { + "markdownDescription": "The service to use to authenticate users to the portal\\. Choose from the following options: \n+ `SSO` \u2013 The portal uses AWS Single Sign\\-On to authenticate users and manage user permissions\\. Before you can create a portal that uses AWS SSO, you must enable AWS SSO\\. For more information, see [Enabling AWS SSO](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso) in the *AWS IoT SiteWise User Guide*\\. This option is only available in AWS Regions other than the China Regions\\.\n+ `IAM` \u2013 The portal uses AWS Identity and Access Management \\(IAM\\) to authenticate users and manage user permissions\\.\nYou can't change this value after you create a portal\\. \nDefault: `SSO` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortalAuthMode", + "type": "string" + }, + "PortalContactEmail": { + "markdownDescription": "The AWS administrator's contact email address\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortalContactEmail", + "type": "string" + }, + "PortalDescription": { + "markdownDescription": "A description for the portal\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortalDescription", + "type": "string" + }, + "PortalName": { + "markdownDescription": "A friendly name for the portal\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PortalName", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf\\. For more information, see [Using service roles for AWS IoT SiteWise Monitor](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of key\\-value pairs that contain metadata for the portal\\. For more information, see [Tagging your AWS IoT SiteWise resources](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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" + }, + "markdownDescription": "A list that contains the IDs of each asset associated with the project\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssetIds", + "type": "array" + }, + "PortalId": { + "markdownDescription": "The ID of the portal in which to create the project\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortalId", + "type": "string" + }, + "ProjectDescription": { + "markdownDescription": "A description for the project\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProjectDescription", + "type": "string" + }, + "ProjectName": { + "markdownDescription": "A friendly name for the project\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProjectName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of key\\-value pairs that contain metadata for the project\\. For more information, see [Tagging your AWS IoT SiteWise resources](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html) in the *AWS IoT SiteWise User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The version of the user's namespace against which the workflow was validated\\. Use this value in your system instance\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CompatibleNamespaceVersion", + "type": "number" + }, + "Definition": { + "$ref": "#/definitions/AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument", + "markdownDescription": "A workflow's definition document\\. \n*Required*: Yes \n*Type*: [DefinitionDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotthingsgraph-flowtemplate-definitiondocument.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Definition" + } + }, + "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": { + "markdownDescription": "The language used to define the entity\\. `GRAPHQL` is the only valid value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Language", + "type": "string" + }, + "Text": { + "markdownDescription": "The GraphQL text that defines the entity\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The description of the new resource\\. Maximum length is 2048 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Expression": { + "markdownDescription": "The rule name to send messages to\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Expression", + "type": "string" + }, + "ExpressionType": { + "markdownDescription": "The type of value in `Expression`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `MqttTopic | RuleName` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExpressionType", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the new resource\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9-_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the IAM Role that authorizes the destination\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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", + "markdownDescription": "LoRaWAN device profile object\\. \n*Required*: No \n*Type*: [LoRaWANDeviceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-deviceprofile-lorawandeviceprofile.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoRaWAN" + }, + "Name": { + "markdownDescription": "The name of the new resource\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The ClassBTimeout value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClassBTimeout", + "type": "number" + }, + "ClassCTimeout": { + "markdownDescription": "The ClassCTimeout value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClassCTimeout", + "type": "number" + }, + "FactoryPresetFreqsList": { + "items": { + "type": "number" + }, + "type": "array" + }, + "MacVersion": { + "markdownDescription": "The MAC version \\(such as OTAA 1\\.1 or OTAA 1\\.0\\.3\\) to use with this device profile\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MacVersion", + "type": "string" + }, + "MaxDutyCycle": { + "markdownDescription": "The MaxDutyCycle value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxDutyCycle", + "type": "number" + }, + "MaxEirp": { + "markdownDescription": "The MaxEIRP value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `15` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxEirp", + "type": "number" + }, + "PingSlotDr": { + "markdownDescription": "The PingSlotDR value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `15` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PingSlotDr", + "type": "number" + }, + "PingSlotFreq": { + "markdownDescription": "The PingSlotFreq value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1000000` \n*Maximum*: `16700000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PingSlotFreq", + "type": "number" + }, + "PingSlotPeriod": { + "markdownDescription": "The PingSlotPeriod value\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `128` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PingSlotPeriod", + "type": "number" + }, + "RegParamsRevision": { + "markdownDescription": "The version of regional parameters\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegParamsRevision", + "type": "string" + }, + "RfRegion": { + "markdownDescription": "The frequency band \\(RFRegion\\) value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RfRegion", + "type": "string" + }, + "RxDataRate2": { + "type": "number" + }, + "RxDelay1": { + "type": "number" + }, + "RxDrOffset1": { + "type": "number" + }, + "RxFreq2": { + "type": "number" + }, + "Supports32BitFCnt": { + "markdownDescription": "The Supports32BitFCnt value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Supports32BitFCnt", + "type": "boolean" + }, + "SupportsClassB": { + "markdownDescription": "The SupportsClassB value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SupportsClassB", + "type": "boolean" + }, + "SupportsClassC": { + "markdownDescription": "The SupportsClassC value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SupportsClassC", + "type": "boolean" + }, + "SupportsJoin": { + "markdownDescription": "The SupportsJoin value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ID of the multicast group to associate with a FUOTA task\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociateMulticastGroup", + "type": "string" + }, + "AssociateWirelessDevice": { + "markdownDescription": "The ID of the wireless device to associate with a multicast group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociateWirelessDevice", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the new resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DisassociateMulticastGroup": { + "markdownDescription": "The ID of the multicast group to disassociate from a FUOTA task\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisassociateMulticastGroup", + "type": "string" + }, + "DisassociateWirelessDevice": { + "markdownDescription": "The ID of the wireless device to disassociate from a FUOTA task\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisassociateWirelessDevice", + "type": "string" + }, + "FirmwareUpdateImage": { + "markdownDescription": "The S3 URI points to a firmware update image that is to be used with a FUOTA task\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FirmwareUpdateImage", + "type": "string" + }, + "FirmwareUpdateRole": { + "markdownDescription": "The firmware update role that is to be used with a FUOTA task\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FirmwareUpdateRole", + "type": "string" + }, + "LoRaWAN": { + "$ref": "#/definitions/AWS::IoTWireless::FuotaTask.LoRaWAN", + "markdownDescription": "The LoRaWAN information used with a FUOTA task\\. \n*Required*: Yes \n*Type*: [LoRaWAN](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-fuotatask-lorawan.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoRaWAN" + }, + "Name": { + "markdownDescription": "The name of a FUOTA task\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The frequency band \\(RFRegion\\) value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RfRegion", + "type": "string" + }, + "StartTime": { + "markdownDescription": "Start time of a FUOTA task\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ID of the wireless device to associate with a multicast group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociateWirelessDevice", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the multicast group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DisassociateWirelessDevice": { + "markdownDescription": "The ID of the wireless device to disassociate from a multicast group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisassociateWirelessDevice", + "type": "string" + }, + "LoRaWAN": { + "$ref": "#/definitions/AWS::IoTWireless::MulticastGroup.LoRaWAN", + "markdownDescription": "The LoRaWAN information that is to be used with the multicast group\\. \n*Required*: Yes \n*Type*: [LoRaWAN](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-multicastgroup-lorawan.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoRaWAN" + }, + "Name": { + "markdownDescription": "The name of the multicast group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "DlClass for LoRaWAN\\. Valid values are ClassB and ClassC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DlClass", + "type": "string" + }, + "NumberOfDevicesInGroup": { + "markdownDescription": "Number of devices that are associated to the multicast group\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfDevicesInGroup", + "type": "number" + }, + "NumberOfDevicesRequested": { + "markdownDescription": "Number of devices that are requested to be associated with the multicast group\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfDevicesRequested", + "type": "number" + }, + "RfRegion": { + "markdownDescription": "The frequency band \\(RFRegion\\) value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ID of the partner account to update\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PartnerAccountId", + "type": "string" + }, + "PartnerType": { + "type": "string" + }, + "Sidewalk": { + "$ref": "#/definitions/AWS::IoTWireless::PartnerAccount.SidewalkAccountInfo", + "markdownDescription": "The Sidewalk account credentials\\. \n*Required*: No \n*Type*: [SidewalkAccountInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-partneraccount-sidewalkaccountinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sidewalk" + }, + "SidewalkResponse": { + "$ref": "#/definitions/AWS::IoTWireless::PartnerAccount.SidewalkAccountInfoWithFingerprint" + }, + "SidewalkUpdate": { + "$ref": "#/definitions/AWS::IoTWireless::PartnerAccount.SidewalkUpdateAccount" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The Sidewalk application server private key\\. The application server private key is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the application server private key by storing the value in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Pattern*: `[a-fA-F0-9]{64}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The new Sidewalk application server private key\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Pattern*: `[a-fA-F0-9]{64}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "LoRaWAN service profile object\\. \n*Required*: No \n*Type*: [LoRaWANServiceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoRaWAN" + }, + "Name": { + "markdownDescription": "The name of the new resource\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The AddGWMetaData value\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddGwMetadata", + "type": "boolean" + }, + "ChannelMask": { + "markdownDescription": "The ChannelMask value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelMask", + "type": "string" + }, + "DevStatusReqFreq": { + "markdownDescription": "The DevStatusReqFreq value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DevStatusReqFreq", + "type": "number" + }, + "DlBucketSize": { + "markdownDescription": "The DLBucketSize value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DlBucketSize", + "type": "number" + }, + "DlRate": { + "markdownDescription": "The DLRate value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DlRate", + "type": "number" + }, + "DlRatePolicy": { + "markdownDescription": "The DLRatePolicy value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DlRatePolicy", + "type": "string" + }, + "DrMax": { + "markdownDescription": "The DRMax value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `15` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DrMax", + "type": "number" + }, + "DrMin": { + "markdownDescription": "The DRMin value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `15` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DrMin", + "type": "number" + }, + "HrAllowed": { + "markdownDescription": "The HRAllowed value that describes whether handover roaming is allowed\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HrAllowed", + "type": "boolean" + }, + "MinGwDiversity": { + "markdownDescription": "The MinGwDiversity value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinGwDiversity", + "type": "number" + }, + "NwkGeoLoc": { + "markdownDescription": "The NwkGeoLoc value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NwkGeoLoc", + "type": "boolean" + }, + "PrAllowed": { + "markdownDescription": "The PRAllowed value that describes whether passive roaming is allowed\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrAllowed", + "type": "boolean" + }, + "RaAllowed": { + "markdownDescription": "The RAAllowed value that describes whether roaming activation is allowed\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RaAllowed", + "type": "boolean" + }, + "ReportDevStatusBattery": { + "markdownDescription": "The ReportDevStatusBattery value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReportDevStatusBattery", + "type": "boolean" + }, + "ReportDevStatusMargin": { + "markdownDescription": "The ReportDevStatusMargin value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReportDevStatusMargin", + "type": "boolean" + }, + "TargetPer": { + "markdownDescription": "The TargetPer value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetPer", + "type": "number" + }, + "UlBucketSize": { + "markdownDescription": "The UlBucketSize value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UlBucketSize", + "type": "number" + }, + "UlRate": { + "markdownDescription": "The ULRate value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UlRate", + "type": "number" + }, + "UlRatePolicy": { + "markdownDescription": "The ULRatePolicy value\\. \nThis property is `ReadOnly` and can't be inputted for create\\. It's returned with `Fn::GetAtt` \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Whether to automatically create tasks using this task definition for all gateways with the specified current version\\. If `false`, the task must me created by calling `CreateWirelessGatewayTask`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoCreateTasks", + "type": "boolean" + }, + "LoRaWANUpdateGatewayTaskEntry": { + "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANUpdateGatewayTaskEntry" + }, + "Name": { + "markdownDescription": "The name of the new resource\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TaskDefinitionType": { + "type": "string" + }, + "Update": { + "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.UpdateWirelessGatewayTaskCreate", + "markdownDescription": "Information about the gateways to update\\. \n*Required*: No \n*Type*: [UpdateWirelessGatewayTaskCreate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-updatewirelessgatewaytaskcreate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Update" + } + }, + "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": { + "markdownDescription": "The model number of the wireless gateway\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Model", + "type": "string" + }, + "PackageVersion": { + "markdownDescription": "The version of the wireless gateway firmware\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PackageVersion", + "type": "string" + }, + "Station": { + "markdownDescription": "The basic station version of the wireless gateway\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Station", + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTWireless::TaskDefinition.LoRaWANUpdateGatewayTaskCreate": { + "additionalProperties": false, + "properties": { + "CurrentVersion": { + "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion", + "markdownDescription": "The version of the gateways that should receive the update\\. \n*Required*: No \n*Type*: [LoRaWANGatewayVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawangatewayversion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CurrentVersion" + }, + "SigKeyCrc": { + "markdownDescription": "The CRC of the signature private key to check\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SigKeyCrc", + "type": "number" + }, + "UpdateSignature": { + "markdownDescription": "The signature used to verify the update firmware\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdateSignature", + "type": "string" + }, + "UpdateVersion": { + "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion", + "markdownDescription": "The firmware version to update the gateway to\\. \n*Required*: No \n*Type*: [LoRaWANGatewayVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawangatewayversion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdateVersion" + } + }, + "type": "object" + }, + "AWS::IoTWireless::TaskDefinition.LoRaWANUpdateGatewayTaskEntry": { + "additionalProperties": false, + "properties": { + "CurrentVersion": { + "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion", + "markdownDescription": "The version of the gateways that should receive the update\\. \n*Required*: No \n*Type*: [LoRaWANGatewayVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawangatewayversion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CurrentVersion" + }, + "UpdateVersion": { + "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion", + "markdownDescription": "The firmware version to update the gateway to\\. \n*Required*: No \n*Type*: [LoRaWANGatewayVersion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawangatewayversion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdateVersion" + } + }, + "type": "object" + }, + "AWS::IoTWireless::TaskDefinition.UpdateWirelessGatewayTaskCreate": { + "additionalProperties": false, + "properties": { + "LoRaWAN": { + "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANUpdateGatewayTaskCreate", + "markdownDescription": "The properties that relate to the LoRaWAN wireless gateway\\. \n*Required*: No \n*Type*: [LoRaWANUpdateGatewayTaskCreate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawanupdategatewaytaskcreate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoRaWAN" + }, + "UpdateDataRole": { + "markdownDescription": "The IAM role used to read data from the S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpdateDataRole", + "type": "string" + }, + "UpdateDataSource": { + "markdownDescription": "The link to the S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The description of the new resource\\. Maximum length is 2048\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DestinationName": { + "markdownDescription": "The name of the destination to assign to the new wireless device\\. Can have only have alphanumeric, \\- \\(hyphen\\) and \\_ \\(underscore\\) characters and it can't have any spaces\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9-_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationName", + "type": "string" + }, + "LastUplinkReceivedAt": { + "markdownDescription": "The date and time when the most recent uplink was received\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUplinkReceivedAt", + "type": "string" + }, + "LoRaWAN": { + "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.LoRaWANDevice", + "markdownDescription": "The device configuration information to use to create the wireless device\\. Must be at least one of OtaaV10x, OtaaV11, AbpV11, or AbpV10x\\. \n*Required*: No \n*Type*: [LoRaWANDevice](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-lorawandevice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoRaWAN" + }, + "Name": { + "markdownDescription": "The name of the new resource\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "ThingArn": { + "markdownDescription": "The ARN of the thing to associate with the wireless device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThingArn", + "type": "string" + }, + "Type": { + "markdownDescription": "The wireless device type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `LoRaWAN | Sidewalk` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "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": { + "markdownDescription": "The DevAddr value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{8}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DevAddr", + "type": "string" + }, + "SessionKeys": { + "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.SessionKeysAbpV10x", + "markdownDescription": "Session keys for ABP v1\\.0\\.x \n*Required*: Yes \n*Type*: [SessionKeysAbpV10x](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-sessionkeysabpv10x.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionKeys" + } + }, + "required": [ + "DevAddr", + "SessionKeys" + ], + "type": "object" + }, + "AWS::IoTWireless::WirelessDevice.AbpV11": { + "additionalProperties": false, + "properties": { + "DevAddr": { + "markdownDescription": "The DevAddr value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{8}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DevAddr", + "type": "string" + }, + "SessionKeys": { + "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.SessionKeysAbpV11", + "markdownDescription": "Session keys for ABP v1\\.1\\. \n*Required*: Yes \n*Type*: [SessionKeysAbpV11](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-sessionkeysabpv11.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionKeys" + } + }, + "required": [ + "DevAddr", + "SessionKeys" + ], + "type": "object" + }, + "AWS::IoTWireless::WirelessDevice.LoRaWANDevice": { + "additionalProperties": false, + "properties": { + "AbpV10x": { + "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.AbpV10x", + "markdownDescription": "LoRaWAN object for create APIs\\. \n*Required*: No \n*Type*: [AbpV10x](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-abpv10x.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AbpV10x" + }, + "AbpV11": { + "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.AbpV11", + "markdownDescription": "ABP device object for create APIs for v1\\.1\\. \n*Required*: No \n*Type*: [AbpV11](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-abpv11.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AbpV11" + }, + "DevEui": { + "markdownDescription": "The DevEUI value\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{16}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DevEui", + "type": "string" + }, + "DeviceProfileId": { + "markdownDescription": "The ID of the device profile for the new wireless device\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceProfileId", + "type": "string" + }, + "OtaaV10x": { + "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.OtaaV10x", + "markdownDescription": "OTAA device object for create APIs for v1\\.0\\.x \n*Required*: No \n*Type*: [OtaaV10x](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-otaav10x.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OtaaV10x" + }, + "OtaaV11": { + "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.OtaaV11", + "markdownDescription": "OTAA device object for v1\\.1 for create APIs\\. \n*Required*: No \n*Type*: [OtaaV11](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-otaav11.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OtaaV11" + }, + "ServiceProfileId": { + "markdownDescription": "The ID of the service profile\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceProfileId", + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTWireless::WirelessDevice.OtaaV10x": { + "additionalProperties": false, + "properties": { + "AppEui": { + "markdownDescription": "The AppEUI value, with pattern of `[a-fA-F0-9]{16}`\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{16}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppEui", + "type": "string" + }, + "AppKey": { + "markdownDescription": "The AppKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the AppKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppKey", + "type": "string" + } + }, + "required": [ + "AppEui", + "AppKey" + ], + "type": "object" + }, + "AWS::IoTWireless::WirelessDevice.OtaaV11": { + "additionalProperties": false, + "properties": { + "AppKey": { + "markdownDescription": "The AppKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the AppKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppKey", + "type": "string" + }, + "JoinEui": { + "markdownDescription": "The JoinEUI value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{16}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JoinEui", + "type": "string" + }, + "NwkKey": { + "markdownDescription": "The NwkKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the NwkKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NwkKey", + "type": "string" + } + }, + "required": [ + "AppKey", + "JoinEui", + "NwkKey" + ], + "type": "object" + }, + "AWS::IoTWireless::WirelessDevice.SessionKeysAbpV10x": { + "additionalProperties": false, + "properties": { + "AppSKey": { + "markdownDescription": "The AppSKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the AppSKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppSKey", + "type": "string" + }, + "NwkSKey": { + "markdownDescription": "The NwkSKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the NwkSKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NwkSKey", + "type": "string" + } + }, + "required": [ + "AppSKey", + "NwkSKey" + ], + "type": "object" + }, + "AWS::IoTWireless::WirelessDevice.SessionKeysAbpV11": { + "additionalProperties": false, + "properties": { + "AppSKey": { + "markdownDescription": "The AppSKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the AppSKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppSKey", + "type": "string" + }, + "FNwkSIntKey": { + "markdownDescription": "The FNwkSIntKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the FNwkSIntKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FNwkSIntKey", + "type": "string" + }, + "NwkSEncKey": { + "markdownDescription": "The NwkSEncKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the NwkSEncKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NwkSEncKey", + "type": "string" + }, + "SNwkSIntKey": { + "markdownDescription": "The SNwkSIntKey is a secret key, which you should handle in a similar way as you would an application password\\. You can protect the SNwkSIntKey value by storing it in the AWS Secrets Manager and use the [secretsmanager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager) to reference this value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[a-fA-F0-9]{32}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The description of the new resource\\. The maximum length is 2048 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "LastUplinkReceivedAt": { + "markdownDescription": "The date and time when the most recent uplink was received\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LastUplinkReceivedAt", + "type": "string" + }, + "LoRaWAN": { + "$ref": "#/definitions/AWS::IoTWireless::WirelessGateway.LoRaWANGateway", + "markdownDescription": "The gateway configuration information to use to create the wireless gateway\\. \n*Required*: Yes \n*Type*: [LoRaWANGateway](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessgateway-lorawangateway.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoRaWAN" + }, + "Name": { + "markdownDescription": "The name of the new resource\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags are an array of key\\-value pairs to attach to the specified resource\\. Tags can have a minimum of 0 and a maximum of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "ThingArn": { + "markdownDescription": "The ARN of the thing to associate with the wireless gateway\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The gateway's EUI value\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^(([0-9A-Fa-f]{2}-){7}|([0-9A-Fa-f]{2}:){7}|([0-9A-Fa-f]{2}\\s){7}|([0-9A-Fa-f]{2}){7})([0-9A-Fa-f]{2})$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GatewayEui", + "type": "string" + }, + "RfRegion": { + "markdownDescription": "The frequency band \\(RFRegion\\) value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Specifies the alias name\\. This value must begin with `alias/` followed by a name, such as `alias/ExampleAlias`\\. \nIf you change the value of a `Replacement` property, such as `AliasName`, the existing alias is deleted and a new alias is created for the specified KMS key\\. This change can disrupt applications that use the alias\\. It can also allow or deny access to a KMS key affected by attribute\\-based access control \\(ABAC\\)\\.\nThe alias must be string of 1\\-256 characters\\. It can contain only alphanumeric characters, forward slashes \\(/\\), underscores \\(\\_\\), and dashes \\(\\-\\)\\. The alias name cannot begin with `alias/aws/`\\. The `alias/aws/` prefix is reserved for [AWS managed keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk)\\. \n*Pattern*: `alias/^[a-zA-Z0-9/_-]+$` \n*Minimum*: `1` \n*Maximum*: `256` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AliasName", + "type": "string" + }, + "TargetKeyId": { + "markdownDescription": "Associates the alias with the specified [customer managed key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)\\. The KMS key must be in the same AWS account and Region\\. \nA valid key ID is required\\. If you supply a null or empty string value, this operation returns an error\\. \nFor help finding the key ID and ARN, see [Finding the key ID and ARN](https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html#find-cmk-id-arn) in the *AWS Key Management Service Developer Guide*\\. \nSpecify the key ID or the key ARN of the KMS key\\. \nFor example: \n+ Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab` \n+ Key ARN: `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` \nTo get the key ID and key ARN for a KMS key, use [ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html) or [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A description of the KMS key\\. Use a description that helps you to distinguish this KMS key from others in the account, such as its intended use\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `8192` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "EnableKeyRotation": { + "markdownDescription": "Enables automatic rotation of the key material for the specified KMS key\\. By default, automatic key rotation is not enabled\\. \nAWS KMS does not support automatic key rotation on asymmetric KMS keys\\. For asymmetric KMS keys, omit the `EnableKeyRotation` property or set it to `false`\\. \nWhen you enable automatic rotation, AWS KMS automatically creates new key material for the KMS key 365 days after the enable \\(or reenable\\) date and every 365 days thereafter\\. AWS KMS retains all key material until you delete the KMS key\\. For detailed information about automatic key rotation, see [Rotating KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) in the *AWS Key Management Service Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableKeyRotation", + "type": "boolean" + }, + "Enabled": { + "markdownDescription": "Specifies whether the KMS key is enabled\\. Disabled KMS keys cannot be used in cryptographic operations\\. \nWhen `Enabled` is `true`, the *key state* of the KMS key is `Enabled`\\. When `Enabled` is `false`, the key state of the KMS key is `Disabled`\\. The default value is `true`\\. \nThe actual key state of the KMS key might be affected by actions taken outside of CloudFormation, such as running the [EnableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKey.html), [DisableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html), or [ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) operations\\. \nFor information about the key states of a KMS key, see [Key state: Effect on your KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the *AWS Key Management Service Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "KeyPolicy": { + "markdownDescription": "The key policy that authorizes use of the KMS key\\. The key policy must conform to the following rules\\. \n+ The key policy must allow the caller to make a subsequent [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) request on the KMS key\\. This reduces the risk that the KMS key becomes unmanageable\\. For more information, refer to the scenario in the [Default key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam) section of the * *AWS Key Management Service Developer Guide* *\\.\n+ Each statement in the key policy must contain one or more principals\\. The principals in the key policy must exist and be visible to AWS KMS\\. When you create a new AWS principal \\(for example, an IAM user or role\\), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to AWS KMS\\. For more information, see [Changes that I make are not always immediately visible](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency) in the *AWS Identity and Access Management User Guide*\\.\n+ The key policy size limit is 32 kilobytes \\(32768 bytes\\)\\.\nIf you are unsure of which policy to use, consider the *default key policy*\\. This is the key policy that AWS KMS applies to KMS keys that are created by using the CreateKey API with no specified key policy\\. It gives the AWS account that owns the key permission to perform all operations on the key\\. It also allows you write IAM policies to authorize access to the key\\. For details, see [Default key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default) in the *AWS Key Management Service Developer Guide*\\. \n*Minimum*: `1` \n*Maximum*: `32768` \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyPolicy", + "type": "object" + }, + "KeySpec": { + "markdownDescription": "Specifies the type of KMS key to create\\. The default value, `SYMMETRIC_DEFAULT`, creates a KMS key with a 256\\-bit symmetric key for encryption and decryption\\. For help choosing a key spec for your KMS key, see [How to choose Your KMS key configuration](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html) in the *AWS Key Management Service Developer Guide*\\. \nThe `KeySpec` property determines whether the KMS key contains a symmetric key or an asymmetric key pair\\. It also determines the encryption algorithms or signing algorithms that the KMS key supports\\. You can't change the `KeySpec` after the KMS key is created\\. To further restrict the algorithms that can be used with the KMS key, use a condition key in its key policy or IAM policy\\. For more information, see [kms:EncryptionAlgorithm](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-algorithm) or [kms:Signing Algorithm](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-signing-algorithm) in the *AWS Key Management Service Developer Guide*\\. \nIf you change the `KeySpec` of an existing KMS key, the existing KMS key is scheduled for deletion and a new KMS key is created with the specified `KeySpec` value\\. While the scheduled deletion is pending, you can't use the existing KMS key\\. Unless you [cancel the scheduled deletion](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#deleting-keys-scheduling-key-deletion) of the KMS key outside of CloudFormation, all data encrypted under the existing KMS key becomes unrecoverable when the KMS key is deleted\\.\n[AWS services that are integrated with AWS KMS](http://aws.amazon.com/kms/features/#AWS_Service_Integration) use symmetric KMS keys to protect your data\\. These services do not support asymmetric KMS keys\\. For help determining whether a KMS key is symmetric or asymmetric, see [Identifying Symmetric and Asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html) in the *AWS Key Management Service Developer Guide*\\.\nAWS KMS supports the following key specs for KMS keys: \n+ Symmetric key \\(default\\)\n + `SYMMETRIC_DEFAULT` \\(AES\\-256\\-GCM\\)\n+ Asymmetric RSA key pairs\n + `RSA_2048`\n + `RSA_3072`\n + `RSA_4096`\n+ Asymmetric NIST\\-recommended elliptic curve key pairs\n + `ECC_NIST_P256` \\(secp256r1\\)\n + `ECC_NIST_P384` \\(secp384r1\\)\n + `ECC_NIST_P521` \\(secp521r1\\)\n+ Other asymmetric elliptic curve key pairs\n + `ECC_SECG_P256K1` \\(secp256k1\\), commonly used for cryptocurrencies\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeySpec", + "type": "string" + }, + "KeyUsage": { + "markdownDescription": "Determines the [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) for which you can use the KMS key\\. The default value is `ENCRYPT_DECRYPT`\\. This property is required only for asymmetric KMS keys\\. You can't change the `KeyUsage` value after the KMS key is created\\. \nIf you change the `KeyUsage` of an existing KMS key, the existing KMS key is scheduled for deletion and a new KMS key is created with the specified `KeyUsage` value\\. While the scheduled deletion is pending, you can't use the existing KMS key\\. Unless you [cancel the scheduled deletion](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#deleting-keys-scheduling-key-deletion) of the KMS key outside of CloudFormation, all data encrypted under the existing KMS key becomes unrecoverable when the KMS key is deleted\\.\nSelect only one valid value\\. \n+ For symmetric KMS keys, omit the property or specify `ENCRYPT_DECRYPT`\\.\n+ For asymmetric KMS keys with RSA key material, specify `ENCRYPT_DECRYPT` or `SIGN_VERIFY`\\.\n+ For asymmetric KMS keys with ECC key material, specify `SIGN_VERIFY`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ENCRYPT_DECRYPT | SIGN_VERIFY` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyUsage", + "type": "string" + }, + "MultiRegion": { + "markdownDescription": "Creates a multi\\-Region primary key that you can replicate in other AWS Regions\\. \nIf you change the `MultiRegion` property of an existing KMS key, the existing KMS key is scheduled for deletion and a new KMS key is created with the specified `Multi-Region` value\\. While the scheduled deletion is pending, you can't use the existing KMS key\\. Unless you [cancel the scheduled deletion](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#deleting-keys-scheduling-key-deletion) of the KMS key outside of CloudFormation, all data encrypted under the existing KMS key becomes unrecoverable when the KMS key is deleted\\.\nFor a multi\\-Region key, set to this property to `true`\\. For a single\\-Region key, omit this property or set it to `false`\\. The default value is `false`\\. \n*Multi\\-Region keys* are an AWS KMS feature that lets you create multiple interoperable KMS keys in different AWS Regions\\. Because these KMS keys have the same key ID, key material, and other metadata, you can use them to encrypt data in one AWS Region and decrypt it in a different AWS Region without making a cross\\-Region call or exposing the plaintext data\\. For more information, see [Multi\\-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in the *AWS Key Management Service Developer Guide*\\. \nYou can create a symmetric or asymmetric multi\\-Region key, and you can create a multi\\-Region key with imported key material\\. However, you cannot create a multi\\-Region key in a custom key store\\. \nTo create a replica of this primary key in a different AWS Region , create an [AWS::KMS::ReplicaKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html) resource in a CloudFormation stack in the replica Region\\. Specify the key ARN of this primary key\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MultiRegion", + "type": "boolean" + }, + "PendingWindowInDays": { + "markdownDescription": "Specifies the number of days in the waiting period before AWS KMS deletes a KMS key that has been removed from a CloudFormation stack\\. Enter a value between 7 and 30 days\\. The default value is 30 days\\. \nWhen you remove a KMS key from a CloudFormation stack, AWS KMS schedules the KMS key for deletion and starts the mandatory waiting period\\. The `PendingWindowInDays` property determines the length of waiting period\\. During the waiting period, the key state of KMS key is `Pending Deletion` or `Pending Replica Deletion`, which prevents the KMS key from being used in cryptographic operations\\. When the waiting period expires, AWS KMS permanently deletes the KMS key\\. \nAWS KMS will not delete a [multi\\-Region primary key](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) that has replica keys\\. If you remove a multi\\-Region primary key from a CloudFormation stack, its key state changes to `PendingReplicaDeletion` so it cannot be replicated or used in cryptographic operations\\. This state can persist indefinitely\\. When the last of its replica keys is deleted, the key state of the primary key changes to `PendingDeletion` and the waiting period specified by `PendingWindowInDays` begins\\. When this waiting period expires, AWS KMS deletes the primary key\\. For details, see [Deleting multi\\-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html) in the *AWS Key Management Service Developer Guide*\\. \nYou cannot use a CloudFormation template to cancel deletion of the KMS key after you remove it from the stack, regardless of the waiting period\\. If you specify a KMS key in your template, even one with the same name, CloudFormation creates a new KMS key\\. To cancel deletion of a KMS key, use the AWS KMS console or the [CancelKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_CancelKeyDeletion.html) operation\\. \nFor information about the `Pending Deletion` and `Pending Replica Deletion` key states, see [Key state: Effect on your KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the *AWS Key Management Service Developer Guide*\\. For more information about deleting KMS keys, see the [ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) operation in the *AWS Key Management Service API Reference* and [Deleting KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) in the *AWS Key Management Service Developer Guide*\\. \n*Minimum*: 7 \n*Maximum*: 30 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PendingWindowInDays", + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Assigns one or more tags to the replica key\\. \nTagging or untagging a KMS key can allow or deny permission to the KMS key\\. For details, see [ABAC for AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the *AWS Key Management Service Developer Guide*\\.\nFor information about tags in AWS KMS, see [Tagging keys](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html) in the *AWS Key Management Service Developer Guide*\\. For information about tags in CloudFormation, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "A description of the KMS key\\. \nThe default value is an empty string \\(no description\\)\\. \nThe description is not a shared property of multi\\-Region keys\\. You can specify the same description or a different description for each key in a set of related multi\\-Region keys\\. AWS Key Management Service does not synchronize this property\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `8192` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Specifies whether the replica key is enabled\\. Disabled KMS keys cannot be used in cryptographic operations\\. \nWhen `Enabled` is `true`, the *key state* of the KMS key is `Enabled`\\. When `Enabled` is `false`, the key state of the KMS key is `Disabled`\\. The default value is `true`\\. \nThe actual key state of the replica might be affected by actions taken outside of CloudFormation, such as running the [EnableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKey.html), [DisableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html), or [ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) operations\\. Also, while the replica key is being created, its key state is `Creating`\\. When the process is complete, the key state of the replica key changes to `Enabled`\\. \nFor information about the key states of a KMS key, see [Key state: Effect on your KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the *AWS Key Management Service Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "KeyPolicy": { + "markdownDescription": "The key policy that authorizes use of the replica key\\. \nThe key policy is not a shared property of multi\\-Region keys\\. You can specify the same key policy or a different key policy for each key in a set of related multi\\-Region keys\\. AWS KMS does not synchronize this property\\. \nThe key policy must conform to the following rules\\. \n+ The key policy must give the caller [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) permission on the KMS key\\. This reduces the risk that the KMS key becomes unmanageable\\. For more information, refer to the scenario in the [Default key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam) section of the * *AWS Key Management Service Developer Guide* *\\.\n+ Each statement in the key policy must contain one or more principals\\. The principals in the key policy must exist and be visible to AWS KMS\\. When you create a new AWSprincipal \\(for example, an IAM user or role\\), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to AWS KMS\\. For more information, see [Changes that I make are not always immediately visible](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_eventual-consistency) in the *AWS Identity and Access Management User Guide*\\.\n+ The key policy size limit is 32 kilobytes \\(32768 bytes\\)\\.\n*Minimum*: `1` \n*Maximum*: `32768` \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyPolicy", + "type": "object" + }, + "PendingWindowInDays": { + "markdownDescription": "Specifies the number of days in the waiting period before AWS KMS deletes a replica key that has been removed from a CloudFormation stack\\. Enter a value between 7 and 30 days\\. The default value is 30 days\\. \nWhen you remove a replica key from a CloudFormation stack, AWS KMS schedules the replica key for deletion and starts the mandatory waiting period\\. The `PendingWindowInDays` property determines the length of waiting period\\. During the waiting period, the key state of replica key is `Pending Deletion`, which prevents it from being used in cryptographic operations\\. When the waiting period expires, AWS KMS permanently deletes the replica key\\. \nYou cannot use a CloudFormation template to cancel deletion of the replica after you remove it from the stack, regardless of the waiting period\\. However, if you specify a replica key in your template that is based on the same primary key as the original replica key, CloudFormation creates a new replica key with the same key ID, key material, and other shared properties of the original replica key\\. This new replica key can decrypt ciphertext that was encrypted under the original replica key, or any related multi\\-Region key\\. \nFor detailed information about deleting multi\\-Region keys, see [Deleting multi\\-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html) in the *AWS Key Management Service Developer Guide*\\. \nFor information about the `PendingDeletion` key state, see [Key state: Effect on your KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the *AWS Key Management Service Developer Guide*\\. For more information about deleting KMS keys, see the [ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) operation in the *AWS Key Management Service API Reference* and [Deleting KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) in the *AWS Key Management Service Developer Guide*\\. \n*Minimum*: 7 \n*Maximum*: 30 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PendingWindowInDays", + "type": "number" + }, + "PrimaryKeyArn": { + "markdownDescription": "Specifies the multi\\-Region primary key to replicate\\. The primary key must be in a different AWS Region of the same AWS partition\\. You can create only one replica of a given primary key in each AWS Region \\. \nIf you change the `PrimaryKeyArn` value of a replica key, the existing replica key is scheduled for deletion and a new replica key is created based on the specified primary key\\. While it is scheduled for deletion, the existing replica key becomes unusable\\. You can cancel the scheduled deletion of the key outside of CloudFormation\\. \nHowever, if you inadvertently delete a replica key, you can decrypt ciphertext encrypted by that replica key by using any related multi\\-Region key\\. If necessary, you can recreate the replica in the same Region after the previous one is completely deleted\\. For details, see [Deleting multi\\-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html) in the *AWS Key Management Service Developer Guide*\nSpecify the key ARN of an existing multi\\-Region primary key\\. For example, `arn:aws:kms:us-east-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrimaryKeyArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Assigns one or more tags to the replica key\\. \nTagging or untagging a KMS key can allow or deny permission to the KMS key\\. For details, see [ABAC for AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the *AWS Key Management Service Developer Guide*\\.\nTags are not a shared property of multi\\-Region keys\\. You can specify the same tags or different tags for each key in a set of related multi\\-Region keys\\. AWS KMS does not synchronize this property\\. \nEach tag consists of a tag key and a tag value\\. Both the tag key and the tag value are required, but the tag value can be an empty \\(null\\) string\\. You cannot have more than one tag on a KMS key with the same tag key\\. If you specify an existing tag key with a different tag value, AWS KMS replaces the current tag value with the specified one\\. \nWhen you assign tags to an AWSresource, AWSgenerates a cost allocation report with usage and costs aggregated by tags\\. Tags can also be used to control access to a KMS key\\. For details, see [Tagging keys](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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", + "markdownDescription": "The connector's compute capacity settings\\. \n*Required*: Yes \n*Type*: [Capacity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-capacity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Capacity" + }, + "ConnectorConfiguration": { + "additionalProperties": true, + "markdownDescription": "The configuration of the connector\\. \n*Required*: Yes \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "ConnectorConfiguration", + "type": "object" + }, + "ConnectorDescription": { + "markdownDescription": "The description of the connector\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectorDescription", + "type": "string" + }, + "ConnectorName": { + "markdownDescription": "The name of the connector\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectorName", + "type": "string" + }, + "KafkaCluster": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.KafkaCluster", + "markdownDescription": "The details of the Apache Kafka cluster to which the connector is connected\\. \n*Required*: Yes \n*Type*: [KafkaCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-kafkacluster.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KafkaCluster" + }, + "KafkaClusterClientAuthentication": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.KafkaClusterClientAuthentication", + "markdownDescription": "The type of client authentication used to connect to the Apache Kafka cluster\\. The value is NONE when no client authentication is used\\. \n*Required*: Yes \n*Type*: [KafkaClusterClientAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-kafkaclusterclientauthentication.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KafkaClusterClientAuthentication" + }, + "KafkaClusterEncryptionInTransit": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.KafkaClusterEncryptionInTransit", + "markdownDescription": "Details of encryption in transit to the Apache Kafka cluster\\. \n*Required*: Yes \n*Type*: [KafkaClusterEncryptionInTransit](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-kafkaclusterencryptionintransit.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KafkaClusterEncryptionInTransit" + }, + "KafkaConnectVersion": { + "markdownDescription": "The version of Kafka Connect\\. It has to be compatible with both the Apache Kafka cluster's version and the plugins\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KafkaConnectVersion", + "type": "string" + }, + "LogDelivery": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.LogDelivery", + "markdownDescription": "The settings for delivering connector logs to Amazon CloudWatch Logs\\. \n*Required*: No \n*Type*: [LogDelivery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-logdelivery.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogDelivery" + }, + "Plugins": { + "items": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.Plugin" + }, + "markdownDescription": "Specifies which plugins were used for this connector\\. \n*Required*: Yes \n*Type*: List of [Plugin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-plugin.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Plugins", + "type": "array" + }, + "ServiceExecutionRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role used by the connector to access Amazon Web Services resources\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceExecutionRoleArn", + "type": "string" + }, + "WorkerConfiguration": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.WorkerConfiguration", + "markdownDescription": "The worker configurations that are in use with the connector\\. \n*Required*: No \n*Type*: [WorkerConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-workerconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The bootstrap servers of the cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BootstrapServers", + "type": "string" + }, + "Vpc": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.Vpc", + "markdownDescription": "Details of an Amazon VPC which has network connectivity to the Apache Kafka cluster\\. \n*Required*: Yes \n*Type*: [Vpc](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-vpc.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Vpc" + } + }, + "required": [ + "BootstrapServers", + "Vpc" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.AutoScaling": { + "additionalProperties": false, + "properties": { + "MaxWorkerCount": { + "markdownDescription": "The maximum number of workers allocated to the connector\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxWorkerCount", + "type": "number" + }, + "McuCount": { + "markdownDescription": "The number of microcontroller units \\(MCUs\\) allocated to each connector worker\\. The valid values are 1,2,4,8\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "McuCount", + "type": "number" + }, + "MinWorkerCount": { + "markdownDescription": "The minimum number of workers allocated to the connector\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinWorkerCount", + "type": "number" + }, + "ScaleInPolicy": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.ScaleInPolicy", + "markdownDescription": "The sacle\\-in policy for the connector\\. \n*Required*: Yes \n*Type*: [ScaleInPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-scaleinpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScaleInPolicy" + }, + "ScaleOutPolicy": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.ScaleOutPolicy", + "markdownDescription": "The sacle\\-out policy for the connector\\. \n*Required*: Yes \n*Type*: [ScaleOutPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-scaleoutpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScaleOutPolicy" + } + }, + "required": [ + "MaxWorkerCount", + "McuCount", + "MinWorkerCount", + "ScaleInPolicy", + "ScaleOutPolicy" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.Capacity": { + "additionalProperties": false, + "properties": { + "AutoScaling": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.AutoScaling", + "markdownDescription": "Information about the auto scaling parameters for the connector\\. \n*Required*: No \n*Type*: [AutoScaling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-autoscaling.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoScaling" + }, + "ProvisionedCapacity": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.ProvisionedCapacity", + "markdownDescription": "Details about a fixed capacity allocated to a connector\\. \n*Required*: No \n*Type*: [ProvisionedCapacity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-provisionedcapacity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisionedCapacity" + } + }, + "type": "object" + }, + "AWS::KafkaConnect::Connector.CloudWatchLogsLogDelivery": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Whether log delivery to Amazon CloudWatch Logs is enabled\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Enabled", + "type": "boolean" + }, + "LogGroup": { + "markdownDescription": "The name of the CloudWatch log group that is the destination for log delivery\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogGroup", + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.CustomPlugin": { + "additionalProperties": false, + "properties": { + "CustomPluginArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the custom plugin\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomPluginArn", + "type": "string" + }, + "Revision": { + "markdownDescription": "The revision of the custom plugin\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Revision", + "type": "number" + } + }, + "required": [ + "CustomPluginArn", + "Revision" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.FirehoseLogDelivery": { + "additionalProperties": false, + "properties": { + "DeliveryStream": { + "markdownDescription": "The name of the Kinesis Data Firehose delivery stream that is the destination for log delivery\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeliveryStream", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Specifies whether connector logs get delivered to Amazon Kinesis Data Firehose\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Enabled", + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.KafkaCluster": { + "additionalProperties": false, + "properties": { + "ApacheKafkaCluster": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.ApacheKafkaCluster", + "markdownDescription": "The Apache Kafka cluster to which the connector is connected\\. \n*Required*: Yes \n*Type*: [ApacheKafkaCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-apachekafkacluster.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApacheKafkaCluster" + } + }, + "required": [ + "ApacheKafkaCluster" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.KafkaClusterClientAuthentication": { + "additionalProperties": false, + "properties": { + "AuthenticationType": { + "markdownDescription": "The type of client authentication used to connect to the Apache Kafka cluster\\. Value NONE means that no client authentication is used\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthenticationType", + "type": "string" + } + }, + "required": [ + "AuthenticationType" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.KafkaClusterEncryptionInTransit": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "markdownDescription": "The type of encryption in transit to the Apache Kafka cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncryptionType", + "type": "string" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.LogDelivery": { + "additionalProperties": false, + "properties": { + "WorkerLogDelivery": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.WorkerLogDelivery", + "markdownDescription": "The workers can send worker logs to different destination types\\. This configuration specifies the details of these destinations\\. \n*Required*: Yes \n*Type*: [WorkerLogDelivery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-workerlogdelivery.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WorkerLogDelivery" + } + }, + "required": [ + "WorkerLogDelivery" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.Plugin": { + "additionalProperties": false, + "properties": { + "CustomPlugin": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.CustomPlugin", + "markdownDescription": "Details about a custom plugin\\. \n*Required*: Yes \n*Type*: [CustomPlugin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-customplugin.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomPlugin" + } + }, + "required": [ + "CustomPlugin" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.ProvisionedCapacity": { + "additionalProperties": false, + "properties": { + "McuCount": { + "markdownDescription": "The number of microcontroller units \\(MCUs\\) allocated to each connector worker\\. The valid values are 1,2,4,8\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "McuCount", + "type": "number" + }, + "WorkerCount": { + "markdownDescription": "The number of workers that are allocated to the connector\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WorkerCount", + "type": "number" + } + }, + "required": [ + "WorkerCount" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.S3LogDelivery": { + "additionalProperties": false, + "properties": { + "Bucket": { + "markdownDescription": "The name of the S3 bucket that is the destination for log delivery\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Bucket", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Specifies whether connector logs get sent to the specified Amazon S3 destination\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Enabled", + "type": "boolean" + }, + "Prefix": { + "markdownDescription": "The S3 prefix that is the destination for log delivery\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Prefix", + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.ScaleInPolicy": { + "additionalProperties": false, + "properties": { + "CpuUtilizationPercentage": { + "markdownDescription": "Specifies the CPU utilization percentage threshold at which you want connector scale in to be triggered\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CpuUtilizationPercentage", + "type": "number" + } + }, + "required": [ + "CpuUtilizationPercentage" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.ScaleOutPolicy": { + "additionalProperties": false, + "properties": { + "CpuUtilizationPercentage": { + "markdownDescription": "The CPU utilization percentage threshold at which you want connector scale out to be triggered\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CpuUtilizationPercentage", + "type": "number" + } + }, + "required": [ + "CpuUtilizationPercentage" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.Vpc": { + "additionalProperties": false, + "properties": { + "SecurityGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "The security groups for the connector\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroups", + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "markdownDescription": "The subnets for the connector\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subnets", + "type": "array" + } + }, + "required": [ + "SecurityGroups", + "Subnets" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.WorkerConfiguration": { + "additionalProperties": false, + "properties": { + "Revision": { + "markdownDescription": "The revision of the worker configuration\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Revision", + "type": "number" + }, + "WorkerConfigurationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the worker configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "WorkerConfigurationArn", + "type": "string" + } + }, + "required": [ + "Revision", + "WorkerConfigurationArn" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.WorkerLogDelivery": { + "additionalProperties": false, + "properties": { + "CloudWatchLogs": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.CloudWatchLogsLogDelivery", + "markdownDescription": "Details about delivering logs to Amazon CloudWatch Logs\\. \n*Required*: No \n*Type*: [CloudWatchLogsLogDelivery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-cloudwatchlogslogdelivery.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CloudWatchLogs" + }, + "Firehose": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.FirehoseLogDelivery", + "markdownDescription": "Details about delivering logs to Amazon Kinesis Data Firehose\\. \n*Required*: No \n*Type*: [FirehoseLogDelivery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-firehoselogdelivery.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Firehose" + }, + "S3": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.S3LogDelivery", + "markdownDescription": "Details about delivering logs to Amazon S3\\. \n*Required*: No \n*Type*: [S3LogDelivery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kafkaconnect-connector-s3logdelivery.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3" + } + }, + "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", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [CustomDocumentEnrichmentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-customdocumentenrichmentconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomDocumentEnrichmentConfiguration" + }, + "DataSourceConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceConfiguration", + "markdownDescription": "Configuration information for an Amazon Kendra data source\\. The contents of the configuration depend on the type of data source\\. You can only specify one type of data source in the configuration\\. Choose from one of the following data sources\\. \n+ Amazon S3\n+ Confluence\n+ Custom\n+ Database\n+ Microsoft OneDrive\n+ Microsoft SharePoint \n+ Salesforce\n+ ServiceNow\nYou can't specify the `Configuration` parameter when the `Type` parameter is set to `CUSTOM`\\. \nThe `Configuration` parameter is required for all other data sources\\. \n*Required*: No \n*Type*: [DataSourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSourceConfiguration" + }, + "Description": { + "markdownDescription": "A description of the data source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "IndexId": { + "markdownDescription": "The identifier of the index that should be associated with this data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IndexId", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the data source\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Pattern*: `[a-zA-Z0-9][a-zA-Z0-9_-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of a role with permission to access the data source\\. \nYou can't specify the `RoleArn` parameter when the `Type` parameter is set to `CUSTOM`\\. \nThe `RoleArn` parameter is required for all other data sources\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "Schedule": { + "markdownDescription": "Sets the frequency that Amazon Kendra checks the documents in your data source and updates the index\\. If you don't set a schedule, Amazon Kendra doesn't periodically update the index\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Type": { + "markdownDescription": "The type of the data source\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CONFLUENCE | CUSTOM | DATABASE | FSX | GOOGLEDRIVE | ONEDRIVE | S3 | SALESFORCE | SERVICENOW | SHAREPOINT | SLACK | WEBCRAWLER | WORKDOCS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Path to the AWS S3 bucket that contains the access control list files\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyPath", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.AclConfiguration": { + "additionalProperties": false, + "properties": { + "AllowedGroupsColumnName": { + "markdownDescription": "A list of groups, separated by semi\\-colons, that filters a query response based on user context\\. The document is only returned to users that are in one of the groups specified in the `UserContext` field of the [Query](https://docs.aws.amazon.com/kendra/latest/dg/API_Query.html) operation\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedGroupsColumnName", + "type": "string" + } + }, + "required": [ + "AllowedGroupsColumnName" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.ColumnConfiguration": { + "additionalProperties": false, + "properties": { + "ChangeDetectingColumns": { + "items": { + "type": "string" + }, + "markdownDescription": "One to five columns that indicate when a document in the database has changed\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChangeDetectingColumns", + "type": "array" + }, + "DocumentDataColumnName": { + "markdownDescription": "The column that contains the contents of the document\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentDataColumnName", + "type": "string" + }, + "DocumentIdColumnName": { + "markdownDescription": "The column that provides the document's unique identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentIdColumnName", + "type": "string" + }, + "DocumentTitleColumnName": { + "markdownDescription": "The column that contains the title of the document\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentTitleColumnName", + "type": "string" + }, + "FieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping" + }, + "markdownDescription": "An array of objects that map database column names to the corresponding fields in an index\\. You must first create the fields in the index using the [UpdateIndex](https://docs.aws.amazon.com/kendra/latest/dg/API_UpdateIndex.html) operation\\. \n*Required*: No \n*Type*: List of [DataSourceToIndexFieldMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourcetoindexfieldmapping.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldMappings", + "type": "array" + } + }, + "required": [ + "ChangeDetectingColumns", + "DocumentDataColumnName", + "DocumentIdColumnName" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.ConfluenceAttachmentConfiguration": { + "additionalProperties": false, + "properties": { + "AttachmentFieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluenceAttachmentToIndexFieldMapping" + }, + "markdownDescription": "Maps attributes or field names of Confluence attachments to Amazon Kendra index field names\\. To create custom fields, use the `UpdateIndex` API before you map to Confluence fields\\. For more information, see [Mapping data source fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html)\\. The Confluence data source field names must exist in your Confluence custom metadata\\. \nIf you specify the `AttachentFieldMappings` parameter, you must specify at least one field mapping\\. \n*Required*: No \n*Type*: List of [ConfluenceAttachmentToIndexFieldMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceattachmenttoindexfieldmapping.html) \n*Maximum*: `11` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttachmentFieldMappings", + "type": "array" + }, + "CrawlAttachments": { + "markdownDescription": "Indicates whether Amazon Kendra indexes attachments to the pages and blogs in the Confluence data source\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CrawlAttachments", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.ConfluenceAttachmentToIndexFieldMapping": { + "additionalProperties": false, + "properties": { + "DataSourceFieldName": { + "markdownDescription": "The name of the field in the data source\\. \nYou must first create the index field using the `UpdateIndex` API\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AUTHOR | CONTENT_TYPE | CREATED_DATE | DISPLAY_URL | FILE_SIZE | ITEM_TYPE | PARENT_ID | SPACE_KEY | SPACE_NAME | URL | VERSION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSourceFieldName", + "type": "string" + }, + "DateFieldFormat": { + "markdownDescription": "The format for date fields in the data source\\. If the field specified in `DataSourceFieldName` is a date field you must specify the date format\\. If the field is not a date field, an exception is thrown\\. \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `40` \n*Pattern*: `^(?!\\s).*(?A list of regular expression patterns to exclude certain blog posts, pages, spaces, or attachments in your Confluence\\. Content that matches the patterns are excluded from the index\\. Content that doesn't match the patterns is included in the index\\. If content matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the content isn't included in the index\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExclusionPatterns", + "type": "array" + }, + "InclusionPatterns": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of regular expression patterns to include certain blog posts, pages, spaces, or attachments in your Confluence\\. Content that matches the patterns are included in the index\\. Content that doesn't match the patterns is excluded from the index\\. If content matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the content isn't included in the index\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InclusionPatterns", + "type": "array" + }, + "PageConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluencePageConfiguration", + "markdownDescription": "Configuration information for indexing Confluence pages\\. \n*Required*: No \n*Type*: [ConfluencePageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencepageconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PageConfiguration" + }, + "SecretArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS Secrets Manager secret that contains the key\\-value pairs required to connect to your Confluence server\\. The secret must contain a JSON structure with the following keys: \n+ username\u2014The user name or email address of a user with administrative privileges for the Confluence server\\.\n+ password\u2014The password associated with the user logging in to the Confluence server\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1284` \n*Pattern*: `arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretArn", + "type": "string" + }, + "ServerUrl": { + "markdownDescription": "The URL of your Confluence instance\\. Use the full URL of the server\\. For example, *https://server\\.example\\.com:port/*\\. You can also use an IP address, for example, *https://192\\.168\\.1\\.113/*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `^(https?|ftp|file):\\/\\/([^\\s]*)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerUrl", + "type": "string" + }, + "SpaceConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluenceSpaceConfiguration", + "markdownDescription": "Configuration information for indexing Confluence spaces\\. \n*Required*: No \n*Type*: [ConfluenceSpaceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencespaceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpaceConfiguration" + }, + "Version": { + "markdownDescription": "Specifies the version of the Confluence installation that you are connecting to\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CLOUD | SERVER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceVpcConfiguration", + "markdownDescription": "Configuration information for an Amazon Virtual Private Cloud to connect to your Confluence\\. For more information, see [Configuring a VPC](https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html)\\. \n*Required*: No \n*Type*: [DataSourceVpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourcevpcconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcConfiguration" + } + }, + "required": [ + "SecretArn", + "ServerUrl", + "Version" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.ConfluencePageConfiguration": { + "additionalProperties": false, + "properties": { + "PageFieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluencePageToIndexFieldMapping" + }, + "markdownDescription": ">Maps attributes or field names of Confluence pages to Amazon Kendra index field names\\. To create custom fields, use the `UpdateIndex` API before you map to Confluence fields\\. For more information, see [Mapping data source fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html)\\. The Confluence data source field names must exist in your Confluence custom metadata\\. \nIf you specify the `PageFieldMappings` parameter, you must specify at least one field mapping\\. \n*Required*: No \n*Type*: List of [ConfluencePageToIndexFieldMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencepagetoindexfieldmapping.html) \n*Maximum*: `12` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PageFieldMappings", + "type": "array" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.ConfluencePageToIndexFieldMapping": { + "additionalProperties": false, + "properties": { + "DataSourceFieldName": { + "markdownDescription": "The name of the field in the data source\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AUTHOR | CONTENT_STATUS | CREATED_DATE | DISPLAY_URL | ITEM_TYPE | LABELS | MODIFIED_DATE | PARENT_ID | SPACE_KEY | SPACE_NAME | URL | VERSION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSourceFieldName", + "type": "string" + }, + "DateFieldFormat": { + "markdownDescription": "The format for date fields in the data source\\. If the field specified in `DataSourceFieldName` is a date field you must specify the date format\\. If the field is not a date field, an exception is thrown\\. \n*Required*: No \n*Type*: String \n*Minimum*: `4` \n*Maximum*: `40` \n*Pattern*: `^(?!\\s).*(?&]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NamePrefix", + "type": "string" + } + }, + "required": [ + "InputSchema", + "NamePrefix" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.InputLambdaProcessor": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "markdownDescription": "The ARN of the Amazon Lambda function that operates on records in the stream\\. \nTo specify an earlier version of the Lambda function than the latest, include the Lambda function version in the Lambda function ARN\\. For more information about Lambda ARNs, see [Example ARNs: Amazon Lambda](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda) \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceARN", + "type": "string" + } + }, + "required": [ + "ResourceARN" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.InputParallelism": { + "additionalProperties": false, + "properties": { + "Count": { + "markdownDescription": "The number of in\\-application streams to create\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count", + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.InputProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "InputLambdaProcessor": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputLambdaProcessor", + "markdownDescription": "The [InputLambdaProcessor](https://docs.aws.amazon.com/kinesisanalytics/latest/apiv2/API_InputLambdaProcessor.html) that is used to preprocess the records in the stream before being processed by your application code\\. \n*Required*: No \n*Type*: [InputLambdaProcessor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputlambdaprocessor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputLambdaProcessor" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.InputSchema": { + "additionalProperties": false, + "properties": { + "RecordColumns": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.RecordColumn" + }, + "markdownDescription": "A list of `RecordColumn` objects\\. \n*Required*: Yes \n*Type*: List of [RecordColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordcolumn.html) \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordColumns", + "type": "array" + }, + "RecordEncoding": { + "markdownDescription": "Specifies the encoding of the records in the streaming source\\. For example, UTF\\-8\\. \n*Required*: No \n*Type*: String \n*Minimum*: `5` \n*Maximum*: `5` \n*Pattern*: `UTF-8` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordEncoding", + "type": "string" + }, + "RecordFormat": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.RecordFormat", + "markdownDescription": "Specifies the format of the records on the streaming source\\. \n*Required*: Yes \n*Type*: [RecordFormat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordformat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordFormat" + } + }, + "required": [ + "RecordColumns", + "RecordFormat" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.JSONMappingParameters": { + "additionalProperties": false, + "properties": { + "RecordRowPath": { + "markdownDescription": "The path to the top\\-level parent that contains the records\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `65535` \n*Pattern*: `^(?=^\\$)(?=^\\S+$).*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordRowPath", + "type": "string" + } + }, + "required": [ + "RecordRowPath" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.KinesisFirehoseInput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the delivery stream\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceARN", + "type": "string" + } + }, + "required": [ + "ResourceARN" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.KinesisStreamsInput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "markdownDescription": "The ARN of the input Kinesis data stream to read\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceARN", + "type": "string" + } + }, + "required": [ + "ResourceARN" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.MappingParameters": { + "additionalProperties": false, + "properties": { + "CSVMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CSVMappingParameters", + "markdownDescription": "Provides additional mapping information when the record format uses delimiters \\(for example, CSV\\)\\. \n*Required*: No \n*Type*: [CSVMappingParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-csvmappingparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CSVMappingParameters" + }, + "JSONMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.JSONMappingParameters", + "markdownDescription": "Provides additional mapping information when JSON is the record format on the streaming source\\. \n*Required*: No \n*Type*: [JSONMappingParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-jsonmappingparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JSONMappingParameters" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.MavenReference": { + "additionalProperties": false, + "properties": { + "ArtifactId": { + "markdownDescription": "The artifact ID of the Maven reference\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArtifactId", + "type": "string" + }, + "GroupId": { + "markdownDescription": "The group ID of the Maven reference\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupId", + "type": "string" + }, + "Version": { + "markdownDescription": "The version of the Maven reference\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", + "type": "string" + } + }, + "required": [ + "ArtifactId", + "GroupId", + "Version" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.MonitoringConfiguration": { + "additionalProperties": false, + "properties": { + "ConfigurationType": { + "markdownDescription": "Describes whether to use the default CloudWatch logging configuration for an application\\. You must set this property to `CUSTOM` in order to set the `LogLevel` or `MetricsLevel` parameters\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CUSTOM | DEFAULT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfigurationType", + "type": "string" + }, + "LogLevel": { + "markdownDescription": "Describes the verbosity of the CloudWatch Logs for an application\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DEBUG | ERROR | INFO | WARN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogLevel", + "type": "string" + }, + "MetricsLevel": { + "markdownDescription": "Describes the granularity of the CloudWatch Logs for an application\\. The `Parallelism` level is not recommended for applications with a Parallelism over 64 due to excessive costs\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `APPLICATION | OPERATOR | PARALLELISM | TASK` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricsLevel", + "type": "string" + } + }, + "required": [ + "ConfigurationType" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.ParallelismConfiguration": { + "additionalProperties": false, + "properties": { + "AutoScalingEnabled": { + "markdownDescription": "Describes whether the Kinesis Data Analytics service can increase the parallelism of the application in response to increased throughput\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoScalingEnabled", + "type": "boolean" + }, + "ConfigurationType": { + "markdownDescription": "Describes whether the application uses the default parallelism for the Kinesis Data Analytics service\\. You must set this property to `CUSTOM` in order to change your application's `AutoScalingEnabled`, `Parallelism`, or `ParallelismPerKPU` properties\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CUSTOM | DEFAULT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfigurationType", + "type": "string" + }, + "Parallelism": { + "markdownDescription": "Describes the initial number of parallel tasks that a Java\\-based Kinesis Data Analytics application can perform\\. The Kinesis Data Analytics service can increase this number automatically if [ParallelismConfiguration:AutoScalingEnabled](https://docs.aws.amazon.com/kinesisanalytics/latest/apiv2/API_ParallelismConfiguration.html#kinesisanalytics-Type-ParallelismConfiguration-AutoScalingEnabled.html) is set to `true`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parallelism", + "type": "number" + }, + "ParallelismPerKPU": { + "markdownDescription": "Describes the number of parallel tasks that a Java\\-based Kinesis Data Analytics application can perform per Kinesis Processing Unit \\(KPU\\) used by the application\\. For more information about KPUs, see [Amazon Kinesis Data Analytics Pricing](https://docs.aws.amazon.com/kinesis/data-analytics/pricing/)\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParallelismPerKPU", + "type": "number" + } + }, + "required": [ + "ConfigurationType" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.PropertyGroup": { + "additionalProperties": false, + "properties": { + "PropertyGroupId": { + "markdownDescription": "Describes the key of an application execution property key\\-value pair\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PropertyGroupId", + "type": "string" + }, + "PropertyMap": { + "additionalProperties": true, + "markdownDescription": "Describes the value of an application execution property key\\-value pair\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "PropertyMap", + "type": "object" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.RecordColumn": { + "additionalProperties": false, + "properties": { + "Mapping": { + "markdownDescription": "A reference to the data element in the streaming input or the reference data source\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mapping", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the column that is created in the in\\-application input stream or reference table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[^-\\s<>&]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "SqlType": { + "markdownDescription": "The type of column created in the in\\-application input stream or reference table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SqlType", + "type": "string" + } + }, + "required": [ + "Name", + "SqlType" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.RecordFormat": { + "additionalProperties": false, + "properties": { + "MappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.MappingParameters", + "markdownDescription": "When you configure application input at the time of creating or updating an application, provides additional mapping information specific to the record format \\(such as JSON, CSV, or record fields delimited by some delimiter\\) on the streaming source\\. \n*Required*: No \n*Type*: [MappingParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-mappingparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MappingParameters" + }, + "RecordFormatType": { + "markdownDescription": "The type of record format\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CSV | JSON` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The base path for the S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[a-zA-Z0-9/!-_.*'()]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BasePath", + "type": "string" + }, + "BucketARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketARN", + "type": "string" + } + }, + "required": [ + "BucketARN" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.S3ContentLocation": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the S3 bucket containing the application code\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketARN", + "type": "string" + }, + "FileKey": { + "markdownDescription": "The file key for the object containing the application code\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileKey", + "type": "string" + }, + "ObjectVersion": { + "markdownDescription": "The version of the object containing the application code\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectVersion", + "type": "string" + } + }, + "required": [ + "BucketARN", + "FileKey" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration": { + "additionalProperties": false, + "properties": { + "Inputs": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.Input" + }, + "markdownDescription": "The array of [Input](https://docs.aws.amazon.com/kinesisanalytics/latest/apiv2/API_Input.html) objects describing the input streams used by the application\\. \n*Required*: No \n*Type*: List of [Input](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Inputs", + "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", + "markdownDescription": "The Amazon Glue Data Catalog that you use in queries in a Kinesis Data Analytics Studio notebook\\. \n*Required*: No \n*Type*: [CatalogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-catalogconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CatalogConfiguration" + }, + "CustomArtifactsConfiguration": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CustomArtifactConfiguration" + }, + "markdownDescription": "A list of `CustomArtifactConfiguration` objects\\. \n*Required*: No \n*Type*: List of [CustomArtifactConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-customartifactconfiguration.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomArtifactsConfiguration", + "type": "array" + }, + "DeployAsApplicationConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.DeployAsApplicationConfiguration", + "markdownDescription": "The information required to deploy a Kinesis Data Analytics Studio notebook as an application with durable state\\. \n*Required*: No \n*Type*: [DeployAsApplicationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-deployasapplicationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeployAsApplicationConfiguration" + }, + "MonitoringConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ZeppelinMonitoringConfiguration", + "markdownDescription": "The monitoring configuration of a Kinesis Data Analytics Studio notebook\\. \n*Required*: No \n*Type*: [ZeppelinMonitoringConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-zeppelinmonitoringconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MonitoringConfiguration" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.ZeppelinMonitoringConfiguration": { + "additionalProperties": false, + "properties": { + "LogLevel": { + "markdownDescription": "The verbosity of the CloudWatch Logs for an application\\. You can set it to `INFO`, `WARN`, `ERROR`, or `DEBUG`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DEBUG | ERROR | INFO | WARN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationName", + "type": "string" + }, + "CloudWatchLoggingOption": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption.CloudWatchLoggingOption", + "markdownDescription": "Provides a description of Amazon CloudWatch logging options, including the log stream Amazon Resource Name \\(ARN\\)\\. \n*Required*: Yes \n*Type*: [CloudWatchLoggingOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationcloudwatchloggingoption-cloudwatchloggingoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ARN of the CloudWatch log to receive application messages\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationName", + "type": "string" + }, + "Output": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.Output", + "markdownDescription": "Describes a SQL\\-based Kinesis Data Analytics application's output configuration, in which you identify an in\\-application stream and a destination where you want the in\\-application stream data to be written\\. The destination can be a Kinesis data stream or a Kinesis Data Firehose delivery stream\\. \n \n*Required*: Yes \n*Type*: [Output](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Specifies the format of the records on the output stream\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CSV | JSON` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordFormatType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisFirehoseOutput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "markdownDescription": "The ARN of the destination delivery stream to write to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceARN", + "type": "string" + } + }, + "required": [ + "ResourceARN" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisStreamsOutput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "markdownDescription": "The ARN of the destination Kinesis data stream to write to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceARN", + "type": "string" + } + }, + "required": [ + "ResourceARN" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationOutput.LambdaOutput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the destination Lambda function to write to\\. \nTo specify an earlier version of the Lambda function than the latest, include the Lambda function version in the Lambda function ARN\\. For more information about Lambda ARNs, see [Example ARNs: Amazon Lambda](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda) \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceARN", + "type": "string" + } + }, + "required": [ + "ResourceARN" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationOutput.Output": { + "additionalProperties": false, + "properties": { + "DestinationSchema": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.DestinationSchema", + "markdownDescription": "Describes the data format when records are written to the destination\\. \n*Required*: Yes \n*Type*: [DestinationSchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-destinationschema.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationSchema" + }, + "KinesisFirehoseOutput": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisFirehoseOutput", + "markdownDescription": "Identifies a Kinesis Data Firehose delivery stream as the destination\\. \n*Required*: No \n*Type*: [KinesisFirehoseOutput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-kinesisfirehoseoutput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KinesisFirehoseOutput" + }, + "KinesisStreamsOutput": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisStreamsOutput", + "markdownDescription": "Identifies a Kinesis data stream as the destination\\. \n*Required*: No \n*Type*: [KinesisStreamsOutput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-kinesisstreamsoutput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KinesisStreamsOutput" + }, + "LambdaOutput": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.LambdaOutput", + "markdownDescription": "Identifies an Amazon Lambda function as the destination\\. \n*Required*: No \n*Type*: [LambdaOutput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-lambdaoutput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaOutput" + }, + "Name": { + "markdownDescription": "The name of the in\\-application stream\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `[^-\\s<>&]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationName", + "type": "string" + }, + "ReferenceDataSource": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceDataSource", + "markdownDescription": "For a SQL\\-based Kinesis Data Analytics application, describes the reference data source by providing the source information \\(Amazon S3 bucket name and object key name\\), the resulting in\\-application table name that is created, and the necessary schema to map the data elements in the Amazon S3 object to the in\\-application table\\. \n*Required*: Yes \n*Type*: [ReferenceDataSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The column delimiter\\. For example, in a CSV format, a comma \\(\",\"\\) is the typical column delimiter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordColumnDelimiter", + "type": "string" + }, + "RecordRowDelimiter": { + "markdownDescription": "The row delimiter\\. For example, in a CSV format, *'\\\\n'* is the typical row delimiter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordRowDelimiter", + "type": "string" + } + }, + "required": [ + "RecordColumnDelimiter", + "RecordRowDelimiter" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.JSONMappingParameters": { + "additionalProperties": false, + "properties": { + "RecordRowPath": { + "markdownDescription": "The path to the top\\-level parent that contains the records\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `65535` \n*Pattern*: `^(?=^\\$)(?=^\\S+$).*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordRowPath", + "type": "string" + } + }, + "required": [ + "RecordRowPath" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.MappingParameters": { + "additionalProperties": false, + "properties": { + "CSVMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.CSVMappingParameters", + "markdownDescription": "Provides additional mapping information when the record format uses delimiters \\(for example, CSV\\)\\. \n*Required*: No \n*Type*: [CSVMappingParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-csvmappingparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CSVMappingParameters" + }, + "JSONMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.JSONMappingParameters", + "markdownDescription": "Provides additional mapping information when JSON is the record format on the streaming source\\. \n*Required*: No \n*Type*: [JSONMappingParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-jsonmappingparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JSONMappingParameters" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordColumn": { + "additionalProperties": false, + "properties": { + "Mapping": { + "markdownDescription": "A reference to the data element in the streaming input or the reference data source\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mapping", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the column that is created in the in\\-application input stream or reference table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[^-\\s<>&]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "SqlType": { + "markdownDescription": "The type of column created in the in\\-application input stream or reference table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SqlType", + "type": "string" + } + }, + "required": [ + "Name", + "SqlType" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordFormat": { + "additionalProperties": false, + "properties": { + "MappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.MappingParameters", + "markdownDescription": "When you configure application input at the time of creating or updating an application, provides additional mapping information specific to the record format \\(such as JSON, CSV, or record fields delimited by some delimiter\\) on the streaming source\\. \n*Required*: No \n*Type*: [MappingParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-mappingparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MappingParameters" + }, + "RecordFormatType": { + "markdownDescription": "The type of record format\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CSV | JSON` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordFormatType", + "type": "string" + } + }, + "required": [ + "RecordFormatType" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceDataSource": { + "additionalProperties": false, + "properties": { + "ReferenceSchema": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceSchema", + "markdownDescription": "Describes the format of the data in the streaming source, and how each data element maps to corresponding columns created in the in\\-application stream\\. \n*Required*: Yes \n*Type*: [ReferenceSchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referenceschema.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReferenceSchema" + }, + "S3ReferenceDataSource": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.S3ReferenceDataSource", + "markdownDescription": "Identifies the S3 bucket and object that contains the reference data\\. A Kinesis Data Analytics application loads reference data only once\\. If the data changes, you call the [UpdateApplication](https://docs.aws.amazon.com/kinesisanalytics/latest/apiv2/API_UpdateApplication.html) operation to trigger reloading of data into your application\\. \n*Required*: No \n*Type*: [S3ReferenceDataSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-s3referencedatasource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3ReferenceDataSource" + }, + "TableName": { + "markdownDescription": "The name of the in\\-application table to create\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TableName", + "type": "string" + } + }, + "required": [ + "ReferenceSchema" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceSchema": { + "additionalProperties": false, + "properties": { + "RecordColumns": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordColumn" + }, + "markdownDescription": "A list of `RecordColumn` objects\\. \n*Required*: Yes \n*Type*: List of [RecordColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn.html) \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordColumns", + "type": "array" + }, + "RecordEncoding": { + "markdownDescription": "Specifies the encoding of the records in the streaming source\\. For example, UTF\\-8\\. \n*Required*: No \n*Type*: String \n*Minimum*: `5` \n*Maximum*: `5` \n*Pattern*: `UTF-8` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordEncoding", + "type": "string" + }, + "RecordFormat": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordFormat", + "markdownDescription": "Specifies the format of the records on the streaming source\\. \n*Required*: Yes \n*Type*: [RecordFormat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordformat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordFormat" + } + }, + "required": [ + "RecordColumns", + "RecordFormat" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.S3ReferenceDataSource": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketARN", + "type": "string" + }, + "FileKey": { + "markdownDescription": "The object key name containing the reference data\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The destination in Amazon OpenSearch Service\\. You can specify only one destination\\. \n*Required*: Conditional \n*Type*: [AmazonopensearchserviceDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AmazonopensearchserviceDestinationConfiguration" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput", + "markdownDescription": "Specifies the type and Amazon Resource Name \\(ARN\\) of the CMK to use for Server\\-Side Encryption \\(SSE\\)\\. \n*Required*: No \n*Type*: [DeliveryStreamEncryptionConfigurationInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryStreamEncryptionConfigurationInput" + }, + "DeliveryStreamName": { + "markdownDescription": "The name of the delivery stream\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeliveryStreamName", + "type": "string" + }, + "DeliveryStreamType": { + "markdownDescription": "The delivery stream type\\. This can be one of the following values: \n+ `DirectPut`: Provider applications access the delivery stream directly\\.\n+ `KinesisStreamAsSource`: The delivery stream uses a Kinesis data stream as a source\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `DirectPut | KinesisStreamAsSource` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeliveryStreamType", + "type": "string" + }, + "ElasticsearchDestinationConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchDestinationConfiguration", + "markdownDescription": "An Amazon ES destination for the delivery stream\\. \nConditional\\. You must specify only one destination configuration\\. \nIf you change the delivery stream destination from an Amazon ES destination to an Amazon S3 or Amazon Redshift destination, update requires [some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)\\. \n*Required*: Conditional \n*Type*: [ElasticsearchDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticsearchDestinationConfiguration" + }, + "ExtendedS3DestinationConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ExtendedS3DestinationConfiguration", + "markdownDescription": "An Amazon S3 destination for the delivery stream\\. \nConditional\\. You must specify only one destination configuration\\. \nIf you change the delivery stream destination from an Amazon Extended S3 destination to an Amazon ES destination, update requires [some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)\\. \n*Required*: Conditional \n*Type*: [ExtendedS3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExtendedS3DestinationConfiguration" + }, + "HttpEndpointDestinationConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HttpEndpointDestinationConfiguration", + "markdownDescription": "Enables configuring Kinesis Firehose to deliver data to any HTTP endpoint destination\\. You can specify only one destination\\. \n*Required*: No \n*Type*: [HttpEndpointDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpEndpointDestinationConfiguration" + }, + "KinesisStreamSourceConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.KinesisStreamSourceConfiguration", + "markdownDescription": "When a Kinesis stream is used as the source for the delivery stream, a [KinesisStreamSourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration.html) containing the Kinesis stream ARN and the role ARN for the source stream\\. \n*Required*: No \n*Type*: [KinesisStreamSourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KinesisStreamSourceConfiguration" + }, + "RedshiftDestinationConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RedshiftDestinationConfiguration", + "markdownDescription": "An Amazon Redshift destination for the delivery stream\\. \nConditional\\. You must specify only one destination configuration\\. \nIf you change the delivery stream destination from an Amazon Redshift destination to an Amazon ES destination, update requires [some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)\\. \n*Required*: Conditional \n*Type*: [RedshiftDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedshiftDestinationConfiguration" + }, + "S3DestinationConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration", + "markdownDescription": "The `S3DestinationConfiguration` property type specifies an Amazon Simple Storage Service \\(Amazon S3\\) destination to which Amazon Kinesis Data Firehose \\(Kinesis Data Firehose\\) delivers data\\. \nConditional\\. You must specify only one destination configuration\\. \nIf you change the delivery stream destination from an Amazon S3 destination to an Amazon ES destination, update requires [some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)\\. \n*Required*: Conditional \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3DestinationConfiguration" + }, + "SplunkDestinationConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SplunkDestinationConfiguration", + "markdownDescription": "The configuration of a destination in Splunk for the delivery stream\\. \n*Required*: No \n*Type*: [SplunkDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SplunkDestinationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A set of tags to assign to the delivery stream\\. A tag is a key\\-value pair that you can define and assign to AWS resources\\. Tags are metadata\\. For example, you can add friendly names and descriptions or other types of information that can help you distinguish the delivery stream\\. For more information about tags, see [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) in the AWS Billing and Cost Management User Guide\\. \nYou can specify up to 50 tags when creating a delivery stream\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination\\. The default value is 300 \\(5 minutes\\)\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `60` \n*Maximum*: `900` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalInSeconds", + "type": "number" + }, + "SizeInMBs": { + "markdownDescription": "Buffer incoming data to the specified size, in MBs, before delivering it to the destination\\. The default value is 5\\. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds\\. For example, if you typically ingest data at 1 MB/sec, the value should be 10 MB or higher\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SizeInMBs", + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceBufferingHints", + "markdownDescription": "The buffering options\\. If no value is specified, the default values for AmazonopensearchserviceBufferingHints are used\\. \n*Required*: No \n*Type*: [AmazonopensearchserviceBufferingHints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicebufferinghints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions", + "markdownDescription": "Describes the Amazon CloudWatch logging options for your delivery stream\\. \n*Required*: No \n*Type*: [CloudWatchLoggingOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "markdownDescription": "The endpoint to use when communicating with the cluster\\. Specify either this ClusterEndpoint or the DomainARN field\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `https:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterEndpoint", + "type": "string" + }, + "DomainARN": { + "markdownDescription": "The ARN of the Amazon OpenSearch Service domain\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainARN", + "type": "string" + }, + "IndexName": { + "markdownDescription": "The Amazon OpenSearch Service index name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `80` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IndexName", + "type": "string" + }, + "IndexRotationPeriod": { + "markdownDescription": "The Amazon OpenSearch Service index rotation period\\. Index rotation appends a timestamp to the IndexName to facilitate the expiration of old data\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NoRotation | OneDay | OneHour | OneMonth | OneWeek` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IndexRotationPeriod", + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration", + "markdownDescription": "Describes a data processing configuration\\. \n*Required*: No \n*Type*: [ProcessingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceRetryOptions", + "markdownDescription": "The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon OpenSearch Service\\. The default value is 300 \\(5 minutes\\)\\. \n*Required*: No \n*Type*: [AmazonopensearchserviceRetryOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchserviceretryoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryOptions" + }, + "RoleARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon OpenSearch Service Configuration API and for indexing documents\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleARN", + "type": "string" + }, + "S3BackupMode": { + "markdownDescription": "Defines how documents should be delivered to Amazon S3\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AllDocuments | FailedDocumentsOnly` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BackupMode", + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration", + "markdownDescription": "Describes the configuration of a destination in Amazon S3\\. \n*Required*: Yes \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Configuration" + }, + "TypeName": { + "markdownDescription": "The Amazon OpenSearch Service type name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `100` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TypeName", + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.VpcConfiguration", + "markdownDescription": "The details of the VPC of the Amazon OpenSearch Service destination\\. \n*Required*: No \n*Type*: [VpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-vpcconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcConfiguration" + } + }, + "required": [ + "IndexName", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "markdownDescription": "After an initial failure to deliver to Amazon OpenSearch Service, the total amount of time during which Kinesis Data Firehose retries delivery \\(including the first attempt\\)\\. After this time has elapsed, the failed documents are written to Amazon S3\\. Default value is 300 seconds \\(5 minutes\\)\\. A value of 0 \\(zero\\) results in no retries\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `7200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DurationInSeconds", + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.BufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "markdownDescription": "The length of time, in seconds, that Kinesis Data Firehose buffers incoming data before delivering it to the destination\\. For valid values, see the `IntervalInSeconds` content for the [BufferingHints](https://docs.aws.amazon.com/firehose/latest/APIReference/API_BufferingHints.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `60` \n*Maximum*: `900` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalInSeconds", + "type": "number" + }, + "SizeInMBs": { + "markdownDescription": "The size of the buffer, in MBs, that Kinesis Data Firehose uses for incoming data before delivering it to the destination\\. For valid values, see the `SizeInMBs` content for the [BufferingHints](https://docs.aws.amazon.com/firehose/latest/APIReference/API_BufferingHints.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SizeInMBs", + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Indicates whether CloudWatch Logs logging is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "LogGroupName": { + "markdownDescription": "The name of the CloudWatch Logs log group that contains the log stream that Kinesis Data Firehose will use\\. \nConditional\\. If you enable logging, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroupName", + "type": "string" + }, + "LogStreamName": { + "markdownDescription": "The name of the CloudWatch Logs log stream that Kinesis Data Firehose uses to send logs about data delivery\\. \nConditional\\. If you enable logging, you must specify this property\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `512` \n*Pattern*: `[^:*]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogStreamName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.CopyCommand": { + "additionalProperties": false, + "properties": { + "CopyOptions": { + "markdownDescription": "Parameters to use with the Amazon Redshift `COPY` command\\. For examples, see the `CopyOptions` content for the [CopyCommand](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CopyCommand.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `204800` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CopyOptions", + "type": "string" + }, + "DataTableColumns": { + "markdownDescription": "A comma\\-separated list of column names\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `204800` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataTableColumns", + "type": "string" + }, + "DataTableName": { + "markdownDescription": "The name of the target table\\. The table must already exist in the database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataTableName", + "type": "string" + } + }, + "required": [ + "DataTableName" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.DataFormatConversionConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Defaults to `true`\\. Set it to `false` if you want to disable format conversion while preserving the configuration details\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "InputFormatConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.InputFormatConfiguration", + "markdownDescription": "Specifies the deserializer that you want Kinesis Data Firehose to use to convert the format of your data from JSON\\. This parameter is required if `Enabled` is set to true\\. \n*Required*: No \n*Type*: [InputFormatConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-inputformatconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputFormatConfiguration" + }, + "OutputFormatConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OutputFormatConfiguration", + "markdownDescription": "Specifies the serializer that you want Kinesis Data Firehose to use to convert the format of your data to the Parquet or ORC format\\. This parameter is required if `Enabled` is set to true\\. \n*Required*: No \n*Type*: [OutputFormatConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-outputformatconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputFormatConfiguration" + }, + "SchemaConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SchemaConfiguration", + "markdownDescription": "Specifies the AWS Glue Data Catalog table that contains the column information\\. This parameter is required if `Enabled` is set to true\\. \n*Required*: No \n*Type*: [SchemaConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-schemaconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchemaConfiguration" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "markdownDescription": "If you set `KeyType` to `CUSTOMER_MANAGED_CMK`, you must specify the Amazon Resource Name \\(ARN\\) of the CMK\\. If you set `KeyType` to ` AWS_OWNED_CMK`, Kinesis Data Firehose uses a service\\-account CMK\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyARN", + "type": "string" + }, + "KeyType": { + "markdownDescription": "Indicates the type of customer master key \\(CMK\\) to use for encryption\\. The default setting is `AWS_OWNED_CMK`\\. For more information about CMKs, see [Customer Master Keys \\(CMKs\\)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys)\\. \nYou can use a CMK of type CUSTOMER\\_MANAGED\\_CMK to encrypt up to 500 delivery streams\\. \nTo encrypt your delivery stream, use symmetric CMKs\\. Kinesis Data Firehose doesn't support asymmetric CMKs\\. For information about symmetric and asymmetric CMKs, see [About Symmetric and Asymmetric CMKs](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html) in the AWS Key Management Service developer guide\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `AWS_OWNED_CMK | CUSTOMER_MANAGED_CMK` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyType", + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.Deserializer": { + "additionalProperties": false, + "properties": { + "HiveJsonSerDe": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HiveJsonSerDe", + "markdownDescription": "The native Hive / HCatalog JsonSerDe\\. Used by Kinesis Data Firehose for deserializing data, which means converting it from the JSON format in preparation for serializing it to the Parquet or ORC format\\. This is one of two deserializers you can choose, depending on which one offers the functionality you need\\. The other option is the OpenX SerDe\\. \n*Required*: No \n*Type*: [HiveJsonSerDe](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-hivejsonserde.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HiveJsonSerDe" + }, + "OpenXJsonSerDe": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OpenXJsonSerDe", + "markdownDescription": "The OpenX SerDe\\. Used by Kinesis Data Firehose for deserializing data, which means converting it from the JSON format in preparation for serializing it to the Parquet or ORC format\\. This is one of two deserializers you can choose, depending on which one offers the functionality you need\\. The other option is the native Hive / HCatalog JsonSerDe\\. \n*Required*: No \n*Type*: [OpenXJsonSerDe](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-openxjsonserde.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OpenXJsonSerDe" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.DynamicPartitioningConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Specifies whether dynamic partitioning is enabled for this Kinesis Data Firehose delivery stream\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "RetryOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RetryOptions", + "markdownDescription": "Specifies the retry behavior in case Kinesis Data Firehose is unable to deliver data to an Amazon S3 prefix\\. \n*Required*: No \n*Type*: [RetryOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-retryoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryOptions" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "markdownDescription": "The length of time, in seconds, that Kinesis Data Firehose buffers incoming data before delivering it to the destination\\. For valid values, see the `IntervalInSeconds` content for the [BufferingHints](https://docs.aws.amazon.com/firehose/latest/APIReference/API_BufferingHints.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `60` \n*Maximum*: `900` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalInSeconds", + "type": "number" + }, + "SizeInMBs": { + "markdownDescription": "The size of the buffer, in MBs, that Kinesis Data Firehose uses for incoming data before delivering it to the destination\\. For valid values, see the `SizeInMBs` content for the [BufferingHints](https://docs.aws.amazon.com/firehose/latest/APIReference/API_BufferingHints.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SizeInMBs", + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.ElasticsearchDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints", + "markdownDescription": "Configures how Kinesis Data Firehose buffers incoming data while delivering it to the Amazon ES domain\\. \n*Required*: No \n*Type*: [ElasticsearchBufferingHints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchbufferinghints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions", + "markdownDescription": "The Amazon CloudWatch Logs logging options for the delivery stream\\. \n*Required*: No \n*Type*: [CloudWatchLoggingOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "markdownDescription": "The endpoint to use when communicating with the cluster\\. Specify either this `ClusterEndpoint` or the `DomainARN` field\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterEndpoint", + "type": "string" + }, + "DomainARN": { + "markdownDescription": "The ARN of the Amazon ES domain\\. The IAM role must have permissions for `DescribeElasticsearchDomain`, `DescribeElasticsearchDomains`, and `DescribeElasticsearchDomainConfig` after assuming the role specified in **RoleARN**\\. \nSpecify either `ClusterEndpoint` or `DomainARN`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainARN", + "type": "string" + }, + "IndexName": { + "markdownDescription": "The name of the Elasticsearch index to which Kinesis Data Firehose adds data for indexing\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `80` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IndexName", + "type": "string" + }, + "IndexRotationPeriod": { + "markdownDescription": "The frequency of Elasticsearch index rotation\\. If you enable index rotation, Kinesis Data Firehose appends a portion of the UTC arrival timestamp to the specified index name, and rotates the appended timestamp accordingly\\. For more information, see [Index Rotation for the Amazon ES Destination](https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation) in the *Amazon Kinesis Data Firehose Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NoRotation | OneDay | OneHour | OneMonth | OneWeek` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IndexRotationPeriod", + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration", + "markdownDescription": "The data processing configuration for the Kinesis Data Firehose delivery stream\\. \n*Required*: No \n*Type*: [ProcessingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchRetryOptions", + "markdownDescription": "The retry behavior when Kinesis Data Firehose is unable to deliver data to Amazon ES\\. \n*Required*: No \n*Type*: [ElasticsearchRetryOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchretryoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryOptions" + }, + "RoleARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon ES Configuration API and for indexing documents\\. For more information, see [Controlling Access with Amazon Kinesis Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleARN", + "type": "string" + }, + "S3BackupMode": { + "markdownDescription": "The condition under which Kinesis Data Firehose delivers data to Amazon Simple Storage Service \\(Amazon S3\\)\\. You can send Amazon S3 all documents \\(all data\\) or only the documents that Kinesis Data Firehose could not deliver to the Amazon ES destination\\. For more information and valid values, see the `S3BackupMode` content for the [ElasticsearchDestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ElasticsearchDestinationConfiguration.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AllDocuments | FailedDocumentsOnly` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BackupMode", + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration", + "markdownDescription": "The S3 bucket where Kinesis Data Firehose backs up incoming data\\. \n*Required*: Yes \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Configuration" + }, + "TypeName": { + "markdownDescription": "The Elasticsearch type name that Amazon ES adds to documents when indexing data\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `100` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TypeName", + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.VpcConfiguration", + "markdownDescription": "The details of the VPC of the Amazon ES destination\\. \n*Required*: No \n*Type*: [VpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-vpcconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcConfiguration" + } + }, + "required": [ + "IndexName", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.ElasticsearchRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "markdownDescription": "After an initial failure to deliver to Amazon ES, the total amount of time during which Kinesis Data Firehose re\\-attempts delivery \\(including the first attempt\\)\\. If Kinesis Data Firehose can't deliver the data within the specified time, it writes the data to the backup S3 bucket\\. For valid values, see the `DurationInSeconds` content for the [ElasticsearchRetryOptions](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ElasticsearchRetryOptions.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `7200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DurationInSeconds", + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KMSEncryptionConfig": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.KMSEncryptionConfig", + "markdownDescription": "The AWS Key Management Service \\(AWS KMS\\) encryption key that Amazon S3 uses to encrypt your data\\. \n*Required*: No \n*Type*: [KMSEncryptionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kmsencryptionconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KMSEncryptionConfig" + }, + "NoEncryptionConfig": { + "markdownDescription": "Disables encryption\\. For valid values, see the `NoEncryptionConfig` content for the [EncryptionConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_EncryptionConfiguration.html) data type in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NoEncryption` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoEncryptionConfig", + "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.ExtendedS3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon S3 bucket\\. For constraints, see [ExtendedS3DestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ExtendedS3DestinationConfiguration.html) in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketARN", + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.BufferingHints", + "markdownDescription": "The buffering option\\. \n*Required*: No \n*Type*: [BufferingHints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-bufferinghints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions", + "markdownDescription": "The Amazon CloudWatch logging options for your delivery stream\\. \n*Required*: No \n*Type*: [CloudWatchLoggingOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "markdownDescription": "The compression format\\. If no value is specified, the default is `UNCOMPRESSED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GZIP | HADOOP_SNAPPY | Snappy | UNCOMPRESSED | ZIP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CompressionFormat", + "type": "string" + }, + "DataFormatConversionConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DataFormatConversionConfiguration", + "markdownDescription": "The serializer, deserializer, and schema for converting data from the JSON format to the Parquet or ORC format before writing it to Amazon S3\\. \n*Required*: No \n*Type*: [DataFormatConversionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-dataformatconversionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataFormatConversionConfiguration" + }, + "DynamicPartitioningConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DynamicPartitioningConfiguration", + "markdownDescription": "The configuration of the dynamic partitioning mechanism that creates targeted data sets from the streaming data by partitioning it based on partition keys\\. \n*Required*: No \n*Type*: [DynamicPartitioningConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-dynamicpartitioningconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DynamicPartitioningConfiguration" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.EncryptionConfiguration", + "markdownDescription": "The encryption configuration for the Kinesis Data Firehose delivery stream\\. The default value is `NoEncryption`\\. \n*Required*: No \n*Type*: [EncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-encryptionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "markdownDescription": "A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3\\. This prefix appears immediately following the bucket name\\. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorOutputPrefix", + "type": "string" + }, + "Prefix": { + "markdownDescription": "The `YYYY/MM/DD/HH` time format prefix is automatically used for delivered Amazon S3 files\\. For more information, see [ExtendedS3DestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ExtendedS3DestinationConfiguration.html) in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration", + "markdownDescription": "The data processing configuration for the Kinesis Data Firehose delivery stream\\. \n*Required*: No \n*Type*: [ProcessingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProcessingConfiguration" + }, + "RoleARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS credentials\\. For constraints, see [ExtendedS3DestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ExtendedS3DestinationConfiguration.html) in the *Amazon Kinesis Data Firehose API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleARN", + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration", + "markdownDescription": "The configuration for backup in Amazon S3\\. \n*Required*: No \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BackupConfiguration" + }, + "S3BackupMode": { + "markdownDescription": "The Amazon S3 backup mode\\. After you create a delivery stream, you can update it to enable Amazon S3 backup if it is disabled\\. If backup is enabled, you can't update the delivery stream to disable it\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BackupMode", + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.HiveJsonSerDe": { + "additionalProperties": false, + "properties": { + "TimestampFormats": { + "items": { + "type": "string" + }, + "markdownDescription": "Indicates how you want Kinesis Data Firehose to parse the date and timestamps that may be present in your input data JSON\\. To specify these format strings, follow the pattern syntax of JodaTime's DateTimeFormat format strings\\. For more information, see [Class DateTimeFormat](https://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html)\\. You can also use the special value `millis` to parse timestamps in epoch milliseconds\\. If you don't specify a format, Kinesis Data Firehose uses `java.sql.Timestamp::valueOf` by default\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimestampFormats", + "type": "array" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.HttpEndpointCommonAttribute": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "markdownDescription": "The name of the HTTP endpoint common attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^(?!\\s*$).+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeName", + "type": "string" + }, + "AttributeValue": { + "markdownDescription": "The value of the HTTP endpoint common attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeValue", + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeValue" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.HttpEndpointConfiguration": { + "additionalProperties": false, + "properties": { + "AccessKey": { + "markdownDescription": "The access key required for Kinesis Firehose to authenticate with the HTTP endpoint selected as the destination\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `4096` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessKey", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the HTTP endpoint selected as the destination\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^(?!\\s*$).+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Url": { + "markdownDescription": "The URL of the HTTP endpoint selected as the destination\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Pattern*: `https://.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.HttpEndpointDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.BufferingHints", + "markdownDescription": "The buffering options that can be used before data is delivered to the specified destination\\. Kinesis Data Firehose treats these options as hints, and it might choose to use more optimal values\\. The SizeInMBs and IntervalInSeconds parameters are optional\\. However, if you specify a value for one of them, you must also provide a value for the other\\. \n*Required*: No \n*Type*: [BufferingHints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-bufferinghints.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions", + "markdownDescription": "Describes the Amazon CloudWatch logging options for your delivery stream\\. \n*Required*: No \n*Type*: [CloudWatchLoggingOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLoggingOptions" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HttpEndpointConfiguration", + "markdownDescription": "The configuration of the HTTP endpoint selected as the destination\\. \n*Required*: Yes \n*Type*: [HttpEndpointConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointConfiguration" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration", + "markdownDescription": "Describes the data processing configuration\\. \n*Required*: No \n*Type*: [ProcessingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProcessingConfiguration" + }, + "RequestConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HttpEndpointRequestConfiguration", + "markdownDescription": "The configuration of the request sent to the HTTP endpoint specified as the destination\\. \n*Required*: No \n*Type*: [HttpEndpointRequestConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointrequestconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RetryOptions", + "markdownDescription": "Describes the retry behavior in case Kinesis Data Firehose is unable to deliver data to the specified HTTP endpoint destination, or if it doesn't receive a valid acknowledgment of receipt from the specified HTTP endpoint destination\\. \n*Required*: No \n*Type*: [RetryOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-retryoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryOptions" + }, + "RoleARN": { + "markdownDescription": "Kinesis Data Firehose uses this IAM role for all the permissions that the delivery stream needs\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleARN", + "type": "string" + }, + "S3BackupMode": { + "markdownDescription": "Describes the S3 bucket backup options for the data that Kinesis Data Firehose delivers to the HTTP endpoint destination\\. You can back up all documents \\(AllData\\) or only the documents that Kinesis Data Firehose could not deliver to the specified HTTP endpoint destination \\(FailedDataOnly\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AllData | FailedDataOnly` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BackupMode", + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration", + "markdownDescription": "Describes the configuration of a destination in Amazon S3\\. \n*Required*: Yes \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Configuration" + } + }, + "required": [ + "EndpointConfiguration", + "S3Configuration" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.HttpEndpointRequestConfiguration": { + "additionalProperties": false, + "properties": { + "CommonAttributes": { + "items": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HttpEndpointCommonAttribute" + }, + "markdownDescription": "Describes the metadata sent to the HTTP endpoint destination\\. \n*Required*: No \n*Type*: List of [HttpEndpointCommonAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointcommonattribute.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CommonAttributes", + "type": "array" + }, + "ContentEncoding": { + "markdownDescription": "Kinesis Data Firehose uses the content encoding to compress the body of a request before sending the request to the destination\\. For more information, see Content\\-Encoding in MDN Web Docs, the official Mozilla documentation\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GZIP | NONE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentEncoding", + "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.InputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Deserializer": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.Deserializer", + "markdownDescription": "Specifies which deserializer to use\\. You can choose either the Apache Hive JSON SerDe or the OpenX JSON SerDe\\. If both are non\\-null, the server rejects the request\\. \n*Required*: No \n*Type*: [Deserializer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deserializer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Deserializer" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.KMSEncryptionConfig": { + "additionalProperties": false, + "properties": { + "AWSKMSKeyARN": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS KMS encryption key that Amazon S3 uses to encrypt data delivered by the Kinesis Data Firehose stream\\. The key must belong to the same region as the destination S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AWSKMSKeyARN", + "type": "string" + } + }, + "required": [ + "AWSKMSKeyARN" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.KinesisStreamSourceConfiguration": { + "additionalProperties": false, + "properties": { + "KinesisStreamARN": { + "markdownDescription": "The ARN of the source Kinesis data stream\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KinesisStreamARN", + "type": "string" + }, + "RoleARN": { + "markdownDescription": "The ARN of the role that provides access to the source Kinesis data stream\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RoleARN", + "type": "string" + } + }, + "required": [ + "KinesisStreamARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.OpenXJsonSerDe": { + "additionalProperties": false, + "properties": { + "CaseInsensitive": { + "markdownDescription": "When set to `true`, which is the default, Kinesis Data Firehose converts JSON keys to lowercase before deserializing them\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaseInsensitive", + "type": "boolean" + }, + "ColumnToJsonKeyMappings": { + "additionalProperties": true, + "markdownDescription": "Maps column names to JSON keys that aren't identical to the column names\\. This is useful when the JSON contains keys that are Hive keywords\\. For example, `timestamp` is a Hive keyword\\. If you have a JSON key named `timestamp`, set this parameter to `{\"ts\": \"timestamp\"}` to map this key to a column named `ts`\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "ColumnToJsonKeyMappings", + "type": "object" + }, + "ConvertDotsInJsonKeysToUnderscores": { + "markdownDescription": "When set to `true`, specifies that the names of the keys include dots and that you want Kinesis Data Firehose to replace them with underscores\\. This is useful because Apache Hive does not allow dots in column names\\. For example, if the JSON contains a key whose name is \"a\\.b\", you can define the column name to be \"a\\_b\" when using this option\\. \nThe default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConvertDotsInJsonKeysToUnderscores", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.OrcSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "markdownDescription": "The Hadoop Distributed File System \\(HDFS\\) block size\\. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying\\. The default is 256 MiB and the minimum is 64 MiB\\. Kinesis Data Firehose uses this value for padding calculations\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `67108864` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockSizeBytes", + "type": "number" + }, + "BloomFilterColumns": { + "items": { + "type": "string" + }, + "markdownDescription": "The column names for which you want Kinesis Data Firehose to create bloom filters\\. The default is `null`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BloomFilterColumns", + "type": "array" + }, + "BloomFilterFalsePositiveProbability": { + "markdownDescription": "The Bloom filter false positive probability \\(FPP\\)\\. The lower the FPP, the bigger the Bloom filter\\. The default value is 0\\.05, the minimum is 0, and the maximum is 1\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BloomFilterFalsePositiveProbability", + "type": "number" + }, + "Compression": { + "markdownDescription": "The compression code to use over data blocks\\. The default is `SNAPPY`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NONE | SNAPPY | ZLIB` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Compression", + "type": "string" + }, + "DictionaryKeyThreshold": { + "markdownDescription": "Represents the fraction of the total number of non\\-null rows\\. To turn off dictionary encoding, set this fraction to a number that is less than the number of distinct keys in a dictionary\\. To always use dictionary encoding, set this threshold to 1\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DictionaryKeyThreshold", + "type": "number" + }, + "EnablePadding": { + "markdownDescription": "Set this to `true` to indicate that you want stripes to be padded to the HDFS block boundaries\\. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnablePadding", + "type": "boolean" + }, + "FormatVersion": { + "markdownDescription": "The version of the file to write\\. The possible values are `V0_11` and `V0_12`\\. The default is `V0_12`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `V0_11 | V0_12` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FormatVersion", + "type": "string" + }, + "PaddingTolerance": { + "markdownDescription": "A number between 0 and 1 that defines the tolerance for block padding as a decimal fraction of stripe size\\. The default value is 0\\.05, which means 5 percent of stripe size\\. \nFor the default values of 64 MiB ORC stripes and 256 MiB HDFS blocks, the default block padding tolerance of 5 percent reserves a maximum of 3\\.2 MiB for padding within the 256 MiB block\\. In such a case, if the available size within the block is more than 3\\.2 MiB, a new, smaller stripe is inserted to fit within that space\\. This ensures that no stripe crosses block boundaries and causes remote reads within a node\\-local task\\. \nKinesis Data Firehose ignores this parameter when `EnablePadding` is `false`\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PaddingTolerance", + "type": "number" + }, + "RowIndexStride": { + "markdownDescription": "The number of rows between index entries\\. The default is 10,000 and the minimum is 1,000\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RowIndexStride", + "type": "number" + }, + "StripeSizeBytes": { + "markdownDescription": "The number of bytes in each stripe\\. The default is 64 MiB and the minimum is 8 MiB\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `8388608` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StripeSizeBytes", + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.OutputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Serializer": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.Serializer", + "markdownDescription": "Specifies which serializer to use\\. You can choose either the ORC SerDe or the Parquet SerDe\\. If both are non\\-null, the server rejects the request\\. \n*Required*: No \n*Type*: [Serializer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-serializer.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Serializer" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.ParquetSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "markdownDescription": "The Hadoop Distributed File System \\(HDFS\\) block size\\. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying\\. The default is 256 MiB and the minimum is 64 MiB\\. Kinesis Data Firehose uses this value for padding calculations\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `67108864` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockSizeBytes", + "type": "number" + }, + "Compression": { + "markdownDescription": "The compression code to use over data blocks\\. The possible values are `UNCOMPRESSED`, `SNAPPY`, and `GZIP`, with the default being `SNAPPY`\\. Use `SNAPPY` for higher decompression speed\\. Use `GZIP` if the compression ratio is more important than speed\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GZIP | SNAPPY | UNCOMPRESSED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Compression", + "type": "string" + }, + "EnableDictionaryCompression": { + "markdownDescription": "Indicates whether to enable dictionary compression\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableDictionaryCompression", + "type": "boolean" + }, + "MaxPaddingBytes": { + "markdownDescription": "The maximum amount of padding to apply\\. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying\\. The default is 0\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxPaddingBytes", + "type": "number" + }, + "PageSizeBytes": { + "markdownDescription": "The Parquet page size\\. Column chunks are divided into pages\\. A page is conceptually an indivisible unit \\(in terms of compression and encoding\\)\\. The minimum value is 64 KiB and the default is 1 MiB\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `65536` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PageSizeBytes", + "type": "number" + }, + "WriterVersion": { + "markdownDescription": "Indicates the version of row format to output\\. The possible values are `V1` and `V2`\\. The default is `V1`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `V1 | V2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WriterVersion", + "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Indicates whether data processing is enabled \\(true\\) or disabled \\(false\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "Processors": { + "items": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.Processor" + }, + "markdownDescription": "The data processors\\. \n*Required*: No \n*Type*: List of [Processor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Processors", + "type": "array" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.Processor": { + "additionalProperties": false, + "properties": { + "Parameters": { + "items": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessorParameter" + }, + "markdownDescription": "The processor parameters\\. \n*Required*: No \n*Type*: List of [ProcessorParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processorparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "array" + }, + "Type": { + "markdownDescription": "The type of processor\\. Valid values: `Lambda`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AppendDelimiterToRecord | Lambda | MetadataExtraction | RecordDeAggregation` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.ProcessorParameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "markdownDescription": "The name of the parameter\\. Currently the following default values are supported: 3 for `NumberOfRetries`, 60 for the `BufferIntervalInSeconds`, and 3 for the `BufferSizeInMBs`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BufferIntervalInSeconds | BufferSizeInMBs | Delimiter | JsonParsingEngine | LambdaArn | MetadataExtractionQuery | NumberOfRetries | RoleArn | SubRecordType` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterName", + "type": "string" + }, + "ParameterValue": { + "markdownDescription": "The parameter value\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `5120` \n*Pattern*: `^(?!\\s*$).+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterValue", + "type": "string" + } + }, + "required": [ + "ParameterName", + "ParameterValue" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.RedshiftDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions", + "markdownDescription": "The CloudWatch logging options for your delivery stream\\. \n*Required*: No \n*Type*: [CloudWatchLoggingOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLoggingOptions" + }, + "ClusterJDBCURL": { + "markdownDescription": "The connection string that Kinesis Data Firehose uses to connect to the Amazon Redshift cluster\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `jdbc:(redshift|postgresql)://((?!-)[A-Za-z0-9-]{1,63}(?\"\\)\nRepresent Unicode characters with four digits, for example \"\\]u0041\" or \"\\\\u005A\"\\. \nThe following regular expression operators are not supported: \n+ Infinite repeaters: \\*, \\+, or \\{x,\\} with no upper bound\n+ Wild card \\(\\.\\)\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Pattern", + "type": "string" + } + }, + "required": [ + "Pattern" + ], + "type": "object" + }, + "AWS::Lex::Bot.SlotValueSelectionSetting": { + "additionalProperties": false, + "properties": { + "AdvancedRecognitionSetting": { + "$ref": "#/definitions/AWS::Lex::Bot.AdvancedRecognitionSetting", + "markdownDescription": "Specifies settings that enable advanced recognition settings for slot values\\. You can use this to enable using slot values as a custom vocabulary for recognizing user utterances\\. \n*Required*: No \n*Type*: [AdvancedRecognitionSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-advancedrecognitionsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdvancedRecognitionSetting" + }, + "RegexFilter": { + "$ref": "#/definitions/AWS::Lex::Bot.SlotValueRegexFilter", + "markdownDescription": "A regular expression used to validate the value of a slot\\. \n*Required*: No \n*Type*: [SlotValueRegexFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-slotvalueregexfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegexFilter" + }, + "ResolutionStrategy": { + "markdownDescription": "Determines the slot resolution strategy that Amazon Lex uses to return slot type values\\. The field can be set to one of the following values: \n+ OriginalValue \\- Returns the value entered by the user, if the user value is similar to a slot value\\.\n+ TopResolution \\- If there is a resolution list for the slot, return the first value in the resolution list as the slot type value\\. If there is no resolution list, null is returned\\.\nIf you don't specify the valueSelectionStrategy, the default is OriginalValue\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResolutionStrategy", + "type": "string" + } + }, + "required": [ + "ResolutionStrategy" + ], + "type": "object" + }, + "AWS::Lex::Bot.StillWaitingResponseSpecification": { + "additionalProperties": false, + "properties": { + "AllowInterrupt": { + "markdownDescription": "Indicates that the user can interrupt the response by speaking while the message is being played\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowInterrupt", + "type": "boolean" + }, + "FrequencyInSeconds": { + "markdownDescription": "How often a message should be sent to the user\\. Minimum of 1 second, maximum of 5 minutes\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrequencyInSeconds", + "type": "number" + }, + "MessageGroupsList": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.MessageGroup" + }, + "markdownDescription": "A collection of responses that Amazon Lex can send to the user\\. Amazon Lex chooses the actual response to send at runtime\\. \n*Required*: Yes \n*Type*: List of [MessageGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-messagegroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageGroupsList", + "type": "array" + }, + "TimeoutInSeconds": { + "markdownDescription": "If Amazon Lex waits longer than this length of time for a response, it will stop sending messages\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutInSeconds", + "type": "number" + } + }, + "required": [ + "FrequencyInSeconds", + "MessageGroupsList", + "TimeoutInSeconds" + ], + "type": "object" + }, + "AWS::Lex::Bot.TestBotAliasSettings": { + "additionalProperties": false, + "properties": { + "BotAliasLocaleSettings": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.BotAliasLocaleSettingsItem" + }, + "markdownDescription": "Specifies settings that are unique to a locale\\. For example, you can use a different Lambda function depending on the bot's locale\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-botaliaslocalesettings.html) of [BotAliasLocaleSettingsItem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-botaliaslocalesettingsitem.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BotAliasLocaleSettings", + "type": "array" + }, + "ConversationLogSettings": { + "$ref": "#/definitions/AWS::Lex::Bot.ConversationLogSettings", + "markdownDescription": "Specifies settings for conversation logs that save audio, text, and metadata information for conversations with your users\\. \n*Required*: No \n*Type*: [ConversationLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-conversationlogsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConversationLogSettings" + }, + "Description": { + "markdownDescription": "Specifies a description for the test bot alias\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "SentimentAnalysisSettings": { + "$ref": "#/definitions/AWS::Lex::Bot.SentimentAnalysisSettings", + "markdownDescription": "Specifies whether Amazon Lex will use Amazon Comprehend to detect the sentiment of user utterances\\. \n*Required*: No \n*Type*: [SentimentAnalysisSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-sentimentanalysissettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SentimentAnalysisSettings" + } + }, + "type": "object" + }, + "AWS::Lex::Bot.TextInputSpecification": { + "additionalProperties": false, + "properties": { + "StartTimeoutMs": { + "markdownDescription": "Property description not available\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartTimeoutMs", + "type": "number" + } + }, + "required": [ + "StartTimeoutMs" + ], + "type": "object" + }, + "AWS::Lex::Bot.TextLogDestination": { + "additionalProperties": false, + "properties": { + "CloudWatch": { + "$ref": "#/definitions/AWS::Lex::Bot.CloudWatchLogGroupLogDestination", + "markdownDescription": "Specifies the Amazon CloudWatch Logs log group where text and metadata logs are delivered\\. \n*Required*: Yes \n*Type*: [CloudWatchLogGroupLogDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-cloudwatchloggrouplogdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatch" + } + }, + "required": [ + "CloudWatch" + ], + "type": "object" + }, + "AWS::Lex::Bot.TextLogSetting": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/AWS::Lex::Bot.TextLogDestination", + "markdownDescription": "Specifies the Amazon CloudWatch Logs destination log group for conversation text logs\\. \n*Required*: Yes \n*Type*: [TextLogDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-textlogdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" + }, + "Enabled": { + "markdownDescription": "Specifies whether conversation logs should be stored for an alias\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "required": [ + "Destination", + "Enabled" + ], + "type": "object" + }, + "AWS::Lex::Bot.VoiceSettings": { + "additionalProperties": false, + "properties": { + "Engine": { + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Engine", + "type": "string" + }, + "VoiceId": { + "markdownDescription": "The Amazon Polly voice used for voice interaction with the user\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VoiceId", + "type": "string" + } + }, + "required": [ + "VoiceId" + ], + "type": "object" + }, + "AWS::Lex::Bot.WaitAndContinueSpecification": { + "additionalProperties": false, + "properties": { + "ContinueResponse": { + "$ref": "#/definitions/AWS::Lex::Bot.ResponseSpecification", + "markdownDescription": "The response that Amazon Lex sends to indicate that the bot is ready to continue the conversation\\. \n*Required*: Yes \n*Type*: [ResponseSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-responsespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContinueResponse" + }, + "IsActive": { + "markdownDescription": "Specifies whether the bot will wait for a user to respond\\. When this field is false, wait and continue responses for a slot aren't used and the bot expects an appropriate response within the configured timeout\\. If the IsActive field isn't specified, the default is true\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsActive", + "type": "boolean" + }, + "StillWaitingResponse": { + "$ref": "#/definitions/AWS::Lex::Bot.StillWaitingResponseSpecification", + "markdownDescription": "A response that Amazon Lex sends periodically to the user to indicate that the bot is still waiting for input from the user\\. \n*Required*: No \n*Type*: [StillWaitingResponseSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-stillwaitingresponsespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StillWaitingResponse" + }, + "WaitingResponse": { + "$ref": "#/definitions/AWS::Lex::Bot.ResponseSpecification", + "markdownDescription": "The response that Amazon Lex sends to indicate that the bot is waiting for the conversation to continue\\. \n*Required*: Yes \n*Type*: [ResponseSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-responsespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WaitingResponse" + } + }, + "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" + }, + "markdownDescription": "Maps configuration information to a specific locale\\. You can use this parameter to specify a specific Lambda function to run different functions in different locales\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-botaliaslocalesettings.html) of [BotAliasLocaleSettingsItem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-botaliaslocalesettingsitem.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BotAliasLocaleSettings", + "type": "array" + }, + "BotAliasName": { + "markdownDescription": "The name of the bot alias\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^([0-9a-zA-Z][_-]?)+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BotAliasName", + "type": "string" + }, + "BotAliasTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nYou can only add tags when you specify an alias\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BotAliasTags", + "type": "array" + }, + "BotId": { + "markdownDescription": "The unique identifier of the bot\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BotId", + "type": "string" + }, + "BotVersion": { + "markdownDescription": "The version of the bot that the bot alias references\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `5` \n*Pattern*: `^(DRAFT|[0-9]+)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BotVersion", + "type": "string" + }, + "ConversationLogSettings": { + "$ref": "#/definitions/AWS::Lex::BotAlias.ConversationLogSettings", + "markdownDescription": "Specifies whether Amazon Lex logs text and audio for conversations with the bot\\. When you enable conversation logs, text logs store text input, transcripts of audio input, and associated metadata in Amazon CloudWatch logs\\. Audio logs store input in Amazon S3\\. \n*Required*: No \n*Type*: [ConversationLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-conversationlogsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConversationLogSettings" + }, + "Description": { + "markdownDescription": "The description of the bot alias\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "SentimentAnalysisSettings": { + "$ref": "#/definitions/AWS::Lex::BotAlias.SentimentAnalysisSettings", + "markdownDescription": "Determines whether Amazon Lex will use Amazon Comprehend to detect the sentiment of user utterances\\. \n*Required*: No \n*Type*: [SentimentAnalysisSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-sentimentanalysissettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The S3 bucket location where audio logs are stored\\. \n*Required*: Yes \n*Type*: [S3BucketLogDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-s3bucketlogdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Bucket" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "AWS::Lex::BotAlias.AudioLogSetting": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/AWS::Lex::BotAlias.AudioLogDestination", + "markdownDescription": "The location of audio log files collected when conversation logging is enabled for a bot\\. \n*Required*: Yes \n*Type*: [AudioLogDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-audiologdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" + }, + "Enabled": { + "markdownDescription": "Determines whether audio logging in enabled for the bot\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "required": [ + "Destination", + "Enabled" + ], + "type": "object" + }, + "AWS::Lex::BotAlias.BotAliasLocaleSettings": { + "additionalProperties": false, + "properties": { + "CodeHookSpecification": { + "$ref": "#/definitions/AWS::Lex::BotAlias.CodeHookSpecification", + "markdownDescription": "Specifies the Lambda function that should be used in the locale\\. \n*Required*: No \n*Type*: [CodeHookSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-codehookspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodeHookSpecification" + }, + "Enabled": { + "markdownDescription": "Determines whether the locale is enabled for the bot\\. If the value is false, the locale isn't available for use\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::Lex::BotAlias.BotAliasLocaleSettingsItem": { + "additionalProperties": false, + "properties": { + "BotAliasLocaleSetting": { + "$ref": "#/definitions/AWS::Lex::BotAlias.BotAliasLocaleSettings", + "markdownDescription": "Specifies settings that are unique to a locale\\. \n*Required*: Yes \n*Type*: [BotAliasLocaleSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-botaliaslocalesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BotAliasLocaleSetting" + }, + "LocaleId": { + "markdownDescription": "The unique identifier of the locale\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocaleId", + "type": "string" + } + }, + "required": [ + "BotAliasLocaleSetting", + "LocaleId" + ], + "type": "object" + }, + "AWS::Lex::BotAlias.CloudWatchLogGroupLogDestination": { + "additionalProperties": false, + "properties": { + "CloudWatchLogGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the log group where text and metadata logs are delivered\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogGroupArn", + "type": "string" + }, + "LogPrefix": { + "markdownDescription": "The prefix of the log stream name within the log group that you specified\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogPrefix", + "type": "string" + } + }, + "required": [ + "CloudWatchLogGroupArn", + "LogPrefix" + ], + "type": "object" + }, + "AWS::Lex::BotAlias.CodeHookSpecification": { + "additionalProperties": false, + "properties": { + "LambdaCodeHook": { + "$ref": "#/definitions/AWS::Lex::BotAlias.LambdaCodeHook", + "markdownDescription": "Specifies a Lambda function that verifies requests to a bot or fulfills the user's request to a bot\\. \n*Required*: Yes \n*Type*: [LambdaCodeHook](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-lambdacodehook.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaCodeHook" + } + }, + "required": [ + "LambdaCodeHook" + ], + "type": "object" + }, + "AWS::Lex::BotAlias.ConversationLogSettings": { + "additionalProperties": false, + "properties": { + "AudioLogSettings": { + "items": { + "$ref": "#/definitions/AWS::Lex::BotAlias.AudioLogSetting" + }, + "markdownDescription": "The Amazon S3 settings for logging audio to an S3 bucket\\. \n*Required*: No \n*Type*: List of [AudioLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-audiologsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioLogSettings", + "type": "array" + }, + "TextLogSettings": { + "items": { + "$ref": "#/definitions/AWS::Lex::BotAlias.TextLogSetting" + }, + "markdownDescription": "The Amazon CloudWatch Logs settings for logging text and metadata\\. \n*Required*: No \n*Type*: List of [TextLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-textlogsetting.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextLogSettings", + "type": "array" + } + }, + "type": "object" + }, + "AWS::Lex::BotAlias.LambdaCodeHook": { + "additionalProperties": false, + "properties": { + "CodeHookInterfaceVersion": { + "markdownDescription": "The version of the request\\-response that you want Amazon Lex to use to invoke your Lambda function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodeHookInterfaceVersion", + "type": "string" + }, + "LambdaArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Lambda function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaArn", + "type": "string" + } + }, + "required": [ + "CodeHookInterfaceVersion", + "LambdaArn" + ], + "type": "object" + }, + "AWS::Lex::BotAlias.S3BucketLogDestination": { + "additionalProperties": false, + "properties": { + "KmsKeyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS Key Management Service key for encrypting audio log files stored in an S3 bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyArn", + "type": "string" + }, + "LogPrefix": { + "markdownDescription": "The S3 prefix to assign to audio log files\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogPrefix", + "type": "string" + }, + "S3BucketArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an Amazon S3 bucket where audio log files are stored\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketArn", + "type": "string" + } + }, + "required": [ + "LogPrefix", + "S3BucketArn" + ], + "type": "object" + }, + "AWS::Lex::BotAlias.SentimentAnalysisSettings": { + "additionalProperties": false, + "properties": { + "DetectSentiment": { + "markdownDescription": "Property description not available\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DetectSentiment", + "type": "boolean" + } + }, + "required": [ + "DetectSentiment" + ], + "type": "object" + }, + "AWS::Lex::BotAlias.TextLogDestination": { + "additionalProperties": false, + "properties": { + "CloudWatch": { + "$ref": "#/definitions/AWS::Lex::BotAlias.CloudWatchLogGroupLogDestination", + "markdownDescription": "Defines the Amazon CloudWatch Logs log group where text and metadata logs are delivered\\. \n*Required*: Yes \n*Type*: [CloudWatchLogGroupLogDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-cloudwatchloggrouplogdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatch" + } + }, + "required": [ + "CloudWatch" + ], + "type": "object" + }, + "AWS::Lex::BotAlias.TextLogSetting": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/AWS::Lex::BotAlias.TextLogDestination", + "markdownDescription": "Defines the Amazon CloudWatch Logs destination log group for conversation text logs\\. \n*Required*: Yes \n*Type*: [TextLogDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botalias-textlogdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" + }, + "Enabled": { + "markdownDescription": "Determines whether conversation logs should be stored for an alias\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The unique identifier of the bot\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BotId", + "type": "string" + }, + "BotVersionLocaleSpecification": { + "items": { + "$ref": "#/definitions/AWS::Lex::BotVersion.BotVersionLocaleSpecification" + }, + "markdownDescription": "Specifies the locales that Amazon Lex adds to this version\\. You can choose the Draft version or any other previously published version for each locale\\. When you specify a source version, the locale data is copied from the source version to the new version\\. \n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botversion-botversionlocalespecification.html) of [BotVersionLocaleSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botversion-botversionlocalespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BotVersionLocaleSpecification", + "type": "array" + }, + "Description": { + "markdownDescription": "The description of the version\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The version of a bot used for a bot locale\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceBotVersion", + "type": "string" + } + }, + "required": [ + "SourceBotVersion" + ], + "type": "object" + }, + "AWS::Lex::BotVersion.BotVersionLocaleSpecification": { + "additionalProperties": false, + "properties": { + "BotVersionLocaleDetails": { + "$ref": "#/definitions/AWS::Lex::BotVersion.BotVersionLocaleDetails", + "markdownDescription": "The version of a bot used for a bot locale\\. \n*Required*: Yes \n*Type*: [BotVersionLocaleDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-botversion-botversionlocaledetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BotVersionLocaleDetails" + }, + "LocaleId": { + "markdownDescription": "The identifier of the locale to add to the version\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A resource policy to add to the resource\\. The policy is a JSON structure that contains one or more statements that define the policy\\. The policy must follow IAM syntax\\. If the policy isn't valid, Amazon Lex returns a validation exception\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policy", + "type": "object" + }, + "ResourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the bot or bot alias that the resource policy is attached to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "Allowed operations for the grant\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedOperations", + "type": "array" + }, + "GrantName": { + "markdownDescription": "Grant name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GrantName", + "type": "string" + }, + "HomeRegion": { + "markdownDescription": "Home Region of the grant\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HomeRegion", + "type": "string" + }, + "LicenseArn": { + "markdownDescription": "License ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LicenseArn", + "type": "string" + }, + "Principals": { + "items": { + "type": "string" + }, + "markdownDescription": "The grant principals\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Principals", + "type": "array" + }, + "Status": { + "markdownDescription": "Granted license status\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + } + }, + "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": { + "markdownDescription": "License beneficiary\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Beneficiary", + "type": "string" + }, + "ConsumptionConfiguration": { + "$ref": "#/definitions/AWS::LicenseManager::License.ConsumptionConfiguration", + "markdownDescription": "Configuration for consumption of the license\\. \n*Required*: Yes \n*Type*: [ConsumptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-consumptionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConsumptionConfiguration" + }, + "Entitlements": { + "items": { + "$ref": "#/definitions/AWS::LicenseManager::License.Entitlement" + }, + "markdownDescription": "License entitlements\\. \n*Required*: Yes \n*Type*: List of [Entitlement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-entitlement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Entitlements", + "type": "array" + }, + "HomeRegion": { + "markdownDescription": "Home Region of the license\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HomeRegion", + "type": "string" + }, + "Issuer": { + "$ref": "#/definitions/AWS::LicenseManager::License.IssuerData", + "markdownDescription": "License issuer\\. \n*Required*: Yes \n*Type*: [IssuerData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-issuerdata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Issuer" + }, + "LicenseMetadata": { + "items": { + "$ref": "#/definitions/AWS::LicenseManager::License.Metadata" + }, + "markdownDescription": "License metadata\\. \n*Required*: No \n*Type*: List of [Metadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-metadata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LicenseMetadata", + "type": "array" + }, + "LicenseName": { + "markdownDescription": "License name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LicenseName", + "type": "string" + }, + "ProductName": { + "markdownDescription": "Product name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProductName", + "type": "string" + }, + "ProductSKU": { + "markdownDescription": "Product SKU\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProductSKU", + "type": "string" + }, + "Status": { + "markdownDescription": "License status\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + }, + "Validity": { + "$ref": "#/definitions/AWS::LicenseManager::License.ValidityDateFormat", + "markdownDescription": "Date and time range during which the license is valid, in ISO8601\\-UTC format\\. \n*Required*: Yes \n*Type*: [ValidityDateFormat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-validitydateformat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Validity" + } + }, + "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": { + "markdownDescription": "Indicates whether early check\\-ins are allowed\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowEarlyCheckIn", + "type": "boolean" + }, + "MaxTimeToLiveInMinutes": { + "markdownDescription": "Maximum time for the borrow configuration, in minutes\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxTimeToLiveInMinutes", + "type": "number" + } + }, + "required": [ + "AllowEarlyCheckIn", + "MaxTimeToLiveInMinutes" + ], + "type": "object" + }, + "AWS::LicenseManager::License.ConsumptionConfiguration": { + "additionalProperties": false, + "properties": { + "BorrowConfiguration": { + "$ref": "#/definitions/AWS::LicenseManager::License.BorrowConfiguration", + "markdownDescription": "Details about a borrow configuration\\. \n*Required*: No \n*Type*: [BorrowConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-borrowconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BorrowConfiguration" + }, + "ProvisionalConfiguration": { + "$ref": "#/definitions/AWS::LicenseManager::License.ProvisionalConfiguration", + "markdownDescription": "Details about a provisional configuration\\. \n*Required*: No \n*Type*: [ProvisionalConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-provisionalconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisionalConfiguration" + }, + "RenewType": { + "markdownDescription": "Renewal frequency\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RenewType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::LicenseManager::License.Entitlement": { + "additionalProperties": false, + "properties": { + "AllowCheckIn": { + "markdownDescription": "Indicates whether check\\-ins are allowed\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowCheckIn", + "type": "boolean" + }, + "MaxCount": { + "markdownDescription": "Maximum entitlement count\\. Use if the unit is not None\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCount", + "type": "number" + }, + "Name": { + "markdownDescription": "Entitlement name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Overage": { + "markdownDescription": "Indicates whether overages are allowed\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Overage", + "type": "boolean" + }, + "Unit": { + "markdownDescription": "Entitlement unit\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unit", + "type": "string" + }, + "Value": { + "markdownDescription": "Entitlement resource\\. Use only if the unit is None\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Name", + "Unit" + ], + "type": "object" + }, + "AWS::LicenseManager::License.IssuerData": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "Issuer name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "SignKey": { + "markdownDescription": "Asymmetric KMS key from AWS Key Management Service\\. The KMS key must have a key usage of sign and verify, and support the RSASSA\\-PSS SHA\\-256 signing algorithm\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SignKey", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::LicenseManager::License.Metadata": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The key name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "The value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::LicenseManager::License.ProvisionalConfiguration": { + "additionalProperties": false, + "properties": { + "MaxTimeToLiveInMinutes": { + "markdownDescription": "Maximum time for the provisional configuration, in minutes\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxTimeToLiveInMinutes", + "type": "number" + } + }, + "required": [ + "MaxTimeToLiveInMinutes" + ], + "type": "object" + }, + "AWS::LicenseManager::License.ValidityDateFormat": { + "additionalProperties": false, + "properties": { + "Begin": { + "markdownDescription": "Start of the time range\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Begin", + "type": "string" + }, + "End": { + "markdownDescription": "End of the time range\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the alarm\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AlarmName", + "type": "string" + }, + "ComparisonOperator": { + "markdownDescription": "The arithmetic operation to use when comparing the specified statistic and threshold\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GreaterThanOrEqualToThreshold | GreaterThanThreshold | LessThanOrEqualToThreshold | LessThanThreshold` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComparisonOperator", + "type": "string" + }, + "ContactProtocols": { + "items": { + "type": "string" + }, + "markdownDescription": "The contact protocols for the alarm, such as `Email`, `SMS` \\(text messaging\\), or both\\. \n*Allowed Values*: `Email` \\| `SMS` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContactProtocols", + "type": "array" + }, + "DatapointsToAlarm": { + "markdownDescription": "The number of data points within the evaluation periods that must be breaching to cause the alarm to go to the `ALARM` state\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatapointsToAlarm", + "type": "number" + }, + "EvaluationPeriods": { + "markdownDescription": "The number of periods over which data is compared to the specified threshold\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EvaluationPeriods", + "type": "number" + }, + "MetricName": { + "markdownDescription": "The name of the metric associated with the alarm\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BurstCapacityPercentage | BurstCapacityTime | ClientTLSNegotiationErrorCount | CPUUtilization | DatabaseConnections | DiskQueueDepth | FreeStorageSpace | HealthyHostCount | HTTPCode_Instance_2XX_Count | HTTPCode_Instance_3XX_Count | HTTPCode_Instance_4XX_Count | HTTPCode_Instance_5XX_Count | HTTPCode_LB_4XX_Count | HTTPCode_LB_5XX_Count | InstanceResponseTime | NetworkIn | NetworkOut | NetworkReceiveThroughput | NetworkTransmitThroughput | RejectedConnectionCount | RequestCount | StatusCheckFailed | StatusCheckFailed_Instance | StatusCheckFailed_System | UnhealthyHostCount` \n*Update requires*: Updates are not supported\\.", + "title": "MetricName", + "type": "string" + }, + "MonitoredResourceName": { + "markdownDescription": "The name of the Lightsail resource that the alarm monitors\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "MonitoredResourceName", + "type": "string" + }, + "NotificationEnabled": { + "markdownDescription": "A Boolean value indicating whether the alarm is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationEnabled", + "type": "boolean" + }, + "NotificationTriggers": { + "items": { + "type": "string" + }, + "markdownDescription": "The alarm states that trigger a notification\\. \nTo specify the `OK` and `INSUFFICIENT_DATA` values, you must also specify `ContactProtocols` values\\. Otherwise, the `OK` and `INSUFFICIENT_DATA` values will not take effect and the stack will drift\\.\n*Allowed Values*: `OK` \\| `ALARM` \\| `INSUFFICIENT_DATA` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationTriggers", + "type": "array" + }, + "Threshold": { + "markdownDescription": "The value against which the specified statistic is compared\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Threshold", + "type": "number" + }, + "TreatMissingData": { + "markdownDescription": "Specifies how the alarm handles missing data points\\. \nAn alarm can treat missing data in the following ways: \n+ `breaching` \\- Assumes the missing data is not within the threshold\\. Missing data counts towards the number of times that the metric is not within the threshold\\.\n+ `notBreaching` \\- Assumes the missing data is within the threshold\\. Missing data does not count towards the number of times that the metric is not within the threshold\\.\n+ `ignore` \\- Ignores the missing data\\. Maintains the current alarm state\\.\n+ `missing` \\- Missing data is treated as missing\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `breaching | ignore | missing | notBreaching` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "An object that describes the access rules for the bucket\\. \n*Required*: No \n*Type*: [AccessRules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-bucket-accessrules.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessRules" + }, + "BucketName": { + "markdownDescription": "The name of the bucket\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketName", + "type": "string" + }, + "BundleId": { + "markdownDescription": "The bundle ID for the bucket \\(for example, `small_1_0`\\)\\. \nA bucket bundle specifies the monthly cost, storage space, and data transfer quota for a bucket\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BundleId", + "type": "string" + }, + "ObjectVersioning": { + "markdownDescription": "Indicates whether object versioning is enabled for the bucket\\. \nThe following options can be configured: \n+ `Enabled` \\- Object versioning is enabled\\.\n+ `Suspended` \\- Object versioning was previously enabled but is currently suspended\\. Existing object versions are retained\\.\n+ `NeverEnabled` \\- Object versioning has never been enabled\\.\n*Required*: No \n*Type*: Boolean \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectVersioning", + "type": "boolean" + }, + "ReadOnlyAccessAccounts": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of AWS account IDs that have read\\-only access to the bucket\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadOnlyAccessAccounts", + "type": "array" + }, + "ResourcesReceivingAccess": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of Lightsail instances that have access to the bucket\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourcesReceivingAccess", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "A Boolean value indicating whether the access control list \\(ACL\\) permissions that are applied to individual objects override the `GetObject` option that is currently specified\\. \nWhen this is true, you can use the [PutObjectAcl](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html) Amazon S3 API operation to set individual objects to public \\(read\\-only\\) or private, using either the `public-read` ACL or the `private` ACL\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowPublicOverrides", + "type": "boolean" + }, + "GetObject": { + "markdownDescription": "Specifies the anonymous access to all objects in a bucket\\. \nThe following options can be specified: \n+ `public` \\- Sets all objects in the bucket to public \\(read\\-only\\), making them readable by everyone on the internet\\.", + "title": "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": { + "markdownDescription": "The name of the certificate\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateName", + "type": "string" + }, + "DomainName": { + "markdownDescription": "The domain name of the certificate\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "DomainName", + "type": "string" + }, + "SubjectAlternativeNames": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of strings that specify the alternate domains \\(such as `example.org`\\) and subdomains \\(such as `blog.example.com`\\) of the certificate\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: Updates are not supported\\.", + "title": "SubjectAlternativeNames", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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", + "markdownDescription": "An object that describes the current container deployment of the container service\\. \n*Required*: No \n*Type*: [ContainerServiceDeployment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-containerservicedeployment.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "ContainerServiceDeployment" + }, + "IsDisabled": { + "markdownDescription": "A Boolean value indicating whether the container service is disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsDisabled", + "type": "boolean" + }, + "Power": { + "markdownDescription": "The power specification of the container service\\. \nThe power specifies the amount of RAM, the number of vCPUs, and the base price of the container service\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `large | medium | micro | nano | small | xlarge` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Power", + "type": "string" + }, + "PublicDomainNames": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Container.PublicDomainName" + }, + "markdownDescription": "The public domain name of the container service, such as `example.com` and `www.example.com`\\. \nYou can specify up to four public domain names for a container service\\. The domain names that you specify are used when you create a deployment with a container that is configured as the public endpoint of your container service\\. \nIf you don't specify public domain names, then you can use the default domain of the container service\\. \nYou must create and validate an SSL/TLS certificate before you can use public domain names with your container service\\. Use the [AWS::Lightsail::Certificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-certificate.html) resource to create a certificate for the public domain names that you want to use with your container service\\.\n*Required*: No \n*Type*: List of [PublicDomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-publicdomainname.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublicDomainNames", + "type": "array" + }, + "Scale": { + "markdownDescription": "The scale specification of the container service\\. \nThe scale specifies the allocated compute nodes of the container service\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scale", + "type": "number" + }, + "ServiceName": { + "markdownDescription": "The name of the container service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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" + }, + "markdownDescription": "The launch command for the container\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Command", + "type": "array" + }, + "ContainerName": { + "markdownDescription": "The name of the container\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerName", + "type": "string" + }, + "Environment": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Container.EnvironmentVariable" + }, + "markdownDescription": "The environment variables of the container\\. \n*Required*: No \n*Type*: List of [EnvironmentVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-environmentvariable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Environment", + "type": "array" + }, + "Image": { + "markdownDescription": "The name of the image used for the container\\. \nContainer images that are sourced from \\(registered and stored on\\) your container service start with a colon \\(`:`\\)\\. For example, if your container service name is `container-service-1`, the container image label is `mystaticsite`, and you want to use the third version \\(`3`\\) of the registered container image, then you should specify `:container-service-1.mystaticsite.3`\\. To use the latest version of a container image, specify `latest` instead of a version number \\(for example, `:container-service-1.mystaticsite.latest`\\)\\. Your container service will automatically use the highest numbered version of the registered container image\\. \nContainer images that are sourced from a public registry like Docker Hub don\u2019t start with a colon\\. For example, `nginx:latest` or `nginx`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Image", + "type": "string" + }, + "Ports": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Container.PortInfo" + }, + "markdownDescription": "An object that describes the open firewall ports and protocols of the container\\. \n*Required*: No \n*Type*: List of [PortInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-portinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ports", + "type": "array" + } + }, + "type": "object" + }, + "AWS::Lightsail::Container.ContainerServiceDeployment": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Container.Container" + }, + "markdownDescription": "An object that describes the configuration for the containers of the deployment\\. \n*Required*: No \n*Type*: List of [Container](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-container.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Containers", + "type": "array" + }, + "PublicEndpoint": { + "$ref": "#/definitions/AWS::Lightsail::Container.PublicEndpoint", + "markdownDescription": "An object that describes the endpoint of the deployment\\. \n*Required*: No \n*Type*: [PublicEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-publicendpoint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublicEndpoint" + } + }, + "type": "object" + }, + "AWS::Lightsail::Container.EnvironmentVariable": { + "additionalProperties": false, + "properties": { + "Value": { + "markdownDescription": "The environment variable value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + }, + "Variable": { + "markdownDescription": "The environment variable key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Variable", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Container.HealthCheckConfig": { + "additionalProperties": false, + "properties": { + "HealthyThreshold": { + "markdownDescription": "The number of consecutive health check successes required before moving the container to the `Healthy` state\\. The default value is `2`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthyThreshold", + "type": "number" + }, + "IntervalSeconds": { + "markdownDescription": "The approximate interval, in seconds, between health checks of an individual container\\. You can specify between `5` and `300` seconds\\. The default value is `5`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntervalSeconds", + "type": "number" + }, + "Path": { + "markdownDescription": "The path on the container on which to perform the health check\\. The default value is `/`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Path", + "type": "string" + }, + "SuccessCodes": { + "markdownDescription": "The HTTP codes to use when checking for a successful response from a container\\. You can specify values between `200` and `499`\\. You can specify multiple values \\(for example, `200,202`\\) or a range of values \\(for example, `200-299`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuccessCodes", + "type": "string" + }, + "TimeoutSeconds": { + "markdownDescription": "The amount of time, in seconds, during which no response means a failed health check\\. You can specify between `2` and `60` seconds\\. The default value is `2`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutSeconds", + "type": "number" + }, + "UnhealthyThreshold": { + "markdownDescription": "The number of consecutive health check failures required before moving the container to the `Unhealthy` state\\. The default value is `2`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UnhealthyThreshold", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Lightsail::Container.PortInfo": { + "additionalProperties": false, + "properties": { + "Port": { + "markdownDescription": "The open firewall ports of the container\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "string" + }, + "Protocol": { + "markdownDescription": "The protocol name for the open ports\\. \n*Allowed values*: `HTTP` \\| `HTTPS` \\| `TCP` \\| `UDP` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Container.PublicDomainName": { + "additionalProperties": false, + "properties": { + "CertificateName": { + "markdownDescription": "The name of the certificate for the public domains\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateName", + "type": "string" + }, + "DomainNames": { + "items": { + "type": "string" + }, + "markdownDescription": "The public domain names to use with the container service\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainNames", + "type": "array" + } + }, + "type": "object" + }, + "AWS::Lightsail::Container.PublicEndpoint": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "markdownDescription": "The name of the container entry of the deployment that the endpoint configuration applies to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerName", + "type": "string" + }, + "ContainerPort": { + "markdownDescription": "The port of the specified container to which traffic is forwarded to\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerPort", + "type": "number" + }, + "HealthCheckConfig": { + "$ref": "#/definitions/AWS::Lightsail::Container.HealthCheckConfig", + "markdownDescription": "An object that describes the health check configuration of the container\\. \n*Required*: No \n*Type*: [HealthCheckConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-healthcheckconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Availability Zone for the database\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "AvailabilityZone", + "type": "string" + }, + "BackupRetention": { + "markdownDescription": "A Boolean value indicating whether automated backup retention is enabled for the database\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "BackupRetention", + "type": "boolean" + }, + "CaCertificateIdentifier": { + "markdownDescription": "The certificate associated with the database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaCertificateIdentifier", + "type": "string" + }, + "MasterDatabaseName": { + "markdownDescription": "The meaning of this parameter differs according to the database engine you use\\. \n **MySQL** \nThe name of the database to create when the Lightsail database resource is created\\. If this parameter isn't specified, no database is created in the database resource\\. \nConstraints: \n+ Must contain 1\\-64 letters or numbers\\.\n+ Must begin with a letter\\. Subsequent characters can be letters, underscores, or numbers \\(0\\-9\\)\\.\n+ Can't be a word reserved by the specified database engine\\.", + "title": "MasterDatabaseName", + "type": "string" + }, + "MasterUserPassword": { + "markdownDescription": "The password for the primary user of the database\\. The password can include any printable ASCII character except the following: /, \", or @\\. It cannot contain spaces\\. \nThe `MasterUserPassword` and `RotateMasterUserPassword` parameters cannot be used together in the same template\\.\n **MySQL** \nConstraints: Must contain 8\\-41 characters\\. \n **PostgreSQL** \nConstraints: Must contain 8\\-128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MasterUserPassword", + "type": "string" + }, + "MasterUsername": { + "markdownDescription": "The name for the primary user\\. \n **MySQL** \nConstraints: \n+ Required for MySQL\\.\n+ Must be 1\\-16 letters or numbers\\. Can contain underscores\\.\n+ First character must be a letter\\.\n+ Can't be a reserved word for the chosen database engine\\.", + "title": "MasterUsername", + "type": "string" + }, + "PreferredBackupWindow": { + "markdownDescription": "The daily time range during which automated backups are created for the database \\(for example, `16:00-16:30`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredBackupWindow", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "markdownDescription": "The weekly time range during which system maintenance can occur for the database, formatted as follows: `ddd:hh24:mi-ddd:hh24:mi`\\. For example, `Tue:17:00-Tue:17:30`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", + "type": "string" + }, + "PubliclyAccessible": { + "markdownDescription": "A Boolean value indicating whether the database is accessible to anyone on the internet\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PubliclyAccessible", + "type": "boolean" + }, + "RelationalDatabaseBlueprintId": { + "markdownDescription": "The blueprint ID for the database \\(for example, `mysql_8_0`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "RelationalDatabaseBlueprintId", + "type": "string" + }, + "RelationalDatabaseBundleId": { + "markdownDescription": "The bundle ID for the database \\(for example, `medium_1_0`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "RelationalDatabaseBundleId", + "type": "string" + }, + "RelationalDatabaseName": { + "markdownDescription": "The name of the instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RelationalDatabaseName", + "type": "string" + }, + "RelationalDatabaseParameters": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Database.RelationalDatabaseParameter" + }, + "markdownDescription": "An array of parameters for the database\\. \n*Required*: No \n*Type*: List of [RelationalDatabaseParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-database-relationaldatabaseparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RelationalDatabaseParameters", + "type": "array" + }, + "RotateMasterUserPassword": { + "markdownDescription": "A Boolean value indicating whether to change the primary user password to a new, strong password generated by Lightsail\\. \nThe `RotateMasterUserPassword` and `MasterUserPassword` parameters cannot be used together in the same template\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RotateMasterUserPassword", + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The valid range of values for the parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedValues", + "type": "string" + }, + "ApplyMethod": { + "markdownDescription": "Indicates when parameter updates are applied\\. \nCan be `immediate` or `pending-reboot`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplyMethod", + "type": "string" + }, + "ApplyType": { + "markdownDescription": "Specifies the engine\\-specific parameter type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplyType", + "type": "string" + }, + "DataType": { + "markdownDescription": "The valid data type of the parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataType", + "type": "string" + }, + "Description": { + "markdownDescription": "A description of the parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "IsModifiable": { + "markdownDescription": "A Boolean value indicating whether the parameter can be modified\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsModifiable", + "type": "boolean" + }, + "ParameterName": { + "markdownDescription": "The name of the parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterName", + "type": "string" + }, + "ParameterValue": { + "markdownDescription": "The value for the parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "An array of add\\-ons for the disk\\. \nIf the disk has an add\\-on enabled when performing a delete disk request, the add\\-on is automatically disabled before the disk is deleted\\.\n*Required*: No \n*Type*: List of [AddOn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-disk-addon.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddOns", + "type": "array" + }, + "AvailabilityZone": { + "markdownDescription": "The AWS Region and Availability Zone location for the disk \\(for example, `us-east-1a`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "AvailabilityZone", + "type": "string" + }, + "DiskName": { + "markdownDescription": "The name of the disk\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `\\w[\\w\\-]*\\w` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DiskName", + "type": "string" + }, + "SizeInGb": { + "markdownDescription": "The size of the disk in GB\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: Updates are not supported\\.", + "title": "SizeInGb", + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The add\\-on type \\(for example, `AutoSnapshot`\\)\\. \n`AutoSnapshot` is the only add\\-on that can be enabled for a disk\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddOnType", + "type": "string" + }, + "AutoSnapshotAddOnRequest": { + "$ref": "#/definitions/AWS::Lightsail::Disk.AutoSnapshotAddOn", + "markdownDescription": "The parameters for the automatic snapshot add\\-on, such as the daily time when an automatic snapshot will be created\\. \n*Required*: No \n*Type*: [AutoSnapshotAddOn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-disk-autosnapshotaddon.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoSnapshotAddOnRequest" + }, + "Status": { + "markdownDescription": "The status of the add\\-on\\. \nValid Values: `Enabled` \\| `Disabled` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + } + }, + "required": [ + "AddOnType" + ], + "type": "object" + }, + "AWS::Lightsail::Disk.AutoSnapshotAddOn": { + "additionalProperties": false, + "properties": { + "SnapshotTimeOfDay": { + "markdownDescription": "The daily time when an automatic snapshot will be created\\. \nConstraints: \n+ Must be in `HH:00` format, and in an hourly increment\\.\n+ Specified in Coordinated Universal Time \\(UTC\\)\\.\n+ The snapshot will be automatically created between the time specified and up to 45 minutes after\\.\n*Required*: No \n*Type*: String \n*Pattern*: `^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ID of the bundle applied to the distribution\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BundleId", + "type": "string" + }, + "CacheBehaviorSettings": { + "$ref": "#/definitions/AWS::Lightsail::Distribution.CacheSettings", + "markdownDescription": "An object that describes the cache behavior settings of the distribution\\. \n*Required*: No \n*Type*: [CacheSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-cachesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheBehaviorSettings" + }, + "CacheBehaviors": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Distribution.CacheBehaviorPerPath" + }, + "markdownDescription": "An array of objects that describe the per\\-path cache behavior of the distribution\\. \n*Required*: No \n*Type*: List of [CacheBehaviorPerPath](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-cachebehaviorperpath.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheBehaviors", + "type": "array" + }, + "CertificateName": { + "markdownDescription": "The name of the SSL/TLS certificate attached to the distribution\\. \n*Required*: No \n*Type*: String \n*Pattern*: `\\w[\\w\\-]*\\w` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateName", + "type": "string" + }, + "DefaultCacheBehavior": { + "$ref": "#/definitions/AWS::Lightsail::Distribution.CacheBehavior", + "markdownDescription": "An object that describes the default cache behavior of the distribution\\. \n*Required*: Yes \n*Type*: [CacheBehavior](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-cachebehavior.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultCacheBehavior" + }, + "DistributionName": { + "markdownDescription": "The name of the distribution \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DistributionName", + "type": "string" + }, + "IpAddressType": { + "markdownDescription": "The IP address type of the distribution\\. \nThe possible values are `ipv4` for IPv4 only, and `dualstack` for IPv4 and IPv6\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dualstack | ipv4` \n*Update requires*: Updates are not supported\\.", + "title": "IpAddressType", + "type": "string" + }, + "IsEnabled": { + "markdownDescription": "A Boolean value indicating whether the distribution is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsEnabled", + "type": "boolean" + }, + "Origin": { + "$ref": "#/definitions/AWS::Lightsail::Distribution.InputOrigin", + "markdownDescription": "An object that describes the origin resource of the distribution, such as a Lightsail instance, bucket, or load balancer\\. \nThe distribution pulls, caches, and serves content from the origin\\. \n*Required*: Yes \n*Type*: [InputOrigin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-inputorigin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Origin" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The cache behavior of the distribution\\. \nThe following cache behaviors can be specified: \n+ ** `cache` ** \\- This option is best for static sites\\. When specified, your distribution caches and serves your entire website as static content\\. This behavior is ideal for websites with static content that doesn't change depending on who views it, or for websites that don't use cookies, headers, or query strings to personalize content\\.\n+ ** `dont-cache` ** \\- This option is best for sites that serve a mix of static and dynamic content\\. When specified, your distribution caches and serves only the content that is specified in the distribution\u2019s `CacheBehaviorPerPath` parameter\\. This behavior is ideal for websites or web applications that use cookies, headers, and query strings to personalize content for individual users\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `cache | dont-cache` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Behavior", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Distribution.CacheBehaviorPerPath": { + "additionalProperties": false, + "properties": { + "Behavior": { + "markdownDescription": "The cache behavior for the specified path\\. \nYou can specify one of the following per\\-path cache behaviors: \n+ ** `cache` ** \\- This behavior caches the specified path\\. \n+ ** `dont-cache` ** \\- This behavior doesn't cache the specified path\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `cache | dont-cache` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Behavior", + "type": "string" + }, + "Path": { + "markdownDescription": "The path to a directory or file to cache, or not cache\\. Use an asterisk symbol to specify wildcard directories \\(`path/to/assets/*`\\), and file types \\(`*.html`, `*jpg`, `*js`\\)\\. Directories and file paths are case\\-sensitive\\. \nExamples: \n+ Specify the following to cache all files in the document root of an Apache web server running on a instance\\.", + "title": "Path", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Distribution.CacheSettings": { + "additionalProperties": false, + "properties": { + "AllowedHTTPMethods": { + "markdownDescription": "The HTTP methods that are processed and forwarded to the distribution's origin\\. \nYou can specify the following options: \n+ `GET,HEAD` \\- The distribution forwards the `GET` and `HEAD` methods\\.\n+ `GET,HEAD,OPTIONS` \\- The distribution forwards the `GET`, `HEAD`, and `OPTIONS` methods\\.\n+ `GET,HEAD,OPTIONS,PUT,PATCH,POST,DELETE` \\- The distribution forwards the `GET`, `HEAD`, `OPTIONS`, `PUT`, `PATCH`, `POST`, and `DELETE` methods\\.\nIf you specify `GET,HEAD,OPTIONS,PUT,PATCH,POST,DELETE`, you might need to restrict access to your distribution's origin so users can't perform operations that you don't want them to\\. For example, you might not want users to have permission to delete objects from your origin\\. \n*Required*: No \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedHTTPMethods", + "type": "string" + }, + "CachedHTTPMethods": { + "markdownDescription": "The HTTP method responses that are cached by your distribution\\. \nYou can specify the following options: \n+ `GET,HEAD` \\- The distribution caches responses to the `GET` and `HEAD` methods\\.\n+ `GET,HEAD,OPTIONS` \\- The distribution caches responses to the `GET`, `HEAD`, and `OPTIONS` methods\\.\n*Required*: No \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CachedHTTPMethods", + "type": "string" + }, + "DefaultTTL": { + "markdownDescription": "The default amount of time that objects stay in the distribution's cache before the distribution forwards another request to the origin to determine whether the content has been updated\\. \nThe value specified applies only when the origin does not add HTTP headers such as `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to objects\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultTTL", + "type": "number" + }, + "ForwardedCookies": { + "$ref": "#/definitions/AWS::Lightsail::Distribution.CookieObject", + "markdownDescription": "An object that describes the cookies that are forwarded to the origin\\. Your content is cached based on the cookies that are forwarded\\. \n*Required*: No \n*Type*: [CookieObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-cookieobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForwardedCookies" + }, + "ForwardedHeaders": { + "$ref": "#/definitions/AWS::Lightsail::Distribution.HeaderObject", + "markdownDescription": "An object that describes the headers that are forwarded to the origin\\. Your content is cached based on the headers that are forwarded\\. \n*Required*: No \n*Type*: [HeaderObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-headerobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForwardedHeaders" + }, + "ForwardedQueryStrings": { + "$ref": "#/definitions/AWS::Lightsail::Distribution.QueryStringObject", + "markdownDescription": "An object that describes the query strings that are forwarded to the origin\\. Your content is cached based on the query strings that are forwarded\\. \n*Required*: No \n*Type*: [QueryStringObject](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-querystringobject.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForwardedQueryStrings" + }, + "MaximumTTL": { + "markdownDescription": "The maximum amount of time that objects stay in the distribution's cache before the distribution forwards another request to the origin to determine whether the object has been updated\\. \nThe value specified applies only when the origin adds HTTP headers such as `Cache-Control max-age`, `Cache-Control s-maxage`, and `Expires` to objects\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumTTL", + "type": "number" + }, + "MinimumTTL": { + "markdownDescription": "The minimum amount of time that objects stay in the distribution's cache before the distribution forwards another request to the origin to determine whether the object has been updated\\. \nA value of `0` must be specified for `minimumTTL` if the distribution is configured to forward all headers to the origin\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinimumTTL", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Lightsail::Distribution.CookieObject": { + "additionalProperties": false, + "properties": { + "CookiesAllowList": { + "items": { + "type": "string" + }, + "markdownDescription": "The specific cookies to forward to your distribution's origin\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CookiesAllowList", + "type": "array" + }, + "Option": { + "markdownDescription": "Specifies which cookies to forward to the distribution's origin for a cache behavior\\. \nUse one of the following configurations for your distribution: \n+ ** `all` ** \\- Forwards all cookies to your origin\\.\n+ ** `none` ** \\- Doesn\u2019t forward cookies to your origin\\.\n+ ** `allow-list` ** \\- Forwards only the cookies that you specify using the `CookiesAllowList` parameter\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `all | allow-list | none` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Option", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Distribution.HeaderObject": { + "additionalProperties": false, + "properties": { + "HeadersAllowList": { + "items": { + "type": "string" + }, + "markdownDescription": "The specific headers to forward to your distribution's origin\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeadersAllowList", + "type": "array" + }, + "Option": { + "markdownDescription": "The headers that you want your distribution to forward to your origin\\. Your distribution caches your content based on these headers\\. \nUse one of the following configurations for your distribution: \n+ ** `all` ** \\- Forwards all headers to your origin\\.\\.\n+ ** `none` ** \\- Forwards only the default headers\\.\n+ ** `allow-list` ** \\- Forwards only the headers that you specify using the `HeadersAllowList` parameter\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `all | allow-list | none` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Option", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Distribution.InputOrigin": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the origin resource\\. \n*Required*: No \n*Type*: String \n*Pattern*: `\\w[\\w\\-]*\\w` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "ProtocolPolicy": { + "markdownDescription": "The protocol that your Amazon Lightsail distribution uses when establishing a connection with your origin to pull content\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `http-only | https-only` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProtocolPolicy", + "type": "string" + }, + "RegionName": { + "markdownDescription": "The AWS Region name of the origin resource\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ap-northeast-1 | ap-northeast-2 | ap-south-1 | ap-southeast-1 | ap-southeast-2 | ca-central-1 | eu-central-1 | eu-north-1 | eu-west-1 | eu-west-2 | eu-west-3 | us-east-1 | us-east-2 | us-west-1 | us-west-2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegionName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Distribution.QueryStringObject": { + "additionalProperties": false, + "properties": { + "Option": { + "markdownDescription": "Indicates whether the distribution forwards and caches based on query strings\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Option", + "type": "boolean" + }, + "QueryStringsAllowList": { + "items": { + "type": "string" + }, + "markdownDescription": "The specific query strings that the distribution forwards to the origin\\. \nYour distribution caches content based on the specified query strings\\. \nIf the `option` parameter is true, then your distribution forwards all query strings, regardless of what you specify using the `QueryStringsAllowList` parameter\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryStringsAllowList", + "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" + }, + "markdownDescription": "An array of add\\-ons for the instance\\. \nIf the instance has an add\\-on enabled when performing a delete instance request, the add\\-on is automatically disabled before the instance is deleted\\.\n*Required*: No \n*Type*: List of [AddOn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-addon.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddOns", + "type": "array" + }, + "AvailabilityZone": { + "markdownDescription": "The Availability Zone for the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "AvailabilityZone", + "type": "string" + }, + "BlueprintId": { + "markdownDescription": "The blueprint ID for the instance \\(for example, `os_amlinux_2016_03`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "BlueprintId", + "type": "string" + }, + "BundleId": { + "markdownDescription": "The bundle ID for the instance \\(for example, `micro_1_0`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "BundleId", + "type": "string" + }, + "Hardware": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Hardware", + "markdownDescription": "The hardware properties for the instance, such as the vCPU count, attached disks, and amount of RAM\\. \nThe instance restarts when performing an attach disk or detach disk request\\. This resets the public IP address of your instance if a static IP isn't attached to it\\.\n*Required*: No \n*Type*: [Hardware](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-hardware.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Hardware" + }, + "InstanceName": { + "markdownDescription": "The name of the instance\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `\\w[\\w\\-]*\\w` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceName", + "type": "string" + }, + "KeyPairName": { + "markdownDescription": "The name of the key pair to use for the instance\\. \nIf no key pair name is specified, the Regional Lightsail default key pair is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyPairName", + "type": "string" + }, + "Location": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Location" + }, + "Networking": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Networking", + "markdownDescription": "The public ports and the monthly amount of data transfer allocated for the instance\\. \n*Required*: No \n*Type*: [Networking](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-networking.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Networking" + }, + "State": { + "$ref": "#/definitions/AWS::Lightsail::Instance.State" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "UserData": { + "markdownDescription": "The optional launch script for the instance\\. \nSpecify a launch script to configure an instance with additional user data\\. For example, you might want to specify `apt-get -y update` as a launch script\\. \nDepending on the blueprint of your instance, the command to get software on your instance varies\\. Amazon Linux and CentOS use `yum`, Debian and Ubuntu use `apt-get`, and FreeBSD uses `pkg`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The add\\-on type \\(for example, `AutoSnapshot`\\)\\. \n`AutoSnapshot` is the only add\\-on that can be enabled for an instance\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddOnType", + "type": "string" + }, + "AutoSnapshotAddOnRequest": { + "$ref": "#/definitions/AWS::Lightsail::Instance.AutoSnapshotAddOn", + "markdownDescription": "The parameters for the automatic snapshot add\\-on, such as the daily time when an automatic snapshot will be created\\. \n*Required*: No \n*Type*: [AutoSnapshotAddOn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-autosnapshotaddon.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoSnapshotAddOnRequest" + }, + "Status": { + "markdownDescription": "The status of the add\\-on\\. \nValid Values: `Enabled` \\| `Disabled` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + } + }, + "required": [ + "AddOnType" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.AutoSnapshotAddOn": { + "additionalProperties": false, + "properties": { + "SnapshotTimeOfDay": { + "markdownDescription": "The daily time when an automatic snapshot will be created\\. \nConstraints: \n+ Must be in `HH:00` format, and in an hourly increment\\.\n+ Specified in Coordinated Universal Time \\(UTC\\)\\.\n+ The snapshot will be automatically created between the time specified and up to 45 minutes after\\.\n*Required*: No \n*Type*: String \n*Pattern*: `^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotTimeOfDay", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.Disk": { + "additionalProperties": false, + "properties": { + "AttachedTo": { + "markdownDescription": "The resources to which the disk is attached\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "AttachedTo", + "type": "string" + }, + "AttachmentState": { + "markdownDescription": "\\(Deprecated\\) The attachment state of the disk\\. \nIn releases prior to November 14, 2017, this parameter returned `attached` for system disks in the API response\\. It is now deprecated, but still included in the response\\. Use `isAttached` instead\\.\n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "AttachmentState", + "type": "string" + }, + "DiskName": { + "markdownDescription": "The unique name of the disk\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DiskName", + "type": "string" + }, + "IOPS": { + "markdownDescription": "The input/output operations per second \\(IOPS\\) of the disk\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: Updates are not supported\\.", + "title": "IOPS", + "type": "number" + }, + "IsSystemDisk": { + "markdownDescription": "A Boolean value indicating whether this disk is a system disk \\(has an operating system loaded on it\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: Updates are not supported\\.", + "title": "IsSystemDisk", + "type": "boolean" + }, + "Path": { + "markdownDescription": "The disk path\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "Path", + "type": "string" + }, + "SizeInGb": { + "markdownDescription": "The size of the disk in GB\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "SizeInGb", + "type": "string" + } + }, + "required": [ + "DiskName", + "Path" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.Hardware": { + "additionalProperties": false, + "properties": { + "CpuCount": { + "markdownDescription": "The number of vCPUs the instance has\\. \nThe `CpuCount` property is read\\-only and should not be specified in a create instance or update instance request\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: Updates are not supported\\.", + "title": "CpuCount", + "type": "number" + }, + "Disks": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Disk" + }, + "markdownDescription": "The disks attached to the instance\\. \nThe instance restarts when performing an attach disk or detach disk request\\. This resets the public IP address of your instance if a static IP isn't attached to it\\. \n*Required*: No \n*Type*: List of [Disk](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-disk.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Disks", + "type": "array" + }, + "RamSizeInGb": { + "markdownDescription": "The amount of RAM in GB on the instance \\(for example, `1.0`\\)\\. \nThe `RamSizeInGb` property is read\\-only and should not be specified in a create instance or update instance request\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: Updates are not supported\\.", + "title": "RamSizeInGb", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.Location": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "markdownDescription": "The Availability Zone for the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZone", + "type": "string" + }, + "RegionName": { + "markdownDescription": "The name of the AWS Region for the instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegionName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.MonthlyTransfer": { + "additionalProperties": false, + "properties": { + "GbPerMonthAllocated": { + "markdownDescription": "The amount of allocated monthly data transfer \\(in GB\\) for an instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GbPerMonthAllocated", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.Networking": { + "additionalProperties": false, + "properties": { + "MonthlyTransfer": { + "$ref": "#/definitions/AWS::Lightsail::Instance.MonthlyTransfer", + "markdownDescription": "The monthly amount of data transfer, in GB, allocated for the instance \n*Required*: No \n*Type*: [MonthlyTransfer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-monthlytransfer.html) \n*Update requires*: Updates are not supported\\.", + "title": "MonthlyTransfer" + }, + "Ports": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Port" + }, + "markdownDescription": "An array of ports to open on the instance\\. \n*Required*: Yes \n*Type*: List of [Port](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ports", + "type": "array" + } + }, + "required": [ + "Ports" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.Port": { + "additionalProperties": false, + "properties": { + "AccessDirection": { + "markdownDescription": "The access direction \\(`inbound` or `outbound`\\)\\. \nLightsail currently supports only `inbound` access direction\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessDirection", + "type": "string" + }, + "AccessFrom": { + "markdownDescription": "The location from which access is allowed\\. For example, `Anywhere (0.0.0.0/0)`, or `Custom` if a specific IP address or range of IP addresses is allowed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessFrom", + "type": "string" + }, + "AccessType": { + "markdownDescription": "The type of access \\(`Public` or `Private`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessType", + "type": "string" + }, + "CidrListAliases": { + "items": { + "type": "string" + }, + "markdownDescription": "An alias that defines access for a preconfigured range of IP addresses\\. \nThe only alias currently supported is `lightsail-connect`, which allows IP addresses of the browser\\-based RDP/SSH client in the Lightsail console to connect to your instance\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CidrListAliases", + "type": "array" + }, + "Cidrs": { + "items": { + "type": "string" + }, + "markdownDescription": "The IPv4 address, or range of IPv4 addresses \\(in CIDR notation\\) that are allowed to connect to an instance through the ports, and the protocol\\. \nThe `ipv6Cidrs` parameter lists the IPv6 addresses that are allowed to connect to an instance\\.\nExamples: \n+ To allow the IP address `192.0.2.44`, specify `192.0.2.44` or `192.0.2.44/32`\\. \n+ To allow the IP addresses `192.0.2.0` to `192.0.2.255`, specify `192.0.2.0/24`\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cidrs", + "type": "array" + }, + "CommonName": { + "markdownDescription": "The common name of the port information\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CommonName", + "type": "string" + }, + "FromPort": { + "markdownDescription": "The first port in a range of open ports on an instance\\. \nAllowed ports: \n+ TCP and UDP \\- `0` to `65535`\n+ ICMP \\- The ICMP type for IPv4 addresses\\. For example, specify `8` as the `fromPort` \\(ICMP type\\), and `-1` as the `toPort` \\(ICMP code\\), to enable ICMP Ping\\.\n+ ICMPv6 \\- The ICMP type for IPv6 addresses\\. For example, specify `128` as the `fromPort` \\(ICMPv6 type\\), and `0` as `toPort` \\(ICMPv6 code\\)\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FromPort", + "type": "number" + }, + "Ipv6Cidrs": { + "items": { + "type": "string" + }, + "markdownDescription": "The IPv6 address, or range of IPv6 addresses \\(in CIDR notation\\) that are allowed to connect to an instance through the ports, and the protocol\\. Only devices with an IPv6 address can connect to an instance through IPv6; otherwise, IPv4 should be used\\. \nThe `cidrs` parameter lists the IPv4 addresses that are allowed to connect to an instance\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ipv6Cidrs", + "type": "array" + }, + "Protocol": { + "markdownDescription": "The IP protocol name\\. \nThe name can be one of the following: \n+ `tcp` \\- Transmission Control Protocol \\(TCP\\) provides reliable, ordered, and error\\-checked delivery of streamed data between applications running on hosts communicating by an IP network\\. If you have an application that doesn't require reliable data stream service, use UDP instead\\.\n+ `all` \\- All transport layer protocol types\\.\n+ `udp` \\- With User Datagram Protocol \\(UDP\\), computer applications can send messages \\(or datagrams\\) to other hosts on an Internet Protocol \\(IP\\) network\\. Prior communications are not required to set up transmission channels or data paths\\. Applications that don't require reliable data stream service can use UDP, which provides a connectionless datagram service that emphasizes reduced latency over reliability\\. If you do require reliable data stream service, use TCP instead\\.\n+ `icmp` \\- Internet Control Message Protocol \\(ICMP\\) is used to send error messages and operational information indicating success or failure when communicating with an instance\\. For example, an error is indicated when an instance could not be reached\\. When you specify `icmp` as the `protocol`, you must specify the ICMP type using the `fromPort` parameter, and ICMP code using the `toPort` parameter\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "string" + }, + "ToPort": { + "markdownDescription": "The last port in a range of open ports on an instance\\. \nAllowed ports: \n+ TCP and UDP \\- `0` to `65535`\n+ ICMP \\- The ICMP code for IPv4 addresses\\. For example, specify `8` as the `fromPort` \\(ICMP type\\), and `-1` as the `toPort` \\(ICMP code\\), to enable ICMP Ping\\.\n+ ICMPv6 \\- The ICMP code for IPv6 addresses\\. For example, specify `128` as the `fromPort` \\(ICMPv6 type\\), and `0` as `toPort` \\(ICMPv6 code\\)\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ToPort", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.State": { + "additionalProperties": false, + "properties": { + "Code": { + "markdownDescription": "The status code of the instance\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Code", + "type": "number" + }, + "Name": { + "markdownDescription": "The state of the instance \\(for example, `running` or `pending`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The Lightsail instances to attach to the load balancer\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttachedInstances", + "type": "array" + }, + "HealthCheckPath": { + "markdownDescription": "The path on the attached instance where the health check will be performed\\. If no path is specified, the load balancer tries to make a request to the default \\(root\\) page \\(`/index.html`\\)\\. \n*Required*: No \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckPath", + "type": "string" + }, + "InstancePort": { + "markdownDescription": "The port that the load balancer uses to direct traffic to your Lightsail instances\\. For HTTP traffic, specify port `80`\\. For HTTPS traffic, specify port `443`\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: Updates are not supported\\.", + "title": "InstancePort", + "type": "number" + }, + "IpAddressType": { + "markdownDescription": "The IP address type of the load balancer\\. \nThe possible values are `ipv4` for IPv4 only, and `dualstack` for both IPv4 and IPv6\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `dualstack | ipv4` \n*Update requires*: Updates are not supported\\.", + "title": "IpAddressType", + "type": "string" + }, + "LoadBalancerName": { + "markdownDescription": "The name of the load balancer\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `\\w[\\w\\-]*\\w` \n*Update requires*: Updates are not supported\\.", + "title": "LoadBalancerName", + "type": "string" + }, + "SessionStickinessEnabled": { + "markdownDescription": "A Boolean value indicating whether session stickiness is enabled\\. \nEnable session stickiness \\(also known as *session affinity*\\) to bind a user's session to a specific instance\\. This ensures that all requests from the user during the session are sent to the same instance\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionStickinessEnabled", + "type": "boolean" + }, + "SessionStickinessLBCookieDurationSeconds": { + "markdownDescription": "The time period, in seconds, after which the load balancer session stickiness cookie should be considered stale\\. If you do not specify this parameter, the default value is 0, which indicates that the sticky session should last for the duration of the browser session\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionStickinessLBCookieDurationSeconds", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \nThe `Value` of `Tags` is optional for Lightsail resources\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "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" + }, + "markdownDescription": "An array of alternative domain names and subdomain names for your SSL/TLS certificate\\. \nIn addition to the primary domain name, you can have up to nine alternative domain names\\. Wildcards \\(such as `*.example.com`\\) are not supported\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: Updates are not supported\\.", + "title": "CertificateAlternativeNames", + "type": "array" + }, + "CertificateDomainName": { + "markdownDescription": "The domain name for the SSL/TLS certificate\\. For example, `example.com` or `www.example.com`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "CertificateDomainName", + "type": "string" + }, + "CertificateName": { + "markdownDescription": "The name of the SSL/TLS certificate\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CertificateName", + "type": "string" + }, + "HttpsRedirectionEnabled": { + "type": "boolean" + }, + "IsAttached": { + "markdownDescription": "A Boolean value indicating whether the SSL/TLS certificate is attached to a Lightsail load balancer\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsAttached", + "type": "boolean" + }, + "LoadBalancerName": { + "markdownDescription": "The name of the load balancer that the SSL/TLS certificate is attached to\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `\\w[\\w\\-]*\\w` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The instance that the static IP is attached to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttachedTo", + "type": "string" + }, + "StaticIpName": { + "markdownDescription": "The name of the static IP\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name for the geofence collection\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[-._\\w]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CollectionName", + "type": "string" + }, + "Description": { + "markdownDescription": "An optional description for the geofence collection\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "KmsKeyId": { + "markdownDescription": "A key identifier for an [AWS KMS customer managed key](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)\\. Enter a key ID, key ARN, alias name, or alias ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", + "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", + "markdownDescription": "Specifies the map style selected from an available data provider\\. \n*Required*: Yes \n*Type*: [MapConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-location-map-mapconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Configuration" + }, + "Description": { + "markdownDescription": "An optional description for the map resource\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "MapName": { + "markdownDescription": "The name for the map resource\\. \nRequirements: \n+ Must contain only alphanumeric characters \\(A\u2013Z, a\u2013z, 0\u20139\\), hyphens \\(\\-\\), periods \\(\\.\\), and underscores \\(\\_\\)\\.\n+ Must be a unique map resource name\\.\n+ No spaces allowed\\. For example, `ExampleMap`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[-._\\w]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MapName", + "type": "string" + }, + "PricingPlan": { + "markdownDescription": "No longer used\\. If included, the only allowed value is `RequestBasedUsage`\\. \n*Allowed Values*: `RequestBasedUsage` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Specifies the map style selected from an available data provider\\. \nValid styles: `VectorEsriStreets`, `VectorEsriTopographic`, `VectorEsriNavigation`, `VectorEsriDarkGrayCanvas`, `VectorEsriLightGrayCanvas`, `VectorHereBerlin`\\. \nWhen using HERE as your data provider, and selecting the Style `VectorHereBerlin`, you may not use HERE Technologies maps for Asset Management\\. See the [AWS Service Terms](http://aws.amazon.com/service-terms/) for Amazon Location Service\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[-._\\w]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Specifies the data provider of geospatial data\\. \nThis field is case\\-sensitive\\. Enter the valid values as shown\\. For example, entering `HERE` will return an error\\.\nValid values include: \n+ `Esri`\n+ `Here`\n**Important** \nPlace index resources using HERE as a data provider can't be used to [store](https://docs.aws.amazon.com/location-places/latest/APIReference/API_DataSourceConfiguration.html) results for locations in Japan\\. For more information, see the [AWS Service Terms](http://aws.amazon.com/service-terms/) for Amazon Location Service\\.\nFor additional details on data providers, see the [Amazon Location Service data providers page](https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataSource", + "type": "string" + }, + "DataSourceConfiguration": { + "$ref": "#/definitions/AWS::Location::PlaceIndex.DataSourceConfiguration", + "markdownDescription": "Specifies the data storage option for requesting Places\\. \n*Required*: No \n*Type*: [DataSourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-location-placeindex-datasourceconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataSourceConfiguration" + }, + "Description": { + "markdownDescription": "The optional description for the place index resource\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "IndexName": { + "markdownDescription": "The name of the place index resource\\. \nRequirements: \n+ Contain only alphanumeric characters \\(A\u2013Z, a\u2013z, 0\u20139\\), hyphens \\(\\-\\), periods \\(\\.\\), and underscores \\(\\_\\)\\.\n+ Must be a unique place index resource name\\.\n+ No spaces allowed\\. For example, `ExamplePlaceIndex`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[-._\\w]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IndexName", + "type": "string" + }, + "PricingPlan": { + "markdownDescription": "No longer used\\. If included, the only allowed value is `RequestBasedUsage`\\. \n*Allowed Values*: `RequestBasedUsage` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Specifies how the results of an operation will be stored by the caller\\. \nValid values include: \n+ `SingleUse` specifies that the results won't be stored\\.\n+ `Storage` specifies that the result can be cached or stored in a database\\.\n**Important** \nPlace index resources using HERE as a data provider can't be configured to store results for locations in Japan when choosing `Storage` for the `IntendedUse` parameter\\.\nDefault value: `SingleUse` \n*Required*: No \n*Type*: String \n*Allowed values*: `SingleUse | Storage` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the route calculator resource\\. \nRequirements: \n+ Can use alphanumeric characters \\(A\u2013Z, a\u2013z, 0\u20139\\) , hyphens \\(\\-\\), periods \\(\\.\\), and underscores \\(\\_\\)\\.\n+ Must be a unique route calculator resource name\\.\n+ No spaces allowed\\. For example, `ExampleRouteCalculator`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[-._\\w]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CalculatorName", + "type": "string" + }, + "DataSource": { + "markdownDescription": "Specifies the data provider of traffic and road network data\\. \nThis field is case\\-sensitive\\. Enter the valid values as shown\\. For example, entering `HERE` returns an error\\.\nValid values include: \n+ `Esri`\n+ `Here`\nFor more information about data providers, see the [Amazon Location Service data providers page](https://docs.aws.amazon.com/location/latest/developerguide/what-is-data-provider.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataSource", + "type": "string" + }, + "Description": { + "markdownDescription": "The optional description for the route calculator resource\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "PricingPlan": { + "markdownDescription": "No longer used\\. If included, the only allowed value is `RequestBasedUsage`\\. \n*Allowed Values*: `RequestBasedUsage` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "An optional description for the tracker resource\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "KmsKeyId": { + "markdownDescription": "A key identifier for an [AWS KMS customer managed key](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)\\. Enter a key ID, key ARN, alias name, or alias ARN\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + }, + "PositionFiltering": { + "markdownDescription": "Specifies the position filtering for the tracker resource\\. \nValid values: \n+ `TimeBased` \\- Location updates are evaluated against linked geofence collections, but not every location update is stored\\. If your update frequency is more often than 30 seconds, only one update per 30 seconds is stored for each unique device ID\\. \n+ `DistanceBased` \\- If the device has moved less than 30 m \\(98\\.4 ft\\), location updates are ignored\\. Location updates within this area are neither evaluated against linked geofence collections, nor stored\\. This helps control costs by reducing the number of geofence evaluations and historical device positions to paginate through\\. Distance\\-based filtering can also reduce the effects of GPS noise when displaying device trajectories on a map\\. \n+ `AccuracyBased` \\- If the device has moved less than the measured accuracy, location updates are ignored\\. For example, if two consecutive updates from a device have a horizontal accuracy of 5 m and 10 m, the second update is ignored if the device has moved less than 15 m\\. Ignored location updates are neither evaluated against linked geofence collections, nor stored\\. This can reduce the effects of GPS noise when displaying device trajectories on a map, and can help control your costs by reducing the number of geofence evaluations\\. \nThis field is optional\\. If not specified, the default value is `TimeBased`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AccuracyBased | DistanceBased | TimeBased` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PositionFiltering", + "type": "string" + }, + "PricingPlan": { + "markdownDescription": "No longer used\\. If included, the only allowed value is `RequestBasedUsage`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `MobileAssetManagement | MobileAssetTracking | RequestBasedUsage` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PricingPlan", + "type": "string" + }, + "PricingPlanDataSource": { + "markdownDescription": "This parameter is no longer used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PricingPlanDataSource", + "type": "string" + }, + "TrackerName": { + "markdownDescription": "The name for the tracker resource\\. \nRequirements: \n+ Contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\) , hyphens \\(\\-\\), periods \\(\\.\\), and underscores \\(\\_\\)\\.\n+ Must be a unique tracker resource name\\.\n+ No spaces allowed\\. For example, `ExampleTracker`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[-._\\w]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the geofence collection that consumes the tracker resource updates\\. \n+ Format example: `arn:aws:geo:region:account-id:geofence-collection/ExampleGeofenceCollectionConsumer`\n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1600` \n*Pattern*: `^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConsumerArn", + "type": "string" + }, + "TrackerName": { + "markdownDescription": "The name for the tracker resource\\. \nRequirements: \n+ Contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\) , hyphens \\(\\-\\), periods \\(\\.\\), and underscores \\(\\_\\)\\.\n+ Must be a unique tracker resource name\\.\n+ No spaces allowed\\. For example, `ExampleTracker`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[-._\\w]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the destination\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[^:*]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationName", + "type": "string" + }, + "DestinationPolicy": { + "markdownDescription": "An IAM policy document that governs which AWS accounts can create subscription filters against this destination\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationPolicy", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of an IAM role that permits CloudWatch Logs to send data to the specified AWS resource\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "TargetArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the physical target where the log events are delivered \\(for example, a Kinesis stream\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS KMS key to use when encrypting log data\\. \nTo associate an AWS KMS key with the log group, specify the ARN of that KMS key here\\. If you do so, ingested data is encrypted using this key\\. This association is stored as long as the data encrypted with the KMS key is still within CloudWatch Logs\\. This enables CloudWatch Logs to decrypt this data whenever it is requested\\. \nIf you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an `InvalidParameterException` error\\. \nLog group data is always encrypted in CloudWatch Logs\\. If you omit this key, the encryption does not use AWS KMS\\. For more information, see [ Encrypt log data in CloudWatch Logs using AWS Key Management Service](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", + "type": "string" + }, + "LogGroupName": { + "markdownDescription": "The name of the log group\\. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogGroupName", + "type": "string" + }, + "RetentionInDays": { + "markdownDescription": "The number of days to retain the log events in the specified log group\\. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, and 3653\\. \nTo set a log group to never have log events expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetentionInDays", + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to the log group\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The name of the log group where the log stream is created\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogGroupName", + "type": "string" + }, + "LogStreamName": { + "markdownDescription": "The name of the log stream\\. The name must be unique within the log group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[^:*]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A filter pattern for extracting metric data out of ingested log events\\. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterPattern", + "type": "string" + }, + "LogGroupName": { + "markdownDescription": "The name of an existing log group that you want to associate with this metric filter\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogGroupName", + "type": "string" + }, + "MetricTransformations": { + "items": { + "$ref": "#/definitions/AWS::Logs::MetricFilter.MetricTransformation" + }, + "markdownDescription": "The metric transformations\\. \n*Required*: Yes \n*Type*: List of [MetricTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricTransformations", + "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": { + "markdownDescription": "\\(Optional\\) The value to emit when a filter pattern does not match a log event\\. This value can be null\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultValue", + "type": "number" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::Logs::MetricFilter.Dimension" + }, + "type": "array" + }, + "MetricName": { + "markdownDescription": "The name of the CloudWatch metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", + "type": "string" + }, + "MetricNamespace": { + "markdownDescription": "A custom namespace to contain your metric in CloudWatch\\. Use namespaces to group together metrics that are similar\\. For more information, see [Namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace)\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `[^:*$]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricNamespace", + "type": "string" + }, + "MetricValue": { + "markdownDescription": "The value that is published to the CloudWatch metric\\. For example, if you're counting the occurrences of a particular term like `Error`, specify 1 for the metric value\\. If you're counting the number of bytes transferred, reference the value that is in the log event by using $ followed by the name of the field that you specified in the filter pattern, such as `$.size`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "Use this parameter if you want the query to query only certain log groups\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroupNames", + "type": "array" + }, + "Name": { + "markdownDescription": "A name for the query definition\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "QueryString": { + "markdownDescription": "The query string to use for this query definition\\. For more information, see [ CloudWatch Logs Insights Query Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The details of the policy\\. It must be formatted in JSON, and you must use backslashes to escape characters that need to be escaped in JSON strings, such as double quote marks\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `5120` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDocument", + "type": "string" + }, + "PolicyName": { + "markdownDescription": "The name of the resource policy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the destination\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationArn", + "type": "string" + }, + "Distribution": { + "type": "string" + }, + "FilterName": { + "type": "string" + }, + "FilterPattern": { + "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*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FilterPattern", + "type": "string" + }, + "LogGroupName": { + "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*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `[\\.\\-_/#A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LogGroupName", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream\\. You don't need to provide the ARN when you are working with a logical destination for cross\\-account delivery\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A period of time \\(in minutes\\) by which inference on the data is delayed after the data starts\\. For instance, if an offset delay time of five minutes was selected, inference will not begin on the data until the first data measurement after the five minute mark\\. For example, if five minutes is selected, the inference scheduler will wake up at the configured frequency with the additional five minute delay time to check the customer S3 bucket\\. The customer can upload data at the same frequency and they don't need to stop and restart the scheduler when uploading new data\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataDelayOffsetInMinutes", + "type": "number" + }, + "DataInputConfiguration": { + "$ref": "#/definitions/AWS::LookoutEquipment::InferenceScheduler.DataInputConfiguration", + "markdownDescription": "Specifies configuration information for the input data for the inference scheduler, including delimiter, format, and dataset location\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataInputConfiguration" + }, + "DataOutputConfiguration": { + "$ref": "#/definitions/AWS::LookoutEquipment::InferenceScheduler.DataOutputConfiguration", + "markdownDescription": "Specifies configuration information for the output results for the inference scheduler, including the Amazon S3 location for the output\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataOutputConfiguration" + }, + "DataUploadFrequency": { + "markdownDescription": "How often data is uploaded to the source S3 bucket for the input data\\. This value is the length of time between data uploads\\. For instance, if you select 5 minutes, Amazon Lookout for Equipment will upload the real\\-time data to the source bucket once every 5 minutes\\. This frequency also determines how often Amazon Lookout for Equipment starts a scheduled inference on your data\\. In this example, it starts once every 5 minutes\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `PT10M | PT15M | PT1H | PT30M | PT5M` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataUploadFrequency", + "type": "string" + }, + "InferenceSchedulerName": { + "markdownDescription": "The name of the inference scheduler\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `200` \n*Pattern*: `^[0-9a-zA-Z_-]{1,200}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InferenceSchedulerName", + "type": "string" + }, + "ModelName": { + "markdownDescription": "The name of the ML model used for the inference scheduler\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `200` \n*Pattern*: `^[0-9a-zA-Z_-]{1,200}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ModelName", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of a role with permission to access the data source being used for the inference\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "ServerSideKmsKeyId": { + "markdownDescription": "Provides the identifier of the AWS KMS key used to encrypt inference scheduler data by Amazon Lookout for Equipment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServerSideKmsKeyId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Any tags associated with the inference scheduler\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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", + "markdownDescription": "Action that will be triggered when there is an alert\\. \n*Required*: Yes \n*Type*: [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-alert-action.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Action" + }, + "AlertDescription": { + "markdownDescription": "A description of the alert\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AlertDescription", + "type": "string" + }, + "AlertName": { + "markdownDescription": "The name of the alert\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AlertName", + "type": "string" + }, + "AlertSensitivityThreshold": { + "markdownDescription": "An integer from 0 to 100 specifying the alert sensitivity threshold\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AlertSensitivityThreshold", + "type": "number" + }, + "AnomalyDetectorArn": { + "markdownDescription": "The ARN of the detector to which the alert is attached\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "A configuration for an AWS Lambda channel\\. \n*Required*: No \n*Type*: [LambdaConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-alert-lambdaconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LambdaConfiguration" + }, + "SNSConfiguration": { + "$ref": "#/definitions/AWS::LookoutMetrics::Alert.SNSConfiguration", + "markdownDescription": "A configuration for an Amazon SNS channel\\. \n*Required*: No \n*Type*: [SNSConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-alert-snsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SNSConfiguration" + } + }, + "type": "object" + }, + "AWS::LookoutMetrics::Alert.LambdaConfiguration": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "markdownDescription": "The ARN of the Lambda function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LambdaArn", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of an IAM role that has permission to invoke the Lambda function\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RoleArn", + "type": "string" + } + }, + "required": [ + "LambdaArn", + "RoleArn" + ], + "type": "object" + }, + "AWS::LookoutMetrics::Alert.SNSConfiguration": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "markdownDescription": "The ARN of the IAM role that has access to the target SNS topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RoleArn", + "type": "string" + }, + "SnsTopicArn": { + "markdownDescription": "The ARN of the target SNS topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "Contains information about the configuration of the anomaly detector\\. \n*Required*: Yes \n*Type*: [AnomalyDetectorConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-anomalydetectorconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AnomalyDetectorConfig" + }, + "AnomalyDetectorDescription": { + "markdownDescription": "A description of the detector\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AnomalyDetectorDescription", + "type": "string" + }, + "AnomalyDetectorName": { + "markdownDescription": "The name of the detector\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AnomalyDetectorName", + "type": "string" + }, + "KmsKeyArn": { + "markdownDescription": "The ARN of the KMS key to use to encrypt your data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyArn", + "type": "string" + }, + "MetricSetList": { + "items": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.MetricSet" + }, + "markdownDescription": "The detector's dataset\\. \n*Required*: Yes \n*Type*: List of [MetricSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metricset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricSetList", + "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": { + "markdownDescription": "The frequency at which the detector analyzes its source data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AnomalyDetectorFrequency", + "type": "string" + } + }, + "required": [ + "AnomalyDetectorFrequency" + ], + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.AppFlowConfig": { + "additionalProperties": false, + "properties": { + "FlowName": { + "markdownDescription": "name of the flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FlowName", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "An IAM role that gives Amazon Lookout for Metrics permission to access the flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + } + }, + "required": [ + "FlowName", + "RoleArn" + ], + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.CloudwatchConfig": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "markdownDescription": "An IAM role that gives Amazon Lookout for Metrics permission to access data in Amazon CloudWatch\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.CsvFormatDescriptor": { + "additionalProperties": false, + "properties": { + "Charset": { + "markdownDescription": "The character set in which the source CSV file is written\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Charset", + "type": "string" + }, + "ContainsHeader": { + "markdownDescription": "Whether or not the source CSV file contains a header\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainsHeader", + "type": "boolean" + }, + "Delimiter": { + "markdownDescription": "The character used to delimit the source CSV file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Delimiter", + "type": "string" + }, + "FileCompression": { + "markdownDescription": "The level of compression of the source CSV file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileCompression", + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of the source CSV file's headers, if any\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderList", + "type": "array" + }, + "QuoteSymbol": { + "markdownDescription": "The character used as a quote character\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QuoteSymbol", + "type": "string" + } + }, + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.FileFormatDescriptor": { + "additionalProperties": false, + "properties": { + "CsvFormatDescriptor": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.CsvFormatDescriptor", + "markdownDescription": "Contains information about how a source CSV data file should be analyzed\\. \n*Required*: No \n*Type*: [CsvFormatDescriptor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-csvformatdescriptor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CsvFormatDescriptor" + }, + "JsonFormatDescriptor": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.JsonFormatDescriptor", + "markdownDescription": "Contains information about how a source JSON data file should be analyzed\\. \n*Required*: No \n*Type*: [JsonFormatDescriptor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-jsonformatdescriptor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JsonFormatDescriptor" + } + }, + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.JsonFormatDescriptor": { + "additionalProperties": false, + "properties": { + "Charset": { + "markdownDescription": "The character set in which the source JSON file is written\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Charset", + "type": "string" + }, + "FileCompression": { + "markdownDescription": "The level of compression of the source CSV file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileCompression", + "type": "string" + } + }, + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.Metric": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "markdownDescription": "The function with which the metric is calculated\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AggregationFunction", + "type": "string" + }, + "MetricName": { + "markdownDescription": "The name of the metric\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", + "type": "string" + }, + "Namespace": { + "markdownDescription": "The namespace for the metric\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", + "type": "string" + } + }, + "required": [ + "AggregationFunction", + "MetricName" + ], + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.MetricSet": { + "additionalProperties": false, + "properties": { + "DimensionList": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of the fields you want to treat as dimensions\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DimensionList", + "type": "array" + }, + "MetricList": { + "items": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.Metric" + }, + "markdownDescription": "A list of metrics that the dataset will contain\\. \n*Required*: Yes \n*Type*: List of [Metric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metric.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricList", + "type": "array" + }, + "MetricSetDescription": { + "markdownDescription": "A description of the dataset you are creating\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricSetDescription", + "type": "string" + }, + "MetricSetFrequency": { + "markdownDescription": "The frequency with which the source data will be analyzed for anomalies\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricSetFrequency", + "type": "string" + }, + "MetricSetName": { + "markdownDescription": "The name of the dataset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricSetName", + "type": "string" + }, + "MetricSource": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.MetricSource", + "markdownDescription": "Contains information about how the source data should be interpreted\\. \n*Required*: Yes \n*Type*: [MetricSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metricsource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricSource" + }, + "Offset": { + "markdownDescription": "After an interval ends, the amount of seconds that the detector waits before importing data\\. Offset is only supported for S3 and Redshift datasources\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Offset", + "type": "number" + }, + "TimestampColumn": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.TimestampColumn", + "markdownDescription": "Contains information about the column used for tracking time in your source data\\. \n*Required*: No \n*Type*: [TimestampColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-timestampcolumn.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimestampColumn" + }, + "Timezone": { + "markdownDescription": "The time zone in which your source data was recorded\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Timezone", + "type": "string" + } + }, + "required": [ + "MetricList", + "MetricSetName", + "MetricSource" + ], + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.MetricSource": { + "additionalProperties": false, + "properties": { + "AppFlowConfig": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.AppFlowConfig", + "markdownDescription": "An object containing information about the AppFlow configuration\\. \n*Required*: No \n*Type*: [AppFlowConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-appflowconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppFlowConfig" + }, + "CloudwatchConfig": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.CloudwatchConfig", + "markdownDescription": "An object containing information about the Amazon CloudWatch monitoring configuration\\. \n*Required*: No \n*Type*: [CloudwatchConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-cloudwatchconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudwatchConfig" + }, + "RDSSourceConfig": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.RDSSourceConfig", + "markdownDescription": "An object containing information about the Amazon Relational Database Service \\(RDS\\) configuration\\. \n*Required*: No \n*Type*: [RDSSourceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-rdssourceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RDSSourceConfig" + }, + "RedshiftSourceConfig": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.RedshiftSourceConfig", + "markdownDescription": "An object containing information about the Amazon Redshift database configuration\\. \n*Required*: No \n*Type*: [RedshiftSourceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-redshiftsourceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedshiftSourceConfig" + }, + "S3SourceConfig": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.S3SourceConfig", + "markdownDescription": "Contains information about the configuration of the S3 bucket that contains source files\\. \n*Required*: No \n*Type*: [S3SourceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-s3sourceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3SourceConfig" + } + }, + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.RDSSourceConfig": { + "additionalProperties": false, + "properties": { + "DBInstanceIdentifier": { + "markdownDescription": "A string identifying the database instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBInstanceIdentifier", + "type": "string" + }, + "DatabaseHost": { + "markdownDescription": "The host name of the database\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseHost", + "type": "string" + }, + "DatabaseName": { + "markdownDescription": "The name of the RDS database\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", + "type": "string" + }, + "DatabasePort": { + "markdownDescription": "The port number where the database can be accessed\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabasePort", + "type": "number" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "SecretManagerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Secrets Manager role\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretManagerArn", + "type": "string" + }, + "TableName": { + "markdownDescription": "The name of the table in the database\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.VpcConfiguration", + "markdownDescription": "An object containing information about the Amazon Virtual Private Cloud \\(VPC\\) configuration\\. \n*Required*: Yes \n*Type*: [VpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-vpcconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcConfiguration" + } + }, + "required": [ + "DBInstanceIdentifier", + "DatabaseHost", + "DatabaseName", + "DatabasePort", + "RoleArn", + "SecretManagerArn", + "TableName", + "VpcConfiguration" + ], + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.RedshiftSourceConfig": { + "additionalProperties": false, + "properties": { + "ClusterIdentifier": { + "markdownDescription": "A string identifying the Redshift cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterIdentifier", + "type": "string" + }, + "DatabaseHost": { + "markdownDescription": "The name of the database host\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseHost", + "type": "string" + }, + "DatabaseName": { + "markdownDescription": "The Redshift database name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", + "type": "string" + }, + "DatabasePort": { + "markdownDescription": "The port number where the database can be accessed\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabasePort", + "type": "number" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role providing access to the database\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "SecretManagerArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Secrets Manager role\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretManagerArn", + "type": "string" + }, + "TableName": { + "markdownDescription": "The table name of the Redshift database\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TableName", + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.VpcConfiguration", + "markdownDescription": "Contains information about the Amazon Virtual Private Cloud \\(VPC\\) configuration\\. \n*Required*: Yes \n*Type*: [VpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-vpcconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Contains information about a source file's formatting\\. \n*Required*: Yes \n*Type*: [FileFormatDescriptor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-fileformatdescriptor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileFormatDescriptor" + }, + "HistoricalDataPathList": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of paths to the historical data files\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HistoricalDataPathList", + "type": "array" + }, + "RoleArn": { + "markdownDescription": "The ARN of an IAM role that has read and write access permissions to the source S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "TemplatedPathList": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of templated paths to the source files\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplatedPathList", + "type": "array" + } + }, + "required": [ + "FileFormatDescriptor", + "RoleArn" + ], + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.TimestampColumn": { + "additionalProperties": false, + "properties": { + "ColumnFormat": { + "markdownDescription": "The format of the timestamp column\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnFormat", + "type": "string" + }, + "ColumnName": { + "markdownDescription": "The name of the timestamp column\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.VpcConfiguration": { + "additionalProperties": false, + "properties": { + "SecurityGroupIdList": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of strings containing the list of security groups\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIdList", + "type": "array" + }, + "SubnetIdList": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of strings containing the Amazon VPC subnet IDs \\(e\\.g\\., `subnet-0bb1c79de3EXAMPLE`\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIdList", + "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": { + "markdownDescription": "The name of the project\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9][a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the MSK cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterArn", + "type": "string" + }, + "SecretArnList": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of Amazon Secrets Manager secret ARNs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretArnList", + "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", + "markdownDescription": "The setup to be used for brokers in the cluster\\. \nAWS CloudFormation may replace the cluster when you update certain `BrokerNodeGroupInfo` properties\\. To understand the update behavior for your use case, you should review the child properties for [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-brokernodegroupinfo.html#aws-properties-msk-cluster-brokernodegroupinfo-properties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-brokernodegroupinfo.html#aws-properties-msk-cluster-brokernodegroupinfo-properties)\\.\n*Required*: Yes \n*Type*: [BrokerNodeGroupInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-brokernodegroupinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BrokerNodeGroupInfo" + }, + "ClientAuthentication": { + "$ref": "#/definitions/AWS::MSK::Cluster.ClientAuthentication", + "markdownDescription": "Includes information related to client authentication\\. \n*Required*: No \n*Type*: [ClientAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-clientauthentication.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientAuthentication" + }, + "ClusterName": { + "markdownDescription": "The name of the cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterName", + "type": "string" + }, + "ConfigurationInfo": { + "$ref": "#/definitions/AWS::MSK::Cluster.ConfigurationInfo", + "markdownDescription": "The Amazon MSK configuration to use for the cluster\\. \n*Required*: No \n*Type*: [ConfigurationInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-configurationinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfigurationInfo" + }, + "CurrentVersion": { + "markdownDescription": "The version of the cluster that you want to update\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CurrentVersion", + "type": "string" + }, + "EncryptionInfo": { + "$ref": "#/definitions/AWS::MSK::Cluster.EncryptionInfo", + "markdownDescription": "Includes all encryption\\-related information\\. \n*Required*: No \n*Type*: [EncryptionInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-encryptioninfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionInfo" + }, + "EnhancedMonitoring": { + "markdownDescription": "Specifies the level of monitoring for the MSK cluster\\. The possible values are `DEFAULT`, `PER_BROKER`, and `PER_TOPIC_PER_BROKER`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnhancedMonitoring", + "type": "string" + }, + "KafkaVersion": { + "markdownDescription": "The version of Apache Kafka\\. For more information, see [Supported Apache Kafka versions](https://docs.aws.amazon.com/msk/latest/developerguide/supported-kafka-versions.html) in the Amazon MSK Developer Guide\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KafkaVersion", + "type": "string" + }, + "LoggingInfo": { + "$ref": "#/definitions/AWS::MSK::Cluster.LoggingInfo", + "markdownDescription": "You can configure your Amazon MSK cluster to send broker logs to different destination types\\. This is a container for the configuration details related to broker logs\\. \n*Required*: No \n*Type*: [LoggingInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-logginginfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingInfo" + }, + "NumberOfBrokerNodes": { + "markdownDescription": "The number of broker nodes you want in the Amazon MSK cluster\\. You can submit an update to increase the number of broker nodes in a cluster\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfBrokerNodes", + "type": "number" + }, + "OpenMonitoring": { + "$ref": "#/definitions/AWS::MSK::Cluster.OpenMonitoring", + "markdownDescription": "The settings for open monitoring\\. \n*Required*: No \n*Type*: [OpenMonitoring](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-openmonitoring.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OpenMonitoring" + }, + "StorageMode": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "A map of key:value pairs to apply to this resource\\. Both key and value are of type String\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "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", + "markdownDescription": "Details of the CloudWatch Logs destination for broker logs\\. \n*Required*: No \n*Type*: [CloudWatchLogs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-cloudwatchlogs.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogs" + }, + "Firehose": { + "$ref": "#/definitions/AWS::MSK::Cluster.Firehose", + "markdownDescription": "Details of the Kinesis Data Firehose delivery stream that is the destination for broker logs\\. \n*Required*: No \n*Type*: [Firehose](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-firehose.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Firehose" + }, + "S3": { + "$ref": "#/definitions/AWS::MSK::Cluster.S3", + "markdownDescription": "Details of the Amazon MSK destination for broker logs\\. \n*Required*: No \n*Type*: [S3](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-s3.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.BrokerNodeGroupInfo": { + "additionalProperties": false, + "properties": { + "BrokerAZDistribution": { + "markdownDescription": "This parameter is currently not in use\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BrokerAZDistribution", + "type": "string" + }, + "ClientSubnets": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of subnets to connect to in the client virtual private cloud \\(VPC\\)\\. Amazon creates elastic network interfaces inside these subnets\\. Client applications use elastic network interfaces to produce and consume data\\. \nSpecify exactly two subnets if you are using the US West \\(N\\. California\\) Region\\. For other Regions where Amazon MSK is available, you can specify either two or three subnets\\. The subnets that you specify must be in distinct Availability Zones\\. When you create a cluster, Amazon MSK distributes the broker nodes evenly across the subnets that you specify\\. \nClient subnets can't be in Availability Zone us\\-east\\-1e\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientSubnets", + "type": "array" + }, + "ConnectivityInfo": { + "$ref": "#/definitions/AWS::MSK::Cluster.ConnectivityInfo", + "markdownDescription": "Information about the cluster's connectivity setting\\. \n*Required*: No \n*Type*: [ConnectivityInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-connectivityinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectivityInfo" + }, + "InstanceType": { + "markdownDescription": "The type of Amazon EC2 instances to use for brokers\\. The following instance types are allowed: kafka\\.m5\\.large, kafka\\.m5\\.xlarge, kafka\\.m5\\.2xlarge, kafka\\.m5\\.4xlarge, kafka\\.m5\\.8xlarge, kafka\\.m5\\.12xlarge, kafka\\.m5\\.16xlarge, and kafka\\.m5\\.24xlarge\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "The security groups to associate with the elastic network interfaces in order to specify who can connect to and communicate with the Amazon MSK cluster\\. If you don't specify a security group, Amazon MSK uses the default security group associated with the VPC\\. If you specify security groups that were shared with you, you must ensure that you have permissions to them\\. Specifically, you need the `ec2:DescribeSecurityGroups` permission\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroups", + "type": "array" + }, + "StorageInfo": { + "$ref": "#/definitions/AWS::MSK::Cluster.StorageInfo", + "markdownDescription": "Contains information about storage volumes attached to MSK broker nodes\\. \n*Required*: No \n*Type*: [StorageInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-storageinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageInfo" + } + }, + "required": [ + "ClientSubnets", + "InstanceType" + ], + "type": "object" + }, + "AWS::MSK::Cluster.ClientAuthentication": { + "additionalProperties": false, + "properties": { + "Sasl": { + "$ref": "#/definitions/AWS::MSK::Cluster.Sasl", + "markdownDescription": "Details for ClientAuthentication using SASL\\. \n*Required*: No \n*Type*: [Sasl](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-sasl.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sasl" + }, + "Tls": { + "$ref": "#/definitions/AWS::MSK::Cluster.Tls", + "markdownDescription": "Details for client authentication using TLS\\. \n*Required*: No \n*Type*: [Tls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-tls.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tls" + }, + "Unauthenticated": { + "$ref": "#/definitions/AWS::MSK::Cluster.Unauthenticated", + "markdownDescription": "Details for ClientAuthentication using no authentication\\. \n*Required*: No \n*Type*: [Unauthenticated](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-unauthenticated.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Unauthenticated" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.CloudWatchLogs": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Specifies whether broker logs get sent to the specified CloudWatch Logs destination\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "LogGroup": { + "markdownDescription": "The CloudWatch Logs group that is the destination for broker logs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroup", + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::MSK::Cluster.ConfigurationInfo": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the MSK configuration to use\\. For example, `arn:aws:kafka:us-east-1:123456789012:configuration/example-configuration-name/abcdabcd-1234-abcd-1234-abcd123e8e8e-1`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "Revision": { + "markdownDescription": "The revision of the Amazon MSK configuration to use\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Revision", + "type": "number" + } + }, + "required": [ + "Arn", + "Revision" + ], + "type": "object" + }, + "AWS::MSK::Cluster.ConnectivityInfo": { + "additionalProperties": false, + "properties": { + "PublicAccess": { + "$ref": "#/definitions/AWS::MSK::Cluster.PublicAccess", + "markdownDescription": "Specifies whether the cluster's brokers are accessible from the internet\\. Public access is off by default\\. \n*Required*: No \n*Type*: [PublicAccess](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-publicaccess.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublicAccess" + }, + "VpcConnectivity": { + "$ref": "#/definitions/AWS::MSK::Cluster.VpcConnectivity" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.EBSStorageInfo": { + "additionalProperties": false, + "properties": { + "ProvisionedThroughput": { + "$ref": "#/definitions/AWS::MSK::Cluster.ProvisionedThroughput", + "markdownDescription": "Specifies whether provisioned throughput is turned on and the volume throughput target\\. \n*Required*: No \n*Type*: [ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-provisionedthroughput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisionedThroughput" + }, + "VolumeSize": { + "markdownDescription": "The size in GiB of the EBS volume for the data drive on each broker node\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeSize", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.EncryptionAtRest": { + "additionalProperties": false, + "properties": { + "DataVolumeKMSKeyId": { + "markdownDescription": "The ARN of the Amazon KMS key for encrypting data at rest\\. If you don't specify a KMS key, MSK creates one for you and uses it on your behalf\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataVolumeKMSKeyId", + "type": "string" + } + }, + "required": [ + "DataVolumeKMSKeyId" + ], + "type": "object" + }, + "AWS::MSK::Cluster.EncryptionInTransit": { + "additionalProperties": false, + "properties": { + "ClientBroker": { + "markdownDescription": "Indicates the encryption setting for data in transit between clients and brokers\\. The following are the possible values\\. \n+ `TLS` means that client\\-broker communication is enabled with TLS only\\. \n+ `TLS_PLAINTEXT` means that client\\-broker communication is enabled for both TLS\\-encrypted, as well as plain text data\\. \n+ `PLAINTEXT` means that client\\-broker communication is enabled in plain text only\\.\nThe default value is `TLS`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientBroker", + "type": "string" + }, + "InCluster": { + "markdownDescription": "When set to true, it indicates that data communication among the broker nodes of the cluster is encrypted\\. When set to false, the communication happens in plain text\\. The default value is true\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InCluster", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.EncryptionInfo": { + "additionalProperties": false, + "properties": { + "EncryptionAtRest": { + "$ref": "#/definitions/AWS::MSK::Cluster.EncryptionAtRest", + "markdownDescription": "The data\\-volume encryption details\\. \n*Required*: No \n*Type*: [EncryptionAtRest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-encryptionatrest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncryptionAtRest" + }, + "EncryptionInTransit": { + "$ref": "#/definitions/AWS::MSK::Cluster.EncryptionInTransit", + "markdownDescription": "The details for encryption in transit\\. \n*Required*: No \n*Type*: [EncryptionInTransit](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-encryptionintransit.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionInTransit" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.Firehose": { + "additionalProperties": false, + "properties": { + "DeliveryStream": { + "markdownDescription": "The Kinesis Data Firehose delivery stream that is the destination for broker logs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryStream", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Specifies whether broker logs get sent to the specified Kinesis Data Firehose delivery stream\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::MSK::Cluster.Iam": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Whether IAM access control is enabled\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::MSK::Cluster.JmxExporter": { + "additionalProperties": false, + "properties": { + "EnabledInBroker": { + "markdownDescription": "Indicates whether you want to enable or disable the JMX Exporter\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnabledInBroker", + "type": "boolean" + } + }, + "required": [ + "EnabledInBroker" + ], + "type": "object" + }, + "AWS::MSK::Cluster.LoggingInfo": { + "additionalProperties": false, + "properties": { + "BrokerLogs": { + "$ref": "#/definitions/AWS::MSK::Cluster.BrokerLogs", + "markdownDescription": "You can configure your Amazon MSK cluster to send broker logs to different destination types\\. This configuration specifies the details of these destinations\\. \n*Required*: Yes \n*Type*: [BrokerLogs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-brokerlogs.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BrokerLogs" + } + }, + "required": [ + "BrokerLogs" + ], + "type": "object" + }, + "AWS::MSK::Cluster.NodeExporter": { + "additionalProperties": false, + "properties": { + "EnabledInBroker": { + "markdownDescription": "Indicates whether you want to enable or disable the Node Exporter\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnabledInBroker", + "type": "boolean" + } + }, + "required": [ + "EnabledInBroker" + ], + "type": "object" + }, + "AWS::MSK::Cluster.OpenMonitoring": { + "additionalProperties": false, + "properties": { + "Prometheus": { + "$ref": "#/definitions/AWS::MSK::Cluster.Prometheus", + "markdownDescription": "Prometheus exporter settings\\. \n*Required*: Yes \n*Type*: [Prometheus](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-prometheus.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prometheus" + } + }, + "required": [ + "Prometheus" + ], + "type": "object" + }, + "AWS::MSK::Cluster.Prometheus": { + "additionalProperties": false, + "properties": { + "JmxExporter": { + "$ref": "#/definitions/AWS::MSK::Cluster.JmxExporter", + "markdownDescription": "Indicates whether you want to enable or disable the JMX Exporter\\. \n*Required*: No \n*Type*: [JmxExporter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-jmxexporter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JmxExporter" + }, + "NodeExporter": { + "$ref": "#/definitions/AWS::MSK::Cluster.NodeExporter", + "markdownDescription": "Indicates whether you want to enable or disable the Node Exporter\\. \n*Required*: No \n*Type*: [NodeExporter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-nodeexporter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NodeExporter" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Specifies whether provisioned throughput is turned on for the cluster\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "VolumeThroughput": { + "markdownDescription": "The provisioned throughput rate in MiB per second\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeThroughput", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.PublicAccess": { + "additionalProperties": false, + "properties": { + "Type": { + "markdownDescription": "Set to `DISABLED` to turn off public access or to `SERVICE_PROVIDED_EIPS` to turn it on\\. Public access if off by default\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.S3": { + "additionalProperties": false, + "properties": { + "Bucket": { + "markdownDescription": "The name of the S3 bucket that is the destination for broker logs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Specifies whether broker logs get sent to the specified Amazon S3 destination\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "Prefix": { + "markdownDescription": "The S3 prefix that is the destination for broker logs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::MSK::Cluster.Sasl": { + "additionalProperties": false, + "properties": { + "Iam": { + "$ref": "#/definitions/AWS::MSK::Cluster.Iam", + "markdownDescription": "Details for IAM access control\\. \n*Required*: No \n*Type*: [Iam](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-iam.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iam" + }, + "Scram": { + "$ref": "#/definitions/AWS::MSK::Cluster.Scram", + "markdownDescription": "Details for SASL/SCRAM client authentication\\. \n*Required*: No \n*Type*: [Scram](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-scram.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scram" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.Scram": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "SASL/SCRAM authentication is enabled or not\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::MSK::Cluster.StorageInfo": { + "additionalProperties": false, + "properties": { + "EBSStorageInfo": { + "$ref": "#/definitions/AWS::MSK::Cluster.EBSStorageInfo", + "markdownDescription": "EBS volume information\\. \n*Required*: No \n*Type*: [EBSStorageInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-ebsstorageinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EBSStorageInfo" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.Tls": { + "additionalProperties": false, + "properties": { + "CertificateAuthorityArnList": { + "items": { + "type": "string" + }, + "markdownDescription": "List of ACM Certificate Authority ARNs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateAuthorityArnList", + "type": "array" + }, + "Enabled": { + "markdownDescription": "TLS authentication is enabled or not\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.Unauthenticated": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Unauthenticated is enabled or not\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The description of the configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "KafkaVersionsList": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of the versions of Apache Kafka with which you can use this MSK configuration\\. You can use this configuration for an MSK cluster only if the Apache Kafka version specified for the cluster appears in this list\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KafkaVersionsList", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the configuration\\. Configuration names are strings that match the regex \"^\\[0\\-9A\\-Za\\-z\\]\\[0\\-9A\\-Za\\-z\\-\\]\\{0,\\}$\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "ServerProperties": { + "markdownDescription": "Contents of the `server.properties` file\\. When using the API, you must ensure that the contents of the file are base64 encoded\\. When using the console, the SDK, or the CLI, the contents of `server.properties` can be in plaintext\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A list of key\\-value pairs containing the Airflow configuration options for your environment\\. For example, `core.default_timezone: utc`\\. To learn more, see [Apache Airflow configuration options](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-env-variables.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AirflowConfigurationOptions", + "type": "object" + }, + "AirflowVersion": { + "markdownDescription": "The version of Apache Airflow to use for the environment\\. If no value is specified, defaults to the latest version\\. Valid values: `2.0.2`, `1.10.12`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AirflowVersion", + "type": "string" + }, + "DagS3Path": { + "markdownDescription": "The relative path to the DAGs folder on your Amazon S3 bucket\\. For example, `dags`\\. To learn more, see [Adding or updating DAGs](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-folder.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DagS3Path", + "type": "string" + }, + "EnvironmentClass": { + "markdownDescription": "The environment class type\\. Valid values: `mw1.small`, `mw1.medium`, `mw1.large`\\. To learn more, see [Amazon MWAA environment class](https://docs.aws.amazon.com/mwaa/latest/userguide/environment-class.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnvironmentClass", + "type": "string" + }, + "ExecutionRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the execution role in IAM that allows MWAA to access AWS resources in your environment\\. For example, `arn:aws:iam::123456789:role/my-execution-role`\\. To learn more, see [Amazon MWAA Execution role](https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-create-role.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionRoleArn", + "type": "string" + }, + "KmsKey": { + "markdownDescription": "The AWS Key Management Service \\(KMS\\) key to encrypt and decrypt the data in your environment\\. You can use an AWS KMS key managed by MWAA, or a customer\\-managed KMS key \\(advanced\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKey", + "type": "string" + }, + "LoggingConfiguration": { + "$ref": "#/definitions/AWS::MWAA::Environment.LoggingConfiguration", + "markdownDescription": "The Apache Airflow logs being sent to CloudWatch Logs: `DagProcessingLogs`, `SchedulerLogs`, `TaskLogs`, `WebserverLogs`, `WorkerLogs`\\. \n*Required*: No \n*Type*: [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mwaa-environment-loggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingConfiguration" + }, + "MaxWorkers": { + "markdownDescription": "The maximum number of workers that you want to run in your environment\\. MWAA scales the number of Apache Airflow workers up to the number you specify in the `MaxWorkers` field\\. For example, `20`\\. When there are no more tasks running, and no more in the queue, MWAA disposes of the extra workers leaving the one worker that is included with your environment, or the number you specify in `MinWorkers`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxWorkers", + "type": "number" + }, + "MinWorkers": { + "markdownDescription": "The minimum number of workers that you want to run in your environment\\. MWAA scales the number of Apache Airflow workers up to the number you specify in the `MaxWorkers` field\\. When there are no more tasks running, and no more in the queue, MWAA disposes of the extra workers leaving the worker count you specify in the `MinWorkers` field\\. For example, `2`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinWorkers", + "type": "number" + }, + "Name": { + "markdownDescription": "The name of your Amazon MWAA environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::MWAA::Environment.NetworkConfiguration", + "markdownDescription": "The VPC networking components used to secure and enable network traffic between the AWS resources for your environment\\. To learn more, see [About networking on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/networking-about.html)\\. \n*Required*: No \n*Type*: [NetworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mwaa-environment-networkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkConfiguration" + }, + "PluginsS3ObjectVersion": { + "markdownDescription": "The version of the plugins\\.zip file on your Amazon S3 bucket\\. To learn more, see [Installing custom plugins](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import-plugins.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PluginsS3ObjectVersion", + "type": "string" + }, + "PluginsS3Path": { + "markdownDescription": "The relative path to the `plugins.zip` file on your Amazon S3 bucket\\. For example, `plugins.zip`\\. To learn more, see [Installing custom plugins](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-dag-import-plugins.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PluginsS3Path", + "type": "string" + }, + "RequirementsS3ObjectVersion": { + "markdownDescription": "The version of the requirements\\.txt file on your Amazon S3 bucket\\. To learn more, see [Installing Python dependencies](https://docs.aws.amazon.com/mwaa/latest/userguide/working-dags-dependencies.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequirementsS3ObjectVersion", + "type": "string" + }, + "RequirementsS3Path": { + "markdownDescription": "The relative path to the `requirements.txt` file on your Amazon S3 bucket\\. For example, `requirements.txt`\\. To learn more, see [Installing Python dependencies](https://docs.aws.amazon.com/mwaa/latest/userguide/working-dags-dependencies.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequirementsS3Path", + "type": "string" + }, + "Schedulers": { + "markdownDescription": "The number of schedulers that you want to run in your environment\\. Valid values: \n+ **v2\\.0\\.2** \\- Accepts between 2 to 5\\. Defaults to 2\\.\n+ **v1\\.10\\.12** \\- Accepts 1\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedulers", + "type": "number" + }, + "SourceBucketArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon S3 bucket where your DAG code and supporting files are stored\\. For example, `arn:aws:s3:::my-airflow-bucket-unique-name`\\. To learn more, see [Create an Amazon S3 bucket for Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-s3-bucket.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceBucketArn", + "type": "string" + }, + "Tags": { + "markdownDescription": "The key\\-value tag pairs associated to your environment\\. For example, `\"Environment\": \"Staging\"`\\. To learn more, see [Tagging](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "object" + }, + "WebserverAccessMode": { + "markdownDescription": "The Apache Airflow *Web server* access mode\\. To learn more, see [Apache Airflow access modes](https://docs.aws.amazon.com/mwaa/latest/userguide/configuring-networking.html)\\. Valid values: `PRIVATE_ONLY` or `PUBLIC_ONLY`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WebserverAccessMode", + "type": "string" + }, + "WeeklyMaintenanceWindowStart": { + "markdownDescription": "The day and time of the week to start weekly maintenance updates of your environment in the following format: `DAY:HH:MM`\\. For example: `TUE:03:30`\\. You can specify a start time in 30 minute increments only\\. Supported input includes the following: \n+ MON\\|TUE\\|WED\\|THU\\|FRI\\|SAT\\|SUN:\\(\\[01\\]\\\\\\\\d\\|2\\[0\\-3\\]\\):\\(00\\|30\\)\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Defines the processing logs sent to CloudWatch Logs and the logging level to send\\. \n*Required*: No \n*Type*: [ModuleLoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mwaa-environment-moduleloggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DagProcessingLogs" + }, + "SchedulerLogs": { + "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration", + "markdownDescription": "Defines the scheduler logs sent to CloudWatch Logs and the logging level to send\\. \n*Required*: No \n*Type*: [ModuleLoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mwaa-environment-moduleloggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SchedulerLogs" + }, + "TaskLogs": { + "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration", + "markdownDescription": "Defines the task logs sent to CloudWatch Logs and the logging level to send\\. \n*Required*: No \n*Type*: [ModuleLoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mwaa-environment-moduleloggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskLogs" + }, + "WebserverLogs": { + "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration", + "markdownDescription": "Defines the web server logs sent to CloudWatch Logs and the logging level to send\\. \n*Required*: No \n*Type*: [ModuleLoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mwaa-environment-moduleloggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WebserverLogs" + }, + "WorkerLogs": { + "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration", + "markdownDescription": "Defines the worker logs sent to CloudWatch Logs and the logging level to send\\. \n*Required*: No \n*Type*: [ModuleLoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mwaa-environment-moduleloggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WorkerLogs" + } + }, + "type": "object" + }, + "AWS::MWAA::Environment.ModuleLoggingConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLogGroupArn": { + "markdownDescription": "The ARN of the CloudWatch Logs log group for each type of Apache Airflow log type that you have enabled\\. \n `CloudWatchLogGroupArn` is available only as a return value, accessible when specified as an attribute in the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mwaa-environment.html#aws-resource-mwaa-environment-return-values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mwaa-environment.html#aws-resource-mwaa-environment-return-values) intrinsic function\\. Any value you provide for `CloudWatchLogGroupArn` is discarded by Amazon MWAA\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogGroupArn", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Indicates whether to enable the Apache Airflow log type \\(e\\.g\\. `DagProcessingLogs`\\) in CloudWatch Logs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "LogLevel": { + "markdownDescription": "Defines the Apache Airflow logs to send for the log type \\(e\\.g\\. `DagProcessingLogs`\\) to CloudWatch Logs\\. Valid values: `CRITICAL`, `ERROR`, `WARNING`, `INFO`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogLevel", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MWAA::Environment.NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of one or more security group IDs\\. Accepts up to 5 security group IDs\\. A security group must be attached to the same VPC as the subnets\\. To learn more, see [Security in your VPC on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/vpc-security.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of subnet IDs\\. **Required** to create an environment\\. Must be private subnets in two different availability zones\\. A subnet must be attached to the same VPC as the security group\\. To learn more, see [About networking on Amazon MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/networking-about.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetIds", + "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": { + "markdownDescription": "The description of the custom data identifier\\. The description can contain as many as 512 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "IgnoreWords": { + "items": { + "type": "string" + }, + "markdownDescription": "An array that lists specific character sequences \\(ignore words\\) to exclude from the results\\. If the text matched by the regular expression is the same as any string in this array, Amazon Macie ignores it\\. The array can contain as many as 10 ignore words\\. Each ignore word can contain 4\\-90 characters\\. Ignore words are case sensitive\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IgnoreWords", + "type": "array" + }, + "Keywords": { + "items": { + "type": "string" + }, + "markdownDescription": "An array that lists specific character sequences \\(keywords\\), one of which must be within proximity \\(`MaximumMatchDistance`\\) of the regular expression to match\\. The array can contain as many as 50 keywords\\. Each keyword can contain 3\\-90 characters\\. Keywords aren't case sensitive\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Keywords", + "type": "array" + }, + "MaximumMatchDistance": { + "markdownDescription": "The maximum number of characters that can exist between text that matches the regex pattern and the character sequences specified by the `Keywords` array\\. Amazon Macie includes or excludes a result based on the proximity of a keyword to text that matches the regex pattern\\. The distance can be 1\\-300 characters\\. The default value is 50\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaximumMatchDistance", + "type": "number" + }, + "Name": { + "markdownDescription": "A custom name for the custom data identifier\\. The name can contain as many as 128 characters\\. \nWe strongly recommend that you avoid including any sensitive data in the name of a custom data identifier\\. Other users of your account might be able to see the identifier's name, depending on the actions that they're allowed to perform in Amazon Macie\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Regex": { + "markdownDescription": "The regular expression \\(*regex*\\) that defines the pattern to match\\. The expression can contain as many as 512 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The action to perform on findings that meet the filter criteria \\(`FindingCriteria`\\)\\. Valid values are: \n+ ARCHIVE \\- Suppress \\(automatically archive\\) the findings\\.\n+ NOOP \\- Don't perform any action on the findings\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", + "type": "string" + }, + "Description": { + "markdownDescription": "A custom description of the filter\\. The description can contain as many as 512 characters\\. \nWe strongly recommend that you avoid including any sensitive data in the description of a filter\\. Other users might be able to see the filter's description, depending on the actions that they're allowed to perform in Amazon Macie\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "FindingCriteria": { + "$ref": "#/definitions/AWS::Macie::FindingsFilter.FindingCriteria", + "markdownDescription": "The criteria to use to filter findings\\. \n*Required*: Yes \n*Type*: [FindingCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-macie-findingsfilter-findingcriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FindingCriteria" + }, + "Name": { + "markdownDescription": "A custom name for the filter\\. The name must contain at least 3 characters and can contain as many as 64 characters\\. \nWe strongly recommend that you avoid including any sensitive data in the name of a filter\\. Other users might be able to see the filter's name, depending on the actions that they're allowed to perform in Amazon Macie\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Position": { + "markdownDescription": "The position of the filter in the list of saved filters on the Amazon Macie console\\. This value also determines the order in which the filter is applied to findings, relative to other filters that are also applied to the findings\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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, + "markdownDescription": "Specifies a condition that defines the property, operator, and value to use to filter the results\\. \n*Required*: No \n*Type*: [Criterion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-macie-findingsfilter-criterion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::Macie::FindingsFilter.CriterionAdditionalProperties" + } + }, + "title": "Criterion", + "type": "object" + } + }, + "type": "object" + }, + "AWS::Macie::FindingsFilter.FindingsFilterListItem": { + "additionalProperties": false, + "properties": { + "Id": { + "markdownDescription": "The unique identifier for the filter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "Name": { + "markdownDescription": "The custom name of the filter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The frequency with which Amazon Macie publishes updates to policy findings for an account\\. This includes publishing updates to AWS Security Hub and Amazon EventBridge \\(formerly called Amazon CloudWatch Events\\)\\. Valid values are: \n+ FIFTEEN\\_MINUTES\n+ ONE\\_HOUR\n+ SIX\\_HOURS\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FindingPublishingFrequency", + "type": "string" + }, + "Status": { + "markdownDescription": "The `MacieStatus` of the `Session`\\. Valid values include `ENABLED` and `PAUSED`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + } + }, + "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": { + "markdownDescription": "The unique identifier of the invitation to join the network sent to the account that creates the member\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InvitationId", + "type": "string" + }, + "MemberConfiguration": { + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.MemberConfiguration", + "markdownDescription": "Configuration properties of the member\\. \n*Required*: Yes \n*Type*: [MemberConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-memberconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MemberConfiguration" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.NetworkConfiguration", + "markdownDescription": "Configuration properties of the network to which the member belongs\\. \n*Required*: No \n*Type*: [NetworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkConfiguration" + }, + "NetworkId": { + "markdownDescription": "The unique identifier of the network to which the member belongs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The duration from the time that a proposal is created until it expires\\. If members cast neither the required number of `YES` votes to approve the proposal nor the number of `NO` votes required to reject it before the duration expires, the proposal is `EXPIRED` and `ProposalActions` are not carried out\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `168` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProposalDurationInHours", + "type": "number" + }, + "ThresholdComparator": { + "markdownDescription": "Determines whether the vote percentage must be greater than the `ThresholdPercentage` or must be greater than or equal to the `ThreholdPercentage` to be approved\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GREATER_THAN | GREATER_THAN_OR_EQUAL_TO` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThresholdComparator", + "type": "string" + }, + "ThresholdPercentage": { + "markdownDescription": "The percentage of votes among all members that must be `YES` for a proposal to be approved\\. For example, a `ThresholdPercentage` value of `50` indicates 50%\\. The `ThresholdComparator` determines the precise comparison\\. If a `ThresholdPercentage` value of `50` is specified on a network with 10 members, along with a `ThresholdComparator` value of `GREATER_THAN`, this indicates that 6 `YES` votes are required for the proposal to be approved\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThresholdPercentage", + "type": "number" + } + }, + "type": "object" + }, + "AWS::ManagedBlockchain::Member.MemberConfiguration": { + "additionalProperties": false, + "properties": { + "Description": { + "markdownDescription": "An optional description of the member\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "MemberFrameworkConfiguration": { + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.MemberFrameworkConfiguration", + "markdownDescription": "Configuration properties of the blockchain framework relevant to the member\\. \n*Required*: No \n*Type*: [MemberFrameworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-memberframeworkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MemberFrameworkConfiguration" + }, + "Name": { + "markdownDescription": "The name of the member\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^(?!-|[0-9])(?!.*-$)(?!.*?--)[a-zA-Z0-9-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::ManagedBlockchain::Member.MemberFabricConfiguration": { + "additionalProperties": false, + "properties": { + "AdminPassword": { + "markdownDescription": "The password for the member's initial administrative user\\. The `AdminPassword` must be at least eight characters long and no more than 32 characters\\. It must contain at least one uppercase letter, one lowercase letter, and one digit\\. It cannot have a single quotation mark \\(\u2018\\), a double quotation marks \\(\u201c\\), a forward slash\\(/\\), a backward slash\\(\\\\\\), @, or a space\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `32` \n*Pattern*: `^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?!.*[@'\\\\\"/])[a-zA-Z0-9\\S]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdminPassword", + "type": "string" + }, + "AdminUsername": { + "markdownDescription": "The user name for the member's initial administrative user\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `16` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdminUsername", + "type": "string" + } + }, + "required": [ + "AdminPassword", + "AdminUsername" + ], + "type": "object" + }, + "AWS::ManagedBlockchain::Member.MemberFrameworkConfiguration": { + "additionalProperties": false, + "properties": { + "MemberFabricConfiguration": { + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.MemberFabricConfiguration", + "markdownDescription": "Configuration properties for Hyperledger Fabric\\. \n*Required*: No \n*Type*: [MemberFabricConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-memberfabricconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MemberFabricConfiguration" + } + }, + "type": "object" + }, + "AWS::ManagedBlockchain::Member.NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "Description": { + "markdownDescription": "Attributes of the blockchain framework for the network\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Framework": { + "markdownDescription": "The blockchain framework that the network uses\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ETHEREUM | HYPERLEDGER_FABRIC` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Framework", + "type": "string" + }, + "FrameworkVersion": { + "markdownDescription": "The version of the blockchain framework that the network uses\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `8` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameworkVersion", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "NetworkFrameworkConfiguration": { + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.NetworkFrameworkConfiguration", + "markdownDescription": "Configuration properties relevant to the network for the blockchain framework that the network uses\\. \n*Required*: No \n*Type*: [NetworkFrameworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkframeworkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkFrameworkConfiguration" + }, + "VotingPolicy": { + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.VotingPolicy", + "markdownDescription": "The voting rules for the network to decide if a proposal is accepted\\. \n*Required*: Yes \n*Type*: [VotingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-votingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VotingPolicy" + } + }, + "required": [ + "Framework", + "FrameworkVersion", + "Name", + "VotingPolicy" + ], + "type": "object" + }, + "AWS::ManagedBlockchain::Member.NetworkFabricConfiguration": { + "additionalProperties": false, + "properties": { + "Edition": { + "markdownDescription": "The edition of Amazon Managed Blockchain that the network uses\\. Valid values are `standard` and `starter`\\. For more information, see \n*Required*: Yes \n*Type*: String \n*Allowed values*: `STANDARD | STARTER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Edition", + "type": "string" + } + }, + "required": [ + "Edition" + ], + "type": "object" + }, + "AWS::ManagedBlockchain::Member.NetworkFrameworkConfiguration": { + "additionalProperties": false, + "properties": { + "NetworkFabricConfiguration": { + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.NetworkFabricConfiguration", + "markdownDescription": "Configuration properties for Hyperledger Fabric for a member in a Managed Blockchain network using the Hyperledger Fabric framework\\. \n*Required*: No \n*Type*: [NetworkFabricConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkfabricconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkFabricConfiguration" + } + }, + "type": "object" + }, + "AWS::ManagedBlockchain::Member.VotingPolicy": { + "additionalProperties": false, + "properties": { + "ApprovalThresholdPolicy": { + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.ApprovalThresholdPolicy", + "markdownDescription": "Defines the rules for the network for voting on proposals, such as the percentage of `YES` votes required for the proposal to be approved and the duration of the proposal\\. The policy applies to all proposals and is specified when the network is created\\. \n*Required*: No \n*Type*: [ApprovalThresholdPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-approvalthresholdpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The unique identifier of the member to which the node belongs\\. Applies only to Hyperledger Fabric\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MemberId", + "type": "string" + }, + "NetworkId": { + "markdownDescription": "The unique identifier of the network for the node\\. \nEthereum public networks have the following `NetworkId`s: \n+ `n-ethereum-mainnet` \n+ `n-ethereum-rinkeby` \n+ `n-ethereum-ropsten` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkId", + "type": "string" + }, + "NodeConfiguration": { + "$ref": "#/definitions/AWS::ManagedBlockchain::Node.NodeConfiguration", + "markdownDescription": "Configuration properties of a peer node\\. \n*Required*: Yes \n*Type*: [NodeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-node-nodeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Availability Zone in which the node exists\\. Required for Ethereum nodes\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZone", + "type": "string" + }, + "InstanceType": { + "markdownDescription": "The Amazon Managed Blockchain instance type for the node\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Availability Zone that you want to create the flow in\\. These options are limited to the Availability Zones within the current AWS Region\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Source": { + "$ref": "#/definitions/AWS::MediaConnect::Flow.Source", + "markdownDescription": "The settings for the source that you want to use for the new flow\\. \n*Required*: Yes \n*Type*: [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source" + }, + "SourceFailoverConfig": { + "$ref": "#/definitions/AWS::MediaConnect::Flow.FailoverConfig", + "markdownDescription": "The settings for source failover\\. \n*Required*: No \n*Type*: [FailoverConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-failoverconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceFailoverConfig" + } + }, + "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": { + "markdownDescription": "The type of algorithm that is used for the encryption \\(such as aes128, aes192, or aes256\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Algorithm", + "type": "string" + }, + "ConstantInitializationVector": { + "markdownDescription": "A 128\\-bit, 16\\-byte hex value represented by a 32\\-character string, to be used with the key for encrypting content\\. This parameter is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConstantInitializationVector", + "type": "string" + }, + "DeviceId": { + "markdownDescription": "The value of one of the devices that you configured with your digital rights management \\(DRM\\) platform key provider\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceId", + "type": "string" + }, + "KeyType": { + "markdownDescription": "The type of key that is used for the encryption\\. If you don't specify a `keyType` value, the service uses the default setting \\(`static-key`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyType", + "type": "string" + }, + "Region": { + "markdownDescription": "The AWS Region that the API Gateway proxy endpoint was created in\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", + "type": "string" + }, + "ResourceId": { + "markdownDescription": "An identifier for the content\\. The service sends this value to the key server to identify the current endpoint\\. The resource ID is also known as the content ID\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceId", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that you created during setup \\(when you set up MediaConnect as a trusted entity\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "SecretArn": { + "markdownDescription": "The ARN of the secret that you created in AWS Secrets Manager to store the encryption key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretArn", + "type": "string" + }, + "Url": { + "markdownDescription": "The URL from the API Gateway proxy that you set up to talk to your key server\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "AWS::MediaConnect::Flow.FailoverConfig": { + "additionalProperties": false, + "properties": { + "FailoverMode": { + "type": "string" + }, + "RecoveryWindow": { + "markdownDescription": "The size of the buffer \\(delay\\) that the service maintains\\. A larger buffer means a longer delay in transmitting the stream, but more room for error correction\\. A smaller buffer means a shorter delay, but less room for error correction\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecoveryWindow", + "type": "number" + }, + "SourcePriority": { + "$ref": "#/definitions/AWS::MediaConnect::Flow.SourcePriority" + }, + "State": { + "markdownDescription": "The state of source failover on the flow\\. If the state is disabled, the flow can have only one source\\. If the state is enabled, the flow can have one or two sources\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaConnect::Flow.Source": { + "additionalProperties": false, + "properties": { + "Decryption": { + "$ref": "#/definitions/AWS::MediaConnect::Flow.Encryption", + "markdownDescription": "The type of encryption that is used on the content ingested from the source\\. \n*Required*: No \n*Type*: [Encryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-encryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Decryption" + }, + "Description": { + "markdownDescription": "A description of the source\\. This description is not visible outside of the current AWS account\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "EntitlementArn": { + "markdownDescription": "The ARN of the entitlement that allows you to subscribe to content that comes from another AWS account\\. The entitlement is set by the content originator and the ARN is generated as part of the originator\u2019s flow\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntitlementArn", + "type": "string" + }, + "IngestIp": { + "markdownDescription": "The IP address that the flow listens on for incoming content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IngestIp", + "type": "string" + }, + "IngestPort": { + "markdownDescription": "The port that the flow listens on for incoming content\\. If the protocol of the source is Zixi, the port must be set to 2088\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IngestPort", + "type": "number" + }, + "MaxBitrate": { + "markdownDescription": "The maximum bitrate for RIST, RTP, and RTP\\-FEC streams\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxBitrate", + "type": "number" + }, + "MaxLatency": { + "markdownDescription": "The maximum latency in milliseconds for a RIST or Zixi\\-based source\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxLatency", + "type": "number" + }, + "MinLatency": { + "markdownDescription": "The minimum latency in milliseconds for SRT\\-based streams\\. In streams that use the SRT protocol, this value that you set on your MediaConnect source or output represents the minimal potential latency of that connection\\. The latency of the stream is set to the highest number between the sender\u2019s minimum latency and the receiver\u2019s minimum latency\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinLatency", + "type": "number" + }, + "Name": { + "markdownDescription": "The name of the source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Protocol": { + "markdownDescription": "The protocol that is used by the source\\. For a full list of available protocols, see: [Source protocols](https://docs.aws.amazon.com/mediaconnect/latest/api/v1-flows-flowarn-source.html#v1-flows-flowarn-source-prop-setsourcerequest-protocol) in the *AWS Elemental MediaConnect API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "string" + }, + "SenderControlPort": { + "type": "number" + }, + "SenderIpAddress": { + "type": "string" + }, + "SourceArn": { + "markdownDescription": "The ARN of the source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceArn", + "type": "string" + }, + "SourceIngestPort": { + "markdownDescription": "The port that the flow will be listening on for incoming content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceIngestPort", + "type": "string" + }, + "SourceListenerAddress": { + "type": "string" + }, + "SourceListenerPort": { + "type": "number" + }, + "StreamId": { + "markdownDescription": "The stream ID that you want to use for the transport\\. This parameter applies only to Zixi\\-based streams\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamId", + "type": "string" + }, + "VpcInterfaceName": { + "markdownDescription": "The name of the VPC interface that the source content comes from\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcInterfaceName", + "type": "string" + }, + "WhitelistCidr": { + "markdownDescription": "The range of IP addresses that are allowed to contribute content to your source\\. Format the IP addresses as a Classless Inter\\-Domain Routing \\(CIDR\\) block; for example, 10\\.0\\.0\\.0/16\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The percentage of the entitlement data transfer fee that you want the subscriber to be responsible for\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataTransferSubscriberFeePercent", + "type": "number" + }, + "Description": { + "markdownDescription": "A description of the entitlement\\. This description appears only on the MediaConnect console and is not visible outside of the current AWS account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::MediaConnect::FlowEntitlement.Encryption", + "markdownDescription": "The type of encryption that MediaConnect will use on the output that is associated with the entitlement\\. \n*Required*: No \n*Type*: [Encryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowentitlement-encryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encryption" + }, + "EntitlementStatus": { + "markdownDescription": "An indication of whether the new entitlement should be enabled or disabled as soon as it is created\\. If you don\u2019t specify the entitlementStatus field in your request, MediaConnect sets it to ENABLED\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntitlementStatus", + "type": "string" + }, + "FlowArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FlowArn", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the entitlement\\. This value must be unique within the current flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Subscribers": { + "items": { + "type": "string" + }, + "markdownDescription": "The AWS account IDs that you want to share your content with\\. The receiving accounts \\(subscribers\\) will be allowed to create their own flows using your content as the source\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subscribers", + "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": { + "markdownDescription": "The type of algorithm that is used for the encryption \\(such as aes128, aes192, or aes256\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Algorithm", + "type": "string" + }, + "ConstantInitializationVector": { + "markdownDescription": "A 128\\-bit, 16\\-byte hex value represented by a 32\\-character string, to be used with the key for encrypting content\\. This parameter is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConstantInitializationVector", + "type": "string" + }, + "DeviceId": { + "markdownDescription": "The value of one of the devices that you configured with your digital rights management \\(DRM\\) platform key provider\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceId", + "type": "string" + }, + "KeyType": { + "markdownDescription": "The type of key that is used for the encryption\\. If you don't specify a `keyType` value, the service uses the default setting \\(`static-key`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyType", + "type": "string" + }, + "Region": { + "markdownDescription": "The AWS Region that the API Gateway proxy endpoint was created in\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", + "type": "string" + }, + "ResourceId": { + "markdownDescription": "An identifier for the content\\. The service sends this value to the key server to identify the current endpoint\\. The resource ID is also known as the content ID\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceId", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that you created during setup \\(when you set up MediaConnect as a trusted entity\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "SecretArn": { + "markdownDescription": "The ARN of the secret that you created in AWS Secrets Manager to store the encryption key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretArn", + "type": "string" + }, + "Url": { + "markdownDescription": "The URL from the API Gateway proxy that you set up to talk to your key server\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The range of IP addresses that are allowed to initiate output requests to this flow\\. Format the IP addresses as a Classless Inter\\-Domain Routing \\(CIDR\\) block; for example, 10\\.0\\.0\\.0/16\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CidrAllowList", + "type": "array" + }, + "Description": { + "markdownDescription": "A description of the output\\. This description is not visible outside of the current AWS account even if the account grants entitlements to other accounts\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Destination": { + "markdownDescription": "The IP address where you want to send the output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination", + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::MediaConnect::FlowOutput.Encryption", + "markdownDescription": "The encryption credentials that you want to use for the output\\. \n*Required*: No \n*Type*: [Encryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowoutput-encryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encryption" + }, + "FlowArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FlowArn", + "type": "string" + }, + "MaxLatency": { + "markdownDescription": "The maximum latency in milliseconds for Zixi\\-based streams\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxLatency", + "type": "number" + }, + "MinLatency": { + "markdownDescription": "The minimum latency in milliseconds for SRT\\-based streams\\. In streams that use the SRT protocol, this value that you set on your MediaConnect source or output represents the minimal potential latency of that connection\\. The latency of the stream is set to the highest number between the sender\u2019s minimum latency and the receiver\u2019s minimum latency\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinLatency", + "type": "number" + }, + "Name": { + "markdownDescription": "The name of the VPC interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Port": { + "markdownDescription": "The port to use when MediaConnect distributes content to the output\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + }, + "Protocol": { + "markdownDescription": "The protocol to use for the output\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "string" + }, + "RemoteId": { + "markdownDescription": "The identifier that is assigned to the Zixi receiver\\. This parameter applies only to outputs that use Zixi pull\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemoteId", + "type": "string" + }, + "SmoothingLatency": { + "markdownDescription": "The smoothing latency in milliseconds for RIST, RTP, and RTP\\-FEC streams\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SmoothingLatency", + "type": "number" + }, + "StreamId": { + "markdownDescription": "The stream ID that you want to use for the transport\\. This parameter applies only to Zixi\\-based streams\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamId", + "type": "string" + }, + "VpcInterfaceAttachment": { + "$ref": "#/definitions/AWS::MediaConnect::FlowOutput.VpcInterfaceAttachment", + "markdownDescription": "The VPC interface that you want to send your output to\\. \n*Required*: No \n*Type*: [VpcInterfaceAttachment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowoutput-vpcinterfaceattachment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The type of algorithm that is used for the encryption \\(such as aes128, aes192, or aes256\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Algorithm", + "type": "string" + }, + "KeyType": { + "markdownDescription": "The type of key that is used for the encryption\\. If you don't specify a `keyType` value, the service uses the default setting \\(`static-key`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyType", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that you created during setup \\(when you set up MediaConnect as a trusted entity\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "SecretArn": { + "markdownDescription": "The ARN of the secret that you created in AWS Secrets Manager to store the encryption key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretArn", + "type": "string" + } + }, + "required": [ + "RoleArn", + "SecretArn" + ], + "type": "object" + }, + "AWS::MediaConnect::FlowOutput.VpcInterfaceAttachment": { + "additionalProperties": false, + "properties": { + "VpcInterfaceName": { + "markdownDescription": "The name of the VPC interface that you want to send your output to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The type of encryption that is used on the content ingested from the source\\. \n*Required*: No \n*Type*: [Encryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowsource-encryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Decryption" + }, + "Description": { + "markdownDescription": "A description of the source\\. This description is not visible outside of the current AWS account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "EntitlementArn": { + "markdownDescription": "The ARN of the entitlement that allows you to subscribe to the flow\\. The entitlement is set by the content originator, and the ARN is generated as part of the originator's flow\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntitlementArn", + "type": "string" + }, + "FlowArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the flow\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FlowArn", + "type": "string" + }, + "IngestPort": { + "markdownDescription": "The port that the flow listens on for incoming content\\. If the protocol of the source is Zixi, the port must be set to 2088\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IngestPort", + "type": "number" + }, + "MaxBitrate": { + "markdownDescription": "The maximum bitrate for RIST, RTP, and RTP\\-FEC streams\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxBitrate", + "type": "number" + }, + "MaxLatency": { + "markdownDescription": "The maximum latency in milliseconds\\. This parameter applies only to RIST\\-based, Zixi\\-based, and Fujitsu\\-based streams\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxLatency", + "type": "number" + }, + "Name": { + "markdownDescription": "The name of the source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Protocol": { + "markdownDescription": "The protocol that the source uses to deliver the content to MediaConnect\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "string" + }, + "StreamId": { + "markdownDescription": "The stream ID that you want to use for the transport\\. This parameter applies only to Zixi\\-based streams\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamId", + "type": "string" + }, + "VpcInterfaceName": { + "markdownDescription": "The name of the VPC interface that you want to send your output to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcInterfaceName", + "type": "string" + }, + "WhitelistCidr": { + "markdownDescription": "The range of IP addresses that are allowed to contribute content to your source\\. Format the IP addresses as a Classless Inter\\-Domain Routing \\(CIDR\\) block; for example, 10\\.0\\.0\\.0/16\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The type of algorithm that is used for the encryption \\(such as aes128, aes192, or aes256\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Algorithm", + "type": "string" + }, + "ConstantInitializationVector": { + "markdownDescription": "A 128\\-bit, 16\\-byte hex value represented by a 32\\-character string, to be used with the key for encrypting content\\. This parameter is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConstantInitializationVector", + "type": "string" + }, + "DeviceId": { + "markdownDescription": "The value of one of the devices that you configured with your digital rights management \\(DRM\\) platform key provider\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceId", + "type": "string" + }, + "KeyType": { + "markdownDescription": "The type of key that is used for the encryption\\. If you don't specify a `keyType` value, the service uses the default setting \\(`static-key`\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyType", + "type": "string" + }, + "Region": { + "markdownDescription": "The AWS Region that the API Gateway proxy endpoint was created in\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", + "type": "string" + }, + "ResourceId": { + "markdownDescription": "An identifier for the content\\. The service sends this value to the key server to identify the current endpoint\\. The resource ID is also known as the content ID\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceId", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that you created during setup \\(when you set up MediaConnect as a trusted entity\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "SecretArn": { + "markdownDescription": "The ARN of the secret that you created in AWS Secrets Manager to store the encryption key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretArn", + "type": "string" + }, + "Url": { + "markdownDescription": "The URL from the API Gateway proxy that you set up to talk to your key server\\. This parameter is required for SPEKE encryption and is not valid for static key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FlowArn", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the VPC Interface\\. This value must be unique within the current flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that you created when you set up MediaConnect as a trusted service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The VPC security groups that you want MediaConnect to use for your VPC configuration\\. You must include at least one security group in the request\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SubnetId": { + "markdownDescription": "The subnet IDs that you want to use for your VPC interface\\. \nA range of IP addresses in your VPC\\. When you create your VPC, you specify a range of IPv4 addresses for the VPC in the form of a Classless Inter\\-Domain Routing \\(CIDR\\) block; for example, 10\\.0\\.0\\.0/16\\. This is the primary CIDR block for your VPC\\. When you create a subnet for your VPC, you specify the CIDR block for the subnet, which is a subset of the VPC CIDR block\\. \nThe subnets that you use across all VPC interfaces on the flow must be in the same Availability Zone as the flow\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Accelerated transcoding can significantly speed up jobs with long, visually complex content\\. Outputs that use this feature incur pro\\-tier pricing\\. For information about feature limitations, For more information, see [Job Limitations for Accelerated Transcoding in AWS Elemental MediaConvert](https://docs.aws.amazon.com/mediaconvert/latest/ug/job-requirements.html) in the *AWS Elemental MediaConvert User Guide*\\. \n*Required*: No \n*Type*: [AccelerationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconvert-jobtemplate-accelerationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccelerationSettings" + }, + "Category": { + "markdownDescription": "Optional\\. A category for the job template you are creating \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Category", + "type": "string" + }, + "Description": { + "markdownDescription": "Optional\\. A description of the job template you are creating\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "HopDestinations": { + "items": { + "$ref": "#/definitions/AWS::MediaConvert::JobTemplate.HopDestination" + }, + "markdownDescription": "Optional\\. Configuration for a destination queue to which the job can hop once a customer\\-defined minimum wait time has passed\\. For more information, see [Setting Up Queue Hopping to Avoid Long Waits](https://docs.aws.amazon.com/mediaconvert/latest/ug/setting-up-queue-hopping-to-avoid-long-waits.html) in the *AWS Elemental MediaConvert User Guide*\\. \n*Required*: No \n*Type*: List of [HopDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconvert-jobtemplate-hopdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HopDestinations", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the job template you are creating\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Priority": { + "markdownDescription": "Specify the relative priority for this job\\. In any given queue, the service begins processing the job with the highest value first\\. When more than one job has the same priority, the service begins processing the job that you submitted first\\. If you don't specify a priority, the service uses the default value 0\\. Minimum: \\-50 Maximum: 50 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", + "type": "number" + }, + "Queue": { + "markdownDescription": "Optional\\. The queue that jobs created from this template are assigned to\\. Specify the Amazon Resource Name \\(ARN\\) of the queue\\. For example, arn:aws:mediaconvert:us\\-west\\-2:505474453218:queues/Default\\. If you don't specify this, jobs will go to the default queue\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Queue", + "type": "string" + }, + "SettingsJson": { + "markdownDescription": "Specify, in JSON format, the transcoding job settings for this job template\\. This specification must conform to the AWS Elemental MediaConvert job validation\\. For information about forming this specification, see the Remarks section later in this topic\\. \nFor more information about MediaConvert job templates, see [Working with AWS Elemental MediaConvert Job Templates](https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-job-templates.html) in the *AWS Elemental MediaConvert User Guide*\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SettingsJson", + "type": "object" + }, + "StatusUpdateInterval": { + "markdownDescription": "Specify how often MediaConvert sends STATUS\\_UPDATE events to Amazon CloudWatch Events\\. Set the interval, in seconds, between status updates\\. MediaConvert sends an update at this interval from the time the service begins processing your job to the time it completes the transcode or encounters an error\\. \nSpecify one of the following enums: \nSECONDS\\_10 \nSECONDS\\_12 \nSECONDS\\_15 \nSECONDS\\_20 \nSECONDS\\_30 \nSECONDS\\_60 \nSECONDS\\_120 \nSECONDS\\_180 \nSECONDS\\_240 \nSECONDS\\_300 \nSECONDS\\_360 \nSECONDS\\_420 \nSECONDS\\_480 \nSECONDS\\_540 \nSECONDS\\_600 \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusUpdateInterval", + "type": "string" + }, + "Tags": { + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Specify the conditions when the service will run your job with accelerated transcoding\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "AWS::MediaConvert::JobTemplate.HopDestination": { + "additionalProperties": false, + "properties": { + "Priority": { + "markdownDescription": "Optional\\. When you set up a job to use queue hopping, you can specify a different relative priority for the job in the destination queue\\. If you don't specify, the relative priority will remain the same as in the previous queue\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", + "type": "number" + }, + "Queue": { + "markdownDescription": "Optional unless the job is submitted on the default queue\\. When you set up a job to use queue hopping, you can specify a destination queue\\. This queue cannot be the original queue to which the job is submitted\\. If the original queue isn't the default queue and you don't specify the destination queue, the job will move to the default queue\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Queue", + "type": "string" + }, + "WaitMinutes": { + "markdownDescription": "Required for setting up a job to use queue hopping\\. Minimum wait time in minutes until the job can hop to the destination queue\\. Valid range is 1 to 1440 minutes, inclusive\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The new category for the preset, if you are changing it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Category", + "type": "string" + }, + "Description": { + "markdownDescription": "The new description for the preset, if you are changing it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the preset that you are modifying\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "SettingsJson": { + "markdownDescription": "Specify, in JSON format, the transcoding job settings for this output preset\\. This specification must conform to the AWS Elemental MediaConvert job validation\\. For information about forming this specification, see the Remarks section later in this topic\\. \nFor more information about MediaConvert output presets, see [Working with AWS Elemental MediaConvert Output Presets](https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-presets.html) in the *AWS Elemental MediaConvert User Guide*\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SettingsJson", + "type": "object" + }, + "Tags": { + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Optional\\. A description of the queue that you are creating\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the queue that you are creating\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "PricingPlan": { + "markdownDescription": "When you use AWS CloudFormation, you can create only on\\-demand queues\\. Therefore, always set `PricingPlan` to the value \"ON\\_DEMAND\" when declaring an AWS::MediaConvert::Queue in your AWS CloudFormation template\\. \nTo create a reserved queue, use the AWS Elemental MediaConvert console at https://console\\.aws\\.amazon\\.com/mediaconvert to set up a contract\\. For more information, see [Working with AWS Elemental MediaConvert Queues](https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-queues.html) in the *AWS Elemental MediaConvert User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PricingPlan", + "type": "string" + }, + "Status": { + "markdownDescription": "Initial state of the queue\\. Queues can be either ACTIVE or PAUSED\\. If you create a paused queue, then jobs that you send to that queue won't begin\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + }, + "Tags": { + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Specification of CDI inputs for this channel\\. \n*Required*: No \n*Type*: [CdiInputSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-cdiinputspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CdiInputSpecification" + }, + "ChannelClass": { + "markdownDescription": "The class for this channel\\. For a channel with two pipelines, the class is STANDARD\\. For a channel with one pipeline, the class is SINGLE\\_PIPELINE\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelClass", + "type": "string" + }, + "Destinations": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputDestination" + }, + "markdownDescription": "The settings that identify the destination for the outputs in this MediaLive output package\\. \n*Required*: No \n*Type*: List of [OutputDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destinations", + "type": "array" + }, + "EncoderSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.EncoderSettings", + "markdownDescription": "The encoding configuration for the output content\\. \n*Required*: No \n*Type*: [EncoderSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-encodersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncoderSettings" + }, + "InputAttachments": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputAttachment" + }, + "markdownDescription": "The list of input attachments for the channel\\. \n*Required*: No \n*Type*: List of [InputAttachment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputattachment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputAttachments", + "type": "array" + }, + "InputSpecification": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputSpecification", + "markdownDescription": "The input specification for this channel\\. It specifies the key characteristics of the inputs for this channel: the maximum bitrate, the resolution, and the codec\\. \n*Required*: No \n*Type*: [InputSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputSpecification" + }, + "LogLevel": { + "markdownDescription": "The verbosity for logging activity for this channel\\. Charges for logging \\(which are generated through Amazon CloudWatch Logging\\) are higher for higher verbosities\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogLevel", + "type": "string" + }, + "Name": { + "markdownDescription": "A name for this audio selector\\. The AudioDescription \\(in an output\\) references this name in order to identify a specific input audio to include in that output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The IAM role for MediaLive to assume when running this channel\\. The role is identified by its ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "Tags": { + "markdownDescription": "A collection of tags for this channel\\. Each tag is a key\\-value pair\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "object" + }, + "Vpc": { + "$ref": "#/definitions/AWS::MediaLive::Channel.VpcOutputSettings", + "markdownDescription": "Settings to enable VPC mode in the channel, so that the endpoints for all outputs are in your VPC\\. \n*Required*: No \n*Type*: [VpcOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-vpcoutputsettings.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Vpc" + } + }, + "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": { + "markdownDescription": "The average bitrate in bits/second\\. Valid values depend on the rate control mode and profile\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bitrate", + "type": "number" + }, + "CodingMode": { + "markdownDescription": "Mono, stereo, or 5\\.1 channel layout\\. Valid values depend on the rate control mode and profile\\. The adReceiverMix setting receives a stereo description plus control track, and emits a mono AAC encode of the description track, with control data emitted in the PES header as per ETSI TS 101 154 Annex E\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodingMode", + "type": "string" + }, + "InputType": { + "markdownDescription": "Set to broadcasterMixedAd when the input contains pre\\-mixed main audio \\+ AD \\(narration\\) as a stereo pair\\. The Audio Type field \\(audioType\\) will be set to 3, which signals to downstream systems that this stream contains broadcaster mixed AD\\. Note that the input received by the encoder must contain pre\\-mixed audio; MediaLive does not perform the mixing\\. The values in audioTypeControl and audioType \\(in AudioDescription\\) are ignored when set to broadcasterMixedAd\\. Leave this set to normal when the input does not contain pre\\-mixed audio \\+ AD\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputType", + "type": "string" + }, + "Profile": { + "markdownDescription": "The AAC profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Profile", + "type": "string" + }, + "RateControlMode": { + "markdownDescription": "The rate control mode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RateControlMode", + "type": "string" + }, + "RawFormat": { + "markdownDescription": "Sets the LATM/LOAS AAC output for raw containers\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RawFormat", + "type": "string" + }, + "SampleRate": { + "markdownDescription": "The sample rate in Hz\\. Valid values depend on the rate control mode and profile\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SampleRate", + "type": "number" + }, + "Spec": { + "markdownDescription": "Uses MPEG\\-2 AAC audio instead of MPEG\\-4 AAC audio for raw or MPEG\\-2 Transport Stream containers\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Spec", + "type": "string" + }, + "VbrQuality": { + "markdownDescription": "The VBR quality level\\. This is used only if rateControlMode is VBR\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VbrQuality", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Ac3Settings": { + "additionalProperties": false, + "properties": { + "Bitrate": { + "markdownDescription": "The average bitrate in bits/second\\. Valid bitrates depend on the coding mode\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bitrate", + "type": "number" + }, + "BitstreamMode": { + "markdownDescription": "Specifies the bitstream mode \\(bsmod\\) for the emitted AC\\-3 stream\\. For more information about these values, see ATSC A/52\\-2012\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BitstreamMode", + "type": "string" + }, + "CodingMode": { + "markdownDescription": "The Dolby Digital coding mode\\. This determines the number of channels\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodingMode", + "type": "string" + }, + "Dialnorm": { + "markdownDescription": "Sets the dialnorm for the output\\. If excluded and the input audio is Dolby Digital, dialnorm is passed through\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dialnorm", + "type": "number" + }, + "DrcProfile": { + "markdownDescription": "If set to filmStandard, adds dynamic range compression signaling to the output bitstream as defined in the Dolby Digital specification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DrcProfile", + "type": "string" + }, + "LfeFilter": { + "markdownDescription": "When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to encoding\\. This is valid only in codingMode32Lfe mode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LfeFilter", + "type": "string" + }, + "MetadataControl": { + "markdownDescription": "When set to followInput, encoder metadata is sourced from the DD, DD\\+, or DolbyE decoder that supplies this audio data\\. If the audio is supplied from one of these streams, the static metadata settings are used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetadataControl", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AncillarySourceSettings": { + "additionalProperties": false, + "properties": { + "SourceAncillaryChannelNumber": { + "markdownDescription": "Specifies the number \\(1 to 4\\) of the captions channel you want to extract from the ancillary captions\\. If you plan to convert the ancillary captions to another format, complete this field\\. If you plan to choose Embedded as the captions destination in the output \\(to pass through all the channels in the ancillary captions\\), leave this field blank because MediaLive ignores the field\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceAncillaryChannelNumber", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.ArchiveCdnSettings": { + "additionalProperties": false, + "properties": { + "ArchiveS3Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveS3Settings", + "markdownDescription": "Sets up Amazon S3 as the destination for this Archive output\\. \n*Required*: No \n*Type*: [ArchiveS3Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archives3settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArchiveS3Settings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.ArchiveContainerSettings": { + "additionalProperties": false, + "properties": { + "M2tsSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.M2tsSettings", + "markdownDescription": "The settings for the M2TS in the archive output\\. \n*Required*: No \n*Type*: [M2tsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "M2tsSettings" + }, + "RawSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.RawSettings", + "markdownDescription": "The settings for Raw archive output type\\. \n*Required*: No \n*Type*: [RawSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rawsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RawSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.ArchiveGroupSettings": { + "additionalProperties": false, + "properties": { + "ArchiveCdnSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveCdnSettings", + "markdownDescription": "Settings to configure the destination of an Archive output\\. \n*Required*: No \n*Type*: [ArchiveCdnSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivecdnsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArchiveCdnSettings" + }, + "Destination": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef", + "markdownDescription": "A directory and base file name where archive files should be written\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" + }, + "RolloverInterval": { + "markdownDescription": "The number of seconds to write to an archive file before closing and starting a new one\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RolloverInterval", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.ArchiveOutputSettings": { + "additionalProperties": false, + "properties": { + "ContainerSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveContainerSettings", + "markdownDescription": "The settings that are specific to the container type of the file\\. \n*Required*: No \n*Type*: [ArchiveContainerSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivecontainersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerSettings" + }, + "Extension": { + "markdownDescription": "The output file extension\\. If excluded, this is auto\\-selected from the container type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Extension", + "type": "string" + }, + "NameModifier": { + "markdownDescription": "A string that is concatenated to the end of the destination file name\\. The string is required for multiple outputs of the same type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NameModifier", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.ArchiveS3Settings": { + "additionalProperties": false, + "properties": { + "CannedAcl": { + "markdownDescription": "Specify the canned ACL to apply to each S3 request\\. Defaults to none\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The indices and gain values for each input channel that should be remixed into this output channel\\. \n*Required*: No \n*Type*: List of [InputChannelLevel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputchannellevel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputChannelLevels", + "type": "array" + }, + "OutputChannel": { + "markdownDescription": "The index of the output channel that is being produced\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputChannel", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioCodecSettings": { + "additionalProperties": false, + "properties": { + "AacSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AacSettings", + "markdownDescription": "The setup of the AAC audio codec in the output\\. \n*Required*: No \n*Type*: [AacSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AacSettings" + }, + "Ac3Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Ac3Settings", + "markdownDescription": "The setup of an AC3 audio codec in the output\\. \n*Required*: No \n*Type*: [Ac3Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ac3settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ac3Settings" + }, + "Eac3Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Eac3Settings", + "markdownDescription": "The setup of an EAC3 audio codec in the output\\. \n*Required*: No \n*Type*: [Eac3Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Eac3Settings" + }, + "Mp2Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Mp2Settings", + "markdownDescription": "The setup of an MP2 audio codec in the output\\. \n*Required*: No \n*Type*: [Mp2Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mp2settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mp2Settings" + }, + "PassThroughSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.PassThroughSettings", + "markdownDescription": "The setup to pass through the Dolby audio codec to the output\\. \n*Required*: No \n*Type*: [PassThroughSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-passthroughsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PassThroughSettings" + }, + "WavSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.WavSettings", + "markdownDescription": "Settings for audio encoded with the WAV codec\\. \n*Required*: No \n*Type*: [WavSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-wavsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WavSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioDescription": { + "additionalProperties": false, + "properties": { + "AudioNormalizationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioNormalizationSettings", + "markdownDescription": "The advanced audio normalization settings\\. \n*Required*: No \n*Type*: [AudioNormalizationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audionormalizationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioNormalizationSettings" + }, + "AudioSelectorName": { + "markdownDescription": "The name of the AudioSelector that is used as the source for this AudioDescription\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioSelectorName", + "type": "string" + }, + "AudioType": { + "markdownDescription": "Applies only if audioTypeControl is useConfigured\\. The values for audioType are defined in ISO\\-IEC 13818\\-1\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioType", + "type": "string" + }, + "AudioTypeControl": { + "markdownDescription": "Determines how audio type is determined\\. followInput: If the input contains an ISO 639 audioType, then that value is passed through to the output\\. If the input contains no ISO 639 audioType, the value in Audio Type is included in the output\\. useConfigured: The value in Audio Type is included in the output\\. Note that this field and audioType are both ignored if inputType is broadcasterMixedAd\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioTypeControl", + "type": "string" + }, + "AudioWatermarkingSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioWatermarkSettings", + "markdownDescription": "Settings to configure one or more solutions that insert audio watermarks in the audio encode \n*Required*: No \n*Type*: [AudioWatermarkSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiowatermarksettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioWatermarkingSettings" + }, + "CodecSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioCodecSettings", + "markdownDescription": "The audio codec settings\\. \n*Required*: No \n*Type*: [AudioCodecSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiocodecsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodecSettings" + }, + "LanguageCode": { + "markdownDescription": "Indicates the language of the audio output track\\. Used only if languageControlMode is useConfigured, or there is no ISO 639 language code specified in the input\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LanguageCode", + "type": "string" + }, + "LanguageCodeControl": { + "markdownDescription": "Choosing followInput causes the ISO 639 language code of the output to follow the ISO 639 language code of the input\\. The languageCode setting is used when useConfigured is set, or when followInput is selected but there is no ISO 639 language code specified by the input\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LanguageCodeControl", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of this AudioDescription\\. Outputs use this name to uniquely identify this AudioDescription\\. Description names should be unique within this channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "RemixSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.RemixSettings", + "markdownDescription": "The settings that control how input audio channels are remixed into the output audio channels\\. \n*Required*: No \n*Type*: [RemixSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-remixsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RemixSettings" + }, + "StreamName": { + "markdownDescription": "Used for Microsoft Smooth and Apple HLS outputs\\. Indicates the name displayed by the player \\(for example, English or Director Commentary\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioHlsRenditionSelection": { + "additionalProperties": false, + "properties": { + "GroupId": { + "markdownDescription": "Specifies the GROUP\\-ID in the \\#EXT\\-X\\-MEDIA tag of the target HLS audio rendition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupId", + "type": "string" + }, + "Name": { + "markdownDescription": "Specifies the NAME in the \\#EXT\\-X\\-MEDIA tag of the target HLS audio rendition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioLanguageSelection": { + "additionalProperties": false, + "properties": { + "LanguageCode": { + "markdownDescription": "Selects a specific three\\-letter language code from within an audio source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LanguageCode", + "type": "string" + }, + "LanguageSelectionPolicy": { + "markdownDescription": "When set to \"strict,\" the transport stream demux strictly identifies audio streams by their language descriptor\\. If a PMT update occurs such that an audio stream matching the initially selected language is no longer present, then mute is encoded until the language returns\\. If set to \"loose,\" then on a PMT update the demux chooses another audio stream in the program with the same stream type if it can't find one with the same language\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LanguageSelectionPolicy", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioNormalizationSettings": { + "additionalProperties": false, + "properties": { + "Algorithm": { + "markdownDescription": "The audio normalization algorithm to use\\. itu17701 conforms to the CALM Act specification\\. itu17702 conforms to the EBU R\\-128 specification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Algorithm", + "type": "string" + }, + "AlgorithmControl": { + "markdownDescription": "When set to correctAudio, the output audio is corrected using the chosen algorithm\\. If set to measureOnly, the audio is measured but not adjusted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlgorithmControl", + "type": "string" + }, + "TargetLkfs": { + "markdownDescription": "The Target LKFS\\(loudness\\) to adjust volume to\\. If no value is entered, a default value is used according to the chosen algorithm\\. The CALM Act \\(1770\\-1\\) recommends a target of \\-24 LKFS\\. The EBU R\\-128 specification \\(1770\\-2\\) recommends a target of \\-23 LKFS\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetLkfs", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioOnlyHlsSettings": { + "additionalProperties": false, + "properties": { + "AudioGroupId": { + "markdownDescription": "Specifies the group that the audio rendition belongs to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioGroupId", + "type": "string" + }, + "AudioOnlyImage": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation", + "markdownDescription": "Used with an audio\\-only stream\\. It must be a \\.jpg or \\.png file\\. If given, this image is used as the cover art for the audio\\-only output\\. Ideally, it should be formatted for an iPhone screen for two reasons\\. The iPhone does not resize the image; instead, it crops a centered image on the top/bottom and left/right\\. Additionally, this image file gets saved bit\\-for\\-bit into every 10\\-second segment file, so it increases bandwidth by \\{image file size\\} \\* \\{segment count\\} \\* \\{user count\\.\\}\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioOnlyImage" + }, + "AudioTrackType": { + "markdownDescription": "Four types of audio\\-only tracks are supported: Audio\\-Only Variant Stream The client can play back this audio\\-only stream instead of video in low\\-bandwidth scenarios\\. Represented as an EXT\\-X\\-STREAM\\-INF in the HLS manifest\\. Alternate Audio, Auto Select, Default Alternate rendition that the client should try to play back by default\\. Represented as an EXT\\-X\\-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto Select, Not Default Alternate rendition that the client might try to play back by default\\. Represented as an EXT\\-X\\-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate Audio, not Auto Select Alternate rendition that the client will not try to play back by default\\. Represented as an EXT\\-X\\-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioTrackType", + "type": "string" + }, + "SegmentType": { + "markdownDescription": "Specifies the segment type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioPidSelection": { + "additionalProperties": false, + "properties": { + "Pid": { + "markdownDescription": "Select the audio by this PID\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Pid", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioSelector": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "A name for this AudioSelector\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "SelectorSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioSelectorSettings", + "markdownDescription": "Information about the specific audio to extract from the input\\. \n*Required*: No \n*Type*: [AudioSelectorSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselectorsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SelectorSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioSelectorSettings": { + "additionalProperties": false, + "properties": { + "AudioHlsRenditionSelection": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioHlsRenditionSelection", + "markdownDescription": "Selector for HLS audio rendition\\. \n*Required*: No \n*Type*: [AudioHlsRenditionSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiohlsrenditionselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioHlsRenditionSelection" + }, + "AudioLanguageSelection": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioLanguageSelection", + "markdownDescription": "The language code of the audio to select\\. \n*Required*: No \n*Type*: [AudioLanguageSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiolanguageselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioLanguageSelection" + }, + "AudioPidSelection": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioPidSelection", + "markdownDescription": "The PID of the audio to select\\. \n*Required*: No \n*Type*: [AudioPidSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiopidselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioPidSelection" + }, + "AudioTrackSelection": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioTrackSelection", + "markdownDescription": "Information about the audio track to extract\\. \n*Required*: No \n*Type*: [AudioTrackSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiotrackselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioTrackSelection" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioSilenceFailoverSettings": { + "additionalProperties": false, + "properties": { + "AudioSelectorName": { + "markdownDescription": "The name of the audio selector in the input that MediaLive should monitor to detect silence\\. Select your most important rendition\\. If you didn't create an audio selector in this input, leave blank\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioSelectorName", + "type": "string" + }, + "AudioSilenceThresholdMsec": { + "markdownDescription": "The amount of time \\(in milliseconds\\) that the active input must be silent before automatic input failover occurs\\. Silence is defined as audio loss or audio quieter than \\-50 dBFS\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioSilenceThresholdMsec", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioTrack": { + "additionalProperties": false, + "properties": { + "Track": { + "markdownDescription": "1\\-based integer value that maps to a specific audio track \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Track", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioTrackSelection": { + "additionalProperties": false, + "properties": { + "Tracks": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioTrack" + }, + "markdownDescription": "Selects one or more unique audio tracks from within a source\\. \n*Required*: No \n*Type*: List of [AudioTrack](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiotrack.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tracks", + "type": "array" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioWatermarkSettings": { + "additionalProperties": false, + "properties": { + "NielsenWatermarksSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.NielsenWatermarksSettings", + "markdownDescription": "Settings to configure Nielsen Watermarks in the audio encode \n*Required*: No \n*Type*: [NielsenWatermarksSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-nielsenwatermarkssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NielsenWatermarksSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AutomaticInputFailoverSettings": { + "additionalProperties": false, + "properties": { + "ErrorClearTimeMsec": { + "markdownDescription": "This clear time defines the requirement a recovered input must meet to be considered healthy\\. The input must have no failover conditions for this length of time\\. Enter a time in milliseconds\\. This value is particularly important if the input\\_preference for the failover pair is set to PRIMARY\\_INPUT\\_PREFERRED, because after this time, MediaLive will switch back to the primary input\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorClearTimeMsec", + "type": "number" + }, + "FailoverConditions": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.FailoverCondition" + }, + "markdownDescription": "A list of failover conditions\\. If any of these conditions occur, MediaLive will perform a failover to the other input\\. \n*Required*: No \n*Type*: List of [FailoverCondition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-failovercondition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailoverConditions", + "type": "array" + }, + "InputPreference": { + "markdownDescription": "Input preference when deciding which input to make active when a previously failed input has recovered\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputPreference", + "type": "string" + }, + "SecondaryInputId": { + "markdownDescription": "The input ID of the secondary input in the automatic input failover pair\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryInputId", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AvailBlanking": { + "additionalProperties": false, + "properties": { + "AvailBlankingImage": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation", + "markdownDescription": "The blanking image to be used\\. Keep empty for solid black\\. Only \\.bmp and \\.png images are supported\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailBlankingImage" + }, + "State": { + "markdownDescription": "When set to enabled, the video, audio, and captions are blanked when insertion metadata is added\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AvailConfiguration": { + "additionalProperties": false, + "properties": { + "AvailSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AvailSettings", + "markdownDescription": "The setup of ad avail handling in the output\\. \n*Required*: No \n*Type*: [AvailSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AvailSettings": { + "additionalProperties": false, + "properties": { + "Scte35SpliceInsert": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Scte35SpliceInsert", + "markdownDescription": "The setup for SCTE\\-35 splice insert handling\\. \n*Required*: No \n*Type*: [Scte35SpliceInsert](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte35spliceinsert.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte35SpliceInsert" + }, + "Scte35TimeSignalApos": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Scte35TimeSignalApos", + "markdownDescription": "The setup for SCTE\\-35 time signal APOS handling\\. \n*Required*: No \n*Type*: [Scte35TimeSignalApos](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte35timesignalapos.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte35TimeSignalApos" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.BlackoutSlate": { + "additionalProperties": false, + "properties": { + "BlackoutSlateImage": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation", + "markdownDescription": "The blackout slate image to be used\\. Keep empty for solid black\\. Only \\.bmp and \\.png images are supported\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlackoutSlateImage" + }, + "NetworkEndBlackout": { + "markdownDescription": "Setting to enabled causes MediaLive to blackout the video, audio, and captions, and raise the \"Network Blackout Image\" slate when an SCTE104/35 Network End Segmentation Descriptor is encountered\\. The blackout is lifted when the Network Start Segmentation Descriptor is encountered\\. The Network End and Network Start descriptors must contain a network ID that matches the value entered in Network ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkEndBlackout", + "type": "string" + }, + "NetworkEndBlackoutImage": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation", + "markdownDescription": "The path to the local file to use as the Network End Blackout image\\. The image is scaled to fill the entire output raster\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkEndBlackoutImage" + }, + "NetworkId": { + "markdownDescription": "Provides a Network ID that matches EIDR ID format \\(for example, \"10\\.XXXX/XXXX\\-XXXX\\-XXXX\\-XXXX\\-XXXX\\-C\"\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkId", + "type": "string" + }, + "State": { + "markdownDescription": "When set to enabled, this causes video, audio, and captions to be blanked when indicated by program metadata\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "State", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.BurnInDestinationSettings": { + "additionalProperties": false, + "properties": { + "Alignment": { + "markdownDescription": "If no explicit xPosition or yPosition is provided, setting alignment to centered places the captions at the bottom center of the output\\. Similarly, setting a left alignment aligns captions to the bottom left of the output\\. If x and y positions are specified in conjunction with the alignment parameter, the font is justified \\(either left or centered\\) relative to those coordinates\\. Selecting \"smart\" justification left\\-justifies live subtitles and center\\-justifies pre\\-recorded subtitles\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alignment", + "type": "string" + }, + "BackgroundColor": { + "markdownDescription": "Specifies the color of the rectangle behind the captions\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackgroundColor", + "type": "string" + }, + "BackgroundOpacity": { + "markdownDescription": "Specifies the opacity of the background rectangle\\. 255 is opaque; 0 is transparent\\. Keeping this parameter blank is equivalent to setting it to 0 \\(transparent\\)\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackgroundOpacity", + "type": "number" + }, + "Font": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation", + "markdownDescription": "The external font file that is used for captions burn\\-in\\. The file extension must be \\.ttf or \\.tte\\. Although you can select output fonts for many different types of input captions, embedded, STL, and Teletext sources use a strict grid system\\. Using external fonts with these captions sources could cause an unexpected display of proportional fonts\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Font" + }, + "FontColor": { + "markdownDescription": "Specifies the color of the burned\\-in captions\\. This option is not valid for source captions that are STL, 608/embedded, or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FontColor", + "type": "string" + }, + "FontOpacity": { + "markdownDescription": "Specifies the opacity of the burned\\-in captions\\. 255 is opaque; 0 is transparent\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FontOpacity", + "type": "number" + }, + "FontResolution": { + "markdownDescription": "The font resolution in DPI \\(dots per inch\\)\\. The default is 96 dpi\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FontResolution", + "type": "number" + }, + "FontSize": { + "markdownDescription": "When set to auto, fontSize scales depending on the size of the output\\. Providing a positive integer specifies the exact font size in points\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FontSize", + "type": "string" + }, + "OutlineColor": { + "markdownDescription": "Specifies the font outline color\\. This option is not valid for source captions that are either 608/embedded or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutlineColor", + "type": "string" + }, + "OutlineSize": { + "markdownDescription": "Specifies font outline size in pixels\\. This option is not valid for source captions that are either 608/embedded or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutlineSize", + "type": "number" + }, + "ShadowColor": { + "markdownDescription": "Specifies the color of the shadow cast by the captions\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShadowColor", + "type": "string" + }, + "ShadowOpacity": { + "markdownDescription": "Specifies the opacity of the shadow\\. 255 is opaque; 0 is transparent\\. Keeping this parameter blank is equivalent to setting it to 0 \\(transparent\\)\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShadowOpacity", + "type": "number" + }, + "ShadowXOffset": { + "markdownDescription": "Specifies the horizontal offset of the shadow that is relative to the captions in pixels\\. A value of \\-2 would result in a shadow offset 2 pixels to the left\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShadowXOffset", + "type": "number" + }, + "ShadowYOffset": { + "markdownDescription": "Specifies the vertical offset of the shadow that is relative to the captions in pixels\\. A value of \\-2 would result in a shadow offset 2 pixels above the text\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShadowYOffset", + "type": "number" + }, + "TeletextGridControl": { + "markdownDescription": "Controls whether a fixed grid size is used to generate the output subtitles bitmap\\. This applies only to Teletext inputs and DVB\\-Sub/Burn\\-in outputs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TeletextGridControl", + "type": "string" + }, + "XPosition": { + "markdownDescription": "Specifies the horizontal position of the captions relative to the left side of the output in pixels\\. A value of 10 would result in the captions starting 10 pixels from the left of the output\\. If no explicit xPosition is provided, the horizontal captions position is determined by the alignment parameter\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "XPosition", + "type": "number" + }, + "YPosition": { + "markdownDescription": "Specifies the vertical position of the captions relative to the top of the output in pixels\\. A value of 10 would result in the captions starting 10 pixels from the top of the output\\. If no explicit yPosition is provided, the captions are positioned towards the bottom of the output\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "YPosition", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.CaptionDescription": { + "additionalProperties": false, + "properties": { + "CaptionSelectorName": { + "markdownDescription": "Specifies which input captions selector to use as a captions source when generating output captions\\. This field should match a captionSelector name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptionSelectorName", + "type": "string" + }, + "DestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionDestinationSettings", + "markdownDescription": "Additional settings for a captions destination that depend on the destination type\\. \n*Required*: No \n*Type*: [CaptionDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationSettings" + }, + "LanguageCode": { + "markdownDescription": "An ISO 639\\-2 three\\-digit code\\. For more information, see http://www\\.loc\\.gov/standards/iso639\\-2/\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LanguageCode", + "type": "string" + }, + "LanguageDescription": { + "markdownDescription": "Human\\-readable information to indicate the captions that are available for players \\(for example, English or Spanish\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LanguageDescription", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the captions description\\. The name is used to associate a captions description with an output\\. Names must be unique within a channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.CaptionDestinationSettings": { + "additionalProperties": false, + "properties": { + "AribDestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AribDestinationSettings", + "markdownDescription": "The configuration of one ARIB captions encode in the output\\. \n*Required*: No \n*Type*: [AribDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aribdestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AribDestinationSettings" + }, + "BurnInDestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.BurnInDestinationSettings", + "markdownDescription": "The configuration of one burn\\-in captions encode in the output\\. \n*Required*: No \n*Type*: [BurnInDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BurnInDestinationSettings" + }, + "DvbSubDestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.DvbSubDestinationSettings", + "markdownDescription": "The configuration of one DVB Sub captions encode in the output\\. \n*Required*: No \n*Type*: [DvbSubDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubdestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DvbSubDestinationSettings" + }, + "EbuTtDDestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.EbuTtDDestinationSettings", + "markdownDescription": "Settings for EBU\\-TT captions in the output\\. \n*Required*: No \n*Type*: [EbuTtDDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ebuttddestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EbuTtDDestinationSettings" + }, + "EmbeddedDestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.EmbeddedDestinationSettings", + "markdownDescription": "The configuration of one embedded captions encode in the output\\. \n*Required*: No \n*Type*: [EmbeddedDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-embeddeddestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmbeddedDestinationSettings" + }, + "EmbeddedPlusScte20DestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.EmbeddedPlusScte20DestinationSettings", + "markdownDescription": "The configuration of one embedded plus SCTE\\-20 captions encode in the output\\. \n*Required*: No \n*Type*: [EmbeddedPlusScte20DestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-embeddedplusscte20destinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmbeddedPlusScte20DestinationSettings" + }, + "RtmpCaptionInfoDestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.RtmpCaptionInfoDestinationSettings", + "markdownDescription": "The configuration of one RTMPCaptionInfo captions encode in the output\\. \n*Required*: No \n*Type*: [RtmpCaptionInfoDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpcaptioninfodestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RtmpCaptionInfoDestinationSettings" + }, + "Scte20PlusEmbeddedDestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Scte20PlusEmbeddedDestinationSettings", + "markdownDescription": "The configuration of one SCTE20 plus embedded captions encode in the output\\. \n*Required*: No \n*Type*: [Scte20PlusEmbeddedDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte20plusembeddeddestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte20PlusEmbeddedDestinationSettings" + }, + "Scte27DestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Scte27DestinationSettings", + "markdownDescription": "The configuration of one SCTE\\-27 captions encode in the output\\. \n*Required*: No \n*Type*: [Scte27DestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte27destinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte27DestinationSettings" + }, + "SmpteTtDestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.SmpteTtDestinationSettings", + "markdownDescription": "The configuration of one SMPTE\\-TT captions encode in the output\\. \n*Required*: No \n*Type*: [SmpteTtDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-smptettdestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SmpteTtDestinationSettings" + }, + "TeletextDestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.TeletextDestinationSettings", + "markdownDescription": "The configuration of one Teletext captions encode in the output\\. \n*Required*: No \n*Type*: [TeletextDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-teletextdestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TeletextDestinationSettings" + }, + "TtmlDestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.TtmlDestinationSettings", + "markdownDescription": "The configuration of one TTML captions encode in the output\\. \n*Required*: No \n*Type*: [TtmlDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ttmldestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TtmlDestinationSettings" + }, + "WebvttDestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.WebvttDestinationSettings", + "markdownDescription": "The configuration of one WebVTT captions encode in the output\\. \n*Required*: No \n*Type*: [WebvttDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-webvttdestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WebvttDestinationSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.CaptionLanguageMapping": { + "additionalProperties": false, + "properties": { + "CaptionChannel": { + "markdownDescription": "The closed caption channel being described by this CaptionLanguageMapping\\. Each channel mapping must have a unique channel number \\(maximum of 4\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptionChannel", + "type": "number" + }, + "LanguageCode": { + "markdownDescription": "A three\\-character ISO 639\\-2 language code \\(see http://www\\.loc\\.gov/standards/iso639\\-2\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LanguageCode", + "type": "string" + }, + "LanguageDescription": { + "markdownDescription": "The textual description of language\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LanguageDescription", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.CaptionRectangle": { + "additionalProperties": false, + "properties": { + "Height": { + "markdownDescription": "See the description in leftOffset\\. \n For height, specify the entire height of the rectangle as a percentage of the underlying frame height\\. For example, \\\\\"80\\\\\" means the rectangle height is 80% of the underlying frame height\\. The topOffset and rectangleHeight must add up to 100% or less\\. This field corresponds to tts:extent \\- Y in the TTML standard\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Height", + "type": "number" + }, + "LeftOffset": { + "markdownDescription": "Applies only if you plan to convert these source captions to EBU\\-TT\\-D or TTML in an output\\. \\(Make sure to leave the default if you don't have either of these formats in the output\\.\\) You can define a display rectangle for the captions that is smaller than the underlying video frame\\. You define the rectangle by specifying the position of the left edge, top edge, bottom edge, and right edge of the rectangle, all within the underlying video frame\\. The units for the measurements are percentages\\. If you specify a value for one of these fields, you must specify a value for all of them\\. \n For leftOffset, specify the position of the left edge of the rectangle, as a percentage of the underlying frame width, and relative to the left edge of the frame\\. For example, \\\\\"10\\\\\" means the measurement is 10% of the underlying frame width\\. The rectangle left edge starts at that position from the left edge of the frame\\. This field corresponds to tts:origin \\- X in the TTML standard\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LeftOffset", + "type": "number" + }, + "TopOffset": { + "markdownDescription": "See the description in leftOffset\\. \n For topOffset, specify the position of the top edge of the rectangle, as a percentage of the underlying frame height, and relative to the top edge of the frame\\. For example, \\\\\"10\\\\\" means the measurement is 10% of the underlying frame height\\. The rectangle top edge starts at that position from the top edge of the frame\\. This field corresponds to tts:origin \\- Y in the TTML standard\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TopOffset", + "type": "number" + }, + "Width": { + "markdownDescription": "See the description in leftOffset\\. \n For width, specify the entire width of the rectangle as a percentage of the underlying frame width\\. For example, \\\\\"80\\\\\" means the rectangle width is 80% of the underlying frame width\\. The leftOffset and rectangleWidth must add up to 100% or less\\. This field corresponds to tts:extent \\- X in the TTML standard\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Width", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.CaptionSelector": { + "additionalProperties": false, + "properties": { + "LanguageCode": { + "markdownDescription": "When specified, this field indicates the three\\-letter language code of the captions track to extract from the source\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LanguageCode", + "type": "string" + }, + "Name": { + "markdownDescription": "The name identifier for a captions selector\\. This name is used to associate this captions selector with one or more captions descriptions\\. Names must be unique within a channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "SelectorSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionSelectorSettings", + "markdownDescription": "Information about the specific audio to extract from the input\\. \n*Required*: No \n*Type*: [CaptionSelectorSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SelectorSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.CaptionSelectorSettings": { + "additionalProperties": false, + "properties": { + "AncillarySourceSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AncillarySourceSettings", + "markdownDescription": "Information about the ancillary captions to extract from the input\\. \n*Required*: No \n*Type*: [AncillarySourceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ancillarysourcesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AncillarySourceSettings" + }, + "AribSourceSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AribSourceSettings", + "markdownDescription": "Information about the ARIB captions to extract from the input\\. \n*Required*: No \n*Type*: [AribSourceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aribsourcesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AribSourceSettings" + }, + "DvbSubSourceSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.DvbSubSourceSettings", + "markdownDescription": "Information about the DVB Sub captions to extract from the input\\. \n*Required*: No \n*Type*: [DvbSubSourceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubsourcesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DvbSubSourceSettings" + }, + "EmbeddedSourceSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.EmbeddedSourceSettings", + "markdownDescription": "Information about the embedded captions to extract from the input\\. \n*Required*: No \n*Type*: [EmbeddedSourceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-embeddedsourcesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmbeddedSourceSettings" + }, + "Scte20SourceSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Scte20SourceSettings", + "markdownDescription": "Information about the SCTE\\-20 captions to extract from the input\\. \n*Required*: No \n*Type*: [Scte20SourceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte20sourcesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte20SourceSettings" + }, + "Scte27SourceSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Scte27SourceSettings", + "markdownDescription": "Information about the SCTE\\-27 captions to extract from the input\\. \n*Required*: No \n*Type*: [Scte27SourceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte27sourcesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte27SourceSettings" + }, + "TeletextSourceSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.TeletextSourceSettings", + "markdownDescription": "Information about the Teletext captions to extract from the input\\. \n*Required*: No \n*Type*: [TeletextSourceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-teletextsourcesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TeletextSourceSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.CdiInputSpecification": { + "additionalProperties": false, + "properties": { + "Resolution": { + "markdownDescription": "Maximum CDI input resolution \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Resolution", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.ColorSpacePassthroughSettings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.DvbNitSettings": { + "additionalProperties": false, + "properties": { + "NetworkId": { + "markdownDescription": "The numeric value placed in the Network Information Table \\(NIT\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkId", + "type": "number" + }, + "NetworkName": { + "markdownDescription": "The network name text placed in the networkNameDescriptor inside the Network Information Table \\(NIT\\)\\. The maximum length is 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkName", + "type": "string" + }, + "RepInterval": { + "markdownDescription": "The number of milliseconds between instances of this table in the output transport stream\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepInterval", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.DvbSdtSettings": { + "additionalProperties": false, + "properties": { + "OutputSdt": { + "markdownDescription": "Selects a method of inserting SDT information into an output stream\\. The sdtFollow setting copies SDT information from input stream to output stream\\. The sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT information is present in the input\\. Otherwise, it falls back on the user\\-defined values\\. The sdtManual setting means that the user will enter the SDT information\\. The sdtNone setting means that the output stream will not contain SDT information\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputSdt", + "type": "string" + }, + "RepInterval": { + "markdownDescription": "The number of milliseconds between instances of this table in the output transport stream\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepInterval", + "type": "number" + }, + "ServiceName": { + "markdownDescription": "The service name placed in the serviceDescriptor in the Service Description Table \\(SDT\\)\\. The maximum length is 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceName", + "type": "string" + }, + "ServiceProviderName": { + "markdownDescription": "The service provider name placed in the serviceDescriptor in the Service Description Table \\(SDT\\)\\. The maximum length is 256 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceProviderName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.DvbSubDestinationSettings": { + "additionalProperties": false, + "properties": { + "Alignment": { + "markdownDescription": "If no explicit xPosition or yPosition is provided, setting the alignment to centered places the captions at the bottom center of the output\\. Similarly, setting a left alignment aligns captions to the bottom left of the output\\. If x and y positions are specified in conjunction with the alignment parameter, the font is justified \\(either left or centered\\) relative to those coordinates\\. Selecting \"smart\" justification left\\-justifies live subtitles and center\\-justifies pre\\-recorded subtitles\\. This option is not valid for source captions that are STL or 608/embedded\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alignment", + "type": "string" + }, + "BackgroundColor": { + "markdownDescription": "Specifies the color of the rectangle behind the captions\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackgroundColor", + "type": "string" + }, + "BackgroundOpacity": { + "markdownDescription": "Specifies the opacity of the background rectangle\\. 255 is opaque; 0 is transparent\\. Keeping this parameter blank is equivalent to setting it to 0 \\(transparent\\)\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackgroundOpacity", + "type": "number" + }, + "Font": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation", + "markdownDescription": "The external font file that is used for captions burn\\-in\\. The file extension must be \\.ttf or \\.tte\\. Although you can select output fonts for many different types of input captions, embedded, STL, and Teletext sources use a strict grid system\\. Using external fonts with these captions sources could cause an unexpected display of proportional fonts\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Font" + }, + "FontColor": { + "markdownDescription": "Specifies the color of the burned\\-in captions\\. This option is not valid for source captions that are STL, 608/embedded, or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FontColor", + "type": "string" + }, + "FontOpacity": { + "markdownDescription": "Specifies the opacity of the burned\\-in captions\\. 255 is opaque; 0 is transparent\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FontOpacity", + "type": "number" + }, + "FontResolution": { + "markdownDescription": "The font resolution in DPI \\(dots per inch\\)\\. The default is 96 dpi\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FontResolution", + "type": "number" + }, + "FontSize": { + "markdownDescription": "When set to auto, fontSize scales depending on the size of the output\\. Providing a positive integer specifies the exact font size in points\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FontSize", + "type": "string" + }, + "OutlineColor": { + "markdownDescription": "Specifies the font outline color\\. This option is not valid for source captions that are either 608/embedded or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutlineColor", + "type": "string" + }, + "OutlineSize": { + "markdownDescription": "Specifies the font outline size in pixels\\. This option is not valid for source captions that are either 608/embedded or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutlineSize", + "type": "number" + }, + "ShadowColor": { + "markdownDescription": "Specifies the color of the shadow that is cast by the captions\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShadowColor", + "type": "string" + }, + "ShadowOpacity": { + "markdownDescription": "Specifies the opacity of the shadow\\. 255 is opaque; 0 is transparent\\. Keeping this parameter blank is equivalent to setting it to 0 \\(transparent\\)\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShadowOpacity", + "type": "number" + }, + "ShadowXOffset": { + "markdownDescription": "Specifies the horizontal offset of the shadow relative to the captions in pixels\\. A value of \\-2 would result in a shadow offset 2 pixels to the left\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShadowXOffset", + "type": "number" + }, + "ShadowYOffset": { + "markdownDescription": "Specifies the vertical offset of the shadow relative to the captions in pixels\\. A value of \\-2 would result in a shadow offset 2 pixels above the text\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShadowYOffset", + "type": "number" + }, + "TeletextGridControl": { + "markdownDescription": "Controls whether a fixed grid size is used to generate the output subtitles bitmap\\. This applies to only Teletext inputs and DVB\\-Sub/Burn\\-in outputs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TeletextGridControl", + "type": "string" + }, + "XPosition": { + "markdownDescription": "Specifies the horizontal position of the captions relative to the left side of the output in pixels\\. A value of 10 would result in the captions starting 10 pixels from the left of the output\\. If no explicit xPosition is provided, the horizontal captions position is determined by the alignment parameter\\. This option is not valid for source captions that are STL, 608/embedded, or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "XPosition", + "type": "number" + }, + "YPosition": { + "markdownDescription": "Specifies the vertical position of the captions relative to the top of the output in pixels\\. A value of 10 would result in the captions starting 10 pixels from the top of the output\\. If no explicit yPosition is provided, the captions are positioned towards the bottom of the output\\. This option is not valid for source captions that are STL, 608/embedded, or Teletext\\. These source settings are already pre\\-defined by the captions stream\\. All burn\\-in and DVB\\-Sub font settings must match\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "YPosition", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.DvbSubSourceSettings": { + "additionalProperties": false, + "properties": { + "OcrLanguage": { + "markdownDescription": "If you will configure a WebVTT caption description that references this caption selector, use this field to provide the language to consider when translating the image\\-based source to text\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OcrLanguage", + "type": "string" + }, + "Pid": { + "markdownDescription": "When using DVB\\-Sub with burn\\-in or SMPTE\\-TT, use this PID for the source content\\. It is unused for DVB\\-Sub passthrough\\. All DVB\\-Sub content is passed through, regardless of selectors\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Pid", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.DvbTdtSettings": { + "additionalProperties": false, + "properties": { + "RepInterval": { + "markdownDescription": "The number of milliseconds between instances of this table in the output transport stream\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepInterval", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Eac3Settings": { + "additionalProperties": false, + "properties": { + "AttenuationControl": { + "markdownDescription": "When set to attenuate3Db, applies a 3 dB attenuation to the surround channels\\. Used only for the 3/2 coding mode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttenuationControl", + "type": "string" + }, + "Bitrate": { + "markdownDescription": "The average bitrate in bits/second\\. Valid bitrates depend on the coding mode\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bitrate", + "type": "number" + }, + "BitstreamMode": { + "markdownDescription": "Specifies the bitstream mode \\(bsmod\\) for the emitted E\\-AC\\-3 stream\\. For more information, see ATSC A/52\\-2012 \\(Annex E\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BitstreamMode", + "type": "string" + }, + "CodingMode": { + "markdownDescription": "The Dolby Digital Plus coding mode\\. This mode determines the number of channels\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodingMode", + "type": "string" + }, + "DcFilter": { + "markdownDescription": "When set to enabled, activates a DC highpass filter for all input channels\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DcFilter", + "type": "string" + }, + "Dialnorm": { + "markdownDescription": "Sets the dialnorm for the output\\. If blank and the input audio is Dolby Digital Plus, dialnorm will be passed through\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dialnorm", + "type": "number" + }, + "DrcLine": { + "markdownDescription": "Sets the Dolby dynamic range compression profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DrcLine", + "type": "string" + }, + "DrcRf": { + "markdownDescription": "Sets the profile for heavy Dolby dynamic range compression, ensuring that the instantaneous signal peaks do not exceed specified levels\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DrcRf", + "type": "string" + }, + "LfeControl": { + "markdownDescription": "When encoding 3/2 audio, setting to lfe enables the LFE channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LfeControl", + "type": "string" + }, + "LfeFilter": { + "markdownDescription": "When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to encoding\\. Valid only with a codingMode32 coding mode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LfeFilter", + "type": "string" + }, + "LoRoCenterMixLevel": { + "markdownDescription": "The Left only/Right only center mix level\\. Used only for the 3/2 coding mode\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoRoCenterMixLevel", + "type": "number" + }, + "LoRoSurroundMixLevel": { + "markdownDescription": "The Left only/Right only surround mix level\\. Used only for a 3/2 coding mode\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoRoSurroundMixLevel", + "type": "number" + }, + "LtRtCenterMixLevel": { + "markdownDescription": "The Left total/Right total center mix level\\. Used only for a 3/2 coding mode\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LtRtCenterMixLevel", + "type": "number" + }, + "LtRtSurroundMixLevel": { + "markdownDescription": "The Left total/Right total surround mix level\\. Used only for the 3/2 coding mode\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LtRtSurroundMixLevel", + "type": "number" + }, + "MetadataControl": { + "markdownDescription": "When set to followInput, encoder metadata is sourced from the DD, DD\\+, or DolbyE decoder that supplies this audio data\\. If the audio is not supplied from one of these streams, then the static metadata settings are used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetadataControl", + "type": "string" + }, + "PassthroughControl": { + "markdownDescription": "When set to whenPossible, input DD\\+ audio will be passed through if it is present on the input\\. This detection is dynamic over the life of the transcode\\. Inputs that alternate between DD\\+ and non\\-DD\\+ content will have a consistent DD\\+ output as the system alternates between passthrough and encoding\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PassthroughControl", + "type": "string" + }, + "PhaseControl": { + "markdownDescription": "When set to shift90Degrees, applies a 90\\-degree phase shift to the surround channels\\. Used only for a 3/2 coding mode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PhaseControl", + "type": "string" + }, + "StereoDownmix": { + "markdownDescription": "A stereo downmix preference\\. Used only for the 3/2 coding mode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StereoDownmix", + "type": "string" + }, + "SurroundExMode": { + "markdownDescription": "When encoding 3/2 audio, sets whether an extra center back surround channel is matrix encoded into the left and right surround channels\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SurroundExMode", + "type": "string" + }, + "SurroundMode": { + "markdownDescription": "When encoding 2/0 audio, sets whether Dolby Surround is matrix\\-encoded into the two channels\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SurroundMode", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.EbuTtDDestinationSettings": { + "additionalProperties": false, + "properties": { + "CopyrightHolder": { + "markdownDescription": "Applies only if you plan to convert these source captions to EBU\\-TT\\-D or TTML in an output\\. Complete this field if you want to include the name of the copyright holder in the copyright metadata tag in the TTML \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CopyrightHolder", + "type": "string" + }, + "FillLineGap": { + "markdownDescription": "Specifies how to handle the gap between the lines \\(in multi\\-line captions\\)\\. \\- enabled: Fill with the captions background color \\(as specified in the input captions\\)\\. \\- disabled: Leave the gap unfilled\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FillLineGap", + "type": "string" + }, + "FontFamily": { + "markdownDescription": "Specifies the font family to include in the font data attached to the EBU\\-TT captions\\. Valid only if styleControl is set to include\\. If you leave this field empty, the font family is set to \"monospaced\"\\. \\(If styleControl is set to exclude, the font family is always set to \"monospaced\"\\.\\) You specify only the font family\\. All other style information \\(color, bold, position and so on\\) is copied from the input captions\\. The size is always set to 100% to allow the downstream player to choose the size\\. \\- Enter a list of font families, as a comma\\-separated list of font names, in order of preference\\. The name can be a font family \\(such as \u201cArial\u201d\\), or a generic font family \\(such as \u201cserif\u201d\\), or \u201cdefault\u201d \\(to let the downstream player choose the font\\)\\. \\- Leave blank to set the family to \u201cmonospace\u201d\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FontFamily", + "type": "string" + }, + "StyleControl": { + "markdownDescription": "Specifies the style information \\(font color, font position, and so on\\) to include in the font data that is attached to the EBU\\-TT captions\\. \\- include: Take the style information \\(font color, font position, and so on\\) from the source captions and include that information in the font data attached to the EBU\\-TT captions\\. This option is valid only if the source captions are Embedded or Teletext\\. \\- exclude: In the font data attached to the EBU\\-TT captions, set the font family to \"monospaced\"\\. Do not include any other style information\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "If this is upconvert, 608 data is both passed through the \"608 compatibility bytes\" fields of the 708 wrapper as well as translated into 708\\. If 708 data is present in the source content, it is discarded\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Convert608To708", + "type": "string" + }, + "Scte20Detection": { + "markdownDescription": "Set to \"auto\" to handle streams with intermittent or non\\-aligned SCTE\\-20 and embedded captions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte20Detection", + "type": "string" + }, + "Source608ChannelNumber": { + "markdownDescription": "Specifies the 608/708 channel number within the video track from which to extract captions\\. This is unused for passthrough\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source608ChannelNumber", + "type": "number" + }, + "Source608TrackNumber": { + "markdownDescription": "This field is unused and deprecated\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source608TrackNumber", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.EncoderSettings": { + "additionalProperties": false, + "properties": { + "AudioDescriptions": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioDescription" + }, + "markdownDescription": "The encoding information for output audio\\. \n*Required*: No \n*Type*: List of [AudioDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioDescriptions", + "type": "array" + }, + "AvailBlanking": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AvailBlanking", + "markdownDescription": "The settings for ad avail blanking\\. \n*Required*: No \n*Type*: [AvailBlanking](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availblanking.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailBlanking" + }, + "AvailConfiguration": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AvailConfiguration", + "markdownDescription": "The configuration settings for the ad avail handling\\. \n*Required*: No \n*Type*: [AvailConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailConfiguration" + }, + "BlackoutSlate": { + "$ref": "#/definitions/AWS::MediaLive::Channel.BlackoutSlate", + "markdownDescription": "The settings for the blackout slate\\. \n*Required*: No \n*Type*: [BlackoutSlate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-blackoutslate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlackoutSlate" + }, + "CaptionDescriptions": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionDescription" + }, + "markdownDescription": "The encoding information for output captions\\. \n*Required*: No \n*Type*: List of [CaptionDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondescription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptionDescriptions", + "type": "array" + }, + "FeatureActivations": { + "$ref": "#/definitions/AWS::MediaLive::Channel.FeatureActivations", + "markdownDescription": "Settings to enable specific features\\. \n*Required*: No \n*Type*: [FeatureActivations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-featureactivations.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FeatureActivations" + }, + "GlobalConfiguration": { + "$ref": "#/definitions/AWS::MediaLive::Channel.GlobalConfiguration", + "markdownDescription": "The configuration settings that apply to the entire channel\\. \n*Required*: No \n*Type*: [GlobalConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-globalconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlobalConfiguration" + }, + "MotionGraphicsConfiguration": { + "$ref": "#/definitions/AWS::MediaLive::Channel.MotionGraphicsConfiguration", + "markdownDescription": "Settings to enable and configure the motion graphics overlay feature in the channel\\. \n*Required*: No \n*Type*: [MotionGraphicsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-motiongraphicsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MotionGraphicsConfiguration" + }, + "NielsenConfiguration": { + "$ref": "#/definitions/AWS::MediaLive::Channel.NielsenConfiguration", + "markdownDescription": "The settings to configure Nielsen watermarks\\. \n*Required*: No \n*Type*: [NielsenConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-nielsenconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NielsenConfiguration" + }, + "OutputGroups": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputGroup" + }, + "markdownDescription": "The settings for the output groups in the channel\\. \n*Required*: No \n*Type*: List of [OutputGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputgroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputGroups", + "type": "array" + }, + "TimecodeConfig": { + "$ref": "#/definitions/AWS::MediaLive::Channel.TimecodeConfig", + "markdownDescription": "Contains settings used to acquire and adjust timecode information from the inputs\\. \n*Required*: No \n*Type*: [TimecodeConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-timecodeconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimecodeConfig" + }, + "VideoDescriptions": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoDescription" + }, + "markdownDescription": "The encoding information for output videos\\. \n*Required*: No \n*Type*: List of [VideoDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videodescription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VideoDescriptions", + "type": "array" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.FailoverCondition": { + "additionalProperties": false, + "properties": { + "FailoverConditionSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.FailoverConditionSettings", + "markdownDescription": "Settings for a specific failover condition\\. \n*Required*: No \n*Type*: [FailoverConditionSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-failoverconditionsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailoverConditionSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.FailoverConditionSettings": { + "additionalProperties": false, + "properties": { + "AudioSilenceSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioSilenceFailoverSettings", + "markdownDescription": "MediaLive will perform a failover if the specified audio selector is silent for the specified period\\. \n*Required*: No \n*Type*: [AudioSilenceFailoverSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiosilencefailoversettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioSilenceSettings" + }, + "InputLossSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLossFailoverSettings", + "markdownDescription": "MediaLive will perform a failover if content is not detected in this input for the specified period\\. \n*Required*: No \n*Type*: [InputLossFailoverSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlossfailoversettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputLossSettings" + }, + "VideoBlackSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoBlackFailoverSettings", + "markdownDescription": "MediaLive will perform a failover if content is considered black for the specified period\\. \n*Required*: No \n*Type*: [VideoBlackFailoverSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoblackfailoversettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VideoBlackSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.FeatureActivations": { + "additionalProperties": false, + "properties": { + "InputPrepareScheduleActions": { + "markdownDescription": "Enables the Input Prepare feature\\. You can create Input Prepare actions in the schedule only if this feature is enabled\\. If you disable the feature on an existing schedule, make sure that you first delete all input prepare actions from the schedule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputPrepareScheduleActions", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.FecOutputSettings": { + "additionalProperties": false, + "properties": { + "ColumnDepth": { + "markdownDescription": "The parameter D from SMPTE 2022\\-1\\. The height of the FEC protection matrix\\. The number of transport stream packets per column error correction packet\\. The number must be between 4 and 20, inclusive\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnDepth", + "type": "number" + }, + "IncludeFec": { + "markdownDescription": "Enables column only or column and row\\-based FEC\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeFec", + "type": "string" + }, + "RowLength": { + "markdownDescription": "The parameter L from SMPTE 2022\\-1\\. The width of the FEC protection matrix\\. Must be between 1 and 20, inclusive\\. If only Column FEC is used, then larger values increase robustness\\. If Row FEC is used, then this is the number of transport stream packets per row error correction packet, and the value must be between 4 and 20, inclusive, if includeFec is columnAndRow\\. If includeFec is column, this value must be 1 to 20, inclusive\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RowLength", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Fmp4HlsSettings": { + "additionalProperties": false, + "properties": { + "AudioRenditionSets": { + "markdownDescription": "List all the audio groups that are used with the video output stream\\. Input all the audio GROUP\\-IDs that are associated to the video, separate by ','\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioRenditionSets", + "type": "string" + }, + "NielsenId3Behavior": { + "markdownDescription": "If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NielsenId3Behavior", + "type": "string" + }, + "TimedMetadataBehavior": { + "markdownDescription": "When set to passthrough, timed metadata is passed through from input to output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimedMetadataBehavior", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.FrameCaptureCdnSettings": { + "additionalProperties": false, + "properties": { + "FrameCaptureS3Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureS3Settings", + "markdownDescription": "Sets up Amazon S3 as the destination for this Frame Capture output\\. \n*Required*: No \n*Type*: [FrameCaptureS3Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecaptures3settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameCaptureS3Settings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.FrameCaptureGroupSettings": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef", + "markdownDescription": "The destination for the frame capture files\\. The destination is either the URI for an Amazon S3 bucket and object, plus a file name prefix \\(for example, s3ssl://sportsDelivery/highlights/20180820/curling\\_\\) or the URI for a MediaStore container, plus a file name prefix \\(for example, mediastoressl://sportsDelivery/20180820/curling\\_\\)\\. The final file names consist of the prefix from the destination field \\(for example, \"curling\\_\"\\) \\+ name modifier \\+ the counter \\(5 digits, starting from 00001\\) \\+ extension \\(which is always \\.jpg\\)\\. For example, curlingLow\\.00001\\.jpg\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" + }, + "FrameCaptureCdnSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureCdnSettings", + "markdownDescription": "Settings to configure the destination of a Frame Capture output\\. \n*Required*: No \n*Type*: [FrameCaptureCdnSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecapturecdnsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameCaptureCdnSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.FrameCaptureHlsSettings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.FrameCaptureOutputSettings": { + "additionalProperties": false, + "properties": { + "NameModifier": { + "markdownDescription": "Required if the output group contains more than one output\\. This modifier forms part of the output file name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NameModifier", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.FrameCaptureS3Settings": { + "additionalProperties": false, + "properties": { + "CannedAcl": { + "markdownDescription": "Specify the canned ACL to apply to each S3 request\\. Defaults to none\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CannedAcl", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.FrameCaptureSettings": { + "additionalProperties": false, + "properties": { + "CaptureInterval": { + "markdownDescription": "The frequency, in seconds, for capturing frames for inclusion in the output\\. For example, \"10\" means capture a frame every 10 seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptureInterval", + "type": "number" + }, + "CaptureIntervalUnits": { + "markdownDescription": "Unit for the frame capture interval\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptureIntervalUnits", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.GlobalConfiguration": { + "additionalProperties": false, + "properties": { + "InitialAudioGain": { + "markdownDescription": "The value to set the initial audio gain for the channel\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InitialAudioGain", + "type": "number" + }, + "InputEndAction": { + "markdownDescription": "Indicates the action to take when the current input completes \\(for example, end\\-of\\-file\\)\\. When switchAndLoopInputs is configured, MediaLive restarts at the beginning of the first input\\. When \"none\" is configured, MediaLive transcodes either black, a solid color, or a user\\-specified slate images per the \"Input Loss Behavior\" configuration until the next input switch occurs \\(which is controlled through the Channel Schedule API\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputEndAction", + "type": "string" + }, + "InputLossBehavior": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLossBehavior", + "markdownDescription": "The settings for system actions when the input is lost\\. \n*Required*: No \n*Type*: [InputLossBehavior](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlossbehavior.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputLossBehavior" + }, + "OutputLockingMode": { + "markdownDescription": "Indicates how MediaLive pipelines are synchronized\\. PIPELINELOCKING \\- MediaLive attempts to synchronize the output of each pipeline to the other\\. EPOCHLOCKING \\- MediaLive attempts to synchronize the output of each pipeline to the Unix epoch\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputLockingMode", + "type": "string" + }, + "OutputTimingSource": { + "markdownDescription": "Indicates whether the rate of frames emitted by the Live encoder should be paced by its system clock \\(which optionally might be locked to another source through NTP\\) or should be locked to the clock of the source that is providing the input stream\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputTimingSource", + "type": "string" + }, + "SupportLowFramerateInputs": { + "markdownDescription": "Adjusts the video input buffer for streams with very low video frame rates\\. This is commonly set to enabled for music channels with less than one video frame per second\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SupportLowFramerateInputs", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.H264ColorSpaceSettings": { + "additionalProperties": false, + "properties": { + "ColorSpacePassthroughSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.ColorSpacePassthroughSettings", + "markdownDescription": "Passthrough applies no color space conversion to the output\\. \n*Required*: No \n*Type*: [ColorSpacePassthroughSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-colorspacepassthroughsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColorSpacePassthroughSettings" + }, + "Rec601Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Rec601Settings", + "markdownDescription": "Settings to configure the handling of Rec601 color space\\. \n*Required*: No \n*Type*: [Rec601Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rec601settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rec601Settings" + }, + "Rec709Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Rec709Settings", + "markdownDescription": "Settings to configure the handling of Rec709 color space\\. \n*Required*: No \n*Type*: [Rec709Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rec709settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rec709Settings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.H264FilterSettings": { + "additionalProperties": false, + "properties": { + "TemporalFilterSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.TemporalFilterSettings", + "markdownDescription": "Settings for applying the temporal filter to the video\\. \n*Required*: No \n*Type*: [TemporalFilterSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-temporalfiltersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemporalFilterSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.H264Settings": { + "additionalProperties": false, + "properties": { + "AdaptiveQuantization": { + "markdownDescription": "The adaptive quantization\\. This allows intra\\-frame quantizers to vary to improve visual quality\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdaptiveQuantization", + "type": "string" + }, + "AfdSignaling": { + "markdownDescription": "Indicates that AFD values will be written into the output stream\\. If afdSignaling is auto, the system tries to preserve the input AFD value \\(in cases where multiple AFD values are valid\\)\\. If set to fixed, the AFD value is the value configured in the fixedAfd parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AfdSignaling", + "type": "string" + }, + "Bitrate": { + "markdownDescription": "The average bitrate in bits/second\\. This is required when the rate control mode is VBR or CBR\\. It isn't used for QVBR\\. In a Microsoft Smooth output group, each output must have a unique value when its bitrate is rounded down to the nearest multiple of 1000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bitrate", + "type": "number" + }, + "BufFillPct": { + "markdownDescription": "The percentage of the buffer that should initially be filled \\(HRD buffer model\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BufFillPct", + "type": "number" + }, + "BufSize": { + "markdownDescription": "The size of the buffer \\(HRD buffer model\\) in bits/second\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BufSize", + "type": "number" + }, + "ColorMetadata": { + "markdownDescription": "Includes color space metadata in the output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColorMetadata", + "type": "string" + }, + "ColorSpaceSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.H264ColorSpaceSettings", + "markdownDescription": "Settings to configure the color space handling for the video\\. \n*Required*: No \n*Type*: [H264ColorSpaceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264colorspacesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColorSpaceSettings" + }, + "EntropyEncoding": { + "markdownDescription": "The entropy encoding mode\\. Use cabac \\(must be in Main or High profile\\) or cavlc\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntropyEncoding", + "type": "string" + }, + "FilterSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.H264FilterSettings", + "markdownDescription": "Optional filters that you can apply to an encode\\. \n*Required*: No \n*Type*: [H264FilterSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264filtersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterSettings" + }, + "FixedAfd": { + "markdownDescription": "A four\\-bit AFD value to write on all frames of video in the output stream\\. Valid only when afdSignaling is set to Fixed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FixedAfd", + "type": "string" + }, + "FlickerAq": { + "markdownDescription": "If set to enabled, adjusts the quantization within each frame to reduce flicker or pop on I\\-frames\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FlickerAq", + "type": "string" + }, + "ForceFieldPictures": { + "markdownDescription": "This setting applies only when scan type is \"interlaced\\.\" It controls whether coding is performed on a field basis or on a frame basis\\. \\(When the video is progressive, the coding is always performed on a frame basis\\.\\) enabled: Force MediaLive to code on a field basis, so that odd and even sets of fields are coded separately\\. disabled: Code the two sets of fields separately \\(on a field basis\\) or together \\(on a frame basis using PAFF\\), depending on what is most appropriate for the content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForceFieldPictures", + "type": "string" + }, + "FramerateControl": { + "markdownDescription": "Indicates how the output video frame rate is specified\\. If you select \"specified,\" the output video frame rate is determined by framerateNumerator and framerateDenominator\\. If you select \"initializeFromSource,\" the output video frame rate is set equal to the input video frame rate of the first input\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FramerateControl", + "type": "string" + }, + "FramerateDenominator": { + "markdownDescription": "The frame rate denominator\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FramerateDenominator", + "type": "number" + }, + "FramerateNumerator": { + "markdownDescription": "The frame rate numerator\\. The frame rate is a fraction, for example, 24000/1001 = 23\\.976 fps\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FramerateNumerator", + "type": "number" + }, + "GopBReference": { + "markdownDescription": "If enabled, uses reference B frames for GOP structures that have B frames > 1\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopBReference", + "type": "string" + }, + "GopClosedCadence": { + "markdownDescription": "The frequency of closed GOPs\\. In streaming applications, we recommend that you set this to 1 so that a decoder joining mid\\-stream will receive an IDR frame as quickly as possible\\. Setting this value to 0 will break output segmenting\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopClosedCadence", + "type": "number" + }, + "GopNumBFrames": { + "markdownDescription": "The number of B\\-frames between reference frames\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopNumBFrames", + "type": "number" + }, + "GopSize": { + "markdownDescription": "The GOP size \\(keyframe interval\\) in units of either frames or seconds per gopSizeUnits\\. The value must be greater than zero\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopSize", + "type": "number" + }, + "GopSizeUnits": { + "markdownDescription": "Indicates if the gopSize is specified in frames or seconds\\. If seconds, the system converts the gopSize into a frame count at runtime\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopSizeUnits", + "type": "string" + }, + "Level": { + "markdownDescription": "The H\\.264 level\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Level", + "type": "string" + }, + "LookAheadRateControl": { + "markdownDescription": "The amount of lookahead\\. A value of low can decrease latency and memory usage, while high can produce better quality for certain content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LookAheadRateControl", + "type": "string" + }, + "MaxBitrate": { + "markdownDescription": "For QVBR: See the tooltip for Quality level\\. For VBR: Set the maximum bitrate in order to accommodate expected spikes in the complexity of the video\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxBitrate", + "type": "number" + }, + "MinIInterval": { + "markdownDescription": "Meaningful only if sceneChangeDetect is set to enabled\\. This setting enforces separation between repeated \\(cadence\\) I\\-frames and I\\-frames inserted by Scene Change Detection\\. If a scene change I\\-frame is within I\\-interval frames of a cadence I\\-frame, the GOP is shrunk or stretched to the scene change I\\-frame\\. GOP stretch requires enabling lookahead as well as setting the I\\-interval\\. The normal cadence resumes for the next GOP\\. Note that the maximum GOP stretch = GOP size \\+ Min\\-I\\-interval \\- 1\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinIInterval", + "type": "number" + }, + "NumRefFrames": { + "markdownDescription": "The number of reference frames to use\\. The encoder might use more than requested if you use B\\-frames or interlaced encoding\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumRefFrames", + "type": "number" + }, + "ParControl": { + "markdownDescription": "Indicates how the output pixel aspect ratio is specified\\. If \"specified\" is selected, the output video pixel aspect ratio is determined by parNumerator and parDenominator\\. If \"initializeFromSource\" is selected, the output pixels aspect ratio will be set equal to the input video pixel aspect ratio of the first input\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParControl", + "type": "string" + }, + "ParDenominator": { + "markdownDescription": "The Pixel Aspect Ratio denominator\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParDenominator", + "type": "number" + }, + "ParNumerator": { + "markdownDescription": "The Pixel Aspect Ratio numerator\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParNumerator", + "type": "number" + }, + "Profile": { + "markdownDescription": "An H\\.264 profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Profile", + "type": "string" + }, + "QualityLevel": { + "markdownDescription": "Leave as STANDARD\\_QUALITY or choose a different value \\(which might result in additional costs to run the channel\\)\\. \\- ENHANCED\\_QUALITY: Produces a slightly better video quality without an increase in the bitrate\\. Has an effect only when the Rate control mode is QVBR or CBR\\. If this channel is in a MediaLive multiplex, the value must be ENHANCED\\_QUALITY\\. \\- STANDARD\\_QUALITY: Valid for any Rate control mode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QualityLevel", + "type": "string" + }, + "QvbrQualityLevel": { + "markdownDescription": "Controls the target quality for the video encode\\. This applies only when the rate control mode is QVBR\\. Set values for the QVBR quality level field and Max bitrate field that suit your most important viewing devices\\. Recommended values are: \\- Primary screen: Quality level: 8 to 10\\. Max bitrate: 4M \\- PC or tablet: Quality level: 7\\. Max bitrate: 1\\.5M to 3M \\- Smartphone: Quality level: 6\\. Max bitrate: 1M to 1\\.5M\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QvbrQualityLevel", + "type": "number" + }, + "RateControlMode": { + "markdownDescription": "The rate control mode\\. QVBR: The quality will match the specified quality level except when it is constrained by the maximum bitrate\\. We recommend this if you or your viewers pay for bandwidth\\. VBR: The quality and bitrate vary, depending on the video complexity\\. We recommend this instead of QVBR if you want to maintain a specific average bitrate over the duration of the channel\\. CBR: The quality varies, depending on the video complexity\\. We recommend this only if you distribute your assets to devices that can't handle variable bitrates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RateControlMode", + "type": "string" + }, + "ScanType": { + "markdownDescription": "Sets the scan type of the output to progressive or top\\-field\\-first interlaced\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScanType", + "type": "string" + }, + "SceneChangeDetect": { + "markdownDescription": "The scene change detection\\. On: inserts I\\-frames when the scene change is detected\\. Off: does not force an I\\-frame when the scene change is detected\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SceneChangeDetect", + "type": "string" + }, + "Slices": { + "markdownDescription": "The number of slices per picture\\. The number must be less than or equal to the number of macroblock rows for progressive pictures, and less than or equal to half the number of macroblock rows for interlaced pictures\\. This field is optional\\. If you don't specify a value, MediaLive chooses the number of slices based on the encode resolution\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Slices", + "type": "number" + }, + "Softness": { + "markdownDescription": "Softness\\. Selects a quantizer matrix\\. Larger values reduce high\\-frequency content in the encoded image\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Softness", + "type": "number" + }, + "SpatialAq": { + "markdownDescription": "If set to enabled, adjusts quantization within each frame based on the spatial variation of content complexity\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpatialAq", + "type": "string" + }, + "SubgopLength": { + "markdownDescription": "If set to fixed, uses gopNumBFrames B\\-frames per sub\\-GOP\\. If set to dynamic, optimizes the number of B\\-frames used for each sub\\-GOP to improve visual quality\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubgopLength", + "type": "string" + }, + "Syntax": { + "markdownDescription": "Produces a bitstream that is compliant with SMPTE RP\\-2027\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Syntax", + "type": "string" + }, + "TemporalAq": { + "markdownDescription": "If set to enabled, adjusts quantization within each frame based on the temporal variation of content complexity\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemporalAq", + "type": "string" + }, + "TimecodeInsertion": { + "markdownDescription": "Determines how timecodes should be inserted into the video elementary stream\\. disabled: don't include timecodes\\. picTimingSei: pass through picture timing SEI messages from the source specified in Timecode Config\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimecodeInsertion", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.H265ColorSpaceSettings": { + "additionalProperties": false, + "properties": { + "ColorSpacePassthroughSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.ColorSpacePassthroughSettings", + "markdownDescription": "Passthrough applies no color space conversion to the output\\. \n*Required*: No \n*Type*: [ColorSpacePassthroughSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-colorspacepassthroughsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColorSpacePassthroughSettings" + }, + "Hdr10Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Hdr10Settings", + "markdownDescription": "Settings to configure the handling of HDR10 color space\\. \n*Required*: No \n*Type*: [Hdr10Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hdr10settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Hdr10Settings" + }, + "Rec601Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Rec601Settings", + "markdownDescription": "Settings to configure the handling of Rec601 color space\\. \n*Required*: No \n*Type*: [Rec601Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rec601settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rec601Settings" + }, + "Rec709Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Rec709Settings", + "markdownDescription": "Settings to configure the handling of Rec709 color space\\. \n*Required*: No \n*Type*: [Rec709Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rec709settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rec709Settings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.H265FilterSettings": { + "additionalProperties": false, + "properties": { + "TemporalFilterSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.TemporalFilterSettings", + "markdownDescription": "Settings for applying the temporal filter to the video\\. \n*Required*: No \n*Type*: [TemporalFilterSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-temporalfiltersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemporalFilterSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.H265Settings": { + "additionalProperties": false, + "properties": { + "AdaptiveQuantization": { + "markdownDescription": "Adaptive quantization\\. Allows intra\\-frame quantizers to vary to improve visual quality\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdaptiveQuantization", + "type": "string" + }, + "AfdSignaling": { + "markdownDescription": "Indicates that AFD values will be written into the output stream\\. If afdSignaling is \"auto\", the system will try to preserve the input AFD value \\(in cases where multiple AFD values are valid\\)\\. If set to \"fixed\", the AFD value will be the value configured in the fixedAfd parameter\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AfdSignaling", + "type": "string" + }, + "AlternativeTransferFunction": { + "markdownDescription": "Whether or not EML should insert an Alternative Transfer Function SEI message to support backwards compatibility with non\\-HDR decoders and displays\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlternativeTransferFunction", + "type": "string" + }, + "Bitrate": { + "markdownDescription": "Average bitrate in bits/second\\. Required when the rate control mode is VBR or CBR\\. Not used for QVBR\\. In an MS Smooth output group, each output must have a unique value when its bitrate is rounded down to the nearest multiple of 1000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bitrate", + "type": "number" + }, + "BufSize": { + "markdownDescription": "Size of buffer \\(HRD buffer model\\) in bits\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BufSize", + "type": "number" + }, + "ColorMetadata": { + "markdownDescription": "Includes colorspace metadata in the output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColorMetadata", + "type": "string" + }, + "ColorSpaceSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.H265ColorSpaceSettings", + "markdownDescription": "Color Space settings \n*Required*: No \n*Type*: [H265ColorSpaceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265colorspacesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColorSpaceSettings" + }, + "FilterSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.H265FilterSettings", + "markdownDescription": "Optional filters that you can apply to an encode\\. \n*Required*: No \n*Type*: [H265FilterSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265filtersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterSettings" + }, + "FixedAfd": { + "markdownDescription": "Four bit AFD value to write on all frames of video in the output stream\\. Only valid when afdSignaling is set to 'Fixed'\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FixedAfd", + "type": "string" + }, + "FlickerAq": { + "markdownDescription": "If set to enabled, adjust quantization within each frame to reduce flicker or 'pop' on I\\-frames\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FlickerAq", + "type": "string" + }, + "FramerateDenominator": { + "markdownDescription": "Framerate denominator\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FramerateDenominator", + "type": "number" + }, + "FramerateNumerator": { + "markdownDescription": "Framerate numerator \\- framerate is a fraction, e\\.g\\. 24000 / 1001 = 23\\.976 fps\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FramerateNumerator", + "type": "number" + }, + "GopClosedCadence": { + "markdownDescription": "Frequency of closed GOPs\\. In streaming applications, it is recommended that this be set to 1 so a decoder joining mid\\-stream will receive an IDR frame as quickly as possible\\. Setting this value to 0 will break output segmenting\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopClosedCadence", + "type": "number" + }, + "GopSize": { + "markdownDescription": "GOP size \\(keyframe interval\\) in units of either frames or seconds per gopSizeUnits\\. If gopSizeUnits is frames, gopSize must be an integer and must be greater than or equal to 1\\. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an integer\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopSize", + "type": "number" + }, + "GopSizeUnits": { + "markdownDescription": "Indicates if the gopSize is specified in frames or seconds\\. If seconds the system will convert the gopSize into a frame count at run time\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopSizeUnits", + "type": "string" + }, + "Level": { + "markdownDescription": "H\\.265 Level\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Level", + "type": "string" + }, + "LookAheadRateControl": { + "markdownDescription": "Amount of lookahead\\. A value of low can decrease latency and memory usage, while high can produce better quality for certain content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LookAheadRateControl", + "type": "string" + }, + "MaxBitrate": { + "markdownDescription": "For QVBR: See the tooltip for Quality level \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxBitrate", + "type": "number" + }, + "MinIInterval": { + "markdownDescription": "Only meaningful if sceneChangeDetect is set to enabled\\. Defaults to 5 if multiplex rate control is used\\. Enforces separation between repeated \\(cadence\\) I\\-frames and I\\-frames inserted by Scene Change Detection\\. If a scene change I\\-frame is within I\\-interval frames of a cadence I\\-frame, the GOP is shrunk and/or stretched to the scene change I\\-frame\\. GOP stretch requires enabling lookahead as well as setting I\\-interval\\. The normal cadence resumes for the next GOP\\. Note: Maximum GOP stretch = GOP size \\+ Min\\-I\\-interval \\- 1 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinIInterval", + "type": "number" + }, + "ParDenominator": { + "markdownDescription": "Pixel Aspect Ratio denominator\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParDenominator", + "type": "number" + }, + "ParNumerator": { + "markdownDescription": "Pixel Aspect Ratio numerator\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParNumerator", + "type": "number" + }, + "Profile": { + "markdownDescription": "H\\.265 Profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Profile", + "type": "string" + }, + "QvbrQualityLevel": { + "markdownDescription": "Controls the target quality for the video encode\\. Applies only when the rate control mode is QVBR\\. Set values for the QVBR quality level field and Max bitrate field that suit your most important viewing devices\\. Recommended values are: \\- Primary screen: Quality level: 8 to 10\\. Max bitrate: 4M \\- PC or tablet: Quality level: 7\\. Max bitrate: 1\\.5M to 3M \\- Smartphone: Quality level: 6\\. Max bitrate: 1M to 1\\.5M \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QvbrQualityLevel", + "type": "number" + }, + "RateControlMode": { + "markdownDescription": "Rate control mode\\. QVBR: Quality will match the specified quality level except when it is constrained by the maximum bitrate\\. Recommended if you or your viewers pay for bandwidth\\. CBR: Quality varies, depending on the video complexity\\. Recommended only if you distribute your assets to devices that cannot handle variable bitrates\\. Multiplex: This rate control mode is only supported \\(and is required\\) when the video is being delivered to a MediaLive Multiplex in which case the rate control configuration is controlled by the properties within the Multiplex Program\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RateControlMode", + "type": "string" + }, + "ScanType": { + "markdownDescription": "Sets the scan type of the output to progressive or top\\-field\\-first interlaced\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScanType", + "type": "string" + }, + "SceneChangeDetect": { + "markdownDescription": "Scene change detection\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SceneChangeDetect", + "type": "string" + }, + "Slices": { + "markdownDescription": "Number of slices per picture\\. Must be less than or equal to the number of macroblock rows for progressive pictures, and less than or equal to half the number of macroblock rows for interlaced pictures\\. This field is optional; when no value is specified the encoder will choose the number of slices based on encode resolution\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Slices", + "type": "number" + }, + "Tier": { + "markdownDescription": "H\\.265 Tier\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tier", + "type": "string" + }, + "TimecodeInsertion": { + "markdownDescription": "Determines how timecodes should be inserted into the video elementary stream\\. \\- 'disabled': Do not include timecodes \\- 'picTimingSei': Pass through picture timing SEI messages from the source specified in Timecode Config \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimecodeInsertion", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Hdr10Settings": { + "additionalProperties": false, + "properties": { + "MaxCll": { + "markdownDescription": "Maximum Content Light Level An integer metadata value defining the maximum light level, in nits, of any single pixel within an encoded HDR video stream or file\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCll", + "type": "number" + }, + "MaxFall": { + "markdownDescription": "Maximum Frame Average Light Level An integer metadata value defining the maximum average light level, in nits, for any single frame within an encoded HDR video stream or file\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxFall", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.HlsAkamaiSettings": { + "additionalProperties": false, + "properties": { + "ConnectionRetryInterval": { + "markdownDescription": "The number of seconds to wait before retrying a connection to the CDN if the connection is lost\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionRetryInterval", + "type": "number" + }, + "FilecacheDuration": { + "markdownDescription": "The size, in seconds, of the file cache for streaming outputs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilecacheDuration", + "type": "number" + }, + "HttpTransferMode": { + "markdownDescription": "Specifies whether to use chunked transfer encoding to Akamai\\. To enable this feature, contact Akamai\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpTransferMode", + "type": "string" + }, + "NumRetries": { + "markdownDescription": "The number of retry attempts that will be made before the channel is put into an error state\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumRetries", + "type": "number" + }, + "RestartDelay": { + "markdownDescription": "If a streaming output fails, the number of seconds to wait until a restart is initiated\\. A value of 0 means never restart\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestartDelay", + "type": "number" + }, + "Salt": { + "markdownDescription": "The salt for authenticated Akamai\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Salt", + "type": "string" + }, + "Token": { + "markdownDescription": "The token parameter for authenticated Akamai\\. If this is not specified, \\_gda\\_ is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Token", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.HlsBasicPutSettings": { + "additionalProperties": false, + "properties": { + "ConnectionRetryInterval": { + "markdownDescription": "The number of seconds to wait before retrying a connection to the CDN if the connection is lost\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionRetryInterval", + "type": "number" + }, + "FilecacheDuration": { + "markdownDescription": "The size, in seconds, of the file cache for streaming outputs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilecacheDuration", + "type": "number" + }, + "NumRetries": { + "markdownDescription": "The number of retry attempts that MediaLive makes before the channel is put into an error state\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumRetries", + "type": "number" + }, + "RestartDelay": { + "markdownDescription": "If a streaming output fails, the number of seconds to wait until a restart is initiated\\. A value of 0 means never restart\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestartDelay", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.HlsCdnSettings": { + "additionalProperties": false, + "properties": { + "HlsAkamaiSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsAkamaiSettings", + "markdownDescription": "Sets up Akamai as the downstream system for the HLS output group\\. \n*Required*: No \n*Type*: [HlsAkamaiSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsakamaisettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsAkamaiSettings" + }, + "HlsBasicPutSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsBasicPutSettings", + "markdownDescription": "The settings for Basic Put for the HLS output\\. \n*Required*: No \n*Type*: [HlsBasicPutSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsbasicputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsBasicPutSettings" + }, + "HlsMediaStoreSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsMediaStoreSettings", + "markdownDescription": "Sets up MediaStore as the destination for the HLS output\\. \n*Required*: No \n*Type*: [HlsMediaStoreSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsmediastoresettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsMediaStoreSettings" + }, + "HlsS3Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsS3Settings", + "markdownDescription": "Sets up Amazon S3 as the destination for this HLS output\\. \n*Required*: No \n*Type*: [HlsS3Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlss3settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsS3Settings" + }, + "HlsWebdavSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsWebdavSettings", + "markdownDescription": "The settings for Web VTT captions in the HLS output group\\. \nThe parent of this entity is HlsGroupSettings\\. \n*Required*: No \n*Type*: [HlsWebdavSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlswebdavsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsWebdavSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.HlsGroupSettings": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "items": { + "type": "string" + }, + "markdownDescription": "Chooses one or more ad marker types to pass SCTE35 signals through to this group of Apple HLS outputs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdMarkers", + "type": "array" + }, + "BaseUrlContent": { + "markdownDescription": "A partial URI prefix that will be prepended to each output in the media \\.m3u8 file\\. The partial URI prefix can be used if the base manifest is delivered from a different URL than the main \\.m3u8 file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaseUrlContent", + "type": "string" + }, + "BaseUrlContent1": { + "markdownDescription": "Optional\\. One value per output group\\. This field is required only if you are completing Base URL content A, and the downstream system has notified you that the media files for pipeline 1 of all outputs are in a location different from the media files for pipeline 0\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaseUrlContent1", + "type": "string" + }, + "BaseUrlManifest": { + "markdownDescription": "A partial URI prefix that will be prepended to each output in the media \\.m3u8 file\\. The partial URI prefix can be used if the base manifest is delivered from a different URL than the main \\.m3u8 file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaseUrlManifest", + "type": "string" + }, + "BaseUrlManifest1": { + "markdownDescription": "Optional\\. One value per output group\\. Complete this field only if you are completing Base URL manifest A, and the downstream system has notified you that the child manifest files for pipeline 1 of all outputs are in a location different from the child manifest files for pipeline 0\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaseUrlManifest1", + "type": "string" + }, + "CaptionLanguageMappings": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionLanguageMapping" + }, + "markdownDescription": "A mapping of up to 4 captions channels to captions languages\\. This is meaningful only if captionLanguageSetting is set to \"insert\\.\" \n*Required*: No \n*Type*: List of [CaptionLanguageMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionlanguagemapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptionLanguageMappings", + "type": "array" + }, + "CaptionLanguageSetting": { + "markdownDescription": "Applies only to 608 embedded output captions\\. Insert: Include CLOSED\\-CAPTIONS lines in the manifest\\. Specify at least one language in the CC1 Language Code field\\. One CLOSED\\-CAPTION line is added for each Language Code that you specify\\. Make sure to specify the languages in the order in which they appear in the original source \\(if the source is embedded format\\) or the order of the captions selectors \\(if the source is other than embedded\\)\\. Otherwise, languages in the manifest will not match properly with the output captions\\. None: Include the CLOSED\\-CAPTIONS=NONE line in the manifest\\. Omit: Omit any CLOSED\\-CAPTIONS line from the manifest\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptionLanguageSetting", + "type": "string" + }, + "ClientCache": { + "markdownDescription": "When set to \"disabled,\" sets the \\#EXT\\-X\\-ALLOW\\-CACHE:no tag in the manifest, which prevents clients from saving media segments for later replay\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientCache", + "type": "string" + }, + "CodecSpecification": { + "markdownDescription": "The specification to use \\(RFC\\-6381 or the default RFC\\-4281\\) during m3u8 playlist generation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodecSpecification", + "type": "string" + }, + "ConstantIv": { + "markdownDescription": "Used with encryptionType\\. This is a 128\\-bit, 16\\-byte hex value that is represented by a 32\\-character text string\\. If ivSource is set to \"explicit,\" this parameter is required and is used as the IV for encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConstantIv", + "type": "string" + }, + "Destination": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef", + "markdownDescription": "A directory or HTTP destination for the HLS segments, manifest files, and encryption keys \\(if enabled\\)\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" + }, + "DirectoryStructure": { + "markdownDescription": "Places segments in subdirectories\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DirectoryStructure", + "type": "string" + }, + "DiscontinuityTags": { + "markdownDescription": "Specifies whether to insert EXT\\-X\\-DISCONTINUITY tags in the HLS child manifests for this output group\\. Typically, choose Insert because these tags are required in the manifest \\(according to the HLS specification\\) and serve an important purpose\\. Choose Never Insert only if the downstream system is doing real\\-time failover \\(without using the MediaLive automatic failover feature\\) and only if that downstream system has advised you to exclude the tags\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DiscontinuityTags", + "type": "string" + }, + "EncryptionType": { + "markdownDescription": "Encrypts the segments with the specified encryption scheme\\. Exclude this parameter if you don't want encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionType", + "type": "string" + }, + "HlsCdnSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsCdnSettings", + "markdownDescription": "The parameters that control interactions with the CDN\\. \n*Required*: No \n*Type*: [HlsCdnSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlscdnsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsCdnSettings" + }, + "HlsId3SegmentTagging": { + "markdownDescription": "State of HLS ID3 Segment Tagging \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsId3SegmentTagging", + "type": "string" + }, + "IFrameOnlyPlaylists": { + "markdownDescription": "DISABLED: Don't create an I\\-frame\\-only manifest, but do create the master and media manifests \\(according to the Output Selection field\\)\\. STANDARD: Create an I\\-frame\\-only manifest for each output that contains video, as well as the other manifests \\(according to the Output Selection field\\)\\. The I\\-frame manifest contains a \\#EXT\\-X\\-I\\-FRAMES\\-ONLY tag to indicate it is I\\-frame only, and one or more \\#EXT\\-X\\-BYTERANGE entries identifying the I\\-frame position\\. For example, \\#EXT\\-X\\-BYTERANGE:160364@1461888\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IFrameOnlyPlaylists", + "type": "string" + }, + "IncompleteSegmentBehavior": { + "markdownDescription": "Specifies whether to include the final \\(incomplete\\) segment in the media output when the pipeline stops producing output because of a channel stop, a channel pause or a loss of input to the pipeline\\. Auto means that MediaLive decides whether to include the final segment, depending on the channel class and the types of output groups\\. Suppress means to never include the incomplete segment\\. We recommend you choose Auto and let MediaLive control the behavior\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncompleteSegmentBehavior", + "type": "string" + }, + "IndexNSegments": { + "markdownDescription": "Applies only if the Mode field is LIVE\\. Specifies the maximum number of segments in the media manifest file\\. After this maximum, older segments are removed from the media manifest\\. This number must be less than or equal to the Keep Segments field\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IndexNSegments", + "type": "number" + }, + "InputLossAction": { + "markdownDescription": "A parameter that controls output group behavior on an input loss\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputLossAction", + "type": "string" + }, + "IvInManifest": { + "markdownDescription": "Used with encryptionType\\. The IV \\(initialization vector\\) is a 128\\-bit number used in conjunction with the key for encrypting blocks\\. If set to \"include,\" the IV is listed in the manifest\\. Otherwise, the IV is not in the manifest\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IvInManifest", + "type": "string" + }, + "IvSource": { + "markdownDescription": "Used with encryptionType\\. The IV \\(initialization vector\\) is a 128\\-bit number used in conjunction with the key for encrypting blocks\\. If this setting is \"followsSegmentNumber,\" it causes the IV to change every segment \\(to match the segment number\\)\\. If this is set to \"explicit,\" you must enter a constantIv value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IvSource", + "type": "string" + }, + "KeepSegments": { + "markdownDescription": "Applies only if the Mode field is LIVE\\. Specifies the number of media segments \\(\\.ts files\\) to retain in the destination directory\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeepSegments", + "type": "number" + }, + "KeyFormat": { + "markdownDescription": "Specifies how the key is represented in the resource identified by the URI\\. If the parameter is absent, an implicit value of \"identity\" is used\\. A reverse DNS string can also be specified\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyFormat", + "type": "string" + }, + "KeyFormatVersions": { + "markdownDescription": "Either a single positive integer version value or a slash\\-delimited list of version values \\(1/2/3\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyFormatVersions", + "type": "string" + }, + "KeyProviderSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.KeyProviderSettings", + "markdownDescription": "The key provider settings\\. \n*Required*: No \n*Type*: [KeyProviderSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-keyprovidersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyProviderSettings" + }, + "ManifestCompression": { + "markdownDescription": "When set to gzip, compresses HLS playlist\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestCompression", + "type": "string" + }, + "ManifestDurationFormat": { + "markdownDescription": "Indicates whether the output manifest should use a floating point or integer values for segment duration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestDurationFormat", + "type": "string" + }, + "MinSegmentLength": { + "markdownDescription": "When set, minimumSegmentLength is enforced by looking ahead and back within the specified range for a nearby avail and extending the segment size if needed\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinSegmentLength", + "type": "number" + }, + "Mode": { + "markdownDescription": "If \"vod,\" all segments are indexed and kept permanently in the destination and manifest\\. If \"live,\" only the number segments specified in keepSegments and indexNSegments are kept\\. Newer segments replace older segments, which might prevent players from rewinding all the way to the beginning of the channel\\. VOD mode uses HLS EXT\\-X\\-PLAYLIST\\-TYPE of EVENT while the channel is running, converting it to a \"VOD\" type manifest on completion of the stream\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", + "type": "string" + }, + "OutputSelection": { + "markdownDescription": "MANIFESTSANDSEGMENTS: Generates manifests \\(the master manifest, if applicable, and media manifests\\) for this output group\\. SEGMENTSONLY: Doesn't generate any manifests for this output group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputSelection", + "type": "string" + }, + "ProgramDateTime": { + "markdownDescription": "Includes or excludes the EXT\\-X\\-PROGRAM\\-DATE\\-TIME tag in \\.m3u8 manifest files\\. The value is calculated as follows: Either the program date and time are initialized using the input timecode source, or the time is initialized using the input timecode source and the date is initialized using the timestampOffset\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProgramDateTime", + "type": "string" + }, + "ProgramDateTimeClock": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProgramDateTimeClock", + "type": "string" + }, + "ProgramDateTimePeriod": { + "markdownDescription": "The period of insertion of the EXT\\-X\\-PROGRAM\\-DATE\\-TIME entry, in seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProgramDateTimePeriod", + "type": "number" + }, + "RedundantManifest": { + "markdownDescription": "ENABLED: The master manifest \\(\\.m3u8 file\\) for each pipeline includes information about both pipelines: first its own media files, then the media files of the other pipeline\\. This feature allows a playout device that supports stale manifest detection to switch from one manifest to the other, when the current manifest seems to be stale\\. There are still two destinations and two master manifests, but both master manifests reference the media files from both pipelines\\. DISABLED: The master manifest \\(\\.m3u8 file\\) for each pipeline includes information about its own pipeline only\\. For an HLS output group with MediaPackage as the destination, the DISABLED behavior is always followed\\. MediaPackage regenerates the manifests it serves to players, so a redundant manifest from MediaLive is irrelevant\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedundantManifest", + "type": "string" + }, + "SegmentLength": { + "markdownDescription": "The length of the MPEG\\-2 Transport Stream segments to create, in seconds\\. Note that segments will end on the next keyframe after this number of seconds, so the actual segment length might be longer\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentLength", + "type": "number" + }, + "SegmentationMode": { + "markdownDescription": "useInputSegmentation has been deprecated\\. The configured segment size is always used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentationMode", + "type": "string" + }, + "SegmentsPerSubdirectory": { + "markdownDescription": "The number of segments to write to a subdirectory before starting a new one\\. For this setting to have an effect, directoryStructure must be subdirectoryPerStream\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentsPerSubdirectory", + "type": "number" + }, + "StreamInfResolution": { + "markdownDescription": "The include or exclude RESOLUTION attribute for a video in the EXT\\-X\\-STREAM\\-INF tag of a variant manifest\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamInfResolution", + "type": "string" + }, + "TimedMetadataId3Frame": { + "markdownDescription": "Indicates the ID3 frame that has the timecode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimedMetadataId3Frame", + "type": "string" + }, + "TimedMetadataId3Period": { + "markdownDescription": "The timed metadata interval, in seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimedMetadataId3Period", + "type": "number" + }, + "TimestampDeltaMilliseconds": { + "markdownDescription": "Provides an extra millisecond delta offset to fine tune the timestamps\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimestampDeltaMilliseconds", + "type": "number" + }, + "TsFileMode": { + "markdownDescription": "SEGMENTEDFILES: Emits the program as segments \\-multiple \\.ts media files\\. SINGLEFILE: Applies only if the Mode field is VOD\\. Emits the program as a single \\.ts media file\\. The media manifest includes \\#EXT\\-X\\-BYTERANGE tags to index segments for playback\\. A typical use for this value is when sending the output to AWS Elemental MediaConvert, which can accept only a single media file\\. Playback while the channel is running is not guaranteed due to HTTP server caching\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TsFileMode", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.HlsInputSettings": { + "additionalProperties": false, + "properties": { + "Bandwidth": { + "markdownDescription": "When specified, the HLS stream with the m3u8 bandwidth that most closely matches this value is chosen\\. Otherwise, the highest bandwidth stream in the m3u8 is chosen\\. The bitrate is specified in bits per second, as in an HLS manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bandwidth", + "type": "number" + }, + "BufferSegments": { + "markdownDescription": "When specified, reading of the HLS input begins this many buffer segments from the end \\(most recently written segment\\)\\. When not specified, the HLS input begins with the first segment specified in the m3u8\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BufferSegments", + "type": "number" + }, + "Retries": { + "markdownDescription": "The number of consecutive times that attempts to read a manifest or segment must fail before the input is considered unavailable\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Retries", + "type": "number" + }, + "RetryInterval": { + "markdownDescription": "The number of seconds between retries when an attempt to read a manifest or segment fails\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryInterval", + "type": "number" + }, + "Scte35Source": { + "markdownDescription": "Identifies the source for the SCTE\\-35 messages that MediaLive will ingest\\. Messages can be ingested from the content segments \\(in the stream\\) or from tags in the playlist \\(the HLS manifest\\)\\. MediaLive ignores SCTE\\-35 information in the source that is not selected\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte35Source", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.HlsMediaStoreSettings": { + "additionalProperties": false, + "properties": { + "ConnectionRetryInterval": { + "markdownDescription": "The number of seconds to wait before retrying a connection to the CDN if the connection is lost\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionRetryInterval", + "type": "number" + }, + "FilecacheDuration": { + "markdownDescription": "The size, in seconds, of the file cache for streaming outputs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilecacheDuration", + "type": "number" + }, + "MediaStoreStorageClass": { + "markdownDescription": "When set to temporal, output files are stored in non\\-persistent memory for faster reading and writing\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MediaStoreStorageClass", + "type": "string" + }, + "NumRetries": { + "markdownDescription": "The number of retry attempts that are made before the channel is put into an error state\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumRetries", + "type": "number" + }, + "RestartDelay": { + "markdownDescription": "If a streaming output fails, the number of seconds to wait until a restart is initiated\\. A value of 0 means never restart\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestartDelay", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.HlsOutputSettings": { + "additionalProperties": false, + "properties": { + "H265PackagingType": { + "markdownDescription": "Only applicable when this output is referencing an H\\.265 video description\\. Specifies whether MP4 segments should be packaged as HEV1 or HVC1\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "H265PackagingType", + "type": "string" + }, + "HlsSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsSettings", + "markdownDescription": "The settings regarding the underlying stream\\. These settings are different for audio\\-only outputs\\. \n*Required*: No \n*Type*: [HlsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsSettings" + }, + "NameModifier": { + "markdownDescription": "A string that is concatenated to the end of the destination file name\\. Accepts \\\\\"Format Identifiers\\\\\":\\#formatIdentifierParameters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NameModifier", + "type": "string" + }, + "SegmentModifier": { + "markdownDescription": "A string that is concatenated to the end of segment file names\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentModifier", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.HlsS3Settings": { + "additionalProperties": false, + "properties": { + "CannedAcl": { + "markdownDescription": "Specify the canned ACL to apply to each S3 request\\. Defaults to none\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CannedAcl", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.HlsSettings": { + "additionalProperties": false, + "properties": { + "AudioOnlyHlsSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioOnlyHlsSettings", + "markdownDescription": "The settings for an audio\\-only output\\. \n*Required*: No \n*Type*: [AudioOnlyHlsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioonlyhlssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioOnlyHlsSettings" + }, + "Fmp4HlsSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Fmp4HlsSettings", + "markdownDescription": "The settings for an fMP4 container\\. \n*Required*: No \n*Type*: [Fmp4HlsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-fmp4hlssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Fmp4HlsSettings" + }, + "FrameCaptureHlsSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureHlsSettings", + "markdownDescription": "Settings for a frame capture output in an HLS output group\\. \n*Required*: No \n*Type*: [FrameCaptureHlsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecapturehlssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameCaptureHlsSettings" + }, + "StandardHlsSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.StandardHlsSettings", + "markdownDescription": "The settings for a standard output \\(an output that is not audio\\-only\\)\\. \n*Required*: No \n*Type*: [StandardHlsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-standardhlssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StandardHlsSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.HlsWebdavSettings": { + "additionalProperties": false, + "properties": { + "ConnectionRetryInterval": { + "markdownDescription": "The number of seconds to wait before retrying a connection to the CDN if the connection is lost\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionRetryInterval", + "type": "number" + }, + "FilecacheDuration": { + "markdownDescription": "The size, in seconds, of the file cache for streaming outputs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilecacheDuration", + "type": "number" + }, + "HttpTransferMode": { + "markdownDescription": "Specifies whether to use chunked transfer encoding to WebDAV\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpTransferMode", + "type": "string" + }, + "NumRetries": { + "markdownDescription": "The number of retry attempts that are made before the channel is put into an error state\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumRetries", + "type": "number" + }, + "RestartDelay": { + "markdownDescription": "If a streaming output fails, the number of seconds to wait until a restart is initiated\\. A value of 0 means never restart\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Settings to implement automatic input failover in this input\\. \n*Required*: No \n*Type*: [AutomaticInputFailoverSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-automaticinputfailoversettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutomaticInputFailoverSettings" + }, + "InputAttachmentName": { + "markdownDescription": "A name for the attachment\\. This is required if you want to use this input in an input switch action\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputAttachmentName", + "type": "string" + }, + "InputId": { + "markdownDescription": "The ID of the input to attach\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InputId", + "type": "string" + }, + "InputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputSettings", + "markdownDescription": "Information about the content to extract from the input and about the general handling of the content\\. \n*Required*: No \n*Type*: [InputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.InputChannelLevel": { + "additionalProperties": false, + "properties": { + "Gain": { + "markdownDescription": "The remixing value\\. Units are in dB, and acceptable values are within the range from \\-60 \\(mute\\) to 6 dB\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Gain", + "type": "number" + }, + "InputChannel": { + "markdownDescription": "The index of the input channel that is used as a source\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputChannel", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.InputLocation": { + "additionalProperties": false, + "properties": { + "PasswordParam": { + "markdownDescription": "The password parameter that holds the password for accessing the downstream system\\. This applies only if the downstream system requires credentials\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PasswordParam", + "type": "string" + }, + "Uri": { + "markdownDescription": "The URI should be a path to a file that is accessible to the Live system \\(for example, an http:// URI\\) depending on the output type\\. For example, an RTMP destination should have a URI similar to rtmp://fmsserver/live\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Uri", + "type": "string" + }, + "Username": { + "markdownDescription": "The user name to connect to the downstream system\\. This applies only if the downstream system requires credentials\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.InputLossBehavior": { + "additionalProperties": false, + "properties": { + "BlackFrameMsec": { + "markdownDescription": "On input loss, the number of milliseconds to substitute black into the output before switching to the frame specified by inputLossImageType\\. A value x, where 0 <= x <= 1,000,000 and a value of 1,000,000, is interpreted as infinite\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlackFrameMsec", + "type": "number" + }, + "InputLossImageColor": { + "markdownDescription": "When the input loss image type is \"color,\" this field specifies the color to use\\. Value: 6 hex characters that represent the values of RGB\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputLossImageColor", + "type": "string" + }, + "InputLossImageSlate": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation", + "markdownDescription": "When the input loss image type is \"slate,\" these fields specify the parameters for accessing the slate\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputLossImageSlate" + }, + "InputLossImageType": { + "markdownDescription": "Indicates whether to substitute a solid color or a slate into the output after the input loss exceeds blackFrameMsec\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputLossImageType", + "type": "string" + }, + "RepeatFrameMsec": { + "markdownDescription": "On input loss, the number of milliseconds to repeat the previous picture before substituting black into the output\\. A value x, where 0 <= x <= 1,000,000 and a value of 1,000,000, is interpreted as infinite\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepeatFrameMsec", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.InputLossFailoverSettings": { + "additionalProperties": false, + "properties": { + "InputLossThresholdMsec": { + "markdownDescription": "The amount of time \\(in milliseconds\\) that no input is detected\\. After that time, an input failover will occur\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputLossThresholdMsec", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.InputSettings": { + "additionalProperties": false, + "properties": { + "AudioSelectors": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioSelector" + }, + "markdownDescription": "Information about the specific audio to extract from the input\\. \nThe parent of this entity is InputSettings\\. \n*Required*: No \n*Type*: List of [AudioSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioSelectors", + "type": "array" + }, + "CaptionSelectors": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionSelector" + }, + "markdownDescription": "Information about the specific captions to extract from the input\\. \n*Required*: No \n*Type*: List of [CaptionSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptionSelectors", + "type": "array" + }, + "DeblockFilter": { + "markdownDescription": "Enables or disables the deblock filter when filtering\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeblockFilter", + "type": "string" + }, + "DenoiseFilter": { + "markdownDescription": "Enables or disables the denoise filter when filtering\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DenoiseFilter", + "type": "string" + }, + "FilterStrength": { + "markdownDescription": "Adjusts the magnitude of filtering from 1 \\(minimal\\) to 5 \\(strongest\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterStrength", + "type": "number" + }, + "InputFilter": { + "markdownDescription": "Turns on the filter for this input\\. MPEG\\-2 inputs have the deblocking filter enabled by default\\. 1\\) auto \\- filtering is applied depending on input type/quality 2\\) disabled \\- no filtering is applied to the input 3\\) forced \\- filtering is applied regardless of the input type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputFilter", + "type": "string" + }, + "NetworkInputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.NetworkInputSettings", + "markdownDescription": "Information about how to connect to the upstream system\\. \n*Required*: No \n*Type*: [NetworkInputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-networkinputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NetworkInputSettings" + }, + "Scte35Pid": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte35Pid", + "type": "number" + }, + "Smpte2038DataPreference": { + "markdownDescription": "Specifies whether to extract applicable ancillary data from a SMPTE\\-2038 source in this input\\. Applicable data types are captions, timecode, AFD, and SCTE\\-104 messages\\. \\- PREFER: Extract from SMPTE\\-2038 if present in this input, otherwise extract from another source \\(if any\\)\\. \\- IGNORE: Never extract any ancillary data from SMPTE\\-2038\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Smpte2038DataPreference", + "type": "string" + }, + "SourceEndBehavior": { + "markdownDescription": "The loop input if it is a file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceEndBehavior", + "type": "string" + }, + "VideoSelector": { + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelector", + "markdownDescription": "Information about one video to extract from the input\\. \n*Required*: No \n*Type*: [VideoSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VideoSelector" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.InputSpecification": { + "additionalProperties": false, + "properties": { + "Codec": { + "markdownDescription": "The codec to include in the input specification for this channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Codec", + "type": "string" + }, + "MaximumBitrate": { + "markdownDescription": "The maximum input bitrate for any input attached to this channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumBitrate", + "type": "string" + }, + "Resolution": { + "markdownDescription": "The resolution for any input attached to this channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Resolution", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.KeyProviderSettings": { + "additionalProperties": false, + "properties": { + "StaticKeySettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.StaticKeySettings", + "markdownDescription": "The configuration of static key settings\\. \n*Required*: No \n*Type*: [StaticKeySettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-statickeysettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StaticKeySettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.M2tsSettings": { + "additionalProperties": false, + "properties": { + "AbsentInputAudioBehavior": { + "markdownDescription": "When set to drop, the output audio streams are removed from the program if the selected input audio stream is removed from the input\\. This allows the output audio configuration to dynamically change based on the input configuration\\. If this is set to encodeSilence, all output audio streams will output encoded silence when not connected to an active input stream\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AbsentInputAudioBehavior", + "type": "string" + }, + "Arib": { + "markdownDescription": "When set to enabled, uses ARIB\\-compliant field muxing and removes video descriptor\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arib", + "type": "string" + }, + "AribCaptionsPid": { + "markdownDescription": "The PID for ARIB Captions in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AribCaptionsPid", + "type": "string" + }, + "AribCaptionsPidControl": { + "markdownDescription": "If set to auto, The PID number used for ARIB Captions will be auto\\-selected from unused PIDs\\. If set to useConfigured, ARIB captions will be on the configured PID number\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AribCaptionsPidControl", + "type": "string" + }, + "AudioBufferModel": { + "markdownDescription": "When set to dvb, uses the DVB buffer model for Dolby Digital audio\\. When set to atsc, the ATSC model is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioBufferModel", + "type": "string" + }, + "AudioFramesPerPes": { + "markdownDescription": "The number of audio frames to insert for each PES packet\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioFramesPerPes", + "type": "number" + }, + "AudioPids": { + "markdownDescription": "The PID of the elementary audio streams in the transport stream\\. Multiple values are accepted, and can be entered in ranges or by comma separation\\. You can enter the value as a decimal or hexadecimal value\\. Each PID specified must be in the range of 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioPids", + "type": "string" + }, + "AudioStreamType": { + "markdownDescription": "When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87 for EAC3\\. When set to dvb, uses stream type = 0x06\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioStreamType", + "type": "string" + }, + "Bitrate": { + "markdownDescription": "The output bitrate of the transport stream in bits per second\\. Setting to 0 lets the muxer automatically determine the appropriate bitrate\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bitrate", + "type": "number" + }, + "BufferModel": { + "markdownDescription": "If set to multiplex, uses the multiplex buffer model for accurate interleaving\\. Setting to bufferModel to none can lead to lower latency, but low\\-memory devices might not be able to play back the stream without interruptions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BufferModel", + "type": "string" + }, + "CcDescriptor": { + "markdownDescription": "When set to enabled, generates captionServiceDescriptor in PMT\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CcDescriptor", + "type": "string" + }, + "DvbNitSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.DvbNitSettings", + "markdownDescription": "Inserts a DVB Network Information Table \\(NIT\\) at the specified table repetition interval\\. \n*Required*: No \n*Type*: [DvbNitSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbnitsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DvbNitSettings" + }, + "DvbSdtSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.DvbSdtSettings", + "markdownDescription": "Inserts a DVB Service Description Table \\(SDT\\) at the specified table repetition interval\\. \n*Required*: No \n*Type*: [DvbSdtSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsdtsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DvbSdtSettings" + }, + "DvbSubPids": { + "markdownDescription": "The PID for the input source DVB Subtitle data to this output\\. Multiple values are accepted, and can be entered in ranges and/or by comma separation\\. You can enter the value as a decimal or hexadecimal value\\. Each PID specified must be in the range of 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DvbSubPids", + "type": "string" + }, + "DvbTdtSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.DvbTdtSettings", + "markdownDescription": "Inserts DVB Time and Date Table \\(TDT\\) at the specified table repetition interval\\. \n*Required*: No \n*Type*: [DvbTdtSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbtdtsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DvbTdtSettings" + }, + "DvbTeletextPid": { + "markdownDescription": "The PID for the input source DVB Teletext data to this output\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DvbTeletextPid", + "type": "string" + }, + "Ebif": { + "markdownDescription": "If set to passthrough, passes any EBIF data from the input source to this output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ebif", + "type": "string" + }, + "EbpAudioInterval": { + "markdownDescription": "When videoAndFixedIntervals is selected, audio EBP markers are added to partitions 3 and 4\\. The interval between these additional markers is fixed, and is slightly shorter than the video EBP marker interval\\. This is only available when EBP Cablelabs segmentation markers are selected\\. Partitions 1 and 2 always follow the video interval\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EbpAudioInterval", + "type": "string" + }, + "EbpLookaheadMs": { + "markdownDescription": "When set, enforces that Encoder Boundary Points do not come within the specified time interval of each other by looking ahead at input video\\. If another EBP is going to come in within the specified time interval, the current EBP is not emitted, and the segment is \"stretched\" to the next marker\\. The lookahead value does not add latency to the system\\. The channel must be configured elsewhere to create sufficient latency to make the lookahead accurate\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EbpLookaheadMs", + "type": "number" + }, + "EbpPlacement": { + "markdownDescription": "Controls placement of EBP on audio PIDs\\. If set to videoAndAudioPids, EBP markers are placed on the video PID and all audio PIDs\\. If set to videoPid, EBP markers are placed on only the video PID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EbpPlacement", + "type": "string" + }, + "EcmPid": { + "markdownDescription": "This field is unused and deprecated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EcmPid", + "type": "string" + }, + "EsRateInPes": { + "markdownDescription": "Includes or excludes the ES Rate field in the PES header\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EsRateInPes", + "type": "string" + }, + "EtvPlatformPid": { + "markdownDescription": "The PID for the input source ETV Platform data to this output\\. You can enter it as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\) to 8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EtvPlatformPid", + "type": "string" + }, + "EtvSignalPid": { + "markdownDescription": "The PID for input source ETV Signal data to this output\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EtvSignalPid", + "type": "string" + }, + "FragmentTime": { + "markdownDescription": "The length in seconds of each fragment\\. This is used only with EBP markers\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FragmentTime", + "type": "number" + }, + "Klv": { + "markdownDescription": "If set to passthrough, passes any KLV data from the input source to this output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Klv", + "type": "string" + }, + "KlvDataPids": { + "markdownDescription": "The PID for the input source KLV data to this output\\. Multiple values are accepted, and can be entered in ranges or by comma separation\\. You can enter the value as a decimal or hexadecimal value\\. Each PID specified must be in the range of 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KlvDataPids", + "type": "string" + }, + "NielsenId3Behavior": { + "markdownDescription": "If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NielsenId3Behavior", + "type": "string" + }, + "NullPacketBitrate": { + "markdownDescription": "The value, in bits per second, of extra null packets to insert into the transport stream\\. This can be used if a downstream encryption system requires periodic null packets\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NullPacketBitrate", + "type": "number" + }, + "PatInterval": { + "markdownDescription": "The number of milliseconds between instances of this table in the output transport stream\\. Valid values are 0, 10\\.\\.1000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatInterval", + "type": "number" + }, + "PcrControl": { + "markdownDescription": "When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for every Packetized Elementary Stream \\(PES\\) header\\. This parameter is effective only when the PCR PID is the same as the video or audio elementary stream\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PcrControl", + "type": "string" + }, + "PcrPeriod": { + "markdownDescription": "The maximum time, in milliseconds, between Program Clock References \\(PCRs\\) inserted into the transport stream\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PcrPeriod", + "type": "number" + }, + "PcrPid": { + "markdownDescription": "The PID of the Program Clock Reference \\(PCR\\) in the transport stream\\. When no value is given, MediaLive assigns the same value as the video PID\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PcrPid", + "type": "string" + }, + "PmtInterval": { + "markdownDescription": "The number of milliseconds between instances of this table in the output transport stream\\. Valid values are 0, 10\\.\\.1000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PmtInterval", + "type": "number" + }, + "PmtPid": { + "markdownDescription": "The PID for the Program Map Table \\(PMT\\) in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PmtPid", + "type": "string" + }, + "ProgramNum": { + "markdownDescription": "The value of the program number field in the Program Map Table \\(PMT\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProgramNum", + "type": "number" + }, + "RateMode": { + "markdownDescription": "When VBR, does not insert null packets into the transport stream to fill the specified bitrate\\. The bitrate setting acts as the maximum bitrate when VBR is set\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RateMode", + "type": "string" + }, + "Scte27Pids": { + "markdownDescription": "The PID for the input source SCTE\\-27 data to this output\\. Multiple values are accepted, and can be entered in ranges or by comma separation\\. You can enter the value as a decimal or hexadecimal value\\. Each PID specified must be in the range of 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte27Pids", + "type": "string" + }, + "Scte35Control": { + "markdownDescription": "Optionally passes SCTE\\-35 signals from the input source to this output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte35Control", + "type": "string" + }, + "Scte35Pid": { + "markdownDescription": "The PID of the SCTE\\-35 stream in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte35Pid", + "type": "string" + }, + "SegmentationMarkers": { + "markdownDescription": "Inserts segmentation markers at each segmentationTime period\\. raiSegstart sets the Random Access Indicator bit in the adaptation field\\. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes\\. psiSegstart inserts PAT and PMT tables at the start of segments\\. ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable specification OC\\-SP\\-EBP\\-I01\\-130118\\. ebpLegacy adds Encoder Boundary Point information to the adaptation field using a legacy proprietary format\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentationMarkers", + "type": "string" + }, + "SegmentationStyle": { + "markdownDescription": "The segmentation style parameter controls how segmentation markers are inserted into the transport stream\\. With avails, it is possible that segments might be truncated, which can influence where future segmentation markers are inserted\\. When a segmentation style of resetCadence is selected and a segment is truncated due to an avail, we will reset the segmentation cadence\\. This means the subsequent segment will have a duration of $segmentationTime seconds\\. When a segmentation style of maintainCadence is selected and a segment is truncated due to an avail, we will not reset the segmentation cadence\\. This means the subsequent segment will likely be truncated as well\\. However, all segments after that will have a duration of $segmentationTime seconds\\. Note that EBP lookahead is a slight exception to this rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentationStyle", + "type": "string" + }, + "SegmentationTime": { + "markdownDescription": "The length, in seconds, of each segment\\. This is required unless markers is set to None\\_\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentationTime", + "type": "number" + }, + "TimedMetadataBehavior": { + "markdownDescription": "When set to passthrough, timed metadata is passed through from input to output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimedMetadataBehavior", + "type": "string" + }, + "TimedMetadataPid": { + "markdownDescription": "The PID of the timed metadata stream in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimedMetadataPid", + "type": "string" + }, + "TransportStreamId": { + "markdownDescription": "The value of the transport stream ID field in the Program Map Table \\(PMT\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransportStreamId", + "type": "number" + }, + "VideoPid": { + "markdownDescription": "The PID of the elementary video stream in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VideoPid", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.M3u8Settings": { + "additionalProperties": false, + "properties": { + "AudioFramesPerPes": { + "markdownDescription": "The number of audio frames to insert for each PES packet\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioFramesPerPes", + "type": "number" + }, + "AudioPids": { + "markdownDescription": "The PID of the elementary audio streams in the transport stream\\. Multiple values are accepted, and can be entered in ranges or by comma separation\\. You can enter the value as a decimal or hexadecimal value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioPids", + "type": "string" + }, + "EcmPid": { + "markdownDescription": "This parameter is unused and deprecated\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EcmPid", + "type": "string" + }, + "NielsenId3Behavior": { + "markdownDescription": "If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NielsenId3Behavior", + "type": "string" + }, + "PatInterval": { + "markdownDescription": "The number of milliseconds between instances of this table in the output transport stream\\. A value of \\\\\"0\\\\\" writes out the PMT once per segment file\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatInterval", + "type": "number" + }, + "PcrControl": { + "markdownDescription": "When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for every Packetized Elementary Stream \\(PES\\) header\\. This parameter is effective only when the PCR PID is the same as the video or audio elementary stream\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PcrControl", + "type": "string" + }, + "PcrPeriod": { + "markdownDescription": "The maximum time, in milliseconds, between Program Clock References \\(PCRs\\) inserted into the transport stream\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PcrPeriod", + "type": "number" + }, + "PcrPid": { + "markdownDescription": "The PID of the Program Clock Reference \\(PCR\\) in the transport stream\\. When no value is given, MediaLive assigns the same value as the video PID\\. You can enter the value as a decimal or hexadecimal value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PcrPid", + "type": "string" + }, + "PmtInterval": { + "markdownDescription": "The number of milliseconds between instances of this table in the output transport stream\\. A value of \\\\\"0\\\\\" writes out the PMT once per segment file\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PmtInterval", + "type": "number" + }, + "PmtPid": { + "markdownDescription": "The PID for the Program Map Table \\(PMT\\) in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PmtPid", + "type": "string" + }, + "ProgramNum": { + "markdownDescription": "The value of the program number field in the Program Map Table \\(PMT\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProgramNum", + "type": "number" + }, + "Scte35Behavior": { + "markdownDescription": "If set to passthrough, passes any SCTE\\-35 signals from the input source to this output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte35Behavior", + "type": "string" + }, + "Scte35Pid": { + "markdownDescription": "The PID of the SCTE\\-35 stream in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scte35Pid", + "type": "string" + }, + "TimedMetadataBehavior": { + "markdownDescription": "When set to passthrough, timed metadata is passed through from input to output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimedMetadataBehavior", + "type": "string" + }, + "TimedMetadataPid": { + "markdownDescription": "The PID of the timed metadata stream in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. Valid values are 32 \\(or 0x20\\)\\.\\.8182 \\(or 0x1ff6\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimedMetadataPid", + "type": "string" + }, + "TransportStreamId": { + "markdownDescription": "The value of the transport stream ID field in the Program Map Table \\(PMT\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransportStreamId", + "type": "number" + }, + "VideoPid": { + "markdownDescription": "The PID of the elementary video stream in the transport stream\\. You can enter the value as a decimal or hexadecimal value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VideoPid", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.MediaPackageGroupSettings": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef", + "markdownDescription": "The MediaPackage channel destination\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.MediaPackageOutputDestinationSettings": { + "additionalProperties": false, + "properties": { + "ChannelId": { + "markdownDescription": "The ID of the channel in MediaPackage that is the destination for this output group\\. You don't need to specify the individual inputs in MediaPackage; MediaLive handles the connection of the two MediaLive pipelines to the two MediaPackage inputs\\. The MediaPackage channel and MediaLive channel must be in the same Region\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelId", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.MediaPackageOutputSettings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.MotionGraphicsConfiguration": { + "additionalProperties": false, + "properties": { + "MotionGraphicsInsertion": { + "markdownDescription": "Enables or disables the motion graphics overlay feature in the channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MotionGraphicsInsertion", + "type": "string" + }, + "MotionGraphicsSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.MotionGraphicsSettings", + "markdownDescription": "Settings to enable and configure the motion graphics overlay feature in the channel\\. \n*Required*: No \n*Type*: [MotionGraphicsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-motiongraphicssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MotionGraphicsSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.MotionGraphicsSettings": { + "additionalProperties": false, + "properties": { + "HtmlMotionGraphicsSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.HtmlMotionGraphicsSettings", + "markdownDescription": "Settings to configure the motion graphics overlay to use an HTML asset\\. \n*Required*: No \n*Type*: [HtmlMotionGraphicsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-htmlmotiongraphicssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HtmlMotionGraphicsSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Mp2Settings": { + "additionalProperties": false, + "properties": { + "Bitrate": { + "markdownDescription": "The average bitrate in bits/second\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bitrate", + "type": "number" + }, + "CodingMode": { + "markdownDescription": "The MPEG2 Audio coding mode\\. Valid values are codingMode10 \\(for mono\\) or codingMode20 \\(for stereo\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodingMode", + "type": "string" + }, + "SampleRate": { + "markdownDescription": "The sample rate in Hz\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SampleRate", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Mpeg2FilterSettings": { + "additionalProperties": false, + "properties": { + "TemporalFilterSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.TemporalFilterSettings", + "markdownDescription": "Settings for applying the temporal filter to the video\\. \n*Required*: No \n*Type*: [TemporalFilterSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-temporalfiltersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemporalFilterSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Mpeg2Settings": { + "additionalProperties": false, + "properties": { + "AdaptiveQuantization": { + "markdownDescription": "Choose Off to disable adaptive quantization\\. Or choose another value to enable the quantizer and set its strength\\. The strengths are: Auto, Off, Low, Medium, High\\. When you enable this field, MediaLive allows intra\\-frame quantizers to vary, which might improve visual quality\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdaptiveQuantization", + "type": "string" + }, + "AfdSignaling": { + "markdownDescription": "Indicates the AFD values that MediaLive will write into the video encode\\. If you do not know what AFD signaling is, or if your downstream system has not given you guidance, choose AUTO\\. AUTO: MediaLive will try to preserve the input AFD value \\(in cases where multiple AFD values are valid\\)\\. FIXED: MediaLive will use the value you specify in fixedAFD\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AfdSignaling", + "type": "string" + }, + "ColorMetadata": { + "markdownDescription": "Specifies whether to include the color space metadata\\. The metadata describes the color space that applies to the video \\(the colorSpace field\\)\\. We recommend that you insert the metadata\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColorMetadata", + "type": "string" + }, + "ColorSpace": { + "markdownDescription": "Choose the type of color space conversion to apply to the output\\. For detailed information on setting up both the input and the output to obtain the desired color space in the output, see the section on \\\\\"MediaLive Features \\- Video \\- color space\\\\\" in the MediaLive User Guide\\. PASSTHROUGH: Keep the color space of the input content \\- do not convert it\\. AUTO:Convert all content that is SD to rec 601, and convert all content that is HD to rec 709\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColorSpace", + "type": "string" + }, + "DisplayAspectRatio": { + "markdownDescription": "Sets the pixel aspect ratio for the encode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayAspectRatio", + "type": "string" + }, + "FilterSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Mpeg2FilterSettings", + "markdownDescription": "Optionally specify a noise reduction filter, which can improve quality of compressed content\\. If you do not choose a filter, no filter will be applied\\. TEMPORAL: This filter is useful for both source content that is noisy \\(when it has excessive digital artifacts\\) and source content that is clean\\. When the content is noisy, the filter cleans up the source content before the encoding phase, with these two effects: First, it improves the output video quality because the content has been cleaned up\\. Secondly, it decreases the bandwidth because MediaLive does not waste bits on encoding noise\\. When the content is reasonably clean, the filter tends to decrease the bitrate\\. \n*Required*: No \n*Type*: [Mpeg2FilterSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2filtersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterSettings" + }, + "FixedAfd": { + "markdownDescription": "Complete this field only when afdSignaling is set to FIXED\\. Enter the AFD value \\(4 bits\\) to write on all frames of the video encode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FixedAfd", + "type": "string" + }, + "FramerateDenominator": { + "markdownDescription": "description\": \"The framerate denominator\\. For example, 1001\\. The framerate is the numerator divided by the denominator\\. For example, 24000 / 1001 = 23\\.976 FPS\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FramerateDenominator", + "type": "number" + }, + "FramerateNumerator": { + "markdownDescription": "The framerate numerator\\. For example, 24000\\. The framerate is the numerator divided by the denominator\\. For example, 24000 / 1001 = 23\\.976 FPS\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FramerateNumerator", + "type": "number" + }, + "GopClosedCadence": { + "markdownDescription": "MPEG2: default is open GOP\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopClosedCadence", + "type": "number" + }, + "GopNumBFrames": { + "markdownDescription": "Relates to the GOP structure\\. The number of B\\-frames between reference frames\\. If you do not know what a B\\-frame is, use the default\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopNumBFrames", + "type": "number" + }, + "GopSize": { + "markdownDescription": "Relates to the GOP structure\\. The GOP size \\(keyframe interval\\) in the units specified in gopSizeUnits\\. If you do not know what GOP is, use the default\\. If gopSizeUnits is frames, then the gopSize must be an integer and must be greater than or equal to 1\\. If gopSizeUnits is seconds, the gopSize must be greater than 0, but does not need to be an integer\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopSize", + "type": "number" + }, + "GopSizeUnits": { + "markdownDescription": "Relates to the GOP structure\\. Specifies whether the gopSize is specified in frames or seconds\\. If you do not plan to change the default gopSize, leave the default\\. If you specify SECONDS, MediaLive will internally convert the gop size to a frame count\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GopSizeUnits", + "type": "string" + }, + "ScanType": { + "markdownDescription": "Set the scan type of the output to PROGRESSIVE or INTERLACED \\(top field first\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScanType", + "type": "string" + }, + "SubgopLength": { + "markdownDescription": "Relates to the GOP structure\\. If you do not know what GOP is, use the default\\. FIXED: Set the number of B\\-frames in each sub\\-GOP to the value in gopNumBFrames\\. DYNAMIC: Let MediaLive optimize the number of B\\-frames in each sub\\-GOP, to improve visual quality\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubgopLength", + "type": "string" + }, + "TimecodeInsertion": { + "markdownDescription": "Determines how MediaLive inserts timecodes in the output video\\. For detailed information about setting up the input and the output for a timecode, see the section on \\\\\"MediaLive Features \\- Timecode configuration\\\\\" in the MediaLive User Guide\\. DISABLED: do not include timecodes\\. GOP\\_TIMECODE: Include timecode metadata in the GOP header\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimecodeInsertion", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.MsSmoothGroupSettings": { + "additionalProperties": false, + "properties": { + "AcquisitionPointId": { + "markdownDescription": "The value of the Acquisition Point Identity element that is used in each message placed in the sparse track\\. Enabled only if sparseTrackType is not \"none\\.\" \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcquisitionPointId", + "type": "string" + }, + "AudioOnlyTimecodeControl": { + "markdownDescription": "If set to passthrough for an audio\\-only Microsoft Smooth output, the fragment absolute time is set to the current timecode\\. This option does not write timecodes to the audio elementary stream\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioOnlyTimecodeControl", + "type": "string" + }, + "CertificateMode": { + "markdownDescription": "If set to verifyAuthenticity, verifies the HTTPS certificate chain to a trusted certificate authority \\(CA\\)\\. This causes HTTPS outputs to self\\-signed certificates to fail\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateMode", + "type": "string" + }, + "ConnectionRetryInterval": { + "markdownDescription": "The number of seconds to wait before retrying the connection to the IIS server if the connection is lost\\. Content is cached during this time, and the cache is delivered to the IIS server after the connection is re\\-established\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionRetryInterval", + "type": "number" + }, + "Destination": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef", + "markdownDescription": "The Smooth Streaming publish point on an IIS server\\. MediaLive acts as a \"Push\" encoder to IIS\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" + }, + "EventId": { + "markdownDescription": "The Microsoft Smooth channel ID that is sent to the IIS server\\. Specify the ID only if eventIdMode is set to useConfigured\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventId", + "type": "string" + }, + "EventIdMode": { + "markdownDescription": "Specifies whether to send a channel ID to the IIS server\\. If no channel ID is sent and the same channel is used without changing the publishing point, clients might see cached video from the previous run\\. Options: \\- \"useConfigured\" \\- use the value provided in eventId \\- \"useTimestamp\" \\- generate and send a channel ID based on the current timestamp \\- \"noEventId\" \\- do not send a channel ID to the IIS server\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventIdMode", + "type": "string" + }, + "EventStopBehavior": { + "markdownDescription": "When set to sendEos, sends an EOS signal to an IIS server when stopping the channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventStopBehavior", + "type": "string" + }, + "FilecacheDuration": { + "markdownDescription": "The size, in seconds, of the file cache for streaming outputs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilecacheDuration", + "type": "number" + }, + "FragmentLength": { + "markdownDescription": "The length, in seconds, of mp4 fragments to generate\\. The fragment length must be compatible with GOP size and frame rate\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FragmentLength", + "type": "number" + }, + "InputLossAction": { + "markdownDescription": "A parameter that controls output group behavior on an input loss\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputLossAction", + "type": "string" + }, + "NumRetries": { + "markdownDescription": "The number of retry attempts\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumRetries", + "type": "number" + }, + "RestartDelay": { + "markdownDescription": "The number of seconds before initiating a restart due to output failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestartDelay", + "type": "number" + }, + "SegmentationMode": { + "markdownDescription": "useInputSegmentation has been deprecated\\. The configured segment size is always used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentationMode", + "type": "string" + }, + "SendDelayMs": { + "markdownDescription": "The number of milliseconds to delay the output from the second pipeline\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SendDelayMs", + "type": "number" + }, + "SparseTrackType": { + "markdownDescription": "If set to scte35, uses incoming SCTE\\-35 messages to generate a sparse track in this group of Microsoft Smooth outputs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SparseTrackType", + "type": "string" + }, + "StreamManifestBehavior": { + "markdownDescription": "When set to send, sends a stream manifest so that the publishing point doesn't start until all streams start\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamManifestBehavior", + "type": "string" + }, + "TimestampOffset": { + "markdownDescription": "The timestamp offset for the channel\\. Used only if timestampOffsetMode is set to useConfiguredOffset\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimestampOffset", + "type": "string" + }, + "TimestampOffsetMode": { + "markdownDescription": "The type of timestamp date offset to use\\. \\- useEventStartDate: Use the date the channel was started as the offset \\- useConfiguredOffset: Use an explicitly configured date as the offset\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimestampOffsetMode", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.MsSmoothOutputSettings": { + "additionalProperties": false, + "properties": { + "H265PackagingType": { + "markdownDescription": "Only applicable when this output is referencing an H\\.265 video description\\. Specifies whether MP4 segments should be packaged as HEV1 or HVC1\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "H265PackagingType", + "type": "string" + }, + "NameModifier": { + "markdownDescription": "A string that is concatenated to the end of the destination file name\\. This is required for multiple outputs of the same type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Destination is a Multiplex\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.MultiplexProgramChannelDestinationSettings": { + "additionalProperties": false, + "properties": { + "MultiplexId": { + "markdownDescription": "The ID of the Multiplex that the encoder is providing output to\\. You do not need to specify the individual inputs to the Multiplex; MediaLive will handle the connection of the two MediaLive pipelines to the two Multiplex instances\\. The Multiplex must be in the same region as the Channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MultiplexId", + "type": "string" + }, + "ProgramName": { + "markdownDescription": "The program name of the Multiplex program that the encoder is providing output to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProgramName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.NetworkInputSettings": { + "additionalProperties": false, + "properties": { + "HlsInputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsInputSettings", + "markdownDescription": "Information about how to connect to the upstream system\\. \n*Required*: No \n*Type*: [HlsInputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsinputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsInputSettings" + }, + "ServerValidation": { + "markdownDescription": "Checks HTTPS server certificates\\. When set to checkCryptographyOnly, cryptography in the certificate is checked, but not the server's name\\. Certain subdomains \\(notably S3 buckets that use dots in the bucket name\\) don't strictly match the corresponding certificate's wildcard pattern and would otherwise cause the channel to error\\. This setting is ignored for protocols that do not use HTTPS\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerValidation", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.NielsenCBET": { + "additionalProperties": false, + "properties": { + "CbetCheckDigitString": { + "markdownDescription": "Enter the CBET check digits to use in the watermark\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CbetCheckDigitString", + "type": "string" + }, + "CbetStepaside": { + "markdownDescription": "Determines the method of CBET insertion mode when prior encoding is detected on the same layer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CbetStepaside", + "type": "string" + }, + "Csid": { + "markdownDescription": "Enter the CBET Source ID \\(CSID\\) to use in the watermark \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Csid", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.NielsenConfiguration": { + "additionalProperties": false, + "properties": { + "DistributorId": { + "markdownDescription": "Enter the Distributor ID assigned to your organization by Nielsen\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DistributorId", + "type": "string" + }, + "NielsenPcmToId3Tagging": { + "markdownDescription": "Enables Nielsen PCM to ID3 tagging \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NielsenPcmToId3Tagging", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.NielsenNaesIiNw": { + "additionalProperties": false, + "properties": { + "CheckDigitString": { + "markdownDescription": "Enter the check digit string for the watermark \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CheckDigitString", + "type": "string" + }, + "Sid": { + "markdownDescription": "Enter the Nielsen Source ID \\(SID\\) to include in the watermark \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sid", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.NielsenWatermarksSettings": { + "additionalProperties": false, + "properties": { + "NielsenCbetSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.NielsenCBET", + "markdownDescription": "Complete these fields only if you want to insert watermarks of type Nielsen CBET \n*Required*: No \n*Type*: [NielsenCBET](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-nielsencbet.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NielsenCbetSettings" + }, + "NielsenDistributionType": { + "markdownDescription": "Choose the distribution types that you want to assign to the watermarks: \\- PROGRAM\\_CONTENT \\- FINAL\\_DISTRIBUTOR \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NielsenDistributionType", + "type": "string" + }, + "NielsenNaesIiNwSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.NielsenNaesIiNw", + "markdownDescription": "Complete these fields only if you want to insert watermarks of type Nielsen NAES II \\(N2\\) and Nielsen NAES VI \\(NW\\)\\. \n*Required*: No \n*Type*: [NielsenNaesIiNw](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-nielsennaesiinw.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NielsenNaesIiNwSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Output": { + "additionalProperties": false, + "properties": { + "AudioDescriptionNames": { + "items": { + "type": "string" + }, + "markdownDescription": "The names of the audio descriptions that are used as audio sources for this output\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioDescriptionNames", + "type": "array" + }, + "CaptionDescriptionNames": { + "items": { + "type": "string" + }, + "markdownDescription": "The names of the caption descriptions that are used as captions sources for this output\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptionDescriptionNames", + "type": "array" + }, + "OutputName": { + "markdownDescription": "The name that is used to identify an output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputName", + "type": "string" + }, + "OutputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputSettings", + "markdownDescription": "The output type\\-specific settings\\. \n*Required*: No \n*Type*: [OutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputSettings" + }, + "VideoDescriptionName": { + "markdownDescription": "The name of the VideoDescription that is used as the source for this output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VideoDescriptionName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.OutputDestination": { + "additionalProperties": false, + "properties": { + "Id": { + "markdownDescription": "The ID for this destination\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "MediaPackageSettings": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.MediaPackageOutputDestinationSettings" + }, + "markdownDescription": "The destination settings for a MediaPackage output\\. \n*Required*: No \n*Type*: List of [MediaPackageOutputDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mediapackageoutputdestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MediaPackageSettings", + "type": "array" + }, + "MultiplexSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.MultiplexProgramChannelDestinationSettings", + "markdownDescription": "Destination settings for a Multiplex output; one destination for both encoders\\. \n*Required*: No \n*Type*: [MultiplexProgramChannelDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-multiplexprogramchanneldestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MultiplexSettings" + }, + "Settings": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputDestinationSettings" + }, + "markdownDescription": "The destination settings for an output\\. \n*Required*: No \n*Type*: List of [OutputDestinationSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestinationsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Settings", + "type": "array" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.OutputDestinationSettings": { + "additionalProperties": false, + "properties": { + "PasswordParam": { + "markdownDescription": "The password parameter that holds the password for accessing the downstream system\\. This password parameter applies only if the downstream system requires credentials\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PasswordParam", + "type": "string" + }, + "StreamName": { + "markdownDescription": "The stream name for the content\\. This applies only to RTMP outputs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamName", + "type": "string" + }, + "Url": { + "markdownDescription": "The URL for the destination\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", + "type": "string" + }, + "Username": { + "markdownDescription": "The user name to connect to the downstream system\\. This applies only if the downstream system requires credentials\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.OutputGroup": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "A custom output group name that you can optionally define\\. Only letters, numbers, and the underscore character are allowed\\. The maximum length is 32 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "OutputGroupSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputGroupSettings", + "markdownDescription": "The settings associated with the output group\\. \n*Required*: No \n*Type*: [OutputGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputgroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputGroupSettings" + }, + "Outputs": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Output" + }, + "markdownDescription": "The settings for the outputs in the output group\\. \n*Required*: No \n*Type*: List of [Output](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-output.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Outputs", + "type": "array" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.OutputGroupSettings": { + "additionalProperties": false, + "properties": { + "ArchiveGroupSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveGroupSettings", + "markdownDescription": "The configuration of an archive output group\\. \nThe parent of this entity is OutputGroupSettings\\. \n*Required*: No \n*Type*: [ArchiveGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivegroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArchiveGroupSettings" + }, + "FrameCaptureGroupSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureGroupSettings", + "markdownDescription": "The configuration of a frame capture output group\\. \n*Required*: No \n*Type*: [FrameCaptureGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecapturegroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameCaptureGroupSettings" + }, + "HlsGroupSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsGroupSettings", + "markdownDescription": "The configuration of an HLS output group\\. \n*Required*: No \n*Type*: [HlsGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsGroupSettings" + }, + "MediaPackageGroupSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.MediaPackageGroupSettings", + "markdownDescription": "The configuration of a MediaPackage output group\\. \n*Required*: No \n*Type*: [MediaPackageGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mediapackagegroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MediaPackageGroupSettings" + }, + "MsSmoothGroupSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.MsSmoothGroupSettings", + "markdownDescription": "The configuration of a Microsoft Smooth output group\\. \n*Required*: No \n*Type*: [MsSmoothGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MsSmoothGroupSettings" + }, + "MultiplexGroupSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.MultiplexGroupSettings", + "markdownDescription": "The settings for a Multiplex output group\\. \n*Required*: No \n*Type*: [MultiplexGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-multiplexgroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MultiplexGroupSettings" + }, + "RtmpGroupSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.RtmpGroupSettings", + "markdownDescription": "The configuration of an RTMP output group\\. \n*Required*: No \n*Type*: [RtmpGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpgroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RtmpGroupSettings" + }, + "UdpGroupSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.UdpGroupSettings", + "markdownDescription": "The configuration of a UDP output group\\. \n*Required*: No \n*Type*: [UdpGroupSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-udpgroupsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UdpGroupSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.OutputLocationRef": { + "additionalProperties": false, + "properties": { + "DestinationRefId": { + "markdownDescription": "A reference ID for this destination\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationRefId", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.OutputSettings": { + "additionalProperties": false, + "properties": { + "ArchiveOutputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveOutputSettings", + "markdownDescription": "The settings for an archive output\\. \n*Required*: No \n*Type*: [ArchiveOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archiveoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArchiveOutputSettings" + }, + "FrameCaptureOutputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureOutputSettings", + "markdownDescription": "The settings for a frame capture output\\. \nThe parent of this entity is OutputGroupSettings\\. \n*Required*: No \n*Type*: [FrameCaptureOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecaptureoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameCaptureOutputSettings" + }, + "HlsOutputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsOutputSettings", + "markdownDescription": "The settings for an HLS output\\. \nThe parent of this entity is OutputGroupSettings\\. \n*Required*: No \n*Type*: [HlsOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsOutputSettings" + }, + "MediaPackageOutputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.MediaPackageOutputSettings", + "markdownDescription": "The settings for a MediaPackage output\\. \nThe parent of this entity is OutputGroupSettings\\. \n*Required*: No \n*Type*: [MediaPackageOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mediapackageoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MediaPackageOutputSettings" + }, + "MsSmoothOutputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.MsSmoothOutputSettings", + "markdownDescription": "The settings for a Microsoft Smooth output\\. \n*Required*: No \n*Type*: [MsSmoothOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MsSmoothOutputSettings" + }, + "MultiplexOutputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.MultiplexOutputSettings", + "markdownDescription": "Configuration of a Multiplex output\\. \n*Required*: No \n*Type*: [MultiplexOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-multiplexoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MultiplexOutputSettings" + }, + "RtmpOutputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.RtmpOutputSettings", + "markdownDescription": "The settings for an RTMP output\\. \nThe parent of this entity is OutputGroupSettings\\. \n*Required*: No \n*Type*: [RtmpOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RtmpOutputSettings" + }, + "UdpOutputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.UdpOutputSettings", + "markdownDescription": "The settings for a UDP output\\. \nThe parent of this entity is OutputGroupSettings\\. \n*Required*: No \n*Type*: [UdpOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-udpoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "A mapping of input channels to output channels, with appropriate gain adjustments\\. \n*Required*: No \n*Type*: List of [AudioChannelMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiochannelmapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelMappings", + "type": "array" + }, + "ChannelsIn": { + "markdownDescription": "The number of input channels to be used\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelsIn", + "type": "number" + }, + "ChannelsOut": { + "markdownDescription": "The number of output channels to be produced\\. Valid values: 1, 2, 4, 6, 8\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "Choose the ad marker type for this output group\\. MediaLive will create a message based on the content of each SCTE\\-35 message, format it for that marker type, and insert it in the datastream\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdMarkers", + "type": "array" + }, + "AuthenticationScheme": { + "markdownDescription": "An authentication scheme to use when connecting with a CDN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticationScheme", + "type": "string" + }, + "CacheFullBehavior": { + "markdownDescription": "Controls behavior when the content cache fills up\\. If a remote origin server stalls the RTMP connection and doesn't accept content fast enough, the media cache fills up\\. When the cache reaches the duration specified by cacheLength, the cache stops accepting new content\\. If set to disconnectImmediately, the RTMP output forces a disconnect\\. Clear the media cache, and reconnect after restartDelay seconds\\. If set to waitForServer, the RTMP output waits up to 5 minutes to allow the origin server to begin accepting data again\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheFullBehavior", + "type": "string" + }, + "CacheLength": { + "markdownDescription": "The cache length, in seconds, that is used to calculate buffer size\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CacheLength", + "type": "number" + }, + "CaptionData": { + "markdownDescription": "Controls the types of data that pass to onCaptionInfo outputs\\. If set to all, 608 and 708 carried DTVCC data is passed\\. If set to field1AndField2608, DTVCC data is stripped out, but 608 data from both fields is passed\\. If set to field1608, only the data carried in 608 from field 1 video is passed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptionData", + "type": "string" + }, + "InputLossAction": { + "markdownDescription": "Controls the behavior of this RTMP group if the input becomes unavailable\\. emitOutput: Emit a slate until the input returns\\. pauseOutput: Stop transmitting data until the input returns\\. This does not close the underlying RTMP connection\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputLossAction", + "type": "string" + }, + "RestartDelay": { + "markdownDescription": "If a streaming output fails, the number of seconds to wait until a restart is initiated\\. A value of 0 means never restart\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestartDelay", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.RtmpOutputSettings": { + "additionalProperties": false, + "properties": { + "CertificateMode": { + "markdownDescription": "If set to verifyAuthenticity, verifies the TLS certificate chain to a trusted certificate authority \\(CA\\)\\. This causes RTMPS outputs with self\\-signed certificates to fail\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateMode", + "type": "string" + }, + "ConnectionRetryInterval": { + "markdownDescription": "The number of seconds to wait before retrying a connection to the Flash Media server if the connection is lost\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionRetryInterval", + "type": "number" + }, + "Destination": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef", + "markdownDescription": "The RTMP endpoint excluding the stream name \\(for example, rtmp://host/appname\\)\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" + }, + "NumRetries": { + "markdownDescription": "The number of retry attempts\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumRetries", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Scte20PlusEmbeddedDestinationSettings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.Scte20SourceSettings": { + "additionalProperties": false, + "properties": { + "Convert608To708": { + "markdownDescription": "If upconvert, 608 data is both passed through the \"608 compatibility bytes\" fields of the 708 wrapper as well as translated into 708\\. Any 708 data present in the source content is discarded\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Convert608To708", + "type": "string" + }, + "Source608ChannelNumber": { + "markdownDescription": "Specifies the 608/708 channel number within the video track from which to extract captions\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source608ChannelNumber", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Scte27DestinationSettings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.Scte27SourceSettings": { + "additionalProperties": false, + "properties": { + "OcrLanguage": { + "markdownDescription": "If you will configure a WebVTT caption description that references this caption selector, use this field to provide the language to consider when translating the image\\-based source to text\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OcrLanguage", + "type": "string" + }, + "Pid": { + "markdownDescription": "The PID field is used in conjunction with the captions selector languageCode field as follows: Specify PID and Language: Extracts captions from that PID; the language is \"informational\\.\" Specify PID and omit Language: Extracts the specified PID\\. Omit PID and specify Language: Extracts the specified language, whichever PID that happens to be\\. Omit PID and omit Language: Valid only if source is DVB\\-Sub that is being passed through; all languages are passed through\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Pid", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Scte35SpliceInsert": { + "additionalProperties": false, + "properties": { + "AdAvailOffset": { + "markdownDescription": "When specified, this offset \\(in milliseconds\\) is added to the input ad avail PTS time\\. This applies only to embedded SCTE 104/35 messages\\. It doesn't apply to OOB messages\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdAvailOffset", + "type": "number" + }, + "NoRegionalBlackoutFlag": { + "markdownDescription": "When set to ignore, segment descriptors with noRegionalBlackoutFlag set to 0 no longer trigger blackouts or ad avail slates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoRegionalBlackoutFlag", + "type": "string" + }, + "WebDeliveryAllowedFlag": { + "markdownDescription": "When set to ignore, segment descriptors with webDeliveryAllowedFlag set to 0 no longer trigger blackouts or ad avail slates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WebDeliveryAllowedFlag", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Scte35TimeSignalApos": { + "additionalProperties": false, + "properties": { + "AdAvailOffset": { + "markdownDescription": "When specified, this offset \\(in milliseconds\\) is added to the input ad avail PTS time\\. This applies only to embedded SCTE 104/35 messages\\. It doesn't apply to OOB messages\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdAvailOffset", + "type": "number" + }, + "NoRegionalBlackoutFlag": { + "markdownDescription": "When set to ignore, segment descriptors with noRegionalBlackoutFlag set to 0 no longer trigger blackouts or ad avail slates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoRegionalBlackoutFlag", + "type": "string" + }, + "WebDeliveryAllowedFlag": { + "markdownDescription": "When set to ignore, segment descriptors with webDeliveryAllowedFlag set to 0 no longer trigger blackouts or ad avail slates\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WebDeliveryAllowedFlag", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.SmpteTtDestinationSettings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.StandardHlsSettings": { + "additionalProperties": false, + "properties": { + "AudioRenditionSets": { + "markdownDescription": "Lists all the audio groups that are used with the video output stream\\. This inputs all the audio GROUP\\-IDs that are associated with the video, separated by a comma \\(,\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AudioRenditionSets", + "type": "string" + }, + "M3u8Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.M3u8Settings", + "markdownDescription": "Settings for the M3U8 container\\. \n*Required*: No \n*Type*: [M3u8Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m3u8settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "M3u8Settings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.StaticKeySettings": { + "additionalProperties": false, + "properties": { + "KeyProviderServer": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation", + "markdownDescription": "The URL of the license server that is used for protecting content\\. \n*Required*: No \n*Type*: [InputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyProviderServer" + }, + "StaticKeyValue": { + "markdownDescription": "The static key value as a 32 character hexadecimal string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Settings to configure the caption rectangle for an output captions that will be created using this Teletext source captions\\. \n*Required*: No \n*Type*: [CaptionRectangle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionrectangle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputRectangle" + }, + "PageNumber": { + "markdownDescription": "Specifies the Teletext page number within the data stream from which to extract captions\\. The range is 0x100 \\(256\\) to 0x8FF \\(2303\\)\\. This is unused for passthrough\\. It should be specified as a hexadecimal string with no \"0x\" prefix\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PageNumber", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.TemporalFilterSettings": { + "additionalProperties": false, + "properties": { + "PostFilterSharpening": { + "markdownDescription": "If you enable this filter, the results are the following: \\- If the source content is noisy \\(it contains excessive digital artifacts\\), the filter cleans up the source\\. \\- If the source content is already clean, the filter tends to decrease the bitrate, especially when the rate control mode is QVBR\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PostFilterSharpening", + "type": "string" + }, + "Strength": { + "markdownDescription": "Choose a filter strength\\. We recommend a strength of 1 or 2\\. A higher strength might take out good information, resulting in an image that is overly soft\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Strength", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.TimecodeConfig": { + "additionalProperties": false, + "properties": { + "Source": { + "markdownDescription": "Identifies the source for the timecode that will be associated with the channel outputs\\. Embedded \\(embedded\\): Initialize the output timecode with timecode from the source\\. If no embedded timecode is detected in the source, the system falls back to using \"Start at 0\" \\(zerobased\\)\\. System Clock \\(systemclock\\): Use the UTC time\\. Start at 0 \\(zerobased\\): The time of the first frame of the channel will be 00:00:00:00\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source", + "type": "string" + }, + "SyncThreshold": { + "markdownDescription": "The threshold in frames beyond which output timecode is resynchronized to the input timecode\\. Discrepancies below this threshold are permitted to avoid unnecessary discontinuities in the output timecode\\. There is no timecode sync when this is not specified\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SyncThreshold", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.TtmlDestinationSettings": { + "additionalProperties": false, + "properties": { + "StyleControl": { + "markdownDescription": "When set to passthrough, passes through style and position information from a TTML\\-like input source \\(TTML, SMPTE\\-TT, CFF\\-TT\\) to the CFF\\-TT output or TTML output\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StyleControl", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.UdpContainerSettings": { + "additionalProperties": false, + "properties": { + "M2tsSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.M2tsSettings", + "markdownDescription": "The M2TS configuration for this UDP output\\. \n*Required*: No \n*Type*: [M2tsSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "M2tsSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.UdpGroupSettings": { + "additionalProperties": false, + "properties": { + "InputLossAction": { + "markdownDescription": "Specifies the behavior of the last resort when the input video is lost, and no more backup inputs are available\\. When dropTs is selected, the entire transport stream stops emitting\\. When dropProgram is selected, the program can be dropped from the transport stream \\(and replaced with null packets to meet the TS bitrate requirement\\)\\. Or when emitProgram is selected, the transport stream continues to be produced normally with repeat frames, black frames, or slate frames substituted for the absent input video\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputLossAction", + "type": "string" + }, + "TimedMetadataId3Frame": { + "markdownDescription": "Indicates the ID3 frame that has the timecode\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimedMetadataId3Frame", + "type": "string" + }, + "TimedMetadataId3Period": { + "markdownDescription": "The timed metadata interval in seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimedMetadataId3Period", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.UdpOutputSettings": { + "additionalProperties": false, + "properties": { + "BufferMsec": { + "markdownDescription": "The UDP output buffering in milliseconds\\. Larger values increase latency through the transcoder but simultaneously assist the transcoder in maintaining a constant, low\\-jitter UDP/RTP output while accommodating clock recovery, input switching, input disruptions, picture reordering, and so on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BufferMsec", + "type": "number" + }, + "ContainerSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.UdpContainerSettings", + "markdownDescription": "The settings for the UDP output\\. \n*Required*: No \n*Type*: [UdpContainerSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-udpcontainersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerSettings" + }, + "Destination": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef", + "markdownDescription": "The destination address and port number for RTP or UDP packets\\. These can be unicast or multicast RTP or UDP \\(for example, rtp://239\\.10\\.10\\.10:5001 or udp://10\\.100\\.100\\.100:5002\\)\\. \n*Required*: No \n*Type*: [OutputLocationRef](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" + }, + "FecOutputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.FecOutputSettings", + "markdownDescription": "The settings for enabling and adjusting Forward Error Correction on UDP outputs\\. \n*Required*: No \n*Type*: [FecOutputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-fecoutputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FecOutputSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.VideoBlackFailoverSettings": { + "additionalProperties": false, + "properties": { + "BlackDetectThreshold": { + "markdownDescription": "A value used in calculating the threshold below which MediaLive considers a pixel to be 'black'\\. For the input to be considered black, every pixel in a frame must be below this threshold\\. The threshold is calculated as a percentage \\(expressed as a decimal\\) of white\\. Therefore \\.1 means 10% white \\(or 90% black\\)\\. Note how the formula works for any color depth\\. For example, if you set this field to 0\\.1 in 10\\-bit color depth: \\(1023\\*0\\.1=102\\.3\\), which means a pixel value of 102 or less is 'black'\\. If you set this field to \\.1 in an 8\\-bit color depth: \\(255\\*0\\.1=25\\.5\\), which means a pixel value of 25 or less is 'black'\\. The range is 0\\.0 to 1\\.0, with any number of decimal places\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlackDetectThreshold", + "type": "number" + }, + "VideoBlackThresholdMsec": { + "markdownDescription": "The amount of time \\(in milliseconds\\) that the active input must be black before automatic input failover occurs\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VideoBlackThresholdMsec", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.VideoCodecSettings": { + "additionalProperties": false, + "properties": { + "FrameCaptureSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureSettings", + "markdownDescription": "The settings for the video codec in a frame capture output\\. \n*Required*: No \n*Type*: [FrameCaptureSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecapturesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FrameCaptureSettings" + }, + "H264Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.H264Settings", + "markdownDescription": "The settings for the H\\.264 codec in the output\\. \n*Required*: No \n*Type*: [H264Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "H264Settings" + }, + "H265Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.H265Settings", + "markdownDescription": "Settings for video encoded with the H265 codec\\. \n*Required*: No \n*Type*: [H265Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "H265Settings" + }, + "Mpeg2Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Mpeg2Settings", + "markdownDescription": "Settings for video encoded with the MPEG\\-2 codec\\. \n*Required*: No \n*Type*: [Mpeg2Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mpeg2Settings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.VideoDescription": { + "additionalProperties": false, + "properties": { + "CodecSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoCodecSettings", + "markdownDescription": "The video codec settings\\. \n*Required*: No \n*Type*: [VideoCodecSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videocodecsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodecSettings" + }, + "Height": { + "markdownDescription": "The output video height, in pixels\\. This must be an even number\\. For most codecs, you can keep this field and width blank in order to use the height and width \\(resolution\\) from the source\\. Note that we don't recommend keeping the field blank\\. For the Frame Capture codec, height and width are required\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Height", + "type": "number" + }, + "Name": { + "markdownDescription": "The name of this VideoDescription\\. Outputs use this name to uniquely identify this description\\. Description names should be unique within this channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "RespondToAfd": { + "markdownDescription": "Indicates how to respond to the AFD values in the input stream\\. RESPOND causes input video to be clipped, depending on the AFD value, input display aspect ratio, and output display aspect ratio, and \\(except for the FRAMECAPTURE codec\\) includes the values in the output\\. PASSTHROUGH \\(does not apply to FRAMECAPTURE codec\\) ignores the AFD values and includes the values in the output, so input video is not clipped\\. NONE ignores the AFD values and does not include the values through to the output, so input video is not clipped\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RespondToAfd", + "type": "string" + }, + "ScalingBehavior": { + "markdownDescription": "STRETCHTOOUTPUT configures the output position to stretch the video to the specified output resolution \\(height and width\\)\\. This option overrides any position value\\. DEFAULT might insert black boxes \\(pillar boxes or letter boxes\\) around the video to provide the specified output resolution\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalingBehavior", + "type": "string" + }, + "Sharpness": { + "markdownDescription": "Changes the strength of the anti\\-alias filter used for scaling\\. 0 is the softest setting, and 100 is the sharpest\\. We recommend a setting of 50 for most content\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sharpness", + "type": "number" + }, + "Width": { + "markdownDescription": "The output video width, in pixels\\. It must be an even number\\. For most codecs, you can keep this field and height blank in order to use the height and width \\(resolution\\) from the source\\. Note that we don't recommend keeping the field blank\\. For the Frame Capture codec, height and width are required\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Width", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.VideoSelector": { + "additionalProperties": false, + "properties": { + "ColorSpace": { + "markdownDescription": "Specifies the color space of an input\\. This setting works in tandem with colorSpaceConversion to determine if MediaLive will perform any conversion\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColorSpace", + "type": "string" + }, + "ColorSpaceSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelectorColorSpaceSettings", + "markdownDescription": "Settings to configure color space settings in the incoming video\\. \n*Required*: No \n*Type*: [VideoSelectorColorSpaceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorcolorspacesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColorSpaceSettings" + }, + "ColorSpaceUsage": { + "markdownDescription": "Applies only if colorSpace is a value other than Follow\\. This field controls how the value in the colorSpace field is used\\. Fallback means that when the input does include color space data, that data is used, but when the input has no color space data, the value in colorSpace is used\\. Choose fallback if your input is sometimes missing color space data, but when it does have color space data, that data is correct\\. Force means to always use the value in colorSpace\\. Choose force if your input usually has no color space data or might have unreliable color space data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColorSpaceUsage", + "type": "string" + }, + "SelectorSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelectorSettings", + "markdownDescription": "Information about the video to select from the content\\. \n*Required*: No \n*Type*: [VideoSelectorSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SelectorSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.VideoSelectorColorSpaceSettings": { + "additionalProperties": false, + "properties": { + "Hdr10Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Hdr10Settings", + "markdownDescription": "Settings to configure color space settings in the incoming video\\. \n*Required*: No \n*Type*: [Hdr10Settings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hdr10settings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Hdr10Settings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.VideoSelectorPid": { + "additionalProperties": false, + "properties": { + "Pid": { + "markdownDescription": "Selects a specific PID from within a video source\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Pid", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.VideoSelectorProgramId": { + "additionalProperties": false, + "properties": { + "ProgramId": { + "markdownDescription": "Selects a specific program from within a multi\\-program transport stream\\. If the program doesn't exist, MediaLive selects the first program within the transport stream by default\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProgramId", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.VideoSelectorSettings": { + "additionalProperties": false, + "properties": { + "VideoSelectorPid": { + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelectorPid", + "markdownDescription": "Used to extract video by PID\\. \n*Required*: No \n*Type*: [VideoSelectorPid](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorpid.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VideoSelectorPid" + }, + "VideoSelectorProgramId": { + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelectorProgramId", + "markdownDescription": "Used to extract video by program ID\\. \n*Required*: No \n*Type*: [VideoSelectorProgramId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorprogramid.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VideoSelectorProgramId" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.VpcOutputSettings": { + "additionalProperties": false, + "properties": { + "PublicAddressAllocationIds": { + "items": { + "type": "string" + }, + "markdownDescription": "List of public address allocation IDs to associate with ENIs that will be created in Output VPC\\. Must specify one for SINGLE\\_PIPELINE, two for STANDARD channels \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublicAddressAllocationIds", + "type": "array" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of up to 5 EC2 VPC security group IDs to attach to the Output VPC network interfaces\\. If none are specified then the VPC default security group will be used \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of VPC subnet IDs from the same VPC\\. If STANDARD channel, subnet IDs must be mapped to two unique availability zones \\(AZ\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "type": "array" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.WavSettings": { + "additionalProperties": false, + "properties": { + "BitDepth": { + "markdownDescription": "Bits per sample\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BitDepth", + "type": "number" + }, + "CodingMode": { + "markdownDescription": "The audio coding mode for the WAV audio\\. The mode determines the number of channels in the audio\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CodingMode", + "type": "string" + }, + "SampleRate": { + "markdownDescription": "Sample rate in Hz\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SampleRate", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.WebvttDestinationSettings": { + "additionalProperties": false, + "properties": { + "StyleControl": { + "markdownDescription": "Controls whether the color and position of the source captions is passed through to the WebVTT output captions\\. PASSTHROUGH \\- Valid only if the source captions are EMBEDDED or TELETEXT\\. NO\\_STYLE\\_DATA \\- Don't pass through the style\\. The output captions will not contain any font styling information\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "Settings that apply only if the input is a push type of input\\. \n*Required*: No \n*Type*: List of [InputDestinationRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputdestinationrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destinations", + "type": "array" + }, + "InputDevices": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Input.InputDeviceSettings" + }, + "markdownDescription": "Settings that apply only if the input is an Elemental Link input\\. \n*Required*: No \n*Type*: List of [InputDeviceSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputdevicesettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputDevices", + "type": "array" + }, + "InputSecurityGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of input security groups \\(referenced by IDs\\) to attach to the input if the input is a push type\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputSecurityGroups", + "type": "array" + }, + "MediaConnectFlows": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Input.MediaConnectFlowRequest" + }, + "markdownDescription": "Settings that apply only if the input is a MediaConnect input\\. \n*Required*: No \n*Type*: List of [MediaConnectFlowRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-mediaconnectflowrequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MediaConnectFlows", + "type": "array" + }, + "Name": { + "markdownDescription": "A name for the input\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The IAM role for MediaLive to assume when creating a MediaConnect input or Amazon VPC input\\. This doesn't apply to other types of inputs\\. The role is identified by its ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "Sources": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Input.InputSourceRequest" + }, + "markdownDescription": "Settings that apply only if the input is a pull type of input\\. \n*Required*: No \n*Type*: List of [InputSourceRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputsourcerequest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sources", + "type": "array" + }, + "Tags": { + "markdownDescription": "A collection of tags for this input\\. Each tag is a key\\-value pair\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "object" + }, + "Type": { + "markdownDescription": "The type for this input\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + }, + "Vpc": { + "$ref": "#/definitions/AWS::MediaLive::Input.InputVpcRequest", + "markdownDescription": "Settings that apply only if the input is an push input where the source is on Amazon VPC\\. \n*Required*: No \n*Type*: [InputVpcRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputvpcrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Vpc" + } + }, + "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": { + "markdownDescription": "The stream name \\(application name/application instance\\) for the location the RTMP source content will be pushed to in MediaLive\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Input.InputDeviceRequest": { + "additionalProperties": false, + "properties": { + "Id": { + "markdownDescription": "This property is not used\\. Ignore it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Input.InputDeviceSettings": { + "additionalProperties": false, + "properties": { + "Id": { + "markdownDescription": "The unique ID for the device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Input.InputSourceRequest": { + "additionalProperties": false, + "properties": { + "PasswordParam": { + "markdownDescription": "The password parameter that holds the password for accessing the upstream system\\. The password parameter applies only if the upstream system requires credentials\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PasswordParam", + "type": "string" + }, + "Url": { + "markdownDescription": "For a pull input, the URL where MediaLive pulls the source content from\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", + "type": "string" + }, + "Username": { + "markdownDescription": "The user name to connect to the upstream system\\. The user name applies only if the upstream system requires credentials\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Input.InputVpcRequest": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of up to five VPC security group IDs to attach to the input VPC network interfaces\\. The security groups require subnet IDs\\. If none are specified, MediaLive uses the VPC default security group\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of two VPC subnet IDs from the same VPC\\. You must associate subnet IDs to two unique Availability Zones\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "type": "array" + } + }, + "type": "object" + }, + "AWS::MediaLive::Input.MediaConnectFlowRequest": { + "additionalProperties": false, + "properties": { + "FlowArn": { + "markdownDescription": "The ARN of one or two MediaConnect flows that are the sources for this MediaConnect input\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A collection of tags for this input security group\\. Each tag is a key\\-value pair\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "object" + }, + "WhitelistRules": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::InputSecurityGroup.InputWhitelistRuleCidr" + }, + "markdownDescription": "The list of IPv4 CIDR addresses to include in the input security group as \"allowed\" addresses\\. \n*Required*: No \n*Type*: List of [InputWhitelistRuleCidr](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-inputsecuritygroup-inputwhitelistrulecidr.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WhitelistRules", + "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": { + "markdownDescription": "An IPv4 CIDR range to include in this input security group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Unique identifier that you assign to the asset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "PackagingGroupId": { + "markdownDescription": "The ID of the packaging group associated with this asset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PackagingGroupId", + "type": "string" + }, + "ResourceId": { + "markdownDescription": "Unique identifier for this asset, as it's configured in the key provider service\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceId", + "type": "string" + }, + "SourceArn": { + "markdownDescription": "The ARN for the source content in Amazon S3\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceArn", + "type": "string" + }, + "SourceRoleArn": { + "markdownDescription": "The ARN for the IAM role that provides AWS Elemental MediaPackage access to the Amazon S3 bucket where the source content is stored\\. Valid format: arn:aws:iam::\\{accountID\\}:role/\\{name\\} \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceRoleArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to assign to the asset\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The ID of a packaging configuration that's applied to this asset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PackagingConfigurationId", + "type": "string" + }, + "Url": { + "markdownDescription": "The URL that's used to request content from this endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Any descriptive information that you want to add to the channel for future identification purposes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "EgressAccessLogs": { + "$ref": "#/definitions/AWS::MediaPackage::Channel.LogConfiguration", + "markdownDescription": "Configures egress access logs\\. \n*Required*: No \n*Type*: [LogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-channel-logconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EgressAccessLogs" + }, + "HlsIngest": { + "$ref": "#/definitions/AWS::MediaPackage::Channel.HlsIngest" + }, + "Id": { + "markdownDescription": "Unique identifier that you assign to the channel\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "string" + }, + "IngressAccessLogs": { + "$ref": "#/definitions/AWS::MediaPackage::Channel.LogConfiguration", + "markdownDescription": "Configures ingress access logs\\. \n*Required*: No \n*Type*: [LogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-channel-logconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IngressAccessLogs" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to assign to the channel\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "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": { + "markdownDescription": "Sets a custom Amazon CloudWatch log group name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Parameters for CDN authorization\\. \n*Required*: No \n*Type*: [Authorization](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-authorization.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Authorization" + }, + "ChannelId": { + "markdownDescription": "The ID of the channel associated with this endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelId", + "type": "string" + }, + "CmafPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.CmafPackage", + "markdownDescription": "Parameters for Common Media Application Format \\(CMAF\\) packaging\\. \n*Required*: No \n*Type*: [CmafPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafpackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CmafPackage" + }, + "DashPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.DashPackage", + "markdownDescription": "Parameters for DASH packaging\\. \n*Required*: No \n*Type*: [DashPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DashPackage" + }, + "Description": { + "markdownDescription": "Any descriptive information that you want to add to the endpoint for future identification purposes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "HlsPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsPackage", + "markdownDescription": "Parameters for Apple HLS packaging\\. \n*Required*: No \n*Type*: [HlsPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsPackage" + }, + "Id": { + "markdownDescription": "The manifest ID is required and must be unique within the OriginEndpoint\\. The ID can't be changed after the endpoint is created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "string" + }, + "ManifestName": { + "markdownDescription": "A short string that's appended to the end of the endpoint URL to create a unique path to this endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestName", + "type": "string" + }, + "MssPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.MssPackage", + "markdownDescription": "Parameters for Microsoft Smooth Streaming packaging\\. \n*Required*: No \n*Type*: [MssPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-msspackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MssPackage" + }, + "Origination": { + "markdownDescription": "Controls video origination from this endpoint\\. \n+ **ALLOW** \\- enables this endpoint to serve content to requesting devices\\.\n+ **DENY** \\- prevents this endpoint from serving content\\. Denying origination is helpful for harvesting live\\-to\\-VOD assets\\. For more information about harvesting and origination, see [Live\\-to\\-VOD Requirements](https://docs.aws.amazon.com/mediapackage/latest/ug/ltov-reqmts.html)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Origination", + "type": "string" + }, + "StartoverWindowSeconds": { + "markdownDescription": "Maximum duration \\(seconds\\) of content to retain for startover playback\\. Omit this attribute or enter `0` to indicate that startover playback is disabled for this endpoint\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartoverWindowSeconds", + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to assign to the endpoint\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TimeDelaySeconds": { + "markdownDescription": "Minimum duration \\(seconds\\) of delay to enforce on the playback of live content\\. Omit this attribute or enter `0` to indicate that there is no time delay in effect for this endpoint \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeDelaySeconds", + "type": "number" + }, + "Whitelist": { + "items": { + "type": "string" + }, + "markdownDescription": "The IP addresses that can access this endpoint\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Whitelist", + "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the secret in AWS Secrets Manager that your Content Distribution Network \\(CDN\\) uses for authorization to access your endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CdnIdentifierSecret", + "type": "string" + }, + "SecretsRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the IAM role that allows MediaPackage to communicate with AWS Secrets Manager\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsRoleArn", + "type": "string" + } + }, + "required": [ + "CdnIdentifierSecret", + "SecretsRoleArn" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.CmafEncryption": { + "additionalProperties": false, + "properties": { + "ConstantInitializationVector": { + "markdownDescription": "An optional 128\\-bit, 16\\-byte hex value represented by a 32\\-character string, used in conjunction with the key for encrypting blocks\\. If you don't specify a value, then MediaPackage creates the constant initialization vector \\(IV\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConstantInitializationVector", + "type": "string" + }, + "EncryptionMethod": { + "type": "string" + }, + "KeyRotationIntervalSeconds": { + "markdownDescription": "Number of seconds before AWS Elemental MediaPackage rotates to a new key\\. By default, rotation is set to 60 seconds\\. Set to `0` to disable key rotation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyRotationIntervalSeconds", + "type": "number" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider", + "markdownDescription": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.CmafPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.CmafEncryption", + "markdownDescription": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [CmafEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encryption" + }, + "HlsManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsManifest" + }, + "markdownDescription": "A list of HLS manifest configurations that are available from this endpoint\\. \n*Required*: No \n*Type*: List of [HlsManifest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsManifests", + "type": "array" + }, + "SegmentDurationSeconds": { + "markdownDescription": "Duration \\(in seconds\\) of each segment\\. Actual segments are rounded to the nearest multiple of the source segment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentDurationSeconds", + "type": "number" + }, + "SegmentPrefix": { + "markdownDescription": "An optional custom string that is prepended to the name of each segment\\. If not specified, the segment prefix defaults to the ChannelId\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentPrefix", + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection", + "markdownDescription": "Limitations for outputs from the endpoint, based on the video bitrate\\. \n*Required*: No \n*Type*: [StreamSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-streamselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.DashEncryption": { + "additionalProperties": false, + "properties": { + "KeyRotationIntervalSeconds": { + "markdownDescription": "Number of seconds before AWS Elemental MediaPackage rotates to a new key\\. By default, rotation is set to 60 seconds\\. Set to `0` to disable key rotation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyRotationIntervalSeconds", + "type": "number" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider", + "markdownDescription": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.DashPackage": { + "additionalProperties": false, + "properties": { + "AdTriggers": { + "items": { + "type": "string" + }, + "markdownDescription": "Specifies the SCTE\\-35 message types that MediaPackage treats as ad markers in the output manifest\\. \n Valid values: \n+ **BREAK**\n+ **DISTRIBUTOR\\_ADVERTISEMENT**\n+ **DISTRIBUTOR\\_OVERLAY\\_PLACEMENT\\_OPPORTUNITY**\\.\n+ **DISTRIBUTOR\\_PLACEMENT\\_OPPORTUNITY**\\.\n+ **PROVIDER\\_ADVERTISEMENT**\\.\n+ **PROVIDER\\_OVERLAY\\_PLACEMENT\\_OPPORTUNITY**\\.\n+ **PROVIDER\\_PLACEMENT\\_OPPORTUNITY**\\.\n+ **SPLICE\\_INSERT**\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdTriggers", + "type": "array" + }, + "AdsOnDeliveryRestrictions": { + "markdownDescription": "The flags on SCTE\\-35 segmentation descriptors that have to be present for MediaPackage to insert ad markers in the output manifest\\. For information about SCTE\\-35 in MediaPackage, see [SCTE\\-35 Message Options in AWS Elemental MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/ug/scte.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdsOnDeliveryRestrictions", + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.DashEncryption", + "markdownDescription": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [DashEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encryption" + }, + "IncludeIframeOnlyStream": { + "type": "boolean" + }, + "ManifestLayout": { + "markdownDescription": "Determines the position of some tags in the manifest\\. \nOptions: \n+ **FULL** \\- elements like `SegmentTemplate` and `ContentProtection` are included in each `Representation`\\.\n+ **COMPACT** \\- duplicate elements are combined and presented at the `AdaptationSet` level\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestLayout", + "type": "string" + }, + "ManifestWindowSeconds": { + "markdownDescription": "Time window \\(in seconds\\) contained in each manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestWindowSeconds", + "type": "number" + }, + "MinBufferTimeSeconds": { + "markdownDescription": "Minimum amount of content \\(measured in seconds\\) that a player must keep available in the buffer\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinBufferTimeSeconds", + "type": "number" + }, + "MinUpdatePeriodSeconds": { + "markdownDescription": "Minimum amount of time \\(in seconds\\) that the player should wait before requesting updates to the manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinUpdatePeriodSeconds", + "type": "number" + }, + "PeriodTriggers": { + "items": { + "type": "string" + }, + "markdownDescription": "Controls whether MediaPackage produces single\\-period or multi\\-period DASH manifests\\. For more information about periods, see [Multi\\-period DASH in AWS Elemental MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/ug/multi-period.html)\\. \nValid values: \n+ **ADS** \\- MediaPackage will produce multi\\-period DASH manifests\\. Periods are created based on the SCTE\\-35 ad markers present in the input manifest\\.\n+ *No value* \\- MediaPackage will produce single\\-period DASH manifests\\. This is the default setting\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PeriodTriggers", + "type": "array" + }, + "Profile": { + "markdownDescription": "DASH profile for the output, such as HbbTV\\. \nValid values: \n+ **NONE** \\- the output doesn't use a DASH profile\\.\n+ **HBBTV\\_1\\_5** \\- the output is HbbTV\\-compliant\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Profile", + "type": "string" + }, + "SegmentDurationSeconds": { + "markdownDescription": "Duration \\(in seconds\\) of each fragment\\. Actual fragments are rounded to the nearest multiple of the source fragment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentDurationSeconds", + "type": "number" + }, + "SegmentTemplateFormat": { + "markdownDescription": "Determines the type of variable used in the `media` URL of the `SegmentTemplate` tag in the manifest\\. Also specifies if segment timeline information is included in `SegmentTimeline` or `SegmentTemplate`\\. \n+ **NUMBER\\_WITH\\_TIMELINE** \\- The `$Number$` variable is used in the `media` URL\\. The value of this variable is the sequential number of the segment\\. A full `SegmentTimeline` object is presented in each `SegmentTemplate`\\.\n+ **NUMBER\\_WITH\\_DURATION** \\- The `$Number$` variable is used in the `media` URL and a `duration` attribute is added to the segment template\\. The `SegmentTimeline` object is removed from the representation\\.\n+ **TIME\\_WITH\\_TIMELINE** \\- The `$Time$` variable is used in the `media` URL\\. The value of this variable is the timestamp of when the segment starts\\. A full `SegmentTimeline` object is presented in each `SegmentTemplate`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentTemplateFormat", + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection", + "markdownDescription": "Limitations for outputs from the endpoint, based on the video bitrate\\. \n*Required*: No \n*Type*: [StreamSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-streamselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamSelection" + }, + "SuggestedPresentationDelaySeconds": { + "markdownDescription": "Amount of time \\(in seconds\\) that the player should be from the live point at the end of the manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuggestedPresentationDelaySeconds", + "type": "number" + }, + "UtcTiming": { + "markdownDescription": "Determines the type of UTC timing included in the DASH Media Presentation Description \\(MPD\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UtcTiming", + "type": "string" + }, + "UtcTimingUri": { + "markdownDescription": "Specifies the value attribute of the UTC timing field when utcTiming is set to HTTP\\-ISO or HTTP\\-HEAD\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A 128\\-bit, 16\\-byte hex value represented by a 32\\-character string, used with the key for encrypting blocks\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConstantInitializationVector", + "type": "string" + }, + "EncryptionMethod": { + "markdownDescription": "HLS encryption type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionMethod", + "type": "string" + }, + "KeyRotationIntervalSeconds": { + "markdownDescription": "Number of seconds before AWS Elemental MediaPackage rotates to a new key\\. By default, rotation is set to 60 seconds\\. Set to `0` to disable key rotation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyRotationIntervalSeconds", + "type": "number" + }, + "RepeatExtXKey": { + "markdownDescription": "Repeat the `EXT-X-KEY `directive for every media segment\\. This might result in an increase in client requests to the DRM server\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepeatExtXKey", + "type": "boolean" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider", + "markdownDescription": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.HlsManifest": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "markdownDescription": "Controls how ad markers are included in the packaged endpoint\\. Valid values are `none`, `passthrough`, or `scte35_enhanced`\\. \n+ **NONE** \\- omits all SCTE\\-35 ad markers from the output\\.\n+ **PASSTHROUGH** \\- creates a copy in the output of the SCTE\\-35 ad markers \\(comments\\) taken directly from the input manifest\\.\n+ **SCTE35\\_ENHANCED** \\- generates ad markers and blackout tags in the output based on the SCTE\\-35 messages from the input manifest\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdMarkers", + "type": "string" + }, + "AdTriggers": { + "items": { + "type": "string" + }, + "markdownDescription": "Specifies the SCTE\\-35 message types that MediaPackage treats as ad markers in the output manifest\\. \nValid values: \n+ **BREAK**\n+ **DISTRIBUTOR\\_ADVERTISEMENT**\n+ **DISTRIBUTOR\\_OVERLAY\\_PLACEMENT\\_OPPORTUNITY**\n+ **DISTRIBUTOR\\_PLACEMENT\\_OPPORTUNITY**\n+ **PROVIDER\\_ADVERTISEMENT**\n+ **PROVIDER\\_OVERLAY\\_PLACEMENT\\_OPPORTUNITY**\n+ **PROVIDER\\_PLACEMENT\\_OPPORTUNITY**\n+ **SPLICE\\_INSERT**\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdTriggers", + "type": "array" + }, + "AdsOnDeliveryRestrictions": { + "markdownDescription": "The flags on SCTE\\-35 segmentation descriptors that have to be present for MediaPackage to insert ad markers in the output manifest\\. For information about SCTE\\-35 in MediaPackage, see [SCTE\\-35 Message Options in AWS Elemental MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/ug/scte.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdsOnDeliveryRestrictions", + "type": "string" + }, + "Id": { + "markdownDescription": "The manifest ID is required and must be unique within the OriginEndpoint\\. The ID can't be changed after the endpoint is created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "IncludeIframeOnlyStream": { + "markdownDescription": "Applies to stream sets with a single video track only\\. When true, the stream set includes an additional I\\-frame only stream, along with the other tracks\\. If false, this extra stream is not included\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeIframeOnlyStream", + "type": "boolean" + }, + "ManifestName": { + "markdownDescription": "A short string that's appended to the end of the endpoint URL to create a unique path to this endpoint\\. The manifestName on the HLSManifest object overrides the manifestName that you provided on the originEndpoint object\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestName", + "type": "string" + }, + "PlaylistType": { + "markdownDescription": "When specified as either `event` or `vod`, a corresponding `EXT-X-PLAYLIST-TYPE` entry is included in the media playlist\\. Indicates if the playlist is live\\-to\\-VOD content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlaylistType", + "type": "string" + }, + "PlaylistWindowSeconds": { + "markdownDescription": "Time window \\(in seconds\\) contained in each parent manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlaylistWindowSeconds", + "type": "number" + }, + "ProgramDateTimeIntervalSeconds": { + "markdownDescription": "Inserts `EXT-X-PROGRAM-DATE-TIME `tags in the output manifest at the interval that you specify\\. Additionally, ID3Timed metadata messages are generated every 5 seconds starting when the content was ingested\\. \nIrrespective of this parameter, if any ID3Timed metadata is in the HLS input, it is passed through to the HLS output\\. \nOmit this attribute or enter `0` to indicate that the `EXT-X-PROGRAM-DATE-TIME` tags are not included in the manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProgramDateTimeIntervalSeconds", + "type": "number" + }, + "Url": { + "markdownDescription": "The URL that's used to request this manifest from this endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", + "type": "string" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.HlsPackage": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "markdownDescription": "Controls how ad markers are included in the packaged endpoint\\. Valid values are `none`, `passthrough`, or `scte35_enhanced`\\. \n+ **NONE** \\- omits all SCTE\\-35 ad markers from the output\\.\n+ **PASSTHROUGH** \\- creates a copy in the output of the SCTE\\-35 ad markers \\(comments\\) taken directly from the input manifest\\.\n+ **SCTE35\\_ENHANCED** \\- generates ad markers and blackout tags in the output based on the SCTE\\-35 messages from the input manifest\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdMarkers", + "type": "string" + }, + "AdTriggers": { + "items": { + "type": "string" + }, + "markdownDescription": "Specifies the SCTE\\-35 message types that MediaPackage treats as ad markers in the output manifest\\. \n Valid values: \n+ **BREAK**\n+ **DISTRIBUTOR\\_ADVERTISEMENT**\n+ **DISTRIBUTOR\\_OVERLAY\\_PLACEMENT\\_OPPORTUNITY**\n+ **DISTRIBUTOR\\_PLACEMENT\\_OPPORTUNITY**\n+ **PROVIDER\\_ADVERTISEMENT**\n+ **PROVIDER\\_OVERLAY\\_PLACEMENT\\_OPPORTUNITY**\n+ **PROVIDER\\_PLACEMENT\\_OPPORTUNITY**\n+ **SPLICE\\_INSERT**\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdTriggers", + "type": "array" + }, + "AdsOnDeliveryRestrictions": { + "markdownDescription": "The flags on SCTE\\-35 segmentation descriptors that have to be present for MediaPackage to insert ad markers in the output manifest\\. For information about SCTE\\-35 in MediaPackage, see [SCTE\\-35 Message Options in AWS Elemental MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/ug/scte.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdsOnDeliveryRestrictions", + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsEncryption", + "markdownDescription": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [HlsEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encryption" + }, + "IncludeDvbSubtitles": { + "type": "boolean" + }, + "IncludeIframeOnlyStream": { + "markdownDescription": "Only applies to stream sets with a single video track\\. When true, the stream set includes an additional I\\-frame only stream, along with the other tracks\\. If false, this extra stream is not included\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeIframeOnlyStream", + "type": "boolean" + }, + "PlaylistType": { + "markdownDescription": "When specified as either `event` or `vod`, a corresponding `EXT-X-PLAYLIST-TYPE` entry is included in the media playlist\\. Indicates if the playlist is live\\-to\\-VOD content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlaylistType", + "type": "string" + }, + "PlaylistWindowSeconds": { + "markdownDescription": "Time window \\(in seconds\\) contained in each parent manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PlaylistWindowSeconds", + "type": "number" + }, + "ProgramDateTimeIntervalSeconds": { + "markdownDescription": "Inserts `EXT-X-PROGRAM-DATE-TIME` tags in the output manifest at the interval that you specify\\. Additionally, ID3Timed metadata messages are generated every 5 seconds starting when the content was ingested\\. \nIrrespective of this parameter, if any ID3Timed metadata is in the HLS input, it is passed through to the HLS output\\. \nOmit this attribute or enter `0` to indicate that the `EXT-X-PROGRAM-DATE-TIME` tags are not included in the manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProgramDateTimeIntervalSeconds", + "type": "number" + }, + "SegmentDurationSeconds": { + "markdownDescription": "Duration \\(in seconds\\) of each fragment\\. Actual fragments are rounded to the nearest multiple of the source fragment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentDurationSeconds", + "type": "number" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection", + "markdownDescription": "Limitations for outputs from the endpoint, based on the video bitrate\\. \n*Required*: No \n*Type*: [StreamSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-streamselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamSelection" + }, + "UseAudioRenditionGroup": { + "markdownDescription": "When true, AWS Elemental MediaPackage bundles all audio tracks in a rendition group\\. All other tracks in the stream can be used with any audio rendition from the group\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseAudioRenditionGroup", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.MssEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider", + "markdownDescription": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.MssPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.MssEncryption", + "markdownDescription": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [MssEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-mssencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encryption" + }, + "ManifestWindowSeconds": { + "markdownDescription": "Time window \\(in seconds\\) contained in each manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestWindowSeconds", + "type": "number" + }, + "SegmentDurationSeconds": { + "markdownDescription": "Duration \\(in seconds\\) of each fragment\\. Actual fragments are rounded to the nearest multiple of the source fragment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentDurationSeconds", + "type": "number" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection", + "markdownDescription": "Limitations for outputs from the endpoint, based on the video bitrate\\. \n*Required*: No \n*Type*: [StreamSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-streamselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the certificate that you imported to AWS Certificate Manager to add content key encryption to this endpoint\\. For this feature to work, your DRM key provider must support content key encryption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CertificateArn", + "type": "string" + }, + "EncryptionContractConfiguration": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.EncryptionContractConfiguration" + }, + "ResourceId": { + "markdownDescription": "Unique identifier for this endpoint, as it is configured in the key provider service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceId", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN for the IAM role that's granted by the key provider to provide access to the key provider API\\. This role must have a trust policy that allows AWS Elemental MediaPackage to assume the role, and it must have a sufficient permissions policy to allow access to the specific key retrieval URL\\. Valid format: arn:aws:iam::\\{accountID\\}:role/\\{name\\} \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "SystemIds": { + "items": { + "type": "string" + }, + "markdownDescription": "List of unique identifiers for the DRM systems to use, as defined in the CPIX specification\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SystemIds", + "type": "array" + }, + "Url": { + "markdownDescription": "URL for the key provider\u2019s key retrieval API endpoint\\. Must start with https://\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", + "type": "string" + } + }, + "required": [ + "ResourceId", + "RoleArn", + "SystemIds", + "Url" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.StreamSelection": { + "additionalProperties": false, + "properties": { + "MaxVideoBitsPerSecond": { + "markdownDescription": "The upper limit of the bitrates that this endpoint serves\\. If the video track exceeds this threshold, then AWS Elemental MediaPackage excludes it from output\\. If you don't specify a value, it defaults to 2147483647 bits per second\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxVideoBitsPerSecond", + "type": "number" + }, + "MinVideoBitsPerSecond": { + "markdownDescription": "The lower limit of the bitrates that this endpoint serves\\. If the video track is below this threshold, then AWS Elemental MediaPackage excludes it from output\\. If you don't specify a value, it defaults to 0 bits per second\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinVideoBitsPerSecond", + "type": "number" + }, + "StreamOrder": { + "markdownDescription": "Order in which the different video bitrates are presented to the player\\. \nValid values: **ORIGINAL**, **VIDEO\\_BITRATE\\_ASCENDING**, **VIDEO\\_BITRATE\\_DESCENDING**\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Parameters for CMAF packaging\\. \n*Required*: No \n*Type*: [CmafPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-cmafpackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CmafPackage" + }, + "DashPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashPackage", + "markdownDescription": "Parameters for DASH\\-ISO packaging\\. \n*Required*: No \n*Type*: [DashPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashpackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DashPackage" + }, + "HlsPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsPackage", + "markdownDescription": "Parameters for Apple HLS packaging\\. \n*Required*: No \n*Type*: [HlsPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlspackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsPackage" + }, + "Id": { + "markdownDescription": "Unique identifier that you assign to the packaging configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "string" + }, + "MssPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssPackage", + "markdownDescription": "Parameters for Microsoft Smooth Streaming packaging\\. \n*Required*: No \n*Type*: [MssPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-msspackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MssPackage" + }, + "PackagingGroupId": { + "markdownDescription": "The ID of the packaging group associated with this packaging configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PackagingGroupId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to assign to the packaging configuration\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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", + "markdownDescription": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.CmafPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.CmafEncryption", + "markdownDescription": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [CmafEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-cmafencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encryption" + }, + "HlsManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsManifest" + }, + "markdownDescription": "A list of HLS manifest configurations that are available from this endpoint\\. \n*Required*: Yes \n*Type*: List of [HlsManifest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsmanifest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsManifests", + "type": "array" + }, + "IncludeEncoderConfigurationInSegments": { + "markdownDescription": "When includeEncoderConfigurationInSegments is set to true, MediaPackage places your encoder's Sequence Parameter Set \\(SPS\\), Picture Parameter Set \\(PPS\\), and Video Parameter Set \\(VPS\\) metadata in every video segment instead of in the init fragment\\. This lets you use different SPS/PPS/VPS settings for your assets during content playback\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeEncoderConfigurationInSegments", + "type": "boolean" + }, + "SegmentDurationSeconds": { + "markdownDescription": "Duration \\(in seconds\\) of each segment\\. Actual segments are rounded to the nearest multiple of the source fragment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentDurationSeconds", + "type": "number" + } + }, + "required": [ + "HlsManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.DashEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider", + "markdownDescription": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.DashManifest": { + "additionalProperties": false, + "properties": { + "ManifestLayout": { + "markdownDescription": "Determines the position of some tags in the Media Presentation Description \\(MPD\\)\\. When set to **FULL**, elements like `SegmentTemplate` and `ContentProtection` are included in each `Representation`\\. When set to **COMPACT**, duplicate elements are combined and presented at the AdaptationSet level\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestLayout", + "type": "string" + }, + "ManifestName": { + "markdownDescription": "A short string that's appended to the end of the endpoint URL to create a unique path to this packaging configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestName", + "type": "string" + }, + "MinBufferTimeSeconds": { + "markdownDescription": "Minimum amount of content \\(measured in seconds\\) that a player must keep available in the buffer\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinBufferTimeSeconds", + "type": "number" + }, + "Profile": { + "markdownDescription": "The DASH profile type\\. When set to **HBBTV\\_1\\_5**, the content is compliant with HbbTV 1\\.5\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Profile", + "type": "string" + }, + "ScteMarkersSource": { + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection", + "markdownDescription": "Limitations for outputs from the endpoint, based on the video bitrate\\. \n*Required*: No \n*Type*: [StreamSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-streamselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.DashPackage": { + "additionalProperties": false, + "properties": { + "DashManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashManifest" + }, + "markdownDescription": "A list of DASH manifest configurations that are available from this endpoint\\. \n*Required*: Yes \n*Type*: List of [DashManifest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashmanifest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DashManifests", + "type": "array" + }, + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashEncryption", + "markdownDescription": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [DashEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encryption" + }, + "IncludeEncoderConfigurationInSegments": { + "markdownDescription": "When includeEncoderConfigurationInSegments is set to true, MediaPackage places your encoder's Sequence Parameter Set \\(SPS\\), Picture Parameter Set \\(PPS\\), and Video Parameter Set \\(VPS\\) metadata in every video segment instead of in the init fragment\\. This lets you use different SPS/PPS/VPS settings for your assets during content playback\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeEncoderConfigurationInSegments", + "type": "boolean" + }, + "IncludeIframeOnlyStream": { + "type": "boolean" + }, + "PeriodTriggers": { + "items": { + "type": "string" + }, + "markdownDescription": "Controls whether MediaPackage produces single\\-period or multi\\-period DASH manifests\\. For more information about periods, see [Multi\\-period DASH in AWS Elemental MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/ug/multi-period.html)\\. \nValid values: \n+ **ADS** \\- MediaPackage will produce multi\\-period DASH manifests\\. Periods are created based on the SCTE\\-35 ad markers present in the input manifest\\.\n+ *No value* \\- MediaPackage will produce single\\-period DASH manifests\\. This is the default setting\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PeriodTriggers", + "type": "array" + }, + "SegmentDurationSeconds": { + "markdownDescription": "Duration \\(in seconds\\) of each fragment\\. Actual fragments are rounded to the nearest multiple of the source segment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentDurationSeconds", + "type": "number" + }, + "SegmentTemplateFormat": { + "markdownDescription": "Determines the type of SegmentTemplate included in the Media Presentation Description \\(MPD\\)\\. When set to **NUMBER\\_WITH\\_TIMELINE**, a full timeline is presented in each SegmentTemplate, with $Number$ media URLs\\. When set to **TIME\\_WITH\\_TIMELINE**, a full timeline is presented in each SegmentTemplate, with $Time$ media URLs\\. When set to **NUMBER\\_WITH\\_DURATION**, only a duration is included in each SegmentTemplate, with $Number$ media URLs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A 128\\-bit, 16\\-byte hex value represented by a 32\\-character string, used with the key for encrypting blocks\\. If you don't specify a constant initialization vector \\(IV\\), MediaPackage periodically rotates the IV\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConstantInitializationVector", + "type": "string" + }, + "EncryptionMethod": { + "markdownDescription": "HLS encryption type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionMethod", + "type": "string" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider", + "markdownDescription": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.HlsManifest": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "markdownDescription": "This setting controls ad markers in the packaged content\\. **NONE** omits SCTE\\-35 ad markers from the output\\. **PASSTHROUGH** copies SCTE\\-35 ad markers from the source content to the output\\. **SCTE35\\_ENHANCED** generates ad markers and blackout tags in the output, based on SCTE\\-35 messages in the source content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdMarkers", + "type": "string" + }, + "IncludeIframeOnlyStream": { + "markdownDescription": "Applies to stream sets with a single video track only\\. When enabled, the output includes an additional I\\-frame only stream, along with the other tracks\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeIframeOnlyStream", + "type": "boolean" + }, + "ManifestName": { + "markdownDescription": "A short string that's appended to the end of the endpoint URL to create a unique path to this packaging configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestName", + "type": "string" + }, + "ProgramDateTimeIntervalSeconds": { + "markdownDescription": "Inserts `EXT-X-PROGRAM-DATE-TIME` tags in the output manifest at the interval that you specify\\. Additionally, ID3Timed metadata messages are generated every 5 seconds starting when the content was ingested\\. \nIrrespective of this parameter, if any ID3Timed metadata is in the HLS input, it is passed through to the HLS output\\. \nOmit this attribute or enter `0` to indicate that the `EXT-X-PROGRAM-DATE-TIME` tags are not included in the manifest\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProgramDateTimeIntervalSeconds", + "type": "number" + }, + "RepeatExtXKey": { + "markdownDescription": "Repeat the `EXT-X-KEY` directive for every media segment\\. This might result in an increase in client requests to the DRM server\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RepeatExtXKey", + "type": "boolean" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection", + "markdownDescription": "Video bitrate limitations for outputs from this packaging configuration\\. \n*Required*: No \n*Type*: [StreamSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-streamselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.HlsPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsEncryption", + "markdownDescription": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [HlsEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encryption" + }, + "HlsManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsManifest" + }, + "markdownDescription": "A list of HLS manifest configurations that are available from this endpoint\\. \n*Required*: Yes \n*Type*: List of [HlsManifest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsmanifest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HlsManifests", + "type": "array" + }, + "IncludeDvbSubtitles": { + "type": "boolean" + }, + "SegmentDurationSeconds": { + "markdownDescription": "Duration \\(in seconds\\) of each fragment\\. Actual fragments are rounded to the nearest multiple of the source fragment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentDurationSeconds", + "type": "number" + }, + "UseAudioRenditionGroup": { + "markdownDescription": "When true, AWS Elemental MediaPackage bundles all audio tracks in a rendition group\\. All other tracks in the stream can be used with any audio rendition from the group\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseAudioRenditionGroup", + "type": "boolean" + } + }, + "required": [ + "HlsManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.MssEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider", + "markdownDescription": "Parameters for the SPEKE key provider\\. \n*Required*: Yes \n*Type*: [SpekeKeyProvider](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-spekekeyprovider.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.MssManifest": { + "additionalProperties": false, + "properties": { + "ManifestName": { + "markdownDescription": "A short string that's appended to the end of the endpoint URL to create a unique path to this packaging configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestName", + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection", + "markdownDescription": "Video bitrate limitations for outputs from this packaging configuration\\. \n*Required*: No \n*Type*: [StreamSelection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-streamselection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.MssPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssEncryption", + "markdownDescription": "Parameters for encrypting content\\. \n*Required*: No \n*Type*: [MssEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-mssencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encryption" + }, + "MssManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssManifest" + }, + "markdownDescription": "A list of Microsoft Smooth manifest configurations that are available from this endpoint\\. \n*Required*: Yes \n*Type*: List of [MssManifest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-mssmanifest.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MssManifests", + "type": "array" + }, + "SegmentDurationSeconds": { + "markdownDescription": "Duration \\(in seconds\\) of each fragment\\. Actual fragments are rounded to the nearest multiple of the source fragment duration\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentDurationSeconds", + "type": "number" + } + }, + "required": [ + "MssManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider": { + "additionalProperties": false, + "properties": { + "EncryptionContractConfiguration": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.EncryptionContractConfiguration" + }, + "RoleArn": { + "markdownDescription": "The ARN for the IAM role that's granted by the key provider to provide access to the key provider API\\. Valid format: arn:aws:iam::\\{accountID\\}:role/\\{name\\} \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "SystemIds": { + "items": { + "type": "string" + }, + "markdownDescription": "List of unique identifiers for the DRM systems to use, as defined in the CPIX specification\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SystemIds", + "type": "array" + }, + "Url": { + "markdownDescription": "URL for the key provider's key retrieval API endpoint\\. Must start with https://\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", + "type": "string" + } + }, + "required": [ + "RoleArn", + "SystemIds", + "Url" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.StreamSelection": { + "additionalProperties": false, + "properties": { + "MaxVideoBitsPerSecond": { + "markdownDescription": "The upper limit of the bitrates that this endpoint serves\\. If the video track exceeds this threshold, then AWS Elemental MediaPackage excludes it from output\\. If you don't specify a value, it defaults to 2147483647 bits per second\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxVideoBitsPerSecond", + "type": "number" + }, + "MinVideoBitsPerSecond": { + "markdownDescription": "The lower limit of the bitrates that this endpoint serves\\. If the video track is below this threshold, then AWS Elemental MediaPackage excludes it from output\\. If you don't specify a value, it defaults to 0 bits per second\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinVideoBitsPerSecond", + "type": "number" + }, + "StreamOrder": { + "markdownDescription": "Order in which the different video bitrates are presented to the player\\. \nValid values: **ORIGINAL**, **VIDEO\\_BITRATE\\_ASCENDING**, **VIDEO\\_BITRATE\\_DESCENDING**\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Parameters for CDN authorization\\. \n*Required*: No \n*Type*: [Authorization](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packaginggroup-authorization.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Authorization" + }, + "EgressAccessLogs": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingGroup.LogConfiguration", + "markdownDescription": "The configuration parameters for egress access logging\\. \n*Required*: No \n*Type*: [LogConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packaginggroup-logconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EgressAccessLogs" + }, + "Id": { + "markdownDescription": "Unique identifier that you assign to the packaging group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to assign to the packaging group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the secret in AWS Secrets Manager that is used for CDN authorization\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CdnIdentifierSecret", + "type": "string" + }, + "SecretsRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the IAM role that allows MediaPackage to communicate with AWS Secrets Manager\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretsRoleArn", + "type": "string" + } + }, + "required": [ + "CdnIdentifierSecret", + "SecretsRoleArn" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingGroup.LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogGroupName": { + "markdownDescription": "Sets a custom Amazon CloudWatch log group name for egress logs\\. If a log group name isn't specified, the default name is used: /aws/MediaPackage/EgressAccessLogs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The state of access logging on the container\\. This value is `false` by default, indicating that AWS Elemental MediaStore does not send access logs to Amazon CloudWatch Logs\\. When you enable access logging on the container, MediaStore changes this value to `true`, indicating that the service delivers access logs for objects stored in that container to CloudWatch Logs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessLoggingEnabled", + "type": "boolean" + }, + "ContainerName": { + "markdownDescription": "The name for the container\\. The name must be from 1 to 255 characters\\. Container names must be unique to your AWS account within a specific region\\. As an example, you could create a container named `movies` in every region, as long as you don\u2019t have an existing container with that name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[\\w-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerName", + "type": "string" + }, + "CorsPolicy": { + "items": { + "$ref": "#/definitions/AWS::MediaStore::Container.CorsRule" + }, + "markdownDescription": "Sets the cross\\-origin resource sharing \\(CORS\\) configuration on a container so that the container can service cross\\-origin requests\\. For example, you might want to enable a request whose origin is http://www\\.example\\.com to access your AWS Elemental MediaStore container at my\\.example\\.container\\.com by using the browser's XMLHttpRequest capability\\. \nTo enable CORS on a container, you attach a CORS policy to the container\\. In the CORS policy, you configure rules that identify origins and the HTTP methods that can be executed on your container\\. The policy can contain up to 398,000 characters\\. You can add up to 100 rules to a CORS policy\\. If more than one rule applies, the service uses the first applicable rule listed\\. \nTo learn more about CORS, see [Cross\\-Origin Resource Sharing \\(CORS\\) in AWS Elemental MediaStore](https://docs.aws.amazon.com/mediastore/latest/ug/cors-policy.html)\\. \n*Required*: No \n*Type*: List of [CorsRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-corsrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CorsPolicy", + "type": "array" + }, + "LifecyclePolicy": { + "markdownDescription": "Writes an object lifecycle policy to a container\\. If the container already has an object lifecycle policy, the service replaces the existing policy with the new policy\\. It takes up to 20 minutes for the change to take effect\\. \nFor information about how to construct an object lifecycle policy, see [Components of an Object Lifecycle Policy](https://docs.aws.amazon.com/mediastore/latest/ug/policies-object-lifecycle-components.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LifecyclePolicy", + "type": "string" + }, + "MetricPolicy": { + "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicy", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [MetricPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-metricpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricPolicy" + }, + "Policy": { + "markdownDescription": "Creates an access policy for the specified container to restrict the users and clients that can access it\\. For information about the data that is included in an access policy, see the [AWS Identity and Access Management User Guide](https://docs.aws.amazon.com/iam/)\\. \nFor this release of the REST API, you can create only one policy for a container\\. If you enter `PutContainerPolicy` twice, the second command modifies the existing policy\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policy", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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" + }, + "markdownDescription": "Specifies which headers are allowed in a preflight `OPTIONS` request through the `Access-Control-Request-Headers` header\\. Each header name that is specified in `Access-Control-Request-Headers` must have a corresponding entry in the rule\\. Only the headers that were requested are sent back\\. \nThis element can contain only one wildcard character \\(\\*\\)\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedHeaders", + "type": "array" + }, + "AllowedMethods": { + "items": { + "type": "string" + }, + "markdownDescription": "Identifies an HTTP method that the origin that is specified in the rule is allowed to execute\\. \nEach CORS rule must contain at least one `AllowedMethods` and one `AllowedOrigins` element\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AllowedMethods", + "type": "array" + }, + "AllowedOrigins": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more response headers that you want users to be able to access from their applications \\(for example, from a JavaScript `XMLHttpRequest` object\\)\\. \nEach CORS rule must have at least one `AllowedOrigins` element\\. The string value can include only one wildcard character \\(\\*\\), for example, http://\\*\\.example\\.com\\. Additionally, you can specify only one wildcard character to allow cross\\-origin access for all origins\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedOrigins", + "type": "array" + }, + "ExposeHeaders": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more headers in the response that you want users to be able to access from their applications \\(for example, from a JavaScript `XMLHttpRequest` object\\)\\. \nThis element is optional for each rule\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExposeHeaders", + "type": "array" + }, + "MaxAgeSeconds": { + "markdownDescription": "The time in seconds that your browser caches the preflight response for the specified resource\\. \nA CORS rule can have only one `MaxAgeSeconds` element\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxAgeSeconds", + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaStore::Container.MetricPolicy": { + "additionalProperties": false, + "properties": { + "ContainerLevelMetrics": { + "markdownDescription": "A setting to enable or disable metrics at the container level\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainerLevelMetrics", + "type": "string" + }, + "MetricPolicyRules": { + "items": { + "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicyRule" + }, + "markdownDescription": "A parameter that holds an array of rules that enable metrics at the object level\\. This parameter is optional, but if you choose to include it, you must also include at least one rule\\. By default, you can include up to five rules\\. You can also [request a quota increase](https://console.aws.amazon.com/servicequotas/home?region=us-east-1#!/services/mediastore/quotas) to allow up to 300 rules per policy\\. \n*Required*: No \n*Type*: List of [MetricPolicyRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-metricpolicyrule.html) \n*Maximum*: `300` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricPolicyRules", + "type": "array" + } + }, + "required": [ + "ContainerLevelMetrics" + ], + "type": "object" + }, + "AWS::MediaStore::Container.MetricPolicyRule": { + "additionalProperties": false, + "properties": { + "ObjectGroup": { + "markdownDescription": "A path or file name that defines which objects to include in the group\\. Wildcards \\(\\*\\) are acceptable\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `900` \n*Pattern*: `/?(?:[A-Za-z0-9_=:\\.\\-\\~\\*]+/){0,10}(?:[A-Za-z0-9_=:\\.\\-\\~\\*]+)?/?` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectGroup", + "type": "string" + }, + "ObjectGroupName": { + "markdownDescription": "A name that allows you to refer to the object group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `30` \n*Pattern*: `[a-zA-Z0-9_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the Access Control List\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ACLName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "UserNames": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of users that belong to the Access Control List\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserNames", + "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": { + "markdownDescription": "The name of the Access Control List to associate with the cluster\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Pattern*: `[a-zA-Z][a-zA-Z0-9\\-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ACLName", + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "markdownDescription": "When set to true, the cluster will automatically receive minor engine version upgrades after launch\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoMinorVersionUpgrade", + "type": "boolean" + }, + "ClusterEndpoint": { + "$ref": "#/definitions/AWS::MemoryDB::Cluster.Endpoint" + }, + "ClusterName": { + "markdownDescription": "The name of the cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterName", + "type": "string" + }, + "DataTiering": { + "type": "string" + }, + "Description": { + "markdownDescription": "A description of the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "EngineVersion": { + "markdownDescription": "The Redis engine version used by the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EngineVersion", + "type": "string" + }, + "FinalSnapshotName": { + "markdownDescription": "The user\\-supplied name of a final cluster snapshot\\. This is the unique name that identifies the snapshot\\. MemoryDB creates the snapshot, and then deletes the cluster immediately afterward\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FinalSnapshotName", + "type": "string" + }, + "KmsKeyId": { + "markdownDescription": "The ID of the KMS key used to encrypt the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + }, + "MaintenanceWindow": { + "markdownDescription": "Specifies the weekly time range during which maintenance on the cluster is performed\\. It is specified as a range in the format `ddd:hh24:mi-ddd:hh24:mi` \\(24H Clock UTC\\)\\. The minimum maintenance window is a 60 minute period\\. \n*Pattern*: `ddd:hh24:mi-ddd:hh24:mi` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaintenanceWindow", + "type": "string" + }, + "NodeType": { + "markdownDescription": "The cluster's node type\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NodeType", + "type": "string" + }, + "NumReplicasPerShard": { + "markdownDescription": "The number of replicas to apply to each shard\\. \n*Default value*: `1` \n*Maximum value*: `5` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumReplicasPerShard", + "type": "number" + }, + "NumShards": { + "markdownDescription": "The number of shards in the cluster\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumShards", + "type": "number" + }, + "ParameterGroupName": { + "markdownDescription": "The name of the parameter group used by the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterGroupName", + "type": "string" + }, + "Port": { + "markdownDescription": "The port used by the cluster\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Port", + "type": "number" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of security group names to associate with this cluster\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SnapshotArns": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of Amazon Resource Names \\(ARN\\) that uniquely identify the RDB snapshot files stored in Amazon S3\\. The snapshot files are used to populate the new cluster\\. The Amazon S3 object name in the ARN cannot contain any commas\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotArns", + "type": "array" + }, + "SnapshotName": { + "markdownDescription": "The name of a snapshot from which to restore data into the new cluster\\. The snapshot status changes to restoring while the new cluster is being created\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotName", + "type": "string" + }, + "SnapshotRetentionLimit": { + "markdownDescription": "The number of days for which MemoryDB retains automatic snapshots before deleting them\\. For example, if you set SnapshotRetentionLimit to 5, a snapshot that was taken today is retained for 5 days before being deleted\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotRetentionLimit", + "type": "number" + }, + "SnapshotWindow": { + "markdownDescription": "The daily time range \\(in UTC\\) during which MemoryDB begins taking a daily snapshot of your shard\\. Example: 05:00\\-09:00 If you do not specify this parameter, MemoryDB automatically chooses an appropriate time range\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotWindow", + "type": "string" + }, + "SnsTopicArn": { + "markdownDescription": "When you pass the logical ID of this resource to the intrinsic `Ref` function, Ref returns the ARN of the SNS topic, such as `arn:aws:memorydb:us-east-1:123456789012:mySNSTopic` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsTopicArn", + "type": "string" + }, + "SnsTopicStatus": { + "markdownDescription": "The SNS topic must be in Active status to receive notifications\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsTopicStatus", + "type": "string" + }, + "SubnetGroupName": { + "markdownDescription": "The name of the subnet group used by the cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetGroupName", + "type": "string" + }, + "TLSEnabled": { + "markdownDescription": "A flag to indicate if In\\-transit encryption is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TLSEnabled", + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The DNS hostname of the node\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Address", + "type": "string" + }, + "Port": { + "markdownDescription": "The port number that the engine is listening on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A description of the parameter group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "Family": { + "markdownDescription": "The name of the parameter group family that this parameter group is compatible with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Family", + "type": "string" + }, + "ParameterGroupName": { + "markdownDescription": "The name of the parameter group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ParameterGroupName", + "type": "string" + }, + "Parameters": { + "markdownDescription": "Returns the detailed parameter list for the parameter group\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "A description of the subnet group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "SubnetGroupName": { + "markdownDescription": "The name of the subnet group to be used for the cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetGroupName", + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of Amazon VPC subnet IDs for the subnet group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "Access permissions string used for this user\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessString", + "type": "string" + }, + "AuthenticationMode": { + "$ref": "#/definitions/AWS::MemoryDB::User.AuthenticationMode", + "markdownDescription": "Denotes whether the user requires a password to authenticate\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticationMode" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "UserName": { + "markdownDescription": "The name of the user\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "Provides a list of the Amazon Identity and Access Management \\(IAM\\) roles that are associated with the DB cluster\\. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon services on your behalf\\. \n*Required*: No \n*Type*: List of [DBClusterRole](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-neptune-dbcluster-dbclusterrole.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociatedRoles", + "type": "array" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "markdownDescription": "Provides the list of EC2 Availability Zones that instances in the DB cluster can be created in\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZones", + "type": "array" + }, + "BackupRetentionPeriod": { + "markdownDescription": "Specifies the number of days for which automatic DB snapshots are retained\\. \nAn update may require some interruption\\. See [ModifyDBInstance](https://docs.aws.amazon.com/neptune/latest/userguide/api-instances.html#ModifyDBInstance) in the Amazon Neptune User Guide for more information\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackupRetentionPeriod", + "type": "number" + }, + "DBClusterIdentifier": { + "markdownDescription": "Contains a user\\-supplied DB cluster identifier\\. This identifier is the unique key that identifies a DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBClusterIdentifier", + "type": "string" + }, + "DBClusterParameterGroupName": { + "markdownDescription": "Provides the name of the DB cluster parameter group\\. \nAn update may require some interruption\\. See [ModifyDBInstance](https://docs.aws.amazon.com/neptune/latest/userguide/api-instances.html#ModifyDBInstance) in the Amazon Neptune User Guide for more information\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBClusterParameterGroupName", + "type": "string" + }, + "DBSubnetGroupName": { + "markdownDescription": "Specifies information on the subnet group associated with the DB cluster, including the name, description, and subnets in the subnet group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBSubnetGroupName", + "type": "string" + }, + "DeletionProtection": { + "markdownDescription": "Indicates whether or not the DB cluster has deletion protection enabled\\. The database can't be deleted when deletion protection is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeletionProtection", + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "markdownDescription": "Specifies a list of log types that are enabled for export to CloudWatch Logs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableCloudwatchLogsExports", + "type": "array" + }, + "EngineVersion": { + "markdownDescription": "Indicates the database engine version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineVersion", + "type": "string" + }, + "IamAuthEnabled": { + "markdownDescription": "True if mapping of Amazon Identity and Access Management \\(IAM\\) accounts to database accounts is enabled, and otherwise false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamAuthEnabled", + "type": "boolean" + }, + "KmsKeyId": { + "markdownDescription": "If `StorageEncrypted` is true, the Amazon KMS key identifier for the encrypted DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + }, + "Port": { + "markdownDescription": "Specifies the port that the database engine is listening on\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + }, + "PreferredBackupWindow": { + "markdownDescription": "Specifies the daily time range during which automated backups are created if automated backups are enabled, as determined by the `BackupRetentionPeriod`\\. \nAn update may require some interruption\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredBackupWindow", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "markdownDescription": "Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time \\(UTC\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", + "type": "string" + }, + "RestoreToTime": { + "markdownDescription": "Creates a new DB cluster from a DB snapshot or DB cluster snapshot\\. \nIf a DB snapshot is specified, the target DB cluster is created from the source DB snapshot with a default configuration and default security group\\. \nIf a DB cluster snapshot is specified, the target DB cluster is created from the source DB cluster restore point with the same configuration as the original source DB cluster, except that the new DB cluster is created with the default security group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestoreToTime", + "type": "string" + }, + "RestoreType": { + "markdownDescription": "Creates a new DB cluster from a DB snapshot or DB cluster snapshot\\. \nIf a DB snapshot is specified, the target DB cluster is created from the source DB snapshot with a default configuration and default security group\\. \nIf a DB cluster snapshot is specified, the target DB cluster is created from the source DB cluster restore point with the same configuration as the original source DB cluster, except that the new DB cluster is created with the default security group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestoreType", + "type": "string" + }, + "SnapshotIdentifier": { + "markdownDescription": "Specifies the identifier for a DB cluster snapshot\\. Must match the identifier of an existing snapshot\\. \nAfter you restore a DB cluster using a `SnapshotIdentifier`, you must specify the same `SnapshotIdentifier` for any future updates to the DB cluster\\. When you specify this property for an update, the DB cluster is not restored from the snapshot again, and the data in the database is not changed\\. \nHowever, if you don't specify the `SnapshotIdentifier`, an empty DB cluster is created, and the original DB cluster is deleted\\. If you specify a property that is different from the previous snapshot restore property, the DB cluster is restored from the snapshot specified by the `SnapshotIdentifier`, and the original DB cluster is deleted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotIdentifier", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "markdownDescription": "Creates a new DB cluster from a DB snapshot or DB cluster snapshot\\. \nIf a DB snapshot is specified, the target DB cluster is created from the source DB snapshot with a default configuration and default security group\\. \nIf a DB cluster snapshot is specified, the target DB cluster is created from the source DB cluster restore point with the same configuration as the original source DB cluster, except that the new DB cluster is created with the default security group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceDBClusterIdentifier", + "type": "string" + }, + "StorageEncrypted": { + "markdownDescription": "Indicates whether the DB cluster is encrypted\\. \nIf you specify the `DBClusterIdentifier`, `DBSnapshotIdentifier`, or `SourceDBInstanceIdentifier` property, don't specify this property\\. The value is inherited from the cluster, snapshot, or source DB instance\\. If you specify the `KmsKeyId` property, you must enable encryption\\. \nIf you specify the `KmsKeyId`, you must enable encryption by setting `StorageEncrypted` to true\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StorageEncrypted", + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags assigned to this cluster\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "UseLatestRestorableTime": { + "markdownDescription": "Creates a new DB cluster from a DB snapshot or DB cluster snapshot\\. \nIf a DB snapshot is specified, the target DB cluster is created from the source DB snapshot with a default configuration and default security group\\. \nIf a DB cluster snapshot is specified, the target DB cluster is created from the source DB cluster restore point with the same configuration as the original source DB cluster, except that the new DB cluster is created with the default security group\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UseLatestRestorableTime", + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "Provides a list of VPC security groups that the DB cluster belongs to\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSecurityGroupIds", + "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": { + "markdownDescription": "The name of the feature associated with the Amazon Identity and Access Management \\(IAM\\) role\\. For the list of supported feature names, see [DescribeDBEngineVersions](https://docs.aws.amazon.com/neptune/latest/userguide/api-other-apis.html#DescribeDBEngineVersions)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FeatureName", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that is associated with the DB cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Provides the customer\\-specified description for this DB cluster parameter group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "Family": { + "markdownDescription": "Must be `neptune1`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Family", + "type": "string" + }, + "Name": { + "markdownDescription": "Provides the name of the DB cluster parameter group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Parameters": { + "markdownDescription": "The parameters to set for this DB cluster parameter group\\. \nThe parameters are expressed as a JSON object consisting of key\\-value pairs\\. \nIf you update the parameters, some interruption may occur depending on which parameters you update\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags that you want to attach to this parameter group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "Indicates that major version upgrades are allowed\\. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible\\. This parameter must be set to true when specifying a value for the EngineVersion parameter that is a different major version than the DB instance's current version\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowMajorVersionUpgrade", + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "markdownDescription": "Indicates that minor version patches are applied automatically\\. \nWhen updating this property, some interruptions may occur\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoMinorVersionUpgrade", + "type": "boolean" + }, + "AvailabilityZone": { + "markdownDescription": "Specifies the name of the Availability Zone the DB instance is located in\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", + "type": "string" + }, + "DBClusterIdentifier": { + "markdownDescription": "If the DB instance is a member of a DB cluster, contains the name of the DB cluster that the DB instance is a member of\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBClusterIdentifier", + "type": "string" + }, + "DBInstanceClass": { + "markdownDescription": "Contains the name of the compute and memory capacity class of the DB instance\\. \nIf you update this property, some interruptions may occur\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBInstanceClass", + "type": "string" + }, + "DBInstanceIdentifier": { + "markdownDescription": "Contains a user\\-supplied database identifier\\. This identifier is the unique key that identifies a DB instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBInstanceIdentifier", + "type": "string" + }, + "DBParameterGroupName": { + "markdownDescription": "The name of an existing DB parameter group or a reference to an AWS::Neptune::DBParameterGroup resource created in the template\\. If any of the data members of the referenced parameter group are changed during an update, the DB instance might need to be restarted, which causes some interruption\\. If the parameter group contains static parameters, whether they were changed or not, an update triggers a reboot\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBParameterGroupName", + "type": "string" + }, + "DBSnapshotIdentifier": { + "markdownDescription": "This parameter is not supported\\. \n `AWS::Neptune::DBInstance` does not support restoring from snapshots\\. \n `AWS::Neptune::DBCluster` does support restoring from snapshots\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBSnapshotIdentifier", + "type": "string" + }, + "DBSubnetGroupName": { + "markdownDescription": "A DB subnet group to associate with the DB instance\\. If you update this value, the new subnet group must be a subnet group in a new virtual private cloud \\(VPC\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBSubnetGroupName", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "markdownDescription": "Specifies the weekly time range during which system maintenance can occur, in Universal Coordinated Time \\(UTC\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An arbitrary set of tags \\(key\\-value pairs\\) for this DB instance\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "Provides the customer\\-specified description for this DB parameter group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "Family": { + "markdownDescription": "Must be `neptune1`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Family", + "type": "string" + }, + "Name": { + "markdownDescription": "Provides the name of the DB parameter group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Parameters": { + "markdownDescription": "The parameters to set for this DB parameter group\\. \nThe parameters are expressed as a JSON object consisting of key\\-value pairs\\. \nChanges to dynamic parameters are applied immediately\\. During an update, if you have static parameters \\(whether they were changed or not\\), it triggers AWS CloudFormation to reboot the associated DB instance without failover\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags that you want to attach to this parameter group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "Provides the description of the DB subnet group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBSubnetGroupDescription", + "type": "string" + }, + "DBSubnetGroupName": { + "markdownDescription": "The name of the DB subnet group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBSubnetGroupName", + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The Amazon EC2 subnet IDs for the DB subnet group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags that you want to attach to the DB subnet group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "A flag indicating whether it is possible to delete the firewall\\. A setting of `TRUE` indicates that the firewall is protected against deletion\\. Use this setting to protect against accidentally deleting a firewall that is in use\\. When you create a firewall, the operation initializes this flag to `TRUE`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteProtection", + "type": "boolean" + }, + "Description": { + "markdownDescription": "A description of the firewall\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `^.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "FirewallName": { + "markdownDescription": "The descriptive name of the firewall\\. You can't change the name of a firewall after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FirewallName", + "type": "string" + }, + "FirewallPolicyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the firewall policy\\. \nThe relationship of firewall to firewall policy is many to one\\. Each firewall requires one firewall policy association, and you can use the same firewall policy for multiple firewalls\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn:aws.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FirewallPolicyArn", + "type": "string" + }, + "FirewallPolicyChangeProtection": { + "markdownDescription": "A setting indicating whether the firewall is protected against a change to the firewall policy association\\. Use this setting to protect against accidentally modifying the firewall policy for a firewall that is in use\\. When you create a firewall, the operation initializes this setting to `TRUE`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FirewallPolicyChangeProtection", + "type": "boolean" + }, + "SubnetChangeProtection": { + "markdownDescription": "A setting indicating whether the firewall is protected against changes to the subnet associations\\. Use this setting to protect against accidentally modifying the subnet associations for a firewall that is in use\\. When you create a firewall, the operation initializes this setting to `TRUE`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetChangeProtection", + "type": "boolean" + }, + "SubnetMappings": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::Firewall.SubnetMapping" + }, + "markdownDescription": "The public subnets that Network Firewall is using for the firewall\\. Each subnet must belong to a different Availability Zone\\. \n*Required*: Yes \n*Type*: List of [SubnetMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewall-subnetmapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetMappings", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VpcId": { + "markdownDescription": "The unique identifier of the VPC where the firewall is in use\\. You can't change the VPC of a firewall after you create the firewall\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^vpc-[0-9a-f]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "IPAddressType": { + "type": "string" + }, + "SubnetId": { + "markdownDescription": "The unique identifier for the subnet\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A description of the firewall policy\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `^.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy", + "markdownDescription": "The traffic filtering behavior of a firewall policy, defined in a collection of stateless and stateful rule groups and other settings\\. \n*Required*: Yes \n*Type*: [FirewallPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-firewallpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FirewallPolicy" + }, + "FirewallPolicyName": { + "markdownDescription": "The descriptive name of the firewall policy\\. You can't change the name of a firewall policy after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FirewallPolicyName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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", + "markdownDescription": "Stateless inspection criteria that publishes the specified metrics to Amazon CloudWatch for the matching packet\\. This setting defines a CloudWatch dimension value to be published\\. \nYou can pair this custom action with any of the standard stateless rule actions\\. For example, you could pair this in a rule action with the standard action that forwards the packet for stateful inspection\\. Then, when a packet matches the rule, Network Firewall publishes metrics for the packet and forwards it\\. \n*Required*: No \n*Type*: [PublishMetricAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-publishmetricaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublishMetricAction" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.ActionDefinition", + "markdownDescription": "The custom action associated with the action name\\. \n*Required*: Yes \n*Type*: [ActionDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-actiondefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionDefinition" + }, + "ActionName": { + "markdownDescription": "The descriptive name of the custom action\\. You can't change the name of a custom action after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionName", + "type": "string" + } + }, + "required": [ + "ActionDefinition", + "ActionName" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "markdownDescription": "The value to use in the custom metric dimension\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-_ ]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy": { + "additionalProperties": false, + "properties": { + "StatefulDefaultActions": { + "items": { + "type": "string" + }, + "markdownDescription": "The default actions to take on a packet that doesn't match any stateful rules\\. The stateful default action is optional, and is only valid when using the strict rule order\\. \nValid values of the stateful default action: \n+ aws:drop\\_strict\n+ aws:drop\\_established\n+ aws:alert\\_strict\n+ aws:alert\\_established\nFor more information, see [Strict evaluation order](https://docs.aws.amazon.com/network-firewall/latest/developerguide/suricata-rule-evaluation-order.html#suricata-strict-rule-evaluation-order.html) in the *AWS Network Firewall Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatefulDefaultActions", + "type": "array" + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulEngineOptions", + "markdownDescription": "Additional options governing how Network Firewall handles stateful rules\\. The stateful rule groups that you use in your policy must have stateful rule options settings that are compatible with these settings\\. \n*Required*: No \n*Type*: [StatefulEngineOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statefulengineoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference" + }, + "markdownDescription": "References to the stateful rule groups that are used in the policy\\. These define the inspection criteria in stateful rules\\. \n*Required*: No \n*Type*: List of [StatefulRuleGroupReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statefulrulegroupreference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatefulRuleGroupReferences", + "type": "array" + }, + "StatelessCustomActions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.CustomAction" + }, + "markdownDescription": "The custom action definitions that are available for use in the firewall policy's `StatelessDefaultActions` setting\\. You name each custom action that you define, and then you can use it by name in your default actions specifications\\. \n*Required*: No \n*Type*: List of [CustomAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-customaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatelessCustomActions", + "type": "array" + }, + "StatelessDefaultActions": { + "items": { + "type": "string" + }, + "markdownDescription": "The actions to take on a packet if it doesn't match any of the stateless rules in the policy\\. If you want non\\-matching packets to be forwarded for stateful inspection, specify `aws:forward_to_sfe`\\. \nYou must specify one of the standard actions: `aws:pass`, `aws:drop`, or `aws:forward_to_sfe`\\. In addition, you can specify custom actions that are compatible with your standard section choice\\. \nFor example, you could specify `[\"aws:pass\"]` or you could specify `[\"aws:pass\", \u201ccustomActionName\u201d]`\\. For information about compatibility, see the custom action descriptions\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatelessDefaultActions", + "type": "array" + }, + "StatelessFragmentDefaultActions": { + "items": { + "type": "string" + }, + "markdownDescription": "The actions to take on a fragmented packet if it doesn't match any of the stateless rules in the policy\\. If you want non\\-matching fragmented packets to be forwarded for stateful inspection, specify `aws:forward_to_sfe`\\. \nYou must specify one of the standard actions: `aws:pass`, `aws:drop`, or `aws:forward_to_sfe`\\. In addition, you can specify custom actions that are compatible with your standard section choice\\. \nFor example, you could specify `[\"aws:pass\"]` or you could specify `[\"aws:pass\", \u201ccustomActionName\u201d]`\\. For information about compatibility, see the custom action descriptions\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatelessFragmentDefaultActions", + "type": "array" + }, + "StatelessRuleGroupReferences": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReference" + }, + "markdownDescription": "References to the stateless rule groups that are used in the policy\\. These define the matching criteria in stateless rules\\. \n*Required*: No \n*Type*: List of [StatelessRuleGroupReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statelessrulegroupreference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatelessRuleGroupReferences", + "type": "array" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.Dimension" + }, + "markdownDescription": "*Required*: Yes \n*Type*: List of [Dimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-dimension.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", + "type": "array" + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "markdownDescription": "Indicates how to manage the order of stateful rule evaluation for the policy\\. `DEFAULT_ACTION_ORDER` is the default behavior\\. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them based on certain settings\\. For more information, see [Evaluation order for stateful rules](https://docs.aws.amazon.com/network-firewall/latest/developerguide/suricata-rule-evaluation-order.html) in the * AWS Network Firewall Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DEFAULT_ACTION_ORDER | STRICT_ORDER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "An integer setting that indicates the order in which to run the stateful rule groups in a single [AWS::NetworkFirewall::FirewallPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewallpolicy.html)\\. This setting only applies to firewall policies that specify the `STRICT_ORDER` rule order in the stateful engine options settings\\. \nNetwork Firewall evalutes each stateful rule group against a packet starting with the group that has the lowest priority setting\\. You must ensure that the priority settings are unique within each policy\\. \nYou can change the priority settings of your rule groups at any time\\. To make it easier to insert rule groups later, number them so there's a wide range in between, for example use 100, 200, and so on\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", + "type": "number" + }, + "ResourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the stateful rule group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn:aws.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceArn", + "type": "string" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "markdownDescription": "An integer setting that indicates the order in which to run the stateless rule groups in a single [AWS::NetworkFirewall::FirewallPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewallpolicy.html)\\. Network Firewall applies each stateless rule group to a packet starting with the group that has the lowest priority setting\\. You must ensure that the priority settings are unique within each policy\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", + "type": "number" + }, + "ResourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the stateless rule group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn:aws.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the [AWS::NetworkFirewall::Firewall](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html) that the logging configuration is associated with\\. You can't change the firewall specification after you create the logging configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FirewallArn", + "type": "string" + }, + "FirewallName": { + "markdownDescription": "The name of the firewall that the logging configuration is associated with\\. You can't change the firewall specification after you create the logging configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FirewallName", + "type": "string" + }, + "LoggingConfiguration": { + "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration.LoggingConfiguration", + "markdownDescription": "Defines how AWS Network Firewall performs logging for a [AWS::NetworkFirewall::Firewall](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html)\\. \n*Required*: Yes \n*Type*: [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-loggingconfiguration-loggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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, + "markdownDescription": "The named location for the logs, provided in a key:value mapping that is specific to the chosen destination type\\. \n+ For an Amazon S3 bucket, provide the name of the bucket, with key `bucketName`, and optionally provide a prefix, with key `prefix`\\. The following example specifies an Amazon S3 bucket named `DOC-EXAMPLE-BUCKET` and the prefix `alerts`:", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "LogDestination", + "type": "object" + }, + "LogDestinationType": { + "markdownDescription": "The type of storage destination to send these logs to\\. You can send logs to an Amazon S3 bucket, a CloudWatch log group, or a Kinesis Data Firehose delivery stream\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CloudWatchLogs | KinesisDataFirehose | S3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogDestinationType", + "type": "string" + }, + "LogType": { + "markdownDescription": "The type of log to send\\. Alert logs report traffic that matches a stateful rule with an action setting that sends an alert log message\\. Flow logs are standard network traffic flow logs\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALERT | FLOW` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogType", + "type": "string" + } + }, + "required": [ + "LogDestination", + "LogDestinationType", + "LogType" + ], + "type": "object" + }, + "AWS::NetworkFirewall::LoggingConfiguration.LoggingConfiguration": { + "additionalProperties": false, + "properties": { + "LogDestinationConfigs": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfig" + }, + "markdownDescription": "Defines the logging destinations for the logs for a firewall\\. Network Firewall generates logs for stateful rule groups\\. \n*Required*: Yes \n*Type*: List of [LogDestinationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-loggingconfiguration-logdestinationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogDestinationConfigs", + "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": { + "markdownDescription": "The maximum operating resources that this rule group can use\\. You can't change a rule group's capacity setting after you create the rule group\\. When you update a rule group, you are limited to this capacity\\. When you reference a rule group from a firewall policy, Network Firewall reserves this capacity for the rule group\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Capacity", + "type": "number" + }, + "Description": { + "markdownDescription": "A description of the rule group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `^.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "RuleGroup": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleGroup", + "markdownDescription": "An object that defines the rule group rules\\. \n*Required*: No \n*Type*: [RuleGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulegroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleGroup" + }, + "RuleGroupName": { + "markdownDescription": "The descriptive name of the rule group\\. You can't change the name of a rule group after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RuleGroupName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Type": { + "markdownDescription": "Indicates whether the rule group is stateless or stateful\\. If the rule group is stateless, it contains stateless rules\\. If it is stateful, it contains stateful rules\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `STATEFUL | STATELESS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "Stateless inspection criteria that publishes the specified metrics to Amazon CloudWatch for the matching packet\\. This setting defines a CloudWatch dimension value to be published\\. \nYou can pair this custom action with any of the standard stateless rule actions\\. For example, you could pair this in a rule action with the standard action that forwards the packet for stateful inspection\\. Then, when a packet matches the rule, Network Firewall publishes metrics for the packet and forwards it\\. \n*Required*: No \n*Type*: [PublishMetricAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-publishmetricaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublishMetricAction" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Address": { + "additionalProperties": false, + "properties": { + "AddressDefinition": { + "markdownDescription": "Specify an IP address or a block of IP addresses in Classless Inter\\-Domain Routing \\(CIDR\\) notation\\. Network Firewall supports all address ranges for IPv4\\. \nExamples: \n+ To configure Network Firewall to inspect for the IP address 192\\.0\\.2\\.44, specify `192.0.2.44/32`\\.\n+ To configure Network Firewall to inspect for IP addresses from 192\\.0\\.2\\.0 to 192\\.0\\.2\\.255, specify `192.0.2.0/24`\\.\nFor more information about CIDR notation, see the Wikipedia entry [Classless Inter\\-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^([a-fA-F\\d:\\.]+($|/\\d{1,3}))$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddressDefinition", + "type": "string" + } + }, + "required": [ + "AddressDefinition" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.ActionDefinition", + "markdownDescription": "The custom action associated with the action name\\. \n*Required*: Yes \n*Type*: [ActionDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-actiondefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionDefinition" + }, + "ActionName": { + "markdownDescription": "The descriptive name of the custom action\\. You can't change the name of a custom action after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActionName", + "type": "string" + } + }, + "required": [ + "ActionDefinition", + "ActionName" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "markdownDescription": "The value to use in the custom metric dimension\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-_ ]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Header": { + "additionalProperties": false, + "properties": { + "Destination": { + "markdownDescription": "The destination IP address or address range to inspect for, in CIDR notation\\. To match with any address, specify `ANY`\\. \nSpecify an IP address or a block of IP addresses in Classless Inter\\-Domain Routing \\(CIDR\\) notation\\. Network Firewall supports all address ranges for IPv4\\. \nExamples: \n+ To configure Network Firewall to inspect for the IP address 192\\.0\\.2\\.44, specify `192.0.2.44/32`\\.\n+ To configure Network Firewall to inspect for IP addresses from 192\\.0\\.2\\.0 to 192\\.0\\.2\\.255, specify `192.0.2.0/24`\\.\nFor more information about CIDR notation, see the Wikipedia entry [Classless Inter\\-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `^.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination", + "type": "string" + }, + "DestinationPort": { + "markdownDescription": "The destination port to inspect for\\. You can specify an individual port, for example `1994` and you can specify a port range, for example `1990:1994`\\. To match with any port, specify `ANY`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `^.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationPort", + "type": "string" + }, + "Direction": { + "markdownDescription": "The direction of traffic flow to inspect\\. If set to `ANY`, the inspection matches bidirectional traffic, both from the source to the destination and from the destination to the source\\. If set to `FORWARD`, the inspection only matches traffic going from the source to the destination\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ANY | FORWARD` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Direction", + "type": "string" + }, + "Protocol": { + "markdownDescription": "The protocol to inspect for\\. To specify all, you can use `IP`, because all traffic on AWS and on the internet is IP\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DCERPC | DHCP | DNS | FTP | HTTP | ICMP | IKEV2 | IMAP | IP | KRB5 | MSN | NTP | SMB | SMTP | SSH | TCP | TFTP | TLS | UDP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "string" + }, + "Source": { + "markdownDescription": "The source IP address or address range to inspect for, in CIDR notation\\. To match with any address, specify `ANY`\\. \nSpecify an IP address or a block of IP addresses in Classless Inter\\-Domain Routing \\(CIDR\\) notation\\. Network Firewall supports all address ranges for IPv4\\. \nExamples: \n+ To configure Network Firewall to inspect for the IP address 192\\.0\\.2\\.44, specify `192.0.2.44/32`\\.\n+ To configure Network Firewall to inspect for IP addresses from 192\\.0\\.2\\.0 to 192\\.0\\.2\\.255, specify `192.0.2.0/24`\\.\nFor more information about CIDR notation, see the Wikipedia entry [Classless Inter\\-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `^.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source", + "type": "string" + }, + "SourcePort": { + "markdownDescription": "The source port to inspect for\\. You can specify an individual port, for example `1994` and you can specify a port range, for example `1990:1994`\\. To match with any port, specify `ANY`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `^.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourcePort", + "type": "string" + } + }, + "required": [ + "Destination", + "DestinationPort", + "Direction", + "Protocol", + "Source", + "SourcePort" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of IP addresses and address ranges, in CIDR notation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Definition", + "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" + }, + "markdownDescription": "The destination ports to inspect for\\. If not specified, this matches with any destination port\\. This setting is only used for protocols 6 \\(TCP\\) and 17 \\(UDP\\)\\. \nYou can specify individual ports, for example `1994` and you can specify port ranges, for example `1990:1994`\\. \n*Required*: No \n*Type*: List of [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationPorts", + "type": "array" + }, + "Destinations": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Address" + }, + "markdownDescription": "The destination IP addresses and address ranges to inspect for, in CIDR notation\\. If not specified, this matches with any destination address\\. \n*Required*: No \n*Type*: List of [Address](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-address.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destinations", + "type": "array" + }, + "Protocols": { + "items": { + "type": "number" + }, + "markdownDescription": "The protocols to inspect for, specified using each protocol's assigned internet protocol number \\(IANA\\)\\. If not specified, this matches with any protocol\\. \n*Required*: No \n*Type*: List of Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocols", + "type": "array" + }, + "SourcePorts": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortRange" + }, + "markdownDescription": "The source ports to inspect for\\. If not specified, this matches with any source port\\. This setting is only used for protocols 6 \\(TCP\\) and 17 \\(UDP\\)\\. \nYou can specify individual ports, for example `1994` and you can specify port ranges, for example `1990:1994`\\. \n*Required*: No \n*Type*: List of [PortRange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-portrange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourcePorts", + "type": "array" + }, + "Sources": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Address" + }, + "markdownDescription": "The source IP addresses and address ranges to inspect for, in CIDR notation\\. If not specified, this matches with any source address\\. \n*Required*: No \n*Type*: List of [Address](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-address.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sources", + "type": "array" + }, + "TCPFlags": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.TCPFlagField" + }, + "markdownDescription": "The TCP flags and masks to inspect for\\. If not specified, this matches with any settings\\. This setting is only used for protocol 6 \\(TCP\\)\\. \n*Required*: No \n*Type*: List of [TCPFlagField](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-tcpflagfield.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TCPFlags", + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.PortRange": { + "additionalProperties": false, + "properties": { + "FromPort": { + "markdownDescription": "The lower limit of the port range\\. This must be less than or equal to the `ToPort` specification\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FromPort", + "type": "number" + }, + "ToPort": { + "markdownDescription": "The upper limit of the port range\\. This must be greater than or equal to the `FromPort` specification\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ToPort", + "type": "number" + } + }, + "required": [ + "FromPort", + "ToPort" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.PortSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "items": { + "type": "string" + }, + "markdownDescription": "The set of port ranges\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Definition", + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Dimension" + }, + "markdownDescription": "*Required*: Yes \n*Type*: List of [Dimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-dimension.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", + "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" + }, + "markdownDescription": "The actions to take on a packet that matches one of the stateless rule definition's match attributes\\. You must specify a standard action and you can add custom actions\\. \nNetwork Firewall only forwards a packet for stateful rule inspection if you specify `aws:forward_to_sfe` for a rule that the packet matches, or if the packet doesn't match any stateless rule and you specify `aws:forward_to_sfe` for the `StatelessDefaultActions` setting for the [AWS::NetworkFirewall::FirewallPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewallpolicy.html)\\.\nFor every rule, you must specify exactly one of the following standard actions\\. \n+ **aws:pass** \\- Discontinues all inspection of the packet and permits it to go to its intended destination\\.\n+ **aws:drop** \\- Discontinues all inspection of the packet and blocks it from going to its intended destination\\.\n+ **aws:forward\\_to\\_sfe** \\- Discontinues stateless inspection of the packet and forwards it to the stateful rule engine for inspection\\. \nAdditionally, you can specify a custom action\\. To do this, you define a custom action by name and type, then provide the name you've assigned to the action in this `Actions` setting\\. \nTo provide more than one action in this setting, separate the settings with a comma\\. For example, if you have a publish metrics custom action that you've named `MyMetricsAction`, then you could specify the standard action `aws:pass` combined with the custom action using `[\u201caws:pass\u201d, \u201cMyMetricsAction\u201d]`\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", + "type": "array" + }, + "MatchAttributes": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.MatchAttributes", + "markdownDescription": "Criteria for Network Firewall to use to inspect an individual packet in stateless rule inspection\\. Each match attributes set can include one or more items such as IP address, CIDR range, port number, protocol, and TCP flags\\. \n*Required*: Yes \n*Type*: [MatchAttributes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-matchattributes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Settings that are available for use in the rules in the rule group\\. You can only use these for stateful rule groups\\. \n*Required*: No \n*Type*: [RuleVariables](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulevariables.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleVariables" + }, + "RulesSource": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RulesSource", + "markdownDescription": "The stateful rules or stateless rules for the rule group\\. \n*Required*: Yes \n*Type*: [RulesSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RulesSource" + }, + "StatefulRuleOptions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatefulRuleOptions", + "markdownDescription": "Additional options governing how Network Firewall handles stateful rules\\. The policies where you use your stateful rule group must have stateful rule options settings that are compatible with these settings\\. \n*Required*: No \n*Type*: [StatefulRuleOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statefulruleoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatefulRuleOptions" + } + }, + "required": [ + "RulesSource" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleOption": { + "additionalProperties": false, + "properties": { + "Keyword": { + "markdownDescription": "*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Keyword", + "type": "string" + }, + "Settings": { + "items": { + "type": "string" + }, + "markdownDescription": "*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Settings", + "type": "array" + } + }, + "required": [ + "Keyword" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleVariables": { + "additionalProperties": false, + "properties": { + "IPSets": { + "additionalProperties": false, + "markdownDescription": "A list of IP addresses and address ranges, in CIDR notation\\. \n*Required*: No \n*Type*: Map of [IPSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ipset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.IPSet" + } + }, + "title": "IPSets", + "type": "object" + }, + "PortSets": { + "additionalProperties": false, + "markdownDescription": "A list of port ranges\\. \n*Required*: No \n*Type*: Map of [PortSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-portset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortSet" + } + }, + "title": "PortSets", + "type": "object" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RulesSource": { + "additionalProperties": false, + "properties": { + "RulesSourceList": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RulesSourceList", + "markdownDescription": "Stateful inspection criteria for a domain list rule group\\. \n*Required*: No \n*Type*: [RulesSourceList](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessourcelist.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RulesSourceList" + }, + "RulesString": { + "markdownDescription": "Stateful inspection criteria, provided in Suricata compatible intrusion prevention system \\(IPS\\) rules\\. Suricata is an open\\-source network IPS that includes a standard rule\\-based language for network traffic inspection\\. \nThese rules contain the inspection criteria and the action to take for traffic that matches the criteria, so this type of rule group doesn't have a separate action setting\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2000000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RulesString", + "type": "string" + }, + "StatefulRules": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatefulRule" + }, + "markdownDescription": "An array of individual stateful rules inspection criteria to be used together in a stateful rule group\\. Use this option to specify simple Suricata rules with protocol, source and destination, ports, direction, and rule options\\. For information about the Suricata `Rules` format, see [Rules Format](https://suricata.readthedocs.io/en/suricata-5.0.0/rules/intro.html#)\\. \n*Required*: No \n*Type*: List of [StatefulRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statefulrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatefulRules", + "type": "array" + }, + "StatelessRulesAndCustomActions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatelessRulesAndCustomActions", + "markdownDescription": "Stateless inspection criteria to be used in a stateless rule group\\. \n*Required*: No \n*Type*: [StatelessRulesAndCustomActions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statelessrulesandcustomactions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatelessRulesAndCustomActions" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RulesSourceList": { + "additionalProperties": false, + "properties": { + "GeneratedRulesType": { + "markdownDescription": "Whether you want to allow or deny access to the domains in your target list\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALLOWLIST | DENYLIST` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GeneratedRulesType", + "type": "string" + }, + "TargetTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The types of targets to inspect for\\. Valid values are `TLS_SNI` and `HTTP_HOST`\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetTypes", + "type": "array" + }, + "Targets": { + "items": { + "type": "string" + }, + "markdownDescription": "The domains that you want to inspect for in your traffic flows\\. Valid domain specifications are the following: \n+ Explicit names\\. For example, `abc.example.com` matches only the domain `abc.example.com`\\.\n+ Names that use a domain wildcard, which you indicate with an initial '`.`'\\. For example,`.example.com` matches `example.com` and matches all subdomains of `example.com`, such as `abc.example.com` and `www.example.com`\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Targets", + "type": "array" + } + }, + "required": [ + "GeneratedRulesType", + "TargetTypes", + "Targets" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatefulRule": { + "additionalProperties": false, + "properties": { + "Action": { + "markdownDescription": "Defines what Network Firewall should do with the packets in a traffic flow when the flow matches the stateful rule criteria\\. For all actions, Network Firewall performs the specified action and discontinues stateful inspection of the traffic flow\\. \nThe actions for a stateful rule are defined as follows: \n+ **PASS** \\- Permits the packets to go to the intended destination\\.\n+ **DROP** \\- Blocks the packets from going to the intended destination and sends an alert log message, if alert logging is configured in the firewall's [AWS::NetworkFirewall::LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-loggingconfiguration.html)\\. \n+ **ALERT** \\- Permits the packets to go to the intended destination and sends an alert log message, if alert logging is configured in the firewall's [AWS::NetworkFirewall::LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-loggingconfiguration.html)\\.", + "title": "Action", + "type": "string" + }, + "Header": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Header", + "markdownDescription": "The stateful inspection criteria for this rule, used to inspect traffic flows\\. \n*Required*: Yes \n*Type*: [Header](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-header.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Header" + }, + "RuleOptions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleOption" + }, + "markdownDescription": "Additional settings for a stateful rule, provided as keywords and settings\\. \n*Required*: Yes \n*Type*: List of [RuleOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruleoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleOptions", + "type": "array" + } + }, + "required": [ + "Action", + "Header", + "RuleOptions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatefulRuleOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "markdownDescription": "Indicates how to manage the order of the rule evaluation for the rule group\\. `DEFAULT_ACTION_ORDER` is the default behavior\\. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them based on certain settings\\. For more information, see [Evaluation order for stateful rules](https://docs.aws.amazon.com/network-firewall/latest/developerguide/suricata-rule-evaluation-order.html) in the *AWS Network Firewall Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DEFAULT_ACTION_ORDER | STRICT_ORDER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleOrder", + "type": "string" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatelessRule": { + "additionalProperties": false, + "properties": { + "Priority": { + "markdownDescription": "Indicates the order in which to run this rule relative to all of the rules that are defined for a stateless rule group\\. Network Firewall evaluates the rules in a rule group starting with the lowest priority setting\\. You must ensure that the priority settings are unique for the rule group\\. \nEach stateless rule group uses exactly one `StatelessRulesAndCustomActions` object, and each `StatelessRulesAndCustomActions` contains exactly one `StatelessRules` object\\. To ensure unique priority settings for your rule groups, set unique priorities for the stateless rules that you define inside any single `StatelessRules` object\\. \nYou can change the priority settings of your rules at any time\\. To make it easier to insert rules later, number them so there's a wide range in between, for example use 100, 200, and so on\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", + "type": "number" + }, + "RuleDefinition": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleDefinition", + "markdownDescription": "Defines the stateless 5\\-tuple packet inspection criteria and the action to take on a packet that matches the criteria\\. \n*Required*: Yes \n*Type*: [RuleDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruledefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleDefinition" + } + }, + "required": [ + "Priority", + "RuleDefinition" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatelessRulesAndCustomActions": { + "additionalProperties": false, + "properties": { + "CustomActions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.CustomAction" + }, + "markdownDescription": "Defines an array of individual custom action definitions that are available for use by the stateless rules in this `StatelessRulesAndCustomActions` specification\\. You name each custom action that you define, and then you can use it by name in your stateless rule [AWS::NetworkFirewall::RuleGroup RuleDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruledefinition.html) `Actions` specification\\. \n*Required*: No \n*Type*: List of [CustomAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-customaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomActions", + "type": "array" + }, + "StatelessRules": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatelessRule" + }, + "markdownDescription": "Defines the set of stateless rules for use in a stateless rule group\\. \n*Required*: Yes \n*Type*: List of [StatelessRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statelessrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatelessRules", + "type": "array" + } + }, + "required": [ + "StatelessRules" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.TCPFlagField": { + "additionalProperties": false, + "properties": { + "Flags": { + "items": { + "type": "string" + }, + "markdownDescription": "Used in conjunction with the `Masks` setting to define the flags that must be set and flags that must not be set in order for the packet to match\\. This setting can only specify values that are also specified in the `Masks` setting\\. \nFor the flags that are specified in the masks setting, the following must be true for the packet to match: \n+ The ones that are set in this flags setting must be set in the packet\\. \n+ The ones that are not set in this flags setting must also not be set in the packet\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Flags", + "type": "array" + }, + "Masks": { + "items": { + "type": "string" + }, + "markdownDescription": "The set of flags to consider in the inspection\\. To inspect all flags in the valid values list, leave this with no setting\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Masks", + "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" + } + }, + "required": [ + "ConnectAttachmentId", + "InsideCidrBlocks", + "PeerAddress" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkManager::ConnectPeer" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the customer gateway\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `500` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomerGatewayArn", + "type": "string" + }, + "DeviceId": { + "markdownDescription": "The ID of the device\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceId", + "type": "string" + }, + "GlobalNetworkId": { + "markdownDescription": "The ID of the global network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GlobalNetworkId", + "type": "string" + }, + "LinkId": { + "markdownDescription": "The ID of the link\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A description of the device\\. \nConstraints: Maximum length of 256 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "GlobalNetworkId": { + "markdownDescription": "The ID of the global network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GlobalNetworkId", + "type": "string" + }, + "Location": { + "$ref": "#/definitions/AWS::NetworkManager::Device.Location", + "markdownDescription": "The site location\\. \n*Required*: No \n*Type*: [Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-device-location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location" + }, + "Model": { + "markdownDescription": "The model of the device\\. \nConstraints: Maximum length of 128 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Model", + "type": "string" + }, + "SerialNumber": { + "markdownDescription": "The serial number of the device\\. \nConstraints: Maximum length of 128 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SerialNumber", + "type": "string" + }, + "SiteId": { + "markdownDescription": "The site ID\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SiteId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags for the device\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Type": { + "markdownDescription": "The device type\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "Vendor": { + "markdownDescription": "The vendor of the device\\. \nConstraints: Maximum length of 128 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The physical address\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Address", + "type": "string" + }, + "Latitude": { + "markdownDescription": "The latitude\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Latitude", + "type": "string" + }, + "Longitude": { + "markdownDescription": "The longitude\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A description of the global network\\. \nConstraints: Maximum length of 256 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags for the global network\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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", + "markdownDescription": "The bandwidth for the link\\. \n*Required*: Yes \n*Type*: [Bandwidth](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-link-bandwidth.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bandwidth" + }, + "Description": { + "markdownDescription": "A description of the link\\. \nConstraints: Maximum length of 256 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "GlobalNetworkId": { + "markdownDescription": "The ID of the global network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GlobalNetworkId", + "type": "string" + }, + "Provider": { + "markdownDescription": "The provider of the link\\. \nConstraints: Maximum length of 128 characters\\. Cannot include the following characters: \\| \\\\ ^ \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Provider", + "type": "string" + }, + "SiteId": { + "markdownDescription": "The ID of the site\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SiteId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags for the link\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Type": { + "markdownDescription": "The type of the link\\. \nConstraints: Maximum length of 128 characters\\. Cannot include the following characters: \\| \\\\ ^ \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Download speed in Mbps\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DownloadSpeed", + "type": "number" + }, + "UploadSpeed": { + "markdownDescription": "Upload speed in Mbps\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The device ID for the link association\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceId", + "type": "string" + }, + "GlobalNetworkId": { + "markdownDescription": "The ID of the global network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GlobalNetworkId", + "type": "string" + }, + "LinkId": { + "markdownDescription": "The ID of the link\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A description of your site\\. \nConstraints: Maximum length of 256 characters\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "GlobalNetworkId": { + "markdownDescription": "The ID of the global network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GlobalNetworkId", + "type": "string" + }, + "Location": { + "$ref": "#/definitions/AWS::NetworkManager::Site.Location", + "markdownDescription": "The site location\\. This information is used for visualization in the Network Manager console\\. If you specify the address, the latitude and longitude are automatically calculated\\. \n+ `Address`: The physical address of the site\\.\n+ `Latitude`: The latitude of the site\\. \n+ `Longitude`: The longitude of the site\\.\n*Required*: No \n*Type*: [Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-site-location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags for the site\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The physical address\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Address", + "type": "string" + }, + "Latitude": { + "markdownDescription": "The latitude\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Latitude", + "type": "string" + }, + "Longitude": { + "markdownDescription": "The longitude\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + } + }, + "required": [ + "CoreNetworkId", + "VpnConnectionArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkManager::SiteToSiteVpnAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "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::TransitGatewayPeering": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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" + }, + "TransitGatewayArn": { + "type": "string" + } + }, + "required": [ + "CoreNetworkId", + "TransitGatewayArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkManager::TransitGatewayPeering" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "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": { + "markdownDescription": "The ID of the global network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GlobalNetworkId", + "type": "string" + }, + "TransitGatewayArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `500` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A human\\-readable description of the launch profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Ec2SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "Unique identifiers for a collection of EC2 subnets\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ec2SubnetIds", + "type": "array" + }, + "LaunchProfileProtocolVersions": { + "items": { + "type": "string" + }, + "markdownDescription": "The version number of the protocol that is used by the launch profile\\. The only valid version is \"2021\\-03\\-31\"\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchProfileProtocolVersions", + "type": "array" + }, + "Name": { + "markdownDescription": "A friendly name for the launch profile\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "StreamConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::LaunchProfile.StreamConfiguration", + "markdownDescription": "A configuration for a streaming session\\. \n*Required*: Yes \n*Type*: [StreamConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-launchprofile-streamconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamConfiguration" + }, + "StudioComponentIds": { + "items": { + "type": "string" + }, + "markdownDescription": "Unique identifiers for a collection of studio components that can be used with this launch profile\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StudioComponentIds", + "type": "array" + }, + "StudioId": { + "markdownDescription": "The unique identifier for a studio resource\\. In Nimble Studio, all other resources are contained in a studio resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StudioId", + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "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": { + "markdownDescription": "Enable or disable the use of the system clipboard to copy and paste between the streaming session and streaming client\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClipboardMode", + "type": "string" + }, + "Ec2InstanceTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The EC2 instance types that users can select from when launching a streaming session with this launch profile\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ec2InstanceTypes", + "type": "array" + }, + "MaxSessionLengthInMinutes": { + "markdownDescription": "The length of time, in minutes, that a streaming session can be active before it is stopped or terminated\\. After this point, Nimble Studio automatically terminates or stops the session\\. The default length of time is 690 minutes, and the maximum length of time is 30 days\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxSessionLengthInMinutes", + "type": "number" + }, + "MaxStoppedSessionLengthInMinutes": { + "markdownDescription": "Integer that determines if you can start and stop your sessions and how long a session can stay in the STOPPED state\\. The default value is 0\\. The maximum value is 5760\\. \nIf the value is missing or set to 0, your sessions can\u2019t be stopped\\. If you then call `StopStreamingSession`, the session fails\\. If the time that a session stays in the READY state exceeds the `maxSessionLengthInMinutes` value, the session will automatically be terminated \\(instead of stopped\\)\\. \nIf the value is set to a positive number, the session can be stopped\\. You can call `StopStreamingSession` to stop sessions in the READY state\\. If the time that a session stays in the READY state exceeds the `maxSessionLengthInMinutes` value, the session will automatically be stopped \\(instead of terminated\\)\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxStoppedSessionLengthInMinutes", + "type": "number" + }, + "SessionBackup": { + "$ref": "#/definitions/AWS::NimbleStudio::LaunchProfile.StreamConfigurationSessionBackup" + }, + "SessionPersistenceMode": { + "type": "string" + }, + "SessionStorage": { + "$ref": "#/definitions/AWS::NimbleStudio::LaunchProfile.StreamConfigurationSessionStorage", + "markdownDescription": "\\(Optional\\) The upload storage for a streaming session\\. \n*Required*: No \n*Type*: [StreamConfigurationSessionStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-launchprofile-streamconfigurationsessionstorage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionStorage" + }, + "StreamingImageIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The streaming images that users can select from when launching a streaming session with this launch profile\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StreamingImageIds", + "type": "array" + }, + "VolumeConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::LaunchProfile.VolumeConfiguration" + } + }, + "required": [ + "ClipboardMode", + "Ec2InstanceTypes", + "StreamingImageIds" + ], + "type": "object" + }, + "AWS::NimbleStudio::LaunchProfile.StreamConfigurationSessionBackup": { + "additionalProperties": false, + "properties": { + "MaxBackupsToRetain": { + "type": "number" + }, + "Mode": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::LaunchProfile.StreamConfigurationSessionStorage": { + "additionalProperties": false, + "properties": { + "Mode": { + "items": { + "type": "string" + }, + "markdownDescription": "Allows artists to upload files to their workstations\\. The only valid option is `UPLOAD`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", + "type": "array" + }, + "Root": { + "$ref": "#/definitions/AWS::NimbleStudio::LaunchProfile.StreamingSessionStorageRoot", + "markdownDescription": "The configuration for the upload storage root of the streaming session\\. \n*Required*: No \n*Type*: [StreamingSessionStorageRoot](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-launchprofile-streamingsessionstorageroot.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Root" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "AWS::NimbleStudio::LaunchProfile.StreamingSessionStorageRoot": { + "additionalProperties": false, + "properties": { + "Linux": { + "markdownDescription": "The folder path in Linux workstations where files are uploaded\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Linux", + "type": "string" + }, + "Windows": { + "markdownDescription": "The folder path in Windows workstations where files are uploaded\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A human\\-readable description of the streaming image\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Ec2ImageId": { + "markdownDescription": "The ID of an EC2 machine image with which to create the streaming image\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ec2ImageId", + "type": "string" + }, + "Name": { + "markdownDescription": "A friendly name for a streaming image resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "StudioId": { + "markdownDescription": "The unique identifier for a studio resource\\. In Nimble Studio, all other resources are contained in a studio resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StudioId", + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "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": { + "markdownDescription": "The IAM role that studio admins assume when logging in to the Nimble Studio portal\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdminRoleArn", + "type": "string" + }, + "DisplayName": { + "markdownDescription": "A friendly name for the studio\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", + "type": "string" + }, + "StudioEncryptionConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::Studio.StudioEncryptionConfiguration", + "markdownDescription": "Configuration of the encryption method that is used for the studio\\. \n*Required*: No \n*Type*: [StudioEncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studio-studioencryptionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StudioEncryptionConfiguration" + }, + "StudioName": { + "markdownDescription": "The name of the studio, as included in the URL when accessing it in the Nimble Studio portal\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StudioName", + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "type": "object" + }, + "UserRoleArn": { + "markdownDescription": "The IAM role that studio users assume when logging in to the Nimble Studio portal\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ARN for a KMS key that is used to encrypt studio data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyArn", + "type": "string" + }, + "KeyType": { + "markdownDescription": "The type of KMS key that is used to encrypt studio data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The configuration of the studio component, based on component type\\. \n*Required*: No \n*Type*: [StudioComponentConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-studiocomponentconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configuration" + }, + "Description": { + "markdownDescription": "A human\\-readable description for the studio component resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Ec2SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The EC2 security groups that control access to the studio component\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ec2SecurityGroupIds", + "type": "array" + }, + "InitializationScripts": { + "items": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript" + }, + "markdownDescription": "Initialization scripts for studio components\\. \n*Required*: No \n*Type*: List of [StudioComponentInitializationScript](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-studiocomponentinitializationscript.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InitializationScripts", + "type": "array" + }, + "Name": { + "markdownDescription": "A friendly name for the studio component resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "ScriptParameters": { + "items": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue" + }, + "markdownDescription": "Parameters for the studio component scripts\\. \n*Required*: No \n*Type*: List of [ScriptParameterKeyValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-scriptparameterkeyvalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScriptParameters", + "type": "array" + }, + "StudioId": { + "markdownDescription": "The unique identifier for a studio resource\\. In Nimble Studio, all other resources are contained in a studio resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StudioId", + "type": "string" + }, + "Subtype": { + "markdownDescription": "The specific subtype of a studio component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subtype", + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "type": "object" + }, + "Type": { + "markdownDescription": "The type of the studio component\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "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": { + "markdownDescription": "The name for the LDAP attribute\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "The value for the LDAP attribute\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration": { + "additionalProperties": false, + "properties": { + "ComputerAttributes": { + "items": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryComputerAttribute" + }, + "markdownDescription": "A collection of custom attributes for an Active Directory computer\\. \n*Required*: No \n*Type*: List of [ActiveDirectoryComputerAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-activedirectorycomputerattribute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputerAttributes", + "type": "array" + }, + "DirectoryId": { + "markdownDescription": "The directory ID of the Directory Service for Microsoft Active Directory to access using this studio component\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DirectoryId", + "type": "string" + }, + "OrganizationalUnitDistinguishedName": { + "markdownDescription": "The distinguished name \\(DN\\) and organizational unit \\(OU\\) of an Active Directory computer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrganizationalUnitDistinguishedName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration": { + "additionalProperties": false, + "properties": { + "ActiveDirectoryUser": { + "markdownDescription": "The name of an Active Directory user that is used on ComputeFarm worker instances\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActiveDirectoryUser", + "type": "string" + }, + "Endpoint": { + "markdownDescription": "The endpoint of the ComputeFarm that is accessed by the studio component resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Endpoint", + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "markdownDescription": "The endpoint of the license service that is accessed by the studio component resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Endpoint", + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "A script parameter key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "A script parameter value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "markdownDescription": "The endpoint of the shared file system that is accessed by the studio component resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Endpoint", + "type": "string" + }, + "FileSystemId": { + "markdownDescription": "The unique identifier for a file system\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileSystemId", + "type": "string" + }, + "LinuxMountPoint": { + "markdownDescription": "The mount location for a shared file system on a Linux virtual workstation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LinuxMountPoint", + "type": "string" + }, + "ShareName": { + "markdownDescription": "The name of the file share\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShareName", + "type": "string" + }, + "WindowsMountDrive": { + "markdownDescription": "The mount location for a shared file system on a Windows virtual workstation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WindowsMountDrive", + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration": { + "additionalProperties": false, + "properties": { + "ActiveDirectoryConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration", + "markdownDescription": "The configuration for a Microsoft Active Directory \\(Microsoft AD\\) studio resource\\. \n*Required*: No \n*Type*: [ActiveDirectoryConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-activedirectoryconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActiveDirectoryConfiguration" + }, + "ComputeFarmConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration", + "markdownDescription": "The configuration for a render farm that is associated with a studio resource\\. \n*Required*: No \n*Type*: [ComputeFarmConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-computefarmconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputeFarmConfiguration" + }, + "LicenseServiceConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration", + "markdownDescription": "The configuration for a license service that is associated with a studio resource\\. \n*Required*: No \n*Type*: [LicenseServiceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-licenseserviceconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LicenseServiceConfiguration" + }, + "SharedFileSystemConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration", + "markdownDescription": "The configuration for a shared file storage system that is associated with a studio resource\\. \n*Required*: No \n*Type*: [SharedFileSystemConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-sharedfilesystemconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SharedFileSystemConfiguration" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript": { + "additionalProperties": false, + "properties": { + "LaunchProfileProtocolVersion": { + "markdownDescription": "The version number of the protocol that is used by the launch profile\\. The only valid version is \"2021\\-03\\-31\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LaunchProfileProtocolVersion", + "type": "string" + }, + "Platform": { + "markdownDescription": "The platform of the initialization script, either WINDOWS or LINUX\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Platform", + "type": "string" + }, + "RunContext": { + "markdownDescription": "The method to use when running the initialization script\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RunContext", + "type": "string" + }, + "Script": { + "markdownDescription": "The initialization script\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": [ + "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::Omics::AnnotationStore": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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" + }, + "Reference": { + "$ref": "#/definitions/AWS::Omics::AnnotationStore.ReferenceItem" + }, + "SseConfig": { + "$ref": "#/definitions/AWS::Omics::AnnotationStore.SseConfig" + }, + "StoreFormat": { + "type": "string" + }, + "StoreOptions": { + "$ref": "#/definitions/AWS::Omics::AnnotationStore.StoreOptions" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "Name", + "StoreFormat" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Omics::AnnotationStore" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Omics::AnnotationStore.ReferenceItem": { + "additionalProperties": false, + "properties": { + "ReferenceArn": { + "type": "string" + } + }, + "required": [ + "ReferenceArn" + ], + "type": "object" + }, + "AWS::Omics::AnnotationStore.SseConfig": { + "additionalProperties": false, + "properties": { + "KeyArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Omics::AnnotationStore.StoreOptions": { + "additionalProperties": false, + "properties": { + "TsvStoreOptions": { + "$ref": "#/definitions/AWS::Omics::AnnotationStore.TsvStoreOptions" + } + }, + "required": [ + "TsvStoreOptions" + ], + "type": "object" + }, + "AWS::Omics::AnnotationStore.TsvStoreOptions": { + "additionalProperties": false, + "properties": { + "AnnotationType": { + "type": "string" + }, + "FormatToHeader": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Schema": { + "type": "object" + } + }, + "type": "object" + }, + "AWS::Omics::ReferenceStore": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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" + }, + "SseConfig": { + "$ref": "#/definitions/AWS::Omics::ReferenceStore.SseConfig" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Omics::ReferenceStore" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Omics::ReferenceStore.SseConfig": { + "additionalProperties": false, + "properties": { + "KeyArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Omics::RunGroup": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "MaxCpus": { + "type": "number" + }, + "MaxDuration": { + "type": "number" + }, + "MaxRuns": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Omics::RunGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Omics::SequenceStore": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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" + }, + "SseConfig": { + "$ref": "#/definitions/AWS::Omics::SequenceStore.SseConfig" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Omics::SequenceStore" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Omics::SequenceStore.SseConfig": { + "additionalProperties": false, + "properties": { + "KeyArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Omics::VariantStore": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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" + }, + "Reference": { + "$ref": "#/definitions/AWS::Omics::VariantStore.ReferenceItem" + }, + "SseConfig": { + "$ref": "#/definitions/AWS::Omics::VariantStore.SseConfig" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "Name", + "Reference" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Omics::VariantStore" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Omics::VariantStore.ReferenceItem": { + "additionalProperties": false, + "properties": { + "ReferenceArn": { + "type": "string" + } + }, + "required": [ + "ReferenceArn" + ], + "type": "object" + }, + "AWS::Omics::VariantStore.SseConfig": { + "additionalProperties": false, + "properties": { + "KeyArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Omics::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": { + "DefinitionUri": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Engine": { + "type": "string" + }, + "Main": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ParameterTemplate": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::Omics::Workflow.WorkflowParameter" + } + }, + "type": "object" + }, + "StorageCapacity": { + "type": "number" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Omics::Workflow" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Omics::Workflow.WorkflowParameter": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Optional": { + "type": "boolean" + } + }, + "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": { + "markdownDescription": "An AWS Identity and Access Management \\(IAM\\) policy document that specifies who can access the OpenSearch Service domain and their permissions\\. For more information, see [Configuring access policies](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ac.html#ac-creating) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessPolicies", + "type": "object" + }, + "AdvancedOptions": { + "additionalProperties": true, + "markdownDescription": "Additional options to specify for the OpenSearch Service domain\\. For more information, see [AdvancedOptions](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/configuration-api.html#configuration-api-datatypes-advancedoptions) in the OpenSearch Service configuration API reference\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "AdvancedOptions", + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.AdvancedSecurityOptionsInput", + "markdownDescription": "Specifies options for fine\\-grained access control\\. \n*Required*: No \n*Type*: [AdvancedSecurityOptionsInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-advancedsecurityoptionsinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AdvancedSecurityOptions" + }, + "ClusterConfig": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.ClusterConfig", + "markdownDescription": "`ClusterConfig` is a property of the AWS::OpenSearchService::Domain resource that configures an Amazon OpenSearch Service cluster\\. \n*Required*: No \n*Type*: [ClusterConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-clusterconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterConfig" + }, + "CognitoOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.CognitoOptions", + "markdownDescription": "Configures OpenSearch Service to use Amazon Cognito authentication for OpenSearch Dashboards\\. \n*Required*: No \n*Type*: [CognitoOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-cognitooptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CognitoOptions" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.DomainEndpointOptions", + "markdownDescription": "Specifies additional options for the domain endpoint, such as whether to require HTTPS for all traffic or whether to use a custom endpoint rather than the default endpoint\\. \n*Required*: No \n*Type*: [DomainEndpointOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-domainendpointoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainEndpointOptions" + }, + "DomainName": { + "markdownDescription": "A name for the OpenSearch Service domain\\. For valid values, see the [DomainName](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/configuration-api.html#configuration-api-datatypes-domainname) data type in the *Amazon OpenSearch Service Developer Guide*\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the domain name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nRequired when creating a new domain\\. \nIf you specify a name, you can't perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.EBSOptions", + "markdownDescription": "The configurations of Amazon Elastic Block Store \\(Amazon EBS\\) volumes that are attached to data nodes in the OpenSearch Service domain\\. For more information, see [EBS volume size limits](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#ebsresource) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: [EBSOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-ebsoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.EncryptionAtRestOptions", + "markdownDescription": "Whether the domain should encrypt data at rest, and if so, the AWS KMS key to use\\. See [Encryption of data at rest for Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/encryption-at-rest.html)\\. \n*Required*: No \n*Type*: [EncryptionAtRestOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-encryptionatrestoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionAtRestOptions" + }, + "EngineVersion": { + "markdownDescription": "The version of OpenSearch to use\\. The value must be in the format `OpenSearch_X.Y` or `Elasticsearch_X.Y`\\. If not specified, the latest version of OpenSearch is used\\. For information about the versions that OpenSearch Service supports, see [Supported versions of OpenSearch and Elasticsearch](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/what-is.html#choosing-version) in the *Amazon OpenSearch Service Developer Guide*\\. \nIf you set the [EnableVersionUpgrade](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-upgradeopensearchdomain) update policy to `true`, you can update `EngineVersion` without interruption\\. When `EnableVersionUpgrade` is set to `false`, or is not specified, updating `EngineVersion` results in [replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EngineVersion", + "type": "string" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "markdownDescription": "An object with one or more of the following keys: `SEARCH_SLOW_LOGS`, `ES_APPLICATION_LOGS`, `INDEX_SLOW_LOGS`, `AUDIT_LOGS`, depending on the types of logs you want to publish\\. Each key needs a valid `LogPublishingOption` value\\. For the full syntax, see the [examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opensearchservice-domain.html#aws-resource-opensearchservice-domain--examples)\\. \n*Required*: No \n*Type*: Map of [LogPublishingOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-logpublishingoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.LogPublishingOption" + } + }, + "title": "LogPublishingOptions", + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.NodeToNodeEncryptionOptions", + "markdownDescription": "Specifies whether node\\-to\\-node encryption is enabled\\. See [Node\\-to\\-node encryption for Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ntn.html)\\. \n*Required*: No \n*Type*: [NodeToNodeEncryptionOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-nodetonodeencryptionoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NodeToNodeEncryptionOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.SnapshotOptions", + "markdownDescription": "**DEPRECATED**\\. The automated snapshot configuration for the OpenSearch Service domain indices\\. \n*Required*: No \n*Type*: [SnapshotOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-snapshotoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An arbitrary set of tags \\(key\u2013value pairs\\) to associate with the OpenSearch Service domain\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VPCOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.VPCOptions", + "markdownDescription": "The virtual private cloud \\(VPC\\) configuration for the OpenSearch Service domain\\. For more information, see [Launching your Amazon OpenSearch Service domains within a VPC](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: [VPCOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-vpcoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "AnonymousAuthDisableDate": { + "type": "string" + }, + "AnonymousAuthEnabled": { + "type": "boolean" + }, + "Enabled": { + "markdownDescription": "True to enable fine\\-grained access control\\. You must also enable encryption of data at rest and node\\-to\\-node encryption\\. See [Fine\\-grained access control in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Enabled", + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "markdownDescription": "True to enable the internal user database\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InternalUserDatabaseEnabled", + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.MasterUserOptions", + "markdownDescription": "Specifies information about the master user\\. \n*Required*: No \n*Type*: [MasterUserOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-masteruseroptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MasterUserOptions" + }, + "SAMLOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.SAMLOptions" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.ClusterConfig": { + "additionalProperties": false, + "properties": { + "DedicatedMasterCount": { + "markdownDescription": "The number of instances to use for the master node\\. If you specify this property, you must specify `true` for the `DedicatedMasterEnabled` property\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DedicatedMasterCount", + "type": "number" + }, + "DedicatedMasterEnabled": { + "markdownDescription": "Indicates whether to use a dedicated master node for the OpenSearch Service domain\\. A dedicated master node is a cluster node that performs cluster management tasks, but doesn't hold data or respond to data upload requests\\. Dedicated master nodes offload cluster management tasks to increase the stability of your search clusters\\. See [Dedicated master nodes in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-dedicatedmasternodes.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DedicatedMasterEnabled", + "type": "boolean" + }, + "DedicatedMasterType": { + "markdownDescription": "The hardware configuration of the computer that hosts the dedicated master node, such as `m3.medium.search`\\. If you specify this property, you must specify `true` for the `DedicatedMasterEnabled` property\\. For valid values, see [Supported instance types in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DedicatedMasterType", + "type": "string" + }, + "InstanceCount": { + "markdownDescription": "The number of data nodes \\(instances\\) to use in the OpenSearch Service domain\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceCount", + "type": "number" + }, + "InstanceType": { + "markdownDescription": "The instance type for your data nodes, such as `m3.medium.search`\\. For valid values, see [Supported instance types in Amazon OpenSearch Service ](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", + "type": "string" + }, + "WarmCount": { + "markdownDescription": "The number of warm nodes in the cluster\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WarmCount", + "type": "number" + }, + "WarmEnabled": { + "markdownDescription": "Whether to enable UltraWarm storage for the cluster\\. See [UltraWarm storage for Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ultrawarm.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WarmEnabled", + "type": "boolean" + }, + "WarmType": { + "markdownDescription": "The instance type for the cluster's warm nodes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WarmType", + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.ZoneAwarenessConfig", + "markdownDescription": "Specifies zone awareness configuration options\\. Only use if `ZoneAwarenessEnabled` is `true`\\. \n*Required*: No \n*Type*: [ZoneAwarenessConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-zoneawarenessconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "markdownDescription": "Indicates whether to enable zone awareness for the OpenSearch Service domain\\. When you enable zone awareness, OpenSearch Service allocates the nodes and replica index shards that belong to a cluster across two Availability Zones \\(AZs\\) in the same region to prevent data loss and minimize downtime in the event of node or data center failure\\. Don't enable zone awareness if your cluster has no replica index shards or is a single\\-node cluster\\. For more information, see [Configuring a multi\\-AZ domain in Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-multiaz.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ZoneAwarenessEnabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Whether to enable or disable Amazon Cognito authentication for OpenSearch Dashboards\\. See [Amazon Cognito authentication for OpenSearch Dashboards](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/cognito-auth.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "IdentityPoolId": { + "markdownDescription": "The Amazon Cognito identity pool ID that you want OpenSearch Service to use for OpenSearch Dashboards authentication\\. \nRequired if you enabled Cognito Authentication for OpenSearch Dashboards\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentityPoolId", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The `AmazonOpenSearchServiceCognitoAccess` role that allows OpenSearch Service to configure your user pool and identity pool\\. \nRequired if you enabled Cognito Authentication for OpenSearch Dashboards\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "UserPoolId": { + "markdownDescription": "The Amazon Cognito user pool ID that you want OpenSearch Service to use for OpenSearch Dashboards authentication\\. \nRequired if you enabled Cognito Authentication for OpenSearch Dashboards\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserPoolId", + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "markdownDescription": "The fully qualified URL for your custom endpoint\\. Required if you enabled a custom endpoint for the domain\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomEndpoint", + "type": "string" + }, + "CustomEndpointCertificateArn": { + "markdownDescription": "The AWS Certificate Manager ARN for your domain's SSL/TLS certificate\\. Required if you enabled a custom endpoint for the domain\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomEndpointCertificateArn", + "type": "string" + }, + "CustomEndpointEnabled": { + "markdownDescription": "True to enable a custom endpoint for the domain\\. If enabled, you must also provide values for `CustomEndpoint` and `CustomEndpointCertificateArn`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomEndpointEnabled", + "type": "boolean" + }, + "EnforceHTTPS": { + "markdownDescription": "True to require that all traffic to the domain arrive over HTTPS\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnforceHTTPS", + "type": "boolean" + }, + "TLSSecurityPolicy": { + "markdownDescription": "The minimum TLS version required for traffic to the domain\\. Valid values are TLS 1\\.0 \\(default\\) or 1\\.2: \n+ `Policy-Min-TLS-1-0-2019-07`\n+ `Policy-Min-TLS-1-2-2019-07`\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TLSSecurityPolicy", + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "markdownDescription": "Specifies whether Amazon EBS volumes are attached to data nodes in the OpenSearch Service domain\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EBSEnabled", + "type": "boolean" + }, + "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\) that the volume supports\\. This property applies only to the Provisioned IOPS \\(SSD\\) EBS volume type\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iops", + "type": "number" + }, + "Throughput": { + "type": "number" + }, + "VolumeSize": { + "markdownDescription": "The size \\(in GiB\\) of the EBS volume for each data node\\. The minimum and maximum size of an EBS volume depends on the EBS volume type and the instance type to which it is attached\\. For more information, see [EBS volume size limits](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/limits.html#ebsresource) in the *Amazon OpenSearch Service Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeSize", + "type": "number" + }, + "VolumeType": { + "markdownDescription": "The EBS volume type to use with the OpenSearch Service domain, such as standard, gp2, or io1\\. For more information about each type, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon EC2 User Guide for Linux Instances*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Specify `true` to enable encryption at rest\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "KmsKeyId": { + "markdownDescription": "The KMS key ID\\. Takes the form `1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a`\\. Required if you enable encryption at rest\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.Idp": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "MetadataContent": { + "type": "string" + } + }, + "required": [ + "EntityId", + "MetadataContent" + ], + "type": "object" + }, + "AWS::OpenSearchService::Domain.LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "markdownDescription": "Specifies the CloudWatch log group to publish to\\. Required if you enable log publishing\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogsLogGroupArn", + "type": "string" + }, + "Enabled": { + "markdownDescription": "If `true`, enables the publishing of logs to CloudWatch\\. \nDefault: `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "markdownDescription": "ARN for the master user\\. Only specify if `InternalUserDatabaseEnabled` is false in `AdvancedSecurityOptions`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MasterUserARN", + "type": "string" + }, + "MasterUserName": { + "markdownDescription": "Username for the master user\\. Only specify if `InternalUserDatabaseEnabled` is true in `AdvancedSecurityOptions`\\. If you don't want to specify this value directly within the template, you can use a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) instead\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MasterUserName", + "type": "string" + }, + "MasterUserPassword": { + "markdownDescription": "Password for the master user\\. Only specify if `InternalUserDatabaseEnabled` is true in `AdvancedSecurityOptions`\\. If you don't want to specify this value directly within the template, you can use a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) instead\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MasterUserPassword", + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "Specifies to enable or disable node\\-to\\-node encryption on the domain\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.SAMLOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Idp": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.Idp" + }, + "MasterBackendRole": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "RolesKey": { + "type": "string" + }, + "SessionTimeoutMinutes": { + "type": "number" + }, + "SubjectKey": { + "type": "string" + } + }, + "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": { + "markdownDescription": "The hour in UTC during which the service takes an automated daily snapshot of the indices in the OpenSearch Service domain\\. For example, if you specify 0, OpenSearch Service takes an automated snapshot everyday between midnight and 1 am\\. You can specify a value between 0 and 23\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutomatedSnapshotStartHour", + "type": "number" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of security group IDs that are associated with the VPC endpoints for the domain\\. If you don't provide a security group ID, OpenSearch Service uses the default security group for the VPC\\. To learn more, see [Security groups for your VPC ](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) in the *Amazon VPC User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "Provide one subnet ID for each Availability Zone that your domain uses\\. For example, you must specify three subnet IDs for a three Availability Zone domain\\. To learn more, see [VPCs and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html) in the *Amazon VPC User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "type": "array" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "markdownDescription": "If you enabled multiple Availability Zones \\(AZs\\), the number of AZs that you want the domain to use\\. \nValid values are `2` and `3`\\. Default is 2\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "A `Source` object that specifies the app repository\\. \n*Required*: No \n*Type*: [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source-1.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppSource" + }, + "Attributes": { + "additionalProperties": true, + "markdownDescription": "One or more user\\-defined key/value pairs to be added to the stack attributes\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Attributes", + "type": "object" + }, + "DataSources": { + "items": { + "$ref": "#/definitions/AWS::OpsWorks::App.DataSource" + }, + "markdownDescription": "The app's data source\\. \n*Required*: No \n*Type*: List of [DataSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-datasource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSources", + "type": "array" + }, + "Description": { + "markdownDescription": "A description of the app\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Domains": { + "items": { + "type": "string" + }, + "markdownDescription": "The app virtual host settings, with multiple domains separated by commas\\. For example: `'www.example.com, example.com'` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Domains", + "type": "array" + }, + "EnableSsl": { + "markdownDescription": "Whether to enable SSL for the app\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableSsl", + "type": "boolean" + }, + "Environment": { + "items": { + "$ref": "#/definitions/AWS::OpsWorks::App.EnvironmentVariable" + }, + "markdownDescription": "An array of `EnvironmentVariable` objects that specify environment variables to be associated with the app\\. After you deploy the app, these variables are defined on the associated app server instance\\. For more information, see [ Environment Variables](https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html#workingapps-creating-environment)\\. \nThere is no specific limit on the number of environment variables\\. However, the size of the associated data structure \\- which includes the variables' names, values, and protected flag values \\- cannot exceed 20 KB\\. This limit should accommodate most if not all use cases\\. Exceeding it will cause an exception with the message, \"Environment: is too large \\(maximum is 20KB\\)\\.\" \nIf you have specified one or more environment variables, you cannot modify the stack's Chef version\\.\n*Required*: No \n*Type*: List of [EnvironmentVariable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-environment.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Environment", + "type": "array" + }, + "Name": { + "markdownDescription": "The app name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Shortname": { + "markdownDescription": "The app's short name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Shortname", + "type": "string" + }, + "SslConfiguration": { + "$ref": "#/definitions/AWS::OpsWorks::App.SslConfiguration", + "markdownDescription": "An `SslConfiguration` object with the SSL configuration\\. \n*Required*: No \n*Type*: [SslConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-app-sslconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SslConfiguration" + }, + "StackId": { + "markdownDescription": "The stack ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StackId", + "type": "string" + }, + "Type": { + "markdownDescription": "The app type\\. Each supported type is associated with a particular layer\\. For example, PHP applications are associated with a PHP layer\\. AWS OpsWorks Stacks deploys an application to those instances that are members of the corresponding layer\\. If your app isn't one of the standard types, or you prefer to implement your own Deploy recipes, specify `other`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `aws-flow-ruby | java | nodejs | other | php | rails | static` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "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": { + "markdownDescription": "The data source's ARN\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "DatabaseName": { + "markdownDescription": "The database name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", + "type": "string" + }, + "Type": { + "markdownDescription": "The data source's type, `AutoSelectOpsworksMysqlInstance`, `OpsworksMysqlInstance`, `RdsDbInstance`, or `None`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpsWorks::App.EnvironmentVariable": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "\\(Required\\) The environment variable's name, which can consist of up to 64 characters and must be specified\\. The name can contain upper\\- and lowercase letters, numbers, and underscores \\(\\_\\), but it must start with a letter or underscore\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Secure": { + "markdownDescription": "\\(Optional\\) Whether the variable's value is returned by the [DescribeApps](https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeApps) action\\. To hide an environment variable's value, set `Secure` to `true`\\. `DescribeApps` returns `*****FILTERED*****` instead of the actual value\\. The default value for `Secure` is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Secure", + "type": "boolean" + }, + "Value": { + "markdownDescription": "\\(Optional\\) The environment variable's value, which can be left empty\\. If you specify a value, it can contain up to 256 characters, which must all be printable\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::OpsWorks::App.Source": { + "additionalProperties": false, + "properties": { + "Password": { + "markdownDescription": "When included in a request, the parameter depends on the repository type\\. \n+ For Amazon S3 bundles, set `Password` to the appropriate IAM secret access key\\.\n+ For HTTP bundles and Subversion repositories, set `Password` to the password\\.\nFor more information on how to safely handle IAM credentials, see [https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html)\\. \nIn responses, AWS OpsWorks Stacks returns `*****FILTERED*****` instead of the actual value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", + "type": "string" + }, + "Revision": { + "markdownDescription": "The application's version\\. AWS OpsWorks Stacks enables you to easily deploy new versions of an application\\. One of the simplest approaches is to have branches or revisions in your repository that represent different versions that can potentially be deployed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Revision", + "type": "string" + }, + "SshKey": { + "markdownDescription": "In requests, the repository's SSH key\\. \nIn responses, AWS OpsWorks Stacks returns `*****FILTERED*****` instead of the actual value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SshKey", + "type": "string" + }, + "Type": { + "markdownDescription": "The repository type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `archive | git | s3 | svn` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "Url": { + "markdownDescription": "The source URL\\. The following is an example of an Amazon S3 source URL: `https://s3.amazonaws.com/opsworks-demo-bucket/opsworks_cookbook_demo.tar.gz`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", + "type": "string" + }, + "Username": { + "markdownDescription": "This parameter depends on the repository type\\. \n+ For Amazon S3 bundles, set `Username` to the appropriate IAM access key ID\\.\n+ For HTTP bundles, Git repositories, and Subversion repositories, set `Username` to the user name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpsWorks::App.SslConfiguration": { + "additionalProperties": false, + "properties": { + "Certificate": { + "markdownDescription": "The contents of the certificate's domain\\.crt file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate", + "type": "string" + }, + "Chain": { + "markdownDescription": "Optional\\. Can be used to specify an intermediate certificate authority key or client authentication\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Chain", + "type": "string" + }, + "PrivateKey": { + "markdownDescription": "The private key; the contents of the certificate's domain\\.kex file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Elastic Load Balancing instance name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticLoadBalancerName", + "type": "string" + }, + "LayerId": { + "markdownDescription": "The AWS OpsWorks layer ID to which the Elastic Load Balancing load balancer is attached\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The default AWS OpsWorks Stacks agent version\\. You have the following options: \n+ `INHERIT` \\- Use the stack's default agent version setting\\.\n+ *version\\_number* \\- Use the specified agent version\\. This value overrides the stack's default setting\\. To update the agent version, edit the instance configuration and specify a new version\\. AWS OpsWorks Stacks installs that version on the instance\\.\nThe default setting is `INHERIT`\\. To specify an agent version, you must use the complete version number, not the abbreviated number shown on the console\\. For a list of available agent version numbers, call [DescribeAgentVersions](https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeAgentVersions)\\. AgentVersion cannot be set to Chef 12\\.2\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AgentVersion", + "type": "string" + }, + "AmiId": { + "markdownDescription": "A custom AMI ID to be used to create the instance\\. The AMI should be based on one of the supported operating systems\\. For more information, see [Using Custom AMIs](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html)\\. \nIf you specify a custom AMI, you must set `Os` to `Custom`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AmiId", + "type": "string" + }, + "Architecture": { + "markdownDescription": "The instance architecture\\. The default option is `x86_64`\\. Instance types do not necessarily support both architectures\\. For a list of the architectures that are supported by the different instance types, see [Instance Families and Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `i386 | x86_64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Architecture", + "type": "string" + }, + "AutoScalingType": { + "markdownDescription": "For load\\-based or time\\-based instances, the type\\. Windows stacks can use only time\\-based instances\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `load | timer` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutoScalingType", + "type": "string" + }, + "AvailabilityZone": { + "markdownDescription": "The Availability Zone of the AWS OpsWorks instance, such as `us-east-2a`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", + "type": "string" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::OpsWorks::Instance.BlockDeviceMapping" + }, + "markdownDescription": "An array of `BlockDeviceMapping` objects that specify the instance's block devices\\. For more information, see [Block Device Mapping](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html)\\. Note that block device mappings are not supported for custom AMIs\\. \n*Required*: No \n*Type*: List of [BlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-blockdevicemapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BlockDeviceMappings", + "type": "array" + }, + "EbsOptimized": { + "markdownDescription": "Whether to create an Amazon EBS\\-optimized instance\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EbsOptimized", + "type": "boolean" + }, + "ElasticIps": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of Elastic IP addresses to associate with the instance\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticIps", + "type": "array" + }, + "Hostname": { + "markdownDescription": "The instance host name\\. The following are character limits for instance host names\\. \n+ Linux\\-based instances: 63 characters\n+ Windows\\-based instances: 15 characters\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Hostname", + "type": "string" + }, + "InstallUpdatesOnBoot": { + "markdownDescription": "Whether to install operating system and package updates when the instance boots\\. The default value is `true`\\. To control when updates are installed, set this value to `false`\\. You must then update your instances manually by using [CreateDeployment](https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CreateDeployment) to run the `update_dependencies` stack command or by manually running `yum` \\(Amazon Linux\\) or `apt-get` \\(Ubuntu\\) on the instances\\. \nWe strongly recommend using the default value of `true` to ensure that your instances have the latest security updates\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstallUpdatesOnBoot", + "type": "boolean" + }, + "InstanceType": { + "markdownDescription": "The instance type, such as `t2.micro`\\. For a list of supported instance types, open the stack in the console, choose **Instances**, and choose **\\+ Instance**\\. The **Size** list contains the currently supported types\\. For more information, see [Instance Families and Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)\\. The parameter values that you use to specify the various types are in the **API Name** column of the **Available Instance Types** table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", + "type": "string" + }, + "LayerIds": { + "items": { + "type": "string" + }, + "markdownDescription": "An array that contains the instance's layer IDs\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LayerIds", + "type": "array" + }, + "Os": { + "markdownDescription": "The instance's operating system, which must be set to one of the following\\. \n+ A supported Linux operating system: An Amazon Linux version, such as `Amazon Linux 2`, `Amazon Linux 2018.03`, `Amazon Linux 2017.09`, `Amazon Linux 2017.03`, `Amazon Linux 2016.09`, `Amazon Linux 2016.03`, `Amazon Linux 2015.09`, or `Amazon Linux 2015.03`\\.\n+ A supported Ubuntu operating system, such as `Ubuntu 18.04 LTS`, `Ubuntu 16.04 LTS`, `Ubuntu 14.04 LTS`, or `Ubuntu 12.04 LTS`\\.\n+ `CentOS Linux 7` \n+ `Red Hat Enterprise Linux 7` \n+ A supported Windows operating system, such as `Microsoft Windows Server 2012 R2 Base`, `Microsoft Windows Server 2012 R2 with SQL Server Express`, `Microsoft Windows Server 2012 R2 with SQL Server Standard`, or `Microsoft Windows Server 2012 R2 with SQL Server Web`\\.\n+ A custom AMI: `Custom`\\.\nNot all operating systems are supported with all versions of Chef\\. For more information about the supported operating systems, see [AWS OpsWorks Stacks Operating Systems](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html)\\. \nThe default option is the current Amazon Linux version\\. If you set this parameter to `Custom`, you must use the [CreateInstance](https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CreateInstance) action's AmiId parameter to specify the custom AMI that you want to use\\. Block device mappings are not supported if the value is `Custom`\\. For more information about how to use custom AMIs with AWS OpsWorks Stacks, see [Using Custom AMIs](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Os", + "type": "string" + }, + "RootDeviceType": { + "markdownDescription": "The instance root device type\\. For more information, see [Storage for the Root Device](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#storage-for-the-root-device)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ebs | instance-store` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RootDeviceType", + "type": "string" + }, + "SshKeyName": { + "markdownDescription": "The instance's Amazon EC2 key\\-pair name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SshKeyName", + "type": "string" + }, + "StackId": { + "markdownDescription": "The stack ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StackId", + "type": "string" + }, + "SubnetId": { + "markdownDescription": "The ID of the instance's subnet\\. If the stack is running in a VPC, you can use this parameter to override the stack's default subnet ID value and direct AWS OpsWorks Stacks to launch the instance in a different subnet\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetId", + "type": "string" + }, + "Tenancy": { + "markdownDescription": "The instance's tenancy option\\. The default option is no tenancy, or if the instance is running in a VPC, inherit tenancy settings from the VPC\\. The following are valid values for this parameter: `dedicated`, `default`, or `host`\\. Because there are costs associated with changes in tenancy options, we recommend that you research tenancy options before choosing them for your instances\\. For more information about dedicated hosts, see [Dedicated Hosts Overview](http://aws.amazon.com/ec2/dedicated-hosts/) and [Amazon EC2 Dedicated Hosts](http://aws.amazon.com/ec2/dedicated-hosts/)\\. For more information about dedicated instances, see [Dedicated Instances](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/dedicated-instance.html) and [Amazon EC2 Dedicated Instances](http://aws.amazon.com/ec2/purchasing-options/dedicated-instances/)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tenancy", + "type": "string" + }, + "TimeBasedAutoScaling": { + "$ref": "#/definitions/AWS::OpsWorks::Instance.TimeBasedAutoScaling", + "markdownDescription": "The time\\-based scaling configuration for the instance\\. \n*Required*: No \n*Type*: [TimeBasedAutoScaling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-timebasedautoscaling.html) \n*Allowed values*: `load | timer` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TimeBasedAutoScaling" + }, + "VirtualizationType": { + "markdownDescription": "The instance's virtualization type, `paravirtual` or `hvm`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VirtualizationType", + "type": "string" + }, + "Volumes": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of AWS OpsWorks volume IDs to associate with the instance\\. For more information, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-volume.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-volume.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Volumes", + "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": { + "markdownDescription": "The device name that is exposed to the instance, such as `/dev/sdh`\\. For the root device, you can use the explicit device name or you can set this parameter to `ROOT_DEVICE` and AWS OpsWorks Stacks will provide the correct device name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceName", + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/AWS::OpsWorks::Instance.EbsBlockDevice", + "markdownDescription": "An `EBSBlockDevice` that defines how to configure an Amazon EBS volume when the instance is launched\\. You can specify either the `VirtualName` or `Ebs`, but not both\\. \n*Required*: Conditional \n*Type*: [EbsBlockDevice](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-instance-ebsblockdevice.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ebs" + }, + "NoDevice": { + "markdownDescription": "Suppresses the specified device included in the AMI's block device mapping\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoDevice", + "type": "string" + }, + "VirtualName": { + "markdownDescription": "The virtual device name\\. For more information, see [BlockDeviceMapping](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_BlockDeviceMapping.html)\\. You can specify either the `VirtualName` or `Ebs`, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VirtualName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Instance.EbsBlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "markdownDescription": "Whether the volume is deleted on instance termination\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteOnTermination", + "type": "boolean" + }, + "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\) that the volume supports\\. For more information, see [EbsBlockDevice](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EbsBlockDevice.html)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iops", + "type": "number" + }, + "SnapshotId": { + "markdownDescription": "The snapshot ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotId", + "type": "string" + }, + "VolumeSize": { + "markdownDescription": "The volume size, in GiB\\. For more information, see [EbsBlockDevice](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EbsBlockDevice.html)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeSize", + "type": "number" + }, + "VolumeType": { + "markdownDescription": "The volume type\\. `gp2` for General Purpose \\(SSD\\) volumes, `io1` for Provisioned IOPS \\(SSD\\) volumes, `st1` for Throughput Optimized hard disk drives \\(HDD\\), `sc1` for Cold HDD,and `standard` for Magnetic volumes\\. \nIf you specify the `io1` volume type, you must also specify a value for the `Iops` attribute\\. The maximum ratio of provisioned IOPS to requested volume size \\(in GiB\\) is 50:1\\. AWS uses the default volume size \\(in GiB\\) specified in the AMI attributes to set IOPS to 50 x \\(volume size\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `gp2 | io1 | standard` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Instance.TimeBasedAutoScaling": { + "additionalProperties": false, + "properties": { + "Friday": { + "additionalProperties": true, + "markdownDescription": "The schedule for Friday\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Friday", + "type": "object" + }, + "Monday": { + "additionalProperties": true, + "markdownDescription": "The schedule for Monday\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Monday", + "type": "object" + }, + "Saturday": { + "additionalProperties": true, + "markdownDescription": "The schedule for Saturday\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Saturday", + "type": "object" + }, + "Sunday": { + "additionalProperties": true, + "markdownDescription": "The schedule for Sunday\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Sunday", + "type": "object" + }, + "Thursday": { + "additionalProperties": true, + "markdownDescription": "The schedule for Thursday\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Thursday", + "type": "object" + }, + "Tuesday": { + "additionalProperties": true, + "markdownDescription": "The schedule for Tuesday\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tuesday", + "type": "object" + }, + "Wednesday": { + "additionalProperties": true, + "markdownDescription": "The schedule for Wednesday\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Wednesday", + "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, + "markdownDescription": "One or more user\\-defined key\\-value pairs to be added to the stack attributes\\. \nTo create a cluster layer, set the `EcsClusterArn` attribute to the cluster's ARN\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Attributes", + "type": "object" + }, + "AutoAssignElasticIps": { + "markdownDescription": "Whether to automatically assign an [Elastic IP address](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) to the layer's instances\\. For more information, see [How to Edit a Layer](https://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-basics-edit.html)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoAssignElasticIps", + "type": "boolean" + }, + "AutoAssignPublicIps": { + "markdownDescription": "For stacks that are running in a VPC, whether to automatically assign a public IP address to the layer's instances\\. For more information, see [How to Edit a Layer](https://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-basics-edit.html)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoAssignPublicIps", + "type": "boolean" + }, + "CustomInstanceProfileArn": { + "markdownDescription": "The ARN of an IAM profile to be used for the layer's EC2 instances\\. For more information about IAM ARNs, see [Using Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomInstanceProfileArn", + "type": "string" + }, + "CustomJson": { + "markdownDescription": "A JSON\\-formatted string containing custom stack configuration and deployment attributes to be installed on the layer's instances\\. For more information, see [ Using Custom JSON](https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-json-override.html)\\. This feature is supported as of version 1\\.7\\.42 of the AWS CLI\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomJson", + "type": "object" + }, + "CustomRecipes": { + "$ref": "#/definitions/AWS::OpsWorks::Layer.Recipes", + "markdownDescription": "A `LayerCustomRecipes` object that specifies the layer custom recipes\\. \n*Required*: No \n*Type*: [Recipes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-recipes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomRecipes" + }, + "CustomSecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "An array containing the layer custom security group IDs\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomSecurityGroupIds", + "type": "array" + }, + "EnableAutoHealing": { + "markdownDescription": "Whether to disable auto healing for the layer\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableAutoHealing", + "type": "boolean" + }, + "InstallUpdatesOnBoot": { + "markdownDescription": "Whether to install operating system and package updates when the instance boots\\. The default value is `true`\\. To control when updates are installed, set this value to `false`\\. You must then update your instances manually by using [CreateDeployment](https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CreateDeployment) to run the `update_dependencies` stack command or by manually running `yum` \\(Amazon Linux\\) or `apt-get` \\(Ubuntu\\) on the instances\\. \nTo ensure that your instances have the latest security updates, we strongly recommend using the default value of `true`\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstallUpdatesOnBoot", + "type": "boolean" + }, + "LifecycleEventConfiguration": { + "$ref": "#/definitions/AWS::OpsWorks::Layer.LifecycleEventConfiguration", + "markdownDescription": "A `LifeCycleEventConfiguration` object that you can use to configure the Shutdown event to specify an execution timeout and enable or disable Elastic Load Balancer connection draining\\. \n*Required*: No \n*Type*: [LifecycleEventConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-lifecycleeventconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LifecycleEventConfiguration" + }, + "LoadBasedAutoScaling": { + "$ref": "#/definitions/AWS::OpsWorks::Layer.LoadBasedAutoScaling", + "markdownDescription": "The load\\-based scaling configuration for the AWS OpsWorks layer\\. \n*Required*: No \n*Type*: [LoadBasedAutoScaling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadBasedAutoScaling" + }, + "Name": { + "markdownDescription": "The layer name, which is used by the console\\. Layer names can be a maximum of 32 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Packages": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of `Package` objects that describes the layer packages\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Packages", + "type": "array" + }, + "Shortname": { + "markdownDescription": "For custom layers only, use this parameter to specify the layer's short name, which is used internally by AWS OpsWorks Stacks and by Chef recipes\\. The short name is also used as the name for the directory where your app files are installed\\. It can have a maximum of 32 characters, which are limited to the alphanumeric characters, '\\-', '\\_', and '\\.'\\. \nBuilt\\-in layer short names are defined by AWS OpsWorks Stacks\\. For more information, see the [Layer Reference](https://docs.aws.amazon.com/opsworks/latest/userguide/layers.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Shortname", + "type": "string" + }, + "StackId": { + "markdownDescription": "The layer stack ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StackId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Specifies one or more sets of tags \\(key\u2013value pairs\\) to associate with this AWS OpsWorks layer\\. Use tags to manage your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Type": { + "markdownDescription": "The layer type\\. A stack cannot have more than one built\\-in layer of the same type\\. It can have any number of custom layers\\. Built\\-in layers are not available in Chef 12 stacks\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `aws-flow-ruby | custom | db-master | ecs-cluster | java-app | lb | memcached | monitoring-master | nodejs-app | php-app | rails-app | web` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + }, + "UseEbsOptimizedInstances": { + "markdownDescription": "Whether to use Amazon EBS\\-optimized instances\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseEbsOptimizedInstances", + "type": "boolean" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/AWS::OpsWorks::Layer.VolumeConfiguration" + }, + "markdownDescription": "A `VolumeConfigurations` object that describes the layer's Amazon EBS volumes\\. \n*Required*: No \n*Type*: List of [VolumeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-volumeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VolumeConfigurations", + "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": { + "markdownDescription": "The CPU utilization threshold, as a percent of the available CPU\\. A value of \\-1 disables the threshold\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CpuThreshold", + "type": "number" + }, + "IgnoreMetricsTime": { + "markdownDescription": "The amount of time \\(in minutes\\) after a scaling event occurs that AWS OpsWorks Stacks should ignore metrics and suppress additional scaling events\\. For example, AWS OpsWorks Stacks adds new instances following an upscaling event but the instances won't start reducing the load until they have been booted and configured\\. There is no point in raising additional scaling events during that operation, which typically takes several minutes\\. `IgnoreMetricsTime` allows you to direct AWS OpsWorks Stacks to suppress scaling events long enough to get the new instances online\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IgnoreMetricsTime", + "type": "number" + }, + "InstanceCount": { + "markdownDescription": "The number of instances to add or remove when the load exceeds a threshold\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceCount", + "type": "number" + }, + "LoadThreshold": { + "markdownDescription": "The load threshold\\. A value of \\-1 disables the threshold\\. For more information about how load is computed, see [Load \\(computing\\)](http://en.wikipedia.org/wiki/Load_%28computing%29)\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoadThreshold", + "type": "number" + }, + "MemoryThreshold": { + "markdownDescription": "The memory utilization threshold, as a percent of the available memory\\. A value of \\-1 disables the threshold\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MemoryThreshold", + "type": "number" + }, + "ThresholdsWaitTime": { + "markdownDescription": "The amount of time, in minutes, that the load must exceed a threshold before more instances are added or removed\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThresholdsWaitTime", + "type": "number" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Layer.LifecycleEventConfiguration": { + "additionalProperties": false, + "properties": { + "ShutdownEventConfiguration": { + "$ref": "#/definitions/AWS::OpsWorks::Layer.ShutdownEventConfiguration", + "markdownDescription": "The Shutdown event configuration\\. \n*Required*: No \n*Type*: [ShutdownEventConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-lifecycleeventconfiguration-shutdowneventconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ShutdownEventConfiguration" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Layer.LoadBasedAutoScaling": { + "additionalProperties": false, + "properties": { + "DownScaling": { + "$ref": "#/definitions/AWS::OpsWorks::Layer.AutoScalingThresholds", + "markdownDescription": "An `AutoScalingThresholds` object that describes the downscaling configuration, which defines how and when AWS OpsWorks Stacks reduces the number of instances\\. \n*Required*: No \n*Type*: [AutoScalingThresholds](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling-autoscalingthresholds.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DownScaling" + }, + "Enable": { + "markdownDescription": "Whether load\\-based auto scaling is enabled for the layer\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enable", + "type": "boolean" + }, + "UpScaling": { + "$ref": "#/definitions/AWS::OpsWorks::Layer.AutoScalingThresholds", + "markdownDescription": "An `AutoScalingThresholds` object that describes the upscaling configuration, which defines how and when AWS OpsWorks Stacks increases the number of instances\\. \n*Required*: No \n*Type*: [AutoScalingThresholds](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-layer-loadbasedautoscaling-autoscalingthresholds.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UpScaling" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Layer.Recipes": { + "additionalProperties": false, + "properties": { + "Configure": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of custom recipe names to be run following a `configure` event\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configure", + "type": "array" + }, + "Deploy": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of custom recipe names to be run following a `deploy` event\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Deploy", + "type": "array" + }, + "Setup": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of custom recipe names to be run following a `setup` event\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Setup", + "type": "array" + }, + "Shutdown": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of custom recipe names to be run following a `shutdown` event\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Shutdown", + "type": "array" + }, + "Undeploy": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of custom recipe names to be run following a `undeploy` event\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Undeploy", + "type": "array" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Layer.ShutdownEventConfiguration": { + "additionalProperties": false, + "properties": { + "DelayUntilElbConnectionsDrained": { + "markdownDescription": "Whether to enable Elastic Load Balancing connection draining\\. For more information, see [Connection Draining](https://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/TerminologyandKeyConcepts.html#conn-drain) \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DelayUntilElbConnectionsDrained", + "type": "boolean" + }, + "ExecutionTimeout": { + "markdownDescription": "The time, in seconds, that AWS OpsWorks Stacks waits after triggering a Shutdown event before shutting down an instance\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionTimeout", + "type": "number" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Layer.VolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "markdownDescription": "Specifies whether an Amazon EBS volume is encrypted\\. For more information, see [Amazon EBS Encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encrypted", + "type": "boolean" + }, + "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\) to provision for the volume\\. For PIOPS volumes, the IOPS per disk\\. \nIf you specify `io1` for the volume type, you must specify this property\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iops", + "type": "number" + }, + "MountPoint": { + "markdownDescription": "The volume mount point\\. For example \"/dev/sdh\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MountPoint", + "type": "string" + }, + "NumberOfDisks": { + "markdownDescription": "The number of disks in the volume\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfDisks", + "type": "number" + }, + "RaidLevel": { + "markdownDescription": "The volume [RAID level](http://en.wikipedia.org/wiki/Standard_RAID_levels)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RaidLevel", + "type": "number" + }, + "Size": { + "markdownDescription": "The volume size\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Size", + "type": "number" + }, + "VolumeType": { + "markdownDescription": "The volume type\\. For more information, see [ Amazon EBS Volume Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)\\. \n+ `standard` \\- Magnetic\\. Magnetic volumes must have a minimum size of 1 GiB and a maximum size of 1024 GiB\\.\n+ `io1` \\- Provisioned IOPS \\(SSD\\)\\. PIOPS volumes must have a minimum size of 4 GiB and a maximum size of 16384 GiB\\.\n+ `gp2` \\- General Purpose \\(SSD\\)\\. General purpose volumes must have a minimum size of 1 GiB and a maximum size of 16384 GiB\\.\n+ `st1` \\- Throughput Optimized hard disk drive \\(HDD\\)\\. Throughput optimized HDD volumes must have a minimum size of 500 GiB and a maximum size of 16384 GiB\\.\n+ `sc1` \\- Cold HDD\\. Cold HDD volumes must have a minimum size of 500 GiB and a maximum size of 16384 GiB\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The default AWS OpsWorks Stacks agent version\\. You have the following options: \n+ Auto\\-update \\- Set this parameter to `LATEST`\\. AWS OpsWorks Stacks automatically installs new agent versions on the stack's instances as soon as they are available\\.\n+ Fixed version \\- Set this parameter to your preferred agent version\\. To update the agent version, you must edit the stack configuration and specify a new version\\. AWS OpsWorks Stacks installs that version on the stack's instances\\.\nThe default setting is the most recent release of the agent\\. To specify an agent version, you must use the complete version number, not the abbreviated number shown on the console\\. For a list of available agent version numbers, call [DescribeAgentVersions](https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeAgentVersions)\\. AgentVersion cannot be set to Chef 12\\.2\\. \nYou can also specify an agent version when you create or update an instance, which overrides the stack's default setting\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AgentVersion", + "type": "string" + }, + "Attributes": { + "additionalProperties": true, + "markdownDescription": "One or more user\\-defined key\\-value pairs to be added to the stack attributes\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Attributes", + "type": "object" + }, + "ChefConfiguration": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.ChefConfiguration", + "markdownDescription": "A `ChefConfiguration` object that specifies whether to enable Berkshelf and the Berkshelf version on Chef 11\\.10 stacks\\. For more information, see [Create a New Stack](https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html)\\. \n*Required*: No \n*Type*: [ChefConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-chefconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChefConfiguration" + }, + "CloneAppIds": { + "items": { + "type": "string" + }, + "markdownDescription": "If you're cloning an AWS OpsWorks stack, a list of AWS OpsWorks application stack IDs from the source stack to include in the cloned stack\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CloneAppIds", + "type": "array" + }, + "ClonePermissions": { + "markdownDescription": "If you're cloning an AWS OpsWorks stack, indicates whether to clone the source stack's permissions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClonePermissions", + "type": "boolean" + }, + "ConfigurationManager": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.StackConfigurationManager", + "markdownDescription": "The configuration manager\\. When you create a stack we recommend that you use the configuration manager to specify the Chef version: 12, 11\\.10, or 11\\.4 for Linux stacks, or 12\\.2 for Windows stacks\\. The default value for Linux stacks is currently 12\\. \n*Required*: No \n*Type*: [StackConfigurationManager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-stackconfigmanager.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfigurationManager" + }, + "CustomCookbooksSource": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.Source", + "markdownDescription": "Contains the information required to retrieve an app or cookbook from a repository\\. For more information, see [Adding Apps](https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html) or [Cookbooks and Recipes](https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook.html)\\. \n*Required*: No \n*Type*: [Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-source.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomCookbooksSource" + }, + "CustomJson": { + "markdownDescription": "A string that contains user\\-defined, custom JSON\\. It can be used to override the corresponding default stack configuration attribute values or to pass data to recipes\\. The string should be in the following format: \n `\"{\\\"key1\\\": \\\"value1\\\", \\\"key2\\\": \\\"value2\\\",...}\"` \nFor more information about custom JSON, see [Use Custom JSON to Modify the Stack Configuration Attributes](https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomJson", + "type": "object" + }, + "DefaultAvailabilityZone": { + "markdownDescription": "The stack's default Availability Zone, which must be in the specified region\\. For more information, see [Regions and Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html)\\. If you also specify a value for `DefaultSubnetId`, the subnet must be in the same zone\\. For more information, see the `VpcId` parameter description\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultAvailabilityZone", + "type": "string" + }, + "DefaultInstanceProfileArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an IAM profile that is the default profile for all of the stack's EC2 instances\\. For more information about IAM ARNs, see [Using Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultInstanceProfileArn", + "type": "string" + }, + "DefaultOs": { + "markdownDescription": "The stack's default operating system, which is installed on every instance unless you specify a different operating system when you create the instance\\. You can specify one of the following\\. \n+ A supported Linux operating system: An Amazon Linux version, such as `Amazon Linux 2`, `Amazon Linux 2018.03`, `Amazon Linux 2017.09`, `Amazon Linux 2017.03`, `Amazon Linux 2016.09`, `Amazon Linux 2016.03`, `Amazon Linux 2015.09`, or `Amazon Linux 2015.03`\\.\n+ A supported Ubuntu operating system, such as `Ubuntu 18.04 LTS`, `Ubuntu 16.04 LTS`, `Ubuntu 14.04 LTS`, or `Ubuntu 12.04 LTS`\\.\n+ `CentOS Linux 7` \n+ `Red Hat Enterprise Linux 7` \n+ A supported Windows operating system, such as `Microsoft Windows Server 2012 R2 Base`, `Microsoft Windows Server 2012 R2 with SQL Server Express`, `Microsoft Windows Server 2012 R2 with SQL Server Standard`, or `Microsoft Windows Server 2012 R2 with SQL Server Web`\\.\n+ A custom AMI: `Custom`\\. You specify the custom AMI you want to use when you create instances\\. For more information, see [ Using Custom AMIs](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html)\\.\nThe default option is the current Amazon Linux version\\. Not all operating systems are supported with all versions of Chef\\. For more information about supported operating systems, see [AWS OpsWorks Stacks Operating Systems](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultOs", + "type": "string" + }, + "DefaultRootDeviceType": { + "markdownDescription": "The default root device type\\. This value is the default for all instances in the stack, but you can override it when you create an instance\\. The default option is `instance-store`\\. For more information, see [Storage for the Root Device](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#storage-for-the-root-device)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ebs | instance-store` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultRootDeviceType", + "type": "string" + }, + "DefaultSshKeyName": { + "markdownDescription": "A default Amazon EC2 key pair name\\. The default value is none\\. If you specify a key pair name, AWS OpsWorks installs the public key on the instance and you can use the private key with an SSH client to log in to the instance\\. For more information, see [ Using SSH to Communicate with an Instance](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-ssh.html) and [ Managing SSH Access](https://docs.aws.amazon.com/opsworks/latest/userguide/security-ssh-access.html)\\. You can override this setting by specifying a different key pair, or no key pair, when you [ create an instance](https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-add.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultSshKeyName", + "type": "string" + }, + "DefaultSubnetId": { + "markdownDescription": "The stack's default subnet ID\\. All instances are launched into this subnet unless you specify another subnet ID when you create the instance\\. This parameter is required if you specify a value for the `VpcId` parameter\\. If you also specify a value for `DefaultAvailabilityZone`, the subnet must be in that zone\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultSubnetId", + "type": "string" + }, + "EcsClusterArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon Elastic Container Service \\(Amazon ECS\\) cluster to register with the AWS OpsWorks stack\\. \nIf you specify a cluster that's registered with another AWS OpsWorks stack, AWS CloudFormation deregisters the existing association before registering the cluster\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EcsClusterArn", + "type": "string" + }, + "ElasticIps": { + "items": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.ElasticIp" + }, + "markdownDescription": "A list of Elastic IP addresses to register with the AWS OpsWorks stack\\. \nIf you specify an IP address that's registered with another AWS OpsWorks stack, AWS CloudFormation deregisters the existing association before registering the IP address\\.\n*Required*: No \n*Type*: List of [ElasticIp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-elasticip.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticIps", + "type": "array" + }, + "HostnameTheme": { + "markdownDescription": "The stack's host name theme, with spaces replaced by underscores\\. The theme is used to generate host names for the stack's instances\\. By default, `HostnameTheme` is set to `Layer_Dependent`, which creates host names by appending integers to the layer's short name\\. The other themes are: \n+ `Baked_Goods` \n+ `Clouds` \n+ `Europe_Cities` \n+ `Fruits` \n+ `Greek_Deities_and_Titans` \n+ `Legendary_creatures_from_Japan` \n+ `Planets_and_Moons` \n+ `Roman_Deities` \n+ `Scottish_Islands` \n+ `US_Cities` \n+ `Wild_Cats` \nTo obtain a generated host name, call `GetHostNameSuggestion`, which returns a host name based on the current theme\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostnameTheme", + "type": "string" + }, + "Name": { + "markdownDescription": "The stack name\\. Stack names can be a maximum of 64 characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "RdsDbInstances": { + "items": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.RdsDbInstance" + }, + "markdownDescription": "The Amazon Relational Database Service \\(Amazon RDS\\) database instance to register with the AWS OpsWorks stack\\. \nIf you specify a database instance that's registered with another AWS OpsWorks stack, AWS CloudFormation deregisters the existing association before registering the database instance\\.\n*Required*: No \n*Type*: List of [RdsDbInstance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opsworks-stack-rdsdbinstance.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RdsDbInstances", + "type": "array" + }, + "ServiceRoleArn": { + "markdownDescription": "The stack's IAM role, which allows AWS OpsWorks Stacks to work with AWS resources on your behalf\\. You must set this parameter to the Amazon Resource Name \\(ARN\\) for an existing IAM role\\. For more information about IAM ARNs, see [Using Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceRoleArn", + "type": "string" + }, + "SourceStackId": { + "markdownDescription": "If you're cloning an AWS OpsWorks stack, the stack ID of the source AWS OpsWorks stack to clone\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceStackId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A map that contains tag keys and tag values that are attached to a stack or layer\\. \n+ The key cannot be empty\\.\n+ The key can be a maximum of 127 characters, and can contain only Unicode letters, numbers, or separators, or the following special characters: `+ - = . _ : /` \n+ The value can be a maximum 255 characters, and contain only Unicode letters, numbers, or separators, or the following special characters: `+ - = . _ : /` \n+ Leading and trailing white spaces are trimmed from both the key and value\\.\n+ A maximum of 40 tags is allowed for any resource\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "UseCustomCookbooks": { + "markdownDescription": "Whether the stack uses custom cookbooks\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseCustomCookbooks", + "type": "boolean" + }, + "UseOpsworksSecurityGroups": { + "markdownDescription": "Whether to associate the AWS OpsWorks Stacks built\\-in security groups with the stack's layers\\. \n AWS OpsWorks Stacks provides a standard set of built\\-in security groups, one for each layer, which are associated with layers by default\\. With `UseOpsworksSecurityGroups` you can instead provide your own custom security groups\\. `UseOpsworksSecurityGroups` has the following settings: \n+ True \\- AWS OpsWorks Stacks automatically associates the appropriate built\\-in security group with each layer \\(default setting\\)\\. You can associate additional security groups with a layer after you create it, but you cannot delete the built\\-in security group\\.\n+ False \\- AWS OpsWorks Stacks does not associate built\\-in security groups with layers\\. You must create appropriate EC2 security groups and associate a security group with each layer that you create\\. However, you can still manually associate a built\\-in security group with a layer on creation; custom security groups are required only for those layers that need custom settings\\.\nFor more information, see [Create a New Stack](https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseOpsworksSecurityGroups", + "type": "boolean" + }, + "VpcId": { + "markdownDescription": "The ID of the VPC that the stack is to be launched into\\. The VPC must be in the stack's region\\. All instances are launched into this VPC\\. You cannot change the ID later\\. \n+ If your account supports EC2\\-Classic, the default value is `no VPC`\\.\n+ If your account does not support EC2\\-Classic, the default value is the default VPC for the specified region\\.\nIf the VPC ID corresponds to a default VPC and you have specified either the `DefaultAvailabilityZone` or the `DefaultSubnetId` parameter only, AWS OpsWorks Stacks infers the value of the other parameter\\. If you specify neither parameter, AWS OpsWorks Stacks sets these parameters to the first valid Availability Zone for the specified region and the corresponding default VPC subnet ID, respectively\\. \nIf you specify a nondefault VPC ID, note the following: \n+ It must belong to a VPC in your account that is in the specified region\\.\n+ You must specify a value for `DefaultSubnetId`\\.\nFor more information about how to use AWS OpsWorks Stacks with a VPC, see [Running a Stack in a VPC](https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-vpc.html)\\. For more information about default VPC and EC2\\-Classic, see [Supported Platforms](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The Berkshelf version\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BerkshelfVersion", + "type": "string" + }, + "ManageBerkshelf": { + "markdownDescription": "Whether to enable Berkshelf\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManageBerkshelf", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Stack.ElasticIp": { + "additionalProperties": false, + "properties": { + "Ip": { + "markdownDescription": "The IP address\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ip", + "type": "string" + }, + "Name": { + "markdownDescription": "The name, which can be a maximum of 32 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "Ip" + ], + "type": "object" + }, + "AWS::OpsWorks::Stack.RdsDbInstance": { + "additionalProperties": false, + "properties": { + "DbPassword": { + "markdownDescription": "AWS OpsWorks Stacks returns `*****FILTERED*****` instead of the actual value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DbPassword", + "type": "string" + }, + "DbUser": { + "markdownDescription": "The master user name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DbUser", + "type": "string" + }, + "RdsDbInstanceArn": { + "markdownDescription": "The instance's ARN\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RdsDbInstanceArn", + "type": "string" + } + }, + "required": [ + "DbPassword", + "DbUser", + "RdsDbInstanceArn" + ], + "type": "object" + }, + "AWS::OpsWorks::Stack.Source": { + "additionalProperties": false, + "properties": { + "Password": { + "markdownDescription": "When included in a request, the parameter depends on the repository type\\. \n+ For Amazon S3 bundles, set `Password` to the appropriate IAM secret access key\\.\n+ For HTTP bundles and Subversion repositories, set `Password` to the password\\.\nFor more information on how to safely handle IAM credentials, see [https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html)\\. \nIn responses, AWS OpsWorks Stacks returns `*****FILTERED*****` instead of the actual value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", + "type": "string" + }, + "Revision": { + "markdownDescription": "The application's version\\. AWS OpsWorks Stacks enables you to easily deploy new versions of an application\\. One of the simplest approaches is to have branches or revisions in your repository that represent different versions that can potentially be deployed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Revision", + "type": "string" + }, + "SshKey": { + "markdownDescription": "The repository's SSH key\\. For more information, see [Using Git Repository SSH Keys](https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-deploykeys.html) in the *AWS OpsWorks User Guide*\\. To pass in an SSH key as a parameter, see the following example: \n `\"Parameters\" : { \"GitSSHKey\" : { \"Description\" : \"Change SSH key newlines to commas.\", \"Type\" : \"CommaDelimitedList\", \"NoEcho\" : \"true\" }, ... \"CustomCookbooksSource\": { \"Revision\" : { \"Ref\": \"GitRevision\"}, \"SshKey\" : { \"Fn::Join\" : [ \"\\n\", { \"Ref\": \"GitSSHKey\"} ] }, \"Type\": \"git\", \"Url\": { \"Ref\": \"GitURL\"} } ...` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SshKey", + "type": "string" + }, + "Type": { + "markdownDescription": "The repository type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `archive | git | s3 | svn` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "Url": { + "markdownDescription": "The source URL\\. The following is an example of an Amazon S3 source URL: `https://s3.amazonaws.com/opsworks-demo-bucket/opsworks_cookbook_demo.tar.gz`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", + "type": "string" + }, + "Username": { + "markdownDescription": "This parameter depends on the repository type\\. \n+ For Amazon S3 bundles, set `Username` to the appropriate IAM access key ID\\.\n+ For HTTP bundles, Git repositories, and Subversion repositories, set `Username` to the user name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Stack.StackConfigurationManager": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name\\. This parameter must be set to `Chef`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Version": { + "markdownDescription": "The Chef version\\. This parameter must be set to 12, 11\\.10, or 11\\.4 for Linux stacks, and to 12\\.2 for Windows stacks\\. The default value for Linux stacks is 12\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Whether users can specify their own SSH public key through the My Settings page\\. For more information, see [Managing User Permissions](https://docs.aws.amazon.com/opsworks/latest/userguide/security-settingsshkey.html)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowSelfManagement", + "type": "boolean" + }, + "IamUserArn": { + "markdownDescription": "The user's IAM ARN\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IamUserArn", + "type": "string" + }, + "SshPublicKey": { + "markdownDescription": "The user's SSH public key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SshPublicKey", + "type": "string" + }, + "SshUsername": { + "markdownDescription": "The user's SSH user name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon EC2 volume ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Ec2VolumeId", + "type": "string" + }, + "MountPoint": { + "markdownDescription": "The volume mount point\\. For example, \"/mnt/disk1\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MountPoint", + "type": "string" + }, + "Name": { + "markdownDescription": "The volume name\\. Volume names are a maximum of 128 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "StackId": { + "markdownDescription": "The stack ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Associate a public IP address with a server that you are launching\\. Valid values are `true` or `false`\\. The default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AssociatePublicIpAddress", + "type": "boolean" + }, + "BackupId": { + "markdownDescription": "If you specify this field, AWS OpsWorks CM creates the server by using the backup represented by BackupId\\. \n*Required*: No \n*Type*: String \n*Maximum*: `79` \n*Pattern*: `[a-zA-Z][a-zA-Z0-9\\-\\.\\:]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BackupId", + "type": "string" + }, + "BackupRetentionCount": { + "markdownDescription": "The number of automated backups that you want to keep\\. Whenever a new backup is created, AWS OpsWorks CM deletes the oldest backups if this number is exceeded\\. The default value is `1`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackupRetentionCount", + "type": "number" + }, + "CustomCertificate": { + "markdownDescription": "Supported on servers running Chef Automate 2\\.0 only\\. A PEM\\-formatted HTTPS certificate\\. The value can be be a single, self\\-signed certificate, or a certificate chain\\. If you specify a custom certificate, you must also specify values for `CustomDomain` and `CustomPrivateKey`\\. The following are requirements for the `CustomCertificate` value: \n+ You can provide either a self\\-signed, custom certificate, or the full certificate chain\\.\n+ The certificate must be a valid X509 certificate, or a certificate chain in PEM format\\.\n+ The certificate must be valid at the time of upload\\. A certificate can't be used before its validity period begins \\(the certificate's `NotBefore` date\\), or after it expires \\(the certificate's `NotAfter` date\\)\\.\n+ The certificate\u2019s common name or subject alternative names \\(SANs\\), if present, must match the value of `CustomDomain`\\.\n+ The certificate must match the value of `CustomPrivateKey`\\.\n*Required*: No \n*Type*: String \n*Maximum*: `2097152` \n*Pattern*: `(?s)\\s*-----BEGIN CERTIFICATE-----.+-----END CERTIFICATE-----\\s*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomCertificate", + "type": "string" + }, + "CustomDomain": { + "markdownDescription": "Supported on servers running Chef Automate 2\\.0 only\\. An optional public endpoint of a server, such as `https://aws.my-company.com`\\. To access the server, create a CNAME DNS record in your preferred DNS service that points the custom domain to the endpoint that is generated when the server is created \\(the value of the CreateServer Endpoint attribute\\)\\. You cannot access the server by using the generated `Endpoint` value if the server is using a custom domain\\. If you specify a custom domain, you must also specify values for `CustomCertificate` and `CustomPrivateKey`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `253` \n*Pattern*: `^(((?!-)[A-Za-z0-9-]{0,62}[A-Za-z0-9])\\.)+((?!-)[A-Za-z0-9-]{1,62}[A-Za-z0-9])$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomDomain", + "type": "string" + }, + "CustomPrivateKey": { + "markdownDescription": "Supported on servers running Chef Automate 2\\.0 only\\. A private key in PEM format for connecting to the server by using HTTPS\\. The private key must not be encrypted; it cannot be protected by a password or passphrase\\. If you specify a custom private key, you must also specify values for `CustomDomain` and `CustomCertificate`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Pattern*: `(?ms)\\s*^-----BEGIN (?-s:.*)PRIVATE KEY-----$.*?^-----END (?-s:.*)PRIVATE KEY-----$\\s*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomPrivateKey", + "type": "string" + }, + "DisableAutomatedBackup": { + "markdownDescription": "Enable or disable scheduled backups\\. Valid values are `true` or `false`\\. The default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableAutomatedBackup", + "type": "boolean" + }, + "Engine": { + "markdownDescription": "The configuration management engine to use\\. Valid values include `ChefAutomate` and `Puppet`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `(?s).*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Engine", + "type": "string" + }, + "EngineAttributes": { + "items": { + "$ref": "#/definitions/AWS::OpsWorksCM::Server.EngineAttribute" + }, + "markdownDescription": "Optional engine attributes on a specified server\\.", + "title": "EngineAttributes", + "type": "array" + }, + "EngineModel": { + "markdownDescription": "The engine model of the server\\. Valid values in this release include `Monolithic` for Puppet and `Single` for Chef\\. \n*Required*: No \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `(?s).*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineModel", + "type": "string" + }, + "EngineVersion": { + "markdownDescription": "The major release version of the engine that you want to use\\. For a Chef server, the valid value for EngineVersion is currently `2`\\. For a Puppet server, valid values are `2019` or `2017`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `(?s).*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineVersion", + "type": "string" + }, + "InstanceProfileArn": { + "markdownDescription": "The ARN of the instance profile that your Amazon EC2 instances use\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `arn:aws:iam::[0-9]{12}:instance-profile/.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceProfileArn", + "type": "string" + }, + "InstanceType": { + "markdownDescription": "The Amazon EC2 instance type to use\\. For example, `m5.large`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `(?s).*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", + "type": "string" + }, + "KeyPair": { + "markdownDescription": "The Amazon EC2 key pair to set for the instance\\. This parameter is optional; if desired, you may specify this parameter to connect to your instances by using SSH\\. \n*Required*: No \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyPair", + "type": "string" + }, + "PreferredBackupWindow": { + "markdownDescription": "The start time for a one\\-hour period during which AWS OpsWorks CM backs up application\\-level data on your server if automated backups are enabled\\. Valid values must be specified in one of the following formats: \n+ `HH:MM` for daily backups\n+ `DDD:HH:MM` for weekly backups\n `MM` must be specified as `00`\\. The specified time is in coordinated universal time \\(UTC\\)\\. The default value is a random, daily start time\\. \n **Example:** `08:00`, which represents a daily start time of 08:00 UTC\\. \n **Example:** `Mon:08:00`, which represents a start time of every Monday at 08:00 UTC\\. \\(8:00 a\\.m\\.\\) \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredBackupWindow", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "markdownDescription": "The start time for a one\\-hour period each week during which AWS OpsWorks CM performs maintenance on the instance\\. Valid values must be specified in the following format: `DDD:HH:MM`\\. `MM` must be specified as `00`\\. The specified time is in coordinated universal time \\(UTC\\)\\. The default value is a random one\\-hour period on Tuesday, Wednesday, or Friday\\. See `TimeWindowDefinition` for more information\\. \n **Example:** `Mon:08:00`, which represents a start time of every Monday at 08:00 UTC\\. \\(8:00 a\\.m\\.\\) \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of security group IDs to attach to the Amazon EC2 instance\\. If you add this parameter, the specified security groups must be within the VPC that is specified by `SubnetIds`\\. \n If you do not specify this parameter, AWS OpsWorks CM creates one new security group that uses TCP ports 22 and 443, open to 0\\.0\\.0\\.0/0 \\(everyone\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroupIds", + "type": "array" + }, + "ServiceRoleArn": { + "markdownDescription": "The service role that the AWS OpsWorks CM service backend uses to work with your account\\. Although the AWS OpsWorks management console typically creates the service role for you, if you are using the AWS CLI or API commands, run the service\\-role\\-creation\\.yaml AWS CloudFormation template, located at https://s3\\.amazonaws\\.com/opsworks\\-cm\\-us\\-east\\-1\\-prod\\-default\\-assets/misc/opsworks\\-cm\\-roles\\.yaml\\. This template creates a CloudFormation stack that includes the service role and instance profile that you need\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `arn:aws:iam::[0-9]{12}:role/.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceRoleArn", + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of subnets in which to launch the server EC2 instance\\. \n Amazon EC2\\-Classic customers: This field is required\\. All servers must run within a VPC\\. The VPC must have \"Auto Assign Public IP\" enabled\\. \n EC2\\-VPC customers: This field is optional\\. If you do not specify subnet IDs, your EC2 instances are created in a default subnet that is selected by Amazon EC2\\. If you specify subnet IDs, the VPC must have \"Auto Assign Public IP\" enabled\\. \nFor more information about supported Amazon EC2 platforms, see [Supported Platforms](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetIds", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A map that contains tag keys and tag values to attach to an AWS OpsWorks for Chef Automate or OpsWorks for Puppet Enterprise server\\. \n+ The key cannot be empty\\.\n+ The key can be a maximum of 127 characters, and can contain only Unicode letters, numbers, or separators, or the following special characters: `+ - = . _ : / @` \n+ The value can be a maximum 255 characters, and contain only Unicode letters, numbers, or separators, or the following special characters: `+ - = . _ : / @` \n+ Leading and trailing spaces are trimmed from both the key and value\\.\n+ A maximum of 50 user\\-applied tags is allowed for any AWS OpsWorks CM server\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The name of the engine attribute\\. \n **Attribute name for Chef Automate servers:** \n+ `CHEF_AUTOMATE_ADMIN_PASSWORD` \n **Attribute names for Puppet Enterprise servers:** \n+ `PUPPET_ADMIN_PASSWORD` \n+ `PUPPET_R10K_REMOTE` \n+ `PUPPET_R10K_PRIVATE_KEY` \n*Required*: No \n*Type*: String \n*Maximum*: `10000` \n*Pattern*: `(?s).*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of the engine attribute\\. \n **Attribute value for Chef Automate servers:** \n+ `CHEF_AUTOMATE_PIVOTAL_KEY`: A base64\\-encoded RSA public key\\. The corresponding private key is required to access the Chef API\\. You can generate this key by running the following [OpenSSL](https://www.openssl.org/) command on Linux\\-based computers\\.", + "title": "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": { + "markdownDescription": "The ID of an application instance to replace with the new instance\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9\\-\\_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationInstanceIdToReplace", + "type": "string" + }, + "DefaultRuntimeContextDevice": { + "markdownDescription": "The device's ID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9\\-\\_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DefaultRuntimeContextDevice", + "type": "string" + }, + "Description": { + "markdownDescription": "A description for the application instance\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `255` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "DeviceId": { + "markdownDescription": "A device's ID\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9\\-\\_]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceId", + "type": "string" + }, + "ManifestOverridesPayload": { + "$ref": "#/definitions/AWS::Panorama::ApplicationInstance.ManifestOverridesPayload", + "markdownDescription": "Setting overrides for the application manifest\\. \n*Required*: No \n*Type*: [ManifestOverridesPayload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-panorama-applicationinstance-manifestoverridespayload.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ManifestOverridesPayload" + }, + "ManifestPayload": { + "$ref": "#/definitions/AWS::Panorama::ApplicationInstance.ManifestPayload", + "markdownDescription": "The application's manifest document\\. \n*Required*: Yes \n*Type*: [ManifestPayload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-panorama-applicationinstance-manifestpayload.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ManifestPayload" + }, + "Name": { + "markdownDescription": "A name for the application instance\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9\\-\\_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RuntimeRoleArn": { + "markdownDescription": "The ARN of a runtime role for the application instance\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `arn:[a-z0-9][-.a-z0-9]{0,62}:iam::[0-9]{12}:role/.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RuntimeRoleArn", + "type": "string" + }, + "StatusFilter": { + "markdownDescription": "Only include instances with a specific status\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DEPLOYMENT_ERROR | DEPLOYMENT_SUCCEEDED | PROCESSING_DEPLOYMENT | PROCESSING_REMOVAL | REMOVAL_FAILED | REMOVAL_SUCCEEDED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusFilter", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Tags for the application instance\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The overrides document\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `51200` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PayloadData", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Panorama::ApplicationInstance.ManifestPayload": { + "additionalProperties": false, + "properties": { + "PayloadData": { + "markdownDescription": "The application manifest\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `51200` \n*Pattern*: `.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A name for the package\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9\\-\\_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PackageName", + "type": "string" + }, + "StorageLocation": { + "$ref": "#/definitions/AWS::Panorama::Package.StorageLocation" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Tags for the package\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "Whether to mark the new version as the latest version\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MarkLatest", + "type": "boolean" + }, + "OwnerAccount": { + "markdownDescription": "An owner account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `12` \n*Pattern*: `[0-9a-z\\_]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OwnerAccount", + "type": "string" + }, + "PackageId": { + "markdownDescription": "A package ID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9\\-\\_\\/]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PackageId", + "type": "string" + }, + "PackageVersion": { + "markdownDescription": "A package version\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `([0-9]+)\\.([0-9]+)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PackageVersion", + "type": "string" + }, + "PatchVersion": { + "markdownDescription": "A patch version\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PatchVersion", + "type": "string" + }, + "UpdatedLatestPatchVersion": { + "markdownDescription": "If the version was marked latest, the new version to maker as latest\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-z0-9]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the dataset group\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):personalize:.*:.*:.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatasetGroupArn", + "type": "string" + }, + "DatasetImportJob": { + "$ref": "#/definitions/AWS::Personalize::Dataset.DatasetImportJob", + "markdownDescription": "Describes a job that imports training data from a data source \\(Amazon S3 bucket\\) to an Amazon Personalize dataset\\. \n*Required*: No \n*Type*: [DatasetImportJob](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-personalize-dataset-datasetimportjob.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetImportJob" + }, + "DatasetType": { + "markdownDescription": "One of the following values: \n+ Interactions\n+ Items\n+ Users\n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatasetType", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the dataset\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9\\-_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "SchemaArn": { + "markdownDescription": "The ARN of the associated schema\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):personalize:.*:.*:.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "The Amazon S3 bucket that contains the training data to import\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSource" + }, + "DatasetArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the dataset that receives the imported data\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):personalize:.*:.*:.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetArn", + "type": "string" + }, + "DatasetImportJobArn": { + "markdownDescription": "The ARN of the dataset import job\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):personalize:.*:.*:.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatasetImportJobArn", + "type": "string" + }, + "JobName": { + "markdownDescription": "The name of the import job\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9\\-_]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JobName", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the IAM role that has permissions to read from the Amazon S3 data source\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):personalize:.*:.*:.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The domain of a Domain dataset group\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ECOMMERCE | VIDEO_ON_DEMAND` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Domain", + "type": "string" + }, + "KmsKeyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Key Management Service \\(KMS\\) key used to encrypt the datasets\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `arn:aws.*:kms:.*:[0-9]{12}:key/.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyArn", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the dataset group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9\\-_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the IAM role that has permissions to create the dataset group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The domain of a schema that you created for a dataset in a Domain dataset group\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ECOMMERCE | VIDEO_ON_DEMAND` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Domain", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the schema\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9\\-_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Schema": { + "markdownDescription": "The schema\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `10000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the dataset group that provides the training data\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):personalize:.*:.*:.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatasetGroupArn", + "type": "string" + }, + "EventType": { + "markdownDescription": "The event type \\(for example, 'click' or 'like'\\) that is used for training the model\\. If no `eventType` is provided, Amazon Personalize uses all interactions for training with equal weight regardless of type\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EventType", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the solution\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9][a-zA-Z0-9\\-_]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "PerformAutoML": { + "markdownDescription": "When true, Amazon Personalize performs a search for the best USER\\_PERSONALIZATION recipe from the list specified in the solution configuration \\(`recipeArn` must not be specified\\)\\. When false \\(the default\\), Amazon Personalize uses `recipeArn` for training\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PerformAutoML", + "type": "boolean" + }, + "PerformHPO": { + "markdownDescription": "Whether to perform hyperparameter optimization \\(HPO\\) on the chosen recipe\\. The default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PerformHPO", + "type": "boolean" + }, + "RecipeArn": { + "markdownDescription": "The ARN of the recipe used to create the solution\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `arn:([a-z\\d-]+):personalize:.*:.*:.+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RecipeArn", + "type": "string" + }, + "SolutionConfig": { + "$ref": "#/definitions/AWS::Personalize::Solution.SolutionConfig", + "markdownDescription": "Describes the configuration properties for the solution\\. \n*Required*: No \n*Type*: [SolutionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-personalize-solution-solutionconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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, + "markdownDescription": "Lists the hyperparameter names and ranges\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "AlgorithmHyperParameters", + "type": "object" + }, + "AutoMLConfig": { + "$ref": "#/definitions/AWS::Personalize::Solution.AutoMLConfig", + "markdownDescription": "The [AutoMLConfig](https://docs.aws.amazon.com/personalize/latest/dg/API_AutoMLConfig.html) object containing a list of recipes to search when AutoML is performed\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutoMLConfig" + }, + "EventValueThreshold": { + "markdownDescription": "Only events with a value greater than or equal to this threshold are used for training a model\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EventValueThreshold", + "type": "string" + }, + "FeatureTransformationParameters": { + "additionalProperties": true, + "markdownDescription": "Lists the feature transformation parameters\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "FeatureTransformationParameters", + "type": "object" + }, + "HpoConfig": { + "$ref": "#/definitions/AWS::Personalize::Solution.HpoConfig", + "markdownDescription": "Describes the properties for hyperparameter optimization \\(HPO\\)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that the ADM channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", + "type": "string" + }, + "ClientId": { + "markdownDescription": "The Client ID that you received from Amazon to send messages by using ADM\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientId", + "type": "string" + }, + "ClientSecret": { + "markdownDescription": "The Client Secret that you received from Amazon to send messages by using ADM\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientSecret", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Specifies whether to enable the ADM channel for the application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "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": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that the APNs channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", + "type": "string" + }, + "BundleId": { + "markdownDescription": "The bundle identifier that's assigned to your iOS app\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BundleId", + "type": "string" + }, + "Certificate": { + "markdownDescription": "The APNs client certificate that you received from Apple\\. Specify this value if you want Amazon Pinpoint to communicate with APNs by using an APNs certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate", + "type": "string" + }, + "DefaultAuthenticationMethod": { + "markdownDescription": "The default authentication method that you want Amazon Pinpoint to use when authenticating with APNs\\. Valid options are `key` or `certificate`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultAuthenticationMethod", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Specifies whether to enable the APNs channel for the application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "PrivateKey": { + "markdownDescription": "The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with APNs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateKey", + "type": "string" + }, + "TeamId": { + "markdownDescription": "The identifier that's assigned to your Apple Developer Account team\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TeamId", + "type": "string" + }, + "TokenKey": { + "markdownDescription": "The authentication key to use for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenKey", + "type": "string" + }, + "TokenKeyId": { + "markdownDescription": "The key identifier that's assigned to your APNs signing key\\. Specify this value if you want Amazon Pinpoint to communicate with APNs by using APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that the APNs sandbox channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", + "type": "string" + }, + "BundleId": { + "markdownDescription": "The bundle identifier that's assigned to your iOS app\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BundleId", + "type": "string" + }, + "Certificate": { + "markdownDescription": "The APNs client certificate that you received from Apple\\. Specify this value if you want Amazon Pinpoint to communicate with APNs by using an APNs certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate", + "type": "string" + }, + "DefaultAuthenticationMethod": { + "markdownDescription": "The default authentication method that you want Amazon Pinpoint to use when authenticating with APNs\\. Valid options are `key` or `certificate`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultAuthenticationMethod", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Specifies whether to enable the APNs Sandbox channel for the Amazon Pinpoint application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "PrivateKey": { + "markdownDescription": "The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with APNs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateKey", + "type": "string" + }, + "TeamId": { + "markdownDescription": "The identifier that's assigned to your Apple Developer Account team\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TeamId", + "type": "string" + }, + "TokenKey": { + "markdownDescription": "The authentication key to use for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenKey", + "type": "string" + }, + "TokenKeyId": { + "markdownDescription": "The key identifier that's assigned to your APNs signing key\\. Specify this value if you want Amazon Pinpoint to communicate with APNs by using APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that the APNs VoIP channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", + "type": "string" + }, + "BundleId": { + "markdownDescription": "The bundle identifier that's assigned to your iOS app\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BundleId", + "type": "string" + }, + "Certificate": { + "markdownDescription": "The APNs client certificate that you received from Apple\\. Specify this value if you want Amazon Pinpoint to communicate with APNs by using an APNs certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate", + "type": "string" + }, + "DefaultAuthenticationMethod": { + "markdownDescription": "The default authentication method that you want Amazon Pinpoint to use when authenticating with APNs\\. Valid options are `key` or `certificate`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultAuthenticationMethod", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Specifies whether to enable the APNs VoIP channel for the Amazon Pinpoint application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "PrivateKey": { + "markdownDescription": "The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with APNs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateKey", + "type": "string" + }, + "TeamId": { + "markdownDescription": "The identifier that's assigned to your Apple Developer Account team\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TeamId", + "type": "string" + }, + "TokenKey": { + "markdownDescription": "The authentication key to use for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenKey", + "type": "string" + }, + "TokenKeyId": { + "markdownDescription": "The key identifier that's assigned to your APNs signing key\\. Specify this value if you want Amazon Pinpoint to communicate with APNs by using APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The unique identifier for the application that the APNs VoIP sandbox channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", + "type": "string" + }, + "BundleId": { + "markdownDescription": "The bundle identifier that's assigned to your iOS app\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BundleId", + "type": "string" + }, + "Certificate": { + "markdownDescription": "The APNs client certificate that you received from Apple\\. Specify this value if you want Amazon Pinpoint to communicate with the APNs sandbox environment by using an APNs certificate\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate", + "type": "string" + }, + "DefaultAuthenticationMethod": { + "markdownDescription": "The default authentication method that you want Amazon Pinpoint to use when authenticating with APNs\\. Valid options are `key` or `certificate`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultAuthenticationMethod", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Specifies whether the APNs VoIP sandbox channel is enabled for the application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "PrivateKey": { + "markdownDescription": "The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with the APNs sandbox environment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrivateKey", + "type": "string" + }, + "TeamId": { + "markdownDescription": "The identifier that's assigned to your Apple developer account team\\. This identifier is used for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TeamId", + "type": "string" + }, + "TokenKey": { + "markdownDescription": "The authentication key to use for APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TokenKey", + "type": "string" + }, + "TokenKeyId": { + "markdownDescription": "The key identifier that's assigned to your APNs signing key\\. Specify this value if you want Amazon Pinpoint to communicate with the APNs sandbox environment by using APNs tokens\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The display name of the application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", + "type": "string" + }, + "CampaignHook": { + "$ref": "#/definitions/AWS::Pinpoint::ApplicationSettings.CampaignHook", + "markdownDescription": "The settings for the Lambda function to use by default as a code hook for campaigns in the application\\. To override these settings for a specific campaign, use the Campaign resource to define custom Lambda function settings for the campaign\\. \n*Required*: No \n*Type*: [CampaignHook](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-applicationsettings-campaignhook.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CampaignHook" + }, + "CloudWatchMetricsEnabled": { + "markdownDescription": "Specifies whether to enable application\\-related alarms in Amazon CloudWatch\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchMetricsEnabled", + "type": "boolean" + }, + "Limits": { + "$ref": "#/definitions/AWS::Pinpoint::ApplicationSettings.Limits", + "markdownDescription": "The default sending limits for campaigns in the application\\. To override these limits for a specific campaign, use the Campaign resource to define custom limits for the campaign\\. \n*Required*: No \n*Type*: [Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-applicationsettings-limits.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Limits" + }, + "QuietTime": { + "$ref": "#/definitions/AWS::Pinpoint::ApplicationSettings.QuietTime", + "markdownDescription": "The default quiet time for campaigns in the application\\. Quiet time is a specific time range when campaigns don't send messages to endpoints, if all the following conditions are met: \n\\- The `EndpointDemographic.Timezone` property of the endpoint is set to a valid value\\. \n\\- The current time in the endpoint's time zone is later than or equal to the time specified by the `QuietTime.Start` property for the application \\(or a campaign that has custom quiet time settings\\)\\. \n\\- The current time in the endpoint's time zone is earlier than or equal to the time specified by the `QuietTime.End` property for the application \\(or a campaign that has custom quiet time settings\\)\\. \nIf any of the preceding conditions isn't met, the endpoint will receive messages from a campaign, even if quiet time is enabled\\. \nTo override the default quiet time settings for a specific campaign, use the Campaign resource to define a custom quiet time for the campaign\\. \n*Required*: No \n*Type*: [QuietTime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-applicationsettings-quiettime.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name or Amazon Resource Name \\(ARN\\) of the Lambda function that Amazon Pinpoint invokes to send messages for campaigns in the application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaFunctionName", + "type": "string" + }, + "Mode": { + "markdownDescription": "The mode that Amazon Pinpoint uses to invoke the Lambda function\\. Possible values are: \n+ `FILTER` \\- Invoke the function to customize the segment that's used by a campaign\\.\n+ `DELIVERY` \\- \\(Deprecated\\) Previously, invoked the function to send a campaign through a custom channel\\. This functionality is not supported anymore\\. To send a campaign through a custom channel, use the `CustomDeliveryConfiguration` and `CampaignCustomMessage` objects of the campaign\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", + "type": "string" + }, + "WebUrl": { + "markdownDescription": "The web URL that Amazon Pinpoint calls to invoke the Lambda function over HTTPS\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WebUrl", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::ApplicationSettings.Limits": { + "additionalProperties": false, + "properties": { + "Daily": { + "markdownDescription": "The maximum number of messages that a campaign can send to a single endpoint during a 24\\-hour period\\. The maximum value is 100\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Daily", + "type": "number" + }, + "MaximumDuration": { + "markdownDescription": "The maximum amount of time, in seconds, that a campaign can attempt to deliver a message after the scheduled start time for the campaign\\. The minimum value is 60 seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumDuration", + "type": "number" + }, + "MessagesPerSecond": { + "markdownDescription": "The maximum number of messages that a campaign can send each second\\. The minimum value is 50\\. The maximum value is 20,000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessagesPerSecond", + "type": "number" + }, + "Total": { + "markdownDescription": "The maximum number of messages that a campaign can send to a single endpoint during the course of the campaign\\. The maximum value is 100\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Total", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Pinpoint::ApplicationSettings.QuietTime": { + "additionalProperties": false, + "properties": { + "End": { + "markdownDescription": "The specific time when quiet time ends\\. This value has to use 24\\-hour notation and be in HH:MM format, where HH is the hour \\(with a leading zero, if applicable\\) and MM is the minutes\\. For example, use `02:30` to represent 2:30 AM, or `14:30` to represent 2:30 PM\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "End", + "type": "string" + }, + "Start": { + "markdownDescription": "The specific time when quiet time begins\\. This value has to use 24\\-hour notation and be in HH:MM format, where HH is the hour \\(with a leading zero, if applicable\\) and MM is the minutes\\. For example, use `02:30` to represent 2:30 AM, or `14:30` to represent 2:30 PM\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The API key that you received from the Baidu Cloud Push service to communicate with the service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKey", + "type": "string" + }, + "ApplicationId": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that you're configuring the Baidu channel for\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Specifies whether to enable the Baidu channel for the application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "SecretKey": { + "markdownDescription": "The secret key that you received from the Baidu Cloud Push service to communicate with the service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "An array of requests that defines additional treatments for the campaign, in addition to the default treatment for the campaign\\. \n*Required*: No \n*Type*: List of [WriteTreatmentResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-writetreatmentresource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdditionalTreatments", + "type": "array" + }, + "ApplicationId": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that the campaign is associated with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", + "type": "string" + }, + "CampaignHook": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignHook", + "markdownDescription": "Specifies the Lambda function to use as a code hook for a campaign\\. \n*Required*: No \n*Type*: [CampaignHook](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaignhook.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CampaignHook" + }, + "CustomDeliveryConfiguration": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CustomDeliveryConfiguration" + }, + "Description": { + "markdownDescription": "A custom description of the campaign\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "HoldoutPercent": { + "markdownDescription": "The allocated percentage of users \\(segment members\\) who shouldn't receive messages from the campaign\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HoldoutPercent", + "type": "number" + }, + "IsPaused": { + "markdownDescription": "Specifies whether to pause the campaign\\. A paused campaign doesn't run unless you resume it by changing this value to `false`\\. If you restart a campaign, the campaign restarts from the beginning and not at the point you paused it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsPaused", + "type": "boolean" + }, + "Limits": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Limits", + "markdownDescription": "The messaging limits for the campaign\\. \n*Required*: No \n*Type*: [Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-limits.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Limits" + }, + "MessageConfiguration": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.MessageConfiguration", + "markdownDescription": "The message configuration settings for the campaign\\. \n*Required*: Yes \n*Type*: [MessageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-messageconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageConfiguration" + }, + "Name": { + "markdownDescription": "The name of the campaign\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Priority": { + "markdownDescription": "An integer between 1 and 5, inclusive, that represents the priority of the in\\-app message campaign, where 1 is the highest priority and 5 is the lowest\\. If there are multiple messages scheduled to be displayed at the same time, the priority determines the order in which those messages are displayed\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", + "type": "number" + }, + "Schedule": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Schedule", + "markdownDescription": "The schedule settings for the campaign\\. \n*Required*: Yes \n*Type*: [Schedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-schedule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule" + }, + "SegmentId": { + "markdownDescription": "The unique identifier for the segment to associate with the campaign\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentId", + "type": "string" + }, + "SegmentVersion": { + "markdownDescription": "The version of the segment to associate with the campaign\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentVersion", + "type": "number" + }, + "Tags": { + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "object" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.TemplateConfiguration" + }, + "TreatmentDescription": { + "markdownDescription": "A custom description of the default treatment for the campaign\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TreatmentDescription", + "type": "string" + }, + "TreatmentName": { + "markdownDescription": "A custom name of the default treatment for the campaign, if the campaign has multiple treatments\\. A *treatment* is a variation of a campaign that's used for A/B testing\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The type of segment dimension to use\\. Valid values are: \n+ `INCLUSIVE` \u2013 endpoints that have attributes matching the values are included in the segment\\.\n+ `EXCLUSIVE` \u2013 endpoints that have attributes matching the values are excluded from the segment\\.\n+ `CONTAINS` \u2013 endpoints that have attributes' substrings match the values are included in the segment\\.\n+ `BEFORE` \u2013 endpoints with attributes read as ISO\\_INSTANT datetimes before the value are included in the segment\\.\n+ `AFTER` \u2013 endpoints with attributes read as ISO\\_INSTANT datetimes after the value are included in the segment\\.\n+ `BETWEEN` \u2013 endpoints with attributes read as ISO\\_INSTANT datetimes between the values are included in the segment\\.\n+ `ON` \u2013 endpoints with attributes read as ISO\\_INSTANT dates on the value are included in the segment\\. Time is ignored in this comparison\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeType", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "The criteria values to use for the segment dimension\\. Depending on the value of the `AttributeType` property, endpoints are included or excluded from the segment if their attribute values match the criteria values\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.CampaignCustomMessage": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.CampaignEmailMessage": { + "additionalProperties": false, + "properties": { + "Body": { + "markdownDescription": "The body of the email for recipients whose email clients don't render HTML content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body", + "type": "string" + }, + "FromAddress": { + "markdownDescription": "The verified email address to send the email from\\. The default address is the `FromAddress` specified for the email channel for the application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FromAddress", + "type": "string" + }, + "HtmlBody": { + "markdownDescription": "The body of the email, in HTML format, for recipients whose email clients render HTML content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HtmlBody", + "type": "string" + }, + "Title": { + "markdownDescription": "The subject line, or title, of the email\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Title", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.CampaignEventFilter": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.EventDimensions", + "markdownDescription": "The dimension settings of the event filter for the campaign\\. \n*Required*: No \n*Type*: [EventDimensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-eventdimensions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions" + }, + "FilterType": { + "markdownDescription": "The type of event that causes the campaign to be sent\\. Valid values are: `SYSTEM`, sends the campaign when a system event occurs; and, `ENDPOINT`, sends the campaign when an endpoint event \\(Events resource\\) occurs\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterType", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.CampaignHook": { + "additionalProperties": false, + "properties": { + "LambdaFunctionName": { + "markdownDescription": "The name or Amazon Resource Name \\(ARN\\) of the Lambda function that Amazon Pinpoint invokes to customize a segment for a campaign\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaFunctionName", + "type": "string" + }, + "Mode": { + "markdownDescription": "The mode that Amazon Pinpoint uses to invoke the Lambda function\\. Possible values are: \n+ `FILTER` \\- Invoke the function to customize the segment that's used by a campaign\\.\n+ `DELIVERY` \\- \\(Deprecated\\) Previously, invoked the function to send a campaign through a custom channel\\. This functionality is not supported anymore\\. To send a campaign through a custom channel, use the `CustomDeliveryConfiguration` and `CampaignCustomMessage` objects of the campaign\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", + "type": "string" + }, + "WebUrl": { + "markdownDescription": "The web URL that Amazon Pinpoint calls to invoke the Lambda function over HTTPS\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WebUrl", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.CampaignInAppMessage": { + "additionalProperties": false, + "properties": { + "Content": { + "items": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageContent" + }, + "markdownDescription": "An array that contains configurtion information about the in\\-app message for the campaign, including title and body text, text colors, background colors, image URLs, and button configurations\\. \n*Required*: No \n*Type*: List of [InAppMessageContent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagecontent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Content", + "type": "array" + }, + "CustomConfig": { + "markdownDescription": "Custom data, in the form of key\\-value pairs, that is included in an in\\-app messaging payload\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomConfig", + "type": "object" + }, + "Layout": { + "markdownDescription": "A string that describes how the in\\-app message will appear\\. You can specify one of the following: \n+ `BOTTOM_BANNER` \u2013 a message that appears as a banner at the bottom of the page\\.\n+ `TOP_BANNER` \u2013 a message that appears as a banner at the top of the page\\.\n+ `OVERLAYS` \u2013 a message that covers entire screen\\.\n+ `MOBILE_FEED` \u2013 a message that appears in a window in front of the page\\.\n+ `MIDDLE_BANNER` \u2013 a message that appears as a banner in the middle of the page\\.\n+ `CAROUSEL` \u2013 a scrollable layout of up to five unique messages\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Layout", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.CampaignSmsMessage": { + "additionalProperties": false, + "properties": { + "Body": { + "markdownDescription": "The body of the SMS message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body", + "type": "string" + }, + "EntityId": { + "markdownDescription": "The entity ID or Principal Entity \\(PE\\) id received from the regulatory body for sending SMS in your country\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EntityId", + "type": "string" + }, + "MessageType": { + "markdownDescription": "The SMS message type\\. Valid values are `TRANSACTIONAL` \\(for messages that are critical or time\\-sensitive, such as a one\\-time passwords\\) and `PROMOTIONAL` \\(for messsages that aren't critical or time\\-sensitive, such as marketing messages\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageType", + "type": "string" + }, + "OriginationNumber": { + "markdownDescription": "The long code to send the SMS message from\\. This value should be one of the dedicated long codes that's assigned to your AWS account\\. Although it isn't required, we recommend that you specify the long code using an E\\.164 format to ensure prompt and accurate delivery of the message\\. For example, \\+12065550100\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OriginationNumber", + "type": "string" + }, + "SenderId": { + "markdownDescription": "The alphabetic Sender ID to display as the sender of the message on a recipient's device\\. Support for sender IDs varies by country or region\\. To specify a phone number as the sender, omit this parameter and use `OriginationNumber` instead\\. For more information about support for Sender ID by country, see the [Amazon Pinpoint User Guide](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-countries.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SenderId", + "type": "string" + }, + "TemplateId": { + "markdownDescription": "The template ID received from the regulatory body for sending SMS in your country\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The background color of a button, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackgroundColor", + "type": "string" + }, + "BorderRadius": { + "markdownDescription": "The border radius of a button\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BorderRadius", + "type": "number" + }, + "ButtonAction": { + "markdownDescription": "The action that occurs when a recipient chooses a button in an in\\-app message\\. You can specify one of the following: \n+ `LINK` \u2013 A link to a web destination\\.\n+ `DEEP_LINK` \u2013 A link to a specific page in an application\\.\n+ `CLOSE` \u2013 Dismisses the message\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ButtonAction", + "type": "string" + }, + "Link": { + "markdownDescription": "The destination \\(such as a URL\\) for a button\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Link", + "type": "string" + }, + "Text": { + "markdownDescription": "The text that appears on a button in an in\\-app message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Text", + "type": "string" + }, + "TextColor": { + "markdownDescription": "The color of the body text in a button, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextColor", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.EventDimensions": { + "additionalProperties": false, + "properties": { + "Attributes": { + "markdownDescription": "One or more custom attributes that your application reports to Amazon Pinpoint\\. You can use these attributes as selection criteria when you create an event filter\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attributes", + "type": "object" + }, + "EventType": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.SetDimension", + "markdownDescription": "The name of the event that causes the campaign to be sent or the journey activity to be performed\\. This can be a standard event that Amazon Pinpoint generates, such as `_email.delivered`\\. For campaigns, this can also be a custom event that's specific to your application\\. For information about standard events, see [Streaming Amazon Pinpoint Events](https://docs.aws.amazon.com/pinpoint/latest/developerguide/event-streams.html) in the *Amazon Pinpoint Developer Guide*\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventType" + }, + "Metrics": { + "markdownDescription": "One or more custom metrics that your application reports to Amazon Pinpoint\\. You can use these metrics as selection criteria when you create an event filter\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metrics", + "type": "object" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.InAppMessageBodyConfig": { + "additionalProperties": false, + "properties": { + "Alignment": { + "markdownDescription": "The text alignment of the main body text of the message\\. Acceptable values: `LEFT`, `CENTER`, `RIGHT`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alignment", + "type": "string" + }, + "Body": { + "markdownDescription": "The main body text of the message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body", + "type": "string" + }, + "TextColor": { + "markdownDescription": "The color of the body text, expressed as a string consisting of a hex color code \\(such as \"\\#000000\" for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextColor", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.InAppMessageButton": { + "additionalProperties": false, + "properties": { + "Android": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration", + "markdownDescription": "An object that defines the default behavior for a button in in\\-app messages sent to Android\\. \n*Required*: No \n*Type*: [OverrideButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-overridebuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Android" + }, + "DefaultConfig": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.DefaultButtonConfiguration", + "markdownDescription": "An object that defines the default behavior for a button in an in\\-app message\\. \n*Required*: No \n*Type*: [DefaultButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-defaultbuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultConfig" + }, + "IOS": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration", + "markdownDescription": "An object that defines the default behavior for a button in in\\-app messages sent to iOS devices\\. \n*Required*: No \n*Type*: [OverrideButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-overridebuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IOS" + }, + "Web": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration", + "markdownDescription": "An object that defines the default behavior for a button in in\\-app messages for web applications\\. \n*Required*: No \n*Type*: [OverrideButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-overridebuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Web" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.InAppMessageContent": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "markdownDescription": "The background color for an in\\-app message banner, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackgroundColor", + "type": "string" + }, + "BodyConfig": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageBodyConfig", + "markdownDescription": "Specifies the configuration of main body text in an in\\-app message template\\. \n*Required*: No \n*Type*: [InAppMessageBodyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagebodyconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BodyConfig" + }, + "HeaderConfig": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageHeaderConfig", + "markdownDescription": "Specifies the configuration and content of the header or title text of the in\\-app message\\. \n*Required*: No \n*Type*: [InAppMessageHeaderConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessageheaderconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderConfig" + }, + "ImageUrl": { + "markdownDescription": "The URL of the image that appears on an in\\-app message banner\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageUrl", + "type": "string" + }, + "PrimaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageButton", + "markdownDescription": "An object that contains configuration information about the primary button in an in\\-app message\\. \n*Required*: No \n*Type*: [InAppMessageButton](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagebutton.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrimaryBtn" + }, + "SecondaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageButton", + "markdownDescription": "An object that contains configuration information about the secondary button in an in\\-app message\\. \n*Required*: No \n*Type*: [InAppMessageButton](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-inappmessagebutton.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryBtn" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.InAppMessageHeaderConfig": { + "additionalProperties": false, + "properties": { + "Alignment": { + "markdownDescription": "The text alignment of the title of the message\\. Acceptable values: `LEFT`, `CENTER`, `RIGHT`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alignment", + "type": "string" + }, + "Header": { + "markdownDescription": "The header or title text of the in\\-app message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Header", + "type": "string" + }, + "TextColor": { + "markdownDescription": "The color of the body text, expressed as a string consisting of a hex color code \\(such as \"\\#000000\" for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextColor", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.Limits": { + "additionalProperties": false, + "properties": { + "Daily": { + "markdownDescription": "The maximum number of messages that a campaign can send to a single endpoint during a 24\\-hour period\\. The maximum value is 100\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Daily", + "type": "number" + }, + "MaximumDuration": { + "markdownDescription": "The maximum amount of time, in seconds, that a campaign can attempt to deliver a message after the scheduled start time for the campaign\\. The minimum value is 60 seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumDuration", + "type": "number" + }, + "MessagesPerSecond": { + "markdownDescription": "The maximum number of messages that a campaign can send each second\\. The minimum value is 50\\. The maximum value is 20,000\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessagesPerSecond", + "type": "number" + }, + "Session": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Session", + "type": "number" + }, + "Total": { + "markdownDescription": "The maximum number of messages that a campaign can send to a single endpoint during the course of the campaign\\. The maximum value is 100\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Total", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.Message": { + "additionalProperties": false, + "properties": { + "Action": { + "markdownDescription": "The action to occur if a recipient taps the push notification\\. Valid values are: \n+ `OPEN_APP` \u2013 Your app opens or it becomes the foreground app if it was sent to the background\\. This is the default action\\.\n+ `DEEP_LINK` \u2013 Your app opens and displays a designated user interface in the app\\. This setting uses the deep\\-linking features of iOS and Android\\.\n+ `URL` \u2013 The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", + "type": "string" + }, + "Body": { + "markdownDescription": "The body of the notification message\\. The maximum number of characters is 200\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body", + "type": "string" + }, + "ImageIconUrl": { + "markdownDescription": "The URL of the image to display as the push notification icon, such as the icon for the app\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageIconUrl", + "type": "string" + }, + "ImageSmallIconUrl": { + "markdownDescription": "The URL of the image to display as the small, push notification icon, such as a small version of the icon for the app\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageSmallIconUrl", + "type": "string" + }, + "ImageUrl": { + "markdownDescription": "The URL of an image to display in the push notification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageUrl", + "type": "string" + }, + "JsonBody": { + "markdownDescription": "The JSON payload to use for a silent push notification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JsonBody", + "type": "string" + }, + "MediaUrl": { + "markdownDescription": "The URL of the image or video to display in the push notification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MediaUrl", + "type": "string" + }, + "RawContent": { + "markdownDescription": "The raw, JSON\\-formatted string to use as the payload for the notification message\\. If specified, this value overrides all other content for the message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RawContent", + "type": "string" + }, + "SilentPush": { + "markdownDescription": "Specifies whether the notification is a silent push notification, which is a push notification that doesn't display on a recipient's device\\. Silent push notifications can be used for cases such as updating an app's configuration, displaying messages in an in\\-app message center, or supporting phone home functionality\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SilentPush", + "type": "boolean" + }, + "TimeToLive": { + "markdownDescription": "The number of seconds that the push notification service should keep the message, if the service is unable to deliver the notification the first time\\. This value is converted to an expiration value when it's sent to a push notification service\\. If this value is `0`, the service treats the notification as if it expires immediately and the service doesn't store or try to deliver the notification again\\. \nThis value doesn't apply to messages that are sent through the Amazon Device Messaging \\(ADM\\) service\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeToLive", + "type": "number" + }, + "Title": { + "markdownDescription": "The title to display above the notification message on a recipient's device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Title", + "type": "string" + }, + "Url": { + "markdownDescription": "The URL to open in a recipient's default mobile browser, if a recipient taps the push notification and the value of the `Action` property is `URL`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.MessageConfiguration": { + "additionalProperties": false, + "properties": { + "ADMMessage": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message", + "markdownDescription": "The message that the campaign sends through the ADM \\(Amazon Device Messaging\\) channel\\. If specified, this message overrides the default message\\. \n*Required*: No \n*Type*: [Message](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ADMMessage" + }, + "APNSMessage": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message", + "markdownDescription": "The message that the campaign sends through the APNs \\(Apple Push Notification service\\) channel\\. If specified, this message overrides the default message\\. \n*Required*: No \n*Type*: [Message](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "APNSMessage" + }, + "BaiduMessage": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message", + "markdownDescription": "The message that the campaign sends through the Baidu \\(Baidu Cloud Push\\) channel\\. If specified, this message overrides the default message\\. \n*Required*: No \n*Type*: [Message](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaiduMessage" + }, + "CustomMessage": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignCustomMessage" + }, + "DefaultMessage": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message", + "markdownDescription": "The default message that the campaign sends through all the channels that are configured for the campaign\\. \n*Required*: No \n*Type*: [Message](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultMessage" + }, + "EmailMessage": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignEmailMessage", + "markdownDescription": "The message that the campaign sends through the email channel\\. If specified, this message overrides the default message\\. \n*Required*: No \n*Type*: [CampaignEmailMessage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaignemailmessage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmailMessage" + }, + "GCMMessage": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message", + "markdownDescription": "The message that the campaign sends through the GCM channel, which enables Amazon Pinpoint to send push notifications through the Firebase Cloud Messaging \\(FCM\\), formerly Google Cloud Messaging \\(GCM\\), service\\. If specified, this message overrides the default message\\. \n*Required*: No \n*Type*: [Message](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GCMMessage" + }, + "InAppMessage": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignInAppMessage", + "markdownDescription": "The default message for the in\\-app messaging channel\\. This message overrides the default message \\(`DefaultMessage`\\)\\. \n*Required*: No \n*Type*: [CampaignInAppMessage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaigninappmessage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InAppMessage" + }, + "SMSMessage": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignSmsMessage", + "markdownDescription": "The message that the campaign sends through the SMS channel\\. If specified, this message overrides the default message\\. \n*Required*: No \n*Type*: [CampaignSmsMessage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaignsmsmessage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SMSMessage" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.MetricDimension": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "markdownDescription": "The operator to use when comparing metric values\\. Valid values are: `GREATER_THAN`, `LESS_THAN`, `GREATER_THAN_OR_EQUAL`, `LESS_THAN_OR_EQUAL`, and `EQUAL`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComparisonOperator", + "type": "string" + }, + "Value": { + "markdownDescription": "The value to compare\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.OverrideButtonConfiguration": { + "additionalProperties": false, + "properties": { + "ButtonAction": { + "markdownDescription": "The action that occurs when a recipient chooses a button in an in\\-app message\\. You can specify one of the following: \n+ `LINK` \u2013 A link to a web destination\\.\n+ `DEEP_LINK` \u2013 A link to a specific page in an application\\.\n+ `CLOSE` \u2013 Dismisses the message\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ButtonAction", + "type": "string" + }, + "Link": { + "markdownDescription": "The destination \\(such as a URL\\) for a button\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Link", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.QuietTime": { + "additionalProperties": false, + "properties": { + "End": { + "markdownDescription": "The specific time when quiet time ends\\. This value has to use 24\\-hour notation and be in HH:MM format, where HH is the hour \\(with a leading zero, if applicable\\) and MM is the minutes\\. For example, use `02:30` to represent 2:30 AM, or `14:30` to represent 2:30 PM\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "End", + "type": "string" + }, + "Start": { + "markdownDescription": "The specific time when quiet time begins\\. This value has to use 24\\-hour notation and be in HH:MM format, where HH is the hour \\(with a leading zero, if applicable\\) and MM is the minutes\\. For example, use `02:30` to represent 2:30 AM, or `14:30` to represent 2:30 PM\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Start", + "type": "string" + } + }, + "required": [ + "End", + "Start" + ], + "type": "object" + }, + "AWS::Pinpoint::Campaign.Schedule": { + "additionalProperties": false, + "properties": { + "EndTime": { + "markdownDescription": "The scheduled time, in ISO 8601 format, when the campaign ended or will end\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndTime", + "type": "string" + }, + "EventFilter": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignEventFilter", + "markdownDescription": "The type of event that causes the campaign to be sent, if the value of the `Frequency` property is `EVENT`\\. \n*Required*: No \n*Type*: [CampaignEventFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-campaigneventfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventFilter" + }, + "Frequency": { + "markdownDescription": "Specifies how often the campaign is sent or whether the campaign is sent in response to a specific event\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Frequency", + "type": "string" + }, + "IsLocalTime": { + "markdownDescription": "Specifies whether the start and end times for the campaign schedule use each recipient's local time\\. To base the schedule on each recipient's local time, set this value to `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsLocalTime", + "type": "boolean" + }, + "QuietTime": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.QuietTime", + "markdownDescription": "The default quiet time for the campaign\\. Quiet time is a specific time range when a campaign doesn't send messages to endpoints, if all the following conditions are met: \n+ The `EndpointDemographic.Timezone` property of the endpoint is set to a valid value\\.\n+ The current time in the endpoint's time zone is later than or equal to the time specified by the `QuietTime.Start` property for the campaign\\.\n+ The current time in the endpoint's time zone is earlier than or equal to the time specified by the `QuietTime.End` property for the campaign\\.\nIf any of the preceding conditions isn't met, the endpoint will receive messages from the campaign, even if quiet time is enabled\\. \n*Required*: No \n*Type*: [QuietTime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-schedule-quiettime.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QuietTime" + }, + "StartTime": { + "markdownDescription": "The scheduled time when the campaign began or will begin\\. Valid values are: `IMMEDIATE`, to start the campaign immediately; or, a specific time in ISO 8601 format\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartTime", + "type": "string" + }, + "TimeZone": { + "markdownDescription": "The starting UTC offset for the campaign schedule, if the value of the `IsLocalTime` property is `true`\\. Valid values are: `UTC, UTC+01, UTC+02, UTC+03, UTC+03:30, UTC+04, UTC+04:30, UTC+05, UTC+05:30, UTC+05:45, UTC+06, UTC+06:30, UTC+07, UTC+08, UTC+09, UTC+09:30, UTC+10, UTC+10:30, UTC+11, UTC+12, UTC+13, UTC-02, UTC-03, UTC-04, UTC-05, UTC-06, UTC-07, UTC-08, UTC-09, UTC-10,` and `UTC-11`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeZone", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.SetDimension": { + "additionalProperties": false, + "properties": { + "DimensionType": { + "markdownDescription": "The type of segment dimension to use\\. Valid values are: `INCLUSIVE`, endpoints that match the criteria are included in the segment; and, `EXCLUSIVE`, endpoints that match the criteria are excluded from the segment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DimensionType", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "The criteria values to use for the segment dimension\\. Depending on the value of the `DimensionType` property, endpoints are included or excluded from the segment if their values match the criteria values\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "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", + "markdownDescription": "The message configuration settings for the treatment\\. \n*Required*: No \n*Type*: [MessageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-messageconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageConfiguration" + }, + "Schedule": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Schedule", + "markdownDescription": "The schedule settings for the treatment\\. \n*Required*: No \n*Type*: [Schedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-schedule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule" + }, + "SizePercent": { + "markdownDescription": "The allocated percentage of users \\(segment members\\) to send the treatment to\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SizePercent", + "type": "number" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.TemplateConfiguration" + }, + "TreatmentDescription": { + "markdownDescription": "A custom description of the treatment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TreatmentDescription", + "type": "string" + }, + "TreatmentName": { + "markdownDescription": "A custom name for the treatment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that you're specifying the email channel for\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", + "type": "string" + }, + "ConfigurationSet": { + "markdownDescription": "The [Amazon SES configuration set](https://docs.aws.amazon.com/ses/latest/APIReference/API_ConfigurationSet.html) that you want to apply to messages that you send through the channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfigurationSet", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Specifies whether to enable the email channel for the application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "FromAddress": { + "markdownDescription": "The verified email address that you want to send email from when you send email through the channel\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FromAddress", + "type": "string" + }, + "Identity": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the identity, verified with Amazon Simple Email Service \\(Amazon SES\\), that you want to use when you send email through the channel\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Identity", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the AWS Identity and Access Management \\(IAM\\) role that you want Amazon Pinpoint to use when it submits email\\-related event data for the channel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A JSON object that specifies the default values to use for message variables in the message template\\. This object is a set of key\\-value pairs\\. Each key defines a message variable in the template\\. The corresponding value defines the default value for that variable\\. When you create a message that's based on the template, you can override these defaults with message\\-specific and address\\-specific variables and values\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultSubstitutions", + "type": "string" + }, + "HtmlPart": { + "markdownDescription": "The message body, in HTML format, to use in email messages that are based on the message template\\. We recommend using HTML format for email clients that render HTML content\\. You can include links, formatted text, and more in an HTML message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HtmlPart", + "type": "string" + }, + "Subject": { + "markdownDescription": "The subject line, or title, to use in email messages that are based on the message template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subject", + "type": "string" + }, + "Tags": { + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "object" + }, + "TemplateDescription": { + "markdownDescription": "A custom description of the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateDescription", + "type": "string" + }, + "TemplateName": { + "markdownDescription": "The name of the message template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TemplateName", + "type": "string" + }, + "TextPart": { + "markdownDescription": "The message body, in plain text format, to use in email messages that are based on the message template\\. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high\\-latency networks, such as mobile devices\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that you want to export data from\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", + "type": "string" + }, + "DestinationStreamArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon Kinesis data stream or Amazon Kinesis Data Firehose delivery stream that you want to publish event data to\\. \nFor a Kinesis data stream, the ARN format is: `arn:aws:kinesis:region:account-id:stream/stream_name ` \nFor a Kinesis Data Firehose delivery stream, the ARN format is: `arn:aws:firehose:region:account-id:deliverystream/stream_name ` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationStreamArn", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The AWS Identity and Access Management \\(IAM\\) role that authorizes Amazon Pinpoint to publish event data to the stream in your AWS account\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Web API key, also called the *server key*, that you received from Google to communicate with Google services\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApiKey", + "type": "string" + }, + "ApplicationId": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that the GCM channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Specifies whether to enable the GCM channel for the Amazon Pinpoint application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "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" + }, + "markdownDescription": "An object that contains information about the content of an in\\-app message, including its title and body text, text colors, background colors, images, buttons, and behaviors\\. \n*Required*: No \n*Type*: List of [InAppMessageContent](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-inappmessagecontent.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Content", + "type": "array" + }, + "CustomConfig": { + "markdownDescription": "Custom data, in the form of key\\-value pairs, that is included in an in\\-app messaging payload\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomConfig", + "type": "object" + }, + "Layout": { + "markdownDescription": "A string that determines the appearance of the in\\-app message\\. You can specify one of the following: \n+ `BOTTOM_BANNER` \u2013 a message that appears as a banner at the bottom of the page\\.\n+ `TOP_BANNER` \u2013 a message that appears as a banner at the top of the page\\.\n+ `OVERLAYS` \u2013 a message that covers entire screen\\.\n+ `MOBILE_FEED` \u2013 a message that appears in a window in front of the page\\.\n+ `MIDDLE_BANNER` \u2013 a message that appears as a banner in the middle of the page\\.\n+ `CAROUSEL` \u2013 a scrollable layout of up to five unique messages\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Layout", + "type": "string" + }, + "Tags": { + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "object" + }, + "TemplateDescription": { + "markdownDescription": "An optional description of the in\\-app template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateDescription", + "type": "string" + }, + "TemplateName": { + "markdownDescription": "The name of the in\\-app message template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The text alignment of the main body text of the message\\. Acceptable values: `LEFT`, `CENTER`, `RIGHT`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alignment", + "type": "string" + }, + "Body": { + "markdownDescription": "The main body text of the message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body", + "type": "string" + }, + "TextColor": { + "markdownDescription": "The color of the body text, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextColor", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.ButtonConfig": { + "additionalProperties": false, + "properties": { + "Android": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration", + "markdownDescription": "Optional button configuration to use for in\\-app messages sent to Android devices\\. This button configuration overrides the default button configuration\\. \n*Required*: No \n*Type*: [OverrideButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-overridebuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Android" + }, + "DefaultConfig": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.DefaultButtonConfiguration", + "markdownDescription": "Specifies the default behavior of a button that appears in an in\\-app message\\. You can optionally add button configurations that specifically apply to iOS, Android, or web browser users\\. \n*Required*: No \n*Type*: [DefaultButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-defaultbuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultConfig" + }, + "IOS": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration", + "markdownDescription": "Optional button configuration to use for in\\-app messages sent to iOS devices\\. This button configuration overrides the default button configuration\\. \n*Required*: No \n*Type*: [OverrideButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-overridebuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IOS" + }, + "Web": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration", + "markdownDescription": "Optional button configuration to use for in\\-app messages sent to web applications\\. This button configuration overrides the default button configuration\\. \n*Required*: No \n*Type*: [OverrideButtonConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-overridebuttonconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Web" + } + }, + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.DefaultButtonConfiguration": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "markdownDescription": "The background color of a button, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackgroundColor", + "type": "string" + }, + "BorderRadius": { + "markdownDescription": "The border radius of a button\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BorderRadius", + "type": "number" + }, + "ButtonAction": { + "markdownDescription": "The action that occurs when a recipient chooses a button in an in\\-app message\\. You can specify one of the following: \n+ `LINK` \u2013 A link to a web destination\\.\n+ `DEEP_LINK` \u2013 A link to a specific page in an application\\.\n+ `CLOSE` \u2013 Dismisses the message\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ButtonAction", + "type": "string" + }, + "Link": { + "markdownDescription": "The destination \\(such as a URL\\) for a button\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Link", + "type": "string" + }, + "Text": { + "markdownDescription": "The text that appears on a button in an in\\-app message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Text", + "type": "string" + }, + "TextColor": { + "markdownDescription": "The color of the body text in a button, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextColor", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.HeaderConfig": { + "additionalProperties": false, + "properties": { + "Alignment": { + "markdownDescription": "The text alignment of the title of the message\\. Acceptable values: `LEFT`, `CENTER`, `RIGHT`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alignment", + "type": "string" + }, + "Header": { + "markdownDescription": "The title text of the in\\-app message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Header", + "type": "string" + }, + "TextColor": { + "markdownDescription": "The color of the title text, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextColor", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.InAppMessageContent": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "markdownDescription": "The background color for an in\\-app message banner, expressed as a hex color code \\(such as \\#000000 for black\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackgroundColor", + "type": "string" + }, + "BodyConfig": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.BodyConfig", + "markdownDescription": "An object that contains configuration information about the header or title text of the in\\-app message\\. \n*Required*: No \n*Type*: [BodyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-bodyconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BodyConfig" + }, + "HeaderConfig": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.HeaderConfig", + "markdownDescription": "An object that contains configuration information about the header or title text of the in\\-app message\\. \n*Required*: No \n*Type*: [HeaderConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-headerconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderConfig" + }, + "ImageUrl": { + "markdownDescription": "The URL of the image that appears on an in\\-app message banner\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageUrl", + "type": "string" + }, + "PrimaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.ButtonConfig", + "markdownDescription": "An object that contains configuration information about the primary button in an in\\-app message\\. \n*Required*: No \n*Type*: [ButtonConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-buttonconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrimaryBtn" + }, + "SecondaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.ButtonConfig", + "markdownDescription": "An object that contains configuration information about the secondary button in an in\\-app message\\. \n*Required*: No \n*Type*: [ButtonConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-inapptemplate-buttonconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryBtn" + } + }, + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration": { + "additionalProperties": false, + "properties": { + "ButtonAction": { + "markdownDescription": "The action that occurs when a recipient chooses a button in an in\\-app message\\. You can specify one of the following: \n+ `LINK` \u2013 A link to a web destination\\.\n+ `DEEP_LINK` \u2013 A link to a specific page in an application\\.\n+ `CLOSE` \u2013 Dismisses the message\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ButtonAction", + "type": "string" + }, + "Link": { + "markdownDescription": "The destination \\(such as a URL\\) for a button\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The message template to use for the ADM \\(Amazon Device Messaging\\) channel\\. This message template overrides the default template for push notification channels \\(`Default`\\)\\. \n*Required*: No \n*Type*: [AndroidPushNotificationTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-androidpushnotificationtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ADM" + }, + "APNS": { + "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.APNSPushNotificationTemplate", + "markdownDescription": "The message template to use for the APNs \\(Apple Push Notification service\\) channel\\. This message template overrides the default template for push notification channels \\(`Default`\\)\\. \n*Required*: No \n*Type*: [APNSPushNotificationTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-apnspushnotificationtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "APNS" + }, + "Baidu": { + "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.AndroidPushNotificationTemplate", + "markdownDescription": "The message template to use for the Baidu \\(Baidu Cloud Push\\) channel\\. This message template overrides the default template for push notification channels \\(`Default`\\)\\. \n*Required*: No \n*Type*: [AndroidPushNotificationTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-androidpushnotificationtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Baidu" + }, + "Default": { + "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.DefaultPushNotificationTemplate", + "markdownDescription": "The default message template to use for push notification channels\\. \n*Required*: No \n*Type*: [DefaultPushNotificationTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-defaultpushnotificationtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Default" + }, + "DefaultSubstitutions": { + "markdownDescription": "A JSON object that specifies the default values to use for message variables in the message template\\. This object is a set of key\\-value pairs\\. Each key defines a message variable in the template\\. The corresponding value defines the default value for that variable\\. When you create a message that's based on the template, you can override these defaults with message\\-specific and address\\-specific variables and values\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultSubstitutions", + "type": "string" + }, + "GCM": { + "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.AndroidPushNotificationTemplate", + "markdownDescription": "The message template to use for the GCM channel, which is used to send notifications through the Firebase Cloud Messaging \\(FCM\\), formerly Google Cloud Messaging \\(GCM\\), service\\. This message template overrides the default template for push notification channels \\(`Default`\\)\\. \n*Required*: No \n*Type*: [AndroidPushNotificationTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-androidpushnotificationtemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GCM" + }, + "Tags": { + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "object" + }, + "TemplateDescription": { + "markdownDescription": "A custom description of the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateDescription", + "type": "string" + }, + "TemplateName": { + "markdownDescription": "The name of the message template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The action to occur if a recipient taps a push notification that's based on the message template\\. Valid values are: \n+ `OPEN_APP` \u2013 Your app opens or it becomes the foreground app if it was sent to the background\\. This is the default action\\.\n+ `DEEP_LINK` \u2013 Your app opens and displays a designated user interface in the app\\. This setting uses the deep\\-linking features of the iOS platform\\.\n+ `URL` \u2013 The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", + "type": "string" + }, + "Body": { + "markdownDescription": "The message body to use in push notifications that are based on the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body", + "type": "string" + }, + "MediaUrl": { + "markdownDescription": "The URL of an image or video to display in push notifications that are based on the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MediaUrl", + "type": "string" + }, + "Sound": { + "markdownDescription": "The key for the sound to play when the recipient receives a push notification that's based on the message template\\. The value for this key is the name of a sound file in your app's main bundle or the `Library/Sounds` folder in your app's data container\\. If the sound file can't be found or you specify `default` for the value, the system plays the default alert sound\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sound", + "type": "string" + }, + "Title": { + "markdownDescription": "The title to use in push notifications that are based on the message template\\. This title appears above the notification message on a recipient's device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Title", + "type": "string" + }, + "Url": { + "markdownDescription": "The URL to open in the recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the `Action` property is `URL`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::PushTemplate.AndroidPushNotificationTemplate": { + "additionalProperties": false, + "properties": { + "Action": { + "markdownDescription": "The action to occur if a recipient taps a push notification that's based on the message template\\. Valid values are: \n+ `OPEN_APP` \u2013 Your app opens or it becomes the foreground app if it was sent to the background\\. This is the default action\\.\n+ `DEEP_LINK` \u2013 Your app opens and displays a designated user interface in the app\\. This action uses the deep\\-linking features of the Android platform\\.\n+ `URL` \u2013 The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", + "type": "string" + }, + "Body": { + "markdownDescription": "The message body to use in a push notification that's based on the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body", + "type": "string" + }, + "ImageIconUrl": { + "markdownDescription": "The URL of the large icon image to display in the content view of a push notification that's based on the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageIconUrl", + "type": "string" + }, + "ImageUrl": { + "markdownDescription": "The URL of an image to display in a push notification that's based on the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageUrl", + "type": "string" + }, + "SmallImageIconUrl": { + "markdownDescription": "The URL of the small icon image to display in the status bar and the content view of a push notification that's based on the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SmallImageIconUrl", + "type": "string" + }, + "Sound": { + "markdownDescription": "The sound to play when a recipient receives a push notification that's based on the message template\\. You can use the default stream or specify the file name of a sound resource that's bundled in your app\\. On an Android platform, the sound file must reside in `/res/raw/`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sound", + "type": "string" + }, + "Title": { + "markdownDescription": "The title to use in a push notification that's based on the message template\\. This title appears above the notification message on a recipient's device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Title", + "type": "string" + }, + "Url": { + "markdownDescription": "The URL to open in a recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the `Action` property is `URL`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Url", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::PushTemplate.DefaultPushNotificationTemplate": { + "additionalProperties": false, + "properties": { + "Action": { + "markdownDescription": "The action to occur if a recipient taps a push notification that's based on the message template\\. Valid values are: \n+ `OPEN_APP` \u2013 Your app opens or it becomes the foreground app if it was sent to the background\\. This is the default action\\.\n+ `DEEP_LINK` \u2013 Your app opens and displays a designated user interface in the app\\. This setting uses the deep\\-linking features of the iOS and Android platforms\\.\n+ `URL` \u2013 The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action", + "type": "string" + }, + "Body": { + "markdownDescription": "The message body to use in push notifications that are based on the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body", + "type": "string" + }, + "Sound": { + "markdownDescription": "The sound to play when a recipient receives a push notification that's based on the message template\\. You can use the default stream or specify the file name of a sound resource that's bundled in your app\\. On an Android platform, the sound file must reside in `/res/raw/`\\. \nFor an iOS platform, this value is the key for the name of a sound file in your app's main bundle or the `Library/Sounds` folder in your app's data container\\. If the sound file can't be found or you specify `default` for the value, the system plays the default alert sound\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sound", + "type": "string" + }, + "Title": { + "markdownDescription": "The title to use in push notifications that are based on the message template\\. This title appears above the notification message on a recipient's device\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Title", + "type": "string" + }, + "Url": { + "markdownDescription": "The URL to open in a recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the `Action` property is `URL`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that the SMS channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Specifies whether to enable the SMS channel for the application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "SenderId": { + "markdownDescription": "The identity that you want to display on recipients' devices when they receive messages from the SMS channel\\. \nSenderIDs are only supported in certain countries and regions\\. For more information, see [Supported Countries and Regions](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-countries.html) in the *Amazon Pinpoint User Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SenderId", + "type": "string" + }, + "ShortCode": { + "markdownDescription": "The registered short code that you want to use when you send messages through the SMS channel\\. \nFor information about obtaining a dedicated short code for sending SMS messages, see [Requesting Dedicated Short Codes for SMS Messaging with Amazon Pinpoint](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-awssupport-short-code.html) in the *Amazon Pinpoint User Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that the segment is associated with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", + "type": "string" + }, + "Dimensions": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.SegmentDimensions", + "markdownDescription": "The criteria that define the dimensions for the segment\\. \n*Required*: No \n*Type*: [SegmentDimensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions" + }, + "Name": { + "markdownDescription": "The name of the segment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "SegmentGroups": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.SegmentGroups", + "markdownDescription": "The segment group to use and the dimensions to apply to the group's base segments in order to build the segment\\. A segment group can consist of zero or more base segments\\. Your request can include only one segment group\\. \n*Required*: No \n*Type*: [SegmentGroups](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentgroups.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentGroups" + }, + "Tags": { + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The type of segment dimension to use\\. Valid values are: \n+ `INCLUSIVE` \u2013 endpoints that have attributes matching the values are included in the segment\\.\n+ `EXCLUSIVE` \u2013 endpoints that have attributes matching the values are excluded from the segment\\.\n+ `CONTAINS` \u2013 endpoints that have attributes' substrings match the values are included in the segment\\.\n+ `BEFORE` \u2013 endpoints with attributes read as ISO\\_INSTANT datetimes before the value are included in the segment\\.\n+ `AFTER` \u2013 endpoints with attributes read as ISO\\_INSTANT datetimes after the value are included in the segment\\.\n+ `BETWEEN` \u2013 endpoints with attributes read as ISO\\_INSTANT datetimes between the values are included in the segment\\.\n+ `ON` \u2013 endpoints with attributes read as ISO\\_INSTANT dates on the value are included in the segment\\. Time is ignored in this comparison\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttributeType", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "The criteria values to use for the segment dimension\\. Depending on the value of the `AttributeType` property, endpoints are included or excluded from the segment if their attribute values match the criteria values\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Segment.Behavior": { + "additionalProperties": false, + "properties": { + "Recency": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.Recency", + "markdownDescription": "Specifies how recently segment members were active\\. \n*Required*: No \n*Type*: [Recency](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-behavior-recency.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Recency" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Segment.Coordinates": { + "additionalProperties": false, + "properties": { + "Latitude": { + "markdownDescription": "The latitude coordinate of the location\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Latitude", + "type": "number" + }, + "Longitude": { + "markdownDescription": "The longitude coordinate of the location\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Longitude", + "type": "number" + } + }, + "required": [ + "Latitude", + "Longitude" + ], + "type": "object" + }, + "AWS::Pinpoint::Segment.Demographic": { + "additionalProperties": false, + "properties": { + "AppVersion": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension", + "markdownDescription": "The app version criteria for the segment\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppVersion" + }, + "Channel": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension", + "markdownDescription": "The channel criteria for the segment\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Channel" + }, + "DeviceType": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension", + "markdownDescription": "The device type criteria for the segment\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceType" + }, + "Make": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension", + "markdownDescription": "The device make criteria for the segment\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Make" + }, + "Model": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension", + "markdownDescription": "The device model criteria for the segment\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Model" + }, + "Platform": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension", + "markdownDescription": "The device platform criteria for the segment\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Platform" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Segment.GPSPoint": { + "additionalProperties": false, + "properties": { + "Coordinates": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.Coordinates", + "markdownDescription": "The GPS coordinates to measure distance from\\. \n*Required*: Yes \n*Type*: [Coordinates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-location-gpspoint-coordinates.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Coordinates" + }, + "RangeInKilometers": { + "markdownDescription": "The range, in kilometers, from the GPS coordinates\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RangeInKilometers", + "type": "number" + } + }, + "required": [ + "Coordinates", + "RangeInKilometers" + ], + "type": "object" + }, + "AWS::Pinpoint::Segment.Groups": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.SegmentDimensions" + }, + "markdownDescription": "An array that defines the dimensions to include or exclude from the segment\\. \n*Required*: No \n*Type*: List of [SegmentDimensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimensions", + "type": "array" + }, + "SourceSegments": { + "items": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.SourceSegments" + }, + "markdownDescription": "The base segment to build the segment on\\. A base segment, also called a *source segment*, defines the initial population of endpoints for a segment\\. When you add dimensions to the segment, Amazon Pinpoint filters the base segment by using the dimensions that you specify\\. \nYou can specify more than one dimensional segment or only one imported segment\\. If you specify an imported segment, the segment size estimate that displays on the Amazon Pinpoint console indicates the size of the imported segment without any filters applied to it\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentgroups-groups-sourcesegments.html) of [SourceSegments](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentgroups-groups-sourcesegments.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceSegments", + "type": "array" + }, + "SourceType": { + "markdownDescription": "Specifies how to handle multiple base segments for the segment\\. For example, if you specify three base segments for the segment, whether the resulting segment is based on all, any, or none of the base segments\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceType", + "type": "string" + }, + "Type": { + "markdownDescription": "Specifies how to handle multiple dimensions for the segment\\. For example, if you specify three dimensions for the segment, whether the resulting segment includes endpoints that match all, any, or none of the dimensions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Segment.Location": { + "additionalProperties": false, + "properties": { + "Country": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension", + "markdownDescription": "The country or region code, in ISO 3166\\-1 alpha\\-2 format, for the segment\\. \n*Required*: No \n*Type*: [SetDimension](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-setdimension.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Country" + }, + "GPSPoint": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.GPSPoint", + "markdownDescription": "The GPS point dimension for the segment\\. \n*Required*: No \n*Type*: [GPSPoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-location-gpspoint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GPSPoint" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Segment.Recency": { + "additionalProperties": false, + "properties": { + "Duration": { + "markdownDescription": "The duration to use when determining which users have been active or inactive with your app\\. \nPossible values: `HR_24` \\| `DAY_7` \\| `DAY_14` \\| `DAY_30`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Duration", + "type": "string" + }, + "RecencyType": { + "markdownDescription": "The type of recency dimension to use for the segment\\. Valid values are: `ACTIVE` and `INACTIVE`\\. If the value is `ACTIVE`, the segment includes users who have used your app within the specified duration are included in the segment\\. If the value is `INACTIVE`, the segment includes users who haven't used your app within the specified duration are included in the segment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecencyType", + "type": "string" + } + }, + "required": [ + "Duration", + "RecencyType" + ], + "type": "object" + }, + "AWS::Pinpoint::Segment.SegmentDimensions": { + "additionalProperties": false, + "properties": { + "Attributes": { + "markdownDescription": "One or more custom attributes to use as criteria for the segment\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attributes", + "type": "object" + }, + "Behavior": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.Behavior", + "markdownDescription": "The behavior\\-based criteria, such as how recently users have used your app, for the segment\\. \n*Required*: No \n*Type*: [Behavior](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-behavior.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Behavior" + }, + "Demographic": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.Demographic", + "markdownDescription": "The demographic\\-based criteria, such as device platform, for the segment\\. \n*Required*: No \n*Type*: [Demographic](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-demographic.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Demographic" + }, + "Location": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.Location", + "markdownDescription": "The location\\-based criteria, such as region or GPS coordinates, for the segment\\. \n*Required*: No \n*Type*: [Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Location" + }, + "Metrics": { + "markdownDescription": "One or more custom metrics to use as criteria for the segment\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metrics", + "type": "object" + }, + "UserAttributes": { + "markdownDescription": "One or more custom user attributes to use as criteria for the segment\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UserAttributes", + "type": "object" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Segment.SegmentGroups": { + "additionalProperties": false, + "properties": { + "Groups": { + "items": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.Groups" + }, + "markdownDescription": "Specifies the set of segment criteria to evaluate when handling segment groups for the segment\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentgroups-groups.html) of [Groups](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentgroups-groups.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Groups", + "type": "array" + }, + "Include": { + "markdownDescription": "Specifies how to handle multiple segment groups for the segment\\. For example, if the segment includes three segment groups, whether the resulting segment includes endpoints that match all, any, or none of the segment groups\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Include", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Segment.SetDimension": { + "additionalProperties": false, + "properties": { + "DimensionType": { + "markdownDescription": "The type of segment dimension to use\\. Valid values are: `INCLUSIVE`, endpoints that match the criteria are included in the segment; and, `EXCLUSIVE`, endpoints that match the criteria are excluded from the segment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DimensionType", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "The criteria values to use for the segment dimension\\. Depending on the value of the `DimensionType` property, endpoints are included or excluded from the segment if their values match the criteria values\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Segment.SourceSegments": { + "additionalProperties": false, + "properties": { + "Id": { + "markdownDescription": "The unique identifier for the source segment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "Version": { + "markdownDescription": "The version number of the source segment\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The message body to use in text messages that are based on the message template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body", + "type": "string" + }, + "DefaultSubstitutions": { + "markdownDescription": "A JSON object that specifies the default values to use for message variables in the message template\\. This object is a set of key\\-value pairs\\. Each key defines a message variable in the template\\. The corresponding value defines the default value for that variable\\. When you create a message that's based on the template, you can override these defaults with message\\-specific and address\\-specific variables and values\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultSubstitutions", + "type": "string" + }, + "Tags": { + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "object" + }, + "TemplateDescription": { + "markdownDescription": "A custom description of the message template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateDescription", + "type": "string" + }, + "TemplateName": { + "markdownDescription": "The name of the message template\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The unique identifier for the Amazon Pinpoint application that the voice channel applies to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationId", + "type": "string" + }, + "Enabled": { + "markdownDescription": "Specifies whether to enable the voice channel for the application\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "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", + "markdownDescription": "An object that defines the dedicated IP pool that is used to send emails that you send using the configuration set\\. \n*Required*: No \n*Type*: [DeliveryOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-deliveryoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryOptions" + }, + "Name": { + "markdownDescription": "The name of the configuration set\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "ReputationOptions": { + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.ReputationOptions", + "markdownDescription": "An object that defines whether or not Amazon Pinpoint collects reputation metrics for the emails that you send that use the configuration set\\. \n*Required*: No \n*Type*: [ReputationOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-reputationoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReputationOptions" + }, + "SendingOptions": { + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.SendingOptions", + "markdownDescription": "An object that defines whether or not Amazon Pinpoint can send email that you send using the configuration set\\. \n*Required*: No \n*Type*: [SendingOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-sendingoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SendingOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.Tags" + }, + "markdownDescription": "An object that defines the tags \\(keys and values\\) that you want to associate with the configuration set\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TrackingOptions": { + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.TrackingOptions", + "markdownDescription": "An object that defines the open and click tracking options for emails that you send using the configuration set\\. \n*Required*: No \n*Type*: [TrackingOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationset-trackingoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the dedicated IP pool that you want to associate with the configuration set\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SendingPoolName", + "type": "string" + } + }, + "type": "object" + }, + "AWS::PinpointEmail::ConfigurationSet.ReputationOptions": { + "additionalProperties": false, + "properties": { + "ReputationMetricsEnabled": { + "markdownDescription": "If `true`, tracking of reputation metrics is enabled for the configuration set\\. If `false`, tracking of reputation metrics is disabled for the configuration set\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReputationMetricsEnabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::PinpointEmail::ConfigurationSet.SendingOptions": { + "additionalProperties": false, + "properties": { + "SendingEnabled": { + "markdownDescription": "If `true`, email sending is enabled for the configuration set\\. If `false`, email sending is disabled for the configuration set\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SendingEnabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::PinpointEmail::ConfigurationSet.Tags": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "One part of a key\\-value pair that defines a tag\\. The maximum length of a tag key is 128 characters\\. The minimum length is 1 character\\. \nIf you specify tags for the configuration set, then this value is required\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The optional part of a key\\-value pair that defines a tag\\. The maximum length of a tag value is 256 characters\\. The minimum length is 0 characters\\. If you don\u2019t want a resource to have a specific tag value, don\u2019t specify a value for this parameter\\. Amazon Pinpoint will set the value to an empty string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "type": "object" + }, + "AWS::PinpointEmail::ConfigurationSet.TrackingOptions": { + "additionalProperties": false, + "properties": { + "CustomRedirectDomain": { + "markdownDescription": "The domain that you want to use for tracking open and click events\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the configuration set that contains the event destination that you want to modify\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfigurationSetName", + "type": "string" + }, + "EventDestination": { + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.EventDestination", + "markdownDescription": "An object that defines the event destination\\. \n*Required*: No \n*Type*: [EventDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-eventdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventDestination" + }, + "EventDestinationName": { + "markdownDescription": "The name of the event destination that you want to modify\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "An array of objects that define the dimensions to use when you send email events to Amazon CloudWatch\\. \n*Required*: No \n*Type*: List of [DimensionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-dimensionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DimensionConfigurations", + "type": "array" + } + }, + "type": "object" + }, + "AWS::PinpointEmail::ConfigurationSetEventDestination.DimensionConfiguration": { + "additionalProperties": false, + "properties": { + "DefaultDimensionValue": { + "markdownDescription": "The default value of the dimension that is published to Amazon CloudWatch if you don't provide the value of the dimension when you send an email\\. This value has to meet the following criteria: \n+ It can only contain ASCII letters \\(a\u2013z, A\u2013Z\\), numbers \\(0\u20139\\), underscores \\(\\_\\), or dashes \\(\\-\\)\\.\n+ It can contain no more than 256 characters\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultDimensionValue", + "type": "string" + }, + "DimensionName": { + "markdownDescription": "The name of an Amazon CloudWatch dimension associated with an email sending metric\\. The name has to meet the following criteria: \n+ It can only contain ASCII letters \\(a\u2013z, A\u2013Z\\), numbers \\(0\u20139\\), underscores \\(\\_\\), or dashes \\(\\-\\)\\.\n+ It can contain no more than 256 characters\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DimensionName", + "type": "string" + }, + "DimensionValueSource": { + "markdownDescription": "The location where Amazon Pinpoint finds the value of a dimension to publish to Amazon CloudWatch\\. Acceptable values: `MESSAGE_TAG`, `EMAIL_HEADER`, and `LINK_TAG`\\. \nIf you want Amazon Pinpoint to use the message tags that you specify using an `X-SES-MESSAGE-TAGS` header or a parameter to the `SendEmail` API, choose `MESSAGE_TAG`\\. If you want Amazon Pinpoint to use your own email headers, choose `EMAIL_HEADER`\\. If you want Amazon Pinpoint to use tags that are specified in your links, choose `LINK_TAG`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DimensionValueSource", + "type": "string" + } + }, + "required": [ + "DefaultDimensionValue", + "DimensionName", + "DimensionValueSource" + ], + "type": "object" + }, + "AWS::PinpointEmail::ConfigurationSetEventDestination.EventDestination": { + "additionalProperties": false, + "properties": { + "CloudWatchDestination": { + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.CloudWatchDestination", + "markdownDescription": "An object that defines an Amazon CloudWatch destination for email events\\. You can use Amazon CloudWatch to monitor and gain insights on your email sending metrics\\. \n*Required*: No \n*Type*: [CloudWatchDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-cloudwatchdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchDestination" + }, + "Enabled": { + "markdownDescription": "If `true`, the event destination is enabled\\. When the event destination is enabled, the specified event types are sent to the destinations in this `EventDestinationDefinition`\\. \nIf `false`, the event destination is disabled\\. When the event destination is disabled, events aren't sent to the specified destinations\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "KinesisFirehoseDestination": { + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.KinesisFirehoseDestination", + "markdownDescription": "An object that defines an Amazon Kinesis Data Firehose destination for email events\\. You can use Amazon Kinesis Data Firehose to stream data to other services, such as Amazon S3 and Amazon Redshift\\. \n*Required*: No \n*Type*: [KinesisFirehoseDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-kinesisfirehosedestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KinesisFirehoseDestination" + }, + "MatchingEventTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The types of events that Amazon Pinpoint sends to the specified event destinations\\. Acceptable values: `SEND`, `REJECT`, `BOUNCE`, `COMPLAINT`, `DELIVERY`, `OPEN`, `CLICK`, and `RENDERING_FAILURE`\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MatchingEventTypes", + "type": "array" + }, + "PinpointDestination": { + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.PinpointDestination", + "markdownDescription": "An object that defines a Amazon Pinpoint destination for email events\\. You can use Amazon Pinpoint events to create attributes in Amazon Pinpoint projects\\. You can use these attributes to create segments for your campaigns\\. \n*Required*: No \n*Type*: [PinpointDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-pinpointdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PinpointDestination" + }, + "SnsDestination": { + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.SnsDestination", + "markdownDescription": "An object that defines an Amazon SNS destination for email events\\. You can use Amazon SNS to send notification when certain email events occur\\. \n*Required*: No \n*Type*: [SnsDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-configurationseteventdestination-snsdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsDestination" + } + }, + "required": [ + "MatchingEventTypes" + ], + "type": "object" + }, + "AWS::PinpointEmail::ConfigurationSetEventDestination.KinesisFirehoseDestination": { + "additionalProperties": false, + "properties": { + "DeliveryStreamArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon Kinesis Data Firehose stream that Amazon Pinpoint sends email events to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryStreamArn", + "type": "string" + }, + "IamRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that Amazon Pinpoint uses when sending email events to the Amazon Kinesis Data Firehose stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamRoleArn", + "type": "string" + } + }, + "required": [ + "DeliveryStreamArn", + "IamRoleArn" + ], + "type": "object" + }, + "AWS::PinpointEmail::ConfigurationSetEventDestination.PinpointDestination": { + "additionalProperties": false, + "properties": { + "ApplicationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon Pinpoint project that you want to send email events to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::PinpointEmail::ConfigurationSetEventDestination.SnsDestination": { + "additionalProperties": false, + "properties": { + "TopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic that you want to publish email events to\\. For more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the dedicated IP pool\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PoolName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::PinpointEmail::DedicatedIpPool.Tags" + }, + "markdownDescription": "An object that defines the tags \\(keys and values\\) that you want to associate with the dedicated IP pool\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-dedicatedippool-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-dedicatedippool-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "One part of a key\\-value pair that defines a tag\\. The maximum length of a tag key is 128 characters\\. The minimum length is 1 character\\. \nIf you specify tags for the dedicated IP pool, then this value is required\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The optional part of a key\\-value pair that defines a tag\\. The maximum length of a tag value is 256 characters\\. The minimum length is 0 characters\\. If you don\u2019t want a resource to have a specific tag value, don\u2019t specify a value for this parameter\\. Amazon Pinpoint will set the value to an empty string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "For domain identities, this attribute is used to enable or disable DomainKeys Identified Mail \\(DKIM\\) signing for the domain\\. \nIf the value is `true`, then the messages that you send from the domain are signed using both the DKIM keys for your domain, as well as the keys for the `amazonses.com` domain\\. If the value is `false`, then the messages that you send are only signed using the DKIM keys for the `amazonses.com` domain\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DkimSigningEnabled", + "type": "boolean" + }, + "FeedbackForwardingEnabled": { + "markdownDescription": "Used to enable or disable feedback forwarding for an identity\\. This setting determines what happens when an identity is used to send an email that results in a bounce or complaint event\\. \nWhen you enable feedback forwarding, Amazon Pinpoint sends you email notifications when bounce or complaint events occur\\. Amazon Pinpoint sends this notification to the address that you specified in the Return\\-Path header of the original email\\. \nWhen you disable feedback forwarding, Amazon Pinpoint sends notifications through other mechanisms, such as by notifying an Amazon SNS topic\\. You're required to have a method of tracking bounces and complaints\\. If you haven't set up another mechanism for receiving bounce or complaint notifications, Amazon Pinpoint sends an email notification when these events occur \\(even if this setting is disabled\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FeedbackForwardingEnabled", + "type": "boolean" + }, + "MailFromAttributes": { + "$ref": "#/definitions/AWS::PinpointEmail::Identity.MailFromAttributes", + "markdownDescription": "Used to enable or disable the custom Mail\\-From domain configuration for an email identity\\. \n*Required*: No \n*Type*: [MailFromAttributes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-identity-mailfromattributes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MailFromAttributes" + }, + "Name": { + "markdownDescription": "The address or domain of the identity, such as *sender@example\\.com* or *example\\.co\\.uk*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::PinpointEmail::Identity.Tags" + }, + "markdownDescription": "An object that defines the tags \\(keys and values\\) that you want to associate with the email identity\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-identity-tags.html) of [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpointemail-identity-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The action that Amazon Pinpoint to takes if it can't read the required MX record for a custom MAIL FROM domain\\. When you set this value to `UseDefaultValue`, Amazon Pinpoint uses *amazonses\\.com* as the MAIL FROM domain\\. When you set this value to `RejectMessage`, Amazon Pinpoint returns a `MailFromDomainNotVerified` error, and doesn't attempt to deliver the email\\. \nThese behaviors are taken when the custom MAIL FROM domain configuration is in the `Pending`, `Failed`, and `TemporaryFailure` states\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `REJECT_MESSAGE | USE_DEFAULT_VALUE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BehaviorOnMxFailure", + "type": "string" + }, + "MailFromDomain": { + "markdownDescription": "The name of a domain that an email identity uses as a custom MAIL FROM domain\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MailFromDomain", + "type": "string" + } + }, + "type": "object" + }, + "AWS::PinpointEmail::Identity.Tags": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "One part of a key\\-value pair that defines a tag\\. The maximum length of a tag key is 128 characters\\. The minimum length is 1 character\\. \nIf you specify tags for the identity, then this value is required\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The optional part of a key\\-value pair that defines a tag\\. The maximum length of a tag value is 256 characters\\. The minimum length is 0 characters\\. If you don\u2019t want a resource to have a specific tag value, don\u2019t specify a value for this parameter\\. Amazon Pinpoint will set the value to an empty string\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The flag that prevents a ledger from being deleted by any user\\. If not provided on ledger creation, this feature is enabled \\(`true`\\) by default\\. \nIf deletion protection is enabled, you must first disable it before you can delete the ledger\\. You can disable it by calling the `UpdateLedger` operation to set the flag to `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeletionProtection", + "type": "boolean" + }, + "KmsKey": { + "markdownDescription": "The key in AWS Key Management Service \\(AWS KMS\\) to use for encryption of data at rest in the ledger\\. For more information, see [Encryption at rest](https://docs.aws.amazon.com/qldb/latest/developerguide/encryption-at-rest.html) in the *Amazon QLDB Developer Guide*\\. \nUse one of the following options to specify this parameter: \n+ `AWS_OWNED_KMS_KEY`: Use an AWS KMS key that is owned and managed by AWS on your behalf\\.\n+ **Undefined**: By default, use an AWS owned KMS key\\.\n+ **A valid symmetric customer managed KMS key**: Use the specified KMS key in your account that you create, own, and manage\\.", + "title": "KmsKey", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the ledger that you want to create\\. The name must be unique among all of the ledgers in your AWS account in the current Region\\. \nNaming constraints for ledger names are defined in [Quotas in Amazon QLDB](https://docs.aws.amazon.com/qldb/latest/developerguide/limits.html#limits.naming) in the *Amazon QLDB Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `(?!^.*--)(?!^[0-9]+$)(?!^-)(?!.*-$)^[A-Za-z0-9-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "PermissionsMode": { + "markdownDescription": "The permissions mode to assign to the ledger that you want to create\\. This parameter can have one of the following values: \n+ `ALLOW_ALL`: A legacy permissions mode that enables access control with API\\-level granularity for ledgers\\.", + "title": "PermissionsMode", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The exclusive date and time that specifies when the stream ends\\. If you don't define this parameter, the stream runs indefinitely until you cancel it\\. \nThe `ExclusiveEndTime` must be in `ISO 8601` date and time format and in Universal Coordinated Time \\(UTC\\)\\. For example: `2019-06-13T21:36:34Z`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExclusiveEndTime", + "type": "string" + }, + "InclusiveStartTime": { + "markdownDescription": "The inclusive start date and time from which to start streaming journal data\\. This parameter must be in `ISO 8601` date and time format and in Universal Coordinated Time \\(UTC\\)\\. For example: `2019-06-13T21:36:34Z`\\. \nThe `InclusiveStartTime` cannot be in the future and must be before `ExclusiveEndTime`\\. \nIf you provide an `InclusiveStartTime` that is before the ledger's `CreationDateTime`, QLDB effectively defaults it to the ledger's `CreationDateTime`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InclusiveStartTime", + "type": "string" + }, + "KinesisConfiguration": { + "$ref": "#/definitions/AWS::QLDB::Stream.KinesisConfiguration", + "markdownDescription": "The configuration settings of the Kinesis Data Streams destination for your stream request\\. \n*Required*: Yes \n*Type*: [KinesisConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-qldb-stream-kinesisconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KinesisConfiguration" + }, + "LedgerName": { + "markdownDescription": "The name of the ledger\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `(?!^.*--)(?!^[0-9]+$)(?!^-)(?!.*-$)^[A-Za-z0-9-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LedgerName", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that grants QLDB permissions for a journal stream to write data records to a Kinesis Data Streams resource\\. \nTo pass a role to QLDB when requesting a journal stream, you must have permissions to perform the `iam:PassRole` action on the IAM role resource\\. This is required for all journal stream requests\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `1600` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RoleArn", + "type": "string" + }, + "StreamName": { + "markdownDescription": "The name that you want to assign to the QLDB journal stream\\. User\\-defined names can help identify and indicate the purpose of a stream\\. \nYour stream name must be unique among other *active* streams for a given ledger\\. Stream names have the same naming constraints as ledger names, as defined in [Quotas in Amazon QLDB](https://docs.aws.amazon.com/qldb/latest/developerguide/limits.html#limits.naming) in the *Amazon QLDB Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `(?!^.*--)(?!^[0-9]+$)(?!^-)(?!.*-$)^[A-Za-z0-9-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StreamName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "Enables QLDB to publish multiple data records in a single Kinesis Data Streams record, increasing the number of records sent per API call\\. \n *This option is enabled by default\\.* Record aggregation has important implications for processing records and requires de\\-aggregation in your stream consumer\\. To learn more, see [KPL Key Concepts](https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-concepts.html) and [Consumer De\\-aggregation](https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-consumer-deaggregation.html) in the *Amazon Kinesis Data Streams Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AggregationEnabled", + "type": "boolean" + }, + "StreamArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Kinesis Data Streams resource\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `1600` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ID for the analysis that you're creating\\. This ID displays in the URL of the analysis\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `[\\w\\-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AnalysisId", + "type": "string" + }, + "AwsAccountId": { + "markdownDescription": "The ID of the AWS account where you are creating an analysis\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AwsAccountId", + "type": "string" + }, + "Errors": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Analysis.AnalysisError" + }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of [AnalysisError](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-analysiserror.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Errors", + "type": "array" + }, + "Name": { + "markdownDescription": "A descriptive name for the analysis that you're creating\\. This name displays for the analysis in the Amazon QuickSight console\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Parameters": { + "$ref": "#/definitions/AWS::QuickSight::Analysis.Parameters", + "markdownDescription": "The parameter names and override values that you want to use\\. An analysis can have any parameter type, and some parameters might accept multiple values\\. \n*Required*: No \n*Type*: [Parameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-parameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters" + }, + "Permissions": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Analysis.ResourcePermission" + }, + "markdownDescription": "A structure that describes the principals and the resource\\-level permissions on an analysis\\. You can use the `Permissions` structure to grant permissions by providing a list of AWS Identity and Access Management \\(IAM\\) action information for each principal listed by Amazon Resource Name \\(ARN\\)\\. \nTo specify no permissions, omit `Permissions`\\. \n*Required*: No \n*Type*: List of [ResourcePermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-resourcepermission.html) \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Permissions", + "type": "array" + }, + "SourceEntity": { + "$ref": "#/definitions/AWS::QuickSight::Analysis.AnalysisSourceEntity", + "markdownDescription": "A source entity to use for the analysis that you're creating\\. This metadata structure contains details that describe a source template and one or more datasets\\. \n*Required*: Yes \n*Type*: [AnalysisSourceEntity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-analysissourceentity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceEntity" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Contains a map of the key\\-value pairs for the resource tag or tags assigned to the analysis\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "ThemeArn": { + "markdownDescription": "The ARN for the theme to apply to the analysis that you're creating\\. To see the theme in the Amazon QuickSight console, make sure that you have access to it\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The message associated with the analysis error\\. \n*Required*: No \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Message", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of the analysis error\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ACCESS_DENIED | COLUMN_GEOGRAPHIC_ROLE_MISMATCH | COLUMN_REPLACEMENT_MISSING | COLUMN_TYPE_MISMATCH | DATA_SET_NOT_FOUND | INTERNAL_FAILURE | PARAMETER_NOT_FOUND | PARAMETER_TYPE_INVALID | PARAMETER_VALUE_INCOMPATIBLE | SOURCE_NOT_FOUND` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::Analysis.AnalysisSourceEntity": { + "additionalProperties": false, + "properties": { + "SourceTemplate": { + "$ref": "#/definitions/AWS::QuickSight::Analysis.AnalysisSourceTemplate", + "markdownDescription": "The source template for the source entity of the analysis\\. \n*Required*: No \n*Type*: [AnalysisSourceTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-analysissourcetemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceTemplate" + } + }, + "type": "object" + }, + "AWS::QuickSight::Analysis.AnalysisSourceTemplate": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the source template of an analysis\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "DataSetReferences": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Analysis.DataSetReference" + }, + "markdownDescription": "The dataset references of the source template of an analysis\\. \n*Required*: Yes \n*Type*: List of [DataSetReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-datasetreference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSetReferences", + "type": "array" + } + }, + "required": [ + "Arn", + "DataSetReferences" + ], + "type": "object" + }, + "AWS::QuickSight::Analysis.DataSetReference": { + "additionalProperties": false, + "properties": { + "DataSetArn": { + "markdownDescription": "Dataset Amazon Resource Name \\(ARN\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSetArn", + "type": "string" + }, + "DataSetPlaceholder": { + "markdownDescription": "Dataset placeholder\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSetPlaceholder", + "type": "string" + } + }, + "required": [ + "DataSetArn", + "DataSetPlaceholder" + ], + "type": "object" + }, + "AWS::QuickSight::Analysis.DateTimeParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "A display name for the date\\-time parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "The values for the date\\-time parameter\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "AWS::QuickSight::Analysis.DecimalParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "A display name for the decimal parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Values": { + "items": { + "type": "number" + }, + "markdownDescription": "The values for the decimal parameter\\. \n*Required*: Yes \n*Type*: List of Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "AWS::QuickSight::Analysis.IntegerParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the integer parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Values": { + "items": { + "type": "number" + }, + "markdownDescription": "The values for the integer parameter\\. \n*Required*: Yes \n*Type*: List of Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "AWS::QuickSight::Analysis.Parameters": { + "additionalProperties": false, + "properties": { + "DateTimeParameters": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Analysis.DateTimeParameter" + }, + "markdownDescription": "The parameters that have a data type of date\\-time\\. \n*Required*: No \n*Type*: List of [DateTimeParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-datetimeparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DateTimeParameters", + "type": "array" + }, + "DecimalParameters": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Analysis.DecimalParameter" + }, + "markdownDescription": "The parameters that have a data type of decimal\\. \n*Required*: No \n*Type*: List of [DecimalParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-decimalparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DecimalParameters", + "type": "array" + }, + "IntegerParameters": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Analysis.IntegerParameter" + }, + "markdownDescription": "The parameters that have a data type of integer\\. \n*Required*: No \n*Type*: List of [IntegerParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-integerparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegerParameters", + "type": "array" + }, + "StringParameters": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Analysis.StringParameter" + }, + "markdownDescription": "The parameters that have a data type of string\\. \n*Required*: No \n*Type*: List of [StringParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-stringparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StringParameters", + "type": "array" + } + }, + "type": "object" + }, + "AWS::QuickSight::Analysis.ResourcePermission": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "markdownDescription": "The IAM action to grant or revoke permissions on\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", + "type": "array" + }, + "Principal": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the principal\\. This can be one of the following: \n+ The ARN of an Amazon QuickSight user or group associated with a data source or dataset\\. \\(This is common\\.\\)\n+ The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme\\. \\(This is common\\.\\)\n+ The ARN of an AWS account root: This is an IAM ARN rather than a Amazon QuickSight ARN\\. Use this option only to share resources \\(templates\\) across AWS accounts\\. \\(This is less common\\.\\)\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Principal", + "type": "string" + } + }, + "required": [ + "Actions", + "Principal" + ], + "type": "object" + }, + "AWS::QuickSight::Analysis.Sheet": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of a sheet\\. This name is displayed on the sheet's tab in the Amazon QuickSight console\\. \n*Required*: No \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "SheetId": { + "markdownDescription": "The unique identifier associated with a sheet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `[\\w\\-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SheetId", + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::Analysis.StringParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "A display name for a string parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "The values of a string parameter\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "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": { + "markdownDescription": "The ID of the AWS account where you want to create the dashboard\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AwsAccountId", + "type": "string" + }, + "DashboardId": { + "markdownDescription": "The ID for the dashboard, also added to the IAM policy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `[\\w\\-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DashboardId", + "type": "string" + }, + "DashboardPublishOptions": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.DashboardPublishOptions", + "markdownDescription": "Options for publishing the dashboard when you create it: \n+ `AvailabilityStatus` for `AdHocFilteringOption` \\- This status can be either `ENABLED` or `DISABLED`\\. When this is set to `DISABLED`, Amazon QuickSight disables the left filter pane on the published dashboard, which can be used for ad hoc \\(one\\-time\\) filtering\\. This option is `ENABLED` by default\\. \n+ `AvailabilityStatus` for `ExportToCSVOption` \\- This status can be either `ENABLED` or `DISABLED`\\. The visual option to export data to \\.CSV format isn't enabled when this is set to `DISABLED`\\. This option is `ENABLED` by default\\. \n+ `VisibilityState` for `SheetControlsOption` \\- This visibility state can be either `COLLAPSED` or `EXPANDED`\\. This option is `COLLAPSED` by default\\. \n*Required*: No \n*Type*: [DashboardPublishOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-dashboardpublishoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DashboardPublishOptions" + }, + "Name": { + "markdownDescription": "The display name of the dashboard\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Parameters": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.Parameters", + "markdownDescription": "The parameters for the creation of the dashboard, which you want to use to override the default settings\\. A dashboard can have any type of parameters, and some parameters might accept multiple values\\. \n*Required*: No \n*Type*: [Parameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-parameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters" + }, + "Permissions": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.ResourcePermission" + }, + "markdownDescription": "A structure that contains the permissions of the dashboard\\. You can use this structure for granting permissions by providing a list of IAM action information for each principal ARN\\. \nTo specify no permissions, omit the permissions list\\. \n*Required*: No \n*Type*: List of [ResourcePermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-resourcepermission.html) \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Permissions", + "type": "array" + }, + "SourceEntity": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.DashboardSourceEntity", + "markdownDescription": "The entity that you are using as a source when you create the dashboard\\. In `SourceEntity`, you specify the type of object that you want to use\\. You can only create a dashboard from a template, so you use a `SourceTemplate` entity\\. If you need to create a dashboard from an analysis, first convert the analysis to a template by using the `CreateTemplate` API operation\\. For `SourceTemplate`, specify the Amazon Resource Name \\(ARN\\) of the source template\\. The `SourceTemplate`ARN can contain any AWS account; and any QuickSight\\-supported AWS Region\\. \nUse the `DataSetReferences` entity within `SourceTemplate` to list the replacement datasets for the placeholders listed in the original\\. The schema in each dataset must match its placeholder\\. \n*Required*: Yes \n*Type*: [DashboardSourceEntity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-dashboardsourceentity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceEntity" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Contains a map of the key\\-value pairs for the resource tag or tags assigned to the dashboard\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "ThemeArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the theme that is being used for this dashboard\\. If you add a value for this field, it overrides the value that is used in the source entity\\. The theme ARN must exist in the same AWS account where you create the dashboard\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ThemeArn", + "type": "string" + }, + "VersionDescription": { + "markdownDescription": "A description for the first version of the dashboard being created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Availability status\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Ad hoc \\(one\\-time\\) filtering option\\. \n*Required*: No \n*Type*: [AdHocFilteringOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-adhocfilteringoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdHocFilteringOption" + }, + "ExportToCSVOption": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.ExportToCSVOption", + "markdownDescription": "Export to \\.csv option\\. \n*Required*: No \n*Type*: [ExportToCSVOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-exporttocsvoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExportToCSVOption" + }, + "SheetControlsOption": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.SheetControlsOption", + "markdownDescription": "Sheet controls option\\. \n*Required*: No \n*Type*: [SheetControlsOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-sheetcontrolsoption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SheetControlsOption" + } + }, + "type": "object" + }, + "AWS::QuickSight::Dashboard.DashboardSourceEntity": { + "additionalProperties": false, + "properties": { + "SourceTemplate": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.DashboardSourceTemplate", + "markdownDescription": "Source template\\. \n*Required*: No \n*Type*: [DashboardSourceTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-dashboardsourcetemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceTemplate" + } + }, + "type": "object" + }, + "AWS::QuickSight::Dashboard.DashboardSourceTemplate": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "DataSetReferences": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.DataSetReference" + }, + "markdownDescription": "Dataset references\\. \n*Required*: Yes \n*Type*: List of [DataSetReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-datasetreference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSetReferences", + "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": { + "markdownDescription": "Dataset Amazon Resource Name \\(ARN\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSetArn", + "type": "string" + }, + "DataSetPlaceholder": { + "markdownDescription": "Dataset placeholder\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSetPlaceholder", + "type": "string" + } + }, + "required": [ + "DataSetArn", + "DataSetPlaceholder" + ], + "type": "object" + }, + "AWS::QuickSight::Dashboard.DateTimeParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "A display name for the date\\-time parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "The values for the date\\-time parameter\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "AWS::QuickSight::Dashboard.DecimalParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "A display name for the decimal parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Values": { + "items": { + "type": "number" + }, + "markdownDescription": "The values for the decimal parameter\\. \n*Required*: Yes \n*Type*: List of Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "AWS::QuickSight::Dashboard.ExportToCSVOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "markdownDescription": "Availability status\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityStatus", + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::Dashboard.IntegerParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the integer parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Values": { + "items": { + "type": "number" + }, + "markdownDescription": "The values for the integer parameter\\. \n*Required*: Yes \n*Type*: List of Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "AWS::QuickSight::Dashboard.Parameters": { + "additionalProperties": false, + "properties": { + "DateTimeParameters": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.DateTimeParameter" + }, + "markdownDescription": "The parameters that have a data type of date\\-time\\. \n*Required*: No \n*Type*: List of [DateTimeParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-datetimeparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DateTimeParameters", + "type": "array" + }, + "DecimalParameters": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.DecimalParameter" + }, + "markdownDescription": "The parameters that have a data type of decimal\\. \n*Required*: No \n*Type*: List of [DecimalParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-decimalparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DecimalParameters", + "type": "array" + }, + "IntegerParameters": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.IntegerParameter" + }, + "markdownDescription": "The parameters that have a data type of integer\\. \n*Required*: No \n*Type*: List of [IntegerParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-integerparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntegerParameters", + "type": "array" + }, + "StringParameters": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.StringParameter" + }, + "markdownDescription": "The parameters that have a data type of string\\. \n*Required*: No \n*Type*: List of [StringParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-stringparameter.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StringParameters", + "type": "array" + } + }, + "type": "object" + }, + "AWS::QuickSight::Dashboard.ResourcePermission": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "markdownDescription": "The IAM action to grant or revoke permissions on\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", + "type": "array" + }, + "Principal": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the principal\\. This can be one of the following: \n+ The ARN of an Amazon QuickSight user or group associated with a data source or dataset\\. \\(This is common\\.\\)\n+ The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme\\. \\(This is common\\.\\)\n+ The ARN of an AWS account root: This is an IAM ARN rather than a Amazon QuickSight ARN\\. Use this option only to share resources \\(templates\\) across AWS accounts\\. \\(This is less common\\.\\)\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Visibility state\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `COLLAPSED | EXPANDED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VisibilityState", + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::Dashboard.StringParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "A display name for a string parameter\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "The values of a string parameter\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "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": { + "markdownDescription": "The AWS account ID\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AwsAccountId", + "type": "string" + }, + "ColumnGroups": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.ColumnGroup" + }, + "markdownDescription": "Groupings of columns that work together in certain Amazon QuickSight features\\. Currently, only geospatial hierarchy is supported\\. \n*Required*: No \n*Type*: List of [ColumnGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-columngroup.html) \n*Maximum*: `8` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnGroups", + "type": "array" + }, + "ColumnLevelPermissionRules": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.ColumnLevelPermissionRule" + }, + "markdownDescription": "A set of one or more definitions of a ` ColumnLevelPermissionRule `\\. \n*Required*: No \n*Type*: List of [ColumnLevelPermissionRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-columnlevelpermissionrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnLevelPermissionRules", + "type": "array" + }, + "DataSetId": { + "markdownDescription": "An ID for the dataset that you want to create\\. This ID is unique per AWS Region for each AWS account\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataSetId", + "type": "string" + }, + "DataSetUsageConfiguration": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.DataSetUsageConfiguration" + }, + "FieldFolders": { + "additionalProperties": false, + "markdownDescription": "The folder that contains fields and nested subfolders for your dataset\\. \n*Required*: No \n*Type*: Map of [FieldFolder](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-fieldfolder.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.FieldFolder" + } + }, + "title": "FieldFolders", + "type": "object" + }, + "ImportMode": { + "markdownDescription": "Indicates whether you want to import the data into SPICE\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DIRECT_QUERY | SPICE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImportMode", + "type": "string" + }, + "IngestionWaitPolicy": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.IngestionWaitPolicy", + "markdownDescription": "The wait policy to use when creating or updating a Dataset\\. The default is to wait for SPICE ingestion to finish with timeout of 36 hours\\. \n*Required*: No \n*Type*: [IngestionWaitPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-ingestionwaitpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IngestionWaitPolicy" + }, + "LogicalTableMap": { + "additionalProperties": false, + "markdownDescription": "Configures the combination and transformation of the data from the physical tables\\. \n*Required*: No \n*Type*: Map of [LogicalTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-logicaltable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.LogicalTable" + } + }, + "title": "LogicalTableMap", + "type": "object" + }, + "Name": { + "markdownDescription": "The display name for the dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Permissions": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.ResourcePermission" + }, + "markdownDescription": "A list of resource permissions on the dataset\\. \n*Required*: No \n*Type*: List of [ResourcePermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-resourcepermission.html) \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Permissions", + "type": "array" + }, + "PhysicalTableMap": { + "additionalProperties": false, + "markdownDescription": "Declares the physical tables that are available in the underlying data sources\\. \n*Required*: No \n*Type*: Map of [PhysicalTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-physicaltable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.PhysicalTable" + } + }, + "title": "PhysicalTableMap", + "type": "object" + }, + "RowLevelPermissionDataSet": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.RowLevelPermissionDataSet", + "markdownDescription": "The row\\-level security configuration for the data that you want to create\\. \n*Required*: No \n*Type*: [RowLevelPermissionDataSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-rowlevelpermissiondataset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RowLevelPermissionDataSet" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Contains a map of the key\\-value pairs for the resource tag or tags assigned to the dataset\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "A unique ID to identify a calculated column\\. During a dataset update, if the column ID of a calculated column matches that of an existing calculated column, Amazon QuickSight preserves the existing calculated column\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnId", + "type": "string" + }, + "ColumnName": { + "markdownDescription": "Column name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnName", + "type": "string" + }, + "Expression": { + "markdownDescription": "An expression that defines the calculated column\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Expression", + "type": "string" + } + }, + "required": [ + "ColumnId", + "ColumnName", + "Expression" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.CastColumnTypeOperation": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "markdownDescription": "Column name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnName", + "type": "string" + }, + "Format": { + "markdownDescription": "When casting a column from string to datetime type, you can supply a string in a format supported by Amazon QuickSight to denote the source data format\\. \n*Required*: No \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", + "type": "string" + }, + "NewColumnType": { + "markdownDescription": "New column data type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DATETIME | DECIMAL | INTEGER | STRING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NewColumnType", + "type": "string" + } + }, + "required": [ + "ColumnName", + "NewColumnType" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.ColumnDescription": { + "additionalProperties": false, + "properties": { + "Text": { + "markdownDescription": "The text of a description for a column\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Text", + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.ColumnGroup": { + "additionalProperties": false, + "properties": { + "GeoSpatialColumnGroup": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.GeoSpatialColumnGroup", + "markdownDescription": "Geospatial column group that denotes a hierarchy\\. \n*Required*: No \n*Type*: [GeoSpatialColumnGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-geospatialcolumngroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GeoSpatialColumnGroup" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.ColumnLevelPermissionRule": { + "additionalProperties": false, + "properties": { + "ColumnNames": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of column names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnNames", + "type": "array" + }, + "Principals": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of Amazon Resource Names \\(ARNs\\) for Amazon QuickSight users or groups\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Principals", + "type": "array" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.ColumnTag": { + "additionalProperties": false, + "properties": { + "ColumnDescription": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.ColumnDescription", + "markdownDescription": "A description for a column\\. \n*Required*: No \n*Type*: [ColumnDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-columndescription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnDescription" + }, + "ColumnGeographicRole": { + "markdownDescription": "A geospatial role for a column\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CITY | COUNTRY | COUNTY | LATITUDE | LONGITUDE | POSTCODE | STATE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnGeographicRole", + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.CreateColumnsOperation": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.CalculatedColumn" + }, + "markdownDescription": "Calculated columns to create\\. \n*Required*: Yes \n*Type*: List of [CalculatedColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-calculatedcolumn.html) \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Columns", + "type": "array" + } + }, + "required": [ + "Columns" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.CustomSql": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.InputColumn" + }, + "markdownDescription": "The column schema from the SQL query result set\\. \n*Required*: Yes \n*Type*: List of [InputColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-inputcolumn.html) \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Columns", + "type": "array" + }, + "DataSourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSourceArn", + "type": "string" + }, + "Name": { + "markdownDescription": "A display name for the SQL query result\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "SqlQuery": { + "markdownDescription": "The SQL query\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `65536` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "A folder has a list of columns\\. A column can only be in one folder\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Columns", + "type": "array" + }, + "Description": { + "markdownDescription": "The description for a field folder\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.FilterOperation": { + "additionalProperties": false, + "properties": { + "ConditionExpression": { + "markdownDescription": "An expression that must evaluate to a Boolean value\\. Rows for which the expression evaluates to true are kept in the dataset\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConditionExpression", + "type": "string" + } + }, + "required": [ + "ConditionExpression" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.GeoSpatialColumnGroup": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "type": "string" + }, + "markdownDescription": "Columns in this hierarchy\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `16` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Columns", + "type": "array" + }, + "CountryCode": { + "markdownDescription": "Country code\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `US` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CountryCode", + "type": "string" + }, + "Name": { + "markdownDescription": "A display name for the hierarchy\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "Columns", + "Name" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.IngestionWaitPolicy": { + "additionalProperties": false, + "properties": { + "IngestionWaitTimeInHours": { + "markdownDescription": "The maximum time \\(in hours\\) to wait for Ingestion to complete\\. Default timeout is 36 hours\\. Applicable only when `DataSetImportMode` mode is set to SPICE and `WaitForSpiceIngestion` is set to true\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IngestionWaitTimeInHours", + "type": "number" + }, + "WaitForSpiceIngestion": { + "markdownDescription": "Wait for SPICE ingestion to finish to mark dataset creation or update as successful\\. Default \\(true\\)\\. Applicable only when `DataSetImportMode` mode is set to SPICE\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WaitForSpiceIngestion", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.InputColumn": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of this column in the underlying data source\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Type": { + "markdownDescription": "The data type of the column\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BIT | BOOLEAN | DATETIME | DECIMAL | INTEGER | JSON | STRING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.JoinInstruction": { + "additionalProperties": false, + "properties": { + "LeftJoinKeyProperties": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.JoinKeyProperties", + "markdownDescription": "Join key properties of the left operand\\. \n*Required*: No \n*Type*: [JoinKeyProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-joinkeyproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LeftJoinKeyProperties" + }, + "LeftOperand": { + "markdownDescription": "The operand on the left side of a join\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[0-9a-zA-Z-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LeftOperand", + "type": "string" + }, + "OnClause": { + "markdownDescription": "The join instructions provided in the `ON` clause of a join\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnClause", + "type": "string" + }, + "RightJoinKeyProperties": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.JoinKeyProperties", + "markdownDescription": "Join key properties of the right operand\\. \n*Required*: No \n*Type*: [JoinKeyProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-joinkeyproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RightJoinKeyProperties" + }, + "RightOperand": { + "markdownDescription": "The operand on the right side of a join\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[0-9a-zA-Z-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RightOperand", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of join that it is\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `INNER | LEFT | OUTER | RIGHT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "LeftOperand", + "OnClause", + "RightOperand", + "Type" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.JoinKeyProperties": { + "additionalProperties": false, + "properties": { + "UniqueKey": { + "markdownDescription": "A value that indicates that a row in a table is uniquely identified by the columns in a join key\\. This is used by Amazon QuickSight to optimize query performance\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UniqueKey", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.LogicalTable": { + "additionalProperties": false, + "properties": { + "Alias": { + "markdownDescription": "A display name for the logical table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alias", + "type": "string" + }, + "DataTransforms": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.TransformOperation" + }, + "markdownDescription": "Transform operations that act on this logical table\\. \n*Required*: No \n*Type*: List of [TransformOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-transformoperation.html) \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataTransforms", + "type": "array" + }, + "Source": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.LogicalTableSource", + "markdownDescription": "Source of this logical table\\. \n*Required*: Yes \n*Type*: [LogicalTableSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-logicaltablesource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source" + } + }, + "required": [ + "Alias", + "Source" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.LogicalTableSource": { + "additionalProperties": false, + "properties": { + "DataSetArn": { + "type": "string" + }, + "JoinInstruction": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.JoinInstruction", + "markdownDescription": "Specifies the result of a join of two logical tables\\. \n*Required*: No \n*Type*: [JoinInstruction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-joininstruction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JoinInstruction" + }, + "PhysicalTableId": { + "markdownDescription": "Physical table ID\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[0-9a-zA-Z-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PhysicalTableId", + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.OutputColumn": { + "additionalProperties": false, + "properties": { + "Description": { + "markdownDescription": "A description for a column\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "A display name for the dataset\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Type": { + "markdownDescription": "Type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DATETIME | DECIMAL | INTEGER | STRING` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.PhysicalTable": { + "additionalProperties": false, + "properties": { + "CustomSql": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.CustomSql", + "markdownDescription": "A physical table type built from the results of the custom SQL query\\. \n*Required*: No \n*Type*: [CustomSql](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-customsql.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomSql" + }, + "RelationalTable": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.RelationalTable", + "markdownDescription": "A physical table type for relational data sources\\. \n*Required*: No \n*Type*: [RelationalTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-relationaltable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RelationalTable" + }, + "S3Source": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.S3Source", + "markdownDescription": "A physical table type for as S3 data source\\. \n*Required*: No \n*Type*: [S3Source](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-s3source.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Source" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.ProjectOperation": { + "additionalProperties": false, + "properties": { + "ProjectedColumns": { + "items": { + "type": "string" + }, + "markdownDescription": "Projected columns\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProjectedColumns", + "type": "array" + } + }, + "required": [ + "ProjectedColumns" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.RelationalTable": { + "additionalProperties": false, + "properties": { + "Catalog": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Catalog", + "type": "string" + }, + "DataSourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSourceArn", + "type": "string" + }, + "InputColumns": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.InputColumn" + }, + "markdownDescription": "The column schema of the table\\. \n*Required*: Yes \n*Type*: List of [InputColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-inputcolumn.html) \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputColumns", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the relational table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Schema": { + "markdownDescription": "The schema name\\. This name applies to certain relational database engines\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schema", + "type": "string" + } + }, + "required": [ + "DataSourceArn", + "InputColumns", + "Name" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.RenameColumnOperation": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "markdownDescription": "The name of the column to be renamed\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnName", + "type": "string" + }, + "NewColumnName": { + "markdownDescription": "The new name for the column\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NewColumnName", + "type": "string" + } + }, + "required": [ + "ColumnName", + "NewColumnName" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.ResourcePermission": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "markdownDescription": "The IAM action to grand or revoke permisions on \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", + "type": "array" + }, + "Principal": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the principal\\. This can be one of the following: \n+ The ARN of an Amazon QuickSight user or group associated with a data source or dataset\\. \\(This is common\\.\\)\n+ The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme\\. \\(This is common\\.\\)\n+ The ARN of an AWS account root: This is an IAM ARN rather than a Amazon QuickSight ARN\\. Use this option only to share resources \\(templates\\) across AWS accounts\\. \\(This is less common\\.\\)\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Principal", + "type": "string" + } + }, + "required": [ + "Actions", + "Principal" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.RowLevelPermissionDataSet": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the dataset that contains permissions for RLS\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "FormatVersion": { + "markdownDescription": "The user or group rules associated with the dataset that contains permissions for RLS\\. \nBy default, `FormatVersion` is `VERSION_1`\\. When `FormatVersion` is `VERSION_1`, `UserName` and `GroupName` are required\\. When `FormatVersion` is `VERSION_2`, `UserARN` and `GroupARN` are required, and `Namespace` must not exist\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `VERSION_1 | VERSION_2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FormatVersion", + "type": "string" + }, + "Namespace": { + "markdownDescription": "The namespace associated with the dataset that contains permissions for RLS\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9._-]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Namespace", + "type": "string" + }, + "PermissionPolicy": { + "markdownDescription": "The type of permissions to use when interpreting the permissions for RLS\\. `DENY_ACCESS` is included for backward compatibility only\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DENY_ACCESS | GRANT_ACCESS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PermissionPolicy", + "type": "string" + } + }, + "required": [ + "Arn", + "PermissionPolicy" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.S3Source": { + "additionalProperties": false, + "properties": { + "DataSourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the data source\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSourceArn", + "type": "string" + }, + "InputColumns": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.InputColumn" + }, + "markdownDescription": "A physical table type for an S3 data source\\. \nFor files that aren't JSON, only `STRING` data types are supported in input columns\\.\n*Required*: Yes \n*Type*: List of [InputColumn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-inputcolumn.html) \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InputColumns", + "type": "array" + }, + "UploadSettings": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.UploadSettings", + "markdownDescription": "Information about the format for the S3 source file or files\\. \n*Required*: No \n*Type*: [UploadSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-uploadsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UploadSettings" + } + }, + "required": [ + "DataSourceArn", + "InputColumns" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.TagColumnOperation": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "markdownDescription": "The column that this operation acts on\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ColumnName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.ColumnTag" + }, + "markdownDescription": "The dataset column tag, currently only used for geospatial type tagging\\. \nThis is not tags for the AWS tagging feature\\.\n*Required*: Yes \n*Type*: List of [ColumnTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-columntag.html) \n*Maximum*: `16` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "required": [ + "ColumnName", + "Tags" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.TransformOperation": { + "additionalProperties": false, + "properties": { + "CastColumnTypeOperation": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.CastColumnTypeOperation", + "markdownDescription": "A transform operation that casts a column to a different type\\. \n*Required*: No \n*Type*: [CastColumnTypeOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-castcolumntypeoperation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CastColumnTypeOperation" + }, + "CreateColumnsOperation": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.CreateColumnsOperation", + "markdownDescription": "An operation that creates calculated columns\\. Columns created in one such operation form a lexical closure\\. \n*Required*: No \n*Type*: [CreateColumnsOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-createcolumnsoperation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreateColumnsOperation" + }, + "FilterOperation": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.FilterOperation", + "markdownDescription": "An operation that filters rows based on some condition\\. \n*Required*: No \n*Type*: [FilterOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-filteroperation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterOperation" + }, + "ProjectOperation": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.ProjectOperation", + "markdownDescription": "An operation that projects columns\\. Operations that come after a projection can only refer to projected columns\\. \n*Required*: No \n*Type*: [ProjectOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-projectoperation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProjectOperation" + }, + "RenameColumnOperation": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.RenameColumnOperation", + "markdownDescription": "An operation that renames a column\\. \n*Required*: No \n*Type*: [RenameColumnOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-renamecolumnoperation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RenameColumnOperation" + }, + "TagColumnOperation": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.TagColumnOperation", + "markdownDescription": "An operation that tags a column with additional information\\. \n*Required*: No \n*Type*: [TagColumnOperation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dataset-tagcolumnoperation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagColumnOperation" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.UploadSettings": { + "additionalProperties": false, + "properties": { + "ContainsHeader": { + "markdownDescription": "Whether the file has a header row, or the files each have a header row\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContainsHeader", + "type": "boolean" + }, + "Delimiter": { + "markdownDescription": "The delimiter between values in the file\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Delimiter", + "type": "string" + }, + "Format": { + "markdownDescription": "File format\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CLF | CSV | ELF | JSON | TSV | XLSX` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", + "type": "string" + }, + "StartFromRow": { + "markdownDescription": "A row number to start reading data from\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartFromRow", + "type": "number" + }, + "TextQualifier": { + "markdownDescription": "Text qualifier\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DOUBLE_QUOTE | SINGLE_QUOTE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "A set of alternate data source parameters that you want to share for the credentials stored with this data source\\. The credentials are applied in tandem with the data source parameters when you copy a data source by using a create or update request\\. The API operation compares the `DataSourceParameters` structure that's in the request with the structures in the `AlternateDataSourceParameters` allow list\\. If the structures are an exact match, the request is allowed to use the credentials from this existing data source\\. If the `AlternateDataSourceParameters` list is null, the `Credentials` originally used with this `DataSourceParameters` are automatically allowed\\. \n*Required*: No \n*Type*: List of [DataSourceParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-datasourceparameters.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlternateDataSourceParameters", + "type": "array" + }, + "AwsAccountId": { + "markdownDescription": "The AWS account ID\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AwsAccountId", + "type": "string" + }, + "Credentials": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.DataSourceCredentials", + "markdownDescription": "The credentials Amazon QuickSight that uses to connect to your underlying source\\. Currently, only credentials based on user name and password are supported\\. \n*Required*: No \n*Type*: [DataSourceCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-datasourcecredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Credentials" + }, + "DataSourceId": { + "markdownDescription": "An ID for the data source\\. This ID is unique per AWS Region for each AWS account\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataSourceId", + "type": "string" + }, + "DataSourceParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.DataSourceParameters", + "markdownDescription": "The parameters that Amazon QuickSight uses to connect to your underlying source\\. \n*Required*: No \n*Type*: [DataSourceParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-datasourceparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSourceParameters" + }, + "ErrorInfo": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.DataSourceErrorInfo", + "markdownDescription": "Error information from the last update or the creation of the data source\\. \n*Required*: No \n*Type*: [DataSourceErrorInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-datasourceerrorinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorInfo" + }, + "Name": { + "markdownDescription": "A display name for the data source\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Permissions": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.ResourcePermission" + }, + "markdownDescription": "A list of resource permissions on the data source\\. \n*Required*: No \n*Type*: List of [ResourcePermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-resourcepermission.html) \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Permissions", + "type": "array" + }, + "SslProperties": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.SslProperties", + "markdownDescription": "Secure Socket Layer \\(SSL\\) properties that apply when Amazon QuickSight connects to your underlying source\\. \n*Required*: No \n*Type*: [SslProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-sslproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SslProperties" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Contains a map of the key\\-value pairs for the resource tag or tags assigned to the data source\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Type": { + "markdownDescription": "The type of the data source\\. To return a list of all data sources, use `ListDataSources`\\. \nUse `AMAZON_ELASTICSEARCH` for Amazon OpenSearch Service\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADOBE_ANALYTICS | AMAZON_ELASTICSEARCH | AMAZON_OPENSEARCH | ATHENA | AURORA | AURORA_POSTGRESQL | AWS_IOT_ANALYTICS | EXASOL | GITHUB | JIRA | MARIADB | MYSQL | ORACLE | POSTGRESQL | PRESTO | REDSHIFT | S3 | SALESFORCE | SERVICENOW | SNOWFLAKE | SPARK | SQLSERVER | TERADATA | TIMESTREAM | TWITTER` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + }, + "VpcConnectionProperties": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.VpcConnectionProperties", + "markdownDescription": "Use this parameter only when you want Amazon QuickSight to use a VPC connection when connecting to your underlying source\\. \n*Required*: No \n*Type*: [VpcConnectionProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-vpcconnectionproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The OpenSearch domain\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Domain", + "type": "string" + } + }, + "required": [ + "Domain" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.AmazonOpenSearchParameters": { + "additionalProperties": false, + "properties": { + "Domain": { + "markdownDescription": "The OpenSearch domain\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Domain", + "type": "string" + } + }, + "required": [ + "Domain" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.AthenaParameters": { + "additionalProperties": false, + "properties": { + "WorkGroup": { + "markdownDescription": "The workgroup that Amazon Athena uses\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WorkGroup", + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSource.AuroraParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "markdownDescription": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", + "type": "string" + }, + "Host": { + "markdownDescription": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", + "type": "string" + }, + "Port": { + "markdownDescription": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + } + }, + "required": [ + "Database", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.AuroraPostgreSqlParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "markdownDescription": "The Amazon Aurora PostgreSQL database to connect to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", + "type": "string" + }, + "Host": { + "markdownDescription": "The Amazon Aurora PostgreSQL\\-Compatible host to connect to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", + "type": "string" + }, + "Port": { + "markdownDescription": "The port that Amazon Aurora PostgreSQL is listening on\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + } + }, + "required": [ + "Database", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.CredentialPair": { + "additionalProperties": false, + "properties": { + "AlternateDataSourceParameters": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.DataSourceParameters" + }, + "markdownDescription": "A set of alternate data source parameters that you want to share for these credentials\\. The credentials are applied in tandem with the data source parameters when you copy a data source by using a create or update request\\. The API operation compares the `DataSourceParameters` structure that's in the request with the structures in the `AlternateDataSourceParameters` allow list\\. If the structures are an exact match, the request is allowed to use the new data source with the existing credentials\\. If the `AlternateDataSourceParameters` list is null, the `DataSourceParameters` originally used with these `Credentials` is automatically allowed\\. \n*Required*: No \n*Type*: List of [DataSourceParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-datasourceparameters.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlternateDataSourceParameters", + "type": "array" + }, + "Password": { + "markdownDescription": "Password\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Password", + "type": "string" + }, + "Username": { + "markdownDescription": "User name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Username", + "type": "string" + } + }, + "required": [ + "Password", + "Username" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.DataSourceCredentials": { + "additionalProperties": false, + "properties": { + "CopySourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of a data source that has the credential pair that you want to use\\. When `CopySourceArn` is not null, the credential pair from the data source in the ARN is used as the credentials for the `DataSourceCredentials` structure\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:[-a-z0-9]*:quicksight:[-a-z0-9]*:[0-9]{12}:datasource/.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CopySourceArn", + "type": "string" + }, + "CredentialPair": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.CredentialPair", + "markdownDescription": "Credential pair\\. For more information, see ` [CredentialPair](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_CredentialPair.html) `\\. \n*Required*: No \n*Type*: [CredentialPair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-credentialpair.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CredentialPair" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSource.DataSourceErrorInfo": { + "additionalProperties": false, + "properties": { + "Message": { + "markdownDescription": "Error message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Message", + "type": "string" + }, + "Type": { + "markdownDescription": "Error type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ACCESS_DENIED | CONFLICT | COPY_SOURCE_NOT_FOUND | ENGINE_VERSION_NOT_SUPPORTED | GENERIC_SQL_FAILURE | TIMEOUT | UNKNOWN | UNKNOWN_HOST` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSource.DataSourceParameters": { + "additionalProperties": false, + "properties": { + "AmazonElasticsearchParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.AmazonElasticsearchParameters", + "markdownDescription": "The parameters for OpenSearch\\. \n*Required*: No \n*Type*: [AmazonElasticsearchParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-amazonelasticsearchparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AmazonElasticsearchParameters" + }, + "AmazonOpenSearchParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.AmazonOpenSearchParameters", + "markdownDescription": "The parameters for OpenSearch\\. \n*Required*: No \n*Type*: [AmazonOpenSearchParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-amazonopensearchparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AmazonOpenSearchParameters" + }, + "AthenaParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.AthenaParameters", + "markdownDescription": "The parameters for Amazon Athena\\. \n*Required*: No \n*Type*: [AthenaParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-athenaparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AthenaParameters" + }, + "AuroraParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.AuroraParameters", + "markdownDescription": "The parameters for Amazon Aurora MySQL\\. \n*Required*: No \n*Type*: [AuroraParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-auroraparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuroraParameters" + }, + "AuroraPostgreSqlParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.AuroraPostgreSqlParameters", + "markdownDescription": "The parameters for Amazon Aurora\\. \n*Required*: No \n*Type*: [AuroraPostgreSqlParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-aurorapostgresqlparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuroraPostgreSqlParameters" + }, + "DatabricksParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.DatabricksParameters" + }, + "MariaDbParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.MariaDbParameters", + "markdownDescription": "The parameters for MariaDB\\. \n*Required*: No \n*Type*: [MariaDbParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-mariadbparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MariaDbParameters" + }, + "MySqlParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.MySqlParameters", + "markdownDescription": "The parameters for MySQL\\. \n*Required*: No \n*Type*: [MySqlParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-mysqlparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MySqlParameters" + }, + "OracleParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.OracleParameters", + "markdownDescription": "Oracle parameters\\. \n*Required*: No \n*Type*: [OracleParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-oracleparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OracleParameters" + }, + "PostgreSqlParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.PostgreSqlParameters", + "markdownDescription": "The parameters for PostgreSQL\\. \n*Required*: No \n*Type*: [PostgreSqlParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-postgresqlparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PostgreSqlParameters" + }, + "PrestoParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.PrestoParameters", + "markdownDescription": "The parameters for Presto\\. \n*Required*: No \n*Type*: [PrestoParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-prestoparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrestoParameters" + }, + "RdsParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.RdsParameters", + "markdownDescription": "The parameters for Amazon RDS\\. \n*Required*: No \n*Type*: [RdsParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-rdsparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RdsParameters" + }, + "RedshiftParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.RedshiftParameters", + "markdownDescription": "The parameters for Amazon Redshift\\. \n*Required*: No \n*Type*: [RedshiftParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-redshiftparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedshiftParameters" + }, + "S3Parameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.S3Parameters", + "markdownDescription": "The parameters for S3\\. \n*Required*: No \n*Type*: [S3Parameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-s3parameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Parameters" + }, + "SnowflakeParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.SnowflakeParameters", + "markdownDescription": "The parameters for Snowflake\\. \n*Required*: No \n*Type*: [SnowflakeParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-snowflakeparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnowflakeParameters" + }, + "SparkParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.SparkParameters", + "markdownDescription": "The parameters for Spark\\. \n*Required*: No \n*Type*: [SparkParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-sparkparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SparkParameters" + }, + "SqlServerParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.SqlServerParameters", + "markdownDescription": "The parameters for SQL Server\\. \n*Required*: No \n*Type*: [SqlServerParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-sqlserverparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SqlServerParameters" + }, + "TeradataParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.TeradataParameters", + "markdownDescription": "The parameters for Teradata\\. \n*Required*: No \n*Type*: [TeradataParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-teradataparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Amazon S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", + "type": "string" + }, + "Key": { + "markdownDescription": "Amazon S3 key that identifies an object\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.MariaDbParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "markdownDescription": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", + "type": "string" + }, + "Host": { + "markdownDescription": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", + "type": "string" + }, + "Port": { + "markdownDescription": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + } + }, + "required": [ + "Database", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.MySqlParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "markdownDescription": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", + "type": "string" + }, + "Host": { + "markdownDescription": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", + "type": "string" + }, + "Port": { + "markdownDescription": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + } + }, + "required": [ + "Database", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.OracleParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "markdownDescription": "Database\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", + "type": "string" + }, + "Host": { + "markdownDescription": "Host\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", + "type": "string" + }, + "Port": { + "markdownDescription": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + } + }, + "required": [ + "Database", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.PostgreSqlParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "markdownDescription": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", + "type": "string" + }, + "Host": { + "markdownDescription": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", + "type": "string" + }, + "Port": { + "markdownDescription": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + } + }, + "required": [ + "Database", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.PrestoParameters": { + "additionalProperties": false, + "properties": { + "Catalog": { + "markdownDescription": "Catalog\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Catalog", + "type": "string" + }, + "Host": { + "markdownDescription": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", + "type": "string" + }, + "Port": { + "markdownDescription": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + } + }, + "required": [ + "Catalog", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.RdsParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "markdownDescription": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", + "type": "string" + }, + "InstanceId": { + "markdownDescription": "Instance ID\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceId", + "type": "string" + } + }, + "required": [ + "Database", + "InstanceId" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.RedshiftParameters": { + "additionalProperties": false, + "properties": { + "ClusterId": { + "markdownDescription": "Cluster ID\\. This field can be blank if the `Host` and `Port` are provided\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterId", + "type": "string" + }, + "Database": { + "markdownDescription": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", + "type": "string" + }, + "Host": { + "markdownDescription": "Host\\. This field can be blank if `ClusterId` is provided\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", + "type": "string" + }, + "Port": { + "markdownDescription": "Port\\. This field can be blank if the `ClusterId` is provided\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + } + }, + "required": [ + "Database" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.ResourcePermission": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "markdownDescription": "The IAM action to grant or revoke permissions on\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", + "type": "array" + }, + "Principal": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the principal\\. This can be one of the following: \n+ The ARN of an Amazon QuickSight user or group associated with a data source or dataset\\. \\(This is common\\.\\)\n+ The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme\\. \\(This is common\\.\\)\n+ The ARN of an AWS account root: This is an IAM ARN rather than a Amazon QuickSight ARN\\. Use this option only to share resources \\(templates\\) across AWS accounts\\. \\(This is less common\\.\\)\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Principal", + "type": "string" + } + }, + "required": [ + "Actions", + "Principal" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.S3Parameters": { + "additionalProperties": false, + "properties": { + "ManifestFileLocation": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.ManifestFileLocation", + "markdownDescription": "Location of the Amazon S3 manifest file\\. This is NULL if the manifest file was uploaded into Amazon QuickSight\\. \n*Required*: Yes \n*Type*: [ManifestFileLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-manifestfilelocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManifestFileLocation" + } + }, + "required": [ + "ManifestFileLocation" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.SnowflakeParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "markdownDescription": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", + "type": "string" + }, + "Host": { + "markdownDescription": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", + "type": "string" + }, + "Warehouse": { + "markdownDescription": "Warehouse\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Warehouse", + "type": "string" + } + }, + "required": [ + "Database", + "Host", + "Warehouse" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.SparkParameters": { + "additionalProperties": false, + "properties": { + "Host": { + "markdownDescription": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", + "type": "string" + }, + "Port": { + "markdownDescription": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + } + }, + "required": [ + "Host", + "Port" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.SqlServerParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "markdownDescription": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", + "type": "string" + }, + "Host": { + "markdownDescription": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", + "type": "string" + }, + "Port": { + "markdownDescription": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + } + }, + "required": [ + "Database", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.SslProperties": { + "additionalProperties": false, + "properties": { + "DisableSsl": { + "markdownDescription": "A Boolean option to control whether SSL should be disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableSsl", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSource.TeradataParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "markdownDescription": "Database\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Database", + "type": "string" + }, + "Host": { + "markdownDescription": "Host\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", + "type": "string" + }, + "Port": { + "markdownDescription": "Port\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + } + }, + "required": [ + "Database", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.VpcConnectionProperties": { + "additionalProperties": false, + "properties": { + "VpcConnectionArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the VPC connection\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ID for the AWS account that the group is in\\. You use the ID for the AWS account that contains your Amazon QuickSight account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AwsAccountId", + "type": "string" + }, + "Name": { + "markdownDescription": "A display name for the template\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Permissions": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Template.ResourcePermission" + }, + "markdownDescription": "A list of resource permissions to be set on the template\\. \n*Required*: No \n*Type*: List of [ResourcePermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-resourcepermission.html) \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Permissions", + "type": "array" + }, + "SourceEntity": { + "$ref": "#/definitions/AWS::QuickSight::Template.TemplateSourceEntity", + "markdownDescription": "The entity that you are using as a source when you create the template\\. In `SourceEntity`, you specify the type of object you're using as source: `SourceTemplate` for a template or `SourceAnalysis` for an analysis\\. Both of these require an Amazon Resource Name \\(ARN\\)\\. For `SourceTemplate`, specify the ARN of the source template\\. For `SourceAnalysis`, specify the ARN of the source analysis\\. The `SourceTemplate` ARN can contain any AWS account and any Amazon QuickSight\\-supported AWS Region\\. \nUse the `DataSetReferences` entity within `SourceTemplate` or `SourceAnalysis` to list the replacement datasets for the placeholders listed in the original\\. The schema in each dataset must match its placeholder\\. \n*Required*: Yes \n*Type*: [TemplateSourceEntity](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-templatesourceentity.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceEntity" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Contains a map of the key\\-value pairs for the resource tag or tags assigned to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TemplateId": { + "markdownDescription": "An ID for the template that you want to create\\. This template is unique per AWS Region; in each AWS account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `[\\w\\-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TemplateId", + "type": "string" + }, + "VersionDescription": { + "markdownDescription": "A description of the current template version being created\\. This API operation creates the first version of the template\\. Every time `UpdateTemplate` is called, a new version is created\\. Each version of the template maintains a description of the version in the `VersionDescription` field\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Dataset Amazon Resource Name \\(ARN\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSetArn", + "type": "string" + }, + "DataSetPlaceholder": { + "markdownDescription": "Dataset placeholder\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The IAM action to grant or revoke permissions on\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", + "type": "array" + }, + "Principal": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the principal\\. This can be one of the following: \n+ The ARN of an Amazon QuickSight user or group associated with a data source or dataset\\. \\(This is common\\.\\)\n+ The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme\\. \\(This is common\\.\\)\n+ The ARN of an AWS account root: This is an IAM ARN rather than a Amazon QuickSight ARN\\. Use this option only to share resources \\(templates\\) across AWS accounts\\. \\(This is less common\\.\\)\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "DataSetReferences": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Template.DataSetReference" + }, + "markdownDescription": "A structure containing information about the dataset references used as placeholders in the template\\. \n*Required*: Yes \n*Type*: List of [DataSetReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-datasetreference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataSetReferences", + "type": "array" + } + }, + "required": [ + "Arn", + "DataSetReferences" + ], + "type": "object" + }, + "AWS::QuickSight::Template.TemplateSourceEntity": { + "additionalProperties": false, + "properties": { + "SourceAnalysis": { + "$ref": "#/definitions/AWS::QuickSight::Template.TemplateSourceAnalysis", + "markdownDescription": "The source analysis, if it is based on an analysis\\. \n*Required*: No \n*Type*: [TemplateSourceAnalysis](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-templatesourceanalysis.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceAnalysis" + }, + "SourceTemplate": { + "$ref": "#/definitions/AWS::QuickSight::Template.TemplateSourceTemplate", + "markdownDescription": "The source template, if it is based on an template\\. \n*Required*: No \n*Type*: [TemplateSourceTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-templatesourcetemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceTemplate" + } + }, + "type": "object" + }, + "AWS::QuickSight::Template.TemplateSourceTemplate": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ID of the AWS account where you want to store the new theme\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AwsAccountId", + "type": "string" + }, + "BaseThemeId": { + "markdownDescription": "The ID of the theme that a custom theme will inherit from\\. All themes inherit from one of the starting themes defined by Amazon QuickSight\\. For a list of the starting themes, use `ListThemes` or choose **Themes** from within an analysis\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `[\\w\\-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaseThemeId", + "type": "string" + }, + "Configuration": { + "$ref": "#/definitions/AWS::QuickSight::Theme.ThemeConfiguration", + "markdownDescription": "The theme configuration, which contains the theme display properties\\. \n*Required*: No \n*Type*: [ThemeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-themeconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configuration" + }, + "Name": { + "markdownDescription": "A display name for the theme\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Permissions": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Theme.ResourcePermission" + }, + "markdownDescription": "A valid grouping of resource permissions to apply to the new theme\\. \n*Required*: No \n*Type*: List of [ResourcePermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-resourcepermission.html) \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Permissions", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A map of the key\\-value pairs for the resource tag or tags that you want to add to the resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "ThemeId": { + "markdownDescription": "An ID for the theme that you want to create\\. The theme ID is unique per AWS Region in each AWS account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `[\\w\\-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ThemeId", + "type": "string" + }, + "VersionDescription": { + "markdownDescription": "A description of the first version of the theme that you're creating\\. Every time `UpdateTheme` is called, a new version is created\\. Each version of the theme has a description of the version in the `VersionDescription` field\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The option to enable display of borders for visuals\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Show", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::QuickSight::Theme.DataColorPalette": { + "additionalProperties": false, + "properties": { + "Colors": { + "items": { + "type": "string" + }, + "markdownDescription": "The hexadecimal codes for the colors\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Colors", + "type": "array" + }, + "EmptyFillColor": { + "markdownDescription": "The hexadecimal code of a color that applies to charts where a lack of data is highlighted\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EmptyFillColor", + "type": "string" + }, + "MinMaxGradient": { + "items": { + "type": "string" + }, + "markdownDescription": "The minimum and maximum hexadecimal codes that describe a color gradient\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinMaxGradient", + "type": "array" + } + }, + "type": "object" + }, + "AWS::QuickSight::Theme.Font": { + "additionalProperties": false, + "properties": { + "FontFamily": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FontFamily", + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::Theme.GutterStyle": { + "additionalProperties": false, + "properties": { + "Show": { + "markdownDescription": "This Boolean value controls whether to display a gutter space between sheet tiles\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Show", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::QuickSight::Theme.MarginStyle": { + "additionalProperties": false, + "properties": { + "Show": { + "markdownDescription": "This Boolean value controls whether to display sheet margins\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Show", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::QuickSight::Theme.ResourcePermission": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "markdownDescription": "The IAM action to grant or revoke permissions on\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", + "type": "array" + }, + "Principal": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the principal\\. This can be one of the following: \n+ The ARN of an Amazon QuickSight user or group associated with a data source or dataset\\. \\(This is common\\.\\)\n+ The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme\\. \\(This is common\\.\\)\n+ The ARN of an AWS account root: This is an IAM ARN rather than a Amazon QuickSight ARN\\. Use this option only to share resources \\(templates\\) across AWS accounts\\. \\(This is less common\\.\\)\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Principal", + "type": "string" + } + }, + "required": [ + "Actions", + "Principal" + ], + "type": "object" + }, + "AWS::QuickSight::Theme.SheetStyle": { + "additionalProperties": false, + "properties": { + "Tile": { + "$ref": "#/definitions/AWS::QuickSight::Theme.TileStyle", + "markdownDescription": "The display options for tiles\\. \n*Required*: No \n*Type*: [TileStyle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-tilestyle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tile" + }, + "TileLayout": { + "$ref": "#/definitions/AWS::QuickSight::Theme.TileLayoutStyle", + "markdownDescription": "The layout options for tiles\\. \n*Required*: No \n*Type*: [TileLayoutStyle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-tilelayoutstyle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TileLayout" + } + }, + "type": "object" + }, + "AWS::QuickSight::Theme.ThemeConfiguration": { + "additionalProperties": false, + "properties": { + "DataColorPalette": { + "$ref": "#/definitions/AWS::QuickSight::Theme.DataColorPalette", + "markdownDescription": "Color properties that apply to chart data colors\\. \n*Required*: No \n*Type*: [DataColorPalette](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-datacolorpalette.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataColorPalette" + }, + "Sheet": { + "$ref": "#/definitions/AWS::QuickSight::Theme.SheetStyle", + "markdownDescription": "Display options related to sheets\\. \n*Required*: No \n*Type*: [SheetStyle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-sheetstyle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sheet" + }, + "Typography": { + "$ref": "#/definitions/AWS::QuickSight::Theme.Typography", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [Typography](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-typography.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Typography" + }, + "UIColorPalette": { + "$ref": "#/definitions/AWS::QuickSight::Theme.UIColorPalette", + "markdownDescription": "Color properties that apply to the UI and to charts, excluding the colors that apply to data\\. \n*Required*: No \n*Type*: [UIColorPalette](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-uicolorpalette.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The gutter settings that apply between tiles\\. \n*Required*: No \n*Type*: [GutterStyle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-gutterstyle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Gutter" + }, + "Margin": { + "$ref": "#/definitions/AWS::QuickSight::Theme.MarginStyle", + "markdownDescription": "The margin settings that apply around the outside edge of sheets\\. \n*Required*: No \n*Type*: [MarginStyle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-marginstyle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Margin" + } + }, + "type": "object" + }, + "AWS::QuickSight::Theme.TileStyle": { + "additionalProperties": false, + "properties": { + "Border": { + "$ref": "#/definitions/AWS::QuickSight::Theme.BorderStyle", + "markdownDescription": "The border around a tile\\. \n*Required*: No \n*Type*: [BorderStyle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-borderstyle.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Border" + } + }, + "type": "object" + }, + "AWS::QuickSight::Theme.Typography": { + "additionalProperties": false, + "properties": { + "FontFamilies": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Theme.Font" + }, + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: List of [Font](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-font.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FontFamilies", + "type": "array" + } + }, + "type": "object" + }, + "AWS::QuickSight::Theme.UIColorPalette": { + "additionalProperties": false, + "properties": { + "Accent": { + "markdownDescription": "This color is that applies to selected states and buttons\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Accent", + "type": "string" + }, + "AccentForeground": { + "markdownDescription": "The foreground color that applies to any text or other elements that appear over the accent color\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccentForeground", + "type": "string" + }, + "Danger": { + "markdownDescription": "The color that applies to error messages\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Danger", + "type": "string" + }, + "DangerForeground": { + "markdownDescription": "The foreground color that applies to any text or other elements that appear over the error color\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DangerForeground", + "type": "string" + }, + "Dimension": { + "markdownDescription": "The color that applies to the names of fields that are identified as dimensions\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Dimension", + "type": "string" + }, + "DimensionForeground": { + "markdownDescription": "The foreground color that applies to any text or other elements that appear over the dimension color\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DimensionForeground", + "type": "string" + }, + "Measure": { + "markdownDescription": "The color that applies to the names of fields that are identified as measures\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Measure", + "type": "string" + }, + "MeasureForeground": { + "markdownDescription": "The foreground color that applies to any text or other elements that appear over the measure color\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MeasureForeground", + "type": "string" + }, + "PrimaryBackground": { + "markdownDescription": "The background color that applies to visuals and other high emphasis UI\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrimaryBackground", + "type": "string" + }, + "PrimaryForeground": { + "markdownDescription": "The color of text and other foreground elements that appear over the primary background regions, such as grid lines, borders, table banding, icons, and so on\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrimaryForeground", + "type": "string" + }, + "SecondaryBackground": { + "markdownDescription": "The background color that applies to the sheet background and sheet controls\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryBackground", + "type": "string" + }, + "SecondaryForeground": { + "markdownDescription": "The foreground color that applies to any sheet title, sheet control text, or UI that appears over the secondary background\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryForeground", + "type": "string" + }, + "Success": { + "markdownDescription": "The color that applies to success messages, for example the check mark for a successful download\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Success", + "type": "string" + }, + "SuccessForeground": { + "markdownDescription": "The foreground color that applies to any text or other elements that appear over the success color\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuccessForeground", + "type": "string" + }, + "Warning": { + "markdownDescription": "This color that applies to warning and informational messages\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Warning", + "type": "string" + }, + "WarningForeground": { + "markdownDescription": "The foreground color that applies to any text or other elements that appear over the warning color\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^#[A-F0-9]{6}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Specifies whether principals outside your organization in AWS Organizations can be associated with a resource share\\. A value of `true` lets you share with individual AWS accounts that are *not* in your organization\\. A value of `false` only has meaning if your account is a member of an AWS Organization\\. The default value is `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowExternalPrincipals", + "type": "boolean" + }, + "Name": { + "markdownDescription": "Specifies the name of the resource share\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "PermissionArns": { + "items": { + "type": "string" + }, + "markdownDescription": "Specifies the [Amazon Resource Names \\(ARNs\\)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the AWS RAM permission to associate with the resource share\\. If you do not specify an ARN for the permission, AWS RAM automatically attaches the default version of the permission for each resource type\\. You can associate only one permission with each resource type included in the resource share\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PermissionArns", + "type": "array" + }, + "Principals": { + "items": { + "type": "string" + }, + "markdownDescription": "Specifies a list of one or more principals to associate with the resource share\\. \nYou can include the following values: \n+ An AWS account ID, for example: `123456789012` \n+ An [Amazon Resoure Name \\(ARN\\)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of an organization in AWS Organizations, for example: `arn:aws:organizations::123456789012:organization/o-exampleorgid` \n+ An ARN of an organizational unit \\(OU\\) in AWS Organizations, for example: `arn:aws:organizations::123456789012:ou/o-exampleorgid/ou-examplerootid-exampleouid123` \n+ An ARN of an IAM role, for example: `arn:aws:iam::123456789012:role/rolename` \n+ An ARN of an IAM user, for example: `arn:aws:iam::123456789012user/username` \nNot all resource types can be shared with IAM roles and users\\. For more information, see [Sharing with IAM roles and users](https://docs.aws.amazon.com/ram/latest/userguide/permissions.html#permissions-rbp-supported-resource-types) in the * AWS Resource Access Manager User Guide*\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Principals", + "type": "array" + }, + "ResourceArns": { + "items": { + "type": "string" + }, + "markdownDescription": "Specifies a list of one or more ARNs of the resources to associate with the resource share\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceArns", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Specifies one or more tags to attach to the resource share itself\\. It doesn't attach the tags to the resources associated with the resource share\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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" + }, + "markdownDescription": "Provides a list of the AWS Identity and Access Management \\(IAM\\) roles that are associated with the DB cluster\\. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon Web Services on your behalf\\. \n*Required*: No \n*Type*: List of [DBClusterRole](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-dbclusterrole.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociatedRoles", + "type": "array" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of Availability Zones \\(AZs\\) where instances in the DB cluster can be created\\. For information on AWS Regions and Availability Zones, see [Choosing the Regions and Availability Zones](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.RegionsAndAvailabilityZones.html) in the *Amazon Aurora User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZones", + "type": "array" + }, + "BacktrackWindow": { + "markdownDescription": "The target backtrack window, in seconds\\. To disable backtracking, set this value to 0\\. \nCurrently, Backtrack is only supported for Aurora MySQL DB clusters\\.\nDefault: 0 \nConstraints: \n+ If specified, this value must be set to a number from 0 to 259,200 \\(72 hours\\)\\.\n*Required*: No \n*Type*: Long \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BacktrackWindow", + "type": "number" + }, + "BackupRetentionPeriod": { + "markdownDescription": "The number of days for which automated backups are retained\\. \nDefault: 1 \nConstraints: \n+ Must be a value from 1 to 35\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BackupRetentionPeriod", + "type": "number" + }, + "CopyTagsToSnapshot": { + "markdownDescription": "A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster\\. The default is not to copy them\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CopyTagsToSnapshot", + "type": "boolean" + }, + "DBClusterIdentifier": { + "markdownDescription": "The DB cluster identifier\\. This parameter is stored as a lowercase string\\. \nConstraints: \n+ Must contain from 1 to 63 letters, numbers, or hyphens\\.\n+ First character must be a letter\\.\n+ Can't end with a hyphen or contain two consecutive hyphens\\.\nExample: `my-cluster1` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBClusterIdentifier", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "markdownDescription": "The name of the DB cluster parameter group to associate with this DB cluster\\. \nIf you apply a parameter group to an existing DB cluster, then its DB instances might need to reboot\\. This can result in an outage while the DB instances are rebooting\\. \nIf you apply a change to parameter group associated with a stopped DB cluster, then the update stack waits until the DB cluster is started\\.\nTo list all of the available DB cluster parameter group names, use the following command: \n`aws rds describe-db-cluster-parameter-groups --query \"DBClusterParameterGroups[].DBClusterParameterGroupName\" --output text` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBClusterParameterGroupName", + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "markdownDescription": "A DB subnet group that you want to associate with this DB cluster\\. \nIf you are restoring a DB cluster to a point in time with `RestoreType` set to `copy-on-write`, and don't specify a DB subnet group name, then the DB cluster is restored with a default DB subnet group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBSubnetGroupName", + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "markdownDescription": "The name of your database\\. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster\\. For naming constraints, see [Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon Aurora User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatabaseName", + "type": "string" + }, + "DeletionProtection": { + "markdownDescription": "A value that indicates whether the DB cluster has deletion protection enabled\\. The database can't be deleted when deletion protection is enabled\\. By default, deletion protection is disabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeletionProtection", + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of log types that need to be enabled for exporting to CloudWatch Logs\\. The values in the list depend on the DB engine being used\\. For more information, see [ Publishing Database Logs to Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) in the *Amazon Aurora User Guide*\\. \n **Aurora MySQL** \nValid values: `audit`, `error`, `general`, `slowquery` \n **Aurora PostgreSQL** \nValid values: `postgresql` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableCloudwatchLogsExports", + "type": "array" + }, + "EnableHttpEndpoint": { + "markdownDescription": "A value that indicates whether to enable the HTTP endpoint for an Aurora Serverless DB cluster\\. By default, the HTTP endpoint is disabled\\. \nWhen enabled, the HTTP endpoint provides a connectionless web service API for running SQL queries on the Aurora Serverless DB cluster\\. You can also query your database from inside the RDS console with the query editor\\. \nFor more information, see [Using the Data API for Aurora Serverless](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon Aurora User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableHttpEndpoint", + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "markdownDescription": "A value that indicates whether to enable mapping of AWS Identity and Access Management \\(IAM\\) accounts to database accounts\\. By default, mapping is disabled\\. \nFor more information, see [ IAM Database Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html) in the *Amazon Aurora User Guide\\.* \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableIAMDatabaseAuthentication", + "type": "boolean" + }, + "Engine": { + "markdownDescription": "The name of the database engine to be used for this DB cluster\\. \nValid Values: `aurora` \\(for MySQL 5\\.6\\-compatible Aurora\\), `aurora-mysql` \\(for MySQL 5\\.7\\-compatible Aurora\\), and `aurora-postgresql` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Engine", + "type": "string" + }, + "EngineMode": { + "markdownDescription": "The DB engine mode of the DB cluster, either `provisioned`, `serverless`, `parallelquery`, `global`, or `multimaster`\\. \nThe `parallelquery` engine mode isn't required for Aurora MySQL version 1\\.23 and higher 1\\.x versions, and version 2\\.09 and higher 2\\.x versions\\. \nThe `global` engine mode isn't required for Aurora MySQL version 1\\.22 and higher 1\\.x versions, and `global` engine mode isn't required for any 2\\.x versions\\. \nThe `multimaster` engine mode only applies for DB clusters created with Aurora MySQL version 5\\.6\\.10a\\. \nFor Aurora PostgreSQL, the `global` engine mode isn't required, and both the `parallelquery` and the `multimaster` engine modes currently aren't supported\\. \nLimitations and requirements apply to some DB engine modes\\. For more information, see the following sections in the *Amazon Aurora User Guide*: \n+ [ Limitations of Aurora Serverless](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.limitations) \n+ [ Limitations of Parallel Query](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-mysql-parallel-query.html#aurora-mysql-parallel-query-limitations) \n+ [ Limitations of Aurora Global Databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database.limitations) \n+ [ Limitations of Multi\\-Master Clusters](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-multi-master.html#aurora-multi-master-limitations) \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineMode", + "type": "string" + }, + "EngineVersion": { + "markdownDescription": "The version number of the database engine to use\\. \nTo list all of the available engine versions for `aurora` \\(for MySQL 5\\.6\\-compatible Aurora\\), use the following command: \n`aws rds describe-db-engine-versions --engine aurora --query \"DBEngineVersions[].EngineVersion\"` \nTo list all of the available engine versions for `aurora-mysql` \\(for MySQL 5\\.7\\-compatible Aurora\\), use the following command: \n`aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"` \nTo list all of the available engine versions for `aurora-postgresql`, use the following command: \n`aws rds describe-db-engine-versions --engine aurora-postgresql --query \"DBEngineVersions[].EngineVersion\"` \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "EngineVersion", + "type": "string" + }, + "GlobalClusterIdentifier": { + "markdownDescription": "If you are configuring an Aurora global database cluster and want your Aurora DB cluster to be a secondary member in the global database cluster, specify the global cluster ID of the global database cluster\\. To define the primary database cluster of the global cluster, use the [AWS::RDS::GlobalCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html) resource\\. \n If you aren't configuring a global database cluster, don't specify this property\\. \nTo remove the DB cluster from a global database cluster, specify an empty value for the `GlobalClusterIdentifier` property\\.\nFor information about Aurora global databases, see [ Working with Amazon Aurora Global Databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) in the *Amazon Aurora User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "GlobalClusterIdentifier", + "type": "string" + }, + "Iops": { + "type": "number" + }, + "KmsKeyId": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS KMS key that is used to encrypt the database instances in the DB cluster, such as `arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef`\\. If you enable the `StorageEncrypted` property but don't specify this property, the default KMS key is used\\. If you specify this property, you must set the `StorageEncrypted` property to `true`\\. \nIf you specify the `SnapshotIdentifier` property, the `StorageEncrypted` property value is inherited from the snapshot, and if the DB cluster is encrypted, the specified `KmsKeyId` property is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "markdownDescription": "The master password for the DB instance\\. \nIf you specify the `SourceDBClusterIdentifier` or `SnapshotIdentifier` property, don't specify this property\\. The value is inherited from the source DB instance or snapshot\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MasterUserPassword", + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/AWS::RDS::DBCluster.MasterUserSecret" + }, + "MasterUsername": { + "markdownDescription": "The name of the master user for the DB cluster\\. \nIf you specify the `SourceDBClusterIdentifier` or `SnapshotIdentifier` property, don't specify this property\\. The value is inherited from the source DB instance or snapshot\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MasterUsername", + "type": "string" + }, + "MonitoringInterval": { + "type": "number" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "number" + }, + "Port": { + "markdownDescription": "The port number on which the DB instances in the DB cluster accept connections\\. \nDefault: \n+ When `EngineMode` is `provisioned`, `3306` \\(for both Aurora MySQL and Aurora PostgreSQL\\)\n+ When `EngineMode` is `serverless`:\n + `3306` when `Engine` is `aurora` or `aurora-mysql`\n + `5432` when `Engine` is `aurora-postgresql`\nThe `No interruption` on update behavior only applies to DB clusters\\. If you are updating a DB instance, see [Port](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-port) for the AWS::RDS::DBInstance resource\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + }, + "PreferredBackupWindow": { + "markdownDescription": "The daily time range during which automated backups are created\\. For more information, see [ Backup Window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.Backups.BackupWindow) in the *Amazon Aurora User Guide\\.* \nConstraints: \n+ Must be in the format `hh24:mi-hh24:mi`\\.\n+ Must be in Universal Coordinated Time \\(UTC\\)\\.\n+ Must not conflict with the preferred maintenance window\\.\n+ Must be at least 30 minutes\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredBackupWindow", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "markdownDescription": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time \\(UTC\\)\\. \nFormat: `ddd:hh24:mi-ddd:hh24:mi` \nThe default is a 30\\-minute window selected at random from an 8\\-hour block of time for each AWS Region, occurring on a random day of the week\\. To see the time blocks available, see [ Adjusting the Preferred DB Cluster Maintenance Window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow.Aurora) in the *Amazon Aurora User Guide\\.* \nValid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun\\. \nConstraints: Minimum 30\\-minute window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReplicationSourceIdentifier": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the source DB instance or DB cluster if this DB cluster is created as a read replica\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationSourceIdentifier", + "type": "string" + }, + "RestoreType": { + "markdownDescription": "The type of restore to be performed\\. You can specify one of the following values: \n+ `full-copy` \\- The new DB cluster is restored as a full copy of the source DB cluster\\.\n+ `copy-on-write` \\- The new DB cluster is restored as a clone of the source DB cluster\\.\nConstraints: You can't specify `copy-on-write` if the engine version of the source DB cluster is earlier than 1\\.11\\. \nIf you don't specify a `RestoreType` value, then the new DB cluster is restored as a full copy of the source DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestoreType", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/AWS::RDS::DBCluster.ScalingConfiguration", + "markdownDescription": "The `ScalingConfiguration` property type specifies the scaling configuration of an Aurora Serverless DB cluster\\. \n*Required*: No \n*Type*: [ScalingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-scalingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/AWS::RDS::DBCluster.ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "markdownDescription": "The identifier for the DB snapshot or DB cluster snapshot to restore from\\. \nYou can use either the name or the Amazon Resource Name \\(ARN\\) to specify a DB cluster snapshot\\. However, you can use only the ARN to specify a DB snapshot\\. \nAfter you restore a DB cluster with a `SnapshotIdentifier` property, you must specify the same `SnapshotIdentifier` property for any future updates to the DB cluster\\. When you specify this property for an update, the DB cluster is not restored from the snapshot again, and the data in the database is not changed\\. However, if you don't specify the `SnapshotIdentifier` property, an empty DB cluster is created, and the original DB cluster is deleted\\. If you specify a property that is different from the previous snapshot restore property, a new DB cluster is restored from the specified `SnapshotIdentifier` property, and the original DB cluster is deleted\\. \nIf you specify the `SnapshotIdentifier` property to restore a DB cluster \\(as opposed to specifying it for DB cluster updates\\), then don't specify the following properties: \n+ `GlobalClusterIdentifier`\n+ `MasterUsername`\n+ `ReplicationSourceIdentifier`\n+ `RestoreType`\n+ `SourceDBClusterIdentifier`\n+ `SourceRegion`\n+ `StorageEncrypted`\n+ `UseLatestRestorableTime`\nConstraints: \n+ Must match the identifier of an existing Snapshot\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotIdentifier", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "markdownDescription": "When restoring a DB cluster to a point in time, the identifier of the source DB cluster from which to restore\\. \nConstraints: \n+ Must match the identifier of an existing DBCluster\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceDBClusterIdentifier", + "type": "string" + }, + "SourceRegion": { + "markdownDescription": "The AWS Region which contains the source DB cluster when replicating a DB cluster\\. For example, `us-east-1`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceRegion", + "type": "string" + }, + "StorageEncrypted": { + "markdownDescription": "Indicates whether the DB cluster is encrypted\\. \nIf you specify the `KmsKeyId` property, then you must enable encryption\\. \nIf you specify the `SnapshotIdentifier` or `SourceDBClusterIdentifier` property, don't specify this property\\. The value is inherited from the snapshot or source DB cluster, and if the DB cluster is encrypted, the specified `KmsKeyId` property is used\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StorageEncrypted", + "type": "boolean" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Tags to assign to the DB cluster\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "UseLatestRestorableTime": { + "markdownDescription": "A value that indicates whether to restore the DB cluster to the latest restorable backup time\\. By default, the DB cluster is not restored to the latest restorable backup time\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UseLatestRestorableTime", + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of EC2 VPC security groups to associate with this DB cluster\\. \nIf you plan to update the resource, don't specify VPC security groups in a shared VPC\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSecurityGroupIds", + "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": { + "markdownDescription": "The name of the feature associated with the AWS Identity and Access Management \\(IAM\\) role\\. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other AWS services on your behalf\\. For the list of supported feature names, see the `SupportedFeatureNames` description in [DBEngineVersion](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBEngineVersion.html) in the *Amazon RDS API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FeatureName", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that is associated with the DB cluster\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A value that indicates whether to allow or disallow automatic pause for an Aurora DB cluster in `serverless` DB engine mode\\. A DB cluster can be paused only when it's idle \\(it has no connections\\)\\. \nIf a DB cluster is paused for more than seven days, the DB cluster might be backed up with a snapshot\\. In this case, the DB cluster is restored when there is a request to connect to it\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoPause", + "type": "boolean" + }, + "MaxCapacity": { + "markdownDescription": "The maximum capacity for an Aurora DB cluster in `serverless` DB engine mode\\. \nFor Aurora MySQL, valid capacity values are `1`, `2`, `4`, `8`, `16`, `32`, `64`, `128`, and `256`\\. \nFor Aurora PostgreSQL, valid capacity values are `2`, `4`, `8`, `16`, `32`, `64`, `192`, and `384`\\. \nThe maximum capacity must be greater than or equal to the minimum capacity\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCapacity", + "type": "number" + }, + "MinCapacity": { + "markdownDescription": "The minimum capacity for an Aurora DB cluster in `serverless` DB engine mode\\. \nFor Aurora MySQL, valid capacity values are `1`, `2`, `4`, `8`, `16`, `32`, `64`, `128`, and `256`\\. \nFor Aurora PostgreSQL, valid capacity values are `2`, `4`, `8`, `16`, `32`, `64`, `192`, and `384`\\. \nThe minimum capacity must be less than or equal to the maximum capacity\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinCapacity", + "type": "number" + }, + "SecondsBeforeTimeout": { + "type": "number" + }, + "SecondsUntilAutoPause": { + "markdownDescription": "The time, in seconds, before an Aurora DB cluster in `serverless` mode is paused\\. \nSpecify a value between 300 and 86,400 seconds\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A friendly description for this DB cluster parameter group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "Family": { + "markdownDescription": "The DB cluster parameter group family name\\. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a DB engine and engine version compatible with that DB cluster parameter group family\\. \nThe DB cluster parameter group family can't be changed when updating a DB cluster parameter group\\.\nTo list all of the available parameter group families, use the following command: \n`aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\"` \nThe output contains duplicates\\. \nFor more information, see [`CreateDBClusterParameterGroup`](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBClusterParameterGroup.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Family", + "type": "string" + }, + "Parameters": { + "markdownDescription": "Provides a list of parameters for the DB cluster parameter group\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Tags to assign to the DB cluster parameter group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The amount of storage \\(in gigabytes\\) to be initially allocated for the database instance\\. \nIf any value is set in the `Iops` parameter, `AllocatedStorage` must be at least 100 GiB, which corresponds to the minimum Iops value of 1,000\\. If you increase the `Iops` value \\(in 1,000 IOPS increments\\), then you must also increase the `AllocatedStorage` value \\(in 100\\-GiB increments\\)\\. \n **Amazon Aurora** \nNot applicable\\. Aurora cluster volumes automatically grow as the amount of data in your database increases, though you are only charged for the space that you use in an Aurora cluster volume\\. \n **MySQL** \nConstraints to the amount of storage for each storage type are the following: \n+ General Purpose \\(SSD\\) storage \\(gp2\\): Must be an integer from 20 to 65536\\.\n+ Provisioned IOPS storage \\(io1\\): Must be an integer from 100 to 65536\\.\n+ Magnetic storage \\(standard\\): Must be an integer from 5 to 3072\\.\n **MariaDB** \nConstraints to the amount of storage for each storage type are the following: \n+ General Purpose \\(SSD\\) storage \\(gp2\\): Must be an integer from 20 to 65536\\.\n+ Provisioned IOPS storage \\(io1\\): Must be an integer from 100 to 65536\\.\n+ Magnetic storage \\(standard\\): Must be an integer from 5 to 3072\\.\n **PostgreSQL** \nConstraints to the amount of storage for each storage type are the following: \n+ General Purpose \\(SSD\\) storage \\(gp2\\): Must be an integer from 20 to 65536\\.\n+ Provisioned IOPS storage \\(io1\\): Must be an integer from 100 to 65536\\.\n+ Magnetic storage \\(standard\\): Must be an integer from 5 to 3072\\.\n **Oracle** \nConstraints to the amount of storage for each storage type are the following: \n+ General Purpose \\(SSD\\) storage \\(gp2\\): Must be an integer from 20 to 65536\\.\n+ Provisioned IOPS storage \\(io1\\): Must be an integer from 100 to 65536\\.\n+ Magnetic storage \\(standard\\): Must be an integer from 10 to 3072\\.\n **SQL Server** \nConstraints to the amount of storage for each storage type are the following: \n+ General Purpose \\(SSD\\) storage \\(gp2\\):\n + Enterprise and Standard editions: Must be an integer from 20 to 16384\\.\n + Web and Express editions: Must be an integer from 20 to 16384\\.\n+ Provisioned IOPS storage \\(io1\\):\n + Enterprise and Standard editions: Must be an integer from 20 to 16384\\.\n + Web and Express editions: Must be an integer from 20 to 16384\\.\n+ Magnetic storage \\(standard\\):\n + Enterprise and Standard editions: Must be an integer from 20 to 1024\\.\n + Web and Express editions: Must be an integer from 20 to 1024\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllocatedStorage", + "type": "string" + }, + "AllowMajorVersionUpgrade": { + "markdownDescription": "A value that indicates whether major version upgrades are allowed\\. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible\\. \nConstraints: Major version upgrades must be allowed when specifying a value for the `EngineVersion` parameter that is a different major version than the DB instance's current version\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowMajorVersionUpgrade", + "type": "boolean" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/AWS::RDS::DBInstance.DBInstanceRole" + }, + "markdownDescription": "The AWS Identity and Access Management \\(IAM\\) roles associated with the DB instance\\. \n*Required*: No \n*Type*: List of [DBInstanceRole](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbinstance-dbinstancerole.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociatedRoles", + "type": "array" + }, + "AutoMinorVersionUpgrade": { + "markdownDescription": "A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window\\. By default, minor engine upgrades are applied automatically\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoMinorVersionUpgrade", + "type": "boolean" + }, + "AvailabilityZone": { + "markdownDescription": "The Availability Zone that the database instance will be created in\\. \nDefault: A random, system\\-chosen Availability Zone in the endpoint's region\\. \n Example: `us-east-1d` \n Constraint: The AvailabilityZone parameter cannot be specified if the MultiAZ parameter is set to `true`\\. The specified Availability Zone must be in the same region as the current endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AvailabilityZone", + "type": "string" + }, + "BackupRetentionPeriod": { + "markdownDescription": "The number of days for which automated backups are retained\\. Setting this parameter to a positive number enables backups\\. Setting this parameter to 0 disables automated backups\\. \n**Amazon Aurora** \nNot applicable\\. The retention period for automated backups is managed by the DB cluster\\. \nDefault: 1 \nConstraints: \n+ Must be a value from 0 to 35\n+ Can't be set to 0 if the DB instance is a source to read replicas\n*Required*: No \n*Type*: Integer \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "BackupRetentionPeriod", + "type": "number" + }, + "CACertificateIdentifier": { + "markdownDescription": "The identifier of the CA certificate for this DB instance\\. \nSpecifying or updating this property triggers a reboot\\.\nFor more information about CA certificate identifiers for RDS DB engines, see [ Rotating Your SSL/TLS Certificate](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html) in the *Amazon RDS User Guide*\\. \nFor more information about CA certificate identifiers for Aurora DB engines, see [ Rotating Your SSL/TLS Certificate](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL-certificate-rotation.html) in the *Amazon Aurora User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CACertificateIdentifier", + "type": "string" + }, + "CertificateDetails": { + "$ref": "#/definitions/AWS::RDS::DBInstance.CertificateDetails" + }, + "CertificateRotationRestart": { + "type": "boolean" + }, + "CharacterSetName": { + "markdownDescription": "For supported engines, indicates that the DB instance should be associated with the specified character set\\. \n **Amazon Aurora** \nNot applicable\\. The character set is managed by the DB cluster\\. For more information, see [AWS::RDS::DBCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CharacterSetName", + "type": "string" + }, + "CopyTagsToSnapshot": { + "markdownDescription": "A value that indicates whether to copy tags from the DB instance to snapshots of the DB instance\\. By default, tags are not copied\\. \n **Amazon Aurora** \nNot applicable\\. Copying tags to snapshots is managed by the DB cluster\\. Setting this value for an Aurora DB instance has no effect on the DB cluster setting\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CopyTagsToSnapshot", + "type": "boolean" + }, + "CustomIAMInstanceProfile": { + "type": "string" + }, + "DBClusterIdentifier": { + "markdownDescription": "The identifier of the DB cluster that the instance will belong to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBClusterIdentifier", + "type": "string" + }, + "DBClusterSnapshotIdentifier": { + "type": "string" + }, + "DBInstanceClass": { + "markdownDescription": "The compute and memory capacity of the DB instance, for example, `db.m4.large`\\. Not all DB instance classes are available in all AWS Regions, or for all database engines\\. \nFor the full list of DB instance classes, and availability for your engine, see [DB Instance Class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) in the *Amazon RDS User Guide\\.* For more information about DB instance class pricing and AWS Region support for DB instance classes, see [Amazon RDS Pricing](http://aws.amazon.com/rds/pricing/)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "DBInstanceClass", + "type": "string" + }, + "DBInstanceIdentifier": { + "markdownDescription": "A name for the DB instance\\. If you specify a name, AWS CloudFormation converts it to lowercase\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the DB instance\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nFor information about constraints that apply to DB instance identifiers, see [Naming constraints in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon RDS User Guide*\\. \nIf you specify a name, you can't perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBInstanceIdentifier", + "type": "string" + }, + "DBName": { + "markdownDescription": "The meaning of this parameter differs according to the database engine you use\\. \n If you specify the ` [ DBSnapshotIdentifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsnapshotidentifier)` property, AWS CloudFormation ignores this property\\. \nIf you restore DB instances from snapshots, this property doesn't apply to the MySQL, PostgreSQL, or MariaDB engines\\.\n **MySQL** \nThe name of the database to create when the DB instance is created\\. If this parameter is not specified, no database is created in the DB instance\\. \nConstraints: \n+ Must contain 1 to 64 letters or numbers\\.\n+ Can't be a word reserved by the specified database engine\n **MariaDB** \nThe name of the database to create when the DB instance is created\\. If this parameter is not specified, no database is created in the DB instance\\. \nConstraints: \n+ Must contain 1 to 64 letters or numbers\\.\n+ Can't be a word reserved by the specified database engine\n **PostgreSQL** \nThe name of the database to create when the DB instance is created\\. If this parameter is not specified, the default `postgres` database is created in the DB instance\\. \nConstraints: \n+ Must contain 1 to 63 letters, numbers, or underscores\\.\n+ Must begin with a letter or an underscore\\. Subsequent characters can be letters, underscores, or digits \\(0\\-9\\)\\.\n+ Can't be a word reserved by the specified database engine\n **Oracle** \nThe Oracle System ID \\(SID\\) of the created DB instance\\. If you specify `null`, the default value `ORCL` is used\\. You can't specify the string NULL, or any other reserved word, for `DBName`\\. \nDefault: `ORCL` \nConstraints: \n+ Can't be longer than 8 characters\n **SQL Server** \nNot applicable\\. Must be null\\. \n **Amazon Aurora MySQL** \nThe name of the database to create when the primary DB instance of the Aurora MySQL DB cluster is created\\. If this parameter isn't specified for an Aurora MySQL DB cluster, no database is created in the DB cluster\\. \nConstraints: \n+ It must contain 1 to 64 alphanumeric characters\\.\n+ It can't be a word reserved by the database engine\\.\n **Amazon Aurora PostgreSQL** \nThe name of the database to create when the primary DB instance of the Aurora PostgreSQL DB cluster is created\\. If this parameter isn't specified for an Aurora PostgreSQL DB cluster, a database named `postgres` is created in the DB cluster\\. \nConstraints: \n+ It must contain 1 to 63 alphanumeric characters\\.\n+ It must begin with a letter or an underscore\\. Subsequent characters can be letters, underscores, or digits \\(0 to 9\\)\\.\n+ It can't be a word reserved by the database engine\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBName", + "type": "string" + }, + "DBParameterGroupName": { + "markdownDescription": "The name of an existing DB parameter group or a reference to an [AWS::RDS::DBParameterGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbparametergroup.html) resource created in the template\\. \nTo list all of the available DB parameter group names, use the following command: \n`aws rds describe-db-parameter-groups --query \"DBParameterGroups[].DBParameterGroupName\" --output text` \nIf any of the data members of the referenced parameter group are changed during an update, the DB instance might need to be restarted, which causes some interruption\\. If the parameter group contains static parameters, whether they were changed or not, an update triggers a reboot\\.\nIf you don't specify a value for the `DBParameterGroupName` property, the default DB parameter group for the specified engine and engine version is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "DBParameterGroupName", + "type": "string" + }, + "DBSecurityGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of the DB security groups to assign to the DB instance\\. The list can include both the name of existing DB security groups or references to AWS::RDS::DBSecurityGroup resources created in the template\\. \n If you set DBSecurityGroups, you must not set VPCSecurityGroups, and vice versa\\. Also, note that the DBSecurityGroups property exists only for backwards compatibility with older regions and is no longer recommended for providing security information to an RDS DB instance\\. Instead, use VPCSecurityGroups\\. \nIf you specify this property, AWS CloudFormation sends only the following properties \\(if specified\\) to Amazon RDS during create operations: \n+ `AllocatedStorage`\n+ `AutoMinorVersionUpgrade`\n+ `AvailabilityZone`\n+ `BackupRetentionPeriod`\n+ `CharacterSetName`\n+ `DBInstanceClass`\n+ `DBName`\n+ `DBParameterGroupName`\n+ `DBSecurityGroups`\n+ `DBSubnetGroupName`\n+ `Engine`\n+ `EngineVersion`\n+ `Iops`\n+ `LicenseModel`\n+ `MasterUsername`\n+ `MasterUserPassword`\n+ `MultiAZ`\n+ `OptionGroupName`\n+ `PreferredBackupWindow`\n+ `PreferredMaintenanceWindow`\nAll other properties are ignored\\. Specify a virtual private cloud \\(VPC\\) security group if you want to submit other properties, such as `StorageType`, `StorageEncrypted`, or `KmsKeyId`\\. If you're already using the `DBSecurityGroups` property, you can't use these other properties by updating your DB instance to use a VPC security group\\. You must recreate the DB instance\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBSecurityGroups", + "type": "array" + }, + "DBSnapshotIdentifier": { + "markdownDescription": "The name or Amazon Resource Name \\(ARN\\) of the DB snapshot that's used to restore the DB instance\\. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot\\. \nBy specifying this property, you can create a DB instance from the specified DB snapshot\\. If the `DBSnapshotIdentifier` property is an empty string or the `AWS::RDS::DBInstance` declaration has no `DBSnapshotIdentifier` property, AWS CloudFormation creates a new database\\. If the property contains a value \\(other than an empty string\\), AWS CloudFormation creates a database from the specified snapshot\\. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack\\. \nSome DB instance properties aren't valid when you restore from a snapshot, such as the `MasterUsername` and `MasterUserPassword` properties\\. For information about the properties that you can specify, see the `RestoreDBInstanceFromDBSnapshot` action in the *Amazon RDS API Reference*\\. \nAfter you restore a DB instance with a `DBSnapshotIdentifier` property, you must specify the same `DBSnapshotIdentifier` property for any future updates to the DB instance\\. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed\\. However, if you don't specify the `DBSnapshotIdentifier` property, an empty DB instance is created, and the original DB instance is deleted\\. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified `DBSnapshotIdentifier` property, and the original DB instance is deleted\\. \nIf you specify the `DBSnapshotIdentifier` property to restore a DB instance \\(as opposed to specifying it for DB instance updates\\), then don't specify the following properties: \n+ `CharacterSetName`\n+ `DBClusterIdentifier`\n+ `DBName`\n+ `DeleteAutomatedBackups`\n+ `EnablePerformanceInsights`\n+ `KmsKeyId`\n+ `MasterUsername`\n+ `MonitoringInterval`\n+ `MonitoringRoleArn`\n+ `PerformanceInsightsKMSKeyId`\n+ `PerformanceInsightsRetentionPeriod`\n+ `PromotionTier`\n+ `SourceDBInstanceIdentifier`\n+ `SourceRegion`\n+ `StorageEncrypted`\n+ `Timezone`\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBSnapshotIdentifier", + "type": "string" + }, + "DBSubnetGroupName": { + "markdownDescription": "A DB subnet group to associate with the DB instance\\. If you update this value, the new subnet group must be a subnet group in a new VPC\\. \nIf there's no DB subnet group, then the DB instance isn't a VPC DB instance\\. \nFor more information about using Amazon RDS in a VPC, see [Using Amazon RDS with Amazon Virtual Private Cloud \\(VPC\\)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*\\. \n**Amazon Aurora** \nNot applicable\\. The DB subnet group is managed by the DB cluster\\. If specified, the setting must match the DB cluster setting\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBSubnetGroupName", + "type": "string" + }, + "DeleteAutomatedBackups": { + "markdownDescription": "A value that indicates whether to remove automated backups immediately after the DB instance is deleted\\. This parameter isn't case\\-sensitive\\. The default is to remove automated backups immediately after the DB instance is deleted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteAutomatedBackups", + "type": "boolean" + }, + "DeletionProtection": { + "markdownDescription": "A value that indicates whether the DB instance has deletion protection enabled\\. The database can't be deleted when deletion protection is enabled\\. By default, deletion protection is disabled\\. For more information, see [ Deleting a DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html)\\. \n **Amazon Aurora** \nNot applicable\\. You can enable or disable deletion protection for the DB cluster\\. For more information, see `CreateDBCluster`\\. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeletionProtection", + "type": "boolean" + }, + "Domain": { + "markdownDescription": "The Active Directory directory ID to create the DB instance in\\. Currently, only Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain\\. \nFor more information, see [ Kerberos Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html) in the *Amazon RDS User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Domain", + "type": "string" + }, + "DomainIAMRoleName": { + "markdownDescription": "Specify the name of the IAM role to be used when making API calls to the Directory Service\\. \nThis setting doesn't apply to RDS Custom\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainIAMRoleName", + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of log types that need to be enabled for exporting to CloudWatch Logs\\. The values in the list depend on the DB engine being used\\. For more information, see [Publishing Database Logs to Amazon CloudWatch Logs ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) in the *Amazon Relational Database Service User Guide*\\. \n **Amazon Aurora** \nNot applicable\\. CloudWatch Logs exports are managed by the DB cluster\\. \n **MariaDB** \nValid values: `audit`, `error`, `general`, `slowquery` \n **Microsoft SQL Server** \nValid values: `agent`, `error` \n **MySQL** \nValid values: `audit`, `error`, `general`, `slowquery` \n **Oracle** \nValid values: `alert`, `audit`, `listener`, `trace` \n **PostgreSQL** \nValid values: `postgresql`, `upgrade` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableCloudwatchLogsExports", + "type": "array" + }, + "EnableIAMDatabaseAuthentication": { + "markdownDescription": "A value that indicates whether to enable mapping of AWS Identity and Access Management \\(IAM\\) accounts to database accounts\\. By default, mapping is disabled\\. \nFor more information, see [ IAM Database Authentication for MySQL and PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html) in the *Amazon RDS User Guide\\.* \n **Amazon Aurora** \nNot applicable\\. Mapping AWS IAM accounts to database accounts is managed by the DB cluster\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableIAMDatabaseAuthentication", + "type": "boolean" + }, + "EnablePerformanceInsights": { + "markdownDescription": "A value that indicates whether to enable Performance Insights for the DB instance\\. For more information, see [Using Amazon Performance Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the *Amazon RDS User Guide*\\. \nThis setting doesn't apply to RDS Custom\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnablePerformanceInsights", + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/AWS::RDS::DBInstance.Endpoint" + }, + "Engine": { + "markdownDescription": "The name of the database engine that you want to use for this DB instance\\. \nWhen you are creating a DB instance, the `Engine` property is required\\.\nValid Values: \n+ `aurora` \\(for MySQL 5\\.6\\-compatible Aurora\\)\n+ `aurora-mysql` \\(for MySQL 5\\.7\\-compatible Aurora\\)\n+ `aurora-postgresql`\n+ `mariadb`\n+ `mysql`\n+ `oracle-ee`\n+ `oracle-se2`\n+ `oracle-se1`\n+ `oracle-se`\n+ `postgres`\n+ `sqlserver-ee`\n+ `sqlserver-se`\n+ `sqlserver-ex`\n+ `sqlserver-web`\n*Required*: Conditional \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "Engine", + "type": "string" + }, + "EngineVersion": { + "markdownDescription": "The version number of the database engine to use\\. \nFor a list of valid engine versions, use the `DescribeDBEngineVersions` action\\. \nThe following are the database engines and links to information about the major and minor versions that are available with Amazon RDS\\. Not every database engine is available for every AWS Region\\. \n **Amazon Aurora** \nNot applicable\\. The version number of the database engine to be used by the DB instance is managed by the DB cluster\\. \n**MariaDB** \nSee [MariaDB on Amazon RDS Versions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html#MariaDB.Concepts.VersionMgmt) in the *Amazon RDS User Guide\\.* \n**Microsoft SQL Server** \nSee [Microsoft SQL Server Versions on Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.VersionSupport) in the *Amazon RDS User Guide\\.* \n**MySQL** \nSee [MySQL on Amazon RDS Versions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt) in the *Amazon RDS User Guide\\.* \n**Oracle** \nSee [Oracle Database Engine Release Notes](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.PatchComposition.html) in the *Amazon RDS User Guide\\.* \n**PostgreSQL** \nSee [Supported PostgreSQL Database Versions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.DBVersions) in the *Amazon RDS User Guide\\.* \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "EngineVersion", + "type": "string" + }, + "Iops": { + "markdownDescription": "The number of I/O operations per second \\(IOPS\\) that the database provisions\\. The value must be equal to or greater than 1000\\. \nIf you specify this property, you must follow the range of allowed ratios of your requested IOPS rate to the amount of storage that you allocate \\(IOPS to allocated storage\\)\\. For example, you can provision an Oracle database instance with 1000 IOPS and 200 GiB of storage \\(a ratio of 5:1\\), or specify 2000 IOPS with 200 GiB of storage \\(a ratio of 10:1\\)\\. For more information, see [Amazon RDS Provisioned IOPS Storage to Improve Performance](https://docs.aws.amazon.com/AmazonRDS/latest/DeveloperGuide/CHAP_Storage.html#USER_PIOPS) in the *Amazon RDS User Guide*\\. \nIf you specify `io1` for the `StorageType` property, then you must also specify the `Iops` property\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Iops", + "type": "number" + }, + "KmsKeyId": { + "markdownDescription": "The ARN of the AWS KMS key that's used to encrypt the DB instance, such as `arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef`\\. If you enable the StorageEncrypted property but don't specify this property, AWS CloudFormation uses the default KMS key\\. If you specify this property, you must set the StorageEncrypted property to true\\. \nIf you specify the `SourceDBInstanceIdentifier` property, the value is inherited from the source DB instance if the read replica is created in the same region\\. \nIf you create an encrypted read replica in a different AWS Region, then you must specify a KMS key for the destination AWS Region\\. KMS encryption keys are specific to the region that they're created in, and you can't use encryption keys from one region in another region\\. \nIf you specify the `SnapshotIdentifier` property, the `StorageEncrypted` property value is inherited from the snapshot, and if the DB instance is encrypted, the specified `KmsKeyId` property is used\\. \nIf you specify `DBSecurityGroups`, AWS CloudFormation ignores this property\\. To specify both a security group and this property, you must use a VPC security group\\. For more information about Amazon RDS and VPC, see [Using Amazon RDS with Amazon VPC](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html) in the *Amazon RDS User Guide*\\. \n **Amazon Aurora** \nNot applicable\\. The KMS key identifier is managed by the DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + }, + "LicenseModel": { + "markdownDescription": "License model information for this DB instance\\. \n Valid values: \n+ Aurora MySQL \\- `general-public-license`\n+ Aurora PostgreSQL \\- `postgresql-license`\n+ MariaDB \\- `general-public-license`\n+ Microsoft SQL Server \\- `license-included`\n+ MySQL \\- `general-public-license`\n+ Oracle \\- `bring-your-own-license` or `license-included`\n+ PostgreSQL \\- `postgresql-license`\nIf you've specified `DBSecurityGroups` and then you update the license model, AWS CloudFormation replaces the underlying DB instance\\. This will incur some interruptions to database availability\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LicenseModel", + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "markdownDescription": "The password for the master user\\. The password can include any printable ASCII character except \"/\", \"\"\", or \"@\"\\. \n **Amazon Aurora** \nNot applicable\\. The password for the master user is managed by the DB cluster\\. \n **MariaDB** \nConstraints: Must contain from 8 to 41 characters\\. \n **Microsoft SQL Server** \nConstraints: Must contain from 8 to 128 characters\\. \n **MySQL** \nConstraints: Must contain from 8 to 41 characters\\. \n **Oracle** \nConstraints: Must contain from 8 to 30 characters\\. \n **PostgreSQL** \nConstraints: Must contain from 8 to 128 characters\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MasterUserPassword", + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/AWS::RDS::DBInstance.MasterUserSecret" + }, + "MasterUsername": { + "markdownDescription": "The master user name for the DB instance\\. \nIf you specify the `SourceDBInstanceIdentifier` or `DBSnapshotIdentifier` property, don't specify this property\\. The value is inherited from the source DB instance or snapshot\\.\n **Amazon Aurora** \nNot applicable\\. The name for the master user is managed by the DB cluster\\. \n **MariaDB** \nConstraints: \n+ Required for MariaDB\\.\n+ Must be 1 to 16 letters or numbers\\.\n+ Can't be a reserved word for the chosen database engine\\.\n **Microsoft SQL Server** \nConstraints: \n+ Required for SQL Server\\.\n+ Must be 1 to 128 letters or numbers\\.\n+ The first character must be a letter\\.\n+ Can't be a reserved word for the chosen database engine\\.\n **MySQL** \nConstraints: \n+ Required for MySQL\\.\n+ Must be 1 to 16 letters or numbers\\.\n+ First character must be a letter\\.\n+ Can't be a reserved word for the chosen database engine\\.\n **Oracle** \nConstraints: \n+ Required for Oracle\\.\n+ Must be 1 to 30 letters or numbers\\.\n+ First character must be a letter\\.\n+ Can't be a reserved word for the chosen database engine\\.\n **PostgreSQL** \nConstraints: \n+ Required for PostgreSQL\\.\n+ Must be 1 to 63 letters or numbers\\.\n+ First character must be a letter\\.\n+ Can't be a reserved word for the chosen database engine\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MasterUsername", + "type": "string" + }, + "MaxAllocatedStorage": { + "markdownDescription": "The upper limit in gibibytes \\(GiB\\) to which Amazon RDS can automatically scale the storage of the DB instance\\. \nFor more information about this setting, including limitations that apply to it, see [ Managing capacity automatically with Amazon RDS storage autoscaling](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling) in the *Amazon RDS User Guide*\\. \nThis setting doesn't apply to RDS Custom\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxAllocatedStorage", + "type": "number" + }, + "MonitoringInterval": { + "markdownDescription": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance\\. To disable collection of Enhanced Monitoring metrics, specify 0\\. The default is 0\\. \nIf `MonitoringRoleArn` is specified, then you must set `MonitoringInterval` to a value other than 0\\. \nThis setting doesn't apply to RDS Custom\\. \nValid Values: `0, 1, 5, 10, 15, 30, 60` \n*Required*: No \n*Type*: Integer \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "MonitoringInterval", + "type": "number" + }, + "MonitoringRoleArn": { + "markdownDescription": "The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs\\. For example, `arn:aws:iam:123456789012:role/emaccess`\\. For information on creating a monitoring role, see [Setting Up and Enabling Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling) in the *Amazon RDS User Guide*\\. \nIf `MonitoringInterval` is set to a value other than 0, then you must supply a `MonitoringRoleArn` value\\. \nThis setting doesn't apply to RDS Custom\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MonitoringRoleArn", + "type": "string" + }, + "MultiAZ": { + "markdownDescription": "Specifies whether the database instance is a multiple Availability Zone deployment\\. You can't set the `AvailabilityZone` parameter if the `MultiAZ` parameter is set to true\\. \n **Amazon Aurora** \nNot applicable\\. Amazon Aurora storage is replicated across all of the Availability Zones and doesn't require the `MultiAZ` option to be set\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "MultiAZ", + "type": "boolean" + }, + "NcharCharacterSetName": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "OptionGroupName": { + "markdownDescription": "Indicates that the DB instance should be associated with the specified option group\\. \nPermanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group\\. Also, that option group can't be removed from a DB instance once it is associated with a DB instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OptionGroupName", + "type": "string" + }, + "PerformanceInsightsKMSKeyId": { + "markdownDescription": "The AWS KMS key identifier for encryption of Performance Insights data\\. \nThe KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key\\. \nIf you do not specify a value for `PerformanceInsightsKMSKeyId`, then Amazon RDS uses your default KMS key\\. There is a default KMS key for your AWS account\\. Your AWS account has a different default KMS key for each AWS Region\\. \nFor information about enabling Performance Insights, see [ EnablePerformanceInsights](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-enableperformanceinsights)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PerformanceInsightsKMSKeyId", + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "markdownDescription": "The amount of time, in days, to retain Performance Insights data\\. Valid values are 7 or 731 \\(2 years\\)\\. \nFor information about enabling Performance Insights, see [ EnablePerformanceInsights](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-enableperformanceinsights)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PerformanceInsightsRetentionPeriod", + "type": "number" + }, + "Port": { + "markdownDescription": "The port number on which the database accepts connections\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Port", + "type": "string" + }, + "PreferredBackupWindow": { + "markdownDescription": "The daily time range during which automated backups are created if automated backups are enabled, using the `BackupRetentionPeriod` parameter\\. For more information, see [ Backup Window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow) in the *Amazon RDS User Guide\\.* \nConstraints: \n+ Must be in the format `hh24:mi-hh24:mi`\\.\n+ Must be in Universal Coordinated Time \\(UTC\\)\\.\n+ Must not conflict with the preferred maintenance window\\.\n+ Must be at least 30 minutes\\.\n **Amazon Aurora** \nNot applicable\\. The daily time range for creating automated backups is managed by the DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredBackupWindow", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "markdownDescription": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time \\(UTC\\)\\. \nFormat: `ddd:hh24:mi-ddd:hh24:mi` \nThe default is a 30\\-minute window selected at random from an 8\\-hour block of time for each AWS Region, occurring on a random day of the week\\. To see the time blocks available, see [ Adjusting the Preferred DB Instance Maintenance Window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow) in the *Amazon RDS User Guide\\.* \nThis property applies when AWS CloudFormation initially creates the DB instance\\. If you use AWS CloudFormation to update the DB instance, those updates are applied immediately\\.\nConstraints: Minimum 30\\-minute window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "PreferredMaintenanceWindow", + "type": "string" + }, + "ProcessorFeatures": { + "items": { + "$ref": "#/definitions/AWS::RDS::DBInstance.ProcessorFeature" + }, + "markdownDescription": "The number of CPU cores and the number of threads per core for the DB instance class of the DB instance\\. \nThis setting doesn't apply to RDS Custom\\. \n*Required*: No \n*Type*: List of [ProcessorFeature](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbinstance-processorfeature.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProcessorFeatures", + "type": "array" + }, + "PromotionTier": { + "markdownDescription": "A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance\\. For more information, see [ Fault Tolerance for an Aurora DB Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance) in the *Amazon Aurora User Guide*\\. \nThis setting doesn't apply to RDS Custom\\. \nDefault: 1 \nValid Values: 0 \\- 15 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PromotionTier", + "type": "number" + }, + "PubliclyAccessible": { + "markdownDescription": "Indicates whether the DB instance is an internet\\-facing instance\\. If you specify `true`, AWS CloudFormation creates an instance with a publicly resolvable DNS name, which resolves to a public IP address\\. If you specify false, AWS CloudFormation creates an internal instance with a DNS name that resolves to a private IP address\\. \n The default behavior value depends on your VPC setup and the database subnet group\\. For more information, see the `PubliclyAccessible` parameter in [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) in the *Amazon RDS API Reference*\\. \n If this resource has a public IP address and is also in a VPC that is defined in the same template, you must use the *DependsOn* attribute to declare a dependency on the VPC\\-gateway attachment\\. For more information, see [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html)\\. \nIf you specify DBSecurityGroups, AWS CloudFormation ignores this property\\. To specify a security group and this property, you must use a VPC security group\\. For more information about Amazon RDS and VPC, see [Using Amazon RDS with Amazon VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PubliclyAccessible", + "type": "boolean" + }, + "ReplicaMode": { + "type": "string" + }, + "RestoreTime": { + "type": "string" + }, + "SourceDBInstanceAutomatedBackupsArn": { + "type": "string" + }, + "SourceDBInstanceIdentifier": { + "markdownDescription": "If you want to create a read replica DB instance, specify the ID of the source DB instance\\. Each DB instance can have a limited number of read replicas\\. For more information, see [Working with Read Replicas](https://docs.aws.amazon.com/AmazonRDS/latest/DeveloperGuide/USER_ReadRepl.html) in the *Amazon RDS User Guide*\\. \nFor information about constraints that apply to DB instance identifiers, see [Naming constraints in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon RDS User Guide*\\. \nThe `SourceDBInstanceIdentifier` property determines whether a DB instance is a read replica\\. If you remove the `SourceDBInstanceIdentifier` property from your template and then update your stack, AWS CloudFormation deletes the Read Replica and creates a new DB instance \\(not a read replica\\)\\. \n+ If you specify a source DB instance that uses VPC security groups, we recommend that you specify the `VPCSecurityGroups` property\\. If you don't specify the property, the read replica inherits the value of the `VPCSecurityGroups` property from the source DB when you create the replica\\. However, if you update the stack, AWS CloudFormation reverts the replica's `VPCSecurityGroups` property to the default value because it's not defined in the stack's template\\. This change might cause unexpected issues\\.\n+ Read replicas don't support deletion policies\\. AWS CloudFormation ignores any deletion policy that's associated with a read replica\\.\n+ If you specify `SourceDBInstanceIdentifier`, don't specify the `DBSnapshotIdentifier` property\\. You can't create a read replica from a snapshot\\.\n+ Don't set the `BackupRetentionPeriod`, `DBName`, `MasterUsername`, `MasterUserPassword`, and `PreferredBackupWindow` properties\\. The database attributes are inherited from the source DB instance, and backups are disabled for read replicas\\.\n+ If the source DB instance is in a different region than the read replica, specify the source region in `SourceRegion`, and specify an ARN for a valid DB instance in `SourceDBInstanceIdentifier`\\. For more information, see [ Constructing a Amazon RDS Amazon Resource Name \\(ARN\\)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html#USER_Tagging.ARN) in the *Amazon RDS User Guide*\\.\n+ For DB instances in Amazon Aurora clusters, don't specify this property\\. Amazon RDS automatically assigns writer and reader DB instances\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceDBInstanceIdentifier", + "type": "string" + }, + "SourceDbiResourceId": { + "type": "string" + }, + "SourceRegion": { + "markdownDescription": "The ID of the region that contains the source DB instance for the read replica\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceRegion", + "type": "string" + }, + "StorageEncrypted": { + "markdownDescription": "A value that indicates whether the DB instance is encrypted\\. By default, it isn't encrypted\\. \nIf you specify the `KmsKeyId` property, then you must enable encryption\\. \nIf you specify the `SnapshotIdentifier` or `SourceDBInstanceIdentifier` property, don't specify this property\\. The value is inherited from the snapshot or source DB instance, and if the DB instance is encrypted, the specified `KmsKeyId` property is used\\. \n **Amazon Aurora** \nNot applicable\\. The encryption for DB instances is managed by the DB cluster\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StorageEncrypted", + "type": "boolean" + }, + "StorageThroughput": { + "type": "number" + }, + "StorageType": { + "markdownDescription": "Specifies the storage type to be associated with the DB instance\\. \n Valid values: `standard | gp2 | io1` \nThe `standard` value is also known as magnetic\\. \n If you specify `io1`, you must also include a value for the `Iops` parameter\\. \n Default: `io1` if the `Iops` parameter is specified, otherwise `standard` \nFor more information, see [Amazon RDS DB Instance Storage](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) in the *Amazon RDS User Guide*\\. \n **Amazon Aurora** \nNot applicable\\. Aurora data is stored in the cluster volume, which is a single, virtual volume that uses solid state drives \\(SSDs\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "StorageType", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Tags to assign to the DB instance\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Timezone": { + "markdownDescription": "The time zone of the DB instance\\. The time zone parameter is currently supported only by [Microsoft SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.TimeZone)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Timezone", + "type": "string" + }, + "UseDefaultProcessorFeatures": { + "markdownDescription": "A value that indicates whether the DB instance class of the DB instance uses its default processor features\\. \nThis setting doesn't apply to RDS Custom\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UseDefaultProcessorFeatures", + "type": "boolean" + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VPCSecurityGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of the VPC security group IDs to assign to the DB instance\\. The list can include both the physical IDs of existing VPC security groups and references to [AWS::EC2::SecurityGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html) resources created in the template\\. \nIf you plan to update the resource, don't specify VPC security groups in a shared VPC\\. \n If you set `VPCSecurityGroups`, you must not set [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsecuritygroups](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsecuritygroups), and vice versa\\. \nYou can migrate a DB instance in your stack from an RDS DB security group to a VPC security group, but keep the following in mind: \n+ You can't revert to using an RDS security group after you establish a VPC security group membership\\.\n+ When you migrate your DB instance to VPC security groups, if your stack update rolls back because the DB instance update fails or because an update fails in another AWS CloudFormation resource, the rollback fails because it can't revert to an RDS security group\\.\n+ To use the properties that are available when you use a VPC security group, you must recreate the DB instance\\. If you don't, AWS CloudFormation submits only the property values that are listed in the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsecuritygroups](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsecuritygroups) property\\.\nTo avoid this situation, migrate your DB instance to using VPC security groups only when that is the only change in your stack template\\. \n **Amazon Aurora** \nNot applicable\\. The associated list of EC2 VPC security groups is managed by the DB cluster\\. If specified, the setting must match the DB cluster setting\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VPCSecurityGroups", + "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.CertificateDetails": { + "additionalProperties": false, + "properties": { + "CAIdentifier": { + "type": "string" + }, + "ValidTill": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RDS::DBInstance.DBInstanceRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "markdownDescription": "The name of the feature associated with the AWS Identity and Access Management \\(IAM\\) role\\. IAM roles that are associated with a DB instance grant permission for the DB instance to access other AWS services on your behalf\\. For the list of supported feature names, see the `SupportedFeatureNames` description in [DBEngineVersion](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBEngineVersion.html) in the *Amazon RDS API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FeatureName", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that is associated with the DB instance\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the processor feature\\. Valid names are `coreCount` and `threadsPerCore`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of a processor feature name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Provides the customer\\-specified description for this DB parameter group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Family": { + "markdownDescription": "The DB parameter group family name\\. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a DB engine and engine version compatible with that DB parameter group family\\. \nThe DB parameter group family can't be changed when updating a DB parameter group\\.\nTo list all of the available parameter group families, use the following command: \n`aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\"` \nThe output contains duplicates\\. \nFor more information, see [`CreateDBParameterGroup`](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBParameterGroup.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Family", + "type": "string" + }, + "Parameters": { + "markdownDescription": "An array of parameter names and values for the parameter update\\. At least one parameter name and value must be supplied\\. Subsequent arguments are optional\\. \nFor more information about DB parameters and DB parameter groups for Amazon RDS DB engines, see [Working with DB Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*\\. \nFor more information about DB cluster and DB instance parameters and parameter groups for Amazon Aurora DB engines, see [ Working with DB Parameter Groups and DB Cluster Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*\\. \nAWS CloudFormation doesn't support specifying an apply method for each individual parameter\\. The default apply method for each parameter is used\\.\n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Tags to assign to the DB parameter group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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" + }, + "markdownDescription": "The authorization mechanism that the proxy uses\\. \n*Required*: Yes \n*Type*: List of [AuthFormat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-authformat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Auth", + "type": "array" + }, + "DBProxyName": { + "markdownDescription": "The identifier for the proxy\\. This name must be unique for all proxies owned by your AWS account in the specified AWS Region\\. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBProxyName", + "type": "string" + }, + "DebugLogging": { + "markdownDescription": "Whether the proxy includes detailed information about SQL statements in its logs\\. This information helps you to debug issues involving SQL behavior or the performance and scalability of the proxy connections\\. The debug information includes the text of SQL statements that you submit through the proxy\\. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DebugLogging", + "type": "boolean" + }, + "EngineFamily": { + "markdownDescription": "The kinds of databases that the proxy can connect to\\. This value determines which database network protocol the proxy recognizes when it interprets network traffic to and from the database\\. The engine family applies to MySQL and PostgreSQL for both RDS and Aurora\\. \n*Valid values*: `MYSQL` \\| `POSTGRESQL` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineFamily", + "type": "string" + }, + "IdleClientTimeout": { + "markdownDescription": "The number of seconds that a connection to the proxy can be inactive before the proxy disconnects it\\. You can set this value higher or lower than the connection timeout limit for the associated database\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdleClientTimeout", + "type": "number" + }, + "RequireTLS": { + "markdownDescription": "A Boolean parameter that specifies whether Transport Layer Security \\(TLS\\) encryption is required for connections to the proxy\\. By enabling this setting, you can enforce encrypted TLS connections to the proxy\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequireTLS", + "type": "boolean" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that the proxy uses to access secrets in AWS Secrets Manager\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::RDS::DBProxy.TagFormat" + }, + "markdownDescription": "An optional set of key\\-value pairs to associate arbitrary data of your choosing with the proxy\\. \n*Required*: No \n*Type*: List of [TagFormat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxy-tagformat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more VPC security group IDs to associate with the new proxy\\. \nIf you plan to update the resource, don't specify VPC security groups in a shared VPC\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSecurityGroupIds", + "type": "array" + }, + "VpcSubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more VPC subnet IDs to associate with the new proxy\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcSubnetIds", + "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": { + "markdownDescription": "The type of authentication that the proxy uses for connections from the proxy to the underlying database\\. \nValid Values: `SECRETS` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthScheme", + "type": "string" + }, + "ClientPasswordAuthType": { + "type": "string" + }, + "Description": { + "markdownDescription": "A user\\-specified description about the authentication used by a proxy to log in as a specific database user\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "IAMAuth": { + "markdownDescription": "Whether to require or disallow AWS Identity and Access Management \\(IAM\\) authentication for connections to the proxy\\. \nValid Values: `DISABLED | REQUIRED` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IAMAuth", + "type": "string" + }, + "SecretArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) representing the secret that the proxy uses to authenticate to the RDS DB instance or Aurora DB cluster\\. These secrets are stored within Amazon Secrets Manager\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::RDS::DBProxy.TagFormat": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "A key is the required name of the tag\\. The string value can be 1\\-128 Unicode characters in length and can't be prefixed with `aws:`\\. The string can contain only the set of Unicode letters, digits, white\\-space, '\\_', '\\.', '/', '=', '\\+', '\\-' \\(Java regex: \"^\\(\\[\\\\\\\\p\\{L\\}\\\\\\\\p\\{Z\\}\\\\\\\\p\\{N\\}\\_\\.:/=\\+\\\\\\\\\\-\\]\\*\\)$\"\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "A value is the optional value of the tag\\. The string value can be 1\\-256 Unicode characters in length and can't be prefixed with `aws:`\\. The string can contain only the set of Unicode letters, digits, white\\-space, '\\_', '\\.', '/', '=', '\\+', '\\-' \\(Java regex: \"^\\(\\[\\\\\\\\p\\{L\\}\\\\\\\\p\\{Z\\}\\\\\\\\p\\{N\\}\\_\\.:/=\\+\\\\\\\\\\-\\]\\*\\)$\"\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the DB proxy endpoint to create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBProxyEndpointName", + "type": "string" + }, + "DBProxyName": { + "markdownDescription": "The name of the DB proxy associated with the DB proxy endpoint that you create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBProxyName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::RDS::DBProxyEndpoint.TagFormat" + }, + "markdownDescription": "An optional set of key\\-value pairs to associate arbitrary data of your choosing with the proxy\\. \n*Required*: No \n*Type*: List of [TagFormat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxyendpoint-tagformat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The VPC security group IDs for the DB proxy endpoint that you create\\. You can specify a different set of security group IDs than for the original DB proxy\\. The default is the default security group for the VPC\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSecurityGroupIds", + "type": "array" + }, + "VpcSubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The VPC subnet IDs for the DB proxy endpoint that you create\\. You can specify a different set of subnet IDs than for the original DB proxy\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcSubnetIds", + "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": { + "markdownDescription": "A value is the optional value of the tag\\. The string value can be 1\\-256 Unicode characters in length and can't be prefixed with `aws:`\\. The string can contain only the set of Unicode letters, digits, white\\-space, '\\_', '\\.', '/', '=', '\\+', '\\-' \\(Java regex: \"^\\(\\[\\\\\\\\p\\{L\\}\\\\\\\\p\\{Z\\}\\\\\\\\p\\{N\\}\\_\\.:/=\\+\\\\\\\\\\-\\]\\*\\)$\"\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "Metadata assigned to a DB instance consisting of a key\\-value pair\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Settings that control the size and behavior of the connection pool associated with a `DBProxyTargetGroup`\\. \n*Required*: No \n*Type*: [ConnectionPoolConfigurationInfoFormat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionPoolConfigurationInfo" + }, + "DBClusterIdentifiers": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more DB cluster identifiers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBClusterIdentifiers", + "type": "array" + }, + "DBInstanceIdentifiers": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more DB instance identifiers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBInstanceIdentifiers", + "type": "array" + }, + "DBProxyName": { + "markdownDescription": "The identifier of the `DBProxy` that is associated with the `DBProxyTargetGroup`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBProxyName", + "type": "string" + }, + "TargetGroupName": { + "markdownDescription": "The identifier for the target group\\. \nCurrently, this property must be set to `default`\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The number of seconds for a proxy to wait for a connection to become available in the connection pool\\. Only applies when the proxy has opened its maximum number of connections and all connections are busy with client sessions\\. \nDefault: 120 \nConstraints: between 1 and 3600, or 0 representing unlimited \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionBorrowTimeout", + "type": "number" + }, + "InitQuery": { + "markdownDescription": "One or more SQL statements for the proxy to run when opening each new database connection\\. Typically used with `SET` statements to make sure that each connection has identical settings such as time zone and character set\\. For multiple statements, use semicolons as the separator\\. You can also include multiple variables in a single `SET` statement, such as `SET x=1, y=2`\\. \nDefault: no initialization query \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InitQuery", + "type": "string" + }, + "MaxConnectionsPercent": { + "markdownDescription": "The maximum size of the connection pool for each target in a target group\\. The value is expressed as a percentage of the `max_connections` setting for the RDS DB instance or Aurora DB cluster used by the target group\\. \nDefault: 100 \nConstraints: between 1 and 100 \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxConnectionsPercent", + "type": "number" + }, + "MaxIdleConnectionsPercent": { + "markdownDescription": "Controls how actively the proxy closes idle database connections in the connection pool\\. The value is expressed as a percentage of the `max_connections` setting for the RDS DB instance or Aurora DB cluster used by the target group\\. With a high value, the proxy leaves a high percentage of idle database connections open\\. A low value causes the proxy to close more idle connections and return them to the database\\. \nDefault: 50 \nConstraints: between 0 and `MaxConnectionsPercent` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxIdleConnectionsPercent", + "type": "number" + }, + "SessionPinningFilters": { + "items": { + "type": "string" + }, + "markdownDescription": "Each item in the list represents a class of SQL operations that normally cause all later statements in a session using a proxy to be pinned to the same underlying database connection\\. Including an item in the list exempts that class of SQL operations from the pinning behavior\\. \nDefault: no session pinning filters \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionPinningFilters", + "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" + }, + "markdownDescription": "Ingress rules to be applied to the DB security group\\. \n*Required*: Yes \n*Type*: List of [Ingress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-security-group-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBSecurityGroupIngress", + "type": "array" + }, + "EC2VpcId": { + "markdownDescription": "The identifier of an Amazon VPC\\. This property indicates the VPC that this DB security group belongs to\\. \nThe `EC2VpcId` property is for backward compatibility with older regions, and is no longer recommended for providing security information to an RDS DB instance\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EC2VpcId", + "type": "string" + }, + "GroupDescription": { + "markdownDescription": "Provides the description of the DB security group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GroupDescription", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Tags to assign to the DB security group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The IP range to authorize\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CIDRIP", + "type": "string" + }, + "EC2SecurityGroupId": { + "markdownDescription": "Id of the EC2 Security Group to authorize\\. For VPC DB Security Groups, `EC2SecurityGroupId` must be provided\\. Otherwise, EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or `EC2SecurityGroupId` must be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EC2SecurityGroupId", + "type": "string" + }, + "EC2SecurityGroupName": { + "markdownDescription": "Name of the EC2 Security Group to authorize\\. For VPC DB Security Groups, `EC2SecurityGroupId` must be provided\\. Otherwise, EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or `EC2SecurityGroupId` must be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EC2SecurityGroupName", + "type": "string" + }, + "EC2SecurityGroupOwnerId": { + "markdownDescription": "AWS Account Number of the owner of the EC2 Security Group specified in the EC2SecurityGroupName parameter\\. The AWS Access Key ID is not an acceptable value\\. For VPC DB Security Groups, `EC2SecurityGroupId` must be provided\\. Otherwise, EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or `EC2SecurityGroupId` must be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The IP range to authorize\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CIDRIP", + "type": "string" + }, + "DBSecurityGroupName": { + "markdownDescription": "The name of the DB Security Group to add authorization to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBSecurityGroupName", + "type": "string" + }, + "EC2SecurityGroupId": { + "markdownDescription": "Id of the EC2 Security Group to authorize\\. For VPC DB Security Groups, `EC2SecurityGroupId` must be provided\\. Otherwise, EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or `EC2SecurityGroupId` must be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EC2SecurityGroupId", + "type": "string" + }, + "EC2SecurityGroupName": { + "markdownDescription": "Name of the EC2 Security Group to authorize\\. For VPC DB Security Groups, `EC2SecurityGroupId` must be provided\\. Otherwise, EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or `EC2SecurityGroupId` must be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EC2SecurityGroupName", + "type": "string" + }, + "EC2SecurityGroupOwnerId": { + "markdownDescription": "AWS Account Number of the owner of the EC2 Security Group specified in the EC2SecurityGroupName parameter\\. The AWS Access Key ID is not an acceptable value\\. For VPC DB Security Groups, `EC2SecurityGroupId` must be provided\\. Otherwise, EC2SecurityGroupOwnerId and either `EC2SecurityGroupName` or `EC2SecurityGroupId` must be provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The description for the DB Subnet Group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBSubnetGroupDescription", + "type": "string" + }, + "DBSubnetGroupName": { + "markdownDescription": "The name for the DB subnet group\\. This value is stored as a lowercase string\\. \nConstraints: Must contain no more than 255 lowercase alphanumeric characters or hyphens\\. Must not be \"Default\"\\. \nExample: `mysubnetgroup` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBSubnetGroupName", + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The EC2 Subnet IDs for the DB Subnet Group\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Tags to assign to the DB subnet group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "A Boolean value; set to **true** to activate the subscription, set to **false** to create the subscription but not active it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "EventCategories": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of event categories for a SourceType that you want to subscribe to\\. You can see a list of the categories for a given SourceType in the [Events](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html) topic in the Amazon RDS User Guide or by using the **DescribeEventCategories** action\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventCategories", + "type": "array" + }, + "SnsTopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the SNS topic created for event notification\\. The ARN is created by Amazon SNS when you create a topic and subscribe to it\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnsTopicArn", + "type": "string" + }, + "SourceIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The list of identifiers of the event sources for which events are returned\\. If not specified, then all sources are included in the response\\. An identifier must begin with a letter and must contain only ASCII letters, digits, and hyphens\\. It can't end with a hyphen or contain two consecutive hyphens\\. \nConstraints: \n+ If a `SourceIds` value is supplied, `SourceType` must also be provided\\.\n+ If the source type is a DB instance, a `DBInstanceIdentifier` value must be supplied\\.\n+ If the source type is a DB cluster, a `DBClusterIdentifier` value must be supplied\\.\n+ If the source type is a DB parameter group, a `DBParameterGroupName` value must be supplied\\.\n+ If the source type is a DB security group, a `DBSecurityGroupName` value must be supplied\\.\n+ If the source type is a DB snapshot, a `DBSnapshotIdentifier` value must be supplied\\.\n+ If the source type is a DB cluster snapshot, a `DBClusterSnapshotIdentifier` value must be supplied\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceIds", + "type": "array" + }, + "SourceType": { + "markdownDescription": "The type of source that is generating the events\\. For example, if you want to be notified of events generated by a DB instance, set this parameter to `db-instance`\\. If this value isn't specified, all events are returned\\. \nValid values: `db-instance` \\| `db-cluster` \\| `db-parameter-group` \\| `db-security-group` \\| `db-snapshot` \\| `db-cluster-snapshot` \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "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": { + "markdownDescription": "The deletion protection setting for the new global database\\. The global database can't be deleted when deletion protection is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeletionProtection", + "type": "boolean" + }, + "Engine": { + "markdownDescription": "The name of the database engine to be used for this DB cluster\\. \nIf this property isn't specified, the database engine is derived from the source DB cluster specified by the `SourceDBClusterIdentifier` property\\. \nIf the `SourceDBClusterIdentifier` property isn't specified, this property is required\\. If the `SourceDBClusterIdentifier` property is specified, make sure this property isn't specified\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Engine", + "type": "string" + }, + "EngineVersion": { + "markdownDescription": "The engine version of the Aurora global database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineVersion", + "type": "string" + }, + "GlobalClusterIdentifier": { + "markdownDescription": "The cluster identifier of the global database cluster\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GlobalClusterIdentifier", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "markdownDescription": "The DB cluster identifier or Amazon Resource Name \\(ARN\\) to use as the primary cluster of the global database\\. \nIf the `Engine` property isn't specified, this property is required\\. If the `Engine` property is specified, make sure this property isn't specified\\.\n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceDBClusterIdentifier", + "type": "string" + }, + "StorageEncrypted": { + "markdownDescription": "The storage encryption setting for the global database cluster\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Specifies the name of the engine that this option group should be associated with\\. \nValid Values: \n+ `mariadb`\n+ `mysql`\n+ `oracle-ee`\n+ `oracle-se2`\n+ `oracle-se1`\n+ `oracle-se`\n+ `postgres`\n+ `sqlserver-ee`\n+ `sqlserver-se`\n+ `sqlserver-ex`\n+ `sqlserver-web`\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EngineName", + "type": "string" + }, + "MajorEngineVersion": { + "markdownDescription": "Specifies the major version of the engine that this option group should be associated with\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MajorEngineVersion", + "type": "string" + }, + "OptionConfigurations": { + "items": { + "$ref": "#/definitions/AWS::RDS::OptionGroup.OptionConfiguration" + }, + "markdownDescription": "A list of options and the settings for each option\\. \n*Required*: Conditional \n*Type*: List of [OptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-optiongroup-optionconfigurations.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OptionConfigurations", + "type": "array" + }, + "OptionGroupDescription": { + "markdownDescription": "The description of the option group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OptionGroupDescription", + "type": "string" + }, + "OptionGroupName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Tags to assign to the option group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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" + }, + "markdownDescription": "A list of DBSecurityGroupMembership name strings used for this option\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DBSecurityGroupMemberships", + "type": "array" + }, + "OptionName": { + "markdownDescription": "The configuration of options to include in a group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OptionName", + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/AWS::RDS::OptionGroup.OptionSetting" + }, + "markdownDescription": "The option settings to include in an option group\\. \n*Required*: No \n*Type*: List of [OptionSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-optiongroup-optionconfigurations-optionsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OptionSettings", + "type": "array" + }, + "OptionVersion": { + "markdownDescription": "The version for the option\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OptionVersion", + "type": "string" + }, + "Port": { + "markdownDescription": "The optional port for the option\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + }, + "VpcSecurityGroupMemberships": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of VpcSecurityGroupMembership name strings used for this option\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSecurityGroupMemberships", + "type": "array" + } + }, + "required": [ + "OptionName" + ], + "type": "object" + }, + "AWS::RDS::OptionGroup.OptionSetting": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the option that has settings that you can set\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "The current value of the option setting\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "A structure that contains much of the configuration data for the app monitor\\. If you are using Amazon Cognito for authorization, you must include this structure in your request, and it must include the ID of the Amazon Cognito identity pool to use for authorization\\. If you don't include `AppMonitorConfiguration`, you must set up your own authorization method\\. For more information, see [Authorize your application to send data to AWS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-get-started-authorization.html)\\. \nIf you omit this argument, the sample rate used for CloudWatch RUM is set to 10% of the user sessions\\. \n*Required*: No \n*Type*: [AppMonitorConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rum-appmonitor-appmonitorconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppMonitorConfiguration" + }, + "CustomEvents": { + "$ref": "#/definitions/AWS::RUM::AppMonitor.CustomEvents" + }, + "CwLogEnabled": { + "markdownDescription": "Data collected by CloudWatch RUM is kept by RUM for 30 days and then deleted\\. This parameter specifies whether CloudWatch RUM sends a copy of this telemetry data to Amazon CloudWatch Logs in your account\\. This enables you to keep the telemetry data for more than 30 days, but it does incur Amazon CloudWatch Logs charges\\. \nIf you omit this parameter, the default is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CwLogEnabled", + "type": "boolean" + }, + "Domain": { + "markdownDescription": "The top\\-level internet domain name for which your application has administrative authority\\. This parameter is required\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Domain", + "type": "string" + }, + "Name": { + "markdownDescription": "A name for the app monitor\\. This parameter is required\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Assigns one or more tags \\(key\\-value pairs\\) to the app monitor\\. \nTags can help you organize and categorize your resources\\. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values\\. \nTags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters\\. \nYou can associate as many as 50 tags with an app monitor\\. \nFor more information, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "If you set this to `true`, the CloudWatch RUM web client sets two cookies, a session cookie and a user cookie\\. The cookies allow the CloudWatch RUM web client to collect data relating to the number of users an application has and the behavior of the application across a sequence of events\\. Cookies are stored in the top\\-level domain of the current page\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowCookies", + "type": "boolean" + }, + "EnableXRay": { + "markdownDescription": "If you set this to `true`, CloudWatch RUM sends client\\-side traces to X\\-Ray for each sampled session\\. You can then see traces and segments from these user sessions in the RUM dashboard and the CloudWatch ServiceLens console\\. For more information, see [What is AWS X\\-Ray?](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableXRay", + "type": "boolean" + }, + "ExcludedPages": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of URLs in your website or application to exclude from RUM data collection\\. \nYou can't include both `ExcludedPages` and `IncludedPages` in the same app monitor\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludedPages", + "type": "array" + }, + "FavoritePages": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of pages in your application that are to be displayed with a \"favorite\" icon in the CloudWatch RUM console\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FavoritePages", + "type": "array" + }, + "GuestRoleArn": { + "markdownDescription": "The ARN of the guest IAM role that is attached to the Amazon Cognito identity pool that is used to authorize the sending of data to CloudWatch RUM\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GuestRoleArn", + "type": "string" + }, + "IdentityPoolId": { + "markdownDescription": "The ID of the Amazon Cognito identity pool that is used to authorize the sending of data to CloudWatch RUM\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentityPoolId", + "type": "string" + }, + "IncludedPages": { + "items": { + "type": "string" + }, + "markdownDescription": "If this app monitor is to collect data from only certain pages in your application, this structure lists those pages\\. \nYou can't include both `ExcludedPages` and `IncludedPages` in the same app monitor\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludedPages", + "type": "array" + }, + "MetricDestinations": { + "items": { + "$ref": "#/definitions/AWS::RUM::AppMonitor.MetricDestination" + }, + "type": "array" + }, + "SessionSampleRate": { + "markdownDescription": "Specifies the portion of user sessions to use for CloudWatch RUM data collection\\. Choosing a higher portion gives you more data but also incurs more costs\\. \nThe range for this value is 0 to 1 inclusive\\. Setting this to 1 means that 100% of user sessions are sampled, and setting it to 0\\.1 means that 10% of user sessions are sampled\\. \nIf you omit this parameter, the default of 0\\.1 is used, and 10% of sessions will be sampled\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionSampleRate", + "type": "number" + }, + "Telemetries": { + "items": { + "type": "string" + }, + "markdownDescription": "An array that lists the types of telemetry data that this app monitor is to collect\\. \n+ `errors` indicates that RUM collects data about unhandled JavaScript errors raised by your application\\.\n+ `performance` indicates that RUM collects performance data about how your application and its resources are loaded and rendered\\. This includes Core Web Vitals\\.\n+ `http` indicates that RUM collects data about HTTP errors thrown by your application\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Telemetries", + "type": "array" + } + }, + "type": "object" + }, + "AWS::RUM::AppMonitor.CustomEvents": { + "additionalProperties": false, + "properties": { + "Status": { + "type": "string" + } + }, + "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": { + "markdownDescription": "If `true`, major version upgrades can be applied during the maintenance window to the Amazon Redshift engine that is running on the cluster\\. \nWhen a new major version of the Amazon Redshift engine is released, you can request that the service automatically apply upgrades during the maintenance window to the Amazon Redshift engine that is running on your cluster\\. \nDefault: `true` \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowVersionUpgrade", + "type": "boolean" + }, + "AquaConfigurationStatus": { + "markdownDescription": "The value represents how the cluster is configured to use AQUA \\(Advanced Query Accelerator\\) when it is created\\. Possible values include the following\\. \n+ enabled \\- Use AQUA if it is available for the current AWS Region and Amazon Redshift node type\\.\n+ disabled \\- Don't use AQUA\\. \n+ auto \\- Amazon Redshift determines whether to use AQUA\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `auto | disabled | enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AquaConfigurationStatus", + "type": "string" + }, + "AutomatedSnapshotRetentionPeriod": { + "markdownDescription": "The number of days that automated snapshots are retained\\. If the value is 0, automated snapshots are disabled\\. Even if automated snapshots are disabled, you can still create manual snapshots when you want with [CreateClusterSnapshot](https://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateClusterSnapshot.html) in the *Amazon Redshift API Reference*\\. \nDefault: `1` \nConstraints: Must be a value from 0 to 35\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutomatedSnapshotRetentionPeriod", + "type": "number" + }, + "AvailabilityZone": { + "markdownDescription": "The EC2 Availability Zone \\(AZ\\) in which you want Amazon Redshift to provision the cluster\\. For example, if you have several EC2 instances running in a specific Availability Zone, then you might want the cluster to be provisioned in the same zone in order to decrease network latency\\. \nDefault: A random, system\\-chosen Availability Zone in the region that is specified by the endpoint\\. \nExample: `us-east-2d` \nConstraint: The specified Availability Zone must be in the same region as the current endpoint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZone", + "type": "string" + }, + "AvailabilityZoneRelocation": { + "markdownDescription": "The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster is created\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZoneRelocation", + "type": "boolean" + }, + "AvailabilityZoneRelocationStatus": { + "markdownDescription": "Describes the status of the Availability Zone relocation operation\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AvailabilityZoneRelocationStatus", + "type": "string" + }, + "Classic": { + "markdownDescription": "A boolean value indicating whether the resize operation is using the classic resize process\\. If you don't provide this parameter or set the value to `false`, the resize type is elastic\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Classic", + "type": "boolean" + }, + "ClusterIdentifier": { + "markdownDescription": "A unique identifier for the cluster\\. You use this identifier to refer to the cluster for any subsequent cluster operations such as deleting or modifying\\. The identifier also appears in the Amazon Redshift console\\. \nConstraints: \n+ Must contain from 1 to 63 alphanumeric characters or hyphens\\.\n+ Alphabetic characters must be lowercase\\.\n+ First character must be a letter\\.\n+ Cannot end with a hyphen or contain two consecutive hyphens\\.\n+ Must be unique for all clusters within an AWS account\\.\nExample: `myexamplecluster` \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterIdentifier", + "type": "string" + }, + "ClusterParameterGroupName": { + "markdownDescription": "The name of the parameter group to be associated with this cluster\\. \nDefault: The default Amazon Redshift cluster parameter group\\. For information about the default parameter group, go to [Working with Amazon Redshift Parameter Groups](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html) \nConstraints: \n+ Must be 1 to 255 alphanumeric characters or hyphens\\.\n+ First character must be a letter\\.\n+ Cannot end with a hyphen or contain two consecutive hyphens\\.\n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterParameterGroupName", + "type": "string" + }, + "ClusterSecurityGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of security groups to be associated with this cluster\\. \nDefault: The default cluster security group for Amazon Redshift\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterSecurityGroups", + "type": "array" + }, + "ClusterSubnetGroupName": { + "markdownDescription": "The name of a cluster subnet group to be associated with this cluster\\. \nIf this parameter is not provided the resulting cluster will be deployed outside virtual private cloud \\(VPC\\)\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterSubnetGroupName", + "type": "string" + }, + "ClusterType": { + "markdownDescription": "The type of the cluster\\. When cluster type is specified as \n+ `single-node`, the **NumberOfNodes** parameter is not required\\.\n+ `multi-node`, the **NumberOfNodes** parameter is required\\.\nValid Values: `multi-node` \\| `single-node` \nDefault: `multi-node` \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterType", + "type": "string" + }, + "ClusterVersion": { + "markdownDescription": "The version of the Amazon Redshift engine software that you want to deploy on the cluster\\. \nThe version selected runs on all the nodes in the cluster\\. \nConstraints: Only version 1\\.0 is currently available\\. \nExample: `1.0` \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterVersion", + "type": "string" + }, + "DBName": { + "markdownDescription": "The name of the first database to be created when the cluster is created\\. \nTo create additional databases after the cluster is created, connect to the cluster with a SQL client and use SQL commands to create a database\\. For more information, go to [Create a Database](https://docs.aws.amazon.com/redshift/latest/dg/t_creating_database.html) in the Amazon Redshift Database Developer Guide\\. \nDefault: `dev` \nConstraints: \n+ Must contain 1 to 64 alphanumeric characters\\.\n+ Must contain only lowercase letters\\.\n+ Cannot be a word that is reserved by the service\\. A list of reserved words can be found in [Reserved Words](https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html) in the Amazon Redshift Database Developer Guide\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DBName", + "type": "string" + }, + "DeferMaintenance": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeferMaintenance", + "type": "boolean" + }, + "DeferMaintenanceDuration": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeferMaintenanceDuration", + "type": "number" + }, + "DeferMaintenanceEndTime": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeferMaintenanceEndTime", + "type": "string" + }, + "DeferMaintenanceStartTime": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeferMaintenanceStartTime", + "type": "string" + }, + "DestinationRegion": { + "markdownDescription": "The destination region that snapshots are automatically copied to when cross\\-region snapshot copy is enabled\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationRegion", + "type": "string" + }, + "ElasticIp": { + "markdownDescription": "The Elastic IP \\(EIP\\) address for the cluster\\. \nConstraints: The cluster must be provisioned in EC2\\-VPC and publicly\\-accessible through an Internet gateway\\. For more information about provisioning clusters in EC2\\-VPC, go to [Supported Platforms to Launch Your Cluster](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#cluster-platforms) in the Amazon Redshift Cluster Management Guide\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ElasticIp", + "type": "string" + }, + "Encrypted": { + "markdownDescription": "If `true`, the data in the cluster is encrypted at rest\\. \nDefault: false \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encrypted", + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/AWS::Redshift::Cluster.Endpoint" + }, + "EnhancedVpcRouting": { + "markdownDescription": "An option that specifies whether to create the cluster with enhanced VPC routing enabled\\. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC\\. For more information, see [Enhanced VPC Routing](https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html) in the Amazon Redshift Cluster Management Guide\\. \nIf this option is `true`, enhanced VPC routing is enabled\\. \nDefault: false \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnhancedVpcRouting", + "type": "boolean" + }, + "HsmClientCertificateIdentifier": { + "markdownDescription": "Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HsmClientCertificateIdentifier", + "type": "string" + }, + "HsmConfigurationIdentifier": { + "markdownDescription": "Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HsmConfigurationIdentifier", + "type": "string" + }, + "IamRoles": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of AWS Identity and Access Management \\(IAM\\) roles that can be used by the cluster to access other AWS services\\. You must supply the IAM roles in their Amazon Resource Name \\(ARN\\) format\\. \nThe maximum number of IAM roles that you can associate is subject to a quota\\. For more information, go to [Quotas and limits](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) in the *Amazon Redshift Cluster Management Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamRoles", + "type": "array" + }, + "KmsKeyId": { + "markdownDescription": "The AWS Key Management Service \\(KMS\\) key ID of the encryption key that you want to use to encrypt data in the cluster\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", + "type": "string" + }, + "LoggingProperties": { + "$ref": "#/definitions/AWS::Redshift::Cluster.LoggingProperties", + "markdownDescription": "Specifies logging information, such as queries and connection attempts, for the specified Amazon Redshift cluster\\. \n*Required*: No \n*Type*: [LoggingProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-cluster-loggingproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingProperties" + }, + "MaintenanceTrackName": { + "markdownDescription": "An optional parameter for the name of the maintenance track for the cluster\\. If you don't provide a maintenance track name, the cluster is assigned to the `current` track\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaintenanceTrackName", + "type": "string" + }, + "ManualSnapshotRetentionPeriod": { + "markdownDescription": "The default number of days to retain a manual snapshot\\. If the value is \\-1, the snapshot is retained indefinitely\\. This setting doesn't change the retention period of existing snapshots\\. \nThe value must be either \\-1 or an integer between 1 and 3,653\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManualSnapshotRetentionPeriod", + "type": "number" + }, + "MasterUserPassword": { + "markdownDescription": "The password associated with the admin user account for the cluster that is being created\\. \nConstraints: \n+ Must be between 8 and 64 characters in length\\.\n+ Must contain at least one uppercase letter\\.\n+ Must contain at least one lowercase letter\\.\n+ Must contain one number\\.\n+ Can be any printable ASCII character \\(ASCII code 33\\-126\\) except ' \\(single quote\\), \" \\(double quote\\), \\\\, /, or @\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MasterUserPassword", + "type": "string" + }, + "MasterUsername": { + "markdownDescription": "The user name associated with the admin user account for the cluster that is being created\\. \nConstraints: \n+ Must be 1 \\- 128 alphanumeric characters\\. The user name can't be `PUBLIC`\\.\n+ First character must be a letter\\.\n+ Cannot be a reserved word\\. A list of reserved words can be found in [Reserved Words](https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html) in the Amazon Redshift Database Developer Guide\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MasterUsername", + "type": "string" + }, + "NodeType": { + "markdownDescription": "The node type to be provisioned for the cluster\\. For information about node types, go to [ Working with Clusters](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes) in the *Amazon Redshift Cluster Management Guide*\\. \nValid Values: `ds2.xlarge` \\| `ds2.8xlarge` \\| `dc1.large` \\| `dc1.8xlarge` \\| `dc2.large` \\| `dc2.8xlarge` \\| `ra3.xlplus` \\| `ra3.4xlarge` \\| `ra3.16xlarge` \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NodeType", + "type": "string" + }, + "NumberOfNodes": { + "markdownDescription": "The number of compute nodes in the cluster\\. This parameter is required when the **ClusterType** parameter is specified as `multi-node`\\. \nFor information about determining how many nodes you need, go to [ Working with Clusters](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes) in the *Amazon Redshift Cluster Management Guide*\\. \nIf you don't specify this parameter, you get a single\\-node cluster\\. When requesting a multi\\-node cluster, you must specify the number of nodes that you want in the cluster\\. \nDefault: `1` \nConstraints: Value must be at least 1 and no more than 100\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfNodes", + "type": "number" + }, + "OwnerAccount": { + "markdownDescription": "The AWS account used to create or copy the snapshot\\. Required if you are restoring a snapshot you do not own, optional if you own the snapshot\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OwnerAccount", + "type": "string" + }, + "Port": { + "markdownDescription": "The port number on which the cluster accepts incoming connections\\. \nThe cluster is accessible only via the JDBC and ODBC connection strings\\. Part of the connection string requires the port on which the cluster will listen for incoming connections\\. \nDefault: `5439` \nValid Values: `1150-65535` \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "number" + }, + "PreferredMaintenanceWindow": { + "markdownDescription": "The weekly time range \\(in UTC\\) during which automated cluster maintenance can occur\\. \n Format: `ddd:hh24:mi-ddd:hh24:mi` \n Default: A 30\\-minute window selected at random from an 8\\-hour block of time per region, occurring on a random day of the week\\. For more information about the time blocks for each region, see [Maintenance Windows](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-maintenance-windows) in Amazon Redshift Cluster Management Guide\\. \nValid Days: Mon \\| Tue \\| Wed \\| Thu \\| Fri \\| Sat \\| Sun \nConstraints: Minimum 30\\-minute window\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreferredMaintenanceWindow", + "type": "string" + }, + "PubliclyAccessible": { + "markdownDescription": "If `true`, the cluster can be accessed from a public network\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PubliclyAccessible", + "type": "boolean" + }, + "ResourceAction": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceAction", + "type": "string" + }, + "RevisionTarget": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RevisionTarget", + "type": "string" + }, + "RotateEncryptionKey": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RotateEncryptionKey", + "type": "boolean" + }, + "SnapshotClusterIdentifier": { + "markdownDescription": "The name of the cluster the source snapshot was created from\\. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than \\* for the cluster name\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotClusterIdentifier", + "type": "string" + }, + "SnapshotCopyGrantName": { + "markdownDescription": "The name of the snapshot copy grant\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotCopyGrantName", + "type": "string" + }, + "SnapshotCopyManual": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotCopyManual", + "type": "boolean" + }, + "SnapshotCopyRetentionPeriod": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnapshotCopyRetentionPeriod", + "type": "number" + }, + "SnapshotIdentifier": { + "markdownDescription": "The name of the snapshot from which to create the new cluster\\. This parameter isn't case sensitive\\. \nExample: `my-snapshot-id` \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnapshotIdentifier", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of tag instances\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of Virtual Private Cloud \\(VPC\\) security groups to be associated with the cluster\\. \nDefault: The default VPC security group is associated with the cluster\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSecurityGroupIds", + "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": { + "markdownDescription": "The DNS address of the Cluster\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Address", + "type": "string" + }, + "Port": { + "markdownDescription": "The port that the database engine is listening on\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Redshift::Cluster.LoggingProperties": { + "additionalProperties": false, + "properties": { + "BucketName": { + "markdownDescription": "The name of an existing S3 bucket where the log files are to be stored\\. \nConstraints: \n+ Must be in the same region as the cluster\n+ The cluster must have read bucket and put object permissions\n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", + "type": "string" + }, + "S3KeyPrefix": { + "markdownDescription": "The prefix applied to the log file names\\. \nConstraints: \n+ Cannot exceed 512 characters\n+ Cannot contain spaces\\( \\), double quotes \\(\"\\), single quotes \\('\\), a backslash \\(\\\\\\), or control characters\\. The hexadecimal codes for invalid characters are: \n + x00 to x20\n + x22\n + x27\n + x5c\n + x7f or larger\n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The description of the parameter group\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "ParameterGroupFamily": { + "markdownDescription": "The name of the cluster parameter group family that this cluster parameter group is compatible with\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ParameterGroupFamily", + "type": "string" + }, + "Parameters": { + "items": { + "$ref": "#/definitions/AWS::Redshift::ClusterParameterGroup.Parameter" + }, + "markdownDescription": "An array of parameters to be modified\\. A maximum of 20 parameters can be modified in a single request\\. \nFor each parameter to be modified, you must supply at least the parameter name and parameter value; other name\\-value pairs of the parameter are optional\\. \nFor the workload management \\(WLM\\) configuration, you must supply all the name\\-value pairs in the wlm\\_json\\_configuration parameter\\. \n*Required*: No \n*Type*: List of [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-property-redshift-clusterparametergroup-parameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The list of tags for the cluster parameter group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The name of the parameter\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterName", + "type": "string" + }, + "ParameterValue": { + "markdownDescription": "The value of the parameter\\. If `ParameterName` is `wlm_json_configuration`, then the maximum size of `ParameterValue` is 8000 characters\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A description for the security group\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Specifies an arbitrary set of tags \\(key\u2013value pairs\\) to associate with this security group\\. Use tags to manage your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The IP range to be added the Amazon Redshift security group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CIDRIP", + "type": "string" + }, + "ClusterSecurityGroupName": { + "markdownDescription": "The name of the security group to which the ingress rule is added\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterSecurityGroupName", + "type": "string" + }, + "EC2SecurityGroupName": { + "markdownDescription": "The EC2 security group to be added the Amazon Redshift security group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EC2SecurityGroupName", + "type": "string" + }, + "EC2SecurityGroupOwnerId": { + "markdownDescription": "The AWS account number of the owner of the security group specified by the *EC2SecurityGroupName* parameter\\. The AWS Access Key ID is not an acceptable value\\. \nExample: `111122223333` \nConditional\\. If you specify the `EC2SecurityGroupName` property, you must specify this property\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A description for the subnet group\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of VPC subnet IDs\\. A maximum of 20 subnets can be modified in a single request\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Specifies an arbitrary set of tags \\(key\u2013value pairs\\) to associate with this subnet group\\. Use tags to manage your resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The cluster identifier of the cluster associated with the endpoint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterIdentifier", + "type": "string" + }, + "EndpointName": { + "markdownDescription": "The name of the endpoint\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EndpointName", + "type": "string" + }, + "ResourceOwner": { + "markdownDescription": "The AWS account ID of the owner of the cluster\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceOwner", + "type": "string" + }, + "SubnetGroupName": { + "markdownDescription": "The subnet group name where Amazon Redshift chooses to deploy the endpoint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetGroupName", + "type": "string" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The security group that defines the ports, protocols, and sources for inbound traffic that you are authorizing into your endpoint\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcSecurityGroupIds", + "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": { + "markdownDescription": "The status of the endpoint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + }, + "VpcSecurityGroupId": { + "markdownDescription": "The identifier of the VPC security group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The AAWS account ID of either the cluster owner \\(grantor\\) or grantee\\. If `Grantee` parameter is true, then the `Account` value is of the grantor\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Account", + "type": "string" + }, + "ClusterIdentifier": { + "markdownDescription": "The cluster identifier\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterIdentifier", + "type": "string" + }, + "Force": { + "markdownDescription": "Indicates whether to force the revoke action\\. If true, the Redshift\\-managed VPC endpoints associated with the endpoint authorization are also deleted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Force", + "type": "boolean" + }, + "VpcIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The virtual private cloud \\(VPC\\) identifiers to grant access to\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcIds", + "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": { + "markdownDescription": "A boolean value; set to `true` to activate the subscription, and set to `false` to create the subscription but not activate it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "EventCategories": { + "items": { + "type": "string" + }, + "markdownDescription": "Specifies the Amazon Redshift event categories to be published by the event notification subscription\\. \nValues: configuration, management, monitoring, security, pending \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventCategories", + "type": "array" + }, + "Severity": { + "markdownDescription": "Specifies the Amazon Redshift event severity to be published by the event notification subscription\\. \nValues: ERROR, INFO \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Severity", + "type": "string" + }, + "SnsTopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic used to transmit the event notifications\\. The ARN is created by Amazon SNS when you create a topic and subscribe to it\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SnsTopicArn", + "type": "string" + }, + "SourceIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of one or more identifiers of Amazon Redshift source objects\\. All of the objects must be of the same type as was specified in the source type parameter\\. The event subscription will return only events generated by the specified objects\\. If not specified, then events are returned for all objects within the source type specified\\. \nExample: my\\-cluster\\-1, my\\-cluster\\-2 \nExample: my\\-snapshot\\-20131010 \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceIds", + "type": "array" + }, + "SourceType": { + "markdownDescription": "The type of source that will be generating the events\\. For example, if you want to be notified of events generated by a cluster, you would set this parameter to cluster\\. If this value is not specified, events are returned for all Amazon Redshift objects in your AWS account\\. You must specify a source type in order to specify source IDs\\. \nValid values: cluster, cluster\\-parameter\\-group, cluster\\-security\\-group, cluster\\-snapshot, and scheduled\\-action\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceType", + "type": "string" + }, + "SubscriptionName": { + "markdownDescription": "The name of the event subscription to be created\\. \nConstraints: \n+ Cannot be null, empty, or blank\\.\n+ Must contain from 1 to 255 alphanumeric characters or hyphens\\.\n+ First character must be a letter\\.\n+ Cannot end with a hyphen or contain two consecutive hyphens\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubscriptionName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of tag instances\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "If true, the schedule is enabled\\. If false, the scheduled action does not trigger\\. For more information about `state` of the scheduled action, see [AWS::Redshift::ScheduledAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-resource-redshift-scheduledaction.html#aws-resource-redshift-scheduledaction)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enable", + "type": "boolean" + }, + "EndTime": { + "markdownDescription": "The end time in UTC when the schedule is no longer active\\. After this time, the scheduled action does not trigger\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndTime", + "type": "string" + }, + "IamRole": { + "markdownDescription": "The IAM role to assume to run the scheduled action\\. This IAM role must have permission to run the Amazon Redshift API operation in the scheduled action\\. This IAM role must allow the Amazon Redshift scheduler \\(Principal scheduler\\.redshift\\.amazonaws\\.com\\) to assume permissions on your behalf\\. For more information about the IAM role to use with the Amazon Redshift scheduler, see [Using Identity\\-Based Policies for Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html) in the *Amazon Redshift Cluster Management Guide*\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamRole", + "type": "string" + }, + "Schedule": { + "markdownDescription": "The schedule for a one\\-time \\(at format\\) or recurring \\(cron format\\) scheduled action\\. Schedule invocations must be separated by at least one hour\\. \nFormat of at expressions is \"`at(yyyy-mm-ddThh:mm:ss)`\"\\. For example, \"`at(2016-03-04T17:27:00)`\"\\. \nFormat of cron expressions is \"`cron(Minutes Hours Day-of-month Month Day-of-week Year)`\"\\. For example, \"`cron(0 10 ? * MON *)`\"\\. For more information, see [Cron Expressions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions) in the *Amazon CloudWatch Events User Guide*\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule", + "type": "string" + }, + "ScheduledActionDescription": { + "markdownDescription": "The description of the scheduled action\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduledActionDescription", + "type": "string" + }, + "ScheduledActionName": { + "markdownDescription": "The name of the scheduled action\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScheduledActionName", + "type": "string" + }, + "StartTime": { + "markdownDescription": "The start time in UTC when the schedule is active\\. Before this time, the scheduled action does not trigger\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartTime", + "type": "string" + }, + "TargetAction": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ScheduledActionType", + "markdownDescription": "A JSON format string of the Amazon Redshift API operation with input parameters\\. \n\"`{\\\"ResizeCluster\\\":{\\\"NodeType\\\":\\\"ds2.8xlarge\\\",\\\"ClusterIdentifier\\\":\\\"my-test-cluster\\\",\\\"NumberOfNodes\\\":3}}`\"\\. \n*Required*: No \n*Type*: [ScheduledActionType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-scheduledactiontype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetAction" + } + }, + "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": { + "markdownDescription": "The identifier of the cluster to be paused\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterIdentifier", + "type": "string" + } + }, + "required": [ + "ClusterIdentifier" + ], + "type": "object" + }, + "AWS::Redshift::ScheduledAction.ResizeClusterMessage": { + "additionalProperties": false, + "properties": { + "Classic": { + "markdownDescription": "A boolean value indicating whether the resize operation is using the classic resize process\\. If you don't provide this parameter or set the value to `false`, the resize type is elastic\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Classic", + "type": "boolean" + }, + "ClusterIdentifier": { + "markdownDescription": "The unique identifier for the cluster to resize\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterIdentifier", + "type": "string" + }, + "ClusterType": { + "markdownDescription": "The new cluster type for the specified cluster\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterType", + "type": "string" + }, + "NodeType": { + "markdownDescription": "The new node type for the nodes you are adding\\. If not specified, the cluster's current node type is used\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NodeType", + "type": "string" + }, + "NumberOfNodes": { + "markdownDescription": "The new number of nodes for the cluster\\. If not specified, the cluster's current number of nodes is used\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NumberOfNodes", + "type": "number" + } + }, + "required": [ + "ClusterIdentifier" + ], + "type": "object" + }, + "AWS::Redshift::ScheduledAction.ResumeClusterMessage": { + "additionalProperties": false, + "properties": { + "ClusterIdentifier": { + "markdownDescription": "The identifier of the cluster to be resumed\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClusterIdentifier", + "type": "string" + } + }, + "required": [ + "ClusterIdentifier" + ], + "type": "object" + }, + "AWS::Redshift::ScheduledAction.ScheduledActionType": { + "additionalProperties": false, + "properties": { + "PauseCluster": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.PauseClusterMessage", + "markdownDescription": "An action that runs a `PauseCluster` API operation\\. \n*Required*: No \n*Type*: [PauseClusterMessage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-pauseclustermessage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PauseCluster" + }, + "ResizeCluster": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResizeClusterMessage", + "markdownDescription": "An action that runs a `ResizeCluster` API operation\\. \n*Required*: No \n*Type*: [ResizeClusterMessage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-resizeclustermessage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResizeCluster" + }, + "ResumeCluster": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResumeClusterMessage", + "markdownDescription": "An action that runs a `ResumeCluster` API operation\\. \n*Required*: No \n*Type*: [ResumeClusterMessage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-scheduledaction-resumeclustermessage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResumeCluster" + } + }, + "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": { + "markdownDescription": "The password of the administrator for the primary database created in the namespace\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdminUserPassword", + "type": "string" + }, + "AdminUsername": { + "markdownDescription": "The username of the administrator for the primary database created in the namespace\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdminUsername", + "type": "string" + }, + "DbName": { + "markdownDescription": "The name of the primary database created in the namespace\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DbName", + "type": "string" + }, + "DefaultIamRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role to set as a default in the namespace\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultIamRoleArn", + "type": "string" + }, + "FinalSnapshotName": { + "markdownDescription": "The name of the snapshot to be created before the namespace is deleted\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FinalSnapshotName", + "type": "string" + }, + "FinalSnapshotRetentionPeriod": { + "markdownDescription": "How long to retain the final snapshot\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FinalSnapshotRetentionPeriod", + "type": "number" + }, + "IamRoles": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of IAM roles to associate with the namespace\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IamRoles", + "type": "array" + }, + "KmsKeyId": { + "markdownDescription": "The ID of the AWS Key Management Service key used to encrypt your data\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", + "type": "string" + }, + "LogExports": { + "items": { + "type": "string" + }, + "markdownDescription": "The types of logs the namespace can export\\. Available export types are `userlog`, `connectionlog`, and `useractivitylog`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogExports", + "type": "array" + }, + "NamespaceName": { + "markdownDescription": "The name of the namespace\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NamespaceName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The map of the key\\-value pairs used to tag the namespace\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "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": { + "markdownDescription": "The base compute capacity of the workgroup in Redshift Processing Units \\(RPUs\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaseCapacity", + "type": "number" + }, + "ConfigParameters": { + "items": { + "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup.ConfigParameter" + }, + "markdownDescription": "A list of parameters to set for finer control over a database\\. Available options are `datestyle`, `enable_user_activity_logging`, `query_group`, `search_path`, and `max_query_execution_time`\\. \n*Required*: No \n*Type*: List of [ConfigParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshiftserverless-workgroup-configparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConfigParameters", + "type": "array" + }, + "EnhancedVpcRouting": { + "markdownDescription": "The value that specifies whether to enable enhanced virtual private cloud \\(VPC\\) routing, which forces Amazon Redshift Serverless to route traffic through your VPC\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnhancedVpcRouting", + "type": "boolean" + }, + "NamespaceName": { + "markdownDescription": "The namespace the workgroup is associated with\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NamespaceName", + "type": "string" + }, + "Port": { + "type": "number" + }, + "PubliclyAccessible": { + "markdownDescription": "A value that specifies whether the workgroup can be accessible from a public network\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PubliclyAccessible", + "type": "boolean" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of security group IDs to associate with the workgroup\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of subnet IDs the workgroup is associated with\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The map of the key\\-value pairs used to tag the workgroup\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "WorkgroupName": { + "markdownDescription": "The name of the workgroup\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The key of the parameter\\. The options are `datestyle`, `enable_user_activity_logging`, `query_group`, `search_path`, and `max_query_execution_time`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ParameterKey", + "type": "string" + }, + "ParameterValue": { + "markdownDescription": "The value of the parameter to set\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The endpoint URL of the Amazon API Gateway proxy\\. \n*Required*: No \n*Type*: [ApiGatewayProxyInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-refactorspaces-application-apigatewayproxyinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApiGatewayProxy" + }, + "EnvironmentIdentifier": { + "markdownDescription": "The unique identifier of the environment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnvironmentIdentifier", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "ProxyType": { + "markdownDescription": "The proxy type of the proxy created within the application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProxyType", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags assigned to the application\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VpcId": { + "markdownDescription": "The ID of the virtual private cloud \\(VPC\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The type of endpoint to use for the API Gateway proxy\\. If no value is specified in the request, the value is set to `REGIONAL` by default\\. \nIf the value is set to `PRIVATE` in the request, this creates a private API endpoint that is isolated from the public internet\\. The private endpoint can only be accessed by using Amazon Virtual Private Cloud \\(Amazon VPC\\) endpoints for Amazon API Gateway that have been granted access\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EndpointType", + "type": "string" + }, + "StageName": { + "markdownDescription": "The name of the API Gateway stage\\. The name defaults to `prod`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A description of the environment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the environment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "NetworkFabricType": { + "markdownDescription": "The network fabric type of the environment\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkFabricType", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags assigned to the environment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The unique identifier of the application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationIdentifier", + "type": "string" + }, + "DefaultRoute": { + "$ref": "#/definitions/AWS::RefactorSpaces::Route.DefaultRouteInput" + }, + "EnvironmentIdentifier": { + "markdownDescription": "The unique identifier of the environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnvironmentIdentifier", + "type": "string" + }, + "RouteType": { + "markdownDescription": "The route type of the route\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RouteType", + "type": "string" + }, + "ServiceIdentifier": { + "markdownDescription": "The unique identifier of the service\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServiceIdentifier", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags assigned to the route\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "UriPathRoute": { + "$ref": "#/definitions/AWS::RefactorSpaces::Route.UriPathRouteInput", + "markdownDescription": "The configuration for the URI path route type\\. \n*Required*: No \n*Type*: [UriPathRouteInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-refactorspaces-route-uripathrouteinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UriPathRoute" + } + }, + "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": { + "markdownDescription": "Indicates whether traffic is forwarded to this route\u2019s service after the route is created\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ActivationState", + "type": "string" + }, + "IncludeChildPaths": { + "markdownDescription": "Indicates whether to match all subpaths of the given source path\\. If this value is `false`, requests must match the source path exactly before they are forwarded to this route's service\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IncludeChildPaths", + "type": "boolean" + }, + "Methods": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of HTTP methods to match\\. An empty list matches all values\\. If a method is present, only HTTP requests using that method are forwarded to this route\u2019s service\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Methods", + "type": "array" + }, + "SourcePath": { + "markdownDescription": "The path to use to match traffic\\. Paths must start with `/` and are relative to the base of the application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The unique identifier of the application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ApplicationIdentifier", + "type": "string" + }, + "Description": { + "markdownDescription": "A description of the service\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "EndpointType": { + "markdownDescription": "The endpoint type of the service\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EndpointType", + "type": "string" + }, + "EnvironmentIdentifier": { + "markdownDescription": "The unique identifier of the environment\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnvironmentIdentifier", + "type": "string" + }, + "LambdaEndpoint": { + "$ref": "#/definitions/AWS::RefactorSpaces::Service.LambdaEndpointInput", + "markdownDescription": "A summary of the configuration for the AWS Lambda endpoint type\\. \n*Required*: No \n*Type*: [LambdaEndpointInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-refactorspaces-service-lambdaendpointinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LambdaEndpoint" + }, + "Name": { + "markdownDescription": "The name of the service\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags assigned to the service\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "UrlEndpoint": { + "$ref": "#/definitions/AWS::RefactorSpaces::Service.UrlEndpointInput", + "markdownDescription": "The summary of the configuration for the URL endpoint type\\. \n*Required*: No \n*Type*: [UrlEndpointInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-refactorspaces-service-urlendpointinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UrlEndpoint" + }, + "VpcId": { + "markdownDescription": "The ID of the virtual private cloud \\(VPC\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Lambda endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Arn", + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::RefactorSpaces::Service.UrlEndpointInput": { + "additionalProperties": false, + "properties": { + "HealthUrl": { + "markdownDescription": "The health check URL of the URL endpoint type\\. If the URL is a public endpoint, the `HealthUrl` must also be a public endpoint\\. If the URL is a private endpoint inside a virtual private cloud \\(VPC\\), the health URL must also be a private endpoint, and the host must be the same as the URL\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HealthUrl", + "type": "string" + }, + "Url": { + "markdownDescription": "The URL to route traffic to\\. The URL must be an [rfc3986\\-formatted URL](https://datatracker.ietf.org/doc/html/rfc3986)\\. If the host is a domain name, the name must be resolvable over the public internet\\. If the scheme is `https`, the top level domain of the host must be listed in the [IANA root zone database](https://www.iana.org/domains/root/db)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "ID for the collection that you are creating\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.\\-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CollectionId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A set of tags \\(key\\-value pairs\\) that you want to attach to the collection\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The name of the project to create\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.\\-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A string containing a full Resilience Hub app template body\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppTemplateBody", + "type": "string" + }, + "Description": { + "markdownDescription": "The optional description for an app\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name for the application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "ResiliencyPolicyArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the resiliency policy\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResiliencyPolicyArn", + "type": "string" + }, + "ResourceMappings": { + "items": { + "$ref": "#/definitions/AWS::ResilienceHub::App.ResourceMapping" + }, + "markdownDescription": "An array of ResourceMapping objects\\. \n*Required*: Yes \n*Type*: List of [ResourceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resiliencehub-app-resourcemapping.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceMappings", + "type": "array" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "The tags assigned to the resource\\. A tag is a label that you assign to an AWS resource\\. Each tag consists of a key/value pair\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "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": { + "markdownDescription": "The AWS account that owns the physical resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsAccountId", + "type": "string" + }, + "AwsRegion": { + "markdownDescription": "The AWS Region that the physical resource is located in\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsRegion", + "type": "string" + }, + "Identifier": { + "markdownDescription": "The identifier of the physical resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Identifier", + "type": "string" + }, + "Type": { + "markdownDescription": "Specifies the type of physical resource identifier\\. \nArn \nThe resource identifier is an Amazon Resource Name \\(ARN\\) \\. \nNative \nThe resource identifier is a Resilience Hub\\-native identifier\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Identifier", + "Type" + ], + "type": "object" + }, + "AWS::ResilienceHub::App.ResourceMapping": { + "additionalProperties": false, + "properties": { + "LogicalStackName": { + "markdownDescription": "The name of the CloudFormation stack this resource is mapped to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogicalStackName", + "type": "string" + }, + "MappingType": { + "markdownDescription": "Specifies the type of resource mapping\\. \nAppRegistryApp \nThe resource is mapped to another application\\. The name of the application is contained in the `appRegistryAppName` property\\. \nCfnStack \nThe resource is mapped to a CloudFormation stack\\. The name of the CloudFormation stack is contained in the `logicalStackName` property\\. \nResource \nThe resource is mapped to another resource\\. The name of the resource is contained in the `resourceName` property\\. \nResourceGroup \nThe resource is mapped to a resource group\\. The name of the resource group is contained in the `resourceGroupName` property\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MappingType", + "type": "string" + }, + "PhysicalResourceId": { + "$ref": "#/definitions/AWS::ResilienceHub::App.PhysicalResourceId", + "markdownDescription": "The identifier of this resource\\. \n*Required*: Yes \n*Type*: [PhysicalResourceId](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resiliencehub-app-physicalresourceid.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PhysicalResourceId" + }, + "ResourceName": { + "markdownDescription": "The name of the resource this resource is mapped to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Specifies a high\\-level geographical location constraint for where your resilience policy data can be stored\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataLocationConstraint", + "type": "string" + }, + "Policy": { + "additionalProperties": false, + "markdownDescription": "The resiliency policy\\. \n*Required*: Yes \n*Type*: Map of [FailurePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resiliencehub-resiliencypolicy-failurepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::ResilienceHub::ResiliencyPolicy.FailurePolicy" + } + }, + "title": "Policy", + "type": "object" + }, + "PolicyDescription": { + "markdownDescription": "The description for the policy\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDescription", + "type": "string" + }, + "PolicyName": { + "markdownDescription": "The name of the policy \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyName", + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "The tags assigned to the resource\\. A tag is a label that you assign to an AWS resource\\. Each tag consists of a key/value pair\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "type": "object" + }, + "Tier": { + "markdownDescription": "The tier for this resiliency policy, ranging from the highest severity \\(`MissionCritical`\\) to lowest \\(`NonCritical`\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Recovery Point Objective \\(RPO\\), in seconds\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RpoInSecs", + "type": "number" + }, + "RtoInSecs": { + "markdownDescription": "The Recovery Time Objective \\(RTO\\), in seconds\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The service configuration currently associated with the resource group and in effect for the members of the resource group\\. A `Configuration` consists of one or more `ConfigurationItem` entries\\. For information about service configurations for resource groups and how to construct them, see [Service configurations for resource groups](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html) in the *AWS Resource Groups User Guide*\\. \nYou can include either a `Configuration` or a `ResourceQuery`, but not both\\.\n*Required*: Conditional \n*Type*: List of [ConfigurationItem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-configurationitem.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configuration", + "type": "array" + }, + "Description": { + "markdownDescription": "The description of the resource group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of a resource group\\. The name must be unique within the AWS Region in which you create the resource\\. To create multiple resource groups based on the same CloudFormation stack, you must generate unique names for each\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "ResourceQuery": { + "$ref": "#/definitions/AWS::ResourceGroups::Group.ResourceQuery", + "markdownDescription": "The resource query structure that is used to dynamically determine which AWS resources are members of the associated resource group\\. For more information about queries and how to construct them, see [Build queries and groups in AWS Resource Groups](https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html) in the *AWS Resource Groups User Guide* \n+ You can include either a `ResourceQuery` or a `Configuration`, but not both\\.\n+ You can specify the group's membership either by using a `ResourceQuery` or by using a list of `Resources`, but not both\\.\n*Required*: Conditional \n*Type*: [ResourceQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-resourcequery.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceQuery" + }, + "Resources": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of the Amazon Resource Names \\(ARNs\\) of AWS resources that you want to add to the specified group\\. \n+ You can specify the group membership either by using a list of `Resources` or by using a `ResourceQuery`, but not both\\.\n+ You can include a `Resources` property only if you also specify a `Configuration` property\\.\n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Resources", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tag key and value pairs that are attached to the resource group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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" + }, + "markdownDescription": "A collection of parameters for this configuration item\\. For the list of parameters that you can use with each configuration item `Type`, see [Supported resource types and parameters](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types) in the *AWS Resource Groups User Guide*\\. \n*Required*: No \n*Type*: List of [ConfigurationParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-configurationparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "array" + }, + "Type": { + "markdownDescription": "Specifies the type of configuration item\\. Each item must have a unique value for type\\. For the list of the types that you can specify for a configuration item, see [Supported resource types and parameters](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types) in the *AWS Resource Groups User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ResourceGroups::Group.ConfigurationParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the group configuration parameter\\. For the list of parameters that you can use with each configuration item type, see [Supported resource types and parameters](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types) in the *AWS Resource Groups User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "The value or values to be used for the specified parameter\\. For the list of values you can use with each parameter, see [Supported resource types and parameters](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ResourceGroups::Group.Query": { + "additionalProperties": false, + "properties": { + "ResourceTypeFilters": { + "items": { + "type": "string" + }, + "markdownDescription": "Specifies limits to the types of resources that can be included in the resource group\\. For example, if `ResourceTypeFilters` is `[\"AWS::EC2::Instance\", \"AWS::DynamoDB::Table\"]`, only EC2 instances or DynamoDB tables can be members of this resource group\\. The default value is `[\"AWS::AllSupported\"]`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceTypeFilters", + "type": "array" + }, + "StackIdentifier": { + "markdownDescription": "Specifies the ARN of a CloudFormation stack\\. All supported resources of the CloudFormation stack are members of the resource group\\. If you don't specify an ARN, this parameter defaults to the current stack that you are defining, which means that all the resources of the current stack are grouped\\. \nYou can specify a value for `StackIdentifier` only when the `ResourceQuery.Type` property is `CLOUDFORMATION_STACK_1_0.` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StackIdentifier", + "type": "string" + }, + "TagFilters": { + "items": { + "$ref": "#/definitions/AWS::ResourceGroups::Group.TagFilter" + }, + "markdownDescription": "A list of key\\-value pair objects that limit which resources can be members of the resource group\\. This property is required when the `ResourceQuery.Type` property is `TAG_FILTERS_1_0`\\. \nA resource must have a tag that matches every filter that is provided in the `TagFilters` list\\. \n*Required*: Conditional \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagFilters", + "type": "array" + } + }, + "type": "object" + }, + "AWS::ResourceGroups::Group.ResourceQuery": { + "additionalProperties": false, + "properties": { + "Query": { + "$ref": "#/definitions/AWS::ResourceGroups::Group.Query", + "markdownDescription": "The query that defines the membership of the group\\. This is a structure with properties that depend on the `Type`\\. \nThe `Query` structure must be included in the following scenarios: \n+ When the `Type` is `TAG_FILTERS_1_0`, you must specify a `Query` structure that contains a `TagFilters` list of tags\\. Resources with tags that match those in the `TagFilter` list become members of the resource group\\.\n+ When the `Type` is `CLOUDFORMATION_STACK_1_0` then this field is required only when you must specify a CloudFormation stack other than the one you are defining\\. To do this, the `Query` structure must contain the `StackIdentifier` property\\. If you don't specify either a `Query` structure or a `StackIdentifier` within that `Query`, then it defaults to the CloudFormation stack that you're currently constructing\\.\n*Required*: No \n*Type*: [Query](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resourcegroups-group-query.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Query" + }, + "Type": { + "markdownDescription": "Specifies the type of resource query that determines this group's membership\\. There are two valid query types: \n+ `TAG_FILTERS_1_0` indicates that the group is a tag\\-based group\\. To complete the group membership, you must include the `TagFilters` property to specify the tag filters to use in the query\\.\n+ `CLOUDFORMATION_STACK_1_0`, the default, indicates that the group is a CloudFormation stack\\-based group\\. Group membership is based on the CloudFormation stack\\. You must specify the `StackIdentifier` property in the query to define which stack to associate the group with, or leave it empty to default to the stack where the group is defined\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "type": "object" + }, + "AWS::ResourceGroups::Group.TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "A string that defines a tag key\\. Only resources in the account that are tagged with a specified tag key are members of the tag\\-based resource group\\. \nThis field is required when the `ResourceQuery` structure's `Type` property is `TAG_FILTERS_1_0`\\. You must specify at least one tag key\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of tag values that can be included in the tag\\-based resource group\\. This is optional\\. If you don't specify a value or values for a key, then an AWS resource with any value for that key is a member\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "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": { + "markdownDescription": "The name of the fleet\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "The list of all tags added to the fleet\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "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": { + "markdownDescription": "The architecture of the robot\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ARM64 | ARMHF | X86_64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Architecture", + "type": "string" + }, + "Fleet": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the fleet to which the robot will be registered\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Fleet", + "type": "string" + }, + "GreengrassGroupId": { + "markdownDescription": "The Greengrass group associated with the robot\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1224` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "GreengrassGroupId", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the robot\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "A map that contains tag keys and tag values that are attached to the robot\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "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": { + "markdownDescription": "The current revision id\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CurrentRevisionId", + "type": "string" + }, + "Environment": { + "markdownDescription": "The environment of the robot application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Environment", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the robot application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RobotSoftwareSuite": { + "$ref": "#/definitions/AWS::RoboMaker::RobotApplication.RobotSoftwareSuite", + "markdownDescription": "The robot software suite \\(ROS distribuition\\) used by the robot application\\. \n*Required*: Yes \n*Type*: [RobotSoftwareSuite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-robotsoftwaresuite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RobotSoftwareSuite" + }, + "Sources": { + "items": { + "$ref": "#/definitions/AWS::RoboMaker::RobotApplication.SourceConfig" + }, + "markdownDescription": "The sources of the robot application\\. \n*Required*: No \n*Type*: List of [SourceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-robotapplication-sourceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sources", + "type": "array" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "A map that contains tag keys and tag values that are attached to the robot application\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "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": { + "markdownDescription": "The name of the robot software suite \\(ROS distribution\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `General | ROS | ROS2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Version": { + "markdownDescription": "The version of the robot software suite \\(ROS distribution\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Dashing | Foxy | Kinetic | Melodic` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::RoboMaker::RobotApplication.SourceConfig": { + "additionalProperties": false, + "properties": { + "Architecture": { + "markdownDescription": "The target processor architecture for the application\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ARM64 | ARMHF | X86_64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Architecture", + "type": "string" + }, + "S3Bucket": { + "markdownDescription": "The Amazon S3 bucket name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `[a-z0-9][a-z0-9.\\-]*[a-z0-9]` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Bucket", + "type": "string" + }, + "S3Key": { + "markdownDescription": "The s3 object key\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The application information for the robot application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1224` \n*Pattern*: `arn:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Application", + "type": "string" + }, + "CurrentRevisionId": { + "markdownDescription": "The current revision id for the robot application\\. If you provide a value and it matches the latest revision ID, a new version will be created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `40` \n*Pattern*: `[a-zA-Z0-9_.\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The current revision id\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CurrentRevisionId", + "type": "string" + }, + "Environment": { + "markdownDescription": "The environment of the simulation application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Environment", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the simulation application\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RenderingEngine": { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.RenderingEngine", + "markdownDescription": "The rendering engine for the simulation application\\. \n*Required*: No \n*Type*: [RenderingEngine](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-renderingengine.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RenderingEngine" + }, + "RobotSoftwareSuite": { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.RobotSoftwareSuite", + "markdownDescription": "The robot software suite \\(ROS distribution\\) used by the simulation application\\. \n*Required*: Yes \n*Type*: [RobotSoftwareSuite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-robotsoftwaresuite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RobotSoftwareSuite" + }, + "SimulationSoftwareSuite": { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.SimulationSoftwareSuite", + "markdownDescription": "The simulation software suite used by the simulation application\\. \n*Required*: Yes \n*Type*: [SimulationSoftwareSuite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-simulationsoftwaresuite.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SimulationSoftwareSuite" + }, + "Sources": { + "items": { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.SourceConfig" + }, + "markdownDescription": "The sources of the simulation application\\. \n*Required*: No \n*Type*: List of [SourceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-robomaker-simulationapplication-sourceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sources", + "type": "array" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "A map that contains tag keys and tag values that are attached to the simulation application\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "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": { + "markdownDescription": "The name of the rendering engine\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `OGRE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Version": { + "markdownDescription": "The version of the rendering engine\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4` \n*Pattern*: `1.x` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", + "type": "string" + } + }, + "required": [ + "Name", + "Version" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.RobotSoftwareSuite": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the robot software suite \\(ROS distribution\\)\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `General | ROS | ROS2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Version": { + "markdownDescription": "The version of the robot software suite \\(ROS distribution\\)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Dashing | Foxy | Kinetic | Melodic` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.SimulationSoftwareSuite": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the simulation software suite\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Gazebo | RosbagPlay | SimulationRuntime` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Version": { + "markdownDescription": "The version of the simulation software suite\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Pattern*: `7|9|11|Kinetic|Melodic|Dashing|Foxy` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.SourceConfig": { + "additionalProperties": false, + "properties": { + "Architecture": { + "markdownDescription": "The target processor architecture for the application\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ARM64 | ARMHF | X86_64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Architecture", + "type": "string" + }, + "S3Bucket": { + "markdownDescription": "The Amazon S3 bucket name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `[a-z0-9][a-z0-9.\\-]*[a-z0-9]` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Bucket", + "type": "string" + }, + "S3Key": { + "markdownDescription": "The s3 object key\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The application information for the simulation application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1224` \n*Pattern*: `arn:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Application", + "type": "string" + }, + "CurrentRevisionId": { + "markdownDescription": "The current revision id for the simulation application\\. If you provide a value and it matches the latest revision ID, a new version will be created\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `40` \n*Pattern*: `[a-zA-Z0-9_.\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + } + }, + "required": [ + "CrlData", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RolesAnywhere::CRL" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "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" + } + }, + "required": [ + "Name", + "RoleArns" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RolesAnywhere::Profile" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "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" + } + }, + "required": [ + "Name", + "Source" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RolesAnywhere::TrustAnchor" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "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": { + "markdownDescription": "A unique string \\(ID\\) that is used to identify a hosted zone\\. For example: `Z00001111A1ABCaaABC11`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "A complex type that contains detailed information about one health check\\. \nFor the values to enter for `HealthCheckConfig`, see [HealthCheckConfig](https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html) \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckConfig" + }, + "HealthCheckTags": { + "items": { + "$ref": "#/definitions/AWS::Route53::HealthCheck.HealthCheckTag" + }, + "markdownDescription": "The `HealthCheckTags` property describes key\\-value pairs that are associated with an `AWS::Route53::HealthCheck` resource\\. \n*Required*: No \n*Type*: List of [HealthCheckTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthchecktag.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckTags", + "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": { + "markdownDescription": "The value of `Key` depends on the operation that you want to perform: \n+ **Add a tag to a health check or hosted zone**: `Key` is the name that you want to give the new tag\\.\n+ **Edit a tag**: `Key` is the name of the tag that you want to change the `Value` for\\.\n+ ** Delete a key**: `Key` is the name of the tag you want to remove\\.\n+ **Give a name to a health check**: Edit the default `Name` tag\\. In the Amazon Route 53 console, the list of your health checks includes a **Name** column that lets you see the name that you've given to each health check\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of `Value` depends on the operation that you want to perform: \n+ **Add a tag to a health check or hosted zone**: `Value` is the value that you want to give the new tag\\.\n+ **Edit a tag**: `Value` is the new value that you want to assign the tag\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "A complex type that contains an optional comment\\. \nIf you don't want to specify a comment, omit the `HostedZoneConfig` and `Comment` elements\\. \n*Required*: No \n*Type*: [HostedZoneConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzoneconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostedZoneConfig" + }, + "HostedZoneTags": { + "items": { + "$ref": "#/definitions/AWS::Route53::HostedZone.HostedZoneTag" + }, + "markdownDescription": "Adds, edits, or deletes tags for a health check or a hosted zone\\. \nFor information about using tags for cost allocation, see [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) in the * AWS Billing and Cost Management User Guide*\\. \n*Required*: No \n*Type*: List of [HostedZoneTag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzonetag.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostedZoneTags", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the domain\\. Specify a fully qualified domain name, for example, *www\\.example\\.com*\\. The trailing dot is optional; Amazon Route 53 assumes that the domain name is fully qualified\\. This means that Route 53 treats *www\\.example\\.com* \\(without a trailing dot\\) and *www\\.example\\.com\\.* \\(with a trailing dot\\) as identical\\. \nIf you're creating a public hosted zone, this is the name you have registered with your DNS registrar\\. If your domain name is registered with a registrar other than Route 53, change the name servers for your domain to the set of `NameServers` that are returned by the `Fn::GetAtt` intrinsic function\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "QueryLoggingConfig": { + "$ref": "#/definitions/AWS::Route53::HostedZone.QueryLoggingConfig", + "markdownDescription": "Creates a configuration for DNS query logging\\. After you create a query logging configuration, Amazon Route 53 begins to publish log data to an Amazon CloudWatch Logs log group\\. \nDNS query logs contain information about the queries that Route 53 receives for a specified public hosted zone, such as the following: \n+ Route 53 edge location that responded to the DNS query\n+ Domain or subdomain that was requested\n+ DNS record type, such as A or AAAA\n+ DNS response code, such as `NoError` or `ServFail` \nLog Group and Resource Policy \nBefore you create a query logging configuration, perform the following operations\\. \nIf you create a query logging configuration using the Route 53 console, Route 53 performs these operations automatically\\.", + "title": "QueryLoggingConfig" + }, + "VPCs": { + "items": { + "$ref": "#/definitions/AWS::Route53::HostedZone.VPC" + }, + "markdownDescription": "*Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone\\. \nFor public hosted zones, omit `VPCs`, `VPCId`, and `VPCRegion`\\.\n*Required*: No \n*Type*: List of [VPC](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-vpc.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VPCs", + "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": { + "markdownDescription": "Any comments that you want to include about the hosted zone\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Route53::HostedZone.HostedZoneTag": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The value of `Key` depends on the operation that you want to perform: \n+ **Add a tag to a health check or hosted zone**: `Key` is the name that you want to give the new tag\\.\n+ **Edit a tag**: `Key` is the name of the tag that you want to change the `Value` for\\.\n+ ** Delete a key**: `Key` is the name of the tag you want to remove\\.\n+ **Give a name to a health check**: Edit the default `Name` tag\\. In the Amazon Route 53 console, the list of your health checks includes a **Name** column that lets you see the name that you've given to each health check\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of `Value` depends on the operation that you want to perform: \n+ **Add a tag to a health check or hosted zone**: `Value` is the value that you want to give the new tag\\.\n+ **Edit a tag**: `Value` is the new value that you want to assign the tag\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::Route53::HostedZone.QueryLoggingConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the CloudWatch Logs log group that Amazon Route 53 is publishing logs to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogsLogGroupArn", + "type": "string" + } + }, + "required": [ + "CloudWatchLogsLogGroupArn" + ], + "type": "object" + }, + "AWS::Route53::HostedZone.VPC": { + "additionalProperties": false, + "properties": { + "VPCId": { + "markdownDescription": "*Private hosted zones only:* The ID of an Amazon VPC\\. \nFor public hosted zones, omit `VPCs`, `VPCId`, and `VPCRegion`\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VPCId", + "type": "string" + }, + "VPCRegion": { + "markdownDescription": "*Private hosted zones only:* The region that an Amazon VPC was created in\\. \nFor public hosted zones, omit `VPCs`, `VPCId`, and `VPCRegion`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `af-south-1 | ap-east-1 | ap-northeast-1 | ap-northeast-2 | ap-northeast-3 | ap-south-1 | ap-southeast-1 | ap-southeast-2 | ap-southeast-3 | ca-central-1 | cn-north-1 | eu-central-1 | eu-north-1 | eu-south-1 | eu-west-1 | eu-west-2 | eu-west-3 | me-south-1 | sa-east-1 | us-east-1 | us-east-2 | us-gov-east-1 | us-gov-west-1 | us-iso-east-1 | us-iso-west-1 | us-isob-east-1 | us-west-1 | us-west-2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The unique string \\(ID\\) that is used to identify a hosted zone\\. For example: `Z00001111A1ABCaaABC11`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostedZoneId", + "type": "string" + }, + "KeyManagementServiceArn": { + "markdownDescription": "The Amazon resource name \\(ARN\\) for a customer managed customer master key \\(CMK\\) in AWS Key Management Service \\(AWS KMS \\)\\. The `KeyManagementServiceArn` must be unique for each key\\-signing key \\(KSK\\) in a single hosted zone\\. For example: `arn:aws:kms:us-east-1:111122223333:key/111a2222-a11b-1ab1-2ab2-1ab21a2b3a111`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KeyManagementServiceArn", + "type": "string" + }, + "Name": { + "markdownDescription": "A string used to identify a key\\-signing key \\(KSK\\)\\. `Name` can include numbers, letters, and underscores \\(\\_\\)\\. `Name` must be unique for each key\\-signing key in the same hosted zone\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Status": { + "markdownDescription": "A string that represents the current key\\-signing key \\(KSK\\) status\\. \nStatus can have one of the following values: \nACTIVE \nThe KSK is being used for signing\\. \nINACTIVE \nThe KSK is not being used for signing\\. \nDELETING \nThe KSK is in the process of being deleted\\. \nACTION\\_NEEDED \nThere is a problem with the KSK that requires you to take action to resolve\\. For example, the customer managed key might have been deleted, or the permissions for the customer managed key might have been changed\\. \nINTERNAL\\_FAILURE \nThere was an error during a request\\. Before you can continue to work with DNSSEC signing, including actions that involve this KSK, you must correct the problem\\. For example, you may need to activate or deactivate the KSK\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `5` \n*Maximum*: `150` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + } + }, + "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", + "markdownDescription": "*Alias resource record sets only:* Information about the AWS resource, such as a CloudFront distribution or an Amazon S3 bucket, that you want to route traffic to\\. \nIf you're creating resource records sets for a private hosted zone, note the following: \n+ You can't create an alias resource record set in a private hosted zone to route traffic to a CloudFront distribution\\.\n+ Creating geolocation alias resource record sets or latency alias resource record sets in a private hosted zone is unsupported\\.\n+ For information about creating failover resource record sets in a private hosted zone, see [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) in the *Amazon Route 53 Developer Guide*\\.\n*Required*: No \n*Type*: [AliasTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget-1.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AliasTarget" + }, + "CidrRoutingConfig": { + "$ref": "#/definitions/AWS::Route53::RecordSet.CidrRoutingConfig" + }, + "Comment": { + "markdownDescription": "*Optional:* Any comments you want to include about a change batch request\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", + "type": "string" + }, + "Failover": { + "markdownDescription": "*Failover resource record sets only:* To configure failover, you add the `Failover` element to two resource record sets\\. For one resource record set, you specify `PRIMARY` as the value for `Failover`; for the other resource record set, you specify `SECONDARY`\\. In addition, you include the `HealthCheckId` element and specify the health check that you want Amazon Route 53 to perform for each resource record set\\. \nExcept where noted, the following failover behaviors assume that you have included the `HealthCheckId` element in both resource record sets: \n+ When the primary resource record set is healthy, Route 53 responds to DNS queries with the applicable value from the primary resource record set regardless of the health of the secondary resource record set\\.\n+ When the primary resource record set is unhealthy and the secondary resource record set is healthy, Route 53 responds to DNS queries with the applicable value from the secondary resource record set\\.\n+ When the secondary resource record set is unhealthy, Route 53 responds to DNS queries with the applicable value from the primary resource record set regardless of the health of the primary resource record set\\.\n+ If you omit the `HealthCheckId` element for the secondary resource record set, and if the primary resource record set is unhealthy, Route 53 always responds to DNS queries with the applicable value from the secondary resource record set\\. This is true regardless of the health of the associated endpoint\\.\nYou can't create non\\-failover resource record sets that have the same values for the `Name` and `Type` elements as failover resource record sets\\. \nFor failover alias resource record sets, you must also include the `EvaluateTargetHealth` element and set the value to true\\. \nFor more information about configuring failover for Route 53, see the following topics in the *Amazon Route 53 Developer Guide*: \n+ [Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) \n+ [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) \n*Required*: No \n*Type*: String \n*Allowed values*: `PRIMARY | SECONDARY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Failover", + "type": "string" + }, + "GeoLocation": { + "$ref": "#/definitions/AWS::Route53::RecordSet.GeoLocation", + "markdownDescription": "*Geolocation resource record sets only:* A complex type that lets you control how Amazon Route 53 responds to DNS queries based on the geographic origin of the query\\. For example, if you want all queries from Africa to be routed to a web server with an IP address of `192.0.2.111`, create a resource record set with a `Type` of `A` and a `ContinentCode` of `AF`\\. \nAlthough creating geolocation and geolocation alias resource record sets in a private hosted zone is allowed, it's not supported\\.\nIf you create separate resource record sets for overlapping geographic regions \\(for example, one resource record set for a continent and one for a country on the same continent\\), priority goes to the smallest geographic region\\. This allows you to route most queries for a continent to one resource and to route queries for a country on that continent to a different resource\\. \nYou can't create two geolocation resource record sets that specify the same geographic location\\. \nThe value `*` in the `CountryCode` element matches all geographic locations that aren't specified in other geolocation resource record sets that have the same values for the `Name` and `Type` elements\\. \nGeolocation works by mapping IP addresses to locations\\. However, some IP addresses aren't mapped to geographic locations, so even if you create geolocation resource record sets that cover all seven continents, Route 53 will receive some DNS queries from locations that it can't identify\\. We recommend that you create a resource record set for which the value of `CountryCode` is `*`\\. Two groups of queries are routed to the resource that you specify in this record: queries that come from locations for which you haven't created geolocation resource record sets and queries from IP addresses that aren't mapped to a location\\. If you don't create a `*` resource record set, Route 53 returns a \"no answer\" response for queries from those locations\\.\nYou can't create non\\-geolocation resource record sets that have the same values for the `Name` and `Type` elements as geolocation resource record sets\\. \n*Required*: No \n*Type*: [GeoLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation-1.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GeoLocation" + }, + "HealthCheckId": { + "markdownDescription": "If you want Amazon Route 53 to return this resource record set in response to a DNS query only when the status of a health check is healthy, include the `HealthCheckId` element and specify the ID of the applicable health check\\. \nRoute 53 determines whether a resource record set is healthy based on one of the following: \n+ By periodically sending a request to the endpoint that is specified in the health check\n+ By aggregating the status of a specified group of health checks \\(calculated health checks\\)\n+ By determining the current state of a CloudWatch alarm \\(CloudWatch metric health checks\\)\nRoute 53 doesn't check the health of the endpoint that is specified in the resource record set, for example, the endpoint specified by the IP address in the `Value` element\\. When you add a `HealthCheckId` element to a resource record set, Route 53 checks the health of the endpoint that you specified in the health check\\. \nFor more information, see the following topics in the *Amazon Route 53 Developer Guide*: \n+ [How Amazon Route 53 Determines Whether an Endpoint Is Healthy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html) \n+ [Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) \n+ [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) \n **When to Specify HealthCheckId** \nSpecifying a value for `HealthCheckId` is useful only when Route 53 is choosing between two or more resource record sets to respond to a DNS query, and you want Route 53 to base the choice in part on the status of a health check\\. Configuring health checks makes sense only in the following configurations: \n+ **Non\\-alias resource record sets**: You're checking the health of a group of non\\-alias resource record sets that have the same routing policy, name, and type \\(such as multiple weighted records named www\\.example\\.com with a type of A\\) and you specify health check IDs for all the resource record sets\\.", + "title": "HealthCheckId", + "type": "string" + }, + "HostedZoneId": { + "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*Required*: No \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostedZoneId", + "type": "string" + }, + "HostedZoneName": { + "markdownDescription": "The name of the hosted zone that you want to create records in\\. You must include a trailing dot \\(for example, `www.example.com.`\\) as part of the `HostedZoneName`\\. \nWhen you create a stack using an AWS::Route53::RecordSet that specifies `HostedZoneName`, AWS CloudFormation attempts to find a hosted zone whose name matches the HostedZoneName\\. If AWS CloudFormation cannot find a hosted zone with a matching domain name, or if there is more than one hosted zone with the specified domain name, AWS CloudFormation will not create the stack\\. \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*Required*: No \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostedZoneName", + "type": "string" + }, + "MultiValueAnswer": { + "markdownDescription": "*Multivalue answer resource record sets only*: To route traffic approximately randomly to multiple resources, such as web servers, create one multivalue answer record for each resource and specify `true` for `MultiValueAnswer`\\. Note the following: \n+ If you associate a health check with a multivalue answer resource record set, Amazon Route 53 responds to DNS queries with the corresponding IP address only when the health check is healthy\\.\n+ If you don't associate a health check with a multivalue answer record, Route 53 always considers the record to be healthy\\.\n+ Route 53 responds to DNS queries with up to eight healthy records; if you have eight or fewer healthy records, Route 53 responds to all DNS queries with all the healthy records\\.\n+ If you have more than eight healthy records, Route 53 responds to different DNS resolvers with different combinations of healthy records\\.\n+ When all records are unhealthy, Route 53 responds to DNS queries with up to eight unhealthy records\\.\n+ If a resource becomes unavailable after a resolver caches a response, client software typically tries another of the IP addresses in the response\\.\nYou can't create multivalue answer alias records\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MultiValueAnswer", + "type": "boolean" + }, + "Name": { + "markdownDescription": "For `ChangeResourceRecordSets` requests, the name of the record that you want to create, update, or delete\\. For `ListResourceRecordSets` responses, the name of a record in the specified hosted zone\\. \n **ChangeResourceRecordSets Only** \nEnter a fully qualified domain name, for example, `www.example.com`\\. You can optionally include a trailing dot\\. If you omit the trailing dot, Amazon Route 53 assumes that the domain name that you specify is fully qualified\\. This means that Route 53 treats `www.example.com` \\(without a trailing dot\\) and `www.example.com.` \\(with a trailing dot\\) as identical\\. \nFor information about how to specify characters other than `a-z`, `0-9`, and `-` \\(hyphen\\) and how to specify internationalized domain names, see [DNS Domain Name Format](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html) in the *Amazon Route 53 Developer Guide*\\. \nYou can use the asterisk \\(\\*\\) wildcard to replace the leftmost label in a domain name, for example, `*.example.com`\\. Note the following: \n+ The \\* must replace the entire label\\. For example, you can't specify `*prod.example.com` or `prod*.example.com`\\.\n+ The \\* can't replace any of the middle labels, for example, marketing\\.\\*\\.example\\.com\\.\n+ If you include \\* in any position other than the leftmost label in a domain name, DNS treats it as an \\* character \\(ASCII 42\\), not as a wildcard\\.\n**Important** \nYou can't use the \\* wildcard for resource records sets that have a type of NS\\.\nYou can use the \\* wildcard as the leftmost label in a domain name, for example, `*.example.com`\\. You can't use an \\* for one of the middle labels, for example, `marketing.*.example.com`\\. In addition, the \\* must replace the entire label; for example, you can't specify `prod*.example.com`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Region": { + "markdownDescription": "*Latency\\-based resource record sets only:* The Amazon EC2 Region where you created the resource that this resource record set refers to\\. The resource typically is an AWS resource, such as an EC2 instance or an ELB load balancer, and is referred to by an IP address or a DNS domain name, depending on the record type\\. \nAlthough creating latency and latency alias resource record sets in a private hosted zone is allowed, it's not supported\\.\nWhen Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region\\. Route 53 then returns the value that is associated with the selected resource record set\\. \nNote the following: \n+ You can only specify one `ResourceRecord` per latency resource record set\\.\n+ You can only create one latency resource record set for each Amazon EC2 Region\\.\n+ You aren't required to create latency resource record sets for all Amazon EC2 Regions\\. Route 53 will choose the region with the best latency from among the regions that you create latency resource record sets for\\.\n+ You can't create non\\-latency resource record sets that have the same values for the `Name` and `Type` elements as latency resource record sets\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `af-south-1 | ap-east-1 | ap-northeast-1 | ap-northeast-2 | ap-northeast-3 | ap-south-1 | ap-southeast-1 | ap-southeast-2 | ap-southeast-3 | ca-central-1 | cn-north-1 | cn-northwest-1 | eu-central-1 | eu-north-1 | eu-south-1 | eu-west-1 | eu-west-2 | eu-west-3 | me-south-1 | sa-east-1 | us-east-1 | us-east-2 | us-west-1 | us-west-2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", + "type": "string" + }, + "ResourceRecords": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more values that correspond with the value that you specified for the `Type` property\\. For example, if you specified `A` for `Type`, you specify one or more IP addresses in IPv4 format for `ResourceRecords`\\. For information about the format of values for each record type, see [Supported DNS Resource Record Types](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html) in the *Amazon Route 53 Developer Guide*\\. \nNote the following: \n+ You can specify more than one value for all record types except CNAME and SOA\\.\n+ The maximum length of a value is 4000 characters\\.\n+ If you're creating an alias record, omit `ResourceRecords`\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceRecords", + "type": "array" + }, + "SetIdentifier": { + "markdownDescription": "*Resource record sets that have a routing policy other than simple:* An identifier that differentiates among multiple resource record sets that have the same combination of name and type, such as multiple weighted resource record sets named acme\\.example\\.com that have a type of A\\. In a group of resource record sets that have the same name and type, the value of `SetIdentifier` must be unique for each resource record set\\. \nFor information about routing policies, see [Choosing a Routing Policy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html) in the *Amazon Route 53 Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SetIdentifier", + "type": "string" + }, + "TTL": { + "markdownDescription": "The resource record cache time to live \\(TTL\\), in seconds\\. Note the following: \n+ If you're creating or updating an alias resource record set, omit `TTL`\\. Amazon Route 53 uses the value of `TTL` for the alias target\\. \n+ If you're associating this resource record set with a health check \\(if you're adding a `HealthCheckId` element\\), we recommend that you specify a `TTL` of 60 seconds or less so clients respond quickly to changes in health status\\.\n+ All of the resource record sets in a group of weighted resource record sets must have the same value for `TTL`\\.\n+ If a group of weighted resource record sets includes one or more weighted alias resource record sets for which the alias target is an ELB load balancer, we recommend that you specify a `TTL` of 60 seconds for all of the non\\-alias weighted resource record sets that have the same name and type\\. Values other than 60 seconds \\(the TTL for load balancers\\) will change the effect of the values that you specify for `Weight`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TTL", + "type": "string" + }, + "Type": { + "markdownDescription": "The DNS record type\\. For information about different record types and how data is encoded for them, see [Supported DNS Resource Record Types](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html) in the *Amazon Route 53 Developer Guide*\\. \nValid values for basic resource record sets: `A` \\| `AAAA` \\| `CAA` \\| `CNAME` \\| `DS` \\|`MX` \\| `NAPTR` \\| `NS` \\| `PTR` \\| `SOA` \\| `SPF` \\| `SRV` \\| `TXT` \nValues for weighted, latency, geolocation, and failover resource record sets: `A` \\| `AAAA` \\| `CAA` \\| `CNAME` \\| `MX` \\| `NAPTR` \\| `PTR` \\| `SPF` \\| `SRV` \\| `TXT`\\. When creating a group of weighted, latency, geolocation, or failover resource record sets, specify the same value for all of the resource record sets in the group\\. \nValid values for multivalue answer resource record sets: `A` \\| `AAAA` \\| `MX` \\| `NAPTR` \\| `PTR` \\| `SPF` \\| `SRV` \\| `TXT` \nSPF records were formerly used to verify the identity of the sender of email messages\\. However, we no longer recommend that you create resource record sets for which the value of `Type` is `SPF`\\. RFC 7208, *Sender Policy Framework \\(SPF\\) for Authorizing Use of Domains in Email, Version 1*, has been updated to say, \"\\.\\.\\.\\[I\\]ts existence and mechanism defined in \\[RFC4408\\] have led to some interoperability issues\\. Accordingly, its use is no longer appropriate for SPF version 1; implementations are not to use it\\.\" In RFC 7208, see section 14\\.1, [The SPF DNS Record Type](http://tools.ietf.org/html/rfc7208#section-14.1)\\.\nValues for alias resource record sets: \n+ **Amazon API Gateway custom regional APIs and edge\\-optimized APIs:** `A` \n+ **CloudFront distributions:** `A`", + "title": "Type", + "type": "string" + }, + "Weight": { + "markdownDescription": "*Weighted resource record sets only:* Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set\\. Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type\\. Route 53 then responds to queries based on the ratio of a resource's weight to the total\\. Note the following: \n+ You must specify a value for the `Weight` element for every weighted resource record set\\.\n+ You can only specify one `ResourceRecord` per weighted resource record set\\.\n+ You can't create latency, failover, or geolocation resource record sets that have the same values for the `Name` and `Type` elements as weighted resource record sets\\.\n+ You can create a maximum of 100 weighted resource record sets that have the same values for the `Name` and `Type` elements\\.\n+ For weighted \\(but not weighted alias\\) resource record sets, if you set `Weight` to `0` for a resource record set, Route 53 never responds to queries with the applicable value for that resource record set\\. However, if you set `Weight` to `0` for all resource record sets that have the same combination of DNS name and type, traffic is routed to all resources with equal probability\\.", + "title": "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": { + "markdownDescription": "*Alias records only:* The value that you specify depends on where you want to route queries: \nAmazon API Gateway custom regional APIs and edge\\-optimized APIs \nSpecify the applicable domain name for your API\\. You can get the applicable value using the AWS CLI command [get\\-domain\\-names](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html): \n+ For regional APIs, specify the value of `regionalDomainName`\\.\n+ For edge\\-optimized APIs, specify the value of `distributionDomainName`\\. This is the name of the associated CloudFront distribution, such as `da1b2c3d4e5.cloudfront.net`\\.\nThe name of the record that you're creating must match a custom domain name for your API, such as `api.example.com`\\. \nAmazon Virtual Private Cloud interface VPC endpoint \nEnter the API endpoint for the interface endpoint, such as `vpce-123456789abcdef01-example-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com`\\. For edge\\-optimized APIs, this is the domain name for the corresponding CloudFront distribution\\. You can get the value of `DnsName` using the AWS CLI command [describe\\-vpc\\-endpoints](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html)\\. \nCloudFront distribution \nSpecify the domain name that CloudFront assigned when you created your distribution\\. \nYour CloudFront distribution must include an alternate domain name that matches the name of the record\\. For example, if the name of the record is *acme\\.example\\.com*, your CloudFront distribution must include *acme\\.example\\.com* as one of the alternate domain names\\. For more information, see [Using Alternate Domain Names \\(CNAMEs\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html) in the *Amazon CloudFront Developer Guide*\\. \nYou can't create a record in a private hosted zone to route traffic to a CloudFront distribution\\. \nFor failover alias records, you can't specify a CloudFront distribution for both the primary and secondary records\\. A distribution must include an alternate domain name that matches the name of the record\\. However, the primary and secondary records have the same name, and you can't include the same alternate domain name in more than one distribution\\. \nElastic Beanstalk environment \nIf the domain name for your Elastic Beanstalk environment includes the region that you deployed the environment in, you can create an alias record that routes traffic to the environment\\. For example, the domain name `my-environment.us-west-2.elasticbeanstalk.com` is a regionalized domain name\\. \nFor environments that were created before early 2016, the domain name doesn't include the region\\. To route traffic to these environments, you must create a CNAME record instead of an alias record\\. Note that you can't create a CNAME record for the root domain name\\. For example, if your domain name is example\\.com, you can create a record that routes traffic for acme\\.example\\.com to your Elastic Beanstalk environment, but you can't create a record that routes traffic for example\\.com to your Elastic Beanstalk environment\\.\nFor Elastic Beanstalk environments that have regionalized subdomains, specify the `CNAME` attribute for the environment\\. You can use the following methods to get the value of the CNAME attribute: \n+ *AWS Management Console*: For information about how to get the value by using the console, see [Using Custom Domains with AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html) in the *AWS Elastic Beanstalk Developer Guide*\\.\n+ *Elastic Beanstalk API*: Use the `DescribeEnvironments` action to get the value of the `CNAME` attribute\\. For more information, see [DescribeEnvironments](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html) in the *AWS Elastic Beanstalk API Reference*\\.\n+ *AWS CLI*: Use the `describe-environments` command to get the value of the `CNAME` attribute\\. For more information, see [describe\\-environments](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html) in the *AWS CLI*\\. \nELB load balancer \nSpecify the DNS name that is associated with the load balancer\\. Get the DNS name by using the AWS Management Console, the ELB API, or the AWS CLI\\. \n+ **AWS Management Console**: Go to the EC2 page, choose **Load Balancers** in the navigation pane, choose the load balancer, choose the **Description** tab, and get the value of the **DNS name** field\\.", + "title": "DNSName", + "type": "string" + }, + "EvaluateTargetHealth": { + "markdownDescription": "*Applies only to alias, failover alias, geolocation alias, latency alias, and weighted alias resource record sets:* When `EvaluateTargetHealth` is `true`, an alias resource record set inherits the health of the referenced AWS resource, such as an ELB load balancer or another resource record set in the hosted zone\\. \nNote the following: \nCloudFront distributions \nYou can't set `EvaluateTargetHealth` to `true` when the alias target is a CloudFront distribution\\. \nElastic Beanstalk environments that have regionalized subdomains \nIf you specify an Elastic Beanstalk environment in `DNSName` and the environment contains an ELB load balancer, Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer\\. \\(An environment automatically contains an ELB load balancer if it includes more than one Amazon EC2 instance\\.\\) If you set `EvaluateTargetHealth` to `true` and either no Amazon EC2 instances are healthy or the load balancer itself is unhealthy, Route 53 routes queries to other available resources that are healthy, if any\\. \nIf the environment contains a single Amazon EC2 instance, there are no special requirements\\. \nELB load balancers \nHealth checking behavior depends on the type of load balancer: \n+ **Classic Load Balancers**: If you specify an ELB Classic Load Balancer in `DNSName`, Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer\\. If you set `EvaluateTargetHealth` to `true` and either no EC2 instances are healthy or the load balancer itself is unhealthy, Route 53 routes queries to other resources\\.\n+ **Application and Network Load Balancers**: If you specify an ELB Application or Network Load Balancer and you set `EvaluateTargetHealth` to `true`, Route 53 routes queries to the load balancer based on the health of the target groups that are associated with the load balancer:\n + For an Application or Network Load Balancer to be considered healthy, every target group that contains targets must contain at least one healthy target\\. If any target group contains only unhealthy targets, the load balancer is considered unhealthy, and Route 53 routes queries to other resources\\.\n + A target group that has no registered targets is considered unhealthy\\.\nWhen you create a load balancer, you configure settings for Elastic Load Balancing health checks; they're not Route 53 health checks, but they perform a similar function\\. Do not create Route 53 health checks for the EC2 instances that you register with an ELB load balancer\\. \nS3 buckets \nThere are no special requirements for setting `EvaluateTargetHealth` to `true` when the alias target is an S3 bucket\\. \nOther records in the same hosted zone \nIf the AWS resource that you specify in `DNSName` is a record or a group of records \\(for example, a group of weighted records\\) but is not another alias record, we recommend that you associate a health check with all of the records in the alias target\\. For more information, see [What Happens When You Omit Health Checks?](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-complex-configs.html#dns-failover-complex-configs-hc-omitting) in the *Amazon Route 53 Developer Guide*\\.\nFor more information and examples, see [Amazon Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) in the *Amazon Route 53 Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EvaluateTargetHealth", + "type": "boolean" + }, + "HostedZoneId": { + "markdownDescription": "*Alias resource records sets only*: The value used depends on where you want to route traffic: \nAmazon API Gateway custom regional APIs and edge\\-optimized APIs \nSpecify the hosted zone ID for your API\\. You can get the applicable value using the AWS CLI command [get\\-domain\\-names](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html): \n+ For regional APIs, specify the value of `regionalHostedZoneId`\\.\n+ For edge\\-optimized APIs, specify the value of `distributionHostedZoneId`\\. \nAmazon Virtual Private Cloud interface VPC endpoint \nSpecify the hosted zone ID for your interface endpoint\\. You can get the value of `HostedZoneId` using the AWS CLI command [describe\\-vpc\\-endpoints](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html)\\. \nCloudFront distribution \nSpecify `Z2FDTNDATAQYW2`\\. This is always the hosted zone ID when you create an alias record that routes traffic to a CloudFront distribution\\. \nAlias records for CloudFront can't be created in a private zone\\. \nElastic Beanstalk environment \nSpecify the hosted zone ID for the region that you created the environment in\\. The environment must have a regionalized subdomain\\. For a list of regions and the corresponding hosted zone IDs, see [AWS Elastic Beanstalk endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/elasticbeanstalk.html) in the *Amazon Web Services General Reference*\\. \nELB load balancer \nSpecify the value of the hosted zone ID for the load balancer\\. Use the following methods to get the hosted zone ID: \n+ [Service Endpoints](https://docs.aws.amazon.com/general/latest/gr/elb.html) table in the \"Elastic Load Balancing Endpoints and Quotas\" topic in the *Amazon Web Services General Reference*: Use the value that corresponds with the region that you created your load balancer in\\. Note that there are separate columns for Application and Classic Load Balancers and for Network Load Balancers\\.\n+ **AWS Management Console**: Go to the Amazon EC2 page, choose **Load Balancers** in the navigation pane, select the load balancer, and get the value of the **Hosted zone** field on the **Description** tab\\.\n+ **Elastic Load Balancing API**: Use `DescribeLoadBalancers` to get the applicable value\\. For more information, see the applicable guide:\n + Classic Load Balancers: Use [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html) to get the value of `CanonicalHostedZoneNameID`\\.\n + Application and Network Load Balancers: Use [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) to get the value of `CanonicalHostedZoneID`\\.\n+ **CloudFormation Fn::GetAtt intrinsic function**: Use the [Fn::GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html) intrinsic function to get the applicable value:\n + Classic Load Balancers: Get [CanonicalHostedZoneNameID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#aws-properties-ec2-elb-return-values)\\. \n + Application and Network Load Balancers: Get [CanonicalHostedZoneID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#aws-resource-elasticloadbalancingv2-loadbalancer-return-values)\\. \n+ **AWS CLI**: Use `describe-load-balancers` to get the applicable value\\. For more information, see the applicable guide:\n + Classic Load Balancers: Use [describe\\-load\\-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) to get the value of `CanonicalHostedZoneNameID`\\.\n + Application and Network Load Balancers: Use [describe\\-load\\-balancers](https://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html) to get the value of `CanonicalHostedZoneID`\\. \nGlobal Accelerator accelerator \nSpecify `Z2BJ6XQ5FK7U4H`\\. \nAn Amazon S3 bucket configured as a static website \nSpecify the hosted zone ID for the region that you created the bucket in\\. For more information about valid values, see the table [Amazon S3 Website Endpoints](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints) in the *Amazon Web Services General Reference*\\. \nAnother Route 53 record in your hosted zone \nSpecify the hosted zone ID of your hosted zone\\. \\(An alias record can't reference a record in a different hosted zone\\.\\)\n*Required*: Yes \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "For geolocation resource record sets, a two\\-letter abbreviation that identifies a continent\\. Route 53 supports the following continent codes: \n+ **AF**: Africa\n+ **AN**: Antarctica\n+ **AS**: Asia\n+ **EU**: Europe\n+ **OC**: Oceania\n+ **NA**: North America\n+ **SA**: South America\nConstraint: Specifying `ContinentCode` with either `CountryCode` or `SubdivisionCode` returns an `InvalidInput` error\\. \n*Required*: No \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContinentCode", + "type": "string" + }, + "CountryCode": { + "markdownDescription": "For geolocation resource record sets, the two\\-letter code for a country\\. \nRoute 53 uses the two\\-letter country codes that are specified in [ISO standard 3166\\-1 alpha\\-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CountryCode", + "type": "string" + }, + "SubdivisionCode": { + "markdownDescription": "For geolocation resource record sets, the two\\-letter code for a state of the United States\\. Route 53 doesn't support any other values for `SubdivisionCode`\\. For a list of state abbreviations, see [Appendix B: Two\u2013Letter State and Possession Abbreviations](https://pe.usps.com/text/pub28/28apb.htm) on the United States Postal Service website\\. \nIf you specify `subdivisioncode`, you must also specify `US` for `CountryCode`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "*Optional:* Any comments you want to include about a change batch request\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", + "type": "string" + }, + "HostedZoneId": { + "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*Required*: No \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostedZoneId", + "type": "string" + }, + "HostedZoneName": { + "markdownDescription": "The name of the hosted zone that you want to create records in\\. You must include a trailing dot \\(for example, `www.example.com.`\\) as part of the `HostedZoneName`\\. \nWhen you create a stack using an `AWS::Route53::RecordSet` that specifies `HostedZoneName`, AWS CloudFormation attempts to find a hosted zone whose name matches the `HostedZoneName`\\. If AWS CloudFormation can't find a hosted zone with a matching domain name, or if there is more than one hosted zone with the specified domain name, AWS CloudFormation will not create the stack\\. \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*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HostedZoneName", + "type": "string" + }, + "RecordSets": { + "items": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.RecordSet" + }, + "markdownDescription": "A complex type that contains one `RecordSet` element for each record that you want to create\\. \n*Required*: No \n*Type*: List of [RecordSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordSets", + "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": { + "markdownDescription": "*Alias records only:* The value that you specify depends on where you want to route queries: \nAmazon API Gateway custom regional APIs and edge\\-optimized APIs \nSpecify the applicable domain name for your API\\. You can get the applicable value using the AWS CLI command [get\\-domain\\-names](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html): \n+ For regional APIs, specify the value of `regionalDomainName`\\.\n+ For edge\\-optimized APIs, specify the value of `distributionDomainName`\\. This is the name of the associated CloudFront distribution, such as `da1b2c3d4e5.cloudfront.net`\\.\nThe name of the record that you're creating must match a custom domain name for your API, such as `api.example.com`\\. \nAmazon Virtual Private Cloud interface VPC endpoint \nEnter the API endpoint for the interface endpoint, such as `vpce-123456789abcdef01-example-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com`\\. For edge\\-optimized APIs, this is the domain name for the corresponding CloudFront distribution\\. You can get the value of `DnsName` using the AWS CLI command [describe\\-vpc\\-endpoints](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html)\\. \nCloudFront distribution \nSpecify the domain name that CloudFront assigned when you created your distribution\\. \nYour CloudFront distribution must include an alternate domain name that matches the name of the record\\. For example, if the name of the record is *acme\\.example\\.com*, your CloudFront distribution must include *acme\\.example\\.com* as one of the alternate domain names\\. For more information, see [Using Alternate Domain Names \\(CNAMEs\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html) in the *Amazon CloudFront Developer Guide*\\. \nYou can't create a record in a private hosted zone to route traffic to a CloudFront distribution\\. \nFor failover alias records, you can't specify a CloudFront distribution for both the primary and secondary records\\. A distribution must include an alternate domain name that matches the name of the record\\. However, the primary and secondary records have the same name, and you can't include the same alternate domain name in more than one distribution\\. \nElastic Beanstalk environment \nIf the domain name for your Elastic Beanstalk environment includes the region that you deployed the environment in, you can create an alias record that routes traffic to the environment\\. For example, the domain name `my-environment.us-west-2.elasticbeanstalk.com` is a regionalized domain name\\. \nFor environments that were created before early 2016, the domain name doesn't include the region\\. To route traffic to these environments, you must create a CNAME record instead of an alias record\\. Note that you can't create a CNAME record for the root domain name\\. For example, if your domain name is example\\.com, you can create a record that routes traffic for acme\\.example\\.com to your Elastic Beanstalk environment, but you can't create a record that routes traffic for example\\.com to your Elastic Beanstalk environment\\.\nFor Elastic Beanstalk environments that have regionalized subdomains, specify the `CNAME` attribute for the environment\\. You can use the following methods to get the value of the CNAME attribute: \n+ *AWS Management Console*: For information about how to get the value by using the console, see [Using Custom Domains with AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html) in the *AWS Elastic Beanstalk Developer Guide*\\.\n+ *Elastic Beanstalk API*: Use the `DescribeEnvironments` action to get the value of the `CNAME` attribute\\. For more information, see [DescribeEnvironments](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html) in the *AWS Elastic Beanstalk API Reference*\\.\n+ *AWS CLI*: Use the `describe-environments` command to get the value of the `CNAME` attribute\\. For more information, see [describe\\-environments](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html) in the *AWS CLI*\\. \nELB load balancer \nSpecify the DNS name that is associated with the load balancer\\. Get the DNS name by using the AWS Management Console, the ELB API, or the AWS CLI\\. \n+ **AWS Management Console**: Go to the EC2 page, choose **Load Balancers** in the navigation pane, choose the load balancer, choose the **Description** tab, and get the value of the **DNS name** field\\.", + "title": "DNSName", + "type": "string" + }, + "EvaluateTargetHealth": { + "markdownDescription": "*Applies only to alias records with any routing policy:* When `EvaluateTargetHealth` is `true`, an alias record inherits the health of the referenced AWS resource, such as an ELB load balancer or another record in the hosted zone\\. \nNote the following: \nCloudFront distributions \nYou can't set `EvaluateTargetHealth` to `true` when the alias target is a CloudFront distribution\\. \nElastic Beanstalk environments that have regionalized subdomains \nIf you specify an Elastic Beanstalk environment in `DNSName` and the environment contains an ELB load balancer, Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer\\. \\(An environment automatically contains an ELB load balancer if it includes more than one Amazon EC2 instance\\.\\) If you set `EvaluateTargetHealth` to `true` and either no Amazon EC2 instances are healthy or the load balancer itself is unhealthy, Route 53 routes queries to other available resources that are healthy, if any\\. \nIf the environment contains a single Amazon EC2 instance, there are no special requirements\\. \nELB load balancers \nHealth checking behavior depends on the type of load balancer: \n+ **Classic Load Balancers**: If you specify an ELB Classic Load Balancer in `DNSName`, Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer\\. If you set `EvaluateTargetHealth` to `true` and either no EC2 instances are healthy or the load balancer itself is unhealthy, Route 53 routes queries to other resources\\.\n+ **Application and Network Load Balancers**: If you specify an ELB Application or Network Load Balancer and you set `EvaluateTargetHealth` to `true`, Route 53 routes queries to the load balancer based on the health of the target groups that are associated with the load balancer:\n + For an Application or Network Load Balancer to be considered healthy, every target group that contains targets must contain at least one healthy target\\. If any target group contains only unhealthy targets, the load balancer is considered unhealthy, and Route 53 routes queries to other resources\\.\n + A target group that has no registered targets is considered unhealthy\\.\nWhen you create a load balancer, you configure settings for Elastic Load Balancing health checks; they're not Route 53 health checks, but they perform a similar function\\. Do not create Route 53 health checks for the EC2 instances that you register with an ELB load balancer\\. \nS3 buckets \nThere are no special requirements for setting `EvaluateTargetHealth` to `true` when the alias target is an S3 bucket\\. \nOther records in the same hosted zone \nIf the AWS resource that you specify in `DNSName` is a record or a group of records \\(for example, a group of weighted records\\) but is not another alias record, we recommend that you associate a health check with all of the records in the alias target\\. For more information, see [What Happens When You Omit Health Checks?](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-complex-configs.html#dns-failover-complex-configs-hc-omitting) in the *Amazon Route 53 Developer Guide*\\.\nFor more information and examples, see [Amazon Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) in the *Amazon Route 53 Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EvaluateTargetHealth", + "type": "boolean" + }, + "HostedZoneId": { + "markdownDescription": "*Alias resource records sets only*: The value used depends on where you want to route traffic: \nAmazon API Gateway custom regional APIs and edge\\-optimized APIs \nSpecify the hosted zone ID for your API\\. You can get the applicable value using the AWS CLI command [get\\-domain\\-names](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html): \n+ For regional APIs, specify the value of `regionalHostedZoneId`\\.\n+ For edge\\-optimized APIs, specify the value of `distributionHostedZoneId`\\. \nAmazon Virtual Private Cloud interface VPC endpoint \nSpecify the hosted zone ID for your interface endpoint\\. You can get the value of `HostedZoneId` using the AWS CLI command [describe\\-vpc\\-endpoints](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html)\\. \nCloudFront distribution \nSpecify `Z2FDTNDATAQYW2`\\. This is always the hosted zone ID when you create an alias record that routes traffic to a CloudFront distribution\\. \nAlias records for CloudFront can't be created in a private zone\\. \nElastic Beanstalk environment \nSpecify the hosted zone ID for the region that you created the environment in\\. The environment must have a regionalized subdomain\\. For a list of regions and the corresponding hosted zone IDs, see [AWS Elastic Beanstalk endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/elasticbeanstalk.html) in the *Amazon Web Services General Reference*\\. \nELB load balancer \nSpecify the value of the hosted zone ID for the load balancer\\. Use the following methods to get the hosted zone ID: \n+ [Service Endpoints](https://docs.aws.amazon.com/general/latest/gr/elb.html) table in the \"Elastic Load Balancing endpoints and quotas\" topic in the *Amazon Web Services General Reference*: Use the value that corresponds with the region that you created your load balancer in\\. Note that there are separate columns for Application and Classic Load Balancers and for Network Load Balancers\\.\n+ **AWS Management Console**: Go to the Amazon EC2 page, choose **Load Balancers** in the navigation pane, select the load balancer, and get the value of the **Hosted zone** field on the **Description** tab\\.\n+ **Elastic Load Balancing API**: Use `DescribeLoadBalancers` to get the applicable value\\. For more information, see the applicable guide:\n + Classic Load Balancers: Use [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html) to get the value of `CanonicalHostedZoneNameID`\\.\n + Application and Network Load Balancers: Use [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) to get the value of `CanonicalHostedZoneID`\\.\n+ **CloudFormation Fn::GetAtt intrinsic function**: Use the [Fn::GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html) intrinsic function to get the applicable value:\n + Classic Load Balancers: Get [CanonicalHostedZoneNameID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#aws-properties-ec2-elb-return-values)\\. \n + Application and Network Load Balancers: Get [CanonicalHostedZoneID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#aws-resource-elasticloadbalancingv2-loadbalancer-return-values)\\. \n+ **AWS CLI**: Use `describe-load-balancers` to get the applicable value\\. For more information, see the applicable guide:\n + Classic Load Balancers: Use [describe\\-load\\-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) to get the value of `CanonicalHostedZoneNameID`\\.\n + Application and Network Load Balancers: Use [describe\\-load\\-balancers](https://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html) to get the value of `CanonicalHostedZoneID`\\. \nGlobal Accelerator accelerator \nSpecify `Z2BJ6XQ5FK7U4H`\\. \nAn Amazon S3 bucket configured as a static website \nSpecify the hosted zone ID for the region that you created the bucket in\\. For more information about valid values, see the table [Amazon S3 Website Endpoints](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints) in the *Amazon Web Services General Reference*\\. \nAnother Route 53 record in your hosted zone \nSpecify the hosted zone ID of your hosted zone\\. \\(An alias record can't reference a record in a different hosted zone\\.\\)\n*Required*: Yes \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "For geolocation resource record sets, a two\\-letter abbreviation that identifies a continent\\. Route 53 supports the following continent codes: \n+ **AF**: Africa\n+ **AN**: Antarctica\n+ **AS**: Asia\n+ **EU**: Europe\n+ **OC**: Oceania\n+ **NA**: North America\n+ **SA**: South America\nConstraint: Specifying `ContinentCode` with either `CountryCode` or `SubdivisionCode` returns an `InvalidInput` error\\. \n*Required*: No \n*Type*: String \n*Minimum*: `2` \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContinentCode", + "type": "string" + }, + "CountryCode": { + "markdownDescription": "For geolocation resource record sets, the two\\-letter code for a country\\. \nRoute 53 uses the two\\-letter country codes that are specified in [ISO standard 3166\\-1 alpha\\-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CountryCode", + "type": "string" + }, + "SubdivisionCode": { + "markdownDescription": "For geolocation resource record sets, the two\\-letter code for a state of the United States\\. Route 53 doesn't support any other values for `SubdivisionCode`\\. For a list of state abbreviations, see [Appendix B: Two\u2013Letter State and Possession Abbreviations](https://pe.usps.com/text/pub28/28apb.htm) on the United States Postal Service website\\. \nIf you specify `subdivisioncode`, you must also specify `US` for `CountryCode`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubdivisionCode", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Route53::RecordSetGroup.RecordSet": { + "additionalProperties": false, + "properties": { + "AliasTarget": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.AliasTarget", + "markdownDescription": "*Alias resource record sets only:* Information about the AWS resource, such as a CloudFront distribution or an Amazon S3 bucket, that you want to route traffic to\\. \nIf you're creating resource records sets for a private hosted zone, note the following: \n+ You can't create an alias resource record set in a private hosted zone to route traffic to a CloudFront distribution\\.\n+ Creating geolocation alias resource record sets or latency alias resource record sets in a private hosted zone is unsupported\\.\n+ For information about creating failover resource record sets in a private hosted zone, see [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) in the *Amazon Route 53 Developer Guide*\\.\n*Required*: No \n*Type*: [AliasTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AliasTarget" + }, + "CidrRoutingConfig": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.CidrRoutingConfig" + }, + "Failover": { + "markdownDescription": "*Failover resource record sets only:* To configure failover, you add the `Failover` element to two resource record sets\\. For one resource record set, you specify `PRIMARY` as the value for `Failover`; for the other resource record set, you specify `SECONDARY`\\. In addition, you include the `HealthCheckId` element and specify the health check that you want Amazon Route 53 to perform for each resource record set\\. \nExcept where noted, the following failover behaviors assume that you have included the `HealthCheckId` element in both resource record sets: \n+ When the primary resource record set is healthy, Route 53 responds to DNS queries with the applicable value from the primary resource record set regardless of the health of the secondary resource record set\\.\n+ When the primary resource record set is unhealthy and the secondary resource record set is healthy, Route 53 responds to DNS queries with the applicable value from the secondary resource record set\\.\n+ When the secondary resource record set is unhealthy, Route 53 responds to DNS queries with the applicable value from the primary resource record set regardless of the health of the primary resource record set\\.\n+ If you omit the `HealthCheckId` element for the secondary resource record set, and if the primary resource record set is unhealthy, Route 53 always responds to DNS queries with the applicable value from the secondary resource record set\\. This is true regardless of the health of the associated endpoint\\.\nYou can't create non\\-failover resource record sets that have the same values for the `Name` and `Type` elements as failover resource record sets\\. \nFor failover alias resource record sets, you must also include the `EvaluateTargetHealth` element and set the value to true\\. \nFor more information about configuring failover for Route 53, see the following topics in the *Amazon Route 53 Developer Guide*: \n+ [Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) \n+ [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) \n*Required*: No \n*Type*: String \n*Allowed values*: `PRIMARY | SECONDARY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Failover", + "type": "string" + }, + "GeoLocation": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.GeoLocation", + "markdownDescription": "*Geolocation resource record sets only:* A complex type that lets you control how Amazon Route 53 responds to DNS queries based on the geographic origin of the query\\. For example, if you want all queries from Africa to be routed to a web server with an IP address of `192.0.2.111`, create a resource record set with a `Type` of `A` and a `ContinentCode` of `AF`\\. \nAlthough creating geolocation and geolocation alias resource record sets in a private hosted zone is allowed, it's not supported\\.\nIf you create separate resource record sets for overlapping geographic regions \\(for example, one resource record set for a continent and one for a country on the same continent\\), priority goes to the smallest geographic region\\. This allows you to route most queries for a continent to one resource and to route queries for a country on that continent to a different resource\\. \nYou can't create two geolocation resource record sets that specify the same geographic location\\. \nThe value `*` in the `CountryCode` element matches all geographic locations that aren't specified in other geolocation resource record sets that have the same values for the `Name` and `Type` elements\\. \nGeolocation works by mapping IP addresses to locations\\. However, some IP addresses aren't mapped to geographic locations, so even if you create geolocation resource record sets that cover all seven continents, Route 53 will receive some DNS queries from locations that it can't identify\\. We recommend that you create a resource record set for which the value of `CountryCode` is `*`\\. Two groups of queries are routed to the resource that you specify in this record: queries that come from locations for which you haven't created geolocation resource record sets and queries from IP addresses that aren't mapped to a location\\. If you don't create a `*` resource record set, Route 53 returns a \"no answer\" response for queries from those locations\\.\nYou can't create non\\-geolocation resource record sets that have the same values for the `Name` and `Type` elements as geolocation resource record sets\\. \n*Required*: No \n*Type*: [GeoLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GeoLocation" + }, + "HealthCheckId": { + "markdownDescription": "If you want Amazon Route 53 to return this resource record set in response to a DNS query only when the status of a health check is healthy, include the `HealthCheckId` element and specify the ID of the applicable health check\\. \nRoute 53 determines whether a resource record set is healthy based on one of the following: \n+ By periodically sending a request to the endpoint that is specified in the health check\n+ By aggregating the status of a specified group of health checks \\(calculated health checks\\)\n+ By determining the current state of a CloudWatch alarm \\(CloudWatch metric health checks\\)\nRoute 53 doesn't check the health of the endpoint that is specified in the resource record set, for example, the endpoint specified by the IP address in the `Value` element\\. When you add a `HealthCheckId` element to a resource record set, Route 53 checks the health of the endpoint that you specified in the health check\\. \nFor more information, see the following topics in the *Amazon Route 53 Developer Guide*: \n+ [How Amazon Route 53 Determines Whether an Endpoint Is Healthy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html) \n+ [Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) \n+ [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) \n **When to Specify HealthCheckId** \nSpecifying a value for `HealthCheckId` is useful only when Route 53 is choosing between two or more resource record sets to respond to a DNS query, and you want Route 53 to base the choice in part on the status of a health check\\. Configuring health checks makes sense only in the following configurations: \n+ **Non\\-alias resource record sets**: You're checking the health of a group of non\\-alias resource record sets that have the same routing policy, name, and type \\(such as multiple weighted records named www\\.example\\.com with a type of A\\) and you specify health check IDs for all the resource record sets\\.", + "title": "HealthCheckId", + "type": "string" + }, + "HostedZoneId": { + "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*Required*: No \n*Type*: String \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostedZoneId", + "type": "string" + }, + "HostedZoneName": { + "markdownDescription": "The name of the hosted zone that you want to create records in\\. You must include a trailing dot \\(for example, `www.example.com.`\\) as part of the `HostedZoneName`\\. \nWhen you create a stack using an `AWS::Route53::RecordSet` that specifies `HostedZoneName`, AWS CloudFormation attempts to find a hosted zone whose name matches the `HostedZoneName`\\. If AWS CloudFormation can't find a hosted zone with a matching domain name, or if there is more than one hosted zone with the specified domain name, AWS CloudFormation will not create the stack\\. \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*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostedZoneName", + "type": "string" + }, + "MultiValueAnswer": { + "markdownDescription": "*Multivalue answer resource record sets only*: To route traffic approximately randomly to multiple resources, such as web servers, create one multivalue answer record for each resource and specify `true` for `MultiValueAnswer`\\. Note the following: \n+ If you associate a health check with a multivalue answer resource record set, Amazon Route 53 responds to DNS queries with the corresponding IP address only when the health check is healthy\\.\n+ If you don't associate a health check with a multivalue answer record, Route 53 always considers the record to be healthy\\.\n+ Route 53 responds to DNS queries with up to eight healthy records; if you have eight or fewer healthy records, Route 53 responds to all DNS queries with all the healthy records\\.\n+ If you have more than eight healthy records, Route 53 responds to different DNS resolvers with different combinations of healthy records\\.\n+ When all records are unhealthy, Route 53 responds to DNS queries with up to eight unhealthy records\\.\n+ If a resource becomes unavailable after a resolver caches a response, client software typically tries another of the IP addresses in the response\\.\nYou can't create multivalue answer alias records\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MultiValueAnswer", + "type": "boolean" + }, + "Name": { + "markdownDescription": "For `ChangeResourceRecordSets` requests, the name of the record that you want to create, update, or delete\\. For `ListResourceRecordSets` responses, the name of a record in the specified hosted zone\\. \n **ChangeResourceRecordSets Only** \nEnter a fully qualified domain name, for example, `www.example.com`\\. You can optionally include a trailing dot\\. If you omit the trailing dot, Amazon Route 53 assumes that the domain name that you specify is fully qualified\\. This means that Route 53 treats `www.example.com` \\(without a trailing dot\\) and `www.example.com.` \\(with a trailing dot\\) as identical\\. \nFor information about how to specify characters other than `a-z`, `0-9`, and `-` \\(hyphen\\) and how to specify internationalized domain names, see [DNS Domain Name Format](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html) in the *Amazon Route 53 Developer Guide*\\. \nYou can use the asterisk \\(\\*\\) wildcard to replace the leftmost label in a domain name, for example, `*.example.com`\\. Note the following: \n+ The \\* must replace the entire label\\. For example, you can't specify `*prod.example.com` or `prod*.example.com`\\.\n+ The \\* can't replace any of the middle labels, for example, marketing\\.\\*\\.example\\.com\\.\n+ If you include \\* in any position other than the leftmost label in a domain name, DNS treats it as an \\* character \\(ASCII 42\\), not as a wildcard\\.\n**Important** \nYou can't use the \\* wildcard for resource records sets that have a type of NS\\.\nYou can use the \\* wildcard as the leftmost label in a domain name, for example, `*.example.com`\\. You can't use an \\* for one of the middle labels, for example, `marketing.*.example.com`\\. In addition, the \\* must replace the entire label; for example, you can't specify `prod*.example.com`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Region": { + "markdownDescription": "*Latency\\-based resource record sets only:* The Amazon EC2 Region where you created the resource that this resource record set refers to\\. The resource typically is an AWS resource, such as an EC2 instance or an ELB load balancer, and is referred to by an IP address or a DNS domain name, depending on the record type\\. \nAlthough creating latency and latency alias resource record sets in a private hosted zone is allowed, it's not supported\\.\nWhen Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region\\. Route 53 then returns the value that is associated with the selected resource record set\\. \nNote the following: \n+ You can only specify one `ResourceRecord` per latency resource record set\\.\n+ You can only create one latency resource record set for each Amazon EC2 Region\\.\n+ You aren't required to create latency resource record sets for all Amazon EC2 Regions\\. Route 53 will choose the region with the best latency from among the regions that you create latency resource record sets for\\.\n+ You can't create non\\-latency resource record sets that have the same values for the `Name` and `Type` elements as latency resource record sets\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `af-south-1 | ap-east-1 | ap-northeast-1 | ap-northeast-2 | ap-northeast-3 | ap-south-1 | ap-southeast-1 | ap-southeast-2 | ap-southeast-3 | ca-central-1 | cn-north-1 | cn-northwest-1 | eu-central-1 | eu-north-1 | eu-south-1 | eu-west-1 | eu-west-2 | eu-west-3 | me-south-1 | sa-east-1 | us-east-1 | us-east-2 | us-west-1 | us-west-2` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", + "type": "string" + }, + "ResourceRecords": { + "items": { + "type": "string" + }, + "markdownDescription": "Information about the records that you want to create\\. Each record should be in the format appropriate for the record type specified by the `Type` property\\. For information about different record types and their record formats, see [Values That You Specify When You Create or Edit Amazon Route 53 Records](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-values.html) in the *Amazon Route 53 Developer Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceRecords", + "type": "array" + }, + "SetIdentifier": { + "markdownDescription": "*Resource record sets that have a routing policy other than simple:* An identifier that differentiates among multiple resource record sets that have the same combination of name and type, such as multiple weighted resource record sets named acme\\.example\\.com that have a type of A\\. In a group of resource record sets that have the same name and type, the value of `SetIdentifier` must be unique for each resource record set\\. \nFor information about routing policies, see [Choosing a Routing Policy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html) in the *Amazon Route 53 Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SetIdentifier", + "type": "string" + }, + "TTL": { + "markdownDescription": "The resource record cache time to live \\(TTL\\), in seconds\\. Note the following: \n+ If you're creating or updating an alias resource record set, omit `TTL`\\. Amazon Route 53 uses the value of `TTL` for the alias target\\. \n+ If you're associating this resource record set with a health check \\(if you're adding a `HealthCheckId` element\\), we recommend that you specify a `TTL` of 60 seconds or less so clients respond quickly to changes in health status\\.\n+ All of the resource record sets in a group of weighted resource record sets must have the same value for `TTL`\\.\n+ If a group of weighted resource record sets includes one or more weighted alias resource record sets for which the alias target is an ELB load balancer, we recommend that you specify a `TTL` of 60 seconds for all of the non\\-alias weighted resource record sets that have the same name and type\\. Values other than 60 seconds \\(the TTL for load balancers\\) will change the effect of the values that you specify for `Weight`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TTL", + "type": "string" + }, + "Type": { + "markdownDescription": "The DNS record type\\. For information about different record types and how data is encoded for them, see [Supported DNS Resource Record Types](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html) in the *Amazon Route 53 Developer Guide*\\. \nValid values for basic resource record sets: `A` \\| `AAAA` \\| `CAA` \\| `CNAME` \\| `DS` \\|`MX` \\| `NAPTR` \\| `NS` \\| `PTR` \\| `SOA` \\| `SPF` \\| `SRV` \\| `TXT` \nValues for weighted, latency, geolocation, and failover resource record sets: `A` \\| `AAAA` \\| `CAA` \\| `CNAME` \\| `MX` \\| `NAPTR` \\| `PTR` \\| `SPF` \\| `SRV` \\| `TXT`\\. When creating a group of weighted, latency, geolocation, or failover resource record sets, specify the same value for all of the resource record sets in the group\\. \nValid values for multivalue answer resource record sets: `A` \\| `AAAA` \\| `MX` \\| `NAPTR` \\| `PTR` \\| `SPF` \\| `SRV` \\| `TXT` \nSPF records were formerly used to verify the identity of the sender of email messages\\. However, we no longer recommend that you create resource record sets for which the value of `Type` is `SPF`\\. RFC 7208, *Sender Policy Framework \\(SPF\\) for Authorizing Use of Domains in Email, Version 1*, has been updated to say, \"\\.\\.\\.\\[I\\]ts existence and mechanism defined in \\[RFC4408\\] have led to some interoperability issues\\. Accordingly, its use is no longer appropriate for SPF version 1; implementations are not to use it\\.\" In RFC 7208, see section 14\\.1, [The SPF DNS Record Type](http://tools.ietf.org/html/rfc7208#section-14.1)\\.\nValues for alias resource record sets: \n+ **Amazon API Gateway custom regional APIs and edge\\-optimized APIs:** `A` \n+ **CloudFront distributions:** `A`", + "title": "Type", + "type": "string" + }, + "Weight": { + "markdownDescription": "*Weighted resource record sets only:* Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set\\. Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type\\. Route 53 then responds to queries based on the ratio of a resource's weight to the total\\. Note the following: \n+ You must specify a value for the `Weight` element for every weighted resource record set\\.\n+ You can only specify one `ResourceRecord` per weighted resource record set\\.\n+ You can't create latency, failover, or geolocation resource record sets that have the same values for the `Name` and `Type` elements as weighted resource record sets\\.\n+ You can create a maximum of 100 weighted resource record sets that have the same values for the `Name` and `Type` elements\\.\n+ For weighted \\(but not weighted alias\\) resource record sets, if you set `Weight` to `0` for a resource record set, Route 53 never responds to queries with the applicable value for that resource record set\\. However, if you set `Weight` to `0` for all resource record sets that have the same combination of DNS name and type, traffic is routed to all resources with equal probability\\.", + "title": "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": { + "markdownDescription": "Name of the cluster\\. You can use any non\\-white space character in the name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The value for a tag\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "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": { + "markdownDescription": "A cluster endpoint\\. Specify an endpoint and AWS Region when you want to set or retrieve a routing control state in the cluster\\. \nTo get or update the routing control state, see the Amazon Route 53 Application Recovery Controller Routing Control Actions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Endpoint", + "type": "string" + }, + "Region": { + "markdownDescription": "The AWS Region for a cluster endpoint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the cluster for the control panel\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterArn", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the control panel\\. You can use any non\\-white space character in the name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The value for a tag\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the cluster that includes the routing control\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterArn", + "type": "string" + }, + "ControlPanelArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the control panel that includes the routing control\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ControlPanelArn", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the routing control\\. You can use any non\\-white space character in the name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "An assertion rule enforces that, when you change a routing control state, that the criteria that you set in the rule configuration is met\\. Otherwise, the change to the routing control is not accepted\\. For example, the criteria might be that at least one routing control state is `On` after the transaction so that traffic continues to flow to at least one cell for the application\\. This ensures that you avoid a fail\\-open scenario\\. \n*Required*: No \n*Type*: [AssertionRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoverycontrol-safetyrule-assertionrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssertionRule" + }, + "ControlPanelArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the control panel\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ControlPanelArn", + "type": "string" + }, + "GatingRule": { + "$ref": "#/definitions/AWS::Route53RecoveryControl::SafetyRule.GatingRule", + "markdownDescription": "A gating rule verifies that a gating routing control or set of gating routing controls, evaluates as true, based on a rule configuration that you specify, which allows a set of routing control state changes to complete\\. \nFor example, if you specify one gating routing control and you set the `Type` in the rule configuration to `OR`, that indicates that you must set the gating routing control to `On` for the rule to evaluate as true; that is, for the gating control \"switch\" to be \"On\"\\. When you do that, then you can update the routing control states for the target routing controls that you specify in the gating rule\\. \n*Required*: No \n*Type*: [GatingRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoverycontrol-safetyrule-gatingrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GatingRule" + }, + "Name": { + "markdownDescription": "The name of the assertion rule\\. You can use any non\\-white space character in the name\\. The name must be unique within a control panel\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "RuleConfig": { + "$ref": "#/definitions/AWS::Route53RecoveryControl::SafetyRule.RuleConfig", + "markdownDescription": "The criteria that you set for specific assertion controls \\(routing controls\\) that designate how many control states must be `ON` as the result of a transaction\\. For example, if you have three assertion controls, you might specify `ATLEAST 2` for your rule configuration\\. This means that at least two assertion controls must be `ON`, so that at least two AWS Regions have traffic flowing to them\\. \n*Required*: Yes \n*Type*: [RuleConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoverycontrol-safetyrule-ruleconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RuleConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The value for a tag\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "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" + }, + "markdownDescription": "The routing controls that are part of transactions that are evaluated to determine if a request to change a routing control state is allowed\\. For example, you might include three routing controls, one for each of three AWS Regions\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssertedControls", + "type": "array" + }, + "WaitPeriodMs": { + "markdownDescription": "An evaluation period, in milliseconds \\(ms\\), during which any request against the target routing controls will fail\\. This helps prevent \"flapping\" of state\\. The wait period is 5000 ms by default, but you can choose a custom value\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WaitPeriodMs", + "type": "number" + } + }, + "required": [ + "AssertedControls", + "WaitPeriodMs" + ], + "type": "object" + }, + "AWS::Route53RecoveryControl::SafetyRule.GatingRule": { + "additionalProperties": false, + "properties": { + "GatingControls": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of gating routing control Amazon Resource Names \\(ARNs\\)\\. For a simple \"on/off\" switch, specify the ARN for one routing control\\. The gating routing controls are evaluated by the rule configuration that you specify to determine if the target routing control states can be changed\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GatingControls", + "type": "array" + }, + "TargetControls": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of target routing control Amazon Resource Names \\(ARNs\\) for which the states can only be updated if the rule configuration that you specify evaluates to true for the gating routing control\\. As a simple example, if you have a single gating control, it acts as an overall \"on/off\" switch for a set of target routing controls\\. You can use this to manually override automated failover, for example\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetControls", + "type": "array" + }, + "WaitPeriodMs": { + "markdownDescription": "An evaluation period, in milliseconds \\(ms\\), during which any request against the target routing controls will fail\\. This helps prevent \"flapping\" of state\\. The wait period is 5000 ms by default, but you can choose a custom value\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WaitPeriodMs", + "type": "number" + } + }, + "required": [ + "GatingControls", + "TargetControls", + "WaitPeriodMs" + ], + "type": "object" + }, + "AWS::Route53RecoveryControl::SafetyRule.RuleConfig": { + "additionalProperties": false, + "properties": { + "Inverted": { + "markdownDescription": "Logical negation of the rule\\. If the rule would usually evaluate true, it's evaluated as false, and vice versa\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Inverted", + "type": "boolean" + }, + "Threshold": { + "markdownDescription": "The value of N, when you specify an `ATLEAST` rule type\\. That is, `Threshold` is the number of controls that must be set when you specify an `ATLEAST` type\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Threshold", + "type": "number" + }, + "Type": { + "markdownDescription": "A rule can be one of the following: `ATLEAST`, `AND`, or `OR`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the cell to create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CellName", + "type": "string" + }, + "Cells": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of cell Amazon Resource Names \\(ARNs\\) contained within this cell, for use in nested cells\\. For example, Availability Zones within specific AWS Regions\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cells", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A collection of tags associated with a resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The name of the readiness check to create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ReadinessCheckName", + "type": "string" + }, + "ResourceSetName": { + "markdownDescription": "The name of the resource set to check\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceSetName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A collection of tags associated with a resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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" + }, + "markdownDescription": "A list of the cell Amazon Resource Names \\(ARNs\\) in the recovery group\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cells", + "type": "array" + }, + "RecoveryGroupName": { + "markdownDescription": "The name of the recovery group to create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RecoveryGroupName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A collection of tags associated with a resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The name of the resource set to create\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceSetName", + "type": "string" + }, + "ResourceSetType": { + "markdownDescription": "The resource type of the resources in the resource set\\. Enter one of the following values for resource type: \nAWS::AutoScaling::AutoScalingGroup, AWS::CloudWatch::Alarm, AWS::EC2::CustomerGateway, AWS::DynamoDB::Table, AWS::EC2::Volume, AWS::ElasticLoadBalancing::LoadBalancer, AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::MSK::Cluster, AWS::RDS::DBCluster, AWS::Route53::HealthCheck, AWS::SQS::Queue, AWS::SNS::Topic, AWS::SNS::Subscription, AWS::EC2::VPC, AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, AWS::Route53RecoveryReadiness::DNSTargetResource\\. \nNote that AWS::Route53RecoveryReadiness::DNSTargetResource is only used for this setting\\. It isn't an actual AWS CloudFormation resource type\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceSetType", + "type": "string" + }, + "Resources": { + "items": { + "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.Resource" + }, + "markdownDescription": "A list of resource objects in the resource set\\. \n*Required*: Yes \n*Type*: List of [Resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoveryreadiness-resourceset-resource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Resources", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A tag to associate with the parameters for a resource set\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The domain name that acts as an ingress point to a portion of the customer application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainName", + "type": "string" + }, + "HostedZoneArn": { + "markdownDescription": "The hosted zone Amazon Resource Name \\(ARN\\) that contains the DNS record with the provided name of the target resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostedZoneArn", + "type": "string" + }, + "RecordSetId": { + "markdownDescription": "The Route 53 record set ID that uniquely identifies a DNS record, given a name and a type\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordSetId", + "type": "string" + }, + "RecordType": { + "markdownDescription": "The type of DNS record of the target resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordType", + "type": "string" + }, + "TargetResource": { + "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.TargetResource", + "markdownDescription": "The target resource that the Route 53 record points to\\. \n*Required*: No \n*Type*: [TargetResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoveryreadiness-resourceset-targetresource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetResource" + } + }, + "type": "object" + }, + "AWS::Route53RecoveryReadiness::ResourceSet.NLBResource": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The Network Load Balancer resource Amazon Resource Name \\(ARN\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Route53RecoveryReadiness::ResourceSet.R53ResourceRecord": { + "additionalProperties": false, + "properties": { + "DomainName": { + "markdownDescription": "The DNS target domain name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainName", + "type": "string" + }, + "RecordSetId": { + "markdownDescription": "The Route 53 Resource Record Set ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RecordSetId", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Route53RecoveryReadiness::ResourceSet.Resource": { + "additionalProperties": false, + "properties": { + "ComponentId": { + "markdownDescription": "The component identifier of the resource, generated when DNS target resource is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComponentId", + "type": "string" + }, + "DnsTargetResource": { + "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.DNSTargetResource", + "markdownDescription": "A component for DNS/routing control readiness checks\\. This is a required setting when `ResourceSet` `ResourceSetType` is set to `AWS::Route53RecoveryReadiness::DNSTargetResource`\\. Do not set it for any other `ResourceSetType` setting\\. \n*Required*: Conditional \n*Type*: [DNSTargetResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoveryreadiness-resourceset-dnstargetresource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DnsTargetResource" + }, + "ReadinessScopes": { + "items": { + "type": "string" + }, + "markdownDescription": "The recovery group Amazon Resource Name \\(ARN\\) or the cell ARN that the readiness checks for this resource set are scoped to\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReadinessScopes", + "type": "array" + }, + "ResourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS resource\\. This is a required setting for all `ResourceSet` `ResourceSetType` settings except `AWS::Route53RecoveryReadiness::DNSTargetResource`\\. Do not set this when `ResourceSetType` is set to `AWS::Route53RecoveryReadiness::DNSTargetResource`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Route53RecoveryReadiness::ResourceSet.TargetResource": { + "additionalProperties": false, + "properties": { + "NLBResource": { + "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.NLBResource", + "markdownDescription": "The Network Load Balancer resource that a DNS target resource points to\\. \n*Required*: No \n*Type*: [NLBResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoveryreadiness-resourceset-nlbresource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NLBResource" + }, + "R53Resource": { + "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.R53ResourceRecord", + "markdownDescription": "The Route 53 resource that a DNS target resource record points to\\. \n*Required*: No \n*Type*: [R53ResourceRecord](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoveryreadiness-resourceset-r53resourcerecord.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "R53Resource" + } + }, + "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": { + "markdownDescription": "The fully qualified URL or URI of the file stored in Amazon Simple Storage Service \\(Amazon S3\\) that contains the list of domains to import\\. \nThe file must be in an S3 bucket that's in the same Region as your DNS Firewall\\. The file must be a text file and must contain a single domain per line\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DomainFileUrl", + "type": "string" + }, + "Domains": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of the domain lists that you have defined\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Domains", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the domain list\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of the tag keys and values that you want to associate with the domain list\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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" + }, + "markdownDescription": "A list of the rules that you have defined\\. \n*Required*: No \n*Type*: List of [FirewallRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53resolver-firewallrulegroup-firewallrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FirewallRules", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the rule group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of the tag keys and values that you want to associate with the rule group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list: \n+ `ALLOW` \\- Permit the request to go through\\.\n+ `ALERT` \\- Permit the request to go through but send an alert to the logs\\.\n+ `BLOCK` \\- Disallow the request\\. If this is specified,then `BlockResponse` must also be specified\\.", + "title": "Action", + "type": "string" + }, + "BlockOverrideDnsType": { + "markdownDescription": "The DNS record's type\\. This determines the format of the record value that you provided in `BlockOverrideDomain`\\. Used for the rule action `BLOCK` with a `BlockResponse` setting of `OVERRIDE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CNAME` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockOverrideDnsType", + "type": "string" + }, + "BlockOverrideDomain": { + "markdownDescription": "The custom DNS record to send back in response to the query\\. Used for the rule action `BLOCK` with a `BlockResponse` setting of `OVERRIDE`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockOverrideDomain", + "type": "string" + }, + "BlockOverrideTtl": { + "markdownDescription": "The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record\\. Used for the rule action `BLOCK` with a `BlockResponse` setting of `OVERRIDE`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockOverrideTtl", + "type": "number" + }, + "BlockResponse": { + "markdownDescription": "The way that you want DNS Firewall to block the request\\. Used for the rule action setting `BLOCK`\\. \n+ `NODATA` \\- Respond indicating that the query was successful, but no response is available for it\\.\n+ `NXDOMAIN` \\- Respond indicating that the domain name that's in the query doesn't exist\\.\n+ `OVERRIDE` \\- Provide a custom override in the response\\. This option requires custom handling details in the rule's `BlockOverride*` settings\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `NODATA | NXDOMAIN | OVERRIDE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockResponse", + "type": "string" + }, + "FirewallDomainListId": { + "markdownDescription": "The ID of the domain list that's used in the rule\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FirewallDomainListId", + "type": "string" + }, + "Priority": { + "markdownDescription": "The priority of the rule in the rule group\\. This value must be unique within the rule group\\. DNS Firewall processes the rules in a rule group by order of priority, starting from the lowest setting\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The unique identifier of the firewall rule group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FirewallRuleGroupId", + "type": "string" + }, + "MutationProtection": { + "markdownDescription": "If enabled, this setting disallows modification or removal of the association, to help prevent against accidentally altering DNS firewall protections\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MutationProtection", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the association\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Priority": { + "markdownDescription": "The setting that determines the processing order of the rule group among the rule groups that are associated with a single VPC\\. DNS Firewall filters VPC traffic starting from rule group with the lowest numeric priority setting\\. \nYou must specify a unique priority for each rule group that you associate with a single VPC\\. To make it easier to insert rule groups later, leave space between the numbers, for example, use 101, 200, and so on\\. You can change the priority setting for a rule group association after you create it\\. \nThe allowed values for `Priority` are between 100 and 9900 \\(excluding 100 and 9900\\)\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of the tag keys and values that you want to associate with the rule group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VpcId": { + "markdownDescription": "The unique identifier of the VPC that is associated with the rule group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Represents the desired status of `AutodefinedReverse`\\. The only supported value on creation is `DISABLE`\\. Deletion of this resource will return `AutodefinedReverse` to its default value of `ENABLED`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AutodefinedReverseFlag", + "type": "string" + }, + "ResourceId": { + "markdownDescription": "The ID of the Amazon Virtual Private Cloud VPC that you're configuring Resolver for\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ID of the virtual private cloud \\(VPC\\) that you're configuring the DNSSEC validation status for\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Indicates whether the Resolver endpoint allows inbound or outbound DNS queries: \n+ `INBOUND`: allows DNS queries to your VPC from your network\n+ `OUTBOUND`: allows DNS queries from your VPC to your network\n*Required*: Yes \n*Type*: String \n*Allowed values*: `INBOUND | OUTBOUND` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Direction", + "type": "string" + }, + "IpAddresses": { + "items": { + "$ref": "#/definitions/AWS::Route53Resolver::ResolverEndpoint.IpAddressRequest" + }, + "markdownDescription": "The subnets and IP addresses in your VPC that DNS queries originate from \\(for outbound endpoints\\) or that you forward DNS queries to \\(for inbound endpoints\\)\\. The subnet ID uniquely identifies a VPC\\. \n*Required*: Yes \n*Type*: List of [IpAddressRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53resolver-resolverendpoint-ipaddressrequest.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IpAddresses", + "type": "array" + }, + "Name": { + "markdownDescription": "A friendly name that lets you easily find a configuration in the Resolver dashboard in the Route 53 console\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PreferredInstanceType": { + "type": "string" + }, + "ResolverEndpointType": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The ID of one or more security groups that control access to this VPC\\. The security group must include one or more inbound rules \\(for inbound endpoints\\) or outbound rules \\(for outbound endpoints\\)\\. Inbound and outbound rules must allow TCP and UDP access\\. For inbound access, open port 53\\. For outbound access, open the port that you're using for DNS queries on your network\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroupIds", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Route 53 Resolver doesn't support updating tags through CloudFormation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The IP address that you want to use for DNS queries\\. \n*Required*: No \n*Type*: String \n*Minimum*: `7` \n*Maximum*: `36` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ip", + "type": "string" + }, + "Ipv6": { + "type": "string" + }, + "SubnetId": { + "markdownDescription": "The ID of the subnet that contains the IP address\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ARN of the resource that you want Resolver to send query logs: an Amazon S3 bucket, a CloudWatch Logs log group, or a Kinesis Data Firehose delivery stream\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `600` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationArn", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the query logging configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ID of the query logging configuration that a VPC is associated with\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResolverQueryLogConfigId", + "type": "string" + }, + "ResourceId": { + "markdownDescription": "The ID of the Amazon VPC that is associated with the query logging configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "DNS queries for this domain name are forwarded to the IP addresses that are specified in `TargetIps`\\. If a query matches multiple Resolver rules \\(example\\.com and www\\.example\\.com\\), the query is routed using the Resolver rule that contains the most specific domain name \\(www\\.example\\.com\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", + "type": "string" + }, + "Name": { + "markdownDescription": "The name for the Resolver rule, which you specified when you created the Resolver rule\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "ResolverEndpointId": { + "markdownDescription": "The ID of the endpoint that the rule is associated with\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResolverEndpointId", + "type": "string" + }, + "RuleType": { + "markdownDescription": "When you want to forward DNS queries for specified domain name to resolvers on your network, specify `FORWARD`\\. \nWhen you have a forwarding rule to forward DNS queries for a domain to your network and you want Resolver to process queries for a subdomain of that domain, specify `SYSTEM`\\. \nFor example, to forward DNS queries for example\\.com to resolvers on your network, you create a rule and specify `FORWARD` for `RuleType`\\. To then have Resolver process queries for apex\\.example\\.com, you create a rule and specify `SYSTEM` for `RuleType`\\. \nCurrently, only Resolver can create rules that have a value of `RECURSIVE` for `RuleType`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `FORWARD | RECURSIVE | SYSTEM` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RuleType", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Route 53 Resolver doesn't support updating tags through CloudFormation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TargetIps": { + "items": { + "$ref": "#/definitions/AWS::Route53Resolver::ResolverRule.TargetAddress" + }, + "markdownDescription": "An array that contains the IP addresses and ports that an outbound endpoint forwards DNS queries to\\. Typically, these are the IP addresses of DNS resolvers on your network\\. Specify IPv4 addresses\\. IPv6 is not supported\\. \n*Required*: No \n*Type*: List of [TargetAddress](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53resolver-resolverrule-targetaddress.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetIps", + "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": { + "markdownDescription": "One IP address that you want to forward DNS queries to\\. You can specify only IPv4 addresses\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `7` \n*Maximum*: `36` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Ip", + "type": "string" + }, + "Ipv6": { + "type": "string" + }, + "Port": { + "markdownDescription": "The port at `Ip` that you want to forward DNS queries to\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Port", + "type": "string" + } + }, + "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": { + "markdownDescription": "The name of an association between a Resolver rule and a VPC\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `(?!^[0-9]+$)([a-zA-Z0-9\\-_' ']+)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "ResolverRuleId": { + "markdownDescription": "The ID of the Resolver rule that you associated with the VPC that is specified by `VPCId`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResolverRuleId", + "type": "string" + }, + "VPCId": { + "markdownDescription": "The ID of the VPC that you associated the Resolver rule with\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the bucket associated with this access point\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Bucket", + "type": "string" + }, + "BucketAccountId": { + "type": "string" + }, + "Name": { + "markdownDescription": "The name of this access point\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the access point name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Policy": { + "markdownDescription": "The access point policy associated with this access point\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policy", + "type": "object" + }, + "PolicyStatus": { + "$ref": "#/definitions/AWS::S3::AccessPoint.PolicyStatus", + "markdownDescription": "The container element for a bucket's policy status\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyStatus" + }, + "PublicAccessBlockConfiguration": { + "$ref": "#/definitions/AWS::S3::AccessPoint.PublicAccessBlockConfiguration", + "markdownDescription": "The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket\\. You can enable the configuration options in any combination\\. For more information about when Amazon S3 considers a bucket or object public, see [The Meaning of \"Public\"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: [PublicAccessBlockConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-accesspoint-publicaccessblockconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PublicAccessBlockConfiguration" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::S3::AccessPoint.VpcConfiguration", + "markdownDescription": "The Virtual Private Cloud \\(VPC\\) configuration for this access point, if one exists\\. \n*Required*: No \n*Type*: [VpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-accesspoint-vpcconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Specifies whether Amazon S3 should block public access control lists \\(ACLs\\) for this bucket and objects in this bucket\\. Setting this element to `TRUE` causes the following behavior: \n+ PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is public\\.\n+ PUT Object calls fail if the request includes a public ACL\\.\n+ PUT Bucket calls fail if the request includes a public ACL\\.\nEnabling this setting doesn't affect existing policies or ACLs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BlockPublicAcls", + "type": "boolean" + }, + "BlockPublicPolicy": { + "markdownDescription": "Specifies whether Amazon S3 should block public bucket policies for this bucket\\. Setting this element to `TRUE` causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access\\. \nEnabling this setting doesn't affect existing bucket policies\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BlockPublicPolicy", + "type": "boolean" + }, + "IgnorePublicAcls": { + "markdownDescription": "Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket\\. Setting this element to `TRUE` causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket\\. \nEnabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IgnorePublicAcls", + "type": "boolean" + }, + "RestrictPublicBuckets": { + "markdownDescription": "Specifies whether Amazon S3 should restrict public bucket policies for this bucket\\. Setting this element to `TRUE` restricts access to this bucket to only AWS service principals and authorized users within this account if the bucket has a public policy\\. \nEnabling this setting doesn't affect previously stored bucket policies, except that public and cross\\-account access within any public bucket policy, including non\\-public delegation to specific accounts, is blocked\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestrictPublicBuckets", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::S3::AccessPoint.VpcConfiguration": { + "additionalProperties": false, + "properties": { + "VpcId": { + "markdownDescription": "If this field is specified, the access point will only allow connections from the specified VPC ID\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "Configures the transfer acceleration state for an Amazon S3 bucket\\. For more information, see [Amazon S3 Transfer Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: [AccelerateConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accelerateconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccelerateConfiguration" + }, + "AccessControl": { + "markdownDescription": "A canned access control list \\(ACL\\) that grants predefined permissions to the bucket\\. For more information about canned ACLs, see [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) in the *Amazon S3 User Guide*\\. \nBe aware that the syntax for this property differs from the information provided in the *Amazon S3 User Guide*\\. The AccessControl property is case\\-sensitive and must be one of the following values: Private, PublicRead, PublicReadWrite, AuthenticatedRead, LogDeliveryWrite, BucketOwnerRead, BucketOwnerFullControl, or AwsExecRead\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessControl", + "type": "string" + }, + "AnalyticsConfigurations": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.AnalyticsConfiguration" + }, + "markdownDescription": "Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket\\. \n*Required*: No \n*Type*: List of [AnalyticsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-analyticsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AnalyticsConfigurations", + "type": "array" + }, + "BucketEncryption": { + "$ref": "#/definitions/AWS::S3::Bucket.BucketEncryption", + "markdownDescription": "Specifies default encryption for a bucket using server\\-side encryption with Amazon S3\\-managed keys \\(SSE\\-S3\\) or AWS KMS\\-managed keys \\(SSE\\-KMS\\) bucket\\. For information about the Amazon S3 default encryption feature, see [Amazon S3 Default Encryption for S3 Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: [BucketEncryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-bucketencryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketEncryption" + }, + "BucketName": { + "markdownDescription": "A name for the bucket\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the bucket name\\. The bucket name must contain only lowercase letters, numbers, periods \\(\\.\\), and dashes \\(\\-\\) and must follow [Amazon S3 bucket restrictions and limitations](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html)\\. For more information, see [Rules for naming Amazon S3 buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html#bucketnamingrules) in the *Amazon S3 User Guide*\\. \nIf you specify a name, you can't perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you need to replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketName", + "type": "string" + }, + "CorsConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.CorsConfiguration", + "markdownDescription": "Describes the cross\\-origin access configuration for objects in an Amazon S3 bucket\\. For more information, see [Enabling Cross\\-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: [CorsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CorsConfiguration" + }, + "IntelligentTieringConfigurations": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.IntelligentTieringConfiguration" + }, + "markdownDescription": "Defines how Amazon S3 handles Intelligent\\-Tiering storage\\. \n*Required*: No \n*Type*: List of [IntelligentTieringConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-intelligenttieringconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IntelligentTieringConfigurations", + "type": "array" + }, + "InventoryConfigurations": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.InventoryConfiguration" + }, + "markdownDescription": "Specifies the inventory configuration for an Amazon S3 bucket\\. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*\\. \n*Required*: No \n*Type*: List of [InventoryConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-inventoryconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InventoryConfigurations", + "type": "array" + }, + "LifecycleConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.LifecycleConfiguration", + "markdownDescription": "Specifies the lifecycle configuration for objects in an Amazon S3 bucket\\. For more information, see [Object Lifecycle Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: [LifecycleConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LifecycleConfiguration" + }, + "LoggingConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.LoggingConfiguration", + "markdownDescription": "Settings that define where logs are stored\\. \n*Required*: No \n*Type*: [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-loggingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingConfiguration" + }, + "MetricsConfigurations": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.MetricsConfiguration" + }, + "markdownDescription": "Specifies a metrics configuration for the CloudWatch request metrics \\(specified by the metrics configuration ID\\) from an Amazon S3 bucket\\. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration\\. If you don't include the elements you want to keep, they are erased\\. For more information, see [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html)\\. \n*Required*: No \n*Type*: List of [MetricsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metricsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricsConfigurations", + "type": "array" + }, + "NotificationConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.NotificationConfiguration", + "markdownDescription": "Configuration that defines how Amazon S3 handles bucket notifications\\. \n*Required*: No \n*Type*: [NotificationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationConfiguration" + }, + "ObjectLockConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.ObjectLockConfiguration", + "markdownDescription": "Places an Object Lock configuration on the specified bucket\\. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket\\. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html)\\. \n+ The `DefaultRetention` settings require both a mode and a period\\.\n+ The `DefaultRetention` period can be either `Days` or `Years` but you must select one\\. You cannot specify `Days` and `Years` at the same time\\.\n+ You can only enable Object Lock for new buckets\\. If you want to turn on Object Lock for an existing bucket, contact AWS Support\\.\n*Required*: No \n*Type*: [ObjectLockConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectLockConfiguration" + }, + "ObjectLockEnabled": { + "markdownDescription": "Indicates whether this bucket has an Object Lock configuration enabled\\. Enable `ObjectLockEnabled` when you apply `ObjectLockConfiguration` to a bucket\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ObjectLockEnabled", + "type": "boolean" + }, + "OwnershipControls": { + "$ref": "#/definitions/AWS::S3::Bucket.OwnershipControls", + "markdownDescription": "Configuration that defines how Amazon S3 handles Object Ownership rules\\. \n*Required*: No \n*Type*: [OwnershipControls](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrols.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OwnershipControls" + }, + "PublicAccessBlockConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.PublicAccessBlockConfiguration", + "markdownDescription": "Configuration that defines how Amazon S3 handles public access\\. \n*Required*: No \n*Type*: [PublicAccessBlockConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-publicaccessblockconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PublicAccessBlockConfiguration" + }, + "ReplicationConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationConfiguration", + "markdownDescription": "Configuration for replicating objects in an S3 bucket\\. To enable replication, you must also enable versioning by using the `VersioningConfiguration` property\\. \nAmazon S3 can store replicated objects in a single destination bucket or multiple destination buckets\\. The destination bucket or buckets must already exist\\. \n*Required*: No \n*Type*: [ReplicationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An arbitrary set of tags \\(key\\-value pairs\\) for this S3 bucket\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VersioningConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.VersioningConfiguration", + "markdownDescription": "Enables multiple versions of all objects in this bucket\\. You might enable versioning to prevent objects from being deleted or overwritten by mistake or to archive objects so that you can retrieve previous versions of them\\. \n*Required*: No \n*Type*: [VersioningConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-versioningconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VersioningConfiguration" + }, + "WebsiteConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.WebsiteConfiguration", + "markdownDescription": "Information used to configure the bucket as a static website\\. For more information, see [Hosting Websites on Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html)\\. \n*Required*: No \n*Type*: [WebsiteConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Specifies the number of days after which Amazon S3 stops an incomplete multipart upload\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DaysAfterInitiation", + "type": "number" + } + }, + "required": [ + "DaysAfterInitiation" + ], + "type": "object" + }, + "AWS::S3::Bucket.AccelerateConfiguration": { + "additionalProperties": false, + "properties": { + "AccelerationStatus": { + "markdownDescription": "Specifies the transfer acceleration status of the bucket\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Enabled | Suspended` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccelerationStatus", + "type": "string" + } + }, + "required": [ + "AccelerationStatus" + ], + "type": "object" + }, + "AWS::S3::Bucket.AccessControlTranslation": { + "additionalProperties": false, + "properties": { + "Owner": { + "markdownDescription": "Specifies the replica ownership\\. For default and valid values, see [PUT bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) in the *Amazon S3 API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Destination` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Owner", + "type": "string" + } + }, + "required": [ + "Owner" + ], + "type": "object" + }, + "AWS::S3::Bucket.AnalyticsConfiguration": { + "additionalProperties": false, + "properties": { + "Id": { + "markdownDescription": "The ID that identifies the analytics configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "Prefix": { + "markdownDescription": "The prefix that an object must have to be included in the analytics results\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", + "type": "string" + }, + "StorageClassAnalysis": { + "$ref": "#/definitions/AWS::S3::Bucket.StorageClassAnalysis", + "markdownDescription": "Contains data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes\\. \n*Required*: Yes \n*Type*: [StorageClassAnalysis](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-storageclassanalysis.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageClassAnalysis" + }, + "TagFilters": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.TagFilter" + }, + "markdownDescription": "The tags to use when evaluating an analytics filter\\. \nThe analytics only includes objects that meet the filter's criteria\\. If no filter is specified, all of the contents of the bucket are included in the analysis\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagFilters", + "type": "array" + } + }, + "required": [ + "Id", + "StorageClassAnalysis" + ], + "type": "object" + }, + "AWS::S3::Bucket.BucketEncryption": { + "additionalProperties": false, + "properties": { + "ServerSideEncryptionConfiguration": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.ServerSideEncryptionRule" + }, + "markdownDescription": "Specifies the default server\\-side\\-encryption configuration\\. \n*Required*: Yes \n*Type*: List of [ServerSideEncryptionRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerSideEncryptionConfiguration", + "type": "array" + } + }, + "required": [ + "ServerSideEncryptionConfiguration" + ], + "type": "object" + }, + "AWS::S3::Bucket.CorsConfiguration": { + "additionalProperties": false, + "properties": { + "CorsRules": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.CorsRule" + }, + "markdownDescription": "A set of origins and methods \\(cross\\-origin access that you want to allow\\)\\. You can add up to 100 rules to the configuration\\. \n*Required*: Yes \n*Type*: List of [CorsRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-cors-corsrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CorsRules", + "type": "array" + } + }, + "required": [ + "CorsRules" + ], + "type": "object" + }, + "AWS::S3::Bucket.CorsRule": { + "additionalProperties": false, + "properties": { + "AllowedHeaders": { + "items": { + "type": "string" + }, + "markdownDescription": "Headers that are specified in the `Access-Control-Request-Headers` header\\. These headers are allowed in a preflight OPTIONS request\\. In response to any preflight OPTIONS request, Amazon S3 returns any requested headers that are allowed\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedHeaders", + "type": "array" + }, + "AllowedMethods": { + "items": { + "type": "string" + }, + "markdownDescription": "An HTTP method that you allow the origin to run\\. \n*Allowed values*: `GET` \\| `PUT` \\| `HEAD` \\| `POST` \\| `DELETE` \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedMethods", + "type": "array" + }, + "AllowedOrigins": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more origins you want customers to be able to access the bucket from\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedOrigins", + "type": "array" + }, + "ExposedHeaders": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more headers in the response that you want customers to be able to access from their applications \\(for example, from a JavaScript `XMLHttpRequest` object\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExposedHeaders", + "type": "array" + }, + "Id": { + "markdownDescription": "A unique identifier for this rule\\. The value must be no more than 255 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "MaxAge": { + "markdownDescription": "The time in seconds that your browser is to cache the preflight response for the specified resource\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxAge", + "type": "number" + } + }, + "required": [ + "AllowedMethods", + "AllowedOrigins" + ], + "type": "object" + }, + "AWS::S3::Bucket.DataExport": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/AWS::S3::Bucket.Destination", + "markdownDescription": "The place to store the data for an analysis\\. \n*Required*: Yes \n*Type*: [Destination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" + }, + "OutputSchemaVersion": { + "markdownDescription": "The version of the output schema to use when exporting data\\. Must be `V_1`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `V_1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputSchemaVersion", + "type": "string" + } + }, + "required": [ + "Destination", + "OutputSchemaVersion" + ], + "type": "object" + }, + "AWS::S3::Bucket.DefaultRetention": { + "additionalProperties": false, + "properties": { + "Days": { + "markdownDescription": "The number of days that you want to specify for the default retention period\\. If Object Lock is turned on, you must specify `Mode` and specify either `Days` or `Years`\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Days", + "type": "number" + }, + "Mode": { + "markdownDescription": "The default Object Lock retention mode you want to apply to new objects placed in the specified bucket\\. If Object Lock is turned on, you must specify `Mode` and specify either `Days` or `Years`\\. \n*Required*: Conditional \n*Type*: String \n*Allowed values*: `COMPLIANCE | GOVERNANCE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Mode", + "type": "string" + }, + "Years": { + "markdownDescription": "The number of years that you want to specify for the default retention period\\. If Object Lock is turned on, you must specify `Mode` and specify either `Days` or `Years`\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Years", + "type": "number" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.DeleteMarkerReplication": { + "additionalProperties": false, + "properties": { + "Status": { + "markdownDescription": "Indicates whether to replicate delete markers\\. Disabled by default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.Destination": { + "additionalProperties": false, + "properties": { + "BucketAccountId": { + "markdownDescription": "The account ID that owns the destination S3 bucket\\. If no account ID is provided, the owner is not validated before exporting data\\. \n Although this value is optional, we strongly recommend that you set it to help prevent problems if the destination bucket ownership changes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketAccountId", + "type": "string" + }, + "BucketArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the bucket to which data is exported\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketArn", + "type": "string" + }, + "Format": { + "markdownDescription": "Specifies the file format used when exporting data to Amazon S3\\. \n*Allowed values*: `CSV` \\| `ORC` \\| `Parquet` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", + "type": "string" + }, + "Prefix": { + "markdownDescription": "The prefix to use when exporting data\\. The prefix is prepended to all results\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", + "type": "string" + } + }, + "required": [ + "BucketArn", + "Format" + ], + "type": "object" + }, + "AWS::S3::Bucket.EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "ReplicaKmsKeyID": { + "markdownDescription": "Specifies the ID \\(Key ARN or Alias ARN\\) of the customer managed AWS KMS key stored in AWS Key Management Service \\(KMS\\) for the destination bucket\\. Amazon S3 uses this key to encrypt replica objects\\. Amazon S3 only supports symmetric, customer managed KMS keys\\. For more information, see [Using symmetric and asymmetric keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) in the * AWS Key Management Service Developer Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicaKmsKeyID", + "type": "string" + } + }, + "required": [ + "ReplicaKmsKeyID" + ], + "type": "object" + }, + "AWS::S3::Bucket.EventBridgeConfiguration": { + "additionalProperties": false, + "properties": { + "EventBridgeEnabled": { + "markdownDescription": "Enables delivery of events to Amazon EventBridge\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventBridgeEnabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.FilterRule": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The object key name prefix or suffix identifying one or more objects to which the filtering rule applies\\. The maximum length is 1,024 characters\\. Overlapping prefixes and suffixes are not supported\\. For more information, see [Configuring Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `prefix | suffix` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "The value that the filter searches for in object key names\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::S3::Bucket.IntelligentTieringConfiguration": { + "additionalProperties": false, + "properties": { + "Id": { + "markdownDescription": "The ID used to identify the S3 Intelligent\\-Tiering configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "Prefix": { + "markdownDescription": "An object key name prefix that identifies the subset of objects to which the rule applies\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", + "type": "string" + }, + "Status": { + "markdownDescription": "Specifies the status of the configuration\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + }, + "TagFilters": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.TagFilter" + }, + "markdownDescription": "A container for a key\\-value pair\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagFilters", + "type": "array" + }, + "Tierings": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.Tiering" + }, + "markdownDescription": "Specifies a list of S3 Intelligent\\-Tiering storage class tiers in the configuration\\. At least one tier must be defined in the list\\. At most, you can specify two tiers in the list, one for each available AccessTier: `ARCHIVE_ACCESS` and `DEEP_ARCHIVE_ACCESS`\\. \nYou only need Intelligent Tiering Configuration enabled on a bucket if you want to automatically move objects stored in the Intelligent\\-Tiering storage class to Archive Access or Deep Archive Access tiers\\.\n*Required*: Yes \n*Type*: List of [Tiering](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tiering.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tierings", + "type": "array" + } + }, + "required": [ + "Id", + "Status", + "Tierings" + ], + "type": "object" + }, + "AWS::S3::Bucket.InventoryConfiguration": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/AWS::S3::Bucket.Destination", + "markdownDescription": "Contains information about where to publish the inventory results\\. \n*Required*: Yes \n*Type*: [Destination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-destination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" + }, + "Enabled": { + "markdownDescription": "Specifies whether the inventory is enabled or disabled\\. If set to `True`, an inventory list is generated\\. If set to `False`, no inventory list is generated\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "Id": { + "markdownDescription": "The ID used to identify the inventory configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "IncludedObjectVersions": { + "markdownDescription": "Object versions to include in the inventory list\\. If set to `All`, the list includes all the object versions, which adds the version\\-related fields `VersionId`, `IsLatest`, and `DeleteMarker` to the list\\. If set to `Current`, the list does not contain these version\\-related fields\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `All | Current` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludedObjectVersions", + "type": "string" + }, + "OptionalFields": { + "items": { + "type": "string" + }, + "markdownDescription": "Contains the optional fields that are included in the inventory results\\. \n*Valid values*: ` Size | LastModifiedDate | StorageClass | ETag | IsMultipartUploaded | ReplicationStatus | EncryptionStatus | ObjectLockRetainUntilDate | ObjectLockMode | ObjectLockLegalHoldStatus | IntelligentTieringAccessTier | BucketKeyStatus ` \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OptionalFields", + "type": "array" + }, + "Prefix": { + "markdownDescription": "Specifies the inventory filter prefix\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", + "type": "string" + }, + "ScheduleFrequency": { + "markdownDescription": "Specifies the schedule for generating inventory results\\. \n*Allowed values*: `Daily` \\| `Weekly` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleFrequency", + "type": "string" + } + }, + "required": [ + "Destination", + "Enabled", + "Id", + "IncludedObjectVersions", + "ScheduleFrequency" + ], + "type": "object" + }, + "AWS::S3::Bucket.LambdaConfiguration": { + "additionalProperties": false, + "properties": { + "Event": { + "markdownDescription": "The Amazon S3 bucket event for which to invoke the AWS Lambda function\\. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Event", + "type": "string" + }, + "Filter": { + "$ref": "#/definitions/AWS::S3::Bucket.NotificationFilter", + "markdownDescription": "The filtering rules that determine which objects invoke the AWS Lambda function\\. For example, you can create a filter so that only image files with a `.jpg` extension invoke the function when they are added to the Amazon S3 bucket\\. \n*Required*: No \n*Type*: [NotificationFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filter" + }, + "Function": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Lambda function that Amazon S3 invokes when the specified event type occurs\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Function", + "type": "string" + } + }, + "required": [ + "Event", + "Function" + ], + "type": "object" + }, + "AWS::S3::Bucket.LifecycleConfiguration": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.Rule" + }, + "markdownDescription": "A lifecycle rule for individual objects in an Amazon S3 bucket\\. \n*Required*: Yes \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::S3::Bucket.LoggingConfiguration": { + "additionalProperties": false, + "properties": { + "DestinationBucketName": { + "markdownDescription": "The name of the bucket where Amazon S3 should store server access log files\\. You can store log files in any bucket that you own\\. By default, logs are stored in the bucket where the `LoggingConfiguration` property is defined\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationBucketName", + "type": "string" + }, + "LogFilePrefix": { + "markdownDescription": "A prefix for all log object keys\\. If you store log files from multiple Amazon S3 buckets in a single bucket, you can use a prefix to distinguish which log files came from which bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogFilePrefix", + "type": "string" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.Metrics": { + "additionalProperties": false, + "properties": { + "EventThreshold": { + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationTimeValue", + "markdownDescription": "A container specifying the time threshold for emitting the `s3:Replication:OperationMissedThreshold` event\\. \n*Required*: No \n*Type*: [ReplicationTimeValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtimevalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventThreshold" + }, + "Status": { + "markdownDescription": "Specifies whether the replication metrics are enabled\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "AWS::S3::Bucket.MetricsConfiguration": { + "additionalProperties": false, + "properties": { + "AccessPointArn": { + "markdownDescription": "The access point that was used while performing operations on the object\\. The metrics configuration only includes objects that meet the filter's criteria\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessPointArn", + "type": "string" + }, + "Id": { + "markdownDescription": "The ID used to identify the metrics configuration\\. This can be any value you choose that helps you identify your metrics configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "Prefix": { + "markdownDescription": "The prefix that an object must have to be included in the metrics results\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", + "type": "string" + }, + "TagFilters": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.TagFilter" + }, + "markdownDescription": "Specifies a list of tag filters to use as a metrics configuration filter\\. The metrics configuration includes only objects that meet the filter's criteria\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagFilters", + "type": "array" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::S3::Bucket.NoncurrentVersionExpiration": { + "additionalProperties": false, + "properties": { + "NewerNoncurrentVersions": { + "markdownDescription": "Specifies how many noncurrent versions Amazon S3 will retain\\. If there are this many more recent noncurrent versions, Amazon S3 will take the associated action\\. For more information about noncurrent versions, see [Lifecycle configuration elements](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NewerNoncurrentVersions", + "type": "number" + }, + "NoncurrentDays": { + "markdownDescription": "Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action\\. For information about the noncurrent days calculations, see [How Amazon S3 Calculates When an Object Became Noncurrent](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoncurrentDays", + "type": "number" + } + }, + "required": [ + "NoncurrentDays" + ], + "type": "object" + }, + "AWS::S3::Bucket.NoncurrentVersionTransition": { + "additionalProperties": false, + "properties": { + "NewerNoncurrentVersions": { + "markdownDescription": "Specifies how many noncurrent versions Amazon S3 will retain\\. If there are this many more recent noncurrent versions, Amazon S3 will take the associated action\\. For more information about noncurrent versions, see [Lifecycle configuration elements](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NewerNoncurrentVersions", + "type": "number" + }, + "StorageClass": { + "markdownDescription": "The class of storage used to store the object\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DEEP_ARCHIVE | GLACIER | GLACIER_IR | INTELLIGENT_TIERING | ONEZONE_IA | STANDARD_IA` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageClass", + "type": "string" + }, + "TransitionInDays": { + "markdownDescription": "Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action\\. For information about the noncurrent days calculations, see [How Amazon S3 Calculates How Long an Object Has Been Noncurrent](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitionInDays", + "type": "number" + } + }, + "required": [ + "StorageClass", + "TransitionInDays" + ], + "type": "object" + }, + "AWS::S3::Bucket.NotificationConfiguration": { + "additionalProperties": false, + "properties": { + "EventBridgeConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.EventBridgeConfiguration", + "markdownDescription": "Enables delivery of events to Amazon EventBridge\\. \n*Required*: No \n*Type*: [EventBridgeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-eventbridgeconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EventBridgeConfiguration" + }, + "LambdaConfigurations": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.LambdaConfiguration" + }, + "markdownDescription": "Describes the AWS Lambda functions to invoke and the events for which to invoke them\\. \n*Required*: No \n*Type*: List of [LambdaConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-lambdaconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaConfigurations", + "type": "array" + }, + "QueueConfigurations": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.QueueConfiguration" + }, + "markdownDescription": "The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages\\. \n*Required*: No \n*Type*: List of [QueueConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-queueconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueueConfigurations", + "type": "array" + }, + "TopicConfigurations": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.TopicConfiguration" + }, + "markdownDescription": "The topic to which notifications are sent and the events for which notifications are generated\\. \n*Required*: No \n*Type*: List of [TopicConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-topicconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TopicConfigurations", + "type": "array" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.NotificationFilter": { + "additionalProperties": false, + "properties": { + "S3Key": { + "$ref": "#/definitions/AWS::S3::Bucket.S3KeyFilter", + "markdownDescription": "A container for object key name prefix and suffix filtering rules\\. \n*Required*: Yes \n*Type*: [S3KeyFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Key" + } + }, + "required": [ + "S3Key" + ], + "type": "object" + }, + "AWS::S3::Bucket.ObjectLockConfiguration": { + "additionalProperties": false, + "properties": { + "ObjectLockEnabled": { + "markdownDescription": "Indicates whether this bucket has an Object Lock configuration enabled\\. Enable `ObjectLockEnabled` when you apply `ObjectLockConfiguration` to a bucket\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectLockEnabled", + "type": "string" + }, + "Rule": { + "$ref": "#/definitions/AWS::S3::Bucket.ObjectLockRule", + "markdownDescription": "Specifies the Object Lock rule for the specified object\\. Enable the this rule when you apply `ObjectLockConfiguration` to a bucket\\. If Object Lock is turned on, bucket settings require both `Mode` and a period of either `Days` or `Years`\\. You cannot specify `Days` and `Years` at the same time\\. For more information, see [ObjectLockRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockrule.html) and [DefaultRetention](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html)\\. \n*Required*: Conditional \n*Type*: [ObjectLockRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rule" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.ObjectLockRule": { + "additionalProperties": false, + "properties": { + "DefaultRetention": { + "$ref": "#/definitions/AWS::S3::Bucket.DefaultRetention", + "markdownDescription": "The default Object Lock retention mode and period that you want to apply to new objects placed in the specified bucket\\. If Object Lock is turned on, bucket settings require both `Mode` and a period of either `Days` or `Years`\\. You cannot specify `Days` and `Years` at the same time\\. For more information about allowable values for mode and period, see [DefaultRetention](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html)\\. \n*Required*: Conditional \n*Type*: [DefaultRetention](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultRetention" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.OwnershipControls": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.OwnershipControlsRule" + }, + "markdownDescription": "Specifies the container element for Object Ownership rules\\. \n*Required*: Yes \n*Type*: List of [OwnershipControlsRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrolsrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::S3::Bucket.OwnershipControlsRule": { + "additionalProperties": false, + "properties": { + "ObjectOwnership": { + "markdownDescription": "Specifies an Object Ownership rule\\. \n*Allowed values*: `BucketOwnerEnforced` \\| `ObjectWriter` \\| `BucketOwnerPreferred` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectOwnership", + "type": "string" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.PublicAccessBlockConfiguration": { + "additionalProperties": false, + "properties": { + "BlockPublicAcls": { + "markdownDescription": "Specifies whether Amazon S3 should block public access control lists \\(ACLs\\) for this bucket and objects in this bucket\\. Setting this element to `TRUE` causes the following behavior: \n+ PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is public\\.\n+ PUT Object calls fail if the request includes a public ACL\\.\n+ PUT Bucket calls fail if the request includes a public ACL\\.\nEnabling this setting doesn't affect existing policies or ACLs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockPublicAcls", + "type": "boolean" + }, + "BlockPublicPolicy": { + "markdownDescription": "Specifies whether Amazon S3 should block public bucket policies for this bucket\\. Setting this element to `TRUE` causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access\\. \nEnabling this setting doesn't affect existing bucket policies\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlockPublicPolicy", + "type": "boolean" + }, + "IgnorePublicAcls": { + "markdownDescription": "Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket\\. Setting this element to `TRUE` causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket\\. \nEnabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IgnorePublicAcls", + "type": "boolean" + }, + "RestrictPublicBuckets": { + "markdownDescription": "Specifies whether Amazon S3 should restrict public bucket policies for this bucket\\. Setting this element to `TRUE` restricts access to this bucket to only AWS service principals and authorized users within this account if the bucket has a public policy\\. \nEnabling this setting doesn't affect previously stored bucket policies, except that public and cross\\-account access within any public bucket policy, including non\\-public delegation to specific accounts, is blocked\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RestrictPublicBuckets", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.QueueConfiguration": { + "additionalProperties": false, + "properties": { + "Event": { + "markdownDescription": "The Amazon S3 bucket event about which you want to publish messages to Amazon SQS\\. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Event", + "type": "string" + }, + "Filter": { + "$ref": "#/definitions/AWS::S3::Bucket.NotificationFilter", + "markdownDescription": "The filtering rules that determine which objects trigger notifications\\. For example, you can create a filter so that Amazon S3 sends notifications only when image files with a `.jpg` extension are added to the bucket\\. \n*Required*: No \n*Type*: [NotificationFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filter" + }, + "Queue": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type\\. FIFO queues are not allowed when enabling an SQS queue as the event notification destination\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Queue", + "type": "string" + } + }, + "required": [ + "Event", + "Queue" + ], + "type": "object" + }, + "AWS::S3::Bucket.RedirectAllRequestsTo": { + "additionalProperties": false, + "properties": { + "HostName": { + "markdownDescription": "Name of the host where requests are redirected\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostName", + "type": "string" + }, + "Protocol": { + "markdownDescription": "Protocol to use when redirecting requests\\. The default is the protocol that is used in the original request\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `http | https` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "string" + } + }, + "required": [ + "HostName" + ], + "type": "object" + }, + "AWS::S3::Bucket.RedirectRule": { + "additionalProperties": false, + "properties": { + "HostName": { + "markdownDescription": "The host name to use in the redirect request\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HostName", + "type": "string" + }, + "HttpRedirectCode": { + "markdownDescription": "The HTTP redirect code to use on the response\\. Not required if one of the siblings is present\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpRedirectCode", + "type": "string" + }, + "Protocol": { + "markdownDescription": "Protocol to use when redirecting requests\\. The default is the protocol that is used in the original request\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `http | https` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocol", + "type": "string" + }, + "ReplaceKeyPrefixWith": { + "markdownDescription": "The object key prefix to use in the redirect request\\. For example, to redirect requests for all pages with prefix `docs/` \\(objects in the `docs/` folder\\) to `documents/`, you can set a condition block with `KeyPrefixEquals` set to `docs/` and in the Redirect set `ReplaceKeyPrefixWith` to `/documents`\\. Not required if one of the siblings is present\\. Can be present only if `ReplaceKeyWith` is not provided\\. \nReplacement must be made for object keys containing special characters \\(such as carriage returns\\) when using XML requests\\. For more information, see [ XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplaceKeyPrefixWith", + "type": "string" + }, + "ReplaceKeyWith": { + "markdownDescription": "The specific object key to use in the redirect request\\. For example, redirect request to `error.html`\\. Not required if one of the siblings is present\\. Can be present only if `ReplaceKeyPrefixWith` is not provided\\. \nReplacement must be made for object keys containing special characters \\(such as carriage returns\\) when using XML requests\\. For more information, see [ XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplaceKeyWith", + "type": "string" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.ReplicaModifications": { + "additionalProperties": false, + "properties": { + "Status": { + "markdownDescription": "Specifies whether Amazon S3 replicates modifications on replicas\\. \n*Allowed values*: `Enabled` \\| `Disabled` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "AWS::S3::Bucket.ReplicationConfiguration": { + "additionalProperties": false, + "properties": { + "Role": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Identity and Access Management \\(IAM\\) role that Amazon S3 assumes when replicating objects\\. For more information, see [How to Set Up Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-how-setup.html) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Role", + "type": "string" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationRule" + }, + "markdownDescription": "A container for one or more replication rules\\. A replication configuration must have at least one rule and can contain a maximum of 1,000 rules\\. \n*Required*: Yes \n*Type*: List of [ReplicationRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", + "type": "array" + } + }, + "required": [ + "Role", + "Rules" + ], + "type": "object" + }, + "AWS::S3::Bucket.ReplicationDestination": { + "additionalProperties": false, + "properties": { + "AccessControlTranslation": { + "$ref": "#/definitions/AWS::S3::Bucket.AccessControlTranslation", + "markdownDescription": "Specify this only in a cross\\-account scenario \\(where source and destination bucket owners are not the same\\), and you want to change replica ownership to the AWS account that owns the destination bucket\\. If this is not specified in the replication configuration, the replicas are owned by same AWS account that owns the source object\\. \n*Required*: No \n*Type*: [AccessControlTranslation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-accesscontroltranslation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessControlTranslation" + }, + "Account": { + "markdownDescription": "Destination bucket owner account ID\\. In a cross\\-account scenario, if you direct Amazon S3 to change replica ownership to the AWS account that owns the destination bucket by specifying the `AccessControlTranslation` property, this is the account ID of the destination bucket owner\\. For more information, see [Cross\\-Region Replication Additional Configuration: Change Replica Owner](https://docs.aws.amazon.com/AmazonS3/latest/dev/crr-change-owner.html) in the *Amazon S3 User Guide*\\. \nIf you specify the `AccessControlTranslation` property, the `Account` property is required\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Account", + "type": "string" + }, + "Bucket": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the bucket where you want Amazon S3 to store the results\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", + "type": "string" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.EncryptionConfiguration", + "markdownDescription": "Specifies encryption\\-related information\\. \n*Required*: No \n*Type*: [EncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-encryptionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionConfiguration" + }, + "Metrics": { + "$ref": "#/definitions/AWS::S3::Bucket.Metrics", + "markdownDescription": "A container specifying replication metrics\\-related settings enabling replication metrics and events\\. \n*Required*: No \n*Type*: [Metrics](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metrics.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Metrics" + }, + "ReplicationTime": { + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationTime", + "markdownDescription": "A container specifying S3 Replication Time Control \\(S3 RTC\\), including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated\\. Must be specified together with a `Metrics` block\\. \n*Required*: No \n*Type*: [ReplicationTime](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtime.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicationTime" + }, + "StorageClass": { + "markdownDescription": "The storage class to use when replicating objects, such as S3 Standard or reduced redundancy\\. By default, Amazon S3 uses the storage class of the source object to create the object replica\\. \nFor valid values, see the `StorageClass` element of the [PUT Bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) action in the *Amazon S3 API Reference*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DEEP_ARCHIVE | GLACIER | GLACIER_IR | INTELLIGENT_TIERING | ONEZONE_IA | OUTPOSTS | REDUCED_REDUNDANCY | STANDARD | STANDARD_IA` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageClass", + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::S3::Bucket.ReplicationRule": { + "additionalProperties": false, + "properties": { + "DeleteMarkerReplication": { + "$ref": "#/definitions/AWS::S3::Bucket.DeleteMarkerReplication", + "markdownDescription": "Specifies whether Amazon S3 replicates delete markers\\. If you specify a `Filter` in your replication configuration, you must also include a `DeleteMarkerReplication` element\\. If your `Filter` includes a `Tag` element, the `DeleteMarkerReplication` `Status` must be set to Disabled, because Amazon S3 does not support replicating delete markers for tag\\-based rules\\. For an example configuration, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config)\\. \nFor more information about delete marker replication, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html)\\. \nIf you are using an earlier version of the replication configuration, Amazon S3 handles replication of delete markers differently\\. For more information, see [Backward Compatibility](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations)\\.\n*Required*: No \n*Type*: [DeleteMarkerReplication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-deletemarkerreplication.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeleteMarkerReplication" + }, + "Destination": { + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationDestination", + "markdownDescription": "A container for information about the replication destination and its configurations including enabling the S3 Replication Time Control \\(S3 RTC\\)\\. \n*Required*: Yes \n*Type*: [ReplicationDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationconfiguration-rules-destination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destination" + }, + "Filter": { + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationRuleFilter", + "markdownDescription": "A filter that identifies the subset of objects to which the replication rule applies\\. A `Filter` must specify exactly one `Prefix`, `TagFilter`, or an `And` child element\\. The use of the filter field indicates this is a V2 replication configuration\\. V1 does not have this field\\. \n*Required*: No \n*Type*: [ReplicationRuleFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationrulefilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filter" + }, + "Id": { + "markdownDescription": "A unique identifier for the rule\\. The maximum value is 255 characters\\. If you don't specify a value, AWS CloudFormation generates a random ID\\. When using a V2 replication configuration this property is capitalized as \"ID\"\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "Prefix": { + "markdownDescription": "An object key name prefix that identifies the object or objects to which the rule applies\\. The maximum prefix length is 1,024 characters\\. To include all objects in a bucket, specify an empty string\\. \nReplacement must be made for object keys containing special characters \\(such as carriage returns\\) when using XML requests\\. For more information, see [ XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", + "type": "string" + }, + "Priority": { + "markdownDescription": "The priority indicates which rule has precedence whenever two or more replication rules conflict\\. Amazon S3 will attempt to replicate objects according to all replication rules\\. However, if there are two or more rules with the same destination bucket, then objects will be replicated according to the rule with the highest priority\\. The higher the number, the higher the priority\\. \nFor more information, see [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", + "type": "number" + }, + "SourceSelectionCriteria": { + "$ref": "#/definitions/AWS::S3::Bucket.SourceSelectionCriteria", + "markdownDescription": "A container that describes additional filters for identifying the source objects that you want to replicate\\. You can choose to enable or disable the replication of these objects\\. \n*Required*: No \n*Type*: [SourceSelectionCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-sourceselectioncriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceSelectionCriteria" + }, + "Status": { + "markdownDescription": "Specifies whether the rule is enabled\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + } + }, + "required": [ + "Destination", + "Status" + ], + "type": "object" + }, + "AWS::S3::Bucket.ReplicationRuleAndOperator": { + "additionalProperties": false, + "properties": { + "Prefix": { + "markdownDescription": "An object key name prefix that identifies the subset of objects to which the rule applies\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", + "type": "string" + }, + "TagFilters": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.TagFilter" + }, + "markdownDescription": "An array of tags containing key and value pairs\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagFilters", + "type": "array" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.ReplicationRuleFilter": { + "additionalProperties": false, + "properties": { + "And": { + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationRuleAndOperator", + "markdownDescription": "A container for specifying rule filters\\. The filters determine the subset of objects to which the rule applies\\. This element is required only if you specify more than one filter\\. For example: \n+ If you specify both a `Prefix` and a `TagFilter`, wrap these filters in an `And` tag\\.\n+ If you specify a filter based on multiple tags, wrap the `TagFilter` elements in an `And` tag\\.\n*Required*: No \n*Type*: [ReplicationRuleAndOperator](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationruleandoperator.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "And" + }, + "Prefix": { + "markdownDescription": "An object key name prefix that identifies the subset of objects to which the rule applies\\. \nReplacement must be made for object keys containing special characters \\(such as carriage returns\\) when using XML requests\\. For more information, see [ XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", + "type": "string" + }, + "TagFilter": { + "$ref": "#/definitions/AWS::S3::Bucket.TagFilter", + "markdownDescription": "A container for specifying a tag key and value\\. \nThe rule applies only to objects that have the tag in their tag set\\. \n*Required*: No \n*Type*: [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagFilter" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.ReplicationTime": { + "additionalProperties": false, + "properties": { + "Status": { + "markdownDescription": "Specifies whether the replication time is enabled\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + }, + "Time": { + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationTimeValue", + "markdownDescription": "A container specifying the time by which replication should be complete for all objects and operations on objects\\. \n*Required*: Yes \n*Type*: [ReplicationTimeValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicationtimevalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Time" + } + }, + "required": [ + "Status", + "Time" + ], + "type": "object" + }, + "AWS::S3::Bucket.ReplicationTimeValue": { + "additionalProperties": false, + "properties": { + "Minutes": { + "markdownDescription": "Contains an integer specifying time in minutes\\. \n Valid value: 15 \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Minutes", + "type": "number" + } + }, + "required": [ + "Minutes" + ], + "type": "object" + }, + "AWS::S3::Bucket.RoutingRule": { + "additionalProperties": false, + "properties": { + "RedirectRule": { + "$ref": "#/definitions/AWS::S3::Bucket.RedirectRule", + "markdownDescription": "Container for redirect information\\. You can redirect requests to another host, to another page, or with another protocol\\. In the event of an error, you can specify a different error code to return\\. \n*Required*: Yes \n*Type*: [RedirectRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-redirectrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedirectRule" + }, + "RoutingRuleCondition": { + "$ref": "#/definitions/AWS::S3::Bucket.RoutingRuleCondition", + "markdownDescription": "A container for describing a condition that must be met for the specified redirect to apply\\. For example, 1\\. If request is for pages in the `/docs` folder, redirect to the `/documents` folder\\. 2\\. If request results in HTTP error 4xx, redirect request to another host where you might process the error\\. \n*Required*: No \n*Type*: [RoutingRuleCondition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules-routingrulecondition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoutingRuleCondition" + } + }, + "required": [ + "RedirectRule" + ], + "type": "object" + }, + "AWS::S3::Bucket.RoutingRuleCondition": { + "additionalProperties": false, + "properties": { + "HttpErrorCodeReturnedEquals": { + "markdownDescription": "The HTTP error code when the redirect is applied\\. In the event of an error, if the error code equals this value, then the specified redirect is applied\\. \nRequired when parent element `Condition` is specified and sibling `KeyPrefixEquals` is not specified\\. If both are specified, then both must be true for the redirect to be applied\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HttpErrorCodeReturnedEquals", + "type": "string" + }, + "KeyPrefixEquals": { + "markdownDescription": "The object key name prefix when the redirect is applied\\. For example, to redirect requests for `ExamplePage.html`, the key prefix will be `ExamplePage.html`\\. To redirect request for all pages with the prefix `docs/`, the key prefix will be `/docs`, which identifies all objects in the docs/ folder\\. \nRequired when the parent element `Condition` is specified and sibling `HttpErrorCodeReturnedEquals` is not specified\\. If both conditions are specified, both must be true for the redirect to be applied\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KeyPrefixEquals", + "type": "string" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.Rule": { + "additionalProperties": false, + "properties": { + "AbortIncompleteMultipartUpload": { + "$ref": "#/definitions/AWS::S3::Bucket.AbortIncompleteMultipartUpload", + "markdownDescription": "Specifies a lifecycle rule that stops incomplete multipart uploads to an Amazon S3 bucket\\. \n*Required*: Conditional \n*Type*: [AbortIncompleteMultipartUpload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-abortincompletemultipartupload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AbortIncompleteMultipartUpload" + }, + "ExpirationDate": { + "markdownDescription": "Indicates when objects are deleted from Amazon S3 and Amazon S3 Glacier\\. The date value must be in ISO 8601 format\\. The time is always midnight UTC\\. If you specify an expiration and transition time, you must use the same time unit for both properties \\(either in days or by date\\)\\. The expiration time must also be later than the transition time\\. \n*Required*: Conditional \n*Type*: Timestamp \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExpirationDate", + "type": "string" + }, + "ExpirationInDays": { + "markdownDescription": "Indicates the number of days after creation when objects are deleted from Amazon S3 and Amazon S3 Glacier\\. If you specify an expiration and transition time, you must use the same time unit for both properties \\(either in days or by date\\)\\. The expiration time must also be later than the transition time\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExpirationInDays", + "type": "number" + }, + "ExpiredObjectDeleteMarker": { + "markdownDescription": "Indicates whether Amazon S3 will remove a delete marker without any noncurrent versions\\. If set to true, the delete marker will be removed if there are no noncurrent versions\\. This cannot be specified with `ExpirationInDays`, `ExpirationDate`, or `TagFilters`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExpiredObjectDeleteMarker", + "type": "boolean" + }, + "Id": { + "markdownDescription": "Unique identifier for the rule\\. The value can't be longer than 255 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "NoncurrentVersionExpiration": { + "$ref": "#/definitions/AWS::S3::Bucket.NoncurrentVersionExpiration", + "markdownDescription": "Specifies when noncurrent object versions expire\\. Upon expiration, Amazon S3 permanently deletes the noncurrent object versions\\. You set this lifecycle configuration action on a bucket that has versioning enabled \\(or suspended\\) to request that Amazon S3 delete noncurrent object versions at a specific period in the object's lifetime\\. \n*Required*: No \n*Type*: [NoncurrentVersionExpiration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-noncurrentversionexpiration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoncurrentVersionExpiration" + }, + "NoncurrentVersionExpirationInDays": { + "markdownDescription": "\\(Deprecated\\.\\) For buckets with versioning enabled \\(or suspended\\), specifies the time, in days, between when a new version of the object is uploaded to the bucket and when old versions of the object expire\\. When object versions expire, Amazon S3 permanently deletes them\\. If you specify a transition and expiration time, the expiration time must be later than the transition time\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoncurrentVersionExpirationInDays", + "type": "number" + }, + "NoncurrentVersionTransition": { + "$ref": "#/definitions/AWS::S3::Bucket.NoncurrentVersionTransition", + "markdownDescription": "\\(Deprecated\\.\\) For buckets with versioning enabled \\(or suspended\\), specifies when non\\-current objects transition to a specified storage class\\. If you specify a transition and expiration time, the expiration time must be later than the transition time\\. If you specify this property, don't specify the `NoncurrentVersionTransitions` property\\. \n*Required*: Conditional \n*Type*: [NoncurrentVersionTransition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-noncurrentversiontransition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoncurrentVersionTransition" + }, + "NoncurrentVersionTransitions": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.NoncurrentVersionTransition" + }, + "markdownDescription": "For buckets with versioning enabled \\(or suspended\\), one or more transition rules that specify when non\\-current objects transition to a specified storage class\\. If you specify a transition and expiration time, the expiration time must be later than the transition time\\. If you specify this property, don't specify the `NoncurrentVersionTransition` property\\. \n*Required*: Conditional \n*Type*: List of [NoncurrentVersionTransition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-noncurrentversiontransition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NoncurrentVersionTransitions", + "type": "array" + }, + "ObjectSizeGreaterThan": { + "markdownDescription": "Specifies the minimum object size in bytes for this rule to apply to\\. For more information about size based rules, see [Lifecycle configuration using size\\-based rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lc-size-rules) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: Long \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectSizeGreaterThan", + "type": "number" + }, + "ObjectSizeLessThan": { + "markdownDescription": "Specifies the maximum object size in bytes for this rule to apply to\\. For more information about sized based rules, see [Lifecycle configuration using size\\-based rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lc-size-rules) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: Long \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectSizeLessThan", + "type": "number" + }, + "Prefix": { + "markdownDescription": "Object key prefix that identifies one or more objects to which this rule applies\\. \nReplacement must be made for object keys containing special characters \\(such as carriage returns\\) when using XML requests\\. For more information, see [ XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Prefix", + "type": "string" + }, + "Status": { + "markdownDescription": "If `Enabled`, the rule is currently being applied\\. If `Disabled`, the rule is not currently being applied\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + }, + "TagFilters": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.TagFilter" + }, + "markdownDescription": "Tags to use to identify a subset of objects to which the lifecycle rule applies\\. \n*Required*: No \n*Type*: List of [TagFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-tagfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TagFilters", + "type": "array" + }, + "Transition": { + "$ref": "#/definitions/AWS::S3::Bucket.Transition", + "markdownDescription": "\\(Deprecated\\.\\) Specifies when an object transitions to a specified storage class\\. If you specify an expiration and transition time, you must use the same time unit for both properties \\(either in days or by date\\)\\. The expiration time must also be later than the transition time\\. If you specify this property, don't specify the `Transitions` property\\. \n*Required*: Conditional \n*Type*: [Transition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-transition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Transition" + }, + "Transitions": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.Transition" + }, + "markdownDescription": "One or more transition rules that specify when an object transitions to a specified storage class\\. If you specify an expiration and transition time, you must use the same time unit for both properties \\(either in days or by date\\)\\. The expiration time must also be later than the transition time\\. If you specify this property, don't specify the `Transition` property\\. \n*Required*: Conditional \n*Type*: List of [Transition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-lifecycleconfig-rule-transition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Transitions", + "type": "array" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "AWS::S3::Bucket.S3KeyFilter": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.FilterRule" + }, + "markdownDescription": "A list of containers for the key\\-value pair that defines the criteria for the filter rule\\. \n*Required*: Yes \n*Type*: List of [FilterRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter-s3key-rules.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::S3::Bucket.ServerSideEncryptionByDefault": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyID": { + "markdownDescription": "KMS key ID to use for the default encryption\\. This parameter is allowed if SSEAlgorithm is aws:kms\\. \nYou can specify the key ID or the Amazon Resource Name \\(ARN\\) of the CMK\\. However, if you are using encryption with cross\\-account operations, you must use a fully qualified CMK ARN\\. For more information, see [Using encryption for cross\\-account operations](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy)\\. \nFor example: \n+ Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`\n+ Key ARN: `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`\nAmazon S3 only supports symmetric KMS keys and not asymmetric KMS keys\\. For more information, see [Using Symmetric and Asymmetric Keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) in the *AWS Key Management Service Developer Guide*\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KMSMasterKeyID", + "type": "string" + }, + "SSEAlgorithm": { + "markdownDescription": "Server\\-side encryption algorithm to use for the default encryption\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AES256 | aws:kms` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SSEAlgorithm", + "type": "string" + } + }, + "required": [ + "SSEAlgorithm" + ], + "type": "object" + }, + "AWS::S3::Bucket.ServerSideEncryptionRule": { + "additionalProperties": false, + "properties": { + "BucketKeyEnabled": { + "markdownDescription": "Specifies whether Amazon S3 should use an S3 Bucket Key with server\\-side encryption using KMS \\(SSE\\-KMS\\) for new objects in the bucket\\. Existing objects are not affected\\. Setting the `BucketKeyEnabled` element to `true` causes Amazon S3 to use an S3 Bucket Key\\. By default, S3 Bucket Key is not enabled\\. \nFor more information, see [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketKeyEnabled", + "type": "boolean" + }, + "ServerSideEncryptionByDefault": { + "$ref": "#/definitions/AWS::S3::Bucket.ServerSideEncryptionByDefault", + "markdownDescription": "Specifies the default server\\-side encryption to apply to new objects in the bucket\\. If a PUT Object request doesn't specify any server\\-side encryption, this default encryption will be applied\\. \n*Required*: No \n*Type*: [ServerSideEncryptionByDefault](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionbydefault.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerSideEncryptionByDefault" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.SourceSelectionCriteria": { + "additionalProperties": false, + "properties": { + "ReplicaModifications": { + "$ref": "#/definitions/AWS::S3::Bucket.ReplicaModifications", + "markdownDescription": "A filter that you can specify for selection for modifications on replicas\\. \n*Required*: No \n*Type*: [ReplicaModifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicamodifications.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplicaModifications" + }, + "SseKmsEncryptedObjects": { + "$ref": "#/definitions/AWS::S3::Bucket.SseKmsEncryptedObjects", + "markdownDescription": "A container for filter information for the selection of Amazon S3 objects encrypted with AWS KMS\\. \n*Required*: No \n*Type*: [SseKmsEncryptedObjects](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ssekmsencryptedobjects.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SseKmsEncryptedObjects" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.SseKmsEncryptedObjects": { + "additionalProperties": false, + "properties": { + "Status": { + "markdownDescription": "Specifies whether Amazon S3 replicates objects created with server\\-side encryption using an AWS KMS key stored in AWS Key Management Service\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Disabled | Enabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "AWS::S3::Bucket.StorageClassAnalysis": { + "additionalProperties": false, + "properties": { + "DataExport": { + "$ref": "#/definitions/AWS::S3::Bucket.DataExport", + "markdownDescription": "Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported\\. \n*Required*: No \n*Type*: [DataExport](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-dataexport.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataExport" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The tag key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The tag value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::S3::Bucket.Tiering": { + "additionalProperties": false, + "properties": { + "AccessTier": { + "markdownDescription": "S3 Intelligent\\-Tiering access tier\\. See [Storage class for automatically optimizing frequently and infrequently accessed objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access) for a list of access tiers in the S3 Intelligent\\-Tiering storage class\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ARCHIVE_ACCESS | DEEP_ARCHIVE_ACCESS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessTier", + "type": "string" + }, + "Days": { + "markdownDescription": "The number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier\\. The minimum number of days specified for Archive Access tier must be at least 90 days and Deep Archive Access tier must be at least 180 days\\. The maximum can be up to 2 years \\(730 days\\)\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Days", + "type": "number" + } + }, + "required": [ + "AccessTier", + "Days" + ], + "type": "object" + }, + "AWS::S3::Bucket.TopicConfiguration": { + "additionalProperties": false, + "properties": { + "Event": { + "markdownDescription": "The Amazon S3 bucket event about which to send notifications\\. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Event", + "type": "string" + }, + "Filter": { + "$ref": "#/definitions/AWS::S3::Bucket.NotificationFilter", + "markdownDescription": "The filtering rules that determine for which objects to send notifications\\. For example, you can create a filter so that Amazon S3 sends notifications only when image files with a `.jpg` extension are added to the bucket\\. \n*Required*: No \n*Type*: [NotificationFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filter" + }, + "Topic": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to which Amazon S3 publishes a message when it detects events of the specified type\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Topic", + "type": "string" + } + }, + "required": [ + "Event", + "Topic" + ], + "type": "object" + }, + "AWS::S3::Bucket.Transition": { + "additionalProperties": false, + "properties": { + "StorageClass": { + "markdownDescription": "The storage class to which you want the object to transition\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `DEEP_ARCHIVE | GLACIER | GLACIER_IR | INTELLIGENT_TIERING | ONEZONE_IA | STANDARD_IA` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageClass", + "type": "string" + }, + "TransitionDate": { + "markdownDescription": "Indicates when objects are transitioned to the specified storage class\\. The date value must be in ISO 8601 format\\. The time is always midnight UTC\\. \n*Required*: Conditional \n*Type*: Timestamp \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitionDate", + "type": "string" + }, + "TransitionInDays": { + "markdownDescription": "Indicates the number of days after creation when objects are transitioned to the specified storage class\\. The value must be a positive integer\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransitionInDays", + "type": "number" + } + }, + "required": [ + "StorageClass" + ], + "type": "object" + }, + "AWS::S3::Bucket.VersioningConfiguration": { + "additionalProperties": false, + "properties": { + "Status": { + "markdownDescription": "The versioning state of the bucket\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Enabled | Suspended` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "AWS::S3::Bucket.WebsiteConfiguration": { + "additionalProperties": false, + "properties": { + "ErrorDocument": { + "markdownDescription": "The name of the error document for the website\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ErrorDocument", + "type": "string" + }, + "IndexDocument": { + "markdownDescription": "The name of the index document for the website\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IndexDocument", + "type": "string" + }, + "RedirectAllRequestsTo": { + "$ref": "#/definitions/AWS::S3::Bucket.RedirectAllRequestsTo", + "markdownDescription": "The redirect behavior for every request to this bucket's website endpoint\\. \nIf you specify this property, you can't specify any other property\\.\n*Required*: No \n*Type*: [RedirectAllRequestsTo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-redirectallrequeststo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedirectAllRequestsTo" + }, + "RoutingRules": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.RoutingRule" + }, + "markdownDescription": "Rules that define when a redirect is applied and the redirect behavior\\. \n*Required*: No \n*Type*: List of [RoutingRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoutingRules", + "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": { + "markdownDescription": "The name of the Amazon S3 bucket to which the policy applies\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Bucket", + "type": "string" + }, + "PolicyDocument": { + "markdownDescription": "A policy document containing permissions to add to the specified bucket\\. In IAM, you must provide policy documents in JSON format\\. However, in CloudFormation you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM\\. For more information, see the AWS::IAM::Policy [PolicyDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-policydocument) resource description in this guide and [Access Policy Language Overview](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-policy-language-overview.html) in the *Amazon S3 User Guide*\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the Multi\\-Region Access Point\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "PublicAccessBlockConfiguration": { + "$ref": "#/definitions/AWS::S3::MultiRegionAccessPoint.PublicAccessBlockConfiguration", + "markdownDescription": "The PublicAccessBlock configuration that you want to apply to this Multi\\-Region Access Point\\. You can enable the configuration options in any combination\\. For more information about when Amazon S3 considers an object public, see [The Meaning of \"Public\"](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) in the *Amazon S3 User Guide*\\. \n*Required*: No \n*Type*: [PublicAccessBlockConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-multiregionaccesspoint-publicaccessblockconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PublicAccessBlockConfiguration" + }, + "Regions": { + "items": { + "$ref": "#/definitions/AWS::S3::MultiRegionAccessPoint.Region" + }, + "markdownDescription": "A collection of the Regions and buckets associated with the Multi\\-Region Access Point\\. \n*Required*: Yes \n*Type*: List of [Region](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-multiregionaccesspoint-region.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Regions", + "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": { + "markdownDescription": "Specifies whether Amazon S3 should block public access control lists \\(ACLs\\) for this bucket and objects in this bucket\\. Setting this element to `TRUE` causes the following behavior: \n+ PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is public\\.\n+ PUT Object calls fail if the request includes a public ACL\\.\n+ PUT Bucket calls fail if the request includes a public ACL\\.\nEnabling this setting doesn't affect existing policies or ACLs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BlockPublicAcls", + "type": "boolean" + }, + "BlockPublicPolicy": { + "markdownDescription": "Specifies whether Amazon S3 should block public bucket policies for this bucket\\. Setting this element to `TRUE` causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access\\. \nEnabling this setting doesn't affect existing bucket policies\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BlockPublicPolicy", + "type": "boolean" + }, + "IgnorePublicAcls": { + "markdownDescription": "Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket\\. Setting this element to `TRUE` causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket\\. \nEnabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IgnorePublicAcls", + "type": "boolean" + }, + "RestrictPublicBuckets": { + "markdownDescription": "Specifies whether Amazon S3 should restrict public bucket policies for this bucket\\. Setting this element to `TRUE` restricts access to this bucket to only AWS service principals and authorized users within this account if the bucket has a public policy\\. \nEnabling this setting doesn't affect previously stored bucket policies, except that public and cross\\-account access within any public bucket policy, including non\\-public delegation to specific accounts, is blocked\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RestrictPublicBuckets", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::S3::MultiRegionAccessPoint.Region": { + "additionalProperties": false, + "properties": { + "Bucket": { + "markdownDescription": "The name of the associated bucket for the Region\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the Multi\\-Region Access Point\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MrapName", + "type": "string" + }, + "Policy": { + "markdownDescription": "The access policy associated with the Multi\\-Region Access Point\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "This resource contains the details Amazon S3 Storage Lens configuration\\. \n*Required*: Yes \n*Type*: [StorageLensConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-storagelensconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageLensConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A set of tags \\(key\u2013value pairs\\) to associate with the Storage Lens configuration\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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", + "markdownDescription": "This property contains the details of the account\\-level activity metrics for Amazon S3 Storage Lens\\. \n*Required*: No \n*Type*: [ActivityMetrics](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-activitymetrics.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActivityMetrics" + }, + "AdvancedCostOptimizationMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.AdvancedCostOptimizationMetrics" + }, + "AdvancedDataProtectionMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.AdvancedDataProtectionMetrics" + }, + "BucketLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketLevel", + "markdownDescription": "This property contains the details of the account\\-level bucket\\-level configurations for Amazon S3 Storage Lens\\. \n*Required*: Yes \n*Type*: [BucketLevel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-bucketlevel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketLevel" + }, + "DetailedStatusCodesMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.DetailedStatusCodesMetrics" + } + }, + "required": [ + "BucketLevel" + ], + "type": "object" + }, + "AWS::S3::StorageLens.ActivityMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "markdownDescription": "A property that indicates whether the activity metrics is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "This resource contains the ARN of the AWS Organization\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::S3::StorageLens.BucketLevel": { + "additionalProperties": false, + "properties": { + "ActivityMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics", + "markdownDescription": "A property for the bucket\\-level activity metrics for Amazon S3 Storage Lens\\. \n*Required*: No \n*Type*: [ActivityMetrics](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-activitymetrics.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "A property for the bucket\\-level prefix\\-level storage metrics for S3 Storage Lens\\. \n*Required*: No \n*Type*: [PrefixLevel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-prefixlevel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PrefixLevel" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.BucketsAndRegions": { + "additionalProperties": false, + "properties": { + "Buckets": { + "items": { + "type": "string" + }, + "markdownDescription": "This property contains the details of the buckets for the Amazon S3 Storage Lens configuration\\. This should be the bucket Amazon Resource Name\\(ARN\\)\\. For valid values, see [Buckets ARN format here](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_Include.html#API_control_Include_Contents) in the *Amazon S3 API Reference*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Buckets", + "type": "array" + }, + "Regions": { + "items": { + "type": "string" + }, + "markdownDescription": "This property contains the details of the Regions for the S3 Storage Lens configuration\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Regions", + "type": "array" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.CloudWatchMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "markdownDescription": "This property identifies whether the CloudWatch publishing option for S3 Storage Lens is enabled\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsEnabled", + "type": "boolean" + } + }, + "required": [ + "IsEnabled" + ], + "type": "object" + }, + "AWS::S3::StorageLens.DataExport": { + "additionalProperties": false, + "properties": { + "CloudWatchMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.CloudWatchMetrics", + "markdownDescription": "This property enables the Amazon CloudWatch publishing option for S3 Storage Lens metrics\\. \n*Required*: No \n*Type*: [CloudWatchMetrics](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-cloudwatchmetrics.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchMetrics" + }, + "S3BucketDestination": { + "$ref": "#/definitions/AWS::S3::StorageLens.S3BucketDestination", + "markdownDescription": "This property contains the details of the bucket where the S3 Storage Lens metrics export will be placed\\. \n*Required*: No \n*Type*: [S3BucketDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-s3bucketdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "A property for the prefix\\-level storage metrics for Amazon S3 Storage Lens\\. \n*Required*: Yes \n*Type*: [PrefixLevelStorageMetrics](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-prefixlevelstoragemetrics.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StorageMetrics" + } + }, + "required": [ + "StorageMetrics" + ], + "type": "object" + }, + "AWS::S3::StorageLens.PrefixLevelStorageMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "markdownDescription": "This property identifies whether the details of the prefix\\-level storage metrics for S3 Storage Lens are enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsEnabled", + "type": "boolean" + }, + "SelectionCriteria": { + "$ref": "#/definitions/AWS::S3::StorageLens.SelectionCriteria", + "markdownDescription": "This property identifies whether the details of the prefix\\-level storage metrics for S3 Storage Lens are enabled\\. \n*Required*: No \n*Type*: [SelectionCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-selectioncriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SelectionCriteria" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.S3BucketDestination": { + "additionalProperties": false, + "properties": { + "AccountId": { + "markdownDescription": "This property contains the details of the AWS account ID of the S3 Storage Lens export bucket destination\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountId", + "type": "string" + }, + "Arn": { + "markdownDescription": "This property contains the details of the ARN of the bucket destination of the S3 Storage Lens export\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::S3::StorageLens.Encryption", + "markdownDescription": "This property contains the details of the encryption of the bucket destination of the Amazon S3 Storage Lens metrics export\\. \n*Required*: No \n*Type*: [Encryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-encryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encryption" + }, + "Format": { + "markdownDescription": "This property contains the details of the format of the S3 Storage Lens export bucket destination\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Format", + "type": "string" + }, + "OutputSchemaVersion": { + "markdownDescription": "This property contains the details of the output schema version of the S3 Storage Lens export bucket destination\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputSchemaVersion", + "type": "string" + }, + "Prefix": { + "markdownDescription": "This property contains the details of the prefix of the bucket destination of the S3 Storage Lens export \\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "This property contains the details of the S3 Storage Lens delimiter being used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Delimiter", + "type": "string" + }, + "MaxDepth": { + "markdownDescription": "This property contains the details of the max depth that S3 Storage Lens will collect metrics up to\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxDepth", + "type": "number" + }, + "MinStorageBytesPercentage": { + "markdownDescription": "This property contains the details of the minimum storage bytes percentage threshold that S3 Storage Lens will collect metrics up to\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MinStorageBytesPercentage", + "type": "number" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.StorageLensConfiguration": { + "additionalProperties": false, + "properties": { + "AccountLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.AccountLevel", + "markdownDescription": "This property contains the details of the account\\-level metrics for Amazon S3 Storage Lens configuration\\. \n*Required*: Yes \n*Type*: [AccountLevel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-accountlevel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountLevel" + }, + "AwsOrg": { + "$ref": "#/definitions/AWS::S3::StorageLens.AwsOrg", + "markdownDescription": "This property contains the details of the AWS Organization for the S3 Storage Lens configuration\\. \n*Required*: No \n*Type*: [AwsOrg](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-awsorg.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsOrg" + }, + "DataExport": { + "$ref": "#/definitions/AWS::S3::StorageLens.DataExport", + "markdownDescription": "This property contains the details of this S3 Storage Lens configuration's metrics export\\. \n*Required*: No \n*Type*: [DataExport](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-dataexport.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataExport" + }, + "Exclude": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions", + "markdownDescription": "This property contains the details of the bucket and or Regions excluded for Amazon S3 Storage Lens configuration\\. \n*Required*: No \n*Type*: [BucketsAndRegions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-bucketsandregions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Exclude" + }, + "Id": { + "markdownDescription": "This property contains the details of the ID of the S3 Storage Lens configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Id", + "type": "string" + }, + "Include": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions", + "markdownDescription": "This property contains the details of the bucket and or Regions included for Amazon S3 Storage Lens configuration\\. \n*Required*: No \n*Type*: [BucketsAndRegions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-storagelens-bucketsandregions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Include" + }, + "IsEnabled": { + "markdownDescription": "This property contains the details of whether the Amazon S3 Storage Lens configuration is enabled\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsEnabled", + "type": "boolean" + }, + "StorageLensArn": { + "markdownDescription": "This property contains the details of the ARN of the S3 Storage Lens configuration\\. This property is read\\-only\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of this access point\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "ObjectLambdaConfiguration": { + "$ref": "#/definitions/AWS::S3ObjectLambda::AccessPoint.ObjectLambdaConfiguration", + "markdownDescription": "A configuration used when creating an Object Lambda Access Point\\. \n*Required*: Yes \n*Type*: [ObjectLambdaConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3objectlambda-accesspoint-objectlambdaconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "A container for allowed features\\. Valid inputs are `GetObject-Range` and `GetObject-PartNumber`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedFeatures", + "type": "array" + }, + "CloudWatchMetricsEnabled": { + "markdownDescription": "A container for whether the CloudWatch metrics configuration is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchMetricsEnabled", + "type": "boolean" + }, + "SupportingAccessPoint": { + "markdownDescription": "Standard access point associated with the Object Lambda Access Point\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SupportingAccessPoint", + "type": "string" + }, + "TransformationConfigurations": { + "items": { + "$ref": "#/definitions/AWS::S3ObjectLambda::AccessPoint.TransformationConfiguration" + }, + "markdownDescription": "A container for transformation configurations for an Object Lambda Access Point\\. \n*Required*: Yes \n*Type*: List of [TransformationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3objectlambda-accesspoint-transformationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TransformationConfigurations", + "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" + }, + "markdownDescription": "A container for the action of an Object Lambda Access Point configuration\\. Valid input is `GetObject`\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", + "type": "array" + }, + "ContentTransformation": { + "$ref": "#/definitions/AWS::S3ObjectLambda::AccessPoint.ContentTransformation", + "markdownDescription": "A container for the content transformation of an Object Lambda Access Point configuration\\. Can include the FunctionArn and FunctionPayload\\. For more information, see [AwsLambdaTransformation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_AwsLambdaTransformation.html) in the *Amazon S3 API Reference*\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "An access point with an attached AWS Lambda function used to access transformed data from an Amazon S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ObjectLambdaAccessPoint", + "type": "string" + }, + "PolicyDocument": { + "markdownDescription": "Object Lambda Access Point resource policy document\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the S3 on Outposts bucket that is associated with this access point\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Bucket", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of this access point\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Policy": { + "markdownDescription": "The access point policy associated with this access point\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policy", + "type": "object" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::S3Outposts::AccessPoint.VpcConfiguration", + "markdownDescription": "The virtual private cloud \\(VPC\\) configuration for this access point, if one exists\\. \n*Required*: Yes \n*Type*: [VpcConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-accesspoint-vpcconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ID of the VPC configuration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A name for the S3 on Outposts bucket\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the bucket name\\. The bucket name must contain only lowercase letters, numbers, periods \\(\\.\\), and dashes \\(\\-\\) and must follow [ Amazon S3 bucket restrictions and limitations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html)\\. For more information, see [Bucket naming rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html#bucketnamingrules)\\. \nIf you specify a name, you can't perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you need to replace the resource, specify a new name\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketName", + "type": "string" + }, + "LifecycleConfiguration": { + "$ref": "#/definitions/AWS::S3Outposts::Bucket.LifecycleConfiguration", + "markdownDescription": "Creates a new lifecycle configuration for the S3 on Outposts bucket or replaces an existing lifecycle configuration\\. Outposts buckets only support lifecycle configurations that delete/expire objects after a certain period of time and abort incomplete multipart uploads\\. \n*Required*: No \n*Type*: [LifecycleConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-bucket-lifecycleconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LifecycleConfiguration" + }, + "OutpostId": { + "markdownDescription": "The ID of the Outpost of the specified bucket\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OutpostId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Sets the tags for an S3 on Outposts bucket\\. For more information, see [Using Amazon S3 on Outposts](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html)\\. \nUse tags to organize your AWS bill to reflect your own cost structure\\. To do this, sign up to get your AWS account bill with tag key values included\\. Then, to see the cost of combined resources, organize your billing information according to resources with the same tag key values\\. For example, you can tag several resources with a specific application name, and then organize your billing information to see the total cost of that application across several services\\. For more information, see [Cost allocation and tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)\\. \nWithin a bucket, if you add a tag that has the same key as an existing tag, the new value overwrites the old value\\. For more information, see [ Using cost allocation and bucket tags](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html)\\.\nTo use this resource, you must have permissions to perform the `s3-outposts:PutBucketTagging`\\. The S3 on Outposts bucket owner has this permission by default and can grant this permission to others\\. For more information about permissions, see [Permissions Related to Bucket Subresource Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) and [Managing access permissions to your Amazon S3 resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "Specifies the number of days after initiation that Amazon S3 on Outposts aborts an incomplete multipart upload\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The container for the lifecycle configuration rules for the objects stored in the S3 on Outposts bucket\\. \n*Required*: Yes \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-bucket-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::S3Outposts::Bucket.Rule": { + "additionalProperties": false, + "properties": { + "AbortIncompleteMultipartUpload": { + "$ref": "#/definitions/AWS::S3Outposts::Bucket.AbortIncompleteMultipartUpload", + "markdownDescription": "The container for the abort incomplete multipart upload rule\\. \n*Required*: No \n*Type*: [AbortIncompleteMultipartUpload](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3outposts-bucket-abortincompletemultipartupload.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AbortIncompleteMultipartUpload" + }, + "ExpirationDate": { + "markdownDescription": "Specifies the expiration for the lifecycle of the object by specifying an expiry date\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExpirationDate", + "type": "string" + }, + "ExpirationInDays": { + "markdownDescription": "Specifies the expiration for the lifecycle of the object in the form of days that the object has been in the S3 on Outposts bucket\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExpirationInDays", + "type": "number" + }, + "Filter": { + "$ref": "#/definitions/AWS::S3Outposts::Bucket.Filter", + "markdownDescription": "The container for the filter of the lifecycle rule\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Filter" + }, + "Id": { + "markdownDescription": "The unique identifier for the lifecycle rule\\. The value can't be longer than 255 characters\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Id", + "type": "string" + }, + "Status": { + "markdownDescription": "If `Enabled`, the rule is currently being applied\\. If `Disabled`, the rule is not currently being applied\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", + "type": "string" + } + }, + "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": { + "markdownDescription": "The name of the Amazon S3 Outposts bucket to which the policy applies\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Bucket", + "type": "string" + }, + "PolicyDocument": { + "markdownDescription": "A policy document containing permissions to add to the specified bucket\\. In IAM, you must provide policy documents in JSON format\\. However, in CloudFormation, you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM\\. For more information, see the AWS::IAM::Policy [ PolicyDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-policydocument) resource description in this guide and [ Access Policy Language Overview](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-policy-language-overview.html)\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The container for the type of connectivity used to access the Amazon S3 on Outposts endpoint\\. To use the Amazon VPC, choose `Private`\\. To use the endpoint with an on\\-premises network, choose `CustomerOwnedIp`\\. If you choose `CustomerOwnedIp`, you must also provide the customer\\-owned IP address pool \\(CoIP pool\\)\\. \n`Private` is the default access type value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `CustomerOwnedIp | Private` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccessType", + "type": "string" + }, + "CustomerOwnedIpv4Pool": { + "markdownDescription": "The ID of the customer\\-owned IPv4 address pool \\(CoIP pool\\) for the endpoint\\. IP addresses are allocated from this pool for the endpoint\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^ipv4pool-coip-([0-9a-f]{17})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomerOwnedIpv4Pool", + "type": "string" + }, + "OutpostId": { + "markdownDescription": "The ID of the Outpost\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OutpostId", + "type": "string" + }, + "SecurityGroupId": { + "markdownDescription": "The ID of the security group to use with the endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroupId", + "type": "string" + }, + "SubnetId": { + "markdownDescription": "The ID of the subnet\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ID for the network interface\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Information about the SimpleDB domain\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the configuration set\\. The name must meet the following requirements: \n+ Contain only letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), underscores \\(\\_\\), or dashes \\(\\-\\)\\.\n+ Contain 64 characters or fewer\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the configuration set that contains the event destination\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConfigurationSetName", + "type": "string" + }, + "EventDestination": { + "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination.EventDestination", + "markdownDescription": "The event destination object\\. \n*Required*: Yes \n*Type*: [EventDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-eventdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "A list of dimensions upon which to categorize your emails when you publish email sending events to Amazon CloudWatch\\. \n*Required*: No \n*Type*: List of [DimensionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-dimensionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DimensionConfigurations", + "type": "array" + } + }, + "type": "object" + }, + "AWS::SES::ConfigurationSetEventDestination.DimensionConfiguration": { + "additionalProperties": false, + "properties": { + "DefaultDimensionValue": { + "markdownDescription": "The default value of the dimension that is published to Amazon CloudWatch if you do not provide the value of the dimension when you send an email\\. The default value must meet the following requirements: \n+ Contain only ASCII letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), underscores \\(\\_\\), dashes \\(\\-\\), at signs \\(@\\), or periods \\(\\.\\)\\.\n+ Contain 256 characters or fewer\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultDimensionValue", + "type": "string" + }, + "DimensionName": { + "markdownDescription": "The name of an Amazon CloudWatch dimension associated with an email sending metric\\. The name must meet the following requirements: \n+ Contain only ASCII letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), underscores \\(\\_\\), or dashes \\(\\-\\)\\.\n+ Contain 256 characters or fewer\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DimensionName", + "type": "string" + }, + "DimensionValueSource": { + "markdownDescription": "The place where Amazon SES finds the value of a dimension to publish to Amazon CloudWatch\\. To use the message tags that you specify using an `X-SES-MESSAGE-TAGS` header or a parameter to the `SendEmail`/`SendRawEmail` API, specify `messageTag`\\. To use your own email headers, specify `emailHeader`\\. To put a custom tag on any link included in your email, specify `linkTag`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `emailHeader | linkTag | messageTag` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DimensionValueSource", + "type": "string" + } + }, + "required": [ + "DefaultDimensionValue", + "DimensionName", + "DimensionValueSource" + ], + "type": "object" + }, + "AWS::SES::ConfigurationSetEventDestination.EventDestination": { + "additionalProperties": false, + "properties": { + "CloudWatchDestination": { + "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination.CloudWatchDestination", + "markdownDescription": "An object that contains the names, default values, and sources of the dimensions associated with an Amazon CloudWatch event destination\\. \n*Required*: No \n*Type*: [CloudWatchDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-cloudwatchdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchDestination" + }, + "Enabled": { + "markdownDescription": "Sets whether Amazon SES publishes events to this destination when you send an email with the associated configuration set\\. Set to `true` to enable publishing to this destination; set to `false` to prevent publishing to this destination\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "KinesisFirehoseDestination": { + "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination.KinesisFirehoseDestination", + "markdownDescription": "An object that contains the delivery stream ARN and the IAM role ARN associated with an Amazon Kinesis Firehose event destination\\. \n*Required*: No \n*Type*: [KinesisFirehoseDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationseteventdestination-kinesisfirehosedestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KinesisFirehoseDestination" + }, + "MatchingEventTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "The type of email sending events to publish to the event destination\\. \n+ `send` \\- The call was successful and Amazon SES is attempting to deliver the email\\.\n+ `reject` \\- Amazon SES determined that the email contained a virus and rejected it\\.\n+ `bounce` \\- The recipient's mail server permanently rejected the email\\. This corresponds to a hard bounce\\.\n+ `complaint` \\- The recipient marked the email as spam\\.\n+ `delivery` \\- Amazon SES successfully delivered the email to the recipient's mail server\\.\n+ `open` \\- The recipient received the email and opened it in their email client\\.\n+ `click` \\- The recipient clicked one or more links in the email\\.\n+ `renderingFailure` \\- Amazon SES did not send the email because of a template rendering issue\\.\n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MatchingEventTypes", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the event destination\\. The name must meet the following requirements: \n+ Contain only ASCII letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), underscores \\(\\_\\), or dashes \\(\\-\\)\\.\n+ Contain 64 characters or fewer\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "SnsDestination": { + "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination.SnsDestination" + } + }, + "required": [ + "MatchingEventTypes" + ], + "type": "object" + }, + "AWS::SES::ConfigurationSetEventDestination.KinesisFirehoseDestination": { + "additionalProperties": false, + "properties": { + "DeliveryStreamARN": { + "markdownDescription": "The ARN of the Amazon Kinesis Firehose stream that email sending events should be published to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryStreamARN", + "type": "string" + }, + "IAMRoleARN": { + "markdownDescription": "The ARN of the IAM role under which Amazon SES publishes email sending events to the Amazon Kinesis Firehose stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the contact list\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContactListName", + "type": "string" + }, + "Description": { + "markdownDescription": "A description of what the contact list is about\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags associated with a contact list\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "Topics": { + "items": { + "$ref": "#/definitions/AWS::SES::ContactList.Topic" + }, + "markdownDescription": "An interest group, theme, or label within a list\\. A contact list can have multiple topics\\. \n*Required*: No \n*Type*: List of [Topic](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-contactlist-topic.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Topics", + "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": { + "markdownDescription": "The default subscription status to be applied to a contact if the contact has not noted their preference for subscribing to a topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultSubscriptionStatus", + "type": "string" + }, + "Description": { + "markdownDescription": "A description of what the topic is about, which the contact will see\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DisplayName": { + "markdownDescription": "The name of the topic the contact will see\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", + "type": "string" + }, + "TopicName": { + "markdownDescription": "The name of the topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "A data structure that describes the IP address filter to create, which consists of a name, an IP address range, and whether to allow or block mail from it\\. \n*Required*: Yes \n*Type*: [Filter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptfilter-filter.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "A structure that provides the IP addresses to block or allow, and whether to block or allow incoming mail from them\\. \n*Required*: Yes \n*Type*: [IpFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptfilter-ipfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IpFilter" + }, + "Name": { + "markdownDescription": "The name of the IP address filter\\. The name must meet the following requirements: \n+ Contain only ASCII letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), underscores \\(\\_\\), or dashes \\(\\-\\)\\.\n+ Start and end with a letter or number\\.\n+ Contain 64 characters or fewer\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "IpFilter" + ], + "type": "object" + }, + "AWS::SES::ReceiptFilter.IpFilter": { + "additionalProperties": false, + "properties": { + "Cidr": { + "markdownDescription": "A single IP address or a range of IP addresses to block or allow, specified in Classless Inter\\-Domain Routing \\(CIDR\\) notation\\. An example of a single email address is 10\\.0\\.0\\.1\\. An example of a range of IP addresses is 10\\.0\\.0\\.1/24\\. For more information about CIDR notation, see [RFC 2317](https://tools.ietf.org/html/rfc2317)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cidr", + "type": "string" + }, + "Policy": { + "markdownDescription": "Indicates whether to block or allow incoming mail from the specified IP addresses\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Allow | Block` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of an existing rule after which the new rule is placed\\. If this parameter is null, the new rule is inserted at the beginning of the rule list\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "After", + "type": "string" + }, + "Rule": { + "$ref": "#/definitions/AWS::SES::ReceiptRule.Rule", + "markdownDescription": "A data structure that contains the specified rule's name, actions, recipients, domains, enabled status, scan status, and TLS policy\\. \n*Required*: Yes \n*Type*: [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rule" + }, + "RuleSetName": { + "markdownDescription": "The name of the rule set where the receipt rule is added\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "Adds a header to the received email\\. \n*Required*: No \n*Type*: [AddHeaderAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-addheaderaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AddHeaderAction" + }, + "BounceAction": { + "$ref": "#/definitions/AWS::SES::ReceiptRule.BounceAction", + "markdownDescription": "Rejects the received email by returning a bounce response to the sender and, optionally, publishes a notification to Amazon Simple Notification Service \\(Amazon SNS\\)\\. \n*Required*: No \n*Type*: [BounceAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-bounceaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BounceAction" + }, + "LambdaAction": { + "$ref": "#/definitions/AWS::SES::ReceiptRule.LambdaAction", + "markdownDescription": "Calls an AWS Lambda function, and optionally, publishes a notification to Amazon SNS\\. \n*Required*: No \n*Type*: [LambdaAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-lambdaaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LambdaAction" + }, + "S3Action": { + "$ref": "#/definitions/AWS::SES::ReceiptRule.S3Action", + "markdownDescription": "Saves the received message to an Amazon Simple Storage Service \\(Amazon S3\\) bucket and, optionally, publishes a notification to Amazon SNS\\. \n*Required*: No \n*Type*: [S3Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-s3action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Action" + }, + "SNSAction": { + "$ref": "#/definitions/AWS::SES::ReceiptRule.SNSAction", + "markdownDescription": "Publishes the email content within a notification to Amazon SNS\\. \n*Required*: No \n*Type*: [SNSAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-snsaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SNSAction" + }, + "StopAction": { + "$ref": "#/definitions/AWS::SES::ReceiptRule.StopAction", + "markdownDescription": "Terminates the evaluation of the receipt rule set and optionally publishes a notification to Amazon SNS\\. \n*Required*: No \n*Type*: [StopAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-stopaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StopAction" + }, + "WorkmailAction": { + "$ref": "#/definitions/AWS::SES::ReceiptRule.WorkmailAction", + "markdownDescription": "Calls Amazon WorkMail and, optionally, publishes a notification to Amazon Amazon SNS\\. \n*Required*: No \n*Type*: [WorkmailAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-workmailaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WorkmailAction" + } + }, + "type": "object" + }, + "AWS::SES::ReceiptRule.AddHeaderAction": { + "additionalProperties": false, + "properties": { + "HeaderName": { + "markdownDescription": "The name of the header to add to the incoming message\\. The name must contain at least one character, and can contain up to 50 characters\\. It consists of alphanumeric \\(a\u2013z, A\u2013Z, 0\u20139\\) characters and dashes\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderName", + "type": "string" + }, + "HeaderValue": { + "markdownDescription": "The content to include in the header\\. This value can contain up to 2048 characters\\. It can't contain newline \\(`\\n`\\) or carriage return \\(`\\r`\\) characters\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderValue", + "type": "string" + } + }, + "required": [ + "HeaderName", + "HeaderValue" + ], + "type": "object" + }, + "AWS::SES::ReceiptRule.BounceAction": { + "additionalProperties": false, + "properties": { + "Message": { + "markdownDescription": "Human\\-readable text to include in the bounce message\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Message", + "type": "string" + }, + "Sender": { + "markdownDescription": "The email address of the sender of the bounced email\\. This is the address from which the bounce message is sent\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sender", + "type": "string" + }, + "SmtpReplyCode": { + "markdownDescription": "The SMTP reply code, as defined by [RFC 5321](https://tools.ietf.org/html/rfc5321)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SmtpReplyCode", + "type": "string" + }, + "StatusCode": { + "markdownDescription": "The SMTP enhanced status code, as defined by [RFC 3463](https://tools.ietf.org/html/rfc3463)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusCode", + "type": "string" + }, + "TopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to notify when the bounce action is taken\\. You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) operation in Amazon SNS\\. \nFor more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TopicArn", + "type": "string" + } + }, + "required": [ + "Message", + "Sender", + "SmtpReplyCode" + ], + "type": "object" + }, + "AWS::SES::ReceiptRule.LambdaAction": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Lambda function\\. An example of an AWS Lambda function ARN is `arn:aws:lambda:us-west-2:account-id:function:MyFunction`\\. For more information about AWS Lambda, see the [AWS Lambda Developer Guide](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FunctionArn", + "type": "string" + }, + "InvocationType": { + "markdownDescription": "The invocation type of the AWS Lambda function\\. An invocation type of `RequestResponse` means that the execution of the function immediately results in a response, and a value of `Event` means that the function is invoked asynchronously\\. The default value is `Event`\\. For information about AWS Lambda invocation types, see the [AWS Lambda Developer Guide](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html)\\. \nThere is a 30\\-second timeout on `RequestResponse` invocations\\. You should use `Event` invocation in most cases\\. Use `RequestResponse` only to make a mail flow decision, such as whether to stop the receipt rule or the receipt rule set\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `Event | RequestResponse` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InvocationType", + "type": "string" + }, + "TopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to notify when the Lambda action is executed\\. You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) operation in Amazon SNS\\. \nFor more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TopicArn", + "type": "string" + } + }, + "required": [ + "FunctionArn" + ], + "type": "object" + }, + "AWS::SES::ReceiptRule.Rule": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::SES::ReceiptRule.Action" + }, + "markdownDescription": "An ordered list of actions to perform on messages that match at least one of the recipient email addresses or domains specified in the receipt rule\\. \n*Required*: No \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", + "type": "array" + }, + "Enabled": { + "markdownDescription": "If `true`, the receipt rule is active\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "type": "boolean" + }, + "Name": { + "markdownDescription": "The name of the receipt rule\\. The name must meet the following requirements: \n+ Contain only ASCII letters \\(a\\-z, A\\-Z\\), numbers \\(0\\-9\\), underscores \\(\\_\\), or dashes \\(\\-\\)\\.\n+ Start and end with a letter or number\\.\n+ Contain 64 characters or fewer\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Recipients": { + "items": { + "type": "string" + }, + "markdownDescription": "The recipient domains and email addresses that the receipt rule applies to\\. If this field is not specified, this rule matches all recipients on all verified domains\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Recipients", + "type": "array" + }, + "ScanEnabled": { + "markdownDescription": "If `true`, then messages that this receipt rule applies to are scanned for spam and viruses\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScanEnabled", + "type": "boolean" + }, + "TlsPolicy": { + "markdownDescription": "Specifies whether Amazon SES should require that incoming email is delivered over a connection encrypted with Transport Layer Security \\(TLS\\)\\. If this parameter is set to `Require`, Amazon SES bounces emails that are not received over TLS\\. The default is `Optional`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Optional | Require` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TlsPolicy", + "type": "string" + } + }, + "type": "object" + }, + "AWS::SES::ReceiptRule.S3Action": { + "additionalProperties": false, + "properties": { + "BucketName": { + "markdownDescription": "The name of the Amazon S3 bucket for incoming email\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", + "type": "string" + }, + "KmsKeyArn": { + "markdownDescription": "The customer master key that Amazon SES should use to encrypt your emails before saving them to the Amazon S3 bucket\\. You can use the default master key or a custom master key that you created in AWS KMS as follows: \n+ To use the default master key, provide an ARN in the form of `arn:aws:kms:REGION:ACCOUNT-ID-WITHOUT-HYPHENS:alias/aws/ses`\\. For example, if your AWS account ID is 123456789012 and you want to use the default master key in the US West \\(Oregon\\) Region, the ARN of the default master key would be `arn:aws:kms:us-west-2:123456789012:alias/aws/ses`\\. If you use the default master key, you don't need to perform any extra steps to give Amazon SES permission to use the key\\.\n+ To use a custom master key that you created in AWS KMS, provide the ARN of the master key and ensure that you add a statement to your key's policy to give Amazon SES permission to use it\\. For more information about giving permissions, see the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-permissions.html)\\.\nFor more information about key policies, see the [AWS KMS Developer Guide](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)\\. If you do not specify a master key, Amazon SES does not encrypt your emails\\. \nYour mail is encrypted by Amazon SES using the Amazon S3 encryption client before the mail is submitted to Amazon S3 for storage\\. It is not encrypted using Amazon S3 server\\-side encryption\\. This means that you must use the Amazon S3 encryption client to decrypt the email after retrieving it from Amazon S3, as the service has no access to use your AWS KMS keys for decryption\\. This encryption client is currently available with the [AWS SDK for Java](http://aws.amazon.com/sdk-for-java/) and [AWS SDK for Ruby](http://aws.amazon.com/sdk-for-ruby/) only\\. For more information about client\\-side encryption using AWS KMS master keys, see the [Amazon S3 Developer Guide](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyArn", + "type": "string" + }, + "ObjectKeyPrefix": { + "markdownDescription": "The key prefix of the Amazon S3 bucket\\. The key prefix is similar to a directory name that enables you to store similar data under the same directory in a bucket\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ObjectKeyPrefix", + "type": "string" + }, + "TopicArn": { + "markdownDescription": "The ARN of the Amazon SNS topic to notify when the message is saved to the Amazon S3 bucket\\. You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) operation in Amazon SNS\\. \nFor more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TopicArn", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "AWS::SES::ReceiptRule.SNSAction": { + "additionalProperties": false, + "properties": { + "Encoding": { + "markdownDescription": "The encoding to use for the email within the Amazon SNS notification\\. UTF\\-8 is easier to use, but may not preserve all special characters when a message was encoded with a different encoding format\\. Base64 preserves all special characters\\. The default value is UTF\\-8\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Base64 | UTF-8` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Encoding", + "type": "string" + }, + "TopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to notify\\. You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) operation in Amazon SNS\\. \nFor more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TopicArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::SES::ReceiptRule.StopAction": { + "additionalProperties": false, + "properties": { + "Scope": { + "markdownDescription": "The scope of the StopAction\\. The only acceptable value is `RuleSet`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `RuleSet` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scope", + "type": "string" + }, + "TopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to notify when the stop action is taken\\. You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) Amazon SNS operation\\. \nFor more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TopicArn", + "type": "string" + } + }, + "required": [ + "Scope" + ], + "type": "object" + }, + "AWS::SES::ReceiptRule.WorkmailAction": { + "additionalProperties": false, + "properties": { + "OrganizationArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon WorkMail organization\\. Amazon WorkMail ARNs use the following format: \n `arn:aws:workmail:::organization/` \nYou can find the ID of your organization by using the [ListOrganizations](https://docs.aws.amazon.com/workmail/latest/APIReference/API_ListOrganizations.html) operation in Amazon WorkMail\\. Amazon WorkMail organization IDs begin with \"`m-`\", followed by a string of alphanumeric characters\\. \nFor information about Amazon WorkMail organizations, see the [Amazon WorkMail Administrator Guide](https://docs.aws.amazon.com/workmail/latest/adminguide/organizations_overview.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrganizationArn", + "type": "string" + }, + "TopicArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SNS topic to notify when the WorkMail action is called\\. You can find the ARN of a topic by using the [ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html) operation in Amazon SNS\\. \nFor more information about Amazon SNS topics, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the receipt rule set to reorder\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "The content of the email, composed of a subject line and either an HTML part or a text\\-only part\\. \n*Required*: No \n*Type*: [Template](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-template-template.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The HTML body of the email\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HtmlPart", + "type": "string" + }, + "SubjectPart": { + "markdownDescription": "The subject line of the email\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubjectPart", + "type": "string" + }, + "TemplateName": { + "markdownDescription": "The name of the template\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TemplateName", + "type": "string" + }, + "TextPart": { + "markdownDescription": "The email body that is visible to recipients whose email clients do not display HTML content\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The delivery policy JSON assigned to the subscription\\. Enables the subscriber to define the message delivery retry strategy in the case of an HTTP/S endpoint subscribed to the topic\\. For more information, see ` [GetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetSubscriptionAttributes.html) ` in the *Amazon SNS API Reference* and [Message delivery retries](https://docs.aws.amazon.com/sns/latest/dg/sns-message-delivery-retries.html) in the *Amazon SNS Developer Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryPolicy", + "type": "object" + }, + "Endpoint": { + "markdownDescription": "The subscription's endpoint\\. The endpoint value depends on the protocol that you specify\\. For more information, see the `Endpoint` parameter of the ` [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html) ` action in the *Amazon SNS API Reference*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Endpoint", + "type": "string" + }, + "FilterPolicy": { + "markdownDescription": "The filter policy JSON assigned to the subscription\\. Enables the subscriber to filter out unwanted messages\\. For more information, see ` [GetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetSubscriptionAttributes.html) ` in the *Amazon SNS API Reference* and [Message filtering](https://docs.aws.amazon.com/sns/latest/dg/sns-message-filtering.html) in the *Amazon SNS Developer Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterPolicy", + "type": "object" + }, + "FilterPolicyScope": { + "type": "string" + }, + "Protocol": { + "markdownDescription": "The subscription's protocol\\. For more information, see the `Protocol` parameter of the ` [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html) ` action in the *Amazon SNS API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Protocol", + "type": "string" + }, + "RawMessageDelivery": { + "markdownDescription": "When set to `true`, enables raw message delivery\\. Raw messages don't contain any JSON formatting and can be sent to Amazon SQS and HTTP/S endpoints\\. For more information, see ` [GetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetSubscriptionAttributes.html) ` in the *Amazon SNS API Reference*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RawMessageDelivery", + "type": "boolean" + }, + "RedrivePolicy": { + "markdownDescription": "When specified, sends undeliverable messages to the specified Amazon SQS dead\\-letter queue\\. Messages that can't be delivered due to client errors \\(for example, when the subscribed endpoint is unreachable\\) or server errors \\(for example, when the service that powers the subscribed endpoint becomes unavailable\\) are held in the dead\\-letter queue for further analysis or reprocessing\\. \nFor more information about the redrive policy and dead\\-letter queues, see [Amazon SQS dead\\-letter queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) in the *Amazon SQS Developer Guide*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedrivePolicy", + "type": "object" + }, + "Region": { + "markdownDescription": "For cross\\-region subscriptions, the region in which the topic resides\\. \nIf no region is specified, AWS CloudFormation uses the region of the caller as the default\\. \nIf you perform an update operation that only updates the `Region` property of a `AWS::SNS::Subscription` resource, that operation will fail unless you are either: \n+ Updating the `Region` from `NULL` to the caller region\\.\n+ Updating the `Region` from the caller region to `NULL`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", + "type": "string" + }, + "SubscriptionRoleArn": { + "markdownDescription": "This property applies only to Amazon Kinesis Data Firehose delivery stream subscriptions\\. Specify the ARN of the IAM role that has the following: \n+ Permission to write to the Amazon Kinesis Data Firehose delivery stream\n+ Amazon SNS listed as a trusted entity\nSpecifying a valid ARN for this attribute is required for Kinesis Data Firehose delivery stream subscriptions\\. For more information, see [Fanout to Amazon Kinesis Data Firehose delivery streams](https://docs.aws.amazon.com/sns/latest/dg/sns-firehose-as-subscriber.html) in the *Amazon SNS Developer Guide\\.* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubscriptionRoleArn", + "type": "string" + }, + "TopicArn": { + "markdownDescription": "The ARN of the topic to subscribe to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Enables content\\-based deduplication for FIFO topics\\. \n+ By default, `ContentBasedDeduplication` is set to `false`\\. If you create a FIFO topic and this attribute is `false`, you must specify a value for the `MessageDeduplicationId` parameter for the [Publish](https://docs.aws.amazon.com/sns/latest/api/API_Publish.html) action\\. \n+ When you set `ContentBasedDeduplication` to `true`, Amazon SNS uses a SHA\\-256 hash to generate the `MessageDeduplicationId` using the body of the message \\(but not the attributes of the message\\)\\.", + "title": "ContentBasedDeduplication", + "type": "boolean" + }, + "DataProtectionPolicy": { + "type": "object" + }, + "DisplayName": { + "markdownDescription": "The display name to use for an Amazon SNS topic with SMS subscriptions\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", + "type": "string" + }, + "FifoTopic": { + "markdownDescription": "Set to true to create a FIFO topic\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FifoTopic", + "type": "boolean" + }, + "KmsMasterKeyId": { + "markdownDescription": "The ID of an AWS managed customer master key \\(CMK\\) for Amazon SNS or a custom CMK\\. For more information, see [Key terms](https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html#sse-key-terms)\\. For more examples, see ` [KeyId](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters) ` in the *AWS Key Management Service API Reference*\\. \nThis property applies only to [server\\-side\\-encryption](https://docs.aws.amazon.com/sns/latest/dg/sns-server-side-encryption.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsMasterKeyId", + "type": "string" + }, + "SignatureVersion": { + "type": "string" + }, + "Subscription": { + "items": { + "$ref": "#/definitions/AWS::SNS::Topic.Subscription" + }, + "markdownDescription": "The Amazon SNS subscriptions \\(endpoints\\) for this topic\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-subscription.html) of [Subscription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-subscription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Subscription", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The list of tags to add to a new topic\\. \nTo be able to tag a topic on creation, you must have the `sns:CreateTopic` and `sns:TagResource` permissions\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TopicName": { + "markdownDescription": "The name of the topic you want to create\\. Topic names must include only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 256 characters long\\. FIFO topic names must end with `.fifo`\\. \nIf you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the topic name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you can't perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TopicName", + "type": "string" + }, + "TracingConfig": { + "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": { + "markdownDescription": "The endpoint that receives notifications from the Amazon SNS topic\\. The endpoint value depends on the protocol that you specify\\. For more information, see the `Endpoint` parameter of the ` [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html) ` action in the *Amazon SNS API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Endpoint", + "type": "string" + }, + "Protocol": { + "markdownDescription": "The subscription's protocol\\. For more information, see the `Protocol` parameter of the ` [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html) ` action in the *Amazon SNS API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A policy document that contains permissions to add to the specified SNS topics\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDocument", + "type": "object" + }, + "Topics": { + "items": { + "type": "string" + }, + "markdownDescription": "The Amazon Resource Names \\(ARN\\) of the topics to which you want to add the policy\\. You can use the ` [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) ` function to specify an ` [AWS::SNS::Topic](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html) ` resource\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Topics", + "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": { + "markdownDescription": "For first\\-in\\-first\\-out \\(FIFO\\) queues, specifies whether to enable content\\-based deduplication\\. During the deduplication interval, Amazon SQS treats messages that are sent with identical content as duplicates and delivers only one copy of the message\\. For more information, see the `ContentBasedDeduplication` attribute for the ` [CreateQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html) ` action in the *Amazon SQS API Reference*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentBasedDeduplication", + "type": "boolean" + }, + "DeduplicationScope": { + "markdownDescription": "For high throughput for FIFO queues, specifies whether message deduplication occurs at the message group or queue level\\. Valid values are `messageGroup` and `queue`\\. \nTo enable high throughput for a FIFO queue, set this attribute to `messageGroup` *and* set the `FifoThroughputLimit` attribute to `perMessageGroupId`\\. If you set these attributes to anything other than these values, normal throughput is in effect and deduplication occurs as specified\\. For more information, see [High throughput for FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html) and [Quotas related to messages](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html) in the *Amazon SQS Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeduplicationScope", + "type": "string" + }, + "DelaySeconds": { + "markdownDescription": "The time in seconds for which the delivery of all messages in the queue is delayed\\. You can specify an integer value of `0` to `900` \\(15 minutes\\)\\. The default value is `0`\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DelaySeconds", + "type": "number" + }, + "FifoQueue": { + "markdownDescription": "If set to true, creates a FIFO queue\\. If you don't specify this property, Amazon SQS creates a standard queue\\. For more information, see [FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html) in the *Amazon SQS Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FifoQueue", + "type": "boolean" + }, + "FifoThroughputLimit": { + "markdownDescription": "For high throughput for FIFO queues, specifies whether the FIFO queue throughput quota applies to the entire queue or per message group\\. Valid values are `perQueue` and `perMessageGroupId`\\. \nTo enable high throughput for a FIFO queue, set this attribute to `perMessageGroupId` *and* set the `DeduplicationScope` attribute to `messageGroup`\\. If you set these attributes to anything other than these values, normal throughput is in effect and deduplication occurs as specified\\. For more information, see [High throughput for FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html) and [Quotas related to messages](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html) in the *Amazon SQS Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FifoThroughputLimit", + "type": "string" + }, + "KmsDataKeyReusePeriodSeconds": { + "markdownDescription": "The length of time in seconds for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again\\. The value must be an integer between 60 \\(1 minute\\) and 86,400 \\(24 hours\\)\\. The default is 300 \\(5 minutes\\)\\. \nA shorter time period provides better security, but results in more calls to AWS KMS, which might incur charges after Free Tier\\. For more information, see [Encryption at rest](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work) in the *Amazon SQS Developer Guide*\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsDataKeyReusePeriodSeconds", + "type": "number" + }, + "KmsMasterKeyId": { + "markdownDescription": "The ID of an AWS managed customer master key \\(CMK\\) for Amazon SQS or a custom CMK\\. To use the AWS managed CMK for Amazon SQS, specify the \\(default\\) alias `alias/aws/sqs`\\. For more information, see the following: \n+ [Encryption at rest](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html) in the *Amazon SQS Developer Guide* \n+ [CreateQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html) in the *Amazon SQS API Reference* \n+ The Customer Master Keys section of the [AWS Key Management Service Best Practices](https://d0.awsstatic.com/whitepapers/aws-kms-best-practices.pdf) whitepaper \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsMasterKeyId", + "type": "string" + }, + "MaximumMessageSize": { + "markdownDescription": "The limit of how many bytes that a message can contain before Amazon SQS rejects it\\. You can specify an integer value from `1,024` bytes \\(1 KiB\\) to `262,144` bytes \\(256 KiB\\)\\. The default value is `262,144` \\(256 KiB\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumMessageSize", + "type": "number" + }, + "MessageRetentionPeriod": { + "markdownDescription": "The number of seconds that Amazon SQS retains a message\\. You can specify an integer value from `60` seconds \\(1 minute\\) to `1,209,600` seconds \\(14 days\\)\\. The default value is `345,600` seconds \\(4 days\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageRetentionPeriod", + "type": "number" + }, + "QueueName": { + "markdownDescription": "A name for the queue\\. To create a FIFO queue, the name of your FIFO queue must end with the `.fifo` suffix\\. For more information, see [FIFO queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html) in the *Amazon SQS Developer Guide*\\. \nIf you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the queue name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html) in the *AWS CloudFormation User Guide*\\. \nIf you specify a name, you can't perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "QueueName", + "type": "string" + }, + "ReceiveMessageWaitTimeSeconds": { + "markdownDescription": "Specifies the duration, in seconds, that the ReceiveMessage action call waits until a message is in the queue in order to include it in the response, rather than returning an empty response if a message isn't yet available\\. You can specify an integer from 1 to 20\\. Short polling is used as the default or when you specify 0 for this property\\. For more information, see [Consuming messages using long polling](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-short-and-long-polling.html#sqs-long-polling) in the *Amazon SQS Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReceiveMessageWaitTimeSeconds", + "type": "number" + }, + "RedriveAllowPolicy": { + "markdownDescription": "The string that includes the parameters for the permissions for the dead\\-letter queue redrive permission and which source queues can specify dead\\-letter queues as a JSON object\\. The parameters are as follows: \n+ `redrivePermission`: The permission type that defines which source queues can specify the current queue as the dead\\-letter queue\\. Valid values are:\n + `allowAll`: \\(Default\\) Any source queues in this AWS account in the same Region can specify this queue as the dead\\-letter queue\\.\n + `denyAll`: No source queues can specify this queue as the dead\\-letter queue\\.\n + `byQueue`: Only queues specified by the `sourceQueueArns` parameter can specify this queue as the dead\\-letter queue\\.\n+ `sourceQueueArns`: The Amazon Resource Names \\(ARN\\)s of the source queues that can specify this queue as the dead\\-letter queue and redrive messages\\. You can specify this parameter only when the `redrivePermission` parameter is set to `byQueue`\\. You can specify up to 10 source queue ARNs\\. To allow more than 10 source queues to specify dead\\-letter queues, set the `redrivePermission` parameter to `allowAll`\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedriveAllowPolicy", + "type": "object" + }, + "RedrivePolicy": { + "markdownDescription": "The string that includes the parameters for the dead\\-letter queue functionality of the source queue as a JSON object\\. The parameters are as follows: \n+ `deadLetterTargetArn`: The Amazon Resource Name \\(ARN\\) of the dead\\-letter queue to which Amazon SQS moves messages after the value of `maxReceiveCount` is exceeded\\.\n+ `maxReceiveCount`: The number of times a message is delivered to the source queue before being moved to the dead\\-letter queue\\. When the `ReceiveCount` for a message exceeds the `maxReceiveCount` for a queue, Amazon SQS moves the message to the dead\\-letter\\-queue\\.\nThe dead\\-letter queue of a FIFO queue must also be a FIFO queue\\. Similarly, the dead\\-letter queue of a standard queue must also be a standard queue\\.\n *JSON* \n `{ \"deadLetterTargetArn\" : String, \"maxReceiveCount\" : Integer }` \n *YAML* \n `deadLetterTargetArn : String ` \n `maxReceiveCount : Integer ` \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedrivePolicy", + "type": "object" + }, + "SqsManagedSseEnabled": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags that you attach to this queue\\. For more information, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VisibilityTimeout": { + "markdownDescription": "The length of time during which a message will be unavailable after a message is delivered from the queue\\. This blocks other components from receiving the same message and gives the initial component time to process and delete the message from the queue\\. \nValues must be from 0 to 43,200 seconds \\(12 hours\\)\\. If you don't specify a value, AWS CloudFormation uses the default value of 30 seconds\\. \nFor more information about Amazon SQS queue visibility timeouts, see [Visibility timeout](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) in the *Amazon SQS Developer Guide*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A policy document that contains the permissions for the specified Amazon SQS queues\\. For more information about Amazon SQS policies, see [Using custom policies with the Amazon SQS access policy language](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-creating-custom-policies.html) in the *Amazon SQS Developer Guide*\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PolicyDocument", + "type": "object" + }, + "Queues": { + "items": { + "type": "string" + }, + "markdownDescription": "The URLs of the queues to which you want to add the policy\\. You can use the [`Ref`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) function to specify an `[AWS::SQS::Queue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html)` resource\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Queues", + "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": { + "markdownDescription": "By default, when you create a new association, the system runs it immediately after it is created and then according to the schedule you specified\\. Specify this option if you don't want an association to run immediately after you create it\\. This parameter is not supported for rate expressions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplyOnlyAtCronInterval", + "type": "boolean" + }, + "AssociationName": { + "markdownDescription": "Specify a descriptive name for the association\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociationName", + "type": "string" + }, + "AutomationTargetParameterName": { + "markdownDescription": "Choose the parameter that will define how your automation will branch out\\. This target is required for associations that use an Automation runbook and target resources by using rate controls\\. Automation is a capability of AWS Systems Manager\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutomationTargetParameterName", + "type": "string" + }, + "CalendarNames": { + "items": { + "type": "string" + }, + "markdownDescription": "The names or Amazon Resource Names \\(ARNs\\) of the Change Calendar type documents your associations are gated under\\. The associations only run when that Change Calendar is open\\. For more information, see [AWS Systems Manager Change Calendar](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CalendarNames", + "type": "array" + }, + "ComplianceSeverity": { + "markdownDescription": "The severity level that is assigned to the association\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CRITICAL | HIGH | LOW | MEDIUM | UNSPECIFIED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComplianceSeverity", + "type": "string" + }, + "DocumentVersion": { + "markdownDescription": "The version of the SSM document to associate with the target\\. \nNote the following important information\\. \n+ State Manager doesn't support running associations that use a new version of a document if that document is shared from another account\\. State Manager always runs the `default` version of a document if shared from another account, even though the Systems Manager console shows that a new version was processed\\. If you want to run an association using a new version of a document shared form another account, you must set the document version to `default`\\.\n+ `DocumentVersion` is not valid for documents owned by AWS, such as `AWS-RunPatchBaseline` or `AWS-UpdateSSMAgent`\\. If you specify `DocumentVersion` for an AWS document, the system returns the following error: \"Error occurred during operation 'CreateAssociation'\\.\" \\(RequestToken: , HandlerErrorCode: GeneralServiceException\\)\\.\n*Required*: No \n*Type*: String \n*Pattern*: `([$]LATEST|[$]DEFAULT|^[1-9][0-9]*$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentVersion", + "type": "string" + }, + "InstanceId": { + "markdownDescription": "The ID of the instance that the SSM document is associated with\\. You must specify the `InstanceId` or `Targets` property\\. \n`InstanceId` has been deprecated\\. To specify an instance ID for an association, use the `Targets` parameter\\. If you use the parameter `InstanceId`, you cannot use the parameters `AssociationName`, `DocumentVersion`, `MaxErrors`, `MaxConcurrency`, `OutputLocation`, or `ScheduleExpression`\\. To use these parameters, you must use the `Targets` parameter\\.\n*Required*: Conditional \n*Type*: String \n*Pattern*: `(^i-(\\w{8}|\\w{17})$)|(^mi-\\w{17}$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceId", + "type": "string" + }, + "MaxConcurrency": { + "markdownDescription": "The maximum number of targets allowed to run the association at the same time\\. You can specify a number, for example 10, or a percentage of the target set, for example 10%\\. The default value is 100%, which means all targets run the association at the same time\\. \nIf a new managed node starts and attempts to run an association while Systems Manager is running `MaxConcurrency` associations, the association is allowed to run\\. During the next association interval, the new managed node will process its association within the limit specified for `MaxConcurrency`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `7` \n*Pattern*: `^([1-9][0-9]*|[1-9][0-9]%|[1-9]%|100%)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxConcurrency", + "type": "string" + }, + "MaxErrors": { + "markdownDescription": "The number of errors that are allowed before the system stops sending requests to run the association on additional targets\\. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%\\. If you specify 3, for example, the system stops sending requests when the fourth error is received\\. If you specify 0, then the system stops sending requests after the first error is returned\\. If you run an association on 50 managed nodes and set `MaxError` to 10%, then the system stops sending the request when the sixth error is received\\. \nExecutions that are already running an association when `MaxErrors` is reached are allowed to complete, but some of these executions may fail as well\\. If you need to ensure that there won't be more than max\\-errors failed executions, set `MaxConcurrency` to 1 so that executions proceed one at a time\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `7` \n*Pattern*: `^([1-9][0-9]*|[0]|[1-9][0-9]%|[0-9]%|100%)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxErrors", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the SSM document that contains the configuration information for the instance\\. You can specify `Command` or `Automation` documents\\. The documents can be AWS\\-predefined documents, documents you created, or a document that is shared with you from another account\\. For SSM documents that are shared with you from other AWS accounts, you must specify the complete SSM document ARN, in the following format: \n`arn:partition:ssm:region:account-id:document/document-name` \nFor example: `arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document` \nFor AWS\\-predefined documents and SSM documents you created in your account, you only need to specify the document name\\. For example, AWS\\-ApplyPatchBaseline or My\\-Document\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.:/]{3,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "OutputLocation": { + "$ref": "#/definitions/AWS::SSM::Association.InstanceAssociationOutputLocation", + "markdownDescription": "An Amazon Simple Storage Service \\(Amazon S3\\) bucket where you want to store the output details of the request\\. \n*Required*: No \n*Type*: [InstanceAssociationOutputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-instanceassociationoutputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputLocation" + }, + "Parameters": { + "markdownDescription": "The parameters for the runtime configuration of the document\\. \n*Required*: No \n*Type*: Map of Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "object" + }, + "ScheduleExpression": { + "markdownDescription": "A cron expression that specifies a schedule when the association runs\\. The schedule runs in Coordinated Universal Time \\(UTC\\)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleExpression", + "type": "string" + }, + "ScheduleOffset": { + "type": "number" + }, + "SyncCompliance": { + "markdownDescription": "The mode for generating association compliance\\. You can specify `AUTO` or `MANUAL`\\. In `AUTO` mode, the system uses the status of the association execution to determine the compliance status\\. If the association execution runs successfully, then the association is `COMPLIANT`\\. If the association execution doesn't run successfully, the association is `NON-COMPLIANT`\\. \nIn `MANUAL` mode, you must specify the `AssociationId` as a parameter for the PutComplianceItems API action\\. In this case, compliance data is not managed by State Manager\\. It is managed by your direct call to the PutComplianceItems API action\\. \nBy default, all associations use `AUTO` mode\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AUTO | MANUAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SyncCompliance", + "type": "string" + }, + "Targets": { + "items": { + "$ref": "#/definitions/AWS::SSM::Association.Target" + }, + "markdownDescription": "The targets for the association\\. You must specify the `InstanceId` or `Targets` property\\. You can target all instances in an AWS account by specifying the `InstanceIds` key with a value of `*`\\. To view a JSON and a YAML example that targets all instances, see \"Create an association for all managed instances in an AWS account\" on the Examples page\\. \n*Required*: Conditional \n*Type*: List of [Target](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-target.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Targets", + "type": "array" + }, + "WaitForSuccessTimeoutSeconds": { + "markdownDescription": "The number of seconds the service should wait for the association status to show \"Success\" before proceeding with the stack execution\\. If the association status doesn't show \"Success\" after the specified number of seconds, then stack creation fails\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "`S3OutputLocation` is a property of the [InstanceAssociationOutputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-instanceassociationoutputlocation.html) property that specifies an Amazon S3 bucket where you want to store the results of this request\\. \n*Required*: No \n*Type*: [S3OutputLocation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-association-s3outputlocation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Location" + } + }, + "type": "object" + }, + "AWS::SSM::Association.S3OutputLocation": { + "additionalProperties": false, + "properties": { + "OutputS3BucketName": { + "markdownDescription": "The name of the S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputS3BucketName", + "type": "string" + }, + "OutputS3KeyPrefix": { + "markdownDescription": "The S3 bucket subfolder\\. \n*Required*: No \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputS3KeyPrefix", + "type": "string" + }, + "OutputS3Region": { + "markdownDescription": "The AWS Region of the S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputS3Region", + "type": "string" + } + }, + "type": "object" + }, + "AWS::SSM::Association.Target": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "User\\-defined criteria for sending commands that target managed nodes that meet the criteria\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `163` \n*Pattern*: `^[\\p{L}\\p{Z}\\p{N}_.:/=\\-@]*$|resource-groups:ResourceTypeFilters|resource-groups:Name` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "User\\-defined criteria that maps to `Key`\\. For example, if you specified `tag:ServerRole`, you could specify `value:WebServer` to run a command on instances that include EC2 tags of `ServerRole,WebServer`\\. \nDepending on the type of target, the maximum number of values for a key might be lower than the global maximum of 50\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "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" + }, + "markdownDescription": "A list of key\\-value pairs that describe attachments to a version of a document\\. \n*Required*: No \n*Type*: List of [AttachmentsSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-document-attachmentssource.html) \n*Maximum*: `20` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Attachments", + "type": "array" + }, + "Content": { + "markdownDescription": "The content for the new SSM document in JSON or YAML\\. \nThis parameter also supports `String` data types\\.\n*Required*: Yes \n*Type*: Json \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Content", + "type": "object" + }, + "DocumentFormat": { + "markdownDescription": "Specify the document format for the request\\. JSON is the default format\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `JSON | TEXT | YAML` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DocumentFormat", + "type": "string" + }, + "DocumentType": { + "markdownDescription": "The type of document to create\\. \n*Allowed Values*: `ApplicationConfigurationSchema` \\| `Automation` \\| `Automation.ChangeTemplate` \\| `Command` \\| `DeploymentStrategy` \\| `Package` \\| `Policy` \\| `Session` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DocumentType", + "type": "string" + }, + "Name": { + "markdownDescription": "A name for the SSM document\\. \nYou can't use the following strings as document name prefixes\\. These are reserved by AWS for use as document name prefixes: \n+ `aws-` \n+ `amazon` \n+ `amzn` \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,128}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Requires": { + "items": { + "$ref": "#/definitions/AWS::SSM::Document.DocumentRequires" + }, + "markdownDescription": "A list of SSM documents required by a document\\. This parameter is used exclusively by AWS AppConfig\\. When a user creates an AWS AppConfig configuration in an SSM document, the user must also specify a required document for validation purposes\\. In this case, an `ApplicationConfiguration` document requires an `ApplicationConfigurationSchema` document for validation purposes\\. For more information, see [What is AWS AppConfig?](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) in the * AWS AppConfig User Guide*\\. \n*Required*: No \n*Type*: List of [DocumentRequires](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-document-documentrequires.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Requires", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "AWS CloudFormation resource tags to apply to the document\\. Use tags to help you identify and categorize resources\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TargetType": { + "markdownDescription": "Specify a target type to define the kinds of resources the document can run on\\. For example, to run a document on EC2 instances, specify the following value: `/AWS::EC2::Instance`\\. If you specify a value of '/' the document can run on all types of resources\\. If you don't specify a value, the document can't run on any resources\\. For a list of valid resource types, see [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) in the *AWS CloudFormation User Guide*\\. \n*Required*: No \n*Type*: String \n*Maximum*: `200` \n*Pattern*: `^\\/[\\w\\.\\-\\:\\/]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetType", + "type": "string" + }, + "UpdateMethod": { + "type": "string" + }, + "VersionName": { + "markdownDescription": "An optional field specifying the version of the artifact you are creating with the document\\. For example, \"Release 12, Update 6\"\\. This value is unique across all versions of a document, and can't be changed\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.]{1,128}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The key of a key\\-value pair that identifies the location of an attachment to a document\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AttachmentReference | S3FileUrl | SourceUrl` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Key", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the document attachment file\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,128}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "The value of a key\\-value pair that identifies the location of an attachment to a document\\. The format for **Value** depends on the type of key you specify\\. \n+ For the key *SourceUrl*, the value is an S3 bucket location\\. For example:", + "title": "Values", + "type": "array" + } + }, + "type": "object" + }, + "AWS::SSM::Document.DocumentRequires": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the required SSM document\\. The name can be an Amazon Resource Name \\(ARN\\)\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.:/]{3,128}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Version": { + "markdownDescription": "The document version required by the current document\\. \n*Required*: No \n*Type*: String \n*Pattern*: `([$]LATEST|[$]DEFAULT|^[1-9][0-9]*$)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Enables a maintenance window task to run on managed instances, even if you have not registered those instances as targets\\. If enabled, then you must specify the unregistered instances \\(by instance ID\\) when you register a task with the maintenance window\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowUnassociatedTargets", + "type": "boolean" + }, + "Cutoff": { + "markdownDescription": "The number of hours before the end of the maintenance window that AWS Systems Manager stops scheduling new tasks for execution\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `23` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Cutoff", + "type": "number" + }, + "Description": { + "markdownDescription": "A description of the maintenance window\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Duration": { + "markdownDescription": "The duration of the maintenance window in hours\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `24` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Duration", + "type": "number" + }, + "EndDate": { + "markdownDescription": "The date and time, in ISO\\-8601 Extended format, for when the maintenance window is scheduled to become inactive\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndDate", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the maintenance window\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Schedule": { + "markdownDescription": "The schedule of the maintenance window in the form of a cron or rate expression\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule", + "type": "string" + }, + "ScheduleOffset": { + "markdownDescription": "The number of days to wait to run a maintenance window after the scheduled cron expression date and time\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `6` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleOffset", + "type": "number" + }, + "ScheduleTimezone": { + "markdownDescription": "The time zone that the scheduled maintenance window executions are based on, in Internet Assigned Numbers Authority \\(IANA\\) format\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScheduleTimezone", + "type": "string" + }, + "StartDate": { + "markdownDescription": "The date and time, in ISO\\-8601 Extended format, for when the maintenance window is scheduled to become active\\. StartDate allows you to delay activation of the Maintenance Window until the specified future date\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartDate", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Optional metadata that you assign to a resource in the form of an arbitrary set of tags \\(key\\-value pairs\\)\\. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment\\. For example, you might want to tag a maintenance window to identify the type of tasks it will run, the types of targets, and the environment it will run in\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "A description for the target\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name for the maintenance window target\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "OwnerInformation": { + "markdownDescription": "A user\\-provided value that will be included in any Amazon CloudWatch Events events that are raised while running tasks for these targets in this maintenance window\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OwnerInformation", + "type": "string" + }, + "ResourceType": { + "markdownDescription": "The type of target that is being registered with the maintenance window\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `INSTANCE | RESOURCE_GROUP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceType", + "type": "string" + }, + "Targets": { + "items": { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTarget.Targets" + }, + "markdownDescription": "The targets to register with the maintenance window\\. In other words, the instances to run commands on when the maintenance window runs\\. \nYou must specify targets by using the `WindowTargetIds` parameter\\. \n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtarget-targets.html) of [Targets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtarget-targets.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Targets", + "type": "array" + }, + "WindowId": { + "markdownDescription": "The ID of the maintenance window to register the target with\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `20` \n*Pattern*: `^mw-[0-9a-f]{17}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "User\\-defined criteria for sending commands that target managed nodes that meet the criteria\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `163` \n*Pattern*: `^[\\p{L}\\p{Z}\\p{N}_.:/=\\-@]*$|resource-groups:ResourceTypeFilters|resource-groups:Name` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "User\\-defined criteria that maps to `Key`\\. For example, if you specified `tag:ServerRole`, you could specify `value:WebServer` to run a command on instances that include EC2 tags of `ServerRole,WebServer`\\. \nDepending on the type of target, the maximum number of values for a key might be lower than the global maximum of 50\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "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": { + "markdownDescription": "The specification for whether tasks should continue to run after the cutoff time specified in the maintenance windows is reached\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CANCEL_TASK | CONTINUE_TASK` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CutoffBehavior", + "type": "string" + }, + "Description": { + "markdownDescription": "A description of the task\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "LoggingInfo": { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.LoggingInfo", + "markdownDescription": "Information about an Amazon S3 bucket to write task\\-level logs to\\. \n `LoggingInfo` has been deprecated\\. To specify an Amazon S3 bucket to contain logs, instead use the `OutputS3BucketName` and `OutputS3KeyPrefix` options in the `TaskInvocationParameters` structure\\. For information about how Systems Manager handles these options for the supported maintenance window task types, see [AWS Systems Manager MaintenanceWindowTask TaskInvocationParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-taskinvocationparameters.html)\\.\n*Required*: No \n*Type*: [LoggingInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-logginginfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingInfo" + }, + "MaxConcurrency": { + "markdownDescription": "The maximum number of targets this task can be run for, in parallel\\. \nAlthough this element is listed as \"Required: No\", a value can be omitted only when you are registering or updating a [targetless task](https://docs.aws.amazon.com/systems-manager/latest/userguide/maintenance-windows-targetless-tasks.html) You must provide a value in all other cases\\. \nFor maintenance window tasks without a target specified, you can't supply a value for this option\\. Instead, the system inserts a placeholder value of `1`\\. This value doesn't affect the running of your task\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `7` \n*Pattern*: `^([1-9][0-9]*|[1-9][0-9]%|[1-9]%|100%)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxConcurrency", + "type": "string" + }, + "MaxErrors": { + "markdownDescription": "The maximum number of errors allowed before this task stops being scheduled\\. \nAlthough this element is listed as \"Required: No\", a value can be omitted only when you are registering or updating a [targetless task](https://docs.aws.amazon.com/systems-manager/latest/userguide/maintenance-windows-targetless-tasks.html) You must provide a value in all other cases\\. \nFor maintenance window tasks without a target specified, you can't supply a value for this option\\. Instead, the system inserts a placeholder value of `1`\\. This value doesn't affect the running of your task\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `7` \n*Pattern*: `^([1-9][0-9]*|[0]|[1-9][0-9]%|[0-9]%|100%)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxErrors", + "type": "string" + }, + "Name": { + "markdownDescription": "The task name\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Priority": { + "markdownDescription": "The priority of the task in the maintenance window\\. The lower the number, the higher the priority\\. Tasks that have the same priority are scheduled in parallel\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", + "type": "number" + }, + "ServiceRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Identity and Access Management \\(IAM\\) service role to use to publish Amazon Simple Notification Service \\(Amazon SNS\\) notifications for maintenance window Run Command tasks\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceRoleArn", + "type": "string" + }, + "Targets": { + "items": { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.Target" + }, + "markdownDescription": "The targets, either instances or window target IDs\\. \n+ Specify instances using `Key=InstanceIds,Values=instanceid1,instanceid2 `\\.\n+ Specify window target IDs using `Key=WindowTargetIds,Values=window-target-id-1,window-target-id-2`\\.\n*Required*: No \n*Type*: List of [Target](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-target.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Targets", + "type": "array" + }, + "TaskArn": { + "markdownDescription": "The resource that the task uses during execution\\. \nFor `RUN_COMMAND` and `AUTOMATION` task types, `TaskArn` is the SSM document name or Amazon Resource Name \\(ARN\\)\\. \nFor `LAMBDA` tasks, `TaskArn` is the function name or ARN\\. \nFor `STEP_FUNCTIONS` tasks, `TaskArn` is the state machine ARN\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskArn", + "type": "string" + }, + "TaskInvocationParameters": { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.TaskInvocationParameters", + "markdownDescription": "The parameters to pass to the task when it runs\\. Populate only the fields that match the task type\\. All other fields should be empty\\. \nWhen you update a maintenance window task that has options specified in `TaskInvocationParameters`, you must provide again all the `TaskInvocationParameters` values that you want to retain\\. The values you do not specify again are removed\\. For example, suppose that when you registered a Run Command task, you specified `TaskInvocationParameters` values for `Comment`, `NotificationConfig`, and `OutputS3BucketName`\\. If you update the maintenance window task and specify only a different `OutputS3BucketName` value, the values for `Comment` and `NotificationConfig` are removed\\.\n*Required*: No \n*Type*: [TaskInvocationParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-taskinvocationparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskInvocationParameters" + }, + "TaskParameters": { + "markdownDescription": "The parameters to pass to the task when it runs\\. \n `TaskParameters` has been deprecated\\. To specify parameters to pass to a task when it runs, instead use the `Parameters` option in the `TaskInvocationParameters` structure\\. For information about how Systems Manager handles these options for the supported maintenance window task types, see [MaintenanceWindowTaskInvocationParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_MaintenanceWindowTaskInvocationParameters.html)\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TaskParameters", + "type": "object" + }, + "TaskType": { + "markdownDescription": "The type of task\\. Valid values: `RUN_COMMAND`, `AUTOMATION`, `LAMBDA`, `STEP_FUNCTIONS`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AUTOMATION | LAMBDA | RUN_COMMAND | STEP_FUNCTIONS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TaskType", + "type": "string" + }, + "WindowId": { + "markdownDescription": "The ID of the maintenance window where the task is registered\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `20` \n*Pattern*: `^mw-[0-9a-f]{17}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the CloudWatch Logs log group where you want to send command output\\. If you don't specify a group name, AWS Systems Manager automatically creates a log group for you\\. The log group uses the following naming format: \n `aws/ssm/SystemsManagerDocumentName ` \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogGroupName", + "type": "string" + }, + "CloudWatchOutputEnabled": { + "markdownDescription": "Enables Systems Manager to send command output to CloudWatch Logs\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchOutputEnabled", + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::SSM::MaintenanceWindowTask.LoggingInfo": { + "additionalProperties": false, + "properties": { + "Region": { + "markdownDescription": "The AWS Region where the S3 bucket is located\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Region", + "type": "string" + }, + "S3Bucket": { + "markdownDescription": "The name of an S3 bucket where execution logs are stored \\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Bucket", + "type": "string" + }, + "S3Prefix": { + "markdownDescription": "The Amazon S3 bucket subfolder\\. \n*Required*: No \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Prefix", + "type": "string" + } + }, + "required": [ + "Region", + "S3Bucket" + ], + "type": "object" + }, + "AWS::SSM::MaintenanceWindowTask.MaintenanceWindowAutomationParameters": { + "additionalProperties": false, + "properties": { + "DocumentVersion": { + "markdownDescription": "The version of an Automation runbook to use during task execution\\. \n*Required*: No \n*Type*: String \n*Pattern*: `([$]LATEST|[$]DEFAULT|^[1-9][0-9]*$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentVersion", + "type": "string" + }, + "Parameters": { + "markdownDescription": "The parameters for the AUTOMATION task\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "object" + } + }, + "type": "object" + }, + "AWS::SSM::MaintenanceWindowTask.MaintenanceWindowLambdaParameters": { + "additionalProperties": false, + "properties": { + "ClientContext": { + "markdownDescription": "Client\\-specific information to pass to the AWS Lambda function that you're invoking\\. You can then use the `context` variable to process the client information in your AWS Lambda function\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `8000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientContext", + "type": "string" + }, + "Payload": { + "markdownDescription": "JSON to provide to your AWS Lambda function as input\\. \nAlthough `Type` is listed as \"String\" for this property, the payload content must be formatted as a Base64\\-encoded binary data object\\.\n*Length Constraint:* 4096 \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Payload", + "type": "string" + }, + "Qualifier": { + "markdownDescription": "An AWS Lambda function version or alias name\\. If you specify a function version, the action uses the qualified function Amazon Resource Name \\(ARN\\) to invoke a specific Lambda function\\. If you specify an alias name, the action uses the alias ARN to invoke the Lambda function version that the alias points to\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Qualifier", + "type": "string" + } + }, + "type": "object" + }, + "AWS::SSM::MaintenanceWindowTask.MaintenanceWindowRunCommandParameters": { + "additionalProperties": false, + "properties": { + "CloudWatchOutputConfig": { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.CloudWatchOutputConfig", + "markdownDescription": "Configuration options for sending command output to Amazon CloudWatch Logs\\. \n*Required*: No \n*Type*: [CloudWatchOutputConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-cloudwatchoutputconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchOutputConfig" + }, + "Comment": { + "markdownDescription": "Information about the command or commands to run\\. \n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Comment", + "type": "string" + }, + "DocumentHash": { + "markdownDescription": "The SHA\\-256 or SHA\\-1 hash created by the system when the document was created\\. SHA\\-1 hashes have been deprecated\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentHash", + "type": "string" + }, + "DocumentHashType": { + "markdownDescription": "The SHA\\-256 or SHA\\-1 hash type\\. SHA\\-1 hashes are deprecated\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Sha1 | Sha256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentHashType", + "type": "string" + }, + "DocumentVersion": { + "markdownDescription": "The AWS Systems Manager document \\(SSM document\\) version to use in the request\\. You can specify `$DEFAULT`, `$LATEST`, or a specific version number\\. If you run commands by using the AWS CLI, then you must escape the first two options by using a backslash\\. If you specify a version number, then you don't need to use the backslash\\. For example: \n `--document-version \"\\$DEFAULT\"` \n `--document-version \"\\$LATEST\"` \n `--document-version \"3\"` \n*Required*: No \n*Type*: String \n*Pattern*: `([$]LATEST|[$]DEFAULT|^[1-9][0-9]*$)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentVersion", + "type": "string" + }, + "NotificationConfig": { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.NotificationConfig", + "markdownDescription": "Configurations for sending notifications about command status changes on a per\\-managed node basis\\. \n*Required*: No \n*Type*: [NotificationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-notificationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationConfig" + }, + "OutputS3BucketName": { + "markdownDescription": "The name of the Amazon Simple Storage Service \\(Amazon S3\\) bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputS3BucketName", + "type": "string" + }, + "OutputS3KeyPrefix": { + "markdownDescription": "The S3 bucket subfolder\\. \n*Required*: No \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputS3KeyPrefix", + "type": "string" + }, + "Parameters": { + "markdownDescription": "The parameters for the `RUN_COMMAND` task execution\\. \nThe supported parameters are the same as those for the `SendCommand` API call\\. For more information, see [SendCommand](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendCommand.html) in the *AWS Systems Manager API Reference*\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "object" + }, + "ServiceRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Identity and Access Management \\(IAM\\) service role to use to publish Amazon Simple Notification Service \\(Amazon SNS\\) notifications for maintenance window Run Command tasks\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceRoleArn", + "type": "string" + }, + "TimeoutSeconds": { + "markdownDescription": "If this time is reached and the command hasn't already started running, it doesn't run\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `30` \n*Maximum*: `2592000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutSeconds", + "type": "number" + } + }, + "type": "object" + }, + "AWS::SSM::MaintenanceWindowTask.MaintenanceWindowStepFunctionsParameters": { + "additionalProperties": false, + "properties": { + "Input": { + "markdownDescription": "The inputs for the `STEP_FUNCTIONS` task\\. \n*Required*: No \n*Type*: String \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Input", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the `STEP_FUNCTIONS` task\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `80` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "type": "object" + }, + "AWS::SSM::MaintenanceWindowTask.NotificationConfig": { + "additionalProperties": false, + "properties": { + "NotificationArn": { + "markdownDescription": "An Amazon Resource Name \\(ARN\\) for an Amazon Simple Notification Service \\(Amazon SNS\\) topic\\. Run Command pushes notifications about command status changes to this topic\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationArn", + "type": "string" + }, + "NotificationEvents": { + "items": { + "type": "string" + }, + "markdownDescription": "The different events that you can receive notifications for\\. These events include the following: `All` \\(events\\), `InProgress`, `Success`, `TimedOut`, `Cancelled`, `Failed`\\. To learn more about these events, see [Configuring Amazon SNS Notifications for AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/monitoring-sns-notifications.html) in the *AWS Systems Manager User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationEvents", + "type": "array" + }, + "NotificationType": { + "markdownDescription": "The notification type\\. \n+ `Command`: Receive notification when the status of a command changes\\.\n+ `Invocation`: For commands sent to multiple instances, receive notification on a per\\-instance basis when the status of a command changes\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `Command | Invocation` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationType", + "type": "string" + } + }, + "required": [ + "NotificationArn" + ], + "type": "object" + }, + "AWS::SSM::MaintenanceWindowTask.Target": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "User\\-defined criteria for sending commands that target instances that meet the criteria\\. `Key` can be `InstanceIds` or `WindowTargetIds`\\. For more information about how to target instances within a maintenance window task, see [About 'register\\-task\\-with\\-maintenance\\-window' Options and Values](https://docs.aws.amazon.com/systems-manager/latest/userguide/register-tasks-options.html) in the *AWS Systems Manager User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `163` \n*Pattern*: `^[\\p{L}\\p{Z}\\p{N}_.:/=\\-@]*$|resource-groups:ResourceTypeFilters|resource-groups:Name` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "User\\-defined criteria that maps to `Key`\\. For example, if you specify `InstanceIds`, you can specify `i-1234567890abcdef0,i-9876543210abcdef0` to run a command on two EC2 instances\\. For more information about how to target instances within a maintenance window task, see [About 'register\\-task\\-with\\-maintenance\\-window' Options and Values](https://docs.aws.amazon.com/systems-manager/latest/userguide/register-tasks-options.html) in the *AWS Systems Manager User Guide*\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "required": [ + "Key", + "Values" + ], + "type": "object" + }, + "AWS::SSM::MaintenanceWindowTask.TaskInvocationParameters": { + "additionalProperties": false, + "properties": { + "MaintenanceWindowAutomationParameters": { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.MaintenanceWindowAutomationParameters", + "markdownDescription": "The parameters for an `AUTOMATION` task type\\. \n*Required*: No \n*Type*: [MaintenanceWindowAutomationParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowautomationparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaintenanceWindowAutomationParameters" + }, + "MaintenanceWindowLambdaParameters": { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.MaintenanceWindowLambdaParameters", + "markdownDescription": "The parameters for a `LAMBDA` task type\\. \n*Required*: No \n*Type*: [MaintenanceWindowLambdaParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowlambdaparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaintenanceWindowLambdaParameters" + }, + "MaintenanceWindowRunCommandParameters": { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.MaintenanceWindowRunCommandParameters", + "markdownDescription": "The parameters for a `RUN_COMMAND` task type\\. \n*Required*: No \n*Type*: [MaintenanceWindowRunCommandParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowruncommandparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaintenanceWindowRunCommandParameters" + }, + "MaintenanceWindowStepFunctionsParameters": { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.MaintenanceWindowStepFunctionsParameters", + "markdownDescription": "The parameters for a `STEP_FUNCTIONS` task type\\. \n*Required*: No \n*Type*: [MaintenanceWindowStepFunctionsParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-maintenancewindowstepfunctionsparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A regular expression used to validate the parameter value\\. For example, for String types with values restricted to numbers, you can specify the following: `AllowedPattern=^\\d+$` \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllowedPattern", + "type": "string" + }, + "DataType": { + "markdownDescription": "The data type of the parameter, such as `text` or `aws:ec2:image`\\. The default is `text`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataType", + "type": "string" + }, + "Description": { + "markdownDescription": "Information about the parameter\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the parameter\\. \nThe maximum length constraint listed below includes capacity for additional system attributes that aren't part of the name\\. The maximum length for a parameter name, including the full length of the parameter ARN, is 1011 characters\\. For example, the length of the following parameter name is 65 characters, not 20 characters: `arn:aws:ssm:us-east-2:111222333444:parameter/ExampleParameterName` \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Policies": { + "markdownDescription": "Information about the policies assigned to a parameter\\. \n [Assigning parameter policies](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-policies.html) in the * AWS Systems Manager User Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policies", + "type": "string" + }, + "Tags": { + "markdownDescription": "Optional metadata that you assign to a resource in the form of an arbitrary set of tags \\(key\\-value pairs\\)\\. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment\\. For example, you might want to tag a Systems Manager parameter to identify the type of resource to which it applies, the environment, or the type of configuration data referenced by the parameter\\. \n*Required*: No \n*Type*: Json \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "object" + }, + "Tier": { + "markdownDescription": "The parameter tier\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Advanced | Intelligent-Tiering | Standard` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tier", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of parameter\\. \nAWS CloudFormation doesn't support creating a `SecureString` parameter type\\.\n*Allowed Values*: String \\| StringList \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "Value": { + "markdownDescription": "The parameter value\\. \nIf type is `StringList`, the system returns a comma\\-separated string with no spaces between commas in the `Value` field\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "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", + "markdownDescription": "A set of rules used to include patches in the baseline\\. \n*Required*: No \n*Type*: [RuleGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rulegroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApprovalRules" + }, + "ApprovedPatches": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of explicitly approved patches for the baseline\\. \nFor information about accepted formats for lists of approved patches and rejected patches, see [About package name formats for approved and rejected patch lists](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html) in the * AWS Systems Manager User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApprovedPatches", + "type": "array" + }, + "ApprovedPatchesComplianceLevel": { + "markdownDescription": "Defines the compliance level for approved patches\\. When an approved patch is reported as missing, this value describes the severity of the compliance violation\\. The default value is `UNSPECIFIED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CRITICAL | HIGH | INFORMATIONAL | LOW | MEDIUM | UNSPECIFIED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApprovedPatchesComplianceLevel", + "type": "string" + }, + "ApprovedPatchesEnableNonSecurity": { + "markdownDescription": "Indicates whether the list of approved patches includes non\\-security updates that should be applied to the managed nodes\\. The default value is `false`\\. Applies to Linux managed nodes only\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApprovedPatchesEnableNonSecurity", + "type": "boolean" + }, + "Description": { + "markdownDescription": "A description of the patch baseline\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "GlobalFilters": { + "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchFilterGroup", + "markdownDescription": "A set of global filters used to include patches in the baseline\\. \n*Required*: No \n*Type*: [PatchFilterGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchfiltergroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GlobalFilters" + }, + "Name": { + "markdownDescription": "The name of the patch baseline\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "OperatingSystem": { + "markdownDescription": "Defines the operating system the patch baseline applies to\\. The default value is `WINDOWS`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `AMAZON_LINUX | AMAZON_LINUX_2 | CENTOS | DEBIAN | MACOS | ORACLE_LINUX | RASPBIAN | REDHAT_ENTERPRISE_LINUX | SUSE | UBUNTU | WINDOWS` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OperatingSystem", + "type": "string" + }, + "PatchGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "The name of the patch group to be registered with the patch baseline\\. \n*Required*: No \n*Type*: List of String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatchGroups", + "type": "array" + }, + "RejectedPatches": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of explicitly rejected patches for the baseline\\. \nFor information about accepted formats for lists of approved patches and rejected patches, see [About package name formats for approved and rejected patch lists](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html) in the * AWS Systems Manager User Guide*\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RejectedPatches", + "type": "array" + }, + "RejectedPatchesAction": { + "markdownDescription": "The action for Patch Manager to take on patches included in the `RejectedPackages` list\\. \n+ ** `ALLOW_AS_DEPENDENCY` **: A package in the `Rejected` patches list is installed only if it is a dependency of another package\\. It is considered compliant with the patch baseline, and its status is reported as `InstalledOther`\\. This is the default action if no option is specified\\.\n+ ** `BLOCK` **: Packages in the `RejectedPatches` list, and packages that include them as dependencies, aren't installed under any circumstances\\. If a package was installed before it was added to the Rejected patches list, it is considered non\\-compliant with the patch baseline, and its status is reported as `InstalledRejected`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ALLOW_AS_DEPENDENCY | BLOCK` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RejectedPatchesAction", + "type": "string" + }, + "Sources": { + "items": { + "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchSource" + }, + "markdownDescription": "Information about the patches to use to update the managed nodes, including target operating systems and source repositories\\. Applies to Linux managed nodes only\\. \n*Required*: No \n*Type*: List of [PatchSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchsource.html) \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Sources", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Optional metadata that you assign to a resource\\. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment\\. For example, you might want to tag a patch baseline to identify the severity level of patches it specifies and the operating system family it applies to\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The key for the filter\\. \nFor information about valid keys, see [PatchFilter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PatchFilter.html) in the *AWS Systems Manager API Reference*\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ADVISORY_ID | ARCH | BUGZILLA_ID | CLASSIFICATION | CVE_ID | EPOCH | MSRC_SEVERITY | NAME | PATCH_ID | PATCH_SET | PRIORITY | PRODUCT | PRODUCT_FAMILY | RELEASE | REPOSITORY | SECTION | SECURITY | SEVERITY | VERSION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "The value for the filter key\\. \nFor information about valid values for each key based on operating system type, see [PatchFilter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PatchFilter.html) in the *AWS Systems Manager API Reference*\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "type": "array" + } + }, + "type": "object" + }, + "AWS::SSM::PatchBaseline.PatchFilterGroup": { + "additionalProperties": false, + "properties": { + "PatchFilters": { + "items": { + "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchFilter" + }, + "markdownDescription": "The set of patch filters that make up the group\\. \n*Required*: No \n*Type*: List of [PatchFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchfilter.html) \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatchFilters", + "type": "array" + } + }, + "type": "object" + }, + "AWS::SSM::PatchBaseline.PatchSource": { + "additionalProperties": false, + "properties": { + "Configuration": { + "markdownDescription": "The value of the yum repo configuration\\. For example: \n `[main]` \n `name=MyCustomRepository` \n `baseurl=https://my-custom-repository` \n `enabled=1` \nFor information about other options available for your yum repository configuration, see [dnf\\.conf\\(5\\)](https://man7.org/linux/man-pages/man5/dnf.conf.5.html)\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Configuration", + "type": "string" + }, + "Name": { + "markdownDescription": "The name specified to identify the patch source\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.]{3,50}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Products": { + "items": { + "type": "string" + }, + "markdownDescription": "The specific operating system versions a patch repository applies to, such as \"Ubuntu16\\.04\", \"AmazonLinux2016\\.09\", \"RedhatEnterpriseLinux7\\.2\" or \"Suse12\\.7\"\\. For lists of supported product values, see [PatchFilter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PatchFilter.html) in the *AWS Systems Manager API Reference*\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Products", + "type": "array" + } + }, + "type": "object" + }, + "AWS::SSM::PatchBaseline.PatchStringDate": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::SSM::PatchBaseline.Rule": { + "additionalProperties": false, + "properties": { + "ApproveAfterDays": { + "markdownDescription": "The number of days after the release date of each patch matched by the rule that the patch is marked as approved in the patch baseline\\. For example, a value of `7` means that patches are approved seven days after they are released\\. \nYou must specify a value for `ApproveAfterDays`\\. \nException: Not supported on Debian Server or Ubuntu Server\\. \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `360` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApproveAfterDays", + "type": "number" + }, + "ApproveUntilDate": { + "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchStringDate", + "markdownDescription": "The cutoff date for auto approval of released patches\\. Any patches released on or before this date are installed automatically\\. Not supported on Debian Server or Ubuntu Server\\. \nEnter dates in the format `YYYY-MM-DD`\\. For example, `2021-12-31`\\. \n*Required*: No \n*Type*: [PatchStringDate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchstringdate.html) \n*Minimum*: `1` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApproveUntilDate" + }, + "ComplianceLevel": { + "markdownDescription": "A compliance severity level for all approved patches in a patch baseline\\. Valid compliance severity levels include the following: `UNSPECIFIED`, `CRITICAL`, `HIGH`, `MEDIUM`, `LOW`, and `INFORMATIONAL`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `CRITICAL | HIGH | INFORMATIONAL | LOW | MEDIUM | UNSPECIFIED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComplianceLevel", + "type": "string" + }, + "EnableNonSecurity": { + "markdownDescription": "For managed nodes identified by the approval rule filters, enables a patch baseline to apply non\\-security updates available in the specified repository\\. The default value is `false`\\. Applies to Linux managed nodes only\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EnableNonSecurity", + "type": "boolean" + }, + "PatchFilterGroup": { + "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchFilterGroup", + "markdownDescription": "The patch filter group that defines the criteria for the rule\\. \n*Required*: No \n*Type*: [PatchFilterGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-patchfiltergroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatchFilterGroup" + } + }, + "type": "object" + }, + "AWS::SSM::PatchBaseline.RuleGroup": { + "additionalProperties": false, + "properties": { + "PatchRules": { + "items": { + "$ref": "#/definitions/AWS::SSM::PatchBaseline.Rule" + }, + "markdownDescription": "The rules that make up the rule group\\. \n*Required*: No \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-patchbaseline-rule.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PatchRules", + "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": { + "markdownDescription": "The name of the S3 bucket where the aggregated data is stored\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketName", + "type": "string" + }, + "BucketPrefix": { + "markdownDescription": "An Amazon S3 prefix for the bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketPrefix", + "type": "string" + }, + "BucketRegion": { + "markdownDescription": "The AWS Region with the S3 bucket targeted by the resource data sync\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketRegion", + "type": "string" + }, + "KMSKeyArn": { + "markdownDescription": "The ARN of an encryption key for a destination in Amazon S3\\. You can use a KMS key to encrypt inventory data in Amazon S3\\. You must specify a key that exist in the same region as the destination Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KMSKeyArn", + "type": "string" + }, + "S3Destination": { + "$ref": "#/definitions/AWS::SSM::ResourceDataSync.S3Destination", + "markdownDescription": "Configuration information for the target S3 bucket\\. \n*Required*: No \n*Type*: [S3Destination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-resourcedatasync-s3destination.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Destination" + }, + "SyncFormat": { + "markdownDescription": "A supported sync format\\. The following format is currently supported: JsonSerDe \n*Required*: No \n*Type*: String \n*Allowed values*: `JsonSerDe` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SyncFormat", + "type": "string" + }, + "SyncName": { + "markdownDescription": "A name for the resource data sync\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SyncName", + "type": "string" + }, + "SyncSource": { + "$ref": "#/definitions/AWS::SSM::ResourceDataSync.SyncSource", + "markdownDescription": "Information about the source where the data was synchronized\\. \n*Required*: No \n*Type*: [SyncSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-resourcedatasync-syncsource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SyncSource" + }, + "SyncType": { + "markdownDescription": "The type of resource data sync\\. If `SyncType` is `SyncToDestination`, then the resource data sync synchronizes data to an S3 bucket\\. If the `SyncType` is `SyncFromSource` then the resource data sync synchronizes data from AWS Organizations or from multiple AWS Regions\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "If an AWS organization is present, this is either `OrganizationalUnits` or `EntireOrganization`\\. For `OrganizationalUnits`, the data is aggregated from a set of organization units\\. For `EntireOrganization`, the data is aggregated from the entire AWS organization\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrganizationSourceType", + "type": "string" + }, + "OrganizationalUnits": { + "items": { + "type": "string" + }, + "markdownDescription": "The AWS Organizations organization units included in the sync\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrganizationalUnits", + "type": "array" + } + }, + "required": [ + "OrganizationSourceType" + ], + "type": "object" + }, + "AWS::SSM::ResourceDataSync.S3Destination": { + "additionalProperties": false, + "properties": { + "BucketName": { + "markdownDescription": "The name of the S3 bucket where the aggregated data is stored\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketName", + "type": "string" + }, + "BucketPrefix": { + "markdownDescription": "An Amazon S3 prefix for the bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketPrefix", + "type": "string" + }, + "BucketRegion": { + "markdownDescription": "The AWS Region with the S3 bucket targeted by the resource data sync\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketRegion", + "type": "string" + }, + "KMSKeyArn": { + "markdownDescription": "The ARN of an encryption key for a destination in Amazon S3\\. Must belong to the same Region as the destination S3 bucket\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `arn:.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KMSKeyArn", + "type": "string" + }, + "SyncFormat": { + "markdownDescription": "A supported sync format\\. The following format is currently supported: JsonSerDe \n*Required*: Yes \n*Type*: String \n*Allowed values*: `JsonSerDe` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SyncFormat", + "type": "string" + } + }, + "required": [ + "BucketName", + "BucketRegion", + "SyncFormat" + ], + "type": "object" + }, + "AWS::SSM::ResourceDataSync.SyncSource": { + "additionalProperties": false, + "properties": { + "AwsOrganizationsSource": { + "$ref": "#/definitions/AWS::SSM::ResourceDataSync.AwsOrganizationsSource", + "markdownDescription": "Information about the AwsOrganizationsSource resource data sync source\\. A sync source of this type can synchronize data from AWS Organizations\\. \n*Required*: No \n*Type*: [AwsOrganizationsSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-resourcedatasync-awsorganizationssource.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AwsOrganizationsSource" + }, + "IncludeFutureRegions": { + "markdownDescription": "Whether to automatically synchronize and aggregate data from new AWS Regions when those Regions come online\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeFutureRegions", + "type": "boolean" + }, + "SourceRegions": { + "items": { + "type": "string" + }, + "markdownDescription": "The `SyncSource` AWS Regions included in the resource data sync\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SourceRegions", + "type": "array" + }, + "SourceType": { + "markdownDescription": "The type of data source for the resource data sync\\. `SourceType` is either `AwsOrganizations` \\(if an organization is present in AWS Organizations\\) or `SingleAccountMultiRegions`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The unique and identifiable alias of the contact or escalation plan\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-z0-9_\\-]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Alias", + "type": "string" + }, + "DisplayName": { + "markdownDescription": "The full name of the contact or escalation plan\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `255` \n*Pattern*: `^[\\p{L}\\p{Z}\\p{N}_.\\-]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", + "type": "string" + }, + "Plan": { + "items": { + "$ref": "#/definitions/AWS::SSMContacts::Contact.Stage" + }, + "markdownDescription": "A list of stages\\. A contact has an engagement plan with stages that contact specified contact channels\\. An escalation plan uses stages that contact specified contacts\\. \n*Required*: Yes \n*Type*: List of [Stage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-contact-stage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Plan", + "type": "array" + }, + "Type": { + "markdownDescription": "Refers to the type of contact\\. A single contact is type `PERSONAL` and an escalation plan is type `ESCALATION`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ESCALATION | PERSONAL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the contact channel\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:(aws|aws-cn|aws-us-gov):ssm-contacts:[-\\w+=\\/,.@]*:[0-9]+:([\\w+=\\/,.@:-]+)*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelId", + "type": "string" + }, + "RetryIntervalInMinutes": { + "markdownDescription": "The number of minutes to wait to retry sending engagement in the case the engagement initially fails\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `60` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetryIntervalInMinutes", + "type": "number" + } + }, + "required": [ + "ChannelId", + "RetryIntervalInMinutes" + ], + "type": "object" + }, + "AWS::SSMContacts::Contact.ContactTargetInfo": { + "additionalProperties": false, + "properties": { + "ContactId": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the contact\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:(aws|aws-cn|aws-us-gov):ssm-contacts:[-\\w+=\\/,.@]*:[0-9]+:([\\w+=\\/,.@:-]+)*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContactId", + "type": "string" + }, + "IsEssential": { + "markdownDescription": "A Boolean value determining if the contact's acknowledgement stops the progress of stages in the plan\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IsEssential", + "type": "boolean" + } + }, + "required": [ + "ContactId", + "IsEssential" + ], + "type": "object" + }, + "AWS::SSMContacts::Contact.Stage": { + "additionalProperties": false, + "properties": { + "DurationInMinutes": { + "markdownDescription": "The time to wait until beginning the next stage\\. The duration can only be set to 0 if a target is specified\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `30` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DurationInMinutes", + "type": "number" + }, + "Targets": { + "items": { + "$ref": "#/definitions/AWS::SSMContacts::Contact.Targets" + }, + "markdownDescription": "The contacts or contact methods that the escalation plan or engagement plan is engaging\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-contact-targets.html) of [Targets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-contact-targets.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Targets", + "type": "array" + } + }, + "required": [ + "DurationInMinutes" + ], + "type": "object" + }, + "AWS::SSMContacts::Contact.Targets": { + "additionalProperties": false, + "properties": { + "ChannelTargetInfo": { + "$ref": "#/definitions/AWS::SSMContacts::Contact.ChannelTargetInfo", + "markdownDescription": "Information about the contact channel Incident Manager is engaging\\. \n*Required*: No \n*Type*: [ChannelTargetInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-contact-channeltargetinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelTargetInfo" + }, + "ContactTargetInfo": { + "$ref": "#/definitions/AWS::SSMContacts::Contact.ContactTargetInfo", + "markdownDescription": "The contact that Incident Manager is engaging during an incident\\. \n*Required*: No \n*Type*: [ContactTargetInfo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmcontacts-contact-contacttargetinfo.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The details that Incident Manager uses when trying to engage the contact channel\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelAddress", + "type": "string" + }, + "ChannelName": { + "markdownDescription": "The name of the contact channel\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[\\p{L}\\p{Z}\\p{N}_.\\-]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChannelName", + "type": "string" + }, + "ChannelType": { + "markdownDescription": "The type of the contact channel\\. Incident Manager supports three contact methods: \n+ SMS\n+ VOICE\n+ EMAIL\n*Required*: Yes \n*Type*: String \n*Allowed values*: `EMAIL | SMS | VOICE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ChannelType", + "type": "string" + }, + "ContactId": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the contact you are adding the contact channel to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:(aws|aws-cn|aws-us-gov):ssm-contacts:[-\\w+=\\/,.@]*:[0-9]+:([\\w+=\\/,.@:-]+)*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContactId", + "type": "string" + }, + "DeferActivation": { + "markdownDescription": "If you want to activate the channel at a later time, you can choose to defer activation\\. Incident Manager can't engage your contact channel until it has been activated\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Determines if the replication set deletion protection is enabled or not\\. If deletion protection is enabled, you can't delete the last Region in the replication set\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeletionProtected", + "type": "boolean" + }, + "Regions": { + "items": { + "$ref": "#/definitions/AWS::SSMIncidents::ReplicationSet.ReplicationRegion" + }, + "markdownDescription": "Specifies the Regions of the replication set\\. \n*Required*: Yes \n*Type*: List of [ReplicationRegion](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-replicationset-replicationregion.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Regions", + "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": { + "markdownDescription": "The KMS key ID to use to encrypt your replication set\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SseKmsKeyId", + "type": "string" + } + }, + "required": [ + "SseKmsKeyId" + ], + "type": "object" + }, + "AWS::SSMIncidents::ReplicationSet.ReplicationRegion": { + "additionalProperties": false, + "properties": { + "RegionConfiguration": { + "$ref": "#/definitions/AWS::SSMIncidents::ReplicationSet.RegionConfiguration", + "markdownDescription": "Specifies the Region configuration\\. \n*Required*: No \n*Type*: [RegionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-replicationset-regionconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegionConfiguration" + }, + "RegionName": { + "markdownDescription": "Specifies the region name to add to the replication set\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The actions that the response plan starts at the beginning of an incident\\. \n*Required*: No \n*Type*: List of [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-responseplan-action.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Actions", + "type": "array" + }, + "ChatChannel": { + "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.ChatChannel", + "markdownDescription": "The AWS Chatbot chat channel used for collaboration during an incident\\. \n*Required*: No \n*Type*: [ChatChannel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-responseplan-chatchannel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChatChannel" + }, + "DisplayName": { + "markdownDescription": "The human readable name of the response plan\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", + "type": "string" + }, + "Engagements": { + "items": { + "type": "string" + }, + "markdownDescription": "The contacts and escalation plans that the response plan engages during an incident\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Engagements", + "type": "array" + }, + "IncidentTemplate": { + "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.IncidentTemplate", + "markdownDescription": "Details used to create an incident when using this response plan\\. \n*Required*: Yes \n*Type*: [IncidentTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-responseplan-incidenttemplate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncidentTemplate" + }, + "Integrations": { + "items": { + "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.Integration" + }, + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the response plan\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `200` \n*Pattern*: `^[a-zA-Z0-9-_]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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", + "markdownDescription": "Details about the Systems Manager automation document that will be used as a runbook during an incident\\. \n*Required*: No \n*Type*: [SsmAutomation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-responseplan-ssmautomation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SsmAutomation" + } + }, + "type": "object" + }, + "AWS::SSMIncidents::ResponsePlan.ChatChannel": { + "additionalProperties": false, + "properties": { + "ChatbotSns": { + "items": { + "type": "string" + }, + "markdownDescription": "The SNS targets that AWS Chatbot uses to notify the chat channel of updates to an incident\\. You can also make updates to the incident through the chat channel by using the SNS topics \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ChatbotSns", + "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": { + "markdownDescription": "Used to create only one incident record for an incident\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DedupeString", + "type": "string" + }, + "Impact": { + "markdownDescription": "Defines the impact to the customers\\. Providing an impact overwrites the impact provided by a response plan\\.", + "title": "Impact", + "type": "number" + }, + "IncidentTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "NotificationTargets": { + "items": { + "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.NotificationTargetItem" + }, + "markdownDescription": "The SNS targets that AWS Chatbot uses to notify the chat channel of updates to an incident\\. You can also make updates to the incident through the chat channel using the SNS topics\\. \n*Required*: No \n*Type*: List of [NotificationTargetItem](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-responseplan-notificationtargetitem.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationTargets", + "type": "array" + }, + "Summary": { + "markdownDescription": "The summary describes what has happened during the incident\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `4000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Summary", + "type": "string" + }, + "Title": { + "markdownDescription": "The title of the incident is a brief and easily recognizable\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the SNS topic\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Pattern*: `^arn:aws(-cn|-us-gov)?:[a-z0-9-]*:[a-z0-9-]*:([0-9]{12})?:.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The automation document's name\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-zA-Z0-9_\\-.:/]{3,128}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentName", + "type": "string" + }, + "DocumentVersion": { + "markdownDescription": "The automation document's version to use when running\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentVersion", + "type": "string" + }, + "DynamicParameters": { + "items": { + "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.DynamicSsmParameter" + }, + "type": "array" + }, + "Parameters": { + "items": { + "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.SsmParameter" + }, + "markdownDescription": "The key\\-value pair parameters to use when running the automation document\\. \n*Required*: No \n*Type*: List of [SsmParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-responseplan-ssmparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Parameters", + "type": "array" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the role that the automation document will assume when running commands\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1000` \n*Pattern*: `^arn:aws(-cn|-us-gov)?:iam::([0-9]{12})?:role/.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "TargetAccount": { + "markdownDescription": "The account that the automation document will be run in\\. This can be in either the management account or an application account\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `IMPACTED_ACCOUNT | RESPONSE_PLAN_OWNER_ACCOUNT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetAccount", + "type": "string" + } + }, + "required": [ + "DocumentName", + "RoleArn" + ], + "type": "object" + }, + "AWS::SSMIncidents::ResponsePlan.SsmParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The key parameter to use when running the automation document\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "markdownDescription": "The value parameter to use when running the automation document\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Values", + "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": { + "markdownDescription": "The ARN of the SSO instance under which the operation will be executed\\. For more information about ARNs, see [Amazon Resource Names \\(ARNs\\) and AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *AWS General Reference*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `1224` \n*Pattern*: `arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html:::instance/(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html)?ins-[a-zA-Z0-9-.]{16}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceArn", + "type": "string" + }, + "PermissionSetArn": { + "markdownDescription": "The ARN of the permission set\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `1224` \n*Pattern*: `arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html:::permissionSet/(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html)?ins-[a-zA-Z0-9-.]{16}/ps-[a-zA-Z0-9-./]{16}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PermissionSetArn", + "type": "string" + }, + "PrincipalId": { + "markdownDescription": "An identifier for an object in AWS SSO, such as a user or group\\. PrincipalIds are GUIDs \\(For example, f81d4fae\\-7dec\\-11d0\\-a765\\-00a0c91e6bf6\\)\\. For more information about PrincipalIds in AWS SSO, see the [AWS SSO Identity Store API Reference](/singlesignon/latest/IdentityStoreAPIReference/welcome.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `47` \n*Pattern*: `^([0-9a-f]{10}-|)[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrincipalId", + "type": "string" + }, + "PrincipalType": { + "markdownDescription": "The entity type for which the assignment will be created\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `GROUP | USER` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrincipalType", + "type": "string" + }, + "TargetId": { + "markdownDescription": "TargetID is an AWS account identifier, typically a 10\\-12 digit string \\(For example, 123456789012\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `\\d{12}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetId", + "type": "string" + }, + "TargetType": { + "markdownDescription": "The entity type for which the assignment will be created\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AWS_ACCOUNT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "Lists the attributes that are configured for ABAC in the specified AWS SSO instance\\. \n*Required*: No \n*Type*: List of [AccessControlAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sso-instanceaccesscontrolattributeconfiguration-accesscontrolattribute.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccessControlAttributes", + "type": "array" + }, + "InstanceArn": { + "markdownDescription": "The ARN of the AWS SSO instance under which the operation will be executed\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `1224` \n*Pattern*: `arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html:::instance/(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html)?ins-[a-zA-Z0-9-.]{16}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the attribute associated with your identities in your identity source\\. This is used to map a specified attribute in your identity source with an attribute in AWS SSO\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "$ref": "#/definitions/AWS::SSO::InstanceAccessControlAttributeConfiguration.AccessControlAttributeValue", + "markdownDescription": "The value used for mapping a specified attribute to an identity source\\. \n*Required*: Yes \n*Type*: [AccessControlAttributeValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sso-instanceaccesscontrolattributeconfiguration-accesscontrolattributevalue.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::SSO::InstanceAccessControlAttributeConfiguration.AccessControlAttributeValue": { + "additionalProperties": false, + "properties": { + "Source": { + "items": { + "type": "string" + }, + "markdownDescription": "The identity source to use when mapping a specified attribute to AWS SSO\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Source", + "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": { + "markdownDescription": "The description of the [AWS::SSO::PermissionSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-resource-sso-permissionset.html#aws-resource-sso-permissionset)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `700` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u00A0-\\u00FF]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "InlinePolicy": { + "markdownDescription": "The IAM inline policy that is attached to the permission set\\. \n*Required*: No \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `10240` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InlinePolicy", + "type": "object" + }, + "InstanceArn": { + "markdownDescription": "The ARN of the SSO instance under which the operation will be executed\\. For more information about ARNs, see [Amazon Resource Names \\(ARNs\\) and AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *AWS General Reference*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `1224` \n*Pattern*: `arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html:::instance/(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html)?ins-[a-zA-Z0-9-.]{16}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceArn", + "type": "string" + }, + "ManagedPolicies": { + "items": { + "type": "string" + }, + "markdownDescription": "A structure that stores the details of the IAM managed policy\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManagedPolicies", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the permission set\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "PermissionsBoundary": { + "$ref": "#/definitions/AWS::SSO::PermissionSet.PermissionsBoundary" + }, + "RelayStateType": { + "markdownDescription": "Used to redirect users within the application during the federation authentication process\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `240` \n*Pattern*: `[a-zA-Z0-9&$@#\\\\\\/%?=~\\-_'\"|!:,.;*+\\[\\]\\ \\(\\)\\{\\}]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RelayStateType", + "type": "string" + }, + "SessionDuration": { + "markdownDescription": "The length of time that the application user sessions are valid for in the ISO\\-8601 standard\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^(-?)P(?=\\d|T\\d)(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)([DW]))?(?:T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+(?:\\.\\d+)?)S)?)?$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SessionDuration", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to attach to the new [AWS::SSO::PermissionSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-resource-sso-permissionset.html#aws-resource-sso-permissionset)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The name of the app\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AppName", + "type": "string" + }, + "AppType": { + "markdownDescription": "The type of app\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `JupyterServer | KernelGateway | RSessionGateway | RStudioServerPro | TensorBoard` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AppType", + "type": "string" + }, + "DomainId": { + "markdownDescription": "The domain ID\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainId", + "type": "string" + }, + "ResourceSpec": { + "$ref": "#/definitions/AWS::SageMaker::App.ResourceSpec", + "markdownDescription": "Specifies the ARN's of a SageMaker image and SageMaker image version, and the instance type that the version runs on\\. \n*Required*: No \n*Type*: [ResourceSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-app-resourcespec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceSpec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "type": "array" + }, + "UserProfileName": { + "markdownDescription": "The user profile name\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The instance type that the image version runs on\\. \nJupyterServer Apps only support the `system` value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ml.c5.12xlarge | ml.c5.18xlarge | ml.c5.24xlarge | ml.c5.2xlarge | ml.c5.4xlarge | ml.c5.9xlarge | ml.c5.large | ml.c5.xlarge | ml.g4dn.12xlarge | ml.g4dn.16xlarge | ml.g4dn.2xlarge | ml.g4dn.4xlarge | ml.g4dn.8xlarge | ml.g4dn.xlarge | ml.m5.12xlarge | ml.m5.16xlarge | ml.m5.24xlarge | ml.m5.2xlarge | ml.m5.4xlarge | ml.m5.8xlarge | ml.m5.large | ml.m5.xlarge | ml.m5d.12xlarge | ml.m5d.16xlarge | ml.m5d.24xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.8xlarge | ml.m5d.large | ml.m5d.xlarge | ml.p3.16xlarge | ml.p3.2xlarge | ml.p3.8xlarge | ml.p3dn.24xlarge | ml.r5.12xlarge | ml.r5.16xlarge | ml.r5.24xlarge | ml.r5.2xlarge | ml.r5.4xlarge | ml.r5.8xlarge | ml.r5.large | ml.r5.xlarge | ml.t3.2xlarge | ml.t3.large | ml.t3.medium | ml.t3.micro | ml.t3.small | ml.t3.xlarge | system` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", + "type": "string" + }, + "SageMakerImageArn": { + "markdownDescription": "The ARN of the SageMaker image that the image version belongs to\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SageMakerImageArn", + "type": "string" + }, + "SageMakerImageVersionArn": { + "markdownDescription": "The ARN of the image version created on the instance\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the AppImageConfig\\. Must be unique to your account\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AppImageConfigName", + "type": "string" + }, + "KernelGatewayImageConfig": { + "$ref": "#/definitions/AWS::SageMaker::AppImageConfig.KernelGatewayImageConfig", + "markdownDescription": "The configuration for the file system and kernels in the SageMaker image\\. \n*Required*: No \n*Type*: [KernelGatewayImageConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-appimageconfig-kernelgatewayimageconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KernelGatewayImageConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "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": { + "markdownDescription": "The default POSIX group ID \\(GID\\)\\. If not specified, defaults to `100`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultGid", + "type": "number" + }, + "DefaultUid": { + "markdownDescription": "The default POSIX user ID \\(UID\\)\\. If not specified, defaults to `1000`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultUid", + "type": "number" + }, + "MountPath": { + "markdownDescription": "The path within the image to mount the user's EFS home directory\\. The directory should be empty\\. If not specified, defaults to */home/sagemaker\\-user*\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^\\/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MountPath", + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::AppImageConfig.KernelGatewayImageConfig": { + "additionalProperties": false, + "properties": { + "FileSystemConfig": { + "$ref": "#/definitions/AWS::SageMaker::AppImageConfig.FileSystemConfig", + "markdownDescription": "The Amazon Elastic File System \\(EFS\\) storage configuration for a SageMaker image\\. \n*Required*: No \n*Type*: [FileSystemConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-appimageconfig-filesystemconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FileSystemConfig" + }, + "KernelSpecs": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::AppImageConfig.KernelSpec" + }, + "markdownDescription": "The specification of the Jupyter kernels in the image\\. \n*Required*: Yes \n*Type*: List of [KernelSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-appimageconfig-kernelspec.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KernelSpecs", + "type": "array" + } + }, + "required": [ + "KernelSpecs" + ], + "type": "object" + }, + "AWS::SageMaker::AppImageConfig.KernelSpec": { + "additionalProperties": false, + "properties": { + "DisplayName": { + "markdownDescription": "The display name of the kernel\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the Jupyter kernel in the image\\. This value is case sensitive\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the Git repository\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CodeRepositoryName", + "type": "string" + }, + "GitConfig": { + "$ref": "#/definitions/AWS::SageMaker::CodeRepository.GitConfig", + "markdownDescription": "Configuration details for the Git repository, including the URL where it is located and the ARN of the AWS Secrets Manager secret that contains the credentials used to access the repository\\. \n*Required*: Yes \n*Type*: [GitConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-coderepository-gitconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GitConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "List of tags for Code Repository\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The default branch for the Git repository\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `[^ ~^:?*\\[]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Branch", + "type": "string" + }, + "RepositoryUrl": { + "markdownDescription": "The URL where the Git repository is located\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^https://([^/]+)/?(.*)$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RepositoryUrl", + "type": "string" + }, + "SecretArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Secrets Manager secret that contains the credentials used to access the git repository\\. The secret must have a staging label of `AWSCURRENT` and must be in the following format: \n `{\"username\": UserName, \"password\": Password}` \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:aws[a-z\\-]*:secretsmanager:[a-z0-9\\-]*:[0-9]{12}:secret:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Specifies the container that runs the monitoring job\\. \n*Required*: Yes \n*Type*: [DataQualityAppSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-dataqualityappspecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataQualityAppSpecification" + }, + "DataQualityBaselineConfig": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.DataQualityBaselineConfig", + "markdownDescription": "Configures the constraints and baselines for the monitoring job\\. \n*Required*: No \n*Type*: [DataQualityBaselineConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-dataqualitybaselineconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataQualityBaselineConfig" + }, + "DataQualityJobInput": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.DataQualityJobInput", + "markdownDescription": "A list of inputs for the monitoring job\\. Currently endpoints are supported as monitoring inputs\\. \n*Required*: Yes \n*Type*: [DataQualityJobInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-dataqualityjobinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataQualityJobInput" + }, + "DataQualityJobOutputConfig": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.MonitoringOutputConfig", + "markdownDescription": "The output configuration for monitoring jobs\\. \n*Required*: Yes \n*Type*: [MonitoringOutputConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-monitoringoutputconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataQualityJobOutputConfig" + }, + "EndpointName": { + "type": "string" + }, + "JobDefinitionName": { + "markdownDescription": "The name for the monitoring job definition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "JobDefinitionName", + "type": "string" + }, + "JobResources": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.MonitoringResources", + "markdownDescription": "Identifies the resources to deploy for a monitoring job\\. \n*Required*: Yes \n*Type*: [MonitoringResources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-monitoringresources.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "JobResources" + }, + "NetworkConfig": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.NetworkConfig", + "markdownDescription": "Specifies networking configuration for the monitoring job\\. \n*Required*: No \n*Type*: [NetworkConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-networkconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NetworkConfig" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an IAM role that Amazon SageMaker can assume to perform tasks on your behalf\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RoleArn", + "type": "string" + }, + "StoppingCondition": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.StoppingCondition", + "markdownDescription": "A time limit for how long the monitoring job is allowed to run before stopping\\. \n*Required*: No \n*Type*: [StoppingCondition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-stoppingcondition.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StoppingCondition" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "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": { + "markdownDescription": "The number of ML compute instances to use in the model monitoring job\\. For distributed processing jobs, specify a value greater than 1\\. The default value is 1\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceCount", + "type": "number" + }, + "InstanceType": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", + "type": "string" + }, + "VolumeKmsKeyId": { + "markdownDescription": "The AWS Key Management Service \\(AWS KMS\\) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance\\(s\\) that run the model monitoring job\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeKmsKeyId", + "type": "string" + }, + "VolumeSizeInGB": { + "markdownDescription": "The size of the ML storage volume, in gigabytes, that you want to provision\\. You must specify sufficient ML storage for your scenario\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VolumeSizeInGB", + "type": "number" + } + }, + "required": [ + "InstanceCount", + "InstanceType", + "VolumeSizeInGB" + ], + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.ConstraintsResource": { + "additionalProperties": false, + "properties": { + "S3Uri": { + "markdownDescription": "The Amazon S3 URI for the constraints resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "The arguments to send to the container that the monitoring job runs\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerArguments", + "type": "array" + }, + "ContainerEntrypoint": { + "items": { + "type": "string" + }, + "markdownDescription": "The entrypoint for a container used to run a monitoring job\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerEntrypoint", + "type": "array" + }, + "Environment": { + "additionalProperties": true, + "markdownDescription": "Sets the environment variables in the container that the monitoring job runs\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Environment", + "type": "object" + }, + "ImageUri": { + "markdownDescription": "The container image that the data quality monitoring job runs\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageUri", + "type": "string" + }, + "PostAnalyticsProcessorSourceUri": { + "markdownDescription": "An Amazon S3 URI to a script that is called after analysis has been performed\\. Applicable only for the built\\-in \\(first party\\) containers\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^(https|s3)://([^/]+)/?(.*)$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PostAnalyticsProcessorSourceUri", + "type": "string" + }, + "RecordPreprocessorSourceUri": { + "markdownDescription": "An Amazon S3 URI to a script that is called per row prior to running analysis\\. It can base64 decode the payload and convert it into a flatted json so that the built\\-in container can use the converted data\\. Applicable only for the built\\-in \\(first party\\) containers\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^(https|s3)://([^/]+)/?(.*)$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RecordPreprocessorSourceUri", + "type": "string" + } + }, + "required": [ + "ImageUri" + ], + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.DataQualityBaselineConfig": { + "additionalProperties": false, + "properties": { + "BaseliningJobName": { + "markdownDescription": "The name of the job that performs baselining for the data quality monitoring job\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BaseliningJobName", + "type": "string" + }, + "ConstraintsResource": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.ConstraintsResource", + "markdownDescription": "The constraints resource for a monitoring job\\. \n*Required*: No \n*Type*: [ConstraintsResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-constraintsresource.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConstraintsResource" + }, + "StatisticsResource": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.StatisticsResource", + "markdownDescription": "Configuration for monitoring constraints and monitoring statistics\\. These baseline resources are compared against the results of the current job from the series of jobs scheduled to collect data periodically\\. \n*Required*: No \n*Type*: [StatisticsResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-statisticsresource.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StatisticsResource" + } + }, + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.DataQualityJobInput": { + "additionalProperties": false, + "properties": { + "BatchTransformInput": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.BatchTransformInput" + }, + "EndpointInput": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.EndpointInput", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: [EndpointInput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-endpointinput.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "An endpoint in customer's account which has enabled `DataCaptureConfig` enabled\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EndpointName", + "type": "string" + }, + "LocalPath": { + "markdownDescription": "Path to the filesystem where the endpoint data is available to the container\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalPath", + "type": "string" + }, + "S3DataDistributionType": { + "markdownDescription": "Whether input data distributed in Amazon S3 is fully replicated or sharded by an S3 key\\. Defaults to `FullyReplicated` \n*Required*: No \n*Type*: String \n*Allowed values*: `FullyReplicated | ShardedByS3Key` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3DataDistributionType", + "type": "string" + }, + "S3InputMode": { + "markdownDescription": "Whether the `Pipe` or `File` is used as the input mode for transferring data for the monitoring job\\. `Pipe` mode is recommended for large datasets\\. `File` mode is useful for small files that fit in memory\\. Defaults to `File`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `File | Pipe` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "The Amazon S3 storage location where the results of a monitoring job are saved\\. \n*Required*: Yes \n*Type*: [S3Output](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-s3output.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Output" + } + }, + "required": [ + "S3Output" + ], + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.MonitoringOutputConfig": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "markdownDescription": "The AWS Key Management Service \\(AWS KMS\\) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server\\-side encryption\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + }, + "MonitoringOutputs": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.MonitoringOutput" + }, + "markdownDescription": "Monitoring outputs for monitoring jobs\\. This is where the output of the periodic monitoring jobs is uploaded\\. \n*Required*: Yes \n*Type*: List of [MonitoringOutput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-monitoringoutput.html) \n*Maximum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MonitoringOutputs", + "type": "array" + } + }, + "required": [ + "MonitoringOutputs" + ], + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.MonitoringResources": { + "additionalProperties": false, + "properties": { + "ClusterConfig": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.ClusterConfig", + "markdownDescription": "The configuration for the cluster resources used to run the processing job\\. \n*Required*: Yes \n*Type*: [ClusterConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-clusterconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClusterConfig" + } + }, + "required": [ + "ClusterConfig" + ], + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.NetworkConfig": { + "additionalProperties": false, + "properties": { + "EnableInterContainerTrafficEncryption": { + "markdownDescription": "Whether to encrypt all communications between distributed processing jobs\\. Choose `True` to encrypt communications\\. Encryption provides greater security for distributed processing jobs, but the processing might take longer\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnableInterContainerTrafficEncryption", + "type": "boolean" + }, + "EnableNetworkIsolation": { + "markdownDescription": "Whether to allow inbound and outbound network calls to and from the containers used for the processing job\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnableNetworkIsolation", + "type": "boolean" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.VpcConfig", + "markdownDescription": "Specifies a VPC that your training jobs and hosted models have access to\\. Control access to and from your training and model containers by configuring the VPC\\. \n*Required*: No \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-dataqualityjobdefinition-vpcconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VpcConfig" + } + }, + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.S3Output": { + "additionalProperties": false, + "properties": { + "LocalPath": { + "markdownDescription": "The local path to the Amazon S3 storage location where Amazon SageMaker saves the results of a monitoring job\\. LocalPath is an absolute path for the output data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalPath", + "type": "string" + }, + "S3UploadMode": { + "markdownDescription": "Whether to upload the results of the monitoring job continuously or after the job completes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3UploadMode", + "type": "string" + }, + "S3Uri": { + "markdownDescription": "A URI that identifies the Amazon S3 storage location where Amazon SageMaker saves the results of a monitoring job\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Uri", + "type": "string" + } + }, + "required": [ + "LocalPath", + "S3Uri" + ], + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.StatisticsResource": { + "additionalProperties": false, + "properties": { + "S3Uri": { + "markdownDescription": "The Amazon S3 URI for the statistics resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Uri", + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.StoppingCondition": { + "additionalProperties": false, + "properties": { + "MaxRuntimeInSeconds": { + "markdownDescription": "The maximum length of time, in seconds, that a training or compilation job can run\\. \nFor compilation jobs, if the job does not complete during this time, a `TimeOut` error is generated\\. We recommend starting with 900 seconds and increasing as necessary based on your model\\. \nFor all other jobs, if the job does not complete during this time, SageMaker ends the job\\. When `RetryStrategy` is specified in the job request, `MaxRuntimeInSeconds` specifies the maximum time for all of the attempts in total, not each individual attempt\\. The default value is 1 day\\. The maximum value is 28 days\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaxRuntimeInSeconds", + "type": "number" + } + }, + "required": [ + "MaxRuntimeInSeconds" + ], + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The VPC security group IDs, in the form sg\\-xxxxxxxx\\. Specify the security groups for the VPC that is specified in the `Subnets` field\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecurityGroupIds", + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "markdownDescription": "The ID of the subnets in the VPC to which you want to connect your training job or model\\. For information about the availability of specific instance types, see [Supported Instance Types and Availability Zones](https://docs.aws.amazon.com/sagemaker/latest/dg/instance-types-az.html)\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `16` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Subnets", + "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", + "markdownDescription": "Edge device you want to create\\. \n*Required*: No \n*Type*: [Device](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-device-device.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Device" + }, + "DeviceFleetName": { + "markdownDescription": "The name of the fleet the device belongs to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceFleetName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs that contain metadata to help you categorize and organize your devices\\. Each tag consists of a key and a value, both of which you define\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "Description of the device\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `40` \n*Pattern*: `[\\S\\s]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DeviceName": { + "markdownDescription": "The name of the device\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeviceName", + "type": "string" + }, + "IotThingName": { + "markdownDescription": "AWS Internet of Things \\(IoT\\) object name\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9:_-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A description of the fleet\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DeviceFleetName": { + "markdownDescription": "Name of the device fleet\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeviceFleetName", + "type": "string" + }, + "OutputConfig": { + "$ref": "#/definitions/AWS::SageMaker::DeviceFleet.EdgeOutputConfig", + "markdownDescription": "The output configuration for storing sample data collected by the fleet\\. \n*Required*: Yes \n*Type*: [EdgeOutputConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-devicefleet-edgeoutputconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OutputConfig" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) that has access to AWS Internet of Things \\(IoT\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "An array of key\\-value pairs that contain metadata to help you categorize and organize your device fleets\\. Each tag consists of a key and a value, both of which you define\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The AWS Key Management Service \\(AWS KMS\\) key that Amazon SageMaker uses to encrypt data on the storage volume after compilation job\\. If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", + "type": "string" + }, + "S3OutputLocation": { + "markdownDescription": "The Amazon Simple Storage \\(S3\\) bucket URI\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^(https|s3)://([^/]+)/?(.*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Specifies the VPC used for non\\-EFS traffic\\. The default value is `PublicInternetOnly`\\. \n+ `PublicInternetOnly` \\- Non\\-EFS traffic is through a VPC managed by Amazon SageMaker, which allows direct internet access\n+ `VpcOnly` \\- All Studio traffic is through the specified VPC and subnets\n*Valid Values*: `PublicInternetOnly | VpcOnly` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AppNetworkAccessType", + "type": "string" + }, + "AppSecurityGroupManagement": { + "type": "string" + }, + "AuthMode": { + "markdownDescription": "The mode of authentication that members use to access the domain\\. \n*Valid Values*: `SSO | IAM` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AuthMode", + "type": "string" + }, + "DefaultSpaceSettings": { + "$ref": "#/definitions/AWS::SageMaker::Domain.DefaultSpaceSettings" + }, + "DefaultUserSettings": { + "$ref": "#/definitions/AWS::SageMaker::Domain.UserSettings", + "markdownDescription": "The default user settings\\. \n*Required*: Yes \n*Type*: [UserSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-usersettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultUserSettings" + }, + "DomainName": { + "markdownDescription": "The domain name\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DomainName", + "type": "string" + }, + "DomainSettings": { + "$ref": "#/definitions/AWS::SageMaker::Domain.DomainSettings" + }, + "KmsKeyId": { + "markdownDescription": "SageMaker uses AWS KMS to encrypt the EFS volume attached to the domain with an AWS managed customer master key \\(CMK\\) by default\\. For more control, specify a customer managed CMK\\. \n*Length Constraints*: Maximum length of 2048\\. \n*Pattern*: `.*` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The VPC subnets that Studio uses for communication\\. \n*Length Constraints*: Maximum length of 32\\. \n*Array members*: Minimum number of 1 item\\. Maximum number of 16 items\\. \n*Pattern*: `[-0-9a-zA-Z]+` \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SubnetIds", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Tags to associated with the Domain\\. Each tag consists of a key and an optional value\\. Tag keys must be unique per resource\\. Tags are searchable using the Search API\\. \nTags that you specify for the Domain are also added to all Apps that are launched in the Domain\\. \n*Array members*: Minimum number of 0 items\\. Maximum number of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "type": "array" + }, + "VpcId": { + "markdownDescription": "The ID of the Amazon Virtual Private Cloud \\(VPC\\) that Studio uses for communication\\. \n*Length Constraints*: Maximum length of 32\\. \n*Pattern*: `[-0-9a-zA-Z]+` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the AppImageConfig\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AppImageConfigName", + "type": "string" + }, + "ImageName": { + "markdownDescription": "The name of the CustomImage\\. Must be unique to your account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageName", + "type": "string" + }, + "ImageVersionNumber": { + "markdownDescription": "The version number of the CustomImage\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageVersionNumber", + "type": "number" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "AWS::SageMaker::Domain.DefaultSpaceSettings": { + "additionalProperties": false, + "properties": { + "ExecutionRole": { + "type": "string" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/AWS::SageMaker::Domain.JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/AWS::SageMaker::Domain.KernelGatewayAppSettings" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "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", + "markdownDescription": "The default instance type and the Amazon Resource Name \\(ARN\\) of the default SageMaker image used by the JupyterServer app\\. \n*Required*: No \n*Type*: [ResourceSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-resourcespec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultResourceSpec" + } + }, + "type": "object" + }, + "AWS::SageMaker::Domain.KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::Domain.CustomImage" + }, + "markdownDescription": "A list of custom SageMaker images that are configured to run as a KernelGateway app\\. \n*Required*: No \n*Type*: List of [CustomImage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-customimage.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomImages", + "type": "array" + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/AWS::SageMaker::Domain.ResourceSpec", + "markdownDescription": "The default instance type and the Amazon Resource Name \\(ARN\\) of the default SageMaker image used by the KernelGateway app\\. \nThe Amazon SageMaker Studio UI does not use the default instance type value set here\\. The default instance type set here is used when Apps are created using the AWS Command Line Interface or AWS CloudFormation and the instance type parameter value is not passed\\.\n*Required*: No \n*Type*: [ResourceSpec](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-resourcespec.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultResourceSpec" + } + }, + "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": { + "markdownDescription": "The instance type that the image version runs on\\. \nJupyterServer Apps only support the `system` value\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ml.c5.12xlarge | ml.c5.18xlarge | ml.c5.24xlarge | ml.c5.2xlarge | ml.c5.4xlarge | ml.c5.9xlarge | ml.c5.large | ml.c5.xlarge | ml.g4dn.12xlarge | ml.g4dn.16xlarge | ml.g4dn.2xlarge | ml.g4dn.4xlarge | ml.g4dn.8xlarge | ml.g4dn.xlarge | ml.m5.12xlarge | ml.m5.16xlarge | ml.m5.24xlarge | ml.m5.2xlarge | ml.m5.4xlarge | ml.m5.8xlarge | ml.m5.large | ml.m5.xlarge | ml.m5d.12xlarge | ml.m5d.16xlarge | ml.m5d.24xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.8xlarge | ml.m5d.large | ml.m5d.xlarge | ml.p3.16xlarge | ml.p3.2xlarge | ml.p3.8xlarge | ml.p3dn.24xlarge | ml.r5.12xlarge | ml.r5.16xlarge | ml.r5.24xlarge | ml.r5.2xlarge | ml.r5.4xlarge | ml.r5.8xlarge | ml.r5.large | ml.r5.xlarge | ml.t3.2xlarge | ml.t3.large | ml.t3.medium | ml.t3.micro | ml.t3.small | ml.t3.xlarge | system` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceType", + "type": "string" + }, + "LifecycleConfigArn": { + "type": "string" + }, + "SageMakerImageArn": { + "markdownDescription": "The ARN of the SageMaker image that the image version belongs to\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SageMakerImageArn", + "type": "string" + }, + "SageMakerImageVersionArn": { + "markdownDescription": "The ARN of the image version created on the instance\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SageMakerImageVersionArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::Domain.SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "markdownDescription": "Whether to include the notebook cell output when sharing the notebook\\. The default is `Disabled`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Allowed | Disabled` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotebookOutputOption", + "type": "string" + }, + "S3KmsKeyId": { + "markdownDescription": "When `NotebookOutputOption` is `Allowed`, the AWS Key Management Service \\(KMS\\) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3KmsKeyId", + "type": "string" + }, + "S3OutputPath": { + "markdownDescription": "When `NotebookOutputOption` is `Allowed`, the Amazon S3 bucket used to store the shared notebook snapshots\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^(https|s3)://([^/]+)/?(.*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3OutputPath", + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::Domain.UserSettings": { + "additionalProperties": false, + "properties": { + "ExecutionRole": { + "markdownDescription": "The execution role for the user\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionRole", + "type": "string" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/AWS::SageMaker::Domain.JupyterServerAppSettings", + "markdownDescription": "The Jupyter server's app settings\\. \n*Required*: No \n*Type*: [JupyterServerAppSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-jupyterserverappsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/AWS::SageMaker::Domain.KernelGatewayAppSettings", + "markdownDescription": "The kernel gateway app settings\\. \n*Required*: No \n*Type*: [KernelGatewayAppSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-kernelgatewayappsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KernelGatewayAppSettings" + }, + "RSessionAppSettings": { + "$ref": "#/definitions/AWS::SageMaker::Domain.RSessionAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/AWS::SageMaker::Domain.RStudioServerProAppSettings" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "markdownDescription": "The security groups for the Amazon Virtual Private Cloud \\(VPC\\) that Studio uses for communication\\. \nOptional when the `CreateDomain.AppNetworkAccessType` parameter is set to `PublicInternetOnly`\\. \nRequired when the `CreateDomain.AppNetworkAccessType` parameter is set to `VpcOnly`\\. \nAmazon SageMaker adds a security group to allow NFS traffic from SageMaker Studio\\. Therefore, the number of security groups that you can specify is one less than the maximum number shown\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroups", + "type": "array" + }, + "SharingSettings": { + "$ref": "#/definitions/AWS::SageMaker::Domain.SharingSettings", + "markdownDescription": "Specifies options for sharing SageMaker Studio notebooks\\. \n*Required*: No \n*Type*: [SharingSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-domain-sharingsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The deployment configuration for an endpoint, which contains the desired deployment strategy and rollback configurations\\. \n*Required*: No \n*Type*: [DeploymentConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-deploymentconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeploymentConfig" + }, + "EndpointConfigName": { + "markdownDescription": "The name of the [AWS::SageMaker::EndpointConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-endpointconfig.html) resource that specifies the configuration for the endpoint\\. For more information, see [CreateEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpointConfig.html)\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointConfigName", + "type": "string" + }, + "EndpointName": { + "markdownDescription": "The name of the endpoint\\.The name must be unique within an AWS Region in your AWS account\\. The name is case\\-insensitive in `CreateEndpoint`, but the case is preserved and must be matched in [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html)\\. \n*Required*: No \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EndpointName", + "type": "string" + }, + "ExcludeRetainedVariantProperties": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.VariantProperty" + }, + "markdownDescription": "When you are updating endpoint resources with [RetainAllVariantProperties](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpoint.html#SageMaker-UpdateEndpoint-request-RetainAllVariantProperties) whose value is set to `true`, `ExcludeRetainedVariantProperties` specifies the list of type [VariantProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-variantproperty.html) to override with the values provided by `EndpointConfig`\\. If you don't specify a value for `ExcludeAllVariantProperties`, no variant properties are overridden\\. Don't use this property when creating new endpoint resources or when `RetainAllVariantProperties` is set to `false`\\. \n*Required*: No \n*Type*: List of [VariantProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-variantproperty.html) \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludeRetainedVariantProperties", + "type": "array" + }, + "RetainAllVariantProperties": { + "markdownDescription": "When updating endpoint resources, enables or disables the retention of variant properties, such as the instance count or the variant weight\\. To retain the variant properties of an endpoint when updating it, set `RetainAllVariantProperties` to `true`\\. To use the variant properties specified in a new `EndpointConfig` call when updating an endpoint, set `RetainAllVariantProperties` to `false`\\. Use this property only when updating endpoint resources, not when creating new endpoint resources\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetainAllVariantProperties", + "type": "boolean" + }, + "RetainDeploymentConfig": { + "markdownDescription": "Specifies whether to reuse the last deployment configuration\\. The default value is false \\(the configuration is not reused\\)\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RetainDeploymentConfig", + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of key\\-value pairs to apply to this resource\\. \nFor more information, see [Resource Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) and [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what) in the * AWS Billing and Cost Management User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The name of a CloudWatch alarm in your account\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^(?!\\s*$).+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AlarmName", + "type": "string" + } + }, + "required": [ + "AlarmName" + ], + "type": "object" + }, + "AWS::SageMaker::Endpoint.AutoRollbackConfig": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.Alarm" + }, + "markdownDescription": "List of CloudWatch alarms in your account that are configured to monitor metrics on an endpoint\\. If any alarms are tripped during a deployment, SageMaker rolls back the deployment\\. \n*Required*: Yes \n*Type*: List of [Alarm](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-alarm.html) \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Alarms", + "type": "array" + } + }, + "required": [ + "Alarms" + ], + "type": "object" + }, + "AWS::SageMaker::Endpoint.BlueGreenUpdatePolicy": { + "additionalProperties": false, + "properties": { + "MaximumExecutionTimeoutInSeconds": { + "markdownDescription": "Maximum execution timeout for the deployment\\. Note that the timeout value should be larger than the total waiting time specified in `TerminationWaitInSeconds` and `WaitIntervalInSeconds`\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `600` \n*Maximum*: `14400` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumExecutionTimeoutInSeconds", + "type": "number" + }, + "TerminationWaitInSeconds": { + "markdownDescription": "Additional waiting time in seconds after the completion of an endpoint deployment before terminating the old endpoint fleet\\. Default is 0\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `3600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TerminationWaitInSeconds", + "type": "number" + }, + "TrafficRoutingConfiguration": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.TrafficRoutingConfig", + "markdownDescription": "Defines the traffic routing strategy to shift traffic from the old fleet to the new fleet during an endpoint deployment\\. \n*Required*: Yes \n*Type*: [TrafficRoutingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-trafficroutingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TrafficRoutingConfiguration" + } + }, + "required": [ + "TrafficRoutingConfiguration" + ], + "type": "object" + }, + "AWS::SageMaker::Endpoint.CapacitySize": { + "additionalProperties": false, + "properties": { + "Type": { + "markdownDescription": "Specifies the endpoint capacity type\\. \n+ `INSTANCE_COUNT`: The endpoint activates based on the number of instances\\.\n+ `CAPACITY_PERCENT`: The endpoint activates based on the specified percentage of capacity\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `CAPACITY_PERCENT | INSTANCE_COUNT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "Value": { + "markdownDescription": "Defines the capacity size, either as a number of instances or a capacity percentage\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "number" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::SageMaker::Endpoint.DeploymentConfig": { + "additionalProperties": false, + "properties": { + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.AutoRollbackConfig", + "markdownDescription": "Automatic rollback configuration for handling endpoint deployment failures and recovery\\. \n*Required*: No \n*Type*: [AutoRollbackConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-autorollbackconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AutoRollbackConfiguration" + }, + "BlueGreenUpdatePolicy": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.BlueGreenUpdatePolicy", + "markdownDescription": "Update policy for a blue/green deployment\\. If this update policy is specified, SageMaker creates a new fleet during the deployment while maintaining the old fleet\\. SageMaker flips traffic to the new fleet according to the specified traffic routing configuration\\. Only one update policy should be used in the deployment configuration\\. If no update policy is specified, SageMaker uses a blue/green deployment strategy with all at once traffic shifting by default\\. \n*Required*: Yes \n*Type*: [BlueGreenUpdatePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-bluegreenupdatepolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BlueGreenUpdatePolicy" + } + }, + "required": [ + "BlueGreenUpdatePolicy" + ], + "type": "object" + }, + "AWS::SageMaker::Endpoint.TrafficRoutingConfig": { + "additionalProperties": false, + "properties": { + "CanarySize": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize", + "markdownDescription": "Batch size for the first step to turn on traffic on the new endpoint fleet\\. `Value` must be less than or equal to 50% of the variant's total instance count\\. \n*Required*: No \n*Type*: [CapacitySize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-capacitysize.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CanarySize" + }, + "LinearStepSize": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize", + "markdownDescription": "Batch size for each step to turn on traffic on the new endpoint fleet\\. `Value` must be 10\\-50% of the variant's total instance count\\. \n*Required*: No \n*Type*: [CapacitySize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-capacitysize.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LinearStepSize" + }, + "Type": { + "markdownDescription": "Traffic routing strategy type\\. \n+ `ALL_AT_ONCE`: Endpoint traffic shifts to the new fleet in a single step\\. \n+ `CANARY`: Endpoint traffic shifts to the new fleet in two steps\\. The first step is the canary, which is a small portion of the traffic\\. The second step is the remainder of the traffic\\. \n+ `LINEAR`: Endpoint traffic shifts to the new fleet in n steps of a configurable size\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_AT_ONCE | CANARY | LINEAR` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "WaitIntervalInSeconds": { + "markdownDescription": "The waiting time \\(in seconds\\) between incremental steps to turn on traffic on the new endpoint fleet\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `3600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "WaitIntervalInSeconds", + "type": "number" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::SageMaker::Endpoint.VariantProperty": { + "additionalProperties": false, + "properties": { + "VariantPropertyType": { + "markdownDescription": "The type of variant property\\. The supported values are: \n+ `DesiredInstanceCount`: Overrides the existing variant instance counts using the [InitialInstanceCount](https://docs.aws.amazon.com/sagemaker/latest/dg/API_ProductionVariant.html#SageMaker-Type-ProductionVariant-InitialInstanceCount) values in the [ProductionVariants](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpointConfig.html#SageMaker-CreateEndpointConfig-request-ProductionVariants)\\.\n+ `DesiredWeight`: Overrides the existing variant weights using the [InitialVariantWeight](https://docs.aws.amazon.com/sagemaker/latest/dg/API_ProductionVariant.html#SageMaker-Type-ProductionVariant-InitialVariantWeight) values in the [ProductionVariants](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpointConfig.html#SageMaker-CreateEndpointConfig-request-ProductionVariants)\\.\n+ `DataCaptureConfig`: \\(Not currently supported\\.\\)\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Specifies configuration for how an endpoint performs asynchronous inference\\. \n*Required*: No \n*Type*: [AsyncInferenceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferenceconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AsyncInferenceConfig" + }, + "DataCaptureConfig": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.DataCaptureConfig", + "markdownDescription": "Specifies how to capture endpoint data for model monitor\\. The data capture configuration applies to all production variants hosted at the endpoint\\. \n*Required*: No \n*Type*: [DataCaptureConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-datacaptureconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DataCaptureConfig" + }, + "EndpointConfigName": { + "markdownDescription": "The name of the endpoint configuration\\. \n*Required*: No \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EndpointConfigName", + "type": "string" + }, + "ExplainerConfig": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ExplainerConfig" + }, + "KmsKeyId": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS Key Management Service key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance that hosts the endpoint\\. \n+ Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`\n+ Key ARN: `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`\n+ Alias name: `alias/ExampleAlias`\n+ Alias name ARN: `arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias`\nThe KMS key policy must grant permission to the IAM role that you specify in your `CreateEndpoint`, `UpdateEndpoint` requests\\. For more information, refer to the AWS Key Management Service section [Using Key Policies in AWS KMS ](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) \nCertain Nitro\\-based instances include local storage, dependent on the instance type\\. Local storage volumes are encrypted using a hardware module on the instance\\. You can't request a `KmsKeyId` when using an instance type with local storage\\. If any of the models that you specify in the `ProductionVariants` parameter use nitro\\-based instances with local storage, do not specify a value for the `KmsKeyId` parameter\\. If you specify a value for `KmsKeyId` when using any nitro\\-based instances with local storage, the call to `CreateEndpointConfig` fails\\. \nFor a list of instance types that support local instance storage, see [Instance Store Volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#instance-store-volumes)\\. \nFor more information about local instance storage encryption, see [SSD Instance Store Volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html)\\.\n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + }, + "ProductionVariants": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ProductionVariant" + }, + "markdownDescription": "A list of `ProductionVariant` objects, one for each model that you want to host at this endpoint\\. \n*Required*: Yes \n*Type*: List of [ProductionVariant](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-productionvariant.html) \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProductionVariants", + "type": "array" + }, + "ShadowProductionVariants": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ProductionVariant" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of key\\-value pairs to apply to this resource\\. \nFor more information, see [Resource Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) and [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The maximum number of concurrent requests sent by the SageMaker client to the model container\\. If no value is provided, SageMaker will choose an optimal value for you\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaxConcurrentInvocationsPerInstance", + "type": "number" + } + }, + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.AsyncInferenceConfig": { + "additionalProperties": false, + "properties": { + "ClientConfig": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.AsyncInferenceClientConfig", + "markdownDescription": "Configures the behavior of the client used by SageMaker to interact with the model container during asynchronous inference\\. \n*Required*: No \n*Type*: [AsyncInferenceClientConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferenceclientconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientConfig" + }, + "OutputConfig": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.AsyncInferenceOutputConfig", + "markdownDescription": "Specifies the configuration for asynchronous inference invocation outputs\\. \n*Required*: Yes \n*Type*: [AsyncInferenceOutputConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferenceoutputconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OutputConfig" + } + }, + "required": [ + "OutputConfig" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.AsyncInferenceNotificationConfig": { + "additionalProperties": false, + "properties": { + "ErrorTopic": { + "markdownDescription": "Amazon SNS topic to post a notification to when an inference fails\\. If no topic is provided, no notification is sent on failure\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ErrorTopic", + "type": "string" + }, + "SuccessTopic": { + "markdownDescription": "Amazon SNS topic to post a notification to when an inference completes successfully\\. If no topic is provided, no notification is sent on success\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SuccessTopic", + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.AsyncInferenceOutputConfig": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "markdownDescription": "The AWS Key Management Service \\(AWS KMS\\) key that Amazon SageMaker uses to encrypt the asynchronous inference output in Amazon S3\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + }, + "NotificationConfig": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.AsyncInferenceNotificationConfig", + "markdownDescription": "Specifies the configuration for notifications of inference results for asynchronous inference\\. \n*Required*: No \n*Type*: [AsyncInferenceNotificationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferencenotificationconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NotificationConfig" + }, + "S3OutputPath": { + "markdownDescription": "The Amazon S3 location to upload inference responses to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3OutputPath", + "type": "string" + } + }, + "required": [ + "S3OutputPath" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader": { + "additionalProperties": false, + "properties": { + "CsvContentTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of the CSV content types of the data that the endpoint captures\\. For the endpoint to capture the data, you must also specify the content type when you invoke the endpoint\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CsvContentTypes", + "type": "array" + }, + "JsonContentTypes": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of the JSON content types of the data that the endpoint captures\\. For the endpoint to capture the data, you must also specify the content type when you invoke the endpoint\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `10` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "JsonContentTypes", + "type": "array" + } + }, + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.CaptureOption": { + "additionalProperties": false, + "properties": { + "CaptureMode": { + "markdownDescription": "Specifies whether the endpoint captures input data or output data\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Input | Output` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "A list of the JSON and CSV content type that the endpoint captures\\. \n*Required*: No \n*Type*: [CaptureContentTypeHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-datacaptureconfig-capturecontenttypeheader.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CaptureContentTypeHeader" + }, + "CaptureOptions": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureOption" + }, + "markdownDescription": "Specifies whether the endpoint captures input data to your model, output data from your model, or both\\. \n*Required*: Yes \n*Type*: List of [CaptureOption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-captureoption.html) \n*Maximum*: `2` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CaptureOptions", + "type": "array" + }, + "DestinationS3Uri": { + "markdownDescription": "The S3 bucket where model monitor stores captured data\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `^(https|s3)://([^/])/?(.*)$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DestinationS3Uri", + "type": "string" + }, + "EnableCapture": { + "markdownDescription": "Set to `True` to enable data capture\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnableCapture", + "type": "boolean" + }, + "InitialSamplingPercentage": { + "markdownDescription": "The percentage of data to capture\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitialSamplingPercentage", + "type": "number" + }, + "KmsKeyId": { + "markdownDescription": "The AWS Key Management Service \\(AWS KMS\\) key that Amazon SageMaker uses to encrypt the captured data at rest using Amazon S3 server\\-side encryption\\. The KmsKeyId can be any of the following formats: Key ID: 1234abcd\\-12ab\\-34cd\\-56ef\\-1234567890ab Key ARN: arn:aws:kms:us\\-west\\-2:111122223333:key/1234abcd\\-12ab\\-34cd\\-56ef\\-1234567890ab Alias name: alias/ExampleAlias Alias name ARN: arn:aws:kms:us\\-west\\-2:111122223333:alias/ExampleAlias If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account\\. For more information, see KMS\\-Managed Encryption Keys \\(https://docs\\.aws\\.amazon\\.com/AmazonS3/latest/dev/UsingKMSEncryption\\.html\\) in the Amazon Simple Storage Service Developer Guide\\. The KMS key policy must grant permission to the IAM role that you specify in your CreateModel \\(https://docs\\.aws\\.amazon\\.com/sagemaker/latest/APIReference/API\\_CreateModel\\.html\\) request\\. For more information, see Using Key Policies in AWS KMS \\(http://docs\\.aws\\.amazon\\.com/kms/latest/developerguide/key\\-policies\\.html\\) in the AWS Key Management Service Developer Guide\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + } + }, + "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": { + "markdownDescription": "The size of the Elastic Inference \\(EI\\) instance to use for the production variant\\. EI instances provide on\\-demand GPU computing for inference\\. For more information, see [Using Elastic Inference in Amazon SageMaker](https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html)\\. For more information, see [Using Elastic Inference in Amazon SageMaker](https://docs.aws.amazon.com/sagemaker/latest/dg/ei.html)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ml.eia1.large | ml.eia1.medium | ml.eia1.xlarge | ml.eia2.large | ml.eia2.medium | ml.eia2.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceleratorType", + "type": "string" + }, + "ContainerStartupHealthCheckTimeoutInSeconds": { + "type": "number" + }, + "InitialInstanceCount": { + "markdownDescription": "Number of instances to launch initially\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitialInstanceCount", + "type": "number" + }, + "InitialVariantWeight": { + "markdownDescription": "Determines initial traffic distribution among all of the models that you specify in the endpoint configuration\\. The traffic to a production variant is determined by the ratio of the `VariantWeight` to the sum of all `VariantWeight` values across all ProductionVariants\\. If unspecified, it defaults to 1\\.0\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InitialVariantWeight", + "type": "number" + }, + "InstanceType": { + "markdownDescription": "The ML compute instance type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ml.c4.2xlarge | ml.c4.4xlarge | ml.c4.8xlarge | ml.c4.large | ml.c4.xlarge | ml.c5.18xlarge | ml.c5.2xlarge | ml.c5.4xlarge | ml.c5.9xlarge | ml.c5.large | ml.c5.xlarge | ml.c5d.18xlarge | ml.c5d.2xlarge | ml.c5d.4xlarge | ml.c5d.9xlarge | ml.c5d.large | ml.c5d.xlarge | ml.g4dn.12xlarge | ml.g4dn.16xlarge | ml.g4dn.2xlarge | ml.g4dn.4xlarge | ml.g4dn.8xlarge | ml.g4dn.xlarge | ml.inf1.24xlarge | ml.inf1.2xlarge | ml.inf1.6xlarge | ml.inf1.xlarge | ml.m4.10xlarge | ml.m4.16xlarge | ml.m4.2xlarge | ml.m4.4xlarge | ml.m4.xlarge | ml.m5.12xlarge | ml.m5.24xlarge | ml.m5.2xlarge | ml.m5.4xlarge | ml.m5.large | ml.m5.xlarge | ml.m5d.12xlarge | ml.m5d.24xlarge | ml.m5d.2xlarge | ml.m5d.4xlarge | ml.m5d.large | ml.m5d.xlarge | ml.p2.16xlarge | ml.p2.8xlarge | ml.p2.xlarge | ml.p3.16xlarge | ml.p3.2xlarge | ml.p3.8xlarge | ml.r5.12xlarge | ml.r5.24xlarge | ml.r5.2xlarge | ml.r5.4xlarge | ml.r5.large | ml.r5.xlarge | ml.r5d.12xlarge | ml.r5d.24xlarge | ml.r5d.2xlarge | ml.r5d.4xlarge | ml.r5d.large | ml.r5d.xlarge | ml.t2.2xlarge | ml.t2.large | ml.t2.medium | ml.t2.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceType", + "type": "string" + }, + "ModelDataDownloadTimeoutInSeconds": { + "type": "number" + }, + "ModelName": { + "markdownDescription": "The name of the model that you want to host\\. This is the name that you specified when creating the model\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9])*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ModelName", + "type": "string" + }, + "ServerlessConfig": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ServerlessConfig", + "markdownDescription": "The serverless configuration for an endpoint\\. Specifies a serverless endpoint configuration instead of an instance\\-based endpoint configuration\\. \nServerless Inference is in preview release for Amazon SageMaker and is subject to change\\. We do not recommend using this feature in production environments\\.\n*Required*: No \n*Type*: [ServerlessConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-productionvariant-serverlessconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServerlessConfig" + }, + "VariantName": { + "markdownDescription": "The name of the production variant\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VariantName", + "type": "string" + }, + "VolumeSizeInGB": { + "type": "number" + } + }, + "required": [ + "InitialVariantWeight", + "ModelName", + "VariantName" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.ServerlessConfig": { + "additionalProperties": false, + "properties": { + "MaxConcurrency": { + "markdownDescription": "The maximum number of concurrent invocations your serverless endpoint can process\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MaxConcurrency", + "type": "number" + }, + "MemorySizeInMB": { + "markdownDescription": "The memory size of your serverless endpoint\\. Valid values are in 1 GB increments: 1024 MB, 2048 MB, 3072 MB, 4096 MB, 5120 MB, or 6144 MB\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `1024` \n*Maximum*: `6144` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A free form description of a `FeatureGroup`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "EventTimeFeatureName": { + "markdownDescription": "The name of the feature that stores the `EventTime` of a Record in a `FeatureGroup`\\. \nA `EventTime` is point in time when a new event occurs that corresponds to the creation or update of a `Record` in `FeatureGroup`\\. All `Records` in the `FeatureGroup` must have a corresponding `EventTime`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9]([-_]*[a-zA-Z0-9]){0,63}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EventTimeFeatureName", + "type": "string" + }, + "FeatureDefinitions": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.FeatureDefinition" + }, + "markdownDescription": "A list of `Feature`s\\. Each `Feature` must include a `FeatureName` and a `FeatureType`\\. \nValid `FeatureType`s are `Integral`, `Fractional` and `String`\\. \n `FeatureName`s cannot be any of the following: `is_deleted`, `write_time`, `api_invocation_time`\\. \nYou can create up to 2,500 `FeatureDefinition`s per `FeatureGroup`\\. \n*Required*: Yes \n*Type*: List of [FeatureDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-featuregroup-featuredefinition.html) \n*Maximum*: `2500` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FeatureDefinitions", + "type": "array" + }, + "FeatureGroupName": { + "markdownDescription": "The name of the `FeatureGroup`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,63}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FeatureGroupName", + "type": "string" + }, + "OfflineStoreConfig": { + "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.OfflineStoreConfig", + "markdownDescription": "The configuration of an `OfflineStore`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OfflineStoreConfig" + }, + "OnlineStoreConfig": { + "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.OnlineStoreConfig", + "markdownDescription": "The configuration of an `OnlineStore`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OnlineStoreConfig" + }, + "RecordIdentifierFeatureName": { + "markdownDescription": "The name of the `Feature` whose value uniquely identifies a `Record` defined in the `FeatureGroup` `FeatureDefinitions`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9]([-_]*[a-zA-Z0-9]){0,63}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RecordIdentifierFeatureName", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM execution role used to create the feature group\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RoleArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Tags used to define a `FeatureGroup`\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "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": { + "markdownDescription": "The name of a feature\\. The type must be a string\\. `FeatureName` cannot be any of the following: `is_deleted`, `write_time`, `api_invocation_time`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9]([-_]*[a-zA-Z0-9]){0,63}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "FeatureName", + "type": "string" + }, + "FeatureType": { + "markdownDescription": "The value type of a feature\\. Valid values are Integral, Fractional, or String\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Fractional | Integral | String` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The description of the image\\. \n*Length Constraints*: Minimum length of 1\\. Maximum length of 512\\. \n*Pattern*: `.*` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageDescription", + "type": "string" + }, + "ImageDisplayName": { + "markdownDescription": "The display name of the image\\. \n*Length Constraints*: Minimum length of 1\\. Maximum length of 128\\. \n*Pattern*: `^\\S(.*\\S)?$` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageDisplayName", + "type": "string" + }, + "ImageName": { + "markdownDescription": "The name of the Image\\. Must be unique by region in your account\\. \n*Length Constraints*: Minimum length of 1\\. Maximum length of 63\\. \n*Pattern*: `^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageName", + "type": "string" + }, + "ImageRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an IAM role that enables Amazon SageMaker to perform tasks on your behalf\\. \n*Length Constraints*: Minimum length of 20\\. Maximum length of 2048\\. \n*Pattern*: `^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImageRoleArn", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of key\\-value pairs to apply to this resource\\. \n*Array Members*: Minimum number of 0 items\\. Maximum number of 50 items\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The container image that the SageMaker image version is based on\\. \n*Length Constraints*: Minimum length of 1\\. Maximum length of 255\\. \n*Pattern*: `.*` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BaseImage", + "type": "string" + }, + "ImageName": { + "markdownDescription": "The name of the parent image\\. \n*Length Constraints*: Minimum length of 1\\. Maximum length of 63\\. \n*Pattern*: `^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$` \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "Specifies the containers in the inference pipeline\\. \n*Required*: No \n*Type*: List of [ContainerDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition.html) \n*Maximum*: `15` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Containers", + "type": "array" + }, + "EnableNetworkIsolation": { + "markdownDescription": "Isolates the model container\\. No inbound or outbound network calls can be made to or from the model container\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EnableNetworkIsolation", + "type": "boolean" + }, + "ExecutionRoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role that SageMaker can assume to access model artifacts and docker image for deployment on ML compute instances or for batch transform jobs\\. Deploying on ML compute instances is part of model hosting\\. For more information, see [SageMaker Roles](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html)\\. \nTo be able to pass this role to SageMaker, the caller of this API must have the `iam:PassRole` permission\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ExecutionRoleArn", + "type": "string" + }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.InferenceExecutionConfig", + "markdownDescription": "Specifies details of how containers in a multi\\-container endpoint are called\\. \n*Required*: No \n*Type*: [InferenceExecutionConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-inferenceexecutionconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InferenceExecutionConfig" + }, + "ModelName": { + "markdownDescription": "The name of the new model\\. \n*Required*: No \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9])*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ModelName", + "type": "string" + }, + "PrimaryContainer": { + "$ref": "#/definitions/AWS::SageMaker::Model.ContainerDefinition", + "markdownDescription": "The location of the primary docker image containing inference code, associated artifacts, and custom environment map that the inference code uses when the model is deployed for predictions\\. \n*Required*: No \n*Type*: [ContainerDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrimaryContainer" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of key\\-value pairs to apply to this resource\\. \nFor more information, see [Resource Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) and [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html#allocation-what) in the *AWS Billing and Cost Management User Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.VpcConfig", + "markdownDescription": "A [VpcConfig](https://docs.aws.amazon.com/sagemaker/latest/dg/API_VpcConfig.html) object that specifies the VPC that you want your model to connect to\\. Control access to and from your model container by configuring the VPC\\. `VpcConfig` is used in hosting services and in batch transform\\. For more information, see [Protect Endpoints by Using an Amazon Virtual Private Cloud](https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html) and [Protect Data in Batch Transform Jobs by Using an Amazon Virtual Private Cloud](https://docs.aws.amazon.com/sagemaker/latest/dg/batch-vpc.html)\\. \n*Required*: No \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-vpcconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "This parameter is ignored for models that contain only a `PrimaryContainer`\\. \nWhen a `ContainerDefinition` is part of an inference pipeline, the value of the parameter uniquely identifies the container for the purposes of logging and metrics\\. For information, see [Use Logs and Metrics to Monitor an Inference Pipeline](https://docs.aws.amazon.com/sagemaker/latest/dg/inference-pipeline-logs-metrics.html)\\. If you don't specify a value for this parameter for a `ContainerDefinition` that is part of an inference pipeline, a unique name is automatically assigned based on the position of the `ContainerDefinition` in the pipeline\\. If you specify a value for the `ContainerHostName` for any `ContainerDefinition` that is part of an inference pipeline, you must specify a value for the `ContainerHostName` parameter of every `ContainerDefinition` in that pipeline\\. \n*Required*: No \n*Type*: String \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ContainerHostname", + "type": "string" + }, + "Environment": { + "markdownDescription": "The environment variables to set in the Docker container\\. Each key and value in the `Environment` string to string map can have length of up to 1024\\. We support up to 16 entries in the map\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Environment", + "type": "object" + }, + "Image": { + "markdownDescription": "The path where inference code is stored\\. This can be either in Amazon EC2 Container Registry or in a Docker registry that is accessible from the same VPC that you configure for your endpoint\\. If you are using your own custom algorithm instead of an algorithm provided by SageMaker, the inference code must meet SageMaker requirements\\. SageMaker supports both `registry/repository[:tag]` and `registry/repository[@digest]` image path formats\\. For more information, see [Using Your Own Algorithms with Amazon SageMaker](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html) \n*Required*: No \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `[\\S]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Image", + "type": "string" + }, + "ImageConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.ImageConfig", + "markdownDescription": "Specifies whether the model container is in Amazon ECR or a private Docker registry accessible from your Amazon Virtual Private Cloud \\(VPC\\)\\. For information about storing containers in a private Docker registry, see [Use a Private Docker Registry for Real\\-Time Inference Containers](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-containers-inference-private.html) \n*Required*: No \n*Type*: [ImageConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition-imageconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ImageConfig" + }, + "InferenceSpecificationName": { + "markdownDescription": "The inference specification name in the model package version\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InferenceSpecificationName", + "type": "string" + }, + "Mode": { + "markdownDescription": "Whether the container hosts a single model or multiple models\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `MultiModel | SingleModel` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Mode", + "type": "string" + }, + "ModelDataUrl": { + "markdownDescription": "The S3 path where the model artifacts, which result from model training, are stored\\. This path must point to a single gzip compressed tar archive \\(\\.tar\\.gz suffix\\)\\. The S3 path is required for SageMaker built\\-in algorithms, but not if you use your own algorithms\\. For more information on built\\-in algorithms, see [Common Parameters](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html)\\. \nThe model artifacts must be in an S3 bucket that is in the same region as the model or endpoint you are creating\\.\nIf you provide a value for this parameter, SageMaker uses AWS Security Token Service to download model artifacts from the S3 path you provide\\. AWS STS is activated in your IAM user account by default\\. If you previously deactivated AWS STS for a region, you need to reactivate AWS STS for that region\\. For more information, see [Activating and Deactivating AWS STS in an AWS Region](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) in the * AWS Identity and Access Management User Guide*\\. \nIf you use a built\\-in algorithm to create a model, SageMaker requires that you provide a S3 path to the model artifacts in `ModelDataUrl`\\.\n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^(https|s3)://([^/]+)/?(.*)$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ModelDataUrl", + "type": "string" + }, + "ModelPackageName": { + "markdownDescription": "The name or Amazon Resource Name \\(ARN\\) of the model package to use to create the model\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `176` \n*Pattern*: `(arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:[a-z\\-]*\\/)?([a-zA-Z0-9]([a-zA-Z0-9-]){0,62})(? ? @ [ \\ ] ^ _ ` { | } ~`\\. If you don't include this switch, the password can contain punctuation\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludePunctuation", + "type": "boolean" + }, + "ExcludeUppercase": { + "markdownDescription": "Specifies whether to exclude uppercase letters from the password\\. If you don't include this switch, the password can contain uppercase letters\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludeUppercase", + "type": "boolean" + }, + "GenerateStringKey": { + "markdownDescription": "The JSON key name for the key/value pair, where the value is the generated password\\. This pair is added to the JSON structure specified by the `SecretStringTemplate` parameter\\. If you specify this parameter, then you must also specify `SecretStringTemplate`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GenerateStringKey", + "type": "string" + }, + "IncludeSpace": { + "markdownDescription": "Specifies whether to include the space character\\. If you include this switch, the password can contain space characters\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeSpace", + "type": "boolean" + }, + "PasswordLength": { + "markdownDescription": "The length of the password\\. If you don't include this parameter, the default length is 32 characters\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PasswordLength", + "type": "number" + }, + "RequireEachIncludedType": { + "markdownDescription": "Specifies whether to include at least one upper and lowercase letter, one number, and one punctuation\\. If you don't include this switch, the password contains at least one of every character type\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequireEachIncludedType", + "type": "boolean" + }, + "SecretStringTemplate": { + "markdownDescription": "A template that the generated string must match\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretStringTemplate", + "type": "string" + } + }, + "type": "object" + }, + "AWS::SecretsManager::Secret.ReplicaRegion": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "markdownDescription": "The ARN, key ID, or alias of the KMS key to encrypt the secret\\. If you don't include this field, Secrets Manager uses `aws/secretsmanager`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", + "type": "string" + }, + "Region": { + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ARN or name of the secret\\. To reference a secret also created in this template, use the see [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) function with the secret's logical ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecretId", + "type": "string" + }, + "TargetId": { + "markdownDescription": "The ID of the database or cluster\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetId", + "type": "string" + }, + "TargetType": { + "markdownDescription": "A string that defines the type of service or database associated with the secret\\. This value instructs Secrets Manager how to update the secret with the details of the service or database\\. This value must be one of the following: \n+ AWS::RDS::DBInstance\n+ AWS::RDS::DBCluster\n+ AWS::Redshift::Cluster\n+ AWS::DocDB::DBInstance\n+ AWS::DocDB::DBCluster\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The tags to add to the hub resource\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceptLanguage", + "type": "string" + }, + "PortfolioId": { + "markdownDescription": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptLanguage", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the product\\. \n*Required*: No \n*Type*: String \n*Maximum*: `8191` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Distributor": { + "markdownDescription": "The distributor of the product\\. \n*Required*: No \n*Type*: String \n*Maximum*: `8191` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Distributor", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the product\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `8191` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Owner": { + "markdownDescription": "The owner of the product\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `8191` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Owner", + "type": "string" + }, + "ProvisioningArtifactParameters": { + "items": { + "$ref": "#/definitions/AWS::ServiceCatalog::CloudFormationProduct.ProvisioningArtifactProperties" + }, + "markdownDescription": "The configuration of the provisioning artifact \\(also known as a version\\)\\. \n*Required*: Yes \n*Type*: List of [ProvisioningArtifactProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationproduct-provisioningartifactproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisioningArtifactParameters", + "type": "array" + }, + "ReplaceProvisioningArtifacts": { + "markdownDescription": "This property is turned off by default\\. If turned off, you can update provisioning artifacts or product attributes \\(such as description, distributor, name, owner, and more\\) and the associated provisioning artifacts will retain the same unique identifier\\. Provisioning artifacts are matched within the CloudFormationProduct resource, and only those that have been updated will be changed\\. Provisioning artifacts are matched by a combinaton of provisioning artifact template URL and name\\. \nIf turned on, provisioning artifacts will be given a new unique identifier when you update the product or provisioning artifacts\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReplaceProvisioningArtifacts", + "type": "boolean" + }, + "SupportDescription": { + "markdownDescription": "The support information about the product\\. \n*Required*: No \n*Type*: String \n*Maximum*: `8191` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SupportDescription", + "type": "string" + }, + "SupportEmail": { + "markdownDescription": "The contact email for product support\\. \n*Required*: No \n*Type*: String \n*Maximum*: `254` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SupportEmail", + "type": "string" + }, + "SupportUrl": { + "markdownDescription": "The contact URL for product support\\. \n `^https?:\\/\\// `/ is the pattern used to validate SupportUrl\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2083` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SupportUrl", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "One or more tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The description of the provisioning artifact, including how it differs from the previous provisioning artifact\\. \n*Required*: No \n*Type*: String \n*Maximum*: `8192` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DisableTemplateValidation": { + "markdownDescription": "If set to true, AWS Service Catalog stops validating the specified provisioning artifact even if it is invalid\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisableTemplateValidation", + "type": "boolean" + }, + "Info": { + "markdownDescription": "Specify the template source with one of the following options, but not both\\. Keys accepted: \\[ `LoadTemplateFromURL`, `ImportFromPhysicalId` \\] \nThe URL of the AWS CloudFormation template in Amazon S3, AWS CodeCommit, or GitHub in JSON format\\. Specify the URL in JSON format as follows: \n `\"LoadTemplateFromURL\": \"https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/...\"` \n `ImportFromPhysicalId`: The physical id of the resource that contains the template\\. Currently only supports AWS CloudFormation stack arn\\. Specify the physical id in JSON format as follows: `ImportFromPhysicalId: \u201carn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId]` \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Info", + "type": "object" + }, + "Name": { + "markdownDescription": "The name of the provisioning artifact \\(for example, v1 v2beta\\)\\. No spaces are allowed\\. \n*Required*: No \n*Type*: String \n*Maximum*: `8192` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "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": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptLanguage", + "type": "string" + }, + "NotificationArns": { + "items": { + "type": "string" + }, + "markdownDescription": "Passed to AWS CloudFormation\\. The SNS topic ARNs to which to publish stack\\-related events\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NotificationArns", + "type": "array" + }, + "PathId": { + "markdownDescription": "The path identifier of the product\\. This value is optional if the product has a default path, and required if the product has more than one path\\. To list the paths for a product, use [ListLaunchPaths](https://docs.aws.amazon.com/servicecatalog/latest/dg/API_ListLaunchPaths.html)\\. \nYou must provide the name or ID, but not both\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PathId", + "type": "string" + }, + "PathName": { + "markdownDescription": "The name of the path\\. This value is optional if the product has a default path, and required if the product has more than one path\\. To list the paths for a product, use [ListLaunchPaths](https://docs.aws.amazon.com/servicecatalog/latest/dg/API_ListLaunchPaths.html)\\. \nYou must provide the name or ID, but not both\\.\n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PathName", + "type": "string" + }, + "ProductId": { + "markdownDescription": "The product identifier\\. \nYou must specify either the ID or the name of the product, but not both\\.\n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProductId", + "type": "string" + }, + "ProductName": { + "markdownDescription": "A user\\-friendly name for the provisioned product\\. This value must be unique for the AWS account and cannot be updated after the product is provisioned\\. \nEach time a stack is created or updated, if `ProductName` is provided it will successfully resolve to `ProductId` as long as only one product exists in the account or Region with that `ProductName`\\. \nYou must specify either the name or the ID of the product, but not both\\.\n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9][a-zA-Z0-9._-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProductName", + "type": "string" + }, + "ProvisionedProductName": { + "markdownDescription": "A user\\-friendly name for the provisioned product\\. This value must be unique for the AWS account and cannot be updated after the product is provisioned\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `[a-zA-Z0-9][a-zA-Z0-9._-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProvisionedProductName", + "type": "string" + }, + "ProvisioningArtifactId": { + "markdownDescription": "The identifier of the provisioning artifact \\(also known as a version\\)\\. \nYou must specify either the ID or the name of the provisioning artifact, but not both\\.\n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisioningArtifactId", + "type": "string" + }, + "ProvisioningArtifactName": { + "markdownDescription": "The name of the provisioning artifact \\(also known as a version\\) for the product\\. This name must be unique for the product\\. \n You must specify either the name or the ID of the provisioning artifact, but not both\\. You must also specify either the name or the ID of the product, but not both\\.\n*Required*: Conditional \n*Type*: String \n*Maximum*: `8192` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisioningArtifactName", + "type": "string" + }, + "ProvisioningParameters": { + "items": { + "$ref": "#/definitions/AWS::ServiceCatalog::CloudFormationProvisionedProduct.ProvisioningParameter" + }, + "markdownDescription": "Parameters specified by the administrator that are required for provisioning the product\\. \n*Required*: No \n*Type*: List of [ProvisioningParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisioningParameters", + "type": "array" + }, + "ProvisioningPreferences": { + "$ref": "#/definitions/AWS::ServiceCatalog::CloudFormationProvisionedProduct.ProvisioningPreferences", + "markdownDescription": "StackSet preferences that are required for provisioning the product or updating a provisioned product\\. \n*Required*: No \n*Type*: [ProvisioningPreferences](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProvisioningPreferences" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "One or more tags\\. \nRequires the provisioned product to have an [ResourceUpdateConstraint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-resourceupdateconstraint.html) resource with `TagUpdatesOnProvisionedProduct` set to `ALLOWED` to allow tag updates\\. If `RESOURCE_UPDATE` constraint is not present, tags updates are ignored\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The parameter key\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The parameter value\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::ServiceCatalog::CloudFormationProvisionedProduct.ProvisioningPreferences": { + "additionalProperties": false, + "properties": { + "StackSetAccounts": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more AWS accounts where the provisioned product will be available\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nThe specified accounts should be within the list of accounts from the `STACKSET` constraint\\. To get the list of accounts in the `STACKSET` constraint, use the `DescribeProvisioningParameters` operation\\. \nIf no values are specified, the default value is all acounts from the `STACKSET` constraint\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StackSetAccounts", + "type": "array" + }, + "StackSetFailureToleranceCount": { + "markdownDescription": "The number of accounts, per Region, for which this operation can fail before AWS Service Catalog stops the operation in that Region\\. If the operation is stopped in a Region, AWS Service Catalog doesn't attempt the operation in any subsequent Regions\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nConditional: You must specify either `StackSetFailureToleranceCount` or `StackSetFailureTolerancePercentage`, but not both\\. \nThe default value is `0` if no value is specified\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StackSetFailureToleranceCount", + "type": "number" + }, + "StackSetFailureTolerancePercentage": { + "markdownDescription": "The percentage of accounts, per Region, for which this stack operation can fail before AWS Service Catalog stops the operation in that Region\\. If the operation is stopped in a Region, AWS Service Catalog doesn't attempt the operation in any subsequent Regions\\. \nWhen calculating the number of accounts based on the specified percentage, AWS Service Catalog rounds down to the next whole number\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nConditional: You must specify either `StackSetFailureToleranceCount` or `StackSetFailureTolerancePercentage`, but not both\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StackSetFailureTolerancePercentage", + "type": "number" + }, + "StackSetMaxConcurrencyCount": { + "markdownDescription": "The maximum number of accounts in which to perform this operation at one time\\. This is dependent on the value of `StackSetFailureToleranceCount`\\. `StackSetMaxConcurrentCount` is at most one more than the `StackSetFailureToleranceCount`\\. \nNote that this setting lets you specify the maximum for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nConditional: You must specify either `StackSetMaxConcurrentCount` or `StackSetMaxConcurrentPercentage`, but not both\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StackSetMaxConcurrencyCount", + "type": "number" + }, + "StackSetMaxConcurrencyPercentage": { + "markdownDescription": "The maximum percentage of accounts in which to perform this operation at one time\\. \nWhen calculating the number of accounts based on the specified percentage, AWS Service Catalog rounds down to the next whole number\\. This is true except in cases where rounding down would result is zero\\. In this case, AWS Service Catalog sets the number as `1` instead\\. \nNote that this setting lets you specify the maximum for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nConditional: You must specify either `StackSetMaxConcurrentCount` or `StackSetMaxConcurrentPercentage`, but not both\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StackSetMaxConcurrencyPercentage", + "type": "number" + }, + "StackSetOperationType": { + "markdownDescription": "Determines what action AWS Service Catalog performs to a stack set or a stack instance represented by the provisioned product\\. The default value is `UPDATE` if nothing is specified\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nCREATE \nCreates a new stack instance in the stack set represented by the provisioned product\\. In this case, only new stack instances are created based on accounts and Regions; if new ProductId or ProvisioningArtifactID are passed, they will be ignored\\. \nUPDATE \nUpdates the stack set represented by the provisioned product and also its stack instances\\. \nDELETE \nDeletes a stack instance in the stack set represented by the provisioned product\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `CREATE | DELETE | UPDATE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StackSetOperationType", + "type": "string" + }, + "StackSetRegions": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more AWS Regions where the provisioned product will be available\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nThe specified Regions should be within the list of Regions from the `STACKSET` constraint\\. To get the list of Regions in the `STACKSET` constraint, use the `DescribeProvisioningParameters` operation\\. \nIf no values are specified, the default value is all Regions from the `STACKSET` constraint\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StackSetRegions", + "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": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptLanguage", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the constraint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "NotificationArns": { + "items": { + "type": "string" + }, + "markdownDescription": "The notification ARNs\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotificationArns", + "type": "array" + }, + "PortfolioId": { + "markdownDescription": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortfolioId", + "type": "string" + }, + "ProductId": { + "markdownDescription": "The product identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptLanguage", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the constraint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "LocalRoleName": { + "markdownDescription": "You are required to specify either the `RoleArn` or the `LocalRoleName` but can't use both\\. \nIf you specify the `LocalRoleName` property, when an account uses the launch constraint, the IAM role with that name in the account will be used\\. This allows launch\\-role constraints to be account\\-agnostic so the administrator can create fewer resources per shared account\\. \nThe given role name must exist in the account used to create the launch constraint and the account of the user who launches a product with this launch constraint\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LocalRoleName", + "type": "string" + }, + "PortfolioId": { + "markdownDescription": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortfolioId", + "type": "string" + }, + "ProductId": { + "markdownDescription": "The product identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProductId", + "type": "string" + }, + "RoleArn": { + "markdownDescription": "The ARN of the launch role\\. \nYou are required to specify `RoleArn` or `LocalRoleName` but can't use both\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptLanguage", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the constraint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "PortfolioId": { + "markdownDescription": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortfolioId", + "type": "string" + }, + "ProductId": { + "markdownDescription": "The product identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProductId", + "type": "string" + }, + "Rules": { + "markdownDescription": "The constraint rules\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptLanguage", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the portfolio\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DisplayName": { + "markdownDescription": "The name to use for display purposes\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DisplayName", + "type": "string" + }, + "ProviderName": { + "markdownDescription": "The name of the portfolio provider\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProviderName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "One or more tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceptLanguage", + "type": "string" + }, + "PortfolioId": { + "markdownDescription": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortfolioId", + "type": "string" + }, + "PrincipalARN": { + "markdownDescription": "The ARN of the principal \\(IAM user, role, or group\\)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PrincipalARN", + "type": "string" + }, + "PrincipalType": { + "markdownDescription": "The principal type\\. The supported value is `IAM`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `IAM` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceptLanguage", + "type": "string" + }, + "PortfolioId": { + "markdownDescription": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortfolioId", + "type": "string" + }, + "ProductId": { + "markdownDescription": "The product identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProductId", + "type": "string" + }, + "SourcePortfolioId": { + "markdownDescription": "The identifier of the source portfolio\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AcceptLanguage", + "type": "string" + }, + "AccountId": { + "markdownDescription": "The AWS account ID\\. For example, `123456789012`\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccountId", + "type": "string" + }, + "PortfolioId": { + "markdownDescription": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortfolioId", + "type": "string" + }, + "ShareTagOptions": { + "markdownDescription": "Indicates whether TagOptions sharing is enabled or disabled for the portfolio share\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptLanguage", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the constraint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "PortfolioId": { + "markdownDescription": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortfolioId", + "type": "string" + }, + "ProductId": { + "markdownDescription": "The product identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProductId", + "type": "string" + }, + "TagUpdateOnProvisionedProduct": { + "markdownDescription": "If set to `ALLOWED`, lets users change tags in a [CloudFormationProvisionedProduct](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html) resource\\. \nIf set to `NOT_ALLOWED`, prevents users from changing tags in a [CloudFormationProvisionedProduct](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html) resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptLanguage", + "type": "string" + }, + "Definition": { + "items": { + "$ref": "#/definitions/AWS::ServiceCatalog::ServiceAction.DefinitionParameter" + }, + "markdownDescription": "A map that defines the self\\-service action\\. \n*Required*: Yes \n*Type*: List of [DefinitionParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-serviceaction-definitionparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Definition", + "type": "array" + }, + "DefinitionType": { + "markdownDescription": "The self\\-service action definition type\\. For example, `SSM_AUTOMATION`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `SSM_AUTOMATION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefinitionType", + "type": "string" + }, + "Description": { + "markdownDescription": "The self\\-service action description\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The self\\-service action name\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[a-zA-Z0-9_\\-.]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The parameter key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of the parameter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::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": { + "markdownDescription": "The product identifier\\. For example, `prod-abcdzk7xy33qa`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProductId", + "type": "string" + }, + "ProvisioningArtifactId": { + "markdownDescription": "The identifier of the provisioning artifact\\. For example, `pa-4abcdjnxjj6ne`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProvisioningArtifactId", + "type": "string" + }, + "ServiceActionId": { + "markdownDescription": "The self\\-service action identifier\\. For example, `act-fs7abcd89wxyz`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The language code\\. \n+ `en` \\- English \\(default\\)\n+ `jp` \\- Japanese\n+ `zh` \\- Chinese\n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AcceptLanguage", + "type": "string" + }, + "AccountList": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more AWS accounts that will have access to the provisioned product\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AccountList", + "type": "array" + }, + "AdminRole": { + "markdownDescription": "AdminRole ARN \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AdminRole", + "type": "string" + }, + "Description": { + "markdownDescription": "The description of the constraint\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "ExecutionRole": { + "markdownDescription": "ExecutionRole name \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionRole", + "type": "string" + }, + "PortfolioId": { + "markdownDescription": "The portfolio identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PortfolioId", + "type": "string" + }, + "ProductId": { + "markdownDescription": "The product identifier\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `100` \n*Pattern*: `^[a-zA-Z0-9_\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProductId", + "type": "string" + }, + "RegionList": { + "items": { + "type": "string" + }, + "markdownDescription": "One or more AWS Regions where the provisioned product will be available\\. \nApplicable only to a `CFN_STACKSET` provisioned product type\\. \nThe specified Regions should be within the list of Regions from the `STACKSET` constraint\\. To get the list of Regions in the `STACKSET` constraint, use the `DescribeProvisioningParameters` operation\\. \nIf no values are specified, the default value is all Regions from the `STACKSET` constraint\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegionList", + "type": "array" + }, + "StackInstanceControl": { + "markdownDescription": "Permission to create, update, and delete stack instances\\. Choose from ALLOWED and NOT\\_ALLOWED\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The TagOption active state\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Active", + "type": "boolean" + }, + "Key": { + "markdownDescription": "The TagOption key\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The TagOption value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The resource identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceId", + "type": "string" + }, + "TagOptionId": { + "markdownDescription": "The TagOption identifier\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The description of the application\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the application\\. The name must be unique in the region in which you are creating the application\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[-.\\w]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "Key\\-value pairs you can use to associate with the application\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "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": { + "markdownDescription": "A JSON string in the form of nested key\\-value pairs that represent the attributes in the group and describes an application and its components\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Attributes", + "type": "object" + }, + "Description": { + "markdownDescription": "The description of the attribute group that the user provides\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the attribute group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `[-.\\w]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "markdownDescription": "Key\\-value pairs you can use to associate with the attribute group\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Tags", + "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": { + "markdownDescription": "The name or ID of the application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Application", + "type": "string" + }, + "AttributeGroup": { + "markdownDescription": "The name or ID of the attribute group that holds the attributes to describe the application\\. \nFor more information about using the `Ref` function, see [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name or ID of the application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Application", + "type": "string" + }, + "Resource": { + "markdownDescription": "The name or ID of the resource of which the application will be associated\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Resource", + "type": "string" + }, + "ResourceType": { + "markdownDescription": "The type of resource of which the application will be associated\\. Possible values: CFN\\_STACK\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A description for the namespace\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name that you want to assign to this namespace\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^[!-~]{1,1024}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags for the namespace\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: Updates are not supported\\.", + "title": "Tags", + "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": { + "markdownDescription": "A string map that contains the following information for the service that you specify in `ServiceId`: \n+ The attributes that apply to the records that are defined in the service\\. \n+ For each attribute, the applicable value\\.\nSupported attribute keys include the following: \nAWS\\_ALIAS\\_DNS\\_NAME \nIf you want AWS Cloud Map to create a Route\u00a053 alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that is associated with the load balancer\\. For information about how to get the DNS name, see [AliasTarget\\->DNSName](https://docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html#Route53-Type-AliasTarget-DNSName) in the *Route\u00a053 API Reference*\\. \nNote the following: \n+ The configuration for the service that is specified by `ServiceId` must include settings for an `A` record, an `AAAA` record, or both\\.\n+ In the service that is specified by `ServiceId`, the value of `RoutingPolicy` must be `WEIGHTED`\\.\n+ If the service that is specified by `ServiceId` includes `HealthCheckConfig` settings, AWS Cloud Map will create the health check, but it won't associate the health check with the alias record\\.\n+ Auto naming currently doesn't support creating alias records that route traffic to AWS resources other than ELB load balancers\\.\n+ If you specify a value for `AWS_ALIAS_DNS_NAME`, don't specify values for any of the `AWS_INSTANCE` attributes\\. \nAWS\\_EC2\\_INSTANCE\\_ID \n*HTTP namespaces only\\.* The Amazon EC2 instance ID for the instance\\. The `AWS_INSTANCE_IPV4` attribute contains the primary private IPv4 address\\. When creating resources with a type of [AWS::ServiceDiscovery::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html), if the `AWS_EC2_INSTANCE_ID` attribute is specified, the only other attribute that can be specified is `AWS_INIT_HEALTH_STATUS`\\. After the resource has been created, the `AWS_INSTANCE_IPV4` attribute contains the primary private IPv4 address\\. \nAWS\\_INIT\\_HEALTH\\_STATUS \nIf the service configuration includes `HealthCheckCustomConfig`, when creating resources with a type of [AWS::ServiceDiscovery::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-instance.html) you can optionally use `AWS_INIT_HEALTH_STATUS` to specify the initial status of the custom health check, `HEALTHY` or `UNHEALTHY`\\. If you don't specify a value for `AWS_INIT_HEALTH_STATUS`, the initial status is `HEALTHY`\\. This attribute can only be used when creating resources and will not be seen on existing resources\\. \nAWS\\_INSTANCE\\_CNAME \nIf the service configuration includes a `CNAME` record, the domain name that you want Route\u00a053 to return in response to DNS queries, for example, `example.com`\\. \nThis value is required if the service specified by `ServiceId` includes settings for an `CNAME` record\\. \nAWS\\_INSTANCE\\_IPV4 \nIf the service configuration includes an `A` record, the IPv4 address that you want Route\u00a053 to return in response to DNS queries, for example, `192.0.2.44`\\. \nThis value is required if the service specified by `ServiceId` includes settings for an `A` record\\. If the service includes settings for an `SRV` record, you must specify a value for `AWS_INSTANCE_IPV4`, `AWS_INSTANCE_IPV6`, or both\\. \nAWS\\_INSTANCE\\_IPV6 \nIf the service configuration includes an `AAAA` record, the IPv6 address that you want Route\u00a053 to return in response to DNS queries, for example, `2001:0db8:85a3:0000:0000:abcd:0001:2345`\\. \nThis value is required if the service specified by `ServiceId` includes settings for an `AAAA` record\\. If the service includes settings for an `SRV` record, you must specify a value for `AWS_INSTANCE_IPV4`, `AWS_INSTANCE_IPV6`, or both\\. \nAWS\\_INSTANCE\\_PORT \nIf the service includes an `SRV` record, the value that you want Route\u00a053 to return for the port\\. \nIf the service includes `HealthCheckConfig`, the port on the endpoint that you want Route\u00a053 to send requests to\\. \nThis value is required if you specified settings for an `SRV` record or a Route\u00a053 health check when you created the service\\.\n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InstanceAttributes", + "type": "object" + }, + "InstanceId": { + "markdownDescription": "An identifier that you want to associate with the instance\\. Note the following: \n+ If the service that's specified by `ServiceId` includes settings for an `SRV` record, the value of `InstanceId` is automatically included as part of the value for the `SRV` record\\. For more information, see [DnsRecord > Type](https://docs.aws.amazon.com/cloud-map/latest/api/API_DnsRecord.html#cloudmap-Type-DnsRecord-Type)\\.\n+ You can use this value to update an existing instance\\.\n+ To register a new instance, you must specify a value that's unique among instances that you register by using the same service\\. \n+ If you specify an existing `InstanceId` and `ServiceId`, AWS Cloud Map updates the existing DNS records, if any\\. If there's also an existing health check, AWS Cloud Map deletes the old health check and creates a new one\\. \n**Note** \nThe health check isn't deleted immediately, so it will still appear for a while if you submit a `ListHealthChecks` request, for example\\.\n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Pattern*: `^[0-9a-zA-Z_/:.@-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "InstanceId", + "type": "string" + }, + "ServiceId": { + "markdownDescription": "The ID of the service that you want to use for settings for the instance\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "A description for the namespace\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name that you want to assign to this namespace\\. When you create a private DNS namespace, AWS Cloud Map automatically creates an Amazon Route\u00a053 private hosted zone that has the same name as the namespace\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^[!-~]{1,1024}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Properties": { + "$ref": "#/definitions/AWS::ServiceDiscovery::PrivateDnsNamespace.Properties", + "markdownDescription": "Properties for the private DNS namespace\\. \n*Required*: No \n*Type*: [Properties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-privatednsnamespace-properties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Properties" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags for the namespace\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: Updates are not supported\\.", + "title": "Tags", + "type": "array" + }, + "Vpc": { + "markdownDescription": "The ID of the Amazon VPC that you want to associate the namespace with\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "Fields for the Start of Authority \\(SOA\\) record for the hosted zone for the private DNS namespace\\. \n*Required*: No \n*Type*: [SOA](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-privatednsnamespace-soa.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SOA" + } + }, + "type": "object" + }, + "AWS::ServiceDiscovery::PrivateDnsNamespace.Properties": { + "additionalProperties": false, + "properties": { + "DnsProperties": { + "$ref": "#/definitions/AWS::ServiceDiscovery::PrivateDnsNamespace.PrivateDnsPropertiesMutable", + "markdownDescription": "DNS properties for the private DNS namespace\\. \n*Required*: No \n*Type*: [PrivateDnsPropertiesMutable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-privatednsnamespace-privatednspropertiesmutable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DnsProperties" + } + }, + "type": "object" + }, + "AWS::ServiceDiscovery::PrivateDnsNamespace.SOA": { + "additionalProperties": false, + "properties": { + "TTL": { + "markdownDescription": "The time to live \\(TTL\\) for purposes of negative caching\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A description for the namespace\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name that you want to assign to this namespace\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Properties": { + "$ref": "#/definitions/AWS::ServiceDiscovery::PublicDnsNamespace.Properties", + "markdownDescription": "Properties for the public DNS namespace\\. \n*Required*: No \n*Type*: [Properties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-publicdnsnamespace-properties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Properties" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags for the namespace\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: Updates are not supported\\.", + "title": "Tags", + "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", + "markdownDescription": "DNS properties for the public DNS namespace\\. \n*Required*: No \n*Type*: [PublicDnsPropertiesMutable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-publicdnsnamespace-publicdnspropertiesmutable.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DnsProperties" + } + }, + "type": "object" + }, + "AWS::ServiceDiscovery::PublicDnsNamespace.PublicDnsPropertiesMutable": { + "additionalProperties": false, + "properties": { + "SOA": { + "$ref": "#/definitions/AWS::ServiceDiscovery::PublicDnsNamespace.SOA", + "markdownDescription": "Start of Authority \\(SOA\\) record for the hosted zone for the public DNS namespace\\. \n*Required*: No \n*Type*: [SOA](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-publicdnsnamespace-soa.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SOA" + } + }, + "type": "object" + }, + "AWS::ServiceDiscovery::PublicDnsNamespace.SOA": { + "additionalProperties": false, + "properties": { + "TTL": { + "markdownDescription": "The time to live \\(TTL\\) for purposes of negative caching\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The description of the service\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "DnsConfig": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsConfig", + "markdownDescription": "A complex type that contains information about the Route\u00a053 DNS records that you want AWS Cloud Map to create when you register an instance\\. \n*Required*: No \n*Type*: [DnsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DnsConfig" + }, + "HealthCheckConfig": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckConfig", + "markdownDescription": "*Public DNS and HTTP namespaces only\\.* A complex type that contains settings for an optional health check\\. If you specify settings for a health check, AWS Cloud Map associates the health check with the records that you specify in `DnsConfig`\\. \nFor information about the charges for health checks, see [Amazon Route\u00a053 Pricing](http://aws.amazon.com/route53/pricing/)\\. \n*Required*: No \n*Type*: [HealthCheckConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-healthcheckconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HealthCheckConfig" + }, + "HealthCheckCustomConfig": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckCustomConfig", + "markdownDescription": "A complex type that contains information about an optional custom health check\\. \nIf you specify a health check configuration, you can specify either `HealthCheckCustomConfig` or `HealthCheckConfig` but not both\\.\n*Required*: No \n*Type*: [HealthCheckCustomConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-healthcheckcustomconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "HealthCheckCustomConfig" + }, + "Name": { + "markdownDescription": "The name of the service\\. \n*Required*: No \n*Type*: String \n*Pattern*: `((?=^.{1,127}$)^([a-zA-Z0-9_][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9_]|[a-zA-Z0-9])(\\.([a-zA-Z0-9_][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9_]|[a-zA-Z0-9]))*$)|(^\\.$)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "NamespaceId": { + "markdownDescription": "The ID of the namespace that was used to create the service\\. \nYou must specify a value for `NamespaceId` either for the service properties or for [DnsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsconfig.html)\\. Don't specify a value in both places\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NamespaceId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags for the service\\. Each tag consists of a key and an optional value, both of which you define\\. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: Updates are not supported\\.", + "title": "Tags", + "type": "array" + }, + "Type": { + "markdownDescription": "If present, specifies that the service instances are only discoverable using the `DiscoverInstances` API operation\\. No DNS records is registered for the service instances\\. The only valid value is `HTTP`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `HTTP` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "An array that contains one `DnsRecord` object for each Route\u00a053 DNS record that you want AWS Cloud Map to create when you register an instance\\. \n*Required*: Yes \n*Type*: List of [DnsRecord](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsrecord.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DnsRecords", + "type": "array" + }, + "NamespaceId": { + "markdownDescription": "The ID of the namespace to use for DNS configuration\\. \nYou must specify a value for `NamespaceId` either for `DnsConfig` or for the [service properties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-service.html)\\. Don't specify a value in both places\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NamespaceId", + "type": "string" + }, + "RoutingPolicy": { + "markdownDescription": "The routing policy that you want to apply to all Route\u00a053 DNS records that AWS Cloud Map creates when you register an instance and specify this service\\. \nIf you want to use this service to register instances that create alias records, specify `WEIGHTED` for the routing policy\\.\nYou can specify the following values: \nMULTIVALUE \nIf you define a health check for the service and the health check is healthy, Route\u00a053 returns the applicable value for up to eight instances\\. \nFor example, suppose that the service includes configurations for one `A` record and a health check\\. You use the service to register 10 instances\\. Route\u00a053 responds to DNS queries with IP addresses for up to eight healthy instances\\. If fewer than eight instances are healthy, Route\u00a053 responds to every DNS query with the IP addresses for all of the healthy instances\\. \nIf you don't define a health check for the service, Route\u00a053 assumes that all instances are healthy and returns the values for up to eight instances\\. \nFor more information about the multivalue routing policy, see [Multivalue Answer Routing](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-multivalue) in the *Route\u00a053 Developer Guide*\\. \nWEIGHTED \nRoute\u00a053 returns the applicable value from one randomly selected instance from among the instances that you registered using the same service\\. Currently, all records have the same weight, so you can't route more or less traffic to any instances\\. \nFor example, suppose that the service includes configurations for one `A` record and a health check\\. You use the service to register 10 instances\\. Route\u00a053 responds to DNS queries with the IP address for one randomly selected instance from among the healthy instances\\. If no instances are healthy, Route\u00a053 responds to DNS queries as if all of the instances were healthy\\. \nIf you don't define a health check for the service, Route\u00a053 assumes that all instances are healthy and returns the applicable value for one randomly selected instance\\. \nFor more information about the weighted routing policy, see [Weighted Routing](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-weighted) in the *Route\u00a053 Developer Guide*\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `MULTIVALUE | WEIGHTED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoutingPolicy", + "type": "string" + } + }, + "required": [ + "DnsRecords" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service.DnsRecord": { + "additionalProperties": false, + "properties": { + "TTL": { + "markdownDescription": "The amount of time, in seconds, that you want DNS resolvers to cache the settings for this record\\. \nAlias records don't include a TTL because Route\u00a053 uses the TTL for the AWS resource that an alias record routes traffic to\\. If you include the `AWS_ALIAS_DNS_NAME` attribute when you submit a [RegisterInstance](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html) request, the `TTL` value is ignored\\. Always specify a TTL for the service; you can use a service to register instances that create either alias or non\\-alias records\\.\n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TTL", + "type": "number" + }, + "Type": { + "markdownDescription": "The type of the resource, which indicates the type of value that Route 53 returns in response to DNS queries\\. You can specify values for `Type` in the following combinations: \n+ `A`\n+ `AAAA`\n+ `A` and `AAAA`\n+ `SRV`\n+ `CNAME`\nIf you want AWS Cloud Map to create a Route 53 alias record when you register an instance, specify `A` or `AAAA` for `Type`\\. \nYou specify other settings, such as the IP address for `A` and `AAAA` records, when you register an instance\\. For more information, see [RegisterInstance](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html)\\. \nThe following values are supported: \nA \nRoute 53 returns the IP address of the resource in IPv4 format, such as 192\\.0\\.2\\.44\\. \nAAAA \nRoute 53 returns the IP address of the resource in IPv6 format, such as 2001:0db8:85a3:0000:0000:abcd:0001:2345\\. \nCNAME \nRoute 53 returns the domain name of the resource, such as www\\.example\\.com\\. Note the following: \n+ You specify the domain name that you want to route traffic to when you register an instance\\. For more information, see [Attributes](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html#cloudmap-RegisterInstance-request-Attributes) in the topic [RegisterInstance](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html)\\.\n+ You must specify `WEIGHTED` for the value of `RoutingPolicy`\\.\n+ You can't specify both `CNAME` for `Type` and settings for `HealthCheckConfig`\\. If you do, the request will fail with an `InvalidInput` error\\. \nSRV \nRoute 53 returns the value for an `SRV` record\\. The value for an `SRV` record uses the following values: \n`priority weight port service-hostname` \nNote the following about the values: \n+ The values of `priority` and `weight` are both set to `1` and can't be changed\\. \n+ The value of `port` comes from the value that you specify for the `AWS_INSTANCE_PORT` attribute when you submit a [RegisterInstance](https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html) request\\. \n+ The value of `service-hostname` is a concatenation of the following values:\n + The value that you specify for `InstanceId` when you register an instance\\.\n + The name of the service\\.\n + The name of the namespace\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "TTL", + "Type" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service.HealthCheckConfig": { + "additionalProperties": false, + "properties": { + "FailureThreshold": { + "markdownDescription": "The number of consecutive health checks that an endpoint must pass or fail for Route\u00a053 to change the current status of the endpoint from unhealthy to healthy or the other way around\\. For more information, see [How Route\u00a053 Determines Whether an Endpoint Is Healthy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html) in the *Route\u00a053 Developer Guide*\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailureThreshold", + "type": "number" + }, + "ResourcePath": { + "markdownDescription": "The path that you want Route\u00a053 to request when performing health checks\\. The path can be any value that your endpoint returns an HTTP status code of a 2xx or 3xx format for when the endpoint is healthy\\. An example file is `/docs/route53-health-check.html`\\. Route\u00a053 automatically adds the DNS name for the service\\. If you don't specify a value for `ResourcePath`, the default value is `/`\\. \nIf you specify `TCP` for `Type`, you must *not* specify a value for `ResourcePath`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourcePath", + "type": "string" + }, + "Type": { + "markdownDescription": "The type of health check that you want to create, which indicates how Route\u00a053 determines whether an endpoint is healthy\\. \nYou can't change the value of `Type` after you create a health check\\.\nYou can create the following types of health checks: \n+ **HTTP**: Route\u00a053 tries to establish a TCP connection\\. If successful, Route\u00a053 submits an HTTP request and waits for an HTTP status code of 200 or greater and less than 400\\.\n+ **HTTPS**: Route\u00a053 tries to establish a TCP connection\\. If successful, Route\u00a053 submits an HTTPS request and waits for an HTTP status code of 200 or greater and less than 400\\.\n**Important** \nIf you specify HTTPS for the value of `Type`, the endpoint must support TLS v1\\.0 or later\\.\n+ **TCP**: Route\u00a053 tries to establish a TCP connection\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service.HealthCheckCustomConfig": { + "additionalProperties": false, + "properties": { + "FailureThreshold": { + "markdownDescription": "This parameter is no longer supported and is always set to 1\\. AWS Cloud Map waits for approximately 30 seconds after receiving an `UpdateInstanceCustomHealthStatus` request before changing the status of the service instance\\.\nThe number of 30\\-second intervals that you want AWS Cloud Map to wait after receiving an `UpdateInstanceCustomHealthStatus` request before it changes the health status of a service instance\\. \nSending a second or subsequent `UpdateInstanceCustomHealthStatus` request with the same value before 30 seconds has passed doesn't accelerate the change\\. AWS Cloud Map still waits `30` seconds after the first request to make the change\\. \n*Required*: No \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The AWS Signer action permitted as part of cross\\-account permissions\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Action", + "type": "string" + }, + "Principal": { + "markdownDescription": "The AWS principal receiving cross\\-account permissions\\. This may be an IAM role or another AWS account ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Principal", + "type": "string" + }, + "ProfileName": { + "markdownDescription": "The human\\-readable name of the signing profile\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProfileName", + "type": "string" + }, + "ProfileVersion": { + "markdownDescription": "The version of the signing profile\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ProfileVersion", + "type": "string" + }, + "StatementId": { + "markdownDescription": "A unique identifier for the cross\\-account permission statement\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The ID of a platform that is available for use by a signing profile\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PlatformId", + "type": "string" + }, + "SignatureValidityPeriod": { + "$ref": "#/definitions/AWS::Signer::SigningProfile.SignatureValidityPeriod", + "markdownDescription": "The validity period override for any signature generated using this signing profile\\. If unspecified, the default is 135 months\\. \n*Required*: No \n*Type*: [SignatureValidityPeriod](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-signer-signingprofile-signaturevalidityperiod.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SignatureValidityPeriod" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of tags associated with the signing profile\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The time unit for signature validity: DAYS \\| MONTHS \\| YEARS\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Type", + "type": "string" + }, + "Value": { + "markdownDescription": "The numerical value of the time unit for signature validity\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Value", + "type": "number" + } + }, + "type": "object" + }, + "AWS::SimSpaceWeaver::Simulation": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "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" + }, + "RoleArn": { + "type": "string" + }, + "SchemaS3Location": { + "$ref": "#/definitions/AWS::SimSpaceWeaver::Simulation.S3Location" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SimSpaceWeaver::Simulation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::SimSpaceWeaver::Simulation.S3Location": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "ObjectKey": { + "type": "string" + } + }, + "required": [ + "BucketName", + "ObjectKey" + ], + "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": { + "markdownDescription": "The name of the activity\\. \nA name must *not* contain: \n+ white space\n+ brackets `< > { } [ ]` \n+ wildcard characters `? *` \n+ special characters `\" # % \\ ^ | ~ ` $ & , ; : /` \n+ control characters \\(`U+0000-001F`, `U+007F-009F`\\)\nTo enable logging with CloudWatch Logs, the name should only contain 0\\-9, A\\-Z, a\\-z, \\- and \\_\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::StepFunctions::Activity.TagsEntry" + }, + "markdownDescription": "The list of tags to add to a resource\\. \nTags may only contain Unicode letters, digits, white space, or these symbols: `_ . : / = + - @`\\. \n*Required*: No \n*Type*: List of [TagsEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-activity-tagsentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The `key` for a key\\-value pair in a tag entry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The `value` for a key\\-value pair in a tag entry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::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": { + "markdownDescription": "The Amazon States Language definition of the state machine\\. The state machine definition must be in JSON or YAML, and the format of the object must match the format of your AWS Step Functions template file\\. See [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)\\. \n*Required*: No \n*Type*: [Definition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-definition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Definition", + "type": "object" + }, + "DefinitionS3Location": { + "$ref": "#/definitions/AWS::StepFunctions::StateMachine.S3Location", + "markdownDescription": "The name of the S3 bucket where the state machine definition is stored\\. The state machine definition must be a JSON or YAML file\\. \n*Required*: No \n*Type*: [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-s3location.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefinitionS3Location" + }, + "DefinitionString": { + "markdownDescription": "The Amazon States Language definition of the state machine\\. The state machine definition must be in JSON\\. See [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefinitionString", + "type": "string" + }, + "DefinitionSubstitutions": { + "additionalProperties": true, + "markdownDescription": "A map \\(string to string\\) that specifies the mappings for placeholder variables in the state machine definition\\. This enables the customer to inject values obtained at runtime, for example from intrinsic functions, in the state machine definition\\. Variables can be template parameter names, resource logical IDs, resource attributes, or a variable in a key\\-value map\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "object" + } + }, + "title": "DefinitionSubstitutions", + "type": "object" + }, + "LoggingConfiguration": { + "$ref": "#/definitions/AWS::StepFunctions::StateMachine.LoggingConfiguration", + "markdownDescription": "Defines what execution history events are logged and where they are logged\\. \nBy default, the `level` is set to `OFF`\\. For more information see [Log Levels](https://docs.aws.amazon.com/step-functions/latest/dg/cloudwatch-log-level.html) in the AWS Step Functions User Guide\\.\n*Required*: No \n*Type*: [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-loggingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingConfiguration" + }, + "RoleArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IAM role to use for this state machine\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RoleArn", + "type": "string" + }, + "StateMachineName": { + "markdownDescription": "The name of the state machine\\. \nA name must *not* contain: \n+ white space\n+ brackets `< > { } [ ]` \n+ wildcard characters `? *` \n+ special characters `\" # % \\ ^ | ~ ` $ & , ; : /` \n+ control characters \\(`U+0000-001F`, `U+007F-009F`\\)\nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StateMachineName", + "type": "string" + }, + "StateMachineType": { + "markdownDescription": "Determines whether a `STANDARD` or `EXPRESS` state machine is created\\. The default is `STANDARD`\\. You cannot update the `type` of a state machine once it has been created\\. For more information on `STANDARD` and `EXPRESS` workflows, see [Standard Versus Express Workflows](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html) in the AWS Step Functions Developer Guide\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "StateMachineType", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::StepFunctions::StateMachine.TagsEntry" + }, + "markdownDescription": "The list of tags to add to a resource\\. \nTags may only contain Unicode letters, digits, white space, or these symbols: `_ . : / = + - @`\\. \n*Required*: No \n*Type*: List of [TagsEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-tagsentry.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TracingConfiguration": { + "$ref": "#/definitions/AWS::StepFunctions::StateMachine.TracingConfiguration", + "markdownDescription": "Selects whether or not the state machine's AWS X\\-Ray tracing is enabled\\. \n*Required*: No \n*Type*: [TracingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-tracingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The ARN of the the CloudWatch log group to which you want your logs emitted to\\. The ARN must end with `:*` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroupArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::StepFunctions::StateMachine.LogDestination": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroup": { + "$ref": "#/definitions/AWS::StepFunctions::StateMachine.CloudWatchLogsLogGroup", + "markdownDescription": "An object describing a CloudWatch log group\\. For more information, see [AWS::Logs::LogGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html) in the AWS CloudFormation User Guide\\. \n*Required*: No \n*Type*: [CloudWatchLogsLogGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-cloudwatchlogsloggroup.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogsLogGroup" + } + }, + "type": "object" + }, + "AWS::StepFunctions::StateMachine.LoggingConfiguration": { + "additionalProperties": false, + "properties": { + "Destinations": { + "items": { + "$ref": "#/definitions/AWS::StepFunctions::StateMachine.LogDestination" + }, + "markdownDescription": "An array of objects that describes where your execution history events will be logged\\. Limited to size 1\\. Required, if your log level is not set to `OFF`\\. \n*Required*: No \n*Type*: List of [LogDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-logdestination.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Destinations", + "type": "array" + }, + "IncludeExecutionData": { + "markdownDescription": "Determines whether execution data is included in your log\\. When set to `false`, data is excluded\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludeExecutionData", + "type": "boolean" + }, + "Level": { + "markdownDescription": "Defines which category of execution history events are logged\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Level", + "type": "string" + } + }, + "type": "object" + }, + "AWS::StepFunctions::StateMachine.S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "markdownDescription": "The name of the S3 bucket where the state machine definition JSON or YAML file is stored\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Bucket", + "type": "string" + }, + "Key": { + "markdownDescription": "The name of the state machine definition file \\(Amazon S3 object name\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Version": { + "markdownDescription": "For versioning\\-enabled buckets, a specific version of the state machine definition\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "AWS::StepFunctions::StateMachine.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The `key` for a key\\-value pair in a tag entry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Value": { + "markdownDescription": "The `value` for a key\\-value pair in a tag entry\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::StepFunctions::StateMachine.TracingConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "markdownDescription": "When set to `true`, X\\-Ray tracing is enabled\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Enabled", + "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", + "markdownDescription": "A structure that contains the configuration for canary artifacts, including the encryption\\-at\\-rest settings for artifacts that the canary uploads to Amazon S3\\. \n*Required*: No \n*Type*: [ArtifactConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-artifactconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArtifactConfig" + }, + "ArtifactS3Location": { + "markdownDescription": "The location in Amazon S3 where Synthetics stores artifacts from the runs of this canary\\. Artifacts include the log file, screenshots, and HAR files\\. Specify the full location path, including `s3://` at the beginning of the path\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ArtifactS3Location", + "type": "string" + }, + "Code": { + "$ref": "#/definitions/AWS::Synthetics::Canary.Code", + "markdownDescription": "Use this structure to input your script code for the canary\\. This structure contains the Lambda handler with the location where the canary should start running the script\\. If the script is stored in an S3 bucket, the bucket name, key, and version are also included\\. If the script is passed into the canary directly, the script code is contained in the value of `Script`\\. \n*Required*: Yes \n*Type*: [Code](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-code.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Code" + }, + "DeleteLambdaResourcesOnCanaryDeletion": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "markdownDescription": "The ARN of the IAM role to be used to run the canary\\. This role must already exist, and must include `lambda.amazonaws.com` as a principal in the trust policy\\. The role must also have the following permissions: \n+ `s3:PutObject` \n+ `s3:GetBucketLocation` \n+ `s3:ListAllMyBuckets` \n+ `cloudwatch:PutMetricData` \n+ `logs:CreateLogGroup` \n+ `logs:CreateLogStream` \n+ `logs:PutLogEvents` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionRoleArn", + "type": "string" + }, + "FailureRetentionPeriod": { + "markdownDescription": "The number of days to retain data about failed runs of this canary\\. If you omit this field, the default of 31 days is used\\. The valid range is 1 to 455 days\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailureRetentionPeriod", + "type": "number" + }, + "Name": { + "markdownDescription": "The name for this canary\\. Be sure to give it a descriptive name that distinguishes it from other canaries in your account\\. \nDo not include secrets or proprietary information in your canary names\\. The canary name makes up part of the canary ARN, and the ARN is included in outbound calls over the internet\\. For more information, see [Security Considerations for Synthetics Canaries](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/servicelens_canaries_security.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `21` \n*Pattern*: `^[0-9a-z_\\-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RunConfig": { + "$ref": "#/definitions/AWS::Synthetics::Canary.RunConfig", + "markdownDescription": "A structure that contains input information for a canary run\\. If you omit this structure, the frequency of the canary is used as canary's timeout value, up to a maximum of 900 seconds\\. \n*Required*: No \n*Type*: [RunConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-runconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RunConfig" + }, + "RuntimeVersion": { + "markdownDescription": "Specifies the runtime version to use for the canary\\. For more information about runtime versions, see [ Canary Runtime Versions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuntimeVersion", + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/AWS::Synthetics::Canary.Schedule", + "markdownDescription": "A structure that contains information about how often the canary is to run, and when these runs are to stop\\. \n*Required*: Yes \n*Type*: [Schedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-schedule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Schedule" + }, + "StartCanaryAfterCreation": { + "markdownDescription": "Specify TRUE to have the canary start making runs immediately after it is created\\. \nA canary that you create using CloudFormation can't be used to monitor the CloudFormation stack that creates the canary or to roll back that stack if there is a failure\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StartCanaryAfterCreation", + "type": "boolean" + }, + "SuccessRetentionPeriod": { + "markdownDescription": "The number of days to retain data about successful runs of this canary\\. If you omit this field, the default of 31 days is used\\. The valid range is 1 to 455 days\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuccessRetentionPeriod", + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The list of key\\-value pairs that are associated with the canary\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VPCConfig": { + "$ref": "#/definitions/AWS::Synthetics::Canary.VPCConfig", + "markdownDescription": "If this canary is to test an endpoint in a VPC, this structure contains information about the subnet and security groups of the VPC endpoint\\. For more information, see [ Running a Canary in a VPC](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_VPC.html)\\. \n*Required*: No \n*Type*: [VPCConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-vpcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VPCConfig" + }, + "VisualReference": { + "$ref": "#/definitions/AWS::Synthetics::Canary.VisualReference", + "markdownDescription": "If this canary performs visual monitoring by comparing screenshots, this structure contains the ID of the canary run to use as the baseline for screenshots, and the coordinates of any parts of the screen to ignore during the visual monitoring comparison\\. \n*Required*: No \n*Type*: [VisualReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-visualreference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "A structure that contains the configuration of the encryption\\-at\\-rest settings for artifacts that the canary uploads to Amazon S3\\. Artifact encryption functionality is available only for canaries that use Synthetics runtime version syn\\-nodejs\\-puppeteer\\-3\\.3 or later\\. For more information, see [Encrypting canary artifacts](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_artifact_encryption.html)\\. \n*Required*: No \n*Type*: [S3Encryption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-s3encryption.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Encryption" + } + }, + "type": "object" + }, + "AWS::Synthetics::Canary.BaseScreenshot": { + "additionalProperties": false, + "properties": { + "IgnoreCoordinates": { + "items": { + "type": "string" + }, + "markdownDescription": "Coordinates that define the part of a screen to ignore during screenshot comparisons\\. To obtain the coordinates to use here, use the CloudWatch Logs console to draw the boundaries on the screen\\. For more information, see \\{LINK\\} \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IgnoreCoordinates", + "type": "array" + }, + "ScreenshotName": { + "markdownDescription": "The name of the screenshot\\. This is generated the first time the canary is run after the `UpdateCanary` operation that specified for this canary to perform visual monitoring\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScreenshotName", + "type": "string" + } + }, + "required": [ + "ScreenshotName" + ], + "type": "object" + }, + "AWS::Synthetics::Canary.Code": { + "additionalProperties": false, + "properties": { + "Handler": { + "markdownDescription": "The entry point to use for the source code when running the canary\\. For canaries that use the `syn-python-selenium-1.0` runtime or a `syn-nodejs.puppeteer` runtime earlier than `syn-nodejs.puppeteer-3.4`, the handler must be specified as ` fileName.handler`\\. For `syn-python-selenium-1.1`, `syn-nodejs.puppeteer-3.4`, and later runtimes, the handler can be specified as ` fileName.functionName `, or you can specify a folder where canary scripts reside as ` folder/fileName.functionName `\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^([0-9a-zA-Z_-]+\\/)*[0-9A-Za-z_\\\\-]+\\.[A-Za-z_][A-Za-z0-9_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Handler", + "type": "string" + }, + "S3Bucket": { + "markdownDescription": "If your canary script is located in S3, specify the bucket name here\\. The bucket must already exist\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Bucket", + "type": "string" + }, + "S3Key": { + "markdownDescription": "The S3 key of your script\\. For more information, see [Working with Amazon S3 Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingObjects.html)\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Key", + "type": "string" + }, + "S3ObjectVersion": { + "markdownDescription": "The S3 version ID of your script\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3ObjectVersion", + "type": "string" + }, + "Script": { + "markdownDescription": "If you input your canary script directly into the canary instead of referring to an S3 location, the value of this parameter is the script in plain text\\. It can be up to 5 MB\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Script", + "type": "string" + } + }, + "required": [ + "Handler" + ], + "type": "object" + }, + "AWS::Synthetics::Canary.RunConfig": { + "additionalProperties": false, + "properties": { + "ActiveTracing": { + "markdownDescription": "Specifies whether this canary is to use active AWS X\\-Ray tracing when it runs\\. Active tracing enables this canary run to be displayed in the ServiceLens and X\\-Ray service maps even if the canary does not hit an endpoint that has X\\-Ray tracing enabled\\. Using X\\-Ray tracing incurs charges\\. For more information, see [Canaries and X\\-Ray tracing](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_tracing.html)\\. \n You can enable active tracing only for canaries that use version `syn-nodejs-2.0` or later for their canary runtime\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ActiveTracing", + "type": "boolean" + }, + "EnvironmentVariables": { + "additionalProperties": true, + "markdownDescription": "Specifies the keys and values to use for any environment variables used in the canary script\\. Use the following format: \n\\{ \"key1\" : \"value1\", \"key2\" : \"value2\", \\.\\.\\.\\} \nKeys must start with a letter and be at least two characters\\. The total size of your environment variables cannot exceed 4 KB\\. You can't specify any Lambda reserved environment variables as the keys for your environment variables\\. For more information about reserved keys, see [ Runtime environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime)\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "EnvironmentVariables", + "type": "object" + }, + "MemoryInMB": { + "markdownDescription": "The maximum amount of memory that the canary can use while running\\. This value must be a multiple of 64\\. The range is 960 to 3008\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `960` \n*Maximum*: `3008` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MemoryInMB", + "type": "number" + }, + "TimeoutInSeconds": { + "markdownDescription": "How long the canary is allowed to run before it must stop\\. You can't set this time to be longer than the frequency of the runs of this canary\\. \nIf you omit this field, the frequency of the canary is used as this value, up to a maximum of 900 seconds\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `3` \n*Maximum*: `840` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TimeoutInSeconds", + "type": "number" + } + }, + "type": "object" + }, + "AWS::Synthetics::Canary.S3Encryption": { + "additionalProperties": false, + "properties": { + "EncryptionMode": { + "markdownDescription": "The encryption method to use for artifacts created by this canary\\. Specify `SSE_S3` to use server\\-side encryption \\(SSE\\) with an Amazon S3\\-managed key\\. Specify `SSE-KMS` to use server\\-side encryption with a customer\\-managed AWS KMS key\\. \nIf you omit this parameter, an AWS\\-managed AWS KMS key is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EncryptionMode", + "type": "string" + }, + "KmsKeyArn": { + "markdownDescription": "The ARN of the customer\\-managed AWS KMS key to use, if you specify `SSE-KMS` for `EncryptionMode` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyArn", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Synthetics::Canary.Schedule": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "markdownDescription": "How long, in seconds, for the canary to continue making regular runs according to the schedule in the `Expression` value\\. If you specify 0, the canary continues making runs until you stop it\\. If you omit this field, the default of 0 is used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DurationInSeconds", + "type": "string" + }, + "Expression": { + "markdownDescription": "A `rate` https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/expression.html or a `cron` https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/expression.html that defines how often the canary is to run\\. \nFor a rate https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/expression.html, The syntax is `rate(number unit)`\\. *unit* can be `minute`, `minutes`, or `hour`\\. \nFor example, `rate(1 minute)` runs the canary once a minute, `rate(10 minutes)` runs it once every 10 minutes, and `rate(1 hour)` runs it once every hour\\. You can specify a frequency between `rate(1 minute)` and `rate(1 hour)`\\. \nSpecifying `rate(0 minute)` or `rate(0 hour)` is a special value that causes the canary to run only once when it is started\\. \nUse `cron(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/expression.html)` to specify a cron https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/expression.html\\. You can't schedule a canary to wait for more than a year before running\\. For information about the syntax for cron https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/expression.htmls, see [ Scheduling canary runs using cron](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_cron.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Expression", + "type": "string" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "AWS::Synthetics::Canary.VPCConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of the security groups for this canary\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "The IDs of the subnets where this canary is to run\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `16` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "type": "array" + }, + "VpcId": { + "markdownDescription": "The ID of the VPC where this canary is to run\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcId", + "type": "string" + } + }, + "required": [ + "SecurityGroupIds", + "SubnetIds" + ], + "type": "object" + }, + "AWS::Synthetics::Canary.VisualReference": { + "additionalProperties": false, + "properties": { + "BaseCanaryRunId": { + "markdownDescription": "Specifies which canary run to use the screenshots from as the baseline for future visual monitoring with this canary\\. Valid values are `nextrun` to use the screenshots from the next run after this update is made, `lastrun` to use the screenshots from the most recent run before this update was made, or the value of `Id` in the [ CanaryRun](https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_CanaryRun.html) from any past run of this canary\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaseCanaryRunId", + "type": "string" + }, + "BaseScreenshots": { + "items": { + "$ref": "#/definitions/AWS::Synthetics::Canary.BaseScreenshot" + }, + "markdownDescription": "An array of screenshots that are used as the baseline for comparisons during visual monitoring\\. \n*Required*: No \n*Type*: List of [BaseScreenshot](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-basescreenshot.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BaseScreenshots", + "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": { + "markdownDescription": "The name of the Timestream database\\. \n*Length Constraints*: Minimum length of 3 bytes\\. Maximum length of 256 bytes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatabaseName", + "type": "string" + }, + "KmsKeyId": { + "markdownDescription": "The identifier of the AWS KMS key used to encrypt the data stored in the database\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "KmsKeyId", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to add to the database\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "Using a ClientToken makes the call to CreateScheduledQuery idempotent, in other words, making the same request repeatedly will produce the same result\\. Making multiple identical CreateScheduledQuery requests has the same effect as making a single request\\. \n+ If CreateScheduledQuery is called without a `ClientToken`, the Query SDK generates a `ClientToken` on your behalf\\.\n+ After 8 hours, any request with the same `ClientToken` is treated as a new request\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ClientToken", + "type": "string" + }, + "ErrorReportConfiguration": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.ErrorReportConfiguration", + "markdownDescription": "Configuration for error reporting\\. Error reports will be generated when a problem is encountered when writing the query results\\. \n*Required*: Yes \n*Type*: [ErrorReportConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-errorreportconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ErrorReportConfiguration" + }, + "KmsKeyId": { + "markdownDescription": "The Amazon KMS key used to encrypt the scheduled query resource, at\\-rest\\. If the Amazon KMS key is not specified, the scheduled query resource will be encrypted with a Timestream owned Amazon KMS key\\. To specify a KMS key, use the key ID, key ARN, alias name, or alias ARN\\. When using an alias name, prefix the name with *alias/* \nIf ErrorReportConfiguration uses `SSE_KMS` as encryption type, the same KmsKeyId is used to encrypt the error report at rest\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + }, + "NotificationConfiguration": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.NotificationConfiguration", + "markdownDescription": "Notification configuration for the scheduled query\\. A notification is sent by Timestream when a query run finishes, when the state is updated or when you delete it\\. \n*Required*: Yes \n*Type*: [NotificationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-notificationconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "NotificationConfiguration" + }, + "QueryString": { + "markdownDescription": "The query string to run\\. Parameter names can be specified in the query string `@` character followed by an identifier\\. The named Parameter `@scheduled_runtime` is reserved and can be used in the query to get the time at which the query is scheduled to run\\. \nThe timestamp calculated according to the ScheduleConfiguration parameter, will be the value of `@scheduled_runtime` paramater for each query run\\. For example, consider an instance of a scheduled query executing on 2021\\-12\\-01 00:00:00\\. For this instance, the `@scheduled_runtime` parameter is initialized to the timestamp 2021\\-12\\-01 00:00:00 when invoking the query\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "QueryString", + "type": "string" + }, + "ScheduleConfiguration": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.ScheduleConfiguration", + "markdownDescription": "Schedule configuration\\. \n*Required*: Yes \n*Type*: [ScheduleConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-scheduleconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScheduleConfiguration" + }, + "ScheduledQueryExecutionRoleArn": { + "markdownDescription": "The ARN for the IAM role that Timestream will assume when running the scheduled query\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScheduledQueryExecutionRoleArn", + "type": "string" + }, + "ScheduledQueryName": { + "markdownDescription": "A name for the query\\. Scheduled query names must be unique within each Region\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScheduledQueryName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "A list of key\\-value pairs to label the scheduled query\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TargetConfiguration": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.TargetConfiguration", + "markdownDescription": "Scheduled query target store configuration\\. \n*Required*: No \n*Type*: [TargetConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-targetconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Type for the dimension\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DimensionValueType", + "type": "string" + }, + "Name": { + "markdownDescription": "Column name from query result\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "DimensionValueType", + "Name" + ], + "type": "object" + }, + "AWS::Timestream::ScheduledQuery.ErrorReportConfiguration": { + "additionalProperties": false, + "properties": { + "S3Configuration": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.S3Configuration", + "markdownDescription": "The S3 configuration for the error reports\\. \n*Required*: Yes \n*Type*: [S3Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-s3configuration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "S3Configuration" + } + }, + "required": [ + "S3Configuration" + ], + "type": "object" + }, + "AWS::Timestream::ScheduledQuery.MixedMeasureMapping": { + "additionalProperties": false, + "properties": { + "MeasureName": { + "markdownDescription": "Refers to the value of measure\\_name in a result row\\. This field is required if MeasureNameColumn is provided\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeasureName", + "type": "string" + }, + "MeasureValueType": { + "markdownDescription": "Type of the value that is to be read from sourceColumn\\. If the mapping is for MULTI, use MeasureValueType\\.MULTI\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeasureValueType", + "type": "string" + }, + "MultiMeasureAttributeMappings": { + "items": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.MultiMeasureAttributeMapping" + }, + "markdownDescription": "Required when measureValueType is MULTI\\. Attribute mappings for MULTI value measures\\. \n*Required*: No \n*Type*: List of [MultiMeasureAttributeMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-multimeasureattributemapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MultiMeasureAttributeMappings", + "type": "array" + }, + "SourceColumn": { + "markdownDescription": "This field refers to the source column from which measure\\-value is to be read for result materialization\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceColumn", + "type": "string" + }, + "TargetMeasureName": { + "markdownDescription": "Target measure name to be used\\. If not provided, the target measure name by default would be measure\\-name if provided, or sourceColumn otherwise\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetMeasureName", + "type": "string" + } + }, + "required": [ + "MeasureValueType" + ], + "type": "object" + }, + "AWS::Timestream::ScheduledQuery.MultiMeasureAttributeMapping": { + "additionalProperties": false, + "properties": { + "MeasureValueType": { + "markdownDescription": "Type of the attribute to be read from the source column\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeasureValueType", + "type": "string" + }, + "SourceColumn": { + "markdownDescription": "Source column from where the attribute value is to be read\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceColumn", + "type": "string" + }, + "TargetMultiMeasureAttributeName": { + "markdownDescription": "Custom name to be used for attribute name in derived table\\. If not provided, source column name would be used\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetMultiMeasureAttributeName", + "type": "string" + } + }, + "required": [ + "MeasureValueType", + "SourceColumn" + ], + "type": "object" + }, + "AWS::Timestream::ScheduledQuery.MultiMeasureMappings": { + "additionalProperties": false, + "properties": { + "MultiMeasureAttributeMappings": { + "items": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.MultiMeasureAttributeMapping" + }, + "markdownDescription": "Required\\. Attribute mappings to be used for mapping query results to ingest data for multi\\-measure attributes\\. \n*Required*: Yes \n*Type*: List of [MultiMeasureAttributeMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-multimeasureattributemapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MultiMeasureAttributeMappings", + "type": "array" + }, + "TargetMultiMeasureName": { + "markdownDescription": "The name of the target multi\\-measure name in the derived table\\. This input is required when measureNameColumn is not provided\\. If MeasureNameColumn is provided, then value from that column will be used as multi\\-measure name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TargetMultiMeasureName", + "type": "string" + } + }, + "required": [ + "MultiMeasureAttributeMappings" + ], + "type": "object" + }, + "AWS::Timestream::ScheduledQuery.NotificationConfiguration": { + "additionalProperties": false, + "properties": { + "SnsConfiguration": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.SnsConfiguration", + "markdownDescription": "Details on SNS configuration\\. \n*Required*: Yes \n*Type*: [SnsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-snsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SnsConfiguration" + } + }, + "required": [ + "SnsConfiguration" + ], + "type": "object" + }, + "AWS::Timestream::ScheduledQuery.S3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "markdownDescription": "Name of the S3 bucket under which error reports will be created\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "BucketName", + "type": "string" + }, + "EncryptionOption": { + "markdownDescription": "Encryption at rest options for the error reports\\. If no encryption option is specified, Timestream will choose SSE\\_S3 as default\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `SSE_KMS | SSE_S3` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "EncryptionOption", + "type": "string" + }, + "ObjectKeyPrefix": { + "markdownDescription": "Prefix for the error report key\\. Timestream by default adds the following prefix to the error report path\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `928` \n*Pattern*: `[a-zA-Z0-9|!\\-_*'\\(\\)]([a-zA-Z0-9]|[!\\-_*'\\(\\)\\/.])+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ObjectKeyPrefix", + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "AWS::Timestream::ScheduledQuery.ScheduleConfiguration": { + "additionalProperties": false, + "properties": { + "ScheduleExpression": { + "markdownDescription": "An expression that denotes when to trigger the scheduled query run\\. This can be a cron expression or a rate expression\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ScheduleExpression", + "type": "string" + } + }, + "required": [ + "ScheduleExpression" + ], + "type": "object" + }, + "AWS::Timestream::ScheduledQuery.SnsConfiguration": { + "additionalProperties": false, + "properties": { + "TopicArn": { + "markdownDescription": "SNS topic ARN that the scheduled query status notifications will be sent to\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TopicArn", + "type": "string" + } + }, + "required": [ + "TopicArn" + ], + "type": "object" + }, + "AWS::Timestream::ScheduledQuery.TargetConfiguration": { + "additionalProperties": false, + "properties": { + "TimestreamConfiguration": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.TimestreamConfiguration", + "markdownDescription": "Configuration needed to write data into the Timestream database and table\\. \n*Required*: Yes \n*Type*: [TimestreamConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-timestreamconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TimestreamConfiguration" + } + }, + "required": [ + "TimestreamConfiguration" + ], + "type": "object" + }, + "AWS::Timestream::ScheduledQuery.TimestreamConfiguration": { + "additionalProperties": false, + "properties": { + "DatabaseName": { + "markdownDescription": "Name of Timestream database to which the query result will be written\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatabaseName", + "type": "string" + }, + "DimensionMappings": { + "items": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.DimensionMapping" + }, + "markdownDescription": "This is to allow mapping column\\(s\\) from the query result to the dimension in the destination table\\. \n*Required*: Yes \n*Type*: List of [DimensionMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-dimensionmapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DimensionMappings", + "type": "array" + }, + "MeasureNameColumn": { + "markdownDescription": "Name of the measure column\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MeasureNameColumn", + "type": "string" + }, + "MixedMeasureMappings": { + "items": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.MixedMeasureMapping" + }, + "markdownDescription": "Specifies how to map measures to multi\\-measure records\\. \n*Required*: No \n*Type*: List of [MixedMeasureMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-mixedmeasuremapping.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MixedMeasureMappings", + "type": "array" + }, + "MultiMeasureMappings": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.MultiMeasureMappings", + "markdownDescription": "Multi\\-measure mappings\\. \n*Required*: No \n*Type*: [MultiMeasureMappings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-multimeasuremappings.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MultiMeasureMappings" + }, + "TableName": { + "markdownDescription": "Name of Timestream table that the query result will be written to\\. The table should be within the same database that is provided in Timestream configuration\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TableName", + "type": "string" + }, + "TimeColumn": { + "markdownDescription": "Column from query result that should be used as the time column in destination table\\. Column type for this should be TIMESTAMP\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name of the Timestream database that contains this table\\. \n*Length Constraints*: Minimum length of 3 bytes\\. Maximum length of 256 bytes\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatabaseName", + "type": "string" + }, + "MagneticStoreWriteProperties": { + "$ref": "#/definitions/AWS::Timestream::Table.MagneticStoreWriteProperties", + "markdownDescription": "Contains properties to set on the table when enabling magnetic store writes\\. \nThis object has the following attributes: \n+ *EnableMagneticStoreWrites*: A `boolean` flag to enable magnetic store writes\\.\n+ *MagneticStoreRejectedDataLocation*: The location to write error reports for records rejected, asynchronously, during magnetic store writes\\. Only `S3Configuration` objects are allowed\\. The `S3Configuration` object has the following attributes: \n + *BucketName*: The name of the S3 bucket\\.\n + *EncryptionOption*: The encryption option for the S3 location\\. Valid values are S3 server\\-side encryption with an S3 managed key \\(`SSE_S3`\\) or AWS managed key \\(` SSE_KMS`\\)\\.\n + *KmsKeyId*: The AWS KMS key ID to use when encrypting with an AWS managed key\\.\n + *ObjectKeyPrefix*: The prefix to use option for the objects stored in S3\\.", + "title": "MagneticStoreWriteProperties" + }, + "RetentionProperties": { + "$ref": "#/definitions/AWS::Timestream::Table.RetentionProperties", + "markdownDescription": "The retention duration for the memory store and magnetic store\\. This object has the following attributes: \n+ *MemoryStoreRetentionPeriodInHours*: Retention duration for memory store, in hours\\.\n+ *MagneticStoreRetentionPeriodInDays*: Retention duration for magnetic store, in days\\.\nBoth attributes are of type `string`\\. Both attributes are **required** when `RetentionProperties` is specified\\. \nSee the following examples: \n**JSON**", + "title": "RetentionProperties" + }, + "TableName": { + "markdownDescription": "The name of the Timestream table\\. \n*Length Constraints*: Minimum length of 3 bytes\\. Maximum length of 256 bytes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TableName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to add to the table \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + } + }, + "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AWS Certificate Manager \\(ACM\\) certificate\\. Required when `Protocols` is set to `FTPS`\\. \nTo request a new public certificate, see [Request a public certificate](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html) in the * AWS Certificate Manager User Guide*\\. \nTo import an existing certificate into ACM, see [Importing certificates into ACM](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html) in the * AWS Certificate Manager User Guide*\\. \nTo request a private certificate to use FTPS through private IP addresses, see [Request a private certificate](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html) in the * AWS Certificate Manager User Guide*\\. \nCertificates with the following cryptographic algorithms and key sizes are supported: \n+ 2048\\-bit RSA \\(RSA\\_2048\\)\n+ 4096\\-bit RSA \\(RSA\\_4096\\)\n+ Elliptic Prime Curve 256 bit \\(EC\\_prime256v1\\)\n+ Elliptic Prime Curve 384 bit \\(EC\\_secp384r1\\)\n+ Elliptic Prime Curve 521 bit \\(EC\\_secp521r1\\)\nThe certificate must be a valid SSL/TLS X\\.509 version 3 certificate with FQDN or IP address specified and information about the issuer\\.\n*Required*: No \n*Type*: String \n*Maximum*: `1600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Certificate", + "type": "string" + }, + "Domain": { + "markdownDescription": "Specifies the domain of the storage system that is used for file transfers\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `EFS | S3` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Domain", + "type": "string" + }, + "EndpointDetails": { + "$ref": "#/definitions/AWS::Transfer::Server.EndpointDetails", + "markdownDescription": "The virtual private cloud \\(VPC\\) endpoint settings that are configured for your server\\. When you host your endpoint within your VPC, you can make it accessible only to resources within your VPC, or you can attach Elastic IP addresses and make it accessible to clients over the internet\\. Your VPC's default security groups are automatically assigned to your endpoint\\. \n*Required*: No \n*Type*: [EndpointDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-endpointdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointDetails" + }, + "EndpointType": { + "markdownDescription": "The type of endpoint that you want your server to use\\. You can choose to make your server's endpoint publicly accessible \\(PUBLIC\\) or host it inside your VPC\\. With an endpoint that is hosted in a VPC, you can restrict access to your server and resources only within your VPC or choose to make it internet facing by attaching Elastic IP addresses directly to it\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PUBLIC | VPC | VPC_ENDPOINT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "EndpointType", + "type": "string" + }, + "IdentityProviderDetails": { + "$ref": "#/definitions/AWS::Transfer::Server.IdentityProviderDetails", + "markdownDescription": "Required when `IdentityProviderType` is set to `AWS_DIRECTORY_SERVICE` or `API_GATEWAY`\\. Accepts an array containing all of the information required to use a directory in `AWS_DIRECTORY_SERVICE` or invoke a customer\\-supplied authentication API, including the API Gateway URL\\. Not required when `IdentityProviderType` is set to `SERVICE_MANAGED`\\. \n*Required*: No \n*Type*: [IdentityProviderDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-identityproviderdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IdentityProviderDetails" + }, + "IdentityProviderType": { + "markdownDescription": "Specifies the mode of authentication for a server\\. The default value is `SERVICE_MANAGED`, which allows you to store and access user credentials within the AWS Transfer Family service\\. \nUse `AWS_DIRECTORY_SERVICE` to provide access to Active Directory groups in AWS Managed Active Directory or Microsoft Active Directory in your on\\-premises environment or in AWS using AD Connectors\\. This option also requires you to provide a Directory ID using the `IdentityProviderDetails` parameter\\. \nUse the `API_GATEWAY` value to integrate with an identity provider of your choosing\\. The `API_GATEWAY` setting requires you to provide an API Gateway endpoint URL to call for authentication using the `IdentityProviderDetails` parameter\\. \nUse the `AWS_LAMBDA` value to directly use a Lambda function as your identity provider\\. If you choose this value, you must specify the ARN for the lambda function in the `Function` parameter for the `IdentityProviderDetails` data type\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `API_GATEWAY | AWS_DIRECTORY_SERVICE | AWS_LAMBDA | SERVICE_MANAGED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "IdentityProviderType", + "type": "string" + }, + "LoggingRole": { + "markdownDescription": "Specifies the Amazon Resource Name \\(ARN\\) of the AWS Identity and Access Management \\(IAM\\) role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events\\. When set, user activity can be viewed in your CloudWatch logs\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:.*role/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingRole", + "type": "string" + }, + "PostAuthenticationLoginBanner": { + "markdownDescription": "Specify a string to display when users connect to a server\\. This string is displayed after the user authenticates\\. \nThe SFTP protocol does not support post\\-authentication display banners\\.\n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[\\x09-\\x0D\\x20-\\x7E]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PostAuthenticationLoginBanner", + "type": "string" + }, + "PreAuthenticationLoginBanner": { + "markdownDescription": "Specify a string to display when users connect to a server\\. This string is displayed before the user authenticates\\. For example, the following banner displays details about using the system\\. \n `This system is for the use of authorized users only. Individuals using this computer system without authority, or in excess of their authority, are subject to having all of their activities on this system monitored and recorded by system personnel.` \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[\\x09-\\x0D\\x20-\\x7E]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PreAuthenticationLoginBanner", + "type": "string" + }, + "ProtocolDetails": { + "$ref": "#/definitions/AWS::Transfer::Server.ProtocolDetails", + "markdownDescription": "The protocol settings that are configured for your server\\. \n Use the `PassiveIp` parameter to indicate passive mode \\(for FTP and FTPS protocols\\)\\. Enter a single dotted\\-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer\\. \nUse the `TlsSessionResumptionMode` parameter to determine whether or not your Transfer server resumes recent, negotiated sessions through a unique session ID\\. \n*Required*: No \n*Type*: [ProtocolDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-protocoldetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProtocolDetails" + }, + "Protocols": { + "items": { + "$ref": "#/definitions/AWS::Transfer::Server.Protocol" + }, + "markdownDescription": "Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint\\. The available protocols are: \n+ `SFTP` \\(Secure Shell \\(SSH\\) File Transfer Protocol\\): File transfer over SSH\n+ `FTPS` \\(File Transfer Protocol Secure\\): File transfer with TLS encryption\n+ `FTP` \\(File Transfer Protocol\\): Unencrypted file transfer\nIf you select `FTPS`, you must choose a certificate stored in AWS Certificate Manager \\(ACM\\) which is used to identify your server when clients connect to it over FTPS\\. \nIf `Protocol` includes either `FTP` or `FTPS`, then the `EndpointType` must be `VPC` and the `IdentityProviderType` must be `AWS_DIRECTORY_SERVICE` or `API_GATEWAY`\\. \nIf `Protocol` includes `FTP`, then `AddressAllocationIds` cannot be associated\\. \nIf `Protocol` is set only to `SFTP`, the `EndpointType` can be set to `PUBLIC` and the `IdentityProviderType` can be set to `SERVICE_MANAGED`\\.\n*Required*: No \n*Type*: List of [Protocol](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-protocol.html) \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Protocols", + "type": "array" + }, + "SecurityPolicyName": { + "markdownDescription": "Specifies the name of the security policy that is attached to the server\\. \n*Required*: No \n*Type*: String \n*Maximum*: `100` \n*Pattern*: `TransferSecurityPolicy-.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityPolicyName", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Key\\-value pairs that can be used to group and search for servers\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "WorkflowDetails": { + "$ref": "#/definitions/AWS::Transfer::Server.WorkflowDetails", + "markdownDescription": "Specifies the workflow ID for the workflow to assign and the execution role used for executing the workflow\\. \n*Required*: No \n*Type*: [WorkflowDetails](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-workflowdetails.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "A list of address allocation IDs that are required to attach an Elastic IP address to your server's endpoint\\. \nThis property can only be set when `EndpointType` is set to `VPC` and it is only valid in the `UpdateServer` API\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "AddressAllocationIds", + "type": "array" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of security groups IDs that are available to attach to your server's endpoint\\. \nThis property can only be set when `EndpointType` is set to `VPC`\\. \nYou can edit the `SecurityGroupIds` property in the [UpdateServer](https://docs.aws.amazon.com/transfer/latest/userguide/API_UpdateServer.html) API only if you are changing the `EndpointType` from `PUBLIC` or `VPC_ENDPOINT` to `VPC`\\. To change security groups associated with your server's VPC endpoint after creation, use the Amazon EC2 [ModifyVpcEndpoint](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpoint.html) API\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecurityGroupIds", + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "markdownDescription": "A list of subnet IDs that are required to host your server endpoint in your VPC\\. \nThis property can only be set when `EndpointType` is set to `VPC`\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SubnetIds", + "type": "array" + }, + "VpcEndpointId": { + "markdownDescription": "The ID of the VPC endpoint\\. \nThis property can only be set when `EndpointType` is set to `VPC_ENDPOINT`\\.\n*Required*: No \n*Type*: String \n*Minimum*: `22` \n*Maximum*: `22` \n*Pattern*: `^vpce-[0-9a-f]{17}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcEndpointId", + "type": "string" + }, + "VpcId": { + "markdownDescription": "The VPC ID of the virtual private cloud in which the server's endpoint will be hosted\\. \nThis property can only be set when `EndpointType` is set to `VPC`\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VpcId", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Transfer::Server.IdentityProviderDetails": { + "additionalProperties": false, + "properties": { + "DirectoryId": { + "markdownDescription": "The identifier of the AWS Directory Service directory that you want to stop sharing\\. \n*Required*: No \n*Type*: String \n*Minimum*: `12` \n*Maximum*: `12` \n*Pattern*: `^d-[0-9a-f]{10}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DirectoryId", + "type": "string" + }, + "Function": { + "markdownDescription": "The ARN for a lambda function to use for the Identity provider\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `170` \n*Pattern*: `^arn:[a-z-]+:lambda:.*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Function", + "type": "string" + }, + "InvocationRole": { + "markdownDescription": "Provides the type of `InvocationRole` used to authenticate the user account\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:.*role/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InvocationRole", + "type": "string" + }, + "Url": { + "markdownDescription": "Provides the location of the service endpoint used to authenticate users\\. \n*Required*: No \n*Type*: String \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Indicates passive mode, for FTP and FTPS protocols\\. Enter a single dotted\\-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PassiveIp", + "type": "string" + }, + "SetStatOption": { + "type": "string" + }, + "TlsSessionResumptionMode": { + "markdownDescription": "A property used with Transfer servers that use the FTPS protocol\\. TLS Session Resumption provides a mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS session\\. `TlsSessionResumptionMode` determines whether or not the server resumes recent, negotiated sessions through a unique session ID\\. This property is available during `CreateServer` and `UpdateServer` calls\\. If a `TlsSessionResumptionMode` value is not specified during CreateServer, it is set to `ENFORCED` by default\\. \n+ `DISABLED`: the server does not process TLS session resumption client requests and creates a new TLS session for each request\\. \n+ `ENABLED`: the server processes and accepts clients that are performing TLS session resumption\\. The server doesn't reject client data connections that do not perform the TLS session resumption client processing\\.\n+ `ENFORCED`: the server processes and accepts clients that are performing TLS session resumption\\. The server rejects client data connections that do not perform the TLS session resumption client processing\\. Before you set the value to `ENFORCED`, test your clients\\.\n**Note** \nNot all FTPS clients perform TLS session resumption\\. So, if you choose to enforce TLS session resumption, you prevent any connections from FTPS clients that don't perform the protocol negotiation\\. To determine whether or not you can use the `ENFORCED` value, you need to test your clients\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED | ENFORCED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TlsSessionResumptionMode", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Transfer::Server.WorkflowDetail": { + "additionalProperties": false, + "properties": { + "ExecutionRole": { + "markdownDescription": "Includes the necessary permissions for S3, EFS, and Lambda operations that Transfer can assume, so that all workflow steps can operate on the required resources \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:.*role/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExecutionRole", + "type": "string" + }, + "WorkflowId": { + "markdownDescription": "A unique identifier for the workflow\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `19` \n*Maximum*: `19` \n*Pattern*: `^w-([a-z0-9]{17})$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "A trigger that starts a workflow: the workflow begins to execute after a file is uploaded\\. \nTo remove an associated workflow from a server, you can provide an empty `OnUpload` object, as in the following example\\. \n `aws transfer update-server --server-id s-01234567890abcdef --workflow-details '{\"OnUpload\":[]}'` \n*Required*: Yes \n*Type*: List of [WorkflowDetail](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-workflowdetail.html) \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OnUpload", + "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": { + "markdownDescription": "The landing directory \\(folder\\) for a user when they log in to the server using the client\\. \nA `HomeDirectory` example is `/bucket_name/home/mydirectory`\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^$|/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HomeDirectory", + "type": "string" + }, + "HomeDirectoryMappings": { + "items": { + "$ref": "#/definitions/AWS::Transfer::User.HomeDirectoryMapEntry" + }, + "markdownDescription": "Logical directory mappings that specify what Amazon S3 paths and keys should be visible to your user and how you want to make them visible\\. You will need to specify the \"`Entry`\" and \"`Target`\" pair, where `Entry` shows how the path is made visible and `Target` is the actual Amazon S3 path\\. If you only specify a target, it will be displayed as is\\. You will need to also make sure that your IAM role provides access to paths in `Target`\\. The following is an example\\. \n `'[ { \"Entry\": \"/\", \"Target\": \"/bucket3/customized-reports/\" } ]'` \nIn most cases, you can use this value instead of the session policy to lock your user down to the designated home directory \\(\"chroot\"\\)\\. To do this, you can set `Entry` to '/' and set `Target` to the HomeDirectory parameter value\\. \nIf the target of a logical directory entry does not exist in Amazon S3, the entry will be ignored\\. As a workaround, you can use the Amazon S3 API to create 0 byte objects as place holders for your directory\\. If using the CLI, use the `s3api` call instead of `s3` so you can use the put\\-object operation\\. For example, you use the following: `AWS s3api put-object --bucket bucketname --key path/to/folder/`\\. Make sure that the end of the key name ends in a '/' for it to be considered a folder\\.\n*Required*: No \n*Type*: List of [HomeDirectoryMapEntry](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-user-homedirectorymapentry.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HomeDirectoryMappings", + "type": "array" + }, + "HomeDirectoryType": { + "markdownDescription": "The type of landing directory \\(folder\\) you want your users' home directory to be when they log into the server\\. If you set it to `PATH`, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients\\. If you set it `LOGICAL`, you need to provide mappings in the `HomeDirectoryMappings` for how you want to make Amazon S3 or EFS paths visible to your users\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `LOGICAL | PATH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HomeDirectoryType", + "type": "string" + }, + "Policy": { + "markdownDescription": "A session policy for your user so you can use the same IAM role across multiple users\\. This policy restricts user access to portions of their Amazon S3 bucket\\. Variables that you can use inside this policy include `${Transfer:UserName}`, `${Transfer:HomeDirectory}`, and `${Transfer:HomeBucket}`\\. \nFor session policies, AWS Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name \\(ARN\\) of the policy\\. You save the policy as a JSON blob and pass it in the `Policy` argument\\. \nFor an example of a session policy, see [Example session policy](https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html)\\. \nFor more information, see [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) in the *AWS Security Token Service API Reference*\\.\n*Required*: No \n*Type*: String \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Policy", + "type": "string" + }, + "PosixProfile": { + "$ref": "#/definitions/AWS::Transfer::User.PosixProfile", + "markdownDescription": "Specifies the full POSIX identity, including user ID \\(`Uid`\\), group ID \\(`Gid`\\), and any secondary groups IDs \\(`SecondaryGids`\\), that controls your users' access to your Amazon Elastic File System \\(Amazon EFS\\) file systems\\. The POSIX permissions that are set on files and directories in your file system determine the level of access your users get when transferring files into and out of your Amazon EFS file systems\\. \n*Required*: No \n*Type*: [PosixProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-user-posixprofile.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PosixProfile" + }, + "Role": { + "markdownDescription": "Specifies the Amazon Resource Name \\(ARN\\) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS file system\\. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or EFS file system\\. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `arn:.*role/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Role", + "type": "string" + }, + "ServerId": { + "markdownDescription": "A system\\-assigned unique identifier for a server instance\\. This is the specific server that you added your user to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `19` \n*Maximum*: `19` \n*Pattern*: `^s-([0-9a-f]{17})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServerId", + "type": "string" + }, + "SshPublicKeys": { + "items": { + "$ref": "#/definitions/AWS::Transfer::User.SshPublicKey" + }, + "markdownDescription": "Specifies the public key portion of the Secure Shell \\(SSH\\) keys stored for the described user\\. \n*Required*: No \n*Type*: List of [SshPublicKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-user-sshpublickey.html) \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SshPublicKeys", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Key\\-value pairs that can be used to group and search for users\\. Tags are metadata attached to users for any purpose\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "UserName": { + "markdownDescription": "A unique string that identifies a user and is associated with a `ServerId`\\. This user name must be a minimum of 3 and a maximum of 100 characters long\\. The following are valid characters: a\\-z, A\\-Z, 0\\-9, underscore '\\_', hyphen '\\-', period '\\.', and at sign '@'\\. The user name can't start with a hyphen, period, or at sign\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `100` \n*Pattern*: `^[\\w][\\w@.-]{2,99}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Represents an entry for `HomeDirectoryMappings`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Entry", + "type": "string" + }, + "Target": { + "markdownDescription": "Represents the map target that is used in a `HomeDirectorymapEntry`\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `^/.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Target", + "type": "string" + } + }, + "required": [ + "Entry", + "Target" + ], + "type": "object" + }, + "AWS::Transfer::User.PosixProfile": { + "additionalProperties": false, + "properties": { + "Gid": { + "markdownDescription": "The POSIX group ID used for all EFS operations by this user\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Gid", + "type": "number" + }, + "SecondaryGids": { + "items": { + "type": "number" + }, + "markdownDescription": "The secondary POSIX group IDs used for all EFS operations by this user\\. \n*Required*: No \n*Type*: List of Double \n*Maximum*: `16` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SecondaryGids", + "type": "array" + }, + "Uid": { + "markdownDescription": "The POSIX user ID used for all EFS operations by this user\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "Specifies the text description for the workflow\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^[\\w- ]*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "OnExceptionSteps": { + "items": { + "$ref": "#/definitions/AWS::Transfer::Workflow.WorkflowStep" + }, + "markdownDescription": "Specifies the steps \\(actions\\) to take if errors are encountered during execution of the workflow\\. \n*Required*: No \n*Type*: List of [WorkflowStep](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-workflow-workflowstep.html) \n*Maximum*: `8` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "OnExceptionSteps", + "type": "array" + }, + "Steps": { + "items": { + "$ref": "#/definitions/AWS::Transfer::Workflow.WorkflowStep" + }, + "markdownDescription": "Specifies the details for the steps that are in the specified workflow\\. \n*Required*: Yes \n*Type*: List of [WorkflowStep](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-workflow-workflowstep.html) \n*Maximum*: `8` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Steps", + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Key\\-value pairs that can be used to group and search for workflows\\. Tags are metadata attached to workflows for any purpose\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `50` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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.S3FileLocation" + }, + "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.DecryptStepDetails": { + "additionalProperties": false, + "properties": { + "DestinationFileLocation": { + "$ref": "#/definitions/AWS::Transfer::Workflow.InputFileLocation" + }, + "Name": { + "type": "string" + }, + "OverwriteExisting": { + "type": "string" + }, + "SourceFileLocation": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Transfer::Workflow.DeleteStepDetails": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "SourceFileLocation": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Transfer::Workflow.EfsInputFileLocation": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "type": "string" + }, + "Path": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Transfer::Workflow.InputFileLocation": { + "additionalProperties": false, + "properties": { + "EfsFileLocation": { + "$ref": "#/definitions/AWS::Transfer::Workflow.EfsInputFileLocation" + }, + "S3FileLocation": { + "$ref": "#/definitions/AWS::Transfer::Workflow.S3InputFileLocation" + } + }, + "type": "object" + }, + "AWS::Transfer::Workflow.S3FileLocation": { + "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", + "markdownDescription": "Details for a step that performs a file copy\\. \n Consists of the following values: \n+ A description\n+ An S3 location for the destination of the file copy\\.\n+ A flag that indicates whether or not to overwrite an existing file of the same name\\. The default is `FALSE`\\.\n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CopyStepDetails" + }, + "CustomStepDetails": { + "$ref": "#/definitions/AWS::Transfer::Workflow.CustomStepDetails", + "markdownDescription": "Details for a step that invokes a lambda function\\. \n Consists of the lambda function name, target, and timeout \\(in seconds\\)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CustomStepDetails" + }, + "DecryptStepDetails": { + "$ref": "#/definitions/AWS::Transfer::Workflow.DecryptStepDetails" + }, + "DeleteStepDetails": { + "$ref": "#/definitions/AWS::Transfer::Workflow.DeleteStepDetails", + "markdownDescription": "Details for a step that deletes the file\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DeleteStepDetails" + }, + "TagStepDetails": { + "$ref": "#/definitions/AWS::Transfer::Workflow.TagStepDetails", + "markdownDescription": "Details for a step that creates one or more tags\\. \nYou specify one or more tags: each tag contains a key/value pair\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TagStepDetails" + }, + "Type": { + "markdownDescription": "Currently, the following step types are supported\\. \n+ *Copy*: copy the file to another location\n+ *Custom*: custom step with a lambda target\n+ *Delete*: delete the file\n+ *Tag*: add a tag to the file\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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" + }, + "markdownDescription": "Specifies the bytes \\(typically a string that corresponds with ASCII characters\\) that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings\\. \n*Required*: No \n*Type*: List of [ByteMatchTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ByteMatchTuples", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the `ByteMatchSet`\\. You can't change `Name` after you create a `ByteMatchSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "The part of a web request that you want to inspect, such as a specified header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" + }, + "PositionalConstraint": { + "markdownDescription": "Within the portion of a web request that you want to search \\(for example, in the query string, if any\\), specify where you want AWS WAF to search\\. Valid values include the following: \n **CONTAINS** \nThe specified part of the web request must include the value of `TargetString`, but the location doesn't matter\\. \n **CONTAINS\\_WORD** \nThe specified part of the web request must include the value of `TargetString`, and `TargetString` must contain only alphanumeric characters or underscore \\(A\\-Z, a\\-z, 0\\-9, or \\_\\)\\. In addition, `TargetString` must be a word, which means one of the following: \n+ `TargetString` exactly matches the value of the specified part of the web request, such as the value of a header\\.\n+ `TargetString` is at the beginning of the specified part of the web request and is followed by a character other than an alphanumeric character or underscore \\(\\_\\), for example, `BadBot;`\\.\n+ `TargetString` is at the end of the specified part of the web request and is preceded by a character other than an alphanumeric character or underscore \\(\\_\\), for example, `;BadBot`\\.\n+ `TargetString` is in the middle of the specified part of the web request and is preceded and followed by characters other than alphanumeric characters or underscore \\(\\_\\), for example, `-BadBot;`\\.\n **EXACTLY** \nThe value of the specified part of the web request must exactly match the value of `TargetString`\\. \n **STARTS\\_WITH** \nThe value of `TargetString` must appear at the beginning of the specified part of the web request\\. \n **ENDS\\_WITH** \nThe value of `TargetString` must appear at the end of the specified part of the web request\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CONTAINS | CONTAINS_WORD | ENDS_WITH | EXACTLY | STARTS_WITH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PositionalConstraint", + "type": "string" + }, + "TargetString": { + "markdownDescription": "The value that you want AWS WAF to search for\\. AWS WAF searches for the specified string in the part of web requests that you specified in `FieldToMatch`\\. The maximum length of the value is 50 bytes\\. \nYou must specify this property or the `TargetStringBase64` property\\. \nValid values depend on the values that you specified for `FieldToMatch`: \n+ `HEADER`: The value that you want AWS WAF to search for in the request header that you specified in `FieldToMatch`, for example, the value of the `User-Agent` or `Referer` header\\.\n+ `METHOD`: The HTTP method, which indicates the type of operation specified in the request\\. Amazon CloudFront supports the following methods: `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, and `PUT`\\.\n+ `QUERY_STRING`: The value that you want AWS WAF to search for in the query string, which is the part of a URL that appears after a `?` character\\.\n+ `URI`: The value that you want AWS WAF to search for in the part of a URL that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but instead of inspecting a single parameter, AWS WAF inspects all parameters within the query string for the value or regex pattern that you specify in `TargetString`\\.\nIf `TargetString` includes alphabetic characters A\\-Z and a\\-z, note that the value is case sensitive\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetString", + "type": "string" + }, + "TargetStringBase64": { + "markdownDescription": "The base64\\-encoded value that AWS WAF searches for\\. AWS CloudFormation sends this value to AWS WAF without encoding it\\. \nYou must specify this property or the `TargetString` property\\. \nAWS WAF searches for this value in a specific part of web requests, which you define in the `FieldToMatch` property\\. \nValid values depend on the Type value in the `FieldToMatch` property\\. For example, for a `METHOD` type, you must specify HTTP methods such as `DELETE, GET, HEAD, OPTIONS, PATCH, POST`, and `PUT`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetStringBase64", + "type": "string" + }, + "TextTransformation": { + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting it for a match\\. \nYou can only specify a single type of TextTransformation\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformation", + "type": "string" + } + }, + "required": [ + "FieldToMatch", + "PositionalConstraint", + "TextTransformation" + ], + "type": "object" + }, + "AWS::WAF::ByteMatchSet.FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "markdownDescription": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Data", + "type": "string" + }, + "Type": { + "markdownDescription": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicated the type of operation that the request is asking the origin to perform\\. Amazon CloudFront supports the following methods: `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, and `PUT`\\.\n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\.\n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "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" + }, + "markdownDescription": "The IP address type \\(`IPV4` or `IPV6`\\) and the IP address range \\(in CIDR notation\\) that web requests originate from\\. If the `WebACL` is associated with an Amazon CloudFront distribution and the viewer did not use an HTTP proxy or a load balancer to send the request, this is the value of the c\\-ip field in the CloudFront access logs\\. \n*Required*: No \n*Type*: List of [IPSetDescriptor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-ipset-ipsetdescriptors.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IPSetDescriptors", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the `IPSet`\\. You can't change the name of an `IPSet` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Specify `IPV4` or `IPV6`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `IPV4 | IPV6` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "Value": { + "markdownDescription": "Specify an IPv4 address by using CIDR notation\\. For example: \n+ To configure AWS WAF to allow, block, or count requests that originated from the IP address 192\\.0\\.2\\.44, specify `192.0.2.44/32`\\.\n+ To configure AWS WAF to allow, block, or count requests that originated from IP addresses from 192\\.0\\.2\\.0 to 192\\.0\\.2\\.255, specify `192.0.2.0/24`\\.\nFor more information about CIDR notation, see the Wikipedia entry [Classless Inter\\-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\\. \nSpecify an IPv6 address by using CIDR notation\\. For example: \n+ To configure AWS WAF to allow, block, or count requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify `1111:0000:0000:0000:0000:0000:0000:0111/128`\\.\n+ To configure AWS WAF to allow, block, or count requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify `1111:0000:0000:0000:0000:0000:0000:0000/64`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the metrics for this `Rule`\\. The name can contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\), with maximum length 128 and minimum length one\\. It can't contain whitespace or metric names reserved for AWS WAF, including \"All\" and \"Default\\_Action\\.\" You can't change `MetricName` after you create the `Rule`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricName", + "type": "string" + }, + "Name": { + "markdownDescription": "The friendly name or description for the `Rule`\\. You can't change the name of a `Rule` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Predicates": { + "items": { + "$ref": "#/definitions/AWS::WAF::Rule.Predicate" + }, + "markdownDescription": "The `Predicates` object contains one `Predicate` element for each `ByteMatchSet`, `IPSet`, or `SqlInjectionMatchSet` object that you want to include in a `Rule`\\. \n*Required*: No \n*Type*: List of [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-rule-predicates.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Predicates", + "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": { + "markdownDescription": "A unique identifier for a predicate in a `Rule`, such as `ByteMatchSetId` or `IPSetId`\\. The ID is returned by the corresponding `Create` or `List` command\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataId", + "type": "string" + }, + "Negated": { + "markdownDescription": "Set `Negated` to `False` if you want AWS WAF to allow, block, or count requests based on the settings in the specified `ByteMatchSet`, `IPSet`, `SqlInjectionMatchSet`, `XssMatchSet`, `RegexMatchSet`, `GeoMatchSet`, or `SizeConstraintSet`\\. For example, if an `IPSet` includes the IP address `192.0.2.44`, AWS WAF will allow or block requests based on that IP address\\. \nSet `Negated` to `True` if you want AWS WAF to allow or block a request based on the negation of the settings in the `ByteMatchSet`, `IPSet`, `SqlInjectionMatchSet`, `XssMatchSet`, `RegexMatchSet`, `GeoMatchSet`, or `SizeConstraintSet`\\. For example, if an `IPSet` includes the IP address `192.0.2.44`, AWS WAF will allow, block, or count requests based on all IP addresses *except* `192.0.2.44`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Negated", + "type": "boolean" + }, + "Type": { + "markdownDescription": "The type of predicate in a `Rule`, such as `ByteMatch` or `IPSet`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ByteMatch | GeoMatch | IPMatch | RegexMatch | SizeConstraint | SqlInjectionMatch | XssMatch` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "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": { + "markdownDescription": "The name, if any, of the `SizeConstraintSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "SizeConstraints": { + "items": { + "$ref": "#/definitions/AWS::WAF::SizeConstraintSet.SizeConstraint" + }, + "markdownDescription": "The size constraint and the part of the web request to check\\. \n*Required*: Yes \n*Type*: List of [SizeConstraint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SizeConstraints", + "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": { + "markdownDescription": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Data", + "type": "string" + }, + "Type": { + "markdownDescription": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicated the type of operation that the request is asking the origin to perform\\. Amazon CloudFront supports the following methods: `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, and `PUT`\\.\n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::WAF::SizeConstraintSet.SizeConstraint": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "markdownDescription": "The type of comparison you want AWS WAF to perform\\. AWS WAF uses this in combination with the provided `Size` and `FieldToMatch` to build an expression in the form of \"`Size` `ComparisonOperator` size in bytes of `FieldToMatch`\"\\. If that expression is true, the `SizeConstraint` is considered to match\\. \n **EQ**: Used to test if the `Size` is equal to the size of the `FieldToMatch` \n **NE**: Used to test if the `Size` is not equal to the size of the `FieldToMatch` \n **LE**: Used to test if the `Size` is less than or equal to the size of the `FieldToMatch` \n **LT**: Used to test if the `Size` is strictly less than the size of the `FieldToMatch` \n **GE**: Used to test if the `Size` is greater than or equal to the size of the `FieldToMatch` \n **GT**: Used to test if the `Size` is strictly greater than the size of the `FieldToMatch` \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EQ | GE | GT | LE | LT | NE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComparisonOperator", + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAF::SizeConstraintSet.FieldToMatch", + "markdownDescription": "The part of a web request that you want to inspect, such as a specified header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sizeconstraintset-sizeconstraint-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" + }, + "Size": { + "markdownDescription": "The size in bytes that you want AWS WAF to compare against the size of the specified `FieldToMatch`\\. AWS WAF uses this in combination with `ComparisonOperator` and `FieldToMatch` to build an expression in the form of \"`Size` `ComparisonOperator` size in bytes of `FieldToMatch`\"\\. If that expression is true, the `SizeConstraint` is considered to match\\. \nValid values for size are 0 \\- 21474836480 bytes \\(0 \\- 20 GB\\)\\. \nIf you specify `URI` for the value of `Type`, the / in the URI path that you specify counts as one character\\. For example, the URI `/logo.jpg` is nine characters long\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Size", + "type": "number" + }, + "TextTransformation": { + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting it for a match\\. \nYou can only specify a single type of TextTransformation\\. \nNote that if you choose `BODY` for the value of `Type`, you must choose `NONE` for `TextTransformation` because Amazon CloudFront forwards only the first 8192 bytes for inspection\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name, if any, of the `SqlInjectionMatchSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "SqlInjectionMatchTuples": { + "items": { + "$ref": "#/definitions/AWS::WAF::SqlInjectionMatchSet.SqlInjectionMatchTuple" + }, + "markdownDescription": "Specifies the parts of web requests that you want to inspect for snippets of malicious SQL code\\. \n*Required*: No \n*Type*: List of [SqlInjectionMatchTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-sqlinjectionmatchset-sqlinjectionmatchtuples.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SqlInjectionMatchTuples", + "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": { + "markdownDescription": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Data", + "type": "string" + }, + "Type": { + "markdownDescription": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicated the type of operation that the request is asking the origin to perform\\. Amazon CloudFront supports the following methods: `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, and `PUT`\\.\n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::WAF::SqlInjectionMatchSet.SqlInjectionMatchTuple": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAF::SqlInjectionMatchSet.FieldToMatch", + "markdownDescription": "The part of a web request that you want to inspect, such as a specified header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-bytematchset-bytematchtuples-fieldtomatch-1.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" + }, + "TextTransformation": { + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting it for a match\\. \nYou can only specify a single type of TextTransformation\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The action to perform if none of the `Rules` contained in the `WebACL` match\\. The action is specified by the `WafAction` object\\. \n*Required*: Yes \n*Type*: [WafAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-webacl-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultAction" + }, + "MetricName": { + "markdownDescription": "The name of the metrics for this `WebACL`\\. The name can contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\), with maximum length 128 and minimum length one\\. It can't contain whitespace or metric names reserved for AWS WAF, including \"All\" and \"Default\\_Action\\.\" You can't change `MetricName` after you create the `WebACL`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricName", + "type": "string" + }, + "Name": { + "markdownDescription": "A friendly name or description of the `WebACL`\\. You can't change the name of a `WebACL` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::WAF::WebACL.ActivatedRule" + }, + "markdownDescription": "An array that contains the action for each `Rule` in a `WebACL`, the priority of the `Rule`, and the ID of the `Rule`\\. \n*Required*: No \n*Type*: List of [ActivatedRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-webacl-rules.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", + "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", + "markdownDescription": "Specifies the action that Amazon CloudFront or AWS WAF takes when a web request matches the conditions in the `Rule`\\. Valid values for `Action` include the following: \n+ `ALLOW`: CloudFront responds with the requested object\\.\n+ `BLOCK`: CloudFront responds with an HTTP 403 \\(Forbidden\\) status code\\.\n+ `COUNT`: AWS WAF increments a counter of requests that match the conditions in the rule and then continues to inspect the web request based on the remaining rules in the web ACL\\. \n `ActivatedRule|OverrideAction` applies only when updating or adding a `RuleGroup` to a `WebACL`\\. In this case, you do not use `ActivatedRule|Action`\\. For all other update requests, `ActivatedRule|Action` is used instead of `ActivatedRule|OverrideAction`\\. \n*Required*: No \n*Type*: [WafAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-webacl-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" + }, + "Priority": { + "markdownDescription": "Specifies the order in which the `Rules` in a `WebACL` are evaluated\\. Rules with a lower value for `Priority` are evaluated before `Rules` with a higher value\\. The value must be a unique integer\\. If you add multiple `Rules` to a `WebACL`, the values don't need to be consecutive\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", + "type": "number" + }, + "RuleId": { + "markdownDescription": "The `RuleId` for a `Rule`\\. You use `RuleId` to get more information about a `Rule`, update a `Rule`, insert a `Rule` into a `WebACL` or delete a one from a `WebACL`, or delete a `Rule` from AWS WAF\\. \n `RuleId` is returned by `CreateRule` and by `ListRules`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleId", + "type": "string" + } + }, + "required": [ + "Priority", + "RuleId" + ], + "type": "object" + }, + "AWS::WAF::WebACL.WafAction": { + "additionalProperties": false, + "properties": { + "Type": { + "markdownDescription": "Specifies how you want AWS WAF to respond to requests that match the settings in a `Rule`\\. Valid settings include the following: \n+ `ALLOW`: AWS WAF allows requests\n+ `BLOCK`: AWS WAF blocks requests\n+ `COUNT`: AWS WAF increments a counter of the requests that match all of the conditions in the rule\\. AWS WAF then continues to inspect the web request based on the remaining rules in the web ACL\\. You can't specify `COUNT` for the default action for a `WebACL`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALLOW | BLOCK | COUNT` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "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": { + "markdownDescription": "The name, if any, of the `XssMatchSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "XssMatchTuples": { + "items": { + "$ref": "#/definitions/AWS::WAF::XssMatchSet.XssMatchTuple" + }, + "markdownDescription": "Specifies the parts of web requests that you want to inspect for cross\\-site scripting attacks\\. \n*Required*: Yes \n*Type*: List of [XssMatchTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-xssmatchset-xssmatchtuple.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "XssMatchTuples", + "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": { + "markdownDescription": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Data", + "type": "string" + }, + "Type": { + "markdownDescription": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicated the type of operation that the request is asking the origin to perform\\. Amazon CloudFront supports the following methods: `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, and `PUT`\\.\n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::WAF::XssMatchSet.XssMatchTuple": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAF::XssMatchSet.FieldToMatch", + "markdownDescription": "The part of a web request that you want to inspect, such as a specified header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waf-xssmatchset-xssmatchtuple-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" + }, + "TextTransformation": { + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting it for a match\\. \nYou can only specify a single type of TextTransformation\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "Specifies the bytes \\(typically a string that corresponds with ASCII characters\\) that you want AWS WAF to search for in web requests, the location in requests that you want AWS WAF to search, and other settings\\. \n*Required*: No \n*Type*: List of [ByteMatchTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-bytematchset-bytematchtuple.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ByteMatchTuples", + "type": "array" + }, + "Name": { + "markdownDescription": "A friendly name or description of the `ByteMatchSet`\\. You can't change `Name` after you create a `ByteMatchSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect, such as a specific header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-bytematchset-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" + }, + "PositionalConstraint": { + "markdownDescription": "Within the portion of a web request that you want to search \\(for example, in the query string, if any\\), specify where you want AWS WAF to search\\. Valid values include the following: \n **CONTAINS** \nThe specified part of the web request must include the value of `TargetString`, but the location doesn't matter\\. \n **CONTAINS\\_WORD** \nThe specified part of the web request must include the value of `TargetString`, and `TargetString` must contain only alphanumeric characters or underscore \\(A\\-Z, a\\-z, 0\\-9, or \\_\\)\\. In addition, `TargetString` must be a word, which means one of the following: \n+ `TargetString` exactly matches the value of the specified part of the web request, such as the value of a header\\.\n+ `TargetString` is at the beginning of the specified part of the web request and is followed by a character other than an alphanumeric character or underscore \\(\\_\\), for example, `BadBot;`\\.\n+ `TargetString` is at the end of the specified part of the web request and is preceded by a character other than an alphanumeric character or underscore \\(\\_\\), for example, `;BadBot`\\.\n+ `TargetString` is in the middle of the specified part of the web request and is preceded and followed by characters other than alphanumeric characters or underscore \\(\\_\\), for example, `-BadBot;`\\.\n **EXACTLY** \nThe value of the specified part of the web request must exactly match the value of `TargetString`\\. \n **STARTS\\_WITH** \nThe value of `TargetString` must appear at the beginning of the specified part of the web request\\. \n **ENDS\\_WITH** \nThe value of `TargetString` must appear at the end of the specified part of the web request\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CONTAINS | CONTAINS_WORD | ENDS_WITH | EXACTLY | STARTS_WITH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PositionalConstraint", + "type": "string" + }, + "TargetString": { + "markdownDescription": "The value that you want AWS WAF to search for\\. AWS WAF searches for the specified string in the part of web requests that you specified in `FieldToMatch`\\. The maximum length of the value is 50 bytes\\. \nYou must specify this property or the `TargetStringBase64` property\\. \nValid values depend on the values that you specified for `FieldToMatch`: \n+ `HEADER`: The value that you want AWS WAF to search for in the request header that you specified in `FieldToMatch`, for example, the value of the `User-Agent` or `Referer` header\\.\n+ `METHOD`: The HTTP method, which indicates the type of operation specified in the request\\. \n+ `QUERY_STRING`: The value that you want AWS WAF to search for in the query string, which is the part of a URL that appears after a `?` character\\.\n+ `URI`: The value that you want AWS WAF to search for in the part of a URL that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but instead of inspecting a single parameter, AWS WAF inspects all parameters within the query string for the value or regex pattern that you specify in `TargetString`\\.\nIf `TargetString` includes alphabetic characters A\\-Z and a\\-z, note that the value is case sensitive\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetString", + "type": "string" + }, + "TargetStringBase64": { + "markdownDescription": "The base64\\-encoded value that AWS WAF searches for\\. AWS CloudFormation sends this value to AWS WAF without encoding it\\. \nYou must specify this property or the `TargetString` property\\. \nAWS WAF searches for this value in a specific part of web requests, which you define in the `FieldToMatch` property\\. \nValid values depend on the Type value in the `FieldToMatch` property\\. For example, for a `METHOD` type, you must specify HTTP methods such as `DELETE, GET, HEAD, OPTIONS, PATCH, POST`, and `PUT`\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TargetStringBase64", + "type": "string" + }, + "TextTransformation": { + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting it for a match\\. \nYou can only specify a single type of TextTransformation\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformation", + "type": "string" + } + }, + "required": [ + "FieldToMatch", + "PositionalConstraint", + "TextTransformation" + ], + "type": "object" + }, + "AWS::WAFRegional::ByteMatchSet.FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "markdownDescription": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Data", + "type": "string" + }, + "Type": { + "markdownDescription": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicated the type of operation that the request is asking the origin to perform\\. \n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\.\n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "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" + }, + "markdownDescription": "An array of `GeoMatchConstraint` objects, which contain the country that you want AWS WAF to search for\\. \n*Required*: No \n*Type*: List of [GeoMatchConstraint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-geomatchset-geomatchconstraint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GeoMatchConstraints", + "type": "array" + }, + "Name": { + "markdownDescription": "A friendly name or description of the [AWS::WAFRegional::GeoMatchSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-resource-wafregional-geomatchset.html#aws-resource-wafregional-geomatchset)\\. You can't change the name of an `GeoMatchSet` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The type of geographical area you want AWS WAF to search for\\. Currently `Country` is the only valid value\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Country` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "Value": { + "markdownDescription": "The country that you want AWS WAF to search for\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AD | AE | AF | AG | AI | AL | AM | AO | AQ | AR | AS | AT | AU | AW | AX | AZ | BA | BB | BD | BE | BF | BG | BH | BI | BJ | BL | BM | BN | BO | BQ | BR | BS | BT | BV | BW | BY | BZ | CA | CC | CD | CF | CG | CH | CI | CK | CL | CM | CN | CO | CR | CU | CV | CW | CX | CY | CZ | DE | DJ | DK | DM | DO | DZ | EC | EE | EG | EH | ER | ES | ET | FI | FJ | FK | FM | FO | FR | GA | GB | GD | GE | GF | GG | GH | GI | GL | GM | GN | GP | GQ | GR | GS | GT | GU | GW | GY | HK | HM | HN | HR | HT | HU | ID | IE | IL | IM | IN | IO | IQ | IR | IS | IT | JE | JM | JO | JP | KE | KG | KH | KI | KM | KN | KP | KR | KW | KY | KZ | LA | LB | LC | LI | LK | LR | LS | LT | LU | LV | LY | MA | MC | MD | ME | MF | MG | MH | MK | ML | MM | MN | MO | MP | MQ | MR | MS | MT | MU | MV | MW | MX | MY | MZ | NA | NC | NE | NF | NG | NI | NL | NO | NP | NR | NU | NZ | OM | PA | PE | PF | PG | PH | PK | PL | PM | PN | PR | PS | PT | PW | PY | QA | RE | RO | RS | RU | RW | SA | SB | SC | SD | SE | SG | SH | SI | SJ | SK | SL | SM | SN | SO | SR | SS | ST | SV | SX | SY | SZ | TC | TD | TF | TG | TH | TJ | TK | TL | TM | TN | TO | TR | TT | TV | TW | TZ | UA | UG | UM | US | UY | UZ | VA | VC | VE | VG | VI | VN | VU | WF | WS | YE | YT | ZA | ZM | ZW` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "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" + }, + "markdownDescription": "The IP address type \\(`IPV4` or `IPV6`\\) and the IP address range \\(in CIDR notation\\) that web requests originate from\\. \n*Required*: No \n*Type*: List of [IPSetDescriptor](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-ipset-ipsetdescriptor.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IPSetDescriptors", + "type": "array" + }, + "Name": { + "markdownDescription": "A friendly name or description of the `IPSet`\\. You can't change the name of an `IPSet` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Specify `IPV4` or `IPV6`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `IPV4 | IPV6` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + }, + "Value": { + "markdownDescription": "Specify an IPv4 address by using CIDR notation\\. For example: \n+ To configure AWS WAF to allow, block, or count requests that originated from the IP address 192\\.0\\.2\\.44, specify `192.0.2.44/32`\\.\n+ To configure AWS WAF to allow, block, or count requests that originated from IP addresses from 192\\.0\\.2\\.0 to 192\\.0\\.2\\.255, specify `192.0.2.0/24`\\.\nFor more information about CIDR notation, see the Wikipedia entry [Classless Inter\\-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\\. \nSpecify an IPv6 address by using CIDR notation\\. For example: \n+ To configure AWS WAF to allow, block, or count requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify `1111:0000:0000:0000:0000:0000:0000:0111/128`\\.\n+ To configure AWS WAF to allow, block, or count requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify `1111:0000:0000:0000:0000:0000:0000:0000/64`\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "The `Predicates` object contains one `Predicate` element for each `ByteMatchSet`, `IPSet`, or `SqlInjectionMatchSet>` object that you want to include in a `RateBasedRule`\\. \n*Required*: No \n*Type*: List of [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-ratebasedrule-predicate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MatchPredicates", + "type": "array" + }, + "MetricName": { + "markdownDescription": "A name for the metrics for a `RateBasedRule`\\. The name can contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\), with maximum length 128 and minimum length one\\. It can't contain whitespace or metric names reserved for AWS WAF, including \"All\" and \"Default\\_Action\\.\" You can't change the name of the metric after you create the `RateBasedRule`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricName", + "type": "string" + }, + "Name": { + "markdownDescription": "A friendly name or description for a `RateBasedRule`\\. You can't change the name of a `RateBasedRule` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RateKey": { + "markdownDescription": "The field that AWS WAF uses to determine if requests are likely arriving from single source and thus subject to rate monitoring\\. The only valid value for `RateKey` is `IP`\\. `IP` indicates that requests arriving from the same IP address are subject to the `RateLimit` that is specified in the `RateBasedRule`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `IP` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "RateKey", + "type": "string" + }, + "RateLimit": { + "markdownDescription": "The maximum number of requests, which have an identical value in the field specified by the `RateKey`, allowed in a five\\-minute period\\. If the number of requests exceeds the `RateLimit` and the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A unique identifier for a predicate in a `Rule`, such as `ByteMatchSetId` or `IPSetId`\\. The ID is returned by the corresponding `Create` or `List` command\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataId", + "type": "string" + }, + "Negated": { + "markdownDescription": "Set `Negated` to `False` if you want AWS WAF to allow, block, or count requests based on the settings in the specified `ByteMatchSet`, `IPSet`, `SqlInjectionMatchSet`, `XssMatchSet`, `RegexMatchSet`, `GeoMatchSet`, or `SizeConstraintSet`\\. For example, if an `IPSet` includes the IP address `192.0.2.44`, AWS WAF will allow or block requests based on that IP address\\. \nSet `Negated` to `True` if you want AWS WAF to allow or block a request based on the negation of the settings in the `ByteMatchSet`, `IPSet`, `SqlInjectionMatchSet`, `XssMatchSet`, `RegexMatchSet`, `GeoMatchSet`, or `SizeConstraintSet`>\\. For example, if an `IPSet` includes the IP address `192.0.2.44`, AWS WAF will allow, block, or count requests based on all IP addresses *except* `192.0.2.44`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Negated", + "type": "boolean" + }, + "Type": { + "markdownDescription": "The type of predicate in a `Rule`, such as `ByteMatch` or `IPSet`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ByteMatch | GeoMatch | IPMatch | RegexMatch | SizeConstraint | SqlInjectionMatch | XssMatch` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "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": { + "markdownDescription": "A friendly name or description of the [AWS::WAFRegional::RegexPatternSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-resource-wafregional-regexpatternset.html#aws-resource-wafregional-regexpatternset)\\. You can't change `Name` after you create a `RegexPatternSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RegexPatternStrings": { + "items": { + "type": "string" + }, + "markdownDescription": "Specifies the regular expression \\(regex\\) patterns that you want AWS WAF to search for, such as `B[a@]dB[o0]t`\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegexPatternStrings", + "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": { + "markdownDescription": "A name for the metrics for this `Rule`\\. The name can contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\), with maximum length 128 and minimum length one\\. It can't contain whitespace or metric names reserved for AWS WAF, including \"All\" and \"Default\\_Action\\.\" You can't change `MetricName` after you create the `Rule`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricName", + "type": "string" + }, + "Name": { + "markdownDescription": "The friendly name or description for the `Rule`\\. You can't change the name of a `Rule` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Predicates": { + "items": { + "$ref": "#/definitions/AWS::WAFRegional::Rule.Predicate" + }, + "markdownDescription": "The `Predicates` object contains one `Predicate` element for each `ByteMatchSet`, `IPSet`, or `SqlInjectionMatchSet` object that you want to include in a `Rule`\\. \n*Required*: No \n*Type*: List of [Predicate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-rule-predicate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Predicates", + "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": { + "markdownDescription": "A unique identifier for a predicate in a `Rule`, such as `ByteMatchSetId` or `IPSetId`\\. The ID is returned by the corresponding `Create` or `List` command\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DataId", + "type": "string" + }, + "Negated": { + "markdownDescription": "Set `Negated` to `False` if you want AWS WAF to allow, block, or count requests based on the settings in the specified `ByteMatchSet`, `IPSet`, `SqlInjectionMatchSet`, `XssMatchSet`, `RegexMatchSet`, `GeoMatchSet`, or `SizeConstraintSet`\\. For example, if an `IPSet` includes the IP address `192.0.2.44`, AWS WAF will allow or block requests based on that IP address\\. \nSet `Negated` to `True` if you want AWS WAF to allow or block a request based on the negation of the settings in the `ByteMatchSet`, `IPSet`, `SqlInjectionMatchSet`, `XssMatchSet`, `RegexMatchSet`, `GeoMatchSet`, or `SizeConstraintSet`\\. For example, if an `IPSet` includes the IP address `192.0.2.44`, AWS WAF will allow, block, or count requests based on all IP addresses *except* `192.0.2.44`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Negated", + "type": "boolean" + }, + "Type": { + "markdownDescription": "The type of predicate in a `Rule`, such as `ByteMatch` or `IPSet`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ByteMatch | GeoMatch | IPMatch | RegexMatch | SizeConstraint | SqlInjectionMatch | XssMatch` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "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": { + "markdownDescription": "The name, if any, of the `SizeConstraintSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "SizeConstraints": { + "items": { + "$ref": "#/definitions/AWS::WAFRegional::SizeConstraintSet.SizeConstraint" + }, + "markdownDescription": "The size constraint and the part of the web request to check\\. \n*Required*: No \n*Type*: List of [SizeConstraint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sizeconstraintset-sizeconstraint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SizeConstraints", + "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": { + "markdownDescription": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Data", + "type": "string" + }, + "Type": { + "markdownDescription": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicates the type of operation that the request is asking the origin to perform\\. \n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::WAFRegional::SizeConstraintSet.SizeConstraint": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "markdownDescription": "The type of comparison you want AWS WAF to perform\\. AWS WAF uses this in combination with the provided `Size` and `FieldToMatch` to build an expression in the form of \"`Size` `ComparisonOperator` size in bytes of `FieldToMatch`\"\\. If that expression is true, the `SizeConstraint` is considered to match\\. \n **EQ**: Used to test if the `Size` is equal to the size of the `FieldToMatch` \n **NE**: Used to test if the `Size` is not equal to the size of the `FieldToMatch` \n **LE**: Used to test if the `Size` is less than or equal to the size of the `FieldToMatch` \n **LT**: Used to test if the `Size` is strictly less than the size of the `FieldToMatch` \n **GE**: Used to test if the `Size` is greater than or equal to the size of the `FieldToMatch` \n **GT**: Used to test if the `Size` is strictly greater than the size of the `FieldToMatch` \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EQ | GE | GT | LE | LT | NE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComparisonOperator", + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFRegional::SizeConstraintSet.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect, such as a specific header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sizeconstraintset-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" + }, + "Size": { + "markdownDescription": "The size in bytes that you want AWS WAF to compare against the size of the specified `FieldToMatch`\\. AWS WAF uses this in combination with `ComparisonOperator` and `FieldToMatch` to build an expression in the form of \"`Size` `ComparisonOperator` size in bytes of `FieldToMatch`\"\\. If that expression is true, the `SizeConstraint` is considered to match\\. \nValid values for size are 0 \\- 21474836480 bytes \\(0 \\- 20 GB\\)\\. \nIf you specify `URI` for the value of `Type`, the / in the URI path that you specify counts as one character\\. For example, the URI `/logo.jpg` is nine characters long\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Size", + "type": "number" + }, + "TextTransformation": { + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting a request for a match\\. \nYou can only specify a single type of TextTransformation\\. \nNote that if you choose `BODY` for the value of `Type`, you must choose `NONE` for `TextTransformation` because the API Gateway API or Application Load Balancer forward only the first 8192 bytes for inspection\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name, if any, of the `SqlInjectionMatchSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "SqlInjectionMatchTuples": { + "items": { + "$ref": "#/definitions/AWS::WAFRegional::SqlInjectionMatchSet.SqlInjectionMatchTuple" + }, + "markdownDescription": "Specifies the parts of web requests that you want to inspect for snippets of malicious SQL code\\. \n*Required*: No \n*Type*: List of [SqlInjectionMatchTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sqlinjectionmatchset-sqlinjectionmatchtuple.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SqlInjectionMatchTuples", + "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": { + "markdownDescription": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Data", + "type": "string" + }, + "Type": { + "markdownDescription": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicates the type of operation that the request is asking the origin to perform\\. \n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::WAFRegional::SqlInjectionMatchSet.SqlInjectionMatchTuple": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFRegional::SqlInjectionMatchSet.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect, such as a specific header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-sqlinjectionmatchset-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" + }, + "TextTransformation": { + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting it for a match\\. \nYou can only specify a single type of TextTransformation\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The action to perform if none of the `Rules` contained in the `WebACL` match\\. The action is specified by the `WafAction` object\\. \n*Required*: Yes \n*Type*: [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-webacl-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultAction" + }, + "MetricName": { + "markdownDescription": "A name for the metrics for this `WebACL`\\. The name can contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\), with maximum length 128 and minimum length one\\. It can't contain whitespace or metric names reserved for AWS WAF, including \"All\" and \"Default\\_Action\\.\" You can't change `MetricName` after you create the `WebACL`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MetricName", + "type": "string" + }, + "Name": { + "markdownDescription": "A friendly name or description of the `WebACL`\\. You can't change the name of a `WebACL` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::WAFRegional::WebACL.Rule" + }, + "markdownDescription": "An array that contains the action for each `Rule` in a `WebACL`, the priority of the `Rule`, and the ID of the `Rule`\\. \n*Required*: No \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-webacl-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", + "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": { + "markdownDescription": "For actions that are associated with a rule, the action that AWS WAF takes when a web request matches all conditions in a rule\\. \nFor the default action of a web access control list \\(ACL\\), the action that AWS WAF takes when a web request doesn't match all conditions in any rule\\. \nValid settings include the following: \n+ `ALLOW`: AWS WAF allows requests\n+ `BLOCK`: AWS WAF blocks requests\n+ `COUNT`: AWS WAF increments a counter of the requests that match all of the conditions in the rule\\. AWS WAF then continues to inspect the web request based on the remaining rules in the web ACL\\. You can't specify `COUNT` for the default action for a WebACL\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::WAFRegional::WebACL.Rule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::WAFRegional::WebACL.Action", + "markdownDescription": "The action that AWS WAF takes when a web request matches all conditions in the rule, such as allow, block, or count the request\\. \n*Required*: Yes \n*Type*: [Action](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-webacl-action.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" + }, + "Priority": { + "markdownDescription": "The order in which AWS WAF evaluates the rules in a web ACL\\. AWS WAF evaluates rules with a lower value before rules with a higher value\\. The value must be a unique integer\\. If you have multiple rules in a web ACL, the priority numbers do not need to be consecutive\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", + "type": "number" + }, + "RuleId": { + "markdownDescription": "The ID of an AWS WAF Regional rule to associate with a web ACL\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the resource to protect with the web ACL\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceArn", + "type": "string" + }, + "WebACLId": { + "markdownDescription": "A unique identifier \\(ID\\) for the web ACL\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The name, if any, of the `XssMatchSet`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "XssMatchTuples": { + "items": { + "$ref": "#/definitions/AWS::WAFRegional::XssMatchSet.XssMatchTuple" + }, + "markdownDescription": "Specifies the parts of web requests that you want to inspect for cross\\-site scripting attacks\\. \n*Required*: No \n*Type*: List of [XssMatchTuple](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-xssmatchset-xssmatchtuple.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "XssMatchTuples", + "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": { + "markdownDescription": "When the value of `Type` is `HEADER`, enter the name of the header that you want AWS WAF to search, for example, `User-Agent` or `Referer`\\. The name of the header is not case sensitive\\. \nWhen the value of `Type` is `SINGLE_QUERY_ARG`, enter the name of the parameter that you want AWS WAF to search, for example, `UserName` or `SalesRegion`\\. The parameter name is not case sensitive\\. \nIf the value of `Type` is any other value, omit `Data`\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Data", + "type": "string" + }, + "Type": { + "markdownDescription": "The part of the web request that you want AWS WAF to search for a specified string\\. Parts of a request that you can search include the following: \n+ `HEADER`: A specified request header, for example, the value of the `User-Agent` or `Referer` header\\. If you choose `HEADER` for the type, specify the name of the header in `Data`\\.\n+ `METHOD`: The HTTP method, which indicates the type of operation that the request is asking the origin to perform\\. \n+ `QUERY_STRING`: A query string, which is the part of a URL that appears after a `?` character, if any\\.\n+ `URI`: The part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\.\n+ `BODY`: The part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. The request body immediately follows the request headers\\. Note that only the first `8192` bytes of the request body are forwarded to AWS WAF for inspection\\. To allow or block requests based on the length of the body, you can create a size constraint set\\. \n+ `SINGLE_QUERY_ARG`: The parameter in the query string that you will inspect, such as *UserName* or *SalesRegion*\\. The maximum length for `SINGLE_QUERY_ARG` is 30 characters\\.\n+ `ALL_QUERY_ARGS`: Similar to `SINGLE_QUERY_ARG`, but rather than inspecting a single parameter, AWS WAF will inspect all parameters within the query for the value or regex pattern that you specify in `TargetString`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL_QUERY_ARGS | BODY | HEADER | METHOD | QUERY_STRING | SINGLE_QUERY_ARG | URI` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::WAFRegional::XssMatchSet.XssMatchTuple": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFRegional::XssMatchSet.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect, such as a specified header or a query string\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafregional-xssmatchset-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" + }, + "TextTransformation": { + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass AWS WAF\\. If you specify a transformation, AWS WAF performs the transformation on `FieldToMatch` before inspecting it for a match\\. \nYou can only specify a single type of TextTransformation\\. \n **CMD\\_LINE** \nWhen you're concerned that attackers are injecting an operating system command line command and using unusual formatting to disguise some or all of the command, use this option to perform the following transformations: \n+ Delete the following characters: \\\\ \" ' ^\n+ Delete spaces before the following characters: / \\(\n+ Replace the following characters with a space: , ;\n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \nUse this option to replace the following characters with a space character \\(decimal 32\\): \n+ \\\\f, formfeed, decimal 12\n+ \\\\t, tab, decimal 9\n+ \\\\n, newline, decimal 10\n+ \\\\r, carriage return, decimal 13\n+ \\\\v, vertical tab, decimal 11\n+ non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **HTML\\_ENTITY\\_DECODE** \nUse this option to replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs the following operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **LOWERCASE** \nUse this option to convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **URL\\_DECODE** \nUse this option to decode a URL\\-encoded value\\. \n **NONE** \nSpecify `NONE` if you don't want to perform any text transformations\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CMD_LINE | COMPRESS_WHITE_SPACE | HTML_ENTITY_DECODE | LOWERCASE | NONE | URL_DECODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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" + }, + "markdownDescription": "Contains an array of strings that specify one or more IP addresses or blocks of IP addresses in Classless Inter\\-Domain Routing \\(CIDR\\) notation\\. AWS WAF supports all IPv4 and IPv6 CIDR ranges except for /0\\. \nExamples: \n+ To configure AWS WAF to allow, block, or count requests that originated from the IP address 192\\.0\\.2\\.44, specify `192.0.2.44/32`\\.\n+ To configure AWS WAF to allow, block, or count requests that originated from IP addresses from 192\\.0\\.2\\.0 to 192\\.0\\.2\\.255, specify `192.0.2.0/24`\\.\n+ To configure AWS WAF to allow, block, or count requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify `1111:0000:0000:0000:0000:0000:0000:0111/128`\\.\n+ To configure AWS WAF to allow, block, or count requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify `1111:0000:0000:0000:0000:0000:0000:0000/64`\\.\nFor more information about CIDR notation, see the Wikipedia entry [Classless Inter\\-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Addresses", + "type": "array" + }, + "Description": { + "markdownDescription": "A description of the IP set that helps with identification\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[\\w+=:#@/\\-,\\.][\\w+=:#@/\\-,\\.\\s]+[\\w+=:#@/\\-,\\.]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "IPAddressVersion": { + "markdownDescription": "Specify IPV4 or IPV6\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `IPV4 | IPV6` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IPAddressVersion", + "type": "string" + }, + "Name": { + "markdownDescription": "The descriptive name of the IP set\\. You cannot change the name of an `IPSet` after you create it\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Scope": { + "markdownDescription": "Specifies whether this is for an Amazon CloudFront distribution or for a regional application\\. A regional application can be an Application Load Balancer \\(ALB\\), an Amazon API Gateway REST API, or an AWS AppSync GraphQL API\\. Valid Values are `CLOUDFRONT` and `REGIONAL`\\. \nFor `CLOUDFRONT`, you must create your WAFv2 resources in the US East \\(N\\. Virginia\\) Region, `us-east-1`\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Scope", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Key:value pairs associated with an AWS resource\\. The key:value pair can be anything you define\\. Typically, the tag key represents a category \\(such as \"environment\"\\) and the tag value represents a specific value within that category \\(such as \"test,\" \"development,\" or \"production\"\\)\\. You can add up to 50 tags to each AWS resource\\. \nTo modify tags on existing resources, use the AWS WAF APIs or command line interface\\. With AWS CloudFormation, you can only add tags to AWS WAF resources during resource creation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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" + }, + "markdownDescription": "The logging destination configuration that you want to associate with the web ACL\\. \nYou can associate one logging destination to a web ACL\\.\n*Required*: Yes \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogDestinationConfigs", + "type": "array" + }, + "LoggingFilter": { + "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.LoggingFilter", + "markdownDescription": "Filtering that specifies which web requests are kept in the logs and which are dropped\\. You can filter on the rule action and on the web request labels that were applied by matching rules during web ACL evaluation\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingFilter" + }, + "RedactedFields": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.FieldToMatch" + }, + "markdownDescription": "The parts of the request that you want to keep out of the logs\\. For example, if you redact the `SingleHeader` field, the `HEADER` field in the logs will be `xxx`\\. \nYou can specify only the following fields for redaction: `UriPath`, `QueryString`, `SingleHeader`, `Method`, and `JsonBody`\\.\n*Required*: No \n*Type*: List of [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-loggingconfiguration-fieldtomatch.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RedactedFields", + "type": "array" + }, + "ResourceArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the web ACL that you want to associate with `LogDestinationConfigs`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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", + "markdownDescription": "Inspect the request body as JSON\\. The request body immediately follows the request headers\\. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. \nNote that only the first 8 KB \\(8192 bytes\\) of the request body are forwarded to AWS WAF for inspection by the underlying host service\\. If you don't need to inspect more than 8 KB, you can guarantee that you don't allow additional bytes in by combining a statement that inspects the body of the web request, such as [ByteMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html#cfn-wafv2-rulegroup-statement-bytematchstatement) or [RegexPatternSetReferenceStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html#cfn-wafv2-rulegroup-statement-regexpatternsetreferencestatement), with a [SizeConstraintStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html#cfn-wafv2-rulegroup-statement-sizeconstraintstatement) that enforces an 8 KB size limit on the body of the request\\. AWS WAF doesn't support inspecting the entire contents of web requests whose bodies exceed the 8 KB limit\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JsonBody" + }, + "Method": { + "markdownDescription": "Inspect the HTTP method\\. The method indicates the type of operation that the request is asking the origin to perform\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Method", + "type": "object" + }, + "QueryString": { + "markdownDescription": "Inspect the query string\\. This is the part of a URL that appears after a `?` character, if any\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryString", + "type": "object" + }, + "SingleHeader": { + "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.SingleHeader", + "markdownDescription": "Inspect a single header\\. Provide the name of the header to inspect, for example, `User-Agent` or `Referer`\\. This setting isn't case sensitive\\. \nExample JSON: `\"SingleHeader\": { \"Name\": \"haystack\" }` \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SingleHeader" + }, + "UriPath": { + "markdownDescription": "Inspect the request URI path\\. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "A description of the set that helps with identification\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[\\w+=:#@/\\-,\\.][\\w+=:#@/\\-,\\.\\s]+[\\w+=:#@/\\-,\\.]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The descriptive name of the set\\. You cannot change the name after you create the set\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RegularExpressionList": { + "items": { + "type": "string" + }, + "markdownDescription": "The regular expression patterns in the set\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegularExpressionList", + "type": "array" + }, + "Scope": { + "markdownDescription": "Specifies whether this is for an Amazon CloudFront distribution or for a regional application\\. A regional application can be an Application Load Balancer \\(ALB\\), an Amazon API Gateway REST API, or an AWS AppSync GraphQL API\\. Valid Values are `CLOUDFRONT` and `REGIONAL`\\. \nFor `CLOUDFRONT`, you must create your WAFv2 resources in the US East \\(N\\. Virginia\\) Region, `us-east-1`\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Scope", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Key:value pairs associated with an AWS resource\\. The key:value pair can be anything you define\\. Typically, the tag key represents a category \\(such as \"environment\"\\) and the tag value represents a specific value within that category \\(such as \"test,\" \"development,\" or \"production\"\\)\\. You can add up to 50 tags to each AWS resource\\. \nTo modify tags on existing resources, use the AWS WAF APIs or command line interface\\. With AWS CloudFormation, you can only add tags to AWS WAF resources during resource creation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "The web ACL capacity units \\(WCUs\\) required for this rule group\\. \nWhen you create your own rule group, you define this, and you cannot change it after creation\\. When you add or modify the rules in a rule group, AWS WAF enforces this limit\\. \nAWS WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs\\. AWS WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule\\. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power\\. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group\\. The WCU limit for web ACLs is 1,500\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Capacity", + "type": "number" + }, + "ConsumedLabels": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.LabelSummary" + }, + "type": "array" + }, + "CustomResponseBodies": { + "additionalProperties": false, + "markdownDescription": "A map of custom response keys and content bodies\\. When you create a rule with a block action, you can send a custom response to the web request\\. You define these for the rule group, and then use them in the rules that you define in the rule group\\. \nFor information about customizing web requests and responses, see [Customizing web requests and responses in AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \nFor information about the limits on count and size for custom request and response settings, see [AWS WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: No \n*Type*: Map of [CustomResponseBody](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-customresponsebody.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CustomResponseBody" + } + }, + "title": "CustomResponseBodies", + "type": "object" + }, + "Description": { + "markdownDescription": "A description of the rule group that helps with identification\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[\\w+=:#@/\\-,\\.][\\w+=:#@/\\-,\\.\\s]+[\\w+=:#@/\\-,\\.]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The descriptive name of the rule group\\. You cannot change the name of a rule group after you create it\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Rule" + }, + "markdownDescription": "The rule statements used to identify the web requests that you want to allow, block, or count\\. Each rule includes one top\\-level statement that AWS WAF uses to identify matching web requests, and parameters that govern how AWS WAF handles them\\. \n*Required*: No \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", + "type": "array" + }, + "Scope": { + "markdownDescription": "Specifies whether this is for an Amazon CloudFront distribution or for a regional application\\. A regional application can be an Application Load Balancer \\(ALB\\), an Amazon API Gateway REST API, or an AWS AppSync GraphQL API\\. Valid Values are `CLOUDFRONT` and `REGIONAL`\\. \nFor `CLOUDFRONT`, you must create your WAFv2 resources in the US East \\(N\\. Virginia\\) Region, `us-east-1`\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Scope", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Key:value pairs associated with an AWS resource\\. The key:value pair can be anything you define\\. Typically, the tag key represents a category \\(such as \"environment\"\\) and the tag value represents a specific value within that category \\(such as \"test,\" \"development,\" or \"production\"\\)\\. You can add up to 50 tags to each AWS resource\\. \nTo modify tags on existing resources, use the AWS WAF APIs or command line interface\\. With AWS CloudFormation, you can only add tags to AWS WAF resources during resource creation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "VisibilityConfig": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.VisibilityConfig", + "markdownDescription": "Defines and enables Amazon CloudWatch metrics and web request sample collection\\. \n*Required*: Yes \n*Type*: [VisibilityConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-visibilityconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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.AllowAction": { + "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" + }, + "markdownDescription": "The statements to combine with AND logic\\. You can use any statements that can be nested\\. \n*Required*: Yes \n*Type*: List of [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statements", + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.BlockAction": { + "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", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" + }, + "PositionalConstraint": { + "markdownDescription": "The area within the portion of a web request that you want AWS WAF to search for `SearchString`\\. Valid values include the following: \n **CONTAINS** \nThe specified part of the web request must include the value of `SearchString`, but the location doesn't matter\\. \n **CONTAINS\\_WORD** \nThe specified part of the web request must include the value of `SearchString`, and `SearchString` must contain only alphanumeric characters or underscore \\(A\\-Z, a\\-z, 0\\-9, or \\_\\)\\. In addition, `SearchString` must be a word, which means that both of the following are true: \n+ `SearchString` is at the beginning of the specified part of the web request or is preceded by a character other than an alphanumeric character or underscore \\(\\_\\)\\. Examples include the value of a header and `;BadBot`\\.\n+ `SearchString` is at the end of the specified part of the web request or is followed by a character other than an alphanumeric character or underscore \\(\\_\\), for example, `BadBot;` and `-BadBot;`\\.\n **EXACTLY** \nThe value of the specified part of the web request must exactly match the value of `SearchString`\\. \n **STARTS\\_WITH** \nThe value of `SearchString` must appear at the beginning of the specified part of the web request\\. \n **ENDS\\_WITH** \nThe value of `SearchString` must appear at the end of the specified part of the web request\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CONTAINS | CONTAINS_WORD | ENDS_WITH | EXACTLY | STARTS_WITH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PositionalConstraint", + "type": "string" + }, + "SearchString": { + "markdownDescription": "A string value that you want AWS WAF to search for\\. AWS WAF searches only in the part of web requests that you designate for inspection in `FieldToMatch`\\. The maximum length of the value is 50 bytes\\. For alphabetic characters A\\-Z and a\\-z, the value is case sensitive\\. \nDon't encode this string\\. Provide the value that you want AWS WAF to search for\\. AWS CloudFormation automatically base64 encodes the value for you\\. \nFor example, suppose the value of `Type` is `HEADER` and the value of `Data` is `User-Agent`\\. If you want to search the `User-Agent` header for the value `BadBot`, you provide the string `BadBot` in the value of `SearchString`\\. \nYou must specify either `SearchString` or `SearchStringBase64` in a `ByteMatchStatement`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SearchString", + "type": "string" + }, + "SearchStringBase64": { + "markdownDescription": "String to search for in a web request component, base64\\-encoded\\. If you don't want to encode the string, specify the unencoded value in `SearchString` instead\\. \nYou must specify either `SearchString` or `SearchStringBase64` in a `ByteMatchStatement`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SearchStringBase64", + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation" + }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "PositionalConstraint", + "TextTransformations" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.CaptchaAction": { + "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", + "markdownDescription": "Determines how long a `CAPTCHA` token remains valid after the client successfully solves a `CAPTCHA` puzzle\\. \n*Required*: No \n*Type*: [ImmunityTimeProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-immunitytimeproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImmunityTimeProperty" + } + }, + "type": "object" + }, + "AWS::WAFv2::RuleGroup.ChallengeAction": { + "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.CountAction": { + "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": { + "markdownDescription": "The payload of the custom response\\. \nYou can use JSON escape strings in JSON content\\. To do this, you must specify JSON content in the `ContentType` setting\\. \nFor information about the limits on count and size for custom request and response settings, see [AWS WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `10240` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Content", + "type": "string" + }, + "ContentType": { + "markdownDescription": "The type of content in the payload that you are defining in the `Content` string\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `APPLICATION_JSON | TEXT_HTML | TEXT_PLAIN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentType", + "type": "string" + } + }, + "required": [ + "Content", + "ContentType" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.FieldToMatch": { + "additionalProperties": false, + "properties": { + "AllQueryArguments": { + "markdownDescription": "Inspect all query arguments\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllQueryArguments", + "type": "object" + }, + "Body": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Body", + "markdownDescription": "Inspect the request body, which immediately follows the request headers\\. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. \nNote that only the first 8 KB \\(8192 bytes\\) of the request body are forwarded to AWS WAF for inspection by the underlying host service\\. If you don't need to inspect more than 8 KB, you can guarantee that you don't allow additional bytes in by combining a statement that inspects the body of the web request, such as the `ByteMatchStatement` or `RegexPatternSetReferenceStatement`, with a `SizeConstraintStatement` that enforces an 8 KB size limit on the body of the request\\. AWS WAF doesn't support inspecting the entire contents of web requests whose bodies exceed the 8 KB limit\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body" + }, + "Cookies": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Cookies" + }, + "Headers": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Headers" + }, + "JsonBody": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.JsonBody", + "markdownDescription": "Inspect the request body as JSON\\. The request body immediately follows the request headers\\. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. \nNote that only the first 8 KB \\(8192 bytes\\) of the request body are forwarded to AWS WAF for inspection by the underlying host service\\. If you don't need to inspect more than 8 KB, you can guarantee that you don't allow additional bytes in by combining a statement that inspects the body of the web request, such as the `ByteMatchStatement` or `RegexPatternSetReferenceStatement`, with a `SizeConstraintStatement` that enforces an 8 KB size limit on the body of the request\\. AWS WAF doesn't support inspecting the entire contents of web requests whose bodies exceed the 8 KB limit\\. \n*Required*: No \n*Type*: [JsonBody](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-jsonbody.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JsonBody" + }, + "Method": { + "markdownDescription": "Inspect the HTTP method\\. The method indicates the type of operation that the request is asking the origin to perform\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Method", + "type": "object" + }, + "QueryString": { + "markdownDescription": "Inspect the query string\\. This is the part of a URL that appears after a `?` character, if any\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryString", + "type": "object" + }, + "SingleHeader": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.SingleHeader", + "markdownDescription": "Inspect a single header\\. Provide the name of the header to inspect, for example, `User-Agent` or `Referer`\\. This setting isn't case sensitive\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SingleHeader" + }, + "SingleQueryArgument": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.SingleQueryArgument", + "markdownDescription": "Inspect a single query argument\\. Provide the name of the query argument to inspect, such as *UserName* or *SalesRegion*\\. The name can be up to 30 characters long and isn't case sensitive\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SingleQueryArgument" + }, + "UriPath": { + "markdownDescription": "Inspect the request URI path\\. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UriPath", + "type": "object" + } + }, + "type": "object" + }, + "AWS::WAFv2::RuleGroup.ForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "markdownDescription": "The match status to assign to the web request if the request doesn't have a valid IP address in the specified position\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\nYou can specify the following fallback behaviors: \n+ `MATCH` \\- Treat the web request as matching the rule statement\\. AWS WAF applies the rule action to the request\\.\n+ `NO_MATCH` \\- Treat the web request as not matching the rule statement\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `MATCH | NO_MATCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FallbackBehavior", + "type": "string" + }, + "HeaderName": { + "markdownDescription": "The name of the HTTP header to use for the IP address\\. For example, to use the X\\-Forwarded\\-For \\(XFF\\) header, set this to `X-Forwarded-For`\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderName", + "type": "string" + } + }, + "required": [ + "FallbackBehavior", + "HeaderName" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.GeoMatchStatement": { + "additionalProperties": false, + "properties": { + "CountryCodes": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of two\\-character country codes, for example, `[ \"US\", \"CN\" ]`, from the alpha\\-2 country ISO codes of the ISO 3166 international standard\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CountryCodes", + "type": "array" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ForwardedIPConfiguration", + "markdownDescription": "The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin\\. Commonly, this is the X\\-Forwarded\\-For \\(XFF\\) header, but you can specify any header name\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: No \n*Type*: [ForwardedIPConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-forwardedipconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForwardedIPConfig" + } + }, + "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": { + "markdownDescription": "The match status to assign to the web request if the request doesn't have a valid IP address in the specified position\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\nYou can specify the following fallback behaviors: \n+ `MATCH` \\- Treat the web request as matching the rule statement\\. AWS WAF applies the rule action to the request\\.\n+ `NO_MATCH` \\- Treat the web request as not matching the rule statement\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `MATCH | NO_MATCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FallbackBehavior", + "type": "string" + }, + "HeaderName": { + "markdownDescription": "The name of the HTTP header to use for the IP address\\. For example, to use the X\\-Forwarded\\-For \\(XFF\\) header, set this to `X-Forwarded-For`\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderName", + "type": "string" + }, + "Position": { + "markdownDescription": "The position in the header to search for the IP address\\. The header can contain IP addresses of the original client and also of proxies\\. For example, the header value could be `10.1.1.1, 127.0.0.0, 10.10.10.10` where the first IP address identifies the original client and the rest identify proxies that the request went through\\. \nThe options for this setting are the following: \n+ FIRST \\- Inspect the first IP address in the list of IP addresses in the header\\. This is usually the client's original IP\\.\n+ LAST \\- Inspect the last IP address in the list of IP addresses in the header\\.\n+ ANY \\- Inspect all IP addresses in the header for a match\\. If the header contains more than 10 IP addresses, AWS WAF inspects the last 10\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ANY | FIRST | LAST` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Position", + "type": "string" + } + }, + "required": [ + "FallbackBehavior", + "HeaderName", + "Position" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.IPSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the [AWS::WAFv2::IPSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-ipset.html) that this statement references\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "IPSetForwardedIPConfig": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.IPSetForwardedIPConfiguration", + "markdownDescription": "The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin\\. Commonly, this is the X\\-Forwarded\\-For \\(XFF\\) header, but you can specify any header name\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: No \n*Type*: [IPSetForwardedIPConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ipsetforwardedipconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IPSetForwardedIPConfig" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.ImmunityTimeProperty": { + "additionalProperties": false, + "properties": { + "ImmunityTime": { + "markdownDescription": "The amount of time, in seconds, that a `CAPTCHA` token is valid\\. The default setting is 300\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImmunityTime", + "type": "number" + } + }, + "required": [ + "ImmunityTime" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.JsonBody": { + "additionalProperties": false, + "properties": { + "InvalidFallbackBehavior": { + "markdownDescription": "What AWS WAF should do if it fails to completely parse the JSON body\\. The options are the following: \n+ `EVALUATE_AS_STRING` \\- Inspect the body as plain text\\. AWS WAF applies the text transformations and inspection criteria that you defined for the JSON inspection to the body text string\\.\n+ `MATCH` \\- Treat the web request as matching the rule statement\\. AWS WAF applies the rule action to the request\\.\n+ `NO_MATCH` \\- Treat the web request as not matching the rule statement\\.\nIf you don't provide this setting, AWS WAF parses and evaluates the content only up to the first parsing failure that it encounters\\. \nAWS WAF does its best to parse the entire JSON body, but might be forced to stop for reasons such as invalid characters, duplicate keys, truncation, and any content whose root node isn't an object or an array\\. \nAWS WAF parses the JSON in the following examples as two valid key, value pairs: \n+ Missing comma: `{\"key1\":\"value1\"\"key2\":\"value2\"}` \n+ Missing colon: `{\"key1\":\"value1\",\"key2\"\"value2\"}` \n+ Extra colons: `{\"key1\"::\"value1\",\"key2\"\"value2\"}` \n*Required*: No \n*Type*: String \n*Allowed values*: `EVALUATE_AS_STRING | MATCH | NO_MATCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InvalidFallbackBehavior", + "type": "string" + }, + "MatchPattern": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.JsonMatchPattern", + "markdownDescription": "The patterns to look for in the JSON body\\. AWS WAF inspects the results of these pattern matches against the rule inspection criteria\\. \n*Required*: Yes \n*Type*: [JsonMatchPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-jsonmatchpattern.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MatchPattern" + }, + "MatchScope": { + "markdownDescription": "The parts of the JSON to match against using the `MatchPattern`\\. If you specify `All`, AWS WAF matches against keys and values\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL | KEY | VALUE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MatchScope", + "type": "string" + }, + "OversizeHandling": { + "type": "string" + } + }, + "required": [ + "MatchPattern", + "MatchScope" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.JsonMatchPattern": { + "additionalProperties": false, + "properties": { + "All": { + "markdownDescription": "Match all of the elements\\. See also `MatchScope` in `JsonBody`\\. \nYou must specify either this setting or the `IncludedPaths` setting, but not both\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "All", + "type": "object" + }, + "IncludedPaths": { + "items": { + "type": "string" + }, + "markdownDescription": "Match only the specified include paths\\. See also `MatchScope` in `JsonBody`\\. \nProvide the include paths using JSON Pointer syntax\\. For example, `\"IncludedPaths\": [\"/dogs/0/name\", \"/dogs/1/name\"]`\\. For information about this syntax, see the Internet Engineering Task Force \\(IETF\\) documentation [JavaScript Object Notation \\(JSON\\) Pointer](https://tools.ietf.org/html/rfc6901)\\. \nYou must specify either this setting or the `All` setting, but not both\\. \nDon't use this option to include all paths\\. Instead, use the `All` setting\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludedPaths", + "type": "array" + } + }, + "type": "object" + }, + "AWS::WAFv2::RuleGroup.Label": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The label string\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.LabelMatchStatement": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The string to match against\\. The setting you provide for this depends on the match statement's `Scope` setting: \n+ If the `Scope` indicates `LABEL`, then this specification must include the name and can include any number of preceding namespace specifications and prefix up to providing the fully qualified label name\\. \n+ If the `Scope` indicates `NAMESPACE`, then this specification can include any number of contiguous namespace strings, and can include the entire label namespace prefix from the rule group or web ACL where the label originates\\.\nLabels are case sensitive and components of a label must be separated by colon, for example `NS1:NS2:name`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Scope": { + "markdownDescription": "Specify whether you want to match using the label name or just the namespace\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scope", + "type": "string" + } + }, + "required": [ + "Key", + "Scope" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.LabelSummary": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "An individual label specification\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "type": "object" + }, + "AWS::WAFv2::RuleGroup.NotStatement": { + "additionalProperties": false, + "properties": { + "Statement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Statement", + "markdownDescription": "The statement to negate\\. You can use any statement that can be nested\\. \n*Required*: Yes \n*Type*: [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statement" + } + }, + "required": [ + "Statement" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.OrStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Statement" + }, + "markdownDescription": "The statements to combine with OR logic\\. You can use any statements that can be nested\\. \n*Required*: Yes \n*Type*: List of [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statements", + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.RateBasedStatement": { + "additionalProperties": false, + "properties": { + "AggregateKeyType": { + "markdownDescription": "Setting that indicates how to aggregate the request counts\\. The options are the following: \n+ IP \\- Aggregate the request counts on the IP address from the web request origin\\.\n+ FORWARDED\\_IP \\- Aggregate the request counts on the first IP address in an HTTP header\\. If you use this, configure the `ForwardedIPConfig`, to specify the header to use\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `FORWARDED_IP | IP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AggregateKeyType", + "type": "string" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ForwardedIPConfiguration", + "markdownDescription": "The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin\\. Commonly, this is the X\\-Forwarded\\-For \\(XFF\\) header, but you can specify any header name\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\nThis is required if `AggregateKeyType` is set to `FORWARDED_IP`\\. \n*Required*: No \n*Type*: [ForwardedIPConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-forwardedipconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForwardedIPConfig" + }, + "Limit": { + "markdownDescription": "The limit on requests per 5\\-minute period for a single originating IP address\\. If the statement includes a `ScopeDownStatement`, this limit is applied only to the requests that match the statement\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Limit", + "type": "number" + }, + "ScopeDownStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Statement", + "markdownDescription": "An optional nested statement that narrows the scope of the rate\\-based statement to matching web requests\\. This can be any nestable statement, and you can nest statements at any level below this scope\\-down statement\\. \n*Required*: No \n*Type*: [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScopeDownStatement" + } + }, + "required": [ + "AggregateKeyType", + "Limit" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.RegexMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. For more information, see `FieldToMatch`\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" + }, + "RegexString": { + "markdownDescription": "The string representing the regular expression\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegexString", + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation" + }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content of the request component identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "RegexString", + "TextTransformations" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.RegexPatternSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the regular expression pattern set that this statement references\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation" + }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", + "type": "array" + } + }, + "required": [ + "Arn", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.Rule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.RuleAction", + "markdownDescription": "The action that AWS WAF should take on a web request when it matches the rule's statement\\. Settings at the web ACL level can override the rule action setting\\. \n*Required*: No \n*Type*: [RuleAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ruleaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" + }, + "CaptchaConfig": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CaptchaConfig", + "markdownDescription": "Specifies how AWS WAF should handle `CAPTCHA` evaluations\\. If you don't specify this, AWS WAF uses the `CAPTCHA` configuration that's defined for the web ACL\\. \n*Required*: No \n*Type*: [CaptchaConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-captchaconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptchaConfig" + }, + "ChallengeConfig": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ChallengeConfig" + }, + "Name": { + "markdownDescription": "The descriptive name of the rule\\. You can't change the name of a `Rule` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Priority": { + "markdownDescription": "If you define more than one `Rule` in a `WebACL`, AWS WAF evaluates each request against the `Rules` in order based on the value of `Priority`\\. AWS WAF processes rules with lower priority first\\. The priorities don't need to be consecutive, but they must all be different\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", + "type": "number" + }, + "RuleLabels": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Label" + }, + "markdownDescription": "Labels to apply to web requests that match the rule match statement\\. AWS WAF applies fully qualified labels to matching web requests\\. A fully qualified label is the concatenation of a label namespace and a rule label\\. The rule's rule group or web ACL defines the label namespace\\. \nRules that run after this rule in the web ACL can match against these labels using a `LabelMatchStatement`\\. \nFor each label, provide a case\\-sensitive string containing optional namespaces and a label name, according to the following guidelines: \n+ Separate each component of the label with a colon\\. \n+ Each namespace or name can have up to 128 characters\\.\n+ You can specify up to 5 namespaces in a label\\.\n+ Don't use the following reserved words in your label specification: `aws`, `waf`, `managed`, `rulegroup`, `webacl`, `regexpatternset`, or `ipset`\\.\nFor example, `myLabelName` or `nameSpace1:nameSpace2:myLabelName`\\. \n*Required*: No \n*Type*: List of [Label](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-label.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleLabels", + "type": "array" + }, + "Statement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Statement", + "markdownDescription": "The AWS WAF processing statement for the rule, for example ByteMatchStatement or SizeConstraintStatement\\. \n*Required*: Yes \n*Type*: [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statement" + }, + "VisibilityConfig": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.VisibilityConfig", + "markdownDescription": "Defines and enables Amazon CloudWatch metrics and web request sample collection\\. \n*Required*: Yes \n*Type*: [VisibilityConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-visibilityconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VisibilityConfig" + } + }, + "required": [ + "Name", + "Priority", + "Statement", + "VisibilityConfig" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.RuleAction": { + "additionalProperties": false, + "properties": { + "Allow": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.AllowAction", + "markdownDescription": "Instructs AWS WAF to allow the web request\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Allow" + }, + "Block": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.BlockAction", + "markdownDescription": "Instructs AWS WAF to block the web request\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Block" + }, + "Captcha": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CaptchaAction", + "markdownDescription": "Specifies that AWS WAF should run a `CAPTCHA` check against the request: \n+ If the request includes a valid, unexpired `CAPTCHA` token, AWS WAF allows the web request inspection to proceed to the next rule, similar to a `CountAction`\\. \n+ If the request doesn't include a valid, unexpired `CAPTCHA` token, AWS WAF discontinues the web ACL evaluation of the request and blocks it from going to its intended destination\\.", + "title": "Captcha" + }, + "Challenge": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ChallengeAction" + }, + "Count": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CountAction", + "markdownDescription": "Instructs AWS WAF to count the web request and allow it\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The operator to use to compare the request part to the size setting\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EQ | GE | GT | LE | LT | NE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComparisonOperator", + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" + }, + "Size": { + "markdownDescription": "The size, in byte, to compare to the request part, after any transformations\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Size", + "type": "number" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation" + }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", + "type": "array" + } + }, + "required": [ + "ComparisonOperator", + "FieldToMatch", + "Size", + "TextTransformations" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.SqliMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" + }, + "SensitivityLevel": { + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation" + }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.Statement": { + "additionalProperties": false, + "properties": { + "AndStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.AndStatement", + "markdownDescription": "A logical rule statement used to combine other rule statements with AND logic\\. You provide more than one [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-notstatement.html#cfn-wafv2-webacl-notstatement-statement) within the `AndStatement`\\. \n*Required*: No \n*Type*: [AndStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-andstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AndStatement" + }, + "ByteMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ByteMatchStatement", + "markdownDescription": "A rule statement that defines a string match search for AWS WAF to apply to web requests\\. The byte match statement provides the bytes to search for, the location in requests that you want AWS WAF to search, and other settings\\. The bytes to search for are typically a string that corresponds with ASCII characters\\. In the AWS WAF console and the developer guide, this is refered to as a string match statement\\. \n*Required*: No \n*Type*: [ByteMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-bytematchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ByteMatchStatement" + }, + "GeoMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.GeoMatchStatement", + "markdownDescription": "A rule statement used to identify web requests based on country of origin\\. \n*Required*: No \n*Type*: [GeoMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-geomatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GeoMatchStatement" + }, + "IPSetReferenceStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.IPSetReferenceStatement", + "markdownDescription": "A rule statement used to detect web requests coming from particular IP addresses or address ranges\\. To use this, create an [AWS::WAFv2::IPSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-ipset.html) that specifies the addresses you want to detect, then use the ARN of that set in this statement\\. \nEach IP set rule statement references an IP set\\. You create and maintain the set independent of your rules\\. This allows you to use the single set in multiple rules\\. When you update the referenced set, AWS WAF automatically updates all rules that reference it\\. \n*Required*: No \n*Type*: [IPSetReferenceStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ipsetreferencestatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IPSetReferenceStatement" + }, + "LabelMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.LabelMatchStatement", + "markdownDescription": "A rule statement that defines a string match search against labels that have been added to the web request by rules that have already run in the web ACL\\. \nThe label match statement provides the label or namespace string to search for\\. The label string can represent a part or all of the fully qualified label name that had been added to the web request\\. Fully qualified labels have a prefix, optional namespaces, and label name\\. The prefix identifies the rule group or web ACL context of the rule that added the label\\. If you do not provide the fully qualified name in your label match string, AWS WAF performs the search for labels that were added in the same context as the label match statement\\. \n*Required*: No \n*Type*: [LabelMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-labelmatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LabelMatchStatement" + }, + "NotStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.NotStatement", + "markdownDescription": "A logical rule statement used to negate the results of another rule statement\\. You provide one [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-notstatement.html#cfn-wafv2-webacl-notstatement-statement) within the `NotStatement`\\. \n*Required*: No \n*Type*: [NotStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-notstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotStatement" + }, + "OrStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.OrStatement", + "markdownDescription": "A logical rule statement used to combine other rule statements with OR logic\\. You provide more than one [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-notstatement.html#cfn-wafv2-webacl-notstatement-statement) within the `OrStatement`\\. \n*Required*: No \n*Type*: [OrStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-orstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrStatement" + }, + "RateBasedStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.RateBasedStatement", + "markdownDescription": "A rate\\-based rule tracks the rate of requests for each originating IP address, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any 5\\-minute time span\\. You can use this to put a temporary block on requests from an IP address that is sending excessive requests\\. \nWhen the rule action triggers, AWS WAF blocks additional requests from the IP address until the request rate falls below the limit\\. \nYou can optionally nest another statement inside the rate\\-based statement, to narrow the scope of the rule so that it only counts requests that match the nested statement\\. For example, based on recent requests that you have seen from an attacker, you might create a rate\\-based rule with a nested AND rule statement that contains the following nested statements: \n+ An IP match statement with an IP set that specified the address 192\\.0\\.2\\.44\\.\n+ A string match statement that searches in the User\\-Agent header for the string BadBot\\.\nIn this rate\\-based rule, you also define a rate limit\\. For this example, the rate limit is 1,000\\. Requests that meet both of the conditions in the statements are counted\\. If the count exceeds 1,000 requests per five minutes, the rule action triggers\\. Requests that do not meet both conditions are not counted towards the rate limit and are not affected by this rule\\. \nYou cannot nest a `RateBasedStatement`, for example for use inside a `NotStatement` or `OrStatement`\\. It can only be referenced as a top\\-level statement within a rule\\. \n*Required*: No \n*Type*: [RateBasedStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ratebasedstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RateBasedStatement" + }, + "RegexMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.RegexMatchStatement", + "markdownDescription": "A rule statement used to search web request components for a match against a single regular expression\\. \n*Required*: No \n*Type*: [RegexMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-regexmatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegexMatchStatement" + }, + "RegexPatternSetReferenceStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.RegexPatternSetReferenceStatement", + "markdownDescription": "A rule statement used to search web request components for matches with regular expressions\\. To use this, create a [AWS::WAFv2::RegexPatternSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-regexpatternset.html) that specifies the expressions that you want to detect, then use the ARN of that set in this statement\\. A web request matches the pattern set rule statement if the request component matches any of the patterns in the set\\. \nEach regex pattern set rule statement references a regex pattern set\\. You create and maintain the set independent of your rules\\. This allows you to use the single set in multiple rules\\. When you update the referenced set, AWS WAF automatically updates all rules that reference it\\. \n*Required*: No \n*Type*: [RegexPatternSetReferenceStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-regexpatternsetreferencestatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegexPatternSetReferenceStatement" + }, + "SizeConstraintStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.SizeConstraintStatement", + "markdownDescription": "A rule statement that compares a number of bytes against the size of a request component, using a comparison operator, such as greater than \\(>\\) or less than \\(<\\)\\. For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes\\. \nIf you configure AWS WAF to inspect the request body, AWS WAF inspects only the first 8192 bytes \\(8 KB\\)\\. If the request body for your web requests never exceeds 8192 bytes, you can create a size constraint condition and block requests that have a request body greater than 8192 bytes\\. \nIf you choose URI for the value of Part of the request to filter on, the slash \\(/\\) in the URI counts as one character\\. For example, the URI `/logo.jpg` is nine characters long\\. \n*Required*: No \n*Type*: [SizeConstraintStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-sizeconstraintstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SizeConstraintStatement" + }, + "SqliMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.SqliMatchStatement", + "markdownDescription": "Attackers sometimes insert malicious SQL code into web requests in an effort to extract data from your database\\. To allow or block web requests that appear to contain malicious SQL code, create one or more SQL injection match conditions\\. An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect\\. Later in the process, when you create a web ACL, you specify whether to allow or block requests that appear to contain malicious SQL code\\. \n*Required*: No \n*Type*: [SqliMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-sqlimatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SqliMatchStatement" + }, + "XssMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.XssMatchStatement", + "markdownDescription": "A rule statement that defines a cross\\-site scripting \\(XSS\\) match search for AWS WAF to apply to web requests\\. XSS attacks are those where the attacker uses vulnerabilities in a benign website as a vehicle to inject malicious client\\-site scripts into other legitimate web browsers\\. The XSS match statement provides the location in requests that you want AWS WAF to search and text transformations to use on the search area before AWS WAF searches for character sequences that are likely to be malicious strings\\. \n*Required*: No \n*Type*: [XssMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-xssmatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "XssMatchStatement" + } + }, + "type": "object" + }, + "AWS::WAFv2::RuleGroup.TextTransformation": { + "additionalProperties": false, + "properties": { + "Priority": { + "markdownDescription": "Sets the relative processing order for multiple transformations that are defined for a rule statement\\. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content\\. The priorities don't need to be consecutive, but they must all be different\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", + "type": "number" + }, + "Type": { + "markdownDescription": "You can specify the following transformation types: \n **BASE64\\_DECODE** \\- Decode a `Base64`\\-encoded string\\. \n **BASE64\\_DECODE\\_EXT** \\- Decode a `Base64`\\-encoded string, but use a forgiving implementation that ignores characters that aren't valid\\. \n **CMD\\_LINE** \\- Command\\-line transformations\\. These are helpful in reducing effectiveness of attackers who inject an operating system command\\-line command and use unusual formatting to disguise some or all of the command\\. \n+ Delete the following characters: `\\ \" ' ^` \n+ Delete spaces before the following characters: `/ (` \n+ Replace the following characters with a space: `, ;` \n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \\- Replace these characters with a space character \\(decimal 32\\): \n+ `\\f`, formfeed, decimal 12\n+ `\\t`, tab, decimal 9\n+ `\\n`, newline, decimal 10\n+ `\\r`, carriage return, decimal 13\n+ `\\v`, vertical tab, decimal 11\n+ Non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **CSS\\_DECODE** \\- Decode characters that were encoded using CSS 2\\.x escape rules `syndata.html#characters`\\. This function uses up to two bytes in the decoding process, so it can help to uncover ASCII characters that were encoded using CSS encoding that wouldn\u2019t typically be encoded\\. It's also useful in countering evasion, which is a combination of a backslash and non\\-hexadecimal characters\\. For example, `ja\\vascript` for javascript\\. \n **ESCAPE\\_SEQ\\_DECODE** \\- Decode the following ANSI C escape sequences: `\\a`, `\\b`, `\\f`, `\\n`, `\\r`, `\\t`, `\\v`, `\\\\`, `\\?`, `\\'`, `\\\"`, `\\xHH` \\(hexadecimal\\), `\\0OOO` \\(octal\\)\\. Encodings that aren't valid remain in the output\\. \n **HEX\\_DECODE** \\- Decode a string of hexadecimal characters into a binary\\. \n **HTML\\_ENTITY\\_DECODE** \\- Replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs these operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **JS\\_DECODE** \\- Decode JavaScript escape sequences\\. If a `\\` `u` `HHHH` code is in the full\\-width ASCII code range of `FF01-FF5E`, then the higher byte is used to detect and adjust the lower byte\\. If not, only the lower byte is used and the higher byte is zeroed, causing a possible loss of information\\. \n **LOWERCASE** \\- Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **MD5** \\- Calculate an MD5 hash from the data in the input\\. The computed hash is in a raw binary form\\. \n **NONE** \\- Specify `NONE` if you don't want any text transformations\\. \n **NORMALIZE\\_PATH** \\- Remove multiple slashes, directory self\\-references, and directory back\\-references that are not at the beginning of the input from an input string\\. \n **NORMALIZE\\_PATH\\_WIN** \\- This is the same as `NORMALIZE_PATH`, but first converts backslash characters to forward slashes\\. \n **REMOVE\\_NULLS** \\- Remove all `NULL` bytes from the input\\. \n **REPLACE\\_COMMENTS** \\- Replace each occurrence of a C\\-style comment \\(`/* ... */`\\) with a single space\\. Multiple consecutive occurrences are not compressed\\. Unterminated comments are also replaced with a space \\(ASCII 0x20\\)\\. However, a standalone termination of a comment \\(`*/`\\) is not acted upon\\. \n **REPLACE\\_NULLS** \\- Replace NULL bytes in the input with space characters \\(ASCII `0x20`\\)\\. \n **SQL\\_HEX\\_DECODE** \\- Decode SQL hex data\\. Example \\(`0x414243`\\) will be decoded to \\(`ABC`\\)\\. \n **URL\\_DECODE** \\- Decode a URL\\-encoded value\\. \n **URL\\_DECODE\\_UNI** \\- Like `URL_DECODE`, but with support for Microsoft\\-specific `%u` encoding\\. If the code is in the full\\-width ASCII code range of `FF01-FF5E`, the higher byte is used to detect and adjust the lower byte\\. Otherwise, only the lower byte is used and the higher byte is zeroed\\. \n **UTF8\\_TO\\_UNICODE** \\- Convert all UTF\\-8 character sequences to Unicode\\. This helps input normalization, and minimizing false\\-positives and false\\-negatives for non\\-English languages\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BASE64_DECODE | BASE64_DECODE_EXT | CMD_LINE | COMPRESS_WHITE_SPACE | CSS_DECODE | ESCAPE_SEQ_DECODE | HEX_DECODE | HTML_ENTITY_DECODE | JS_DECODE | LOWERCASE | MD5 | NONE | NORMALIZE_PATH | NORMALIZE_PATH_WIN | REMOVE_NULLS | REPLACE_COMMENTS | REPLACE_NULLS | SQL_HEX_DECODE | URL_DECODE | URL_DECODE_UNI | UTF8_TO_UNICODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Priority", + "Type" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.VisibilityConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchMetricsEnabled": { + "markdownDescription": "A boolean indicating whether the associated resource sends metrics to Amazon CloudWatch\\. For the list of available metrics, see [AWS WAF Metrics](https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchMetricsEnabled", + "type": "boolean" + }, + "MetricName": { + "markdownDescription": "The descriptive name of the Amazon CloudWatch metric\\. The name can contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\), with length from one to 128 characters\\. It can't contain whitespace or metric names reserved for AWS WAF, for example \"All\" and \"Default\\_Action\\.\" You can't change a `MetricName` after you create a `VisibilityConfig`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[\\w#:\\.\\-/]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", + "type": "string" + }, + "SampledRequestsEnabled": { + "markdownDescription": "A boolean indicating whether AWS WAF should store a sampling of the web requests that match the rules\\. You can view the sampled requests through the AWS WAF console\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SampledRequestsEnabled", + "type": "boolean" + } + }, + "required": [ + "CloudWatchMetricsEnabled", + "MetricName", + "SampledRequestsEnabled" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.XssMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation" + }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", + "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", + "markdownDescription": "Specifies how AWS WAF should handle `CAPTCHA` evaluations for rules that don't have their own `CaptchaConfig` settings\\. If you don't specify this, AWS WAF uses its default settings for `CaptchaConfig`\\. \n*Required*: No \n*Type*: [CaptchaConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-captchaconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptchaConfig" + }, + "ChallengeConfig": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ChallengeConfig" + }, + "CustomResponseBodies": { + "additionalProperties": false, + "markdownDescription": "A map of custom response keys and content bodies\\. When you create a rule with a block action, you can send a custom response to the web request\\. You define these for the web ACL, and then use them in the rules and default actions that you define in the web ACL\\. \nFor information about customizing web requests and responses, see [Customizing web requests and responses in AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \nFor information about the limits on count and size for custom request and response settings, see [AWS WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: No \n*Type*: Map of [CustomResponseBody](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customresponsebody.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomResponseBody" + } + }, + "title": "CustomResponseBodies", + "type": "object" + }, + "DefaultAction": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.DefaultAction", + "markdownDescription": "The action to perform if none of the `Rules` contained in the `WebACL` match\\. \n*Required*: Yes \n*Type*: [DefaultAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-defaultaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DefaultAction" + }, + "Description": { + "markdownDescription": "A description of the web ACL that helps with identification\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^[\\w+=:#@/\\-,\\.][\\w+=:#@/\\-,\\.\\s]+[\\w+=:#@/\\-,\\.]$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The descriptive name of the web ACL\\. You cannot change the name of a web ACL after you create it\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.Rule" + }, + "markdownDescription": "The rule statements used to identify the web requests that you want to allow, block, or count\\. Each rule includes one top\\-level statement that AWS WAF uses to identify matching web requests, and parameters that govern how AWS WAF handles them\\. \n*Required*: No \n*Type*: List of [Rule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-rule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Rules", + "type": "array" + }, + "Scope": { + "markdownDescription": "Specifies whether this is for an Amazon CloudFront distribution or for a regional application\\. A regional application can be an Application Load Balancer \\(ALB\\), an Amazon API Gateway REST API, or an AWS AppSync GraphQL API\\. Valid Values are `CLOUDFRONT` and `REGIONAL`\\. \nFor `CLOUDFRONT`, you must create your WAFv2 resources in the US East \\(N\\. Virginia\\) Region, `us-east-1`\\.\nFor information about how to define the association of the web ACL with your resource, see [AWS::WAFv2::WebACLAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webaclassociation.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Scope", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "Key:value pairs associated with an AWS resource\\. The key:value pair can be anything you define\\. Typically, the tag key represents a category \\(such as \"environment\"\\) and the tag value represents a specific value within that category \\(such as \"test,\" \"development,\" or \"production\"\\)\\. You can add up to 50 tags to each AWS resource\\. \nTo modify tags on existing resources, use the AWS WAF APIs or command line interface\\. With AWS CloudFormation, you can only add tags to AWS WAF resources during resource creation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "TokenDomains": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VisibilityConfig": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.VisibilityConfig", + "markdownDescription": "Defines and enables Amazon CloudWatch metrics and web request sample collection\\. \n*Required*: Yes \n*Type*: [VisibilityConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-visibilityconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Defines custom handling for the web request\\. \nFor information about customizing web requests and responses, see [Customizing web requests and responses in AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: No \n*Type*: [CustomRequestHandling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customrequesthandling.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomRequestHandling" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.AndStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement" + }, + "markdownDescription": "The statements to combine with AND logic\\. You can use any statements that can be nested\\. \n*Required*: Yes \n*Type*: List of [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statements", + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.BlockAction": { + "additionalProperties": false, + "properties": { + "CustomResponse": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomResponse", + "markdownDescription": "Defines a custom response for the web request\\. \nFor information about customizing web requests and responses, see [Customizing web requests and responses in AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: No \n*Type*: [CustomResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customresponse.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" + }, + "PositionalConstraint": { + "markdownDescription": "The area within the portion of a web request that you want AWS WAF to search for `SearchString`\\. Valid values include the following: \n **CONTAINS** \nThe specified part of the web request must include the value of `SearchString`, but the location doesn't matter\\. \n **CONTAINS\\_WORD** \nThe specified part of the web request must include the value of `SearchString`, and `SearchString` must contain only alphanumeric characters or underscore \\(A\\-Z, a\\-z, 0\\-9, or \\_\\)\\. In addition, `SearchString` must be a word, which means that both of the following are true: \n+ `SearchString` is at the beginning of the specified part of the web request or is preceded by a character other than an alphanumeric character or underscore \\(\\_\\)\\. Examples include the value of a header and `;BadBot`\\.\n+ `SearchString` is at the end of the specified part of the web request or is followed by a character other than an alphanumeric character or underscore \\(\\_\\), for example, `BadBot;` and `-BadBot;`\\.\n **EXACTLY** \nThe value of the specified part of the web request must exactly match the value of `SearchString`\\. \n **STARTS\\_WITH** \nThe value of `SearchString` must appear at the beginning of the specified part of the web request\\. \n **ENDS\\_WITH** \nThe value of `SearchString` must appear at the end of the specified part of the web request\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CONTAINS | CONTAINS_WORD | ENDS_WITH | EXACTLY | STARTS_WITH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PositionalConstraint", + "type": "string" + }, + "SearchString": { + "markdownDescription": "A string value that you want AWS WAF to search for\\. AWS WAF searches only in the part of web requests that you designate for inspection in `FieldToMatch`\\. The maximum length of the value is 50 bytes\\. For alphabetic characters A\\-Z and a\\-z, the value is case sensitive\\. \nDon't encode this string\\. Provide the value that you want AWS WAF to search for\\. AWS CloudFormation automatically base64 encodes the value for you\\. \nFor example, suppose the value of `Type` is `HEADER` and the value of `Data` is `User-Agent`\\. If you want to search the `User-Agent` header for the value `BadBot`, you provide the string `BadBot` in the value of `SearchString`\\. \nYou must specify either `SearchString` or `SearchStringBase64` in a `ByteMatchStatement`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SearchString", + "type": "string" + }, + "SearchStringBase64": { + "markdownDescription": "String to search for in a web request component, base64\\-encoded\\. If you don't want to encode the string, specify the unencoded value in `SearchString` instead\\. \nYou must specify either `SearchString` or `SearchStringBase64` in a `ByteMatchStatement`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SearchStringBase64", + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation" + }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "PositionalConstraint", + "TextTransformations" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.CaptchaAction": { + "additionalProperties": false, + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomRequestHandling", + "markdownDescription": "Defines custom handling for the web request\\. \nFor information about customizing web requests and responses, see [Customizing web requests and responses in AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: No \n*Type*: [CustomRequestHandling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customrequesthandling.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomRequestHandling" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.CaptchaConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ImmunityTimeProperty", + "markdownDescription": "Determines how long a `CAPTCHA` token remains valid after the client successfully solves a `CAPTCHA` puzzle\\. \n*Required*: No \n*Type*: [ImmunityTimeProperty](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-immunitytimeproperty.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Defines custom handling for the web request\\. \nFor information about customizing web requests and responses, see [Customizing web requests and responses in AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: No \n*Type*: [CustomRequestHandling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customrequesthandling.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomRequestHandling" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.CustomHTTPHeader": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the custom header\\. \nFor custom request header insertion, when AWS WAF inserts the header into the request, it prefixes this name `x-amzn-waf-`, to avoid confusion with the headers that are already in the request\\. For example, for the header name `sample`, AWS WAF inserts the header `x-amzn-waf-sample`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9._$-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "Value": { + "markdownDescription": "The value of the custom header\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Value", + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.CustomRequestHandling": { + "additionalProperties": false, + "properties": { + "InsertHeaders": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomHTTPHeader" + }, + "markdownDescription": "The HTTP headers to insert into the request\\. Duplicate header names are not allowed\\. \nFor information about the limits on count and size for custom request and response settings, see [AWS WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: Yes \n*Type*: List of [CustomHTTPHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customhttpheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InsertHeaders", + "type": "array" + } + }, + "required": [ + "InsertHeaders" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.CustomResponse": { + "additionalProperties": false, + "properties": { + "CustomResponseBodyKey": { + "markdownDescription": "References the response body that you want AWS WAF to return to the web request client\\. You can define a custom response for a rule action or a default web ACL action that is set to block\\. To do this, you first define the response body key and value in the `CustomResponseBodies` setting for the [AWS::WAFv2::WebACL](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html) or [AWS::WAFv2::RuleGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-rulegroup.html) where you want to use it\\. Then, in the rule action or web ACL default action `BlockAction` setting, you reference the response body using this key\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CustomResponseBodyKey", + "type": "string" + }, + "ResponseCode": { + "markdownDescription": "The HTTP status code to return to the client\\. \nFor a list of status codes that you can use in your custom reqponses, see [Supported status codes for custom response](https://docs.aws.amazon.com/waf/latest/developerguide/customizing-the-response-status-codes.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `200` \n*Maximum*: `599` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseCode", + "type": "number" + }, + "ResponseHeaders": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomHTTPHeader" + }, + "markdownDescription": "The HTTP headers to use in the response\\. Duplicate header names are not allowed\\. \nFor information about the limits on count and size for custom request and response settings, see [AWS WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: No \n*Type*: List of [CustomHTTPHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customhttpheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseHeaders", + "type": "array" + } + }, + "required": [ + "ResponseCode" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.CustomResponseBody": { + "additionalProperties": false, + "properties": { + "Content": { + "markdownDescription": "The payload of the custom response\\. \nYou can use JSON escape strings in JSON content\\. To do this, you must specify JSON content in the `ContentType` setting\\. \nFor information about the limits on count and size for custom request and response settings, see [AWS WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `10240` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Content", + "type": "string" + }, + "ContentType": { + "markdownDescription": "The type of content in the payload that you are defining in the `Content` string\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `APPLICATION_JSON | TEXT_HTML | TEXT_PLAIN` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ContentType", + "type": "string" + } + }, + "required": [ + "Content", + "ContentType" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.DefaultAction": { + "additionalProperties": false, + "properties": { + "Allow": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.AllowAction", + "markdownDescription": "Specifies that AWS WAF should allow requests by default\\. \n*Required*: No \n*Type*: [AllowAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-allowaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Allow" + }, + "Block": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.BlockAction", + "markdownDescription": "Specifies that AWS WAF should block requests by default\\. \n*Required*: No \n*Type*: [BlockAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-blockaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Block" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.ExcludedRule": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The name of the rule to exclude\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.FieldIdentifier": { + "additionalProperties": false, + "properties": { + "Identifier": { + "markdownDescription": "The name of the username or password field, used in the `ManagedRuleGroupConfig` settings\\. \nWhen the `PayloadType` is `JSON`, the identifier must be in JSON pointer syntax\\. For example `/form/username`\\. For information about the JSON Pointer syntax, see the Internet Engineering Task Force \\(IETF\\) documentation [JavaScript Object Notation \\(JSON\\) Pointer](https://tools.ietf.org/html/rfc6901)\\. \nWhen the `PayloadType` is `FORM_ENCODED`, use the HTML form names\\. For example, `username`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Identifier", + "type": "string" + } + }, + "required": [ + "Identifier" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.FieldToMatch": { + "additionalProperties": false, + "properties": { + "AllQueryArguments": { + "markdownDescription": "Inspect all query arguments\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AllQueryArguments", + "type": "object" + }, + "Body": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.Body", + "markdownDescription": "Inspect the request body, which immediately follows the request headers\\. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. \nNote that only the first 8 KB \\(8192 bytes\\) of the request body are forwarded to AWS WAF for inspection by the underlying host service\\. If you don't need to inspect more than 8 KB, you can guarantee that you don't allow additional bytes in by combining a statement that inspects the body of the web request, such as the `ByteMatchStatement` or `RegexPatternSetReferenceStatement`, with a `SizeConstraintStatement` that enforces an 8 KB size limit on the body of the request\\. AWS WAF doesn't support inspecting the entire contents of web requests whose bodies exceed the 8 KB limit\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Body" + }, + "Cookies": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.Cookies" + }, + "Headers": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.Headers" + }, + "JsonBody": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.JsonBody", + "markdownDescription": "Inspect the request body as JSON\\. The request body immediately follows the request headers\\. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form\\. \nNote that only the first 8 KB \\(8192 bytes\\) of the request body are forwarded to AWS WAF for inspection by the underlying host service\\. If you don't need to inspect more than 8 KB, you can guarantee that you don't allow additional bytes in by combining a statement that inspects the body of the web request, such as the `ByteMatchStatement` or `RegexPatternSetReferenceStatement`, with a `SizeConstraintStatement` that enforces an 8 KB size limit on the body of the request\\. AWS WAF doesn't support inspecting the entire contents of web requests whose bodies exceed the 8 KB limit\\. \n*Required*: No \n*Type*: [JsonBody](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-jsonbody.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "JsonBody" + }, + "Method": { + "markdownDescription": "Inspect the HTTP method\\. The method indicates the type of operation that the request is asking the origin to perform\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Method", + "type": "object" + }, + "QueryString": { + "markdownDescription": "Inspect the query string\\. This is the part of a URL that appears after a `?` character, if any\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "QueryString", + "type": "object" + }, + "SingleHeader": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.SingleHeader", + "markdownDescription": "Inspect a single header\\. Provide the name of the header to inspect, for example, `User-Agent` or `Referer`\\. This setting isn't case sensitive\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SingleHeader" + }, + "SingleQueryArgument": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.SingleQueryArgument", + "markdownDescription": "Inspect a single query argument\\. Provide the name of the query argument to inspect, such as *UserName* or *SalesRegion*\\. The name can be up to 30 characters long and isn't case sensitive\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SingleQueryArgument" + }, + "UriPath": { + "markdownDescription": "Inspect the request URI path\\. This is the part of a web request that identifies a resource, for example, `/images/daily-ad.jpg`\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UriPath", + "type": "object" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.ForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "markdownDescription": "The match status to assign to the web request if the request doesn't have a valid IP address in the specified position\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\nYou can specify the following fallback behaviors: \n+ `MATCH` \\- Treat the web request as matching the rule statement\\. AWS WAF applies the rule action to the request\\.\n+ `NO_MATCH` \\- Treat the web request as not matching the rule statement\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `MATCH | NO_MATCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FallbackBehavior", + "type": "string" + }, + "HeaderName": { + "markdownDescription": "The name of the HTTP header to use for the IP address\\. For example, to use the X\\-Forwarded\\-For \\(XFF\\) header, set this to `X-Forwarded-For`\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderName", + "type": "string" + } + }, + "required": [ + "FallbackBehavior", + "HeaderName" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.GeoMatchStatement": { + "additionalProperties": false, + "properties": { + "CountryCodes": { + "items": { + "type": "string" + }, + "markdownDescription": "An array of two\\-character country codes, for example, `[ \"US\", \"CN\" ]`, from the alpha\\-2 country ISO codes of the ISO 3166 international standard\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CountryCodes", + "type": "array" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ForwardedIPConfiguration", + "markdownDescription": "The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin\\. Commonly, this is the X\\-Forwarded\\-For \\(XFF\\) header, but you can specify any header name\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: No \n*Type*: [ForwardedIPConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-forwardedipconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForwardedIPConfig" + } + }, + "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": { + "markdownDescription": "The match status to assign to the web request if the request doesn't have a valid IP address in the specified position\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\nYou can specify the following fallback behaviors: \n+ `MATCH` \\- Treat the web request as matching the rule statement\\. AWS WAF applies the rule action to the request\\.\n+ `NO_MATCH` \\- Treat the web request as not matching the rule statement\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `MATCH | NO_MATCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FallbackBehavior", + "type": "string" + }, + "HeaderName": { + "markdownDescription": "The name of the HTTP header to use for the IP address\\. For example, to use the X\\-Forwarded\\-For \\(XFF\\) header, set this to `X-Forwarded-For`\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HeaderName", + "type": "string" + }, + "Position": { + "markdownDescription": "The position in the header to search for the IP address\\. The header can contain IP addresses of the original client and also of proxies\\. For example, the header value could be `10.1.1.1, 127.0.0.0, 10.10.10.10` where the first IP address identifies the original client and the rest identify proxies that the request went through\\. \nThe options for this setting are the following: \n+ FIRST \\- Inspect the first IP address in the list of IP addresses in the header\\. This is usually the client's original IP\\.\n+ LAST \\- Inspect the last IP address in the list of IP addresses in the header\\.\n+ ANY \\- Inspect all IP addresses in the header for a match\\. If the header contains more than 10 IP addresses, AWS WAF inspects the last 10\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `ANY | FIRST | LAST` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Position", + "type": "string" + } + }, + "required": [ + "FallbackBehavior", + "HeaderName", + "Position" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.IPSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the IP set that this statement references\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "IPSetForwardedIPConfig": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.IPSetForwardedIPConfiguration", + "markdownDescription": "The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin\\. Commonly, this is the X\\-Forwarded\\-For \\(XFF\\) header, but you can specify any header name\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\n*Required*: No \n*Type*: [IPSetForwardedIPConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ipsetforwardedipconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IPSetForwardedIPConfig" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.ImmunityTimeProperty": { + "additionalProperties": false, + "properties": { + "ImmunityTime": { + "markdownDescription": "The amount of time, in seconds, that a `CAPTCHA` token is valid\\. The default setting is 300\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ImmunityTime", + "type": "number" + } + }, + "required": [ + "ImmunityTime" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.JsonBody": { + "additionalProperties": false, + "properties": { + "InvalidFallbackBehavior": { + "markdownDescription": "What AWS WAF should do if it fails to completely parse the JSON body\\. The options are the following: \n+ `EVALUATE_AS_STRING` \\- Inspect the body as plain text\\. AWS WAF applies the text transformations and inspection criteria that you defined for the JSON inspection to the body text string\\.\n+ `MATCH` \\- Treat the web request as matching the rule statement\\. AWS WAF applies the rule action to the request\\.\n+ `NO_MATCH` \\- Treat the web request as not matching the rule statement\\.\nIf you don't provide this setting, AWS WAF parses and evaluates the content only up to the first parsing failure that it encounters\\. \nAWS WAF does its best to parse the entire JSON body, but might be forced to stop for reasons such as invalid characters, duplicate keys, truncation, and any content whose root node isn't an object or an array\\. \nAWS WAF parses the JSON in the following examples as two valid key, value pairs: \n+ Missing comma: `{\"key1\":\"value1\"\"key2\":\"value2\"}` \n+ Missing colon: `{\"key1\":\"value1\",\"key2\"\"value2\"}` \n+ Extra colons: `{\"key1\"::\"value1\",\"key2\"\"value2\"}` \n*Required*: No \n*Type*: String \n*Allowed values*: `EVALUATE_AS_STRING | MATCH | NO_MATCH` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InvalidFallbackBehavior", + "type": "string" + }, + "MatchPattern": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.JsonMatchPattern", + "markdownDescription": "The patterns to look for in the JSON body\\. AWS WAF inspects the results of these pattern matches against the rule inspection criteria\\. \n*Required*: Yes \n*Type*: [JsonMatchPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-jsonmatchpattern.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MatchPattern" + }, + "MatchScope": { + "markdownDescription": "The parts of the JSON to match against using the `MatchPattern`\\. If you specify `All`, AWS WAF matches against keys and values\\. \nValid Values: `ALL` \\| `KEY` \\| `VALUE` \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ALL | KEY | VALUE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MatchScope", + "type": "string" + }, + "OversizeHandling": { + "type": "string" + } + }, + "required": [ + "MatchPattern", + "MatchScope" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.JsonMatchPattern": { + "additionalProperties": false, + "properties": { + "All": { + "markdownDescription": "Match all of the elements\\. See also `MatchScope` in `JsonBody`\\. \nYou must specify either this setting or the `IncludedPaths` setting, but not both\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "All", + "type": "object" + }, + "IncludedPaths": { + "items": { + "type": "string" + }, + "markdownDescription": "Match only the specified include paths\\. See also `MatchScope` in `JsonBody`\\. \nProvide the include paths using JSON Pointer syntax\\. For example, `\"IncludedPaths\": [\"/dogs/0/name\", \"/dogs/1/name\"]`\\. For information about this syntax, see the Internet Engineering Task Force \\(IETF\\) documentation [JavaScript Object Notation \\(JSON\\) Pointer](https://tools.ietf.org/html/rfc6901)\\. \nYou must specify either this setting or the `All` setting, but not both\\. \nDon't use this option to include all paths\\. Instead, use the `All` setting\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IncludedPaths", + "type": "array" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.Label": { + "additionalProperties": false, + "properties": { + "Name": { + "markdownDescription": "The label string\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Pattern*: `^[0-9A-Za-z_\\-:]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.LabelMatchStatement": { + "additionalProperties": false, + "properties": { + "Key": { + "markdownDescription": "The string to match against\\. The setting you provide for this depends on the match statement's `Scope` setting: \n+ If the `Scope` indicates `LABEL`, then this specification must include the name and can include any number of preceding namespace specifications and prefix up to providing the fully qualified label name\\. \n+ If the `Scope` indicates `NAMESPACE`, then this specification can include any number of contiguous namespace strings, and can include the entire label namespace prefix from the rule group or web ACL where the label originates\\.\nLabels are case sensitive and components of a label must be separated by colon, for example `NS1:NS2:name`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Key", + "type": "string" + }, + "Scope": { + "markdownDescription": "Specify whether you want to match using the label name or just the namespace\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Scope", + "type": "string" + } + }, + "required": [ + "Key", + "Scope" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.ManagedRuleGroupConfig": { + "additionalProperties": false, + "properties": { + "AWSManagedRulesBotControlRuleSet": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.AWSManagedRulesBotControlRuleSet" + }, + "LoginPath": { + "markdownDescription": "The path of the login endpoint for your application\\. For example, for the URL `https://example.com/web/login`, you would provide the path `/web/login`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoginPath", + "type": "string" + }, + "PasswordField": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldIdentifier", + "markdownDescription": "Details about your login page password field\\. \n*Required*: No \n*Type*: [FieldIdentifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldidentifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PasswordField" + }, + "PayloadType": { + "markdownDescription": "The payload type for your login endpoint, either JSON or form encoded\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `FORM_ENCODED | JSON` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PayloadType", + "type": "string" + }, + "UsernameField": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldIdentifier", + "markdownDescription": "Details about your login page username field\\. \n*Required*: No \n*Type*: [FieldIdentifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldidentifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "UsernameField" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.ManagedRuleGroupStatement": { + "additionalProperties": false, + "properties": { + "ExcludedRules": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ExcludedRule" + }, + "markdownDescription": "The rules whose actions are set to `COUNT` by the web ACL, regardless of the action that is configured in the rule\\. This effectively excludes the rule from acting on web requests\\. \n*Required*: No \n*Type*: List of [ExcludedRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-excludedrule.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludedRules", + "type": "array" + }, + "ManagedRuleGroupConfigs": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ManagedRuleGroupConfig" + }, + "markdownDescription": "Additional information that's used by a managed rule group\\. Most managed rule groups don't require this\\. \nUse this for the account takeover prevention managed rule group `AWSManagedRulesATPRuleSet`, to provide information about the sign\\-in page of your application\\. \nYou can provide multiple individual `ManagedRuleGroupConfig` objects for any rule group configuration, for example `UsernameField` and `PasswordField`\\. The configuration that you provide depends on the needs of the managed rule group\\. For the ATP managed rule group, you provide the following individual configuration objects: `LoginPath`, `PasswordField`, `PayloadType` and `UsernameField`\\. \n*Required*: No \n*Type*: List of [ManagedRuleGroupConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-managedrulegroupconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManagedRuleGroupConfigs", + "type": "array" + }, + "Name": { + "markdownDescription": "The name of the managed rule group\\. You use this, along with the vendor name, to identify the rule group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "RuleActionOverrides": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.RuleActionOverride" + }, + "type": "array" + }, + "ScopeDownStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement", + "markdownDescription": "Statement nested inside a managed rule group statement to narrow the scope of the requests that AWS WAF evaluates using the rule group\\. Requests that match the scope\\-down statement are evaluated using the rule group\\. Requests that don't match the scope\\-down statement are not a match for the managed rule group statement, without any further evaluation\\. \n*Required*: No \n*Type*: [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScopeDownStatement" + }, + "VendorName": { + "markdownDescription": "The name of the managed rule group vendor\\. You use this, along with the rule group name, to identify the rule group\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VendorName", + "type": "string" + }, + "Version": { + "markdownDescription": "The version of the managed rule group to use\\. If you specify this, the version setting is fixed until you change it\\. If you don't specify this, AWS WAF uses the vendor's default version, and then keeps the version at the vendor's default when the vendor updates the managed rule group settings\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", + "type": "string" + } + }, + "required": [ + "Name", + "VendorName" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.NotStatement": { + "additionalProperties": false, + "properties": { + "Statement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement", + "markdownDescription": "The statement to negate\\. You can use any statement that can be nested\\. \n*Required*: Yes \n*Type*: [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statement" + } + }, + "required": [ + "Statement" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.OrStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement" + }, + "markdownDescription": "The statements to combine with OR logic\\. You can use any statements that can be nested\\. \n*Required*: Yes \n*Type*: List of [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statements", + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.OverrideAction": { + "additionalProperties": false, + "properties": { + "Count": { + "markdownDescription": "Override the rule action settings to count\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count", + "type": "object" + }, + "None": { + "markdownDescription": "Don't override the rule action settings\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "None", + "type": "object" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.RateBasedStatement": { + "additionalProperties": false, + "properties": { + "AggregateKeyType": { + "markdownDescription": "Setting that indicates how to aggregate the request counts\\. The options are the following: \n+ IP \\- Aggregate the request counts on the IP address from the web request origin\\.\n+ FORWARDED\\_IP \\- Aggregate the request counts on the first IP address in an HTTP header\\. If you use this, configure the `ForwardedIPConfig`, to specify the header to use\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `FORWARDED_IP | IP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AggregateKeyType", + "type": "string" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ForwardedIPConfiguration", + "markdownDescription": "The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin\\. Commonly, this is the X\\-Forwarded\\-For \\(XFF\\) header, but you can specify any header name\\. \nIf the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all\\.\nThis is required if `AggregateKeyType` is set to `FORWARDED_IP`\\. \n*Required*: No \n*Type*: [ForwardedIPConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-forwardedipconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ForwardedIPConfig" + }, + "Limit": { + "markdownDescription": "The limit on requests per 5\\-minute period for a single originating IP address\\. If the statement includes a `ScopeDownStatement`, this limit is applied only to the requests that match the statement\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Limit", + "type": "number" + }, + "ScopeDownStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement", + "markdownDescription": "An optional nested statement that narrows the scope of the rate\\-based statement to matching web requests\\. This can be any nestable statement, and you can nest statements at any level below this scope\\-down statement\\. \n*Required*: No \n*Type*: [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ScopeDownStatement" + } + }, + "required": [ + "AggregateKeyType", + "Limit" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.RegexMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. For more information, see `FieldToMatch`\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" + }, + "RegexString": { + "markdownDescription": "The string representing the regular expression\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegexString", + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation" + }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content of the request component identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "RegexString", + "TextTransformations" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.RegexPatternSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the regular expression pattern set that this statement references\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation" + }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", + "type": "array" + } + }, + "required": [ + "Arn", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.Rule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.RuleAction", + "markdownDescription": "The action that AWS WAF should take on a web request when it matches the rule's statement\\. Settings at the web ACL level can override the rule action setting\\. \nThis is used only for rules whose statements don't reference a rule group\\. Rule statements that reference a rule group are `RuleGroupReferenceStatement` and `ManagedRuleGroupStatement`\\. \nYou must set either this `Action` setting or the rule's `OverrideAction`, but not both: \n+ If the rule statement doesn't reference a rule group, you must set this rule action setting and you must not set the rule's override action setting\\. \n+ If the rule statement references a rule group, you must not set this action setting, because the actions are already set on the rules inside the rule group\\. You must set the rule's override action setting to indicate specifically whether to override the actions that are set on the rules in the rule group\\. \n*Required*: Conditional \n*Type*: [RuleAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ruleaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Action" + }, + "CaptchaConfig": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.CaptchaConfig", + "markdownDescription": "Specifies how AWS WAF should handle `CAPTCHA` evaluations\\. If you don't specify this, AWS WAF uses the `CAPTCHA` configuration that's defined for the web ACL\\. \n*Required*: No \n*Type*: [CaptchaConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-captchaconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CaptchaConfig" + }, + "ChallengeConfig": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ChallengeConfig" + }, + "Name": { + "markdownDescription": "The descriptive name of the rule\\. You can't change the name of a `Rule` after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^[\\w\\-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", + "type": "string" + }, + "OverrideAction": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.OverrideAction", + "markdownDescription": "The override action to apply to the rules in a rule group, instead of the individual rule action settings\\. This is used only for rules whose statements reference a rule group\\. Rule statements that reference a rule group are `RuleGroupReferenceStatement` and `ManagedRuleGroupStatement`\\. \nSet the override action to none to leave the rule group rule actions in effect\\. Set it to count to only count matches, regardless of the rule action settings\\. \nYou must set either this `OverrideAction` setting or the `Action` setting, but not both: \n+ If the rule statement references a rule group, you must set this override action setting and you must not set the rule's action setting\\. \n+ If the rule statement doesn't reference a rule group, you must set the rule action setting and you must not set the rule's override action setting\\. \n*Required*: Conditional \n*Type*: [OverrideAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-overrideaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OverrideAction" + }, + "Priority": { + "markdownDescription": "If you define more than one `Rule` in a `WebACL`, AWS WAF evaluates each request against the `Rules` in order based on the value of `Priority`\\. AWS WAF processes rules with lower priority first\\. The priorities don't need to be consecutive, but they must all be different\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", + "type": "number" + }, + "RuleLabels": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.Label" + }, + "markdownDescription": "Labels to apply to web requests that match the rule match statement\\. AWS WAF applies fully qualified labels to matching web requests\\. A fully qualified label is the concatenation of a label namespace and a rule label\\. The rule's rule group or web ACL defines the label namespace\\. \nRules that run after this rule in the web ACL can match against these labels using a `LabelMatchStatement`\\. \nFor each label, provide a case\\-sensitive string containing optional namespaces and a label name, according to the following guidelines: \n+ Separate each component of the label with a colon\\. \n+ Each namespace or name can have up to 128 characters\\.\n+ You can specify up to 5 namespaces in a label\\.\n+ Don't use the following reserved words in your label specification: `aws`, `waf`, `managed`, `rulegroup`, `webacl`, `regexpatternset`, or `ipset`\\.\nFor example, `myLabelName` or `nameSpace1:nameSpace2:myLabelName`\\. \n*Required*: No \n*Type*: List of [Label](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-label.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleLabels", + "type": "array" + }, + "Statement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement", + "markdownDescription": "The AWS WAF processing statement for the rule, for example ByteMatchStatement or SizeConstraintStatement\\. \n*Required*: Yes \n*Type*: [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Statement" + }, + "VisibilityConfig": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.VisibilityConfig", + "markdownDescription": "Defines and enables Amazon CloudWatch metrics and web request sample collection\\. \n*Required*: Yes \n*Type*: [VisibilityConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-visibilityconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "VisibilityConfig" + } + }, + "required": [ + "Name", + "Priority", + "Statement", + "VisibilityConfig" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.RuleAction": { + "additionalProperties": false, + "properties": { + "Allow": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.AllowAction", + "markdownDescription": "Instructs AWS WAF to allow the web request\\. \n*Required*: No \n*Type*: [AllowAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-allowaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Allow" + }, + "Block": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.BlockAction", + "markdownDescription": "Instructs AWS WAF to block the web request\\. \n*Required*: No \n*Type*: [BlockAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-blockaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Block" + }, + "Captcha": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.CaptchaAction", + "markdownDescription": "Specifies that AWS WAF should run a `CAPTCHA` check against the request: \n+ If the request includes a valid, unexpired `CAPTCHA` token, AWS WAF allows the web request inspection to proceed to the next rule, similar to a `CountAction`\\. \n+ If the request doesn't include a valid, unexpired `CAPTCHA` token, AWS WAF discontinues the web ACL evaluation of the request and blocks it from going to its intended destination\\.", + "title": "Captcha" + }, + "Challenge": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ChallengeAction" + }, + "Count": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.CountAction", + "markdownDescription": "Instructs AWS WAF to count the web request and allow it\\. \n*Required*: No \n*Type*: [CountAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-countaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Count" + } + }, + "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the entity\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Arn", + "type": "string" + }, + "ExcludedRules": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ExcludedRule" + }, + "markdownDescription": "The rules in the referenced rule group whose actions are set to `Count`\\. When you exclude a rule, AWS WAF evaluates it exactly as it would if the rule action setting were `Count`\\. This is a useful option for testing the rules in a rule group without modifying how they handle your web traffic\\. \n*Required*: No \n*Type*: List of [ExcludedRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-excludedrule.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ExcludedRules", + "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": { + "markdownDescription": "The operator to use to compare the request part to the size setting\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `EQ | GE | GT | LE | LT | NE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComparisonOperator", + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" + }, + "Size": { + "markdownDescription": "The size, in byte, to compare to the request part, after any transformations\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Size", + "type": "number" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation" + }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", + "type": "array" + } + }, + "required": [ + "ComparisonOperator", + "FieldToMatch", + "Size", + "TextTransformations" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.SqliMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" + }, + "SensitivityLevel": { + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation" + }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.Statement": { + "additionalProperties": false, + "properties": { + "AndStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.AndStatement", + "markdownDescription": "A logical rule statement used to combine other rule statements with AND logic\\. You provide more than one [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-notstatement.html#cfn-wafv2-webacl-notstatement-statement) within the `AndStatement`\\. \n*Required*: No \n*Type*: [AndStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-andstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AndStatement" + }, + "ByteMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ByteMatchStatement", + "markdownDescription": "A rule statement that defines a string match search for AWS WAF to apply to web requests\\. The byte match statement provides the bytes to search for, the location in requests that you want AWS WAF to search, and other settings\\. The bytes to search for are typically a string that corresponds with ASCII characters\\. In the AWS WAF console and the developer guide, this is refered to as a string match statement\\. \n*Required*: No \n*Type*: [ByteMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-bytematchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ByteMatchStatement" + }, + "GeoMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.GeoMatchStatement", + "markdownDescription": "A rule statement used to identify web requests based on country of origin\\. \n*Required*: No \n*Type*: [GeoMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-geomatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GeoMatchStatement" + }, + "IPSetReferenceStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.IPSetReferenceStatement", + "markdownDescription": "A rule statement used to detect web requests coming from particular IP addresses or address ranges\\. To use this, create an [AWS::WAFv2::IPSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-ipset.html) that specifies the addresses you want to detect, then use the ARN of that set in this statement\\. \nEach IP set rule statement references an IP set\\. You create and maintain the set independent of your rules\\. This allows you to use the single set in multiple rules\\. When you update the referenced set, AWS WAF automatically updates all rules that reference it\\. \n*Required*: No \n*Type*: [IPSetReferenceStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ipsetreferencestatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "IPSetReferenceStatement" + }, + "LabelMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.LabelMatchStatement", + "markdownDescription": "A rule statement that defines a string match search against labels that have been added to the web request by rules that have already run in the web ACL\\. \nThe label match statement provides the label or namespace string to search for\\. The label string can represent a part or all of the fully qualified label name that had been added to the web request\\. Fully qualified labels have a prefix, optional namespaces, and label name\\. The prefix identifies the rule group or web ACL context of the rule that added the label\\. If you do not provide the fully qualified name in your label match string, AWS WAF performs the search for labels that were added in the same context as the label match statement\\. \n*Required*: No \n*Type*: [LabelMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-labelmatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LabelMatchStatement" + }, + "ManagedRuleGroupStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ManagedRuleGroupStatement", + "markdownDescription": "A rule statement used to run the rules that are defined in a managed rule group\\. To use this, provide the vendor name and the name of the rule group in this statement\\. \nYou can't nest a `ManagedRuleGroupStatement`, for example for use inside a `NotStatement` or `OrStatement`\\. It can only be referenced as a top\\-level statement within a rule\\. \n*Required*: No \n*Type*: [ManagedRuleGroupStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-managedrulegroupstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ManagedRuleGroupStatement" + }, + "NotStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.NotStatement", + "markdownDescription": "A logical rule statement used to negate the results of another rule statement\\. You provide one [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-notstatement.html#cfn-wafv2-webacl-notstatement-statement) within the `NotStatement`\\. \n*Required*: No \n*Type*: [NotStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-notstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "NotStatement" + }, + "OrStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.OrStatement", + "markdownDescription": "A logical rule statement used to combine other rule statements with OR logic\\. You provide more than one [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-notstatement.html#cfn-wafv2-webacl-notstatement-statement) within the `OrStatement`\\. \n*Required*: No \n*Type*: [OrStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-orstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "OrStatement" + }, + "RateBasedStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.RateBasedStatement", + "markdownDescription": "A rate\\-based rule tracks the rate of requests for each originating IP address, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any 5\\-minute time span\\. You can use this to put a temporary block on requests from an IP address that is sending excessive requests\\. \nWhen the rule action triggers, AWS WAF blocks additional requests from the IP address until the request rate falls below the limit\\. \nYou can optionally nest another statement inside the rate\\-based statement, to narrow the scope of the rule so that it only counts requests that match the nested statement\\. For example, based on recent requests that you have seen from an attacker, you might create a rate\\-based rule with a nested AND rule statement that contains the following nested statements: \n+ An IP match statement with an IP set that specified the address 192\\.0\\.2\\.44\\.\n+ A string match statement that searches in the User\\-Agent header for the string BadBot\\.\nIn this rate\\-based rule, you also define a rate limit\\. For this example, the rate limit is 1,000\\. Requests that meet both of the conditions in the statements are counted\\. If the count exceeds 1,000 requests per five minutes, the rule action triggers\\. Requests that do not meet both conditions are not counted towards the rate limit and are not affected by this rule\\. \nYou cannot nest a `RateBasedStatement`, for example for use inside a `NotStatement` or `OrStatement`\\. It can only be referenced as a top\\-level statement within a rule\\. \n*Required*: No \n*Type*: [RateBasedStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ratebasedstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RateBasedStatement" + }, + "RegexMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.RegexMatchStatement", + "markdownDescription": "A rule statement used to search web request components for a match against a single regular expression\\. \n*Required*: No \n*Type*: [RegexMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-regexmatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegexMatchStatement" + }, + "RegexPatternSetReferenceStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.RegexPatternSetReferenceStatement", + "markdownDescription": "A rule statement used to search web request components for matches with regular expressions\\. To use this, create a [AWS::WAFv2::RegexPatternSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-regexpatternset.html) that specifies the expressions that you want to detect, then use the ARN of that set in this statement\\. A web request matches the pattern set rule statement if the request component matches any of the patterns in the set\\. \nEach regex pattern set rule statement references a regex pattern set\\. You create and maintain the set independent of your rules\\. This allows you to use the single set in multiple rules\\. When you update the referenced set, AWS WAF automatically updates all rules that reference it\\. \n*Required*: No \n*Type*: [RegexPatternSetReferenceStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-regexpatternsetreferencestatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RegexPatternSetReferenceStatement" + }, + "RuleGroupReferenceStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.RuleGroupReferenceStatement", + "markdownDescription": "A rule statement used to run the rules that are defined in a [AWS::WAFv2::RuleGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-rulegroup.html)\\. To use this, create a rule group with your rules, then provide the ARN of the rule group in this statement\\. \nYou cannot nest a `RuleGroupReferenceStatement`, for example for use inside a `NotStatement` or `OrStatement`\\. It can only be referenced as a top\\-level statement within a rule\\. \n*Required*: No \n*Type*: [RuleGroupReferenceStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-rulegroupreferencestatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleGroupReferenceStatement" + }, + "SizeConstraintStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.SizeConstraintStatement", + "markdownDescription": "A rule statement that compares a number of bytes against the size of a request component, using a comparison operator, such as greater than \\(>\\) or less than \\(<\\)\\. For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes\\. \nIf you configure AWS WAF to inspect the request body, AWS WAF inspects only the first 8192 bytes \\(8 KB\\)\\. If the request body for your web requests never exceeds 8192 bytes, you can create a size constraint condition and block requests that have a request body greater than 8192 bytes\\. \nIf you choose URI for the value of Part of the request to filter on, the slash \\(/\\) in the URI counts as one character\\. For example, the URI `/logo.jpg` is nine characters long\\. \n*Required*: No \n*Type*: [SizeConstraintStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-sizeconstraintstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SizeConstraintStatement" + }, + "SqliMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.SqliMatchStatement", + "markdownDescription": "Attackers sometimes insert malicious SQL code into web requests in an effort to extract data from your database\\. To allow or block web requests that appear to contain malicious SQL code, create one or more SQL injection match conditions\\. An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want AWS WAF to inspect\\. Later in the process, when you create a web ACL, you specify whether to allow or block requests that appear to contain malicious SQL code\\. \n*Required*: No \n*Type*: [SqliMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-sqlimatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SqliMatchStatement" + }, + "XssMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.XssMatchStatement", + "markdownDescription": "A rule statement that defines a cross\\-site scripting \\(XSS\\) match search for AWS WAF to apply to web requests\\. XSS attacks are those where the attacker uses vulnerabilities in a benign website as a vehicle to inject malicious client\\-site scripts into other legitimate web browsers\\. The XSS match statement provides the location in requests that you want AWS WAF to search and text transformations to use on the search area before AWS WAF searches for character sequences that are likely to be malicious strings\\. \n*Required*: No \n*Type*: [XssMatchStatement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-xssmatchstatement.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "XssMatchStatement" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.TextTransformation": { + "additionalProperties": false, + "properties": { + "Priority": { + "markdownDescription": "Sets the relative processing order for multiple transformations that are defined for a rule statement\\. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content\\. The priorities don't need to be consecutive, but they must all be different\\. \n*Required*: Yes \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", + "type": "number" + }, + "Type": { + "markdownDescription": "You can specify the following transformation types: \n **BASE64\\_DECODE** \\- Decode a `Base64`\\-encoded string\\. \n **BASE64\\_DECODE\\_EXT** \\- Decode a `Base64`\\-encoded string, but use a forgiving implementation that ignores characters that aren't valid\\. \n **CMD\\_LINE** \\- Command\\-line transformations\\. These are helpful in reducing effectiveness of attackers who inject an operating system command\\-line command and use unusual formatting to disguise some or all of the command\\. \n+ Delete the following characters: `\\ \" ' ^` \n+ Delete spaces before the following characters: `/ (` \n+ Replace the following characters with a space: `, ;` \n+ Replace multiple spaces with one space\n+ Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\n **COMPRESS\\_WHITE\\_SPACE** \\- Replace these characters with a space character \\(decimal 32\\): \n+ `\\f`, formfeed, decimal 12\n+ `\\t`, tab, decimal 9\n+ `\\n`, newline, decimal 10\n+ `\\r`, carriage return, decimal 13\n+ `\\v`, vertical tab, decimal 11\n+ Non\\-breaking space, decimal 160\n `COMPRESS_WHITE_SPACE` also replaces multiple spaces with one space\\. \n **CSS\\_DECODE** \\- Decode characters that were encoded using CSS 2\\.x escape rules `syndata.html#characters`\\. This function uses up to two bytes in the decoding process, so it can help to uncover ASCII characters that were encoded using CSS encoding that wouldn\u2019t typically be encoded\\. It's also useful in countering evasion, which is a combination of a backslash and non\\-hexadecimal characters\\. For example, `ja\\vascript` for javascript\\. \n **ESCAPE\\_SEQ\\_DECODE** \\- Decode the following ANSI C escape sequences: `\\a`, `\\b`, `\\f`, `\\n`, `\\r`, `\\t`, `\\v`, `\\\\`, `\\?`, `\\'`, `\\\"`, `\\xHH` \\(hexadecimal\\), `\\0OOO` \\(octal\\)\\. Encodings that aren't valid remain in the output\\. \n **HEX\\_DECODE** \\- Decode a string of hexadecimal characters into a binary\\. \n **HTML\\_ENTITY\\_DECODE** \\- Replace HTML\\-encoded characters with unencoded characters\\. `HTML_ENTITY_DECODE` performs these operations: \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)quot;` with `\"` \n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)nbsp;` with a non\\-breaking space, decimal 160\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)lt;` with a \"less than\" symbol\n+ Replaces `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)gt;` with `>` \n+ Replaces characters that are represented in hexadecimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#xhhhh;`, with the corresponding characters\n+ Replaces characters that are represented in decimal format, `(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/ampersand.html.html.html.html.html.html)#nnnn;`, with the corresponding characters\n **JS\\_DECODE** \\- Decode JavaScript escape sequences\\. If a `\\` `u` `HHHH` code is in the full\\-width ASCII code range of `FF01-FF5E`, then the higher byte is used to detect and adjust the lower byte\\. If not, only the lower byte is used and the higher byte is zeroed, causing a possible loss of information\\. \n **LOWERCASE** \\- Convert uppercase letters \\(A\\-Z\\) to lowercase \\(a\\-z\\)\\. \n **MD5** \\- Calculate an MD5 hash from the data in the input\\. The computed hash is in a raw binary form\\. \n **NONE** \\- Specify `NONE` if you don't want any text transformations\\. \n **NORMALIZE\\_PATH** \\- Remove multiple slashes, directory self\\-references, and directory back\\-references that are not at the beginning of the input from an input string\\. \n **NORMALIZE\\_PATH\\_WIN** \\- This is the same as `NORMALIZE_PATH`, but first converts backslash characters to forward slashes\\. \n **REMOVE\\_NULLS** \\- Remove all `NULL` bytes from the input\\. \n **REPLACE\\_COMMENTS** \\- Replace each occurrence of a C\\-style comment \\(`/* ... */`\\) with a single space\\. Multiple consecutive occurrences are not compressed\\. Unterminated comments are also replaced with a space \\(ASCII 0x20\\)\\. However, a standalone termination of a comment \\(`*/`\\) is not acted upon\\. \n **REPLACE\\_NULLS** \\- Replace NULL bytes in the input with space characters \\(ASCII `0x20`\\)\\. \n **SQL\\_HEX\\_DECODE** \\- Decode SQL hex data\\. Example \\(`0x414243`\\) will be decoded to \\(`ABC`\\)\\. \n **URL\\_DECODE** \\- Decode a URL\\-encoded value\\. \n **URL\\_DECODE\\_UNI** \\- Like `URL_DECODE`, but with support for Microsoft\\-specific `%u` encoding\\. If the code is in the full\\-width ASCII code range of `FF01-FF5E`, the higher byte is used to detect and adjust the lower byte\\. Otherwise, only the lower byte is used and the higher byte is zeroed\\. \n **UTF8\\_TO\\_UNICODE** \\- Convert all UTF\\-8 character sequences to Unicode\\. This helps input normalization, and minimizing false\\-positives and false\\-negatives for non\\-English languages\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `BASE64_DECODE | BASE64_DECODE_EXT | CMD_LINE | COMPRESS_WHITE_SPACE | CSS_DECODE | ESCAPE_SEQ_DECODE | HEX_DECODE | HTML_ENTITY_DECODE | JS_DECODE | LOWERCASE | MD5 | NONE | NORMALIZE_PATH | NORMALIZE_PATH_WIN | REMOVE_NULLS | REPLACE_COMMENTS | REPLACE_NULLS | SQL_HEX_DECODE | URL_DECODE | URL_DECODE_UNI | UTF8_TO_UNICODE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Priority", + "Type" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.VisibilityConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchMetricsEnabled": { + "markdownDescription": "A boolean indicating whether the associated resource sends metrics to Amazon CloudWatch\\. For the list of available metrics, see [AWS WAF Metrics](https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchMetricsEnabled", + "type": "boolean" + }, + "MetricName": { + "markdownDescription": "The descriptive name of the Amazon CloudWatch metric\\. The name can contain only alphanumeric characters \\(A\\-Z, a\\-z, 0\\-9\\), with length from one to 128 characters\\. It can't contain whitespace or metric names reserved for AWS WAF, for example \"All\" and \"Default\\_Action\\.\" You can't change a `MetricName` after you create a `VisibilityConfig`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[\\w#:\\.\\-/]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MetricName", + "type": "string" + }, + "SampledRequestsEnabled": { + "markdownDescription": "A boolean indicating whether AWS WAF should store a sampling of the web requests that match the rules\\. You can view the sampled requests through the AWS WAF console\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SampledRequestsEnabled", + "type": "boolean" + } + }, + "required": [ + "CloudWatchMetricsEnabled", + "MetricName", + "SampledRequestsEnabled" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.XssMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch", + "markdownDescription": "The part of a web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation" + }, + "markdownDescription": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TextTransformations", + "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the resource to associate with the web ACL\\. \nThe ARN must be in one of the following formats: \n+ For an Application Load Balancer: `arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id ` \n+ For an Amazon API Gateway REST API: `arn:aws:apigateway:region::/restapis/api-id/stages/stage-name ` \n+ For an AWS AppSync GraphQL API: `arn:aws:appsync:region:account-id:apis/GraphQLApiId`\nFor Amazon CloudFront, define the association in your CloudFront distribution configuration\\. To associate a web ACL, provide the Amazon Resource Name \\(ARN\\) of the [AWS::WAFv2::WebACL](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html) to your CloudFront distribution configuration\\. To disassociate a web ACL, provide an empty ARN\\. For information, see [AWS::CloudFront::Distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ResourceArn", + "type": "string" + }, + "WebACLArn": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the web ACL that you want to associate with the resource\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The description of the assistant\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9\\s_.,-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the assistant\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9\\s_.,-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "ServerSideEncryptionConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::Assistant.ServerSideEncryptionConfiguration", + "markdownDescription": "The KMS key used for encryption\\. \n*Required*: No \n*Type*: [ServerSideEncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-assistant-serversideencryptionconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServerSideEncryptionConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "type": "array" + }, + "Type": { + "markdownDescription": "The type of assistant\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AGENT` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The KMS key\\. For information about valid ID values, see [Key identifiers \\(KeyId\\)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + } + }, + "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": { + "markdownDescription": "The identifier of the Wisdom assistant\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AssistantId", + "type": "string" + }, + "Association": { + "$ref": "#/definitions/AWS::Wisdom::AssistantAssociation.AssociationData", + "markdownDescription": "The identifier of the associated resource\\. \n*Required*: Yes \n*Type*: [AssociationData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-assistantassociation-associationdata.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Association" + }, + "AssociationType": { + "markdownDescription": "The type of association\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `KNOWLEDGE_BASE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AssociationType", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "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": { + "markdownDescription": "The identifier of the knowledge base\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "The description\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9\\s_.,-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Description", + "type": "string" + }, + "KnowledgeBaseType": { + "markdownDescription": "The type of knowledge base\\. Only CUSTOM knowledge bases allow you to upload your own content\\. EXTERNAL knowledge bases support integrations with third\\-party systems whose content is synchronized automatically\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CUSTOM | EXTERNAL` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KnowledgeBaseType", + "type": "string" + }, + "Name": { + "markdownDescription": "The name of the knowledge base\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[a-zA-Z0-9\\s_.,-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Name", + "type": "string" + }, + "RenderingConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.RenderingConfiguration", + "markdownDescription": "Information about how to render the content\\. \n*Required*: No \n*Type*: [RenderingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-knowledgebase-renderingconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RenderingConfiguration" + }, + "ServerSideEncryptionConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.ServerSideEncryptionConfiguration", + "markdownDescription": "The KMS key used for encryption\\. \n*Required*: No \n*Type*: [ServerSideEncryptionConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-knowledgebase-serversideencryptionconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ServerSideEncryptionConfiguration" + }, + "SourceConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.SourceConfiguration", + "markdownDescription": "The source of the knowledge base content\\. Only set this argument for EXTERNAL knowledge bases\\. \n*Required*: No \n*Type*: [SourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-knowledgebase-sourceconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SourceConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags used to organize, track, or control access for this resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "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": { + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the AppIntegrations DataIntegration to use for ingesting content\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `^arn:[a-z-]+?:[a-z-]+?:[a-z0-9-]*?:([0-9]{12})?:[a-zA-Z0-9-:/]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AppIntegrationArn", + "type": "string" + }, + "ObjectFields": { + "items": { + "type": "string" + }, + "markdownDescription": "The fields from the source that are made available to your agents in Wisdom\\. \n+ For [ Salesforce](https://developer.salesforce.com/docs/atlas.en-us.knowledge_dev.meta/knowledge_dev/sforce_api_objects_knowledge__kav.htm), you must include at least `Id`, `ArticleNumber`, `VersionNumber`, `Title`, `PublishStatus`, and `IsDeleted`\\. \n+ For [ ServiceNow](https://developer.servicenow.com/dev.do#!/reference/api/rome/rest/knowledge-management-api), you must include at least `number`, `short_description`, `sys_mod_count`, `workflow_state`, and `active`\\. \nMake sure to include additional fields\\. These fields are indexed and used to source recommendations\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ObjectFields", + "type": "array" + } + }, + "required": [ + "AppIntegrationArn", + "ObjectFields" + ], + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.RenderingConfiguration": { + "additionalProperties": false, + "properties": { + "TemplateUri": { + "markdownDescription": "A URI template containing exactly one variable in `${variableName} `format\\. This can only be set for `EXTERNAL` knowledge bases\\. For Salesforce and ServiceNow, the variable must be one of the following: \n+ Salesforce: `Id`, `ArticleNumber`, `VersionNumber`, `Title`, `PublishStatus`, or `IsDeleted`\n+ ServiceNow: `number`, `short_description`, `sys_mod_count`, `workflow_state`, or `active`\nThe variable is replaced with the actual value for a piece of content when calling [GetContent](https://docs.aws.amazon.com/wisdom/latest/APIReference/API_GetContent.html)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "TemplateUri", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.ServerSideEncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "markdownDescription": "The KMS key\\. For information about valid ID values, see [Key identifiers \\(KeyId\\)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "KmsKeyId", + "type": "string" + } + }, + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.SourceConfiguration": { + "additionalProperties": false, + "properties": { + "AppIntegrations": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.AppIntegrationsConfiguration", + "markdownDescription": "Configuration information for Amazon AppIntegrations to automatically ingest content\\. \n*Required*: No \n*Type*: [AppIntegrationsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-knowledgebase-appintegrationsconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AppIntegrations" + } + }, + "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": { + "markdownDescription": "The connection string specified for the connection alias\\. The connection string must be in the form of a fully qualified domain name \\(FQDN\\), such as `www.example.com`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Pattern*: `^[.0-9a-zA-Z\\-]{1,255}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ConnectionString", + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags to associate with the connection alias\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Tags", + "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": { + "markdownDescription": "The identifier of the AWS account that associated the connection alias with a directory\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^\\d{12}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociatedAccountId", + "type": "string" + }, + "AssociationStatus": { + "markdownDescription": "The association status of the connection alias\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ASSOCIATED_WITH_OWNER_ACCOUNT | ASSOCIATED_WITH_SHARED_ACCOUNT | NOT_ASSOCIATED | PENDING_ASSOCIATION | PENDING_DISASSOCIATION` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AssociationStatus", + "type": "string" + }, + "ConnectionIdentifier": { + "markdownDescription": "The identifier of the connection alias association\\. You use the connection identifier in the DNS TXT record when you're configuring your DNS routing policies\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `20` \n*Pattern*: `^[a-zA-Z0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ConnectionIdentifier", + "type": "string" + }, + "ResourceId": { + "markdownDescription": "The identifier of the directory associated with a connection alias\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The identifier of the bundle for the WorkSpace\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `^wsb-[0-9a-z]{8,63}$` \n*Update requires*: Updates are not supported\\.", + "title": "BundleId", + "type": "string" + }, + "DirectoryId": { + "markdownDescription": "The identifier of the AWS Directory Service directory for the WorkSpace\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `65` \n*Pattern*: `^d-[0-9a-f]{8,63}$` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "title": "DirectoryId", + "type": "string" + }, + "RootVolumeEncryptionEnabled": { + "markdownDescription": "Indicates whether the data stored on the root volume is encrypted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: Updates are not supported\\.", + "title": "RootVolumeEncryptionEnabled", + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "markdownDescription": "The tags for the WorkSpace\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "type": "array" + }, + "UserName": { + "markdownDescription": "The user name of the user for the WorkSpace\\. This user name must exist in the AWS Directory Service directory for the WorkSpace\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "UserName", + "type": "string" + }, + "UserVolumeEncryptionEnabled": { + "markdownDescription": "Indicates whether the data stored on the user volume is encrypted\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: Updates are not supported\\.", + "title": "UserVolumeEncryptionEnabled", + "type": "boolean" + }, + "VolumeEncryptionKey": { + "markdownDescription": "The symmetric AWS KMS key used to encrypt data stored on your WorkSpace\\. Amazon WorkSpaces does not support asymmetric KMS keys\\. \n*Required*: No \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "title": "VolumeEncryptionKey", + "type": "string" + }, + "WorkspaceProperties": { + "$ref": "#/definitions/AWS::WorkSpaces::Workspace.WorkspaceProperties", + "markdownDescription": "The WorkSpace properties\\. \n*Required*: No \n*Type*: [WorkspaceProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-workspaces-workspace-workspaceproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The compute type\\. For more information, see [Amazon WorkSpaces Bundles](http://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GRAPHICS | GRAPHICSPRO | PERFORMANCE | POWER | POWERPRO | STANDARD | VALUE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ComputeTypeName", + "type": "string" + }, + "RootVolumeSizeGib": { + "markdownDescription": "The size of the root volume\\. For important information about how to modify the size of the root and user volumes, see [Modify a WorkSpace](https://docs.aws.amazon.com/workspaces/latest/adminguide/modify-workspaces.html)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RootVolumeSizeGib", + "type": "number" + }, + "RunningMode": { + "markdownDescription": "The running mode\\. For more information, see [Manage the WorkSpace Running Mode](https://docs.aws.amazon.com/workspaces/latest/adminguide/running-mode.html)\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ALWAYS_ON | AUTO_STOP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RunningMode", + "type": "string" + }, + "RunningModeAutoStopTimeoutInMinutes": { + "markdownDescription": "The time after a user logs off when WorkSpaces are automatically stopped\\. Configured in 60\\-minute intervals\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RunningModeAutoStopTimeoutInMinutes", + "type": "number" + }, + "UserVolumeSizeGib": { + "markdownDescription": "The size of the user storage\\. For important information about how to modify the size of the root and user volumes, see [Modify a WorkSpace](https://docs.aws.amazon.com/workspaces/latest/adminguide/modify-workspaces.html)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The filter expression defining the parameters to include traces\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FilterExpression", + "type": "string" + }, + "GroupName": { + "markdownDescription": "The unique case\\-sensitive name of the group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "GroupName", + "type": "string" + }, + "InsightsConfiguration": { + "$ref": "#/definitions/AWS::XRay::Group.InsightsConfiguration", + "markdownDescription": "The structure containing configurations related to insights\\. \n+ The InsightsEnabled boolean can be set to true to enable insights for the group or false to disable insights for the group\\.\n+ The NotificationsEnabled boolean can be set to true to enable insights notifications through Amazon EventBridge for the group\\.\n*Required*: No \n*Type*: [InsightsConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-xray-group-insightsconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InsightsConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::XRay::Group.TagsItems" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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": { + "markdownDescription": "Set the InsightsEnabled value to true to enable insights or false to disable insights\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "InsightsEnabled", + "type": "boolean" + }, + "NotificationsEnabled": { + "markdownDescription": "Set the NotificationsEnabled value to true to enable insights notifications\\. Notifications can only be enabled on a group with InsightsEnabled set to true\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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": { + "markdownDescription": "The name of the sampling rule\\. Specify a rule by either name or ARN, but not both\\. Used only when deleting a sampling rule\\. When creating or updating a sampling rule, use the `RuleName` or `RuleARN` properties within `SamplingRule` or `SamplingRuleUpdate`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleName", + "type": "string" + }, + "SamplingRule": { + "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRule", + "markdownDescription": "The sampling rule to be created\\. \nMust be provided if creating a new sampling rule\\. Not valid when updating an existing sampling rule\\. \n*Required*: Conditional \n*Type*: [SamplingRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-xray-samplingrule-samplingrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SamplingRule" + }, + "SamplingRuleRecord": { + "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRuleRecord", + "markdownDescription": "Not currently supported by AWS CloudFormation\\. \n*Required*: No \n*Type*: [SamplingRuleRecord](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-xray-samplingrule-samplingrulerecord.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SamplingRuleRecord" + }, + "SamplingRuleUpdate": { + "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRuleUpdate", + "markdownDescription": "A document specifying changes to a sampling rule's configuration\\. \nMust be provided if updating an existing sampling rule\\. Not valid when creating a new sampling rule\\. \nThe `Version` of a sampling rule cannot be updated, and is not part of `SamplingRuleUpdate`\\.\n*Required*: Conditional \n*Type*: [SamplingRuleUpdate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-xray-samplingrule-samplingruleupdate.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SamplingRuleUpdate" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::XRay::SamplingRule.TagsItems" + }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", + "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, + "markdownDescription": "Matches attributes derived from the request\\. \n*Map Entries:* Maximum number of 5 items\\. \n*Key Length Constraints:* Minimum length of 1\\. Maximum length of 32\\. \n*Value Length Constraints:* Minimum length of 1\\. Maximum length of 32\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Attributes", + "type": "object" + }, + "FixedRate": { + "markdownDescription": "The percentage of matching requests to instrument, after the reservoir is exhausted\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FixedRate", + "type": "number" + }, + "HTTPMethod": { + "markdownDescription": "Matches the HTTP method of a request\\. \n*Required*: No \n*Type*: String \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTPMethod", + "type": "string" + }, + "Host": { + "markdownDescription": "Matches the hostname from a request URL\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", + "type": "string" + }, + "Priority": { + "markdownDescription": "The priority of the sampling rule\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `9999` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", + "type": "number" + }, + "ReservoirSize": { + "markdownDescription": "A fixed number of matching requests to instrument per second, prior to applying the fixed rate\\. The reservoir is not used directly by services, but applies to all services using the rule collectively\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `0` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReservoirSize", + "type": "number" + }, + "ResourceARN": { + "markdownDescription": "Matches the ARN of the AWS resource on which the service runs\\. \n*Required*: No \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceARN", + "type": "string" + }, + "RuleARN": { + "markdownDescription": "The ARN of the sampling rule\\. You must specify either RuleARN or RuleName, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleARN", + "type": "string" + }, + "RuleName": { + "markdownDescription": "The name of the sampling rule\\. You must specify either RuleARN or RuleName, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleName", + "type": "string" + }, + "ServiceName": { + "markdownDescription": "Matches the `name` that the service uses to identify itself in segments\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceName", + "type": "string" + }, + "ServiceType": { + "markdownDescription": "Matches the `origin` that the service uses to identify its type in segments\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceType", + "type": "string" + }, + "URLPath": { + "markdownDescription": "Matches the path from a request URL\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "URLPath", + "type": "string" + }, + "Version": { + "markdownDescription": "The version of the sampling rule format \\(`1`\\)\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Version", + "type": "number" + } + }, + "type": "object" + }, + "AWS::XRay::SamplingRule.SamplingRuleRecord": { + "additionalProperties": false, + "properties": { + "CreatedAt": { + "markdownDescription": "When the rule was created, in Unix time seconds\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CreatedAt", + "type": "string" + }, + "ModifiedAt": { + "markdownDescription": "When the rule was last modified, in Unix time seconds\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ModifiedAt", + "type": "string" + }, + "SamplingRule": { + "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRule", + "markdownDescription": "The sampling rule\\. \n*Required*: No \n*Type*: [SamplingRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-xray-samplingrule-samplingrule.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SamplingRule" + } + }, + "type": "object" + }, + "AWS::XRay::SamplingRule.SamplingRuleUpdate": { + "additionalProperties": false, + "properties": { + "Attributes": { + "additionalProperties": true, + "markdownDescription": "Matches attributes derived from the request\\. \n*Map Entries:* Maximum number of 5 items\\. \n*Key Length Constraints:* Minimum length of 1\\. Maximum length of 32\\. \n*Value Length Constraints:* Minimum length of 1\\. Maximum length of 32\\. \n*Required*: No \n*Type*: Map of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "title": "Attributes", + "type": "object" + }, + "FixedRate": { + "markdownDescription": "The percentage of matching requests to instrument, after the reservoir is exhausted\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FixedRate", + "type": "number" + }, + "HTTPMethod": { + "markdownDescription": "Matches the HTTP method of a request\\. \n*Required*: No \n*Type*: String \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "HTTPMethod", + "type": "string" + }, + "Host": { + "markdownDescription": "Matches the hostname from a request URL\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Host", + "type": "string" + }, + "Priority": { + "markdownDescription": "The priority of the sampling rule\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Priority", + "type": "number" + }, + "ReservoirSize": { + "markdownDescription": "A fixed number of matching requests to instrument per second, prior to applying the fixed rate\\. The reservoir is not used directly by services, but applies to all services using the rule collectively\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ReservoirSize", + "type": "number" + }, + "ResourceARN": { + "markdownDescription": "Matches the ARN of the AWS resource on which the service runs\\. \n*Required*: No \n*Type*: String \n*Maximum*: `500` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceARN", + "type": "string" + }, + "RuleARN": { + "markdownDescription": "The ARN of the sampling rule\\. You must specify either RuleARN or RuleName, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleARN", + "type": "string" + }, + "RuleName": { + "markdownDescription": "The name of the sampling rule\\. You must specify either RuleARN or RuleName, but not both\\. \n*Required*: Conditional \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RuleName", + "type": "string" + }, + "ServiceName": { + "markdownDescription": "Matches the `name` that the service uses to identify itself in segments\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceName", + "type": "string" + }, + "ServiceType": { + "markdownDescription": "Matches the `origin` that the service uses to identify its type in segments\\. \n*Required*: No \n*Type*: String \n*Maximum*: `64` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ServiceType", + "type": "string" + }, + "URLPath": { + "markdownDescription": "Matches the path from a request URL\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "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", + "markdownDescription": "Login with Amazon \\(LWA\\) configuration used to authenticate with the Alexa service\\. Only Login with Amazon clients created through the [Amazon Developer Console](https://developer.amazon.com/lwa/sp/overview.html) are supported\\. The client ID, client secret, and refresh token are required\\. \n*Required*: Yes \n*Type*: [AuthenticationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-authenticationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AuthenticationConfiguration" + }, + "SkillPackage": { + "$ref": "#/definitions/Alexa::ASK::Skill.SkillPackage", + "markdownDescription": "Configuration for the skill package that contains the components of the Alexa skill\\. Skill packages are retrieved from an Amazon S3 bucket and key and used to create and update the skill\\. For more information about the skill package format, see the [Skill Package API Reference](https://developer.amazon.com/docs/smapi/skill-package-api-reference.html#skill-package-format)\\. \n*Required*: Yes \n*Type*: [SkillPackage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-skillpackage.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SkillPackage" + }, + "VendorId": { + "markdownDescription": "The vendor ID associated with the Amazon developer account that will host the skill\\. Details for retrieving the vendor ID are in [How to get your vendor ID](https://github.com/alexa/alexa-smarthome/wiki/How-to-get-your-vendor-ID)\\. The provided LWA credentials must be linked to the developer account associated with this vendor ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "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": { + "markdownDescription": "Client ID from Login with Amazon \\(LWA\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientId", + "type": "string" + }, + "ClientSecret": { + "markdownDescription": "Client secret from Login with Amazon \\(LWA\\)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ClientSecret", + "type": "string" + }, + "RefreshToken": { + "markdownDescription": "Refresh token from Login with Amazon \\(LWA\\)\\. This token is secret\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RefreshToken", + "type": "string" + } + }, + "required": [ + "ClientId", + "ClientSecret", + "RefreshToken" + ], + "type": "object" + }, + "Alexa::ASK::Skill.Overrides": { + "additionalProperties": false, + "properties": { + "Manifest": { + "markdownDescription": "Overrides to apply to the skill manifest inside of the skill package\\. The skill manifest contains metadata about the skill\\. For more information, see [Skill Manifest Schemas](https://developer.amazon.com/docs/smapi/skill-manifest.html)\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Manifest", + "type": "object" + } + }, + "type": "object" + }, + "Alexa::ASK::Skill.SkillPackage": { + "additionalProperties": false, + "properties": { + "Overrides": { + "$ref": "#/definitions/Alexa::ASK::Skill.Overrides", + "markdownDescription": "Overrides to the skill package to apply when creating or updating the skill\\. Values provided here do not modify the contents of the original skill package\\. Currently, only overriding values inside of the skill manifest component of the package is supported\\. \n*Required*: No \n*Type*: [Overrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-overrides.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Overrides" + }, + "S3Bucket": { + "markdownDescription": "The name of the Amazon S3 bucket where the \\.zip file that contains the skill package is stored\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Bucket", + "type": "string" + }, + "S3BucketRole": { + "markdownDescription": "ARN of the IAM role that grants the Alexa service \\(`alexa-appkit.amazon.com`\\) permission to access the bucket and retrieve the skill package\\. This property is optional\\. If you do not provide it, the bucket must be publicly accessible or configured with a policy that allows this access\\. Otherwise, AWS CloudFormation cannot create the skill\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3BucketRole", + "type": "string" + }, + "S3Key": { + "markdownDescription": "The location and name of the skill package \\.zip file\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3Key", + "type": "string" + }, + "S3ObjectVersion": { + "markdownDescription": "If you have S3 versioning enabled, the version ID of the skill package\\.zip file\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3ObjectVersion", + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "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" + }, + "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" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "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" + }, + "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": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "anyOf": [ + { + "$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::Channel" + }, + { + "$ref": "#/definitions/AWS::CloudTrail::EventDataStore" + }, + { + "$ref": "#/definitions/AWS::CloudTrail::ResourcePolicy" + }, + { + "$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::ApprovedOrigin" + }, + { + "$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::IntegrationAssociation" + }, + { + "$ref": "#/definitions/AWS::Connect::PhoneNumber" + }, + { + "$ref": "#/definitions/AWS::Connect::QuickConnect" + }, + { + "$ref": "#/definitions/AWS::Connect::Rule" + }, + { + "$ref": "#/definitions/AWS::Connect::SecurityKey" + }, + { + "$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::IPAMPoolCidr" + }, + { + "$ref": "#/definitions/AWS::EC2::IPAMResourceDiscovery" + }, + { + "$ref": "#/definitions/AWS::EC2::IPAMResourceDiscoveryAssociation" + }, + { + "$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::KendraRanking::ExecutionPlan" + }, + { + "$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::TransitGatewayPeering" + }, + { + "$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::Omics::AnnotationStore" + }, + { + "$ref": "#/definitions/AWS::Omics::ReferenceStore" + }, + { + "$ref": "#/definitions/AWS::Omics::RunGroup" + }, + { + "$ref": "#/definitions/AWS::Omics::SequenceStore" + }, + { + "$ref": "#/definitions/AWS::Omics::VariantStore" + }, + { + "$ref": "#/definitions/AWS::Omics::Workflow" + }, + { + "$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/AWS::Pinpoint::APNSVoipChannel" + }, + { + "$ref": "#/definitions/AWS::Pinpoint::APNSVoipSandboxChannel" + }, + { + "$ref": "#/definitions/AWS::Pinpoint::App" + }, + { + "$ref": "#/definitions/AWS::Pinpoint::ApplicationSettings" + }, + { + "$ref": "#/definitions/AWS::Pinpoint::BaiduChannel" + }, + { + "$ref": "#/definitions/AWS::Pinpoint::Campaign" + }, + { + "$ref": "#/definitions/AWS::Pinpoint::EmailChannel" + }, + { + "$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::ModelCard" + }, + { + "$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::Space" + }, + { + "$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::SimSpaceWeaver::Simulation" + }, + { + "$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/CustomResource" + } + ] + } + }, + "type": "object" + }, + "Transform": { + "oneOf": [ + { + "type": [ + "string" + ] + }, + { + "items": { + "type": "string" + }, + "type": "array" + } + ] + } + }, + "required": [ + "Resources" + ], + "type": "object" +} diff --git a/samtranslator/schema/common.py b/schema_source/common.py similarity index 81% rename from samtranslator/schema/common.py rename to schema_source/common.py index 3b3fa3eea..ad8741212 100644 --- a/samtranslator/schema/common.py +++ b/schema_source/common.py @@ -1,13 +1,14 @@ import json import os -from pathlib import Path -from typing import Any, Dict, Optional, Union, TypeVar from functools import partial +from pathlib import Path +from typing import Any, Dict, Optional, TypeVar, Union + import pydantic from pydantic import Extra, Field -# Value passed directly to CloudFormation; not used by SAM -PassThrough = Any # TODO: Make it behave like typescript's unknown +from samtranslator.model.types import PassThrough + # If using PassThrough as-is, pydantic will mark the field as not required: # - https://github.com/pydantic/pydantic/issues/990 @@ -58,3 +59,11 @@ class Config: # https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html class Ref(BaseModel): Ref: str + + +class ResourceAttributes(BaseModel): + DependsOn: Optional[PassThroughProp] + DeletionPolicy: Optional[PassThroughProp] + Metadata: Optional[PassThroughProp] + UpdateReplacePolicy: Optional[PassThroughProp] + Condition: Optional[PassThroughProp] diff --git a/samtranslator/schema/docs.json b/schema_source/docs.json similarity index 95% rename from samtranslator/schema/docs.json rename to schema_source/docs.json index ec8491238..59ddc1554 100644 --- a/samtranslator/schema/docs.json +++ b/schema_source/docs.json @@ -114,6 +114,9 @@ "RoleName": "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\\.", "Type": "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\\." }, + "sam-property-connector-sourcereference": { + "Qualifier": "A qualifier for a resource that narrows its scope\\. `Qualifier` replaces the `*` value at the end of a resource constraint ARN\\. \nQualifier definition varies per resource type\\. For a list of supported source and destination resource types, see [AWS SAM connector reference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/reference-sam-connector.html)\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\." + }, "sam-property-function-alexaskill": { "SkillId": "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\\." }, @@ -190,6 +193,7 @@ "Name": "The name of the rule\\. \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\\.", "Pattern": "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\\.", "RetryPolicy": "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\\.", + "State": "The state of the rule\\. \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-events-rule.html#cfn-events-rule-state) ` property of an `AWS::Events::Rule` resource\\.", "Target": "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\\." }, "sam-property-function-eventinvokeconfiguration": { @@ -265,6 +269,7 @@ "ConsumerGroupId": "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\\.", "FilterCriteria": "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\\.", "MaximumBatchingWindowInSeconds": "The maximum amount of time to gather records before invoking the function, in seconds\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumBatchingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumbatchingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "SourceAccessConfigurations": "An array of the authentication protocol, VPC components, or virtual host to secure and define your event source\\. \n*Valid values*: `CLIENT_CERTIFICATE_TLS_AUTH` \n*Type*: List of [SourceAccessConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SourceAccessConfigurations`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations) property of an `AWS::Lambda::EventSourceMapping` resource\\.", "StartingPosition": "The position in a stream from which to start reading\\. \n+ `AT_TIMESTAMP` \u2013 Specify a time from which to start reading records\\.\n+ `LATEST` \u2013 Read only new records\\.\n+ `TRIM_HORIZON` \u2013 Process all available records\\.\n*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\\.", "StartingPositionTimestamp": "The time from which to start reading, in Unix time seconds\\. Define `StartingPositionTimestamp` when `StartingPosition` is specified as `AT_TIMESTAMP`\\. \n*Type*: Double \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartingPositionTimestamp`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingpositiontimestamp) property of an `AWS::Lambda::EventSourceMapping` resource\\.", "Stream": "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\\.", @@ -344,14 +349,12 @@ "Enabled": "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\\.", "FilterCriteria": "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\\.", "KafkaBootstrapServers": "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\\.", - "SourceAccessConfigurations": "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\\.", + "SourceAccessConfigurations": "An array of the authentication protocol, VPC components, or virtual host to secure and define your event source\\. \n*Valid values*: `BASIC_AUTH | CLIENT_CERTIFICATE_TLS_AUTH | SASL_SCRAM_256_AUTH | SASL_SCRAM_512_AUTH | SERVER_ROOT_CA_CERTIFICATE` \n*Type*: List of [SourceAccessConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) \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\\.", "Topics": "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\\." }, - "sam-property-function-snapstart": { - "ApplyOn": "Specify when to create a snapshot of your new Lambda function version\\. \n`None` \u2013 SnapStart is turned off\\. \n`PublishedVersions` \u2013 SnapStart is turned on for all newly published versions of the function\\. \nIf `PublishedVersions` is specified with `AutoPublishAlias`, all code changes will publish a new Lambda function version and a snapshot will be created\\. Wait a few minutes while the snapshot is being created before invoking your function alias\\.\n*Type*: String \n*Allowed Values*: `None` \\(default\\) \\| `PublishedVersions` \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `ApplyOn` property of the [`SnapStart`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-snapstart) field of an `AWS::Lambda::Function` resource\\." - }, "sam-property-function-sns": { "FilterPolicy": "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\\.", + "RedrivePolicy": "When specified, sends undeliverable messages to the specified Amazon SQS dead\\-letter queue\\. Messages that can't be delivered due to client errors \\(for example, when the subscribed endpoint is unreachable\\) or server errors \\(for example, when the service that powers the subscribed endpoint becomes unavailable\\) are held in the dead\\-letter queue for further analysis or reprocessing\\. \nFor more information about the redrive policy and dead\\-letter queues, see [ Amazon SQS dead\\-letter queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) in the *Amazon Simple Queue Service Developer Guide*\\. \n*Type*: Json \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ RedrivePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-redrivepolicy)` property of an `AWS::SNS::Subscription` resource\\.", "Region": "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\\.", "SqsSubscription": "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\\.", "Topic": "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\\." @@ -360,9 +363,10 @@ "BatchSize": "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`", "Enabled": "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\\.", "FilterCriteria": "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\\.", - "FunctionResponseTypes": " 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-sqs.html#services-sqs-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\\.", + "FunctionResponseTypes": "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-sqs.html#services-sqs-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\\.", "MaximumBatchingWindowInSeconds": "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\\.", - "Queue": "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\\." + "Queue": "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\\.", + "ScalingConfig": "Scaling configuration of SQS pollers to control the invoke rate and set maximum concurrent invokes\\. \n*Type*: [`ScalingConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-scalingconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScalingConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-scalingconfig.html) property of an `AWS::Lambda::EventSourceMapping` resource\\." }, "sam-property-function-sqssubscriptionobject": { "BatchSize": "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\\.", @@ -419,7 +423,7 @@ "sam-property-httpapi-oauth2authorizer": { "AuthorizationScopes": "List of authorization scopes for this authorizer\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "IdentitySource": "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\\.", - "JwtConfiguration": "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\\." + "JwtConfiguration": "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\\. \nProperties `issuer` and `audience` are case insensitive and can be used either lowercase as in OpenAPI or uppercase `Issuer` and `Audience` as in [ 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\\." }, "sam-property-httpapi-route53configuration": { "DistributionDomainName": "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)\\.", @@ -460,7 +464,8 @@ "Auth": "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\\.", "Method": "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\\.", "Path": "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\\.", - "RestApiId": "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\\." + "RestApiId": "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\\.", + "UnescapeMappingTemplate": "Unescapes single quotes, by replacing `\\'` with `'`, on the input that is passed to the state machine\\. Use when your input contains single quotes\\. \nIf set to `False` and your input contains single quotes, an error will occur\\.\n*Type*: Boolean \n*Required*: No \n*Default*: False \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\." }, "sam-property-statemachine-statemachinecloudwatchevent": { "EventBusName": "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\\.", @@ -480,7 +485,8 @@ "InputPath": "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\\.", "Name": "The name of the rule\\. \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\\.", "Pattern": "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\\.", - "RetryPolicy": "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\\." + "RetryPolicy": "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\\.", + "Target": "The AWS resource that EventBridge invokes when a rule is triggered\\. You can use this property to specify the logical ID of the target\\. If this property is not specified, then AWS SAM generates the logical ID of the target\\. \n*Type*: [Target](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinetarget.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Targets`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-targets) property of an `AWS::Events::Rule` resource\\. The AWS SAM version of this property only allows you to specify the logical ID of a single target\\." }, "sam-property-statemachine-statemachineeventsource": { "Properties": "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\\.", @@ -494,13 +500,17 @@ "Name": "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\\.", "RetryPolicy": "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\\.", "Schedule": "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\\.", - "State": "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\\." + "State": "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\\.", + "Target": "The AWS resource that EventBridge invokes when a rule is triggered\\. You can use this property to specify the logical ID of the target\\. If this property is not specified, then AWS SAM generates the logical ID of the target\\. \n*Type*: [Target](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinetarget.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Targets`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-targets) property of an `AWS::Events::Rule` resource\\. The AWS SAM version of this property only allows you to specify the logical ID of a single target\\." }, "sam-property-statemachine-statemachinescheduledeadletterconfig": { "Arn": "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\\.", "QueueLogicalId": "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\\.", "Type": "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\\." }, + "sam-property-statemachine-statemachinescheduletarget": { + "Id": "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\\." + }, "sam-property-statemachine-statemachineschedulev2": { "DeadLetterConfig": "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\\.", "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\\.", @@ -518,6 +528,9 @@ "StartDate": "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\\.", "State": "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\\." }, + "sam-property-statemachine-statemachinetarget": { + "Id": "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\\." + }, "sam-resource-api": { "AccessLogSetting": "Configures Access Log Setting for a stage\\. \n*Type*: [AccessLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AccessLogSetting`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting) property of an `AWS::ApiGateway::Stage` resource\\.", "ApiKeySourceType": "The source of the API key for metering requests according to a usage plan\\. Valid values are `HEADER` and `AUTHORIZER`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ApiKeySourceType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-apikeysourcetype) property of an `AWS::ApiGateway::RestApi` resource\\.", @@ -556,7 +569,8 @@ "sam-resource-connector": { "Destination": "The destination resource\\. \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "Permissions": "The permission type that the source resource is allowed to perform on the destination resource\\. \n`Read` includes AWS Identity and Access Management \\(IAM\\) actions that allow reading data from the resource\\. \n`Write` inclues IAM actions that allow initiating and writing data to a resource\\. \n*Valid values*: `Read` or `Write` \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "Source": "The source resource\\. \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\\." + "Source": "The source resource\\. Required when using the `AWS::Serverless::Connector` syntax\\. \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "SourceReference": "The source resource\\. \nUse with the embedded connectors syntax when defining additional properties for the source resource\\.\n*Type*: [SourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-sourcereference.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\." }, "sam-resource-function": { "Architectures": "The instruction set architecture for the function\\. \nFor more information about this property, see [Lambda instruction set architectures](https://docs.aws.amazon.com/lambda/latest/dg/foundation-arch.html) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: One of `x86_64` or `arm64` \n*Type*: List \n*Required*: No \n*Default*: `x86_64` \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Architectures`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-architectures) property of an `AWS::Lambda::Function` resource\\.", @@ -590,7 +604,8 @@ "Role": "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`\\.", "RolePath": "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\\.", "Runtime": "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\\.", - "SnapStart": "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\\.", + "RuntimeManagementConfig": "Configure runtime management options for your Lambda functions such as runtime environment updates, rollback behavior, and selecting a specific runtime version\\. To learn more, see [Lambda runtime updates](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html) in the *AWS Lambda Developer Guide*\\. \nIf `AutoPublishAlias` is configured, `RuntimeManagementConfig` will apply to both `$LATEST` and to the newly created version of the function\\.\n*Type*: [RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html)` property of an `AWS::Lambda::Function` resource\\.", + "SnapStart": "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 [Improving startup performance with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [SnapStart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-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-properties-lambda-function-snapstart.html) property of an `AWS::Lambda::Function` resource\\.", "Tags": "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\\.", "Timeout": "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\\.", "Tracing": "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\\.", @@ -608,6 +623,7 @@ "DisableExecuteApiEndpoint": "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\\.", "Domain": "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\\.", "FailOnWarnings": "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\\.", + "Name": "The name of the HTTP API resource\\. \nWhen you specify `Name`, AWS SAM will modify the HTTP API resource's OpenAPI definition by setting the `title` field\\. The following scenarios will result in an error: \n+ The `DefinitionBody` property is specified with the `title` field set in the Open API definition \u2013 This results in a conflict of the `title` field that AWS SAM won't resolve\\.\n+ The `DefinitionUri` property is specified \u2013 AWS SAM won't modify an Open API definition that is retrieved from Amazon S3\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "RouteSettings": "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\\.", "StageName": "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\\.", "StageVariables": "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\\.", diff --git a/samtranslator/schema/sam.schema.json b/schema_source/sam.schema.json similarity index 97% rename from samtranslator/schema/sam.schema.json rename to schema_source/sam.schema.json index b967a2759..7585caeb9 100644 --- a/samtranslator/schema/sam.schema.json +++ b/schema_source/sam.schema.json @@ -70,10 +70,10 @@ "InvokeRole": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -83,7 +83,7 @@ "ResourcePolicy": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ResourcePolicy" + "$ref": "#/definitions/schema_source__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\\.", @@ -187,10 +187,10 @@ "Version": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -509,10 +509,10 @@ "Role": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -532,10 +532,10 @@ "Type": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -546,6 +546,85 @@ "title": "DeploymentPreference", "type": "object" }, + "DocumentDBEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$ref": "#/definitions/DocumentDBEventProperties" + } + ], + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "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": [ + "DocumentDB" + ], + "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "DocumentDBEvent", + "type": "object" + }, + "DocumentDBEventProperties": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "$ref": "#/definitions/PassThroughProp" + }, + "Cluster": { + "$ref": "#/definitions/PassThroughProp" + }, + "CollectionName": { + "$ref": "#/definitions/PassThroughProp" + }, + "DatabaseName": { + "$ref": "#/definitions/PassThroughProp" + }, + "Enabled": { + "$ref": "#/definitions/PassThroughProp" + }, + "FilterCriteria": { + "$ref": "#/definitions/PassThroughProp" + }, + "FullDocument": { + "$ref": "#/definitions/PassThroughProp" + }, + "MaximumBatchingWindowInSeconds": { + "$ref": "#/definitions/PassThroughProp" + }, + "SecretsManagerKmsKeyId": { + "title": "Secretsmanagerkmskeyid", + "type": "string" + }, + "SourceAccessConfigurations": { + "$ref": "#/definitions/PassThroughProp" + }, + "StartingPosition": { + "$ref": "#/definitions/PassThroughProp" + }, + "StartingPositionTimestamp": { + "$ref": "#/definitions/PassThroughProp" + } + }, + "required": [ + "Cluster", + "DatabaseName", + "SourceAccessConfigurations" + ], + "title": "DocumentDBEventProperties", + "type": "object" + }, "DynamoDBEvent": { "additionalProperties": false, "properties": { @@ -729,6 +808,9 @@ "EmbeddedConnector": { "additionalProperties": false, "properties": { + "Condition": { + "$ref": "#/definitions/PassThroughProp" + }, "DeletionPolicy": { "$ref": "#/definitions/PassThroughProp" }, @@ -741,7 +823,7 @@ "Properties": { "$ref": "#/definitions/EmbeddedConnectorProperties" }, - "UpdatePolicy": { + "UpdateReplacePolicy": { "$ref": "#/definitions/PassThroughProp" } }, @@ -755,9 +837,15 @@ "additionalProperties": false, "properties": { "Destination": { - "allOf": [ + "anyOf": [ { "$ref": "#/definitions/ResourceReference" + }, + { + "items": { + "$ref": "#/definitions/ResourceReference" + }, + "type": "array" } ], "description": "The destination resource\\. \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", @@ -877,10 +965,10 @@ "Destination": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -909,10 +997,10 @@ "Destination": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -941,7 +1029,7 @@ "DeadLetterConfig": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__DeadLetterConfig" + "$ref": "#/definitions/schema_source__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\\.", @@ -1057,10 +1145,10 @@ "PostTraffic": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -1070,10 +1158,10 @@ "PreTraffic": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -1141,10 +1229,10 @@ "ApiId": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -1176,10 +1264,10 @@ "PayloadFormatVersion": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -1495,10 +1583,10 @@ "FunctionInvokeRole": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -2067,8 +2155,8 @@ "$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\\.", + "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\\. \nProperties `issuer` and `audience` are case insensitive and can be used either lowercase as in OpenAPI or uppercase `Issuer` and `Audience` as in [ 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\\. \nProperties `issuer` and `audience` are case insensitive and can be used either lowercase as in OpenAPI or uppercase `Issuer` and `Audience` as in [ 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" } }, @@ -2509,7 +2597,7 @@ "DeadLetterConfig": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig" + "$ref": "#/definitions/schema_source__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\\.", @@ -2697,8 +2785,8 @@ "$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\\.", + "description": "An array of the authentication protocol, VPC components, or virtual host to secure and define your event source\\. \n*Valid values*: `BASIC_AUTH | CLIENT_CERTIFICATE_TLS_AUTH | SASL_SCRAM_256_AUTH | SASL_SCRAM_512_AUTH | SERVER_ROOT_CA_CERTIFICATE` \n*Type*: List of [SourceAccessConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) \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*Valid values*: `BASIC_AUTH | CLIENT_CERTIFICATE_TLS_AUTH | SASL_SCRAM_256_AUTH | SASL_SCRAM_512_AUTH | SERVER_ROOT_CA_CERTIFICATE` \n*Type*: List of [SourceAccessConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) \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": { @@ -2742,10 +2830,10 @@ "BatchSize": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -2880,22 +2968,22 @@ "additionalProperties": false, "properties": { "Api": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Globals" + "$ref": "#/definitions/schema_source__aws_serverless_api__Globals" }, "Function": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__Globals" + "$ref": "#/definitions/schema_source__aws_serverless_function__Globals" }, "HttpApi": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Globals" + "$ref": "#/definitions/schema_source__aws_serverless_httpapi__Globals" }, "SimpleTable": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_simpletable__Globals" + "$ref": "#/definitions/schema_source__aws_serverless_simpletable__Globals" } }, "title": "Globals", "type": "object" }, - "samtranslator__schema__any_cfn_resource__Resource": { + "schema_source__any_cfn_resource__Resource": { "properties": { "Type": { "pattern": "^(?!AWS::Serverless::).+$", @@ -2909,7 +2997,7 @@ "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_api__Auth": { + "schema_source__aws_serverless_api__Auth": { "additionalProperties": false, "properties": { "AddDefaultAuthorizerToCorsPreflight": { @@ -2958,7 +3046,7 @@ "ResourcePolicy": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__ResourcePolicy" + "$ref": "#/definitions/schema_source__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`\\.", @@ -2979,7 +3067,7 @@ "title": "Auth", "type": "object" }, - "samtranslator__schema__aws_serverless_api__DefinitionUri": { + "schema_source__aws_serverless_api__DefinitionUri": { "additionalProperties": false, "properties": { "Bucket": { @@ -3020,7 +3108,7 @@ "title": "DefinitionUri", "type": "object" }, - "samtranslator__schema__aws_serverless_api__Domain": { + "schema_source__aws_serverless_api__Domain": { "additionalProperties": false, "properties": { "BasePath": { @@ -3099,7 +3187,7 @@ "Route53": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Route53" + "$ref": "#/definitions/schema_source__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\\.", @@ -3124,7 +3212,7 @@ "title": "Domain", "type": "object" }, - "samtranslator__schema__aws_serverless_api__Globals": { + "schema_source__aws_serverless_api__Globals": { "additionalProperties": false, "properties": { "AccessLogSetting": { @@ -3140,7 +3228,7 @@ "Auth": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Auth" + "$ref": "#/definitions/schema_source__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\\.", @@ -3216,7 +3304,7 @@ "Domain": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Domain" + "$ref": "#/definitions/schema_source__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\\.", @@ -3306,7 +3394,7 @@ "title": "Globals", "type": "object" }, - "samtranslator__schema__aws_serverless_api__Properties": { + "schema_source__aws_serverless_api__Properties": { "additionalProperties": false, "properties": { "AccessLogSetting": { @@ -3332,7 +3420,7 @@ "Auth": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Auth" + "$ref": "#/definitions/schema_source__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\\.", @@ -3407,7 +3495,7 @@ "type": "string" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__DefinitionUri" + "$ref": "#/definitions/schema_source__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\\.", @@ -3437,7 +3525,7 @@ "Domain": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Domain" + "$ref": "#/definitions/schema_source__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\\.", @@ -3578,7 +3666,7 @@ "title": "Properties", "type": "object" }, - "samtranslator__schema__aws_serverless_api__Resource": { + "schema_source__aws_serverless_api__Resource": { "additionalProperties": false, "properties": { "Condition": { @@ -3601,7 +3689,7 @@ "$ref": "#/definitions/PassThroughProp" }, "Properties": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Properties" + "$ref": "#/definitions/schema_source__aws_serverless_api__Properties" }, "Type": { "enum": [ @@ -3610,9 +3698,6 @@ "title": "Type", "type": "string" }, - "UpdatePolicy": { - "$ref": "#/definitions/PassThroughProp" - }, "UpdateReplacePolicy": { "$ref": "#/definitions/PassThroughProp" } @@ -3624,7 +3709,7 @@ "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_api__ResourcePolicy": { + "schema_source__aws_serverless_api__ResourcePolicy": { "additionalProperties": false, "properties": { "AwsAccountBlacklist": { @@ -3807,7 +3892,7 @@ "title": "ResourcePolicy", "type": "object" }, - "samtranslator__schema__aws_serverless_api__Route53": { + "schema_source__aws_serverless_api__Route53": { "additionalProperties": false, "properties": { "DistributionDomainName": { @@ -3860,7 +3945,7 @@ "title": "Route53", "type": "object" }, - "samtranslator__schema__aws_serverless_application__Properties": { + "schema_source__aws_serverless_application__Properties": { "additionalProperties": false, "properties": { "Location": { @@ -3919,14 +4004,23 @@ "title": "Properties", "type": "object" }, - "samtranslator__schema__aws_serverless_application__Resource": { + "schema_source__aws_serverless_application__Resource": { "additionalProperties": false, "properties": { "Condition": { "$ref": "#/definitions/PassThroughProp" }, + "DeletionPolicy": { + "$ref": "#/definitions/PassThroughProp" + }, + "DependsOn": { + "$ref": "#/definitions/PassThroughProp" + }, + "Metadata": { + "$ref": "#/definitions/PassThroughProp" + }, "Properties": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_application__Properties" + "$ref": "#/definitions/schema_source__aws_serverless_application__Properties" }, "Type": { "enum": [ @@ -3934,6 +4028,9 @@ ], "title": "Type", "type": "string" + }, + "UpdateReplacePolicy": { + "$ref": "#/definitions/PassThroughProp" } }, "required": [ @@ -3943,13 +4040,19 @@ "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_connector__Properties": { + "schema_source__aws_serverless_connector__Properties": { "additionalProperties": false, "properties": { "Destination": { - "allOf": [ + "anyOf": [ { "$ref": "#/definitions/ResourceReference" + }, + { + "items": { + "$ref": "#/definitions/ResourceReference" + }, + "type": "array" } ], "description": "The destination resource\\. \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", @@ -3975,8 +4078,8 @@ "$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\\.", + "description": "The source resource\\. Required when using the `AWS::Serverless::Connector` syntax\\. \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The source resource\\. Required when using the `AWS::Serverless::Connector` syntax\\. \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Source" } }, @@ -3988,11 +4091,23 @@ "title": "Properties", "type": "object" }, - "samtranslator__schema__aws_serverless_connector__Resource": { + "schema_source__aws_serverless_connector__Resource": { "additionalProperties": false, "properties": { + "Condition": { + "$ref": "#/definitions/PassThroughProp" + }, + "DeletionPolicy": { + "$ref": "#/definitions/PassThroughProp" + }, + "DependsOn": { + "$ref": "#/definitions/PassThroughProp" + }, + "Metadata": { + "$ref": "#/definitions/PassThroughProp" + }, "Properties": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_connector__Properties" + "$ref": "#/definitions/schema_source__aws_serverless_connector__Properties" }, "Type": { "enum": [ @@ -4000,6 +4115,9 @@ ], "title": "Type", "type": "string" + }, + "UpdateReplacePolicy": { + "$ref": "#/definitions/PassThroughProp" } }, "required": [ @@ -4009,13 +4127,13 @@ "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_function__ApiEvent": { + "schema_source__aws_serverless_function__ApiEvent": { "additionalProperties": false, "properties": { "Properties": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ApiEventProperties" + "$ref": "#/definitions/schema_source__aws_serverless_function__ApiEventProperties" } ], "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", @@ -4039,7 +4157,7 @@ "title": "ApiEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_function__ApiEventProperties": { + "schema_source__aws_serverless_function__ApiEventProperties": { "additionalProperties": false, "properties": { "Auth": { @@ -4108,13 +4226,13 @@ "title": "ApiEventProperties", "type": "object" }, - "samtranslator__schema__aws_serverless_function__CloudWatchEvent": { + "schema_source__aws_serverless_function__CloudWatchEvent": { "additionalProperties": false, "properties": { "Properties": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__CloudWatchEventProperties" + "$ref": "#/definitions/schema_source__aws_serverless_function__CloudWatchEventProperties" } ], "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", @@ -4138,7 +4256,7 @@ "title": "CloudWatchEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_function__CloudWatchEventProperties": { + "schema_source__aws_serverless_function__CloudWatchEventProperties": { "additionalProperties": false, "properties": { "Enabled": { @@ -4201,7 +4319,7 @@ "title": "CloudWatchEventProperties", "type": "object" }, - "samtranslator__schema__aws_serverless_function__DeadLetterConfig": { + "schema_source__aws_serverless_function__DeadLetterConfig": { "additionalProperties": false, "properties": { "Arn": { @@ -4233,13 +4351,13 @@ "title": "DeadLetterConfig", "type": "object" }, - "samtranslator__schema__aws_serverless_function__EventBridgeRuleEvent": { + "schema_source__aws_serverless_function__EventBridgeRuleEvent": { "additionalProperties": false, "properties": { "Properties": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__EventBridgeRuleEventProperties" + "$ref": "#/definitions/schema_source__aws_serverless_function__EventBridgeRuleEventProperties" } ], "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", @@ -4263,13 +4381,13 @@ "title": "EventBridgeRuleEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_function__EventBridgeRuleEventProperties": { + "schema_source__aws_serverless_function__EventBridgeRuleEventProperties": { "additionalProperties": false, "properties": { "DeadLetterConfig": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__DeadLetterConfig" + "$ref": "#/definitions/schema_source__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\\.", @@ -4329,7 +4447,7 @@ "Target": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__EventBridgeRuleTarget" + "$ref": "#/definitions/schema_source__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\\.", @@ -4343,7 +4461,7 @@ "title": "EventBridgeRuleEventProperties", "type": "object" }, - "samtranslator__schema__aws_serverless_function__EventBridgeRuleTarget": { + "schema_source__aws_serverless_function__EventBridgeRuleTarget": { "additionalProperties": false, "properties": { "Id": { @@ -4363,7 +4481,7 @@ "title": "EventBridgeRuleTarget", "type": "object" }, - "samtranslator__schema__aws_serverless_function__Globals": { + "schema_source__aws_serverless_function__Globals": { "additionalProperties": false, "properties": { "Architectures": { @@ -4385,10 +4503,10 @@ "AutoPublishAlias": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -4570,8 +4688,8 @@ "$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\\.", + "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 [Improving startup performance with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [SnapStart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-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-properties-lambda-function-snapstart.html) 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 [Improving startup performance with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [SnapStart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-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-properties-lambda-function-snapstart.html) property of an `AWS::Lambda::Function` resource\\.", "title": "SnapStart" }, "Tags": { @@ -4621,7 +4739,7 @@ "title": "Globals", "type": "object" }, - "samtranslator__schema__aws_serverless_function__Properties": { + "schema_source__aws_serverless_function__Properties": { "additionalProperties": false, "properties": { "Architectures": { @@ -4643,23 +4761,27 @@ "AutoPublishAlias": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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" }, + "AutoPublishAliasAllProperties": { + "title": "Autopublishaliasallproperties", + "type": "boolean" + }, "AutoPublishCodeSha256": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -4669,10 +4791,10 @@ "CodeSigningConfigArn": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -4770,23 +4892,26 @@ { "$ref": "#/definitions/DynamoDBEvent" }, + { + "$ref": "#/definitions/DocumentDBEvent" + }, { "$ref": "#/definitions/SQSEvent" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ApiEvent" + "$ref": "#/definitions/schema_source__aws_serverless_function__ApiEvent" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ScheduleEvent" + "$ref": "#/definitions/schema_source__aws_serverless_function__ScheduleEvent" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ScheduleV2Event" + "$ref": "#/definitions/schema_source__aws_serverless_function__ScheduleV2Event" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__CloudWatchEvent" + "$ref": "#/definitions/schema_source__aws_serverless_function__CloudWatchEvent" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__EventBridgeRuleEvent" + "$ref": "#/definitions/schema_source__aws_serverless_function__EventBridgeRuleEvent" }, { "$ref": "#/definitions/CloudWatchLogsEvent" @@ -4988,10 +5113,10 @@ "Role": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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`\\.", @@ -5027,8 +5152,8 @@ "$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\\.", + "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 [Improving startup performance with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [SnapStart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-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-properties-lambda-function-snapstart.html) 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 [Improving startup performance with Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [SnapStart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-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-properties-lambda-function-snapstart.html) property of an `AWS::Lambda::Function` resource\\.", "title": "SnapStart" }, "Tags": { @@ -5088,7 +5213,7 @@ "title": "Properties", "type": "object" }, - "samtranslator__schema__aws_serverless_function__Resource": { + "schema_source__aws_serverless_function__Resource": { "additionalProperties": false, "properties": { "Condition": { @@ -5111,7 +5236,7 @@ "$ref": "#/definitions/PassThroughProp" }, "Properties": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__Properties" + "$ref": "#/definitions/schema_source__aws_serverless_function__Properties" }, "Type": { "enum": [ @@ -5130,7 +5255,7 @@ "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_function__ResourcePolicy": { + "schema_source__aws_serverless_function__ResourcePolicy": { "additionalProperties": false, "properties": { "AwsAccountBlacklist": { @@ -5313,7 +5438,7 @@ "title": "ResourcePolicy", "type": "object" }, - "samtranslator__schema__aws_serverless_function__ScheduleEvent": { + "schema_source__aws_serverless_function__ScheduleEvent": { "additionalProperties": false, "properties": { "Properties": { @@ -5343,13 +5468,13 @@ "title": "ScheduleEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_function__ScheduleV2Event": { + "schema_source__aws_serverless_function__ScheduleV2Event": { "additionalProperties": false, "properties": { "Properties": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ScheduleV2EventProperties" + "$ref": "#/definitions/schema_source__aws_serverless_function__ScheduleV2EventProperties" } ], "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", @@ -5373,13 +5498,13 @@ "title": "ScheduleV2Event", "type": "object" }, - "samtranslator__schema__aws_serverless_function__ScheduleV2EventProperties": { + "schema_source__aws_serverless_function__ScheduleV2EventProperties": { "additionalProperties": false, "properties": { "DeadLetterConfig": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__DeadLetterConfig" + "$ref": "#/definitions/schema_source__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\\.", @@ -5530,7 +5655,7 @@ "title": "ScheduleV2EventProperties", "type": "object" }, - "samtranslator__schema__aws_serverless_httpapi__Auth": { + "schema_source__aws_serverless_httpapi__Auth": { "additionalProperties": false, "properties": { "Authorizers": { @@ -5565,7 +5690,7 @@ "title": "Auth", "type": "object" }, - "samtranslator__schema__aws_serverless_httpapi__DefinitionUri": { + "schema_source__aws_serverless_httpapi__DefinitionUri": { "additionalProperties": false, "properties": { "Bucket": { @@ -5594,7 +5719,7 @@ "title": "DefinitionUri", "type": "object" }, - "samtranslator__schema__aws_serverless_httpapi__Domain": { + "schema_source__aws_serverless_httpapi__Domain": { "additionalProperties": false, "properties": { "BasePath": { @@ -5665,7 +5790,7 @@ "Route53": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Route53" + "$ref": "#/definitions/schema_source__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\\.", @@ -5690,7 +5815,7 @@ "title": "Domain", "type": "object" }, - "samtranslator__schema__aws_serverless_httpapi__Globals": { + "schema_source__aws_serverless_httpapi__Globals": { "additionalProperties": false, "properties": { "AccessLogSettings": { @@ -5706,7 +5831,7 @@ "Auth": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Auth" + "$ref": "#/definitions/schema_source__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\\.", @@ -5736,7 +5861,7 @@ "Domain": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Domain" + "$ref": "#/definitions/schema_source__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\\.", @@ -5783,7 +5908,7 @@ "title": "Globals", "type": "object" }, - "samtranslator__schema__aws_serverless_httpapi__Properties": { + "schema_source__aws_serverless_httpapi__Properties": { "additionalProperties": false, "properties": { "AccessLogSettings": { @@ -5799,7 +5924,7 @@ "Auth": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Auth" + "$ref": "#/definitions/schema_source__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\\.", @@ -5838,7 +5963,7 @@ "type": "string" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__DefinitionUri" + "$ref": "#/definitions/schema_source__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\\.", @@ -5864,7 +5989,7 @@ "Domain": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Domain" + "$ref": "#/definitions/schema_source__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\\.", @@ -5924,7 +6049,7 @@ "title": "Properties", "type": "object" }, - "samtranslator__schema__aws_serverless_httpapi__Resource": { + "schema_source__aws_serverless_httpapi__Resource": { "additionalProperties": false, "properties": { "Condition": { @@ -5937,11 +6062,17 @@ "title": "Connectors", "type": "object" }, + "DeletionPolicy": { + "$ref": "#/definitions/PassThroughProp" + }, + "DependsOn": { + "$ref": "#/definitions/PassThroughProp" + }, "Metadata": { "$ref": "#/definitions/PassThroughProp" }, "Properties": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Properties" + "$ref": "#/definitions/schema_source__aws_serverless_httpapi__Properties" }, "Type": { "enum": [ @@ -5949,6 +6080,9 @@ ], "title": "Type", "type": "string" + }, + "UpdateReplacePolicy": { + "$ref": "#/definitions/PassThroughProp" } }, "required": [ @@ -5957,7 +6091,7 @@ "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_httpapi__Route53": { + "schema_source__aws_serverless_httpapi__Route53": { "additionalProperties": false, "properties": { "DistributionDomainName": { @@ -6010,7 +6144,7 @@ "title": "Route53", "type": "object" }, - "samtranslator__schema__aws_serverless_layerversion__Properties": { + "schema_source__aws_serverless_layerversion__Properties": { "additionalProperties": false, "properties": { "CompatibleArchitectures": { @@ -6079,10 +6213,10 @@ "RetentionPolicy": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -6096,7 +6230,7 @@ "title": "Properties", "type": "object" }, - "samtranslator__schema__aws_serverless_layerversion__Resource": { + "schema_source__aws_serverless_layerversion__Resource": { "additionalProperties": false, "properties": { "Condition": { @@ -6105,8 +6239,14 @@ "DeletionPolicy": { "$ref": "#/definitions/PassThroughProp" }, + "DependsOn": { + "$ref": "#/definitions/PassThroughProp" + }, + "Metadata": { + "$ref": "#/definitions/PassThroughProp" + }, "Properties": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_layerversion__Properties" + "$ref": "#/definitions/schema_source__aws_serverless_layerversion__Properties" }, "Type": { "enum": [ @@ -6114,6 +6254,9 @@ ], "title": "Type", "type": "string" + }, + "UpdateReplacePolicy": { + "$ref": "#/definitions/PassThroughProp" } }, "required": [ @@ -6123,7 +6266,7 @@ "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_simpletable__Globals": { + "schema_source__aws_serverless_simpletable__Globals": { "additionalProperties": false, "properties": { "SSESpecification": { @@ -6140,7 +6283,7 @@ "title": "Globals", "type": "object" }, - "samtranslator__schema__aws_serverless_simpletable__Properties": { + "schema_source__aws_serverless_simpletable__Properties": { "additionalProperties": false, "properties": { "PrimaryKey": { @@ -6193,9 +6336,12 @@ "title": "Properties", "type": "object" }, - "samtranslator__schema__aws_serverless_simpletable__Resource": { + "schema_source__aws_serverless_simpletable__Resource": { "additionalProperties": false, "properties": { + "Condition": { + "$ref": "#/definitions/PassThroughProp" + }, "Connectors": { "additionalProperties": { "$ref": "#/definitions/EmbeddedConnector" @@ -6203,8 +6349,17 @@ "title": "Connectors", "type": "object" }, + "DeletionPolicy": { + "$ref": "#/definitions/PassThroughProp" + }, + "DependsOn": { + "$ref": "#/definitions/PassThroughProp" + }, + "Metadata": { + "$ref": "#/definitions/PassThroughProp" + }, "Properties": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_simpletable__Properties" + "$ref": "#/definitions/schema_source__aws_serverless_simpletable__Properties" }, "Type": { "enum": [ @@ -6212,6 +6367,9 @@ ], "title": "Type", "type": "string" + }, + "UpdateReplacePolicy": { + "$ref": "#/definitions/PassThroughProp" } }, "required": [ @@ -6220,13 +6378,13 @@ "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__ApiEvent": { + "schema_source__aws_serverless_statemachine__ApiEvent": { "additionalProperties": false, "properties": { "Properties": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ApiEventProperties" + "$ref": "#/definitions/schema_source__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\\.", @@ -6250,13 +6408,13 @@ "title": "ApiEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__ApiEventProperties": { + "schema_source__aws_serverless_statemachine__ApiEventProperties": { "additionalProperties": false, "properties": { "Auth": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__Auth" + "$ref": "#/definitions/schema_source__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\\.", @@ -6278,10 +6436,10 @@ "RestApiId": { "anyOf": [ { - "type": "object" + "type": "string" }, { - "type": "string" + "type": "object" } ], "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\\.", @@ -6300,7 +6458,7 @@ "title": "ApiEventProperties", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__Auth": { + "schema_source__aws_serverless_statemachine__Auth": { "additionalProperties": false, "properties": { "ApiKeyRequired": { @@ -6327,7 +6485,7 @@ "ResourcePolicy": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ResourcePolicy" + "$ref": "#/definitions/schema_source__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\\.", @@ -6338,13 +6496,13 @@ "title": "Auth", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__CloudWatchEvent": { + "schema_source__aws_serverless_statemachine__CloudWatchEvent": { "additionalProperties": false, "properties": { "Properties": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__CloudWatchEventProperties" + "$ref": "#/definitions/schema_source__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\\.", @@ -6368,7 +6526,7 @@ "title": "CloudWatchEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__CloudWatchEventProperties": { + "schema_source__aws_serverless_statemachine__CloudWatchEventProperties": { "additionalProperties": false, "properties": { "EventBusName": { @@ -6415,7 +6573,7 @@ "title": "CloudWatchEventProperties", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig": { + "schema_source__aws_serverless_statemachine__DeadLetterConfig": { "additionalProperties": false, "properties": { "Arn": { @@ -6447,13 +6605,13 @@ "title": "DeadLetterConfig", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEvent": { + "schema_source__aws_serverless_statemachine__EventBridgeRuleEvent": { "additionalProperties": false, "properties": { "Properties": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEventProperties" + "$ref": "#/definitions/schema_source__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\\.", @@ -6477,13 +6635,13 @@ "title": "EventBridgeRuleEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEventProperties": { + "schema_source__aws_serverless_statemachine__EventBridgeRuleEventProperties": { "additionalProperties": false, "properties": { "DeadLetterConfig": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig" + "$ref": "#/definitions/schema_source__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\\.", @@ -6541,13 +6699,13 @@ "title": "RetryPolicy" }, "Target": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleTarget" + "$ref": "#/definitions/schema_source__aws_serverless_statemachine__EventBridgeRuleTarget" } }, "title": "EventBridgeRuleEventProperties", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleTarget": { + "schema_source__aws_serverless_statemachine__EventBridgeRuleTarget": { "additionalProperties": false, "properties": { "Id": { @@ -6560,7 +6718,7 @@ "title": "EventBridgeRuleTarget", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__Properties": { + "schema_source__aws_serverless_statemachine__Properties": { "additionalProperties": false, "properties": { "Definition": { @@ -6592,19 +6750,19 @@ "additionalProperties": { "anyOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ScheduleEvent" + "$ref": "#/definitions/schema_source__aws_serverless_statemachine__ScheduleEvent" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ScheduleV2Event" + "$ref": "#/definitions/schema_source__aws_serverless_statemachine__ScheduleV2Event" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__CloudWatchEvent" + "$ref": "#/definitions/schema_source__aws_serverless_statemachine__CloudWatchEvent" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEvent" + "$ref": "#/definitions/schema_source__aws_serverless_statemachine__EventBridgeRuleEvent" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ApiEvent" + "$ref": "#/definitions/schema_source__aws_serverless_statemachine__ApiEvent" } ] }, @@ -6712,7 +6870,7 @@ "title": "Properties", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__Resource": { + "schema_source__aws_serverless_statemachine__Resource": { "additionalProperties": false, "properties": { "Condition": { @@ -6725,8 +6883,17 @@ "title": "Connectors", "type": "object" }, + "DeletionPolicy": { + "$ref": "#/definitions/PassThroughProp" + }, + "DependsOn": { + "$ref": "#/definitions/PassThroughProp" + }, + "Metadata": { + "$ref": "#/definitions/PassThroughProp" + }, "Properties": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__Properties" + "$ref": "#/definitions/schema_source__aws_serverless_statemachine__Properties" }, "Type": { "enum": [ @@ -6734,6 +6901,9 @@ ], "title": "Type", "type": "string" + }, + "UpdateReplacePolicy": { + "$ref": "#/definitions/PassThroughProp" } }, "required": [ @@ -6743,7 +6913,7 @@ "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__ResourcePolicy": { + "schema_source__aws_serverless_statemachine__ResourcePolicy": { "additionalProperties": false, "properties": { "AwsAccountBlacklist": { @@ -6926,7 +7096,7 @@ "title": "ResourcePolicy", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__ScheduleEvent": { + "schema_source__aws_serverless_statemachine__ScheduleEvent": { "additionalProperties": false, "properties": { "Properties": { @@ -6956,13 +7126,13 @@ "title": "ScheduleEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__ScheduleV2Event": { + "schema_source__aws_serverless_statemachine__ScheduleV2Event": { "additionalProperties": false, "properties": { "Properties": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ScheduleV2EventProperties" + "$ref": "#/definitions/schema_source__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\\.", @@ -6986,13 +7156,13 @@ "title": "ScheduleV2Event", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__ScheduleV2EventProperties": { + "schema_source__aws_serverless_statemachine__ScheduleV2EventProperties": { "additionalProperties": false, "properties": { "DeadLetterConfig": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig" + "$ref": "#/definitions/schema_source__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\\.", @@ -7152,31 +7322,31 @@ "additionalProperties": { "anyOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_connector__Resource" + "$ref": "#/definitions/schema_source__aws_serverless_connector__Resource" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__Resource" + "$ref": "#/definitions/schema_source__aws_serverless_function__Resource" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_simpletable__Resource" + "$ref": "#/definitions/schema_source__aws_serverless_simpletable__Resource" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__Resource" + "$ref": "#/definitions/schema_source__aws_serverless_statemachine__Resource" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_layerversion__Resource" + "$ref": "#/definitions/schema_source__aws_serverless_layerversion__Resource" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Resource" + "$ref": "#/definitions/schema_source__aws_serverless_api__Resource" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Resource" + "$ref": "#/definitions/schema_source__aws_serverless_httpapi__Resource" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_application__Resource" + "$ref": "#/definitions/schema_source__aws_serverless_application__Resource" }, { - "$ref": "#/definitions/samtranslator__schema__any_cfn_resource__Resource" + "$ref": "#/definitions/schema_source__any_cfn_resource__Resource" } ] }, diff --git a/samtranslator/schema/schema.py b/schema_source/schema.py similarity index 94% rename from samtranslator/schema/schema.py rename to schema_source/schema.py index 8f705a24c..91d13377c 100644 --- a/samtranslator/schema/schema.py +++ b/schema_source/schema.py @@ -3,24 +3,22 @@ import argparse import json from pathlib import Path +from typing import Any, Dict, Optional, Type, Union import pydantic -from typing import Any, Dict, Type, Optional, Union - - -from samtranslator.schema.common import BaseModel, LenientBaseModel -from samtranslator.schema import ( - aws_serverless_simpletable, +from schema_source import ( + any_cfn_resource, + aws_serverless_api, aws_serverless_application, aws_serverless_connector, aws_serverless_function, - aws_serverless_statemachine, - aws_serverless_layerversion, - aws_serverless_api, aws_serverless_httpapi, - any_cfn_resource, + aws_serverless_layerversion, + aws_serverless_simpletable, + aws_serverless_statemachine, ) +from schema_source.common import BaseModel, LenientBaseModel class Globals(BaseModel): @@ -97,12 +95,12 @@ def extend_with_cfn_schema(sam_schema: Dict[str, Any], cfn_schema: Dict[str, Any sam_props["Resources"]["additionalProperties"]["anyOf"].extend(cfn_resources) # Add any other top-level properties from CloudFormation schema to SAM schema - for k in cfn_props.keys(): + for k in cfn_props: if k not in sam_props: sam_props[k] = cfn_props[k] # Add definitions from CloudFormation schema to SAM schema - for k in cfn_defs.keys(): + for k in cfn_defs: if k in sam_defs: raise Exception(f"Key {k} already in SAM schema definitions") sam_defs[k] = cfn_defs[k] diff --git a/tests/bin/test_public_interface.py b/tests/bin/test_public_interface.py new file mode 100644 index 000000000..40037c8ab --- /dev/null +++ b/tests/bin/test_public_interface.py @@ -0,0 +1,175 @@ +from unittest import TestCase + +from bin.public_interface import _BreakingChanges, _detect_breaking_changes + + +class TestDetectBreakingChanges(TestCase): + def test_missing_variables(self): + self.assertEqual( + _detect_breaking_changes( + {}, + ["samtranslator.model.CONST_X", "samtranslator.model.CONST_Y"], + {}, + ["samtranslator.model.CONST_X", "samtranslator.model.CONST_Z"], + ), + _BreakingChanges( + deleted_variables=["samtranslator.model.CONST_Y"], deleted_routines=[], incompatible_routines=[] + ), + ) + + def test_missing_routines(self): + self.assertEqual( + _detect_breaking_changes( + {"samtranslator.model.do_something": []}, + [], + {"samtranslator.model.do_something_2": []}, + [], + ), + _BreakingChanges( + deleted_variables=[], deleted_routines=["samtranslator.model.do_something"], incompatible_routines=[] + ), + ) + + def test_routines_still_compatible_when_adding_optional_arguments(self): + self.assertEqual( + _detect_breaking_changes( + {"samtranslator.model.do_something": []}, + [], + { + "samtranslator.model.do_something": [ + {"name": "new_arg", "kind": "POSITIONAL_OR_KEYWORD", "default": False}, + {"name": "new_arg_2", "kind": "POSITIONAL_OR_KEYWORD", "default": None}, + ] + }, + [], + ), + _BreakingChanges(deleted_variables=[], deleted_routines=[], incompatible_routines=[]), + ) + + def test_routines_still_compatible_when_optionalize_existing_arguments(self): + self.assertEqual( + _detect_breaking_changes( + { + "samtranslator.model.do_something": [ + { + "name": "arg", + "kind": "POSITIONAL_OR_KEYWORD", + }, + { + "name": "arg_2", + "kind": "POSITIONAL_OR_KEYWORD", + }, + ] + }, + [], + { + "samtranslator.model.do_something": [ + {"name": "arg", "kind": "POSITIONAL_OR_KEYWORD", "default": False}, + {"name": "arg_2", "kind": "POSITIONAL_OR_KEYWORD", "default": None}, + ] + }, + [], + ), + _BreakingChanges(deleted_variables=[], deleted_routines=[], incompatible_routines=[]), + ) + + def test_routines_still_compatible_when_adding_var_arguments(self): + self.assertEqual( + _detect_breaking_changes( + {"samtranslator.model.do_something": []}, + [], + { + "samtranslator.model.do_something": [ + {"name": "args", "kind": "VAR_POSITIONAL"}, + {"name": "kwargs", "kind": "VAR_KEYWORD"}, + ] + }, + [], + ), + _BreakingChanges(deleted_variables=[], deleted_routines=[], incompatible_routines=[]), + ) + + def test_routines_still_compatible_when_converting_from_method_to_staticmethod(self): + self.assertEqual( + _detect_breaking_changes( + { + "samtranslator.model.do_something": [ + {"kind": "POSITIONAL_OR_KEYWORD", "name": "self"}, + {"name": "some_arg", "kind": "POSITIONAL_OR_KEYWORD"}, + ] + }, + [], + {"samtranslator.model.do_something": [{"name": "some_arg", "kind": "POSITIONAL_OR_KEYWORD"}]}, + [], + ), + _BreakingChanges(deleted_variables=[], deleted_routines=[], incompatible_routines=[]), + ) + + def test_routines_still_compatible_when_converting_from_method_to_staticmethod_and_adding_optional_arguments(self): + self.assertEqual( + _detect_breaking_changes( + { + "samtranslator.model.do_something": [ + {"kind": "POSITIONAL_OR_KEYWORD", "name": "self"}, + {"name": "some_arg", "kind": "POSITIONAL_OR_KEYWORD"}, + ] + }, + [], + { + "samtranslator.model.do_something": [ + {"name": "some_arg", "kind": "POSITIONAL_OR_KEYWORD"}, + {"name": "new_arg", "kind": "POSITIONAL_OR_KEYWORD", "default": False}, + {"name": "new_arg_2", "kind": "POSITIONAL_OR_KEYWORD", "default": None}, + ] + }, + [], + ), + _BreakingChanges(deleted_variables=[], deleted_routines=[], incompatible_routines=[]), + ) + + def test_routines_incompatible_when_changing_default_value(self): + self.assertEqual( + _detect_breaking_changes( + { + "samtranslator.model.do_something": [ + {"kind": "POSITIONAL_OR_KEYWORD", "name": "self"}, + {"name": "some_arg", "kind": "POSITIONAL_OR_KEYWORD", "default": 0}, + ] + }, + [], + { + "samtranslator.model.do_something": [ + {"kind": "POSITIONAL_OR_KEYWORD", "name": "self"}, + {"name": "some_arg", "kind": "POSITIONAL_OR_KEYWORD", "default": 1}, + ] + }, + [], + ), + _BreakingChanges( + deleted_variables=[], deleted_routines=[], incompatible_routines=["samtranslator.model.do_something"] + ), + ) + + def test_routines_incompatible_when_add_new_arguments(self): + self.assertEqual( + _detect_breaking_changes( + { + "samtranslator.model.do_something": [ + {"kind": "POSITIONAL_OR_KEYWORD", "name": "self"}, + {"name": "some_arg", "kind": "POSITIONAL_OR_KEYWORD"}, + ] + }, + [], + { + "samtranslator.model.do_something": [ + {"kind": "POSITIONAL_OR_KEYWORD", "name": "self"}, + {"name": "some_arg", "kind": "POSITIONAL_OR_KEYWORD"}, + {"name": "new_arg", "kind": "POSITIONAL_OR_KEYWORD"}, + ] + }, + [], + ), + _BreakingChanges( + deleted_variables=[], deleted_routines=[], incompatible_routines=["samtranslator.model.do_something"] + ), + ) diff --git a/tests/feature_toggle/test_dialup.py b/tests/feature_toggle/test_dialup.py index a3b0bd9f0..fc53f4fcd 100644 --- a/tests/feature_toggle/test_dialup.py +++ b/tests/feature_toggle/test_dialup.py @@ -1,7 +1,7 @@ from unittest import TestCase -from parameterized import parameterized, param -from samtranslator.feature_toggle.dialup import * +from parameterized import param, parameterized +from samtranslator.feature_toggle.dialup import DisabledDialup, SimpleAccountPercentileDialup, ToggleDialup class TestDisabledDialup(TestCase): diff --git a/tests/feature_toggle/test_feature_toggle.py b/tests/feature_toggle/test_feature_toggle.py index 5eb48544f..320f4efa8 100644 --- a/tests/feature_toggle/test_feature_toggle.py +++ b/tests/feature_toggle/test_feature_toggle.py @@ -1,14 +1,15 @@ -from unittest.mock import patch, Mock -from parameterized import parameterized, param +import os +import sys from unittest import TestCase -import os, sys +from unittest.mock import Mock, patch +from parameterized import param, parameterized +from samtranslator.feature_toggle.dialup import DisabledDialup, SimpleAccountPercentileDialup, ToggleDialup from samtranslator.feature_toggle.feature_toggle import ( FeatureToggle, - FeatureToggleLocalConfigProvider, FeatureToggleAppConfigConfigProvider, + FeatureToggleLocalConfigProvider, ) -from samtranslator.feature_toggle.dialup import ToggleDialup, SimpleAccountPercentileDialup, DisabledDialup my_path = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, my_path + "/..") diff --git a/tests/internal/test_deprecation_control.py b/tests/internal/test_deprecation_control.py new file mode 100644 index 000000000..8edd00869 --- /dev/null +++ b/tests/internal/test_deprecation_control.py @@ -0,0 +1,26 @@ +import warnings +from unittest import TestCase + +from samtranslator.internal.deprecation_control import deprecated + + +def replacement_function(x, y): + return x + y + + +@deprecated(replacement="replacement_function") +def deprecated_function(x, y): + return x + y + + +class TestDeprecationControl(TestCase): + def test_deprecated_decorator(self): + with warnings.catch_warnings(record=True) as w: + deprecated_function(1, 1) + self.assertEqual(len(w), 1) + self.assertTrue(issubclass(w[-1].category, DeprecationWarning)) + self.assertIn( + "deprecated_function is deprecated and will be removed in a future release, " + "please use replacement_function", + str(w[-1].message), + ) diff --git a/tests/intrinsics/test_actions.py b/tests/intrinsics/test_actions.py index 8070583fa..023869d4c 100644 --- a/tests/intrinsics/test_actions.py +++ b/tests/intrinsics/test_actions.py @@ -1,8 +1,9 @@ from unittest import TestCase -from unittest.mock import patch, Mock -from samtranslator.intrinsics.actions import Action, RefAction, SubAction, GetAttAction, FindInMapAction +from unittest.mock import Mock, patch + +from samtranslator.intrinsics.actions import Action, FindInMapAction, GetAttAction, RefAction, SubAction from samtranslator.intrinsics.resource_refs import SupportedResourceReferences -from samtranslator.model.exceptions import InvalidTemplateException, InvalidDocumentException +from samtranslator.model.exceptions import InvalidDocumentException class TestAction(TestCase): @@ -384,7 +385,6 @@ def setUp(self): self.expected_output_sub_value = "Hello ${value1} ${value2}${value3} ${value1.arn} ${value2.arn.name.foo} ${!id1.prop1} ${unknown} ${some.arn} World" def test_must_resolve_string_value(self): - input = {"Fn::Sub": self.input_sub_value} expected = {"Fn::Sub": self.expected_output_sub_value} @@ -447,7 +447,6 @@ def setUp(self): self.expected_output_sub_value = "Hello ${newid1} ${newid2}${newid3} ${newid1.arn} ${newid2.arn.name.foo} ${!id1.prop1} ${unknown} ${some.arn} World" def test_must_resolve_string_value(self): - input = {"Fn::Sub": self.input_sub_value} expected = {"Fn::Sub": self.expected_output_sub_value} diff --git a/tests/intrinsics/test_resolver.py b/tests/intrinsics/test_resolver.py index e06186051..38fbefb4b 100644 --- a/tests/intrinsics/test_resolver.py +++ b/tests/intrinsics/test_resolver.py @@ -1,7 +1,8 @@ from unittest import TestCase from unittest.mock import Mock, patch -from samtranslator.intrinsics.resolver import IntrinsicsResolver + from samtranslator.intrinsics.actions import Action +from samtranslator.intrinsics.resolver import IntrinsicsResolver from samtranslator.model.exceptions import InvalidDocumentException @@ -193,6 +194,5 @@ class SomeAction(Action): IntrinsicsResolver({}, supported_intrinsics) def test_configure_supported_intrinsics_must_error_for_non_dict_input(self): - with self.assertRaises(TypeError): IntrinsicsResolver({}, [1, 2, 3]) diff --git a/tests/intrinsics/test_resource_refs.py b/tests/intrinsics/test_resource_refs.py index bd92d5516..13c504ac9 100644 --- a/tests/intrinsics/test_resource_refs.py +++ b/tests/intrinsics/test_resource_refs.py @@ -1,10 +1,10 @@ from unittest import TestCase + from samtranslator.intrinsics.resource_refs import SupportedResourceReferences class TestSupportedResourceReferences(TestCase): def test_add_multiple_properties_to_one_logicalId(self): - resource_refs = SupportedResourceReferences() resource_refs.add("logicalId", "property1", "value1") @@ -27,7 +27,6 @@ def test_add_multiple_logical_ids(self): self.assertEqual({"property3": "value3"}, resource_refs.get_all("logicalId3")) def test_add_must_error_on_duplicate_value(self): - resource_refs = SupportedResourceReferences() resource_refs.add("logicalId", "property", "value1") diff --git a/tests/metrics/test_method_decorator.py b/tests/metrics/test_method_decorator.py index f864eeeae..d21903862 100644 --- a/tests/metrics/test_method_decorator.py +++ b/tests/metrics/test_method_decorator.py @@ -1,5 +1,5 @@ from unittest import TestCase -from unittest.mock import Mock, patch, ANY +from unittest.mock import ANY, Mock, patch from samtranslator.metrics.method_decorator import ( MetricsMethodWrapperSingleton, diff --git a/tests/metrics/test_metrics.py b/tests/metrics/test_metrics.py index a5ba604ff..7579a44e5 100644 --- a/tests/metrics/test_metrics.py +++ b/tests/metrics/test_metrics.py @@ -1,14 +1,15 @@ -from parameterized import parameterized, param from datetime import datetime from unittest import TestCase -from unittest.mock import MagicMock, call, ANY +from unittest.mock import ANY, MagicMock, call + +from parameterized import param, parameterized from samtranslator.metrics.metrics import ( - Metrics, - MetricsPublisher, CWMetricsPublisher, DummyMetricsPublisher, - Unit, MetricDatum, + Metrics, + MetricsPublisher, + Unit, ) diff --git a/tests/model/api/test_api_generator.py b/tests/model/api/test_api_generator.py index 391b3606f..d12136e0f 100644 --- a/tests/model/api/test_api_generator.py +++ b/tests/model/api/test_api_generator.py @@ -2,7 +2,6 @@ from unittest.mock import Mock, patch from parameterized import parameterized - from samtranslator.model import InvalidResourceException from samtranslator.model.api.api_generator import ApiGenerator diff --git a/tests/model/api/test_http_api_generator.py b/tests/model/api/test_http_api_generator.py index e892acce9..298889f06 100644 --- a/tests/model/api/test_http_api_generator.py +++ b/tests/model/api/test_http_api_generator.py @@ -1,8 +1,6 @@ from unittest import TestCase -from unittest.mock import patch -import pytest -from functools import reduce +import pytest from samtranslator.model import InvalidResourceException from samtranslator.model.api.http_api_generator import HttpApiGenerator from samtranslator.open_api.open_api import OpenApiEditor @@ -218,7 +216,9 @@ class TestCustomDomains(TestCase): "passthrough_resource_attributes": None, "domain": None, } - route53_record_set_groups = {} + + def setUp(self) -> None: + self.route53_record_set_groups = {} def test_no_domain(self): self.kwargs["domain"] = None @@ -356,7 +356,7 @@ def test_invalid_basepaths(self): e.value.message, "Resource with id [HttpApiId] is invalid. " + "Invalid Basepath name provided." ) - def test_basepaths(self): + def test_basepaths_complex(self): self.kwargs["domain"] = { "DomainName": "example.com", "CertificateArn": "some-url", diff --git a/tests/model/connector_profiles/test_profile.py b/tests/model/connector_profiles/test_profile.py index bcde3cca5..94e953479 100644 --- a/tests/model/connector_profiles/test_profile.py +++ b/tests/model/connector_profiles/test_profile.py @@ -1,7 +1,6 @@ from unittest import TestCase from parameterized import parameterized - from samtranslator.model.connector_profiles.profile import ( get_profile, profile_replace, diff --git a/tests/model/eventsources/test_api_event_source.py b/tests/model/eventsources/test_api_event_source.py index 6e8caaaff..d13729a03 100644 --- a/tests/model/eventsources/test_api_event_source.py +++ b/tests/model/eventsources/test_api_event_source.py @@ -1,5 +1,5 @@ -from unittest.mock import Mock, patch from unittest import TestCase +from unittest.mock import Mock, patch from samtranslator.model.eventsources.push import Api from samtranslator.model.lambda_ import LambdaFunction, LambdaPermission diff --git a/tests/model/eventsources/test_cloudwatch_event_source.py b/tests/model/eventsources/test_cloudwatch_event_source.py index 510f02571..55a7f3245 100644 --- a/tests/model/eventsources/test_cloudwatch_event_source.py +++ b/tests/model/eventsources/test_cloudwatch_event_source.py @@ -1,4 +1,3 @@ -from unittest.mock import Mock, patch from unittest import TestCase from samtranslator.model.eventsources.push import CloudWatchEvent diff --git a/tests/model/eventsources/test_cloudwatchlogs_event_source.py b/tests/model/eventsources/test_cloudwatchlogs_event_source.py index 4d3b71348..4ea81abd0 100644 --- a/tests/model/eventsources/test_cloudwatchlogs_event_source.py +++ b/tests/model/eventsources/test_cloudwatchlogs_event_source.py @@ -1,5 +1,6 @@ -from unittest.mock import Mock, patch from unittest import TestCase +from unittest.mock import Mock, patch + from samtranslator.model.eventsources.cloudwatchlogs import CloudWatchLogs diff --git a/tests/model/eventsources/test_documentdb_event_source.py b/tests/model/eventsources/test_documentdb_event_source.py new file mode 100644 index 000000000..c3aef6876 --- /dev/null +++ b/tests/model/eventsources/test_documentdb_event_source.py @@ -0,0 +1,202 @@ +from unittest import TestCase + +from parameterized import parameterized +from samtranslator.model.eventsources.pull import DocumentDB +from samtranslator.model.exceptions import InvalidEventException + + +class DocumentDBEventSource(TestCase): + def setUp(self): + self.logical_id = "DocumentDBEvent" + self.ddb_event_source = DocumentDB(self.logical_id) + self.ddb_event_source.relative_id = "EventId" + + def test_get_policy_arn(self): + source_arn = self.ddb_event_source.get_policy_arn() + expected_source_arn = None + self.assertEqual(source_arn, expected_source_arn) + + def test_get_policy_statements(self): + self.ddb_event_source.SourceAccessConfigurations = [{"Type": "BASIC_AUTH", "URI": "SECRET_URI"}] + self.ddb_event_source.Cluster = "CLUSTER_ARN" + policy_statements = self.ddb_event_source.get_policy_statements() + expected_policy_document = [ + { + "PolicyName": "SamAutoGeneratedDocumentDBPolicy", + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "secretsmanager:GetSecretValue", + ], + "Effect": "Allow", + "Resource": "SECRET_URI", + }, + { + "Action": [ + "rds:DescribeDBClusterParameters", + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:cluster-pg:*" + }, + }, + { + "Action": [ + "rds:DescribeDBSubnetGroups", + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:subgrp:*" + }, + }, + { + "Action": [ + "rds:DescribeDBClusters", + ], + "Effect": "Allow", + "Resource": "CLUSTER_ARN", + }, + { + "Action": [ + "ec2:CreateNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DeleteNetworkInterface", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups", + ], + "Effect": "Allow", + "Resource": "*", + }, + ] + }, + } + ] + self.assertEqual(policy_statements, expected_policy_document) + + @parameterized.expand( + [ + (1,), + (True,), + (["1abc23d4-567f-8ab9-cde0-1fab234c5d67"],), + ({"KmsKeyId": "1abc23d4-567f-8ab9-cde0-1fab234c5d67"},), + ] + ) + def test_must_validate_secrets_manager_kms_key_id(self, kms_key_id_value): + self.ddb_event_source.SourceAccessConfigurations = [{"Type": "BASIC_AUTH", "URI": "SECRET_URI"}] + self.ddb_event_source.Cluster = "CLUSTER_ARN" + self.ddb_event_source.SecretsManagerKmsKeyId = kms_key_id_value + error_message = "('EventId', \"Property 'SecretsManagerKmsKeyId' should be a string.\")" + with self.assertRaises(InvalidEventException) as error: + self.ddb_event_source.get_policy_statements() + self.assertEqual(error_message, str(error.exception)) + + def test_get_policy_statements_with_secrets_manager_kms_key_id(self): + self.ddb_event_source.SourceAccessConfigurations = [{"Type": "BASIC_AUTH", "URI": "SECRET_URI"}] + self.ddb_event_source.Cluster = "CLUSTER_ARN" + self.ddb_event_source.SecretsManagerKmsKeyId = "1abc23d4-567f-8ab9-cde0-1fab234c5d67" + policy_statements = self.ddb_event_source.get_policy_statements() + expected_policy_document = [ + { + "PolicyName": "SamAutoGeneratedDocumentDBPolicy", + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "secretsmanager:GetSecretValue", + ], + "Effect": "Allow", + "Resource": "SECRET_URI", + }, + { + "Action": [ + "rds:DescribeDBClusterParameters", + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:cluster-pg:*" + }, + }, + { + "Action": [ + "rds:DescribeDBSubnetGroups", + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:subgrp:*" + }, + }, + { + "Action": [ + "rds:DescribeDBClusters", + ], + "Effect": "Allow", + "Resource": "CLUSTER_ARN", + }, + { + "Action": [ + "ec2:CreateNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DeleteNetworkInterface", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups", + ], + "Effect": "Allow", + "Resource": "*", + }, + { + "Action": [ + "kms:Decrypt", + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:kms:${AWS::Region}:${AWS::AccountId}:key/1abc23d4-567f-8ab9-cde0-1fab234c5d67" + }, + }, + ] + }, + } + ] + self.assertEqual(policy_statements, expected_policy_document) + + def test_must_raise_error_for_missing_source_access_configurations(self): + self.ddb_event_source.Cluster = "CLUSTER_ARN" + + with self.assertRaises(InvalidEventException): + self.ddb_event_source.get_policy_statements() + + def test_must_raise_error_for_unknown_source_access_configurations_type(self): + test_credentials = [ + [{"Type": "BASIC_AUT", "URI": "SECRET_URI"}], + [{"Type": "SASL_SCRAM_256_AUT", "URI": "SECRET_URI"}], + [{"Type": None, "URI": "SECRET_URI"}], + [{"Type": "VPC_SUB", "URI": "SECRET_URI"}, {"Type": "VPC_SECURITY_GROUP", "URI": "SECRET_URI"}], + [{"Type": "VPC_SUBNET", "URI": "SECRET_URI"}, {"Type": None, "URI": None}], + ] + self.ddb_event_source.Cluster = "CLUSTER_ARN" + + for config in test_credentials: + self.ddb_event_source.SourceAccessConfigurations = config + with self.assertRaises(InvalidEventException): + self.ddb_event_source.get_policy_statements() + + def test_must_raise_error_for_multiple_basic_auth(self): + self.ddb_event_source.SourceAccessConfigurations = [ + {"Type": "BASIC_AUT", "URI": "SECRET_URI"}, + {"Type": "BASIC_AUT", "URI": "SECRET_URI2"}, + ] + self.ddb_event_source.Cluster = "CLUSTER_ARN" + + with self.assertRaises(InvalidEventException): + self.ddb_event_source.get_policy_statements() + + def test_must_raise_error_for_no_source_access_configurations_uri(self): + self.ddb_event_source.SourceAccessConfigurations = [ + {"Type": "BASIC_AUTH"}, + ] + self.ddb_event_source.Cluster = "CLUSTER_ARN" + + with self.assertRaises(InvalidEventException): + self.ddb_event_source.get_policy_statements() diff --git a/tests/model/eventsources/test_eventbridge_rule_source.py b/tests/model/eventsources/test_eventbridge_rule_source.py index 31fb93a85..bae2a44c4 100644 --- a/tests/model/eventsources/test_eventbridge_rule_source.py +++ b/tests/model/eventsources/test_eventbridge_rule_source.py @@ -1,10 +1,9 @@ -from unittest.mock import Mock, patch from unittest import TestCase -from parameterized import parameterized +from parameterized import parameterized from samtranslator.model.eventsources.push import EventBridgeRule -from samtranslator.model.lambda_ import LambdaFunction from samtranslator.model.exceptions import InvalidEventException +from samtranslator.model.lambda_ import LambdaFunction class EventBridgeRuleSourceTests(TestCase): diff --git a/tests/model/eventsources/test_mq_event_source.py b/tests/model/eventsources/test_mq_event_source.py index 253ac77c4..ef5318319 100644 --- a/tests/model/eventsources/test_mq_event_source.py +++ b/tests/model/eventsources/test_mq_event_source.py @@ -1,13 +1,15 @@ from unittest import TestCase + +from parameterized import parameterized from samtranslator.model.eventsources.pull import MQ from samtranslator.model.exceptions import InvalidEventException -from parameterized import parameterized class MQEventSource(TestCase): def setUp(self): self.logical_id = "MQEvent" self.mq_event_source = MQ(self.logical_id) + self.mq_event_source.relative_id = "EventId" def test_get_policy_arn(self): source_arn = self.mq_event_source.get_policy_arn() @@ -55,7 +57,7 @@ def test_must_validate_secrets_manager_kms_key_id(self, kms_key_id_value): self.mq_event_source.SourceAccessConfigurations = [{"Type": "BASIC_AUTH", "URI": "SECRET_URI"}] self.mq_event_source.Broker = "BROKER_ARN" self.mq_event_source.SecretsManagerKmsKeyId = kms_key_id_value - error_message = "(None, 'Provided SecretsManagerKmsKeyId should be of type str.')" + error_message = "('EventId', \"Property 'SecretsManagerKmsKeyId' should be a string.\")" with self.assertRaises(InvalidEventException) as error: self.mq_event_source.get_policy_statements() self.assertEqual(error_message, str(error.exception)) diff --git a/tests/model/eventsources/test_msk_event_source.py b/tests/model/eventsources/test_msk_event_source.py index 851990d36..03d8e8a30 100644 --- a/tests/model/eventsources/test_msk_event_source.py +++ b/tests/model/eventsources/test_msk_event_source.py @@ -1,4 +1,5 @@ from unittest import TestCase + from samtranslator.model.eventsources.pull import MSK diff --git a/tests/model/eventsources/test_schedule_event_source.py b/tests/model/eventsources/test_schedule_event_source.py index 78a9e49e6..9c002011e 100644 --- a/tests/model/eventsources/test_schedule_event_source.py +++ b/tests/model/eventsources/test_schedule_event_source.py @@ -1,9 +1,9 @@ from unittest import TestCase +from parameterized import parameterized from samtranslator.model.eventsources.push import Schedule -from samtranslator.model.lambda_ import LambdaFunction from samtranslator.model.exceptions import InvalidEventException -from parameterized import parameterized +from samtranslator.model.lambda_ import LambdaFunction class ScheduleEventSource(TestCase): diff --git a/tests/model/eventsources/test_schedulev2_event_source.py b/tests/model/eventsources/test_schedulev2_event_source.py index 53329e4d1..b442c8a57 100644 --- a/tests/model/eventsources/test_schedulev2_event_source.py +++ b/tests/model/eventsources/test_schedulev2_event_source.py @@ -2,11 +2,10 @@ from unittest import TestCase from unittest.mock import Mock +from parameterized import parameterized from samtranslator.model.eventsources.scheduler import SchedulerEventSource -from samtranslator.model.lambda_ import LambdaFunction from samtranslator.model.exceptions import InvalidEventException -from parameterized import parameterized - +from samtranslator.model.lambda_ import LambdaFunction from samtranslator.model.scheduler import SchedulerSchedule diff --git a/tests/model/eventsources/test_self_managed_kafka_event_source.py b/tests/model/eventsources/test_self_managed_kafka_event_source.py index 35567f89c..2681fae80 100644 --- a/tests/model/eventsources/test_self_managed_kafka_event_source.py +++ b/tests/model/eventsources/test_self_managed_kafka_event_source.py @@ -1,13 +1,15 @@ from unittest import TestCase + +from parameterized import parameterized from samtranslator.model.eventsources.pull import SelfManagedKafka from samtranslator.model.exceptions import InvalidEventException -from parameterized import parameterized class SelfManagedKafkaEventSource(TestCase): def setUp(self): self.logical_id = "SelfManagedKafkaEvent" self.kafka_event_source = SelfManagedKafka(self.logical_id) + self.kafka_event_source.relative_id = "EventId" def test_get_policy_arn(self): arn = self.kafka_event_source.get_policy_arn() @@ -315,7 +317,7 @@ def test_must_validate_secrets_manager_kms_key_id(self, kms_key_id_value): self.kafka_event_source.Enabled = True self.kafka_event_source.BatchSize = 1 self.kafka_event_source.SecretsManagerKmsKeyId = kms_key_id_value - error_message = "(None, 'Provided SecretsManagerKmsKeyId should be of type str.')" + error_message = "('EventId', \"Property 'SecretsManagerKmsKeyId' should be a string.\")" with self.assertRaises(InvalidEventException) as error: self.kafka_event_source.get_policy_statements() self.assertEqual(error_message, str(error.exception)) diff --git a/tests/model/eventsources/test_sns_event_source.py b/tests/model/eventsources/test_sns_event_source.py index 1af05f78b..12b3b84d3 100644 --- a/tests/model/eventsources/test_sns_event_source.py +++ b/tests/model/eventsources/test_sns_event_source.py @@ -1,5 +1,6 @@ -from unittest.mock import Mock from unittest import TestCase +from unittest.mock import Mock + from samtranslator.model.eventsources.push import SNS diff --git a/tests/model/stepfunctions/test_api_event.py b/tests/model/stepfunctions/test_api_event.py index a18c73340..a7b9e0674 100644 --- a/tests/model/stepfunctions/test_api_event.py +++ b/tests/model/stepfunctions/test_api_event.py @@ -1,8 +1,8 @@ -from unittest.mock import Mock from unittest import TestCase +from unittest.mock import Mock +from samtranslator.model.exceptions import InvalidEventException from samtranslator.model.stepfunctions.events import Api -from samtranslator.model.exceptions import InvalidResourceException, InvalidEventException class ApiEventSource(TestCase): @@ -76,8 +76,8 @@ def test_resources_to_link_with_explicit_api(self): def test_resources_to_link_with_undefined_explicit_api(self): resources = {} self.api_event_source.RestApiId = {"Ref": "MyExplicitApi"} - with self.assertRaises(InvalidEventException) as error: - resources_to_link = self.api_event_source.resources_to_link(resources) + with self.assertRaises(InvalidEventException): + self.api_event_source.resources_to_link(resources) def test_resources_to_link_without_explicit_api(self): resources = {} diff --git a/tests/model/stepfunctions/test_cloudwatchevents_event.py b/tests/model/stepfunctions/test_cloudwatchevents_event.py index c0957a7d2..994f043f7 100644 --- a/tests/model/stepfunctions/test_cloudwatchevents_event.py +++ b/tests/model/stepfunctions/test_cloudwatchevents_event.py @@ -1,7 +1,8 @@ -from unittest.mock import Mock from unittest import TestCase -from samtranslator.model.stepfunctions.events import CloudWatchEvent +from unittest.mock import Mock + from samtranslator.model.exceptions import InvalidEventException +from samtranslator.model.stepfunctions.events import CloudWatchEvent class CloudWatchEventsEventSource(TestCase): diff --git a/tests/model/stepfunctions/test_eventbridge_rule_source.py b/tests/model/stepfunctions/test_eventbridge_rule_source.py index 4f6654210..6d6f381dd 100644 --- a/tests/model/stepfunctions/test_eventbridge_rule_source.py +++ b/tests/model/stepfunctions/test_eventbridge_rule_source.py @@ -1,5 +1,5 @@ -from unittest.mock import Mock from unittest import TestCase +from unittest.mock import Mock from samtranslator.model.exceptions import InvalidEventException from samtranslator.model.stepfunctions.events import EventBridgeRule diff --git a/tests/model/stepfunctions/test_schedule_event.py b/tests/model/stepfunctions/test_schedule_event.py index 5fa1916aa..c8db1849e 100644 --- a/tests/model/stepfunctions/test_schedule_event.py +++ b/tests/model/stepfunctions/test_schedule_event.py @@ -1,8 +1,9 @@ -from unittest.mock import Mock from unittest import TestCase -from samtranslator.model.stepfunctions.events import Schedule -from samtranslator.model.exceptions import InvalidEventException +from unittest.mock import Mock + from parameterized import parameterized +from samtranslator.model.exceptions import InvalidEventException +from samtranslator.model.stepfunctions.events import Schedule class ScheduleEventSource(TestCase): diff --git a/tests/model/stepfunctions/test_state_machine_generator.py b/tests/model/stepfunctions/test_state_machine_generator.py index 2b1cb726f..9fc03b1ec 100644 --- a/tests/model/stepfunctions/test_state_machine_generator.py +++ b/tests/model/stepfunctions/test_state_machine_generator.py @@ -1,8 +1,7 @@ -from unittest.mock import Mock from unittest import TestCase +from unittest.mock import Mock -from samtranslator.model import ResourceTypeResolver -from samtranslator.model.exceptions import InvalidResourceException, InvalidEventException +from samtranslator.model.exceptions import InvalidEventException, InvalidResourceException from samtranslator.model.stepfunctions import StateMachineGenerator from samtranslator.model.stepfunctions.events import CloudWatchEvent @@ -144,5 +143,5 @@ def test_state_machine_with_unsupported_event_source(self): } } self.kwargs["event_resources"] = {"KinesesEvent": {}} - with self.assertRaises(InvalidEventException) as error: + with self.assertRaises(InvalidEventException): StateMachineGenerator(**self.kwargs).to_cloudformation() diff --git a/tests/model/test_api.py b/tests/model/test_api.py index d718d5f8f..831b9efb1 100644 --- a/tests/model/test_api.py +++ b/tests/model/test_api.py @@ -1,6 +1,6 @@ from unittest import TestCase -import pytest +import pytest from samtranslator.model import InvalidResourceException from samtranslator.model.apigateway import ApiGatewayAuthorizer from samtranslator.utils.py27hash_fix import Py27Dict diff --git a/tests/model/test_api_v2.py b/tests/model/test_api_v2.py index 17f88d33d..e5de8d872 100644 --- a/tests/model/test_api_v2.py +++ b/tests/model/test_api_v2.py @@ -1,7 +1,6 @@ -from unittest import TestCase -from unittest import mock -import pytest +from unittest import TestCase, mock +import pytest from samtranslator.model import InvalidResourceException from samtranslator.model.apigatewayv2 import ApiGatewayV2Authorizer diff --git a/tests/model/test_exceptions.py b/tests/model/test_exceptions.py new file mode 100644 index 000000000..b8d945d39 --- /dev/null +++ b/tests/model/test_exceptions.py @@ -0,0 +1,64 @@ +from unittest import TestCase + +from samtranslator.model.exceptions import ( + DuplicateLogicalIdException, + InvalidDocumentException, + InvalidEventException, + InvalidResourceException, + InvalidTemplateException, +) + + +class TestExceptions(TestCase): + def setUp(self) -> None: + self.invalid_template = InvalidTemplateException("foo") + self.duplicate_id = DuplicateLogicalIdException("foo", "bar", "type") + self.invalid_resource = InvalidResourceException("foo", "bar") + self.invalid_event = InvalidEventException("foo", "bar") + self.invalid_resource_with_metadata = InvalidResourceException("foo-bar", "foo", {"hello": "world"}) + + def test_invalid_template(self): + self.assertEqual(self.invalid_template.metadata, None) + self.assertIn("Structure of the SAM template is invalid", self.invalid_template.message) + + def test_duplicate_id(self): + self.assertEqual(self.duplicate_id.metadata, None) + self.assertIn("Transforming resource with id", self.duplicate_id.message) + + def test_invalid_resource_without_metadata(self): + self.assertEqual(self.invalid_resource.metadata, None) + self.assertIn("Resource with id [foo] is invalid", self.invalid_resource.message) + + def test_invalid_resource_with_metadata(self): + self.assertEqual(self.invalid_resource_with_metadata.metadata, {"hello": "world"}) + self.assertIn("Resource with id [foo-bar] is invalid", self.invalid_resource_with_metadata.message) + + def test_invalid_event(self): + self.assertEqual(self.invalid_event.metadata, None) + self.assertIn("Event with id [foo] is invalid.", self.invalid_event.message) + + def test_invalid_document_exceptions(self): + unsupported_connector_profile = InvalidResourceException("hello", "world", {"KEY": {"C": "D"}}) + unsupported_connector_profile2 = InvalidResourceException("foobar", "bar", {"KEY": {"A": "B"}}) + self.assertEqual(unsupported_connector_profile.metadata, {"KEY": {"C": "D"}}) + self.assertEqual(unsupported_connector_profile2.metadata, {"KEY": {"A": "B"}}) + + invalid_document_exception = InvalidDocumentException( + [ + self.invalid_template, + self.duplicate_id, + self.invalid_resource, + self.invalid_event, + self.invalid_resource_with_metadata, + unsupported_connector_profile, + unsupported_connector_profile2, + ] + ) + self.assertEqual( + "Invalid Serverless Application Specification document. Number of errors found: 7.", + invalid_document_exception.message, + ) + self.assertEqual( + invalid_document_exception.metadata, + {"hello": ["world"], "KEY": [{"C": "D"}, {"A": "B"}]}, + ) diff --git a/tests/model/test_resource_policies.py b/tests/model/test_resource_policies.py index ff3bfb163..7774760b3 100644 --- a/tests/model/test_resource_policies.py +++ b/tests/model/test_resource_policies.py @@ -1,9 +1,9 @@ -from unittest.mock import Mock, patch from unittest import TestCase +from unittest.mock import Mock, patch -from samtranslator.model.resource_policies import ResourcePolicies, PolicyTypes, PolicyEntry from samtranslator.model.exceptions import InvalidTemplateException from samtranslator.model.intrinsics import is_intrinsic_if, is_intrinsic_no_value +from samtranslator.model.resource_policies import PolicyEntry, PolicyTypes, ResourcePolicies class TestResourcePolicies(TestCase): diff --git a/tests/model/test_sam_resources.py b/tests/model/test_sam_resources.py index b388312c5..f5dfacf2f 100644 --- a/tests/model/test_sam_resources.py +++ b/tests/model/test_sam_resources.py @@ -1,21 +1,20 @@ from unittest import TestCase from unittest.mock import patch -import pytest +import pytest from samtranslator.intrinsics.resolver import IntrinsicsResolver -from samtranslator.model import ResourceResolver, InvalidResourceException +from samtranslator.model import InvalidResourceException, ResourceResolver +from samtranslator.model.apigateway import ApiGatewayDeployment, ApiGatewayRestApi, ApiGatewayStage from samtranslator.model.apigatewayv2 import ApiGatewayV2HttpApi -from samtranslator.model.lambda_ import LambdaFunction, LambdaLayerVersion, LambdaVersion, LambdaUrl, LambdaPermission -from samtranslator.model.apigateway import ApiGatewayDeployment, ApiGatewayRestApi -from samtranslator.model.apigateway import ApiGatewayStage from samtranslator.model.iam import IAMRole +from samtranslator.model.lambda_ import LambdaFunction, LambdaLayerVersion, LambdaPermission, LambdaUrl, LambdaVersion from samtranslator.model.packagetype import IMAGE, ZIP from samtranslator.model.sam_resources import ( + SamApi, SamConnector, SamFunction, - SamLayerVersion, - SamApi, SamHttpApi, + SamLayerVersion, ) @@ -244,7 +243,6 @@ def test_with_version_description(self): @patch("boto3.session.Session.region_name", "ap-southeast-1") def test_with_autopublish_bad_hash(self): function = SamFunction("foo") - test_description = "foobar" function.Runtime = "foo" function.Handler = "bar" @@ -258,7 +256,6 @@ def test_with_autopublish_bad_hash(self): @patch("boto3.session.Session.region_name", "ap-southeast-1") def test_with_autopublish_good_hash(self): function = SamFunction("foo") - test_description = "foobar" function.Runtime = "foo" function.Handler = "bar" @@ -454,7 +451,7 @@ def test_basic_layer(self): layer = SamLayerVersion("foo") layer.ContentUri = "s3://foobar/foo.zip" cfnResources = layer.to_cloudformation(**self.kwargs) - generatedLayerList = [x for x in cfnResources if isinstance(x, LambdaLayerVersion)] + [x for x in cfnResources if isinstance(x, LambdaLayerVersion)] self.assertEqual(cfnResources.__len__(), 1) self.assertTrue(isinstance(cfnResources[0], LambdaLayerVersion)) self.assertEqual(cfnResources[0].Content, {"S3Key": "foo.zip", "S3Bucket": "foobar"}) @@ -614,7 +611,6 @@ def test_with_valid_function_url_config_with_lambda_permission(self): @patch("boto3.session.Session.region_name", "ap-southeast-1") def test_with_invalid_function_url_config_with_authorization_type_value_as_None(self): - function = SamFunction("foo") function.CodeUri = "s3://foobar/foo.zip" function.Runtime = "foo" @@ -622,7 +618,7 @@ def test_with_invalid_function_url_config_with_authorization_type_value_as_None( function.FunctionUrlConfig = {"AuthType": None} with pytest.raises(InvalidResourceException) as e: - cfnResources = function.to_cloudformation(**self.kwargs) + function.to_cloudformation(**self.kwargs) self.assertEqual( str(e.value.message), "Resource with id [foo] is invalid. AuthType is required to configure function property " @@ -700,7 +696,8 @@ def test_unsupported_permissions_connector(self): connector.Destination = {"Id": "table"} connector.Permissions = ["INVOKE"] with self.assertRaisesRegex( - InvalidResourceException, ".+Unsupported 'Permissions' provided; valid values are: Read, Write." + InvalidResourceException, + ".+Unsupported 'Permissions' provided for connector from AWS::Lambda::Function to AWS::DynamoDB::Table; valid values are: Read, Write.", ): connector.to_cloudformation(**self.kwargs)[0] @@ -710,7 +707,8 @@ def test_unsupported_permissions_connector_with_one_supported_permission(self): connector.Destination = {"Id": "func2"} connector.Permissions = ["INVOKE"] with self.assertRaisesRegex( - InvalidResourceException, ".+Unsupported 'Permissions' provided; valid values are: Read." + InvalidResourceException, + ".+Unsupported 'Permissions' provided for connector from AWS::DynamoDB::Table to AWS::Lambda::Function; valid values are: Read.", ): connector.to_cloudformation(**self.kwargs)[0] @@ -720,6 +718,7 @@ def test_unsupported_permissions_combination(self): connector.Destination = {"Id": "func2"} connector.Permissions = ["Read"] with self.assertRaisesRegex( - InvalidResourceException, "Unsupported 'Permissions' provided; valid combinations are: Read \\+ Write." + InvalidResourceException, + "Unsupported 'Permissions' provided for connector from AWS::SQS::Queue to AWS::Lambda::Function; valid combinations are: Read \\+ Write.", ): connector.to_cloudformation(**self.kwargs)[0] diff --git a/tests/openapi/test_openapi.py b/tests/openapi/test_openapi.py index 9d78c6a06..767b1159b 100644 --- a/tests/openapi/test_openapi.py +++ b/tests/openapi/test_openapi.py @@ -1,10 +1,9 @@ import copy - from unittest import TestCase -from parameterized import parameterized, param -from samtranslator.open_api.open_api import OpenApiEditor +from parameterized import param, parameterized from samtranslator.model.exceptions import InvalidDocumentException +from samtranslator.open_api.open_api import OpenApiEditor from samtranslator.utils.py27hash_fix import Py27Dict _X_INTEGRATION = "x-amazon-apigateway-integration" @@ -13,10 +12,8 @@ # TODO: add a case for swagger and make sure it fails class TestOpenApiEditor_init(TestCase): - # OAS3 doesn't support swagger def test_must_raise_on_valid_swagger(self): - valid_swagger = { "swagger": "2.0", # "openapi": "2.1.0" "paths": {"/foo": {}, "/bar": {}}, @@ -25,7 +22,6 @@ def test_must_raise_on_valid_swagger(self): OpenApiEditor(valid_swagger) def test_must_raise_on_invalid_openapi(self): - invalid_openapi = {"paths": {}} # Missing "openapi" keyword with self.assertRaises(InvalidDocumentException): OpenApiEditor(invalid_openapi) @@ -107,7 +103,6 @@ def test_must_not_find_path_and_method(self): self.assertFalse(self.editor.has_path("/bar", "xyz")) def test_must_not_fail_on_bad_path(self): - self.assertTrue(self.editor.has_path("badpath")) self.assertFalse(self.editor.has_path("badpath", "somemethod")) @@ -151,7 +146,6 @@ def test_must_handle_bad_value_for_method(self): class TestOpenApiEditor_add_path(TestCase): def setUp(self): - self.original_openapi = { "openapi": "3.0.1", "paths": {"/foo": {"get": {"a": "b"}}, "/bar": {}, "/badpath": "string value"}, @@ -167,14 +161,12 @@ def setUp(self): ] ) def test_must_add_new_path_and_method(self, path, method, case): - self.assertFalse(self.editor.has_path(path, method)) self.editor.add_path(path, method) self.assertTrue(self.editor.has_path(path, method), "must add for " + case) self.assertEqual(self.editor.openapi["paths"][path][method], {}) def test_must_raise_non_dict_path_values(self): - path = "/badpath" method = "get" @@ -198,7 +190,6 @@ def test_must_skip_existing_path(self): class TestOpenApiEditor_add_lambda_integration(TestCase): def setUp(self): - self.original_openapi = { "openapi": "3.0.1", "paths": { @@ -306,13 +297,11 @@ def test_must_add_new_integration_to_existing_path(self): class TestOpenApiEditor_iter_on_path(TestCase): def setUp(self): - self.original_openapi = {"openapi": "3.0.1", "paths": {"/foo": {}, "/bar": {}, "/baz": "some value"}} self.editor = OpenApiEditor(self.original_openapi) def test_must_iterate_on_paths(self): - expected = {"/foo", "/bar", "/baz"} actual = set(list(self.editor.iter_on_path())) @@ -336,7 +325,6 @@ def test_must_normalize(self, input, expected, msg): class TestOpenApiEditor_openapi_property(TestCase): def test_must_return_copy_of_openapi(self): - input = {"openapi": "3.0.1", "paths": {}} editor = OpenApiEditor(input) @@ -377,7 +365,6 @@ def test_must_fail_for_invalid_values(self, data, case): class TestOpenApiEditor_add_auth(TestCase): def setUp(self): - self.original_openapi = { "openapi": "3.0.1", "paths": { @@ -391,7 +378,6 @@ def setUp(self): class TestOpenApiEditor_is_integration_function_logical_id_match(TestCase): def setUp(self): - self.original_openapi = { "openapi": "3.0.1", "paths": { @@ -430,7 +416,6 @@ def setUp(self): self.editor = OpenApiEditor(self.original_openapi) def test_must_match_integration_function_if_exists(self): - self.assertTrue( self.editor.is_integration_function_logical_id_match( OpenApiEditor._DEFAULT_PATH, OpenApiEditor._X_ANY_METHOD, "HttpApiFunction" @@ -464,7 +449,6 @@ def test_must_not_add_description_if_already_defined(self): class TestOpenApiEditor_is_integration_function_logical_id_match_with_alias(TestCase): def setUp(self): - self.original_openapi = { "openapi": "3.0.1", "paths": { @@ -503,7 +487,6 @@ def setUp(self): self.editor = OpenApiEditor(self.original_openapi) def test_no_match_if_alias(self): - self.assertFalse( self.editor.is_integration_function_logical_id_match( OpenApiEditor._DEFAULT_PATH, OpenApiEditor._X_ANY_METHOD, "HttpApiFunctionAlias" diff --git a/tests/parser/test_parser.py b/tests/parser/test_parser.py index 49fa6b0eb..f614fd420 100644 --- a/tests/parser/test_parser.py +++ b/tests/parser/test_parser.py @@ -1,9 +1,9 @@ from unittest import TestCase -from unittest.mock import patch, Mock, call +from unittest.mock import Mock, call, patch +from samtranslator.model.exceptions import InvalidDocumentException from samtranslator.parser.parser import Parser from samtranslator.plugins import LifeCycleEvents -from samtranslator.model.exceptions import InvalidDocumentException, InvalidTemplateException, InvalidResourceException class TestParser(TestCase): diff --git a/tests/plugins/api/test_default_definition_body_plugin.py b/tests/plugins/api/test_default_definition_body_plugin.py index 76ab86830..53913e0cb 100644 --- a/tests/plugins/api/test_default_definition_body_plugin.py +++ b/tests/plugins/api/test_default_definition_body_plugin.py @@ -1,5 +1,5 @@ -from unittest.mock import Mock, patch from unittest import TestCase +from unittest.mock import Mock, patch from samtranslator.plugins.api.default_definition_body_plugin import DefaultDefinitionBodyPlugin from samtranslator.public.plugins import BasePlugin @@ -27,7 +27,6 @@ def setUp(self): @patch("samtranslator.plugins.api.default_definition_body_plugin.SamTemplate") def test_must_process_functions(self, SamTemplateMock): - template_dict = {"a": "b"} api_resources = [("id1", ApiResource()), ("id2", ApiResource()), ("id3", ApiResource())] diff --git a/tests/plugins/api/test_implicit_api_plugin.py b/tests/plugins/api/test_implicit_api_plugin.py index 679241f21..cd84b8770 100644 --- a/tests/plugins/api/test_implicit_api_plugin.py +++ b/tests/plugins/api/test_implicit_api_plugin.py @@ -1,10 +1,10 @@ from unittest import TestCase -from unittest.mock import Mock, patch, call +from unittest.mock import Mock, call, patch -from samtranslator.public.sdk.resource import SamResource, SamResourceType -from samtranslator.public.exceptions import InvalidEventException, InvalidResourceException, InvalidDocumentException -from samtranslator.plugins.api.implicit_rest_api_plugin import ImplicitRestApiPlugin, ImplicitApiResource +from samtranslator.plugins.api.implicit_rest_api_plugin import ImplicitApiResource, ImplicitRestApiPlugin +from samtranslator.public.exceptions import InvalidDocumentException, InvalidEventException, InvalidResourceException from samtranslator.public.plugins import BasePlugin +from samtranslator.public.sdk.resource import SamResource, SamResourceType IMPLICIT_API_LOGICAL_ID = "ServerlessRestApi" @@ -14,13 +14,11 @@ def test_must_work_for_single_function(self): """ Test the basic case of one function with a few API events """ - pass def test_must_work_with_multiple_functions(self): """ Test a more advanced case of multiple functions with API events """ - pass def test_must_work_with_api_events_with_intrinsic_function(self): pass @@ -29,19 +27,16 @@ def test_must_ignore_function_without_api_events(self): """ Functions without API events must not be processed """ - pass def test_must_ignore_api_events_with_restapiid(self): """ API event sources that are already connected to a AWS::Serverless::Api resource must be skipped """ - pass def test_must_ignore_template_without_function(self): """ Template without function resource must be unmodified """ - pass class TestImplicitRestApiPlugin_init(TestCase): @@ -69,7 +64,6 @@ def setUp(self): @patch("samtranslator.plugins.api.implicit_api_plugin.SamTemplate") def test_must_process_functions(self, SamTemplateMock): - template_dict = {"a": "b"} function1 = SamResource({"Type": "AWS::Serverless::Function"}) function2 = SamResource({"Type": "AWS::Serverless::Function"}) @@ -106,7 +100,6 @@ def test_must_process_functions(self, SamTemplateMock): @patch("samtranslator.plugins.api.implicit_api_plugin.SamTemplate") def test_must_process_state_machines(self, SamTemplateMock): - template_dict = {"a": "b"} statemachine1 = SamResource({"Type": "AWS::Serverless::StateMachine"}) statemachine2 = SamResource({"Type": "AWS::Serverless::StateMachine"}) @@ -143,7 +136,6 @@ def test_must_process_state_machines(self, SamTemplateMock): @patch("samtranslator.plugins.api.implicit_api_plugin.SamTemplate") def test_must_skip_functions_without_events(self, SamTemplateMock): - template_dict = {"a": "b"} function1 = SamResource({"Type": "AWS::Serverless::Function"}) function2 = SamResource({"Type": "AWS::Serverless::Function"}) @@ -168,7 +160,6 @@ def test_must_skip_functions_without_events(self, SamTemplateMock): @patch("samtranslator.plugins.api.implicit_api_plugin.SamTemplate") def test_must_skip_state_machines_without_events(self, SamTemplateMock): - template_dict = {"a": "b"} statemachine1 = SamResource({"Type": "AWS::Serverless::StateMachine"}) statemachine2 = SamResource({"Type": "AWS::Serverless::StateMachine"}) @@ -193,7 +184,6 @@ def test_must_skip_state_machines_without_events(self, SamTemplateMock): @patch("samtranslator.plugins.api.implicit_api_plugin.SamTemplate") def test_must_skip_without_functions_or_statemachines(self, SamTemplateMock): - template_dict = {"a": "b"} # NO FUNCTIONS OR STATE MACHINES function_resources = [] @@ -214,7 +204,6 @@ def test_must_skip_without_functions_or_statemachines(self, SamTemplateMock): @patch("samtranslator.plugins.api.implicit_api_plugin.SamTemplate") def test_must_collect_errors_and_raise_on_invalid_events(self, SamTemplateMock): - template_dict = {"a": "b"} function_resources = [ ("id1", SamResource({"Type": "AWS::Serverless::Function"})), @@ -260,7 +249,6 @@ def setUp(self): self.plugin = ImplicitRestApiPlugin() def test_must_get_all_api_events_in_function(self): - properties = { "Events": { "Api1": {"Type": "Api", "Properties": {"a": "b"}}, @@ -279,7 +267,6 @@ def test_must_get_all_api_events_in_function(self): self.assertEqual(expected, result) def test_must_work_with_no_api_events(self): - properties = { "Events": { "Event1": {"Type": "some", "Properties": {"a": "b"}}, @@ -295,7 +282,6 @@ def test_must_work_with_no_api_events(self): self.assertEqual(expected, result) def test_must_skip_with_bad_events_structure(self): - function = SamResource({"Type": SamResourceType.Function.value, "Properties": {"Events": "must not be string"}}) expected = {} @@ -303,7 +289,6 @@ def test_must_skip_with_bad_events_structure(self): self.assertEqual(expected, result) def test_must_skip_if_no_events_property(self): - function = SamResource({"Type": SamResourceType.Function.value, "Properties": {"no": "events"}}) expected = {} @@ -311,7 +296,6 @@ def test_must_skip_if_no_events_property(self): self.assertEqual(expected, result) def test_must_skip_if_no_property_dictionary(self): - function = SamResource({"Type": SamResourceType.Function.value, "Properties": "bad value"}) expected = {} @@ -333,7 +317,6 @@ def test_must_return_reference_to_event_dict(self): self.assertTrue(result["Api1"] is function.properties["Events"]["Api1"]) def test_must_skip_if_function_is_not_valid(self): - function = SamResource( { # NOT a SAM resource @@ -383,7 +366,6 @@ def test_must_work_with_api_events(self): function_events_mock.update.assert_called_with(api_events) def test_must_verify_expected_keys_exist(self): - api_events = {"Api1": {"Type": "Api", "Properties": {"Path": "/", "Methid": "POST"}}} template = Mock() @@ -391,7 +373,7 @@ def test_must_verify_expected_keys_exist(self): function = SamResource({"Type": SamResourceType.Function.value, "Properties": {"Events": function_events_mock}}) function_events_mock.update = Mock() - with self.assertRaises(InvalidEventException) as context: + with self.assertRaises(InvalidEventException): self.plugin._process_api_events(function, api_events, template) def test_must_verify_method_is_string(self): @@ -402,7 +384,7 @@ def test_must_verify_method_is_string(self): function = SamResource({"Type": SamResourceType.Function.value, "Properties": {"Events": function_events_mock}}) function_events_mock.update = Mock() - with self.assertRaises(InvalidEventException) as context: + with self.assertRaises(InvalidEventException): self.plugin._process_api_events(function, api_events, template) def test_must_verify_rest_api_id_is_string(self): @@ -422,7 +404,7 @@ def test_must_verify_rest_api_id_is_string(self): function = SamResource({"Type": SamResourceType.Function.value, "Properties": {"Events": function_events_mock}}) function_events_mock.update = Mock() - with self.assertRaises(InvalidEventException) as context: + with self.assertRaises(InvalidEventException): self.plugin._process_api_events(function, api_events, template) def test_must_verify_path_is_string(self): @@ -433,11 +415,10 @@ def test_must_verify_path_is_string(self): function = SamResource({"Type": SamResourceType.Function.value, "Properties": {"Events": function_events_mock}}) function_events_mock.update = Mock() - with self.assertRaises(InvalidEventException) as context: + with self.assertRaises(InvalidEventException): self.plugin._process_api_events(function, api_events, template) def test_must_skip_events_without_properties(self): - api_events = { "Api1": {"Type": "Api", "RestApiId": "RestApi"}, "Api2": {"Type": "Api", "Properties": {"RestApiId": "RestApi", "Path": "/", "Method": "GET"}}, @@ -544,7 +525,6 @@ def setUp(self): self.plugin = ImplicitRestApiPlugin() def test_must_add_if_not_present(self): - input = {"a": "b"} expected = {"a": "b", "RestApiId": {"Ref": IMPLICIT_API_LOGICAL_ID}} @@ -553,7 +533,6 @@ def test_must_add_if_not_present(self): self.assertEqual(input, expected) def test_must_skip_if_present(self): - input = {"a": "b", "RestApiId": "Something"} expected = {"a": "b", "RestApiId": "Something"} @@ -665,7 +644,6 @@ def test_must_raise_when_api_id_is_intrinsic(self): @patch("samtranslator.plugins.api.implicit_rest_api_plugin.SwaggerEditor") def test_must_skip_invalid_swagger(self, SwaggerEditorMock): - event_id = "id" properties = {"RestApiId": {"Ref": "restid"}, "Path": "/hello", "Method": "GET"} original_swagger = {"this": "is", "valid": "swagger"} @@ -691,7 +669,6 @@ def test_must_skip_invalid_swagger(self, SwaggerEditorMock): @patch("samtranslator.plugins.api.implicit_rest_api_plugin.SwaggerEditor") def test_must_skip_if_definition_body_is_not_present(self, SwaggerEditorMock): - event_id = "id" properties = {"RestApiId": {"Ref": "restid"}, "Path": "/hello", "Method": "GET"} mock_api = SamResource({"Type": "AWS::Serverless::Api", "Properties": {"DefinitionUri": "s3://bucket/key"}}) @@ -714,7 +691,6 @@ def test_must_skip_if_definition_body_is_not_present(self, SwaggerEditorMock): @patch("samtranslator.plugins.api.implicit_rest_api_plugin.SwaggerEditor") def test_must_skip_if_api_resource_properties_are_invalid(self, SwaggerEditorMock): - event_id = "id" properties = {"RestApiId": {"Ref": "restid"}, "Path": "/hello", "Method": "GET"} mock_api = SamResource({"Type": "AWS::Serverless::Api", "Properties": "this is not a valid property"}) @@ -736,7 +712,6 @@ def test_must_skip_if_api_resource_properties_are_invalid(self, SwaggerEditorMoc @patch("samtranslator.plugins.api.implicit_rest_api_plugin.SwaggerEditor") def test_must_skip_if_api_manage_swagger_flag_is_false(self, SwaggerEditorMock): - event_id = "id" properties = {"RestApiId": {"Ref": "restid"}, "Path": "/hello", "Method": "GET"} original_swagger = {"this": "is a valid swagger"} @@ -769,7 +744,6 @@ def test_must_skip_if_api_manage_swagger_flag_is_false(self, SwaggerEditorMock): @patch("samtranslator.plugins.api.implicit_rest_api_plugin.SwaggerEditor") def test_must_skip_if_api_manage_swagger_flag_is_not_present(self, SwaggerEditorMock): - event_id = "id" properties = {"RestApiId": {"Ref": "restid"}, "Path": "/hello", "Method": "GET"} original_swagger = {"this": "is a valid swagger"} diff --git a/tests/plugins/application/test_serverless_app_plugin.py b/tests/plugins/application/test_serverless_app_plugin.py index a6898b898..c5f17621a 100644 --- a/tests/plugins/application/test_serverless_app_plugin.py +++ b/tests/plugins/application/test_serverless_app_plugin.py @@ -1,14 +1,11 @@ -import boto3 -import itertools -from botocore.exceptions import ClientError - -from unittest.mock import Mock, patch from unittest import TestCase -from parameterized import parameterized, param +from unittest.mock import Mock, patch +import boto3 +from botocore.exceptions import ClientError +from samtranslator.model.exceptions import InvalidResourceException from samtranslator.plugins.application.serverless_app_plugin import ServerlessAppPlugin from samtranslator.plugins.exceptions import InvalidPluginException -from samtranslator.model.exceptions import InvalidResourceException # TODO: run tests when AWS CLI is not configured (so they can run in brazil) @@ -20,18 +17,17 @@ def mock_create_cloud_formation_template(ApplicationId=None, SemanticVersion=None): - message = { + return { "ApplicationId": ApplicationId, "SemanticVersion": SemanticVersion, "Status": STATUS_ACTIVE, "TemplateId": MOCK_TEMPLATE_ID, "TemplateUrl": MOCK_TEMPLATE_URL, } - return message def mock_get_application(ApplicationId=None, SemanticVersion=None): - message = { + return { "ApplicationId": ApplicationId, "Author": "AWS", "Description": "Application description", @@ -39,18 +35,16 @@ def mock_get_application(ApplicationId=None, SemanticVersion=None): "ParameterDefinitions": [{"Name": "Parameter1", "ReferencedByResources": ["resource1"], "Type": "String"}], "SemanticVersion": SemanticVersion, } - return message def mock_get_cloud_formation_template(ApplicationId=None, TemplateId=None): - message = { + return { "ApplicationId": ApplicationId, "SemanticVersion": "1.0.0", "Status": STATUS_ACTIVE, "TemplateId": TemplateId, "TemplateUrl": MOCK_TEMPLATE_URL, } - return message def mock_get_region(self, service_name, region_name): @@ -90,7 +84,7 @@ def test_plugin_accepts_flags(self): @patch("botocore.client.ClientEndpointBridge._check_default_region", mock_get_region) def test_plugin_invalid_configuration_raises_exception(self): with self.assertRaises(InvalidPluginException): - plugin = ServerlessAppPlugin(wait_for_template_active_status=True, validate_only=True) + ServerlessAppPlugin(wait_for_template_active_status=True, validate_only=True) @patch("botocore.client.ClientEndpointBridge._check_default_region", mock_get_region) def test_plugin_accepts_parameters(self): @@ -108,7 +102,6 @@ def setUp(self): @patch("botocore.client.BaseClient._make_api_call", mock_create_cloud_formation_template) @patch("botocore.client.ClientEndpointBridge._check_default_region", mock_get_region) def test_must_process_applications(self, SamTemplateMock): - self.plugin = ServerlessAppPlugin(sar_client=boto3.client("serverlessrepo")) template_dict = {"a": "b"} app_resources = [ @@ -133,7 +126,6 @@ def test_must_process_applications(self, SamTemplateMock): @patch("botocore.client.BaseClient._make_api_call", mock_get_application) @patch("botocore.client.ClientEndpointBridge._check_default_region", mock_get_region) def test_must_process_applications_validate(self, SamTemplateMock): - self.plugin = ServerlessAppPlugin(validate_only=True) template_dict = {"a": "b"} app_resources = [ diff --git a/tests/plugins/globals/test_globals.py b/tests/plugins/globals/test_globals.py index 287e549c7..755721306 100644 --- a/tests/plugins/globals/test_globals.py +++ b/tests/plugins/globals/test_globals.py @@ -1,13 +1,11 @@ -from parameterized import parameterized - from unittest import TestCase -from unittest.mock import patch, Mock +from unittest.mock import Mock, patch +from parameterized import parameterized from samtranslator.plugins.globals.globals import GlobalProperties, Globals, InvalidGlobalsSectionException class GlobalPropertiesTestCases(object): - dict_with_single_level_should_be_merged = { "global": {"a": 1, "b": 2}, "local": {"a": "foo", "c": 3, "d": 4}, @@ -174,11 +172,9 @@ class GlobalPropertiesTestCases(object): class TestGlobalPropertiesMerge(TestCase): - # Get all attributes of the test case object which is not a built-in method like __str__ @parameterized.expand([d for d in dir(GlobalPropertiesTestCases) if not d.startswith("__")]) def test_global_properties_merge(self, testcase): - configuration = getattr(GlobalPropertiesTestCases, testcase) if not configuration: raise Exception("Invalid configuration for test case " + testcase) @@ -192,7 +188,6 @@ def test_global_properties_merge(self, testcase): class TestGlobalsPropertiesEdgeCases(TestCase): @patch.object(GlobalProperties, "_token_of") def test_merge_with_objects_of_unsupported_token_type(self, token_of_mock): - token_of_mock.return_value = "some random type" properties = GlobalProperties("global value") @@ -240,35 +235,30 @@ def test_parse_should_parse_all_known_resource_types(self): self.assertEqual(self.template["Globals"]["type2"], parsed_globals["prefix_type2"].global_properties) def test_parse_should_error_if_globals_is_not_dict(self): - template = {"Globals": "hello"} with self.assertRaises(InvalidGlobalsSectionException): Globals(template) def test_parse_should_error_if_globals_contains_unknown_types(self): - template = {"Globals": {"random_type": {"key": "value"}, "type1": {"key": "value"}}} with self.assertRaises(InvalidGlobalsSectionException): Globals(template) def test_parse_should_error_if_globals_contains_unknown_properties_of_known_type(self): - template = {"Globals": {"type1": {"unknown_property": "value"}}} with self.assertRaises(InvalidGlobalsSectionException): Globals(template) def test_parse_should_error_if_value_is_not_dictionary(self): - template = {"Globals": {"type1": "string value"}} with self.assertRaises(InvalidGlobalsSectionException): Globals(template) def test_parse_should_not_error_if_value_is_empty(self): - template = {"Globals": {"type1": {}}} # empty value globals = Globals(template) @@ -278,7 +268,6 @@ def test_parse_should_not_error_if_value_is_empty(self): self.assertEqual({}, parsed["prefix_type1"].global_properties) def test_init_without_globals_section_in_template(self): - template = {"a": "b"} global_obj = Globals(template) @@ -301,7 +290,6 @@ def test_del_section_with_no_globals_section_in_template(self): @patch.object(Globals, "_parse") def test_merge_must_actually_do_merge(self, parse_mock): - type1_mock = Mock() type2_mock = Mock() parse_mock.return_value = {"type1": type1_mock, "type2": type2_mock} @@ -320,7 +308,6 @@ def test_merge_must_actually_do_merge(self, parse_mock): @patch.object(Globals, "_parse") def test_merge_must_skip_unsupported_types(self, parse_mock): - type1_mock = Mock() parse_mock.return_value = {"type1": type1_mock} @@ -337,7 +324,6 @@ def test_merge_must_skip_unsupported_types(self, parse_mock): @patch.object(Globals, "_parse") def test_merge_must_skip_with_no_types(self, parse_mock): - parse_mock.return_value = {} local_properties = {"a": "b"} @@ -351,7 +337,6 @@ def test_merge_must_skip_with_no_types(self, parse_mock): self.assertEqual(expected, result) def test_merge_end_to_end_on_known_type1(self): - type = "prefix_type1" properties = {"prop1": "overridden value", "a": "b", "key": [1, 2, 3]} @@ -363,7 +348,6 @@ def test_merge_end_to_end_on_known_type1(self): self.assertEqual(expected, result) def test_merge_end_to_end_on_known_type2(self): - type = "prefix_type2" properties = {"a": "b", "key": [1, 2, 3]} @@ -380,7 +364,6 @@ def test_merge_end_to_end_on_known_type2(self): self.assertEqual(expected, result) def test_merge_end_to_end_unknown_type(self): - type = "some unknown type" properties = {"a": "b", "key": [1, 2, 3]} diff --git a/tests/plugins/globals/test_globals_plugin.py b/tests/plugins/globals/test_globals_plugin.py index 55e772332..2934dde64 100644 --- a/tests/plugins/globals/test_globals_plugin.py +++ b/tests/plugins/globals/test_globals_plugin.py @@ -1,10 +1,10 @@ from unittest import TestCase from unittest.mock import patch +from samtranslator.plugins.globals.globals import InvalidGlobalsSectionException +from samtranslator.plugins.globals.globals_plugin import GlobalsPlugin from samtranslator.public.exceptions import InvalidDocumentException from samtranslator.public.plugins import BasePlugin -from samtranslator.plugins.globals.globals_plugin import GlobalsPlugin -from samtranslator.plugins.globals.globals import InvalidGlobalsSectionException class TestGlobalsPlugin(TestCase): @@ -26,7 +26,6 @@ def test_plugin_must_be_instance_of_base_plugin_class(self): @patch("samtranslator.plugins.globals.globals_plugin.Globals") def test_on_before_transform_template_must_raise_on_invalid_globals_section(self, GlobalsMock): - id = "id" msg = "msg" template = {"foo": "bar"} diff --git a/tests/plugins/policies/test_policy_templates_plugin.py b/tests/plugins/policies/test_policy_templates_plugin.py index 373d7ea6a..3c9bcbae9 100644 --- a/tests/plugins/policies/test_policy_templates_plugin.py +++ b/tests/plugins/policies/test_policy_templates_plugin.py @@ -1,9 +1,9 @@ from unittest import TestCase -from unittest.mock import Mock, MagicMock, patch, call +from unittest.mock import MagicMock, Mock, call, patch -from samtranslator.plugins import BasePlugin -from samtranslator.model.resource_policies import PolicyTypes, PolicyEntry from samtranslator.model.exceptions import InvalidResourceException +from samtranslator.model.resource_policies import PolicyEntry, PolicyTypes +from samtranslator.plugins import BasePlugin from samtranslator.plugins.policies.policy_templates_plugin import PolicyTemplatesForResourcePlugin from samtranslator.policy_template_processor.exceptions import InsufficientParameterValues, InvalidParameterValues @@ -194,7 +194,6 @@ def test_on_before_transform_must_bubble_exception(self, function_policies_class self.assertEqual(resource_properties, {"Policies": {"MyTemplate1": {"Param1": "value1"}}}) def test_on_before_transform_resource_must_skip_unsupported_resources(self): - is_supported_mock = Mock() data_mock = Mock() diff --git a/tests/policy_template_processor/test_processor.py b/tests/policy_template_processor/test_processor.py index 4a6398596..0da4f95b6 100644 --- a/tests/policy_template_processor/test_processor.py +++ b/tests/policy_template_processor/test_processor.py @@ -1,13 +1,12 @@ +import json from unittest import TestCase -from unittest.mock import mock_open, Mock, patch +from unittest.mock import Mock, mock_open, patch import jsonschema -import json - from jsonschema.exceptions import ValidationError +from samtranslator.policy_template_processor.exceptions import TemplateNotFoundException from samtranslator.policy_template_processor.processor import PolicyTemplatesProcessor from samtranslator.policy_template_processor.template import Template -from samtranslator.policy_template_processor.exceptions import TemplateNotFoundException class TestPolicyTemplateProcessor(TestCase): @@ -219,7 +218,6 @@ def test_read_json_must_read_from_file(self, json_loads_mock): open_mock = mock_open() with patch("samtranslator.policy_template_processor.processor.open", open_mock): - result = PolicyTemplatesProcessor._read_json(filepath) self.assertEqual(result, json_return) diff --git a/tests/policy_template_processor/test_schema.py b/tests/policy_template_processor/test_schema.py index b19ee2496..f1eebce2d 100644 --- a/tests/policy_template_processor/test_schema.py +++ b/tests/policy_template_processor/test_schema.py @@ -1,7 +1,7 @@ -from samtranslator.policy_template_processor.processor import PolicyTemplatesProcessor +from unittest import TestCase from parameterized import parameterized -from unittest import TestCase +from samtranslator.policy_template_processor.processor import PolicyTemplatesProcessor class TestTemplates(object): @@ -114,12 +114,10 @@ class TestPolicyTemplateSchema(TestCase): # Grab all variables of the class TestTemplates @parameterized.expand([d for d in dir(TestTemplates) if not d.startswith("__")]) def test_schema(self, case): - failure_case = case.startswith("fail") template = getattr(TestTemplates, case) if failure_case: - with self.assertRaises(ValueError): PolicyTemplatesProcessor._is_valid_templates_dict(template) diff --git a/tests/policy_template_processor/test_template.py b/tests/policy_template_processor/test_template.py index 3bbf9fa69..6cdae1b50 100644 --- a/tests/policy_template_processor/test_template.py +++ b/tests/policy_template_processor/test_template.py @@ -1,13 +1,12 @@ from unittest import TestCase -from unittest.mock import Mock, patch, ANY +from unittest.mock import ANY, Mock, patch +from samtranslator.policy_template_processor.exceptions import InsufficientParameterValues, InvalidParameterValues from samtranslator.policy_template_processor.template import Template -from samtranslator.policy_template_processor.exceptions import InvalidParameterValues, InsufficientParameterValues class TestTemplateObject(TestCase): def test_init_must_check_for_existence_of_all_parameters(self): - template_name = "template_name" parameters = {} template_definition = {"key": "value"} @@ -94,17 +93,14 @@ def test_missing_parameter_values_must_raise_on_invalid_input(self): template.missing_parameter_values(parameter_values) def test_is_valid_parameter_values_must_work(self): - parameter_values = {"a": "b"} self.assertTrue(Template._is_valid_parameter_values(parameter_values)) def test_is_valid_parameter_values_must_fail_for_none_value(self): - parameter_values = None self.assertFalse(Template._is_valid_parameter_values(parameter_values)) def test_is_valid_parameter_values_must_fail_for_non_dict(self): - parameter_values = [1, 2, 3] self.assertFalse(Template._is_valid_parameter_values(parameter_values)) diff --git a/tests/ruff.toml b/tests/ruff.toml new file mode 100644 index 000000000..7a81d8467 --- /dev/null +++ b/tests/ruff.toml @@ -0,0 +1,23 @@ +# black formatter takes care of the line length +line-length = 999 + +# The code quality of tests can be a bit lower compared to samtranslator +select = [ + "E", # Pyflakes + "F", # Pyflakes + "PL", # pylint + "I", # isort + "ICN", # flake8-import-conventions + "PIE", # flake8-pie + "Q", # flake8-quotes + "TID", # flake8-tidy-imports + "RUF", # Ruff-specific rules +] + +[per-file-ignores] + +# The code quality of tests can be a bit lower: +"**/*.py" = [ + "S101", # Use of `assert` detected + "PLR", # pylint-refactor +] diff --git a/tests/schema/test_validate_schema.py b/tests/schema/test_validate_schema.py index 1ce7c3e8f..4796fe4fd 100644 --- a/tests/schema/test_validate_schema.py +++ b/tests/schema/test_validate_schema.py @@ -1,22 +1,19 @@ import copy -import json -import pytest -import os import itertools - +import json from pathlib import Path -from typing import Iterator from unittest import TestCase + +import pytest from jsonschema import validate from jsonschema.exceptions import ValidationError from jsonschema.validators import Draft4Validator from parameterized import parameterized - from samtranslator.yaml_helper import yaml_parse PROJECT_ROOT = Path(__file__).parent.parent.parent -SCHEMA = json.loads(PROJECT_ROOT.joinpath("samtranslator/schema/sam.schema.json").read_bytes()) +SCHEMA = json.loads(PROJECT_ROOT.joinpath("schema_source/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' @@ -38,6 +35,7 @@ "api_with_aws_iam_auth_overrides", # null for invokeRole "eventbridgerule", # missing required field 'Patterns' "self_managed_kafka_with_intrinsics", # 'EnableValue' is of type bool but defined as string + "documentdb_with_intrinsics", # 'EnableValue' is of type bool but defined as string "api_with_resource_policy_global", # 'ResourcePolicy CustomStatements' output expects a List "api_with_resource_policy", # 'ResourcePolicy CustomStatements' output expects a List "api_with_if_conditional_with_resource_policy", # 'ResourcePolicy CustomStatements' output expects a List @@ -64,10 +62,7 @@ def should_skip_test(s: str) -> bool: - for test in SKIPPED_TESTS: - if test in s: - return True - return False + return any(test in s for test in SKIPPED_TESTS) def get_all_test_templates(): @@ -146,20 +141,20 @@ def test_structure(self): 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"] + in UNIFIED_SCHEMA["definitions"]["schema_source__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"] + del sam_defs["schema_source__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": + if v["$ref"] != "#/definitions/schema_source__any_cfn_resource__Resource": assert v in unified_resources @parameterized.expand( diff --git a/tests/sdk/test_parameter.py b/tests/sdk/test_parameter.py index d8f24f3af..6a301544e 100644 --- a/tests/sdk/test_parameter.py +++ b/tests/sdk/test_parameter.py @@ -1,9 +1,8 @@ -from parameterized import parameterized, param - from unittest import TestCase -from samtranslator.sdk.parameter import SamParameterValues -from unittest.mock import patch, Mock +from unittest.mock import Mock, patch +from parameterized import param, parameterized +from samtranslator.sdk.parameter import SamParameterValues from samtranslator.translator.arn_generator import NoRegionFound diff --git a/tests/sdk/test_resource.py b/tests/sdk/test_resource.py index ee97e8394..e3db4f715 100644 --- a/tests/sdk/test_resource.py +++ b/tests/sdk/test_resource.py @@ -57,7 +57,6 @@ def test_contains_sam_resources(self): self.assertEqual(SamResourceType.SimpleTable.value, "AWS::Serverless::SimpleTable") def test_has_value_must_work_for_sam_types(self): - self.assertTrue(SamResourceType.has_value("AWS::Serverless::Function")) self.assertTrue(SamResourceType.has_value("AWS::Serverless::Api")) self.assertTrue(SamResourceType.has_value("AWS::Serverless::SimpleTable")) diff --git a/tests/sdk/test_template.py b/tests/sdk/test_template.py index 007478bef..59ff88487 100644 --- a/tests/sdk/test_template.py +++ b/tests/sdk/test_template.py @@ -1,12 +1,11 @@ from unittest import TestCase -from samtranslator.sdk.template import SamTemplate from samtranslator.sdk.resource import SamResource +from samtranslator.sdk.template import SamTemplate class TestSamTemplate(TestCase): def setUp(self): - self.template_dict = { "Properties": {"c": "d"}, "Metadata": {"a": "b"}, @@ -33,7 +32,6 @@ def test_iterate_must_yield_sam_resources_only(self): self.assertCountEqual(expected, actual) def test_iterate_must_filter_by_resource_type(self): - template = SamTemplate(self.template_dict) type = "AWS::Serverless::Function" diff --git a/tests/swagger/test_swagger.py b/tests/swagger/test_swagger.py index b41b777e0..4eef4905a 100644 --- a/tests/swagger/test_swagger.py +++ b/tests/swagger/test_swagger.py @@ -1,12 +1,12 @@ import copy - from unittest import TestCase from unittest.mock import Mock -from parameterized import parameterized, param -from samtranslator.swagger.swagger import SwaggerEditor +from parameterized import param, parameterized from samtranslator.model.exceptions import InvalidDocumentException, InvalidTemplateException +from samtranslator.swagger.swagger import SwaggerEditor from samtranslator.utils.py27hash_fix import Py27Dict + from tests.translator.test_translator import deep_sort_lists _X_INTEGRATION = "x-amazon-apigateway-integration" @@ -17,7 +17,6 @@ class TestSwaggerEditor_init(TestCase): def test_must_raise_on_invalid_swagger(self): - invalid_swagger = {"paths": {}} # Missing "Swagger" keyword with self.assertRaises(InvalidDocumentException): SwaggerEditor(invalid_swagger) @@ -144,7 +143,6 @@ def test_must_handle_bad_value_for_method(self): class TestSwaggerEditor_add_path(TestCase): def setUp(self): - self.original_swagger = { "swagger": "2.0", "paths": { @@ -163,7 +161,6 @@ def setUp(self): ] ) def test_must_add_new_path_and_method(self, path, method, case): - self.assertFalse(self.editor.has_path(path, method)) self.editor.add_path(path, method) @@ -187,7 +184,6 @@ def test_must_skip_existing_path(self): class TestSwaggerEditor_add_lambda_integration(TestCase): def setUp(self): - self.original_swagger = { "swagger": "2.0", "paths": { @@ -261,7 +257,6 @@ def test_must_add_new_integration_to_existing_path(self): self.assertEqual(expected, actual) def test_must_raise_on_existing_integration(self): - with self.assertRaises(InvalidDocumentException): self.editor.add_lambda_integration("/bar", "get", "integrationUri", Py27Dict(), Py27Dict()) @@ -291,13 +286,11 @@ def test_must_add_credentials_to_the_integration_overrides(self): class TestSwaggerEditor_iter_on_path(TestCase): def setUp(self): - self.original_swagger = {"swagger": "2.0", "paths": {"/foo": {}, "/bar": {}}} self.editor = SwaggerEditor(self.original_swagger) def test_must_iterate_on_paths(self): - expected = {"/foo", "/bar"} actual = set(list(self.editor.iter_on_path())) @@ -306,7 +299,6 @@ def test_must_iterate_on_paths(self): class TestSwaggerEditor_add_cors(TestCase): def setUp(self): - self.original_swagger = { "swagger": "2.0", "paths": { @@ -344,13 +336,11 @@ def test_must_skip_existing_path(self): self.assertEqual(expected, self.editor.swagger["paths"][path]["options"]) def test_must_fail_for_invalid_allowed_origin(self): - path = "/foo" with self.assertRaises(InvalidTemplateException): self.editor.add_cors(path, None, "headers", "methods") def test_must_work_for_optional_allowed_headers(self): - allowed_origins = "origins" allowed_headers = None # No Value allowed_methods = "methods" @@ -373,7 +363,6 @@ def test_must_work_for_optional_allowed_headers(self): ) def test_must_make_default_value_with_optional_allowed_methods(self): - allowed_origins = "origins" allowed_headers = "headers" allowed_methods = None # No Value @@ -632,7 +621,6 @@ def test_must_normalize(self, input, expected, msg): class TestSwaggerEditor_swagger_property(TestCase): def test_must_return_copy_of_swagger(self): - input = {"swagger": "2.0", "paths": {}} editor = SwaggerEditor(input) @@ -671,13 +659,11 @@ def test_must_fail_for_invalid_values(self, data, case): class TestSwaggerEditor_add_models(TestCase): def setUp(self): - self.original_swagger = {"swagger": "2.0", "paths": {"/foo": {}}} self.editor = SwaggerEditor(self.original_swagger) def test_must_add_definitions(self): - models = {"User": {"type": "object", "properties": {"username": {"type": "string"}}}} self.editor.add_models(models) @@ -687,7 +673,6 @@ def test_must_add_definitions(self): self.assertEqual(expected, self.editor.swagger["definitions"]) def test_must_fail_without_type_in_model(self): - models = {"User": {"properties": {"username": {"type": "string"}}}} with self.assertRaises(InvalidDocumentException): @@ -696,7 +681,6 @@ def test_must_fail_without_type_in_model(self): class TestSwaggerEditor_add_request_model_to_method(TestCase): def setUp(self): - self.original_swagger = { "swagger": "2.0", "paths": {"/foo": {"get": {"x-amazon-apigateway-integration": {"test": "must have integration"}}}}, @@ -705,7 +689,6 @@ def setUp(self): self.editor = SwaggerEditor(self.original_swagger) def test_must_add_body_parameter_to_method_with_required_true(self): - model = {"Model": "User", "Required": True} self.editor.add_request_model_to_method("/foo", "get", model) @@ -715,7 +698,6 @@ def test_must_add_body_parameter_to_method_with_required_true(self): self.assertEqual(expected, self.editor.swagger["paths"]["/foo"]["get"]["parameters"]) def test_must_add_body_parameter_to_method_with_required_false(self): - model = {"Model": "User", "Required": False} self.editor.add_request_model_to_method("/foo", "get", model) @@ -725,7 +707,6 @@ def test_must_add_body_parameter_to_method_with_required_false(self): self.assertEqual(expected, self.editor.swagger["paths"]["/foo"]["get"]["parameters"]) def test_must_add_body_parameter_to_existing_method_parameters(self): - original_swagger = { "swagger": "2.0", "paths": { @@ -752,7 +733,6 @@ def test_must_add_body_parameter_to_existing_method_parameters(self): self.assertEqual(expected, editor.swagger["paths"]["/foo"]["get"]["parameters"]) def test_must_not_add_body_parameter_to_method_without_integration(self): - original_swagger = {"swagger": "2.0", "paths": {"/foo": {"get": {}}}} editor = SwaggerEditor(original_swagger) @@ -766,7 +746,6 @@ def test_must_not_add_body_parameter_to_method_without_integration(self): self.assertEqual(expected, editor.swagger["paths"]["/foo"]["get"]) def test_must_add_body_parameter_to_method_without_required(self): - model = {"Model": "User"} self.editor.add_request_model_to_method("/foo", "get", model) @@ -776,7 +755,6 @@ def test_must_add_body_parameter_to_method_without_required(self): self.assertEqual(expected, self.editor.swagger["paths"]["/foo"]["get"]["parameters"]) def test_must_add_body_parameter_to_method_openapi_without_required(self): - original_openapi = { "openapi": "3.0.1", "paths": {"/foo": {"get": {"x-amazon-apigateway-integration": {"test": "must have integration"}}}}, @@ -796,7 +774,6 @@ def test_must_add_body_parameter_to_method_openapi_without_required(self): self.assertEqual(expected, editor.swagger["paths"]["/foo"]["get"]["requestBody"]) def test_must_add_body_parameter_to_method_openapi_required_true(self): - original_openapi = { "openapi": "3.0.1", "paths": {"/foo": {"get": {"x-amazon-apigateway-integration": {"test": "must have integration"}}}}, @@ -815,7 +792,6 @@ def test_must_add_body_parameter_to_method_openapi_required_true(self): class TestSwaggerEditor_add_request_validator_to_method(TestCase): def setUp(self): - self.original_swagger = { "swagger": "2.0", "paths": { @@ -831,7 +807,6 @@ def setUp(self): self.editor = SwaggerEditor(self.original_swagger) def test_must_add_validator_parameters_to_method_with_validators_true(self): - self.editor.add_request_validator_to_method("/foo", "get", True, True) expected = {"body-and-params": {"validateRequestBody": True, "validateRequestParameters": True}} @@ -841,7 +816,6 @@ def test_must_add_validator_parameters_to_method_with_validators_true(self): ) def test_must_add_validator_parameters_to_method_with_validators_false(self): - self.editor.add_request_validator_to_method("/foo", "get", False, False) expected = {"no-validation": {"validateRequestBody": False, "validateRequestParameters": False}} @@ -852,7 +826,6 @@ def test_must_add_validator_parameters_to_method_with_validators_false(self): ) def test_must_add_validator_parameters_to_method_with_validators_mixing(self): - self.editor.add_request_validator_to_method("/foo", "get", True, False) expected = {"body-only": {"validateRequestBody": True, "validateRequestParameters": False}} @@ -914,7 +887,6 @@ def test_must_return_validator_names(self, validate_body, validate_request, norm self.assertEqual(normalized_validator_name_conversion, normalized_name) def test_must_add_validator_parameters_to_method_with_validators_false_by_default(self): - self.editor.add_request_validator_to_method("/foo", "get") expected = {"no-validation": {"validateRequestBody": False, "validateRequestParameters": False}} @@ -927,7 +899,6 @@ def test_must_add_validator_parameters_to_method_with_validators_false_by_defaul class TestSwaggerEditor_add_auth(TestCase): def setUp(self): - self.original_swagger = { "swagger": "2.0", "paths": { @@ -1011,7 +982,6 @@ def setUp(self): self.editor = SwaggerEditor(self.original_swagger) def test_must_add_parameter_to_method_with_required_and_caching_true(self): - parameters = [{"Name": "method.request.header.Authorization", "Required": True, "Caching": True}] self.editor.add_request_parameters_to_method("/foo", "get", parameters) @@ -1024,7 +994,6 @@ def test_must_add_parameter_to_method_with_required_and_caching_true(self): self.assertEqual(["method.request.header.Authorization"], method_swagger[_X_INTEGRATION]["cacheKeyParameters"]) def test_must_add_parameter_to_method_with_required_and_caching_false(self): - parameters = [{"Name": "method.request.header.Authorization", "Required": False, "Caching": False}] self.editor.add_request_parameters_to_method("/foo", "get", parameters) @@ -1037,7 +1006,6 @@ def test_must_add_parameter_to_method_with_required_and_caching_false(self): self.assertNotIn("cacheKeyParameters", method_swagger[_X_INTEGRATION].keys()) def test_must_add_parameter_to_method_with_existing_parameters(self): - original_swagger = { "swagger": "2.0", "paths": { @@ -1082,13 +1050,11 @@ def test_must_not_add_parameter_to_method_without_integration(self): class TestSwaggerEditor_add_resource_policy(TestCase): def setUp(self): - self.original_swagger = {"swagger": "2.0", "paths": {"/foo": {"get": {}, "put": {}}}} self.editor = SwaggerEditor(self.original_swagger) def test_must_add_custom_statements(self): - resourcePolicy = { "CustomStatements": [ {"Action": "execute-api:Invoke", "Resource": ["execute-api:/*/*/*"]}, @@ -1109,7 +1075,6 @@ def test_must_add_custom_statements(self): self.assertEqual(deep_sort_lists(expected), deep_sort_lists(self.editor.swagger[_X_POLICY])) def test_must_add_fn_if_custom_statements(self): - resourcePolicy = { "CustomStatements": { "Fn::If": [ @@ -1157,7 +1122,6 @@ def test_must_add_iam_allow(self): self.assertEqual(deep_sort_lists(expected), deep_sort_lists(self.editor.swagger[_X_POLICY])) def test_must_add_iam_deny(self): - resourcePolicy = {"AwsAccountBlacklist": ["123456"]} self.editor.add_resource_policy(resourcePolicy, "/foo", "prod") @@ -1178,7 +1142,6 @@ def test_must_add_iam_deny(self): self.assertEqual(deep_sort_lists(expected), deep_sort_lists(self.editor.swagger[_X_POLICY])) def test_must_add_ip_allow(self): - resourcePolicy = {"IpRangeWhitelist": ["1.2.3.4"]} self.editor.add_resource_policy(resourcePolicy, "/foo", "prod") @@ -1211,7 +1174,6 @@ def test_must_add_ip_allow(self): self.assertEqual(deep_sort_lists(expected), deep_sort_lists(self.editor.swagger[_X_POLICY])) def test_must_add_ip_deny(self): - resourcePolicy = {"IpRangeBlacklist": ["1.2.3.4"]} self.editor.add_resource_policy(resourcePolicy, "/foo", "prod") @@ -1244,7 +1206,6 @@ def test_must_add_ip_deny(self): self.assertEqual(deep_sort_lists(expected), deep_sort_lists(self.editor.swagger[_X_POLICY])) def test_must_add_vpc_allow_string_only(self): - resourcePolicy = { "SourceVpcWhitelist": ["vpc-123", "vpce-345"], } @@ -1296,7 +1257,6 @@ def test_must_fail_when_vpc_whitelist_is_non_string(self, resource_policy_key): self.editor.add_resource_policy(resource_policy, "/foo", "prod") def test_must_add_vpc_deny_string_only(self): - resourcePolicy = { "SourceVpcBlacklist": ["vpc-123"], } @@ -1331,7 +1291,6 @@ def test_must_add_vpc_deny_string_only(self): self.assertEqual(deep_sort_lists(expected), deep_sort_lists(self.editor.swagger[_X_POLICY])) def test_must_add_vpc_allow_string_and_instrinic(self): - resourcePolicy = { "SourceVpcWhitelist": ["vpc-123", "vpce-345", "vpc-678"], "IntrinsicVpcWhitelist": ["Mock-Allowlist-A", "Mock-Allowlist-B"], @@ -1413,7 +1372,6 @@ def test_must_add_vpc_deny_string_and_intrinsic(self): self.assertEqual(deep_sort_lists(expected), deep_sort_lists(self.editor.swagger[_X_POLICY])) def test_must_not_add_non_valid_string_list(self): - resourcePolicy = { "SourceVpcBlacklist": ["non-valid-endpoint-name-a", "non-valid-endpoint-name-b"], "SourceVpcWhitelist": ["non-valid-endpoint-name-1", "non-valid-endpoint-name-2"], @@ -1425,7 +1383,6 @@ def test_must_not_add_non_valid_string_list(self): self.assertEqual(deep_sort_lists(expected), deep_sort_lists(self.editor.swagger[_X_POLICY])) def test_must_add_vpc_mixed_lists(self): - resourcePolicy = { "SourceVpcWhitelist": ["vpc-123", "vpc-abc", "vpce-123", "vpce-ghi"], "IntrinsicVpcWhitelist": ["Mock-Allowlist-A", "Mock-Allowlist-B"], @@ -1517,7 +1474,7 @@ def test_must_add_iam_allow_and_custom(self): class TestSwaggerEditor_add_authorization_scopes(TestCase): def setUp(self): - self.api = api = { + self.api = { "Auth": { "Authorizers": {"MyOtherCognitoAuth": {}, "MyCognitoAuth": {}}, "DefaultAuthorizer": "MyCognitoAuth", diff --git a/tests/test_intrinsics.py b/tests/test_intrinsics.py index 7639fedb7..a54230952 100644 --- a/tests/test_intrinsics.py +++ b/tests/test_intrinsics.py @@ -1,20 +1,19 @@ -from parameterized import parameterized from unittest import TestCase +from parameterized import parameterized from samtranslator.model.intrinsics import ( + get_logical_id_from_intrinsic, is_intrinsic, - make_shorthand, is_intrinsic_if, - validate_intrinsic_if_items, is_intrinsic_no_value, - get_logical_id_from_intrinsic, + make_shorthand, + validate_intrinsic_if_items, ) class TestIntrinsics(TestCase): @parameterized.expand(["Ref", "Condition", "Fn::foo", "Fn::sub", "Fn::something"]) def test_is_intrinsic_must_detect_intrinsics(self, intrinsic_name): - input = {intrinsic_name: ["some value"]} self.assertTrue(is_intrinsic(input)) diff --git a/tests/test_model.py b/tests/test_model.py index 776a7d704..b46aa3db0 100644 --- a/tests/test_model.py +++ b/tests/test_model.py @@ -1,10 +1,11 @@ -import pytest - +from typing import Any, List from unittest import TestCase -from unittest.mock import Mock, call, ANY -from samtranslator.model.exceptions import InvalidResourceException -from samtranslator.model import PropertyType, Resource, SamResourceMacro, ResourceTypeResolver +from unittest.mock import Mock + +import pytest from samtranslator.intrinsics.resource_refs import SupportedResourceReferences +from samtranslator.model import PropertyType, Resource, ResourceTypeResolver, SamResourceMacro +from samtranslator.model.exceptions import InvalidResourceException from samtranslator.plugins import LifeCycleEvents @@ -129,8 +130,7 @@ def test_to_dict(self): self.assertEqual(r.to_dict(), dict_with_attributes2) def test_invalid_attr(self): - - with pytest.raises(KeyError) as ex: + with pytest.raises(KeyError): # Unsupported attributes cannot be added to the resource self.MyResource("id", attributes={"foo": "bar"}) @@ -220,6 +220,9 @@ class NewSamResource(SamResourceMacro): property_types = {} referable_properties = {"prop1": "resource_type1", "prop2": "resource_type2", "prop3": "resource_type3"} + def to_cloudformation(self, **kwargs: Any) -> List[Any]: + return [] + sam_resource = NewSamResource("SamLogicalId") cfn_resources = [self.ResourceType1("logicalId1"), self.ResourceType2("logicalId2")] @@ -241,6 +244,9 @@ class NewSamResource(SamResourceMacro): property_types = {} referable_properties = {"prop1": "resource_type1", "prop2": "resource_type2", "prop3": "resource_type3"} + def to_cloudformation(self, **kwargs: Any) -> List[Any]: + return [] + sam_resource1 = NewSamResource("SamLogicalId1") sam_resource2 = NewSamResource("SamLogicalId2") @@ -267,6 +273,9 @@ class NewSamResource(SamResourceMacro): property_types = {} referable_properties = {"prop1": "foo", "prop2": "bar"} + def to_cloudformation(self, **kwargs: Any) -> List[Any]: + return [] + sam_resource = NewSamResource("SamLogicalId") # None of the CFN resource types are in the referable list @@ -282,6 +291,9 @@ class NewSamResource(SamResourceMacro): property_types = {} referable_properties = {} + def to_cloudformation(self, **kwargs: Any) -> List[Any]: + return [] + sam_resource = NewSamResource("SamLogicalId") cfn_resources = [self.ResourceType1("logicalId1"), self.ResourceType2("logicalId2")] @@ -296,6 +308,9 @@ class NewSamResource(SamResourceMacro): property_types = {} referable_properties = {"prop1": "resource_type1"} + def to_cloudformation(self, **kwargs: Any) -> List[Any]: + return [] + sam_resource = NewSamResource("SamLogicalId") cfn_resources = [] @@ -310,6 +325,9 @@ class NewSamResource(SamResourceMacro): property_types = {} referable_properties = {"prop1": "resource_type1"} + def to_cloudformation(self, **kwargs: Any) -> List[Any]: + return [] + sam_resource = NewSamResource("SamLogicalId") cfn_resources = [self.ResourceType1("logicalId1")] diff --git a/tests/test_plugins.py b/tests/test_plugins.py index 157286921..cb8f90d20 100644 --- a/tests/test_plugins.py +++ b/tests/test_plugins.py @@ -1,14 +1,13 @@ from enum import Enum +from unittest import TestCase +from unittest.mock import Mock, call + from samtranslator.plugins import BasePlugin, LifeCycleEvents from samtranslator.plugins.sam_plugins import SamPlugins -from unittest import TestCase -from unittest.mock import Mock, patch, call - class TestSamPluginsRegistration(TestCase): def setUp(self): - # Setup the plugin to be a "subclass" of the BasePlugin self.mock_plugin_name = "mock_plugin" self.mock_plugin = Mock(spec=BasePlugin) @@ -17,20 +16,17 @@ def setUp(self): self.sam_plugins = SamPlugins() def test_register_must_work(self): - self.sam_plugins.register(self.mock_plugin) self.assertEqual(self.mock_plugin, self.sam_plugins._get(self.mock_plugin_name)) def test_register_must_raise_on_duplicate_plugin(self): - self.sam_plugins.register(self.mock_plugin) with self.assertRaises(ValueError): self.sam_plugins.register(self.mock_plugin) def test_register_must_raise_on_invalid_plugin_type(self): - # Plugin which is not an instance of BaseClass bad_plugin = Mock() bad_plugin.name = "some name" @@ -39,7 +35,6 @@ def test_register_must_raise_on_invalid_plugin_type(self): self.sam_plugins.register(bad_plugin) def test_register_must_append_plugins_to_end(self): - plugin1 = _make_mock_plugin("plugin1") plugin2 = _make_mock_plugin("plugin2") plugin3 = _make_mock_plugin("plugin3") @@ -53,7 +48,6 @@ def test_register_must_append_plugins_to_end(self): self.assertEqual(expected, self.sam_plugins._plugins) def test_must_register_plugins_list_on_initialization(self): - plugin1 = _make_mock_plugin("plugin1") plugin2 = _make_mock_plugin("plugin2") @@ -84,7 +78,6 @@ def test_is_registered_must_find_registered_plugins(self): self.assertTrue(self.sam_plugins.is_registered(self.mock_plugin_name)) def test_is_registered_must_return_false_when_no_plugins_registered(self): - # No Plugins are registered self.assertFalse(self.sam_plugins.is_registered(self.mock_plugin_name)) @@ -94,7 +87,6 @@ def test_is_registered_must_return_false_for_non_existent_plugins(self): self.assertFalse(self.sam_plugins.is_registered("some plugin name")) def test_get_must_return_a_registered_plugin(self): - plugin1 = _make_mock_plugin("plugin1") plugin2 = _make_mock_plugin("plugin2") @@ -105,7 +97,6 @@ def test_get_must_return_a_registered_plugin(self): self.assertEqual(plugin2, self.sam_plugins._get(plugin2.name)) def test_get_must_handle_no_registered_plugins(self): - # NO plugins registered self.assertIsNone(self.sam_plugins._get("some plugin")) @@ -127,7 +118,6 @@ def setUp(self): self.mock_lifecycle_events.my_event = self.my_event def test_act_must_invoke_correct_hook_method(self): - # Setup the plugin to return a mock when the "on_" method is invoked plugin = _make_mock_plugin("plugin") hook_method = Mock() @@ -145,7 +135,6 @@ def test_act_must_invoke_correct_hook_method(self): hook_method.assert_called_once_with(arg1, arg2, kwargs1=kwargs1, kwargs2=kwargs2) def test_act_must_invoke_hook_on_all_plugins(self): - # Create three plugins, and setup hook methods on it plugin1 = _make_mock_plugin("plugin1") setattr(plugin1, "on_" + self.my_event.name, Mock()) @@ -170,7 +159,6 @@ def test_act_must_invoke_hook_on_all_plugins(self): plugin3.on_my_event.assert_called_once_with(arg1, arg2, kwargs1=kwargs1, kwargs2=kwargs2) def test_act_must_invoke_plugins_in_sequence(self): - # Create three plugins, and setup hook methods on it plugin1 = _make_mock_plugin("plugin1") setattr(plugin1, "on_" + self.my_event.name, Mock()) @@ -197,7 +185,6 @@ def test_act_must_invoke_plugins_in_sequence(self): parent_mock.assert_has_calls([call.plugin1_hook(), call.plugin2_hook(), call.plugin3_hook()]) def test_act_must_skip_if_no_plugins_are_registered(self): - # Create three plugins, and setup hook methods on it plugin1 = _make_mock_plugin("plugin1") setattr(plugin1, "on_" + self.my_event.name, Mock()) @@ -210,12 +197,10 @@ def test_act_must_skip_if_no_plugins_are_registered(self): plugin1.on_my_event.assert_not_called() def test_act_must_fail_on_invalid_event_type_string(self): - with self.assertRaises(ValueError): self.sam_plugins.act("some event") def test_act_must_fail_on_invalid_event_type_object(self): - with self.assertRaises(ValueError): self.sam_plugins.act(Mock()) @@ -227,10 +212,9 @@ class SomeEnum(Enum): self.sam_plugins.act(SomeEnum.A) def test_act_must_fail_on_non_existent_hook_method(self): - # Create a plugin but setup hook method with wrong name plugin1 = _make_mock_plugin("plugin1") - setattr(plugin1, "on_unknown_event", Mock()) + plugin1.on_unknown_event = Mock() self.sam_plugins.register(plugin1) with self.assertRaises(NameError): @@ -239,7 +223,6 @@ def test_act_must_fail_on_non_existent_hook_method(self): plugin1.on_unknown_event.assert_not_called() def test_act_must_raise_exceptions_raised_by_plugins(self): - # Create a plugin but setup hook method with wrong name plugin1 = _make_mock_plugin("plugin1") setattr(plugin1, "on_" + self.my_event.name, Mock()) @@ -292,12 +275,10 @@ class Yoyoyo(BasePlugin): class TestBasePlugin(TestCase): def test_initialization_should_set_name(self): - plugin = Yoyoyo() self.assertEqual("Yoyoyo", plugin.name) def test_initialization_should_set_custom_name(self): - plugin = Yoyoyo("custom-name") self.assertEqual("custom-name", plugin.name) diff --git a/tests/test_types.py b/tests/test_types.py index c995e0dba..ecaa3bb54 100644 --- a/tests/test_types.py +++ b/tests/test_types.py @@ -1,6 +1,5 @@ import pytest - -from samtranslator.model.types import is_type, list_of, dict_of, one_of +from samtranslator.model.types import dict_of, is_type, list_of, one_of class DummyType(object): diff --git a/tests/translator/input/all_policy_templates.yaml b/tests/translator/input/all_policy_templates.yaml index 05595dd71..ca3fb207a 100644 --- a/tests/translator/input/all_policy_templates.yaml +++ b/tests/translator/input/all_policy_templates.yaml @@ -174,3 +174,6 @@ Resources: - Route53ChangeResourceRecordSetsPolicy: HostedZoneId: test + + - SSMParameterWithSlashPrefixReadPolicy: + ParameterName: /name diff --git a/tests/translator/input/basic_layer.yaml b/tests/translator/input/basic_layer.yaml index 5ed84d426..cbe0c8b34 100644 --- a/tests/translator/input/basic_layer.yaml +++ b/tests/translator/input/basic_layer.yaml @@ -31,8 +31,7 @@ Resources: ContentUri: s3://sam-demo-bucket/layer.zip Description: Starter Lambda Layer CompatibleRuntimes: - - python3.6 - - python2.7 + - python3.9 LicenseInfo: License information RetentionPolicy: Retain diff --git a/tests/translator/input/connector_api_to_multiple_function.yaml b/tests/translator/input/connector_api_to_multiple_function.yaml new file mode 100644 index 000000000..030f72321 --- /dev/null +++ b/tests/translator/input/connector_api_to_multiple_function.yaml @@ -0,0 +1,52 @@ +Resources: + MyServerlessApi: + Type: AWS::Serverless::Api + Properties: + StageName: Prod + + 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)); + }; + + MyConnectorServerlessApiToLambda: + Type: AWS::Serverless::Connector + Properties: + Source: + Id: MyServerlessApi + Destination: + - Id: MyFunction + - Id: MyServerlessFunction + Permissions: + - Write diff --git a/tests/translator/input/connector_depends_on_attribute.yaml b/tests/translator/input/connector_depends_on_attribute.yaml new file mode 100644 index 000000000..3ff1f3d9e --- /dev/null +++ b/tests/translator/input/connector_depends_on_attribute.yaml @@ -0,0 +1,28 @@ +Resources: + MyFunction: + Type: AWS::Serverless::Function + Properties: + Runtime: python3.9 + InlineCode: foo + Handler: foo + + MyOtherFunction: + Type: AWS::Serverless::Function + Properties: + Runtime: python3.9 + InlineCode: foo + Handler: foo + + MyConnectors: + Type: AWS::Serverless::Connector + DependsOn: SomeTable + Properties: + Source: + Id: MyFunction + Destination: + Id: MyOtherFunction + Permissions: + - Write + + SomeTable: + Type: AWS::Serverless::SimpleTable diff --git a/tests/translator/input/connector_function_to_location.yaml b/tests/translator/input/connector_function_to_location.yaml new file mode 100644 index 000000000..6256e6a58 --- /dev/null +++ b/tests/translator/input/connector_function_to_location.yaml @@ -0,0 +1,38 @@ +Resources: + 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)); + }; + + MyPlace: + Type: AWS::Location::PlaceIndex + Properties: + DataSource: Here + IndexName: MyPlaceIndex + + MyConnector: + Type: AWS::Serverless::Connector + Properties: + Source: + Id: MyFunction + Destination: + Arn: !Sub arn:${AWS::Partition}:geo:us-east-1:123123123123:place-index/explore.place + Type: AWS::Location::PlaceIndex + Permissions: + - Read + + MyConnectorWithId: + Type: AWS::Serverless::Connector + Properties: + Source: + Id: MyFunction + Destination: + Id: MyPlace + Permissions: + - Read diff --git a/tests/translator/input/connector_function_to_multiple_s3.yaml b/tests/translator/input/connector_function_to_multiple_s3.yaml new file mode 100644 index 000000000..e101a3093 --- /dev/null +++ b/tests/translator/input/connector_function_to_multiple_s3.yaml @@ -0,0 +1,30 @@ +Resources: + 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)); + }; + + MyBucket: + Type: AWS::S3::Bucket + + MyBucket2: + Type: AWS::S3::Bucket + + MyConnector: + Type: AWS::Serverless::Connector + Properties: + Source: + Id: MyFunction + Destination: + - Id: MyBucket + - Type: AWS::S3::Bucket + Arn: !GetAtt MyBucket2.Arn + Permissions: + - Read + - Write diff --git a/tests/translator/input/connector_mix_destination.yaml b/tests/translator/input/connector_mix_destination.yaml new file mode 100644 index 000000000..99f192562 --- /dev/null +++ b/tests/translator/input/connector_mix_destination.yaml @@ -0,0 +1,90 @@ +Resources: + TriggerFunction: + Type: AWS::Serverless::Function + Properties: + Runtime: nodejs14.x + Handler: index.handler + Timeout: 10 # in case eb has delay + InlineCode: | + const AWS = require('aws-sdk'); + + exports.handler = async (event) => { + const eb = new AWS.EventBridge(); + const response = await eb.putEvents({ + Entries: [{ + Source: process.env.EVENT_SOURCE, + Detail: "{}", + DetailType: "Test", + }] + }).promise(); + + const sqs = new AWS.SQS(); + const data = await sqs.getQueueAttributes({ + QueueUrl: process.env.QUEUE_URL, + AttributeNames: ['ApproximateNumberOfMessages'] + }).promise(); + + if (data.Attributes.ApproximateNumberOfMessages < 2) { + throw 'Not enough messages in the queue!'; + } + }; + Environment: + Variables: + QUEUE_URL: !Ref VerificationQueue + EVENT_SOURCE: !Sub '${AWS::StackName}-test-event' + Policies: + - EventBridgePutEventsPolicy: + EventBusName: default + - SQSPollerPolicy: + QueueName: !GetAtt VerificationQueue.QueueName + + EventRule: + Type: AWS::Events::Rule + Properties: + Description: !Sub 'EventRule-${AWS::StackName}' + EventPattern: + source: + - !Sub '${AWS::StackName}-test-event' + Targets: + - Arn: !GetAtt Function.Arn + Id: Target + - Arn: !GetAtt VerificationQueue.Arn + Id: Target2 + + Function: + Type: AWS::Serverless::Function + Properties: + Runtime: nodejs14.x + Handler: index.handler + InlineCode: | + const AWS = require('aws-sdk'); + + exports.handler = async (event) => { + const sqs = new AWS.SQS(); + await sqs.sendMessage({ + QueueUrl: process.env.QUEUE_URL, + MessageBody: "test" + }).promise(); + }; + Environment: + Variables: + QUEUE_URL: !Ref VerificationQueue + Policies: + - SQSSendMessagePolicy: + QueueName: !GetAtt VerificationQueue.QueueName + + VerificationQueue: + Type: AWS::SQS::Queue + + MyConnector: + Type: AWS::Serverless::Connector + Properties: + Source: + Id: EventRule + Destination: + - Id: Function + - Id: VerificationQueue + Permissions: + - Write +Metadata: + SamTransformTest: true diff --git a/tests/translator/input/connector_resource_attributes.yaml b/tests/translator/input/connector_resource_attributes.yaml new file mode 100644 index 000000000..d212cf247 --- /dev/null +++ b/tests/translator/input/connector_resource_attributes.yaml @@ -0,0 +1,40 @@ +Parameters: + Param: + Type: String + AllowedValues: + - test1 + - test2 +Conditions: + Cond: + Fn::Equals: + - !Ref Param + - test1 +Resources: + MyFunction: + Type: AWS::Serverless::Function + Properties: + Runtime: python3.9 + InlineCode: foo + Handler: foo + + MyOtherFunction: + Type: AWS::Serverless::Function + Properties: + Runtime: python3.9 + InlineCode: foo + Handler: foo + + MyConnectors: + Type: AWS::Serverless::Connector + DeletionPolicy: Retain + UpdateReplacePolicy: Retain + Metadata: + foo: bar + Condition: Cond + Properties: + Source: + Id: MyFunction + Destination: + Id: MyOtherFunction + Permissions: + - Write diff --git a/tests/translator/input/connector_rule_to_multiple_sns.yaml b/tests/translator/input/connector_rule_to_multiple_sns.yaml new file mode 100644 index 000000000..1bcb8d9ba --- /dev/null +++ b/tests/translator/input/connector_rule_to_multiple_sns.yaml @@ -0,0 +1,37 @@ +Resources: + MyNewEventsRule: + Type: AWS::Events::Rule + Properties: + Name: mynewabc + EventPattern: + source: + - aws.ec2 + State: ENABLED + + MyRuleRole: + Type: AWS::IAM::Role + Properties: + AssumeRolePolicyDocument: + Statement: + - Effect: Allow + Principal: + Service: events.amazonaws.com + Action: sts:AssumeRole + + MySNSTopic: + Type: AWS::SNS::Topic + + MySNSTopic2: + Type: AWS::SNS::Topic + + MyConnector: + Type: AWS::Serverless::Connector + Properties: + Source: + Id: MyNewEventsRule + Destination: + - Id: MySNSTopic + - Type: AWS::SNS::Topic + Arn: !Ref MySNSTopic2 + Permissions: + - Write diff --git a/tests/translator/input/connector_sqs_to_multiple_function.yaml b/tests/translator/input/connector_sqs_to_multiple_function.yaml new file mode 100644 index 000000000..ff03cc7c4 --- /dev/null +++ b/tests/translator/input/connector_sqs_to_multiple_function.yaml @@ -0,0 +1,80 @@ +Resources: + Queue: + Type: AWS::SQS::Queue + + InvokedFunction: + Type: AWS::Serverless::Function + Properties: + Runtime: nodejs14.x + Handler: index.handler + InlineCode: | + const AWS = require('aws-sdk'); + exports.handler = async (event) => { + const sqs = new AWS.SQS(); + await sqs.sendMessage({ + QueueUrl: process.env.VERIFICATION_QUEUE_URL, + MessageBody: "test" + }).promise(); + }; + Environment: + Variables: + VERIFICATION_QUEUE_URL: !Ref VerificationQueue + Policies: + - SQSSendMessagePolicy: + QueueName: !GetAtt VerificationQueue.QueueName + + InvokedFunction2: + Type: AWS::Serverless::Function + Properties: + Runtime: nodejs14.x + Handler: index.handler + InlineCode: | + const AWS = require('aws-sdk'); + exports.handler = async (event) => { + const sqs = new AWS.SQS(); + await sqs.sendMessage({ + QueueUrl: process.env.VERIFICATION_QUEUE_URL, + MessageBody: "test" + }).promise(); + }; + Environment: + Variables: + VERIFICATION_QUEUE_URL: !Ref VerificationQueue + Policies: + - SQSSendMessagePolicy: + QueueName: !GetAtt VerificationQueue.QueueName + + SQSEventSourceMapping: + Type: AWS::Lambda::EventSourceMapping + Properties: + FunctionName: !Ref InvokedFunction + EventSourceArn: + Fn::GetAtt: + - Queue + - Arn + BatchSize: 10 + + SQSEventSourceMapping2: + Type: AWS::Lambda::EventSourceMapping + Properties: + FunctionName: !Ref InvokedFunction2 + EventSourceArn: + Fn::GetAtt: + - Queue + - Arn + BatchSize: 10 + + VerificationQueue: + Type: AWS::SQS::Queue + + Connector: + Type: AWS::Serverless::Connector + Properties: + Source: + Id: Queue + Destination: + - Id: InvokedFunction + - Id: InvokedFunction2 + Permissions: + - Read + - Write diff --git a/tests/translator/input/documentdb_with_intrinsics.yaml b/tests/translator/input/documentdb_with_intrinsics.yaml new file mode 100644 index 000000000..b086c47d5 --- /dev/null +++ b/tests/translator/input/documentdb_with_intrinsics.yaml @@ -0,0 +1,33 @@ +%YAML 1.1 +--- +Parameters: + BatchSizeValue: + Type: Number + Default: 100 + + EnableValue: + Type: String + Default: true + +Resources: + DocumentDBFunction: + Type: AWS::Serverless::Function + Properties: + CodeUri: s3://sam-app-test-156327056618/lambda-function.zip + Handler: lambda_function.lambda_handler + Runtime: python3.9 + Events: + MyDocumentDBEvent: + Type: DocumentDB + Properties: + Enabled: + Ref: EnableValue + BatchSize: + Ref: BatchSizeValue + Cluster: !Sub arn:${AWS::Partition}:rds:us-east-1:156327056618:cluster:docdb-2022-11-08-00-10-05r + SourceAccessConfigurations: + - Type: BASIC_AUTH + URI: !Sub arn:${AWS::Partition}:secretsmanager:us-east-1:156327056618:secret:abc-sy7Vjx + DatabaseName: db1 + CollectionName: collection1 + FullDocument: UpdateLookup diff --git a/tests/translator/input/embedded_connector_function_to_multi_dest.yaml b/tests/translator/input/embedded_connector_function_to_multi_dest.yaml new file mode 100644 index 000000000..e478f3e2e --- /dev/null +++ b/tests/translator/input/embedded_connector_function_to_multi_dest.yaml @@ -0,0 +1,25 @@ +Resources: + MyServerlessFunction: + Type: AWS::Serverless::Function + Connectors: + MixedDestConnector: + Properties: + Destination: + - Id: MyBucket + - Id: MyQueue + 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)); + }; + + MyBucket: + Type: AWS::S3::Bucket + MyQueue: + Type: AWS::SQS::Queue diff --git a/tests/translator/input/embedded_connectors_depends_on_attribute.yaml b/tests/translator/input/embedded_connectors_depends_on_attribute.yaml new file mode 100644 index 000000000..89d17475f --- /dev/null +++ b/tests/translator/input/embedded_connectors_depends_on_attribute.yaml @@ -0,0 +1,25 @@ +Resources: + MyFunction: + Connectors: + MyConnector: + DependsOn: SomeTable + Properties: + Destination: + Id: MyOtherFunction + Permissions: + - Write + Type: AWS::Serverless::Function + Properties: + Runtime: python3.9 + InlineCode: foo + Handler: foo + + MyOtherFunction: + Type: AWS::Serverless::Function + Properties: + Runtime: python3.9 + InlineCode: foo + Handler: foo + + SomeTable: + Type: AWS::Serverless::SimpleTable diff --git a/tests/translator/input/embedded_connectors_resource_attributes.yaml b/tests/translator/input/embedded_connectors_resource_attributes.yaml new file mode 100644 index 000000000..2fc01a826 --- /dev/null +++ b/tests/translator/input/embedded_connectors_resource_attributes.yaml @@ -0,0 +1,37 @@ +Parameters: + Param: + Type: String + AllowedValues: + - test1 + - test2 +Conditions: + Cond: + Fn::Equals: + - !Ref Param + - test1 +Resources: + MyFunction: + Connectors: + MyConnector: + DeletionPolicy: Retain + UpdateReplacePolicy: Retain + Metadata: + foo: bar + Condition: Cond + Properties: + Destination: + Id: MyOtherFunction + Permissions: + - Write + Type: AWS::Serverless::Function + Properties: + Runtime: python3.9 + InlineCode: foo + Handler: foo + + MyOtherFunction: + Type: AWS::Serverless::Function + Properties: + Runtime: python3.9 + InlineCode: foo + Handler: foo diff --git a/tests/translator/input/error_connector.yaml b/tests/translator/input/error_connector.yaml index 3c7193c6c..ff5921f54 100644 --- a/tests/translator/input/error_connector.yaml +++ b/tests/translator/input/error_connector.yaml @@ -181,3 +181,13 @@ Resources: Destination: Id: MyQueue Permissions: [] + + EmptyDestinationListConnector: + Type: AWS::Serverless::Connector + Properties: + Source: + Id: MyFunction + Destination: [] + Permissions: + - Read + - Write diff --git a/tests/translator/input/error_function_invalid_autopublishalias_allproperties.yaml b/tests/translator/input/error_function_invalid_autopublishalias_allproperties.yaml new file mode 100644 index 000000000..d3137eb9f --- /dev/null +++ b/tests/translator/input/error_function_invalid_autopublishalias_allproperties.yaml @@ -0,0 +1,15 @@ +Resources: + InvalidAutoPublishAliasAllPropertiesFunction: + Type: AWS::Serverless::Function + Properties: + Handler: index.lambda_handler + CodeUri: s3://bucket/object + Runtime: python3.7 + AutoPublishAlias: live + AutoPublishAliasAllProperties: !If [false, true, false] + Events: + Get: + Type: Api + Properties: + Path: /path + Method: GET diff --git a/tests/translator/input/error_invalid_property_in_sac_documentdb.yaml b/tests/translator/input/error_invalid_property_in_sac_documentdb.yaml new file mode 100644 index 000000000..760de1554 --- /dev/null +++ b/tests/translator/input/error_invalid_property_in_sac_documentdb.yaml @@ -0,0 +1,20 @@ +%YAML 1.1 +--- +Resources: + DocumentDBFunction: + Type: AWS::Serverless::Function + Properties: + CodeUri: s3://sam-demo-bucket/documentdb.zip + Handler: index.documentdb_handler + Runtime: python3.9 + Events: + MyDocumentDBEvent: + Type: DocumentDB + Properties: + Cluster: !Sub arn:${AWS::Partition}:rds:us-west-2:123456789012:cluster:sample-cluster + SourceAccessConfigurations: + - Type: NOT_BASIC_AUTH + URI: !Sub arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c + DatabaseName: db1 + CollectionName: collection1 + FullDocument: UpdateLookup diff --git a/tests/translator/input/error_missing_source_access_configurations_documentdb.yaml b/tests/translator/input/error_missing_source_access_configurations_documentdb.yaml new file mode 100644 index 000000000..b6faecf64 --- /dev/null +++ b/tests/translator/input/error_missing_source_access_configurations_documentdb.yaml @@ -0,0 +1,17 @@ +%YAML 1.1 +--- +Resources: + DocumentDBFunction: + Type: AWS::Serverless::Function + Properties: + CodeUri: s3://sam-demo-bucket/documentdb.zip + Handler: index.documentdb_handler + Runtime: python3.9 + Events: + MyDocumentDBEvent: + Type: DocumentDB + Properties: + Cluster: !Sub arn:${AWS::Partition}:rds:us-west-2:123456789012:cluster:sample-cluster + DatabaseName: db1 + CollectionName: collection1 + FullDocument: UpdateLookup diff --git a/tests/translator/input/error_multiple_basic_auth_documentdb.yaml b/tests/translator/input/error_multiple_basic_auth_documentdb.yaml new file mode 100644 index 000000000..96c2f0bbd --- /dev/null +++ b/tests/translator/input/error_multiple_basic_auth_documentdb.yaml @@ -0,0 +1,22 @@ +%YAML 1.1 +--- +Resources: + DocumentDBFunction: + Type: AWS::Serverless::Function + Properties: + CodeUri: s3://sam-demo-bucket/documentdb.zip + Handler: index.documentdb_handler + Runtime: python3.9 + Events: + MyDocumentDBEvent: + Type: DocumentDB + Properties: + Cluster: !Sub arn:${AWS::Partition}:rds:us-west-2:123456789012:cluster:sample-cluster + SourceAccessConfigurations: + - Type: BASIC_AUTH + URI: !Sub arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c + - Type: BASIC_AUTH + URI: !Sub arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c2 + DatabaseName: db1 + CollectionName: collection1 + FullDocument: UpdateLookup diff --git a/tests/translator/input/error_no_basic_auth_provided_documentdb.yaml b/tests/translator/input/error_no_basic_auth_provided_documentdb.yaml new file mode 100644 index 000000000..02e975142 --- /dev/null +++ b/tests/translator/input/error_no_basic_auth_provided_documentdb.yaml @@ -0,0 +1,20 @@ +%YAML 1.1 +--- +Resources: + DocumentDBFunction: + Type: AWS::Serverless::Function + Properties: + CodeUri: s3://sam-demo-bucket/documentdb.zip + Handler: index.documentdb_handler + Runtime: python3.9 + Events: + MyDocumentDBEvent: + Type: DocumentDB + Properties: + Cluster: !Sub arn:${AWS::Partition}:rds:us-west-2:123456789012:cluster:sample-cluster + SourceAccessConfigurations: + - Type: VIRTUAL_HOST # this should be BASIC_AUTH + URI: !Sub arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c + DatabaseName: db1 + CollectionName: collection1 + FullDocument: UpdateLookup diff --git a/tests/translator/input/error_no_basic_auth_uri_provided_documentdb.yaml b/tests/translator/input/error_no_basic_auth_uri_provided_documentdb.yaml new file mode 100644 index 000000000..f61d21305 --- /dev/null +++ b/tests/translator/input/error_no_basic_auth_uri_provided_documentdb.yaml @@ -0,0 +1,19 @@ +%YAML 1.1 +--- +Resources: + DocumentDBFunction: + Type: AWS::Serverless::Function + Properties: + CodeUri: s3://sam-demo-bucket/documentdb.zip + Handler: index.documentdb_handler + Runtime: python3.9 + Events: + MyDocumentDBEvent: + Type: DocumentDB + Properties: + Cluster: !Sub arn:${AWS::Partition}:rds:us-west-2:123456789012:cluster:sample-cluster + SourceAccessConfigurations: + - Type: BASIC_AUTH + DatabaseName: db1 + CollectionName: collection1 + FullDocument: UpdateLookup diff --git a/tests/translator/input/function_with_alias_all_properties_and_code_sha256.yaml b/tests/translator/input/function_with_alias_all_properties_and_code_sha256.yaml new file mode 100644 index 000000000..29f073f64 --- /dev/null +++ b/tests/translator/input/function_with_alias_all_properties_and_code_sha256.yaml @@ -0,0 +1,13 @@ +# AutoPublishCodeSha256 should take precedence when making the hash for the logical id of the Lambda version even if +# AutoPublishAliasAllProperties is set to true +Resources: + MinimalFunction: + Type: AWS::Serverless::Function + Properties: + CodeUri: s3://sam-demo-bucket/hello.zip + Handler: hello.handler + Runtime: python2.7 + AutoPublishAlias: live + AutoPublishAliasAllProperties: true + AutoPublishCodeSha256: 6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b + VersionDescription: sam-testing diff --git a/tests/translator/input/function_with_alias_and_all_properties_property.yaml b/tests/translator/input/function_with_alias_and_all_properties_property.yaml new file mode 100644 index 000000000..dcd9b3e27 --- /dev/null +++ b/tests/translator/input/function_with_alias_and_all_properties_property.yaml @@ -0,0 +1,86 @@ +Resources: + MinimalFunction: + Type: AWS::Serverless::Function + Properties: + CodeUri: s3://sam-demo-bucket/hello.zip + Handler: hello.handler + Runtime: python2.7 + AutoPublishAlias: live + AutoPublishAliasAllProperties: true + VersionDescription: sam-testing + + OtherMinimalFunction: + Type: AWS::Serverless::Function + Properties: + CodeUri: s3://sam-demo-bucket/hello.zip + Handler: hello.handler + Runtime: python2.7 + AutoPublishAlias: live + AutoPublishAliasAllProperties: false + VersionDescription: sam-testing + + # this function will only use Code lambda function property to make the hash + HashNoChangeFunction: + Type: AWS::Serverless::Function + Properties: + CodeUri: s3://sam-demo-bucket/hello.zip + Handler: hello.handler + Runtime: python2.7 + AutoPublishAlias: live + VersionDescription: sam-testing + Timeout: 1 + VpcConfig: + SecurityGroupIds: + - sg-085912345678492fb + SubnetIds: + - subnet-071f712345678e7c8 + ReservedConcurrentExecutions: 100 + Layers: + - !Sub arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:layer:MyLayer:1 + PackageType: Zip + Architectures: + - x86_64 + EphemeralStorage: + Size: 1024 + Role: !Sub arn:${AWS::Partition}:iam::role + KmsKeyArn: !Sub arn:${AWS::Partition}:key:key + FileSystemConfigs: + - Arn: !GetAtt AccessPoint.Arn + LocalMountPath: /mnt/EFS + + # this function will all the lambda function properties to make the hash + HashChangeFunction: + Type: AWS::Serverless::Function + Properties: + CodeUri: s3://sam-demo-bucket/hello.zip + Handler: hello.handler + Runtime: python2.7 + AutoPublishAlias: live + AutoPublishAliasAllProperties: true + VersionDescription: sam-testing + Timeout: 1 + VpcConfig: + SecurityGroupIds: + - sg-085912345678492fb + SubnetIds: + - subnet-071f712345678e7c8 + ReservedConcurrentExecutions: 100 + Layers: + - !Sub arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:layer:MyLayer:1 + PackageType: Zip + Architectures: + - x86_64 + EphemeralStorage: + Size: 1024 + Role: !Sub arn:${AWS::Partition}:iam::role + KmsKeyArn: !Sub arn:${AWS::Partition}:key:key + FileSystemConfigs: + - Arn: !GetAtt AccessPoint.Arn + LocalMountPath: /mnt/EFS + + AccessPoint: + Type: AWS::EFS::AccessPoint + Properties: + FileSystemId: !Ref EfsFileSystem + EfsFileSystem: + Type: AWS::EFS::FileSystem diff --git a/tests/translator/input/function_with_documentdb.yaml b/tests/translator/input/function_with_documentdb.yaml new file mode 100644 index 000000000..d92d3967a --- /dev/null +++ b/tests/translator/input/function_with_documentdb.yaml @@ -0,0 +1,20 @@ +%YAML 1.1 +--- +Resources: + DocumentDBFunction: + Type: AWS::Serverless::Function + Properties: + CodeUri: s3://sam-demo-bucket/documentdb.zip + Handler: index.documentdb_handler + Runtime: python3.9 + Events: + MyDocumentDBEvent: + Type: DocumentDB + Properties: + Cluster: !Sub arn:${AWS::Partition}:rds:us-west-2:123456789012:cluster:sample-cluster + CollectionName: collection1 + DatabaseName: db1 + FullDocument: UpdateLookup + SourceAccessConfigurations: + - Type: BASIC_AUTH + URI: !Sub arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c diff --git a/tests/translator/input/function_with_documentdb_with_kms.yaml b/tests/translator/input/function_with_documentdb_with_kms.yaml new file mode 100644 index 000000000..ba6eb17cf --- /dev/null +++ b/tests/translator/input/function_with_documentdb_with_kms.yaml @@ -0,0 +1,19 @@ +%YAML 1.1 +--- +Resources: + DocumentDBFunction: + Type: AWS::Serverless::Function + Properties: + CodeUri: s3://sam-demo-bucket/documentdb.zip + Handler: index.documentdb_handler + Runtime: python3.9 + Events: + MyDocumentDBEvent: + Type: DocumentDB + Properties: + Cluster: !Sub arn:${AWS::Partition}:rds:us-west-2:123456789012:cluster:sample-cluster + SourceAccessConfigurations: + - Type: BASIC_AUTH + URI: !Sub arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c + DatabaseName: db1 + SecretsManagerKmsKeyId: myKeyId diff --git a/tests/translator/model/preferences/test_deployment_preference.py b/tests/translator/model/preferences/test_deployment_preference.py index 2f7a7645d..b361016d2 100644 --- a/tests/translator/model/preferences/test_deployment_preference.py +++ b/tests/translator/model/preferences/test_deployment_preference.py @@ -19,7 +19,6 @@ def setUp(self): self.condition = "condition" def test_from_dict_with_intrinsic_function_type(self): - type = {"Ref": "SomeType"} expected_deployment_preference = DeploymentPreference( type, diff --git a/tests/translator/model/preferences/test_deployment_preference_collection.py b/tests/translator/model/preferences/test_deployment_preference_collection.py index 2ee6bf81d..56f16d72f 100644 --- a/tests/translator/model/preferences/test_deployment_preference_collection.py +++ b/tests/translator/model/preferences/test_deployment_preference_collection.py @@ -1,14 +1,15 @@ -from unittest.mock import patch from unittest import TestCase +from unittest.mock import patch -from samtranslator.model.codedeploy import CodeDeployApplication -from samtranslator.model.codedeploy import CodeDeployDeploymentGroup +from samtranslator.model.codedeploy import CodeDeployApplication, CodeDeployDeploymentGroup from samtranslator.model.exceptions import InvalidResourceException from samtranslator.model.iam import IAMRole from samtranslator.model.preferences.deployment_preference import DeploymentPreference -from samtranslator.model.preferences.deployment_preference_collection import CODEDEPLOY_APPLICATION_LOGICAL_ID -from samtranslator.model.preferences.deployment_preference_collection import CODE_DEPLOY_SERVICE_ROLE_LOGICAL_ID -from samtranslator.model.preferences.deployment_preference_collection import DeploymentPreferenceCollection +from samtranslator.model.preferences.deployment_preference_collection import ( + CODE_DEPLOY_SERVICE_ROLE_LOGICAL_ID, + CODEDEPLOY_APPLICATION_LOGICAL_ID, + DeploymentPreferenceCollection, +) class TestDeploymentPreferenceCollection(TestCase): @@ -410,11 +411,10 @@ def global_deployment_preference_yaml_dict(self): return deployment_preference_yaml_dict def global_deployment_preference(self): - expected_deployment_preference = DeploymentPreference( + return DeploymentPreference( self.deployment_type_global, self.pre_traffic_hook_global, self.post_traffic_host_global, self.alarms_global, True, ) - return expected_deployment_preference diff --git a/tests/translator/output/all_policy_templates.json b/tests/translator/output/all_policy_templates.json index 5552177c5..6439f3842 100644 --- a/tests/translator/output/all_policy_templates.json +++ b/tests/translator/output/all_policy_templates.json @@ -1609,6 +1609,36 @@ ] }, "PolicyName": "KitchenSinkFunctionRolePolicy59" + }, + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "ssm:DescribeParameters" + ], + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "ssm:GetParameters", + "ssm:GetParameter", + "ssm:GetParametersByPath" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:ssm:${AWS::Region}:${AWS::AccountId}:parameter${parameterName}", + { + "parameterName": "/name" + } + ] + } + } + ] + }, + "PolicyName": "KitchenSinkFunctionRolePolicy60" } ], "Tags": [ diff --git a/tests/translator/output/aws-cn/all_policy_templates.json b/tests/translator/output/aws-cn/all_policy_templates.json index 32ef7515b..17f350672 100644 --- a/tests/translator/output/aws-cn/all_policy_templates.json +++ b/tests/translator/output/aws-cn/all_policy_templates.json @@ -1609,6 +1609,36 @@ ] }, "PolicyName": "KitchenSinkFunctionRolePolicy59" + }, + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "ssm:DescribeParameters" + ], + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "ssm:GetParameters", + "ssm:GetParameter", + "ssm:GetParametersByPath" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:ssm:${AWS::Region}:${AWS::AccountId}:parameter${parameterName}", + { + "parameterName": "/name" + } + ] + } + } + ] + }, + "PolicyName": "KitchenSinkFunctionRolePolicy60" } ], "Tags": [ diff --git a/tests/translator/output/aws-cn/basic_layer.json b/tests/translator/output/aws-cn/basic_layer.json index 94901714e..e92e95b29 100644 --- a/tests/translator/output/aws-cn/basic_layer.json +++ b/tests/translator/output/aws-cn/basic_layer.json @@ -14,12 +14,11 @@ } }, "Resources": { - "CompleteLayer5d71a60e81": { + "CompleteLayer429cb63b84": { "DeletionPolicy": "Retain", "Properties": { "CompatibleRuntimes": [ - "python3.6", - "python2.7" + "python3.9" ], "Content": { "S3Bucket": "sam-demo-bucket", diff --git a/tests/translator/output/aws-cn/connector_api_to_multiple_function.json b/tests/translator/output/aws-cn/connector_api_to_multiple_function.json new file mode 100644 index 000000000..28e7b8855 --- /dev/null +++ b/tests/translator/output/aws-cn/connector_api_to_multiple_function.json @@ -0,0 +1,210 @@ +{ + "Resources": { + "MyConnectorServerlessApiToLambdaWriteLambdaPermissionDestination0": { + "Metadata": { + "aws:sam:connectors": { + "MyConnectorServerlessApiToLambda": { + "Destination": { + "Type": "AWS::Lambda::Function" + }, + "Source": { + "Type": "AWS::Serverless::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": "MyServerlessApi" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyConnectorServerlessApiToLambdaWriteLambdaPermissionDestination1": { + "Metadata": { + "aws:sam:connectors": { + "MyConnectorServerlessApiToLambda": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::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": "MyServerlessApi" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "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": [ + "MyRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x" + }, + "Type": "AWS::Lambda::Function" + }, + "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" + }, + "MyServerlessApi": { + "Properties": { + "Body": { + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "paths": {}, + "swagger": "2.0" + }, + "EndpointConfiguration": { + "Types": [ + "REGIONAL" + ] + }, + "Parameters": { + "endpointConfigurationTypes": "REGIONAL" + } + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "MyServerlessApiDeployment5332c373d4": { + "Properties": { + "Description": "RestApi deployment id: 5332c373d45c69e6c0f562b4a419aa8eb311adc7", + "RestApiId": { + "Ref": "MyServerlessApi" + }, + "StageName": "Stage" + }, + "Type": "AWS::ApiGateway::Deployment" + }, + "MyServerlessApiProdStage": { + "Properties": { + "DeploymentId": { + "Ref": "MyServerlessApiDeployment5332c373d4" + }, + "RestApiId": { + "Ref": "MyServerlessApi" + }, + "StageName": "Prod" + }, + "Type": "AWS::ApiGateway::Stage" + }, + "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-cn/connector_depends_on_attribute.json b/tests/translator/output/aws-cn/connector_depends_on_attribute.json new file mode 100644 index 000000000..1bc06f79d --- /dev/null +++ b/tests/translator/output/aws-cn/connector_depends_on_attribute.json @@ -0,0 +1,169 @@ +{ + "Resources": { + "MyConnectorsPolicy": { + "DependsOn": "SomeTable", + "Metadata": { + "aws:sam:connectors": { + "MyConnectors": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeAsync", + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyOtherFunction", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "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" + }, + "MyOtherFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyOtherFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyOtherFunctionRole": { + "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" + }, + "SomeTable": { + "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/connector_function_to_location.json b/tests/translator/output/aws-cn/connector_function_to_location.json new file mode 100644 index 000000000..1131d55c4 --- /dev/null +++ b/tests/translator/output/aws-cn/connector_function_to_location.json @@ -0,0 +1,150 @@ +{ + "Resources": { + "MyConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyConnector": { + "Destination": { + "Type": "AWS::Location::PlaceIndex" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:DescribePlaceIndex", + "geo:GetPlace", + "geo:SearchPlaceIndexForPosition", + "geo:SearchPlaceIndexForSuggestions", + "geo:SearchPlaceIndexForText" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": "arn:${AWS::Partition}:geo:us-east-1:123123123123:place-index/explore.place" + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "MyConnectorWithIdPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyConnectorWithId": { + "Destination": { + "Type": "AWS::Location::PlaceIndex" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:DescribePlaceIndex", + "geo:GetPlace", + "geo:SearchPlaceIndexForPosition", + "geo:SearchPlaceIndexForSuggestions", + "geo:SearchPlaceIndexForText" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyPlace", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "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" + }, + "MyPlace": { + "Properties": { + "DataSource": "Here", + "IndexName": "MyPlaceIndex" + }, + "Type": "AWS::Location::PlaceIndex" + } + } +} diff --git a/tests/translator/output/aws-cn/connector_function_to_multiple_s3.json b/tests/translator/output/aws-cn/connector_function_to_multiple_s3.json new file mode 100644 index 000000000..1a691e004 --- /dev/null +++ b/tests/translator/output/aws-cn/connector_function_to_multiple_s3.json @@ -0,0 +1,260 @@ +{ + "Resources": { + "MyBucket": { + "Type": "AWS::S3::Bucket" + }, + "MyBucket2": { + "Type": "AWS::S3::Bucket" + }, + "MyConnectorPolicyDestination0": { + "Metadata": { + "aws:sam:connectors": { + "MyConnector": { + "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": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "MyConnectorPolicyDestination1": { + "Metadata": { + "aws:sam:connectors": { + "MyConnector": { + "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": [ + "MyBucket2", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyBucket2", + "Arn" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "s3:AbortMultipartUpload", + "s3:DeleteObject", + "s3:DeleteObjectVersion", + "s3:PutObject", + "s3:PutObjectLegalHold", + "s3:PutObjectRetention", + "s3:RestoreObject" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyBucket2", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyBucket2", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "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" + } + } +} diff --git a/tests/translator/output/aws-cn/connector_mix_destination.json b/tests/translator/output/aws-cn/connector_mix_destination.json new file mode 100644 index 000000000..7bb7e77a8 --- /dev/null +++ b/tests/translator/output/aws-cn/connector_mix_destination.json @@ -0,0 +1,328 @@ +{ + "Metadata": { + "SamTransformTest": true + }, + "Resources": { + "EventRule": { + "Properties": { + "Description": { + "Fn::Sub": "EventRule-${AWS::StackName}" + }, + "EventPattern": { + "source": [ + { + "Fn::Sub": "${AWS::StackName}-test-event" + } + ] + }, + "Targets": [ + { + "Arn": { + "Fn::GetAtt": [ + "Function", + "Arn" + ] + }, + "Id": "Target" + }, + { + "Arn": { + "Fn::GetAtt": [ + "VerificationQueue", + "Arn" + ] + }, + "Id": "Target2" + } + ] + }, + "Type": "AWS::Events::Rule" + }, + "Function": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\n\nexports.handler = async (event) => {\n const sqs = new AWS.SQS();\n await sqs.sendMessage({\n QueueUrl: process.env.QUEUE_URL,\n MessageBody: \"test\"\n }).promise();\n};\n" + }, + "Environment": { + "Variables": { + "QUEUE_URL": { + "Ref": "VerificationQueue" + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "FunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "FunctionRole": { + "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" + ], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:SendMessage*" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:sqs:${AWS::Region}:${AWS::AccountId}:${queueName}", + { + "queueName": { + "Fn::GetAtt": [ + "VerificationQueue", + "QueueName" + ] + } + } + ] + } + } + ] + }, + "PolicyName": "FunctionRolePolicy0" + } + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyConnectorQueuePolicyDestination1": { + "Metadata": { + "aws:sam:connectors": { + "MyConnector": { + "Destination": { + "Type": "AWS::SQS::Queue" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "sqs:SendMessage", + "Condition": { + "ArnEquals": { + "aws:SourceArn": { + "Fn::GetAtt": [ + "EventRule", + "Arn" + ] + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + }, + "Resource": { + "Fn::GetAtt": [ + "VerificationQueue", + "Arn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "Queues": [ + { + "Ref": "VerificationQueue" + } + ] + }, + "Type": "AWS::SQS::QueuePolicy" + }, + "MyConnectorWriteLambdaPermissionDestination0": { + "Metadata": { + "aws:sam:connectors": { + "MyConnector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "Function", + "Arn" + ] + }, + "Principal": "events.amazonaws.com", + "SourceArn": { + "Fn::GetAtt": [ + "EventRule", + "Arn" + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "TriggerFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\n\nexports.handler = async (event) => {\n const eb = new AWS.EventBridge();\n const response = await eb.putEvents({\n Entries: [{\n Source: process.env.EVENT_SOURCE,\n Detail: \"{}\",\n DetailType: \"Test\",\n }]\n }).promise();\n\n const sqs = new AWS.SQS();\n const data = await sqs.getQueueAttributes({\n QueueUrl: process.env.QUEUE_URL,\n AttributeNames: ['ApproximateNumberOfMessages']\n }).promise();\n\n if (data.Attributes.ApproximateNumberOfMessages < 2) {\n throw 'Not enough messages in the queue!';\n }\n};\n" + }, + "Environment": { + "Variables": { + "EVENT_SOURCE": { + "Fn::Sub": "${AWS::StackName}-test-event" + }, + "QUEUE_URL": { + "Ref": "VerificationQueue" + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "TriggerFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ], + "Timeout": 10 + }, + "Type": "AWS::Lambda::Function" + }, + "TriggerFunctionRole": { + "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" + ], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": "events:PutEvents", + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:event-bus/${eventBusName}", + { + "eventBusName": "default" + } + ] + } + } + ] + }, + "PolicyName": "TriggerFunctionRolePolicy0" + }, + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:ChangeMessageVisibility", + "sqs:ChangeMessageVisibilityBatch", + "sqs:DeleteMessage", + "sqs:DeleteMessageBatch", + "sqs:GetQueueAttributes", + "sqs:ReceiveMessage" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:sqs:${AWS::Region}:${AWS::AccountId}:${queueName}", + { + "queueName": { + "Fn::GetAtt": [ + "VerificationQueue", + "QueueName" + ] + } + } + ] + } + } + ] + }, + "PolicyName": "TriggerFunctionRolePolicy1" + } + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "VerificationQueue": { + "Type": "AWS::SQS::Queue" + } + } +} diff --git a/tests/translator/output/aws-cn/connector_resource_attributes.json b/tests/translator/output/aws-cn/connector_resource_attributes.json new file mode 100644 index 000000000..b656897ca --- /dev/null +++ b/tests/translator/output/aws-cn/connector_resource_attributes.json @@ -0,0 +1,173 @@ +{ + "Conditions": { + "Cond": { + "Fn::Equals": [ + { + "Ref": "Param" + }, + "test1" + ] + } + }, + "Parameters": { + "Param": { + "AllowedValues": [ + "test1", + "test2" + ], + "Type": "String" + } + }, + "Resources": { + "MyConnectorsPolicy": { + "Condition": "Cond", + "DeletionPolicy": "Retain", + "Metadata": { + "aws:sam:connectors": { + "MyConnectors": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + }, + "foo": "bar" + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeAsync", + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyOtherFunction", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy", + "UpdateReplacePolicy": "Retain" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "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" + }, + "MyOtherFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyOtherFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyOtherFunctionRole": { + "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/connector_rule_to_multiple_sns.json b/tests/translator/output/aws-cn/connector_rule_to_multiple_sns.json new file mode 100644 index 000000000..14ce890af --- /dev/null +++ b/tests/translator/output/aws-cn/connector_rule_to_multiple_sns.json @@ -0,0 +1,132 @@ +{ + "Resources": { + "MyConnectorTopicPolicyDestination0": { + "Metadata": { + "aws:sam:connectors": { + "MyConnector": { + "Destination": { + "Type": "AWS::SNS::Topic" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "sns:Publish", + "Condition": { + "ArnEquals": { + "aws:SourceArn": { + "Fn::GetAtt": [ + "MyNewEventsRule", + "Arn" + ] + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + }, + "Resource": { + "Ref": "MySNSTopic" + } + } + ], + "Version": "2012-10-17" + }, + "Topics": [ + { + "Ref": "MySNSTopic" + } + ] + }, + "Type": "AWS::SNS::TopicPolicy" + }, + "MyConnectorTopicPolicyDestination1": { + "Metadata": { + "aws:sam:connectors": { + "MyConnector": { + "Destination": { + "Type": "AWS::SNS::Topic" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "sns:Publish", + "Condition": { + "ArnEquals": { + "aws:SourceArn": { + "Fn::GetAtt": [ + "MyNewEventsRule", + "Arn" + ] + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + }, + "Resource": { + "Ref": "MySNSTopic2" + } + } + ], + "Version": "2012-10-17" + }, + "Topics": [ + { + "Ref": "MySNSTopic2" + } + ] + }, + "Type": "AWS::SNS::TopicPolicy" + }, + "MyNewEventsRule": { + "Properties": { + "EventPattern": { + "source": [ + "aws.ec2" + ] + }, + "Name": "mynewabc", + "State": "ENABLED" + }, + "Type": "AWS::Events::Rule" + }, + "MyRuleRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + } + } + ] + } + }, + "Type": "AWS::IAM::Role" + }, + "MySNSTopic": { + "Type": "AWS::SNS::Topic" + }, + "MySNSTopic2": { + "Type": "AWS::SNS::Topic" + } + } +} diff --git a/tests/translator/output/aws-cn/connector_sqs_to_multiple_function.json b/tests/translator/output/aws-cn/connector_sqs_to_multiple_function.json new file mode 100644 index 000000000..ce9c3ff6b --- /dev/null +++ b/tests/translator/output/aws-cn/connector_sqs_to_multiple_function.json @@ -0,0 +1,332 @@ +{ + "Resources": { + "ConnectorPolicyDestination0": { + "Metadata": { + "aws:sam:connectors": { + "Connector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::SQS::Queue" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:DeleteMessage" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "Queue", + "Arn" + ] + } + ] + }, + { + "Action": [ + "sqs:ReceiveMessage", + "sqs:GetQueueAttributes" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "Queue", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "InvokedFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "ConnectorPolicyDestination1": { + "Metadata": { + "aws:sam:connectors": { + "Connector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::SQS::Queue" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:DeleteMessage" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "Queue", + "Arn" + ] + } + ] + }, + { + "Action": [ + "sqs:ReceiveMessage", + "sqs:GetQueueAttributes" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "Queue", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "InvokedFunction2Role" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "InvokedFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n const sqs = new AWS.SQS();\n await sqs.sendMessage({\n QueueUrl: process.env.VERIFICATION_QUEUE_URL,\n MessageBody: \"test\"\n }).promise();\n};\n" + }, + "Environment": { + "Variables": { + "VERIFICATION_QUEUE_URL": { + "Ref": "VerificationQueue" + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "InvokedFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "InvokedFunction2": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n const sqs = new AWS.SQS();\n await sqs.sendMessage({\n QueueUrl: process.env.VERIFICATION_QUEUE_URL,\n MessageBody: \"test\"\n }).promise();\n};\n" + }, + "Environment": { + "Variables": { + "VERIFICATION_QUEUE_URL": { + "Ref": "VerificationQueue" + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "InvokedFunction2Role", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "InvokedFunction2Role": { + "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" + ], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:SendMessage*" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:sqs:${AWS::Region}:${AWS::AccountId}:${queueName}", + { + "queueName": { + "Fn::GetAtt": [ + "VerificationQueue", + "QueueName" + ] + } + } + ] + } + } + ] + }, + "PolicyName": "InvokedFunction2RolePolicy0" + } + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "InvokedFunctionRole": { + "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" + ], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:SendMessage*" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:sqs:${AWS::Region}:${AWS::AccountId}:${queueName}", + { + "queueName": { + "Fn::GetAtt": [ + "VerificationQueue", + "QueueName" + ] + } + } + ] + } + } + ] + }, + "PolicyName": "InvokedFunctionRolePolicy0" + } + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "Queue": { + "Type": "AWS::SQS::Queue" + }, + "SQSEventSourceMapping": { + "DependsOn": [ + "ConnectorPolicyDestination0" + ], + "Properties": { + "BatchSize": 10, + "EventSourceArn": { + "Fn::GetAtt": [ + "Queue", + "Arn" + ] + }, + "FunctionName": { + "Ref": "InvokedFunction" + } + }, + "Type": "AWS::Lambda::EventSourceMapping" + }, + "SQSEventSourceMapping2": { + "DependsOn": [ + "ConnectorPolicyDestination1" + ], + "Properties": { + "BatchSize": 10, + "EventSourceArn": { + "Fn::GetAtt": [ + "Queue", + "Arn" + ] + }, + "FunctionName": { + "Ref": "InvokedFunction2" + } + }, + "Type": "AWS::Lambda::EventSourceMapping" + }, + "VerificationQueue": { + "Type": "AWS::SQS::Queue" + } + } +} diff --git a/tests/translator/output/aws-cn/documentdb_with_intrinsics.json b/tests/translator/output/aws-cn/documentdb_with_intrinsics.json new file mode 100644 index 000000000..5799d9a63 --- /dev/null +++ b/tests/translator/output/aws-cn/documentdb_with_intrinsics.json @@ -0,0 +1,154 @@ +{ + "Parameters": { + "BatchSizeValue": { + "Default": 100, + "Type": "Number" + }, + "EnableValue": { + "Default": true, + "Type": "String" + } + }, + "Resources": { + "DocumentDBFunction": { + "Properties": { + "Code": { + "S3Bucket": "sam-app-test-156327056618", + "S3Key": "lambda-function.zip" + }, + "Handler": "lambda_function.lambda_handler", + "Role": { + "Fn::GetAtt": [ + "DocumentDBFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "DocumentDBFunctionMyDocumentDBEvent": { + "Properties": { + "BatchSize": { + "Ref": "BatchSizeValue" + }, + "DocumentDBEventSourceConfig": { + "CollectionName": "collection1", + "DatabaseName": "db1", + "FullDocument": "UpdateLookup" + }, + "Enabled": { + "Ref": "EnableValue" + }, + "EventSourceArn": { + "Fn::Sub": "arn:${AWS::Partition}:rds:us-east-1:156327056618:cluster:docdb-2022-11-08-00-10-05r" + }, + "FunctionName": { + "Ref": "DocumentDBFunction" + }, + "SourceAccessConfigurations": [ + { + "Type": "BASIC_AUTH", + "URI": { + "Fn::Sub": "arn:${AWS::Partition}:secretsmanager:us-east-1:156327056618:secret:abc-sy7Vjx" + } + } + ] + }, + "Type": "AWS::Lambda::EventSourceMapping" + }, + "DocumentDBFunctionRole": { + "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" + ], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "secretsmanager:GetSecretValue" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:secretsmanager:us-east-1:156327056618:secret:abc-sy7Vjx" + } + }, + { + "Action": [ + "rds:DescribeDBClusterParameters" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:cluster-pg:*" + } + }, + { + "Action": [ + "rds:DescribeDBSubnetGroups" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:subgrp:*" + } + }, + { + "Action": [ + "rds:DescribeDBClusters" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:us-east-1:156327056618:cluster:docdb-2022-11-08-00-10-05r" + } + }, + { + "Action": [ + "ec2:CreateNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DeleteNetworkInterface", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups" + ], + "Effect": "Allow", + "Resource": "*" + } + ] + }, + "PolicyName": "SamAutoGeneratedDocumentDBPolicy" + } + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + } + } +} diff --git a/tests/translator/output/aws-cn/embedded_connector_function_to_multi_dest.json b/tests/translator/output/aws-cn/embedded_connector_function_to_multi_dest.json new file mode 100644 index 000000000..c2fb8a102 --- /dev/null +++ b/tests/translator/output/aws-cn/embedded_connector_function_to_multi_dest.json @@ -0,0 +1,220 @@ +{ + "Resources": { + "MyBucket": { + "Type": "AWS::S3::Bucket" + }, + "MyQueue": { + "Type": "AWS::SQS::Queue" + }, + "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" + }, + "MyServerlessFunctionMixedDestConnectorPolicyDestination0": { + "Metadata": { + "aws:sam:connectors": { + "MyServerlessFunctionMixedDestConnector": { + "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" + }, + "MyServerlessFunctionMixedDestConnectorPolicyDestination1": { + "Metadata": { + "aws:sam:connectors": { + "MyServerlessFunctionMixedDestConnector": { + "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" + }, + "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-cn/embedded_connectors_depends_on_attribute.json b/tests/translator/output/aws-cn/embedded_connectors_depends_on_attribute.json new file mode 100644 index 000000000..b1f56c6ec --- /dev/null +++ b/tests/translator/output/aws-cn/embedded_connectors_depends_on_attribute.json @@ -0,0 +1,169 @@ +{ + "Resources": { + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionMyConnectorPolicy": { + "DependsOn": "SomeTable", + "Metadata": { + "aws:sam:connectors": { + "MyFunctionMyConnector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeAsync", + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyOtherFunction", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "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" + }, + "MyOtherFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyOtherFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyOtherFunctionRole": { + "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" + }, + "SomeTable": { + "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_resource_attributes.json b/tests/translator/output/aws-cn/embedded_connectors_resource_attributes.json new file mode 100644 index 000000000..4d733ab7e --- /dev/null +++ b/tests/translator/output/aws-cn/embedded_connectors_resource_attributes.json @@ -0,0 +1,173 @@ +{ + "Conditions": { + "Cond": { + "Fn::Equals": [ + { + "Ref": "Param" + }, + "test1" + ] + } + }, + "Parameters": { + "Param": { + "AllowedValues": [ + "test1", + "test2" + ], + "Type": "String" + } + }, + "Resources": { + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionMyConnectorPolicy": { + "Condition": "Cond", + "DeletionPolicy": "Retain", + "Metadata": { + "aws:sam:connectors": { + "MyFunctionMyConnector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + }, + "foo": "bar" + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeAsync", + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyOtherFunction", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy", + "UpdateReplacePolicy": "Retain" + }, + "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" + }, + "MyOtherFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyOtherFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyOtherFunctionRole": { + "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/function_with_alias_all_properties_and_code_sha256.json b/tests/translator/output/aws-cn/function_with_alias_all_properties_and_code_sha256.json new file mode 100644 index 000000000..223625513 --- /dev/null +++ b/tests/translator/output/aws-cn/function_with_alias_all_properties_and_code_sha256.json @@ -0,0 +1,82 @@ +{ + "Resources": { + "MinimalFunction": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "MinimalFunctionRole", + "Arn" + ] + }, + "Runtime": "python2.7", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MinimalFunctionAliaslive": { + "Properties": { + "FunctionName": { + "Ref": "MinimalFunction" + }, + "FunctionVersion": { + "Fn::GetAtt": [ + "MinimalFunctionVersion6b86b273ff", + "Version" + ] + }, + "Name": "live" + }, + "Type": "AWS::Lambda::Alias" + }, + "MinimalFunctionRole": { + "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" + }, + "MinimalFunctionVersion6b86b273ff": { + "DeletionPolicy": "Retain", + "Properties": { + "Description": "sam-testing", + "FunctionName": { + "Ref": "MinimalFunction" + } + }, + "Type": "AWS::Lambda::Version" + } + } +} diff --git a/tests/translator/output/aws-cn/function_with_alias_and_all_properties_property.json b/tests/translator/output/aws-cn/function_with_alias_and_all_properties_property.json new file mode 100644 index 000000000..1741d9358 --- /dev/null +++ b/tests/translator/output/aws-cn/function_with_alias_and_all_properties_property.json @@ -0,0 +1,333 @@ +{ + "Resources": { + "AccessPoint": { + "Properties": { + "FileSystemId": { + "Ref": "EfsFileSystem" + } + }, + "Type": "AWS::EFS::AccessPoint" + }, + "EfsFileSystem": { + "Type": "AWS::EFS::FileSystem" + }, + "HashChangeFunction": { + "Properties": { + "Architectures": [ + "x86_64" + ], + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "EphemeralStorage": { + "Size": 1024 + }, + "FileSystemConfigs": [ + { + "Arn": { + "Fn::GetAtt": [ + "AccessPoint", + "Arn" + ] + }, + "LocalMountPath": "/mnt/EFS" + } + ], + "Handler": "hello.handler", + "KmsKeyArn": { + "Fn::Sub": "arn:${AWS::Partition}:key:key" + }, + "Layers": [ + { + "Fn::Sub": "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:layer:MyLayer:1" + } + ], + "PackageType": "Zip", + "ReservedConcurrentExecutions": 100, + "Role": { + "Fn::Sub": "arn:${AWS::Partition}:iam::role" + }, + "Runtime": "python2.7", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ], + "Timeout": 1, + "VpcConfig": { + "SecurityGroupIds": [ + "sg-085912345678492fb" + ], + "SubnetIds": [ + "subnet-071f712345678e7c8" + ] + } + }, + "Type": "AWS::Lambda::Function" + }, + "HashChangeFunctionAliaslive": { + "Properties": { + "FunctionName": { + "Ref": "HashChangeFunction" + }, + "FunctionVersion": { + "Fn::GetAtt": [ + "HashChangeFunctionVersion17ca83d2bf", + "Version" + ] + }, + "Name": "live" + }, + "Type": "AWS::Lambda::Alias" + }, + "HashChangeFunctionVersion17ca83d2bf": { + "DeletionPolicy": "Retain", + "Properties": { + "Description": "sam-testing", + "FunctionName": { + "Ref": "HashChangeFunction" + } + }, + "Type": "AWS::Lambda::Version" + }, + "HashNoChangeFunction": { + "Properties": { + "Architectures": [ + "x86_64" + ], + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "EphemeralStorage": { + "Size": 1024 + }, + "FileSystemConfigs": [ + { + "Arn": { + "Fn::GetAtt": [ + "AccessPoint", + "Arn" + ] + }, + "LocalMountPath": "/mnt/EFS" + } + ], + "Handler": "hello.handler", + "KmsKeyArn": { + "Fn::Sub": "arn:${AWS::Partition}:key:key" + }, + "Layers": [ + { + "Fn::Sub": "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:layer:MyLayer:1" + } + ], + "PackageType": "Zip", + "ReservedConcurrentExecutions": 100, + "Role": { + "Fn::Sub": "arn:${AWS::Partition}:iam::role" + }, + "Runtime": "python2.7", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ], + "Timeout": 1, + "VpcConfig": { + "SecurityGroupIds": [ + "sg-085912345678492fb" + ], + "SubnetIds": [ + "subnet-071f712345678e7c8" + ] + } + }, + "Type": "AWS::Lambda::Function" + }, + "HashNoChangeFunctionAliaslive": { + "Properties": { + "FunctionName": { + "Ref": "HashNoChangeFunction" + }, + "FunctionVersion": { + "Fn::GetAtt": [ + "HashNoChangeFunctionVersion640128d35d", + "Version" + ] + }, + "Name": "live" + }, + "Type": "AWS::Lambda::Alias" + }, + "HashNoChangeFunctionVersion640128d35d": { + "DeletionPolicy": "Retain", + "Properties": { + "Description": "sam-testing", + "FunctionName": { + "Ref": "HashNoChangeFunction" + } + }, + "Type": "AWS::Lambda::Version" + }, + "MinimalFunction": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "MinimalFunctionRole", + "Arn" + ] + }, + "Runtime": "python2.7", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MinimalFunctionAliaslive": { + "Properties": { + "FunctionName": { + "Ref": "MinimalFunction" + }, + "FunctionVersion": { + "Fn::GetAtt": [ + "MinimalFunctionVersion62bebcf0c1", + "Version" + ] + }, + "Name": "live" + }, + "Type": "AWS::Lambda::Alias" + }, + "MinimalFunctionRole": { + "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" + }, + "MinimalFunctionVersion62bebcf0c1": { + "DeletionPolicy": "Retain", + "Properties": { + "Description": "sam-testing", + "FunctionName": { + "Ref": "MinimalFunction" + } + }, + "Type": "AWS::Lambda::Version" + }, + "OtherMinimalFunction": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "OtherMinimalFunctionRole", + "Arn" + ] + }, + "Runtime": "python2.7", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "OtherMinimalFunctionAliaslive": { + "Properties": { + "FunctionName": { + "Ref": "OtherMinimalFunction" + }, + "FunctionVersion": { + "Fn::GetAtt": [ + "OtherMinimalFunctionVersion640128d35d", + "Version" + ] + }, + "Name": "live" + }, + "Type": "AWS::Lambda::Alias" + }, + "OtherMinimalFunctionRole": { + "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" + }, + "OtherMinimalFunctionVersion640128d35d": { + "DeletionPolicy": "Retain", + "Properties": { + "Description": "sam-testing", + "FunctionName": { + "Ref": "OtherMinimalFunction" + } + }, + "Type": "AWS::Lambda::Version" + } + } +} diff --git a/tests/translator/output/aws-cn/function_with_documentdb.json b/tests/translator/output/aws-cn/function_with_documentdb.json new file mode 100644 index 000000000..d4fec5ae0 --- /dev/null +++ b/tests/translator/output/aws-cn/function_with_documentdb.json @@ -0,0 +1,138 @@ +{ + "Resources": { + "DocumentDBFunction": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "documentdb.zip" + }, + "Handler": "index.documentdb_handler", + "Role": { + "Fn::GetAtt": [ + "DocumentDBFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "DocumentDBFunctionMyDocumentDBEvent": { + "Properties": { + "DocumentDBEventSourceConfig": { + "CollectionName": "collection1", + "DatabaseName": "db1", + "FullDocument": "UpdateLookup" + }, + "EventSourceArn": { + "Fn::Sub": "arn:${AWS::Partition}:rds:us-west-2:123456789012:cluster:sample-cluster" + }, + "FunctionName": { + "Ref": "DocumentDBFunction" + }, + "SourceAccessConfigurations": [ + { + "Type": "BASIC_AUTH", + "URI": { + "Fn::Sub": "arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c" + } + } + ] + }, + "Type": "AWS::Lambda::EventSourceMapping" + }, + "DocumentDBFunctionRole": { + "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" + ], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "secretsmanager:GetSecretValue" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c" + } + }, + { + "Action": [ + "rds:DescribeDBClusterParameters" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:cluster-pg:*" + } + }, + { + "Action": [ + "rds:DescribeDBSubnetGroups" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:subgrp:*" + } + }, + { + "Action": [ + "rds:DescribeDBClusters" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:us-west-2:123456789012:cluster:sample-cluster" + } + }, + { + "Action": [ + "ec2:CreateNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DeleteNetworkInterface", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups" + ], + "Effect": "Allow", + "Resource": "*" + } + ] + }, + "PolicyName": "SamAutoGeneratedDocumentDBPolicy" + } + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + } + } +} diff --git a/tests/translator/output/aws-cn/function_with_documentdb_with_kms.json b/tests/translator/output/aws-cn/function_with_documentdb_with_kms.json new file mode 100644 index 000000000..fe19bb76e --- /dev/null +++ b/tests/translator/output/aws-cn/function_with_documentdb_with_kms.json @@ -0,0 +1,145 @@ +{ + "Resources": { + "DocumentDBFunction": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "documentdb.zip" + }, + "Handler": "index.documentdb_handler", + "Role": { + "Fn::GetAtt": [ + "DocumentDBFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "DocumentDBFunctionMyDocumentDBEvent": { + "Properties": { + "DocumentDBEventSourceConfig": { + "DatabaseName": "db1" + }, + "EventSourceArn": { + "Fn::Sub": "arn:${AWS::Partition}:rds:us-west-2:123456789012:cluster:sample-cluster" + }, + "FunctionName": { + "Ref": "DocumentDBFunction" + }, + "SourceAccessConfigurations": [ + { + "Type": "BASIC_AUTH", + "URI": { + "Fn::Sub": "arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c" + } + } + ] + }, + "Type": "AWS::Lambda::EventSourceMapping" + }, + "DocumentDBFunctionRole": { + "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" + ], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "secretsmanager:GetSecretValue" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c" + } + }, + { + "Action": [ + "rds:DescribeDBClusterParameters" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:cluster-pg:*" + } + }, + { + "Action": [ + "rds:DescribeDBSubnetGroups" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:subgrp:*" + } + }, + { + "Action": [ + "rds:DescribeDBClusters" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:us-west-2:123456789012:cluster:sample-cluster" + } + }, + { + "Action": [ + "ec2:CreateNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DeleteNetworkInterface", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups" + ], + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "kms:Decrypt" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:kms:${AWS::Region}:${AWS::AccountId}:key/myKeyId" + } + } + ] + }, + "PolicyName": "SamAutoGeneratedDocumentDBPolicy" + } + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + } + } +} diff --git a/tests/translator/output/aws-us-gov/all_policy_templates.json b/tests/translator/output/aws-us-gov/all_policy_templates.json index 006c4bf50..481d9bf3b 100644 --- a/tests/translator/output/aws-us-gov/all_policy_templates.json +++ b/tests/translator/output/aws-us-gov/all_policy_templates.json @@ -1609,6 +1609,36 @@ ] }, "PolicyName": "KitchenSinkFunctionRolePolicy59" + }, + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "ssm:DescribeParameters" + ], + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "ssm:GetParameters", + "ssm:GetParameter", + "ssm:GetParametersByPath" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:ssm:${AWS::Region}:${AWS::AccountId}:parameter${parameterName}", + { + "parameterName": "/name" + } + ] + } + } + ] + }, + "PolicyName": "KitchenSinkFunctionRolePolicy60" } ], "Tags": [ diff --git a/tests/translator/output/aws-us-gov/basic_layer.json b/tests/translator/output/aws-us-gov/basic_layer.json index 94901714e..e92e95b29 100644 --- a/tests/translator/output/aws-us-gov/basic_layer.json +++ b/tests/translator/output/aws-us-gov/basic_layer.json @@ -14,12 +14,11 @@ } }, "Resources": { - "CompleteLayer5d71a60e81": { + "CompleteLayer429cb63b84": { "DeletionPolicy": "Retain", "Properties": { "CompatibleRuntimes": [ - "python3.6", - "python2.7" + "python3.9" ], "Content": { "S3Bucket": "sam-demo-bucket", diff --git a/tests/translator/output/aws-us-gov/connector_api_to_multiple_function.json b/tests/translator/output/aws-us-gov/connector_api_to_multiple_function.json new file mode 100644 index 000000000..2d69c2cf5 --- /dev/null +++ b/tests/translator/output/aws-us-gov/connector_api_to_multiple_function.json @@ -0,0 +1,210 @@ +{ + "Resources": { + "MyConnectorServerlessApiToLambdaWriteLambdaPermissionDestination0": { + "Metadata": { + "aws:sam:connectors": { + "MyConnectorServerlessApiToLambda": { + "Destination": { + "Type": "AWS::Lambda::Function" + }, + "Source": { + "Type": "AWS::Serverless::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": "MyServerlessApi" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyConnectorServerlessApiToLambdaWriteLambdaPermissionDestination1": { + "Metadata": { + "aws:sam:connectors": { + "MyConnectorServerlessApiToLambda": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::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": "MyServerlessApi" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "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": [ + "MyRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x" + }, + "Type": "AWS::Lambda::Function" + }, + "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" + }, + "MyServerlessApi": { + "Properties": { + "Body": { + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "paths": {}, + "swagger": "2.0" + }, + "EndpointConfiguration": { + "Types": [ + "REGIONAL" + ] + }, + "Parameters": { + "endpointConfigurationTypes": "REGIONAL" + } + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "MyServerlessApiDeployment5332c373d4": { + "Properties": { + "Description": "RestApi deployment id: 5332c373d45c69e6c0f562b4a419aa8eb311adc7", + "RestApiId": { + "Ref": "MyServerlessApi" + }, + "StageName": "Stage" + }, + "Type": "AWS::ApiGateway::Deployment" + }, + "MyServerlessApiProdStage": { + "Properties": { + "DeploymentId": { + "Ref": "MyServerlessApiDeployment5332c373d4" + }, + "RestApiId": { + "Ref": "MyServerlessApi" + }, + "StageName": "Prod" + }, + "Type": "AWS::ApiGateway::Stage" + }, + "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/aws-us-gov/connector_depends_on_attribute.json b/tests/translator/output/aws-us-gov/connector_depends_on_attribute.json new file mode 100644 index 000000000..ddbabbbf6 --- /dev/null +++ b/tests/translator/output/aws-us-gov/connector_depends_on_attribute.json @@ -0,0 +1,169 @@ +{ + "Resources": { + "MyConnectorsPolicy": { + "DependsOn": "SomeTable", + "Metadata": { + "aws:sam:connectors": { + "MyConnectors": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeAsync", + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyOtherFunction", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "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" + }, + "MyOtherFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyOtherFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyOtherFunctionRole": { + "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" + }, + "SomeTable": { + "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/connector_function_to_location.json b/tests/translator/output/aws-us-gov/connector_function_to_location.json new file mode 100644 index 000000000..0c62dc82f --- /dev/null +++ b/tests/translator/output/aws-us-gov/connector_function_to_location.json @@ -0,0 +1,150 @@ +{ + "Resources": { + "MyConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyConnector": { + "Destination": { + "Type": "AWS::Location::PlaceIndex" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:DescribePlaceIndex", + "geo:GetPlace", + "geo:SearchPlaceIndexForPosition", + "geo:SearchPlaceIndexForSuggestions", + "geo:SearchPlaceIndexForText" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": "arn:${AWS::Partition}:geo:us-east-1:123123123123:place-index/explore.place" + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "MyConnectorWithIdPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyConnectorWithId": { + "Destination": { + "Type": "AWS::Location::PlaceIndex" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:DescribePlaceIndex", + "geo:GetPlace", + "geo:SearchPlaceIndexForPosition", + "geo:SearchPlaceIndexForSuggestions", + "geo:SearchPlaceIndexForText" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyPlace", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "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" + }, + "MyPlace": { + "Properties": { + "DataSource": "Here", + "IndexName": "MyPlaceIndex" + }, + "Type": "AWS::Location::PlaceIndex" + } + } +} diff --git a/tests/translator/output/aws-us-gov/connector_function_to_multiple_s3.json b/tests/translator/output/aws-us-gov/connector_function_to_multiple_s3.json new file mode 100644 index 000000000..31b4387bc --- /dev/null +++ b/tests/translator/output/aws-us-gov/connector_function_to_multiple_s3.json @@ -0,0 +1,260 @@ +{ + "Resources": { + "MyBucket": { + "Type": "AWS::S3::Bucket" + }, + "MyBucket2": { + "Type": "AWS::S3::Bucket" + }, + "MyConnectorPolicyDestination0": { + "Metadata": { + "aws:sam:connectors": { + "MyConnector": { + "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": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "MyConnectorPolicyDestination1": { + "Metadata": { + "aws:sam:connectors": { + "MyConnector": { + "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": [ + "MyBucket2", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyBucket2", + "Arn" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "s3:AbortMultipartUpload", + "s3:DeleteObject", + "s3:DeleteObjectVersion", + "s3:PutObject", + "s3:PutObjectLegalHold", + "s3:PutObjectRetention", + "s3:RestoreObject" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyBucket2", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyBucket2", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "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" + } + } +} diff --git a/tests/translator/output/aws-us-gov/connector_mix_destination.json b/tests/translator/output/aws-us-gov/connector_mix_destination.json new file mode 100644 index 000000000..480013937 --- /dev/null +++ b/tests/translator/output/aws-us-gov/connector_mix_destination.json @@ -0,0 +1,328 @@ +{ + "Metadata": { + "SamTransformTest": true + }, + "Resources": { + "EventRule": { + "Properties": { + "Description": { + "Fn::Sub": "EventRule-${AWS::StackName}" + }, + "EventPattern": { + "source": [ + { + "Fn::Sub": "${AWS::StackName}-test-event" + } + ] + }, + "Targets": [ + { + "Arn": { + "Fn::GetAtt": [ + "Function", + "Arn" + ] + }, + "Id": "Target" + }, + { + "Arn": { + "Fn::GetAtt": [ + "VerificationQueue", + "Arn" + ] + }, + "Id": "Target2" + } + ] + }, + "Type": "AWS::Events::Rule" + }, + "Function": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\n\nexports.handler = async (event) => {\n const sqs = new AWS.SQS();\n await sqs.sendMessage({\n QueueUrl: process.env.QUEUE_URL,\n MessageBody: \"test\"\n }).promise();\n};\n" + }, + "Environment": { + "Variables": { + "QUEUE_URL": { + "Ref": "VerificationQueue" + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "FunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "FunctionRole": { + "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" + ], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:SendMessage*" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:sqs:${AWS::Region}:${AWS::AccountId}:${queueName}", + { + "queueName": { + "Fn::GetAtt": [ + "VerificationQueue", + "QueueName" + ] + } + } + ] + } + } + ] + }, + "PolicyName": "FunctionRolePolicy0" + } + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyConnectorQueuePolicyDestination1": { + "Metadata": { + "aws:sam:connectors": { + "MyConnector": { + "Destination": { + "Type": "AWS::SQS::Queue" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "sqs:SendMessage", + "Condition": { + "ArnEquals": { + "aws:SourceArn": { + "Fn::GetAtt": [ + "EventRule", + "Arn" + ] + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + }, + "Resource": { + "Fn::GetAtt": [ + "VerificationQueue", + "Arn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "Queues": [ + { + "Ref": "VerificationQueue" + } + ] + }, + "Type": "AWS::SQS::QueuePolicy" + }, + "MyConnectorWriteLambdaPermissionDestination0": { + "Metadata": { + "aws:sam:connectors": { + "MyConnector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "Function", + "Arn" + ] + }, + "Principal": "events.amazonaws.com", + "SourceArn": { + "Fn::GetAtt": [ + "EventRule", + "Arn" + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "TriggerFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\n\nexports.handler = async (event) => {\n const eb = new AWS.EventBridge();\n const response = await eb.putEvents({\n Entries: [{\n Source: process.env.EVENT_SOURCE,\n Detail: \"{}\",\n DetailType: \"Test\",\n }]\n }).promise();\n\n const sqs = new AWS.SQS();\n const data = await sqs.getQueueAttributes({\n QueueUrl: process.env.QUEUE_URL,\n AttributeNames: ['ApproximateNumberOfMessages']\n }).promise();\n\n if (data.Attributes.ApproximateNumberOfMessages < 2) {\n throw 'Not enough messages in the queue!';\n }\n};\n" + }, + "Environment": { + "Variables": { + "EVENT_SOURCE": { + "Fn::Sub": "${AWS::StackName}-test-event" + }, + "QUEUE_URL": { + "Ref": "VerificationQueue" + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "TriggerFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ], + "Timeout": 10 + }, + "Type": "AWS::Lambda::Function" + }, + "TriggerFunctionRole": { + "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" + ], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": "events:PutEvents", + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:event-bus/${eventBusName}", + { + "eventBusName": "default" + } + ] + } + } + ] + }, + "PolicyName": "TriggerFunctionRolePolicy0" + }, + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:ChangeMessageVisibility", + "sqs:ChangeMessageVisibilityBatch", + "sqs:DeleteMessage", + "sqs:DeleteMessageBatch", + "sqs:GetQueueAttributes", + "sqs:ReceiveMessage" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:sqs:${AWS::Region}:${AWS::AccountId}:${queueName}", + { + "queueName": { + "Fn::GetAtt": [ + "VerificationQueue", + "QueueName" + ] + } + } + ] + } + } + ] + }, + "PolicyName": "TriggerFunctionRolePolicy1" + } + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "VerificationQueue": { + "Type": "AWS::SQS::Queue" + } + } +} diff --git a/tests/translator/output/aws-us-gov/connector_resource_attributes.json b/tests/translator/output/aws-us-gov/connector_resource_attributes.json new file mode 100644 index 000000000..62965bb0c --- /dev/null +++ b/tests/translator/output/aws-us-gov/connector_resource_attributes.json @@ -0,0 +1,173 @@ +{ + "Conditions": { + "Cond": { + "Fn::Equals": [ + { + "Ref": "Param" + }, + "test1" + ] + } + }, + "Parameters": { + "Param": { + "AllowedValues": [ + "test1", + "test2" + ], + "Type": "String" + } + }, + "Resources": { + "MyConnectorsPolicy": { + "Condition": "Cond", + "DeletionPolicy": "Retain", + "Metadata": { + "aws:sam:connectors": { + "MyConnectors": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + }, + "foo": "bar" + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeAsync", + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyOtherFunction", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy", + "UpdateReplacePolicy": "Retain" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "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" + }, + "MyOtherFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyOtherFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyOtherFunctionRole": { + "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/connector_rule_to_multiple_sns.json b/tests/translator/output/aws-us-gov/connector_rule_to_multiple_sns.json new file mode 100644 index 000000000..14ce890af --- /dev/null +++ b/tests/translator/output/aws-us-gov/connector_rule_to_multiple_sns.json @@ -0,0 +1,132 @@ +{ + "Resources": { + "MyConnectorTopicPolicyDestination0": { + "Metadata": { + "aws:sam:connectors": { + "MyConnector": { + "Destination": { + "Type": "AWS::SNS::Topic" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "sns:Publish", + "Condition": { + "ArnEquals": { + "aws:SourceArn": { + "Fn::GetAtt": [ + "MyNewEventsRule", + "Arn" + ] + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + }, + "Resource": { + "Ref": "MySNSTopic" + } + } + ], + "Version": "2012-10-17" + }, + "Topics": [ + { + "Ref": "MySNSTopic" + } + ] + }, + "Type": "AWS::SNS::TopicPolicy" + }, + "MyConnectorTopicPolicyDestination1": { + "Metadata": { + "aws:sam:connectors": { + "MyConnector": { + "Destination": { + "Type": "AWS::SNS::Topic" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "sns:Publish", + "Condition": { + "ArnEquals": { + "aws:SourceArn": { + "Fn::GetAtt": [ + "MyNewEventsRule", + "Arn" + ] + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + }, + "Resource": { + "Ref": "MySNSTopic2" + } + } + ], + "Version": "2012-10-17" + }, + "Topics": [ + { + "Ref": "MySNSTopic2" + } + ] + }, + "Type": "AWS::SNS::TopicPolicy" + }, + "MyNewEventsRule": { + "Properties": { + "EventPattern": { + "source": [ + "aws.ec2" + ] + }, + "Name": "mynewabc", + "State": "ENABLED" + }, + "Type": "AWS::Events::Rule" + }, + "MyRuleRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + } + } + ] + } + }, + "Type": "AWS::IAM::Role" + }, + "MySNSTopic": { + "Type": "AWS::SNS::Topic" + }, + "MySNSTopic2": { + "Type": "AWS::SNS::Topic" + } + } +} diff --git a/tests/translator/output/aws-us-gov/connector_sqs_to_multiple_function.json b/tests/translator/output/aws-us-gov/connector_sqs_to_multiple_function.json new file mode 100644 index 000000000..b4cd82c8e --- /dev/null +++ b/tests/translator/output/aws-us-gov/connector_sqs_to_multiple_function.json @@ -0,0 +1,332 @@ +{ + "Resources": { + "ConnectorPolicyDestination0": { + "Metadata": { + "aws:sam:connectors": { + "Connector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::SQS::Queue" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:DeleteMessage" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "Queue", + "Arn" + ] + } + ] + }, + { + "Action": [ + "sqs:ReceiveMessage", + "sqs:GetQueueAttributes" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "Queue", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "InvokedFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "ConnectorPolicyDestination1": { + "Metadata": { + "aws:sam:connectors": { + "Connector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::SQS::Queue" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:DeleteMessage" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "Queue", + "Arn" + ] + } + ] + }, + { + "Action": [ + "sqs:ReceiveMessage", + "sqs:GetQueueAttributes" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "Queue", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "InvokedFunction2Role" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "InvokedFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n const sqs = new AWS.SQS();\n await sqs.sendMessage({\n QueueUrl: process.env.VERIFICATION_QUEUE_URL,\n MessageBody: \"test\"\n }).promise();\n};\n" + }, + "Environment": { + "Variables": { + "VERIFICATION_QUEUE_URL": { + "Ref": "VerificationQueue" + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "InvokedFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "InvokedFunction2": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n const sqs = new AWS.SQS();\n await sqs.sendMessage({\n QueueUrl: process.env.VERIFICATION_QUEUE_URL,\n MessageBody: \"test\"\n }).promise();\n};\n" + }, + "Environment": { + "Variables": { + "VERIFICATION_QUEUE_URL": { + "Ref": "VerificationQueue" + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "InvokedFunction2Role", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "InvokedFunction2Role": { + "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" + ], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:SendMessage*" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:sqs:${AWS::Region}:${AWS::AccountId}:${queueName}", + { + "queueName": { + "Fn::GetAtt": [ + "VerificationQueue", + "QueueName" + ] + } + } + ] + } + } + ] + }, + "PolicyName": "InvokedFunction2RolePolicy0" + } + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "InvokedFunctionRole": { + "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" + ], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:SendMessage*" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:sqs:${AWS::Region}:${AWS::AccountId}:${queueName}", + { + "queueName": { + "Fn::GetAtt": [ + "VerificationQueue", + "QueueName" + ] + } + } + ] + } + } + ] + }, + "PolicyName": "InvokedFunctionRolePolicy0" + } + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "Queue": { + "Type": "AWS::SQS::Queue" + }, + "SQSEventSourceMapping": { + "DependsOn": [ + "ConnectorPolicyDestination0" + ], + "Properties": { + "BatchSize": 10, + "EventSourceArn": { + "Fn::GetAtt": [ + "Queue", + "Arn" + ] + }, + "FunctionName": { + "Ref": "InvokedFunction" + } + }, + "Type": "AWS::Lambda::EventSourceMapping" + }, + "SQSEventSourceMapping2": { + "DependsOn": [ + "ConnectorPolicyDestination1" + ], + "Properties": { + "BatchSize": 10, + "EventSourceArn": { + "Fn::GetAtt": [ + "Queue", + "Arn" + ] + }, + "FunctionName": { + "Ref": "InvokedFunction2" + } + }, + "Type": "AWS::Lambda::EventSourceMapping" + }, + "VerificationQueue": { + "Type": "AWS::SQS::Queue" + } + } +} diff --git a/tests/translator/output/aws-us-gov/documentdb_with_intrinsics.json b/tests/translator/output/aws-us-gov/documentdb_with_intrinsics.json new file mode 100644 index 000000000..5f0a11356 --- /dev/null +++ b/tests/translator/output/aws-us-gov/documentdb_with_intrinsics.json @@ -0,0 +1,154 @@ +{ + "Parameters": { + "BatchSizeValue": { + "Default": 100, + "Type": "Number" + }, + "EnableValue": { + "Default": true, + "Type": "String" + } + }, + "Resources": { + "DocumentDBFunction": { + "Properties": { + "Code": { + "S3Bucket": "sam-app-test-156327056618", + "S3Key": "lambda-function.zip" + }, + "Handler": "lambda_function.lambda_handler", + "Role": { + "Fn::GetAtt": [ + "DocumentDBFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "DocumentDBFunctionMyDocumentDBEvent": { + "Properties": { + "BatchSize": { + "Ref": "BatchSizeValue" + }, + "DocumentDBEventSourceConfig": { + "CollectionName": "collection1", + "DatabaseName": "db1", + "FullDocument": "UpdateLookup" + }, + "Enabled": { + "Ref": "EnableValue" + }, + "EventSourceArn": { + "Fn::Sub": "arn:${AWS::Partition}:rds:us-east-1:156327056618:cluster:docdb-2022-11-08-00-10-05r" + }, + "FunctionName": { + "Ref": "DocumentDBFunction" + }, + "SourceAccessConfigurations": [ + { + "Type": "BASIC_AUTH", + "URI": { + "Fn::Sub": "arn:${AWS::Partition}:secretsmanager:us-east-1:156327056618:secret:abc-sy7Vjx" + } + } + ] + }, + "Type": "AWS::Lambda::EventSourceMapping" + }, + "DocumentDBFunctionRole": { + "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" + ], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "secretsmanager:GetSecretValue" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:secretsmanager:us-east-1:156327056618:secret:abc-sy7Vjx" + } + }, + { + "Action": [ + "rds:DescribeDBClusterParameters" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:cluster-pg:*" + } + }, + { + "Action": [ + "rds:DescribeDBSubnetGroups" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:subgrp:*" + } + }, + { + "Action": [ + "rds:DescribeDBClusters" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:us-east-1:156327056618:cluster:docdb-2022-11-08-00-10-05r" + } + }, + { + "Action": [ + "ec2:CreateNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DeleteNetworkInterface", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups" + ], + "Effect": "Allow", + "Resource": "*" + } + ] + }, + "PolicyName": "SamAutoGeneratedDocumentDBPolicy" + } + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + } + } +} diff --git a/tests/translator/output/aws-us-gov/embedded_connector_function_to_multi_dest.json b/tests/translator/output/aws-us-gov/embedded_connector_function_to_multi_dest.json new file mode 100644 index 000000000..a6c927d57 --- /dev/null +++ b/tests/translator/output/aws-us-gov/embedded_connector_function_to_multi_dest.json @@ -0,0 +1,220 @@ +{ + "Resources": { + "MyBucket": { + "Type": "AWS::S3::Bucket" + }, + "MyQueue": { + "Type": "AWS::SQS::Queue" + }, + "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" + }, + "MyServerlessFunctionMixedDestConnectorPolicyDestination0": { + "Metadata": { + "aws:sam:connectors": { + "MyServerlessFunctionMixedDestConnector": { + "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" + }, + "MyServerlessFunctionMixedDestConnectorPolicyDestination1": { + "Metadata": { + "aws:sam:connectors": { + "MyServerlessFunctionMixedDestConnector": { + "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" + }, + "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/aws-us-gov/embedded_connectors_depends_on_attribute.json b/tests/translator/output/aws-us-gov/embedded_connectors_depends_on_attribute.json new file mode 100644 index 000000000..91f44896e --- /dev/null +++ b/tests/translator/output/aws-us-gov/embedded_connectors_depends_on_attribute.json @@ -0,0 +1,169 @@ +{ + "Resources": { + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionMyConnectorPolicy": { + "DependsOn": "SomeTable", + "Metadata": { + "aws:sam:connectors": { + "MyFunctionMyConnector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeAsync", + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyOtherFunction", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "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" + }, + "MyOtherFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyOtherFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyOtherFunctionRole": { + "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" + }, + "SomeTable": { + "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_resource_attributes.json b/tests/translator/output/aws-us-gov/embedded_connectors_resource_attributes.json new file mode 100644 index 000000000..01252999e --- /dev/null +++ b/tests/translator/output/aws-us-gov/embedded_connectors_resource_attributes.json @@ -0,0 +1,173 @@ +{ + "Conditions": { + "Cond": { + "Fn::Equals": [ + { + "Ref": "Param" + }, + "test1" + ] + } + }, + "Parameters": { + "Param": { + "AllowedValues": [ + "test1", + "test2" + ], + "Type": "String" + } + }, + "Resources": { + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionMyConnectorPolicy": { + "Condition": "Cond", + "DeletionPolicy": "Retain", + "Metadata": { + "aws:sam:connectors": { + "MyFunctionMyConnector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + }, + "foo": "bar" + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeAsync", + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyOtherFunction", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy", + "UpdateReplacePolicy": "Retain" + }, + "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" + }, + "MyOtherFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyOtherFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyOtherFunctionRole": { + "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/function_with_alias_all_properties_and_code_sha256.json b/tests/translator/output/aws-us-gov/function_with_alias_all_properties_and_code_sha256.json new file mode 100644 index 000000000..fa1561531 --- /dev/null +++ b/tests/translator/output/aws-us-gov/function_with_alias_all_properties_and_code_sha256.json @@ -0,0 +1,82 @@ +{ + "Resources": { + "MinimalFunction": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "MinimalFunctionRole", + "Arn" + ] + }, + "Runtime": "python2.7", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MinimalFunctionAliaslive": { + "Properties": { + "FunctionName": { + "Ref": "MinimalFunction" + }, + "FunctionVersion": { + "Fn::GetAtt": [ + "MinimalFunctionVersion6b86b273ff", + "Version" + ] + }, + "Name": "live" + }, + "Type": "AWS::Lambda::Alias" + }, + "MinimalFunctionRole": { + "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" + }, + "MinimalFunctionVersion6b86b273ff": { + "DeletionPolicy": "Retain", + "Properties": { + "Description": "sam-testing", + "FunctionName": { + "Ref": "MinimalFunction" + } + }, + "Type": "AWS::Lambda::Version" + } + } +} diff --git a/tests/translator/output/aws-us-gov/function_with_alias_and_all_properties_property.json b/tests/translator/output/aws-us-gov/function_with_alias_and_all_properties_property.json new file mode 100644 index 000000000..fed1deb8d --- /dev/null +++ b/tests/translator/output/aws-us-gov/function_with_alias_and_all_properties_property.json @@ -0,0 +1,333 @@ +{ + "Resources": { + "AccessPoint": { + "Properties": { + "FileSystemId": { + "Ref": "EfsFileSystem" + } + }, + "Type": "AWS::EFS::AccessPoint" + }, + "EfsFileSystem": { + "Type": "AWS::EFS::FileSystem" + }, + "HashChangeFunction": { + "Properties": { + "Architectures": [ + "x86_64" + ], + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "EphemeralStorage": { + "Size": 1024 + }, + "FileSystemConfigs": [ + { + "Arn": { + "Fn::GetAtt": [ + "AccessPoint", + "Arn" + ] + }, + "LocalMountPath": "/mnt/EFS" + } + ], + "Handler": "hello.handler", + "KmsKeyArn": { + "Fn::Sub": "arn:${AWS::Partition}:key:key" + }, + "Layers": [ + { + "Fn::Sub": "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:layer:MyLayer:1" + } + ], + "PackageType": "Zip", + "ReservedConcurrentExecutions": 100, + "Role": { + "Fn::Sub": "arn:${AWS::Partition}:iam::role" + }, + "Runtime": "python2.7", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ], + "Timeout": 1, + "VpcConfig": { + "SecurityGroupIds": [ + "sg-085912345678492fb" + ], + "SubnetIds": [ + "subnet-071f712345678e7c8" + ] + } + }, + "Type": "AWS::Lambda::Function" + }, + "HashChangeFunctionAliaslive": { + "Properties": { + "FunctionName": { + "Ref": "HashChangeFunction" + }, + "FunctionVersion": { + "Fn::GetAtt": [ + "HashChangeFunctionVersion17ca83d2bf", + "Version" + ] + }, + "Name": "live" + }, + "Type": "AWS::Lambda::Alias" + }, + "HashChangeFunctionVersion17ca83d2bf": { + "DeletionPolicy": "Retain", + "Properties": { + "Description": "sam-testing", + "FunctionName": { + "Ref": "HashChangeFunction" + } + }, + "Type": "AWS::Lambda::Version" + }, + "HashNoChangeFunction": { + "Properties": { + "Architectures": [ + "x86_64" + ], + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "EphemeralStorage": { + "Size": 1024 + }, + "FileSystemConfigs": [ + { + "Arn": { + "Fn::GetAtt": [ + "AccessPoint", + "Arn" + ] + }, + "LocalMountPath": "/mnt/EFS" + } + ], + "Handler": "hello.handler", + "KmsKeyArn": { + "Fn::Sub": "arn:${AWS::Partition}:key:key" + }, + "Layers": [ + { + "Fn::Sub": "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:layer:MyLayer:1" + } + ], + "PackageType": "Zip", + "ReservedConcurrentExecutions": 100, + "Role": { + "Fn::Sub": "arn:${AWS::Partition}:iam::role" + }, + "Runtime": "python2.7", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ], + "Timeout": 1, + "VpcConfig": { + "SecurityGroupIds": [ + "sg-085912345678492fb" + ], + "SubnetIds": [ + "subnet-071f712345678e7c8" + ] + } + }, + "Type": "AWS::Lambda::Function" + }, + "HashNoChangeFunctionAliaslive": { + "Properties": { + "FunctionName": { + "Ref": "HashNoChangeFunction" + }, + "FunctionVersion": { + "Fn::GetAtt": [ + "HashNoChangeFunctionVersion640128d35d", + "Version" + ] + }, + "Name": "live" + }, + "Type": "AWS::Lambda::Alias" + }, + "HashNoChangeFunctionVersion640128d35d": { + "DeletionPolicy": "Retain", + "Properties": { + "Description": "sam-testing", + "FunctionName": { + "Ref": "HashNoChangeFunction" + } + }, + "Type": "AWS::Lambda::Version" + }, + "MinimalFunction": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "MinimalFunctionRole", + "Arn" + ] + }, + "Runtime": "python2.7", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MinimalFunctionAliaslive": { + "Properties": { + "FunctionName": { + "Ref": "MinimalFunction" + }, + "FunctionVersion": { + "Fn::GetAtt": [ + "MinimalFunctionVersion62bebcf0c1", + "Version" + ] + }, + "Name": "live" + }, + "Type": "AWS::Lambda::Alias" + }, + "MinimalFunctionRole": { + "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" + }, + "MinimalFunctionVersion62bebcf0c1": { + "DeletionPolicy": "Retain", + "Properties": { + "Description": "sam-testing", + "FunctionName": { + "Ref": "MinimalFunction" + } + }, + "Type": "AWS::Lambda::Version" + }, + "OtherMinimalFunction": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "OtherMinimalFunctionRole", + "Arn" + ] + }, + "Runtime": "python2.7", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "OtherMinimalFunctionAliaslive": { + "Properties": { + "FunctionName": { + "Ref": "OtherMinimalFunction" + }, + "FunctionVersion": { + "Fn::GetAtt": [ + "OtherMinimalFunctionVersion640128d35d", + "Version" + ] + }, + "Name": "live" + }, + "Type": "AWS::Lambda::Alias" + }, + "OtherMinimalFunctionRole": { + "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" + }, + "OtherMinimalFunctionVersion640128d35d": { + "DeletionPolicy": "Retain", + "Properties": { + "Description": "sam-testing", + "FunctionName": { + "Ref": "OtherMinimalFunction" + } + }, + "Type": "AWS::Lambda::Version" + } + } +} diff --git a/tests/translator/output/aws-us-gov/function_with_documentdb.json b/tests/translator/output/aws-us-gov/function_with_documentdb.json new file mode 100644 index 000000000..38c8a4153 --- /dev/null +++ b/tests/translator/output/aws-us-gov/function_with_documentdb.json @@ -0,0 +1,138 @@ +{ + "Resources": { + "DocumentDBFunction": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "documentdb.zip" + }, + "Handler": "index.documentdb_handler", + "Role": { + "Fn::GetAtt": [ + "DocumentDBFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "DocumentDBFunctionMyDocumentDBEvent": { + "Properties": { + "DocumentDBEventSourceConfig": { + "CollectionName": "collection1", + "DatabaseName": "db1", + "FullDocument": "UpdateLookup" + }, + "EventSourceArn": { + "Fn::Sub": "arn:${AWS::Partition}:rds:us-west-2:123456789012:cluster:sample-cluster" + }, + "FunctionName": { + "Ref": "DocumentDBFunction" + }, + "SourceAccessConfigurations": [ + { + "Type": "BASIC_AUTH", + "URI": { + "Fn::Sub": "arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c" + } + } + ] + }, + "Type": "AWS::Lambda::EventSourceMapping" + }, + "DocumentDBFunctionRole": { + "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" + ], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "secretsmanager:GetSecretValue" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c" + } + }, + { + "Action": [ + "rds:DescribeDBClusterParameters" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:cluster-pg:*" + } + }, + { + "Action": [ + "rds:DescribeDBSubnetGroups" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:subgrp:*" + } + }, + { + "Action": [ + "rds:DescribeDBClusters" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:us-west-2:123456789012:cluster:sample-cluster" + } + }, + { + "Action": [ + "ec2:CreateNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DeleteNetworkInterface", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups" + ], + "Effect": "Allow", + "Resource": "*" + } + ] + }, + "PolicyName": "SamAutoGeneratedDocumentDBPolicy" + } + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + } + } +} diff --git a/tests/translator/output/aws-us-gov/function_with_documentdb_with_kms.json b/tests/translator/output/aws-us-gov/function_with_documentdb_with_kms.json new file mode 100644 index 000000000..38afd0270 --- /dev/null +++ b/tests/translator/output/aws-us-gov/function_with_documentdb_with_kms.json @@ -0,0 +1,145 @@ +{ + "Resources": { + "DocumentDBFunction": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "documentdb.zip" + }, + "Handler": "index.documentdb_handler", + "Role": { + "Fn::GetAtt": [ + "DocumentDBFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "DocumentDBFunctionMyDocumentDBEvent": { + "Properties": { + "DocumentDBEventSourceConfig": { + "DatabaseName": "db1" + }, + "EventSourceArn": { + "Fn::Sub": "arn:${AWS::Partition}:rds:us-west-2:123456789012:cluster:sample-cluster" + }, + "FunctionName": { + "Ref": "DocumentDBFunction" + }, + "SourceAccessConfigurations": [ + { + "Type": "BASIC_AUTH", + "URI": { + "Fn::Sub": "arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c" + } + } + ] + }, + "Type": "AWS::Lambda::EventSourceMapping" + }, + "DocumentDBFunctionRole": { + "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" + ], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "secretsmanager:GetSecretValue" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c" + } + }, + { + "Action": [ + "rds:DescribeDBClusterParameters" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:cluster-pg:*" + } + }, + { + "Action": [ + "rds:DescribeDBSubnetGroups" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:subgrp:*" + } + }, + { + "Action": [ + "rds:DescribeDBClusters" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:us-west-2:123456789012:cluster:sample-cluster" + } + }, + { + "Action": [ + "ec2:CreateNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DeleteNetworkInterface", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups" + ], + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "kms:Decrypt" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:kms:${AWS::Region}:${AWS::AccountId}:key/myKeyId" + } + } + ] + }, + "PolicyName": "SamAutoGeneratedDocumentDBPolicy" + } + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + } + } +} diff --git a/tests/translator/output/basic_layer.json b/tests/translator/output/basic_layer.json index 94901714e..e92e95b29 100644 --- a/tests/translator/output/basic_layer.json +++ b/tests/translator/output/basic_layer.json @@ -14,12 +14,11 @@ } }, "Resources": { - "CompleteLayer5d71a60e81": { + "CompleteLayer429cb63b84": { "DeletionPolicy": "Retain", "Properties": { "CompatibleRuntimes": [ - "python3.6", - "python2.7" + "python3.9" ], "Content": { "S3Bucket": "sam-demo-bucket", diff --git a/tests/translator/output/connector_api_to_multiple_function.json b/tests/translator/output/connector_api_to_multiple_function.json new file mode 100644 index 000000000..af9968606 --- /dev/null +++ b/tests/translator/output/connector_api_to_multiple_function.json @@ -0,0 +1,202 @@ +{ + "Resources": { + "MyConnectorServerlessApiToLambdaWriteLambdaPermissionDestination0": { + "Metadata": { + "aws:sam:connectors": { + "MyConnectorServerlessApiToLambda": { + "Destination": { + "Type": "AWS::Lambda::Function" + }, + "Source": { + "Type": "AWS::Serverless::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": "MyServerlessApi" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyConnectorServerlessApiToLambdaWriteLambdaPermissionDestination1": { + "Metadata": { + "aws:sam:connectors": { + "MyConnectorServerlessApiToLambda": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::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": "MyServerlessApi" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "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": [ + "MyRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x" + }, + "Type": "AWS::Lambda::Function" + }, + "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" + }, + "MyServerlessApi": { + "Properties": { + "Body": { + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "paths": {}, + "swagger": "2.0" + } + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "MyServerlessApiDeployment5332c373d4": { + "Properties": { + "Description": "RestApi deployment id: 5332c373d45c69e6c0f562b4a419aa8eb311adc7", + "RestApiId": { + "Ref": "MyServerlessApi" + }, + "StageName": "Stage" + }, + "Type": "AWS::ApiGateway::Deployment" + }, + "MyServerlessApiProdStage": { + "Properties": { + "DeploymentId": { + "Ref": "MyServerlessApiDeployment5332c373d4" + }, + "RestApiId": { + "Ref": "MyServerlessApi" + }, + "StageName": "Prod" + }, + "Type": "AWS::ApiGateway::Stage" + }, + "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" + } + } +} diff --git a/tests/translator/output/connector_depends_on_attribute.json b/tests/translator/output/connector_depends_on_attribute.json new file mode 100644 index 000000000..f4fbdcfe7 --- /dev/null +++ b/tests/translator/output/connector_depends_on_attribute.json @@ -0,0 +1,169 @@ +{ + "Resources": { + "MyConnectorsPolicy": { + "DependsOn": "SomeTable", + "Metadata": { + "aws:sam:connectors": { + "MyConnectors": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeAsync", + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyOtherFunction", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "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" + }, + "MyOtherFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyOtherFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyOtherFunctionRole": { + "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" + }, + "SomeTable": { + "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/connector_function_to_location.json b/tests/translator/output/connector_function_to_location.json new file mode 100644 index 000000000..36b646c83 --- /dev/null +++ b/tests/translator/output/connector_function_to_location.json @@ -0,0 +1,150 @@ +{ + "Resources": { + "MyConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyConnector": { + "Destination": { + "Type": "AWS::Location::PlaceIndex" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:DescribePlaceIndex", + "geo:GetPlace", + "geo:SearchPlaceIndexForPosition", + "geo:SearchPlaceIndexForSuggestions", + "geo:SearchPlaceIndexForText" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": "arn:${AWS::Partition}:geo:us-east-1:123123123123:place-index/explore.place" + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "MyConnectorWithIdPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyConnectorWithId": { + "Destination": { + "Type": "AWS::Location::PlaceIndex" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "geo:DescribePlaceIndex", + "geo:GetPlace", + "geo:SearchPlaceIndexForPosition", + "geo:SearchPlaceIndexForSuggestions", + "geo:SearchPlaceIndexForText" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyPlace", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "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" + }, + "MyPlace": { + "Properties": { + "DataSource": "Here", + "IndexName": "MyPlaceIndex" + }, + "Type": "AWS::Location::PlaceIndex" + } + } +} diff --git a/tests/translator/output/connector_function_to_multiple_s3.json b/tests/translator/output/connector_function_to_multiple_s3.json new file mode 100644 index 000000000..8368e5841 --- /dev/null +++ b/tests/translator/output/connector_function_to_multiple_s3.json @@ -0,0 +1,260 @@ +{ + "Resources": { + "MyBucket": { + "Type": "AWS::S3::Bucket" + }, + "MyBucket2": { + "Type": "AWS::S3::Bucket" + }, + "MyConnectorPolicyDestination0": { + "Metadata": { + "aws:sam:connectors": { + "MyConnector": { + "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": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "MyConnectorPolicyDestination1": { + "Metadata": { + "aws:sam:connectors": { + "MyConnector": { + "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": [ + "MyBucket2", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyBucket2", + "Arn" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "s3:AbortMultipartUpload", + "s3:DeleteObject", + "s3:DeleteObjectVersion", + "s3:PutObject", + "s3:PutObjectLegalHold", + "s3:PutObjectRetention", + "s3:RestoreObject" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyBucket2", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyBucket2", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "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" + } + } +} diff --git a/tests/translator/output/connector_mix_destination.json b/tests/translator/output/connector_mix_destination.json new file mode 100644 index 000000000..4fe0d40da --- /dev/null +++ b/tests/translator/output/connector_mix_destination.json @@ -0,0 +1,328 @@ +{ + "Metadata": { + "SamTransformTest": true + }, + "Resources": { + "EventRule": { + "Properties": { + "Description": { + "Fn::Sub": "EventRule-${AWS::StackName}" + }, + "EventPattern": { + "source": [ + { + "Fn::Sub": "${AWS::StackName}-test-event" + } + ] + }, + "Targets": [ + { + "Arn": { + "Fn::GetAtt": [ + "Function", + "Arn" + ] + }, + "Id": "Target" + }, + { + "Arn": { + "Fn::GetAtt": [ + "VerificationQueue", + "Arn" + ] + }, + "Id": "Target2" + } + ] + }, + "Type": "AWS::Events::Rule" + }, + "Function": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\n\nexports.handler = async (event) => {\n const sqs = new AWS.SQS();\n await sqs.sendMessage({\n QueueUrl: process.env.QUEUE_URL,\n MessageBody: \"test\"\n }).promise();\n};\n" + }, + "Environment": { + "Variables": { + "QUEUE_URL": { + "Ref": "VerificationQueue" + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "FunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "FunctionRole": { + "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" + ], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:SendMessage*" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:sqs:${AWS::Region}:${AWS::AccountId}:${queueName}", + { + "queueName": { + "Fn::GetAtt": [ + "VerificationQueue", + "QueueName" + ] + } + } + ] + } + } + ] + }, + "PolicyName": "FunctionRolePolicy0" + } + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyConnectorQueuePolicyDestination1": { + "Metadata": { + "aws:sam:connectors": { + "MyConnector": { + "Destination": { + "Type": "AWS::SQS::Queue" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "sqs:SendMessage", + "Condition": { + "ArnEquals": { + "aws:SourceArn": { + "Fn::GetAtt": [ + "EventRule", + "Arn" + ] + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + }, + "Resource": { + "Fn::GetAtt": [ + "VerificationQueue", + "Arn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "Queues": [ + { + "Ref": "VerificationQueue" + } + ] + }, + "Type": "AWS::SQS::QueuePolicy" + }, + "MyConnectorWriteLambdaPermissionDestination0": { + "Metadata": { + "aws:sam:connectors": { + "MyConnector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "Function", + "Arn" + ] + }, + "Principal": "events.amazonaws.com", + "SourceArn": { + "Fn::GetAtt": [ + "EventRule", + "Arn" + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "TriggerFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\n\nexports.handler = async (event) => {\n const eb = new AWS.EventBridge();\n const response = await eb.putEvents({\n Entries: [{\n Source: process.env.EVENT_SOURCE,\n Detail: \"{}\",\n DetailType: \"Test\",\n }]\n }).promise();\n\n const sqs = new AWS.SQS();\n const data = await sqs.getQueueAttributes({\n QueueUrl: process.env.QUEUE_URL,\n AttributeNames: ['ApproximateNumberOfMessages']\n }).promise();\n\n if (data.Attributes.ApproximateNumberOfMessages < 2) {\n throw 'Not enough messages in the queue!';\n }\n};\n" + }, + "Environment": { + "Variables": { + "EVENT_SOURCE": { + "Fn::Sub": "${AWS::StackName}-test-event" + }, + "QUEUE_URL": { + "Ref": "VerificationQueue" + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "TriggerFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ], + "Timeout": 10 + }, + "Type": "AWS::Lambda::Function" + }, + "TriggerFunctionRole": { + "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" + ], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": "events:PutEvents", + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:event-bus/${eventBusName}", + { + "eventBusName": "default" + } + ] + } + } + ] + }, + "PolicyName": "TriggerFunctionRolePolicy0" + }, + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:ChangeMessageVisibility", + "sqs:ChangeMessageVisibilityBatch", + "sqs:DeleteMessage", + "sqs:DeleteMessageBatch", + "sqs:GetQueueAttributes", + "sqs:ReceiveMessage" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:sqs:${AWS::Region}:${AWS::AccountId}:${queueName}", + { + "queueName": { + "Fn::GetAtt": [ + "VerificationQueue", + "QueueName" + ] + } + } + ] + } + } + ] + }, + "PolicyName": "TriggerFunctionRolePolicy1" + } + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "VerificationQueue": { + "Type": "AWS::SQS::Queue" + } + } +} diff --git a/tests/translator/output/connector_resource_attributes.json b/tests/translator/output/connector_resource_attributes.json new file mode 100644 index 000000000..d5262516e --- /dev/null +++ b/tests/translator/output/connector_resource_attributes.json @@ -0,0 +1,173 @@ +{ + "Conditions": { + "Cond": { + "Fn::Equals": [ + { + "Ref": "Param" + }, + "test1" + ] + } + }, + "Parameters": { + "Param": { + "AllowedValues": [ + "test1", + "test2" + ], + "Type": "String" + } + }, + "Resources": { + "MyConnectorsPolicy": { + "Condition": "Cond", + "DeletionPolicy": "Retain", + "Metadata": { + "aws:sam:connectors": { + "MyConnectors": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + }, + "foo": "bar" + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeAsync", + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyOtherFunction", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy", + "UpdateReplacePolicy": "Retain" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "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" + }, + "MyOtherFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyOtherFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyOtherFunctionRole": { + "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/connector_rule_to_multiple_sns.json b/tests/translator/output/connector_rule_to_multiple_sns.json new file mode 100644 index 000000000..14ce890af --- /dev/null +++ b/tests/translator/output/connector_rule_to_multiple_sns.json @@ -0,0 +1,132 @@ +{ + "Resources": { + "MyConnectorTopicPolicyDestination0": { + "Metadata": { + "aws:sam:connectors": { + "MyConnector": { + "Destination": { + "Type": "AWS::SNS::Topic" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "sns:Publish", + "Condition": { + "ArnEquals": { + "aws:SourceArn": { + "Fn::GetAtt": [ + "MyNewEventsRule", + "Arn" + ] + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + }, + "Resource": { + "Ref": "MySNSTopic" + } + } + ], + "Version": "2012-10-17" + }, + "Topics": [ + { + "Ref": "MySNSTopic" + } + ] + }, + "Type": "AWS::SNS::TopicPolicy" + }, + "MyConnectorTopicPolicyDestination1": { + "Metadata": { + "aws:sam:connectors": { + "MyConnector": { + "Destination": { + "Type": "AWS::SNS::Topic" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "sns:Publish", + "Condition": { + "ArnEquals": { + "aws:SourceArn": { + "Fn::GetAtt": [ + "MyNewEventsRule", + "Arn" + ] + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + }, + "Resource": { + "Ref": "MySNSTopic2" + } + } + ], + "Version": "2012-10-17" + }, + "Topics": [ + { + "Ref": "MySNSTopic2" + } + ] + }, + "Type": "AWS::SNS::TopicPolicy" + }, + "MyNewEventsRule": { + "Properties": { + "EventPattern": { + "source": [ + "aws.ec2" + ] + }, + "Name": "mynewabc", + "State": "ENABLED" + }, + "Type": "AWS::Events::Rule" + }, + "MyRuleRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + } + } + ] + } + }, + "Type": "AWS::IAM::Role" + }, + "MySNSTopic": { + "Type": "AWS::SNS::Topic" + }, + "MySNSTopic2": { + "Type": "AWS::SNS::Topic" + } + } +} diff --git a/tests/translator/output/connector_sqs_to_multiple_function.json b/tests/translator/output/connector_sqs_to_multiple_function.json new file mode 100644 index 000000000..9cfa86b87 --- /dev/null +++ b/tests/translator/output/connector_sqs_to_multiple_function.json @@ -0,0 +1,332 @@ +{ + "Resources": { + "ConnectorPolicyDestination0": { + "Metadata": { + "aws:sam:connectors": { + "Connector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::SQS::Queue" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:DeleteMessage" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "Queue", + "Arn" + ] + } + ] + }, + { + "Action": [ + "sqs:ReceiveMessage", + "sqs:GetQueueAttributes" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "Queue", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "InvokedFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "ConnectorPolicyDestination1": { + "Metadata": { + "aws:sam:connectors": { + "Connector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::SQS::Queue" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:DeleteMessage" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "Queue", + "Arn" + ] + } + ] + }, + { + "Action": [ + "sqs:ReceiveMessage", + "sqs:GetQueueAttributes" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "Queue", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "InvokedFunction2Role" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "InvokedFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n const sqs = new AWS.SQS();\n await sqs.sendMessage({\n QueueUrl: process.env.VERIFICATION_QUEUE_URL,\n MessageBody: \"test\"\n }).promise();\n};\n" + }, + "Environment": { + "Variables": { + "VERIFICATION_QUEUE_URL": { + "Ref": "VerificationQueue" + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "InvokedFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "InvokedFunction2": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n const sqs = new AWS.SQS();\n await sqs.sendMessage({\n QueueUrl: process.env.VERIFICATION_QUEUE_URL,\n MessageBody: \"test\"\n }).promise();\n};\n" + }, + "Environment": { + "Variables": { + "VERIFICATION_QUEUE_URL": { + "Ref": "VerificationQueue" + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "InvokedFunction2Role", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "InvokedFunction2Role": { + "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" + ], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:SendMessage*" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:sqs:${AWS::Region}:${AWS::AccountId}:${queueName}", + { + "queueName": { + "Fn::GetAtt": [ + "VerificationQueue", + "QueueName" + ] + } + } + ] + } + } + ] + }, + "PolicyName": "InvokedFunction2RolePolicy0" + } + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "InvokedFunctionRole": { + "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" + ], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:SendMessage*" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:sqs:${AWS::Region}:${AWS::AccountId}:${queueName}", + { + "queueName": { + "Fn::GetAtt": [ + "VerificationQueue", + "QueueName" + ] + } + } + ] + } + } + ] + }, + "PolicyName": "InvokedFunctionRolePolicy0" + } + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "Queue": { + "Type": "AWS::SQS::Queue" + }, + "SQSEventSourceMapping": { + "DependsOn": [ + "ConnectorPolicyDestination0" + ], + "Properties": { + "BatchSize": 10, + "EventSourceArn": { + "Fn::GetAtt": [ + "Queue", + "Arn" + ] + }, + "FunctionName": { + "Ref": "InvokedFunction" + } + }, + "Type": "AWS::Lambda::EventSourceMapping" + }, + "SQSEventSourceMapping2": { + "DependsOn": [ + "ConnectorPolicyDestination1" + ], + "Properties": { + "BatchSize": 10, + "EventSourceArn": { + "Fn::GetAtt": [ + "Queue", + "Arn" + ] + }, + "FunctionName": { + "Ref": "InvokedFunction2" + } + }, + "Type": "AWS::Lambda::EventSourceMapping" + }, + "VerificationQueue": { + "Type": "AWS::SQS::Queue" + } + } +} diff --git a/tests/translator/output/documentdb_with_intrinsics.json b/tests/translator/output/documentdb_with_intrinsics.json new file mode 100644 index 000000000..647083743 --- /dev/null +++ b/tests/translator/output/documentdb_with_intrinsics.json @@ -0,0 +1,154 @@ +{ + "Parameters": { + "BatchSizeValue": { + "Default": 100, + "Type": "Number" + }, + "EnableValue": { + "Default": true, + "Type": "String" + } + }, + "Resources": { + "DocumentDBFunction": { + "Properties": { + "Code": { + "S3Bucket": "sam-app-test-156327056618", + "S3Key": "lambda-function.zip" + }, + "Handler": "lambda_function.lambda_handler", + "Role": { + "Fn::GetAtt": [ + "DocumentDBFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "DocumentDBFunctionMyDocumentDBEvent": { + "Properties": { + "BatchSize": { + "Ref": "BatchSizeValue" + }, + "DocumentDBEventSourceConfig": { + "CollectionName": "collection1", + "DatabaseName": "db1", + "FullDocument": "UpdateLookup" + }, + "Enabled": { + "Ref": "EnableValue" + }, + "EventSourceArn": { + "Fn::Sub": "arn:${AWS::Partition}:rds:us-east-1:156327056618:cluster:docdb-2022-11-08-00-10-05r" + }, + "FunctionName": { + "Ref": "DocumentDBFunction" + }, + "SourceAccessConfigurations": [ + { + "Type": "BASIC_AUTH", + "URI": { + "Fn::Sub": "arn:${AWS::Partition}:secretsmanager:us-east-1:156327056618:secret:abc-sy7Vjx" + } + } + ] + }, + "Type": "AWS::Lambda::EventSourceMapping" + }, + "DocumentDBFunctionRole": { + "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" + ], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "secretsmanager:GetSecretValue" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:secretsmanager:us-east-1:156327056618:secret:abc-sy7Vjx" + } + }, + { + "Action": [ + "rds:DescribeDBClusterParameters" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:cluster-pg:*" + } + }, + { + "Action": [ + "rds:DescribeDBSubnetGroups" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:subgrp:*" + } + }, + { + "Action": [ + "rds:DescribeDBClusters" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:us-east-1:156327056618:cluster:docdb-2022-11-08-00-10-05r" + } + }, + { + "Action": [ + "ec2:CreateNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DeleteNetworkInterface", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups" + ], + "Effect": "Allow", + "Resource": "*" + } + ] + }, + "PolicyName": "SamAutoGeneratedDocumentDBPolicy" + } + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + } + } +} diff --git a/tests/translator/output/embedded_connector_function_to_multi_dest.json b/tests/translator/output/embedded_connector_function_to_multi_dest.json new file mode 100644 index 000000000..86ac8f615 --- /dev/null +++ b/tests/translator/output/embedded_connector_function_to_multi_dest.json @@ -0,0 +1,220 @@ +{ + "Resources": { + "MyBucket": { + "Type": "AWS::S3::Bucket" + }, + "MyQueue": { + "Type": "AWS::SQS::Queue" + }, + "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" + }, + "MyServerlessFunctionMixedDestConnectorPolicyDestination0": { + "Metadata": { + "aws:sam:connectors": { + "MyServerlessFunctionMixedDestConnector": { + "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" + }, + "MyServerlessFunctionMixedDestConnectorPolicyDestination1": { + "Metadata": { + "aws:sam:connectors": { + "MyServerlessFunctionMixedDestConnector": { + "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" + }, + "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" + } + } +} diff --git a/tests/translator/output/embedded_connectors_depends_on_attribute.json b/tests/translator/output/embedded_connectors_depends_on_attribute.json new file mode 100644 index 000000000..97c4449c4 --- /dev/null +++ b/tests/translator/output/embedded_connectors_depends_on_attribute.json @@ -0,0 +1,169 @@ +{ + "Resources": { + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionMyConnectorPolicy": { + "DependsOn": "SomeTable", + "Metadata": { + "aws:sam:connectors": { + "MyFunctionMyConnector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeAsync", + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyOtherFunction", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "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" + }, + "MyOtherFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyOtherFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyOtherFunctionRole": { + "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" + }, + "SomeTable": { + "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_resource_attributes.json b/tests/translator/output/embedded_connectors_resource_attributes.json new file mode 100644 index 000000000..cba91dcc3 --- /dev/null +++ b/tests/translator/output/embedded_connectors_resource_attributes.json @@ -0,0 +1,173 @@ +{ + "Conditions": { + "Cond": { + "Fn::Equals": [ + { + "Ref": "Param" + }, + "test1" + ] + } + }, + "Parameters": { + "Param": { + "AllowedValues": [ + "test1", + "test2" + ], + "Type": "String" + } + }, + "Resources": { + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionMyConnectorPolicy": { + "Condition": "Cond", + "DeletionPolicy": "Retain", + "Metadata": { + "aws:sam:connectors": { + "MyFunctionMyConnector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + }, + "foo": "bar" + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeAsync", + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyOtherFunction", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy", + "UpdateReplacePolicy": "Retain" + }, + "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" + }, + "MyOtherFunction": { + "Properties": { + "Code": { + "ZipFile": "foo" + }, + "Handler": "foo", + "Role": { + "Fn::GetAtt": [ + "MyOtherFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyOtherFunctionRole": { + "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/error_connector.json b/tests/translator/output/error_connector.json index 961f86abc..8c07545bc 100644 --- a/tests/translator/output/error_connector.json +++ b/tests/translator/output/error_connector.json @@ -1,5 +1,5 @@ { - "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 16. Resource with id [BothIdAndOtherProps] is invalid. Must provide 'Id' (with optional 'Qualifier') or a supported combination of other properties. Resource with id [EmptyListPermissionConnector] is invalid. 'Permissions' cannot be empty; valid values are: Read, Write. Resource with id [EmptyPermissionConnector] is invalid. Missing required property 'Permissions'. Resource with id [MissingLambdaFunctionArn] is invalid. Source.Arn is missing. 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. Destination.Arn is missing. Resource with id [NoIdMissingType] is invalid. 'Type' is missing or not a string. Resource with id [NoPermissionConnector] is invalid. Missing required property 'Permissions'. Resource with id [NonExistentLogicalId] is invalid. Unable to find resource with logical ID 'ThisDoesntExist'. Resource with id [NonStrId] is invalid. 'Id' is missing or not a string. 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. Resource with id [UnsupportedType] is invalid. Unable to create connector from AWS::Fancy::CoolType to AWS::Lambda::Function; it's not supported or the template is invalid.", + "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 17. Resource with id [BothIdAndOtherProps] is invalid. Must provide 'Id' (with optional 'Qualifier') or a supported combination of other properties. Resource with id [EmptyDestinationListConnector] is invalid. 'Destination' is an empty list Resource with id [EmptyListPermissionConnector] is invalid. 'Permissions' cannot be empty; valid values are: Read, Write. Resource with id [EmptyPermissionConnector] is invalid. Missing required property 'Permissions'. Resource with id [MissingLambdaFunctionArn] is invalid. Source.Arn is missing. 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. Destination.Arn is missing. Resource with id [NoIdMissingType] is invalid. 'Type' is missing or not a string. Resource with id [NoPermissionConnector] is invalid. Missing required property 'Permissions'. Resource with id [NonExistentLogicalId] is invalid. Unable to find resource with logical ID 'ThisDoesntExist'. Resource with id [NonStrId] is invalid. 'Id' is missing or not a string. Resource with id [ResourceWithoutType] is invalid. 'Type' is missing or not a string. Resource with id [UnsupportedAccessCategory] is invalid. Unsupported 'Permissions' provided for connector from AWS::Lambda::Function to AWS::SQS::Queue; valid values are: Read, Write. Resource with id [UnsupportedAccessCategoryCombination] is invalid. Unsupported 'Permissions' provided for connector from AWS::SQS::Queue to AWS::Lambda::Function; valid combinations are: Read + Write. Resource with id [UnsupportedType] is invalid. Unable to create connector from AWS::Fancy::CoolType to AWS::Lambda::Function; it's not supported or the template is invalid.", "errors": [ { "errorMessage": "Resource with id [NoIdMissingType] is invalid. 'Type' is missing or not a string." @@ -48,6 +48,9 @@ }, { "errorMessage": "Resource with id [EmptyListPermissionConnector] is invalid. property Permission not defined for resource of type AWS::Serverless::Connector" + }, + { + "errorMessage": "Resource with id [EmptyDestinationListConnector] is invalid. The destination is an empty list" } ] } diff --git a/tests/translator/output/error_embedded_connectors.json b/tests/translator/output/error_embedded_connectors.json index 8b6fee13a..306e3b931 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: 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." + "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 for connector from AWS::Lambda::Function to AWS::SQS::Queue; valid values are: Read, Write. Resource with id [MyQueueMissingRoleDestination] is invalid. Unable to get IAM role name from 'Destination' resource. Resource with id [MyQueueUnsupportedAccessCategoryCombination] is invalid. Unsupported 'Permissions' provided for connector from AWS::SQS::Queue to AWS::Lambda::Function; valid combinations are: Read + Write. Resource with id [MyResourceWithoutTypeResourceWithoutType] is invalid. 'Type' is missing or not a string." } diff --git a/tests/translator/output/error_function_invalid_autopublishalias_allproperties.json b/tests/translator/output/error_function_invalid_autopublishalias_allproperties.json new file mode 100644 index 000000000..4b2caf1bc --- /dev/null +++ b/tests/translator/output/error_function_invalid_autopublishalias_allproperties.json @@ -0,0 +1,3 @@ +{ + "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [InvalidAutoPublishAliasAllPropertiesFunction] is invalid. Type of property 'AutoPublishAliasAllProperties' is invalid." +} diff --git a/tests/translator/output/error_function_with_invalid_kms_type_for_self_managed_kafka.json b/tests/translator/output/error_function_with_invalid_kms_type_for_self_managed_kafka.json index 852362093..8440a12a8 100644 --- a/tests/translator/output/error_function_with_invalid_kms_type_for_self_managed_kafka.json +++ b/tests/translator/output/error_function_with_invalid_kms_type_for_self_managed_kafka.json @@ -1,8 +1,3 @@ { - "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [KafkaFunction] is invalid. Event with id [MyKafkaCluster] is invalid. Provided SecretsManagerKmsKeyId should be of type str.", - "errors": [ - { - "errorMessage": "Resource with id [KafkaFunction] is invalid. Event with id [MyKafkaCluster] is invalid. Provided SecretsManagerKmsKeyId should be of type str." - } - ] + "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [KafkaFunction] is invalid. Event with id [MyKafkaCluster] is invalid. Property 'SecretsManagerKmsKeyId' should be a string." } diff --git a/tests/translator/output/error_function_with_mq_kms_invalid_type.json b/tests/translator/output/error_function_with_mq_kms_invalid_type.json index 3d3e4af3f..346ca025c 100644 --- a/tests/translator/output/error_function_with_mq_kms_invalid_type.json +++ b/tests/translator/output/error_function_with_mq_kms_invalid_type.json @@ -1,8 +1,3 @@ { - "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [MQFunction] is invalid. Event with id [MyMQQueue] is invalid. Provided SecretsManagerKmsKeyId should be of type str.", - "errors": [ - { - "errorMessage": "Resource with id [MQFunction] is invalid. Event with id [MyMQQueue] is invalid. Provided SecretsManagerKmsKeyId should be of type str." - } - ] + "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [MQFunction] is invalid. Event with id [MyMQQueue] is invalid. Property 'SecretsManagerKmsKeyId' should be a string." } diff --git a/tests/translator/output/error_globals_unsupported_property.json b/tests/translator/output/error_globals_unsupported_property.json index 4e5442afc..42aa0bcfd 100644 --- a/tests/translator/output/error_globals_unsupported_property.json +++ b/tests/translator/output/error_globals_unsupported_property.json @@ -1,8 +1,3 @@ { - "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. 'Globals' section is invalid. 'SomeKey' is not a supported property of 'Function'. Must be one of the following values - ['Handler', 'Runtime', 'CodeUri', 'DeadLetterQueue', 'Description', 'MemorySize', 'Timeout', 'VpcConfig', 'Environment', 'Tags', 'Tracing', 'KmsKeyArn', 'AutoPublishAlias', 'Layers', 'DeploymentPreference', 'RolePath', 'PermissionsBoundary', 'ReservedConcurrentExecutions', 'ProvisionedConcurrencyConfig', 'AssumeRolePolicyDocument', 'EventInvokeConfig', 'FileSystemConfigs', 'CodeSigningConfigArn', 'Architectures', 'SnapStart', 'EphemeralStorage', 'FunctionUrlConfig']", - "errors": [ - { - "errorMessage": "'Globals' section is invalid. 'SomeKey' is not a supported property of 'Function'. Must be one of the following values - ['Handler', 'Runtime', 'CodeUri', 'DeadLetterQueue', 'Description', 'MemorySize', 'Timeout', 'VpcConfig', 'Environment', 'Tags', 'Tracing', 'KmsKeyArn', 'AutoPublishAlias', 'Layers', 'DeploymentPreference', 'RolePath', 'PermissionsBoundary', 'ReservedConcurrentExecutions', 'ProvisionedConcurrencyConfig', 'EventInvokeConfig', 'FileSystemConfigs', 'CodeSigningConfigArn', 'Architectures', 'FunctionUrlConfig']" - } - ] + "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. 'Globals' section is invalid. 'SomeKey' is not a supported property of 'Function'. Must be one of the following values - ['Handler', 'Runtime', 'CodeUri', 'DeadLetterQueue', 'Description', 'MemorySize', 'Timeout', 'VpcConfig', 'Environment', 'Tags', 'Tracing', 'KmsKeyArn', 'AutoPublishAlias', 'AutoPublishAliasAllProperties', 'Layers', 'DeploymentPreference', 'RolePath', 'PermissionsBoundary', 'ReservedConcurrentExecutions', 'ProvisionedConcurrencyConfig', 'AssumeRolePolicyDocument', 'EventInvokeConfig', 'FileSystemConfigs', 'CodeSigningConfigArn', 'Architectures', 'SnapStart', 'EphemeralStorage', 'FunctionUrlConfig']" } diff --git a/tests/translator/output/error_invalid_config_mq.json b/tests/translator/output/error_invalid_config_mq.json index 0d75b6fab..af304546a 100644 --- a/tests/translator/output/error_invalid_config_mq.json +++ b/tests/translator/output/error_invalid_config_mq.json @@ -1,8 +1,3 @@ { - "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [MQFunction] is invalid. Event with id [MyMQQueue] is invalid. Invalid property specified in SourceAccessConfigurations for Amazon MQ event.", - "errors": [ - { - "errorMessage": "Resource with id [MQFunction] is invalid. Event with id [MyMQQueue] is invalid. Invalid property specified in SourceAccessConfigurations for Amazon MQ event." - } - ] + "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [MQFunction] is invalid. Event with id [MyMQQueue] is invalid. Invalid property Type specified in SourceAccessConfigurations. The supported values are: ['BASIC_AUTH', 'VIRTUAL_HOST']." } diff --git a/tests/translator/output/error_invalid_property_in_sac_documentdb.json b/tests/translator/output/error_invalid_property_in_sac_documentdb.json new file mode 100644 index 000000000..5937654ef --- /dev/null +++ b/tests/translator/output/error_invalid_property_in_sac_documentdb.json @@ -0,0 +1,3 @@ +{ + "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [DocumentDBFunction] is invalid. Event with id [MyDocumentDBEvent] is invalid. Invalid property Type specified in SourceAccessConfigurations. The supported values are: ['BASIC_AUTH']." +} diff --git a/tests/translator/output/error_missing_basic_auth_in_mq.json b/tests/translator/output/error_missing_basic_auth_in_mq.json index 0e985c19d..51e91a081 100644 --- a/tests/translator/output/error_missing_basic_auth_in_mq.json +++ b/tests/translator/output/error_missing_basic_auth_in_mq.json @@ -1,8 +1,3 @@ { - "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [MQFunction] is invalid. Event with id [MyMQQueue] is invalid. No BASIC_AUTH property specified in SourceAccessConfigurations for Amazon MQ event.", - "errors": [ - { - "errorMessage": "Resource with id [MQFunction] is invalid. Event with id [MyMQQueue] is invalid. No BASIC_AUTH property specified in SourceAccessConfigurations for Amazon MQ event." - } - ] + "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [MQFunction] is invalid. Event with id [MyMQQueue] is invalid. No BASIC_AUTH property specified in SourceAccessConfigurations." } diff --git a/tests/translator/output/error_missing_basic_auth_uri_in_mq.json b/tests/translator/output/error_missing_basic_auth_uri_in_mq.json index 6cacac8d1..937bb579c 100644 --- a/tests/translator/output/error_missing_basic_auth_uri_in_mq.json +++ b/tests/translator/output/error_missing_basic_auth_uri_in_mq.json @@ -1,8 +1,3 @@ { - "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [MQFunction] is invalid. Event with id [MyMQQueue] is invalid. No BASIC_AUTH URI property specified in SourceAccessConfigurations for Amazon MQ event.", - "errors": [ - { - "errorMessage": "Resource with id [MQFunction] is invalid. Event with id [MyMQQueue] is invalid. No BASIC_AUTH URI property specified in SourceAccessConfigurations for Amazon MQ event." - } - ] + "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [MQFunction] is invalid. Event with id [MyMQQueue] is invalid. No BASIC_AUTH URI property specified in SourceAccessConfigurations." } diff --git a/tests/translator/output/error_missing_source_access_configurations_documentdb.json b/tests/translator/output/error_missing_source_access_configurations_documentdb.json new file mode 100644 index 000000000..34446d636 --- /dev/null +++ b/tests/translator/output/error_missing_source_access_configurations_documentdb.json @@ -0,0 +1,3 @@ +{ + "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [DocumentDBFunction] is invalid. Event with id [MyDocumentDBEvent] is invalid. No SourceAccessConfigurations for Amazon DocumentDB event provided." +} diff --git a/tests/translator/output/error_multiple_basic_auth_documentdb.json b/tests/translator/output/error_multiple_basic_auth_documentdb.json new file mode 100644 index 000000000..945f380db --- /dev/null +++ b/tests/translator/output/error_multiple_basic_auth_documentdb.json @@ -0,0 +1,3 @@ +{ + "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [DocumentDBFunction] is invalid. Event with id [MyDocumentDBEvent] is invalid. Multiple BASIC_AUTH properties specified in SourceAccessConfigurations." +} diff --git a/tests/translator/output/error_multiple_basic_auth_in_mq.json b/tests/translator/output/error_multiple_basic_auth_in_mq.json index 3a6f8558d..060971507 100644 --- a/tests/translator/output/error_multiple_basic_auth_in_mq.json +++ b/tests/translator/output/error_multiple_basic_auth_in_mq.json @@ -1,8 +1,3 @@ { - "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [MQFunction] is invalid. Event with id [MyMQQueue] is invalid. Multiple BASIC_AUTH properties specified in SourceAccessConfigurations for Amazon MQ event.", - "errors": [ - { - "errorMessage": "Resource with id [MQFunction] is invalid. Event with id [MyMQQueue] is invalid. Multiple BASIC_AUTH properties specified in SourceAccessConfigurations for Amazon MQ event." - } - ] + "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [MQFunction] is invalid. Event with id [MyMQQueue] is invalid. Multiple BASIC_AUTH properties specified in SourceAccessConfigurations." } diff --git a/tests/translator/output/error_no_basic_auth_provided_documentdb.json b/tests/translator/output/error_no_basic_auth_provided_documentdb.json new file mode 100644 index 000000000..5937654ef --- /dev/null +++ b/tests/translator/output/error_no_basic_auth_provided_documentdb.json @@ -0,0 +1,3 @@ +{ + "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [DocumentDBFunction] is invalid. Event with id [MyDocumentDBEvent] is invalid. Invalid property Type specified in SourceAccessConfigurations. The supported values are: ['BASIC_AUTH']." +} diff --git a/tests/translator/output/error_no_basic_auth_uri_provided_documentdb.json b/tests/translator/output/error_no_basic_auth_uri_provided_documentdb.json new file mode 100644 index 000000000..110806e3a --- /dev/null +++ b/tests/translator/output/error_no_basic_auth_uri_provided_documentdb.json @@ -0,0 +1,3 @@ +{ + "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [DocumentDBFunction] is invalid. Event with id [MyDocumentDBEvent] is invalid. No BASIC_AUTH URI property specified in SourceAccessConfigurations." +} diff --git a/tests/translator/output/function_with_alias_all_properties_and_code_sha256.json b/tests/translator/output/function_with_alias_all_properties_and_code_sha256.json new file mode 100644 index 000000000..6cc3f5766 --- /dev/null +++ b/tests/translator/output/function_with_alias_all_properties_and_code_sha256.json @@ -0,0 +1,82 @@ +{ + "Resources": { + "MinimalFunction": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "MinimalFunctionRole", + "Arn" + ] + }, + "Runtime": "python2.7", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MinimalFunctionAliaslive": { + "Properties": { + "FunctionName": { + "Ref": "MinimalFunction" + }, + "FunctionVersion": { + "Fn::GetAtt": [ + "MinimalFunctionVersion6b86b273ff", + "Version" + ] + }, + "Name": "live" + }, + "Type": "AWS::Lambda::Alias" + }, + "MinimalFunctionRole": { + "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" + }, + "MinimalFunctionVersion6b86b273ff": { + "DeletionPolicy": "Retain", + "Properties": { + "Description": "sam-testing", + "FunctionName": { + "Ref": "MinimalFunction" + } + }, + "Type": "AWS::Lambda::Version" + } + } +} diff --git a/tests/translator/output/function_with_alias_and_all_properties_property.json b/tests/translator/output/function_with_alias_and_all_properties_property.json new file mode 100644 index 000000000..10120e07e --- /dev/null +++ b/tests/translator/output/function_with_alias_and_all_properties_property.json @@ -0,0 +1,333 @@ +{ + "Resources": { + "AccessPoint": { + "Properties": { + "FileSystemId": { + "Ref": "EfsFileSystem" + } + }, + "Type": "AWS::EFS::AccessPoint" + }, + "EfsFileSystem": { + "Type": "AWS::EFS::FileSystem" + }, + "HashChangeFunction": { + "Properties": { + "Architectures": [ + "x86_64" + ], + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "EphemeralStorage": { + "Size": 1024 + }, + "FileSystemConfigs": [ + { + "Arn": { + "Fn::GetAtt": [ + "AccessPoint", + "Arn" + ] + }, + "LocalMountPath": "/mnt/EFS" + } + ], + "Handler": "hello.handler", + "KmsKeyArn": { + "Fn::Sub": "arn:${AWS::Partition}:key:key" + }, + "Layers": [ + { + "Fn::Sub": "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:layer:MyLayer:1" + } + ], + "PackageType": "Zip", + "ReservedConcurrentExecutions": 100, + "Role": { + "Fn::Sub": "arn:${AWS::Partition}:iam::role" + }, + "Runtime": "python2.7", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ], + "Timeout": 1, + "VpcConfig": { + "SecurityGroupIds": [ + "sg-085912345678492fb" + ], + "SubnetIds": [ + "subnet-071f712345678e7c8" + ] + } + }, + "Type": "AWS::Lambda::Function" + }, + "HashChangeFunctionAliaslive": { + "Properties": { + "FunctionName": { + "Ref": "HashChangeFunction" + }, + "FunctionVersion": { + "Fn::GetAtt": [ + "HashChangeFunctionVersion17ca83d2bf", + "Version" + ] + }, + "Name": "live" + }, + "Type": "AWS::Lambda::Alias" + }, + "HashChangeFunctionVersion17ca83d2bf": { + "DeletionPolicy": "Retain", + "Properties": { + "Description": "sam-testing", + "FunctionName": { + "Ref": "HashChangeFunction" + } + }, + "Type": "AWS::Lambda::Version" + }, + "HashNoChangeFunction": { + "Properties": { + "Architectures": [ + "x86_64" + ], + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "EphemeralStorage": { + "Size": 1024 + }, + "FileSystemConfigs": [ + { + "Arn": { + "Fn::GetAtt": [ + "AccessPoint", + "Arn" + ] + }, + "LocalMountPath": "/mnt/EFS" + } + ], + "Handler": "hello.handler", + "KmsKeyArn": { + "Fn::Sub": "arn:${AWS::Partition}:key:key" + }, + "Layers": [ + { + "Fn::Sub": "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:layer:MyLayer:1" + } + ], + "PackageType": "Zip", + "ReservedConcurrentExecutions": 100, + "Role": { + "Fn::Sub": "arn:${AWS::Partition}:iam::role" + }, + "Runtime": "python2.7", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ], + "Timeout": 1, + "VpcConfig": { + "SecurityGroupIds": [ + "sg-085912345678492fb" + ], + "SubnetIds": [ + "subnet-071f712345678e7c8" + ] + } + }, + "Type": "AWS::Lambda::Function" + }, + "HashNoChangeFunctionAliaslive": { + "Properties": { + "FunctionName": { + "Ref": "HashNoChangeFunction" + }, + "FunctionVersion": { + "Fn::GetAtt": [ + "HashNoChangeFunctionVersion640128d35d", + "Version" + ] + }, + "Name": "live" + }, + "Type": "AWS::Lambda::Alias" + }, + "HashNoChangeFunctionVersion640128d35d": { + "DeletionPolicy": "Retain", + "Properties": { + "Description": "sam-testing", + "FunctionName": { + "Ref": "HashNoChangeFunction" + } + }, + "Type": "AWS::Lambda::Version" + }, + "MinimalFunction": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "MinimalFunctionRole", + "Arn" + ] + }, + "Runtime": "python2.7", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MinimalFunctionAliaslive": { + "Properties": { + "FunctionName": { + "Ref": "MinimalFunction" + }, + "FunctionVersion": { + "Fn::GetAtt": [ + "MinimalFunctionVersion62bebcf0c1", + "Version" + ] + }, + "Name": "live" + }, + "Type": "AWS::Lambda::Alias" + }, + "MinimalFunctionRole": { + "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" + }, + "MinimalFunctionVersion62bebcf0c1": { + "DeletionPolicy": "Retain", + "Properties": { + "Description": "sam-testing", + "FunctionName": { + "Ref": "MinimalFunction" + } + }, + "Type": "AWS::Lambda::Version" + }, + "OtherMinimalFunction": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "OtherMinimalFunctionRole", + "Arn" + ] + }, + "Runtime": "python2.7", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "OtherMinimalFunctionAliaslive": { + "Properties": { + "FunctionName": { + "Ref": "OtherMinimalFunction" + }, + "FunctionVersion": { + "Fn::GetAtt": [ + "OtherMinimalFunctionVersion640128d35d", + "Version" + ] + }, + "Name": "live" + }, + "Type": "AWS::Lambda::Alias" + }, + "OtherMinimalFunctionRole": { + "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" + }, + "OtherMinimalFunctionVersion640128d35d": { + "DeletionPolicy": "Retain", + "Properties": { + "Description": "sam-testing", + "FunctionName": { + "Ref": "OtherMinimalFunction" + } + }, + "Type": "AWS::Lambda::Version" + } + } +} diff --git a/tests/translator/output/function_with_documentdb.json b/tests/translator/output/function_with_documentdb.json new file mode 100644 index 000000000..e852bc6e5 --- /dev/null +++ b/tests/translator/output/function_with_documentdb.json @@ -0,0 +1,138 @@ +{ + "Resources": { + "DocumentDBFunction": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "documentdb.zip" + }, + "Handler": "index.documentdb_handler", + "Role": { + "Fn::GetAtt": [ + "DocumentDBFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "DocumentDBFunctionMyDocumentDBEvent": { + "Properties": { + "DocumentDBEventSourceConfig": { + "CollectionName": "collection1", + "DatabaseName": "db1", + "FullDocument": "UpdateLookup" + }, + "EventSourceArn": { + "Fn::Sub": "arn:${AWS::Partition}:rds:us-west-2:123456789012:cluster:sample-cluster" + }, + "FunctionName": { + "Ref": "DocumentDBFunction" + }, + "SourceAccessConfigurations": [ + { + "Type": "BASIC_AUTH", + "URI": { + "Fn::Sub": "arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c" + } + } + ] + }, + "Type": "AWS::Lambda::EventSourceMapping" + }, + "DocumentDBFunctionRole": { + "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" + ], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "secretsmanager:GetSecretValue" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c" + } + }, + { + "Action": [ + "rds:DescribeDBClusterParameters" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:cluster-pg:*" + } + }, + { + "Action": [ + "rds:DescribeDBSubnetGroups" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:subgrp:*" + } + }, + { + "Action": [ + "rds:DescribeDBClusters" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:us-west-2:123456789012:cluster:sample-cluster" + } + }, + { + "Action": [ + "ec2:CreateNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DeleteNetworkInterface", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups" + ], + "Effect": "Allow", + "Resource": "*" + } + ] + }, + "PolicyName": "SamAutoGeneratedDocumentDBPolicy" + } + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + } + } +} diff --git a/tests/translator/output/function_with_documentdb_with_kms.json b/tests/translator/output/function_with_documentdb_with_kms.json new file mode 100644 index 000000000..0818cf0b6 --- /dev/null +++ b/tests/translator/output/function_with_documentdb_with_kms.json @@ -0,0 +1,145 @@ +{ + "Resources": { + "DocumentDBFunction": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "documentdb.zip" + }, + "Handler": "index.documentdb_handler", + "Role": { + "Fn::GetAtt": [ + "DocumentDBFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.9", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "DocumentDBFunctionMyDocumentDBEvent": { + "Properties": { + "DocumentDBEventSourceConfig": { + "DatabaseName": "db1" + }, + "EventSourceArn": { + "Fn::Sub": "arn:${AWS::Partition}:rds:us-west-2:123456789012:cluster:sample-cluster" + }, + "FunctionName": { + "Ref": "DocumentDBFunction" + }, + "SourceAccessConfigurations": [ + { + "Type": "BASIC_AUTH", + "URI": { + "Fn::Sub": "arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c" + } + } + ] + }, + "Type": "AWS::Lambda::EventSourceMapping" + }, + "DocumentDBFunctionRole": { + "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" + ], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "secretsmanager:GetSecretValue" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c" + } + }, + { + "Action": [ + "rds:DescribeDBClusterParameters" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:cluster-pg:*" + } + }, + { + "Action": [ + "rds:DescribeDBSubnetGroups" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:subgrp:*" + } + }, + { + "Action": [ + "rds:DescribeDBClusters" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:rds:us-west-2:123456789012:cluster:sample-cluster" + } + }, + { + "Action": [ + "ec2:CreateNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DeleteNetworkInterface", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups" + ], + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "kms:Decrypt" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": "arn:${AWS::Partition}:kms:${AWS::Region}:${AWS::AccountId}:key/myKeyId" + } + } + ] + }, + "PolicyName": "SamAutoGeneratedDocumentDBPolicy" + } + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + } + } +} diff --git a/tests/translator/test_api_resource.py b/tests/translator/test_api_resource.py index ca00bf376..a6d7ef52b 100644 --- a/tests/translator/test_api_resource.py +++ b/tests/translator/test_api_resource.py @@ -1,12 +1,12 @@ import json -import os - from unittest import TestCase from unittest.mock import MagicMock, patch -from tests.translator.helpers import get_template_parameter_values -from samtranslator.translator.transform import transform + from samtranslator.model.apigateway import ApiGatewayDeployment +from samtranslator.translator.transform import transform + from tests.plugins.application.test_serverless_app_plugin import mock_get_region +from tests.translator.helpers import get_template_parameter_values mock_policy_loader = MagicMock() mock_policy_loader.load.return_value = { diff --git a/tests/translator/test_arn_generator.py b/tests/translator/test_arn_generator.py index dbb0061f8..a57fd66b9 100644 --- a/tests/translator/test_arn_generator.py +++ b/tests/translator/test_arn_generator.py @@ -1,7 +1,7 @@ from unittest import TestCase -from parameterized import parameterized from unittest.mock import Mock, patch +from parameterized import parameterized from samtranslator.translator.arn_generator import ArnGenerator, NoRegionFound diff --git a/tests/translator/test_function_resources.py b/tests/translator/test_function_resources.py index fbfc4ebca..614f10edc 100644 --- a/tests/translator/test_function_resources.py +++ b/tests/translator/test_function_resources.py @@ -1,18 +1,16 @@ from unittest import TestCase -from unittest.mock import patch, Mock -from parameterized import parameterized +from unittest.mock import Mock, patch -import os -from samtranslator.model.sam_resources import SamFunction -from samtranslator.model.lambda_ import LambdaAlias, LambdaVersion, LambdaFunction +from parameterized import parameterized from samtranslator.model.exceptions import InvalidResourceException -from samtranslator.model.update_policy import UpdatePolicy +from samtranslator.model.lambda_ import LambdaAlias, LambdaFunction, LambdaVersion from samtranslator.model.preferences.deployment_preference import DeploymentPreference +from samtranslator.model.sam_resources import SamFunction +from samtranslator.model.update_policy import UpdatePolicy class TestVersionsAndAliases(TestCase): def setUp(self): - self.intrinsics_resolver_mock = Mock() self.intrinsics_resolver_mock.resolve = Mock() self.mappings_resolver_mock = Mock() @@ -105,7 +103,6 @@ def test_sam_function_with_alias(self, get_resolved_alias_name_mock): ) def test_sam_function_with_alias_cannot_be_list(self): - # Alias cannot be a list with self.assertRaises(InvalidResourceException): self.func_dict["Properties"]["AutoPublishAlias"] = ["a", "b"] @@ -752,7 +749,6 @@ def test_alias_creation_error(self): self.sam_func._construct_alias(None, self.lambda_func, self.lambda_version) def test_get_resolved_alias_name_must_work(self): - property_name = "something" alias_value = {"Ref": "param1"} alias_name = "AliasName" @@ -762,7 +758,6 @@ def test_get_resolved_alias_name_must_work(self): self.assertEqual(alias_name, result) def test_get_resolved_alias_name_must_error_if_intrinsics_are_not_resolved(self): - property_name = "something" expected_exception_msg = ( "Resource with id [{}] is invalid. '{}' must be a string or a Ref to a template parameter".format( @@ -781,7 +776,6 @@ def test_get_resolved_alias_name_must_error_if_intrinsics_are_not_resolved(self) self.assertEqual(expected_exception_msg, ex.message) def test_get_resolved_alias_name_must_error_if_intrinsics_are_not_resolved_with_list(self): - property_name = "something" expected_exception_msg = ( "Resource with id [{}] is invalid. '{}' must be a string or a Ref to a template parameter".format( @@ -821,7 +815,6 @@ def _make_deployment_preference_collection(self): class TestSupportedResourceReferences(TestCase): def test_must_not_break_support(self): - func = SamFunction("LogicalId") self.assertEqual(4, len(func.referable_properties)) self.assertEqual(func.referable_properties["Alias"], "AWS::Lambda::Alias") diff --git a/tests/translator/test_logical_id_generator.py b/tests/translator/test_logical_id_generator.py index 06634495a..1b66bac60 100644 --- a/tests/translator/test_logical_id_generator.py +++ b/tests/translator/test_logical_id_generator.py @@ -1,8 +1,8 @@ import hashlib import json - from unittest import TestCase from unittest.mock import patch + from samtranslator.translator.logical_id_generator import LogicalIdGenerator @@ -16,7 +16,6 @@ def setUp(self): @patch.object(LogicalIdGenerator, "_stringify") def test_gen_no_data(self, stringify_mock): - generator = LogicalIdGenerator(self.prefix) self.assertEqual(self.prefix, generator.gen()) diff --git a/tests/translator/test_managed_policies_translator.py b/tests/translator/test_managed_policies_translator.py index 811f2533f..c098af8a2 100644 --- a/tests/translator/test_managed_policies_translator.py +++ b/tests/translator/test_managed_policies_translator.py @@ -1,4 +1,5 @@ from unittest.mock import MagicMock + from samtranslator.translator.managed_policy_translator import ManagedPolicyLoader diff --git a/tests/translator/test_resource_level_attributes.py b/tests/translator/test_resource_level_attributes.py index a6bce7078..3158b7c5b 100644 --- a/tests/translator/test_resource_level_attributes.py +++ b/tests/translator/test_resource_level_attributes.py @@ -3,8 +3,7 @@ from parameterized import parameterized -from tests.plugins.application.test_serverless_app_plugin import mock_get_region -from tests.translator.test_translator import mock_sar_service_call, AbstractTestTranslator +from tests.translator.test_translator import AbstractTestTranslator, mock_sar_service_call class TestResourceLevelAttributes(AbstractTestTranslator): diff --git a/tests/translator/test_translator.py b/tests/translator/test_translator.py index 9db10da53..b07000d88 100644 --- a/tests/translator/test_translator.py +++ b/tests/translator/test_translator.py @@ -1,28 +1,25 @@ -import json +import hashlib import itertools +import json import os.path -import hashlib -import sys import re -from functools import reduce, cmp_to_key +from functools import cmp_to_key, reduce +from unittest import TestCase +from unittest.mock import MagicMock, Mock, patch -from samtranslator.translator.translator import Translator, prepare_plugins, make_policy_template_for_function_plugin -from samtranslator.parser.parser import Parser -from samtranslator.model.exceptions import InvalidDocumentException, InvalidResourceException +import pytest +from parameterized import parameterized from samtranslator.model import Resource +from samtranslator.model.exceptions import InvalidDocumentException, InvalidResourceException from samtranslator.model.sam_resources import SamSimpleTable +from samtranslator.parser.parser import Parser from samtranslator.public.plugins import BasePlugin - -from tests.translator.helpers import get_template_parameter_values -from tests.plugins.application.test_serverless_app_plugin import mock_get_region +from samtranslator.translator.transform import transform +from samtranslator.translator.translator import Translator, make_policy_template_for_function_plugin, prepare_plugins from samtranslator.yaml_helper import yaml_parse -from parameterized import parameterized, param -import pytest -import yaml -from unittest import TestCase -from samtranslator.translator.transform import transform -from unittest.mock import Mock, MagicMock, patch +from tests.plugins.application.test_serverless_app_plugin import mock_get_region +from tests.translator.helpers import get_template_parameter_values BASE_PATH = os.path.dirname(__file__) INPUT_FOLDER = BASE_PATH + "/input" @@ -34,9 +31,7 @@ BASE_PATH = os.path.dirname(__file__) INPUT_FOLDER = os.path.join(BASE_PATH, "input") SUCCESS_FILES_NAMES_FOR_TESTING = [ - os.path.splitext(f)[0] - for f in os.listdir(INPUT_FOLDER) - if not (f.startswith("error_") or f.startswith("translate_")) + os.path.splitext(f)[0] for f in os.listdir(INPUT_FOLDER) if not (f.startswith(("error_", "translate_"))) ] ERROR_FILES_NAMES_FOR_TESTING = [os.path.splitext(f)[0] for f in os.listdir(INPUT_FOLDER) if f.startswith("error_")] OUTPUT_FOLDER = os.path.join(BASE_PATH, "output") @@ -109,9 +104,7 @@ def mock_sar_service_call(self, service_call_function, logical_id, *args): elif application_id == "invalid-semver": raise InvalidResourceException(logical_id, "Cannot access application: {}.".format(application_id)) elif application_id == 1: - raise InvalidResourceException( - logical_id, "Type of property 'ApplicationId' is invalid.".format(application_id) - ) + raise InvalidResourceException(logical_id, "Type of property 'ApplicationId' is invalid.") elif application_id == "preparing" and self._wait_for_template_active_status < 2: self._wait_for_template_active_status += 1 self.SLEEP_TIME_SECONDS = 0 @@ -192,7 +185,7 @@ def _update_logical_id_hash(self, resources): # Find all RestApis in the template for logical_id, resource_dict in output_resources.items(): - if "AWS::ApiGateway::RestApi" == resource_dict.get("Type"): + if resource_dict.get("Type") == "AWS::ApiGateway::RestApi": resource_properties = resource_dict.get("Properties", {}) if "Body" in resource_properties: self._generate_new_deployment_hash( @@ -206,7 +199,7 @@ def _update_logical_id_hash(self, resources): # Collect all APIGW Deployments LogicalIds and generate the new ones for logical_id, resource_dict in output_resources.items(): - if "AWS::ApiGateway::Deployment" == resource_dict.get("Type"): + if resource_dict.get("Type") == "AWS::ApiGateway::Deployment": resource_properties = resource_dict.get("Properties", {}) rest_id = resource_properties.get("RestApiId").get("Ref") @@ -224,7 +217,7 @@ def _update_logical_id_hash(self, resources): # Update References to APIGW Deployments for logical_id, resource_dict in output_resources.items(): - if "AWS::ApiGateway::Stage" == resource_dict.get("Type"): + if resource_dict.get("Type") == "AWS::ApiGateway::Stage": resource_properties = resource_dict.get("Properties", {}) rest_id = resource_properties.get("RestApiId", {}).get("Ref", "") @@ -243,7 +236,7 @@ def _update_logical_id_hash(self, resources): del output_resources[logical_id_to_remove] # Update any Output References in the template - for output_key, output_value in resources.get("Outputs", {}).items(): + for _output_key, output_value in resources.get("Outputs", {}).items(): if output_value.get("Value").get("Ref") in deployment_logical_id_dict: output_value["Value"]["Ref"] = deployment_logical_id_dict[output_value.get("Value").get("Ref")] @@ -551,7 +544,6 @@ def assert_metric_call(mock, transform, transform_failure=0, invalid_document=0) @patch("boto3.session.Session.region_name", "ap-southeast-1") @patch("botocore.client.ClientEndpointBridge._check_default_region", mock_get_region) def test_swagger_body_sha_gets_recomputed(): - document = { "Transform": "AWS::Serverless-2016-10-31", "Resources": { @@ -593,7 +585,6 @@ def test_swagger_body_sha_gets_recomputed(): @patch("boto3.session.Session.region_name", "ap-southeast-1") @patch("botocore.client.ClientEndpointBridge._check_default_region", mock_get_region) def test_swagger_definitionuri_sha_gets_recomputed(): - document = { "Transform": "AWS::Serverless-2016-10-31", "Resources": { @@ -783,7 +774,6 @@ class TestPluginsUsage(TestCase): @patch("samtranslator.translator.translator.make_policy_template_for_function_plugin") @patch("botocore.client.ClientEndpointBridge._check_default_region", mock_get_region) def test_prepare_plugins_must_add_required_plugins(self, make_policy_template_for_function_plugin_mock): - # This is currently the only required plugin plugin_instance = _SomethingPlugin() make_policy_template_for_function_plugin_mock.return_value = plugin_instance @@ -794,7 +784,6 @@ def test_prepare_plugins_must_add_required_plugins(self, make_policy_template_fo @patch("samtranslator.translator.translator.make_policy_template_for_function_plugin") @patch("botocore.client.ClientEndpointBridge._check_default_region", mock_get_region) def test_prepare_plugins_must_merge_input_plugins(self, make_policy_template_for_function_plugin_mock): - required_plugin = _SomethingPlugin() make_policy_template_for_function_plugin_mock.return_value = required_plugin @@ -804,7 +793,6 @@ def test_prepare_plugins_must_merge_input_plugins(self, make_policy_template_for @patch("botocore.client.ClientEndpointBridge._check_default_region", mock_get_region) def test_prepare_plugins_must_handle_empty_input(self): - sam_plugins = prepare_plugins(None) self.assertEqual(6, len(sam_plugins)) @@ -813,7 +801,6 @@ def test_prepare_plugins_must_handle_empty_input(self): def test_make_policy_template_for_function_plugin_must_work( self, policy_templates_for_function_plugin_mock, policy_templates_processor_mock ): - default_templates = {"some": "value"} policy_templates_processor_mock.get_default_policy_templates_json.return_value = default_templates @@ -882,6 +869,7 @@ def get_resource_by_type(template, type): value = resources[key] if "Type" in value and value.get("Type") == type: return key, value + return None def get_exception_error_message(e): diff --git a/tests/unit/model/api/TestSharedApiUsagePlan.py b/tests/unit/model/api/TestSharedApiUsagePlan.py index 7c9e84699..90242e275 100644 --- a/tests/unit/model/api/TestSharedApiUsagePlan.py +++ b/tests/unit/model/api/TestSharedApiUsagePlan.py @@ -1,7 +1,6 @@ from unittest import TestCase -from parameterized import parameterized, param - +from parameterized import parameterized from samtranslator.model.api.api_generator import SharedApiUsagePlan from samtranslator.model.exceptions import InvalidTemplateException diff --git a/tests/unit/model/preferences/test_deployment_preference_collection.py b/tests/unit/model/preferences/test_deployment_preference_collection.py index 163660aed..6df343937 100644 --- a/tests/unit/model/preferences/test_deployment_preference_collection.py +++ b/tests/unit/model/preferences/test_deployment_preference_collection.py @@ -1,8 +1,7 @@ from unittest import TestCase - from unittest.mock import patch -from parameterized import parameterized +from parameterized import parameterized from samtranslator.model.preferences.deployment_preference_collection import DeploymentPreferenceCollection @@ -14,7 +13,6 @@ class TestDeploymentPreferenceCollection(TestCase): ] ) def test_codedeploy_iam_role_contains_AWSCodeDeployRoleForLambdaLimited_managedpolicy(self, partition): - with patch( "samtranslator.translator.arn_generator.ArnGenerator.get_partition_name" ) as get_partition_name_patch: @@ -35,7 +33,6 @@ def test_codedeploy_iam_role_contains_AWSCodeDeployRoleForLambdaLimited_managedp ] ) def test_codedeploy_iam_role_contains_AWSCodeDeployRoleForLambda_managedpolicy(self, partition): - with patch( "samtranslator.translator.arn_generator.ArnGenerator.get_partition_name" ) as get_partition_name_patch: diff --git a/tests/unit/test_region_configuration.py b/tests/unit/test_region_configuration.py index 699596e37..8d2cf82a0 100644 --- a/tests/unit/test_region_configuration.py +++ b/tests/unit/test_region_configuration.py @@ -1,8 +1,7 @@ from unittest import TestCase - from unittest.mock import patch -from parameterized import parameterized +from parameterized import parameterized from samtranslator.region_configuration import RegionConfiguration @@ -13,7 +12,6 @@ class TestRegionConfiguration(TestCase): ] ) def test_when_apigw_edge_configuration_supported(self, partition): - with patch( "samtranslator.translator.arn_generator.ArnGenerator.get_partition_name" ) as get_partition_name_patch: diff --git a/tests/unit/translator/test_arn_generator.py b/tests/unit/translator/test_arn_generator.py index e356aa81d..b91bb3143 100644 --- a/tests/unit/translator/test_arn_generator.py +++ b/tests/unit/translator/test_arn_generator.py @@ -1,8 +1,7 @@ from unittest import TestCase - from unittest.mock import Mock, patch -from parameterized import parameterized +from parameterized import parameterized from samtranslator.translator.arn_generator import ArnGenerator diff --git a/tests/utils/test_dynamic_references.py b/tests/utils/test_dynamic_references.py index 303b8553f..00ecffa28 100644 --- a/tests/utils/test_dynamic_references.py +++ b/tests/utils/test_dynamic_references.py @@ -1,6 +1,6 @@ -from parameterized import parameterized from unittest import TestCase +from parameterized import parameterized from samtranslator.utils.cfn_dynamic_references import is_dynamic_reference diff --git a/tests/utils/test_py27hash_fix.py b/tests/utils/test_py27hash_fix.py index 446968359..34a723988 100644 --- a/tests/utils/test_py27hash_fix.py +++ b/tests/utils/test_py27hash_fix.py @@ -1,17 +1,16 @@ import copy - from unittest import TestCase from unittest.mock import patch + +from samtranslator.model.exceptions import InvalidDocumentException from samtranslator.utils.py27hash_fix import ( Py27Dict, Py27Keys, - Py27UniStr, Py27LongInt, + Py27UniStr, _convert_to_py27_type, to_py27_compatible_template, - _template_has_api_resource, ) -from samtranslator.model.exceptions import InvalidDocumentException class TestPy27UniStr(TestCase): @@ -377,7 +376,7 @@ def _validate_iteration_order(self, py27_dict, expected_order, expected_copied_o for expected_copied_order in expected_copied_orders: py27_dict = copy.deepcopy(py27_dict) - key_idx_order = [expected_order.index(i) for i in py27_dict.keys()] + key_idx_order = [expected_order.index(i) for i in py27_dict] self.assertEqual(key_idx_order, expected_copied_order) def test_dict_with_any_hashable_keys(self): diff --git a/tests/validator/input/api/success_resource_attributes.yaml b/tests/validator/input/api/success_resource_attributes.yaml index bd8a965a0..54e9ab558 100644 --- a/tests/validator/input/api/success_resource_attributes.yaml +++ b/tests/validator/input/api/success_resource_attributes.yaml @@ -30,24 +30,6 @@ Resources: Properties: StageName: Stage name - ApiUpdatePolicyDelete: - UpdatePolicy: Delete - Type: AWS::Serverless::Api - Properties: - StageName: Stage name - - ApiUpdatePolicyRetain: - UpdatePolicy: Retain - Type: AWS::Serverless::Api - Properties: - StageName: Stage name - - ApiUpdatePolicySnapshot: - UpdatePolicy: Snapshot - Type: AWS::Serverless::Api - Properties: - StageName: Stage name - ApiUpdateReplacePolicyDelete: UpdateReplacePolicy: Delete Type: AWS::Serverless::Api diff --git a/tests/validator/test_validator.py b/tests/validator/test_validator.py index e35524df1..9d3a15b53 100644 --- a/tests/validator/test_validator.py +++ b/tests/validator/test_validator.py @@ -1,9 +1,9 @@ import os.path from unittest import TestCase -import pytest + from parameterized import parameterized +from samtranslator.validator.validator import SamTemplateValidator from samtranslator.yaml_helper import yaml_parse -from samtranslator.validator.validator import SamTemplateValidator, sam_schema BASE_PATH = os.path.dirname(__file__) TRANSLATOR_INPUT_FOLDER = os.path.join(BASE_PATH, os.pardir, "translator", "input") diff --git a/tests/validator/test_validator_api.py b/tests/validator/test_validator_api.py index 9dfd27088..c6d30b45e 100644 --- a/tests/validator/test_validator_api.py +++ b/tests/validator/test_validator_api.py @@ -1,10 +1,8 @@ -import jsonschema import os.path + +import jsonschema from parameterized import parameterized -import pytest -from unittest import TestCase -from samtranslator.yaml_helper import yaml_parse -from samtranslator.validator.validator import SamTemplateValidator + from tests.validator.test_validator import TestValidatorBase BASE_PATH = os.path.dirname(__file__) @@ -13,7 +11,6 @@ class TestValidatorApi(TestValidatorBase): - # jsonschema 4.* is more restrictive than 3, so we need a separate check # See https://github.com/aws/serverless-application-model/issues/2426 jsonschemaMajorVersion = int(jsonschema.__version__.split(".")[0]) diff --git a/tests/validator/test_validator_root.py b/tests/validator/test_validator_root.py index f343834be..f709bd63e 100644 --- a/tests/validator/test_validator_root.py +++ b/tests/validator/test_validator_root.py @@ -1,9 +1,7 @@ import os.path + from parameterized import parameterized -import pytest -from unittest import TestCase -from samtranslator.yaml_helper import yaml_parse -from samtranslator.validator.validator import SamTemplateValidator + from tests.validator.test_validator import TestValidatorBase BASE_PATH = os.path.dirname(__file__)